PageSourceSearch

https://thenewstack.io/terms-of-use/

html thenewstack.io collected 2026-09-24 07:57:54 UTC 1,178,703 bytes, 8,851 lines download raw bytes

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! &nbsp;Please read these Terms of Use (&ldquo;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&#038;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,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/\//g,"&#x2F;").replace(/\`/g,"&#96;")},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											&nbsp;
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											&nbsp;
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">&#10003;</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">&#10003;</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">&#10003;</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">&#10003;</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">&#10003;</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">&#10003;</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">&#10003;</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			&nbsp;
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 &amp; 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! &nbsp;Please read these Terms of Use (&ldquo;Terms of Use&rdquo;) 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 &ldquo;Site&rdquo;). &nbsp;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&nbsp;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&rsquo;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&rsquo;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. &nbsp;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. &nbsp;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 &ldquo;fair use&rdquo; 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 &ldquo;fair use&rdquo;.</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. &nbsp;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 &ldquo;Content&rdquo;) 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&rsquo;s consent, or otherwise constitutes an invasion of an individual&rsquo;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&rsquo;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 &ldquo;junk mail,&rdquo; &ldquo;chain letters,&rdquo; or unsolicited mass mailing, instant messaging, &ldquo;spimming,&rdquo; or &ldquo;spamming&rdquo; 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&rsquo;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. &nbsp;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 &ldquo;AS IS.&rdquo; 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, &ldquo;TROJAN HORSES&rdquo; 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&#8217; 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&#8217;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 (&ldquo;Third Party Sites&rdquo;). 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. &nbsp;&nbsp;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				&copy; 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.