1 2 3<!DOCTYPE html> 4<html lang="en-US"> 5 <head> 6 <!-- Preconnects and Prefetches --> 7 <link rel="preconnect" href="https://cdn.thenewstack.io"> 8 <link rel="dns-prefetch" href="https://cdn.thenewstack.io"> 9 10 <link rel="preconnect" href="https://www.googletagmanager.com"> 11 <link rel="dns-prefetch" href="https://www.googletagmanager.com"> 12 13 <link rel="preconnect" href="https://www.google-analytics.com"> 14 <link rel="dns-prefetch" href="https://www.google-analytics.com"> 15 16 <link rel="preconnect" href="https://gstatic.com"> 17 <link rel="dns-prefetch" href="https://gstatic.com"> 18 19 <link rel="preconnect" href="https://google.com"> 20 <link rel="dns-prefetch" href="https://google.com"> 21 22 <link rel="preconnect" href="https://pagead2.googlesyndication.com"> 23 <link rel="dns-prefetch" href="https://pagead2.googlesyndication.com"> 24 25 <link rel="preconnect" href="https://securepubads.g.doubleclick.net"> 26 <link rel="dns-prefetch" href="https://securepubads.g.doubleclick.net"> 27 28 <link rel="preconnect" href="https://static.cloudflareinsights.com"> 29 <link rel="dns-prefetch" href="https://static.cloudflareinsights.com"> 30 31 <link rel="preconnect" href="https://connect.facebook.net"> 32 <link rel="dns-prefetch" href="https://connect.facebook.net"> 33 34 <link rel="preconnect" href="https://snap.licdn.com"> 35 <link rel="dns-prefetch" href="https://snap.licdn.com"> 36 37 <link rel="preconnect" href="https://challenges.cloudflare.com"> 38 <link rel="dns-prefetch" href="https://challenges.cloudflare.com"> 39 40 <link rel="preconnect" href="https://www.clarity.ms"> 41 <link rel="dns-prefetch" href="https://www.clarity.ms"> 42 43 <link rel="preconnect" href="https://bat.bing.com"> 44 <link rel="dns-prefetch" href="https://bat.bing.com"> 45 46 <link rel="preconnect" href="https://analytics.twitter.com"> 47 <link rel="dns-prefetch" href="https://analytics.twitter.com"> 48 49 <link rel="preconnect" href="https://static.trueanthem.com"> 50 <link rel="dns-prefetch" href="https://static.trueanthem.com"> 51 52 <link rel="preconnect" href="https://js.hs-scripts.com"> 53 <link rel="dns-prefetch" href="https://js.hs-scripts.com"> 54 55 <!-- BlueConic --> 56
56<script src="https://v923.thenewstack.io/script.js"></script>
56 57 58 59 60 <!-- Google Tag Manager (Container ID: GTM-NJH9PKQS) -->
61<script>window.dataLayer = window.dataLayer || [];</script>
vendor: 1 bytes, line 61
61
62<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 63new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 64j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.setAttributeNode(d.createAttribute('data-ot-ignore')); 65j.async=true;j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 66})(window,document,'script','dataLayer','GTM-NJH9PKQS');</script>
66 67<!-- End Google Tag Manager --> 68 69 70
71<script> 72(function() { 73 try { 74 /// Ensure dataLayer exists 75 window.dataLayer = window.dataLayer || []; 76 77 /// Preserve original push 78 var originalPush = window.dataLayer.push.bind(window.dataLayer); 79 var tnsCategories = ''; 80 81 function readCookie(key) { 82 try { 83 /// Prefer site utility if available 84 if (window.tns && typeof window.tns.getCookie === 'function') { 85 return window.tns.getCookie(key); 86 } 87 /// Fallback cookie read 88 var match = document.cookie 89 .split('; ') 90 .find(function(row) { return row.indexOf(key + '=') === 0; }); 91 return match ? match.split('=')[1] : undefined; 92 } catch (e) { 93 return undefined; 94 } 95 } 96 97 function attachUserIdToItem(item) { 98 try { 99 if (item && typeof item === 'object' && !Array.isArray(item)) { 100 var uid = readCookie('tns-user-id'); 101 if (uid && item.user_id == null) { 102 item.user_id = uid; 103 } 104 } 105 } catch (e) { 106 /// noop 107 } 108 return item; 109 } 110 111 function attachCategoriesToItem(item) { 112 try { 113 if (item && typeof item === 'object' && !Array.isArray(item)) { 114 if (tnsCategories && item.categories == null) { 115 item.categories = tnsCategories; 116 } 117 } 118 } catch (e) { 119 /// noop 120 } 121 return item; 122 } 123 124 /// Wrap dataLayer.push to auto-attach user_id and categories when available 125 window.dataLayer.push = function() { 126 var args = Array.prototype.slice.call(arguments); 127 for (var i = 0; i < args.length; i++) { 128 args[i] = attachCategoriesToItem(attachUserIdToItem(args[i])); 129 } 130 return originalPush.apply(window.dataLayer, args); 131 }; 132 133 /// Push current user_id state early so GTM variables can read it 134 function pushUserIdState() { 135 var uid = readCookie('tns-user-id'); 136 if (uid) { 137 /// Use originalPush to avoid re-wrapping 138 originalPush({ user_id: uid }); 139 } 140 } 141 142 /// Attempt immediately and on DOMContentLoaded 143 pushUserIdState(); 144 if (document.readyState === 'loading') { 145 document.addEventListener('DOMContentLoaded', pushUserIdState); 146 } 147 } catch (err) { 148 /// Fail closed: never block the page or GTM 149 // console.warn('[TNS] dataLayer user_id wrapper error', err); 150 } 151})(); 152</script>
152 153 154 <meta name="x-tns-path" content="/terms-of-use/"> 155 <meta charset="UTF-8"> 156 <meta name="viewport" content="width=device-width, initial-scale=1"> 157 158 <!-- Key Imagery Preloads --> 159 160 161 162 163 <link rel="profile" href="//gmpg.org/xfn/11"> 164 <link rel="pingback" href="https://thenewstack.io/xmlrpc.php"> 165 166 <style> 167 *{-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-touch-callout:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html,body,main,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}ul,ol{margin-left:40px}textarea,select,input[type="date"],input[type="datetime"],input[type="datetime-local"],input[type="email"],input[type="month"],input[type="number"],input[type="password"],input[type="search"],input[type="tel"],input[type="text"],input[type="time"],input[type="url"],input[type="week"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-background-clip:padding;-moz-background-clip:padding;-webkit-background-clip:padding;-moz-background-clip:padding;background-clip:padding-box;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;-webkit-appearance:none;-moz-appearance:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;color:#000;outline:0;margin:0;padding:0;text-align:left;vertical-align:middle}div,main,article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{display:block;position:relative;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;width:100%;height:100%;background:#eae9e5}body{display:block;position:relative;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;width:100%;height:100%;font-family:-apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:16px;font-weight:500;line-height:133%;letter-spacing:.5px;color:#142640;-webkit-font-smoothing:subpixel-antialiased;-webkit-backface-visibility:hidden;-webkit-text-size-adjust:100%;text-rendering:optimizeLegibility;-webkit-tap-highlight-color:rgba(0,0,0,0);overflow-x:hidden;overflow-y:auto}main,div{display:block;position:relative;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}p{margin-bottom:18px}h1{font-size:60px;line-height:90%;margin-bottom:24px}@media (max-width:767px){h1{font-size:50px}}@media (max-width:413px){h1{font-size:40px}}h2{font-size:42px;line-height:100%;letter-spacing:1px;margin-bottom:20px}h3{font-size:21px;line-height:90%;margin-bottom:15px}h4{font-size:16px;line-height:120%;margin-bottom:15px}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:'';content:none}table{border-collapse:collapse;border-spacing:0}img{display:block;position:relative}pre{font-family:'Courier New',monospace;font-weight:bold;font-size:15px}.clearfix:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.clearfix{display:inline-block}* html .clearfix{height:1%}.clearfix{display:block}:focus{outline-color:transparent;outline-style:none}.greyscale{-webkit-filter:grayscale(100%);filter:grayscale(100%)}strong{font-weight:bold}em{font-style:italic}img{max-width:100%}.tns-gradient-blue{background:#05aef4;background:-webkit-linear-gradient(305deg, #05aef4 0%, #4bc8fa 100%);background:-moz-linear-gradient(305deg, #05aef4 0%, #4bc8fa 100%);background:-o-linear-gradient(305deg, #05aef4 0%, #4bc8fa 100%);background:-ms-linear-gradient(305deg, #05aef4 0%, #4bc8fa 100%);background:linear-gradient(145deg, #05aef4 0%, #4bc8fa 100%)}.tns-gradient-blue-dark{background:#6dd5ff;background:-webkit-linear-gradient(0deg, #6dd5ff 0%, #138bb6 100%);background:-moz-linear-gradient(0deg, #6dd5ff 0%, #138bb6 100%);background:-o-linear-gradient(0deg, #6dd5ff 0%, #138bb6 100%);background:-ms-linear-gradient(0deg, #6dd5ff 0%, #138bb6 100%);background:linear-gradient(90deg, #6dd5ff 0%, #138bb6 100%)}.tns-gradient-pink{background:#ff3287;background:-webkit-linear-gradient(280deg, #ff3287 0%, #f27866 100%);background:-moz-linear-gradient(280deg, #ff3287 0%, #f27866 100%);background:-o-linear-gradient(280deg, #ff3287 0%, #f27866 100%);background:-ms-linear-gradient(280deg, #ff3287 0%, #f27866 100%);background:linear-gradient(170deg, #ff3287 0%, #f27866 100%)}h1{display:block;font-size:36px;margin-bottom:10px}h2{display:block;font-size:21px;font-weight:700;line-height:1.33;margin-bottom:10px}@media (max-width:599px){h2{font-size:24px}}h3{display:block;font-size:17px;font-weight:700;line-height:1.33;margin-top:12px;margin-bottom:7px}h4{display:block;font-size:15px;font-weight:700;margin-top:10px;margin-bottom:7px}p{font-size:17px;line-height:1.45;letter-spacing:.3px;margin-bottom:30px}@media (max-width:599px){p{font-size:20px}}b{font-weight:700}hr{margin-bottom:25px}ul,ol{font-size:16px;margin-bottom:30px}li{margin-bottom:10px}a{color:#ff3287;text-decoration:none}a:hover{color:#01aff4}blockquote{margin-top:30px;border-top:1px solid #01aff4;padding-top:25px;padding-bottom:25px;border-bottom:1px solid #01aff4;margin-bottom:30px}blockquote p{font-size:21px;color:#01aff4;margin-bottom:0}.quote-attribution{margin-top:-23px;color:#01aff4;font-size:14px;margin-bottom:23px}.wp-caption{min-width:100%;max-width:100%}p.attribution{color:#a5a9b0;font-size:12px}p.attribution a{color:#01aff4}p.attribution a:hover{color:#ff3287}code,pre{padding:3px 5px 3px 5px;color:#032f62;font-family:'courier new',courier,monospace;font-size:15px;font-weight:600;background:#eaeff3}body .syntaxhighlighter a,body .syntaxhighlighter div,body .syntaxhighlighter code,body .syntaxhighlighter table,body .syntaxhighlighter table td,body .syntaxhighlighter table tr,body .syntaxhighlighter table tbody,body .syntaxhighlighter table thead,body .syntaxhighlighter table caption,body .syntaxhighlighter textarea{font-family:'courier new',courier,monospace !important}.section-heading{display:block;color:#3c3c3c;font-size:14px;line-height:1.33;font-weight:700;text-transform:uppercase;border-top:solid 1px #3c3c3c;padding-top:7px;margin-bottom:20px}.section-heading-sidebar{font-size:13px;margin-bottom:15px}.media-direct-link{display:none !important}.podcast-embed-subscription-links{display:none !important}ul.page-numbers{list-style-type:none}ul.page-numbers li{display:inline-block}
167ul.page-numbers span{display:inline-block;font-size:21px;color:#ff3287;margin-right:7px}ul.page-numbers span.page-numbers.dots{color:#a5a9b0}ul.page-numbers a{display:inline-block;font-size:21px;color:#01aff4;margin-right:7px}ul.page-numbers a:hover{color:#ff3287}.post-categories{padding-top:3px;font-size:9px;color:#a5a9b0;color:#18191d;font-weight:400;line-height:1;text-transform:uppercase;letter-spacing:1.2px;margin-bottom:2px}.post-title{display:block;color:#3c3c3c;font-size:16px;line-height:1.3;text-decoration:none;margin-bottom:3px}.post-byline{margin-bottom:4px}.post-byline .post-date,.post-byline .post-author{color:#a5a9b0;font-size:10px;letter-spacing:1.2px;line-height:1;vertical-align:middle;text-transform:uppercase}.post-byline .post-date a,.post-byline .post-author a{text-decoration:none}.post-byline .post-date{margin-bottom:3px}.sponsored-badge{font-size:9px;color:#111215;font-weight:400;line-height:1;text-transform:uppercase;letter-spacing:1.2px}html{background:#fff}body{background:#fff}.content{display:block;width:100%}.content-column{display:block;width:100%;max-width:1260px;padding:0 30px 0 30px;margin:0 auto 0 auto}.row{position:relative;display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex}.col{-webkit-box-flex:1;-moz-box-flex:1;-o-box-flex:1;box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;min-width:100%;max-width:100%}.col-90{-webkit-box-flex:1;-moz-box-flex:1;-o-box-flex:1;box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;min-width:90%;max-width:90%}.col-80{-webkit-box-flex:1;-moz-box-flex:1;-o-box-flex:1;box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;min-width:80%;max-width:80%}.col-75{-webkit-box-flex:1;-moz-box-flex:1;-o-box-flex:1;box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;min-width:75%;max-width:75%}.col-70{-webkit-box-flex:1;-moz-box-flex:1;-o-box-flex:1;box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;min-width:70%;max-width:70%}.col-66{-webkit-box-flex:1;-moz-box-flex:1;-o-box-flex:1;box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;min-width:66.666%;max-width:66.666%}.col-60{-webkit-box-flex:1;-moz-box-flex:1;-o-box-flex:1;box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;min-width:60%;max-width:60%}.col-50{-webkit-box-flex:1;-moz-box-flex:1;-o-box-flex:1;box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;min-width:50%;max-width:50%}.col-40{-webkit-box-flex:1;-moz-box-flex:1;-o-box-flex:1;box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;min-width:40%;max-width:40%}.col-33{-webkit-box-flex:1;-moz-box-flex:1;-o-box-flex:1;box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;min-width:33.333%;max-width:33.333%}.col-30{-webkit-box-flex:1;-moz-box-flex:1;-o-box-flex:1;box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;min-width:30%;max-width:30%}.col-25{-webkit-box-flex:1;-moz-box-flex:1;-o-box-flex:1;box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;min-width:25%;max-width:25%}.col-20{-webkit-box-flex:1;-moz-box-flex:1;-o-box-flex:1;box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;min-width:20%;max-width:20%}.col-15{-webkit-box-flex:1;-moz-box-flex:1;-o-box-flex:1;box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;min-width:15%;max-width:15%}.col-10{-webkit-box-flex:1;-moz-box-flex:1;-o-box-flex:1;box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;min-width:10%;max-width:10%}.youtube-embed-wrapper{position:relative;padding-bottom:56.25%;height:0;overflow:hidden;background:#f6f8fa}.youtube-embed-wrapper iframe{position:absolute;top:0;left:0;width:100%;height:100%}.table-scroll-wrap{width:100%;overflow:hidden;overflow-x:auto;margin-bottom:30px;border:1px solid #a5a9b0}.table-scroll-wrap table{min-width:100%}.table-scroll-wrap table thead{position:relative}.table-scroll-wrap table thead th{min-width:120px;border:1px solid #a5a9b0;border-top:0;text-align:left;padding:5px;background:#f6f8fa}.table-scroll-wrap table thead th:first-child{border-left:0}.table-scroll-wrap table thead th:last-child{border-right:0}.table-scroll-wrap table tbody{position:relative}.table-scroll-wrap table tbody tr:first-child td{border-top:0}.table-scroll-wrap table tbody tr:last-child td{border-bottom:0}.table-scroll-wrap table tbody td{min-width:120px;font-size:14px;line-height:120%;padding:5px;border:1px solid #a5a9b0}.table-scroll-wrap table tbody td:first-child{border-left:0}.table-scroll-wrap table tbody td:last-child{border-right:0}.table-scroll-wrap table tbody tr.crayon-row td{min-width:0}input[type="text"],input[type="email"]{position:relative;display:block;width:100%;height:40px;color:#3c3c3c;font-size:16px;letter-spacing:.7px;padding-left:14px;margin-bottom:20px;border:1px solid #ff3287}input[type="text"]::placeholder,input[type="email"]::placeholder{font-size:16px;color:#a5a9b0}textarea{width:100%;min-height:150px;padding:10px;font-size:16px;resize:none}input[type="submit"],button,.tns-button{position:relative;display:block;width:100%;height:40px;color:#fff;font-size:18px;font-weight:500;line-height:35px;text-align:center;padding:none;border:none;border-radius:5px;background-color:#ff3287;cursor:pointer}input[type="submit"]:hover,button:hover,.tns-button:hover{background-color:#01aff4}.button-pill-wrap{display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex;-webkit-box-pack:center;-moz-box-pack:center;
167-o-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-box-align:center;-moz-box-align:center;-o-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center}.button-pill{display:inline-block;margin:0 auto 0 auto;padding-left:15px;padding-right:15px;height:20px;color:#111215;font-size:12px;line-height:20px;font-weight:700;text-align:center;background:#eaeff3;border-radius:10px;cursor:pointer}.button-pill:hover{color:#ff3287}@media (max-width:767px){.button-pill{font-size:15px}}.button-spinner{margin-top:9px;border:2px solid rgba(255,255,255,0.33);border-top:2px solid #fff;border-radius:50%;width:20px;height:20px;-webkit-animation:buttonspinner 333ms linear infinite;-moz-animation:buttonspinner 333ms linear infinite;-o-animation:buttonspinner 333ms linear infinite;-ms-animation:buttonspinner 333ms linear infinite;animation:buttonspinner 333ms linear infinite;display:inline-block}@-moz-keyframes buttonspinner{0%{-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);-moz-transform:rotate(360deg);-o-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes buttonspinner{0%{-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);-moz-transform:rotate(360deg);-o-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg)}}@-o-keyframes buttonspinner{0%{-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);-moz-transform:rotate(360deg);-o-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes buttonspinner{0%{-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);-moz-transform:rotate(360deg);-o-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg)}}#tns-subscribe-popover-screen{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.93);z-index:8000;opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0);display:none}#tns-subscribe-popover-screen #tns-subscribe-popover{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-moz-transform:translate(-50%,-50%);-o-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);width:100%;max-width:375px;height:auto;background:#fff;border-radius:5px;z-index:8001;opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0);display:none}@media (max-width:499px){#tns-subscribe-popover-screen #tns-subscribe-popover{max-width:80%}}#tns-subscribe-popover-screen #tns-subscribe-popover .tns-subscribe-popover-title{position:relative;width:100%;height:40px;line-height:40px;padding-left:20px;color:#3c3c3c;font-size:14px;font-weight:700;text-transform:uppercase;border-bottom:1px solid #a5a9b0}#tns-subscribe-popover-screen #tns-subscribe-popover .tns-subscribe-popover-close{position:absolute;top:7px;right:11px;width:12px;cursor:pointer;z-index:2}#tns-subscribe-popover-screen #tns-subscribe-popover .tns-subscribe-popover-close svg{width:100%;height:auto;fill:#fff;opacity:.5;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";filter:alpha(opacity=50)}#tns-subscribe-popover-screen #tns-subscribe-popover .tns-subscribe-popover-close:hover svg{opacity:1;-ms-filter:none;filter:none}#tns-subscribe-popover-screen #tns-subscribe-popover .tns-subscribe-popover-content{position:relative;width:100%;min-height:60px;padding:20px;color:#3c3c3c;font-size:15px}#tns-subscribe-popover-screen #tns-subscribe-popover .tns-subscribe-popover-buttons{position:relative;width:100%;height:60px;padding:10px}#tns-subscribe-popover-screen #tns-subscribe-popover .tns-promo-daily{margin-top:0;max-width:100%}#tns-subscribe-popover-screen #tns-subscribe-popover .tns-promo-daily .row{-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}#tns-subscribe-popover-screen #tns-subscribe-popover .tns-promo-daily .row .col{min-width:100%;max-width:100%}#tns-subscribe-popover-screen #tns-subscribe-popover .tns-promo-daily .banner .title{margin-bottom:10px}#tns-subscribe-popover-screen #tns-subscribe-popover .tns-promo-daily .banner .copy{margin-bottom:10px}#tns-subscribe-popover-screen #tns-subscribe-popover .tns-promo-daily .banner .subscribe-col{padding-left:0}#tns-modal-screen{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.93);z-index:12000;opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0);display:none}#tns-modal-screen #tns-modal{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-moz-transform:translate(-50%,-50%);-o-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);width:100%;max-width:450px;height:auto;background:#fff;border-radius:5px;z-index:12001;opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0);display:none}@media (max-width:499px){#tns-modal-screen #tns-modal{max-width:80%}}#tns-modal-screen #tns-modal .tns-modal-title{position:relative;width:100%;height:40px;line-height:40px;padding-left:20px;color:#3c3c3c;font-size:14px;font-weight:700;text-transform:uppercase;border-bottom:1px solid #a5a9b0}#tns-modal-screen #tns-modal .tns-modal-close{position:absolute;top:11px;right:14px;width:12px;cursor:pointer;z-index:2}#tns-modal-screen #tns-modal .tns-modal-close svg{width:100%;height:auto;
167fill:#515151}#tns-modal-screen #tns-modal .tns-modal-close:hover svg{fill:#ff3287}#tns-modal-screen #tns-modal .tns-modal-content{position:relative;width:100%;min-height:60px;padding:20px;color:#3c3c3c;font-size:15px}#tns-modal-screen #tns-modal .tns-modal-buttons{position:relative;width:100%;height:60px;padding:10px}.tns-voxpop-screen{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.9);z-index:9000;display:none}.tns-voxpop-screen .tns-voxpop-modal{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-moz-transform:translate(-50%,-50%);-o-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);width:100%;max-width:450px;background:#fff;background:#f4fbff;background:-webkit-linear-gradient(270deg, #f4fbff 0%, #fff 100%);background:-moz-linear-gradient(270deg, #f4fbff 0%, #fff 100%);background:-o-linear-gradient(270deg, #f4fbff 0%, #fff 100%);background:-ms-linear-gradient(270deg, #f4fbff 0%, #fff 100%);background:linear-gradient(180deg, #f4fbff 0%, #fff 100%);border-radius:5px;z-index:9001}@media (max-width:499px){.tns-voxpop-screen .tns-voxpop-modal{width:calc(100vw - 10px)}}.tns-voxpop-screen .tns-voxpop-modal .header{position:absolute;top:0;left:0;right:0;height:40px}.tns-voxpop-screen .tns-voxpop-modal .header .title{position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);-moz-transform:translate(-50%,-50%);-o-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);height:40px;line-height:40px;color:#3c3c3c;font-size:13px;font-weight:800;text-transform:uppercase}.tns-voxpop-screen .tns-voxpop-modal .header .close-icon{position:absolute;top:11px;right:14px;width:12px;cursor:pointer;z-index:2}.tns-voxpop-screen .tns-voxpop-modal .header .close-icon svg{width:100%;height:auto;fill:#515151}.tns-voxpop-screen .tns-voxpop-modal .header .close-icon:hover svg{fill:#ff3287}.tns-voxpop-screen .tns-voxpop-modal .content{position:absolute;top:40px;left:0;right:0;bottom:20px;padding:20px;padding-bottom:0;padding-top:0;color:#3c3c3c;font-size:15px;overflow-x:hidden;overflow-y:auto}.tns-voxpop-screen .tns-voxpop-modal .content .content-block{position:relative;min-height:100%}.tns-voxpop-screen .tns-voxpop-modal .footer{position:absolute;left:0;right:0;bottom:0;height:20px}body.search-hidden{overflow:hidden}#tns-header{position:relative}#tns-header .header-fixed{position:fixed;width:100%;z-index:100}#tns-header .header-footprint{display:block;width:100%;height:150px;-webkit-transition:all 333ms;-moz-transition:all 333ms;-o-transition:all 333ms;-ms-transition:all 333ms;transition:all 333ms}@media (max-width:1023px){#tns-header .header-footprint{height:60px}}#tns-header #tns-header-masthead{position:absolute;width:100%;background:#fff;z-index:7;-webkit-transition:all 90ms;-moz-transition:all 90ms;-o-transition:all 90ms;-ms-transition:all 90ms;transition:all 90ms}#tns-header #tns-header-masthead.dark{background:#111215}#tns-header #tns-header-masthead.dark .masthead{border-bottom:1px solid #18191d}#tns-header #tns-header-masthead .masthead{width:100%;border-bottom:1px solid #c3c5ca}#tns-header #tns-header-masthead .masthead-block{position:relative;width:100%;max-width:1260px;height:80px;margin:0 auto 0 auto;-webkit-transition:all 333ms;-moz-transition:all 333ms;-o-transition:all 333ms;-ms-transition:all 333ms;transition:all 333ms}@media (max-width:1023px){#tns-header #tns-header-masthead .masthead-block{height:60px}}#tns-header #tns-header-masthead #tns-header-masthead-menu{display:block;position:absolute;top:50%;left:20px;-webkit-transform:translate(0%,-50%);-moz-transform:translate(0%,-50%);-o-transform:translate(0%,-50%);-ms-transform:translate(0%,-50%);transform:translate(0%,-50%)}#tns-header #tns-header-masthead #tns-header-masthead-menu .masthead-menu-icon{display:inline;color:#515151;font-size:14px;-webkit-transition:all 333ms;-moz-transition:all 333ms;-o-transition:all 333ms;-ms-transition:all 333ms;transition:all 333ms;cursor:pointer}#tns-header #tns-header-masthead #tns-header-masthead-menu .masthead-menu-icon:hover path{f
167ill:#ff3287}#tns-header #tns-header-masthead #tns-header-masthead-menu .masthead-menu-icon.active path{fill:#ff3287}#tns-header #tns-header-masthead #tns-header-masthead-menu .masthead-menu-close-icon{display:inline;color:#515151;cursor:pointer;opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0);display:none}#tns-header #tns-header-masthead #tns-header-masthead-menu .masthead-menu-close-icon svg{width:16px;height:auto}#tns-header #tns-header-masthead #tns-header-masthead-menu .masthead-menu-close-icon path{fill:#ff3287}#tns-header #tns-header-masthead #tns-header-masthead-menu .masthead-menu-close-icon:hover path{fill:#ff3287}#tns-header #tns-header-masthead #tns-header-masthead-logo{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-moz-transform:translate(-50%,-50%);-o-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);width:265px;height:auto;-webkit-transition:all 333ms;-moz-transition:all 333ms;-o-transition:all 333ms;-ms-transition:all 333ms;transition:all 333ms}@media (max-width:1023px){#tns-header #tns-header-masthead #tns-header-masthead-logo{width:175px;height:auto}}#tns-header #tns-header-masthead #tns-header-masthead-logo .tns-logo{position:relative;display:block}#tns-header #tns-header-masthead #tns-header-masthead-logo .tns-logo svg{display:block;width:100%;height:auto}#tns-header #tns-header-masthead #tns-masthead-utility-nav{position:absolute;top:50%;right:20px;-webkit-transform:translate(0%,-50%);-moz-transform:translate(0%,-50%);-o-transform:translate(0%,-50%);-ms-transform:translate(0%,-50%);transform:translate(0%,-50%);font-size:16px;color:#515151;line-height:120%;-webkit-transition:all 333ms;-moz-transition:all 333ms;-o-transition:all 333ms;-ms-transition:all 333ms;transition:all 333ms}#tns-header #tns-header-masthead #tns-masthead-utility-nav .masthead-login-button{position:absolute;color:#01aff4;padding:0;height:25px;line-height:25px;font-size:13px;font-weight:600;right:27px;top:50%;-webkit-transform:translateY(-50%);-moz-transform:translateY(-50%);-o-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);-webkit-transition:color 0.2s ease;-moz-transition:color 0.2s ease;-o-transition:color 0.2s ease;-ms-transition:color 0.2s ease;transition:color 0.2s ease;border:none;cursor:pointer}#tns-header #tns-header-masthead #tns-masthead-utility-nav .masthead-login-button:hover{color:#ff69b4}#tns-header #tns-header-masthead #tns-masthead-utility-nav #stackie-flag{position:absolute;z-index:9999;pointer-events:none;top:0;right:30px;-webkit-transform:translate(0,-155%) scaleX(0) scaleY(0);-moz-transform:translate(0,-155%) scaleX(0) scaleY(0);-o-transform:translate(0,-155%) scaleX(0) scaleY(0);-ms-transform:translate(0,-155%) scaleX(0) scaleY(0);transform:translate(0,-155%) scaleX(0) scaleY(0);-webkit-transform-origin:right center;-moz-transform-origin:right center;-o-transform-origin:right center;-ms-transform-origin:right center;transform-origin:right center}#tns-header #tns-header-masthead #tns-masthead-utility-nav #stackie-flag .flag-content{background-color:#ff3287;color:#fff;padding:8px 12px;font-size:14px;font-weight:bold;border-radius:5px;-webkit-box-shadow:0 2px 8px rgba(0,0,0,0.15);box-shadow:0 2px 8px rgba(0,0,0,0.15);position:relative;pointer-events:auto;white-space:nowrap}#tns-header #tns-header-masthead #tns-masthead-utility-nav #stackie-flag .flag-pointer{content:'';position:absolute;right:-8px;top:50%;-webkit-transform:translateY(-50%);-moz-transform:translateY(-50%);-o-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);width:0;height:0;border-top:8px solid transparent;border-bottom:8px solid transparent;border-left:8px solid #ff3287}#tns-header #tns-header-masthead #tns-masthead-utility-nav #stackie-flag.animate{-webkit-animation:growFromRight .21s ease-out forwards 1.2s,shrinkToRight .21s ease-in forwards 4s;-moz-animation:growFromRight .21s ease-out forwards 1.2s,shrinkToRight .21s ease-in forwards 4s;-o-animation:growFromRight .21s ease-out forwards 1.2s,shrinkToRight .21s ease-in forwards 4s;-ms-animation:growFromRight .21s ease-out forwards 1.2s,shrinkToRight .21s ease-in forwards 4s;animation:growFromRight .21s ease-out forwards 1.2s,shrinkToRight .21s ease-in forwards 4s}
167@-moz-keyframes growFromRight{0%{-webkit-transform:scaleX(0) scaleY(0);-moz-transform:scaleX(0) scaleY(0);-o-transform:scaleX(0) scaleY(0);-ms-transform:scaleX(0) scaleY(0);transform:scaleX(0) scaleY(0);opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0)}100%{-webkit-transform:scaleX(1) scaleY(1);-moz-transform:scaleX(1) scaleY(1);-o-transform:scaleX(1) scaleY(1);-ms-transform:scaleX(1) scaleY(1);transform:scaleX(1) scaleY(1);opacity:1;-ms-filter:none;filter:none}}@-webkit-keyframes growFromRight{0%{-webkit-transform:scaleX(0) scaleY(0);-moz-transform:scaleX(0) scaleY(0);-o-transform:scaleX(0) scaleY(0);-ms-transform:scaleX(0) scaleY(0);transform:scaleX(0) scaleY(0);opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0)}100%{-webkit-transform:scaleX(1) scaleY(1);-moz-transform:scaleX(1) scaleY(1);-o-transform:scaleX(1) scaleY(1);-ms-transform:scaleX(1) scaleY(1);transform:scaleX(1) scaleY(1);opacity:1;-ms-filter:none;filter:none}}@-o-keyframes growFromRight{0%{-webkit-transform:scaleX(0) scaleY(0);-moz-transform:scaleX(0) scaleY(0);-o-transform:scaleX(0) scaleY(0);-ms-transform:scaleX(0) scaleY(0);transform:scaleX(0) scaleY(0);opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0)}100%{-webkit-transform:scaleX(1) scaleY(1);-moz-transform:scaleX(1) scaleY(1);-o-transform:scaleX(1) scaleY(1);-ms-transform:scaleX(1) scaleY(1);transform:scaleX(1) scaleY(1);opacity:1;-ms-filter:none;filter:none}}@keyframes growFromRight{0%{-webkit-transform:scaleX(0) scaleY(0);-moz-transform:scaleX(0) scaleY(0);-o-transform:scaleX(0) scaleY(0);-ms-transform:scaleX(0) scaleY(0);transform:scaleX(0) scaleY(0);opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0)}100%{-webkit-transform:scaleX(1) scaleY(1);-moz-transform:scaleX(1) scaleY(1);-o-transform:scaleX(1) scaleY(1);-ms-transform:scaleX(1) scaleY(1);transform:scaleX(1) scaleY(1);opacity:1;-ms-filter:none;filter:none}}@-moz-keyframes shrinkToRight{0%{-webkit-transform:scaleX(1) scaleY(1);-moz-transform:scaleX(1) scaleY(1);-o-transform:scaleX(1) scaleY(1);-ms-transform:scaleX(1) scaleY(1);transform:scaleX(1) scaleY(1);opacity:1;-ms-filter:none;filter:none}100%{-webkit-transform:scaleX(0) scaleY(0);-moz-transform:scaleX(0) scaleY(0);-o-transform:scaleX(0) scaleY(0);-ms-transform:scaleX(0) scaleY(0);transform:scaleX(0) scaleY(0);opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0)}}@-webkit-keyframes shrinkToRight{0%{-webkit-transform:scaleX(1) scaleY(1);-moz-transform:scaleX(1) scaleY(1);-o-transform:scaleX(1) scaleY(1);-ms-transform:scaleX(1) scaleY(1);transform:scaleX(1) scaleY(1);opacity:1;-ms-filter:none;filter:none}100%{-webkit-transform:scaleX(0) scaleY(0);-moz-transform:scaleX(0) scaleY(0);-o-transform:scaleX(0) scaleY(0);-ms-transform:scaleX(0) scaleY(0);transform:scaleX(0) scaleY(0);opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0)}}@-o-keyframes shrinkToRight{0%{-webkit-transform:scaleX(1) scaleY(1);-moz-transform:scaleX(1) scaleY(1);-o-transform:scaleX(1) scaleY(1);-ms-transform:scaleX(1) scaleY(1);transform:scaleX(1) scaleY(1);opacity:1;-ms-filter:none;filter:none}100%{-webkit-transform:scaleX(0) scaleY(0);-moz-transform:scaleX(0) scaleY(0);-o-transform:scaleX(0) scaleY(0);-ms-transform:scaleX(0) scaleY(0);transform:scaleX(0) scaleY(0);opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0)}}@keyframes shrinkToRight{0%{-webkit-transform:scaleX(1) scaleY(1);-moz-transform:scaleX(1) scaleY(1);-o-transform:scaleX(1) scaleY(1);-ms-transform:scaleX(1) scaleY(1);transform:scaleX(1) scaleY(1);opacity:1;-ms-filter:none;filter:none}100%{-webkit-transform:scaleX(0) scaleY(0);-moz-transform:scaleX(0) scaleY(0);-o-transform:scaleX(0) scaleY(0);-ms-transform:scaleX(0) scaleY(0);transform:scaleX(0) scaleY(0);opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0)}}#tns-header #tns-header-masthead #tns-masthead-utility-nav .masthead-search-icon{color:#515151;cursor:pointer;-webkit-transition:color 333ms;-moz-transition:color 333ms;-o-transition:color 333ms;-ms-transition:color 333ms;transition:color 333ms}#tns-header #tns-header-masthead #tns-masthead-utility-nav .masthead-search-icon:hover{color:#ff3287}#tns-header #tns-header-masthead #tns-masthead-utility-nav .masthead-search-icon svg{width:39px;height:auto;-webkit-transform:translate(20px,5px);-moz-transform:translate(20px,5px);-o-transform:translate(20px,5px);-ms-transform:translate(20px,5px);transform:translate(20px,5px)}#tns-header #tns-header-masthead #tns-masthead-utility-nav .masthead-search-icon-highlight{color:#ff3287}#tns-header #tns-header-masthead #tns-masthead-utility-nav .masthead-search-icon.active path{fill:#ff3287}#tns-header #tns-header-masthead #tns-masthead-utility-nav .masthead-search-close-icon{color:#515151;cursor:pointer;display:none}#tns-header #tns-header-masthead #tns-masthead-utility-nav .masthead-search-close-icon svg{width:16px;height:auto}#tns-header #tns-header-masthead #tns-masthead-utility-nav .masthead-search-close-icon path{fill:#ff3287}#tns-header .header-fixed.collapsed #tns-header-masthead .masthead-block{height:60px}#tns-header .header-fixed.collapsed #tns-header-masthead .masthead-block #tns-header-masthead-logo{width:175px;height:auto}#tns-header .header-fixed.collapsed #tns-header-masthead .masthead-block #tns-header-masthead-menu .menu-icon{display:inline;opacity:1;-ms-filter:none;filter:none}#tns-header #tns-header-search{position:absolute;top:0;left:0;width:100%;height:auto;color:#fff;z-index:6}#tns-header #tns-header-search .search-dropdown{height:60px;color:#fff;padding-bottom:60px;background:#111215;overflow:hidden}#tns-header #tns-header-search .search-dropdown .content-column{padding-top:120px;max-width:960px;-webkit-transition:all 333ms;-moz-transition:all 333ms;-o-transition:all 333ms;-ms-transition:all 333ms;transition:all 333ms}#tns-header #tns-header-search .search-dropdown .content-column #tns-
167header-search-form{position:fixed;margin:0 0 0 -10px;max-width:900px;width:100%;left:50%;-webkit-transform:translateX(-50%);-moz-transform:translateX(-50%);-o-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);z-index:99;top:62px;background-color:#111215;padding:30px 0 0;display:none}@media (max-width:1200px){#tns-header #tns-header-search .search-dropdown .content-column #tns-header-search-form{padding:12px 12px 0 30px;top:60px}}#tns-header #tns-header-search .search-dropdown .content-column #tns-header-search-form .search-form{padding-top:10px}#tns-header #tns-header-search .search-dropdown .content-column #tns-header-search-form .search-form .search-input{display:block;width:100%;height:40px;color:#fff;line-height:40px;padding-left:15px;font-size:17px;font-weight:500;border:1px solid #01aff4;border-right:none}#tns-header #tns-header-search .search-dropdown .content-column #tns-header-search-form .search-form .search-submit{height:40px;color:#01aff4;font-size:15px;text-transform:uppercase;border-radius:0;border:1px solid #01aff4;background:transparent}#tns-header #tns-header-search .search-dropdown .content-column #tns-header-search-form .search-form .search-submit:hover{color:#ff3287}#tns-header #tns-header-search .search-dropdown .content-column #tns-header-search-form.active-search{display:block}#tns-header #tns-header-search .search-dropdown .content-column #tns-header-search-results{position:relative;margin:21px 0 0 0;height:100vh;padding:30px 0 300px 0;overflow-x:hidden}@media (max-width:1023.98px){#tns-header #tns-header-search .search-dropdown .content-column #tns-header-search-results{margin:0}}@media (max-width:767.98px){#tns-header #tns-header-search .search-dropdown .content-column #tns-header-search-results{position:absolute;padding-right:30px}#tns-header #tns-header-search .search-dropdown .content-column #tns-header-search-results .col-75{min-width:100%;max-width:100%}}#tns-header #tns-header-search .search-dropdown .content-column #tns-header-search-results .search-results-item-link{display:block;color:#01aff4;margin-bottom:40px}#tns-header #tns-header-search .search-dropdown .content-column #tns-header-search-results .search-results-item-link:hover{color:#ff3287}#tns-header #tns-header-search .search-dropdown .content-column #tns-header-search-results .search-results-item-link .search-results-item-thumbnail-col{min-width:100px;max-width:100px;display:none}#tns-header #tns-header-search .search-dropdown .content-column #tns-header-search-results .search-results-item-link .search-results-item-thumbnail-col img{display:block;height:50px;width:auto}#tns-header #tns-header-search .search-dropdown .content-column #tns-header-search-results .search-results-item-link .search-results-item-title{font-size:17px;font-weight:600}#tns-header #tns-header-search .search-dropdown .content-column #tns-header-search-results .search-results-item-link .search-results-item-byline{color:#eaeff3;font-size:14px;opacity:.7;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=70)";filter:alpha(opacity=70)}#tns-header #tns-header-search .search-dropdown .content-column #tns-header-search-results .search-results-item-link .search-results-item-excerpt{color:#fff;font-size:15px}#tns-header #tns-header-search .search-dropdown .content-column #tns-header-search-results .search-results-more-button{display:none;max-width:150px;font-size:14px;font-weight:500;text-transform:uppercase;border:1px solid #01aff4;background:transparent}#tns-header #tns-header-search .search-dropdown .content-column #tns-header-search-results .search-results-more-button:hover{border:1px solid #ff3287;color:#ff3287}#tns-header #tns-header-mobile-nav{position:absolute;top:0;left:0;width:100%;height:auto;z-index:5}#tns-header #tns-header-mobile-nav .mobile-nav-dropdown{height:60px;color:#fff;background:#111215;overflow:hidden}@media (max-width:768px){#tns-header #tns-header-mobile-nav .mobile-nav-dropdown{overflow-y:auto}}#tns-header #tns-header-mobile-nav .mobile-nav-dropdown .content-column{padding-top:150px;-webkit-transition:all 333ms;-moz-transition:all 333ms;-o-transition:all 333ms;-ms-transition:all 333ms;transition:all 333ms}@media (max-width:1023px){#tns-header #tns-header-mobile-nav .mobile-nav-dropdown .content-column{padding-top:100px}}#tns-header #tns-header-mobile-nav .mobile-nav-dropdown .content-column .mobile-nav-row{-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}#tns-header #tns-header-mobile-nav .mobile-nav-dropdown .content-column .mobile-nav-row .mobile-nav-col{margin-bottom:60px}@media (max-width:1023px){#tns-header #tns-header-mobile-nav .mobile-nav-dropdown .content-column .mobile-nav-row .mobile-nav-col{min-width:33.333%;max-width:33.333%}#tns-header #tns-header-mobile-nav .mobile-nav-dropdown .content-column .mobile-nav-row .mobile-nav-col:nth-child(4){-webkit-box-ordinal-group:1;-moz-box-ordinal-group:1;-o-box-ordinal-group:1;-ms-flex-order:1;-webkit-order:1;order:1}#tns-header #tns-header-mobile-nav .mobile-nav-dropdown .content-column .mobile-nav-row .mobile-nav-col:nth-child(1){-webkit-box-ordinal-group:2;-moz-box-ordinal-group:2;-o-box-ordinal-group:2;-ms-flex-order:2;-webkit-order:2;order:2}#tns-header #tns-header-mobile-nav .mobile-nav-dropdown .content-column .mobile-nav-row .mobile-nav-col:nth-child(2){-webkit-box-ordinal-group:3;-moz-box-ordinal-group:3;-o-box-ordinal-group:3;-ms-flex-order:3;-webkit-order:3;order:3}#tns-header #tns-header-mobile-nav .mobile-nav-dropdown .content-column .mobile-nav-row .mobile-nav-col:nth-child(3){-webkit-box-ordinal-group:4;-moz-box-ordinal-group:4;-o-box-ordinal-group:4;-ms-flex-order:4;-webkit-order:4;order:4}#tns-header #tns-header-mobile-nav .mobile-nav-dropdown .content-column .mobile-nav-row .mobile-nav-col:nth-child(5){-webkit-box-ordinal-group:5;-moz-box-ordinal-group:5;-o-box-ordinal-group:5;-ms-flex-order:5;-webkit-order:5;order:5}}@media (max-width:768px){#tns-header #tns-header-mobile-nav .mobile-nav-dropdown .content-column .mobile-nav-row .mobile-nav-col{min-width:50%;max-width:50%}}@media (max-width:599px){#tns-header #tns-header-mobile-nav .mobile-nav-dropdown .content-column .mobile-nav-row .mobile-nav-col{min-width:100%;max-width:100%}}#tns-header #tns-header-mobile-nav .mobile-nav-dropdown .content-column .mobile-nav-row .mobile-nav-header{font-size:12px;font-weight:600;margin-bottom:20px}#tns-header #tns-header-mobile-nav .mobile-nav-dropdown .content-column .mobile-nav-row .mobile-nav-menu a{display:block;color:#fff;font-size:14px;text-decoration:none;margin-bottom:10px}#tns-header #tns-header-mobile-nav .mobile-nav-dropdown .content-column .mobile-nav-row .mobile-nav-menu a:hover{color:#ff3287}#tns-header #tns-header-nav-channels{position:absolute;top:0;left:0;width:100%;height:115px;background:#fff;border-bottom:1px solid #d2d4d8;-webkit-transition:all 333ms;-moz-transition:all 333ms;-o-transition:all 333ms;-ms-transition:all 333ms;transition:all 333ms;z-index:4}@media (max-width:1023px){#tns-header #tns-header-nav-channels{height:60px}}@media (max-width:767px){#tns-header #tns-header-nav-channels{display:none}}#tns-header #tns-header-nav-channels .channels-nav{position:absolute;
167left:0;bottom:0;width:100%;height:35px;line-height:35px}#tns-header #tns-header-nav-channels .channels-nav-block{width:100%;max-width:1200px;margin:0 auto 0 auto;text-align:center}#tns-header #tns-header-nav-channels .channels-nav-block a,#tns-header #tns-header-nav-channels display inline-block{color:#0e1013;font-size:14px;font-weight:600;letter-spacing:1.2px;margin:0 7px 0 7px;text-decoration:none}#tns-header #tns-header-nav-channels .channels-nav-block a:hover{color:#01aff4}#tns-header .header-fixed.collapsed #tns-header-nav-channels{height:60px}#tns-header #tns-header-nav-channels-dropdown{position:absolute;top:0;left:0;width:100%;z-index:3;-webkit-box-shadow:5px 10px #888;box-shadow:5px 10px #888}#tns-header #tns-header-nav-topics{position:absolute;top:0;left:0;width:100%;height:150px;background:#fff;border-bottom:1px solid #e9eaeb;-webkit-transition:all 333ms;-moz-transition:all 333ms;-o-transition:all 333ms;-ms-transition:all 333ms;transition:all 333ms;z-index:2}@media (max-width:1023px){#tns-header #tns-header-nav-topics{height:60px}}@media (max-width:767px){#tns-header #tns-header-nav-topics{display:none}}#tns-header #tns-header-nav-topics .topics-nav{position:absolute;left:0;bottom:0;width:100%;height:35px;line-height:35px}#tns-header #tns-header-nav-topics .topics-nav-block{width:100%;max-width:1200px;margin:0 auto 0 auto;text-align:center}#tns-header #tns-header-nav-topics .topics-nav-block a{display:inline-block;font-size:13px;font-weight:500;letter-spacing:1.6px;color:#3c3c3c;margin:0 7px 0 7px;text-decoration:none;-webkit-transition:all 99ms;-moz-transition:all 99ms;-o-transition:all 99ms;-ms-transition:all 99ms;transition:all 99ms}#tns-header #tns-header-nav-topics .topics-nav-block a:hover{color:#ff3287}#tns-header #tns-header-nav-topics .topics-nav-block a.active{color:#ff3287}#tns-header .header-fixed.collapsed #tns-header-nav-topics{height:60px}#tns-header #tns-header-nav-topics-dropdown{position:absolute;top:150px;left:0;width:100%;height:auto;z-index:1}#tns-header #tns-header-nav-topics-dropdown .nav-topics-dropdown{width:100%;height:0;overflow:hidden}#tns-header #tns-header-nav-topics-dropdown .nav-topics-dropdown .content{width:100%;max-width:720px;padding:40px 30px 0 30px;margin:0 auto 0 auto;display:none;opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0)}#tns-header #tns-header-nav-topics-dropdown .nav-topics-dropdown .content a{display:block;width:100%;height:30px;line-height:30px;padding-left:10px;border-radius:5px;color:#fff;font-size:12px;margin-bottom:1px;text-decoration:none;-webkit-transition:all 133ms;-moz-transition:all 133ms;-o-transition:all 133ms;-ms-transition:all 133ms;transition:all 133ms}#tns-header #tns-header-nav-topics-dropdown .nav-topics-dropdown .content a:hover{opacity:1;-ms-filter:none;filter:none;background:rgba(255,255,255,0.072)}#tns-header #tns-header-nav-topics-dropdown .nav-topics-dropdown .col-topics{padding-right:20px}#tns-header #tns-header-nav-topics-dropdown .nav-topics-dropdown .col-topics ul{list-style-type:none;padding:0;margin:0}#tns-header #tns-header-nav-topics-dropdown .nav-topics-dropdown .col-topics a{font-weight:600;text-transform:uppercase;opacity:.63;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=63)";filter:alpha(opacity=63)}#tns-header #tns-header-nav-topics-dropdown .nav-topics-dropdown .col-topics a.active{opacity:1;-ms-filter:none;filter:none;background:rgba(255,255,255,0.072)}#tns-header #tns-header-nav-topics-dropdown .nav-topics-dropdown .col-latest-stories a{height:auto;font-size:14px;font-weight:500;line-height:133%;padding-left:0;opacity:.9;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=90)";filter:alpha(opacity=90);-webkit-transition:all 99ms;-moz-transition:all 99ms;-o-transition:all 99ms;-ms-transition:all 99ms;transition:all 99ms}#tns-header #tns-header-nav-topics-dropdown .nav-topics-dropdown .col-latest-stories a:hover{background:rgba(255,255,255,0)}#tns-header #tns-header-nav-topics-dropdown .nav-topics-dropdown .topic-latest-stories{display:none;opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0)}#tns-header #tns-header-nav-topics-dropdown .nav-topics-dropdown .topics-latest-story{margin-bottom:20px}#tns-header #tns-header-nav-topics-dropdown .nav-topics-dropdown .topics-latest-story .byline{color:#fff;font-size:11px;opacity:.5;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";filter:alpha(opacity=50)}#tns-header #tns-header-nav-topics-dropdown .nav-topics-dropdown .topics-latest-story .byline a{dis
167play:inline;font-size:11px;margin:none;padding:none;-webkit-transition:all 121ms;-moz-transition:all 121ms;-o-transition:all 121ms;-ms-transition:all 121ms;transition:all 121ms}#tns-header #tns-header-nav-topics-dropdown .nav-topics-dropdown .topics-latest-story .byline a:hover{opacity:1;-ms-filter:none;filter:none}.ad-container.native-top{position:relative;width:100%;min-height:70px}#tns-footer{display:block;width:100%;padding:50px 0 150px 0;background:#1e2329}#tns-footer .content-column{min-height:auto}#tns-footer #tns-footer-logo .footer-logo .logo{max-width:214px;display:block;height:auto;max-width:115px;width:100%}@media (max-width:639.98px){#tns-footer #tns-footer-logo .footer-logo .logo{margin-bottom:30px}}#tns-footer #tns-footer-nav-menus{color:#fff}#tns-footer #tns-footer-nav-menus .footer-nav-row{-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}#tns-footer #tns-footer-nav-menus .footer-nav-row .footer-nav-col{margin-bottom:50px;padding-right:15px}@media (max-width:1023px){#tns-footer #tns-footer-nav-menus .footer-nav-row .footer-nav-col{min-width:33.333%;max-width:33.333%}}@media (max-width:768px){#tns-footer #tns-footer-nav-menus .footer-nav-row .footer-nav-col{min-width:50%;max-width:50%}}@media (max-width:599px){#tns-footer #tns-footer-nav-menus .footer-nav-row .footer-nav-col{min-width:100%;max-width:100%}}#tns-footer #tns-footer-nav-menus .footer-nav-row .footer-nav-header{font-size:13px;font-weight:600;margin-bottom:20px}#tns-footer #tns-footer-nav-menus .footer-nav-row .footer-nav-menu a{display:block;color:#fff;font-size:13px;font-weight:400px;line-height:1.2;text-decoration:none;margin-bottom:5px}@media (max-width:1023px){#tns-footer #tns-footer-nav-menus .footer-nav-row .footer-nav-menu a{font-size:17px}}#tns-footer #tns-footer-nav-menus .footer-nav-row .footer-nav-menu a:hover{color:#ff3287}#tns-footer #tns-footer-nav-menus .footer-nav-row .roadmap-link{display:block;color:#fff;line-height:20px}#tns-footer #tns-footer-nav-menus .footer-nav-row .roadmap-link:hover{color:#fff}#tns-footer #tns-footer-nav-menus .footer-nav-row .roadmap-link:hover .footer-nav-header{color:#ff3287}#tns-footer #tns-footer-nav-menus .footer-nav-row .roadmap-link svg{vertical-align:middle;width:20px;height:auto;margin-right:5px}#tns-footer #tns-footer-nav-menus .footer-nav-row .roadmap-copy,#tns-footer #tns-footer-nav-menus .footer-nav-row .roadmap-copy p{font-size:13px;line-height:1.2}@media (max-width:1023px){#tns-footer #tns-footer-nav-menus .footer-nav-row .roadmap-copy,#tns-footer #tns-footer-nav-menus .footer-nav-row .roadmap-copy p{font-size:17px}}#tns-footer #tns-footer-nav-menus .footer-nav-row .roadmap-page-link{display:block;color:#fff;font-size:13px;line-height:1.2;margin-bottom:7px}@media (max-width:1023px){#tns-footer #tns-footer-nav-menus .footer-nav-row .roadmap-page-link{font-size:17px}}#tns-footer #tns-footer-nav-menus .footer-nav-row .roadmap-page-link svg{height:8px;width:auto}#tns-footer #tns-footer-nav-menus .footer-nav-row .roadmap-page-link svg path{f
167ill:#fff}#tns-footer #tns-footer-nav-menus .footer-nav-row .roadmap-page-link:hover{color:#ff3287}#tns-footer #tns-footer-nav-menus .footer-nav-row .roadmap-page-link:hover svg path{fill:#ff3287}#tns-footer #tns-footer-legal{width:100%}#tns-footer #tns-footer-legal .row{-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}@media (max-width:899px){#tns-footer #tns-footer-legal .row{-webkit-box-direction:reverse;-moz-box-direction:reverse;-o-box-direction:reverse;-webkit-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}}@media (max-width:899px){#tns-footer #tns-footer-legal .row .col-75,#tns-footer #tns-footer-legal .row .col-25{min-width:100%;max-width:100%}}#tns-footer #tns-footer-legal .copyright{font-size:14px;color:#a5a9b0;letter-spacing:.2px;line-height:133%;font-weight:300;margin-bottom:5px}@media (max-width:768px){#tns-footer #tns-footer-legal .copyright{margin-bottom:15px}}#tns-footer #tns-footer-legal .terms{width:100%}#tns-footer #tns-footer-legal .terms a{color:#a5a9b0;font-size:14px;letter-spacing:.2px;line-height:133%;font-weight:300;margin-right:10px;text-decoration:none}#tns-footer #tns-footer-legal .terms a:hover,#tns-footer #tns-footer-legal .terms a:focus,#tns-footer #tns-footer-legal .terms a:active,#tns-footer #tns-footer-legal .terms a:focus:active{color:#ff3287}@media (max-width:768px){#tns-footer #tns-footer-legal .terms a{font-size:16px;margin-bottom:5px;display:block}}#tns-footer #tns-footer-legal .footer-nav-header{color:#fff;font-size:13px;font-weight:600}#tns-footer #tns-footer-legal .social-links{margin-left:-7px}@media (max-width:899px){#tns-footer #tns-footer-legal .social-links{margin-bottom:50px}}#tns-footer #tns-footer-legal .social-links .follow-icon{width:30px;height:30px;display:-webkit-inline-box;display:-moz-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-box;display:inline-flex;-webkit-box-align:center;-moz-box-align:center;-o-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;vertical-align:middle}#tns-footer #tns-footer-legal .social-links .follow-icon svg{height:19px}#tns-footer #tns-footer-legal .social-links .follow-icon .fill path{fill:rgba(255,255,255,0.63);stroke-width:0}#tns-footer #tns-footer-legal .social-links .follow-icon .stroke path{f
167ill:rgba(255,255,255,0.63);fill:none}#tns-footer #tns-footer-legal .social-links .follow-icon:hover .fill path{fill:#01aff4}#tns-footer #tns-footer-legal .social-links .follow-icon:hover .stroke path{stroke:#01aff4}#tns-footer #tns-footer-legal .social-links .follow-icon-mastadon:hover .fill path{fill:#5e54ea}#tns-footer #tns-footer-legal .social-links .follow-icon-mastadon:hover .stroke path{stroke:#5e54ea}#tns-footer #tns-footer-legal .social-links .follow-icon-twitter:hover .fill path{fill:#1c9bf0}#tns-footer #tns-footer-legal .social-links .follow-icon-twitter:hover .stroke path{stroke:#1c9bf0}#tns-footer #tns-footer-legal .social-links .follow-icon-hackernews:hover .fill path{fill:#fe6600}#tns-footer #tns-footer-legal .social-links .follow-icon-hackernews:hover .stroke path{stroke:#fe6600}#tns-footer #tns-footer-legal .social-links .follow-icon-linkedin:hover .fill path{fill:#0a66c2}#tns-footer #tns-footer-legal .social-links .follow-icon-linkedin:hover .stroke path{stroke:#0a66c2}#tns-footer #tns-footer-legal .social-links .follow-icon-reddit:hover .fill path{fill:#ff4500}#tns-footer #tns-footer-legal .social-links .follow-icon-reddit:hover .stroke path{stroke:#ff4500}#tns-footer #tns-footer-legal .social-links .follow-icon-facebook:hover .fill path{fill:#3c5998}#tns-footer #tns-footer-legal .social-links .follow-icon-facebook:hover .stroke path{stroke:#3c5998}#tns-footer #tns-footer-legal .social-links .follow-icon-instagram:hover .fill path{fill:#66b6fa}#tns-footer #tns-footer-legal .social-links .follow-icon-instagram:hover .
167stroke path{stroke:#66b6fa}#tns-footer #tns-footer-legal .social-links .follow-icon-youtube{vertical-align:top}#tns-footer #tns-footer-legal .social-links .follow-icon-youtube svg{height:27px}#tns-footer #tns-footer-legal .social-links .follow-icon-youtube:hover .fill path{fill:#f10001}#tns-footer #tns-footer-legal .social-links .follow-icon-youtube:hover .stroke path{stroke:#f10001}#tns-footer-bar{position:fixed;display:block;left:0;right:0;bottom:-150px;width:100%;color:#fff;background:#18191d;z-index:1000}#tns-footer-bar .social-heading{font-size:12px;font-weight:700}#tns-footer-bar .social-links{margin-left:-7px}#tns-footer-bar .social-links .follow-icon svg{height:22px}#tns-footer-bar .social-links .follow-icon .fill path{fill:rgba(255,255,255,0.63);stroke-width:0}#tns-footer-bar .social-links .follow-icon .stroke path{stroke:rgba(255,255,255,0.63);fill:none}#tns-footer-bar .social-links .follow-icon-mastadon svg{height:26px}#tns-footer-bar .social-links .follow-icon-mastadon:hover .fill path{fill:#5e54ea}#tns-footer-bar .social-links .follow-icon-mastadon:hover .stroke path{stroke:#5e54ea}#tns-footer-bar .social-links .follow-icon-twitter{margin-left:-5px;height:16px}#tns-footer-bar .social-links .follow-icon-twitter:hover .fill path{fill:#1c9bf0}#tns-footer-bar .social-links .follow-icon-twitter:hover .stroke path{stroke:#1c9bf0}#tns-footer-bar .social-links .follow-icon-hackernews:hover .fill path{fill:#fe6600}#tns-footer-bar .social-links .follow-icon-hackernews:hover .stroke path{stroke:#fe6600}#tns-footer-bar .social-links .follow-icon-linkedin:hover .fill path{fill:#0a66c2}#tns-footer-bar .social-links .follow-icon-linkedin:hover .stroke path{stroke:#0a66c2}@media (max-width:499px){#tns-footer-bar .social-links .follow-icon-instagram{display:none}}#tns-footer-bar .social-links .follow-icon-instagram:hover .fill path{fill:#66b6fa}
167#tns-footer-bar .social-links .follow-icon-instagram:hover .stroke path{stroke:#66b6fa}#tns-footer-bar .social-links .follow-icon-reddit:hover .fill path{fill:#ff4500}#tns-footer-bar .social-links .follow-icon-reddit:hover .stroke path{stroke:#ff4500}#tns-footer-bar .social-links .follow-icon-facebook:hover .fill path{fill:#3c5998}#tns-footer-bar .social-links .follow-icon-facebook:hover .stroke path{stroke:#3c5998}@media (max-width:389px){#tns-footer-bar .social-links .follow-icon-facebook{display:none}}#tns-footer-bar .social-links .follow-icon-youtube{vertical-align:top}#tns-footer-bar .social-links .follow-icon-youtube svg{height:27px}#tns-footer-bar .social-links .follow-icon-youtube:hover .fill path{fill:#f10001}#tns-footer-bar .social-links .follow-icon-youtube:hover .stroke path{stroke:#f10001}#tns-footer-bar .content-subscribe{position:absolute;top:0;right:0;width:100%;max-width:200px;padding-right:10px;min-height:100%}@media (max-width:569px){#tns-footer-bar .content-subscribe{max-width:110px}}#tns-footer-bar .content-subscribe .subscribe-heading{padding-top:10px;font-size:12px;font-weight:700}#tns-maintenance{position:relative}#tns-404{min-height:calc(100vh - 150px);padding:100px 0 70px}#tns-404 .content-column{max-width:830px}#tns-404 .heading{font-size:36px;font-weight:900;margin-bottom:20px}#tns-404 .sub-heading{margin-bottom:30px}#tns-404 .sub-heading img{display:inline;width:21px;height:auto;vertical-align:top}#tns-404 .help-row{-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}#tns-404 .help-row .help-col{padding-right:15px}@media (max-width:599px){#tns-404 .help-row .help-col{min-width:100%;max-width:100%;margin-bottom:30px}}#tns-404 .help-row .help-col .help-heading{font-weight:700;margin-bottom:5px}#tns-403{min-height:calc(100vh - 150px);padding:100px 0 70px}#tns-403 .content-column{max-width:830px}#tns-403 .heading{font-size:36px;font-weight:900;margin-bottom:20px}#tns-403 .sub-heading{margin-bottom:30px}#tns-403 .sub-heading img{display:inline;width:21px;height:auto;vertical-align:top}#tns-403 .help-row{-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}#tns-403 .help-row .help-col{padding-right:15px}@media (max-width:599px){#tns-403 .help-row .help-col{min-width:100%;max-width:100%;margin-bottom:30px}}#tns-403 .help-row .help-col .help-heading{font-weight:700;margin-bottom:5px}#tns-about{padding-top:50px;padding-bottom:50px}@media (max-width:767px){#tns-about{padding-top:30px}}#tns-about #tns-about-content{position:relative}#tns-about #tns-about-content .row{-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-flow:wrap;-ms-flex-flow:wrap;flex-flow:wrap}#tns-about #tns-about-content .col-50{padding:0 20px 0 0}@media (max-width:1023.98px){#tns-about #tns-about-content .col-50{min-width:75%;max-width:75%}}@media (max-width:767.98px){#tns-about #tns-about-content .col-50{padding:0;min-width:100%;max-width:100%}}@media (max-width:1023.98px){#tns-about #tns-about-content .col-25:first-child{min-width:100%;max-width:100%;-webkit-box-ordinal-group:-1;-moz-box-ordinal-group:-1;-o-box-ordinal-group:-1;-ms-flex-order:-1;-webkit-order:-1;order:-1}}@media (max-width:767.98px){#tns-about #tns-about-content .col-25{padding:0;min-width:100%;max-width:100%;-webkit-box-ordinal-group:-1;-moz-box-ordinal-group:-1;-o-box-ordinal-group:-1;-ms-flex-order:-1;-webkit-order:-1;order:-1}}#tns-about #tns-about-content #tns-about-left-sidebar{position:relative}@media (min-width:992px){#tns-about #tns-about-content #tns-about-left-sidebar{padding-right:20px}}#tns-about #tns-about-content #tns-about-left-sidebar .main-title{font-size:38px;font-weight:normal;width:100%;line-height:1.2;color:#01aff4;margin-bottom:20px}@media (max-width:1199.98px){#tns-about #tns-about-content #tns-about-left-sidebar .main-title{font-size:32px}}@media (max-width:991.98px){#tns-about #tns-about-content #tns-about-left-sidebar .main-title{font-size:28px}}@media (max-width:767.98px){#tns-about #tns-about-content #tns-about-left-sidebar .main-title{font-size:26px}}#tns-about #tns-about-content #tns-about-main-content{position:relative}#tns-about #tns-about-content #tns-about-main-content .main-title{font-size:22px;font-weight:normal;width:100%;line-height:1.35;color:#3c3c3c;margin-bottom:25px;letter-spacing:0}#tns-about #tns-about-content #tns-about-main-content .section-heading{font-size:22px;font-weight:normal;width:100%;line-height:1.35;color:#3c3c3c;margin-bottom:25px;letter-spacing:0;padding:0;margin-bottom:0;border:0;text-transform:none}#tns-about #tns-about-content #tns-about-main-content .description{font-size:14px;font-weight:normal;width:100%;line-height:1.35;color:#3c3c3c;margin-bottom:20px;letter-spacing:0}#tns-about #tns-about-content #tns-about-main-content .description h1,#tns-about #tns-about-content #tns-about-main-content .description h2,#tns-about #tns-about-content #tns-about-main-content .description h3,#tns-about #tns-about-content #tns-about-main-content .description h4,#tns-about #tns-about-content #tns-about-main-content .description h5,#tns-about #tns-about-content #tns-about-main-content .description h6{font-weight:normal;color:#3c3c3c}#tns-about #tns-about-content #tns-about-main-content .description h1:not(:first-child),#tns-about #tns-about-content #tns-about-main-content .description h2:not(:first-child),#tns-about #tns-about-content #tns-about-main-content .description h3:not(:first-child),#tns-about #tns-about-content #tns-about-main-content .description h4:not(:first-child),#tns-about #tns-about-content #tns-about-main-content .description h5:not
167(:first-child),#tns-about #tns-about-content #tns-about-main-content .description h6:not(:first-child){border-top:1px solid rgba(60,60,60,0.5);margin-top:0;margin-bottom:20px;padding-top:20px}#tns-about #tns-about-content #tns-about-main-content .description p,#tns-about #tns-about-content #tns-about-main-content .description li{font-size:14px;font-weight:normal;width:100%;line-height:1.35;color:#3c3c3c;margin-bottom:20px;letter-spacing:0;display:inline-block}#tns-about #tns-about-content #tns-about-main-content .description p a,#tns-about #tns-about-content #tns-about-main-content .description li a{color:#01aff4;font-size:16px;word-break:break-word;width:100%}#tns-about #tns-about-content #tns-about-main-content .description p a:first-letter,#tns-about #tns-about-content #tns-about-main-content .description li a:first-letter{text-transform:capitalize}#tns-about #tns-about-content #tns-about-main-content .description li{margin:0 0 0 5px}#tns-about #tns-about-content #tns-about-right-sidebar{position:relative;padding-left:20px}@media (max-width:1023.98px){#tns-about #tns-about-content #tns-about-right-sidebar{margin:10px 0 20px;padding:0}}#tns-about #tns-about-content #tns-about-right-sidebar .sidebar-wrap{display:inline-block;border:1px solid #01aff4;padding:20px 15px;width:100%}#tns-about #tns-about-content #tns-about-right-sidebar .sidebar-wrap .description{display:inline-block;margin:0;width:100%;font-size:14px;font-weight:normal;color:#3c3c3c;line-height:1.3}#tns-about #tns-about-content #tns-about-right-sidebar .sidebar-wrap .description h1,#tns-about #tns-about-content #tns-about-right-sidebar .sidebar-wrap .description h2,#tns-about #tns-about-content #tns-about-right-sidebar .sidebar-wrap .description h3,#tns-about #tns-about-content #tns-about-right-sidebar .sidebar-wrap .description h4,#tns-about #tns-about-content #tns-about-right-sidebar .sidebar-wrap .description h5,#tns-about #tns-about-content #tns-about-right-sidebar .sidebar-wrap .description h6{color:#3c3c3c;font-size:14px;line-height:1.3;margin-top:0}#tns-about #tns-about-content #tns-about-right-sidebar .sidebar-wrap .description p{width:100%;display:inline-block;font-size:14px;color:#3c3c3c;line-height:1.33;margin-bottom:15px}#tns-about #tns-about-content #tns-about-right-sidebar .sidebar-wrap .description a{font-size:14px;color:#3c3c3c;line-height:1.33}#tns-about #tns-about-content #tns-about-right-sidebar .sidebar-wrap .description a:hover{color:#01aff4}#tns-about #tns-about-content #tns-about-right-sidebar .social-share{width:100%;display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex;-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-flow:wrap;-ms-flex-flow:wrap;flex-flow:wrap}#tns-about #tns-about-content #tns-about-right-sidebar .social-share .social-share-wrap{width:100%;display:-webkit-inline-box;display:-moz-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-box;display:inline-flex;margin:15px 0;-webkit-box-align:start;-moz-box-align:start;-o-box-align:start;-ms-flex-align:start;-webkit-align-items:flex-start;align-items:flex-start;-webkit-box-pack:start;-moz-box-pack:start;-o-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}#tns-about #tns-about-content #tns-about-right-sidebar .social-share .social-share-wrap .link{width:30px;height:30px;display:-webkit-inline-box;display:-moz-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-box;display:inline-flex;-webkit-box-align:center;-moz-box-align:center;-o-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:start;-moz-box-pack:start;-o-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;margin-right:5px}#tns-about #tns-about-content #tns-about-right-sidebar .social-share .social-share-wrap .link svg{height:17px;width:19px}#tns-about #tns-about-content #tns-about-right-sidebar .social-share .social-share-wrap .link svg.stroke{fill:none;stroke:#3c3c3c}#tns-about #tns-about-content #tns-about-right-sidebar .social-share .social-share-wrap .link svg.fill{stroke:none;fill:#3c3c3c}#tns-about #tns-about-content #tns-about-right-sidebar .social-share .social-share-wrap .link:hover .stroke{stroke:#01aff4}#tns-about #tns-about-content #tns-about-right-sidebar .social-share .social-share-wrap .link:hover .fill{fill:#01aff4}#tns-about #tns-about-content #tns-about-our-founders-team{position:relative;padding:30px 0;border-top:1px solid rgba(60,60,60,0.5);border-bottom:1px solid rgba(60,60,60,0.5)}#tns-about #tns-about-content #tns-about-our-founders-team .content +.content{border-top:1px solid rgba(60,60,60,0.5);padding-top:30px;margin-top:40px}#tns-about #tns-about-content #tns-about-our-founders-team .section-heading{font-size:22px;font-weight:normal;width:100%;line-height:1.35;color:#3c3c3c;margin-bottom:25px;letter-spacing:0;padding:0;margin-bottom:0;border:0;text-transform:none}#tns-about #tns-about-content #tns-about-our-founders-team .outer-wrapper{display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex;-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-flow:wrap;-ms-flex-flow:wrap;flex-flow:wrap}#tns-about #tns-about-content #tns-about-our-founders-team .outer-wrapper .block{width:calc(100% / 2 - 10px);display:-webkit-inline-box;display:-moz-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-box;display:inline-flex;-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-flow:wrap;-ms-flex-flow:wrap;flex-flow:wrap;margin-top:30px}@media (max-width:767.98px){#tns-about #tns-about-content #tns-about-our-founders-team .outer-wrapper .block{width:100%;margin-top:20px}}#tns-about #tns-about-content #tns-about-our-founders-team .outer-wrapper .block:nth-child(even){margin-left:20px}@media (max-width:767.98px){#tns-about #tns-about-content #tns-about-our-founders-team .outer-wrapper .block:nth-child(even){margin-left:0}}#tns-about #tns-about-content #tns-about-our-founders-team .outer-wrapper .block .block-media{width:80px;height:80px}@media (max-width:767.98px){#tns-about #tns-about-content #tns-about-our-founders-team .outer-wrapper .block .block-media{width:75px;height:75px}}#tns-about #tns-about-content #tns-about-our-founders-team .outer-wrapper .block .block-media .default-image,#tns-about #tns-about-content #tns-about-our-founders-team .outer-wrapper .block .block-media img{aspect-ratio:1/1;display:block;object-fit:cover}#tns-about #tns-about-content #tns-about-our-founders-team .outer-wrapper .block .block-content{width:calc(100% - 80px);padding-left:15px}@media (max-width:767.98px){#tns-about #tns-about-content #tns-about-our-founders-team .outer-wrapper .block .block-content{width:calc(100% - 75px)}}#tns-about #tns-about-content #tns-about-our-founders-team .outer-wrapper .block .block-member-name,#tns-about #tns-about-content #tns-about-our-founders-team .outer-wrapper .block .block-member-designation{font-size:14px;display:block;line-height:1.33;width:100%;font-weight:bold;letter-spacing:0;color:#3c3c3c}#tns-about #tns-about-content #tns-about-our-founders-team .outer-wrapper .block .block-member-name a,#tns-about #tns-about-content #tns-about-our-founders-team .outer-wrapper .block .block-member-designation a{font-size:14px;display:inline-block;line-height:1.33;width:100%;font-weight:bold;vertical-align:middle;letter-spacing:0;color:#3c3c3c}#tns-about #tns-about-content #tns-about-our-founders-team .outer-wrapper .block .block-member-name a:hover,#tns-about #tns-about-content #tns-about-our-founders-team .outer-wrapper .block .block-member-designation a:hover{color:#01aff4}#tns-about #tns-about-content #tns-about-our-founders-team .outer-wrapper .block .block-member-designation{font-weight:normal;text-transform:none}#tns-about #tns-about-content #tns-about-our-founders-team .outer-wrapper .block .block-member-social-link{width:100%;margin:5px 0 0;display:inline-block;vertical-align:top}#tns-about #tns-about-content #tns-about-our-founders-team .outer-wrapper .block .block-member-social-link .link{width:25px;height:25px;display:-webkit-inline-box;display:-moz-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-box;display:inline-flex;-webkit-box-align:center;-moz-box-align:center;-o-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:start;-moz-box-pack:start;
167-o-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:start;justify-content:start;margin-right:2px}#tns-about #tns-about-content #tns-about-our-founders-team .outer-wrapper .block .block-member-social-link .link svg{width:18px;height:18px;position:relative;top:2px}#tns-about #tns-about-content #tns-about-our-founders-team .outer-wrapper .block .block-member-social-link .link svg.stroke{fill:none;stroke:#3c3c3c}#tns-about #tns-about-content #tns-about-our-founders-team .outer-wrapper .block .block-member-social-link .link svg.fill{stroke:none;fill:#3c3c3c}#tns-about #tns-about-content #tns-about-our-founders-team .outer-wrapper .block .block-member-social-link .link.twitter svg{width:15px;height:15px;position:static}#tns-about #tns-about-content #tns-about-our-founders-team .outer-wrapper .block .block-member-social-link .link:hover .stroke{stroke:#01aff4}#tns-about #tns-about-content #tns-about-our-founders-team .outer-wrapper .block .block-member-social-link .link:hover .fill{fill:#01aff4}#tns-about #tns-about-content #tns-about-our-founders-team .outer-wrapper .block .block-member-stories-link{display:inline-block;vertical-align:top}#tns-about #tns-about-content #tns-about-our-founders-team .outer-wrapper .block .block-member-stories-link a{font-size:14px;color:#3c3c3c;display:inline-block;padding:3px 0;line-height:1.3;margin:0;vertical-align:middle;letter-spacing:0}#tns-about #tns-about-content #tns-about-our-founders-team .outer-wrapper .block .block-member-stories-link a span{text-transform:capitalize}#tns-about #tns-about-content #tns-about-our-founders-team .outer-wrapper .block .block-member-stories-link a svg{position:relative;top:2px;height:12px;fill:#3c3c3c}#tns-about #tns-about-content #tns-about-our-founders-team .outer-wrapper .block .block-member-stories-link a:hover{color:#01aff4}#tns-about #tns-about-content #tns-about-our-founders-team .outer-wrapper .block .block-member-stories-link a:hover svg{fill:#01aff4}#tns-about #tns-about-content #tns-about-founding-sponsors{position:relative;padding:30px 0 0}#tns-about #tns-about-content #tns-about-founding-sponsors .heading{font-size:22px;font-weight:normal;width:100%;line-height:1.35;color:#3c3c3c;margin-bottom:15px;letter-spacing:0}#tns-about #tns-about-content #tns-about-founding-sponsors .heading h1,#tns-about #tns-about-content #tns-about-founding-sponsors .heading h2,#tns-about #tns-about-content #tns-about-founding-sponsors .heading h3,#tns-about #tns-about-content #tns-about-founding-sponsors .heading h4,#tns-about #tns-about-content #tns-about-founding-sponsors .heading h5,#tns-about #tns-about-content #tns-about-founding-sponsors .heading h6{margin:0 0 15px;font-weight:normal;font-size:22px;width:100%;line-height:1.35}#tns-about #tns-about-content #tns-about-founding-sponsors .heading p{font-size:16px;color:#3c3c3c;display:inline-block;width:100%;margin-bottom:5px}#tns-about #tns-about-content #tns-about-founding-sponsors .sponsors-logos-list{display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex;-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-flow:wrap;-ms-flex-flow:wrap;flex-flow:wrap;list-style:none;margin:0;padding:15px 0 0;-webkit-box-pack:justify;-moz-box-pack:justify;-o-box-pack:justify;-ms-flex-pack:justify;-webkit-justify-content:space-between;justify-content:space-between}@media (max-width:767.98px){#tns-about #tns-about-content #tns-about-founding-sponsors .sponsors-logos-list{padding:0}}#tns-about #tns-about-content #tns-about-founding-sponsors .sponsors-logos-list .sponsor-logo{max-width:calc(100% / 3 - 20px);width:100%;margin:0;display:-webkit-inline-box;display:-moz-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-box;display:inline-flex;-webkit-box-align:center;-moz-box-align:center;-o-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;min-height:45px;margin-bottom:45px}#tns-about #tns-about-content #tns-about-founding-sponsors .sponsors-logos-list .sponsor-logo .default-image,#tns-about #tns-about-content #tns-about-founding-sponsors .sponsors-logos-list .sponsor-logo img{max-height:45px}@media (max-width:1199.98px){#tns-about #tns-about-content #tns-about-founding-sponsors .sponsors-logos-list .sponsor-logo{margin-bottom:20px}}@media (max-width:767.98px){#tns-about #tns-about-content #tns-about-founding-sponsors .sponsors-logos-list .sponsor-logo{max-width:calc(100% / 3 - 10px);margin:10px 0}}#tns-category .content-column{margin-top:50px;margin-bottom:50px}@media (max-width:767px){#tns-category .content-column{margin-top:30px;margin-bottom:30px}}#tns-category .category-story-card-link{display:block;padding-bottom:10px;margin-bottom:20px;border-bottom:1px solid #c2c2c2}#tns-category .category-story-card-link:last-child{border-bottom:none}#tns-category .category-story-card-link:hover .headline{color:#01aff4}#tns-category .category-story-card-link .col-thumb img{display:block;width:100%;height:auto}#tns-category .category-story-card-link .col-headline{color:#515151;padding-left:15px}#tns-category .category-story-card-link .col-headline .post-title{padding:0;margin-top:-3px;font-size:18px;font-weight:500;text-decoration:none}#tns-category .category-story-card-link .col-headline .excerpt{margin-top:7px;color:#3c3c3c;font-size:14px;line-height:1.2}#tns-category .category-story-card-link:hover .post-title{color:#01aff4}#tns-category .category-footer-spacer{margin-bottom:50px}@media (max-width:767px){#tns-category .category-footer-spacer{margin-bottom:30px}}#tns-category #tns-category-heading{position:relative;margin-bottom:50px}#tns-category #tns-category-heading .title h1{line-height:1.12}@media (max-width:767px){#tns-category #tns-category-heading{margin-bottom:30px}}@media (max-width:1023px){#tns-category #tns-category-heading .row{-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}#tns-category #tns-category-heading .row .title{min-width:100%;max-width:100%}#tns-category #tns-category-heading .row .definition{min-width:80%;max-width:80%}#tns-category #tns-category-heading .row .empty{min-width:20%;max-width:20%}}@media (max-width:1023px){#tns-category #tns-category-heading .row .definition{min-width:90%;max-width:90%}#tns-category #tns-category-heading .row .empty{min-width:10%;max-width:10%}}#tns-category #tns-category-frame{position:relative;display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex}@media (max-width:899px){#tns-category #tns-category-frame .nav{display:none}#tns-category #tns-category-frame .content{min-width:65%;max-width:65%}#tns-category #tns-category-frame .sidebar{min-width:35%;max-width:35%}}@media (max-width:767px){#tns-category #tns-category-frame .nav{display:none}#tns-category #tns-category-frame .content{min-width:100%;max-width:100%}#tns-category #tns-category-frame .sidebar{display:none}}#tns-category #tns-category-frame #tns-category-frame-nav{position:sticky;top:110px;padding-right:40px}#tns-category #tns-category-frame #tns-category-frame-nav .heading-text{opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0)}#tns-category #tns-category-frame #tns-category-frame-nav .category-nav-option{dis
167play:block;color:#000}#tns-category #tns-category-frame #tns-category-frame-nav .category-nav-option:hover{color:#ff3287}#tns-category #tns-category-frame #tns-category-frame-nav .category-nav-option.active{color:#ff3287}#tns-category #tns-category-frame #tns-category-frame-content{position:relative}#tns-category #tns-category-frame #tns-category-frame-content .category-content-block{margin-bottom:40px}#tns-category #tns-category-frame #tns-category-frame-content .category-story-card{margin-top:10px;padding-bottom:10px;border-bottom:1px solid #c2c2c2}#tns-category #tns-category-frame #tns-category-frame-content .category-story-card:first-child{margin-top:0}#tns-category #tns-category-frame #tns-category-frame-content .category-story-card:last-child{border-bottom:none}#tns-category #tns-category-frame #tns-category-frame-content .category-story-card .col-thumb{min-width:100px;max-width:100px}@media (max-width:767px){#tns-category #tns-category-frame #tns-category-frame-content .category-story-card .col-thumb{min-width:70px;max-width:70px}}#tns-category #tns-category-frame #tns-category-frame-content .category-story-card .col-thumb .thumb{width:100px;height:50px;background:#f6f8fa}@media (max-width:767px){#tns-category #tns-category-frame #tns-category-frame-content .category-story-card .col-thumb .thumb{width:70px;height:35px}}#tns-category #tns-category-frame #tns-category-frame-content .category-story-card .col-headline .headline{padding-left:10px;font-size:16px;font-weight:500}@media (max-width:767px){#tns-category #tns-category-frame #tns-category-frame-content .category-story-card .col-headline .headline{font-size:15px}}#tns-category #tns-category-frame #tns-category-frame-content #tns-category-frame-content-block-essential-reading{position:relative}#tns-category #tns-category-frame #tns-category-frame-content #tns-category-frame-content-block-overview{position:relative}#tns-category #tns-category-frame #tns-category-frame-content #tns-category-frame-content-block-overview .overview-block{position:relative;width:100%;height:250px;margin-bottom:15px;overflow:hidden}#tns-category #tns-category-frame #tns-category-frame-content #tns-category-frame-content-block-overview .overview-block .fade{position:absolute;left:0;right:0;bottom:0;width:100%;height:90px;background:#fff;background:-webkit-linear-gradient(270deg, rgba(255,255,255,0) 0%, #fff 100%);background:-moz-linear-gradient(270deg, rgba(255,255,255,0) 0%, #fff 100%);background:-o-linear-gradient(270deg, rgba(255,255,255,0) 0%, #fff 100%);background:-ms-linear-gradient(270deg, rgba(255,255,255,0) 0%, #fff 100%);background:linear-gradient(180deg, rgba(255,255,255,0) 0%, #fff 100%);z-index:2}#tns-category #tns-category-frame #tns-category-frame-content #tns-category-frame-content-block-getting-started{position:relative}#tns-category #tns-category-frame #tns-category-frame-content #tns-category-frame-content-block-tutorials{position:relative}#tns-category #tns-category-frame #tns-category-frame-content #tns-category-frame-content-block-faq{position:relative}#tns-category #tns-category-frame #tns-category-frame-content #tns-category-frame-content-block-faq .question{font-weight:700}#tns-category #tns-category-frame #tns-category-frame-sidebar{position:sticky;top:110px;padding-left:40px}#tns-category #tns-category-frame #tns-category-frame-sidebar #tns-category-frame-sidebar-sponsors{position:relative;margin-bottom:30px}#tns-category #tns-category-frame #tns-category-frame-sidebar #tns-category-frame-sidebar-sponsors .sponsor-logo{display:block}#tns-category #tns-category-frame #tns-category-frame-sidebar #tns-category-frame-sidebar-sponsors .sponsor-logo:hover .copy{color:#ff3287}#tns-category #tns-category-frame #tns-category-frame-sidebar #tns-category-frame-sidebar-sponsors .sponsor-logo:hover .copy svg path{f
167ill:#ff3287}#tns-category #tns-category-frame #tns-category-frame-sidebar #tns-category-frame-sidebar-sponsors .sponsor-logo .logo-frame{width:100%;max-height:120px;display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex;-webkit-box-align:center;-moz-box-align:center;-o-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;padding:10px;background:#eaeff3;margin-bottom:10px}#tns-category #tns-category-frame #tns-category-frame-sidebar #tns-category-frame-sidebar-sponsors .sponsor-logo .logo-frame .logo-img{aspect-ratio:1.86/1;object-fit:contain;max-width:80%;max-height:70%}#tns-category #tns-category-frame #tns-category-frame-sidebar #tns-category-frame-sidebar-sponsors .sponsor-logo .copy{color:#515151;font-size:14px;line-height:1.33}@media (max-width:767px){#tns-category #tns-category-frame #tns-category-frame-sidebar #tns-category-frame-sidebar-sponsors .sponsor-logo .copy{font-size:17px}}#tns-category #tns-category-frame #tns-category-frame-sidebar #tns-category-frame-sidebar-sponsors .sponsor-logo .copy svg{height:8px;vertical-align:baseline}@media (max-width:767px){#tns-category #tns-category-frame #tns-category-frame-sidebar #tns-category-frame-sidebar-sponsors .sponsor-logo .copy svg{height:10px}}#tns-category #tns-category-frame #tns-category-frame-sidebar #tns-category-frame-sidebar-sponsors .sponsor-logo .copy svg path{f
167ill:#515151}#tns-category #tns-category-frame #tns-category-frame-sidebar #tns-category-frame-sidebar-share{position:relative;margin-bottom:30px}#tns-category #tns-category-frame #tns-category-frame-sidebar #tns-category-frame-sidebar-share .section-heading{margin-bottom:10px}#tns-category #tns-category-frame #tns-category-frame-sidebar #tns-category-frame-sidebar-promo{position:relative}#tns-category #tns-category-frame #tns-category-frame-sidebar #tns-category-frame-sidebar-trending-stories{position:relative}#tns-category #tns-category-stories-archive{position:relative}#tns-category #tns-category-stories-archive .section-heading{margin-bottom:26px}#tns-category #tns-category-stories-archive .more-stories-stories .more-stories-row-wrap > .row:last-child:after{display:none}#tns-category #tns-category-stories-archive .more-stories-stories .more-stories-row{position:relative;-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;margin:0 -15px}@media (max-width:1199.98px){#tns-category #tns-category-stories-archive .more-stories-stories .more-stories-row .col-25{min-width:33.333%;max-width:33.333%}}@media (max-width:1023.98px){#tns-category #tns-category-stories-archive .more-stories-stories .more-stories-row .col-25{min-width:50%;max-width:50%}}@media (max-width:767.98px){#tns-category #tns-category-stories-archive .more-stories-stories .more-stories-row{-webkit-box-pack:justify;-moz-box-pack:justify;-o-box-pack:justify;-ms-flex-pack:justify;-webkit-justify-content:space-between;justify-content:space-between}#tns-category #tns-category-stories-archive .more-stories-stories .more-stories-row .col-25{min-width:100%;max-width:100%}}@media (max-width:639.98px){#tns-category #tns-category-stories-archive .more-stories-stories .more-stories-row{-webkit-box-pack:start;-moz-box-pack:start;-o-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}}#tns-category #tns-category-stories-archive .more-stories-stories .more-stories-row .col-25{padding:0 15px}#tns-category #tns-category-stories-archive .more-stories-stories .more-stories-row .col-25:nth-child(4n+4){border-right:none}#tns-category #tns-category-stories-archive .more-stories-stories .more-stories-row .col-25 .story-card{display:block;margin-bottom:30px;cursor:pointer}#tns-category #tns-category-stories-archive .more-stories-stories .more-stories-row .col-25 .story-card figure{object-position:top}#tns-category #tns-category-stories-archive .more-stories-stories .more-stories-row .col-25 .story-card figure img{display:block;margin-bottom:12px;width:100%;aspect-ratio:1.86/1;object-fit:cover}#tns-category #tns-category-stories-archive .more-stories-stories .more-stories-row .col-25 .story-card:hover .post-title{color:#01aff4}@media (max-width:767.98px){#tns-category #tns-category-stories-archive .more-stories-stories .more-stories-row .col-25 .story-card{border-bottom:1px solid #c2c2c2;margin-bottom:0;padding:7px 0 12px}#tns-category #tns-category-stories-archive .more-stories-stories .more-stories-row .col-25 .story-card .latest-post-media{width:76px;height:76px;aspect-ratio:1/1;display:inline-block;vertical-align:middle;padding-top:4px}#tns-category #tns-category-stories-archive .more-stories-stories .more-stories-row .col-25 .story-card .latest-post-media img{width:100%;aspect-ratio:1/1;object-fit:cover;object-position:top;display:inline-block;vertical-align:middle}#tns-category #tns-category-stories-archive .more-stories-stories .more-stories-row .col-25 .story-card .latest-post-content{display:inline-block;width:calc(100% - 81px);padding-left:12px;vertical-align:top}#tns-category #tns-category-stories-archive .more-stories-stories .more-stories-row .col-25 .story-card .latest-post-content .post-title{display:block;color:#3c3c3c;text-decoration:none;margin-bottom:5px}#tns-category #tns-category-stories-archive .more-stories-stories .more-stories-row .col-25 .story-card .latest-post-content .sponsored-badge{margin:7px 0 0}#tns-category #tns-category-stories-archive .more-stories-stories .more-stories-row .col-25:last-child .story-card{border:none}}#tns-category #tns-category-stories-archive .load-more-stories-link{text-decoration:none}#tns-category #tns-category-stories-archive .load-more-stories-link svg{width:12px;vertical-align:middle;fill:#ff3287}#tns-category #tns-category-stories-archive .load-more-stories-link:hover svg{fill:#01aff4}@media (max-width:767.98px){#tns-category #tns-category-stories-archive .load-more-stories-link{font-size:14px}}#tns-category #tns-category-pagination{position:relative;text-align:center}#tns-category #tns-category-pagination .navigation.pagination .screen-reader-text{display:none}#tns-category .tns-category-trending-stories{position:fixed;bottom:50px;left:0;right:0;-webkit-box-shadow:0 0 5px #a5a9b0;box-shadow:0 0 5px #a5a9b0;z-index:3;display:none}@media (max-width:768px){#tns-category .tns-category-trending-stories{display:block}}#tns-category .tns-category-trending-stories .tns-category-trending-stories-close{position:absolute;top:15px;right:15px;z-index:2;cursor:pointer}#tns-category .tns-category-trending-stories .tns-category-trending-stories-close svg{height:14px}#tns-category .tns-category-trending-stories .tns-category-trending-stories-close svg path{f
167ill:#8da6c0}#tns-category .tns-category-trending-stories .tns-category-trending-stories-close:hover svg path{fill:#ff3287}#tns-contributions{position:relative;padding-top:50px;padding-bottom:50px}@media (max-width:767px){#tns-contributions{padding-top:30px;padding-bottom:30px}}#tns-contributions #tns-contributions-content{position:relative}#tns-contributions #tns-contributions-content .content-column{min-height:unset}#tns-contributions #tns-contributions-content .content-column .row{-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-flow:wrap;-ms-flex-flow:wrap;flex-flow:wrap}@media (max-width:991.98px){#tns-contributions #tns-contributions-content .content-column .row .col-25,#tns-contributions #tns-contributions-content .content-column .row .col-50{min-width:100%;max-width:100%}}#tns-contributions #tns-contributions-content #tns-contributions-left-sidebar{position:relative}@media (min-width:992px){#tns-contributions #tns-contributions-content #tns-contributions-left-sidebar{padding-right:20px}}#tns-contributions #tns-contributions-content #tns-contributions-left-sidebar .main-title{font-size:38px;font-weight:normal;width:100%;line-height:1.2;color:#01aff4;margin-bottom:20px}#tns-contributions #tns-contributions-content #tns-contributions-main-content{position:relative;scroll-behavior:smooth}@media (min-width:992px){#tns-contributions #tns-contributions-content #tns-contributions-main-content{padding-right:15px;padding-left:15px}}#tns-contributions #tns-contributions-content #tns-contributions-main-content .main-media-content{width:100%;margin-bottom:30px}#tns-contributions #tns-contributions-content #tns-contributions-main-content .main-media-content .default-image{display:block;width:100%;height:auto}#tns-contributions #tns-contributions-content #tns-contributions-main-content .main-media-content .image-disclosure,#tns-contributions #tns-contributions-content #tns-contributions-main-content .main-media-content .image-disclosure .attribution{color:#a5a9b0;font-size:12px;line-height:1.33}#tns-contributions #tns-contributions-content #tns-contributions-main-content .main-media-content .image-disclosure a,#tns-contributions #tns-contributions-content #tns-contributions-main-content .main-media-content .image-disclosure .attribution a{color:#01aff4;text-decoration:none}#tns-contributions #tns-contributions-content #tns-contributions-main-content .main-media-content .image-disclosure a:hover,#tns-contributions #tns-contributions-content #tns-contributions-main-content .main-media-content .image-disclosure .attribution a:hover{color:#ff3287}#tns-contributions #tns-contributions-content #tns-contributions-main-content .main-media-content .image-disclosure{padding-top:7px}#tns-contributions #tns-contributions-content #tns-contributions-main-content .contributions-anchor-nav{background:#f6f8fa;color:#515151;padding:20px 24px;border-radius:0;margin-bottom:24px}#tns-contributions #tns-contributions-content #tns-contributions-main-content .contributions-anchor-nav .nav-heading{font-size:15px;font-weight:700;line-height:1.4;color:#3c3c3c;margin-bottom:12px}#tns-contributions #tns-contributions-content #tns-contributions-main-content .contributions-anchor-nav .nav-links{display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex;-webkit-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;gap:8px}#tns-contributions #tns-contributions-content #tns-contributions-main-content .contributions-anchor-nav .nav-links .anchor-link{display:-webkit-inline-box;display:-moz-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-box;display:inline-flex;-webkit-box-align:center;-moz-box-align:center;-o-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;gap:8px;font-size:15px;font-weight:600;color:#01aff4;text-decoration:none;-webkit-transition:color 0.2s ease;-moz-transition:color 0.2s ease;-o-transition:color 0.2s ease;-ms-transition:color 0.2s ease;transition:color 0.2s ease}#tns-contributions #tns-contributions-content #tns-contributions-main-content .contributions-anchor-nav .nav-links .anchor-link span{dis
167play:inline}#tns-contributions #tns-contributions-content #tns-contributions-main-content .contributions-anchor-nav .nav-links .anchor-link svg{height:12px;width:12px;fill:currentColor}#tns-contributions #tns-contributions-content #tns-contributions-main-content .contributions-anchor-nav .nav-links .anchor-link:hover,#tns-contributions #tns-contributions-content #tns-contributions-main-content .contributions-anchor-nav .nav-links .anchor-link:focus{color:#ff3287;text-decoration:none;outline:none}#tns-contributions #tns-contributions-content #tns-contributions-main-content .nav-keyline{border-top:1px solid #c2c2c2;margin:0 0 24px}#tns-contributions #tns-contributions-content #tns-contributions-main-content .main-body{margin-top:24px;scroll-margin-top:120px}#tns-contributions #tns-contributions-content #tns-contributions-main-content .brand-body{margin-top:40px;scroll-margin-top:120px}#tns-contributions #tns-contributions-content #tns-contributions-main-content .brand-body .brand-intro{font-size:17px;line-height:1.45;color:#3c3c3c;margin-bottom:20px}#tns-contributions #tns-contributions-content #tns-contributions-main-content .brand-body .brand-details .brand-keyline{border-top:1px solid #c2c2c2;margin:20px 0 30px;height:1px}#tns-contributions #tns-contributions-content #tns-contributions-main-content .brand-body .brand-details .brand-cta{margin-top:20px;margin-bottom:30px}#tns-contributions #tns-contributions-content #tns-contributions-main-content .brand-body .brand-details h3{font-size:18px;font-weight:700;margin-bottom:12px;color:#3c3c3c}#tns-contributions #tns-contributions-content #tns-contributions-main-content .brand-body .brand-details p{font-size:16px;line-height:1.5;color:#515151;margin-bottom:16px}#tns-contributions #tns-contributions-content #tns-contributions-main-content .main-title{font-size:22px;font-weight:normal;width:100%;line-height:1.35;color:#3c3c3c;margin-bottom:25px;letter-spacing:0}#tns-contributions #tns-contributions-content #tns-contributions-main-content .description{font-size:14px;font-weight:normal;width:100%;line-height:1.35;color:#3c3c3c;margin-bottom:20px;letter-spacing:0}#tns-contributions #tns-contributions-content #tns-contributions-main-content .description p{width:100%;font-size:17px;line-height:1.45;letter-spacing:.3px;margin-bottom:15px}#tns-contributions #tns-contributions-content #tns-contributions-right-sidebar{position:relative}@media (min-width:992px){#tns-contributions #tns-contributions-content #tns-contributions-right-sidebar{padding-left:20px}}@media (max-width:991.98px){#tns-contributions #tns-contributions-content #tns-contributions-right-sidebar{margin-top:25px}}#tns-contributions #tns-contributions-content #tns-contributions-right-sidebar .sidebar-wrap{display:inline-block;border:1px solid #01aff4;padding:20px}#tns-contributions #tns-contributions-content #tns-contributions-right-sidebar .sidebar-wrap .description{display:inline-block;margin:0;width:100%;font-size:14px;font-weight:normal;color:#3c3c3c;line-height:1.3}#tns-contributions #tns-contributions-content #tns-contributions-right-sidebar .sidebar-wrap .description .title{font-size:17px;font-weight:600;letter-spacing:.3;margin-bottom:15px}#tns-contributions #tns-contributions-content #tns-contributions-right-sidebar .sidebar-wrap .description p{width:100%;display:inline-block;font-size:15px;color:#3c3c3c;line-height:1.33;margin-bottom:15px}#tns-contributions #tns-contributions-content #tns-contributions-right-sidebar .sidebar-wrap .become-sponsor-action{width:100%;text-align:left}#tns-contributions #tns-contributions-content #tns-contributions-right-sidebar .sidebar-wrap .become-sponsor-action .link{display:inline-block;color:#01aff4;font-size:14px;font-weight:500;line-height:1.3;text-decoration:none}#tns-contributions #tns-contributions-content #tns-contributions-right-sidebar .sidebar-wrap .become-sponsor-action .link svg{display:inline-block;height:10px;width:auto;fill:#01aff4}#tns-contributions #tns-contributions-content #tns-contributions-right-sidebar .sidebar-wrap .become-sponsor-action .link:hover{color:#ff3287}#tns-contributions #tns-contributions-content #tns-contributions-right-sidebar .sidebar-wrap .become-sponsor-action .link:hover svg{fill:#ff3287}#tns-contributions #tns-contributions-content #tns-contributions-right-sidebar .sidebar-wrap .note{width:100%;font-size:15px;line-height:1.33;margin-bottom:10px}#tns-contributions #tns-contributions-content #tns-contributions-become-sponsor{position:relative;border-top:2px solid #ff3287;margin-top:50px;padding:30px 0 40px}@media (max-width:1024.98px){#tns-contributions #tns-contributions-content #tns-contributions-become-sponsor{margin-top:30px;padding:30px 0}}@media (max-width:767.98px){#tns-contributions #tns-contributions-content #tns-contributions-become-sponsor{margin-top:25px;padding:25px 0}}#tns-contributions #tns-contributions-content #tns-contributions-become-sponsor .content{max-width:940px}#tns-contributions #tns-contributions-content #tns-contributions-become-sponsor .become-sponsor-subtitle{font-size:16px;color:#ff3287;font-weight:bold;text-align:center;line-height:1.3;width:100%;margin:0 auto 30px}@media (max-width:1023.98px){#tns-contributions #tns-contributions-content #tns-contributions-become-sponsor .become-sponsor-subtitle{margin-bottom:25px}}@media (max-width:767.98px){#tns-contributions #tns-contributions-content #tns-contributions-become-sponsor .become-sponsor-subtitle{font-size:14px}}#tns-contributions #tns-contributions-content #tns-contributions-become-sponsor .become-sponsor-title{font-size:36px;color:#ff3287;font-weight:600;text-align:center;line-height:1.3;width:100%;margin:0 auto 40px}@media (max-width:1023.98px){#tns-contributions #tns-contributions-content #tns-contributions-become-sponsor .become-sponsor-title{font-size:32px;margin-bottom:30px}}@media (max-width:767.98px){#tns-contributions #tns-contributions-content #tns-contributions-become-sponsor .become-sponsor-title{font-size:28px}}@media (max-width:575.98px){#tns-contributions #tns-contributions-content #tns-contributions-become-sponsor .become-sponsor-title{font-size:26px}}#tns-contributions #tns-contributions-content #tns-contributions-become-sponsor .become-sponsor-action{width:100%;text-align:center}#tns-contributions #tns-contributions-content #tns-contributions-become-sponsor .become-sponsor-action .link{font-size:16px;color:#ff3287;font-weight:bold;text-align:center;line-height:1.45;padding:8px 10px;text-decoration:none;letter-spacing:0;display:inline-block}@media (max-width:767.98px){#tns-contributions #tns-contributions-content #tns-contributions-become-sponsor .become-sponsor-action .link{font-size:14px}}#tns-contributions #tns-contributions-content #tns-contributions-become-sponsor .become-sponsor-action .link svg{display:inline-block;height:10px;width:auto;fill:#ff3287}#tns-contributions #tns-contributions-content #tns-contributions-become-sponsor .become-sponsor-action .link:hover{color:#01aff4}#tns-contributions #tns-contributions-content #tns-contributions-become-sponsor .become-sponsor-action .link:hover svg{fill:#01aff4}#tns-ebooks{position:relative;margin-bottom:50px}#tns-ebooks #tns-ebooks-cover{position:relative;padding-top:50px;margin-bottom:50px}@media (max-width:1023px){#tns-ebooks #tns-ebooks-cover{padding-top:30px}}#tns-ebooks #tns-ebooks-cover .featured-column{padding-right:30px}@media (max-width:1023px){#tns-ebooks #tns-ebooks-cover .featured-column{min-width:100%;padding-right:0}}@media (max-width:1023px){#tns-ebooks #tns-ebooks-cover .sidebar-column{display:none}}#tns-ebooks #tns-ebooks-cover .section-heading{color:#fff;border-top:1px solid #fff;
167opacity:.75;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=75)";filter:alpha(opacity=75)}#tns-ebooks #tns-ebooks-cover #tns-ebooks-featured-ebook{position:relative}#tns-ebooks #tns-ebooks-cover #tns-ebooks-featured-ebook .featured-ebook-row{-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}@media (max-width:639px){#tns-ebooks #tns-ebooks-cover #tns-ebooks-featured-ebook .featured-ebook-row .cover{min-width:100%;max-width:100%;margin-bottom:30px}}@media (max-width:499px){#tns-ebooks #tns-ebooks-cover #tns-ebooks-featured-ebook .featured-ebook-row .cover{margin-bottom:20px}}@media (max-width:639px){#tns-ebooks #tns-ebooks-cover #tns-ebooks-featured-ebook .featured-ebook-row .cover .cover-mobile-column{min-width:33.333%;max-width:33.333%}}#tns-ebooks #tns-ebooks-cover #tns-ebooks-featured-ebook .featured-ebook-row .cover .cover-mobile-column .coming-soon-banner{position:absolute;top:-3px;right:-3px;width:80px;height:auto;z-index:2}#tns-ebooks #tns-ebooks-cover #tns-ebooks-featured-ebook .featured-ebook-row .cover .cover-mobile-column img{display:block;width:100%;height:auto;margin:0 auto 0 auto}#tns-ebooks #tns-ebooks-cover #tns-ebooks-featured-ebook .featured-ebook-row .cover .title-mobile-column{padding-left:20px;display:none}@media (max-width:639px){#tns-ebooks #tns-ebooks-cover #tns-ebooks-featured-ebook .featured-ebook-row .cover .title-mobile-column{display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex}}#tns-ebooks #tns-ebooks-cover #tns-ebooks-featured-ebook .featured-ebook-row .cover .title-mobile-column .title-mobile{color:#fff;font-size:24px;font-weight:500;line-height:1.2;margin-bottom:10px}@media (max-width:499px){#tns-ebooks #tns-ebooks-cover #tns-ebooks-featured-ebook .featured-ebook-row .cover .title-mobile-column .title-mobile{font-size:18px;font-weight:600}}#tns-ebooks #tns-ebooks-cover #tns-ebooks-featured-ebook .featured-ebook-row .details{padding-left:30px}@media (max-width:639px){#tns-ebooks #tns-ebooks-cover #tns-ebooks-featured-ebook .featured-ebook-row .details{min-width:100%;max-width:100%;padding-left:0}}#tns-ebooks #tns-ebooks-cover #tns-ebooks-featured-ebook .featured-ebook-row .details .title{color:#fff;font-size:33px;font-weight:500;line-height:1.2;margin-bottom:10px}@media (max-width:639px){#tns-ebooks #tns-ebooks-cover #tns-ebooks-featured-ebook .featured-ebook-row .details .title{font-size:24px;display:none}}@media (max-width:639px){#tns-ebooks #tns-ebooks-cover #tns-ebooks-featured-ebook .featured-ebook-row .details .title{font-size:22px;font-weight:600}}#tns-ebooks #tns-ebooks-cover #tns-ebooks-featured-ebook .featured-ebook-row .details .description{color:#fff;font-size:17px;font-weight:500;line-height:1.45;margin-bottom:30px}@media (max-width:499px){#tns-ebooks #tns-ebooks-cover #tns-ebooks-featured-ebook .featured-ebook-row .details .description{font-size:15px}}#tns-ebooks #tns-ebooks-cover #tns-ebooks-featured-ebook .featured-ebook-row .details .featured-ebook-download-button{max-width:75%;color:#ff3287;line-height:40px;background:#fff}#tns-ebooks #tns-ebooks-cover #tns-ebooks-featured-ebook .featured-ebook-row .details .featured-ebook-download-button:hover{color:#fff;background:#ff3287}@media (max-width:599px){#tns-ebooks #tns-ebooks-cover #tns-ebooks-featured-ebook .featured-ebook-row .details .featured-ebook-download-button{max-width:100%}}#tns-ebooks #tns-ebooks-cover #tns-ebooks-cover-sidebar{position:relative}#tns-ebooks #tns-ebooks-cover #tns-ebooks-cover-sidebar .related-ebooks-list{position:relative;width:100%}#tns-ebooks #tns-ebooks-cover #tns-ebooks-cover-sidebar .related-ebooks-list a{display:block;width:100%;color:#fff;text-decoration:none}#tns-ebooks #tns-ebooks-cover #tns-ebooks-cover-sidebar .related-ebooks-list a:hover{color:#ff3287}#tns-ebooks #tns-ebooks-cover #tns-ebooks-cover-sidebar .related-ebooks-list .related-ebook{margin-bottom:20px}#tns-ebooks #tns-ebooks-cover #tns-ebooks-cover-sidebar .related-ebooks-list .related-ebook .related-ebook-cover img{display:block;width:100%;height:auto}#tns-ebooks #tns-ebooks-cover #tns-ebooks-cover-sidebar .related-ebooks-list .related-ebook .related-ebook-title{padding-left:10px;margin-top:-3px}#tns-ebooks #tns-ebooks-sponsors{position:relative;padding-top:30px;margin-bottom:30px}@media (max-width:767.98px){#tns-ebooks #tns-ebooks-sponsors{padding-top:25px;padding-bottom:15px}}#tns-ebooks #tns-ebooks-sponsors #tns-ebooks-sponsors-content{position:relative}#tns-ebooks #tns-ebooks-sponsors #tns-ebooks-sponsors-content .sponsors-title{width:100%;font-size:18px;font-weight:600;line-height:1.35;text-align:center;margin-bottom:20px}@media (max-width:1023.98px){#tns-ebooks #tns-ebooks-sponsors #tns-ebooks-sponsors-content .sponsors-title{font-size:20px}}#tns-ebooks #tns-ebooks-sponsors #tns-ebooks-sponsors-logos{position:relative;padding:0 10% 0 10%}#tns-ebooks #tns-ebooks-sponsors #tns-ebooks-sponsors-logos .sponsors-logos-list{display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex;-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-flow:wrap;-ms-flex-flow:wrap;flex-flow:wrap;list-style:none;margin:0;-webkit-box-pack:justify;-moz-box-pack:justify;
167-o-box-pack:justify;-ms-flex-pack:justify;-webkit-justify-content:space-between;justify-content:space-between}#tns-ebooks #tns-ebooks-sponsors #tns-ebooks-sponsors-logos .sponsors-logos-list .sponsor-logo{max-width:calc(100% / 6 - 20px);width:100%;margin:0;display:-webkit-inline-box;display:-moz-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-box;display:inline-flex;-webkit-box-align:center;-moz-box-align:center;-o-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;display:none;margin-bottom:30px}#tns-ebooks #tns-ebooks-sponsors #tns-ebooks-sponsors-logos .sponsors-logos-list .sponsor-logo .default-image,#tns-ebooks #tns-ebooks-sponsors #tns-ebooks-sponsors-logos .sponsors-logos-list .sponsor-logo img{max-height:45px}@media (max-width:1023.98px){#tns-ebooks #tns-ebooks-sponsors #tns-ebooks-sponsors-logos .sponsors-logos-list .sponsor-logo{max-width:calc(100% / 2 - 20px);width:100%}}@media (max-width:767.98px){#tns-ebooks #tns-ebooks-sponsors #tns-ebooks-sponsors-logos .sponsors-logos-list .sponsor-logo{max-width:calc(100% / 3 - 20px);margin:25px 0}}@media (max-width:479.98px){#tns-ebooks #tns-ebooks-sponsors #tns-ebooks-sponsors-logos .sponsors-logos-list .sponsor-logo{max-width:calc(100% / 2 - 20px)}}#tns-ebooks #tns-ebooks-sponsors #tns-ebooks-sponsors-cta{position:relative;padding-top:20px}#tns-ebooks #tns-ebooks-sponsors #tns-ebooks-sponsors-cta .cta{width:100%;text-align:center}#tns-ebooks #tns-ebooks-sponsors #tns-ebooks-sponsors-cta .cta .cta-link{color:#515151;font-size:15px;text-decoration:none}#tns-ebooks #tns-ebooks-sponsors #tns-ebooks-sponsors-cta .cta .cta-link svg{height:10px;width:auto;fill:#515151}#tns-ebooks #tns-ebooks-sponsors #tns-ebooks-sponsors-cta .cta .cta-link:hover{color:#ff3287}#tns-ebooks #tns-ebooks-sponsors #tns-ebooks-sponsors-cta .cta .cta-link:hover svg{fill:#ff3287}#tns-ebooks #tns-ebooks-list{position:relative}@media (max-width:767px){#tns-ebooks #tns-ebooks-list .ebooks-list-series{display:none}}@media (max-width:767px){#tns-ebooks #tns-ebooks-list .ebooks-list-books{min-width:100%}}#tns-ebooks #tns-ebooks-list #tns-ebooks-list-series{position:sticky;top:100px;padding-right:30px}#tns-ebooks #tns-ebooks-list #tns-ebooks-list-series .ebooks-series-nav .ebooks-series-nav-option{display:block;color:#3c3c3c;font-size:20px;line-height:1.3;text-decoration:none;margin-bottom:3px}#tns-ebooks #tns-ebooks-list #tns-ebooks-list-series .ebooks-series-nav .ebooks-series-nav-option:hover{color:#ff3287}#tns-ebooks #tns-ebooks-list #tns-ebooks-list-series .ebooks-series-nav .ebooks-series-nav-option.active{color:#ff3287}#tns-ebooks #tns-ebooks-list #tns-ebooks-list-books{position:relative}#tns-ebooks #tns-ebooks-list #tns-ebooks-list-books .ebook-series-block{position:relative}#tns-ebooks #tns-ebooks-list #tns-ebooks-list-books .ebook-series-block .title{border:0;text-transform:none;font-size:28px;margin:0 0 58px;letter-spacing:0;padding:0}@media (max-width:1023.98px){#tns-ebooks #tns-ebooks-list #tns-ebooks-list-books .ebook-series-block .title{font-size:18px;margin:0 0 22px}}#tns-ebooks #tns-ebooks-list #tns-ebooks-list-books .ebook-series-block .ebook-block{margin-bottom:60px;cursor:pointer}@media (max-width:1023.98px){#tns-ebooks #tns-ebooks-list #tns-ebooks-list-books .ebook-series-block .ebook-block{margin-bottom:30px}}#tns-ebooks #tns-ebooks-list #tns-ebooks-list-books .ebook-series-block .ebook-block:hover .ebook-title{color:#01aff4 !important}#tns-ebooks #tns-ebooks-list #tns-ebooks-list-books .ebook-series-block .ebook-block:hover .ebooks-download-link{color:#01aff4}#tns-ebooks #tns-ebooks-list #tns-ebooks-list-books .ebook-series-block .ebook-block:hover .ebooks-download-link svg{fill:#01aff4 !important}#tns-ebooks #tns-ebooks-list #tns-ebooks-list-books .ebook-series-block .ebook-block .left-column{padding-right:30px}@media (max-width:539px){#tns-ebooks #tns-ebooks-list #tns-ebooks-list-books .ebook-series-block .ebook-block .left-column{min-width:120px;padding-right:20px}}#tns-ebooks #tns-ebooks-list #tns-ebooks-list-books .ebook-series-block .ebook-block .left-column .coming-soon-banner{position:absolute;top:-2px;right:28px;width:60px;height:auto;z-index:2;border:none}@media (max-width:539px){#tns-ebooks #tns-ebooks-list #tns-ebooks-list-books .ebook-series-block .ebook-block .left-column .coming-soon-banner{right:18px}}#tns-ebooks #tns-ebooks-list #tns-ebooks-list-books .ebook-series-block .ebook-block .left-column img{display:block;width:100%;height:auto;border:1px solid #a5a9b0}#tns-ebooks #tns-ebooks-list #tns-ebooks-list-books .ebook-series-block .ebook-block .right-column{padding-right:30px}#tns-ebooks #tns-ebooks-list #tns-ebooks-list-books .ebook-series-block .ebook-block .right-column .ebook-title{color:#3c3c3c;font-size:28px;font-weight:600;line-height:1.2;margin-bottom:5px}@media (max-width:1023.98px){#tns-ebooks #tns-ebooks-list #tns-ebooks-list-books .ebook-series-block .ebook-block .right-column .ebook-title{font-size:18px}}#tns-ebooks #tns-ebooks-list #tns-ebooks-list-books .ebook-series-block .ebook-block .right-column p{font-size:17px;line-height:1.45;margin-bottom:20px}@media (max-width:539px){#tns-ebooks #tns-ebooks-list #tns-ebooks-list-books .ebook-series-block .ebook-block .right-column p{font-size:15px}}#tns-ebooks #tns-ebooks-list #tns-ebooks-list-books .ebook-series-block .ebook-block .right-column li{font-size:17px;line-height:1.45;margin-bottom:10px}@media (max-width:539px){#tns-ebooks #tns-ebooks-list #tns-ebooks-list-books .ebook-series-block .ebook-block .right-column li{font-size:15px}}#tns-ebooks #tns-ebooks-list #tns-ebooks-list-books .ebook-series-block .ebook-block .right-column a{font-size:17px}@media (max-width:539px){#tns-ebooks #tns-ebooks-list #tns-ebooks-list-books .ebook-series-block .ebook-block .right-column a{font-size:15px}}#tns-ebooks #tns-ebooks-list #tns-ebooks-list-books .ebook-series-block .ebook-block .right-column .ebooks-download-l
167ink svg{height:12px;fill:#ff3287}#tns-ebooks #tns-ebooks-list #tns-ebooks-list-books .ebook-series-block .ebook-block .right-column .ebooks-download-link:hover svg{fill:#01aff4}#tns-ebooks #tns-digest-newsletter{position:relative}#tns-ebooks-book{position:relative;padding-top:70px}@media (max-width:1023px){#tns-ebooks-book{padding-top:50px}}@media (max-width:767px){#tns-ebooks-book{padding-top:30px}}#tns-ebooks-book #tns-ebooks-book-details{position:relative}#tns-ebooks-book #tns-ebooks-book-details .content-column.details{max-width:830px}#tns-ebooks-book #tns-ebooks-book-details .content-column.details .series-title{color:#3c3c3c;font-size:14px;line-height:1.33;font-weight:700;text-transform:uppercase;margin-bottom:20px}#tns-ebooks-book #tns-ebooks-book-details .content-column.details h1{line-height:1.2;margin-bottom:30px}@media (max-width:767px){#tns-ebooks-book #tns-ebooks-book-details .content-column.details h1{margin-bottom:15px}}@media (max-width:499px){#tns-ebooks-book #tns-ebooks-book-details .content-column.details h1{font-size:30px}}#tns-ebooks-book #tns-ebooks-book-details .content-column.details .sub-header-mobile{margin-bottom:30px;display:none}@media (max-width:767px){#tns-ebooks-book #tns-ebooks-book-details .content-column.details .sub-header-mobile{display:block}}#tns-ebooks-book #tns-ebooks-book-details .content-column.details .ebook-details{padding:60px 90px 60px 90px;margin-bottom:30px}@media (max-width:599px){#tns-ebooks-book #tns-ebooks-book-details .content-column.details .ebook-details{padding:30px}}#tns-ebooks-book #tns-ebooks-book-details .content-column.details .ebook-details .download-row{-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;color:#fff;font-size:17px;font-weight:500}#tns-ebooks-book #tns-ebooks-book-details .content-column.details .ebook-details .download-row .cover{position:relative;padding-right:30px}@media (max-width:767px){#tns-ebooks-book #tns-ebooks-book-details .content-column.details .ebook-details .download-row .cover{min-width:100%;max-width:100%;padding-right:0}}#tns-ebooks-book #tns-ebooks-book-details .content-column.details .ebook-details .download-row .cover .coming-soon-banner{position:absolute;top:-2px;right:28px;width:60px;height:auto;z-index:2}@media (max-width:767px){#tns-ebooks-book #tns-ebooks-book-details .content-column.details .ebook-details .download-row .cover .coming-soon-banner{right:-2px}}#tns-ebooks-book #tns-ebooks-book-details .content-column.details .ebook-details .download-row .cover .cover-image{display:block;width:100%;height:auto;margin:0 auto 0 auto}@media (max-width:767px){#tns-ebooks-book #tns-ebooks-book-details .content-column.details .ebook-details .download-row .download-form{min-width:100%;max-width:100%;padding-right:0;padding-top:30px}}@media (max-width:767px){#tns-ebooks-book #tns-ebooks-book-details .content-column.details .ebook-details .download-row .download-form .sub-header-copy{display:none}}#tns-ebooks-book #tns-ebooks-book-details .content-column.details .ebook-details .download-row .download-form .sub-header-copy p{font-size:16px;margin-bottom:15px}#tns-ebooks-book #tns-ebooks-book-details .content-column.details .ebook-details .download-row .download-form .newsletter-copy p{font-size:16px;margin-bottom:20px}@media (max-width:539px){#tns-ebooks-book #tns-ebooks-book-details .content-column.details .ebook-details .download-row .download-form .newsletter-copy p{font-size:15px}}#tns-ebooks-book #tns-ebooks-book-details .content-column.details .body-copy-row{margin-bottom:50px}#tns-ebooks-book #tns-ebooks-book-details .content-column.details .body-copy-row li{font-size:17px;font-weight:500;line-height:1.45}#tns-ebooks-book #tns-ebooks-book-details .content-column.details .body-copy-row .body-copy{padding-right:30px}@media (max-width:599px){#tns-ebooks-book #tns-ebooks-book-details .content-column.details .body-copy-row .body-copy{min-width:100%;max-width:100%;font-size:17px;font-weight:500;line-height:1.45;padding-right:0}}@media (max-width:599px){#tns-ebooks-book #tns-ebooks-book-detail
167s .content-column.details .body-copy-row .sidebar{display:none}}#tns-ebooks-book #tns-ebooks-book-details .content-column.details .body-copy-row .sidebar .sidebar-series-nav-item{display:block;color:#3c3c3c;font-size:17px;font-weight:500;margin-bottom:5px}#tns-ebooks-book #tns-ebooks-book-details .content-column.details .body-copy-row .sidebar .sidebar-series-nav-item:hover{color:#ff3287}#tns-ebooks-book #tns-ebooks-book-form{position:relative}#tns-ebooks-book #tns-ebooks-book-form .ebook-download-input{color:#fff;font-weight:600;border:2px solid #fff}#tns-ebooks-book #tns-ebooks-book-form .ebook-download-input.error{border:2px solid #ff3287}#tns-ebooks-book #tns-ebooks-book-form .ebook-download-input::placeholder{color:#fff;font-weight:600;opacity:.7;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=70)";filter:alpha(opacity=70)}#tns-ebooks-book #tns-ebooks-book-form .ebook-download-button{color:#ff3287;background:#fff;margin-bottom:15px}#tns-ebooks-book #tns-ebooks-book-form .ebook-download-button:hover{color:#fff;background:#ff3287}#tns-ebooks-book #tns-ebooks-book-form .legal{font-size:11px;line-height:1.33;opacity:.7;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=70)";filter:alpha(opacity=70)}#tns-ebooks-book #tns-ebooks-book-form .legal a{color:#fff;font-size:11px;font-weight:600}#tns-ebooks-book #tns-ebooks-book-form .legal a:hover{color:#fff;text-decoration:underline}#tns-ebooks-book #tns-ebooks-book-series-nav{position:relative;margin-bottom:30px}#tns-ebooks-book #tns-ebooks-book-series-nav .series-ebooks{width:100%;height:auto;overflow-y:hidden;overflow-x:auto;white-space:nowrap}#tns-ebooks-book #tns-ebooks-book-series-nav .ebook-series-title{font-size:14px;font-weight:600;text-transform:uppercase;margin-bottom:10px}#tns-ebooks-book #tns-ebooks-book-series-nav .series-nav-book{display:inline-block;margin-right:10px;cursor:pointer}#tns-ebooks-book #tns-ebooks-book-series-nav .series-nav-book .border{position:absolute;top:0;left:0;right:0;bottom:0;border:2px solid transparent;z-index:1}#tns-ebooks-book #tns-ebooks-book-series-nav .series-nav-book img{display:block;width:60px;height:auto;border:1px solid #a5a9b0}@media (max-width:767px){#tns-ebooks-book #tns-ebooks-book-series-nav .series-nav-book img{width:90px}}#tns-ebooks-book #tns-ebooks-book-series-nav .series-nav-book.active .border{border:2px solid #01aff4}#tns-ebooks-book #tns-ebooks-book-sponsors{position:relative;padding-top:50px;padding-bottom:50px;background:#f6f8fa}#tns-ebooks-book #tns-ebooks-book-sponsors .content-column{max-width:830px}#tns-ebooks-book #tns-ebooks-book-sponsors .ebooks-sponsors-heading{font-size:15px;font-weight:600;text-align:center;margin-bottom:15px}#tns-ebooks-book #tns-ebooks-book-sponsors .ebooks-sponsors-row{text-align:center;margin-bottom:30px}#tns-ebooks-book #tns-ebooks-book-sponsors .ebooks-sponsors-row:last-child{margin-bottom:0}#tns-ebooks-book #tns-ebooks-book-sponsors .ebooks-sponsors-row a{display:inline-block;margin-left:12px;margin-right:12px;margin-bottom:15px}@media (max-width:699px){#tns-ebooks-book #tns-ebooks-book-sponsors .ebooks-sponsors-row a{margin-bottom:20px}}#tns-ebooks-book #tns-ebooks-book-sponsors .ebooks-sponsors-row a img{display:block;width:auto;max-height:33px}#tns-ebooks-thank-you{padding-top:70px;padding-bottom:50px}@media (max-width:1279.98px){#tns-ebooks-thank-you{padding-top:50px}}@media (max-width:767.98px){#tns-ebooks-thank-you{padding-top:30px;padding-bottom:30px}}#tns-ebooks-thank-you #tns-ebooks-thank-you-thank-you{position:relative}#tns-ebooks-thank-you #tns-ebooks-thank-you-thank-you .thank-you-row{-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}#tns-ebooks-thank-you #tns-ebooks-thank-you-thank-you .thank-you-row .thank-you-col{padding-right:30px;margin-bottom:30px}@media (max-width:767px){#tns-ebooks-thank-you #tns-ebooks-thank-you-thank-you .thank-you-row .thank-you-col{min-width:100%;max-width:100%;padding-right:0}}#tns-ebooks-thank-you #tns-ebooks-thank-you-thank-you .thank-you-row .thank-you-col .thank-you-heading{color:#01aff4;font-size:20px;line-height:1.2;padding-right:20px}#tns-ebooks-thank-you #tns-ebooks-thank-you-thank-you .thank-you-row .more-series-col{position:relative}@media (max-width:767px){#tns-ebooks-thank-you #tns-ebooks-thank-you-thank-you .thank-you-row .more-series-col{min-width:100%;max-width:100%}}#tns-ebooks-thank-you #tns-ebooks-thank-you-series-nav{position:relative;margin-bottom:30px}#tns-ebooks-thank-you #tns-ebooks-thank-you-series-nav .series-ebooks{width:100%;height:auto;overflow-y:hidden;overflow-x:auto;white-space:nowrap}#tns-ebooks-thank-you #tns-ebooks-thank-you-series-nav .ebook-series-title{font-size:14px;font-weight:600;text-transform:uppercase;margin-bottom:10px}#tns-ebooks-thank-you #tns-ebooks-thank-you-series-nav .series-nav-book{display:inline-block;margin-right:20px;text-align:center;cursor:pointer}#tns-ebooks-thank-you #tns-ebooks-thank-you-series-nav .series-nav-book:hover .series-nav-download-l
167ink{color:#01aff4}#tns-ebooks-thank-you #tns-ebooks-thank-you-series-nav .series-nav-book:hover .series-nav-download-link svg g,#tns-ebooks-thank-you #tns-ebooks-thank-you-series-nav .series-nav-book:hover .series-nav-download-link svg line{stroke:#01aff4}#tns-ebooks-thank-you #tns-ebooks-thank-you-series-nav .series-nav-book:hover .series-nav-download-link svg path{fill:#01aff4;stroke:#01aff4}#tns-ebooks-thank-you #tns-ebooks-thank-you-series-nav .series-nav-book .coming-soon-banner{position:absolute;top:-2px;right:-2px;width:60px;height:auto;z-index:2;border:none}#tns-ebooks-thank-you #tns-ebooks-thank-you-series-nav .series-nav-book .border{position:absolute;top:0;left:0;right:0;bottom:0;border:2px solid transparent;z-index:1}#tns-ebooks-thank-you #tns-ebooks-thank-you-series-nav .series-nav-book img{display:block;width:120px;height:auto;border:1px solid #a5a9b0;margin-bottom:7px}@media (max-width:767px){#tns-ebooks-thank-you #tns-ebooks-thank-you-series-nav .series-nav-book img{width:120px}}#tns-ebooks-thank-you #tns-ebooks-thank-you-series-nav .series-nav-book .series-nav-download-link{color:#ff3287;font-size:17px;font-weight:500;padding-right:3px}#tns-ebooks-thank-you #tns-ebooks-thank-you-series-nav .series-nav-book .series-nav-download-link svg{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-o-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg);height:15px;width:15px;vertical-align:-2px}#tns-ebooks-thank-you #tns-ebooks-thank-you-series-nav .series-nav-book .series-nav-download-link svg g,#tns-ebooks-thank-you #tns-ebooks-thank-you-series-nav .series-nav-book .series-nav-download-link svg line{stroke:#ff3287}#tns-ebooks-thank-you #tns-ebooks-thank-you-series-nav .series-nav-book .series-nav-download-link svg path{f
167ill:#ff3287;stroke:#ff3287}#tns-ebooks-thank-you #tns-ebooks-thank-you-series-nav .series-nav-book.active .border{border:2px solid #01aff4}#tns-ebooks-thank-you #tns-ebooks-thank-you-list{position:relative}@media (max-width:767px){#tns-ebooks-thank-you #tns-ebooks-thank-you-list .ebooks-list-series{display:none}}@media (max-width:767px){#tns-ebooks-thank-you #tns-ebooks-thank-you-list .ebooks-list-books{min-width:100%}}#tns-ebooks-thank-you #tns-ebooks-thank-you-list #tns-ebooks-thank-you-list-series{position:sticky;top:100px;padding-right:30px}#tns-ebooks-thank-you #tns-ebooks-thank-you-list #tns-ebooks-thank-you-list-series .ebooks-series-nav .ebooks-series-nav-option{display:block;color:#3c3c3c;font-size:20px;line-height:1.3;text-decoration:none;margin-bottom:3px}#tns-ebooks-thank-you #tns-ebooks-thank-you-list #tns-ebooks-thank-you-list-series .ebooks-series-nav .ebooks-series-nav-option:hover{color:#ff3287}#tns-ebooks-thank-you #tns-ebooks-thank-you-list #tns-ebooks-thank-you-list-series .ebooks-series-nav .ebooks-series-nav-option.active{color:#ff3287}#tns-ebooks-thank-you #tns-ebooks-thank-you-list #tns-ebooks-thank-you-list-books{position:relative}#tns-ebooks-thank-you #tns-ebooks-thank-you-list #tns-ebooks-thank-you-list-books .ebook-series-block{position:relative}#tns-ebooks-thank-you #tns-ebooks-thank-you-list #tns-ebooks-thank-you-list-books .ebook-series-block .title{border:0;text-transform:none;font-size:28px;margin:0 0 58px;letter-spacing:0;padding:0}@media (max-width:1023.98px){#tns-ebooks-thank-you #tns-ebooks-thank-you-list #tns-ebooks-thank-you-list-books .ebook-series-block .title{font-size:18px;margin:0 0 22px}}#tns-ebooks-thank-you #tns-ebooks-thank-you-list #tns-ebooks-thank-you-list-books .ebook-series-block .ebook-block{margin-bottom:60px;cursor:pointer}@media (max-width:1023.98px){#tns-ebooks-thank-you #tns-ebooks-thank-you-list #tns-ebooks-thank-you-list-books .ebook-series-block .ebook-block{margin-bottom:30px}}#tns-ebooks-thank-you #tns-ebooks-thank-you-list #tns-ebooks-thank-you-list-books .ebook-series-block .ebook-block:hover .ebook-title{color:#01aff4 !important}#tns-ebooks-thank-you #tns-ebooks-thank-you-list #tns-ebooks-thank-you-list-books .ebook-series-block .ebook-block:hover .ebooks-download-link{color:#01aff4}#tns-ebooks-thank-you #tns-ebooks-thank-you-list #tns-ebooks-thank-you-list-books .ebook-series-block .ebook-block:hover .ebooks-download-link svg g,#tns-ebooks-thank-you #tns-ebooks-thank-you-list #tns-ebooks-thank-you-list-books .ebook-series-block .ebook-block:hover .ebooks-download-link svg line{stroke:#01aff4}#tns-ebooks-thank-you #tns-ebooks-thank-you-list #tns-ebooks-thank-you-list-books .ebook-series-block .ebook-block:hover .ebooks-download-link svg path{f
167ill:#01aff4;stroke:#01aff4}#tns-ebooks-thank-you #tns-ebooks-thank-you-list #tns-ebooks-thank-you-list-books .ebook-series-block .ebook-block .left-column{padding-right:30px}@media (max-width:539px){#tns-ebooks-thank-you #tns-ebooks-thank-you-list #tns-ebooks-thank-you-list-books .ebook-series-block .ebook-block .left-column{min-width:120px;padding-right:20px}}#tns-ebooks-thank-you #tns-ebooks-thank-you-list #tns-ebooks-thank-you-list-books .ebook-series-block .ebook-block .left-column .coming-soon-banner{position:absolute;top:-2px;right:28px;width:60px;height:auto;z-index:2;border:none}@media (max-width:539px){#tns-ebooks-thank-you #tns-ebooks-thank-you-list #tns-ebooks-thank-you-list-books .ebook-series-block .ebook-block .left-column .coming-soon-banner{right:18px}}#tns-ebooks-thank-you #tns-ebooks-thank-you-list #tns-ebooks-thank-you-list-books .ebook-series-block .ebook-block .left-column img{display:block;width:100%;height:auto;border:1px solid #a5a9b0}#tns-ebooks-thank-you #tns-ebooks-thank-you-list #tns-ebooks-thank-you-list-books .ebook-series-block .ebook-block .right-column{padding-right:30px}#tns-ebooks-thank-you #tns-ebooks-thank-you-list #tns-ebooks-thank-you-list-books .ebook-series-block .ebook-block .right-column .ebook-title{color:#3c3c3c;font-size:28px;font-weight:600;line-height:1.2;margin-bottom:5px}@media (max-width:1023.98px){#tns-ebooks-thank-you #tns-ebooks-thank-you-list #tns-ebooks-thank-you-list-books .ebook-series-block .ebook-block .right-column .ebook-title{font-size:18px}}#tns-ebooks-thank-you #tns-ebooks-thank-you-list #tns-ebooks-thank-you-list-books .ebook-series-block .ebook-block .right-column p{font-size:17px;line-height:1.45;margin-bottom:20px}@media (max-width:539px){#tns-ebooks-thank-you #tns-ebooks-thank-you-list #tns-ebooks-thank-you-list-books .ebook-series-block .ebook-block .right-column p{font-size:15px}}#tns-ebooks-thank-you #tns-ebooks-thank-you-list #tns-ebooks-thank-you-list-books .ebook-series-block .ebook-block .right-column li{font-size:17px;line-height:1.45;margin-bottom:10px}@media (max-width:539px){#tns-ebooks-thank-you #tns-ebooks-thank-you-list #tns-ebooks-thank-you-list-books .ebook-series-block .ebook-block .right-column li{font-size:15px}}#tns-ebooks-thank-you #tns-ebooks-thank-you-list #tns-ebooks-thank-you-list-books .ebook-series-block .ebook-block .right-column a{font-size:17px}@media (max-width:539px){#tns-ebooks-thank-you #tns-ebooks-thank-you-list #tns-ebooks-thank-you-list-books .ebook-series-block .ebook-block .right-column a{font-size:15px}}#tns-ebooks-thank-you #tns-ebooks-thank-you-list #tns-ebooks-thank-you-list-books .ebook-series-block .ebook-block .right-column .ebooks-download-link svg{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-o-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg);height:15px;width:15px;fill:#ff3287;vertical-align:-2px}#tns-ebooks-thank-you #tns-ebooks-thank-you-list #tns-ebooks-thank-you-list-books .ebook-series-block .ebook-block .right-column .ebooks-download-link:hover svg{fill:#01aff4}#tns-ebooks-thank-you #tns-ebooks-thank-you-newsletter{position:relative}#tns-event .content-column{margin-top:50px;margin-bottom:50px}@media (max-width:767px){#tns-event .content-column{margin-top:30px;margin-bottom:30px}}#tns-event .event-story-card-link{display:block;padding-bottom:10px;margin-bottom:20px;border-bottom:1px solid #c2c2c2}#tns-event .event-story-card-link:last-child{border-bottom:none}#tns-event .event-story-card-link:hover .headline{color:#01aff4}#tns-event .event-story-card-link .col-thumb img{display:block;width:100%;height:auto}#tns-event .event-story-card-link .col-headline{color:#515151;padding-left:15px}#tns-event .event-story-card-link .col-headline .post-title{padding:0;margin-top:-3px;font-size:18px;font-weight:500;text-decoration:none}#tns-event .event-story-card-link .col-headline .excerpt{margin-top:7px;color:#3c3c3c;font-size:14px;line-height:1.2}#tns-event .event-story-card-link:hover .post-title{color:#01aff4}#tns-event .event-footer-spacer{margin-bottom:50px}@media (max-width:767px){#tns-event .event-footer-spacer{margin-bottom:30px}}#tns-event #tns-event-heading{position:relative;margin-bottom:50px}#tns-event #tns-event-heading .title h1{line-height:1.12;font-weight:700}@media (max-width:767px){#tns-event #tns-event-heading{margin-bottom:30px}}@media (max-width:1023px){#tns-event #tns-event-heading .row{-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}#tns-event #tns-event-heading .row .title{min-width:100%;max-width:100%}#tns-event #tns-event-heading .row .definition{min-width:80%;max-width:80%}#tns-event #tns-event-heading .row .empty{min-width:20%;max-width:20%}}@media (max-width:1023px){#tns-event #tns-event-heading .row .definition{min-width:90%;max-width:90%}#tns-event #tns-event-heading .row .empty{min-width:10%;max-width:10%}}#tns-event #tns-event-frame{position:relative;display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex}@media (max-width:899px){#tns-event #tns-event-frame .nav{display:none}#tns-event #tns-event-frame .content{min-width:65%;max-width:65%}#tns-event #tns-event-frame .sidebar{min-width:35%;max-width:35%}}@media (max-width:767px){#tns-event #tns-event-frame .nav{display:none}#tns-event #tns-event-frame .content{min-width:100%;max-width:100%}#tns-event #tns-event-frame .sidebar{display:none}}#tns-event #tns-event-frame #tns-event-frame-nav{position:sticky;top:110px;padding-right:40px}#tns-event #tns-event-frame #tns-event-frame-nav .heading-text{opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0)}#tns-event #tns-event-frame #tns-event-frame-nav .event-nav-option{dis
167play:block;color:#000}#tns-event #tns-event-frame #tns-event-frame-nav .event-nav-option:hover{color:#ff3287}#tns-event #tns-event-frame #tns-event-frame-nav .event-nav-option.active{color:#ff3287}#tns-event #tns-event-frame #tns-event-frame-content{position:relative}#tns-event #tns-event-frame #tns-event-frame-content .event-content-block{margin-bottom:40px}#tns-event #tns-event-frame #tns-event-frame-content .event-story-card{margin-top:10px;padding-bottom:10px;border-bottom:1px solid #c2c2c2}#tns-event #tns-event-frame #tns-event-frame-content .event-story-card:first-child{margin-top:0}#tns-event #tns-event-frame #tns-event-frame-content .event-story-card:last-child{border-bottom:none}#tns-event #tns-event-frame #tns-event-frame-content .event-story-card .col-thumb{min-width:100px;max-width:100px}@media (max-width:767px){#tns-event #tns-event-frame #tns-event-frame-content .event-story-card .col-thumb{min-width:70px;max-width:70px}}#tns-event #tns-event-frame #tns-event-frame-content .event-story-card .col-thumb .thumb{width:100px;height:50px;background:#f6f8fa}@media (max-width:767px){#tns-event #tns-event-frame #tns-event-frame-content .event-story-card .col-thumb .thumb{width:70px;height:35px}}#tns-event #tns-event-frame #tns-event-frame-content .event-story-card .col-headline .headline{padding-left:10px;font-size:16px;font-weight:500}@media (max-width:767px){#tns-event #tns-event-frame #tns-event-frame-content .event-story-card .col-headline .headline{font-size:15px}}#tns-event #tns-event-frame #tns-event-frame-content #tns-event-frame-content-block-featured-programming{position:relative}#tns-event #tns-event-frame #tns-event-frame-content #tns-event-frame-content-block-featured-programming .section-heading{text-transform:uppercase}#tns-event #tns-event-frame #tns-event-frame-content #tns-event-frame-content-block-highlights{position:relative}#tns-event #tns-event-frame #tns-event-frame-content #tns-event-frame-content-block-highlights .section-heading{text-transform:uppercase}#tns-event #tns-event-frame #tns-event-frame-content #tns-event-frame-content-block-related-stories{position:relative}#tns-event #tns-event-frame #tns-event-frame-content #tns-event-frame-content-block-related-stories .section-heading{text-transform:uppercase}#tns-event #tns-event-frame #tns-event-frame-content #tns-event-frame-content-block-related-stories .post-excerpt{margin-bottom:7px}#tns-event #tns-event-frame #tns-event-frame-content #tns-event-frame-content-block-spotlight{position:relative}#tns-event #tns-event-frame #tns-event-frame-content #tns-event-frame-content-block-spotlight .section-heading{text-transform:uppercase}#tns-event #tns-event-frame #tns-event-frame-content #tns-event-frame-content-block-spotlight .post-excerpt{margin-bottom:7px}#tns-event #tns-event-frame #tns-event-frame-content #tns-event-information{position:relative}#tns-event #tns-event-frame #tns-event-frame-content #tns-event-information .register-button{background:#ff3287;display:block;text-align:center;color:#fff;font-weight:500;line-height:35px;font-size:16px;margin:20px auto 20px;padding:1px 6px;letter-spacing:1px;border-radius:5px;text-decoration:none}#tns-event #tns-event-frame #tns-event-frame-content #tns-event-information .register-button:hover{background:#01aff4}#tns-event #tns-event-frame #tns-event-frame-content #tns-event-information img{width:100%;height:auto}#tns-event #tns-event-frame #tns-event-frame-content #tns-event-information .description{margin:20px 0 0 0}#tns-event #tns-event-frame #tns-event-frame-sidebar{position:sticky;top:110px;padding-left:40px}#tns-event #tns-event-frame #tns-event-frame-sidebar #tns-event-frame-sidebar-sponsors{position:relative;margin-bottom:30px}#tns-event #tns-event-frame #tns-event-frame-sidebar #tns-event-frame-sidebar-sponsors .sponsor-logo{display:block}#tns-event #tns-event-frame #tns-event-frame-sidebar #tns-event-frame-sidebar-sponsors .sponsor-logo:hover .copy{color:#ff3287}#tns-event #tns-event-frame #tns-event-frame-sidebar #tns-event-frame-sidebar-sponsors .sponsor-logo:hover .copy svg path{f
167ill:#ff3287}#tns-event #tns-event-frame #tns-event-frame-sidebar #tns-event-frame-sidebar-sponsors .sponsor-logo .logo-frame{width:100%;max-height:120px;display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex;-webkit-box-align:center;-moz-box-align:center;-o-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;padding:10px;background:#eaeff3;margin-bottom:10px}#tns-event #tns-event-frame #tns-event-frame-sidebar #tns-event-frame-sidebar-sponsors .sponsor-logo .logo-frame .logo-img{aspect-ratio:1.86/1;object-fit:contain;max-width:80%;max-height:70%}#tns-event #tns-event-frame #tns-event-frame-sidebar #tns-event-frame-sidebar-sponsors .sponsor-logo .copy{color:#515151;font-size:14px;line-height:1.33}@media (max-width:767px){#tns-event #tns-event-frame #tns-event-frame-sidebar #tns-event-frame-sidebar-sponsors .sponsor-logo .copy{font-size:17px}}#tns-event #tns-event-frame #tns-event-frame-sidebar #tns-event-frame-sidebar-sponsors .sponsor-logo .copy svg{height:8px;vertical-align:baseline}@media (max-width:767px){#tns-event #tns-event-frame #tns-event-frame-sidebar #tns-event-frame-sidebar-sponsors .sponsor-logo .copy svg{height:10px}}#tns-event #tns-event-frame #tns-event-frame-sidebar #tns-event-frame-sidebar-sponsors .sponsor-logo .copy svg path{f
167ill:#515151}#tns-event #tns-event-frame #tns-event-frame-sidebar #tns-event-frame-sidebar-subscribe{position:relative}#tns-event #tns-event-frame #tns-event-frame-sidebar #tns-event-frame-sidebar-subscribe .description p{font-weight:normal;font-size:14px}#tns-events{position:relative}#tns-events #tns-events-cover{position:relative;padding-top:50px;margin-bottom:50px}@media (max-width:767px){#tns-events #tns-events-cover{padding-top:30px}}#tns-events #tns-events-cover .featured-column{padding-right:20px}@media (max-width:767px){#tns-events #tns-events-cover .featured-column{min-width:100%;padding-right:0}}@media (max-width:767px){#tns-events #tns-events-cover .sidebar-column{display:none}}#tns-events #tns-events-cover #tns-events-featured-event{position:relative}#tns-events #tns-events-cover #tns-events-featured-event .section-heading{color:#fff;border-top:1px solid #fff;opacity:.75;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=75)";filter:alpha(opacity=75)}#tns-events #tns-events-cover #tns-events-featured-event .wrap-row{-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-flow:wrap;-ms-flex-flow:wrap;flex-flow:wrap}@media (max-width:767.98px){#tns-events #tns-events-cover #tns-events-featured-event .wrap-row >.col-50{max-width:100%;min-width:100%;padding:0}}#tns-events #tns-events-cover #tns-events-featured-event .wrap-row >.col-50:first-child{padding-right:15px}@media (max-width:767.98px){#tns-events #tns-events-cover #tns-events-featured-event .wrap-row >.col-50:first-child{padding:0}}#tns-events #tns-events-cover #tns-events-featured-event .wrap-row >.col-50:last-child{padding-left:15px}@media (max-width:767.98px){#tns-events #tns-events-cover #tns-events-featured-event .wrap-row >.col-50:last-child{padding:0}}#tns-events #tns-events-cover #tns-events-featured-event .wrap-row .desktop-hide{margin-bottom:15px}@media (min-width:768px){#tns-events #tns-events-cover #tns-events-featured-event .wrap-row .desktop-hide{display:none}}@media (max-width:767.98px){#tns-events #tns-events-cover #tns-events-featured-event .wrap-row .mobile-hide{display:none}}#tns-events #tns-events-cover #tns-events-featured-event .heading{display:block;color:#fff;font-size:14px;line-height:1.33;font-weight:700;text-transform:uppercase;margin-bottom:20px}#tns-events #tns-events-cover #tns-events-featured-event .image{display:block;width:100%;height:auto}@media (max-width:767px){#tns-events #tns-events-cover #tns-events-featured-event .image{margin-bottom:30px}}#tns-events #tns-events-cover #tns-events-featured-event .title{width:100%;color:#fff;font-size:36px;font-weight:600;line-height:1.12;margin-bottom:12px;text-transform:capitalize}@media (max-width:1023px){#tns-events #tns-events-cover #tns-events-featured-event .title{font-size:27px}}@media (max-width:767px){#tns-events #tns-events-cover #tns-events-featured-event .title{font-size:24px}}#tns-events #tns-events-cover #tns-events-featured-event .event-meta{width:100%;margin-bottom:30px}#tns-events #tns-events-cover #tns-events-featured-event .event-meta .date,#tns-events #tns-events-cover #tns-events-featured-event .event-meta .location{color:#fff;font-size:18px;line-height:1.35;text-transform:uppercase;margin-right:10px}@media (max-width:991.98px){#tns-events #tns-events-cover #tns-events-featured-event .event-meta .date,#tns-events #tns-events-cover #tns-events-featured-event .event-meta .location{font-size:16px}}@media (max-width:991.98px){#tns-events #tns-events-cover #tns-events-featured-event .event-meta{font-size:28px}}#tns-events #tns-events-cover #tns-events-featured-event .description{width:100%;color:#fff}#tns-events #tns-events-cover #tns-events-featured-event .description p,#tns-events #tns-events-cover #tns-events-featured-event .description a{color:#fff;font-size:20px;line-height:1.33}#tns-events #tns-events-cover #tns-events-featured-event .description a:hover{color:#ff3287}#tns-events #tns-events-cover #tns-events-featured-event .register-button{position:relative;display:block;width:100%;height:40px;color:#ff3287;font-size:18px;font-weight:500;line-height:40px;text-align:center;border:none;border-radius:5px;background-color:#fff;cursor:pointer}
167#tns-events #tns-events-cover #tns-events-featured-event .register-button:hover{color:#fff;background-color:#ff3287}#tns-events #tns-events-cover #tns-events-cover-sidebar{position:relative}#tns-events #tns-events-cover #tns-events-cover-sidebar .section-heading{color:#fff;border-top:1px solid #fff;opacity:.75;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=75)";filter:alpha(opacity=75)}#tns-events #tns-events-cover #tns-events-upcoming-events{position:relative;padding-bottom:50px}#tns-events #tns-events-cover #tns-events-upcoming-events.hide{display:none}#tns-events #tns-events-cover #tns-events-upcoming-events .row{-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-flow:wrap;-ms-flex-flow:wrap;flex-flow:wrap}#tns-events #tns-events-cover #tns-events-upcoming-events .events-card{position:relative;display:block;width:100%;height:auto;padding-top:15px;padding-bottom:15px;cursor:pointer}#tns-events #tns-events-cover #tns-events-upcoming-events .events-card:not(:nth-last-child(-n+2)){border-bottom:1px solid #a5a9b0}#tns-events #tns-events-cover #tns-events-upcoming-events .events-card .col-33{padding-right:15px}#tns-events #tns-events-cover #tns-events-upcoming-events .events-card .col-66{padding-left:15px}#tns-events #tns-events-cover #tns-events-upcoming-events .events-card-row{position:relative;-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-flow:wrap;-ms-flex-flow:wrap;flex-flow:wrap;margin-left:auto;margin-right:auto;text-decoration:none}#tns-events #tns-events-cover #tns-events-upcoming-events .events-card-row:hover{text-decoration:none}#tns-events #tns-events-cover #tns-events-upcoming-events .events-card-row:hover .events-card-content .event-title{color:#01aff4}#tns-events #tns-events-cover #tns-events-upcoming-events .events-card-row:hover .events-card-content .event-register-cta{color:#01aff4}#tns-events #tns-events-cover #tns-events-upcoming-events .events-card-row:hover .events-card-content .event-register-cta svg path{f
167ill:#01aff4}#tns-events #tns-events-cover #tns-events-upcoming-events .events-card-poster{position:relative}#tns-events #tns-events-cover #tns-events-upcoming-events .events-card-poster img{width:100%;height:auto}#tns-events #tns-events-cover #tns-events-upcoming-events .events-card-content{position:relative;display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex;-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-flow:wrap;-ms-flex-flow:wrap;flex-flow:wrap;width:100%;vertical-align:middle}#tns-events #tns-events-cover #tns-events-upcoming-events .events-card-content .event-title{width:100%;-webkit-align-self:flex-end;align-self:flex-end;-ms-flex-item-align:end;color:#3c3c3c;font-size:27px;line-height:1.2;letter-spacing:0;text-decoration:none;margin-bottom:5px}#tns-events #tns-events-cover #tns-events-upcoming-events .events-card-content .event-title:hover{color:#01aff4}#tns-events #tns-events-cover #tns-events-upcoming-events .events-card-content .event-meta{width:100%;line-height:80%;margin-bottom:20px}#tns-events #tns-events-cover #tns-events-upcoming-events .events-card-content .event-meta .date,#tns-events #tns-events-cover #tns-events-upcoming-events .events-card-content .event-meta .location{display:inline-block;width:100%;color:#3c3c3c;font-size:14px;font-weight:bold;line-height:1.33;text-transform:uppercase}@media (max-width:1023px){#tns-events #tns-events-cover #tns-events-upcoming-events .events-card-content .event-meta .date,#tns-events #tns-events-cover #tns-events-upcoming-events .events-card-content .event-meta .location{font-size:12px}}#tns-events #tns-events-cover #tns-events-upcoming-events .events-card-content .event-meta .location{font-weight:normal}#tns-events #tns-events-cover #tns-events-upcoming-events .events-card-content .event-description{font-size:16px;color:#3c3c3c;font-weight:normal;line-height:1.35;letter-spacing:0}#tns-events #tns-events-cover #tns-events-upcoming-events .events-card-content .event-description p,#tns-events #tns-events-cover #tns-events-upcoming-events .events-card-content .event-description a{font-size:16px;color:#3c3c3c;font-weight:normal;line-height:1.35;letter-spacing:0}#tns-events #tns-events-cover #tns-events-upcoming-events .events-card-content .event-description a{color:#ff3287;text-decoration:none}#tns-events #tns-events-cover #tns-events-upcoming-events .events-card-content .event-description a:hover{color:#01aff4;text-decoration:none}@media (max-width:991.98px){#tns-events #tns-events-cover #tns-events-upcoming-events .events-card-content .event-description{font-size:13px}}#tns-events #tns-events-cover #tns-events-upcoming-events .events-card-content .event-register-cta{font-size:16px;font-weight:500}#tns-events #tns-events-cover #tns-events-upcoming-events .events-card-content .event-register-cta svg{height:10px;vertical-align:baseline}#tns-events #tns-events-cover #tns-events-upcoming-events .events-card-content .event-register-cta svg path{f
167ill:#ff3287}#tns-events #tns-events-cover #tns-events-upcoming-events .no-data{padding:0 15px}#tns-events .content-column{min-height:unset}#tns-events .content-column >.row{-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-flow:wrap;-ms-flex-flow:wrap;flex-flow:wrap}#tns-events .content-column >.row >.col-75{padding-right:15px}@media (max-width:991.98px){#tns-events .content-column >.row >.col-75{max-width:100%;min-width:100%;padding-right:0}}#tns-events .content-column >.row >.col-25{padding-left:15px}@media (max-width:991.98px){#tns-events .content-column >.row >.col-25{max-width:100%;min-width:100%;padding-left:0}}#tns-events .events-list{margin-bottom:60px}#tns-events .events-list #tns-events-upcoming-events{position:relative;padding-bottom:50px}#tns-events .events-list #tns-events-upcoming-events.hide{display:none}#tns-events .events-list #tns-events-upcoming-events .row{-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-flow:wrap;-ms-flex-flow:wrap;flex-flow:wrap}#tns-events .events-list #tns-events-upcoming-events .events-card{position:relative;display:block;width:100%;height:auto;padding-top:15px;padding-bottom:15px;cursor:pointer}#tns-events .events-list #tns-events-upcoming-events .events-card:not(:nth-last-child(-n+2)){border-bottom:1px solid #a5a9b0}#tns-events .events-list #tns-events-upcoming-events .events-card .col-33{padding-right:15px}#tns-events .events-list #tns-events-upcoming-events .events-card .col-66{padding-left:15px}#tns-events .events-list #tns-events-upcoming-events .events-card-row{position:relative;-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-flow:wrap;-ms-flex-flow:wrap;flex-flow:wrap;margin-left:auto;margin-right:auto;text-decoration:none}#tns-events .events-list #tns-events-upcoming-events .events-card-row:hover{text-decoration:none}#tns-events .events-list #tns-events-upcoming-events .events-card-row:hover .events-card-content .event-title{color:#01aff4}#tns-events .events-list #tns-events-upcoming-events .events-card-row:hover .events-card-content .event-register-cta{color:#01aff4}#tns-events .events-list #tns-events-upcoming-events .events-card-row:hover .events-card-content .event-register-cta svg path{f
167ill:#01aff4}#tns-events .events-list #tns-events-upcoming-events .events-card-poster{position:relative}#tns-events .events-list #tns-events-upcoming-events .events-card-poster img{width:100%;height:auto}#tns-events .events-list #tns-events-upcoming-events .events-card-content{position:relative;display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex;-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-flow:wrap;-ms-flex-flow:wrap;flex-flow:wrap;width:100%;vertical-align:middle}#tns-events .events-list #tns-events-upcoming-events .events-card-content .event-title{width:100%;-webkit-align-self:flex-end;align-self:flex-end;-ms-flex-item-align:end;color:#3c3c3c;font-size:27px;line-height:1.2;letter-spacing:0;text-decoration:none;margin-bottom:5px}#tns-events .events-list #tns-events-upcoming-events .events-card-content .event-title:hover{color:#01aff4}#tns-events .events-list #tns-events-upcoming-events .events-card-content .event-meta{width:100%;line-height:80%;margin-bottom:20px}#tns-events .events-list #tns-events-upcoming-events .events-card-content .event-meta .date,#tns-events .events-list #tns-events-upcoming-events .events-card-content .event-meta .location{display:inline-block;width:100%;color:#3c3c3c;font-size:14px;font-weight:bold;line-height:1.33;text-transform:uppercase}@media (max-width:1023px){#tns-events .events-list #tns-events-upcoming-events .events-card-content .event-meta .date,#tns-events .events-list #tns-events-upcoming-events .events-card-content .event-meta .location{font-size:12px}}#tns-events .events-list #tns-events-upcoming-events .events-card-content .event-meta .location{font-weight:normal}#tns-events .events-list #tns-events-upcoming-events .events-card-content .event-description{font-size:16px;color:#3c3c3c;font-weight:normal;line-height:1.35;letter-spacing:0}#tns-events .events-list #tns-events-upcoming-events .events-card-content .event-description p,#tns-events .events-list #tns-events-upcoming-events .events-card-content .event-description a{font-size:16px;color:#3c3c3c;font-weight:normal;line-height:1.35;letter-spacing:0}#tns-events .events-list #tns-events-upcoming-events .events-card-content .event-description a{color:#ff3287;text-decoration:none}#tns-events .events-list #tns-events-upcoming-events .events-card-content .event-description a:hover{color:#01aff4;text-decoration:none}@media (max-width:991.98px){#tns-events .events-list #tns-events-upcoming-events .events-card-content .event-description{font-size:13px}}#tns-events .events-list #tns-events-upcoming-events .events-card-content .event-register-cta{font-size:16px;font-weight:500}#tns-events .events-list #tns-events-upcoming-events .events-card-content .event-register-cta svg{height:10px;vertical-align:baseline}#tns-events .events-list #tns-events-upcoming-events .events-card-content .event-register-cta svg path{f
167ill:#ff3287}#tns-events .events-list #tns-events-upcoming-events .no-data{padding:0 15px}#tns-events .events-list #tns-events-past-events{position:relative;padding-bottom:50px}#tns-events .events-list #tns-events-past-events.hide{display:none}#tns-events .events-list #tns-events-past-events .row{-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-flow:wrap;-ms-flex-flow:wrap;flex-flow:wrap}#tns-events .events-list #tns-events-past-events .events-card{position:relative;display:block;width:100%;height:auto;padding-top:15px;padding-bottom:15px}#tns-events .events-list #tns-events-past-events .events-card:not(:nth-last-child(-n+2)){border-bottom:1px solid #a5a9b0}#tns-events .events-list #tns-events-past-events .events-card .col-33{padding-right:15px}@media (max-width:499px){#tns-events .events-list #tns-events-past-events .events-card .col-33{min-width:100%;max-width:100%;padding-right:0}}#tns-events .events-list #tns-events-past-events .events-card .col-66{padding-left:15px}@media (max-width:499px){#tns-events .events-list #tns-events-past-events .events-card .col-66{min-width:100%;max-width:100%;padding-left:0}}#tns-events .events-list #tns-events-past-events .events-card-row{position:relative;-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-flow:wrap;-ms-flex-flow:wrap;flex-flow:wrap;margin-left:auto;margin-right:auto;text-decoration:none}#tns-events .events-list #tns-events-past-events .events-card-poster{position:relative}#tns-events .events-list #tns-events-past-events .events-card-poster img{width:100%;height:auto}@media (max-width:499px){#tns-events .events-list #tns-events-past-events .events-card-poster img{margin-bottom:20px}}#tns-events .events-list #tns-events-past-events .events-card-content{position:relative;display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex;-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-flow:wrap;-ms-flex-flow:wrap;flex-flow:wrap;width:100%;vertical-align:middle}#tns-events .events-list #tns-events-past-events .events-card-content .event-title{width:100%;-webkit-align-self:flex-end;align-self:flex-end;-ms-flex-item-align:end;color:#3c3c3c;font-size:27px;line-height:1.2;letter-spacing:0;text-decoration:none;margin-bottom:5px}#tns-events .events-list #tns-events-past-events .events-card-content .event-meta{width:100%;line-height:80%;margin-bottom:20px}#tns-events .events-list #tns-events-past-events .events-card-content .event-meta .date,#tns-events .events-list #tns-events-past-events .events-card-content .event-meta .location{display:inline-block;width:100%;color:#3c3c3c;font-size:14px;font-weight:bold;line-height:1.33;text-transform:uppercase}@media (max-width:1023px){#tns-events .events-list #tns-events-past-events .events-card-content .event-meta .date,#tns-events .events-list #tns-events-past-events .events-card-content .event-meta .location{font-size:12px}}#tns-events .events-list #tns-events-past-events .events-card-content .event-meta .location{font-weight:normal}#tns-events .events-list #tns-events-past-events .events-card-content .event-description{font-size:16px;color:#3c3c3c;font-weight:normal;line-height:1.35;letter-spacing:0}#tns-events .events-list #tns-events-past-events .events-card-content .event-description p,#tns-events .events-list #tns-events-past-events .events-card-content .event-description a{font-size:16px;color:#3c3c3c;font-weight:normal;line-height:1.35;letter-spacing:0}#tns-events .events-list #tns-events-past-events .events-card-content .event-description a{color:#ff3287;text-decoration:none}@media (max-width:991.98px){#tns-events .events-list #tns-events-past-events .events-card-content .event-description{font-size:13px}}#tns-events .events-list #tns-events-past-events .events-card-content .event-register-cta{font-size:16px;font-weight:500}@media (max-width:499px){#tns-events .events-list #tns-events-past-events .events-card-content .event-register-cta{margin-bottom:30px}}#tns-events .events-list #tns-events-past-events .events-card-content .event-register-cta svg{height:10px;vertical-align:baseline}#tns-events .events-list #tns-events-past-events .events-card-content .event-register-cta svg path{f
167ill:#ff3287}#tns-events .events-list #tns-events-past-events .no-data{padding:0 15px}#tns-events .events-list #tns-events-sidebar{position:sticky;top:0}#tns-events .events-list #tns-events-sidebar #tns-newsletter-shortcode,#tns-events .events-list #tns-events-sidebar input[type="email"],#tns-events .events-list #tns-events-sidebar input[type="text"]{border-color:#01aff4}#tns-events .events-list #tns-events-sidebar input[type="submit"],#tns-events .events-list #tns-events-sidebar button,#tns-events .events-list #tns-events-sidebar .tns-button{background:#01aff4}#tns-events .events-list #tns-events-sidebar input[type="submit"]:hover,#tns-events .events-list #tns-events-sidebar button:hover,#tns-events .events-list #tns-events-sidebar .tns-button:hover{background:#ff3287}#tns-webinar .content-column{margin-top:50px;margin-bottom:50px}@media (max-width:767px){#tns-webinar .content-column{margin-top:30px;margin-bottom:30px}}#tns-webinar .webinar-story-card-link{display:block;padding-bottom:10px;margin-bottom:20px;border-bottom:1px solid #c2c2c2}#tns-webinar .webinar-story-card-link:last-child{border-bottom:none}#tns-webinar .webinar-story-card-link:hover .headline{color:#01aff4}#tns-webinar .webinar-story-card-link .col-thumb img{display:block;width:100%;height:auto}#tns-webinar .webinar-story-card-link .col-headline{color:#515151;padding-left:15px}#tns-webinar .webinar-story-card-link .col-headline .post-title{padding:0;margin-top:-3px;font-size:18px;font-weight:500;text-decoration:none}#tns-webinar .webinar-story-card-link .col-headline .excerpt{margin-top:7px;color:#3c3c3c;font-size:14px;line-height:1.2}#tns-webinar .webinar-story-card-link:hover .post-title{color:#01aff4}#tns-webinar .webinar-footer-spacer{margin-bottom:50px}@media (max-width:767px){#tns-webinar .webinar-footer-spacer{margin-bottom:30px}}#tns-webinar #tns-webinar-heading{position:relative;margin-bottom:50px}#tns-webinar #tns-webinar-heading .title h1{line-height:1.12;font-weight:700}@media (max-width:767px){#tns-webinar #tns-webinar-heading{margin-bottom:30px}}@media (max-width:1023px){#tns-webinar #tns-webinar-heading .row{-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}#tns-webinar #tns-webinar-heading .row .title{min-width:100%;max-width:100%}#tns-webinar #tns-webinar-heading .row .definition{min-width:80%;max-width:80%}#tns-webinar #tns-webinar-heading .row .empty{min-width:20%;max-width:20%}}@media (max-width:1023px){#tns-webinar #tns-webinar-heading .row .definition{min-width:90%;max-width:90%}#tns-webinar #tns-webinar-heading .row .empty{min-width:10%;max-width:10%}}#tns-webinar #tns-webinar-frame{position:relative;display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex}@media (max-width:899px){#tns-webinar #tns-webinar-frame .webinar-nav{display:none}#tns-webinar #tns-webinar-frame .webinar-content{min-width:65%;max-width:65%}#tns-webinar #tns-webinar-frame .webinar-sidebar{min-width:35%;max-width:35%}}@media (max-width:767px){#tns-webinar #tns-webinar-frame .webinar-nav{display:none}#tns-webinar #tns-webinar-frame .webinar-content{min-width:100%;max-width:100%}#tns-webinar #tns-webinar-frame .webinar-sidebar{display:none}}#tns-webinar #tns-webinar-frame #tns-webinar-frame-nav{position:sticky;top:110px;padding-right:40px}#tns-webinar #tns-webinar-frame #tns-webinar-frame-nav .heading-text{opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0)}#tns-webinar #tns-webinar-frame #tns-webinar-frame-nav .webinar-nav-option{display:block;color:#000}#tns-webinar #tns-webinar-frame #tns-webinar-frame-nav .webinar-nav-option:hover{color:#ff3287}#tns-webinar #tns-webinar-frame #tns-webinar-frame-nav .webinar-nav-option.active{color:#ff3287}#tns-webinar #tns-webinar-frame #tns-webinar-frame-content{position:relative}#tns-webinar #tns-webinar-frame #tns-webinar-frame-content .webinar-content-block{margin-bottom:40px}#tns-webinar #tns-webinar-frame #tns-webinar-frame-content .webinar-story-card{margin-top:10px;padding-bottom:10px;border-bottom:1px solid #c2c2c2}#tns-webinar #tns-webinar-frame #tns-webinar-frame-content .webinar-story-card:first-child{margin-top:0}#tns-webinar #tns-webinar-frame #tns-webinar-frame-content .webinar-story-card:last-child{border-bottom:none}#tns-webinar #tns-webinar-frame #tns-webinar-frame-content .webinar-story-card .col-thumb{min-width:100px;max-width:100px}@media (max-width:767px){#tns-webinar #tns-webinar-frame #tns-webinar-frame-content .webinar-story-card .col-thumb{min-width:70px;max-width:70px}}#tns-webinar #tns-webinar-frame #tns-webinar-frame-content .webinar-story-card .col-thumb .thumb{width:100px;height:50px;background:#f6f8fa}@media (max-width:767px){#tns-webinar #tns-webinar-frame #tns-webinar-frame-content .webinar-story-card .col-thumb .thumb{width:70px;height:35px}}#tns-webinar #tns-webinar-frame #tns-webinar-frame-content .webinar-story-card .col-headline .headline{padding-left:10px;font-size:16px;font-weight:500}@media (max-width:767px){#tns-webinar #tns-webinar-frame #tns-webinar-frame-content .webinar-story-card .col-headline .headline{font-size:15px}}#tns-webinar #tns-webinar-frame #tns-webinar-frame-content #tns-webinar-information{position:relative}#tns-webinar #tns-webinar-frame #tns-webinar-frame-content #tns-webinar-information .register-button{display:block;background:#ff3287;display:block;text-align:center;color:#fff;font-weight:500;line-height:35px;font-size:16px;margin:20px auto 20px;padding:1px 6px;letter-spacing:1px;border-radius:5px;text-decoration:none}#tns-webinar #tns-webinar-frame #tns-webinar-frame-content #tns-webinar-information .register-button:hover{background:#01aff4}#tns-webinar #tns-webinar-frame #tns-webinar-frame-content #tns-webinar-information img{width:100%;height:auto}#tns-webinar #tns-webinar-frame #tns-webinar-frame-content #tns-webinar-information .description{margin:20px 0 0 0}#tns-webinar #tns-webinar-frame #tns-webinar-frame-content #tns-webinar-information .form-embed-container{display:block;margin-bottom:30px}#tns-webinar #tns-webinar-frame #tns-webinar-frame-content #tns-webinar-frame-content-block-airmeet .airmeet-container{padding:20px;background:#dae9f2}#tns-webinar #tns-webinar-frame #tns-webinar-frame-content #tns-webinar-frame-content-block-airmeet .airmeet-inner{padding:20px;background:#fff;border-radius:5px}#tns-webinar #tns-webinar-frame #tns-webinar-frame-content #tns-webinar-frame-content-block-airmeet .airmeet-container[hidden],#tns-webinar #tns-webinar-frame #tns-webinar-frame-content #tns-webinar-frame-content-block-airmeet .airmeet-webinar-form[hidden],#tns-webinar #tns-webinar-frame #tns-webinar-frame-content #tns-webinar-frame-content-block-airmeet .airmeet-success[hidden],#tns-webinar #tns-webinar-frame #tns-webinar-frame-content #tns-webinar-frame-content-block-airmeet .airmeet-video[hidden]{display:none !important}#tns-webinar #tns-webinar-frame #tns-webinar-frame-content #tns-webinar-frame-content-block-airmeet .airmeet-profile-fields[hidden],#tns-webinar #tns-webinar-frame #tns-webinar-frame-content #tns-webinar-frame-content-block-airmeet .airmeet-job-more-fields[hidden],#tns-webinar #tns-webinar-frame #tns-webinar-frame-content #tns-webinar-frame-content-block-airmeet .airmeet-state-field[hidden]{display:none !important}#tns-webinar #tns-webinar-frame #tns-webinar-frame-content #tns-webinar-frame-content-block-airmeet .airmeet-webinar-name{font-weight:700;font-size:16px;margin-bottom:5px}#tns-webinar #tns-webinar-frame #tns-webinar-frame-content #tns-webinar-frame-content-block-airmeet .airmeet-webinar-time{font-size:14px;margin-bottom:20px}#tns-webinar #tns-webinar-frame #tns-webinar-frame-content #tns-webinar-frame-content-block-airmeet .airmeet-webinar-time svg{vertical-align:middle}#tns-webinar #tns-webinar-frame #tns-webinar-frame-content #tns-webinar-frame-content-block-airmeet .airmeet-questions p{margin:0 0 8px 0;font-size:14px}#tns-webinar #tns-webinar-frame #tns-webinar-frame-content #tns-webinar-frame-content-block-airmeet .airmeet-questions p .airmeet-required{color:#f00}#tns-webinar #tns-webinar-frame #tns-webinar-frame-content #tns-webinar-frame-content-block-airmeet .airmeet-questions select{display:block;width:100%;padding:10px 28px 10px 10px;border:1px solid #ff3287;margin-bottom:20px;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAYAAAD68A/GAAAAJElEQVR4nGNgYGD4z0AY/Mdg4FOETzFOA9Al8DrrPzGKcJoEAJCsCvaQZB9yAAAAAElFTkSuQmCC");background-repeat:no-repeat;background-position:right 12px center}#tns-webinar #tns-webinar-frame #tns-webinar-frame-content #tns-webinar-frame-content-block-airmeet .airmeet-register[disabled]{opacity:.5;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";filter:alpha(opacity=50);
167cursor:not-allowed;pointer-events:none}#tns-webinar #tns-webinar-frame #tns-webinar-frame-content #tns-webinar-frame-content-block-airmeet .airmeet-disclaimer{margin-top:20px;font-size:12px;line-height:1.5em;color:#a5a9b0}#tns-webinar #tns-webinar-frame #tns-webinar-frame-content #tns-webinar-frame-content-block-airmeet .airmeet-success{background:#eafaf2;color:#22b573;text-align:center;padding:20px 15px 15px 15px}#tns-webinar #tns-webinar-frame #tns-webinar-frame-content #tns-webinar-frame-content-block-airmeet .airmeet-success p{margin:10px 0 0 0}#tns-webinar #tns-webinar-frame #tns-webinar-frame-content #tns-webinar-frame-content-block-airmeet .airmeet-video{width:100%;aspect-ratio:16/9}#tns-webinar #tns-webinar-frame #tns-webinar-frame-content #tns-webinar-frame-content-block-airmeet .airmeet-video iframe{width:100%;height:100%;display:block}#tns-webinar #tns-webinar-frame #tns-webinar-frame-content #tns-webinar-frame-content-block-highlights{position:relative}#tns-webinar #tns-webinar-frame #tns-webinar-frame-content #tns-webinar-frame-content-block-highlights .section-heading{text-transform:uppercase}#tns-webinar #tns-webinar-frame #tns-webinar-frame-content #tns-webinar-frame-content-block-featured-programming{position:relative}#tns-webinar #tns-webinar-frame #tns-webinar-frame-content #tns-webinar-frame-content-block-featured-programming .section-heading{text-transform:uppercase}#tns-webinar #tns-webinar-frame #tns-webinar-frame-content #tns-webinar-frame-content-block-spotlight{position:relative}#tns-webinar #tns-webinar-frame #tns-webinar-frame-content #tns-webinar-frame-content-block-spotlight .section-heading{text-transform:uppercase}#tns-webinar #tns-webinar-frame #tns-webinar-frame-content #tns-webinar-frame-content-block-spotlight .post-excerpt{margin-bottom:7px}#tns-webinar #tns-webinar-frame #tns-webinar-frame-content #tns-webinar-frame-content-block-related-stories{position:relative}#tns-webinar #tns-webinar-frame #tns-webinar-frame-content #tns-webinar-frame-content-block-related-stories .section-heading{text-transform:uppercase}#tns-webinar #tns-webinar-frame #tns-webinar-frame-content #tns-webinar-frame-content-block-related-stories .post-excerpt{margin-bottom:7px}#tns-webinar #tns-webinar-frame #tns-webinar-frame-sidebar{position:sticky;top:110px;padding-left:40px}#tns-webinar #tns-webinar-frame #tns-webinar-frame-sidebar #tns-webinar-frame-sidebar-sponsors{position:relative;margin-bottom:30px}#tns-webinar #tns-webinar-frame #tns-webinar-frame-sidebar #tns-webinar-frame-sidebar-sponsors .sponsor-logo{display:block}#tns-webinar #tns-webinar-frame #tns-webinar-frame-sidebar #tns-webinar-frame-sidebar-sponsors .sponsor-logo:hover .copy{color:#ff3287}#tns-webinar #tns-webinar-frame #tns-webinar-frame-sidebar #tns-webinar-frame-sidebar-sponsors .sponsor-logo:hover .copy svg path{f
167ill:#ff3287}#tns-webinar #tns-webinar-frame #tns-webinar-frame-sidebar #tns-webinar-frame-sidebar-sponsors .sponsor-logo .logo-frame{width:100%;max-height:120px;display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex;-webkit-box-align:center;-moz-box-align:center;-o-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;padding:10px;background:#eaeff3;margin-bottom:10px}#tns-webinar #tns-webinar-frame #tns-webinar-frame-sidebar #tns-webinar-frame-sidebar-sponsors .sponsor-logo .logo-frame .logo-img{aspect-ratio:1.86/1;object-fit:contain;max-width:80%;max-height:70%}#tns-webinar #tns-webinar-frame #tns-webinar-frame-sidebar #tns-webinar-frame-sidebar-sponsors .sponsor-logo .copy{color:#515151;font-size:14px;line-height:1.33}@media (max-width:767px){#tns-webinar #tns-webinar-frame #tns-webinar-frame-sidebar #tns-webinar-frame-sidebar-sponsors .sponsor-logo .copy{font-size:17px}}#tns-webinar #tns-webinar-frame #tns-webinar-frame-sidebar #tns-webinar-frame-sidebar-sponsors .sponsor-logo .copy svg{height:8px;vertical-align:baseline}@media (max-width:767px){#tns-webinar #tns-webinar-frame #tns-webinar-frame-sidebar #tns-webinar-frame-sidebar-sponsors .sponsor-logo .copy svg{height:10px}}#tns-webinar #tns-webinar-frame #tns-webinar-frame-sidebar #tns-webinar-frame-sidebar-sponsors .sponsor-logo .copy svg path{f
167ill:#515151}#tns-webinar #tns-webinar-frame #tns-webinar-frame-sidebar #tns-webinar-frame-sidebar-subscribe{position:relative}#tns-webinar #tns-webinar-frame #tns-webinar-frame-sidebar #tns-webinar-frame-sidebar-subscribe .description p{font-weight:normal;font-size:14px}#tns-webinars{position:relative}#tns-webinars #tns-webinars-cover{position:relative;padding-top:50px;margin-bottom:50px}@media (max-width:767px){#tns-webinars #tns-webinars-cover{padding-top:30px}}#tns-webinars #tns-webinars-cover .featured-column{padding-right:20px}@media (max-width:767px){#tns-webinars #tns-webinars-cover .featured-column{min-width:100%;padding-right:0}}@media (max-width:767px){#tns-webinars #tns-webinars-cover .sidebar-column{display:none}}#tns-webinars #tns-webinars-cover #tns-webinars-featured-webinar{position:relative}#tns-webinars #tns-webinars-cover #tns-webinars-featured-webinar .section-heading{color:#fff;border-top:1px solid #fff;opacity:.75;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=75)";filter:alpha(opacity=75)}#tns-webinars #tns-webinars-cover #tns-webinars-featured-webinar .wrap-row{-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-flow:wrap;-ms-flex-flow:wrap;flex-flow:wrap}@media (max-width:767.98px){#tns-webinars #tns-webinars-cover #tns-webinars-featured-webinar .wrap-row >.col-50{max-width:100%;min-width:100%;padding:0}}#tns-webinars #tns-webinars-cover #tns-webinars-featured-webinar .wrap-row >.col-50:first-child{padding-right:15px}@media (max-width:767.98px){#tns-webinars #tns-webinars-cover #tns-webinars-featured-webinar .wrap-row >.col-50:first-child{padding:0}}#tns-webinars #tns-webinars-cover #tns-webinars-featured-webinar .wrap-row >.col-50:last-child{padding-left:15px}@media (max-width:767.98px){#tns-webinars #tns-webinars-cover #tns-webinars-featured-webinar .wrap-row >.col-50:last-child{padding:0}}#tns-webinars #tns-webinars-cover #tns-webinars-featured-webinar .wrap-row .desktop-hide{margin-bottom:15px}@media (min-width:768px){#tns-webinars #tns-webinars-cover #tns-webinars-featured-webinar .wrap-row .desktop-hide{display:none}}@media (max-width:767.98px){#tns-webinars #tns-webinars-cover #tns-webinars-featured-webinar .wrap-row .mobile-hide{display:none}}#tns-webinars #tns-webinars-cover #tns-webinars-featured-webinar .heading{display:block;color:#fff;font-size:14px;line-height:1.33;font-weight:700;text-transform:uppercase;margin-bottom:20px}#tns-webinars #tns-webinars-cover #tns-webinars-featured-webinar .image{display:block;width:100%;height:auto}@media (max-width:767px){#tns-webinars #tns-webinars-cover #tns-webinars-featured-webinar .image{margin-bottom:30px}}#tns-webinars #tns-webinars-cover #tns-webinars-featured-webinar .title{width:100%;color:#fff;font-size:36px;font-weight:600;line-height:1.12;margin-bottom:12px;text-transform:capitalize}@media (max-width:1023px){#tns-webinars #tns-webinars-cover #tns-webinars-featured-webinar .title{font-size:27px}}@media (max-width:767px){#tns-webinars #tns-webinars-cover #tns-webinars-featured-webinar .title{font-size:24px}}#tns-webinars #tns-webinars-cover #tns-webinars-featured-webinar .webinar-meta{width:100%;margin-bottom:30px}#tns-webinars #tns-webinars-cover #tns-webinars-featured-webinar .webinar-meta .date,#tns-webinars #tns-webinars-cover #tns-webinars-featured-webinar .webinar-meta .location{color:#fff;font-size:18px;line-height:1.35;text-transform:uppercase;margin-right:10px}@media (max-width:991.98px){#tns-webinars #tns-webinars-cover #tns-webinars-featured-webinar .webinar-meta .date,#tns-webinars #tns-webinars-cover #tns-webinars-featured-webinar .webinar-meta .location{font-size:16px}}@media (max-width:991.98px){#tns-webinars #tns-webinars-cover #tns-webinars-featured-webinar .webinar-meta{font-size:28px}}#tns-webinars #tns-webinars-cover #tns-webinars-featured-webinar .description{width:100%;color:#fff}#tns-webinars #tns-webinars-cover #tns-webinars-featured-webinar .description p,#tns-webinars #tns-webinars-cover #tns-webinars-featured-webinar .description a{color:#fff;font-size:20px;line-height:1.33}#tns-webinars #tns-webinars-cover #tns-webinars-featured-webinar .description a:hover{color:#ff3287}#tns-webinars #tns-webinars-cover #tns-webinars-featured-webinar .more-info-button{position:relative;display:block;width:100%;height:40px;color:#ff3287;font-size:18px;font-weight:500;line-height:40px;text-align:center;border:none;border-radius:5px;background-color:#fff;cursor:pointer}#tns-webinars #tns-webinars-cover #tns-webinars-featured-webinar .more-info-button:hover{color:#fff;background-color:#ff3287}#tns-webinars #tns-webinars-cover #tns-webinars-cover-sidebar{position:relative}#tns-webinars #tns-webinars-cover #tns-webinars-cover-sidebar .section-heading{color:#fff;border-top:1px solid #fff;
167opacity:.75;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=75)";filter:alpha(opacity=75)}#tns-webinars #tns-webinars-cover #tns-webinars-upcoming-webinars{position:relative;padding-bottom:50px}#tns-webinars #tns-webinars-cover #tns-webinars-upcoming-webinars.hide{display:none}#tns-webinars #tns-webinars-cover #tns-webinars-upcoming-webinars .row{-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-flow:wrap;-ms-flex-flow:wrap;flex-flow:wrap}#tns-webinars #tns-webinars-cover #tns-webinars-upcoming-webinars .webinars-card{position:relative;display:block;width:100%;height:auto;padding-top:15px;padding-bottom:15px;cursor:pointer}#tns-webinars #tns-webinars-cover #tns-webinars-upcoming-webinars .webinars-card:not(:nth-last-child(-n+2)){border-bottom:1px solid #a5a9b0}#tns-webinars #tns-webinars-cover #tns-webinars-upcoming-webinars .webinars-card .col-33{padding-right:15px}#tns-webinars #tns-webinars-cover #tns-webinars-upcoming-webinars .webinars-card .col-66{padding-left:15px}#tns-webinars #tns-webinars-cover #tns-webinars-upcoming-webinars .webinars-card-row{position:relative;-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-flow:wrap;-ms-flex-flow:wrap;flex-flow:wrap;margin-left:auto;margin-right:auto;text-decoration:none}#tns-webinars #tns-webinars-cover #tns-webinars-upcoming-webinars .webinars-card-row:hover{text-decoration:none}#tns-webinars #tns-webinars-cover #tns-webinars-upcoming-webinars .webinars-card-row:hover .webinars-card-content .webinar-title{color:#01aff4}#tns-webinars #tns-webinars-cover #tns-webinars-upcoming-webinars .webinars-card-row:hover .webinars-card-content .webinar-register-cta{color:#01aff4}#tns-webinars #tns-webinars-cover #tns-webinars-upcoming-webinars .webinars-card-row:hover .webinars-card-content .webinar-register-cta svg path{f
167ill:#01aff4}#tns-webinars #tns-webinars-cover #tns-webinars-upcoming-webinars .webinars-card-poster{position:relative}#tns-webinars #tns-webinars-cover #tns-webinars-upcoming-webinars .webinars-card-poster img{width:100%;height:auto}#tns-webinars #tns-webinars-cover #tns-webinars-upcoming-webinars .webinars-card-content{position:relative;display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex;-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-flow:wrap;-ms-flex-flow:wrap;flex-flow:wrap;width:100%;vertical-align:middle}#tns-webinars #tns-webinars-cover #tns-webinars-upcoming-webinars .webinars-card-content .webinar-title{width:100%;-webkit-align-self:flex-end;align-self:flex-end;-ms-flex-item-align:end;color:#3c3c3c;font-size:27px;line-height:1.2;letter-spacing:0;text-decoration:none;margin-bottom:5px}#tns-webinars #tns-webinars-cover #tns-webinars-upcoming-webinars .webinars-card-content .webinar-title:hover{color:#01aff4}#tns-webinars #tns-webinars-cover #tns-webinars-upcoming-webinars .webinars-card-content .webinar-meta{width:100%;line-height:80%;margin-bottom:20px}#tns-webinars #tns-webinars-cover #tns-webinars-upcoming-webinars .webinars-card-content .webinar-meta .date,#tns-webinars #tns-webinars-cover #tns-webinars-upcoming-webinars .webinars-card-content .webinar-meta .location{display:inline-block;width:100%;color:#3c3c3c;font-size:14px;font-weight:bold;line-height:1.33;text-transform:uppercase}@media (max-width:1023px){#tns-webinars #tns-webinars-cover #tns-webinars-upcoming-webinars .webinars-card-content .webinar-meta .date,#tns-webinars #tns-webinars-cover #tns-webinars-upcoming-webinars .webinars-card-content .webinar-meta .location{font-size:12px}}#tns-webinars #tns-webinars-cover #tns-webinars-upcoming-webinars .webinars-card-content .webinar-meta .location{font-weight:normal}#tns-webinars #tns-webinars-cover #tns-webinars-upcoming-webinars .webinars-card-content .webinar-description{font-size:16px;color:#3c3c3c;font-weight:normal;line-height:1.35;letter-spacing:0}#tns-webinars #tns-webinars-cover #tns-webinars-upcoming-webinars .webinars-card-content .webinar-description p,#tns-webinars #tns-webinars-cover #tns-webinars-upcoming-webinars .webinars-card-content .webinar-description a{font-size:16px;color:#3c3c3c;font-weight:normal;line-height:1.35;letter-spacing:0}#tns-webinars #tns-webinars-cover #tns-webinars-upcoming-webinars .webinars-card-content .webinar-description a{color:#ff3287;text-decoration:none}#tns-webinars #tns-webinars-cover #tns-webinars-upcoming-webinars .webinars-card-content .webinar-description a:hover{color:#01aff4;text-decoration:none}@media (max-width:991.98px){#tns-webinars #tns-webinars-cover #tns-webinars-upcoming-webinars .webinars-card-content .webinar-description{font-size:13px}}#tns-webinars #tns-webinars-cover #tns-webinars-upcoming-webinars .webinars-card-content .webinar-register-cta{font-size:16px;font-weight:500}#tns-webinars #tns-webinars-cover #tns-webinars-upcoming-webinars .webinars-card-content .webinar-register-cta svg{height:10px;vertical-align:baseline}#tns-webinars #tns-webinars-cover #tns-webinars-upcoming-webinars .webinars-card-content .webinar-register-cta svg path{f
167ill:#ff3287}#tns-webinars #tns-webinars-cover #tns-webinars-upcoming-webinars .no-data{padding:0 15px}#tns-webinars .content-column{min-height:unset}#tns-webinars .content-column >.row{-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-flow:wrap;-ms-flex-flow:wrap;flex-flow:wrap}#tns-webinars .content-column >.row >.col-75{padding-right:15px}@media (max-width:991.98px){#tns-webinars .content-column >.row >.col-75{max-width:100%;min-width:100%;padding-right:0}}#tns-webinars .content-column >.row >.col-25{padding-left:15px}@media (max-width:991.98px){#tns-webinars .content-column >.row >.col-25{max-width:100%;min-width:100%;padding-left:0}}#tns-webinars .webinars-list{margin-bottom:60px}#tns-webinars .webinars-list #tns-webinars-upcoming-webinars{position:relative;padding-bottom:50px}#tns-webinars .webinars-list #tns-webinars-upcoming-webinars.hide{display:none}#tns-webinars .webinars-list #tns-webinars-upcoming-webinars .row{-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-flow:wrap;-ms-flex-flow:wrap;flex-flow:wrap}#tns-webinars .webinars-list #tns-webinars-upcoming-webinars .webinars-card{position:relative;display:block;width:100%;height:auto;padding-top:15px;padding-bottom:15px;cursor:pointer}#tns-webinars .webinars-list #tns-webinars-upcoming-webinars .webinars-card:not(:nth-last-child(-n+2)){border-bottom:1px solid #a5a9b0}#tns-webinars .webinars-list #tns-webinars-upcoming-webinars .webinars-card .col-33{padding-right:15px}#tns-webinars .webinars-list #tns-webinars-upcoming-webinars .webinars-card .col-66{padding-left:15px}#tns-webinars .webinars-list #tns-webinars-upcoming-webinars .webinars-card-row{position:relative;-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-flow:wrap;-ms-flex-flow:wrap;flex-flow:wrap;margin-left:auto;margin-right:auto;text-decoration:none}#tns-webinars .webinars-list #tns-webinars-upcoming-webinars .webinars-card-row:hover{text-decoration:none}#tns-webinars .webinars-list #tns-webinars-upcoming-webinars .webinars-card-row:hover .webinars-card-content .webinar-title{color:#01aff4}#tns-webinars .webinars-list #tns-webinars-upcoming-webinars .webinars-card-row:hover .webinars-card-content .webinar-register-cta{color:#01aff4}#tns-webinars .webinars-list #tns-webinars-upcoming-webinars .webinars-card-row:hover .webinars-card-content .webinar-register-cta svg path{f
167ill:#01aff4}#tns-webinars .webinars-list #tns-webinars-upcoming-webinars .webinars-card-poster{position:relative}#tns-webinars .webinars-list #tns-webinars-upcoming-webinars .webinars-card-poster img{width:100%;height:auto}#tns-webinars .webinars-list #tns-webinars-upcoming-webinars .webinars-card-content{position:relative;display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex;-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-flow:wrap;-ms-flex-flow:wrap;flex-flow:wrap;width:100%;vertical-align:middle}#tns-webinars .webinars-list #tns-webinars-upcoming-webinars .webinars-card-content .webinar-title{width:100%;-webkit-align-self:flex-end;align-self:flex-end;-ms-flex-item-align:end;color:#3c3c3c;font-size:27px;line-height:1.2;letter-spacing:0;text-decoration:none;margin-bottom:5px}#tns-webinars .webinars-list #tns-webinars-upcoming-webinars .webinars-card-content .webinar-title:hover{color:#01aff4}#tns-webinars .webinars-list #tns-webinars-upcoming-webinars .webinars-card-content .webinar-meta{width:100%;line-height:80%;margin-bottom:20px}#tns-webinars .webinars-list #tns-webinars-upcoming-webinars .webinars-card-content .webinar-meta .date,#tns-webinars .webinars-list #tns-webinars-upcoming-webinars .webinars-card-content .webinar-meta .location{display:inline-block;width:100%;color:#3c3c3c;font-size:14px;font-weight:bold;line-height:1.33;text-transform:uppercase}@media (max-width:1023px){#tns-webinars .webinars-list #tns-webinars-upcoming-webinars .webinars-card-content .webinar-meta .date,#tns-webinars .webinars-list #tns-webinars-upcoming-webinars .webinars-card-content .webinar-meta .location{font-size:12px}}#tns-webinars .webinars-list #tns-webinars-upcoming-webinars .webinars-card-content .webinar-meta .location{font-weight:normal}#tns-webinars .webinars-list #tns-webinars-upcoming-webinars .webinars-card-content .webinar-description{font-size:16px;color:#3c3c3c;font-weight:normal;line-height:1.35;letter-spacing:0}#tns-webinars .webinars-list #tns-webinars-upcoming-webinars .webinars-card-content .webinar-description p,#tns-webinars .webinars-list #tns-webinars-upcoming-webinars .webinars-card-content .webinar-description a{font-size:16px;color:#3c3c3c;font-weight:normal;line-height:1.35;letter-spacing:0}#tns-webinars .webinars-list #tns-webinars-upcoming-webinars .webinars-card-content .webinar-description a{color:#ff3287;text-decoration:none}#tns-webinars .webinars-list #tns-webinars-upcoming-webinars .webinars-card-content .webinar-description a:hover{color:#01aff4;text-decoration:none}@media (max-width:991.98px){#tns-webinars .webinars-list #tns-webinars-upcoming-webinars .webinars-card-content .webinar-description{font-size:13px}}#tns-webinars .webinars-list #tns-webinars-upcoming-webinars .webinars-card-content .webinar-register-cta{font-size:16px;font-weight:500}#tns-webinars .webinars-list #tns-webinars-upcoming-webinars .webinars-card-content .webinar-register-cta svg{height:10px;vertical-align:baseline}#tns-webinars .webinars-list #tns-webinars-upcoming-webinars .webinars-card-content .webinar-register-cta svg path{f
167ill:#ff3287}#tns-webinars .webinars-list #tns-webinars-upcoming-webinars .no-data{padding:0 15px}#tns-webinars .webinars-list #tns-webinars-past-webinars{position:relative;padding-bottom:50px}#tns-webinars .webinars-list #tns-webinars-past-webinars.hide{display:none}#tns-webinars .webinars-list #tns-webinars-past-webinars .row{-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-flow:wrap;-ms-flex-flow:wrap;flex-flow:wrap}#tns-webinars .webinars-list #tns-webinars-past-webinars .webinars-card{position:relative;display:block;width:100%;height:auto;padding-top:15px;padding-bottom:15px}#tns-webinars .webinars-list #tns-webinars-past-webinars .webinars-card:not(:nth-last-child(-n+2)){border-bottom:1px solid #a5a9b0}#tns-webinars .webinars-list #tns-webinars-past-webinars .webinars-card .col-33{padding-right:15px}@media (max-width:499px){#tns-webinars .webinars-list #tns-webinars-past-webinars .webinars-card .col-33{min-width:100%;max-width:100%;padding-right:0}}#tns-webinars .webinars-list #tns-webinars-past-webinars .webinars-card .col-66{padding-left:15px}@media (max-width:499px){#tns-webinars .webinars-list #tns-webinars-past-webinars .webinars-card .col-66{min-width:100%;max-width:100%;padding-left:0}}#tns-webinars .webinars-list #tns-webinars-past-webinars .webinars-card-row{position:relative;-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-flow:wrap;-ms-flex-flow:wrap;flex-flow:wrap;margin-left:auto;margin-right:auto;text-decoration:none}#tns-webinars .webinars-list #tns-webinars-past-webinars .webinars-card-poster{position:relative}#tns-webinars .webinars-list #tns-webinars-past-webinars .webinars-card-poster img{width:100%;height:auto}@media (max-width:499px){#tns-webinars .webinars-list #tns-webinars-past-webinars .webinars-card-poster img{margin-bottom:20px}}#tns-webinars .webinars-list #tns-webinars-past-webinars .webinars-card-content{position:relative;display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex;-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-flow:wrap;-ms-flex-flow:wrap;flex-flow:wrap;width:100%;vertical-align:middle}#tns-webinars .webinars-list #tns-webinars-past-webinars .webinars-card-content .webinar-title{width:100%;-webkit-align-self:flex-end;align-self:flex-end;-ms-flex-item-align:end;color:#3c3c3c;font-size:27px;line-height:1.2;letter-spacing:0;text-decoration:none;margin-bottom:5px}#tns-webinars .webinars-list #tns-webinars-past-webinars .webinars-card-content .webinar-meta{width:100%;line-height:80%;margin-bottom:20px}#tns-webinars .webinars-list #tns-webinars-past-webinars .webinars-card-content .webinar-meta .date,#tns-webinars .webinars-list #tns-webinars-past-webinars .webinars-card-content .webinar-meta .location{display:inline-block;width:100%;color:#3c3c3c;font-size:14px;font-weight:bold;line-height:1.33;text-transform:uppercase}@media (max-width:1023px){#tns-webinars .webinars-list #tns-webinars-past-webinars .webinars-card-content .webinar-meta .date,#tns-webinars .webinars-list #tns-webinars-past-webinars .webinars-card-content .webinar-meta .location{font-size:12px}}#tns-webinars .webinars-list #tns-webinars-past-webinars .webinars-card-content .webinar-meta .location{font-weight:normal}#tns-webinars .webinars-list #tns-webinars-past-webinars .webinars-card-content .webinar-description{font-size:16px;color:#3c3c3c;font-weight:normal;line-height:1.35;letter-spacing:0}#tns-webinars .webinars-list #tns-webinars-past-webinars .webinars-card-content .webinar-description p,#tns-webinars .webinars-list #tns-webinars-past-webinars .webinars-card-content .webinar-description a{font-size:16px;color:#3c3c3c;font-weight:normal;line-height:1.35;letter-spacing:0}#tns-webinars .webinars-list #tns-webinars-past-webinars .webinars-card-content .webinar-description a{color:#ff3287;text-decoration:none}@media (max-width:991.98px){#tns-webinars .webinars-list #tns-webinars-past-webinars .webinars-card-content .webinar-description{font-size:13px}}#tns-webinars .webinars-list #tns-webinars-past-webinars .webinars-card-content .webinar-register-cta{font-size:16px;font-weight:500}@media (max-width:499px){#tns-webinars .webinars-list #tns-webinars-past-webinars .webinars-card-content .webinar-register-cta{margin-bottom:30px}}#tns-webinars .webinars-list #tns-webinars-past-webinars .webinars-card-content .webinar-register-cta svg{height:10px;vertical-align:baseline}#tns-webinars .webinars-list #tns-webinars-past-webinars .webinars-card-content .webinar-register-cta svg path{f
167ill:#ff3287}#tns-webinars .webinars-list #tns-webinars-past-webinars .no-data{padding:0 15px}#tns-webinars .webinars-list #tns-webinars-sidebar{position:sticky;top:0}#tns-webinars .webinars-list #tns-webinars-sidebar .tns-newsletter-shortcode .title{font-size:30px;color:#01aff4}#tns-webinars .webinars-list #tns-webinars-sidebar .tns-newsletter-shortcode,#tns-webinars .webinars-list #tns-webinars-sidebar input[type="email"],#tns-webinars .webinars-list #tns-webinars-sidebar input[type="text"]{border-color:#01aff4}#tns-webinars .webinars-list #tns-webinars-sidebar input[type="submit"],#tns-webinars .webinars-list #tns-webinars-sidebar button,#tns-webinars .webinars-list #tns-webinars-sidebar .tns-button{background:#01aff4}#tns-webinars .webinars-list #tns-webinars-sidebar input[type="submit"]:hover,#tns-webinars .webinars-list #tns-webinars-sidebar button:hover,#tns-webinars .webinars-list #tns-webinars-sidebar .tns-button:hover{background:#ff3287}#tns-webinars .webinars-list #tns-webinars-sidebar .webinars-sales-cta{padding-top:30px}#tns-webinars .webinars-list #tns-webinars-sidebar .webinars-sales-cta a{color:#515151;font-size:15px}#tns-webinars .webinars-list #tns-webinars-sidebar .webinars-sales-cta a:hover{color:#ff3287}#tns-frontpage{position:relative}#tns-frontpage #tns-frontpage-promo{display:relative;margin-bottom:30px}#tns-frontpage #tns-frontpage-page-one{position:relative}#tns-frontpage #tns-frontpage-page-one .content-column{padding-top:30px}@media (max-width:1279.98px){#tns-frontpage #tns-frontpage-page-one .content-column{padding-left:30px;padding-right:30px}}@media (max-width:767.98px){#tns-frontpage #tns-frontpage-page-one .content-column{padding-top:30px}}#tns-frontpage #tns-frontpage-page-one .content-column > .cover-row{-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-flow:wrap;-ms-flex-flow:wrap;flex-flow:wrap;margin-bottom:20px}#tns-frontpage #tns-frontpage-page-one .page-one-left-col{padding-right:20px}@media (max-width:999px){#tns-frontpage #tns-frontpage-page-one .page-one-left-col{min-width:100%;max-width:100%;padding-right:0}}#tns-frontpage #tns-frontpage-page-one .page-one-right-col{padding-left:20px;position:relative}@media (max-width:999px){#tns-frontpage #tns-frontpage-page-one .page-one-right-col{min-width:100%;max-width:100%;padding-left:0;padding-top:30px}}#tns-frontpage #tns-frontpage-page-one .page-one-right-col:before{position:absolute;content:'';left:0;top:0;height:100%;width:1px;background:transparent}@media (max-width:999px){#tns-frontpage #tns-frontpage-page-one .page-one-right-col:before{display:none}}#tns-frontpage #tns-frontpage-page-one #tns-frontpage-page-one-featured{position:relative}#tns-frontpage #tns-frontpage-page-one #tns-frontpage-page-one-featured #tns-frontpage-featured-lead{position:relative;display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex;-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-flow:wrap;-ms-flex-flow:wrap;flex-flow:wrap;-webkit-box-align:center;-moz-box-align:center;-o-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;margin-bottom:20px}#tns-frontpage #tns-frontpage-page-one #tns-frontpage-page-one-featured #tns-frontpage-featured-lead > .content{display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex;-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-flow:wrap;-ms-flex-flow:wrap;flex-flow:wrap}@media (max-width:575.98px){#tns-frontpage #tns-frontpage-page-one #tns-frontpage-page-one-featured #tns-frontpage-featured-lead > .content .blocks{min-width:100%;max-width:100%;margin-bottom:20px}}#tns-frontpage #tns-frontpage-page-one #tns-frontpage-page-one-featured #tns-frontpage-featured-lead #tns-frontpage-featured-lead-content{position:relative}#tns-frontpage #tns-frontpage-page-one #tns-frontpage-page-one-featured #tns-frontpage-featured-lead #tns-frontpage-featured-lead-content .featured-lead-post-block{-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-flow:wrap;-ms-flex-flow:wrap;flex-flow:wrap;text-decoration:none;cursor:pointer}#tns-frontpage #tns-frontpage-page-one #tns-frontpage-page-one-featured #tns-frontpage-featured-lead #t
167ns-frontpage-featured-lead-content .featured-lead-post-block:hover .lead-details-block .post-title,#tns-frontpage #tns-frontpage-page-one #tns-frontpage-page-one-featured #tns-frontpage-featured-lead #tns-frontpage-featured-lead-content .featured-lead-post-block:focus .lead-details-block .post-title{color:#01aff4}@media (max-width:959.98px){#tns-frontpage #tns-frontpage-page-one #tns-frontpage-page-one-featured #tns-frontpage-featured-lead #tns-frontpage-featured-lead-content .featured-lead-post-block .lead-media-block{display:none}}#tns-frontpage #tns-frontpage-page-one #tns-frontpage-page-one-featured #tns-frontpage-featured-lead #tns-frontpage-featured-lead-content .featured-lead-post-block .lead-media-block .lead-media{width:100%}#tns-frontpage #tns-frontpage-page-one #tns-frontpage-page-one-featured #tns-frontpage-featured-lead #tns-frontpage-featured-lead-content .featured-lead-post-block .lead-media-block .lead-media .thumbnail-image{width:100%;height:auto}#tns-frontpage #tns-frontpage-page-one #tns-frontpage-page-one-featured #tns-frontpage-featured-lead #tns-frontpage-featured-lead-content .featured-lead-post-block .lead-details-block{padding-left:20px}@media (max-width:959.98px){#tns-frontpage #tns-frontpage-page-one #tns-frontpage-page-one-featured #tns-frontpage-featured-lead #tns-frontpage-featured-lead-content .featured-lead-post-block .lead-details-block{min-width:100%;max-width:100%;padding-left:0}}#tns-frontpage #tns-frontpage-page-one #tns-frontpage-page-one-featured #tns-frontpage-featured-lead #tns-frontpage-featured-lead-content .featured-lead-post-block .lead-details-block .post-categories{padding-top:0;margin-bottom:7px}#tns-frontpage #tns-frontpage-page-one #tns-frontpage-page-one-featured #tns-frontpage-featured-lead #tns-frontpage-featured-lead-content .featured-lead-post-block .lead-details-block .post-title{display:inline-block;width:100%;color:#3c3c3c;font-size:30px;line-height:110%;margin-top:-5px;margin-bottom:10px;text-decoration:none;-webkit-transition:color 99ms;-moz-transition:color 99ms;-o-transition:color 99ms;-ms-transition:color 99ms;transition:color 99ms}@media (max-width:1199px){#tns-frontpage #tns-frontpage-page-one #tns-frontpage-page-one-featured #tns-frontpage-featured-lead #tns-frontpage-featured-lead-content .featured-lead-post-block .lead-details-block .post-title{font-size:34px;margin-bottom:20px}}@media (max-width:1023px){#tns-frontpage #tns-frontpage-page-one #tns-frontpage-page-one-featured #tns-frontpage-featured-lead #tns-frontpage-featured-lead-content .featured-lead-post-block .lead-details-block .post-title{font-size:28px;margin-bottom:15px}}@media (max-width:767px){#tns-frontpage #tns-frontpage-page-one #tns-frontpage-page-one-featured #tns-frontpage-featured-lead #tns-frontpage-featured-lead-content .featured-lead-post-block .lead-details-block .post-title{font-size:36px;margin-bottom:15px}}#tns-frontpage #tns-frontpage-page-one #tns-frontpage-page-one-featured #tns-frontpage-featured-lead #tns-frontpage-featured-lead-content .featured-lead-post-block .lead-details-block .post-excerpt{color:#3c3c3c;margin-bottom:10px}@media (max-width:1023.98px){#tns-frontpage #tns-frontpage-page-one #tns-frontpage-page-one-featured #tns-frontpage-featured-lead #tns-frontpage-featured-lead-content .featured-lead-post-block .lead-details-block .post-excerpt{font-size:18px}}#tns-frontpage #tns-frontpage-page-one #tns-frontpage-page-one-featured #tns-frontpage-featured-more-featured{position:relative}#tns-frontpage #tns-frontpage-page-one #tns-frontpage-page-one-featured #tns-frontpage-featured-more-featured .more-featured-content{display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex;-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-flow:wrap;-ms-flex-flow:wrap;flex-flow:wrap}#tns-frontpage #tns-frontpage-page-one #tns-frontpage-page-one-featured #tns-frontpage-featured-more-featured #tns-frontpage-featured-more-featured-block{position:relative;display:block;display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex;-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-flow:wrap;-ms-flex-flow:wrap;flex-flow:wrap;gap:20px 40px}#tns-frontpage #tns-frontpage-page-one #tns-frontpage-page-one-featured #tns-frontpage-featured-more-featured #tns-frontpage-featured-more-featured-block .more-featured-row{-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-flow:wrap;-ms-flex-flow:wrap;flex-flow:wrap}#tns-frontpage #tns-frontpage-page-one #tns-frontpage-page-one-featured #tns-frontpage-featured-more-featured #tns-frontpage-featured-more-featured-block .more-featured-row .featured-post-block{position:relative;-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-flow:wrap;-ms-flex-flow:wrap;flex-flow:wrap;-webkit-box-align:start;-moz-box-align:start;-o-box-align:start;-ms-flex-align:start;-webkit-align-items:flex-start;align-items:flex-start;padding-right:20px;margin:20px 0;cursor:pointer}#tns-frontpage #tns-frontpage-page-one #tns-frontpage-page-one-featured #tns-frontpage-featured-more-featured #tns-frontpage-featured-more-featured-block .more-featured-row .featured-post-block a{display:block}@media (max-width:575.98px){#tns-frontpage #tns-frontpage-page-one #tns-frontpage-page-one-featured #tns-frontpage-featured-more-featured #tns-frontpage-featured-more-featured-block .more-featured-row .featured-post-block{min-width:100%;max-width:100%;padding:0}}#tns-frontpage #tns-frontpage-page-one #tns-frontpage-page-one-featured #tns-frontpage-featured-more-featured #tns-frontpage-featured-more-featured-block .more-featured-row .featured-post-block:nth-child(even){padding-right:0;padding-left:20px}@media (max-width:575.98px){#tns-frontpage #tns-frontpage-page-one #tns-frontpage-page-one-featured #tns-frontpage-featured-more-featured #tns-frontpage-featured-more-featured-block .more-featured-row .featured-post-block:nth-child(even){padding-left:0}}#tns-frontpage #tns-frontpage-page-one #tns-frontpage-page-one-featured #tns-frontpage-featured-more-featured #tns-frontpage-featured-more-featured-block .more-featured-row .featured-post-block:nth-child(even):before{position:absolute;content:'';height:100%;width:1px;background:#c2c2c2;top:0;left:0}@media (max-width:575.98px){#tns-frontpage #tns-frontpage-page-one #tns-frontpage-page-one-featured #tns-frontpage-featured-more-featured #tns-frontpage-featured-more-featured-block .more-featured-row .featured-post-block:nth-child(even):before{display:none}}#tns-frontpage #tns-frontpage-page-one #tns-frontpage-page-one-featured #tns-frontpage-featured-more-featured #tns-frontpage-featured-more-featured-block .more-featured-row .featured-post-block::after{position:absolute;content:'';height:1px;width:100%;background:#c2c2c2;top:-20px;left:0}#tns-frontpage #tns-frontpage-page-one #tns-frontpage-page-one-featured #tns-frontpage-featured-more-featured #tns-frontpage-featured-more-featured-block .more-featured-row .featured-post-block:nth-child(even)::after{left:-40px;width:calc(100% + 40px)}@media (max-width:575.98px){#tns-frontpage #tns-frontpage-page-one #tns-frontpage-page-one-featured #tns-frontpage-featured-more-featured #tns-frontpage-featured-more-featured-block .more-featured-row .featured-post-block:nth-child(even)::after{left:0;width:100%}}#tns-frontpage #tns-frontpage-page-one #tns-frontpage-page-one-featured #tns-frontpage-featured-more-featured #tns-frontpage-featured-more-featured-block .more-featured-row .featured-post-block .content{text-decoration:none}#tns-frontpage #tns-frontpage-page-one #tns-frontpage-page-one-featured #tns-frontpage-featured-more-featured #tns-frontpage-featured-more-featured-block .more-featured-row .featured-post-block .content:hover .post-title{color:#01aff4;-webkit-transition:color 99ms;-moz-transition:color 99ms;-o-transition:color 99ms;-ms-transition:color 99ms;transition:color 99ms}@media (max-width:1199.98){#tns-frontpage #tns-frontpage-page-one #tns-frontpage-page-one-featured #tns-frontpage-featured-more-featured #tns-frontpage-featured-more-featured-block .more-featured-row .featured-post-block .content:hover .post-title{color:#3c3c3c}}#tns-frontpage #tns-frontpage-page-one #tns-frontpage-page-one-featured #tns-frontpage-featured-more-featured #tns-frontpage-featured-more-featured-block .more-featured-row .featured-post-block .block-media{display:inline-block;width:100%;aspect-ratio:11/5;background:#a5a9b0;margin-bottom:10px}#tns-frontpage #tns-frontpage-page-one #tns-frontpage-page-one-featured #tns-frontpage-featured-more-featured #tns-frontpage-featured-more-featured-block .more-featured-row .featured-post-block .block-media .thumbnail-image{object-fit:cover;object-position:top;max-width:100%;aspect-ratio:11/5;display:block;width:100%}#tns-frontpage #tns-frontpage-page-one #tns-frontpage-page-one-featured #tns-frontpage-featured-more-featured #tns-frontpage-featured-more-featured-block .more-featured-row .featured-post-block .block-content .post-title{display:inline-block;width:100%;color:#3c3c3c;font-size:20px;line-height:1.2;margin-bottom:7px;text-decoration:none}#tns-frontpage #tns-frontpage-page-one #tns-frontpage-page-one-featured #tns-frontpage-featured-more-featured #tns-frontpage-featured-more-featured-block .more-featured-row .featured-post-block.ad-container{min-height:250px}#tns-frontpage #tns-frontpage-page-one #tns-frontpage-page-one-social{position:relative;margin-bottom:30px}#tns-frontpage #tns-frontpage-page-one #tns-frontpage-page-one-social .copy{font-size:15px;margin-bottom:12px}#tns-frontpage #tns-frontpage-page-one #tns-frontpage-page-one-latest{position:relative}#tns-frontpage #tns-frontpage-page-one #tns-frontpage-page-one-latest #tns-frontpage-page-one-latest-header{position:relative}#tns-frontpage #tns-frontpage-page-one #tns-frontpage-page-one-latest #tns-frontpage-page-one-latest-content{position:relative}#tns-frontpage #tns-frontpage-page-one #tns-frontpage-page-one-latest #tns-frontpage-page-one-latest-content .latest-posts-row{-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-flow:wrap;-ms-flex-flow:wrap;flex-flow:wrap}@media (max-width:999px){#tns-frontpage #tns-frontpage-page-one #tns-frontpage-page-one-latest #tns-frontpage-page-one-latest-content .latest-posts-row{-webkit-box-pack:justify;-moz-box-pack:justify;
167-o-box-pack:justify;-ms-flex-pack:justify;-webkit-justify-content:space-between;justify-content:space-between}}@media (max-width:639.98px){#tns-frontpage #tns-frontpage-page-one #tns-frontpage-page-one-latest #tns-frontpage-page-one-latest-content .latest-posts-row{-webkit-box-pack:start;-moz-box-pack:start;-o-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}}#tns-frontpage #tns-frontpage-page-one #tns-frontpage-page-one-latest #tns-frontpage-page-one-latest-content .latest-posts-row .latest-post-link-wrap{display:inline-block;padding:0;margin:0;width:100%;height:auto;padding-top:7px;padding-bottom:12px;border-top:1px solid #c2c2c2}#tns-frontpage #tns-frontpage-page-one #tns-frontpage-page-one-latest #tns-frontpage-page-one-latest-content .latest-posts-row .latest-post-link-wrap:first-child{padding-top:0;border-top:1px solid transparent}#tns-frontpage #tns-frontpage-page-one #tns-frontpage-page-one-latest #tns-frontpage-page-one-latest-content .latest-posts-row .latest-post-link-wrap .latest-post-block{display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex;-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-flow:wrap;-ms-flex-flow:wrap;flex-flow:wrap;-webkit-box-align:start;-moz-box-align:start;-o-box-align:start;-ms-flex-align:start;-webkit-align-items:flex-start;align-items:flex-start;cursor:pointer}@media (max-width:999px){#tns-frontpage #tns-frontpage-page-one #tns-frontpage-page-one-latest #tns-frontpage-page-one-latest-content .latest-posts-row .latest-post-link-wrap .latest-post-block{min-width:calc(50% - 10px);max-width:calc(50% - 10px)}#tns-frontpage #tns-frontpage-page-one #tns-frontpage-page-one-latest #tns-frontpage-page-one-latest-content .latest-posts-row .latest-post-link-wrap .latest-post-block:nth-child(2){padding-top:0;border-top:1px solid transparent}}@media (max-width:639.98px){#tns-frontpage #tns-frontpage-page-one #tns-frontpage-page-one-latest #tns-frontpage-page-one-latest-content .latest-posts-row .latest-post-link-wrap .latest-post-block{min-width:100%;max-width:100%}#tns-frontpage #tns-frontpage-page-one #tns-frontpage-page-one-latest #tns-frontpage-page-one-latest-content .latest-posts-row .latest-post-link-wrap .latest-post-block:nth-child(2){padding-top:12px;border-top:1px solid #c2c2c2}}#tns-frontpage #tns-frontpage-page-one #tns-frontpage-page-one-latest #tns-frontpage-page-one-latest-content .latest-posts-row .latest-post-link-wrap .latest-post-block > .content{display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex;-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-flow:wrap;-ms-flex-flow:wrap;flex-flow:wrap;text-decoration:none}#tns-frontpage #tns-frontpage-page-one #tns-frontpage-page-one-latest #tns-frontpage-page-one-latest-content .latest-posts-row .latest-post-link-wrap .latest-post-block > .content:hover .post-title{color:#01aff4;-webkit-transition:color 99ms;-moz-transition:color 99ms;-o-transition:color 99ms;-ms-transition:color 99ms;transition:color 99ms}#tns-frontpage #tns-frontpage-page-one #tns-frontpage-page-one-latest #tns-frontpage-page-one-latest-content .latest-posts-row .latest-post-link-wrap .latest-post-media{width:76px;aspect-ratio:1/1;display:inline-block;vertical-align:middle;padding-top:4px}#tns-frontpage #tns-frontpage-page-one #tns-frontpage-page-one-latest #tns-frontpage-page-one-latest-content .latest-posts-row .latest-post-link-wrap .latest-post-media .thumbnail-image{width:100%;aspect-ratio:1/1;object-fit:cover;object-position:top;display:inline-block;vertical-align:middle}#tns-frontpage #tns-frontpage-page-one #tns-frontpage-page-one-latest #tns-frontpage-page-one-latest-content .latest-posts-row .latest-post-link-wrap .latest-post-content{display:inline-block;width:calc(100% - 76px);padding-left:12px;vertical-align:middle}#tns-frontpage #tns-frontpage-page-one #tns-frontpage-page-one-latest #tns-frontpage-page-one-latest-content .latest-posts-row .latest-post-link-wrap.ad-container{min-height:100px}#tns-frontpage #tns-frontpage-page-one #tns-frontpage-page-one-trending{position:relative;min-height:300px}#tns-frontpage #tns-frontpage-page-one #tns-frontpage-page-one-trending ol .trending-story-link{font-size:17px}#tns-frontpage #tns-frontpage-page-one #tns-frontpage-sponsors{position:relative;padding-top:50px;padding-bottom:50px;background:#f6f8fa}@media (max-width:539px){#tns-frontpage #tns-frontpage-page-one #tns-frontpage-sponsors{padding-top:30px;padding-bottom:30px}}#tns-frontpage #tns-frontpage-page-one #tns-frontpage-sponsors #tns-frontpage-sponsors-content{position:relative;max-width:900px;margin:0 auto 0 auto;text-align:center}#tns-frontpage #tns-frontpage-page-one #tns-frontpage-sponsors #tns-frontpage-sponsors-content .sponsors-title{display:inline-block;width:100%;color:#8da6c0;font-size:16px;font-weight:600;line-height:1.35;text-align:center;margin-bottom:30px}@media (max-width:1023px){#tns-frontpage #tns-frontpage-page-one #tns-frontpage-sponsors #tns-frontpage-sponsors-content .sponsors-title{font-size:16px}}@media (max-width:599px){#tns-frontpage #tns-frontpage-page-one #tns-frontpage-sponsors #tns-frontpage-sponsors-content .sponsors-title{font-size:15px}}@media (max-width:499px){#tns-frontpage #tns-frontpage-page-one #tns-frontpage-sponsors #tns-frontpage-sponsors-content .sponsors-title{font-size:14px;padding-left:15%;padding-right:15%}}#tns-frontpage #tns-frontpage-page-one #tns-frontpage-sponsors #tns-frontpage-sponsors-logos{position:relative;max-width:900px;padding-left:30px;padding-right:30px;margin:0 auto 0 auto}#tns-frontpage #tns-frontpage-page-one #tns-frontpage-sponsors #tns-frontpage-sponsors-logos .sponsors-logos-list{display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex;-webkit-box-pack:justify;-moz-box-pack:justify;
167-o-box-pack:justify;-ms-flex-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;margin-bottom:30px}#tns-frontpage #tns-frontpage-page-one #tns-frontpage-sponsors #tns-frontpage-sponsors-logos .sponsors-logos-list .sponsor-logo{display:-webkit-inline-box;display:-moz-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-box;display:inline-flex;-webkit-box-align:center;-moz-box-align:center;-o-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;max-width:calc(100% / 5 - 40px);width:100%;margin:0}@media (max-width:639px){#tns-frontpage #tns-frontpage-page-one #tns-frontpage-sponsors #tns-frontpage-sponsors-logos .sponsors-logos-list .sponsor-logo{max-width:calc(100% / 4 - 30px)}}@media (max-width:539px){#tns-frontpage #tns-frontpage-page-one #tns-frontpage-sponsors #tns-frontpage-sponsors-logos .sponsors-logos-list .sponsor-logo{max-width:calc(100% / 3 - 20px)}}@media (max-width:639px){#tns-frontpage #tns-frontpage-page-one #tns-frontpage-sponsors #tns-frontpage-sponsors-logos .sponsors-logos-list .sponsor-logo:nth-child(5){display:none}}@media (max-width:539px){#tns-frontpage #tns-frontpage-page-one #tns-frontpage-sponsors #tns-frontpage-sponsors-logos .sponsors-logos-list .sponsor-logo:nth-child(4){display:none}}#tns-frontpage #tns-frontpage-page-one #tns-frontpage-sponsors #tns-frontpage-sponsors-cta{position:relative}#tns-frontpage #tns-frontpage-page-one #tns-frontpage-sponsors #tns-frontpage-sponsors-cta .cta{width:100%;text-align:center}#tns-frontpage #tns-frontpage-page-one #tns-frontpage-sponsors #tns-frontpage-sponsors-cta .cta .cta-link{color:#b3c4d5;font-size:14px;font-weight:500;text-decoration:none}#tns-frontpage #tns-frontpage-page-one #tns-frontpage-sponsors #tns-frontpage-sponsors-cta .cta .cta-link svg{height:10px;width:auto;fill:#b3c4d5}#tns-frontpage #tns-frontpage-page-one #tns-frontpage-sponsors #tns-frontpage-sponsors-cta .cta .cta-link:hover{color:#ff3287}#tns-frontpage #tns-frontpage-page-one #tns-frontpage-sponsors #tns-frontpage-sponsors-cta .cta .cta-link:hover svg{fill:#ff3287}#tns-frontpage #tns-frontpage-trending-stories{position:relative;background:#f6f8fa}#tns-frontpage #tns-frontpage-streaming{position:relative;min-height:350px}#tns-frontpage #tns-frontpage-streaming .content-column{min-height:unset}#tns-frontpage #tns-frontpage-sponsors{position:relative;padding-top:50px;padding-bottom:50px;background:#f6f8fa}@media (max-width:539px){#tns-frontpage #tns-frontpage-sponsors{padding-top:30px;padding-bottom:30px}}#tns-frontpage #tns-frontpage-sponsors #tns-frontpage-sponsors-content{position:relative;max-width:900px;margin:0 auto 0 auto;text-align:center}#tns-frontpage #tns-frontpage-sponsors #tns-frontpage-sponsors-content .sponsors-title{display:inline-block;width:100%;color:#8da6c0;font-size:16px;font-weight:600;line-height:1.35;text-align:center;margin-bottom:30px}@media (max-width:1023px){#tns-frontpage #tns-frontpage-sponsors #tns-frontpage-sponsors-content .sponsors-title{font-size:16px}}@media (max-width:599px){#tns-frontpage #tns-frontpage-sponsors #tns-frontpage-sponsors-content .sponsors-title{font-size:15px}}@media (max-width:499px){#tns-frontpage #tns-frontpage-sponsors #tns-frontpage-sponsors-content .sponsors-title{font-size:14px;padding-left:15%;padding-right:15%}}#tns-frontpage #tns-frontpage-sponsors #tns-frontpage-sponsors-logos{position:relative;max-width:900px;padding-left:30px;padding-right:30px;margin:0 auto 0 auto}#tns-frontpage #tns-frontpage-sponsors #tns-frontpage-sponsors-logos .sponsors-logos-list{display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex;-webkit-box-pack:justify;-moz-box-pack:justify;-o-box-pack:justify;-ms-flex-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;margin-bottom:30px}#tns-frontpage #tns-frontpage-sponsors #tns-frontpage-sponsors-logos .sponsors-logos-list .sponsor-logo{display:-webkit-inline-box;display:-moz-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-box;display:inline-flex;-webkit-box-align:center;-moz-box-align:center;-o-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-moz-box-pack:center;
167-o-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;max-width:calc(100% / 5 - 40px);width:100%;margin:0}@media (max-width:639px){#tns-frontpage #tns-frontpage-sponsors #tns-frontpage-sponsors-logos .sponsors-logos-list .sponsor-logo{max-width:calc(100% / 4 - 30px)}}@media (max-width:539px){#tns-frontpage #tns-frontpage-sponsors #tns-frontpage-sponsors-logos .sponsors-logos-list .sponsor-logo{max-width:calc(100% / 3 - 20px)}}@media (max-width:639px){#tns-frontpage #tns-frontpage-sponsors #tns-frontpage-sponsors-logos .sponsors-logos-list .sponsor-logo:nth-child(5){display:none}}@media (max-width:539px){#tns-frontpage #tns-frontpage-sponsors #tns-frontpage-sponsors-logos .sponsors-logos-list .sponsor-logo:nth-child(4){display:none}}#tns-frontpage #tns-frontpage-sponsors #tns-frontpage-sponsors-cta{position:relative}#tns-frontpage #tns-frontpage-sponsors #tns-frontpage-sponsors-cta .cta{width:100%;text-align:center}#tns-frontpage #tns-frontpage-sponsors #tns-frontpage-sponsors-cta .cta .cta-link{color:#b3c4d5;font-size:14px;font-weight:500;text-decoration:none}#tns-frontpage #tns-frontpage-sponsors #tns-frontpage-sponsors-cta .cta .cta-link svg{height:10px;width:auto;fill:#b3c4d5}#tns-frontpage #tns-frontpage-sponsors #tns-frontpage-sponsors-cta .cta .cta-link:hover{color:#ff3287}#tns-frontpage #tns-frontpage-sponsors #tns-frontpage-sponsors-cta .cta .cta-link:hover svg{fill:#ff3287}#tns-frontpage #tns-frontpage-page-two{position:relative;padding-top:69px;padding-bottom:30px}@media (max-width:1279.98px){#tns-frontpage #tns-frontpage-page-two{padding-top:50px;padding-bottom:60px}}@media (max-width:767.98px){#tns-frontpage #tns-frontpage-page-two{padding-top:30px;padding-bottom:40px}}@media (max-width:1279.98px){#tns-frontpage #tns-frontpage-page-two .content-column{padding-left:30px;padding-right:30px}}#tns-frontpage #tns-frontpage-page-two .cover-row{-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-flow:wrap;-ms-flex-flow:wrap;flex-flow:wrap}#tns-frontpage #tns-frontpage-page-two .page-two-left-col{padding-right:20px}@media (max-width:767.98px){#tns-frontpage #tns-frontpage-page-two .page-two-left-col{min-width:100%;max-width:100%;padding-right:0}}#tns-frontpage #tns-frontpage-page-two .page-two-right-col{padding-left:20px;position:relative}@media (max-width:767.98px){#tns-frontpage #tns-frontpage-page-two .page-two-right-col{min-width:100%;max-width:100%;padding-left:0;padding-top:30px}}#tns-frontpage #tns-frontpage-page-two .page-two-right-col:before{position:absolute;content:'';left:0;top:0;height:100%;width:1px;background:#3c3c3c;background:transparent}@media (max-width:767.98px){#tns-frontpage #tns-frontpage-page-two .page-two-right-col:before{display:none}}#tns-frontpage #tns-frontpage-page-two #tns-frontpage-page-two-key-concepts{position:relative}#tns-frontpage #tns-frontpage-page-two #tns-frontpage-page-two-key-concepts #tns-frontpage-page-two-key-concepts-heading{position:relative}#tns-frontpage #tns-frontpage-page-two #tns-frontpage-page-two-key-concepts #tns-frontpage-page-two-key-concepts-heading .section-heading{margin-bottom:3px}#tns-frontpage #tns-frontpage-page-two #tns-frontpage-page-two-key-concepts #tns-frontpage-page-two-key-concepts-content{position:relative;display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex;-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-flow:wrap;-ms-flex-flow:wrap;flex-flow:wrap;gap:0 40px}#tns-frontpage #tns-frontpage-page-two #tns-frontpage-page-two-key-concepts #tns-frontpage-page-two-key-concepts-content .key-concepts-row{-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-flow:wrap;-ms-flex-flow:wrap;flex-flow:wrap}#tns-frontpage #tns-frontpage-page-two #tns-frontpage-page-two-key-concepts #tns-frontpage-page-two-key-concepts-content .key-concept{-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-flow:wrap;-ms-flex-flow:wrap;flex-flow:wrap;position:relative;-webkit-box-align:start;-moz-box-align:start;-o-box-align:start;-ms-flex-align:start;-webkit-align-items:flex-start;align-items:flex-start;padding-top:17px;padding-bottom:16px;padding-right:20px;margin-bottom:10px}#tns-frontpage #tns-frontpage-page-two #tns-frontpage-page-two-key-concepts #tns-frontpage-page-two-key-concepts-content .key-concept .title{font-size:12px;font-weight:900;margin-bottom:10px;text-transform:uppercase}#tns-frontpage #tns-frontpage-page-two #tns-frontpage-page-two-key-concepts #tns-frontpage-page-two-key-concepts-content .key-concept .title:hover{color:#ff3287}@media (max-width:767px){#tns-frontpage #tns-frontpage-page-two #tns-frontpage-page-two-key-concepts #tns-frontpage-page-two-key-concepts-content .key-concept .title{font-weight:700}}#tns-frontpage #tns-frontpage-page-two #tns-frontpage-page-two-key-concepts #tns-frontpage-page-two-key-concepts-content .key-concept a{display:block;color:#3c3c3c;font-size:15px;-webkit-transition:color 99ms;-moz-transition:color 99ms;-o-transition:color 99ms;-ms-transition:color 99ms;transition:color 99ms;margin-bottom:14px}@media (max-width:767px){#tns-frontpage #tns-frontpage-page-two #tns-frontpage-page-two-key-concepts #tns-frontpage-page-two-key-concepts-content .key-concept a{font-size:17px;margin-bottom:18px}}#tns-frontpage #tns-frontpage-page-two #tns-frontpage-page-two-key-concepts #tns-frontpage-page-two-key-concepts-content .key-concept a:hover{color:#01aff4}@media (max-width:999px){#tns-frontpage #tns-frontpage-page-two #tns-frontpage-page-two-key-concepts #tns-frontpage-page-two-key-concepts-content .key-concept{min-width:100%;max-width:100%;padding-right:0;margin-bottom:0}}#tns-frontpage #tns-frontpage-page-two #tns-frontpage-page-two-key-concepts #tns-frontpage-page-two-key-concepts-content .key-concept:nth-child(even){padding-right:0;padding-left:20px}@media (max-width:999px){#tns-frontpage #tns-frontpage-page-two #tns-frontpage-page-two-key-concepts #tns-frontpage-page-two-key-concepts-content .key-concept:nth-child(even){padding-left:0}}#tns-frontpage #tns-frontpage-page-two #tns-frontpage-page-two-key-concepts #tns-frontpage-page-two-key-concepts-content .key-concept:after{position:absolute;content:'';height:1px;width:calc(100% - 20px);background:#c2c2c2;bottom:0;left:0}@media (max-width:1023.98px){#tns-frontpage #tns-frontpage-page-two #tns-frontpage-page-two-key-concepts #tns-frontpage-page-two-key-concepts-content .key-concept:after{bottom:5px}}@media (max-width:575.98px){#tns-frontpage #tns-frontpage-page-two #tns-frontpage-page-two-key-concepts #tns-frontpage-page-two-key-concepts-content .key-concept:after{width:100%}}#tns-frontpage #tns-frontpage-page-two #tns-frontpage-page-two-key-concepts #tns-frontpage-page-two-key-concepts-content .key-concept:nth-child(even)::after{width:calc(100% - 20px);left:20px}@media (max-width:999px){#tns-frontpage #tns-frontpage-page-two #tns-frontpage-page-two-key-concepts #tns-frontpage-page-two-key-concepts-content .key-concept:nth-child(even)::after{width:100%;left:0}}#tns-frontpage #tns-frontpage-page-two #tns-frontpage-page-two-key-concepts #tns-frontpage-page-two-key-concepts-content .key-concept:nth-last-child(-n+2):after{opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0)}@media (max-width:999px){#tns-frontpage #tns-frontpage-page-two #tns-frontpage-page-two-key-concepts #tns-frontpage-page-two-key-concepts-content .key-concept:nth-last-child(-n+3):after{opacity:1;-ms-filter:none;filter:none}}#tns-frontpage #tns-frontpage-page-two #tns-frontpage-page-two-key-concepts #tns-frontpage-page-two-key-concepts-content .key-concept:last-child:after{opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0)}#tns-frontpage #tns-frontpage-page-two #tns-frontpage-page-two-more-stories{position:relative}#tns-frontpage #tns-frontpage-page-two #tns-frontpage-page-two-more-stories #tns-frontpage-page-two-more-stories-header{position:relative}#tns-frontpage #tns-frontpage-page-two #tns-frontpage-page-two-more-stories #tns-frontpage-page-two-more-stories-content{position:relative}#tns-frontpage #tns-frontpage-page-two #tns-frontpage-page-two-more-stories #tns-frontpage-page-two-more-stories-content > .more-stories-row{-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-flow:wrap;-ms-flex-flow:wrap;flex-flow:wrap}@media (max-width:999px){#tns-frontpage #tns-frontpage-page-two #tns-frontpage-page-two-more-stories #tns-frontpage-page-two-more-stories-content > .more-stories-row{-webkit-box-pack:justify;-moz-box-pack:justify;
167-o-box-pack:justify;-ms-flex-pack:justify;-webkit-justify-content:space-between;justify-content:space-between}}@media (max-width:639.98px){#tns-frontpage #tns-frontpage-page-two #tns-frontpage-page-two-more-stories #tns-frontpage-page-two-more-stories-content > .more-stories-row{-webkit-box-pack:start;-moz-box-pack:start;-o-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}}#tns-frontpage #tns-frontpage-page-two #tns-frontpage-page-two-more-stories #tns-frontpage-page-two-more-stories-content .more-stories-link-wrap{display:inline-block;padding:0;margin:0;width:100%;height:auto;padding-top:7px;padding-bottom:12px;border-top:1px solid #c2c2c2}#tns-frontpage #tns-frontpage-page-two #tns-frontpage-page-two-more-stories #tns-frontpage-page-two-more-stories-content .more-stories-link-wrap:first-child{padding-top:0;border-top:1px solid transparent}#tns-frontpage #tns-frontpage-page-two #tns-frontpage-page-two-more-stories #tns-frontpage-page-two-more-stories-content .more-stories-link-wrap .more-stories-post-block{display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex;-webkit-box-align:start;-moz-box-align:start;-o-box-align:start;-ms-flex-align:start;-webkit-align-items:flex-start;align-items:flex-start;-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-flow:wrap;-ms-flex-flow:wrap;flex-flow:wrap;cursor:pointer}@media (max-width:767px){#tns-frontpage #tns-frontpage-page-two #tns-frontpage-page-two-more-stories #tns-frontpage-page-two-more-stories-content .more-stories-link-wrap .more-stories-post-block{max-width:calc(50% - 10px);min-width:calc(50% - 10px)}#tns-frontpage #tns-frontpage-page-two #tns-frontpage-page-two-more-stories #tns-frontpage-page-two-more-stories-content .more-stories-link-wrap .more-stories-post-block:nth-child(2){padding-top:0;border-top:1px solid transparent}}@media (max-width:639.98px){#tns-frontpage #tns-frontpage-page-two #tns-frontpage-page-two-more-stories #tns-frontpage-page-two-more-stories-content .more-stories-link-wrap .more-stories-post-block{max-width:100%;min-width:100%}#tns-frontpage #tns-frontpage-page-two #tns-frontpage-page-two-more-stories #tns-frontpage-page-two-more-stories-content .more-stories-link-wrap .more-stories-post-block:nth-child(2){padding-top:12px;border-top:1px solid #c2c2c2}}#tns-frontpage #tns-frontpage-page-two #tns-frontpage-page-two-more-stories #tns-frontpage-page-two-more-stories-content .more-stories-link-wrap .more-stories-post-block > .content{display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex;-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-flow:wrap;-ms-flex-flow:wrap;flex-flow:wrap;text-decoration:none}#tns-frontpage #tns-frontpage-page-two #tns-frontpage-page-two-more-stories #tns-frontpage-page-two-more-stories-content .more-stories-link-wrap .more-stories-post-block > .content:hover .post-title{color:#01aff4;-webkit-transition:color 99ms;-moz-transition:color 99ms;-o-transition:color 99ms;-ms-transition:color 99ms;transition:color 99ms}#tns-frontpage #tns-frontpage-page-two #tns-frontpage-page-two-more-stories #tns-frontpage-page-two-more-stories-content .more-stories-link-wrap .more-stories-post-media{width:76px;aspect-ratio:1/1;display:inline-block;vertical-align:middle;padding-top:4px}#tns-frontpage #tns-frontpage-page-two #tns-frontpage-page-two-more-stories #tns-frontpage-page-two-more-stories-content .more-stories-link-wrap .more-stories-post-media .thumbnail-image{width:100%;aspect-ratio:1/1;object-fit:cover;object-position:top;display:inline-block;vertical-align:middle}#tns-frontpage #tns-frontpage-page-two #tns-frontpage-page-two-more-stories #tns-frontpage-page-two-more-stories-content .more-stories-link-wrap .more-stories-post-content{display:inline-block;width:calc(100% - 76px);padding-left:12px;vertical-align:middle}#tns-frontpage #tns-frontpage-page-two #tns-frontpage-page-two-more-stories #tns-frontpage-page-two-more-stories-content .more-stories-link-wrap.ad-container{min-height:100px}#tns-frontpage #tns-frontpage-pagination{position:relative;padding:30px;text-align:center}#tns-frontpage #tns-frontpage-events{position:relative;min-height:350px}#tns-frontpage #tns-frontpage-newsletter{position:relative}#tns-frontpage #tns-frontpage-newsletter .content-column{min-height:unset}#tns-frontpage #tns-frontpage-ebooks{position:relative;margin-bottom:25px}#tns-frontpage #tns-frontpage-ebooks .content-column{min-height:unset}#tns-frontpage #tns-frontpage-disclosure{position:relative;padding-top:60px;padding-bottom:60px}@media (max-width:1023.98px){#tns-frontpage #tns-frontpage-disclosure{padding-top:50px;padding-bottom:50px}}@media (max-width:767.98px){#tns-frontpage #tns-frontpage-disclosure{padding-top:30px;padding-bottom:30px}}#tns-frontpage #tns-frontpage-disclosure .content{max-width:800px;margin-left:auto;margin-right:auto}@media (max-width:991.98px){#tns-frontpage #tns-frontpage-disclosure .content{padding-left:30px;padding-right:30px}}#tns-frontpage #tns-frontpage-disclosure .content .disclosure{color:#515151;font-size:12px;font-style:italic;text-align:left;line-height:133%;margin-bottom:20px}#tns-frontpage #tns-frontpage-archive{position:relative;margin-top:50px}@media (max-width:767px){#tns-frontpage #tns-frontpage-archive{margin-top:30px}}#tns-frontpage #tns-frontpage-archive .archive-stories .archive-stories-row-wrap > .row:last-child:after{display:none}#tns-frontpage #tns-frontpage-archive .archive-stories .archive-stories-row{position:relative;-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;margin:0 -15px;padding-bottom:40px}@media (max-width:1199.98px){#tns-frontpage #tns-frontpage-archive .archive-stories .archive-stories-row .col-25{min-width:33.333%;max-width:33.333%}}@media (max-width:1023.98px){#tns-frontpage #tns-frontpage-archive .archive-stories .archive-stories-row .col-25{min-width:50%;max-width:50%}}@media (max-width:767.98px){#tns-frontpage #tns-frontpage-archive .archive-stories .archive-stories-row{-webkit-box-pack:justify;-moz-box-pack:justify;
167-o-box-pack:justify;-ms-flex-pack:justify;-webkit-justify-content:space-between;justify-content:space-between}#tns-frontpage #tns-frontpage-archive .archive-stories .archive-stories-row .col-25{min-width:100%;max-width:100%}}@media (max-width:639.98px){#tns-frontpage #tns-frontpage-archive .archive-stories .archive-stories-row{-webkit-box-pack:start;-moz-box-pack:start;-o-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}}#tns-frontpage #tns-frontpage-archive .archive-stories .archive-stories-row .col-25{padding:0 15px}#tns-frontpage #tns-frontpage-archive .archive-stories .archive-stories-row .col-25:nth-child(4n+4){border-right:none}#tns-frontpage #tns-frontpage-archive .archive-stories .archive-stories-row .col-25 .archive-story-card{margin-bottom:30px;cursor:pointer}#tns-frontpage #tns-frontpage-archive .archive-stories .archive-stories-row .col-25 .archive-story-card figure{object-position:top}#tns-frontpage #tns-frontpage-archive .archive-stories .archive-stories-row .col-25 .archive-story-card figure img{display:block;margin-bottom:12px;width:100%;aspect-ratio:1.86/1;object-fit:cover}#tns-frontpage #tns-frontpage-archive .archive-stories .archive-stories-row .col-25 .archive-story-card:hover .post-title{color:#01aff4}@media (max-width:767.98px){#tns-frontpage #tns-frontpage-archive .archive-stories .archive-stories-row .col-25 .archive-story-card{border-bottom:1px solid #c2c2c2;margin-bottom:0;padding:7px 0 12px}#tns-frontpage #tns-frontpage-archive .archive-stories .archive-stories-row .col-25 .archive-story-card .latest-post-media{width:76px;height:76px;aspect-ratio:1/1;display:inline-block;vertical-align:middle;padding-top:4px}#tns-frontpage #tns-frontpage-archive .archive-stories .archive-stories-row .col-25 .archive-story-card .latest-post-media img{width:100%;aspect-ratio:1/1;object-fit:cover;object-position:top;display:inline-block;vertical-align:middle}#tns-frontpage #tns-frontpage-archive .archive-stories .archive-stories-row .col-25 .archive-story-card .latest-post-content{display:inline-block;width:calc(100% - 81px);padding-left:12px;vertical-align:top}#tns-frontpage #tns-frontpage-archive .archive-stories .archive-stories-row .col-25:last-child .story-card{border:none}}#tns-frontpage #tns-frontpage-archive-pagination{position:relative;padding:30px;text-align:center}.legal-page-content{max-width:830px;padding-top:50px;padding-bottom:50px}@media (max-width:767px){.legal-page-content{padding-top:30px;padding-bottom:30px}}.legal-page-content h1{font-size:36px;font-weight:normal;line-height:1.33;color:#3c3c3c}@media (max-width:767.98px){.legal-page-content h1{font-size:28px}}.legal-page-content .description{position:relative}.legal-page-content .description h2,.legal-page-content .description h3,.legal-page-content .description h4,.legal-page-content .description h5,.legal-page-content .description h6{line-height:1.3;font-weight:normal;color:#3c3c3c}.legal-page-content .description p,.legal-page-content .description li{color:#3c3c3c;font-weight:normal;line-height:1.4;font-size:16px}@media (max-width:767.98px){.legal-page-content .description p,.legal-page-content .description li{font-size:14px}}@media (max-width:830px){.legal-page-content .description table,.legal-page-content .description thead,.legal-page-content .description tbody,.legal-page-content .description th,.legal-page-content .description td,.legal-page-content .description tr{display:block}}@media (max-width:830px){.legal-page-content .description thead tr{position:absolute !important;top:-9999px !important;left:-9999px !important;z-index:-9999 !important}}@media (max-width:830px){.legal-page-content .description td{border:none !important;border-bottom:1px solid #d7d7d7 !important;width:100% !important}}@media (max-width:830px){.legal-page-content .description td:before{content:attr(data-label);font-weight:bold;height:100%;width:40%;padding-right:10px}}#tns-newsletter{position:relative;padding-top:30px}@media (max-width:1279.98px){#tns-newsletter{padding-top:30px}}@media (max-width:767.98px){#tns-newsletter{padding-top:30px}}
167@media (min-width:1200px) and (max-width:1260px){#tns-newsletter .content-column{padding:0 30px}}#tns-newsletter #tns-newsletter-promo{position:relative;margin-bottom:50px}#tns-newsletter #tns-newstack-update{position:relative}#tns-newsletter #tns-newstack-update .title{color:#3c3c3c;font-size:18px;font-weight:600;margin-bottom:30px}#tns-newsletter #tns-newstack-update .newstack-update{display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex;-webkit-box-align:start;-moz-box-align:start;-o-box-align:start;-ms-flex-align:start;-webkit-align-items:flex-start;align-items:flex-start;-webkit-box-pack:justify;-moz-box-pack:justify;-o-box-pack:justify;-ms-flex-pack:justify;-webkit-justify-content:space-between;justify-content:space-between}@media (max-width:767.98px){#tns-newsletter #tns-newstack-update .newstack-update{-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}}#tns-newsletter #tns-newstack-update .newstack-left{width:100%;max-width:500px}@media (max-width:767.98px){#tns-newsletter #tns-newstack-update .newstack-left{max-width:100%;padding-bottom:30px}}#tns-newsletter #tns-newstack-update .newstack-left .left-title{color:#3c3c3c;font-size:42px;font-weight:bold;line-height:1.2}@media (max-width:767.98px){#tns-newsletter #tns-newstack-update .newstack-left .left-title{font-size:30px}}@media (max-width:539px){#tns-newsletter #tns-newstack-update .newstack-left .left-title{padding-right:0}}#tns-newsletter #tns-newstack-update .newstack-right{max-width:510px;width:100%}@media (max-width:1023.98px){#tns-newsletter #tns-newstack-update .newstack-right{max-width:280px}}@media (max-width:767.98px){#tns-newsletter #tns-newstack-update .newstack-right{max-width:100%}}#tns-newsletter #tns-newstack-update .newstack-right .subtitle{font-size:28px;color:#3c3c3c;line-height:1.3;margin:0 0 70px}@media (max-width:1023.98px){#tns-newsletter #tns-newstack-update .newstack-right .subtitle{font-size:16px;margin:0 0 20px}}@media (max-width:767.98px){#tns-newsletter #tns-newstack-update .newstack-right .subtitle{margin:0 0 30px}}#tns-newsletter #tns-newstack-update .newstack-right .newsletter-form-inputs{max-width:100%}#tns-newsletter #tns-past-newsletters{position:relative;padding-bottom:100px}@media (max-width:1024.98px){#tns-newsletter #tns-past-newsletters{padding-bottom:70px}}@media (max-width:767.98px){#tns-newsletter #tns-past-newsletters{padding-bottom:50px}}#tns-newsletter #tns-past-newsletters .past-newsletters .newsletter-block{display:block;padding:20px;padding-left:0;text-decoration:none;border-bottom:1px solid #a5a9b0}@media (max-width:767.98px){#tns-newsletter #tns-past-newsletters .past-newsletters .newsletter-block{padding-left:0}}#tns-newsletter #tns-past-newsletters .past-newsletters .newsletter-block:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}#tns-newsletter #tns-past-newsletters .past-newsletters .newsletter-block .title{color:#3c3c3c;font-size:28px;line-height:1.3;margin-bottom:3px}@media (max-width:767px){#tns-newsletter #tns-past-newsletters .past-newsletters .newsletter-block .title{font-size:18px;margin-bottom:0}}#tns-newsletter #tns-past-newsletters .past-newsletters .newsletter-block .dateline{display:block;color:#3c3c3c;text-transform:uppercase}#tns-newsletter #tns-past-newsletters .past-newsletters .newsletter-block .dateline .issue{display:inline-block;width:auto;color:#515151;font-size:14px;font-weight:500}@media (max-width:767px){#tns-newsletter #tns-past-newsletters .past-newsletters .newsletter-block .dateline .issue{font-size:12px}}#tns-newsletter #tns-past-newsletters .past-newsletters .newsletter-block .dateline .date{display:inline-block;width:auto;color:#a5a9b0;font-size:14px;font-weight:500;margin-left:10px}@media (max-width:767px){#tns-newsletter #tns-past-newsletters .past-newsletters .newsletter-block .dateline .date{font-size:12px}}#tns-newsletter #tns-past-newsletters .past-newsletters .newsletter-block:hover .title{color:#01aff4}#tns-newsletter #tns-past-newsletters .past-newsletters .newsletter-archive-link{margin-top:30px;padding:10px 0;font-size:16px;text-decoration:none;display:inline-block;font-weight:600}@media (max-width:1023.98px){#tns-newsletter #tns-past-newsletters .past-newsletters .newsletter-archive-link{font-size:14px}}#tns-newsletter #tns-past-newsletters .past-newsletters .newsletter-archive-link svg{fill:#ff3287;height:14px;display:inline-block;margin-left:6px;position:relative;top:2px}#tns-newsletter #tns-past-newsletters .past-newsletters .newsletter-archive-link:hover{color:#01aff4}#tns-newsletter #tns-past-newsletters .past-newsletters .newsletter-archive-link:hover svg{fill:#01aff4}#tns-newsletter #tns-past-newsletters .past-newsletters .newsletter-load-more{margin-top:20px}#tns-newsletter #tns-featured-newsletter{position:relative}#tns-newsletter #tns-featured-newsletter .featured-newsletter{display:block;position:relative;width:100%;height:auto;padding:40px;margin-top:60px;margin-bottom:60px;border:1px solid #01aff4}@media (max-width:699px){#tns-newsletter #tns-featured-newsletter .featured-newsletter{padding:30px}}@media (max-width:499px){#tns-newsletter #tns-featured-newsletter .featured-newsletter{padding:20px}}#tns-newsletter #tns-featured-newsletter .featured-newsletter:hover{border:1px solid #ff3287}#tns-newsletter #tns-featured-newsletter .featured-newsletter:hover .title{color:#ff3287}#tns-newsletter #tns-featured-newsletter .issue{color:#01aff4;text-transform:uppercase;font-size:18px;font-weight:600;display:inline-block;width:100%;margin:0 0 60px;line-height:1;vertical-align:top}@media (max-width:1023.98px){#tns-newsletter #tns-featured-newsletter .issue{font-size:16px;margin:0 0 20px}}@media (max-width:767.98px){#tns-newsletter #tns-featured-newsletter .issue{font-size:14px}}#tns-newsletter #tns-featured-newsletter .title{display:block;width:100%;color:#3c3c3c;font-size:46px;font-weight:600;line-height:1.2}@media (max-width:1023.98px){#tns-newsletter #tns-featured-newsletter .title{font-size:32px}}@media (max-width:767.98px){#tns-newsletter #tns-featured-newsletter .title{font-size:30px}}@media (max-width:699px){#tns-newsletter #tns-featured-newsletter .title{font-size:24px}}@media (max-width:499px){#tns-newsletter #tns-featured-newsletter .title{font-size:20px}}@media (max-width:399px){#tns-newsletter #tns-featured-newsletter .title{font-size:18px}}#tns-newsletter #tns-featured-newsletter .dateline{position:relative;color:#a5a9b0;font-size:14px;font-weight:500;line-height:1.3;letter-spacing:1.2px;vertical-align:middle;text-transform:uppercase}#tns-podcasts{position:relative;margin-bottom:50px}#tns-podcasts #tns-podcasts-cover{position:relative;padding-top:50px;padding-bottom:50px}@media (max-width:767px){#tns-podcasts #tns-podcasts-cover{padding-top:30px;padding-bottom:30px}}#tns-podcasts #tns-podcasts-cover .featured-column{padding-right:30px}@media (max-width:767px){#tns-podcasts #tns-podcasts-cover .featured-column{min-width:100%;max-width:100%;padding-right:0}}@media (max-width:767px){#tns-podcasts #tns-podcasts-cover .sidebar-column{display:none}}#tns-podcasts #tns-podcasts-cover .section-heading{color:#fff;border-top:1px solid #fff;
167opacity:.75;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=75)";filter:alpha(opacity=75)}#tns-podcasts #tns-podcasts-cover #tns-podcasts-featured-podcast{position:relative}@media (max-width:499px){#tns-podcasts #tns-podcasts-cover #tns-podcasts-featured-podcast .featured-podcast-image-column{display:none}}#tns-podcasts #tns-podcasts-cover #tns-podcasts-featured-podcast .featured-podcast-image-column .featured-podcast-image{display:block;width:100%;height:auto;border:1px solid #fff}@media (max-width:499px){#tns-podcasts #tns-podcasts-cover #tns-podcasts-featured-podcast .featured-episode-details-column{min-width:100%;max-width:100%}}#tns-podcasts #tns-podcasts-cover #tns-podcasts-featured-podcast .featured-episode-details-column .featured-episode-details{display:block;height:auto;color:#fff;padding-left:20px}@media (max-width:499px){#tns-podcasts #tns-podcasts-cover #tns-podcasts-featured-podcast .featured-episode-details-column .featured-episode-details{padding-left:0}}#tns-podcasts #tns-podcasts-cover #tns-podcasts-featured-podcast .featured-episode-details-column .featured-episode-details .episode-title{display:block;color:#fff;font-size:27px;font-weight:500;line-height:1.2;margin-bottom:10px}@media (max-width:767px){#tns-podcasts #tns-podcasts-cover #tns-podcasts-featured-podcast .featured-episode-details-column .featured-episode-details .episode-title{font-size:24px;margin-bottom:30px}}@media (max-width:767px){#tns-podcasts #tns-podcasts-cover #tns-podcasts-featured-podcast .featured-episode-details-column .featured-episode-details .episode-description{display:none}}#tns-podcasts #tns-podcasts-cover #tns-podcasts-featured-podcast .featured-episode-details-column .featured-episode-details .listen-now-button{display:inline-block;background-color:#fff;text-decoration:none;border-radius:24px;padding:12px 25px;font-size:18px;color:#01aff4;font-weight:500;-webkit-transition:all 99ms;-moz-transition:all 99ms;-o-transition:all 99ms;-ms-transition:all 99ms;transition:all 99ms}#tns-podcasts #tns-podcasts-cover #tns-podcasts-featured-podcast .featured-episode-details-column .featured-episode-details .listen-now-button svg{height:14px;width:20px;fill:#01aff4;-webkit-transition:all 99ms;-moz-transition:all 99ms;-o-transition:all 99ms;-ms-transition:all 99ms;transition:all 99ms}#tns-podcasts #tns-podcasts-cover #tns-podcasts-featured-podcast .featured-episode-details-column .featured-episode-details .listen-now-button .play-icon{margin-right:10px;-webkit-transition:all 99ms;-moz-transition:all 99ms;-o-transition:all 99ms;-ms-transition:all 99ms;transition:all 99ms}#tns-podcasts #tns-podcasts-cover #tns-podcasts-featured-podcast .featured-episode-details-column .featured-episode-details .listen-now-button:hover{background-color:#ff3287;color:#fff}#tns-podcasts #tns-podcasts-cover #tns-podcasts-featured-podcast .featured-episode-details-column .featured-episode-details .listen-now-button:hover svg{fill:#fff}#tns-podcasts #tns-podcasts-cover #tns-podcasts-cover-sidebar{position:relative}#tns-podcasts #tns-podcasts-cover #tns-podcasts-cover-sidebar .featured-video{padding:0 0 23px;margin:0 0 23px;border-bottom:1px solid #c2c2c2;text-decoration:none;display:block}#tns-podcasts #tns-podcasts-cover #tns-podcasts-cover-sidebar .featured-video:last-child{border-bottom:0;padding:0;margin:0}#tns-podcasts #tns-podcasts-cover #tns-podcasts-cover-sidebar .featured-video .image{position:relative;margin-bottom:10px;border:2px solid transparent}#tns-podcasts #tns-podcasts-cover #tns-podcasts-cover-sidebar .featured-video .image .play-icon{position:absolute;left:50%;top:50%;color:#fff;-webkit-transform:translate(-50%,-50%);-moz-transform:translate(-50%,-50%);-o-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);font-size:30px;z-index:1}#tns-podcasts #tns-podcasts-cover #tns-podcasts-cover-sidebar .featured-video .image .play-icon svg{fill:#fff;width:35px}#tns-podcasts #tns-podcasts-cover #tns-podcasts-cover-sidebar .featured-video .image img{display:block;width:100%;height:auto}#tns-podcasts #tns-podcasts-cover #tns-podcasts-cover-sidebar .featured-video .content{position:relative}#tns-podcasts #tns-podcasts-cover #tns-podcasts-cover-sidebar .featured-video .content .title{color:#fff;font-size:18px;line-height:1.28}#tns-podcasts #tns-podcasts-cover #tns-podcasts-cover-sidebar .featured-video .content .dateline{display:block;color:#fff;font-size:12px;font-weight:500;letter-spacing:1.2px;text-transform:uppercase}@media (max-width:1023.98px){#tns-podcasts #tns-podcasts-cover #tns-podcasts-cover-sidebar .featured-video .content .dateline{font-size:10px}}#tns-podcasts #tns-podcasts-cover #tns-podcasts-cover-sidebar .featured-video:hover .image{border:2px solid #fff}#tns-podcasts #tns-podcasts-cover #tns-podcasts-cover-sidebar .featured-video:hover .content .title{color:#fff;-webkit-transition:all 99ms ease-in-out;-moz-transition:all 99ms ease-in-out;-o-transition:all 99ms ease-in-out;-ms-transition:all 99ms ease-in-out;transition:all 99ms ease-in-out}#tns-podcasts #tns-podcasts-subscribe{position:relative}#tns-podcasts #tns-episodes{position:relative;padding:0 0 53px}@media (max-width:767.98px){#tns-podcasts #tns-episodes{left:-30px;width:calc(100% + 60px);padding:0 0 30px}}#tns-podcasts #tns-episodes .row{margin:0 -21px;
167display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex;-webkit-box-pack:justify;-moz-box-pack:justify;-o-box-pack:justify;-ms-flex-pack:justify;-webkit-justify-content:space-between;justify-content:space-between}@media (max-width:1023.98px){#tns-podcasts #tns-episodes .row{margin:0 -16px}}@media (max-width:767.98px){#tns-podcasts #tns-episodes .row{margin:0;-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}}#tns-podcasts #tns-episodes .row .col-66{padding:0 20px}@media (max-width:1023.98px){#tns-podcasts #tns-episodes .row .col-66{padding:0 16px;width:calc(100% - 279px);min-width:inherit}}@media (max-width:767.98px){#tns-podcasts #tns-episodes .row .col-66{padding:0;width:100%;min-width:fit-content}}#tns-podcasts #tns-episodes .row .col-33{padding:0 20px}@media (max-width:1023.98px){#tns-podcasts #tns-episodes .row .col-33{padding:0 16px;max-width:312px;width:100%;min-width:inherit}}@media (max-width:767.98px){#tns-podcasts #tns-episodes .row .col-33{padding:0;max-width:100%}}#tns-podcasts #tns-episodes .tns-makers{position:relative}@media (max-width:767.98px){#tns-podcasts #tns-episodes .tns-makers{padding:0 30px 30px}}#tns-podcasts #tns-episodes .tns-makers .makers-title{margin-bottom:30px}#tns-podcasts #tns-episodes .tns-makers .makers-main{margin-bottom:30px}#tns-podcasts #tns-episodes .tns-makers .more-podcasts-link{text-decoration:none;display:inline-block;color:#ff3287;text-transform:capitalize;cursor:pointer}@media (max-width:1023.98px){#tns-podcasts #tns-episodes .tns-makers .more-podcasts-link{margin:20px 0 0;font-size:14px}}@media (max-width:767.98px){#tns-podcasts #tns-episodes .tns-makers .more-podcasts-link{margin:30px 0 0}}#tns-podcasts #tns-episodes .tns-makers .more-podcasts-link svg{fill:#ff3287;display:inline-block;height:12px}#tns-podcasts #tns-episodes .tns-makers .more-podcasts-link:hover{color:#01aff4;-webkit-transition:all 99ms ease-in-out;-moz-transition:all 99ms ease-in-out;-o-transition:all 99ms ease-in-out;-ms-transition:all 99ms ease-in-out;transition:all 99ms ease-in-out}#tns-podcasts #tns-episodes .tns-makers .more-podcasts-link:hover svg{fill:#01aff4}#tns-podcasts #tns-episodes .tns-makers .podcast-episode{display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex;-webkit-box-align:start;-moz-box-align:start;-o-box-align:start;-ms-flex-align:start;-webkit-align-items:flex-start;align-items:flex-start;text-decoration:none;padding-bottom:23px;margin-bottom:23px;border-bottom:1px solid #c2c2c2}#tns-podcasts #tns-episodes .tns-makers .podcast-episode:last-child{border-bottom:0;padding:0;margin:0}#tns-podcasts #tns-episodes .tns-makers .podcast-episode .icon{position:relative;width:80px;height:80px;border-radius:100%;background:transparent -webkit-linear-gradient(283deg, #e74886 0%, #f78b5a 69%, #e74886 100%) 0% 0% no-repeat padding-box;background:transparent -moz-linear-gradient(283deg, #e74886 0%, #f78b5a 69%, #e74886 100%) 0% 0% no-repeat padding-box;background:transparent -o-linear-gradient(283deg, #e74886 0%, #f78b5a 69%, #e74886 100%) 0% 0% no-repeat padding-box;background:transparent -ms-linear-gradient(283deg, #e74886 0%, #f78b5a 69%, #e74886 100%) 0% 0% no-repeat padding-box;background:transparent linear-gradient(167deg, #e74886 0%, #f78b5a 69%, #e74886 100%) 0% 0% no-repeat padding-box}@media (max-width:1023.98px){#tns-podcasts #tns-episodes .tns-makers .podcast-episode .icon{height:60px;width:60px}}#tns-podcasts #tns-episodes .tns-makers .podcast-episode .icon .play-icon{position:absolute;top:50%;left:50%;-webkit-transform:translate(-10px,-25px);-moz-transform:translate(-10px,-25px);-o-transform:translate(-10px,-25px);-ms-transform:translate(-10px,-25px);transform:translate(-10px,-25px)}@media (max-width:1023.98px){#tns-podcasts #tns-episodes .tns-makers .podcast-episode .icon .play-icon{-webkit-transform:translate(-8px,-25px);-moz-transform:translate(-8px,-25px);-o-transform:translate(-8px,-25px);-ms-transform:translate(-8px,-25px);transform:translate(-8px,-25px)}}#tns-podcasts #tns-episodes .tns-makers .podcast-episode .icon .play-icon svg{width:30px;fill:#fff}@media (max-width:1023.98px){#tns-podcasts #tns-episodes .tns-makers .podcast-episode .icon .play-icon svg{width:25px}}#tns-podcasts #tns-episodes .tns-makers .podcast-episode .content{width:calc(100% - 100px);padding-left:42px}@media (max-width:1023.98px){#tns-podcasts #tns-episodes .tns-makers .podcast-episode .content{width:calc(100% - 63px);padding-left:25px}}#tns-podcasts #tns-episodes .tns-makers .podcast-episode .content .episode-title{color:#3c3c3c;font-size:20px;line-height:1.28}#tns-podcasts #tns-episodes .tns-makers .podcast-episode .content .episode-dateline{display:block;color:#a5a9b0;font-size:12px;font-weight:500;letter-spacing:1.2px;text-transform:uppercase;margin-bottom:7px}@media (max-width:1023.98px){#tns-podcasts #tns-episodes .tns-makers .podcast-episode .content .episode-dateline{font-size:10px}}#tns-podcasts #tns-episodes .tns-makers .podcast-episode .content p{color:#3c3c3c;font-size:16px;line-height:1.33;margin-bottom:15px}#tns-podcasts #tns-episodes .tns-makers .podcast-episode:hover .content .episode-title{color:#01aff4;-webkit-transition:all 99ms;-moz-transition:all 99ms;-o-transition:all 99ms;-ms-transition:all 99ms;transition:all 99ms}#tns-podcasts #tns-episodes .tns-videos{position:relative}@media (max-width:767.98px){#tns-podcasts #tns-episodes .tns-videos{padding:0 30px}}#tns-podcasts #tns-episodes .tns-videos .videos-title{margin-bottom:30px}@media (max-width:767.98px){#tns-podcasts #tns-episodes .tns-videos .videos-title{padding-right:30px}}#tns-podcasts #tns-episodes .tns-videos .videos-main-block{position:relative}#tns-podcasts #tns-episodes .tns-videos .videos-main{position:relative;margin-bottom:30px}#tns-podcasts #tns-episodes .tns-videos .videos-single{padding:0 0 23px;margin:0 0 23px;border-bottom:1px solid #c2c2c2;text-decoration:none;display:block}#tns-podcasts #tns-episodes .tns-videos .videos-single:last-child{border-bottom:0;padding:0;margin:0}#tns-podcasts #tns-episodes .tns-videos .videos-single .image{position:relative;margin-bottom:10px}#tns-podcasts #tns-episodes .tns-videos .videos-single .image .play-icon{position:absolute;
167left:50%;top:50%;color:#fff;-webkit-transform:translate(-50%,-50%);-moz-transform:translate(-50%,-50%);-o-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);font-size:30px;z-index:1}#tns-podcasts #tns-episodes .tns-videos .videos-single .image .play-icon svg{fill:#fff;width:35px}#tns-podcasts #tns-episodes .tns-videos .videos-single .image img{display:block;width:100%;height:auto}#tns-podcasts #tns-episodes .tns-videos .videos-single .image .eyebrow{position:absolute;right:16px;top:16px;height:50px;width:50px;background-color:#fff;border-radius:100%;display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex;-webkit-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-box-align:center;-moz-box-align:center;-o-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;font-size:12px;color:#ff3287;font-weight:600;text-transform:uppercase;letter-spacing:1.2px}#tns-podcasts #tns-episodes .tns-videos .videos-single .content{position:relative}#tns-podcasts #tns-episodes .tns-videos .videos-single .content .video-title{color:#3c3c3c;font-size:18px;line-height:1.28}#tns-podcasts #tns-episodes .tns-videos .videos-single .content .video-dateline{display:block;color:#a5a9b0;font-size:12px;font-weight:500;letter-spacing:1.2px;text-transform:uppercase}@media (max-width:1023.98px){#tns-podcasts #tns-episodes .tns-videos .videos-single .content .video-dateline{font-size:10px}}#tns-podcasts #tns-episodes .tns-videos .videos-single:hover .content .video-title{color:#01aff4;-webkit-transition:all 99ms ease-in-out;-moz-transition:all 99ms ease-in-out;-o-transition:all 99ms ease-in-out;-ms-transition:all 99ms ease-in-out;transition:all 99ms ease-in-out}#tns-podcasts #tns-episodes .tns-videos .tns-videos-slider{padding-right:90px}@media (min-width:767.98px){#tns-podcasts #tns-episodes .tns-videos .tns-videos-slider{display:none}}#tns-podcasts #tns-episodes .tns-videos .more-videos-link{text-decoration:none;display:inline-block;color:#ff3287;text-transform:capitalize}@media (max-width:1023.98px){#tns-podcasts #tns-episodes .tns-videos .more-videos-link{margin:30px 0 0;font-size:14px}}@media (max-width:767.98px){#tns-podcasts #tns-episodes .tns-videos .more-videos-link{margin:20px 0 0}}#tns-podcasts #tns-episodes .tns-videos .more-videos-link svg{fill:#ff3287;display:inline-block;height:12px}#tns-podcasts #tns-episodes .tns-videos .more-videos-link:hover{color:#01aff4;-webkit-transition:all 99ms ease-in-out;-moz-transition:all 99ms ease-in-out;-o-transition:all 99ms ease-in-out;-ms-transition:all 99ms ease-in-out;transition:all 99ms ease-in-out}#tns-podcasts #tns-episodes .tns-videos .more-videos-link:hover svg{fill:#01aff4}#tns-podcasts #tns-podcasts-sponsor-spotlight{position:relative}#tns-podcasts #tns-podcasts-events{position:relative}#tns-podcasts #tns-podcasts-newsletter{position:relative}#tns-rss-feeds{position:relative;padding-top:50px;padding-bottom:50px}@media (max-width:767px){#tns-rss-feeds{padding-top:30px;padding-bottom:30px}}#tns-rss-feeds .content-column{max-width:830px}#tns-post{position:relative;padding-top:50px;padding-bottom:60px}#tns-post .content-column-post-body{min-height:unset;max-width:930px}#tns-post .content-column-post-body #tns-post-headline{position:relative}#tns-post .content-column-post-body #tns-post-headline #tns-post-headline-breadcrumb{position:relative;margin-bottom:20px}#tns-post .content-column-post-body #tns-post-headline #tns-post-headline-breadcrumb .breadcrumb{width:100%;color:#a5a9b0;font-size:13px;font-weight:600;letter-spacing:.03px;text-transform:uppercase}#tns-post .content-column-post-body #tns-post-headline #tns-post-headline-breadcrumb .breadcrumb a{vertical-align:baseline;text-decoration:none;color:#a5a9b0}#tns-post .content-column-post-body #tns-post-headline #tns-post-headline-breadcrumb .breadcrumb a:hover{color:#01aff4}#tns-post .content-column-post-body #tns-post-headline #tns-post-headline-title{position:relative}#tns-post .content-column-post-body #tns-post-headline #tns-post-headline-title .title{display:block;width:100%;color:#3c3c3c;font-size:45px;font-weight:500;line-height:1.07;letter-spacing:.7px;margin-bottom:15px}@media (max-width:1023.98px){#tns-post .content-column-post-body #tns-post-headline #tns-post-headline-title .title{font-size:40px}}@media (max-width:767.98px){#tns-post .content-column-post-body #tns-post-headline #tns-post-headline-title .title{font-size:30px}}@media (max-width:399.98px){#tns-post .content-column-post-body #tns-post-headline #tns-post-headline-title .title{font-size:27px}}#tns-post .content-column-post-body #tns-post-headline #tns-post-headline-title .post-excerpt{color:#515151;padding-right:10%;margin-bottom:10px}@media (max-width:767.98px){#tns-post .content-column-post-body #tns-post-headline #tns-post-headline-title .post-excerpt{padding-right:0}}#tns-post .content-column-post-body #tns-post-headline #tns-post-headline-byline{position:relative;padding-right:10%;margin-bottom:30px}#tns-post .content-column-post-body #tns-post-headline #tns-post-headline-byline .date{width:100%;color:#515151;font-size:13px;font-weight:500;letter-spacing:.03px}#tns-post .content-column-post-body #tns-post-headline #tns-post-headline-byline .author{width:100%;color:#515151;font-size:13px;font-weight:500;letter-spacing:.03px;margin:0;padding:0}#tns-post .content-column-post-body #tns-post-headline #tns-post-headline-byline .author a{vertical-align:baseline;text-decoration:none;color:#01aff4}
167#tns-post .content-column-post-body #tns-post-headline #tns-post-headline-byline .author a:hover{color:#ff3287}#tns-post .content-column-post-body #tns-post-headline #tns-post-headline-byline .sponsor-badge{font-size:12px;color:#ff3287;display:inline-block;width:100%;vertical-align:middle;text-align:left;text-transform:uppercase;font-weight:normal;margin:0;padding:0;letter-spacing:.2px}#tns-post .content-column-post-body #tns-post-key-media{position:relative;margin-bottom:30px}#tns-post .content-column-post-body #tns-post-key-media .content-column{min-height:unset}#tns-post .content-column-post-body #tns-post-key-media img{display:block;width:100%;height:auto}#tns-post .content-column-post-body #tns-post-key-media .image-disclosure,#tns-post .content-column-post-body #tns-post-key-media .image-disclosure .attribution{color:#a5a9b0;font-size:12px;line-height:1.33}#tns-post .content-column-post-body #tns-post-key-media .image-disclosure a,#tns-post .content-column-post-body #tns-post-key-media .image-disclosure .attribution a{color:#01aff4;text-decoration:none}#tns-post .content-column-post-body #tns-post-key-media .image-disclosure a:hover,#tns-post .content-column-post-body #tns-post-key-media .image-disclosure .attribution a:hover{color:#ff3287}#tns-post .content-column-post-body #tns-post-key-media .image-disclosure{padding-top:7px}#tns-post .content-column-post-body #tns-post-body{position:relative}#tns-post .content-column-post-body #tns-post-body .copy-column{-webkit-box-flex:1;-moz-box-flex:1;-o-box-flex:1;box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;min-width:0%}#tns-post .content-column-post-body #tns-post-body .sidebar-column{-webkit-box-flex:1;-moz-box-flex:1;-o-box-flex:1;box-flex:1;-webkit-flex:0 0 315px;-ms-flex:0 0 315px;flex:0 0 315px}@media (max-width:767px){#tns-post .content-column-post-body #tns-post-body .sidebar-column{display:none}}#tns-post .content-column-post-body #tns-post-body #tns-post-body-content{position:relative;padding-right:15px;padding-bottom:20px}@media (max-width:767.98px){#tns-post .content-column-post-body #tns-post-body #tns-post-body-content{padding-right:0}}#tns-post .content-column-post-body #tns-post-body #tns-post-body-content .editors-note{color:#515151;font-size:14px;font-style:italic;margin-bottom:30px}#tns-post .content-column-post-body #tns-post-body #tns-post-body-content .sponsored-post-disclosure{display:none}@media (max-width:767px){#tns-post .content-column-post-body #tns-post-body #tns-post-body-content .sponsored-post-disclosure{display:block}}#tns-post .content-column-post-body #tns-post-body #tns-post-body-content h1{margin-bottom:20px}#tns-post .content-column-post-body #tns-post-body #tns-post-body-content img.alignnone,#tns-post .content-column-post-body #tns-post-body #tns-post-body-content img.aligncenter{width:100%;height:auto}#tns-post .content-column-post-body #tns-post-body #tns-post-body-content .wp-caption.alignnone,#tns-post .content-column-post-body #tns-post-body #tns-post-body-content .wp-caption.aligncenter{display:block;width:100%;padding:0;margin:0}#tns-post .content-column-post-body #tns-post-body #tns-post-body-content .wp-caption.alignnone img,#tns-post .content-column-post-body #tns-post-body #tns-post-body-content .wp-caption.aligncenter img{display:block;width:100%;height:auto}#tns-post .content-column-post-body #tns-post-body #tns-post-body-content .wp-caption-text{padding-top:5px;font-size:12px;font-style:italic}#tns-post .content-column-post-body #tns-post-body #tns-post-body-content .wp-caption.alignleft{float:left;min-width:0;margin-right:10px}#tns-post .content-column-post-body #tns-post-body #tns-post-body-content .wp-caption.alignleft img{display:block;width:auto}#tns-post .content-column-post-body #tns-post-body #tns-post-body-content .wp-caption.alignleft .wp-caption-text{margin-bottom:0}@media (max-width:499px){#tns-post .content-column-post-body #tns-post-body #tns-post-body-content .wp-caption.alignleft{min-width:100%;float:none;margin-left:0;margin-right:0}#tns-post .content-column-post-body #tns-post-body #tns-post-body-content .wp-caption.alignleft img{width:100%;height:auto}#tns-post .content-column-post-body #tns-post-body #tns-post-body-content .wp-caption.alignleft .wp-caption-text{margin-bottom:30px}}#tns-post .content-column-post-body #tns-post-body #tns-post-body-content .wp-caption.alignright{float:right;min-width:0;margin-left:10px}#tns-post .content-column-post-body #tns-post-body #tns-post-body-content .wp-caption.alignright img{display:block;width:auto}#tns-post .content-column-post-body #tns-post-body #tns-post-body-content .wp-caption.alignright .wp-caption-text{margin-bottom:0}@media (max-width:499px){#tns-post .content-column-post-body #tns-post-body #tns-post-body-content .wp-caption.alignright{min-width:100%;float:none;margin-left:0;margin-right:0}#tns-post .content-column-post-body #tns-post-body #tns-post-body-content .wp-caption.alignright img{width:100%;height:auto}#tns-post .content-column-post-body #tns-post-body #tns-post-body-content .wp-caption.alignright .wp-caption-text{margin-bottom:30px}}#tns-post .content-column-post-body #tns-post-body #tns-post-body-content .infoBlock{display:none}#tns-post .content-column-post-body #tns-post-body #tns-post-body-content .tns-logo-slug svg{display:block;width:21px;height:auto;margin-bottom:30px}#tns-post .content-column-post-body #tns-post-body #tns-post-body-content .ad-container--inline{margin-bottom:10px;border-bottom:1px solid #c2c2c2;border-top:1px solid #c2c2c2;padding:10px 0;text-align:center}#tns-post .content-column-post-body #tns-post-body #tns-post-body-content .ad-container--inline div{height:195px !important}@media (min-width:768px){#tns-post .content-column-post-body #tns-post-body #tns-post-body-content .ad-container--inline{display:none}}#tns-post .content-column-post-body #tns-post-body #tns-post-body-content iframe{width:100%;aspect-ratio:16/9;display:inline-block}#tns-post .content-column-post-body #tns-post-body #tns-post-body-content .media-direct-link{display:block;font-size:15px;font-weight:500;margin:0}#tns-post .content-column-post-body #tns-post-body #tns-post-body-content .media-direct-link a{color:#01aff4}
167#tns-post .content-column-post-body #tns-post-body #tns-post-body-content .media-direct-link a:hover{color:#ff3287}#tns-post .content-column-post-body #tns-post-body #tns-post-body-content .podcast-embed-subscription-links{position:relative;color:#515151;font-size:13px;margin:0;margin-bottom:30px}#tns-post .content-column-post-body #tns-post-body #tns-post-body-content .podcast-embed-subscription-links a{color:#01aff4;font-size:13px}#tns-post .content-column-post-body #tns-post-body #tns-post-body-content .podcast-embed-subscription-links a:hover{color:#ff3287}#tns-post .content-column-post-body #tns-post-body #tns-post-body-content .youtube-subscribe-block{-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-top:1px;width:100%;padding:15px;background:#f6f8fa;cursor:pointer}@media (max-width:499px){#tns-post .content-column-post-body #tns-post-body #tns-post-body-content .youtube-subscribe-block{padding:15px}}#tns-post .content-column-post-body #tns-post-body #tns-post-body-content .youtube-subscribe-block:hover .copy .heading{color:#ff3287}#tns-post .content-column-post-body #tns-post-body #tns-post-body-content .youtube-subscribe-block:hover .button button{background:#ff3287}#tns-post .content-column-post-body #tns-post-body #tns-post-body-content .youtube-subscribe-block .copy{padding-right:20px;color:#515151}@media (max-width:499px){#tns-post .content-column-post-body #tns-post-body #tns-post-body-content .youtube-subscribe-block .copy{min-width:100%;max-width:100%;padding-right:0}}#tns-post .content-column-post-body #tns-post-body #tns-post-body-content .youtube-subscribe-block .copy .heading{font-size:11px;font-weight:800;color:#8da6c0}#tns-post .content-column-post-body #tns-post-body #tns-post-body-content .youtube-subscribe-block .copy .cta{font-size:14px;line-height:1.33}#tns-post .content-column-post-body #tns-post-body #tns-post-body-content .youtube-subscribe-block .button{padding-top:25px}@media (max-width:499px){#tns-post .content-column-post-body #tns-post-body #tns-post-body-content .youtube-subscribe-block .button{min-width:100%;max-width:100%;padding-top:15px}}#tns-post .content-column-post-body #tns-post-body #tns-post-body-content .youtube-subscribe-block .button .youtube-subscribe-button{font-size:13px;font-weight:800;line-height:27px;height:30px;background:#01aff4}#tns-post .content-column-post-body #tns-post-body #tns-post-body-content .youtube-subscribe-block .button .youtube-subscribe-button svg{display:inline-block;height:12px}#tns-post .content-column-post-body #tns-post-body #tns-post-body-content .youtube-subscribe-block .button .youtube-subscribe-button svg path{f
167ill:#fff}#tns-post .content-column-post-body #tns-post-body #tns-post-body-content .tns-post-body-content-author{position:relative;border-top:1px solid #a5a9b0;padding-top:30px;margin-bottom:20px}#tns-post .content-column-post-body #tns-post-body #tns-post-body-content .tns-post-body-content-author .author-more-link{display:block;color:#3c3c3c}#tns-post .content-column-post-body #tns-post-body #tns-post-body-content .tns-post-body-content-author .author-more-link .author-profile-photo-column{-webkit-box-flex:1;-moz-box-flex:1;-o-box-flex:1;box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;width:60px;max-width:60px}#tns-post .content-column-post-body #tns-post-body #tns-post-body-content .tns-post-body-content-author .author-more-link .author-profile-photo-column img{display:block;width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:30px}#tns-post .content-column-post-body #tns-post-body #tns-post-body-content .tns-post-body-content-author .author-more-link .post-author-bio-column{-webkit-box-flex:1;-moz-box-flex:1;-o-box-flex:1;box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;padding-left:20px;font-size:13px;color:#3c3c3c;display:inline-block;line-height:135%}#tns-post .content-column-post-body #tns-post-body #tns-post-body-content .tns-post-body-content-author .author-more-link .post-author-bio-column .post-author-bio-wrap{position:relative}#tns-post .content-column-post-body #tns-post-body #tns-post-body-content .tns-post-body-content-author .author-more-link .post-author-bio-column .post-author-bio-wrap .post-author-bio{position:relative}#tns-post .content-column-post-body #tns-post-body #tns-post-body-content .tns-post-body-content-author .author-more-link .post-author-bio-column .author-more-cta{color:#3c3c3c;margin-top:20px}#tns-post .content-column-post-body #tns-post-body #tns-post-body-content .tns-post-body-content-author .author-more-link .post-author-bio-column .author-more-cta svg{height:8px;width:auto;fill:#3c3c3c}#tns-post .content-column-post-body #tns-post-body #tns-post-body-content .tns-post-body-content-author .author-more-link:hover{color:#3c3c3c}#tns-post .content-column-post-body #tns-post-body #tns-post-body-content .tns-post-body-content-author .author-more-link:hover .post-author-bio-column .author-more-cta{color:#ff3287}#tns-post .content-column-post-body #tns-post-body #tns-post-body-content .tns-post-body-content-author .author-more-link:hover .post-author-bio-column .author-more-cta svg{fill:#ff3287}#tns-post .content-column-post-body #tns-post-body #tns-post-body-sidebar{position:sticky;top:110px;padding-left:15px;padding-bottom:45px}#tns-post .content-column-post-body #tns-post-body #tns-post-body-sidebar #div-gpt-ad-native-sidebar-1{min-height:250px;margin-bottom:20px}#tns-post .content-column-post-body #tns-post-body #tns-post-body-sidebar .tns-post-body-sidebar-trending-stories{position:relative}#tns-post .content-column-post-body #tns-post-body #tns-post-body-sidebar #tns-post-body-sidebar-related-stories{position:relative}#tns-post .content-column-post-body #tns-post-body #tns-post-body-sidebar #tns-post-body-sidebar-related-stories .section-heading{font-size:13px;font-weight:700;margin-bottom:15px}#tns-post .content-column-post-body #tns-post-body #tns-post-body-sidebar #tns-post-body-content{position:relative}#tns-post .content-column-post-body #tns-post-body #tns-post-body-sidebar #tns-post-body-sidebar-share{position:relative;margin-bottom:30px}#tns-post .content-column-post-body #tns-post-body #tns-post-body-sidebar #tns-post-body-sidebar-share .section-heading{font-size:13px;font-weight:700;margin-bottom:10px}#tns-post .content-column-mobile-footer{display:none}@media (max-width:767px){#tns-post .content-column-mobile-footer{display:block}}#tns-post .content-column-mobile-footer .mobile-share{margin-bottom:40px}#tns-post .content-column-mobile-footer .mobile-share .section-heading{margin-bottom:15px}#tns-post .content-column-mobile-footer .mobile-share .share-media-icon{margin-right:15px}#tns-post .content-column-mobile-footer .mobile-share .share-media-icon svg{height:25px}#tns-post .content-column-mobile-footer .mobile-related-stories .related-story{font-size:17px;font-weight:500}#tns-post .content-column-post-footer #tns-post-newsletter{position:relative}.tns-sponsored-post-disclosure{position:relative}.tns-sponsored-post-disclosure .sponsor-disclosure{color:#a5a9b0;font-size:12px;line-height:1.2;margin-bottom:10px}.tns-sponsored-post-disclosure .sponsor-disclosure a{color:#01aff4;text-decoration:none}.tns-sponsored-post-disclosure .sponsor-disclosure a:hover{color:#ff3287}.tns-sponsored-post-disclosure .sponsor-disclosure:last-child{margin-bottom:20px}.tns-sponsor-mention-disclosure{position:relative}.tns-sponsor-mention-disclosure .sponsor-disclosure{color:#a5a9b0;font-size:12px;line-height:1.2;margin-bottom:10px}.tns-sponsor-mention-disclosure .sponsor-disclosure a{color:#01aff4;text-decoration:none}.tns-sponsor-mention-disclosure .sponsor-disclosure a:hover{color:#ff3287}.tns-insight-portcos-disclosure{position:relative}@media (max-width:1023px){.tns-insight-portcos-disclosure{padding-bottom:30px}}.tns-insight-portcos-disclosure .content{max-width:870px;margin-left:auto;margin-right:auto}.tns-insight-portcos-disclosure .content .sponsor-disclosure{margin-bottom:7px}.tns-insight-portcos-disclosure .content .disclosure{color:#a5a9b0;font-size:12px;text-align:left;line-height:133%;margin-bottom:7px}.tns-insight-portcos-disclosure .content .disclosure:last-child{margin-bottom:0}#tns-popover{position:fixed;display:block;right:30px;bottom:90px;max-width:330px;background:#eef6fc;-webkit-box-shadow:5px 5px 10px rgba(30,35,41,0.21);box-shadow:5px 5px 10px rgba(30,35,41,0.21);z-index:1001}#tns-popover .close{position:absolute;top:5px;right:5px;z-index:2;cursor:pointer}#tns-popover .close svg{height:14px}
167#tns-popover .close svg path{fill:#8da6c0}#tns-popover .close:hover svg path{fill:#ff3287}#tns-popover .sponsor-popover-link .content{text-align:left;line-height:1.2;letter-spacing:0}#tns-popover .sponsor-popover-link .content .logo{display:block;max-height:33px;margin-bottom:10px}#tns-popover .sponsor-popover-link .content .copy-col{padding:15px;padding-top:10px;padding-right:40px;padding-bottom:10px}#tns-popover .sponsor-popover-link .content .headline{color:#0e1013;font-size:15px;font-weight:800}#tns-popover .sponsor-popover-link .content .copy{color:#0e1013;font-size:15px}#tns-popover .sponsor-popover-link:hover .headline{color:#ff3287}#tns-popover .sponsor-popover-link:hover .copy{color:#ff3287}#tns-sponsor .some-class-here{position:relative}#tns-sponsors{position:relative;padding-top:50px;padding-bottom:50px}@media (max-width:767px){#tns-sponsors{padding-top:30px}}#tns-sponsors .content-column{min-height:unset}#tns-sponsors .content-column >.row{-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-flow:wrap;-ms-flex-flow:wrap;flex-flow:wrap}#tns-sponsors .content-column .col-75{padding-right:15px}@media (max-width:991.98px){#tns-sponsors .content-column .col-75{min-width:100%;max-width:100%;padding:0}}#tns-sponsors .content-column .col-25{padding-left:15px}@media (max-width:991.98px){#tns-sponsors .content-column .col-25{min-width:100%;max-width:100%;padding:0}}#tns-sponsors #tns-sponsors-grid .sponsors-grid-wrap{position:relative;-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-flow:wrap;-ms-flex-flow:wrap;flex-flow:wrap;display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex;margin:0 -14px}#tns-sponsors #tns-sponsors-grid .sponsors-grid-card{width:calc(100% / 3);margin-bottom:40px;padding:0 14px}@media (max-width:767.98px){#tns-sponsors #tns-sponsors-grid .sponsors-grid-card{width:calc(100% / 2);margin-bottom:30px}}@media (max-width:575.98px){#tns-sponsors #tns-sponsors-grid .sponsors-grid-card{width:100%}}#tns-sponsors #tns-sponsors-grid .sponsors-grid-card .sponsors-grid-card-logo{width:100%;aspect-ratio:1.86/1;background:#eaeff3;margin-bottom:15px;display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex;-webkit-box-align:center;-moz-box-align:center;-o-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;padding:10px}@media (max-width:767.98px){#tns-sponsors #tns-sponsors-grid .sponsors-grid-card .sponsors-grid-card-logo{margin-bottom:10px}}#tns-sponsors #tns-sponsors-grid .sponsors-grid-card .sponsors-grid-card-logo .logo-img{aspect-ratio:1.86/1;object-fit:contain;max-width:70%}#tns-sponsors #tns-sponsors-grid .sponsors-grid-card .sponsors-grid-card-content{width:100%}#tns-sponsors #tns-sponsors-grid .sponsors-grid-card .sponsors-grid-card-content .sponsors-grid-card-title{width:100%;font-size:26px;color:#3c3c3c;font-weight:normal;line-height:1.35;text-transform:capitalize;margin:0 0 15px 0;display:inline-block;text-decoration:none}@media (max-width:1024.98px){#tns-sponsors #tns-sponsors-grid .sponsors-grid-card .sponsors-grid-card-content .sponsors-grid-card-title{font-size:22px}}@media (max-width:767.98px){#tns-sponsors #tns-sponsors-grid .sponsors-grid-card .sponsors-grid-card-content .sponsors-grid-card-title{margin-bottom:10px;font-size:20px}}#tns-sponsors #tns-sponsors-grid .sponsors-grid-card .sponsors-grid-card-content .sponsors-grid-card-title:hover{color:#01aff4}#tns-sponsors #tns-sponsors-grid .sponsors-grid-card .sponsors-grid-card-content .sponsors-grid-card-description{width:100%;color:#3c3c3c;font-size:16px;line-height:1.3;font-weight:normal}@media (max-width:767.98px){#tns-sponsors #tns-sponsors-grid .sponsors-grid-card .sponsors-grid-card-content .sponsors-grid-card-description{font-size:14px}}#tns-sponsors #tns-sponsors-grid .sponsors-grid-card .sponsors-grid-card-content .sponsors-grid-card-description p,#tns-sponsors #tns-sponsors-grid .sponsors-grid-card .sponsors-grid-card-content .sponsors-grid-card-description a{width:100%;font-size:16px;color:#3c3c3c;font-weight:normal;line-height:1.3;margin-bottom:15px}
167@media (max-width:767.98px){#tns-sponsors #tns-sponsors-grid .sponsors-grid-card .sponsors-grid-card-content .sponsors-grid-card-description p,#tns-sponsors #tns-sponsors-grid .sponsors-grid-card .sponsors-grid-card-content .sponsors-grid-card-description a{font-size:14px}}#tns-sponsors #tns-sponsors-grid .sponsors-grid-card .sponsors-grid-card-content .sponsors-grid-card-description a{color:#ff3287;margin-bottom:0;text-decoration:none}#tns-sponsors #tns-sponsors-grid .sponsors-grid-card .sponsors-grid-card-content .sponsors-grid-card-description a:hover{color:#01aff4;text-decoration:none}#tns-sponsors #tns-sponsors-grid .sponsors-grid-card .sponsors-grid-card-action{width:100%}#tns-sponsors #tns-sponsors-grid .sponsors-grid-card .sponsors-grid-card-action .anchor-link{font-size:16px;color:#ff3287;font-weight:bold;line-height:100%;display:inline-block;text-decoration:none;padding:8px 8px 8px 0}@media (max-width:767.98px){#tns-sponsors #tns-sponsors-grid .sponsors-grid-card .sponsors-grid-card-action .anchor-link{font-size:14px}}#tns-sponsors #tns-sponsors-grid .sponsors-grid-card .sponsors-grid-card-action .anchor-link:hover{color:#01aff4}#tns-sponsors #tns-sponsors-sponsorship-cta{position:relative;border-top:2px solid #ff3287;margin-top:60px;padding:40px 0 60px}@media (max-width:1024.98px){#tns-sponsors #tns-sponsors-sponsorship-cta{margin-top:40px;padding:30px 0 50px}}@media (max-width:767.98px){#tns-sponsors #tns-sponsors-sponsorship-cta{margin-top:30px;padding:30px 0}}#tns-sponsors #tns-sponsors-sponsorship-cta .content{max-width:940px}
167#tns-sponsors #tns-sponsors-sponsorship-cta .subtitle{font-size:18px;color:#ff3287;font-weight:bold;text-align:center;line-height:1.3;width:100%;margin:0 auto 40px}@media (max-width:1023.98px){#tns-sponsors #tns-sponsors-sponsorship-cta .subtitle{margin-bottom:30px}}@media (max-width:767.98px){#tns-sponsors #tns-sponsors-sponsorship-cta .subtitle{font-size:16px}}#tns-sponsors #tns-sponsors-sponsorship-cta .title{font-size:42px;color:#ff3287;font-weight:600;text-align:center;line-height:1.3;width:100%;margin:0 auto 50px}@media (max-width:1023.98px){#tns-sponsors #tns-sponsors-sponsorship-cta .title{font-size:36px;margin-bottom:35px}}@media (max-width:767.98px){#tns-sponsors #tns-sponsors-sponsorship-cta .title{font-size:32px}}@media (max-width:575.98px){#tns-sponsors #tns-sponsors-sponsorship-cta .title{font-size:28px}}#tns-sponsors #tns-sponsors-sponsorship-cta .action{width:100%;text-align:center}#tns-sponsors #tns-sponsors-sponsorship-cta .action .link{font-size:18px;color:#ff3287;font-weight:bold;text-align:center;line-height:1.3;padding:8px 10px;text-decoration:none;letter-spacing:0}@media (max-width:767.98px){#tns-sponsors #tns-sponsors-sponsorship-cta .action .link{font-size:16px}}#tns-sponsors #tns-sponsors-sponsorship-cta .action .link:hover{color:#01aff4}#tns-sponsors #tns-sponsors-sponsorship-cta .action .link:hover svg{fill:#01aff4}#tns-sponsors #tns-sponsors-sponsorship-cta .action .link svg{display:inline-block;height:12px;fill:#ff3287}#tns-sponsors #tns-sponsors-founding-sponsors{position:relative;padding-top:30px;border-top:1px solid #a5a9b0}@media (max-width:767.98px){#tns-sponsors #tns-sponsors-founding-sponsors{padding-top:25px;padding-bottom:15px}}#tns-sponsors #tns-sponsors-founding-sponsors .cover-row{-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-flow:wrap;-ms-flex-flow:wrap;flex-flow:wrap}@media (max-width:767.98px){#tns-sponsors #tns-sponsors-founding-sponsors .blocks{min-width:100%;max-width:100%}}#tns-sponsors #tns-sponsors-founding-sponsors .link-action{margin-top:15px;width:100%}@media (max-width:767.98px){#tns-sponsors #tns-sponsors-founding-sponsors .link-action{margin-top:10px;text-align:center}}#tns-sponsors #tns-sponsors-founding-sponsors .link-action .anchored-link{display:inline-block;text-decoration:none;color:#ff3287;position:relative;font-size:16px;font-weight:bold;padding:8px 8px 8px 0}#tns-sponsors #tns-sponsors-founding-sponsors .link-action .anchored-link span{color:#3c3c3c;font-weight:normal}@media (max-width:1199.98px){#tns-sponsors #tns-sponsors-founding-sponsors .link-action .anchored-link{font-size:15px}}@media (max-width:1023.98px){#tns-sponsors #tns-sponsors-founding-sponsors .link-action .anchored-link{font-size:14px}}#tns-sponsors #tns-sponsors-founding-sponsors .link-action .anchored-link:hover{color:#01aff4}#tns-sponsors #tns-sponsors-founding-sponsors #tns-sponsors-founding-sponsors-content{position:relative}#tns-sponsors #tns-sponsors-founding-sponsors #tns-sponsors-founding-sponsors-content .title{font-size:24px;line-height:1.35;display:inline-block;width:100%;margin-bottom:10px}@media (max-width:1023.98px){#tns-sponsors #tns-sponsors-founding-sponsors #tns-sponsors-founding-sponsors-content .title{font-size:20px}}@media (max-width:767.98px){#tns-sponsors #tns-sponsors-founding-sponsors #tns-sponsors-founding-sponsors-content .title{font-size:18px;text-align:center}}#tns-sponsors #tns-sponsors-founding-sponsors #tns-sponsors-founding-sponsors-logos{position:relative}#tns-sponsors #tns-sponsors-founding-sponsors #tns-sponsors-founding-sponsors-logos .sponsors-logos-list{display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex;-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-flow:wrap;-ms-flex-flow:wrap;flex-flow:wrap;list-style:none;margin:0;padding:0 0 0 20px;-webkit-box-pack:justify;-moz-box-pack:justify;-o-box-pack:justify;-ms-flex-pack:justify;-webkit-justify-content:space-between;justify-content:space-between}
167@media (max-width:767.98px){#tns-sponsors #tns-sponsors-founding-sponsors #tns-sponsors-founding-sponsors-logos .sponsors-logos-list{padding-left:0}}#tns-sponsors #tns-sponsors-founding-sponsors #tns-sponsors-founding-sponsors-logos .sponsors-logos-list .sponsor-logo{max-width:calc(100% / 3 - 20px);width:100%;margin:0;display:-webkit-inline-box;display:-moz-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-box;display:inline-flex;-webkit-box-align:center;-moz-box-align:center;-o-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;min-height:45px;margin-bottom:45px}#tns-sponsors #tns-sponsors-founding-sponsors #tns-sponsors-founding-sponsors-logos .sponsors-logos-list .sponsor-logo .default-image,#tns-sponsors #tns-sponsors-founding-sponsors #tns-sponsors-founding-sponsors-logos .sponsors-logos-list .sponsor-logo img{max-height:45px}@media (max-width:1199.98px){#tns-sponsors #tns-sponsors-founding-sponsors #tns-sponsors-founding-sponsors-logos .sponsors-logos-list .sponsor-logo{margin-bottom:30px}}@media (max-width:1023.98px){#tns-sponsors #tns-sponsors-founding-sponsors #tns-sponsors-founding-sponsors-logos .sponsors-logos-list .sponsor-logo{max-width:calc(100% / 2 - 20px);width:100%}}@media (max-width:767.98px){#tns-sponsors #tns-sponsors-founding-sponsors #tns-sponsors-founding-sponsors-logos .sponsors-logos-list .sponsor-logo{max-width:calc(100% / 3 - 20px);margin:25px 0}}@media (max-width:479.98px){#tns-sponsors #tns-sponsors-founding-sponsors #tns-sponsors-founding-sponsors-logos .sponsors-logos-list .sponsor-logo{max-width:calc(100% / 2 - 20px)}}#tns-sponsors #tns-sponsors-sidebar{border-top:2px solid #01aff4;padding-top:35px;position:sticky;top:30px}@media (max-width:991.98px){#tns-sponsors #tns-sponsors-sidebar{margin-top:30px}}#tns-sponsors #tns-sponsors-sidebar .subtitle{text-transform:uppercase;display:block;font-size:16px;letter-spacing:1.8px;font-weight:600;color:#01aff4;margin:0 0 30px;text-align:center}@media (max-width:1023.98px){#tns-sponsors #tns-sponsors-sidebar .subtitle{font-size:14px}}@media (max-width:767.98px){#tns-sponsors #tns-sponsors-sidebar .subtitle{margin:0 0 20px}}#tns-sponsors #tns-sponsors-sidebar .title{font-size:28px;color:#01aff4;font-weight:600;text-align:center;line-height:1.3;max-width:990px;width:100%;margin:0 auto 40px}@media (max-width:1023.98px){#tns-sponsors #tns-sponsors-sidebar .title{font-size:22px;margin:0 auto 25px}}#tns-sponsors #tns-sponsors-sidebar .action-button{width:100%;text-align:center}#tns-sponsors #tns-sponsors-sidebar .action-button .blue-button{display:inline-block;padding:12px 30px;background:#01aff4;border-radius:30px;color:#fff;font-size:16px;font-weight:bold;text-decoration:none;line-height:100%}#tns-sponsors #tns-sponsors-sidebar .action-button .blue-button:hover{background:#ff3287}#tns-sponsorship{position:relative;padding-top:50px;padding-bottom:50px}@media (max-width:767px){#tns-sponsorship{padding-top:30px;padding-bottom:30px}}#tns-sponsorship #tns-sponsorship-content{position:relative}#tns-sponsorship #tns-sponsorship-content .content-column{min-height:unset}#tns-sponsorship #tns-sponsorship-content .content-column .row{-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-flow:wrap;-ms-flex-flow:wrap;flex-flow:wrap}@media (max-width:991.98px){#tns-sponsorship #tns-sponsorship-content .content-column .row .col-25{max-width:100%;min-width:100%}}@media (max-width:991.98px){#tns-sponsorship #tns-sponsorship-content .content-column .row .col-50{max-width:100%;min-width:100%}}#tns-sponsorship #tns-sponsorship-content #tns-sponsorship-become-sponsor{position:relative}@media (min-width:992px){#tns-sponsorship #tns-sponsorship-content #tns-sponsorship-become-sponsor{padding-right:20px}}#tns-sponsorship #tns-sponsorship-content #tns-sponsorship-become-sponsor .bas-main-title{font-size:36px;font-weight:normal;width:100%;line-height:1;color:#01aff4;margin-bottom:20px;letter-spacing:0}#tns-sponsorship #tns-sponsorship-content #tns-sponsorship-become-sponsor .bas-subtitle{font-size:20px;font-weight:normal;width:100%;line-height:1.35;color:#01aff4;margin-bottom:20px;letter-spacing:0}#tns-sponsorship #tns-sponsorship-content #tns-sponsorship-form{position:relative}
167@media (min-width:992px){#tns-sponsorship #tns-sponsorship-content #tns-sponsorship-form{padding-right:15px;padding-left:15px}}#tns-sponsorship #tns-sponsorship-content #tns-sponsorship-form .main-title{width:100%;color:#3c3c3c;font-size:20px;line-height:1.33;letter-spacing:0;margin-bottom:15px}#tns-sponsorship #tns-sponsorship-content #tns-sponsorship-form .description{width:100%;color:#3c3c3c;font-size:15px;letter-spacing:0;line-height:1.45}#tns-sponsorship #tns-sponsorship-content #tns-sponsorship-form .description ul{margin-bottom:0}#tns-sponsorship #tns-sponsorship-content #tns-sponsorship-form .sponsorship-form{width:100%;display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex;-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-flow:wrap;-ms-flex-flow:wrap;flex-flow:wrap}#tns-sponsorship #tns-sponsorship-content #tns-sponsorship-form .sponsorship-form legend{font-size:22px;font-weight:normal;width:100%;line-height:1.35;color:#01aff4;padding:45px 0;margin:0;letter-spacing:0}#tns-sponsorship #tns-sponsorship-content #tns-sponsorship-form .sponsorship-form fieldset{display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex;-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-flow:wrap;-ms-flex-flow:wrap;flex-flow:wrap}#tns-sponsorship #tns-sponsorship-content #tns-sponsorship-form .sponsorship-form fieldset .form-row{width:100%;margin-bottom:30px;display:inline-block;vertical-align:middle}@media (max-width:767.98px){#tns-sponsorship #tns-sponsorship-content #tns-sponsorship-form .sponsorship-form fieldset .form-row{margin-bottom:20px}}@media (min-width:768px){#tns-sponsorship #tns-sponsorship-content #tns-sponsorship-form .sponsorship-form fieldset .form-row.half-width:not(.full-width){width:calc(100% / 2 - 15px)}}@media (min-width:768px){#tns-sponsorship #tns-sponsorship-content #tns-sponsorship-form .sponsorship-form fieldset .form-row.half-width:not(.full-width):nth-child(even){margin-left:30px}}#tns-sponsorship #tns-sponsorship-content #tns-sponsorship-form .sponsorship-form fieldset .form-input{border:1px solid #01aff4;margin-bottom:0}#tns-sponsorship #tns-sponsorship-content #tns-sponsorship-form .sponsorship-form fieldset .form-textarea{border:1px solid #01aff4}#tns-sponsorship #tns-sponsorship-content #tns-sponsorship-form .sponsorship-form fieldset .form-checkbox{font-size:14px;display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex;-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-flow:wrap;-ms-flex-flow:wrap;flex-flow:wrap;color:#3c3c3c;cursor:pointer}#tns-sponsorship #tns-sponsorship-content #tns-sponsorship-form .sponsorship-form fieldset .form-checkbox input[type="checkbox"],#tns-sponsorship #tns-sponsorship-content #tns-sponsorship-form .sponsorship-form fieldset .form-checkbox input[type="radio"]{width:20px;height:20px;border:1px solid #01aff4;margin:3px 10px 0 0;cursor:pointer}#tns-sponsorship #tns-sponsorship-content #tns-sponsorship-form .sponsorship-form fieldset .form-checkbox span{font-size:14px;color:#3c3c3c;letter-spacing:.2px;font-weight:bold;width:calc(100% - 30px);display:inline-block}#tns-sponsorship #tns-sponsorship-content #tns-sponsorship-form .sponsorship-form fieldset .error{color:#ff3287;background:rgba(255,50,135,0.12);border:1px solid #ff3287}#tns-sponsorship #tns-sponsorship-content #tns-sponsorship-form .sponsorship-form fieldset .error::placeholder{color:#ff3287}#tns-sponsorship #tns-sponsorship-content #tns-sponsorship-form .sponsorship-form fieldset .sponsorship-submit-button{min-width:200
167px;color:#fff;text-transform:capitalize;background:#01aff4;border-radius:5px}#tns-sponsorship #tns-sponsorship-content #tns-sponsorship-form .sponsorship-form fieldset .sponsorship-submit-button:hover,#tns-sponsorship #tns-sponsorship-content #tns-sponsorship-form .sponsorship-form fieldset .sponsorship-submit-button:focus{background:#ff3287}#tns-sponsorship #tns-sponsorship-content #tns-sponsorship-form .sponsorship-form fieldset .sponsorship-submit-button:disabled{background:#58a2bf}#tns-sponsorship #tns-sponsorship-content #tns-sponsorship-sidebar{position:relative}@media (min-width:992px){#tns-sponsorship #tns-sponsorship-content #tns-sponsorship-sidebar{padding-left:20px}}@media (max-width:991.98px){#tns-sponsorship #tns-sponsorship-content #tns-sponsorship-sidebar{margin-top:25px}}#tns-sponsorship #tns-sponsorship-content #tns-sponsorship-sidebar .content{display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex;-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-flow:wrap;-ms-flex-flow:wrap;flex-flow:wrap;-webkit-box-align:start;-moz-box-align:start;-o-box-align:start;-ms-flex-align:start;-webkit-align-items:flex-start;align-items:flex-start}#tns-sponsorship #tns-sponsorship-content #tns-sponsorship-sidebar .content .media-content{width:80px;margin-right:15px;display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex;-webkit-box-align:center;-moz-box-align:center;-o-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;aspect-ratio:1/1;border-radius:40px;overflow:hidden}#tns-sponsorship #tns-sponsorship-content #tns-sponsorship-sidebar .content .media-content .default-image{aspect-ratio:1/1;width:100%;object-fit:cover}#tns-sponsorship #tns-sponsorship-content #tns-sponsorship-sidebar .content .detail-content{width:calc(100% - 95px)}#tns-sponsorship #tns-sponsorship-content #tns-sponsorship-sidebar .content .detail-content .title,#tns-sponsorship #tns-sponsorship-content #tns-sponsorship-sidebar .content .detail-content .department,#tns-sponsorship #tns-sponsorship-content #tns-sponsorship-sidebar .content .detail-content .designation,#tns-sponsorship #tns-sponsorship-content #tns-sponsorship-sidebar .content .detail-content .description{font-size:12px;color:#3c3c3c;width:100%;line-height:1.3;font-weight:normal;letter-spacing:0}#tns-sponsorship #tns-sponsorship-content #tns-sponsorship-sidebar .content .detail-content .title,#tns-sponsorship #tns-sponsorship-content #tns-sponsorship-sidebar .content .detail-content .description{font-weight:bold}#tns-sponsorship #tns-sponsorship-content #tns-sponsorship-sidebar .content .detail-content .social-share{width:100%;margin:5px 0;display:-webkit-inline-box;display:-moz-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-box;display:inline-flex;-webkit-box-align:start;-moz-box-align:start;-o-box-align:start;-ms-flex-align:start;-webkit-align-items:flex-start;align-items:flex-start;-webkit-box-pack:start;-moz-box-pack:start;-o-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}#tns-sponsorship #tns-sponsorship-content #tns-sponsorship-sidebar .content .detail-content .social-share .link{width:30px;height:30px;display:-webkit-inline-box;display:-moz-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-box;display:inline-flex;-webkit-box-align:center;-moz-box-align:center;-o-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}#tns-sponsorship #tns-sponsorship-content #tns-sponsorship-sidebar .content .detail-content .social-share .link svg{width:19px}#tns-sponsorship #tns-sponsorship-content #tns-sponsorship-sidebar .content .detail-content .social-share .link svg.stroke{fill:none;stroke:#3c3c3c}#tns-sponsorship #tns-sponsorship-content #tns-sponsorship-sidebar .content .detail-content .social-share .link svg.fill{stroke:none;fill:#3c3c3c}#tns-sponsorship #tns-sponsorship-content #tns-sponsorship-sidebar .content .detail-content .social-share .link:hover .stroke{stroke:#01aff4}#tns-sponsorship #tns-sponsorship-content #tns-sponsorship-sidebar .content .detail-content .social-share .link:hover .fill{fill:#01aff4}#tns-sponsorship #tns-sponsorship-case-studies{position:relative;padding-top:40px;padding-bottom:0}
167#tns-sponsorship #tns-sponsorship-case-studies .tns-sponsorship-case-study-swiper{margin:0 -15px}#tns-sponsorship #tns-sponsorship-case-studies .tns-sponsorship-case-study-swiper .swiper-slide{padding:0 15px}#tns-sponsorship #tns-sponsorship-case-studies .content-column{min-height:unset}#tns-sponsorship #tns-sponsorship-case-studies .case-study-card{display:inline-block;width:100%;text-decoration:none}#tns-sponsorship #tns-sponsorship-case-studies .case-study-card:hover .case-study-cta{color:#ff3287}#tns-sponsorship #tns-sponsorship-case-studies .case-study-card:hover .case-study-cta svg{fill:#ff3287}#tns-sponsorship #tns-sponsorship-case-studies .case-study-heading{font-size:17px;font-weight:normal;line-height:1.35;text-transform:uppercase;width:100%;color:#01aff4;text-align:center;display:inline-block;letter-spacing:.5px;display:none}#tns-sponsorship #tns-sponsorship-case-studies .case-study-logo{position:relative;display:block;width:100%;height:150px;background:#eaeff3;margin-bottom:10px}#tns-sponsorship #tns-sponsorship-case-studies .case-study-logo img{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-moz-transform:translate(-50%,-50%);-o-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);max-width:75%}#tns-sponsorship #tns-sponsorship-case-studies .case-study-testimonial{width:100%;color:#3c3c3c;font-size:15px;line-height:1.33;text-align:left;padding-right:10px;margin-bottom:15px}#tns-sponsorship #tns-sponsorship-case-studies .case-study-testimonial-author,#tns-sponsorship #tns-sponsorship-case-studies .case-study-testimonial-organization{display:block;color:#0e1013;font-size:14px;text-align:left}#tns-sponsorship #tns-sponsorship-case-studies .case-study-testimonial-author{font-weight:600}#tns-sponsorship #tns-sponsorship-case-studies .case-study-testimonial-organization{margin-bottom:20px}#tns-sponsorship #tns-sponsorship-case-studies .case-study-cta{font-size:13px;color:#01aff4}#tns-sponsorship #tns-sponsorship-case-studies .case-study-cta svg{height:9px;fill:#01aff4;vertical-align:baseline}#tns-sponsorship #tns-sponsorship-disclaimer{position:relative}#tns-sponsorship #tns-sponsorship-disclaimer .content-column{min-height:unset;border-top:1px solid #a5a9b0}#tns-sponsorship #tns-sponsorship-disclaimer .content-column .description{font-size:9px;color:#3c3c3c;width:100%;display:inline-block;line-height:1.3;letter-spacing:0;padding-top:20px}#tns-sponsorship-case-study{position:relative;padding:70px 0 70px 0}@media (max-width:1023px){#tns-sponsorship-case-study{padding:50px 0 50px 0}}#tns-sponsorship-case-study .content-column{max-width:630px}#tns-sponsorship-case-study .content-column h1{margin-bottom:30px}#tns-sponsorship-case-study .content-column img{display:block;width:100%;height:auto}#tns-tag .some-class-here{position:relative}
167#tns-videos .some-class-here{position:relative}#tns-author{position:relative;padding-top:50px;padding-bottom:50px}@media (max-width:575.98px){#tns-author{padding-top:30px;padding-bottom:30px}}#tns-author #tns-author-profile{position:relative;padding-bottom:50px}@media (max-width:767.98px){#tns-author #tns-author-profile{padding-bottom:40px}}@media (max-width:575.98px){#tns-author #tns-author-profile{padding-bottom:10px}}#tns-author #tns-author-profile .row{-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-flow:wrap;-ms-flex-flow:wrap;flex-flow:wrap}#tns-author #tns-author-profile .row .author-image-column{padding-right:15px}@media (max-width:767.98px){#tns-author #tns-author-profile .row .author-image-column{min-width:100%;max-width:100%;padding-right:0;margin-bottom:20px}}#tns-author #tns-author-profile .row .author-image-column .author-media .author-image{margin-bottom:30px}#tns-author #tns-author-profile .row .author-image-column .author-media .author-profile-image{display:block;width:100%;height:auto}#tns-author #tns-author-profile .row .author-bio-column{padding-left:15px;padding-right:15px}@media (max-width:767.98px){#tns-author #tns-author-profile .row .author-bio-column{padding-left:0;min-width:100%;max-width:100%}}#tns-author #tns-author-profile .row .author-bio-column.no-profile-photo{padding-left:0}#tns-author #tns-author-profile .row .author-bio-column .author-title{margin-top:-6px;width:100%;color:#3c3c3c;font-size:24px;line-height:1.33;text-transform:capitalize;margin-bottom:7px}@media (max-width:767px){#tns-author #tns-author-profile .row .author-bio-column .author-title{font-size:36px}}#tns-author #tns-author-profile .row .author-bio-column .author-description{width:100%}#tns-author #tns-author-profile .row .author-social-column{padding-top:30px;padding-left:15px}@media (max-width:767.98px){#tns-author #tns-author-profile .row .author-social-column{min-width:100%;max-width:100%;padding-top:0;padding-left:0;padding-bottom:30px}}#tns-author #tns-author-profile .row .author-social-column .social-share{display:-webkit-inline-box;display:-moz-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-box;display:inline-flex;-webkit-box-align:start;-moz-box-align:start;-o-box-align:start;-ms-flex-align:start;-webkit-align-items:flex-start;align-items:flex-start;-webkit-box-pack:start;-moz-box-pack:start;-o-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;width:100%}#tns-author #tns-author-profile .row .author-social-column .social-share .social-icon{display:-webkit-inline-box;display:-moz-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-box;display:inline-flex;width:30px;height:30px;margin-right:5px}#tns-author #tns-author-profile .row .author-social-column .social-share .social-icon svg{width:19px;height:auto}#tns-author #tns-author-profile .row .author-social-column .social-share .social-icon svg.stroke{fill:none;stroke:#3c3c3c}#tns-author #tns-author-profile .row .author-social-column .social-share .social-icon svg.fill{stroke:none;fill:#3c3c3c}#tns-author #tns-author-profile .row .author-social-column .social-share .social-icon:hover .stroke{stroke:#01aff4}#tns-author #tns-author-profile .row .author-social-column .social-share .social-icon:hover .fill{fill:#01aff4}#tns-author #tns-author-profile .row .author-social-column .social-share .social-icon-twitter svg{margin-top:-1px;width:17px}#tns-author #tns-author-profile .row .author-social-column .social-share .social-icon-linkedin{margin-top:-1px}#tns-author #tns-author-profile .row .author-social-column .social-share .social-icon-linkedin svg{width:16px;height:auto}#tns-author #tns-author-stories{position:relative;padding-bottom:50px}#tns-author #tns-author-stories .content-column{min-height:unset;padding:0}#tns-author #tns-author-stories .content-column .author-stories-wrap{display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex;-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-flow:wrap;-ms-flex-flow:wrap;flex-flow:wrap;margin:0 -15px;padding:0 15px}#tns-author #tns-author-stories .content-column .story-wrap{width:calc(100% / 4);display:-webkit-inline-box;display:-moz-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-box;display:inline-flex}@media (max-width:991.98px){#tns-author #tns-author-stories .content-column .story-wrap{width:calc(100% / 2)}}@media (max-width:767.98px){#tns-author #tns-author-stories .content-column .story-wrap{border-bottom:1px solid #c2c2c2}#tns-author #tns-author-stories .content-column .story-wrap:last-child{border:none}}@media (max-width:575.98px){#tns-author #tns-author-stories .content-column .story-wrap{width:100%}}#tns-author #tns-author-stories .content-column .story-wrap .story-post-block{display:block;-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-flow:wrap;-ms-flex-flow:wrap;flex-flow:wrap;position:relative;-webkit-box-align:start;-moz-box-align:start;-o-box-align:start;-ms-flex-align:start;-webkit-align-items:flex-start;align-items:flex-start;padding:0 15px;margin:15px 0;cursor:pointer;width:100%}@media (max-width:767.98px){#tns-author #tns-author-stories .content-column .story-wrap .story-post-block{padding:0 10px}}@media (max-width:575.98px){#tns-author #tns-author-stories .content-column .story-wrap .story-post-block{padding:7px 0;margin:0}}#tns-author #tns-author-stories .content-column .story-wrap .story-post-block .content{text-decoration:none;position:relative;display:-webkit-inline-box;display:-moz-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-box;display:inline-flex;-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-flow:wrap;-ms-flex-flow:wrap;flex-flow:wrap;width:100%}#tns-author #tns-author-stories .content-column .story-wrap .story-post-block .content:hover .post-title{color:#01aff4;-webkit-transition:color 99ms;-moz-transition:color 99ms;-o-transition:color 99ms;-ms-transition:color 99ms;transition:color 99ms}#tns-author #tns-author-stories .content-column .story-wrap .story-post-block .block-media{display:inline-block;width:100%;aspect-ratio:1.86/1}@media (max-width:575.98px){#tns-author #tns-author-stories .content-column .story-wrap .story-post-block .block-media{width:76px;aspect-ratio:1/1}}#tns-author #tns-author-stories .content-column .story-wrap .story-post-block .block-media .thumbnail-image{display:block;width:100%;max-width:100%;aspect-ratio:1.86/1;object-fit:cover;object-position:top;margin-bottom:12px}@media (max-width:575.98px){#tns-author #tns-author-stories .content-column .story-wrap .story-post-block .block-media .thumbnail-image{width:100px;aspect-ratio:1/1}}#tns-author #tns-author-stories .content-column .story-wrap .story-post-block .block-content{width:100%}@media (max-width:575.98px){#tns-author #tns-author-stories .content-column .story-wrap .story-post-block .block-content{width:calc(100% - 76px);padding-left:12px}}#tns-author #tns-author-stories .content-column .story-wrap:nth-child(4n+1) .story-post-block{padding-left:0}@media (min-width:992px){#tns-author #tns-author-stories .content-column .story-wrap:nth-child(4n) .story-post-block{padding-right:0;border-right:0}}@media (max-width:991.98px){#tns-author #tns-author-stories .content-column .story-wrap:nth-child(2n) .story-post-block{padding-right:0;border-right:0}}#tns-author #tns-author-stories .load-more-stories-link{text-decoration:none}#tns-author #tns-author-stories .load-more-stories-link svg{width:12px;vertical-align:middle;fill:#ff3287}#tns-author #tns-author-stories .load-more-stories-link:hover svg{fill:#01aff4}@media (max-width:767.98px){#tns-author #tns-author-stories .load-more-stories-link{font-size:14px}}#tns-author #tns-author-pagination{position:relative;text-align:center}#tns-author #tns-author-pagination .navigation.pagination .screen-reader-text{display:none}#tns-sitemap{padding:50px 0 50px 0}#tns-sitemap .content-column{max-width:900px}#tns-sitemap .heading{font-size:36px;font-weight:900;margin-bottom:20px}#tns-sitemap .sitemap-row{-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-bottom:50px}#tns-sitemap .sitemap-row .sitemap-section{padding-right:20px;margin-bottom:30px}#tns-sitemap .sitemap-row .sitemap-section a{display:block}#tns-sitemap #tns-sitemap-chrono{position:relative}#tns-sitemap #tns-sitemap-chrono .row{-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}@media (max-width:767px){#tns-sitemap #tns-sitemap-chrono .col-25{min-width:100%;max-width:100%}}#tns-sitemap #tns-sitemap-month{position:relative}#tns-sitemap #tns-sitemap-topics{position:relative}#tns-sitemap #tns-sitemap-topics .row{-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}@media (max-width:767px){#tns-sitemap #tns-sitemap-topics .col-33{min-width:100%;max-width:100%}}#tns-sitemap #tns-sitemap-index{position:relative}#tns-sitemap #tns-sitemap-index .row{-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}@media (max-width:767px){#tns-sitemap #tns-sitemap-index .col-33{min-width:100%;max-width:100%}}.tns-psa{width:100%}.tns-psa .psa-block{position:relative;display:block;width:100%;max-width:1199px;min-height:60px;margin:0 auto 30px auto;padding:20px 20px 20px 20px;color:#515151;font-size:14px;line-height:1.33;background:#f6f8fa;border:1px solid #8da6c0;border:1px solid #c2cfdd;cursor:pointer}@media (max-width:767px){.tns-psa .psa-block{padding:20px 20px 20px 20px}}.tns-psa .psa-block:hover .psa-cta{color:#ff3287}.tns-psa .psa-block:hover .psa-cta svg{color:#ff3287}
167.tns-psa .psa-block:hover .psa-cta svg path{fill:#ff3287}.tns-psa .psa-block .icon-col{max-width:75px;min-width:75px;padding-right:15px}.tns-psa .psa-block .icon-col svg{width:100%;height:auto}.tns-psa .psa-block .copy-col{min-width:auto;max-width:auto}.tns-psa .psa-block .tns-psa-hide{position:absolute;top:5px;right:5px;cursor:pointer;z-index:2;opacity:.5;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";filter:alpha(opacity=50)}.tns-psa .psa-block .tns-psa-hide svg{height:10px}.tns-psa .psa-block .tns-psa-hide svg path{fill:#8da6c0}.tns-psa .psa-block .tns-psa-hide:hover{color:#ff3287}.tns-psa .psa-block .tns-psa-hide:hover svg path{fill:#ff3287}.tns-psa .psa-block .section-heading{padding-top:0;border-top:none;color:#8da6c0;margin-bottom:5px}.tns-psa .psa-block .psa-body{position:relative;max-width:350px;margin-bottom:10px}.tns-psa .psa-block .psa-cta{color:#515151;font-size:12px}.tns-psa .psa-block .psa-cta svg{margin-left:5px;color:#515151;height:8px;width:auto}.tns-psa .psa-block .psa-cta svg path{fill:#515151}#tns-post .tns-psa{margin-bottom:33px}#tns-key-concepts .content-column{margin-top:50px;margin-bottom:50px}@media (max-width:767px){#tns-key-concepts .content-column{margin-top:30px;margin-bottom:30px}}#tns-key-concepts #tns-key-concepts-heading{position:relative;margin-bottom:50px}@media (max-width:767px){#tns-key-concepts #tns-key-concepts-heading{margin-bottom:30px}}#tns-key-concepts #tns-key-concepts-heading .description{max-width:45%}#tns-key-concepts #tns-key-concepts-frame{position:relative;display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex}#tns-key-concepts #tns-key-concepts-frame #tns-key-concepts-frame-nav{position:sticky;top:110px;padding-right:40px}#tns-key-concepts #tns-key-concepts-frame #tns-key-concepts-frame-nav .heading-text{opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0)}#tns-key-concepts #tns-key-concepts-frame #tns-key-concepts-frame-nav .key-concepts-nav-option{display:block;color:#000}#tns-key-concepts #tns-key-concepts-frame #tns-key-concepts-frame-nav .key-concepts-nav-option:hover{color:#ff3287}#tns-key-concepts #tns-key-concepts-frame #tns-key-concepts-frame-nav .key-concepts-nav-option.active{color:#ff3287}#tns-key-concepts #tns-key-concepts-frame #tns-key-concepts-frame-content{position:relative}#tns-key-concepts #tns-key-concepts-frame #tns-key-concepts-frame-content .key-concepts-content-block{margin-bottom:40px}#tns-key-concepts #tns-key-concepts-frame #tns-key-concepts-frame-content .key-concepts-story-card{margin-top:10px;padding-bottom:10px;border-bottom:1px solid #c2c2c2}#tns-key-concepts #tns-key-concepts-frame #tns-key-concepts-frame-content .key-concepts-story-card:first-child{margin-top:0}#tns-key-concepts #tns-key-concepts-frame #tns-key-concepts-frame-content .key-concepts-story-card:last-child{border-bottom:none}#tns-key-concepts #tns-key-concepts-frame #tns-key-concepts-frame-content .key-concepts-story-card .col-thumb{min-width:100px;max-width:100px}#tns-key-concepts #tns-key-concepts-frame #tns-key-concepts-frame-content .key-concepts-story-card .col-thumb .thumb{width:100px;height:50px;background:#f6f8fa}#tns-key-concepts #tns-key-concepts-frame #tns-key-concepts-frame-content .key-concepts-story-card .col-headline .headline{padding-left:10px;font-size:16px;font-weight:500}#tns-key-concepts #tns-key-concepts-frame #tns-key-concepts-frame-content #tns-key-concepts-frame-content-block-trending-stories{position:relative}#tns-key-concepts #tns-key-concepts-frame #tns-key-concepts-frame-content #tns-key-concepts-frame-content-block-essential-reading{position:relative}#tns-key-concepts #tns-key-concepts-frame #tns-key-concepts-frame-content #tns-key-concepts-frame-content-block-essential-reading .key-concepts-essential-reading-link{display:block;padding-bottom:10px;margin-bottom:20px;border-bottom:1px solid #c2c2c2}#tns-key-concepts #tns-key-concepts-frame #tns-key-concepts-frame-content #tns-key-concepts-frame-content-block-essential-reading .key-concepts-essential-reading-link:last-child{border-bottom:none}#tns-key-concepts #tns-key-concepts-frame #tns-key-concepts-frame-content #tns-key-concepts-frame-content-block-essential-reading .key-concepts-essential-reading-link:hover .headline{color:#01aff4}#tns-key-concepts #tns-key-concepts-frame #tns-key-concepts-frame-content #tns-key-concepts-frame-content-block-essential-reading .key-concepts-essential-reading-link .col-thumb img{display:block;width:100%;height:auto}#tns-key-concepts #tns-key-concepts-frame #tns-key-concepts-frame-content #tns-key-concepts-frame-content-block-essential-reading .key-concepts-essential-reading-link .col-headline{color:#515151;padding-left:15px}#tns-key-concepts #tns-key-concepts-frame #tns-key-concepts-frame-content #tns-key-concepts-frame-content-block-essential-reading .key-concepts-essential-reading-link .col-headline .headline{padding:0;font-size:18px;line-height:1.33}#tns-key-concepts #tns-key-concepts-frame #tns-key-concepts-frame-content #tns-key-concepts-frame-content-block-essential-reading .key-concepts-essential-reading-link .col-headline .byline{color:#a5a9b0;font-size:12px;margin-top:-2px;margin-bottom:3px}#tns-key-concepts #tns-key-concepts-frame #tns-key-concepts-frame-content #tns-key-concepts-frame-content-block-essential-reading .key-concepts-essential-reading-link .col-headline .excerpt{color:#515151;font-size:14px;font-weight:600;line-height:1.27;opacity:.75;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=75)";filter:alpha(opacity=75)}#tns-key-concepts #tns-key-concepts-frame #tns-key-concepts-frame-content #tns-key-concepts-frame-content-block-origins{position:relative}#tns-key-concepts #tns-key-concepts-frame #tns-key-concepts-frame-content #tns-key-concepts-frame-content-block-overview{position:relative}#tns-key-concepts #tns-key-concepts-frame #tns-key-concepts-frame-content #tns-key-concepts-frame-content-block-getting-started{position:relative}#tns-key-concepts #tns-key-concepts-frame #tns-key-concepts-frame-content #tns-key-concepts-frame-content-block-tutorials{position:relative}#tns-key-concepts #tns-key-concepts-frame #tns-key-concepts-frame-sidebar{position:sticky;top:110px;padding-left:40px}#tns-key-concepts #tns-key-concepts-frame #tns-key-concepts-frame-sidebar #tns-key-concepts-frame-sidebar-sponsor-logo{position:relative;margin-bottom:30px}#tns-key-concepts #tns-key-concepts-frame #tns-key-concepts-frame-sidebar #tns-key-concepts-frame-sidebar-sponsor-logo .sponsor-logo{display:block}#tns-key-concepts #tns-key-concepts-frame #tns-key-concepts-frame-sidebar #tns-key-concepts-frame-sidebar-sponsor-logo .sponsor-logo:hover .copy{color:#ff3287}#tns-key-concepts #tns-key-concepts-frame #tns-key-concepts-frame-sidebar #tns-key-concepts-frame-sidebar-sponsor-logo .sponsor-logo:hover .copy svg path{f
167ill:#ff3287}#tns-key-concepts #tns-key-concepts-frame #tns-key-concepts-frame-sidebar #tns-key-concepts-frame-sidebar-sponsor-logo .sponsor-logo .logo-frame{width:100%;max-height:120px;display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex;-webkit-box-align:center;-moz-box-align:center;-o-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;padding:10px;background:#eaeff3;margin-bottom:10px}#tns-key-concepts #tns-key-concepts-frame #tns-key-concepts-frame-sidebar #tns-key-concepts-frame-sidebar-sponsor-logo .sponsor-logo .logo-frame .logo-img{aspect-ratio:1.86/1;object-fit:contain;max-width:80%;max-height:70%}#tns-key-concepts #tns-key-concepts-frame #tns-key-concepts-frame-sidebar #tns-key-concepts-frame-sidebar-sponsor-logo .sponsor-logo .copy{color:#515151;font-size:14px;line-height:1.33}@media (max-width:767px){#tns-key-concepts #tns-key-concepts-frame #tns-key-concepts-frame-sidebar #tns-key-concepts-frame-sidebar-sponsor-logo .sponsor-logo .copy{font-size:17px}}#tns-key-concepts #tns-key-concepts-frame #tns-key-concepts-frame-sidebar #tns-key-concepts-frame-sidebar-sponsor-logo .sponsor-logo .copy svg{height:8px;vertical-align:baseline}@media (max-width:767px){#tns-key-concepts #tns-key-concepts-frame #tns-key-concepts-frame-sidebar #tns-key-concepts-frame-sidebar-sponsor-logo .sponsor-logo .copy svg{height:10px}}#tns-key-concepts #tns-key-concepts-frame #tns-key-concepts-frame-sidebar #tns-key-concepts-frame-sidebar-sponsor-logo .sponsor-logo .copy svg path{f
167ill:#515151}#tns-key-concepts #tns-key-concepts-frame #tns-key-concepts-frame-sidebar #tns-key-concepts-frame-sidebar-share{position:relative;margin-bottom:30px}#tns-key-concepts #tns-key-concepts-frame #tns-key-concepts-frame-sidebar #tns-key-concepts-frame-sidebar-share .section-heading{margin-bottom:10px}#tns-key-concepts #tns-key-concepts-frame #tns-key-concepts-frame-sidebar #tns-key-concepts-frame-sidebar-trending-stories{position:relative}#tns-key-concepts #tns-key-concepts-frame #tns-key-concepts-frame-sidebar #tns-key-concepts-frame-sidebar-trending-stories .stories a{color:#3c3c3c;font-size:14px;font-weight:600;line-height:1.27}#tns-key-concepts #tns-key-concepts-frame #tns-key-concepts-frame-sidebar #tns-key-concepts-frame-sidebar-trending-stories .stories a:hover{color:#01aff4}#tns-key-concepts #tns-key-concepts-frame #tns-key-concepts-frame-sidebar #tns-key-concepts-frame-sidebar-trending-stories .stories ol{margin-left:27px}#tns-key-concepts #tns-key-concepts-frame #tns-key-concepts-frame-sidebar #tns-key-concepts-frame-sidebar-trending-stories .stories ol li{color:#3c3c3c;font-size:14px;font-weight:600;line-height:1.27}#tns-search{display:block}#tns-search .content-column-search{max-width:900px}#tns-search .section-heading{border-top:0}#tns-search .search-item{display:block;margin-bottom:30px}#tns-search .search-item .search-item-title{font-size:17px;font-weight:600;color:#01aff4}#tns-search .search-item .search-item-excerpt{font-size:15px;font-weight:500;color:#3c3c3c}#tns-search .search-item .search-item-byline{font-size:14px;font-weight:500;color:#a5a9b0}#tns-search .search-item:hover .search-item-title{color:#ff3287}#tns-search #tns-search-form{display:block;border-bottom:1px solid #a5a9b0}#tns-search #tns-search-form .search-form{padding-top:30px}#tns-search #tns-search-form .search-form .search-input{display:block;width:100%;height:40px;color:#000;line-height:40px;padding-left:15px;font-size:17px;font-weight:500;border:1px solid #515151;border-right:none}#tns-search #tns-search-form .search-form .search-input:focus{border:1px solid #01aff4;border-right:none}#tns-search #tns-search-form .search-form .search-submit{height:40px;color:#000;font-size:15px;text-transform:uppercase;border-radius:0;border:1px solid #515151;background:transparent}#tns-search #tns-search-form .search-form .search-submit:hover{color:#ff3287}#tns-search #tns-search-overview{height:0;overflow:hidden;background:#f6f8fa}#tns-search #tns-search-overview .content-column-search{padding-top:30px;padding-bottom:40px}#tns-search #tns-search-overview .content-column-search .search-overview-loading-layout{display:none}#tns-search #tns-search-overview .content-column-search .search-overview-loading-layout .search-overview-loading{width:100%;text-align:center}#tns-search #tns-search-overview .content-column-search .search-overview-loading-layout .search-overview-loading .button-spinner{border:2px solid rgba(1,175,244,0.33);border-top:2px solid #01aff4}#tns-search #tns-search-overview .content-column-search .search-overview-loading-layout .search-overview-loading .stackie-loading{font-size:14px;font-weight:500;color:#a5a9b0}@media (max-width:600px){#tns-search #tns-search-overview .content-column-search .search-overview-layout{-webkit-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}}@media (max-width:600px){#tns-search #tns-search-overview .content-column-search .search-overview-layout .search-overview-answer-col{min-width:100%;max-width:100%}}#tns-search #tns-search-overview .content-column-search .search-overview-layout .search-overview-answer-col .search-overview{font-size:17px;font-weight:500;padding-right:30px;min-height:90px}@media (max-width:600px){#tns-search #tns-search-overview .content-column-search .search-overview-layout .search-overview-answer-col .search-overview p{font-size:16px;padding-right:0}}@media (max-width:600px){#tns-search #tns-search-overview .content-column-search .search-overview-layout .search-overview-references-col{min-width:100%;max-width:100%}}#tns-search #tns-search-overview .content-column-search .search-overview-layout .search-overview-references-col .section-heading-references{padding-top:0;font-size:12px;opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0)}#tns-search #tns-search-overview .content-column-search .search-overview-layout .search-overview-references-col .search-overview-references .search-overview-reference-item{display:block;color:#01aff4;font-size:14px;font-weight:700;line-height:1.33;margin-bottom:20px}#tns-search #tns-search-overview .content-column-search .search-overview-layout .search-overview-references-col .search-overview-references .search-overview-reference-item:hover{color:#ff3287}#tns-search #tns-search-overview .search-overview-more{position:absolute;
167left:0;right:0;bottom:0;width:100%;height:50px;line-height:100%;text-align:center;background:#f6f8fa;background:-webkit-linear-gradient(270deg, rgba(246,248,250,0) 0%, #f6f8fa 100%);background:-moz-linear-gradient(270deg, rgba(246,248,250,0) 0%, #f6f8fa 100%);background:-o-linear-gradient(270deg, rgba(246,248,250,0) 0%, #f6f8fa 100%);background:-ms-linear-gradient(270deg, rgba(246,248,250,0) 0%, #f6f8fa 100%);background:linear-gradient(180deg, rgba(246,248,250,0) 0%, #f6f8fa 100%);z-index:2}#tns-search #tns-search-overview .search-overview-more .search-overview-show-more{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-moz-transform:translate(-50%,-50%);-o-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);padding-left:20px;padding-right:20px;height:30px;line-height:30px;border-radius:15px;color:#fff;font-size:12px;font-weight:700;background:#01aff4;cursor:pointer;display:none}#tns-search #tns-search-overview .search-overview-more .search-overview-show-more:hover{background:#ff3287}#tns-search .search-disclaimer{padding-top:30px;padding-bottom:30px;color:#a5a9b0;font-size:11px;font-weight:400;line-height:120%;background:#f6f8fa;display:none}#tns-search #tns-search-results{display:none;padding-top:30px;padding-bottom:100px}@media (max-width:600px){#tns-search #tns-search-results .search-results-layout{-webkit-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}}@media (max-width:600px){#tns-search #tns-search-results .search-results-layout .search-results-col{min-width:100%;max-width:100%}}@media (max-width:600px){#tns-search #tns-search-results .search-results-layout .search-sidebar-col{min-width:100%;max-width:100%}}#tns-search #tns-search-results .search-results-layout .search-results{padding-right:0}#tns-search #tns-search-results .search-results-layout .search-results .search-item{opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0)}#tns-search #tns-search-results .search-results-layout .search-results .search-item .search-byline{color:#515151}#tns-search #tns-search-results .search-results-layout .search-results-more .search-results-more-button{display:none;font-size:14px;font-weight:500;text-transform:uppercase;background:#ff3287}#tns-search #tns-search-results .search-results-layout .search-results-more .search-results-more-button:hover{background:#01aff4}#tns-search #tns-search-results .search-results-layout .search-results-more .search-results-more-button:disabled{background:#58a2bf !important}#tns-search #tns-search-trending{display:block;margin-top:30px;padding-bottom:100px}#tns-search #tns-search-trending .search-trending{padding-right:30px}.tns-newsletter-shortcode{padding:34px 0 32px;border-top:3px solid #ff3287;border-bottom:3px solid #ff3287;margin:50px 0 0}.tns-newsletter-shortcode .title{width:100%;max-width:990px;color:#ff3287;font-size:46px;font-weight:600;text-align:center;line-height:1.33;margin:0 auto 50px}@media (max-width:599px){.tns-newsletter-shortcode .title{font-size:36px;max-width:400px;margin:0 auto 60px}}@media (max-width:499px){.tns-newsletter-shortcode .title{font-size:27px}}.tns-newsletter-shortcode .title span{text-transform:uppercase;display:block;font-size:18px;letter-spacing:1.8px;font-weight:600;margin:0 0 25px}@media (max-width:767.98px){.tns-newsletter-shortcode .title span{margin:0 0 20px}}#tns-events-sidebar .tns-newsletter-shortcode{margin-top:0;border-top:3px solid #01aff4;border-bottom:3px solid #01aff4}#tns-events-sidebar .tns-newsletter-shortcode .title{font-size:30px;margin-bottom:60px;color:#01aff4}#tns-events-sidebar .tns-newsletter-shortcode .title span{font-size:14px;color:#01aff4}#tns-events-sidebar .tns-newsletter-shortcode .newsletter-form{padding:0}#tns-events-sidebar .tns-newsletter-shortcode .newsletter-form .tns-newsletter-form-email{border-bottom-color:#01aff4}#tns-events-sidebar .tns-newsletter-shortcode .newsletter-form .tns-newsletter-form-submit{background:#01aff4}#tns-events-sidebar .tns-newsletter-shortcode .newsletter-form .tns-newsletter-form-submit:hover{background:#ff3287}.newsletter-form{position:relative;width:100%}.newsletter-form .newsletter-form-inputs{width:100%;max-width:450px;margin:0 auto 0 auto}.newsletter-form .newsletter-form-inputs .tns-newsletter-form-email{width:100%;font-size:16px;letter-spacing:0;text-transform:none}.newsletter-form .newsletter-form-inputs .tns-newsletter-form-submit{font-size:16px;letter-spacing:1px;margin:20px auto 20px}.newsletter-form .newsletter-form-privacy{display:block;max-width:450px;color:#a5a9b0;font-size:10px;font-weight:400;line-height:1.2;margin:20px auto 9px auto}.newsletter-form .tns-newsletter-form-email.error{color:#ff3287;background:rgba(255,50,135,0.12)}.newsletter-form .tns-newsletter-form-email.error::placeholder{color:#ff3287}#shortcode-tns-streaming{position:relative;min-height:350px}#shortcode-tns-streaming .content{padding:45px 0}#shortcode-tns-streaming .content-column{min-height:unset}#shortcode-tns-streaming #shortcode-tns-streaming-header{position:relative}#shortcode-tns-streaming #shortcode-tns-streaming-header .content-column{margin:0 auto}#shortcode-tns-streaming #shortcode-tns-streaming-header .streaming-title{color:#fff;font-size:18px;font-weight:600;padding-bottom:26px}@media (max-width:1279px){#shortcode-tns-streaming #shortcode-tns-streaming-header .streaming-title{margin:0}}#shortcode-tns-streaming #shortcode-tns-streaming-content{position:relative}@media (max-width:767.98px){#shortcode-tns-streaming #shortcode-tns-streaming-content .content-column{padding:0 30px}}#shortcode-tns-streaming #shortcode-tns-streaming-content .swiper-slide{height:auto}#shortcode-tns-streaming #shortcode-tns-streaming-content .swiper-slide:not(.swiper-slide-active,#shortcode-tns-streaming #shortcode-tns-streaming-content .swiper-slide .swiper-slide-duplicate.swiper-slide-duplicate-active):before{position:absolute;content:'';width:1px;height:100%;background:transparent;left:0;top:0}#shortcode-tns-streaming #shortcode-tns-streaming-content .swiper-slide.swiper-slide-duplicate.swiper-slide-duplicate-active:before{opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0)}#shortcode-tns-streaming #shortcode-tns-streaming-content .streaming-card{position:relative;display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex;-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-flow:wrap;-ms-flex-flow:wrap;flex-flow:wrap;max-width:100%;min-width:100%;margin-left:auto;margin-right:auto;text-decoration:none}#shortcode-tns-streaming #shortcode-tns-streaming-content .streaming-card:hover{text-decoration:none}#shortcode-tns-streaming #shortcode-tns-streaming-content .streaming-card:hover .streaming-card-poster:before{border-color:#fff}#shortcode-tns-streaming #shortcode-tns-streaming-content .streaming-card-media{position:relative;width:100%;height:auto;display:inline-block;margin-bottom:20px}#shortcode-tns-streaming #shortcode-tns-streaming-content .streaming-card-media .live-badge{position:absolute;z-index:0;top:15px;right:12px;width:45px;height:45px;display:-webkit-inline-box;display:-moz-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-box;display:inline-flex;-webkit-box-align:center;-moz-box-align:center;-o-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-moz-box-pack:center;
167-o-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;background:#fff;border-radius:50%;color:#ff3287;font-size:12px;font-weight:normal;text-transform:uppercase}#shortcode-tns-streaming #shortcode-tns-streaming-content .streaming-card-media .play-btn{position:absolute;top:50%;left:50%;width:40px;height:40px;-webkit-transform:translate(-50%,-50%);-moz-transform:translate(-50%,-50%);-o-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);color:#fff;cursor:pointer;z-index:1;margin-top:-16px}#shortcode-tns-streaming #shortcode-tns-streaming-content .streaming-card-media .play-btn svg{width:100%;heigth:100%}#shortcode-tns-streaming #shortcode-tns-streaming-content .streaming-card-media .play-btn svg path{fill:#fff}#shortcode-tns-streaming #shortcode-tns-streaming-content .streaming-card-media .streaming-card-poster{width:100%;position:relative}#shortcode-tns-streaming #shortcode-tns-streaming-content .streaming-card-media .streaming-card-poster:before{position:absolute;content:'';left:0;top:0;width:calc(100% - 8px);height:calc(100% - 8px);border:4px solid transparent;z-index:1}#shortcode-tns-streaming #shortcode-tns-streaming-content .streaming-card-media .streaming-card-poster .thumbnail-image{width:100%;height:100%;aspect-ratio:16/9;object-fit:cover}#shortcode-tns-streaming #shortcode-tns-streaming-content .streaming-card-content{position:relative;width:100%;display:inline-block;vertical-align:middle}#shortcode-tns-streaming #shortcode-tns-streaming-content .streaming-card-content .card-title{color:#fff;font-size:18px;line-height:1.33}@media (max-width:1199.98px){#shortcode-tns-streaming #shortcode-tns-streaming-content .streaming-card-content .card-title{font-size:16px}}#shortcode-tns-streaming #shortcode-tns-streaming-content .tns-streaming-swiper-button-prev,#shortcode-tns-streaming #shortcode-tns-streaming-content .tns-streaming-swiper-button-next{position:absolute;top:20%;color:#fff;right:-50px;cursor:pointer;z-index:2;width:30px;height:30px;text-align:left}#shortcode-tns-streaming #shortcode-tns-streaming-content .tns-streaming-swiper-button-prev [class^="icon-"]:before,#shortcode-tns-streaming #shortcode-tns-streaming-content .tns-streaming-swiper-button-next [class^="icon-"]:before,#shortcode-tns-streaming #shortcode-tns-streaming-content .tns-streaming-swiper-button-prev [class*=" icon-"]:before,#shortcode-tns-streaming #shortcode-tns-streaming-content .tns-streaming-swiper-button-next [class*=" icon-"]:before{margin:0}@media (max-width:1279px){#shortcode-tns-streaming #shortcode-tns-streaming-content .tns-streaming-swiper-button-prev,#shortcode-tns-streaming #shortcode-tns-streaming-content .tns-streaming-swiper-button-next{display:none}}#shortcode-tns-streaming #shortcode-tns-streaming-content .tns-streaming-swiper-button-prev{right:auto;left:-60px;text-align:right}#shortcode-tns-streaming #shortcode-tns-streaming-content .tns-streaming-swiper-button-prev path{fill:#fff}@media (max-width:1279px){#shortcode-tns-streaming #shortcode-tns-streaming-content .tns-streaming-swiper-button-prev{left:0}}#shortcode-tns-streaming #shortcode-tns-streaming-content .tns-streaming-swiper-button-next path{fill:#fff}#shortcode-tns-streaming #shortcode-tns-streaming-content .swiper-pagination{bottom:0}#shortcode-tns-streaming #shortcode-tns-streaming-content .swiper-pagination span{background-color:#fff}#shortcode-tns-streaming #shortcode-tns-streaming-content .tns-streaming-swiper{padding-bottom:30px;width:100%}#shortcode-tns-events{position:relative;margin-top:40px;z-index:0}#shortcode-tns-events .content{padding:45px 0}#shortcode-tns-events .content-column{min-height:unset}#shortcode-tns-events #shortcode-tns-events-header{position:relative}#shortcode-tns-events #shortcode-tns-events-header .content-column{margin:0 auto}#shortcode-tns-events #shortcode-tns-events-header .events-title{color:#fff;font-size:18px;font-weight:600;padding-bottom:26px}#shortcode-tns-events #shortcode-tns-events-content{position:relative}#shortcode-tns-events #shortcode-tns-events-content .swiper-slide{height:auto}#shortcode-tns-events #shortcode-tns-events-content .swiper-slide:not(.swiper-slide-active):before{position:absolute;content:'';width:1px;height:100%;background:transparent;left:0;top:0}#shortcode-tns-events #shortcode-tns-events-content .swiper-slide.swiper-slide-next + .swiper-slide + .swiper-slide + .swiper-slide:before{opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0)}#shortcode-tns-events #shortcode-tns-events-content .events-card{max-width:100%;min-width:100%;position:relative;display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex;-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-flow:wrap;-ms-flex-flow:wrap;flex-flow:wrap;margin-left:auto;margin-right:auto;text-decoration:none}#shortcode-tns-events #shortcode-tns-events-content .events-card:hover{text-decoration:none}#shortcode-tns-events #shortcode-tns-events-content .events-card:hover .events-card-content .card-title{color:#fff}#shortcode-tns-events #shortcode-tns-events-content .events-card:hover .events-card-poster:before{border-color:#fff}#shortcode-tns-events #shortcode-tns-events-content .events-card-media{position:relative;width:100%;display:inline-block;vertical-align:middle;margin-bottom:12px}#shortcode-tns-events #shortcode-tns-events-content .events-card-media .live-badge{position:absolute;z-index:0;top:15px;right:12px;width:45px;height:45px;display:-webkit-inline-box;display:-moz-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-box;display:inline-flex;-webkit-box-align:center;-moz-box-align:center;-o-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-moz-box-pack:center;
167-o-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;background:#fff;border-radius:50%;color:#ff3287;font-size:12px;font-weight:normal;text-transform:uppercase}#shortcode-tns-events #shortcode-tns-events-content .events-card-media .play-btn{position:absolute;z-index:2;font-size:35px;color:#fff;background:transparent;border:0;padding:0;margin:0;width:40px;height:40px;margin:auto;left:0;right:0;top:0;bottom:0;cursor:pointer}#shortcode-tns-events #shortcode-tns-events-content .events-card-media .events-card-poster{position:relative;width:100%}#shortcode-tns-events #shortcode-tns-events-content .events-card-media .events-card-poster:before{position:absolute;content:'';left:0;top:0;width:calc(100% - 8px);height:calc(100% - 8px);border:4px solid transparent;z-index:1}#shortcode-tns-events #shortcode-tns-events-content .events-card-media .events-card-poster .default-image,#shortcode-tns-events #shortcode-tns-events-content .events-card-media .events-card-poster img{aspect-ratio:1/1;width:100%;object-fit:cover;height:100%}#shortcode-tns-events #shortcode-tns-events-content .events-card-content{position:relative;width:100%;display:inline-block;vertical-align:middle;display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex;-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-flow:wrap;-ms-flex-flow:wrap;flex-flow:wrap}#shortcode-tns-events #shortcode-tns-events-content .events-card-content .card-title{color:#fff;font-size:18px;line-height:1.33;-webkit-align-self:flex-end;align-self:flex-end;-ms-flex-item-align:end;margin-bottom:10px;width:100%}#shortcode-tns-events #shortcode-tns-events-content .events-card-content .event-meta{margin-bottom:10px;width:100%;line-height:80%}#shortcode-tns-events #shortcode-tns-events-content .events-card-content .event-meta .date,#shortcode-tns-events #shortcode-tns-events-content .events-card-content .event-meta .location{font-size:12px;color:#fff;font-weight:bold;text-transform:uppercase;width:100%;display:inline-block;line-height:1.35}#shortcode-tns-events #shortcode-tns-events-content .events-card-content .event-meta .location{font-weight:normal}#shortcode-tns-events #shortcode-tns-events-content .tns-events-swiper-button-prev,#shortcode-tns-events #shortcode-tns-events-content .tns-events-swiper-button-next{position:absolute;top:30%;font-size:30px;color:#fff;right:-60px;cursor:pointer;z-index:2;width:40px;height:32px;text-align:left}#shortcode-tns-events #shortcode-tns-events-content .tns-events-swiper-button-prev [class^="icon-"]:before,#shortcode-tns-events #shortcode-tns-events-content .tns-events-swiper-button-next [class^="icon-"]:before,#shortcode-tns-events #shortcode-tns-events-content .tns-events-swiper-button-prev [class*=" icon-"]:before,#shortcode-tns-events #shortcode-tns-events-content .tns-events-swiper-button-next [class*=" icon-"]:before{margin:0}@media (max-width:1279px){#shortcode-tns-events #shortcode-tns-events-content .tns-events-swiper-button-prev,#shortcode-tns-events #shortcode-tns-events-content .tns-events-swiper-button-next{display:none}}#shortcode-tns-events #shortcode-tns-events-content .tns-events-swiper-button-prev{right:auto;left:-60px;text-align:right}#shortcode-tns-events #shortcode-tns-events-content .tns-events-swiper-button-prev path{fill:#fff}@media (max-width:1279px){#shortcode-tns-events #shortcode-tns-events-content .tns-events-swiper-button-prev{left:0}}#shortcode-tns-events #shortcode-tns-events-content .tns-events-swiper-button-next path{fill:#fff}#shortcode-tns-events #shortcode-tns-events-content .swiper-pagination-events{bottom:0}#shortcode-tns-events #shortcode-tns-events-content .swiper-pagination-events span{background-color:#fff}#shortcode-tns-events #shortcode-tns-events-content .tns-events-swiper{padding-bottom:30px;width:100%}.tns-related-stories{padding-bottom:20px}.tns-related-stories .related-story-link{display:block;color:#515151;font-size:14px;font-weight:600;line-height:1.27;text-decoration:none;margin-bottom:20px}.tns-related-stories .related-story-link:hover{color:#01aff4}@media (max-width:767px){.tns-related-stories .related-story-link{font-size:17px}}.tns-trending-stories-block{padding-bottom:20px}.tns-trending-stories-block ol{padding-left:0;margin-left:23px}.tns-trending-stories-block ol li:nth-child(1)::marker{color:#fe3488}.tns-trending-stories-block ol li:nth-child(2)::marker{color:#ed4492}.tns-trending-stories-block ol li:nth-child(3)::marker{color:#d558a1}.tns-trending-stories-block ol li:nth-child(4)::marker{color:#c165ad}.tns-trending-stories-block ol li:nth-child(5)::marker{color:#ad72b9}.tns-trending-stories-block ol .trending-story-link{display:block;color:#515151;font-size:14px;font-weight:600;line-height:1.27;text-decoration:none;margin-bottom:20px}.tns-trending-stories-block ol .trending-story-link:hover{color:#01aff4}@media (max-width:767px){.tns-trending-stories-block ol .trending-story-link{font-size:17px}}.tns-trending-stories-block.sidebar,.tns-trending-stories-block.bottom{position:relative}.tns-trending-stories-block.sidebar .section-heading,.tns-trending-stories-block.bottom .
167section-heading{font-size:13px}.tns-trending-stories-block.sidebar .tns-trending-stories-list li::marker,.tns-trending-stories-block.bottom .tns-trending-stories-list li::marker{font-size:14px}.tns-trending-stories-block.inline,.tns-trending-stories-block.category-popover{padding:30px;padding-right:75px;background:#f6f8fa;margin-bottom:20px}@media (max-width:1023px){.tns-trending-stories-block.inline,.tns-trending-stories-block.category-popover{padding-right:50px}}.tns-trending-stories-block.inline .section-heading,.tns-trending-stories-block.category-popover .section-heading{color:#8da6c0;font-size:13px;font-weight:700;margin-bottom:20px;border:0}.tns-trending-stories-block.inline .tns-trending-stories-list,.tns-trending-stories-block.category-popover .tns-trending-stories-list{padding-bottom:0}.tns-trending-stories-block.inline .tns-trending-stories-list ol,.tns-trending-stories-block.category-popover .tns-trending-stories-list ol{margin-bottom:10px}.tns-trending-stories-block.inline .tns-trending-stories-list li::marker,.tns-trending-stories-block.category-popover .tns-trending-stories-list li::marker{color:#b4c5d6;font-size:15px}@media (max-width:767px){.tns-trending-stories-block.inline .tns-trending-stories-list li::marker,.tns-trending-stories-block.category-popover .tns-trending-stories-list li::marker{font-size:17px}}.tns-trending-stories-block.inline .tns-trending-stories-list li:nth-child(1)::marker,.tns-trending-stories-block.category-popover .tns-trending-stories-list li:nth-child(1)::marker{color:#fe3488}.tns-trending-stories-block.inline .tns-trending-stories-list li:nth-child(2)::marker,.tns-trending-stories-block.category-popover .tns-trending-stories-list li:nth-child(2)::marker{color:#ed4492}.tns-trending-stories-block.inline .tns-trending-stories-list li:nth-child(3)::marker,.tns-trending-stories-block.category-popover .tns-trending-stories-list li:nth-child(3)::marker{color:#d558a1}.tns-trending-stories-block.inline .tns-trending-stories-list li:nth-child(4)::marker,.tns-trending-stories-block.category-popover .tns-trending-stories-list li:nth-child(4)::marker{color:#c165ad}.tns-trending-stories-block.inline .tns-trending-stories-list li:nth-child(5)::marker,.tns-trending-stories-block.category-popover .tns-trending-stories-list li:nth-child(5)::marker{color:#ad72b9}.tns-trending-stories-block.inline .tns-trending-stories-list li a,.tns-trending-stories-block.category-popover .tns-trending-stories-list li a{color:#019ddb;font-size:15px;line-height:1.2;margin-bottom:15px}.tns-trending-stories-block.inline .tns-trending-stories-list li a:hover,.tns-trending-stories-block.category-popover .tns-trending-stories-list li a:hover{color:#ff3287}@media (max-width:767px){.tns-trending-stories-block.inline .tns-trending-stories-list li a,.tns-trending-stories-block.category-popover .tns-trending-stories-list li a{font-size:17px}}.tns-trending-stories-block.inline .tns-trending-stories-list li:last-child,.tns-trending-stories-block.category-popover .tns-trending-stories-list li:last-child{margin-bottom:0}.tns-trending-stories-block.inline .tns-trending-stories-list li:last-child a,.tns-trending-stories-block.category-popover .tns-trending-stories-list li:last-child a{margin-bottom:0}.tns-trending-stories-by-category{position:relative;width:100%;min-height:300px;padding:30px;padding-left:0;padding-right:0}.tns-trending-stories-by-category .heading{color:#3c3c3c;font-size:13px;font-weight:700;margin-bottom:20px}.tns-trending-stories-by-category .categories{padding-right:20px;overflow-y:hidden;overflow-x:auto}.tns-trending-stories-by-category .categories .category-stories{padding-right:20px}@media (max-width:767px){.tns-trending-stories-by-category .categories .category-stories{min-width:275px;max-width:275px}}.tns-trending-stories-by-category .categories .category-stories .tns-trending-stories-block .section-heading{border:0;color:#8da6c0;font-size:13px;font-weight:700}.tns-trending-stories-by-category .categories .category-stories .tns-trending-stories-list{padding-bottom:0}.tns-trending-stories-by-category .categories .category-stories .tns-trending-stories-list ol{margin-bottom:10px}.tns-trending-stories-by-category .categories .category-stories .tns-trending-stories-list li::marker{color:#b4c5d6;font-size:15px}@media (max-width:767px){.tns-trending-stories-by-category .categories .category-stories .tns-trending-stories-list li::marker{font-size:17px}}.tns-trending-stories-by-category .categories .category-stories .tns-trending-stories-list li a{color:#019ddb;font-size:15px;line-height:1.2;margin-bottom:15px}.tns-trending-stories-by-category .categories .category-stories .tns-trending-stories-list li a:hover{color:#ff3287}@media (max-width:767px){.tns-trending-stories-by-category .categories .category-stories .tns-trending-stories-list li a{font-size:17px}}.tns-trending-stories-by-category .categories .category-stories .tns-trending-stories-list li:last-child{margin-bottom:0}.tns-trending-stories-by-category .categories .category-stories .tns-trending-stories-list li:last-child a{margin-bottom:0}.tns-podcast-subscribe{margin-top:60px;margin-bottom:60px}@media (max-width:767px){.tns-podcast-subscribe{margin-top:30px;margin-bottom:30px}}.tns-podcast-subscribe .subscribe-title{font-size:17px;font-weight:500;text-align:center;margin-bottom:20px}@media (max-width:767px){.tns-podcast-subscribe .subscribe-title{font-size:16px}}@media (max-width:614px){.tns-podcast-subscribe .subscribe-title{font-size:15px}}@media (max-width:539px){.tns-podcast-subscribe .subscribe-title{font-size:13px}}.tns-podcast-subscribe .subscribe-links{width:100%;text-align:center;vertical-align:middle}
167.tns-podcast-subscribe .subscribe-links a{display:inline-block;margin-left:20px;margin-right:20px}@media (max-width:767px){.tns-podcast-subscribe .subscribe-links a{margin-left:15px;margin-right:15px}}@media (max-width:539px){.tns-podcast-subscribe .subscribe-links a{margin-left:10px;margin-right:10px}}.tns-podcast-subscribe .subscribe-links a img{max-height:30px}@media (max-width:767px){.tns-podcast-subscribe .subscribe-links a img{max-height:25px}}@media (max-width:539px){.tns-podcast-subscribe .subscribe-links a img{max-height:22px}}@media (max-width:399px){.tns-podcast-subscribe .subscribe-links a img{max-height:20px}}@media (max-width:599px){.tns-podcast-subscribe .subscribe-links .subscribe-link-simplecast{display:none}}.key-concept-block{position:relative}.key-concept-block .title{font-size:14px;font-weight:700;margin-bottom:10px;text-transform:uppercase}.key-concept-block a{display:block;color:#3c3c3c;font-size:15px;text-decoration:none;margin-bottom:16px}.key-concept-block a:hover{color:#01aff4}.tns-sponsor-note{display:none}.tns-sponsor-note.injected{display:block}.tns-sponsor-note{position:relative;padding:20px;padding-top:30px;padding-left:30px;padding-right:30px;margin-top:35px;margin-bottom:30px;background:#f6f8fa}@media (max-width:499px){.tns-sponsor-note{padding:30px}}.tns-sponsor-note .sponsor-note-content-wrapper{padding-right:12%}@media (max-width:767px){.tns-sponsor-note .sponsor-note-content-wrapper{font-size:15px}}.tns-sponsor-note .sponsor-note-content-wrapper svg{height:8px;vertical-align:baseline}@media (max-width:767px){.tns-sponsor-note .sponsor-note-content-wrapper svg{height:10px}}.tns-sponsor-note .sponsor-note-content-wrapper .sponsor-note-profile{position:relative;cursor:pointer}.tns-sponsor-note .sponsor-note-content-wrapper .sponsor-note-profile .section-heading{font-size:13px}.tns-sponsor-note .sponsor-note-content-wrapper .sponsor-note-profile .sponsor-note-logo{margin-bottom:20px}.tns-sponsor-note .sponsor-note-content-wrapper .sponsor-note-profile .sponsor-note-logo a{display:block}.tns-sponsor-note .sponsor-note-content-wrapper .sponsor-note-profile .sponsor-note-logo img{display:inline-block;width:auto;height:auto;max-height:35px;max-width:100%}.tns-sponsor-note .sponsor-note-content-wrapper .sponsor-note-profile .sponsor-note-content,.tns-sponsor-note .sponsor-note-content-wrapper .sponsor-note-profile .sponsor-note-cta{color:#515151;font-size:14px;line-height:1.33}@media (max-width:767px){.tns-sponsor-note .sponsor-note-content-wrapper .sponsor-note-profile .sponsor-note-content,.tns-sponsor-note .sponsor-note-content-wrapper .sponsor-note-profile .sponsor-note-cta{font-size:17px}}.tns-sponsor-note .sponsor-note-content-wrapper .sponsor-note-profile .sponsor-note-content{margin-bottom:10px}.tns-sponsor-note .sponsor-note-content-wrapper .sponsor-note-profile .sponsor-note-cta{font-size:12px}.tns-sponsor-note .sponsor-note-content-wrapper .sponsor-note-profile:hover .sponsor-note-cta{color:#ff3287}.tns-sponsor-note .sponsor-note-content-wrapper .sponsor-note-profile:hover .sponsor-note-cta svg path{f
167ill:#ff3287}.tns-sponsor-note .sponsor-note-content-wrapper .sponsor-note-rss{position:relative;margin-top:30px}.tns-sponsor-note .sponsor-note-content-wrapper .sponsor-note-rss .sponsor-note-rss-heading{color:#515151;font-size:11px;font-weight:700;margin-bottom:7px;text-transform:uppercase}@media (max-width:767px){.tns-sponsor-note .sponsor-note-content-wrapper .sponsor-note-rss .sponsor-note-rss-heading{font-size:12px}}.tns-sponsor-note .sponsor-note-content-wrapper .sponsor-note-rss .sponsor-note-rss-items{position:relative}.tns-sponsor-note .sponsor-note-content-wrapper .sponsor-note-rss .sponsor-note-rss-items .sponsor-rss-link{display:block;color:#019ddb !important;font-size:14px;font-weight:600;line-height:1.33;margin-bottom:12px}@media (max-width:767px){.tns-sponsor-note .sponsor-note-content-wrapper .sponsor-note-rss .sponsor-note-rss-items .sponsor-rss-link{font-size:17px}}.tns-sponsor-note .sponsor-note-content-wrapper .sponsor-note-rss .sponsor-note-rss-items .sponsor-rss-link:hover{color:#ff3287 !important}.tns-sponsor-note .sponsor-note-content-wrapper .sponsor-note-rss .sponsor-note-rss-items .sponsors-rss-byline{color:#a5a9b0;font-size:11px}@media (max-width:767px){.tns-sponsor-note .sponsor-note-content-wrapper .sponsor-note-rss .sponsor-note-rss-items .sponsors-rss-byline{font-size:12px}}.tns-sponsor-note .sponsor-note-content-wrapper .sponsor-note-custom-links{position:relative;margin-top:30px}.tns-sponsor-note .sponsor-note-content-wrapper .sponsor-note-custom-links .sponsor-note-custom-links-heading{color:#515151;font-size:11px;font-weight:700;margin-bottom:7px;text-transform:uppercase}@media (max-width:767px){.tns-sponsor-note .sponsor-note-content-wrapper .sponsor-note-custom-links .sponsor-note-custom-links-heading{font-size:12px}}.tns-sponsor-note .sponsor-note-content-wrapper .sponsor-note-custom-links .sponsor-note-custom-links-items{position:relative}.tns-sponsor-note .sponsor-note-content-wrapper .sponsor-note-custom-links .sponsor-custom-link{display:block;color:#019ddb !important;font-size:14px;font-weight:600;line-height:1.33;margin-bottom:12px}@media (max-width:767px){.tns-sponsor-note .sponsor-note-content-wrapper .sponsor-note-custom-links .sponsor-custom-link{font-size:17px}}.tns-sponsor-note .sponsor-note-content-wrapper .sponsor-note-custom-links .sponsor-custom-link:hover{color:#ff3287 !important}.tns-sponsor-note .sponsor-note-content-wrapper .sponsor-note-custom-links .sponsor-custom-byline{color:#a5a9b0;font-size:11px}@media (max-width:767px){.tns-sponsor-note .sponsor-note-content-wrapper .sponsor-note-custom-links .sponsor-custom-byline{font-size:12px}}.tns-sponsor-note .sponsor-note-lead-form{position:relative;margin-top:30px;padding:20px;background:#05aef4;background:-webkit-linear-gradient(305deg, #05aef4 0%, #4bc8fa 100%);background:-moz-linear-gradient(305deg, #05aef4 0%, #4bc8fa 100%);background:-o-linear-gradient(305deg, #05aef4 0%, #4bc8fa 100%);background:-ms-linear-gradient(305deg, #05aef4 0%, #4bc8fa 100%);background:linear-gradient(145deg, #05aef4 0%, #4bc8fa 100%);border-radius:3px}.tns-sponsor-note .sponsor-note-lead-form .sponsor-note-lead-form-text{color:#fff;font-size:11px;font-weight:700;margin-bottom:7px;text-transform:uppercase;text-align:left}@media (max-width:767px){.tns-sponsor-note .sponsor-note-lead-form .sponsor-note-lead-form-text{font-size:12px}}.tns-sponsor-note .sponsor-note-lead-form-input-wrapper{display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex;-webkit-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;gap:0;height:90px}.tns-sponsor-note .sponsor-note-lead-form-input-wrapper .sponsor-note-lead-form-input{width:100%;padding:12px 15px;margin:0;margin-bottom:10px;border:none;border-radius:1px;font-size:15px;font-weight:500;background:rgba(255,255,255,0.33);border:1px solid rgba(255,255,255,0.5);color:#fff;outline:none}.tns-sponsor-note .sponsor-note-lead-form-input-wrapper .sponsor-note-lead-form-input:focus{border:1px solid #fff}.tns-sponsor-note .sponsor-note-lead-form-input-wrapper .sponsor-note-lead-form-input::placeholder{color:#fff}.tns-sponsor-note .sponsor-note-lead-form-input-wrapper .sponsor-note-lead-form-submit{width:100%;padding:12px 20px;margin:0;background:rgba(255,255,255,0.2);border:none;border-radius:5px;color:#fff;font-size:14px;font-weight:600;cursor:pointer;-webkit-transition:all 0.3s ease;-moz-transition:all 0.3s ease;-o-transition:all 0.3s ease;-ms-transition:all 0.3s ease;transition:all 0.3s ease;display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex;-webkit-box-align:center;-moz-box-align:center;-o-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-moz-box-pack:center;
167-o-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}@media (max-width:767px){.tns-sponsor-note .sponsor-note-lead-form-input-wrapper .sponsor-note-lead-form-submit{font-size:17px}}.tns-sponsor-note .sponsor-note-lead-form-input-wrapper .sponsor-note-lead-form-submit:hover{background:rgba(255,255,255,0.33)}.tns-sponsor-note .sponsor-note-lead-form-status{display:none;opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0);height:90px;font-size:16px;color:#fff}.tns-contributor-note{display:none}.tns-contributor-note.injected{display:block}.tns-contributor-note{position:relative;padding:20px;padding-top:30px;padding-left:30px;padding-right:30px;margin-top:35px;margin-bottom:30px;background:#f6f8fa}@media (max-width:499px){.tns-contributor-note{padding:30px}}.tns-contributor-note .contributor-note-content-wrapper{padding-right:12%}@media (max-width:767px){.tns-contributor-note .contributor-note-content-wrapper{font-size:15px}}.tns-contributor-note .contributor-note-content-wrapper svg{height:8px;vertical-align:baseline}@media (max-width:767px){.tns-contributor-note .contributor-note-content-wrapper svg{height:10px}}.tns-contributor-note .contributor-note-content-wrapper .contributor-note-profile{position:relative;cursor:pointer}.tns-contributor-note .contributor-note-content-wrapper .contributor-note-profile .contributor-note-logo{margin-bottom:20px}.tns-contributor-note .contributor-note-content-wrapper .contributor-note-profile .contributor-note-logo a{display:block}.tns-contributor-note .contributor-note-content-wrapper .contributor-note-profile .contributor-note-logo img{display:inline-block;width:auto;height:35px;max-height:35px}.tns-contributor-note .contributor-note-content-wrapper .contributor-note-profile .contributor-note-content,.tns-contributor-note .contributor-note-content-wrapper .contributor-note-profile .contributor-note-cta{color:#515151;font-size:14px;line-height:1.33}@media (max-width:767px){.tns-contributor-note .contributor-note-content-wrapper .contributor-note-profile .contributor-note-content,.tns-contributor-note .contributor-note-content-wrapper .contributor-note-profile .contributor-note-cta{font-size:17px}}.tns-contributor-note .contributor-note-content-wrapper .contributor-note-profile .contributor-note-content{margin-bottom:10px}.tns-contributor-note .contributor-note-content-wrapper .contributor-note-profile .contributor-note-cta{font-size:12px}.tns-contributor-note .contributor-note-content-wrapper .contributor-note-profile:hover .contributor-note-cta{color:#ff3287}.tns-contributor-note .contributor-note-content-wrapper .contributor-note-profile:hover .contributor-note-cta svg path{f
167ill:#ff3287}.tns-contributor-note.no-content .contributor-note-logo{margin-bottom:0}.tns-contributor-note.no-content .contributor-note-lead-form{margin-top:10px}.tns-contributor-note.no-content:not(:has(.contributor-note-content-wrapper)){padding-top:20px}.tns-contributor-note.no-content:not(:has(.contributor-note-content-wrapper)) .contributor-note-lead-form{margin-top:0}.tns-contributor-note .contributor-note-lead-form{position:relative;margin-top:30px;padding:20px;background:#05aef4;background:-webkit-linear-gradient(305deg, #05aef4 0%, #4bc8fa 100%);background:-moz-linear-gradient(305deg, #05aef4 0%, #4bc8fa 100%);background:-o-linear-gradient(305deg, #05aef4 0%, #4bc8fa 100%);background:-ms-linear-gradient(305deg, #05aef4 0%, #4bc8fa 100%);background:linear-gradient(145deg, #05aef4 0%, #4bc8fa 100%);border-radius:3px}.tns-contributor-note .contributor-note-lead-form .contributor-note-lead-form-text{color:#fff;font-size:11px;font-weight:700;margin-bottom:7px;text-transform:uppercase;text-align:left}@media (max-width:767px){.tns-contributor-note .contributor-note-lead-form .contributor-note-lead-form-text{font-size:12px}}.tns-contributor-note .contributor-note-lead-form-input-wrapper{display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex;-webkit-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;gap:0;height:90px}.tns-contributor-note .contributor-note-lead-form-input-wrapper .contributor-note-lead-form-input{width:100%;padding:12px 15px;margin:0;margin-bottom:10px;border:none;border-radius:1px;font-size:15px;font-weight:500;background:rgba(255,255,255,0.33);border:1px solid rgba(255,255,255,0.5);color:#fff;outline:none}.tns-contributor-note .contributor-note-lead-form-input-wrapper .contributor-note-lead-form-input:focus{border:1px solid #fff}.tns-contributor-note .contributor-note-lead-form-input-wrapper .contributor-note-lead-form-input::placeholder{color:#fff}.tns-contributor-note .contributor-note-lead-form-input-wrapper .contributor-note-lead-form-submit{width:100%;padding:12px 20px;margin:0;background:rgba(255,255,255,0.2);border:none;border-radius:5px;color:#fff;font-size:14px;font-weight:600;cursor:pointer;-webkit-transition:all 0.3s ease;-moz-transition:all 0.3s ease;-o-transition:all 0.3s ease;-ms-transition:all 0.3s ease;transition:all 0.3s ease;display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex;-webkit-box-align:center;-moz-box-align:center;-o-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}@media (max-width:767px){.tns-contributor-note .contributor-note-lead-form-input-wrapper .contributor-note-lead-form-submit{font-size:17px}}.tns-contributor-note .contributor-note-lead-form-input-wrapper .contributor-note-lead-form-submit:hover{background:rgba(255,255,255,0.33)}.tns-contributor-note .contributor-note-lead-form-status{display:none;opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0);height:90px;font-size:16px;color:#fff}.tns-sponsors-rss{position:relative;padding:30px;padding-right:0;padding-bottom:40px;margin-top:35px;margin-bottom:60px;background:#f6f8fa}.tns-sponsors-rss .tns-sponsors-rss-block{max-width:800px;margin:0 auto 0 auto}.tns-sponsors-rss .section-heading{color:#8da6c0;font-size:13px;font-weight:700;margin-bottom:40px;border-top:none}.tns-sponsors-rss .sponsors-rss-row{-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}@media (max-width:767.98px){.tns-sponsors-rss .sponsors-rss-column{min-width:100%;max-width:100%;padding-right:25%;margin-bottom:40px}.tns-sponsors-rss .sponsors-rss-column:last-child{margin-bottom:0}}@media (max-width:399.98px){.tns-sponsors-rss .sponsors-rss-column{padding-right:10%}}.tns-sponsors-rss .sponsors-rss-block-logo{display:block;height:33px;width:auto;max-width:125px;margin-bottom:20px}@media (max-width:767.98px){.tns-sponsors-rss .sponsors-rss-block-logo{margin-bottom:15px}}.tns-sponsors-rss .sponsors-rss-block-single-row{-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}@media (max-width:767px){.tns-sponsors-rss .sponsors-rss-block-single-row .sponsors-rss-block-single-col{min-width:100%;max-width:100%;padding-right:25%}}@media (max-width:599px){.tns-sponsors-rss .sponsors-rss-block-single-row .sponsors-rss-block-single-col{padding-right:10%}}@media (max-width:767px){.tns-sponsors-rss .sponsors-rss-block-single-row .sponsors-rss-block-single-col:first-child{margin-bottom:40px}}.tns-sponsors-rss .sponsors-rss-block-single-profile p{position:relative;color:#515151;font-size:15px;line-height:1.33;padding-right:30px}@media (max-width:767px){.tns-sponsors-rss .sponsors-rss-block-single-profile p{font-size:17px}}.tns-sponsors-rss .sponsors-rss-block-profile-cta{color:#515151;font-size:13px}@media (max-width:767px){.tns-sponsors-rss .sponsors-rss-block-profile-cta{font-size:15px}}.tns-sponsors-rss .sponsors-rss-block-profile-cta svg{height:10px;
167fill:#515151}.tns-sponsors-rss .sponsors-rss-block-profile-cta:hover{color:#ff3287}.tns-sponsors-rss .sponsors-rss-block-profile-cta:hover svg{fill:#ff3287}.tns-sponsors-rss .sponsors-rss-block-profile-link{display:block}.tns-sponsors-rss .sponsors-rss-block-profile-link:hover .sponsors-rss-block-profile-cta{color:#ff3287}.tns-sponsors-rss .sponsors-rss-block-profile-link:hover .sponsors-rss-block-profile-cta svg{fill:#ff3287}.tns-sponsors-rss .sponsors-rss-items{margin-bottom:40px;padding-right:30px}@media (max-width:767px){.tns-sponsors-rss .sponsors-rss-items{padding-right:10%}}.tns-sponsors-rss .sponsors-rss-items:last-child{margin-bottom:0}.tns-sponsors-rss .sponsors-rss-link{display:block;color:#019ddb !important;font-size:14px;line-height:1.45;font-weight:600;text-decoration:none;margin-bottom:20px}@media (max-width:767px){.tns-sponsors-rss .sponsors-rss-link{font-size:18px;margin-bottom:20px}}.tns-sponsors-rss .sponsors-rss-link:last-child{margin-bottom:0}.tns-sponsors-rss .sponsors-rss-link .sponsors-rss-byline{color:#a5a9b0;font-size:12px}.tns-sponsors-rss .sponsors-rss-link:hover{color:#ff3287 !important}.tns-share{position:relative}.tns-share .share-media{position:relative}.tns-share .share-media .share-media-icon{width:30px;height:30px;display:-webkit-inline-box;display:-moz-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-box;display:inline-flex;-webkit-box-align:center;-moz-box-align:center;-o-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;margin-right:4px}.tns-share .share-media .share-media-icon svg{height:19px}.tns-share .share-media .share-media-icon-twitter .fill path{fill:#1c9bf0}.tns-share .share-media .share-media-icon-twitter .stroke path{stroke:#1c9bf0}.tns-share .share-media .share-media-icon-twitter:hover{opacity:.75;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=75)";filter:alpha(opacity=75)}.tns-share .share-media .share-media-icon-hackernews .fill path{fill:#fe6600}.tns-share .share-media .share-media-icon-hackernews .stroke path{stroke:#fe6600}.tns-share .share-media .share-media-icon-hackernews:hover{opacity:.75;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=75)";filter:alpha(opacity=75)}.tns-share .share-media .share-media-icon-linkedin .fill path{fill:#0a66c2}.tns-share .share-media .share-media-icon-linkedin .stroke path{stroke:#0a66c2}.tns-share .share-media .share-media-icon-linkedin:hover{opacity:.75;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=75)";filter:alpha(opacity=75)}.tns-share .share-media .share-media-icon-reddit .fill path{fill:#ff4500}.tns-share .share-media .share-media-icon-reddit .stroke path{stroke:#ff4500}.tns-share .share-media .share-media-icon-reddit:hover{opacity:.75;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=75)";filter:alpha(opacity=75)}.tns-share .share-media .share-media-icon-facebook .fill path{fill:#3c5998}.tns-share .share-media .share-media-icon-facebook .stroke path{stroke:#3c5998}.tns-share .share-media .share-media-icon-facebook:hover{opacity:.75;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=75)";filter:alpha(opacity=75)}.tns-promo-daily{display:relative;margin-top:30px}@media (max-width:767px){.tns-promo-daily .row{-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.tns-promo-daily .row .col{min-width:100%;max-width:100%}}.tns-promo-daily .banner{padding:30px;width:100%;color:#fff;background:#01aff4;background:-webkit-linear-gradient(305deg, #01aff4 0%, #ff3287 100%);background:-moz-linear-gradient(305deg, #01aff4 0%, #ff3287 100%);background:-o-linear-gradient(305deg, #01aff4 0%, #ff3287 100%);background:-ms-linear-gradient(305deg, #01aff4 0%, #ff3287 100%);background:linear-gradient(145deg, #01aff4 0%, #ff3287 100%)}.tns-promo-daily .banner .heading{font-size:12px;font-weight:700}.tns-promo-daily .banner .title{font-size:46px;font-weight:800;line-height:.9}@media (max-width:767px){.tns-promo-daily .banner .title{margin-bottom:10px}}.tns-promo-daily .banner .copy{font-size:15px}@media (max-width:767px){.tns-promo-daily .banner .copy{margin-bottom:10px}}.tns-promo-daily .banner .subscribe-col{padding-left:30px}@media (max-width:767px){.tns-promo-daily .banner .subscribe-col{padding-left:0}}.tns-promo-daily .banner .subscribe-col .tns-promo-daily-email-input{margin-top:3px;color:#fff;border:1px solid rgba(255,255,255,0.63);margin-bottom:10px;-webkit-transition:all 99ms;-moz-transition:all 99ms;-o-transition:all 99ms;-ms-transition:all 99ms;transition:all 99ms}.tns-promo-daily .banner .subscribe-col .tns-promo-daily-email-input::placeholder{font-size:16px;color:#fff;opacity:.63;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=63)";filter:alpha(opacity=63)}.tns-promo-daily .banner .subscribe-col .tns-promo-daily-email-input:hover{border:1px solid #fff}.tns-promo-daily .banner .subscribe-col .tns-promo-daily-email-input:focus{border:1px solid #fff}.tns-promo-daily .banner .subscribe-col .tns-promo-daily-subscribe-button{color:#fff;background:rgba(255,255,255,0.33);-webkit-transition:all 99ms;-moz-transition:all 99ms;-o-transition:all 99ms;-ms-transition:all 99ms;transition:all 99ms}.tns-promo-daily .banner .subscribe-col .tns-promo-daily-subscribe-button:hover{color:#ff3287;background:#fff}#tns-post .tns-promo-daily{margin-bottom:30px}#tns-promo-voxpop{display:relative;margin-top:30px;overflow:hidden}@media (max-width:767px){#tns-promo-voxpop .row{-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}#tns-promo-voxpop .row .col{min-width:100%;max-width:100%}}#tns-promo-voxpop .banner{width:100%;color:#fff;background:#01aff4;background:-webkit-linear-gradient(305deg, #01aff4 0%, #ff3287 100%);background:-moz-linear-gradient(305deg, #01aff4 0%, #ff3287 100%);background:-o-linear-gradient(305deg, #01aff4 0%, #ff3287 100%);background:-ms-linear-gradient(305deg, #01aff4 0%, #ff3287 100%);background:linear-gradient(145deg, #01aff4 0%, #ff3287 100%)}#tns-promo-voxpop .banner .col-title{padding:30px}@media (max-width:767px){#tns-promo-voxpop .banner .col-title{padding:20px;padding-bottom:0}}#tns-promo-voxpop .banner .col-title .heading{font-size:14px;font-weight:700;letter-spacing:-1}#tns-promo-voxpop .banner .col-title .title{font-size:14px;font-weight:800}#tns-promo-voxpop .banner .col-title .brief{font-size:12px;line-height:1.2;opacity:.63;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=63)";filter:alpha(opacity=63);padding-right:10px}@media (max-width:767px){#tns-promo-voxpop .banner .col-title .brief{font-size:15px;padding-right:30px}}#tns-promo-voxpop .banner .col-copy{position:relative;font-size:15px;min-height:200px;overflow:hidden}@media (max-width:767px){#tns-promo-voxpop .banner .col-copy{margin-bottom:10px;min-height:220px}}#tns-promo-voxpop .banner .col-copy .vp-fade{position:absolute;
167left:10px;right:10px;bottom:0;height:50px;background:#808080;background:#fff;background:-webkit-linear-gradient(90deg, rgba(255,255,255,0.8) 0%, rgba(255,255,255,0) 100%);background:-moz-linear-gradient(90deg, rgba(255,255,255,0.8) 0%, rgba(255,255,255,0) 100%);background:-o-linear-gradient(90deg, rgba(255,255,255,0.8) 0%, rgba(255,255,255,0) 100%);background:-ms-linear-gradient(90deg, rgba(255,255,255,0.8) 0%, rgba(255,255,255,0) 100%);background:linear-gradient(0deg, rgba(255,255,255,0.8) 0%, rgba(255,255,255,0) 100%);z-index:2}@media (max-width:767px){#tns-promo-voxpop .banner .col-copy .vp-fade{left:20px;right:20px}}#tns-promo-voxpop .banner .col-copy .vp-graphic{position:absolute;top:20px;left:10px;right:10px;bottom:0;padding:20px;border-radius:5px 5px 0 0;background:#fff;background:rgba(255,255,255,0.93);background:#fff;background:-webkit-linear-gradient(270deg, #fff 73%, rgba(255,255,255,0.512) 100%);background:-moz-linear-gradient(270deg, #fff 73%, rgba(255,255,255,0.512) 100%);background:-o-linear-gradient(270deg, #fff 73%, rgba(255,255,255,0.512) 100%);background:-ms-linear-gradient(270deg, #fff 73%, rgba(255,255,255,0.512) 100%);background:linear-gradient(180deg, #fff 73%, rgba(255,255,255,0.512) 100%);-webkit-box-shadow:0 0 10px rgba(0,0,0,0.21);box-shadow:0 0 10px rgba(0,0,0,0.21);overflow:hidden}@media (max-width:767px){#tns-promo-voxpop .banner .col-copy .vp-graphic{left:20px;right:20px}}#tns-promo-voxpop .banner .col-copy .vp-graphic .question{color:#0e1013;font-size:16px;font-weight:600;line-height:1.18;margin-bottom:12px}@media (max-width:767px){#tns-promo-voxpop .banner .col-copy .vp-graphic .question{font-size:15px}}#tns-promo-voxpop .banner .col-copy .vp-graphic .context{color:#a5a9b0;font-weight:400;padding-right:50px;opacity:.81;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=81)";filter:alpha(opacity=81);display:none}@media (max-width:767px){#tns-promo-voxpop .banner .col-copy .vp-graphic .context{font-size:14px;margin-bottom:20px;padding-right:0}}#tns-promo-voxpop .banner .col-copy .vp-graphic .answers .answer{display:block;padding:12px;padding-right:20px;font-size:13px;font-weight:500;line-height:1.27;border-radius:5px;color:#004978;background:#e8f6ff;border:2px solid #d9f0ff;margin-bottom:4px;-webkit-transition:all 121ms;-moz-transition:all 121ms;-o-transition:all 121ms;-ms-transition:all 121ms;transition:all 121ms}@media (max-width:767px){#tns-promo-voxpop .banner .col-copy .vp-graphic .answers .answer{font-size:12px;padding-right:10px}}#tns-promo-voxpop .banner .col-cta{padding:30px}@media (max-width:767px){#tns-promo-voxpop .banner .col-cta{padding:20px;padding-top:0}}#tns-promo-voxpop .banner .col-cta .tns-promo-voxpop-launch-button{color:#fff;font-size:15px;font-weight:700;background:rgba(255,255,255,0.33);-webkit-transition:all 99ms;-moz-transition:all 99ms;-o-transition:all 99ms;-ms-transition:all 99ms;transition:all 99ms;margin-bottom:7px}#tns-promo-voxpop .banner .col-cta .tns-promo-voxpop-launch-button:hover{color:#01aff4;background:#fff}#tns-promo-voxpop .banner .col-cta .nudge{font-size:12px;opacity:.72;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=72)";filter:alpha(opacity=72);text-align:center}#tns-post #tns-promo-voxpop{margin-bottom:30px}#tns-promo-survey{display:relative;margin-top:30px;overflow:hidden}@media (max-width:767px){#tns-promo-survey .row{-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}#tns-promo-survey .row .col{min-width:100%;max-width:100%}}#tns-promo-survey .banner{width:100%;color:#fff;background:#01aff4;background:-webkit-linear-gradient(305deg, #01aff4 0%, #ff3287 100%);background:-moz-linear-gradient(305deg, #01aff4 0%, #ff3287 100%);background:-o-linear-gradient(305deg, #01aff4 0%, #ff3287 100%);background:-ms-linear-gradient(305deg, #01aff4 0%, #ff3287 100%);background:linear-gradient(145deg, #01aff4 0%, #ff3287 100%)}#tns-promo-survey .banner .col-icon .survey-promo-icon{display:block;width:100%;max-height:100px;-webkit-transform:translate(0%,25%);-moz-transform:translate(0%,25%);-o-transform:translate(0%,25%);-ms-transform:translate(0%,25%);transform:translate(0%,25%)}#tns-promo-survey .banner .col-icon .survey-promo-icon path{fill:#fff}#tns-promo-survey .banner .col-copy{position:relative;padding-top:35px;padding-right:50px;font-size:15px;min-height:150px;overflow:hidden}@media (max-width:767px){#tns-promo-survey .banner .col-copy{margin-bottom:10px;padding-top:50px;padding-left:20px;padding-right:20px}}#tns-promo-survey .banner .col-copy .title{font-size:13px;font-weight:800}#tns-promo-survey .banner .col-copy .brief{line-height:1.2}
167#tns-promo-survey .banner .col-cta{padding:30px;padding-top:55px}@media (max-width:767px){#tns-promo-survey .banner .col-cta{padding:20px;padding-top:0}}#tns-promo-survey .banner .col-cta .tns-promo-survey-launch-button{color:#fff;font-size:15px;font-weight:700;background:rgba(255,255,255,0.33);-webkit-transition:all 99ms;-moz-transition:all 99ms;-o-transition:all 99ms;-ms-transition:all 99ms;transition:all 99ms;margin-bottom:7px}#tns-promo-survey .banner .col-cta .tns-promo-survey-launch-button:hover{color:#01aff4;background:#fff}#tns-promo-survey .banner .col-cta .nudge{padding-left:20px;padding-right:20px;font-size:12px;line-height:1.3;opacity:.72;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=72)";filter:alpha(opacity=72);text-align:center}#tns-post #tns-promo-survey{margin-bottom:30px}.tns-follow-links{position:relative}.tns-follow-links .follow-links{position:relative}.tns-follow-links .follow-links .follow-icon{width:30px;height:30px;display:-webkit-inline-box;display:-moz-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-box;display:inline-flex;-webkit-box-align:center;-moz-box-align:center;-o-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;vertical-align:middle;margin-right:4px}.tns-follow-links .follow-links .follow-icon svg{height:19px}.tns-follow-links .follow-links .follow-icon .fill path{fill:#3c3c3c;stroke-width:0}.tns-follow-links .follow-links .follow-icon .stroke path{stroke:#3c3c3c;fill:none}.tns-follow-links .follow-links .follow-icon:hover .fill path{fill:#01aff4}.tns-follow-links .follow-links .follow-icon:hover .stroke path{stroke:#01aff4}.tns-follow-links .follow-links .follow-icon-mastadon:hover .fill path{fill:#5e54ea}.tns-follow-links .follow-links .follow-icon-mastadon:hover .stroke path{stroke:#5e54ea}.tns-follow-links .follow-links .follow-icon-bluesky:hover .fill path{fill:#0185ff}.tns-follow-links .follow-links .follow-icon-bluesky:hover .stroke path{stroke:#0185ff}.tns-follow-links .follow-links .follow-icon-threads:hover svg{fill:#fff}.tns-follow-links .follow-links .follow-icon-threads:hover .fill path{fill:#fff}.tns-follow-links .follow-links .follow-icon-threads:hover .stroke path{stroke:#fff}.tns-follow-links .follow-links .follow-icon-twitter:hover .fill path{fill:#1c9bf0}.tns-follow-links .follow-links .follow-icon-twitter:hover .stroke path{stroke:#1c9bf0}.tns-follow-links .follow-links .follow-icon-hackernews:hover .fill path{fill:#fe6600}.tns-follow-links .follow-links .follow-icon-hackernews:hover .stroke path{stroke:#fe6600}.tns-follow-links .follow-links .follow-icon-linkedin:hover .fill path{fill:#0a66c2}.tns-follow-links .follow-links .follow-icon-linkedin:hover .stroke path{stroke:#0a66c2}.tns-follow-links .follow-links .follow-icon-reddit:hover .fill path{fill:#ff4500}.tns-follow-links .follow-links .follow-icon-reddit:hover .stroke path{stroke:#ff4500}.tns-follow-links .follow-links .follow-icon-facebook:hover .fill path{fill:#3c5998}.tns-follow-links .follow-links .follow-icon-facebook:hover .stroke path{stroke:#3c5998}.tns-follow-links .follow-links .follow-icon-instagram:hover .fill path{fill:#66b6fa}
167.tns-follow-links .follow-links .follow-icon-instagram:hover .stroke path{stroke:#66b6fa}.tns-follow-links .follow-links .follow-icon-spotify:hover svg{fill:#1cd760}.tns-follow-links .follow-links .follow-icon-spotify:hover .fill path{fill:#1cd760}.tns-follow-links .follow-links .follow-icon-spotify:hover .stroke path{stroke:#1cd760}.tns-follow-links .follow-links .follow-icon-youtube{vertical-align:top}.tns-follow-links .follow-links .follow-icon-youtube svg{height:27px}.tns-follow-links .follow-links .follow-icon-youtube:hover .fill path{fill:#f10001}.tns-follow-links .follow-links .follow-icon-youtube:hover .stroke path{stroke:#f10001}.tns-poll{position:relative;height:auto;border-top:1px solid #dcdcdc;margin-bottom:20px}.tns-poll .questions{margin-bottom:15px}.tns-poll .questions .page{position:realtive}.tns-poll .questions .page .question .col{font-size:17px;font-weight:500;line-height:1.33;padding:15px;padding-left:0;padding-bottom:5px}.tns-poll .questions .page .context{padding:15px;padding-top:0;padding-left:0;padding-bottom:20px;font-size:14px;line-height:1.27;color:#a3a7ae}.tns-poll .questions .page .answers .option{display:block;padding:15px;padding-left:24px;padding-right:72px;font-size:14px;font-weight:500;line-height:1.27;border-radius:5px;color:#004978;background:#e8f6ff;border:2px solid #d9f0ff;margin-bottom:4px;cursor:pointer;-webkit-transition:all 121ms;-moz-transition:all 121ms;-o-transition:all 121ms;-ms-transition:all 121ms;transition:all 121ms}@media (max-width:767px){.tns-poll .questions .page .answers .option{font-size:16px;padding-right:50px}}.tns-poll .questions .page .answers .option.active{color:#226727;border:2px solid #cdeecf;background:#d8f2da}.tns-poll .questions .page .answers .option .option-checkmark{position:absolute;top:15px;left:7px;color:#039cff;z-index:3;opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0);-webkit-transition:opacity 121ms;-moz-transition:opacity 121ms;-o-transition:opacity 121ms;-ms-transition:opacity 121ms;transition:opacity 121ms}.tns-poll .questions .page .answers .option .option-percentage{position:absolute;top:50%;right:15px;-webkit-transform:translate(0%,-50%);-moz-transform:translate(0%,-50%);-o-transform:translate(0%,-50%);-ms-transform:translate(0%,-50%);transform:translate(0%,-50%);color:#039cff;z-index:3;opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0)}.tns-poll .questions .page .answers .option .option-text{z-index:2}.tns-poll .questions .page .answers .option .option-results{position:absolute;top:0;left:0;bottom:0;width:0%;background:#c4e8ff;z-index:1}.tns-poll .questions .page .answers .option.active .option-percentage{color:#39ab42}.tns-poll .questions .page .answers .option.active .option-results{background:#bde9c1}.tns-poll .questions .page .answers .option.selected .option-checkmark{color:#039cff;opacity:1;-ms-filter:none;filter:none}.tns-poll .questions .page .answers .option.active.selected .option-checkmark{color:#39ab42;opacity:1;-ms-filter:none;filter:none}@media (hover:hover){.tns-poll .questions .page .answers .option:hover{color:#226727;border:2px solid #cdeecf;background:#d8f2da}.tns-poll .questions .page .answers .option:hover .option-checkmark{color:#39ab42;opacity:1;-ms-filter:none;filter:none}}.tns-poll .post-roll{height:0;overflow:hidden;border-top:1px solid #dcdcdc}.tns-poll .post-roll .post-roll-block{display:block}.tns-poll .post-roll .post-roll-block .newsletter-form{padding-top:15px;padding-bottom:20px}.tns-poll .post-roll .post-roll-block .newsletter-form .cta{font-size:14px;margin-bottom:7px}.tns-poll .post-roll .post-roll-block .newsletter-form input{margin:0}.tns-poll .post-roll .post-roll-block .newsletter-form input.error{color:#ff3287;background:rgba(255,50,135,0.12)}.tns-poll .post-roll .post-roll-block .newsletter-form button{border-radius:0;margin:0}.tns-poll .post-roll.open{border-bottom:1px solid #dcdcdc}.tns-poll a.poll-sponsor{position:relative;margin-top:20px;padding:15px;padding-top:45px;min-height:75px;color:#0e1013;font-size:14px;line-height:1.2;background:#f6f8fa;cursor:pointer}.tns-poll a.poll-sponsor .disclosure{position:absolute;top:15px;left:15px;color:#8da6c0;font-size:10px;font-weight:500}.tns-poll a.poll-sponsor .logo img{position:absolute;top:5px;left:0;max-width:85%}.tns-poll a.poll-sponsor .copy p{font-size:14px;margin-bottom:10px}.tns-poll a.poll-sponsor .cta{font-size:12px}@media (max-width:767px){.tns-poll a.poll-sponsor .cta{font-size:15px}}.tns-poll a.poll-sponsor .cta svg{height:8px;vertical-align:baseline}@media (max-width:767px){.tns-poll a.poll-sponsor .cta svg{height:10px}}.tns-poll a.poll-sponsor:hover .cta{color:#ff3287}
167.tns-poll a.poll-sponsor:hover .cta svg path{fill:#ff3287}.tns-poll.done .questions .page .answers .option{cursor:default;-webkit-transition:all 333ms;-moz-transition:all 333ms;-o-transition:all 333ms;-ms-transition:all 333ms;transition:all 333ms}.tns-poll.done .questions .page .answers .option:hover{color:#004978;background:#e8f6ff;border:2px solid #d9f0ff}.tns-poll.done .questions .page .answers .option:hover .option-checkmark{opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0)}.tns-poll.done .questions .page .answers .option.active:hover{color:#226727;background:#d8f2da;border:2px solid #cdeecf}.tns-poll.done .questions .page .answers .option.selected:hover .option-checkmark{opacity:1;-ms-filter:none;filter:none}#tns-subscribe{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.9);z-index:10000;opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0);display:none}#tns-subscribe .modal{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-moz-transform:translate(-50%,-50%);-o-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);width:100%;max-width:500px;height:100%;max-height:370px;border-radius:5px;background:#fff;overflow:hidden;opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0);display:none}@media (max-width:500px){#tns-subscribe .modal{max-width:calc(100% - 20px)}}#tns-subscribe .modal .header{position:absolute;top:0;left:0;right:0;height:40px;border-bottom:1px solid #c2c2c2}#tns-subscribe .modal .header .title{position:absolute;left:15px;top:50%;-webkit-transform:translate(0%,-50%);-moz-transform:translate(0%,-50%);-o-transform:translate(0%,-50%);-ms-transform:translate(0%,-50%);transform:translate(0%,-50%);height:40px;line-height:40px;color:#3c3c3c;font-size:13px;font-weight:800}#tns-subscribe .modal .header .close{position:absolute;top:11px;right:14px;width:12px;cursor:pointer;z-index:2}#tns-subscribe .modal .header .close svg{width:100%;height:auto;fill:#515151}#tns-subscribe .modal .header .close:hover svg{fill:#ff3287}#tns-subscribe .modal .content{position:absolute;top:40px;left:0;right:0;bottom:0;overflow-x:hidden;overflow-y:auto}#tns-subscribe .modal .content .swiper{height:100%}#tns-subscribe .modal .content .swiper .swiper-wrapper{height:100%}#tns-subscribe .modal .content .swiper .swiper-wrapper .swiper-slide{height:100%;padding:15px;overflow-x:hidden;overflow-y:auto}#tns-subscribe .modal .content .swiper .swiper-wrapper .swiper-slide .heading{font-size:20px;font-weight:700;margin-bottom:10px}#tns-subscribe .modal .content .swiper .swiper-wrapper .swiper-slide .heading-2{font-size:16px;font-weight:700;margin-bottom:10px}#tns-subscribe .modal .content .swiper .swiper-wrapper .swiper-slide .copy{font-size:15px;font-weight:400;margin-bottom:20px}#tns-subscribe .modal .content .swiper .swiper-wrapper .swiper-slide .follow-paragraph{margin-bottom:5px}#tns-subscribe .modal .content .swiper .swiper-wrapper .swiper-slide .tns-follow-links{margin-left:-6px;margin-bottom:30px}#tns-subscribe .modal .content .swiper .swiper-wrapper .swiper-slide .tns-follow-links .follow-icon-mastadon .fill path{fill:#5e54ea}#tns-subscribe .modal .content .swiper .swiper-wrapper .swiper-slide .tns-follow-links .follow-icon-mastadon .stroke path{stroke:#5e54ea}#tns-subscribe .modal .content .swiper .swiper-wrapper .swiper-slide .tns-follow-links .follow-icon-linkedin .fill path{fill:#0a66c2}#tns-subscribe .modal .content .swiper .swiper-wrapper .swiper-slide .tns-follow-links .follow-icon-linkedin .stroke path{stroke:#0a66c2}#tns-subscribe .modal .content .swiper .swiper-wrapper .swiper-slide .tns-follow-links .follow-icon-twitter .fill path{fill:#1c9bf0}#tns-subscribe .modal .content .swiper .swiper-wrapper .swiper-slide .tns-follow-links .follow-icon-twitter .stroke path{stroke:#1c9bf0}#tns-subscribe .modal .content .swiper .swiper-wrapper .swiper-slide .tns-follow-links .follow-icon-facebook .fill path{fill:#3c5998}#tns-subscribe .modal .content .swiper .swiper-wrapper .swiper-slide .tns-follow-links .follow-icon-facebook .stroke path{stroke:#3c5998}#tns-subscribe .modal .content .swiper .swiper-wrapper .swiper-slide .tns-follow-links .follow-icon-instagram .fill path{fill:#66b6fa}#tns-subscribe .modal .content .swiper .swiper-wrapper .swiper-slide .tns-follow-links .follow-icon-instagram .stroke path{stroke:#66b6fa}#tns-subscribe .modal .content .swiper .swiper-wrapper .swiper-slide .tns-follow-links .follow-icon-youtube .fill path{fill:#f10001}#tns-subscribe .modal .content .swiper .swiper-wrapper .swiper-slide .tns-follow-links .follow-icon-youtube .stroke path{stroke:#f10001}#tns-subscribe .modal .content .swiper .swiper-wrapper .swiper-slide .tns-follow-links .follow-icon:hover{opacity:75%;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=7500%)";filter:alpha(opacity=7500%)}#tns-subscribe .modal .content .swiper .swiper-wrapper .swiper-slide .form{position:relative}#tns-subscribe .modal .content .swiper .swiper-wrapper .swiper-slide .form .subscribe-button:disabled{background:#831844;cursor:default}#tns-subscribe .modal .content .swiper .swiper-wrapper .swiper-slide .form .form-field-email{display:block}#tns-subscribe .modal .content .swiper .swiper-wrapper .swiper-slide .form .form-field-resubscribe{display:none}#tns-subscribe .modal .content .swiper .swiper-wrapper .swiper-slide .form .form-field-info{color:#c2
167c2c2;font-size:10px;text-align:right}#tns-subscribe .modal .content .swiper .swiper-wrapper .swiper-slide .form .form-field-info.error{color:#ff3287}#tns-subscribe .modal .content .swiper .swiper-wrapper .swiper-slide .form label{display:block;font-size:12px;font-weight:800;line-height:125%;margin-bottom:7px}#tns-subscribe .modal .content .swiper .swiper-wrapper .swiper-slide .form input{border:1px solid #a5a9b0}#tns-subscribe .modal .content .swiper .swiper-wrapper .swiper-slide .form input:focus{border:1px solid #000}#tns-subscribe .modal .content .swiper .swiper-wrapper .swiper-slide .form input.error{border:1px solid #ff3287}#tns-subscribe .modal .content .swiper .swiper-wrapper .swiper-slide .form .subscribe-form-privacy{display:block;max-width:450px;color:#a5a9b0;font-size:10px;font-weight:400;line-height:1.2;margin:20px auto 9px auto}#tns-subscribe .modal .content .swiper .swiper-wrapper .swiper-slide .form select{width:100%;height:40px;font-size:15px;padding-left:15px;border:1px solid #a5a9b0;margin-bottom:20px}#tns-subscribe .modal .content .swiper .swiper-wrapper .swiper-slide .form select:focus{border:1px solid #000}#tns-subscribe .modal .content .swiper .swiper-wrapper .swiper-slide .form select.error{border:1px solid #ff3287}#tns-subscribe .modal .content .swiper .swiper-wrapper .swiper-slide .form .subscribe-input-select-arrow{position:absolute;right:15px;top:31px;cursor:pointer;z-index:2}#tns-subscribe .modal .content .swiper .swiper-wrapper .swiper-slide .form .subscribe-input-select-arrow svg{width:10px;height:auto;fill:#a5a9b0}#tns-subscribe .modal .content .swiper .swiper-wrapper .swiper-slide .form .subscribe-input-select-arrow:hover svg{fill:#ff3287}#tns-subscribe .modal .content .swiper .swiper-wrapper .swiper-slide .form .subscribe-job-level-other,#tns-subscribe .modal .content .swiper .swiper-wrapper .swiper-slide .form .subscribe-job-role-other,#tns-subscribe .modal .content .swiper .swiper-wrapper .swiper-slide .form .subscribe-organization-description-other,#tns-subscribe .modal .content .swiper .swiper-wrapper .swiper-slide .form .subscribe-industry-other{display:none}#tns-subscribe .modal .content .swiper .swiper-wrapper .swiper-slide .form .subscribe-input-other-clear{position:absolute;right:15px;bottom:10px;cursor:pointer;z-index:2;display:none}#tns-subscribe .modal .content .swiper .swiper-wrapper .swiper-slide .form .subscribe-input-other-clear svg{width:10px;height:auto;fill:#a5a9b0}#tns-subscribe .modal .content .swiper .swiper-wrapper .swiper-slide .form .subscribe-input-other-clear:hover svg{fill:#ff3287}#tns-subscribe .modal .content .swiper .swiper-wrapper .swiper-slide .form .form-field-zipcode{display:none}#tns-subscribe .modal .footer{position:absolute;left:0;right:0;bottom:-60px;height:60px;border-top:1px solid #c2c2c2}#tns-subscribe .modal .footer .page-indicator{color:#a5a9b0;font-size:12px;line-height:60px;text-align:center}#tns-subscribe .modal .footer .swiper-button-col{padding-top:10px}#tns-subscribe .modal .footer .swiper-button-col .swiper-button{color:#fff;font-size:12px;font-weight:800;height:40px;line-height:40px;text-align:center;padding-left:10px;padding-right:10px;background:#000;border-radius:5px;cursor:pointer}#tns-subscribe .modal .footer .swiper-button-col:first-child{padding-left:15px}#tns-subscribe .modal .footer .swiper-button-col:last-child{padding-right:15px}.tns-cta-sponsored-content{display:block;width:100%;margin-top:35px;margin-bottom:30px;padding:24px 32px;background:#f6f8fa;color:#515151;text-align:center;text-decoration:none;-webkit-transition:color 0.2s ease;-moz-transition:color 0.2s ease;-o-transition:color 0.2s ease;-ms-transition:color 0.2s ease;transition:color 0.2s ease}.tns-cta-sponsored-content .center-copy{display:inline-block;width:100%;text-align:center;font-size:16px;line-height:1.3;color:inherit}.tns-cta-sponsored-content .center-copy .cta-text{display:inline;color:inherit}.tns-cta-sponsored-content .center-copy strong{color:inherit;font-weight:700}.tns-cta-sponsored-content:hover{color:#01aff4;text-decoration:none}#tns-ebooks-cover .tns-cta-sponsored-content,#tns-webinars-cover .tns-cta-sponsored-content,#tns-newstack-update .tns-cta-sponsored-content,#tns-events-cover .tns-cta-sponsored-content{position:relative;
167left:50%;width:100vw;-webkit-transform:translateX(-50%);-moz-transform:translateX(-50%);-o-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}@import "./assets/css/crayon.min.css"; 168@import "./assets/css/crayon-github-gist.css"; 169 </style> 170 171 <meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' />
172<script id="cookie-law-info-gcm-var-js"> 173var _ckyGcm = {"status":true,"default_settings":[{"analytics":"granted","advertisement":"granted","functional":"granted","necessary":"granted","ad_user_data":"granted","ad_personalization":"granted","regions":"All"}],"wait_for_update":2000,"url_passthrough":false,"ads_data_redaction":false}</script>
vendor: 1 bytes, line 173
173
174<script id="cookie-law-info-gcm-js" type="text/javascript" src="https://thenewstack.io/wp-content/plugins/cookie-law-info/lite/frontend/js/gcm.min.js"></script>
174
174<script id="cookieyes" type="text/javascript" src="https://cdn-cookieyes.com/client_data/bc916c1eddf6141a1f389fabdcc0e5d5/script.js"></script>
174 175 <!-- This site is optimized with the Yoast SEO Premium plugin v28.4 (Yoast SEO v28.4) - https://yoast.com/product/yoast-seo-premium-wordpress/ --> 176 <title>Terms of Use - The New Stack</title> 177 <link rel="canonical" href="https://thenewstack.io/terms-of-use/" /> 178 <meta property="og:locale" content="en_US" /> 179 <meta property="og:type" content="article" /> 180 <meta property="og:title" content="Terms of Use" /> 181 <meta property="og:description" content="Last Updated: November 1, 2017 PLEASE READ CAREFULLY. Welcome to The New Stack! Please read these Terms of Use (“Terms" /> 182 <meta property="og:url" content="https://thenewstack.io/terms-of-use/" /> 183 <meta property="og:site_name" content="The New Stack" /> 184 <meta property="article:publisher" content="https://www.facebook.com/thenewstack" /> 185 <meta property="article:modified_time" content="2022-09-12T03:33:24+00:00" /> 186 <meta name="twitter:card" content="summary_large_image" /> 187 <meta name="twitter:site" content="@thenewstack" /> 188 <meta name="twitter:label1" content="Est. reading time" /> 189 <meta name="twitter:data1" content="12 minutes" /> 190 <meta name="twitter:label2" content="Written by" /> 191 <meta name="twitter:data2" content="Aaron Ban, gabriel d." /> 192
192<script type="application/ld+json" class="yoast-schema-graph">{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/thenewstack.io\/terms-of-use\/#article","isPartOf":{"@id":"https:\/\/thenewstack.io\/terms-of-use\/"},"author":[{"@id":"https:\/\/thenewstack.io\/#\/schema\/person\/f543bbef1e64d8fd10c1b75b980661d4"},{"@id":"https:\/\/thenewstack.io\/#\/schema\/person\/9b3f65fe024408bfe1026451e90e505a"}],"headline":"Terms of Use","datePublished":"2017-11-20T02:14:15+00:00","dateModified":"2022-09-12T03:33:24+00:00","mainEntityOfPage":{"@id":"https:\/\/thenewstack.io\/terms-of-use\/"},"wordCount":2359,"publisher":{"@id":"https:\/\/thenewstack.io\/#organization"},"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/thenewstack.io\/terms-of-use\/","url":"https:\/\/thenewstack.io\/terms-of-use\/","name":"Terms of Use - The New Stack","isPartOf":{"@id":"https:\/\/thenewstack.io\/#website"},"datePublished":"2017-11-20T02:14:15+00:00","dateModified":"2022-09-12T03:33:24+00:00","breadcrumb":{"@id":"https:\/\/thenewstack.io\/terms-of-use\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/thenewstack.io\/terms-of-use\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/thenewstack.io\/terms-of-use\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/thenewstack.io\/"},{"@type":"ListItem","position":2,"name":"Terms of Use"}]},{"@type":"WebSite","@id":"https:\/\/thenewstack.io\/#website","url":"https:\/\/thenewstack.io\/","name":"The New Stack","description":"","publisher":{"@id":"https:\/\/thenewstack.io\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/thenewstack.io\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/thenewstack.io\/#organization","name":"The New Stack","url":"https:\/\/thenewstack.io\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/thenewstack.io\/#\/schema\/logo\/image\/","url":"https:\/\/cdn.thenewstack.io\/media\/2021\/11\/a9fbec84-the-new-stack-logo-rgb-screen.png","contentUrl":"https:\/\/cdn.thenewstack.io\/media\/2021\/11\/a9fbec84-the-new-stack-logo-rgb-screen.png","width":1032,"height":128,"caption":"The New Stack"},"image":{"@id":"https:\/\/thenewstack.io\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/thenewstack","https:\/\/x.com\/thenewstack"]},{"@type":"Person","@id":"https:\/\/thenewstack.io\/#\/schema\/person\/f543bbef1e64d8fd10c1b75b980661d4","name":"Aaron Ban","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/thenewstack.io\/wp-content\/uploads\/2015\/11\/Aaron-Ban_avatar_1448528337-96x96.jpg4765cbbd22a9f4a2d5dba28abfcbe959","url":"http:\/\/thenewstack.io\/wp-content\/uploads\/2015\/11\/Aaron-Ban_avatar_1448528337-96x96.jpg","contentUrl":"http:\/\/thenewstack.io\/wp-content\/uploads\/2015\/11\/Aaron-Ban_avatar_1448528337-96x96.jpg","caption":"Aaron Ban"},"url":"https:\/\/thenewstack.io\/author\/ajb\/"},{"@type":"Person","@id":"https:\/\/thenewstack.io\/#\/schema\/person\/9b3f65fe024408bfe1026451e90e505a","name":"gabriel d.","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/ad516503a11cd5ca435acc9bb6523536?s=9615105800a0270a384212262298083881","url":"https:\/\/secure.gravatar.com\/avatar\/ad516503a11cd5ca435acc9bb6523536?s=96","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ad516503a11cd5ca435acc9bb6523536?s=96","caption":"gabriel d."},"url":"https:\/\/thenewstack.io\/author\/gabriel\/"}]}</script>
192 193 <!-- / Yoast SEO Premium plugin. --> 194 195 196<link rel='dns-prefetch' href='//www.googletagmanager.com' /> 197<link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://thenewstack.io/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fthenewstack.io%2Fterms-of-use%2F" /> 198<link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://thenewstack.io/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fthenewstack.io%2Fterms-of-use%2F&format=xml" /> 199<style id="wp-img-auto-sizes-contain-inline-css"> 200img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px} 201/*# sourceURL=wp-img-auto-sizes-contain-inline-css */ 202</style> 203 204<style id="global-styles-inline-css"> 205:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgb(6,147,227) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgb(252,185,0) 0%,rgb(255,105,0) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgb(255,105,0) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);
205--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgb(255, 255, 255), 6px 6px rgb(0, 0, 0);--wp--preset--shadow--crisp: 6px 6px 0px rgb(0, 0, 0);}.wp-block-button{--wp--preset--dimension--25: 25%;--wp--preset--dimension--50: 50%;--wp--preset--dimension--75: 75%;--wp--preset--dimension--100: 100%;}:where(body) { margin: 0; }:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}body{padding-top: 0px;padding-right: 0px;padding-bottom: 0px;padding-left: 0px;}:root :where(.wp-element-button, .wp-block-button__link){background-color: #32373c;border-width: 0;color: #fff;font-family: inherit;font-size: inherit;font-style: inherit;font-weight: inherit;letter-spacing: inherit;line-height: inherit;padding-top: calc(0.667em + 2px);padding-right: calc(1.333em + 2px);padding-bottom: calc(0.667em + 2px);padding-left: calc(1.333em + 2px);text-decoration: none;text-transform: inherit;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}
205.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;} 206/*# sourceURL=global-styles-inline-css */ 207</style> 208 209<link rel="https://api.w.org/" href="https://thenewstack.io/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://thenewstack.io/wp-json/wp/v2/pages/3537131" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://thenewstack.io/xmlrpc.php?rsd" /> 210<meta name="generator" content="WordPress 7.1" /> 211<link rel='shortlink' href='https://thenewstack.io/?p=3537131' /> 212<meta name="generator" content="Site Kit by Google 1.187.0" />
212<script> 213 const adSettings = {"page_number":1,"page_type":"page","environment":"production"}; 214 215 const AdManager = { 216 init: function() { 217 window.googletag = window.googletag || {}; 218 googletag.cmd = googletag.cmd || []; 219 this.load(); 220 }, 221 222 sanitize: function (value = '') { 223 return String(value) 224 .trim() 225 // Remove characters forbidden at https://support.google.com/admanager/answer/10020177. 226 .replace(/'|\\|'|=|!|#|\*|~|;|\^|\(|\)|<|>|\[|\]|,|&/g, '') 227 // Extra spaces aren't forbidden, but rarely desired. 228 .replace(/\s+/, ' ') 229 // The + sign is also forbidden, but is being replaced with 'and' instead. 230 .replace('+', 'and') 231 // Maximum length of 40 for values. 232 .substring(0, 40); 233 }, 234 235 sanitizeTargetingValue: function (value = '') { 236 if (Array.isArray(value)) { 237 return value.map(this.sanitize); 238 } else { 239 return this.sanitize(value); 240 } 241 }, 242 243 load: function() { 244 const slots = { 245 'rootAdUnit' : '/22873384501/tns/', 246 'homepage' : [ 247 // { 248 // 'adSlot': 'div-gpt-ad-native-inline-1', 249 // 'adUnit': 'native_inline_1', 250 // 'position': 'inline_1', 251 // }, 252 // { 253 // 'adSlot': 'div-gpt-ad-native-inline-2', 254 // 'adUnit': 'native_inline_2', 255 // 'position': 'inline_2', 256 // }, 257 // { 258 // 'adSlot': 'div-gpt-ad-native-sidebar-1', 259 // 'adUnit': 'native_sidebar_1', 260 // 'position': 'sidebar_1', 261 // }, 262 // { 263 // 'adSlot': 'div-gpt-ad-native-sidebar-2', 264 // 'adUnit': 'native_sidebar_2', 265 // 'position': 'sidebar_2', 266 // }, 267 // { 268 // 'adSlot': 'div-gpt-ad-native-sidebar-3', 269 // 'adUnit': 'native_sidebar_3', 270 // 'position': 'sidebar_3', 271 // }, 272 // { 273 // 'adSlot': 'div-gpt-ad-native-sidebar-4', 274 // 'adUnit': 'native_sidebar_4', 275 // 'position': 'sidebar_4', 276 // }, 277 // { 278 // 'adSlot': 'div-gpt-ad-native-sidebar-5', 279 // 'adUnit': 'native_sidebar_5', 280 // 'position': 'sidebar_5', 281 // }, 282 // { 283 // 'adSlot': 'div-gpt-ad-native-sidebar-6', 284 // 'adUnit': 'native_sidebar_6', 285 // 'position': 'sidebar_6', 286 // }, 287 // { 288 // 'adSlot': 'div-gpt-ad-native-sidebar-7', 289 // 'adUnit': 'native_sidebar_7', 290 // 'position': 'sidebar_7', 291 // }, 292 // { 293 // 'adSlot': 'div-gpt-ad-native-sidebar-8', 294 // 'adUnit': 'native_sidebar_8', 295 // 'position': 'sidebar_8', 296 // }, 297 // { 298 // 'adSlot': 'div-gpt-ad-native-sidebar-9', 299 // 'adUnit': 'native_sidebar_9', 300 // 'position': 'sidebar_9', 301 // }, 302 // { 303 // 'adSlot': 'div-gpt-ad-native-sidebar-10', 304 // 'adUnit': 'native_sidebar_10', 305 // 'position': 'sidebar_10', 306 // }, 307 ], 308 'post': [ 309 { 310 'adSlot': 'div-gpt-ad-native-sidebar-1', 311 'adUnit': 'native_sidebar_1', 312 'position': 'sidebar_1', 313 'sizes': ['fluid', [300, 250], [300, 600]], 314 }, 315 ] 316 }; 317 318 googletag.cmd.push(() => { 319 // Configure all ad slots on the page to be expanded by default, but 320 // collapse slots that are unable to be filled with an ad. 321 googletag.pubads().collapseEmptyDivs(); 322 323 googletag 324 .defineSlot('/22873384501/tns/native_top', ['fluid'], 'div-gpt-ad-native-top') 325 .setTargeting('position ', 'top') 326 .addService(googletag.pubads()); 327 googletag 328 .defineSlot('/22873384501/tns/native_bottom', ['fluid'], 'div-gpt-ad-native-bottom') 329 .setTargeting('position ', 'bottom') 330 .addService(googletag.pubads()); 331 332 // Define ad slots. 333 if (1 === parseInt(adSettings.page_number)) { 334 if (typeof slots[adSettings['page_type']] !== 'undefined') { 335 for (let slot of slots[adSettings['page_type']]) { 336 googletag 337 .defineSlot(slots.rootAdUnit + slot.adUnit, slot.sizes || ['fluid'], slot.adSlot) 338 .setTargeting('position ', slot.position) 339 .addService(googletag.pubads()); 340 } 341 } 342 } else if (adSettings.page_type === 'homepage' || adSettings.page_type === 'post') { 343 for (let i = 1; i <= 20; i++) { 344 googletag 345 .defineSlot('/22873384501/tns/native_inline_'+i, ['fluid'], 'div-gpt-ad-native-inline-'+i) 346 .setTargeting('position', 'inline_'+i) 347 .addService(googletag.pubads()); 348 } 349 } 350 351 // Set targeting for all ad slots on the page. 352 for (let key in adSettings) { 353 if (adSettings.hasOwnProperty(key)) { 354 googletag.pubads().setTargeting(key, this.sanitizeTargetingValue( adSettings[key] )); 355 } 356 } 357 358 googletag.pubads().addEventListener('slotRenderEnded', function (e) { 359 if (!e.isEmpty) { 360 return; 361 } 362 const slotId = e.slot.getSlotElementId(); 363 if (slotId.includes('inline')) { 364 // Remove inline ad containers on the homepage from the DOM 365 // to prevent the nth-selector styling from being thrown off 366 // by the hidden ad container. 367 const slot = document.getElementById(slotId); 368 if (!slot) { 369 return; 370 } 371 slot.parentNode.removeChild(slot); 372 } 373
374 // The page layout shuffling on desktop article is causing the 375 // ad code to have trouble creating the empty iframe, so the 376 // ad slot is not getting collapsed. After a small delay, 377 // manually collapse the slot. 378 setTimeout(() => { 379 const adContainer = document.getElementById(slotId); 380 if (adContainer) { 381 adContainer.style.display = 'none'; 382 } 383 }, 1800) 384 }); 385 386 googletag.pubads().addEventListener('slotOnload', (event) => { 387 // - Native ads have a small chance of having the iframe within 388 // them set to have a height of 0. 389 // - After the ad signals that it has loaded, check whether its 390 // iframe's height is very small. 391 // - If it is, assume an error has happened and change the height 392 // to be the same as the container. 393 394 const slot = event.slot; 395 if (!slot) return; 396 397 setTimeout(() => { 398 const id = slot.getSlotElementId(); 399 400 const container = document.getElementById(id); 401 if (!container) return; 402 403 let iframe = container.querySelector('iframe'); 404 if (!iframe) return; 405 406 let iframeHeight = iframe.offsetHeight; 407 // Pick 10 instead of 0 just in case a border or something 408 // similar has made the iframe register as having a few 409 // pixels. 410 if (iframeHeight > 10) return; 411 else { 412 window.dataLayer.push({ 413 'event' : 'gam_ad_unit_blank', 414 'context' : id 415 }); 416 } 417 418 // Determine the height reserved by the ad container due to 419 // the page's styling, minus the vertical padding. 420 const containerStyle = getComputedStyle(container); 421 let reservedSpace = parseFloat(containerStyle.height) - parseFloat(containerStyle.paddingTop) - parseFloat(containerStyle.paddingBottom); 422 if (reservedSpace < 1) return; 423 424 iframe.style.height = reservedSpace + 'px'; 425 iframe.style.minWidth = "100%"; 426 }, 1200) 427 428 }); 429 430 // Set targeting params from BlueConic (if any). 431 this.blueConicGAMConnection(); 432 433 // Enable SRA and services. 434 googletag.pubads().enableSingleRequest(); 435 googletag.pubads().enableLazyLoad(); 436 googletag.enableServices(); 437 438 // If BC callback happens later, update targeting params. 439 this.setupBlueConicGAMCallback(); 440 }); 441 }, 442 443 /** 444 * Instantly connect BlueConic-supplied values to the GAM page-level targeting. 445 */ 446 blueConicGAMConnection() { 447 if (typeof Storage !== 'undefined') { 448 const targetingParamStr = localStorage.getItem('bcDFPTargetingParams'); 449 if (targetingParamStr) { 450 const targetingParameters = JSON.parse(targetingParamStr); // set page-level targeting parameters. 451 targetingParameters.forEach((param) => { 452 window.googletag.pubads().setTargeting(param.key, param.value); 453 }); 454 } 455 } 456 }, 457 458 /** 459 * Listen for BlueConic DFP callback and update GAM targeting params. 460 */ 461 setupBlueConicGAMCallback() { 462 window.bcDFPCallback = function(params) { 463 if (!params || params.length === 0) return; // ignore empty callback 464 465 params.forEach(param => { 466 window.googletag.pubads().setTargeting(param.key, param.value); 467 }); 468 }; 469 }, 470}; 471 472window.AdManager = AdManager; 473 474AdManager.init(); 475 476 (function () { 477 let nativeAds = []; 478 479 /** 480 * Determine the current breakpoint. 481 * 482 * The native ad will set a CSS class on the ad's body tag based on the 483 * breakpoint returned here. If you return "large" then the class 484 * "breakpoint-large" will be set on the native ad. 485 * 486 * @returns string The name of the current breakpoint. 487 */ 488 function getBreakpoint() { 489 const width = window.innerWidth || document.body.clientWidth; 490 // Customize these breakpoints to match your site. They can be anything 491 // you want, so long as you style the native ad matching the classname 492 // `breakpoint-${thisReturnValue}`. 493 if (width >= 1400) { 494 return 'x-large'; 495 } else if (width >= 1024) { 496 return 'large'; 497 } else if (width >= 768) { 498 return 'medium'; 499 } else { 500 return 'small'; 501 } 502 } 503 504 /** 505 * Tell an iframe the current breakpoint using postMessage. 506 * 507 * @param {object} iframe An iframe's window object. 508 */ 509 function sendSize(iframe) {
510 const msg = `breakpoint:${getBreakpoint()}`; 511 iframe.postMessage(msg, '*'); 512 } 513 514 /** 515 * Send the current breakpoint size to all native ads that have loaded. 516 */ 517 function notifyAllNativeAds() { 518 if (!nativeAds || nativeAds.length === 0) { 519 return; 520 } 521 522 nativeAds.forEach((nativeAd) => { 523 sendSize(nativeAd); 524 }); 525 } 526 527 /** 528 * Initialize the necessary event listeners. 529 */ 530 function init() { 531 // The Native Ad has loaded. Immediately tell it the current breakpoint, 532 // and store it in an array so we can communicate it later if the browser 533 // resizes. 534 window.addEventListener( 535 'message', 536 function (e) { 537 if (e.data === 'initdfp') { 538 sendSize(e.source); 539 nativeAds.push(e.source); 540 } 541 } 542 ); 543 544 // Send an updated breakpoint to all native ads that have previously 545 // loaded on the page. 546 window.addEventListener( 547 'resize', 548 notifyAllNativeAds, 549 { 550 passive: true, 551 } 552 ); 553 } 554 555 init(); 556})(); 557 </script>
557 558 <link rel="icon" href="https://cdn.thenewstack.io/media/2026/03/b2fc1b22-cropped-89b6d319-download-32x32.png" sizes="32x32" /> 559<link rel="icon" href="https://cdn.thenewstack.io/media/2026/03/b2fc1b22-cropped-89b6d319-download-192x192.png" sizes="192x192" /> 560<link rel="apple-touch-icon" href="https://cdn.thenewstack.io/media/2026/03/b2fc1b22-cropped-89b6d319-download-180x180.png" /> 561<meta name="msapplication-TileImage" content="https://cdn.thenewstack.io/media/2026/03/b2fc1b22-cropped-89b6d319-download-270x270.png" /> 562 563
vendor: 456 bytes, lines 563-565
563<script> 564/*! jQuery v1.12.4 | (c) jQuery Foundation | jquery.org/license */ 565!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=a.document,e=c.slice,f=c.concat,g=c.push,h=c.indexOf,i={},j=i.toString,k=i.hasOwnProperty,l={},m="1.12.4
vendor: 17,072 bytes, line 565
565",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return e.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:e.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a){return n.each(this,a)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(e.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor()},push:g,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(n.isPlainObject(c)||(b=n.isArray(c)))?(b?(b=!1,f=a&&n.isArray(a)?a:[]):f=a&&n.isPlainObject(a)?a:{},g[d]=n.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray||function(a){return"array"===n.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){var b=a&&a.toString();return!n.isArray(a)&&b-parseFloat(b)+1>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==n.type(a)||a.nodeType||n.isWindow(a))return!1;try{if(a.constructor&&!k.call(a,"constructor")&&!k.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(!l.ownFirst)for(b in a)return k.call(a,b);for(b in a);return void 0===b||k.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?i[j.call(a)]||"object":typeof a},globalEval:function(b){b&&n.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b){var c,d=0;if(s(a)){for(c=a.length;c>d;d++)if(b.call(a[d],d,a[d])===!1)break}else for(d in a)if(b.call(a[d],d,a[d])===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):g.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(h)return h.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,e,g=0,h=[];if(s(a))for(d=a.length;d>g;g++)e=b(a[g],g,c),null!=e&&h.push(e);else for(g in a)e=b(a[g],g,c),null!=e&&h.push(e);return f.apply([],h)},guid:1,proxy:function(a,b){var c,d,f;return"string"==typeof b&&(f=a[b],b=a,a=f),n.isFunction(a)?(c=e.call(arguments,2),d=function(){return a.apply(b||this,c.concat(e.call(arguments)))},d.guid=a.guid=a.guid||n.guid++,d):void 0},now:function(){return+new Date},support:l}),"function"==typeof Symbol&&(n.fn[Symbol.iterator]=c[Symbol.iterator]),n.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(a,b){i["[object "+b+"]"]=b.toLowerCase()});function s(a){var b=!!a&&"length"in a&&a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ga(),z=ga(),A=ga(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+M+"))|)"+L+"*\\]",O=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+N+")*)|.*)\\)|)",P=new RegExp(L+"+","g"),Q=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),R=new RegExp("^"+L+"*,"+L+"*"),S=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),T=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),U=new RegExp(O),V=new RegExp("^"+M+"$"),W={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M+"|[*])"),ATTR:new RegExp("^"+N),PSEUDO:new RegExp("^"+O),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},X=/^(?:input|select|textarea|button)$/i,Y=/^h\d$/i,Z=/^[^{]+\{\s*\[native \w/,$=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,_=/[+~]/,aa=/'|\\/g,ba=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),ca=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},da=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(ea){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fa(a,b,d,e){var f,h,j,k,l,o,r,s,w=b&&b.ownerDocument,x=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==x&&9!==x&&11!==x)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==x&&(o=$.exec(a)))if(f=o[1]){if(9===x){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(w&&(j=w.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(o[2])return H.apply(d,b.getElementsByTagName(a)),d;if((f=o[3])&&c.getElementsByClassName&&b.getElementsByClassName)return H.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==x)w=b,s=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(aa,"\\$&"):b.setAttribute("id",k=u),r=g(a),h=r.length,l=V.test(k)?"#"+k:"[id='"+k+"']";while(h--)r[h]=l+" "+qa(r[h]);s=r.join(","),w=_.test(a)&&oa(b.parentNode)||b}if(s)try{return H.apply(d,w.querySelectorAll(s)),d}catch(y){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(Q,"$1"),b,d,e)}function ga(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ha(a){return a[u]=!0,a}function ia(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ja(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function ka(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function la(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function na(a){return ha(function(b){return b=+b,ha(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function oa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=fa.support={},f=fa.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fa.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ia(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ia(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Z.test(n.getElementsByClassName),c.getById=ia(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ba,ca);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ba,ca);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return"undefined"!=typeof b.getElementsByClassName&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=Z.test(n.querySelectorAll))&&(ia(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\r\\' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ia(function(a){var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Z.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ia(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",O)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Z.test(o.compareDocumentPosition),t=b||Z.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return ka(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?ka(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},fa.matches=function(a,b){return fa(a,null,null,b)},fa.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(T,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fa(b,n,null,[a]).length>0},fa.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fa.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fa.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fa.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fa.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fa.selectors={cacheLength:50,createPseudo:ha,match:W,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ba,ca),a[3]=(a[3]||a[4]||a[5]||"").replace(ba,ca),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||fa.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&fa.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return W.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&U.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ba,ca).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=fa.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(P," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fa.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ha(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ha(function(a){var b=[],c=[],d=h(a.replace(Q,"$1"));return d[u]?ha(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ha(function(a){return function(b){return fa(a,b).length>0}}),contains:ha(function(a){return a=a.replace(ba,ca),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ha(function(a){return V.test(a||"")||fa.error("unsupported lang: "+a),a=a.replace(ba,ca).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Y.test(a.nodeName)}
vendor: 10,751 bytes, line 565
565,input:function(a){return X.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:na(function(){return[0]}),last:na(function(a,b){return[b-1]}),eq:na(function(a,b,c){return[0>c?c+b:c]}),even:na(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:na(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:na(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:na(function(a,b,c){for(var d=0>c?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=la(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=ma(b);function pa(){}pa.prototype=d.filters=d.pseudos,d.setFilters=new pa,g=fa.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){c&&!(e=R.exec(h))||(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=S.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(Q," ")}),h=h.slice(c.length));for(g in d.filter)!(e=W[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?fa.error(a):z(a,i).slice(0)};function qa(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function ra(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j,k=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(j=b[u]||(b[u]={}),i=j[b.uniqueID]||(j[b.uniqueID]={}),(h=i[d])&&h[0]===w&&h[1]===f)return k[2]=h[2];if(i[d]=k,k[2]=a(b,c,g))return!0}}}function sa(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ta(a,b,c){for(var d=0,e=b.length;e>d;d++)fa(a,b[d],c);return c}function ua(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(c&&!c(f,d,e)||(g.push(f),j&&b.push(h)));return g}function va(a,b,c,d,e,f){return d&&!d[u]&&(d=va(d)),e&&!e[u]&&(e=va(e,f)),ha(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ta(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ua(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ua(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ua(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function wa(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ra(function(a){return a===b},h,!0),l=ra(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[ra(sa(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return va(i>1&&sa(m),i>1&&qa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(Q,"$1"),c,e>i&&wa(a.slice(i,e)),f>e&&wa(a=a.slice(e)),f>e&&qa(a))}m.push(c)}return sa(m)}function xa(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=F.call(i));u=ua(u)}H.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&fa.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ha(f):f}return h=fa.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wa(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xa(e,d)),f.selector=a}return f},i=fa.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(ba,ca),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=W.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(ba,ca),_.test(j[0].type)&&oa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qa(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,!b||_.test(a)&&oa(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ia(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ia(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||ja("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ia(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ja("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ia(function(a){return null==a.getAttribute("disabled")})||ja(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fa}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.uniqueSort=n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},v=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},w=n.expr.match.needsContext,x=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,y=/^.[^:#\[\.,]*$/;function z(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(y.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return n.inArray(a,b)>-1!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;e>b;b++)if(n.contains(d[b],this))return!0}));for(b=0;e>b;b++)n.find(a,d[b],c);return c=this.pushStack(e>1?n.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(z(this,a||[],!1))},not:function(a){return this.pushStack(z(this,a||[],!0))},is:function(a){return!!z(this,"string"==typeof a&&w.test(a)?n(a):a||[],!1).length}});var A,B=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,C=n.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||A,"string"==typeof a){if(e="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:B.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),x.test(e[1])&&n.isPlainObject(b))for(e in b)n.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}if(f=d.getElementById(e[2]),f&&f.parentNode){if(f.id!==e[2])return A.find(a);this.length=1,this[0]=f}return this.context=d,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?"undefined"!=typeof c.ready?c.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};C.prototype=n.fn,A=n(d);var D=/^(?:parents|prev(?:Until|All))/,E={children:!0,contents:!0,next:!0,prev:!0};n.fn.extend({has:function(a){var b,c=n(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(n.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=w.test(a)||"string"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?n.inArray(this[0],n(a)):n.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.uniqueSort(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function F(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return u(a,"parentNode")},parentsUntil:function(a,b,c){return u(a,"parentNode",c)},next:function(a){return F(a,"nextSibling")},prev:function(a){return F(a,"previousSibling")},nextAll:function(a){return u(a,"nextSibling")},prevAll:function(a){return u(a,"previousSibling")},nextUntil:function(a,b,c){return u(a,"nextSibling",c)},prevUntil:function(a,b,c){return u(a,"previousSibling",c)},siblings:function(a){return v((a.parentNode||{}).firstChild,a)},children:function(a){return v(a.firstChild)},contents:function(a){return n.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(E[a]||(e=n.uniqueSort(e)),D.test(a)&&(e=e.reverse())),this.pushStack(e)}});var G=/\S+/g;function H(a){var b={};return n.each(a.match(G)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?H(a):n.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h<f.length)f[h].apply(c[0],c[1])===!1&&a.stopOnFalse&&(h=f.length,c=!1)}a.memory||(c=!1),b=!1,e&&(f=c?[]:"")},j={add:function(){return f&&(c&&!b&&(h=f.length-1,g.push(c)),function d(b){n.each(b,function(b,c){n.isFunction(c)?a.unique&&j.has(c)||f.push(c):c&&c.length&&"string"!==n.type(c)&&d(c)})}(arguments),c&&!b&&i()),this},remove:function(){return n.each(arguments,function(a,b){var c;while((c=n.inArray(b,f,c))>-1)f.splice(c,1),h>=c&&h--}),this},has:function(a){return a?n.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=!0,c||j.disable(),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.pu
vendor: 4,130 bytes, lines 565-566
565sh(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().progress(c.notify).done(c.resolve).fail(c.reject):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=e.call(arguments),d=c.length,f=1!==d||a&&n.isFunction(a.promise)?d:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(d){b[a]=this,c[a]=arguments.length>1?e.call(arguments):d,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(d>1)for(i=new Array(d),j=new Array(d),k=new Array(d);d>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().progress(h(b,j,i)).done(h(b,k,c)).fail(g.reject):--f;return f||g.resolveWith(k,c),g.promise()}});var I;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){(a===!0?--n.readyWait:n.isReady)||(n.isReady=!0,a!==!0&&--n.readyWait>0||(I.resolveWith(d,[n]),n.fn.triggerHandler&&(n(d).triggerHandler("ready"),n(d).off("ready"))))}});function J(){d.addEventListener?(d.removeEventListener("DOMContentLoaded",K),a.removeEventListener("load",K)):(d.detachEvent("onreadystatechange",K),a.detachEvent("onload",K))}function K(){(d.addEventListener||"load"===a.event.type||"complete"===d.readyState)&&(J(),n.ready())}n.ready.promise=function(b){if(!I)if(I=n.Deferred(),"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll)a.setTimeout(n.ready);else if(d.addEventListener)d.addEventListener("DOMContentLoaded",K),a.addEventListener("load",K);else{d.attachEvent("onreadystatechange",K),a.attachEvent("onload",K);var c=!1;try{c=null==a.frameElement&&d.documentElement}catch(e){}c&&c.doScroll&&!function f(){if(!n.isReady){try{c.doScroll("left")}catch(b){return a.setTimeout(f,50)}J(),n.ready()}}()}return I.promise(b)},n.ready.promise();var L;for(L in n(l))break;l.ownFirst="0"===L,l.inlineBlockNeedsLayout=!1,n(function(){var a,b,c,e;c=d.getElementsByTagName("body")[0],c&&c.style&&(b=d.createElement("div"),e=d.createElement("div"),e.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(e).appendChild(b),"undefined"!=typeof b.style.zoom&&(b.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",l.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&&(c.style.zoom=1)),c.removeChild(e))}),function(){var a=d.createElement("div");l.deleteExpando=!0;try{delete a.test}catch(b){l.deleteExpando=!1}a=null}();var M=function(a){var b=n.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b},N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(O,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}n.data(a,b,c)}else c=void 0; 566}return c}function Q(a){var b;for(b in a)if(("data"!==b||!n.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;return!0}function R(a,b,d,e){if(M(a)){var f,g,h=n.expando,i=a.nodeType,j=i?n.cache:a,k=i?a[h]:a[h]&&h;if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||n.guid++:h),j[k]||(j[k]=i?{}
vendor: 4,101 bytes, line 566
566:{toJSON:n.noop}),"object"!=typeof b&&"function"!=typeof b||(e?j[k]=n.extend(j[k],b):j[k].data=n.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[n.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[n.camelCase(b)])):f=g,f}}function S(a,b,c){if(M(a)){var d,e,f=a.nodeType,g=f?n.cache:a,h=f?a[n.expando]:n.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){n.isArray(b)?b=b.concat(n.map(b,n.camelCase)):b in d?b=[b]:(b=n.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!Q(d):!n.isEmptyObject(d))return}(c||(delete g[h].data,Q(g[h])))&&(f?n.cleanData([a],!0):l.deleteExpando||g!=g.window?delete g[h]:g[h]=void 0)}}}n.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?n.cache[a[n.expando]]:a[n.expando],!!a&&!Q(a)},data:function(a,b,c){return R(a,b,c)},removeData:function(a,b){return S(a,b)},_data:function(a,b,c){return R(a,b,c,!0)},_removeData:function(a,b){return S(a,b,!0)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=n.data(f),1===f.nodeType&&!n._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d])));n._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){n.data(this,a)}):arguments.length>1?this.each(function(){n.data(this,a,b)}):f?P(f,a,n.data(f,a)):void 0},removeData:function(a){return this.each(function(){n.removeData(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=n._data(a,b),c&&(!d||n.isArray(c)?d=n._data(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return n._data(a,c)||n._data(a,c,{empty:n.Callbacks("once memory").add(function(){n._removeData(a,b+"queue"),n._removeData(a,c)})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?n.queue(this[0],a):void 0===b?this:this.each(function(){var c=n.queue(this,a,b);n._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&n.dequeue(this,a)})},dequeue:function(a){return this.each(function(){n.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=n.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=n._data(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}}),function(){var a;l.shrinkWrapBlocks=function(){if(null!=a)return a;a=!1;var b,c,e;return c=d.getElementsByTagName("body")[0],c&&c.style?(b=d.createElement("div"),e=d.createElement("div"),e.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(e).appendChild(b),"undefined"!=typeof b.style.zoom&&(b.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1",b.appendChild(d.createElement("div")).style.width="5px",a=3!==b.offsetWidth),c.removeChild(e),a):void 0}}();var T=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,U=new RegExp("^(?:([+-])=|)("+T+")([a-z%]*)$","i"),V=["Top","Right","Bottom","Left"],W=function(a,b){return a=b||a,"none"===n.css(a,"display")||!n.contains(a.ownerDocument,a)};function X(a,b,c,d){var e,f=1,g=20,h=d?function(){return d.cur()}:function(){return n.css(a,b,"")},i=h(),j=c&&c[3]||(n.cssNumber[b]?"":"px"),k=(n.cssNumber[b]||"px"!==j&&+i)&&U.exec(n.css(a,b));if(k&&k[3]!==j){j=j||k[3],c=c||[],k=+i||1;do f=f||".5",k/=f,n.style(a,b,k+j);while(f!==(f=h()/i)&&1!==f&&--g)}return c&&(k=+k||+i||0,e=c[1]?k+(c[1]+1)*c[2]:+c[2],d&&(d.unit=j,d.start=k,d.end=e)),e}var Y=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===n.type(c)){e=!0;
vendor: 6,432 bytes, line 566
566for(h in c)Y(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,n.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(n(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},Z=/^(?:checkbox|radio)$/i,$=/<([\w:-]+)/,_=/^$|\/(?:java|ecma)script/i,aa=/^\s+/,ba="abbr|article|aside|audio|bdi|canvas|data|datalist|details|dialog|figcaption|figure|footer|header|hgroup|main|mark|meter|nav|output|picture|progress|section|summary|template|time|video";function ca(a){var b=ba.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}!function(){var a=d.createElement("div"),b=d.createDocumentFragment(),c=d.createElement("input");a.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",l.leadingWhitespace=3===a.firstChild.nodeType,l.tbody=!a.getElementsByTagName("tbody").length,l.htmlSerialize=!!a.getElementsByTagName("link").length,l.html5Clone="<:nav></:nav>"!==d.createElement("nav").cloneNode(!0).outerHTML,c.type="checkbox",c.checked=!0,b.appendChild(c),l.appendChecked=c.checked,a.innerHTML="<textarea>x</textarea>",l.noCloneChecked=!!a.cloneNode(!0).lastChild.defaultValue,b.appendChild(a),c=d.createElement("input"),c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),a.appendChild(c),l.checkClone=a.cloneNode(!0).cloneNode(!0).lastChild.checked,l.noCloneEvent=!!a.addEventListener,a[n.expando]=1,l.attributes=!a.getAttribute(n.expando)}();var da={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:l.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]};da.optgroup=da.option,da.tbody=da.tfoot=da.colgroup=da.caption=da.thead,da.th=da.td;function ea(a,b){var c,d,e=0,f="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||n.nodeName(d,b)?f.push(d):n.merge(f,ea(d,b));return void 0===b||b&&n.nodeName(a,b)?n.merge([a],f):f}function fa(a,b){for(var c,d=0;null!=(c=a[d]);d++)n._data(c,"globalEval",!b||n._data(b[d],"globalEval"))}var ga=/<|&#?\w+;/,ha=/<tbody/i;function ia(a){Z.test(a.type)&&(a.defaultChecked=a.checked)}function ja(a,b,c,d,e){for(var f,g,h,i,j,k,m,o=a.length,p=ca(b),q=[],r=0;o>r;r++)if(g=a[r],g||0===g)if("object"===n.type(g))n.merge(q,g.nodeType?[g]:g);else if(ga.test(g)){i=i||p.appendChild(b.createElement("div")),j=($.exec(g)||["",""])[1].toLowerCase(),m=da[j]||da._default,i.innerHTML=m[1]+n.htmlPrefilter(g)+m[2],f=m[0];while(f--)i=i.lastChild;if(!l.leadingWhitespace&&aa.test(g)&&q.push(b.createTextNode(aa.exec(g)[0])),!l.tbody){g="table"!==j||ha.test(g)?"<table>"!==m[1]||ha.test(g)?0:i:i.firstChild,f=g&&g.childNodes.length;while(f--)n.nodeName(k=g.childNodes[f],"tbody")&&!k.childNodes.length&&g.removeChild(k)}n.merge(q,i.childNodes),i.textContent="";while(i.firstChild)i.removeChild(i.firstChild);i=p.lastChild}else q.push(b.createTextNode(g));i&&p.removeChild(i),l.appendChecked||n.grep(ea(q,"input"),ia),r=0;while(g=q[r++])if(d&&n.inArray(g,d)>-1)e&&e.push(g);else if(h=n.contains(g.ownerDocument,g),i=ea(p.appendChild(g),"script"),h&&fa(i),c){f=0;while(g=i[f++])_.test(g.type||"")&&c.push(g)}return i=null,p}!function(){var b,c,e=d.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(l[b]=c in a)||(e.setAttribute(c,"t"),l[b]=e.attributes[c].expando===!1);e=null}();var ka=/^(?:input|select|textarea)$/i,la=/^key/,ma=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,na=/^(?:focusinfocus|focusoutblur)$/,oa=/^([^.]*)(?:\.(.+)|)/;function pa(){return!0}function qa(){return!1}function ra(){try{return d.activeElement}catch(a){}}function sa(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)sa(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=qa;else if(!e)return a;return 1===f&&(g=e,e=function(a){return n().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=n.guid++)),a.each(function(){n.event.add(this,b,e,d,c)})}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=n._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=n.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return"undefined"==typeof n||a&&n.event.triggered===a.type?void 0:n.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(G)||[""],h=b.length;while(h--)f=oa.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=n.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=n.event.special[o]||{},l=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},i),(m=g[o])||(m=g[o]=[],m.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,l):m.push(l),n.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=n.hasData(a)&&n._data(a);if(r&&(k=r.events)){b=(b||"").match(G)||[""],j=b.length;while(j--)if(h=oa.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=m.length;while(f--)g=m[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(m.splice(f,1),g.selector&&m.delegateCount--,l.remove&&l.remove.call(a,g));i&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(k)&&(delete r.handle,n._removeData(a,"events"))}},trigger:function(b,c,e,f){var g,h,i,j,l,m,o,p=[e||d],q=k.call(b,"type")?b.type:b,r=k.call(b,"namespace")?b.namespace.split("."):[];if(i=m=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!na.test(q+n.event.triggered)&&(q.indexOf(".")>
vendor: 54,230 bytes, lines 566-568
566-1&&(r=q.split("."),q=r.shift(),r.sort()),h=q.indexOf(":")<0&&"on"+q,b=b[n.expando]?b:new n.Event(q,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=r.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+r.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:n.makeArray(c,[b]),l=n.event.special[q]||{},f||!l.trigger||l.trigger.apply(e,c)!==!1)){if(!f&&!l.noBubble&&!n.isWindow(e)){for(j=l.delegateType||q,na.test(j+q)||(i=i.parentNode);i;i=i.parentNode)p.push(i),m=i;m===(e.ownerDocument||d)&&p.push(m.defaultView||m.parentWindow||a)}o=0;while((i=p[o++])&&!b.isPropagationStopped())b.type=o>1?j:l.bindType||q,g=(n._data(i,"events")||{})[b.type]&&n._data(i,"handle"),g&&g.apply(i,c),g=h&&i[h],g&&g.apply&&M(i)&&(b.result=g.apply(i,c),b.result===!1&&b.preventDefault());if(b.type=q,!f&&!b.isDefaultPrevented()&&(!l._default||l._default.apply(p.pop(),c)===!1)&&M(e)&&h&&e[q]&&!n.isWindow(e)){m=e[h],m&&(e[h]=null),n.event.triggered=q;try{e[q]()}catch(s){}n.event.triggered=void 0,m&&(e[h]=m)}return b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,d,f,g,h=[],i=e.call(arguments),j=(n._data(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())a.rnamespace&&!a.rnamespace.test(g.namespace)||(a.handleObj=g,a.data=g.data,d=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==d&&(a.result=d)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&("click"!==a.type||isNaN(a.button)||a.button<1))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>-1:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},fix:function(a){if(a[n.expando])return a;var b,c,e,f=a.type,g=a,h=this.fixHooks[f];h||(this.fixHooks[f]=h=ma.test(f)?this.mouseHooks:la.test(f)?this.keyHooks:{}),e=h.props?this.props.concat(h.props):this.props,a=new n.Event(g),b=e.length;while(b--)c=e[b],a[c]=g[c];return a.target||(a.target=g.srcElement||d),3===a.target.nodeType&&(a.target=a.target.parentNode),a.metaKey=!!a.metaKey,h.filter?h.filter(a,g):a},props:"altKey bubbles cancelable ctrlKey currentTarget detail eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,e,f,g=b.button,h=b.fromElement;return null==a.pageX&&null!=b.clientX&&(e=a.target.ownerDocument||d,f=e.documentElement,c=e.body,a.pageX=b.clientX+(f&&f.scrollLeft||c&&c.scrollLeft||0)-(f&&f.clientLeft||c&&c.clientLeft||0),a.pageY=b.clientY+(f&&f.scrollTop||c&&c.scrollTop||0)-(f&&f.clientTop||c&&c.clientTop||0)),!a.relatedTarget&&h&&(a.relatedTarget=h===a.target?b.toElement:h),a.which||void 0===g||(a.which=1&g?1:2&g?3:4&g?2:0),a}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==ra()&&this.focus)try{return this.focus(),!1}catch(a){}},delegateType:"focusin"},blur:{trigger:function(){return this===ra()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return n.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):void 0},_default:function(a){return n.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c){var d=n.extend(new n.Event,c,{type:a,isSimulated:!0});n.event.trigger(d,null,b),d.isDefaultPrevented()&&c.preventDefault()}},n.removeEvent=d.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c)}:function(a,b,c){var d="on"+b;a.detachEvent&&("undefined"==typeof a[d]&&(a[d]=null),a.detachEvent(d,c))},n.Event=function(a,b){return this instanceof n.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?pa:qa):this.type=a,b&&n.extend(this,b),this.timeStamp=a&&a.timeStamp||n.now(),void(this[n.expando]=!0)):new n.Event(a,b)},n.Event.prototype={constructor:n.Event,isDefaultPrevented:qa,isPropagationStopped:qa,isImmediatePropagationStopped:qa,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=pa,a&&(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=pa,a&&!this.isSimulated&&(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=pa,a&&a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},n.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){n.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return e&&(e===d||n.contains(d,e))||(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),l.submit||(n.event.special.submit={setup:function(){return n.nodeName(this,"form")?!1:void n.event.add(this,"click._submit keypress._submit",function(a){var b=a.target,c=n.nodeName(b,"input")||n.nodeName(b,"button")?n.prop(b,"form"):void 0;c&&!n._data(c,"submit")&&(n.event.add(c,"submit._submit",function(a){a._submitBubble=!0}),n._data(c,"submit",!0))})},postDispatch:function(a){a._submitBubble&&(delete a._submitBubble,this.parentNode&&!a.isTrigger&&n.event.simulate("submit",this.parentNode,a))},teardown:function(){return n.nodeName(this,"form")?!1:void n.event.remove(this,"._submit")}}),l.change||(n.event.special.change={setup:function(){return ka.test(this.nodeName)?("checkbox"!==this.type&&"radio"!==this.type||(n.event.add(this,"propertychange._change",function(a){"checked"===a.originalEvent.propertyName&&(this._justChanged=!0)}),n.event.add(this,"click._change",function(a){this._justChanged&&!a.isTrigger&&(this._justChanged=!1),n.event.simulate("change",this,a)})),!1):void n.event.add(this,"beforeactivate._change",function(a){var b=a.target;ka.test(b.nodeName)&&!n._data(b,"change")&&(n.event.add(b,"change._change",function(a){!this.parentNode||a.isSimulated||a.isTrigger||n.event.simulate("change",this.parentNode,a)}),n._data(b,"change",!0))})},handle:function(a){var b=a.target;return this!==b||a.isSimulated||a.isTrigger||"radio"!==b.type&&"checkbox"!==b.type?a.handleObj.handler.apply(this,arguments):void 0},teardown:function(){return n.event.remove(this,"._change"),!ka.test(this.nodeName)}}),l.focusin||n.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){n.event.simulate(b,a.target,n.event.fix(a))};n.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=n._data(d,b);e||d.addEventListener(a,c,!0),n._data(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=n._data(d,b)-1;e?n._data(d,b,e):(d.removeEventListener(a,c,!0),n._removeData(d,b))}}}),n.fn.extend({on:function(a,b,c,d){return sa(this,a,b,c,d)},one:function(a,b,c,d){return sa(this,a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,n(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return b!==!1&&"function"!=typeof b||(c=b,b=void 0),c===!1&&(c=qa),this.each(function(){n.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){n.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?n.event.trigger(a,b,c,!0):void 0}});var ta=/ jQuery\d+="(?:null|\d+)"/g,ua=new RegExp("<(?:"+ba+")[\\s/>]","i"),va=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,wa=/<script|<style|<link/i,xa=/checked\s*(?:[^=]|=\s*.checked.)/i,ya=/^true\/(.*)/,za=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,Aa=ca(d),Ba=Aa.appendChild(d.createElement("div"));function Ca(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function Da(a){return a.type=(null!==n.find.attr(a,"type"))+"/"+a.type,a}function Ea(a){var b=ya.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Fa(a,b){if(1===b.nodeType&&n.hasData(a)){var c,d,e,f=n._data(a),g=n._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)n.event.add(b,c,h[c][d])}g.data&&(g.data=n.extend({},g.data))}}function Ga(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!l.noCloneEvent&&b[n.expando]){e=n._data(b);for(d in e.events)n.removeEvent(b,d,e.handle);b.removeAttribute(n.expando)}"script"===c&&b.text!==a.text?(Da(b).text=a.text,Ea(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),l.html5Clone&&a.innerHTML&&!n.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&Z.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:"input"!==c&&"textarea"!==c||(b.defaultValue=a.defaultValue)}}function Ha(a,b,c,d){b=f.apply([],b);var e,g,h,i,j,k,m=0,o=a.length,p=o-1,q=b[0],r=n.isFunction(q);if(r||o>1&&"string"==typeof q&&!l.checkClone&&xa.test(q))return a.each(function(e){var f=a.eq(e);r&&(b[0]=q.call(this,e,f.html())),Ha(f,b,c,d)});if(o&&(k=ja(b,a[0].ownerDocument,!1,a,d),e=k.firstChild,1===k.childNodes.length&&(k=e),e||d)){for(i=n.map(ea(k,"script"),Da),h=i.length;o>m;m++)g=k,m!==p&&(g=n.clone(g,!0,!0),h&&n.merge(i,ea(g,"script"))),c.call(a[m],g,m);if(h)for(j=i[i.length-1].ownerDocument,n.map(i,Ea),m=0;h>m;m++)g=i[m],_.test(g.type||"")&&!n._data(g,"globalEval")&&n.contains(j,g)&&(g.src?n._evalUrl&&n._evalUrl(g.src):n.globalEval((g.text||g.textContent||g.innerHTML||"").replace(za,"")));k=e=null}return a}function Ia(a,b,c){for(var d,e=b?n.filter(b,a):a,f=0;null!=(d=e[f]);f++)c||1!==d.nodeType||n.cleanData(ea(d)),d.parentNode&&(c&&n.contains(d.ownerDocument,d)&&fa(ea(d,"script")),d.parentNode.removeChild(d));return a}n.extend({htmlPrefilter:function(a){return a.replace(va,"<$1></$2>")},clone:function(a,b,c){var d,e,f,g,h,i=n.contains(a.ownerDocument,a);if(l.html5Clone||n.isXMLDoc(a)||!ua.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(Ba.innerHTML=a.outerHTML,Ba.removeChild(f=Ba.firstChild)),!(l.noCloneEvent&&l.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(d=ea(f),h=ea(a),g=0;null!=(e=h[g]);++g)d[g]&&Ga(e,d[g]);if(b)if(c)for(h=h||ea(a),d=d||ea(f),g=0;null!=(e=h[g]);g++)Fa(e,d[g]);else Fa(a,f);return d=ea(f,"script"),d.length>0&&fa(d,!i&&ea(a,"script")),d=h=e=null,f},cleanData:function(a,b){for(var d,e,f,g,h=0,i=n.expando,j=n.cache,k=l.attributes,m=n.event.special;null!=(d=a[h]);h++)if((b||M(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)m[e]?n.event.remove(d,e):n.removeEvent(d,e,g.handle);j[f]&&(delete j[f],k||"undefined"==typeof d.removeAttribute?d[i]=void 0:d.removeAttribute(i),c.push(f))}}}),n.fn.extend({domManip:Ha,detach:function(a){return Ia(this,a,!0)},remove:function(a){return Ia(this,a)},text:function(a){return Y(this,function(a){return void 0===a?n.text(this):this.empty().append((this[0]&&this[0].ownerDocument||d).createTextNode(a))},null,a,arguments.length)},append:function(){return Ha(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ca(this,a);b.appendChild(a)}})},prepend:function(){return Ha(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ca(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ha(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ha(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&n.cleanData(ea(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&n.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return Y(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(ta,""):void 0;if("string"==typeof a&&!wa.test(a)&&(l.htmlSerialize||!ua.test(a))&&(l.leadingWhitespace||!aa.test(a))&&!da[($.exec(a)||["",""])[1].toLowerCase()]){a=n.htmlPrefilter(a);try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(ea(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=[];return Ha(this,arguments,function(b){var c=this.parentNode;n.inArray(this,a)<0&&(n.cleanData(ea(this)),c&&c.replaceChild(b,this))},a)}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=0,e=[],f=n(a),h=f.length-1;h>=d;d++)c=d===h?this:this.clone(!0),n(f[d])[b](c),g.apply(e,c.get());return this.pushStack(e)}});var Ja,Ka={HTML:"block",BODY:"block"};function La(a,b){var c=n(b.createElement(a)).appendTo(b.body),d=n.css(c[0],"display");return c.detach(),d}function Ma(a){var b=d,c=Ka[a];return c||(c=La(a,b),"none"!==c&&c||(Ja=(Ja||n("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement),b=(Ja[0].contentWindow||Ja[0].contentDocument).document,b.write(),b.close(),c=La(a,b),Ja.detach()),Ka[a]=c),c}var Na=/^margin/,Oa=new RegExp("^("+T+")(?!px)[a-z%]+$","i"),Pa=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e},Qa=d.documentElement;!function(){var b,c,e,f,g,h,i=d.createElement("div"),j=d.createElement("div");if(j.style){j.style.cssText="float:left;opacity:.5",l.opacity="0.5"===j.style.opacity,l.cssFloat=!!j.style.cssFloat,j.style.backgroundClip="content-box",j.cloneNode(!0).style.backgroundClip="",l.clearCloneStyle="content-box"===j.style.backgroundClip,i=d.createElement("div"),i.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",j.innerHTML="",i.appendChild(j),l.boxSizing=""===j.style.boxSizing||""===j.style.MozBoxSizing||""===j.style.WebkitBoxSizing,n.extend(l,{reliableHiddenOffsets:function(){return null==b&&k(),f},boxSizingReliable:function(){return null==b&&k(),e},pixelMarginRight:function(){return null==b&&k(),c},pixelPosition:function(){return null==b&&k(),b},reliableMarginRight:function(){return null==b&&k(),g},reliableMarginLeft:function(){return null==b&&k(),h}});function k(){var k,l,m=d.documentElement;m.appendChild(i),j.style.cssText="-webkit-box-sizing:border-box;box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",b=e=h=!1,c=g=!0,a.getComputedStyle&&(l=a.getComputedStyle(j),b="1%"!==(l||{}).top,h="2px"===(l||{}).marginLeft,e="4px"===(l||{width:"4px"}).width,j.style.marginRight="50%",c="4px"===(l||{marginRight:"4px"}).marginRight,k=j.appendChild(d.createElement("div")),k.style.cssText=j.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",k.style.marginRight=k.style.width="0",j.style.width="1px",g=!parseFloat((a.getComputedStyle(k)||{}).marginRight),j.removeChild(k)),j.style.display="none",f=0===j.getClientRects().length,f&&(j.style.display="",j.innerHTML="<table><tr><td></td><td>t</td></tr></table>",j.childNodes[0].style.borderCollapse="separate",k=j.getElementsByTagName("td"),k[0].style.cssText="margin:0;border:0;padding:0;display:none",f=0===k[0].offsetHeight,f&&(k[0].style.display="",k[1].style.display="none",f=0===k[0].offsetHeight)),m.removeChild(i)}}}();var Ra,Sa,Ta=/^(top|right|bottom|left)$/;a.getComputedStyle?(Ra=function(b){var c=b.ownerDocument.defaultView;return c&&c.opener||(c=a),c.getComputedStyle(b)},Sa=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ra(a),g=c?c.getPropertyValue(b)||c[b]:void 0,""!==g&&void 0!==g||n.contains(a.ownerDocument,a)||(g=n.style(a,b)),c&&!l.pixelMarginRight()&&Oa.test(g)&&Na.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f),void 0===g?g:g+""}):Qa.currentStyle&&(Ra=function(a){return a.currentStyle},Sa=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ra(a),g=c?c[b]:void 0,null==g&&h&&h[b]&&(g=h[b]),Oa.test(g)&&!Ta.test(b)&&(d=h.left,e=a.runtimeStyle,f=e&&e.left,f&&(e.left=a.currentStyle.left),h.left="fontSize"===b?"1em":g,g=h.pixelLeft+"px",h.left=d,f&&(e.left=f)),void 0===g?g:g+""||"auto"});function Ua(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}var Va=/alpha\([^)]*\)/i,Wa=/opacity\s*=\s*([^)]*)/i,Xa=/^(none|table(?!-c[ea]).+)/,Ya=new RegExp("^("+T+")(.*)$","i"),Za={position:"absolute",visibility:"hidden",display:"block"},$a={letterSpacing:"0",fontWeight:"400"},_a=["Webkit","O","Moz","ms"],ab=d.createElement("div").style;function bb(a){if(a in ab)return a;var b=a.charAt(0).toUpperCase()+a.slice(1),c=_a.length;while(c--)if(a=_a[c]+b,a in ab)return a}function cb(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=n._data(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&W(d)&&(f[g]=n._data(d,"olddisplay",Ma(d.nodeName)))):(e=W(d),(c&&"none"!==c||!e)&&n._data(d,"olddisplay",e?c:n.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}function db(a,b,c){var d=Ya.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function eb(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=n.css(a,c+V[f],!0,e)),d?("content"===c&&(g-=n.css(a,"padding"+V[f],!0,e)),"margin"!==c&&(g-=n.css(a,"border"+V[f]+"Width",!0,e))):(g+=n.css(a,"padding"+V[f],!0,e),"padding"!==c&&(g+=n.css(a,"border"+V[f]+"Width",!0,e)));return g}function fb(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=Ra(a),g=l.boxSizing&&"border-box"===n.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=Sa(a,b,f),(0>e||null==e)&&(e=a.style[b]),Oa.test(e))return e;d=g&&(l.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+eb(a,b,c||(g?"border":"content"),d,f)+"px"}n.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Sa(a,"opacity");return""===c?"1":c}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":l.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=n.camelCase(b),i=a.style;if(b=n.cssProps[h]||(n.cssProps[h]=bb(h)||h),g=n.cssHooks[b]||n.cssHooks[h],void 0===c)return g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b];if(f=typeof c,"string"===f&&(e=U.exec(c))&&e[1]&&(c=X(a,b,e),f="number"),null!=c&&c===c&&("number"===f&&(c+=e&&e[3]||(n.cssNumber[h]?"":"px")),l.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),!(g&&"set"in g&&void 0===(c=g.set(a,c,d)))))try{i[b]=c}catch(j){}}},css:function(a,b,c,d){var e,f,g,h=n.camelCase(b);return b=n.cssProps[h]||(n.cssProps[h]=bb(h)||h),g=n.cssHooks[b]||n.cssHooks[h],g&&"get"in g&&(f=g.get(a,!0,c)),void 0===f&&(f=Sa(a,b,d)),"normal"===f&&b in $a&&(f=$a[b]),""===c||c?(e=parseFloat(f),c===!0||isFinite(e)?e||0:f):f}}),n.each(["height","width"],function(a,b){n.cssHooks[b]={get:function(a,c,d){return c?Xa.test(n.css(a,"display"))&&0===a.offsetWidth?Pa(a,Za,function(){return fb(a,b,d)}):fb(a,b,d):void 0},set:function(a,c,d){var e=d&&Ra(a);return db(a,c,d?eb(a,b,d,l.boxSizing&&"border-box"===n.css(a,"boxSizing",!1,e),e):0)}}}),l.opacity||(n.cssHooks.opacity={get:function(a,b){return Wa.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=n.isNumeric(b)?"alpha(opacity="+100*b+")":"",f=d&&d.filter||c.filter||"";c.zoom=1,(b>=1||""===b)&&""===n.trim(f.replace(Va,""))&&c.removeAttribute&&(c.removeAttribute("filter"),""===b||d&&!d.filter)||(c.filter=Va.test(f)?f.replace(Va,e):f+" "+e)}}),n.cssHooks.marginRight=Ua(l.reliableMarginRight,function(a,b){return b?Pa(a,{display:"inline-block"},Sa,[a,"marginRight"]):void 0}),n.cssHooks.marginLeft=Ua(l.reliableMarginLeft,function(a,b){return b?(parseFloat(Sa(a,"marginLeft"))||(n.contains(a.ownerDocument,a)?a.getBoundingClientRect().left-Pa(a,{ 567marginLeft:0},function(){return a.getBoundingClientRect().left}):0))+"px":void 0}),n.each({margin:"",padding:"",border:"Width"},function(a,b){n.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+V[d]+b]=f[d]||f[d-2]||f[0];return e}},Na.test(a)||(n.cssHooks[a+b].set=db)}),n.fn.extend({css:function(a,b){return Y(this,function(a,b,c){var d,e,f={},g=0;if(n.isArray(b)){for(d=Ra(a),e=b.length;e>g;g++)f[b[g]]=n.css(a,b[g],!1,d);return f}return void 0!==c?n.style(a,b,c):n.css(a,b)},a,b,arguments.length>1)},show:function(){return cb(this,!0)},hide:function(){return cb(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){W(this)?n(this).show():n(this).hide()})}});function gb(a,b,c,d,e){return new gb.prototype.init(a,b,c,d,e)}n.Tween=gb,gb.prototype={constructor:gb,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||n.easing._default,this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(n.cssNumber[c]?"":"px")},cur:function(){var a=gb.propHooks[this.prop];return a&&a.get?a.get(this):gb.propHooks._default.get(this)},run:function(a){var b,c=gb.propHooks[this.prop];return this.options.duration?this.pos=b=n.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):gb.propHooks._default.set(this),this}},gb.prototype.init.prototype=gb.prototype,gb.propHooks={_default:{get:function(a){var b;return 1!==a.elem.nodeType||null!=a.elem[a.prop]&&null==a.elem.style[a.prop]?a.elem[a.prop]:(b=n.css(a.elem,a.prop,""),b&&"auto"!==b?b:0)},set:function(a){n.fx.step[a.prop]?n.fx.step[a.prop](a):1!==a.elem.nodeType||null==a.elem.style[n.cssProps[a.prop]]&&!n.cssHooks[a.prop]?a.elem[a.prop]=a.now:n.style(a.elem,a.prop,a.now+a.unit)}}},gb.propHooks.scrollTop=gb.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},n.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},_default:"swing"},n.fx=gb.prototype.init,n.fx.step={};var hb,ib,jb=/^(?:toggle|show|hide)$/,kb=/queueHooks$/;function lb(){return a.setTimeout(function(){hb=void 0}),hb=n.now()}function mb(a,b){var c,d={height:a},e=0;for(b=b?1:0;4>e;e+=2-b)c=V[e],d["margin"+c]=d["padding"+c]=a;return b&&(d.opacity=d.width=a),d}function nb(a,b,c){for(var d,e=(qb.tweeners[b]||[]).concat(qb.tweeners["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function ob(a,b,c){var d,e,f,g,h,i,j,k,m=this,o={},p=a.style,q=a.nodeType&&W(a),r=n._data(a,"fxshow");c.queue||(h=n._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,m.always(function(){m.always(function(){h.unqueued--,n.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[p.overflow,p.overflowX,p.overflowY],j=n.css(a,"display"),k="none"===j?n._data(a,"olddisplay")||Ma(a.nodeName):j,"inline"===k&&"none"===n.css(a,"float")&&(l.inlineBlockNeedsLayout&&"inline"!==Ma(a.nodeName)?p.zoom=1:p.display="inline-block")),c.overflow&&(p.overflow="hidden",l.shrinkWrapBlocks()||m.always(function(){p.overflow=c.overflow[0],p.overflowX=c.overflow[1],p.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],jb.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(q?"hide":"show")){if("show"!==e||!r||void 0===r[d])continue;q=!0}o[d]=r&&r[d]||n.style(a,d)}else j=void 0;if(n.isEmptyObject(o))"inline"===("none"===j?Ma(a.nodeName):j)&&(p.display=j);else{r?"hidden"in r&&(q=r.hidden):r=n._data(a,"fxshow",{}),f&&(r.hidden=!q),q?n(a).show():m.done(function(){n(a).hide()}),m.done(function(){var b;n._removeData(a,"fxshow");for(b in o)n.style(a,b,o[b])});for(d in o)g=nb(q?r[d]:0,d,m),d in r||(r[d]=g.start,q&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function pb(a,b){var c,d,e,f,g;for(c in a)if(d=n.camelCase(c),e=b[d],f=a[c],n.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=n.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function qb(a,b,c){var d,e,f=0,g=qb.prefilters.length,h=n.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=hb||lb(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:n.extend({},b),opts:n.extend(!0,{specialEasing:{},easing:n.easing._default},c),originalProperties:b,originalOptions:c,startTime:hb||lb(),duration:c.duration,tweens:[],createTween:function(b,c){var d=n.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?(h.notifyWith(a,[j,1,0]),h.resolveWith(a,[j,b])):h.rejectWith(a,[j,b]),this}}),k=j.props;for(pb(k,j.opts.specialEasing);g>f;f++)if(d=qb.prefilters[f].call(j,a,k,j.opts))return n.isFunction(d.stop)&&(n._queueHooks(j.elem,j.opts.queue).stop=n.proxy(d.stop,d)),d;return n.map(k,nb,j),n.isFunction(j.opts.start)&&j.opts.start.call(a,j),n.fx.timer(n.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}n.Animation=n.extend(qb,{tweeners:{"*":[function(a,b){var c=this.createTween(a,b);return X(c.elem,a,U.exec(b),c),c}]},tweener:function(a,b){n.isFunction(a)?(b=a,a=["*"]):a=a.match(G);for(var c,d=0,e=a.length;e>d;d++)c=a[d],qb.tweeners[c]=qb.tweeners[c]||[],qb.tweeners[c].unshift(b)},prefilters:[ob],prefilter:function(a,b){b?qb.prefilters.unshift(a):qb.prefilters.push(a)}}),n.speed=function(a,b,c){var d=a&&"object"==typeof a?n.extend({},a):{complete:c||!c&&b||n.isFunction(a)&&a,duration:a,easing:c&&b||b&&!n.isFunction(b)&&b};return d.duration=n.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in n.fx.speeds?n.fx.speeds[d.duration]:n.fx.speeds._default,null!=d.queue&&d.queue!==!0||(d.queue="fx"),d.old=d.complete,d.complete=function(){n.isFunction(d.old)&&d.old.call(this),d.queue&&n.dequeue(this,d.queue)},d},n.fn.extend({fadeTo:function(a,b,c,d){return this.filter(W).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=n.isEmptyObject(a),f=n.speed(b,c,d),g=function(){var b=qb(this,n.extend({},a),f);(e||n._data(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=n.timers,g=n._data(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&kb.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));!b&&c||n.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=n._data(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=n.timers,g=d?d.length:0;for(c.finish=!0,n.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),n.each(["toggle","show","hide"],function(a,b){var c=n.fn[b];n.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(mb(b,!0),a,d,e)}}),n.each({slideDown:mb("show"),slideUp:mb("hide"),slideToggle:mb("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){n.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),n.timers=[],n.fx.tick=function(){var a,b=n.timers,c=0;for(hb=n.now();c<b.length;c++)a=b[c],a()||b[c]!==a||b.splice(c--,1);b.length||n.fx.stop(),hb=void 0},n.fx.timer=function(a){n.timers.push(a),a()?n.fx.start():n.timers.pop()},n.fx.interval=13,n.fx.start=function(){ib||(ib=a.setInterval(n.fx.tick,n.fx.interval))},n.fx.stop=function(){a.clearInterval(ib),ib=null},n.fx.speeds={slow:600,fast:200,_default:400},n.fn.delay=function(b,c){return b=n.fx?n.fx.speeds[b]||b:b,c=c||"fx",this.queue(c,function(c,d){var e=a.setTimeout(c,b);d.stop=function(){a.clearTimeout(e)}})},function(){var a,b=d.createElement("input"),c=d.createElement("div"),e=d.createElement("select"),f=e.appendChild(d.createElement("option"));c=d.createElement("div"),c.setAttribute("className","t"),c.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",a=c.getElementsByTagName("a")[0],b.setAttribute("type","checkbox"),c.appendChild(b),a=c.getElementsByTagName("a")[0],a.style.cssText="top:1px",l.getSetAttribute="t"!==c.className,l.style=/top/.test(a.getAttribute("style")),l.hrefNormalized="/a"===a.getAttribute("href"),l.checkOn=!!b.value,l.optSelected=f.selected,l.enctype=!!d.createElement("form").enctype,e.disabled=!0,l.optDisabled=!f.disabled,b=d.createElement("input"),b.setAttribute("value",""),l.input=""===b.getAttribute("value"),b.value="t",b.setAttribute("type","radio"),l.radioValue="t"===b.value}();var rb=/\r/g,sb=/[\x20\t\r\n\f]+/g;n.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=n.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,n(this).val()):a,null==e?e="":"number"==typeof e?e+="":n.isArray(e)&&(e=n.map(e,function(a){return null==a?"":a+""})),b=n.valHooks[this.type]||n.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=n.valHooks[e.type]||n.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(rb,""):null==c?"":c)}}}),n.extend({valHooks:{option:{get:function(a){var b=n.find.attr(a,"value");return null!=b?b:n.trim(n.text(a)).replace(sb," ")}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],(c.selected||i===e)&&(l.optDisabled?!c.disabled:null===c.getAttribute("disabled"))&&(!c.parentNode.disabled||!n.nodeName(c.parentNode,"optgroup"))){if(b=n(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=n.makeArray(b),g=e.length;while(g--)if(d=e[g],n.inArray(n.valHooks.option.get(d),f)>-1)try{d.selected=c=!0}catch(h){d.scrollHeight}else d.selected=!1;return c||(a.selectedIndex=-1),e}}}}),n.each(["radio","checkbox"],function(){n.valHooks[this]={set:function(a,b){return n.isArray(b)?a.checked=n.inArray(n(a).val(),b)>-1:void 0}},l.checkOn||(n.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var tb,ub,vb=n.expr.attrHandle,wb=/^(?:checked|selected)$/i,xb=l.getSetAttribute,yb=l.input;n.fn.extend({attr:function(a,b){return Y(this,n.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){n.removeAttr(this,a)})}}),n.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?n.prop(a,b,c):(1===f&&n.isXMLDoc(a)||(b=b.toLowerCase(),e=n.attrHooks[b]||(n.expr.match.bool.test(b)?ub:tb)),void 0!==c?null===c?void n.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=n.find.attr(a,b),null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!l.radioValue&&"radio"===b&&n.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(G);if(f&&1===a.nodeType)while(c=f[e++])d=n.propFix[c]||c,n.expr.match.bool.test(c)?yb&&xb||!wb.test(c)?a[d]=!1:a[n.camelCase("default-"+c)]=a[d]=!1:n.attr(a,c,""),a.removeAttribute(xb?c:d)}}),ub={set:function(a,b,c){return b===!1?n.removeAttr(a,c):yb&&xb||!wb.test(c)?a.setAttribute(!xb&&n.propFix[c]||c,c):a[n.camelCase("default-"+c)]=a[c]=!0,c}},n.each(n.expr.match.bool.source.match(/\w+/g),function(a,b){var c=vb[b]||n.find.attr;yb&&xb||!wb.test(b)?vb[b]=function(a,b,d){var e,f;return d||(f=vb[b],vb[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,vb[b]=f),e}:vb[b]=function(a,b,c){return c?void 0:a[n.camelCase("default-"+b)]?b.toLowerCase():null}}),yb&&xb||(n.attrHooks.value={set:function(a,b,c){return n.nodeName(a,"input")?void(a.defaultValue=b):tb&&tb.set(a,b,c)}}),xb||(tb={set:function(a,b,c){var d=a.getAttributeNode(c);return d||a.setAttributeNode(d=a.ownerDocument.createAttribute(c)),d.value=b+="","value"===c||b===a.getAttribute(c)?b:void 0}},vb.id=vb.name=vb.coords=function(a,b,c){var d;return c?void 0:(d=a.getAttributeNode(b))&&""!==d.value?d.value:null},n.valHooks.button={get:function(a,b){var c=a.getAttributeNode(b);return c&&c.specified?c.value:void 0},set:tb.set},n.attrHooks.contenteditable={set:function(a,b,c){tb.set(a,""===b?!1:b,c)}},n.each(["width","height"],function(a,b){n.attrHooks[b]={set:function(a,c){return""===c?(a.setAttribute(b,"auto"),c):void 0}}})),l.style||(n.attrHooks.style={get:function(a){return a.style.cssText||void 0},set:function(a,b){return a.style.cssText=b+""}});var zb=/^(?:input|select|textarea|button|object)$/i,Ab=/^(?:a|area)$/i;n.fn.extend({prop:function(a,b){return Y(this,n.prop,a,b,arguments.length>1)},removeProp:function(a){return a=n.propFix[a]||a,this.each(function(){try{this[a]=void 0,delete this[a]}catch(b){}})}}),n.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&n.isXMLDoc(a)||(b=n.propFix[b]||b,e=n.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=n.find.attr(a,"tabindex");return b?parseInt(b,10):zb.test(a.nodeName)||Ab.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),l.hrefNormalized||n.each(["href","src"],function(a,b){n.propHooks[b]={get:function(a){return a.getAttribute(b,4)}}}),l.optSelected||(n.propHooks.selected={get:function(a){var b=a.parentNode;return b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex),null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),n.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){n.propFix[this.toLowerCase()]=this}),l.enctype||(n.propFix.enctype="encoding");var Bb=/[\t\r\n\f]/g;function Cb(a){return n.attr(a,"class")||""}n.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(n.isFunction(a))return this.each(function(b){n(this).addClass(a.call(this,b,Cb(this)))});if("string"==typeof a&&a){b=a.match(G)||[];while(c=this[i++])if(e=Cb(c),d=1===c.nodeType&&(" "+e+" ").replace(Bb," ")){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=n.trim(d),e!==h&&n.attr(c,"class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(n.isFunction(a))return this.each(function(b){n(this).removeClass(a.call(this,b,Cb(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(G)||[];while(c=this[i++])if(e=Cb(c),d=1===c.nodeType&&(" "+e+" ").replace(Bb," ")){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=n.trim(d),e!==h&&n.attr(c,"class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):n.isFunction(a)?this.each(function(c){n(this).toggleClass(a.call(this,c,Cb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=n(this),f=a.match(G)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=Cb(this),b&&n._data(this,"__className__",b),n.attr(this,"class",b||a===!1?"":n._data(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+Cb(c)+" ").replace(Bb," ").indexOf(b)>-1)return!0;return!1}}),n.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){n.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),n.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var Db=a.location,Eb=n.now(),Fb=/\?/,Gb=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;n.parseJSON=function(b){if(a.JSON&&a.JSON.parse)return a.JSON.parse(b+"");var c,d=null,e=n.trim(b+"");return e&&!n.trim(e.replace(Gb,function(a,b,e,f){return c&&b&&(d=0),0===d?a:(c=e||b,d+=!f-!e,"")}))?Function("return "+e)():n.error("Invalid JSON: "+b)},n.parseXML=function(b){var c,d;if(!b||"string"!=typeof b)return null;try{a.DOMParser?(d=new a.DOMParser,c=d.parseFromString(b,"text/xml")):(c=new a.ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b))}catch(e){c=void 0}return c&&c.documentElement&&!c.getElementsByTagName("parsererror").length||n.error("Invalid XML: "+b),c};var Hb=/#.*$/,Ib=/([?&])_=[^&]*/,Jb=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Kb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Lb=/^(?:GET|HEAD)$/,Mb=/^\/\//,Nb=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,Ob={},Pb={},Qb="*/".concat("*"),Rb=Db.href,Sb=Nb.exec(Rb.toLowerCase())||[];function Tb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(G)||[];if(n.isFunction(c))while(d=f[e++])"+"===d.charAt(0)?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Ub(a,b,c,d){var e={},f=a===Pb;function g(h){var i;return e[h]=!0,n.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Vb(a,b){var c,d,e=n.ajaxSettings.flatOptions||{};for(d in b)void 0!==b[d]&&((e[d]?a:c||(c={}))[d]=b[d]);return c&&n.extend(!0,a,c),a}function Wb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===e&&(e=a.mimeType||b.getResponseHeader("Content-Type"));if(e)for(g in h)if(h[g]&&h[g].test(e)){i.unshift(g);break}if(i[0]in c)f=i[0];else{for(g in c){if(!i[0]||a.converters[g+" "+i[0]]){f=g;break}d||(d=g)}f=f||d}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function Xb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}n.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Rb,type:"GET",isLocal:Kb.test(Sb[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Qb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":n.parseJSON,"text xml":n.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Vb(Vb(a,n.ajaxSettings),b):Vb(n.ajaxSettings,a)},ajaxPrefilter:Tb(Ob),ajaxTransport:Tb(Pb),ajax:function(b,c){"object"==typeof b&&(c=b,b=void 0),c=c||{};var d,e,f,g,h,i,j,k,l=n.ajaxSetup({},c),m=l.context||l,o=l.context&&(m.nodeType||m.jquery)?n(m):n.event,p=n.Deferred(),q=n.Callbacks("once memory"),r=l.statusCode||{},s={},t={},u=0,v="canceled",w={readyState:0,getResponseHeader:function(a){var b;if(2===u){if(!k){k={};while(b=Jb.exec(g))k[b[1].toLowerCase()]=b[2]}b=k[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===u?g:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return u||(a=t[c]=t[c]||a,s[a]=b),this},overrideMimeType:function(a){return u||(l.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>u)for(b in a)r[b]=[r[b],a[b]];else w.always(a[w.status]);return this},abort:function(a){var b=a||v;return j&&j.abort(b),y(0,b),this}};if(p.promise(w).complete=q.add,w.success=w.done,w.error=w.fail,l.url=((b||l.url||Rb)+"").replace(Hb,"").replace(Mb,Sb[1]+"//"),l.type=c.method||c.type||l.method||l.type,l.dataTypes=n.trim(l.dataType||"*").toLowerCase().match(G)||[""],null==l.crossDomain&&(d=Nb.exec(l.url.toLowerCase()),l.crossDomain=!(!d||d[1]===Sb[1]&&d[2]===Sb[2]&&(d[3]||("http:"===d[1]?"80":"443"))===(Sb[3]||("http:"===Sb[1]?"80":"443")))),l.data&&l.processData&&"string"!=typeof l.data&&(l.data=n.param(l.data,l.traditional)),Ub(Ob,l,c,w),2===u)return w;i=n.event&&l.global,i&&0===n.active++&&n.event.trigger("ajaxStart"),l.type=l.type.toUpperCase(),l.hasContent=!Lb.test(l.type),f=l.url,l.hasContent||(l.data&&(f=l.url+=(Fb.test(f)?"&":"?")+l.data,delete l.data),l.cache===!1&&(l.url=Ib.test(f)?f.replace(Ib,"$1_="+Eb++):f+(Fb.test(f)?"&":"?")+"_="+Eb++)),l.ifModified&&(n.lastModified[f]&&w.setRequestHeader("If-Modified-Since",n.lastModified[f]),n.etag[f]&&w.setRequestHeader("If-None-Match",n.etag[f])),(l.data&&l.hasContent&&l.contentType!==!1||c.contentType)&&w.setRequestHeader("Content-Type",l.contentType),w.setRequestHeader("Accept",l.dataTypes[0]&&l.accepts[l.dataTypes[0]]?l.accepts[l.dataTypes[0]]+("*"!==l.dataTypes[0]?", "+Qb+"; q=0.01":""):l.accepts["*"]);for(e in l.headers)w.setRequestHeader(e,l.headers[e]);if(l.beforeSend&&(l.beforeSend.call(m,w,l)===!1||2===u))return w.abort();v="abort";for(e in{success:1,error:1,complete:1})w[e](l[e]);if(j=Ub(Pb,l,c,w)){if(w.readyState=1,i&&o.trigger("ajaxSend",[w,l]),2===u)return w;l.async&&l.timeout>0&&(h=a.setTimeout(function(){w.abort("timeout")},l.timeout));try{u=1,j.send(s,y)}catch(x){if(!(2>u))throw x;y(-1,x)}}else y(-1,"No Transport");function y(b,c,d,e){var k,s,t,v,x,y=c;2!==u&&(u=2,h&&a.clearTimeout(h),j=void 0,g=e||"",w.readyState=b>0?4:0,k=b>=200&&300>b||304===b,d&&(v=Wb(l,w,d)),v=Xb(l,v,w,k),k?(l.ifModified&&(x=w.getResponseHeader("Last-Modified"),x&&(n.lastModified[f]=x),x=w.getResponseHeader("etag"),x&&(n.etag[f]=x)),204===b||"HEAD"===l.type?y="nocontent":304===b?y="notmodified":(y=v.state,s=v.data,t=v.error,k=!t)):(t=y,!b&&y||(y="error",0>b&&(b=0))),w.status=b,w.statusText=(c||y)+"",k?p.resolveWith(m,[s,y,w]):p.rejectWith(m,[w,y,t]),w.statusCode(r),r=void 0,i&&o.trigger(k?"ajaxSuccess":"ajaxError",[w,l,k?s:t]),q.fireWith(m,[w,y]),i&&(o.trigger("ajaxComplete",[w,l]),--n.active||n.event.trigger("ajaxStop")))}return w},getJSON:function(a,b,c){return n.get(a,b,c,"json")},getScript:function(a,b){return n.get(a,void 0,b,"script")}}),n.each(["get","post"],function(a,b){n[b]=function(a,c,d,e){return n.isFunction(c)&&(e=e||d,d=c,c=void 0),n.ajax(n.extend({url:a,type:b,dataType:e,data:c,success:d},n.isPlainObject(a)&&a))}}),n._evalUrl=function(a){return n.ajax({url:a,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},n.fn.extend({wrapAll:function(a){if(n.isFunction(a))return this.each(function(b){n(this).wrapAll(a.call(this,b))});if(this[0]){var b=n(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&1===a.firstChild.nodeType)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return n.isFunction(a)?this.each(function(b){n(this).wrapInner(a.call(this,b))}):this.each(function(){var b=n(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=n.isFunction(a);return this.each(function(c){n(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){n.nodeName(this,"body")||n(this).replaceWith(this.childNodes)}).end()}});function Yb(a){return a.style&&a.style.display||n.css(a,"display")}function Zb(a){if(!n.contains(a.ownerDocument||d,a))return!0;while(a&&1===a.nodeType){if("none"===Yb(a)||"hidden"===a.type)return!0;a=a.parentNode}return!1}n.expr.filters.hidden=function(a){return l.reliableHiddenOffsets()?a.offsetWidth<=0&&a.offsetHeight<=0&&!a.getClientRects().length:Zb(a)},n.expr.filters.visible=function(a){return!n.expr.filters.hidden(a)};var $b=/%20/g,_b=/\[\]$/,ac=/\r?\n/g,bc=/^(?:submit|button|image|reset|file)$/i,cc=/^(?:input|select|textarea|keygen)/i;function dc(a,b,c,d){var e;if(n.isArray(b))n.each(b,function(b,e){c||_b.test(a)?d(a,e):dc(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d)});else if(c||"object"!==n.type(b))d(a,b);else for(e in b)dc(a+"["+e+"]",b[e],c,d)}n.param=function(a,b){var c,d=[],e=function(a,b){b=n.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=n.ajaxSettings&&n.ajaxSettings.traditional),n.isArray(a)||a.jquery&&!n.isPlainObject(a))n.each(a,function(){e(this.name,this.value)});else for(c in a)dc(c,a[c],b,e);return d.join("&").replace($b,"+")},n.fn.extend({serialize:function(){return n.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=n.prop(this,"elements");return a?n.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!n(this).is(":disabled")&&cc.test(this.nodeName)&&!bc.test(a)&&(this.checked||!Z.test(a))}).map(function(a,b){var c=n(this).val();return null==c?null:n.isArray(c)?n.map(c,function(a){return{name:b.name,value:a.replace(ac,"\r\n")}}):{name:b.name,value:c.replace(ac,"\r\n")}}).get()}}),n.ajaxSettings.xhr=void 0!==a.ActiveXObject?function(){return this.isLocal?ic():d.documentMode>8?hc():/^(get|post|head|put|delete|options)$/i.test(this.type)&&hc()||ic()}:hc;var ec=0,fc={},gc=n.ajaxSettings.xhr();a.attachEvent&&a.attachEvent("onunload",function(){for(var a in fc)fc[a](void 0,!0)}),l.cors=!!gc&&"withCredentials"in gc,gc=l.ajax=!!gc,gc&&n.ajaxTransport(function(b){if(!b.crossDomain||l.cors){var c;return{send:function(d,e){var f,g=b.xhr(),h=++ec;if(g.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(f in b.xhrFields)g[f]=b.xhrFields[f];b.mimeType&&g.overrideMimeType&&g.overrideMimeType(b.mimeType),b.crossDomain||d["X-Requested-With"]||(d["X-Requested-With"]="XMLHttpRequest");for(f in d)void 0!==d[f]&&g.setRequestHeader(f,d[f]+"");g.send(b.hasContent&&b.data||null),c=function(a,d){var f,i,j;if(c&&(d||4===g.readyState))if(delete fc[h],c=void 0,g.onreadystatechange=n.noop,d)4!==g.readyState&&g.abort();else{j={},f=g.status,"string"==typeof g.responseText&&(j.text=g.responseText);try{i=g.statusText}catch(k){i=""}f||!b.isLocal||b.crossDomain?1223===f&&(f=204):f=j.text?200:404}j&&e(f,i,j,g.getAllResponseHeaders())},b.async?4===g.readyState?a.setTimeout(c):g.onreadystatechange=fc[h]=c:c()},abort:function(){c&&c(void 0,!0)}}}});function hc(){try{return new a.XMLHttpRequest}catch(b){}}function ic(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}n.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(a){return n.globalEval(a),a}}}),n.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),n.ajaxTransport("script",function(a){if(a.crossDomain){var b,c=d.head||n("head")[0]||d.documentElement;return{send:function(e,f){b=d.createElement("script"),b.async=!0,a.scriptCharset&&(b.charset=a.scriptCharset),b.src=a.url,b.onload=b.onreadystatechange=function(a,c){(c||!b.readyState||/loaded|complete/.test(b.readyState))&&(b.onload=b.onreadystatechange=null,b.parentNode&&b.parentNode.removeChild(b),b=null,c||f(200,"success"))},c.insertBefore(b,c.firstChild)},abort:function(){b&&b.onload(void 0,!0)}}}});var jc=[],kc=/(=)\?(?=&|$)|\?\?/;n.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=jc.pop()||n.expando+"_"+Eb++;return this[a]=!0,a}}),n.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(kc.test(b.url)?"url":"string"==typeof b.data&&0===(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&kc.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=n.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(kc,"$1"+e):b.jsonp!==!1&&(b.url+=(Fb.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||n.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){void 0===f?n(a).removeProp(e):a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,jc.push(e)),g&&n.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),n.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||d;var e=x.exec(a),f=!c&&[];return e?[b.createElement(e[1])]:(e=ja([a],b,f),f&&f.length&&n(f).remove(),n.merge([],e.childNodes))};var lc=n.fn.load;n.fn.load=function(a,b,c){if("string"!=typeof a&&lc)return lc.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>-1&&(d=n.trim(a.slice(h,a.length)),a=a.slice(0,h)),n.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(e="POST"),g.length>0&&n.ajax({url:a,type:e||"GET",dataType:"html",data:b}).done(function(a){f=arguments,g.html(d?n("<div>").append(n.parseHTML(a)).find(d):a)}).always(c&&function(a,b){g.each(function(){c.apply(this,f||[a.responseText,b,a])})}),this},n.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){n.fn[b]=function(a){return this.on(b,a)}}),n.expr.filters.animated=function(a){return n.grep(n.timers,function(b){return a===b.elem}).length};function mc(a){return n.isWindow(a)?a:9===a.nodeType?a.defaultView||a.parentWindow:!1}n.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=n.css(a,"position"),l=n(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=n.css(a,"top"),i=n.css(a,"left"),j=("absolute"===k||"fixed"===k)&&n.inArray("auto",[f,i])>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),n.isFunction(b)&&(b=b.call(a,c,n.extend({},h))),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},n.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){n.offset.setOffset(this,a,b)});var b,c,d={top:0,left:0},e=this[0],f=e&&e.ownerDocument;if(f)return b=f.documentElement,n.contains(b,e)?("undefined"!=typeof e.getBoundingClientRect&&(d=e.getBoundingClientRect()),c=mc(f),{top:d.top+(c.pageYOffset||b.scrollTop)-(b.clientTop||0),left:d.left+(c.pageXOffset||b.scrollLeft)-(b.clientLeft||0)}):d},position:function(){if(this[0]){var a,b,c={top:0,left:0},d=this[0];return"fixed"===n.css(d,"position")?b=d.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),n.nodeName(a[0],"html")||(c=a.offset()),c.top+=n.css(a[0],"borderTopWidth",!0),c.left+=n.css(a[0],"borderLeftWidth",!0)),{top:b.top-c.top-n.css(d,"marginTop",!0),left:b.left-c.left-n.css(d,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent;while(a&&!n.nodeName(a,"html")&&"static"===n.css(a,"position"))a=a.offsetParent;return a||Qa})}}),n.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c=/Y/.test(b);n.fn[a]=function(d){return Y(this,function(a,d,e){var f=mc(a);return void 0===e?f?b in f?f[b]:f.document.documentElement[d]:a[d]:void(f?f.scrollTo(c?n(f).scrollLeft():e,c?e:n(f).scrollTop()):a[d]=e)},a,d,arguments.length,null)}}),n.each(["top","left"],function(a,b){n.cssHooks[b]=Ua(l.pixelPosition,function(a,c){return c?(c=Sa(a,b),Oa.test(c)?n(a).position()[b]+"px":c):void 0})}),n.each({Height:"height",Width:"width"},function(a,b){n.each({ 568padding:"inner"+a,content:b,"":"outer"+a},function(c,d){n.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return Y(this,function(b,c,d){var e;return n.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?n.css(b,c,g):n.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),n.fn.extend({bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}}),n.fn.size=function(){return this.length},n.fn.andSelf=n.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return n});var nc=a.jQuery,oc=a.$;return n.noConflict=function(b){return a.$===n&&(a.$=oc),b&&a.jQuery===n&&(a.jQuery=nc),n},b||(a.jQuery=a.$=n),n});
569</script>
569 570
570<script> 571(function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t(e.async={})})(this,function(e){"use strict";function t(e,...t){return(...n)=>e(...t,...n)}function n(e){return function(...t){var n=t.pop();return e.call(this,t,n)}}function i(e){setTimeout(e,0)}function a(e){return(t,...n)=>e(()=>t(...n))}function r(e){return d(e)?function(...t){const n=t.pop(),i=e.apply(this,t);return s(i,n)}:n(function(t,n){var i;try{i=e.apply(this,t)}catch(t){return n(t)}return i&&"function"==typeof i.then?s(i,n):void n(null,i)})}function s(e,t){return e.then(e=>{l(t,null,e)},e=>{l(t,e&&e.message?e:new Error(e))})}function l(e,t,n){try{e(t,n)}catch(e){ve(t=>{throw t},e)}}function d(e){return"AsyncFunction"===e[Symbol.toStringTag]}function c(e){return"AsyncGenerator"===e[Symbol.toStringTag]}function u(e){return"function"==typeof e[Symbol.asyncIterator]}function o(e){if("function"!=typeof e)throw new Error("expected a function");return d(e)?r(e):e}function f(e){return function(t,...i){var a=n(function(n,i){var a=this;return e(t,(e,t)=>{o(e).apply(a,n.concat(t))},i)});return i.length?a.apply(this,i):a}}function p(e,t,n,i){t=t||[];var a=[],r=0,s=o(n);return e(t,(e,t,n)=>{var i=r++;s(e,(e,t)=>{a[i]=t,n(e)})},e=>{i(e,a)})}function h(e){return e&&"number"==typeof e.length&&0<=e.length&&0==e.length%1}function y(e){function t(...t){if(null!==e){var n=e;e=null,n.apply(this,t)}}return Object.assign(t,e),t}function m(e){return e[Symbol.iterator]&&e[Symbol.iterator]()}function g(e){var t=-1,n=e.length;return function(){return++t<n?{value:e[t],key:t}:null}}function k(e){var t=-1;return function(){var n=e.next();return n.done?null:(t++,{value:n.value,key:t})}}function S(e){var t=e?Object.keys(e):[],n=-1,a=t.length;return function(){var i=t[++n];return n<a?{value:e[i],key:i}:null}}function v(e){if(h(e))return g(e);var t=m(e);return t?k(t):S(e)}function L(e){return function(...t){if(null===e)throw new Error("Callback was already called.");var n=e;e=null,n.apply(this,t)}}function x(e,t,n,i){function a(){u>=t||c||l||(c=!0,e.next().then(({value:e,done:t})=>{if(!(d||l))return c=!1,t?(l=!0,void(0>=u&&i(null))):void(u++,n(e,o,r),o++,a())}).catch(s))}function r(e,t){return u-=1,d?void 0:e?s(e):!1===e?(l=!0,void(d=!0)):t===Le||l&&0>=u?(l=!0,i(null)):void a()}function s(e){d||(c=!1,l=!0,i(e))}let l=!1,d=!1,c=!1,u=0,o=0;a()}function E(e,t=e.length){function n(...n){return"function"==typeof n[t-1]?e.apply(this,n):new Promise((i,a)=>{n[t-1]=(e,...t)=>e?a(e):void i(1<t.length?t:t[0]),e.apply(this,n)})}if(!t)throw new Error("arity is undefined");return Object.defineProperty(n,"name",{value:`awaitable(${e.name})`}),n}function O(e,t,n){function i(e,t){!1===e&&(l=!0);!0===l||(e?n(e):(++r===s||t===Le)&&n(null))}n=y(n);var a=0,r=0,{length:s}=e,l=!1;for(0===s&&n(null);a<s;a++)t(e[a],a,L(i))}function b(e,t,n){return Ee(e,1/0,t,n)}function _(){function e(e,...i){return e?n(e):void t(1<i.length?i:i[0])}let t,n;return e[Be]=new Promise((e,i)=>{t=e,n=i}),e}function j(e,t,n){function i(e,t){g.push(()=>l(e,t))}function a(){if(!p){if(0===g.length&&0===f)return n(null,u);for(;g.length&&f<t;){var e=g.shift();e()}}}function r(e,t){var n=m[e];n||(n=m[e]=[]),n.push(t)}function s(e){var t=m[e]||[];t.forEach(e=>e()),a()}function l(e,t){if(!h){var i=L((t,...i)=>{if(f--,!1===t)return void(p=!0);if(2>i.length&&([i]=i),t){var a={};if(Object.keys(u).forEach(e=>{a[e]=u[e]}),a[e]=i,h=!0,m=Object.create(null),p)return;n(t,a)}else u[e]=i,s(e)});f++;var a=o(t[t.length-1]);1<t.length?a(u,i):a(i)}}function d(t){var n=[];return Object.keys(e).forEach(i=>{const a=e[i];Array.isArray(a)&&0<=a.indexOf(t)&&n.push(i)}),n}"number"!=typeof t&&(n=t,t=null),n=y(n||_());var c=Object.keys(e).length;if(!c)return n(null);t||(t=c);var u={},f=0,p=!1,h=!1,m=Object.create(null),g=[],k=[],S={};return Object.keys(e).forEach(t=>{var n=e[t];if(!Array.isArray(n))return i(t,[n]),void k.push(t);var a=n.slice(0,n.length-1),s=a.length;return 0===s?(i(t,n),void k.push(t)):void(S[t]=s,a.forEach(l=>{if(!e[l])throw new Error("async.auto task `"+t+"` has a non-existent dependency `"+l+"` in "+a.join(", "));r(l,()=>{s--,0===s&&i(t,n)})}))}),function(){for(var e,t=0;k.length;
571)e=k.pop(),t++,d(e).forEach(e=>{0==--S[e]&&k.push(e)});if(t!==c)throw new Error("async.auto cannot execute tasks due to a recursive dependency")}(),a(),n[Be]}function I(e){const t=e.toString().replace(Pe,"");let n=t.match(Me);if(n||(n=t.match(Fe)),!n)throw new Error("could not parse args in autoInject\nSource:\n"+t);let[,i]=n;return i.replace(/\s/g,"").split(Te).map(e=>e.replace(we,"").trim())}function A(e,t){var n={};return Object.keys(e).forEach(t=>{function i(e,t){var n=a.map(t=>e[t]);n.push(t),o(r)(...n)}var a,r=e[t],s=d(r),l=!s&&1===r.length||s&&0===r.length;if(Array.isArray(r))a=[...r],r=a.pop(),n[t]=a.concat(0<a.length?i:r);else if(l)n[t]=r;else{if(a=I(r),0===r.length&&!s&&0===a.length)throw new Error("autoInject task functions require explicit parameters.");s||a.pop(),n[t]=a.concat(i)}}),j(n,t)}function B(e,t){e.length=1,e.head=e.tail=t}function M(e,t,n){function i(e,t,n){if(null!=n&&"function"!=typeof n)throw new Error("task callback must be a function");if(f.started=!0,Array.isArray(e)||(e=[e]),0===e.length&&f.idle())return ve(()=>f.drain());for(var a,r=0,s=e.length;r<s;r++)a={data:e[r],callback:n||Re},t?f._tasks.unshift(a):f._tasks.push(a);c||(c=!0,ve(()=>{c=!1,f.process()}))}function a(e){return function(t,...n){s-=1;for(var a=0,r=e.length;a<r;a++){var l=e[a],c=d.indexOf(l);0===c?d.shift():0<c&&d.splice(c,1),l.callback(t,...n),null!=t&&f.error(t,l.data)}s<=f.concurrency-f.buffer&&f.unsaturated(),f.idle()&&f.drain(),f.process()}}if(null==t)t=1;else if(0===t)throw new RangeError("Concurrency must not be zero");var r=o(e),s=0,d=[],c=!1,u=!1,f={_tasks:new ze,*[Symbol.iterator](){yield*f._tasks[Symbol.iterator]()},concurrency:t,payload:n,saturated:Re,unsaturated:Re,buffer:t/4,empty:Re,drain:Re,error:Re,started:!1,paused:!1,push(e,t){i(e,!1,t)},kill(){f.drain=Re,f._tasks.empty()},unshift(e,t){i(e,!0,t)},remove(e){f._tasks.remove(e)},process(){if(!u){for(u=!0;!f.paused&&s<f.concurrency&&f._tasks.length;){var e=[],t=[],n=f._tasks.length;f.payload&&(n=Math.min(n,f.payload));for(var c,o=0;o<n;o++)c=f._tasks.shift(),e.push(c),d.push(c),t.push(c.data);s+=1,0===f._tasks.length&&f.empty(),s===f.concurrency&&f.saturated();var p=L(a(e));r(t,p)}u=!1}},length(){return f._tasks.length},running(){return s},workersList(){return d},idle(){return 0===f._tasks.length+s},pause(){f.paused=!0},resume(){!1===f.paused||(f.paused=!1,ve(f.process))}};return f}function F(e,t){return M(e,1,t)}function T(e,t,n){return M(e,t,n)}function w(...e){var t=e.map(o);return function(...e){var n=this,i=e[e.length-1];return"function"==typeof i?e.pop():i=_(),Ve(t,e,(e,t,i)=>{t.apply(n,e.concat((e,...t)=>{i(e,t)}))},(e,t)=>i(e,...t)),i[Be]}}function P(...e){return w(...e.reverse())}function z(...e){return function(...t){var n=t.pop();return n(null,...e)}}function R(e,t){return(n,i,a,r)=>{var s,l=!1;const d=o(a);n(i,(n,i,a)=>{d(n,(i,r)=>i?a(i):e(r)&&!s?(l=!0,s=t(!0,n),a(null,Le)):void a())},e=>e?r(e):void r(null,l?s:t(!1)))}}function Y(e){return(t,...n)=>o(t)(...n,(t,...n)=>{"object"==typeof console&&(t?console.error&&console.error(t):console[e]&&n.forEach(t=>console[e](t)))})}function V(e,t,n){const i=o(t);return Ke(e,(...e)=>{const t=e.pop();i(...e,(e,n)=>t(e,!n))},n)}function q(e){return(t,n,i)=>e(t,i)}function C(e){return d(e)?e:function(...t){var n=t.pop(),i=!0;t.push((...e)=>{i?ve(()=>n(...e)):n(...e)}),e.apply(this,t),i=!1}}function Q(e,t,n,a){var r=Array(t.length);e(t,(e,t,i)=>{n(e,(e,n)=>{r[t]=!!n,i(e)})},e=>{if(e)return a(e);for(var n=[],s=0;s<t.length;s++)r[s]&&n.push(t[s]);a(null,n)})}function N(e,t,n,i){var a=[];e(t,(e,t,i)=>{n(e,(n,r)=>n?i(n):void(r&&a.push({index:t,value:e}),i()))},e=>e?i(e):void i(null,a.sort((e,t)=>e.index-t.index).map(e=>e.value)))}function D(e,t,n,i){var a=h(t)?Q:N;return a(e,t,o(n),i)}function U(e,t,n){return rt(e,1/0,t,n)}function W(e,t,n){return rt(e,1,t,n)}function G(e,t,n){return lt(e,1/0,t,n)}function K(e,t,n){return lt(e,1,t,n)}function X(e,t=e=>e){var a=Object.create(null),r=Object.create(null),i=o(e),s=n((e,n)=>{var s=t(...e);s in a?ve(()=>n(null,...a[s])):s in r?r[s].push(n):(r[s]=[n],i(...e,(e,...t)=>{e||(a[s]=t);var n=r[s];delete r[s];for(var d=0,c=n.length;d<c;d++)n[d](e,...t)}))});return s.memo=a,s.unmemoized=e,s}function H(e,t){return ct(Oe,e,t)}function Z(e,t,n){return ct(xe(t),e,n)}function $(e,t){var n=o(e);return M((e,t)=>{n(e[0],t)},t,1)}function J(e,t){var n=$(e,t);return n.push=function(e,t=0,a=()=>{}){if("function"!=typeof a)throw new Error("task callback must be a function");if(n.started=!0,Array.isArray(e)||(e=[e]),0===e.length)return ve(()=>n.drain());for(var r=n._tasks.head;r&&t>=r.priority;)r=r.next;for(var s,d=0,c=e.length;d<c;d++)s={data:e[d],priority:t,callback:a}
571,r?n._tasks.insertBefore(r,s):n._tasks.push(s);ve(n.process)},delete n.unshift,n}function ee(e,t,n,i){var a=[...e].reverse();return Ve(a,t,n,i)}function te(e){var t=o(e);return n(function(e,n){return e.push((e,...t)=>{if(e)return n(null,{error:e});var i=t;1>=t.length&&([i]=t),n(null,{value:i})}),t.apply(this,e)})}function ne(e){var t;return Array.isArray(e)?t=e.map(te):(t={},Object.keys(e).forEach(n=>{t[n]=te.call(this,e[n])})),t}function ie(e,t,n,i){const a=o(n);return D(e,t,(e,t)=>{a(e,(e,n)=>{t(e,!n)})},i)}function ae(e){return function(){return e}}function re(e,t,n){function i(){r((e,...t)=>{!1===e||(e&&s++<a.times&&("function"!=typeof a.errorFilter||a.errorFilter(e))?setTimeout(i,a.intervalFunc(s)):n(e,...t))})}var a={times:ht,intervalFunc:ae(yt)};if(3>arguments.length&&"function"==typeof e?(n=t||_(),t=e):(se(a,e),n=n||_()),"function"!=typeof t)throw new Error("Invalid arguments for async.retry");var r=o(t),s=1;return i(),n[Be]}function se(e,n){if("object"==typeof n)e.times=+n.times||ht,e.intervalFunc="function"==typeof n.interval?n.interval:ae(+n.interval||yt),e.errorFilter=n.errorFilter;else if("number"==typeof n||"string"==typeof n)e.times=+n||ht;else throw new Error("Invalid arguments for async.retry")}function le(e,t){t||(t=e,e=null);let i=e&&e.arity||t.length;d(t)&&(i+=1);var a=o(t);return n((t,n)=>{function r(e){a(...t,e)}return(t.length<i-1||null==n)&&(t.push(n),n=_()),e?re(e,r,n):re(r,n),n[Be]})}function de(e,t){return ct(je,e,t)}function ce(e,t,i){var a=o(e);return n((n,r)=>{var s,l=!1;n.push((...e)=>{l||(r(...e),clearTimeout(s))}),s=setTimeout(function(){var t=e.name||"anonymous",n=new Error("Callback function \""+t+"\" timed out.");n.code="ETIMEDOUT",i&&(n.info=i),l=!0,r(n)},t),a(...n)})}function ue(e){for(var t=Array(e);e--;)t[e]=e;return t}function oe(e,t,n,i){var a=o(n);return qe(ue(e),t,a,i)}function fe(e,t,n){return oe(e,1/0,t,n)}function pe(e,t,n){return oe(e,1,t,n)}function he(e,t,n,i){3>=arguments.length&&"function"==typeof t&&(i=n,n=t,t=Array.isArray(e)?[]:{}),i=y(i||_());var a=o(n);return Oe(e,(e,n,i)=>{a(t,e,n,i)},e=>i(e,t)),i[Be]}function ye(e){return(...t)=>(e.unmemoized||e)(...t)}function me(e,t,n){const i=o(e);return Lt(e=>i((t,n)=>e(t,!n)),t,n)}var ge,ke="function"==typeof setImmediate&&setImmediate,Se="object"==typeof process&&"function"==typeof process.nextTick;ge=ke?setImmediate:Se?process.nextTick:i;var ve=a(ge);const Le={};var xe=e=>(t,n,i)=>{function a(e,t){if(!d)if(o-=1,e)l=!0,i(e);else if(!1===e)l=!0,d=!0;else{if(t===Le||l&&0>=o)return l=!0,i(null);f||r()}}function r(){for(f=!0;o<e&&!l;){var t=s();if(null===t)return l=!0,void(0>=o&&i(null));o+=1,n(t.value,t.key,L(a))}f=!1}if(i=y(i),0>=e)throw new RangeError("concurrency limit cannot be less than 1");if(!t)return i(null);if(c(t))return x(t,e,n,i);if(u(t))return x(t[Symbol.asyncIterator](),e,n,i);var s=v(t),l=!1,d=!1,o=0,f=!1;r()},Ee=E(function(e,t,n,i){return xe(t)(e,o(n),i)},4),Oe=E(function(e,t,n){var i=h(e)?O:b;return i(e,o(t),n)},3),be=E(function(e,t,n){return p(Oe,e,t,n)},3),_e=f(be),je=E(function(e,t,n){return Ee(e,1,t,n)},3),Ie=E(function(e,t,n){return p(je,e,t,n)},3),Ae=f(Ie);const Be=Symbol("promiseCallback");var Me=/^(?:async\s+)?(?:function)?\s*[^(]*\(\s*([^)]+)\s*\)(?:\s*{)/m,Fe=/^(?:async\s+)?\(?\s*([^)^=]+)\s*\)?(?:\s*=>)/m,Te=/,/,we=/(=.+)?(\s*)$/,Pe=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/mg;class ze{constructor(){this.head=this.tail=null,this.length=0}removeLink(e){return e.prev?e.prev.next=e.next:this.head=e.next,e.next?e.next.prev=e.prev:this.tail=e.prev,e.prev=e.next=null,this.length-=1,e}empty(){for(;this.head;)this.shift();return this}insertAfter(e,t){t.prev=e,t.next=e.next,e.next?e.next.prev=t:this.tail=t,e.next=t,this.length+=1}insertBefore(e,t){t.prev=e.prev,t.next=e,e.prev?e.prev.next=t:this.head=t,e.prev=t,this.length+=1}unshift(e){this.head?this.insertBefore(this.head,e):B(this,e)}push(e){this.tail?this.insertAfter(this.tail,e):B(this,e)}shift(){return this.head&&this.removeLink(this.head)}pop(){return this.tail&&this.removeLink(this.tail)}toArray(){return[...this]}*[Symbol.iterator](){for(var e=this.head;e;)yield e.data,e=e.next}remove(e){for(var t=this.head;t;){var{next:n}=t;e(t)&&this.removeLink(t),t=n}return this}}const Re=()=>{};var Ye,Ve=E(function(e,t,n,i){i=y(i);var a=o(n);return je(e,(e,n,i)=>{a(t,e,(e,n)=>{t=n,i(e)})},e=>i(e,t))},4),qe=E(function(e,t,n,i){return p(xe(t),e,n,i)},4),Ce=E(function(e,t,n,a){var i=o(n);return qe(e,t,(e,t)=>{i(e,(e,...n)=>e?t(e):t(null,n))},(e,t)=>{for(var n=[],r=0;r<t.length;r++)t[r]&&(n=n.concat(...t[r]));return a(e,n)})},4),Qe=E(function(e,t,n){return Ce(e,1/0,t,n)},3),Ne=E(function(e,t,n){return Ce(e,1,t,n)},3),De=E(function(e,t,n){return R(e=>e,(e,t)=>t)(Oe,e,t,n)},3),Ue=E(function(e,t,n,i){return R(e=>e,(e,t)=>t)(xe(t),e,n,i)},4),We=E(function(e,t,n){return R(e=>e,(e,t)=>t)(xe(1),e,t,n)},3),Ge=Y("dir"),Ke=E(function(e,t,n){function i(e,...t){return e?n(e):void(!1===e||(r=t,l(...t,a)))}function a(e,t){return e?n(e):!1===e?void 0:t?void s(i):n(null,...r)}n=L(n);var r,s=o(e),l=o(t);return a(null,!0)},3),Xe=E(function(e,t,n){return Oe(e,q(o(t)),n)},3),He=E(function(e,t,n,i){return xe(t)(e,q(o(n)),i)},4),Ze=E(function(e,t,n){return He(e,1,t,n)},3),$e=E(function(e,t,n){return R(e=>!e,e=>!e)(Oe,e,t,n)},3),Je=E(function(e,t,n,i){return R(e=>!e,e=>!e)(xe(t),e,n,i)},4),et=E(function(e,t,n){return R(e=>!e,e=>!e)(je,e,t,n)},3),tt=E(function(e,t,n){return D(Oe,e,t,n)},3),nt=E(function(e,t,n,i){return D(xe(t),e,n,i)},4),it=E(function(e,t,n){return D(je,e,t,n)},3),at=E(function(e,t){function n(e){return e?i(e):void(!1===e||a(n))}var i=L(t),a=o(C(e));return n()},2),rt=E(function(e,t,n,a){var i=o(n);return qe(e,t,(e,t)=>{i(e,(n,i)=>n?t(n):t(null,{key:i,val:e}))},(e,t)=>{for(var n={},{hasOwnProperty:r}=Object.prototype,s=0;s<t.length;s++)if(t[s]){var{key:l}=t[s],{val:d}=t[s];r.call(n,l)?n[l].push(d):n[l]=[d]}return a(e,n)})},4),st=Y("log"),lt=E(function(e,t,n,i){i=y(i);var a={},r=o(n);return xe(t)(e,(e,t,n)=>{r(e,t,(e,i)=>e?n(e):void(a[t]=i,n()))},e=>i(e,a))},4);Ye=Se?process.nextTick:ke?setImmediate:i;var dt=a(Ye),ct=E((e,t,n)=>{var i=h(t)?[]:{};e(t,(e,t,n)=>{o(e)((e,...a)=>{2>a.length&&([a]=a),i[t]=a,n(e)})},e=>n(e,i))},3),ut=E(function(e,t){if(t=y(t),!Array.isArray(e))return t(new TypeError("First argument to race must be an array of functions"));if(!e.length)return t();for(var n=0,a=e.length;n<a;n++)o(e[n])(t)},2),ot=E(function(e,t,n){return ie(Oe,e,t,n)},3),ft=E(function(e,t,n,i){return ie(xe(t),e,n,i)},4),pt=E(function(e,t,n){return ie(je,e,t,n)},3);const ht=5,yt=0;var mt=E(function(e,t,n){return R(Boolean,e=>e)(Oe,e,t,n)},3),gt=E(function(e,t,n,i){return R(Boolean,e=>e)(xe(t),e,n,i)},4),kt=E(function(e,t,n){return R(Boolean,e=>e)(je,e,t,n)},3),St=E(function(e,t,n){function i(e,t){var n=e.criteria,i=t.criteria;return n<i?-1:n>i?1:0}var a=o(t);return be(e,(e,t)=>{a(e,(n,i)=>n?t(n):void t(null,{value:e,criteria:i}))},(e,t)=>e?n(e):void n(null,t.sort(i).map(e=>e.value)))},3),vt=E(function(e,t){var n,i=null;return Ze(e,(e,t)=>{o(e)((e,...a)=>{2>a.length?[n]=a:n=a,i=e,t(e?null:{})})},()=>t(i,n))}),Lt=E(function(e,t,n){function i(e,...t){if(e)return n(e);r=t;!1===e||l(a)}function a(e,t){return e?n(e):!1===e?void 0:t?void s(i):n(null,...r)}n=L(n);var r,s=o(t),l=o(e);return l(a)},3),xt=E(function(e,t){function n(t){var n=o(e[a++]);n(...t,L(i))}function i(i,...r){return!1===i?void 0:i||a===e.length?t(i,...r):void n(r)}if(t=y(t),!Array.isArray(e))return t(new Error("First argument to waterfall must be an array of functions"));if(!e.length)return t();var a=0;n([])});e.default={apply:t,applyEach:_e,applyEachSeries:Ae,asyncify:r,auto:j,autoInject:A,cargo:F,cargoQueue:T,compose:P,concat:Qe,concatLimit:Ce,concatSeries:Ne,constant:z,detect:De,detectLimit:Ue,detectSeries:We,dir:Ge,doUntil:V,doWhilst:Ke,each:Xe,eachLimit:He,eachOf:Oe,eachOfLimit:Ee,eachOfSeries:je,eachSeries:Ze,ensureAsync:C,every:$e,everyLimit:Je,everySeries:et,filter:tt,filterLimit:nt,filterSeries:it,forever:at,groupBy:U,groupByLimit:rt,groupBySeries:W,log:st,map:be,mapLimit:qe,mapSeries:Ie,mapValues:G,mapValuesLimit:lt,mapValuesSeries:K,memoize:X,nextTick:dt,parallel:H,parallelLimit:Z,priorityQueue:J,queue:$,race:ut,reduce:Ve,reduceRight:ee,reflect:te,reflectAll:ne,reject:ot,rejectLimit:ft,rejectSeries:pt,retry:re,retryable:le,seq:w,series:de,setImmediate:ve,some:mt,someLimit:gt,someSeries:kt,sortBy:St,timeout:ce,times:fe,timesLimit:oe,timesSeries:pe,transform:he,tryEach:vt,unmemoize:ye,until:me,waterfall:xt,whilst:Lt,all:$e,allLimit:Je,allSeries:et,any:mt,anyLimit:gt,anySeries:kt,find:De,findLimit:Ue,findSeries:We,forEach:Xe,forEachSeries:Ze,forEachLimit:He,forEachOf:Oe,forEachOfSeries:je,forEachOfLimit:Ee,inject:Ve,foldl:Ve,foldr:ee,select:tt,selectLimit:nt,selectSeries:it,wrapSync:r,during:Lt,doDuring:Ke},e.apply=t,e.applyEach=_e,e.applyEachSeries=Ae,e.asyncify=r,e.auto=j,e.autoInject=A,e.cargo=F,e.cargoQueue=T,e.compose=P,e.concat=Qe,e.concatLimit=Ce,e.concatSeries=Ne,e.constant=z,e.detect=De,e.detectLimit=Ue,e.detectSeries=We,e.dir=Ge,e.doUntil=V,e.doWhilst=Ke,e.each=Xe,e.eachLimit=He,e.eachOf=Oe,e.eachOfLimit=Ee,e.eachOfSeries=je,e.eachSeries=Ze,e.ensureAsync=C,e.every=$e,e.everyLimit=Je,e.everySeries=et,e.filter=tt,e.filterLimit=nt,e.filterSeries=it,e.forever=at,e.groupBy=U,e.groupByLimit=rt,e.groupBySeries=W,e.log=st,e.map=be,e.mapLimit=qe,e.mapSeries=Ie,e.mapValues=G,e.mapValuesLimit=lt,e.mapValuesSeries=K,e.memoize=X,e.nextTick=dt,e.parallel=H,e.parallelLimit=Z,e.priorityQueue=J,e.queue=$,e.race=ut,e.reduce=Ve,e.reduceRight=ee,e.reflect=te,e.reflectAll=ne,e.reject=ot,e.rejectLimit=ft,e.rejectSeries=pt,e.retry=re,e.retryable=le,e.seq=w,e.series=de,e.setImmediate=ve,e.some=mt,e.someLimit=gt,e.someSeries=kt,e.sortBy=St,e.timeout=ce,e.times=fe,e.timesLimit=oe,e.timesSeries=pe,e.transform=he,e.tryEach=vt,e.unmemoize=ye,e.until=me,e.waterfall=xt,e.whilst=Lt,e.all=$e,e.allLimit=Je,e.allSeries=et,e.any=mt,e.anyLimit=gt,e.anySeries=kt,e.find=De,e.findLimit=Ue,e.findSeries=We,e.forEach=Xe,e.forEachSeries=Ze,e.forEachLimit=He,e.forEachOf=Oe,e.forEachOfSeries=je,e.forEachOfLimit=Ee,e.inject=Ve,e.foldl=Ve,e.foldr=ee,e.select=tt,e.selectLimit=nt,e.selectSeries=it,e.wrapSync=r,e.during=Lt,e.doDuring=Ke,Object.defineProperty(e,"__esMo
571dule",{value:!0})}); 572</script>
572 573
vendor: 7,571 bytes, lines 573-645
573<script> 574;(function(global,factory){typeof exports==='object'&&typeof module!=='undefined'?module.exports=factory():typeof define==='function'&&define.amd?define(factory):global.moment=factory()}(this,(function(){'use strict';var hookCallback;function hooks(){return hookCallback.apply(null,arguments);} 575function setHookCallback(callback){hookCallback=callback;} 576function isArray(input){return input instanceof Array||Object.prototype.toString.call(input)==='[object Array]';} 577function isObject(input){return input!=null&&Object.prototype.toString.call(input)==='[object Object]';} 578function isObjectEmpty(obj){if(Object.getOwnPropertyNames){return(Object.getOwnPropertyNames(obj).length===0);}else{var k;for(k in obj){if(obj.hasOwnProperty(k)){return false;}} 579return true;}} 580function isUndefined(input){return input===void 0;} 581function isNumber(input){return typeof input==='number'||Object.prototype.toString.call(input)==='[object Number]';} 582function isDate(input){return input instanceof Date||Object.prototype.toString.call(input)==='[object Date]';} 583function map(arr,fn){var res=[],i;for(i=0;i<arr.length;++i){res.push(fn(arr[i],i));} 584return res;} 585function hasOwnProp(a,b){return Object.prototype.hasOwnProperty.call(a,b);} 586function extend(a,b){for(var i in b){if(hasOwnProp(b,i)){a[i]=b[i];}} 587if(hasOwnProp(b,'toString')){a.toString=b.toString;} 588if(hasOwnProp(b,'valueOf')){a.valueOf=b.valueOf;} 589return a;} 590function createUTC(input,format,locale,strict){return createLocalOrUTC(input,format,locale,strict,true).utc();} 591function defaultParsingFlags(){return{empty:false,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:false,invalidMonth:null,invalidFormat:false,userInvalidated:false,iso:false,parsedDateParts:[],meridiem:null,rfc2822:false,weekdayMismatch:false};} 592function getParsingFlags(m){if(m._pf==null){m._pf=defaultParsingFlags();} 593return m._pf;} 594var some;if(Array.prototype.some){some=Array.prototype.some;}else{some=function(fun){var t=Object(this);var len=t.length>>>0;for(var i=0;i<len;i++){if(i in t&&fun.call(this,t[i],i,t)){return true;}} 595return false;};} 596function isValid(m){if(m._isValid==null){var flags=getParsingFlags(m);var parsedParts=some.call(flags.parsedDateParts,function(i){return i!=null;});var isNowValid=!isNaN(m._d.getTime())&&flags.overflow<0&&!flags.empty&&!flags.invalidMonth&&!flags.invalidWeekday&&!flags.weekdayMismatch&&!flags.nullInput&&!flags.invalidFormat&&!flags.userInvalidated&&(!flags.meridiem||(flags.meridiem&&parsedParts));if(m._strict){isNowValid=isNowValid&&flags.charsLeftOver===0&&flags.unusedTokens.length===0&&flags.bigHour===undefined;} 597if(Object.isFrozen==null||!Object.isFrozen(m)){m._isValid=isNowValid;} 598else{return isNowValid;}} 599return m._isValid;} 600function createInvalid(flags){var m=createUTC(NaN);if(flags!=null){extend(getParsingFlags(m),flags);} 601else{getParsingFlags(m).userInvalidated=true;} 602return m;} 603var momentProperties=hooks.momentProperties=[];function copyConfig(to,from){var i,prop,val;if(!isUndefined(from._isAMomentObject)){to._isAMomentObject=from._isAMomentObject;} 604if(!isUndefined(from._i)){to._i=from._i;} 605if(!isUndefined(from._f)){to._f=from._f;} 606if(!isUndefined(from._l)){to._l=from._l;} 607if(!isUndefined(from._strict)){to._strict=from._strict;} 608if(!isUndefined(from._tzm)){to._tzm=from._tzm;} 609if(!isUndefined(from._isUTC)){to._isUTC=from._isUTC;} 610if(!isUndefined(from._offset)){to._offset=from._offset;} 611if(!isUndefined(from._pf)){to._pf=getParsingFlags(from);} 612if(!isUndefined(from._locale)){to._locale=from._locale;} 613if(momentProperties.length>0){for(i=0;i<momentProperties.length;i++){prop=momentProperties[i];val=from[prop];if(!isUndefined(val)){to[prop]=val;}}} 614return to;} 615var updateInProgress=false;function Moment(config){copyConfig(this,config);this._d=new Date(config._d!=null?config._d.getTime():NaN);if(!this.isValid()){this._d=new Date(NaN);} 616if(updateInProgress===false){updateInProgress=true;hooks.updateOffset(this);updateInProgress=false;}} 617function isMoment(obj){return obj instanceof Moment||(obj!=null&&obj._isAMomentObject!=null);} 618function absFloor(number){if(number<0){return Math.ceil(number)||0;}else{return Math.floor(number);}} 619function toInt(argumentForCoercion){var coercedNumber=+argumentForCoercion,value=0;if(coercedNumber!==0&&isFinite(coercedNumber)){value=absFloor(coercedNumber);} 620return value;} 621function compareArrays(array1,array2,dontConvert){var len=Math.min(array1.length,array2.length),lengthDiff=Math.abs(array1.length-array2.length),diffs=0,i;for(i=0;i<len;i++){if((dontConvert&&array1[i]!==array2[i])||(!dontConvert&&toInt(array1[i])!==toInt(array2[i]))){diffs++;}} 622return diffs+lengthDiff;} 623function warn(msg){if(hooks.suppressDeprecationWarnings===false&&(typeof console!=='undefined')&&console.warn){console.warn('Deprecation warning: '+msg);}} 624function deprecate(msg,fn){var firstTime=true;return extend(function(){if(hooks.deprecationHandler!=null){hooks.deprecationHandler(null,msg);} 625if(firstTime){var args=[];var arg;for(var i=0;i<arguments.length;i++){arg='';if(typeof arguments[i]==='object'){arg+='\n['+i+'] ';for(var key in arguments[0]){arg+=key+': '+arguments[0][key]+', ';} 626arg=arg.slice(0,-2);}else{arg=arguments[i];} 627args.push(arg);} 628warn(msg+'\nArguments: '+Array.prototype.slice.call(args).join('')+'\n'+(new Error()).stack);firstTime=false;} 629return fn.apply(this,arguments);},fn);} 630var deprecations={};function deprecateSimple(name,msg){if(hooks.deprecationHandler!=null){hooks.deprecationHandler(name,msg);} 631if(!deprecations[name]){warn(msg);deprecations[name]=true;}} 632hooks.suppressDeprecationWarnings=false;hooks.deprecationHandler=null;function isFunction(input){return input instanceof Function||Object.prototype.toString.call(input)==='[object Function]';} 633function set(config){var prop,i;for(i in config){prop=config[i];if(isFunction(prop)){this[i]=prop;}else{this['_'+i]=prop;}} 634this._config=config;this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+ 635'|'+(/\d{1,2}/).source);} 636function mergeConfigs(parentConfig,childConfig){var res=extend({},parentConfig),prop;for(prop in childConfig){if(hasOwnProp(childConfig,prop)){if(isObject(parentConfig[prop])&&isObject(childConfig[prop])){res[prop]={};extend(res[prop],parentConfig[prop]);extend(res[prop],childConfig[prop]);}else if(childConfig[prop]!=null){res[prop]=childConfig[prop];}else{delete res[prop];}}} 637for(prop in parentConfig){if(hasOwnProp(parentConfig,prop)&&!hasOwnProp(childConfig,prop)&&isObject(parentConfig[prop])){res[prop]=extend({},res[prop]);}} 638return res;} 639function Locale(config){if(config!=null){this.set(config);}} 640var keys;if(Object.keys){keys=Object.keys;}else{keys=function(obj){var i,res=[];for(i in obj){if(hasOwnProp(obj,i)){res.push(i);}} 641return res;};} 642var defaultCalendar={sameDay:'[Today at] LT',nextDay:'[Tomorrow at] LT',nextWeek:'dddd [at] LT',lastDay:'[Yesterday at] LT',lastWeek:'[Last] dddd [at] LT',sameElse:'L'};function calendar(key,mom,now){var output=this._calendar[key]||this._calendar['sameElse'];return isFunction(output)?output.call(mom,now):output;} 643var defaultLongDateFormat={LTS:'h:mm:ss A',LT:'h:mm A',L:'MM/DD/YYYY',LL:'MMMM D, YYYY',LLL:'MMMM D, YYYY h:mm A',LLLL:'dddd, MMMM D, YYYY h:mm A'};function longDateFormat(key){var format=this._longDateFormat[key],formatUpper=this._longDateFormat[key.toUpperCase()];if(format||!formatUpper){return format;} 644this._longDateFormat[key]=formatUpper.replace(/MMMM|MM|DD|dddd/g,function(val){return val.slice(1);});return this._longDateFormat[key];} 645var defaultInvalidDate='Invalid date';
vendor: 10,207 bytes, lines 645-702
645function invalidDate(){return this._invalidDate;} 646var defaultOrdinal='%d';var defaultDayOfMonthOrdinalParse=/\d{1,2}/;function ordinal(number){return this._ordinal.replace('%d',number);} 647var defaultRelativeTime={future:'in %s',past:'%s ago',s:'a few seconds',ss:'%d seconds',m:'a minute',mm:'%d minutes',h:'an hour',hh:'%d hours',d:'a day',dd:'%d days',M:'a month',MM:'%d months',y:'a year',yy:'%d years'};function relativeTime(number,withoutSuffix,string,isFuture){var output=this._relativeTime[string];return(isFunction(output))?output(number,withoutSuffix,string,isFuture):output.replace(/%d/i,number);} 648function pastFuture(diff,output){var format=this._relativeTime[diff>0?'future':'past'];return isFunction(format)?format(output):format.replace(/%s/i,output);} 649var aliases={};function addUnitAlias(unit,shorthand){var lowerCase=unit.toLowerCase();aliases[lowerCase]=aliases[lowerCase+'s']=aliases[shorthand]=unit;} 650function normalizeUnits(units){return typeof units==='string'?aliases[units]||aliases[units.toLowerCase()]:undefined;} 651function normalizeObjectUnits(inputObject){var normalizedInput={},normalizedProp,prop;for(prop in inputObject){if(hasOwnProp(inputObject,prop)){normalizedProp=normalizeUnits(prop);if(normalizedProp){normalizedInput[normalizedProp]=inputObject[prop];}}} 652return normalizedInput;} 653var priorities={};function addUnitPriority(unit,priority){priorities[unit]=priority;} 654function getPrioritizedUnits(unitsObj){var units=[];for(var u in unitsObj){units.push({unit:u,priority:priorities[u]});} 655units.sort(function(a,b){return a.priority-b.priority;});return units;} 656function zeroFill(number,targetLength,forceSign){var absNumber=''+Math.abs(number),zerosToFill=targetLength-absNumber.length,sign=number>=0;return(sign?(forceSign?'+':''):'-')+ 657Math.pow(10,Math.max(0,zerosToFill)).toString().substr(1)+absNumber;} 658var formattingTokens=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g;var localFormattingTokens=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g;var formatFunctions={};var formatTokenFunctions={};function addFormatToken(token,padded,ordinal,callback){var func=callback;if(typeof callback==='string'){func=function(){return this[callback]();};} 659if(token){formatTokenFunctions[token]=func;} 660if(padded){formatTokenFunctions[padded[0]]=function(){return zeroFill(func.apply(this,arguments),padded[1],padded[2]);};} 661if(ordinal){formatTokenFunctions[ordinal]=function(){return this.localeData().ordinal(func.apply(this,arguments),token);};}} 662function removeFormattingTokens(input){if(input.match(/\[[\s\S]/)){return input.replace(/^\[|\]$/g,'');} 663return input.replace(/\\/g,'');} 664function makeFormatFunction(format){var array=format.match(formattingTokens),i,length;for(i=0,length=array.length;i<length;i++){if(formatTokenFunctions[array[i]]){array[i]=formatTokenFunctions[array[i]];}else{array[i]=removeFormattingTokens(array[i]);}} 665return function(mom){var output='',i;for(i=0;i<length;i++){output+=isFunction(array[i])?array[i].call(mom,format):array[i];} 666return output;};} 667function formatMoment(m,format){if(!m.isValid()){return m.localeData().invalidDate();} 668format=expandFormat(format,m.localeData());formatFunctions[format]=formatFunctions[format]||makeFormatFunction(format);return formatFunctions[format](m);} 669function expandFormat(format,locale){var i=5;function replaceLongDateFormatTokens(input){return locale.longDateFormat(input)||input;} 670localFormattingTokens.lastIndex=0;while(i>=0&&localFormattingTokens.test(format)){format=format.replace(localFormattingTokens,replaceLongDateFormatTokens);localFormattingTokens.lastIndex=0;i-=1;} 671return format;} 672var match1=/\d/;var match2=/\d\d/;var match3=/\d{3}/;var match4=/\d{4}/;var match6=/[+-]?\d{6}/;var match1to2=/\d\d?/;var match3to4=/\d\d\d\d?/;var match5to6=/\d\d\d\d\d\d?/;var match1to3=/\d{1,3}/;var match1to4=/\d{1,4}/;var match1to6=/[+-]?\d{1,6}/;var matchUnsigned=/\d+/;var matchSigned=/[+-]?\d+/;var matchOffset=/Z|[+-]\d\d:?\d\d/gi;var matchShortOffset=/Z|[+-]\d\d(?::?\d\d)?/gi;var matchTimestamp=/[+-]?\d+(\.\d{1,3})?/;var matchWord=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i;var regexes={};function addRegexToken(token,regex,strictRegex){regexes[token]=isFunction(regex)?regex:function(isStrict,localeData){return(isStrict&&strictRegex)?strictRegex:regex;};} 673function getParseRegexForToken(token,config){if(!hasOwnProp(regexes,token)){return new RegExp(unescapeFormat(token));} 674return regexes[token](config._strict,config._locale);} 675function unescapeFormat(s){return regexEscape(s.replace('\\','').replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(matched,p1,p2,p3,p4){return p1||p2||p3||p4;}));} 676function regexEscape(s){return s.replace(/[-\/\\^$*+?.()|[\]{}]/g,'\\$&');} 677var tokens={};function addParseToken(token,callback){var i,func=callback;if(typeof token==='string'){token=[token];} 678if(isNumber(callback)){func=function(input,array){array[callback]=toInt(input);};} 679for(i=0;i<token.length;i++){tokens[token[i]]=func;}} 680function addWeekParseToken(token,callback){addParseToken(token,function(input,array,config,token){config._w=config._w||{};callback(input,config._w,config,token);});} 681function addTimeToArrayFromToken(token,input,config){if(input!=null&&hasOwnProp(tokens,token)){tokens[token](input,config._a,config,token);}} 682var YEAR=0;var MONTH=1;var DATE=2;var HOUR=3;var MINUTE=4;var SECOND=5;var MILLISECOND=6;var WEEK=7;var WEEKDAY=8;addFormatToken('Y',0,0,function(){var y=this.year();return y<=9999?''+y:'+'+y;});addFormatToken(0,['YY',2],0,function(){return this.year()%100;});addFormatToken(0,['YYYY',4],0,'year');addFormatToken(0,['YYYYY',5],0,'year');addFormatToken(0,['YYYYYY',6,true],0,'year');addUnitAlias('year','y');addUnitPriority('year',1);addRegexToken('Y',matchSigned);addRegexToken('YY',match1to2,match2);addRegexToken('YYYY',match1to4,match4);addRegexToken('YYYYY',match1to6,match6);addRegexToken('YYYYYY',match1to6,match6);addParseToken(['YYYYY','YYYYYY'],YEAR);addParseToken('YYYY',function(input,array){array[YEAR]=input.length===2?hooks.parseTwoDigitYear(input):toInt(input);});addParseToken('YY',function(input,array){array[YEAR]=hooks.parseTwoDigitYear(input);});addParseToken('Y',function(input,array){array[YEAR]=parseInt(input,10);});function daysInYear(year){return isLeapYear(year)?366:365;} 683function isLeapYear(year){return(year%4===0&&year%100!==0)||year%400===0;} 684hooks.parseTwoDigitYear=function(input){return toInt(input)+(toInt(input)>68?1900:2000);};var getSetYear=makeGetSet('FullYear',true);function getIsLeapYear(){return isLeapYear(this.year());} 685function makeGetSet(unit,keepTime){return function(value){if(value!=null){set$1(this,unit,value);hooks.updateOffset(this,keepTime);return this;}else{return get(this,unit);}};} 686function get(mom,unit){return mom.isValid()?mom._d['get'+(mom._isUTC?'UTC':'')+unit]():NaN;} 687function set$1(mom,unit,value){if(mom.isValid()&&!isNaN(value)){if(unit==='FullYear'&&isLeapYear(mom.year())&&mom.month()===1&&mom.date()===29){mom._d['set'+(mom._isUTC?'UTC':'')+unit](value,mom.month(),daysInMonth(value,mom.month()));} 688else{mom._d['set'+(mom._isUTC?'UTC':'')+unit](value);}}} 689function stringGet(units){units=normalizeUnits(units);if(isFunction(this[units])){return this[units]();} 690return this;} 691function stringSet(units,value){if(typeof units==='object'){units=normalizeObjectUnits(units);var prioritized=getPrioritizedUnits(units);for(var i=0;i<prioritized.length;i++){this[prioritized[i].unit](units[prioritized[i].unit]);}}else{units=normalizeUnits(units);if(isFunction(this[units])){return this[units](value);}} 692return this;} 693function mod(n,x){return((n%x)+x)%x;} 694var indexOf;if(Array.prototype.indexOf){indexOf=Array.prototype.indexOf;}else{indexOf=function(o){var i;for(i=0;i<this.length;++i){if(this[i]===o){return i;}} 695return-1;};} 696function daysInMonth(year,month){if(isNaN(year)||isNaN(month)){return NaN;} 697var modMonth=mod(month,12);year+=(month-modMonth)/12;return modMonth===1?(isLeapYear(year)?29:28):(31-modMonth%7%2);} 698addFormatToken('M',['MM',2],'Mo',function(){return this.month()+1;});addFormatToken('MMM',0,0,function(format){return this.localeData().monthsShort(this,format);});addFormatToken('MMMM',0,0,function(format){return this.localeData().months(this,format);});addUnitAlias('month','M');addUnitPriority('month',8);addRegexToken('M',match1to2);addRegexToken('MM',match1to2,match2);addRegexToken('MMM',function(isStrict,locale){return locale.monthsShortRegex(isStrict);});addRegexToken('MMMM',function(isStrict,locale){return locale.monthsRegex(isStrict);});addParseToken(['M','MM'],function(input,array){array[MONTH]=toInt(input)-1;});addParseToken(['MMM','MMMM'],function(input,array,config,token){var month=config._locale.monthsParse(input,token,config._strict);if(month!=null){array[MONTH]=month;}else{getParsingFlags(config).invalidMonth=input;}});var MONTHS_IN_FORMAT=/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/;var defaultLocaleMonths='January_February_March_April_May_June_July_August_September_October_November_December'.split('_');function localeMonths(m,format){if(!m){return isArray(this._months)?this._months:this._months['standalone'];} 699return isArray(this._months)?this._months[m.month()]:this._months[(this._months.isFormat||MONTHS_IN_FORMAT).test(format)?'format':'standalone'][m.month()];} 700var defaultLocaleMonthsShort='Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_');function localeMonthsShort(m,format){if(!m){return isArray(this._monthsShort)?this._monthsShort:this._monthsShort['standalone'];} 701return isArray(this._monthsShort)?this._monthsShort[m.month()]:this._monthsShort[MONTHS_IN_FORMAT.test(format)?'format':'standalone'][m.month()];} 702function handleStrictParse(monthName,format,strict){var i,ii,mom,llc=monthName.toLocaleLowerCase();if(!this._monthsParse){this._monthsParse=[];this._longMonthsParse=[];this._shortMonthsParse=[];for(i=0;i<12;++i){mom=createUTC([2000,i]);this._shortMonthsParse[i]=this.monthsShort(mom,'').toLocaleLowerCase();this._longMonthsParse[i]=this.months(mom,'').toLocaleLowerCase();}}
vendor: 1,141 bytes, lines 703-709
703if(strict){if(format==='MMM'){ii=indexOf.call(this._shortMonthsParse,llc);return ii!==-1?ii:null;}else{ii=indexOf.call(this._longMonthsParse,llc);return ii!==-1?ii:null;}}else{if(format==='MMM'){ii=indexOf.call(this._shortMonthsParse,llc);if(ii!==-1){return ii;} 704ii=indexOf.call(this._longMonthsParse,llc);return ii!==-1?ii:null;}else{ii=indexOf.call(this._longMonthsParse,llc);if(ii!==-1){return ii;} 705ii=indexOf.call(this._shortMonthsParse,llc);return ii!==-1?ii:null;}}} 706function localeMonthsParse(monthName,format,strict){var i,mom,regex;if(this._monthsParseExact){return handleStrictParse.call(this,monthName,format,strict);} 707if(!this._monthsParse){this._monthsParse=[];this._longMonthsParse=[];this._shortMonthsParse=[];} 708for(i=0;i<12;i++){mom=createUTC([2000,i]);if(strict&&!this._longMonthsParse[i]){this._longMonthsParse[i]=new RegExp('^'+this.months(mom,'').replace('.','')+'$','i');this._shortMonthsParse[i]=new RegExp('^'+this.monthsShort(mom,'').replace('.','')+'$','i');} 709if(!strict&&!this._monthsParse[i]){regex='^'+this.months(mom,'')+'|^'+this.monthsShort(mom,'');this._monthsParse[i]=new RegExp(regex.replace('.',''),'i');}
vendor: 69,684 bytes, lines 710-1104
710if(strict&&format==='MMMM'&&this._longMonthsParse[i].test(monthName)){return i;}else if(strict&&format==='MMM'&&this._shortMonthsParse[i].test(monthName)){return i;}else if(!strict&&this._monthsParse[i].test(monthName)){return i;}}} 711function setMonth(mom,value){var dayOfMonth;if(!mom.isValid()){return mom;} 712if(typeof value==='string'){if(/^\d+$/.test(value)){value=toInt(value);}else{value=mom.localeData().monthsParse(value);if(!isNumber(value)){return mom;}}} 713dayOfMonth=Math.min(mom.date(),daysInMonth(mom.year(),value));mom._d['set'+(mom._isUTC?'UTC':'')+'Month'](value,dayOfMonth);return mom;} 714function getSetMonth(value){if(value!=null){setMonth(this,value);hooks.updateOffset(this,true);return this;}else{return get(this,'Month');}} 715function getDaysInMonth(){return daysInMonth(this.year(),this.month());} 716var defaultMonthsShortRegex=matchWord;function monthsShortRegex(isStrict){if(this._monthsParseExact){if(!hasOwnProp(this,'_monthsRegex')){computeMonthsParse.call(this);} 717if(isStrict){return this._monthsShortStrictRegex;}else{return this._monthsShortRegex;}}else{if(!hasOwnProp(this,'_monthsShortRegex')){this._monthsShortRegex=defaultMonthsShortRegex;} 718return this._monthsShortStrictRegex&&isStrict?this._monthsShortStrictRegex:this._monthsShortRegex;}} 719var defaultMonthsRegex=matchWord;function monthsRegex(isStrict){if(this._monthsParseExact){if(!hasOwnProp(this,'_monthsRegex')){computeMonthsParse.call(this);} 720if(isStrict){return this._monthsStrictRegex;}else{return this._monthsRegex;}}else{if(!hasOwnProp(this,'_monthsRegex')){this._monthsRegex=defaultMonthsRegex;} 721return this._monthsStrictRegex&&isStrict?this._monthsStrictRegex:this._monthsRegex;}} 722function computeMonthsParse(){function cmpLenRev(a,b){return b.length-a.length;} 723var shortPieces=[],longPieces=[],mixedPieces=[],i,mom;for(i=0;i<12;i++){mom=createUTC([2000,i]);shortPieces.push(this.monthsShort(mom,''));longPieces.push(this.months(mom,''));mixedPieces.push(this.months(mom,''));mixedPieces.push(this.monthsShort(mom,''));} 724shortPieces.sort(cmpLenRev);longPieces.sort(cmpLenRev);mixedPieces.sort(cmpLenRev);for(i=0;i<12;i++){shortPieces[i]=regexEscape(shortPieces[i]);longPieces[i]=regexEscape(longPieces[i]);} 725for(i=0;i<24;i++){mixedPieces[i]=regexEscape(mixedPieces[i]);} 726this._monthsRegex=new RegExp('^('+mixedPieces.join('|')+')','i');this._monthsShortRegex=this._monthsRegex;this._monthsStrictRegex=new RegExp('^('+longPieces.join('|')+')','i');this._monthsShortStrictRegex=new RegExp('^('+shortPieces.join('|')+')','i');} 727function createDate(y,m,d,h,M,s,ms){var date;if(y<100&&y>=0){date=new Date(y+400,m,d,h,M,s,ms);if(isFinite(date.getFullYear())){date.setFullYear(y);}}else{date=new Date(y,m,d,h,M,s,ms);} 728return date;} 729function createUTCDate(y){var date;if(y<100&&y>=0){var args=Array.prototype.slice.call(arguments);args[0]=y+400;date=new Date(Date.UTC.apply(null,args));if(isFinite(date.getUTCFullYear())){date.setUTCFullYear(y);}}else{date=new Date(Date.UTC.apply(null,arguments));} 730return date;} 731function firstWeekOffset(year,dow,doy){var 732fwd=7+dow-doy,fwdlw=(7+createUTCDate(year,0,fwd).getUTCDay()-dow)%7;return-fwdlw+fwd-1;} 733function dayOfYearFromWeeks(year,week,weekday,dow,doy){var localWeekday=(7+weekday-dow)%7,weekOffset=firstWeekOffset(year,dow,doy),dayOfYear=1+7*(week-1)+localWeekday+weekOffset,resYear,resDayOfYear;if(dayOfYear<=0){resYear=year-1;resDayOfYear=daysInYear(resYear)+dayOfYear;}else if(dayOfYear>daysInYear(year)){resYear=year+1;resDayOfYear=dayOfYear-daysInYear(year);}else{resYear=year;resDayOfYear=dayOfYear;} 734return{year:resYear,dayOfYear:resDayOfYear};} 735function weekOfYear(mom,dow,doy){var weekOffset=firstWeekOffset(mom.year(),dow,doy),week=Math.floor((mom.dayOfYear()-weekOffset-1)/7)+1,resWeek,resYear;if(week<1){resYear=mom.year()-1;resWeek=week+weeksInYear(resYear,dow,doy);}else if(week>weeksInYear(mom.year(),dow,doy)){resWeek=week-weeksInYear(mom.year(),dow,doy);resYear=mom.year()+1;}else{resYear=mom.year();resWeek=week;} 736return{week:resWeek,year:resYear};} 737function weeksInYear(year,dow,doy){var weekOffset=firstWeekOffset(year,dow,doy),weekOffsetNext=firstWeekOffset(year+1,dow,doy);return(daysInYear(year)-weekOffset+weekOffsetNext)/7;} 738addFormatToken('w',['ww',2],'wo','week');addFormatToken('W',['WW',2],'Wo','isoWeek');addUnitAlias('week','w');addUnitAlias('isoWeek','W');addUnitPriority('week',5);addUnitPriority('isoWeek',5);addRegexToken('w',match1to2);addRegexToken('ww',match1to2,match2);addRegexToken('W',match1to2);addRegexToken('WW',match1to2,match2);addWeekParseToken(['w','ww','W','WW'],function(input,week,config,token){week[token.substr(0,1)]=toInt(input);});function localeWeek(mom){return weekOfYear(mom,this._week.dow,this._week.doy).week;} 739var defaultLocaleWeek={dow:0,doy:6};function localeFirstDayOfWeek(){return this._week.dow;} 740function localeFirstDayOfYear(){return this._week.doy;} 741function getSetWeek(input){var week=this.localeData().week(this);return input==null?week:this.add((input-week)*7,'d');} 742function getSetISOWeek(input){var week=weekOfYear(this,1,4).week;return input==null?week:this.add((input-week)*7,'d');} 743addFormatToken('d',0,'do','day');addFormatToken('dd',0,0,function(format){return this.localeData().weekdaysMin(this,format);});addFormatToken('ddd',0,0,function(format){return this.localeData().weekdaysShort(this,format);});addFormatToken('dddd',0,0,function(format){return this.localeData().weekdays(this,format);});addFormatToken('e',0,0,'weekday');addFormatToken('E',0,0,'isoWeekday');addUnitAlias('day','d');addUnitAlias('weekday','e');addUnitAlias('isoWeekday','E');addUnitPriority('day',11);addUnitPriority('weekday',11);addUnitPriority('isoWeekday',11);addRegexToken('d',match1to2);addRegexToken('e',match1to2);addRegexToken('E',match1to2);addRegexToken('dd',function(isStrict,locale){return locale.weekdaysMinRegex(isStrict);});addRegexToken('ddd',function(isStrict,locale){return locale.weekdaysShortRegex(isStrict);});addRegexToken('dddd',function(isStrict,locale){return locale.weekdaysRegex(isStrict);});addWeekParseToken(['dd','ddd','dddd'],function(input,week,config,token){var weekday=config._locale.weekdaysParse(input,token,config._strict);if(weekday!=null){week.d=weekday;}else{getParsingFlags(config).invalidWeekday=input;}});addWeekParseToken(['d','e','E'],function(input,week,config,token){week[token]=toInt(input);});function parseWeekday(input,locale){if(typeof input!=='string'){return input;} 744if(!isNaN(input)){return parseInt(input,10);} 745input=locale.weekdaysParse(input);if(typeof input==='number'){return input;} 746return null;} 747function parseIsoWeekday(input,locale){if(typeof input==='string'){return locale.weekdaysParse(input)%7||7;} 748return isNaN(input)?null:input;} 749function shiftWeekdays(ws,n){return ws.slice(n,7).concat(ws.slice(0,n));} 750var defaultLocaleWeekdays='Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_');function localeWeekdays(m,format){var weekdays=isArray(this._weekdays)?this._weekdays:this._weekdays[(m&&m!==true&&this._weekdays.isFormat.test(format))?'format':'standalone'];return(m===true)?shiftWeekdays(weekdays,this._week.dow):(m)?weekdays[m.day()]:weekdays;} 751var defaultLocaleWeekdaysShort='Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_');function localeWeekdaysShort(m){return(m===true)?shiftWeekdays(this._weekdaysShort,this._week.dow):(m)?this._weekdaysShort[m.day()]:this._weekdaysShort;} 752var defaultLocaleWeekdaysMin='Su_Mo_Tu_We_Th_Fr_Sa'.split('_');function localeWeekdaysMin(m){return(m===true)?shiftWeekdays(this._weekdaysMin,this._week.dow):(m)?this._weekdaysMin[m.day()]:this._weekdaysMin;} 753function handleStrictParse$1(weekdayName,format,strict){var i,ii,mom,llc=weekdayName.toLocaleLowerCase();if(!this._weekdaysParse){this._weekdaysParse=[];this._shortWeekdaysParse=[];this._minWeekdaysParse=[];for(i=0;i<7;++i){mom=createUTC([2000,1]).day(i);this._minWeekdaysParse[i]=this.weekdaysMin(mom,'').toLocaleLowerCase();this._shortWeekdaysParse[i]=this.weekdaysShort(mom,'').toLocaleLowerCase();this._weekdaysParse[i]=this.weekdays(mom,'').toLocaleLowerCase();}} 754if(strict){if(format==='dddd'){ii=indexOf.call(this._weekdaysParse,llc);return ii!==-1?ii:null;}else if(format==='ddd'){ii=indexOf.call(this._shortWeekdaysParse,llc);return ii!==-1?ii:null;}else{ii=indexOf.call(this._minWeekdaysParse,llc);return ii!==-1?ii:null;}}else{if(format==='dddd'){ii=indexOf.call(this._weekdaysParse,llc);if(ii!==-1){return ii;} 755ii=indexOf.call(this._shortWeekdaysParse,llc);if(ii!==-1){return ii;} 756ii=indexOf.call(this._minWeekdaysParse,llc);return ii!==-1?ii:null;}else if(format==='ddd'){ii=indexOf.call(this._shortWeekdaysParse,llc);if(ii!==-1){return ii;} 757ii=indexOf.call(this._weekdaysParse,llc);if(ii!==-1){return ii;} 758ii=indexOf.call(this._minWeekdaysParse,llc);return ii!==-1?ii:null;}else{ii=indexOf.call(this._minWeekdaysParse,llc);if(ii!==-1){return ii;} 759ii=indexOf.call(this._weekdaysParse,llc);if(ii!==-1){return ii;} 760ii=indexOf.call(this._shortWeekdaysParse,llc);return ii!==-1?ii:null;}}} 761function localeWeekdaysParse(weekdayName,format,strict){var i,mom,regex;if(this._weekdaysParseExact){return handleStrictParse$1.call(this,weekdayName,format,strict);} 762if(!this._weekdaysParse){this._weekdaysParse=[];this._minWeekdaysParse=[];this._shortWeekdaysParse=[];this._fullWeekdaysParse=[];} 763for(i=0;i<7;i++){mom=createUTC([2000,1]).day(i);if(strict&&!this._fullWeekdaysParse[i]){this._fullWeekdaysParse[i]=new RegExp('^'+this.weekdays(mom,'').replace('.','\\.?')+'$','i');this._shortWeekdaysParse[i]=new RegExp('^'+this.weekdaysShort(mom,'').replace('.','\\.?')+'$','i');this._minWeekdaysParse[i]=new RegExp('^'+this.weekdaysMin(mom,'').replace('.','\\.?')+'$','i');} 764if(!this._weekdaysParse[i]){regex='^'+this.weekdays(mom,'')+'|^'+this.weekdaysShort(mom,'')+'|^'+this.weekdaysMin(mom,'');this._weekdaysParse[i]=new RegExp(regex.replace('.',''),'i');} 765if(strict&&format==='dddd'&&this._fullWeekdaysParse[i].test(weekdayName)){return i;}else if(strict&&format==='ddd'&&this._shortWeekdaysParse[i].test(weekdayName)){return i;}else if(strict&&format==='dd'&&this._minWeekdaysParse[i].test(weekdayName)){return i;}else if(!strict&&this._weekdaysParse[i].test(weekdayName)){return i;}}} 766function getSetDayOfWeek(input){if(!this.isValid()){return input!=null?this:NaN;} 767var day=this._isUTC?this._d.getUTCDay():this._d.getDay();if(input!=null){input=parseWeekday(input,this.localeData());return this.add(input-day,'d');}else{return day;}} 768function getSetLocaleDayOfWeek(input){if(!this.isValid()){return input!=null?this:NaN;} 769var weekday=(this.day()+7-this.localeData()._week.dow)%7;return input==null?weekday:this.add(input-weekday,'d');} 770function getSetISODayOfWeek(input){if(!this.isValid()){return input!=null?this:NaN;} 771if(input!=null){var weekday=parseIsoWeekday(input,this.localeData());return this.day(this.day()%7?weekday:weekday-7);}else{return this.day()||7;}} 772var defaultWeekdaysRegex=matchWord;function weekdaysRegex(isStrict){if(this._weekdaysParseExact){if(!hasOwnProp(this,'_weekdaysRegex')){computeWeekdaysParse.call(this);} 773if(isStrict){return this._weekdaysStrictRegex;}else{return this._weekdaysRegex;}}else{if(!hasOwnProp(this,'_weekdaysRegex')){this._weekdaysRegex=defaultWeekdaysRegex;} 774return this._weekdaysStrictRegex&&isStrict?this._weekdaysStrictRegex:this._weekdaysRegex;}} 775var defaultWeekdaysShortRegex=matchWord;function weekdaysShortRegex(isStrict){if(this._weekdaysParseExact){if(!hasOwnProp(this,'_weekdaysRegex')){computeWeekdaysParse.call(this);} 776if(isStrict){return this._weekdaysShortStrictRegex;}else{return this._weekdaysShortRegex;}}else{if(!hasOwnProp(this,'_weekdaysShortRegex')){this._weekdaysShortRegex=defaultWeekdaysShortRegex;} 777return this._weekdaysShortStrictRegex&&isStrict?this._weekdaysShortStrictRegex:this._weekdaysShortRegex;}} 778var defaultWeekdaysMinRegex=matchWord;function weekdaysMinRegex(isStrict){if(this._weekdaysParseExact){if(!hasOwnProp(this,'_weekdaysRegex')){computeWeekdaysParse.call(this);} 779if(isStrict){return this._weekdaysMinStrictRegex;}else{return this._weekdaysMinRegex;}}else{if(!hasOwnProp(this,'_weekdaysMinRegex')){this._weekdaysMinRegex=defaultWeekdaysMinRegex;} 780return this._weekdaysMinStrictRegex&&isStrict?this._weekdaysMinStrictRegex:this._weekdaysMinRegex;}} 781function computeWeekdaysParse(){function cmpLenRev(a,b){return b.length-a.length;} 782var minPieces=[],shortPieces=[],longPieces=[],mixedPieces=[],i,mom,minp,shortp,longp;for(i=0;i<7;i++){mom=createUTC([2000,1]).day(i);minp=this.weekdaysMin(mom,'');shortp=this.weekdaysShort(mom,'');longp=this.weekdays(mom,'');minPieces.push(minp);shortPieces.push(shortp);longPieces.push(longp);mixedPieces.push(minp);mixedPieces.push(shortp);mixedPieces.push(longp);} 783minPieces.sort(cmpLenRev);shortPieces.sort(cmpLenRev);longPieces.sort(cmpLenRev);mixedPieces.sort(cmpLenRev);for(i=0;i<7;i++){shortPieces[i]=regexEscape(shortPieces[i]);longPieces[i]=regexEscape(longPieces[i]);mixedPieces[i]=regexEscape(mixedPieces[i]);} 784this._weekdaysRegex=new RegExp('^('+mixedPieces.join('|')+')','i');this._weekdaysShortRegex=this._weekdaysRegex;this._weekdaysMinRegex=this._weekdaysRegex;this._weekdaysStrictRegex=new RegExp('^('+longPieces.join('|')+')','i');this._weekdaysShortStrictRegex=new RegExp('^('+shortPieces.join('|')+')','i');this._weekdaysMinStrictRegex=new RegExp('^('+minPieces.join('|')+')','i');} 785function hFormat(){return this.hours()%12||12;} 786function kFormat(){return this.hours()||24;} 787addFormatToken('H',['HH',2],0,'hour');addFormatToken('h',['hh',2],0,hFormat);addFormatToken('k',['kk',2],0,kFormat);addFormatToken('hmm',0,0,function(){return ''+hFormat.apply(this)+zeroFill(this.minutes(),2);});addFormatToken('hmmss',0,0,function(){return ''+hFormat.apply(this)+zeroFill(this.minutes(),2)+ 788zeroFill(this.seconds(),2);});addFormatToken('Hmm',0,0,function(){return ''+this.hours()+zeroFill(this.minutes(),2);});addFormatToken('Hmmss',0,0,function(){return ''+this.hours()+zeroFill(this.minutes(),2)+ 789zeroFill(this.seconds(),2);});function meridiem(token,lowercase){addFormatToken(token,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),lowercase);});} 790meridiem('a',true);meridiem('A',false);addUnitAlias('hour','h');addUnitPriority('hour',13);function matchMeridiem(isStrict,locale){return locale._meridiemParse;} 791addRegexToken('a',matchMeridiem);addRegexToken('A',matchMeridiem);addRegexToken('H',match1to2);addRegexToken('h',match1to2);addRegexToken('k',match1to2);addRegexToken('HH',match1to2,match2);addRegexToken('hh',match1to2,match2);addRegexToken('kk',match1to2,match2);addRegexToken('hmm',match3to4);addRegexToken('hmmss',match5to6);addRegexToken('Hmm',match3to4);addRegexToken('Hmmss',match5to6);addParseToken(['H','HH'],HOUR);addParseToken(['k','kk'],function(input,array,config){var kInput=toInt(input);array[HOUR]=kInput===24?0:kInput;});addParseToken(['a','A'],function(input,array,config){config._isPm=config._locale.isPM(input);config._meridiem=input;});addParseToken(['h','hh'],function(input,array,config){array[HOUR]=toInt(input);getParsingFlags(config).bigHour=true;});addParseToken('hmm',function(input,array,config){var pos=input.length-2;array[HOUR]=toInt(input.substr(0,pos));array[MINUTE]=toInt(input.substr(pos));getParsingFlags(config).bigHour=true;});addParseToken('hmmss',function(input,array,config){var pos1=input.length-4;var pos2=input.length-2;array[HOUR]=toInt(input.substr(0,pos1));array[MINUTE]=toInt(input.substr(pos1,2));array[SECOND]=toInt(input.substr(pos2));getParsingFlags(config).bigHour=true;});addParseToken('Hmm',function(input,array,config){var pos=input.length-2;array[HOUR]=toInt(input.substr(0,pos));array[MINUTE]=toInt(input.substr(pos));});addParseToken('Hmmss',function(input,array,config){var pos1=input.length-4;var pos2=input.length-2;array[HOUR]=toInt(input.substr(0,pos1));array[MINUTE]=toInt(input.substr(pos1,2));array[SECOND]=toInt(input.substr(pos2));});function localeIsPM(input){return((input+'').toLowerCase().charAt(0)==='p');} 792var defaultLocaleMeridiemParse=/[ap]\.?m?\.?/i;function localeMeridiem(hours,minutes,isLower){if(hours>11){return isLower?'pm':'PM';}else{return isLower?'am':'AM';}} 793var getSetHour=makeGetSet('Hours',true);var baseConfig={calendar:defaultCalendar,longDateFormat:defaultLongDateFormat,invalidDate:defaultInvalidDate,ordinal:defaultOrdinal,dayOfMonthOrdinalParse:defaultDayOfMonthOrdinalParse,relativeTime:defaultRelativeTime,months:defaultLocaleMonths,monthsShort:defaultLocaleMonthsShort,week:defaultLocaleWeek,weekdays:defaultLocaleWeekdays,weekdaysMin:defaultLocaleWeekdaysMin,weekdaysShort:defaultLocaleWeekdaysShort,meridiemParse:defaultLocaleMeridiemParse};var locales={};var localeFamilies={};var globalLocale;function normalizeLocale(key){return key?key.toLowerCase().replace('_','-'):key;} 794function chooseLocale(names){var i=0,j,next,locale,split;while(i<names.length){split=normalizeLocale(names[i]).split('-');j=split.length;next=normalizeLocale(names[i+1]);next=next?next.split('-'):null;while(j>0){locale=loadLocale(split.slice(0,j).join('-'));if(locale){return locale;} 795if(next&&next.length>=j&&compareArrays(split,next,true)>=j-1){break;} 796j--;} 797i++;} 798return globalLocale;} 799function loadLocale(name){var oldLocale=null;if(!locales[name]&&(typeof module!=='undefined')&&module&&module.exports){try{oldLocale=globalLocale._abbr;var aliasedRequire=require;aliasedRequire('./locale/'+name);getSetGlobalLocale(oldLocale);}catch(e){}} 800return locales[name];} 801function getSetGlobalLocale(key,values){var data;if(key){if(isUndefined(values)){data=getLocale(key);} 802else{data=defineLocale(key,values);} 803if(data){globalLocale=data;} 804else{if((typeof console!=='undefined')&&console.warn){console.warn('Locale '+key+' not found. Did you forget to load it?');}}} 805return globalLocale._abbr;} 806function defineLocale(name,config){if(config!==null){var locale,parentConfig=baseConfig;config.abbr=name;if(locales[name]!=null){deprecateSimple('defineLocaleOverride','use moment.updateLocale(localeName, config) to change '+ 807'an existing locale. moment.defineLocale(localeName, '+ 808'config) should only be used for creating a new locale '+ 809'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.');parentConfig=locales[name]._config;}else if(config.parentLocale!=null){if(locales[config.parentLocale]!=null){parentConfig=locales[config.parentLocale]._config;}else{locale=loadLocale(config.parentLocale);if(locale!=null){parentConfig=locale._config;}else{if(!localeFamilies[config.parentLocale]){localeFamilies[config.parentLocale]=[];} 810localeFamilies[config.parentLocale].push({name:name,config:config});return null;}}} 811locales[name]=new Locale(mergeConfigs(parentConfig,config));if(localeFamilies[name]){localeFamilies[name].forEach(function(x){defineLocale(x.name,x.config);});} 812getSetGlobalLocale(name);return locales[name];}else{delete locales[name];return null;}} 813function updateLocale(name,config){if(config!=null){var locale,tmpLocale,parentConfig=baseConfig;tmpLocale=loadLocale(name);if(tmpLocale!=null){parentConfig=tmpLocale._config;} 814config=mergeConfigs(parentConfig,config);locale=new Locale(config);locale.parentLocale=locales[name];locales[name]=locale;getSetGlobalLocale(name);}else{if(locales[name]!=null){if(locales[name].parentLocale!=null){locales[name]=locales[name].parentLocale;}else if(locales[name]!=null){delete locales[name];}}} 815return locales[name];} 816function getLocale(key){var locale;if(key&&key._locale&&key._locale._abbr){key=key._locale._abbr;} 817if(!key){return globalLocale;} 818if(!isArray(key)){locale=loadLocale(key);if(locale){return locale;} 819key=[key];} 820return chooseLocale(key);} 821function listLocales(){return keys(locales);} 822function checkOverflow(m){var overflow;var a=m._a;if(a&&getParsingFlags(m).overflow===-2){overflow=a[MONTH]<0||a[MONTH]>11?MONTH:a[DATE]<1||a[DATE]>daysInMonth(a[YEAR],a[MONTH])?DATE:a[HOUR]<0||a[HOUR]>24||(a[HOUR]===24&&(a[MINUTE]!==0||a[SECOND]!==0||a[MILLISECOND]!==0))?HOUR:a[MINUTE]<0||a[MINUTE]>59?MINUTE:a[SECOND]<0||a[SECOND]>59?SECOND:a[MILLISECOND]<0||a[MILLISECOND]>999?MILLISECOND:-1;if(getParsingFlags(m)._overflowDayOfYear&&(overflow<YEAR||overflow>DATE)){overflow=DATE;} 823if(getParsingFlags(m)._overflowWeeks&&overflow===-1){overflow=WEEK;} 824if(getParsingFlags(m)._overflowWeekday&&overflow===-1){overflow=WEEKDAY;} 825getParsingFlags(m).overflow=overflow;} 826return m;} 827function defaults(a,b,c){if(a!=null){return a;} 828if(b!=null){return b;} 829return c;} 830function currentDateArray(config){var nowValue=new Date(hooks.now());if(config._useUTC){return[nowValue.getUTCFullYear(),nowValue.getUTCMonth(),nowValue.getUTCDate()];} 831return[nowValue.getFullYear(),nowValue.getMonth(),nowValue.getDate()];} 832function configFromArray(config){var i,date,input=[],currentDate,expectedWeekday,yearToUse;if(config._d){return;} 833currentDate=currentDateArray(config);if(config._w&&config._a[DATE]==null&&config._a[MONTH]==null){dayOfYearFromWeekInfo(config);} 834if(config._dayOfYear!=null){yearToUse=defaults(config._a[YEAR],currentDate[YEAR]);if(config._dayOfYear>daysInYear(yearToUse)||config._dayOfYear===0){getParsingFlags(config)._overflowDayOfYear=true;} 835date=createUTCDate(yearToUse,0,config._dayOfYear);config._a[MONTH]=date.getUTCMonth();config._a[DATE]=date.getUTCDate();} 836for(i=0;i<3&&config._a[i]==null;++i){config._a[i]=input[i]=currentDate[i];} 837for(;i<7;i++){config._a[i]=input[i]=(config._a[i]==null)?(i===2?1:0):config._a[i];} 838if(config._a[HOUR]===24&&config._a[MINUTE]===0&&config._a[SECOND]===0&&config._a[MILLISECOND]===0){config._nextDay=true;config._a[HOUR]=0;} 839config._d=(config._useUTC?createUTCDate:createDate).apply(null,input);expectedWeekday=config._useUTC?config._d.getUTCDay():config._d.getDay();if(config._tzm!=null){config._d.setUTCMinutes(config._d.getUTCMinutes()-config._tzm);} 840if(config._nextDay){config._a[HOUR]=24;} 841if(config._w&&typeof config._w.d!=='undefined'&&config._w.d!==expectedWeekday){getParsingFlags(config).weekdayMismatch=true;}} 842function dayOfYearFromWeekInfo(config){var w,weekYear,week,weekday,dow,doy,temp,weekdayOverflow;w=config._w;if(w.GG!=null||w.W!=null||w.E!=null){dow=1;doy=4;weekYear=defaults(w.GG,config._a[YEAR],weekOfYear(createLocal(),1,4).year);week=defaults(w.W,1);weekday=defaults(w.E,1);if(weekday<1||weekday>7){weekdayOverflow=true;}}else{dow=config._locale._week.dow;doy=config._locale._week.doy;var curWeek=weekOfYear(createLocal(),dow,doy);weekYear=defaults(w.gg,config._a[YEAR],curWeek.year);week=defaults(w.w,curWeek.week);if(w.d!=null){weekday=w.d;if(weekday<0||weekday>6){weekdayOverflow=true;}}else if(w.e!=null){weekday=w.e+dow;if(w.e<0||w.e>6){weekdayOverflow=true;}}else{weekday=dow;}} 843if(week<1||week>weeksInYear(weekYear,dow,doy)){getParsingFlags(config)._overflowWeeks=true;}else if(weekdayOverflow!=null){getParsingFlags(config)._overflowWeekday=true;}else{temp=dayOfYearFromWeeks(weekYear,week,weekday,dow,doy);config._a[YEAR]=temp.year;config._dayOfYear=temp.dayOfYear;}} 844var extendedIsoRegex=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/;var basicIsoRegex=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/;var tzRegex=/Z|[+-]\d\d(?::?\d\d)?/;var isoDates=[['YYYYYY-MM-DD',/[+-]\d{6}-\d\d-\d\d/],['YYYY-MM-DD',/\d{4}-\d\d-\d\d/],['GGGG-[W]WW-E',/\d{4}-W\d\d-\d/],['GGGG-[W]WW',/\d{4}-W\d\d/,false],['YYYY-DDD',/\d{4}-\d{3}/],['YYYY-MM',/\d{4}-\d\d/,false],['YYYYYYMMDD',/[+-]\d{10}/],['YYYYMMDD',/\d{8}/],['GGGG[W]WWE',/\d{4}W\d{3}/],['GGGG[W]WW',/\d{4}W\d{2}/,false],['YYYYDDD',/\d{7}/]];var isoTimes=[['HH:mm:ss.SSSS',/\d\d:\d\d:\d\d\.\d+/],['HH:mm:ss,SSSS',/\d\d:\d\d:\d\d,\d+/],['HH:mm:ss',/\d\d:\d\d:\d\d/],['HH:mm',/\d\d:\d\d/],['HHmmss.SSSS',/\d\d\d\d\d\d\.\d+/],['HHmmss,SSSS',/\d\d\d\d\d\d,\d+/],['HHmmss',/\d\d\d\d\d\d/],['HHmm',/\d\d\d\d/],['HH',/\d\d/]];var aspNetJsonRegex=/^\/?Date\((\-?\d+)/i;function configFromISO(config){var i,l,string=config._i,match=extendedIsoRegex.exec(string)||basicIsoRegex.exec(string),allowTime,dateFormat,timeFormat,tzFormat;if(match){getParsingFlags(config).iso=true;for(i=0,l=isoDates.length;i<l;i++){if(isoDates[i][1].exec(match[1])){dateFormat=isoDates[i][0];allowTime=isoDates[i][2]!==false;break;}} 845if(dateFormat==null){config._isValid=false;return;} 846if(match[3]){for(i=0,l=isoTimes.length;i<l;i++){if(isoTimes[i][1].exec(match[3])){timeFormat=(match[2]||' ')+isoTimes[i][0];break;}} 847if(timeFormat==null){config._isValid=false;return;}} 848if(!allowTime&&timeFormat!=null){config._isValid=false;return;} 849if(match[4]){if(tzRegex.exec(match[4])){tzFormat='Z';}else{config._isValid=false;return;}} 850config._f=dateFormat+(timeFormat||'')+(tzFormat||'');configFromStringAndFormat(config);}else{config._isValid=false;}} 851var rfc2822=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/;function extractFromRFC2822Strings(yearStr,monthStr,dayStr,hourStr,minuteStr,secondStr){var result=[untruncateYear(yearStr),defaultLocaleMonthsShort.indexOf(monthStr),parseInt(dayStr,10),parseInt(hourStr,10),parseInt(minuteStr,10)];if(secondStr){result.push(parseInt(secondStr,10));} 852return result;} 853function untruncateYear(yearStr){var year=parseInt(yearStr,10);if(year<=49){return 2000+year;}else if(year<=999){return 1900+year;} 854return year;} 855function preprocessRFC2822(s){return s.replace(/\([^)]*\)|[\n\t]/g,' ').replace(/(\s\s+)/g,' ').replace(/^\s\s*/,'').replace(/\s\s*$/,'');} 856function checkWeekday(weekdayStr,parsedInput,config){if(weekdayStr){var weekdayProvided=defaultLocaleWeekdaysShort.indexOf(weekdayStr),weekdayActual=new Date(parsedInput[0],parsedInput[1],parsedInput[2]).getDay();if(weekdayProvided!==weekdayActual){getParsingFlags(config).weekdayMismatch=true;config._isValid=false;return false;}} 857return true;} 858var obsOffsets={UT:0,GMT:0,EDT:-4*60,EST:-5*60,CDT:-5*60,CST:-6*60,MDT:-6*60,MST:-7*60,PDT:-7*60,PST:-8*60};function calculateOffset(obsOffset,militaryOffset,numOffset){if(obsOffset){return obsOffsets[obsOffset];}else if(militaryOffset){return 0;}else{var hm=parseInt(numOffset,10);var m=hm%100,h=(hm-m)/100;return h*60+m;}} 859function configFromRFC2822(config){var match=rfc2822.exec(preprocessRFC2822(config._i));if(match){var parsedArray=extractFromRFC2822Strings(match[4],match[3],match[2],match[5],match[6],match[7]);if(!checkWeekday(match[1],parsedArray,config)){return;} 860config._a=parsedArray;config._tzm=calculateOffset(match[8],match[9],match[10]);config._d=createUTCDate.apply(null,config._a);config._d.setUTCMinutes(config._d.getUTCMinutes()-config._tzm);getParsingFlags(config).rfc2822=true;}else{config._isValid=false;}} 861function configFromString(config){var matched=aspNetJsonRegex.exec(config._i);if(matched!==null){config._d=new Date(+matched[1]);return;} 862configFromISO(config);if(config._isValid===false){delete config._isValid;}else{return;} 863configFromRFC2822(config);if(config._isValid===false){delete config._isValid;}else{return;} 864hooks.createFromInputFallback(config);} 865hooks.createFromInputFallback=deprecate('value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), '+ 866'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are '+ 867'discouraged and will be removed in an upcoming major release. Please refer to '+ 868'http://momentjs.com/guides/#/warnings/js-date/ for more info.',function(config){config._d=new Date(config._i+(config._useUTC?' UTC':''));});hooks.ISO_8601=function(){};hooks.RFC_2822=function(){};function configFromStringAndFormat(config){if(config._f===hooks.ISO_8601){configFromISO(config);return;} 869if(config._f===hooks.RFC_2822){configFromRFC2822(config);return;} 870config._a=[];getParsingFlags(config).empty=true;var string=''+config._i,i,parsedInput,tokens,token,skipped,stringLength=string.length,totalParsedInputLength=0;tokens=expandFormat(config._f,config._locale).match(formattingTokens)||[];for(i=0;i<tokens.length;i++){token=tokens[i];parsedInput=(string.match(getParseRegexForToken(token,config))||[])[0];if(parsedInput){skipped=string.substr(0,string.indexOf(parsedInput));if(skipped.length>0){getParsingFlags(config).unusedInput.push(skipped);} 871string=string.slice(string.indexOf(parsedInput)+parsedInput.length);totalParsedInputLength+=parsedInput.length;} 872if(formatTokenFunctions[token]){if(parsedInput){getParsingFlags(config).empty=false;} 873else{getParsingFlags(config).unusedTokens.push(token);} 874addTimeToArrayFromToken(token,parsedInput,config);} 875else if(config._strict&&!parsedInput){getParsingFlags(config).unusedTokens.push(token);}} 876getParsingFlags(config).charsLeftOver=stringLength-totalParsedInputLength;if(string.length>0){getParsingFlags(config).unusedInput.push(string);} 877if(config._a[HOUR]<=12&&getParsingFlags(config).bigHour===true&&config._a[HOUR]>0){getParsingFlags(config).bigHour=undefined;} 878getParsingFlags(config).parsedDateParts=config._a.slice(0);getParsingFlags(config).meridiem=config._meridiem;config._a[HOUR]=meridiemFixWrap(config._locale,config._a[HOUR],config._meridiem);configFromArray(config);checkOverflow(config);} 879function meridiemFixWrap(locale,hour,meridiem){var isPm;if(meridiem==null){return hour;} 880if(locale.meridiemHour!=null){return locale.meridiemHour(hour,meridiem);}else if(locale.isPM!=null){isPm=locale.isPM(meridiem);if(isPm&&hour<12){hour+=12;} 881if(!isPm&&hour===12){hour=0;} 882return hour;}else{return hour;}} 883function configFromStringAndArray(config){var tempConfig,bestMoment,scoreToBeat,i,currentScore;if(config._f.length===0){getParsingFlags(config).invalidFormat=true;config._d=new Date(NaN);return;} 884for(i=0;i<config._f.length;i++){currentScore=0;tempConfig=copyConfig({},config);if(config._useUTC!=null){tempConfig._useUTC=config._useUTC;} 885tempConfig._f=config._f[i];configFromStringAndFormat(tempConfig);if(!isValid(tempConfig)){continue;} 886currentScore+=getParsingFlags(tempConfig).charsLeftOver;currentScore+=getParsingFlags(tempConfig).unusedTokens.length*10;getParsingFlags(tempConfig).score=currentScore;if(scoreToBeat==null||currentScore<scoreToBeat){scoreToBeat=currentScore;bestMoment=tempConfig;}} 887extend(config,bestMoment||tempConfig);} 888function configFromObject(config){if(config._d){return;} 889var i=normalizeObjectUnits(config._i);config._a=map([i.year,i.month,i.day||i.date,i.hour,i.minute,i.second,i.millisecond],function(obj){return obj&&parseInt(obj,10);});configFromArray(config);} 890function createFromConfig(config){var res=new Moment(checkOverflow(prepareConfig(config)));if(res._nextDay){res.add(1,'d');res._nextDay=undefined;} 891return res;} 892function prepareConfig(config){var input=config._i,format=config._f;config._locale=config._locale||getLocale(config._l);if(input===null||(format===undefined&&input==='')){return createInvalid({nullInput:true});} 893if(typeof input==='string'){config._i=input=config._locale.preparse(input);} 894if(isMoment(input)){return new Moment(checkOverflow(input));}else if(isDate(input)){config._d=input;}else if(isArray(format)){configFromStringAndArray(config);}else if(format){configFromStringAndFormat(config);}else{configFromInput(config);} 895if(!isValid(config)){config._d=null;} 896return config;} 897function configFromInput(config){var input=config._i;if(isUndefined(input)){config._d=new Date(hooks.now());}else if(isDate(input)){config._d=new Date(input.valueOf());}else if(typeof input==='string'){configFromString(config);}else if(isArray(input)){config._a=map(input.slice(0),function(obj){return parseInt(obj,10);});configFromArray(config);}else if(isObject(input)){configFromObject(config);}else if(isNumber(input)){config._d=new Date(input);}else{hooks.createFromInputFallback(config);}} 898function createLocalOrUTC(input,format,locale,strict,isUTC){var c={};if(locale===true||locale===false){strict=locale;locale=undefined;} 899if((isObject(input)&&isObjectEmpty(input))||(isArray(input)&&input.length===0)){input=undefined;} 900c._isAMomentObject=true;c._useUTC=c._isUTC=isUTC;c._l=locale;c._i=input;c._f=format;c._strict=strict;return createFromConfig(c);} 901function createLocal(input,format,locale,strict){return createLocalOrUTC(input,format,locale,strict,false);} 902var prototypeMin=deprecate('moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',function(){var other=createLocal.apply(null,arguments);if(this.isValid()&&other.isValid()){return other<this?this:other;}else{return createInvalid();}});var prototypeMax=deprecate('moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',function(){var other=createLocal.apply(null,arguments);if(this.isValid()&&other.isValid()){return other>this?this:other;}else{return createInvalid();}});function pickBy(fn,moments){var res,i;if(moments.length===1&&isArray(moments[0])){moments=moments[0];} 903if(!moments.length){return createLocal();} 904res=moments[0];for(i=1;i<moments.length;++i){if(!moments[i].isValid()||moments[i][fn](res)){res=moments[i];}} 905return res;} 906function min(){var args=[].slice.call(arguments,0);return pickBy('isBefore',args);} 907function max(){var args=[].slice.call(arguments,0);return pickBy('isAfter',args);} 908var now=function(){return Date.now?Date.now():+(new Date());};var ordering=['year','quarter','month','week','day','hour','minute','second','millisecond'];function isDurationValid(m){for(var key in m){if(!(indexOf.call(ordering,key)!==-1&&(m[key]==null||!isNaN(m[key])))){return false;}} 909var unitHasDecimal=false;for(var i=0;i<ordering.length;++i){if(m[ordering[i]]){if(unitHasDecimal){return false;} 910if(parseFloat(m[ordering[i]])!==toInt(m[ordering[i]])){unitHasDecimal=true;}}} 911return true;} 912function isValid$1(){return this._isValid;} 913function createInvalid$1(){return createDuration(NaN);} 914function Duration(duration){var normalizedInput=normalizeObjectUnits(duration),years=normalizedInput.year||0,quarters=normalizedInput.quarter||0,months=normalizedInput.month||0,weeks=normalizedInput.week||normalizedInput.isoWeek||0,days=normalizedInput.day||0,hours=normalizedInput.hour||0,minutes=normalizedInput.minute||0,seconds=normalizedInput.second||0,milliseconds=normalizedInput.millisecond||0;this._isValid=isDurationValid(normalizedInput);this._milliseconds=+milliseconds+ 915seconds*1e3+ 916minutes*6e4+ 917hours*1000*60*60;this._days=+days+ 918weeks*7;this._months=+months+ 919quarters*3+ 920years*12;this._data={};this._locale=getLocale();this._bubble();} 921function isDuration(obj){return obj instanceof Duration;} 922function absRound(number){if(number<0){return Math.round(-1*number)*-1;}else{return Math.round(number);}} 923function offset(token,separator){addFormatToken(token,0,0,function(){var offset=this.utcOffset();var sign='+';if(offset<0){offset=-offset;sign='-';} 924return sign+zeroFill(~~(offset/60),2)+separator+zeroFill(~~(offset)%60,2);});} 925offset('Z',':');offset('ZZ','');addRegexToken('Z',matchShortOffset);addRegexToken('ZZ',matchShortOffset);addParseToken(['Z','ZZ'],function(input,array,config){config._useUTC=true;config._tzm=offsetFromString(matchShortOffset,input);});var chunkOffset=/([\+\-]|\d\d)/gi;function offsetFromString(matcher,string){var matches=(string||'').match(matcher);if(matches===null){return null;} 926var chunk=matches[matches.length-1]||[];var parts=(chunk+'').match(chunkOffset)||['-',0,0];var minutes=+(parts[1]*60)+toInt(parts[2]);return minutes===0?0:parts[0]==='+'?minutes:-minutes;} 927function cloneWithOffset(input,model){var res,diff;if(model._isUTC){res=model.clone();diff=(isMoment(input)||isDate(input)?input.valueOf():createLocal(input).valueOf())-res.valueOf();res._d.setTime(res._d.valueOf()+diff);hooks.updateOffset(res,false);return res;}else{return createLocal(input).local();}} 928function getDateOffset(m){return-Math.round(m._d.getTimezoneOffset()/15)*15;} 929hooks.updateOffset=function(){};function getSetOffset(input,keepLocalTime,keepMinutes){var offset=this._offset||0,localAdjust;if(!this.isValid()){return input!=null?this:NaN;} 930if(input!=null){if(typeof input==='string'){input=offsetFromString(matchShortOffset,input);if(input===null){return this;}}else if(Math.abs(input)<16&&!keepMinutes){input=input*60;} 931if(!this._isUTC&&keepLocalTime){localAdjust=getDateOffset(this);} 932this._offset=input;this._isUTC=true;if(localAdjust!=null){this.add(localAdjust,'m');} 933if(offset!==input){if(!keepLocalTime||this._changeInProgress){addSubtract(this,createDuration(input-offset,'m'),1,false);}else if(!this._changeInProgress){this._changeInProgress=true;hooks.updateOffset(this,true);this._changeInProgress=null;}} 934return this;}else{return this._isUTC?offset:getDateOffset(this);}} 935function getSetZone(input,keepLocalTime){if(input!=null){if(typeof input!=='string'){input=-input;} 936this.utcOffset(input,keepLocalTime);return this;}else{return-this.utcOffset();}} 937function setOffsetToUTC(keepLocalTime){return this.utcOffset(0,keepLocalTime);} 938function setOffsetToLocal(keepLocalTime){if(this._isUTC){this.utcOffset(0,keepLocalTime);this._isUTC=false;if(keepLocalTime){this.subtract(getDateOffset(this),'m');}} 939return this;} 940function setOffsetToParsedOffset(){if(this._tzm!=null){this.utcOffset(this._tzm,false,true);}else if(typeof this._i==='string'){var tZone=offsetFromString(matchOffset,this._i);if(tZone!=null){this.utcOffset(tZone);} 941else{this.utcOffset(0,true);}} 942return this;} 943function hasAlignedHourOffset(input){if(!this.isValid()){return false;} 944input=input?createLocal(input).utcOffset():0;return(this.utcOffset()-input)%60===0;} 945function isDaylightSavingTime(){return(this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset());} 946function isDaylightSavingTimeShifted(){if(!isUndefined(this._isDSTShifted)){return this._isDSTShifted;} 947var c={};copyConfig(c,this);c=prepareConfig(c);if(c._a){var other=c._isUTC?createUTC(c._a):createLocal(c._a);this._isDSTShifted=this.isValid()&&compareArrays(c._a,other.toArray())>0;}else{this._isDSTShifted=false;} 948return this._isDSTShifted;} 949function isLocal(){return this.isValid()?!this._isUTC:false;} 950function isUtcOffset(){return this.isValid()?this._isUTC:false;} 951function isUtc(){return this.isValid()?this._isUTC&&this._offset===0:false;} 952var aspNetRegex=/^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/;var isoRegex=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function createDuration(input,key){var duration=input,match=null,sign,ret,diffRes;if(isDuration(input)){duration={ms:input._milliseconds,d:input._days,M:input._months};}else if(isNumber(input)){duration={};if(key){duration[key]=input;}else{duration.milliseconds=input;}}else if(!!(match=aspNetRegex.exec(input))){sign=(match[1]==='-')?-1:1;duration={y:0,d:toInt(match[DATE])*sign,h:toInt(match[HOUR])*sign,m:toInt(match[MINUTE])*sign,s:toInt(match[SECOND])*sign,ms:toInt(absRound(match[MILLISECOND]*1000))*sign};}else if(!!(match=isoRegex.exec(input))){sign=(match[1]==='-')?-1:1;duration={y:parseIso(match[2],sign),M:parseIso(match[3],sign),w:parseIso(match[4],sign),d:parseIso(match[5],sign),h:parseIso(match[6],sign),m:parseIso(match[7],sign),s:parseIso(match[8],sign)};}else if(duration==null){duration={};}else if(typeof duration==='object'&&('from'in duration||'to'in duration)){diffRes=momentsDifference(createLocal(duration.from),createLocal(duration.to));duration={};duration.ms=diffRes.milliseconds;duration.M=diffRes.months;} 953ret=new Duration(duration);if(isDuration(input)&&hasOwnProp(input,'_locale')){ret._locale=input._locale;} 954return ret;} 955createDuration.fn=Duration.prototype;createDuration.invalid=createInvalid$1;function parseIso(inp,sign){var res=inp&&parseFloat(inp.replace(',','.'));return(isNaN(res)?0:res)*sign;} 956function positiveMomentsDifference(base,other){var res={};res.months=other.month()-base.month()+ 957(other.year()-base.year())*12;if(base.clone().add(res.months,'M').isAfter(other)){--res.months;} 958res.milliseconds=+other-+(base.clone().add(res.months,'M'));return res;} 959function momentsDifference(base,other){var res;if(!(base.isValid()&&other.isValid())){return{milliseconds:0,months:0};} 960other=cloneWithOffset(other,base);if(base.isBefore(other)){res=positiveMomentsDifference(base,other);}else{res=positiveMomentsDifference(other,base);res.milliseconds=-res.milliseconds;res.months=-res.months;} 961return res;} 962function createAdder(direction,name){return function(val,period){var dur,tmp;if(period!==null&&!isNaN(+period)){deprecateSimple(name,'moment().'+name+'(period, number) is deprecated. Please use moment().'+name+'(number, period). '+ 963'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.');tmp=val;val=period;period=tmp;} 964val=typeof val==='string'?+val:val;dur=createDuration(val,period);addSubtract(this,dur,direction);return this;};} 965function addSubtract(mom,duration,isAdding,updateOffset){var milliseconds=duration._milliseconds,days=absRound(duration._days),months=absRound(duration._months);if(!mom.isValid()){return;} 966updateOffset=updateOffset==null?true:updateOffset;if(months){setMonth(mom,get(mom,'Month')+months*isAdding);} 967if(days){set$1(mom,'Date',get(mom,'Date')+days*isAdding);} 968if(milliseconds){mom._d.setTime(mom._d.valueOf()+milliseconds*isAdding);} 969if(updateOffset){hooks.updateOffset(mom,days||months);}} 970var add=createAdder(1,'add');var subtract=createAdder(-1,'subtract');function getCalendarFormat(myMoment,now){var diff=myMoment.diff(now,'days',true);return diff<-6?'sameElse':diff<-1?'lastWeek':diff<0?'lastDay':diff<1?'sameDay':diff<2?'nextDay':diff<7?'nextWeek':'sameElse';} 971function calendar$1(time,formats){var now=time||createLocal(),sod=cloneWithOffset(now,this).startOf('day'),format=hooks.calendarFormat(this,sod)||'sameElse';var output=formats&&(isFunction(formats[format])?formats[format].call(this,now):formats[format]);return this.format(output||this.localeData().calendar(format,this,createLocal(now)));} 972function clone(){return new Moment(this);} 973function isAfter(input,units){var localInput=isMoment(input)?input:createLocal(input);if(!(this.isValid()&&localInput.isValid())){return false;} 974units=normalizeUnits(units)||'millisecond';if(units==='millisecond'){return this.valueOf()>localInput.valueOf();}else{return localInput.valueOf()<this.clone().startOf(units).valueOf();}} 975function isBefore(input,units){var localInput=isMoment(input)?input:createLocal(input);if(!(this.isValid()&&localInput.isValid())){return false;} 976units=normalizeUnits(units)||'millisecond';if(units==='millisecond'){return this.valueOf()<localInput.valueOf();}else{return this.clone().endOf(units).valueOf()<localInput.valueOf();}} 977function isBetween(from,to,units,inclusivity){var localFrom=isMoment(from)?from:createLocal(from),localTo=isMoment(to)?to:createLocal(to);if(!(this.isValid()&&localFrom.isValid()&&localTo.isValid())){return false;} 978inclusivity=inclusivity||'()';return(inclusivity[0]==='('?this.isAfter(localFrom,units):!this.isBefore(localFrom,units))&&(inclusivity[1]===')'?this.isBefore(localTo,units):!this.isAfter(localTo,units));} 979function isSame(input,units){var localInput=isMoment(input)?input:createLocal(input),inputMs;if(!(this.isValid()&&localInput.isValid())){return false;} 980units=normalizeUnits(units)||'millisecond';if(units==='millisecond'){return this.valueOf()===localInput.valueOf();}else{inputMs=localInput.valueOf();return this.clone().startOf(units).valueOf()<=inputMs&&inputMs<=this.clone().endOf(units).valueOf();}} 981function isSameOrAfter(input,units){return this.isSame(input,units)||this.isAfter(input,units);} 982function isSameOrBefore(input,units){return this.isSame(input,units)||this.isBefore(input,units);} 983function diff(input,units,asFloat){var that,zoneDelta,output;if(!this.isValid()){return NaN;} 984that=cloneWithOffset(input,this);if(!that.isValid()){return NaN;} 985zoneDelta=(that.utcOffset()-this.utcOffset())*6e4;units=normalizeUnits(units);switch(units){case 'year':output=monthDiff(this,that)/12;break;case 'month':output=monthDiff(this,that);break;case 'quarter':output=monthDiff(this,that)/3;break;case 'second':output=(this-that)/1e3;break;case 'minute':output=(this-that)/6e4;break;case 'hour':output=(this-that)/36e5;break;case 'day':output=(this-that-zoneDelta)/864e5;break;case 'week':output=(this-that-zoneDelta)/6048e5;break;default:output=this-that;} 986return asFloat?output:absFloor(output);} 987function monthDiff(a,b){var wholeMonthDiff=((b.year()-a.year())*12)+(b.month()-a.month()),anchor=a.clone().add(wholeMonthDiff,'months'),anchor2,adjust;if(b-anchor<0){anchor2=a.clone().add(wholeMonthDiff-1,'months');adjust=(b-anchor)/(anchor-anchor2);}else{anchor2=a.clone().add(wholeMonthDiff+1,'months');adjust=(b-anchor)/(anchor2-anchor);} 988return-(wholeMonthDiff+adjust)||0;} 989hooks.defaultFormat='YYYY-MM-DDTHH:mm:ssZ';hooks.defaultFormatUtc='YYYY-MM-DDTHH:mm:ss[Z]';function toString(){return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');} 990function toISOString(keepOffset){if(!this.isValid()){return null;} 991var utc=keepOffset!==true;var m=utc?this.clone().utc():this;if(m.year()<0||m.year()>9999){return formatMoment(m,utc?'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]':'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ');} 992if(isFunction(Date.prototype.toISOString)){if(utc){return this.toDate().toISOString();}else{return new Date(this.valueOf()+this.utcOffset()*60*1000).toISOString().replace('Z',formatMoment(m,'Z'));}} 993return formatMoment(m,utc?'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]':'YYYY-MM-DD[T]HH:mm:ss.SSSZ');} 994function inspect(){if(!this.isValid()){return 'moment.invalid(/* '+this._i+' */)';} 995var func='moment';var zone='';if(!this.isLocal()){func=this.utcOffset()===0?'moment.utc':'moment.parseZone';zone='Z';} 996var prefix='['+func+'("]';var year=(0<=this.year()&&this.year()<=9999)?'YYYY':'YYYYYY';var datetime='-MM-DD[T]HH:mm:ss.SSS';var suffix=zone+'[")]';return this.format(prefix+year+datetime+suffix);} 997function format(inputString){if(!inputString){inputString=this.isUtc()?hooks.defaultFormatUtc:hooks.defaultFormat;} 998var output=formatMoment(this,inputString);return this.localeData().postformat(output);} 999function from(time,withoutSuffix){if(this.isValid()&&((isMoment(time)&&time.isValid())||createLocal(time).isValid())){return createDuration({to:this,from:time}).locale(this.locale()).humanize(!withoutSuffix);}else{return this.localeData().invalidDate();}} 1000function fromNow(withoutSuffix){return this.from(createLocal(),withoutSuffix);} 1001function to(time,withoutSuffix){if(this.isValid()&&((isMoment(time)&&time.isValid())||createLocal(time).isValid())){return createDuration({from:this,to:time}).locale(this.locale()).humanize(!withoutSuffix);}else{return this.localeData().invalidDate();}} 1002function toNow(withoutSuffix){return this.to(createLocal(),withoutSuffix);} 1003function locale(key){var newLocaleData;if(key===undefined){return this._locale._abbr;}else{newLocaleData=getLocale(key);if(newLocaleData!=null){this._locale=newLocaleData;} 1004return this;}} 1005var lang=deprecate('moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',function(key){if(key===undefined){return this.localeData();}else{return this.locale(key);}});function localeData(){return this._locale;} 1006var MS_PER_SECOND=1000;var MS_PER_MINUTE=60*MS_PER_SECOND;var MS_PER_HOUR=60*MS_PER_MINUTE;var MS_PER_400_YEARS=(365*400+97)*24*MS_PER_HOUR;function mod$1(dividend,divisor){return(dividend%divisor+divisor)%divisor;} 1007function localStartOfDate(y,m,d){if(y<100&&y>=0){return new Date(y+400,m,d)-MS_PER_400_YEARS;}else{return new Date(y,m,d).valueOf();}} 1008function utcStartOfDate(y,m,d){if(y<100&&y>=0){return Date.UTC(y+400,m,d)-MS_PER_400_YEARS;}else{return Date.UTC(y,m,d);}} 1009function startOf(units){var time;units=normalizeUnits(units);if(units===undefined||units==='millisecond'||!this.isValid()){return this;} 1010var startOfDate=this._isUTC?utcStartOfDate:localStartOfDate;switch(units){case 'year':time=startOfDate(this.year(),0,1);break;case 'quarter':time=startOfDate(this.year(),this.month()-this.month()%3,1);break;case 'month':time=startOfDate(this.year(),this.month(),1);break;case 'week':time=startOfDate(this.year(),this.month(),this.date()-this.weekday());break;case 'isoWeek':time=startOfDate(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case 'day':case 'date':time=startOfDate(this.year(),this.month(),this.date());break;case 'hour':time=this._d.valueOf();time-=mod$1(time+(this._isUTC?0:this.utcOffset()*MS_PER_MINUTE),MS_PER_HOUR);break;case 'minute':time=this._d.valueOf();time-=mod$1(time,MS_PER_MINUTE);break;case 'second':time=this._d.valueOf();time-=mod$1(time,MS_PER_SECOND);break;} 1011this._d.setTime(time);hooks.updateOffset(this,true);return this;} 1012function endOf(units){var time;units=normalizeUnits(units);if(units===undefined||units==='millisecond'||!this.isValid()){return this;} 1013var startOfDate=this._isUTC?utcStartOfDate:localStartOfDate;switch(units){case 'year':time=startOfDate(this.year()+1,0,1)-1;break;case 'quarter':time=startOfDate(this.year(),this.month()-this.month()%3+3,1)-1;break;case 'month':time=startOfDate(this.year(),this.month()+1,1)-1;break;case 'week':time=startOfDate(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case 'isoWeek':time=startOfDate(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case 'day':case 'date':time=startOfDate(this.year(),this.month(),this.date()+1)-1;break;case 'hour':time=this._d.valueOf();time+=MS_PER_HOUR-mod$1(time+(this._isUTC?0:this.utcOffset()*MS_PER_MINUTE),MS_PER_HOUR)-1;break;case 'minute':time=this._d.valueOf();time+=MS_PER_MINUTE-mod$1(time,MS_PER_MINUTE)-1;break;case 'second':time=this._d.valueOf();time+=MS_PER_SECOND-mod$1(time,MS_PER_SECOND)-1;break;} 1014this._d.setTime(time);hooks.updateOffset(this,true);return this;} 1015function valueOf(){return this._d.valueOf()-((this._offset||0)*60000);} 1016function unix(){return Math.floor(this.valueOf()/1000);} 1017function toDate(){return new Date(this.valueOf());} 1018function toArray(){var m=this;return[m.year(),m.month(),m.date(),m.hour(),m.minute(),m.second(),m.millisecond()];} 1019function toObject(){var m=this;return{years:m.year(),months:m.month(),date:m.date(),hours:m.hours(),minutes:m.minutes(),seconds:m.seconds(),milliseconds:m.milliseconds()};} 1020function toJSON(){return this.isValid()?this.toISOString():null;} 1021function isValid$2(){return isValid(this);} 1022function parsingFlags(){return extend({},getParsingFlags(this));} 1023function invalidAt(){return getParsingFlags(this).overflow;} 1024function creationData(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict};} 1025addFormatToken(0,['gg',2],0,function(){return this.weekYear()%100;});addFormatToken(0,['GG',2],0,function(){return this.isoWeekYear()%100;});function addWeekYearFormatToken(token,getter){addFormatToken(0,[token,token.length],0,getter);} 1026addWeekYearFormatToken('gggg','weekYear');addWeekYearFormatToken('ggggg','weekYear');addWeekYearFormatToken('GGGG','isoWeekYear');addWeekYearFormatToken('GGGGG','isoWeekYear');addUnitAlias('weekYear','gg');addUnitAlias('isoWeekYear','GG');addUnitPriority('weekYear',1);addUnitPriority('isoWeekYear',1);addRegexToken('G',matchSigned);addRegexToken('g',matchSigned);addRegexToken('GG',match1to2,match2);addRegexToken('gg',match1to2,match2);addRegexToken('GGGG',match1to4,match4);addRegexToken('gggg',match1to4,match4);addRegexToken('GGGGG',match1to6,match6);addRegexToken('ggggg',match1to6,match6);addWeekParseToken(['gggg','ggggg','GGGG','GGGGG'],function(input,week,config,token){week[token.substr(0,2)]=toInt(input);});addWeekParseToken(['gg','GG'],function(input,week,config,token){week[token]=hooks.parseTwoDigitYear(input);});function getSetWeekYear(input){return getSetWeekYearHelper.call(this,input,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy);} 1027function getSetISOWeekYear(input){return getSetWeekYearHelper.call(this,input,this.isoWeek(),this.isoWeekday(),1,4);} 1028function getISOWeeksInYear(){return weeksInYear(this.year(),1,4);} 1029function getWeeksInYear(){var weekInfo=this.localeData()._week;return weeksInYear(this.year(),weekInfo.dow,weekInfo.doy);} 1030function getSetWeekYearHelper(input,week,weekday,dow,doy){var weeksTarget;if(input==null){return weekOfYear(this,dow,doy).year;}else{weeksTarget=weeksInYear(input,dow,doy);if(week>weeksTarget){week=weeksTarget;} 1031return setWeekAll.call(this,input,week,weekday,dow,doy);}} 1032function setWeekAll(weekYear,week,weekday,dow,doy){var dayOfYearData=dayOfYearFromWeeks(weekYear,week,weekday,dow,doy),date=createUTCDate(dayOfYearData.year,0,dayOfYearData.dayOfYear);this.year(date.getUTCFullYear());this.month(date.getUTCMonth());this.date(date.getUTCDate());return this;} 1033addFormatToken('Q',0,'Qo','quarter');addUnitAlias('quarter','Q');addUnitPriority('quarter',7);addRegexToken('Q',match1);addParseToken('Q',function(input,array){array[MONTH]=(toInt(input)-1)*3;});function getSetQuarter(input){return input==null?Math.ceil((this.month()+1)/3):this.month((input-1)*3+this.month()%3);} 1034addFormatToken('D',['DD',2],'Do','date');addUnitAlias('date','D');addUnitPriority('date',9);addRegexToken('D',match1to2);addRegexToken('DD',match1to2,match2);addRegexToken('Do',function(isStrict,locale){return isStrict?(locale._dayOfMonthOrdinalParse||locale._ordinalParse):locale._dayOfMonthOrdinalParseLenient;});addParseToken(['D','DD'],DATE);addParseToken('Do',function(input,array){array[DATE]=toInt(input.match(match1to2)[0]);});var getSetDayOfMonth=makeGetSet('Date',true);addFormatToken('DDD',['DDDD',3],'DDDo','dayOfYear');addUnitAlias('dayOfYear','DDD');addUnitPriority('dayOfYear',4);addRegexToken('DDD',match1to3);addRegexToken('DDDD',match3);addParseToken(['DDD','DDDD'],function(input,array,config){config._dayOfYear=toInt(input);});function getSetDayOfYear(input){var dayOfYear=Math.round((this.clone().startOf('day')-this.clone().startOf('year'))/864e5)+1;return input==null?dayOfYear:this.add((input-dayOfYear),'d');} 1035addFormatToken('m',['mm',2],0,'minute');addUnitAlias('minute','m');addUnitPriority('minute',14);addRegexToken('m',match1to2);addRegexToken('mm',match1to2,match2);addParseToken(['m','mm'],MINUTE);var getSetMinute=makeGetSet('Minutes',false);addFormatToken('s',['ss',2],0,'second');addUnitAlias('second','s');addUnitPriority('second',15);addRegexToken('s',match1to2);addRegexToken('ss',match1to2,match2);addParseToken(['s','ss'],SECOND);var getSetSecond=makeGetSet('Seconds',false);addFormatToken('S',0,0,function(){return~~(this.millisecond()/100);});addFormatToken(0,['SS',2],0,function(){return~~(this.millisecond()/10);});addFormatToken(0,['SSS',3],0,'millisecond');addFormatToken(0,['SSSS',4],0,function(){return this.millisecond()*10;});addFormatToken(0,['SSSSS',5],0,function(){return this.millisecond()*100;});addFormatToken(0,['SSSSSS',6],0,function(){return this.millisecond()*1000;});addFormatToken(0,['SSSSSSS',7],0,function(){return this.millisecond()*10000;});addFormatToken(0,['SSSSSSSS',8],0,function(){return this.millisecond()*100000;});addFormatToken(0,['SSSSSSSSS',9],0,function(){return this.millisecond()*1000000;});addUnitAlias('millisecond','ms');addUnitPriority('millisecond',16);addRegexToken('S',match1to3,match1);addRegexToken('SS',match1to3,match2);addRegexToken('SSS',match1to3,match3);var token;for(token='SSSS';token.length<=9;token+='S'){addRegexToken(token,matchUnsigned);} 1036function parseMs(input,array){array[MILLISECOND]=toInt(('0.'+input)*1000);} 1037for(token='S';token.length<=9;token+='S'){addParseToken(token,parseMs);} 1038var getSetMillisecond=makeGetSet('Milliseconds',false);addFormatToken('z',0,0,'zoneAbbr');addFormatToken('zz',0,0,'zoneName');function getZoneAbbr(){return this._isUTC?'UTC':'';} 1039function getZoneName(){return this._isUTC?'Coordinated Universal Time':'';} 1040var proto=Moment.prototype;proto.add=add;proto.calendar=calendar$1;proto.clone=clone;proto.diff=diff;proto.endOf=endOf;proto.format=format;proto.from=from;proto.fromNow=fromNow;proto.to=to;proto.toNow=toNow;proto.get=stringGet;proto.invalidAt=invalidAt;proto.isAfter=isAfter;proto.isBefore=isBefore;proto.isBetween=isBetween;proto.isSame=isSame;proto.isSameOrAfter=isSameOrAfter;proto.isSameOrBefore=isSameOrBefore;proto.isValid=isValid$2;proto.lang=lang;proto.locale=locale;proto.localeData=localeData;proto.max=prototypeMax;proto.min=prototypeMin;proto.parsingFlags=parsingFlags;proto.set=stringSet;proto.startOf=startOf;proto.subtract=subtract;proto.toArray=toArray;proto.toObject=toObject;proto.toDate=toDate;proto.toISOString=toISOString;proto.inspect=inspect;proto.toJSON=toJSON;proto.toString=toString;proto.unix=unix;proto.valueOf=valueOf;proto.creationData=creationData;proto.year=getSetYear;proto.isLeapYear=getIsLeapYear;proto.weekYear=getSetWeekYear;proto.isoWeekYear=getSetISOWeekYear;proto.quarter=proto.quarters=getSetQuarter;proto.month=getSetMonth;proto.daysInMonth=getDaysInMonth;proto.week=proto.weeks=getSetWeek;proto.isoWeek=proto.isoWeeks=getSetISOWeek;proto.weeksInYear=getWeeksInYear;proto.isoWeeksInYear=getISOWeeksInYear;proto.date=getSetDayOfMonth;proto.day=proto.days=getSetDayOfWeek;proto.weekday=getSetLocaleDayOfWeek;proto.isoWeekday=getSetISODayOfWeek;proto.dayOfYear=getSetDayOfYear;proto.hour=proto.hours=getSetHour;proto.minute=proto.minutes=getSetMinute;proto.second=proto.seconds=getSetSecond;proto.millisecond=proto.milliseconds=getSetMillisecond;proto.utcOffset=getSetOffset;proto.utc=setOffsetToUTC;proto.local=setOffsetToLocal;proto.parseZone=setOffsetToParsedOffset;proto.hasAlignedHourOffset=hasAlignedHourOffset;proto.isDST=isDaylightSavingTime;proto.isLocal=isLocal;proto.isUtcOffset=isUtcOffset;proto.isUtc=isUtc;proto.isUTC=isUtc;proto.zoneAbbr=getZoneAbbr;proto.zoneName=getZoneName;proto.dates=deprecate('dates accessor is deprecated. Use date instead.',getSetDayOfMonth);proto.months=deprecate('months accessor is deprecated. Use month instead',getSetMonth);proto.years=deprecate('years accessor is deprecated. Use year instead',getSetYear);proto.zone=deprecate('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',getSetZone);proto.isDSTShifted=deprecate('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',isDaylightSavingTimeShifted);function createUnix(input){return createLocal(input*1000);} 1041function createInZone(){return createLocal.apply(null,arguments).parseZone();} 1042function preParsePostFormat(string){return string;} 1043var proto$1=Locale.prototype;proto$1.calendar=calendar;proto$1.longDateFormat=longDateFormat;proto$1.invalidDate=invalidDate;proto$1.ordinal=ordinal;proto$1.preparse=preParsePostFormat;proto$1.postformat=preParsePostFormat;proto$1.relativeTime=relativeTime;proto$1.pastFuture=pastFuture;proto$1.set=set;proto$1.months=localeMonths;proto$1.monthsShort=localeMonthsShort;proto$1.monthsParse=localeMonthsParse;proto$1.monthsRegex=monthsRegex;proto$1.monthsShortRegex=monthsShortRegex;proto$1.week=localeWeek;proto$1.firstDayOfYear=localeFirstDayOfYear;proto$1.firstDayOfWeek=localeFirstDayOfWeek;proto$1.weekdays=localeWeekdays;proto$1.weekdaysMin=localeWeekdaysMin;proto$1.weekdaysShort=localeWeekdaysShort;proto$1.weekdaysParse=localeWeekdaysParse;proto$1.weekdaysRegex=weekdaysRegex;proto$1.weekdaysShortRegex=weekdaysShortRegex;proto$1.weekdaysMinRegex=weekdaysMinRegex;proto$1.isPM=localeIsPM;proto$1.meridiem=localeMeridiem;function get$1(format,index,field,setter){var locale=getLocale();var utc=createUTC().set(setter,index);return locale[field](utc,format);} 1044function listMonthsImpl(format,index,field){if(isNumber(format)){index=format;format=undefined;} 1045format=format||'';if(index!=null){return get$1(format,index,field,'month');} 1046var i;var out=[];for(i=0;i<12;i++){out[i]=get$1(format,i,field,'month');} 1047return out;} 1048function listWeekdaysImpl(localeSorted,format,index,field){if(typeof localeSorted==='boolean'){if(isNumber(format)){index=format;format=undefined;} 1049format=format||'';}else{format=localeSorted;index=format;localeSorted=false;if(isNumber(format)){index=format;format=undefined;} 1050format=format||'';} 1051var locale=getLocale(),shift=localeSorted?locale._week.dow:0;if(index!=null){return get$1(format,(index+shift)%7,field,'day');} 1052var i;var out=[];for(i=0;i<7;i++){out[i]=get$1(format,(i+shift)%7,field,'day');} 1053return out;} 1054function listMonths(format,index){return listMonthsImpl(format,index,'months');} 1055function listMonthsShort(format,index){return listMonthsImpl(format,index,'monthsShort');} 1056function listWeekdays(localeSorted,format,index){return listWeekdaysImpl(localeSorted,format,index,'weekdays');} 1057function listWeekdaysShort(localeSorted,format,index){return listWeekdaysImpl(localeSorted,format,index,'weekdaysShort');} 1058function listWeekdaysMin(localeSorted,format,index){return listWeekdaysImpl(localeSorted,format,index,'weekdaysMin');} 1059getSetGlobalLocale('en',{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(number){var b=number%10,output=(toInt(number%100/10)===1)?'th':(b===1)?'st':(b===2)?'nd':(b===3)?'rd':'th';return number+output;}});hooks.lang=deprecate('moment.lang is deprecated. Use moment.locale instead.',getSetGlobalLocale);hooks.langData=deprecate('moment.langData is deprecated. Use moment.localeData instead.',getLocale);var mathAbs=Math.abs;function abs(){var data=this._data;this._milliseconds=mathAbs(this._milliseconds);this._days=mathAbs(this._days);this._months=mathAbs(this._months);data.milliseconds=mathAbs(data.milliseconds);data.seconds=mathAbs(data.seconds);data.minutes=mathAbs(data.minutes);data.hours=mathAbs(data.hours);data.months=mathAbs(data.months);data.years=mathAbs(data.years);return this;} 1060function addSubtract$1(duration,input,value,direction){var other=createDuration(input,value);duration._milliseconds+=direction*other._milliseconds;duration._days+=direction*other._days;duration._months+=direction*other._months;return duration._bubble();} 1061function add$1(input,value){return addSubtract$1(this,input,value,1);} 1062function subtract$1(input,value){return addSubtract$1(this,input,value,-1);} 1063function absCeil(number){if(number<0){return Math.floor(number);}else{return Math.ceil(number);}} 1064function bubble(){var milliseconds=this._milliseconds;var days=this._days;var months=this._months;var data=this._data;var seconds,minutes,hours,years,monthsFromDays;if(!((milliseconds>=0&&days>=0&&months>=0)||(milliseconds<=0&&days<=0&&months<=0))){milliseconds+=absCeil(monthsToDays(months)+days)*864e5;days=0;months=0;} 1065data.milliseconds=milliseconds%1000;seconds=absFloor(milliseconds/1000);data.seconds=seconds%60;minutes=absFloor(seconds/60);data.minutes=minutes%60;hours=absFloor(minutes/60);data.hours=hours%24;days+=absFloor(hours/24);monthsFromDays=absFloor(daysToMonths(days));months+=monthsFromDays;days-=absCeil(monthsToDays(monthsFromDays));years=absFloor(months/12);months%=12;data.days=days;data.months=months;data.years=years;return this;} 1066function daysToMonths(days){return days*4800/146097;} 1067function monthsToDays(months){return months*146097/4800;} 1068function as(units){if(!this.isValid()){return NaN;} 1069var days;var months;var milliseconds=this._milliseconds;units=normalizeUnits(units);if(units==='month'||units==='quarter'||units==='year'){days=this._days+milliseconds/864e5;months=this._months+daysToMonths(days);switch(units){case 'month':return months;case 'quarter':return months/3;case 'year':return months/12;}}else{days=this._days+Math.round(monthsToDays(this._months));switch(units){case 'week':return days/7+milliseconds/6048e5;case 'day':return days+milliseconds/864e5;case 'hour':return days*24+milliseconds/36e5;case 'minute':return days*1440+milliseconds/6e4;case 'second':return days*86400+milliseconds/1000;case 'millisecond':return Math.floor(days*864e5)+milliseconds;default:throw new Error('Unknown unit '+units);}}} 1070function valueOf$1(){if(!this.isValid()){return NaN;} 1071return(this._milliseconds+ 1072this._days*864e5+ 1073(this._months%12)*2592e6+ 1074toInt(this._months/12)*31536e6);} 1075function makeAs(alias){return function(){return this.as(alias);};} 1076var asMilliseconds=makeAs('ms');var asSeconds=makeAs('s');var asMinutes=makeAs('m');var asHours=makeAs('h');var asDays=makeAs('d');var asWeeks=makeAs('w');var asMonths=makeAs('M');var asQuarters=makeAs('Q');var asYears=makeAs('y');function clone$1(){return createDuration(this);} 1077function get$2(units){units=normalizeUnits(units);return this.isValid()?this[units+'s']():NaN;} 1078function makeGetter(name){return function(){return this.isValid()?this._data[name]:NaN;};} 1079var milliseconds=makeGetter('milliseconds');var seconds=makeGetter('seconds');var minutes=makeGetter('minutes');var hours=makeGetter('hours');var days=makeGetter('days');var months=makeGetter('months');var years=makeGetter('years');function weeks(){return absFloor(this.days()/7);} 1080var round=Math.round;var thresholds={ss:44,s:45,m:45,h:22,d:26,M:11};function substituteTimeAgo(string,number,withoutSuffix,isFuture,locale){return locale.relativeTime(number||1,!!withoutSuffix,string,isFuture);} 1081function relativeTime$1(posNegDuration,withoutSuffix,locale){var duration=createDuration(posNegDuration).abs();var seconds=round(duration.as('s'));var minutes=round(duration.as('m'));var hours=round(duration.as('h'));var days=round(duration.as('d'));var months=round(duration.as('M'));var years=round(duration.as('y'));var a=seconds<=thresholds.ss&&['s',seconds]||seconds<thresholds.s&&['ss',seconds]||minutes<=1&&['m']||minutes<thresholds.m&&['mm',minutes]||hours<=1&&['h']||hours<thresholds.h&&['hh',hours]||days<=1&&['d']||days<thresholds.d&&['dd',days]||months<=1&&['M']||months<thresholds.M&&['MM',months]||years<=1&&['y']||['yy',years];a[2]=withoutSuffix;a[3]=+posNegDuration>0;a[4]=locale;return substituteTimeAgo.apply(null,a);} 1082function getSetRelativeTimeRounding(roundingFunction){if(roundingFunction===undefined){return round;} 1083if(typeof(roundingFunction)==='function'){round=roundingFunction;return true;} 1084return false;} 1085function getSetRelativeTimeThreshold(threshold,limit){if(thresholds[threshold]===undefined){return false;} 1086if(limit===undefined){return thresholds[threshold];} 1087thresholds[threshold]=limit;if(threshold==='s'){thresholds.ss=limit-1;} 1088return true;} 1089function humanize(withSuffix){if(!this.isValid()){return this.localeData().invalidDate();} 1090var locale=this.localeData();var output=relativeTime$1(this,!withSuffix,locale);if(withSuffix){output=locale.pastFuture(+this,output);} 1091return locale.postformat(output);} 1092var abs$1=Math.abs;function sign(x){return((x>0)-(x<0))||+x;} 1093function toISOString$1(){if(!this.isValid()){return this.localeData().invalidDate();} 1094var seconds=abs$1(this._milliseconds)/1000;var days=abs$1(this._days);var months=abs$1(this._months);var minutes,hours,years;minutes=absFloor(seconds/60);hours=absFloor(minutes/60);seconds%=60;minutes%=60;years=absFloor(months/12);months%=12;var Y=years;var M=months;var D=days;var h=hours;var m=minutes;var s=seconds?seconds.toFixed(3).replace(/\.?0+$/,''):'';var total=this.asSeconds();if(!total){return 'P0D';} 1095var totalSign=total<0?'-':'';var ymSign=sign(this._months)!==sign(total)?'-':'';var daysSign=sign(this._days)!==sign(total)?'-':'';var hmsSign=sign(this._milliseconds)!==sign(total)?'-':'';return totalSign+'P'+ 1096(Y?ymSign+Y+'Y':'')+ 1097(M?ymSign+M+'M':'')+ 1098(D?daysSign+D+'D':'')+ 1099((h||m||s)?'T':'')+ 1100(h?hmsSign+h+'H':'')+ 1101(m?hmsSign+m+'M':'')+ 1102(s?hmsSign+s+'S':'');} 1103var proto$2=Duration.prototype;proto$2.isValid=isValid$1;proto$2.abs=abs;proto$2.add=add$1;proto$2.subtract=subtract$1;proto$2.as=as;proto$2.asMilliseconds=asMilliseconds;proto$2.asSeconds=asSeconds;proto$2.asMinutes=asMinutes;proto$2.asHours=asHours;proto$2.asDays=asDays;proto$2.asWeeks=asWeeks;proto$2.asMonths=asMonths;proto$2.asQuarters=asQuarters;proto$2.asYears=asYears;proto$2.valueOf=valueOf$1;proto$2._bubble=bubble;proto$2.clone=clone$1;proto$2.get=get$2;proto$2.milliseconds=milliseconds;proto$2.seconds=seconds;proto$2.minutes=minutes;proto$2.hours=hours;proto$2.days=days;proto$2.weeks=weeks;proto$2.months=months;proto$2.years=years;proto$2.humanize=humanize;proto$2.toISOString=toISOString$1;proto$2.toString=toISOString$1;proto$2.toJSON=toISOString$1;proto$2.locale=locale;proto$2.localeData=localeData;proto$2.toIsoString=deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',toISOString$1);proto$2.lang=lang;addFormatToken('X',0,0,'unix');addFormatToken('x',0,0,'valueOf');addRegexToken('x',matchSigned);addRegexToken('X',matchTimestamp);addParseToken('X',function(input,array,config){config._d=new Date(parseFloat(input,10)*1000);});addParseToken('x',function(input,array,config){config._d=new Date(toInt(input));});hooks.version='2.24.0';setHookCallback(createLocal);hooks.fn=proto;hooks.min=min;hooks.max=max;hooks.now=now;hooks.utc=createUTC;hooks.unix=createUnix;hooks.months=listMonths;hooks.isDate=isDate;hooks.locale=getSetGlobalLocale;hooks.invalid=createInvalid;hooks.duration=createDuration;hooks.isMoment=isMoment;hooks.weekdays=listWeekdays;hooks.parseZone=createInZone;hooks.localeData=getLocale;hooks.isDuration=isDuration;hooks.monthsShort=listMonthsShort;hooks.weekdaysMin=listWeekdaysMin;hooks.defineLocale=defineLocale;hooks.updateLocale=updateLocale;hooks.locales=listLocales;hooks.weekdaysShort=listWeekdaysShort;hooks.normalizeUnits=normalizeUnits;hooks.relativeTimeRounding=getSetRelativeTimeRounding;hooks.relativeTimeThreshold=getSetRelativeTimeThreshold;hooks.calendarFormat=getCalendarFormat;hooks.prototype=proto;hooks.HTML5_FMT={DATETIME_LOCAL:'YYYY-MM-DDTHH:mm',DATETIME_LOCAL_SECONDS:'YYYY-MM-DDTHH:mm:ss',DATETIME_LOCAL_MS:'YYYY-MM-DDTHH:mm:ss.SSS',DATE:'YYYY-MM-DD',TIME:'HH:mm',TIME_SECONDS:'HH:mm:ss',TIME_MS:'HH:mm:ss.SSS',WEEK:'GGGG-[W]WW',MONTH:'YYYY-MM'};return hooks;}))); 1104</script>
1104 1105
1105<script> 1106/*! 1107 * Copyright (c) 2015 Chris O'Hara <[email protected]> 1108 * 1109 * Permission is hereby granted, free of charge, to any person obtaining 1110 * a copy of this software and associated documentation files (the 1111 * "Software"), to deal in the Software without restriction, including 1112 * without limitation the rights to use, copy, modify, merge, publish, 1113 * distribute, sublicense, and/or sell copies of the Software, and to 1114 * permit persons to whom the Software is furnished to do so, subject to 1115 * the following conditions: 1116 * 1117 * The above copyright notice and this permission notice shall be 1118 * included in all copies or substantial portions of the Software. 1119 * 1120 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 1121 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 1122 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 1123 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 1124 * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 1125 * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 1126 * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 1127 */ 1128!function(t,e){"undefined"!=typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&"object"==typeof define.amd?define(e):this[t]=e()}("validator",function(t){"use strict";function e(t,e){t=t||{};for(var r in e)"undefined"==typeof t[r]&&(t[r]=e[r]);return t}function r(t){var e="(\\"+t.symbol.replace(/\./g,"\\.")+")"+(t.require_symbol?"":"?"),r="-?",n="[1-9]\\d*",i="[1-9]\\d{0,2}(\\"+t.thousands_separator+"\\d{3})*",o=["0",n,i],u="("+o.join("|")+")?",s="(\\"+t.decimal_separator+"\\d{2})?",a=u+s;return t.allow_negatives&&!t.parens_for_negatives&&(t.negative_sign_after_digits?a+=r:t.negative_sign_before_digits&&(a=r+a)),t.allow_negative_sign_placeholder?a="( (?!\\-))?"+a:t.allow_space_after_symbol?a=" ?"+a:t.allow_space_after_digits&&(a+="( (?!$))?"),t.symbol_after_digits?a+=e:a=e+a,t.allow_negatives&&(t.parens_for_negatives?a="(\\("+a+"\\)|"+a+")":t.negative_sign_before_digits||t.negative_sign_after_digits||(a=r+a)),new RegExp("^(?!-? )(?=.*\\d)"+a+"$")}t={version:"4.0.5"};var n=/^[a-z\d!#\$%&'\*\+\-\/=\?\^_`{\|}~]+$/i,i=/^([\s\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21\x23-\x5b\x5d-\x7e]|(\\[\x01-\x09\x0b\x0c\x0d-\x7f]))*$/i,o=/^[a-z\d!#\$%&'\*\+\-\/=\?\^_`{\|}~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+$/i,u=/^([\s\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21\x23-\x5b\x5d-\x7e\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|(\\[\x01-\x09\x0b\x0c\x0d-\x7f\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))*$/i,s=/^[a-z\d!#\$%&'\*\+\-\/=\?\^_`{\|}~\.\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+[a-z\d!#\$%&'\*\+\-\/=\?\^_`{\|}~\.\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF\s]*<(.+)>$/i,a=/^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$/,l=/^[A-Z]{2}[0-9A-Z]{9}[0-9]$/,f=/^(?:[0-9]{9}X|[0-9]{10})$/,c=/^(?:[0-9]{13})$/,p=/^(\d+)\.(\d+)\.(\d+)\.(\d+)$/,g=/^[0-9A-F]{1,4}$/i,F={3:/^[0-9A-F]{8}-[0-9A-F]{4}-3[0-9A-F]{3}-[0-9A-F]{4}-[0-9A-F]{12}$/i,4:/^[0-9A-F]{8}-[0-9A-F]{4}-4[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,5:/^[0-9A-F]{8}-[0-9A-F]{4}-5[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,all:/^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$/i},d=/^[A-Z]+$/i,_=/^[0-9A-Z]+$/i,x=/^[-+]?[0-9]+$/,h=/^(?:[-+]?(?:0|[1-9][0-9]*))$/,v=/^(?:[-+]?(?:[0-9]+))?(?:\.[0-9]*)?(?:[eE][\+\-]?(?:[0-9]+))?$/,A=/^[0-9A-F]+$/i,m=/^[-+]?([0-9]+|\.[0-9]+|[0-9]+\.[0-9]+)$/,$=/^#?([0-9A-F]{3}|[0-9A-F]{6})$/i,w=/^[\x00-\x7F]+$/,b=/[^\x00-\x7F]/,D=/[^\u0020-\u007E\uFF61-\uFF9F\uFFA0-\uFFDC\uFFE8-\uFFEE0-9a-zA-Z]/,y=/[\u0020-\u007E\uFF61-\uFF9F\uFFA0-\uFFDC\uFFE8-\uFFEE0-9a-zA-Z]/,E=/[\uD800-\uDBFF][\uDC00-\uDFFF]/,I=/^(?:[A-Z0-9+\/]{4})*(?:[A-Z0-9+\/]{2}==|[A-Z0-9+\/]{3}=|[A-Z0-9+\/]{4})$/i,O={"zh-CN":/^(\+?0?86\-?)?1[345789]\d{9}$/,"en-ZA":/^(\+?27|0)\d{9}$/,"en-AU":/^(\+?61|0)4\d{8}$/,"en-HK":/^(\+?852\-?)?[569]\d{3}\-?\d{4}$/,"fr-FR":/^(\+?33|0)[67]\d{8}$/,"pt-PT":/^(\+351)?9[1236]\d{7}$/,"el-GR":/^(\+30)?((2\d{9})|(69\d{8}))$/,"en-GB":/^(\+?44|0)7\d{9}$/,"en-US":/^(\+?1)?[2-9]\d{2}[2-9](?!11)\d{6}$/,"en-ZM":/^(\+26)?09[567]\d{7}$/,"ru-RU":/^(\+?7|8)?9\d{9}$/},C=/^([\+-]?\d{4}(?!\d{2}\b))((-?)((0[1-9]|1[0-2])(\3([12]\d|0[1-9]|3[01]))?|W([0-4]\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\d|[12]\d{2}|3([0-5]\d|6[1-6])))([T\s]((([01]\d|2[0-3])((:?)[0-5]\d)?|24\:?00)([\.,]\d+(?!:))?)?(\17[0-
11285]\d([\.,]\d+)?)?([zZ]|([\+-])([01]\d|2[0-3]):?([0-5]\d)?)?)?)?$/;t.extend=function(e,r){t[e]=function(){var e=Array.prototype.slice.call(arguments);return e[0]=t.toString(e[0]),r.apply(t,e)}},t.init=function(){for(var e in t)"function"==typeof t[e]&&"toString"!==e&&"toDate"!==e&&"extend"!==e&&"init"!==e&&t.extend(e,t[e])},t.toString=function(t){return"object"==typeof t&&null!==t&&t.toString?t=t.toString():null===t||"undefined"==typeof t||isNaN(t)&&!t.length?t="":"string"!=typeof t&&(t+=""),t},t.toDate=function(t){return"[object Date]"===Object.prototype.toString.call(t)?t:(t=Date.parse(t),isNaN(t)?null:new Date(t))},t.toFloat=function(t){return parseFloat(t)},t.toInt=function(t,e){return parseInt(t,e||10)},t.toBoolean=function(t,e){return e?"1"===t||"true"===t:"0"!==t&&"false"!==t&&""!==t},t.equals=function(e,r){return e===t.toString(r)},t.contains=function(e,r){return e.indexOf(t.toString(r))>=0},t.matches=function(t,e,r){return"[object RegExp]"!==Object.prototype.toString.call(e)&&(e=new RegExp(e,r)),e.test(t)};var S={allow_display_name:!1,allow_utf8_local_part:!0,require_tld:!0};t.isEmail=function(r,a){if(a=e(a,S),a.allow_display_name){var l=r.match(s);l&&(r=l[1])}var f=r.split("@"),c=f.pop(),p=f.join("@"),g=c.toLowerCase();if(("gmail.com"===g||"googlemail.com"===g)&&(p=p.replace(/\./g,"").toLowerCase()),!t.isByteLength(p,0,64)||!t.isByteLength(c,0,256))return!1;if(!t.isFQDN(c,{require_tld:a.require_tld}))return!1;
1128if('"'===p[0])return p=p.slice(1,p.length-1),a.allow_utf8_local_part?u.test(p):i.test(p);for(var F=a.allow_utf8_local_part?o:n,d=p.split("."),_=0;_<d.length;_++)if(!F.test(d[_]))return!1;return!0};var N={protocols:["http","https","ftp"],require_tld:!0,require_protocol:!1,require_valid_protocol:!0,allow_underscores:!1,allow_trailing_dot:!1,allow_protocol_relative_urls:!1};t.isURL=function(r,n){if(!r||r.length>=2083||/\s/.test(r))return!1;if(0===r.indexOf("mailto:"))return!1;n=e(n,N);var i,o,u,s,a,l,f;if(f=r.split("://"),f.length>1){if(i=f.shift(),n.require_valid_protocol&&-1===n.protocols.indexOf(i))return!1}else{if(n.require_protocol)return!1;n.allow_protocol_relative_urls&&"//"===r.substr(0,2)&&(f[0]=r.substr(2))}return r=f.join("://"),f=r.split("#"),r=f.shift(),f=r.split("?"),r=f.shift(),f=r.split("/"),r=f.shift(),f=r.split("@"),f.length>1&&(o=f.shift(),o.indexOf(":")>=0&&o.split(":").length>2)?!1:(s=f.join("@"),f=s.split(":"),u=f.shift(),f.length&&(l=f.join(":"),a=parseInt(l,10),!/^[0-9]+$/.test(l)||0>=a||a>65535)?!1:t.isIP(u)||t.isFQDN(u,n)||"localhost"===u?n.host_whitelist&&-1===n.host_whitelist.indexOf(u)?!1:n.host_blacklist&&-1!==n.host_blacklist.indexOf(u)?!1:!0:!1)},t.isIP=function(e,r){if(r=t.toString(r),!r)return t.isIP(e,4)||t.isIP(e,6);if("4"===r){if(!p.test(e))return!1;var n=e.split(".").sort(function(t,e){return t-e});return n[3]<=255}if("6"===r){var i=e.split(":"),o=!1,u=t.isIP(i[i.length-1],4),s=u?7:8;if(i.length>s)return!1;if("::"===e)return!0;"::"===e.substr(0,2)?(i.shift(),i.shift(),o=!0):"::"===e.substr(e.length-2)&&(i.pop(),i.pop(),o=!0);for(var a=0;a<i.length;++a)if(""===i[a]&&a>0&&a<i.length-1){if(o)return!1;o=!0}else if(u&&a==i.length-1);else if(!g.test(i[a]))return!1;return o?i.length>=1:i.length===s}return!1};var B={require_tld:!0,allow_underscores:!1,allow_trailing_dot:!1};t.isFQDN=function(t,r){r=e(r,B),r.allow_trailing_dot&&"."===t[t.length-1]&&(t=t.substring(0,t.length-1));var n=t.split(".");if(r.require_tld){var i=n.pop();if(!n.length||!/^([a-z\u00a1-\uffff]{2,}|xn[a-z0-9-]{2,})$/i.test(i))return!1}for(var o,u=0;u<n.length;u++){if(o=n[u],r.allow_underscores){if(o.indexOf("__")>=0)return!1;o=o.replace(/_/g,"")}if(!/^[a-z\u00a1-\uffff0-9-]+$/i.test(o))return!1;if(/[\uff01-\uff5e]/.test(o))return!1;if("-"===o[0]||"-"===o[o.length-1]||o.indexOf("---")>=0)return!1}return!0},t.isBoolean=function(t){return["true","false","1","0"].indexOf(t)>=0},t.isAlpha=function(t){return d.test(t)},t.isAlphanumeric=function(t){return _.test(t)},t.isNumeric=function(t){return x.test(t)},t.isDecimal=function(t){return""!==t&&m.test(t)},t.isHexadecimal=function(t){return A.test(t)},t.isHexColor=function(t){return $.test(t)},t.isLowercase=function(t){return t===t.toLowerCase()},t.isUppercase=function(t){return t===t.toUpperCase()},t.isInt=function(t,e){return e=e||{},h.test(t)&&(!e.hasOwnProperty("min")||t>=e.min)&&(!e.hasOwnProperty("max")||t<=e.max)},t.isFloat=function(t,e){return e=e||{},""!==t&&v.test(t)&&(!e.hasOwnProperty("min")||t>=e.min)&&(!e.hasOwnProperty("max")||t<=e.max)},t.isDivisibleBy=function(e,r){return t.toFloat(e)%t.toInt(r)===0},t.isNull=function(t){return 0===t.length},t.isLength=function(t,e,r){var n=t.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g)||[],i=t.length-n.length;return i>=e&&("undefined"==typeof r||r>=i)},t.isByteLength=function(t,e,r){var n=encodeURI(t).split(/%..|./).length-1;return n>=e&&("undefined"==typeof r||r>=n)},t.isUUID=function(t,e){var r=F[e?e:"all"];return r&&r.test(t)},t.isDate=function(t){return!isNaN(Date.parse(t))},t.isAfter=function(e,r){var n=t.toDate(r||new Date),i=t.toDate(e);return!!(i&&n&&i>n)},t.isBefore=function(e,r){var n=t.toDate(r||new Date),i=t.toDate(e);return i&&n&&n>i},t.isIn=function(e,r){var n;if("[object Array]"===Object.prototype.toString.call(r)){var i=[];for(n in r)i[n]=t.toString(r[n]);return i.indexOf(e)>=0}return"object"==typeof r?r.hasOwnProperty(e):r&&"function"==typeof r.indexOf?r.indexOf(e)>=0:!1},t.isCreditCard=function(t){var e=t.replace(/[^0-9]+/g,"");if(!a.test(e))return!1;for(var r,n,i,o=0,u=e.length-1;u>=0;u--)r=e.substring(u,u+1),n=parseInt(r,10),i?(n*=2,o+=n>=10?n%10+1:n):o+=n,i=!i;return!!(o%10===0?e:!1)},t.isISIN=function(t){if(!l.test(t))return!1;for(var e,r,n=t.replace(/[A-Z]/g,function(t){return parseInt(t,3
11286)}),i=0,o=!0,u=n.length-2;u>=0;u--)e=n.substring(u,u+1),r=parseInt(e,10),o?(r*=2,i+=r>=10?r+1:r):i+=r,o=!o;return parseInt(t.substr(t.length-1),10)===(1e4-i)%10},t.isISBN=function(e,r){if(r=t.toString(r),!r)return t.isISBN(e,10)||t.isISBN(e,13);var n,i=e.replace(/[\s-]+/g,""),o=0;if("10"===r){if(!f.test(i))return!1;for(n=0;9>n;n++)o+=(n+1)*i.charAt(n);if(o+="X"===i.charAt(9)?100:10*i.charAt(9),o%11===0)return!!i}else if("13"===r){if(!c.test(i))return!1;var u=[1,3];for(n=0;12>n;n++)o+=u[n%2]*i.charAt(n);if(i.charAt(12)-(10-o%10)%10===0)return!!i}return!1},t.isMobilePhone=function(t,e){return e in O?O[e].test(t):!1};var j={symbol:"$",require_symbol:!1,allow_space_after_symbol:!1,symbol_after_digits:!1,allow_negatives:!0,parens_for_negatives:!1,negative_sign_before_digits:!1,negative_sign_after_digits:!1,allow_negative_sign_placeholder:!1,thousands_separator:",",decimal_separator:".",allow_space_after_digits:!1};t.isCurrency=function(t,n){return n=e(n,j),r(n).test(t)},t.isJSON=function(t){try{var e=JSON.parse(t);return!!e&&"object"==typeof e}catch(r){}return!1},t.isMultibyte=function(t){return b.test(t)},t.isAscii=function(t){return w.test(t)},t.isFullWidth=function(t){return D.test(t)},t.isHalfWidth=function(t){return y.test(t)},t.isVariableWidth=function(t){return D.test(t)&&y.test(t)},t.isSurrogatePair=function(t){return E.test(t)},t.isBase64=function(t){return I.test(t)},t.isMongoId=function(e){return t.isHexadecimal(e)&&24===e.length},t.isISO8601=function(t){return C.test(t)},t.ltrim=function(t,e){var r=e?new RegExp("^["+e+"]+","g"):/^\s+/g;return t.replace(r,"")},t.rtrim=function(t,e){var r=e?new RegExp("["+e+"]+$","g"):/\s+$/g;return t.replace(r,"")},t.trim=function(t,e){var r=e?new RegExp("^["+e+"]+|["+e+"]+$","g"):/^\s+|\s+$/g;return t.replace(r,"")},t.escape=function(t){return t.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">").replace(/\//g,"/").replace(/\`/g,"`")},t.stripLow=function(e,r){var n=r?"\\x00-\\x09\\x0B\\x0C\\x0E-\\x1F\\x7F":"\\x00-\\x1F\\x7F";return t.blacklist(e,n)},t.whitelist=function(t,e){return t.replace(new RegExp("[^"+e+"]+","g"),"")},t.blacklist=function(t,e){return t.replace(new RegExp("["+e+"]+","g"),"")};var q={lowercase:!0};return t.normalizeEmail=function(r,n){if(n=e(n,q),!t.isEmail(r))return!1;var i=r.split("@",2);if(i[1]=i[1].toLowerCase(),"gmail.com"===i[1]||"googlemail.com"===i[1]){if(i[0]=i[0].toLowerCase().replace(/\./g,""),"+"===i[0][0])return!1;i[0]=i[0].split("+")[0],i[1]="gmail.com"}else n.lowercase&&(i[0]=i[0].toLowerCase());return i.join("@")},t.init(),t}); 1129</script>
1129 1130
1130<script> 1131!function(t,e){"function"==typeof define&&define.amd?define(["jquery"],e):"object"==typeof exports?module.exports=e(require("jquery")):e(t.jQuery)}(this,function(t){function e(t){if(t in p.style)return t;for(var e=["Moz","Webkit","O","ms"],n=t.charAt(0).toUpperCase()+t.substr(1),i=0;i<e.length;++i){var r=e[i]+n;if(r in p.style)return r}}function n(){return p.style[d.transform]="",p.style[d.transform]="rotateY(90deg)",""!==p.style[d.transform]}function i(t){return"string"==typeof t&&this.parse(t),this}function r(t,e,n){e===!0?t.queue(n):e?t.queue(e,n):t.each(function(){n.call(this)})}function s(e){var n=[];return t.each(e,function(e){e=t.camelCase(e),e=t.transit.propertyMap[e]||t.cssProps[e]||e,e=u(e),d[e]&&(e=u(d[e])),-1===t.inArray(e,n)&&n.push(e)}),n}function a(e,n,i,r){var a=s(e);t.cssEase[i]&&(i=t.cssEase[i]);var o=""+f(n)+" "+i;parseInt(r,10)>0&&(o+=" "+f(r));var u=[];return t.each(a,function(t,e){u.push(e+" "+o)}),u.join(", ")}function o(e,n){n||(t.cssNumber[e]=!0),t.transit.propertyMap[e]=d.transform,t.cssHooks[e]={get:function(n){var i=t(n).css("transit:transform");return i.get(e)},set:function(n,i){var r=t(n).css("transit:transform");r.setFromString(e,i),t(n).css({"transit:transform":r})}}}function u(t){return t.replace(/([A-Z])/g,function(t){return"-"+t.toLowerCase()})}function c(t,e){return"string"!=typeof t||t.match(/^[\-0-9\.]+$/)?""+t+e:t}function f(e){var n=e;return"string"!=typeof n||n.match(/^[\-0-9\.]+/)||(n=t.fx.speeds[n]||t.fx.speeds._default),c(n,"ms")}t.transit={version:"0.9.12",propertyMap:{marginLeft:"margin",marginRight:"margin",marginBottom:"margin",marginTop:"margin",paddingLeft:"padding",paddingRight:"padding",paddingBottom:"padding",paddingTop:"padding"},enabled:!0,useTransitionEnd:!1};var p=document.createElement("div"),d={},l=navigator.userAgent.toLowerCase().indexOf("chrome")>-1;d.transition=e("transition"),d.transitionDelay=e("transitionDelay"),d.transform=e("transform"),d.transformOrigin=e("transformOrigin"),d.filter=e("Filter"),d.transform3d=n();var h={transition:"transitionend",MozTransition:"transitionend",OTransition:"oTransitionEnd",WebkitTransition:"webkitTransitionEnd",msTransition:"MSTransitionEnd"},b=d.transitionEnd=h[d.transition]||null;for(var y in d)d.hasOwnProperty(y)&&"undefined"==typeof t.support[y]&&(t.support[y]=d[y]);return p=null,t.cssEase={_default:"ease","in":"ease-in",out:"ease-out","in-out":"ease-in-out",snap:"cubic-bezier(0,1,.5,1)",easeInCubic:"cubic-bezier(.550,.055,.675,.190)",easeOutCubic:"cubic-bezier(.215,.61,.355,1)",easeInOutCubic:"cubic-bezier(.645,.045,.355,1)",easeInCirc:"cubic-bezier(.6,.04,.98,.335)",easeOutCirc:"cubic-bezier(.075,.82,.165,1)",easeInOutCirc:"cubic-bezier(.785,.135,.15,.86)",easeInExpo:"cubic-bezier(.95,.05,.795,.035)",easeOutExpo:"cubic-bezier(.19,1,.22,1)",easeInOutExpo:"cubic-bezier(1,0,0,1)",easeInQuad:"cubic-bezier(.55,.085,.68,.53)",easeOutQuad:"cubic-bezier(.25,.46,.45,.94)",easeInOutQuad:"cubic-bezier(.455,.03,.515,.955)",easeInQuart:"cubic-bezier(.895,.03,.685,.22)",easeOutQuart:"cubic-bezier(.165,.84,.44,1)",easeInOutQuart:"cubic-bezier(.77,0,.175,1)",easeInQuint:"cubic-bezier(.755,.05,.855,.06)",easeOutQuint:"cubic-bezier(.23,1,.32,1)",easeInOutQuint:"cubic-bezier(.86,0,.07,1)",easeInSine:"cubic-bezier(.47,0,.745,.715)",easeOutSine:"cubic-bezier(.39,.575,.565,1)",easeInOutSine:"cubic-bezier(.445,.05,.55,.95)",easeInBack:"cubic-bezier(.6,-.28,.735,.045)",easeOutBack:"cubic-bezier(.175, .885,.32,1.275)",easeInOutBack:"cubic-bezier(.68,-.55,.265,1.55)"},t.cssHooks["transit:transform"]={get:function(e){return t(e).data("transform")||new i},set:function(e,n){var r=n;r instanceof i||(r=new i(r)),e.style[d.transform]="WebkitTransform"!==d.transform||l?r.toString():r.toString(!0),t(e).data("transform",r)}},t.cssHooks.transform={set:t.cssHooks["transit:transform"].set},t.cssHooks.filter={get:function(t){return t.style[d.filter]},set:function(t,e){t.style[d.filter]=e}},t.fn.jquery<"1.8"&&(t.cssHooks.transformOrigin={get:function(t){return t.style[d.transformOrigin]},set:function(t,e){t.style[d.transformOrigin]=e}},t.cssHooks.transition={get:function(t){return t.style[d.transition]},set:function(t,e){t.style[d.transition]=e}}),o("scale"),o("scaleX"),o("scaleY"),o("translate"),o("rotate"),o("rotateX"),o("rotateY"),o("rotate3d"),o("perspective"),o("skewX"),o("skewY"),o("x",!0),o("y",!0),i.prototype={setFromString:function(t,e){var n="string"==typeof e?e.split(","):e.constructor===Array?e:[e];n.unshift(t),i.prototype.set.apply(this,n)},set:function(t){var e=Array.prototype.slice.apply(arguments,[1]);
1131this.setter[t]?this.setter[t].apply(this,e):this[t]=e.join(",")},get:function(t){return this.getter[t]?this.getter[t].apply(this):this[t]||0},setter:{rotate:function(t){this.rotate=c(t,"deg")},rotateX:function(t){this.rotateX=c(t,"deg")},rotateY:function(t){this.rotateY=c(t,"deg")},scale:function(t,e){void 0===e&&(e=t),this.scale=t+","+e},skewX:function(t){this.skewX=c(t,"deg")},skewY:function(t){this.skewY=c(t,"deg")},perspective:function(t){this.perspective=c(t,"px")},x:function(t){this.set("translate",t,null)},y:function(t){this.set("translate",null,t)},translate:function(t,e){void 0===this._translateX&&(this._translateX=0),void 0===this._translateY&&(this._translateY=0),null!==t&&void 0!==t&&(this._translateX=c(t,"px")),null!==e&&void 0!==e&&(this._translateY=c(e,"px")),this.translate=this._translateX+","+this._translateY}},getter:{x:function(){return this._translateX||0},y:function(){return this._translateY||0},scale:function(){var t=(this.scale||"1,1").split(",");return t[0]&&(t[0]=parseFloat(t[0])),t[1]&&(t[1]=parseFloat(t[1])),t[0]===t[1]?t[0]:t},rotate3d:function(){for(var t=(this.rotate3d||"0,0,0,0deg").split(","),e=0;3>=e;++e)t[e]&&(t[e]=parseFloat(t[e]));return t[3]&&(t[3]=c(t[3],"deg")),t}},parse:function(t){var e=this;t.replace(/([a-zA-Z0-9]+)\((.*?)\)/g,function(t,n,i){e.setFromString(n,i)})},toString:function(t){var e=[];for(var n in this)if(this.hasOwnProperty(n)){if(!d.transform3d&&("rotateX"===n||"rotateY"===n||"perspective"===n||"transformOrigin"===n))continue;"_"!==n[0]&&e.push(t&&"scale"===n?n+"3d("+this[n]+",1)":t&&"translate"===n?n+"3d("+this[n]+",0)":n+"("+this[n]+")")}return e.join(" ")}},t.fn.transition=t.fn.transit=function(e,n,i,s){var o=this,u=0,c=!0,p=t.extend(!0,{},e);"function"==typeof n&&(s=n,n=void 0),"object"==typeof n&&(i=n.easing,u=n.delay||0,c="undefined"==typeof n.queue?!0:n.queue,s=n.complete,n=n.duration),"function"==typeof i&&(s=i,i=void 0),"undefined"!=typeof p.easing&&(i=p.easing,delete p.easing),"undefined"!=typeof p.duration&&(n=p.duration,delete p.duration),"undefined"!=typeof p.complete&&(s=p.complete,delete p.complete),"undefined"!=typeof p.queue&&(c=p.queue,delete p.queue),"undefined"!=typeof p.delay&&(u=p.delay,delete p.delay),"undefined"==typeof n&&(n=t.fx.speeds._default),"undefined"==typeof i&&(i=t.cssEase._default),n=f(n);var l=a(p,n,i,u),h=t.transit.enabled&&d.transition,y=h?parseInt(n,10)+parseInt(u,10):0;if(0===y){var g=function(t){o.css(p),s&&s.apply(o),t&&t()};return r(o,c,g),o}var m={},v=function(e){var n=!1,i=function(){n&&o.unbind(b,i),y>0&&o.each(function(){this.style[d.transition]=m[this]||null}),"function"==typeof s&&s.apply(o),"function"==typeof e&&e()};y>0&&b&&t.transit.useTransitionEnd?(n=!0,o.bind(b,i)):window.setTimeout(i,y),o.each(function(){y>0&&(this.style[d.transition]=l),t(this).css(p)})},z=function(t){this.offsetWidth,v(t)};return r(o,c,z),this},t.transit.getTransitionValue=a,t}); 1132</script>
1132 1133
1133<script> 1134Date.prototype.getMonthName=function(){var month_names=['January','February','March','April','May','June','July','August','September','October','November','December'];return month_names[this.getMonth()];} 1135Date.prototype.getMonthAbbr=function(){var month_abbrs=['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];return month_abbrs[this.getMonth()];} 1136Date.prototype.getDayFull=function(){var days_full=['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'];return days_full[this.getDay()];};Date.prototype.getDayAbbr=function(){var days_abbr=['Sun','Mon','Tue','Wed','Thur','Fri','Sat'];return days_abbr[this.getDay()];};Date.prototype.getDayOfYear=function(){var onejan=new Date(this.getFullYear(),0,1);return Math.ceil((this-onejan)/86400000);};Date.prototype.getDaySuffix=function(){var d=this.getDate();var sfx=["th","st","nd","rd"];var val=d%100;return(sfx[(val-20)%10]||sfx[val]||sfx[0]);};Date.prototype.getWeekOfYear=function(){var onejan=new Date(this.getFullYear(),0,1);return Math.ceil((((this-onejan)/86400000)+onejan.getDay()+1)/7);} 1137Date.prototype.isLeapYear=function(){var yr=this.getFullYear();if((parseInt(yr)%4)==0){if(parseInt(yr)%100==0){if(parseInt(yr)%400!=0){return false;} 1138if(parseInt(yr)%400==0){return true;}} 1139if(parseInt(yr)%100!=0){return true;}} 1140if((parseInt(yr)%4)!=0){return false;}};Date.prototype.getMonthDayCount=function(){var month_day_counts=[31,this.isLeapYear()?29:28,31,30,31,30,31,31,30,31,30,31];return month_day_counts[this.getMonth()];} 1141Date.prototype.format=function(dateFormat){dateFormat=dateFormat.split("");var date=this.getDate(),month=this.getMonth(),hours=this.getHours(),minutes=this.getMinutes(),seconds=this.getSeconds();var date_props={d:date<10?'0'+date:date,D:this.getDayAbbr(),j:this.getDate(),l:this.getDayFull(),S:this.getDaySuffix(),w:this.getDay(),z:this.getDayOfYear(),W:this.getWeekOfYear(),F:this.getMonthName(),m:month<10?'0'+(month+1):month+1,M:this.getMonthAbbr(),n:month+1,t:this.getMonthDayCount(),L:this.isLeapYear()?'1':'0',Y:this.getFullYear(),y:this.getFullYear()+''.substring(2,4),a:hours>12?'pm':'am',A:hours>12?'PM':'AM',g:hours%12>0?hours%12:12,G:hours>0?hours:"12",h:hours%12>0?hours%12:12,H:hours,i:minutes<10?'0'+minutes:minutes,s:seconds<10?'0'+seconds:seconds};var date_string="";for(var i=0;i<dateFormat.length;i++){var f=dateFormat[i];if(f.match(/[a-zA-Z]/g)){date_string+=date_props[f]?date_props[f]:'';}else{date_string+=f;}} 1142return date_string;}; 1143</script>
1143 1144
1144<script id="swiper-js-inline-embed"> 1145/** 1146 * Swiper 8.2.4 1147 * Most modern mobile touch slider and framework with hardware accelerated transitions 1148 * https://swiperjs.com 1149 * 1150 * Copyright 2014-2022 Vladimir Kharlampidi 1151 * 1152 * Released under the MIT License 1153 * 1154 * Released on: June 13, 2022 1155 */ 1156 1157!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).Swiper=t()}(this,(function(){"use strict";function e(e){return null!==e&&"object"==typeof e&&"constructor"in e&&e.constructor===Object}function t(s,a){void 0===s&&(s={}),void 0===a&&(a={}),Object.keys(a).forEach((i=>{void 0===s[i]?s[i]=a[i]:e(a[i])&&e(s[i])&&Object.keys(a[i]).length>0&&t(s[i],a[i])}))}const s={body:{},addEventListener(){},removeEventListener(){},activeElement:{blur(){},nodeName:""},querySelector:()=>null,querySelectorAll:()=>[],getElementById:()=>null,createEvent:()=>({initEvent(){}}),createElement:()=>({children:[],childNodes:[],style:{},setAttribute(){},getElementsByTagName:()=>[]}),createElementNS:()=>({}),importNode:()=>null,location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""}};function a(){const e="undefined"!=typeof document?document:{};return t(e,s),e}const i={document:s,navigator:{userAgent:""},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""},history:{replaceState(){},pushState(){},go(){},back(){}},CustomEvent:function(){return this},addEventListener(){},removeEventListener(){},getComputedStyle:()=>({getPropertyValue:()=>""}),Image(){},Date(){},screen:{},setTimeout(){},clearTimeout(){},matchMedia:()=>({}),requestAnimationFrame:e=>"undefined"==typeof setTimeout?(e(),null):setTimeout(e,0),cancelAnimationFrame(e){"undefined"!=typeof setTimeout&&clearTimeout(e)}};function r(){const e="undefined"!=typeof window?window:{};return t(e,i),e}class n extends Array{constructor(e){"number"==typeof e?super(e):(super(...e||[]),function(e){const t=e.__proto__;Object.defineProperty(e,"__proto__",{get:()=>t,set(e){t.__proto__=e}})}(this))}}function l(e){void 0===e&&(e=[]);const t=[];return e.forEach((e=>{Array.isArray(e)?t.push(...l(e)):t.push(e)})),t}function o(e,t){return Array.prototype.filter.call(e,t)}function d(e,t){const s=r(),i=a();let l=[];if(!t&&e instanceof n)return e;if(!e)return new n(l);if("string"==typeof e){const s=e.trim();if(s.indexOf("<")>=0&&s.indexOf(">")>=0){let e="div";0===s.indexOf("<li")&&(e="ul"),0===s.indexOf("<tr")&&(e="tbody"),0!==s.indexOf("<td")&&0!==s.indexOf("<th")||(e="tr"),0===s.indexOf("<tbody")&&(e="table"),0===s.indexOf("<option")&&(e="select");const t=i.createElement(e);t.innerHTML=s;for(let e=0;e<t.childNodes.length;e+=1)l.push(t.childNodes[e])}else l=function(e,t){if("string"!=typeof e)return[e];const s=[],a=t.querySelectorAll(e);for(let e=0;e<a.length;e+=1)s.push(a[e]);return s}(e.trim(),t||i)}else if(e.nodeType||e===s||e===i)l.push(e);else if(Array.isArray(e)){if(e instanceof n)return e;l=e}return new n(function(e){const t=[];for(let s=0;s<e.length;s+=1)-1===t.indexOf(e[s])&&t.push(e[s]);return t}(l))}d.fn=n.prototype;const c={addClass:function(){for(var e=arguments.length,t=new Array(e),s=0;s<e;s++)t[s]=arguments[s];const a=l(t.map((e=>e.split(" "))));return this.forEach((e=>{e.classList.add(...a)})),this},removeClass:function(){for(var e=arguments.length,t=new Array(e),s=0;s<e;s++)t[s]=arguments[s];const a=l(t.map((e=>e.split(" "))));return this.forEach((e=>{e.classList.remove(...a)})),this},hasClass:function(){for(var e=arguments.length,t=new Array(e),s=0;s<e;s++)t[s]=arguments[s];const a=l(t.map((e=>e.split(" "))));return o(this,(e=>a.filter((t=>e.classList.contains(t))).length>0)).length>0},toggleClass:function(){for(var e=arguments.length,t=new Array(e),s=0;s<e;s++)t[s]=arguments[s];const a=l(t.map((e=>e.split(" "))));this.forEach((e=>{a.forEach((t=>{e.classList.toggle(t)}))}))},attr:function(e,t){if(1===arguments.length&&"string"==typeof e)return this[0]?this[0].getAttribute(e):void 0;for(let s=0;s<this.length;s+=1)if(2===arguments.length)this[s].setAttribute(e,t);else for(const t in e)this[s][t]=e[t],this[s].setAttribute(t,e[t]);return this},removeAttr:function(e){for(let t=0;t<this.length;t+=1)this[t].removeAttribute(e);return this},transform:function(e){for(let t=0;t<this.length;t+=1)this[t].style.transform=e;return this},transition:function(e){for(let t=0;t<this.length;t+=1)this[t].style.transitionDuration="string"!=typeof e?`${e}ms`:e;return this},on:function(){for(var e=arguments.length,t=new Array(e),s=0;s<e;s++)t[s]=arguments[s];let[a,i,r,n]=t;function l(e){const t=e.target;if(!t)return;const s=e.target.dom7EventData||[];if(s.indexOf(e)<0&&s.unshift(e),d(t).is(i))r.apply(t,s);else{const e=d(t).parents();for(let t=0;t<e.length;t+=1)d(e[t]).is(i)&&r.apply(e[t],s)}}function o(e){const t=e&&e.target&&e.target.dom7EventData||[];t.indexOf(e)<0&&t.unshift(e),r.apply(this,t)}"function"==typeof t[1]&&([a,r,n]=t,i=void 0),n||(n=!1);const c=a.split(" ");let p;for(let e=0;e<this.length;e+=1){const t=this[e];if(i)for(p=0;p<c.length;p+=1){const e=c[p];t.dom7LiveListeners||(t.dom7LiveListeners={}),t.dom7LiveListeners[e]||(t.dom7LiveListeners[e]=[]),t.dom7LiveListeners[e].push({listener:r,proxyListener:l}),t.addEventListener(e,l,n)}else for(p=0;p<c.length;p+=1){const e=c[p];t.dom7Listeners||(t.dom7Listeners={}),t.dom7Listeners[e]||(t.dom7Listeners[e]=[]),t.dom7Listeners[e].push({listener:r,proxyListener:o}),t.addEventListener(e,o,n)}}return this},off:function(){for(var e=arguments.length,t=new Array(e),s=0;s<e;s++)t[s]=arguments[s];let[a,i,r,n]=t;"function"==typeof t[1]&&([a,r,n]=t,i=void 0),n||(n=!1);const l=a.split(" ");for(let e=0;e<l.length;e+=1){const t=l[e];for(let e=0;e<this.length;e+=1){const s=this[e];let a;if(!i&&s.dom7Listeners?a=s.dom7Listeners[t]:i&&s.dom7LiveListeners&&(a=s.dom7LiveListeners[t]),a&&a.length)for(let e=a.length-1;e>=0;e-=1){const i=a[e];r&&i.listener===r||r&&i.listener&&i.listener.dom7proxy&&i.listener.dom7proxy===r?(s.removeEventListener(t,i.proxyListener,n),a.splice(e,1)):r||(s.removeEventListener(t,i.proxyListener,n),a.splice(e,1))}}}return this},trigger:function(){const e=r();for(var t=arguments.length,s=new Array(t),a=0;a<t;a++)s[a]=arguments[a];const i=s[0].split(" "),n=s[1];for(let t=0;t<i.length;t+=1){const a=i[t];for(let t=0;t<this.length;t+=1){const i=this[t];if(e.CustomEvent){const t=new e.CustomEvent(a,{detail:n,bubbles:!0,cancelable:!0});i.dom7EventData=s.filter(((e,t)=>t>0)),i.dispatchEvent(t),i.dom7EventData=[],delete i.dom7EventData}}}return this},transitionEnd:function(e){const t=this;return e&&t.on("transitionend",(function s(a){a.target===this&&(e.call(this,a),t.off("transitionend",s))})),this},outerWidth:function(e){if(this.length>0){if(e){const e=this.styles();return this[0].offsetWidth+parseFloat(e.getPropertyValue("margin-right"))+
1157parseFloat(e.getPropertyValue("margin-left"))}return this[0].offsetWidth}return null},outerHeight:function(e){if(this.length>0){if(e){const e=this.styles();return this[0].offsetHeight+parseFloat(e.getPropertyValue("margin-top"))+parseFloat(e.getPropertyValue("margin-bottom"))}return this[0].offsetHeight}return null},styles:function(){const e=r();return this[0]?e.getComputedStyle(this[0],null):{}},offset:function(){if(this.length>0){const e=r(),t=a(),s=this[0],i=s.getBoundingClientRect(),n=t.body,l=s.clientTop||n.clientTop||0,o=s.clientLeft||n.clientLeft||0,d=s===e?e.scrollY:s.scrollTop,c=s===e?e.scrollX:s.scrollLeft;return{top:i.top+d-l,left:i.left+c-o}}return null},css:function(e,t){const s=r();let a;if(1===arguments.length){if("string"!=typeof e){for(a=0;a<this.length;a+=1)for(const t in e)this[a].style[t]=e[t];return this}if(this[0])return s.getComputedStyle(this[0],null).getPropertyValue(e)}if(2===arguments.length&&"string"==typeof e){for(a=0;a<this.length;a+=1)this[a].style[e]=t;return this}return this},each:function(e){return e?(this.forEach(((t,s)=>{e.apply(t,[t,s])})),this):this},html:function(e){if(void 0===e)return this[0]?this[0].innerHTML:null;for(let t=0;t<this.length;t+=1)this[t].innerHTML=e;return this},text:function(e){if(void 0===e)return this[0]?this[0].textContent.trim():null;for(let t=0;t<this.length;t+=1)this[t].textContent=e;return this},is:function(e){const t=r(),s=a(),i=this[0];let l,o;if(!i||void 0===e)return!1;if("string"==typeof e){if(i.matches)return i.matches(e);if(i.webkitMatchesSelector)return i.webkitMatchesSelector(e);if(i.msMatchesSelector)return i.msMatchesSelector(e);for(l=d(e),o=0;o<l.length;o+=1)if(l[o]===i)return!0;return!1}if(e===s)return i===s;if(e===t)return i===t;if(e.nodeType||e instanceof n){for(l=e.nodeType?[e]:e,o=0;o<l.length;o+=1)if(l[o]===i)return!0;return!1}return!1},index:function(){let e,t=this[0];if(t){for(e=0;null!==(t=t.previousSibling);)1===t.nodeType&&(e+=1);return e}},eq:function(e){if(void 0===e)return this;const t=this.length;if(e>t-1)return d([]);if(e<0){const s=t+e;return d(s<0?[]:[this[s]])}return d([this[e]])},append:function(){let e;const t=a();for(let s=0;s<arguments.length;s+=1){e=s<0||arguments.length<=s?void 0:arguments[s];for(let s=0;s<this.length;s+=1)if("string"==typeof e){const a=t.createElement("div");for(a.innerHTML=e;a.firstChild;)this[s].appendChild(a.firstChild)}else if(e instanceof n)for(let t=0;t<e.length;t+=1)this[s].appendChild(e[t]);else this[s].appendChild(e)}return this},prepend:function(e){const t=a();let s,i;for(s=0;s<this.length;s+=1)if("string"==typeof e){const a=t.createElement("div");for(a.innerHTML=e,i=a.childNodes.length-1;i>=0;i-=1)this[s].insertBefore(a.childNodes[i],this[s].childNodes[0])}else if(e instanceof n)for(i=0;i<e.length;i+=1)this[s].insertBefore(e[i],this[s].childNodes[0]);else this[s].insertBefore(e,this[s].childNodes[0]);return this},next:function(e){return this.length>0?e?this[0].nextElementSibling&&d(this[0].nextElementSibling).is(e)?d([this[0].nextElementSibling]):d([]):this[0].nextElementSibling?d([this[0].nextElementSibling]):d([]):d([])},nextAll:function(e){const t=[];let s=this[0];if(!s)return d([]);for(;s.nextElementSibling;){const a=s.nextElementSibling;e?d(a).is(e)&&t.push(a):t.push(a),s=a}return d(t)},prev:function(e){if(this.length>0){const t=this[0];return e?t.previousElementSibling&&d(t.previousElementSibling).is(e)?d([t.previousElementSibling]):d([]):t.previousElementSibling?d([t.previousElementSibling]):d([])}return d([])},prevAll:function(e){const t=[];let s=this[0];if(!s)return d([]);for(;s.previousElementSibling;){const a=s.previousElementSibling;e?d(a).is(e)&&t.push(a):t.push(a),s=a}return d(t)},parent:function(e){const t=[];for(let s=0;s<this.length;s+=1)null!==this[s].parentNode&&(e?d(this[s].parentNode).is(e)&&t.push(this[s].parentNode):t.push(this[s].parentNode));return d(t)},parents:function(e){const t=[];for(let s=0;s<this.length;s+=1){let a=this[s].parentNode;for(;a;)e?d(a).is(e)&&t.push(a):t.push(a),a=a.parentNode}return d(t)},closest:function(e){let t=this;return void 0===e?d([]):(t.is(e)||(t=t.parents(e).eq(0)),t)},find:function(e){const t=[];for(let s=0;s<this.length;s+=1){const a=this[s].querySelectorAll(e);for(let e=0;e<a.length;e+=1)t.push(a[e])}return d(t)},children:function(e){const t=[];for(let s=0;s<this.length;s+=1){const a=this[s].children;for(let s=0;s<a.length;s+=1)e&&!d(a[s]).is(e)||t.push(a[s])}return d(t)},filter:function(e){return d(o(this,e))},remove:function(){for(let e=0;e<this.length;e+=1)this[e].parentNode&&this[e].parentNode.removeChild(this[e]);return this}};function p(e,t){return void 0===t&&(t=0),setTimeout(e,t)}function u(){return Date.now()}function h(e,t){void 0===t&&(t="x");const s=r();let a,i,n;const l=function(e){const t=r();let s;return t.getComputedStyle&&(s=t.getComputedStyle(e,null)),!s&&e.currentStyle&&(s=e.currentStyle),s||(s=e.style),s}(e);return s.WebKitCSSMatrix?(i=l.transform||l.webkitTransform,i.split(",").length>6&&(i=i.split(", ").map((e=>e.replace(",","."))).join(", ")),n=new s.WebKitCSSMatrix("none"===i?"":i)):(n=l.MozTransform||l.OTransform||l.MsTransform||l.msTransform||l.transform||l.getPropertyValue("transform").replace("translate(","matrix(1, 0, 0, 1,"),a=n.toString().split(",")),"x"===t&&(i=s.WebKitCSSMatrix?n.m41:16===a.length?parseFloat(a[12]):parseFloat(a[4])),"y"===t&&(i=s.WebKitCSSMatrix?n.m42:16===a.length?parseFloat(a[13]):parseFloat(a[5])),i||0}function m(e){return"object"==typeof e&&null!==e&&e.constructor&&"Object"===Object.prototype.toString.call(e).slice(8,-1)}function f(e){return"undefined"!=typeof window&&void 0!==window.HTMLElement?e instanceof HTMLElement:e&&(1===e.nodeType||11===e.nodeType)}function g(){const e=Object(arguments.length<=0?void 0:arguments[0]),t=["__proto__","constructor","prototype"];for(let s=1;s<arguments.length;s+=1){const a=s<0||arguments.length<=s?void 0:arguments[s];if(null!=a&&!f(a)){const s=Object.keys(Object(a)).filter((e=>t.indexOf(e)<0));for(let t=0,i=s.length;t<i;t+=1){const i=s[t],r=Object.getOwnPropertyDescriptor(a,i);void 0!==r&&r.enumerable&&(m(e[i])&&m(a[i])?a[i].__swiper__?e[i]=a[i]:g(e[i],a[i]):!m(e[i])&&m(a[i])?(e[i]={},a[i].__swiper__?e[i]=a[i]:g(e[i],a[i])):e[i]=a[i])}}}return e}function v(e,t,s){e.style.setProperty(t,s)}function w(e){let{swiper:t,targetPosition:s,side:a}=e;const i=r(),n=-t.translate;let l,o=null;const d=t.params.speed;t.wrapperEl.style.scrollSnapType="none",i.cancelAnimationFrame(t.cssModeFrameID);const c=s>n?"next":"prev",p=(e,t)=>"next"===c&&e>=t||"prev"===c&&e<=t,u=()=>{l=(new Date).getTime(),null===o&&(o=l);const e=Math.max(Math.min((l-o)/d,1),0),r=.5-Math.cos(e*Math.PI)/2;let c=n+r*(s-n);if(p(c,s)&&(c=s),t.wrapperEl.scrollTo({[a]:c}),p(c,s))return t.wrapperEl.style.overflow="hidden",t.wrapperEl.style.scrollSnapType="",setTimeout((()=>{t.wrapperEl.style.overflow="",t.wrapperEl.scrollTo({[a]:c})})),void i.cancelAnimationFrame(t.cssModeFrameID);t.cssModeFrameID=i.requestAnimationFrame(u)};u()}let b,x,y;function E(){return b||(b=function(){const e=r(),t=a();return{smoothScroll:t.documentElement&&"scrollBehavior"in t.documentElement.style,touch:!!("ontouchstart"in e||e.DocumentTouch&&t instanceof e.DocumentTouch),passiveListener:function(){let t=!1;try{const s=Object.defineProperty({},"passive",{get(){t=!0}});e.addEventListener("testPassiveListener",null,s)}catch(e){}return t}(),gestures:"ongesturestart"in e}}()),b}function C(e){return void 0===e&&(e={}),x||(x=function(e){let{userAgent:t}=void 0===e?{}:e;const s=E(),a=r(),i=a.navigator.platform,n=t||a.navigator.userAgent,l={ios:!1,android:!1},o=a.screen.width,d=a.screen.height,c=n.match(/(Android);?[\s\/]+([\d.]+)?/);let p=n.match(/(iPad).*OS\s([\d_]+)/);const u=n.match(/(iPod)(.*OS\s([\d_]+))?/),h=!p&&n.match(/(iPhone\sOS|iOS)\s([\d_]+)/),m="Win32"===i;let f="MacIntel"===i;return!p&&f&&s.touch&&["1024x1366","1366x1024","834x1194","1194x834","834x1112","1112x834","768x1024","1024x768","820x1180","1180x820","810x1080","1080x810"].indexOf(`${o}x${d}`)>=0&&(p=n.match(/(Version)\/([\d.]+)/),p||(p=[0,1,"13_0_0"]),f=!1),c&&!m&&(l.os="android",l.android=!0),(p||h||u)&&(l.os="ios",l.ios=!0),l}(e)),x}function T(){return y||(y=function(){const e=r();return{isSafari:function(){const t=e.navigator.userAgent.toLowerCase();return t.indexOf("safari")>=0&&t.indexOf("chrome")<0&&t.indexOf("android")<0}
1157(),isWebView:/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(e.navigator.userAgent)}}()),y}Object.keys(c).forEach((e=>{Object.defineProperty(d.fn,e,{value:c[e],writable:!0})}));var $={on(e,t,s){const a=this;if(!a.eventsListeners||a.destroyed)return a;if("function"!=typeof t)return a;const i=s?"unshift":"push";return e.split(" ").forEach((e=>{a.eventsListeners[e]||(a.eventsListeners[e]=[]),a.eventsListeners[e][i](t)})),a},once(e,t,s){const a=this;if(!a.eventsListeners||a.destroyed)return a;if("function"!=typeof t)return a;function i(){a.off(e,i),i.__emitterProxy&&delete i.__emitterProxy;for(var s=arguments.length,r=new Array(s),n=0;n<s;n++)r[n]=arguments[n];t.apply(a,r)}return i.__emitterProxy=t,a.on(e,i,s)},onAny(e,t){const s=this;if(!s.eventsListeners||s.destroyed)return s;if("function"!=typeof e)return s;const a=t?"unshift":"push";return s.eventsAnyListeners.indexOf(e)<0&&s.eventsAnyListeners[a](e),s},offAny(e){const t=this;if(!t.eventsListeners||t.destroyed)return t;if(!t.eventsAnyListeners)return t;const s=t.eventsAnyListeners.indexOf(e);return s>=0&&t.eventsAnyListeners.splice(s,1),t},off(e,t){const s=this;return!s.eventsListeners||s.destroyed?s:s.eventsListeners?(e.split(" ").forEach((e=>{void 0===t?s.eventsListeners[e]=[]:s.eventsListeners[e]&&s.eventsListeners[e].forEach(((a,i)=>{(a===t||a.__emitterProxy&&a.__emitterProxy===t)&&s.eventsListeners[e].splice(i,1)}))})),s):s},emit(){const e=this;if(!e.eventsListeners||e.destroyed)return e;if(!e.eventsListeners)return e;let t,s,a;for(var i=arguments.length,r=new Array(i),n=0;n<i;n++)r[n]=arguments[n];"string"==typeof r[0]||Array.isArray(r[0])?(t=r[0],s=r.slice(1,r.length),a=e):(t=r[0].events,s=r[0].data,a=r[0].context||e),s.unshift(a);return(Array.isArray(t)?t:t.split(" ")).forEach((t=>{e.eventsAnyListeners&&e.eventsAnyListeners.length&&e.eventsAnyListeners.forEach((e=>{e.apply(a,[t,...s])})),e.eventsListeners&&e.eventsListeners[t]&&e.eventsListeners[t].forEach((e=>{e.apply(a,s)}))})),e}};var S={updateSize:function(){const e=this;let t,s;const a=e.$el;t=void 0!==e.params.width&&null!==e.params.width?e.params.width:a[0].clientWidth,s=void 0!==e.params.height&&null!==e.params.height?e.params.height:a[0].clientHeight,0===t&&e.isHorizontal()||0===s&&e.isVertical()||(t=t-parseInt(a.css("padding-left")||0,10)-parseInt(a.css("padding-right")||0,10),s=s-parseInt(a.css("padding-top")||0,10)-parseInt(a.css("padding-bottom")||0,10),Number.isNaN(t)&&(t=0),Number.isNaN(s)&&(s=0),Object.assign(e,{width:t,height:s,size:e.isHorizontal()?t:s}))},updateSlides:function(){const e=this;function t(t){return e.isHorizontal()?t:{width:"height","margin-top":"margin-left","margin-bottom ":"margin-right","margin-left":"margin-top","margin-right":"margin-bottom","padding-left":"padding-top","padding-right":"padding-bottom",marginRight:"marginBottom"}[t]}function s(e,s){return parseFloat(e.getPropertyValue(t(s))||0)}const a=e.params,{$wrapperEl:i,size:r,rtlTranslate:n,wrongRTL:l}=e,o=e.virtual&&a.virtual.enabled,d=o?e.virtual.slides.length:e.slides.length,c=i.children(`.${e.params.slideClass}`),p=o?e.virtual.slides.length:c.length;let u=[];const h=[],m=[];let f=a.slidesOffsetBefore;"function"==typeof f&&(f=a.slidesOffsetBefore.call(e));let g=a.slidesOffsetAfter;"function"==typeof g&&(g=a.slidesOffsetAfter.call(e));const w=e.snapGrid.length,b=e.slidesGrid.length;let x=a.spaceBetween,y=-f,E=0,C=0;if(void 0===r)return;"string"==typeof x&&x.indexOf("%")>=0&&(x=parseFloat(x.replace("%",""))/100*r),e.virtualSize=-x,n?c.css({marginLeft:"",marginBottom:"",marginTop:""}):c.css({marginRight:"",marginBottom:"",marginTop:""}),a.centeredSlides&&a.cssMode&&(v(e.wrapperEl,"--swiper-centered-offset-before",""),v(e.wrapperEl,"--swiper-centered-offset-after",""));const T=a.grid&&a.grid.rows>1&&e.grid;let $;T&&e.grid.initSlides(p);const S="auto"===a.slidesPerView&&a.breakpoints&&Object.keys(a.breakpoints).filter((e=>void 0!==a.breakpoints[e].slidesPerView)).length>0;for(let i=0;i<p;i+=1){$=0;const n=c.eq(i);if(T&&e.grid.updateSlide(i,n,p,t),"none"!==n.css("display")){if("auto"===a.slidesPerView){S&&(c[i].style[t("width")]="");const r=getComputedStyle(n[0]),l=n[0].style.transform,o=n[0].style.webkitTransform;if(l&&(n[0].style.transform="none"),o&&(n[0].style.webkitTransform="none"),a.roundLengths)$=e.isHorizontal()?n.outerWidth(!0):n.outerHeight(!0);else{const e=s(r,"width"),t=s(r,"padding-left"),a=s(r,"padding-right"),i=s(r,"margin-left"),l=s(r,"margin-right"),o=r.getPropertyValue("box-sizing");if(o&&"border-box"===o)$=e+i+l;else{const{clientWidth:s,offsetWidth:r}=n[0];$=e+t+a+i+l+(r-s)}}l&&(n[0].style.transform=l),o&&(n[0].style.webkitTransform=o),a.roundLengths&&($=Math.floor($))}else $=(r-(a.slidesPerView-1)*x)/a.slidesPerView,a.roundLengths&&($=Math.floor($)),c[i]&&(c[i].style[t("width")]=`${$}px`);c[i]&&(c[i].swiperSlideSize=$),m.push($),a.centeredSlides?(y=y+$/2+E/2+x,0===E&&0!==i&&(y=y-r/2-x),0===i&&(y=y-r/2-x),Math.abs(y)<.001&&(y=0),a.roundLengths&&(y=Math.floor(y)),C%a.slidesPerGroup==0&&u.push(y),h.push(y)):(a.roun
1157dLengths&&(y=Math.floor(y)),(C-Math.min(e.params.slidesPerGroupSkip,C))%e.params.slidesPerGroup==0&&u.push(y),h.push(y),y=y+$+x),e.virtualSize+=$+x,E=$,C+=1}}if(e.virtualSize=Math.max(e.virtualSize,r)+g,n&&l&&("slide"===a.effect||"coverflow"===a.effect)&&i.css({width:`${e.virtualSize+a.spaceBetween}px`}),a.setWrapperSize&&i.css({[t("width")]:`${e.virtualSize+a.spaceBetween}px`}),T&&e.grid.updateWrapperSize($,u,t),!a.centeredSlides){const t=[];for(let s=0;s<u.length;s+=1){let i=u[s];a.roundLengths&&(i=Math.floor(i)),u[s]<=e.virtualSize-r&&t.push(i)}u=t,Math.floor(e.virtualSize-r)-Math.floor(u[u.length-1])>1&&u.push(e.virtualSize-r)}if(0===u.length&&(u=[0]),0!==a.spaceBetween){const s=e.isHorizontal()&&n?"marginLeft":t("marginRight");c.filter(((e,t)=>!a.cssMode||t!==c.length-1)).css({[s]:`${x}px`})}if(a.centeredSlides&&a.centeredSlidesBounds){let e=0;m.forEach((t=>{e+=t+(a.spaceBetween?a.spaceBetween:0)})),e-=a.spaceBetween;const t=e-r;u=u.map((e=>e<0?-f:e>t?t+g:e))}if(a.centerInsufficientSlides){let e=0;if(m.forEach((t=>{e+=t+(a.spaceBetween?a.spaceBetween:0)})),e-=a.spaceBetween,e<r){const t=(r-e)/2;u.forEach(((e,s)=>{u[s]=e-t})),h.forEach(((e,s)=>{h[s]=e+t}))}}if(Object.assign(e,{slides:c,snapGrid:u,slidesGrid:h,slidesSizesGrid:m}),a.centeredSlides&&a.cssMode&&!a.centeredSlidesBounds){v(e.wrapperEl,"--swiper-centered-offset-before",-u[0]+"px"),v(e.wrapperEl,"--swiper-centered-offset-after",e.size/2-m[m.length-1]/2+"px");const t=-e.snapGrid[0],s=-e.slidesGrid[0];e.snapGrid=e.snapGrid.map((e=>e+t)),e.slidesGrid=e.slidesGrid.map((e=>e+s))}if(p!==d&&e.emit("slidesLengthChange"),u.length!==w&&(e.params.watchOverflow&&e.checkOverflow(),e.emit("snapGridLengthChange")),h.length!==b&&e.emit("slidesGridLengthChange"),a.watchSlidesProgress&&e.updateSlidesOffset(),!(o||a.cssMode||"slide"!==a.effect&&"fade"!==a.effect)){const t=`${a.containerModifierClass}backface-hidden`,s=e.$el.hasClass(t);p<=a.maxBackfaceHiddenSlides?s||e.$el.addClass(t):s&&e.$el.removeClass(t)}},updateAutoHeight:function(e){const t=this,s=[],a=t.virtual&&t.params.virtual.enabled;let i,r=0;"number"==typeof e?t.setTransition(e):!0===e&&t.setTransition(t.params.speed);const n=e=>a?t.slides.filter((t=>parseInt(t.getAttribute("data-swiper-slide-index"),10)===e))[0]:t.slides.eq(e)[0];if("auto"!==t.params.slidesPerView&&t.params.slidesPerView>1)if(t.params.centeredSlides)(t.visibleSlides||d([])).each((e=>{s.push(e)}));else for(i=0;i<Math.ceil(t.params.slidesPerView);i+=1){const e=t.activeIndex+i;if(e>t.slides.length&&!a)break;s.push(n(e))}else s.push(n(t.activeIndex));for(i=0;i<s.length;i+=1)if(void 0!==s[i]){const e=s[i].offsetHeight;r=e>r?e:r}(r||0===r)&&t.$wrapperEl.css("height",`${r}px`)},updateSlidesOffset:function(){const e=this,t=e.slides;for(let s=0;s<t.length;s+=1)t[s].swiperSlideOffset=e.isHorizontal()?t[s].offsetLeft:t[s].offsetTop},updateSlidesProgress:function(e){void 0===e&&(e=this&&this.translate||0);const t=this,s=t.params,{slides:a,rtlTranslate:i,snapGrid:r}=t;if(0===a.length)return;void 0===a[0].swiperSlideOffset&&t.updateSlidesOffset();let n=-e;i&&(n=e),a.removeClass(s.slideVisibleClass),t.visibleSlidesIndexes=[],t.visibleSlides=[];for(let e=0;e<a.length;e+=1){const l=a[e];let o=l.swiperSlideOffset;s.cssMode&&s.centeredSlides&&(o-=a[0].swiperSlideOffset);const d=(n+(s.centeredSlides?t.minTranslate():0)-o)/(l.swiperSlideSize+s.spaceBetween),c=(n-r[0]+(s.centeredSlides?t.minTranslate():0)-o)/(l.swiperSlideSize+s.spaceBetween),p=-(n-o),u=p+t.slidesSizesGrid[e];(p>=0&&p<t.size-1||u>1&&u<=t.size||p<=0&&u>=t.size)&&(t.visibleSlides.push(l),t.visibleSlidesIndexes.push(e),a.eq(e).addClass(s.slideVisibleClass)),l.progress=i?-d:d,l.originalProgress=i?-c:c}t.visibleSlides=d(t.visibleSlides)},updateProgress:function(e){const t=this;if(void 0===e){const s=t.rtlTranslate?-1:1;e=t&&t.translate&&t.translate*s||0}const s=t.params,a=t.maxTranslate()-t.minTranslate();let{progress:i,isBeginning:r,isEnd:n}=t;const l=r,o=n;0===a?(i=0,r=!0,n=!0):(i=(e-t.minTranslate())/a,r=i<=0,n=i>=1),Object.assign(t,{progress:i,isBeginning:r,isEnd:n}),(s.watchSlidesProgress||s.centeredSlides&&s.autoHeight)&&t.updateSlidesProgress(e),r&&!l&&t.emit("reachBeginning toEdge"),n&&!o&&t.emit("reachEnd toEdge"),(l&&!r||o&&!n)&&t.emit("fromEdge"),t.emit("progress",i)},updateSlidesClasses:function(){const e=this,{slides:t,params:s,$wrapperEl:a,activeIndex:i,realIndex:r}=e,n=e.virtual&&s.virtual.enabled;let l;t.removeClass(`${s.slideActiveClass} ${s.slideNextClass} ${s.slidePrevClass} ${s.slideDuplicateActiveClass} ${s.slideDuplicateNextClass} ${s.slideDuplicatePrevClass}`),l=n?e.$wrapperEl.find(`.${s.slideClass}[data-swiper-slide-index="${i}"]`):t.eq(i),l.addClass(s.slideActiveClass),s.loop&&(l.hasClass(s.slideDuplicateClass)?a.children(`.${s.slideClass}:not(.${s.slideDuplicateClass})[data-swiper-slide-index="${r}"]`).addClass(s.slideDuplicateActiveClass):a.children(`.${s.slideClass}.${s.slideDuplicateClass}[data-swiper-slide-index="${r}"]`).addClass(s.slideDuplicateActiveClass));let o=l.nextAll(`.${s.slideClass}`).eq(0).addClass(s.slideNextClass);s.loop&&0===o.length&&(o=t.eq(0),o.addClass(s.slideNextClass));let d=l.prevAll(`.${s.slideClass}`).eq(0).addClass(s.slidePrevClass);s.loop&&0===d.length&&(d=t.eq(-1),d.addClass(s.slidePrevClass)),s.loop&&(o.hasClass(s.slideDuplicateClass)?a.children(`.${s.slideClass}:not(.${s.slideDuplicateClass})[data-swiper-slide-index="${o.attr("data-swiper-slide-index")}"]`).addClass(s.slideDuplicateNextClass):a.children(`.${s.slideClass}.${s.slideDuplicateClass}[data-swiper-slide-index="${o.attr("data-swiper-slide-index")}"]`).addClass(s.slideDuplicateNextClass),d.hasClass(s.slideDuplicateClass)?a.children(`.${s.slideClass}:not(.${s.slideDuplicateClass})[data-swiper-slide-index="${d.attr("data-swiper-slide-index")}"]`).addClass(s.slideDuplicatePrevClass):a.children(`.${s.slideClass}.${s.slideDuplicateClass}[data-swiper-slide-index="${d.attr("data-swiper-slide-index")}"]`).addClass(s.slideDuplicatePrevClass)),e.emitSlidesClasses()},updateActiveIndex:function(e){const t=this,s=t.rtlTranslate?t.translate:-t.translate,{slidesGrid:a,snapGrid:i,params:r,activeIndex:n,realIndex:l,snapIndex:o}=t;let d,c=e;if(void 0===c){for(let e=0;e<a.length;e+=1)void 0!==a[e+1]?s>=a[e]&&s<a[e+1]-(a[e+1]-a[e])/2?c=e:s>
1157=a[e]&&s<a[e+1]&&(c=e+1):s>=a[e]&&(c=e);r.normalizeSlideIndex&&(c<0||void 0===c)&&(c=0)}if(i.indexOf(s)>=0)d=i.indexOf(s);else{const e=Math.min(r.slidesPerGroupSkip,c);d=e+Math.floor((c-e)/r.slidesPerGroup)}if(d>=i.length&&(d=i.length-1),c===n)return void(d!==o&&(t.snapIndex=d,t.emit("snapIndexChange")));const p=parseInt(t.slides.eq(c).attr("data-swiper-slide-index")||c,10);Object.assign(t,{snapIndex:d,realIndex:p,previousIndex:n,activeIndex:c}),t.emit("activeIndexChange"),t.emit("snapIndexChange"),l!==p&&t.emit("realIndexChange"),(t.initialized||t.params.runCallbacksOnInit)&&t.emit("slideChange")},updateClickedSlide:function(e){const t=this,s=t.params,a=d(e).closest(`.${s.slideClass}`)[0];let i,r=!1;if(a)for(let e=0;e<t.slides.length;e+=1)if(t.slides[e]===a){r=!0,i=e;break}if(!a||!r)return t.clickedSlide=void 0,void(t.clickedIndex=void 0);t.clickedSlide=a,t.virtual&&t.params.virtual.enabled?t.clickedIndex=parseInt(d(a).attr("data-swiper-slide-index"),10):t.clickedIndex=i,s.slideToClickedSlide&&void 0!==t.clickedIndex&&t.clickedIndex!==t.activeIndex&&t.slideToClickedSlide()}};var M={getTranslate:function(e){void 0===e&&(e=this.isHorizontal()?"x":"y");const{params:t,rtlTranslate:s,translate:a,$wrapperEl:i}=this;if(t.virtualTranslate)return s?-a:a;if(t.cssMode)return a;let r=h(i[0],e);return s&&(r=-r),r||0},setTranslate:function(e,t){const s=this,{rtlTranslate:a,params:i,$wrapperEl:r,wrapperEl:n,progress:l}=s;let o,d=0,c=0;s.isHorizontal()?d=a?-e:e:c=e,i.roundLengths&&(d=Math.floor(d),c=Math.floor(c)),i.cssMode?n[s.isHorizontal()?"scrollLeft":"scrollTop"]=s.isHorizontal()?-d:-c:i.virtualTranslate||r.transform(`translate3d(${d}px, ${c}px, 0px)`),s.previousTranslate=s.translate,s.translate=s.isHorizontal()?d:c;const p=s.maxTranslate()-s.minTranslate();o=0===p?0:(e-s.minTranslate())/p,o!==l&&s.updateProgress(e),s.emit("setTranslate",s.translate,t)},minTranslate:function(){return-this.snapGrid[0]},maxTranslate:function(){return-this.snapGrid[this.snapGrid.length-1]},translateTo:function(e,t,s,a,i){void 0===e&&(e=0),void 0===t&&(t=this.params.speed),void 0===s&&(s=!0),void 0===a&&(a=!0);const r=this,{params:n,wrapperEl:l}=r;if(r.animating&&n.preventInteractionOnTransition)return!1;const o=r.minTranslate(),d=r.maxTranslate();let c;if(c=a&&e>o?o:a&&e<d?d:e,r.updateProgress(c),n.cssMode){const e=r.isHorizontal();if(0===t)l[e?"scrollLeft":"scrollTop"]=-c;else{if(!r.support.smoothScroll)return w({swiper:r,targetPosition:-c,side:e?"left":"top"}),!0;l.scrollTo({[e?"left":"top"]:-c,behavior:"smooth"})}return!0}return 0===t?(r.setTransition(0),r.setTranslate(c),s&&(r.emit("beforeTransitionStart",t,i),r.emit("transitionEnd"))):(r.setTransition(t),r.setTranslate(c),s&&(r.emit("beforeTransitionStart",t,i),r.emit("transitionStart")),r.animating||(r.animating=!0,r.onTranslateToWrapperTransitionEnd||(r.onTranslateToWrapperTransitionEnd=function(e){r&&!r.destroyed&&e.target===this&&(r.$wrapperEl[0].removeEventListener("transitionend",r.onTranslateToWrapperTransitionEnd),r.$wrapperEl[0].removeEventListener("webkitTransitionEnd",r.onTranslateToWrapperTransitionEnd),r.onTranslateToWrapperTransitionEnd=null,delete r.onTranslateToWrapperTransitionEnd,s&&r.emit("transitionEnd"))}),r.$wrapperEl[0].addEventListener("transitionend",r.onTranslateToWrapperTransitionEnd),r.$wrapperEl[0].addEventListener("webkitTransitionEnd",r.onTranslateToWrapperTransitionEnd))),!0}};function P(e){let{swiper:t,runCallbacks:s,direction:a,step:i}=e;const{activeIndex:r,previousIndex:n}=t;let l=a;if(l||(l=r>n?"next":r<n?"prev":"reset"),t.emit(`transition${i}`),s&&r!==n){if("reset"===l)return void t.emit(`slideResetTransition${i}`);t.emit(`slideChangeTransition${i}`),"next"===l?t.emit(`slideNextTransition${i}`):t.emit(`slidePrevTransition${i}`)}}var k={slideTo:function(e,t,s,a,i){if(void 0===e&&(e=0),void 0===t&&(t=this.params.speed),void 0===s&&(s=!0),"number"!=typeof e&&"string"!=typeof e)throw new Error(`The 'index' argument cannot have type other than 'number' or 'string'. [${typeof e}] given.`);if("string"==typeof e){const t=parseInt(e,10);if(!isFinite(t))throw new Error(`The passed-in 'index' (string) couldn't be converted to 'number'. [${e}] given.`);e=t}const r=this;let n=e;n<0&&(n=0);const{params:l,snapGrid:o,slidesGrid:d,previousIndex:c,activeIndex:p,rtlTranslate:u,wrapperEl:h,enabled:m}=r;if(r.animating&&l.preventInteractionOnTransition||!m&&!a&&!i)return!1;const f=Math.min(r.params.slidesPerGroupSkip,n);let g=f+Math.floor((n-f)/r.params.slidesPerGroup);g>=o.length&&(g=o.length-1),(p||l.initialSlide||0)===(c||0)&&s&&r.emit("beforeSlideChangeStart");const v=-o[g];if(r.updateProgress(v),l.normalizeSlideIndex)for(let e=0;e<d.length;e+=1){const t=-Math.floor(100*v),s=Math.floor(100*d[e]),a=Math.floor(100*d[e+1]);void 0!==d[e+1]?t>=s&&t<a-(a-s)/2?n=e:t>=s&&t<a&&(n=e+1):t>=s&&(n=e)}if(r.initialized&&n!==p){if(!r.allowSlideNext&&v<r.translate&&v<r.minTranslate())return!1;if(!r.allowSlidePrev&&v>r.translate&&v>r.maxTranslate()&&(p||0)!==n)return!1}let b;if(b=n>p?"next":n<p?"prev":"reset",u&&-v===r.translate||!u&&v===r.translate)return r.updateActiveIndex(n),l.autoHeight&&r.updateAutoHeight(),r.updateSlidesClasses(),"slide"!==l.effect&&r.setTranslate(v),"reset"!==b&&(r.transitionStart(s,b),r.transitionEnd(s,b)),!1;
1157if(l.cssMode){const e=r.isHorizontal(),s=u?v:-v;if(0===t){const t=r.virtual&&r.params.virtual.enabled;t&&(r.wrapperEl.style.scrollSnapType="none",r._immediateVirtual=!0),h[e?"scrollLeft":"scrollTop"]=s,t&&requestAnimationFrame((()=>{r.wrapperEl.style.scrollSnapType="",r._swiperImmediateVirtual=!1}))}else{if(!r.support.smoothScroll)return w({swiper:r,targetPosition:s,side:e?"left":"top"}),!0;h.scrollTo({[e?"left":"top"]:s,behavior:"smooth"})}return!0}return r.setTransition(t),r.setTranslate(v),r.updateActiveIndex(n),r.updateSlidesClasses(),r.emit("beforeTransitionStart",t,a),r.transitionStart(s,b),0===t?r.transitionEnd(s,b):r.animating||(r.animating=!0,r.onSlideToWrapperTransitionEnd||(r.onSlideToWrapperTransitionEnd=function(e){r&&!r.destroyed&&e.target===this&&(r.$wrapperEl[0].removeEventListener("transitionend",r.onSlideToWrapperTransitionEnd),r.$wrapperEl[0].removeEventListener("webkitTransitionEnd",r.onSlideToWrapperTransitionEnd),r.onSlideToWrapperTransitionEnd=null,delete r.onSlideToWrapperTransitionEnd,r.transitionEnd(s,b))}),r.$wrapperEl[0].addEventListener("transitionend",r.onSlideToWrapperTransitionEnd),r.$wrapperEl[0].addEventListener("webkitTransitionEnd",r.onSlideToWrapperTransitionEnd)),!0},slideToLoop:function(e,t,s,a){if(void 0===e&&(e=0),void 0===t&&(t=this.params.speed),void 0===s&&(s=!0),"string"==typeof e){const t=parseInt(e,10);if(!isFinite(t))throw new Error(`The passed-in 'index' (string) couldn't be converted to 'number'. [${e}] given.`);e=t}const i=this;let r=e;return i.params.loop&&(r+=i.loopedSlides),i.slideTo(r,t,s,a)},slideNext:function(e,t,s){void 0===e&&(e=this.params.speed),void 0===t&&(t=!0);const a=this,{animating:i,enabled:r,params:n}=a;if(!r)return a;let l=n.slidesPerGroup;"auto"===n.slidesPerView&&1===n.slidesPerGroup&&n.slidesPerGroupAuto&&(l=Math.max(a.slidesPerViewDynamic("current",!0),1));const o=a.activeIndex<n.slidesPerGroupSkip?1:l;if(n.loop){if(i&&n.loopPreventsSlide)return!1;a.loopFix(),a._clientLeft=a.$wrapperEl[0].clientLeft}return n.rewind&&a.isEnd?a.slideTo(0,e,t,s):a.slideTo(a.activeIndex+o,e,t,s)},slidePrev:function(e,t,s){void 0===e&&(e=this.params.speed),void 0===t&&(t=!0);const a=this,{params:i,animating:r,snapGrid:n,slidesGrid:l,rtlTranslate:o,enabled:d}=a;if(!d)return a;if(i.loop){if(r&&i.loopPreventsSlide)return!1;a.loopFix(),a._clientLeft=a.$wrapperEl[0].clientLeft}function c(e){return e<0?-Math.floor(Math.abs(e)):Math.floor(e)}const p=c(o?a.translate:-a.translate),u=n.map((e=>c(e)));let h=n[u.indexOf(p)-1];if(void 0===h&&i.cssMode){let e;
1157n.forEach(((t,s)=>{p>=t&&(e=s)})),void 0!==e&&(h=n[e>0?e-1:e])}let m=0;if(void 0!==h&&(m=l.indexOf(h),m<0&&(m=a.activeIndex-1),"auto"===i.slidesPerView&&1===i.slidesPerGroup&&i.slidesPerGroupAuto&&(m=m-a.slidesPerViewDynamic("previous",!0)+1,m=Math.max(m,0))),i.rewind&&a.isBeginning){const i=a.params.virtual&&a.params.virtual.enabled&&a.virtual?a.virtual.slides.length-1:a.slides.length-1;return a.slideTo(i,e,t,s)}return a.slideTo(m,e,t,s)},slideReset:function(e,t,s){return void 0===e&&(e=this.params.speed),void 0===t&&(t=!0),this.slideTo(this.activeIndex,e,t,s)},slideToClosest:function(e,t,s,a){void 0===e&&(e=this.params.speed),void 0===t&&(t=!0),void 0===a&&(a=.5);const i=this;let r=i.activeIndex;const n=Math.min(i.params.slidesPerGroupSkip,r),l=n+Math.floor((r-n)/i.params.slidesPerGroup),o=i.rtlTranslate?i.translate:-i.translate;if(o>=i.snapGrid[l]){const e=i.snapGrid[l];o-e>(i.snapGrid[l+1]-e)*a&&(r+=i.params.slidesPerGroup)}else{const e=i.snapGrid[l-1];o-e<=(i.snapGrid[l]-e)*a&&(r-=i.params.slidesPerGroup)}return r=Math.max(r,0),r=Math.min(r,i.slidesGrid.length-1),i.slideTo(r,e,t,s)},slideToClickedSlide:function(){const e=this,{params:t,$wrapperEl:s}=e,a="auto"===t.slidesPerView?e.slidesPerViewDynamic():t.slidesPerView;let i,r=e.clickedIndex;if(t.loop){if(e.animating)return;i=parseInt(d(e.clickedSlide).attr("data-swiper-slide-index"),10),t.centeredSlides?r<e.loopedSlides-a/2||r>e.slides.length-e.loopedSlides+a/2?(e.loopFix(),r=s.children(`.${t.slideClass}[data-swiper-slide-index="${i}"]:not(.${t.slideDuplicateClass})`).eq(0).index(),p((()=>{e.slideTo(r)}))):e.slideTo(r):r>e.slides.length-a?(e.loopFix(),r=s.children(`.${t.slideClass}[data-swiper-slide-index="${i}"]:not(.${t.slideDuplicateClass})`).eq(0).index(),p((()=>{e.slideTo(r)}))):e.slideTo(r)}else e.slideTo(r)}};var z={loopCreate:function(){const e=this,t=a(),{params:s,$wrapperEl:i}=e,r=i.children().length>0?d(i.children()[0].parentNode):i;r.children(`.${s.slideClass}.${s.slideDuplicateClass}`).remove();let n=r.children(`.${s.slideClass}`);if(s.loopFillGroupWithBlank){const e=s.slidesPerGroup-n.length%s.slidesPerGroup;if(e!==s.slidesPerGroup){for(let a=0;a<e;a+=1){const e=d(t.createElement("div")).addClass(`${s.slideClass} ${s.slideBlankClass}`);r.append(e)}n=r.children(`.${s.slideClass}`)}}"auto"!==s.slidesPerView||s.loopedSlides||(s.loopedSlides=n.length),e.loopedSlides=Math.ceil(parseFloat(s.loopedSlides||s.slidesPerView,10)),e.loopedSlides+=s.loopAdditionalSlides,e.loopedSlides>n.length&&(e.loopedSlides=n.length);const l=[],o=[];n.each(((t,s)=>{const a=d(t);s<e.loopedSlides&&o.push(t),s<n.length&&s>=n.length-e.loopedSlides&&l.push(t),a.attr("data-swiper-slide-index",s)}));for(let e=0;e<o.length;e+=1)r.append(d(o[e].cloneNode(!0)).addClass(s.slideDuplicateClass));for(let e=l.length-1;e>=0;e-=1)r.prepend(d(l[e].cloneNode(!0)).addClass(s.slideDuplicateClass))},loopFix:function(){const e=this;e.emit("beforeLoopFix");const{activeIndex:t,slides:s,loopedSlides:a,allowSlidePrev:i,allowSlideNext:r,snapGrid:n,rtlTranslate:l}=e;let o;e.allowSlidePrev=!0,e.allowSlideNext=!0;const d=-n[t]-e.getTranslate();if(t<a){o=s.length-3*a+t,o+=a;e.slideTo(o,0,!1,!0)&&0!==d&&e.setTranslate((l?-e.translate:e.translate)-d)}else if(t>=s.length-a){o=-s.length+t+a,o+=a;e.slideTo(o,0,!1,!0)&&0!==d&&e.setTranslate((l?-e.translate:e.translate)-d)}e.allowSlidePrev=i,e.allowSlideNext=r,e.emit("loopFix")},loopDestroy:function(){const{$wrapperEl:e,params:t,slides:s}=this;e.children(`.${t.slideClass}.${t.slideDuplicateClass},.${t.slideClass}.${t.slideBlankClass}`).remove(),s.removeAttr("data-swiper-slide-index")}};function L(e){const t=this,s=a(),i=r(),n=t.touchEventsData,{params:l,touches:o,enabled:c}=t;if(!c)return;if(t.animating&&l.preventInteractionOnTransition)return;!t.animating&&l.cssMode&&l.loop&&t.loopFix();let p=e;p.originalEvent&&(p=p.originalEvent);let h=d(p.target);if("wrapper"===l.touchEventsTarget&&!h.closest(t.wrapperEl).length)return;if(n.isTouchEvent="touchstart"===p.type,!n.isTouchEvent&&"which"in p&&3===p.which)return;if(!n.isTouchEvent&&"button"in p&&p.button>0)return;if(n.isTouched&&n.isMoved)return;
1157!!l.noSwipingClass&&""!==l.noSwipingClass&&p.target&&p.target.shadowRoot&&e.path&&e.path[0]&&(h=d(e.path[0]));const m=l.noSwipingSelector?l.noSwipingSelector:`.${l.noSwipingClass}`,f=!(!p.target||!p.target.shadowRoot);if(l.noSwiping&&(f?function(e,t){return void 0===t&&(t=this),function t(s){if(!s||s===a()||s===r())return null;s.assignedSlot&&(s=s.assignedSlot);const i=s.closest(e);return i||s.getRootNode?i||t(s.getRootNode().host):null}(t)}(m,h[0]):h.closest(m)[0]))return void(t.allowClick=!0);if(l.swipeHandler&&!h.closest(l.swipeHandler)[0])return;o.currentX="touchstart"===p.type?p.targetTouches[0].pageX:p.pageX,o.currentY="touchstart"===p.type?p.targetTouches[0].pageY:p.pageY;const g=o.currentX,v=o.currentY,w=l.edgeSwipeDetection||l.iOSEdgeSwipeDetection,b=l.edgeSwipeThreshold||l.iOSEdgeSwipeThreshold;if(w&&(g<=b||g>=i.innerWidth-b)){if("prevent"!==w)return;e.preventDefault()}if(Object.assign(n,{isTouched:!0,isMoved:!1,allowTouchCallbacks:!0,isScrolling:void 0,startMoving:void 0}),o.startX=g,o.startY=v,n.touchStartTime=u(),t.allowClick=!0,t.updateSize(),t.swipeDirection=void 0,l.threshold>0&&(n.allowThresholdMove=!1),"touchstart"!==p.type){let e=!0;h.is(n.focusableElements)&&(e=!1,"SELECT"===h[0].nodeName&&(n.isTouched=!1)),s.activeElement&&d(s.activeElement).is(n.focusableElements)&&s.activeElement!==h[0]&&s.activeElement.blur();const a=e&&t.allowTouchMove&&l.touchStartPreventDefault;!l.touchStartForcePreventDefault&&!a||h[0].isContentEditable||p.preventDefault()}t.params.freeMode&&t.params.freeMode.enabled&&t.freeMode&&t.animating&&!l.cssMode&&t.freeMode.onTouchStart(),t.emit("touchStart",p)}function O(e){const t=a(),s=this,i=s.touchEventsData,{params:r,touches:n,rtlTranslate:l,enabled:o}=s;if(!o)return;let c=e;if(c.originalEvent&&(c=c.originalEvent),!i.isTouched)return void(i.startMoving&&i.isScrolling&&s.emit("touchMoveOpposite",c));if(i.isTouchEvent&&"touchmove"!==c.type)return;const p="touchmove"===c.type&&c.targetTouches&&(c.targetTouches[0]||c.changedTouches[0]),h="touchmove"===c.type?p.pageX:c.pageX,m="touchmove"===c.type?p.pageY:c.pageY;if(c.preventedByNestedSwiper)return n.startX=h,void(n.startY=m);if(!s.allowTouchMove)return d(c.target).is(i.focusableElements)||(s.allowClick=!1),void(i.isTouched&&(Object.assign(n,{startX:h,startY:m,currentX:h,currentY:m}),i.touchStartTime=u()));if(i.isTouchEvent&&r.touchReleaseOnEdges&&!r.loop)if(s.isVertical()){if(m<n.startY&&s.translate<=s.maxTranslate()||m>n.startY&&s.translate>=s.minTranslate())return i.isTouched=!1,void(i.isMoved=!1)}else if(h<n.startX&&s.translate<=s.maxTranslate()||h>n.startX&&s.translate>=s.minTranslate())return;if(i.isTouchEvent&&t.activeElement&&c.target===t.activeElement&&d(c.target).is(i.focusableElements))return i.isMoved=!0,void(s.allowClick=!1);if(i.allowTouchCallbacks&&s.emit("touchMove",c),c.targetTouches&&c.targetTouches.length>1)return;n.currentX=h,n.currentY=m;const f=n.currentX-n.startX,g=n.currentY-n.startY;if(s.params.threshold&&Math.sqrt(f**2+g**2)<s.params.threshold)return;if(void 0===i.isScrolling){let e;s.isHorizontal()&&n.currentY===n.startY||s.isVertical()&&n.currentX===n.startX?i.isScrolling=!1:f*f+g*g>=25&&(e=180*Math.atan2(Math.abs(g),Math.abs(f))/Math.PI,i.isScrolling=s.isHorizontal()?e>r.touchAngle:90-e>r.touchAngle)}if(i.isScrolling&&s.emit("touchMoveOpposite",c),void 0===i.startMoving&&(n.currentX===n.startX&&n.currentY===n.startY||(i.startMoving=!0)),i.isScrolling)return void(i.isTouched=!1);if(!i.startMoving)return;s.allowClick=!1,!r.cssMode&&c.cancelable&&c.preventDefault(),r.touchMoveStopPropagation&&!r.nested&&c.stopPropagation(),i.isMoved||(r.loop&&!r.cssMode&&s.loopFix(),i.startTranslate=s.getTranslate(),s.setTransition(0),s.animating&&s.$wrapperEl.trigger("webkitTransitionEnd transitionend"),i.allowMomentumBounce=!1,!r.grabCursor||!0!==s.allowSlideNext&&!0!==s.allowSlidePrev||s.setGrabCursor(!0),s.emit("sliderFirstMove",c)),s.emit("sliderMove",c),i.isMoved=!0;let v=s.isHorizontal()?f:g;n.diff=v,v*=r.touchRatio,l&&(v=-v),s.swipeDirection=v>0?"prev":"next",i.currentTranslate=v+i.startTranslate;let w=!0,b=r.resistanceRatio;if(r.touchReleaseOnEdges&&(b=0),v>0&&i.currentTranslate>s.minTranslate()?(w=!1,r.resistance&&(i.currentTranslate=s.minTranslate()-1+(-s.minTranslate()+i.startTranslate+v)**b)):v<0&&i.currentTranslate<s.maxTranslate()&&(w=!1,r.resistance&&(i.currentTranslate=s.maxTranslate()+1-(s.maxTranslate()-i.startTranslate-v)**b)),w&&(c.preventedByNestedSwiper=!0),!s.allowSlideNext&&"next"===s.swipeDirection&&i.currentTranslate<i.startTranslate&&(i.currentTranslate=i.startTranslate),!s.allowSlidePrev&&"prev"===s.swipeDirection&&i.currentTranslate>i.startTranslate&&(i.currentTranslate=i.startTranslate),s.allowSlidePrev||s.allowSlideNext||(i.currentTranslate=i.startTranslate),r.threshold>0){if(!(Math.abs(v)>r.threshold||i.allowThresholdMove))return void(i.currentTranslate=i.startTranslate);
1157if(!i.allowThresholdMove)return i.allowThresholdMove=!0,n.startX=n.currentX,n.startY=n.currentY,i.currentTranslate=i.startTranslate,void(n.diff=s.isHorizontal()?n.currentX-n.startX:n.currentY-n.startY)}r.followFinger&&!r.cssMode&&((r.freeMode&&r.freeMode.enabled&&s.freeMode||r.watchSlidesProgress)&&(s.updateActiveIndex(),s.updateSlidesClasses()),s.params.freeMode&&r.freeMode.enabled&&s.freeMode&&s.freeMode.onTouchMove(),s.updateProgress(i.currentTranslate),s.setTranslate(i.currentTranslate))}function I(e){const t=this,s=t.touchEventsData,{params:a,touches:i,rtlTranslate:r,slidesGrid:n,enabled:l}=t;if(!l)return;let o=e;if(o.originalEvent&&(o=o.originalEvent),s.allowTouchCallbacks&&t.emit("touchEnd",o),s.allowTouchCallbacks=!1,!s.isTouched)return s.isMoved&&a.grabCursor&&t.setGrabCursor(!1),s.isMoved=!1,void(s.startMoving=!1);a.grabCursor&&s.isMoved&&s.isTouched&&(!0===t.allowSlideNext||!0===t.allowSlidePrev)&&t.setGrabCursor(!1);const d=u(),c=d-s.touchStartTime;if(t.allowClick){const e=o.path||o.composedPath&&o.composedPath();t.updateClickedSlide(e&&e[0]||o.target),t.emit("tap click",o),c<300&&d-s.lastClickTime<300&&t.emit("doubleTap doubleClick",o)}if(s.lastClickTime=u(),p((()=>{t.destroyed||(t.allowClick=!0)})),!s.isTouched||!s.isMoved||!t.swipeDirection||0===i.diff||s.currentTranslate===s.startTranslate)return s.isTouched=!1,s.isMoved=!1,void(s.startMoving=!1);let h;if(s.isTouched=!1,s.isMoved=!1,s.startMoving=!1,h=a.followFinger?r?t.translate:-t.translate:-s.currentTranslate,a.cssMode)return;if(t.params.freeMode&&a.freeMode.enabled)return void t.freeMode.onTouchEnd({currentPos:h});let m=0,f=t.slidesSizesGrid[0];for(let e=0;e<n.length;e+=e<a.slidesPerGroupSkip?1:a.slidesPerGroup){const t=e<a.slidesPerGroupSkip-1?1:a.slidesPerGroup;void 0!==n[e+t]?h>=n[e]&&h<n[e+t]&&(m=e,f=n[e+t]-n[e]):h>=n[e]&&(m=e,f=n[n.length-1]-n[n.length-2])}let g=null,v=null;a.rewind&&(t.isBeginning?v=t.params.virtual&&t.params.virtual.enabled&&t.virtual?t.virtual.slides.length-1:t.slides.length-1:t.isEnd&&(g=0));const w=(h-n[m])/f,b=m<a.slidesPerGroupSkip-1?1:a.slidesPerGroup;if(c>a.longSwipesMs){if(!a.longSwipes)return void t.slideTo(t.activeIndex);"next"===t.swipeDirection&&(w>=a.longSwipesRatio?t.slideTo(a.rewind&&t.isEnd?g:m+b):t.slideTo(m)),"prev"===t.swipeDirection&&(w>1-a.longSwipesRatio?t.slideTo(m+b):null!==v&&w<0&&Math.abs(w)>a.longSwipesRatio?t.slideTo(v):t.slideTo(m))}else{if(!a.shortSwipes)return void t.slideTo(t.activeIndex);t.navigation&&(o.target===t.navigation.nextEl||o.target===t.navigation.prevEl)?o.target===t.navigation.nextEl?t.slideTo(m+b):t.slideTo(m):("next"===t.swipeDirection&&t.slideTo(null!==g?g:m+b),"prev"===t.swipeDirection&&t.slideTo(null!==v?v:m))}}function A(){const e=this,{params:t,el:s}=e;if(s&&0===s.offsetWidth)return;t.breakpoints&&e.setBreakpoint();const{allowSlideNext:a,allowSlidePrev:i,snapGrid:r}=e;e.allowSlideNext=!0,e.allowSlidePrev=!0,e.updateSize(),e.updateSlides(),e.updateSlidesClasses(),("auto"===t.slidesPerView||t.slidesPerView>1)&&e.isEnd&&!e.isBeginning&&!e.params.centeredSlides?e.slideTo(e.slides.length-1,0,!1,!0):e.slideTo(e.activeIndex,0,!1,!0),e.autoplay&&e.autoplay.running&&e.autoplay.paused&&e.autoplay.run(),e.allowSlidePrev=i,e.allowSlideNext=a,e.params.watchOverflow&&r!==e.snapGrid&&e.checkOverflow()}function D(e){const t=this;t.enabled&&(t.allowClick||(t.params.preventClicks&&e.preventDefault(),t.params.preventClicksPropagation&&t.animating&&(e.stopPropagation(),e.stopImmediatePropagation())))}function G(){const e=this,{wrapperEl:t,rtlTranslate:s,enabled:a}=e;if(!a)return;let i;e.previousTranslate=e.translate,e.isHorizontal()?e.translate=-t.scrollLeft:e.translate=-t.scrollTop,0===e.translate&&(e.translate=0),e.updateActiveIndex(),e.updateSlidesClasses();const r=e.maxTranslate()-e.minTranslate();i=0===r?0:(e.translate-e.minTranslate())/r,i!==e.progress&&e.updateProgress(s?-e.translate:e.translate),e.emit("setTranslate",e.translate,!1)}let N=!1;function B(){}const H=(e,t)=>{const s=a(),{params:i,touchEvents:r,el:n,wrapperEl:l,device:o,support:d}=e,c=!!i.nested,p="on"===t?"addEventListener":"removeEventListener",u=t;if(d.touch){const t=!("touchstart"!==r.start||!d.passiveListener||!i.passiveListeners)&&{passive:!0,capture:!1};
1157n[p](r.start,e.onTouchStart,t),n[p](r.move,e.onTouchMove,d.passiveListener?{passive:!1,capture:c}:c),n[p](r.end,e.onTouchEnd,t),r.cancel&&n[p](r.cancel,e.onTouchEnd,t)}else n[p](r.start,e.onTouchStart,!1),s[p](r.move,e.onTouchMove,c),s[p](r.end,e.onTouchEnd,!1);(i.preventClicks||i.preventClicksPropagation)&&n[p]("click",e.onClick,!0),i.cssMode&&l[p]("scroll",e.onScroll),i.updateOnWindowResize?e[u](o.ios||o.android?"resize orientationchange observerUpdate":"resize observerUpdate",A,!0):e[u]("observerUpdate",A,!0)};var X={attachEvents:function(){const e=this,t=a(),{params:s,support:i}=e;e.onTouchStart=L.bind(e),e.onTouchMove=O.bind(e),e.onTouchEnd=I.bind(e),s.cssMode&&(e.onScroll=G.bind(e)),e.onClick=D.bind(e),i.touch&&!N&&(t.addEventListener("touchstart",B),N=!0),H(e,"on")},detachEvents:function(){H(this,"off")}};const Y=(e,t)=>e.grid&&t.grid&&t.grid.rows>1;var R={addClasses:function(){const e=this,{classNames:t,params:s,rtl:a,$el:i,device:r,support:n}=e,l=function(e,t){const s=[];return e.forEach((e=>{"object"==typeof e?Object.keys(e).forEach((a=>{e[a]&&s.push(t+a)})):"string"==typeof e&&s.push(t+e)})),s}(["initialized",s.direction,{"pointer-events":!n.touch},{"free-mode":e.params.freeMode&&s.freeMode.enabled},{autoheight:s.autoHeight},{rtl:a},{grid:s.grid&&s.grid.rows>1},{"grid-column":s.grid&&s.grid.rows>1&&"column"===s.grid.fill},{android:r.android},{ios:r.ios},{"css-mode":s.cssMode},{centered:s.cssMode&&s.centeredSlides},{"watch-progress":s.watchSlidesProgress}],s.containerModifierClass);t.push(...l),i.addClass([...t].join(" ")),e.emitContainerClasses()},removeClasses:function(){const{$el:e,classNames:t}=this;e.removeClass(t.join(" ")),this.emitContainerClasses()}};var W={init:!0,direction:"horizontal",touchEventsTarget:"wrapper",initialSlide:0,speed:300,cssMode:!1,updateOnWindowResize:!0,resizeObserver:!0,nested:!1,createElements:!1,enabled:!0,focusableElements:"input, select, option, textarea, button, video, label",width:null,height:null,preventInteractionOnTransition:!1,userAgent:null,url:null,edgeSwipeDetection:!1,edgeSwipeThreshold:20,autoHeight:!1,setWrapperSize:!1,virtualTranslate:!1,effect:"slide",breakpoints:void 0,breakpointsBase:"window",spaceBetween:0,slidesPerView:1,slidesPerGroup:1,slidesPerGroupSkip:0,slidesPerGroupAuto:!1,centeredSlides:!1,centeredSlidesBounds:!1,slidesOffsetBefore:0,slidesOffsetAfter:0,normalizeSlideIndex:!0,centerInsufficientSlides:!1,watchOverflow:!0,roundLengths:!1,touchRatio:1,touchAngle:45,simulateTouch:!0,shortSwipes:!0,longSwipes:!0,longSwipesRatio:.5,longSwipesMs:300,followFinger:!0,allowTouchMove:!0,threshold:0,touchMoveStopPropagation:!1,touchStartPreventDefault:!0,touchStartForcePreventDefault:!1,touchReleaseOnEdges:!1,uniqueNavElements:!0,resistance:!0,resistanceRatio:.85,watchSlidesProgress:!1,grabCursor:!1,preventClicks:!0,preventClicksPropagation:!0,slideToClickedSlide:!1,preloadImages:!0,updateOnImagesReady:!0,loop:!1,loopAdditionalSlides:0,loopedSlides:null,loopFillGroupWithBlank:!1,loopPreventsSlide:!0,rewind:!1,allowSlidePrev:!0,allowSlideNext:!0,swipeHandler:null,noSwiping:!0,noSwipingClass:"swiper-no-swiping",noSwipingSelector:null,passiveListeners:!0,maxBackfaceHiddenSlides:10,containerModifierClass:"swiper-",slideClass:"swiper-slide",slideBlankClass:"swiper-slide-invisible-blank",slideActiveClass:"swiper-slide-active",slideDuplicateActiveClass:"swiper-slide-duplicate-active",slideVisibleClass:"swiper-slide-visible",slideDuplicateClass:"swiper-slide-duplicate",slideNextClass:"swiper-slide-next",slideDuplicateNextClass:"swiper-slide-duplicate-next",slidePrevClass:"swiper-slide-prev",slideDuplicatePrevClass:"swiper-slide-duplicate-prev",wrapperClass:"swiper-wrapper",runCallbacksOnInit:!0,_emitClasses:!1};function j(e,t){return function(s){void 0===s&&(s={});const a=Object.keys(s)[0],i=s[a];"object"==typeof i&&null!==i?(["navigation","pagination","scrollbar"].indexOf(a)>=0&&!0===e[a]&&(e[a]={auto:!0}),a in e&&"enabled"in i?(!0===e[a]&&(e[a]={enabled:!0}),"object"!=typeof e[a]||"enabled"in e[a]||(e[a].enabled=!0),e[a]||(e[a]={enabled:!1}),g(t,s)):g(t,s)):g(t,s)}}const _={eventsEmitter:$,update:S,translate:M,transition:{setTransition:function(e,t){const s=this;s.params.cssMode||s.$wrapperEl.transition(e),s.emit("setTransition",e,t)},transitionStart:function(e,t){void 0===e&&(e=!0);const s=this,{params:a}=s;a.cssMode||(a.autoHeight&&s.updateAutoHeight(),P({swiper:s,runCallbacks:e,direction:t,step:"Start"}))},transitionEnd:function(e,t){void 0===e&&(e=!0);const s=this,{params:a}=s;s.animating=!1,a.cssMode||(s.setTransition(0),P({swiper:s,runCallbacks:e,direction:t,step:"End"}))}},slide:k,loop:z,grabCursor:{setGrabCursor:function(e){const t=this;
1157if(t.support.touch||!t.params.simulateTouch||t.params.watchOverflow&&t.isLocked||t.params.cssMode)return;const s="container"===t.params.touchEventsTarget?t.el:t.wrapperEl;s.style.cursor="move",s.style.cursor=e?"grabbing":"grab"},unsetGrabCursor:function(){const e=this;e.support.touch||e.params.watchOverflow&&e.isLocked||e.params.cssMode||(e["container"===e.params.touchEventsTarget?"el":"wrapperEl"].style.cursor="")}},events:X,breakpoints:{setBreakpoint:function(){const e=this,{activeIndex:t,initialized:s,loopedSlides:a=0,params:i,$el:r}=e,n=i.breakpoints;if(!n||n&&0===Object.keys(n).length)return;const l=e.getBreakpoint(n,e.params.breakpointsBase,e.el);if(!l||e.currentBreakpoint===l)return;const o=(l in n?n[l]:void 0)||e.originalParams,d=Y(e,i),c=Y(e,o),p=i.enabled;d&&!c?(r.removeClass(`${i.containerModifierClass}grid ${i.containerModifierClass}grid-column`),e.emitContainerClasses()):!d&&c&&(r.addClass(`${i.containerModifierClass}grid`),(o.grid.fill&&"column"===o.grid.fill||!o.grid.fill&&"column"===i.grid.fill)&&r.addClass(`${i.containerModifierClass}grid-column`),e.emitContainerClasses()),["navigation","pagination","scrollbar"].forEach((t=>{const s=i[t]&&i[t].enabled,a=o[t]&&o[t].enabled;s&&!a&&e[t].disable(),!s&&a&&e[t].enable()}));const u=o.direction&&o.direction!==i.direction,h=i.loop&&(o.slidesPerView!==i.slidesPerView||u);u&&s&&e.changeDirection(),g(e.params,o);const m=e.params.enabled;Object.assign(e,{allowTouchMove:e.params.allowTouchMove,allowSlideNext:e.params.allowSlideNext,allowSlidePrev:e.params.allowSlidePrev}),p&&!m?e.disable():!p&&m&&e.enable(),e.currentBreakpoint=l,e.emit("_beforeBreakpoint",o),h&&s&&(e.loopDestroy(),e.loopCreate(),e.updateSlides(),e.slideTo(t-a+e.loopedSlides,0,!1)),e.emit("breakpoint",o)},getBreakpoint:function(e,t,s){if(void 0===t&&(t="window"),!e||"container"===t&&!s)return;let a=!1;const i=r(),n="window"===t?i.innerHeight:s.clientHeight,l=Object.keys(e).map((e=>{if("string"==typeof e&&0===e.indexOf("@")){const t=parseFloat(e.substr(1));return{value:n*t,point:e}}return{value:e,point:e}}));l.sort(((e,t)=>parseInt(e.value,10)-parseInt(t.value,10)));for(let e=0;e<l.length;e+=1){const{point:r,value:n}=l[e];"window"===t?i.matchMedia(`(min-width: ${n}px)`).matches&&(a=r):n<=s.clientWidth&&(a=r)}return a||"max"}},checkOverflow:{checkOverflow:function(){const e=this,{isLocked:t,params:s}=e,{slidesOffsetBefore:a}=s;if(a){const t=e.slides.length-1,s=e.slidesGrid[t]+e.slidesSizesGrid[t]+2*a;e.isLocked=e.size>s}else e.isLocked=1===e.snapGrid.length;!0===s.allowSlideNext&&(e.allowSlideNext=!e.isLocked),!0===s.allowSlidePrev&&(e.allowSlidePrev=!e.isLocked),t&&t!==e.isLocked&&(e.isEnd=!1),t!==e.isLocked&&e.emit(e.isLocked?"lock":"unlock")}},classes:R,images:{loadImage:function(e,t,s,a,i,n){const l=r();let o;function c(){n&&n()}d(e).parent("picture")[0]||e.complete&&i?c():t?(o=new l.Image,o.onload=c,o.onerror=c,a&&(o.sizes=a),s&&(o.srcset=s),t&&(o.src=t)):c()},preloadImages:function(){const e=this;function t(){null!=e&&e&&!e.destroyed&&(void 0!==e.imagesLoaded&&(e.imagesLoaded+=1),e.imagesLoaded===e.imagesToLoad.length&&(e.params.updateOnImagesReady&&e.update(),e.emit("imagesReady")))}e.imagesToLoad=e.$el.find("img");for(let s=0;s<e.imagesToLoad.length;s+=1){const a=e.imagesToLoad[s];e.loadImage(a,a.currentSrc||a.getAttribute("src"),a.srcset||a.getAttribute("srcset"),a.sizes||a.getAttribute("sizes"),!0,t)}}}},q={};class V{constructor(){let e,t;for(var s=arguments.length,a=new Array(s),i=0;i<s;i++)a[i]=arguments[i];if(1===a.length&&a[0].constructor&&"Object"===Object.prototype.toString.call(a[0]).slice(8,-1)?t=a[0]:[e,t]=a,t||(t={}),t=g({},t),e&&!t.el&&(t.el=e),t.el&&d(t.el).length>1){const e=[];return d(t.el).each((s=>{const a=g({},t,{el:s});e.push(new V(a))})),e}const r=this;r.__swiper__=!0,r.support=E(),r.device=C({userAgent:t.userAgent}),r.browser=T(),r.eventsListeners={},r.eventsAnyListeners=[],r.modules=[...r.__modules__],t.modules&&Array.isArray(t.modules)&&r.modules.push(...t.modules);const n={};r.modules.forEach((e=>{e({swiper:r,extendParams:j(t,n),on:r.on.bind(r),once:r.once.bind(r),off:r.off.bind(r),emit:r.emit.bind(r)})}));const l=g({},W,n);return r.params=g({},l,q,t),r.originalParams=g({},r.params),r.passedParams=g({}
1157,t),r.params&&r.params.on&&Object.keys(r.params.on).forEach((e=>{r.on(e,r.params.on[e])})),r.params&&r.params.onAny&&r.onAny(r.params.onAny),r.$=d,Object.assign(r,{enabled:r.params.enabled,el:e,classNames:[],slides:d(),slidesGrid:[],snapGrid:[],slidesSizesGrid:[],isHorizontal:()=>"horizontal"===r.params.direction,isVertical:()=>"vertical"===r.params.direction,activeIndex:0,realIndex:0,isBeginning:!0,isEnd:!1,translate:0,previousTranslate:0,progress:0,velocity:0,animating:!1,allowSlideNext:r.params.allowSlideNext,allowSlidePrev:r.params.allowSlidePrev,touchEvents:function(){const e=["touchstart","touchmove","touchend","touchcancel"],t=["pointerdown","pointermove","pointerup"];return r.touchEventsTouch={start:e[0],move:e[1],end:e[2],cancel:e[3]},r.touchEventsDesktop={start:t[0],move:t[1],end:t[2]},r.support.touch||!r.params.simulateTouch?r.touchEventsTouch:r.touchEventsDesktop}(),touchEventsData:{isTouched:void 0,isMoved:void 0,allowTouchCallbacks:void 0,touchStartTime:void 0,isScrolling:void 0,currentTranslate:void 0,startTranslate:void 0,allowThresholdMove:void 0,focusableElements:r.params.focusableElements,lastClickTime:u(),clickTimeout:void 0,velocities:[],allowMomentumBounce:void 0,isTouchEvent:void 0,startMoving:void 0},allowClick:!0,allowTouchMove:r.params.allowTouchMove,touches:{startX:0,startY:0,currentX:0,currentY:0,diff:0},imagesToLoad:[],imagesLoaded:0}),r.emit("_swiper"),r.params.init&&r.init(),r}enable(){const e=this;e.enabled||(e.enabled=!0,e.params.grabCursor&&e.setGrabCursor(),e.emit("enable"))}disable(){const e=this;e.enabled&&(e.enabled=!1,e.params.grabCursor&&e.unsetGrabCursor(),e.emit("disable"))}setProgress(e,t){const s=this;e=Math.min(Math.max(e,0),1);const a=s.minTranslate(),i=(s.maxTranslate()-a)*e+a;s.translateTo(i,void 0===t?0:t),s.updateActiveIndex(),s.updateSlidesClasses()}emitContainerClasses(){const e=this;if(!e.params._emitClasses||!e.el)return;const t=e.el.className.split(" ").filter((t=>0===t.indexOf("swiper")||0===t.indexOf(e.params.containerModifierClass)));e.emit("_containerClasses",t.join(" "))}getSlideClasses(e){const t=this;return t.destroyed?"":e.className.split(" ").filter((e=>0===e.indexOf("swiper-slide")||0===e.indexOf(t.params.slideClass))).join(" ")}emitSlidesClasses(){const e=this;if(!e.params._emitClasses||!e.el)return;const t=[];e.slides.each((s=>{const a=e.getSlideClasses(s);t.push({slideEl:s,classNames:a}),e.emit("_slideClass",s,a)})),e.emit("_slideClasses",t)}slidesPerViewDynamic(e,t){void 0===e&&(e="current"),void 0===t&&(t=!1);const{params:s,slides:a,slidesGrid:i,slidesSizesGrid:r,size:n,activeIndex:l}=this;let o=1;if(s.centeredSlides){let e,t=a[l].swiperSlideSize;for(let s=l+1;s<a.length;s+=1)a[s]&&!e&&(t+=a[s].swiperSlideSize,o+=1,t>n&&(e=!0));for(let s=l-1;s>=0;s-=1)a[s]&&!e&&(t+=a[s].swiperSlideSize,o+=1,t>n&&(e=!0))}else if("current"===e)for(let e=l+1;e<a.length;e+=1){(t?i[e]+r[e]-i[l]<n:i[e]-i[l]<n)&&(o+=1)}else for(let e=l-1;e>=0;e-=1){i[l]-i[e]<n&&(o+=1)}return o}update(){const e=this;if(!e||e.destroyed)return;const{snapGrid:t,params:s}=e;function a(){const t=e.rtlTranslate?-1*e.translate:e.translate,s=Math.min(Math.max(t,e.maxTranslate()),e.minTranslate());e.setTranslate(s),e.updateActiveIndex(),e.updateSlidesClasses()}let i;s.breakpoints&&e.setBreakpoint(),e.updateSize(),e.updateSlides(),e.updateProgress(),e.updateSlidesClasses(),e.params.freeMode&&e.params.freeMode.enabled?(a(),e.params.autoHeight&&e.updateAutoHeight()):(i=("auto"===e.params.slidesPerView||e.params.slidesPerView>1)&&e.isEnd&&!e.params.centeredSlides?e.slideTo(e.slides.length-1,0,!1,!0):e.slideTo(e.activeIndex,0,!1,!0),i||a()),s.watchOverflow&&t!==e.snapGrid&&e.checkOverflow(),e.emit("update")}changeDirection(e,t){void 0===t&&(t=!0);const s=this,a=s.params.direction;return e||(e="horizontal"===a?"vertical":"horizontal"),e===a||"horizontal"!==e&&"vertical"!==e||(s.$el.removeClass(`${s.params.containerModifierClass}${a}`).addClass(`${s.params.containerModifierClass}${e}`),s.emitContainerClasses(),s.params.direction=e,s.slides.each((t=>{"vertical"===e?t.style.width="":t.style.height=""})),s.emit("changeDirection"),t&&s.update()),s}mount(e){const t=this;if(t.mounted)return!0;const s=d(e||t.params.el);if(!(e=s[0]))return!1;e.swiper=t;const i=()=>`.${(t.params.wrapperClass||"").trim().split(" ").join(".")}`;let r=(()=>
1157{if(e&&e.shadowRoot&&e.shadowRoot.querySelector){const t=d(e.shadowRoot.querySelector(i()));return t.children=e=>s.children(e),t}return s.children?s.children(i()):d(s).children(i())})();if(0===r.length&&t.params.createElements){const e=a().createElement("div");r=d(e),e.className=t.params.wrapperClass,s.append(e),s.children(`.${t.params.slideClass}`).each((e=>{r.append(e)}))}return Object.assign(t,{$el:s,el:e,$wrapperEl:r,wrapperEl:r[0],mounted:!0,rtl:"rtl"===e.dir.toLowerCase()||"rtl"===s.css("direction"),rtlTranslate:"horizontal"===t.params.direction&&("rtl"===e.dir.toLowerCase()||"rtl"===s.css("direction")),wrongRTL:"-webkit-box"===r.css("display")}),!0}init(e){const t=this;if(t.initialized)return t;return!1===t.mount(e)||(t.emit("beforeInit"),t.params.breakpoints&&t.setBreakpoint(),t.addClasses(),t.params.loop&&t.loopCreate(),t.updateSize(),t.updateSlides(),t.params.watchOverflow&&t.checkOverflow(),t.params.grabCursor&&t.enabled&&t.setGrabCursor(),t.params.preloadImages&&t.preloadImages(),t.params.loop?t.slideTo(t.params.initialSlide+t.loopedSlides,0,t.params.runCallbacksOnInit,!1,!0):t.slideTo(t.params.initialSlide,0,t.params.runCallbacksOnInit,!1,!0),t.attachEvents(),t.initialized=!0,t.emit("init"),t.emit("afterInit")),t}destroy(e,t){void 0===e&&(e=!0),void 0===t&&(t=!0);const s=this,{params:a,$el:i,$wrapperEl:r,slides:n}=s;return void 0===s.params||s.destroyed||(s.emit("beforeDestroy"),s.initialized=!1,s.detachEvents(),a.loop&&s.loopDestroy(),t&&(s.removeClasses(),i.removeAttr("style"),r.removeAttr("style"),n&&n.length&&n.removeClass([a.slideVisibleClass,a.slideActiveClass,a.slideNextClass,a.slidePrevClass].join(" ")).removeAttr("style").removeAttr("data-swiper-slide-index")),s.emit("destroy"),Object.keys(s.eventsListeners).forEach((e=>{s.off(e)})),!1!==e&&(s.$el[0].swiper=null,function(e){const t=e;Object.keys(t).forEach((e=>{try{t[e]=null}catch(e){}try{delete t[e]}catch(e){}}))}(s)),s.destroyed=!0),null}static extendDefaults(e){g(q,e)}static get extendedDefaults(){return q}static get defaults(){return W}static installModule(e){V.prototype.__modules__||(V.prototype.__modules__=[]);const t=V.prototype.__modules__;"function"==typeof e&&t.indexOf(e)<0&&t.push(e)}static use(e){return Array.isArray(e)?(e.forEach((e=>V.installModule(e))),V):(V.installModule(e),V)}}function F(e,t,s,i){const r=a();
1157return e.params.createElements&&Object.keys(i).forEach((a=>{if(!s[a]&&!0===s.auto){let n=e.$el.children(`.${i[a]}`)[0];n||(n=r.createElement("div"),n.className=i[a],e.$el.append(n)),s[a]=n,t[a]=n}})),s}function U(e){return void 0===e&&(e=""),`.${e.trim().replace(/([\.:!\/])/g,"\\$1").replace(/ /g,".")}`}function K(e){const t=this,{$wrapperEl:s,params:a}=t;if(a.loop&&t.loopDestroy(),"object"==typeof e&&"length"in e)for(let t=0;t<e.length;t+=1)e[t]&&s.append(e[t]);else s.append(e);a.loop&&t.loopCreate(),a.observer||t.update()}function Z(e){const t=this,{params:s,$wrapperEl:a,activeIndex:i}=t;s.loop&&t.loopDestroy();let r=i+1;if("object"==typeof e&&"length"in e){for(let t=0;t<e.length;t+=1)e[t]&&a.prepend(e[t]);r=i+e.length}else a.prepend(e);s.loop&&t.loopCreate(),s.observer||t.update(),t.slideTo(r,0,!1)}function Q(e,t){const s=this,{$wrapperEl:a,params:i,activeIndex:r}=s;let n=r;i.loop&&(n-=s.loopedSlides,s.loopDestroy(),s.slides=a.children(`.${i.slideClass}`));const l=s.slides.length;if(e<=0)return void s.prependSlide(t);if(e>=l)return void s.appendSlide(t);let o=n>e?n+1:n;const d=[];for(let t=l-1;t>=e;t-=1){const e=s.slides.eq(t);e.remove(),d.unshift(e)}if("object"==typeof t&&"length"in t){for(let e=0;e<t.length;e+=1)t[e]&&a.append(t[e]);o=n>e?n+t.length:n}else a.append(t);for(let e=0;e<d.length;e+=1)a.append(d[e]);i.loop&&s.loopCreate(),i.observer||s.update(),i.loop?s.slideTo(o+s.loopedSlides,0,!1):s.slideTo(o,0,!1)}function J(e){const t=this,{params:s,$wrapperEl:a,activeIndex:i}=t;let r=i;s.loop&&(r-=t.loopedSlides,t.loopDestroy(),t.slides=a.children(`.${s.slideClass}`));let n,l=r;if("object"==typeof e&&"length"in e){for(let s=0;s<e.length;s+=1)n=e[s],t.slides[n]&&t.slides.eq(n).remove(),n<l&&(l-=1);l=Math.max(l,0)}else n=e,t.slides[n]&&t.slides.eq(n).remove(),n<l&&(l-=1),l=Math.max(l,0);s.loop&&t.loopCreate(),s.observer||t.update(),s.loop?t.slideTo(l+t.loopedSlides,0,!1):t.slideTo(l,0,!1)}function ee(){const e=this,t=[];for(let s=0;s<e.slides.length;s+=1)t.push(s);e.removeSlide(t)}function te(e){const{effect:t,swiper:s,on:a,setTranslate:i,setTransition:r,overwriteParams:n,perspective:l,recreateShadows:o,getEffectParams:d}=e;let c;a("beforeInit",(()=>{if(s.params.effect!==t)return;s.classNames.push(`${s.params.containerModifierClass}${t}`),l&&l()&&s.classNames.push(`${s.params.containerModifierClass}3d`);const e=n?n():{};Object.assign(s.params,e),Object.assign(s.originalParams,e)})),a("setTranslate",(()=>{s.params.effect===t&&i()})),a("setTransition",((e,a)=>{s.params.effect===t&&r(a)})),a("transitionEnd",(()=>{if(s.params.effect===t&&o){if(!d||!d().slideShadows)return;s.slides.each((e=>{s.$(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").remove()})),o()}})),a("virtualUpdate",(()=>{s.params.effect===t&&(s.slides.length||(c=!0),requestAnimationFrame((()=>{c&&s.slides&&s.slides.length&&(i(),c=!1)})))}))}function se(e,t){return e.transformEl?t.find(e.transformEl).css({"backface-visibility":"hidden","-webkit-backface-visibility":"hidden"}):t}function ae(e){let{swiper:t,duration:s,transformEl:a,allSlides:i}=e;const{slides:r,activeIndex:n,$wrapperEl:l}=t;if(t.params.virtualTranslate&&0!==s){let e,s=!1;e=i?a?r.find(a):r:a?r.eq(n).find(a):r.eq(n),e.transitionEnd((()=>{if(s)return;if(!t||t.destroyed)return;s=!0,t.animating=!1;const e=["webkitTransitionEnd","transitionend"];for(let t=0;t<e.length;t+=1)l.trigger(e[t])}))}}function ie(e,t,s){const a="swiper-slide-shadow"+(s?`-${s}`:""),i=e.transformEl?t.find(e.transformEl):t;let r=i.children(`.${a}`);return r.length||(r=d(`<div class="swiper-slide-shadow${s?`-${s}`:""}"></div>`),i.append(r)),r}Object.keys(_).forEach((e=>
1157{Object.keys(_[e]).forEach((t=>{V.prototype[t]=_[e][t]}))})),V.use([function(e){let{swiper:t,on:s,emit:a}=e;const i=r();let n=null,l=null;const o=()=>{t&&!t.destroyed&&t.initialized&&(a("beforeResize"),a("resize"))},d=()=>{t&&!t.destroyed&&t.initialized&&a("orientationchange")};s("init",(()=>{t.params.resizeObserver&&void 0!==i.ResizeObserver?t&&!t.destroyed&&t.initialized&&(n=new ResizeObserver((e=>{l=i.requestAnimationFrame((()=>{const{width:s,height:a}=t;let i=s,r=a;e.forEach((e=>{let{contentBoxSize:s,contentRect:a,target:n}=e;n&&n!==t.el||(i=a?a.width:(s[0]||s).inlineSize,r=a?a.height:(s[0]||s).blockSize)})),i===s&&r===a||o()}))})),n.observe(t.el)):(i.addEventListener("resize",o),i.addEventListener("orientationchange",d))})),s("destroy",(()=>{l&&i.cancelAnimationFrame(l),n&&n.unobserve&&t.el&&(n.unobserve(t.el),n=null),i.removeEventListener("resize",o),i.removeEventListener("orientationchange",d)}))},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;const n=[],l=r(),o=function(e,t){void 0===t&&(t={});const s=new(l.MutationObserver||l.WebkitMutationObserver)((e=>{if(1===e.length)return void i("observerUpdate",e[0]);const t=function(){i("observerUpdate",e[0])};l.requestAnimationFrame?l.requestAnimationFrame(t):l.setTimeout(t,0)}));s.observe(e,{attributes:void 0===t.attributes||t.attributes,childList:void 0===t.childList||t.childList,characterData:void 0===t.characterData||t.characterData}),n.push(s)};s({observer:!1,observeParents:!1,observeSlideChildren:!1}),a("init",(()=>{if(t.params.observer){if(t.params.observeParents){const e=t.$el.parents();for(let t=0;t<e.length;t+=1)o(e[t])}o(t.$el[0],{childList:t.params.observeSlideChildren}),o(t.$wrapperEl[0],{attributes:!1})}})),a("destroy",(()=>{n.forEach((e=>{e.disconnect()})),n.splice(0,n.length)}))}]);const re=[function(e){let t,{swiper:s,extendParams:a,on:i,emit:r}=e;function n(e,t){const a=s.params.virtual;if(a.cache&&s.virtual.cache[t])return s.virtual.cache[t];const i=a.renderSlide?d(a.renderSlide.call(s,e,t)):d(`<div class="${s.params.slideClass}" data-swiper-slide-index="${t}">${e}</div>`);return i.attr("data-swiper-slide-index")||i.attr("data-swiper-slide-index",t),a.cache&&(s.virtual.cache[t]=i),i}function l(e){const{slidesPerView:t,slidesPerGroup:a,centeredSlides:i}=s.params,{addSlidesBefore:l,addSlidesAfter:o}=s.params.virtual,{from:d,to:c,slides:p,slidesGrid:u,offset:h}=s.virtual;s.params.cssMode||s.updateActiveIndex();const m=s.activeIndex||0;let f,g,v;f=s.rtlTranslate?"right":s.isHorizontal()?"left":"top",i?(g=Math.floor(t/2)+a+o,v=Math.floor(t/2)+a+l):(g=t+(a-1)+o,v=a+l);const w=Math.max((m||0)-v,0),b=Math.min((m||0)+g,p.length-1),x=(s.slidesGrid[w]||0)-(s.slidesGrid[0]||0);function y(){s.updateSlides(),s.updateProgress(),s.updateSlidesClasses(),s.lazy&&s.params.lazy.enabled&&s.lazy.load(),r("virtualUpdate")}if(Object.assign(s.virtual,{from:w,to:b,offset:x,slidesGrid:s.slidesGrid}),d===w&&c===b&&!e)return s.slidesGrid!==u&&x!==h&&s.slides.css(f,`${x}px`),s.updateProgress(),void r("virtualUpdate");if(s.params.virtual.renderExternal)return s.params.virtual.renderExternal.call(s,{offset:x,from:w,to:b,slides:function(){const e=[];for(let t=w;t<=b;t+=1)e.push(p[t]);return e}()}),void(s.params.virtual.renderExternalUpdate?y():r("virtualUpdate"));const E=[],C=[];if(e)s.$wrapperEl.find(`.${s.params.slideClass}`).remove();else for(let e=d;e<=c;e+=1)(e<w||e>b)&&s.$wrapperEl.find(`.${s.params.slideClass}[data-swiper-slide-index="${e}"]`).remove();for(let t=0;t<p.length;t+=1)t>=w&&t<=b&&(void 0===c||e?C.push(t):(t>c&&C.push(t),t<d&&E.push(t)));C.forEach((e=>{s.$wrapperEl.append(n(p[e],e))})),E.sort(((e,t)=>t-e)).forEach((e=>{s.$wrapperEl.prepend(n(p[e],e))})),s.$wrapperEl.children(".swiper-slide").css(f,`${x}px`),y()}a({virtual:{enabled:!1,slides:[],cache:!0,renderSlide:null,renderExternal:null,renderExternalUpdate:!0,addSlidesBefore:0,addSlidesAfter:0}}),s.virtual={cache:{},from:void 0,to:void 0,slides:[],offset:0,slidesGrid:[]},i("beforeInit",(()=>{s.params.virtual.enabled&&(s.virtual.slides=s.params.virtual.slides,s.classNames.push(`${s.params.containerModifierClass}virtual`),s.params.watchSlidesProgress=!0,s.originalParams.watchSlidesProgress=!0,s.params.initialSlide||l())})),i("setTranslate",(()=>{s.params.virtual.enabled&&(s.params.cssMode&&!s._immediateVirtual?(clearTimeout(t),t=setTimeout((()=>{l()}),100)):l())})),i("init update resize",(()=>{s.params.virtual.enabled&&s.params.cssMode&&v(s.wrapperEl,"--swiper-virtual-size",`${s.virtualSize}px`)})),Object.assign(s.virtual,{appendSlide:function(e){if("object"==typeof e&&"length"in e)for(let t=0;t<e.length;t+=1)e[t]&&s.virtual.slides.push(e[t]);else s.virtual.slides.push(e);l(!0)},prependSlide:function(e){const t=s.activeIndex;let a=t+1,i=1;if(Array.isArray(e)){for(let t=0;t<e.length;t+=1)e[t]&&s.virtual.slides.unshift(e[t]);a=t+e.length,i=e.length}else s.virtual.slides.unshift(e);
1157if(s.params.virtual.cache){const e=s.virtual.cache,t={};Object.keys(e).forEach((s=>{const a=e[s],r=a.attr("data-swiper-slide-index");r&&a.attr("data-swiper-slide-index",parseInt(r,10)+i),t[parseInt(s,10)+i]=a})),s.virtual.cache=t}l(!0),s.slideTo(a,0)},removeSlide:function(e){if(null==e)return;let t=s.activeIndex;if(Array.isArray(e))for(let a=e.length-1;a>=0;a-=1)s.virtual.slides.splice(e[a],1),s.params.virtual.cache&&delete s.virtual.cache[e[a]],e[a]<t&&(t-=1),t=Math.max(t,0);else s.virtual.slides.splice(e,1),s.params.virtual.cache&&delete s.virtual.cache[e],e<t&&(t-=1),t=Math.max(t,0);l(!0),s.slideTo(t,0)},removeAllSlides:function(){s.virtual.slides=[],s.params.virtual.cache&&(s.virtual.cache={}),l(!0),s.slideTo(0,0)},update:l})},function(e){let{swiper:t,extendParams:s,on:i,emit:n}=e;const l=a(),o=r();function c(e){if(!t.enabled)return;const{rtlTranslate:s}=t;let a=e;a.originalEvent&&(a=a.originalEvent);const i=a.keyCode||a.charCode,r=t.params.keyboard.pageUpDown,d=r&&33===i,c=r&&34===i,p=37===i,u=39===i,h=38===i,m=40===i;if(!t.allowSlideNext&&(t.isHorizontal()&&u||t.isVertical()&&m||c))return!1;if(!t.allowSlidePrev&&(t.isHorizontal()&&p||t.isVertical()&&h||d))return!1;if(!(a.shiftKey||a.altKey||a.ctrlKey||a.metaKey||l.activeElement&&l.activeElement.nodeName&&("input"===l.activeElement.nodeName.toLowerCase()||"textarea"===l.activeElement.nodeName.toLowerCase()))){if(t.params.keyboard.onlyInViewport&&(d||c||p||u||h||m)){let e=!1;if(t.$el.parents(`.${t.params.slideClass}`).length>0&&0===t.$el.parents(`.${t.params.slideActiveClass}`).length)return;const a=t.$el,i=a[0].clientWidth,r=a[0].clientHeight,n=o.innerWidth,l=o.innerHeight,d=t.$el.offset();s&&(d.left-=t.$el[0].scrollLeft);const c=[[d.left,d.top],[d.left+i,d.top],[d.left,d.top+r],[d.left+i,d.top+r]];for(let t=0;t<c.length;t+=1){const s=c[t];if(s[0]>=0&&s[0]<=n&&s[1]>=0&&s[1]<=l){if(0===s[0]&&0===s[1])continue;e=!0}}if(!e)return}t.isHorizontal()?((d||c||p||u)&&(a.preventDefault?a.preventDefault():a.returnValue=!1),((c||u)&&!s||(d||p)&&s)&&t.slideNext(),((d||p)&&!s||(c||u)&&s)&&t.slidePrev()):((d||c||h||m)&&(a.preventDefault?a.preventDefault():a.returnValue=!1),(c||m)&&t.slideNext(),(d||h)&&t.slidePrev()),n("keyPress",i)}}function p(){t.keyboard.enabled||(d(l).on("keydown",c),t.keyboard.enabled=!0)}function u(){t.keyboard.enabled&&(d(l).off("keydown",c),t.keyboard.enabled=!1)}t.keyboard={enabled:!1},s({keyboard:{enabled:!1,onlyInViewport:!0,pageUpDown:!0}}),i("init",(()=>{t.params.keyboard.enabled&&p()})),i("destroy",(()=>{t.keyboard.enabled&&u()})),Object.assign(t.keyboard,{enable:p,disable:u})},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;const n=r();let l;s({mousewheel:{enabled:!1,releaseOnEdges:!1,invert:!1,forceToAxis:!1,sensitivity:1,eventsTarget:"container",thresholdDelta:null,thresholdTime:null}}),t.mousewheel={enabled:!1};let o,c=u();const h=[];function m(){t.enabled&&(t.mouseEntered=!0)}function f(){t.enabled&&(t.mouseEntered=!1)}function g(e){return!(t.params.mousewheel.thresholdDelta&&e.delta<t.params.mousewheel.thresholdDelta)&&(!(t.params.mousewheel.thresholdTime&&u()-c<t.params.mousewheel.thresholdTime)&&(e.delta>=6&&u()-c<60||(e.direction<0?t.isEnd&&!t.params.loop||t.animating||(t.slideNext(),i("scroll",e.raw)):t.isBeginning&&!t.params.loop||t.animating||(t.slidePrev(),i("scroll",e.raw)),c=(new n.Date).getTime(),!1)))}function v(e){let s=e,a=!0;if(!t.enabled)return;const r=t.params.mousewheel;t.params.cssMode&&s.preventDefault();let n=t.$el;if("container"!==t.params.mousewheel.eventsTarget&&(n=d(t.params.mousewheel.eventsTarget)),!t.mouseEntered&&!n[0].contains(s.target)&&!r.releaseOnEdges)return!0;s.originalEvent&&(s=s.originalEvent);let c=0;const m=t.rtlTranslate?-1:1,f=function(e){let t=0,s=0,a=0,i=0;return"detail"in e&&(s=e.detail),"wheelDelta"in e&&(s=-e.wheelDelta/120),"wheelDeltaY"in e&&(s=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=s,s=0),a=10*t,i=10*s,"deltaY"in e&&(i=e.deltaY),"deltaX"in e&&(a=e.deltaX),e.shiftKey&&!a&&(a=i,i=0),(a||i)&&e.deltaMode&&(1===e.deltaMode?(a*=40,i*=40):(a*=800,i*=800)),a&&!t&&(t=a<1?-1:1),i&&!s&&(s=i<1?-1:1),{spinX:t,spinY:s,pixelX:a,pixelY:i}}(s);if(r.forceToAxis)if(t.isHorizontal()){if(!(Math.abs(f.pixelX)>Math.abs(f.pixelY)))return!0;c=-f.pixelX*m}else{if(!(Math.abs(f.pixelY)>Math.abs(f.pixelX)))return!0;c=-f.pixelY}else c=Math.abs(f.pixelX)>Math.abs(f.pixelY)?-f.pixelX*m:-f.pixelY;if(0===c)return!0;r.invert&&(c=-c);let v=t.getTranslate()+c*r.sensitivity;if(v>=t.minTranslate()&&(v=t.minTranslate()),v<=t.maxTranslate()&&(v=t.maxTranslate()),a=!!t.params.loop||!(v===t.minTranslate()||v===t.maxTranslate()),a&&t.params.nested&&s.stopPropagation(),t.params.freeMode&&t.params.freeMode.enabled){const e={t
1157ime:u(),delta:Math.abs(c),direction:Math.sign(c)},a=o&&e.time<o.time+500&&e.delta<=o.delta&&e.direction===o.direction;if(!a){o=void 0,t.params.loop&&t.loopFix();let n=t.getTranslate()+c*r.sensitivity;const d=t.isBeginning,u=t.isEnd;if(n>=t.minTranslate()&&(n=t.minTranslate()),n<=t.maxTranslate()&&(n=t.maxTranslate()),t.setTransition(0),t.setTranslate(n),t.updateProgress(),t.updateActiveIndex(),t.updateSlidesClasses(),(!d&&t.isBeginning||!u&&t.isEnd)&&t.updateSlidesClasses(),t.params.freeMode.sticky){clearTimeout(l),l=void 0,h.length>=15&&h.shift();const s=h.length?h[h.length-1]:void 0,a=h[0];if(h.push(e),s&&(e.delta>s.delta||e.direction!==s.direction))h.splice(0);else if(h.length>=15&&e.time-a.time<500&&a.delta-e.delta>=1&&e.delta<=6){const s=c>0?.8:.2;o=e,h.splice(0),l=p((()=>{t.slideToClosest(t.params.speed,!0,void 0,s)}),0)}l||(l=p((()=>{o=e,h.splice(0),t.slideToClosest(t.params.speed,!0,void 0,.5)}),500))}if(a||i("scroll",s),t.params.autoplay&&t.params.autoplayDisableOnInteraction&&t.autoplay.stop(),n===t.minTranslate()||n===t.maxTranslate())return!0}}else{const s={time:u(),delta:Math.abs(c),direction:Math.sign(c),raw:e};h.length>=2&&h.shift();const a=h.length?h[h.length-1]:void 0;if(h.push(s),a?(s.direction!==a.direction||s.delta>a.delta||s.time>a.time+150)&&g(s):g(s),function(e){const s=t.params.mousewheel;if(e.direction<0){if(t.isEnd&&!t.params.loop&&s.releaseOnEdges)return!0}else if(t.isBeginning&&!t.params.loop&&s.releaseOnEdges)return!0;return!1}(s))return!0}return s.preventDefault?s.preventDefault():s.returnValue=!1,!1}function w(e){let s=t.$el;"container"!==t.params.mousewheel.eventsTarget&&(s=d(t.params.mousewheel.eventsTarget)),s[e]("mouseenter",m),s[e]("mouseleave",f),s[e]("wheel",v)}function b(){return t.params.cssMode?(t.wrapperEl.removeEventListener("wheel",v),!0):!t.mousewheel.enabled&&(w("on"),t.mousewheel.enabled=!0,!0)}function x(){return t.params.cssMode?(t.wrapperEl.addEventListener(event,v),!0):!!t.mousewheel.enabled&&(w("off"),t.mousewheel.enabled=!1,!0)}a("init",(()=>{!t.params.mousewheel.enabled&&t.params.cssMode&&x(),t.params.mousewheel.enabled&&b()})),a("destroy",(()=>{t.params.cssMode&&b(),t.mousewheel.enabled&&x()})),Object.assign(t.mousewheel,{enable:b,disable:x})},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;function r(e){let s;return e&&(s=d(e),t.params.uniqueNavElements&&"string"==typeof e&&s.length>1&&1===t.$el.find(e).length&&(s=t.$el.find(e))),s}function n(e,s){const a=t.params.navigation;e&&e.length>0&&(e[s?"addClass":"removeClass"](a.disabledClass),e[0]&&"BUTTON"===e[0].tagName&&(e[0].disabled=s),t.params.watchOverflow&&t.enabled&&e[t.isLocked?"addClass":"removeClass"](a.lockClass))}function l(){if(t.params.loop)return;const{$nextEl:e,$prevEl:s}=t.navigation;n(s,t.isBeginning&&!t.params.rewind),n(e,t.isEnd&&!t.params.rewind)}function o(e){e.preventDefault(),(!t.isBeginning||t.params.loop||t.params.rewind)&&t.slidePrev()}function c(e){e.preventDefault(),(!t.isEnd||t.params.loop||t.params.rewind)&&t.slideNext()}function p(){const e=t.params.navigation;if(t.params.navigation=F(t,t.originalParams.navigation,t.params.navigation,{nextEl:"swiper-button-next",prevEl:"swiper-button-prev"}),!e.nextEl&&!e.prevEl)return;const s=r(e.nextEl),a=r(e.prevEl);s&&s.length>0&&s.on("click",c),a&&a.length>0&&a.on("click",o),Object.assign(t.navigation,{$nextEl:s,nextEl:s&&s[0],$prevEl:a,prevEl:a&&a[0]}),t.enabled||(s&&s.addClass(e.lockClass),a&&a.addClass(e.lockClass))}function u(){const{$nextEl:e,$prevEl:s}=t.navigation;e&&e.length&&(e.off("click",c),e.removeClass(t.params.navigation.disabledClass)),s&&s.length&&(s.off("click",o),s.removeClass(t.params.navigation.disabledClass))}s({navigation:{nextEl:null,prevEl:null,hideOnClick:!1,disabledClass:"swiper-button-disabled",hiddenClass:"swiper-button-hidden",lockClass:"swiper-button-lock",navigationDisabledClass:"swiper-navigation-disabled"}}),t.navigation={nextEl:null,$nextEl:null,prevEl:null,$prevEl:null},a("init",(()=>{!1===t.params.navigation.enabled?h():(p(),l())})),a("toEdge fromEdge lock unlock",(()=>{l()})),a("destroy",(()=>{u()})),a("enable disable",(()=>{const{$nextEl:e,$prevEl:s}=t.navigation;e&&e[t.enabled?"removeClass":"addClass"](t.params.navigation.lockClass),s&&s[t.enabled?"removeClass":"addClass"](t.params.navigation.lockClass)})),a("click",((e,s)=>{const{$nextEl:a,$prevEl:r}=t.navigation,n=s.target;if(t.params.navigation.hideOnClick&&!d(n).is(r)&&!d(n).is(a)){if(t.pagination&&t.params.pagination&&t.params.pagination.clickable&&(t.pagination.el===n||t.pagination.el.contains(n)))return;let e;a?e=a.hasClass(t.params.navigation.hiddenClass):r&&(e=r.hasClass(t.params.navigation.hiddenClass)),i(!0===e?"navigationShow":"navigationHide"),a&&a.toggleClass(t.params.navigation.hiddenClass),r&&r.toggleClass(t.params.navigation.hiddenClass)}}));const h=()=>{t.$el.addClass(t.params.navigation.navigationDisabledClass),u()};Object.assign(t.navigation,{enable:()=>{t.$el.removeClass(t.params.navigation.navigationDisabledClass),p(),l()},disable:h,update:l,init:p,destroy:u})},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;const r="swiper-pagination";let n;s({pagination:{el:null,bulletElement:"span",clickable:!1,hideOnClick:!1,renderBullet:null,renderProgressbar:null,renderFraction:null,renderCustom:null,progressbarOpposite:!1,type:"bullets",dynamicBullets:!1,dynamicMainBullets:1,formatFractionCurrent:e=>e,formatFractionTotal:e=>e,bulletClass:`${r}-bullet`,bulletActiveClass:`${r}-bullet-active`,modifierClass:`${r}-`,currentClass:`${r}-current`,totalClass:`${r}-total`,hiddenClass:`${r}-hidden`,progressbarFillClass:`${r}-progressbar-fill`,progressbarOppositeClass:`${r}-progressbar-opposite`,clickableClass:`${r}
1157-clickable`,lockClass:`${r}-lock`,horizontalClass:`${r}-horizontal`,verticalClass:`${r}-vertical`,paginationDisabledClass:`${r}-disabled`}}),t.pagination={el:null,$el:null,bullets:[]};let l=0;function o(){return!t.params.pagination.el||!t.pagination.el||!t.pagination.$el||0===t.pagination.$el.length}function c(e,s){const{bulletActiveClass:a}=t.params.pagination;e[s]().addClass(`${a}-${s}`)[s]().addClass(`${a}-${s}-${s}`)}function p(){const e=t.rtl,s=t.params.pagination;if(o())return;const a=t.virtual&&t.params.virtual.enabled?t.virtual.slides.length:t.slides.length,r=t.pagination.$el;let p;const u=t.params.loop?Math.ceil((a-2*t.loopedSlides)/t.params.slidesPerGroup):t.snapGrid.length;if(t.params.loop?(p=Math.ceil((t.activeIndex-t.loopedSlides)/t.params.slidesPerGroup),p>a-1-2*t.loopedSlides&&(p-=a-2*t.loopedSlides),p>u-1&&(p-=u),p<0&&"bullets"!==t.params.paginationType&&(p=u+p)):p=void 0!==t.snapIndex?t.snapIndex:t.activeIndex||0,"bullets"===s.type&&t.pagination.bullets&&t.pagination.bullets.length>0){const a=t.pagination.bullets;let i,o,u;if(s.dynamicBullets&&(n=a.eq(0)[t.isHorizontal()?"outerWidth":"outerHeight"](!0),r.css(t.isHorizontal()?"width":"height",n*(s.dynamicMainBullets+4)+"px"),s.dynamicMainBullets>1&&void 0!==t.previousIndex&&(l+=p-(t.previousIndex-t.loopedSlides||0),l>s.dynamicMainBullets-1?l=s.dynamicMainBullets-1:l<0&&(l=0)),i=Math.max(p-l,0),o=i+(Math.min(a.length,s.dynamicMainBullets)-1),u=(o+i)/2),a.removeClass(["","-next","-next-next","-prev","-prev-prev","-main"].map((e=>`${s.bulletActiveClass}${e}`)).join(" ")),r.length>1)a.each((e=>{const t=d(e),a=t.index();a===p&&t.addClass(s.bulletActiveClass),s.dynamicBullets&&(a>=i&&a<=o&&t.addClass(`${s.bulletActiveClass}-main`),a===i&&c(t,"prev"),a===o&&c(t,"next"))}));else{const e=a.eq(p),r=e.index();if(e.addClass(s.bulletActiveClass),s.dynamicBullets){const e=a.eq(i),n=a.eq(o);for(let e=i;e<=o;e+=1)a.eq(e).addClass(`${s.bulletActiveClass}-main`);if(t.params.loop)if(r>=a.length){for(let e=s.dynamicMainBullets;e>=0;e-=1)a.eq(a.length-e).addClass(`${s.bulletActiveClass}-main`);a.eq(a.length-s.dynamicMainBullets-1).addClass(`${s.bulletActiveClass}-prev`)}else c(e,"prev"),c(n,"next");else c(e,"prev"),c(n,"next")}}if(s.dynamicBullets){const i=Math.min(a.length,s.dynamicMainBullets+4),r=(n*i-n)/2-u*n,l=e?"right":"left";a.css(t.isHorizontal()?l:"top",`${r}px`)}}if("fraction"===s.type&&(r.find(U(s.currentClass)).text(s.formatFractionCurrent(p+1)),r.find(U(s.totalClass)).text(s.formatFractionTotal(u))),"progressbar"===s.type){let e;e=s.progressbarOpposite?t.isHorizontal()?"vertical":"horizontal":t.isHorizontal()?"horizontal":"vertical";const a=(p+1)/u;let i=1,n=1;"horizontal"===e?i=a:n=a,r.find(U(s.progressbarFillClass)).transform(`translate3d(0,0,0) scaleX(${i}) scaleY(${n})`).transition(t.params.speed)}"custom"===s.type&&s.renderCustom?(r.html(s.renderCustom(t,p+1,u)),i("paginationRender",r[0])):i("paginationUpdate",r[0]),t.params.watchOverflow&&t.enabled&&r[t.isLocked?"addClass":"removeClass"](s.lockClass)}function u(){const e=t.params.pagination;if(o())return;const s=t.virtual&&t.params.virtual.enabled?t.virtual.slides.length:t.slides.length,a=t.pagination.$el;let r="";if("bullets"===e.type){let i=t.params.loop?Math.ceil((s-2*t.loopedSlides)/t.params.slidesPerGroup):t.snapGrid.length;t.params.freeMode&&t.params.freeMode.enabled&&!t.params.loop&&i>s&&(i=s);for(let s=0;s<i;s+=1)e.renderBullet?r+=e.renderBullet.call(t,s,e.bulletClass):r+=`<${e.bulletElement} class="${e.bulletClass}"></${e.bulletElement}>`;a.html(r),t.pagination.bullets=a.find(U(e.bulletClass))}"fraction"===e.type&&(r=e.renderFraction?e.renderFraction.call(t,e.currentClass,e.totalClass):`<span class="${e.currentClass}"></span> / <span class="${e.totalClass}"></span>`,a.html(r)),"progressbar"===e.type&&(r=e.renderProgressbar?e.renderProgressbar.call(t,e.progressbarFillClass):`<span class="${e.progressbarFillClass}"></span>`,a.html(r)),"custom"!==e.type&&i("paginationRender",t.pagination.$el[0])}function h(){t.params.pagination=F(t,t.originalParams.pagination,t.params.pagination,{el:"swiper-pagination"});const e=t.params.pagination;if(!e.el)return;let s=d(e.el);0!==s.length&&(t.params.uniqueNavElements&&"string"==typeof e.el&&s.length>1&&(s=t.$el.find(e.el),s.length>1&&(s=s.filter((e=>d(e).parents(".swiper")[0]===t.el)))),"bullets"===e.type&&e.clickable&&s.addClass(e.clickableClass),s.addClass(e.modifierClass+e.type),s.addClass(t.isHorizontal()?e.horizontalClass:e.verticalClass),"bullets"===e.type&&e.dynamicBullets&&(s.addClass(`${e.modifierClass}${e.type}-dynamic`),l=0,e.dynamicMainBullets<1&&(e.dynamicMainBullets=1)),"progressbar"===e.type&&e.progressbarOpposite&&s.addClass(e.progressbarOppositeClass),e.clickable&&s.on("click",U(e.bulletClass),(function(e){e.preventDefault();let s=d(this).index()*t.params.slidesPerGroup;t.params.loop&&(s+=t.loopedSlides),t.slideTo(s)})),Object.assign(t.pagination,{$el:s,el:s[0]}),t.enabled||s.addClass(e.lockClass))}function m(){const e=t.params.pagination;if(o())return;const s=t.pagination.$el;s.removeClass(e.hiddenClass),s.removeClass(e.modifierClass+e.type),s.removeClass(t.isHorizontal()?e.horizontalClass:e.verticalClass),t.pagination.bullets&&t.pagination.bullets.removeClass&&t.pagination.bullets.removeClass(e.bulletActiveClass),e.clickable&&s.off("click",U(e.bulletClass))}a("init",(()=>{!1===t.params.pagination.enabled?f():(h(),u(),p())})),a("activeIndexChange",(()=>{(t.params.loop||void 0===t.snapIndex)&&p()})),a("snapIndexChange",(()=>{t.params.loop||p()})),a("slidesLengthChange",(()=>{t.params.loop&&(u(),p())})),a("snapGridLengthChange",(()=>{t.params.loop||(u(),p())})),a("destroy",(()=>{m()}
1157)),a("enable disable",(()=>{const{$el:e}=t.pagination;e&&e[t.enabled?"removeClass":"addClass"](t.params.pagination.lockClass)})),a("lock unlock",(()=>{p()})),a("click",((e,s)=>{const a=s.target,{$el:r}=t.pagination;if(t.params.pagination.el&&t.params.pagination.hideOnClick&&r.length>0&&!d(a).hasClass(t.params.pagination.bulletClass)){if(t.navigation&&(t.navigation.nextEl&&a===t.navigation.nextEl||t.navigation.prevEl&&a===t.navigation.prevEl))return;const e=r.hasClass(t.params.pagination.hiddenClass);i(!0===e?"paginationShow":"paginationHide"),r.toggleClass(t.params.pagination.hiddenClass)}}));const f=()=>{t.$el.addClass(t.params.pagination.paginationDisabledClass),t.pagination.$el&&t.pagination.$el.addClass(t.params.pagination.paginationDisabledClass),m()};Object.assign(t.pagination,{enable:()=>{t.$el.removeClass(t.params.pagination.paginationDisabledClass),t.pagination.$el&&t.pagination.$el.removeClass(t.params.pagination.paginationDisabledClass),h(),u(),p()},disable:f,render:u,update:p,init:h,destroy:m})},function(e){let{swiper:t,extendParams:s,on:i,emit:r}=e;const n=a();let l,o,c,u,h=!1,m=null,f=null;function g(){if(!t.params.scrollbar.el||!t.scrollbar.el)return;const{scrollbar:e,rtlTranslate:s,progress:a}=t,{$dragEl:i,$el:r}=e,n=t.params.scrollbar;let l=o,d=(c-o)*a;s?(d=-d,d>0?(l=o-d,d=0):-d+o>c&&(l=c+d)):d<0?(l=o+d,d=0):d+o>c&&(l=c-d),t.isHorizontal()?(i.transform(`translate3d(${d}px, 0, 0)`),i[0].style.width=`${l}px`):(i.transform(`translate3d(0px, ${d}px, 0)`),i[0].style.height=`${l}px`),n.hide&&(clearTimeout(m),r[0].style.opacity=1,m=setTimeout((()=>{r[0].style.opacity=0,r.transition(400)}),1e3))}function v(){if(!t.params.scrollbar.el||!t.scrollbar.el)return;const{scrollbar:e}=t,{$dragEl:s,$el:a}=e;s[0].style.width="",s[0].style.height="",c=t.isHorizontal()?a[0].offsetWidth:a[0].offsetHeight,u=t.size/(t.virtualSize+t.params.slidesOffsetBefore-(t.params.centeredSlides?t.snapGrid[0]:0)),o="auto"===t.params.scrollbar.dragSize?c*u:parseInt(t.params.scrollbar.dragSize,10),t.isHorizontal()?s[0].style.width=`${o}px`:s[0].style.height=`${o}px`,a[0].style.display=u>=1?"none":"",t.params.scrollbar.hide&&(a[0].style.opacity=0),t.params.watchOverflow&&t.enabled&&e.$el[t.isLocked?"addClass":"removeClass"](t.params.scrollbar.lockClass)}function w(e){return t.isHorizontal()?"touchstart"===e.type||"touchmove"===e.type?e.targetTouches[0].clientX:e.clientX:"touchstart"===e.type||"touchmove"===e.type?e.targetTouches[0].clientY:e.clientY}function b(e){const{scrollbar:s,rtlTranslate:a}=t,{$el:i}=s;let r;r=(w(e)-i.offset()[t.isHorizontal()?"left":"top"]-(null!==l?l:o/2))/(c-o),r=Math.max(Math.min(r,1),0),a&&(r=1-r);const n=t.minTranslate()+(t.maxTranslate()-t.minTranslate())*r;t.updateProgress(n),t.setTranslate(n),t.updateActiveIndex(),t.updateSlidesClasses()}function x(e){const s=t.params.scrollbar,{scrollbar:a,$wrapperEl:i}=t,{$el:n,$dragEl:o}=a;h=!0,l=e.target===o[0]||e.target===o?w(e)-e.target.getBoundingClientRect()[t.isHorizontal()?"left":"top"]:null,e.preventDefault(),e.stopPropagation(),i.transition(100),o.transition(100),b(e),clearTimeout(f),n.transition(0),s.hide&&n.css("opacity",1),t.params.cssMode&&t.$wrapperEl.css("scroll-snap-type","none"),r("scrollbarDragStart",e)}function y(e){const{scrollbar:s,$wrapperEl:a}=t,{$el:i,$dragEl:n}=s;h&&(e.preventDefault?e.preventDefault():e.returnValue=!1,b(e),a.transition(0),i.transition(0),n.transition(0),r("scrollbarDragMove",e))}function E(e){const s=t.params.scrollbar,{scrollbar:a,$wrapperEl:i}=t,{$el:n}=a;h&&(h=!1,t.params.cssMode&&(t.$wrapperEl.css("scroll-snap-type",""),i.transition("")),s.hide&&(clearTimeout(f),f=p((()=>{n.css("opacity",0),n.transition(400)}),1e3)),r("scrollbarDragEnd",e),s.snapOnRelease&&t.slideToClosest())}function C(e){const{scrollbar:s,touchEventsTouch:a,touchEventsDesktop:i,params:r,support:l}=t,o=s.$el;if(!o)return;const d=o[0],c=!(!l.passiveListener||!r.passiveListeners)&&{passive:!1,capture:!1},p=!(!l.passiveListener||!r.passiveListeners)&&{passive:!0,capture:!1};if(!d)return;const u="on"===e?"addEventListener":"removeEventListener";l.touch?(d[u](a.start,x,c),d[u](a.move,y,c),d[u](a.end,E,p)):(d[u](i.start,x,c),n[u](i.move,y,c),n[u](i.end,E,p))}function T(){const{scrollbar:e,$el:s}=t;t.params.scrollbar=F(t,t.originalParams.scrollbar,t.params.scrollbar,{el:"swiper-scrollbar"});const a=t.params.scrollbar;if(!a.el)return;let i=d(a.el);t.params.uniqueNavElements&&"string"==typeof a.el&&i.length>1&&1===s.find(a.el).length&&(i=s.find(a.el)),i.addClass(t.isHorizontal()?a.horizontalClass:a.verticalClass);let r=i.find(`.${t.params.scrollbar.dragClass}`);0===r.length&&(r=d(`<div class="${t.params.scrollbar.dragClass}"></div>`),i.append(r)),Object.assign(e,{$el:i,el:i[0],$dragEl:r,dragEl:r[0]}),a.draggable&&t.params.scrollbar.el&&t.scrollbar.el&&C("on"),i&&i[t.enabled?"removeClass":"addClass"](t.params.scrollbar.lockClass)}function $(){const e=t.params.scrollbar,s=t.scrollbar.$el;s&&s.removeClass(t.isHorizontal()?e.horizontalClass:e.verticalClass),t.params.scrollbar.el&&t.scrollbar.el&&C("off")}s({scrollbar:{el:null,dragSize:"auto",hide:!1,draggable:!1,snapOnRelease:!0,lockClass:"swiper-scrollbar-lock",dragClass:"swiper-scrollbar-drag",scrollbarDisabledClass:"swiper-scrollbar-disabled",horizontalClass:"swiper-scrollbar-horizontal",verticalClass:"swiper-scrollbar-vertical"}}),t.scrollbar={el:null,dragEl:null,$el:null,$dragEl:null},i("init",(()=>{!1===t.params.scrollbar.enabled?S():(T(),v(),g())})),i("update resize observerUpdate lock unlock",(()=>{v()})),i("setTranslate",(()=>{g()})),i("setTransition",((e,s)=>{!function(e){t.params.scrollbar.el&&t.scrollbar.el&&t.scrollbar.$dragEl.transition(e)}(s)})),i("enable disable",(()=>{const{$el:e}=t.scrollbar;e&&e[t.enabled?"removeClass":"addClass"](t.params.scrollbar.lockClass)})),i("destroy",(()=>{$()}));const S=()=>{t.$el.addClass(t.params.scrollbar.scrollbarDisabledClass),t.scrollbar.$el&&t.scrollbar.$el.addClass(t.params.scrollbar.scrollbarDisabledClass),$()};Object.assign(t.scrollbar,{enable:()=>{t.$el.removeClass(t.params.scrollbar.scrollbarDisabledClass),t.scrollbar.$el&&t.scrollbar.$el.removeClass(t.params.scrollbar.scrollbarDisabledClass),T(),v(),g()},disable:S,updateSize:v,setTranslate:g,init:T,destroy:$})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({parallax:{enabled:!1}});const i=(e,s)=>{const{rtl:a}=t,i=d(e),r=a?-1:1,n=i.attr("data-swiper-parallax")||"0";let l=i.attr("data-swiper-parallax-x"),o=i.attr("data-swiper-parallax-y");const c=i.attr("data-swiper-parallax-scale"),p=i.attr("data-swiper-parallax-opacity");if(l||o?(l=l||"0",o=o||"0"):t.isHorizontal()?(l=n,o="0"):(o=n,l="0"),l=l.indexOf("%")>=0?parseInt(l,10)*s*r+"%":l*s*r+"px",o=o.indexOf("%")>=0?parseInt(o,10)*s+"%":o*s+"px",null!=p){const e=p-(p-1)*(1-Math.abs(s));i[0].style.opacity=e}if(null==c)i.transform(`translate3d(${l}, ${o}, 0px)`);else{const e=c-(c-1)*(1-Math.abs(s));i.transform(`translate3d(${l}, ${o}, 0px) scale(${e})`)}},r=()=>{const{$el:e,slides:s,progress:a,snapGrid:r}=t;e.children("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each((e=>{i(e,a)})),s.each(((e,s)=>{let n=e.progress;t.params.slidesPerGroup>1&&"auto"!==t.params.slidesPerView&&(n+=Math.ceil(s/2)-a*(r.length-1)),n=Math.min(Math.max(n,-1),1),d(e).find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each((e=>{i(e,n)}))}))};a("beforeInit",(()=>{t.params.parallax.enabled&&(t.params.watchSlidesProgress=!0,t.originalParams.watchSlidesProgress=!0)})),a("init",(()=>{t.params.parallax.enabled&&r()})),a("setTranslate",(()=>{t.params.parallax.enabled&&r()})),a("setTransition",((e,s)=>{t.params.parallax.enabled&&function(e){void 0===e&&(e=t.params.speed);const{$el:s}=t;s.find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each((t=>{const s=d(t);let a=parseInt(s.attr("data-swiper-parallax-duration"),10)||e;0===e&&(a=0),s.transition(a)}))}(s)}))},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;const n=r();s({zoom:{enabled:!1,maxRatio:3,minRatio:1,toggle:!0,containerClass:"swiper-zoom-container",zoomedSlideClass:"swiper-slide-zoomed"}}),t.zoom={enabled:!1};let l,o,c,p=1,u=!1;const m={$slideEl:void 0,slideWidth:void 0,slideHeight:void 0,$imageEl:void 0,$imageWrapEl:void 0,maxRatio:3},f={isTouched:void 0,isMoved:void 0,currentX:void 0,currentY:void 0,minX:void 0,minY:void 0,maxX:void 0,maxY:void 0,width:void 0,height:void 0,startX:void 0,startY:void 0,touchesStart:{},touchesCurrent:{}},g={x:void 0,y:void 0,prevPositionX:void 0,prevPositionY:void 0,prevTime:void 0};let v=1;function w(e){if(e.targetTouches.length<2)return 1;const t=e.targetTouches[0].pageX,s=e.targetTouches[0].pageY,a=e.targetTouches[1].pageX,i=e.targetTouches[1].pageY;return Math.sqrt((a-t)**2+(i-s)**2)}function b(e){const s=t.support,a=t.params.zoom;if(o=!1,c=!1,!s.gestures){if("touchstart"!==e.type||"touchstart"===e.type&&e.targetTouches.length<2)return;o=!0,m.scaleStart=w(e)}m.$slideEl&&m.$slideEl.length||(m.$slideEl=d(e.target).closest(`.${t.params.slideClass}`),0===m.$slideEl.length&&(m.$slideEl=t.slides.eq(t.activeIndex)),m.$imageEl=m.$slideEl.find(`.${a.containerClass}`).eq(0).find("picture, img, svg, canvas, .swiper-zoom-target").eq(0),m.$imageWrapEl=m.$imageEl.parent(`.${a.containerClass}`),m.maxRatio=m.$imageWrapEl.attr("data-swiper-zoom")||a.maxRatio,0!==m.$imageWrapEl.length)?(m.$imageEl&&m.$imageEl.transition(0),u=!0):m.$imageEl=void 0}function x(e){const s=t.support,a=t.params.zoom,i=t.zoom;if(!s.gestures){if("touchmove"!==e.type||"touchmove"===e.type&&e.targetTouches.length<2)return;c=!0,m.scaleMove=w(e)}m.$imageEl&&0!==m.$imageEl.length?(s.gestures?i.scale=e.scale*p:i.scale=m.scaleMove/m.scaleStart*p,i.scale>m.maxRatio&&(i.scale=m.maxRatio-1+(i.scale-m.maxRatio+1)**.5),i.scale<a.minRatio&&(i.scale=a.minRatio+1-(a.minRatio-i.scale+1)**.5),m.$imageEl.transform(`translate3d(0,
11570,0) scale(${i.scale})`)):"gesturechange"===e.type&&b(e)}function y(e){const s=t.device,a=t.support,i=t.params.zoom,r=t.zoom;if(!a.gestures){if(!o||!c)return;if("touchend"!==e.type||"touchend"===e.type&&e.changedTouches.length<2&&!s.android)return;o=!1,c=!1}m.$imageEl&&0!==m.$imageEl.length&&(r.scale=Math.max(Math.min(r.scale,m.maxRatio),i.minRatio),m.$imageEl.transition(t.params.speed).transform(`translate3d(0,0,0) scale(${r.scale})`),p=r.scale,u=!1,1===r.scale&&(m.$slideEl=void 0))}function E(e){const s=t.zoom;if(!m.$imageEl||0===m.$imageEl.length)return;if(t.allowClick=!1,!f.isTouched||!m.$slideEl)return;f.isMoved||(f.width=m.$imageEl[0].offsetWidth,f.height=m.$imageEl[0].offsetHeight,f.startX=h(m.$imageWrapEl[0],"x")||0,f.startY=h(m.$imageWrapEl[0],"y")||0,m.slideWidth=m.$slideEl[0].offsetWidth,m.slideHeight=m.$slideEl[0].offsetHeight,m.$imageWrapEl.transition(0));const a=f.width*s.scale,i=f.height*s.scale;if(!(a<m.slideWidth&&i<m.slideHeight)){if(f.minX=Math.min(m.slideWidth/2-a/2,0),f.maxX=-f.minX,f.minY=Math.min(m.slideHeight/2-i/2,0),f.maxY=-f.minY,f.touchesCurrent.x="touchmove"===e.type?e.targetTouches[0].pageX:e.pageX,f.touchesCurrent.y="touchmove"===e.type?e.targetTouches[0].pageY:e.pageY,!f.isMoved&&!u){if(t.isHorizontal()&&(Math.floor(f.minX)===Math.floor(f.startX)&&f.touchesCurrent.x<f.touchesStart.x||Math.floor(f.maxX)===Math.floor(f.startX)&&f.touchesCurrent.x>f.touchesStart.x))return void(f.isTouched=!1);if(!t.isHorizontal()&&(Math.floor(f.minY)===Math.floor(f.startY)&&f.touchesCurrent.y<f.touchesStart.y||Math.floor(f.maxY)===Math.floor(f.startY)&&f.touchesCurrent.y>f.touchesStart.y))return void(f.isTouched=!1)}e.cancelable&&e.preventDefault(),e.stopPropagation(),f.isMoved=!0,f.currentX=f.touchesCurrent.x-f.touchesStart.x+f.startX,f.currentY=f.touchesCurrent.y-f.touchesStart.y+f.startY,f.currentX<f.minX&&(f.currentX=f.minX+1-(f.minX-f.currentX+1)**.8),f.currentX>f.maxX&&(f.currentX=f.maxX-1+(f.currentX-f.maxX+1)**.8),f.currentY<f.minY&&(f.currentY=f.minY+1-(f.minY-f.currentY+1)**.8),f.currentY>f.maxY&&(f.currentY=f.maxY-1+(f.currentY-f.maxY+1)**.8),g.prevPositionX||(g.prevPositionX=f.touchesCurrent.x),g.prevPositionY||(g.prevPositionY=f.touchesCurrent.y),g.prevTime||(g.prevTime=Date.now()),g.x=(f.touchesCurrent.x-g.prevPositionX)/(Date.now()-g.prevTime)/2,g.y=(f.touchesCurrent.y-g.prevPositionY)/(Date.now()-g.prevTime)/2,Math.abs(f.touchesCurrent.x-g.prevPositionX)<2&&(g.x=0),Math.abs(f.touchesCurrent.y-g.prevPositionY)<2&&(g.y=0),g.prevPositionX=f.touchesCurrent.x,g.prevPositionY=f.touchesCurrent.y,g.prevTime=Date.now(),m.$imageWrapEl.transform(`translate3d(${f.currentX}px, ${f.currentY}px,0)`)}}function C(){const e=t.zoom;m.$slideEl&&t.previousIndex!==t.activeIndex&&(m.$imageEl&&m.$imageEl.transform("translate3d(0,0,0) scale(1)"),m.$imageWrapEl&&m.$imageWrapEl.transform("translate3d(0,0,0)"),e.scale=1,p=1,m.$slideEl=void 0,m.$imageEl=void 0,m.$imageWrapEl=void 0)}function T(e){const s=t.zoom,a=t.params.zoom;if(m.$slideEl||(e&&e.target&&(m.$slideEl=d(e.target).closest(`.${t.params.slideClass}`)),m.$slideEl||(t.params.virtual&&t.params.virtual.enabled&&t.virtual?m.$slideEl=t.$wrapperEl.children(`.${t.params.slideActiveClass}`):m.$slideEl=t.slides.eq(t.activeIndex)),m.$imageEl=m.$slideEl.find(`.${a.containerClass}`).eq(0).find("picture, img, svg, canvas, .swiper-zoom-target").eq(0),m.$imageWrapEl=m.$imageEl.parent(`.${a.containerClass}`)),!m.$imageEl||0===m.$imageEl.length||!m.$imageWrapEl||0===m.$imageWrapEl.length)return;let i,r,l,o,c,u,h,g,v,w,b,x,y,E,C,T,$,S;t.params.cssMode&&(t.wrapperEl.style.overflow="hidden",t.wrapperEl.style.touchAction="none"),m.$slideEl.addClass(`${a.zoomedSlideClass}`),void 0===f.touchesStart.x&&e?(i="touchend"===e.type?e.changedTouches[0].pageX:e.pageX,r="touchend"===e.type?e.changedTouches[0].pageY:e.pageY):(i=f.touchesStart.x,r=f.touchesStart.y),s.scale=m.$imageWrapEl.attr("data-swiper-zoom")||a.maxRatio,p=m.$imageWrapEl.attr("data-swiper-zoom")||a.maxRatio,e?($=m.$slideEl[0].offsetWidth,S=m.$slideEl[0].offsetHeight,l=m.$slideEl.offset().left+n.scrollX,o=m.$slideEl.offset().top+n.scrollY,c=l+$/2-i,u=o+S/2-r,v=m.$imageEl[0].offsetWidth,w=m.$imageEl[0].offsetHeight,b=v*s.scale,x=w*s.scale,y=Math.min($/2-b/2,0),E=Math.min(S/2-x/2,0),C=-y,T=-E,h=c*s.scale,g=u*s.scale,h<y&&(h=y),h>C&&(h=C),g<E&&(g=E),g>T&&(g=T)):(h=0,g=0),m.$imageWrapEl.transition(300).transform(`translate3d(${h}px, ${g}
1157px,0)`),m.$imageEl.transition(300).transform(`translate3d(0,0,0) scale(${s.scale})`)}function $(){const e=t.zoom,s=t.params.zoom;m.$slideEl||(t.params.virtual&&t.params.virtual.enabled&&t.virtual?m.$slideEl=t.$wrapperEl.children(`.${t.params.slideActiveClass}`):m.$slideEl=t.slides.eq(t.activeIndex),m.$imageEl=m.$slideEl.find(`.${s.containerClass}`).eq(0).find("picture, img, svg, canvas, .swiper-zoom-target").eq(0),m.$imageWrapEl=m.$imageEl.parent(`.${s.containerClass}`)),m.$imageEl&&0!==m.$imageEl.length&&m.$imageWrapEl&&0!==m.$imageWrapEl.length&&(t.params.cssMode&&(t.wrapperEl.style.overflow="",t.wrapperEl.style.touchAction=""),e.scale=1,p=1,m.$imageWrapEl.transition(300).transform("translate3d(0,0,0)"),m.$imageEl.transition(300).transform("translate3d(0,0,0) scale(1)"),m.$slideEl.removeClass(`${s.zoomedSlideClass}`),m.$slideEl=void 0)}function S(e){const s=t.zoom;s.scale&&1!==s.scale?$():T(e)}function M(){const e=t.support;return{passiveListener:!("touchstart"!==t.touchEvents.start||!e.passiveListener||!t.params.passiveListeners)&&{passive:!0,capture:!1},activeListenerWithCapture:!e.passiveListener||{passive:!1,capture:!0}}}function P(){return`.${t.params.slideClass}`}function k(e){const{passiveListener:s}=M(),a=P();t.$wrapperEl[e]("gesturestart",a,b,s),t.$wrapperEl[e]("gesturechange",a,x,s),t.$wrapperEl[e]("gestureend",a,y,s)}function z(){l||(l=!0,k("on"))}function L(){l&&(l=!1,k("off"))}function O(){const e=t.zoom;if(e.enabled)return;e.enabled=!0;const s=t.support,{passiveListener:a,activeListenerWithCapture:i}=M(),r=P();s.gestures?(t.$wrapperEl.on(t.touchEvents.start,z,a),t.$wrapperEl.on(t.touchEvents.end,L,a)):"touchstart"===t.touchEvents.start&&(t.$wrapperEl.on(t.touchEvents.start,r,b,a),t.$wrapperEl.on(t.touchEvents.move,r,x,i),t.$wrapperEl.on(t.touchEvents.end,r,y,a),t.touchEvents.cancel&&t.$wrapperEl.on(t.touchEvents.cancel,r,y,a)),t.$wrapperEl.on(t.touchEvents.move,`.${t.params.zoom.containerClass}`,E,i)}function I(){const e=t.zoom;if(!e.enabled)return;const s=t.support;e.enabled=!1;const{passiveListener:a,activeListenerWithCapture:i}=M(),r=P();s.gestures?(t.$wrapperEl.off(t.touchEvents.start,z,a),t.$wrapperEl.off(t.touchEvents.end,L,a)):"touchstart"===t.touchEvents.start&&(t.$wrapperEl.off(t.touchEvents.start,r,b,a),t.$wrapperEl.off(t.touchEvents.move,r,x,i),t.$wrapperEl.off(t.touchEvents.end,r,y,a),t.touchEvents.cancel&&t.$wrapperEl.off(t.touchEvents.cancel,r,y,a)),t.$wrapperEl.off(t.touchEvents.move,`.${t.params.zoom.containerClass}`,E,i)}Object.defineProperty(t.zoom,"scale",{get:()=>v,set(e){if(v!==e){const t=m.$imageEl?m.$imageEl[0]:void 0,s=m.$slideEl?m.$slideEl[0]:void 0;i("zoomChange",e,t,s)}v=e}}),a("init",(()=>{t.params.zoom.enabled&&O()})),a("destroy",(()=>{I()})),a("touchStart",((e,s)=>{t.zoom.enabled&&function(e){const s=t.device;m.$imageEl&&0!==m.$imageEl.length&&(f.isTouched||(s.android&&e.cancelable&&e.preventDefault(),f.isTouched=!0,f.touchesStart.x="touchstart"===e.type?e.targetTouches[0].pageX:e.pageX,f.touchesStart.y="touchstart"===e.type?e.targetTouches[0].pageY:e.pageY))}(s)})),a("touchEnd",((e,s)=>{t.zoom.enabled&&function(){const e=t.zoom;if(!m.$imageEl||0===m.$imageEl.length)return;if(!f.isTouched||!f.isMoved)return f.isTouched=!1,void(f.isMoved=!1);f.isTouched=!1,f.isMoved=!1;let s=300,a=300;const i=g.x*s,r=f.currentX+i,n=g.y*a,l=f.currentY+n;0!==g.x&&(s=Math.abs((r-f.currentX)/g.x)),0!==g.y&&(a=Math.abs((l-f.currentY)/g.y));const o=Math.max(s,a);f.currentX=r,f.currentY=l;const d=f.width*e.scale,c=f.height*e.scale;f.minX=Math.min(m.slideWidth/2-d/2,0),f.maxX=-f.minX,f.minY=Math.min(m.slideHeight/2-c/2,0),f.maxY=-f.minY,f.currentX=Math.max(Math.min(f.currentX,f.maxX),f.minX),f.currentY=Math.max(Math.min(f.currentY,f.maxY),f.minY),m.$imageWrapEl.transition(o).transform(`translate3d(${f.currentX}px, ${f.currentY}px,0)`)}()})),a("doubleTap",((e,s)=>{!t.animating&&t.params.zoom.enabled&&t.zoom.enabled&&t.params.zoom.toggle&&S(s)})),a("transitionEnd",(()=>{t.zoom.enabled&&t.params.zoom.enabled&&C()})),a("slideChange",(()=>{t.zoom.enabled&&t.params.zoom.enabled&&t.params.cssMode&&C()})),Object.assign(t.zoom,{enable:O,disable:I,in:T,out:$,toggle:S})},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;s({lazy:{checkInView:!1,enabled:!1,loadPrevNext:!1,loadPrevNextAmount:1,loadOnTransitionStart:!1,scrollingElement:"",elementClass:"swiper-lazy",loadingClass:"swiper-lazy-loading",loadedClass:"swiper-lazy-loaded",preloaderClass:"swiper-lazy-preloader"}}),t.lazy={};let n=!1,l=!1;function o(e,s){void 0===s&&(s=!0);const a=t.params.lazy;if(void 0===e)return;if(0===t.slides.length)return;const r=t.virtual&&t.params.virtual.enabled?t.$wrapperEl.children(`.${t.params.slideClass}[data-swiper-slide-index="${e}"]`):t.slides.eq(e),n=r.find(`.${a.elementClass}:not(.${a.loadedClass}):not(.${a.loadingClass})`);!r.hasClass(a.elementClass)||r.hasClass(a.loadedClass)||r.hasClass(a.loadingClass)||n.push(r[0]),0!==n.length&&n.each((e=>{const n=d(e);n.addClass(a.loadingClass);const l=n.attr("data-background"),c=n.attr("data-src"),p=n.attr("data-srcset"),u=n.attr("data-sizes"),h=n.parent("picture");t.loadImage(n[0],c||l,p,u,!1,(()=>
1157{if(null!=t&&t&&(!t||t.params)&&!t.destroyed){if(l?(n.css("background-image",`url("${l}")`),n.removeAttr("data-background")):(p&&(n.attr("srcset",p),n.removeAttr("data-srcset")),u&&(n.attr("sizes",u),n.removeAttr("data-sizes")),h.length&&h.children("source").each((e=>{const t=d(e);t.attr("data-srcset")&&(t.attr("srcset",t.attr("data-srcset")),t.removeAttr("data-srcset"))})),c&&(n.attr("src",c),n.removeAttr("data-src"))),n.addClass(a.loadedClass).removeClass(a.loadingClass),r.find(`.${a.preloaderClass}`).remove(),t.params.loop&&s){const e=r.attr("data-swiper-slide-index");if(r.hasClass(t.params.slideDuplicateClass)){o(t.$wrapperEl.children(`[data-swiper-slide-index="${e}"]:not(.${t.params.slideDuplicateClass})`).index(),!1)}else{o(t.$wrapperEl.children(`.${t.params.slideDuplicateClass}[data-swiper-slide-index="${e}"]`).index(),!1)}}i("lazyImageReady",r[0],n[0]),t.params.autoHeight&&t.updateAutoHeight()}})),i("lazyImageLoad",r[0],n[0])}))}function c(){const{$wrapperEl:e,params:s,slides:a,activeIndex:i}=t,r=t.virtual&&s.virtual.enabled,n=s.lazy;let c=s.slidesPerView;function p(t){if(r){if(e.children(`.${s.slideClass}[data-swiper-slide-index="${t}"]`).length)return!0}else if(a[t])return!0;return!1}function u(e){return r?d(e).attr("data-swiper-slide-index"):d(e).index()}if("auto"===c&&(c=0),l||(l=!0),t.params.watchSlidesProgress)e.children(`.${s.slideVisibleClass}`).each((e=>{o(r?d(e).attr("data-swiper-slide-index"):d(e).index())}));else if(c>1)for(let e=i;e<i+c;e+=1)p(e)&&o(e);else o(i);if(n.loadPrevNext)if(c>1||n.loadPrevNextAmount&&n.loadPrevNextAmount>1){const e=n.loadPrevNextAmount,t=Math.ceil(c),s=Math.min(i+t+Math.max(e,t),a.length),r=Math.max(i-Math.max(t,e),
11570);for(let e=i+t;e<s;e+=1)p(e)&&o(e);for(let e=r;e<i;e+=1)p(e)&&o(e)}else{const t=e.children(`.${s.slideNextClass}`);t.length>0&&o(u(t));const a=e.children(`.${s.slidePrevClass}`);a.length>0&&o(u(a))}}function p(){const e=r();if(!t||t.destroyed)return;const s=t.params.lazy.scrollingElement?d(t.params.lazy.scrollingElement):d(e),a=s[0]===e,i=a?e.innerWidth:s[0].offsetWidth,l=a?e.innerHeight:s[0].offsetHeight,o=t.$el.offset(),{rtlTranslate:u}=t;let h=!1;u&&(o.left-=t.$el[0].scrollLeft);const m=[[o.left,o.top],[o.left+t.width,o.top],[o.left,o.top+t.height],[o.left+t.width,o.top+t.height]];for(let e=0;e<m.length;e+=1){const t=m[e];if(t[0]>=0&&t[0]<=i&&t[1]>=0&&t[1]<=l){if(0===t[0]&&0===t[1])continue;h=!0}}const f=!("touchstart"!==t.touchEvents.start||!t.support.passiveListener||!t.params.passiveListeners)&&{passive:!0,capture:!1};h?(c(),s.off("scroll",p,f)):n||(n=!0,s.on("scroll",p,f))}a("beforeInit",(()=>{t.params.lazy.enabled&&t.params.preloadImages&&(t.params.preloadImages=!1)})),a("init",(()=>{t.params.lazy.enabled&&(t.params.lazy.checkInView?p():c())})),a("scroll",(()=>{t.params.freeMode&&t.params.freeMode.enabled&&!t.params.freeMode.sticky&&c()})),a("scrollbarDragMove resize _freeModeNoMomentumRelease",(()=>{t.params.lazy.enabled&&(t.params.lazy.checkInView?p():c())})),a("transitionStart",(()=>{t.params.lazy.enabled&&(t.params.lazy.loadOnTransitionStart||!t.params.lazy.loadOnTransitionStart&&!l)&&(t.params.lazy.checkInView?p():c())})),a("transitionEnd",(()=>{t.params.lazy.enabled&&!t.params.lazy.loadOnTransitionStart&&(t.params.lazy.checkInView?p():c())})),a("slideChange",(()=>{const{lazy:e,cssMode:s,watchSlidesProgress:a,touchReleaseOnEdges:i,resistanceRatio:r}=t.params;e.enabled&&(s||a&&(i||0===r))&&c()})),a("destroy",(()=>{t.$el&&t.$el.find(`.${t.params.lazy.loadingClass}`).removeClass(t.params.lazy.loadingClass)})),Object.assign(t.lazy,{load:c,loadInSlide:o})},function(e){let{swiper:t,extendParams:s,on:a}=e;function i(e,t){const s=function(){let e,t,s;return(a,i)=>{for(t=-1,e=a.length;e-t>1;)s=e+t>>1,a[s]<=i?t=s:e=s;return e}}();let a,i;return this.x=e,this.y=t,this.lastIndex=e.length-1,this.interpolate=function(e){return e?(i=s(this.x,e),a=i-1,(e-this.x[a])*(this.y[i]-this.y[a])/(this.x[i]-this.x[a])+this.y[a]):0},this}function r(){t.controller.control&&t.controller.spline&&(t.controller.spline=void 0,delete t.controller.spline)}s({controller:{control:void 0,inverse:!1,by:"slide"}}),t.controller={control:void 0},a("beforeInit",(()=>{t.controller.control=t.params.controller.control})),a("update",(()=>{r()})),a("resize",(()=>{r()})),a("observerUpdate",(()=>{r()})),a("setTranslate",((e,s,a)=>{t.controller.control&&t.controller.setTranslate(s,a)})),a("setTransition",((e,s,a)=>{t.controller.control&&t.controller.setTransition(s,a)})),Object.assign(t.controller,{setTranslate:function(e,s){const a=t.controller.control;let r,n;const l=t.constructor;function o(e){const s=t.rtlTranslate?-t.translate:t.translate;"slide"===t.params.controller.by&&(!function(e){t.controller.spline||(t.controller.spline=t.params.loop?new i(t.slidesGrid,e.slidesGrid):new i(t.snapGrid,e.snapGrid))}(e),n=-t.controller.spline.interpolate(-s)),n&&"container"!==t.params.controller.by||(r=(e.maxTranslate()-e.minTranslate())/(t.maxTranslate()-t.minTranslate()),n=(s-t.minTranslate())*r+e.minTranslate()),t.params.controller.inverse&&(n=e.maxTranslate()-n),e.updateProgress(n),e.setTranslate(n,t),e.updateActiveIndex(),e.updateSlidesClasses()}if(Array.isArray(a))for(let e=0;e<a.length;e+=1)a[e]!==s&&a[e]instanceof l&&o(a[e]);else a instanceof l&&s!==a&&o(a)},setTransition:function(e,s){const a=t.constructor,i=t.controller.control;let r;function n(s){s.setTransition(e,t),0!==e&&(s.transitionStart(),s.params.autoHeight&&p((()=>{s.updateAutoHeight()})),s.$wrapperEl.transitionEnd((()=>{i&&(s.params.loop&&"slide"===t.params.controller.by&&s.loopFix(),s.transitionEnd())})))}if(Array.isArray(i))for(r=0;r<i.length;r+=1)i[r]!==s&&i[r]instanceof a&&n(i[r]);else i instanceof a&&s!==i&&n(i)}})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({a11y:{enabled:!0,notificationClass:"swiper-notification",prevSlideMessage:"Previous slide",nextSlideMessage:"Next slide",firstSlideMessage:"This is the first slide",lastSlideMessage:"This is the last slide",paginationBulletMessage:"Go to slide {{index}}",slideLabelMessage:"{{index}} / {{slidesLength}}",containerMessage:null,containerRoleDescriptionMessage:null,itemRoleDescriptionMessage:null,slideRole:"group",id:null}});let i=null;function r(e){const t=i;0!==t.length&&(t.html(""),t.html(e))}function n(e){e.attr("tabIndex","0")}function l(e){e.attr("tabIndex","-1")}function o(e,t){e.attr("role",t)}function c(e,t){e.attr("aria-roledescription",t)}function p(e,t){e.attr("aria-label",t)}function u(e){e.attr("aria-disabled",!0)}function h(e){e.attr("aria-disabled",!1)}function m(e){if(13!==e.keyCode&&32!==e.keyCode)return;const s=t.params.a11y,a=d(e.target);t.navigation&&t.navigation.$nextEl&&a.is(t.navigation.$nextEl)&&(t.isEnd&&!t.params.loop||t.slideNext(),t.isEnd?r(s.lastSlideMessage):r(s.nextSlideMessage)),t.navigation&&t.navigation.$prevEl&&a.is(t.navigation.$prevEl)&&(t.isBeginning&&!t.params.loop||t.slidePrev(),t.isBeginning?r(s.firstSlideMessage):r(s.prevSlideMessage)),t.pagination&&a.is(U(t.params.pagination.bulletClass))&&a[0].click()}function f(){return t.pagination&&t.pagination.bullets&&t.pagination.bullets.length}function g(){return f()&&t.params.pagination.clickable}const v=(e,t,s)=>
1157{n(e),"BUTTON"!==e[0].tagName&&(o(e,"button"),e.on("keydown",m)),p(e,s),function(e,t){e.attr("aria-controls",t)}(e,t)},w=e=>{const s=e.target.closest(`.${t.params.slideClass}`);if(!s||!t.slides.includes(s))return;const a=t.slides.indexOf(s)===t.activeIndex,i=t.params.watchSlidesProgress&&t.visibleSlides&&t.visibleSlides.includes(s);a||i||t.slideTo(t.slides.indexOf(s),0)},b=()=>{const e=t.params.a11y;e.itemRoleDescriptionMessage&&c(d(t.slides),e.itemRoleDescriptionMessage),o(d(t.slides),e.slideRole);const s=t.params.loop?t.slides.filter((e=>!e.classList.contains(t.params.slideDuplicateClass))).length:t.slides.length;e.slideLabelMessage&&t.slides.each(((a,i)=>{const r=d(a),n=t.params.loop?parseInt(r.attr("data-swiper-slide-index"),10):i;p(r,e.slideLabelMessage.replace(/\{\{index\}\}/,n+1).replace(/\{\{slidesLength\}\}/,s))}))},x=()=>{const e=t.params.a11y;t.$el.append(i);const s=t.$el;e.containerRoleDescriptionMessage&&c(s,e.containerRoleDescriptionMessage),e.containerMessage&&p(s,e.containerMessage);const a=t.$wrapperEl,r=e.id||a.attr("id")||`swiper-wrapper-${n=16,void 0===n&&(n=16),"x".repeat(n).replace(/x/g,(()=>Math.round(16*Math.random()).toString(16)))}`;var n;const l=t.params.autoplay&&t.params.autoplay.enabled?"off":"polite";var o;let d,u;o=r,a.attr("id",o),function(e,t){e.attr("aria-live",t)}(a,l),b(),t.navigation&&t.navigation.$nextEl&&(d=t.navigation.$nextEl),t.navigation&&t.navigation.$prevEl&&(u=t.navigation.$prevEl),d&&d.length&&v(d,r,e.nextSlideMessage),u&&u.length&&v(u,r,e.prevSlideMessage),g()&&t.pagination.$el.on("keydown",U(t.params.pagination.bulletClass),m),t.$el.on("focus",w,!0)};a("beforeInit",(()=>{i=d(`<span class="${t.params.a11y.notificationClass}" aria-live="assertive" aria-atomic="true"></span>`)})),a("afterInit",(()=>{t.params.a11y.enabled&&x()})),a("slidesLengthChange snapGridLengthChange slidesGridLengthChange",(()=>{t.params.a11y.enabled&&b()})),a("fromEdge toEdge afterInit lock unlock",(()=>{t.params.a11y.enabled&&function(){if(t.params.loop||t.params.rewind||!t.navigation)return;const{$nextEl:e,$prevEl:s}=t.navigation;s&&s.length>0&&(t.isBeginning?(u(s),l(s)):(h(s),n(s))),e&&e.length>0&&(t.isEnd?(u(e),l(e)):(h(e),n(e)))}()})),a("paginationUpdate",(()=>{t.params.a11y.enabled&&function(){const e=t.params.a11y;f()&&t.pagination.bullets.each((s=>{const a=d(s);t.params.pagination.clickable&&(n(a),t.params.pagination.renderBullet||(o(a,"button"),p(a,e.paginationBulletMessage.replace(/\{\{index\}\}/,a.index()+1)))),a.is(`.${t.params.pagination.bulletActiveClass}`)?a.attr("aria-current","true"):a.removeAttr("aria-current")}))}()})),a("destroy",(()=>{t.params.a11y.enabled&&function(){let e,s;i&&i.length>0&&i.remove(),t.navigation&&t.navigation.$nextEl&&(e=t.navigation.$nextEl),t.navigation&&t.navigation.$prevEl&&(s=t.navigation.$prevEl),e&&e.off("keydown",m),s&&s.off("keydown",m),g()&&t.pagination.$el.off("keydown",U(t.params.pagination.bulletClass),m),t.$el.off("focus",w,!0)}()}))},function(e){let{swiper:t,extendParams:s,on:a}=e;s({history:{enabled:!1,root:"",replaceState:!1,key:"slides",keepQuery:!1}});let i=!1,n={};const l=e=>e.toString().replace(/\s+/g,"-").replace(/[^\w-]+/g,"").replace(/--+/g,"-").replace(/^-+/,"").replace(/-+$/,""),o=e=>{const t=r();let s;s=e?new URL(e):t.location;const a=s.pathname.slice(1).split("/").filter((e=>""!==e)),i=a.length;return{key:a[i-2],value:a[i-1]}},d=(e,s)=>{const a=r();if(!i||!t.params.history.enabled)return;let n;n=t.params.url?new URL(t.params.url):a.location;const o=t.slides.eq(s);let d=l(o.attr("data-history"));if(t.params.history.root.length>0){let s=t.params.history.root;"/"===s[s.length-1]&&(s=s.slice(0,s.length-1)),d=`${s}/${e}/${d}`}else n.pathname.includes(e)||(d=`${e}/${d}`);t.params.history.keepQuery&&(d+=n.search);const c=a.history.state;c&&c.value===d||(t.params.history.replaceState?a.history.replaceState({value:d},null,d):a.history.pushState({value:d},null,d))},c=(e,s,a)=>{if(s)for(let i=0,r=t.slides.length;i<r;i+=1){const r=t.slides.eq(i);if(l(r.attr("data-history"))===s&&!r.hasClass(t.params.slideDuplicateClass)){const s=r.index();t.slideTo(s,e,a)}}else t.slideTo(0,e,a)},p=()=>{n=o(t.params.url),c(t.params.speed,n.value,!1)};a("init",(()=>{t.params.history.enabled&&(()=>{const e=r();
1157if(t.params.history){if(!e.history||!e.history.pushState)return t.params.history.enabled=!1,void(t.params.hashNavigation.enabled=!0);i=!0,n=o(t.params.url),(n.key||n.value)&&(c(0,n.value,t.params.runCallbacksOnInit),t.params.history.replaceState||e.addEventListener("popstate",p))}})()})),a("destroy",(()=>{t.params.history.enabled&&(()=>{const e=r();t.params.history.replaceState||e.removeEventListener("popstate",p)})()})),a("transitionEnd _freeModeNoMomentumRelease",(()=>{i&&d(t.params.history.key,t.activeIndex)})),a("slideChange",(()=>{i&&t.params.cssMode&&d(t.params.history.key,t.activeIndex)}))},function(e){let{swiper:t,extendParams:s,emit:i,on:n}=e,l=!1;const o=a(),c=r();s({hashNavigation:{enabled:!1,replaceState:!1,watchState:!1}});const p=()=>{i("hashChange");const e=o.location.hash.replace("#","");if(e!==t.slides.eq(t.activeIndex).attr("data-hash")){const s=t.$wrapperEl.children(`.${t.params.slideClass}[data-hash="${e}"]`).index();if(void 0===s)return;t.slideTo(s)}},u=()=>{if(l&&t.params.hashNavigation.enabled)if(t.params.hashNavigation.replaceState&&c.history&&c.history.replaceState)c.history.replaceState(null,null,`#${t.slides.eq(t.activeIndex).attr("data-hash")}`||""),i("hashSet");else{const e=t.slides.eq(t.activeIndex),s=e.attr("data-hash")||e.attr("data-history");o.location.hash=s||"",i("hashSet")}};n("init",(()=>{t.params.hashNavigation.enabled&&(()=>{if(!t.params.hashNavigation.enabled||t.params.history&&t.params.history.enabled)return;l=!0;const e=o.location.hash.replace("#","");if(e){const s=0;for(let a=0,i=t.slides.length;a<i;a+=1){const i=t.slides.eq(a);if((i.attr("data-hash")||i.attr("data-history"))===e&&!i.hasClass(t.params.slideDuplicateClass)){const e=i.index();t.slideTo(e,s,t.params.runCallbacksOnInit,!0)}}}t.params.hashNavigation.watchState&&d(c).on("hashchange",p)})()})),n("destroy",(()=>{t.params.hashNavigation.enabled&&t.params.hashNavigation.watchState&&d(c).off("hashchange",p)})),n("transitionEnd _freeModeNoMomentumRelease",(()=>{l&&u()})),n("slideChange",(()=>{l&&t.params.cssMode&&u()}))},function(e){let t,{swiper:s,extendParams:i,on:r,emit:n}=e;function l(){const e=s.slides.eq(s.activeIndex);let a=s.params.autoplay.delay;e.attr("data-swiper-autoplay")&&(a=e.attr("data-swiper-autoplay")||s.params.autoplay.delay),clearTimeout(t),t=p((()=>{let e;s.params.autoplay.reverseDirection?s.params.loop?(s.loopFix(),e=s.slidePrev(s.params.speed,!0,!0),n("autoplay")):s.isBeginning?s.params.autoplay.stopOnLastSlide?d():(e=s.slideTo(s.slides.length-1,s.params.speed,!0,!0),n("autoplay")):(e=s.slidePrev(s.params.speed,!0,!0),n("autoplay")):s.params.loop?(s.loopFix(),e=s.slideNext(s.params.speed,!0,!0),n("autoplay")):s.isEnd?s.params.autoplay.stopOnLastSlide?d():(e=s.slideTo(0,s.params.speed,!0,!0),n("autoplay")):(e=s.slideNext(s.params.speed,!0,!0),n("autoplay")),(s.params.cssMode&&s.autoplay.running||!1===e)&&l()}),a)}function o(){return void 0===t&&(!s.autoplay.running&&(s.autoplay.running=!0,n("autoplayStart"),l(),!0))}function d(){return!!s.autoplay.running&&(void 0!==t&&(t&&(clearTimeout(t),t=void 0),s.autoplay.running=!1,n("autoplayStop"),!0))}function c(e){s.autoplay.running&&(s.autoplay.paused||(t&&clearTimeout(t),s.autoplay.paused=!0,0!==e&&s.params.autoplay.waitForTransition?["transitionend","webkitTransitionEnd"].forEach((e=>{s.$wrapperEl[0].addEventListener(e,h)})):(s.autoplay.paused=!1,l())))}function u(){const e=a();"hidden"===e.visibilityState&&s.autoplay.running&&c(),"visible"===e.visibilityState&&s.autoplay.paused&&(l(),s.autoplay.paused=!1)}function h(e){s&&!s.destroyed&&s.$wrapperEl&&e.target===s.$wrapperEl[0]&&(["transitionend","webkitTransitionEnd"].forEach((e=>{s.$wrapperEl[0].removeEventListener(e,h)})),s.autoplay.paused=!1,s.autoplay.running?l():d())}function m(){s.params.autoplay.disableOnInteraction?d():(n("autoplayPause"),c()),["transitionend","webkitTransitionEnd"].forEach((e=>{s.$wrapperEl[0].removeEventListener(e,h)}))}function f(){s.params.autoplay.disableOnInteraction||(s.autoplay.paused=!1,n("autoplayResume"),l())}s.autoplay={running:!1,paused:!1},i({autoplay:{enabled:!1,delay:3e3,waitForTransition:!0,disableOnInteraction:!0,stopOnLastSlide:!1,reverseDirection:!1,pauseOnMouseEnter:!1}}),r("init",(()=>{if(s.params.autoplay.enabled){o();a().addEventListener("visibilitychange",u),s.params.autoplay.pauseOnMouseEnter&&(s.$el.on("mouseenter",m),s.$el.on("mouseleave",f))}})),r("beforeTransitionStart",((e,t,a)=>{s.autoplay.running&&(a||!s.params.autoplay.disableOnInteraction?s.autoplay.pause(t):d())})),r("sliderFirstMove",(()=>{s.autoplay.running&&(s.params.autoplay.disableOnInteraction?d():c())})),r("touchEnd",(()=>{s.params.cssMode&&s.autoplay.paused&&!s.params.autoplay.disableOnInteraction&&l()})),r("destroy",(()=>{s.$el.off("mouseenter",m),s.$el.off("mouseleave",f),s.autoplay.running&&d();a().removeEventListener("visibilitychange",u)})),Object.assign(s.autoplay,{pause:c,run:l,start:o,stop:d})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({thumbs:{swiper:null,multipleActiveThumbs:!0,autoScrollOffset:0,slideThumbActiveClass:"swiper-slide-thumb-active",thumbsContainerClass:"swiper-thumbs"}});let i=!1,r=!1;function n(){const e=t.thumbs.swiper;if(!e||e.destroyed)return;const s=e.clickedIndex,a=e.clickedSlide;if(a&&d(a).hasClass(t.params.thumbs.slideThumbActiveClass))return;if(null==s)return;let i;if(i=e.params.loop?parseInt(d(e.clickedSlide).attr("data-swiper-slide-index"),10):s,t.params.loop){let e=t.activeIndex;t.slides.eq(e).hasClass(t.params.slideDuplicateClass)&&(t.loopFix(),t._clientLeft=t.$wrapperEl[0].clientLeft,e=t.activeIndex);const s=t.slides.eq(e).prevAll(`[data-swiper-slide-index="${i}"]`).eq(0).index(),a=t.slides.eq(e).nextAll(`[data-swiper-slide-index="${i}"]`).eq(0).index();i=void 0===s?a:void 0===a?s:a-e<e-s?a:s}t.slideTo(i)}function l(){const{thumbs:e}=t.params;if(i)return!1;i=!0;const s=t.constructor;if(e.swiper instanceof s)t.thumbs.swiper=e.swiper,Object.assign(t.thumbs.swiper.originalParams,{watchSlidesProgress:!0,slideToClickedSlide:!1}),Object.assign(t.thumbs.swiper.params,{watchSlidesProgress:!0,slideToClickedSlide:!1});else if(m(e.swiper)){const a=Object.assign({},e.swiper);Object.assign(a,{watchSlidesProgress:!0,slideToClickedSlide:!1}),t.thumbs.swiper=new s(a),r=!0}return t.thumbs.swiper.$el.addClass(t.params.thumbs.thumbsContainerClass),t.thumbs.swiper.on("tap",n),!0}function o(e){const s=t.thumbs.swiper;if(!s||s.destroyed)return;const a="auto"===s.params.slidesPerView?s.slidesPerViewDynamic():s.params.slidesPerView,i=t.params.thumbs.autoScrollOffset,r=i&&!s.params.loop;if(t.realIndex!==s.realIndex||r){let n,l,o=s.activeIndex;if(s.params.loop){s.slides.eq(o).hasClass(s.params.slideDuplicateClass)&&(s.loopFix(),s._clientLeft=s.$wrapperEl[0].clientLeft,o=s.activeIndex);const e=s.slides.eq(o).prevAll(`[data-swiper-slide-index="${t.realIndex}"]`).eq(0).index(),a=s.slides.eq(o).nextAll(`[data-swiper-slide-index="${t.realIndex}"]`).eq(0).index();n=void 0===e?a:void 0===a?e:a-o==o-e?s.params.slidesPerGroup>1?a:o:a-o<o-e?a:e,l=t.activeIndex>t.previousIndex?"next":"prev"}else n=t.realIndex,l=n>t.previousIndex?"next":"prev";r&&(n+="next"===l?i:-1*i),s.visibleSlidesIndexes&&s.visibleSlidesIndexes.indexOf(n)<0&&(s.params.centeredSlides?n=n>o?n-Math.floor(a/2)+1:n+Math.floor(a/2)-1:n>o&&s.params.slidesPerGroup,s.slideTo(n,e?0:void 0))}let n=1;const l=t.params.thumbs.slideThumbActiveClass;if(t.params.slidesPerView>1&&!t.params.centeredSlides&&(n=t.params.slidesPerView),t.params.thumbs.multipleActiveThumbs||(n=1),n=Math.floor(n),s.slides.removeClass(l),s.params.loop||s.params.virtual&&s.params.virtual.enabled)for(let e=0;e<n;e+=1)s.$wrapperEl.children(`[data-swiper-slide-index="${t.realIndex+e}"]`).addClass(l);else for(let e=0;e<n;e+=1)s.slides.eq(t.realIndex+e).addClass(l)}t.thumbs={swiper:null},a("beforeInit",(()=>{const{thumbs:e}=t.params;e&&e.swiper&&(l(),o(!0))})),a("slideChange update resize observerUpdate",(()=>{o()})),a("setTransition",((e,s)=>{const a=t.thumbs.swiper;a&&!a.destroyed&&a.setTransition(s)})),a("beforeDestroy",(()=>{const e=t.thumbs.swiper;e&&!e.destroyed&&r&&e.destroy()})),Object.assign(t.thumbs,{init:l,update:o})},function(e){let{swiper:t,extendParams:s,emit:a,once:i}=e;s({freeMode:{enabled:!1,momentum:!0,momentumRatio:1,momentumBounce:!0,momentumBounceRatio:1,momentumVelocityRatio:1,sticky:!1,minimumVelocity:.02}}),Object.assign(t,{freeMode:{onTouchStart:function(){const e=t.getTranslate();t.setTranslate(e),t.setTransition(0),t.touchEventsData.velocities.length=0,t.freeMode.onTouchEnd({currentPos:t.rtl?t.translate:-t.translate})},onTouchMove:function(){const{touchEventsData:e,touches:s}=t;0===e.velocities.length&&e.velocities.push({position:s[t.isHorizontal()?"startX":"startY"],time:e.touchStartTime}),e.velocities.push({position:s[t.isHorizontal()?"currentX":"currentY"],time:u()})},onTouchEnd:function(e){let{currentPos:s}=e;const{params:r,$wrapperEl:n,rtlTranslate:l,snapGrid:o,touchEventsData:d}=t,c=u()-d.touchStartTime;if(s<-t.minTranslate())t.slideTo(t.activeIndex);else if(s>-t.maxTranslate())t.slides.length<o.length?t.slideTo(o.length-1):t.slideTo(t.slides.length-1);else{if(r.freeMode.momentum){if(d.velocities.length>1){const e=d.velocities.pop(),s=d.velocities.pop(),a=e.position-s.position,i=e.time-s.time;t.velocity=a/i,t.velocity/=2,Math.abs(t.velocity)<r.freeMode.minimumVelocity&&(t.velocity=0),(i>150||u()-e.time>300)&&(t.velocity=0)}else t.velocity=0;
1157t.velocity*=r.freeMode.momentumVelocityRatio,d.velocities.length=0;let e=1e3*r.freeMode.momentumRatio;const s=t.velocity*e;let c=t.translate+s;l&&(c=-c);let p,h=!1;const m=20*Math.abs(t.velocity)*r.freeMode.momentumBounceRatio;let f;if(c<t.maxTranslate())r.freeMode.momentumBounce?(c+t.maxTranslate()<-m&&(c=t.maxTranslate()-m),p=t.maxTranslate(),h=!0,d.allowMomentumBounce=!0):c=t.maxTranslate(),r.loop&&r.centeredSlides&&(f=!0);else if(c>t.minTranslate())r.freeMode.momentumBounce?(c-t.minTranslate()>m&&(c=t.minTranslate()+m),p=t.minTranslate(),h=!0,d.allowMomentumBounce=!0):c=t.minTranslate(),r.loop&&r.centeredSlides&&(f=!0);else if(r.freeMode.sticky){let e;for(let t=0;t<o.length;t+=1)if(o[t]>-c){e=t;break}c=Math.abs(o[e]-c)<Math.abs(o[e-1]-c)||"next"===t.swipeDirection?o[e]:o[e-1],c=-c}if(f&&i("transitionEnd",(()=>{t.loopFix()})),0!==t.velocity){if(e=l?Math.abs((-c-t.translate)/t.velocity):Math.abs((c-t.translate)/t.velocity),r.freeMode.sticky){const s=Math.abs((l?-c:c)-t.translate),a=t.slidesSizesGrid[t.activeIndex];e=s<a?r.speed:s<2*a?1.5*r.speed:2.5*r.speed}}else if(r.freeMode.sticky)return void t.slideToClosest();r.freeMode.momentumBounce&&h?(t.updateProgress(p),t.setTransition(e),t.setTranslate(c),t.transitionStart(!0,t.swipeDirection),t.animating=!0,n.transitionEnd((()=>{t&&!t.destroyed&&d.allowMomentumBounce&&(a("momentumBounce"),t.setTransition(r.speed),setTimeout((()=>{t.setTranslate(p),n.transitionEnd((()=>{t&&!t.destroyed&&t.transitionEnd()}))}),0))}))):t.velocity?(a("_freeModeNoMomentumRelease"),t.updateProgress(c),t.setTransition(e),t.setTranslate(c),t.transitionStart(!0,t.swipeDirection),t.animating||(t.animating=!0,n.transitionEnd((()=>{t&&!t.destroyed&&t.transitionEnd()})))):t.updateProgress(c),t.updateActiveIndex(),t.updateSlidesClasses()}else{if(r.freeMode.sticky)return void t.slideToClosest();r.freeMode&&a("_freeModeNoMomentumRelease")}(!r.freeMode.momentum||c>=r.longSwipesMs)&&(t.updateProgress(),t.updateActiveIndex(),t.updateSlidesClasses())}}}})},function(e){let t,s,a,{swiper:i,extendParams:r}=e;r({grid:{rows:1,fill:"column"}}),i.grid={initSlides:e=>{const{slidesPerView:r}=i.params,{rows:n,fill:l}=i.params.grid;s=t/n,a=Math.floor(e/n),t=Math.floor(e/n)===e/n?e:Math.ceil(e/n)*n,"auto"!==r&&"row"===l&&(t=Math.max(t,r*n))},updateSlide:(e,r,n,l)=>{const{slidesPerGroup:o,spaceBetween:d}=i.params,{rows:c,fill:p}=i.params.grid;let u,h,m;if("row"===p&&o>1){const s=Math.floor(e/(o*c)),a=e-c*o*s,i=0===s?o:Math.min(Math.ceil((n-s*c*o)/c),o);m=Math.floor(a/i),h=a-m*i+s*o,u=h+m*t/c,r.css({"-webkit-order":u,order:u})}else"column"===p?(h=Math.floor(e/c),m=e-h*c,(h>a||h===a&&m===c-1)&&(m+=1,m>=c&&(m=0,h+=1))):(m=Math.floor(e/s),h=e-m*s);r.css(l("margin-top"),0!==m?d&&`${d}px`:"")},updateWrapperSize:(e,s,a)=>{const{spaceBetween:r,centeredSlides:n,roundLengths:l}=i.params,{rows:o}=i.params.grid;if(i.virtualSize=(e+r)*t,i.virtualSize=Math.ceil(i.virtualSize/o)-r,i.$wrapperEl.css({[a("width")]:`${i.virtualSize+r}px`}),n){s.splice(0,s.length);const e=[];for(let t=0;t<s.length;t+=1){let a=s[t];l&&(a=Math.floor(a)),s[t]<i.virtualSize+s[0]&&e.push(a)}s.push(...e)}}}},function(e){let{swiper:t}=e;Object.assign(t,{appendSlide:K.bind(t),prependSlide:Z.bind(t),addSlide:Q.bind(t),removeSlide:J.bind(t),removeAllSlides:ee.bind(t)})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({fadeEffect:{crossFade:!1,transformEl:null}}),te({effect:"fade",swiper:t,on:a,setTranslate:()=>{const{slides:e}=t,s=t.params.fadeEffect;for(let a=0;a<e.length;a+=1){const e=t.slides.eq(a);let i=-e[0].swiperSlideOffset;t.params.virtualTranslate||(i-=t.translate);let r=0;t.isHorizontal()||(r=i,i=0);const n=t.params.fadeEffect.crossFade?Math.max(1-Math.abs(e[0].progress),0):1+Math.min(Math.max(e[0].progress,-1),0);se(s,e).css({opacity:n}).transform(`translate3d(${i}px, ${r}px, 0px)`)}},setTransition:e=>{const{transformEl:s}=t.params.fadeEffect;(s?t.slides.find(s):t.slides).transition(e),ae({swiper:t,duration:e,transformEl:s,allSlides:!0})},overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!t.params.cssMode})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({cubeEffect:{slideShadows:!0,shadow:!0,shadowOffset:20,shadowScale:.94}});const i=(e,t,s)=>{let a=s?e.find(".swiper-slide-shadow-left"):e.find(".swiper-slide-shadow-top"),i=s?e.find(".swiper-slide-shadow-right"):e.find(".swiper-slide-shadow-bottom");0===a.length&&(a=d(`<div class="swiper-slide-shadow-${s?"left":"top"}"></div>`),e.append(a)),0===i.length&&(i=d(`<div class="swiper-slide-shadow-${s?"right":"bottom"}"></div>`),e.append(i)),a.length&&(a[0].style.opacity=Math.max(-t,0)),i.length&&(i[0].style.opacity=Math.max(t,0))};te({effect:"cube",swiper:t,on:a,setTranslate:()=>{const{$el:e,$wrapperEl:s,slides:a,width:r,height:n,rtlTranslate:l,size:o,browser:c}=t,p=t.params.cubeEffect,u=t.isHorizontal(),h=t.virtual&&t.params.virtual.enabled;let m,f=0;p.shadow&&(u?(m=s.find(".swiper-cube-shadow"),0===m.length&&(m=d('<div class="swiper-cube-shadow"></div>'),s.append(m)),m.css({height:`${r}px`})):(m=e.find(".swiper-cube-shadow"),0===m.length&&(m=d('<div class="swiper-cube-shadow"></div>'),e.append(m))));for(let e=0;e<a.length;e+=1){const t=a.eq(e);let s=e;h&&(s=parseInt(t.attr("data-swiper-slide-index"),10));let r=90*s,n=Math.floor(r/360);l&&(r=-r,n=Math.floor(-r/360));
1157const d=Math.max(Math.min(t[0].progress,1),-1);let c=0,m=0,g=0;s%4==0?(c=4*-n*o,g=0):(s-1)%4==0?(c=0,g=4*-n*o):(s-2)%4==0?(c=o+4*n*o,g=o):(s-3)%4==0&&(c=-o,g=3*o+4*o*n),l&&(c=-c),u||(m=c,c=0);const v=`rotateX(${u?0:-r}deg) rotateY(${u?r:0}deg) translate3d(${c}px, ${m}px, ${g}px)`;d<=1&&d>-1&&(f=90*s+90*d,l&&(f=90*-s-90*d)),t.transform(v),p.slideShadows&&i(t,d,u)}if(s.css({"-webkit-transform-origin":`50% 50% -${o/2}px`,"transform-origin":`50% 50% -${o/2}px`}),p.shadow)if(u)m.transform(`translate3d(0px, ${r/2+p.shadowOffset}px, ${-r/2}px) rotateX(90deg) rotateZ(0deg) scale(${p.shadowScale})`);else{const e=Math.abs(f)-90*Math.floor(Math.abs(f)/90),t=1.5-(Math.sin(2*e*Math.PI/360)/2+Math.cos(2*e*Math.PI/360)/2),s=p.shadowScale,a=p.shadowScale/t,i=p.shadowOffset;m.transform(`scale3d(${s}, 1, ${a}) translate3d(0px, ${n/2+i}px, ${-n/2/a}px) rotateX(-90deg)`)}const g=c.isSafari||c.isWebView?-o/2:0;s.transform(`translate3d(0px,0,${g}px) rotateX(${t.isHorizontal()?0:f}deg) rotateY(${t.isHorizontal()?-f:0}deg)`),s[0].style.setProperty("--swiper-cube-translate-z",`${g}px`)},setTransition:e=>{const{$el:s,slides:a}=t;a.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e),t.params.cubeEffect.shadow&&!t.isHorizontal()&&s.find(".swiper-cube-shadow").transition(e)},recreateShadows:()=>{const e=t.isHorizontal();t.slides.each((t=>{const s=Math.max(Math.min(t.progress,1),-1);i(d(t),s,e)}))},getEffectParams:()=>t.params.cubeEffect,perspective:()=>!0,overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,resistanceRatio:0,spaceBetween:0,centeredSlides:!1,virtualTranslate:!0})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({flipEffect:{slideShadows:!0,limitRotation:!0,transformEl:null}});const i=(e,s,a)=>{let i=t.isHorizontal()?e.find(".swiper-slide-shadow-left"):e.find(".swiper-slide-shadow-top"),r=t.isHorizontal()?e.find(".swiper-slide-shadow-right"):e.find(".swiper-slide-shadow-bottom");0===i.length&&(i=ie(a,e,t.isHorizontal()?"left":"top")),0===r.length&&(r=ie(a,e,t.isHorizontal()?"right":"bottom")),i.length&&(i[0].style.opacity=Math.max(-s,0)),r.length&&(r[0].style.opacity=Math.max(s,0))};te({effect:"flip",swiper:t,on:a,setTranslate:()=>{const{slides:e,rtlTranslate:s}=t,a=t.params.flipEffect;for(let r=0;r<e.length;r+=1){const n=e.eq(r);let l=n[0].progress;t.params.flipEffect.limitRotation&&(l=Math.max(Math.min(n[0].progress,1),-1));const o=n[0].swiperSlideOffset;let d=-180*l,c=0,p=t.params.cssMode?-o-t.translate:-o,u=0;t.isHorizontal()?s&&(d=-d):(u=p,p=0,c=-d,d=0),n[0].style.zIndex=-Math.abs(Math.round(l))+e.length,a.slideShadows&&i(n,l,a);const h=`translate3d(${p}px, ${u}px, 0px) rotateX(${c}deg) rotateY(${d}deg)`;se(a,n).transform(h)}},setTransition:e=>{const{transformEl:s}=t.params.flipEffect;(s?t.slides.find(s):t.slides).transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e),ae({swiper:t,duration:e,transformEl:s})},recreateShadows:()=>{const e=t.params.flipEffect;t.slides.each((s=>{const a=d(s);let r=a[0].progress;t.params.flipEffect.limitRotation&&(r=Math.max(Math.min(s.progress,1),-1)),i(a,r,e)}))},getEffectParams:()=>t.params.flipEffect,perspective:()=>!0,overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!t.params.cssMode})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({coverflowEffect:{rotate:50,stretch:0,depth:100,scale:1,modifier:1,slideShadows:!0,transformEl:null}}),te({effect:"coverflow",swiper:t,on:a,setTranslate:()=>{const{width:e,height:s,slides:a,slidesSizesGrid:i}=t,r=t.params.coverflowEffect,n=t.isHorizontal(),l=t.translate,o=n?e/2-l:s/2-l,d=n?r.rotate:-r.rotate,c=r.depth;for(let e=0,t=a.length;e<t;e+=1){const t=a.eq(e),s=i[e],l=(o-t[0].swiperSlideOffset-s/2)/s,p="function"==typeof r.modifier?r.modifier(l):l*r.modifier;let u=n?d*p:0,h=n?0:d*p,m=-c*Math.abs(p),f=r.stretch;"string"==typeof f&&-1!==f.indexOf("%")&&(f=parseFloat(r.stretch)/100*s);let g=n?0:f*p,v=n?f*p:0,w=1-(1-r.scale)*Math.abs(p);Math.abs(v)<.001&&(v=0),Math.abs(g)<.001&&(g=0),Math.abs(m)<.001&&(m=0),Math.abs(u)<.001&&(u=0),Math.abs(h)<.001&&(h=0),Math.abs(w)<.001&&(w=0);const b=`translate3d(${v}px,${g}px,${m}px) rotateX(${h}deg) rotateY(${u}deg) scale(${w})`;if(se(r,t).transform(b),t[0].style.zIndex=1-Math.abs(Math.round(p)),r.slideShadows){let e=n?t.find(".swiper-slide-shadow-left"):t.find(".swiper-slide-shadow-top"),s=n?t.find(".swiper-slide-shadow-right"):t.find(".swiper-slide-shadow-bottom");0===e.length&&(e=ie(r,t,n?"left":"top")),0===s.length&&(s=ie(r,t,n?"right":"bottom")),e.length&&(e[0].style.opacity=p>0?p:0),s.length&&(s[0].style.opacity=-p>0?-p:0)}}},setTransition:e=>{const{transformEl:s}=t.params.coverflowEffect;(s?t.slides.find(s):t.slides).transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e)},perspective:()=>!0,overwriteParams:()=>({watchSlidesProgress:!0})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({creativeEffect:{transformEl:null,limitProgress:1,shadowPerProgress:!1,progressMultiplier:1,perspective:!0,prev:{translate:[0,0,0],rotate:[0,0,0],opacity:1,scale:1},next:{translate:[0,0,0],rotate:[0,0,0],opacity:1,scale:1}}});const i=e=>"string"==typeof e?e:`${e}px`;te({effect:"creative",swiper:t,on:a,setTranslate:()=>{const{slides:e,$wrapperEl:s,slidesSizesGrid:a}=t,r=t.params.creativeEffect,{progressMultiplier:n}=r,l=t.params.centeredSlides;if(l){const e=a[0]/2-t.params.slidesOffsetBefore||0;s.transform(`translateX(calc(50% - ${e}px))`)}for(let s=0;s<e.length;s+=1){const a=e.eq(s),o=a[0].progress,d=Math.min(Math.max(a[0].progress,-r.limitProgress),r.limitProgress);let c=d;l||(c=Math.min(Math.max(a[0].originalProgress,-r.limitProgress),r.limitProgress));const p=a[0].swiperSlideOffset,u=[t.params.cssMode?-p-t.translate:-p,0,0],h=[0,0,0];let m=!1;t.isHorizontal()||(u[1]=u[0],u[0]=0);
1157let f={translate:[0,0,0],rotate:[0,0,0],scale:1,opacity:1};d<0?(f=r.next,m=!0):d>0&&(f=r.prev,m=!0),u.forEach(((e,t)=>{u[t]=`calc(${e}px + (${i(f.translate[t])} * ${Math.abs(d*n)}))`})),h.forEach(((e,t)=>{h[t]=f.rotate[t]*Math.abs(d*n)})),a[0].style.zIndex=-Math.abs(Math.round(o))+e.length;const g=u.join(", "),v=`rotateX(${h[0]}deg) rotateY(${h[1]}deg) rotateZ(${h[2]}deg)`,w=c<0?`scale(${1+(1-f.scale)*c*n})`:`scale(${1-(1-f.scale)*c*n})`,b=c<0?1+(1-f.opacity)*c*n:1-(1-f.opacity)*c*n,x=`translate3d(${g}) ${v} ${w}`;if(m&&f.shadow||!m){let e=a.children(".swiper-slide-shadow");if(0===e.length&&f.shadow&&(e=ie(r,a)),e.length){const t=r.shadowPerProgress?d*(1/r.limitProgress):d;e[0].style.opacity=Math.min(Math.max(Math.abs(t),0),1)}}const y=se(r,a);y.transform(x).css({opacity:b}),f.origin&&y.css("transform-origin",f.origin)}},setTransition:e=>{const{transformEl:s}=t.params.creativeEffect;(s?t.slides.find(s):t.slides).transition(e).find(".swiper-slide-shadow").transition(e),ae({swiper:t,duration:e,transformEl:s,allSlides:!0})},perspective:()=>t.params.creativeEffect.perspective,overwriteParams:()=>({watchSlidesProgress:!0,virtualTranslate:!t.params.cssMode})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({cardsEffect:{slideShadows:!0,transformEl:null,rotate:!0}}),te({effect:"cards",swiper:t,on:a,setTranslate:()=>{const{slides:e,activeIndex:s}=t,a=t.params.cardsEffect,{startTranslate:i,isTouched:r}=t.touchEventsData,n=t.translate;for(let l=0;l<e.length;l+=1){const o=e.eq(l),d=o[0].progress,c=Math.min(Math.max(d,-4),4);let p=o[0].swiperSlideOffset;t.params.centeredSlides&&!t.params.cssMode&&t.$wrapperEl.transform(`translateX(${t.minTranslate()}px)`),t.params.centeredSlides&&t.params.cssMode&&(p-=e[0].swiperSlideOffset);let u=t.params.cssMode?-p-t.translate:-p,h=0;const m=-100*Math.abs(c);let f=1,g=-2*c,v=8-.75*Math.abs(c);const w=t.virtual&&t.params.virtual.enabled?t.virtual.from+l:l,b=(w===s||w===s-1)&&c>0&&c<1&&(r||t.params.cssMode)&&n<i,x=(w===s||w===s+1)&&c<0&&c>-1&&(r||t.params.cssMode)&&n>i;if(b||x){const e=(1-Math.abs((Math.abs(c)-.5)/.5))**.5;g+=-28*c*e,f+=-.5*e,v+=96*e,h=-25*e*Math.abs(c)+"%"}if(u=c<0?`calc(${u}px + (${v*Math.abs(c)}%))`:c>0?`calc(${u}px + (-${v*Math.abs(c)}%))`:`${u}px`,!t.isHorizontal()){const e=h;h=u,u=e}const y=c<0?""+(1+(1-f)*c):""+(1-(1-f)*c),E=`\n translate3d(${u}, ${h}, ${m}px)\n rotateZ(${a.rotate?g:0}deg)\n scale(${y})\n `;if(a.slideShadows){let e=o.find(".swiper-slide-shadow");0===e.length&&(e=ie(a,o)),e.length&&(e[0].style.opacity=Math.min(Math.max((Math.abs(c)-.5)/.5,0),1))}o[0].style.zIndex=-Math.abs(Math.round(d))+e.length;se(a,o).transform(E)}},setTransition:e=>{const{transformEl:s}=t.params.cardsEffect;(s?t.slides.find(s):t.slides).transition(e).find(".swiper-slide-shadow").transition(e),ae({swiper:t,duration:e,transformEl:s})},perspective:()=>!0,overwriteParams:()=>({watchSlidesProgress:!0,virtualTranslate:!t.params.cssMode})})}];return V.use(re),V})); 1158</script>
1158 1159 <style id="swiper-js-css"> 1160/** 1161 * Swiper 8.2.4 1162 * Most modern mobile touch slider and framework with hardware accelerated transitions 1163 * https://swiperjs.com 1164 * 1165 * Copyright 2014-2022 Vladimir Kharlampidi 1166 * 1167 * Released under the MIT License 1168 * 1169 * Released on: June 13, 2022 1170 */ 1171 1172@font-face{font-family:swiper-icons;src:url('data:application/font-woff;charset=utf-8;base64, d09GRgABAAAAAAZgABAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAGRAAAABoAAAAci6qHkUdERUYAAAWgAAAAIwAAACQAYABXR1BPUwAABhQAAAAuAAAANuAY7+xHU1VCAAAFxAAAAFAAAABm2fPczU9TLzIAAAHcAAAASgAAAGBP9V5RY21hcAAAAkQAAACIAAABYt6F0cBjdnQgAAACzAAAAAQAAAAEABEBRGdhc3AAAAWYAAAACAAAAAj//wADZ2x5ZgAAAywAAADMAAAD2MHtryVoZWFkAAABbAAAADAAAAA2E2+eoWhoZWEAAAGcAAAAHwAAACQC9gDzaG10eAAAAigAAAAZAAAArgJkABFsb2NhAAAC0AAAAFoAAABaFQAUGG1heHAAAAG8AAAAHwAAACAAcABAbmFtZQAAA/gAAAE5AAACXvFdBwlwb3N0AAAFNAAAAGIAAACE5s74hXjaY2BkYGAAYpf5Hu/j+W2+MnAzMYDAzaX6QjD6/4//Bxj5GA8AuRwMYGkAPywL13jaY2BkYGA88P8Agx4j+/8fQDYfA1AEBWgDAIB2BOoAeNpjYGRgYNBh4GdgYgABEMnIABJzYNADCQAACWgAsQB42mNgYfzCOIGBlYGB0YcxjYGBwR1Kf2WQZGhhYGBiYGVmgAFGBiQQkOaawtDAoMBQxXjg/wEGPcYDDA4wNUA2CCgwsAAAO4EL6gAAeNpj2M0gyAACqxgGNWBkZ2D4/wMA+xkDdgAAAHjaY2BgYGaAYBkGRgYQiAHyGMF8FgYHIM3DwMHABGQrMOgyWDLEM1T9/w8UBfEMgLzE////P/5//f/V/xv+r4eaAAeMbAxwIUYmIMHEgKYAYjUcsDAwsLKxc3BycfPw8jEQA/gZBASFhEVExcQlJKWkZWTl5BUUlZRVVNXUNTQZBgMAAMR+E+gAEQFEAAAAKgAqACoANAA+AEgAUgBcAGYAcAB6AIQAjgCYAKIArAC2AMAAygDUAN4A6ADyAPwBBgEQARoBJAEuATgBQgFMAVYBYAFqAXQBfgGIAZIBnAGmAbIBzgHsAAB42u2NMQ6CUAyGW568x9AneYYgm4MJbhKFaExIOAVX8ApewSt4Bic4AfeAid3VOBixDxfPYEza5O+Xfi04YADggiUIULCuEJK8VhO4bSvpdnktHI5QCYtdi2sl8ZnXaHlqUrNKzdKcT8cjlq+rwZSvIVczNiezsfnP/uznmfPFBNODM2K7MTQ45YEAZqGP81AmGGcF3iPqOop0r1SPTaTbVkfUe4HXj97wYE+yNwWYxwWu4v1ugWHgo3S1XdZEVqWM7ET0cfnLGxWfkgR42o2PvWrDMBSFj/IHLaF0zKjRgdiVMwScNRAoWUoH78Y2icB/yIY09An6AH2Bdu/UB+yxopYshQiEvnvu0dURgDt8QeC8PDw7Fpji3fEA4z/PEJ6YOB5hKh4dj3EvXhxPqH/SKUY3rJ7srZ4FZnh1PMAtPhwP6fl2PMJMPDgeQ4rY8YT6Gzao0eAEA409DuggmTnFnOcSCiEiLMgxCiTI6Cq5DZUd3Qmp10vO0LaLTd2cjN4fOumlc7lUYbSQcZFkutRG7g6JKZKy0RmdLY680CDnEJ+UMkpFFe1RN7nxdVpXrC4aTtnaurOnYercZg2YVmLN/d/gczfEimrE/fs/bOuq29Zmn8tloORaXgZgGa78yO9/cnXm2BpaGvq25Dv9S4E9+5SIc9PqupJKhYFSSl47+Qcr1mYNAAAAeNptw0cKwkAAAMDZJA8Q7OUJvkLsPfZ6zFVERPy8qHh2YER+3i/BP83vIBLLySsoKimrqKqpa2hp6+jq6RsYGhmbmJqZSy0sraxtbO3sHRydnEMU4uR6yx7JJXveP7WrDycAAAAAAAH//wACeNpjYGRgYOABYhkgZgJCZgZNBkYGLQZtIJsFLMYAAAw3ALgAeNolizEKgDAQBCchRbC2sFER0YD6qVQiBCv/H9ezGI6Z5XBAw8CBK/m5iQQVauVbXLnOrMZv2oLdKFa8Pjuru2hJzGabmOSLzNMzvutpB3N42mNgZGBg4GKQYzBhYMxJLMlj4GBgAYow/P/PAJJhLM6sSoWKfWCAAwDAjgbRAAB42mNgYGBkAIIbCZo5IPrmUn0hGA0AO8EFTQAA');font-weight:400;font-style:normal}:root{--swiper-theme-color:#007aff}.swiper{margin-left:auto;margin-right:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;box-sizing:content-box}.swiper-android .swiper-slide,.swiper-wrapper{transform:translate3d(0px,0,0)}.swiper-pointer-events{touch-action:pan-y}.swiper-pointer-events.swiper-vertical{touch-action:pan-x}.swiper-slide{flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform}.swiper-slide-invisible-blank{visibility:hidden}.swiper-autoheight,.swiper-autoheight .swiper-slide{height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden .swiper-slide{transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-3d,.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-cube-shadow,.swiper-3d .swiper-slide,.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-bottom,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top,.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-bottom,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top{position:absolute;
1172left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.swiper-3d .swiper-slide-shadow{background:rgba(0,0,0,.15)}.swiper-3d .swiper-slide-shadow-left{background-image:linear-gradient(to left,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-right{background-image:linear-gradient(to right,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-top{background-image:linear-gradient(to top,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(to bottom,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}.swiper-horizontal.swiper-css-mode>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-vertical.swiper-css-mode>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-centered>.swiper-wrapper::before{content:'';flex-shrink:0;order:9999}.swiper-centered.swiper-horizontal>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-centered-offset-before)}.swiper-centered.swiper-horizontal>.swiper-wrapper::before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-centered.swiper-vertical>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-centered-offset-before)}.swiper-centered.swiper-vertical>.swiper-wrapper::before{width:100%;min-width:1px;height:var(--swiper-centered-offset-after)}.swiper-centered>.swiper-wrapper>.swiper-slide{scroll-snap-align:center center}.swiper-virtual .swiper-slide{-webkit-backface-visibility:hidden;transform:translateZ(0)}.swiper-virtual.swiper-css-mode .swiper-wrapper::after{content:'';position:absolute;left:0;top:0;pointer-events:none}.swiper-virtual.swiper-css-mode.swiper-horizontal .swiper-wrapper::after{height:1px;width:var(--swiper-virtual-size)}.swiper-virtual.swiper-css-mode.swiper-vertical .swiper-wrapper::after{width:1px;height:var(--swiper-virtual-size)}:root{--swiper-navigation-size:44px}.swiper-button-next,.swiper-button-prev{position:absolute;top:50%;width:calc(var(--swiper-navigation-size)/ 44 * 27);height:var(--swiper-navigation-size);margin-top:calc(0px - (var(--swiper-navigation-size)/ 2));z-index:10;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--swiper-navigation-color,var(--swiper-theme-color))}.swiper-button-next.swiper-button-disabled,.swiper-button-prev.swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}.swiper-button-next.swiper-button-hidden,.swiper-button-prev.swiper-button-hidden{opacity:0;cursor:auto;pointer-events:none}.swiper-navigation-disabled .swiper-button-next,.swiper-navigation-disabled .swiper-button-prev{display:none!important}.swiper-button-next:after,.swiper-button-prev:after{font-family:swiper-icons;font-size:var(--swiper-navigation-size);text-transform:none!important;letter-spacing:0;font-variant:initial;line-height:1}.swiper-button-prev,.swiper-rtl .swiper-button-next{left:10px;right:auto}.swiper-button-prev:after,.swiper-rtl .swiper-button-next:after{content:'prev'}.swiper-button-next,.swiper-rtl .swiper-button-prev{right:10px;left:auto}.swiper-button-next:after,.swiper-rtl .swiper-button-prev:after{content:'next'}.swiper-button-lock{display:none}.swiper-pagination{position:absolute;text-align:center;transition:.3s opacity;transform:translate3d(0,0,0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}
1172.swiper-pagination-disabled>.swiper-pagination,.swiper-pagination.swiper-pagination-disabled{display:none!important}.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-bullets.swiper-pagination-horizontal,.swiper-pagination-custom,.swiper-pagination-fraction{bottom:10px;left:0;width:100%}.swiper-pagination-bullets-dynamic{overflow:hidden;font-size:0}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transform:scale(.33);position:relative}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.33)}.swiper-pagination-bullet{width:var(--swiper-pagination-bullet-width,var(--swiper-pagination-bullet-size,8px));height:var(--swiper-pagination-bullet-height,var(--swiper-pagination-bullet-size,8px));display:inline-block;border-radius:50%;background:var(--swiper-pagination-bullet-inactive-color,#000);opacity:var(--swiper-pagination-bullet-inactive-opacity, .2)}button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;-webkit-appearance:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet:only-child{display:none!important}.swiper-pagination-bullet-active{opacity:var(--swiper-pagination-bullet-opacity, 1);background:var(--swiper-pagination-color,var(--swiper-theme-color))}.swiper-pagination-vertical.swiper-pagination-bullets,.swiper-vertical>.swiper-pagination-bullets{right:10px;top:50%;transform:translate3d(0px,-50%,0)}.swiper-pagination-vertical.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets .swiper-pagination-bullet{margin:var(--swiper-pagination-bullet-vertical-gap,6px) 0;display:block}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:.2s transform,.2s top}.swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 var(--swiper-pagination-bullet-horizontal-gap,4px)}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{left:50%;transform:translateX(-50%);white-space:nowrap}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s left}.swiper-horizontal.swiper-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s right}.swiper-pagination-progressbar{background:rgba(0,0,0,.25);position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color,var(--swiper-theme-color));position:absolute;left:0;top:0;width:100%;height:100%;transform:scale(0);transform-origin:left top}.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:right top}.swiper-horizontal>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-horizontal,.swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite,.swiper-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite{width:100%;height:4px;left:0;top:0}.swiper-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-vertical,.swiper-vertical>.swiper-pagination-progressbar{width:4px;height:100%;left:0;top:0}.swiper-pagination-lock{display:none}.swiper-scrollbar{border-radius:10px;position:relative;-ms-touch-action:none;background:rgba(0,0,0,.1)}.swiper-scrollbar-disabled>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-disabled{display:none!important}.swiper-horizontal>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-horizontal{position:absolute;
1172left:1%;bottom:3px;z-index:50;height:5px;width:98%}.swiper-scrollbar.swiper-scrollbar-vertical,.swiper-vertical>.swiper-scrollbar{position:absolute;right:3px;top:1%;z-index:50;width:5px;height:98%}.swiper-scrollbar-drag{height:100%;width:100%;position:relative;background:rgba(0,0,0,.5);border-radius:10px;left:0;top:0}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-scrollbar-lock{display:none}.swiper-zoom-container{width:100%;height:100%;display:flex;justify-content:center;align-items:center;text-align:center}.swiper-zoom-container>canvas,.swiper-zoom-container>img,.swiper-zoom-container>svg{max-width:100%;max-height:100%;object-fit:contain}.swiper-slide-zoomed{cursor:move}.swiper-lazy-preloader{width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;transform-origin:50%;box-sizing:border-box;border:4px solid var(--swiper-preloader-color,var(--swiper-theme-color));border-radius:50%;border-top-color:transparent}.swiper-watch-progress .swiper-slide-visible .swiper-lazy-preloader,.swiper:not(.swiper-watch-progress) .swiper-lazy-preloader{animation:swiper-preloader-spin 1s infinite linear}.swiper-lazy-preloader-white{--swiper-preloader-color:#fff}.swiper-lazy-preloader-black{--swiper-preloader-color:#000}@keyframes swiper-preloader-spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.swiper .swiper-notification{position:absolute;left:0;top:0;pointer-events:none;opacity:0;z-index:-1000}.swiper-free-mode>.swiper-wrapper{transition-timing-function:ease-out;margin:0 auto}.swiper-grid>.swiper-wrapper{flex-wrap:wrap}.swiper-grid-column>.swiper-wrapper{flex-wrap:wrap;flex-direction:column}.swiper-fade.swiper-free-mode .swiper-slide{transition-timing-function:ease-out}.swiper-fade .swiper-slide{pointer-events:none;transition-property:opacity}.swiper-fade .swiper-slide .swiper-slide{pointer-events:none}.swiper-fade .swiper-slide-active,.swiper-fade .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-cube{overflow:visible}.swiper-cube .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1;visibility:hidden;transform-origin:0 0;width:100%;height:100%}.swiper-cube .swiper-slide .swiper-slide{pointer-events:none}.swiper-cube.swiper-rtl .swiper-slide{transform-origin:100% 0}.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-next,.swiper-cube .swiper-slide-next+.swiper-slide,.swiper-cube .swiper-slide-prev{pointer-events:auto;visibility:visible}.swiper-cube .swiper-slide-shadow-bottom,.swiper-cube .swiper-slide-shadow-left,.swiper-cube .swiper-slide-shadow-right,.swiper-cube .swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-cube .swiper-cube-shadow{position:absolute;left:0;bottom:0px;width:100%;height:100%;opacity:.6;z-index:0}.swiper-cube .swiper-cube-shadow:before{content:'';background:#000;position:absolute;left:0;top:0;bottom:0;right:0;filter:blur(50px)}.swiper-flip{overflow:visible}.swiper-flip .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1}.swiper-flip .swiper-slide .swiper-slide{pointer-events:none}.swiper-flip .swiper-slide-active,.swiper-flip .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-flip .swiper-slide-shadow-bottom,.swiper-flip .swiper-slide-shadow-left,.swiper-flip .swiper-slide-shadow-right,.swiper-flip .swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-creative .swiper-slide{-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden;transition-property:transform,opacity,height}.swiper-cards{overflow:visible}.swiper-cards .swiper-slide{transform-origin:center bottom;-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden} 1173</style> 1174 1175
1175<script> 1176 $(document).ready(function() { 1177 var utm_overrides = {}; 1178 utm_overrides.utm_source = ''; 1179 utm_overrides.utm_medium = ''; 1180 utm_overrides.utm_content = ''; 1181 utm_overrides.utm_campaign = ''; 1182 1183 window.appendUTM = function(url, utm_content, UTMnone) { 1184 if (UTMnone) { 1185 return url; 1186 } 1187 1188 if (url.includes('mailto:')) { 1189 return url; 1190 } 1191 1192 url = new URL(url); 1193 1194 var hasUTM_source = url.searchParams.has('utm_source'); 1195 var hasUTM_medium = url.searchParams.has('utm_medium'); 1196 var hasUTM_content = url.searchParams.has('utm_content'); 1197 var hasUTM_campaign = url.searchParams.has('utm_campaign'); 1198 1199 if (hasUTM_source && hasUTM_medium && hasUTM_content && hasUTM_campaign) { 1200 return url.href; 1201 } 1202 1203 var newURL = ''; 1204 newURL = url.origin; 1205 newURL += url.pathname; 1206 1207 if (url.search) { 1208 newURL += url.search; 1209 } 1210 1211 if (!hasUTM_source) { 1212 var source = 'the+new+stack'; 1213 1214 if (utm_overrides.utm_source) { 1215 source = utm_overrides.utm_source; 1216 } 1217 1218 if (newURL.includes('?')) { 1219 newURL += '&utm_source=' + source; 1220 } else { 1221 newURL += '?utm_source=' + source; 1222 } 1223 } 1224 1225 if (!hasUTM_medium) { 1226 var medium = 'referral'; 1227 1228 if (utm_overrides.utm_medium) { 1229 medium = utm_overrides.utm_medium; 1230 } 1231 1232 if (newURL.includes('?')) { 1233 newURL += '&utm_medium=' + medium; 1234 } else { 1235 newURL += '?utm_medium=' + medium; 1236 } 1237 } 1238 1239 if (!hasUTM_content && utm_content) { 1240 var content = utm_content; 1241 1242 if (utm_overrides.utm_content) { 1243 content = utm_overrides.utm_content; 1244 } 1245 1246 if (newURL.includes('?')) { 1247 newURL += '&utm_content=' + content; 1248 } else { 1249 newURL += '?utm_content=' + content; 1250 } 1251 } 1252 1253 if (!hasUTM_campaign) { 1254 var campaign = 'tns+platform'; 1255 1256 if (utm_overrides.utm_campaign) { 1257 campaign = utm_overrides.utm_campaign; 1258 } 1259 1260 if (newURL.includes('?')) { 1261 newURL += '&utm_campaign=' + campaign 1262 } else { 1263 newURL += '?utm_campaign=' + campaign 1264 } 1265 } 1266 1267 if (url.hash) { 1268 newURL += url.hash; 1269 } 1270 1271 return newURL; 1272 } 1273 }); 1274</script>
1274 1275 1276 1277 <link rel="icon" type="image/png" href="https://thenewstack.io/favicon-96x96.png?v=20260605" sizes="96x96" /> 1278 <link rel="icon" type="image/svg+xml" href="https://thenewstack.io/favicon.svg?v=20260605" /> 1279 <link rel="shortcut icon" href="https://thenewstack.io/favicon.ico?v=20260605" /> 1280 <link rel="apple-touch-icon" sizes="180x180" href="https://thenewstack.io/apple-touch-icon.png?v=20260605" /> 1281 <meta name="apple-mobile-web-app-title" content="TNS" /> 1282 <link rel="manifest" href="https://thenewstack.io/site.webmanifest?v=20260605" /> 1283 1284 <!-- Google Ad Manager --> 1285
1285<script async src="https://securepubads.g.doubleclick.net/tag/js/gpt.js"></script>
1285 1286 1287 <!-- Cloudflare Turnstile --> 1288 <!--
1288<script defer src="https://challenges.cloudflare.com/turnstile/v0/api.js?onload=onloadTurnstileCallback"></script>
1288 --> 1289
1289<script defer src="https://challenges.cloudflare.com/turnstile/v0/api.js?render=explicit"></script>
1289 1290 1291 <!-- RSS Feed Meta --> 1292 <link rel="alternate" type="application/rss+xml" href="https://thenewstack.io/blog/feed/"> 1293 1294 <!-- PhotoSwipe --> 1295
1295<script> 1296/*! 1297 * PhotoSwipe 5.4.2 - https://photoswipe.com 1298 * (c) 2023 Dmytro Semenov 1299 */ 1300!function(t,i){"object"==typeof exports&&"undefined"!=typeof module?module.exports=i():"function"==typeof define&&define.amd?define(i):(t="undefined"!=typeof globalThis?globalThis:t||self).PhotoSwipe=i()}(this,(function(){"use strict";
vendor: 37,980 bytes, line 1300
1300function t(t,i,s){const h=document.createElement(i);return t&&(h.className=t),s&&s.appendChild(h),h}function i(t,i){return t.x=i.x,t.y=i.y,void 0!==i.id&&(t.id=i.id),t}function s(t){t.x=Math.round(t.x),t.y=Math.round(t.y)}function h(t,i){const s=Math.abs(t.x-i.x),h=Math.abs(t.y-i.y);return Math.sqrt(s*s+h*h)}function e(t,i){return t.x===i.x&&t.y===i.y}function n(t,i,s){return Math.min(Math.max(t,i),s)}function o(t,i,s){let h=`translate3d(${t}px,${i||0}px,0)`;return void 0!==s&&(h+=` scale3d(${s},${s},1)`),h}function r(t,i,s,h){t.style.transform=o(i,s,h)}function a(t,i,s,h){t.style.transition=i?`${i} ${s}ms ${h||"cubic-bezier(.4,0,.22,1)"}`:"none"}function l(t,i,s){t.style.width="number"==typeof i?`${i}px`:i,t.style.height="number"==typeof s?`${s}px`:s}const c="idle",d="loading",u="loaded",p="error";function m(){return!(!navigator.vendor||!navigator.vendor.match(/apple/i))}let v=!1;try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get:()=>{v=!0}}))}catch(t){}class f{constructor(){this.t=[]}add(t,i,s,h){this.i(t,i,s,h)}remove(t,i,s,h){this.i(t,i,s,h,!0)}removeAll(){this.t.forEach((t=>{this.i(t.target,t.type,t.listener,t.passive,!0,!0)})),this.t=[]}i(t,i,s,h,e,n){if(!t)return;const o=e?"removeEventListener":"addEventListener";i.split(" ").forEach((i=>{if(i){n||(e?this.t=this.t.filter((h=>h.type!==i||h.listener!==s||h.target!==t)):this.t.push({target:t,type:i,listener:s,passive:h}));const r=!!v&&{passive:h||!1};t[o](i,s,r)}}))}}function w(t,i){if(t.getViewportSizeFn){const s=t.getViewportSizeFn(t,i);if(s)return s}return{x:document.documentElement.clientWidth,y:window.innerHeight}}function g(t,i,s,h,e){let n=0;if(i.paddingFn)n=i.paddingFn(s,h,e)[t];else if(i.padding)n=i.padding[t];else{const s="padding"+t[0].toUpperCase()+t.slice(1);i[s]&&(n=i[s])}return Number(n)||0}function y(t,i,s,h){return{x:i.x-g("left",t,i,s,h)-g("right",t,i,s,h),y:i.y-g("top",t,i,s,h)-g("bottom",t,i,s,h)}}class _{constructor(t){this.slide=t,this.currZoomLevel=1,this.center={x:0,y:0},this.max={x:0,y:0},this.min={x:0,y:0}}update(t){this.currZoomLevel=t,this.slide.width?(this.o("x"),this.o("y"),this.slide.pswp.dispatch("calcBounds",{slide:this.slide})):this.reset()}o(t){const{pswp:i}=this.slide,s=this.slide["x"===t?"width":"height"]*this.currZoomLevel,h=g("x"===t?"left":"top",i.options,i.viewportSize,this.slide.data,this.slide.index),e=this.slide.panAreaSize[t];this.center[t]=Math.round((e-s)/2)+h,this.max[t]=s>e?Math.round(e-s)+h:this.center[t],this.min[t]=s>e?h:this.center[t]}reset(){this.center.x=0,this.center.y=0,this.max.x=0,this.max.y=0,this.min.x=0,this.min.y=0}correctPan(t,i){return n(i,this.max[t],this.min[t])}}class x{constructor(t,i,s,h){this.pswp=h,this.options=t,this.itemData=i,this.index=s,this.panAreaSize=null,this.elementSize=null,this.fit=1,this.fill=1,this.vFill=1,this.initial=1,this.secondary=1,this.max=1,this.min=1}update(t,i,s){const h={x:t,y:i};this.elementSize=h,this.panAreaSize=s;const e=s.x/h.x,n=s.y/h.y;this.fit=Math.min(1,e<n?e:n),this.fill=Math.min(1,e>n?e:n),this.vFill=Math.min(1,n),this.initial=this.l(),this.secondary=this.u(),this.max=Math.max(this.initial,this.secondary,this.p()),this.min=Math.min(this.fit,this.initial,this.secondary),this.pswp&&this.pswp.dispatch("zoomLevelsUpdate",{zoomLevels:this,slideData:this.itemData})}m(t){const i=t+"ZoomLevel",s=this.options[i];if(s)return"function"==typeof s?s(this):"fill"===s?this.fill:"fit"===s?this.fit:Number(s)}u(){let t=this.m("secondary");return t||(t=Math.min(1,3*this.fit),this.elementSize&&t*this.elementSize.x>4e3&&(t=4e3/this.elementSize.x),t)}l(){return this.m("initial")||this.fit}p(){return this.m("max")||Math.max(1,4*this.fit)}}class b{constructor(i,s,h){this.data=i,this.index=s,this.pswp=h,this.isActive=s===h.currIndex,this.currentResolution=0,this.panAreaSize={x:0,y:0},this.pan={x:0,y:0},this.isFirstSlide=this.isActive&&!h.opener.isOpen,this.zoomLevels=new x(h.options,i,s,h),this.pswp.dispatch("gettingData",{slide:this,data:this.data,index:s}),this.content=this.pswp.contentLoader.getContentBySlide(this),this.container=t("pswp__zoom-wrap","div"),this.holderElement=null,this.currZoomLevel=1,this.width=this.content.width,this.height=this.content.height,this.heavyAppended=!1,this.bounds=new _(this),this.prevDisplayedWidth=-1,this.prevDisplayedHeight=-1,this.pswp.dispatch("slideInit",{slide:this})}setIsActive(t){t&&!this.isActive?this.activate():!t&&this.isActive&&this.deactivate()}append(t){this.holderElement=t,this.container.style.transformOrigin="0 0",this.data&&(this.calculateSize(),this.load(),this.updateContentSize(),this.appendHeavy(),this.holderElement.appendChild(this.container),this.zoomAndPanToInitial(),this.pswp.dispatch("firstZoomPan",{slide:this}),this.applyCurrentZoomPan(),this.pswp.dispatch("afterSetContent",{slide:this}),this.isActive&&this.activate())}load(){this.content.load(!1),this.pswp.dispatch("slideLoad",{slide:this})}appendHeavy(){const{pswp:t}=this;!this.heavyAppended&&t.opener.isOpen&&!t.mainScroll.isShifted()&&(this.isActive,1)&&(this.pswp.dispatch("appendHeavy",{slide:this}).defaultPrevented||(this.heavyAppended=!0,this.content.append(),this.pswp.dispatch("appendHeavyContent",{slide:this})))}activate(){this.isActive=!0,this.appendHeavy(),this.content.activate(),this.pswp.dispatch("slideActivate",{slide:this})}deactivate(){this.isActive=!1,this.content.deactivate(),this.currZoomLevel!==this.zoomLevels.initial&&this.calculateSize(),this.currentResolution=0,this.zoomAndPanToInitial(),this.applyCurrentZoomPan(),this.updateContentSize(),this.pswp.dispatch("slideDeactivate",{slide:this})}destroy(){this.content.hasSlide=!1,this.content.remove(),this.container.remove(),this.pswp.dispatch("slideDestroy",{slide:this})}resize(){this.currZoomLevel!==this.zoomLevels.initial&&this.isActive?(this.calculateSize(),this.bounds.update(this.currZoomLevel),this.panTo(this.pan.x,this.pan.y)):(this.calculateSize(),this.currentResolution=0,this.zoomAndPanToInitial(),this.applyCurrentZoomPan(),this.updateContentSize())}updateContentSize(t){const i=this.currentResolution||this.zoomLevels.initial;if(!i)return;const s=Math.round(this.width*i)||this.pswp.viewportSize.x,h=Math.round(this.height*i)||this.pswp.viewportSize.y;(this.sizeChanged(s,h)||t)&&this.content.setDisplayedSize(s,h)}sizeChanged(t,i){return(t!==this.prevDisplayedWidth||i!==this.prevDisplayedHeight)&&(this.prevDisplayedWidth=t,this.prevDisplayedHeight=i,!0)}getPlaceholderElement(){var t;return null===(t=this.content.placeholder)||void 0===t?void 0:t.element}zoomTo(t,i,h,e){const{pswp:o}=this;if(!this.isZoomable()||o.mainScroll.isShifted())return;o.dispatch("beforeZoomTo",{destZoomLevel:t,centerPoint:i,transitionDuration:h}),o.animations.stopAllPan();const r=this.currZoomLevel;e||(t=n(t,this.zoomLevels.min,this.zoomLevels.max)),this.setZoomLevel(t),this.pan.x=this.calculateZoomToPanOffset("x",i,r),this.pan.y=this.calculateZoomToPanOffset("y",i,r),s(this.pan);const a=()=>{this.v(t),this.applyCurrentZoomPan()};h?o.animations.startTransition({isPan:!0,name:"zoomTo",target:this.container,transform:this.getCurrentTransform(),onComplete:a,duration:h,easing:o.options.easing}):a()}toggleZoom(t){this.zoomTo(this.currZoomLevel===this.zoomLevels.initial?this.zoomLevels.secondary:this.zoomLevels.initial,t,this.pswp.options.zoomAnimationDuration)}setZoomLevel(t){this.currZoomLevel=t,this.bounds.update(this.currZoomLevel)}calculateZoomToPanOffset(t,i,s){if(0===this.bounds.max[t]-this.bounds.min[t])return this.bounds.center[t];i||(i=this.pswp.getViewportCenterPoint()),s||(s=this.zoomLevels.initial);const h=this.currZoomLevel/s;return this.bounds.correctPan(t,(this.pan[t]-i[t])*h+i[t])}panTo(t,i){this.pan.x=this.bounds.correctPan("x",t),this.pan.y=this.bounds.correctPan("y",i),this.applyCurrentZoomPan()}isPannable(){return Boolean(this.width)&&this.currZoomLevel>this.zoomLevels.fit}isZoomable(){return Boolean(this.width)&&this.content.isZoomable()}applyCurrentZoomPan(){this.g(this.pan.x,this.pan.y,this.currZoomLevel),this===this.pswp.currSlide&&this.pswp.dispatch("zoomPanUpdate",{slide:this})}zoomAndPanToInitial(){this.currZoomLevel=this.zoomLevels.initial,this.bounds.update(this.currZoomLevel),i(this.pan,this.bounds.center),this.pswp.dispatch("initialZoomPan",{slide:this})}g(t,i,s){s/=this.currentResolution||this.zoomLevels.initial,r(this.container,t,i,s)}calculateSize(){const{pswp:t}=this;i(this.panAreaSize,y(t.options,t.viewportSize,this.data,this.index)),this.zoomLevels.update(this.width,this.height,this.panAreaSize),t.dispatch("calcSlideSize",{slide:this})}getCurrentTransform(){const t=this.currZoomLevel/(this.currentResolution||this.zoomLevels.initial);return o(this.pan.x,this.pan.y,t)}v(t){t!==this.currentResolution&&(this.currentResolution=t,this.updateContentSize(),this.pswp.dispatch("resolutionChanged"))}}class S{constructor(t){this.gestures=t,this.pswp=t.pswp,this.startPan={x:0,y:0}}start(){this.pswp.currSlide&&i(this.startPan,this.pswp.currSlide.pan),this.pswp.animations.stopAll()}change(){const{p1:t,prevP1:i,dragAxis:h}=this.gestures,{currSlide:e}=this.pswp;if("y"===h&&this.pswp.options.closeOnVerticalDrag&&e&&e.currZoomLevel<=e.zoomLevels.fit&&!this.gestures.isMultitouch){const s=e.pan.y+(t.y-i.y);if(!this.pswp.dispatch("verticalDrag",{panY:s}).defaultPrevented){this._("y",s,.6);const t=1-Math.abs(this.S(e.pan.y));this.pswp.applyBgOpacity(t),e.applyCurrentZoomPan()}}else{this.M("x")||(this.M("y"),e&&(s(e.pan),e.applyCurrentZoomPan()))}}end(){const{velocity:t}=this.gestures,{mainScroll:i,currSlide:s}=this.pswp;let h=0;if(this.pswp.animations.stopAll(),i.isShifted()){const s=(i.x-i.getCurrSlideX())/this.pswp.viewportSize.x;t.x<-.5&&s<0||t.x<.1&&s<-.5?(h=1,t.x=Math.min(t.x,0)):(t.x>.5&&s>0||t.x>-.1&&s>.5)&&(h=-1,t.x=Math.max(t.x,0)),i.moveIndexBy(h,!0,t.x)}s&&s.currZoomLevel>s.zoomLevels.max||this.gestures.isMultitouch?this.gestures.zoomLevels.correctZoomPan(!0):(this.P("x"),this.P("y"))}P(t){const{velocity:i}=this.gestures,{currSlide:s}=this.pswp;if(!s)return;const{pan:h,bounds:e}=s,o=h[t],r=this.pswp.bgOpacity<1&&"y"===t,a=o+function(t,i){return t*i/(1-i)}(i[t],.995);if(r){const t=this.S(o),i=this.S(a);if(t<0&&i<-.4||t>0&&i>.4)return void this.pswp.close()}const l=e.correctPan(t,a);if(o===l)return;const c=l===a?1:.82,d=this.pswp.bgOpacity,u=l-o;this.pswp.animations.startSpring({name:"panGesture"+t,isPan:!0,start:o,end:l,velocity:i[t],dampingRatio:c,onUpdate:i=>{if(r&&this.pswp.bgOpacity<1){const t=1-(l-i)/u;this.pswp.applyBgOpacity(n(d+(1-d)*t,0,1))}h[t]=Math.floor(i),s.applyCurrentZoomPan()}})}M(t){const{p1:i,dragAxis:s,prevP1:h,isMultitouch:e}=this.gestures,{currSlide:n,mainScroll:o}=this.pswp,r=i[t]-h[t],a=o.x+r;if(!r||!n)return!1;if("x"===t&&!n.isPannable()&&!e)return o.moveTo(a,!0),!0;const{bounds:l}=n,c=n.pan[t]+r;if(this.pswp.options.allowPanToNext&&"x"===s&&"x"===t&&!e){const i=o.getCurrSlideX(),s=o.x-i,h=r>0,e=!h;if(c>l.min[t]&&h){if(l.min[t]<=this.startPan[t])return o.moveTo(a,!0),!0;this._(t,c)}else if(c<l.max[t]&&e){if(this.startPan[t]<=l.max[t])return o.moveTo(a,!0),!0;this._(t,c)}else if(0!==s){if(s>0)return o.moveTo(Math.max(a,i),!0),!0;if(s<0)return o.moveTo(Math.min(a,i),!0),!0}else this._(t,c)}else"y"===t&&(o.isShifted()||l.min.y===l.max.y)||this._(t,c);return!1}S(t){var i,s;return(t-(null!==(i=null===(s=this.pswp.currSlide)||void 0===s?void 0:s.bounds.center.y)&&void 0!==i?i:0))/(this.pswp.viewportSize.y/3)}_(t,i,s){const{currSlide:h}=this.pswp;if(!h)return;const{pan:e,bounds:n}=h;if(n.correctPan(t,i)!==i||s){const h=Math.round(i-e[t]);e[t]+=h*(s||.35)}else e[t]=i}}function z(t,i,s){return t.x=(i.x+s.x)/2,t.y=(i.y+s.y)/2,t}class M{constructor(t){this.gestures=t,this.C={x:0,y:0},this.T={x:0,y:0},this.A={x:0,y:0},this.D=!1,this.I=1}start(){const{currSlide:t}=this.gestures.pswp;t&&(this.I=t.currZoomLevel,i(this.C,t.pan)),this.gestures.pswp.animations.stopAllPan(),this.D=!1}change(){const{p1:t,startP1:i,p2:s,startP2:e,pswp:n}=this.gestures,{currSlide:o}=n;if(!o)return;const r=o.zoomLevels.min,a=o.zoomLevels.max;if(!o.isZoomable()||n.mainScroll.isShifted())return;z(this.T,i,e),z(this.A,t,s);let l=1/h(i,e)*h(t,s)*this.I;if(l>o.zoomLevels.initial+o.zoomLevels.initial/15&&(this.D=!0),l<r)if(n.options.pinchToClose&&!this.D&&this.I<=o.zoomLevels.initial){const t=1-(r-l)/(r/1.2);n.dispatch("pinchClose",{bgOpacity:t}).defaultPrevented||n.applyBgOpacity(t)}else l=r-.15*(r-l);else l>a&&(l=a+.05*(l-a));o.pan.x=this.L("x",l),o.pan.y=this.L("y",l),o.setZoomLevel(l),o.applyCurrentZoomPan()}end(){const{pswp:t}=this.gestures,{currSlide:i}=t;(!i||i.currZoomLevel<i.zoomLevels.initial)&&!this.D&&t.options.pinchToClose?t.close():this.correctZoomPan()}L(t,i){const s=i/this.I;return this.A[t]-(this.T[t]-this.C[t])*s}correctZoomPan(t){const{pswp:s}=this.gestures,{currSlide:h}=s;if(null==h||!h.isZoomable())return;0===this.A.x&&(t=!0);const o=h.currZoomLevel;let r,a=!0;o<h.zoomLevels.initial?r=h.zoomLevels.initial:o>h.zoomLevels.max?r=h.zoomLevels.max:(a=!1,r=o);const l=s.bgOpacity,c=s.bgOpacity<1,d=i({x:0,y:0},h.pan);let u=i({x:0,y:0},d);t&&(this.A.x=0,this.A.y=0,this.T.x=0,this.T.y=0,this.I=o,i(this.C,d)),a&&(u={x:this.L("x",r),y:this.L("y",r)}),h.setZoomLevel(r),u={x:h.bounds.correctPan("x",u.x),y:h.bounds.correctPan("y",u.y)},h.setZoomLevel(o);const p=!e(u,d);if(!p&&!a&&!c)return h.v(r),void h.applyCurrentZoomPan();s.animations.stopAllPan(),s.animations.startSpring({isPan:!0,start:0,end:1e3,velocity:0,dampingRatio:1,naturalFrequency:40,onUpdate:t=>{if(t/=1e3,p||a){if(p&&(h.pan.x=d.x+(u.x-d.x)*t,h.pan.y=d.y+(u.y-d.y)*t),a){const i=o+(r-o)*t;h.setZoomLevel(i)}h.applyCurrentZoomPan()}c&&s.bgOpacity<1&&s.applyBgOpacity(n(l+(1-l)*t,0,1))},onComplete:()=>{h.v(r),h.applyCurrentZoomPan()}})}}function P(t){return!!t.target.closest(".pswp__container")}class C{constructor(t){this.gestures=t}click(t,i){const s=i.target.classList,h=s.contains("pswp__img"),e=s.contains("pswp__item")||s.contains("pswp__zoom-wrap");h?this.k("imageClick",t,i):e&&this.k("bgClick",t,i)}tap(t,i){P(i)&&this.k("tap",t,i)}doubleTap(t,i){P(i)&&this.k("doubleTap",t,i)}k(t,i,s){var h;const{pswp:e}=this.gestures,{currSlide:n}=e,o=t+"Action",r=e.options[o];if(!e.dispatch(o,{point:i,originalEvent:s}).defaultPrevented)if("function"!=typeof r)switch(r){case"close":case"next":e[r]();break;case"zoom":null==n||n.toggleZoom(i);break;case"zoom-or-close":null!=n&&n.isZoomable()&&n.zoomLevels.secondary!==n.zoomLevels.initial?n.toggleZoom(i):e.options.clickToCloseNonZoomable&&e.close();break;case"toggle-controls":null===(h=this.gestures.pswp.element)||void 0===h||h.classList.toggle("pswp--ui-visible")}else r.call(e,i,s)}}class T{constructor(t){this.pswp=t,this.dragAxis=null,this.p1={x:0,y:0},this.p2={x:0,y:0},this.prevP1={x:0,y:0},this.prevP2={x:0,y:0},this.startP1={x:0,y:0},this.startP2={x:0,y:0},this.velocity={x:0,y:0},this.Z={x:0,y:0},this.B={x:0,y:0},this.F=0,this.O=[],this.R="ontouchstart"in window,this.N=!!window.PointerEvent,this.supportsTouch=this.R||this.N&&navigator.maxTouchPoints>1,this.F=0,this.U=0,this.V=!1,this.isMultitouch=!1,this.isDragging=!1,this.isZooming=!1,this.raf=null,this.G=null,this.supportsTouch||(t.options.allowPanToNext=!1),this.drag=new S(this),this.zoomLevels=new M(this),this.tapHandler=new C(this),t.on("bindEvents",(()=>{t.events.add(t.scrollWrap,"click",this.$.bind(this)),this.N?this.q("pointer","down","up","cancel"):this.R?(this.q("touch","start","end","cancel"),t.scrollWrap&&(t.scrollWrap.ontouchmove=()=>{},t.scrollWrap.ontouchend=()=>{})):this.q("mouse","down","up")}))}q(t,i,s,h){const{pswp:e}=this,{events:n}=e,o=h?t+h:"";n.add(e.scrollWrap,t+i,this.onPointerDown.bind(this)),n.add(window,t+"move",this.onPointerMove.bind(this)),n.add(window,t+s,this.onPointerUp.bind(this)),o&&n.add(e.scrollWrap,o,this.onPointerUp.bind(this))}onPointerDown(t){const s="mousedown"===t.type||"mouse"===t.pointerType;if(s&&t.button>0)return;const{pswp:h}=this;h.opener.isOpen?h.dispatch("pointerDown",{originalEvent:t}).defaultPrevented||(s&&(h.mouseDetected(),this.H(t,"down")),h.animations.stopAll(),this.K(t,"down"),1===this.F&&(this.dragAxis=null,i(this.startP1,this.p1)),this.F>1?(this.W(),this.isMultitouch=!0):this.isMultitouch=!1):t.preventDefault()}onPointerMove(t){this.H(t,"move"),this.F&&(this.K(t,"move"),this.pswp.dispatch("pointerMove",{originalEvent:t}).defaultPrevented||(1!==this.F||this.isDragging?this.F>1&&!this.isZooming&&(this.j(),this.isZooming=!0,this.X(),this.zoomLevels.start(),this.Y(),this.J()):(this.dragAxis||this.tt(),this.dragAxis&&!this.isDragging&&(this.isZooming&&(this.isZooming=!1,this.zoomLevels.end()),this.isDragging=!0,this.W(),this.X(),this.U=Date.now(),this.V=!1,i(this.B,this.p1),this.velocity.x=0,this.velocity.y=0,this.drag.start(),this.Y(),this.J()))))}j(){this.isDragging&&(this.isDragging=!1,this.V||this.it(!0),this.drag.end(),this.dragAxis=null)}onPointerUp(t){this.F&&(this.K(t,"up"),this.pswp.dispatch("pointerUp",{originalEvent:t}).defaultPrevented||(0===this.F&&(this.Y(),this.isDragging?this.j():this.isZooming||this.isMultitouch||this.st(t)),this.F<2&&this.isZooming&&(this.isZooming=!1,this.zoomLevels.end(),1===this.F&&(this.dragAxis=null,this.X()))))}J(){(this.isDragging||this.isZooming)&&(this.it(),this.isDragging?e(this.p1,this.prevP1)||this.drag.change():e(this.p1,this.prevP1)&&e(this.p2,this.prevP2)||this.zoomLevels.change(),this.ht(),this.raf=requestAnimationFrame(this.J.bind(this)))}it(t){const s=Date.now(),h=s-this.U;h<50&&!t||(this.velocity.x=this.et("x",h),this.velocity.y=this.et("y",h),this.U=s,i(this.B,this.p1),this.V=!0)}st(t){const{mainScroll:s}=this.pswp;if(s.isShifted())return void s.moveIndexBy(0,!0);if(t.type.indexOf("cancel")>0)return;if("mouseup"===t.type||"mouse"===t.pointerType)return void this.tapHandler.click(this.startP1,t);const e=this.pswp.options.doubleTapAction?300:0;this.G?(this.W(),h(this.Z,this.startP1)<25&&this.tapHandler.doubleTap(this.startP1,t)):(i(this.Z,this.startP1),this.G=setTimeout((()=>{this.tapHandler.tap(this.startP1,t),this.W()}),e))}W(){this.G&&(clearTimeout(this.G),this.G=null)}et(t,i){const s=this.p1[t]-this.B[t];return Math.abs(s)>1&&i>5?s/i:0}Y(){this.raf&&(cancelAnimationFrame(this.raf),this.raf=null)}H(t,i){this.pswp.applyFilters("preventPointerEvent",!0,t,i)&&t.preventDefault()}K(t,s){if(this.N){const h=t,e=this.O.findIndex((t=>t.id===h.pointerId));"up"===s&&e>-1?this.O.splice(e,1):"down"===s&&-1===e?this.O.push(this.nt(h,{x:0,y:0})):e>-1&&this.nt(h,this.O[e]),this.F=this.O.length,this.F>0&&i(this.p1,this.O[0]),this.F>1&&i(this.p2,this.O[1])}else{const i=t;this.F=0,i.type.indexOf("touch")>-1?i.touches&&i.touches.length>0&&(this.nt(i.touches[0],this.p1),this.F++,i.touches.length>1&&(this.nt(i.touches[1],this.p2),this.F++)):(this.nt(t,this.p1),"up"===s?this.F=0:this.F++)}}ht(){i(this.prevP1,this.p1),i(this.prevP2,this.p2)}X(){i(this.startP1,this.p1),i(this.startP2,this.p2),this.ht()}tt(){if(this.pswp.mainScroll.isShifted())this.dragAxis="x";else{const t=Math.abs(this.p1.x-this.startP1.x)-Math.abs(this.p1.y-this.startP1.y);if(0!==t){const i=t>0?"x":"y";Math.abs(this.p1[i]-this.startP1[i])>=10&&(this.dragAxis=i)}}}nt(t,i){return i.x=t.pageX-this.pswp.offset.x,i.y=t.pageY-this.pswp.offset.y,"pointerId"in t?i.id=t.pointerId:void 0!==t.identifier&&(i.id=t.identifier),i}$(t){this.pswp.mainScroll.isShifted()&&(t.preventDefault(),t.stopPropagation())}}class A{constructor(t){this.pswp=t,this.x=0,this.slideWidth=0,this.ot=0,this.rt=0,this.lt=-1,this.itemHolders=[]}resize(t){const{pswp:i}=this,s=Math.round(i.viewportSize.x+i.viewportSize.x*i.options.spacing),h=s!==this.slideWidth;h&&(this.slideWidth=s,this.moveTo(this.getCurrSlideX())),this.itemHolders.forEach(((i,s)=>{h&&r(i.el,(s+this.lt)*this.slideWidth),t&&i.slide&&i.slide.resize()}))}resetPosition(){this.ot=0,this.rt=0,this.slideWidth=0,this.lt=-1}appendHolders(){this.itemHolders=[];for(let i=0;i<3;i++){const s=t("pswp__item","div",this.pswp.container);s.setAttribute("role","group"),s.setAttribute("aria-roledescription","slide"),s.setAttribute("aria-hidden","true"),s.style.display=1===i?"block":"none",this.itemHolders.push({el:s})}}canBeSwiped(){return this.pswp.getNumItems()>1}moveIndexBy(t,i,s){const{pswp:h}=this;let e=h.potentialIndex+t;const n=h.getNumItems();if(h.canLoop()){e=h.getLoopedIndex(e);const i=(t+n)%n;t=i<=n/2?i:i-n}else e<0?e=0:e>=n&&(e=n-1),t=e-h.potentialIndex;h.potentialIndex=e,this.ot-=t,h.animations.stopMainScroll();const o=this.getCurrSlideX();if(i){h.animations.startSpring({isMainScroll:!0,start:this.x,end:o,velocity:s||0,naturalFrequency:30,dampingRatio:1,onUpdate:t=>{this.moveTo(t)},onComplete:()=>{this.updateCurrItem(),h.appendHeavy()}});let t=h.potentialIndex-h.currIndex;if(h.canLoop()){const i=(t+n)%n;t=i<=n/2?i:i-n}Math.abs(t)>1&&this.updateCurrItem()}else this.moveTo(o),this.updateCurrItem();return Boolean(t)}getCurrSlideX(){return this.slideWidth*this.ot}isShifted(){return this.x!==this.getCurrSlideX()}updateCurrItem(){var t;const{pswp:i}=this,s=this.rt-this.ot;if(!s)return;this.rt=this.ot,i.currIndex=i.potentialIndex;let h,e=Math.abs(s);e>=3&&(this.lt+=s+(s>0?-3:3),e=3);for(let t=0;t<e;t++)s>0?(h=this.itemHolders.shift(),h&&(this.itemHolders[2]=h,this.lt++,r(h.el,(this.lt+2)*this.slideWidth),i.setContent(h,i.currIndex-e+t+2))):(h=this.itemHolders.pop(),h&&(this.itemHolders.unshift(h),this.lt--,r(h.el,this.lt*this.slideWidth),i.setContent(h,i.currIndex+e-t-2)));Math.abs(this.lt)>50&&!this.isShifted()&&(this.resetPosition(),this.resize()),i.animations.stopAllPan(),this.itemHolders.forEach(((t,i)=>{t.slide&&t.slide.setIsActive(1===i)})),i.currSlide=null===(t=this.itemHolders[1])||void 0===t?void 0:t.slide,i.contentLoader.updateLazy(s),i.currSlide&&i.currSlide.applyCurrentZoomPan(),i.dispatch("change")}moveTo(t,i){if(!this.pswp.canLoop()&&i){let i=(this.slideWidth*this.ot-t)/this.slideWidth;i+=this.pswp.currIndex;const s=Math.round(t-this.x);(i<0&&s>0||i>=this.pswp.getNumItems()-1&&s<0)&&(t=this.x+.35*s)}this.x=t,this.pswp.container&&r(this.pswp.container,t),this.pswp.dispatch("moveMainScroll",{x:t,dragging:null!=i&&i})}}const D={Escape:27,z:90,ArrowLeft:37,ArrowUp:38,ArrowRight:39,ArrowDown:40,Tab:9},I=(t,i)=>i?t:D[t];class E{constructor(t){this.pswp=t,this.ct=!1,t.on("bindEvents",(()=>{t.options.trapFocus&&(t.options.initialPointerPos||this.dt(),t.events.add(document,"focusin",this.ut.bind(this))),t.events.add(document,"keydown",this.vt.bind(this))}));const i=document.activeElement;t.on("destroy",(()=>{t.options.returnFocus&&i&&this.ct&&i.focus()}))}dt(){!this.ct&&this.pswp.element&&(this.pswp.element.focus(),this.ct=!0)}vt(t){const{pswp:i}=this;if(i.dispatch("keydown",{originalEvent:t}).defaultPrevented)return;if(function(t){return"button"in t&&1===t.button||t.ctrlKey||t.metaKey||t.altKey||t.shiftKey}(t))return;let s,h,e=!1;const n="key"in t;switch(n?t.key:t.keyCode){case I("Escape",n):i.options.escKey&&(s="close");break;case I("z",n):s="toggleZoom";break;case I("ArrowLeft",n):h="x";break;case I("ArrowUp",n):h="y";break;case I("ArrowRight",n):h="x",e=!0;break;case I("ArrowDown",n):e=!0,h="y";break;case I("Tab",n):this.dt()}if(h){t.preventDefault();const{currSlide:n}=i;i.options.arrowKeys&&"x"===h&&i.getNumItems()>1?s=e?"next":"prev":n&&n.currZoomLevel>n.zoomLevels.fit&&(n.pan[h]+=e?-80:80,n.panTo(n.pan.x,n.pan.y))}s&&(t.preventDefault(),i[s]())}ut(t){const{template:i}=this.pswp;i&&document!==t.target&&i!==t.target&&!i.contains(t.target)&&i.focus()}}const L="cubic-bezier(.4,0,.22,1)";class k{constructor(t){var i;this.props=t;const{target:s,onComplete:h,transform:e,onFinish:n=(()=>{}),duration:o=333,easing:r=L}=t;this.onFinish=n;const l=e?"transform":"opacity",c=null!==(i=t[l])&&void 0!==i?i:"";this.ft=s,this.wt=h,this.gt=!1,this.yt=this.yt.bind(this),this._t=setTimeout((()=>{a(s,l,o,r),this._t=setTimeout((()=>{s.addEventListener("transitionend",this.yt,!1),s.addEventListener("transitioncancel",this.yt,!1),this._t=setTimeout((()=>{this.xt()}),o+500),s.style[l]=c}),30)}),0)}yt(t){t.target===this.ft&&this.xt()}xt(){this.gt||(this.gt=!0,this.onFinish(),this.wt&&this.wt())}destroy(){this._t&&clearTimeout(this._t),a(this.ft),this.ft.removeEventListener("transitionend",this.yt,!1),this.ft.removeEventListener("transitioncancel",this.yt,!1),this.gt||this.xt()}}class Z{constructor(t,i,s){this.velocity=1e3*t,this.bt=i||.75,this.St=s||12,this.zt=this.St,this.bt<1&&(this.zt*=Math.sqrt(1-this.bt*this.bt))}easeFrame(t,i){let s,h=0;i/=1e3;const e=Math.E**(-this.bt*this.St*i);if(1===this.bt)s=this.velocity+this.St*t,h=(t+s*i)*e,this.velocity=h*-this.St+s*e;else if(this.bt<1){s=1/this.zt*(this.bt*this.St*t+this.velocity);const n=Math.cos(this.zt*i),o=Math.sin(this.zt*i);h=e*(t*n+s*o),this.velocity=h*-this.St*this.bt+e*(-this.zt*t*o+this.zt*s*n)}return h}}class B{constructor(t){this.props=t,this.Mt=0;const{start:i,end:s,velocity:h,onUpdate:e,onComplete:n,onFinish:o=(()=>{}),dampingRatio:r,naturalFrequency:a}=t;this.onFinish=o;const l=new Z(h,r,a);let c=Date.now(),d=i-s;const u=()=>{this.Mt&&(d=l.easeFrame(d,Date.now()-c),Math.abs(d)<1&&Math.abs(l.velocity)<50?(e(s),n&&n(),this.onFinish()):(c=Date.now(),e(d+s),this.Mt=requestAnimationFrame(u)))};this.Mt=requestAnimationFrame(u)}destroy(){this.Mt>=0&&cancelAnimationFrame(this.Mt),this.Mt=0}}class F{constructor(){this.activeAnimations=[]}startSpring(t){this.Pt(t,!0)}startTransition(t){this.Pt(t)}Pt(t,i){const s=i?new B(t):new k(t);return this.activeAnimations.push(s),s.onFinish=()=>this.stop(s),s}stop(t){t.destroy();const i=this.activeAnimations.indexOf(t);i>-1&&this.activeAnimations.splice(i,1)}stopAll(){this.activeAnimations.forEach((t=>{t.destroy()})),this.activeAnimations=[]}stopAllPan(){this.activeAnimations=this.activeAnimations.filter((t=>!t.props.isPan||(t.destroy(),!1)))}stopMainScroll(){this.activeAnimations=this.activeAnimations.filter((t=>!t.props.isMainScroll||(t.destroy(),!1)))}isPanRunning(){return this.activeAnimations.some((t=>t.props.isPan))}}class O{constructor(t){this.pswp=t,t.events.add(t.element,"wheel",this.Ct.bind(this))}Ct(t){t.preventDefault();const{currSlide:i}=this.pswp;let{deltaX:s,deltaY:h}=t;if(i&&!this.pswp.dispatch("wheel",{originalEvent:t}).defaultPrevented)if(t.ctrlKey||this.pswp.options.wheelToZoom){if(i.isZoomable()){let s=-h;1===t.deltaMode?s*=.05:s*=t.deltaMode?1:.002,s=2**s;const e=i.currZoomLevel*s;i.zoomTo(e,{x:t.clientX,y:t.clientY})}}else i.isPannable()&&(1===t.deltaMode&&(s*=18,h*=18),i.panTo(i.pan.x-s,i.pan.y-h))}}class R{constructor(i,s){var h;const e=s.name||s.className;let n=s.html;if(!1===i.options[e])return;"string"==typeof i.options[e+"SVG"]&&(n=i.options[e+"SVG"]),i.dispatch("uiElementCreate",{data:s});let o="";s.isButton?(o+="pswp__button ",o+=s.className||`pswp__button--${s.name}`):o+=s.className||`pswp__${s.name}`;let r=s.isButton?s.tagName||"button":s.tagName||"div";r=r.toLowerCase();const a=t(o,r);if(s.isButton){"button"===r&&(a.type="button");let{title:t}=s;const{ariaLabel:h}=s;"string"==typeof i.options[e+"Title"]&&(t=i.options[e+"Title"]),t&&(a.title=t);const n=h||t;n&&a.setAttribute("aria-label",n)}a.innerHTML=function(t){if("string"==typeof t)return t;if(!t||!t.isCustomSVG)return"";const i=t;let s='<svg aria-hidden="true" class="pswp__icn" viewBox="0 0 %d %d" width="%d" height="%d">';return s=s.split("%d").join(i.size||32),i.outlineID&&(s+='<use class="pswp__icn-shadow" xlink:href="#'+i.outlineID+'"/>'),s+=i.inner,s+="</svg>",s}(n),s.onInit&&s.onInit(a,i),s.onClick&&(a.onclick=t=>{"string"==typeof s.onClick?i[s.onClick]():"function"==typeof s.onClick&&s.onClick(t,a,i)});const l=s.appendTo||"bar";let c=i.element;"bar"===l?(i.topBar||(i.topBar=t("pswp__top-bar pswp__hide-on-close","div",i.scrollWrap)),c=i.topBar):(a.classList.add("pswp__hide-on-close"),"wrapper"===l&&(c=i.scrollWrap)),null===(h=c)||void 0===h||h.appendChild(i.applyFilters("uiElement",a,s))}}function N(t,i,s){t.classList.add("pswp__button--arrow"),t.setAttribute("aria-controls","pswp__items"),i.on("change",(()=>{i.options.loop||(t.disabled=s?!(i.currIndex<i.getNumItems()-1):!(i.currIndex>0))}))}const U={name:"arrowPrev",className:"pswp__button--arrow--prev",title:"Previous",order:10,isButton:!0,appendTo:"wrapper",html:{isCustomSVG:!0,size:60,inner:'<path d="M29 43l-3 3-16-16 16-16 3 3-13 13 13 13z" id="pswp__icn-arrow"/>',outlineID:"pswp__icn-arrow"},onClick:"prev",onInit:N},V={name:"arrowNext",className:"pswp__button--arrow--next",title:"Next",order:11,isButton:!0,appendTo:"wrapper",html:{isCustomSVG:!0,size:60,inner:'<use xlink:href="#pswp__icn-arrow"/>',outlineID:"pswp__icn-arrow"},onClick:"next",onInit:(t,i)=>{N(t,i,!0)}},G={name:"close",title:"Close",order:20,isButton:!0,html:{isCustomSVG:!0,inner:'<path d="M24 10l-2-2-6 6-6-6-2 2 6 6-6 6 2 2 6-6 6 6 2-2-6-6z" id="pswp__icn-close"/>',outlineID:"pswp__icn-close"},onClick:"close"},$={name:"zoom",title:"Zoom",order:10,isButton:!0,html:{isCustomSVG:!0,inner:'<path d="M17.426 19.926a6 6 0 1 1 1.5-1.5L23 22.5 21.5 24l-4.074-4.074z" id="pswp__icn-zoom"/><path fill="currentColor" class="pswp__zoom-icn-bar-h" d="M11 16v-2h6v2z"/><path fill="currentColor" class="pswp__zoom-icn-bar-v" d="M13 12h2v6h-2z"/>',outlineID:"pswp__icn-zoom"},onClick:"toggleZoom"},q={name:"preloader",appendTo:"bar",order:7,html:{isCustomSVG:!0,inner:'<path fill-rule="evenodd" clip-rule="evenodd" d="M21.2 16a5.2 5.2 0 1 1-5.2-5.2V8a8 8 0 1 0 8 8h-2.8Z" id="pswp__icn-loading"/>',outlineID:"pswp__icn-loading"},onInit:(t,i)=>{let s,h=null;const e=i=>{var h,e;s!==i&&(s=i,h="active",e=i,t.classList.toggle("pswp__preloader--"+h,e))},n=()=>{var t;if(null===(t=i.currSlide)||void 0===t||!t.content.isLoading())return e(!1),void(h&&(clearTimeout(h),h=null));h||(h=setTimeout((()=>{var t;e(Boolean(null===(t=i.currSlide)||void 0===t?void 0:t.content.isLoading())),h=null}),i.options.preloaderDelay))};i.on("change",n),i.on("loadComplete",(t=>{i.currSlide===t.slide&&n()})),i.ui&&(i.ui.updatePreloaderVisibility=n)}},H={name:"counter",order:5,onInit:(t,i)=>{i.on("change",(()=>{t.innerText=i.currIndex+1+i.options.indexIndicatorSep+i.getNumItems()}))}};function K(t,i){t.classList.toggle("pswp--zoomed-in",i)}class W{constructor(t){this.pswp=t,this.isRegistered=!1,this.uiElementsData=[],this.items=[],this.updatePreloaderVisibility=()=>{},this.Tt=void 0}init(){const{pswp:t}=this;this.isRegistered=!1,this.uiElementsData=[G,U,V,$,q,H],t.dispatch("uiRegister"),this.uiElementsData.sort(((t,i)=>(t.order||0)-(i.order||0))),this.items=[],this.isRegistered=!0,this.uiElementsData.forEach((t=>{this.registerElement(t)})),t.on("change",(()=>{var i;null===(i=t.element)||void 0===i||i.classList.toggle("pswp--one-slide",1===t.getNumItems())})),t.on("zoomPanUpdate",(()=>this.At()))}registerElement(t){this.isRegistered?this.items.push(new R(this.pswp,t)):this.uiElementsData.push(t)}At(){const{template:t,currSlide:i,options:s}=this.pswp;if(this.pswp.opener.isClosing||!t||!i)return;let{currZoomLevel:h}=i;if(this.pswp.opener.isOpen||(h=i.zoomLevels.initial),h===this.Tt)return;this.Tt=h;const e=i.zoomLevels.initial-i.zoomLevels.secondary;if(Math.abs(e)<.01||!i.isZoomable())return K(t,!1),void t.classList.remove("pswp--zoom-allowed");t.classList.add("pswp--zoom-allowed");K(t,(h===i.zoomLevels.initial?i.zoomLevels.secondary:i.zoomLevels.initial)<=h),"zoom"!==s.imageClickAction&&"zoom-or-close"!==s.imageClickAction||t.classList.add("pswp--click-to-zoom")}}class j{constructor(t,i){this.type=t,this.defaultPrevented=!1,i&&Object.assign(this,i)}preventDefault(){this.defaultPrevented=!0}}class X{constructor(i,s){if(this.element=t("pswp__img pswp__img--placeholder",i?"img":"div",s),i){const t=this.element;t.decoding="async",t.alt="",t.src=i,t.setAttribute("role","presentation")}this.element.setAttribute("aria-hidden","true")}setDisplayedSize(t,i){this.element&&("IMG"===this.element.tagName?(l(this.element,250,"auto"),this.element.style.transformOrigin="0 0",this.element.style.transform=o(0,0,t/250)):l(this.element,t,i))}destroy(){var t;null!==(t=this.element)&&void 0!==t&&t.parentNode&&this.element.remove(),this.element=null}}class Y{constructor(t,i,s){this.instance=i,this.data=t,this.index=s,this.element=void 0,this.placeholder=void 0,this.slide=void 0,this.displayedImageWidth=0,this.displayedImageHeight=0,this.width=Number(this.data.w)||Number(this.data.width)||0,this.height=Number(this.data.h)||Number(this.data.height)||0,this.isAttached=!1,this.hasSlide=!1,this.isDecoding=!1,this.state=c,this.data.type?this.type=this.data.type:this.data.src?this.type="image":this.type="html",this.instance.dispatch("contentInit",{content:this})}removePlaceholder(){this.placeholder&&!this.keepPlaceholder()&&setTimeout((()=>{this.placeholder&&(this.placeholder.destroy(),this.placeholder=void 0)}),1e3)}load(i,s){if(this.slide&&this.usePlaceholder())if(this.placeholder){const t=this.placeholder.element;t&&!t.parentElement&&this.slide.container.prepend(t)}else{const t=this.instance.applyFilters("placeholderSrc",!(!this.data.msrc||!this.slide.isFirstSlide)&&this.data.msrc,this);this.placeholder=new X(t,this.slide.container)}this.element&&!s||this.instance.dispatch("contentLoad",{content:this,isLazy:i}).defaultPrevented||(this.isImageContent()?(this.element=t("pswp__img","img"),this.displayedImageWidth&&this.loadImage(i)):(this.element=t("pswp__content","div"),this.element.innerHTML=this.data.html||""),s&&this.slide&&this.slide.updateContentSize(!0))}loadImage(t){var i,s;if(!this.isImageContent()||!this.element||this.instance.dispatch("contentLoadImage",{content:this,isLazy:t}).defaultPrevented)return;const h=this.element;this.updateSrcsetSizes(),this.data.srcset&&(h.srcset=this.data.srcset),h.src=null!==(i=this.data.src)&&void 0!==i?i:"",h.alt=null!==(s=this.data.alt)&&void 0!==s?s:"",this.state=d,h.complete?this.onLoaded():(h.onload=()=>{this.onLoaded()},h.onerror=()=>{this.onError()})}setSlide(t){this.slide=t,this.hasSlide=!0,this.instance=t.pswp}onLoaded(){this.state=u,this.slide&&this.element&&(this.instance.dispatch("loadComplete",{slide:this.slide,content:this}),this.slide.isActive&&this.slide.heavyAppended&&!this.element.parentNode&&(this.append(),this.slide.updateContentSize(!0)),this.state!==u&&this.state!==p||this.removePlaceholder())}onError(){this.state=p,this.slide&&(this.displayError(),this.instance.dispatch("loadComplete",{slide:this.slide,isError:!0,content:this}),this.instance.dispatch("loadError",{slide:this.slide,content:this}))}isLoading(){return this.instance.applyFilters("isContentLoading",this.state===d,this)}isError(){return this.state===p}isImageContent(){return"image"===this.type}setDisplayedSize(t,i){if(this.element&&(this.placeholder&&this.placeholder.setDisplayedSize(t,i),!this.instance.dispatch("contentResize",{content:this,width:t,height:i}).defaultPrevented&&(l(this.element,t,i),this.isImageContent()&&!this.isError()))){const s=!this.displayedImageWidth&&t;this.displayedImageWidth=t,this.displayedImageHeight=i,s?this.loadImage(!1):this.updateSrcsetSizes(),this.slide&&this.instance.dispatch("imageSizeChange",{slide:this.slide,width:t,height:i,content:this})}}isZoomable(){return this.instance.applyFilters("isContentZoomable",this.isImageContent()&&this.state!==p,this)}updateSrcsetSizes(){if(!this.isImageContent()||!this.element||!this.data.srcset)return;const t=this.element,i=this.instance.applyFilters("srcsetSizesWidth",this.displayedImageWidth,this);(!t.dataset.largestUsedSize||i>parseInt(t.dataset.largestUsedSize,10))&&(t.sizes=i+"px",t.dataset.largestUsedSize=String(i))}usePlaceholder(){return this.instance.applyFilters("useContentPlaceholder",this.isImageContent(),this)}lazyLoad(){this.instance.dispatch("contentLazyLoad",{content:this}).defaultPrevented||this.load(!0)}keepPlaceholder(){return this.instance.applyFilters("isKeepingPlaceholder",this.isLoading(),this)}destroy(){this.hasSlide=!1,this.slide=void 0,this.instance.dispatch("contentDestroy",{content:this}).defaultPrevented||(this.remove(),this.placeholder&&(this.placeholder.destroy(),this.placeholder=void 0),this.isImageContent()&&this.element&&(this.element.onload=null,this.element.onerror=null,this.element=void 0))}displayError(){if(this.slide){var i,s;let h=t("pswp__error-msg","div");h.innerText=null!==(i=null===(s=this.instance.options)||void 0===s?void 0:s.errorMsg)&&void 0!==i?i:"",h=this.instance.applyFilters("contentErrorElement",h,this),this.element=t("pswp__content pswp__error-msg-container","div"),this.element.appendChild(h),this.slide.container.innerText="",this.slide.container.appendChild(this.element),this.slide.updateContentSize(!0),this.removePlaceholder()}}append(){if(this.isAttached||!this.element)return;if(this.isAttached=!0,this.state===p)return void this.displayError();if(this.instance.dispatch("contentAppend",{content:this}).defaultPrevented)return;const t="decode"in this.element;this.isImageContent()?t&&this.slide&&(!this.slide.isActive||m())?(this.isDecoding=!0,this.element.decode().catch((()=>{})).finally((()=>{this.isDecoding=!1,this.appendImage()}))):this.appendImage():this.slide&&!this.element.parentNode&&this.slide.container.appendChild(this.element)}activate(){!this.instance.dispatch("contentActivate",{content:this}).defaultPrevented&&this.slide&&(this.isImageContent()&&this.isDecoding&&!m()?this.appendImage():this.isError()&&this.load(!1,!0),this.slide.holderElement&&this.slide.holderElement.setAttribute("aria-hidden","false"))}deactivate(){this.instance.dispatch("contentDeactivate",{content:this}),this.slide&&this.slide.holderElement&&this.slide.holderElement.setAttribute("aria-hidden","true")}remove(){this.isAttached=!1,this.instance.dispatch("contentRemove",{content:this}).defaultPrevented||(this.element&&this.element.parentNode&&this.element.remove(),this.placeholder&&this.placeholder.element&&this.placeholder.element.remove())}appendImage(){this.isAttached&&(this.instance.dispatch("contentAppendImage",{content:this}).defaultPrevented||(this.slide&&this.element&&!this.element.parentNode&&this.slide.container.appendChild(this.element),this.state!==u&&this.state!==p||this.removePlaceholder()))}}function J(t,i,s){const h=i.createContentFromData(t,s);let e;const{options:n}=i;
vendor: 16,099 bytes, line 1300
1300if(n){let o;e=new x(n,t,-1),o=i.pswp?i.pswp.viewportSize:w(n,i);const r=y(n,o,t,s);e.update(h.width,h.height,r)}return h.lazyLoad(),e&&h.setDisplayedSize(Math.ceil(h.width*e.initial),Math.ceil(h.height*e.initial)),h}class Q{constructor(t){this.pswp=t,this.limit=Math.max(t.options.preload[0]+t.options.preload[1]+1,5),this.Dt=[]}updateLazy(t){const{pswp:i}=this;if(i.dispatch("lazyLoad").defaultPrevented)return;const{preload:s}=i.options,h=void 0===t||t>=0;let e;for(e=0;e<=s[1];e++)this.loadSlideByIndex(i.currIndex+(h?e:-e));for(e=1;e<=s[0];e++)this.loadSlideByIndex(i.currIndex+(h?-e:e))}loadSlideByIndex(t){const i=this.pswp.getLoopedIndex(t);let s=this.getContentByIndex(i);s||(s=function(t,i){const s=i.getItemData(t);if(!i.dispatch("lazyLoadSlide",{index:t,itemData:s}).defaultPrevented)return J(s,i,t)}(i,this.pswp),s&&this.addToCache(s))}getContentBySlide(t){let i=this.getContentByIndex(t.index);return i||(i=this.pswp.createContentFromData(t.data,t.index),this.addToCache(i)),i.setSlide(t),i}addToCache(t){if(this.removeByIndex(t.index),this.Dt.push(t),this.Dt.length>this.limit){const t=this.Dt.findIndex((t=>!t.isAttached&&!t.hasSlide));if(-1!==t){this.Dt.splice(t,1)[0].destroy()}}}removeByIndex(t){const i=this.Dt.findIndex((i=>i.index===t));-1!==i&&this.Dt.splice(i,1)}getContentByIndex(t){return this.Dt.find((i=>i.index===t))}destroy(){this.Dt.forEach((t=>t.destroy())),this.Dt=[]}}const tt=.003;class it{constructor(t){this.pswp=t,this.isClosed=!0,this.isOpen=!1,this.isClosing=!1,this.isOpening=!1,this.It=void 0,this.Et=!1,this.Lt=!1,this.kt=!1,this.Zt=!1,this.Bt=void 0,this.Ft=void 0,this.Ot=void 0,this.Rt=void 0,this.Nt=void 0,this.Ut=this.Ut.bind(this),t.on("firstZoomPan",this.Ut)}open(){this.Ut(),this.Pt()}close(){if(this.isClosed||this.isClosing||this.isOpening)return;const t=this.pswp.currSlide;this.isOpen=!1,this.isOpening=!1,this.isClosing=!0,this.It=this.pswp.options.hideAnimationDuration,t&&t.currZoomLevel*t.width>=this.pswp.options.maxWidthToAnimate&&(this.It=0),this.Vt(),setTimeout((()=>{this.Pt()}),this.Lt?30:0)}Ut(){if(this.pswp.off("firstZoomPan",this.Ut),!this.isOpening){const t=this.pswp.currSlide;this.isOpening=!0,this.isClosing=!1,this.It=this.pswp.options.showAnimationDuration,t&&t.zoomLevels.initial*t.width>=this.pswp.options.maxWidthToAnimate&&(this.It=0),this.Vt()}}Vt(){const{pswp:t}=this,i=this.pswp.currSlide,{options:s}=t;var h,e;("fade"===s.showHideAnimationType?(s.showHideOpacity=!0,this.Nt=void 0):"none"===s.showHideAnimationType?(s.showHideOpacity=!1,this.It=0,this.Nt=void 0):this.isOpening&&t.Gt?this.Nt=t.Gt:this.Nt=this.pswp.getThumbBounds(),this.Bt=null==i?void 0:i.getPlaceholderElement(),t.animations.stopAll(),this.Et=Boolean(this.It&&this.It>50),this.$t=Boolean(this.Nt)&&(null==i?void 0:i.content.usePlaceholder())&&(!this.isClosing||!t.mainScroll.isShifted()),this.$t)?this.kt=null!==(h=s.showHideOpacity)&&void 0!==h&&h:(this.kt=!0,this.isOpening&&i&&(i.zoomAndPanToInitial(),i.applyCurrentZoomPan()));if(this.Zt=!this.kt&&this.pswp.options.bgOpacity>tt,this.Ft=this.kt?t.element:t.bg,!this.Et)return this.It=0,this.$t=!1,this.Zt=!1,this.kt=!0,void(this.isOpening&&(t.element&&(t.element.style.opacity=String(tt)),t.applyBgOpacity(1)));this.$t&&this.Nt&&this.Nt.innerRect?(this.Lt=!0,this.Ot=this.pswp.container,this.Rt=null===(e=this.pswp.currSlide)||void 0===e?void 0:e.holderElement,t.container&&(t.container.style.overflow="hidden",t.container.style.width=t.viewportSize.x+"px")):this.Lt=!1;this.isOpening?(this.kt?(t.element&&(t.element.style.opacity=String(tt)),t.applyBgOpacity(1)):(this.Zt&&t.bg&&(t.bg.style.opacity=String(tt)),t.element&&(t.element.style.opacity="1")),this.$t&&(this.qt(),this.Bt&&(this.Bt.style.willChange="transform",this.Bt.style.opacity=String(tt)))):this.isClosing&&(t.mainScroll.itemHolders[0]&&(t.mainScroll.itemHolders[0].el.style.display="none"),t.mainScroll.itemHolders[2]&&(t.mainScroll.itemHolders[2].el.style.display="none"),this.Lt&&0!==t.mainScroll.x&&(t.mainScroll.resetPosition(),t.mainScroll.resize()))}Pt(){this.isOpening&&this.Et&&this.Bt&&"IMG"===this.Bt.tagName?new Promise((t=>{let i=!1,s=!0;var h;(h=this.Bt,"decode"in h?h.decode().catch((()=>{})):h.complete?Promise.resolve(h):new Promise(((t,i)=>{h.onload=()=>t(h),h.onerror=i}))).finally((()=>{i=!0,s||t(!0)})),setTimeout((()=>{s=!1,i&&t(!0)}),50),setTimeout(t,250)})).finally((()=>this.Ht())):this.Ht()}Ht(){var t,i;null===(t=this.pswp.element)||void 0===t||t.style.setProperty("--pswp-transition-duration",this.It+"ms"),this.pswp.dispatch(this.isOpening?"openingAnimationStart":"closingAnimationStart"),this.pswp.dispatch("initialZoom"+(this.isOpening?"In":"Out")),null===(i=this.pswp.element)||void 0===i||i.classList.toggle("pswp--ui-visible",this.isOpening),this.isOpening?(this.Bt&&(this.Bt.style.opacity="1"),this.Kt()):this.isClosing&&this.Wt(),this.Et||this.jt()}jt(){const{pswp:t}=this;if(this.isOpen=this.isOpening,this.isClosed=this.isClosing,this.isOpening=!1,this.isClosing=!1,t.dispatch(this.isOpen?"openingAnimationEnd":"closingAnimationEnd"),t.dispatch("initialZoom"+(this.isOpen?"InEnd":"OutEnd")),this.isClosed)t.destroy();else if(this.isOpen){var i;this.$t&&t.container&&(t.container.style.overflow="visible",t.container.style.width="100%"),null===(i=t.currSlide)||void 0===i||i.applyCurrentZoomPan()}}Kt(){const{pswp:t}=this;this.$t&&(this.Lt&&this.Ot&&this.Rt&&(this.Xt(this.Ot,"transform","translate3d(0,0,0)"),this.Xt(this.Rt,"transform","none")),t.currSlide&&(t.currSlide.zoomAndPanToInitial(),this.Xt(t.currSlide.container,"transform",t.currSlide.getCurrentTransform()))),this.Zt&&t.bg&&this.Xt(t.bg,"opacity",String(t.options.bgOpacity)),this.kt&&t.element&&this.Xt(t.element,"opacity","1")}Wt(){const{pswp:t}=this;this.$t&&this.qt(!0),this.Zt&&t.bgOpacity>.01&&t.bg&&this.Xt(t.bg,"opacity","0"),this.kt&&t.element&&this.Xt(t.element,"opacity","0")}qt(t){if(!this.Nt)return;const{pswp:s}=this,{innerRect:h}=this.Nt,{currSlide:e,viewportSize:n}=s;if(this.Lt&&h&&this.Ot&&this.Rt){const i=-n.x+(this.Nt.x-h.x)+h.w,s=-n.y+(this.Nt.y-h.y)+h.h,e=n.x-h.w,a=n.y-h.h;t?(this.Xt(this.Ot,"transform",o(i,s)),this.Xt(this.Rt,"transform",o(e,a))):(r(this.Ot,i,s),r(this.Rt,e,a))}e&&(i(e.pan,h||this.Nt),e.currZoomLevel=this.Nt.w/e.width,t?this.Xt(e.container,"transform",e.getCurrentTransform()):e.applyCurrentZoomPan())}Xt(t,i,s){if(!this.It)return void(t.style[i]=s);const{animations:h}=this.pswp,e={duration:this.It,easing:this.pswp.options.easing,onComplete:()=>{h.activeAnimations.length||this.jt()},target:t};e[i]=s,h.startTransition(e)}}const st={allowPanToNext:!0,spacing:.1,loop:!0,pinchToClose:!0,closeOnVerticalDrag:!0,hideAnimationDuration:333,showAnimationDuration:333,zoomAnimationDuration:333,escKey:!0,arrowKeys:!0,trapFocus:!0,returnFocus:!0,maxWidthToAnimate:4e3,clickToCloseNonZoomable:!0,imageClickAction:"zoom-or-close",bgClickAction:"close",tapAction:"toggle-controls",doubleTapAction:"zoom",indexIndicatorSep:" / ",preloaderDelay:2e3,bgOpacity:.8,index:0,errorMsg:"The image cannot be loaded",preload:[1,2],easing:"cubic-bezier(.4,0,.22,1)"};return class extends class extends class{constructor(){this.Yt={},this.Jt={},this.pswp=void 0,this.options=void 0}addFilter(t,i,s=100){var h,e,n;this.Jt[t]||(this.Jt[t]=[]),null===(h=this.Jt[t])||void 0===h||h.push({fn:i,priority:s}),null===(e=this.Jt[t])||void 0===e||e.sort(((t,i)=>t.priority-i.priority)),null===(n=this.pswp)||void 0===n||n.addFilter(t,i,s)}removeFilter(t,i){this.Jt[t]&&(this.Jt[t]=this.Jt[t].filter((t=>t.fn!==i))),this.pswp&&this.pswp.removeFilter(t,i)}applyFilters(t,...i){var s;return null===(s=this.Jt[t])||void 0===s||s.forEach((t=>{i[0]=t.fn.apply(this,i)})),i[0]}on(t,i){var s,h;this.Yt[t]||(this.Yt[t]=[]),null===(s=this.Yt[t])||void 0===s||s.push(i),null===(h=this.pswp)||void 0===h||h.on(t,i)}off(t,i){var s;this.Yt[t]&&(this.Yt[t]=this.Yt[t].filter((t=>i!==t))),null===(s=this.pswp)||void 0===s||s.off(t,i)}dispatch(t,i){var s;if(this.pswp)return this.pswp.dispatch(t,i);const h=new j(t,i);return null===(s=this.Yt[t])||void 0===s||s.forEach((t=>{t.call(this,h)})),h}}{getNumItems(){var t;let i=0;const s=null===(t=this.options)||void 0===t?void 0:t.dataSource;s&&"length"in s?i=s.length:s&&"gallery"in s&&(s.items||(s.items=this.Qt(s.gallery)),s.items&&(i=s.items.length));const h=this.dispatch("numItems",{dataSource:s,numItems:i});return this.applyFilters("numItems",h.numItems,s)}createContentFromData(t,i){return new Y(t,this,i)}getItemData(t){var i;const s=null===(i=this.options)||void 0===i?void 0:i.dataSource;let h={};Array.isArray(s)?h=s[t]:s&&"gallery"in s&&(s.items||(s.items=this.Qt(s.gallery)),h=s.items[t]);let e=h;e instanceof Element&&(e=this.ti(e));const n=this.dispatch("itemData",{itemData:e||{},index:t});return this.applyFilters("itemData",n.itemData,t)}Qt(t){var i,s;return null!==(i=this.options)&&void 0!==i&&i.children||null!==(s=this.options)&&void 0!==s&&s.childSelector?function(t,i,s=document){let h=[];if(t instanceof Element)h=[t];else if(t instanceof NodeList||Array.isArray(t))h=Array.from(t);else{const e="string"==typeof t?t:i;e&&(h=Array.from(s.querySelectorAll(e)))}return h}(this.options.children,this.options.childSelector,t)||[]:[t]}ti(t){const i={element:t},s="A"===t.tagName?t:t.querySelector("a");if(s){i.src=s.dataset.pswpSrc||s.href,s.dataset.pswpSrcset&&(i.srcset=s.dataset.pswpSrcset),i.width=s.dataset.pswpWidth?parseInt(s.dataset.pswpWidth,10):0,i.height=s.dataset.pswpHeight?parseInt(s.dataset.pswpHeight,10):0,i.w=i.width,i.h=i.height,s.dataset.pswpType&&(i.type=s.dataset.pswpType);const e=t.querySelector("img");var h;if(e)i.msrc=e.currentSrc||e.src,i.alt=null!==(h=e.getAttribute("alt"))&&void 0!==h?h:"";(s.dataset.pswpCropped||s.dataset.cropped)&&(i.thumbCropped=!0)}return this.applyFilters("domItemData",i,t,s)}lazyLoadData(t,i){return J(t,this,i)}}{constructor(t){super(),this.options=this.ii(t||{}),this.offset={x:0,y:0},this.si={x:0,y:0},this.viewportSize={x:0,y:0},this.bgOpacity=1,this.currIndex=0,this.potentialIndex=0,this.isOpen=!1,this.isDestroying=!1,this.hasMouse=!1,this.hi={},this.Gt=void 0,this.topBar=void 0,this.element=void 0,this.template=void 0,this.container=void 0,this.scrollWrap=void 0,this.currSlide=void 0,this.events=new f,this.animations=new F,this.mainScroll=new A(this),this.gestures=new T(this),this.opener=new it(this),this.keyboard=new E(this),this.contentLoader=new Q(this)}init(){if(this.isOpen||this.isDestroying)return!1;this.isOpen=!0,this.dispatch("init"),this.dispatch("beforeOpen"),this.ei();let t="pswp--open";return this.gestures.supportsTouch&&(t+=" pswp--touch"),this.options.mainClass&&(t+=" "+this.options.mainClass),this.element&&(this.element.className+=" "+t),this.currIndex=this.options.index||0,this.potentialIndex=this.currIndex,this.dispatch("firstUpdate"),this.scrollWheel=new O(this),(Number.isNaN(this.currIndex)||this.currIndex<0||this.currIndex>=this.getNumItems())&&(this.currIndex=0),this.gestures.supportsTouch||this.mouseDetected(),this.updateSize(),this.offset.y=window.pageYOffset,this.hi=this.getItemData(this.currIndex),this.dispatch("gettingData",{index:this.currIndex,data:this.hi,slide:void 0}),this.Gt=this.getThumbBounds(),this.dispatch("initialLayout"),this.on("openingAnimationEnd",(()=>{const{itemHolders:t}=this.mainScroll;t[0]&&(t[0].el.style.display="block",this.setContent(t[0],this.currIndex-1)),t[2]&&(t[2].el.style.display="block",this.setContent(t[2],this.currIndex+1)),this.appendHeavy(),this.contentLoader.updateLazy(),this.events.add(window,"resize",this.ni.bind(this)),this.events.add(window,"scroll",this.oi.bind(this)),this.dispatch("bindEvents")})),this.mainScroll.itemHolders[1]&&this.setContent(this.mainScroll.itemHolders[1],this.currIndex),this.dispatch("change"),this.opener.open(),this.dispatch("afterInit"),!0}getLoopedIndex(t){const i=this.getNumItems();return this.options.loop&&(t>i-1&&(t-=i),t<0&&(t+=i)),n(t,0,i-1)}appendHeavy(){this.mainScroll.itemHolders.forEach((t=>{var i;null===(i=t.slide)||void 0===i||i.appendHeavy()}))}goTo(t){this.mainScroll.moveIndexBy(this.getLoopedIndex(t)-this.potentialIndex)}next(){this.goTo(this.potentialIndex+1)}prev(){this.goTo(this.potentialIndex-1)}zoomTo(...t){var i;null===(i=this.currSlide)||void 0===i||i.zoomTo(...t)}toggleZoom(){var t;null===(t=this.currSlide)||void 0===t||t.toggleZoom()}close(){this.opener.isOpen&&!this.isDestroying&&(this.isDestroying=!0,this.dispatch("close"),this.events.removeAll(),this.opener.close())}destroy(){var t;if(!this.isDestroying)return this.options.showHideAnimationType="none",void this.close();this.dispatch("destroy"),this.Yt={},this.scrollWrap&&(this.scrollWrap.ontouchmove=null,this.scrollWrap.ontouchend=null),null===(t=this.element)||void 0===t||t.remove(),this.mainScroll.itemHolders.forEach((t=>{var i;null===(i=t.slide)||void 0===i||i.destroy()})),this.contentLoader.destroy(),this.events.removeAll()}refreshSlideContent(t){this.contentLoader.removeByIndex(t),this.mainScroll.itemHolders.forEach(((i,s)=>{var h,e;let n=(null!==(h=null===(e=this.currSlide)||void 0===e?void 0:e.index)&&void 0!==h?h:0)-1+s;var o;(this.canLoop()&&(n=this.getLoopedIndex(n)),n===t)&&(this.setContent(i,t,!0),1===s&&(this.currSlide=i.slide,null===(o=i.slide)||void 0===o||o.setIsActive(!0)))})),this.dispatch("change")}setContent(t,i,s){if(this.canLoop()&&(i=this.getLoopedIndex(i)),t.slide){if(t.slide.index===i&&!s)return;t.slide.destroy(),t.slide=void 0}if(!this.canLoop()&&(i<0||i>=this.getNumItems()))return;const h=this.getItemData(i);t.slide=new b(h,i,this),i===this.currIndex&&(this.currSlide=t.slide),t.slide.append(t.el)}getViewportCenterPoint(){return{x:this.viewportSize.x/2,y:this.viewportSize.y/2}}updateSize(t){if(this.isDestroying)return;const s=w(this.options,this);!t&&e(s,this.si)||(i(this.si,s),this.dispatch("beforeResize"),i(this.viewportSize,this.si),this.oi(),this.dispatch("viewportSize"),this.mainScroll.resize(this.opener.isOpen),!this.hasMouse&&window.matchMedia("(any-hover: hover)").matches&&this.mouseDetected(),this.dispatch("resize"))}applyBgOpacity(t){this.bgOpacity=Math.max(t,0),this.bg&&(this.bg.style.opacity=String(this.bgOpacity*this.options.bgOpacity))}mouseDetected(){var t;this.hasMouse||(this.hasMouse=!0,null===(t=this.element)||void 0===t||t.classList.add("pswp--has_mouse"))}ni(){this.updateSize(),/iPhone|iPad|iPod/i.test(window.navigator.userAgent)&&setTimeout((()=>{this.updateSize()}),500)}oi(){this.setScrollOffset(0,window.pageYOffset)}setScrollOffset(t,i){this.offset.x=t,this.offset.y=i,this.dispatch("updateScrollOffset")}ei(){this.element=t("pswp","div"),this.element.setAttribute("tabindex","-1"),this.element.setAttribute("role","dialog"),this.template=this.element,this.bg=t("pswp__bg","div",this.element),this.scrollWrap=t("pswp__scroll-wrap","section",this.element),this.container=t("pswp__container","div",this.scrollWrap),this.scrollWrap.setAttribute("aria-roledescription","carousel"),this.container.setAttribute("aria-live","off"),this.container.setAttribute("id","pswp__items"),this.mainScroll.appendHolders(),this.ui=new W(this),this.ui.init(),(this.options.appendToEl||document.body).appendChild(this.element)}getThumbBounds(){return function(t,i,s){const h=s.dispatch("thumbBounds",{index:t,itemData:i,instance:s});if(h.thumbBounds)return h.thumbBounds;const{element:e}=i;let n,o;if(e&&!1!==s.options.thumbSelector){const t=s.options.thumbSelector||"img";o=e.matches(t)?e:e.querySelector(t)}return o=s.applyFilters("thumbEl",o,i,t),o&&(n=i.thumbCropped?function(t,i,s){const h=t.getBoundingClientRect(),e=h.width/i,n=h.height/s,o=e>n?e:n,r=(h.width-i*o)/2,a=(h.height-s*o)/2,l={x:h.left+r,y:h.top+a,w:i*o};return l.innerRect={w:h.width,h:h.height,x:r,y:a},l}(o,i.width||i.w||0,i.height||i.h||0):function(t){const i=t.getBoundingClientRect();return{x:i.left,y:i.top,w:i.width}}(o)),s.applyFilters("thumbBounds",n,i,t)}(this.currIndex,this.currSlide?this.currSlide.data:this.hi,this)}canLoop(){return this.options.loop&&this.getNumItems()>2}ii(t){return window.matchMedia("(prefers-reduced-motion), (update: slow)").matches&&(t.showHideAnimationType="none",t.zoomAnimationDuration=0),{...st,...t}}}}));
1301</script>
1301
1301<script> 1302/*! 1303 * PhotoSwipe Lightbox 5.4.2 - https://photoswipe.com 1304 * (c) 2023
vendor: 14,498 bytes, lines 1304-1306
1304 Dmytro Semenov 1305 */ 1306!function(t,i){"object"==typeof exports&&"undefined"!=typeof module?module.exports=i():"function"==typeof define&&define.amd?define(i):(t="undefined"!=typeof globalThis?globalThis:t||self).PhotoSwipeLightbox=i()}(this,(function(){"use strict";function t(t,i,s){const h=document.createElement(i);return t&&(h.className=t),s&&s.appendChild(h),h}function i(t,i,s){t.style.width="number"==typeof i?`${i}px`:i,t.style.height="number"==typeof s?`${s}px`:s}const s="idle",h="loading",e="loaded",n="error";function o(t,i,s=document){let h=[];if(t instanceof Element)h=[t];else if(t instanceof NodeList||Array.isArray(t))h=Array.from(t);else{const e="string"==typeof t?t:i;e&&(h=Array.from(s.querySelectorAll(e)))}return h}function r(){return!(!navigator.vendor||!navigator.vendor.match(/apple/i))}class l{constructor(t,i){this.type=t,this.defaultPrevented=!1,i&&Object.assign(this,i)}preventDefault(){this.defaultPrevented=!0}}class a{constructor(i,s){if(this.element=t("pswp__img pswp__img--placeholder",i?"img":"div",s),i){const t=this.element;t.decoding="async",t.alt="",t.src=i,t.setAttribute("role","presentation")}this.element.setAttribute("aria-hidden","true")}setDisplayedSize(t,s){this.element&&("IMG"===this.element.tagName?(i(this.element,250,"auto"),this.element.style.transformOrigin="0 0",this.element.style.transform=function(t,i,s){let h=`translate3d(${t}px,${i||0}px,0)`;return void 0!==s&&(h+=` scale3d(${s},${s},1)`),h}(0,0,t/250)):i(this.element,t,s))}destroy(){var t;null!==(t=this.element)&&void 0!==t&&t.parentNode&&this.element.remove(),this.element=null}}class d{constructor(t,i,h){this.instance=i,this.data=t,this.index=h,this.element=void 0,this.placeholder=void 0,this.slide=void 0,this.displayedImageWidth=0,this.displayedImageHeight=0,this.width=Number(this.data.w)||Number(this.data.width)||0,this.height=Number(this.data.h)||Number(this.data.height)||0,this.isAttached=!1,this.hasSlide=!1,this.isDecoding=!1,this.state=s,this.data.type?this.type=this.data.type:this.data.src?this.type="image":this.type="html",this.instance.dispatch("contentInit",{content:this})}removePlaceholder(){this.placeholder&&!this.keepPlaceholder()&&setTimeout((()=>{this.placeholder&&(this.placeholder.destroy(),this.placeholder=void 0)}),1e3)}load(i,s){if(this.slide&&this.usePlaceholder())if(this.placeholder){const t=this.placeholder.element;t&&!t.parentElement&&this.slide.container.prepend(t)}else{const t=this.instance.applyFilters("placeholderSrc",!(!this.data.msrc||!this.slide.isFirstSlide)&&this.data.msrc,this);this.placeholder=new a(t,this.slide.container)}this.element&&!s||this.instance.dispatch("contentLoad",{content:this,isLazy:i}).defaultPrevented||(this.isImageContent()?(this.element=t("pswp__img","img"),this.displayedImageWidth&&this.loadImage(i)):(this.element=t("pswp__content","div"),this.element.innerHTML=this.data.html||""),s&&this.slide&&this.slide.updateContentSize(!0))}loadImage(t){var i,s;if(!this.isImageContent()||!this.element||this.instance.dispatch("contentLoadImage",{content:this,isLazy:t}).defaultPrevented)return;const e=this.element;this.updateSrcsetSizes(),this.data.srcset&&(e.srcset=this.data.srcset),e.src=null!==(i=this.data.src)&&void 0!==i?i:"",e.alt=null!==(s=this.data.alt)&&void 0!==s?s:"",this.state=h,e.complete?this.onLoaded():(e.onload=()=>{this.onLoaded()},e.onerror=()=>{this.onError()})}setSlide(t){this.slide=t,this.hasSlide=!0,this.instance=t.pswp}onLoaded(){this.state=e,this.slide&&this.element&&(this.instance.dispatch("loadComplete",{slide:this.slide,content:this}),this.slide.isActive&&this.slide.heavyAppended&&!this.element.parentNode&&(this.append(),this.slide.updateContentSize(!0)),this.state!==e&&this.state!==n||this.removePlaceholder())}onError(){this.state=n,this.slide&&(this.displayError(),this.instance.dispatch("loadComplete",{slide:this.slide,isError:!0,content:this}),this.instance.dispatch("loadError",{slide:this.slide,content:this}))}isLoading(){return this.instance.applyFilters("isContentLoading",this.state===h,this)}isError(){return this.state===n}isImageContent(){return"image"===this.type}setDisplayedSize(t,s){if(this.element&&(this.placeholder&&this.placeholder.setDisplayedSize(t,s),!this.instance.dispatch("contentResize",{content:this,width:t,height:s}).defaultPrevented&&(i(this.element,t,s),this.isImageContent()&&!this.isError()))){const i=!this.displayedImageWidth&&t;this.displayedImageWidth=t,this.displayedImageHeight=s,i?this.loadImage(!1):this.updateSrcsetSizes(),this.slide&&this.instance.dispatch("imageSizeChange",{slide:this.slide,width:t,height:s,content:this})}}isZoomable(){return this.instance.applyFilters("isContentZoomable",this.isImageContent()&&this.state!==n,this)}updateSrcsetSizes(){if(!this.isImageContent()||!this.element||!this.data.srcset)return;const t=this.element,i=this.instance.applyFilters("srcsetSizesWidth",this.displayedImageWidth,this);(!t.dataset.largestUsedSize||i>parseInt(t.dataset.largestUsedSize,10))&&(t.sizes=i+"px",t.dataset.largestUsedSize=String(i))}usePlaceholder(){return this.instance.applyFilters("useContentPlaceholder",this.isImageContent(),this)}lazyLoad(){this.instance.dispatch("contentLazyLoad",{content:this}).defaultPrevented||this.load(!0)}keepPlaceholder(){return this.instance.applyFilters("isKeepingPlaceholder",this.isLoading(),this)}destroy(){this.hasSlide=!1,this.slide=void 0,this.instance.dispatch("contentDestroy",{content:this}).defaultPrevented||(this.remove(),this.placeholder&&(this.placeholder.destroy(),this.placeholder=void 0),this.isImageContent()&&this.element&&(this.element.onload=null,this.element.onerror=null,this.element=void 0))}displayError(){if(this.slide){var i,s;let h=t("pswp__error-msg","div");h.innerText=null!==(i=null===(s=this.instance.options)||void 0===s?void 0:s.errorMsg)&&void 0!==i?i:"",h=this.instance.applyFilters("contentErrorElement",h,this),this.element=t("pswp__content pswp__error-msg-container","div"),this.element.appendChild(h),this.slide.container.innerText="",this.slide.container.appendChild(this.element),this.slide.updateContentSize(!0),this.removePlaceholder()}}append(){if(this.isAttached||!this.element)return;if(this.isAttached=!0,this.state===n)return void this.displayError();if(this.instance.dispatch("contentAppend",{content:this}).defaultPrevented)return;const t="decode"in this.element;this.isImageContent()?t&&this.slide&&(!this.slide.isActive||r())?(this.isDecoding=!0,this.element.decode().catch((()=>{})).finally((()=>{this.isDecoding=!1,this.appendImage()}))):this.appendImage():this.slide&&!this.element.parentNode&&this.slide.container.appendChild(this.element)}activate(){!this.instance.dispatch("contentActivate",{content:this}).defaultPrevented&&this.slide&&(this.isImageContent()&&this.isDecoding&&!r()?this.appendImage():this.isError()&&this.load(!1,!0),this.slide.holderElement&&this.slide.holderElement.setAttribute("aria-hidden","false"))}deactivate(){this.instance.dispatch("contentDeactivate",{content:this}),this.slide&&this.slide.holderElement&&this.slide.holderElement.setAttribute("aria-hidden","true")}remove(){this.isAttached=!1,this.instance.dispatch("contentRemove",{content:this}).defaultPrevented||(this.element&&this.element.parentNode&&this.element.remove(),this.placeholder&&this.placeholder.element&&this.placeholder.element.remove())}appendImage(){this.isAttached&&(this.instance.dispatch("contentAppendImage",{content:this}).defaultPrevented||(this.slide&&this.element&&!this.element.parentNode&&this.slide.container.appendChild(this.element),this.state!==e&&this.state!==n||this.removePlaceholder()))}}function c(t,i,s,h,e){let n=0;if(i.paddingFn)n=i.paddingFn(s,h,e)[t];else if(i.padding)n=i.padding[t];else{const s="padding"+t[0].toUpperCase()+t.slice(1);i[s]&&(n=i[s])}return Number(n)||0}class u{constructor(t,i,s,h){this.pswp=h,this.options=t,this.itemData=i,this.index=s,this.panAreaSize=null,this.elementSize=null,this.fit=1,this.fill=1,this.vFill=1,this.initial=1,this.secondary=1,this.max=1,this.min=1}update(t,i,s){const h={x:t,y:i};this.elementSize=h,this.panAreaSize=s;const e=s.x/h.x,n=s.y/h.y;this.fit=Math.min(1,e<n?e:n),this.fill=Math.min(1,e>n?e:n),this.vFill=Math.min(1,n),this.initial=this.t(),this.secondary=this.i(),this.max=Math.max(this.initial,this.secondary,this.o()),this.min=Math.min(this.fit,this.initial,this.secondary),this.pswp&&this.pswp.dispatch("zoomLevelsUpdate",{zoomLevels:this,slideData:this.itemData})}l(t){const i=t+"ZoomLevel",s=this.options[i];if(s)return"function"==typeof s?s(this):"fill"===s?this.fill:"fit"===s?this.fit:Number(s)}i(){let t=this.l("secondary");return t||(t=Math.min(1,3*this.fit),this.elementSize&&t*this.elementSize.x>4e3&&(t=4e3/this.elementSize.x),t)}t(){return this.l("initial")||this.fit}o(){return this.l("max")||Math.max(1,4*this.fit)}}function p(t,i,s){const h=i.createContentFromData(t,s);let e;const{options:n}=i;if(n){let o;e=new u(n,t,-1),o=i.pswp?i.pswp.viewportSize:function(t,i){if(t.getViewportSizeFn){const s=t.getViewportSizeFn(t,i);if(s)return s}return{x:document.documentElement.clientWidth,y:window.innerHeight}}(n,i);const r=function(t,i,s,h){return{x:i.x-c("left",t,i,s,h)-c("right",t,i,s,h),y:i.y-c("top",t,i,s,h)-c("bottom",t,i,s,h)}}(n,o,t,s);e.update(h.width,h.height,r)}return h.lazyLoad(),e&&h.setDisplayedSize(Math.ceil(h.width*e.initial),Math.ceil(h.height*e.initial)),h}return class extends class extends class{constructor(){this.u={},this.p={},this.pswp=void 0,this.options=void 0}addFilter(t,i,s=100){var h,e,n;this.p[t]||(this.p[t]=[]),null===(h=this.p[t])||void 0===h||h.push({fn:i,priority:s}),null===(e=this.p[t])||void 0===e||e.sort(((t,i)=>t.priority-i.priority)),null===(n=this.pswp)||void 0===n||n.addFilter(t,i,s)}removeFilter(t,i){this.p[t]&&(this.p[t]=this.p[t].filter((t=>t.fn!==i))),this.pswp&&this.pswp.removeFilter(t,i)}applyFilters(t,...i){var s;return null===(s=this.p[t])||void 0===s||s.forEach((t=>{i[0]=t.fn.apply(this,i)})),i[0]}on(t,i){var s,h;this.u[t]||(this.u[t]=[]),null===(s=this.u[t])||void 0===s||s.push(i),null===(h=this.pswp)||void 0===h||h.on(t,i)}off(t,i){var s;this.u[t]&&(this.u[t]=this.u[t].filter((t=>i!==t))),null===(s=this.pswp)||void 0===s||s.off(t,i)}dispatch(t,i){var s;if(this.pswp)return this.pswp.dispatch(t,i);const h=new l(t,i);return null===(s=this.u[t])||void 0===s||s.forEach((t=>{t.call(this,h)})),h}}{getNumItems(){var t;let i=0;const s=null===(t=this.options)||void 0===t?void 0:t.dataSource;s&&"length"in s?i=s.length:s&&"gallery"in s&&(s.items||(s.items=this.v(s.gallery)),s.items&&(i=s.items.length));const h=this.dispatch("numItems",{dataSource:s,numItems:i});return this.applyFilters("numItems",h.numItems,s)}createContentFromData(t,i){return new d(t,this,i)}getItemData(t){var i;const s=null===(i=this.options)||void 0===i?void 0:i.dataSource;let h={};Array.isArray(s)?h=s[t]:s&&"gallery"in s&&(s.items||(s.items=this.v(s.gallery)),h=s.items[t]);let e=h;e instanceof Element&&(e=this.m(e));const n=this.dispatch("itemData",{itemData:e||{},index:t});return this.applyFilters("itemData",n.itemData,t)}v(t){var i,s;return null!==(i=this.options)&&void 0!==i&&i.children||null!==(s=this.options)&&void 0!==s&&s.childSelector?o(this.options.children,this.options.childSelector,t)||[]:[t]}m(t){const i={element:t},s="A"===t.tagName?t:t.querySelector("a");if(s){i.src=s.dataset.pswpSrc||s.href,s.dataset.pswpSrcset&&(i.srcset=s.dataset.pswpSrcset),i.width=s.dataset.pswpWidth?parseInt(s.dataset.pswpWidth,10):0,i.height=s.dataset.pswpHeight?parseInt(s.dataset.pswpHeight,10):0,i.w=i.width,i.h=i.height,s.dataset.pswpType&&(i.type=s.dataset.pswpType);const e=t.querySelector("img");var h;if(e)i.msrc=e.currentSrc||e.src,i.alt=null!==(h=e.getAttribute("alt"))&&void 0!==h?h:"";(s.dataset.pswpCropped||s.dataset.cropped)&&(i.thumbCropped=!0)}return this.applyFilters("domItemData",i,t,s)}lazyLoadData(t,i){return p(t,this,i)}}{constructor(t){super(),this.options=t||{},this.g=0,this.shouldOpen=!1,this._=void 0,this.onThumbnailsClick=this.onThumbnailsClick.bind(this)}init(){o(this.options.gallery,this.options.gallerySelector).forEach((t=>{t.addEventListener("click",this.onThumbnailsClick,!1)}))}onThumbnailsClick(t){if(function(t){return"button"in t&&1===t.button||t.ctrlKey||t.metaKey||t.altKey||t.shiftKey}(t)||window.pswp)return;let i={x:t.clientX,y:t.clientY};i.x||i.y||(i=null);let s=this.getClickedIndex(t);s=this.applyFilters("clickedIndex",s,t,this);const h={gallery:t.currentTarget};s>=0&&(t.preventDefault(),this.loadAndOpen(s,h,i))}getClickedIndex(t){if(this.options.getClickedIndexFn)return this.options.getClickedIndexFn.call(this,t);const i=t.target,s=o(this.options.children,this.options.childSelector,t.currentTarget).findIndex((t=>t===i||t.contains(i)));return-1!==s?s:this.options.children||this.options.childSelector?-1:0}loadAndOpen(t,i,s){if(window.pswp||!this.options)return!1;if(!i&&this.options.gallery&&this.options.children){const t=o(this.options.gallery);t[0]&&(i={gallery:t[0]})}return this.options.index=t,this.options.initialPointerPos=s,this.shouldOpen=!0,this.preload(t,i),!0}preload(t,i){const{options:s}=this;i&&(s.dataSource=i);const h=[],e=typeof s.pswpModule;if("function"==typeof(n=s.pswpModule)&&n.prototype&&n.prototype.goTo)h.push(Promise.resolve(s.pswpModule));else{if("string"===e)throw new Error("pswpModule as string is no longer supported");if("function"!==e)throw new Error("pswpModule is not valid");h.push(s.pswpModule())}var n;"function"==typeof s.openPromise&&h.push(s.openPromise()),!1!==s.preloadFirstSlide&&t>=0&&(this._=function(t,i){const s=i.getItemData(t);if(!i.dispatch("lazyLoadSlide",{index:t,itemData:s}).defaultPrevented)return p(s,i,t)}(t,this));const o=++this.g;Promise.all(h).then((t=>{if(this.shouldOpen){const i=t[0];this.I(i,o)}}))}I(t,i){if(i!==this.g&&this.shouldOpen)return;if(this.shouldOpen=!1,window.pswp)return;const s="object"==typeof t?new t.default(this.options):new t(this.options);this.pswp=s,window.pswp=s,Object.keys(this.u).forEach((t=>{var i;null===(i=this.u[t])||void 0===i||i.forEach((i=>{s.on(t,i)}))})),Object.keys(this.p).forEach((t=>{var i;null===(i=this.p[t])||void 0===i||i.forEach((i=>{s.addFilter(t,i.fn,i.priority)}))})),this._&&(s.contentLoader.addToCache(this._),this._=void 0),s.on("destroy",(()=>{this.pswp=void 0,delete window.pswp})),s.init()}destroy(){var t;null===(t=this.pswp)||void 0===t||t.destroy(),this.shouldOpen=!1,this.u={},o(this.options.gallery,this.options.gallerySelector).forEach((t=>{t.removeEventListener("click",this.onThumbnailsClick,!1)}))}}}));
1307</script>
1307 <style> 1308/*! PhotoSwipe main CSS by Dmytro Semenov | photoswipe.com */.pswp{--pswp-bg:#000;--pswp-placeholder-bg:#222;--pswp-root-z-index:100000;--pswp-preloader-color:rgba(79, 79, 79, 0.4);--pswp-preloader-color-secondary:rgba(255, 255, 255, 0.9);--pswp-icon-color:#fff;--pswp-icon-color-secondary:#4f4f4f;--pswp-icon-stroke-color:#4f4f4f;--pswp-icon-stroke-width:2px;--pswp-error-text-color:var(--pswp-icon-color)}.pswp{position:fixed;top:0;left:0;width:100%;height:100%;z-index:var(--pswp-root-z-index);display:none;touch-action:none;outline:0;opacity:.003;contain:layout style size;-webkit-tap-highlight-color:transparent}.pswp:focus{outline:0}.pswp *{box-sizing:border-box}.pswp img{max-width:none}.pswp--open{display:block}.pswp,.pswp__bg{transform:translateZ(0);will-change:opacity}.pswp__bg{opacity:.005;background:var(--pswp-bg)}.pswp,.pswp__scroll-wrap{overflow:hidden}.pswp__bg,.pswp__container,.pswp__content,.pswp__img,.pswp__item,.pswp__scroll-wrap,.pswp__zoom-wrap{position:absolute;top:0;left:0;width:100%;height:100%}.pswp__img,.pswp__zoom-wrap{width:auto;height:auto}.pswp--click-to-zoom.pswp--zoom-allowed .pswp__img{cursor:-webkit-zoom-in;cursor:-moz-zoom-in;cursor:zoom-in}.pswp--click-to-zoom.pswp--zoomed-in .pswp__img{cursor:move;cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}
1308.pswp--click-to-zoom.pswp--zoomed-in .pswp__img:active{cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.pswp--no-mouse-drag.pswp--zoomed-in .pswp__img,.pswp--no-mouse-drag.pswp--zoomed-in .pswp__img:active,.pswp__img{cursor:-webkit-zoom-out;cursor:-moz-zoom-out;cursor:zoom-out}.pswp__button,.pswp__container,.pswp__counter,.pswp__img{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.pswp__item{z-index:1;overflow:hidden}.pswp__hidden{display:none!important}.pswp__content{pointer-events:none}.pswp__content>*{pointer-events:auto}.pswp__error-msg-container{display:grid}.pswp__error-msg{margin:auto;font-size:1em;line-height:1;color:var(--pswp-error-text-color)}.pswp .pswp__hide-on-close{opacity:.005;will-change:opacity;transition:opacity var(--pswp-transition-duration) cubic-bezier(.4,0,.22,1);z-index:10;pointer-events:none}.pswp--ui-visible .pswp__hide-on-close{opacity:1;pointer-events:auto}.pswp__button{position:relative;display:block;width:50px;height:60px;padding:0;margin:0;overflow:hidden;cursor:pointer;background:0 0;border:0;box-shadow:none;opacity:.85;-webkit-appearance:none;-webkit-touch-callout:none}.pswp__button:active,.pswp__button:focus,.pswp__button:hover{transition:none;padding:0;background:0 0;border:0;box-shadow:none;opacity:1}.pswp__button:disabled{opacity:.3;cursor:auto}.pswp__icn{fill:var(--pswp-icon-color);color:var(--pswp-icon-color-secondary)}.pswp__icn{position:absolute;top:14px;left:9px;width:32px;height:32px;overflow:hidden;pointer-events:none}.pswp__icn-shadow{stroke:var(--pswp-icon-stroke-color);stroke-width:var(--pswp-icon-stroke-width);fill:none}.pswp__icn:focus{outline:0}.pswp__img--with-bg,div.pswp__img--placeholder{background:var(--pswp-placeholder-bg)}.pswp__top-bar{position:absolute;left:0;top:0;width:100%;height:60px;display:flex;flex-direction:row;justify-content:flex-end;z-index:10;pointer-events:none!important}.pswp__top-bar>*{pointer-events:auto;will-change:opacity}.pswp__button--close{margin-right:6px}.pswp__button--arrow{position:absolute;top:0;width:75px;height:100px;top:50%;margin-top:-50px}.pswp__button--arrow:disabled{display:none;cursor:default}.pswp__button--arrow .pswp__icn{top:50%;margin-top:-30px;width:60px;height:60px;background:0 0;border-radius:0}.pswp--one-slide .pswp__button--arrow{display:none}.pswp--touch .pswp__button--arrow{visibility:hidden}.pswp--has_mouse .pswp__button--arrow{visibility:visible}.pswp__button--arrow--prev{right:auto;left:0}.pswp__button--arrow--next{right:0}.pswp__button--arrow--next .pswp__icn{left:auto;right:14px;transform:scale(-1,1)}.pswp__button--zoom{display:none}.pswp--zoom-allowed .pswp__button--zoom{display:block}.pswp--zoomed-in .pswp__zoom-icn-bar-v{display:none}.pswp__preloader{position:relative;overflow:hidden;width:50px;height:60px;margin-right:auto}.pswp__preloader .pswp__icn{opacity:0;transition:opacity .2s linear;animation:pswp-clockwise .6s linear infinite}.pswp__preloader--active .pswp__icn{opacity:.85}@keyframes pswp-clockwise{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.pswp__counter{height:30px;margin-top:15px;margin-inline-start:20px;font-size:14px;line-height:30px;color:var(--pswp-icon-color);text-shadow:1px 1px 3px var(--pswp-icon-color-secondary);opacity:.85}.pswp--one-slide .pswp__counter{display:none} 1309</style> 1310 <!-- True Anthem --> 1311
1311<script src="//static.trueanthem.com/scripts/ta.js"></script>
1311 1312 1313 <!-- IMGJS --> 1314
1314<script src="https://cdn.insightmediagroup.io/imgjs/v1/imgjs-v1.js?t=1789467325"></script>
1314 1315 </head> 1316 1317 <body class="wp-singular page-template page-template-components page-template-tpl-terms page-template-componentstpl-terms-php page page-id-3537131 wp-theme-tns-2022"> 1318 <!-- Google Tag Manager (noscript) -->
vendor: 70 bytes, lines 1318-1319
1318 1319 <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
1319GTM-NJH9PKQS
vendor: 85 bytes, lines 1319-1320
1319" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> 1320
1320<!-- End Google Tag Manager (noscript) --> 1321 1322
1322<script> 1323 $(document).ready(function() { 1324 window.tns = window.tns || {} 1325 1326 window.tns.getUTMParameterValue = function(name) { 1327 const urlParams = new URLSearchParams(window.location.search) 1328 return urlParams.get(name) 1329 } 1330 1331 window.tns.setCookie = function(key, value, hours_expiry) { 1332 const expiry_date = new Date() 1333 expiry_date.setTime(expiry_date.getTime() + hours_expiry * 60 * 60 * 1000) 1334 document.cookie = `${key}=${value};expires=${expiry_date.toUTCString()};samesite=lax;path=/;secure` 1335 } 1336 1337 window.tns.getCookie = function(key) { 1338 return document.cookie 1339 .split('; ') 1340 .find((row) => row.startsWith(`${key}=`)) 1341 ?.split('=')[1] 1342 } 1343 }) 1344</script>
1344
1344<script> 1345 $(document).ready(function() { 1346 window.tns.newsletter = { 1347 signup : function(params, callback) { 1348 var context = params.context; 1349 var newsletterID = params.newsletterID; 1350 var email = params.email; 1351 var emailInput = params.emailInput; 1352 1353 var newsletterTitle = ''; 1354 var newsletterSlug = ''; 1355 // var tnsDailyID = '6166149401'; 1356 // var tnsWeeklyID = 'd60fc24015'; 1357 if (newsletterID === '6166149401') { 1358 newsletterTitle = 'TNS Daily'; 1359 newsletterSlug = 'tns-daily'; 1360 } 1361 1362 if (newsletterID === 'd60fc24015') { 1363 newsletterTitle = 'TNS Update'; 1364 newsletterSlug = 'tns-update'; 1365 } 1366 1367 var data = null; 1368 1369 async.series([ 1370 validate, 1371 subscribe, 1372 handleError, 1373 confirmation 1374 ], function(result) { 1375 console.log(result.message); 1376 if (callback) return callback(result); 1377 }); 1378 1379 function validate(next) { 1380 if (!email || !validator.isEmail(email)) { 1381 emailInput.addClass('error'); 1382 1383 return next({ 1384 error : true, 1385 message : 'NEWSLETTER SIGNUP: Halting, invalid email.' 1386 }); 1387 } 1388 1389 return next(); 1390 } 1391 1392 function subscribe(next) { 1393 $.post('/no-cache/newsletter-subscribe/', { 1394 email : email, 1395 subscriptions : [ 1396 newsletterID 1397 ] 1398 }, function(result) { 1399 data = JSON.parse(result); 1400 1401 window.dataLayer.push({ 1402 'event' : 'newsletter_subscription', 1403 'newsletter' : newsletterSlug, 1404 'context' : context 1405 }); 1406 1407 return next(); 1408 }); 1409 } 1410 1411 function handleError(next) { 1412 /// New sign-up 1413 if (!data.member) return next(); 1414 1415 /// Previously unsubscribed 1416 if (data.member.status === 'unsubscribed') { 1417 window.tns.modal.open({ 1418 title : 'PLEASE RESUBSCRIBE', 1419 content : 'You have previously unsubcribed from ' + newsletterTitle + '. In order to resubscribe please click OK to open the resubscription form.' 1420 }); 1421 1422 $('.tns-modal-button-okay').off(); 1423 $('.tns-modal-button-okay').on('click', function() { 1424 location.href = 'https://eepurl.com/bMg5kH'; 1425 }); 1426 1427 emailInput.val(''); 1428 1429 return next({ 1430 error : true, 1431 message : 'NEWSLETTER SIGNUP: Halting, member previously unsubscribed.' 1432 }); 1433 } 1434 1435 return next(); 1436 } 1437 1438 function confirmation(next) { 1439 var msg = ''; 1440 1441 if (data.audience.title === 'Member Exists') { 1442 msg = 'You have been successfully subscribed to the ' + newsletterTitle + ' newsletter.'; 1443 } else { 1444 msg = 'You have been successfully subscribed to the ' + newsletterTitle + ' newsletter. Please check your inbox for an email confirmation link.'; 1445 } 1446 1447 window.tns.modal.open({ 1448 title : '200 OK', 1449 content : msg 1450 }); 1451 1452 emailInput.val(''); 1453 1454 $('.tns-modal-button-okay').off(); 1455 $('.tns-modal-button-okay').on('click', function() { 1456 window.tns.modal.close(); 1457 }); 1458 1459 return next({ 1460 error : false, 1461 message : 'NEWSLETTER SIGNUP: Newsletter subscription complete.' 1462 }); 1463 } 1464 } 1465 } 1466 }); 1467</script>
1467
1467<script> 1468 $(document).ready(function() { 1469 window.tns = window.tns || {} 1470 1471 window.tns.user = { 1472 _userPseudoId: null, 1473 _storageKey: 'tns-user-pseudo-id', 1474 _storageExpiry: 'tns-user-pseudo-id-expiry', 1475 1476 generateUserPseudoId: function() { 1477 var uuid; 1478 1479 // Try modern crypto.randomUUID first 1480 if (typeof crypto !== 'undefined' && crypto.randomUUID) { 1481 uuid = crypto.randomUUID(); 1482 console.log('[TNS User] Generated userPseudoId using crypto.randomUUID()'); 1483 } else { 1484 // Fallback UUID v4 generation 1485 uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) { 1486 var r = Math.random() * 16 | 0; 1487 var v = c == 'x' ? r : (r & 0x3 | 0x8); 1488 return v.toString(16); 1489 }); 1490 console.log('[TNS User] Generated userPseudoId using fallback method'); 1491 } 1492 1493 var userPseudoId = 'tns-' + uuid; 1494 console.log('[TNS User] New userPseudoId created:', userPseudoId); 1495 return userPseudoId; 1496 }, 1497 1498 setUserPseudoId: function(id, persistDays) { 1499 if (!id) return false; 1500 1501 persistDays = persistDays || 365; 1502 this._userPseudoId = id; 1503 1504 var expiryDate = new Date(); 1505 expiryDate.setTime(expiryDate.getTime() + (persistDays * 24 * 60 * 60 * 1000)); 1506 var expiryTimestamp = expiryDate.getTime(); 1507 1508 // Try localStorage first 1509 if (this._isStorageAvailable('localStorage')) { 1510 try { 1511 localStorage.setItem(this._storageKey, id); 1512 localStorage.setItem(this._storageExpiry, expiryTimestamp.toString()); 1513 console.log('[TNS User] userPseudoId stored in localStorage:', id); 1514 return true; 1515 } catch (e) { 1516 console.warn('[TNS User] localStorage failed, trying sessionStorage'); 1517 } 1518 } 1519 1520 // Try sessionStorage fallback 1521 if (this._isStorageAvailable('sessionStorage')) { 1522 try { 1523 sessionStorage.setItem(this._storageKey, id); 1524 sessionStorage.setItem(this._storageExpiry, expiryTimestamp.toString()); 1525 console.log('[TNS User] userPseudoId stored in sessionStorage:', id); 1526 return true; 1527 } catch (e) { 1528 console.warn('[TNS User] sessionStorage failed, trying cookies'); 1529 } 1530 } 1531 1532 // Cookie fallback using existing TNS cookie utility 1533 if (window.tns.setCookie) { 1534 var hoursExpiry = persistDays * 24; 1535 window.tns.setCookie(this._storageKey, id, hoursExpiry); 1536 window.tns.setCookie(this._storageExpiry, expiryTimestamp.toString(), hoursExpiry); 1537 console.log('[TNS User] userPseudoId stored in cookies:', id); 1538 return true; 1539 } 1540 1541 // If all storage methods fail, keep in memory for session 1542 console.warn('[TNS User] All storage methods failed, userPseudoId will only persist for this session'); 1543 return false; 1544 }, 1545 1546 getUserPseudoId: function() { 1547 // Return cached version if available 1548 if (this._userPseudoId) { 1549 console.log('[TNS User] Returning cached userPseudoId:', this._userPseudoId); 1550 return this._userPseudoId; 1551 } 1552 1553 var storedId = null; 1554 var storedExpiry = null; 1555 1556 // Try localStorage first 1557 if (this._isStorageAvailable('localStorage')) { 1558 try { 1559 storedId = localStorage.getItem(this._storageKey); 1560 storedExpiry = localStorage.getItem(this._storageExpiry); 1561 } catch (e) { 1562 // localStorage access failed 1563 } 1564 } 1565 1566 // Try sessionStorage if localStorage didn't work 1567 if (!storedId && this._isStorageAvailable('sessionStorage')) { 1568 try { 1569 storedId = sessionStorage.getItem(this._storageKey); 1570 storedExpiry = sessionStorage.getItem(this._storageExpiry); 1571 } catch (e) { 1572 // sessionStorage access failed 1573 } 1574 } 1575 1576 // Try cookies if both storage methods failed 1577 if (!storedId && window.tns.getCookie) { 1578 storedId = window.tns.getCookie(this._storageKey); 1579 storedExpiry = window.tns.getCookie(this._storageExpiry); 1580 } 1581 1582 // Check if stored ID is expired 1583 if (storedId && storedExpiry) { 1584 var expiryTime = parseInt(storedExpiry); 1585 var currentTime = new Date().getTime(); 1586 1587 if (currentTime > expiryTime) { 1588 // ID is expired, clean up and generate new one 1589 console.log('[TNS User] userPseudoId expired, generating new one. Expired ID:', storedId); 1590 this._cleanupExpiredId(); 1591 storedId = null; 1592 } else { 1593 console.log('[TNS User] Retrieved valid stored userPseudoId:', storedId); 1594 } 1595 } 1596 1597 // If no valid stored ID, generate a new one 1598 if (!storedId) { 1599 console.log('[TNS User] No valid stored userPseudoId found, generating new one'); 1600 storedId = this.generateUserPseudoId(); 1601 this.setUserPseudoId(storedId); 1602 } 1603 1604 // Cache for future calls 1605 this._userPseudoId = storedId; 1606 console.log('[TNS User] userPseudoId ready for use:', storedId); 1607 return storedId; 1608 }, 1609 1610 _isStorageAvailable: function(type) { 1611 var storage; 1612 try { 1613 storage = window[type]; 1614 var x = '__storage_test__'; 1615 storage.setItem(x, x); 1616 storage.removeItem(x); 1617 return true; 1618 } catch (e) { 1619 return e instanceof DOMException && ( 1620 // everything except Firefox 1621 e.code === 22 || 1622 // Firefox 1623 e.code === 1014 || 1624 // test name field too, because code might not be present 1625 // everything except Firefox 1626 e.name === 'QuotaExceededError' || 1627 // Firefox 1628 e.name === 'NS_ERROR_DOM_QUOTA_REACHED') && 1629 // acknowledge QuotaExceededError only if there's something already stored 1630 (storage && storage.length !== 0); 1631 } 1632 }, 1633 1634 _cleanupExpiredId: function() { 1635 // Clean up from localStorage 1636 if (this._isStorageAvailable('localStorage')) { 1637 try { 1638 localStorage.removeItem(this._storageKey); 1639 localStorage.removeItem(this._storageExpiry); 1640 } catch (e) { 1641 // Cleanup failed 1642 } 1643 } 1644 1645 // Clean up from sessionStorage 1646 if (this._isStorageAvailable('sessionStorage')) { 1647 try { 1648 sessionStorage.removeItem(this._storageKey); 1649 sessionStorage.removeItem(this._storageExpiry); 1650 } catch (e) { 1651 // Cleanup failed 1652 } 1653 } 1654 1655 // Clean up cookies 1656 if (window.tns.setCookie) { 1657 window.tns.setCookie(this._storageKey, '', -1); 1658 window.tns.setCookie(this._storageExpiry, '', -1); 1659 } 1660 1661 // Clear cached version 1662 this._userPseudoId = null; 1663 } 1664 } 1665 }) 1666</script>
1666 <div id="tns-modal-screen"> 1667 <div id="tns-modal"> 1668 <div class="tns-modal-title"> 1669 TNS 1670 </div> 1671 1672 <div class="tns-modal-close"> 1673 <svg xmlns="http://www.w3.org/2000/svg" width="19.414" height="19.414" viewBox="0 0 19.414 19.414"> 1674 <g id="Group_891" data-name="Group 891" transform="translate(-167.793 -300.793)"> 1675 <path id="Line_226" data-name="Line 226" d="M17.293,18.707l-18-18L.707-.707l18,18Z" transform="translate(168.5 301.5)"/> 1676 <path id="Line_227" data-name="Line 227" d="M.707,18.707-.707,17.293l18-18L18.707.707Z" transform="translate(168.5 301.5)"/> 1677 </g> 1678</svg> 1679 </div> 1680 1681 <div class="tns-modal-content"> 1682 1683 </div> 1684 1685 <div class="tns-modal-buttons"> 1686 <button class="tns-modal-button-okay"> 1687 OK 1688 </button> 1689 </div> 1690 </div> 1691</div> 1692
1693<script> 1694 $(document).ready(function() { 1695 $modalScreen = $('#tns-modal-screen'); 1696 $modal = $('#tns-modal'); 1697 1698 window.tns.modal = { 1699 open : function(params) { 1700 $('.tns-modal-title').html(params.title); 1701 $('.tns-modal-content').html(params.content); 1702 1703 $modalScreen.stop().css({ 1704 opacity : 0, 1705 display : 'block' 1706 }); 1707 1708 $modalScreen.stop().transition({ 1709 duration : 333, 1710 opacity : 1, 1711 easing : 'ease-out-quad' 1712 }); 1713 1714 $modal.stop().css({ 1715 opacity : 0, 1716 display : 'block' 1717 }); 1718 1719 $modal.stop().transition({ 1720 duration : 333, 1721 opacity : 1, 1722 easing : 'ease-out-quad' 1723 }); 1724 }, 1725 close : function() { 1726 $modalScreen.stop().css({ 1727 opacity : 0, 1728 display : 'block' 1729 }); 1730 1731 $modal.stop().transition({ 1732 duration : 333, 1733 opacity : 0, 1734 easing : 'ease-out-quad' 1735 }); 1736 1737 $modalScreen.stop().transition({ 1738 duration : 333, 1739 opacity : 0, 1740 easing : 'ease-out-quad' 1741 }, function() { 1742 $modalScreen.stop().css({ 1743 opacity : 0, 1744 display : 'none' 1745 }); 1746 1747 $('.tns-modal-title').html(''); 1748 $('.tns-modal-content').html(''); 1749 }); 1750 } 1751 } 1752 1753 $('.tns-modal-close').on('click', function() { 1754 window.tns.modal.close(); 1755 }); 1756 }); 1757</script>
1757 1758 <div id="tns-subscribe"> 1759 <div class="modal"> 1760 <div class="header"> 1761 <div class="title"> 1762 SUBSCRIBE 1763 </div> 1764 1765 <div class="close"> 1766 <svg xmlns="http://www.w3.org/2000/svg" width="19.414" height="19.414" viewBox="0 0 19.414 19.414"> 1767 <g id="Group_891" data-name="Group 891" transform="translate(-167.793 -300.793)"> 1768 <path id="Line_226" data-name="Line 226" d="M17.293,18.707l-18-18L.707-.707l18,18Z" transform="translate(168.5 301.5)"/> 1769 <path id="Line_227" data-name="Line 227" d="M.707,18.707-.707,17.293l18-18L18.707.707Z" transform="translate(168.5 301.5)"/> 1770 </g> 1771</svg> 1772 </div> 1773 </div> 1774 1775 <div class="content"> 1776 <div class="swiper tns-subscribe-swiper"> 1777 <div class="swiper-wrapper"> 1778 <div class="swiper-slide"> 1779 <div class="copy copy-screen-0"> 1780 Join our community of software engineering leaders and aspirational developers. Always 1781 stay in-the-know by getting the most important news and exclusive content delivered 1782 fresh to your inbox to learn more about at-scale software development. 1783 </div> 1784 1785 <div class="form"> 1786 <div class="form-field form-field-email"> 1787 <div class="row"> 1788 <div class="col col-75 form-field-label"> 1789 <label>EMAIL ADDRESS</label> 1790 </div> 1791 <div class="col col-25 form-field-info"> 1792 REQUIRED 1793 </div> 1794 </div> 1795 1796 <input type="email" data-key="EMAIL" class="subscribe-input subscribe-email"> 1797 1798 <button class="subscribe-button">SUBSCRIBE</button> 1799 </div> 1800 1801 <div class="form-field form-field-resubscribe"> 1802 <div class="row"> 1803 <div class="col col-75 form-field-label"> 1804 <label>RESUBSCRIPTION REQUIRED</label> 1805 </div> 1806 <div class="col col-25 form-field-info"> 1807 1808 </div> 1809 </div> 1810 1811 <div class="copy"> 1812 It seems that you've previously unsubscribed from our newsletter 1813 in the past. Click the button below to open the re-subscribe form 1814 in a new tab. When you're done, simply close that tab and continue 1815 with this form to complete your subscription. 1816 </div> 1817 1818 <button class="resubscribe-button">RE-SUBSCRIBE</button> 1819 </div> 1820 1821 <div class="subscribe-form-privacy"> 1822 The New Stack does not sell your information or share it with 1823 unaffiliated third parties. By continuing, you agree to our 1824 <a href="/terms-of-use/">Terms of Use</a> and 1825 <a href="/privacy-policy/">Privacy Policy</a>. 1826 </div> 1827 </div> 1828 </div> 1829 1830 <div class="swiper-slide"> 1831 <div class="heading"> 1832 Welcome and thank you for joining The New Stack community! 1833 </div> 1834 <div class="copy"> 1835 Please answer a few simple questions to help us deliver the news and resources you are interested in. 1836 </div> 1837 <div class="form"> 1838 <div class="form-field"> 1839 <div class="row"> 1840 <div class="col col-75 form-field-label"> 1841 <label>FIRST NAME</label> 1842 </div> 1843 <div class="col col-25 form-field-info"> 1844 REQUIRED 1845 </div> 1846 </div> 1847 1848 <input type="text" data-key="FNAME" class="subscribe-input subscribe-firstname"> 1849 </div> 1850 1851 <div class="form-field"> 1852 <div class="row"> 1853 <div class="col col-75 form-field-label"> 1854 <label>LAST NAME</label> 1855 </div> 1856 <div class="col col-25 form-field-info"> 1857 REQUIRED 1858 </div> 1859 </div> 1860 1861 <input type="text" data-key="LNAME" class="subscribe-input subscribe-lastname"> 1862 </div> 1863 1864 <div class="form-field"> 1865 <div class="row"> 1866 <div class="col col-75 form-field-label"> 1867 <label>COMPANY NAME</label> 1868 </div> 1869 <div class="col col-25 form-field-info"> 1870 REQUIRED 1871 </div> 1872 </div> 1873 1874 <input type="text" data-key="COMPANY" class="subscribe-input subscribe-company"> 1875 </div> 1876 1877 <div class="form-field"> 1878 <div class="row"> 1879 <div class="col col-75 form-field-label"> 1880 <label>COUNTRY</label> 1881 </div> 1882 <div class="col col-25 form-field-info"> 1883 REQUIRED 1884 </div> 1885 </div> 1886 1887 <select data-key="COUNTRY" class="subscribe-input subscribe-country"> 1888 <option value="">Select ...</option> 1889 <option value="US">United States</option> 1890 <option value="CA">Canada</option> 1891 <option value="IN">India</option> 1892 <option value="GB">United Kingdom</option> 1893 <option value="DE">Germany</option> 1894 <option value="FR">France</option> 1895 <option value="--">---</option> 1896 <option value="AF">Afghanistan</option> 1897 <option value="AL">Albania</option> 1898 <option value="DZ">Algeria</option> 1899 <option value="AS">American Samoa</option> 1900 <option value="AD">Andorra</option> 1901 <option value="AO">Angola</option> 1902 <option value="AI">Anguilla</option> 1903 <option value="AQ">Antarctica</option> 1904 <option value="AG">Antigua and Barbuda</option> 1905 <option value="AR">Argentina</option> 1906 <option value="AM">Armenia</option> 1907 <option value="AW">Aruba</option> 1908 <option value="AP">Asia/Pacific Region</option> 1909 <option value="AU">Australia</option> 1910 <option value="AT">Austria</option> 1911 <option value="AZ">Azerbaijan</option> 1912 <option value="BS">Bahamas</option> 1913 <option value="BH">Bahrain</option> 1914 <option value="BD">Bangladesh</option> 1915 <option value="BB">Barbados</option> 1916 <option value="BY">Belarus</option> 1917 <option value="BE">Belgium</option> 1918 <option value="BZ">Belize</option> 1919 <option value="BJ">Benin</option> 1920 <option value="BM">Bermuda</option> 1921 <option value="BT">Bhutan</option> 1922 <option value="BO">Bolivia</option> 1923 <option value="BQ">Bonaire, Sint Eustatius and Saba</option> 1924 <option value="BA">Bosnia and Herzegovina</option> 1925 <option value="BW">Botswana</option> 1926 <option value="BV">Bouvet Island</option> 1927 <option value="BR">Brazil</option> 1928 <option value="IO">British Indian Ocean Territory</option> 1929 <option value="BN">Brunei Darussalam</option> 1930 <option value="BG">Bulgaria</option> 1931 <option value="BF">Burkina Faso</option> 1932 <option value="BI">Burundi</option> 1933 <option value="KH">Cambodia</option> 1934 <option value="CM">Cameroon</option> 1935 <option value="CA">Canada</option> 1936 <option value="CV">Cape Verde</option> 1937 <option value="KY">Cayman Islands</option> 1938 <option value="CF">Central African Republic</option> 1939 <option value="TD">
1939Chad</option> 1940 <option value="CL">Chile</option> 1941 <option value="CN">China</option> 1942 <option value="CX">Christmas Island</option> 1943 <option value="CC">Cocos (Keeling) Islands</option> 1944 <option value="CO">Colombia</option> 1945 <option value="KM">Comoros</option> 1946 <option value="CG">Congo</option> 1947 <option value="CD">Congo, The Democratic Republic of the</option> 1948 <option value="CK">Cook Islands</option> 1949 <option value="CR">Costa Rica</option> 1950 <option value="HR">Croatia</option> 1951 <option value="CU">Cuba</option> 1952 <option value="CW">Curaçao</option> 1953 <option value="CY">Cyprus</option> 1954 <option value="CZ">Czech Republic</option> 1955 <option value="CI">Côte d'Ivoire</option> 1956 <option value="DK">Denmark</option> 1957 <option value="DJ">Djibouti</option> 1958 <option value="DM">Dominica</option> 1959 <option value="DO">Dominican Republic</option> 1960 <option value="EC">Ecuador</option> 1961 <option value="EG">Egypt</option> 1962 <option value="SV">El Salvador</option> 1963 <option value="GQ">Equatorial Guinea</option> 1964 <option value="ER">Eritrea</option> 1965 <option value="EE">Estonia</option> 1966 <option value="ET">Ethiopia</option> 1967 <option value="FK">Falkland Islands (Malvinas)</option> 1968 <option value="FO">Faroe Islands</option> 1969 <option value="FJ">Fiji</option> 1970 <option value="FI">Finland</option> 1971 <option value="FR">France</option> 1972 <option value="GF">French Guiana</option> 1973 <option value="PF">French Polynesia</option> 1974 <option value="TF">French Southern Territories</option> 1975 <option value="GA">Gabon</option> 1976 <option value="GM">Gambia</option> 1977 <option value="GE">Georgia</option> 1978 <option value="DE">Germany</option> 1979 <option value="GH">Ghana</option> 1980 <option value="GI">Gibraltar</option> 1981 <option value="GR">Greece</option> 1982 <option value="GL">Greenland</option> 1983 <option value="GD">Grenada</option> 1984 <option value="GP">Guadeloupe</option> 1985 <option value="GU">Guam</option> 1986 <option value="GT">Guatemala</option> 1987 <option value="GG">Guernsey</option> 1988 <option value="GN">Guinea</option> 1989 <option value="GW">Guinea-Bissau</option> 1990 <option value="GY">Guyana</option> 1991 <option value="HT">Haiti</option> 1992 <option value="HM">Heard Island and Mcdonald Islands</option> 1993 <option value="VA">Holy See (Vatican City State)</option> 1994 <option value="HN">Honduras</option> 1995 <option value="HK">Hong Kong</option> 1996 <option value="HU">Hungary</option> 1997 <option value="IS">Iceland</option> 1998 <option value="IN">India</option> 1999 <option value="ID">Indonesia</option> 2000 <option value="IR">Iran, Islamic Republic Of</option> 2001 <option value="IQ">Iraq</option> 2002 <option value="IE">Ireland</option> 2003 <option value="IM">Isle of Man</option> 2004 <option value="IL">Israel</option> 2005 <option value="IT">Italy</option> 2006 <option value="JM">Jamaica</option> 2007 <option value="JP">Japan</option> 2008 <option value="JE">Jersey</option> 2009 <option value="JO">Jordan</option> 2010 <option value="KZ">Kazakhstan</option> 2011 <option value="KE">Kenya</option> 2012 <option value="KI">Kiribati</option> 2013 <option value="KR">Korea, Republic of</option> 2014 <option value="KW">Kuwait</option> 2015 <option value="KG">Kyrgyzstan</option> 2016 <option value="LA">Laos</option> 2017 <option value="LV">Latvia</option> 2018 <option value="LB">Lebanon</option> 2019 <option value="LS">Lesotho</option> 2020 <option value="LR">Liberia</option> 2021 <option value="LY">Libyan Arab Jamahiriya</option> 2022 <option value="LI">Liechtenstein</option> 2023 <option value="LT">Lithuania</option> 2024 <option value="LU">Luxembourg</option> 2025 <option value="MO">Macao</option> 2026 <option value="MG">Madagascar</option> 2027 <option value="MW">Malawi</option> 2028 <option value="MY">Malaysia</option> 2029 <option value="MV">Maldives</option> 2030 <option value="ML">Mali</option> 2031 <option value="MT">Malta</option> 2032 <option value="MH">Marshall Islands</option> 2033 <option value="MQ">Martinique</option> 2034 <option value="MR">Mauritania</option> 2035 <option value="MU">Mauritius</option> 2036 <option value="YT">Mayotte</option> 2037 <option value="MX">Mexico</option> 2038 <option value="FM">Micronesia, Federated States of</option> 2039 <option value="MD">Moldova, Republic of</option> 2040 <option value="MC">Monaco</option> 2041 <option value="MN">Mongolia</option> 2042 <option value="ME">Montenegro</option> 2043 <option value="MS">Montserrat</option> 2044 <option value="MA">Morocco</option> 2045 <option value="MZ">Mozambique</option> 2046 <option value="MM">Myanmar</option> 2047 <option value="NA">Namibia</option> 2048 <option value="NR">Nauru</option> 2049 <option value="NP">Nepal</option> 2050 <option value="NL">Netherlands</option> 2051 <option value="AN">Netherlands Antilles</option> 2052 <option value="NC">New Caledonia</option> 2053 <option value="NZ">New Zealand</option> 2054 <option value="NI">Nicaragua</option> 2055 <option value="NE">Niger</option> 2056 <option value="NG">Nigeria</option> 2057 <option value="NU">Niue</option> 2058 <option value="NF">Norfolk Island</option> 2059 <option value="KP">North Korea</option> 2060 <option value="MK">North Macedonia</option> 2061 <option value="MP">Northern Mariana Islands</option> 2062 <option value="NO">Norway</option> 2063 <option value="OM">Oman</option> 2064 <option value="PK">Pakistan</option> 2065 <option value="PW">Palau</option> 2066 <option value="PS">Palestinian Territory, Occupied</option> 2067 <option value="PA">Panama</option> 2068 <option value="PG">Papua New Guinea</option> 2069 <option value="PY">Paraguay</option> 2070 <option value="PE">
2070Peru</option> 2071 <option value="PH">Philippines</option> 2072 <option value="PN">Pitcairn Islands</option> 2073 <option value="PL">Poland</option> 2074 <option value="PT">Portugal</option> 2075 <option value="PR">Puerto Rico</option> 2076 <option value="QA">Qatar</option> 2077 <option value="RE">Reunion</option> 2078 <option value="RO">Romania</option> 2079 <option value="RU">Russian Federation</option> 2080 <option value="RW">Rwanda</option> 2081 <option value="BL">Saint Barthélemy</option> 2082 <option value="SH">Saint Helena</option> 2083 <option value="KN">Saint Kitts and Nevis</option> 2084 <option value="LC">Saint Lucia</option> 2085 <option value="MF">Saint Martin</option> 2086 <option value="MF">Saint Martin</option> 2087 <option value="PM">Saint Pierre and Miquelon</option> 2088 <option value="VC">Saint Vincent and the Grenadines</option> 2089 <option value="WS">Samoa</option> 2090 <option value="SM">San Marino</option> 2091 <option value="ST">Sao Tome and Principe</option> 2092 <option value="SA">Saudi Arabia</option> 2093 <option value="SN">Senegal</option> 2094 <option value="RS">Serbia</option> 2095 <option value="CS">Serbia and Montenegro</option> 2096 <option value="SC">Seychelles</option> 2097 <option value="SL">Sierra Leone</option> 2098 <option value="SG">Singapore</option> 2099 <option value="SX">Sint Maarten</option> 2100 <option value="SK">Slovakia</option> 2101 <option value="SI">Slovenia</option> 2102 <option value="SB">Solomon Islands</option> 2103 <option value="SO">Somalia</option> 2104 <option value="ZA">South Africa</option> 2105 <option value="GS">South Georgia and the South Sandwich Islands</option> 2106 <option value="SS">South Sudan</option> 2107 <option value="ES">Spain</option> 2108 <option value="LK">Sri Lanka</option> 2109 <option value="SD">Sudan</option> 2110 <option value="SR">Suriname</option> 2111 <option value="SJ">Svalbard and Jan Mayen</option> 2112 <option value="SZ">Swaziland</option> 2113 <option value="SE">Sweden</option> 2114 <option value="CH">Switzerland</option> 2115 <option value="SY">Syrian Arab Republic</option> 2116 <option value="TW">Taiwan</option> 2117 <option value="TJ">Tajikistan</option> 2118 <option value="TZ">Tanzania, United Republic of</option> 2119 <option value="TH">Thailand</option> 2120 <option value="TL">Timor-Leste</option> 2121 <option value="TG">Togo</option> 2122 <option value="TK">Tokelau</option> 2123 <option value="TO">Tonga</option> 2124 <option value="TT">Trinidad and Tobago</option> 2125 <option value="TN">Tunisia</option> 2126 <option value="TR">Turkey</option> 2127 <option value="TM">Turkmenistan</option> 2128 <option value="TC">Turks and Caicos Islands</option> 2129 <option value="TV">Tuvalu</option> 2130 <option value="UG">Uganda</option> 2131 <option value="UA">Ukraine</option> 2132 <option value="AE">United Arab Emirates</option> 2133 <option value="GB">United Kingdom</option> 2134 <option value="US">United States</option> 2135 <option value="UM">United States Minor Outlying Islands</option> 2136 <option value="UY">Uruguay</option> 2137 <option value="UZ">Uzbekistan</option> 2138 <option value="VU">Vanuatu</option> 2139 <option value="VE">Venezuela</option> 2140 <option value="VN">Vietnam</option> 2141 <option value="VG">Virgin Islands, British</option> 2142 <option value="VI">Virgin Islands, U.S.</option> 2143 <option value="WF">Wallis and Futuna</option> 2144 <option value="EH">Western Sahara</option> 2145 <option value="YE">Yemen</option> 2146 <option value="ZM">Zambia</option> 2147 <option value="ZW">Zimbabwe</option> 2148 <option value="AX">à land Islands</option> 2149 </select> 2150 </div> 2151 2152 <div class="form-field form-field-zipcode"> 2153 <div class="row"> 2154 <div class="col col-75 form-field-label"> 2155 <label>ZIPCODE</label> 2156 </div> 2157 <div class="col col-25 form-field-info"> 2158 REQUIRED 2159 </div> 2160 </div> 2161 2162 <input type="text" data-key="ZIPCODE" class="subscribe-input subscribe-zipcode"> 2163 </div> 2164 </div> 2165 </div> 2166 2167 <div class="swiper-slide"> 2168 <div class="heading"> 2169 Great to meet you! 2170 </div> 2171 <div class="copy"> 2172 Tell us a bit about your job so we can cover the topics you find most relevant. 2173 </div> 2174 <div class="form"> 2175 <div class="form-field"> 2176 <div class="row"> 2177 <div class="col col-75 form-field-label"> 2178 <label>What is your job level?</label> 2179 </div> 2180 <div class="col col-25 form-field-info"> 2181 REQUIRED 2182 </div> 2183 </div> 2184 2185 <!-- 2186 <div class="subscribe-input-select-arrow"> 2187 <svg xmlns="http://www.w3.org/2000/svg" width="23.012" height="17.268" viewBox="0 0 23.012 17.268"> 2188 <path id="Path_340" data-name="Path 340" d="M14.36,0,12.816,1.508l6.067,6.067H0V9.729H18.884l-6.031,6.032L14.4,17.268l8.616-8.616Z" transform="translate(0 0)"/> 2189</svg> 2190 </div> 2191 --> 2192 2193 <select data-key="JOBLEVEL" class="subscribe-input subscribe-job-level subscribe-has-other"> 2194 <option value="">Select ...</option> 2195 <option value="c-level">C-Level</option> 2196 <option value="vp-director">VP/Director</option> 2197 <option value="manager-supervisor">Manager/Supervisor</option> 2198 <option value="mid-level">Mid Level or Senior Non-Managerial Staff</option> 2199 <option value="entry-level">Entry Level/Junior Staff</option> 2200 <option value="freelance-contractor">Freelancer/Contractor</option> 2201 <option value="student-intern">Student/Intern</option> 2202 <option value="other">Other ...</option> 2203 </select> 2204 2205 <input type="text" placeholder="Please specify ..." class="subscribe-input-other subscribe-job-level-other"> 2206
2207 <div class="subscribe-input-other-clear"> 2208 <svg xmlns="http://www.w3.org/2000/svg" width="19.414" height="19.414" viewBox="0 0 19.414 19.414"> 2209 <g id="Group_891" data-name="Group 891" transform="translate(-167.793 -300.793)"> 2210 <path id="Line_226" data-name="Line 226" d="M17.293,18.707l-18-18L.707-.707l18,18Z" transform="translate(168.5 301.5)"/> 2211 <path id="Line_227" data-name="Line 227" d="M.707,18.707-.707,17.293l18-18L18.707.707Z" transform="translate(168.5 301.5)"/> 2212 </g> 2213</svg> 2214 </div> 2215 </div> 2216 2217 <div class="form-field"> 2218 <div class="row"> 2219 <div class="col col-75 form-field-label"> 2220 <label>Which of these most closely describes your job role?</label> 2221 </div> 2222 <div class="col col-25 form-field-info"> 2223 REQUIRED 2224 </div> 2225 </div> 2226 2227 <select data-key="JOBROLE" class="subscribe-input subscribe-job-role subscribe-has-other"> 2228 <option value="">Select ...</option> 2229 <option value="developer-engineer">Developer/Software Engineer</option> 2230 <option value="sysadmin-ops-sre">SysAdmin/Operations/SRE</option> 2231 <option value="architect">Architect</option> 2232 <option value="security-professional">Security Professional</option> 2233 <option value="devops-engineer">DevOps Engineer/Team</option> 2234 <option value="community-manager-devrel">Community Manager/Developer Advocate</option> 2235 <option value="it-management-cio-ciso-cto">IT management, including CIO/CISO/CTO</option> 2236 <option value="business-development">Business Development/Marketing/Sales</option> 2237 <option value="enthusiast-hobbyist">Enthusiast/Hobbyist</option> 2238 <option value="other">Other ...</option> 2239 </select> 2240 2241 <input type="text" placeholder="Please specify ..." class="subscribe-input-other subscribe-job-role-other"> 2242 2243 <div class="subscribe-input-other-clear"> 2244 <svg xmlns="http://www.w3.org/2000/svg" width="19.414" height="19.414" viewBox="0 0 19.414 19.414"> 2245 <g id="Group_891" data-name="Group 891" transform="translate(-167.793 -300.793)"> 2246 <path id="Line_226" data-name="Line 226" d="M17.293,18.707l-18-18L.707-.707l18,18Z" transform="translate(168.5 301.5)"/> 2247 <path id="Line_227" data-name="Line 227" d="M.707,18.707-.707,17.293l18-18L18.707.707Z" transform="translate(168.5 301.5)"/> 2248 </g> 2249</svg> 2250 </div> 2251 </div> 2252 2253 <div class="form-field"> 2254 <div class="row"> 2255 <div class="col col-75 form-field-label"> 2256 <label>How many employees are in the organization you work with?</label> 2257 </div> 2258 <div class="col col-25 form-field-info"> 2259 REQUIRED 2260 </div> 2261 </div> 2262 2263 <select data-key="ORGEMP" class="subscribe-input subscribe-employees"> 2264 <option value="">Select ...</option> 2265 <option value="self-employed">Self-employed</option> 2266 <option value="2-10">2-10</option> 2267 <option value="11-50">11-50</option> 2268 <option value="51-250">51-250</option> 2269 <option value="251-1000">251-1,000</option> 2270 <option value="1001-10000">1,001-10,000</option> 2271 <option value="10000-plus">> 10,000</option> 2272 <option value="not-working">I am not working</option> 2273 </select> 2274 </div> 2275 2276 <div class="form-field form-field-orgdesc"> 2277 <div class="row"> 2278 <div class="col col-75 form-field-label"> 2279 <label>What option best describes the type of organization you work for?</label> 2280 </div> 2281 <div class="col col-25 form-field-info"> 2282 REQUIRED 2283 </div> 2284 </div> 2285 2286 <select data-key="ORGDESC" class="subscribe-input subscribe-organization-description subscribe-has-other"> 2287 <option value="">Select ...</option> 2288 <option value="end-user-org">âEnd userâ organization that primarily uses IT products and services to support their business deliverables</option> 2289 <option value="hardware-software">
2289Hardware / software vendor or supplier</option> 2290 <option value="cloud-service">Cloud service provider or managed service provider</option> 2291 <option value="system-integrator">System integrator or IT consulting firm</option> 2292 <option value="other">Other ...</option> 2293 </select> 2294 2295 <input type="text" placeholder="Please specify ..." class="subscribe-input-other subscribe-organization-description-other"> 2296 2297 <div class="subscribe-input-other-clear"> 2298 <svg xmlns="http://www.w3.org/2000/svg" width="19.414" height="19.414" viewBox="0 0 19.414 19.414"> 2299 <g id="Group_891" data-name="Group 891" transform="translate(-167.793 -300.793)"> 2300 <path id="Line_226" data-name="Line 226" d="M17.293,18.707l-18-18L.707-.707l18,18Z" transform="translate(168.5 301.5)"/> 2301 <path id="Line_227" data-name="Line 227" d="M.707,18.707-.707,17.293l18-18L18.707.707Z" transform="translate(168.5 301.5)"/> 2302 </g> 2303</svg> 2304 </div> 2305 </div> 2306 2307 <div class="form-field form-field-orgindus"> 2308 <div class="row"> 2309 <div class="col col-75 form-field-label"> 2310 <label>Which of the following best describes your organization's primary industry?</label> 2311 </div> 2312 <div class="col col-25 form-field-info"> 2313 REQUIRED 2314 </div> 2315 </div> 2316 2317 <select data-key="ORGINDUS" class="subscribe-input subscribe-industry subscribe-has-other"> 2318 <option value="">Select ...</option> 2319 <option value="advertising-marketing">Advertising/Marketing</option> 2320 <option value="aerospace-aviation">Aerospace/Aviation</option> 2321 <option value="agriculture">Agriculture</option> 2322 <option value="automotive">Automotive</option> 2323 <option value="biotech-pharma">Biotech/Pharmaceutical</option> 2324 <option value="business-services">Business Services (accounting, consulting, etc.)</option> 2325 <option value="computers-it">Computers/Information Technology</option> 2326 <option value="construction">Construction</option> 2327 <option value="education">Education</option> 2328 <option value="facilities">Facilities/Service Industry</option> 2329 <option value="fintech">Finance/Financial Services (banking, insurance, etc.)</option> 2330 <option value="government">Government</option> 2331 <option value="healthcare">Healthcare</option> 2332 <option value="human-resources">Human Resources</option> 2333 <option value="legal">Legal</option> 2334 <option value="life-sciences">Life sciences (biotech, pharmaceuticals, etc.)</option> 2335 <option value="manufacturing">Manufacturing</option> 2336 <option value="media">Media</option> 2337 <option value="non-profit">Non-profit</option> 2338 <option value="real-estate">Real Estate</option> 2339 <option value="retail-consumer-goods">Retail/Consumer Goods</option> 2340 <option value="telecommunications">Telecommunications</option> 2341 <option value="transportation-logistics">Transportation/Logistics</option> 2342 <option value="travel-hospitality-entertainment">Travel/Hospitality/Entertainment</option> 2343 <option value="utilitiy-energy">Utility/Energy</option> 2344 <option value="other">Other ...</option> 2345 </select> 2346 2347 <input type="text" placeholder="Please specify ..." class="subscribe-input-other subscribe-industry-other"> 2348 2349 <div class="subscribe-input-other-clear"> 2350 <svg xmlns="http://www.w3.org/2000/svg" width="19.414" height="19.414" viewBox="0 0 19.414 19.414"> 2351 <g id="Group_891" data-name="Group 891" transform="translate(-167.793 -300.793)"> 2352 <path id="Line_226" data-name="Line 226" d="M17.293,18.707l-18-18L.707-.707l18,18Z" transform="translate(168.5 301.5)"/> 2353 <path id="Line_227" data-name="Line 227" d="M.707,18.707-.707,17.293l18-18L18.707.707Z" transform="translate(168.5 301.5)"/> 2354 </g> 2355</svg> 2356 </div> 2357 </div> 2358 2359 <div class="form-field"> 2360 <div class="row"> 2361 <div class="col col-75 form-field-label"> 2362 <label>LINKEDIN PROFILE URL</label> 2363 </div> 2364 <div class="col col-25 form-field-info"> 2365 2366 </div> 2367 </div> 2368 2369 <input type="text" data-key="LINKPROURL" class="subscribe-input subscribe-linkedin-profile-url"> 2370 </div> 2371 </div> 2372 </div> 2373 2374 <div class="swiper-slide"> 2375 <div class="heading"> 2376 Welcome! 2377 </div> 2378 <div class="copy"> 2379 <p> 2380 Weâre so glad youâre here. You can expect all the best TNS content to arrive 2381 Monday through Friday to keep you on top of the news and at the top of your game. 2382 </p> 2383 2384 <div class="heading-2"> 2385 Whatâs next? 2386 </div> 2387 2388 <p> 2389 Check your inbox for a confirmation email where you can adjust your preferences 2390 and even join additional groups. 2391 </p> 2392 2393 <p class="follow-paragraph"> 2394 Follow TNS on your favorite social media networks. 2395 </p> 2396 2397 2398 <div 2399 class="tns-follow-links" 2400 data-instanceid="6aa91abd52131" 2401 > 2402 <div class="follow-links"> 2403 <a 2404 rel="me" 2405 href="https://hachyderm.io/@TheNewStack" 2406 class="follow-icon follow-icon-mastadon" 2407 data-platform="mastodon" 2408 data-position="subscribe" 2409 target="_blank" 2410 >
2411 <svg class="fill" fill="#000000" viewBox="0 0 25 25" style="width: 25px; height: 25px" xmlns="http://www.w3.org/2000/svg" xml:space="preserve"> 2412 <path d="M21.327 8.566c0-4.339-2.843-5.61-2.843-5.61-1.433-.658-3.894-.935-6.451-.956h-.063c-2.557.021-5.016.298-6.45.956 0 0-2.843 1.272-2.843 5.61 0 .993-.019 2.181.012 3.441.103 4.243.778 8.425 4.701 9.463 1.809.479 3.362.579 4.612.51 2.268-.126 3.541-.809 3.541-.809l-.075-1.646s-1.621.511-3.441.449c-1.804-.062-3.707-.194-3.999-2.409a4.523 4.523 0 0 1-.04-.621s1.77.433 4.014.536c1.372.063 2.658-.08 3.965-.236 2.506-.299 4.688-1.843 4.962-3.254.434-2.223.398-5.424.398-5.424zm-3.353 5.59h-2.081V9.057c0-1.075-.452-1.62-1.357-1.62-1 0-1.501.647-1.501 1.927v2.791h-2.069V9.364c0-1.28-.501-1.927-1.502-1.927-.905 0-1.357.546-1.357 1.62v5.099H6.026V8.903c0-1.074.273-1.927.823-2.558.566-.631 1.307-.955 2.228-.955 1.065 0 1.872.409 2.405 1.228l.518.869.519-.869c.533-.819 1.34-1.228 2.405-1.228.92 0 1.662.324 2.228.955.549.631.822 1.484.822 2.558v5.253z"/> 2413 </svg> 2414 </a> 2415 2416 <a 2417 href="https://bsky.app/profile/thenewstack.io" 2418 class="follow-icon follow-icon-bluesky" 2419 data-platform="bluesky" 2420 data-position="subscribe" 2421 target="_blank" 2422 > 2423 <svg class="fill" fill="#000000" viewBox="0 0 64 57" width="24" style="width: 24px"> 2424 <path fill="#0085ff" d="M13.873 3.805C21.21 9.332 29.103 20.537 32 26.55v15.882c0-.338-.13.044-.41.867-1.512 4.456-7.418 21.847-20.923 7.944-7.111-7.32-3.819-14.64 9.125-16.85-7.405 1.264-15.73-.825-18.014-9.015C1.12 23.022 0 8.51 0 6.55 0-3.268 8.579-.182 13.873 3.805ZM50.127 3.805C42.79 9.332 34.897 20.537 32 26.55v15.882c0-.338.13.044.41.867 1.512 4.456 7.418 21.847 20.923 7.944 7.111-7.32 3.819-14.64-9.125-16.85 7.405 1.264 15.73-.825 18.014-9.015C62.88 23.022 64 8.51 64 6.55c0-9.818-8.578-6.732-13.873-2.745Z"></path> 2425 </svg> 2426 </a> 2427 2428 <a 2429 href="https://www.threads.net/@thenewstack" 2430 class="follow-icon follow-icon-threads" 2431 data-platform="threads" 2432 data-position="subscribe" 2433 target="_blank" 2434 > 2435 <svg fill="#CCCCCC" viewBox="0 0 192 192"> 2436 <path d="M141.537 88.9883C140.71 88.5919 139.87 88.2104 139.019 87.8451C137.537 60.5382 122.616 44.905 97.5619 44.745C97.4484 44.7443 97.3355 44.7443 97.222 44.7443C82.2364 44.7443 69.7731 51.1409 62.102 62.7807L75.881 72.2328C81.6116 63.5383 90.6052 61.6848 97.2286 61.6848C97.3051 61.6848 97.3819 61.6848 97.4576 61.6855C105.707 61.7381 111.932 64.1366 115.961 68.814C118.893 72.2193 120.854 76.925 121.825 82.8638C114.511 81.6207 106.601 81.2385 98.145 81.7233C74.3247 83.0954 59.0111 96.9879 60.0396 116.292C60.5615 126.084 65.4397 134.508 73.775 140.011C80.8224 144.663 89.899 146.938 99.3323 146.423C111.79 145.74 121.563 140.987 128.381 132.296C133.559 125.696 136.834 117.143 138.28 106.366C144.217 109.949 148.617 114.664 151.047 120.332C155.179 129.967 155.42 145.8 142.501 158.708C131.182 170.016 117.576 174.908 97.0135 175.059C74.2042 174.89 56.9538 167.575 45.7381 153.317C35.2355 139.966 29.8077 120.682 29.6052 96C29.8077 71.3178 35.2355 52.0336 45.7381 38.6827C56.9538 24.4249 74.2039 17.11 97.0132 16.9405C119.988 17.1113 137.539 24.4614 149.184 38.788C154.894 45.8136 159.199 54.6488 162.037 64.9503L178.184 60.6422C174.744 47.9622 169.331 37.0357 161.965 27.974C147.036 9.60668 125.202 0.195148 97.0695 0H96.9569C68.8816 0.19447 47.2921 9.6418 32.7883 28.0793C19.8819 44.4864 13.2244 67.3157 13.0007 95.9325L13 96L13.0007 96.0675C13.2244 124.684 19.8819 147.514 32.7883 163.921C47.2921 182.358 68.8816 191.806 96.9569 192H97.0695C122.03 191.827 139.624 185.292 154.118 170.811C173.081 151.866 172.51 128.119 166.26 113.541C161.776 103.087 153.227 94.5962 141.537 88.9883ZM98.4405 129.507C88.0005 130.095 77.1544 125.409 76.6196 115.372C76.2232 107.93 81.9158 99.626 99.0812 98.6368C101.047 98.5234 102.976 98.468 104.871 98.468C111.106 98.468 116.939 99.0737 122.242 100.233C120.264 124.935 108.662 128.946 98.4405 129.507Z"></path> 2437 </svg> 2438 </a> 2439 2440 <a 2441 href="https://www.linkedin.com/company/the-new-stack" 2442 class="follow-icon follow-icon-linkedin" 2443 data-platform="linkedin" 2444 data-position="subscribe" 2445 target="_blank" 2446 > 2447 <svg viewBox="0 0 16.927 16.689" class="fill"> 2448 <path d="M3.833,1.809A1.8,1.8,0,0,1,1.88,3.619,1.783,1.783,0,0,1,0,1.809,1.8,1.8,0,0,1,1.928,0a1.789,1.789,0,0,1,1.9,1.809M.1,5.047H3.714V16.689H.1Z" transform="translate(0 0)"/> 2449 <path d="M28.535,27.5c0-1.452-.047-2.666-.095-3.714h3.142l.167,1.619h.071a4.18,4.18,0,0,1,3.6-1.881c2.381,0,4.166,1.6,4.166,5.024V35.43H35.963V28.978c0-1.5-.524-2.523-1.833-2.523a1.987,1.987,0,0,0-1.857,1.357,2.6,2.6,0,0,0-.119.9V35.43H28.535Z" transform="translate(-22.655 -18.741)"/> 2450 <svg> 2451 </a> 2452 2453 <a 2454 href="https://twitter.com/thenewstack" 2455 class="follow-icon follow-icon-twitter" 2456 data-platform="twitter" 2457 data-position="subscribe" 2458 target="_blank" 2459 > 2460 <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" width="24px" height="24px" viewBox="0 0 24 24" style="enable-background:new 0 0 24 24;" xml:space="preserve" class="fill"> 2461 <path d="M14.095479,10.316482L22.286354,1h-1.940718l-7.115352,8.087682L7.551414,1H1l8.589488,12.231093L1,23h1.940717 l7.509372-8.542861L16.448587,23H23L14.095479,10.316482z M11.436522,13.338465l-0.871624-1.218704l-6.924311-9.68815h2.981339 l5.58978,7.82155l0.867949,1.218704l7.26506,10.166271h-2.981339L11.436522,13.338465z"/> 2462 </svg> 2463 </a> 2464 2465 <a 2466 href="https://www.facebook.com/thenewstack/" 2467 class="follow-icon follow-icon-facebook" 2468 data-platform="facebook" 2469 data-position="subscribe" 2470 target="_blank" 2471 > 2472 <svg viewBox="0 0 17.492 17.492" class="fill"> 2473 <path d="M15.306,0H2.187A2.193,2.193,0,0,0,0,2.187V15.306a2.193,2.193,0,0,0,2.187,2.187H8.822V11.22H6.727V8.488H8.822V7.119a3.621,3.621,0,0,1,3.547-3.763H14.3V6.441H12.572c-.452,0-.585.26-.585.618V8.488H14.3V11.22H11.987v6.272h3.318a2.193,2.193,0,0,0,2.187-2.187V2.187A2.193,2.193,0,0,0,15.306,0"/> 2474 </svg> 2475 </a> 2476 2477 <!-- 2478 <a 2479 href="https://www.instagram.com/thenewstack/" 2480 class="follow-icon follow-icon-instagram" 2481 data-platform="instagram" 2482 data-position="subscribe" 2483 target="_blank" 2484 > 2485 <svg viewBox="0 0 17.839 17.84" class="fill"> 2486 <path d="M8.92,1.607c2.382,0,2.664.009,3.6.052a4.937,4.937,0,0,1,1.656.307,2.763,2.763,0,0,1,1.026.667,2.763,2.763,0,0,1,.667,1.026,4.938,4.938,0,0,1,.307,1.656c.043.941.052,1.223.052,3.6s-.009,2.664-.052,3.6a4.937,4.937,0,0,1-.307,1.656,2.955,2.955,0,0,1-1.693,1.693,4.937,4.937,0,0,1-1.656.307c-.941.043-1.223.052-3.6.052s-2.664-.009-3.6-.052a4.937,4.937,0,0,1-1.656-.307,2.763,2.763,0,0,1-1.026-.667,2.763,2.763,0,0,1-.667-1.026,4.937,4.937,0,0,1-.307-1.656c-.043-.941-.052-1.223-.052-3.6s.009-2.664.052-3.6a4.938,4.938,0,0,1,.307-1.656,2.763,2.763,0,0,1,.667-1.026,2.763,2.763,0,0,1,1.026-.667,4.937,4.937,0,0,1,1.656-.307c.941-.043,1.223-.052,3.6-.052M8.92,0C6.5,0,6.193.01,5.242.054A6.547,6.547,0,0,0,3.077.468,4.376,4.376,0,0,0,1.5,1.5,4.373,4.373,0,0,0,.468,3.077,6.547,6.547,0,0,0,.054,5.242C.01,6.194,0,6.5,0,8.92S.01,11.646.054,12.6a6.547,6.547,0,0,0,.415,2.165A4.373,4.373,0,0,0,1.5,16.343a4.373,4.373,0,0,0,1.58,1.029,6.547,6.547,0,0,0,2.165.415c.951.044,1.255.054,3.678.054s2.726-.01,3.678-.054a6.547,6.547,0,0,0,2.165-.415,4.56,4.56,0,0,0,2.609-2.609,6.547,6.547,0,0,0,.415-2.165c.
2486044-.951.054-1.255.054-3.678s-.01-2.726-.054-3.678a6.547,6.547,0,0,0-.415-2.165A4.373,4.373,0,0,0,16.343,1.5,4.376,4.376,0,0,0,14.763.468,6.547,6.547,0,0,0,12.6.054C11.646.01,11.342,0,8.92,0" transform="translate(0 0)"/> 2487 <path d="M25.914,21.334a4.581,4.581,0,1,0,4.58,4.581,4.581,4.581,0,0,0-4.58-4.581m0,7.554a2.973,2.973,0,1,1,2.973-2.973,2.973,2.973,0,0,1-2.973,2.973" transform="translate(-16.995 -16.995)"/> 2488 <path d="M64.142,16.253a1.07,1.07,0,1,1-1.07-1.07,1.071,1.071,0,0,1,1.07,1.07" transform="translate(-49.39 -12.095)"/> 2489 </svg> 2490 </a> 2491 --> 2492 2493 <a 2494 href="https://open.spotify.com/show/2nj1mpDb9jxHxi9vjZvDdk" 2495 class="follow-icon follow-icon-spotify" 2496 data-platform="spotify" 2497 data-position="subscribe" 2498 target="_blank" 2499 > 2500 <svg fill="#CCCCCC" viewBox="0 0 24 24" height="32"> 2501 <path d="M13.427.01C6.805-.253 1.224 4.902.961 11.524.698 18.147 5.853 23.728 12.476 23.99c6.622.263 12.203-4.892 12.466-11.514S20.049.272 13.427.01m5.066 17.579a.717.717 0 0 1-.977.268 14.4 14.4 0 0 0-5.138-1.747 14.4 14.4 0 0 0-5.42.263.717.717 0 0 1-.338-1.392c1.95-.474 3.955-.571 5.958-.29 2.003.282 3.903.928 5.647 1.92a.717.717 0 0 1 .268.978m1.577-3.15a.93.93 0 0 1-1.262.376 17.7 17.7 0 0 0-5.972-1.96 17.7 17.7 0 0 0-6.281.238.93.93 0 0 1-1.11-.71.93.93 0 0 1 .71-1.11 19.5 19.5 0 0 1 6.94-.262 19.5 19.5 0 0 1 6.599 2.165c.452.245.62.81.376 1.263m1.748-3.551a1.147 1.147 0 0 1-1.546.488 21.4 21.4 0 0 0-6.918-2.208 21.4 21.4 0 0 0-7.259.215 1.146 1.146 0 0 1-.456-2.246 23.7 23.7 0 0 1 8.034-.24 23.7 23.7 0 0 1 7.657 2.445c.561.292.78.984.488 1.546m13.612-.036-.832-.247c-1.67-.495-2.14-.681-2.14-1.353 0-.637.708-1.327 2.264-1.327 1.539 0 2.839.752 3.51 1.31.116.096.24.052.24-.098V6.935c0-.097-.027-.15-.098-.203-.83-.62-2.272-1.07-3.723-1.07-2.953 0-4.722 1.68-4.722 3.59 0 2.157 1.371 2.91 3.626 3.546l.973.274c1.689.478 1.998.902 1.998 1.556 0 1.097-.831 1.433-2.07 1.433-1.556 0-3.457-.911-4.35-2.025-.08-.098-.177-.053-.177.062v2.423c0 .097.01.141.08.22.743.814 2.52 1.53 4.59 1.53 2.546 0 4.456-1.485 4.456-3.784 0-1.787-1.052-2.865-3.625-3.635m10.107-1.76c-1.68 0-2.653 1.026-3.219 2.052V9.376c0-.08-.044-.124-.124-.124h-2.22c-.079 0-.123.044-.123.124V20.72c0 .08.044.124.124.124h2.22c.079 0 .123-.044.123-.124v-4.536c.566 1.025 1.521 2.034 3.237 2.034 2.264 0 3.89-1.955 3.89-4.581s-1.644-4.545-3.908-4.545m-.654 6.986c-1.185 0-2.211-1.167-2.618-2.458.407-1.362 1.344-2.405 2.618-2.405 1.211 0 2.051.92 2.051 2.423s-.84 2.44-2.051 2.44m40.633-6.826h-2.264c-.08 0-.115.017-.15.097l-2.282 5.483-2.29-5.483c-.035-.08-.07-.097-.15-.097h-3.661v-.584c0-.955.645-1.397 1.476-1.397.496 0 1.035.256 1.415.486.089.053.15-.008.115-.088l-.796-1.901a.26.26 0 0 0-.124-.133c-.389-.203-1.025-.38-1.644-.38-1.875 0-2.954 1.432-2.954 3.254v.743h-1.503c-.08 0-.124.044-.124.124v1.768c0 .08.044.124.124.124h1.503v6.668c0 .08.044.123.124.123h2.264c.08 0 .124-.044.124-.123v-6.668h1.936l2.812 6.11-1.512 3.325c-.044.098.009.142.097.142h2.414c.08 0 .116-.018.15-.097l4.997-11.355c.035-.08-.009-.141-.097-.141M54.964 9.04c-2.865 0-4.837 2.025-4.837 4.616 0 2.573 1.971 4.616 4.837 4.616 2.856 0 4.846-2.043 4.846-4.616 0-2.591-1.99-4.616-4.846-4.616m.008 7.065c-1.37 0-2.343-1.043-2.343-2.45 0-1.405.973-2.449 2.343-2.449 1.362 0 2.335 1.043 2.335 2.45 0 1.406-.973 2.45-2.335 2.45m33.541-6.334a1.24 1.24 0 0 0-.483-.471 1.4 1.4 0 0 0-.693-.17q-.384 0-.693.17a1.24 1.24 0 0 0-.484.471q-.174.302-.174.681 0 .375.174.677.175.3.484.471t.693.17.693-.17.483-.471.175-.676q0-.38-.175-.682m-.211 1.247a1 1 0 0 1-.394.39 1.15 1.15 0 0 1-.571.14 1.16 1.16 0 0 1-.576-.14 1 1 0 0 1-.391-.39 1.14 1.14 0 0 1-.14-.566q0-.316.14-.562t.391-.388.576-.14q.32 0 .57.14.253.141.395.39t.142.565q0 .312-.142.56m-19.835-5.78c-.85 0-1.468.6-1.468 1.396s.619 1.397 1.468 1.397c.866 0 1.485-.6 1.485-1.397 0-.796-.619-1.397-1.485-1.397m19.329 5.19a.31.31 0 0 0 .134-.262q0-.168-.132-.266-.132-.099-.381-.099h-.588v1.229h.284v-.489h.154l.374.489h.35l-.41-.518a.5.5 0 0 0 .215-.084m-.424-.109h-.26v-.3h.27q.12 0 .184.036a.12.12 0 0 1 .065.116.12.12 0 0 1-.067.111.4.4 0 0 1-.192.037M69.607 9.252h-2.263c-.08
25010-.124.044-.124.124v8.56c0 .08.044.123.124.123h2.263c.08 0 .124-.044.124-.123v-8.56c0-.08-.044-.124-.124-.124m-3.333 6.605a2.1 2.1 0 0 1-1.053.257c-.725 0-1.185-.425-1.185-1.362v-3.484h2.211c.08 0 .124-.044.124-.124V9.376c0-.08-.044-.124-.124-.124h-2.21V6.944c0-.097-.063-.15-.15-.08l-3.954 3.113c-.053.044-.07.088-.07.16v1.007c0 .08.044.124.123.124h1.539v3.855c0 2.087 1.203 3.06 2.918 3.06.743 0 1.46-.194 1.884-.442.062-.035.07-.07.07-.133v-1.68c0-.088-.044-.115-.123-.07" transform="translate(-0.95,0)"></path> 2502 </svg> 2503 </a> 2504 2505 <a 2506 href="https://www.youtube.com/c/thenewstack?sub_confirmation=1" 2507 class="follow-icon follow-icon-youtube" 2508 data-platform="youtube" 2509 data-position="subscribe" 2510 target="_blank" 2511 > 2512 <svg viewBox="0 0 310 310" class="fill"> 2513 <g id="XMLID_822_"> 2514 <path id="XMLID_823_" d="M297.917,64.645c-11.19-13.302-31.85-18.728-71.306-18.728H83.386c-40.359,0-61.369,5.776-72.517,19.938 2515 C0,79.663,0,100.008,0,128.166v53.669c0,54.551,12.896,82.248,83.386,82.248h143.226c34.216,0,53.176-4.788,65.442-16.527 2516 C304.633,235.518,310,215.863,310,181.835v-53.669C310,98.471,309.159,78.006,297.917,64.645z M199.021,162.41l-65.038,33.991 2517 c-1.454,0.76-3.044,1.137-4.632,1.137c-1.798,0-3.592-0.484-5.181-1.446c-2.992-1.813-4.819-5.056-4.819-8.554v-67.764 2518 c0-3.492,1.822-6.732,4.808-8.546c2.987-1.814,6.702-1.938,9.801-0.328l65.038,33.772c3.309,1.718,5.387,5.134,5.392,8.861 2519 C204.394,157.263,202.325,160.684,199.021,162.41z"/> 2520 </g> 2521 </svg> 2522 </a> 2523 </div> 2524 </div> 2525 2526
2526<script> 2527 $(document).ready(function() { 2528 var $follow_links = $('.tns-follow-links[data-instanceid="6aa91abd52131"]'); 2529 var categories = $follow_links.data('categories'); 2530 2531 $follow_links.find('.follow-icon').on('click', function() { 2532 var context = window.location.pathname; 2533 var platform = $(this).data('platform'); 2534 var position = $(this).data('position'); 2535 2536 var payload = { 2537 'event' : 'follow_link_click', 2538 'platform' : platform, 2539 'context' : context, 2540 'position' : position 2541 }; 2542 2543 if (categories) { 2544 payload.categories = categories; 2545 } 2546 2547 window.dataLayer.push(payload); 2548 }); 2549 }); 2550 </script>
2550 2551 2552 2553 <p> 2554 Become a <a href="https://www.linkedin.com/company/the-new-stack" class="ext-link" target="_blank">TNS follower on LinkedIn</a>. 2555 </p> 2556 2557 <p> 2558 Check out <a href="/">the latest featured and trending stories</a> while you wait for your 2559 first TNS newsletter. 2560 </p> 2561 </div> 2562 </div> 2563 </div> 2564 </div> 2565 </div> 2566 2567 <div class="row footer"> 2568 <div class="col col-33 swiper-button-col"> 2569 <div class="swiper-button tns-subscribe-swiper-button-prev">PREV</div> 2570 </div> 2571 <div class="col col-33 page-indicator"> 2572 <span class="subscribe-current-slide">1</span> of <span class="subscribe-total-slides">2</span> 2573 </div> 2574 <div class="col col-33 swiper-button-col"> 2575 <div class="swiper-button tns-subscribe-swiper-button-next">NEXT</div> 2576 </div> 2577 </div> 2578 </div> 2579 </div> 2580 2581
2581<script> 2582 $(document).ready(function() { 2583 var subscribeCategories = ''; 2584 var $subscribe = $('#tns-subscribe'); 2585 var $modal = $subscribe.find('.modal'); 2586 var $header = $modal.find('.header'); 2587 var $close = $modal.find('.close'); 2588 var $content = $modal.find('.content'); 2589 var $footer = $modal.find('.footer'); 2590 var $subscribe_button = $modal.find('.subscribe-button'); 2591 2592 /// Init Swiper 2593 var $subscribe_swiper = new Swiper('.tns-subscribe-swiper', { 2594 allowTouchMove: false, 2595 loop: false, 2596 slidesPerView: 1, 2597 autoplay: false, 2598 spaceBetween: 0, 2599 navigation : false, 2600 observer : true, 2601 preventInteractionOnTransition: true, 2602 a11y: false, 2603 noSwipingSelector: 'button' 2604 }); 2605 2606 /// Init window.tns.subscribe 2607 window.tns = window.tns || {} 2608 window.tns.subscribe = { 2609 prepop : false, 2610 section : '', 2611 context : '', 2612 screen : 0, 2613 open : function() { 2614 /// Reset the modal 2615 window.tns.subscribe.screen = 0; 2616 $subscribe_swiper.slideTo(0, 0, true); 2617 2618 $('.form-field-resubscribe').hide(); 2619 $('.copy-screen-0').show(); 2620 $('.form-field-email').show(); 2621 2622 $('.swiper-slide').scrollTop(0); 2623 2624 /// Open the modal 2625 $('body').css({ 2626 overflow : 'hidden' 2627 }); 2628 2629 $subscribe.stop().css({ 2630 display : 'block', 2631 opacity : 0 2632 }); 2633 2634 $subscribe.stop().transition({ 2635 opacity : 1, 2636 duration : 333, 2637 easing : 'snap' 2638 }); 2639 2640 $modal.stop().css({ 2641 opacity : 0, 2642 display : 'block' 2643 }) 2644 2645 $modal.stop().transition({ 2646 delay : 333, 2647 duration : 121, 2648 opacity : 1, 2649 easing : 'easeOutQuad' 2650 }); 2651 2652 if (window.tns.subscribe.prepop === true) { 2653 $subscribe_button.click(); 2654 } 2655 }, 2656 close : function() { 2657 window.tns.subscribe.screen = 0; 2658 2659 $subscribe.stop().css({ 2660 opacity : 0, 2661 display : 'block' 2662 }); 2663 2664 $modal.stop().transition({ 2665 duration : 333, 2666 opacity : 0, 2667 easing : 'easeOutQuad' 2668 }); 2669 2670 $subscribe.stop().transition({ 2671 duration : 333, 2672 opacity : 0, 2673 easing : 'easeOutQuad' 2674 }, function() { 2675 $subscribe.stop().css({ 2676 opacity : 0, 2677 display : 'none' 2678 }); 2679 2680 $('body').css({ 2681 overflowY : 'auto' 2682 }); 2683 2684 $('.tns-subscribe-swiper-button-next').text('NEXT'); 2685 2686 $modal.stop().transition({ 2687 maxHeight : 370, 2688 duration : 333, 2689 easing : 'easeOutQuad' 2690 }); 2691 2692 $content.stop().transition({ 2693 bottom : 0, 2694 duration : 333, 2695 easing : 'easeOutQuad' 2696 }); 2697 2698 $footer.stop().transition({ 2699 bottom : -60, 2700 duration : 333, 2701 easing : 'easeOutQuad' 2702 }); 2703 }); 2704 }, 2705 submit : async function(direction) { 2706 /// Track the step completed 2707 var action_taken = ''; 2708 2709 /// Init the payload object 2710 var payload = { 2711 recaptcha_token : '', 2712 section : window.tns.subscribe.section, 2713 screen : null, 2714 data : { 2715 EMAIL : '', 2716 FNAME : '', 2717 LNAME : '', 2718 COMPANY : '', 2719 COUNTRY : '', 2720 ZIPCODE : '', 2721 JOBLEVEL : '', 2722 JOBROLE : '', 2723 ORGEMP : '', 2724 ORGDESC : '', 2725 ORGINDUS : '', 2726 LINKPROURL : '' 2727 }, 2728 errors : [] 2729 }; 2730 2731 /// Determine the target_screen 2732 var screen = window.tns.subscribe.screen; 2733 payload.screen = window.tns.subscribe.screen; 2734 console.log('[TNS Subscribe]', payload); 2735 2736 var target_screen = window.tns.subscribe.screen; 2737 2738 if (direction === 'prev') { 2739 target_screen = screen - 1; 2740 } 2741 2742 if (direction === 'next') { 2743 target_screen = screen + 1; 2744 } 2745 2746 /// Gather the values from the form 2747 $('.subscribe-input').each(function() { 2748 var key = $(this).data('key'); 2749 var value = $(this).val(); 2750 2751 payload.data[key] = value; 2752 }); 2753 2754 /// Validate the values for the current screen 2755 if (screen === 0) { 2756 action_taken = 'newsletter_subscribe'; 2757 2758 if (!payload.data.EMAIL || !validator.isEmail(payload.data.EMAIL)) { 2759 payload.errors.push({ 2760 key : 'EMAIL', 2761 msg : 'EMAIL is required.' 2762 }); 2763 } 2764 } 2765 2766 if (screen === 1) { 2767 action_taken = 'demo_data_1'; 2768 2769 var required = [ 2770 'FNAME', 2771 'LNAME', 2772 'COMPANY', 2773 'COUNTRY' 2774 ] 2775 2776 required.map((key) => { 2777 if (!payload.data[key]) { 2778 payload.errors.push({ 2779 key : key, 2780 msg : key + ' is required.' 2781 }) 2782 } 2783 }); 2784 2785 if (payload.data.COUNTRY === 'US' && !payload.data.ZIPCODE) { 2786 payload.errors.push({ 2787 key : 'ZIPCODE', 2788 msg : 'ZIPCODE is required.' 2789 }) 2790 } 2791 } 2792 2793 if (screen === 2) { 2794 action_taken = 'demo_data_2'; 2795 2796 var required = [ 2797 'JOBLEVEL', 2798 'JOBROLE', 2799 'ORGEMP', 2800 'ORGDESC', 2801 'ORGINDUS', 2802 // 'LINKPROURL' 2803 ] 2804 2805 if (payload.data.ORGEMP === 'not-working') { 2806 /// Remove ORGDESC and ORGINDUS from the required array 2807 required = required.filter(function(item) { 2808 return item !== 'ORGDESC' && item !== 'ORGINDUS' 2809 }) 2810 } 2811 2812 required.map((key) => { 2813 if (!payload.data[key]) { 2814 payload.errors.push({ 2815 key : key, 2816 msg : key + ' is required.' 2817 }) 2818 } 2819 }); 2820 2821 if (payload.data.JOBLEVEL === 'other') { 2822 var other_value = $('.subscribe-job-level-other').val(); 2823 2824 if (!other_value) { 2825 payload.errors.push({ 2826 key : 'JOBLEVEL', 2827 msg : 'JOBLEVEL is required.' 2828 }) 2829 } else { 2830 payload.data.JOBLEVEL = other_value; 2831 } 2832 } 2833 2834 if (payload.data.JOBROLE === 'other') { 2835 var other_value = $('.subscribe-job-role-other').val(); 2836 2837 if (!other_value) { 2838 payload.errors.push({ 2839 key : 'JOBROLE', 2840 msg : 'JOBROLE is required.' 2841 }) 2842 } else { 2843 payload.data.JOBROLE = other_value; 2844 } 2845 } 2846 2847 if (payload.data.ORGDESC === 'other') { 2848 var other_value = $('.subscribe-organization-description-other').val(); 2849 2850 if (!other_value) { 2851 payload.errors.push({ 2852 key : 'ORGDESC', 2853 msg : 'ORGDESC is required.' 2854 }) 2855 } else { 2856 payload.data.ORGDESC = other_value; 2857 } 2858 } 2859 2860 if (payload.data.ORGINDUS === 'other') { 2861 var other_value = $('.subscribe-industry-other').val(); 2862 2863 if (!other_value) { 2864 payload.errors.push({ 2865 key : 'ORGINDUS', 2866 msg : 'ORGINDUS is required.' 2867 }) 2868 } else { 2869 payload.data.ORGINDUS = other_value; 2870 } 2871 } 2872 2873 // if (!payload.data.LINKPROURL.includes('linkedin.com')) { 2874 // payload.errors.push({ 2875 // key : 'LINKPROURL', 2876 // msg : 'LINKPROURL must be a linkedin.com url.' 2877 // }) 2878 // } 2879 } 2880 2881 if (direction === 'next' && payload.errors.length) { 2882 var $error_input = $('.subscribe-input[data-key="' + payload.errors[0].key + '"'); 2883 $error_input.addClass('error').focus(); 2884 $error_input.parent().find('.form-field-info').addClass('error'); 2885 2886 console.log('ERROR', payload); 2887 2888 if (direction === 'next') { 2889 return payload; 2890 } 2891 } 2892 2893 /// 2894 /// POST /no-cache/subscribe/ 2895 /// 2896 2897 if (direction === 'next') { 2898 payload.recaptcha_token = window.tns.turnstile.token; 2899 2900 var result = await $.post('/no-cache/subscribe/', payload); 2901 result = JSON.parse(result); 2902 2903 console.log('[TNS SUBSCRIBE]', result); 2904 2905 if (result.errors.length) { 2906 console.log('[TNS SUBSCRIBE]', result.errors[0].msg); 2907 2908 if (result.errors[0].msg == 'UNSUBSCRIBED') { 2909 window.tns.subscribe.resubscribe(); 2910 } 2911 2912 if (result.errors[0].msg == 'TURNSTILE_FAILED') { 2913 window.tns.subscribe.resubscribe(); 2914 } 2915 2916 return payload; 2917 } 2918
2919 /// Re-enabled the subscribe button 2920 $('.subscribe-button').html('SUBSCRIBE') 2921 $('.subscribe-button').attr('disabled', false) 2922 2923 var subscribePayload = { 2924 'event' : 'subscribe', 2925 'context' : window.tns.subscribe.context, 2926 'action_taken' : action_taken 2927 }; 2928 2929 if (subscribeCategories) { 2930 subscribePayload.categories = subscribeCategories; 2931 } 2932 2933 window.dataLayer.push(subscribePayload); 2934 } 2935 2936 /// Toggle the footer UI 2937 if (target_screen === 0) { 2938 $('.tns-subscribe-swiper-button-next').text('NEXT'); 2939 2940 $modal.stop().transition({ 2941 maxHeight : 370, 2942 duration : 333, 2943 easing : 'easeOutQuad' 2944 }); 2945 2946 $content.stop().transition({ 2947 bottom : 0, 2948 duration : 333, 2949 easing : 'easeOutQuad' 2950 }); 2951 2952 $footer.stop().transition({ 2953 bottom : -60, 2954 duration : 333, 2955 easing : 'easeOutQuad' 2956 }); 2957 } 2958 2959 if (target_screen === 1) { 2960 $('.tns-subscribe-swiper-button-next').text('NEXT'); 2961 2962 $modal.stop().transition({ 2963 maxHeight : 600, 2964 duration : 333, 2965 easing : 'easeOutQuad' 2966 }); 2967 2968 $content.stop().transition({ 2969 bottom : 60, 2970 duration : 333, 2971 easing : 'easeOutQuad' 2972 }); 2973 2974 $footer.stop().transition({ 2975 bottom : 0, 2976 duration : 333, 2977 easing : 'easeOutQuad' 2978 }); 2979 2980 setTimeout(function() { 2981 $('.subscribe-firstname').focus(); 2982 }, 400); 2983 } 2984 2985 if (target_screen === 2) { 2986 $('.tns-subscribe-swiper-button-next').text('SUBMIT'); 2987 2988 setTimeout(function() { 2989 $('.subscribe-job-level').focus(); 2990 }, 400); 2991 } 2992 2993 if (target_screen === 3) { 2994 $modal.stop().transition({ 2995 maxHeight : 710, 2996 duration : 333, 2997 easing : 'easeOutQuad' 2998 }); 2999 3000 $content.stop().transition({ 3001 bottom : 0, 3002 duration : 333, 3003 easing : 'easeOutQuad' 3004 }); 3005 3006 $footer.stop().transition({ 3007 bottom : -60, 3008 duration : 333, 3009 easing : 'easeOutQuad' 3010 }); 3011 } 3012 3013 /// Transition to the prev or next slide 3014 $subscribe_swiper.slideTo(target_screen, 333, true); 3015 window.tns.subscribe.screen = target_screen; 3016 $('.subscribe-current-slide').text(window.tns.subscribe.screen); 3017 $subscribe_button.attr('disabled', false); 3018 }, 3019 resubscribe: function() { 3020 /// If a reader has previously unsubscribed they 3021 /// must use the Mailchimp hosted form to resubscribe 3022 3023 /// Reset the UI to screen 0 3024 window.tns.subscribe.screen = 0; 3025 3026 $subscribe_swiper.slideTo(0, 333, true); 3027 $('.tns-subscribe-swiper-button-next').text('NEXT'); 3028 3029 $modal.stop().transition({ 3030 maxHeight : 370, 3031 duration : 333, 3032 easing : 'easeOutQuad' 3033 }); 3034 3035 $content.stop().transition({ 3036 bottom : 0, 3037 duration : 333, 3038 easing : 'easeOutQuad' 3039 }); 3040 3041 $footer.stop().transition({ 3042 bottom : -60, 3043 duration : 333, 3044 easing : 'easeOutQuad' 3045 }); 3046 3047 /// Hide the subscribe form and reset the button 3048 $('.copy-screen-0').hide(); 3049 $('.form-field-email').hide(); 3050 $('.subscribe-button').html('SUBSCRIBE') 3051 $('.subscribe-button').attr('disabled', false) 3052 3053 /// Show the re-subscribe form 3054 $('.form-field-resubscribe').show(); 3055 $('.resubscribe-button').off('click'); 3056 $('.resubscribe-button').on('click', function($event) { 3057 window.open('http://eepurl.com/bMg5kH', '_blank'); 3058 3059 // DO NOT transition to the next slide 3060 // because they'll still be in "pending" mode 3061 // so we can't collect any data. 3062 3063 // $modal.stop().transition({ 3064 // maxHeight : 600, 3065 // duration : 333, 3066 // easing : 'easeOutQuad' 3067 // }); 3068 3069 // $content.stop().transition({ 3070 // bottom : 60, 3071 // duration : 333, 3072 // easing : 'easeOutQuad' 3073 // }); 3074 3075 // $footer.stop().transition({ 3076 // bottom : 0, 3077 // duration : 333, 3078 // easing : 'easeOutQuad' 3079 // }); 3080 3081 // setTimeout(function() { 3082 // $('.subscribe-firstname').focus(); 3083 // }, 400); 3084 3085 // $subscribe_swiper.slideTo(1, 333, true); 3086 // window.tns.subscribe.screen = 1; 3087 }); 3088 } 3089 } 3090 3091 /// Remove all error classes on keyup 3092 $('.subscribe-input').on('keyup', function($event) { 3093 if ($event.key === 'Enter') return; 3094 $('.subscribe-input').removeClass('error'); 3095 $('.form-field-info').removeClass('error'); 3096 }); 3097 3098 $('select.subscribe-input').on('change', function($event) { 3099 $('.subscribe-input').removeClass('error'); 3100 $('.form-field-info').removeClass('error'); 3101 }); 3102 3103 /// Handle .subscibe-button click 3104 $subscribe_button.on('click', function($event) { 3105 var disabled = $(this).attr('disabled') 3106 if (disabled) return false 3107 3108 $('.subscribe-button').attr('disabled', true) 3109 3110 /// Replace button label with spinner
3111 var spinner = $('<div class="button-spinner"></div>'); 3112 $('.subscribe-button').html('').append(spinner); 3113 3114 /// Refresh or obtain a turnstile token ... 3115 if (window.tns.turnstile.widgetId) { 3116 console.log('[TNS SUBSCRIBE] Resetting Turnstile widget: ' + window.tns.turnstile.widgetId) 3117 3118 window.tns.turnstile.renderWidget(function(token) { 3119 window.tns.turnstile.token = token; 3120 3121 console.log('[TNS SUBSCRIBE] Refreshed Turnstile token:') 3122 console.log(window.tns.turnstile.token) 3123 3124 window.tns.subscribe.submit('next') 3125 }); 3126 } else { 3127 console.log('[TNS SUBSCRIBE] Rendering Turnstile widget') 3128 3129 /// Render the Turnstile widget and obtain a token and a widgetId 3130 window.tns.turnstile.renderWidget(async function(token) { 3131 window.tns.turnstile.token = token; 3132 3133 console.log('[TNS SUBSCRIBE] Obtained Turnstile token:') 3134 console.log(window.tns.turnstile.token) 3135 3136 window.tns.subscribe.submit('next') 3137 }); 3138 } 3139 }); 3140 3141 /// Handle onEnter for subscribe-email input 3142 $('.subscribe-email').on('keyup', function($event) { 3143 if ($event.key === 'Enter') { 3144 $subscribe_button.click(); 3145 } 3146 }); 3147 3148 /// Handle other input toggle 3149 $('.subscribe-has-other').on('change', function($event) { 3150 var value = $(this).val(); 3151 var $other_input = $(this).next(); 3152 var $other_clear = $(this).next().next(); 3153 3154 if (value === 'other') { 3155 $(this).blur().hide(); 3156 3157 $other_input.css({ display : 'block' }); 3158 $other_clear.show(); 3159 $other_input.focus(); 3160 } 3161 }); 3162 3163 // $('.subscribe-input-other').on('blur', function() { 3164 // var value = $(this).val(); 3165 3166 // if (value === '') { 3167 // $(this).hide(); 3168 // $(this).prev().css({ display : 'block' }).val('null'); 3169 // } 3170 // }); 3171 3172 $('.subscribe-input-other-clear').on('click', function() { 3173 $(this).prev().val(''); 3174 $(this).prev().hide(); 3175 $(this).prev().prev().val('').show(); 3176 $(this).hide(); 3177 }); 3178 3179 /// Handle zipcode input toggle 3180 $('.subscribe-country').on('change', function($event) { 3181 var countryCode = $(this).val(); 3182 3183 if (countryCode === 'US') { 3184 $('.form-field-zipcode').show(); 3185 } else { 3186 $('.form-field-zipcode').hide(); 3187 } 3188 }); 3189 3190 /// Handle toggle of ORGDESC and ORGINDUS inputs 3191 $('.subscribe-employees').on('change', function($event) { 3192 var value = $(this).val(); 3193 if (value === 'not-working') { 3194 $('.form-field-orgdesc').hide(); 3195 $('.form-field-orgindus').hide(); 3196 } else { 3197 $('.form-field-orgdesc').show(); 3198 $('.form-field-orgindus').show(); 3199 } 3200 }); 3201 3202 /// Handle PREV NEXT clicks 3203 $('.tns-subscribe-swiper-button-prev').on('click', function() { 3204 window.tns.subscribe.submit('prev'); 3205 }); 3206 3207 $('.tns-subscribe-swiper-button-next').on('click', function() { 3208 window.tns.subscribe.submit('next'); 3209 }); 3210 3211 /// Close/Cancel handlers 3212 $modal.on('click', function($event) { 3213 $event.stopPropagation(); 3214 }); 3215 3216 $subscribe.on('click', function($event) { 3217 window.tns.subscribe.close(); 3218 }); 3219 3220 $close.on('click', function($event) { 3221 $event.stopPropagation(); 3222 3223 window.tns.subscribe.close(); 3224 }); 3225 3226 /// 3227 /// Auto-open Subscribe based on the `open-subscribe` query param? 3228 /// 3229 3230 var urlParams = new URLSearchParams(window.location.search); 3231 3232 if (urlParams.get('open-subscribe')) { 3233 window.tns.subscribe.open(); 3234 } 3235 }); 3236 </script>
3236 3237 <div class="tns-voxpop-screen"> 3238 <div class="tns-voxpop-modal"> 3239 <div class="header"> 3240 <div class="title"> 3241 VOXPOP 3242 </div> 3243 3244 <div class="close-icon tns-voxpop-close"> 3245 <svg xmlns="http://www.w3.org/2000/svg" width="19.414" height="19.414" viewBox="0 0 19.414 19.414"> 3246 <g id="Group_891" data-name="Group 891" transform="translate(-167.793 -300.793)"> 3247 <path id="Line_226" data-name="Line 226" d="M17.293,18.707l-18-18L.707-.707l18,18Z" transform="translate(168.5 301.5)"/> 3248 <path id="Line_227" data-name="Line 227" d="M.707,18.707-.707,17.293l18-18L18.707.707Z" transform="translate(168.5 301.5)"/> 3249 </g> 3250</svg> 3251 </div> 3252 </div> 3253 3254 <div class="content"> 3255 <div class="content-block"> 3256 <div 3257 class="tns-poll" 3258 data-pollID="22754645" 3259 data-instanceID="6aa91abd52663" 3260 data-timestamp="1789467325" 3261 data-categories="frontend-development,javascript" 3262 > 3263 <div class="questions"> 3264 <div class="page" data-questionID="66b25394b7070"> 3265 <div class="row question"> 3266 <div class="col"> 3267 As a JavaScript developer, what non-React tools do you use most often? </div> 3268 </div> 3269 3270 <div class="row context"> 3271 <div class="col"> 3272 </div> 3273 </div> 3274 3275 <div class="row answers"> 3276 <div class="col"> 3277 <div 3278 class="option" 3279 data-questionid="66b25394b7070" 3280 data-answerid="66b25394ba5e8" 3281 > 3282 <div class="option-checkmark">✓</div> 3283 <div class="option-text"> 3284 Angular </div> 3285 <div class="option-percentage">0%</div> 3286 <div class="option-results"></div> 3287 </div> 3288 <div 3289 class="option" 3290 data-questionid="66b25394b7070" 3291 data-answerid="66b25394bf624" 3292 > 3293 <div class="option-checkmark">✓</div> 3294 <div class="option-text"> 3295 Astro </div> 3296 <div class="option-percentage">0%</div> 3297 <div class="option-results"></div> 3298 </div> 3299 <div 3300 class="option" 3301 data-questionid="66b25394b7070" 3302 data-answerid="66b25394c1e21" 3303 > 3304 <div class="option-checkmark">✓</div> 3305 <div class="option-text"> 3306 Svelte </div> 3307 <div class="option-percentage">0%</div> 3308 <div class="option-results"></div> 3309 </div> 3310 <div 3311 class="option" 3312 data-questionid="66b25394b7070" 3313 data-answerid="66b25394c46e2" 3314 > 3315 <div class="option-checkmark">✓</div> 3316 <div class="option-text"> 3317 Vue.js </div> 3318 <div class="option-percentage">0%</div> 3319 <div class="option-results"></div> 3320 </div> 3321 <div 3322 class="option" 3323 data-questionid="66b25394b7070" 3324 data-answerid="66b25394c6b6c" 3325 > 3326 <div class="option-checkmark">✓</div> 3327 <div class="option-text"> 3328 Other </div> 3329 <div class="option-percentage">0%</div> 3330 <div class="option-results"></div> 3331 </div> 3332 <div 3333 class="option" 3334 data-questionid="66b25394b7070" 3335 data-answerid="66b25394c95b4" 3336 > 3337 <div class="option-checkmark">✓</div> 3338 <div class="option-text"> 3339 I only use React </div> 3340 <div class="option-percentage">0%</div> 3341 <div class="option-results"></div> 3342 </div> 3343 <div 3344 class="option" 3345 data-questionid="66b25394b7070" 3346 data-answerid="66b25394cb8bc" 3347 > 3348 <div class="option-checkmark">✓</div> 3349 <div class="option-text"> 3350 I don't use JavaScript </div> 3351 <div class="option-percentage">0%</div> 3352 <div class="option-results"></div> 3353 </div> 3354 </div> 3355 </div> 3356 </div> 3357 </div> 3358 3359 <div class="post-roll"> 3360 <div class="post-roll-block"> 3361 <div class="newsletter-form"> 3362 <div class="cta"> 3363 Thanks for your opinion! Subscribe below to get the final results, published 3364 exclusively in our TNS Update newsletter: 3365 </div> 3366 3367 <div class="row"> 3368 <div class="col col-75 email"> 3369 <input type="email" placeholder="EMAIL ADDRESS" class="voxpop-email-input tns-poll-postroll-daily-input" /> 3370 </div> 3371 <div class="col col-25 subscribe"> 3372 <button class="tns-poll-postroll-daily-button">SUBMIT</button> 3373 </div> 3374 </div> 3375 </div> 3376</div> 3377
3378<script> 3379 $(document).ready(function() { 3380 /// Handle TNS Daily subscription 3381 var $poll = $('.tns-poll[data-instanceID="6aa91abd52663"]'); 3382 var $tnsNewsletterEmailInput = $poll.find('.tns-poll-postroll-daily-input'); 3383 var $tnsNewsletterSubmitButton = $poll.find('.tns-poll-postroll-daily-button'); 3384 3385 $tnsNewsletterEmailInput.on('keyup', function($event) { 3386 $(this).removeClass('error'); 3387 3388 if ($event.which === 13) { 3389 $tnsNewsletterSubmitButton.click(); 3390 } 3391 }); 3392 3393 $tnsNewsletterSubmitButton.on('click', function() { 3394 var email = $tnsNewsletterEmailInput.val(); 3395 3396 window.tns.subscribe.prepop = true; 3397 window.tns.subscribe.context = 'tns_voxpop_postroll'; 3398 3399 $('#tns-subscribe').find('.subscribe-email').val(email); 3400 $('#tns-subscribe').find('.subscribe-button').click(); 3401 3402 window.tns.subscribe.open(); 3403 }); 3404 }); 3405</script>
3405 </div> 3406 3407 </div> 3408 3409
3409<script> 3410 $(document).ready(function() { 3411 var $poll = $('.tns-poll[data-instanceID="6aa91abd52663"]'); 3412 var $option = $poll.find('.option'); 3413 var sponsor_slug = ''; 3414 var voxpop = 'true'; /// string 'true' || 'false' 3415 var categories = $poll.data('categories'); 3416 3417 var voted = localStorage.getItem('tns_poll_vote_22754645'); 3418 if (voted) voted = JSON.parse(voted); 3419 3420 /// 3421 /// Handle vote 3422 /// 3423 3424 $option.on('click', function($event) { 3425 var $thisOption = $(this); 3426 var poll_ID = '22754645'; 3427 var instance_ID = '6aa91abd52663'; 3428 var question_ID = null; 3429 var answer_ID = null; 3430 var captchaToken = null; 3431 var pollData = null; 3432 3433 if ($poll.hasClass('done')) return; 3434 3435 async.series([ 3436 setStatusClasses, 3437 obtainCaptchaToken, 3438 revealPercentages, 3439 submitVote, 3440 displayResults, 3441 handlePostroll 3442 ], function(result) { 3443 if (result) console.log(result); 3444 }); 3445 3446 function setStatusClasses(next) { 3447 $poll.addClass('done'); 3448 3449 $option.removeClass('active'); 3450 $thisOption.addClass('active'); 3451 $thisOption.addClass('selected'); 3452 3453 question_ID = $thisOption.data('questionid'); 3454 answer_ID = $thisOption.data('answerid'); 3455 3456 return next(); 3457 } 3458 3459 function obtainCaptchaToken(next) { 3460 captchaToken = window.tns.turnstile.token; 3461 3462 return next(); 3463 } 3464 3465 function revealPercentages(next) { 3466 var delay = 21; 3467 var i = 0; 3468 3469 $poll.find('.option-percentage').each(function() { 3470 $(this).transition({ 3471 delay : delay * i, 3472 duration : 99, 3473 opacity : 1, 3474 easing : 'easeOutQuad' 3475 }); 3476 3477 i++; 3478 }); 3479 3480 return next(); 3481 } 3482 3483 function submitVote(next) { 3484 var payload = { 3485 poll_ID : '22754645', 3486 instance_ID : instance_ID, 3487 question_ID : question_ID, 3488 answer_ID : answer_ID, 3489 recaptcha_token : captchaToken, 3490 sponsor : sponsor_slug 3491 } 3492 3493 console.log('[tns-poll] Sending poll vote ...') 3494 3495 $.ajax({ 3496 url : '/no-cache/polls-vote/', 3497 type : 'post', 3498 data : payload, 3499 statusCode : { 3500 429 : function() { 3501 $poll.removeClass('done'); 3502 $option.removeClass('active'); 3503 $poll.find('.option-percentage').css({ 3504 opacity : 0 3505 }); 3506 3507 var poll_type = 'inline'; 3508 if (voxpop === 'true') poll_type = 'voxpop'; 3509 3510 var event_payload = { 3511 event : 'poll', 3512 poll_action : 'rate-limited', 3513 poll_type : poll_type, 3514 poll_id : '22754645', 3515 question_ID : question_ID, 3516 answer_ID : answer_ID 3517 } 3518 3519 if (sponsor_slug) { 3520 event_payload.sponsor = sponsor_slug; 3521 } 3522 3523 if (categories) { 3524 event_payload.categories = categories; 3525 } 3526 3527 window.dataLayer.push(event_payload) 3528 3529 var msg = '429 â Whoa, facile tigré.'; 3530 msg += 'You\'re being rate-limited.'; 3531 msg += 'If you\'re human, take it easy and try again in an hour.'; 3532 console.log(msg); 3533 } 3534 } 3535 }).done(function(data, statusText, xhr) { 3536 if (data) data = JSON.parse(data); 3537 pollData = data; 3538 3539 console.log('[tns-poll] Result from vote endpoint:'); 3540 console.log(data); 3541 3542 /// Pre-construct the event_payload 3543 var poll_type = 'inline'; 3544 if (voxpop === 'true') poll_type = 'voxpop'; 3545 3546 var event_payload = { 3547 event : 'poll', 3548 poll_action : null, 3549 poll_type : poll_type, 3550 poll_id : '22754645', 3551 question_ID : question_ID, 3552 answer_ID : answer_ID 3553 } 3554 3555 if (sponsor_slug) { 3556 event_payload.sponsor = sponsor_slug; 3557 } 3558 3559 if (categories) { 3560 event_payload.categories = categories; 3561 } 3562 3563 if (data.bot === true) { 3564 event_payload.poll_action = 'recaptcha-fail'; 3565 3566 console.log('[tns-poll] Suspected bot vote due to recaptcha fail.'); 3567 3568 window.dataLayer.push(event_payload); 3569 3570 event_payload.instance_ID = instance_ID; 3571 console.log(event_payload); 3572 3573 return next(); 3574 } 3575 3576 if (!voted && data.unique_vote === true) { 3577 event_payload.poll_action = 'vote'; 3578 3579 console.log('[tns-poll] Unique vote detected, firing GA4 event.'); 3580 3581 window.dataLayer.push(event_payload); 3582 3583 event_payload.instance_ID = instance_ID; 3584 console.log(event_payload); 3585 3586 delete payload.recaptcha_token; 3587 localStorage.setItem('tns_poll_vote_22754645', JSON.stringify(payload)); 3588 console.log('[tns-poll] Set localStorage item.'); 3589 } else { 3590 event_payload.poll_action = 'duplicate-vote-attempt'; 3591 3592 console.log('[tns-poll] Detected duplicate vote, did not fire GA4 event.'); 3593 3594 event_payload.instance_ID = instance_ID; 3595 console.log(event_payload); 3596 3597 delete payload.recaptcha_token; 3598 localStorage.setItem('tns_poll_vote_22754645', JSON.stringify(payload)); 3599 } 3600 3601 return next(); 3602 }); 3603 } 3604 3605 function displayResults(next) { 3606 var highestPercentage = 0; 3607 var totalVotes = parseInt(pollData.totalVotes); 3608 var totalPercentage = 0; 3609 3610 $option.each(function() { 3611 var optionAnswerID = $(this).data('answerid'); 3612 var percentage = 0; 3613 3614 pollData.results.map(result => { 3615 if (result.answer_ID === optionAnswerID) { 3616 percentage = parseInt(result.percentage); 3617 totalPercentage += percentage; 3618 3619 if (percentage > highestPercentage) {
3620 highestPercentage = percentage; 3621 3622 $option.removeClass('active'); 3623 $(this).addClass('active'); 3624 } 3625 } 3626 }); 3627 3628 var $resultsBar = $(this).find('.option-results'); 3629 var $percentDisplay = $(this).find('.option-percentage'); 3630 var digit = 0; 3631 3632 var uptickPercentDisplay = setInterval(function() { 3633 if (digit >= percentage) { 3634 clearInterval(uptickPercentDisplay); 3635 return; 3636 } 3637 3638 digit++; 3639 3640 $percentDisplay.html(digit + '%'); 3641 }, 3); 3642 3643 if (percentage === 0) { 3644 $percentDisplay.html('0%'); 3645 } 3646 3647 $resultsBar.transition({ 3648 width : percentage + '%', 3649 duration : 777, 3650 easing : 'easeOutQuad' 3651 }) 3652 }); 3653 3654 return next(); 3655 } 3656 3657 function handlePostroll(next) { 3658 if (voxpop !== 'true') { 3659 console.log('[tns-poll] Inline poll detected, skipping post-roll ...'); 3660 3661 return next(); 3662 } 3663 3664 console.log('[tns-poll] Voxpop poll detected, firing post-roll ...'); 3665 3666 var targetHeight = $poll.find('.post-roll-block').outerHeight(true); 3667 3668 $poll.find('.post-roll').transition({ 3669 delay : 555, 3670 height : targetHeight, 3671 duration : 777, 3672 easing : 'easeOutQuad' 3673 }); 3674 3675 setTimeout(function() { 3676 $poll.find('.post-roll').addClass('open'); 3677 3678 if (window.tns.voxpop && window.tns.voxpop.vote) { 3679 window.tns.voxpop.vote(pollData, 777); 3680 } 3681 }, 777); 3682 } 3683 }); 3684 3685 /// 3686 /// Handle firing the impression event, but only when 3687 /// the poll enters the viewport. 3688 /// 3689 3690 function isInViewport($element) { 3691 var elementTop = $element.offset().top; 3692 var elementBottom = elementTop + $element.outerHeight(); 3693 var viewportTop = $(window).scrollTop(); 3694 var viewportBottom = viewportTop + $(window).height(); 3695 return elementBottom > viewportTop && elementTop < viewportBottom; 3696 }; 3697 3698 if (!voted && voxpop !== 'true') { 3699 var impression_recorded = false; 3700 3701 $(window).scroll(function() { 3702 if (!impression_recorded && isInViewport($poll)) { 3703 var poll_type = 'inline'; 3704 if (voxpop === 'true') poll_type = 'voxpop'; 3705 3706 var event_payload = { 3707 event : 'poll', 3708 poll_action : 'impression', 3709 poll_type : poll_type, 3710 poll_id : '22754645' 3711 } 3712 3713 if (sponsor_slug) { 3714 event_payload.sponsor = sponsor_slug; 3715 } 3716 3717 if (categories) { 3718 event_payload.categories = categories; 3719 } 3720 3721 console.log('[Polls] Poll impression detected, firing GA4 event.'); 3722 3723 window.dataLayer.push(event_payload) 3724 3725 event_payload.instance_ID = '6aa91abd52663'; 3726 console.log(event_payload); 3727 3728 impression_recorded = true; 3729 } 3730 }); 3731 } 3732 3733 3734 /// 3735 /// Handle rendering the poll if this user has 3736 /// already voted in it. Display the results. 3737 /// 3738 3739 if (voted) { 3740 var renderResults = setInterval(function() { 3741 $option.each(function() { 3742 var answer_ID = $(this).data('answerid'); 3743 if (answer_ID === voted.answer_ID) { 3744 $(this).click(); 3745 } 3746 }); 3747 3748 clearInterval(renderResults); 3749 3750 return false; 3751 }, 333); 3752 } 3753 3754 3755 /// 3756 /// Poll Sponsor Click Tracking 3757 /// 3758 3759 $sponsorBlock = $poll.find('.poll-sponsor'); 3760 3761 $sponsorBlock.on('click', function() { 3762 var sponsorSlug = $(this).data('sponsor-slug'); 3763 var url = $(this).attr('href'); 3764 var poll_type = 'inline'; 3765 if (voxpop === 'true') poll_type = 'voxpop'; 3766 3767 var event_payload = { 3768 event : 'sponsor_poll_click', 3769 sponsor : sponsor_slug, 3770 url : url, 3771 poll_type : poll_type, 3772 poll_id : '22754645' 3773 } 3774 3775 if (categories) { 3776 event_payload.categories = categories; 3777 } 3778 3779 window.dataLayer.push(event_payload); 3780 }); 3781 }); 3782 </script>
3782 3783 </div> 3784 </div> 3785 3786 <div class="footer"> 3787 3788 </div> 3789 </div> 3790</div> 3791
3792<script> 3793 $(document).ready(function() { 3794 $voxpopScreen = $('.tns-voxpop-screen'); 3795 $voxpopModal = $('.tns-voxpop-modal'); 3796 3797 var instance_ID = $voxpopModal.find('.tns-poll').data('instanceid'); 3798 3799 var sponsor_slug = ''; 3800 3801 var voted = localStorage.getItem('tns_poll_vote_22754645'); 3802 if (voted) voted = JSON.parse(voted); 3803 3804 $voxpopModal.on('click', function($event) { 3805 $event.stopPropagation(); 3806 }); 3807 3808 window.tns.voxpop = { 3809 resize : function(delay) { 3810 var windowHeight = $(window).height(); 3811 var headerHeight = $voxpopModal.find('.header').outerHeight(true); 3812 var contentHeight = $voxpopModal.find('.content-block').outerHeight(); 3813 var footerHeight = $voxpopModal.find('.footer').outerHeight(true); 3814 var targetHeight = headerHeight + contentHeight + footerHeight; 3815 3816 if (targetHeight >= windowHeight) { 3817 targetHeight = windowHeight - 40; 3818 } 3819 3820 $voxpopModal.stop().transition({ 3821 height : targetHeight, 3822 duration : delay || 333, 3823 easing : 'snap' 3824 }); 3825 }, 3826 open : function(params) { 3827 $('body').css({ 3828 overflow : 'hidden' 3829 }); 3830 3831 $voxpopScreen.stop().css({ 3832 opacity : 0, 3833 display : 'block' 3834 }); 3835 3836 $voxpopScreen.stop().transition({ 3837 duration : 333, 3838 opacity : 1, 3839 easing : 'snap' 3840 }); 3841 3842 $voxpopModal.stop().css({ 3843 opacity : 0, 3844 display : 'block' 3845 }); 3846 3847 window.tns.voxpop.resize(); 3848 3849 $voxpopModal.stop().transition({ 3850 delay : 333, 3851 duration : 121, 3852 opacity : 1, 3853 easing : 'easeOutQuad' 3854 }); 3855 3856 /// 3857 /// Record an impression event 3858 /// 3859 3860 if (!voted) { 3861 var event_payload = { 3862 poll_action : 'impression', 3863 poll_type : 'voxpop', 3864 poll_id : '22754645' 3865 } 3866 3867 if (sponsor_slug) { 3868 event_payload.sponsor = sponsor_slug; 3869 } 3870 3871 console.log('[Voxpop] Impression detected, firing GA4 event.'); 3872 3873 event_payload.event = 'poll'; 3874 window.dataLayer.push(event_payload); 3875 3876 event_payload.instance_ID = instance_ID; 3877 console.log(event_payload); 3878 } 3879 }, 3880 vote : function(pollData, delay) { 3881 console.log('[Voxpop] Firing post-vote resize.'); 3882 3883 setTimeout(function() { 3884 window.tns.voxpop.resize(delay); 3885 }, 555); 3886 }, 3887 close : function() { 3888 $voxpopScreen.stop().css({ 3889 opacity : 0, 3890 display : 'block' 3891 }); 3892 3893 $voxpopModal.stop().transition({ 3894 duration : 333, 3895 opacity : 0, 3896 easing : 'easeOutQuad' 3897 }); 3898 3899 $voxpopScreen.stop().transition({ 3900 duration : 333, 3901 opacity : 0, 3902 easing : 'easeOutQuad' 3903 }, function() { 3904 $voxpopScreen.stop().css({ 3905 opacity : 0, 3906 display : 'none' 3907 }); 3908 3909 $('body').css({ 3910 overflowY : 'auto' 3911 }); 3912 }); 3913 } 3914 } 3915 3916 $('.tns-voxpop-close').on('click', function() { 3917 window.tns.voxpop.close(); 3918 }); 3919 3920 $('.tns-voxpop-screen').on('click', function() { 3921 window.tns.voxpop.close(); 3922 }); 3923 3924 $(window).on('resize', function() { 3925 window.tns.voxpop.resize(); 3926 }); 3927 3928 3929 3930 /// 3931 /// Auto-open Voxpop based on the `open-voxpop` query param? 3932 /// 3933 3934 var urlParams = new URLSearchParams(window.location.search); 3935 3936 if (urlParams.get('open-voxpop')) { 3937 window.tns.voxpop.open(); 3938 } 3939 }); 3940</script>
3940 3941 <div id="tns-header"> 3942 <div class="header-fixed"> 3943 <div id="tns-header-masthead"> 3944 <div class="masthead"> 3945 <div class="masthead-block"> 3946 <div id="tns-header-masthead-menu"> 3947 <span class="masthead-menu-icon"> 3948 <svg xmlns="http://www.w3.org/2000/svg" width="17" height="14" viewBox="0 0 17 14"> 3949 <g id="Group_656" data-name="Group 656" transform="translate(0 0.687)"> 3950 <path id="Line_2" data-name="Line 2" d="M17,1H0V-1H17Z" transform="translate(0 0.313)"/> 3951 <path id="Line_3" data-name="Line 3" d="M17,1H0V-1H17Z" transform="translate(0 6.313)"/> 3952 <path id="Line_4" data-name="Line 4" d="M17,1H0V-1H17Z" transform="translate(0 12.313)"/> 3953 </g> 3954</svg> 3955 </span> 3956 <span class="masthead-menu-close-icon"> 3957 <svg xmlns="http://www.w3.org/2000/svg" width="19.414" height="19.414" viewBox="0 0 19.414 19.414"> 3958 <g id="Group_891" data-name="Group 891" transform="translate(-167.793 -300.793)"> 3959 <path id="Line_226" data-name="Line 226" d="M17.293,18.707l-18-18L.707-.707l18,18Z" transform="translate(168.5 301.5)"/> 3960 <path id="Line_227" data-name="Line 227" d="M.707,18.707-.707,17.293l18-18L18.707.707Z" transform="translate(168.5 301.5)"/> 3961 </g> 3962</svg> 3963 </span> 3964</div> 3965 3966
3967<script> 3968 $(document).ready(function() { 3969 var categories = ''; 3970 function toggleMobileNav() { 3971 if ($('.masthead-menu-icon').hasClass('active')) { 3972 $('.masthead-menu-icon').removeClass('active'); 3973 $('#tns-header-masthead').removeClass('dark'); 3974 3975 $('.masthead-menu-close-icon').stop().transition({ 3976 opacity : 0, 3977 duration : 0, 3978 easeing : 'snap' 3979 }, function() { 3980 $(this).css({ display : 'none' }); 3981 }); 3982 3983 $('.masthead-menu-icon').stop().css({ 3984 display : 'block' 3985 }).transition({ 3986 opacity : 1, 3987 duration : 333, 3988 easeing : 'snap' 3989 }); 3990 3991 $('.masthead-search-icon').stop().css({ 3992 display : 'block' 3993 }).transition({ 3994 opacity : 1, 3995 duration : 121, 3996 easeing : 'snap' 3997 }); 3998 3999 var height = '60px'; 4000 var paddingBottom = '0px'; 4001 4002 $('body').css({ 4003 overflowX : 'hidden', 4004 overflowY : 'auto' 4005 }); 4006 } else { 4007 $('.masthead-menu-icon').addClass('active'); 4008 $('#tns-header-masthead').addClass('dark'); 4009 4010 $('.masthead-menu-icon').stop().transition({ 4011 opacity : 0, 4012 duration : 0, 4013 easeing : 'snap' 4014 }, function() { 4015 $(this).css({ display : 'none' }); 4016 }); 4017 4018 $('.masthead-search-icon').stop().transition({ 4019 opacity : 0, 4020 duration : 333, 4021 easeing : 'snap' 4022 }, function() { 4023 $(this).css({ display : 'none' }); 4024 }); 4025 4026 $('.masthead-menu-close-icon').stop().css({ 4027 display : 'block' 4028 }).transition({ 4029 opacity : 1, 4030 duration : 333, 4031 easeing : 'snap' 4032 }); 4033 4034 var height = window.screen.height; 4035 var paddingBottom = '200px'; 4036 4037 $('body').css({ 4038 overflowX : 'hidden', 4039 overflowY : 'hidden' 4040 }); 4041 } 4042 4043 $('.mobile-nav-dropdown').scrollTop(0); 4044 $('.mobile-nav-dropdown').stop().transition({ 4045 height : height, 4046 paddingBottom : paddingBottom, 4047 duration : 222, 4048 easeing : 'snap' 4049 }); 4050 } 4051 4052 $('.masthead-menu-icon').on('click', function($event) { 4053 $event.preventDefault(); 4054 4055 var payload = { 4056 'event' : 'nav_click', 4057 'target' : 'mobile_nav' 4058 }; 4059 4060 if (categories) { 4061 payload.categories = categories; 4062 } 4063 4064 window.dataLayer.push(payload); 4065 4066 toggleMobileNav(); 4067 }); 4068 4069 $('.masthead-menu-close-icon').on('click', function($event) { 4070 $event.preventDefault(); 4071 4072 toggleMobileNav(); 4073 }); 4074 }); 4075</script>
4075 4076 <div id="tns-header-masthead-logo"> 4077 <div class="tns-logo"> 4078 <a href="/" aria-label="The New Stack Frontpage" rel="home"> 4079 <svg version="1.1" id="the-new-stack-logo" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" 4080 width="367.308px" height="44px" viewBox="0 0 367.308 44" enable-background="new 0 0 367.308 44" xml:space="preserve"> 4081 <g> 4082 <polygon fill="#00AFF4" points="0,0.962 0,8.546 10.796,8.546 10.796,43.113 20.15,43.113 20.15,8.546 30.719,8.546 30.719,0.962 4083 "/> 4084 <polygon fill="#00AFF4" points="240.737,0.962 240.737,8.546 251.535,8.546 251.535,43.113 260.886,43.113 260.886,8.546 4085 271.454,8.546 271.454,0.962 "/> 4086 <polygon fill="#00AFF4" points="34.156,43.113 43.627,43.113 43.627,24.828 55.387,24.828 55.387,43.113 64.741,43.113 4087 64.741,0.885 55.214,0.885 55.214,17.244 43.568,17.244 43.568,0.885 34.156,0.885 "/> 4088 <polygon fill="#00AFF4" points="179.114,0.885 169.702,0.885 169.702,43.113 179.143,22.825 "/> 4089 <polygon fill="#FF3287" points="179.143,22.825 179.173,43.113 189.358,21.168 189.358,0.885 "/> 4090 <polygon fill="#C87296" points="169.702,43.113 179.173,43.113 179.143,22.825 "/> 4091 <polygon fill="#00AFF4" points="198.769,0.885 189.358,21.168 189.358,43.113 198.798,22.825 "/> 4092 <polygon fill="#C87296" points="189.358,0.885 189.358,21.168 198.769,0.885 "/> 4093 <polygon fill="#FF3287" points="209.013,0.885 198.798,22.825 198.828,43.113 218.424,0.885 "/> 4094 <polygon fill="#C87296" points="189.358,43.113 198.828,43.113 198.798,22.825 "/> 4095 <polygon fill="#FF3287" points="138.471,43.035 165.013,43.035 165.013,35.452 147.825,35.452 147.825,24.828 160.931,24.828 4096 160.931,17.244 147.71,17.244 147.71,8.546 165.013,8.546 165.013,0.962 138.471,0.962 "/> 4097 <polygon fill="#00AFF4" points="70.463,43.035 97.004,43.035 97.004,35.452 79.818,35.452 79.818,24.828 92.924,24.828 4098 92.924,17.244 79.703,17.244 79.703,8.546 97.004,8.546 97.004,0.962 70.463,0.962 "/> 4099 <path fill="#FF3287" d="M102.786,43.113h8.225v-19.69c0-1.098-0.211-6.476-0.257-7.689h0.257c2.358,5.14,2.426,5.324,3.417,6.997 4100 l10.669,20.383h7.407V0.885h-8.225V16.66c0,1.616,0,1.961,0.153,4.86l0.204,4.271h-0.249c-0.166-0.288-0.79-1.846-0.974-2.193 4101 c-0.433-0.866-1.06-2.022-1.56-2.888L111.388,0.886h-8.601L102.786,43.113L102.786,43.113z"/> 4102 <path fill="#00AFF4" d="M277.222,0.972l-11.955,42.14h9.068l2.194-8.661h12.993l2.135,8.661h9.065l-12.241-42.14H277.222z 4103 M287.674,27.83h-9.525l4.618-19.293h0.231L287.674,27.83z"/> 4104 <path fill="#00AFF4" d="M300.615,27.813c0,8.662,2.194,10.979,3.888,12.587c2.589,2.492,5.919,3.6,10.722,3.6 4105 c1.809,0,6.138-0.386,9.142-2.712c3.523-2.715,4.101-5.68,4.448-7.354c0.288-1.79,0.348-2.138,0.404-5.197h-9.355 4106 c0,4.561-1.125,7.679-4.86,7.679c-5.031,0-5.031-4.444-5.031-6.754V13.541c0-1.165,0.059-3.246,1.527-4.627 4107 c0.955-0.868,2.406-1.33,3.563-1.33c4.629,0,4.743,4.619,4.801,6.706h9.355c-0.116-3.416-0.577-8.575-4.417-11.518 4108 C321.835,0.509,318.014,0,315.462,0c-9.777,0-14.848,5.378-14.848,15.042V27.813z"/> 4109 <path fill="#00AFF4" d="M332.314,43.113h9.471V0.885h-9.471V43.113z M354.949,0.885l-12.814,20.374l14.03,21.855h11.144 4110 l-15.07-22.547l12.935-19.681L354.949,0.885L354.949,0.885z"/> 4111 <path fill="#00AFF4" d="M231.091,0.962c-8.844,0-13.316,4.889-13.316,11.827c0,8.296,4.889,10.134,11.278,12.597 4112 c7.014,2.454,8.931,3.137,8.931,6.285c0,3.829-4.013,4.744-6.247,4.744c-4.022,0-6.995-2.174-8.361-5.716l-6.468,4.745 4113 c3.464,6.775,7.333,8.555,15.273,8.555c2.357,0,6.197-0.635,8.576-2.126c5.772-3.62,5.772-9.231,5.772-11.117 4114 c0-3.944-1.779-6.688-2.282-7.373c-1.606-2.292-4.484-4.003-7.024-4.917l-5.939-1.945c-2.867-0.924-5.928-1.154-5.928-4.126 4115 c0-0.444,0.117-3.552,4.792-3.851h7.382V0.962C237.529,0.962,231.651,0.962,231.091,0.962z"/> 4116 </g> 4117 </svg> 4118 </a> 4119 </div> 4120</div> 4121 <div id="tns-masthead-utility-nav"> 4122 <div id="stackie-flag"> 4123 <div class="flag-content"> 4124 NEW! Try Stackie AI 4125 <div class="flag-pointer"></div> 4126 </div> 4127 </div> 4128 4129 <div class="masthead-login-button"></div> 4130 4131 <span class="masthead-search-icon icon-tns-search"> 4132 <svg data-component="Icon" class="" viewBox="0 0 33 33" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="none">
4133 <path fill="currentColor" fill-rule="evenodd" d="M1.934 8.933a5.75 5.75 0 0 1 8.628 7.567l2.969 2.97a.75.75 0 0 1-1.06 1.06L9.5 17.56a5.75 5.75 0 0 1-7.567-8.627M6 8.75a4.25 4.25 0 1 0 0 8.5 4.25 4.25 0 0 0 0-8.5" clip-rule="evenodd"></path> 4134 <path fill="currentColor" d="M18 4a4 4 0 0 0-4 4 4 4 0 0 0-4-4 4 4 0 0 0 4-4 4 4 0 0 0 4 4M22 10a3 3 0 0 0-3 3 3 3 0 0 0-3-3 3 3 0 0 0 3-3 3 3 0 0 0 3 3"></path> 4135</svg> 4136 4137 </span> 4138 <span class="masthead-search-close-icon"> 4139 <svg xmlns="http://www.w3.org/2000/svg" width="19.414" height="19.414" viewBox="0 0 19.414 19.414"> 4140 <g id="Group_891" data-name="Group 891" transform="translate(-167.793 -300.793)"> 4141 <path id="Line_226" data-name="Line 226" d="M17.293,18.707l-18-18L.707-.707l18,18Z" transform="translate(168.5 301.5)"/> 4142 <path id="Line_227" data-name="Line 227" d="M.707,18.707-.707,17.293l18-18L18.707.707Z" transform="translate(168.5 301.5)"/> 4143 </g> 4144</svg> 4145 </span> 4146</div> 4147
4148<script> 4149 $(document).ready(function() { 4150 /// 4151 /// Stackie AI Flag 4152 /// 4153 4154 const key = 'stackie_pageviews' 4155 const expiryKey = 'stackie_pageviews_expiry' 4156 const expiryDuration = 24 * 60 * 60 * 1000 /// 24 hours 4157 const now = Date.now() 4158 4159 let pageviews = 0 4160 let expiry = parseInt(localStorage.getItem(expiryKey), 10) 4161 4162 /// Reset if expired or missing 4163 if (!expiry || now > expiry) { 4164 localStorage.setItem(key, '0') 4165 localStorage.setItem(expiryKey, (now + expiryDuration).toString()) 4166 } 4167 4168 /// Get and increment pageviews 4169 pageviews = parseInt(localStorage.getItem(key), 10) || 0 4170 pageviews++ 4171 localStorage.setItem(key, pageviews.toString()) 4172 4173 /// Check path and apply animation 4174 const currentPath = window.location.pathname 4175 if (currentPath === '/search/') { 4176 /// Max out pageviews to 4 on /search/ 4177 localStorage.setItem(key, '4') 4178 } 4179 4180 /// Search Icon Click 4181 $('.masthead-search-icon').on('click', function($event) { 4182 $event.preventDefault(); 4183 4184 window.dataLayer.push({ 4185 'event': 'nav_click', 4186 'target': 'search', 4187 }); 4188 4189 location.href = '/search/' 4190 }); 4191 4192 4193 4194 /// 4195 /// Login/Logout Button Handling 4196 /// 4197 4198 /// Clear any stale legacy ory_ session tokens 4199 try { 4200 if (window.tns && typeof window.tns.getCookie === 'function') { 4201 var legacyToken = window.tns.getCookie('img-session-token') 4202 if (legacyToken && legacyToken.indexOf('ory_') === 0) { 4203 window.tns.setCookie('img-session-token', '', -1) 4204 window.tns.setCookie('tns-user-id', '', -1) 4205 window.tns.setCookie('tns-user', '', -1) 4206 } 4207 } 4208 } catch (e) { 4209 console.log('[TNS] Legacy session token cleanup failed', e) 4210 } 4211 4212 /// Init Login Button Label 4213 var user = window.tns.getCookie('tns-user') 4214 if (user) { 4215 $('.masthead-login-button').text("") 4216 } else { 4217 $('.masthead-login-button').text("LOGIN") 4218 } 4219 4220 /// Login Click 4221 $('.masthead-login-button').on('click', function($event) { 4222 $event.preventDefault() 4223 4224 var label = $('.masthead-login-button').text().trim() 4225 4226 if (label === 'LOGIN') { 4227 window.dataLayer.push({ 4228 'event': 'nav_click', 4229 'target': 'login', 4230 }) 4231 4232 window.imgjs.subscribe.config.onClose = function(user) { 4233 if (user) { 4234 window.tns.setCookie('tns-user-id', user.author_id, 8400) 4235 window.tns.setCookie('tns-user', JSON.stringify(user), 8400) 4236 4237 /// Update the BlueConic profile with the email and Ory ID 4238 const profile = window.blueConicClient.profile.getProfile() 4239 profile.setValue('email', user?.email) 4240 profile.setValue('ory_id', user?.author_id) 4241 window.blueConicClient.profile.updateProfile() 4242 4243 $('.masthead-login-button').text("") 4244 4245 /// Determine if it's a new subscription by testing 4246 /// if the createdAt date is today's date 4247 if (window.imgjs.subscribe.isNewSubscription(user.createdAt)) { 4248 window.dataLayer.push({ 4249 'event' : 'user_registration', 4250 'url' : window.location.href, 4251 'channel': window.imgjs.subscribe.channel, 4252 'channel_id': window.imgjs.subscribe.channel_id 4253 }) 4254 } 4255 } else { 4256 console.log('[IMG Subscribe] ERROR Failed to validate OTC') 4257 4258 window.tns.setCookie('img-session-token', '', -1) 4259 window.tns.setCookie('tns-user-id', '', -1) 4260 window.tns.setCookie('tns-user', '', -1) 4261 $('.masthead-login-button').text("LOGIN") 4262 } 4263 } 4264 4265 var subscriptions = { 4266 mc : [ 4267 '6166149401' /// TNS Daily 4268 ], 4269 hs : [] 4270 } 4271 4272 const hostname = window.location.hostname 4273 4274 switch (true) { 4275 case hostname.includes("thenewstack.io"): 4276 subscriptions.hs.push("688810478") /// TNS Daily (PROD) 4277 break 4278 4279 case hostname.includes("thenewstack.dev"): 4280 subscriptions.hs.push("860037297") /// TNS Daily (SANDBOX) 4281 break 4282 } 4283 4284 window.imgjs.subscribe.channel = 'login_button' 4285 window.imgjs.subscribe.channel_id = 'login_button' 4286 window.imgjs.subscribe.open(null, subscriptions, 'login') 4287 } 4288 4289 window.imgjs.subscribe.config.onProfileUpdate = function(data) { 4290 console.log("Set tns-user cookie with the following data:") 4291 console.log(data) 4292 4293 if (data.user) { 4294 window.tns.setCookie('tns-user-id', data.user.author_id, 8400) 4295 window.tns.setCookie('tns-user', JSON.stringify(data.user), 8400) 4296 } else { 4297 console.error("[IMGJS] ERROR No user returned to onProfileUpdate") 4298 } 4299 } 4300 4301 if (label === '') { 4302 window.dataLayer.push({ 4303 'event': 'nav_click', 4304 'target': 'logout', 4305 }) 4306 4307 var url = 'https://img-api-v2.thenewstack.dev/api/accounts/logout' 4308 fetch(url, { 4309 method: 'POST', 4310 headers: {'Content-Type': 'application/json'}, 4311 credentials: 'include' 4312 }).then(response => { 4313 if (!response.ok) { 4314 console.log(`Failed to logout`) 4315 } 4316 }).then(result => { 4317 window.tns.setCookie('tns-user-id', '', -1) 4318 window.tns.setCookie('tns-user', '', -1) 4319 4320 $('.masthead-login-button').text("LOGIN") 4321 4322 console.log(`Successfully logged-out`) 4323 }).catch(error => { 4324 console.error('Error:', error) 4325 }) 4326 } 4327 }) 4328 }); 4329</script>
4329 4330 </div> 4331 </div> 4332</div> 4333 4334
4335<script> 4336 $(document).ready(function() { 4337 var categories = ''; 4338 $('.tns-logo a').on('click', function() { 4339 var target = '/'; 4340 4341 var payload = { 4342 'event' : 'nav_click', 4343 'target' : target, 4344 }; 4345 4346 if (categories) { 4347 payload.categories = categories; 4348 } 4349 4350 window.dataLayer.push(payload); 4351 }); 4352 }); 4353</script>
4353 4354 <div id="tns-header-mobile-nav"> 4355 <div class="mobile-nav-dropdown"> 4356 <div class="content-column"> 4357 <div class="row mobile-nav-row"> 4358 <div class="col-20 mobile-nav-col"> 4359 <div class="mobile-nav-header"> 4360 ARCHITECTURE 4361 </div> 4362 <div class="mobile-nav-menu"> 4363 <a 4364 href="https://thenewstack.io/cloud-native/" 4365 class="topic-cloud-native" 4366 data-category-slug="cloud-native" 4367 > 4368 Cloud Native Ecosystem </a> 4369 <a 4370 href="https://thenewstack.io/containers/" 4371 class="topic-containers" 4372 data-category-slug="containers" 4373 > 4374 Containers </a> 4375 <a 4376 href="https://thenewstack.io/databases/" 4377 class="topic-databases" 4378 data-category-slug="databases" 4379 > 4380 Databases </a> 4381 <a 4382 href="https://thenewstack.io/edge-computing/" 4383 class="topic-edge-computing" 4384 data-category-slug="edge-computing" 4385 > 4386 Edge Computing </a> 4387 <a 4388 href="https://thenewstack.io/infrastructure-as-code/" 4389 class="topic-infrastructure-as-code" 4390 data-category-slug="infrastructure-as-code" 4391 > 4392 Infrastructure as Code </a> 4393 <a 4394 href="https://thenewstack.io/linux/" 4395 class="topic-linux" 4396 data-category-slug="linux" 4397 > 4398 Linux </a> 4399 <a 4400 href="https://thenewstack.io/microservices/" 4401 class="topic-microservices" 4402 data-category-slug="microservices" 4403 > 4404 Microservices </a> 4405 <a 4406 href="https://thenewstack.io/open-source/" 4407 class="topic-open-source" 4408 data-category-slug="open-source" 4409 > 4410 Open Source </a> 4411 <a 4412 href="https://thenewstack.io/networking/" 4413 class="topic-networking" 4414 data-category-slug="networking" 4415 > 4416 Networking </a> 4417 <a 4418 href="https://thenewstack.io/storage/" 4419 class="topic-storage" 4420 data-category-slug="storage" 4421 > 4422 Storage </a> 4423 </div> 4424 </div> 4425 <div class="col-20 mobile-nav-col"> 4426 <div class="mobile-nav-header"> 4427 ENGINEERING 4428 </div> 4429 <div class="mobile-nav-menu"> 4430 <a 4431 href="https://thenewstack.io/ai/" 4432 class="topic-ai" 4433 data-category-slug="ai" 4434 > 4435 AI </a> 4436 <a 4437 href="https://thenewstack.io/ai-engineering/" 4438 class="topic-ai-engineering" 4439 data-category-slug="ai-engineering" 4440 > 4441 AI Engineering </a> 4442 <a 4443 href="https://thenewstack.io/api-management/" 4444 class="topic-api-management" 4445 data-category-slug="api-management" 4446 > 4447 API Management </a> 4448 <a 4449 href="https://thenewstack.io/backend-development/" 4450 class="topic-backend-development" 4451 data-category-slug="backend-development" 4452 > 4453 Backend development </a> 4454 <a 4455 href="https://thenewstack.io/data/" 4456 class="topic-data" 4457 data-category-slug="data" 4458 > 4459 Data </a> 4460 <a 4461 href="https://thenewstack.io/frontend-development/" 4462 class="topic-frontend-development" 4463 data-category-slug="frontend-development" 4464 > 4465 Frontend Development </a> 4466 <a 4467 href="https://thenewstack.io/llm/" 4468 class="topic-llm" 4469 data-category-slug="llm" 4470 > 4471 Large Language Models </a> 4472 <a 4473 href="https://thenewstack.io/security/" 4474 class="topic-security" 4475 data-category-slug="security" 4476 > 4477 Security </a> 4478 <a 4479 href="https://thenewstack.io/software-development/" 4480 class="topic-software-development" 4481 data-category-slug="software-development" 4482 > 4483 Software Development </a> 4484 <a 4485 href="https://thenewstack.io/webassembly/" 4486 class="topic-webassembly" 4487 data-category-slug="webassembly" 4488 > 4489 WebAssembly </a> 4490 </div>
4491 </div> 4492 <div class="col-20 mobile-nav-col"> 4493 <div class="mobile-nav-header"> 4494 OPERATIONS 4495 </div> 4496 <div class="mobile-nav-menu"> 4497 <a 4498 href="https://thenewstack.io/ai-operations/" 4499 class="topic-ai-operations" 4500 data-category-slug="ai-operations" 4501 > 4502 AI Operations </a> 4503 <a 4504 href="https://thenewstack.io/ci-cd/" 4505 class="topic-ci-cd" 4506 data-category-slug="ci-cd" 4507 > 4508 CI/CD </a> 4509 <a 4510 href="https://thenewstack.io/cloud-services/" 4511 class="topic-cloud-services" 4512 data-category-slug="cloud-services" 4513 > 4514 Cloud Services </a> 4515 <a 4516 href="https://thenewstack.io/devops/" 4517 class="topic-devops" 4518 data-category-slug="devops" 4519 > 4520 DevOps </a> 4521 <a 4522 href="https://thenewstack.io/kubernetes/" 4523 class="topic-kubernetes" 4524 data-category-slug="kubernetes" 4525 > 4526 Kubernetes </a> 4527 <a 4528 href="https://thenewstack.io/observability/" 4529 class="topic-observability" 4530 data-category-slug="observability" 4531 > 4532 Observability </a> 4533 <a 4534 href="https://thenewstack.io/operations/" 4535 class="topic-operations" 4536 data-category-slug="operations" 4537 > 4538 Operations </a> 4539 <a 4540 href="https://thenewstack.io/platform-engineering/" 4541 class="topic-platform-engineering" 4542 data-category-slug="platform-engineering" 4543 > 4544 Platform Engineering </a> 4545 </div> 4546 </div> 4547 <div class="col-20 mobile-nav-col"> 4548 <div class="mobile-nav-header"> 4549 PROGRAMMING 4550 </div> 4551 <div class="mobile-nav-menu"> 4552 <a 4553 href="https://thenewstack.io/c/" 4554 class="topic-c" 4555 data-category-slug="c" 4556 > 4557 C++ </a> 4558 <a 4559 href="https://thenewstack.io/developer-tools/" 4560 class="topic-developer-tools" 4561 data-category-slug="developer-tools" 4562 > 4563 Developer tools </a> 4564 <a 4565 href="https://thenewstack.io/go/" 4566 class="topic-go" 4567 data-category-slug="go" 4568 > 4569 Go </a> 4570 <a 4571 href="https://thenewstack.io/java/" 4572 class="topic-java" 4573 data-category-slug="java" 4574 > 4575 Java </a> 4576 <a 4577 href="https://thenewstack.io/javascript/" 4578 class="topic-javascript" 4579 data-category-slug="javascript" 4580 > 4581 JavaScript </a> 4582 <a 4583 href="https://thenewstack.io/programming-languages/" 4584 class="topic-programming-languages" 4585 data-category-slug="programming-languages" 4586 > 4587 Programming Languages </a> 4588 <a 4589 href="https://thenewstack.io/python/" 4590 class="topic-python" 4591 data-category-slug="python" 4592 > 4593 Python </a> 4594 <a 4595 href="https://thenewstack.io/rust/" 4596 class="topic-rust" 4597 data-category-slug="rust" 4598 > 4599 Rust </a> 4600 <a 4601 href="https://thenewstack.io/typescript/" 4602 class="topic-typescript" 4603 data-category-slug="typescript" 4604 > 4605 TypeScript </a> 4606 </div> 4607 </div> 4608 <div class="col-20 mobile-nav-col"> 4609 <div class="mobile-nav-header"> 4610 CHANNELS 4611 </div> 4612 <div class="mobile-nav-menu"> 4613 <a 4614 href="https://thenewstack.io/podcasts/" 4615 class="topic-podcasts" 4616 data-category-slug="podcasts" 4617 > 4618 Podcasts </a> 4619 <a 4620 href="https://thenewstack.io/ebooks/" 4621 class="topic-ebooks" 4622 data-category-slug="ebooks" 4623 > 4624 Ebooks </a> 4625 <a 4626 href="https://thenewstack.io/events/" 4627 class="topic-events" 4628 data-category-slug="events" 4629 > 4630 Events </a> 4631 <a 4632 href="https://thenewstack.io/webinars/" 4633 class="topic-webinars" 4634 data-category-slug="webinars" 4635 > 4636 Webinars </a> 4637 <a 4638 href="https://thenewstack.io/newsletter/" 4639 class="topic-newsletter" 4640 data-category-slug="newsletter" 4641 > 4642 Newsletter </a> 4643 <a 4644 href="/rss-feeds/" 4645 class="topic-rss-feeds" 4646 data-category-slug="rss-feeds" 4647 > 4648 TNS RSS Feeds </a> 4649 </div>
4650 </div> 4651 <div class="col-20 mobile-nav-col"> 4652 <div class="mobile-nav-header"> 4653 THE NEW STACK 4654 </div> 4655 <div class="mobile-nav-menu"> 4656 <a 4657 href="https://thenewstack.io/about-and-contact-info/" 4658 class="topic-about-and-contact-info" 4659 data-category-slug="about-and-contact-info" 4660 > 4661 About / Contact </a> 4662 <a 4663 href="https://thenewstack.io/sponsors/" 4664 class="topic-sponsors" 4665 data-category-slug="sponsors" 4666 > 4667 Sponsors </a> 4668 <a 4669 href="https://thenewstack.io/sponsorship/" 4670 class="topic-sponsorship" 4671 data-category-slug="sponsorship" 4672 > 4673 Advertise With Us </a> 4674 <a 4675 href="https://thenewstack.io/contributions/" 4676 class="topic-contributions" 4677 data-category-slug="contributions" 4678 > 4679 Contributions </a> 4680 </div> 4681 </div> 4682 </div> 4683 </div> 4684 </div> 4685</div> 4686 <div id="tns-header-nav-channels"> 4687 <div class="channels-nav"> 4688 <div class="channels-nav-block"> 4689 <a href="/podcasts/">PODCASTS</a> 4690 <a href="/ebooks/">EBOOKS</a> 4691 <a href="/events/">EVENTS</a> 4692 <a href="/webinars/">WEBINARS</a> 4693 <a href="/newsletter/">NEWSLETTER</a> 4694 <a href="/contributions/">CONTRIBUTE</a> 4695 </div> 4696 </div> 4697</div> 4698
4699<script> 4700 $(document).ready(function() { 4701 $('.channels-nav-block a').on('click', function() { 4702 var target = $(this).attr('href'); 4703 4704 window.dataLayer.push({ 4705 'event' : 'nav_click', 4706 'target' : target 4707 }); 4708 }); 4709 }); 4710</script>
4710 4711 <div id="tns-header-nav-channels-dropdown"> 4712 4713</div> 4714 <div id="tns-header-nav-topics"> 4715 <div class="topics-nav"> 4716 <div class="topics-nav-block"> 4717 <a href="#" class="topics-nav-option topics-nav-architecture" data-topic-slug="architecture"> 4718 ARCHITECTURE 4719 </a> 4720 <a href="#" class="topics-nav-option topics-nav-engineering" data-topic-slug="engineering"> 4721 ENGINEERING 4722 </a> 4723 <a href="#" x class="topics-nav-option topics-nav-operations" data-topic-slug="operations"> 4724 OPERATIONS 4725 </a> 4726 <a href="#" x class="topics-nav-option topics-nav-programming" data-topic-slug="programming"> 4727 PROGRAMMING 4728 </a> 4729 </div> 4730 </div> 4731</div> 4732
4733<script> 4734 $(document).ready(function() { 4735 $('.topics-nav-block a').on('click', function($event) { 4736 $event.preventDefault(); 4737 }); 4738 4739 $('.topics-nav-option').on('mouseenter', function() { 4740 var slug = $(this).data('topic-slug'); 4741 4742 $('.nav-topics-dropdown .content').css({ 4743 display : 'none', 4744 opacity : 0 4745 }); 4746 4747 $('.nav-topics-dropdown .content-' + slug).transition({ 4748 display : 'flex', 4749 opacity : 1, 4750 duration : 99, 4751 easing : 'snap' 4752 }); 4753 4754 var firstSubCategory = $('.nav-topics-dropdown .content-' + slug + ' .col-topics a:first-child'); 4755 firstSubCategory.trigger('mouseenter') 4756 }); 4757 }); 4758</script>
4758 4759 <div id="tns-header-nav-topics-dropdown"> 4760 <div class="nav-topics-dropdown tns-gradient-pink"> 4761 <div class="content content-architecture row"> 4762 <div class="col col-33 col-topics"> 4763 <a 4764 href="https://thenewstack.io/cloud-native/" 4765 class="topics-nav-topic topic-cloud-native" 4766 data-category-slug="cloud-native" 4767 > 4768 Cloud Native Ecosystem </a> 4769 <a 4770 href="https://thenewstack.io/containers/" 4771 class="topics-nav-topic topic-containers" 4772 data-category-slug="containers" 4773 > 4774 Containers </a> 4775 <a 4776 href="https://thenewstack.io/databases/" 4777 class="topics-nav-topic topic-databases" 4778 data-category-slug="databases" 4779 > 4780 Databases </a> 4781 <a 4782 href="https://thenewstack.io/edge-computing/" 4783 class="topics-nav-topic topic-edge-computing" 4784 data-category-slug="edge-computing" 4785 > 4786 Edge Computing </a> 4787 <a 4788 href="https://thenewstack.io/infrastructure-as-code/" 4789 class="topics-nav-topic topic-infrastructure-as-code" 4790 data-category-slug="infrastructure-as-code" 4791 > 4792 Infrastructure as Code </a> 4793 <a 4794 href="https://thenewstack.io/linux/" 4795 class="topics-nav-topic topic-linux" 4796 data-category-slug="linux" 4797 > 4798 Linux </a> 4799 <a 4800 href="https://thenewstack.io/microservices/" 4801 class="topics-nav-topic topic-microservices" 4802 data-category-slug="microservices" 4803 > 4804 Microservices </a> 4805 <a 4806 href="https://thenewstack.io/open-source/" 4807 class="topics-nav-topic topic-open-source" 4808 data-category-slug="open-source" 4809 > 4810 Open Source </a> 4811 <a 4812 href="https://thenewstack.io/networking/" 4813 class="topics-nav-topic topic-networking" 4814 data-category-slug="networking" 4815 > 4816 Networking </a> 4817 <a 4818 href="https://thenewstack.io/storage/" 4819 class="topics-nav-topic topic-storage" 4820 data-category-slug="storage" 4821 > 4822 Storage </a> 4823 </div> 4824 <div class="col col-66 col-latest-stories"> 4825 <div class="topic-latest-stories topic-latest-stories-cloud-native"> 4826 <div class="topics-latest-story"> 4827 <a href="/kubecon-kubernetes-updates-security/" class="topics-nav-story"> 4828 Kubernetes v1.37 brings 67 enhancements. Which matter for operators? 4829 <div class="byline"> 4830 <span class="date"> 4831 Sep 11th 2026 1:40pm, by </span> 4832 4833 <span class="author"> 4834 Bill Doerrfeld </span> 4835 </div> 4836 </a> 4837 </div> 4838 <div class="topics-latest-story"> 4839 <a href="/runtime-verification-coding-agents/" class="topics-nav-story"> 4840 Greptile, Cursor, and Devin agree that agents should run their code. What they run it against matters. 4841 <div class="byline"> 4842 <span class="date"> 4843 Jun 27th 2026 11:00am, by </span> 4844 4845 <span class="author"> 4846 Arjun Iyer </span> 4847 </div> 4848 </a> 4849 </div> 4850 <div class="topics-latest-story"> 4851 <a href="/verifying-async-ai-agents/" class="topics-nav-story"> 4852 Agentic development hinges on verification. For cloud-native software, that is a runtime problem. 4853 <div class="byline"> 4854 <span class="date"> 4855 Jun 11th 2026 10:00am, by </span> 4856 4857 <span class="author"> 4858 Arjun Iyer </span> 4859 </div> 4860 </a> 4861 </div> 4862 <div class="topics-latest-story"> 4863 <a href="/opentelemetry-vendor-neutrality-guide/" class="topics-nav-story"> 4864 Vendor neutrality isnât magic: A hard look at the OpenTelemetry ecosystem 4865 <div class="byline"> 4866 <span class="date"> 4867 May 29th 2026 10:00am, by </span> 4868 4869 <span class="author"> 4870 Adriana Villela and Josh Lee </span> 4871 </div> 4872 </a> 4873 </div> 4874 <div class="topics-latest-story"> 4875 <a href="/jaeger-clickhouse-storage-backend/" class="topics-nav-story">
4876 How Jaeger hit 8.6Ã compression on 10 million spans with ClickHouse 4877 <div class="byline"> 4878 <span class="date"> 4879 May 24th 2026 11:00am, by </span> 4880 4881 <span class="author"> 4882 Mahad Zaryab </span> 4883 </div> 4884 </a> 4885 </div> 4886 </div> 4887 <div class="topic-latest-stories topic-latest-stories-containers"> 4888 <div class="topics-latest-story"> 4889 <a href="/amazon-ecs-express-mode/" class="topics-nav-story"> 4890 Your container runs. Everything around it shouldn't be your problem. 4891 <div class="byline"> 4892 <span class="date"> 4893 Aug 29th 2026 11:00am, by </span> 4894 4895 <span class="author"> 4896 Satej Sawant </span> 4897 </div> 4898 </a> 4899 </div> 4900 <div class="topics-latest-story"> 4901 <a href="/unsigned-container-images-ai/" class="topics-nav-story"> 4902 Your container images are unsigned. In the AI era, that's a ticking time bomb. 4903 <div class="byline"> 4904 <span class="date"> 4905 Aug 14th 2026 10:00am, by </span> 4906 4907 <span class="author"> 4908 Uma Sridharan </span> 4909 </div> 4910 </a> 4911 </div> 4912 <div class="topics-latest-story"> 4913 <a href="/accelerating-eks-image-pulls/" class="topics-nav-story"> 4914 Pulling multi-gigabyte container images in seconds on Amazon EKS 4915 <div class="byline"> 4916 <span class="date"> 4917 Aug 10th 2026 12:00pm, by </span> 4918 4919 <span class="author"> 4920 Sri Saran Balaji Vellore Rajakumar and Neelendra Bhandari </span> 4921 </div> 4922 </a> 4923 </div> 4924 <div class="topics-latest-story"> 4925 <a href="/sbom-sniff-test-hardened-images/" class="topics-nav-story"> 4926 Why a five-minute sniff test is your secret supply chain defense 4927 <div class="byline"> 4928 <span class="date"> 4929 Jul 9th 2026 12:00pm, by </span> 4930 4931 <span class="author"> 4932 Christian Dupuis </span> 4933 </div> 4934 </a> 4935 </div> 4936 <div class="topics-latest-story"> 4937 <a href="/graviton5-nitro-isolation-engine/" class="topics-nav-story"> 4938 AWS can now mathematically prove your VMs are isolated 4939 <div class="byline"> 4940 <span class="date"> 4941 Jun 10th 2026 12:46pm, by </span> 4942 4943 <span class="author"> 4944 Frederic Lardinois </span> 4945 </div> 4946 </a> 4947 </div> 4948 </div> 4949 <div class="topic-latest-stories topic-latest-stories-databases"> 4950 <div class="topics-latest-story"> 4951 <a href="/ai-agent-retrieval-infrastructure/" class="topics-nav-story"> 4952 Want to scale AI agents without breaking anything? Retrieval engineering is the answer. 4953 <div class="byline"> 4954 <span class="date"> 4955 Sep 3rd 2026 11:38am, by </span> 4956 4957 <span class="author"> 4958 Alex Wilhelm </span> 4959 </div> 4960 </a> 4961 </div> 4962 <div class="topics-latest-story"> 4963 <a href="/agent-scale-database-persistence/" class="topics-nav-story"> 4964 When agents build, deploy, and maintain, persistence becomes the hard problem 4965 <div class="byline"> 4966 <span class="date"> 4967 Sep 1st 2026 10:00am, by </span> 4968 4969 <span class="author"> 4970 Max Liu </span> 4971 </div> 4972 </a> 4973 </div> 4974 <div class="topics-latest-story"> 4975 <a href="/agent-traces-application-data/" class="topics-nav-story"> 4976 When AI agent traces become application data 4977 <div class="byline"> 4978 <span class="date"> 4979 Aug 26th 2026 9:00am, by </span> 4980 4981 <span class="author"> 4982 Manveer Chawla </span> 4983 </div> 4984 </a> 4985 </div> 4986 <div class="topics-latest-story"> 4987 <a href="/motherduck-tower-acquisition-python/" class="topics-nav-story"> 4988 âYou can rent a feature, but you canât rent a foundationâ: why MotherDuck bought the startup already powering its data pipelines 4989 <div class="byline"> 4990 <span class="date"> 4991 Aug 25th 2026 9:00am, by </span> 4992 4993 <span class="author"> 4994 Paul Sawers </span> 4995 </div> 4996 </a> 4997 </div> 4998 <div class="topics-latest-story"> 4999 <a href="/real-time-ai-scale/" class="topics-nav-story"> 5000 Why real-time AI at scale is so hard 5001 <div class="byline"> 5002 <span class="date">
5003 Aug 23rd 2026 12:00pm, by </span> 5004 5005 <span class="author"> 5006 Felipe Cardeneti Mendes </span> 5007 </div> 5008 </a> 5009 </div> 5010 </div> 5011 <div class="topic-latest-stories topic-latest-stories-edge-computing"> 5012 <div class="topics-latest-story"> 5013 <a href="/spacex-nvidia-orbital-ai/" class="topics-nav-story"> 5014 SpaceX designed an orbital Vera Rubin. Radiation comes next. 5015 <div class="byline"> 5016 <span class="date"> 5017 Aug 31st 2026 2:55pm, by </span> 5018 5019 <span class="author"> 5020 Steven J. Vaughan-Nichols </span> 5021 </div> 5022 </a> 5023 </div> 5024 <div class="topics-latest-story"> 5025 <a href="/edge-kubernetes-fleet-management/" class="topics-nav-story"> 5026 Kubernetes at the edge has hit a wall. Fleet management is the way through. 5027 <div class="byline"> 5028 <span class="date"> 5029 Aug 20th 2026 9:00am, by </span> 5030 5031 <span class="author"> 5032 Arvind Bhoj and Aarthi Mahesh </span> 5033 </div> 5034 </a> 5035 </div> 5036 <div class="topics-latest-story"> 5037 <a href="/agentic-ai-latency-infrastructure/" class="topics-nav-story"> 5038 Agentic AI has a latency problem that more compute won't solve 5039 <div class="byline"> 5040 <span class="date"> 5041 Aug 18th 2026 12:58pm, by </span> 5042 5043 <span class="author"> 5044 Jon Alexander </span> 5045 </div> 5046 </a> 5047 </div> 5048 <div class="topics-latest-story"> 5049 <a href="/google-gemma-local-ai/" class="topics-nav-story"> 5050 Google Gemma 4 12B nearly matches 26B benchmarks â and runs on your laptop 5051 <div class="byline"> 5052 <span class="date"> 5053 Jun 4th 2026 3:30pm, by </span> 5054 5055 <span class="author"> 5056 Meredith Shubel </span> 5057 </div> 5058 </a> 5059 </div> 5060 <div class="topics-latest-story"> 5061 <a href="/secure-ot-data-movement/" class="topics-nav-story"> 5062 How to get operational data off the factory floor without creating an IT breach 5063 <div class="byline"> 5064 <span class="date"> 5065 Jun 3rd 2026 3:55pm, by </span> 5066 5067 <span class="author"> 5068 Alex Wilhelm </span> 5069 </div> 5070 </a> 5071 </div> 5072 </div> 5073 <div class="topic-latest-stories topic-latest-stories-infrastructure-as-code"> 5074 <div class="topics-latest-story"> 5075 <a href="/shai-hulud-pipeline-security/" class="topics-nav-story"> 5076 Shai-Hulud: Whoever controls your package registry controls your pipeline 5077 <div class="byline"> 5078 <span class="date"> 5079 Aug 31st 2026 12:00pm, by </span> 5080 5081 <span class="author"> 5082 Zeen Rachidi </span> 5083 </div> 5084 </a> 5085 </div> 5086 <div class="topics-latest-story"> 5087 <a href="/dns-domain-management-automation/" class="topics-nav-story"> 5088 DNS is infrastructure. Itâs time to manage it that way. 5089 <div class="byline"> 5090 <span class="date"> 5091 Jul 30th 2026 11:00am, by </span> 5092 5093 <span class="author"> 5094 Venus Kohli </span> 5095 </div> 5096 </a> 5097 </div> 5098 <div class="topics-latest-story"> 5099 <a href="/terraform-state-infrastructure-drift/" class="topics-nav-story"> 5100 Why Terraform is green when your cloud is broken 5101 <div class="byline"> 5102 <span class="date"> 5103 Apr 28th 2026 9:00am, by </span> 5104 5105 <span class="author"> 5106 Joe Karlsson </span> 5107 </div> 5108 </a> 5109 </div> 5110 <div class="topics-latest-story"> 5111 <a href="/multi-cloud-blind-spots/" class="topics-nav-story"> 5112 The one Slack message that proved our elite engineering team was flying blind 5113 <div class="byline"> 5114 <span class="date"> 5115 Apr 26th 2026 11:00am, by </span> 5116 5117 <span class="author"> 5118 Joe Karlsson </span> 5119 </div> 5120 </a> 5121 </div> 5122 <div class="topics-latest-story"> 5123 <a href="/closing-cloud-operational-gap/" class="topics-nav-story"> 5124 The operational gap is real, and it's getting wider 5125 <div class="byline"> 5126 <span class="date"> 5127 Mar 26th 2026 8:00am, by </span> 5128 5129 <span class="author"> 5130 Yevgeny Pats </span> 5131 </div> 5132 </a> 5133 </div> 5134 </div> 5135 <div class="topic-latest-stories topic-latest-stories-linux"> 5136 <div class="topics-latest-story">
5137 <a href="/openais-chatgpt-desktop-linux/" class="topics-nav-story"> 5138 OpenAI's ChatGPT/Codex desktop app is now on Linux 5139 <div class="byline"> 5140 <span class="date"> 5141 Aug 11th 2026 1:53pm, by </span> 5142 5143 <span class="author"> 5144 Frederic Lardinois </span> 5145 </div> 5146 </a> 5147 </div> 5148 <div class="topics-latest-story"> 5149 <a href="/torvalds-linux-ai-stance/" class="topics-nav-story"> 5150 Linux creator Linus Torvalds tells AI haters to walk away from Linux, or go fork it 5151 <div class="byline"> 5152 <span class="date"> 5153 Jul 16th 2026 11:15am, by </span> 5154 5155 <span class="author"> 5156 Adrian Bridgwater </span> 5157 </div> 5158 </a> 5159 </div> 5160 <div class="topics-latest-story"> 5161 <a href="/torvalds-ai-programming-productivity/" class="topics-nav-story"> 5162 Why Linux creator Linus Torvalds gets angry hearing "99% of code is AI" 5163 <div class="byline"> 5164 <span class="date"> 5165 May 29th 2026 10:34am, by </span> 5166 5167 <span class="author"> 5168 B. Cameron Gain </span> 5169 </div> 5170 </a> 5171 </div> 5172 <div class="topics-latest-story"> 5173 <a href="/sparky-linux-9-brings-a-rolling-release-to-debian/" class="topics-nav-story"> 5174 Sparky Linux 9 brings a rolling release to Debian 5175 <div class="byline"> 5176 <span class="date"> 5177 Mar 30th 2026 8:00am, by </span> 5178 5179 <span class="author"> 5180 Jack Wallen </span> 5181 </div> 5182 </a> 5183 </div> 5184 <div class="topics-latest-story"> 5185 <a href="/edera-adds-kvm-support/" class="topics-nav-story"> 5186 Edera spent years calling KVM less secure. Here's why it changed its mind. 5187 <div class="byline"> 5188 <span class="date"> 5189 Mar 25th 2026 2:22pm, by </span> 5190 5191 <span class="author"> 5192 Steven J. Vaughan-Nichols </span> 5193 </div> 5194 </a> 5195 </div> 5196 </div> 5197 <div class="topic-latest-stories topic-latest-stories-microservices"> 5198 <div class="topics-latest-story"> 5199 <a href="/merge-gate-coding-agents/" class="topics-nav-story"> 5200 Your merge gate was a compromise. Coding agents are making it a liability. 5201 <div class="byline"> 5202 <span class="date"> 5203 Jul 11th 2026 1:00pm, by </span> 5204 5205 <span class="author"> 5206 Arjun Iyer </span> 5207 </div> 5208 </a> 5209 </div> 5210 <div class="topics-latest-story"> 5211 <a href="/tetrate-built-on-envoy/" class="topics-nav-story"> 5212 Tetrate launches open source marketplace to simplify Envoy adoption 5213 <div class="byline"> 5214 <span class="date"> 5215 Mar 11th 2026 10:52am, by </span> 5216 5217 <span class="author"> 5218 Adrian Bridgwater </span> 5219 </div> 5220 </a> 5221 </div> 5222 <div class="topics-latest-story"> 5223 <a href="/opentelemetry-roadmap-sampling-rates-and-collector-improvements-ahead/" class="topics-nav-story"> 5224 OpenTelemetry roadmap: Sampling rates and collector improvements ahead 5225 <div class="byline"> 5226 <span class="date"> 5227 Feb 24th 2026 11:00am, by </span> 5228 5229 <span class="author"> 5230 B. Cameron Gain </span> 5231 </div> 5232 </a> 5233 </div> 5234 <div class="topics-latest-story"> 5235 <a href="/merging-to-test-is-killing-your-microservices-velocity/" class="topics-nav-story"> 5236 Merging To Test Is Killing Your Microservices Velocity 5237 <div class="byline"> 5238 <span class="date"> 5239 Dec 16th 2025 7:00am, by </span> 5240 5241 <span class="author"> 5242 Arjun Iyer </span> 5243 </div> 5244 </a> 5245 </div> 5246 <div class="topics-latest-story"> 5247 <a href="/ibms-confluent-acquisition-is-about-event-driven-ai/" class="topics-nav-story"> 5248 IBMâs Confluent Acquisition Is About Event-Driven AI 5249 <div class="byline"> 5250 <span class="date"> 5251 Dec 11th 2025 6:00am, by </span> 5252 5253 <span class="author"> 5254 Joab Jackson </span> 5255 </div> 5256 </a> 5257 </div> 5258 </div> 5259 <div class="topic-latest-stories topic-latest-stories-open-source"> 5260 <div class="topics-latest-story"> 5261 <a href="/openai-hires-git-ai/" class="topics-nav-story"> 5262 "Same mission, bigger stage": OpenAI hires Git AI founders to help Codex prove its ROI 5263 <div class="byline"> 5264 <span class="date"> 5265 Sep 12th 2026 10:46am, by </span> 5266 5267 <span class="author"> 5268 Paul Sawers </span> 5269 </div> 5270 </a> 5271 </div> 5272 <div class="topics-latest-story"> 5273 <a href="/aws-pizza-bot-agent-inbox/" class="topics-nav-story"> 5274 AWS open-sources Pizza Bot: email-style inbox for background AI agents 5275 <div class="byline"> 5276 <span class="date">
5277 Sep 10th 2026 6:54pm, by </span> 5278 5279 <span class="author"> 5280 Paul Sawers </span> 5281 </div> 5282 </a> 5283 </div> 5284 <div class="topics-latest-story"> 5285 <a href="/k2-horizon-fully-open/" class="topics-nav-story"> 5286 K2 Horizon just shipped as six new fully open models â developers aren't fully convinced 5287 <div class="byline"> 5288 <span class="date"> 5289 Sep 9th 2026 8:00am, by </span> 5290 5291 <span class="author"> 5292 Adrian Bridgwater </span> 5293 </div> 5294 </a> 5295 </div> 5296 <div class="topics-latest-story"> 5297 <a href="/nvidia-acquires-hugging-face/" class="topics-nav-story"> 5298 "Hugging Face will remain an open platform": Nvidia strikes $12.9B deal for the 'GitHub of AI' 5299 <div class="byline"> 5300 <span class="date"> 5301 Sep 3rd 2026 1:52pm, by </span> 5302 5303 <span class="author"> 5304 Paul Sawers </span> 5305 </div> 5306 </a> 5307 </div> 5308 <div class="topics-latest-story"> 5309 <a href="/nvidia-pair-local-inference/" class="topics-nav-story"> 5310 Nvidia PAIR lets you put your idle Macs and PCs to work for AI agents 5311 <div class="byline"> 5312 <span class="date"> 5313 Sep 3rd 2026 12:00pm, by </span> 5314 5315 <span class="author"> 5316 Frederic Lardinois </span> 5317 </div> 5318 </a> 5319 </div> 5320 </div> 5321 <div class="topic-latest-stories topic-latest-stories-networking"> 5322 <div class="topics-latest-story"> 5323 <a href="/kubevirt-evpn-vm-migration/" class="topics-nav-story"> 5324 Why your KubeVirt VMs canât move between clusters â and how EVPN fixes it 5325 <div class="byline"> 5326 <span class="date"> 5327 Aug 8th 2026 10:00am, by </span> 5328 5329 <span class="author"> 5330 Miguel Duarte Barroso </span> 5331 </div> 5332 </a> 5333 </div> 5334 <div class="topics-latest-story"> 5335 <a href="/dns-domain-management-automation/" class="topics-nav-story"> 5336 DNS is infrastructure. Itâs time to manage it that way. 5337 <div class="byline"> 5338 <span class="date"> 5339 Jul 30th 2026 11:00am, by </span> 5340 5341 <span class="author"> 5342 Venus Kohli </span> 5343 </div> 5344 </a> 5345 </div> 5346 <div class="topics-latest-story"> 5347 <a href="/kubernetes-controllers-at-scale/" class="topics-nav-story"> 5348 From intent to enforcement: Lessons from operating Kubernetes controllers at scale 5349 <div class="byline"> 5350 <span class="date"> 5351 Jul 17th 2026 8:00am, by </span> 5352 5353 <span class="author"> 5354 Sri Saran Balaji Vellore Rajakumar and Jayanth Varavani </span> 5355 </div> 5356 </a> 5357 </div> 5358 <div class="topics-latest-story"> 5359 <a href="/unified-access-ai-agents/" class="topics-nav-story"> 5360 What happens when your VPN meets 200 AI agents 5361 <div class="byline"> 5362 <span class="date"> 5363 Jul 14th 2026 2:53pm, by </span> 5364 5365 <span class="author"> 5366 Alex Wilhelm </span> 5367 </div> 5368 </a> 5369 </div> 5370 <div class="topics-latest-story"> 5371 <a href="/cloudflare-ai-web-economics/" class="topics-nav-story"> 5372 Cloudflare wants to build the economic layer of the AI web 5373 <div class="byline"> 5374 <span class="date"> 5375 Jul 1st 2026 4:10pm, by </span> 5376 5377 <span class="author"> 5378 Amanda Caswell </span> 5379 </div> 5380 </a> 5381 </div> 5382 </div> 5383 <div class="topic-latest-stories topic-latest-stories-storage"> 5384 <div class="topics-latest-story"> 5385 <a href="/agent-traces-application-data/" class="topics-nav-story"> 5386 When AI agent traces become application data 5387 <div class="byline"> 5388 <span class="date"> 5389 Aug 26th 2026 9:00am, by </span> 5390 5391 <span class="author"> 5392 Manveer Chawla </span> 5393 </div> 5394 </a> 5395 </div> 5396 <div class="topics-latest-story"> 5397 <a href="/postgres-nvme-s3-storage/" class="topics-nav-story"> 5398 Why Postgres wants NVMe on the hot path, and S3 everywhere else 5399 <div class="byline"> 5400 <span class="date"> 5401 Apr 17th 2026 9:00am, by </span> 5402 5403 <span class="author"> 5404 Alasdair Brown </span> 5405 </div> 5406 </a> 5407 </div> 5408 <div class="topics-latest-story"> 5409 <a href="/btrfs-petabyte-cost-reduction/" class="topics-nav-story"> 5410 Scaling Btrfs to petabytes in production: a 74% cost reduction story 5411 <div class="byline"> 5412 <span class="date"> 5413 Mar 18th 2026 5:00am, by </span> 5414 5415 <span class="author"> 5416 Motiejus JakÅ¡tys </span> 5417 </div> 5418 </a> 5419 </div> 5420 <div class="topics-latest-story"> 5421 <a href="/kubevirt-live-migration-mayastor/" class="topics-nav-story"> 5422 What is KubeVirt and why itâs growing 5423 <div class="byline"> 5424 <span class="date"> 5425 Mar 17th 2026 9:00am, by </span> 5426 5427 <span class="author"> 5428 Tiago Castro </span> 5429 </div> 5430 </a> 5431 </div> 5432 <div class="topics-latest-story"> 5433 <a href="/tidb-x-open-source-database/" class="topics-nav-story"> 5434 S3 is the new network: Rethinking data architecture for the cloud era 5435 <div class="byline"> 5436 <span class="date"> 5437 Feb 2nd 2026 4:00am, by </span> 5438 5439 <span class="author"> 5440 Max Liu </span> 5441 </div> 5442 </a> 5443 </div> 5444 </div> 5445 </div> 5446 </div> 5447 5448 <div class="content content-engineering row"> 5449 <div class="col col-33 col-topics"> 5450 <a 5451 href="https://thenewstack.io/ai/" 5452 class="topics-nav-topic topic-ai" 5453 data-category-slug="ai" 5454 > 5455 AI </a> 5456 <a 5457 href="https://thenewstack.io/ai-engineering/" 5458 class="topics-nav-topic topic-ai-engineering" 5459 data-category-slug="ai-engineering" 5460 > 5461 AI Engineering </a> 5462 <a 5463 href="https://thenewstack.io/api-management/" 5464 class="topics-nav-topic topic-api-management" 5465 data-category-slug="api-management" 5466 > 5467 API Management </a> 5468 <a 5469 href="https://thenewstack.io/backend-development/" 5470 class="topics-nav-topic topic-backend-development" 5471 data-category-slug="backend-development" 5472 > 5473 Backend development </a> 5474 <a 5475 href="https://thenewstack.io/data/" 5476 class="topics-nav-topic topic-data" 5477 data-category-slug="data" 5478 > 5479 Data </a> 5480 <a 5481 href="https://thenewstack.io/frontend-development/" 5482 class="topics-nav-topic topic-frontend-development" 5483 data-category-slug="frontend-development" 5484 > 5485 Frontend Development </a> 5486 <a 5487 href="https://thenewstack.io/llm/" 5488 class="topics-nav-topic topic-llm" 5489 data-category-slug="llm" 5490 > 5491 Large Language Models </a> 5492 <a 5493 href="https://thenewstack.io/security/" 5494 class="topics-nav-topic topic-security" 5495 data-category-slug="security" 5496 > 5497 Security </a> 5498 <a 5499 href="https://thenewstack.io/software-development/" 5500 class="topics-nav-topic topic-software-development"
5501 data-category-slug="software-development" 5502 > 5503 Software Development </a> 5504 <a 5505 href="https://thenewstack.io/webassembly/" 5506 class="topics-nav-topic topic-webassembly" 5507 data-category-slug="webassembly" 5508 > 5509 WebAssembly </a> 5510 </div> 5511 <div class="col col-66 col-latest-stories"> 5512 <div class="topic-latest-stories topic-latest-stories-ai"> 5513 <div class="topics-latest-story"> 5514 <a href="/vulnerability-prioritization-business-context/" class="topics-nav-story"> 5515 AI keeps finding security flaws â hereâs what to fix first </a> 5516 <div class="byline"> 5517 <span class="date"> 5518 Sep 14th 2026 11:20am, by </span> 5519 5520 <span class="author"> 5521 <a href="https://thenewstack.io/author/megan-carnegie/" title="Posts by Megan Carnegie" class="author url fn" rel="author">Megan Carnegie</a> </span> 5522 </div> 5523 </div> 5524 <div class="topics-latest-story"> 5525 <a href="/cohere-north-translate-sovereignty/" class="topics-nav-story"> 5526 âMachine translation is still broken for most of the world's languagesâ: Cohere builds non-reasoning for a reason </a> 5527 <div class="byline"> 5528 <span class="date"> 5529 Sep 13th 2026 10:21am, by </span> 5530 5531 <span class="author"> 5532 <a href="https://thenewstack.io/author/adrian-bridgwater/" title="Posts by Adrian Bridgwater" class="author url fn" rel="author">Adrian Bridgwater</a> </span> 5533 </div> 5534 </div> 5535 <div class="topics-latest-story"> 5536 <a href="/openai-hires-git-ai/" class="topics-nav-story"> 5537 "Same mission, bigger stage": OpenAI hires Git AI founders to help Codex prove its ROI </a> 5538 <div class="byline"> 5539 <span class="date"> 5540 Sep 12th 2026 10:46am, by </span> 5541 5542 <span class="author"> 5543 <a href="https://thenewstack.io/author/paul-sawers/" title="Posts by Paul Sawers" class="author url fn" rel="author">Paul Sawers</a> </span> 5544 </div> 5545 </div> 5546 <div class="topics-latest-story"> 5547 <a href="/aws-pizza-bot-agent-inbox/" class="topics-nav-story"> 5548 AWS open-sources Pizza Bot: email-style inbox for background AI agents </a> 5549 <div class="byline"> 5550 <span class="date"> 5551 Sep 10th 2026 6:54pm, by </span> 5552 5553 <span class="author"> 5554 <a href="https://thenewstack.io/author/paul-sawers/" title="Posts by Paul Sawers" class="author url fn" rel="author">Paul Sawers</a> </span> 5555 </div> 5556 </div> 5557 <div class="topics-latest-story"> 5558 <a href="/salesforce-enterprise-ai-harness/" class="topics-nav-story"> 5559 "Six tools, one harness": Salesforce loops together a six-pack of favorites </a> 5560 <div class="byline"> 5561 <span class="date"> 5562 Sep 10th 2026 4:03pm, by </span> 5563 5564 <span class="author"> 5565 <a href="https://thenewstack.io/author/adrian-bridgwater/" title="Posts by Adrian Bridgwater" class="author url fn" rel="author">Adrian Bridgwater</a> </span> 5566 </div> 5567 </div> 5568 </div> 5569 <div class="topic-latest-stories topic-latest-stories-ai-engineering"> 5570 <div class="topics-latest-story"> 5571 <a href="/real-swe-coding-benchmark/" class="topics-nav-story"> 5572 AI's best coding agent fails 60% of the time â and the data backs it up </a> 5573 <div class="byline"> 5574 <span class="date"> 5575 Sep 14th 2026 6:22pm, by </span> 5576 5577 <span class="author"> 5578 <a href="https://thenewstack.io/author/amanda-caswell/" title="Posts by Amanda Caswell" class="author url fn" rel="author">Amanda Caswell</a> </span> 5579 </div> 5580 </div> 5581 <div class="topics-latest-story"> 5582 <a href="/llm-response-caching-costs/" class="topics-nav-story"> 5583 Why an old caching trick is your secret to lower LLM costs </a> 5584 <div class="byline"> 5585 <span class="date"> 5586 Sep 14th 2026 7:00am, by </span> 5587 5588 <span class="author"> 5589 <a href="https://thenewstack.io/author/abhilas
5589h-rao-mesala/" title="Posts by Abhilash Rao Mesala" class="author url fn" rel="author">Abhilash Rao Mesala</a> </span> 5590 </div> 5591 </div> 5592 <div class="topics-latest-story"> 5593 <a href="/pg-99-conf-2026-inference-costs/" class="topics-nav-story"> 5594 Chip Huyen explains how to cut inference costs without new hardware </a> 5595 <div class="byline"> 5596 <span class="date"> 5597 Sep 13th 2026 11:00am, by </span> 5598 5599 <span class="author"> 5600 <a href="https://thenewstack.io/author/tim-koopmans/" title="Posts by Tim Koopmans" class="author url fn" rel="author">Tim Koopmans</a> </span> 5601 </div> 5602 </div> 5603 <div class="topics-latest-story"> 5604 <a href="/ai-agent-trace-debugging/" class="topics-nav-story"> 5605 It passed CI. It passed your evals. The customer still got the wrong answer. </a> 5606 <div class="byline"> 5607 <span class="date"> 5608 Sep 13th 2026 10:00am, by </span> 5609 5610 <span class="author"> 5611 <a href="https://thenewstack.io/author/seanodell/" title="Posts by Sean OâDell" class="author url fn" rel="author">Sean OâDell</a> </span> 5612 </div> 5613 </div> 5614 <div class="topics-latest-story"> 5615 <a href="/spec-driven-sdlc-gates/" class="topics-nav-story"> 5616 The AI-native SDLC won't be one process </a> 5617 <div class="byline"> 5618 <span class="date"> 5619 Sep 12th 2026 10:00am, by </span> 5620 5621 <span class="author"> 5622 <a href="https://thenewstack.io/author/anirudh-ramanathan/" title="Posts by Anirudh Ramanathan" class="author url fn" rel="author">Anirudh Ramanathan</a> </span> 5623 </div> 5624 </div> 5625 </div> 5626 <div class="topic-latest-stories topic-latest-stories-api-management"> 5627 <div class="topics-latest-story"> 5628 <a href="/anthropic-files-api-costs/" class="topics-nav-story"> 5629 Anthropic's new Files API vs. pasting: It will save you time, but it wonât save you money. </a> 5630 <div class="byline"> 5631 <span class="date"> 5632 Aug 27th 2026 9:00am, by </span> 5633 5634 <span class="author"> 5635 <a href="https://thenewstack.io/author/jessica-wachtel/" title="Posts by Jessica Wachtel" class="author url fn" rel="author">Jessica Wachtel</a> </span> 5636 </div> 5637 </div> 5638 <div class="topics-latest-story"> 5639 <a href="/mistral-third-party-open-models/" class="topics-nav-story"> 5640 Five European companies just agreed to buy AI compute that doesn't exist yet </a> 5641 <div class="byline"> 5642 <span class="date"> 5643 Aug 13th 2026 10:31am, by </span> 5644 5645 <span class="author"> 5646 <a href="https://thenewstack.io/author/amanda-caswell/" title="Posts by Amanda Caswell" class="author url fn" rel="author">Amanda Caswell</a> </span> 5647 </div> 5648 </div> 5649 <div class="topics-latest-story"> 5650 <a href="/designing-apis-for-agents/" class="topics-nav-story"> 5651 Designing APIs for agents </a> 5652 <div class="byline"> 5653 <span class="date"> 5654 Aug 1st 2026 10:00am, by </span> 5655 5656 <span class="author"> 5657 <a href="https://thenewstack.io/author/yan-xie/" title="Posts by Yan Xie" class="author url fn" rel="author">Yan Xie</a>, <a href="https://thenewstack.io/author/virat-patel/" title="Posts by Virat Patel" class="author url fn" rel="author">Virat Patel</a> and <a href="https://thenewstack.io/author/albert-chang/" title="Posts by Albert Chang" class="author url fn" rel="author">Albert Chang</a> </span> 5658 </div> 5659 </div> 5660 <div class="topics-latest-story"> 5661 <a href="/gpt-5-6-api-price-cuts/" class="topics-nav-story"> 5662 OpenAI slashes API costs amid rising global competition </a> 5663 <div class="byline"> 5664 <span class="date"> 5665 Jul 30th 2026 3:28pm, by </span> 5666 5667 <span class="author"> 5668 <a href="https://thenewstack.io/author/amanda-caswell/" title="Posts by Amanda Caswell" class="author url fn" rel="author">Amanda Caswell</a> </span> 5669 </div> 5670 </div> 5671 <div class="topics-latest-story"> 5672 <a href="/mcp-release-candidate-rewrite/" class="topics-nav-story"> 5673 MCPâs biggest update removes the machinery many servers were built around </a> 5674 <div class="byline"> 5675 <span class="date"> 5676 Jul 26th 2026 12:00pm, by </span> 5677 5678 <span class="author"> 5679 <a href="https://thenewstack.io/author/janakiram/" title="Posts by Janakiram MSV" class="author url fn" rel="author">Janakiram MSV</a> </span> 5680 </div> 5681 </div> 5682 </div> 5683 <div class="topic-latest-stories topic-latest-stories-backend-development"> 5684 <div class="topics-latest-story">
5685 <a href="/vespa-realtime-personalization-ranking/" class="topics-nav-story"> 5686 Personalization is a ranking problem â architecture makes it work </a> 5687 <div class="byline"> 5688 <span class="date"> 5689 Jul 23rd 2026 12:00pm, by </span> 5690 5691 <span class="author"> 5692 <a href="https://thenewstack.io/author/jenny-morris/" title="Posts by Jenny Morris" class="author url fn" rel="author">Jenny Morris</a> </span> 5693 </div> 5694 </div> 5695 <div class="topics-latest-story"> 5696 <a href="/production-rag-architecture-fixes/" class="topics-nav-story"> 5697 Can prompt caching tame RAG costs without sacrificing accuracy? </a> 5698 <div class="byline"> 5699 <span class="date"> 5700 Jul 23rd 2026 9:00am, by </span> 5701 5702 <span class="author"> 5703 <a href="https://thenewstack.io/author/emmanuel-akita/" title="Posts by Emmanuel Akita" class="author url fn" rel="author">Emmanuel Akita</a> </span> 5704 </div> 5705 </div> 5706 <div class="topics-latest-story"> 5707 <a href="/async-processing-hides-latency/" class="topics-nav-story"> 5708 How async processing hides latency and improves responsiveness </a> 5709 <div class="byline"> 5710 <span class="date"> 5711 Jul 12th 2026 1:00pm, by </span> 5712 5713 <span class="author"> 5714 <a href="https://thenewstack.io/author/pekka-enberg/" title="Posts by Pekka Enberg" class="author url fn" rel="author">Pekka Enberg</a> </span> 5715 </div> 5716 </div> 5717 <div class="topics-latest-story"> 5718 <a href="/php-performance-operational-planning/" class="topics-nav-story"> 5719 Why PHP performance keeps getting bumped from the roadmap </a> 5720 <div class="byline"> 5721 <span class="date"> 5722 May 6th 2026 10:00am, by </span> 5723 5724 <span class="author"> 5725 <a href="https://thenewstack.io/author/matthew-weier-ophinney/" title="Posts by Matthew Weier OâPhinney" class="author url fn" rel="author">Matthew Weier OâPhinney</a> </span> 5726 </div> 5727 </div> 5728 <div class="topics-latest-story"> 5729 <a href="/postgres-nvme-s3-storage/" class="topics-nav-story"> 5730 Why Postgres wants NVMe on the hot path, and S3 everywhere else </a> 5731 <div class="byline"> 5732 <span class="date"> 5733 Apr 17th 2026 9:00am, by </span> 5734 5735 <span class="author"> 5736 <a href="https://thenewstack.io/author/alasdair-brown/" title="Posts by Alasdair Brown" class="author url fn" rel="author">Alasdair Brown</a> </span> 5737 </div> 5738 </div> 5739 </div> 5740 <div class="topic-latest-stories topic-latest-stories-data"> 5741 <div class="topics-latest-story"> 5742 <a href="/salesforce-enterprise-ai-harness/" class="topics-nav-story"> 5743 "Six tools, one harness": Salesforce loops together a six-pack of favorites </a> 5744 <div class="byline"> 5745 <span class="date"> 5746 Sep 10th 2026 4:03pm, by </span> 5747 5748 <span class="author"> 5749 <a href="https://thenewstack.io/author/adrian-bridgwater/" title="Posts by Adrian Bridgwater" class="author url fn" rel="author">Adrian Bridgwater</a> </span> 5750 </div> 5751 </div> 5752 <div class="topics-latest-story"> 5753 <a href="/polars-streaming-row-order/" class="topics-nav-story"> 5754 Polars 2.0 pre-release comes with a 5x speed boost â but it could change row order </a> 5755 <div class="byline"> 5756 <span class="date"> 5757 Sep 6th 2026 9:30am, by </span> 5758 5759 <span class="author"> 5760 <a href="https://thenewstack.io/author/mshubel/" title="Posts by Meredith Shubel" class="author url fn" rel="author">Meredith Shubel</a> </span> 5761 </div> 5762 </div> 5763 <div class="topics-latest-story"> 5764 <a href="/google-timesfm-3-multivariate-forecasting/" class="topics-nav-story"> 5765 Google's new forecasting model beats everyone. You can't use it at work (yet). </a> 5766 <div class="byline"> 5767 <span class="date"> 5768 Aug 31st 2026 3:41pm, by </span> 5769 5770 <span class="author"> 5771 <a href="https://thenewstack.io/author/frederic-lardinois/" title="Posts by Frederic Lardinois" class="author url fn" rel="author">Frederic Lardinois</a> </span> 5772 </div> 5773 </div> 5774 <div class="topics-latest-story"> 5775 <a href="/opentelemetry-observability-telemetry-storage/" class="topics-nav-story"> 5776 Observability has a data problem. AI is about to make it worse. </a> 5777 <div class="byline"> 5778 <span class="date"> 5779 Aug 26th 2026 4:08pm, by </span> 5780 5781 <span class="author"> 5782 <a href="https://thenewstack.io/author/will-kelly/" title="Posts by Will Kelly" class="author url fn" rel="author">Will Kelly</a> </span> 5783 </div> 5784 </div> 5785 <div class="topics-latest-story"> 5786 <a href="/modus-enterprise-context-warehouse/" class="topics-nav-story"> 5787 Modus's operandi: To give AI agents just the right amount of context </a> 5788 <div class="byline"> 5789 <span class="date"> 5790 Jul 29th 2026 9:00am, by </span> 5791 5792 <span class="author"> 5793 <a href="https://thenewstack.io/author/paul-sawers/" title="Posts by Paul Sawers" class="author url fn" rel="author">Paul Sawers</a> </span> 5794 </div> 5795 </div> 5796 </div> 5797 <div class="topic-latest-stories topic-latest-stories-frontend-development"> 5798 <div class="topics-latest-story"> 5799 <a href="/runway-solaris-generated-interfaces/" class="topics-nav-story"> 5800 Runway wants to generate software as you use it. Solaris is its first step. </a> 5801 <div class="byline"> 5802 <span class="date"> 5803 Sep 1st 2026 3:44pm, by </span> 5804 5805 <span class="author"> 5806 <a href="https://thenewstack.io/author/mshubel/" title="Posts by Meredith Shubel" class="author url fn" rel="author">Meredith Shubel</a> </span> 5807 </div> 5808 </div> 5809 <div class="topics-latest-story"> 5810 <a href="/cloudflare-astro-triage-bot/" class="topics-nav-story"> 5811 Astro's GitHub issue backlog is heading to zero for the first time in 5 years. Now Cloudflare is open-sourcing the tool that did it. </a> 5812 <div class="byline"> 5813 <span class="date"> 5814 Aug 4th 2026 9:00am, by </span> 5815 5816 <span class="author"> 5817 <a href="https://thenewstack.io/author/paul-sawers/" title="Posts by Paul Sawers" class="author url fn" rel="author">Paul Sawers</a> </span> 5818 </div> 5819 </div> 5820 <div class="topics-latest-story"> 5821 <a href="/fedcm-federated-login-standard/" class="topics-nav-story"> 5822 Your social login buttons run on third-party cookies. FedCM doesn't. </a> 5823 <div class="byline"> 5824 <span class="date"> 5825 Jul 2nd 2026 10:00am, by </span> 5826 5827 <span class="author"> 5828 <a href="https://thenewstack.io/author/jeff-hickman/" title="Posts by Jeff Hickman" class="author url fn" rel="author">Jeff Hickman</a> </span> 5829 </div> 5830 </div> 5831 <div class="topics-latest-story"> 5832 <a href="/anthropic-claude-design-overhaul/" class="topics-nav-story"> 5833 Anthropic overhauled Claude Design to fix the handoff. A designer and an engineer disagree on whether it worked. </a> 5834 <div class="byline"> 5835 <span class="date"> 5836 Jun 19th 2026 9:35am, by </span> 5837 5838 <span class="author"> 5839 <a href="https://thenewstack.io/author/mshubel/" title="Posts by Meredith Shubel" class="author url fn" rel="author">Meredith Shubel</a> </span> 5840 </div> 5841 </div> 5842 <div class="topics-latest-story"> 5843 <a href="/google-agent-ready-web/" class="topics-nav-story"> 5844 Google wants to make the web agent-ready </a> 5845 <div class="byline"> 5846 <span class="date"> 5847 May 19th 2026 1:45pm, by </span> 5848 5849 <span class="author"> 5850 <a href="https://thenewstack.io/author/frederic-lardinois/" title="Posts by Frederic Lardinois" class="author url fn" rel="author">Frederic Lardinois</a> </span> 5851 </div> 5852 </div> 5853 </div> 5854 <div class="topic-latest-stories topic-latest-stories-llm"> 5855 <div class="topics-latest-story"> 5856 <a href="/openrouter-us-region-routing/" class="topics-nav-story"> 5857 Chinese AI models dominate OpenRouter's US token consumption. It can now guarantee that traffic stays entirely in the US. </a> 5858 <div class="byline"> 5859 <span class="date"> 5860 Sep 14th 2026 9:59am, by </span> 5861 5862 <span class="author"> 5863 <a href="https://thenewstack.io/author/paul-sawers/" title="Posts by Paul Sawers" class="author url fn" rel="author">Paul Sawers</a> </span> 5864 </div> 5865 </div> 5866 <div class="topics-latest-story"> 5867 <a href="/cohere-north-translate-sovereignty/" class="topics-nav-story"> 5868 âMachine translation is still broken for most of the world's languagesâ: Cohere builds non-reasoning for a reason </a> 5869 <div class="byline"> 5870 <span class="date"> 5871 Sep 13th 2026 10:21am, by </span> 5872 5873 <span class="author"> 5874 <a href="https://thenewstack.io/author/adrian-bridgwater/" title="Posts by Adrian Bridgwater" class="author url fn" rel="author">Adrian Bridgwater</a> </span> 5875 </div> 5876 </div> 5877 <div class="topics-latest-story"> 5878 <a href="/gpt-live-1-voice-api/" class="topics-nav-story"> 5879 OpenAI split a voice model's brain. Then one team deleted 23,000 lines of code. </a> 5880 <div class="byline"> 5881 <span class="date">
5882 Sep 10th 2026 4:08pm, by </span> 5883 5884 <span class="author"> 5885 <a href="https://thenewstack.io/author/amanda-caswell/" title="Posts by Amanda Caswell" class="author url fn" rel="author">Amanda Caswell</a> </span> 5886 </div> 5887 </div> 5888 <div class="topics-latest-story"> 5889 <a href="/claude-fable-benchmark-budget/" class="topics-nav-story"> 5890 Fable 5.1 vs. Fable 5: Results on a real-world budget, not the spec sheet </a> 5891 <div class="byline"> 5892 <span class="date"> 5893 Sep 10th 2026 10:00am, by </span> 5894 5895 <span class="author"> 5896 <a href="https://thenewstack.io/author/jessica-wachtel/" title="Posts by Jessica Wachtel" class="author url fn" rel="author">Jessica Wachtel</a> </span> 5897 </div> 5898 </div> 5899 <div class="topics-latest-story"> 5900 <a href="/claude-build-agents-benchmark/" class="topics-nav-story"> 5901 Claude performed best on a new benchmark for 'agents that build agents'. But it passed fewer than a quarter of the tests. </a> 5902 <div class="byline"> 5903 <span class="date"> 5904 Sep 9th 2026 4:14pm, by </span> 5905 5906 <span class="author"> 5907 <a href="https://thenewstack.io/author/paul-sawers/" title="Posts by Paul Sawers" class="author url fn" rel="author">Paul Sawers</a> </span> 5908 </div> 5909 </div> 5910 </div> 5911 <div class="topic-latest-stories topic-latest-stories-security"> 5912 <div class="topics-latest-story"> 5913 <a href="/vulnerability-prioritization-business-context/" class="topics-nav-story"> 5914 AI keeps finding security flaws â hereâs what to fix first </a> 5915 <div class="byline"> 5916 <span class="date"> 5917 Sep 14th 2026 11:20am, by </span> 5918 5919 <span class="author"> 5920 <a href="https://thenewstack.io/author/megan-carnegie/" title="Posts by Megan Carnegie" class="author url fn" rel="author">Megan Carnegie</a> </span> 5921 </div> 5922 </div> 5923 <div class="topics-latest-story"> 5924 <a href="/mcp-security-permissions-overhaul/" class="topics-nav-story"> 5925 Why MCP security is about permissions overhaul </a> 5926 <div class="byline"> 5927 <span class="date"> 5928 Sep 12th 2026 11:00am, by </span> 5929 5930 <span class="author"> 5931 <a href="https://thenewstack.io/author/mohit-bansal/" title="Posts by Mohit Bansal" class="author url fn" rel="author">Mohit Bansal</a> and <a href="https://thenewstack.io/author/topher-chung/" title="Posts by Topher Chung" class="author url fn" rel="author">Topher Chung</a> </span> 5932 </div> 5933 </div> 5934 <div class="topics-latest-story"> 5935 <a href="/coxon-anthropic-ai-monitoring-failures/" class="topics-nav-story"> 5936 Jacob Coxon warns AI could kill us all. Anthropicâs own report exposes safety gaps. </a> 5937 <div class="byline"> 5938 <span class="date"> 5939 Sep 12th 2026 7:00am, by </span> 5940 5941 <span class="author"> 5942 <a href="https://thenewstack.io/author/matthew-burns/" title="Posts by Matthew Burns" class="author url fn" rel="author">Matthew Burns</a> </span> 5943 </div> 5944 </div> 5945 <div class="topics-latest-story"> 5946 <a href="/anthropic-claude-cyber-alignment/" class="topics-nav-story"> 5947 âValuable warning shotsâ: How Anthropic now views Claudeâs cyber incidents </a> 5948 <div class="byline"> 5949 <span class="date"> 5950 Sep 10th 2026 3:54pm, by </span> 5951 5952 <span class="author"> 5953 <a href="https://thenewstack.io/author/mshubel/" title="Posts by Meredith Shubel" class="author url fn" rel="author">Meredith Shubel</a> </span> 5954 </div> 5955 </div> 5956 <div class="topics-latest-story"> 5957 <a href="/mcp-vibe-coding-security/" class="topics-nav-story"> 5958 Researchers found that 1 in 5 MCP access policies came back broken or missing </a> 5959 <div class="byline"> 5960 <span class="date">
5961 Sep 10th 2026 11:00am, by </span> 5962 5963 <span class="author"> 5964 <a href="https://thenewstack.io/author/shawn-petty/" title="Posts by Shawn Petty" class="author url fn" rel="author">Shawn Petty</a> </span> 5965 </div> 5966 </div> 5967 </div> 5968 <div class="topic-latest-stories topic-latest-stories-software-development"> 5969 <div class="topics-latest-story"> 5970 <a href="/ai-coding-duplication-rose/" class="topics-nav-story"> 5971 Your AI coding spend bought 25% more output. Duplication rose 81%. </a> 5972 <div class="byline"> 5973 <span class="date"> 5974 Sep 14th 2026 10:39am, by </span> 5975 5976 <span class="author"> 5977 <a href="https://thenewstack.io/author/steve-fenton/" title="Posts by Steve Fenton" class="author url fn" rel="author">Steve Fenton</a> </span> 5978 </div> 5979 </div> 5980 <div class="topics-latest-story"> 5981 <a href="/openai-slowing-ai-development/" class="topics-nav-story"> 5982 OpenAI's safety system is already cutting off API responses mid-task </a> 5983 <div class="byline"> 5984 <span class="date"> 5985 Sep 11th 2026 1:52pm, by </span> 5986 5987 <span class="author"> 5988 <a href="https://thenewstack.io/author/amanda-caswell/" title="Posts by Amanda Caswell" class="author url fn" rel="author">Amanda Caswell</a> </span> 5989 </div> 5990 </div> 5991 <div class="topics-latest-story"> 5992 <a href="/shopify-native-ai-agents/" class="topics-nav-story"> 5993 Shopify spent years on React Native â then rebuilt everything in 12 weeks </a> 5994 <div class="byline"> 5995 <span class="date"> 5996 Sep 10th 2026 3:46pm, by </span> 5997 5998 <span class="author"> 5999 <a href="https://thenewstack.io/author/amanda-caswell/" title="Posts by Amanda Caswell" class="author url fn" rel="author">Amanda Caswell</a> </span> 6000 </div> 6001 </div> 6002 <div class="topics-latest-story"> 6003 <a href="/openai-ai-code-review/" class="topics-nav-story"> 6004 OpenAI gave an AI the power to block its own engineers' code </a> 6005 <div class="byline"> 6006 <span class="date"> 6007 Sep 9th 2026 3:53pm, by </span> 6008 6009 <span class="author"> 6010 <a href="https://thenewstack.io/author/amanda-caswell/" title="Posts by Amanda Caswell" class="author url fn" rel="author">Amanda Caswell</a> </span> 6011 </div> 6012 </div> 6013 <div class="topics-latest-story"> 6014 <a href="/anthropic-claude-max-lawsuit/" class="topics-nav-story"> 6015 Anthropic promised 20x more usage. Then developers hit a weekly ceiling. </a> 6016 <div class="byline"> 6017 <span class="date"> 6018 Sep 8th 2026 6:16pm, by </span> 6019 6020 <span class="author"> 6021 <a href="https://thenewstack.io/author/amanda-caswell/" title="Posts by Amanda Caswell" class="author url fn" rel="author">Amanda Caswell</a> </span> 6022 </div> 6023 </div> 6024 </div> 6025 <div class="topic-latest-stories topic-latest-stories-webassembly"> 6026 <div class="topics-latest-story"> 6027 <a href="/akamai-edge-ai-inference/" class="topics-nav-story"> 6028 Edge-forward: Akamai eyes sweet spot between centralized & decentralized AI inference </a> 6029 <div class="byline"> 6030 <span class="date"> 6031 Apr 1st 2026 7:00am, by </span> 6032 6033 <span class="author"> 6034 <a href="https://thenewstack.io/author/adrian-bridgwater/" title="Posts by Adrian Bridgwater" class="author url fn" rel="author">Adrian Bridgwater</a> </span> 6035 </div> 6036 </div> 6037 <div class="topics-latest-story"> 6038 <a href="/webassembly-component-model-future/" class="topics-nav-story"> 6039 WebAssembly is now outperforming containers at the edge </a> 6040 <div class="byline"> 6041 <span class="date"> 6042 Mar 29th 2026 9:00am, by </span> 6043 6044 <span class="author"> 6045 <a href="https://thenewstack.io/author/bruce-gain/" title="Posts by B. Cameron Gain" class="author url fn" rel="author">B. Cameron Gain</a> </span> 6046 </div> 6047 </div> 6048 <div class="topics-latest-story"> 6049 <a href="/webassembly-sandboxing-ai-agents/" class="topics-nav-story"> 6050 WebAssembly could solve AI agents' most dangerous security gap </a> 6051 <div class="byline"> 6052 <span class="date"> 6053 Mar 24th 2026 9:01am, by </span> 6054 6055 <span class="author"> 6056 <a href="https://thenewstack.io/author/bruce-gain/" title="Posts by B. Cameron Gain" class="author url fn" rel="author">B. Cameron Gain</a> </span> 6057 </div> 6058 </div> 6059 <div class="topics-latest-story"> 6060 <a href="/how-webassembly-plugins-simplify-kubernetes-extensibility/" class="topics-nav-story"> 6061 How WebAssembly plugins simplify Kubernetes extensibility </a> 6062 <div class="byline"> 6063 <span class="date"> 6064 Mar 3rd 2026 2:00pm, by </span> 6065 6066 <span class="author"> 6067 <a href="https://thenewstack.io/author/bruce-gain/" title="Posts by B. Cameron Gain" class="author url fn" rel="author">B. Cameron Gain</a> </span> 6068 </div> 6069 </div> 6070 <div class="topics-latest-story"> 6071 <a href="/webassembly-is-everywhere-heres-how-it-works/" class="topics-nav-story"> 6072 WebAssembly is everywhere. Here's how it works </a> 6073 <div class="byline"> 6074 <span class="date"> 6075 Feb 25th 2026 11:00am, by </span> 6076 6077 <span class="author"> 6078 <a href="https://thenewstack.io/author/jessica-wachtel/" title="Posts by Jessica Wachtel" class="author url fn" rel="author">Jessica Wachtel</a> </span> 6079 </div> 6080 </div> 6081 </div> 6082 </div> 6083 </div> 6084 6085 <div class="content content-operations row"> 6086 <div class="col col-33 col-topics"> 6087 <a 6088 href="https://thenewstack.io/ai-operations/" 6089 class="topics-nav-topic topic-ai-operations" 6090 data-category-slug="ai-operations" 6091 > 6092 AI Operations </a> 6093 <a 6094 href="https://thenewstack.io/ci-cd/" 6095 class="topics-nav-topic topic-ci-cd" 6096 data-category-slug="ci-cd" 6097 > 6098 CI/CD </a> 6099 <a 6100 href="https://thenewstack.io/cloud-services/" 6101 class="topics-nav-topic topic-cloud-services" 6102 data-category-slug="cloud-services" 6103 > 6104 Cloud Services </a> 6105 <a 6106 href="https://thenewstack.io/devops/" 6107 class="topics-nav-topic topic-devops" 6108 data-category-slug="devops" 6109 > 6110 DevOps </a> 6111 <a 6112 href="https://thenewstack.io/kubernetes/" 6113 class="topics-nav-topic topic-kubernetes" 6114 data-category-slug="kubernetes" 6115 > 6116 Kubernetes </a> 6117 <a 6118 href="https://thenewstack.io/observability/" 6119 class="topics-nav-topic topic-observability" 6120 data-category-slug="observability" 6121 > 6122 Observability </a> 6123 <a 6124 href="https://thenewstack.io/operations/" 6125 class="topics-nav-topic topic-operations" 6126 data-category-slug="operations" 6127 > 6128 Operations </a> 6129 <a 6130 href="https://thenewstack.io/platform-engineering/" 6131 class="topics-nav-topic topic-platform-engineering" 6132 data-category-slug="platform-engineering" 6133 > 6134 Platform Engineering </a> 6135 </div> 6136 <div class="col col-66 col-latest-stories"> 6137 <div class="topic-latest-stories topic-latest-stories-ai-operations"> 6138 <div class="topics-latest-story"> 6139 <a href="/ai-coding-duplication-rose/" class="topics-nav-story"> 6140 Your AI coding spend bought 25% more output. Duplication rose 81%. </a> 6141 <div class="byline"> 6142 <span class="date"> 6143 Sep 14th 2026 10:39am, by </span> 6144 6145 <span class="author"> 6146 Steve Fenton </span> 6147 </div> 6148 </div> 6149 <div class="topics-latest-story"> 6150 <a href="/red-hat-ai-multitenancy/" class="topics-nav-story"> 6151 Red Hat AI 3.5 tackles the GPU queue that can stall AI pilots </a> 6152 <div class="byline"> 6153 <span class="date">
6154 Sep 10th 2026 1:01pm, by </span> 6155 6156 <span class="author"> 6157 Adrian Bridgwater </span> 6158 </div> 6159 </div> 6160 <div class="topics-latest-story"> 6161 <a href="/nvidia-palantir-ai-supply-chain/" class="topics-nav-story"> 6162 Nvidia and Palantir fine-tune a 30B Nemotron model for Nvidia's supply chain. It beats a model 18 times its size. </a> 6163 <div class="byline"> 6164 <span class="date"> 6165 Sep 10th 2026 5:00am, by </span> 6166 6167 <span class="author"> 6168 Paul Sawers </span> 6169 </div> 6170 </div> 6171 <div class="topics-latest-story"> 6172 <a href="/ai-agents-soc-autonomy/" class="topics-nav-story"> 6173 How much control should AI get? A CISO roundtable takes on SOC autonomy </a> 6174 <div class="byline"> 6175 <span class="date"> 6176 Sep 9th 2026 11:38am, by </span> 6177 6178 <span class="author"> 6179 Carly Page </span> 6180 </div> 6181 </div> 6182 <div class="topics-latest-story"> 6183 <a href="/deepseek-dsec-agent-hiring/" class="topics-nav-story"> 6184 DeepSeek is hiring 150 engineers, and none of them will touch a model </a> 6185 <div class="byline"> 6186 <span class="date"> 6187 Sep 8th 2026 3:01pm, by </span> 6188 6189 <span class="author"> 6190 Amanda Caswell </span> 6191 </div> 6192 </div> 6193 </div> 6194 <div class="topic-latest-stories topic-latest-stories-ci-cd"> 6195 <div class="topics-latest-story"> 6196 <a href="/stop-ai-code-sprawl/" class="topics-nav-story"> 6197 Stop AI code sprawl before it destroys your software design </a> 6198 <div class="byline"> 6199 <span class="date"> 6200 Sep 10th 2026 8:30am, by </span> 6201 6202 <span class="author"> 6203 Emmanuel Akita </span> 6204 </div> 6205 </div> 6206 <div class="topics-latest-story"> 6207 <a href="/ai-code-review-pipelines/" class="topics-nav-story"> 6208 AI broke code review. Two experts disagree on what replaces it. </a> 6209 <div class="byline"> 6210 <span class="date"> 6211 Sep 8th 2026 11:35am, by </span> 6212 6213 <span class="author"> 6214 TNS Staff </span> 6215 </div> 6216 </div> 6217 <div class="topics-latest-story"> 6218 <a href="/shai-hulud-pipeline-security/" class="topics-nav-story"> 6219 Shai-Hulud: Whoever controls your package registry controls your pipeline </a> 6220 <div class="byline"> 6221 <span class="date"> 6222 Aug 31st 2026 12:00pm, by </span> 6223 6224 <span class="author"> 6225 Zeen Rachidi </span> 6226 </div> 6227 </div> 6228 <div class="topics-latest-story"> 6229 <a href="/jetbrains-told-everyone-to-patch-it-didnt-patch-itself/" class="topics-nav-story"> 6230 JetBrains told everyone to patch. It didn't patch itself. </a> 6231 <div class="byline"> 6232 <span class="date"> 6233 Aug 28th 2026 4:51pm, by </span> 6234 6235 <span class="author"> 6236 Amanda Caswell </span> 6237 </div> 6238 </div> 6239 <div class="topics-latest-story"> 6240 <a href="/npm-supply-chain-worm-attack/" class="topics-nav-story"> 6241 The npm attack that turned provenance attestations into camouflage </a> 6242 <div class="byline"> 6243 <span class="date">
6244 Aug 7th 2026 2:31pm, by </span> 6245 6246 <span class="author"> 6247 Amanda Caswell </span> 6248 </div> 6249 </div> 6250 </div> 6251 <div class="topic-latest-stories topic-latest-stories-cloud-services"> 6252 <div class="topics-latest-story"> 6253 <a href="/vulnerability-prioritization-business-context/" class="topics-nav-story"> 6254 AI keeps finding security flaws â hereâs what to fix first </a> 6255 <div class="byline"> 6256 <span class="date"> 6257 Sep 14th 2026 11:20am, by </span> 6258 6259 <span class="author"> 6260 Megan Carnegie </span> 6261 </div> 6262 </div> 6263 <div class="topics-latest-story"> 6264 <a href="/openai-agents-api-compute/" class="topics-nav-story"> 6265 OpenAIâs researchers burned $7,000 a day on AI agents â now itâs opening the floodgates </a> 6266 <div class="byline"> 6267 <span class="date"> 6268 Sep 11th 2026 5:27pm, by </span> 6269 6270 <span class="author"> 6271 Amanda Caswell </span> 6272 </div> 6273 </div> 6274 <div class="topics-latest-story"> 6275 <a href="/ard-agent-discovery-specification/" class="topics-nav-story"> 6276 MCP was supposed to solve the agent tooling problem. It missed a step. </a> 6277 <div class="byline"> 6278 <span class="date"> 6279 Aug 31st 2026 4:04pm, by </span> 6280 6281 <span class="author"> 6282 Amanda Caswell </span> 6283 </div> 6284 </div> 6285 <div class="topics-latest-story"> 6286 <a href="/jetbrains-told-everyone-to-patch-it-didnt-patch-itself/" class="topics-nav-story"> 6287 JetBrains told everyone to patch. It didn't patch itself. </a> 6288 <div class="byline"> 6289 <span class="date"> 6290 Aug 28th 2026 4:51pm, by </span> 6291 6292 <span class="author"> 6293 Amanda Caswell </span> 6294 </div> 6295 </div> 6296 <div class="topics-latest-story"> 6297 <a href="/mistral-mcp-connector-migration/" class="topics-nav-story"> 6298 What happens to your indexed data when Mistral flips the switch? </a> 6299 <div class="byline"> 6300 <span class="date"> 6301 Aug 18th 2026 4:07pm, by </span> 6302 6303 <span class="author"> 6304 Amanda Caswell </span> 6305 </div> 6306 </div> 6307 </div> 6308 <div class="topic-latest-stories topic-latest-stories-devops"> 6309 <div class="topics-latest-story"> 6310 <a href="/spec-driven-sdlc-gates/" class="topics-nav-story"> 6311 The AI-native SDLC won't be one process </a> 6312 <div class="byline"> 6313 <span class="date"> 6314 Sep 12th 2026 10:00am, by </span> 6315 6316 <span class="author"> 6317 Anirudh Ramanathan </span> 6318 </div> 6319 </div> 6320 <div class="topics-latest-story"> 6321 <a href="/harness-ai-code-review/" class="topics-nav-story"> 6322 Harness rebuilt its Git repository for nonstop AI agent traffic </a> 6323 <div class="byline"> 6324 <span class="date"> 6325 Sep 9th 2026 7:00am, by </span> 6326 6327 <span class="author"> 6328 Frederic Lardinois </span> 6329 </div> 6330 </div> 6331 <div class="topics-latest-story"> 6332 <a href="/ai-code-review-pipelines/" class="topics-nav-story"> 6333 AI broke code review. Two experts disagree on what replaces it. </a> 6334 <div class="byline"> 6335 <span class="date"> 6336 Sep 8th 2026 11:35am, by </span> 6337 6338 <span class="author"> 6339 TNS Staff </span> 6340 </div> 6341 </div> 6342 <div class="topics-latest-story"> 6343 <a href="/amazon-ecs-express-mode/" class="topics-nav-story"> 6344 Your container runs. Everything around it shouldn't be your problem. </a> 6345 <div class="byline"> 6346 <span class="date"> 6347 Aug 29th 2026 11:00am, by </span> 6348 6349 <span class="author"> 6350 Satej Sawant </span> 6351 </div> 6352 </div> 6353 <div class="topics-latest-story"> 6354 <a href="/ai-coding-agent-security/" class="topics-nav-story"> 6355 One pull to wipe them all </a> 6356 <div class="byline"> 6357 <span class="date">
6358 Aug 23rd 2026 10:00am, by </span> 6359 6360 <span class="author"> 6361 Zeen Rachidi </span> 6362 </div> 6363 </div> 6364 </div> 6365 <div class="topic-latest-stories topic-latest-stories-kubernetes"> 6366 <div class="topics-latest-story"> 6367 <a href="/kubecon-kubernetes-updates-security/" class="topics-nav-story"> 6368 Kubernetes v1.37 brings 67 enhancements. Which matter for operators? </a> 6369 <div class="byline"> 6370 <span class="date"> 6371 Sep 11th 2026 1:40pm, by </span> 6372 6373 <span class="author"> 6374 Bill Doerrfeld </span> 6375 </div> 6376 </div> 6377 <div class="topics-latest-story"> 6378 <a href="/cut-gpu-cold-starts/" class="topics-nav-story"> 6379 Cut GPU inference cold start from 8 minutes to less than a minute </a> 6380 <div class="byline"> 6381 <span class="date"> 6382 Sep 3rd 2026 2:30pm, by </span> 6383 6384 <span class="author"> 6385 Sajjan Gundapuneedi </span> 6386 </div> 6387 </div> 6388 <div class="topics-latest-story"> 6389 <a href="/edge-kubernetes-fleet-management/" class="topics-nav-story"> 6390 Kubernetes at the edge has hit a wall. Fleet management is the way through. </a> 6391 <div class="byline"> 6392 <span class="date"> 6393 Aug 20th 2026 9:00am, by </span> 6394 6395 <span class="author"> 6396 Arvind Bhoj and Aarthi Mahesh </span> 6397 </div> 6398 </div> 6399 <div class="topics-latest-story"> 6400 <a href="/kubernetes-fleet-security-management/" class="topics-nav-story"> 6401 AWS deprecated this EKS auth method. 81% of clusters still run it. </a> 6402 <div class="byline"> 6403 <span class="date"> 6404 Aug 19th 2026 2:59pm, by </span> 6405 6406 <span class="author"> 6407 Yannick Struyf and Aarthi Mahesh </span> 6408 </div> 6409 </div> 6410 <div class="topics-latest-story"> 6411 <a href="/accelerating-eks-image-pulls/" class="topics-nav-story"> 6412 Pulling multi-gigabyte container images in seconds on Amazon EKS </a> 6413 <div class="byline"> 6414 <span class="date"> 6415 Aug 10th 2026 12:00pm, by </span> 6416 6417 <span class="author"> 6418 Sri Saran Balaji Vellore Rajakumar and Neelendra Bhandari </span> 6419 </div> 6420 </div> 6421 </div> 6422 <div class="topic-latest-stories topic-latest-stories-observability"> 6423 <div class="topics-latest-story"> 6424 <a href="/ai-agent-trace-debugging/" class="topics-nav-story"> 6425 It passed CI. It passed your evals. The customer still got the wrong answer. </a> 6426 <div class="byline"> 6427 <span class="date"> 6428 Sep 13th 2026 10:00am, by </span> 6429 6430 <span class="author"> 6431 Sean OâDell </span> 6432 </div> 6433 </div> 6434 <div class="topics-latest-story"> 6435 <a href="/coxon-anthropic-ai-monitoring-failures/" class="topics-nav-story"> 6436 Jacob Coxon warns AI could kill us all. Anthropicâs own report exposes safety gaps. </a> 6437 <div class="byline"> 6438 <span class="date"> 6439 Sep 12th 2026 7:00am, by </span> 6440 6441 <span class="author"> 6442 Matthew Burns </span> 6443 </div> 6444 </div> 6445 <div class="topics-latest-story"> 6446 <a href="/tracing-data-overload-sampling/" class="topics-nav-story"> 6447 How to find failures without drowning in tracing data </a> 6448 <div class="byline"> 6449 <span class="date">
6450 Sep 3rd 2026 4:17pm, by </span> 6451 6452 <span class="author"> 6453 Alex Wilhelm </span> 6454 </div> 6455 </div> 6456 <div class="topics-latest-story"> 6457 <a href="/anthropic-claude-agent-security/" class="topics-nav-story"> 6458 Anthropic's Claude failures have made agent observability a security priority </a> 6459 <div class="byline"> 6460 <span class="date"> 6461 Sep 2nd 2026 4:12pm, by </span> 6462 6463 <span class="author"> 6464 Adrian Bridgwater </span> 6465 </div> 6466 </div> 6467 <div class="topics-latest-story"> 6468 <a href="/opentelemetry-observability-telemetry-storage/" class="topics-nav-story"> 6469 Observability has a data problem. AI is about to make it worse. </a> 6470 <div class="byline"> 6471 <span class="date"> 6472 Aug 26th 2026 4:08pm, by </span> 6473 6474 <span class="author"> 6475 Will Kelly </span> 6476 </div> 6477 </div> 6478 </div> 6479 <div class="topic-latest-stories topic-latest-stories-operations"> 6480 <div class="topics-latest-story"> 6481 <a href="/tracing-data-overload-sampling/" class="topics-nav-story"> 6482 How to find failures without drowning in tracing data </a> 6483 <div class="byline"> 6484 <span class="date">
6485 Sep 3rd 2026 4:17pm, by </span> 6486 6487 <span class="author"> 6488 Alex Wilhelm </span> 6489 </div> 6490 </div> 6491 <div class="topics-latest-story"> 6492 <a href="/github-2-9b-monthly-commits/" class="topics-nav-story"> 6493 GitHub now sees 2.9 billion commits a month -- and it can't keep up </a> 6494 <div class="byline"> 6495 <span class="date"> 6496 Aug 20th 2026 5:37pm, by </span> 6497 6498 <span class="author"> 6499 Frederic Lardinois </span> 6500 </div> 6501 </div> 6502 <div class="topics-latest-story"> 6503 <a href="/edge-kubernetes-fleet-management/" class="topics-nav-story"> 6504 Kubernetes at the edge has hit a wall. Fleet management is the way through. </a> 6505 <div class="byline"> 6506 <span class="date"> 6507 Aug 20th 2026 9:00am, by </span> 6508 6509 <span class="author"> 6510 Arvind Bhoj and Aarthi Mahesh </span> 6511 </div> 6512 </div> 6513 <div class="topics-latest-story"> 6514 <a href="/dns-domain-management-automation/" class="topics-nav-story"> 6515 DNS is infrastructure. Itâs time to manage it that way. </a> 6516 <div class="byline"> 6517 <span class="date"> 6518 Jul 30th 2026 11:00am, by </span> 6519 6520 <span class="author"> 6521 Venus Kohli </span> 6522 </div> 6523 </div> 6524 <div class="topics-latest-story"> 6525 <a href="/build-resilient-service-architecture/" class="topics-nav-story"> 6526 5 steps to build great service architecture and operational resilience </a> 6527 <div class="byline"> 6528 <span class="date"> 6529 Jul 25th 2026 12:00pm, by </span> 6530 6531 <span class="author"> 6532 Debora Cambe </span> 6533 </div> 6534 </div> 6535 </div> 6536 <div class="topic-latest-stories topic-latest-stories-platform-engineering"> 6537 <div class="topics-latest-story"> 6538 <a href="/spec-driven-sdlc-gates/" class="topics-nav-story"> 6539 The AI-native SDLC won't be one process </a> 6540 <div class="byline"> 6541 <span class="date"> 6542 Sep 12th 2026 10:00am, by </span> 6543 6544 <span class="author"> 6545 Anirudh Ramanathan </span> 6546 </div> 6547 </div> 6548 <div class="topics-latest-story"> 6549 <a href="/red-hat-ai-multitenancy/" class="topics-nav-story"> 6550 Red Hat AI 3.5 tackles the GPU queue that can stall AI pilots </a> 6551 <div class="byline"> 6552 <span class="date"> 6553 Sep 10th 2026 1:01pm, by </span> 6554 6555 <span class="author"> 6556 Adrian Bridgwater </span> 6557 </div> 6558 </div> 6559 <div class="topics-latest-story"> 6560 <a href="/hashicorp-mcjannet-dome-agents/" class="topics-nav-story"> 6561 After nine years as HashiCorp CEO, Dave McJannet now wants to "unblock" enterprise AI agents </a> 6562 <div class="byline"> 6563 <span class="date"> 6564 Sep 8th 2026 8:59am, by </span> 6565 6566 <span class="author"> 6567 Paul Sawers </span> 6568 </div> 6569 </div> 6570 <div class="topics-latest-story"> 6571 <a href="/agent-context-development-lifecycle/" class="topics-nav-story"> 6572 Your agent context needs a development lifecycle </a> 6573 <div class="byline"> 6574 <span class="date"> 6575 Aug 31st 2026 9:00am, by </span> 6576 6577 <span class="author"> 6578 Ankit Jain and Patrick Debois </span> 6579 </div> 6580 </div> 6581 <div class="topics-latest-story"> 6582 <a href="/ai-agent-platform-roles/" class="topics-nav-story"> 6583 The 3 roles AI agents play in your developer platform </a> 6584 <div class="byline"> 6585 <span class="date"> 6586 Aug 29th 2026 9:00am, by </span> 6587 6588 <span class="author"> 6589 Matar Peles </span> 6590 </div> 6591 </div> 6592 </div> 6593 </div> 6594 </div> 6595 6596 <div class="content content-programming row"> 6597 <div class="col col-33 col-topics"> 6598 <a 6599 href="https://thenewstack.io/c/" 6600 class="topics-nav-topic topic-c" 6601 data-category-slug="c" 6602 > 6603 C++ </a> 6604 <a 6605 href="https://thenewstack.io/developer-tools/" 6606 class="topics-nav-topic topic-developer-tools" 6607 data-category-slug="developer-tools" 6608 > 6609 Developer tools </a> 6610 <a 6611 href="https://thenewstack.io/go/" 6612 class="topics-nav-topic topic-go" 6613 data-category-slug="go" 6614 > 6615 Go </a> 6616 <a 6617 href="https://thenewstack.io/java/" 6618 class="topics-nav-topic topic-java" 6619 data-category-slug="java" 6620 > 6621 Java </a> 6622 <a 6623 href="https://thenewstack.io/javascript/" 6624 class="topics-nav-topic topic-javascript" 6625 data-category-slug="javascript" 6626 > 6627 JavaScript </a> 6628 <a 6629 href="https://thenewstack.io/programming-languages/" 6630 class="topics-nav-topic topic-programming-languages" 6631 data-category-slug="programming-languages" 6632 > 6633 Programming Languages </a> 6634 <a 6635 href="https://thenewstack.io/python/" 6636 class="topics-nav-topic topic-python" 6637 data-category-slug="python" 6638 > 6639 Python </a> 6640 <a 6641 href="https://thenewstack.io/rust/" 6642 class="topics-nav-topic topic-rust" 6643 data-category-slug="rust" 6644 > 6645 Rust </a> 6646 <a 6647 href="https://thenewstack.io/typescript/" 6648 class="topics-nav-topic topic-typescript" 6649 data-category-slug="typescript" 6650 > 6651 TypeScript </a> 6652 </div> 6653 <div class="col col-66 col-latest-stories"> 6654 <div class="topic-latest-stories topic-latest-stories-c"> 6655 <div class="topics-latest-story"> 6656 <a href="/open-source-usearch-library-jumpstarts-scylladb-vector-search/" class="topics-nav-story"> 6657 Open source USearch library jumpstarts ScyllaDB vector search </a> 6658 <div class="byline"> 6659 <span class="date">
6660 Feb 5th 2026 12:00pm, by </span> 6661 6662 <span class="author"> 6663 Jelani Harper </span> 6664 </div> 6665 </div> 6666 <div class="topics-latest-story"> 6667 <a href="/aws-waf-vs-google-cloud-armor-a-multicloud-security-showdown/" class="topics-nav-story"> 6668 AWS WAF vs. Google Cloud Armor: A Multicloud Security Showdown </a> 6669 <div class="byline"> 6670 <span class="date"> 6671 Nov 25th 2025 10:00am, by </span> 6672 6673 <span class="author"> 6674 Advait Patel </span> 6675 </div> 6676 </div> 6677 <div class="topics-latest-story"> 6678 <a href="/goodbye-dashboards-agents-deliver-answers-not-just-reports/" class="topics-nav-story"> 6679 Goodbye Dashboards: Agents Deliver Answers, Not Just Reports </a> 6680 <div class="byline"> 6681 <span class="date"> 6682 Nov 23rd 2025 9:00am, by </span> 6683 6684 <span class="author"> 6685 Ketan Karkhanis </span> 6686 </div> 6687 </div> 6688 <div class="topics-latest-story"> 6689 <a href="/rust-vs-c-a-modern-take-on-performance-and-safety/" class="topics-nav-story"> 6690 Rust vs. C++: a Modern Take on Performance and Safety </a> 6691 <div class="byline"> 6692 <span class="date"> 6693 Oct 22nd 2025 2:00pm, by </span> 6694 6695 <span class="author"> 6696 Zziwa Raymond Ian </span> 6697 </div> 6698 </div> 6699 <div class="topics-latest-story"> 6700 <a href="/building-a-real-time-system-monitor-in-rust-terminal/" class="topics-nav-story"> 6701 Building a Real-Time System Monitor in Rust Terminal </a> 6702 <div class="byline"> 6703 <span class="date"> 6704 Oct 15th 2025 7:05am, by </span> 6705 6706 <span class="author"> 6707 Tinega Onchari </span> 6708 </div> 6709 </div> 6710 </div> 6711 <div class="topic-latest-stories topic-latest-stories-developer-tools"> 6712 <div class="topics-latest-story"> 6713 <a href="/openai-hires-git-ai/" class="topics-nav-story"> 6714 "Same mission, bigger stage": OpenAI hires Git AI founders to help Codex prove its ROI </a> 6715 <div class="byline"> 6716 <span class="date"> 6717 Sep 12th 2026 10:46am, by </span> 6718 6719 <span class="author"> 6720 Paul Sawers </span> 6721 </div> 6722 </div> 6723 <div class="topics-latest-story"> 6724 <a href="/k2-horizon-fully-open/" class="topics-nav-story"> 6725 K2 Horizon just shipped as six new fully open models â developers aren't fully convinced </a> 6726 <div class="byline"> 6727 <span class="date"> 6728 Sep 9th 2026 8:00am, by </span> 6729 6730 <span class="author"> 6731 Adrian Bridgwater </span> 6732 </div> 6733 </div> 6734 <div class="topics-latest-story"> 6735 <a href="/harness-ai-code-review/" class="topics-nav-story"> 6736 Harness rebuilt its Git repository for nonstop AI agent traffic </a> 6737 <div class="byline"> 6738 <span class="date"> 6739 Sep 9th 2026 7:00am, by </span> 6740 6741 <span class="author"> 6742 Frederic Lardinois </span> 6743 </div> 6744 </div> 6745 <div class="topics-latest-story"> 6746 <a href="/coding-agents-tool-choice/" class="topics-nav-story"> 6747 âTwenty years of brand building simply froze in timeâ: How coding agents select their tools of choice </a> 6748 <div class="byline"> 6749 <span class="date"> 6750 Sep 7th 2026 8:02am, by </span> 6751 6752 <span class="author"> 6753 Adrian Bridgwater </span> 6754 </div> 6755 </div> 6756 <div class="topics-latest-story"> 6757 <a href="/polars-streaming-row-order/" class="topics-nav-story"> 6758 Polars 2.0 pre-release comes with a 5x speed boost â but it could change row order </a> 6759 <div class="byline"> 6760 <span class="date"> 6761 Sep 6th 2026 9:30am, by </span> 6762 6763 <span class="author"> 6764 Meredith Shubel </span> 6765 </div> 6766 </div> 6767 </div> 6768 <div class="topic-latest-stories topic-latest-stories-go"> 6769 <div class="topics-latest-story"> 6770 <a href="/go-language-ai-agents/" class="topics-nav-story"> 6771 Code that passes every test can still break the next AI agent that touches it </a> 6772 <div class="byline"> 6773 <span class="date"> 6774 Aug 12th 2026 1:00pm, by </span> 6775 6776 <span class="author"> 6777 Amanda Caswell </span> 6778 </div> 6779 </div> 6780 <div class="topics-latest-story"> 6781 <a href="/microsoft-agent-framework-go/" class="topics-nav-story"> 6782 Microsoft joins Google in backing Go for AI agents â OpenAI and Anthropic lag </a> 6783 <div class="byline"> 6784 <span class="date">
6785 Jul 11th 2026 10:00am, by </span> 6786 6787 <span class="author"> 6788 Paul Sawers </span> 6789 </div> 6790 </div> 6791 <div class="topics-latest-story"> 6792 <a href="/go-experts-i-dont-want-to-maintain-ai-generated-code/" class="topics-nav-story"> 6793 Go Experts: 'I Don't Want to Maintain AI-Generated Code' </a> 6794 <div class="byline"> 6795 <span class="date"> 6796 Sep 28th 2025 6:00am, by </span> 6797 6798 <span class="author"> 6799 David Cassel </span> 6800 </div> 6801 </div> 6802 <div class="topics-latest-story"> 6803 <a href="/how-to-run-kubernetes-commands-in-go-steps-and-best-practices/" class="topics-nav-story"> 6804 How To Run Kubernetes Commands in Go: Steps and Best Practices </a> 6805 <div class="byline"> 6806 <span class="date"> 6807 Jun 27th 2025 8:00am, by </span> 6808 6809 <span class="author"> 6810 Sunny Yadav </span> 6811 </div> 6812 </div> 6813 <div class="topics-latest-story"> 6814 <a href="/prepare-your-mac-for-go-development/" class="topics-nav-story"> 6815 Prepare Your Mac for Go Development </a> 6816 <div class="byline"> 6817 <span class="date"> 6818 Apr 12th 2025 7:00am, by </span> 6819 6820 <span class="author"> 6821 Damon M. Garn </span> 6822 </div> 6823 </div> 6824 </div> 6825 <div class="topic-latest-stories topic-latest-stories-java"> 6826 <div class="topics-latest-story"> 6827 <a href="/azul-java-security-jvm-mythos/" class="topics-nav-story"> 6828 Azul wants to find your unpatched JVMs before AI does </a> 6829 <div class="byline"> 6830 <span class="date"> 6831 Jun 24th 2026 4:53pm, by </span> 6832 6833 <span class="author"> 6834 Darryl K. Taft </span> 6835 </div> 6836 </div> 6837 <div class="topics-latest-story"> 6838 <a href="/chainguard-java-libraries-spring-boot-cves/" class="topics-nav-story"> 6839 Chainguard targets Java's unpatched vulnerability backlog with drop-in remediated libraries </a> 6840 <div class="byline"> 6841 <span class="date"> 6842 Jun 24th 2026 4:48pm, by </span> 6843 6844 <span class="author"> 6845 Darryl K. Taft </span> 6846 </div> 6847 </div> 6848 <div class="topics-latest-story"> 6849 <a href="/deterministic-ai-spring-upgrades/" class="topics-nav-story"> 6850 Transform your AI coding agent into a deterministic Java Spring expert </a> 6851 <div class="byline"> 6852 <span class="date"> 6853 Jun 11th 2026 9:00am, by </span> 6854 6855 <span class="author"> 6856 Raquel Pau </span> 6857 </div> 6858 </div> 6859 <div class="topics-latest-story"> 6860 <a href="/broadcom-spring-java-cve-security-ai/" class="topics-nav-story"> 6861 Spring is 23 years old. AI just made it a security emergency. </a> 6862 <div class="byline"> 6863 <span class="date"> 6864 Jun 9th 2026 2:48pm, by </span> 6865 6866 <span class="author"> 6867 Darryl K. Taft </span> 6868 </div> 6869 </div> 6870 <div class="topics-latest-story"> 6871 <a href="/in-the-ai-age-java-is-more-relevant-than-ever/" class="topics-nav-story"> 6872 In the AI age, Java is more relevant than ever </a> 6873 <div class="byline"> 6874 <span class="date"> 6875 Apr 8th 2026 5:30pm, by </span> 6876 6877 <span class="author"> 6878 Mary Branscombe </span> 6879 </div> 6880 </div> 6881 </div> 6882 <div class="topic-latest-stories topic-latest-stories-javascript"> 6883 <div class="topics-latest-story"> 6884 <a href="/cloudflare-voidzero-acquisition-vite/" class="topics-nav-story"> 6885 Cloudflare aqui-hires VoidZero: Did a piece of the open web just stabilize, or become more brittle? </a> 6886 <div class="byline"> 6887 <span class="date"> 6888 Jun 5th 2026 3:01pm, by </span> 6889 6890 <span class="author"> 6891 Adrian Bridgwater </span> 6892 </div> 6893 </div> 6894 <div class="topics-latest-story"> 6895 <a href="/bun-developers-complaints-anthropic/" class="topics-nav-story"> 6896 "Real maturity problems": Not every developer is thrilled with Bun after Anthropic acquisition </a> 6897 <div class="byline"> 6898 <span class="date"> 6899 May 5th 2026 1:03pm, by </span> 6900 6901 <span class="author"> 6902 Adrian Bridgwater </span> 6903 </div> 6904 </div> 6905 <div class="topics-latest-story"> 6906 <a href="/typescript-6-0-rc-arrives-as-a-bridge-to-a-faster-future/" class="topics-nav-story"> 6907 TypeScript 6.0 RC arrives as a bridge to a faster future </a> 6908 <div class="byline"> 6909 <span class="date"> 6910 Mar 14th 2026 9:00am, by </span> 6911 6912 <span class="author"> 6913 Darryl K. Taft </span> 6914 </div> 6915 </div> 6916 <div class="topics-latest-story"> 6917 <a href="/webassembly-is-everywhere-heres-how-it-works/" class="topics-nav-story"> 6918 WebAssembly is everywhere. Here's how it works </a> 6919 <div class="byline"> 6920 <span class="date"> 6921 Feb 25th 2026 11:00am, by </span> 6922 6923 <span class="author"> 6924 Jessica Wachtel </span> 6925 </div> 6926 </div> 6927 <div class="topics-latest-story"> 6928 <a href="/wasm-vs-javascript-who-wins-at-a-million-rows/" class="topics-nav-story"> 6929 Wasm vs. JavaScript: Who wins at a million rows? </a> 6930 <div class="byline"> 6931 <span class="date"> 6932 Feb 22nd 2026 6:00am, by </span> 6933 6934 <span class="author"> 6935 Jessica Wachtel </span> 6936 </div> 6937 </div> 6938 </div> 6939 <div class="topic-latest-stories topic-latest-stories-programming-languages"> 6940 <div class="topics-latest-story"> 6941 <a href="/kotlin-notebook-jupyter-python-retreat/" class="topics-nav-story"> 6942 JetBrains kills Kotlin Notebook months after Microsoft's Polyglot exit. But Jupyter is doing just fine. </a> 6943 <div class="byline"> 6944 <span class="date"> 6945 Jun 29th 2026 1:59pm, by </span> 6946 6947 <span class="author"> 6948 Paul Sawers </span> 6949 </div> 6950 </div> 6951 <div class="topics-latest-story"> 6952 <a href="/rust-foundation-training-certification/" class="topics-nav-story"> 6953 Trust in Rust: Foundation debuts official training to tackle steep learning curve </a> 6954 <div class="byline"> 6955 <span class="date"> 6956 Jun 25th 2026 12:30pm, by </span> 6957 6958 <span class="author"> 6959 Darryl K. Taft </span> 6960 </div> 6961 </div> 6962 <div class="topics-latest-story"> 6963 <a href="/php-web-skills-hiring-age/" class="topics-nav-story"> 6964 Who will maintain the web when PHP's veterans retire? </a> 6965 <div class="byline"> 6966 <span class="date">
6967 Apr 16th 2026 2:53pm, by </span> 6968 6969 <span class="author"> 6970 Darryl K. Taft </span> 6971 </div> 6972 </div> 6973 <div class="topics-latest-story"> 6974 <a href="/ai-programming-languages-future/" class="topics-nav-story"> 6975 Will AI force code to evolve or make it extinct? </a> 6976 <div class="byline"> 6977 <span class="date"> 6978 Mar 22nd 2026 6:00am, by </span> 6979 6980 <span class="author"> 6981 David Cassel </span> 6982 </div> 6983 </div> 6984 <div class="topics-latest-story"> 6985 <a href="/java-26-performance-ai/" class="topics-nav-story"> 6986 Java 26 lands without an LTS badge. Here's why developers should care anyway. </a> 6987 <div class="byline"> 6988 <span class="date"> 6989 Mar 18th 2026 9:35am, by </span> 6990 6991 <span class="author"> 6992 Darryl K. Taft </span> 6993 </div> 6994 </div> 6995 </div> 6996 <div class="topic-latest-stories topic-latest-stories-python"> 6997 <div class="topics-latest-story"> 6998 <a href="/stop-ai-code-sprawl/" class="topics-nav-story"> 6999 Stop AI code sprawl before it destroys your software design </a> 7000 <div class="byline"> 7001 <span class="date"> 7002 Sep 10th 2026 8:30am, by </span> 7003 7004 <span class="author"> 7005 Emmanuel Akita </span> 7006 </div> 7007 </div> 7008 <div class="topics-latest-story"> 7009 <a href="/graphrag-multi-hop-reasoning-python/" class="topics-nav-story"> 7010 Why basic RAG fails at multi-hop reasoning (and how GraphRAG fixes it) </a> 7011 <div class="byline"> 7012 <span class="date"> 7013 Aug 27th 2026 10:00am, by </span> 7014 7015 <span class="author"> 7016 Emmanuel Akita </span> 7017 </div> 7018 </div> 7019 <div class="topics-latest-story"> 7020 <a href="/nvidia-nooa-agent-framework/" class="topics-nav-story"> 7021 Nvidia's NOOA makes an agent one Python class </a> 7022 <div class="byline"> 7023 <span class="date"> 7024 Aug 4th 2026 10:02am, by </span> 7025 7026 <span class="author"> 7027 Meredith Shubel </span> 7028 </div> 7029 </div> 7030 <div class="topics-latest-story"> 7031 <a href="/spark-4-2-ai-workloads/" class="topics-nav-story"> 7032 Spark 4.2 has a feature that could retire your vector database </a> 7033 <div class="byline"> 7034 <span class="date"> 7035 Jul 19th 2026 12:00pm, by </span> 7036 7037 <span class="author"> 7038 Amanda Caswell </span> 7039 </div> 7040 </div> 7041 <div class="topics-latest-story"> 7042 <a href="/kotlin-notebook-jupyter-python-retreat/" class="topics-nav-story"> 7043 JetBrains kills Kotlin Notebook months after Microsoft's Polyglot exit. But Jupyter is doing just fine. </a> 7044 <div class="byline"> 7045 <span class="date"> 7046 Jun 29th 2026 1:59pm, by </span> 7047 7048 <span class="author"> 7049 Paul Sawers </span> 7050 </div> 7051 </div> 7052 </div> 7053 <div class="topic-latest-stories topic-latest-stories-rust"> 7054 <div class="topics-latest-story"> 7055 <a href="/aws-lambda-ebpf-rust/" class="topics-nav-story"> 7056 How AWS Lambda logs every flow across thousands of microVMs per host with eBPF and Rust </a> 7057 <div class="byline"> 7058 <span class="date"> 7059 Sep 11th 2026 8:00am, by </span> 7060 7061 <span class="author"> 7062 Prashant Kumar Singh, Kshitij Gupta and Shivendra Srivastava </span> 7063 </div> 7064 </div> 7065 <div class="topics-latest-story"> 7066 <a href="/canonical-c-rust-apparmor/" class="topics-nav-story"> 7067 AI-generated Rust compiles perfectly. That's the scary part. </a> 7068 <div class="byline"> 7069 <span class="date"> 7070 Aug 19th 2026 3:30pm, by </span> 7071 7072 <span class="author"> 7073 Amanda Caswell </span> 7074 </div> 7075 </div> 7076 <div class="topics-latest-story"> 7077 <a href="/grok-opus-coding-tokens/" class="topics-nav-story"> 7078 Grok 4.5 vs. Claude Opus 4.8: Costs and what works, not the spec sheet </a> 7079 <div class="byline"> 7080 <span class="date"> 7081 Jul 20th 2026 9:38am, by </span> 7082 7083 <span class="author"> 7084 Jessica Wachtel </span> 7085 </div> 7086 </div> 7087 <div class="topics-latest-story"> 7088 <a href="/rust-foundation-training-certification/" class="topics-nav-story"> 7089 Trust in Rust: Foundation debuts official training to tackle steep learning curve </a> 7090 <div class="byline"> 7091 <span class="date"> 7092 Jun 25th 2026 12:30pm, by </span> 7093 7094 <span class="author"> 7095 Darryl K. Taft </span> 7096 </div> 7097 </div> 7098 <div class="topics-latest-story"> 7099 <a href="/python-rust-ai-sidecar/" class="topics-nav-story"> 7100 The Rust sidecar pattern that fixes Python AI's biggest weakness </a> 7101 <div class="byline"> 7102 <span class="date"> 7103 May 14th 2026 9:00am, by </span> 7104 7105 <span class="author"> 7106 Boris Chabeda </span> 7107 </div> 7108 </div> 7109 </div> 7110 <div class="topic-latest-stories topic-latest-stories-typescript"> 7111 <div class="topics-latest-story"> 7112 <a href="/real-time-sync-engine/" class="topics-nav-story"> 7113 From clobbered drafts to real-time sync </a> 7114 <div class="byline"> 7115 <span class="date"> 7116 Apr 14th 2026 10:00am, by </span> 7117 7118 <span class="author"> 7119 David Moore </span> 7120 </div> 7121 </div> 7122 <div class="topics-latest-story"> 7123 <a href="/typescript-6-0-rc-arrives-as-a-bridge-to-a-faster-future/" class="topics-nav-story"> 7124 TypeScript 6.0 RC arrives as a bridge to a faster future </a> 7125 <div class="byline"> 7126 <span class="date"> 7127 Mar 14th 2026 9:00am, by </span> 7128 7129 <span class="author"> 7130 Darryl K. Taft </span> 7131 </div> 7132 </div> 7133 <div class="topics-latest-story"> 7134 <a href="/mastra-empowers-web-devs-to-build-ai-agents-in-typescript/" class="topics-nav-story"> 7135 Mastra empowers web devs to build AI agents in TypeScript </a> 7136 <div class="byline"> 7137 <span class="date"> 7138 Jan 28th 2026 11:00am, by </span> 7139 7140 <span class="author"> 7141 Loraine Lawson </span> 7142 </div> 7143 </div> 7144 <div class="topics-latest-story"> 7145 <a href="/inferno-vet-creates-frontend-framework-built-with-ai-in-mind/" class="topics-nav-story"> 7146 Inferno Vet Creates Frontend Framework Built With AI in Mind </a> 7147 <div class="byline"> 7148 <span class="date"> 7149 Dec 10th 2025 11:00am, by </span> 7150 7151 <span class="author"> 7152 Loraine Lawson </span> 7153 </div> 7154 </div> 7155 <div class="topics-latest-story"> 7156 <a href="/javascript-utility-library-lodash-changing-governance-model/" class="topics-nav-story"> 7157 JavaScript Utility Library Lodash Changing Governance Model </a> 7158 <div class="byline"> 7159 <span class="date"> 7160 Nov 1st 2025 7:00am, by </span> 7161 7162 <span class="author"> 7163 Loraine Lawson </span> 7164 </div> 7165 </div> 7166 </div> 7167 </div> 7168 </div> 7169 </div> 7170</div> 7171
7172<script> 7173 $(document).ready(function() { 7174 window.tns.nav = window.tns.nav || {}; 7175 window.tns.nav.open_pending = false; 7176 7177 $('.topics-nav-block a').on('mouseenter', function() { 7178 window.tns.nav.open_pending = true; 7179 7180 setTimeout(function() { 7181 if (!window.tns.nav.open_pending) return; 7182 window.tns.nav.open_pending = false; 7183 7184 $('.topics-nav-block a').removeClass('active'); 7185 $(this).addClass('active'); 7186 7187 $('.nav-topics-dropdown').addClass('open'); 7188 $('.nav-topics-dropdown').transition({ 7189 height : 440, 7190 duration : 180, 7191 easeing : 'easeOutQuad' 7192 }); 7193 }, 180); 7194 }); 7195 7196 $('.topics-nav-block a').on('mouseleave', function() { 7197 window.tns.nav.open_pending = false; 7198 }); 7199 7200 $('.channels-nav').on('mouseenter', function() { 7201 window.tns.nav.open_pending = false; 7202 7203 $('.topics-nav-block a').removeClass('active'); 7204 7205 $('.nav-topics-dropdown').removeClass('open'); 7206 $('.nav-topics-dropdown').transition({ 7207 height : 0, 7208 duration : 99, 7209 easeing : 'easeOutQuad' 7210 }); 7211 }); 7212 7213 $('#tns-header').on('mouseleave', function() { 7214 window.tns.nav.open_pending = false; 7215 7216 $('.topics-nav-block a').removeClass('active'); 7217 7218 $('.nav-topics-dropdown').removeClass('open'); 7219 $('.nav-topics-dropdown').transition({ 7220 height : 0, 7221 duration : 99, 7222 easeing : 'easeOutQuad' 7223 }); 7224 }); 7225 7226 $('.col-topics a').on('mouseenter', function() { 7227 window.tns.nav.open_pending = false; 7228 7229 $('.col-topics a').removeClass('active'); 7230 $(this).addClass('active'); 7231 7232 var categorySlug = $(this).data('category-slug'); 7233 7234 /// Handle change-up of the latest stories list 7235 $('.topic-latest-stories').css({ 7236 display : 'none', 7237 opacity : 0 7238 }); 7239 7240 $('.topic-latest-stories-' + categorySlug).stop().transition({ 7241 display : 'block', 7242 opacity : 1, 7243 duration : 121, 7244 easing : 'snap' 7245 }) 7246 }); 7247 7248 $('.topics-nav-topic').on('click', function() { 7249 window.tns.nav.open_pending = false; 7250 7251 var target = $(this).attr('href'); 7252 7253 window.dataLayer.push({ 7254 'event' : 'nav_click', 7255 'target' : target 7256 }); 7257 }); 7258 7259 $('.topics-nav-story').on('click', function() { 7260 window.tns.nav.open_pending = false; 7261 7262 var target = $(this).attr('href'); 7263 7264 window.dataLayer.push({ 7265 'event' : 'nav_click', 7266 'target' : target 7267 }); 7268 }); 7269 }); 7270</script>
7270 7271 </div> 7272 7273 <div class="header-footprint"></div> 7274 <div class="ad-container native-top" id="div-gpt-ad-native-top"> 7275
7275<script> 7276 googletag.cmd.push(function() { 7277 googletag.display("div-gpt-ad-native-top"); 7278 }); 7279 </script>
7279 7280</div> 7281</div> 7282
7283<script> 7284 $(document).ready(function() { 7285 var lastScrollTop = 0; 7286 window.headerExpandOnScroll = true; 7287 7288 window.headerCollapse = function() { 7289 $('.header-fixed').addClass('collapsed'); 7290 7291 if ($('.nav-topics-dropdown').hasClass('open')) { 7292 $('.topics-nav-block a').removeClass('active'); 7293 $('.nav-topics-dropdown').removeClass('open'); 7294 7295 $('.nav-topics-dropdown').transition({ 7296 height : 0, 7297 duration : 99, 7298 easeing : 'easeOutQuad' 7299 }); 7300 } 7301 } 7302 7303 window.headerExpand = function() { 7304 $('.header-fixed').removeClass('collapsed'); 7305 7306 if ($('.nav-topics-dropdown').hasClass('open')) { 7307 $('.topics-nav-block a').removeClass('active'); 7308 $('.nav-topics-dropdown').removeClass('open'); 7309 7310 $('.nav-topics-dropdown').transition({ 7311 height : 0, 7312 duration : 99, 7313 easeing : 'easeOutQuad' 7314 }); 7315 } 7316 } 7317 7318 $(window).scroll(function(event) { 7319 if (!window.headerExpandOnScroll) return; 7320 7321 var scrollTop = $(window).scrollTop(); 7322 if (scrollTop <= 50) return; 7323 7324 /// Down (collapse) 7325 if (scrollTop > lastScrollTop) { 7326 window.headerCollapse(); 7327 } 7328 7329 /// Up (expand) 7330 if (scrollTop < lastScrollTop) { 7331 window.headerExpand(); 7332 } 7333 7334 lastScrollTop = scrollTop; 7335 }); 7336 7337 $(window).on('resize', function() { 7338 $('.topics-nav-block a').removeClass('active'); 7339 $('.nav-topics-dropdown').removeClass('open'); 7340 7341 $('.nav-topics-dropdown').transition({ 7342 height : 0, 7343 duration : 99, 7344 easeing : 'easeOutQuad' 7345 }); 7346 }); 7347 }); 7348</script>
7348 7349 7350 <div id="turnstile-container" data-refresh-expired="never" style="display: none;"></div> 7351
7351<script> 7352 $(document).ready(function() { 7353 window.tns = window.tns || {} 7354 window.tns.turnstile = {} 7355 7356 window.tns.turnstile.renderWidget = function(callback) { 7357 var turnstileWidgetId = turnstile.render('#turnstile-container', { 7358 sitekey : '0x4AAAAAAAVLuogHtE3mpzev', 7359 callback: callback 7360 }); 7361 7362 window.tns.turnstile.widgetId = turnstileWidgetId; 7363 } 7364 7365 window.tns.turnstile.resetWidget = async function(callback) { 7366 await turnstile.reset(window.tns.turnstile.widgetId) 7367 7368 return callback 7369 } 7370 }); 7371 </script>
7371 7372 7373 <!-- IMGJS Config --> 7374
7374<script> 7375 $(document).ready(function() { 7376 window.imgjs = window.imgjs || {} 7377 window.imgjs.subscribe = window.imgjs.subscribe || {} 7378 window.imgjs.reactions = window.imgjs.reactions || {} 7379 7380 window.imgjs.subscribe.resetConfig = function() { 7381 window.imgjs.subscribe.config = { 7382 subscribe_url: 'https://img-api-v2.thenewstack.dev/api/accounts/subscribe', 7383 login_url: 'https://img-api-v2.thenewstack.dev/api/accounts/login/verify-otc-login', 7384 update_url: 'https://img-api-v2.thenewstack.dev/api/accounts', 7385 read_url: 'https://img-api-v2.thenewstack.dev/api/accounts/me', 7386 button_color: '#ff2b87', 7387 copy: { 7388 email_slide:{ 7389 heading: { 7390 subscribe: `Sign up with The New Stack`, 7391 login: `Login to The New Stack` 7392 }, 7393 cta: { 7394 subscribe: `Register for free to access this content and unlock our full vault of exclusive resources. By joining our community of software engineering leaders and aspiring developers, youâll get all the most important news and analysis in the world of at-scale software development.`, 7395 login: `Enter your email below to receive a login code.` 7396 }, 7397 button_label: { 7398 subscribe: `REGISTER`, 7399 login: `LOGIN` 7400 } 7401 }, 7402 verify_slide: { 7403 heading: { 7404 subscribe: `Sign up with The New Stack`, 7405 login: `Login to The New Stack` 7406 }, 7407 prompt: { 7408 subscribe: `Enter the verification code sent to your email.`, 7409 login: `Enter the code sent to your email to login to your account.` 7410 }, 7411 button_label: { 7412 subscribe: `VERIFY`, 7413 login: `LOGIN` 7414 } 7415 }, 7416 profile_slide: { 7417 heading: { 7418 subscribe: `Sign up with The New Stack`, 7419 login: `Update Your Profile` 7420 }, 7421 cta: { 7422 subscribe: `Refine your profile to unlock insights and opportunities aligned with your skills and experience.`, 7423 login: `Refine your profile to unlock insights and opportunities aligned with your skills and experience.` 7424 }, 7425 button_label: { 7426 subscribe: `UPDATE PROFILE`, 7427 login: `UPDATE PROFILE` 7428 } 7429 }, 7430 newsletter_slide: { 7431 heading: `Stay in the loop`, 7432 cta: `Based on your interests, we think you'll also enjoy these newsletters from our network.`, 7433 button_label_subscribe: `SUBSCRIBE AND CONTINUE`, 7434 button_label_skip: `CONTINUE WITHOUT SUBSCRIBING` 7435 }, 7436 confirm_slide: { 7437 heading: { 7438 subscribe: `Welcome!`, 7439 login: `Welcome back!` 7440 }, 7441 welcome: { 7442 subscribe: `We're so glad you're here! As a member of The New Stack, you now have unlimited access to all our <a href="https://thenewstack.io" target="_blank">articles</a>, <a href="https://thenewstack.io/podcasts/" target="_blank">videos</a>, <a href="https://thenewstack.io/webinars/" target="_blank">webinars</a>, <a href="https://thenewstack.io/ebooks/" target="_blank">ebooks</a>, <a href="https://thenewstack.io/newsletter/" target="_blank">newsletters</a> and more. You can expect all the best TNS content to arrive Monday through Friday to keep you on top of the news and at the top of your game.`, 7443 login: `You're now logged in to The New Stack.` 7444 }, 7445 whats_next: { 7446 subscribe: `Check your inbox for a confirmation email where you can adjust your preferences and even join additional groups.`, 7447 login: `You can now access all our content and manage your preferences.` 7448 }, 7449 follow: { 7450 subscribe: `Follow TNS on your favorite social media networks.`, 7451 login: `Follow TNS on your favorite social media networks.` 7452 }, 7453 button_label: { 7454 subscribe: `OK`, 7455 login: `OK` 7456 } 7457 } 7458 }, 7459 images: { 7460 email_slide: { 7461 key_image: 'https://cdn.insightmediagroup.io/imgjs/tns-subscribe-1.png' 7462 } 7463 }, 7464 form: { 7465 job_role: { 7466 options: [ 7467 { title: 'AI Researcher / Research Scientist', value: 'ai-researcher' }, 7468 { title: 'Architect', value: 'architect' }, 7469 { title: 'Business Development/Marketing/Sales', value: 'business-development' }, 7470 { title: 'Community Manager / Developer Advocate', value: 'community-manager-devrel' }, 7471 { title: 'Data Analyst / Business Intelligence Analyst', value: 'data-analyst' }, 7472 { title: 'Data Engineer', value: 'data-engineer' }, 7473 { title: 'Data Scientist', value: 'data-scientist' }, 7474 { title: 'Developer / Software Engineer', value: 'developer-engineer' }, 7475 { title: 'DevOps Engineer', value: 'devops-engineer' },
7476 { title: 'Educator / Instructor', value: 'educator-instructor' }, 7477 { title: 'Enthusiast/Hobbyist', value: 'enthusiast-hobbyist' }, 7478 { title: 'Founder / Entrepreneur / Investor / VC', value: 'founder-investor-vc' }, 7479 { title: 'IT management, including CIO/CISO/CTO/CDO', value: 'it-management-cio-ciso-cto' }, 7480 { title: 'Machine Learning Engineer', value: 'machine-learning-engineer' }, 7481 { title: 'MLOps Engineer / Infrastructure Engineer', value: 'ml-ops-engineer' }, 7482 { title: 'Product Manager', value: 'product-manager' }, 7483 { title: 'Security / Privacy Professional', value: 'security-professional' }, 7484 { title: 'Statistician / Quantitative Analyst', value: 'statistician-quantitative-analyst' }, 7485 { title: 'Student', value: 'student' }, 7486 { title: 'SysAdmin/Operations/SRE', value: 'sysadmin-ops-sre' }, 7487 { title: 'Technical Writer', value: 'technical-writer' }, 7488 { title: 'UX / UI Designer / Data Visualization Specialist', value: 'ui-ux-vis-designer' } 7489 ] 7490 } 7491 }, 7492 social_links: { 7493 mastodon: 'https://hachyderm.io/@TheNewStack', 7494 bluesky: 'https://bsky.app/profile/thenewstack.io', 7495 threads: 'https://www.threads.net/@thenewstack', 7496 linkedin: 'https://www.linkedin.com/company/the-new-stack', 7497 twitter: 'https://twitter.com/thenewstack', 7498 facebook: 'https://www.facebook.com/thenewstack/', 7499 spotify: 'https://open.spotify.com/show/2nj1mpDb9jxHxi9vjZvDdk', 7500 youtube: 'https://www.youtube.com/c/thenewstack?sub_confirmation=1' 7501 }, 7502 newsletters: [ 7503 { 7504 id: 'roadmap-devops-weekly', 7505 name: 'roadmap.sh DevOps Weekly', 7506 label: 'Roadmap DevOps Weekly - the path to level up your skills & your stack', 7507 logo: 'https://cdn.insightmediagroup.io/static/roadmap-logo.png' 7508 }, 7509 { 7510 id: 'tds-weekly', 7511 name: 'Towards Data Science Weekly', 7512 label: 'Insights from the brightest minds in data science', 7513 logo: 'https://cdn.insightmediagroup.io/static/tds-logo.png' 7514 }, 7515 { 7516 id: 'cautious-optimism-weekly', 7517 name: 'Cautious Optimism AI Weekly', 7518 label: 'Cautious Optimism: modestly upbeat breakdown of tech, business & power', 7519 logo: 'https://cdn.insightmediagroup.io/static/co-logo.png' 7520 }, 7521 { 7522 id: 'imgcn-6a67a28b92680c45182e25f0', 7523 name: 'Hard Coded', 7524 label: 'Hard Coded - unique takes & skeptical analysis of the tech industry', 7525 logo: 'https://assets.insightmediagroup.io/media/1786372943360_chk3lv.png' 7526 } 7527 ], 7528 privacy_url: 'https://thenewstack.io/privacy-policy/', 7529 terms_url: 'https://thenewstack.io/terms-of-use/' 7530 } 7531 7532 /// Determine the IMGJS Subscribe URLs 7533 var hostname = window.location.hostname 7534 7535 window.imgjs.subscribe.config.oauth = { 7536 google_login_url: 'https://img-api-v2.insightmediagroup.io/api/accounts/login/google', 7537 github_login_url: 'https://img-api-v2.insightmediagroup.io/api/accounts/login/github', 7538 set_session_url: 'https://img-api-v2.thenewstack.dev/api/accounts/login/set-session' 7539 } 7540 7541 if (hostname.includes('thenewstack.io')) { 7542 window.imgjs.subscribe.config.subscribe_url = 'https://img-api-v2.thenewstack.io/api/accounts/subscribe' 7543 window.imgjs.subscribe.config.login_url = 'https://img-api-v2.thenewstack.io/api/accounts/login/verify-otc-login' 7544 window.imgjs.subscribe.config.update_url = 'https://img-api-v2.thenewstack.io/api/accounts' 7545 window.imgjs.subscribe.config.read_url = 'https://img-api-v2.thenewstack.io/api/accounts/me' 7546 window.imgjs.subscribe.config.oauth = { 7547 google_login_url: 'https://img-api-v2.insightmediagroup.io/api/accounts/login/google', 7548 github_login_url: 'https://img-api-v2.insightmediagroup.io/api/accounts/login/github', 7549 set_session_url: 'https://img-api-v2.thenewstack.io/api/accounts/login/set-session' 7550 } 7551 } 7552 } 7553 7554 window.imgjs.subscribe.resetConfig() 7555 7556 /// Initialize IMGJS Reactions Config 7557 window.imgjs.reactions.resetConfig = function() { 7558 window.imgjs.reactions.config = { 7559 url: 'https://img-api-v2.thenewstack.dev/api/reactions' 7560 } 7561 7562 var hostname = window.location.hostname 7563 if (hostname.includes('thenewstack.io')) { 7564 window.imgjs.reactions.config.url = 'https://img-api-v2.thenewstack.io/api/reactions' 7565 } 7566 } 7567 7568 window.imgjs.reactions.resetConfig() 7569 7570 window.imgjs.subscribe.isNewSubscription = function(createdAt) { 7571 if (!createdAt) return false;
7572 var d = createdAt instanceof Date ? createdAt : new Date(createdAt); 7573 if (isNaN(d.getTime())) return false; 7574 7575 // Compare YYYY-MM-DD in UTC (GMT+0) 7576 var toYMD = function (date) { return date.toISOString().slice(0, 10); }; 7577 return toYMD(d) === toYMD(new Date()); 7578 } 7579 }) 7580</script>
7580 7581 7582<div id="tns-terms"> 7583 <div class="content-column legal-page-content"> 7584 <h1> 7585 Terms of Use </h1> 7586 <div class="description"> 7587 <p>Last Updated: November 1, 2017</p> 7588<h3>PLEASE READ CAREFULLY.</h3> 7589<p>Welcome to The New Stack! Please read these Terms of Use (“Terms of Use”) before using, downloading, or submitting content in any form on The New Stack website (<a href="http://www.thenewstack.io" class="local-link">www.thenewstack.io</a>) (the “Site”). These Terms of Use is a legal agreement between you and The New Stack that governs your use of the Site and by continuing to use and by submitting content for publication on the Site (from any computer, mobile phone, tablet, console or other device) you signify that you have read, understand and agree to be bound by these Terms of Use. We have the right to change the Terms of Use at any time. We agree to post a notice of the changes in the footer of our Site, and the changes will be effective 30 days after posting such notice to our Site. Your continued use of the Site shall be considered your acceptance to the revised Terms of Use. If you do not agree to these Terms of Use, please do not use the Site.</p> 7590<p>You agree to our use of your personal information and content in accordance with our Privacy Policy, which is available at <a href="https://thenewstack.io/privacy-policy/" class="local-link">https://thenewstack.io/privacy-policy/</a> and incorporated by reference.</p> 7591<h3>THE NEW STACK’S OWNERSHIP OF THE SITE AND ITS CONTENT.</h3> 7592<p>The Site, including all text, photographs, graphics, video and audio content contained on the Site is protected by copyright as a collective work or compilation under the copyright laws of the United States and other countries, and The New Stack (subject to the rights of its licensors) has all rights therein. All individual articles, blogs, videos, content and other elements comprising the Site are also copyrighted works, and The New Stack (subject to the rights of our licensors) has all rights therein. You must abide by all additional copyright notices or restrictions contained on the Site.</p> 7593<h3>YOUR USE OF THE NEW STACK’S CONTENT.</h3> 7594<p>Unless expressly permitted, you may not copy, reproduce, distribute, publish, display, perform, modify, create derivative works from, transmit or in any way exploit any part of our Site or any content thereon, except as permitted elsewhere in these Terms of Use. Without limiting the foregoing, The New Stack grants to you a limited, revocable, non-sublicensable license to download certain materials made available for download on the Site, for non-commercial purposes only. In addition, just as The New Stack from time to time excerpt materials from other sources in order to support the various commentaries and writings contained on the Site, we respect the right of others to make “fair use” of the materials contained on the Site; accordingly, you may from time to time excerpt and use materials set forth on the Site consistent with the principles of “fair use”.</p> 7595<h3>YOUR SITE PARTICIPATION.</h3> 7596<p>Your participation in the Site is important to us and we encourage you to say what is on your mind. However, you agree to use the Site in a manner consistent with all laws, regulations and these Terms of Use. You are expressly prohibited from posting any information, testimonial, text, music, sound, photograph, graphic, video or message (collectively “Content”) that:</p> 7597<ol style="list-style:lower-alpha"> 7598<li>could be considered obscene, lewd, lascivious, excessively violent, harassing, patently offensive or promotes racism, bigotry, hatred or physical harm of any kind against any group or individual;</li> 7599<li>provides any telephone number, street address, email address, or photograph of another person, without that person’s consent, or otherwise constitutes an invasion of an individual’s privacy;</li> 7600<li>promotes information that you know is false, misleading, defamatory or libelous;</li> 7601<li>violates any intellectual property or other proprietary right (including trade secrets) of any third party, including Content that promotes an illegal or unauthorized copy of another person’s copyrighted work, such as providing pirated computer programs or links to them, providing information to circumvent manufacture-installed copy-protected devices, or providing pirated music or links to pirated music files; or</li> 7602<li>involves the transmission of “junk mail,” “chain letters,” or unsolicited mass mailing, instant messaging, “spimming,” or “spamming” or involves commercial activities or sales.</li> 7603</ol> 7604<p>We do not prescreen Content posted by users and cannot guarantee the Site will be free from Content that is inaccurate, deceptive, offensive, defamatory, unlawful or otherwise objectionable. You acknowledge that we are acting only as a passive channel for such distribution. We have no liability relating to any user Content or activities of users on the Site. Even in the event we choose to monitor any user Content, we assume no responsibility for, or any obligation to monitor or remove, such user Content. Notwithstanding the foregoing, The New Stack reserves the right to block or remove Content at any time in our sole discretion.</p> 7605<h3>THE NEW STACK’S USE OF SUBMITTED CONTENT.</h3> 7606<p>By posting or submitting Content on or to the Site (including through social media channels), you grant to The New Stack a
7606non-exclusive, perpetual, worldwide, royalty-free, transferable license to use, copy, distribute, publicly display, modify, create derivative works, commercialize and sublicense such Content, in whole or in part, in any media, now or hereafter known or developed for all purposes, without any additional consideration due to you. You acknowledge and represent that such Content is not confidential. By posting or distributing such Content, you understand that it may be freely copied and distributed by others without your permission. In the event that you submit or post any creative suggestions, proposals, or ideas about our products and services, you agree that such submissions will be automatically treated as non-confidential and non-proprietary and will become our sole property without any compensation or credit to you whatsoever.</p> 7607<h3>COPYRIGHT INFRINGEMENT NOTICE PROCEDURE.</h3> 7608<p>The New Stack respects intellectual property rights. If you believe your copyrighted work has been copied or posted on or through the Website in a way that constitutes copyright infringement, then please contact us at <a href="mailto:[email protected]">[email protected]</a> and provide the following information:</p> 7609<ol style="list-style:lower-alpha"> 7610<li>A description of the copyrighted work that you believe has been infringed;</li> 7611<li>A description of what the allegedly infringing work is;</li> 7612<li>A description of the location where the allegedly infringing work is located on the Website;</li> 7613<li>An address and telephone number where you can be contacted, including an email address if possible;</li> 7614<li>A statement that you have a good faith belief that the disputed use is not authorized by the copyright owner, its agent or the law;</li> 7615<li>A physical or electronic signature of a person authorized to act on behalf of the owner of the copyright; and</li> 7616<li>A statement, made under penalty of perjury, that the above information in the notice is accurate and that the signatory is the copyright owner or is authorized to act on behalf of the copyright owner.</li> 7617</ol> 7618<h3>PRESERVATION AND DISCLOSURE.</h3> 7619<p>The New Stack may access, preserve and disclose your account information and Content if required to do so by law or in a good faith belief that such access, preservation or disclosure is reasonably necessary to: (a) comply with legal process; (b) enforce this agreement; (c) respond to claims that any Content violates the rights of third parties; (d) protect the rights, property or personal safety of The New Stack and its personnel, its users and the public; or (e) pursuant to the terms of the Privacy Policy.</p> 7620<h3>TERMINATION.</h3> 7621<p>We reserve the right in our sole discretion to (i) delete any of your Content, (ii) restrict your use of all or any part of the Site, and (iii) modify or discontinue the Site (or any part of the Site), for any or no reason, without notice, and without liability to you or anyone else. We also reserve the right to block users from accessing or posting Content to the Site by using any technology available, such as blacklisting certain IP addresses or device numbers.</p> 7622<h3>REPRESENTATIONS AND WARRANTIES.</h3> 7623<p>You represent and warrant that: (i) you are 18 years of age or older; (ii) you have provided accurate and current information about yourself in all forms used in conjunction with the Site; (iii) you are eligible to use the Site and have the right and power to enter into these Terms of Use; (iv) you and will comply with all federal, state and local laws, including without limitation applicable tax laws; (v) you will not use the Site, directly or indirectly, for any fraudulent undertaking or in any manner that interferes with the operation of the Site; and (vi) you and your use of the Site will be in compliance with these Terms of Use.</p> 7624<h3>WARRANTY DISCLAIMER.</h3> 7625<p>THE SITE IS AVAILABLE “AS IS.” THE NEW STACK DOES NOT WARRANT THAT THE SITE WILL BE UNINTERRUPTED OR ERROR-FREE. THERE MAY BE DELAYS, OMISSIONS, INTERRUPTIONS AND INACCURACIES IN THE NEWS, INFORMATION OR OTHER MATERIALS AVAILABLE THROUGH THE SITE. THE NEW STACK DOES NOT MAKE ANY WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, THOSE OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, WITH RESPECT TO THE SITE OR ANY INFORMATION OR GOODS THAT ARE AVAILABLE OR ADVERTISED OR SOLD THROUGH THE SITE. THE NEW STACK DOES NOT MAKE ANY REPRESENTATIONS, NOR DOES IT ENDORSE THE ACCURACY, COMPLETENESS, TIMELINESS OR RELIABILITY OF ANY ADVICE, OPINION, STATEMENT OR OTHER MATERIAL OR DATABASE DISPLAYED, UPLOADED OR DISTRIBUTED ON THE SITE OR AVAILABLE THROUGH LINKS ON THE SITE. WE RESERVE THE RIGHT TO CORRECT ANY ERRORS OR OMISSIONS ON THE SITE. ALTHOUGH THE NEW STACK INTENDS TO TAKE REASONABLE STEPS TO PREVENT THE INTRODUCTION OF VIRUSES, WORMS, “TROJAN HORSES” OR OTHER DESTRUCTIVE MATERIALS TO THE SITE, IT DOES NOT GUARANTEE OR WARRANT THAT THE SITE OR MATERIALS THAT MAY BE DOWNLOADED FROM THE SITE DO NOT CONTAIN SUCH DESTRUCTIVE FEATURES. THE NEW STACK IS NOT LIABLE FOR ANY DAMAGES OR HARM ATTRIBUTABLE TO SUCH FEATURES. IF YOU RELY ON THE SITE AND ANY MATERIALS AVAILABLE THROUGH THE SITE, YOU DO SO SOLELY AT YOUR OWN RISK.</p> 7626<h3>LIMITATION OF LIABILITY AND DAMAGES.</h3> 7627<p>TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE NEW STACK, ITS AFFILIATES, OFFICERS, DIRECTORS, EMPLOYEES, AGENTS, SERVICES PROVIDERS AND LICENSORS SHALL NOT BE LIABLE TO YOU OR ANYONE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL OR EXEMPLARY DAMAGES, INCLUDING BUT NOT LIMITED TO DAMAGES FOR LOST PROFITS, GOODWILL, USE, DATA OR OTHER INTANGIBLE LOSSES (REGARDLESS OF WHETHER THE NEW STACK HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES), HOWEVER CAUSED, WHETHER BASED ON UPON CONTRACT, NEGLIGENCE, STRICT LIABILITY IN TORT, WARRANTY OR ANY OTHER LEGAL THEORY, ARISING OUT OF OR RELATED TO: (i) THE USE OR THE INABILITY TO USE THE SITE OR ANY ERRORS, OMISSIONS OR INACCURACIES IN ANY CONTENT IN THE SITE;
7627 (ii) THE SITE OR THE CONDUCT OF OTHER SITE USERS OR THIRD PARTIES; (iii) UNAUTHORIZED ACCESS TO OR ALTERATION OF YOUR DATA, CONTENT OR PERSONAL INFORMATION; (iv) ANY BUGS VIRUSES, TROJAN HORSES, OR THE LIKE THAT MAY BE TRANSMITTED TO OR THROUGH THE SITE BY ANY THIRD PARTY; (v) ANY OTHER MATTER RELATING TO THE SITE OR ANY PRODUCTS OR SERVICES MADE AVAILABLE THROUGH THE SITE. ANY CLAIM AGAINST THE NEW STACK SHALL BE LIMITED TO THE AMOUNT YOU PAID, IF ANY, FOR USE OF THE SITE.</p> 7628<h3>INDEMNITY.</h3> 7629<p>You agree to defend, indemnify and hold harmless The New Stack, its affiliates, licensors and service providers, and its and their respective officers, directors, employees, contractors, agents, licensors, suppliers, successors and assigns from and against any claims, liabilities, damages, judgments, awards, losses, costs, expenses or fees (including reasonable attorneys’ fees) arising out of or relating to your violation of these Terms of Use or your use of the Site, including, but not limited to, your user Content, any use of the Site’s content, services and products other than as expressly authorized in these Terms of Use or your use of any information obtained from the Site.</p> 7630<h3>THIRD PARTY SITES.</h3> 7631<p>The Site may contain links to websites, applications or other products or services operated by other companies and offers provided by third parties (“Third Party Sites”). We do not endorse, monitor or have any control over these Third Party Sites, which are governed by separate terms and privacy policies. We are not responsible for the content or policies of Third Party Sites and you access such Third Party Sites at your own risk. We expressly disclaim any liability for these Third Party Sites.</p> 7632<h3>MISCELLANEOUS.</h3> 7633<p>The terms that by their nature may survive termination shall remain in effect and survive the termination of these Terms of Use. These Terms of Use are personal to you, the user. You may not assign these Terms of Use or any rights and licenses in these Terms of Use to another party. These Terms of Use may be assigned by The New Stack without restriction.</p> 7634<p>This Agreement shall be governed by the laws of the State of Oregon, without giving effect to its conflict of laws provisions. You agree to submit to the personal and exclusive jurisdiction of the state and federal courts located in Multnomah County, Oregon, and agree you will not object to such jurisdiction or venue on the grounds of lack of personal jurisdiction, forum non conveniens or otherwise. To the extent it may be applicable, you agree to opt out from and expressly exclude any applicability of the Uniform Computer Information Transactions Act. Any cause of action or claim you may have with respect to The New Stack or the Site must be commenced within one (1) year after the claim or cause of action arises, or such claim or cause of action is barred.</p> 7635<p>Our failure to exercise or enforce any right or provision of the Terms of Use will not constitute a waiver of that or any other right or provision. Neither the course of conduct between the parties nor trade practice shall modify any of the terms in these Terms of Use. If any provision in these Terms of Use is determined by a court to be invalid or unenforceable, the remaining provisions of these Terms of Use shall continue to be valid and enforceable. These Terms of Use constitute the entire agreement between you and us and govern your use of the Blog. These Terms of Use supersede any prior agreements, communications, representations, or understandings between you and us, including without limitation any prior versions of these Terms of Use.</p> 7636 </div> 7637 </div> 7638</div> 7639 7640 <footer id="tns-footer"> 7641 <div class="content-column"> 7642 <div class="row"> 7643 <div class="col"> 7644 <div id="tns-footer-nav-menus"> 7645 <div class="row footer-nav-row"> 7646 <div class="col-15 footer-nav-col"> 7647 <div class="footer-nav-header"> 7648 ARCHITECTURE 7649 </div> 7650 <div class="footer-nav-menu"> 7651 <a 7652 href="https://thenewstack.io/cloud-native/" 7653 class="topic-cloud-native" 7654 data-category-slug="cloud-native" 7655 > 7656 Cloud Native Ecosystem </a> 7657 <a 7658 href="https://thenewstack.io/containers/" 7659 class="topic-containers" 7660 data-category-slug="containers" 7661 > 7662 Containers </a> 7663 <a 7664 href="https://thenewstack.io/databases/" 7665 class="topic-databases" 7666 data-category-slug="databases" 7667 > 7668 Databases </a> 7669 <a 7670 href="https://thenewstack.io/edge-computing/" 7671 class="topic-edge-computing" 7672 data-category-slug="edge-computing" 7673 > 7674 Edge Computing </a> 7675 <a
7676 href="https://thenewstack.io/infrastructure-as-code/" 7677 class="topic-infrastructure-as-code" 7678 data-category-slug="infrastructure-as-code" 7679 > 7680 Infrastructure as Code </a> 7681 <a 7682 href="https://thenewstack.io/linux/" 7683 class="topic-linux" 7684 data-category-slug="linux" 7685 > 7686 Linux </a> 7687 <a 7688 href="https://thenewstack.io/microservices/" 7689 class="topic-microservices" 7690 data-category-slug="microservices" 7691 > 7692 Microservices </a> 7693 <a 7694 href="https://thenewstack.io/open-source/" 7695 class="topic-open-source" 7696 data-category-slug="open-source" 7697 > 7698 Open Source </a> 7699 <a 7700 href="https://thenewstack.io/networking/" 7701 class="topic-networking" 7702 data-category-slug="networking" 7703 > 7704 Networking </a> 7705 <a 7706 href="https://thenewstack.io/storage/" 7707 class="topic-storage" 7708 data-category-slug="storage" 7709 > 7710 Storage </a> 7711 </div> 7712 </div> 7713 7714 <div class="col-15 footer-nav-col"> 7715 <div class="footer-nav-header"> 7716 ENGINEERING 7717 </div> 7718 <div class="footer-nav-menu"> 7719 <a 7720 href="https://thenewstack.io/ai/" 7721 class="topic-ai" 7722 data-category-slug="ai" 7723 > 7724 AI </a> 7725 <a 7726 href="https://thenewstack.io/ai-engineering/" 7727 class="topic-ai-engineering" 7728 data-category-slug="ai-engineering" 7729 > 7730 AI Engineering </a> 7731 <a 7732 href="https://thenewstack.io/api-management/" 7733 class="topic-api-management" 7734 data-category-slug="api-management" 7735 > 7736 API Management </a> 7737 <a 7738 href="https://thenewstack.io/backend-development/" 7739 class="topic-backend-development" 7740 data-category-slug="backend-development" 7741 > 7742 Backend development </a> 7743 <a 7744 href="https://thenewstack.io/data/" 7745 class="topic-data" 7746 data-category-slug="data" 7747 > 7748 Data </a> 7749 <a 7750 href="https://thenewstack.io/frontend-development/" 7751 class="topic-frontend-development" 7752 data-category-slug="frontend-development" 7753 > 7754 Frontend Development </a> 7755 <a 7756 href="https://thenewstack.io/llm/" 7757 class="topic-llm" 7758 data-category-slug="llm" 7759 > 7760 Large Language Models </a> 7761 <a 7762 href="https://thenewstack.io/security/" 7763 class="topic-security" 7764 data-category-slug="security" 7765 > 7766 Security </a> 7767 <a 7768 href="https://thenewstack.io/software-development/" 7769 class="topic-software-development" 7770 data-category-slug="software-development" 7771 > 7772 Software Development </a> 7773 <a 7774 href="https://thenewstack.io/webassembly/" 7775 class="topic-webassembly" 7776 data-category-slug="webassembly" 7777 > 7778 WebAssembly </a> 7779 </div> 7780 </div> 7781 7782 <div class="col-15 footer-nav-col"> 7783 <div class="footer-nav-header"> 7784 OPERATIONS 7785 </div> 7786 <div class="footer-nav-menu"> 7787 <a 7788 href="https://thenewstack.io/ai-operations/" 7789 class="topic-ai-operations" 7790 data-category-slug="ai-operations" 7791 > 7792 AI Operations </a> 7793 <a 7794 href="https://thenewstack.io/ci-cd/" 7795 class="topic-ci-cd" 7796 data-category-slug="ci-cd" 7797 > 7798 CI/CD </a> 7799 <a 7800 href="https://thenewstack.io/cloud-services/" 7801 class="topic-cloud-services" 7802 data-category-slug="cloud-services" 7803 > 7804 Cloud Services </a> 7805 <a 7806 href="https://thenewstack.io/devops/" 7807 class="topic-devops" 7808 data-category-slug="devops" 7809 > 7810 DevOps </a> 7811 <a 7812 href="https://thenewstack.io/kubernetes/" 7813 class="topic-kubernetes" 7814 data-category-slug="kubernetes" 7815 > 7816 Kubernetes </a> 7817 <a 7818 href="https://thenewstack.io/observability/" 7819 class="topic-observability" 7820 data-category-slug="observability" 7821 > 7822 Observability </a> 7823 <a 7824 href="https://thenewstack.io/operations/" 7825 class="topic-operations" 7826 data-category-slug="operations" 7827 > 7828 Operations </a> 7829 <a 7830 href="https://thenewstack.io/platform-engineering/" 7831 class="topic-platform-engineering" 7832 data-category-slug="platform-engineering" 7833 > 7834 Platform Engineering </a> 7835 </div> 7836 </div> 7837 7838 <div class="col-15 footer-nav-col"> 7839 <div class="footer-nav-header"> 7840 CHANNELS 7841 </div> 7842 <div class="footer-nav-menu"> 7843 <a 7844 href="https://thenewstack.io/podcasts/" 7845 class="topic-podcasts" 7846 data-category-slug="podcasts" 7847 > 7848 Podcasts </a> 7849 <a 7850 href="https://thenewstack.io/ebooks/" 7851 class="topic-ebooks" 7852 data-category-slug="ebooks" 7853 > 7854 Ebooks </a> 7855 <a 7856 href="https://thenewstack.io/events/" 7857 class="topic-events" 7858 data-category-slug="events" 7859 > 7860 Events </a> 7861 <a 7862 href="https://thenewstack.io/webinars/" 7863 class="topic-webinars" 7864 data-category-slug="webinars" 7865 > 7866 Webinars </a> 7867 <a 7868 href="https://thenewstack.io/newsletter/" 7869 class="topic-newsletter" 7870 data-category-slug="newsletter" 7871 > 7872 Newsletter </a> 7873 <a 7874 href="/rss-feeds/" 7875 class="topic-rss-feeds" 7876 data-category-slug="rss-feeds" 7877 > 7878 TNS RSS Feeds </a> 7879 </div> 7880 </div> 7881 7882 <div class="col-15 footer-nav-col"> 7883 <div class="footer-nav-header"> 7884 THE NEW STACK 7885 </div> 7886 <div class="footer-nav-menu"> 7887 <a 7888 href="https://thenewstack.io/about-and-contact-info/" 7889 class="topic-about-and-contact-info" 7890 data-category-slug="about-and-contact-info" 7891 > 7892 About / Contact </a> 7893 <a 7894 href="https://thenewstack.io/sponsors/" 7895 class="topic-sponsors" 7896 data-category-slug="sponsors" 7897 > 7898 Sponsors </a> 7899 <a 7900 href="https://thenewstack.io/sponsorship/" 7901 class="topic-sponsorship" 7902 data-category-slug="sponsorship" 7903 > 7904 Advertise With Us </a> 7905 <a 7906 href="https://thenewstack.io/contributions/" 7907 class="topic-contributions" 7908 data-category-slug="contributions" 7909 > 7910 Contributions </a> 7911 </div> 7912 </div> 7913 <div class="col-15 footer-nav-col"> 7914 <a 7915 href="https://roadmap.sh/?utm_source=The+New+Stack&utm_medium=Referral&utm_campaign=Footer" 7916 class="roadmap-link" 7917 target="_blank" 7918 > 7919 <div class="footer-nav-header"> 7920 <svg width="283" height="283" viewBox="0 0 283 283" fill="none" xmlns="http://www.w3.org/2000/svg"> 7921 <path d="M0 39C0 17.4609 17.4609 0 39 0H244C265.539 0 283 17.4609 283 39V244C283 265.539 265.539 283 244 283H39C17.4609 283 0 265.539 0 244V39Z" fill="black"></path> 7922 <path d="M121.215 210.72C119.348 211.28 116.361 211.84 112.255 212.4C108.335 212.96 104.228 213.24 99.9347 213.24C95.828 213.24 92.0947 212.96 88.7347 212.4C85.5614 211.84 82.8547 210.72 80.6147 209.04C78.3747 207.36 76.6014 205.12 75.2947 202.32C74.1747 199.333 73.6147 195.507 73.6147 190.84V106.84C73.6147 102.547 74.3614 98.9067 75.8547 95.92C77.5347 92.7467 79.868 89.9467 82.8547 87.52C85.8414 85.0933 89.4814 82.9467 93.7747 81.08C98.2547 79.0267 103.015 77.2533 108.055 75.76C113.095 74.2667 118.321 73.1467 123.735 72.4C129.148 71.4667 134.561 71 139.975 71C148.935 71 156.028 72.7733 161.255 76.32C166.481 79.68 169.095 85.28 169.095 93.12C169.095 95.7333 168.721 98.3467 167.975 100.96C167.228 103.387 166.295 105.627 165.175 107.68C161.255 107.68 157.241 107.867 153.135 108.24C149.028 108.613 145.015 109.173 141.095 109.92C137.175 110.667 133.441 111.507 129.895 112.44C126.535 113.187 123.641 114.12 121.215 115.24V210.72ZM166.387 188.32C166.387 180.48 168.813 173.947 173.667 168.72C178.52 163.493 185.147 160.88 193.547 160.88C201.947 160.88 208.573 163.493 213.427 168.72C218.28 173.947 220.707 180.48 220.707 188.32C220.707 196.16 218.28 202.693 213.427 207.92C208.573 213.147 201.947 215.76 193.547 215.76C185.147 215.76 178.52 213.147 173.667 207.92C168.813 202.693 166.387 196.16 166.387 188.32Z" fill="white"></path> 7923</svg>roadmap.sh </div> 7924 <div class="footer-nav-menu roadmap-copy"> 7925 <p> 7926 Community created roadmaps, articles, resources and journeys for 7927 developers to help you choose your path and grow in your career. 7928 </p> 7929 </div> 7930 </a> 7931 7932 <a 7933 class="roadmap-page-link" 7934 href="https://roadmap.sh/frontend?utm_source=The+New+Stack&utm_medium=Referral&utm_campaign=Footer" 7935 target="_blank" 7936 > 7937 Frontend Developer Roadmap 7938 <svg xmlns="http://www.w3.org/2000/svg" width="23.012" height="17.268" viewBox="0 0 23.012 17.268"> 7939 <path id="Path_340" data-name="Path 340" d="M14.36,0,12.816,1.508l6.067,6.067H0V9.729H18.884l-6.031,6.032L14.4,17.268l8.616-8.616Z" transform="translate(0 0)"/> 7940</svg> 7941 </a> 7942 7943 <a 7944 class="roadmap-page-link" 7945 href="https://roadmap.sh/backend?utm_source=The+New+Stack&utm_medium=Referral&utm_campaign=Footer" 7946 target="_blank" 7947 > 7948 Backend Developer Roadmap 7949 <svg xmlns="http://www.w3.org/2000/svg" width="23.012" height="17.268" viewBox="0 0 23.012 17.268"> 7950 <path id="Path_340" data-name="Path 340" d="M14.36,0,12.816,1.508l6.067,6.067H0V9.729H18.884l-6.031,6.032L14.4,17.268l8.616-8.616Z" transform="translate(0 0)"/> 7951</svg> 7952 </a> 7953 7954 <a 7955 class="roadmap-page-link" 7956 href="https://roadmap.sh/devops?utm_source=The+New+Stack&utm_medium=Referral&utm_campaign=Footer" 7957 target="_blank" 7958 > 7959 Devops Roadmap 7960 <svg xmlns="http://www.w3.org/2000/svg" width="23.012" height="17.268" viewBox="0 0 23.012 17.268"> 7961 <path id="Path_340" data-name="Path 340" d="M14.36,0,12.816,1.508l6.067,6.067H0V9.729H18.884l-6.031,6.032L14.4,17.268l8.616-8.616Z" transform="translate(0 0)"/> 7962</svg> 7963 </a> 7964 </div> 7965 </div> 7966</div> </div>
7967 </div> 7968 <div class="row"> 7969 <div class="col"> 7970 <div id="tns-footer-legal"> 7971 <div class="row"> 7972 <div class="col col-75 col-legal"> 7973 <div class="copyright"> 7974 © The New Stack 2026 </div> 7975 <div class="terms"> 7976 <a href="/disclosure-guidelines/">Disclosures</a> 7977 <a href="/terms-of-use/">Terms of Use</a> 7978 <a href="/advertising-terms-conditions/">Advertising Terms & Conditions</a> 7979 <a href="/privacy-policy/">Privacy Policy</a> 7980 <a href="/cookie-policy/">Cookie Policy</a> 7981 </div> 7982 </div> 7983 7984 <div class="col col-25 col-social"> 7985 <div class="footer-nav-header"> 7986 FOLLOW TNS 7987 </div> 7988 <div class="social-links"> 7989 7990 <div 7991 class="tns-follow-links" 7992 data-instanceid="6aa91abd72e84" 7993 > 7994 <div class="follow-links"> 7995 <a 7996 rel="me" 7997 href="https://hachyderm.io/@TheNewStack" 7998 class="follow-icon follow-icon-mastadon" 7999 data-platform="mastodon" 8000 data-position="footer" 8001 target="_blank" 8002 > 8003 <svg class="fill" fill="#000000" viewBox="0 0 25 25" style="width: 25px; height: 25px" xmlns="http://www.w3.org/2000/svg" xml:space="preserve"> 8004 <path d="M21.327 8.566c0-4.339-2.843-5.61-2.843-5.61-1.433-.658-3.894-.935-6.451-.956h-.063c-2.557.021-5.016.298-6.45.956 0 0-2.843 1.272-2.843 5.61 0 .993-.019 2.181.012 3.441.103 4.243.778 8.425 4.701 9.463 1.809.479 3.362.579 4.612.51 2.268-.126 3.541-.809 3.541-.809l-.075-1.646s-1.621.511-3.441.449c-1.804-.062-3.707-.194-3.999-2.409a4.523 4.523 0 0 1-.04-.621s1.77.433 4.014.536c1.372.063 2.658-.08 3.965-.236 2.506-.299 4.688-1.843 4.962-3.254.434-2.223.398-5.424.398-5.424zm-3.353 5.59h-2.081V9.057c0-1.075-.452-1.62-1.357-1.62-1 0-1.501.647-1.501 1.927v2.791h-2.069V9.364c0-1.28-.501-1.927-1.502-1.927-.905 0-1.357.546-1.357 1.62v5.099H6.026V8.903c0-1.074.273-1.927.823-2.558.566-.631 1.307-.955 2.228-.955 1.065 0 1.872.409 2.405 1.228l.518.869.519-.869c.533-.819 1.34-1.228 2.405-1.228.92 0 1.662.324 2.228.955.549.631.822 1.484.822 2.558v5.253z"/> 8005 </svg> 8006 </a> 8007 8008 <a 8009 href="https://bsky.app/profile/thenewstack.io" 8010 class="follow-icon follow-icon-bluesky" 8011 data-platform="bluesky" 8012 data-position="footer" 8013 target="_blank" 8014 > 8015 <svg class="fill" fill="#000000" viewBox="0 0 64 57" width="24" style="width: 24px"> 8016 <path fill="#0085ff" d="M13.873 3.805C21.21 9.332 29.103 20.537 32 26.55v15.882c0-.338-.13.044-.41.867-1.512 4.456-7.418 21.847-20.923 7.944-7.111-7.32-3.819-14.64 9.125-16.85-7.405 1.264-15.73-.825-18.014-9.015C1.12 23.022 0 8.51 0 6.55 0-3.268 8.579-.182 13.873 3.805ZM50.127 3.805C42.79 9.332 34.897 20.537 32 26.55v15.882c0-.338.13.044.41.867 1.512 4.456 7.418 21.847 20.923 7.944 7.111-7.32 3.819-14.64-9.125-16.85 7.405 1.264 15.73-.825 18.014-9.015C62.88 23.022 64 8.51 64 6.55c0-9.818-8.578-6.732-13.873-2.745Z"></path> 8017 </svg> 8018 </a> 8019 8020 <a 8021 href="https://www.threads.net/@thenewstack" 8022 class="follow-icon follow-icon-threads" 8023 data-platform="threads" 8024 data-position="footer" 8025 target="_blank" 8026 > 8027 <svg fill="#CCCCCC" viewBox="0 0 192 192"> 8028 <path d="M141.537 88.9883C140.71 88.5919 139.87 88.2104 139.019 87.8451C137.537 60.5382 122.616 44.905 97.5619 44.745C97.4484 44.7443 97.3355 44.7443 97.222 44.7443C82.2364 44.7443 69.7731 51.1409 62.102 62.7807L75.881 72.2328C81.6116 63.5383 90.6052 61.6848 97.2286 61.6848C97.3051 61.6848 97.3819 61.6848 97.4576 61.6855C105.707 61.7381 111.932 64.1366 115.961 68.814C118.893 72.2193 120.854 76.925 121.825 82.8638C114.511 81.6207 106.601 81.2385 98.145 81.7233C74.3247 83.0954 59.0111 96.9879 60.0396 116.292C60.5615 126.084 65.4397 134.508 73.775 140.011C80.8224 144.663 89.899 146.938 99.3323 146.423C111.79 145.74 121.563 140.987 128.381 132.296C133.559 125.696 136.834 117.143 138.28 106.366C144.217 109.949 148.617 114.664 151.047 120.332C155.179 129.967 155.42 145.8 142.501 158.708C131.182 170.016 117.576 174.908 97.0135 175.059C74.2042 174.89 56.9538 167.575 45.7381 153.317C35.2355 139.966 29.8077 120.682 29.6052 96C29.8077 71.3178 35.2355 52.0336 45.7381 38.6827C56.9538 24.4249 74.2039 17.11 97.0132 16.9405C119.988 17.1113 137.539 24.4614 149.184 38.788C154.894 45.8136 159.199 54.6488 162.037 64.9503L178.184 60.6422C174.744 47.9622 169.331 37.0357 161.965 27.974C147.036 9.60668 125.202 0.195148 97.0695 0H96.9569C68.8816 0.19447 47.2921 9.6418 32.7883 28.0793C19.8819 44.4864 13.2244 67.3157 13.0007 95.9325L13 96L13.0007 96.0675C13.2244 124.684 19.8819 147.514 32.7883 163.921C47.2921 182.358 68.8816 191.806 96.9569 192H97.0695C122.03 191.827 139.624 185.292 154.118 170.811C173.081 151.866 172.51 128.119 166.26 113.541C161.776 103.087 153.227 94.5962 141.537 88.9883ZM98.4405 129.507C88.0005 130.095 77.1544 125.409 76.6196 115.372C76.2232 107.93 81.9158 99.626 99.0812 98.6368C101.047 98.5234 102.976 98.468 104.871 98.468C111.106 98.468 116.939 99.0737 122.242 100.233C120.264 124.935 108.662 128.946 98.4405 129.507Z"></path> 8029 </svg> 8030 </a> 8031 8032 <a 8033 href="https://www.linkedin.com/company/the-new-stack" 8034 class="follow-icon follow-icon-linkedin" 8035 data-platform="linkedin" 8036 data-position="footer" 8037 target="_blank" 8038 > 8039 <svg viewBox="0 0 16.927 16.689" class="fill"> 8040 <path d="M3.833,1.809A1.8,1.8,0,0,1,1.88,3.619,1.783,1.783,0,0,1,0,1.809,1.8,1.8,0,0,1,1.928,0a1.789,1.789,0,0,1,1.9,1.809M.1,5.047H3.714V16.689H.1Z" transform="translate(0 0)"/> 8041 <path d="M28.535,27.5c0-1.452-.047-2.666-.095-3.714h3.142l.167,1.619h.071a4.18,4.18,0,0,1,3.6-1.881c2.381,0,4.166,1.6,4.166,5.024V35.43H35.963V28.978c0-1.5-.524-2.523-1.833-2.523a1.987,1.987,0,0,0-1.857,1.357,2.6,2.6,0,0,0-.119.9V35.43H28.535Z" transform="translate(-22.655 -18.741)"/> 8042 <svg> 8043 </a> 8044 8045 <a 8046 href="https://twitter.com/thenewstack" 8047 class="follow-icon follow-icon-twitter" 8048 data-platform="twitter" 8049 data-position="footer" 8050 target="_blank" 8051 > 8052 <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" width="24px" height="24px" viewBox="0 0 24 24" style="enable-background:new 0 0 24 24;" xml:space="preserve" class="fill"> 8053 <path d="M14.095479,10.316482L22.286354,1h-1.940718l-7.115352,8.087682L7.551414,1H1l8.589488,12.231093L1,23h1.940717 l7.509372-8.542861L16.448587,23H23L14.095479,10.316482z M11.436522,13.338465l-0.871624-1.218704l-6.924311-9.68815h2.981339 l5.58978,7.82155l0.867949,1.218704l7.26506,10.166271h-2.981339L11.436522,13.338465z"/> 8054 </svg> 8055 </a> 8056 8057 <a 8058 href="https://www.facebook.com/thenewstack/" 8059 class="follow-icon follow-icon-facebook" 8060 data-platform="facebook" 8061 data-position="footer" 8062 target="_blank" 8063 > 8064 <svg viewBox="0 0 17.492 17.492" class="fill"> 8065 <path d="M15.306,0H2.187A2.193,2.193,0,0,0,0,2.187V15.306a2.193,2.193,0,0,0,2.187,2.187H8.822V11.22H6.727V8.488H8.822V7.119a3.621,3.621,0,0,1,3.547-3.763H14.3V6.441H12.572c-.452,0-.585.26-.585.618V8.488H14.3V11.22H11.987v6.272h3.318a2.193,2.193,0,0,0,2.187-2.187V2.187A2.193,2.193,0,0,0,15.306,0"/> 8066 </svg> 8067 </a> 8068 8069 <!-- 8070 <a 8071 href="https://www.instagram.com/thenewstack/" 8072 class="follow-icon follow-icon-instagram" 8073 data-platform="instagram" 8074 data-position="footer" 8075 target="_blank" 8076 > 8077 <svg viewBox="0 0 17.839 17.84" class="fill"> 8078 <path d="M8.92,1.607c2.382,0,2.664.009,3.6.052a4.937,4.937,0,0,1,1.656.307,2.763,2.763,0,0,1,1.026.667,2.763,2.763,0,0,1,.667,1.026,4.938,4.938,0,0,1,.307,1.656c.043.941.052,1.223.052,3.6s-.009,2.664-.052,3.6a4.937,4.937,0,0,1-.307,1.656,2.955,2.955,0,0,1-1.693,1.693,4.937,4.937,0,0,1-1.656.307c-.941.043-1.223.052-3.6.052s-2.664-.009-3.6-.052a4.937,4.937,0,0,1-1.656-.307,2.763,2.763,0,0,1-1.026-.667,2.763,2.763,0,0,1-.667-1.026,4.937,4.937,0,0,1-.307-1.656c-.043-.941-.052-1.223-.052-3.6s.009-2.664.052-3.6a4.938,4.938,0,0,1,.307-1.656,2.763,2.763,0,0,1,.667-1.026,2.763,2.763,0,0,1,1.026-.667,4.937,4.937,0,0,1,1.656-.307c.941-.043,1.223-.052,3.6-.052M8.92,0C6.5,0,6.193.01,5.242.054A6.547,6.547,0,0,0,3.077.468,4.376,4.376,0,0,0,1.5,1.5,4.373,4.373,0,0,0,.468,3.077,6.547,6.547,0,0,0,.054,5.242C.01,6.194,0,6.5,0,8.92S.01,11.646.054,12.6a6.547,6.547,0,0,0,.415,2.165A4.373,4.373,0,0,0,1.5,16.343a4.373,4.373,0,0,0,1.58,1.029,6.547,6.547,0,0,0,2.165.415c.951.044,1.255.054,3.678.054s2.726-.01,3.678-.054a6.547,6.547,0,0,0,2.165-.415,4.56,4.56,0,0,0,2.609-2.609,6.547,6.547,0,0,0,.415-2.165c.
8078044-.951.054-1.255.054-3.678s-.01-2.726-.054-3.678a6.547,6.547,0,0,0-.415-2.165A4.373,4.373,0,0,0,16.343,1.5,4.376,4.376,0,0,0,14.763.468,6.547,6.547,0,0,0,12.6.054C11.646.01,11.342,0,8.92,0" transform="translate(0 0)"/> 8079 <path d="M25.914,21.334a4.581,4.581,0,1,0,4.58,4.581,4.581,4.581,0,0,0-4.58-4.581m0,7.554a2.973,2.973,0,1,1,2.973-2.973,2.973,2.973,0,0,1-2.973,2.973" transform="translate(-16.995 -16.995)"/> 8080 <path d="M64.142,16.253a1.07,1.07,0,1,1-1.07-1.07,1.071,1.071,0,0,1,1.07,1.07" transform="translate(-49.39 -12.095)"/> 8081 </svg> 8082 </a> 8083 --> 8084 8085 <a 8086 href="https://open.spotify.com/show/2nj1mpDb9jxHxi9vjZvDdk" 8087 class="follow-icon follow-icon-spotify" 8088 data-platform="spotify" 8089 data-position="footer" 8090 target="_blank" 8091 > 8092 <svg fill="#CCCCCC" viewBox="0 0 24 24" height="32"> 8093 <path d="M13.427.01C6.805-.253 1.224 4.902.961 11.524.698 18.147 5.853 23.728 12.476 23.99c6.622.263 12.203-4.892 12.466-11.514S20.049.272 13.427.01m5.066 17.579a.717.717 0 0 1-.977.268 14.4 14.4 0 0 0-5.138-1.747 14.4 14.4 0 0 0-5.42.263.717.717 0 0 1-.338-1.392c1.95-.474 3.955-.571 5.958-.29 2.003.282 3.903.928 5.647 1.92a.717.717 0 0 1 .268.978m1.577-3.15a.93.93 0 0 1-1.262.376 17.7 17.7 0 0 0-5.972-1.96 17.7 17.7 0 0 0-6.281.238.93.93 0 0 1-1.11-.71.93.93 0 0 1 .71-1.11 19.5 19.5 0 0 1 6.94-.262 19.5 19.5 0 0 1 6.599 2.165c.452.245.62.81.376 1.263m1.748-3.551a1.147 1.147 0 0 1-1.546.488 21.4 21.4 0 0 0-6.918-2.208 21.4 21.4 0 0 0-7.259.215 1.146 1.146 0 0 1-.456-2.246 23.7 23.7 0 0 1 8.034-.24 23.7 23.7 0 0 1 7.657 2.445c.561.292.78.984.488 1.546m13.612-.036-.832-.247c-1.67-.495-2.14-.681-2.14-1.353 0-.637.708-1.327 2.264-1.327 1.539 0 2.839.752 3.51 1.31.116.096.24.052.24-.098V6.935c0-.097-.027-.15-.098-.203-.83-.62-2.272-1.07-3.723-1.07-2.953 0-4.722 1.68-4.722 3.59 0 2.157 1.371 2.91 3.626 3.546l.973.274c1.689.478 1.998.902 1.998 1.556 0 1.097-.831 1.433-2.07 1.433-1.556 0-3.457-.911-4.35-2.025-.08-.098-.177-.053-.177.062v2.423c0 .097.01.141.08.22.743.814 2.52 1.53 4.59 1.53 2.546 0 4.456-1.485 4.456-3.784 0-1.787-1.052-2.865-3.625-3.635m10.107-1.76c-1.68 0-2.653 1.026-3.219 2.052V9.376c0-.08-.044-.124-.124-.124h-2.22c-.079 0-.123.044-.123.124V20.72c0 .08.044.124.124.124h2.22c.079 0 .123-.044.123-.124v-4.536c.566 1.025 1.521 2.034 3.237 2.034 2.264 0 3.89-1.955 3.89-4.581s-1.644-4.545-3.908-4.545m-.654 6.986c-1.185 0-2.211-1.167-2.618-2.458.407-1.362 1.344-2.405 2.618-2.405 1.211 0 2.051.92 2.051 2.423s-.84 2.44-2.051 2.44m40.633-6.826h-2.264c-.08 0-.115.017-.15.097l-2.282 5.483-2.29-5.483c-.035-.08-.07-.097-.15-.097h-3.661v-.584c0-.955.645-1.397 1.476-1.397.496 0 1.035.256 1.415.486.089.053.15-.008.115-.088l-.796-1.901a.26.26 0 0 0-.124-.133c-.389-.203-1.025-.38-1.644-.38-1.875 0-2.954 1.432-2.954 3.254v.743h-1.503c-.08 0-.124.044-.124.124v1.768c0 .08.044.124.124.124h1.503v6.668c0 .08.044.123.124.123h2.264c.08 0 .124-.044.124-.123v-6.668h1.936l2.812 6.11-1.512 3.325c-.044.098.009.142.097.142h2.414c.08 0 .116-.018.15-.097l4.997-11.355c.035-.08-.009-.141-.097-.141M54.964 9.04c-2.865 0-4.837 2.025-4.837 4.616 0 2.573 1.971 4.616 4.837 4.616 2.856 0 4.846-2.043 4.846-4.616 0-2.591-1.99-4.616-4.846-4.616m.008 7.065c-1.37 0-2.343-1.043-2.343-2.45 0-1.405.973-2.449 2.343-2.449 1.362 0 2.335 1.043 2.335 2.45 0 1.406-.973 2.45-2.335 2.45m33.541-6.334a1.24 1.24 0 0 0-.483-.471 1.4 1.4 0 0 0-.693-.17q-.384 0-.693.17a1.24 1.24 0 0 0-.484.471q-.174.302-.174.681 0 .375.174.677.175.3.484.471t.693.17.693-.17.483-.471.175-.676q0-.38-.175-.682m-.211 1.247a1 1 0 0 1-.394.39 1.15 1.15 0 0 1-.571.14 1.16 1.16 0 0 1-.576-.14 1 1 0 0 1-.391-.39 1.14 1.14 0 0 1-.14-.566q0-.316.14-.562t.391-.388.576-.14q.32 0 .57.14.253.141.395.39t.142.565q0 .312-.142.56m-19.835-5.78c-.85 0-1.468.6-1.468 1.396s.619 1.397 1.468 1.397c.866 0 1.485-.6 1.485-1.397 0-.796-.619-1.397-1.485-1.397m19.329 5.19a.31.31 0 0 0 .134-.262q0-.168-.132-.266-.132-.099-.381-.099h-.588v1.229h.284v-.489h.154l.374.489h.35l-.41-.518a.5.5 0 0 0 .215-.084m-.424-.109h-.26v-.3h.27q.12 0 .184.036a.12.12 0 0 1 .065.116.12.12 0 0 1-.067.111.4.4 0 0 1-.192.037M69.607 9.252h-2.263c-.08
80930-.124.044-.124.124v8.56c0 .08.044.123.124.123h2.263c.08 0 .124-.044.124-.123v-8.56c0-.08-.044-.124-.124-.124m-3.333 6.605a2.1 2.1 0 0 1-1.053.257c-.725 0-1.185-.425-1.185-1.362v-3.484h2.211c.08 0 .124-.044.124-.124V9.376c0-.08-.044-.124-.124-.124h-2.21V6.944c0-.097-.063-.15-.15-.08l-3.954 3.113c-.053.044-.07.088-.07.16v1.007c0 .08.044.124.123.124h1.539v3.855c0 2.087 1.203 3.06 2.918 3.06.743 0 1.46-.194 1.884-.442.062-.035.07-.07.07-.133v-1.68c0-.088-.044-.115-.123-.07" transform="translate(-0.95,0)"></path> 8094 </svg> 8095 </a> 8096 8097 <a 8098 href="https://www.youtube.com/c/thenewstack?sub_confirmation=1" 8099 class="follow-icon follow-icon-youtube" 8100 data-platform="youtube" 8101 data-position="footer" 8102 target="_blank" 8103 > 8104 <svg viewBox="0 0 310 310" class="fill"> 8105 <g id="XMLID_822_"> 8106 <path id="XMLID_823_" d="M297.917,64.645c-11.19-13.302-31.85-18.728-71.306-18.728H83.386c-40.359,0-61.369,5.776-72.517,19.938 8107 C0,79.663,0,100.008,0,128.166v53.669c0,54.551,12.896,82.248,83.386,82.248h143.226c34.216,0,53.176-4.788,65.442-16.527 8108 C304.633,235.518,310,215.863,310,181.835v-53.669C310,98.471,309.159,78.006,297.917,64.645z M199.021,162.41l-65.038,33.991 8109 c-1.454,0.76-3.044,1.137-4.632,1.137c-1.798,0-3.592-0.484-5.181-1.446c-2.992-1.813-4.819-5.056-4.819-8.554v-67.764 8110 c0-3.492,1.822-6.732,4.808-8.546c2.987-1.814,6.702-1.938,9.801-0.328l65.038,33.772c3.309,1.718,5.387,5.134,5.392,8.861 8111 C204.394,157.263,202.325,160.684,199.021,162.41z"/> 8112 </g> 8113 </svg> 8114 </a> 8115 </div> 8116 </div> 8117 8118
8118<script> 8119 $(document).ready(function() { 8120 var $follow_links = $('.tns-follow-links[data-instanceid="6aa91abd72e84"]'); 8121 var categories = $follow_links.data('categories'); 8122 8123 $follow_links.find('.follow-icon').on('click', function() { 8124 var context = window.location.pathname; 8125 var platform = $(this).data('platform'); 8126 var position = $(this).data('position'); 8127 8128 var payload = { 8129 'event' : 'follow_link_click', 8130 'platform' : platform, 8131 'context' : context, 8132 'position' : position 8133 }; 8134 8135 if (categories) { 8136 payload.categories = categories; 8137 } 8138 8139 window.dataLayer.push(payload); 8140 }); 8141 }); 8142 </script>
8142 8143 8144 </div> 8145 </div> 8146 </div> 8147</div> 8148 </div> 8149 </div> 8150 </div> 8151 </footer> 8152 8153
8153<script> 8154 $(document).ready(function() { 8155 $('#tns-footer a').on('click', function(event) { 8156 var href = $(this).attr('href'); 8157 8158 window.dataLayer.push({ 8159 'event' : 'footer_link_click', 8160 'url' : href 8161 }); 8162 }) 8163 }); 8164 8165 function injectAds() { 8166 if (window.innerWidth >= 768 || ! document.body.classList.contains('single-post')) { 8167 return; 8168 } 8169 8170 const paragraphsBetweenAds = 4; 8171 const maxAds = 1; 8172 8173 const paragraphs = document.querySelectorAll('#tns-post-body-content > p'); 8174 const paragraphCount = paragraphs.length; 8175 8176 8177 let count = 1; 8178 let position = paragraphsBetweenAds; 8179 let adCount = 0; 8180 8181 while (position < paragraphCount && adCount < maxAds) { 8182 const myNode = paragraphs[position]; 8183 8184 const adContainer = document.createElement('div'); 8185 adContainer.setAttribute('class', 'ad-container ad-container--inline'); 8186 adContainer.setAttribute('id', `div-gpt-ad-native-inline-${count}`); 8187 8188 myNode.insertAdjacentElement('beforebegin', adContainer); 8189 8190 googletag 8191 .defineSlot('/22873384501/tns/native_inline_' + count, ['fluid'], 'div-gpt-ad-native-inline-' + count) 8192 .setTargeting('position', 'inline_' + count) 8193 .addService(googletag.pubads()); 8194 googletag.display(`div-gpt-ad-native-inline-${count}`); 8195 8196 adCount++; 8197 count += 1; 8198 position = count * paragraphsBetweenAds; 8199 } 8200 }; 8201 8202 googletag.cmd.push(function(){ 8203 injectAds(); 8204 }); 8205 8206 window.addEventListener('resize', function(event) { 8207 if ( document.getElementById('div-gpt-ad-native-inline-1') ) { 8208 return; 8209 } 8210 injectAds(); 8211 }, true); 8212 </script>
8212 8213 8214 <div id="tns-footer-bar"> 8215 <div class="ad-container native-bottom" id="div-gpt-ad-native-bottom"> 8216
8216<script> 8217 googletag.cmd.push(function() { 8218 googletag.display("div-gpt-ad-native-bottom"); 8219 }); 8220 </script>
8220 8221</div> 8222 8223
8223<script> 8224 $(document).ready(function() { 8225 $(window).scroll(function($event) { 8226 var scrollTop = $(window).scrollTop(); 8227 footerBarHeight = $('#tns-footer-bar').height(); 8228 8229 if (scrollTop < 180) { 8230 $('#tns-footer-bar').stop().transition({ 8231 bottom : footerBarHeight * -1, 8232 duration : 333, 8233 easing : 'easeOutQuad' 8234 }); 8235 8236 $('.cky-btn-revisit-wrapper').stop().transition({ 8237 bottom : '15px', 8238 duration : 333, 8239 easing : 'easeOutQuad' 8240 }); 8241 } 8242 8243 if (scrollTop >= 180) { 8244 $('#tns-footer-bar').stop().transition({ 8245 bottom : '0px', 8246 duration : 777, 8247 easing : 'easeOutQuad' 8248 }); 8249 8250 $('.cky-btn-revisit-wrapper').stop().transition({ 8251 bottom : footerBarHeight + 15, 8252 duration : 777, 8253 easing : 'easeOutQuad' 8254 }); 8255 } 8256 }); 8257 8258 $('.unit-1200-60').on('click', function($event) { 8259 $event.stopPropagation(); 8260 8261 var url = $(this).data('url'); 8262 window.open(url, '_blank'); 8263 }); 8264 8265 $('.unit-1200-60 a').on('click', function($event) { 8266 $event.stopPropagation(); 8267 }); 8268 }); 8269 </script>
8269 8270</div> 8271 8272
8272<script> 8273 $(document).ready(function() { 8274 /// 8275 /// Track Author hit in GA 8276 /// 8277 8278 var postTitle = $('#post-title').text(); 8279 var authors = ''; 8280 8281 $('#tns-post-headline-byline .author a').each(function() { 8282 authors += $(this).text() + ','; 8283 }); 8284 8285 authorsCSV = authors.replace(/,\s*$/, ""); 8286 8287 console.log('Post Title: ' + postTitle); 8288 8289 if (authorsCSV) { 8290 window.dataLayer.push({ 8291 'event' : 'author_hit', 8292 'author_name' : authorsCSV, 8293 'post_title' : postTitle 8294 }); 8295 } 8296 8297 8298 8299 /// 8300 /// External Link Tracking 8301 /// 8302 8303 $('body').on('click', 'a.ext-link', function($event) { 8304 $event.preventDefault(); 8305 8306 var url = $(this).attr('href'); 8307 var UTMnone = $(this).hasClass('utm-none'); 8308 url = window.appendUTM(url, 'inline-mention', UTMnone); 8309 8310 console.log('Appended UTM Params: ' + url); 8311 8312 var parsedUrl = new URL(url); 8313 var domain = parsedUrl.hostname; 8314 var path = parsedUrl.pathname; 8315 var queryString = parsedUrl.search; 8316 var inline = false; 8317 8318 if (queryString.includes('utm_content=inline-mention')) { 8319 inline = true; 8320 } 8321 8322 window.dataLayer.push({ 8323 'event' : 'external_url_click', 8324 'url' : url, 8325 'domain' : domain, 8326 'path' : path, 8327 'query_string' : queryString, 8328 'inline' : inline 8329 }); 8330 8331 console.log('Opening in new tab: ' + url); 8332 8333 window.open(url, '_blank'); 8334 }); 8335 8336 8337 8338 /// 8339 /// Scroll-depth Tracking 8340 /// 8341 8342 var tracked25 = false; 8343 var tracked50 = false; 8344 var tracked75 = false; 8345 var tracked90 = false; 8346 8347 document.addEventListener('scroll', function() { 8348 var path = window.location.pathname; 8349 var depth = '<25%'; 8350 8351 var h = document.documentElement, 8352 b = document.body, 8353 st = 'scrollTop', 8354 sh = 'scrollHeight'; 8355 8356 var percent = parseInt ( (h[st]||b[st]) / ((h[sh]||b[sh]) - h.clientHeight) * 100); 8357 8358 if (percent == 25) { 8359 if (tracked25) return; 8360 tracked25 = true; 8361 depth = '25%'; 8362 8363 window.dataLayer.push({ 8364 'event' : 'scroll_depth', 8365 'url' : path, 8366 'depth' : depth 8367 }); 8368 } else if (percent == 50){ 8369 if (tracked50) return; 8370 tracked50 = true; 8371 depth = '50%'; 8372 8373 window.dataLayer.push({ 8374 'event' : 'scroll_depth', 8375 'url' : path, 8376 'depth' : depth 8377 }); 8378 } else if (percent == 75) { 8379 if (tracked75) return; 8380 tracked75 = true; 8381 depth = '75%'; 8382 8383 window.dataLayer.push({ 8384 'event' : 'scroll_depth', 8385 'url' : path, 8386 'depth' : depth 8387 }); 8388 } else if (percent == 90) { 8389 if (tracked90) return; 8390 tracked90 = true; 8391 depth = '90%'; 8392 8393 window.dataLayer.push({ 8394 'event' : 'scroll_depth', 8395 'url' : path, 8396 'depth' : depth 8397 }); 8398 } 8399 }); 8400 }); 8401</script>
8401 8402
8403<script> 8404 $(document).ready(function() { 8405 /// 8406 /// Track Sponsor Note Clicks 8407 /// 8408 8409 function trackSponsorNoteClicks(sponsorSlug, url) { 8410 window.dataLayer.push({ 8411 'event' : 'sponsor_note_click', 8412 'sponsor' : sponsorSlug, 8413 'url' : url 8414 }); 8415 } 8416 8417 8418 8419 $('.sponsor-note-logo-link').on('click', function($event) { 8420 $event.preventDefault(); 8421 }); 8422 8423 $('.sponsor-note-profile').on('click', function($event) { 8424 var sponsorSlug = $(this).data('sponsor'); 8425 var url = $(this).data('url'); 8426 8427 /// Append any missing UTMs to the URL 8428 var UTMnone = $(this).parent().hasClass('utm-none'); 8429 url = window.appendUTM(url, 'sponsor+module', UTMnone); 8430 8431 trackSponsorNoteClicks(sponsorSlug, url); 8432 8433 window.open(url, '_blank'); 8434 }); 8435 8436 $('.contributor-note-logo-link').on('click', function($event) { 8437 $event.preventDefault(); 8438 }); 8439 8440 $('.contributor-note-profile').on('click', function($event) { 8441 var contributorSlug = $(this).data('contributor'); 8442 var url = $(this).data('url'); 8443 8444 /// Append any missing UTMs to the URL 8445 var UTMnone = $(this).parent().hasClass('utm-none'); 8446 url = window.appendUTM(url, 'contributor+module', UTMnone); 8447 8448 window.dataLayer.push({ 8449 'event': 'contributor_note_click', 8450 'contributor': contributorSlug, 8451 'url': url 8452 }); 8453 8454 window.open(url, '_blank'); 8455 }); 8456 8457 8458 8459 $('body').on('click', '.sponsors-rss-block-logo-link', function($event) { 8460 $event.preventDefault(); 8461 8462 var sponsorSlug = $(this).data('sponsor'); 8463 var url = $(this).data('url'); 8464 8465 /// Append any missing UTMs to the URL 8466 var UTMnone = $(this).parent().hasClass('utm-none'); 8467 url = window.appendUTM(url, 'sponsor+module', UTMnone); 8468 8469 trackSponsorNoteClicks(sponsorSlug, url); 8470 8471 window.open(url, '_blank'); 8472 }); 8473 8474 $('body').on('click', '.sponsors-rss-block-profile-link', function($event) { 8475 $event.preventDefault(); 8476 8477 var sponsorSlug = $(this).data('sponsor'); 8478 var url = $(this).data('url'); 8479 8480 /// Append any missing UTMs to the URL 8481 var UTMnone = $(this).parent().hasClass('utm-none'); 8482 url = window.appendUTM(url, 'sponsor+module', UTMnone); 8483 8484 trackSponsorNoteClicks(sponsorSlug, url); 8485 8486 window.open(url, '_blank'); 8487 }); 8488 8489 8490 8491 /// 8492 /// Track Sponsor RSS Link Clicks 8493 /// 8494 8495 /// Determine if this is a sponsored post and 8496 /// if it's a Sponsor-Contributed Article 8497 8498 function trackSponsorRSSClicks(sponsorSlug, title, url, context) { 8499 context = context + ''; 8500 8501 window.dataLayer.push({ 8502 'event' : 'sponsor_rss_click', 8503 'sponsor' : sponsorSlug, 8504 'rss_post_title' : title, 8505 'url' : url, 8506 'context' : context 8507 }); 8508 } 8509 8510 /// Track RSS Link Clicks From Within the Sponsor Note 8511 $('body').on('click', '.sponsor-rss-link', function($event) { 8512 $event.stopPropagation(); 8513 8514 var sponsorSlug = $(this).attr('data-sponsor'); 8515 var title = $(this).attr('aria-label'); 8516 var url = $(this).attr('href'); 8517 var context = 'note'; 8518 8519 trackSponsorRSSClicks(sponsorSlug, title, url, context) 8520 }); 8521 8522 /// Track RSS Link Clicks From Within the Sponsor RSS Footer 8523 $('body').on('click', '.sponsors-rss-link', function($event) { 8524 $event.stopPropagation(); 8525 8526 var sponsorSlug = $(this).attr('data-sponsor'); 8527 var title = $(this).attr('aria-label'); 8528 var url = $(this).attr('href'); 8529 var context = 'footer'; 8530 8531 trackSponsorRSSClicks(sponsorSlug, title, url, context) 8532 }); 8533 8534 8535 8536 /// 8537 /// Track Sponsor Disclosure Link Clicks 8538 /// 8539 8540 $('.sponsor-disclosure-link').on('click', function($event) { 8541 event.preventDefault(); 8542 8543 var url = $(this).attr('href'); 8544 8545 /// Append any missing UTMs to the URL 8546 var UTMnone = $(this).parent().hasClass('utm-none'); 8547 url = window.appendUTM(url, 'sponsor+module', UTMnone); 8548 8549 window.open(url, '_blank'); 8550 }); 8551 }); 8552</script>
8552 8553 8554 <style> 8555 .pswp__img { 8556 background: #FFFFFF; 8557 } 8558 8559 .pswp-trigger { 8560 display: block; 8561 position: relative; 8562 cursor: zoom-in; 8563 } 8564 8565 .pswp-trigger.no-caption { 8566 margin-bottom: 40px; 8567 } 8568 8569 .pswp-zoom-icon { 8570 position: absolute; 8571 bottom: 0px; 8572 right: 0px; 8573 color: #8DA6C0; 8574 font-size: 11px; 8575 z-index: 2; 8576 transform: translate(0,23px); 8577 } 8578 8579 .pswp-zoom-icon svg { 8580 display: inline-block; 8581 width: 12px; 8582 height: 12px; 8583 transform: translate(0,3px); 8584 } 8585 8586 .pswp-zoom-icon svg path { 8587 fill: #8DA6C0; 8588 } 8589 8590 .pswp-trigger:hover .pswp-zoom-icon { 8591 color: #FF3287; 8592 } 8593 8594 .pswp-trigger:hover .pswp-zoom-icon svg path { 8595 fill: #FF3287; 8596 } 8597 8598 .wp-caption-text { 8599 padding-right: 50px; 8600 } 8601</style> 8602 8603
8604<script> 8605 $(document).ready(function() { 8606 var catsCSV = ''; 8607 var sponsor = ''; 8608 8609 function isPhonePortrait() { 8610 return window.matchMedia('(max-width: 600px) and (orientation: portrait)').matches; 8611 } 8612 8613 /// 8614 /// Bind for images with captions 8615 /// 8616 8617 $('#tns-post-body-content .wp-caption a img').unwrap(); 8618 $('#tns-post-body-content .wp-caption img').each(function() { 8619 var $img = $(this); 8620 var url = $(this).attr('src'); 8621 8622 var clone = new Image(); 8623 clone.src = $(this).attr('src'); 8624 8625 var naturalWidth = null; 8626 var naturalHeight = null; 8627 8628 $(clone).load(function() { 8629 naturalWidth = this.width; 8630 naturalHeight = this.height; 8631 8632 $img.wrap('<a href="' + url + '" class="pswp-trigger" data-pswp-width="' + naturalWidth + '" data-pswp-height="' + naturalHeight + '"></a>"'); 8633 $('.pswp-trigger').children('.pswp-zoom-icon').remove(); 8634 $('.pswp-trigger').append('<div class="pswp-zoom-icon"><svg xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" width="24" height="24" viewBox="0 0 24 24"><path d="M15.853 16.56c-1.683 1.517-3.911 2.44-6.353 2.44-5.243 0-9.5-4.257-9.5-9.5s4.257-9.5 9.5-9.5 9.5 4.257 9.5 9.5c0 2.442-.923 4.67-2.44 6.353l7.44 7.44-.707.707-7.44-7.44zm-6.353-15.56c4.691 0 8.5 3.809 8.5 8.5s-3.809 8.5-8.5 8.5-8.5-3.809-8.5-8.5 3.809-8.5 8.5-8.5zm-4.5 8h4v-4h1v4h4v1h-4v4h-1v-4h-4v-1z"/></svg> Zoom</div>'); 8635 }); 8636 }); 8637 8638 var lightbox = new PhotoSwipeLightbox({ 8639 gallery : '#tns-post-body-content .wp-caption', 8640 children : 'a.pswp-trigger', 8641 mouseMovePan : true, 8642 zoom : false, /// Hides zoom icon in PSWP UI 8643 pinchToClose : true, 8644 closeOnVerticalDrag : true, 8645 bgClickAction : 'close', 8646 padding : { 8647 top : 50, 8648 bottom : 50, 8649 left : 50, 8650 right : 50 8651 }, 8652 bgOpacity : 0.9, 8653 initialZoomLevel : (zoomLevelObject) => { 8654 if (isPhonePortrait()) { 8655 return zoomLevelObject.vFill; 8656 } else { 8657 return zoomLevelObject.fit; 8658 } 8659 }, 8660 secondaryZoomLevel : (zoomLevelObject) => { 8661 if (isPhonePortrait()) { 8662 return zoomLevelObject.fit; 8663 } else { 8664 return 1; 8665 } 8666 }, 8667 maxZoomLevel : 3, 8668 pswpModule : PhotoSwipe 8669 }); 8670 8671 lightbox.init(); 8672 8673 lightbox.on('openingAnimationEnd', function() { 8674 var url = lightbox.pswp.currSlide.data.src; 8675 url = url.replace('https://cdn.thenewstack.io/media', ''); 8676 8677 var payload = { 8678 'event' : 'media_engagement', 8679 'media_action' : 'image_zoom', 8680 'url' : url, 8681 'sponsor' : sponsor 8682 }; 8683 8684 if (catsCSV) { 8685 payload.categories = catsCSV; 8686 } 8687 8688 window.dataLayer.push(payload); 8689 }); 8690 8691 8692 8693 /// 8694 /// Bind for images without captions 8695 /// 8696 8697 $('#tns-post-body-content p a img').unwrap(); 8698 $('#tns-post-body-content p img').each(function() { 8699 var $img = $(this); 8700 var url = $(this).attr('src'); 8701 8702 var clone = new Image(); 8703 clone.src = $(this).attr('src'); 8704 8705 var naturalWidth = null; 8706 var naturalHeight = null; 8707 8708 $(clone).load(function() { 8709 naturalWidth = this.width; 8710 naturalHeight = this.height; 8711 8712 $img.wrap('<a href="' + url + '" class="pswp-trigger no-caption" data-pswp-width="' + naturalWidth + '" data-pswp-height="' + naturalHeight + '"></a>"'); 8713 $('.pswp-trigger').children('.pswp-zoom-icon').remove(); 8714 $('.pswp-trigger').append('<div class="pswp-zoom-icon"><svg xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" width="24" height="24" viewBox="0 0 24 24"><path d="M15.853 16.56c-1.683 1.517-3.911 2.44-6.353 2.44-5.243 0-9.5-4.257-9.5-9.5s4.257-9.5 9.5-9.5 9.5 4.257 9.5 9.5c0 2.442-.923 4.67-2.44 6.353l7.44 7.44-.707.707-7.44-7.44zm-6.353-15.56c4.691 0 8.5 3.809 8.5 8.5s-3.809 8.5-8.5 8.5-8.5-3.809-8.5-8.5 3.809-8.5 8.5-8.5zm-4.5 8h4v-4h1v4h4v1h-4v4h-1v-4h-4v-1z"/></svg> Zoom</div>'); 8715 }); 8716 }); 8717 8718 var lightbox2 = new PhotoSwipeLightbox({ 8719 gallery : '#tns-post-body-content p', 8720 children : 'a.pswp-trigger', 8721 mouseMovePan : true, 8722 zoom : false, /// Hides zoom icon 8723 pinchToClose : true, 8724 closeOnVerticalDrag : true, 8725 bgClickAction : 'close', 8726 padding : { 8727 top : 50, 8728 bottom : 50, 8729 left : 50, 8730 right : 50 8731 }, 8732 bgOpacity : 0.9,
8733 initialZoomLevel : (zoomLevelObject) => { 8734 if (isPhonePortrait()) { 8735 return zoomLevelObject.vFill; 8736 } else { 8737 return zoomLevelObject.fit; 8738 } 8739 }, 8740 secondaryZoomLevel : (zoomLevelObject) => { 8741 if (isPhonePortrait()) { 8742 return zoomLevelObject.fit; 8743 } else { 8744 return 1; 8745 } 8746 }, 8747 maxZoomLevel : 3, 8748 pswpModule : PhotoSwipe 8749 }); 8750 8751 lightbox2.init(); 8752 8753 lightbox2.on('openingAnimationEnd', function() { 8754 var url = lightbox2.pswp.currSlide.data.src; 8755 url = url.replace('https://cdn.thenewstack.io/media', ''); 8756 8757 var payload2 = { 8758 'event' : 'media_engagement', 8759 'media_action' : 'image_zoom', 8760 'url' : url, 8761 'sponsor' : sponsor 8762 }; 8763 8764 if (catsCSV) { 8765 payload2.categories = catsCSV; 8766 } 8767 8768 window.dataLayer.push(payload2); 8769 }); 8770 }); 8771</script>
8771 8772 8773
8773<script type="speculationrules"> 8774{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/tns-2022/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} 8775</script>
vendor: 1 bytes, line 8775
8775
8776<script id="avc_frontend-js-extra"> 8777var AdRefreshControl = {"advertiserIds":[],"lineItemIds":[],"sizesToExclude":"","slotIdsToExclude":{"div-gpt-ad-native-inline-1":1,"div-gpt-ad-native-inline-2":1,"div-gpt-ad-native-sidebar-1":1,"div-gpt-ad-native-sidebar-2":1,"div-gpt-ad-native-sidebar-3":1,"div-gpt-ad-native-sidebar-4":1,"div-gpt-ad-native-sidebar-5":1,"div-gpt-ad-native-sidebar-6":1,"div-gpt-ad-native-sidebar-7":1,"div-gpt-ad-native-sidebar-8":1,"div-gpt-ad-native-sidebar-9":1},"viewabilityThreshold":"70","refreshInterval":"30","maximumRefreshes":"10","refreshCallback":""}; 8778//# sourceURL=avc_frontend-js-extra 8779</script>
vendor: 1 bytes, line 8779
8779
8780<script id="avc_frontend-js" src="https://thenewstack.io/wp-content/plugins/ad-refresh-control/dist/js/frontend.js?ver=1.1.5"></script>
vendor: 1 bytes, line 8780
8780
8781<script id="wpil-frontend-script-js-extra"> 8782var wpilFrontend = {"ajaxUrl":"/wp-admin/admin-ajax.php","postId":"3537131","postType":"post","openInternalInNewTab":"0","openExternalInNewTab":"0","disableClicks":"0","openLinksWithJS":"0","trackAllElementClicks":"0","clicksI18n":{"imageNoText":"Image in link: No Text","imageText":"Image Title: ","noText":"No Anchor Text Found"}}; 8783//# sourceURL=wpil-frontend-script-js-extra 8784</script>
vendor: 1 bytes, line 8784
8784
8785<script id="wpil-frontend-script-js" src="https://thenewstack.io/wp-content/plugins/link-whisper-premium/js/frontend.min.js?ver=1786985749"></script>
8785 8786 8787 <!-- Custom Tracking Code --> 8788 8789 <!-- MS Clarity --> 8790
8790<script type="text/javascript"> 8791 (function(c,l,a,r,i,t,y){ 8792 c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)}; 8793 t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i; 8794 y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y); 8795 })(window, document, "clarity", "script", "m7s7l68is7"); 8796</script>
8796 8797 <!-- MS Ads --> 8798 <!-- Microsoft Ads Tracking Pixel -->
8799<script> 8800(function(w,d,t,r,u){ 8801 var f,n,i; 8802 w[u]=w[u]||[],f=function(){ 8803 var o={ti:"343097026", enableAutoSpaTracking: true}; 8804 o.q=w[u],w[u]=new UET(o),w[u].push("pageLoad") 8805 }, 8806 n=d.createElement(t),n.src=r,n.async=1,n.onload=n.onreadystatechange=function(){ 8807 var s=this.readyState; 8808 s&&s!=="loaded"&&s!=="complete"||(f(),n.onload=n.onreadystatechange=null) 8809 }, 8810 i=d.getElementsByTagName(t)[0],i.parentNode.insertBefore(n,i) 8811}) 8812(window,document,"script","//bat.bing.com/bat.js","uetq"); 8813</script>
8813 8814 <!-- Twitter Pixel --> 8815 <!-- Twitter conversion tracking base code -->
8816<script> 8817!function(e,t,n,s,u,a){e.twq||(s=e.twq=function(){s.exe?s.exe.apply(s,arguments):s.queue.push(arguments); 8818},s.version='1.1',s.queue=[],u=t.createElement(n),u.async=!0,u.src='https://static.ads-twitter.com/uwt.js', 8819a=t.getElementsByTagName(n)[0],a.parentNode.insertBefore(u,a))}(window,document,'script'); 8820twq('config','oavhb'); 8821</script>
8821 8822<!-- End Twitter conversion tracking base code --> 8823 <!-- Meta Pixel --> 8824 <!-- Meta Pixel -->
8825<script>
vendor: 407 bytes, lines 8825-8834
8825 8826 !function(f,b,e,v,n,t,s) 8827 {if(f.fbq)return;n=f.fbq=function(){n.callMethod? 8828 n.callMethod.apply(n,arguments):n.queue.push(arguments)}; 8829 if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0'; 8830 n.queue=[];t=b.createElement(e);t.async=!0; 8831 t.src=v;s=b.getElementsByTagName(e)[0]; 8832 s.parentNode.insertBefore(t,s)}(window,document,'script', 8833 'https://connect.facebook.net/en_US/fbevents.js'); 8834 fbq('init', '
88341244424359562950
vendor: 32 bytes, lines 8834-8835
8834'); 8835 fbq('track', 'PageView');
8836</script>
8836 8837<noscript> 8838 <img height="1" width="1" src="https://www.facebook.com/tr?id=1244424359562950&ev=PageView&noscript=1"/> 8839</noscript> 8840<!-- Meta Pixel End --> 8841 <!-- Linkedin Pixel --> 8842 <!-- LinkedIn Pixel -->
8843<script type="text/javascript"> _linkedin_partner_id = "4664394"; window._linkedin_data_partner_ids = window._linkedin_data_partner_ids || []; window._linkedin_data_partner_ids.push(_linkedin_partner_id); </script>
vendor: 1 bytes, line 8843
8843
8844<script type="text/javascript"> (function(l) { if (!l){window.lintrk = function(a,b){window.lintrk.q.push([a,b])}; window.lintrk.q=[]} var s = document.getElementsByTagName("script")[0]; var b = document.createElement("script"); b.type = "text/javascript";b.async = true; b.src = "https://snap.licdn.com/li.lms-analytics/insight.min.js"; s.parentNode.insertBefore(b, s);})(window.lintrk); </script>
8844 8845<noscript><img height="1" width="1" style="display:none;" alt="" src="https://px.ads.linkedin.com/collect/?pid=4664394&fmt=gif" /></noscript> 8846<!-- LinkedIn Pixel End --> 8847 <!-- HubSpot --> 8848
8848<script type="text/javascript" id="hs-script-loader" async defer src="//js.hs-scripts.com/46095657.js"></script>
8848 8849
8849<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"3129294321ba4c9980087e49d834a96a","spa":2}' crossorigin="anonymous"></script>
8849 8850</body> 8851</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.