CINXE.COM
Implementing leader election on Google Cloud Storage | Google Cloud Blog
<!DOCTYPE html><html lang="en"><head><script type="text/javascript" src="/_static/js/bundle-playback.js?v=HxkREWBo" charset="utf-8"></script> <script type="text/javascript" src="/_static/js/wombat.js?v=txqj7nKC" charset="utf-8"></script> <script>window.RufflePlayer=window.RufflePlayer||{};window.RufflePlayer.config={"autoplay":"on","unmuteOverlay":"hidden"};</script> <script type="text/javascript" src="/_static/js/ruffle/ruffle.js"></script> <script type="text/javascript"> __wm.init("https://web.archive.org/web"); __wm.wombat("https://cloud.google.com/blog/topics/developers-practitioners/implementing-leader-election-google-cloud-storage","20210121173734","https://web.archive.org/","web","/_static/", "1611250654"); </script> <link rel="stylesheet" type="text/css" href="/_static/css/banner-styles.css?v=S1zqJCYt" /> <link rel="stylesheet" type="text/css" href="/_static/css/iconochive.css?v=3PDvdIFv" /> <!-- End Wayback Rewrite JS Include --> <title>Implementing leader election on Google Cloud Storage | Google Cloud Blog</title><!-- Google Tag Manager --><script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://web.archive.org/web/20210121173734/https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-5CVQBG');</script><base href="/web/20210121173734/https://cloud.google.com/blog/"><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link href="//web.archive.org/web/20210121173734cs_/https://fonts.googleapis.com/css?family=Roboto:100,200,300,400,500,700|Google+Sans:400,500|Product+Sans:400&lang=en" rel="stylesheet"><link rel="shortcut icon" href="/web/20210121173734im_/https://cloud.google.com/blog/static/assets/favicon.ico"><link rel="apple-touch-icon" href="/web/20210121173734im_/https://cloud.google.com/blog/static/assets/apple-icon.png"><script>!function(e,n,t){function r(e,n){return typeof e===n}function o(){var e,n,t,o,s,i,l;for(var a in C)if(C.hasOwnProperty(a)){if(e=[],n=C[a],n.name&&(e.push(n.name.toLowerCase()),n.options&&n.options.aliases&&n.options.aliases.length))for(t=0;t<n.options.aliases.length;t++)e.push(n.options.aliases[t].toLowerCase());for(o=r(n.fn,"function")?n.fn():n.fn,s=0;s<e.length;s++)i=e[s],l=i.split("."),1===l.length?Modernizr[l[0]]=o:(!Modernizr[l[0]]||Modernizr[l[0]]instanceof Boolean||(Modernizr[l[0]]=new Boolean(Modernizr[l[0]])),Modernizr[l[0]][l[1]]=o),w.push((o?"":"no-")+l.join("-"))}}function s(e){var n=x.className,t=Modernizr._config.classPrefix||"";if(_&&(n=n.baseVal),Modernizr._config.enableJSClass){var r=new RegExp("(^|\\s)"+t+"no-js(\\s|$)");n=n.replace(r,"$1"+t+"js$2")}Modernizr._config.enableClasses&&(n+=" "+t+e.join(" "+t),_?x.className.baseVal=n:x.className=n)}function i(e,n){return!!~(""+e).indexOf(n)}function l(){return"function"!=typeof n.createElement?n.createElement(arguments[0]):_?n.createElementNS.call(n,"http://www.w3.org/2000/svg",arguments[0]):n.createElement.apply(n,arguments)}function a(){var e=n.body;return e||(e=l(_?"svg":"body"),e.fake=!0),e}function f(e,t,r,o){var s,i,f,u,c="modernizr",p=l("div"),d=a();if(parseInt(r,10))for(;r--;)f=l("div"),f.id=o?o[r]:c+(r+1),p.appendChild(f);return s=l("style"),s.type="text/css",s.id="s"+c,(d.fake?d:p).appendChild(s),d.appendChild(p),s.styleSheet?s.styleSheet.cssText=e:s.appendChild(n.createTextNode(e)),p.id=c,d.fake&&(d.style.background="",d.style.overflow="hidden",u=x.style.overflow,x.style.overflow="hidden",x.appendChild(d)),i=t(p,e),d.fake?(d.parentNode.removeChild(d),x.style.overflow=u,x.offsetHeight):p.parentNode.removeChild(p),!!i}function u(e){return e.replace(/([A-Z])/g,function(e,n){return"-"+n.toLowerCase()}).replace(/^ms-/,"-ms-")}function c(n,t,r){var o;if("getComputedStyle"in e){o=getComputedStyle.call(e,n,t);var s=e.console;if(null!==o)r&&(o=o.getPropertyValue(r));else if(s){var i=s.error?"error":"log";s[i].call(s,"getComputedStyle returning null, its possible modernizr test results are inaccurate")}}else o=!t&&n.currentStyle&&n.currentStyle[r];return o}function p(n,r){var o=n.length;if("CSS"in e&&"supports"in e.CSS){for(;o--;)if(e.CSS.supports(u(n[o]),r))return!0;return!1}if("CSSSupportsRule"in e){for(var s=[];o--;)s.push("("+u(n[o])+":"+r+")");return s=s.join(" or "),f("@supports ("+s+") { #modernizr { position: absolute; } }",function(e){return"absolute"==c(e,null,"position")})}return t}function d(e){return e.replace(/([a-z])-([a-z])/g,function(e,n,t){return n+t.toUpperCase()}).replace(/^-/,"")}function m(e,n,o,s){function a(){u&&(delete E.style,delete E.modElem)}if(s=r(s,"undefined")?!1:s,!r(o,"undefined")){var f=p(e,o);if(!r(f,"undefined"))return f}for(var u,c,m,y,v,g=["modernizr","tspan","samp"];!E.style&&g.length;)u=!0,E.modElem=l(g.shift()),E.style=E.modElem.style;for(m=e.length,c=0;m>c;c++)if(y=e[c],v=E.style[y],i(y,"-")&&(y=d(y)),E.style[y]!==t){if(s||r(o,"undefined"))return a(),"pfx"==n?y:!0;try{E.style[y]=o}catch(h){}if(E.style[y]!=v)return a(),"pfx"==n?y:!0}return a(),!1}function y(e,n){return function(){return e.apply(n,arguments)}}function v(e,n,t){var o;for(var s in e)if(e[s]in n)return t===!1?e[s]:(o=n[e[s]],r(o,"function")?y(o,t||n):o);return!1}function g(e,n,t,o,s){var i=e.charAt(0).toUpperCase()+e.slice(1),l=(e+" "+P.join(i+" ")+i).split(" ");return r(n,"string")||r(n,"undefined")?m(l,n,o,s):(l=(e+" "+N.join(i+" ")+i).split(" "),v(l,n,t))}function h(e,n,r){return g(e,t,t,n,r)}var C=[],S={_version:"3.6.0",_config:{classPrefix:"glue-",enableClasses:!0,enableJSClass:!0,usePrefixes:!0},_q:[],on:function(e,n){var t=this;setTimeout(function(){n(t[e])},0)},addTest:function(e,n,t){C.push({name:e,fn:n,options:t})},addAsyncTest:function(e){C.push({name:null,fn:e})}},Modernizr=function(){};Modernizr.prototype=S,Modernizr=new Modernizr;var w=[],x=n.documentElement,_="svg"===x.nodeName.toLowerCase(),b="Moz O ms Webkit",P=S._config.usePrefixes?b.split(" "):[];S._cssomPrefixes=P;var z={elem:l("modernizr")};Modernizr._q.push(function(){delete z.elem});var E={style:z.elem.style};Modernizr._q.unshift(function(){delete E.style});var N=S._config.usePrefixes?b.toLowerCase().split(" "):[];S._domPrefixes=N,S.testAllProps=g,S.testAllProps=h,Modernizr.addTest("flexbox",h("flexBasis","1px",!0)),o(),s(w),delete S.addTest,delete S.addAsyncTest;for(var T=0;T<Modernizr._q.length;T++)Modernizr._q[T]();e.Modernizr=Modernizr}(window,document);</script><script>document.documentElement.classList.add('glue-app-ready');</script><!-- AMP --><link rel="amphtml" id="amp-link" href="https://web.archive.org/web/20210121173734/https://cloudblog.withgoogle.com/topics/developers-practitioners/implementing-leader-election-google-cloud-storage/amp/"><!-- Slim Data --><meta name="last_published_at" content="2021-01-15T04:07:53.724527Z"><!--Article Specific Metadata--><meta name="description" content="Controlling coordination among distributed systems can be complex. This article showcases how to build your own leader election system using only Google Cloud Storage."><!--Open Graph Metadata--><meta property="og:type" content="website"><meta property="og:title" content="Implementing leader election on Google Cloud Storage | Google Cloud Blog"><meta property="og:description" content="Controlling coordination among distributed systems can be complex. This article showcases how to build your own leader election system using only Google Cloud Storage."><meta property="og:image" content="https://web.archive.org/web/20210121173734im_/https://storage.googleapis.com/gweb-cloudblog-publish/images/GCP_Storage_and_Data_Transfer.max-2800x280.max-2200x2200.jpg"><meta property="og:site_name" content="Google Cloud Blog"><meta property="og:url" content="https://web.archive.org/web/20210121173734/https://cloud.google.com/blog/topics/developers-practitioners/implementing-leader-election-google-cloud-storage/"><!--Twitter Card Metadata--><meta name="twitter:card" content="summary_large_image"><meta name="twitter:url" content="https://web.archive.org/web/20210121173734im_/https://cloud.google.com/blog/topics/developers-practitioners/implementing-leader-election-google-cloud-storage/"><meta name="twitter:title" content="Implementing leader election on Google Cloud Storage | Google Cloud Blog"><meta name="twitter:description" content="Controlling coordination among distributed systems can be complex. This article showcases how to build your own leader election system using only Google Cloud Storage."><meta name="twitter:image:src" content="https://storage.googleapis.com/gweb-cloudblog-publish/images/GCP_Storage_and_Data_Transfer.max-2800x280.max-2200x2200.jpg"><meta name="twitter:site" content="@googlecloud"><style type="text/css">.spinner-container {display:flex;flex-direction:column;height:100vh;justify-content:center;text-align:center}.spinner {height:22px;margin:0 auto;width:22px;animation:fadein 1s;-moz-animation:fadein 1s;-webkit-animation:fadein 1s;-o-animation:fadein 1s;} @keyframes fadein {0% {opacity:0;}85% {opacity:0;}100% {opacity:1;}}@-moz-keyframes fadein {0% {opacity:0;}85% {opacity:0;}100% {opacity:1;}}@-webkit-keyframes fadein {0% {opacity:0;}85% {opacity:0;}100% {opacity:1;}}@-o-keyframes fadein {0% {opacity:0;}85% {opacity:0;}100% {opacity:1;}}</style><link href="https://web.archive.org/web/20210121173734cs_/https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet"><link href="/web/20210121173734cs_/https://cloud.google.com/blog/static/styles.26d34b5dd98f515cd746.bundle.css" rel="stylesheet"><style ng-transition="cloudblog">.h-google-red-50{color:#fbe9e7}.h-bg-google-red-50{background-color:#fbe9e7}.h-google-red-100{color:#f4c7c3}.h-bg-google-red-100{background-color:#f4c7c3}.h-google-red-200{color:#eda29b}.h-bg-google-red-200{background-color:#eda29b}.h-google-red-300{color:#e67c73}.h-bg-google-red-300{background-color:#e67c73}.h-google-red-400{color:#e06055}.h-bg-google-red-400{background-color:#e06055}.h-google-red-500{color:#db4437}.h-bg-google-red-500{background-color:#db4437}.h-google-red-600{color:#d23f31}.h-bg-google-red-600{background-color:#d23f31}.h-google-red-700{color:#c53929}.h-bg-google-red-700{background-color:#c53929}.h-google-red-800{color:#b93221}.h-bg-google-red-800{background-color:#b93221}.h-google-red-900{color:#a52714}.h-bg-google-red-900{background-color:#a52714}.h-pink-50{color:#fce4ec}.h-bg-pink-50{background-color:#fce4ec}.h-pink-100{color:#f8bbd0}.h-bg-pink-100{background-color:#f8bbd0}.h-pink-200{color:#f48fb1}.h-bg-pink-200{background-color:#f48fb1}.h-pink-300{color:#f06292}.h-bg-pink-300{background-color:#f06292}.h-pink-400{color:#ec407a}.h-bg-pink-400{background-color:#ec407a}.h-pink-500{color:#e91e63}.h-bg-pink-500{background-color:#e91e63}.h-pink-600{color:#d81b60}.h-bg-pink-600{background-color:#d81b60}.h-pink-700{color:#c2185b}.h-bg-pink-700{background-color:#c2185b}.h-pink-800{color:#ad1457}.h-bg-pink-800{background-color:#ad1457}.h-pink-900{color:#880e4f}.h-bg-pink-900{background-color:#880e4f}.h-purple-50{color:#f3e5f5}.h-bg-purple-50{background-color:#f3e5f5}.h-purple-100{color:#e1bee7}.h-bg-purple-100{background-color:#e1bee7}.h-purple-200{color:#ce93d8}.h-bg-purple-200{background-color:#ce93d8}.h-purple-300{color:#ba68c8}.h-bg-purple-300{background-color:#ba68c8}.h-purple-400{color:#ab47bc}.h-bg-purple-400{background-color:#ab47bc}.h-purple-500{color:#9c27b0}.h-bg-purple-500{background-color:#9c27b0}.h-purple-600{color:#8e24aa}.h-bg-purple-600{background-color:#8e24aa}.h-purple-700{color:#7b1fa2}.h-bg-purple-700{background-color:#7b1fa2}.h-purple-800{color:#6a1b9a}.h-bg-purple-800{background-color:#6a1b9a}.h-purple-900{color:#4a148c}.h-bg-purple-900{background-color:#4a148c}.h-deep-purple-50{color:#ede7f6}.h-bg-deep-purple-50{background-color:#ede7f6}.h-deep-purple-100{color:#d1c4e9}.h-bg-deep-purple-100{background-color:#d1c4e9}.h-deep-purple-200{color:#b39ddb}.h-bg-deep-purple-200{background-color:#b39ddb}.h-deep-purple-300{color:#9575cd}.h-bg-deep-purple-300{background-color:#9575cd}.h-deep-purple-400{color:#7e57c2}.h-bg-deep-purple-400{background-color:#7e57c2}.h-deep-purple-500{color:#673ab7}.h-bg-deep-purple-500{background-color:#673ab7}.h-deep-purple-600{color:#5e35b1}.h-bg-deep-purple-600{background-color:#5e35b1}.h-deep-purple-700{color:#512da8}.h-bg-deep-purple-700{background-color:#512da8}.h-deep-purple-800{color:#4527a0}.h-bg-deep-purple-800{background-color:#4527a0}.h-deep-purple-900{color:#311b92}.h-bg-deep-purple-900{background-color:#311b92}.h-indigo-50{color:#e8eaf6}.h-bg-indigo-50{background-color:#e8eaf6}.h-indigo-100{color:#c5cae9}.h-bg-indigo-100{background-color:#c5cae9}.h-indigo-200{color:#9fa8da}.h-bg-indigo-200{background-color:#9fa8da}.h-indigo-300{color:#7986cb}.h-bg-indigo-300{background-color:#7986cb}.h-indigo-400{color:#5c6bc0}.h-bg-indigo-400{background-color:#5c6bc0}.h-indigo-500{color:#3f51b5}.h-bg-indigo-500{background-color:#3f51b5}.h-indigo-600{color:#3949ab}.h-bg-indigo-600{background-color:#3949ab}.h-indigo-700{color:#303f9f}.h-bg-indigo-700{background-color:#303f9f}.h-indigo-800{color:#283593}.h-bg-indigo-800{background-color:#283593}.h-indigo-900{color:#1a237e}.h-bg-indigo-900{background-color:#1a237e}.h-google-blue-50{color:#e8f0fe}.h-bg-google-blue-50{background-color:#e8f0fe}.h-google-blue-100{color:#c6dafc}.h-bg-google-blue-100{background-color:#c6dafc}.h-google-blue-200{color:#a1c2fa}.h-bg-google-blue-200{background-color:#a1c2fa}.h-google-blue-300{color:#7baaf7}.h-bg-google-blue-300{background-color:#7baaf7}.h-google-blue-400{color:#5e97f6}.h-bg-google-blue-400{background-color:#5e97f6}.h-google-blue-500{color:#4285f4}.h-bg-google-blue-500{background-color:#4285f4}.h-google-blue-600{color:#3b78e7}.h-bg-google-blue-600{background-color:#3b78e7}.h-google-blue-700{color:#3367d6}.h-bg-google-blue-700{background-color:#3367d6}.h-google-blue-800{color:#2a56c6}.h-bg-google-blue-800{background-color:#2a56c6}.h-google-blue-900{color:#1c3aa9}.h-bg-google-blue-900{background-color:#1c3aa9}.h-light-blue-50{color:#e1f5fe}.h-bg-light-blue-50{background-color:#e1f5fe}.h-light-blue-100{color:#b3e5fc}.h-bg-light-blue-100{background-color:#b3e5fc}.h-light-blue-200{color:#81d4fa}.h-bg-light-blue-200{background-color:#81d4fa}.h-light-blue-300{color:#4fc3f7}.h-bg-light-blue-300{background-color:#4fc3f7}.h-light-blue-400{color:#29b6f6}.h-bg-light-blue-400{background-color:#29b6f6}.h-light-blue-500{color:#03a9f4}.h-bg-light-blue-500{background-color:#03a9f4}.h-light-blue-600{color:#039be5}.h-bg-light-blue-600{background-color:#039be5}.h-light-blue-700{color:#0288d1}.h-bg-light-blue-700{background-color:#0288d1}.h-light-blue-800{color:#0277bd}.h-bg-light-blue-800{background-color:#0277bd}.h-light-blue-900{color:#01579b}.h-bg-light-blue-900{background-color:#01579b}.h-cyan-50{color:#e0f7fa}.h-bg-cyan-50{background-color:#e0f7fa}.h-cyan-100{color:#b2ebf2}.h-bg-cyan-100{background-color:#b2ebf2}.h-cyan-200{color:#80deea}.h-bg-cyan-200{background-color:#80deea}.h-cyan-300{color:#4dd0e1}.h-bg-cyan-300{background-color:#4dd0e1}.h-cyan-400{color:#26c6da}.h-bg-cyan-400{background-color:#26c6da}.h-cyan-500{color:#00bcd4}.h-bg-cyan-500{background-color:#00bcd4}.h-cyan-600{color:#00acc1}.h-bg-cyan-600{background-color:#00acc1}.h-cyan-700{color:#0097a7}.h-bg-cyan-700{background-color:#0097a7}.h-cyan-800{color:#00838f}.h-bg-cyan-800{background-color:#00838f}.h-cyan-900{color:#006064}.h-bg-cyan-900{background-color:#006064}.h-teal-50{color:#e0f2f1}.h-bg-teal-50{background-color:#e0f2f1}.h-teal-100{color:#b2dfdb}.h-bg-teal-100{background-color:#b2dfdb}.h-teal-200{color:#80cbc4}.h-bg-teal-200{background-color:#80cbc4}.h-teal-300{color:#4db6ac}.h-bg-teal-300{background-color:#4db6ac}.h-teal-400{color:#26a69a}.h-bg-teal-400{background-color:#26a69a}.h-teal-500{color:#009688}.h-bg-teal-500{background-color:#009688}.h-teal-600{color:#00897b}.h-bg-teal-600{background-color:#00897b}.h-teal-700{color:#00796b}.h-bg-teal-700{background-color:#00796b}.h-teal-800{color:#00695c}.h-bg-teal-800{background-color:#00695c}.h-teal-900{color:#004d40}.h-bg-teal-900{background-color:#004d40}.h-google-green-50{color:#e2f3eb}.h-bg-google-green-50{background-color:#e2f3eb}.h-google-green-100{color:#b7e1cd}.h-bg-google-green-100{background-color:#b7e1cd}.h-google-green-200{color:#87ceac}.h-bg-google-green-200{background-color:#87ceac}.h-google-green-300{color:#57bb8a}.h-bg-google-green-300{background-color:#57bb8a}.h-google-green-400{color:#33ac71}.h-bg-google-green-400{background-color:#33ac71}.h-google-green-500{color:#0f9d58}.h-bg-google-green-500{background-color:#0f9d58}.h-google-green-600{color:#0d904f}.h-bg-google-green-600{background-color:#0d904f}.h-google-green-700{color:#0b8043}.h-bg-google-green-700{background-color:#0b8043}.h-google-green-800{color:#097138}.h-bg-google-green-800{background-color:#097138}.h-google-green-900{color:#055524}.h-bg-google-green-900{background-color:#055524}.h-light-green-50{color:#f1f8e9}.h-bg-light-green-50{background-color:#f1f8e9}.h-light-green-100{color:#dcedc8}.h-bg-light-green-100{background-color:#dcedc8}.h-light-green-200{color:#c5e1a5}.h-bg-light-green-200{background-color:#c5e1a5}.h-light-green-300{color:#aed581}.h-bg-light-green-300{background-color:#aed581}.h-light-green-400{color:#9ccc65}.h-bg-light-green-400{background-color:#9ccc65}.h-light-green-500{color:#8bc34a}.h-bg-light-green-500{background-color:#8bc34a}.h-light-green-600{color:#7cb342}.h-bg-light-green-600{background-color:#7cb342}.h-light-green-700{color:#689f38}.h-bg-light-green-700{background-color:#689f38}.h-light-green-800{color:#558b2f}.h-bg-light-green-800{background-color:#558b2f}.h-light-green-900{color:#33691e}.h-bg-light-green-900{background-color:#33691e}.h-lime-50{color:#f9fbe7}.h-bg-lime-50{background-color:#f9fbe7}.h-lime-100{color:#f0f4c3}.h-bg-lime-100{background-color:#f0f4c3}.h-lime-200{color:#e6ee9c}.h-bg-lime-200{background-color:#e6ee9c}.h-lime-300{color:#dce775}.h-bg-lime-300{background-color:#dce775}.h-lime-400{color:#d4e157}.h-bg-lime-400{background-color:#d4e157}.h-lime-500{color:#cddc39}.h-bg-lime-500{background-color:#cddc39}.h-lime-600{color:#c0ca33}.h-bg-lime-600{background-color:#c0ca33}.h-lime-700{color:#afb42b}.h-bg-lime-700{background-color:#afb42b}.h-lime-800{color:#9e9d24}.h-bg-lime-800{background-color:#9e9d24}.h-lime-900{color:#827717}.h-bg-lime-900{background-color:#827717}.h-yellow-50{color:#fffde7}.h-bg-yellow-50{background-color:#fffde7}.h-yellow-100{color:#fff9c4}.h-bg-yellow-100{background-color:#fff9c4}.h-yellow-200{color:#fff59d}.h-bg-yellow-200{background-color:#fff59d}.h-yellow-300{color:#fff176}.h-bg-yellow-300{background-color:#fff176}.h-yellow-400{color:#ffee58}.h-bg-yellow-400{background-color:#ffee58}.h-yellow-500{color:#ffeb3b}.h-bg-yellow-500{background-color:#ffeb3b}.h-yellow-600{color:#fdd835}.h-bg-yellow-600{background-color:#fdd835}.h-yellow-700{color:#fbc02d}.h-bg-yellow-700{background-color:#fbc02d}.h-yellow-800{color:#f9a825}.h-bg-yellow-800{background-color:#f9a825}.h-yellow-900{color:#f57f17}.h-bg-yellow-900{background-color:#f57f17}.h-google-yellow-50{color:#fef6e0}.h-bg-google-yellow-50{background-color:#fef6e0}.h-google-yellow-100{color:#fce8b2}.h-bg-google-yellow-100{background-color:#fce8b2}.h-google-yellow-200{color:#fada80}.h-bg-google-yellow-200{background-color:#fada80}.h-google-yellow-300{color:#f7cb4d}.h-bg-google-yellow-300{background-color:#f7cb4d}.h-google-yellow-400{color:#f6bf26}.h-bg-google-yellow-400{background-color:#f6bf26}.h-google-yellow-500{color:#f4b400}.h-bg-google-yellow-500{background-color:#f4b400}.h-google-yellow-600{color:#f2a600}.h-bg-google-yellow-600{background-color:#f2a600}.h-google-yellow-700{color:#f09300}.h-bg-google-yellow-700{background-color:#f09300}.h-google-yellow-800{color:#ee8100}.h-bg-google-yellow-800{background-color:#ee8100}.h-google-yellow-900{color:#ea6100}.h-bg-google-yellow-900{background-color:#ea6100}.h-orange-50{color:#fff3e0}.h-bg-orange-50{background-color:#fff3e0}.h-orange-100{color:#ffe0b2}.h-bg-orange-100{background-color:#ffe0b2}.h-orange-200{color:#ffcc80}.h-bg-orange-200{background-color:#ffcc80}.h-orange-300{color:#ffb74d}.h-bg-orange-300{background-color:#ffb74d}.h-orange-400{color:#ffa726}.h-bg-orange-400{background-color:#ffa726}.h-orange-500{color:#ff9800}.h-bg-orange-500{background-color:#ff9800}.h-orange-600{color:#fb8c00}.h-bg-orange-600{background-color:#fb8c00}.h-orange-700{color:#f57c00}.h-bg-orange-700{background-color:#f57c00}.h-orange-800{color:#ef6c00}.h-bg-orange-800{background-color:#ef6c00}.h-orange-900{color:#e65100}.h-bg-orange-900{background-color:#e65100}.h-deep-orange-50{color:#fbe9e7}.h-bg-deep-orange-50{background-color:#fbe9e7}.h-deep-orange-100{color:#ffccbc}.h-bg-deep-orange-100{background-color:#ffccbc}.h-deep-orange-200{color:#ffab91}.h-bg-deep-orange-200{background-color:#ffab91}.h-deep-orange-300{color:#ff8a65}.h-bg-deep-orange-300{background-color:#ff8a65}.h-deep-orange-400{color:#ff7043}.h-bg-deep-orange-400{background-color:#ff7043}.h-deep-orange-500{color:#ff5722}.h-bg-deep-orange-500{background-color:#ff5722}.h-deep-orange-600{color:#f4511e}.h-bg-deep-orange-600{background-color:#f4511e}.h-deep-orange-700{color:#e64a19}.h-bg-deep-orange-700{background-color:#e64a19}.h-deep-orange-800{color:#d84315}.h-bg-deep-orange-800{background-color:#d84315}.h-deep-orange-900{color:#bf360c}.h-bg-deep-orange-900{background-color:#bf360c}.h-brown-50{color:#efebe9}.h-bg-brown-50{background-color:#efebe9}.h-brown-100{color:#d7ccc8}.h-bg-brown-100{background-color:#d7ccc8}.h-brown-200{color:#bcaaa4}.h-bg-brown-200{background-color:#bcaaa4}.h-brown-300{color:#a1887f}.h-bg-brown-300{background-color:#a1887f}.h-brown-400{color:#8d6e63}.h-bg-brown-400{background-color:#8d6e63}.h-brown-500{color:#795548}.h-bg-brown-500{background-color:#795548}.h-brown-600{color:#6d4c41}.h-bg-brown-600{background-color:#6d4c41}.h-brown-700{color:#5d4037}.h-bg-brown-700{background-color:#5d4037}.h-brown-800{color:#4e342e}.h-bg-brown-800{background-color:#4e342e}.h-brown-900{color:#3e2723}.h-bg-brown-900{background-color:#3e2723}.h-google-grey-50{color:#fafafa}.h-bg-google-grey-50{background-color:#fafafa}.h-google-grey-100{color:#f5f5f5}.h-bg-google-grey-100{background-color:#f5f5f5}.h-google-grey-200{color:#eee}.h-bg-google-grey-200{background-color:#eee}.h-google-grey-300{color:#e0e0e0}.h-bg-google-grey-300{background-color:#e0e0e0}.h-google-grey-400{color:#bdbdbd}.h-bg-google-grey-400{background-color:#bdbdbd}.h-google-grey-500{color:#9e9e9e}.h-bg-google-grey-500{background-color:#9e9e9e}.h-google-grey-600{color:#757575}.h-bg-google-grey-600{background-color:#757575}.h-google-grey-700{color:#616161}.h-bg-google-grey-700{background-color:#616161}.h-google-grey-800{color:#424242}.h-bg-google-grey-800{background-color:#424242}.h-google-grey-900{color:#212121}.h-bg-google-grey-900{background-color:#212121}.h-blue-grey-50{color:#eceff1}.h-bg-blue-grey-50{background-color:#eceff1}.h-blue-grey-100{color:#cfd8dc}.h-bg-blue-grey-100{background-color:#cfd8dc}.h-blue-grey-200{color:#b0bec5}.h-bg-blue-grey-200{background-color:#b0bec5}.h-blue-grey-300{color:#90a4ae}.h-bg-blue-grey-300{background-color:#90a4ae}.h-blue-grey-400{color:#78909c}.h-bg-blue-grey-400{background-color:#78909c}.h-blue-grey-500{color:#607d8b}.h-bg-blue-grey-500{background-color:#607d8b}.h-blue-grey-600{color:#546e7a}.h-bg-blue-grey-600{background-color:#546e7a}.h-blue-grey-700{color:#455a64}.h-bg-blue-grey-700{background-color:#455a64}.h-blue-grey-800{color:#37474f}.h-bg-blue-grey-800{background-color:#37474f}.h-blue-grey-900{color:#263238}.h-bg-blue-grey-900{background-color:#263238}.h-gm-grey-50{color:#f8f9fa}.h-bg-gm-grey-50{background-color:#f8f9fa}.h-gm-grey-100{color:#f1f3f4}.h-bg-gm-grey-100{background-color:#f1f3f4}.h-gm-grey-200{color:#e8eaed}.h-bg-gm-grey-200{background-color:#e8eaed}.h-gm-grey-300{color:#dadce0}.h-bg-gm-grey-300{background-color:#dadce0}.h-gm-grey-400{color:#bdc1c6}.h-bg-gm-grey-400{background-color:#bdc1c6}.h-gm-grey-500{color:#9aa0a6}.h-bg-gm-grey-500{background-color:#9aa0a6}.h-gm-grey-600{color:#80868b}.h-bg-gm-grey-600{background-color:#80868b}.h-gm-grey-700{color:#5f6368}.h-bg-gm-grey-700{background-color:#5f6368}.h-gm-grey-800{color:#3c4043}.h-bg-gm-grey-800{background-color:#3c4043}.h-gm-grey-900{color:#202124}.h-bg-gm-grey-900{background-color:#202124}.h-gm-grey-rgba-50{color:rgba(32,33,36,.03)}.h-bg-gm-grey-rgba-50{background-color:rgba(32,33,36,.03)}.h-gm-grey-rgba-100{color:rgba(32,33,36,.06)}.h-bg-gm-grey-rgba-100{background-color:rgba(32,33,36,.06)}.h-gm-grey-rgba-200{color:rgba(32,33,36,.1)}.h-bg-gm-grey-rgba-200{background-color:rgba(32,33,36,.1)}.h-gm-grey-rgba-300{color:rgba(32,33,36,.16)}.h-bg-gm-grey-rgba-300{background-color:rgba(32,33,36,.16)}.h-gm-grey-rgba-400{color:rgba(32,33,36,.28)}.h-bg-gm-grey-rgba-400{background-color:rgba(32,33,36,.28)}.h-gm-grey-rgba-500{color:rgba(32,33,36,.43)}.h-bg-gm-grey-rgba-500{background-color:rgba(32,33,36,.43)}.h-gm-grey-rgba-600{color:rgba(32,33,36,.55)}.h-bg-gm-grey-rgba-600{background-color:rgba(32,33,36,.55)}.h-gm-grey-rgba-700{color:rgba(32,33,36,.71)}.h-bg-gm-grey-rgba-700{background-color:rgba(32,33,36,.71)}.h-gm-grey-rgba-800{color:rgba(32,33,36,.86)}.h-bg-gm-grey-rgba-800{background-color:rgba(32,33,36,.86)}.h-gm-grey-rgba-900{color:#202124}.h-bg-gm-grey-rgba-900{background-color:#202124}.h-gm-blue-50{color:#e8f0fe}.h-bg-gm-blue-50{background-color:#e8f0fe}.h-gm-blue-100{color:#d2e3fc}.h-bg-gm-blue-100{background-color:#d2e3fc}.h-gm-blue-500{color:#4285f4}.h-bg-gm-blue-500{background-color:#4285f4}.h-gm-blue-600{color:#1a73e8}.h-bg-gm-blue-600{background-color:#1a73e8}.h-gm-blue-700{color:#1967d2}.h-bg-gm-blue-700{background-color:#1967d2}.h-gm-blue-800{color:#185abc}.h-bg-gm-blue-800{background-color:#185abc}.h-gm-blue-900{color:#174ea6}.h-bg-gm-blue-900{background-color:#174ea6}.h-gm-red-50{color:#fce8e6}.h-bg-gm-red-50{background-color:#fce8e6}.h-gm-red-100{color:#fad2cf}.h-bg-gm-red-100{background-color:#fad2cf}.h-gm-red-500{color:#ea4335}.h-bg-gm-red-500{background-color:#ea4335}.h-gm-red-600{color:#d93025}.h-bg-gm-red-600{background-color:#d93025}.h-gm-red-700{color:#c5221f}.h-bg-gm-red-700{background-color:#c5221f}.h-gm-red-800{color:#b31412}.h-bg-gm-red-800{background-color:#b31412}.h-gm-red-900{color:#a50e0e}.h-bg-gm-red-900{background-color:#a50e0e}.h-gm-yellow-50{color:#fef7e0}.h-bg-gm-yellow-50{background-color:#fef7e0}.h-gm-yellow-100{color:#feefc3}.h-bg-gm-yellow-100{background-color:#feefc3}.h-gm-yellow-500{color:#fbbc04}.h-bg-gm-yellow-500{background-color:#fbbc04}.h-gm-yellow-600{color:#f9ab00}.h-bg-gm-yellow-600{background-color:#f9ab00}.h-gm-yellow-700{color:#f29900}.h-bg-gm-yellow-700{background-color:#f29900}.h-gm-yellow-800{color:#ea8600}.h-bg-gm-yellow-800{background-color:#ea8600}.h-gm-yellow-900{color:#e37400}.h-bg-gm-yellow-900{background-color:#e37400}.h-gm-green-50{color:#e6f4ea}.h-bg-gm-green-50{background-color:#e6f4ea}.h-gm-green-100{color:#ceead6}.h-bg-gm-green-100{background-color:#ceead6}.h-gm-green-500{color:#34a853}.h-bg-gm-green-500{background-color:#34a853}.h-gm-green-600{color:#1e8e3e}.h-bg-gm-green-600{background-color:#1e8e3e}.h-gm-green-700{color:#188038}.h-bg-gm-green-700{background-color:#188038}.h-gm-green-800{color:#137333}.h-bg-gm-green-800{background-color:#137333}.h-gm-green-900{color:#0d652d}.h-bg-gm-green-900{background-color:#0d652d} html{font-family:sans-serif; -ms-text-size-adjust:100%; -webkit-text-size-adjust:100% } article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block} audio,canvas,progress,video{display:inline-block; vertical-align:baseline } audio:not([controls]){display:none;height:0} [hidden],template{display:none} a{background:transparent} a:active,a:hover{outline:0} abbr[title]{border-bottom:1px dotted} dfn{font-style:italic} h1{font-size:2em;margin:.67em 0} mark{background:#ff0;color:#000} small{font-size:80%} sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em} img{border:0} svg:not(:root){overflow:hidden} figure{margin:1em 40px} hr{-webkit-box-sizing:content-box;box-sizing:content-box} pre{overflow:auto} code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em} button,input,optgroup,select,textarea{color:inherit; font:inherit; margin:0 } button{overflow:visible} button,select{text-transform:none} button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button; cursor:pointer } button[disabled],html input[disabled]{cursor:default} button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0} input{line-height:normal} input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box; padding:0 } input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto} input[type=search]{-webkit-appearance:textfield; -webkit-box-sizing:content-box; box-sizing:content-box} input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none} fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em} legend{border:0; padding:0 } textarea{overflow:auto} optgroup{font-weight:700} table{border-collapse:collapse;border-spacing:0}td,th{padding:0}*,:after,:before{-webkit-box-sizing:border-box;box-sizing:border-box}blockquote,dd,div,dl,dt,form,h1,h2,h3,h4,h5,h6,li,ol,p,pre,td,th,ul{margin:0;padding:0}abbr,acronym,blockquote,code,input,kbd,q,samp,var{-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}html{font-size:18px}body{background:#fff;color:#202124;cursor:auto;font-family:Roboto,Arial,Helvetica,sans-serif;font-size:1em;font-style:normal;font-weight:300;line-height:1.444;margin:0;padding:0;overflow-wrap:break-word;word-wrap:break-word}body:after{content:"x-small";display:none}@media (min-width:600px){body:after{content:"small"}}@media (min-width:1024px){body:after{content:"medium"}}@media (min-width:1440px){body:after{content:"large"}}[lang=ja] body{font-family:Roboto,Noto Sans CJK JP,Noto Sans JP,Arial,Helvetica,sans-serif}[lang=ko] body{font-family:Roboto,Noto Sans CJK KR,Noto Sans KR,Arial,Helvetica,sans-serif}[lang=zh-CN] body{font-family:Roboto,Noto Sans CJK SC,Noto Sans SC,Arial,Helvetica,sans-serif}[lang=zh-TW] body{font-family:Roboto,Noto Sans CJK TC,Noto Sans TC,Arial,Helvetica,sans-serif}h1,h2,h3,h4,h5,h6{font-size:18px;font-weight:300}h1.h-has-top-margin,h2.h-has-top-margin,h3.h-has-top-margin,h4.h-has-top-margin,h5.h-has-top-margin,h6.h-has-top-margin{margin-top:16px}h1.h-has-bottom-margin,h2.h-has-bottom-margin,h3.h-has-bottom-margin,h4.h-has-bottom-margin,h5.h-has-bottom-margin,h6.h-has-bottom-margin{margin-bottom:16px}h1.h-has-top-bottom-margin,h2.h-has-top-bottom-margin,h3.h-has-top-bottom-margin,h4.h-has-top-bottom-margin,h5.h-has-top-bottom-margin,h6.h-has-top-bottom-margin{margin-bottom:16px;margin-top:16px}.h-c-copy,.rich-text,p{line-height:1.71428571;font-size:14px;letter-spacing:.25px}.h-c-copy--lead.h-c-copy,.h-c-copy--lead.rich-text,p.h-c-copy--lead{font-size:18px;line-height:1.44444444}.h-has-top-margin.h-c-copy,.h-has-top-margin.rich-text,p.h-has-top-margin{margin-top:12px}.h-has-bottom-margin.h-c-copy,.h-has-bottom-margin.rich-text,p.h-has-bottom-margin{margin-bottom:12px}.h-has-top-bottom-margin.h-c-copy,.h-has-top-bottom-margin.rich-text,p.h-has-top-bottom-margin{margin-bottom:12px;margin-top:12px}.h-c-copy--print.h-c-copy,.h-c-copy--print.rich-text,p.h-c-copy--print{text-indent:24px}.h-c-copy--print.h-c-copy+.h-c-copy--print.h-c-copy,.h-c-copy--print.h-c-copy+.h-c-copy--print.rich-text,.h-c-copy--print.h-c-copy+p.h-c-copy--print,.h-c-copy--print.rich-text+.h-c-copy--print.h-c-copy,.h-c-copy--print.rich-text+.h-c-copy--print.rich-text,.h-c-copy--print.rich-text+p.h-c-copy--print,p.h-c-copy--print+.h-c-copy--print.h-c-copy,p.h-c-copy--print+.h-c-copy--print.rich-text,p.h-c-copy--print+p.h-c-copy--print{margin-top:0}.h-c-copy+.h-c-copy,.h-c-copy+.rich-text,.h-c-copy+p,.rich-text+.h-c-copy,.rich-text+.rich-text,.rich-text+p,p+.h-c-copy,p+.rich-text,p+p{margin-top:12px}@media (min-width:600px){.h-c-copy,.rich-text,p{line-height:1.71428571;font-size:14px;letter-spacing:.25px}}@media (min-width:1024px){.h-c-copy,.rich-text,p{line-height:1.625;font-size:16px;letter-spacing:0}.h-has-top-margin.h-c-copy,.h-has-top-margin.rich-text,p.h-has-top-margin{margin-top:16px}.h-has-bottom-margin.h-c-copy,.h-has-bottom-margin.rich-text,p.h-has-bottom-margin{margin-bottom:16px}.h-has-top-bottom-margin.h-c-copy,.h-has-top-bottom-margin.rich-text,p.h-has-top-bottom-margin{margin-bottom:16px;margin-top:16px}.h-c-copy+.h-c-copy,.h-c-copy+.rich-text,.h-c-copy+p,.rich-text+.h-c-copy,.rich-text+.rich-text,.rich-text+p,p+.h-c-copy,p+.rich-text,p+p{margin-top:16px}}hr{border:solid #dadce0;border-width:1px 0 0;clear:both;height:0;margin-bottom:19px;margin-top:20px}em,i{font-style:italic}b,strong{font-weight:700}pre{background:#f5f5f5;border-color:#e0e0e0;border-style:solid;border-width:1px;margin-bottom:20px;padding:6px;white-space:pre}pre code{background:transparent;padding:0}code{background:#f5f5f5;color:#9e9e9e;font-family:Consolas,Monaco,Bitstream Vera Sans Mono,Courier New,Courier,monospace;font-weight:300;overflow-x:auto;padding:6px;white-space:pre;word-wrap:normal}abbr,acronym{color:#202124;cursor:help;font-size:90%;text-transform:uppercase}abbr{text-transform:none}a{color:#1a73e8;text-decoration:none}a:visited{color:#7b1fa2}a:hover{cursor:pointer}a:focus,a:hover{color:#174ea6;text-decoration:none}a:focus{background:#f1f3f4;outline:4px solid rgba(32,33,36,.06)}a:active{outline:2px auto Highlight;outline:5px auto -webkit-focus-ring-color}a img{border:0}.h-u-font-reversed a{color:#fff}.h-u-font-reversed a:visited{color:#cfa6ff}.h-u-font-reversed a:focus,.h-u-font-reversed a:hover{background:#f1f3f4;color:#202124;outline:4px solid #f1f3f4}dl,ol,ul{list-style-position:outside;margin-bottom:20px}dl.h-no-bullet,li.h-no-bullet,ol.h-no-bullet,ul.h-no-bullet{list-style:none}ol.h-no-bullet,ul.h-no-bullet{margin-left:0}html[dir=rtl] ol.h-no-bullet,html[dir=rtl] ul.h-no-bullet{margin-right:0}ol,ul{margin-left:20px}html[dir=rtl] ol,html[dir=rtl] ul{margin-left:0;margin-right:20px}ol.h-inline li,ul.h-inline li{display:inline-block}ol li ol,ol li ul,ul li ol,ul li ul{margin-bottom:0;margin-left:20px}html[dir=rtl] ol li ol,html[dir=rtl] ol li ul,html[dir=rtl] ul li ol,html[dir=rtl] ul li ul{margin-left:0;margin-right:20px}ul.h-circle li ul,ul.h-disc li ul,ul.h-square li ul{list-style:inherit}ul.h-square{list-style-type:square}ul.h-circle{list-style-type:circle}ul.h-disc{list-style-type:disc}dl dt{font-weight:700}dl dd{margin-bottom:12px}dd,dt,li{line-height:1.71428571;font-size:14px;letter-spacing:.25px}@media (min-width:600px){dd,dt,li{line-height:1.71428571;font-size:14px;letter-spacing:.25px}}@media (min-width:1024px){dd,dt,li{line-height:1.625;font-size:16px;letter-spacing:0}}img{-ms-interpolation-mode:bicubic;display:inline-block;height:auto;max-width:100%;vertical-align:middle}blockquote{line-height:1.33333333;color:#202124;font-size:24px}@media (min-width:1024px){blockquote{line-height:1.20833333;font-size:48px}}cite{display:block}cite:before{content:"\2014 ";white-space:pre}textarea{height:auto;min-height:50px}select{width:100%}.h-u-visually-hidden{position:absolute;height:1px;width:1px;overflow:hidden;clip:rect(1px,1px,1px,1px)}.h-u-visually-show{position:static;height:auto;width:auto;overflow:visible;clip:auto}.h-u-text-left{text-align:left}.h-u-text-right,[dir=rtl] .h-u-text-left{text-align:right}[dir=rtl] .h-u-text-right{text-align:left}.h-u-text-center{text-align:center}.h-u-text-justify{text-align:justify}.h-u-valign-bottom{vertical-align:bottom}.h-u-valign-middle{vertical-align:middle}.h-u-valign-top{vertical-align:top}.h-u-box-shadow-1{-webkit-box-shadow:0 1px 1.5px 0 rgba(0,0,0,.12),0 1px 1px 0 rgba(0,0,0,.24);box-shadow:0 1px 1.5px 0 rgba(0,0,0,.12),0 1px 1px 0 rgba(0,0,0,.24)}.h-u-box-shadow-2{-webkit-box-shadow:0 2px 5px 0 rgba(0,0,0,.16),0 2px 5px 0 rgba(0,0,0,.23);box-shadow:0 2px 5px 0 rgba(0,0,0,.16),0 2px 5px 0 rgba(0,0,0,.23)}.h-u-box-shadow-3{-webkit-box-shadow:0 10px 10px 0 rgba(0,0,0,.19),0 6px 3px 0 rgba(0,0,0,.23);box-shadow:0 10px 10px 0 rgba(0,0,0,.19),0 6px 3px 0 rgba(0,0,0,.23)}.h-u-box-shadow-4{-webkit-box-shadow:0 14px 14px 0 rgba(0,0,0,.25),0 10px 5px 0 rgba(0,0,0,.22);box-shadow:0 14px 14px 0 rgba(0,0,0,.25),0 10px 5px 0 rgba(0,0,0,.22)}.h-u-box-shadow-5{-webkit-box-shadow:0 19px 19px 0 rgba(0,0,0,.3),0 15px 6px 0 rgba(0,0,0,.22);box-shadow:0 19px 19px 0 rgba(0,0,0,.3),0 15px 6px 0 rgba(0,0,0,.22)}.h-u-mb-std{margin-bottom:18px}.h-u-mt-std{margin-top:18px}.h-u-ml-std{margin-left:18px}.h-u-mr-std{margin-right:18px}.h-u-mb-l{margin-bottom:36px}.h-u-mt-l{margin-top:36px}.h-u-ml-l{margin-left:36px}.h-u-mr-l{margin-right:36px}.h-u-mb-xl{margin-bottom:54px}.h-u-mt-xl{margin-top:54px}.h-u-ml-xl{margin-left:54px}.h-u-mr-xl{margin-right:54px}.h-u-font-weight-light{font-weight:300}.h-u-font-weight-regular{font-weight:400}.h-u-font-weight-medium{font-weight:500}.h-u-font-weight-bold{font-weight:700}.h-u-font-smoothing{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.h-u-font-reversed{color:#fff}.glue-flexbox .h-c-grid{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin:0 -2.65151515%}@media (min-width:600px){.glue-flexbox .h-c-grid{margin:0 -1.03799452%}}.glue-flexbox .h-c-grid__col{-ms-flex:0 1 auto;-webkit-box-flex:0;flex:0 1 auto;margin:0 2.65151515%;width:100%}@media (min-width:600px){.glue-flexbox .h-c-grid__col{margin:0 1.03799452%}}.glue-flexbox .h-c-grid__col-s--1{-ms-flex-preferred-size:19.6969697%;flex-basis:19.6969697%;width:19.6969697%;margin:0 2.65151515%}.glue-flexbox .h-c-grid__col-s--2{-ms-flex-preferred-size:44.6969697%;flex-basis:44.6969697%;width:44.6969697%;margin:0 2.65151515%}.glue-flexbox .h-c-grid__col-s--3{-ms-flex-preferred-size:69.6969697%;flex-basis:69.6969697%;width:69.6969697%;margin:0 2.65151515%}.glue-flexbox .h-c-grid__col-s--4{-ms-flex-preferred-size:94.6969697%;flex-basis:94.6969697%;width:94.6969697%;margin:0 2.65151515%}@media (min-width:600px){.glue-flexbox .h-c-grid__col--1{-ms-flex-preferred-size:6.2573443%;flex-basis:6.2573443%;width:6.2573443%;margin:0 1.03799452%}.glue-flexbox .h-c-grid__col--2{-ms-flex-preferred-size:14.59067763%;flex-basis:14.59067763%;width:14.59067763%;margin:0 1.03799452%}.glue-flexbox .h-c-grid__col--3{-ms-flex-preferred-size:22.92401097%;flex-basis:22.92401097%;width:22.92401097%;margin:0 1.03799452%}.glue-flexbox .h-c-grid__col--4{-ms-flex-preferred-size:31.2573443%;flex-basis:31.2573443%;width:31.2573443%;margin:0 1.03799452%}.glue-flexbox .h-c-grid__col--5{-ms-flex-preferred-size:39.59067763%;flex-basis:39.59067763%;width:39.59067763%;margin:0 1.03799452%}.glue-flexbox .h-c-grid__col--6{-ms-flex-preferred-size:47.92401097%;flex-basis:47.92401097%;width:47.92401097%;margin:0 1.03799452%}.glue-flexbox .h-c-grid__col--7{-ms-flex-preferred-size:56.2573443%;flex-basis:56.2573443%;width:56.2573443%;margin:0 1.03799452%}.glue-flexbox .h-c-grid__col--8{-ms-flex-preferred-size:64.59067763%;flex-basis:64.59067763%;width:64.59067763%;margin:0 1.03799452%}.glue-flexbox .h-c-grid__col--9{-ms-flex-preferred-size:72.92401097%;flex-basis:72.92401097%;width:72.92401097%;margin:0 1.03799452%}.glue-flexbox .h-c-grid__col--10{-ms-flex-preferred-size:81.2573443%;flex-basis:81.2573443%;width:81.2573443%;margin:0 1.03799452%}.glue-flexbox .h-c-grid__col--11{-ms-flex-preferred-size:89.59067763%;flex-basis:89.59067763%;width:89.59067763%;margin:0 1.03799452%}.glue-flexbox .h-c-grid__col--12{-ms-flex-preferred-size:97.92401097%;flex-basis:97.92401097%;width:97.92401097%;margin:0 1.03799452%}}@media (min-width:1024px){.glue-flexbox .h-c-grid__col-l--1{-ms-flex-preferred-size:6.2573443%;flex-basis:6.2573443%;width:6.2573443%;margin:0 1.03799452%}.glue-flexbox .h-c-grid__col-l--2{-ms-flex-preferred-size:14.59067763%;flex-basis:14.59067763%;width:14.59067763%;margin:0 1.03799452%}.glue-flexbox .h-c-grid__col-l--3{-ms-flex-preferred-size:22.92401097%;flex-basis:22.92401097%;width:22.92401097%;margin:0 1.03799452%}.glue-flexbox .h-c-grid__col-l--4{-ms-flex-preferred-size:31.2573443%;flex-basis:31.2573443%;width:31.2573443%;margin:0 1.03799452%}.glue-flexbox .h-c-grid__col-l--5{-ms-flex-preferred-size:39.59067763%;flex-basis:39.59067763%;width:39.59067763%;margin:0 1.03799452%}.glue-flexbox .h-c-grid__col-l--6{-ms-flex-preferred-size:47.92401097%;flex-basis:47.92401097%;width:47.92401097%;margin:0 1.03799452%}.glue-flexbox .h-c-grid__col-l--7{-ms-flex-preferred-size:56.2573443%;flex-basis:56.2573443%;width:56.2573443%;margin:0 1.03799452%}.glue-flexbox .h-c-grid__col-l--8{-ms-flex-preferred-size:64.59067763%;flex-basis:64.59067763%;width:64.59067763%;margin:0 1.03799452%}.glue-flexbox .h-c-grid__col-l--9{-ms-flex-preferred-size:72.92401097%;flex-basis:72.92401097%;width:72.92401097%;margin:0 1.03799452%}.glue-flexbox .h-c-grid__col-l--10{-ms-flex-preferred-size:81.2573443%;flex-basis:81.2573443%;width:81.2573443%;margin:0 1.03799452%}.glue-flexbox .h-c-grid__col-l--11{-ms-flex-preferred-size:89.59067763%;flex-basis:89.59067763%;width:89.59067763%;margin:0 1.03799452%}.glue-flexbox .h-c-grid__col-l--12{-ms-flex-preferred-size:97.92401097%;flex-basis:97.92401097%;width:97.92401097%;margin:0 1.03799452%}}@media (min-width:1440px){.glue-flexbox .h-c-grid__col-xl--1{-ms-flex-preferred-size:6.2573443%;flex-basis:6.2573443%;width:6.2573443%;margin:0 1.03799452%}.glue-flexbox .h-c-grid__col-xl--2{-ms-flex-preferred-size:14.59067763%;flex-basis:14.59067763%;width:14.59067763%;margin:0 1.03799452%}.glue-flexbox .h-c-grid__col-xl--3{-ms-flex-preferred-size:22.92401097%;flex-basis:22.92401097%;width:22.92401097%;margin:0 1.03799452%}.glue-flexbox .h-c-grid__col-xl--4{-ms-flex-preferred-size:31.2573443%;flex-basis:31.2573443%;width:31.2573443%;margin:0 1.03799452%}.glue-flexbox .h-c-grid__col-xl--5{-ms-flex-preferred-size:39.59067763%;flex-basis:39.59067763%;width:39.59067763%;margin:0 1.03799452%}.glue-flexbox .h-c-grid__col-xl--6{-ms-flex-preferred-size:47.92401097%;flex-basis:47.92401097%;width:47.92401097%;margin:0 1.03799452%}.glue-flexbox .h-c-grid__col-xl--7{-ms-flex-preferred-size:56.2573443%;flex-basis:56.2573443%;width:56.2573443%;margin:0 1.03799452%}.glue-flexbox .h-c-grid__col-xl--8{-ms-flex-preferred-size:64.59067763%;flex-basis:64.59067763%;width:64.59067763%;margin:0 1.03799452%}.glue-flexbox .h-c-grid__col-xl--9{-ms-flex-preferred-size:72.92401097%;flex-basis:72.92401097%;width:72.92401097%;margin:0 1.03799452%}.glue-flexbox .h-c-grid__col-xl--10{-ms-flex-preferred-size:81.2573443%;flex-basis:81.2573443%;width:81.2573443%;margin:0 1.03799452%}.glue-flexbox .h-c-grid__col-xl--11{-ms-flex-preferred-size:89.59067763%;flex-basis:89.59067763%;width:89.59067763%;margin:0 1.03799452%}.glue-flexbox .h-c-grid__col-xl--12{-ms-flex-preferred-size:97.92401097%;flex-basis:97.92401097%;width:97.92401097%;margin:0 1.03799452%}}.glue-flexbox .h-c-grid__col-s--offset-0,[dir=rtl].glue-flexbox .h-c-grid__col-s--offset-0{margin-left:2.65151515%;margin-right:2.65151515%}.glue-flexbox .h-c-grid__col-s--offset-1{margin-left:27.65151515%;margin-right:2.65151515%}[dir=rtl].glue-flexbox .h-c-grid__col-s--offset-1{margin-left:2.65151515%;margin-right:27.65151515%}.glue-flexbox .h-c-grid__col-s--offset-2{margin-left:52.65151515%;margin-right:2.65151515%}[dir=rtl].glue-flexbox .h-c-grid__col-s--offset-2{margin-left:2.65151515%;margin-right:52.65151515%}.glue-flexbox .h-c-grid__col-s--offset-3{margin-left:77.65151515%;margin-right:2.65151515%}[dir=rtl].glue-flexbox .h-c-grid__col-s--offset-3{margin-left:2.65151515%;margin-right:77.65151515%}@media (min-width:600px){.glue-flexbox .h-c-grid__col--offset-0,[dir=rtl].glue-flexbox .h-c-grid__col--offset-0{margin-left:1.03799452%;margin-right:1.03799452%}.glue-flexbox .h-c-grid__col--offset-1{margin-left:9.37132785%;margin-right:1.03799452%}[dir=rtl].glue-flexbox .h-c-grid__col--offset-1{margin-left:1.03799452%;margin-right:9.37132785%}.glue-flexbox .h-c-grid__col--offset-2{margin-left:17.70466118%;margin-right:1.03799452%}[dir=rtl].glue-flexbox .h-c-grid__col--offset-2{margin-left:1.03799452%;margin-right:17.70466118%}.glue-flexbox .h-c-grid__col--offset-3{margin-left:26.03799452%;margin-right:1.03799452%}[dir=rtl].glue-flexbox .h-c-grid__col--offset-3{margin-left:1.03799452%;margin-right:26.03799452%}.glue-flexbox .h-c-grid__col--offset-4{margin-left:34.37132785%;margin-right:1.03799452%}[dir=rtl].glue-flexbox .h-c-grid__col--offset-4{margin-left:1.03799452%;margin-right:34.37132785%}.glue-flexbox .h-c-grid__col--offset-5{margin-left:42.70466118%;margin-right:1.03799452%}[dir=rtl].glue-flexbox .h-c-grid__col--offset-5{margin-left:1.03799452%;margin-right:42.70466118%}.glue-flexbox .h-c-grid__col--offset-6{margin-left:51.03799452%;margin-right:1.03799452%}[dir=rtl].glue-flexbox .h-c-grid__col--offset-6{margin-left:1.03799452%;margin-right:51.03799452%}.glue-flexbox .h-c-grid__col--offset-7{margin-left:59.37132785%;margin-right:1.03799452%}[dir=rtl].glue-flexbox .h-c-grid__col--offset-7{margin-left:1.03799452%;margin-right:59.37132785%}.glue-flexbox .h-c-grid__col--offset-8{margin-left:67.70466118%;margin-right:1.03799452%}[dir=rtl].glue-flexbox .h-c-grid__col--offset-8{margin-left:1.03799452%;margin-right:67.70466118%}.glue-flexbox .h-c-grid__col--offset-9{margin-left:76.03799452%;margin-right:1.03799452%}[dir=rtl].glue-flexbox .h-c-grid__col--offset-9{margin-left:1.03799452%;margin-right:76.03799452%}.glue-flexbox .h-c-grid__col--offset-10{margin-left:84.37132785%;margin-right:1.03799452%}[dir=rtl].glue-flexbox .h-c-grid__col--offset-10{margin-left:1.03799452%;margin-right:84.37132785%}.glue-flexbox .h-c-grid__col--offset-11{margin-left:92.70466118%;margin-right:1.03799452%}[dir=rtl].glue-flexbox .h-c-grid__col--offset-11{margin-left:1.03799452%;margin-right:92.70466118%}}@media (min-width:1024px){.glue-flexbox .h-c-grid__col-l--offset-0,[dir=rtl].glue-flexbox .h-c-grid__col-l--offset-0{margin-left:1.03799452%;margin-right:1.03799452%}.glue-flexbox .h-c-grid__col-l--offset-1{margin-left:9.37132785%;margin-right:1.03799452%}[dir=rtl].glue-flexbox .h-c-grid__col-l--offset-1{margin-left:1.03799452%;margin-right:9.37132785%}.glue-flexbox .h-c-grid__col-l--offset-2{margin-left:17.70466118%;margin-right:1.03799452%}[dir=rtl].glue-flexbox .h-c-grid__col-l--offset-2{margin-left:1.03799452%;margin-right:17.70466118%}.glue-flexbox .h-c-grid__col-l--offset-3{margin-left:26.03799452%;margin-right:1.03799452%}[dir=rtl].glue-flexbox .h-c-grid__col-l--offset-3{margin-left:1.03799452%;margin-right:26.03799452%}.glue-flexbox .h-c-grid__col-l--offset-4{margin-left:34.37132785%;margin-right:1.03799452%}[dir=rtl].glue-flexbox .h-c-grid__col-l--offset-4{margin-left:1.03799452%;margin-right:34.37132785%}.glue-flexbox .h-c-grid__col-l--offset-5{margin-left:42.70466118%;margin-right:1.03799452%}[dir=rtl].glue-flexbox .h-c-grid__col-l--offset-5{margin-left:1.03799452%;margin-right:42.70466118%}.glue-flexbox .h-c-grid__col-l--offset-6{margin-left:51.03799452%;margin-right:1.03799452%}[dir=rtl].glue-flexbox .h-c-grid__col-l--offset-6{margin-left:1.03799452%;margin-right:51.03799452%}.glue-flexbox .h-c-grid__col-l--offset-7{margin-left:59.37132785%;margin-right:1.03799452%}[dir=rtl].glue-flexbox .h-c-grid__col-l--offset-7{margin-left:1.03799452%;margin-right:59.37132785%}.glue-flexbox .h-c-grid__col-l--offset-8{margin-left:67.70466118%;margin-right:1.03799452%}[dir=rtl].glue-flexbox .h-c-grid__col-l--offset-8{margin-left:1.03799452%;margin-right:67.70466118%}.glue-flexbox .h-c-grid__col-l--offset-9{margin-left:76.03799452%;margin-right:1.03799452%}[dir=rtl].glue-flexbox .h-c-grid__col-l--offset-9{margin-left:1.03799452%;margin-right:76.03799452%}.glue-flexbox .h-c-grid__col-l--offset-10{margin-left:84.37132785%;margin-right:1.03799452%}[dir=rtl].glue-flexbox .h-c-grid__col-l--offset-10{margin-left:1.03799452%;margin-right:84.37132785%}.glue-flexbox .h-c-grid__col-l--offset-11{margin-left:92.70466118%;margin-right:1.03799452%}[dir=rtl].glue-flexbox .h-c-grid__col-l--offset-11{margin-left:1.03799452%;margin-right:92.70466118%}}@media (min-width:1440px){.glue-flexbox .h-c-grid__col-xl--offset-0,[dir=rtl].glue-flexbox .h-c-grid__col-xl--offset-0{margin-left:1.03799452%;margin-right:1.03799452%}.glue-flexbox .h-c-grid__col-xl--offset-1{margin-left:9.37132785%;margin-right:1.03799452%}[dir=rtl].glue-flexbox .h-c-grid__col-xl--offset-1{margin-left:1.03799452%;margin-right:9.37132785%}.glue-flexbox .h-c-grid__col-xl--offset-2{margin-left:17.70466118%;margin-right:1.03799452%}[dir=rtl].glue-flexbox .h-c-grid__col-xl--offset-2{margin-left:1.03799452%;margin-right:17.70466118%}.glue-flexbox .h-c-grid__col-xl--offset-3{margin-left:26.03799452%;margin-right:1.03799452%}[dir=rtl].glue-flexbox .h-c-grid__col-xl--offset-3{margin-left:1.03799452%;margin-right:26.03799452%}.glue-flexbox .h-c-grid__col-xl--offset-4{margin-left:34.37132785%;margin-right:1.03799452%}[dir=rtl].glue-flexbox .h-c-grid__col-xl--offset-4{margin-left:1.03799452%;margin-right:34.37132785%}.glue-flexbox .h-c-grid__col-xl--offset-5{margin-left:42.70466118%;margin-right:1.03799452%}[dir=rtl].glue-flexbox .h-c-grid__col-xl--offset-5{margin-left:1.03799452%;margin-right:42.70466118%}.glue-flexbox .h-c-grid__col-xl--offset-6{margin-left:51.03799452%;margin-right:1.03799452%}[dir=rtl].glue-flexbox .h-c-grid__col-xl--offset-6{margin-left:1.03799452%;margin-right:51.03799452%}.glue-flexbox .h-c-grid__col-xl--offset-7{margin-left:59.37132785%;margin-right:1.03799452%}[dir=rtl].glue-flexbox .h-c-grid__col-xl--offset-7{margin-left:1.03799452%;margin-right:59.37132785%}.glue-flexbox .h-c-grid__col-xl--offset-8{margin-left:67.70466118%;margin-right:1.03799452%}[dir=rtl].glue-flexbox .h-c-grid__col-xl--offset-8{margin-left:1.03799452%;margin-right:67.70466118%}.glue-flexbox .h-c-grid__col-xl--offset-9{margin-left:76.03799452%;margin-right:1.03799452%}[dir=rtl].glue-flexbox .h-c-grid__col-xl--offset-9{margin-left:1.03799452%;margin-right:76.03799452%}.glue-flexbox .h-c-grid__col-xl--offset-10{margin-left:84.37132785%;margin-right:1.03799452%}[dir=rtl].glue-flexbox .h-c-grid__col-xl--offset-10{margin-left:1.03799452%;margin-right:84.37132785%}.glue-flexbox .h-c-grid__col-xl--offset-11{margin-left:92.70466118%;margin-right:1.03799452%}[dir=rtl].glue-flexbox .h-c-grid__col-xl--offset-11{margin-left:1.03799452%;margin-right:92.70466118%}}.h-c-grid__col--align-start{-webkit-align-self:flex-start;-ms-align-self:flex-start;-ms-flex-item-align:start;align-self:flex-start}.h-c-grid__col--align-middle{-webkit-align-self:center;-ms-align-self:center;-ms-flex-item-align:center;-ms-grid-row-align:center;align-self:center}.h-c-grid__col--align-end{-webkit-align-self:flex-end;-ms-align-self:flex-end;-ms-flex-item-align:end;align-self:flex-end}.h-c-grid__col--order-1{-ms-flex-order:1;-webkit-box-ordinal-group:2;order:1}.h-c-grid__col--order-2{-ms-flex-order:2;-webkit-box-ordinal-group:3;order:2}.h-c-grid__col--order-3{-ms-flex-order:3;-webkit-box-ordinal-group:4;order:3}.h-c-grid__col--order-4{-ms-flex-order:4;-webkit-box-ordinal-group:5;order:4}.h-c-grid__col--order-5{-ms-flex-order:5;-webkit-box-ordinal-group:6;order:5}.h-c-grid__col--order-6{-ms-flex-order:6;-webkit-box-ordinal-group:7;order:6}.h-c-grid__col--order-7{-ms-flex-order:7;-webkit-box-ordinal-group:8;order:7}.h-c-grid__col--order-8{-ms-flex-order:8;-webkit-box-ordinal-group:9;order:8}.h-c-grid__col--order-9{-ms-flex-order:9;-webkit-box-ordinal-group:10;order:9}.h-c-grid__col--order-10{-ms-flex-order:10;-webkit-box-ordinal-group:11;order:10}.h-c-grid__col--order-11{-ms-flex-order:11;-webkit-box-ordinal-group:12;order:11}.h-c-grid__col--order-12{-ms-flex-order:12;-webkit-box-ordinal-group:13;order:12}@media (min-width:600px){.h-c-grid__col-m--order-1{-ms-flex-order:1;-webkit-box-ordinal-group:2;order:1}.h-c-grid__col-m--order-2{-ms-flex-order:2;-webkit-box-ordinal-group:3;order:2}.h-c-grid__col-m--order-3{-ms-flex-order:3;-webkit-box-ordinal-group:4;order:3}.h-c-grid__col-m--order-4{-ms-flex-order:4;-webkit-box-ordinal-group:5;order:4}.h-c-grid__col-m--order-5{-ms-flex-order:5;-webkit-box-ordinal-group:6;order:5}.h-c-grid__col-m--order-6{-ms-flex-order:6;-webkit-box-ordinal-group:7;order:6}.h-c-grid__col-m--order-7{-ms-flex-order:7;-webkit-box-ordinal-group:8;order:7}.h-c-grid__col-m--order-8{-ms-flex-order:8;-webkit-box-ordinal-group:9;order:8}.h-c-grid__col-m--order-9{-ms-flex-order:9;-webkit-box-ordinal-group:10;order:9}.h-c-grid__col-m--order-10{-ms-flex-order:10;-webkit-box-ordinal-group:11;order:10}.h-c-grid__col-m--order-11{-ms-flex-order:11;-webkit-box-ordinal-group:12;order:11}.h-c-grid__col-m--order-12{-ms-flex-order:12;-webkit-box-ordinal-group:13;order:12}}@media (min-width:1024px){.h-c-grid__col-l--order-1{-ms-flex-order:1;-webkit-box-ordinal-group:2;order:1}.h-c-grid__col-l--order-2{-ms-flex-order:2;-webkit-box-ordinal-group:3;order:2}.h-c-grid__col-l--order-3{-ms-flex-order:3;-webkit-box-ordinal-group:4;order:3}.h-c-grid__col-l--order-4{-ms-flex-order:4;-webkit-box-ordinal-group:5;order:4}.h-c-grid__col-l--order-5{-ms-flex-order:5;-webkit-box-ordinal-group:6;order:5}.h-c-grid__col-l--order-6{-ms-flex-order:6;-webkit-box-ordinal-group:7;order:6}.h-c-grid__col-l--order-7{-ms-flex-order:7;-webkit-box-ordinal-group:8;order:7}.h-c-grid__col-l--order-8{-ms-flex-order:8;-webkit-box-ordinal-group:9;order:8}.h-c-grid__col-l--order-9{-ms-flex-order:9;-webkit-box-ordinal-group:10;order:9}.h-c-grid__col-l--order-10{-ms-flex-order:10;-webkit-box-ordinal-group:11;order:10}.h-c-grid__col-l--order-11{-ms-flex-order:11;-webkit-box-ordinal-group:12;order:11}.h-c-grid__col-l--order-12{-ms-flex-order:12;-webkit-box-ordinal-group:13;order:12}}@media (min-width:1440px){.h-c-grid__col-xl--order-1{-ms-flex-order:1;-webkit-box-ordinal-group:2;order:1}.h-c-grid__col-xl--order-2{-ms-flex-order:2;-webkit-box-ordinal-group:3;order:2}.h-c-grid__col-xl--order-3{-ms-flex-order:3;-webkit-box-ordinal-group:4;order:3}.h-c-grid__col-xl--order-4{-ms-flex-order:4;-webkit-box-ordinal-group:5;order:4}.h-c-grid__col-xl--order-5{-ms-flex-order:5;-webkit-box-ordinal-group:6;order:5}.h-c-grid__col-xl--order-6{-ms-flex-order:6;-webkit-box-ordinal-group:7;order:6}.h-c-grid__col-xl--order-7{-ms-flex-order:7;-webkit-box-ordinal-group:8;order:7}.h-c-grid__col-xl--order-8{-ms-flex-order:8;-webkit-box-ordinal-group:9;order:8}.h-c-grid__col-xl--order-9{-ms-flex-order:9;-webkit-box-ordinal-group:10;order:9}.h-c-grid__col-xl--order-10{-ms-flex-order:10;-webkit-box-ordinal-group:11;order:10}.h-c-grid__col-xl--order-11{-ms-flex-order:11;-webkit-box-ordinal-group:12;order:11}.h-c-grid__col-xl--order-12{-ms-flex-order:12;-webkit-box-ordinal-group:13;order:12}}.container{clear:both;margin:0 auto;max-width:1440px}.row{padding:30px 0}h2+.row{padding-top:0}@media (new-breakpoint(min-width 600px 12)){h2+.row{padding-top:20px}}.row+.row{border-top:1px solid #d7d7d7;padding-top:10px}@media (new-breakpoint(min-width 600px 12)){.row+.row{padding-top:30px}}@media (new-breakpoint(min-width 600px 12)){.row{padding:40px 0}}.module{margin-bottom:50px!important}@media (min-width:1024px){.module{margin-bottom:60px!important}}.article-module{margin-bottom:30px!important}@media (min-width:1024px){.article-module{margin-bottom:35px!important}}.module--text{margin-bottom:12px!important}@media (min-width:1024px){.module--text{margin-bottom:16px!important}}.events-off{pointer-events:none}.events-on{pointer-events:auto}.focusable{display:table}a:focus .focusable{outline:1px dotted #212121;outline:5px auto -webkit-focus-ring-color}.nowrap{white-space:nowrap}.no-border{border-width:0!important}.article-module:after,.container:after,.module--text:after,.module:after,.row:after{clear:both;content:"";display:table}.small-rule{display:block}@media (min-width:1024px){.small-rule{display:none}}.large-rule{display:none}@media (min-width:1024px){.large-rule{display:block}}.h-c-copy>p,.rich-text>p{font-size:inherit;line-height:inherit}.glue-c-zippy__collapse-region{display:none}.glue-c-zippy__collapse-region.glue-collapse-expanded{display:block}.glue-c-zippy.glue-a-zippy--v-smooth-expand .glue-c-zippy__collapse-region{display:block;max-height:0;overflow:hidden;position:relative}.glue-c-zippy__btn:not(.maia-button){cursor:pointer}.glue-c-zippy__content-container{padding:10px 0} .glue-zippy-toggle-all__collapse[aria-hidden=true],.glue-zippy-toggle-all__expand[aria-hidden=true]{display:none}.glue-zippy-toggle-all__collapse[aria-hidden=false],.glue-zippy-toggle-all__expand[aria-hidden=false]{display:display}.glue-app-ready .glue-c-modal,.glue-app-ready .glue-c-modal__overlay,.glue-app-ready [data-glue-modal],.glue-app-ready [glue-modal],.glue-app-supported .glue-c-modal,.glue-app-supported .glue-c-modal__overlay,.glue-app-supported [data-glue-modal],.glue-app-supported [glue-modal]{display:none}.glue-app-ready body.glue-is-showing-modal,.glue-app-supported body.glue-is-showing-modal{overflow:hidden}.glue-app-ready .glue-c-modal{display:block}.glue-app-ready .glue-c-modal__overlay{background:#e0e0e0;background:hsla(0,0%,88%,.75);bottom:0;left:0;position:fixed;right:0;top:0;z-index:9999}.glue-app-ready .glue-c-modal__overlay.glue-is-shown{display:block}.glue-app-ready .glue-c-modal__dialog{background:#fff;bottom:0;height:100%;position:relative;left:0;margin:auto;right:0;top:0;width:100%}.glue-app-ready .glue-c-modal__dialog.glue-is-shown{display:block}.glue-app-ready .glue-c-modal__dialog *,.glue-app-ready .glue-c-modal__dialog :after,.glue-app-ready .glue-c-modal__dialog :before{-webkit-box-sizing:border-box;box-sizing:border-box}.glue-app-ready .glue-c-modal__close{background:#fff;border:none;cursor:pointer;position:absolute;right:0;top:0}.glue-app-ready .glue-c-modal__content{padding:15px;height:100%;overflow:auto}.glue-app-ready .glue-c-modal__content iframe,.glue-app-ready .glue-c-modal__content img{max-width:100%}.glue-o-pagination__pages{display:none;list-style-type:none;margin:0}.glue-is-ready.glue-o-pagination__pages{display:block;margin:inherit}.glue-o-pagination__page{display:none}.glue-is-shown.glue-o-pagination__page{display:block}.glue-o-pagination__page-list{display:inline-block;list-style-type:none;margin:0;padding:0}.glue-o-pagination__page-list-button-container{display:inline-block}.glue-c-carousel__button-container .glue-o-pagination__button,.glue-c-carousel__page-list .glue-o-pagination__button{background-color:#fff;border-radius:2px;border:1px solid #ccc;cursor:pointer;padding:.5em 1em}.glue-c-carousel__button-container .glue-o-pagination__button:focus,.glue-c-carousel__page-list .glue-o-pagination__button:focus{background-color:#eee}.glue-c-carousel__button-container [aria-selected=true].glue-o-pagination__button,.glue-c-carousel__page-list [aria-selected=true].glue-o-pagination__button{background-color:#ddd}.glue-c-carousel__button-container{display:inline-block;margin:.2rem 1rem .2rem 0}.glue-c-carousel__button-container.glue-pagination-teleport{margin:0}.glue-c-carousel__page-list{border:1px solid #ccc;border-radius:2px;display:inline-block;margin:.2rem 1rem .2rem 0;padding:0}.glue-c-carousel__page-list .glue-o-pagination__page-list-button-container.ng-hide+.glue-o-pagination__page-list-button-container{border-left:none}.glue-c-carousel__page-list .glue-o-pagination__page-list-button{border:none;margin:0;padding:.5em 1em}.glue-c-carousel__page-list .glue-o-pagination__button[aria-selected=true]{background-color:#ddd}@media screen and (-ms-high-contrast:active){.glue-c-carousel__page-list .glue-o-pagination__button[aria-selected=true]{color:highlightText;background-color:highlight}}.glue-c-carousel__page-list .glue-o-pagination__page-list-button-container+.glue-o-pagination__page-list-button-container{border-left:1px solid #ccc}html[dir=rtl] .glue-c-carousel__page-list .glue-o-pagination__page-list-button-container+.glue-o-pagination__page-list-button-container{border-left:0;border-right:1px solid #ccc}.glue-c-carousel__page-list.glue-c-carousel__page-list--dots{border:none}.glue-c-carousel__page-list.glue-c-carousel__page-list--dots .glue-o-pagination__page-list-button-container+.glue-o-pagination__page-list-button-container{border:none}.glue-c-carousel__page-list.glue-c-carousel__page-list--dots .glue-o-pagination__page-list-button-container{border:none;margin-right:20px}@media screen and (min-width:1024px){.glue-c-carousel__page-list.glue-c-carousel__page-list--dots .glue-o-pagination__page-list-button-container{margin-right:14px}.glue-c-carousel__page-list.glue-c-carousel__page-list--dots .glue-o-pagination__page-list-button-container .glue-o-pagination__page-list-button{height:14px;width:14px}}.glue-c-carousel__page-list.glue-c-carousel__page-list--dots .glue-o-pagination__page-list-button{background-color:#ccc;border:2px solid #ccc;border-radius:50%;color:#fff;font-size:0;height:20px;padding:0;vertical-align:middle;width:20px}.glue-c-carousel__page-list.glue-c-carousel__page-list--dots .glue-o-pagination__page-list-button:focus{background-color:#ccc;border-color:#1a1919;outline:none}.glue-c-carousel__page-list.glue-c-carousel__page-list--dots .glue-o-pagination__page-list-button[aria-selected=true]{background-color:#4d4c4c;border:1px solid #4d4c4c}@media screen and (-ms-high-contrast:active){.glue-c-carousel__page-list.glue-c-carousel__page-list--dots .glue-o-pagination__page-list-button[aria-selected=true]{background:buttonText}}.glue-c-carousel__page-list.glue-c-carousel__page-list--dots .glue-o-pagination__page-list-button[aria-selected=true]:focus{border-color:#1a1919}.glue-c-carousel__page-list.glue-c-carousel__page-list--dots .glue-o-pagination__page-list-button-container.ng-hide:not(.ng-hide-animate){display:inherit!important}.glue-c-carousel__pages.glue-c-carousel__pages--xfade{min-height:200px;position:relative}.glue-c-carousel__pages.glue-c-carousel__pages--xfade>.glue-o-pagination__page,.glue-c-carousel__pages.glue-c-carousel__pages--xfade>ul>.glue-o-pagination__page{background-color:#fff;display:block;height:100%;left:0;opacity:0;overflow:hidden;position:absolute;top:0;width:100%;z-index:1}.glue-c-carousel__pages.glue-c-carousel__pages--xfade>.glue-o-pagination__page.glue-o-pagination__page--previously-shown,.glue-c-carousel__pages.glue-c-carousel__pages--xfade>ul>.glue-o-pagination__page.glue-o-pagination__page--previously-shown{opacity:1;z-index:1}.glue-c-carousel__pages.glue-c-carousel__pages--xfade>.glue-o-pagination__page.glue-is-shown,.glue-c-carousel__pages.glue-c-carousel__pages--xfade>ul>.glue-o-pagination__page.glue-is-shown{-webkit-transition:opacity .4s linear;transition:opacity .4s linear;opacity:1;z-index:2}.glue-c-popover{position:relative}.glue-c-popover__trigger{cursor:pointer}.glue-c-popover__dialog{background:#fff;border:1px solid #000;display:block;left:0;top:20px}[dir=rtl] .glue-c-popover__dialog{right:0;left:auto}.glue-app-ready .glue-c-popover__dialog,.glue-app-supported .glue-c-popover__dialog{position:absolute;display:none}.glue-c-popover.glue-is-shown .glue-c-popover__dialog{display:block}.glue-c-popover__close-btn{cursor:pointer;display:none;position:absolute;right:10px;top:0}.glue-app-ready .glue-c-popover__close-btn,.glue-app-ready .glue-c-popover__close-btn.glue-is-shown,.glue-app-supported .glue-c-popover__close-btn,.glue-app-supported .glue-c-popover__close-btn.glue-is-shown{display:block}[dir=rtl] .glue-c-popover__close-btn{left:10px;right:auto}[data-glue-show]{display:none}.glue-is-shown[data-glue-show]{display:block} @-webkit-keyframes glue-show-fade-in{0%{opacity:0}to{opacity:1}}@keyframes glue-show-fade-in{0%{opacity:0}to{opacity:1}}@-webkit-keyframes glue-show-fade-out{0%{opacity:1}to{opacity:0}}@keyframes glue-show-fade-out{0%{opacity:1}to{opacity:0}}.glue-is-shown.glue-is-shown-fx-fade-in[data-glue-show]{-webkit-animation:glue-show-fade-in .5s;animation:glue-show-fade-in .5s}.glue-is-show-remove.glue-is-shown-fx-fade-out[data-glue-show]{display:block;-webkit-animation:glue-show-fade-out .5s;animation:glue-show-fade-out .5s} .glue-sticky{position:relative;width:100%}.glue-sticky-active{left:0;position:fixed;width:100%;z-index:1}.glue-sticky-active,.glue-sticky-active.glue-sticky-active-remove{background:#fff;top:0} .glue-sticky.glue-sticky-fx-slide-down{-webkit-transition:top .25s ease-in;transition:top .25s ease-in}.glue-sticky.glue-sticky-fx-slide-down.glue-sticky-active-add{top:-100px}.glue-sticky.glue-sticky-fx-slide-down.glue-sticky-active,.glue-sticky.glue-sticky-fx-slide-down.glue-sticky-active-remove{top:0}body.h-is-showing-drawer{overflow-y:hidden}@media (min-width:900px){body.h-is-showing-drawer{overflow-y:auto}}.h-c-header{-webkit-transition:height .4s;transition:height .4s}.glue-app-ready .h-c-header.h-c-header--product-marketing-one-tier,.glue-app-ready .h-c-header.h-c-header--product-marketing-two-tier,.glue-app-supported .h-c-header.h-c-header--product-marketing-one-tier,.glue-app-supported .h-c-header.h-c-header--product-marketing-two-tier{height:56px}.glue-app-ready .h-c-header.h-c-header--corporate-initiative,.glue-app-ready .h-c-header.h-c-header--product-initiative,.glue-app-supported .h-c-header.h-c-header--corporate-initiative,.glue-app-supported .h-c-header.h-c-header--product-initiative{height:112px}@media (min-width:900px){.h-c-header.h-c-header--product-marketing-one-tier{height:64px!important}.h-c-header.h-c-header--product-marketing-one-tier.h-is-showing-nested-nav{height:112px!important}.h-c-header.h-c-header--product-marketing-two-tier{height:128px!important}.h-c-header.h-c-header--product-marketing-two-tier.h-is-showing-nested-nav{height:176px!important}.h-c-header.h-c-header--corporate-initiative,.h-c-header.h-c-header--product-initiative{height:128px!important}.h-c-header.h-c-header--corporate-initiative.h-is-showing-nested-nav,.h-c-header.h-c-header--product-initiative.h-is-showing-nested-nav{height:176px!important}}.h-c-header__bar{background:#fff;-webkit-box-shadow:0 2px 6px 0 rgba(0,0,0,.12),inset 0 -1px 0 0 #dadce0;box-shadow:0 2px 6px 0 rgba(0,0,0,.12),inset 0 -1px 0 0 #dadce0;left:0;right:0;top:0;-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-transition:background .4s,-webkit-transform .4s;transition:background .4s,-webkit-transform .4s;transition:transform .4s,background .4s;transition:transform .4s,background .4s,-webkit-transform .4s;z-index:100}.h-c-header__bar:after{content:"";display:table;clear:both}.glue-app-ready .h-c-header__bar,.glue-app-supported .h-c-header__bar{position:fixed}.glue-app-ready .h-c-header--product-marketing-one-tier .h-c-header__bar,.glue-app-ready .h-c-header--product-marketing-two-tier .h-c-header__bar,.glue-app-supported .h-c-header--product-marketing-one-tier .h-c-header__bar,.glue-app-supported .h-c-header--product-marketing-two-tier .h-c-header__bar{height:56px}.glue-app-ready .h-c-header--product-marketing-one-tier.h-is-wholly-scrolled .h-c-header__bar,.glue-app-ready .h-c-header--product-marketing-two-tier.h-is-wholly-scrolled .h-c-header__bar,.glue-app-supported .h-c-header--product-marketing-one-tier.h-is-wholly-scrolled .h-c-header__bar,.glue-app-supported .h-c-header--product-marketing-two-tier.h-is-wholly-scrolled .h-c-header__bar{-webkit-transform:translate3d(0,-56px,0);transform:translate3d(0,-56px,0)}.glue-app-ready .h-c-header--corporate-initiative .h-c-header__bar,.glue-app-ready .h-c-header--product-initiative .h-c-header__bar,.glue-app-supported .h-c-header--corporate-initiative .h-c-header__bar,.glue-app-supported .h-c-header--product-initiative .h-c-header__bar{height:112px}.glue-app-ready .h-c-header--corporate-initiative.h-is-wholly-scrolled .h-c-header__bar,.glue-app-ready .h-c-header--product-initiative.h-is-wholly-scrolled .h-c-header__bar,.glue-app-supported .h-c-header--corporate-initiative.h-is-wholly-scrolled .h-c-header__bar,.glue-app-supported .h-c-header--product-initiative.h-is-wholly-scrolled .h-c-header__bar{-webkit-transform:translate3d(0,-112px,0);transform:translate3d(0,-112px,0)}.h-c-header--reversed .h-c-header__bar{background:transparent;-webkit-box-shadow:inset 0 -1px 0 0 hsla(0,0%,100%,.3)!important;box-shadow:inset 0 -1px 0 0 hsla(0,0%,100%,.3)!important}@media (min-width:900px){.h-is-showing-nested-nav .h-c-header__bar{-webkit-box-shadow:inset 0 -1px 0 0 #dadce0;box-shadow:inset 0 -1px 0 0 #dadce0}.h-c-header--product-marketing-one-tier .h-c-header__bar{height:64px!important}.h-c-header--product-marketing-one-tier.h-is-wholly-scrolled .h-c-header__bar{-webkit-transform:translate3d(0,-64px,0)!important;transform:translate3d(0,-64px,0)!important}.h-c-header--product-marketing-one-tier.h-is-showing-nested-nav.h-is-wholly-scrolled .h-c-header__bar{-webkit-transform:translate3d(0,-112px,0)!important;transform:translate3d(0,-112px,0)!important}.h-c-header--product-marketing-two-tier .h-c-header__bar{height:128px!important}.h-c-header--product-marketing-two-tier.h-is-wholly-scrolled .h-c-header__bar{-webkit-transform:translate3d(0,-128px,0)!important;transform:translate3d(0,-128px,0)!important}.h-c-header--product-marketing-two-tier.h-is-showing-nested-nav.h-is-wholly-scrolled .h-c-header__bar{-webkit-transform:translate3d(0,-176px,0)!important;transform:translate3d(0,-176px,0)!important}.h-c-header--corporate-initiative .h-c-header__bar,.h-c-header--product-initiative .h-c-header__bar{height:128px!important}.h-c-header--corporate-initiative.h-is-wholly-scrolled .h-c-header__bar,.h-c-header--product-initiative.h-is-wholly-scrolled .h-c-header__bar{-webkit-transform:translate3d(0,-128px,0)!important;transform:translate3d(0,-128px,0)!important}.h-c-header--corporate-initiative.h-is-showing-nested-nav.h-is-wholly-scrolled .h-c-header__bar,.h-c-header--product-initiative.h-is-showing-nested-nav.h-is-wholly-scrolled .h-c-header__bar{-webkit-transform:translate3d(0,-176px,0)!important;transform:translate3d(0,-176px,0)!important}}.h-c-header--corporate-initiative .h-c-header__bar:before,.h-c-header--product-initiative .h-c-header__bar:before{background:#dadce0;content:"";height:1px;left:0;position:absolute;right:0;top:56px}.h-c-header--reversed .h-c-header__bar:before{background:hsla(0,0%,100%,.3)!important}@media (min-width:900px){.h-c-header--corporate-initiative .h-c-header__bar:before,.h-c-header--product-initiative .h-c-header__bar:before{bottom:63px;top:auto}.h-c-header--product-marketing-two-tier .h-c-header__bar:before{background:#dadce0;bottom:63px;content:"";height:1px;left:0;position:absolute;right:0;top:auto}}.h-c-header__bar-underside{display:none}@media (min-width:900px){.h-c-header__bar-underside{background:#fff;-webkit-box-shadow:inset 0 -1px 0 0 #dadce0;box-shadow:inset 0 -1px 0 0 #dadce0;height:48px;left:0;position:absolute;right:0;top:100%;-webkit-transition:background .4s;transition:background .4s}.h-is-showing-nested-nav .h-c-header__bar-underside{-webkit-box-shadow:0 2px 6px 0 rgba(0,0,0,.12),inset 0 -1px 0 0 #dadce0;box-shadow:0 2px 6px 0 rgba(0,0,0,.12),inset 0 -1px 0 0 #dadce0;display:block}.h-c-header--reversed .h-c-header__bar-underside{background:transparent;-webkit-box-shadow:inset 0 -1px 0 0 hsla(0,0%,100%,.3);box-shadow:inset 0 -1px 0 0 hsla(0,0%,100%,.3)}}.h-c-header__hamburger{float:left;width:56px;display:none}.h-c-header__hamburger.h-c-header__hamburger--first-tier{height:100%}.h-c-header__hamburger.h-c-header__hamburger--second-tier{clear:left;height:50%}.glue-app-ready .h-c-header--product-marketing-one-tier .h-c-header__hamburger.h-c-header__hamburger--first-tier,.glue-app-ready .h-c-header--product-marketing-two-tier .h-c-header__hamburger.h-c-header__hamburger--first-tier,.glue-app-supported .h-c-header--product-marketing-one-tier .h-c-header__hamburger.h-c-header__hamburger--first-tier,.glue-app-supported .h-c-header--product-marketing-two-tier .h-c-header__hamburger.h-c-header__hamburger--first-tier{display:table}.glue-app-ready .h-c-header--corporate-initiative .h-c-header__hamburger.h-c-header__hamburger--first-tier,.glue-app-ready .h-c-header--product-initiative .h-c-header__hamburger.h-c-header__hamburger--first-tier,.glue-app-ready .h-c-header--product-marketing-one-tier .h-c-header__hamburger.h-c-header__hamburger--second-tier,.glue-app-ready .h-c-header--product-marketing-two-tier .h-c-header__hamburger.h-c-header__hamburger--second-tier,.glue-app-supported .h-c-header--corporate-initiative .h-c-header__hamburger.h-c-header__hamburger--first-tier,.glue-app-supported .h-c-header--product-initiative .h-c-header__hamburger.h-c-header__hamburger--first-tier,.glue-app-supported .h-c-header--product-marketing-one-tier .h-c-header__hamburger.h-c-header__hamburger--second-tier,.glue-app-supported .h-c-header--product-marketing-two-tier .h-c-header__hamburger.h-c-header__hamburger--second-tier{display:none}.glue-app-ready .h-c-header--corporate-initiative .h-c-header__hamburger.h-c-header__hamburger--second-tier,.glue-app-ready .h-c-header--product-initiative .h-c-header__hamburger.h-c-header__hamburger--second-tier,.glue-app-supported .h-c-header--corporate-initiative .h-c-header__hamburger.h-c-header__hamburger--second-tier,.glue-app-supported .h-c-header--product-initiative .h-c-header__hamburger.h-c-header__hamburger--second-tier{display:table}@media (min-width:900px){.h-c-header__hamburger{display:none!important}}.h-c-header__hamburger-wrapper{display:table-cell;height:100%;padding:6px;vertical-align:middle}.h-c-header__hamburger-link{-webkit-appearance:button;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;background:none;border:0;border-radius:50%;color:inherit;display:block;font:inherit;height:100%;line-height:normal;margin:0;overflow:visible;padding:0;position:relative;width:100%}.h-c-header__hamburger-link:focus{background-color:#f1f3f4;outline:none}.h-c-header__hamburger-link:focus .h-c-header__hamburger-img--reversed{fill:#5f6368}.h-c-header__hamburger-img{margin:0 auto;height:24px;width:24px}.h-c-header__hamburger-img.h-c-header__hamburger-img--standard{display:block;fill:#5f6368}.h-c-header--reversed .h-c-header__hamburger-img.h-c-header__hamburger-img--standard{display:none}.h-c-header__hamburger-img.h-c-header__hamburger-img--reversed{display:none;fill:#fff}.h-c-header--reversed .h-c-header__hamburger-img.h-c-header__hamburger-img--reversed{display:block}.h-c-header__lockup{float:left;height:56px;margin-left:16px;position:relative}.h-c-header__lockup:after{content:"";display:table;clear:both}.glue-app-ready .h-c-header--product-marketing-one-tier .h-c-header__lockup,.glue-app-ready .h-c-header--product-marketing-two-tier .h-c-header__lockup,.glue-app-supported .h-c-header--product-marketing-one-tier .h-c-header__lockup,.glue-app-supported .h-c-header--product-marketing-two-tier .h-c-header__lockup{height:100%;margin-left:14px}@media (min-width:900px){.glue-app-ready .h-c-header--product-marketing-one-tier .h-c-header__lockup,.glue-app-ready .h-c-header--product-marketing-two-tier .h-c-header__lockup,.glue-app-supported .h-c-header--product-marketing-one-tier .h-c-header__lockup,.glue-app-supported .h-c-header--product-marketing-two-tier .h-c-header__lockup{margin-left:24px}}.glue-app-ready .h-c-header--corporate-initiative .h-c-header__lockup,.glue-app-ready .h-c-header--product-initiative .h-c-header__lockup,.glue-app-supported .h-c-header--corporate-initiative .h-c-header__lockup,.glue-app-supported .h-c-header--product-initiative .h-c-header__lockup{height:50%}@media (min-width:900px){.h-c-header__lockup{margin-left:24px}.h-c-header--product-marketing-one-tier .h-c-header__lockup{height:100%!important}.h-c-header--corporate-initiative .h-c-header__lockup,.h-c-header--product-initiative .h-c-header__lockup,.h-c-header--product-marketing-two-tier .h-c-header__lockup{height:50%!important}}.h-c-header__jump-to-content{background:#f1f3f4;border-radius:2px;clip:rect(1px,1px,1px,1px);display:none;font-family:Google Sans,Roboto,Arial,Helvetica,sans-serif;font-size:14px;height:1px;left:100%;letter-spacing:.25px;margin-left:48px;overflow:hidden;padding:10px;position:absolute;top:9px;width:1px;white-space:nowrap;z-index:103}.h-c-header__jump-to-content:focus{clip:auto;color:#174ea6;height:auto;outline:none;overflow:visible;width:auto}@media (min-width:900px){.h-c-header__jump-to-content{display:table}}.h-c-header__jump-to-content-text{display:table-cell}.h-c-header__company-logo{display:table;float:left;height:100%;padding:4px 0}.h-c-header__company-logo-link{display:table-cell;padding-top:4px;vertical-align:middle}.h-c-header--reversed .h-c-header__company-logo-link:focus{outline-color:#f1f3f4}.h-c-header__company-logo-link:focus .h-c-header__company-logo-img--reversed{fill:#5f6368}.h-c-header__company-logo-img{height:24px;width:74px}.h-c-header__company-logo-img.h-c-header__company-logo-img--standard{display:block}.h-c-header--reversed .h-c-header__company-logo-img.h-c-header__company-logo-img--standard{display:none}.h-c-header__company-logo-img.h-c-header__company-logo-img--reversed{display:none;fill:#fff}.h-c-header--reversed .h-c-header__company-logo-img.h-c-header__company-logo-img--reversed{display:block}.h-c-header__product-logo{display:table;float:left;height:100%;margin-left:6px;padding:4px 0}.h-c-header--corporate-initiative .h-c-header__product-logo{display:none}.h-c-header__product-logo-link{display:table-cell;padding-top:1px;vertical-align:middle}.h-c-header--reversed .h-c-header__product-logo-link:focus{outline-color:#f1f3f4}.h-c-header__product-logo-link:focus .h-c-header__product-logo-text{color:#5f6368}.h-c-header__product-logo-text{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;color:#5f6368;font-family:Product Sans,Arial,Helvetica,sans-serif;font-size:22px;font-style:normal;font-weight:400}.h-c-header--reversed .h-c-header__product-logo-text{color:#fff}.h-c-header__initiative-logo{clear:left;display:table;float:left;height:56px;margin-left:16px;padding:4px 0}.glue-app-ready .h-c-header__initiative-logo,.glue-app-supported .h-c-header__initiative-logo{clear:none;height:50%}.h-c-header--product-marketing-one-tier .h-c-header__initiative-logo,.h-c-header--product-marketing-two-tier .h-c-header__initiative-logo{display:none}@media (min-width:900px){.h-c-header__initiative-logo{clear:left!important;height:50%!important;margin-left:24px!important}}.h-c-header__initiative-logo-link{display:table-cell;vertical-align:middle}.h-c-header--reversed .h-c-header__initiative-logo-link:focus{outline-color:#f1f3f4}.h-c-header__initiative-logo-link:focus .h-c-header__initiative-logo-text{color:#5f6368}.h-c-header__initiative-logo-text{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;color:#5f6368;font-family:Product Sans,Arial,Helvetica,sans-serif;font-size:22px;font-style:normal;font-weight:400}.h-c-header--reversed .h-c-header__initiative-logo-text{color:#fff}.h-c-header__nav{display:block;clear:both}.glue-app-ready .h-c-header__nav,.glue-app-supported .h-c-header__nav{display:none}@media (min-width:900px){.h-c-header__nav{display:block!important;float:left}.h-c-header--product-marketing-one-tier .h-c-header__nav{clear:none;height:100%;margin-left:48px}.h-c-header--product-marketing-two-tier .h-c-header__nav{clear:left;height:50%;margin-left:24px}.h-c-header--corporate-initiative .h-c-header__nav,.h-c-header--product-initiative .h-c-header__nav{clear:none;height:50%;margin-left:48px}}.h-c-header__nav-list{list-style:none;margin-bottom:0;margin-left:0}@media (min-width:900px){.h-c-header__nav-list{height:100%}.h-c-header__nav-list:after{content:"";display:table;clear:both}}.h-c-header__nav-li{display:table;width:100%}@media (min-width:900px){.h-c-header__nav-li{float:left;height:100%;margin-left:36px;position:relative;width:auto}.h-c-header__nav-li:first-child{margin-left:0}}.h-c-header__nav-li-link{color:#5f6368;display:table-cell;font-family:Google Sans,Roboto,Arial,Helvetica,sans-serif;font-size:14px;font-weight:400;height:48px;letter-spacing:.25px;padding-left:16px;padding-right:16px;vertical-align:middle;width:100%}.h-c-header__nav-li-link:visited{color:#5f6368}.h-c-header__nav-li-link.h-is-active,.h-c-header__nav-li-link.h-is-highlighted,.h-c-header__nav-li-link:active,.h-c-header__nav-li-link:hover{color:#000}.h-c-header__nav-li-link.h-is-active{background:#f1f3f4}.h-c-header--reversed .h-c-header__nav-li-link{color:#fff}.h-c-header--reversed .h-c-header__nav-li-link.h-is-active{font-weight:500}.h-c-header--reversed .h-c-header__nav-li-link:visited{color:#fff}.h-c-header--reversed .h-c-header__nav-li-link:active,.h-c-header--reversed .h-c-header__nav-li-link:focus,.h-c-header--reversed .h-c-header__nav-li-link:hover{color:#dadce0}.h-c-header--reversed .h-c-header__nav-li-link.h-is-active,.h-c-header--reversed .h-c-header__nav-li-link.h-is-highlighted{color:#fff}.h-c-header--reversed .h-c-header__nav-li-link.h-is-active{background:none}@media (min-width:900px){.h-c-header__nav-li-link{line-height:1.85714286;color:#5f6368;font-size:14px;font-weight:400;height:auto;letter-spacing:.25px;padding:10px 0 9px;width:auto}.h-c-header--corporate-initiative .h-c-header__nav-li-link,.h-c-header--product-initiative .h-c-header__nav-li-link,.h-c-header--product-marketing-two-tier .h-c-header__nav-li-link{padding:7px 0 9px}.h-c-header__nav-li-link:visited{color:#5f6368}.h-c-header__nav-li-link.h-is-active,.h-c-header__nav-li-link.h-is-highlighted,.h-c-header__nav-li-link:active,.h-c-header__nav-li-link:hover{color:#000}.h-c-header__nav-li-link.h-is-active{background:none}.h-c-header__nav-li-link.h-is-active:after{background:#1a73e8;bottom:0;content:"";height:2px;left:0;position:absolute;right:0}.h-c-header__nav-li-link.h-is-active:focus:after{background:#174ea6}.h-c-header__nav-li-link:focus{background:#f1f3f4;outline:10px solid #f1f3f4}.h-c-header--reversed .h-c-header__nav-li-link:after{background:#fff}.h-c-header--reversed .h-c-header__nav-li-link:focus,.h-c-header--reversed .h-c-header__nav-li-link:hover{background:#f1f3f4;color:#202124;outline:10px solid #f1f3f4}.h-c-header--reversed .h-c-header__nav-li-link:focus.h-is-active,.h-c-header--reversed .h-c-header__nav-li-link:hover.h-is-active{background:#f1f3f4}.h-c-header--reversed .h-c-header__nav-li-link:focus.h-is-active:after,.h-c-header--reversed .h-c-header__nav-li-link:hover.h-is-active:after{background:#5f6368}}.h-c-header__nested-nav-list{display:table-row;list-style:none;margin-bottom:0;margin-left:0}@media (min-width:900px){.h-c-header__nested-nav-list{display:none;height:48px;left:0;margin-left:-18px;position:absolute;top:100%;white-space:nowrap;z-index:1}.h-is-showing-nested-nav .h-c-header__nav-li-link.h-is-highlighted+.h-c-header__nested-nav-list{display:table}.h-c-header__nested-nav-list.h-c-header__nested-nav-list--center{margin-left:50%;-webkit-transform:translate(-50%);transform:translate(-50%)}.h-c-header__nested-nav-list.h-c-header__nested-nav-list--right{left:auto;margin-right:-18px;right:0}}.h-c-header__nested-nav-li{display:table;width:100%}@media (min-width:900px){.h-c-header__nested-nav-li{display:table-cell;padding:3px 18px;position:relative;vertical-align:top;width:auto}}.h-c-header__nested-nav-li-link{color:#5f6368;display:table-cell;font-family:Google Sans,Roboto,Arial,Helvetica,sans-serif;font-size:14px;font-weight:400;height:48px;letter-spacing:.25px;padding-right:32px;padding-left:32px;vertical-align:middle;width:100%}.h-c-header__nested-nav-li-link:visited{color:#5f6368}.h-c-header__nested-nav-li-link.h-is-active,.h-c-header__nested-nav-li-link:active,.h-c-header__nested-nav-li-link:hover{color:#000}.h-c-header__nested-nav-li-link.h-is-active{background:#f1f3f4}.h-c-header--reversed .h-c-header__nested-nav-li-link,.h-c-header--reversed .h-c-header__nested-nav-li-link:visited{color:#fff}.h-c-header--reversed .h-c-header__nested-nav-li-link:active,.h-c-header--reversed .h-c-header__nested-nav-li-link:focus,.h-c-header--reversed .h-c-header__nested-nav-li-link:hover{color:#dadce0}.h-c-header--reversed .h-c-header__nested-nav-li-link.h-is-active{color:#fff;background:none}@media (min-width:900px){.h-c-header__nested-nav-li-link{line-height:1.85714286;color:#5f6368;display:inline-block;font-size:14px;font-weight:400;height:auto;letter-spacing:.25px;margin:7px 0;padding:0 0 1px;width:auto}.h-c-header__nested-nav-li-link:visited{color:#5f6368}.h-c-header__nested-nav-li-link.h-is-active,.h-c-header__nested-nav-li-link:active,.h-c-header__nested-nav-li-link:hover{color:#000}.h-c-header__nested-nav-li-link.h-is-active{background:none}.h-c-header__nested-nav-li-link:focus{background:#f1f3f4;outline:10px solid #f1f3f4}.h-c-header__nested-nav-li-link.h-is-active:after{background:#1a73e8;bottom:0;content:"";height:2px;left:18px;position:absolute;right:18px}.h-c-header__nested-nav-li-link.h-is-active:focus:after{background:#174ea6}.h-c-header--reversed .h-c-header__nested-nav-li-link.h-is-active:after{background:#fff}.h-c-header--reversed .h-c-header__nested-nav-li-link:focus,.h-c-header--reversed .h-c-header__nested-nav-li-link:hover{background:#f1f3f4;color:#202124;outline:10px solid #f1f3f4}.h-c-header--reversed .h-c-header__nested-nav-li-link:focus.h-is-active:after,.h-c-header--reversed .h-c-header__nested-nav-li-link:hover.h-is-active:after{background:#5f6368}}.h-c-header__cta{display:none}@media (min-width:900px){.h-c-header__cta{display:block;position:absolute;right:0}.h-c-header--product-marketing-one-tier .h-c-header__cta{height:63px;top:0}.h-c-header--corporate-initiative .h-c-header__cta,.h-c-header--product-initiative .h-c-header__cta,.h-c-header--product-marketing-one-tier .h-c-header__cta,.h-c-header--product-marketing-two-tier .h-c-header__cta{padding:9px 9px 9px}.h-c-header--corporate-initiative .h-c-header__cta,.h-c-header--product-initiative .h-c-header__cta,.h-c-header--product-marketing-two-tier .h-c-header__cta{bottom:0;height:63px}}@media (min-width:1024px){.h-c-header--corporate-initiative .h-c-header__cta,.h-c-header--product-initiative .h-c-header__cta,.h-c-header--product-marketing-one-tier .h-c-header__cta,.h-c-header--product-marketing-two-tier .h-c-header__cta{padding:9px 9px 9px}}@media (min-width:900px){.h-c-header__cta-list{height:100%;list-style:none;margin-bottom:0;margin-left:0}.h-c-header__cta-list:after{content:"";display:table;clear:both}}@media (min-width:900px){.h-c-header__cta-li{display:table;float:left;height:100%}.h-c-header__cta-li.h-c-header__cta-li--secondary{margin-right:16px}}@media (min-width:900px){.h-c-header__cta-li-link{display:table-cell;font-family:Google Sans,Roboto,Arial,Helvetica,sans-serif;font-size:14px;font-weight:400;letter-spacing:.75px;vertical-align:middle}.h-c-header__cta-li-link.h-c-header__cta-li-link--primary{background:#1a73e8;color:#fff}.h-c-header__cta-li-link.h-c-header__cta-li-link--primary:visited{color:#fff}.h-c-header__cta-li-link.h-c-header__cta-li-link--primary:active,.h-c-header__cta-li-link.h-c-header__cta-li-link--primary:focus,.h-c-header__cta-li-link.h-c-header__cta-li-link--primary:hover{background:#174ea6;outline:none}.h-c-header--corporate-initiative .h-c-header__cta-li-link.h-c-header__cta-li-link--primary,.h-c-header--product-initiative .h-c-header__cta-li-link.h-c-header__cta-li-link--primary,.h-c-header--product-marketing-one-tier .h-c-header__cta-li-link.h-c-header__cta-li-link--primary,.h-c-header--product-marketing-two-tier .h-c-header__cta-li-link.h-c-header__cta-li-link--primary{padding:0 24px 0}.h-c-header--corporate-initiative .h-c-header__cta-li-link.h-c-header__cta-li-link--primary,.h-c-header--product-initiative .h-c-header__cta-li-link.h-c-header__cta-li-link--primary,.h-c-header--product-marketing-one-tier.h-c-header--reversed .h-c-header__cta-li-link.h-c-header__cta-li-link--primary,.h-c-header--product-marketing-two-tier .h-c-header__cta-li-link.h-c-header__cta-li-link--primary{background-clip:padding-box;border-radius:2px}.h-c-header__cta-li-link.h-c-header__cta-li-link--secondary,.h-c-header__cta-li-link.h-c-header__cta-li-link--secondary:visited{color:#1a73e8}.h-c-header__cta-li-link.h-c-header__cta-li-link--secondary:active,.h-c-header__cta-li-link.h-c-header__cta-li-link--secondary:focus,.h-c-header__cta-li-link.h-c-header__cta-li-link--secondary:hover{color:#174ea6}.h-c-header__cta-li-link.h-c-header__cta-li-link--secondary:focus,.h-c-header__cta-li-link.h-c-header__cta-li-link--secondary:hover{background:#f1f3f4;outline:none}.h-c-header--corporate-initiative .h-c-header__cta-li-link.h-c-header__cta-li-link--secondary,.h-c-header--product-initiative .h-c-header__cta-li-link.h-c-header__cta-li-link--secondary,.h-c-header--product-marketing-one-tier .h-c-header__cta-li-link.h-c-header__cta-li-link--secondary,.h-c-header--product-marketing-two-tier .h-c-header__cta-li-link.h-c-header__cta-li-link--secondary{padding:0 24px 0}.h-c-header--reversed .h-c-header__cta-li-link.h-c-header__cta-li-link--secondary,.h-c-header--reversed .h-c-header__cta-li-link.h-c-header__cta-li-link--secondary:visited{color:#fff}.h-c-header--reversed .h-c-header__cta-li-link.h-c-header__cta-li-link--secondary:active{color:#5f6368}.h-c-header--reversed .h-c-header__cta-li-link.h-c-header__cta-li-link--secondary:focus,.h-c-header--reversed .h-c-header__cta-li-link.h-c-header__cta-li-link--secondary:hover{color:#202124}}@media (min-width:1024px){.h-c-header__cta-li-link{font-size:16px;letter-spacing:.5px}}.h-c-header__drawer{background:#fff;border:0 solid red;bottom:0;left:0;max-width:280px;position:fixed;right:56px;top:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);-webkit-transition:-webkit-transform .35s cubic-bezier(.24,1,.32,1);transition:-webkit-transform .35s cubic-bezier(.24,1,.32,1);transition:transform .35s cubic-bezier(.24,1,.32,1);transition:transform .35s cubic-bezier(.24,1,.32,1),-webkit-transform .35s cubic-bezier(.24,1,.32,1);visibility:hidden;z-index:102}.h-c-header__drawer.h-is-visible{visibility:visible}.h-is-showing-drawer .h-c-header__drawer{-webkit-box-shadow:0 2px 6px 0 rgba(0,0,0,.12);box-shadow:0 2px 6px 0 rgba(0,0,0,.12);-webkit-transform:translateZ(0);transform:translateZ(0)}.h-c-header__drawer:focus{outline:none}@media (min-width:900px){.h-c-header__drawer{display:none}}.h-c-header__drawer-content{bottom:136px;left:0;overflow-y:auto;position:absolute;right:0;top:0}.h-c-header__drawer-backdrop{background:rgba(0,0,0,.4);bottom:0;left:0;opacity:0;position:fixed;right:0;top:0;-webkit-transition:opacity .2s cubic-bezier(.4,0,.2,1);transition:opacity .2s cubic-bezier(.4,0,.2,1);visibility:hidden;z-index:101}.h-is-showing-drawer .h-c-header__drawer-backdrop{opacity:1;visibility:visible}@media (min-width:900px){.h-c-header__drawer-backdrop{display:none}}.h-c-header__drawer-bar{-webkit-box-shadow:inset 0 -1px 0 0 #dadce0;box-shadow:inset 0 -1px 0 0 #dadce0;position:relative}.h-c-header__drawer-bar:after{content:"";display:table;clear:both}.h-c-header--product-marketing-one-tier .h-c-header__drawer-bar,.h-c-header--product-marketing-two-tier .h-c-header__drawer-bar{height:56px}.h-c-header--corporate-initiative .h-c-header__drawer-bar,.h-c-header--product-initiative .h-c-header__drawer-bar{height:112px}.h-c-header--corporate-initiative .h-c-header__drawer-bar:before,.h-c-header--product-initiative .h-c-header__drawer-bar:before{background:#dadce0;bottom:55px;content:"";height:1px;left:0;position:absolute;right:0}.h-c-header__drawer-lockup{float:left;margin-left:16px}.h-c-header__drawer-lockup:after{content:"";display:table;clear:both}.h-c-header--product-marketing-one-tier .h-c-header__drawer-lockup,.h-c-header--product-marketing-two-tier .h-c-header__drawer-lockup{height:100%}.h-c-header--corporate-initiative .h-c-header__drawer-lockup,.h-c-header--product-initiative .h-c-header__drawer-lockup{height:50%}.h-c-header__drawer-company-logo{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;display:table;float:left;height:100%}.h-c-header__drawer-company-logo-link{display:table-cell;padding-top:4px;vertical-align:middle}.h-c-header__drawer-company-logo-img{display:block;height:24px;width:74px}.h-c-header__drawer-product-logo{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;display:table;float:left;height:100%;margin-left:6px}.h-c-header--corporate-initiative .h-c-header__drawer-product-logo{display:none}.h-c-header__drawer-product-logo-link{display:table-cell;padding-top:0;vertical-align:middle}.h-c-header__drawer-product-logo-text{color:#5f6368;font-family:Product Sans,Arial,Helvetica,sans-serif;font-size:22px;font-style:normal;font-weight:400}.h-c-header__drawer-initiative-logo{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;clear:left;display:table;float:left;height:50%;margin-left:16px}.h-c-header--product-marketing-one-tier .h-c-header__drawer-initiative-logo,.h-c-header--product-marketing-two-tier .h-c-header__drawer-initiative-logo{display:none}.h-c-header__drawer-initiative-logo-link{display:table-cell;padding-top:2px;vertical-align:middle}.h-c-header__drawer-initiative-logo-text{color:#5f6368;font-family:Product Sans,Arial,Helvetica,sans-serif;font-size:22px;font-style:normal;font-weight:400}.h-c-header__drawer-nav{padding-bottom:20px;padding-top:20px}.h-c-header__drawer-nav-list{list-style:none;margin-bottom:0;margin-left:0}.h-c-header__drawer-nav-li{display:table;width:100%}.h-c-header__drawer-nav-li-link{color:#5f6368;display:table-cell;font-family:Google Sans,Roboto,Arial,Helvetica,sans-serif;font-size:14px;font-weight:400;height:48px;letter-spacing:.25px;padding-left:16px;padding-right:16px;vertical-align:middle;width:100%}.h-c-header__drawer-nav-li-link:focus,.h-c-header__drawer-nav-li-link:visited{color:#5f6368}.h-c-header__drawer-nav-li-link.h-is-active,.h-c-header__drawer-nav-li-link.h-is-highlighted,.h-c-header__drawer-nav-li-link:active,.h-c-header__drawer-nav-li-link:hover{color:#000}.h-c-header__drawer-nav-li-link.h-is-active{background:#f1f3f4}.h-c-header__drawer-nav-li-link:focus{background:#f1f3f4;outline:none}.h-c-header__drawer-nested-nav-list{display:table-row;list-style:none;margin-bottom:0;margin-left:0}.h-c-header__drawer-nested-nav-li{display:table;width:100%}.h-c-header__drawer-nested-nav-li-link{color:#5f6368;display:table-cell;font-family:Google Sans,Roboto,Arial,Helvetica,sans-serif;font-size:14px;font-weight:400;height:48px;letter-spacing:.25px;padding-right:32px;padding-left:32px;vertical-align:middle;width:100%}.h-c-header__drawer-nested-nav-li-link:focus,.h-c-header__drawer-nested-nav-li-link:visited{color:#5f6368}.h-c-header__drawer-nested-nav-li-link.h-is-active,.h-c-header__drawer-nested-nav-li-link:active,.h-c-header__drawer-nested-nav-li-link:hover{color:#000}.h-c-header__drawer-nested-nav-li-link.h-is-active{background:#f1f3f4}.h-c-header__drawer-nested-nav-li-link:focus{background:#f1f3f4;outline:none}.h-c-header__drawer-cta{bottom:0;-webkit-box-shadow:inset 0 1px 0 0 #dadce0;box-shadow:inset 0 1px 0 0 #dadce0;height:136px;left:0;padding-bottom:24px;padding-left:16px;padding-right:16px;padding-top:8px;position:absolute;right:0}.h-c-header__drawer-cta-list{list-style:none;margin-bottom:0;margin-left:0}.h-c-header__drawer-cta-li{display:table;margin-top:8px;width:100%}.h-c-header__drawer-cta-li:first-child{margin-top:0}.h-c-header__drawer-cta-li-link{display:table-cell;font-family:Google Sans,Roboto,Arial,Helvetica,sans-serif;font-size:14px;font-weight:400;height:48px;letter-spacing:.75px;text-align:center;vertical-align:middle}.h-c-header__drawer-cta-li-link.h-c-header__drawer-cta-li-link--primary{background:#1a73e8;background-clip:padding-box;border-radius:2px;color:#fff}.h-c-header__drawer-cta-li-link.h-c-header__drawer-cta-li-link--primary:visited{color:#fff}.h-c-header__drawer-cta-li-link.h-c-header__drawer-cta-li-link--primary:active,.h-c-header__drawer-cta-li-link.h-c-header__drawer-cta-li-link--primary:focus,.h-c-header__drawer-cta-li-link.h-c-header__drawer-cta-li-link--primary:hover{background:#174ea6;outline:none}.h-c-header__drawer-cta-li-link.h-c-header__drawer-cta-li-link--secondary,.h-c-header__drawer-cta-li-link.h-c-header__drawer-cta-li-link--secondary:visited{color:#1a73e8}.h-c-header__drawer-cta-li-link.h-c-header__drawer-cta-li-link--secondary:active,.h-c-header__drawer-cta-li-link.h-c-header__drawer-cta-li-link--secondary:focus,.h-c-header__drawer-cta-li-link.h-c-header__drawer-cta-li-link--secondary:hover{color:#174ea6}.h-c-header__drawer-cta-li-link.h-c-header__drawer-cta-li-link--secondary:focus{background:#f1f3f4;outline:none}.h-c-page{-webkit-box-sizing:content-box;box-sizing:content-box;margin:0 auto;max-width:568px;padding:0 16px;width:auto}@media (min-width:600px){.h-c-page{max-width:1280px;padding:0 32px}}.h-c-icon{display:inline-block;fill:currentColor}.svg-assets{display:none}.svg-assets path{stroke-width:inherit}.h-c-icon--18px{width:18px;height:18px}.h-c-icon--20px{width:20px;height:20px}.h-c-icon--24px{width:24px;height:24px}.h-c-icon--32px{width:32px;height:32px}[dir=rtl] .h-c-icon--arrow-forward{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.h-c-icon--arrow-external{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}[dir=rtl] .h-c-icon--arrow-external{-webkit-transform:rotate(-135deg);transform:rotate(-135deg)}.h-c-icon--arrow-top{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.h-c-icon--arrow-sort-asc{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.h-c-icon--arrow-sort-desc{-webkit-transform:rotate(0deg);transform:rotate(0deg)}.h-c-icon--chevron{height:8px;width:12px}.h-c-icon--chevron-down{-webkit-transform:rotate(180deg);transform:rotate(180deg)}#mi-keyboard-arrow-left path,#mi-keyboard-arrow-right path{stroke:inherit;stroke-width:inherit}.h-c-icon--keyboard-arrow-left,.h-c-icon--keyboard-arrow-right{fill:none;height:24px;stroke:#000;stroke-width:2px;width:24px}[dir=rtl] .h-c-icon--keyboard-arrow-left{-webkit-transform:rotate(0deg);transform:rotate(0deg)}.h-c-icon--keyboard-arrow-left,[dir=rtl] .h-c-icon--keyboard-arrow-right{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.h-c-icon--footer{color:#202124;margin:0 5px 0 0;vertical-align:middle}[dir=rtl] .h-c-icon--footer{margin:0 0 0 5px}.h-c-icon--social{fill:#202124;padding:2px;vertical-align:top}.h-c-icon--no-padding{padding:0}.h-c-icon--color-white{fill:#fff}.h-c-icon--color-black{fill:#000}.h-c-icon--color-link{fill:#1a73e8}.h-c-icon--color-text{fill:#202124}.h-c-icon--color-gplus{fill:#db4437}.h-c-icon--color-facebook{fill:#3b5998}.h-c-icon--color-twitter{fill:#1da1f2}.h-c-icon--color-youtube{fill:red}.h-c-icon--color-linkedin{fill:#0077b5}.h-c-icon--color-blogger{fill:#ff8000}.h-c-icon--color-instagram{fill:#df465f}.h-c-social{max-width:100%}@media (min-width:600px){.h-c-social{-ms-flex:1 0 auto;-webkit-box-flex:1;flex:1 0 auto;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}}.h-c-social.h-c-social--zippy .glue-c-zippy__content-container{padding:0}.h-c-social.h-c-social--zippy .glue-c-zippy__collapse-region{display:block}.h-c-social.h-c-social--zippy .glue-collapse-expanded .h-c-social__zippy-popover{z-index:1}.h-c-social.h-c-social--zippy.h-c-social--zippy-opposite{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.h-c-social.h-c-social--zippy.h-c-social--zippy-opposite .h-c-social--popover .h-c-social__copy-btn,.h-c-social.h-c-social--zippy.h-c-social--zippy-opposite .h-c-social--popover .h-c-social__copy-input{padding-right:0;text-align:right}.h-c-social.h-c-social--popover{display:none}@media (min-width:600px){.h-c-social.h-c-social--popover{display:inline-block}}.h-c-social.h-c-social--popover:focus{z-index:100}.h-c-social.h-c-social--popover>.glue-is-shown{z-index:10000}.h-c-social.h-c-social--popover+.h-c-social--popover{margin-left:36px}[dir=rtl] .h-c-social.h-c-social--popover+.h-c-social--popover{margin-left:0;margin-right:36px}.h-c-footer .h-c-social{margin:-10px 0 20px}.h-c-social__group{-ms-flex:0 0 100%;-webkit-box-flex:0;flex:0 0 100%;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin:0}@media (min-width:600px){.h-c-social__group{-ms-flex-wrap:nowrap;flex-wrap:nowrap;padding-right:70px}[dir=rtl] .h-c-social__group{padding-left:70px;padding-right:0}.h-c-social--popover .h-c-social__group,.h-c-social--zippy .h-c-social__group{padding:0}}@media (min-width:1024px){.h-c-social__group{-ms-flex:0 0 auto;-webkit-box-flex:0;flex:0 0 auto}}.h-c-social__group+.h-c-social__group{margin-top:10px}@media (min-width:1024px){.h-c-social__group+.h-c-social__group{margin-top:0}}.h-c-social--zippy-opposite .h-c-social__group{-webkit-box-orient:inherit;-webkit-box-direction:inherit;-ms-flex-direction:inherit;flex-direction:inherit}.h-c-social__title{color:#202124;-ms-flex:0 0 100%;-webkit-box-flex:0;flex:0 0 100%;font-family:Google Sans,Roboto,Arial,Helvetica,sans-serif;font-size:14px;font-weight:400;letter-spacing:.75px}@media (min-width:1024px){.h-c-social__title{font-size:16px;letter-spacing:.5px}}.h-c-social__title.h-c-social__title--inline{line-height:3.14285714;-ms-flex:0 0 auto;-webkit-box-flex:0;flex:0 0 auto;margin-right:24px}@media (min-width:600px){.h-c-social__title.h-c-social__title--inline{margin-right:32px}}@media (min-width:1024px){.h-c-social__title.h-c-social__title--inline{line-height:2.75}}.h-c-social--zippy-opposite .h-c-social__title.h-c-social__title--inline,[dir=rtl] .h-c-social__title.h-c-social__title--inline{margin-left:24px;margin-right:0}@media (min-width:600px){.h-c-social--zippy-opposite .h-c-social__title.h-c-social__title--inline,[dir=rtl] .h-c-social__title.h-c-social__title--inline{margin-left:32px}}[dir=rtl] .h-c-social--zippy-opposite .h-c-social__title.h-c-social__title--inline{margin-left:0;margin-right:24px}@media (min-width:600px){[dir=rtl] .h-c-social--zippy-opposite .h-c-social__title.h-c-social__title--inline{margin-right:32px}}.h-c-social__title.h-c-social__title--zippy{background-color:#fff;color:#1a73e8;margin-right:24px;position:relative;z-index:1}@media (min-width:600px){.h-c-social__title.h-c-social__title--zippy{margin-right:32px}}.h-c-social__title.h-c-social__title--zippy:focus,.h-c-social__title.h-c-social__title--zippy:hover{color:#174ea6}.h-c-social__title.h-c-social__title--zippy:focus{background:#f1f3f4;outline:10px solid #f1f3f4}.h-c-social__list{-ms-flex:0 0 auto;-webkit-box-flex:0;flex:0 0 auto;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin:0;max-width:100%}.h-c-social__list:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}@media (min-width:600px){.h-c-social__list{-ms-flex-wrap:nowrap;flex-wrap:nowrap}}.h-c-social__list.h-c-social__list--popover{-ms-flex-wrap:wrap;flex-wrap:wrap;padding-top:24px}.h-c-social--zippy-opposite .h-c-social__list{-webkit-box-orient:inherit;-webkit-box-direction:inherit;-ms-flex-direction:inherit;flex-direction:inherit}.h-c-footer .h-c-social__list{margin:0 -10px}.h-c-social__item{-ms-flex:0 0 auto;-webkit-box-flex:0;flex:0 0 auto;float:left;height:44px;margin:0 10px 0 0;width:44px}.h-c-social__item:last-child{margin-right:0}[dir=rtl] .h-c-social__item{float:right;margin:0 0 0 10px}[dir=rtl] .h-c-social__item:last-child{margin-left:0}.h-c-social__item .h-c-social__link{border-radius:50%;display:block;height:44px;padding:10px;width:44px}.h-c-social--static .h-c-social__item .h-c-social__link,.h-c-social--zippy .h-c-social__item .h-c-social__link{margin-left:-10px;margin-right:0}[dir=rtl] .h-c-social--static .h-c-social__item .h-c-social__link,[dir=rtl] .h-c-social--zippy .h-c-social__item .h-c-social__link{margin-left:0;margin-right:-10px}.h-c-social__item .h-c-social__link:focus{background:#f1f3f4;outline:none}.h-c-footer .h-c-social__item .h-c-social__link:focus{background:#e8eaed}.h-c-social__item .h-c-social{margin-left:-10px;margin-right:0}[dir=rtl] .h-c-social__item .h-c-social{margin-left:0;margin-right:-10px}.h-c-social__item .h-c-social.h-c-social--popover{display:block}.h-c-social--zippy-opposite .h-c-social__item,[dir=rtl] .h-c-social__item{margin-left:10px;margin-right:0}[dir=rtl] .h-c-social--zippy-opposite .h-c-social__item{margin-left:0;margin-right:10px;-webkit-transform:none;transform:none}.h-c-social--zippy .glue-collapse-expanded .h-c-social__item:nth-child(0){opacity:1;-webkit-transform:translateX(-40px);transform:translateX(-40px)}@media (min-width:600px){.h-c-social--zippy .glue-collapse-expanded .h-c-social__item:nth-child(0){-webkit-transform:translateX(-54px);transform:translateX(-54px)}}[dir=rtl].glue-app-ready .glue-collapse-expanded .h-c-social__item:nth-child(0),[dir=rtl].glue-app-supported .glue-collapse-expanded .h-c-social__item:nth-child(0){-webkit-transform:translateX(40px);transform:translateX(40px)}@media (min-width:600px){[dir=rtl].glue-app-ready .glue-collapse-expanded .h-c-social__item:nth-child(0),[dir=rtl].glue-app-supported .glue-collapse-expanded .h-c-social__item:nth-child(0){-webkit-transform:translateX(54px);transform:translateX(54px)}}.h-c-social--zippy-opposite .glue-collapse-expanded .h-c-social__item:nth-child(0){-webkit-transform:translateX(0);transform:translateX(0)}@media (min-width:600px){.h-c-social--zippy-opposite .glue-collapse-expanded .h-c-social__item:nth-child(0){-webkit-transform:translateX(0);transform:translateX(0)}}[dir=rtl] .h-c-social--zippy-opposite .glue-collapse-expanded .h-c-social__item:nth-child(0){-webkit-transform:translateX(0);transform:translateX(0)}@media (min-width:600px){[dir=rtl] .h-c-social--zippy-opposite .glue-collapse-expanded .h-c-social__item:nth-child(0){-webkit-transform:translateX(0);transform:translateX(0)}}.h-c-social--zippy .glue-collapse-expanded .h-c-social__item:first-child{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}@media (min-width:600px){.h-c-social--zippy .glue-collapse-expanded .h-c-social__item:first-child{-webkit-transform:translateX(0);transform:translateX(0)}}[dir=rtl].glue-app-ready .glue-collapse-expanded .h-c-social__item:first-child,[dir=rtl].glue-app-supported .glue-collapse-expanded .h-c-social__item:first-child{-webkit-transform:translateX(0);transform:translateX(0)}@media (min-width:600px){[dir=rtl].glue-app-ready .glue-collapse-expanded .h-c-social__item:first-child,[dir=rtl].glue-app-supported .glue-collapse-expanded .h-c-social__item:first-child{-webkit-transform:translateX(0);transform:translateX(0)}}.h-c-social--zippy-opposite .glue-collapse-expanded .h-c-social__item:first-child{-webkit-transform:translateX(-40px);transform:translateX(-40px)}@media (min-width:600px){.h-c-social--zippy-opposite .glue-collapse-expanded .h-c-social__item:first-child{-webkit-transform:translateX(-54px);transform:translateX(-54px)}}[dir=rtl] .h-c-social--zippy-opposite .glue-collapse-expanded .h-c-social__item:first-child{-webkit-transform:translateX(40px);transform:translateX(40px)}@media (min-width:600px){[dir=rtl] .h-c-social--zippy-opposite .glue-collapse-expanded .h-c-social__item:first-child{-webkit-transform:translateX(54px);transform:translateX(54px)}}.h-c-social--zippy .glue-collapse-expanded .h-c-social__item:nth-child(2){opacity:1;-webkit-transform:translateX(40px);transform:translateX(40px)}@media (min-width:600px){.h-c-social--zippy .glue-collapse-expanded .h-c-social__item:nth-child(2){-webkit-transform:translateX(54px);transform:translateX(54px)}}[dir=rtl].glue-app-ready .glue-collapse-expanded .h-c-social__item:nth-child(2),[dir=rtl].glue-app-supported .glue-collapse-expanded .h-c-social__item:nth-child(2){-webkit-transform:translateX(-40px);transform:translateX(-40px)}@media (min-width:600px){[dir=rtl].glue-app-ready .glue-collapse-expanded .h-c-social__item:nth-child(2),[dir=rtl].glue-app-supported .glue-collapse-expanded .h-c-social__item:nth-child(2){-webkit-transform:translateX(-54px);transform:translateX(-54px)}}.h-c-social--zippy-opposite .glue-collapse-expanded .h-c-social__item:nth-child(2){-webkit-transform:translateX(-80px);transform:translateX(-80px)}@media (min-width:600px){.h-c-social--zippy-opposite .glue-collapse-expanded .h-c-social__item:nth-child(2){-webkit-transform:translateX(-108px);transform:translateX(-108px)}}[dir=rtl] .h-c-social--zippy-opposite .glue-collapse-expanded .h-c-social__item:nth-child(2){-webkit-transform:translateX(80px);transform:translateX(80px)}@media (min-width:600px){[dir=rtl] .h-c-social--zippy-opposite .glue-collapse-expanded .h-c-social__item:nth-child(2){-webkit-transform:translateX(108px);transform:translateX(108px)}}.h-c-social--zippy .glue-collapse-expanded .h-c-social__item:nth-child(3){opacity:1;-webkit-transform:translateX(80px);transform:translateX(80px)}@media (min-width:600px){.h-c-social--zippy .glue-collapse-expanded .h-c-social__item:nth-child(3){-webkit-transform:translateX(108px);transform:translateX(108px)}}[dir=rtl].glue-app-ready .glue-collapse-expanded .h-c-social__item:nth-child(3),[dir=rtl].glue-app-supported .glue-collapse-expanded .h-c-social__item:nth-child(3){-webkit-transform:translateX(-80px);transform:translateX(-80px)}@media (min-width:600px){[dir=rtl].glue-app-ready .glue-collapse-expanded .h-c-social__item:nth-child(3),[dir=rtl].glue-app-supported .glue-collapse-expanded .h-c-social__item:nth-child(3){-webkit-transform:translateX(-108px);transform:translateX(-108px)}}.h-c-social--zippy-opposite .glue-collapse-expanded .h-c-social__item:nth-child(3){-webkit-transform:translateX(-120px);transform:translateX(-120px)}@media (min-width:600px){.h-c-social--zippy-opposite .glue-collapse-expanded .h-c-social__item:nth-child(3){-webkit-transform:translateX(-162px);transform:translateX(-162px)}}[dir=rtl] .h-c-social--zippy-opposite .glue-collapse-expanded .h-c-social__item:nth-child(3){-webkit-transform:translateX(120px);transform:translateX(120px)}@media (min-width:600px){[dir=rtl] .h-c-social--zippy-opposite .glue-collapse-expanded .h-c-social__item:nth-child(3){-webkit-transform:translateX(162px);transform:translateX(162px)}}.h-c-social--zippy .glue-collapse-expanded .h-c-social__item:nth-child(4){opacity:1;-webkit-transform:translateX(120px);transform:translateX(120px)}@media (min-width:600px){.h-c-social--zippy .glue-collapse-expanded .h-c-social__item:nth-child(4){-webkit-transform:translateX(162px);transform:translateX(162px)}}[dir=rtl].glue-app-ready .glue-collapse-expanded .h-c-social__item:nth-child(4),[dir=rtl].glue-app-supported .glue-collapse-expanded .h-c-social__item:nth-child(4){-webkit-transform:translateX(-120px);transform:translateX(-120px)}@media (min-width:600px){[dir=rtl].glue-app-ready .glue-collapse-expanded .h-c-social__item:nth-child(4),[dir=rtl].glue-app-supported .glue-collapse-expanded .h-c-social__item:nth-child(4){-webkit-transform:translateX(-162px);transform:translateX(-162px)}}.h-c-social--zippy-opposite .glue-collapse-expanded .h-c-social__item:nth-child(4){-webkit-transform:translateX(-160px);transform:translateX(-160px)}@media (min-width:600px){.h-c-social--zippy-opposite .glue-collapse-expanded .h-c-social__item:nth-child(4){-webkit-transform:translateX(-216px);transform:translateX(-216px)}}[dir=rtl] .h-c-social--zippy-opposite .glue-collapse-expanded .h-c-social__item:nth-child(4){-webkit-transform:translateX(160px);transform:translateX(160px)}@media (min-width:600px){[dir=rtl] .h-c-social--zippy-opposite .glue-collapse-expanded .h-c-social__item:nth-child(4){-webkit-transform:translateX(216px);transform:translateX(216px)}}.h-c-social--zippy .glue-collapse-expanded .h-c-social__item:nth-child(5){opacity:1;-webkit-transform:translateX(160px);transform:translateX(160px)}@media (min-width:600px){.h-c-social--zippy .glue-collapse-expanded .h-c-social__item:nth-child(5){-webkit-transform:translateX(216px);transform:translateX(216px)}}[dir=rtl].glue-app-ready .glue-collapse-expanded .h-c-social__item:nth-child(5),[dir=rtl].glue-app-supported .glue-collapse-expanded .h-c-social__item:nth-child(5){-webkit-transform:translateX(-160px);transform:translateX(-160px)}@media (min-width:600px){[dir=rtl].glue-app-ready .glue-collapse-expanded .h-c-social__item:nth-child(5),[dir=rtl].glue-app-supported .glue-collapse-expanded .h-c-social__item:nth-child(5){-webkit-transform:translateX(-216px);transform:translateX(-216px)}}.h-c-social--zippy-opposite .glue-collapse-expanded .h-c-social__item:nth-child(5){-webkit-transform:translateX(-200px);transform:translateX(-200px)}@media (min-width:600px){.h-c-social--zippy-opposite .glue-collapse-expanded .h-c-social__item:nth-child(5){-webkit-transform:translateX(-270px);transform:translateX(-270px)}}[dir=rtl] .h-c-social--zippy-opposite .glue-collapse-expanded .h-c-social__item:nth-child(5){-webkit-transform:translateX(200px);transform:translateX(200px)}@media (min-width:600px){[dir=rtl] .h-c-social--zippy-opposite .glue-collapse-expanded .h-c-social__item:nth-child(5){-webkit-transform:translateX(270px);transform:translateX(270px)}}.h-c-social--zippy .glue-collapse-expanded .h-c-social__item:nth-child(6){opacity:1;-webkit-transform:translateX(200px);transform:translateX(200px)}@media (min-width:600px){.h-c-social--zippy .glue-collapse-expanded .h-c-social__item:nth-child(6){-webkit-transform:translateX(270px);transform:translateX(270px)}}[dir=rtl].glue-app-ready .glue-collapse-expanded .h-c-social__item:nth-child(6),[dir=rtl].glue-app-supported .glue-collapse-expanded .h-c-social__item:nth-child(6){-webkit-transform:translateX(-200px);transform:translateX(-200px)}@media (min-width:600px){[dir=rtl].glue-app-ready .glue-collapse-expanded .h-c-social__item:nth-child(6),[dir=rtl].glue-app-supported .glue-collapse-expanded .h-c-social__item:nth-child(6){-webkit-transform:translateX(-270px);transform:translateX(-270px)}}.h-c-social--zippy-opposite .glue-collapse-expanded .h-c-social__item:nth-child(6){-webkit-transform:translateX(-240px);transform:translateX(-240px)}@media (min-width:600px){.h-c-social--zippy-opposite .glue-collapse-expanded .h-c-social__item:nth-child(6){-webkit-transform:translateX(-324px);transform:translateX(-324px)}}[dir=rtl] .h-c-social--zippy-opposite .glue-collapse-expanded .h-c-social__item:nth-child(6){-webkit-transform:translateX(240px);transform:translateX(240px)}@media (min-width:600px){[dir=rtl] .h-c-social--zippy-opposite .glue-collapse-expanded .h-c-social__item:nth-child(6){-webkit-transform:translateX(324px);transform:translateX(324px)}}.h-c-social--zippy .glue-collapse-expanded .h-c-social__item:nth-child(7){opacity:1;-webkit-transform:translateX(240px);transform:translateX(240px)}@media (min-width:600px){.h-c-social--zippy .glue-collapse-expanded .h-c-social__item:nth-child(7){-webkit-transform:translateX(324px);transform:translateX(324px)}}[dir=rtl].glue-app-ready .glue-collapse-expanded .h-c-social__item:nth-child(7),[dir=rtl].glue-app-supported .glue-collapse-expanded .h-c-social__item:nth-child(7){-webkit-transform:translateX(-240px);transform:translateX(-240px)}@media (min-width:600px){[dir=rtl].glue-app-ready .glue-collapse-expanded .h-c-social__item:nth-child(7),[dir=rtl].glue-app-supported .glue-collapse-expanded .h-c-social__item:nth-child(7){-webkit-transform:translateX(-324px);transform:translateX(-324px)}}.h-c-social--zippy-opposite .glue-collapse-expanded .h-c-social__item:nth-child(7){-webkit-transform:translateX(-280px);transform:translateX(-280px)}@media (min-width:600px){.h-c-social--zippy-opposite .glue-collapse-expanded .h-c-social__item:nth-child(7){-webkit-transform:translateX(-378px);transform:translateX(-378px)}}[dir=rtl] .h-c-social--zippy-opposite .glue-collapse-expanded .h-c-social__item:nth-child(7){-webkit-transform:translateX(280px);transform:translateX(280px)}@media (min-width:600px){[dir=rtl] .h-c-social--zippy-opposite .glue-collapse-expanded .h-c-social__item:nth-child(7){-webkit-transform:translateX(378px);transform:translateX(378px)}}.h-c-social--zippy .glue-collapse-expanded .h-c-social__item:nth-child(8){opacity:1;-webkit-transform:translateX(280px);transform:translateX(280px)}@media (min-width:600px){.h-c-social--zippy .glue-collapse-expanded .h-c-social__item:nth-child(8){-webkit-transform:translateX(378px);transform:translateX(378px)}}[dir=rtl].glue-app-ready .glue-collapse-expanded .h-c-social__item:nth-child(8),[dir=rtl].glue-app-supported .glue-collapse-expanded .h-c-social__item:nth-child(8){-webkit-transform:translateX(-280px);transform:translateX(-280px)}@media (min-width:600px){[dir=rtl].glue-app-ready .glue-collapse-expanded .h-c-social__item:nth-child(8),[dir=rtl].glue-app-supported .glue-collapse-expanded .h-c-social__item:nth-child(8){-webkit-transform:translateX(-378px);transform:translateX(-378px)}}.h-c-social--zippy-opposite .glue-collapse-expanded .h-c-social__item:nth-child(8){-webkit-transform:translateX(-320px);transform:translateX(-320px)}@media (min-width:600px){.h-c-social--zippy-opposite .glue-collapse-expanded .h-c-social__item:nth-child(8){-webkit-transform:translateX(-432px);transform:translateX(-432px)}}[dir=rtl] .h-c-social--zippy-opposite .glue-collapse-expanded .h-c-social__item:nth-child(8){-webkit-transform:translateX(320px);transform:translateX(320px)}@media (min-width:600px){[dir=rtl] .h-c-social--zippy-opposite .glue-collapse-expanded .h-c-social__item:nth-child(8){-webkit-transform:translateX(432px);transform:translateX(432px)}}.h-c-social--zippy .glue-collapse-expanded .h-c-social__item:nth-child(9){opacity:1;-webkit-transform:translateX(320px);transform:translateX(320px)}@media (min-width:600px){.h-c-social--zippy .glue-collapse-expanded .h-c-social__item:nth-child(9){-webkit-transform:translateX(432px);transform:translateX(432px)}}[dir=rtl].glue-app-ready .glue-collapse-expanded .h-c-social__item:nth-child(9),[dir=rtl].glue-app-supported .glue-collapse-expanded .h-c-social__item:nth-child(9){-webkit-transform:translateX(-320px);transform:translateX(-320px)}@media (min-width:600px){[dir=rtl].glue-app-ready .glue-collapse-expanded .h-c-social__item:nth-child(9),[dir=rtl].glue-app-supported .glue-collapse-expanded .h-c-social__item:nth-child(9){-webkit-transform:translateX(-432px);transform:translateX(-432px)}}.h-c-social--zippy-opposite .glue-collapse-expanded .h-c-social__item:nth-child(9){-webkit-transform:translateX(-360px);transform:translateX(-360px)}@media (min-width:600px){.h-c-social--zippy-opposite .glue-collapse-expanded .h-c-social__item:nth-child(9){-webkit-transform:translateX(-486px);transform:translateX(-486px)}}[dir=rtl] .h-c-social--zippy-opposite .glue-collapse-expanded .h-c-social__item:nth-child(9){-webkit-transform:translateX(360px);transform:translateX(360px)}@media (min-width:600px){[dir=rtl] .h-c-social--zippy-opposite .glue-collapse-expanded .h-c-social__item:nth-child(9){-webkit-transform:translateX(486px);transform:translateX(486px)}}.h-c-social--zippy .h-c-social__item{position:relative}.glue-app-ready .h-c-social--zippy .h-c-social__item,.glue-app-supported .h-c-social--zippy .h-c-social__item{opacity:0;position:absolute;-webkit-transform:translateX(-50px);transform:translateX(-50px);-webkit-transition:opacity .3s cubic-bezier(.4,0,.2,1),-webkit-transform .5s ease-out;transition:opacity .3s cubic-bezier(.4,0,.2,1),-webkit-transform .5s ease-out;transition:transform .5s ease-out,opacity .3s cubic-bezier(.4,0,.2,1);transition:transform .5s ease-out,opacity .3s cubic-bezier(.4,0,.2,1),-webkit-transform .5s ease-out}[dir=rtl].glue-app-ready .h-c-social--zippy .h-c-social__item,[dir=rtl].glue-app-supported .h-c-social--zippy .h-c-social__item{-webkit-transform:translateX(50px);transform:translateX(50px)}@media (min-width:600px){.h-c-social__item.h-c-social__item--popover{margin:16px 22px 0 -10px}.h-c-social__item.h-c-social__item--popover:nth-child(4n+4){margin-right:-10px}[dir=rtl] .h-c-social__item.h-c-social__item--popover:nth-child(4n+4){margin-left:-10px}}[dir=rtl] .h-c-social__item.h-c-social__item--popover{margin:16px -10px 0 22px}.h-c-social__share-icon{fill:currentColor;margin-right:10px;margin-top:8px;padding:0;vertical-align:top}[dir=rtl] .h-c-social__share-icon{margin-left:10px;margin-right:0}.h-c-social__dialog{border:none;-webkit-box-shadow:0 2px 8px rgba(0,0,0,.5);box-shadow:0 2px 8px rgba(0,0,0,.5);left:auto;outline:none;padding:0 46px 0 10px;position:absolute;right:0;text-align:left;top:0}@media (min-width:600px){.h-c-social__dialog{left:0;padding:0 10px 0 46px;right:auto}}.glue-app-ready .h-c-social__dialog,.glue-app-supported .h-c-social__dialog{display:none}.h-c-social--zippy-opposite .h-c-social__dialog,[dir=rtl] .h-c-social__dialog{left:0;padding:0 10px 0 46px;right:auto}@media (min-width:600px){.h-c-social--zippy-opposite .h-c-social__dialog,[dir=rtl] .h-c-social__dialog{left:auto;padding:0 46px 0 10px;right:0}}[dir=rtl] .h-c-social--zippy-opposite .h-c-social__dialog{left:auto;padding:0 46px 0 10px;right:0}@media (min-width:600px){[dir=rtl] .h-c-social--zippy-opposite .h-c-social__dialog{left:0;padding:0 10px 0 46px;right:auto}}.h-c-social__dialog.h-c-social__dialog--popover{border:none;display:block;outline:none;padding:0;position:static}@media (min-width:600px){.h-c-social__dialog.h-c-social__dialog--popover{-webkit-box-shadow:0 2px 8px rgba(0,0,0,.5);box-shadow:0 2px 8px rgba(0,0,0,.5);left:auto;padding:14px 24px 24px;position:absolute;right:-26px;top:-10px;text-align:right;width:240px}.glue-app-ready .h-c-social__dialog.h-c-social__dialog--popover,.glue-app-supported .h-c-social__dialog.h-c-social__dialog--popover{display:none}.h-c-social__group.glue-is-shown .h-c-social__dialog.h-c-social__dialog--popover{display:block}[dir=rtl] .h-c-social__dialog.h-c-social__dialog--popover{left:-26px;right:auto;text-align:left}}.h-c-social__close-btn{line-height:.77777778;color:#202124;height:16px;right:4px;text-align:center;top:4px;width:16px}.glue-app-ready .h-c-social__close-btn,.glue-app-supported .h-c-social__close-btn{display:none}.h-c-social__close-btn:focus{background:#f1f3f4;outline:none}[dir=rtl] .h-c-social__close-btn{left:4px;right:auto}.h-c-social__copy-container{background-color:#f8f9fa;margin:26px -24px -24px;padding:5px 10px;width:calc(100% + 48px)}.h-c-social__copy-input{background-color:inherit;border:none;border-radius:0;border-bottom:1px solid #dadce0;color:#202124;display:block;font-size:12px;font-weight:400;letter-spacing:.35px;margin-top:10px;padding-top:6px;padding-bottom:8px;text-align:left;width:100%}[dir=rtl] .h-c-social__copy-input{text-align:right}.h-c-social__copy-input:focus{background:#f1f3f4;border-bottom:2px solid #174ea6;padding-bottom:7px}.h-c-social__copy-container .h-c-social__copy-input:focus{background:#e8eaed}.h-c-social--popover .h-c-social__copy-input{margin-top:0;padding-right:16px;text-align:right}[dir=rtl] .h-c-social--popover .h-c-social__copy-input{padding-left:16px;padding-right:0;text-align:left}.h-c-social--static .h-c-social--popover .h-c-social__copy-input,.h-c-social--zippy .h-c-social--popover .h-c-social__copy-input{margin-top:5px;text-align:left}[dir=rtl] .h-c-social--static .h-c-social--popover .h-c-social__copy-input,[dir=rtl] .h-c-social--zippy .h-c-social--popover .h-c-social__copy-input{text-align:right}.h-c-social__copy-btn{background:none;border-color:#fff;border-style:none;-webkit-box-shadow:none;box-shadow:none;color:#1a73e8;font-family:Google Sans,Roboto,Arial,Helvetica,sans-serif;font-size:14px;font-weight:500;letter-spacing:.75px;line-height:1;margin:5px 0;min-width:210px;padding:10px 0;text-align:left;width:100%}@media (min-width:1024px){.h-c-social__copy-btn{font-size:16px;letter-spacing:.5px}}.h-c-social__copy-btn.glue-is-copied{color:#202124}.h-c-social__copy-btn:focus{background:#f1f3f4;color:#174ea6;outline:none}.h-c-social__copy-container .h-c-social__copy-btn:focus{background:#e8eaed}[dir=rtl] .h-c-social__copy-btn{text-align:right}.h-c-social--popover .h-c-social__copy-btn{margin-bottom:0;padding-right:16px;text-align:right}[dir=rtl] .h-c-social--popover .h-c-social__copy-btn{padding-left:16px;padding-right:0;text-align:left}.h-c-social--static .h-c-social--popover .h-c-social__copy-btn,.h-c-social--zippy .h-c-social--popover .h-c-social__copy-btn{margin-bottom:5px;text-align:left}[dir=rtl] .h-c-social--static .h-c-social--popover .h-c-social__copy-btn,[dir=rtl] .h-c-social--zippy .h-c-social--popover .h-c-social__copy-btn{text-align:right}.h-c-social__title.h-c-social__title--trigger{margin:0;position:relative}.h-c-social--popover .glue-is-shown .h-c-social__title.h-c-social__title--trigger{line-height:1.71428571;margin-bottom:10px;margin-top:10px;z-index:1}[dir=rtl] .h-c-social__title.h-c-social__title--trigger{margin:0}.h-c-social__title.h-c-social__title--trigger:focus,.h-c-social__title.h-c-social__title--trigger:hover{color:#174ea6}.h-c-social__title.h-c-social__title--trigger:focus{background:#f1f3f4;outline:10px solid rgba(32,33,36,.06)}.h-c-social__icon-trigger{border-radius:50%;display:block;height:44px;margin:0;padding:10px;position:relative;width:44px}.h-c-social--popover .glue-is-shown .h-c-social__icon-trigger{z-index:1}[dir=rtl] .h-c-social__icon-trigger{margin:0}.h-c-social__icon-trigger:focus{background:#f1f3f4;outline:none}.h-c-footer{background:#f8f9fa;margin:0}.h-c-footer.h-c-footer--topmargin{margin-top:40px}.h-c-footer__link{line-height:1.57142857;color:#5f6368;display:inline-block;font-size:14px;font-weight:400;letter-spacing:.25px}.h-c-footer__link:visited{color:#5f6368}.h-c-footer__link:focus,.h-c-footer__link:hover{color:#202124}.h-c-footer__link:focus{background:#e8eaed;outline:10px solid #e8eaed}.h-c-footer__global{margin:0 auto;padding:40px 16px 20px}@media (min-width:600px){.h-c-footer__global{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;max-width:1344px;padding:40px 32px 20px}.h-c-footer__global:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}}.h-c-footer__logo{height:28px;margin:0 0 30px;width:86px}@media (min-width:600px){.h-c-footer__logo{-ms-flex:0 0 90%;-webkit-box-flex:0;flex:0 0 90%;margin-right:55px}[dir=rtl] .h-c-footer__logo{margin-left:55px;margin-right:0}}@media (min-width:1024px){.h-c-footer__logo{-ms-flex:0 0 86px;-webkit-box-flex:0;flex:0 0 86px}}.h-c-footer__logo a{display:inline-block;height:28px}.h-c-footer__logo a:focus{background:#e8eaed;outline:10px solid #e8eaed}.h-c-footer__logo-img{fill:#5f6368;height:28px;width:86px}.h-c-footer__global-links{margin:0 0 15px}.h-c-footer__global-links:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}@media (min-width:600px){.h-c-footer__global-links{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex:2 0 auto;-webkit-box-flex:2;flex:2 0 auto;max-width:100%}}@media (min-width:600px){.h-c-footer__global-links--extra{-ms-flex:0 0 auto;-webkit-box-flex:0;flex:0 0 auto}}.h-c-footer__global-links-list-item{float:left;padding:0 30px 15px 0}[dir=rtl] .h-c-footer__global-links-list-item{float:right;padding-left:30px;padding-right:0}.h-c-footer__global-links-list-item--extra:last-child{padding-left:0;padding-right:0}.h-c-footer__lang-dropdown{-moz-appearance:none;-webkit-appearance:none;appearance:none;background-color:#f8f9fa;background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNHB4IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iIzU0NTQ1NCI+PHBhdGggZD0iTTcgMTBsNSA1IDUtNXoiPjwvcGF0aD48L3N2Zz4=");background-position:right 50%;background-repeat:no-repeat;border:none;border-radius:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:#5f6368;display:inline-block;font-size:14px;font-weight:400;height:22px;margin:0;padding:0 24px 0 2px;text-overflow:ellipsis;width:100%;white-space:pre-wrap}[dir=rtl] .h-c-footer__lang-dropdown{background-position:left 50%;padding:0 2px 0 24px}.h-c-footer__lang-dropdown::-ms-expand{display:none}.h-c-footer__lang-dropdown:focus{background-color:#e8eaed;color:#202124;outline:10px solid #e8eaed}.h-c-footer__upper{margin:0 auto;padding:30px 16px 0}@media (min-width:600px){.h-c-footer__upper{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;max-width:1344px;padding:30px 32px 0}.h-c-footer__upper:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}}.h-c-footer__site-links{border-bottom:1px solid #dadce0;margin:0 auto;padding:0 16px}.h-has-sitesearch .h-c-footer__site-links,.h-has-social .h-c-footer__site-links{border-top:1px solid #dadce0}@media (min-width:600px){.h-c-footer__site-links{max-width:1344px;padding:50px 32px;width:auto}}@media (min-width:1440px){.h-c-footer__site-links{max-width:1280px;padding:50px 0}}@media (min-width:600px){.h-c-footer__site-links-grid{-webkit-box-sizing:content-box;box-sizing:content-box;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.h-c-footer__site-links-grid:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}}.h-c-footer__site-links-column{border-bottom:1px solid #dadce0;margin:0;padding:30px 0 20px}.h-c-footer__site-links-column:last-child{border-bottom:none}@media (min-width:600px){.h-c-footer__site-links-column{-ms-flex:0 0 20%;-webkit-box-flex:0;flex:0 0 20%;border-bottom:none;float:left;max-width:20%;padding:0;width:20%}[dir=rtl] .h-c-footer__site-links-column{float:right}}.h-c-footer__site-links-column.glue-c-zippy{padding-bottom:0}.h-c-footer__site-links-header{line-height:1.625;color:#202124;font-family:Google Sans,Roboto,Arial,Helvetica,sans-serif;font-size:16px;font-weight:400;margin:0 0 10px;overflow:hidden}.glue-flexbox .h-c-footer__site-links-header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:space-between;-ms-flex-pack:space-between;-ms-justify-content:space-between;justify-content:space-between}@media (min-width:600px){.h-c-footer__site-links-header{margin:0 40px 18px 0}[dir=rtl] .h-c-footer__site-links-header{margin-left:40px;margin-right:0}}@media (min-width:1024px){.h-c-footer__site-links-header{line-height:1.66666667;font-size:18px}}.h-c-footer__site-links-header:focus{color:#202124}.glue-c-zippy .h-c-footer__site-links-header{color:#5f6368;margin-bottom:0;padding-bottom:24px}.glue-c-zippy .h-c-footer__site-links-header:focus,.glue-c-zippy .h-c-footer__site-links-header:hover{color:#202124}.glue-c-zippy .h-c-footer__site-links-header:focus{border-bottom:2px solid #202124;outline:none;padding-bottom:22px}.glue-is-expanded .h-c-footer__site-links-header{border-bottom:1px solid #dadce0;padding-bottom:23px}.h-c-footer__expand{display:none;fill:currentColor;float:right;-webkit-transform:rotate(0deg);transform:rotate(0deg);-webkit-transition:-webkit-transform .333s ease-in;transition:-webkit-transform .333s ease-in;transition:transform .333s ease-in;transition:transform .333s ease-in,-webkit-transform .333s ease-in}[dir=rtl] .h-c-footer__expand{float:left}.glue-flexbox .h-c-footer__expand{-ms-flex:0 0 32px;-webkit-box-flex:0;flex:0 0 32px;margin:-5px 0 0 8px}[dir=rtl] .glue-flexbox .h-c-footer__expand{margin:-5px 8px 0 0}.glue-c-zippy__btn .h-c-footer__expand{display:block}.glue-is-expanded .h-c-footer__expand{-webkit-transform:rotate(-180deg);transform:rotate(-180deg)}[dir=rtl] .glue-is-expanded .h-c-footer__expand{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.h-c-footer .glue-c-zippy__content-container{padding:0}.h-c-footer__site-links-list{margin-bottom:0}.h-c-footer__site-links-list-item{margin:0 40px 0 0;padding-bottom:18px}.h-c-footer__site-links-list-item:last-child{padding-bottom:0}[dir=rtl] .h-c-footer__site-links-list-item{margin:0 0 0 40px}@media (min-width:600px){.h-c-footer__site-links-list-item{padding-bottom:18px}}.h-c-footer__site-links-list-item .h-c-footer__link:focus{outline-width:6px}.glue-c-zippy__content-container .h-c-footer__site-links-list-item{padding:18px 0 0}.glue-c-zippy__content-container .h-c-footer__site-links-list-item:last-child{padding-bottom:18px}.h-c-footer__signup{background:#fff;border-top:1px solid #dadce0;padding:60px 0 30px}.h-c-footer__signup-intro{margin-top:40px}@media (min-width:600px){.h-c-footer__signup-intro{margin-top:3px}}.h-c-footer__signup-form{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin:30px 0 0;position:relative}@media (min-width:600px){.h-c-footer__signup-button,.h-c-footer__signup-input{-ms-flex:0 0 auto;-webkit-box-flex:0;flex:0 0 auto}}.h-c-footer__signup-input{border:none;border-bottom:1px solid #dadce0;color:#202124;display:block;font-size:14px;margin:6px 0 30px;padding:8px 0;width:100%}@media (min-width:600px){.h-c-footer__signup-input{margin-left:0;margin-right:100px;width:300px}[dir=rtl] .h-c-footer__signup-input{margin-left:100px;margin-right:0}}@media (min-width:1024px){.h-c-footer__signup-input{font-size:16px}}.h-c-footer__signup-label{color:#202124;font-size:12px;left:0;position:absolute;top:-10px}[dir=rtl] .h-c-footer__signup-label{left:auto;right:0}.h-c-footer__signup-input:focus{border-bottom-width:2px;border-color:#174ea6;margin-bottom:29px;outline:none}.h-c-footer__signup-input:focus+.h-c-footer__signup-label{color:#174ea6}.h-c-footer__signup-input:placeholder-shown+.h-c-footer__signup-label{display:none}.h-c-footer__signup-button{margin:0 0 30px}.h-c-headline,.landing-tertiary-list__item span,.products-navigation-list__product span,h1,h2,h3,h4{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;color:#202124;font-family:Google Sans,Roboto,Arial,Helvetica,sans-serif;font-weight:400;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto;overflow-wrap:normal;word-wrap:normal}.h-c-headline.h-c-headline--display-one,.landing-tertiary-list__item span.h-c-headline--display-one,.products-navigation-list__product span.h-c-headline--display-one,h1.h-c-headline--display-one,h2.h-c-headline--display-one,h3.h-c-headline--display-one,h4.h-c-headline--display-one{line-height:1.16666667;font-size:60px;font-weight:400;letter-spacing:-.75px}.h-c-headline.h-c-headline--display-one.h-has-top-margin,.landing-tertiary-list__item span.h-c-headline--display-one.h-has-top-margin,.products-navigation-list__product span.h-c-headline--display-one.h-has-top-margin,h1.h-c-headline--display-one.h-has-top-margin,h2.h-c-headline--display-one.h-has-top-margin,h3.h-c-headline--display-one.h-has-top-margin,h4.h-c-headline--display-one.h-has-top-margin{margin-top:35px}.h-c-headline.h-c-headline--display-one.h-has-bottom-margin,.landing-tertiary-list__item span.h-c-headline--display-one.h-has-bottom-margin,.products-navigation-list__product span.h-c-headline--display-one.h-has-bottom-margin,h1.h-c-headline--display-one.h-has-bottom-margin,h2.h-c-headline--display-one.h-has-bottom-margin,h3.h-c-headline--display-one.h-has-bottom-margin,h4.h-c-headline--display-one.h-has-bottom-margin{margin-bottom:35px}.h-c-headline.h-c-headline--display-one.h-has-top-bottom-margin,.landing-tertiary-list__item span.h-c-headline--display-one.h-has-top-bottom-margin,.products-navigation-list__product span.h-c-headline--display-one.h-has-top-bottom-margin,h1.h-c-headline--display-one.h-has-top-bottom-margin,h2.h-c-headline--display-one.h-has-top-bottom-margin,h3.h-c-headline--display-one.h-has-top-bottom-margin,h4.h-c-headline--display-one.h-has-top-bottom-margin{margin-bottom:35px;margin-top:35px}@media (min-width:600px){.h-c-headline.h-c-headline--display-one,.landing-tertiary-list__item span.h-c-headline--display-one,.products-navigation-list__product span.h-c-headline--display-one,h1.h-c-headline--display-one,h2.h-c-headline--display-one,h3.h-c-headline--display-one,h4.h-c-headline--display-one{line-height:1.16666667;font-size:72px;letter-spacing:-1px}.h-c-headline.h-c-headline--display-one.h-has-top-margin,.landing-tertiary-list__item span.h-c-headline--display-one.h-has-top-margin,.products-navigation-list__product span.h-c-headline--display-one.h-has-top-margin,h1.h-c-headline--display-one.h-has-top-margin,h2.h-c-headline--display-one.h-has-top-margin,h3.h-c-headline--display-one.h-has-top-margin,h4.h-c-headline--display-one.h-has-top-margin{margin-top:42px}.h-c-headline.h-c-headline--display-one.h-has-bottom-margin,.landing-tertiary-list__item span.h-c-headline--display-one.h-has-bottom-margin,.products-navigation-list__product span.h-c-headline--display-one.h-has-bottom-margin,h1.h-c-headline--display-one.h-has-bottom-margin,h2.h-c-headline--display-one.h-has-bottom-margin,h3.h-c-headline--display-one.h-has-bottom-margin,h4.h-c-headline--display-one.h-has-bottom-margin{margin-bottom:42px}.h-c-headline.h-c-headline--display-one.h-has-top-bottom-margin,.landing-tertiary-list__item span.h-c-headline--display-one.h-has-top-bottom-margin,.products-navigation-list__product span.h-c-headline--display-one.h-has-top-bottom-margin,h1.h-c-headline--display-one.h-has-top-bottom-margin,h2.h-c-headline--display-one.h-has-top-bottom-margin,h3.h-c-headline--display-one.h-has-top-bottom-margin,h4.h-c-headline--display-one.h-has-top-bottom-margin{margin-bottom:42px;margin-top:42px}}@media (min-width:1024px){.h-c-headline.h-c-headline--display-one,.landing-tertiary-list__item span.h-c-headline--display-one,.products-navigation-list__product span.h-c-headline--display-one,h1.h-c-headline--display-one,h2.h-c-headline--display-one,h3.h-c-headline--display-one,h4.h-c-headline--display-one{line-height:1.16666667;font-size:120px;letter-spacing:-2px}.h-c-headline.h-c-headline--display-one.h-has-top-margin,.landing-tertiary-list__item span.h-c-headline--display-one.h-has-top-margin,.products-navigation-list__product span.h-c-headline--display-one.h-has-top-margin,h1.h-c-headline--display-one.h-has-top-margin,h2.h-c-headline--display-one.h-has-top-margin,h3.h-c-headline--display-one.h-has-top-margin,h4.h-c-headline--display-one.h-has-top-margin{margin-top:70px}.h-c-headline.h-c-headline--display-one.h-has-bottom-margin,.landing-tertiary-list__item span.h-c-headline--display-one.h-has-bottom-margin,.products-navigation-list__product span.h-c-headline--display-one.h-has-bottom-margin,h1.h-c-headline--display-one.h-has-bottom-margin,h2.h-c-headline--display-one.h-has-bottom-margin,h3.h-c-headline--display-one.h-has-bottom-margin,h4.h-c-headline--display-one.h-has-bottom-margin{margin-bottom:70px}.h-c-headline.h-c-headline--display-one.h-has-top-bottom-margin,.landing-tertiary-list__item span.h-c-headline--display-one.h-has-top-bottom-margin,.products-navigation-list__product span.h-c-headline--display-one.h-has-top-bottom-margin,h1.h-c-headline--display-one.h-has-top-bottom-margin,h2.h-c-headline--display-one.h-has-top-bottom-margin,h3.h-c-headline--display-one.h-has-top-bottom-margin,h4.h-c-headline--display-one.h-has-top-bottom-margin{margin-bottom:70px;margin-top:70px}}.h-c-headline.h-c-headline--display-two,.landing-tertiary-list__item span.h-c-headline--display-two,.products-navigation-list__product span.h-c-headline--display-two,h1.h-c-headline--display-two,h2.h-c-headline--display-two,h3.h-c-headline--display-two,h4.h-c-headline--display-two{line-height:1.15789474;font-size:38px;font-weight:400;letter-spacing:0}.h-c-headline.h-c-headline--display-two.h-has-top-margin,.landing-tertiary-list__item span.h-c-headline--display-two.h-has-top-margin,.products-navigation-list__product span.h-c-headline--display-two.h-has-top-margin,h1.h-c-headline--display-two.h-has-top-margin,h2.h-c-headline--display-two.h-has-top-margin,h3.h-c-headline--display-two.h-has-top-margin,h4.h-c-headline--display-two.h-has-top-margin{margin-top:22px}.h-c-headline.h-c-headline--display-two.h-has-bottom-margin,.landing-tertiary-list__item span.h-c-headline--display-two.h-has-bottom-margin,.products-navigation-list__product span.h-c-headline--display-two.h-has-bottom-margin,h1.h-c-headline--display-two.h-has-bottom-margin,h2.h-c-headline--display-two.h-has-bottom-margin,h3.h-c-headline--display-two.h-has-bottom-margin,h4.h-c-headline--display-two.h-has-bottom-margin{margin-bottom:22px}.h-c-headline.h-c-headline--display-two.h-has-top-bottom-margin,.landing-tertiary-list__item span.h-c-headline--display-two.h-has-top-bottom-margin,.products-navigation-list__product span.h-c-headline--display-two.h-has-top-bottom-margin,h1.h-c-headline--display-two.h-has-top-bottom-margin,h2.h-c-headline--display-two.h-has-top-bottom-margin,h3.h-c-headline--display-two.h-has-top-bottom-margin,h4.h-c-headline--display-two.h-has-top-bottom-margin{margin-bottom:22px;margin-top:22px}@media (min-width:600px){.h-c-headline.h-c-headline--display-two,.landing-tertiary-list__item span.h-c-headline--display-two,.products-navigation-list__product span.h-c-headline--display-two,h1.h-c-headline--display-two,h2.h-c-headline--display-two,h3.h-c-headline--display-two,h4.h-c-headline--display-two{line-height:1.16666667;font-size:60px;letter-spacing:-.75px}.h-c-headline.h-c-headline--display-two.h-has-top-margin,.landing-tertiary-list__item span.h-c-headline--display-two.h-has-top-margin,.products-navigation-list__product span.h-c-headline--display-two.h-has-top-margin,h1.h-c-headline--display-two.h-has-top-margin,h2.h-c-headline--display-two.h-has-top-margin,h3.h-c-headline--display-two.h-has-top-margin,h4.h-c-headline--display-two.h-has-top-margin{margin-top:35px}.h-c-headline.h-c-headline--display-two.h-has-bottom-margin,.landing-tertiary-list__item span.h-c-headline--display-two.h-has-bottom-margin,.products-navigation-list__product span.h-c-headline--display-two.h-has-bottom-margin,h1.h-c-headline--display-two.h-has-bottom-margin,h2.h-c-headline--display-two.h-has-bottom-margin,h3.h-c-headline--display-two.h-has-bottom-margin,h4.h-c-headline--display-two.h-has-bottom-margin{margin-bottom:35px}.h-c-headline.h-c-headline--display-two.h-has-top-bottom-margin,.landing-tertiary-list__item span.h-c-headline--display-two.h-has-top-bottom-margin,.products-navigation-list__product span.h-c-headline--display-two.h-has-top-bottom-margin,h1.h-c-headline--display-two.h-has-top-bottom-margin,h2.h-c-headline--display-two.h-has-top-bottom-margin,h3.h-c-headline--display-two.h-has-top-bottom-margin,h4.h-c-headline--display-two.h-has-top-bottom-margin{margin-bottom:35px;margin-top:35px}}@media (min-width:1024px){.h-c-headline.h-c-headline--display-two,.landing-tertiary-list__item span.h-c-headline--display-two,.products-navigation-list__product span.h-c-headline--display-two,h1.h-c-headline--display-two,h2.h-c-headline--display-two,h3.h-c-headline--display-two,h4.h-c-headline--display-two{line-height:1.16666667;font-size:96px;letter-spacing:-1px}.h-c-headline.h-c-headline--display-two.h-has-top-margin,.landing-tertiary-list__item span.h-c-headline--display-two.h-has-top-margin,.products-navigation-list__product span.h-c-headline--display-two.h-has-top-margin,h1.h-c-headline--display-two.h-has-top-margin,h2.h-c-headline--display-two.h-has-top-margin,h3.h-c-headline--display-two.h-has-top-margin,h4.h-c-headline--display-two.h-has-top-margin{margin-top:56px}.h-c-headline.h-c-headline--display-two.h-has-bottom-margin,.landing-tertiary-list__item span.h-c-headline--display-two.h-has-bottom-margin,.products-navigation-list__product span.h-c-headline--display-two.h-has-bottom-margin,h1.h-c-headline--display-two.h-has-bottom-margin,h2.h-c-headline--display-two.h-has-bottom-margin,h3.h-c-headline--display-two.h-has-bottom-margin,h4.h-c-headline--display-two.h-has-bottom-margin{margin-bottom:56px}.h-c-headline.h-c-headline--display-two.h-has-top-bottom-margin,.landing-tertiary-list__item span.h-c-headline--display-two.h-has-top-bottom-margin,.products-navigation-list__product span.h-c-headline--display-two.h-has-top-bottom-margin,h1.h-c-headline--display-two.h-has-top-bottom-margin,h2.h-c-headline--display-two.h-has-top-bottom-margin,h3.h-c-headline--display-two.h-has-top-bottom-margin,h4.h-c-headline--display-two.h-has-top-bottom-margin{margin-bottom:56px;margin-top:56px}}.h-c-headline.h-c-headline--one,.landing-tertiary-list__item span.h-c-headline--one,.products-navigation-list__product span.h-c-headline--one,h1,h2.h-c-headline--one,h3.h-c-headline--one,h4.h-c-headline--one{line-height:1.25;font-size:32px;letter-spacing:0}.h-c-headline.h-c-headline--one.h-has-top-margin,.landing-tertiary-list__item span.h-c-headline--one.h-has-top-margin,.products-navigation-list__product span.h-c-headline--one.h-has-top-margin,h1.h-has-top-margin,h2.h-c-headline--one.h-has-top-margin,h3.h-c-headline--one.h-has-top-margin,h4.h-c-headline--one.h-has-top-margin{margin-top:15px}.h-c-headline.h-c-headline--one.h-has-bottom-margin,.landing-tertiary-list__item span.h-c-headline--one.h-has-bottom-margin,.products-navigation-list__product span.h-c-headline--one.h-has-bottom-margin,h1.h-has-bottom-margin,h2.h-c-headline--one.h-has-bottom-margin,h3.h-c-headline--one.h-has-bottom-margin,h4.h-c-headline--one.h-has-bottom-margin{margin-bottom:15px}.h-c-headline.h-c-headline--one.h-has-top-bottom-margin,.landing-tertiary-list__item span.h-c-headline--one.h-has-top-bottom-margin,.products-navigation-list__product span.h-c-headline--one.h-has-top-bottom-margin,h1.h-has-top-bottom-margin,h2.h-c-headline--one.h-has-top-bottom-margin,h3.h-c-headline--one.h-has-top-bottom-margin,h4.h-c-headline--one.h-has-top-bottom-margin{margin-bottom:15px;margin-top:15px}@media (min-width:600px){.h-c-headline.h-c-headline--one,.landing-tertiary-list__item span.h-c-headline--one,.products-navigation-list__product span.h-c-headline--one,h1,h2.h-c-headline--one,h3.h-c-headline--one,h4.h-c-headline--one{line-height:1.15789474;font-size:38px;letter-spacing:0}.h-c-headline.h-c-headline--one.h-has-top-margin,.landing-tertiary-list__item span.h-c-headline--one.h-has-top-margin,.products-navigation-list__product span.h-c-headline--one.h-has-top-margin,h1.h-has-top-margin,h2.h-c-headline--one.h-has-top-margin,h3.h-c-headline--one.h-has-top-margin,h4.h-c-headline--one.h-has-top-margin{margin-top:13px}.h-c-headline.h-c-headline--one.h-has-bottom-margin,.landing-tertiary-list__item span.h-c-headline--one.h-has-bottom-margin,.products-navigation-list__product span.h-c-headline--one.h-has-bottom-margin,h1.h-has-bottom-margin,h2.h-c-headline--one.h-has-bottom-margin,h3.h-c-headline--one.h-has-bottom-margin,h4.h-c-headline--one.h-has-bottom-margin{margin-bottom:13px}.h-c-headline.h-c-headline--one.h-has-top-bottom-margin,.landing-tertiary-list__item span.h-c-headline--one.h-has-top-bottom-margin,.products-navigation-list__product span.h-c-headline--one.h-has-top-bottom-margin,h1.h-has-top-bottom-margin,h2.h-c-headline--one.h-has-top-bottom-margin,h3.h-c-headline--one.h-has-top-bottom-margin,h4.h-c-headline--one.h-has-top-bottom-margin{margin-bottom:13px;margin-top:13px}}@media (min-width:1024px){.h-c-headline.h-c-headline--one,.landing-tertiary-list__item span.h-c-headline--one,.products-navigation-list__product span.h-c-headline--one,h1,h2.h-c-headline--one,h3.h-c-headline--one,h4.h-c-headline--one{line-height:1.17857143;font-size:56px;letter-spacing:-.5px}.h-c-headline.h-c-headline--one.h-has-top-margin,.landing-tertiary-list__item span.h-c-headline--one.h-has-top-margin,.products-navigation-list__product span.h-c-headline--one.h-has-top-margin,h1.h-has-top-margin,h2.h-c-headline--one.h-has-top-margin,h3.h-c-headline--one.h-has-top-margin,h4.h-c-headline--one.h-has-top-margin{margin-top:20px}.h-c-headline.h-c-headline--one.h-has-bottom-margin,.landing-tertiary-list__item span.h-c-headline--one.h-has-bottom-margin,.products-navigation-list__product span.h-c-headline--one.h-has-bottom-margin,h1.h-has-bottom-margin,h2.h-c-headline--one.h-has-bottom-margin,h3.h-c-headline--one.h-has-bottom-margin,h4.h-c-headline--one.h-has-bottom-margin{margin-bottom:20px}.h-c-headline.h-c-headline--one.h-has-top-bottom-margin,.landing-tertiary-list__item span.h-c-headline--one.h-has-top-bottom-margin,.products-navigation-list__product span.h-c-headline--one.h-has-top-bottom-margin,h1.h-has-top-bottom-margin,h2.h-c-headline--one.h-has-top-bottom-margin,h3.h-c-headline--one.h-has-top-bottom-margin,h4.h-c-headline--one.h-has-top-bottom-margin{margin-bottom:20px;margin-top:20px}}.h-c-headline.h-c-headline--two,.landing-tertiary-list__item span.h-c-headline--two,.products-navigation-list__product span.h-c-headline--two,h1.h-c-headline--two,h2,h3.h-c-headline--two,h4.h-c-headline--two{line-height:1.33333333;font-size:24px;letter-spacing:0}.h-c-headline.h-c-headline--two.h-has-top-margin,.landing-tertiary-list__item span.h-c-headline--two.h-has-top-margin,.products-navigation-list__product span.h-c-headline--two.h-has-top-margin,h1.h-c-headline--two.h-has-top-margin,h2.h-has-top-margin,h3.h-c-headline--two.h-has-top-margin,h4.h-c-headline--two.h-has-top-margin{margin-top:10px}.h-c-headline.h-c-headline--two.h-has-bottom-margin,.landing-tertiary-list__item span.h-c-headline--two.h-has-bottom-margin,.products-navigation-list__product span.h-c-headline--two.h-has-bottom-margin,h1.h-c-headline--two.h-has-bottom-margin,h2.h-has-bottom-margin,h3.h-c-headline--two.h-has-bottom-margin,h4.h-c-headline--two.h-has-bottom-margin{margin-bottom:10px}.h-c-headline.h-c-headline--two.h-has-top-bottom-margin,.landing-tertiary-list__item span.h-c-headline--two.h-has-top-bottom-margin,.products-navigation-list__product span.h-c-headline--two.h-has-top-bottom-margin,h1.h-c-headline--two.h-has-top-bottom-margin,h2.h-has-top-bottom-margin,h3.h-c-headline--two.h-has-top-bottom-margin,h4.h-c-headline--two.h-has-top-bottom-margin{margin-bottom:10px;margin-top:10px}@media (min-width:600px){.h-c-headline.h-c-headline--two,.landing-tertiary-list__item span.h-c-headline--two,.products-navigation-list__product span.h-c-headline--two,h1.h-c-headline--two,h2,h3.h-c-headline--two,h4.h-c-headline--two{line-height:1.25;font-size:32px;letter-spacing:0}.h-c-headline.h-c-headline--two.h-has-top-margin,.landing-tertiary-list__item span.h-c-headline--two.h-has-top-margin,.products-navigation-list__product span.h-c-headline--two.h-has-top-margin,h1.h-c-headline--two.h-has-top-margin,h2.h-has-top-margin,h3.h-c-headline--two.h-has-top-margin,h4.h-c-headline--two.h-has-top-margin{margin-top:12px}.h-c-headline.h-c-headline--two.h-has-bottom-margin,.landing-tertiary-list__item span.h-c-headline--two.h-has-bottom-margin,.products-navigation-list__product span.h-c-headline--two.h-has-bottom-margin,h1.h-c-headline--two.h-has-bottom-margin,h2.h-has-bottom-margin,h3.h-c-headline--two.h-has-bottom-margin,h4.h-c-headline--two.h-has-bottom-margin{margin-bottom:12px}.h-c-headline.h-c-headline--two.h-has-top-bottom-margin,.landing-tertiary-list__item span.h-c-headline--two.h-has-top-bottom-margin,.products-navigation-list__product span.h-c-headline--two.h-has-top-bottom-margin,h1.h-c-headline--two.h-has-top-bottom-margin,h2.h-has-top-bottom-margin,h3.h-c-headline--two.h-has-top-bottom-margin,h4.h-c-headline--two.h-has-top-bottom-margin{margin-bottom:12px;margin-top:12px}}@media (min-width:1024px){.h-c-headline.h-c-headline--two,.landing-tertiary-list__item span.h-c-headline--two,.products-navigation-list__product span.h-c-headline--two,h1.h-c-headline--two,h2,h3.h-c-headline--two,h4.h-c-headline--two{line-height:1.18181818;font-size:44px;letter-spacing:-.5px}.h-c-headline.h-c-headline--two.h-has-top-margin,.landing-tertiary-list__item span.h-c-headline--two.h-has-top-margin,.products-navigation-list__product span.h-c-headline--two.h-has-top-margin,h1.h-c-headline--two.h-has-top-margin,h2.h-has-top-margin,h3.h-c-headline--two.h-has-top-margin,h4.h-c-headline--two.h-has-top-margin{margin-top:15px}.h-c-headline.h-c-headline--two.h-has-bottom-margin,.landing-tertiary-list__item span.h-c-headline--two.h-has-bottom-margin,.products-navigation-list__product span.h-c-headline--two.h-has-bottom-margin,h1.h-c-headline--two.h-has-bottom-margin,h2.h-has-bottom-margin,h3.h-c-headline--two.h-has-bottom-margin,h4.h-c-headline--two.h-has-bottom-margin{margin-bottom:15px}.h-c-headline.h-c-headline--two.h-has-top-bottom-margin,.landing-tertiary-list__item span.h-c-headline--two.h-has-top-bottom-margin,.products-navigation-list__product span.h-c-headline--two.h-has-top-bottom-margin,h1.h-c-headline--two.h-has-top-bottom-margin,h2.h-has-top-bottom-margin,h3.h-c-headline--two.h-has-top-bottom-margin,h4.h-c-headline--two.h-has-top-bottom-margin{margin-bottom:15px;margin-top:15px}}.h-c-headline.h-c-headline--three,.landing-tertiary-list__item span,.products-navigation-list__product span,h1.h-c-headline--three,h2.h-c-headline--three,h3,h4.h-c-headline--three{line-height:1.4;font-size:20px;letter-spacing:0}.h-c-headline.h-c-headline--three.h-has-top-margin,.landing-tertiary-list__item span.h-has-top-margin,.products-navigation-list__product span.h-has-top-margin,h1.h-c-headline--three.h-has-top-margin,h2.h-c-headline--three.h-has-top-margin,h3.h-has-top-margin,h4.h-c-headline--three.h-has-top-margin{margin-top:14px}.h-c-headline.h-c-headline--three.h-has-bottom-margin,.landing-tertiary-list__item span.h-has-bottom-margin,.products-navigation-list__product span.h-has-bottom-margin,h1.h-c-headline--three.h-has-bottom-margin,h2.h-c-headline--three.h-has-bottom-margin,h3.h-has-bottom-margin,h4.h-c-headline--three.h-has-bottom-margin{margin-bottom:14px}.h-c-headline.h-c-headline--three.h-has-top-bottom-margin,.landing-tertiary-list__item span.h-has-top-bottom-margin,.products-navigation-list__product span.h-has-top-bottom-margin,h1.h-c-headline--three.h-has-top-bottom-margin,h2.h-c-headline--three.h-has-top-bottom-margin,h3.h-has-top-bottom-margin,h4.h-c-headline--three.h-has-top-bottom-margin{margin-bottom:14px;margin-top:14px}@media (min-width:600px){.h-c-headline.h-c-headline--three,.landing-tertiary-list__item span,.products-navigation-list__product span,h1.h-c-headline--three,h2.h-c-headline--three,h3,h4.h-c-headline--three{line-height:1.33333333;font-size:24px;letter-spacing:0}.h-c-headline.h-c-headline--three.h-has-top-margin,.landing-tertiary-list__item span.h-has-top-margin,.products-navigation-list__product span.h-has-top-margin,h1.h-c-headline--three.h-has-top-margin,h2.h-c-headline--three.h-has-top-margin,h3.h-has-top-margin,h4.h-c-headline--three.h-has-top-margin{margin-top:13px}.h-c-headline.h-c-headline--three.h-has-bottom-margin,.landing-tertiary-list__item span.h-has-bottom-margin,.products-navigation-list__product span.h-has-bottom-margin,h1.h-c-headline--three.h-has-bottom-margin,h2.h-c-headline--three.h-has-bottom-margin,h3.h-has-bottom-margin,h4.h-c-headline--three.h-has-bottom-margin{margin-bottom:13px}.h-c-headline.h-c-headline--three.h-has-top-bottom-margin,.landing-tertiary-list__item span.h-has-top-bottom-margin,.products-navigation-list__product span.h-has-top-bottom-margin,h1.h-c-headline--three.h-has-top-bottom-margin,h2.h-c-headline--three.h-has-top-bottom-margin,h3.h-has-top-bottom-margin,h4.h-c-headline--three.h-has-top-bottom-margin{margin-bottom:13px;margin-top:13px}}@media (min-width:1024px){.h-c-headline.h-c-headline--three,.landing-tertiary-list__item span,.products-navigation-list__product span,h1.h-c-headline--three,h2.h-c-headline--three,h3,h4.h-c-headline--three{line-height:1.25;font-size:32px;letter-spacing:0}.h-c-headline.h-c-headline--three.h-has-top-margin,.landing-tertiary-list__item span.h-has-top-margin,.products-navigation-list__product span.h-has-top-margin,h1.h-c-headline--three.h-has-top-margin,h2.h-c-headline--three.h-has-top-margin,h3.h-has-top-margin,h4.h-c-headline--three.h-has-top-margin{margin-top:15px}.h-c-headline.h-c-headline--three.h-has-bottom-margin,.landing-tertiary-list__item span.h-has-bottom-margin,.products-navigation-list__product span.h-has-bottom-margin,h1.h-c-headline--three.h-has-bottom-margin,h2.h-c-headline--three.h-has-bottom-margin,h3.h-has-bottom-margin,h4.h-c-headline--three.h-has-bottom-margin{margin-bottom:15px}.h-c-headline.h-c-headline--three.h-has-top-bottom-margin,.landing-tertiary-list__item span.h-has-top-bottom-margin,.products-navigation-list__product span.h-has-top-bottom-margin,h1.h-c-headline--three.h-has-top-bottom-margin,h2.h-c-headline--three.h-has-top-bottom-margin,h3.h-has-top-bottom-margin,h4.h-c-headline--three.h-has-top-bottom-margin{margin-bottom:15px;margin-top:15px}}.h-c-headline.h-c-headline--four,.landing-tertiary-list__item span.h-c-headline--four,.products-navigation-list__product span.h-c-headline--four,h1.h-c-headline--four,h2.h-c-headline--four,h3.h-c-headline--four,h4{line-height:1.625;font-size:16px;letter-spacing:0}.h-c-headline.h-c-headline--four.h-has-top-margin,.landing-tertiary-list__item span.h-c-headline--four.h-has-top-margin,.products-navigation-list__product span.h-c-headline--four.h-has-top-margin,h1.h-c-headline--four.h-has-top-margin,h2.h-c-headline--four.h-has-top-margin,h3.h-c-headline--four.h-has-top-margin,h4.h-has-top-margin{margin-top:6px}.h-c-headline.h-c-headline--four.h-has-bottom-margin,.landing-tertiary-list__item span.h-c-headline--four.h-has-bottom-margin,.products-navigation-list__product span.h-c-headline--four.h-has-bottom-margin,h1.h-c-headline--four.h-has-bottom-margin,h2.h-c-headline--four.h-has-bottom-margin,h3.h-c-headline--four.h-has-bottom-margin,h4.h-has-bottom-margin{margin-bottom:6px}.h-c-headline.h-c-headline--four.h-has-top-bottom-margin,.landing-tertiary-list__item span.h-c-headline--four.h-has-top-bottom-margin,.products-navigation-list__product span.h-c-headline--four.h-has-top-bottom-margin,h1.h-c-headline--four.h-has-top-bottom-margin,h2.h-c-headline--four.h-has-top-bottom-margin,h3.h-c-headline--four.h-has-top-bottom-margin,h4.h-has-top-bottom-margin{margin-bottom:6px;margin-top:6px}@media (min-width:600px){.h-c-headline.h-c-headline--four,.landing-tertiary-list__item span.h-c-headline--four,.products-navigation-list__product span.h-c-headline--four,h1.h-c-headline--four,h2.h-c-headline--four,h3.h-c-headline--four,h4{line-height:1.625;font-size:16px;letter-spacing:0}.h-c-headline.h-c-headline--four.h-has-top-margin,.landing-tertiary-list__item span.h-c-headline--four.h-has-top-margin,.products-navigation-list__product span.h-c-headline--four.h-has-top-margin,h1.h-c-headline--four.h-has-top-margin,h2.h-c-headline--four.h-has-top-margin,h3.h-c-headline--four.h-has-top-margin,h4.h-has-top-margin{margin-top:6px}.h-c-headline.h-c-headline--four.h-has-bottom-margin,.landing-tertiary-list__item span.h-c-headline--four.h-has-bottom-margin,.products-navigation-list__product span.h-c-headline--four.h-has-bottom-margin,h1.h-c-headline--four.h-has-bottom-margin,h2.h-c-headline--four.h-has-bottom-margin,h3.h-c-headline--four.h-has-bottom-margin,h4.h-has-bottom-margin{margin-bottom:6px}.h-c-headline.h-c-headline--four.h-has-top-bottom-margin,.landing-tertiary-list__item span.h-c-headline--four.h-has-top-bottom-margin,.products-navigation-list__product span.h-c-headline--four.h-has-top-bottom-margin,h1.h-c-headline--four.h-has-top-bottom-margin,h2.h-c-headline--four.h-has-top-bottom-margin,h3.h-c-headline--four.h-has-top-bottom-margin,h4.h-has-top-bottom-margin{margin-bottom:6px;margin-top:6px}}@media (min-width:1024px){.h-c-headline.h-c-headline--four,.landing-tertiary-list__item span.h-c-headline--four,.products-navigation-list__product span.h-c-headline--four,h1.h-c-headline--four,h2.h-c-headline--four,h3.h-c-headline--four,h4{line-height:1.36363636;font-size:22px;letter-spacing:0}.h-c-headline.h-c-headline--four.h-has-top-margin,.landing-tertiary-list__item span.h-c-headline--four.h-has-top-margin,.products-navigation-list__product span.h-c-headline--four.h-has-top-margin,h1.h-c-headline--four.h-has-top-margin,h2.h-c-headline--four.h-has-top-margin,h3.h-c-headline--four.h-has-top-margin,h4.h-has-top-margin{margin-top:12px}.h-c-headline.h-c-headline--four.h-has-bottom-margin,.landing-tertiary-list__item span.h-c-headline--four.h-has-bottom-margin,.products-navigation-list__product span.h-c-headline--four.h-has-bottom-margin,h1.h-c-headline--four.h-has-bottom-margin,h2.h-c-headline--four.h-has-bottom-margin,h3.h-c-headline--four.h-has-bottom-margin,h4.h-has-bottom-margin{margin-bottom:12px}.h-c-headline.h-c-headline--four.h-has-top-bottom-margin,.landing-tertiary-list__item span.h-c-headline--four.h-has-top-bottom-margin,.products-navigation-list__product span.h-c-headline--four.h-has-top-bottom-margin,h1.h-c-headline--four.h-has-top-bottom-margin,h2.h-c-headline--four.h-has-top-bottom-margin,h3.h-c-headline--four.h-has-top-bottom-margin,h4.h-has-top-bottom-margin{margin-bottom:12px;margin-top:12px}}.h-c-headline.h-c-headline--subhead,.landing-tertiary-list__item span.h-c-headline--subhead,.products-navigation-list__product span.h-c-headline--subhead,h1.h-c-headline--subhead,h2.h-c-headline--subhead,h3.h-c-headline--subhead,h4.h-c-headline--subhead{line-height:1.625;font-size:16px;letter-spacing:0}.h-c-headline.h-c-headline--subhead.h-has-top-margin,.landing-tertiary-list__item span.h-c-headline--subhead.h-has-top-margin,.products-navigation-list__product span.h-c-headline--subhead.h-has-top-margin,h1.h-c-headline--subhead.h-has-top-margin,h2.h-c-headline--subhead.h-has-top-margin,h3.h-c-headline--subhead.h-has-top-margin,h4.h-c-headline--subhead.h-has-top-margin{margin-top:6px}.h-c-headline.h-c-headline--subhead.h-has-bottom-margin,.landing-tertiary-list__item span.h-c-headline--subhead.h-has-bottom-margin,.products-navigation-list__product span.h-c-headline--subhead.h-has-bottom-margin,h1.h-c-headline--subhead.h-has-bottom-margin,h2.h-c-headline--subhead.h-has-bottom-margin,h3.h-c-headline--subhead.h-has-bottom-margin,h4.h-c-headline--subhead.h-has-bottom-margin{margin-bottom:6px}.h-c-headline.h-c-headline--subhead.h-has-top-bottom-margin,.landing-tertiary-list__item span.h-c-headline--subhead.h-has-top-bottom-margin,.products-navigation-list__product span.h-c-headline--subhead.h-has-top-bottom-margin,h1.h-c-headline--subhead.h-has-top-bottom-margin,h2.h-c-headline--subhead.h-has-top-bottom-margin,h3.h-c-headline--subhead.h-has-top-bottom-margin,h4.h-c-headline--subhead.h-has-top-bottom-margin{margin-bottom:6px;margin-top:6px}@media (min-width:600px){.h-c-headline.h-c-headline--subhead,.landing-tertiary-list__item span.h-c-headline--subhead,.products-navigation-list__product span.h-c-headline--subhead,h1.h-c-headline--subhead,h2.h-c-headline--subhead,h3.h-c-headline--subhead,h4.h-c-headline--subhead{line-height:1.625;font-size:16px;letter-spacing:0}.h-c-headline.h-c-headline--subhead.h-has-top-margin,.landing-tertiary-list__item span.h-c-headline--subhead.h-has-top-margin,.products-navigation-list__product span.h-c-headline--subhead.h-has-top-margin,h1.h-c-headline--subhead.h-has-top-margin,h2.h-c-headline--subhead.h-has-top-margin,h3.h-c-headline--subhead.h-has-top-margin,h4.h-c-headline--subhead.h-has-top-margin{margin-top:6px}.h-c-headline.h-c-headline--subhead.h-has-bottom-margin,.landing-tertiary-list__item span.h-c-headline--subhead.h-has-bottom-margin,.products-navigation-list__product span.h-c-headline--subhead.h-has-bottom-margin,h1.h-c-headline--subhead.h-has-bottom-margin,h2.h-c-headline--subhead.h-has-bottom-margin,h3.h-c-headline--subhead.h-has-bottom-margin,h4.h-c-headline--subhead.h-has-bottom-margin{margin-bottom:6px}.h-c-headline.h-c-headline--subhead.h-has-top-bottom-margin,.landing-tertiary-list__item span.h-c-headline--subhead.h-has-top-bottom-margin,.products-navigation-list__product span.h-c-headline--subhead.h-has-top-bottom-margin,h1.h-c-headline--subhead.h-has-top-bottom-margin,h2.h-c-headline--subhead.h-has-top-bottom-margin,h3.h-c-headline--subhead.h-has-top-bottom-margin,h4.h-c-headline--subhead.h-has-top-bottom-margin{margin-bottom:6px;margin-top:6px}}@media (min-width:1024px){.h-c-headline.h-c-headline--subhead,.landing-tertiary-list__item span.h-c-headline--subhead,.products-navigation-list__product span.h-c-headline--subhead,h1.h-c-headline--subhead,h2.h-c-headline--subhead,h3.h-c-headline--subhead,h4.h-c-headline--subhead{line-height:1.66666667;font-size:18px;letter-spacing:0}.h-c-headline.h-c-headline--subhead.h-has-top-margin,.landing-tertiary-list__item span.h-c-headline--subhead.h-has-top-margin,.products-navigation-list__product span.h-c-headline--subhead.h-has-top-margin,h1.h-c-headline--subhead.h-has-top-margin,h2.h-c-headline--subhead.h-has-top-margin,h3.h-c-headline--subhead.h-has-top-margin,h4.h-c-headline--subhead.h-has-top-margin{margin-top:12px}.h-c-headline.h-c-headline--subhead.h-has-bottom-margin,.landing-tertiary-list__item span.h-c-headline--subhead.h-has-bottom-margin,.products-navigation-list__product span.h-c-headline--subhead.h-has-bottom-margin,h1.h-c-headline--subhead.h-has-bottom-margin,h2.h-c-headline--subhead.h-has-bottom-margin,h3.h-c-headline--subhead.h-has-bottom-margin,h4.h-c-headline--subhead.h-has-bottom-margin{margin-bottom:12px}.h-c-headline.h-c-headline--subhead.h-has-top-bottom-margin,.landing-tertiary-list__item span.h-c-headline--subhead.h-has-top-bottom-margin,.products-navigation-list__product span.h-c-headline--subhead.h-has-top-bottom-margin,h1.h-c-headline--subhead.h-has-top-bottom-margin,h2.h-c-headline--subhead.h-has-top-bottom-margin,h3.h-c-headline--subhead.h-has-top-bottom-margin,h4.h-c-headline--subhead.h-has-top-bottom-margin{margin-bottom:12px;margin-top:12px}}.h-c-eyebrow{line-height:1.5;color:#202124;font-family:Google Sans,Roboto,Arial,Helvetica,sans-serif;font-size:12px;font-weight:500;letter-spacing:1.25px;text-transform:uppercase}.h-c-eyebrow.h-has-top-margin{margin-top:5px}.h-c-eyebrow.h-has-bottom-margin{margin-bottom:5px}.h-c-eyebrow.h-has-top-bottom-margin{margin-bottom:5px;margin-top:5px}@media (min-width:1024px){.h-c-eyebrow{line-height:1.57142857;font-size:14px;letter-spacing:1.5px}.h-c-eyebrow.h-has-top-margin{margin-top:5px}.h-c-eyebrow.h-has-bottom-margin{margin-bottom:5px}.h-c-eyebrow.h-has-top-bottom-margin{margin-bottom:5px;margin-top:5px}}.h-c-footnote{line-height:1.5;color:#202124;font-size:12px;font-weight:400;letter-spacing:.35px}.h-c-footnote.h-has-top-margin{margin-top:5px}.h-c-footnote.h-has-bottom-margin{margin-bottom:5px}.h-c-footnote.h-has-top-bottom-margin{margin-bottom:5px;margin-top:5px}@media (min-width:1024px){.h-c-footnote.h-has-top-margin{margin-top:9px}.h-c-footnote.h-has-bottom-margin{margin-bottom:9px}.h-c-footnote.h-has-top-bottom-margin{margin-bottom:9px;margin-top:9px}}.h-c-tip{cursor:help;font-style:italic}.glue-app-ready .h-c-modal{position:fixed;z-index:9999}.glue-app-ready .h-c-modal__content{overflow:hidden}.glue-app-ready .h-c-modal__overlay{background-color:#fff;display:none;height:100%;padding:20px}.glue-app-ready .h-c-modal--video .h-c-modal__overlay{background:#000;padding:48px}.glue-app-ready .h-c-modal--video .h-c-modal__close{background-color:hsla(0,0%,100%,.2);color:#fff}.glue-app-ready .h-c-modal__close{background-color:#f1f3f4;border-radius:0;color:#202124;font-size:44px;height:48px;padding:12px;width:48px}.glue-app-ready .h-c-modal__close>svg{display:block}.glue-app-ready .h-c-modal__close:focus,.glue-app-ready .h-c-modal__close:hover{background-color:#e8eaed;color:#174ea6;outline:none}html[dir=rtl] .h-c-modal__close{left:0;right:auto}.h-c-video{font-size:19px;position:relative}.h-c-video:focus{outline:none}.h-c-video:focus:after{background-color:transparent;border:4px solid #174ea6;content:"";display:block;height:100%;left:0;position:absolute;top:0;width:100%;z-index:5}.h-c-video.h-c-video--marquee{cursor:pointer;display:block}.h-c-video.h-c-video--inline{cursor:pointer;display:inline-block;max-width:100%}.h-c-video img{width:100%;z-index:10}.h-c-video__play{left:50%;height:60px;margin:-30px -42px 0;position:absolute;top:50%;width:84px;z-index:15}.h-c-video__play.h-c-video__play--inline{height:48px;margin:-24px -34px 0;width:68px}.h-c-video__image{margin-right:10px;height:20px;width:28px}.h-c-tile-set{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;list-style:none;margin:0 -4px}.h-c-tile-set:after{content:"";display:table;clear:both}[dir=rtl] .h-c-tile-set{margin:0 -4px}@media (min-width:600px){.h-c-tile-set,[dir=rtl] .h-c-tile-set{margin:0 -8.5px}}@media (min-width:1024px){.h-c-tile-set,[dir=rtl] .h-c-tile-set{margin:0 -13.5px}}.h-c-tile-set>li{-webkit-box-flex:0;-ms-flex:0 0 270px;flex:0 0 270px;float:left;margin:0 4px 20px;width:270px}@media (min-width:600px){.h-c-tile-set>li{margin:0 8.5px 20px}}@media (min-width:1024px){.h-c-tile-set>li{-webkit-box-flex:0;-ms-flex:0 0 300px;flex:0 0 300px;margin:0 13.5px 20px;width:300px}}.h-c-tile{background:#fff;display:block;max-height:100%;min-height:380px;padding:0 0 24px;position:relative;width:270px}@media (min-width:1024px){.h-c-tile{min-height:430px;width:300px}}.h-c-tile.h-c-tile--border{border:1px solid #dadce0}.h-c-tile.h-c-tile--small-height{min-height:340px}@media (min-width:1024px){.h-c-tile.h-c-tile--small-height{min-height:380px}}.h-c-tile:focus{background:#f1f3f4;border-color:#f1f3f4;outline:none}.h-c-tile .h-c-tile__header{min-height:153px;position:relative}@media (min-width:1024px){.h-c-tile .h-c-tile__header{min-height:170px}}.h-c-tile .h-c-tile__header--icon{min-height:110px;overflow:hidden;padding:24px}@media (min-width:1024px){.h-c-tile .h-c-tile__header--icon{min-height:118px}}.h-c-tile .h-c-tile__icon{height:48px}.h-c-tile .h-c-tile__header-play-icon{height:36px;left:50%;margin:-18px -25px 0;position:absolute;top:50%;width:50px}.h-c-tile .h-c-tile__body{padding:0 24px}.h-c-tile .h-c-tile__headline{line-height:1.625;color:#202124;font-family:Google Sans,Roboto,Arial,Helvetica,sans-serif;font-size:16px;font-weight:500;margin-top:30px}@media (min-width:1024px){.h-c-tile .h-c-tile__headline{line-height:1.66666667;font-size:18px;margin-top:32px}}.h-c-tile .h-c-tile__description{line-height:1.71428571;color:#202124;font-size:14px;margin:5px 0 24px;letter-spacing:.25px}@media (min-width:1024px){.h-c-tile .h-c-tile__description{line-height:1.625;font-size:16px;margin-top:5px;letter-spacing:0}}.h-c-tile .h-c-tile__links{bottom:24px;display:block;font-weight:400;height:16px;left:0;list-style-type:none;margin:0;position:absolute;width:100%}[dir=rtl] .h-c-tile .h-c-tile__links{left:auto;margin:0;right:0}@media (min-width:1024px){.h-c-tile .h-c-tile__links{height:18px}}.h-c-tile .h-c-tile__link{line-height:1.14285714;font-size:14px;margin-left:24px}@media (min-width:1024px){.h-c-tile .h-c-tile__link{line-height:1.125;font-size:16px}}[dir=rtl] .h-c-tile .h-c-tile__link{margin-left:0;margin-right:24px}.h-c-tile .h-c-tile__link.h-c-tile__link--text{float:left}[dir=rtl] .h-c-tile .h-c-tile__link.h-c-tile__link--text{float:right}.h-c-tile .h-c-tile__link.h-c-tile__link--text .h-c-link{color:#1a73e8;font-family:Google Sans,Roboto,Arial,Helvetica,sans-serif;font-size:14px;font-weight:500;letter-spacing:.75px;text-transform:none}@media (min-width:1024px){.h-c-tile .h-c-tile__link.h-c-tile__link--text .h-c-link{font-size:16px;letter-spacing:.5px}}.h-c-tile .h-c-tile__link.h-c-tile__link--text .h-c-link:focus,.h-c-tile .h-c-tile__link.h-c-tile__link--text .h-c-link:hover{color:#174ea6}.h-c-tile .h-c-tile__link.h-c-tile__link--text .h-c-link:focus{background:#f1f3f4;outline:10px solid #f1f3f4}.h-c-tile .h-c-tile__link.h-c-tile__link--arrow{fill:#1a73e8;float:right;height:16px;margin:0 24px;right:24px;width:16px}[dir=rtl] .h-c-tile .h-c-tile__link.h-c-tile__link--arrow{float:left;left:24px;right:auto;-webkit-transform:rotate(180deg);transform:rotate(180deg)}@media (min-width:1024px){.h-c-tile .h-c-tile__link.h-c-tile__link--arrow{height:18px;width:18px}}.h-c-tile.h-c-tile--hoverable:focus .h-c-tile__link .h-c-link,.h-c-tile.h-c-tile--hoverable:hover .h-c-tile__link .h-c-link{color:#174ea6}.h-c-tile.h-c-tile--hoverable:focus .h-c-tile__link .h-c-tile__link--arrow,.h-c-tile.h-c-tile--hoverable:hover .h-c-tile__link .h-c-tile__link--arrow{fill:#174ea6} .h-c-button{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;border:none;border-radius:2px;display:inline-block;font-family:Google Sans,Roboto,Arial,Helvetica,sans-serif;font-size:14px;font-weight:500;height:46px;line-height:1;letter-spacing:.75px;margin:8px 0;padding:15px 24px;-webkit-transition:color .15s linear,background-color .15s linear;transition:color .15s linear,background-color .15s linear;vertical-align:middle}@media (min-width:1024px){.h-c-button{font-size:16px;letter-spacing:.5px;line-height:.9;padding:17px 24px}}.h-c-button:focus{outline:none;-webkit-transition:none;transition:none}.h-c-button.h-c-button--primary{background-color:#1a73e8;color:#fff}@media screen and (-ms-high-contrast:active){.h-c-button.h-c-button--primary{background:ButtonFace;border-color:1px solid ButtonHighlight}}.h-c-button.h-c-button--primary:visited{background-color:#1a73e8;color:#fff}.h-c-button.h-c-button--primary[disabled],.h-c-button.h-c-button--primary[disabled]:hover{background-color:#dadce0}.h-c-button.h-c-button--primary:focus,.h-c-button.h-c-button--primary:hover{background-color:#174ea6;color:#fff}.h-c-button.h-c-button--primary.h-c-button--green,.h-c-button.h-c-button--primary.h-c-button--green:visited{background-color:#188038}.h-c-button.h-c-button--primary.h-c-button--green[disabled],.h-c-button.h-c-button--primary.h-c-button--green[disabled]:hover{background-color:#dadce0}.h-c-button.h-c-button--primary.h-c-button--green:focus,.h-c-button.h-c-button--primary.h-c-button--green:hover{background-color:#0d652d}.h-c-button.h-c-button--primary.h-c-button--reversed{background-color:transparent;border:2px solid #fff;color:#fff;padding:13px 23px}.h-c-button.h-c-button--primary.h-c-button--reversed:visited{background-color:transparent}.h-c-button.h-c-button--primary.h-c-button--reversed[disabled],.h-c-button.h-c-button--primary.h-c-button--reversed[disabled]:hover{background-color:#dadce0;border-color:#dadce0;color:#fff}.h-c-button.h-c-button--primary.h-c-button--reversed:focus,.h-c-button.h-c-button--primary.h-c-button--reversed:hover{background-color:#fff;color:#202124}@media (min-width:1024px){.h-c-button.h-c-button--primary.h-c-button--reversed{padding:15px 23px}}.h-c-button.h-c-button--secondary,.h-c-button.h-c-button--secondary:visited{background-color:#f1f3f4;color:#202124}.h-c-button.h-c-button--secondary[disabled],.h-c-button.h-c-button--secondary[disabled]:hover{background-color:#dadce0;color:#fff}.h-c-button.h-c-button--secondary:focus,.h-c-button.h-c-button--secondary:hover{background-color:#e8eaed;color:#174ea6}.h-c-button.h-c-button--flat{line-height:1.42857143;background-color:transparent;border-radius:0;color:#1a73e8;height:auto;margin:0;padding:0}.h-c-button.h-c-button--flat:visited{background-color:transparent;color:#7b1fa2}.h-c-button.h-c-button--flat[disabled],.h-c-button.h-c-button--flat[disabled]:hover{color:#9aa0a6}.h-c-button.h-c-button--flat:hover{background-color:transparent;color:#174ea6}.h-c-button.h-c-button--flat:focus{color:#174ea6;background:#f1f3f4;outline:10px solid #f1f3f4}@media (min-width:1024px){.h-c-button.h-c-button--flat{line-height:1.375}}.h-c-button.h-c-button--full-bleed{border-radius:0;height:56px;padding:20px 23px}@media (min-width:1024px){.h-c-button.h-c-button--full-bleed{height:64px;padding:22px 23px}}.h-c-button.h-c-button[data-glue-ripple],.h-c-button.h-c-button[glue-ripple]{position:relative}.glue-zippy-set.h-t-hercules{color:#414141}.glue-zippy-set.h-t-hercules:after{content:"";display:table;clear:both}@media (min-width:600px){.glue-zippy-set.h-t-hercules{margin-top:20px}}.glue-zippy-set.h-t-hercules .h-c-eyebrow{color:#202124;display:block;font-family:Google Sans,Roboto,Arial,Helvetica,sans-serif;font-size:12px;font-weight:500;letter-spacing:1.25px}@media (min-width:600px){.glue-zippy-set.h-t-hercules .h-c-eyebrow{float:left}[dir=rtl] .glue-zippy-set.h-t-hercules .h-c-eyebrow{float:right}}@media (min-width:1024px){.glue-zippy-set.h-t-hercules .h-c-eyebrow{font-size:14px;letter-spacing:1.5px}}.glue-zippy-set.h-t-hercules .glue-zippy-toggle-all{color:#1a73e8;cursor:pointer;float:right;font-size:0;margin-bottom:20px;margin-top:20px}[dir=rtl] .glue-zippy-set.h-t-hercules .glue-zippy-toggle-all{float:left}.glue-zippy-set.h-t-hercules .glue-zippy-toggle-all:focus,.glue-zippy-set.h-t-hercules .glue-zippy-toggle-all:hover{color:#174ea6}.glue-zippy-set.h-t-hercules .glue-zippy-toggle-all:focus{background:#f1f3f4;outline:10px solid #f1f3f4}@media (min-width:600px){.glue-zippy-set.h-t-hercules .glue-zippy-toggle-all{margin-top:0}}.glue-zippy-set.h-t-hercules .h-c-expansion-panels__toggle-text{display:none;font-family:Google Sans,Roboto,Arial,Helvetica,sans-serif;font-size:14px;font-weight:500;letter-spacing:.75px;margin:0 10px 0 0;text-align:right;vertical-align:middle}.glue-app-ready .glue-zippy-set.h-t-hercules .h-c-expansion-panels__toggle-text,.glue-app-supported .glue-zippy-set.h-t-hercules .h-c-expansion-panels__toggle-text{display:inline-block}[dir=rtl] .glue-zippy-set.h-t-hercules .h-c-expansion-panels__toggle-text{margin:0 0 0 10px;text-align:left}.glue-app-ready .glue-zippy-set.h-t-hercules .h-c-expansion-panels__toggle-text.h-c-expansion-panels__toggle-text--collapsed,.glue-app-supported .glue-zippy-set.h-t-hercules .h-c-expansion-panels__toggle-text.h-c-expansion-panels__toggle-text--collapsed{display:none}@media (min-width:1024px){.glue-zippy-set.h-t-hercules .h-c-expansion-panels__toggle-text{font-size:16px;letter-spacing:.5px}}.glue-zippy-set.h-t-hercules.glue-is-expanded .h-c-expansion-panels__toggle-text.h-c-expansion-panels__toggle-text--expanded{display:none}.glue-zippy-set.h-t-hercules.glue-is-expanded .h-c-expansion-panels__toggle-text.h-c-expansion-panels__toggle-text--collapsed{display:inline-block}.glue-zippy-set.h-t-hercules .h-c-expansion-panels__toggle-circle{cursor:pointer;display:none;fill:currentColor;height:16px;-webkit-transform-origin:center;transform-origin:center;-webkit-transition:-webkit-transform .3s ease-out;transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;vertical-align:middle;width:16px}@media (min-width:1024px){.glue-zippy-set.h-t-hercules .h-c-expansion-panels__toggle-circle{height:18px;width:18px}}.glue-app-ready .glue-zippy-set.h-t-hercules .h-c-expansion-panels__toggle-circle,.glue-app-supported .glue-zippy-set.h-t-hercules .h-c-expansion-panels__toggle-circle{display:inline-block}.glue-zippy-set.h-t-hercules.glue-is-expanded .h-c-expansion-panels__toggle-circle{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.glue-zippy-set.h-t-hercules .h-c-expansion-panels__list{clear:both;list-style:none;margin-left:0}[dir=rtl] .glue-zippy-set.h-t-hercules .h-c-expansion-panels__list{margin-right:0}.glue-zippy-set.h-t-hercules .glue-zippy{border-top:1px solid #dadce0}.glue-zippy-set.h-t-hercules .glue-is-expanded .glue-zippy-btn{border-bottom:1px solid #dadce0}.glue-zippy-set.h-t-hercules .glue-zippy-btn{border-bottom:1px solid transparent;padding:24px 0 23px}.glue-zippy-set.h-t-hercules .glue-zippy-btn:after{content:"";display:table;clear:both}@media (min-width:1024px){.glue-zippy-set.h-t-hercules .glue-zippy-btn{padding:30px 0 29px}}.glue-app-ready .glue-zippy-set.h-t-hercules .glue-zippy-btn:focus .h-c-expansion-panels__button-header,.glue-app-ready .glue-zippy-set.h-t-hercules .glue-zippy-btn:hover .h-c-expansion-panels__button-header,.glue-app-supported .glue-zippy-set.h-t-hercules .glue-zippy-btn:focus .h-c-expansion-panels__button-header,.glue-app-supported .glue-zippy-set.h-t-hercules .glue-zippy-btn:hover .h-c-expansion-panels__button-header{color:#174ea6}.glue-app-ready .glue-zippy-set.h-t-hercules .glue-zippy-btn:focus .h-c-expansion-panels__button-arrow,.glue-app-ready .glue-zippy-set.h-t-hercules .glue-zippy-btn:hover .h-c-expansion-panels__button-arrow,.glue-app-supported .glue-zippy-set.h-t-hercules .glue-zippy-btn:focus .h-c-expansion-panels__button-arrow,.glue-app-supported .glue-zippy-set.h-t-hercules .glue-zippy-btn:hover .h-c-expansion-panels__button-arrow{fill:#174ea6}.glue-zippy-set.h-t-hercules .glue-zippy-btn:focus{border-bottom:2px solid #174ea6;outline:none;padding-bottom:22px}@media (min-width:1024px){.glue-zippy-set.h-t-hercules .glue-zippy-btn:focus{padding-bottom:28px}}.glue-zippy-set.h-t-hercules .h-c-expansion-panels__button-header{line-height:1.625;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;float:left;font-family:Google Sans,Roboto,Arial,Helvetica,sans-serif;font-size:16px;font-weight:500;margin-right:20px}.glue-app-ready .glue-zippy-set.h-t-hercules .h-c-expansion-panels__button-header,.glue-app-supported .glue-zippy-set.h-t-hercules .h-c-expansion-panels__button-header{color:#1a73e8}[dir=rtl] .glue-zippy-set.h-t-hercules .h-c-expansion-panels__button-header{float:right;margin-right:0;margin-left:20px}.glue-zippy-set.h-t-hercules .h-c-expansion-panels__button-header:hover{color:#174ea6}@media (min-width:1024px){.glue-zippy-set.h-t-hercules .h-c-expansion-panels__button-header{line-height:1.66666667;font-size:18px}}.glue-zippy-set.h-t-hercules .h-c-expansion-panels__button-arrow{display:none;fill:#1a73e8;float:right;height:17px;margin-right:5px;margin-top:3px;-webkit-transition:-webkit-transform .3s ease-out;transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;width:17px}.glue-app-ready .glue-zippy-set.h-t-hercules .h-c-expansion-panels__button-arrow,.glue-app-supported .glue-zippy-set.h-t-hercules .h-c-expansion-panels__button-arrow{display:block}[dir=rtl] .glue-zippy-set.h-t-hercules .h-c-expansion-panels__button-arrow{float:left}@media (min-width:1024px){.glue-zippy-set.h-t-hercules .h-c-expansion-panels__button-arrow{margin-top:5px}}.glue-zippy-set.h-t-hercules .glue-is-expanded .h-c-expansion-panels__button-arrow{-webkit-transform:rotate(180deg);transform:rotate(180deg);-webkit-transition:-webkit-transform .3s ease-out;transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out}.glue-zippy-set.h-t-hercules .glue-zippy-content{line-height:1.71428571;color:#202124;font-size:14px;letter-spacing:.25px}.glue-app-supported .glue-zippy-set.h-t-hercules .glue-zippy-content{height:0;opacity:0}.glue-app-ready .glue-zippy-set.h-t-hercules .glue-zippy-content{display:block;height:auto;opacity:1}@media (min-width:1024px){.glue-zippy-set.h-t-hercules .glue-zippy-content{line-height:1.625;font-size:16px;letter-spacing:0}}.glue-zippy-set.h-t-hercules .glue-c-zippy__content-container{padding:10px 0 24px}@media (min-width:600px){.glue-zippy-set.h-t-hercules .glue-c-zippy__content-container{padding:14px 44px 24px 0}[dir=rtl] .glue-zippy-set.h-t-hercules .glue-c-zippy__content-container{padding:14px 0 24px 44px}}@media (min-width:1024px){.glue-zippy-set.h-t-hercules .glue-c-zippy__content-container{padding:18px 56px 30px 0}[dir=rtl] .glue-zippy-set.h-t-hercules .glue-c-zippy__content-container{padding:18px 0 30px 56px}} .h-c-carousel{margin:0 auto;position:relative}.h-c-carousel .glue-carousel{list-style:none;margin:0;padding:0}.h-c-carousel .glue-carousel:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.h-c-carousel .glue-o-pagination__button{-webkit-appearance:none;background:none;border:0;cursor:pointer;display:block;font:inherit;outline:none;padding:0}.h-c-carousel .glue-o-pagination__button:active>*,.h-c-carousel .glue-o-pagination__button:focus>*{left:0;position:relative;top:0}.h-c-carousel__wrap{overflow:hidden;position:relative}.h-c-carousel__item img{-webkit-user-drag:none;user-drag:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;user-select:none}.glue-carousel.glue-is-measuring{position:relative}.glue-carousel.glue-is-measuring .h-c-carousel__item:nth-child(n+2){position:absolute;top:0;z-index:-1}.glue-touch .h-c-carousel__paginate{display:none!important} .glue-app-ready .h-c-carousel .glue-carousel{cursor:grab;cursor:-webkit-grab;width:10000px}.glue-app-ready .h-c-carousel .glue-carousel.glue-is-swiping{cursor:grabbing;cursor:-webkit-grabbing}.glue-app-ready .h-c-carousel__item,.glue-app-supported .h-c-carousel__item{float:left;width:100%}[dir=rtl].glue-app-ready .h-c-carousel__item,[dir=rtl] .glue-app-ready .h-c-carousel__item,[dir=rtl].glue-app-supported .h-c-carousel__item,[dir=rtl] .glue-app-supported .h-c-carousel__item{float:right} .h-c-carousel__paginate{display:none;margin:-33px 0 0;position:absolute;top:50%}.glue-app-ready .h-c-carousel__paginate,.glue-app-supported .h-c-carousel__paginate{display:block}.h-c-carousel__paginate.glue-pagination-previous,[dir=rtl] .h-c-carousel__paginate.glue-pagination-next{left:30px;right:auto}.h-c-carousel__paginate.glue-pagination-previous .h-c-carousel__paginate-wrap,[dir=rtl] .h-c-carousel__paginate.glue-pagination-next .h-c-carousel__paginate-wrap{padding:0 4px 0 0}.h-c-carousel__paginate.glue-pagination-next,[dir=rtl] .h-c-carousel__paginate.glue-pagination-previous{left:auto;right:30px}.h-c-carousel__paginate.glue-pagination-next .h-c-carousel__paginate-wrap,[dir=rtl] .h-c-carousel__paginate.glue-pagination-previous .h-c-carousel__paginate-wrap{padding:0 0 0 4px}.h-c-carousel__paginate-wrap{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;height:65px;width:65px}.h-c-carousel__paginate-wrap svg{margin:0 auto;height:36px;position:relative;stroke:#414141;stroke-width:1px;width:36px}@media screen and (-ms-high-contrast:active){.h-c-carousel__paginate-wrap svg{stroke:buttonText}}.h-c-carousel__paginate-wrap:before{background:#fff;border-radius:50%;content:"";display:block;height:65px;left:0;opacity:.6;position:absolute;top:0;width:65px}@media screen and (-ms-high-contrast:active){.h-c-carousel__paginate-wrap:before{border:1px solid buttonText}}.glue-o-pagination__button:hover .h-c-carousel__paginate-wrap:before{-webkit-box-shadow:0 2px 4px 0 rgba(0,0,0,.12);box-shadow:0 2px 4px 0 rgba(0,0,0,.12);opacity:1}.glue-o-pagination__button:focus .h-c-carousel__paginate-wrap:before{border:2px solid #174ea6;opacity:1}.glue-o-pagination__button:disabled{visibility:hidden} .h-c-carousel--simple .h-c-carousel__wrap{margin:0 -16px}.h-c-carousel--simple .h-c-carousel__item{float:none;margin:0 auto;width:calc(100% - 32px)}.glue-app-ready .h-c-carousel--simple .h-c-carousel__item,.glue-app-supported .h-c-carousel--simple .h-c-carousel__item{padding:0 4px;width:calc(100% - 40px)}.glue-app-ready .h-c-carousel--simple .h-c-carousel__item{float:left}[dir=rtl].glue-app-ready .h-c-carousel--simple .h-c-carousel__item{float:right}@media (min-width:600px){.h-c-carousel--simple{margin:0 -1.03799452%}.h-c-carousel--simple .h-c-carousel__wrap{-ms-flex-preferred-size:81.2573443%;flex-basis:81.2573443%;width:81.2573443%;margin-left:9.37132785%;margin-right:1.03799452%}[dir=rtl] .h-c-carousel--simple .h-c-carousel__wrap{margin-left:1.03799452%;margin-right:9.37132785%}.glue-app-ready .h-c-carousel--simple .h-c-carousel__item,.glue-app-supported .h-c-carousel--simple .h-c-carousel__item,.h-c-carousel--simple .h-c-carousel__item{padding:0;width:100%}} .h-c-carousel--simple-full-bleed .h-c-carousel__wrap{width:auto}.h-c-carousel--simple-full-bleed .h-c-carousel__wrap,[dir=rtl] .h-c-carousel--simple-full-bleed .h-c-carousel__wrap{margin-left:0;margin-right:0}.glue-app-ready .h-c-carousel--simple-full-bleed .h-c-carousel__item,.glue-app-supported .h-c-carousel--simple-full-bleed .h-c-carousel__item,.h-c-carousel--simple-full-bleed .h-c-carousel__item{padding:0;width:100%}.h-c-carousel--detailed,.h-c-carousel--thumbnail{overflow:hidden}.h-c-carousel--detailed,.h-c-carousel--simple-full-bleed,.h-c-carousel--thumbnail{margin:0 -16px}@media (min-width:600px){.h-c-carousel--detailed,.h-c-carousel--simple-full-bleed,.h-c-carousel--thumbnail{margin:0 -32px}} .glue-app-supported .h-c-carousel--detailed .h-c-carousel__item,.glue-app-supported .h-c-carousel--simple-full-bleed .h-c-carousel__item,.glue-app-supported .h-c-carousel--simple .h-c-carousel__item,.glue-app-supported .h-c-carousel--thumbnail .h-c-carousel__item{display:none}.glue-app-supported .h-c-carousel--detailed .h-c-carousel__item:first-child,.glue-app-supported .h-c-carousel--simple-full-bleed .h-c-carousel__item:first-child,.glue-app-supported .h-c-carousel--simple .h-c-carousel__item:first-child,.glue-app-supported .h-c-carousel--thumbnail .h-c-carousel__item:first-child{display:block} .h-c-carousel__navigation{-webkit-box-align:center;-ms-flex-align:center;align-items:center;bottom:-30px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;position:absolute;width:100% }.h-c-carousel--simple-full-bleed .h-c-carousel__navigation,.h-c-carousel--thumbnail .h-c-carousel__navigation{bottom:30px}@media (min-width:600px){.h-c-carousel--simple-full-bleed .h-c-carousel__navigation,.h-c-carousel--thumbnail .h-c-carousel__navigation{bottom:50px}}.h-c-carousel--detailed .h-c-carousel__navigation{bottom:0;height:70px}@media (min-width:600px){.h-c-carousel--detailed .h-c-carousel__navigation{height:110px}} .h-c-carousel__navigation .glue-pagination-page-list{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;margin:0;padding:0}.h-c-carousel__navigation .glue-pagination-page-list .glue-o-pagination__button,.h-c-carousel__navigation .glue-pagination-page-list .glue-o-pagination__button-container{height:18px}.h-c-carousel__navigation .glue-pagination-page-list .glue-o-pagination__button{-webkit-appearance:none;background:none;border-radius:0;cursor:pointer;height:18px;padding:0;position:relative;text-indent:-9999px;width:18px}.h-c-carousel__navigation .glue-pagination-page-list .glue-o-pagination__button:before{border:1px solid #202124;border-radius:50%;content:"";display:block;height:10px;left:4px;position:absolute;top:4px;width:10px}.h-c-carousel__navigation .glue-pagination-page-list .glue-o-pagination__button:focus{background:#f1f3f4}.h-c-carousel__navigation .glue-pagination-page-list .active .glue-o-pagination__button:before{background:#202124}@media screen and (-ms-high-contrast:active){.h-c-carousel__navigation .glue-pagination-page-list .active .glue-o-pagination__button:before{background:buttonText}} .h-c-carousel--detailed .h-c-carousel__navigation{display:-webkit-box;display:-ms-flexbox;display:flex;font-size:14px;letter-spacing:.25px;padding:0 16px}.h-c-carousel--detailed .h-c-carousel__paginate-labelled{display:none;-webkit-box-flex:1;-ms-flex:1 1 0px;flex:1 1 0;font-family:Google Sans,Roboto,Arial,Helvetica,sans-serif;font-weight:500;letter-spacing:.75px}@media (min-width:1024px){.h-c-carousel--detailed .h-c-carousel__paginate-labelled{letter-spacing:.5px}}.h-c-carousel--detailed .h-c-carousel__paginate-labelled svg{-ms-flex-negative:0;flex-shrink:0;stroke:#414141}@media screen and (-ms-high-contrast:active){.h-c-carousel--detailed .h-c-carousel__paginate-labelled svg{stroke:buttonText}}.h-c-carousel--detailed .h-c-carousel__paginate-labelled .glue-o-pagination__button{-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-radius:0;color:#202124;display:-webkit-box;display:-ms-flexbox;display:flex;letter-spacing:inherit;padding:10px}.h-c-carousel--detailed .h-c-carousel__paginate-labelled .glue-o-pagination__button:focus,.h-c-carousel--detailed .h-c-carousel__paginate-labelled .glue-o-pagination__button:hover{color:#174ea6}.h-c-carousel--detailed .h-c-carousel__paginate-labelled .glue-o-pagination__button:focus svg,.h-c-carousel--detailed .h-c-carousel__paginate-labelled .glue-o-pagination__button:hover svg{stroke:#174ea6}.h-c-carousel--detailed .h-c-carousel__paginate-labelled .glue-o-pagination__button:focus{background:#f1f3f4}.h-c-carousel--detailed .h-c-carousel__paginate-labelled.glue-pagination-previous .glue-o-pagination__button{float:left;padding-right:16px;text-align:left}@media screen and (-ms-high-contrast:active){.h-c-carousel--detailed .h-c-carousel__paginate-labelled.glue-pagination-previous .glue-o-pagination__button{background-color:Window}}[dir=rtl] .h-c-carousel--detailed .h-c-carousel__paginate-labelled.glue-pagination-previous .glue-o-pagination__button{float:right;padding-left:16px;padding-right:0;text-align:right}.h-c-carousel--detailed .h-c-carousel__paginate-labelled.glue-pagination-next .glue-o-pagination__button{float:right;padding-left:16px;text-align:right}@media screen and (-ms-high-contrast:active){.h-c-carousel--detailed .h-c-carousel__paginate-labelled.glue-pagination-next .glue-o-pagination__button{background-color:Window}}[dir=rtl] .h-c-carousel--detailed .h-c-carousel__paginate-labelled.glue-pagination-next .glue-o-pagination__button{float:left;padding-left:0;padding-right:16px;text-align:left}@media (min-width:600px){.h-c-carousel--detailed .h-c-carousel__navigation{font-size:16px;letter-spacing:0}.h-c-carousel--detailed .glue-pagination-page-list{margin:0 26px}.h-c-carousel--detailed .h-c-carousel__paginate-labelled.glue-pagination-previous .glue-o-pagination__button{float:right;padding-right:24px;text-align:right}[dir=rtl] .h-c-carousel--detailed .h-c-carousel__paginate-labelled.glue-pagination-previous .glue-o-pagination__button{float:left;padding-left:24px;padding-right:0;text-align:left}.h-c-carousel--detailed .h-c-carousel__paginate-labelled.glue-pagination-next .glue-o-pagination__button{float:left;padding-left:24px;text-align:left}[dir=rtl] .h-c-carousel--detailed .h-c-carousel__paginate-labelled.glue-pagination-next .glue-o-pagination__button{float:right;padding-left:0;padding-right:24px;text-align:right}} .h-c-carousel--detailed:not(.h-c-carousel--navigation-no-label-xs).h-c-carousel--navigation-background.h-c-carousel--dark .h-c-carousel__navigation{background:-webkit-gradient(linear,left top,left bottom,from(0),color-stop(rgba(0,0,0,.2)),to(transparent));background:linear-gradient(0,rgba(0,0,0,.2),transparent)}.h-c-carousel--detailed:not(.h-c-carousel--navigation-no-label-xs) .h-c-carousel__paginate-labelled{display:none}.glue-app-ready .h-c-carousel--detailed:not(.h-c-carousel--navigation-no-label-xs) .h-c-carousel__paginate-labelled{display:block}@media (min-width:600px){.h-c-carousel--detailed.h-c-carousel--navigation-background.h-c-carousel--dark .h-c-carousel__navigation{background:-webkit-gradient(linear,left top,left bottom,from(0),color-stop(rgba(0,0,0,.2)),to(transparent));background:linear-gradient(0,rgba(0,0,0,.2),transparent)}.h-c-carousel--detailed .h-c-carousel__paginate-labelled{display:none}.glue-app-ready .h-c-carousel--detailed .h-c-carousel__paginate-labelled{display:block}} .h-c-carousel--detailed.h-c-carousel--dark .h-c-carousel__paginate-labelled .glue-o-pagination__button{color:#fff}.h-c-carousel--detailed.h-c-carousel--dark .h-c-carousel__paginate-labelled .glue-o-pagination__button svg{stroke:#fff}.h-c-carousel--detailed.h-c-carousel--dark .h-c-carousel__paginate-labelled .glue-o-pagination__button:focus,.h-c-carousel--detailed.h-c-carousel--dark .h-c-carousel__paginate-labelled .glue-o-pagination__button:hover{background:#f1f3f4;color:#202124}.h-c-carousel--detailed.h-c-carousel--dark .h-c-carousel__paginate-labelled .glue-o-pagination__button:focus svg,.h-c-carousel--detailed.h-c-carousel--dark .h-c-carousel__paginate-labelled .glue-o-pagination__button:hover svg{stroke:#202124} .h-c-carousel--detailed.h-c-carousel--dark .glue-pagination-page-list .glue-o-pagination__button:before,.h-c-carousel--simple-full-bleed.h-c-carousel--dark .glue-pagination-page-list .glue-o-pagination__button:before{border-color:#fff}.h-c-carousel--detailed.h-c-carousel--dark .glue-pagination-page-list .glue-o-pagination__button:focus:before,.h-c-carousel--simple-full-bleed.h-c-carousel--dark .glue-pagination-page-list .glue-o-pagination__button:focus:before{background:#f1f3f4;border-color:#202124}.h-c-carousel--detailed.h-c-carousel--dark .glue-pagination-page-list .active .glue-o-pagination__button:before,.h-c-carousel--simple-full-bleed.h-c-carousel--dark .glue-pagination-page-list .active .glue-o-pagination__button:before{background:#fff}.h-c-carousel--detailed.h-c-carousel--dark .glue-pagination-page-list .active .glue-o-pagination__button:focus:before,.h-c-carousel--simple-full-bleed.h-c-carousel--dark .glue-pagination-page-list .active .glue-o-pagination__button:focus:before{background:#202124} .h-c-carousel__navigation-thumbnails{display:none;list-style:none;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;margin:0;width:100%}.h-c-carousel__navigation-thumbnail,.h-c-carousel__navigation-thumbnail .glue-o-pagination__button{height:100px;width:150px}.h-c-carousel__navigation-thumbnail .glue-o-pagination__button{position:relative}.h-c-carousel__navigation-thumbnail .glue-o-pagination__button:focus:after,.h-c-carousel__navigation-thumbnail .glue-o-pagination__button:hover:after{background:rgba(232,234,237,.6);bottom:0;content:"";display:block;left:0;mix-blend-mode:multiply;position:absolute;right:0;top:0}.h-c-carousel__navigation-thumbnail .glue-o-pagination__button[aria-selected=true]{z-index:2}.h-c-carousel__navigation-thumbnail .glue-o-pagination__button[aria-selected=true]:after,.h-c-carousel__navigation-thumbnail .glue-o-pagination__button[aria-selected=true]:before{bottom:0;content:"";display:block;left:0;position:absolute;right:0;top:0}.h-c-carousel__navigation-thumbnail .glue-o-pagination__button[aria-selected=true]:before{border:1px solid #dadce0}.h-c-carousel__navigation-thumbnail .glue-o-pagination__button[aria-selected=true]:after{border-top:4px solid #1a73e8}.h-c-carousel__navigation-thumbnail .glue-o-pagination__button[aria-selected=true]:focus:after{border-top-color:#174ea6}.h-c-carousel__navigation-thumbnail .glue-o-pagination__button:focus{z-index:3} @media (min-width:1024px){.h-c-carousel--thumbnail .glue-pagination-page-list{display:none}.h-c-carousel__navigation-thumbnails{display:-webkit-box;display:-ms-flexbox;display:flex}} .h-c-carousel--tile{margin:-10px -16px}.h-c-carousel--tile.h-c-carousel .glue-carousel{cursor:default}.h-c-carousel--tile .h-c-carousel__wrap{padding:10px 16px}.h-c-carousel--tile .h-c-carousel__item{float:left;margin:0 0 8px 0;width:278px}.glue-app-ready .h-c-carousel--tile .h-c-carousel__item,.glue-app-supported .h-c-carousel--tile .h-c-carousel__item{margin-bottom:0}[dir=rtl] .h-c-carousel--tile .h-c-carousel__item{float:right}.h-c-carousel--tile .h-c-carousel__navigation{bottom:-20px}@media (min-width:600px){.h-c-carousel--tile{margin:-10px 0}.h-c-carousel--tile .h-c-carousel__wrap{padding:10px 0}.h-c-carousel--tile .h-c-carousel__item{margin-bottom:8px}.glue-app-ready .h-c-carousel--tile .h-c-carousel__item,.glue-app-supported .h-c-carousel--tile .h-c-carousel__item{margin-bottom:0}}@media (min-width:1024px){.h-c-carousel--tile .h-c-carousel__item{margin-bottom:26px;width:326px}.glue-app-ready .h-c-carousel--tile .h-c-carousel__item,.glue-app-supported .h-c-carousel--tile .h-c-carousel__item{margin-bottom:0}}.glue-app-supported .h-c-carousel--tile .glue-carousel{width:10000px} @media (min-width:600px){.h-c-carousel--tile-small-only{margin:0}.h-c-carousel--tile-small-only .h-c-carousel__wrap{overflow:visible;padding:0}.glue-app-supported .h-c-carousel--tile-small-only .glue-carousel{width:auto}.h-c-carousel--tile-small-only .glue-carousel{margin:0 -8px -8px 0}[dir=rtl] .h-c-carousel--tile-small-only .glue-carousel{margin-left:-8px;margin-right:0}.h-c-carousel--tile-small-only .h-c-carousel__navigation,.h-c-carousel--tile-small-only .h-c-carousel__paginate{display:none}.glue-app-ready .h-c-carousel--tile-small-only .h-c-carousel__item,.glue-app-supported .h-c-carousel--tile-small-only .h-c-carousel__item{padding-bottom:8px}}@media (min-width:1024px){.h-c-carousel--tile-small-only .glue-carousel{margin:0 -26px -26px 0}.glue-app-ready .h-c-carousel--tile-small-only .h-c-carousel__item,.glue-app-supported .h-c-carousel--tile-small-only .h-c-carousel__item{padding-bottom:26px}}h2{margin-bottom:20px}@media (min-width:1024px){h2{margin-bottom:40px}}.landing-tertiary-list__item span,.products-navigation-list__product span,h3{margin-bottom:10px}@media (min-width:1024px){.landing-tertiary-list__item span,.products-navigation-list__product span,h3{margin-bottom:20px}}.article-image__caption,.article-meta__published-at,.utility-copy{color:#757575;font-size:.88888889em;line-height:22px}@media (min-width:1024px){.article-image__caption,.article-meta__published-at,.utility-copy{line-height:24px}}.h-c-headline,.landing-tertiary-list__item span,.no-hyphens,.products-navigation-list__product span,figcaption,h1,h2,h3,h4,h5{-webkit-hyphens:manual;-ms-hyphens:manual;hyphens:manual}.hyphens{-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto}.h-c-eyebrow{display:block}.cta{color:#3367d6;display:table;font-weight:500;letter-spacing:.02777778em;margin-top:20px;text-transform:uppercase}.cta:first-child{margin-top:0}.cta.muted{color:#414141}.cta .icon{fill:currentColor;height:22px;margin-left:5px;position:relative;top:7px;-webkit-transition:-webkit-transform .1s;transition:-webkit-transform .1s;transition:transform .1s;transition:transform .1s,-webkit-transform .1s;width:22px;will-change:transform}.cta:hover,a:hover .cta{color:#4285f4}.cta:hover .icon,a:hover .cta .icon{fill:currentColor;-webkit-transform:translateX(5px);transform:translateX(5px)}[rel=external] .icon{top:5px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}[rel=external]:hover .cta .icon,[rel=external]:hover .icon{-webkit-transform:translateX(5px) translateY(-5px) rotate(-45deg);transform:translateX(5px) translateY(-5px) rotate(-45deg)}.rule{border:1px solid #d7d7d7;border-width:1px 0 0;height:0;margin:0}.featured-article:after{border-bottom:1px solid #d7d7d7;content:"";height:0;margin:0 auto;padding-top:30px;width:90vw}@media (min-width:1024px){.featured-article{padding-bottom:0}.featured-article:after{display:none}}@media (min-width:1024px){.featured-article--break-grid .featured-article__image{-ms-flex-preferred-size:calc(64.59067763% + 32px + 1.03799452%);flex-basis:calc(64.59067763% + 32px + 1.03799452%);margin-left:-32px}}@media (min-width:1024px){.featured-article--break-grid .featured-article__content{margin-right:0}}.featured-article__image,.featured-article__image--full-width{background-position:50%;background-size:cover;display:none;margin:0;min-height:0;padding-top:56.25%}@media (min-width:1024px){.featured-article__image,.featured-article__image--full-width{display:block;min-height:446px;padding-top:0}}.featured-article__image--full-width{display:block}@media (min-width:1024px){.featured-article__image--full-width{display:none}}.featured-article__image--full-width:focus{background-size:cover;background-position:50%}.featured-article__content{padding:20px 0}@media (min-width:1024px){.featured-article__content{border:0 solid #d7d7d7;border-width:1px 0;padding:36px 0}.featured-article--break-grid .featured-article__content{border-top:0}}.featured-article__content.no-border{border-width:0}.featured-article__summary{margin:0}@media (min-width:1024px){.featured-article__summary{margin-bottom:20px}}.featured-article__summary:hover,a .featured-article__summary,a:hover .featured-article__summary,a:visited .featured-article__summary{color:#414141!important}.featured-article__title{display:none}.featured-article--break-grid .featured-article__title{display:block;margin-bottom:30px}@media (min-width:1024px){.featured-article__title{display:block;margin-bottom:30px}}.featured-article__title--priority{display:block;padding:0 0 30px}@media (min-width:1024px){.featured-article__title--priority{display:none}}.featured-article__title--priority.h-c-grid__col{margin-top:-30px;padding-top:30px}.featured-article__cta{float:left}.h-c-footer__upper .h-c-social{border-bottom:1px solid #dadce0}.article-list__load-more{background:#3367d6;border:0;color:#fff;display:none;margin-top:25px;padding:25px 0;text-align:center;text-transform:uppercase;width:100%}.article-list.active .article-list__load-more{display:block}.article-list.no-results .article-list__load-more{display:none}.article-list__load-more:hover{background:#4285f4}.article-list__loader{display:none;height:22px;margin:0 auto;width:auto}.loading .article-list__loader{display:block}.loading .article-list__loader-text{display:none}.feed-article{border-top:1px solid #d7d7d7;display:-webkit-box;display:-ms-flexbox;display:flex;padding:30px 0}.feed-article__content{-webkit-box-flex:1;-ms-flex:1;flex:1;padding-right:4.15197807%}.feed-article__eyebrow,.feed-article__title{color:#414141}.feed-article__title{margin-bottom:0}.feed-article__eyebrow{margin-bottom:10px}.feed-article__image{background-position:50%;background-repeat:no-repeat;background-size:cover;display:none;height:0;margin:0!important;overflow:hidden;padding-top:56.25%;position:relative;width:188px}@media (min-width:1024px){.feed-article__image{display:block}}.uni-blog-nup__columns{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-preferred-size:100%;flex-basis:100%;-ms-flex-wrap:wrap;flex-wrap:wrap}.uni-blog-nup__columns:after{border-bottom:1px solid #d7d7d7;content:"";height:0;margin:0 auto;padding-top:30px;width:90vw}@media (min-width:600px){.uni-blog-nup__columns{padding-bottom:0}.uni-blog-nup__columns:after,.uni-blog-nup__columns:before{display:none}}.uni-blog-nup__column{color:#202124;position:relative;vertical-align:top}.uni-blog-nup__column.h-c-grid__col{margin-bottom:23px}.uni-blog-nup__column:hover,.uni-blog-nup__column:visited{color:#202124}.uni-blog-nup__column:after{border-bottom:1px solid #d7d7d7;bottom:0;content:" ";left:50%;margin-left:-25%;position:absolute;width:50%}.uni-blog-nup__column:last-of-type:after{display:none}@media (min-width:600px){.uni-blog-nup__column{border-bottom:1px solid #d7d7d7}.uni-blog-nup__column:after{display:none}}@media (min-width:1024px){.uni-blog-nup__column.h-c-grid__col{margin-bottom:0}}@media (min-width:600px){.uni-blog-nup__column--3up:nth-child(n+3){display:none}}@media (min-width:1024px){.uni-blog-nup__column--3up:nth-child(n+3){display:block}}.uni-blog-nup__column-contents{-ms-flex-flow:column;flex-flow:column;height:100%}.uni-blog-nup__column-contents,.uni-blog-nup__header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal}.uni-blog-nup__header{color:#414141;-webkit-box-flex:0;-ms-flex:0 1 auto;flex:0 1 auto;-ms-flex-direction:column;flex-direction:column}.uni-blog-nup__body{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;margin-bottom:23px}.uni-blog-nup__image{background-position:50%;background-repeat:no-repeat;background-size:cover;height:0;margin-bottom:23px;padding-top:56.25%}@media (min-width:1024px){.uni-blog-nup__image{margin-bottom:0}}.uni-blog-nup__column--image .uni-blog-nup__header{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.uni-blog-landing-hero{margin-bottom:30px;margin-top:30px}.uni-blog-landing-hero:after{border-bottom:1px solid #d7d7d7;content:"";display:block;height:0;margin:0 auto;padding-top:30px;width:90vw}@media (min-width:1024px){.uni-blog-landing-hero:after{display:none}}.uni-blog-landing-hero.-no-line:after{display:none}@media (min-width:1024px){.uni-blog-landing-hero{margin-bottom:60px;margin-top:42px}}.uni-blog-landing-hero__social-nav{float:right}.uni-blog-landing-hero__social .h-c-social__title.h-c-social__title--inline{line-height:20px;margin-bottom:10px}@media (min-width:1024px){.uni-blog-landing-hero__social .h-c-social__title.h-c-social__title--inline{margin-bottom:20px}}.uni-blog-landing-hero__social .h-c-social__item{margin-bottom:0;margin-right:0}.uni-blog-landing-hero__social .h-c-social__link{text-align:center}.uni-blog-landing-hero__social .h-c-social--inline{display:none!important}@media (min-width:1024px){.uni-blog-landing-hero__social .h-c-social--inline{display:block!important}}.uni-blog-landing-hero__social .h-c-social--inline .h-c-social__group{padding-right:0}.uni-blog-landing-hero__social .h-c-social--inline .h-c-social__list{display:none}@media (min-width:600px){.uni-blog-landing-hero__social .h-c-social--inline .h-c-social__list{-ms-flex:0 0 auto;-webkit-box-flex:0;flex:0 0 auto;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-top:-10px}}.uni-blog-landing-hero__social .h-c-social--popover{display:block!important}@media (min-width:1024px){.uni-blog-landing-hero__social .h-c-social--popover{display:none!important}}.uni-blog-landing-hero__social .h-c-social--popover .h-c-social__item{margin:12px 0 12px 12px}.uni-blog-landing-hero__social .h-c-social__dialog.h-c-social__dialog--popover{display:none;left:auto;position:absolute;right:-15px;text-align:right;top:-15px;width:230px}@media (min-width:600px){.uni-blog-landing-hero__social .h-c-social__dialog.h-c-social__dialog--popover{width:280px}}.glue-c-popover.glue-is-shown .glue-c-popover__dialog{display:block!important}.h-c-social-list--popover{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.uni-blog-landing-hero__product-icon{clear:both;float:right;width:54px}@media (min-width:1024px){.uni-blog-landing-hero__product-icon{width:95px}}.uni-blog-landing-hero__subtext{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.uni-blog-landing-hero__subtext-content{padding-right:50px}.uni-blog-landing-hero__sub-copy{padding-bottom:40px}@media (min-width:600px){.uni-blog-landing-hero__subsection{border-top:1px solid #d7d7d7}}.article-hero{padding-bottom:20px;padding-top:30px}@media (min-width:1024px){.article-hero{padding-bottom:40px;padding-top:40px}}.article-image--full,.article-image--full-aspect{margin:0 auto;max-width:1060px;width:100%}@media (min-width:1024px){.article-image--full,.article-image--full-aspect{width:81.2573443%}}.article-image--full img{width:100%}.article-image__thin-aspect-image{background-position:50%;background-size:cover;padding-top:41.7%}.article-image--wrap-small{margin:0 0 20px}@media (min-width:1024px){.article-image--wrap-small{float:right;margin:0 0 20px 20px;width:50%}}.article-image--wrap-medium{margin:0 0 20px}@media (min-width:1024px){.article-image--wrap-medium{float:right;margin:0 -33% 20px 20px;width:80%}}.article-image__caption{margin-top:10px}@media (min-width:1440px){.article-image__caption{padding:0}}.article-video{margin:20px auto 0;max-width:1060px;width:100%}.article-video figure{margin:0 auto}.h-c-icon--youtube{-webkit-transition:all .25s cubic-bezier(0,0,.2,1);transition:all .25s cubic-bezier(0,0,.2,1);-webkit-transition-property:fill,fill-opacity;transition-property:fill,fill-opacity;fill:#212121;fill-opacity:.8}a:hover .h-c-icon--youtube{fill:red;fill-opacity:1}.article-video--hero{margin-top:0;max-width:100%}.article-video--hero figure{margin:0 auto;max-width:1060px;width:100%}.article-video__aspect-image{background-position:50%;background-size:cover;padding-top:56.25%}.article-video--hero .article-video__aspect-image{padding-top:41.7%}.article-video__caption .h-u-font-weight-medium{font-weight:500}.tombstone{background-color:#4285f4;content:"";display:inline-block;height:14px;margin-left:10px;width:14px}.uni-pull-quote{margin-bottom:30px;margin-top:30px}@media (min-width:1024px){.uni-pull-quote{margin-bottom:40px;margin-top:35px}}.uni-pull-quote__wrapper{border-bottom:1px solid #e0e0e0;border-top:1px solid #e0e0e0}.uni-pull-quote__inner-wrapper{margin:0 auto;max-width:75%;padding:40px 0}.uni-pull-quote__text{font-size:20px;font-weight:300;position:relative}@media (min-width:1024px){.uni-pull-quote__text{font-size:22px}}.uni-pull-quote__text:before{content:"\201C";left:-8px;position:absolute;top:0}.uni-pull-quote__text:after{content:"\201D";position:relative;right:-1px}.uni-pull-quote__author{display:-webkit-box;display:-ms-flexbox;display:flex;font-size:14px;font-style:normal;line-height:1.5;margin-top:32px}@media (min-width:1024px){.uni-pull-quote__author{font-size:16px;margin-top:24px}}.uni-pull-quote__author:before{display:none}.uni-pull-quote__author-meta{font-weight:300}.uni-pull-quote__author-photo{border-radius:50%;height:48px;margin:0 13px 0 0;overflow:hidden;width:48px}.article-sticky-share.no-hero-media .glue-sticky-wrapper{height:0!important}@media (min-width:1024px){.article-share__page{border:0;height:0;overflow:visible}.article-share__page .h-c-grid{height:0}}.article-share{border-bottom:1px solid #d7d7d7;display:none;margin-bottom:20px!important;padding-bottom:20px}@media (min-width:1024px){.article-share{border:0;display:block;height:0;margin-bottom:0!important;padding:0}}.mobile .article-share{display:block}@media (min-width:1024px){.mobile .article-share{display:none}}.article-share__link{display:block;float:left;height:25px;margin-right:20px;width:25px}@media (min-width:1024px){.article-share__link{height:30px;margin-bottom:25px;width:30px}.article-share__link:last-child{margin-bottom:0}}.article-sticky-share{display:none;height:0}@media (min-width:1024px){.article-sticky-share{display:block;position:relative}}.article-sticky-share__wrap{background:none;left:50vw;margin:0 auto;max-width:1280px;padding:0 32px;pointer-events:none;position:absolute;-webkit-transform:translateX(-50%);transform:translateX(-50%);width:97.92401097%;z-index:1}.article-sticky-share__wrap.glue-sticky-active{padding-top:170px;position:fixed;top:0}.article-sticky-share__wrap>*{pointer-events:auto}.article-sticky-share__nav{margin-left:auto;width:30px}.article-share--locked{position:fixed}@media (min-width:1024px){.article-meta__page{border:0;height:0;overflow:visible}}.article-meta__content{background-color:hsla(0,0%,100%,.6);font-size:.77777778em;padding-bottom:20px}.article-meta__author{margin-bottom:15px}@media (min-width:1024px){.article-meta__author{margin-bottom:16px}}.article-meta__author-photo{display:none;height:82px;margin:0 0 17px;overflow:hidden;width:82px}@media (min-width:1024px){.article-meta__author-photo{display:block}}.article-meta__author-name{font-weight:500}.perspective-image{float:left;margin:0 30px 0 0}@media (min-width:1024px){.perspective-header{margin-bottom:20px}}.perspective-header hr{display:none}@media (min-width:1024px){.perspective-header hr{display:block}}.perspective-meta__content{width:100%}.perspective-meta__content:first-of-type{padding-bottom:10px}@media (min-width:1024px){.perspective-meta__content:first-of-type{padding-bottom:20px}}@media (min-width:1024px){.perspective-meta__cta{float:right}}.uni-paragraph h2,.uni-paragraph h3{margin-bottom:20px}.uni-paragraph p+h2,.uni-paragraph p+h3{margin-top:20px}.uni-paragraph li{margin-bottom:10px}.uni-blog-article-tags{font-size:.77777778em;font-weight:500;text-transform:uppercase}.uni-blog-article-tags__label{display:inline-block;margin-right:5px}.uni-blog-article-tags__container{display:inline-block}.uni-blog-article-tags__tags-list{display:inline-block;list-style:none;margin:0;padding:0}.uni-blog-article-tags__tags-list>li{display:inline-block}.uni-blog-article-tags__tags-list>li:after{content:"\2014";display:inline-block}.uni-blog-article-tags__tags-list>li:last-of-type:after{display:none}.landing-tertiary-list{padding-top:30px}@media (min-width:1024px){.landing-tertiary-list{padding-top:40px}}.landing-tertiary-list__title{margin-bottom:40px}.landing-tertiary-list__columns--three-col{display:none!important}@media (min-width:1024px){.landing-tertiary-list__columns--three-col{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}}@media (min-width:1024px){.landing-tertiary-list__columns--two-col{display:none!important}}.landing-tertiary-list__item{color:#202124;display:block;margin-bottom:30px!important}.landing-tertiary-list__item:hover,.landing-tertiary-list__item:visited{color:#202124}.products-navigation-list{padding-top:40px}.products-navigation-list .h-c-headline--one,.products-navigation-list h1{font-size:24px}@media (min-width:1024px){.products-navigation-list{padding-top:62px}.products-navigation-list .h-c-headline--one,.products-navigation-list h1{font-size:56px}}.products-navigation-list__title{border-bottom:1px solid #d7d7d7;margin-bottom:35px;padding-bottom:30px}@media (min-width:1024px){.products-navigation-list__title{margin-bottom:40px;padding-bottom:40px}}.products-navigation-list__content:after{border-bottom:1px solid #d7d7d7;content:" ";display:block;margin:30px auto 20px;max-width:568px;width:100%}@media (min-width:600px){.products-navigation-list__content:after{max-width:1280px}}.products-navigation-list__product{color:#202124;margin-bottom:20px!important}@media (min-width:1024px){.products-navigation-list__product{margin-bottom:30px!important}}.products-navigation-list__product:hover,.products-navigation-list__product:visited{color:#202124}.products-navigation-list__product img{display:inline-block;margin:0 23px 0 0;vertical-align:bottom;width:41px}.products-navigation-list__product span{font-size:16px}@media (min-width:1024px){.products-navigation-list__product span{font-size:36px}}.article-carousel__slide figure{margin:0}.article-carousel__slide-img{background-position:50%;background-repeat:no-repeat;background-size:contain;padding-top:56.25%}.article-module .article-carousel__margin{margin:auto}.nav-kebab__icon{height:26px;width:40px}.nav-kebab-popover__trigger{position:relative;top:7px;z-index:1}.nav-kebab-popover__dialog{border:none;-webkit-box-shadow:0 2px 8px rgba(0,0,0,.5);box-shadow:0 2px 8px rgba(0,0,0,.5);display:none;left:auto;padding:10px 25px;position:absolute;right:-10px;text-align:left;top:-5px;width:236px}.nav-kebab-popover__dialog li{font-size:1em;line-height:1.444;margin-bottom:5px}.nav-kebab-popover__dialog li:last-of-type{margin-bottom:0}.nav-kebab-popover__dialog a{color:#414141}.nav-kebab-popover__dialog svg{vertical-align:middle}.h-c-header__drawer-content{bottom:0}.h-c-header__nav-list{-webkit-transition:opacity .35s;transition:opacity .35s}.search-bar.in-mobile-search:after{background:rgba(0,0,0,.4);content:"";height:100%;left:0;position:fixed;top:0;width:100%}.search-bar__form{background:#fff;bottom:10px;-webkit-box-shadow:0 2px 4px rgba(0,0,0,.3);box-shadow:0 2px 4px rgba(0,0,0,.3);display:none;height:0;opacity:0;overflow:visible;position:absolute;right:22px;-webkit-transition:opacity .35s,right .35s,width .35s,height .35s step-end,visibility .35s step-end;transition:opacity .35s,right .35s,width .35s,height .35s step-end,visibility .35s step-end;visibility:hidden;width:52px;z-index:8}@media (min-width:600px){.search-bar__form{display:block}}.mobile .search-bar__form{bottom:0;-webkit-box-shadow:0 0 0;box-shadow:0 0 0;display:block;float:left;height:50px;opacity:1;position:relative;right:0;-webkit-transition:opacity 0,right 0,width 0,height 0,visibility 0;transition:opacity 0,right 0,width 0,height 0,visibility 0;visibility:visible;width:100%}.search-bar__form .uni-type-ahead{background-color:#fff;-webkit-box-shadow:0 2px 4px rgba(0,0,0,.3);box-shadow:0 2px 4px rgba(0,0,0,.3);font-size:.88888889em;font-weight:300;max-height:calc(90vh - 100%);overflow:auto;position:absolute;top:100%;width:100%;z-index:15}.search-bar__form .uni-type-ahead .type-ahead-list-item{color:#000;display:block;outline:none;padding:15px 20px 0 40px}.search-bar__form .uni-type-ahead .type-ahead-list-item.selected,.search-bar__form .uni-type-ahead .type-ahead-list-item:focus,.search-bar__form .uni-type-ahead .type-ahead-list-item:hover{background-color:#eee}.search-bar__form .uni-type-ahead .type-ahead-list-item:first-child{padding-top:25px}.search-bar__form .uni-type-ahead .type-ahead-list-item:last-child{padding-bottom:25px}.search-bar__form .uni-type-ahead .type-ahead-list-item:last-child:after{display:none}.search-bar__form .uni-type-ahead .type-ahead-list-item:after{border-bottom:1px solid #d7d7d7;content:"";display:block;padding-top:20px;width:100%}.search-bar__input{background:transparent;border:0;font-size:1em;font-weight:300;height:100%;outline:0;padding:10px 0 10px 60px;width:100%}.search-bar__input::-ms-clear{display:none}.mobile .search-bar__input{font-size:.83333333em}.search-bar__button{background:transparent;border:0;bottom:16px;cursor:pointer;height:26px;margin:auto;padding:0;position:absolute;top:15px;width:26px}.search-bar__button svg{height:100%;width:100%}.search-bar__button--search{color:#e0e0e0;font-size:1.33333333em;left:18px}.search-bar__button--search:before{display:block;height:auto;margin:auto}.search-bar__button--close{right:18px;-webkit-transition:opacity .35s step-start;transition:opacity .35s step-start}.uni-is-touch .search-bar__form .uni-type-ahead .type-ahead-list-item:focus{background-color:inherit}.uni-header-search-button{background:0 0;border:0}.uni-header-search-button__icon{cursor:pointer;height:26px;position:relative;top:6px;-webkit-transition:opacity .35s,height .35s step-start;transition:opacity .35s,height .35s step-start;width:40px}.h-js-header__drawer-backdrop--desktop{opacity:0;-webkit-transition:opacity .35s step-start;transition:opacity .35s step-start}.uni-desktop-search-visible .search-bar__form{height:44px;opacity:1;right:9.2%;-webkit-transition:opacity .35s,right .35s,width .35s,height .35s step-start,visibility .35s step-start;transition:opacity .35s,right .35s,width .35s,height .35s step-start,visibility .35s step-start;visibility:visible;width:100%}@media (min-width:600px){.uni-desktop-search-visible .search-bar__form{width:70%}}.uni-desktop-search-visible .uni-header-search-button{opacity:0;-webkit-transition:opacity .35s;transition:opacity .35s}.uni-desktop-search-visible .h-c-header__nav-list{opacity:0}.uni-desktop-search-visible .h-js-header__drawer-backdrop--desktop{background:rgba(0,0,0,.4);bottom:0;left:0;opacity:1;position:fixed;right:0;top:0;-webkit-transition:opacity .2s cubic-bezier(.4,0,.2,1);transition:opacity .2s cubic-bezier(.4,0,.2,1);z-index:99}.uni-no-results{font-size:16px;margin-top:20px!important}.uni-no-results ul{list-style-type:none;margin:0}.uni-no-results li{line-height:32px;padding-left:15px}.uni-no-results li:before{content:"\2022";margin-left:-15px;margin-right:10px}.uni-no-results p{font-size:16px;margin-bottom:22px}.uni-no-results .uni-social-network{display:inline-block;line-height:18px;margin-left:8px}.uni-no-results .h-c-icon--social{margin-right:4px}.uni-search-in-progress .uni-search-results{opacity:0;-webkit-transition:opacity 0s;transition:opacity 0s}.uni-search-results__header{padding:60px 0 30px}.uni-search-results__header--has-results{background-color:#f5f5f5}.uni-search-results__filters{margin-top:55px}.uni-search-results__list .feed-article{padding:40px 0}.uni-search-results__list .feed-article:first-of-type{border-top:none}@media (min-width:1024px){.uni-search-results__sort-by{margin-left:auto;width:80%}}.uni-search-results__selected-facets{font-size:16px;font-weight:400;margin-top:5px;padding-top:10px}@media (min-width:1024px){.uni-search-results__selected-facets{margin-top:15px;padding-top:0}}.uni-search-results.uni-has-no-results.uni-has-no-filters .uni-search-results__selected-facets{display:none}.uni-search-results__clear-btn-wrapper{-webkit-box-flex:1;-ms-flex:1;flex:1;margin:0 1.03799%}@media (min-width:1024px){.uni-search-results__clear-btn-wrapper{-webkit-box-flex:0;-ms-flex:none;flex:none;margin:0;-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2;width:11%}}.uni-search-results__filter-text{-ms-flex-preferred-size:44.69697%;flex-basis:44.69697%;width:44.69697%}@media (min-width:1024px){.uni-search-results__filter-text{-ms-flex-preferred-size:7%;flex-basis:7%;width:7%}}@media (min-width:1024px){.uni-search__filter{-ms-flex-preferred-size:16%;flex-basis:16%;width:16%}}.uni-search-results__clear-btn{-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:#f5f5f5;color:#3367d6;display:-webkit-box;display:-ms-flexbox;display:flex;font-size:16px;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;margin:0 0 0 auto;padding:0;text-transform:uppercase}.uni-search-results__clear-btn:visited{background-color:#f5f5f5}@media (min-width:1024px){.uni-search-results__clear-btn{margin:0 auto;padding:0 5px}}.uni-search-results__load-more-btn{background:#3367d6;border:0;color:#fff;margin-top:25px;padding:25px 0;text-align:center;text-transform:uppercase;width:100%}.uni-search-results__load-more-btn:hover{background:#4285f4}.uni-search-no-results{display:none;margin-bottom:30px;margin-top:44px}@media (min-width:600px){.uni-search-no-results{margin-top:56px}}.uni-search-results.uni-has-no-results .uni-search-no-results{display:block}.uni-search-results__searched-facet{background-color:#fff;border:1px solid #e6e6e6;border-radius:13px;color:#5f6368;cursor:pointer;display:inline-block;margin:0 15px 10px 0;padding:3px 9px}.search-facet__close-btn{vertical-align:text-bottom}.uni-search-results-filters{font-size:16px;font-weight:400;margin-bottom:16px!important;position:relative;white-space:nowrap}@media (min-width:600px){.uni-search-results-filters{font-size:18px;margin-bottom:18px!important}}.uni-search-results-filters .uni-blog-select{margin:9px 0}@media (min-width:1024px){.uni-search-results-filters .uni-blog-select{margin:0}}.uni-search-results-filters__clear-button{margin:0;position:absolute;right:9px;top:-5px}@media (min-width:1024px){.uni-search-results-filters__clear-button{margin-bottom:0;position:static;right:0;top:0}}.uni-related-article-tout{margin-bottom:30px;margin-top:30px}@media (min-width:1024px){.uni-related-article-tout{margin-bottom:40px;margin-top:35px}}.uni-related-article-tout__wrapper{border-bottom:1px solid #e0e0e0;border-top:1px solid #e0e0e0}.uni-related-article-tout__inner-wrapper{color:#202124;padding:20px 0}.uni-related-article-tout__content-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.uni-related-article-tout__eyebrow{margin-bottom:10px}.uni-related-article-tout__image-wrapper{display:none;width:47.92401%}@media (min-width:1024px){.uni-related-article-tout__image-wrapper{display:block}}.uni-related-article-tout__image{background-position:50%;background-repeat:no-repeat;background-size:cover;padding-top:56.25%}@media (min-width:1024px){.uni-related-article-tout__content{width:47.92401%}}.uni-related-article-tout__body{display:none}@media (min-width:1024px){.uni-related-article-tout__body{display:block}}.uni-related-article-tout__cta{display:block}@media (min-width:1024px){.uni-related-article-tout__cta{display:none}}.twitter-feed__headline{margin-bottom:20px}@media (min-width:1440px){.twitter-feed__headline{margin-bottom:40px}}.twitter-feed__content{display:-webkit-box;display:-ms-flexbox;display:flex}.twitter-feed__simple-tweet,.twitter-feed__simple-tweet-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}@media (min-width:1024px){.twitter-feed__simple-tweet-wrapper{height:100%}}.twitter-feed__tweet{background:#f6f6f6;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;min-height:440px;min-width:0}.twitter-feed__tweet:nth-child(n+2){display:none}@media (min-width:600px){.twitter-feed__tweet:nth-child(2){display:-webkit-box;display:-ms-flexbox;display:flex}}@media (min-width:1024px){.twitter-feed__tweet:nth-child(3){display:-webkit-box;display:-ms-flexbox;display:flex}}.twitter-feed__user-icon{background-position:50%;background-size:cover;border-radius:50%;display:block;float:left;height:40px;width:40px}.twitter-feed__user-info{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;float:left;height:40px;margin-left:15px}.twitter-feed__user-info .h-c-copy,.twitter-feed__user-info .rich-text{color:#414141}.twitter-feed__simple-tweet .twitter-feed__user-info{margin-left:0}.twitter-feed__tweet-header{padding:20px 20px 0;position:relative}.twitter-feed__tweet-header:after{clear:both;content:"";display:table}.twitter-feed__simple-tweet .twitter-feed__tweet-header{padding:0;position:relative;width:100%}.twitter-feed__twitter-logo{height:32px;position:absolute;right:20px;top:20px;width:32px}.twitter-feed__simple-tweet .twitter-feed__twitter-logo{top:0}.twitter-feed__user-handle{display:block;font-size:12px}.twitter-feed__tweet-body{padding:30px 20px}.twitter-feed__simple-tweet .twitter-feed__tweet-body{padding:30px 0}.twitter-feed__tweet-copy{font-size:14px!important;line-height:1.57!important}.twitter-feed__image{background-position:50%;background-size:cover;padding-top:56.25%;width:100%}.twitter-feed__tweet-footer{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:0 20px 20px}.twitter-feed__simple-tweet .twitter-feed__tweet-footer{padding:0;width:100%}.twitter-feed__intent-action{height:20px;margin-right:20px;width:20px}.twitter-feed__datetime{-ms-flex-item-align:end;align-self:flex-end;font-size:12px;text-align:right}.twitter-feed__more-cta{color:#414141;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;text-transform:uppercase}.press-item__thumbnail{background-color:#fff;background-position:50%;background-size:cover;padding-top:100%}@media (min-width:600px){.press-item__thumbnail{cursor:pointer}}.press-item__info{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.press-item__dl-btn{border-bottom:2px solid #414141;color:#414141;fill:#414141;height:26px;width:22px}.press-item__dl-btn .h-c-icon{-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s}.press-item__dl-btn:hover .h-c-icon{-webkit-transform:translateY(5px);transform:translateY(5px)}.h-c-modal--uni-press-modal{display:-webkit-box;display:-ms-flexbox;display:flex}.h-c-modal--uni-press-modal .glue-c-modal__content,.h-c-modal--uni-press-modal .glue-c-modal__dialog,.h-c-modal--uni-press-modal .h-c-modal__overlay,.h-c-modal--uni-press-modal figure{margin:0;padding:0}.h-c-modal--uni-press-modal .glue-c-modal__close{background:rgba(0,0,0,.2);color:#fff;font-size:44px;height:48px;line-height:45px;overflow:hidden;padding-top:0;width:48px}.press-modal{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;height:100vh}.press-modal__image{background-position:50%;background-repeat:no-repeat;background-size:contain;height:calc(100vh - 180px);width:100%}.press-modal__meta{background:#fff;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;min-height:180px;overflow:hidden;padding:30px 40px}.press-modal__dl-btn{border-bottom:2px solid #414141;color:#414141;fill:#414141;height:22px;width:18px}.press-modal__dl-btn .h-c-icon{-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s}.press-modal__download{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end;display:-webkit-box;display:-ms-flexbox;display:flex}.press-modal__download:hover .h-c-icon{-webkit-transform:translateY(3px);transform:translateY(3px)}.press-modal__download-text{line-height:1;margin-left:10px}.press-modal__asset-data{color:#757575;float:left}.uni-blog-select{border-bottom:1px solid #d7d7d7;position:relative}.uni-blog-select select{-moz-appearance:none;-webkit-appearance:none;background:transparent;border:none;display:block;font-size:16px;font-weight:400;height:38px}@media (min-width:600px){.uni-blog-select select{font-size:18px;height:40px}}.uni-blog-select select::-ms-expand{display:none}.uni-blog-select select::-ms-value{background:transparent;color:inherit}.uni-blog-select svg{margin-top:-12px;position:absolute;right:-7px;top:50%}.related-articles{margin-top:60px;overflow:hidden}.related-articles .related-articles__title.h-c-eyebrow{float:none}@media (min-width:1024px){.related-articles{margin-top:0}}@media (min-width:1024px){.related-articles.outside-drawer{display:none}}.related-articles__title{padding-left:15px;padding-top:15px;position:relative}.related-articles__title:before{border-top:1px solid #d7d7d7;content:"";display:block;left:0;margin:auto;max-width:1440px;position:absolute;right:0;top:0;width:100%}@media (min-width:600px){.related-articles__title{margin:auto;padding-left:40px;width:100%}.glue-touch .related-articles__title{padding-left:20px}}@media (min-width:1024px){.related-articles__title{padding-left:75px}.glue-touch .related-articles__title{padding-left:30px}}.related-articles .h-c-carousel{margin-bottom:0!important;max-width:100%}.related-articles .h-c-carousel .h-c-carousel__wrap{margin:auto;max-height:144px;width:calc(100% - 170px)}.glue-touch .related-articles .h-c-carousel .h-c-carousel__wrap{width:100%}.related-articles .h-c-carousel .glue-carousel{margin-left:-30px}.glue-touch .related-articles .h-c-carousel .glue-carousel{margin-left:auto}.related-articles .h-c-carousel .glue-pagination-next,.related-articles .h-c-carousel .glue-pagination-previous{margin-top:-10px;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.related-articles .h-c-carousel .glue-pagination-next{right:-10px}.related-articles .h-c-carousel .glue-pagination-previous{left:20px}.glue-zippy-set.h-t-hercules .glue-zippy{border-top:0}.related-articles__item{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;float:left;margin:0!important;max-width:300px;padding:15px 20px 25px 30px!important;position:relative;width:calc(100vw - 100px)!important}.related-articles__item:after{background:#d7d7d7;content:"";display:block;height:80%;position:absolute;right:0;top:10%;width:1px}@media (min-width:1024px){.related-articles__item{padding:15px 20px 25px 40px!important;max-width:none;width:340px!important}}.related-articles__link{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex}.related-articles__link figure{display:none;-webkit-box-flex:0;-ms-flex:0 0 82px;flex:0 0 82px;height:82px;margin:0 20px 0 0;max-width:82px;width:82px}@media (min-width:1024px){.related-articles__link figure{display:-webkit-box;display:-ms-flexbox;display:flex}}.related-articles__link picture{width:100%}.related-articles__link svg{display:inline-block;fill:#3367d6;max-height:13px;max-width:20px;position:relative;top:3px}.loader-mask{background:rgba(0,0,0,.4);display:none;height:100%;left:0;position:fixed;top:0;width:100%;z-index:99}.uni-search-in-progress .loader-mask{display:block}.loader-mask__loader{background:#c6dafc;display:block;height:6px;left:0;overflow:hidden;position:absolute;top:112px;-webkit-transition:top .35s cubic-bezier(.24,1,.32,1);transition:top .35s cubic-bezier(.24,1,.32,1);width:100%}.loader-mask__loader:after{background:#4285f4;content:"";display:block;height:100%;left:0;position:absolute;top:0;width:20}.uni-search-in-progress .loader-mask__loader:after{-webkit-animation:search-loader-anim 1.4s infinite linear;animation:search-loader-anim 1.4s infinite linear}@media (min-width:600px){.loader-mask__loader{top:128px}}.uni-header-is-hidden .loader-mask__loader{top:0}.uni-search-results{-webkit-transition:opacity .4s;transition:opacity .4s}.uni-search-in-progress .uni-search-results,.uni-search-results:not(.uni-search-ready){opacity:0;-webkit-transition:opacity 0s;transition:opacity 0s}@-webkit-keyframes search-loader-anim{0%{-webkit-transform:translateX(0);transform:translateX(0);width:0}30%{-webkit-transform:translateX(0);transform:translateX(0);width:20%}60%{width:50%}to{-webkit-transform:translateX(100vw);transform:translateX(100vw);width:20%}}@keyframes search-loader-anim{0%{-webkit-transform:translateX(0);transform:translateX(0);width:0}30%{-webkit-transform:translateX(0);transform:translateX(0);width:20%}60%{width:50%}to{-webkit-transform:translateX(100vw);transform:translateX(100vw);width:20%}}.copy-link{display:block;float:left;height:18px}.copy-link svg{height:18px;margin-left:5px;margin-top:2px;width:20px}@media (min-width:1024px){.copy-link{height:30px}.copy-link svg{height:26px;margin:0;width:34px}}.copy-link__trigger{position:relative;z-index:1}.glue-c-popover__dialog{border:0;-webkit-box-shadow:0 2px 8px rgba(0,0,0,.5);box-shadow:0 2px 8px rgba(0,0,0,.5);padding:10px;padding-left:40px;top:-14px}@media (min-width:1024px){.glue-c-popover__dialog{left:auto;padding:10px;padding-right:40px;right:0;top:-10px}}.copy-link__content{width:180px}@media (min-width:1024px){.copy-link__content{width:240px}}.copy-link__url{border:0;border-right:1px solid #d7d7d7;width:100%}.copy-link__copy-btn{-moz-appearance:none;-webkit-appearance:none;background:none;border:0;border-top:1px solid #d7d7d7;margin-top:10px;outline:0;padding:5px 0 0;text-align:left;width:100%}.copy-link__copy-btn.glue-is-copied{color:inherit;font-weight:inherit;letter-spacing:normal;text-transform:uppercase}.more-drawer{bottom:auto;display:none;margin-top:100vh;position:fixed;top:0;-webkit-transform:translateY(0);transform:translateY(0);width:100%;z-index:20}.more-drawer:after{border-top:1px solid #d7d7d7;content:"";display:block;margin:auto;max-width:1440px}.more-drawer .glue-zippy{border:none!important;margin:0 auto;max-width:1500px}.more-drawer .glue-zippy-set{margin-top:0}.more-drawer .glue-zippy-set.h-t-hercules .glue-zippy-content{margin-bottom:0}.more-drawer .h-c-expansion-panels__list{margin-bottom:0!important}.more-drawer .glue-c-zippy__content{background:#fff;margin-top:0!important;padding:0!important}.more-drawer .glue-c-zippy__content-container{padding:0!important}@media (min-width:1024px){.more-drawer{display:block}}.more-drawer__toggle{height:38px;padding:0!important;width:100%}.more-drawer__toggle-btn-wrap{border-bottom:1px solid #d7d7d7;display:block!important;-ms-flex-preferred-size:81.25734%;flex-basis:81.25734%;margin-left:8.37133%;margin-right:1.03799%;padding-left:0;width:81.25734%}.more-drawer__toggle-btn-wrap:after{clear:both;content:"";display:table}.more-drawer__toggle-btn{-moz-appearance:none;-webkit-appearance:none;background:#d7d7d7;border:none;float:right;height:38px;min-width:240px}.more-drawer__toggle-btn-text{float:none!important;text-align:left}.more-drawer__toggle-btn-text:before{content:"+";display:inline-block;text-align:center;width:20px}.glue-is-expanded .more-drawer__toggle-btn-text:before{content:"-"}.scroll-viewed-50 .more-drawer{bottom:auto;top:0;-webkit-transform:translateY(-100%);transform:translateY(-100%);-webkit-transition:-webkit-transform 1s;transition:-webkit-transform 1s;transition:transform 1s;transition:transform 1s,-webkit-transform 1s}.more-drawer-nest{display:none;height:1px;margin-top:95px;overflow:hidden;-webkit-transition:margin 1s;transition:margin 1s;width:100%}.more-drawer-nest.tall{margin-top:240px}@media (min-width:1024px){.more-drawer-nest{display:block}}.sticky-end{display:none;height:1px;-webkit-transform:translateY(500px);transform:translateY(500px);width:100%}@media (min-width:1024px){.sticky-end{display:block}}.featured-perspective{margin-bottom:50px}.featured-perspective .featured-article__summary{margin-bottom:20px}.featured-perspective .small-rule{margin-left:2.65152%;margin-right:2.65152%;width:100%}.featured-perspective--simple .h-c-grid{position:relative}@media (min-width:1024px){.featured-perspective--simple .h-c-grid:after{background:#d7d7d7;content:"";display:block;height:1px;margin:0 16px;top:-1px;width:calc(100% - 32px)}}.featured-perspective--simple .featured-perspective__image{margin-bottom:24px}@media (min-width:600px){.featured-perspective--simple .featured-perspective__image{margin-bottom:0}}.featured-perspective--simple .featured-article__content{border:0;padding:0}@media (min-width:1024px){.featured-perspective--simple .simple-summary{font-family:Roboto,Arial,Helvetica,sans-serif;font-size:22px;line-height:1.36}}.featured-perspective__link{display:block}.featured-perspective__image{margin:0 0 20px;width:100%}.featured-perspective__image img{width:100%}.cta.featured-perspective__cta{clear:both;display:block;margin-top:40px}.featured-perspective__secondary-content{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important;-ms-flex-wrap:wrap;flex-wrap:wrap}@media (min-width:600px){.featured-perspective__secondary-content{margin-top:20px!important}}@media (min-width:1024px){.featured-perspective__secondary-content{-ms-flex-line-pack:start;align-content:flex-start;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important;margin-top:0!important}}.featured-perspective__secondary-content.uni-twitter-feed.uni-initialized{border:0 solid #d7d7d7;border-width:1px 0;min-height:100%}.featured-perspective__secondary-content .twitter-feed__simple-tweet-wrapper{width:100%}.secondary-content__item{display:block;margin-left:auto!important;min-width:100%;padding-bottom:10px;position:relative}@media (min-width:1024px){.secondary-content__item{padding-bottom:16px}}.secondary-content__item:after{border-bottom:1px solid #d7d7d7;bottom:0;content:" ";left:50%;margin-left:-25%;position:absolute;width:50%}@media (min-width:600px){.secondary-content__item:after{left:0;margin:auto;right:0;width:100%}}@media (min-width:1024px){.secondary-content__item:after{display:none}}.secondary-content__item:first-of-type{margin-bottom:20px}@media (min-width:1024px){.secondary-content__item:first-of-type{border-bottom:1px solid #d7d7d7;margin-bottom:36px}}.author-list .author-block{display:-webkit-box;display:-ms-flexbox;display:flex;margin-bottom:40px!important;margin-top:10px;width:100%}.author-image{-webkit-box-flex:0;-ms-flex:0 0 22%;flex:0 0 22%;max-width:190px}@media (min-width:1024px){.author-image{-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%}}.author-image img{width:100%}.perspective-image{max-width:80px}@media (min-width:1440px){.q-a+.q-a{border-top:1px solid #d7d7d7;padding-top:50px}}.q-a__item .q-a__question{border-bottom-color:#d7d7d7;border-bottom-style:solid;border-bottom-width:0;margin-bottom:54px;padding-bottom:10px}@media (min-width:1024px){.q-a__item .q-a__question{border-bottom-width:1px;padding-bottom:41px}}.h-c-page.qa-single-detail{padding-bottom:40px}@media (min-width:1024px){.qa-single-detail .q-a__answer--letter.h-c-grid__col--2{margin-top:74px}}.q-a__content{margin-top:10px;width:100%}.q-a__highlight-box:before{background:#d7d7d7;content:"";display:block;height:1px;margin:30px auto;width:50%}@media (min-width:1024px){.q-a__highlight-box{background:#f5f5f5}.q-a__highlight-box:before{display:none}.q-a__highlight-box .q-a__highlight{padding:25px 18px 25px 25px}}.q-a__header-detail .q-a__highlight-box:before{width:100%}.q-a__header.landing-header .q-a__highlight-box:before{display:none}.qa-single-detail--share{border:0 solid;border-bottom-width:1px;border-color:#d7d7d7;padding-bottom:50px}@media (min-width:1024px){.qa-single-detail--share{border-bottom-width:0;border-left-width:1px;margin-bottom:0;margin-top:0;padding:0 20px}}.qa-single-detail--share.h-c-grid__col{margin-bottom:30px;margin-top:25px}.q-a__divider{display:none}@media (min-width:1024px){.q-a__divider{display:block}}.q-a__cta,.q-a__cta.h-c-grid__col{padding:5px 0 10px}@media (min-width:1024px){.q-a__cta,.q-a__cta.h-c-grid__col{margin-top:20px;padding-bottom:30px}}.q-a__cta.qa-single-detail--cta{border:0}@media (min-width:1024px){.q-a__cta.qa-single-detail--cta{padding:0}}.q-a__image{margin-bottom:25px;position:relative;width:100%}.q-a__image:before{content:"";display:block;padding-top:56.25%;width:100%}.q-a__image>.content{bottom:0;left:0;position:absolute;right:0;top:0}.q-a__image img{width:100%}@media (min-width:1024px){.q-a__image{border-radius:50%;overflow:hidden;padding-bottom:100%;position:relative;margin-bottom:0}.q-a__image img{height:auto;margin-left:50%;margin-top:50%;max-width:none;position:absolute;-webkit-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);width:auto}}@media (min-width:1024px){.q-a__image:before{padding:0}}.q-a__image-content{background-position:50%;background-size:cover}@media (min-width:1024px){.q-a__headline{margin-bottom:10px}}@media (min-width:1024px){.q-a__rule-m{display:none}}.q-a__rule-l{display:none}@media (min-width:1024px){.q-a__rule-l{display:block;margin-top:0}}.q-a__rule-detail-l.h-c-grid__col{margin-bottom:36px;margin-top:36px}.qa-single-detail--share .h-c-icon{fill:#757575}@media (min-width:1024px){.template-qalandingpage .q-a__item.h-c-grid{margin-bottom:105px}}.template-qalandingpage .q-a__item.h-c-grid:last-child{margin-bottom:0}.template-qalandingpage .q-a__item.h-c-grid .h-c-grid__col.h-c-grid__col-l--6.h-c-grid__col-s--4{margin-bottom:-60px}@media (min-width:1024px){.article-collection__top-line{margin-bottom:54px}}.article-collection__image{position:relative;background-position:50%}.article-collection__image:before{content:"";display:block;padding-top:56.25%;width:100%}.article-collection__image>.content{bottom:0;left:0;position:absolute;right:0;top:0}.article-collection__image-content{background-position:50%;background-size:cover}.article-collection__intro-column .rich-text,.article-collection__intro-column p{font-family:inherit;font-size:inherit;line-height:inherit}.article-collection__border-column,.article-collection__empty-column{display:none}@media (min-width:1024px){.article-collection__border-column,.article-collection__empty-column{display:block}}@media (min-width:1024px){.article-collection__border-column{border-left:1px solid #e0e0e0}}.article-collection__articles-list{margin-bottom:0}@media (min-width:1024px){.article-collection__articles-list{margin-top:0}}.article-collection__articles-list-item{margin-bottom:30px;margin-top:30px}@media (min-width:1024px){.article-collection__articles-list-item{border-bottom:1px solid #e0e0e0;padding-bottom:30px}}.article-collection__articles-list-item:first-of-type{margin-top:0}.article-collection__articles-list-item:last-of-type{border-bottom:none;margin-bottom:0;padding-bottom:0}.article-collection__articles-list-anchor{display:block}.article-collection__articles-list-author{color:#414141}@media (min-width:1024px){.article-collection__bottom-line{margin-bottom:54px;margin-top:54px}}.uni-blog-article-recommended .uni-blog-nup__column{border-bottom:0;border:2px solid #eee;min-width:400px;width:30%;margin-bottom:0;background:#fff;padding:12px;border-radius:5px}.uni-blog-article-recommended .uni-blog-nup__column:first-child{margin-left:0}@media (min-width:600px){.uni-blog-article-recommended .uni-blog-nup__column--3up:nth-child(n+3){display:block}}.uni-blog-article-recommended .uni-blog-nup__column .uni-blog-nup__image{margin-bottom:0}.uni-blog-article-recommended .uni-blog-nup__column p{font-size:12px;color:#757575;text-transform:capitalize;margin-bottom:5px;font-weight:400}.uni-blog-article-recommended .uni-blog-nup__column h4.h-u-font-weight-medium{font-size:18px;letter-spacing:0;color:#212121;font-weight:400}.uni-blog-article-recommended .uni-blog-nup{padding:48px 32px;background:#fafafa;margin-bottom:0!important}.uni-blog-article-recommended .uni-blog-nup__headline{text-transform:capitalize;font-size:28px;font-weight:400;margin-bottom:24px;margin:0 auto 24px;max-width:1280px}.uni-blog-article-recommended .uni-blog-nup__columns{overflow-x:auto;-ms-flex-wrap:unset;flex-wrap:unset;padding-bottom:15px;display:-webkit-box;display:-ms-flexbox;display:flex;max-width:1280px;margin:0 auto;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.uni-blog-article-recommended .uni-blog-nup__column-contents{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row;flex-flow:row}.uni-blog-article-recommended .uni-blog-nup__column-contents div:first-child{width:135px}.uni-blog-article-recommended .uni-blog-nup__column-contents .content-block{margin:0 10px}.h-c-footer.h-c-footer--topmargin{margin-top:0}.uni-tombstone{margin-bottom:60px}.template-productsnavigationpage .uni-blog-nup__headline,.template-topicsnavigationpage .uni-blog-nup__headline{margin-top:40px}.template-productsnavigationpage .landing-tertiary-list,.template-topicsnavigationpage .landing-tertiary-list{margin-top:40px;padding-top:0}@media (min-width:1024px){.template-productsnavigationpage .landing-tertiary-list,.template-topicsnavigationpage .landing-tertiary-list{margin-top:50px}}.template-productsnavigationpage .landing-tertiary-list__title,.template-topicsnavigationpage .landing-tertiary-list__title{margin-bottom:35px}@media (min-width:1024px){.template-productsnavigationpage .landing-tertiary-list__title,.template-topicsnavigationpage .landing-tertiary-list__title{margin-bottom:40px}}.uni-blog-article-content{position:relative}:host{display:block}.wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;min-height:100vh;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.content{-webkit-box-flex:1;-ms-flex:1;flex:1}</style><style ng-transition="cloudblog">[_nghost-c1]{display:block;position:fixed;top:0;width:100%; z-index:110}.page-loading[_ngcontent-c1]{position:absolute;top:-2px;width:100%}</style><style ng-transition="cloudblog">[_nghost-c2] .header-top__cta[_ngcontent-c2]{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:none;height:50%;padding:9px 9px 9px;position:absolute;right:0;top:0}@media (min-width:425px){[_nghost-c2] .header-top__cta[_ngcontent-c2]{display:-webkit-box;display:-ms-flexbox;display:flex}} [_nghost-c2]{ }[_nghost-c2] .h-c-header__company-logo-img[_ngcontent-c2], [_nghost-c2] .h-c-header__drawer-company-logo-img[_ngcontent-c2]{width:181px;height:28px}[_nghost-c2] .h-c-header.h-c-header--corporate-initiative[_ngcontent-c2]{z-index:102;position:relative}[_nghost-c2] .h-c-header--corporate-initiative[_ngcontent-c2] .h-c-header__nav[_ngcontent-c2]{margin-left:36px}[_nghost-c2] .h-c-header__initiative-logo-text[_ngcontent-c2]{font-size:16px}@media screen and (min-width:900px){[_nghost-c2] .h-c-header__initiative-logo-text[_ngcontent-c2]{font-size:22px}}[_nghost-c2] .uni-header-search-button__icon[_ngcontent-c2]{fill:rgba(0,0,0,.54);height:22px;top:10px}[_nghost-c2] .h-c-header__nav-li[_ngcontent-c2]{margin-left:28px}[_nghost-c2] .h-c-header__nav-li[_ngcontent-c2]:first-child{margin-left:0}[_nghost-c2] .h-c-header__initiative-logo[_ngcontent-c2]{clear:both}[_nghost-c2] .h-c-header__bar[_ngcontent-c2]{border-bottom:1px solid #ddd}[_nghost-c2] .h-c-header__bar--no-shadow[_ngcontent-c2]{-webkit-box-shadow:none;box-shadow:none} .mobile-drawer[_ngcontent-c2]{background:#fff;position:fixed;width:100%;top:0;-webkit-transform:translateY(-350px);transform:translateY(-350px)}.mobile-drawer[_ngcontent-c2], .mobile-drawer.h-is-visible[_ngcontent-c2]{-webkit-transition:-webkit-transform .3s cubic-bezier(.4,0,.2,1);transition:-webkit-transform .3s cubic-bezier(.4,0,.2,1);transition:transform .3s cubic-bezier(.4,0,.2,1);transition:transform .3s cubic-bezier(.4,0,.2,1),-webkit-transform .3s cubic-bezier(.4,0,.2,1)}.mobile-drawer.h-is-visible[_ngcontent-c2]{-webkit-transform:translateY(112px);transform:translateY(112px)}.mobile-drawer__nav[_ngcontent-c2]{clear:both}.mobile-drawer__nav-list[_ngcontent-c2]{margin:0;padding:0}.mobile-drawer__nav-li[_ngcontent-c2]{padding:12px 16px;font-family:Google Sans,Helvetica,Arial,sans-serif}.mobile-drawer__nav-li[_ngcontent-c2]:last-child{margin-bottom:20px}.mobile-drawer__nav-li[_ngcontent-c2] a[_ngcontent-c2]{display:block}.h-c-header-menu-dropdown__button[_ngcontent-c2]{display:-webkit-box;display:-ms-flexbox;display:flex;float:right;height:56px;cursor:pointer}@media screen and (min-width:900px){.h-c-header-menu-dropdown__button[_ngcontent-c2]{display:none}}.h-c-header-menu-dropdown__label[_ngcontent-c2]{margin-right:8px;font-size:14px;font-family:Google Sans,Helvetica,Arial,sans-serif;letter-spacing:.2px;color:rgba(0,0,0,.54)}.h-c-header-menu-dropdown__label[_ngcontent-c2], .h-c-header-menu-dropdown__svg[_ngcontent-c2]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.h-c-header-menu-dropdown__svg[_ngcontent-c2]{width:12px;height:100%;margin:1px 20px 0 0;fill:rgba(0,0,0,.4);-webkit-transform:rotate(180deg);transform:rotate(180deg)}.h-c-header-menu-dropdown__svg[_ngcontent-c2], .h-c-header-menu-dropdown__svg--up[_ngcontent-c2]{-webkit-transition:-webkit-transform .2s cubic-bezier(.4,0,.2,1);transition:-webkit-transform .2s cubic-bezier(.4,0,.2,1);transition:transform .2s cubic-bezier(.4,0,.2,1);transition:transform .2s cubic-bezier(.4,0,.2,1),-webkit-transform .2s cubic-bezier(.4,0,.2,1)}.h-c-header-menu-dropdown__svg--up[_ngcontent-c2]{-webkit-transform:rotate(0);transform:rotate(0)}.h-c-header__nav-li[_ngcontent-c2]{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.h-c-header__nav-li[_ngcontent-c2] a[_ngcontent-c2]{margin-right:10px}.h-c-header__nav-li[_ngcontent-c2]:hover svg[_ngcontent-c2]{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.h-c-header__nav-li[_ngcontent-c2]:hover .sub-nav[_ngcontent-c2]{display:block}.sub-nav[_ngcontent-c2]{width:240px;height:auto;position:absolute;left:0;top:85%;z-index:100;background:#fff;border:.0625rem solid #e0e0e0;padding:.875rem 1.1875rem;display:none;border-radius:7px}.sub-nav__item[_ngcontent-c2]{width:100%;margin-bottom:5px}.sub-nav__item.h-c-header__nav-li[_ngcontent-c2], .sub-nav__item.h-c-header__nav-li[_ngcontent-c2]:first-child{margin-left:12px}.sub-nav__item[_ngcontent-c2] a[_ngcontent-c2]{text-decoraion:none;color:#5f6368;cursor:pointer}.sub-nav__item[_ngcontent-c2] a[_ngcontent-c2]:hover{color:#000}.sub-nav__item[_ngcontent-c2]:nth-child(5){height:20px}.sub-nav__item[_ngcontent-c2]:nth-child(5) svg[_ngcontent-c2]{-webkit-transform:rotate(-90deg);transform:rotate(-90deg);margin-left:100px}.sub-nav__item[_ngcontent-c2]:nth-child(5):hover .sub-nav__third-level[_ngcontent-c2]{display:block}.sub-nav__item[_ngcontent-c2]:nth-child(5):hover svg[_ngcontent-c2]{float:right}.sub-nav__item[_ngcontent-c2] .sub-nav__third-level[_ngcontent-c2]{position:absolute;top:-10px;left:90%;width:240px;z-index:100;background:#fff;border:.0625rem solid #e0e0e0;padding:.875rem 1.1875rem;border-radius:7px;display:none}.sub-nav__item[_ngcontent-c2] .sub-nav__third-level[_ngcontent-c2] li[_ngcontent-c2]{margin-bottom:5px}</style><style ng-transition="cloudblog">.language-selector-btn[_ngcontent-c3]{color:#5f6368;line-height:22px;font-size:14px;font-weight:400}.language-selector-btn[_ngcontent-c3]:focus, .language-selector-btn[_ngcontent-c3]:hover{background:#e8eaed;outline:10px solid #e8eaed;color:#202124}.language-selector-btn[_ngcontent-c3] .mat-icon[_ngcontent-c3]{font-size:20px;line-height:22px}[_nghost-c3] .mat-button-focus-overlay{background:none}a.mat-menu-item[_ngcontent-c3]{color:#000}</style><style ng-transition="cloudblog">[_nghost-c5] .header__search-button[_ngcontent-c5]{background:none;border:0;-webkit-appearance:none}[_nghost-c5] .search-bar__form[_ngcontent-c5]{background-color:#f1f3f4;border-radius:4px;-webkit-box-shadow:none;box-shadow:none;font-family:Google Sans,Helvetica,Arial,sans-serif}@media screen and (min-width:900){[_nghost-c5] .search-bar__form[_ngcontent-c5]{right:62px}}[_nghost-c5] input.search-bar__input[_ngcontent-c5]{font-size:.8em;letter-spacing:.5px;padding-left:56px}[_nghost-c5] input.search-bar__input[_ngcontent-c5]::-webkit-input-placeholder{color:#9aa0a6}[_nghost-c5] input.search-bar__input[_ngcontent-c5]:-ms-input-placeholder, [_nghost-c5] input.search-bar__input[_ngcontent-c5]::-ms-input-placeholder{color:#9aa0a6}[_nghost-c5] input.search-bar__input[_ngcontent-c5]::placeholder{color:#9aa0a6}[_nghost-c5] .search-bar__button[_ngcontent-c5]{bottom:22px;height:22px}[_nghost-c5] .search-bar__button--search[_ngcontent-c5]{left:16px}[_nghost-c5] .search-bar__button[_ngcontent-c5] svg[_ngcontent-c5]{fill:#999}[_nghost-c5] .search-bar__button[_ngcontent-c5]{bottom:16px;height:24px}[_nghost-c5] .search-bar__button--close[_ngcontent-c5]{right:16px}[_nghost-c5] .search-bar.mobile[_ngcontent-c5]{padding:16px}[_nghost-c5] .search-bar.mobile[_ngcontent-c5]:after{content:"";clear:both;display:block}.uni-desktop-search-visible [_nghost-c5] .search-bar__form[_ngcontent-c5]{right:62px;width:60%;max-width:640px;bottom:5px}@media screen and (min-width:900px){.uni-desktop-search-visible [_nghost-c5] .search-bar__form[_ngcontent-c5]{bottom:10px}}</style><style ng-transition="cloudblog">.glue-c-popover__dialog[_ngcontent-c6]{top:0} [_nghost-c6] .nav-kebab-popover__trigger[_ngcontent-c6]{top:10px}[_nghost-c6] .nav-kebab__icon[_ngcontent-c6]{fill:rgba(0,0,0,.54);height:24px}[_nghost-c6] .glue-c-popover__dialog[_ngcontent-c6]{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.4);box-shadow:0 1px 2px rgba(0,0,0,.4);padding:10px 18px 5px;right:4px}[_nghost-c6] #secondary-nav-list[_ngcontent-c6]{margin-top:36px}[_nghost-c6] .nav-kebab-popover__dialog[_ngcontent-c6]{width:175px}[_nghost-c6] .nav-kebab-popover__dialog[_ngcontent-c6] li[_ngcontent-c6]{color:rgba(0,0,0,.87);font-size:14px;letter-spacing:.3px;margin-bottom:12px}[_nghost-c6] .nav-kebab-popover__dialog[_ngcontent-c6] a[_ngcontent-c6]{display:block}[_nghost-c6] .nav-kebab-popover__dialog[_ngcontent-c6] svg[_ngcontent-c6]{fill:rgba(0,0,0,.54);vertical-align:top}</style><style ng-transition="cloudblog">[_nghost-c7]{display:block;width:100%}[_nghost-c7] .h-c-social--popover[_ngcontent-c7]{float:right}[_nghost-c7] .h-c-social__dialog--popover[_ngcontent-c7]{z-index:2}[_nghost-c7] .h-c-social__list--popover[_ngcontent-c7]{padding-top:0}[_nghost-c7] .h-c-social__item[_ngcontent-c7]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.site-footer[_ngcontent-c7] .h-c-social[_ngcontent-c7]{border-bottom:1px solid #dadce0;margin-bottom:0;padding-bottom:20px}</style><style ng-transition="cloudblog">.mat-button,.mat-flat-button,.mat-icon-button,.mat-stroked-button{box-sizing:border-box;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;outline:0;border:none;-webkit-tap-highlight-color:transparent;display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:88px;line-height:36px;padding:0 16px;border-radius:2px}.mat-button[disabled],.mat-flat-button[disabled],.mat-icon-button[disabled],.mat-stroked-button[disabled]{cursor:default}.mat-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-button.cdk-program-focused .mat-button-focus-overlay,.mat-flat-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-flat-button.cdk-program-focused .mat-button-focus-overlay,.mat-icon-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-icon-button.cdk-program-focused .mat-button-focus-overlay,.mat-stroked-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-stroked-button.cdk-program-focused .mat-button-focus-overlay{opacity:1}.mat-button::-moz-focus-inner,.mat-flat-button::-moz-focus-inner,.mat-icon-button::-moz-focus-inner,.mat-stroked-button::-moz-focus-inner{border:0}.mat-button .mat-button-focus-overlay,.mat-icon-button .mat-button-focus-overlay{transition:none;opacity:0}.mat-button:hover .mat-button-focus-overlay,.mat-stroked-button:hover .mat-button-focus-overlay{opacity:1}.mat-raised-button{box-sizing:border-box;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;outline:0;border:none;-webkit-tap-highlight-color:transparent;display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:88px;line-height:36px;padding:0 16px;border-radius:2px;transform:translate3d(0,0,0);transition:background .4s cubic-bezier(.25,.8,.25,1),box-shadow 280ms cubic-bezier(.4,0,.2,1)}.mat-raised-button[disabled]{cursor:default}.mat-raised-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-raised-button.cdk-program-focused .mat-button-focus-overlay{opacity:1}.mat-raised-button::-moz-focus-inner{border:0}.mat-raised-button:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}.mat-raised-button:not([disabled]):active:not([class*=mat-elevation-z]){box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.mat-raised-button[disabled]{box-shadow:none}.mat-stroked-button{border:1px solid currentColor;padding:0 15px;line-height:34px}.mat-stroked-button:not([class*=mat-elevation-z]){box-shadow:0 0 0 0 rgba(0,0,0,.2),0 0 0 0 rgba(0,0,0,.14),0 0 0 0 rgba(0,0,0,.12)}.mat-flat-button:not([class*=mat-elevation-z]){box-shadow:0 0 0 0 rgba(0,0,0,.2),0 0 0 0 rgba(0,0,0,.14),0 0 0 0 rgba(0,0,0,.12)}.mat-fab{box-sizing:border-box;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;outline:0;border:none;-webkit-tap-highlight-color:transparent;display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:88px;line-height:36px;padding:0 16px;border-radius:2px;transform:translate3d(0,0,0);transition:background .4s cubic-bezier(.25,.8,.25,1),box-shadow 280ms cubic-bezier(.4,0,.2,1);min-width:0;border-radius:50%;width:56px;height:56px;padding:0;flex-shrink:0}.mat-fab[disabled]{cursor:default}.mat-fab.cdk-keyboard-focused .mat-button-focus-overlay,.mat-fab.cdk-program-focused .mat-button-focus-overlay{opacity:1}.mat-fab::-moz-focus-inner{border:0}.mat-fab:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}.mat-fab:not([disabled]):active:not([class*=mat-elevation-z]){box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.mat-fab[disabled]{box-shadow:none}.mat-fab:not([class*=mat-elevation-z]){box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)}.mat-fab:not([disabled]):active:not([class*=mat-elevation-z]){box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 12px 17px 2px rgba(0,0,0,.14),0 5px 22px 4px rgba(0,0,0,.12)}.mat-fab .mat-button-wrapper{padding:16px 0;display:inline-block;line-height:24px}.mat-mini-fab{box-sizing:border-box;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;outline:0;border:none;-webkit-tap-highlight-color:transparent;display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:88px;line-height:36px;padding:0 16px;border-radius:2px;transform:translate3d(0,0,0);transition:background .4s cubic-bezier(.25,.8,.25,1),box-shadow 280ms cubic-bezier(.4,0,.2,1);min-width:0;border-radius:50%;width:40px;height:40px;padding:0;flex-shrink:0}.mat-mini-fab[disabled]{cursor:default}.mat-mini-fab.cdk-keyboard-focused .mat-button-focus-overlay,.mat-mini-fab.cdk-program-focused .mat-button-focus-overlay{opacity:1}.mat-mini-fab::-moz-focus-inner{border:0}.mat-mini-fab:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}.mat-mini-fab:not([disabled]):active:not([class*=mat-elevation-z]){box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.mat-mini-fab[disabled]{box-shadow:none}.mat-mini-fab:not([class*=mat-elevation-z]){box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)}.mat-mini-fab:not([disabled]):active:not([class*=mat-elevation-z]){box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 12px 17px 2px rgba(0,0,0,.14),0 5px 22px 4px rgba(0,0,0,.12)}.mat-mini-fab .mat-button-wrapper{padding:8px 0;display:inline-block;line-height:24px}.mat-icon-button{padding:0;min-width:0;width:40px;height:40px;flex-shrink:0;line-height:40px;border-radius:50%}.mat-icon-button .mat-icon,.mat-icon-button i{line-height:24px}.mat-button,.mat-fab,.mat-icon-button,.mat-mini-fab,.mat-raised-button{color:currentColor}.mat-button .mat-button-wrapper>*,.mat-fab .mat-button-wrapper>*,.mat-icon-button .mat-button-wrapper>*,.mat-mini-fab .mat-button-wrapper>*,.mat-raised-button .mat-button-wrapper>*{vertical-align:middle}.mat-button-focus-overlay,.mat-button-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-button-focus-overlay{background-color:rgba(0,0,0,.12);border-radius:inherit;opacity:0;transition:opacity .2s cubic-bezier(.35,0,.25,1),background-color .2s cubic-bezier(.35,0,.25,1)}@media screen and (-ms-high-contrast:active){.mat-button-focus-overlay{background-color:rgba(255,255,255,.5)}}.mat-button-ripple-round{border-radius:50%;z-index:1}@media screen and (-ms-high-contrast:active){.mat-button,.mat-fab,.mat-flat-button,.mat-icon-button,.mat-mini-fab,.mat-raised-button{outline:solid 1px}}</style><style ng-transition="cloudblog">.mat-icon{background-repeat:no-repeat;display:inline-block;fill:currentColor;height:24px;width:24px}</style><style ng-transition="cloudblog">.mat-menu-panel{min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;max-height:calc(100vh - 48px);border-radius:2px;outline:0}.mat-menu-panel:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}.mat-menu-panel.mat-menu-after.mat-menu-below{transform-origin:left top}.mat-menu-panel.mat-menu-after.mat-menu-above{transform-origin:left bottom}.mat-menu-panel.mat-menu-before.mat-menu-below{transform-origin:right top}.mat-menu-panel.mat-menu-before.mat-menu-above{transform-origin:right bottom}[dir=rtl] .mat-menu-panel.mat-menu-after.mat-menu-below{transform-origin:right top}[dir=rtl] .mat-menu-panel.mat-menu-after.mat-menu-above{transform-origin:right bottom}[dir=rtl] .mat-menu-panel.mat-menu-before.mat-menu-below{transform-origin:left top}[dir=rtl] .mat-menu-panel.mat-menu-before.mat-menu-above{transform-origin:left bottom}.mat-menu-panel.ng-animating{pointer-events:none}@media screen and (-ms-high-contrast:active){.mat-menu-panel{outline:solid 1px}}.mat-menu-content{padding-top:8px;padding-bottom:8px}.mat-menu-item{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;outline:0;border:none;-webkit-tap-highlight-color:transparent;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;line-height:48px;height:48px;padding:0 16px;text-align:left;text-decoration:none;position:relative}.mat-menu-item[disabled]{cursor:default}[dir=rtl] .mat-menu-item{text-align:right}.mat-menu-item .mat-icon{margin-right:16px;vertical-align:middle}[dir=rtl] .mat-menu-item .mat-icon{margin-left:16px;margin-right:0}.mat-menu-item-submenu-trigger{padding-right:32px}.mat-menu-item-submenu-trigger::after{width:0;height:0;border-style:solid;border-width:5px 0 5px 5px;border-color:transparent transparent transparent currentColor;content:'';display:inline-block;position:absolute;top:50%;right:16px;transform:translateY(-50%)}[dir=rtl] .mat-menu-item-submenu-trigger{padding-right:16px;padding-left:32px}[dir=rtl] .mat-menu-item-submenu-trigger::after{right:auto;left:16px;transform:rotateY(180deg) translateY(-50%)}button.mat-menu-item{width:100%}.mat-menu-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}</style><style ng-transition="cloudblog">.mat-progress-bar{display:block;height:5px;overflow:hidden;position:relative;transition:opacity 250ms linear;width:100%}.mat-progress-bar .mat-progress-bar-element,.mat-progress-bar .mat-progress-bar-fill::after{height:100%;position:absolute;width:100%}.mat-progress-bar .mat-progress-bar-background{width:calc(100% + 10px)}.mat-progress-bar .mat-progress-bar-buffer{transform-origin:top left;transition:transform 250ms ease}.mat-progress-bar .mat-progress-bar-secondary{display:none}.mat-progress-bar .mat-progress-bar-fill{animation:none;transform-origin:top left;transition:transform 250ms ease}.mat-progress-bar .mat-progress-bar-fill::after{animation:none;content:'';display:inline-block;left:0}.mat-progress-bar[dir=rtl],[dir=rtl] .mat-progress-bar{transform:rotateY(180deg)}.mat-progress-bar[mode=query]{transform:rotateZ(180deg)}.mat-progress-bar[mode=query][dir=rtl],[dir=rtl] .mat-progress-bar[mode=query]{transform:rotateZ(180deg) rotateY(180deg)}.mat-progress-bar[mode=indeterminate] .mat-progress-bar-fill,.mat-progress-bar[mode=query] .mat-progress-bar-fill{transition:none}.mat-progress-bar[mode=indeterminate] .mat-progress-bar-primary,.mat-progress-bar[mode=query] .mat-progress-bar-primary{-webkit-backface-visibility:hidden;backface-visibility:hidden;animation:mat-progress-bar-primary-indeterminate-translate 2s infinite linear;left:-145.166611%}.mat-progress-bar[mode=indeterminate] .mat-progress-bar-primary.mat-progress-bar-fill::after,.mat-progress-bar[mode=query] .mat-progress-bar-primary.mat-progress-bar-fill::after{-webkit-backface-visibility:hidden;backface-visibility:hidden;animation:mat-progress-bar-primary-indeterminate-scale 2s infinite linear}.mat-progress-bar[mode=indeterminate] .mat-progress-bar-secondary,.mat-progress-bar[mode=query] .mat-progress-bar-secondary{-webkit-backface-visibility:hidden;backface-visibility:hidden;animation:mat-progress-bar-secondary-indeterminate-translate 2s infinite linear;left:-54.888891%;display:block}.mat-progress-bar[mode=indeterminate] .mat-progress-bar-secondary.mat-progress-bar-fill::after,.mat-progress-bar[mode=query] .mat-progress-bar-secondary.mat-progress-bar-fill::after{-webkit-backface-visibility:hidden;backface-visibility:hidden;animation:mat-progress-bar-secondary-indeterminate-scale 2s infinite linear}.mat-progress-bar[mode=buffer] .mat-progress-bar-background{-webkit-backface-visibility:hidden;backface-visibility:hidden;animation:mat-progress-bar-background-scroll 250ms infinite linear}@keyframes mat-progress-bar-primary-indeterminate-translate{0%{transform:translateX(0)}20%{animation-timing-function:cubic-bezier(.5,0,.70173,.49582);transform:translateX(0)}59.15%{animation-timing-function:cubic-bezier(.30244,.38135,.55,.95635);transform:translateX(83.67142%)}100%{transform:translateX(200.61106%)}}@keyframes mat-progress-bar-primary-indeterminate-scale{0%{transform:scaleX(.08)}36.65%{animation-timing-function:cubic-bezier(.33473,.12482,.78584,1);transform:scaleX(.08)}69.15%{animation-timing-function:cubic-bezier(.06,.11,.6,1);transform:scaleX(.66148)}100%{transform:scaleX(.08)}}@keyframes mat-progress-bar-secondary-indeterminate-translate{0%{animation-timing-function:cubic-bezier(.15,0,.51506,.40969);transform:translateX(0)}25%{animation-timing-function:cubic-bezier(.31033,.28406,.8,.73371);transform:translateX(37.65191%)}48.35%{animation-timing-function:cubic-bezier(.4,.62704,.6,.90203);transform:translateX(84.38617%)}100%{transform:translateX(160.27778%)}}@keyframes mat-progress-bar-secondary-indeterminate-scale{0%{animation-timing-function:cubic-bezier(.15,0,.51506,.40969);transform:scaleX(.08)}19.15%{animation-timing-function:cubic-bezier(.31033,.28406,.8,.73371);transform:scaleX(.4571)}44.15%{animation-timing-function:cubic-bezier(.4,.62704,.6,.90203);transform:scaleX(.72796)}100%{transform:scaleX(.08)}}@keyframes mat-progress-bar-background-scroll{to{transform:translateX(-10px)}}</style><style ng-transition="cloudblog">code{box-decoration-break:clone;color:#6e6f7d;font-family:Monaco,Courier New,Courier,monospace;font-size:14px;font-weight:400;overflow-x:auto;-webkit-box-decoration-break:clone;white-space:normal;word-wrap:normal}code,pre{background:#f5f5f5;padding:6px}pre{margin-bottom:20px;white-space:pre}pre code{background:none;padding:25px} .tombstone{margin-left:0}</style><style ng-transition="cloudblog">.h-google-red-50[_ngcontent-c75]{color:#fbe9e7}.h-bg-google-red-50[_ngcontent-c75]{background-color:#fbe9e7}.h-google-red-100[_ngcontent-c75]{color:#f4c7c3}.h-bg-google-red-100[_ngcontent-c75]{background-color:#f4c7c3}.h-google-red-200[_ngcontent-c75]{color:#eda29b}.h-bg-google-red-200[_ngcontent-c75]{background-color:#eda29b}.h-google-red-300[_ngcontent-c75]{color:#e67c73}.h-bg-google-red-300[_ngcontent-c75]{background-color:#e67c73}.h-google-red-400[_ngcontent-c75]{color:#e06055}.h-bg-google-red-400[_ngcontent-c75]{background-color:#e06055}.h-google-red-500[_ngcontent-c75]{color:#db4437}.h-bg-google-red-500[_ngcontent-c75]{background-color:#db4437}.h-google-red-600[_ngcontent-c75]{color:#d23f31}.h-bg-google-red-600[_ngcontent-c75]{background-color:#d23f31}.h-google-red-700[_ngcontent-c75]{color:#c53929}.h-bg-google-red-700[_ngcontent-c75]{background-color:#c53929}.h-google-red-800[_ngcontent-c75]{color:#b93221}.h-bg-google-red-800[_ngcontent-c75]{background-color:#b93221}.h-google-red-900[_ngcontent-c75]{color:#a52714}.h-bg-google-red-900[_ngcontent-c75]{background-color:#a52714}.h-pink-50[_ngcontent-c75]{color:#fce4ec}.h-bg-pink-50[_ngcontent-c75]{background-color:#fce4ec}.h-pink-100[_ngcontent-c75]{color:#f8bbd0}.h-bg-pink-100[_ngcontent-c75]{background-color:#f8bbd0}.h-pink-200[_ngcontent-c75]{color:#f48fb1}.h-bg-pink-200[_ngcontent-c75]{background-color:#f48fb1}.h-pink-300[_ngcontent-c75]{color:#f06292}.h-bg-pink-300[_ngcontent-c75]{background-color:#f06292}.h-pink-400[_ngcontent-c75]{color:#ec407a}.h-bg-pink-400[_ngcontent-c75]{background-color:#ec407a}.h-pink-500[_ngcontent-c75]{color:#e91e63}.h-bg-pink-500[_ngcontent-c75]{background-color:#e91e63}.h-pink-600[_ngcontent-c75]{color:#d81b60}.h-bg-pink-600[_ngcontent-c75]{background-color:#d81b60}.h-pink-700[_ngcontent-c75]{color:#c2185b}.h-bg-pink-700[_ngcontent-c75]{background-color:#c2185b}.h-pink-800[_ngcontent-c75]{color:#ad1457}.h-bg-pink-800[_ngcontent-c75]{background-color:#ad1457}.h-pink-900[_ngcontent-c75]{color:#880e4f}.h-bg-pink-900[_ngcontent-c75]{background-color:#880e4f}.h-purple-50[_ngcontent-c75]{color:#f3e5f5}.h-bg-purple-50[_ngcontent-c75]{background-color:#f3e5f5}.h-purple-100[_ngcontent-c75]{color:#e1bee7}.h-bg-purple-100[_ngcontent-c75]{background-color:#e1bee7}.h-purple-200[_ngcontent-c75]{color:#ce93d8}.h-bg-purple-200[_ngcontent-c75]{background-color:#ce93d8}.h-purple-300[_ngcontent-c75]{color:#ba68c8}.h-bg-purple-300[_ngcontent-c75]{background-color:#ba68c8}.h-purple-400[_ngcontent-c75]{color:#ab47bc}.h-bg-purple-400[_ngcontent-c75]{background-color:#ab47bc}.h-purple-500[_ngcontent-c75]{color:#9c27b0}.h-bg-purple-500[_ngcontent-c75]{background-color:#9c27b0}.h-purple-600[_ngcontent-c75]{color:#8e24aa}.h-bg-purple-600[_ngcontent-c75]{background-color:#8e24aa}.h-purple-700[_ngcontent-c75]{color:#7b1fa2}.h-bg-purple-700[_ngcontent-c75]{background-color:#7b1fa2}.h-purple-800[_ngcontent-c75]{color:#6a1b9a}.h-bg-purple-800[_ngcontent-c75]{background-color:#6a1b9a}.h-purple-900[_ngcontent-c75]{color:#4a148c}.h-bg-purple-900[_ngcontent-c75]{background-color:#4a148c}.h-deep-purple-50[_ngcontent-c75]{color:#ede7f6}.h-bg-deep-purple-50[_ngcontent-c75]{background-color:#ede7f6}.h-deep-purple-100[_ngcontent-c75]{color:#d1c4e9}.h-bg-deep-purple-100[_ngcontent-c75]{background-color:#d1c4e9}.h-deep-purple-200[_ngcontent-c75]{color:#b39ddb}.h-bg-deep-purple-200[_ngcontent-c75]{background-color:#b39ddb}.h-deep-purple-300[_ngcontent-c75]{color:#9575cd}.h-bg-deep-purple-300[_ngcontent-c75]{background-color:#9575cd}.h-deep-purple-400[_ngcontent-c75]{color:#7e57c2}.h-bg-deep-purple-400[_ngcontent-c75]{background-color:#7e57c2}.h-deep-purple-500[_ngcontent-c75]{color:#673ab7}.h-bg-deep-purple-500[_ngcontent-c75]{background-color:#673ab7}.h-deep-purple-600[_ngcontent-c75]{color:#5e35b1}.h-bg-deep-purple-600[_ngcontent-c75]{background-color:#5e35b1}.h-deep-purple-700[_ngcontent-c75]{color:#512da8}.h-bg-deep-purple-700[_ngcontent-c75]{background-color:#512da8}.h-deep-purple-800[_ngcontent-c75]{color:#4527a0}.h-bg-deep-purple-800[_ngcontent-c75]{background-color:#4527a0}.h-deep-purple-900[_ngcontent-c75]{color:#311b92}.h-bg-deep-purple-900[_ngcontent-c75]{background-color:#311b92}.h-indigo-50[_ngcontent-c75]{color:#e8eaf6}.h-bg-indigo-50[_ngcontent-c75]{background-color:#e8eaf6}.h-indigo-100[_ngcontent-c75]{color:#c5cae9}.h-bg-indigo-100[_ngcontent-c75]{background-color:#c5cae9}.h-indigo-200[_ngcontent-c75]{color:#9fa8da}.h-bg-indigo-200[_ngcontent-c75]{background-color:#9fa8da}.h-indigo-300[_ngcontent-c75]{color:#7986cb}.h-bg-indigo-300[_ngcontent-c75]{background-color:#7986cb}.h-indigo-400[_ngcontent-c75]{color:#5c6bc0}.h-bg-indigo-400[_ngcontent-c75]{background-color:#5c6bc0}.h-indigo-500[_ngcontent-c75]{color:#3f51b5}.h-bg-indigo-500[_ngcontent-c75]{background-color:#3f51b5}.h-indigo-600[_ngcontent-c75]{color:#3949ab}.h-bg-indigo-600[_ngcontent-c75]{background-color:#3949ab}.h-indigo-700[_ngcontent-c75]{color:#303f9f}.h-bg-indigo-700[_ngcontent-c75]{background-color:#303f9f}.h-indigo-800[_ngcontent-c75]{color:#283593}.h-bg-indigo-800[_ngcontent-c75]{background-color:#283593}.h-indigo-900[_ngcontent-c75]{color:#1a237e}.h-bg-indigo-900[_ngcontent-c75]{background-color:#1a237e}.h-google-blue-50[_ngcontent-c75]{color:#e8f0fe}.h-bg-google-blue-50[_ngcontent-c75]{background-color:#e8f0fe}.h-google-blue-100[_ngcontent-c75]{color:#c6dafc}.h-bg-google-blue-100[_ngcontent-c75]{background-color:#c6dafc}.h-google-blue-200[_ngcontent-c75]{color:#a1c2fa}.h-bg-google-blue-200[_ngcontent-c75]{background-color:#a1c2fa}.h-google-blue-300[_ngcontent-c75]{color:#7baaf7}.h-bg-google-blue-300[_ngcontent-c75]{background-color:#7baaf7}.h-google-blue-400[_ngcontent-c75]{color:#5e97f6}.h-bg-google-blue-400[_ngcontent-c75]{background-color:#5e97f6}.h-google-blue-500[_ngcontent-c75]{color:#4285f4}.h-bg-google-blue-500[_ngcontent-c75]{background-color:#4285f4}.h-google-blue-600[_ngcontent-c75]{color:#3b78e7}.h-bg-google-blue-600[_ngcontent-c75]{background-color:#3b78e7}.h-google-blue-700[_ngcontent-c75]{color:#3367d6}.h-bg-google-blue-700[_ngcontent-c75]{background-color:#3367d6}.h-google-blue-800[_ngcontent-c75]{color:#2a56c6}.h-bg-google-blue-800[_ngcontent-c75]{background-color:#2a56c6}.h-google-blue-900[_ngcontent-c75]{color:#1c3aa9}.h-bg-google-blue-900[_ngcontent-c75]{background-color:#1c3aa9}.h-light-blue-50[_ngcontent-c75]{color:#e1f5fe}.h-bg-light-blue-50[_ngcontent-c75]{background-color:#e1f5fe}.h-light-blue-100[_ngcontent-c75]{color:#b3e5fc}.h-bg-light-blue-100[_ngcontent-c75]{background-color:#b3e5fc}.h-light-blue-200[_ngcontent-c75]{color:#81d4fa}.h-bg-light-blue-200[_ngcontent-c75]{background-color:#81d4fa}.h-light-blue-300[_ngcontent-c75]{color:#4fc3f7}.h-bg-light-blue-300[_ngcontent-c75]{background-color:#4fc3f7}.h-light-blue-400[_ngcontent-c75]{color:#29b6f6}.h-bg-light-blue-400[_ngcontent-c75]{background-color:#29b6f6}.h-light-blue-500[_ngcontent-c75]{color:#03a9f4}.h-bg-light-blue-500[_ngcontent-c75]{background-color:#03a9f4}.h-light-blue-600[_ngcontent-c75]{color:#039be5}.h-bg-light-blue-600[_ngcontent-c75]{background-color:#039be5}.h-light-blue-700[_ngcontent-c75]{color:#0288d1}.h-bg-light-blue-700[_ngcontent-c75]{background-color:#0288d1}.h-light-blue-800[_ngcontent-c75]{color:#0277bd}.h-bg-light-blue-800[_ngcontent-c75]{background-color:#0277bd}.h-light-blue-900[_ngcontent-c75]{color:#01579b}.h-bg-light-blue-900[_ngcontent-c75]{background-color:#01579b}.h-cyan-50[_ngcontent-c75]{color:#e0f7fa}.h-bg-cyan-50[_ngcontent-c75]{background-color:#e0f7fa}.h-cyan-100[_ngcontent-c75]{color:#b2ebf2}.h-bg-cyan-100[_ngcontent-c75]{background-color:#b2ebf2}.h-cyan-200[_ngcontent-c75]{color:#80deea}.h-bg-cyan-200[_ngcontent-c75]{background-color:#80deea}.h-cyan-300[_ngcontent-c75]{color:#4dd0e1}.h-bg-cyan-300[_ngcontent-c75]{background-color:#4dd0e1}.h-cyan-400[_ngcontent-c75]{color:#26c6da}.h-bg-cyan-400[_ngcontent-c75]{background-color:#26c6da}.h-cyan-500[_ngcontent-c75]{color:#00bcd4}.h-bg-cyan-500[_ngcontent-c75]{background-color:#00bcd4}.h-cyan-600[_ngcontent-c75]{color:#00acc1}.h-bg-cyan-600[_ngcontent-c75]{background-color:#00acc1}.h-cyan-700[_ngcontent-c75]{color:#0097a7}.h-bg-cyan-700[_ngcontent-c75]{background-color:#0097a7}.h-cyan-800[_ngcontent-c75]{color:#00838f}.h-bg-cyan-800[_ngcontent-c75]{background-color:#00838f}.h-cyan-900[_ngcontent-c75]{color:#006064}.h-bg-cyan-900[_ngcontent-c75]{background-color:#006064}.h-teal-50[_ngcontent-c75]{color:#e0f2f1}.h-bg-teal-50[_ngcontent-c75]{background-color:#e0f2f1}.h-teal-100[_ngcontent-c75]{color:#b2dfdb}.h-bg-teal-100[_ngcontent-c75]{background-color:#b2dfdb}.h-teal-200[_ngcontent-c75]{color:#80cbc4}.h-bg-teal-200[_ngcontent-c75]{background-color:#80cbc4}.h-teal-300[_ngcontent-c75]{color:#4db6ac}.h-bg-teal-300[_ngcontent-c75]{background-color:#4db6ac}.h-teal-400[_ngcontent-c75]{color:#26a69a}.h-bg-teal-400[_ngcontent-c75]{background-color:#26a69a}.h-teal-500[_ngcontent-c75]{color:#009688}.h-bg-teal-500[_ngcontent-c75]{background-color:#009688}.h-teal-600[_ngcontent-c75]{color:#00897b}.h-bg-teal-600[_ngcontent-c75]{background-color:#00897b}.h-teal-700[_ngcontent-c75]{color:#00796b}.h-bg-teal-700[_ngcontent-c75]{background-color:#00796b}.h-teal-800[_ngcontent-c75]{color:#00695c}.h-bg-teal-800[_ngcontent-c75]{background-color:#00695c}.h-teal-900[_ngcontent-c75]{color:#004d40}.h-bg-teal-900[_ngcontent-c75]{background-color:#004d40}.h-google-green-50[_ngcontent-c75]{color:#e2f3eb}.h-bg-google-green-50[_ngcontent-c75]{background-color:#e2f3eb}.h-google-green-100[_ngcontent-c75]{color:#b7e1cd}.h-bg-google-green-100[_ngcontent-c75]{background-color:#b7e1cd}.h-google-green-200[_ngcontent-c75]{color:#87ceac}.h-bg-google-green-200[_ngcontent-c75]{background-color:#87ceac}.h-google-green-300[_ngcontent-c75]{color:#57bb8a}.h-bg-google-green-300[_ngcontent-c75]{background-color:#57bb8a}.h-google-green-400[_ngcontent-c75]{color:#33ac71}.h-bg-google-green-400[_ngcontent-c75]{background-color:#33ac71}.h-google-green-500[_ngcontent-c75]{color:#0f9d58}.h-bg-google-green-500[_ngcontent-c75]{background-color:#0f9d58}.h-google-green-600[_ngcontent-c75]{color:#0d904f}.h-bg-google-green-600[_ngcontent-c75]{background-color:#0d904f}.h-google-green-700[_ngcontent-c75]{color:#0b8043}.h-bg-google-green-700[_ngcontent-c75]{background-color:#0b8043}.h-google-green-800[_ngcontent-c75]{color:#097138}.h-bg-google-green-800[_ngcontent-c75]{background-color:#097138}.h-google-green-900[_ngcontent-c75]{color:#055524}.h-bg-google-green-900[_ngcontent-c75]{background-color:#055524}.h-light-green-50[_ngcontent-c75]{color:#f1f8e9}.h-bg-light-green-50[_ngcontent-c75]{background-color:#f1f8e9}.h-light-green-100[_ngcontent-c75]{color:#dcedc8}.h-bg-light-green-100[_ngcontent-c75]{background-color:#dcedc8}.h-light-green-200[_ngcontent-c75]{color:#c5e1a5}.h-bg-light-green-200[_ngcontent-c75]{background-color:#c5e1a5}.h-light-green-300[_ngcontent-c75]{color:#aed581}.h-bg-light-green-300[_ngcontent-c75]{background-color:#aed581}.h-light-green-400[_ngcontent-c75]{color:#9ccc65}.h-bg-light-green-400[_ngcontent-c75]{background-color:#9ccc65}.h-light-green-500[_ngcontent-c75]{color:#8bc34a}.h-bg-light-green-500[_ngcontent-c75]{background-color:#8bc34a}.h-light-green-600[_ngcontent-c75]{color:#7cb342}.h-bg-light-green-600[_ngcontent-c75]{background-color:#7cb342}.h-light-green-700[_ngcontent-c75]{color:#689f38}.h-bg-light-green-700[_ngcontent-c75]{background-color:#689f38}.h-light-green-800[_ngcontent-c75]{color:#558b2f}.h-bg-light-green-800[_ngcontent-c75]{background-color:#558b2f}.h-light-green-900[_ngcontent-c75]{color:#33691e}.h-bg-light-green-900[_ngcontent-c75]{background-color:#33691e}.h-lime-50[_ngcontent-c75]{color:#f9fbe7}.h-bg-lime-50[_ngcontent-c75]{background-color:#f9fbe7}.h-lime-100[_ngcontent-c75]{color:#f0f4c3}.h-bg-lime-100[_ngcontent-c75]{background-color:#f0f4c3}.h-lime-200[_ngcontent-c75]{color:#e6ee9c}.h-bg-lime-200[_ngcontent-c75]{background-color:#e6ee9c}.h-lime-300[_ngcontent-c75]{color:#dce775}.h-bg-lime-300[_ngcontent-c75]{background-color:#dce775}.h-lime-400[_ngcontent-c75]{color:#d4e157}.h-bg-lime-400[_ngcontent-c75]{background-color:#d4e157}.h-lime-500[_ngcontent-c75]{color:#cddc39}.h-bg-lime-500[_ngcontent-c75]{background-color:#cddc39}.h-lime-600[_ngcontent-c75]{color:#c0ca33}.h-bg-lime-600[_ngcontent-c75]{background-color:#c0ca33}.h-lime-700[_ngcontent-c75]{color:#afb42b}.h-bg-lime-700[_ngcontent-c75]{background-color:#afb42b}.h-lime-800[_ngcontent-c75]{color:#9e9d24}.h-bg-lime-800[_ngcontent-c75]{background-color:#9e9d24}.h-lime-900[_ngcontent-c75]{color:#827717}.h-bg-lime-900[_ngcontent-c75]{background-color:#827717}.h-yellow-50[_ngcontent-c75]{color:#fffde7}.h-bg-yellow-50[_ngcontent-c75]{background-color:#fffde7}.h-yellow-100[_ngcontent-c75]{color:#fff9c4}.h-bg-yellow-100[_ngcontent-c75]{background-color:#fff9c4}.h-yellow-200[_ngcontent-c75]{color:#fff59d}.h-bg-yellow-200[_ngcontent-c75]{background-color:#fff59d}.h-yellow-300[_ngcontent-c75]{color:#fff176}.h-bg-yellow-300[_ngcontent-c75]{background-color:#fff176}.h-yellow-400[_ngcontent-c75]{color:#ffee58}.h-bg-yellow-400[_ngcontent-c75]{background-color:#ffee58}.h-yellow-500[_ngcontent-c75]{color:#ffeb3b}.h-bg-yellow-500[_ngcontent-c75]{background-color:#ffeb3b}.h-yellow-600[_ngcontent-c75]{color:#fdd835}.h-bg-yellow-600[_ngcontent-c75]{background-color:#fdd835}.h-yellow-700[_ngcontent-c75]{color:#fbc02d}.h-bg-yellow-700[_ngcontent-c75]{background-color:#fbc02d}.h-yellow-800[_ngcontent-c75]{color:#f9a825}.h-bg-yellow-800[_ngcontent-c75]{background-color:#f9a825}.h-yellow-900[_ngcontent-c75]{color:#f57f17}.h-bg-yellow-900[_ngcontent-c75]{background-color:#f57f17}.h-google-yellow-50[_ngcontent-c75]{color:#fef6e0}.h-bg-google-yellow-50[_ngcontent-c75]{background-color:#fef6e0}.h-google-yellow-100[_ngcontent-c75]{color:#fce8b2}.h-bg-google-yellow-100[_ngcontent-c75]{background-color:#fce8b2}.h-google-yellow-200[_ngcontent-c75]{color:#fada80}.h-bg-google-yellow-200[_ngcontent-c75]{background-color:#fada80}.h-google-yellow-300[_ngcontent-c75]{color:#f7cb4d}.h-bg-google-yellow-300[_ngcontent-c75]{background-color:#f7cb4d}.h-google-yellow-400[_ngcontent-c75]{color:#f6bf26}.h-bg-google-yellow-400[_ngcontent-c75]{background-color:#f6bf26}.h-google-yellow-500[_ngcontent-c75]{color:#f4b400}.h-bg-google-yellow-500[_ngcontent-c75]{background-color:#f4b400}.h-google-yellow-600[_ngcontent-c75]{color:#f2a600}.h-bg-google-yellow-600[_ngcontent-c75]{background-color:#f2a600}.h-google-yellow-700[_ngcontent-c75]{color:#f09300}.h-bg-google-yellow-700[_ngcontent-c75]{background-color:#f09300}.h-google-yellow-800[_ngcontent-c75]{color:#ee8100}.h-bg-google-yellow-800[_ngcontent-c75]{background-color:#ee8100}.h-google-yellow-900[_ngcontent-c75]{color:#ea6100}.h-bg-google-yellow-900[_ngcontent-c75]{background-color:#ea6100}.h-orange-50[_ngcontent-c75]{color:#fff3e0}.h-bg-orange-50[_ngcontent-c75]{background-color:#fff3e0}.h-orange-100[_ngcontent-c75]{color:#ffe0b2}.h-bg-orange-100[_ngcontent-c75]{background-color:#ffe0b2}.h-orange-200[_ngcontent-c75]{color:#ffcc80}.h-bg-orange-200[_ngcontent-c75]{background-color:#ffcc80}.h-orange-300[_ngcontent-c75]{color:#ffb74d}.h-bg-orange-300[_ngcontent-c75]{background-color:#ffb74d}.h-orange-400[_ngcontent-c75]{color:#ffa726}.h-bg-orange-400[_ngcontent-c75]{background-color:#ffa726}.h-orange-500[_ngcontent-c75]{color:#ff9800}.h-bg-orange-500[_ngcontent-c75]{background-color:#ff9800}.h-orange-600[_ngcontent-c75]{color:#fb8c00}.h-bg-orange-600[_ngcontent-c75]{background-color:#fb8c00}.h-orange-700[_ngcontent-c75]{color:#f57c00}.h-bg-orange-700[_ngcontent-c75]{background-color:#f57c00}.h-orange-800[_ngcontent-c75]{color:#ef6c00}.h-bg-orange-800[_ngcontent-c75]{background-color:#ef6c00}.h-orange-900[_ngcontent-c75]{color:#e65100}.h-bg-orange-900[_ngcontent-c75]{background-color:#e65100}.h-deep-orange-50[_ngcontent-c75]{color:#fbe9e7}.h-bg-deep-orange-50[_ngcontent-c75]{background-color:#fbe9e7}.h-deep-orange-100[_ngcontent-c75]{color:#ffccbc}.h-bg-deep-orange-100[_ngcontent-c75]{background-color:#ffccbc}.h-deep-orange-200[_ngcontent-c75]{color:#ffab91}.h-bg-deep-orange-200[_ngcontent-c75]{background-color:#ffab91}.h-deep-orange-300[_ngcontent-c75]{color:#ff8a65}.h-bg-deep-orange-300[_ngcontent-c75]{background-color:#ff8a65}.h-deep-orange-400[_ngcontent-c75]{color:#ff7043}.h-bg-deep-orange-400[_ngcontent-c75]{background-color:#ff7043}.h-deep-orange-500[_ngcontent-c75]{color:#ff5722}.h-bg-deep-orange-500[_ngcontent-c75]{background-color:#ff5722}.h-deep-orange-600[_ngcontent-c75]{color:#f4511e}.h-bg-deep-orange-600[_ngcontent-c75]{background-color:#f4511e}.h-deep-orange-700[_ngcontent-c75]{color:#e64a19}.h-bg-deep-orange-700[_ngcontent-c75]{background-color:#e64a19}.h-deep-orange-800[_ngcontent-c75]{color:#d84315}.h-bg-deep-orange-800[_ngcontent-c75]{background-color:#d84315}.h-deep-orange-900[_ngcontent-c75]{color:#bf360c}.h-bg-deep-orange-900[_ngcontent-c75]{background-color:#bf360c}.h-brown-50[_ngcontent-c75]{color:#efebe9}.h-bg-brown-50[_ngcontent-c75]{background-color:#efebe9}.h-brown-100[_ngcontent-c75]{color:#d7ccc8}.h-bg-brown-100[_ngcontent-c75]{background-color:#d7ccc8}.h-brown-200[_ngcontent-c75]{color:#bcaaa4}.h-bg-brown-200[_ngcontent-c75]{background-color:#bcaaa4}.h-brown-300[_ngcontent-c75]{color:#a1887f}.h-bg-brown-300[_ngcontent-c75]{background-color:#a1887f}.h-brown-400[_ngcontent-c75]{color:#8d6e63}.h-bg-brown-400[_ngcontent-c75]{background-color:#8d6e63}.h-brown-500[_ngcontent-c75]{color:#795548}.h-bg-brown-500[_ngcontent-c75]{background-color:#795548}.h-brown-600[_ngcontent-c75]{color:#6d4c41}.h-bg-brown-600[_ngcontent-c75]{background-color:#6d4c41}.h-brown-700[_ngcontent-c75]{color:#5d4037}.h-bg-brown-700[_ngcontent-c75]{background-color:#5d4037}.h-brown-800[_ngcontent-c75]{color:#4e342e}.h-bg-brown-800[_ngcontent-c75]{background-color:#4e342e}.h-brown-900[_ngcontent-c75]{color:#3e2723}.h-bg-brown-900[_ngcontent-c75]{background-color:#3e2723}.h-google-grey-50[_ngcontent-c75]{color:#fafafa}.h-bg-google-grey-50[_ngcontent-c75]{background-color:#fafafa}.h-google-grey-100[_ngcontent-c75]{color:#f5f5f5}.h-bg-google-grey-100[_ngcontent-c75]{background-color:#f5f5f5}.h-google-grey-200[_ngcontent-c75]{color:#eee}.h-bg-google-grey-200[_ngcontent-c75]{background-color:#eee}.h-google-grey-300[_ngcontent-c75]{color:#e0e0e0}.h-bg-google-grey-300[_ngcontent-c75]{background-color:#e0e0e0}.h-google-grey-400[_ngcontent-c75]{color:#bdbdbd}.h-bg-google-grey-400[_ngcontent-c75]{background-color:#bdbdbd}.h-google-grey-500[_ngcontent-c75]{color:#9e9e9e}.h-bg-google-grey-500[_ngcontent-c75]{background-color:#9e9e9e}.h-google-grey-600[_ngcontent-c75]{color:#757575}.h-bg-google-grey-600[_ngcontent-c75]{background-color:#757575}.h-google-grey-700[_ngcontent-c75]{color:#616161}.h-bg-google-grey-700[_ngcontent-c75]{background-color:#616161}.h-google-grey-800[_ngcontent-c75]{color:#424242}.h-bg-google-grey-800[_ngcontent-c75]{background-color:#424242}.h-google-grey-900[_ngcontent-c75]{color:#212121}.h-bg-google-grey-900[_ngcontent-c75]{background-color:#212121}.h-blue-grey-50[_ngcontent-c75]{color:#eceff1}.h-bg-blue-grey-50[_ngcontent-c75]{background-color:#eceff1}.h-blue-grey-100[_ngcontent-c75]{color:#cfd8dc}.h-bg-blue-grey-100[_ngcontent-c75]{background-color:#cfd8dc}.h-blue-grey-200[_ngcontent-c75]{color:#b0bec5}.h-bg-blue-grey-200[_ngcontent-c75]{background-color:#b0bec5}.h-blue-grey-300[_ngcontent-c75]{color:#90a4ae}.h-bg-blue-grey-300[_ngcontent-c75]{background-color:#90a4ae}.h-blue-grey-400[_ngcontent-c75]{color:#78909c}.h-bg-blue-grey-400[_ngcontent-c75]{background-color:#78909c}.h-blue-grey-500[_ngcontent-c75]{color:#607d8b}.h-bg-blue-grey-500[_ngcontent-c75]{background-color:#607d8b}.h-blue-grey-600[_ngcontent-c75]{color:#546e7a}.h-bg-blue-grey-600[_ngcontent-c75]{background-color:#546e7a}.h-blue-grey-700[_ngcontent-c75]{color:#455a64}.h-bg-blue-grey-700[_ngcontent-c75]{background-color:#455a64}.h-blue-grey-800[_ngcontent-c75]{color:#37474f}.h-bg-blue-grey-800[_ngcontent-c75]{background-color:#37474f}.h-blue-grey-900[_ngcontent-c75]{color:#263238}.h-bg-blue-grey-900[_ngcontent-c75]{background-color:#263238}.h-gm-grey-50[_ngcontent-c75]{color:#f8f9fa}.h-bg-gm-grey-50[_ngcontent-c75]{background-color:#f8f9fa}.h-gm-grey-100[_ngcontent-c75]{color:#f1f3f4}.h-bg-gm-grey-100[_ngcontent-c75]{background-color:#f1f3f4}.h-gm-grey-200[_ngcontent-c75]{color:#e8eaed}.h-bg-gm-grey-200[_ngcontent-c75]{background-color:#e8eaed}.h-gm-grey-300[_ngcontent-c75]{color:#dadce0}.h-bg-gm-grey-300[_ngcontent-c75]{background-color:#dadce0}.h-gm-grey-400[_ngcontent-c75]{color:#bdc1c6}.h-bg-gm-grey-400[_ngcontent-c75]{background-color:#bdc1c6}.h-gm-grey-500[_ngcontent-c75]{color:#9aa0a6}.h-bg-gm-grey-500[_ngcontent-c75]{background-color:#9aa0a6}.h-gm-grey-600[_ngcontent-c75]{color:#80868b}.h-bg-gm-grey-600[_ngcontent-c75]{background-color:#80868b}.h-gm-grey-700[_ngcontent-c75]{color:#5f6368}.h-bg-gm-grey-700[_ngcontent-c75]{background-color:#5f6368}.h-gm-grey-800[_ngcontent-c75]{color:#3c4043}.h-bg-gm-grey-800[_ngcontent-c75]{background-color:#3c4043}.h-gm-grey-900[_ngcontent-c75]{color:#202124}.h-bg-gm-grey-900[_ngcontent-c75]{background-color:#202124}.h-gm-grey-rgba-50[_ngcontent-c75]{color:rgba(32,33,36,.03)}.h-bg-gm-grey-rgba-50[_ngcontent-c75]{background-color:rgba(32,33,36,.03)}.h-gm-grey-rgba-100[_ngcontent-c75]{color:rgba(32,33,36,.06)}.h-bg-gm-grey-rgba-100[_ngcontent-c75]{background-color:rgba(32,33,36,.06)}.h-gm-grey-rgba-200[_ngcontent-c75]{color:rgba(32,33,36,.1)}.h-bg-gm-grey-rgba-200[_ngcontent-c75]{background-color:rgba(32,33,36,.1)}.h-gm-grey-rgba-300[_ngcontent-c75]{color:rgba(32,33,36,.16)}.h-bg-gm-grey-rgba-300[_ngcontent-c75]{background-color:rgba(32,33,36,.16)}.h-gm-grey-rgba-400[_ngcontent-c75]{color:rgba(32,33,36,.28)}.h-bg-gm-grey-rgba-400[_ngcontent-c75]{background-color:rgba(32,33,36,.28)}.h-gm-grey-rgba-500[_ngcontent-c75]{color:rgba(32,33,36,.43)}.h-bg-gm-grey-rgba-500[_ngcontent-c75]{background-color:rgba(32,33,36,.43)}.h-gm-grey-rgba-600[_ngcontent-c75]{color:rgba(32,33,36,.55)}.h-bg-gm-grey-rgba-600[_ngcontent-c75]{background-color:rgba(32,33,36,.55)}.h-gm-grey-rgba-700[_ngcontent-c75]{color:rgba(32,33,36,.71)}.h-bg-gm-grey-rgba-700[_ngcontent-c75]{background-color:rgba(32,33,36,.71)}.h-gm-grey-rgba-800[_ngcontent-c75]{color:rgba(32,33,36,.86)}.h-bg-gm-grey-rgba-800[_ngcontent-c75]{background-color:rgba(32,33,36,.86)}.h-gm-grey-rgba-900[_ngcontent-c75]{color:#202124}.h-bg-gm-grey-rgba-900[_ngcontent-c75]{background-color:#202124}.h-gm-blue-50[_ngcontent-c75]{color:#e8f0fe}.h-bg-gm-blue-50[_ngcontent-c75]{background-color:#e8f0fe}.h-gm-blue-100[_ngcontent-c75]{color:#d2e3fc}.h-bg-gm-blue-100[_ngcontent-c75]{background-color:#d2e3fc}.h-gm-blue-500[_ngcontent-c75]{color:#4285f4}.h-bg-gm-blue-500[_ngcontent-c75]{background-color:#4285f4}.h-gm-blue-600[_ngcontent-c75]{color:#1a73e8}.h-bg-gm-blue-600[_ngcontent-c75]{background-color:#1a73e8}.h-gm-blue-700[_ngcontent-c75]{color:#1967d2}.h-bg-gm-blue-700[_ngcontent-c75]{background-color:#1967d2}.h-gm-blue-800[_ngcontent-c75]{color:#185abc}.h-bg-gm-blue-800[_ngcontent-c75]{background-color:#185abc}.h-gm-blue-900[_ngcontent-c75]{color:#174ea6}.h-bg-gm-blue-900[_ngcontent-c75]{background-color:#174ea6}.h-gm-red-50[_ngcontent-c75]{color:#fce8e6}.h-bg-gm-red-50[_ngcontent-c75]{background-color:#fce8e6}.h-gm-red-100[_ngcontent-c75]{color:#fad2cf}.h-bg-gm-red-100[_ngcontent-c75]{background-color:#fad2cf}.h-gm-red-500[_ngcontent-c75]{color:#ea4335}.h-bg-gm-red-500[_ngcontent-c75]{background-color:#ea4335}.h-gm-red-600[_ngcontent-c75]{color:#d93025}.h-bg-gm-red-600[_ngcontent-c75]{background-color:#d93025}.h-gm-red-700[_ngcontent-c75]{color:#c5221f}.h-bg-gm-red-700[_ngcontent-c75]{background-color:#c5221f}.h-gm-red-800[_ngcontent-c75]{color:#b31412}.h-bg-gm-red-800[_ngcontent-c75]{background-color:#b31412}.h-gm-red-900[_ngcontent-c75]{color:#a50e0e}.h-bg-gm-red-900[_ngcontent-c75]{background-color:#a50e0e}.h-gm-yellow-50[_ngcontent-c75]{color:#fef7e0}.h-bg-gm-yellow-50[_ngcontent-c75]{background-color:#fef7e0}.h-gm-yellow-100[_ngcontent-c75]{color:#feefc3}.h-bg-gm-yellow-100[_ngcontent-c75]{background-color:#feefc3}.h-gm-yellow-500[_ngcontent-c75]{color:#fbbc04}.h-bg-gm-yellow-500[_ngcontent-c75]{background-color:#fbbc04}.h-gm-yellow-600[_ngcontent-c75]{color:#f9ab00}.h-bg-gm-yellow-600[_ngcontent-c75]{background-color:#f9ab00}.h-gm-yellow-700[_ngcontent-c75]{color:#f29900}.h-bg-gm-yellow-700[_ngcontent-c75]{background-color:#f29900}.h-gm-yellow-800[_ngcontent-c75]{color:#ea8600}.h-bg-gm-yellow-800[_ngcontent-c75]{background-color:#ea8600}.h-gm-yellow-900[_ngcontent-c75]{color:#e37400}.h-bg-gm-yellow-900[_ngcontent-c75]{background-color:#e37400}.h-gm-green-50[_ngcontent-c75]{color:#e6f4ea}.h-bg-gm-green-50[_ngcontent-c75]{background-color:#e6f4ea}.h-gm-green-100[_ngcontent-c75]{color:#ceead6}.h-bg-gm-green-100[_ngcontent-c75]{background-color:#ceead6}.h-gm-green-500[_ngcontent-c75]{color:#34a853}.h-bg-gm-green-500[_ngcontent-c75]{background-color:#34a853}.h-gm-green-600[_ngcontent-c75]{color:#1e8e3e}.h-bg-gm-green-600[_ngcontent-c75]{background-color:#1e8e3e}.h-gm-green-700[_ngcontent-c75]{color:#188038}.h-bg-gm-green-700[_ngcontent-c75]{background-color:#188038}.h-gm-green-800[_ngcontent-c75]{color:#137333}.h-bg-gm-green-800[_ngcontent-c75]{background-color:#137333}.h-gm-green-900[_ngcontent-c75]{color:#0d652d}.h-bg-gm-green-900[_ngcontent-c75]{background-color:#0d652d}.article-meta__cta[_ngcontent-c75]{display:none;margin-top:40px}@media (min-width:1024px){.article-meta__cta[_ngcontent-c75]{display:block}}.article-meta__cta-title[_ngcontent-c75]{font-family:Roboto,Arial,Helvetica,sans-serif;font-size:20px;margin-bottom:12px}.article-meta__cta-copy[_ngcontent-c75]{font-size:13px;line-height:1.7}.article-meta__cta-anchor[_ngcontent-c75]{margin-top:20px;text-transform:uppercase}</style><style ng-transition="cloudblog">.h-has-bottom-margin[_ngcontent-c76]{margin-bottom:10px}</style><style ng-transition="cloudblog">.h-google-red-50[_ngcontent-c77]{color:#fbe9e7}.h-bg-google-red-50[_ngcontent-c77]{background-color:#fbe9e7}.h-google-red-100[_ngcontent-c77]{color:#f4c7c3}.h-bg-google-red-100[_ngcontent-c77]{background-color:#f4c7c3}.h-google-red-200[_ngcontent-c77]{color:#eda29b}.h-bg-google-red-200[_ngcontent-c77]{background-color:#eda29b}.h-google-red-300[_ngcontent-c77]{color:#e67c73}.h-bg-google-red-300[_ngcontent-c77]{background-color:#e67c73}.h-google-red-400[_ngcontent-c77]{color:#e06055}.h-bg-google-red-400[_ngcontent-c77]{background-color:#e06055}.h-google-red-500[_ngcontent-c77]{color:#db4437}.h-bg-google-red-500[_ngcontent-c77]{background-color:#db4437}.h-google-red-600[_ngcontent-c77]{color:#d23f31}.h-bg-google-red-600[_ngcontent-c77]{background-color:#d23f31}.h-google-red-700[_ngcontent-c77]{color:#c53929}.h-bg-google-red-700[_ngcontent-c77]{background-color:#c53929}.h-google-red-800[_ngcontent-c77]{color:#b93221}.h-bg-google-red-800[_ngcontent-c77]{background-color:#b93221}.h-google-red-900[_ngcontent-c77]{color:#a52714}.h-bg-google-red-900[_ngcontent-c77]{background-color:#a52714}.h-pink-50[_ngcontent-c77]{color:#fce4ec}.h-bg-pink-50[_ngcontent-c77]{background-color:#fce4ec}.h-pink-100[_ngcontent-c77]{color:#f8bbd0}.h-bg-pink-100[_ngcontent-c77]{background-color:#f8bbd0}.h-pink-200[_ngcontent-c77]{color:#f48fb1}.h-bg-pink-200[_ngcontent-c77]{background-color:#f48fb1}.h-pink-300[_ngcontent-c77]{color:#f06292}.h-bg-pink-300[_ngcontent-c77]{background-color:#f06292}.h-pink-400[_ngcontent-c77]{color:#ec407a}.h-bg-pink-400[_ngcontent-c77]{background-color:#ec407a}.h-pink-500[_ngcontent-c77]{color:#e91e63}.h-bg-pink-500[_ngcontent-c77]{background-color:#e91e63}.h-pink-600[_ngcontent-c77]{color:#d81b60}.h-bg-pink-600[_ngcontent-c77]{background-color:#d81b60}.h-pink-700[_ngcontent-c77]{color:#c2185b}.h-bg-pink-700[_ngcontent-c77]{background-color:#c2185b}.h-pink-800[_ngcontent-c77]{color:#ad1457}.h-bg-pink-800[_ngcontent-c77]{background-color:#ad1457}.h-pink-900[_ngcontent-c77]{color:#880e4f}.h-bg-pink-900[_ngcontent-c77]{background-color:#880e4f}.h-purple-50[_ngcontent-c77]{color:#f3e5f5}.h-bg-purple-50[_ngcontent-c77]{background-color:#f3e5f5}.h-purple-100[_ngcontent-c77]{color:#e1bee7}.h-bg-purple-100[_ngcontent-c77]{background-color:#e1bee7}.h-purple-200[_ngcontent-c77]{color:#ce93d8}.h-bg-purple-200[_ngcontent-c77]{background-color:#ce93d8}.h-purple-300[_ngcontent-c77]{color:#ba68c8}.h-bg-purple-300[_ngcontent-c77]{background-color:#ba68c8}.h-purple-400[_ngcontent-c77]{color:#ab47bc}.h-bg-purple-400[_ngcontent-c77]{background-color:#ab47bc}.h-purple-500[_ngcontent-c77]{color:#9c27b0}.h-bg-purple-500[_ngcontent-c77]{background-color:#9c27b0}.h-purple-600[_ngcontent-c77]{color:#8e24aa}.h-bg-purple-600[_ngcontent-c77]{background-color:#8e24aa}.h-purple-700[_ngcontent-c77]{color:#7b1fa2}.h-bg-purple-700[_ngcontent-c77]{background-color:#7b1fa2}.h-purple-800[_ngcontent-c77]{color:#6a1b9a}.h-bg-purple-800[_ngcontent-c77]{background-color:#6a1b9a}.h-purple-900[_ngcontent-c77]{color:#4a148c}.h-bg-purple-900[_ngcontent-c77]{background-color:#4a148c}.h-deep-purple-50[_ngcontent-c77]{color:#ede7f6}.h-bg-deep-purple-50[_ngcontent-c77]{background-color:#ede7f6}.h-deep-purple-100[_ngcontent-c77]{color:#d1c4e9}.h-bg-deep-purple-100[_ngcontent-c77]{background-color:#d1c4e9}.h-deep-purple-200[_ngcontent-c77]{color:#b39ddb}.h-bg-deep-purple-200[_ngcontent-c77]{background-color:#b39ddb}.h-deep-purple-300[_ngcontent-c77]{color:#9575cd}.h-bg-deep-purple-300[_ngcontent-c77]{background-color:#9575cd}.h-deep-purple-400[_ngcontent-c77]{color:#7e57c2}.h-bg-deep-purple-400[_ngcontent-c77]{background-color:#7e57c2}.h-deep-purple-500[_ngcontent-c77]{color:#673ab7}.h-bg-deep-purple-500[_ngcontent-c77]{background-color:#673ab7}.h-deep-purple-600[_ngcontent-c77]{color:#5e35b1}.h-bg-deep-purple-600[_ngcontent-c77]{background-color:#5e35b1}.h-deep-purple-700[_ngcontent-c77]{color:#512da8}.h-bg-deep-purple-700[_ngcontent-c77]{background-color:#512da8}.h-deep-purple-800[_ngcontent-c77]{color:#4527a0}.h-bg-deep-purple-800[_ngcontent-c77]{background-color:#4527a0}.h-deep-purple-900[_ngcontent-c77]{color:#311b92}.h-bg-deep-purple-900[_ngcontent-c77]{background-color:#311b92}.h-indigo-50[_ngcontent-c77]{color:#e8eaf6}.h-bg-indigo-50[_ngcontent-c77]{background-color:#e8eaf6}.h-indigo-100[_ngcontent-c77]{color:#c5cae9}.h-bg-indigo-100[_ngcontent-c77]{background-color:#c5cae9}.h-indigo-200[_ngcontent-c77]{color:#9fa8da}.h-bg-indigo-200[_ngcontent-c77]{background-color:#9fa8da}.h-indigo-300[_ngcontent-c77]{color:#7986cb}.h-bg-indigo-300[_ngcontent-c77]{background-color:#7986cb}.h-indigo-400[_ngcontent-c77]{color:#5c6bc0}.h-bg-indigo-400[_ngcontent-c77]{background-color:#5c6bc0}.h-indigo-500[_ngcontent-c77]{color:#3f51b5}.h-bg-indigo-500[_ngcontent-c77]{background-color:#3f51b5}.h-indigo-600[_ngcontent-c77]{color:#3949ab}.h-bg-indigo-600[_ngcontent-c77]{background-color:#3949ab}.h-indigo-700[_ngcontent-c77]{color:#303f9f}.h-bg-indigo-700[_ngcontent-c77]{background-color:#303f9f}.h-indigo-800[_ngcontent-c77]{color:#283593}.h-bg-indigo-800[_ngcontent-c77]{background-color:#283593}.h-indigo-900[_ngcontent-c77]{color:#1a237e}.h-bg-indigo-900[_ngcontent-c77]{background-color:#1a237e}.h-google-blue-50[_ngcontent-c77]{color:#e8f0fe}.h-bg-google-blue-50[_ngcontent-c77]{background-color:#e8f0fe}.h-google-blue-100[_ngcontent-c77]{color:#c6dafc}.h-bg-google-blue-100[_ngcontent-c77]{background-color:#c6dafc}.h-google-blue-200[_ngcontent-c77]{color:#a1c2fa}.h-bg-google-blue-200[_ngcontent-c77]{background-color:#a1c2fa}.h-google-blue-300[_ngcontent-c77]{color:#7baaf7}.h-bg-google-blue-300[_ngcontent-c77]{background-color:#7baaf7}.h-google-blue-400[_ngcontent-c77]{color:#5e97f6}.h-bg-google-blue-400[_ngcontent-c77]{background-color:#5e97f6}.h-google-blue-500[_ngcontent-c77]{color:#4285f4}.h-bg-google-blue-500[_ngcontent-c77]{background-color:#4285f4}.h-google-blue-600[_ngcontent-c77]{color:#3b78e7}.h-bg-google-blue-600[_ngcontent-c77]{background-color:#3b78e7}.h-google-blue-700[_ngcontent-c77]{color:#3367d6}.h-bg-google-blue-700[_ngcontent-c77]{background-color:#3367d6}.h-google-blue-800[_ngcontent-c77]{color:#2a56c6}.h-bg-google-blue-800[_ngcontent-c77]{background-color:#2a56c6}.h-google-blue-900[_ngcontent-c77]{color:#1c3aa9}.h-bg-google-blue-900[_ngcontent-c77]{background-color:#1c3aa9}.h-light-blue-50[_ngcontent-c77]{color:#e1f5fe}.h-bg-light-blue-50[_ngcontent-c77]{background-color:#e1f5fe}.h-light-blue-100[_ngcontent-c77]{color:#b3e5fc}.h-bg-light-blue-100[_ngcontent-c77]{background-color:#b3e5fc}.h-light-blue-200[_ngcontent-c77]{color:#81d4fa}.h-bg-light-blue-200[_ngcontent-c77]{background-color:#81d4fa}.h-light-blue-300[_ngcontent-c77]{color:#4fc3f7}.h-bg-light-blue-300[_ngcontent-c77]{background-color:#4fc3f7}.h-light-blue-400[_ngcontent-c77]{color:#29b6f6}.h-bg-light-blue-400[_ngcontent-c77]{background-color:#29b6f6}.h-light-blue-500[_ngcontent-c77]{color:#03a9f4}.h-bg-light-blue-500[_ngcontent-c77]{background-color:#03a9f4}.h-light-blue-600[_ngcontent-c77]{color:#039be5}.h-bg-light-blue-600[_ngcontent-c77]{background-color:#039be5}.h-light-blue-700[_ngcontent-c77]{color:#0288d1}.h-bg-light-blue-700[_ngcontent-c77]{background-color:#0288d1}.h-light-blue-800[_ngcontent-c77]{color:#0277bd}.h-bg-light-blue-800[_ngcontent-c77]{background-color:#0277bd}.h-light-blue-900[_ngcontent-c77]{color:#01579b}.h-bg-light-blue-900[_ngcontent-c77]{background-color:#01579b}.h-cyan-50[_ngcontent-c77]{color:#e0f7fa}.h-bg-cyan-50[_ngcontent-c77]{background-color:#e0f7fa}.h-cyan-100[_ngcontent-c77]{color:#b2ebf2}.h-bg-cyan-100[_ngcontent-c77]{background-color:#b2ebf2}.h-cyan-200[_ngcontent-c77]{color:#80deea}.h-bg-cyan-200[_ngcontent-c77]{background-color:#80deea}.h-cyan-300[_ngcontent-c77]{color:#4dd0e1}.h-bg-cyan-300[_ngcontent-c77]{background-color:#4dd0e1}.h-cyan-400[_ngcontent-c77]{color:#26c6da}.h-bg-cyan-400[_ngcontent-c77]{background-color:#26c6da}.h-cyan-500[_ngcontent-c77]{color:#00bcd4}.h-bg-cyan-500[_ngcontent-c77]{background-color:#00bcd4}.h-cyan-600[_ngcontent-c77]{color:#00acc1}.h-bg-cyan-600[_ngcontent-c77]{background-color:#00acc1}.h-cyan-700[_ngcontent-c77]{color:#0097a7}.h-bg-cyan-700[_ngcontent-c77]{background-color:#0097a7}.h-cyan-800[_ngcontent-c77]{color:#00838f}.h-bg-cyan-800[_ngcontent-c77]{background-color:#00838f}.h-cyan-900[_ngcontent-c77]{color:#006064}.h-bg-cyan-900[_ngcontent-c77]{background-color:#006064}.h-teal-50[_ngcontent-c77]{color:#e0f2f1}.h-bg-teal-50[_ngcontent-c77]{background-color:#e0f2f1}.h-teal-100[_ngcontent-c77]{color:#b2dfdb}.h-bg-teal-100[_ngcontent-c77]{background-color:#b2dfdb}.h-teal-200[_ngcontent-c77]{color:#80cbc4}.h-bg-teal-200[_ngcontent-c77]{background-color:#80cbc4}.h-teal-300[_ngcontent-c77]{color:#4db6ac}.h-bg-teal-300[_ngcontent-c77]{background-color:#4db6ac}.h-teal-400[_ngcontent-c77]{color:#26a69a}.h-bg-teal-400[_ngcontent-c77]{background-color:#26a69a}.h-teal-500[_ngcontent-c77]{color:#009688}.h-bg-teal-500[_ngcontent-c77]{background-color:#009688}.h-teal-600[_ngcontent-c77]{color:#00897b}.h-bg-teal-600[_ngcontent-c77]{background-color:#00897b}.h-teal-700[_ngcontent-c77]{color:#00796b}.h-bg-teal-700[_ngcontent-c77]{background-color:#00796b}.h-teal-800[_ngcontent-c77]{color:#00695c}.h-bg-teal-800[_ngcontent-c77]{background-color:#00695c}.h-teal-900[_ngcontent-c77]{color:#004d40}.h-bg-teal-900[_ngcontent-c77]{background-color:#004d40}.h-google-green-50[_ngcontent-c77]{color:#e2f3eb}.h-bg-google-green-50[_ngcontent-c77]{background-color:#e2f3eb}.h-google-green-100[_ngcontent-c77]{color:#b7e1cd}.h-bg-google-green-100[_ngcontent-c77]{background-color:#b7e1cd}.h-google-green-200[_ngcontent-c77]{color:#87ceac}.h-bg-google-green-200[_ngcontent-c77]{background-color:#87ceac}.h-google-green-300[_ngcontent-c77]{color:#57bb8a}.h-bg-google-green-300[_ngcontent-c77]{background-color:#57bb8a}.h-google-green-400[_ngcontent-c77]{color:#33ac71}.h-bg-google-green-400[_ngcontent-c77]{background-color:#33ac71}.h-google-green-500[_ngcontent-c77]{color:#0f9d58}.h-bg-google-green-500[_ngcontent-c77]{background-color:#0f9d58}.h-google-green-600[_ngcontent-c77]{color:#0d904f}.h-bg-google-green-600[_ngcontent-c77]{background-color:#0d904f}.h-google-green-700[_ngcontent-c77]{color:#0b8043}.h-bg-google-green-700[_ngcontent-c77]{background-color:#0b8043}.h-google-green-800[_ngcontent-c77]{color:#097138}.h-bg-google-green-800[_ngcontent-c77]{background-color:#097138}.h-google-green-900[_ngcontent-c77]{color:#055524}.h-bg-google-green-900[_ngcontent-c77]{background-color:#055524}.h-light-green-50[_ngcontent-c77]{color:#f1f8e9}.h-bg-light-green-50[_ngcontent-c77]{background-color:#f1f8e9}.h-light-green-100[_ngcontent-c77]{color:#dcedc8}.h-bg-light-green-100[_ngcontent-c77]{background-color:#dcedc8}.h-light-green-200[_ngcontent-c77]{color:#c5e1a5}.h-bg-light-green-200[_ngcontent-c77]{background-color:#c5e1a5}.h-light-green-300[_ngcontent-c77]{color:#aed581}.h-bg-light-green-300[_ngcontent-c77]{background-color:#aed581}.h-light-green-400[_ngcontent-c77]{color:#9ccc65}.h-bg-light-green-400[_ngcontent-c77]{background-color:#9ccc65}.h-light-green-500[_ngcontent-c77]{color:#8bc34a}.h-bg-light-green-500[_ngcontent-c77]{background-color:#8bc34a}.h-light-green-600[_ngcontent-c77]{color:#7cb342}.h-bg-light-green-600[_ngcontent-c77]{background-color:#7cb342}.h-light-green-700[_ngcontent-c77]{color:#689f38}.h-bg-light-green-700[_ngcontent-c77]{background-color:#689f38}.h-light-green-800[_ngcontent-c77]{color:#558b2f}.h-bg-light-green-800[_ngcontent-c77]{background-color:#558b2f}.h-light-green-900[_ngcontent-c77]{color:#33691e}.h-bg-light-green-900[_ngcontent-c77]{background-color:#33691e}.h-lime-50[_ngcontent-c77]{color:#f9fbe7}.h-bg-lime-50[_ngcontent-c77]{background-color:#f9fbe7}.h-lime-100[_ngcontent-c77]{color:#f0f4c3}.h-bg-lime-100[_ngcontent-c77]{background-color:#f0f4c3}.h-lime-200[_ngcontent-c77]{color:#e6ee9c}.h-bg-lime-200[_ngcontent-c77]{background-color:#e6ee9c}.h-lime-300[_ngcontent-c77]{color:#dce775}.h-bg-lime-300[_ngcontent-c77]{background-color:#dce775}.h-lime-400[_ngcontent-c77]{color:#d4e157}.h-bg-lime-400[_ngcontent-c77]{background-color:#d4e157}.h-lime-500[_ngcontent-c77]{color:#cddc39}.h-bg-lime-500[_ngcontent-c77]{background-color:#cddc39}.h-lime-600[_ngcontent-c77]{color:#c0ca33}.h-bg-lime-600[_ngcontent-c77]{background-color:#c0ca33}.h-lime-700[_ngcontent-c77]{color:#afb42b}.h-bg-lime-700[_ngcontent-c77]{background-color:#afb42b}.h-lime-800[_ngcontent-c77]{color:#9e9d24}.h-bg-lime-800[_ngcontent-c77]{background-color:#9e9d24}.h-lime-900[_ngcontent-c77]{color:#827717}.h-bg-lime-900[_ngcontent-c77]{background-color:#827717}.h-yellow-50[_ngcontent-c77]{color:#fffde7}.h-bg-yellow-50[_ngcontent-c77]{background-color:#fffde7}.h-yellow-100[_ngcontent-c77]{color:#fff9c4}.h-bg-yellow-100[_ngcontent-c77]{background-color:#fff9c4}.h-yellow-200[_ngcontent-c77]{color:#fff59d}.h-bg-yellow-200[_ngcontent-c77]{background-color:#fff59d}.h-yellow-300[_ngcontent-c77]{color:#fff176}.h-bg-yellow-300[_ngcontent-c77]{background-color:#fff176}.h-yellow-400[_ngcontent-c77]{color:#ffee58}.h-bg-yellow-400[_ngcontent-c77]{background-color:#ffee58}.h-yellow-500[_ngcontent-c77]{color:#ffeb3b}.h-bg-yellow-500[_ngcontent-c77]{background-color:#ffeb3b}.h-yellow-600[_ngcontent-c77]{color:#fdd835}.h-bg-yellow-600[_ngcontent-c77]{background-color:#fdd835}.h-yellow-700[_ngcontent-c77]{color:#fbc02d}.h-bg-yellow-700[_ngcontent-c77]{background-color:#fbc02d}.h-yellow-800[_ngcontent-c77]{color:#f9a825}.h-bg-yellow-800[_ngcontent-c77]{background-color:#f9a825}.h-yellow-900[_ngcontent-c77]{color:#f57f17}.h-bg-yellow-900[_ngcontent-c77]{background-color:#f57f17}.h-google-yellow-50[_ngcontent-c77]{color:#fef6e0}.h-bg-google-yellow-50[_ngcontent-c77]{background-color:#fef6e0}.h-google-yellow-100[_ngcontent-c77]{color:#fce8b2}.h-bg-google-yellow-100[_ngcontent-c77]{background-color:#fce8b2}.h-google-yellow-200[_ngcontent-c77]{color:#fada80}.h-bg-google-yellow-200[_ngcontent-c77]{background-color:#fada80}.h-google-yellow-300[_ngcontent-c77]{color:#f7cb4d}.h-bg-google-yellow-300[_ngcontent-c77]{background-color:#f7cb4d}.h-google-yellow-400[_ngcontent-c77]{color:#f6bf26}.h-bg-google-yellow-400[_ngcontent-c77]{background-color:#f6bf26}.h-google-yellow-500[_ngcontent-c77]{color:#f4b400}.h-bg-google-yellow-500[_ngcontent-c77]{background-color:#f4b400}.h-google-yellow-600[_ngcontent-c77]{color:#f2a600}.h-bg-google-yellow-600[_ngcontent-c77]{background-color:#f2a600}.h-google-yellow-700[_ngcontent-c77]{color:#f09300}.h-bg-google-yellow-700[_ngcontent-c77]{background-color:#f09300}.h-google-yellow-800[_ngcontent-c77]{color:#ee8100}.h-bg-google-yellow-800[_ngcontent-c77]{background-color:#ee8100}.h-google-yellow-900[_ngcontent-c77]{color:#ea6100}.h-bg-google-yellow-900[_ngcontent-c77]{background-color:#ea6100}.h-orange-50[_ngcontent-c77]{color:#fff3e0}.h-bg-orange-50[_ngcontent-c77]{background-color:#fff3e0}.h-orange-100[_ngcontent-c77]{color:#ffe0b2}.h-bg-orange-100[_ngcontent-c77]{background-color:#ffe0b2}.h-orange-200[_ngcontent-c77]{color:#ffcc80}.h-bg-orange-200[_ngcontent-c77]{background-color:#ffcc80}.h-orange-300[_ngcontent-c77]{color:#ffb74d}.h-bg-orange-300[_ngcontent-c77]{background-color:#ffb74d}.h-orange-400[_ngcontent-c77]{color:#ffa726}.h-bg-orange-400[_ngcontent-c77]{background-color:#ffa726}.h-orange-500[_ngcontent-c77]{color:#ff9800}.h-bg-orange-500[_ngcontent-c77]{background-color:#ff9800}.h-orange-600[_ngcontent-c77]{color:#fb8c00}.h-bg-orange-600[_ngcontent-c77]{background-color:#fb8c00}.h-orange-700[_ngcontent-c77]{color:#f57c00}.h-bg-orange-700[_ngcontent-c77]{background-color:#f57c00}.h-orange-800[_ngcontent-c77]{color:#ef6c00}.h-bg-orange-800[_ngcontent-c77]{background-color:#ef6c00}.h-orange-900[_ngcontent-c77]{color:#e65100}.h-bg-orange-900[_ngcontent-c77]{background-color:#e65100}.h-deep-orange-50[_ngcontent-c77]{color:#fbe9e7}.h-bg-deep-orange-50[_ngcontent-c77]{background-color:#fbe9e7}.h-deep-orange-100[_ngcontent-c77]{color:#ffccbc}.h-bg-deep-orange-100[_ngcontent-c77]{background-color:#ffccbc}.h-deep-orange-200[_ngcontent-c77]{color:#ffab91}.h-bg-deep-orange-200[_ngcontent-c77]{background-color:#ffab91}.h-deep-orange-300[_ngcontent-c77]{color:#ff8a65}.h-bg-deep-orange-300[_ngcontent-c77]{background-color:#ff8a65}.h-deep-orange-400[_ngcontent-c77]{color:#ff7043}.h-bg-deep-orange-400[_ngcontent-c77]{background-color:#ff7043}.h-deep-orange-500[_ngcontent-c77]{color:#ff5722}.h-bg-deep-orange-500[_ngcontent-c77]{background-color:#ff5722}.h-deep-orange-600[_ngcontent-c77]{color:#f4511e}.h-bg-deep-orange-600[_ngcontent-c77]{background-color:#f4511e}.h-deep-orange-700[_ngcontent-c77]{color:#e64a19}.h-bg-deep-orange-700[_ngcontent-c77]{background-color:#e64a19}.h-deep-orange-800[_ngcontent-c77]{color:#d84315}.h-bg-deep-orange-800[_ngcontent-c77]{background-color:#d84315}.h-deep-orange-900[_ngcontent-c77]{color:#bf360c}.h-bg-deep-orange-900[_ngcontent-c77]{background-color:#bf360c}.h-brown-50[_ngcontent-c77]{color:#efebe9}.h-bg-brown-50[_ngcontent-c77]{background-color:#efebe9}.h-brown-100[_ngcontent-c77]{color:#d7ccc8}.h-bg-brown-100[_ngcontent-c77]{background-color:#d7ccc8}.h-brown-200[_ngcontent-c77]{color:#bcaaa4}.h-bg-brown-200[_ngcontent-c77]{background-color:#bcaaa4}.h-brown-300[_ngcontent-c77]{color:#a1887f}.h-bg-brown-300[_ngcontent-c77]{background-color:#a1887f}.h-brown-400[_ngcontent-c77]{color:#8d6e63}.h-bg-brown-400[_ngcontent-c77]{background-color:#8d6e63}.h-brown-500[_ngcontent-c77]{color:#795548}.h-bg-brown-500[_ngcontent-c77]{background-color:#795548}.h-brown-600[_ngcontent-c77]{color:#6d4c41}.h-bg-brown-600[_ngcontent-c77]{background-color:#6d4c41}.h-brown-700[_ngcontent-c77]{color:#5d4037}.h-bg-brown-700[_ngcontent-c77]{background-color:#5d4037}.h-brown-800[_ngcontent-c77]{color:#4e342e}.h-bg-brown-800[_ngcontent-c77]{background-color:#4e342e}.h-brown-900[_ngcontent-c77]{color:#3e2723}.h-bg-brown-900[_ngcontent-c77]{background-color:#3e2723}.h-google-grey-50[_ngcontent-c77]{color:#fafafa}.h-bg-google-grey-50[_ngcontent-c77]{background-color:#fafafa}.h-google-grey-100[_ngcontent-c77]{color:#f5f5f5}.h-bg-google-grey-100[_ngcontent-c77]{background-color:#f5f5f5}.h-google-grey-200[_ngcontent-c77]{color:#eee}.h-bg-google-grey-200[_ngcontent-c77]{background-color:#eee}.h-google-grey-300[_ngcontent-c77]{color:#e0e0e0}.h-bg-google-grey-300[_ngcontent-c77]{background-color:#e0e0e0}.h-google-grey-400[_ngcontent-c77]{color:#bdbdbd}.h-bg-google-grey-400[_ngcontent-c77]{background-color:#bdbdbd}.h-google-grey-500[_ngcontent-c77]{color:#9e9e9e}.h-bg-google-grey-500[_ngcontent-c77]{background-color:#9e9e9e}.h-google-grey-600[_ngcontent-c77]{color:#757575}.h-bg-google-grey-600[_ngcontent-c77]{background-color:#757575}.h-google-grey-700[_ngcontent-c77]{color:#616161}.h-bg-google-grey-700[_ngcontent-c77]{background-color:#616161}.h-google-grey-800[_ngcontent-c77]{color:#424242}.h-bg-google-grey-800[_ngcontent-c77]{background-color:#424242}.h-google-grey-900[_ngcontent-c77]{color:#212121}.h-bg-google-grey-900[_ngcontent-c77]{background-color:#212121}.h-blue-grey-50[_ngcontent-c77]{color:#eceff1}.h-bg-blue-grey-50[_ngcontent-c77]{background-color:#eceff1}.h-blue-grey-100[_ngcontent-c77]{color:#cfd8dc}.h-bg-blue-grey-100[_ngcontent-c77]{background-color:#cfd8dc}.h-blue-grey-200[_ngcontent-c77]{color:#b0bec5}.h-bg-blue-grey-200[_ngcontent-c77]{background-color:#b0bec5}.h-blue-grey-300[_ngcontent-c77]{color:#90a4ae}.h-bg-blue-grey-300[_ngcontent-c77]{background-color:#90a4ae}.h-blue-grey-400[_ngcontent-c77]{color:#78909c}.h-bg-blue-grey-400[_ngcontent-c77]{background-color:#78909c}.h-blue-grey-500[_ngcontent-c77]{color:#607d8b}.h-bg-blue-grey-500[_ngcontent-c77]{background-color:#607d8b}.h-blue-grey-600[_ngcontent-c77]{color:#546e7a}.h-bg-blue-grey-600[_ngcontent-c77]{background-color:#546e7a}.h-blue-grey-700[_ngcontent-c77]{color:#455a64}.h-bg-blue-grey-700[_ngcontent-c77]{background-color:#455a64}.h-blue-grey-800[_ngcontent-c77]{color:#37474f}.h-bg-blue-grey-800[_ngcontent-c77]{background-color:#37474f}.h-blue-grey-900[_ngcontent-c77]{color:#263238}.h-bg-blue-grey-900[_ngcontent-c77]{background-color:#263238}.h-gm-grey-50[_ngcontent-c77]{color:#f8f9fa}.h-bg-gm-grey-50[_ngcontent-c77]{background-color:#f8f9fa}.h-gm-grey-100[_ngcontent-c77]{color:#f1f3f4}.h-bg-gm-grey-100[_ngcontent-c77]{background-color:#f1f3f4}.h-gm-grey-200[_ngcontent-c77]{color:#e8eaed}.h-bg-gm-grey-200[_ngcontent-c77]{background-color:#e8eaed}.h-gm-grey-300[_ngcontent-c77]{color:#dadce0}.h-bg-gm-grey-300[_ngcontent-c77]{background-color:#dadce0}.h-gm-grey-400[_ngcontent-c77]{color:#bdc1c6}.h-bg-gm-grey-400[_ngcontent-c77]{background-color:#bdc1c6}.h-gm-grey-500[_ngcontent-c77]{color:#9aa0a6}.h-bg-gm-grey-500[_ngcontent-c77]{background-color:#9aa0a6}.h-gm-grey-600[_ngcontent-c77]{color:#80868b}.h-bg-gm-grey-600[_ngcontent-c77]{background-color:#80868b}.h-gm-grey-700[_ngcontent-c77]{color:#5f6368}.h-bg-gm-grey-700[_ngcontent-c77]{background-color:#5f6368}.h-gm-grey-800[_ngcontent-c77]{color:#3c4043}.h-bg-gm-grey-800[_ngcontent-c77]{background-color:#3c4043}.h-gm-grey-900[_ngcontent-c77]{color:#202124}.h-bg-gm-grey-900[_ngcontent-c77]{background-color:#202124}.h-gm-grey-rgba-50[_ngcontent-c77]{color:rgba(32,33,36,.03)}.h-bg-gm-grey-rgba-50[_ngcontent-c77]{background-color:rgba(32,33,36,.03)}.h-gm-grey-rgba-100[_ngcontent-c77]{color:rgba(32,33,36,.06)}.h-bg-gm-grey-rgba-100[_ngcontent-c77]{background-color:rgba(32,33,36,.06)}.h-gm-grey-rgba-200[_ngcontent-c77]{color:rgba(32,33,36,.1)}.h-bg-gm-grey-rgba-200[_ngcontent-c77]{background-color:rgba(32,33,36,.1)}.h-gm-grey-rgba-300[_ngcontent-c77]{color:rgba(32,33,36,.16)}.h-bg-gm-grey-rgba-300[_ngcontent-c77]{background-color:rgba(32,33,36,.16)}.h-gm-grey-rgba-400[_ngcontent-c77]{color:rgba(32,33,36,.28)}.h-bg-gm-grey-rgba-400[_ngcontent-c77]{background-color:rgba(32,33,36,.28)}.h-gm-grey-rgba-500[_ngcontent-c77]{color:rgba(32,33,36,.43)}.h-bg-gm-grey-rgba-500[_ngcontent-c77]{background-color:rgba(32,33,36,.43)}.h-gm-grey-rgba-600[_ngcontent-c77]{color:rgba(32,33,36,.55)}.h-bg-gm-grey-rgba-600[_ngcontent-c77]{background-color:rgba(32,33,36,.55)}.h-gm-grey-rgba-700[_ngcontent-c77]{color:rgba(32,33,36,.71)}.h-bg-gm-grey-rgba-700[_ngcontent-c77]{background-color:rgba(32,33,36,.71)}.h-gm-grey-rgba-800[_ngcontent-c77]{color:rgba(32,33,36,.86)}.h-bg-gm-grey-rgba-800[_ngcontent-c77]{background-color:rgba(32,33,36,.86)}.h-gm-grey-rgba-900[_ngcontent-c77]{color:#202124}.h-bg-gm-grey-rgba-900[_ngcontent-c77]{background-color:#202124}.h-gm-blue-50[_ngcontent-c77]{color:#e8f0fe}.h-bg-gm-blue-50[_ngcontent-c77]{background-color:#e8f0fe}.h-gm-blue-100[_ngcontent-c77]{color:#d2e3fc}.h-bg-gm-blue-100[_ngcontent-c77]{background-color:#d2e3fc}.h-gm-blue-500[_ngcontent-c77]{color:#4285f4}.h-bg-gm-blue-500[_ngcontent-c77]{background-color:#4285f4}.h-gm-blue-600[_ngcontent-c77]{color:#1a73e8}.h-bg-gm-blue-600[_ngcontent-c77]{background-color:#1a73e8}.h-gm-blue-700[_ngcontent-c77]{color:#1967d2}.h-bg-gm-blue-700[_ngcontent-c77]{background-color:#1967d2}.h-gm-blue-800[_ngcontent-c77]{color:#185abc}.h-bg-gm-blue-800[_ngcontent-c77]{background-color:#185abc}.h-gm-blue-900[_ngcontent-c77]{color:#174ea6}.h-bg-gm-blue-900[_ngcontent-c77]{background-color:#174ea6}.h-gm-red-50[_ngcontent-c77]{color:#fce8e6}.h-bg-gm-red-50[_ngcontent-c77]{background-color:#fce8e6}.h-gm-red-100[_ngcontent-c77]{color:#fad2cf}.h-bg-gm-red-100[_ngcontent-c77]{background-color:#fad2cf}.h-gm-red-500[_ngcontent-c77]{color:#ea4335}.h-bg-gm-red-500[_ngcontent-c77]{background-color:#ea4335}.h-gm-red-600[_ngcontent-c77]{color:#d93025}.h-bg-gm-red-600[_ngcontent-c77]{background-color:#d93025}.h-gm-red-700[_ngcontent-c77]{color:#c5221f}.h-bg-gm-red-700[_ngcontent-c77]{background-color:#c5221f}.h-gm-red-800[_ngcontent-c77]{color:#b31412}.h-bg-gm-red-800[_ngcontent-c77]{background-color:#b31412}.h-gm-red-900[_ngcontent-c77]{color:#a50e0e}.h-bg-gm-red-900[_ngcontent-c77]{background-color:#a50e0e}.h-gm-yellow-50[_ngcontent-c77]{color:#fef7e0}.h-bg-gm-yellow-50[_ngcontent-c77]{background-color:#fef7e0}.h-gm-yellow-100[_ngcontent-c77]{color:#feefc3}.h-bg-gm-yellow-100[_ngcontent-c77]{background-color:#feefc3}.h-gm-yellow-500[_ngcontent-c77]{color:#fbbc04}.h-bg-gm-yellow-500[_ngcontent-c77]{background-color:#fbbc04}.h-gm-yellow-600[_ngcontent-c77]{color:#f9ab00}.h-bg-gm-yellow-600[_ngcontent-c77]{background-color:#f9ab00}.h-gm-yellow-700[_ngcontent-c77]{color:#f29900}.h-bg-gm-yellow-700[_ngcontent-c77]{background-color:#f29900}.h-gm-yellow-800[_ngcontent-c77]{color:#ea8600}.h-bg-gm-yellow-800[_ngcontent-c77]{background-color:#ea8600}.h-gm-yellow-900[_ngcontent-c77]{color:#e37400}.h-bg-gm-yellow-900[_ngcontent-c77]{background-color:#e37400}.h-gm-green-50[_ngcontent-c77]{color:#e6f4ea}.h-bg-gm-green-50[_ngcontent-c77]{background-color:#e6f4ea}.h-gm-green-100[_ngcontent-c77]{color:#ceead6}.h-bg-gm-green-100[_ngcontent-c77]{background-color:#ceead6}.h-gm-green-500[_ngcontent-c77]{color:#34a853}.h-bg-gm-green-500[_ngcontent-c77]{background-color:#34a853}.h-gm-green-600[_ngcontent-c77]{color:#1e8e3e}.h-bg-gm-green-600[_ngcontent-c77]{background-color:#1e8e3e}.h-gm-green-700[_ngcontent-c77]{color:#188038}.h-bg-gm-green-700[_ngcontent-c77]{background-color:#188038}.h-gm-green-800[_ngcontent-c77]{color:#137333}.h-bg-gm-green-800[_ngcontent-c77]{background-color:#137333}.h-gm-green-900[_ngcontent-c77]{color:#0d652d}.h-bg-gm-green-900[_ngcontent-c77]{background-color:#0d652d}[_nghost-c77] .table-container{overflow:auto}[_nghost-c77] table tr{border-bottom:1px solid #dfdfdf}[_nghost-c77] table tr:last-of-type{border-bottom:0}[_nghost-c77] table td, [_nghost-c77] table th{color:#424242;font-family:Roboto,Arial,Helvetica,sans-serif;font-size:16px;line-height:24px;padding:20px 12px}[_nghost-c77] table td:first-of-type, [_nghost-c77] table th:first-of-type{padding-left:8px}@media (min-width:600px){[_nghost-c77] table td:first-of-type, [_nghost-c77] table th:first-of-type{padding-left:24px}}@media (min-width:1440px){[_nghost-c77] table td:first-of-type, [_nghost-c77] table th:first-of-type{padding-left:48px}}[_nghost-c77] table td:last-of-type, [_nghost-c77] table th:last-of-type{padding-right:8px}@media (min-width:600px){[_nghost-c77] table td:last-of-type, [_nghost-c77] table th:last-of-type{padding-right:24px}}@media (min-width:1440px){[_nghost-c77] table td:last-of-type, [_nghost-c77] table th:last-of-type{padding-right:48px}}[_nghost-c77] table th{font-weight:700}[_nghost-c77] p+ul{margin-top:20px}[_nghost-c77] a{font-weight:400}</style><style ng-transition="cloudblog">[_nghost-c78]{display:block; width:calc(100% - 16px)}@media (min-width:600px){[_nghost-c78]{width:100%}}code[_ngcontent-c78], pre[_ngcontent-c78]{color:#6e6f7d;font-size:12px;-webkit-box-decoration-break:clone;box-decoration-break:clone}@media (min-width:600px){code[_ngcontent-c78], pre[_ngcontent-c78]{font-size:15px}}code[_ngcontent-c78]{white-space:normal}pre[_ngcontent-c78]{border:0;border-top:1px solid #ddd;display:block;overflow:auto;padding:10px;width:100%}@media (min-width:600px){pre[_ngcontent-c78]{padding:30px}}pre[_ngcontent-c78]:before{counter-reset:a}pre[_ngcontent-c78] code[_ngcontent-c78]{clear:left;counter-increment:a;float:left;overflow:initial;padding:0;text-align:left;white-space:pre}pre[_ngcontent-c78] code[_ngcontent-c78]:before{content:counter(a,decimal-leading-zero) " ";float:left;opacity:.4;font-family:Roboto,Arial,Helvetica,sans-serif;font-weight:400;margin-right:10px}@media (min-width:600px){pre[_ngcontent-c78] code[_ngcontent-c78]:before{margin-right:20px}}.toolbar[_ngcontent-c78]{background-color:#f8f8f8;padding:8px 12px}@media (min-width:600px){.toolbar[_ngcontent-c78]{padding:18px 30px}}.toolbar[_ngcontent-c78] p[_ngcontent-c78]{font-weight:400}.toolbar[_ngcontent-c78] p[_ngcontent-c78] span[_ngcontent-c78]{margin-left:30px}</style><style ng-transition="cloudblog">.uni-blog-article-tags__tags-list[_ngcontent-c81] > li[_ngcontent-c81]:before{content:"";white-space:pre}</style></head><body><app-root ng-version="5.2.2"><site-gtm><noscript><iframe height="0" src="//web.archive.org/web/20210121173734if_/https://www.googletagmanager.com/ns.html?id=GTM-5CVQBG" style="display:none;visibility:hidden" width="0"></iframe></noscript></site-gtm><div class="wrapper"><page-loading _nghost-c1=""><!----></page-loading><site-header _nghost-c2=""><div _ngcontent-c2="" class="h-c-header__drawer-backdrop" id="h-js-header__drawer-backdrop"></div><div _ngcontent-c2="" class="h-js-header__drawer-backdrop--desktop"></div><div _ngcontent-c2="" class="glue-header h-c-header h-c-header--corporate-initiative" id="page-top"><div _ngcontent-c2="" class="h-c-header__bar"><div _ngcontent-c2="" class="h-c-header__hamburger h-c-header__hamburger--first-tier"><div _ngcontent-c2="" class="h-c-header__hamburger-wrapper"><button _ngcontent-c2="" aria-controls="h-js-header__drawer" aria-expanded="false" aria-label="Open the navigation drawer" class="h-c-header__hamburger-link" type="button"><svg _ngcontent-c2="" aria-label="Navigation" class="h-c-header__hamburger-img h-c-header__hamburger-img--standard" role="img"><use _ngcontent-c2="" xlink:href="/web/20210121173734im_/https://cloud.google.com/blog/#h-burger" class="h-c-header__hamburger-svg"></use></svg><svg _ngcontent-c2="" aria-label="Navigation" class="h-c-header__hamburger-img h-c-header__hamburger-img--reversed" role="img"><use _ngcontent-c2="" xlink:href="/web/20210121173734im_/https://cloud.google.com/blog/#h-burger" class="h-c-header__hamburger-svg"></use></svg></button></div></div><div _ngcontent-c2="" class="h-c-header__lockup"><div _ngcontent-c2="" class="h-c-header__company-logo"><a _ngcontent-c2="" class="h-c-header__company-logo-link" href="https://web.archive.org/web/20210121173734/https://cloud.google.com/" title="Google Cloud"><svg _ngcontent-c2="" aria-label="Google Cloud" class="h-c-header__company-logo-img h-c-header__company-logo-img--standard" role="img"><use _ngcontent-c2="" xlink:href="/web/20210121173734im_/https://cloud.google.com/blog/#h-color-cloud-logo"></use></svg></a></div><div _ngcontent-c2="" class="h-c-header__product-logo"><div _ngcontent-c2="" class="h-c-header__product-logo-link"><span _ngcontent-c2="" class="h-c-header__product-logo-text">Blog</span></div></div><a _ngcontent-c2="" class="h-c-header__jump-to-content" href="#jump-content"><span _ngcontent-c2="" class="h-c-header__jump-to-content-text">Skip to content</span></a></div><div _ngcontent-c2="" class="h-c-header__initiative-logo"><a _ngcontent-c2="" class="h-c-header__initiative-logo-link" href="/web/20210121173734/https://cloud.google.com/"><span _ngcontent-c2="" class="h-c-header__initiative-logo-text">Blog</span></a></div><div _ngcontent-c2="" aria-label="More Options" class="h-c-header-menu-dropdown__button" title="More Option Menu"><span _ngcontent-c2="" class="h-c-header-menu-dropdown__label">Menu</span><svg _ngcontent-c2="" aria-label="Navigation" class="h-c-header-menu-dropdown__svg" role="img"><use _ngcontent-c2="" xlink:href="/web/20210121173734im_/https://cloud.google.com/blog/#mi-chevron"></use></svg></div><nav _ngcontent-c2="" class="h-c-header__nav"><ul _ngcontent-c2="" class="h-c-header__nav-list"><li _ngcontent-c2="" aria-level="1" class="h-c-header__nav-li"><a _ngcontent-c2="" aria-expanded="true" class="h-c-header__nav-li-link " href="/web/20210121173734/https://cloud.google.com/" routerlinkactive="h-is-active"> Latest Stories </a></li><!----><li _ngcontent-c2="" aria-level="1" class="h-c-header__nav-li ng-star-inserted"><a _ngcontent-c2="" aria-expanded="true" class="h-c-header__nav-li-link " href="/web/20210121173734/https://cloud.google.com/blog/topics/inside-google-cloud/whats-new-google-cloud" routerlinkactive="h-is-active"> What's New </a></li><li _ngcontent-c2="" aria-level="1" class="h-c-header__nav-li"><a _ngcontent-c2="" class="h-c-header__nav-li-link" href="/web/20210121173734/https://cloud.google.com/products/"> Product News </a><!----><!----></li><!----><li _ngcontent-c2="" aria-level="1" class="h-c-header__nav-li"><a _ngcontent-c2="" class="h-c-header__nav-li-link" href="/web/20210121173734/https://cloud.google.com/topics/"> Topics </a><!----><!----></li></ul></nav><search-header _ngcontent-c2="" _nghost-c5=""><div _ngcontent-c5="" uni-component="searchBar"><form _ngcontent-c5="" class="search-bar__form"><input _ngcontent-c5="" aria-label="Find an article..." placeholder="Find an article..." type="text"><button _ngcontent-c5="" aria-label="Search" class="search-bar__button search-bar__button--search"><svg _ngcontent-c5="" class="h-c-icon h-c-icon--color-text" role="img"><use _ngcontent-c5="" xlink:href="/web/20210121173734im_/https://cloud.google.com/blog/#mi-search"></use></svg></button><!----></form></div></search-header><div _ngcontent-c2="" class="h-c-header__cta"><ul _ngcontent-c2="" class="h-c-header__cta-list"><li _ngcontent-c2="" class="h-c-header__cta-li"><button _ngcontent-c2="" aria-label="Search" class="uni-header-search-button"><svg _ngcontent-c2="" class="h-c-icon h-c-icon--color-text uni-header-search-button__icon" role="img"><use _ngcontent-c2="" xlink:href="/web/20210121173734im_/https://cloud.google.com/blog/#mi-search"></use></svg></button></li><li _ngcontent-c2="" aria-label="More Options" class="h-c-header__cta-li" title="More Option Menu"><secondary-nav _ngcontent-c2="" _nghost-c6=""><div _ngcontent-c6="" class="nav-kebab"><div _ngcontent-c6="" class="glue-c-popover"><p _ngcontent-c6="" class="glue-c-popover__trigger nav-kebab-popover__trigger h-c-header__cta-li-link"><svg _ngcontent-c6="" class="h-c-icon h-c-icon--color-text nav-kebab__icon" role="img"><use _ngcontent-c6="" xlink:href="/web/20210121173734im_/https://cloud.google.com/blog/#mi-more-vert"></use></svg></p><div _ngcontent-c6="" class="glue-c-popover__dialog nav-kebab-popover__dialog"><ul _ngcontent-c6="" class="h-no-bullet" id="secondary-nav-list"><li _ngcontent-c6=""><a _ngcontent-c6="" href="/web/20210121173734/https://cloud.google.com/about/">About</a></li><li _ngcontent-c6=""><a _ngcontent-c6=""><span _ngcontent-c6="">RSS Feed</span><svg _ngcontent-c6="" aria-hidden="true" class="h-c-icon h-c-icon--social h-c-icon--no-padding h-c-icon--18px" viewbox="0 0 24 24"><use _ngcontent-c6="" xlink:href="/web/20210121173734im_/https://cloud.google.com/blog/#mi-rss-feed" xmlns:xlink="http://www.w3.org/1999/xlink"></use></svg></a></li></ul><div _ngcontent-c6="" aria-label="Close" class="glue-c-popover__close-btn h-u-visually-hidden">×</div></div></div></div></secondary-nav></li></ul></div><!----><div _ngcontent-c2="" class="h-c-header__bar-underside"></div></div><div _ngcontent-c2="" aria-label="Navigation drawer" class="mobile-drawer" tabindex="0"><div _ngcontent-c2="" class="mobile-drawer__content"><search-header _ngcontent-c2="" _nghost-c5=""><div _ngcontent-c5="" uni-component="searchBar"><form _ngcontent-c5="" class="search-bar__form"><input _ngcontent-c5="" aria-label="Find an article..." placeholder="Find an article..." type="text"><button _ngcontent-c5="" aria-label="Search" class="search-bar__button search-bar__button--search"><svg _ngcontent-c5="" class="h-c-icon h-c-icon--color-text" role="img"><use _ngcontent-c5="" xlink:href="/web/20210121173734im_/https://cloud.google.com/blog/#mi-search"></use></svg></button><!----></form></div></search-header><nav _ngcontent-c2="" class="mobile-drawer__nav"><ul _ngcontent-c2="" class="mobile-drawer__nav-list"><li _ngcontent-c2="" aria-level="1" class="mobile-drawer__nav-li"><a _ngcontent-c2="" class="mobile-drawer__nav-li-link" href="/web/20210121173734/https://cloud.google.com/" routerlinkactive="h-is-active">Latest stories</a></li><li _ngcontent-c2="" aria-level="1" class="mobile-drawer__nav-li"><a _ngcontent-c2="" class="mobile-drawer__nav-li-link" href="/web/20210121173734/https://cloud.google.com/products/" routerlinkactive="h-is-active">Products</a></li><li _ngcontent-c2="" aria-level="1" class="mobile-drawer__nav-li"><a _ngcontent-c2="" class="mobile-drawer__nav-li-link" href="/web/20210121173734/https://cloud.google.com/topics/" routerlinkactive="h-is-active">Topics</a></li><li _ngcontent-c2="" aria-level="1" class="mobile-drawer__nav-li"><a _ngcontent-c2="" class="mobile-drawer__nav-li-link" href="/web/20210121173734/https://cloud.google.com/about/" routerlinkactive="h-is-active">About</a></li><li _ngcontent-c2="" aria-level="1" class="mobile-drawer__nav-li"><a _ngcontent-c2="" class="mobile-drawer__nav-li-link">RSS Feed</a></li></ul></nav></div></div></div></site-header><div class="content"><router-outlet></router-outlet><dynamic-page class="ng-star-inserted"><div></div><article-page class="ng-star-inserted"><main id="jump-content"><article><article-header-block><section class="h-c-page article-hero"><div class="h-c-grid"><div class="h-c-grid__col h-c-grid__col--10 h-c-grid__col--offset-1"><!----><p class="h-c-eyebrow h-u-mb-std ng-star-inserted">Developers & Practitioners</p><h1>Implementing leader election on Google Cloud Storage</h1></div></div></section></article-header-block><!----><!----><article-aspect-image-block class="ng-star-inserted"><figure class="article-image--full-aspect article-module"><div class="article-image__thin-aspect-image" style="background-image:url(https://web.archive.org/web/20210121173734im_/https://storage.googleapis.com/gweb-cloudblog-publish/images/GCP_Storage_and_Data_Transfer.max-2800x280.max-2200x2200.jpg);"><span class="h-u-visually-hidden">#storage</span></div></figure></article-aspect-image-block><div class="h-c-page article-meta__page"><div class="h-c-grid"><div class="article-meta__content h-c-grid__col h-c-grid__col--8 h-c-grid__col--offset-2 h-c-grid__col-l--2 h-c-grid__col-l--offset-1"><!----><div class="ng-star-inserted"><article-author-block><div><!----><div class="article-meta__author ng-star-inserted"><div class="article-meta__author-name"> Ahmet Alp Balkan </div><div class="article-meta__author-title"> Senior Developer Advocate </div></div><span class="article-meta__published-at"> January 13, 2021 </span></div></article-author-block></div></div></div><article-cta _nghost-c75=""><!----><div _ngcontent-c75="" class="h-c-grid article-meta__cta ng-star-inserted"><div _ngcontent-c75="" class="article-meta__content h-c-grid__col h-c-grid__col--8 h-c-grid__col--offset-2 h-c-grid__col-l--2 h-c-grid__col-l--offset-1"><h4 _ngcontent-c75="" class="article-meta__cta-title"><!----><!----><span _ngcontent-c75="" class="ng-star-inserted">Try GCP</span><!----><!----><!----><!----><!----></h4><p _ngcontent-c75="" class="utility-copy article-meta__cta-copy"><!----><!----><span _ngcontent-c75="" class="ng-star-inserted">Start building on Google Cloud with $300 in free credits and 20+ always free products.</span><!----><!----><!----><!----><!----></p><a _ngcontent-c75="" class="h-c-button h-c-button--primary article-meta__cta-anchor" clicktracker="" rel="external" track-type="freeTrial" track-name="gcpCta" track-metadata-eventdetail="body" href="https://web.archive.org/web/20210121173734/https://cloud.google.com/free/"><!----><!----><span _ngcontent-c75="" class="ng-star-inserted">Free Trial</span><!----><!----><!----><!----><!----></a></div></div></article-cta></div><article-share-block><div class="h-c-page article-share__page mobile"><div class="h-c-grid"><nav class="article-share uni-click-tracker h-c-grid__col h-c-grid__col--8 h-c-grid__col--offset-2 h-c-grid__col-l--1 h-c-grid__col-l--offset-11"><a aria-label="Share on Facebook" class="article-share__link" data-platform="Facebook" target="_blank" href="https://web.archive.org/web/20210121173734/https://www.facebook.com/sharer/sharer.php?caption=Implementing%20leader%20election%20on%20Google%20Cloud%20Storage&u=https://cloud.google.com/blog/topics/developers-practitioners/implementing-leader-election-google-cloud-storage/"><svg aria-hidden="true" class="h-c-icon h-c-icon--social h-c-icon--30px" viewbox="0 0 30 30"><use xlink:href="/web/20210121173734im_/https://cloud.google.com/blog/#social-facebook" xmlns:xlink="http://www.w3.org/1999/xlink"></use></svg></a><a aria-label="Share on Twitter" class="article-share__link" data-platform="Twitter" target="_blank" href="https://web.archive.org/web/20210121173734/https://twitter.com/intent/tweet?text=Implementing%20leader%20election%20on%20Google%20Cloud%20Storage%20@googlecloud&url=https://cloud.google.com/blog/topics/developers-practitioners/implementing-leader-election-google-cloud-storage/"><svg aria-hidden="true" class="h-c-icon h-c-icon--social h-c-icon--30px" viewbox="0 0 30 30"><use xlink:href="/web/20210121173734im_/https://cloud.google.com/blog/#social-twitter" xmlns:xlink="http://www.w3.org/1999/xlink"></use></svg></a><a aria-label="Share on LinkedIn" class="article-share__link" data-platform="LinkedIn" target="_blank" href="https://web.archive.org/web/20210121173734/https://www.linkedin.com/shareArticle?mini=true&url=https://cloud.google.com/blog/topics/developers-practitioners/implementing-leader-election-google-cloud-storage/&title=Implementing%20leader%20election%20on%20Google%20Cloud%20Storage"><svg aria-hidden="true" class="h-c-icon h-c-icon--social h-c-icon--30px" viewbox="0 0 30 30"><use xlink:href="/web/20210121173734im_/https://cloud.google.com/blog/#social-linkedin" xmlns:xlink="http://www.w3.org/1999/xlink"></use></svg></a><a aria-label="Share with Email" class="article-share__link" data-platform="Email" target="_blank" href="https://web.archive.org/web/20210121173734/mailto:/?subject=Implementing%20leader%20election%20on%20Google%20Cloud%20Storage&body=Check%20out%20this%20article%20on%20the%20Cloud%20Blog:%0A%0AImplementing%20leader%20election%20on%20Google%20Cloud%20Storage%0A%0AControlling%20coordination%20among%20distributed%20systems%20can%20be%20complex.%20This%20article%20showcases%20how%20to%20build%20your%20own%20leader%20election%20system%20using%20only%20Google%20Cloud%20Storage.%0A%0Ahttps://cloud.google.com/blog/topics/developers-practitioners/implementing-leader-election-google-cloud-storage/"><svg aria-hidden="true" class="h-c-icon h-c-icon--social h-c-icon--30px" viewbox="0 0 30 30"><use xlink:href="/web/20210121173734im_/https://cloud.google.com/blog/#social-mail" xmlns:xlink="http://www.w3.org/1999/xlink"></use></svg></a></nav></div></div></article-share-block><article-sticky-share-block><div class="article-sticky-share"><div class="article-sticky-share__wrap glue-sticky" glue-sticky-end="share-sticky-end"><nav class="article-sticky-share__nav"><a aria-label="Share on Facebook" class="article-share__link" data-platform="Facebook" rel="noopener" target="_blank" href="https://web.archive.org/web/20210121173734/https://www.facebook.com/sharer/sharer.php?caption=Implementing%20leader%20election%20on%20Google%20Cloud%20Storage&u=https://cloud.google.com/blog/topics/developers-practitioners/implementing-leader-election-google-cloud-storage/"><svg aria-hidden="true" class="h-c-icon h-c-icon--social h-c-icon--30px" viewbox="0 0 30 30"><use xlink:href="/web/20210121173734im_/https://cloud.google.com/blog/#social-facebook" xmlns:xlink="http://www.w3.org/1999/xlink"></use></svg></a><a aria-label="Share on Twitter" class="article-share__link" data-platform="Twitter" rel="noopener" target="_blank" href="https://web.archive.org/web/20210121173734/https://twitter.com/intent/tweet?text=Implementing%20leader%20election%20on%20Google%20Cloud%20Storage%20@googlecloud&url=https://cloud.google.com/blog/topics/developers-practitioners/implementing-leader-election-google-cloud-storage/"><svg aria-hidden="true" class="h-c-icon h-c-icon--social h-c-icon--30px" viewbox="0 0 30 30"><use xlink:href="/web/20210121173734im_/https://cloud.google.com/blog/#social-twitter" xmlns:xlink="http://www.w3.org/1999/xlink"></use></svg></a><!----><a aria-label="Share on LinkedIn" class="article-share__link ng-star-inserted" data-platform="Linkedin" rel="noopener" target="_blank" href="https://web.archive.org/web/20210121173734/https://www.linkedin.com/shareArticle?mini=true&url=https://cloud.google.com/blog/topics/developers-practitioners/implementing-leader-election-google-cloud-storage/&title=Implementing%20leader%20election%20on%20Google%20Cloud%20Storage"><svg aria-hidden="true" class="h-c-icon h-c-icon--social h-c-icon--30px" viewbox="0 0 30 30"><use xlink:href="/web/20210121173734im_/https://cloud.google.com/blog/#social-linkedin" xmlns:xlink="http://www.w3.org/1999/xlink"></use></svg></a><a aria-label="Share with Email" class="article-share__link" data-platform="Email" rel="noopener" target="_blank" href="https://web.archive.org/web/20210121173734/mailto:/?subject=Implementing%20leader%20election%20on%20Google%20Cloud%20Storage&body=Check%20out%20this%20article%20on%20the%20Cloud%20Blog:%0A%0AImplementing%20leader%20election%20on%20Google%20Cloud%20Storage%0A%0AControlling%20coordination%20among%20distributed%20systems%20can%20be%20complex.%20This%20article%20showcases%20how%20to%20build%20your%20own%20leader%20election%20system%20using%20only%20Google%20Cloud%20Storage.%0A%0Ahttps://cloud.google.com/blog/topics/developers-practitioners/implementing-leader-election-google-cloud-storage/"><svg aria-hidden="true" class="h-c-icon h-c-icon--social h-c-icon--30px" viewbox="0 0 30 30"><use xlink:href="/web/20210121173734im_/https://cloud.google.com/blog/#social-mail" xmlns:xlink="http://www.w3.org/1999/xlink"></use></svg></a></nav></div></div></article-sticky-share-block><section class="uni-container"><div class="uni-wrapper"><div class="uni-content uni-blog-article-container uni-tombstone"><!----><article-content-stream-block class="ng-star-inserted"><!----><div class="ng-star-inserted"><!----><!----><div class="module--text h-c-page ng-star-inserted"><div class="h-c-grid"><div class="uni-paragraph h-c-grid__col h-c-grid__col--8 h-c-grid__col-m--6 h-c-grid__col-l--6 h-c-grid__col--offset-2 h-c-grid__col-m--offset-3 h-c-grid__col-l--offset-3"><!----><!----><paragraph-block _nghost-c77="" class="ng-star-inserted"><div _ngcontent-c77="" class="rich-text" innerhtml="<p>Leader election is a commonly applied pattern for implementing distributed systems. For example, replicated relational databases such as MySQL, or distributed key-value stores such as Apache Zookeeper, choose a leader (sometimes referred to as master) among the replicas. All write operations go through the leader, so only a single node is writing to the system at any time. This is done to ensure no writes are lost and the database is not corrupted.</p><p>It can be challenging to choose a leader among the nodes of a distributed system due to the nature of networked systems and time synchronization. In this article, we&#8217;ll discuss why you need leader election (or more generally, &#34;distributed locks&#34;), explain why they are difficult to implement, and provide an example implementation that uses a strongly consistent storage system, in this case Google Cloud Storage.</p><h3>Why do we need distributed locks?</h3><p>Imagine a multithreaded program where each thread is interacting with a shared variable or data structure. To prevent data loss or corrupting the data structure, multiple threads should block and wait on each other while modifying the state. We ensure this with mutexes in a single-process application. Distributed locks are no different in this regard than mutexes in single-process systems.</p><p>A distributed system working on shared data still needs a locking mechanism to safely take turns while modifying shared data. However, we no longer have the notion of mutexes while working in a distributed environment. This is where distributed locks and leader elections come into the picture.</p><h3>Use cases for leader election</h3><p>Typically leader election is used to ensure exclusive access by a single node to shared data, or to ensure a single node coordinates the work in a system.</p><p>For replicated database systems such as MySQL, Apache Zookeeper, or Cassandra, we need to make sure only one &#34;leader&#34; exists at any given time. All writes go through this leader to ensure writes happen in one place. Meanwhile, the reads can be served from the follower nodes.</p><p>Here&#8217;s another example. You have three nodes for an application that consumes messages from a message queue; however, only one of these nodes is to process messages at any time. By choosing a leader, you can appoint a node to fulfill that responsibility. If the leader becomes unavailable, other nodes can take over and continue the work. In this case, a leader election is needed to coordinate the work.</p><p>Many distributed systems take advantage of leader election or distributed lock patterns. However, choosing a leader is a nontrivial problem.</p><h3>Why is distributed locking difficult?</h3><p>Distributed systems are like threads of a single-process program, except they are on different machines and they talk to each other over the network (which can be unreliable). As a result, they cannot rely on mutexes or similar locking mechanisms that use atomic CPU instructions and shared memory to implement the lock.</p><p>The distributed locking problem requires the participants to agree on who is holding the lock. We also expect a leader to be elected while some nodes in the system are unavailable. This may sound simple, but implementing such a system correctly can be quite difficult, in part due to the many edge cases. This is where distributed consensus algorithms come into the picture.</p><p>To implement distributed locking, you need a <a href="https://en.wikipedia.org/wiki/Strong_consistency" target="_blank">strongly consistent</a> system to decide which node holds the lock. Because this must be an atomic operation, it requires <a href="https://en.wikipedia.org/wiki/Consensus_(computer_science)" target="_blank">consensus protocols</a> such as <a href="https://en.wikipedia.org/wiki/Paxos_(computer_science)" target="_blank">Paxos</a>, <a href="https://en.wikipedia.org/wiki/Raft_(algorithm)" target="_blank">Raft</a>, or the <a href="https://en.wikipedia.org/wiki/Two-phase_commit_protocol" target="_blank">two-phase commit</a> protocol. However, implementing these algorithms correctly is quite difficult, as the implementations must be extensively tested and formally proved. Furthermore, the theoretical properties of these algorithms often fail to withstand real-world conditions, which has led to <a href="https://www.hashicorp.com/blog/making-gossip-more-robust-with-lifeguard" target="_blank">more advanced research</a> on the topic.</p><p>At Google, we achieve distributed locking using a service called <a href="https://static.googleusercontent.com/media/research.google.com/en//archive/chubby-osdi06.pdf" target="_blank">Chubby</a>. Across our stack, Chubby helps many teams at Google make use of distributed consensus without having to worry about implementing a locking service from scratch (and doing so correctly).</p><h3>Cheating a bit: Leveraging other storage primitives</h3><p>Instead of implementing your own consensus protocol, you can easily take advantage of a <a href="https://en.wikipedia.org/wiki/Strong_consistency" target="_blank">strongly consistent</a> storage system that provides the same guarantees through a single key or record. By delegating the responsibility for atomicity to an external storage system, we no longer need the participating nodes to form a quorum and vote on a new leader.</p><p>For example, a distributed database record (or file) can be used to name the current leader, and when the leader has renewed its leadership lock. If there's no leader in the record, or the leader has not renewed its lock, other nodes can run for election by attempting to write their name to the record. First one to come will win, because this record or file allows atomic writes.</p><p>Such atomic writes on files or database records are typically implemented using <a href="https://en.wikipedia.org/wiki/Optimistic_concurrency_control" target="_blank">optimistic concurrency control</a>, which lets you atomically update the record by providing its version number (if the record has changed since then, the write will be rejected). Similarly, the writes become immediately available to any readers. Using these two primitives (atomic updates and consistent reads), we can implement a leader election on top of any storage system.</p><p>In fact, many Google Cloud storage products, such as <a href="https://cloud.google.com/storage">Cloud Storage</a> and <a href="https://cloud.google.com/spanner">Cloud Spanner</a>, can be used to implement such a distributed lock. Similarly, open source storage systems like <a href="https://zookeeper.apache.org/" target="_blank">Zookeeper</a> (Paxos), <a href="https://etcd.io/" target="_blank">etcd</a> (Raft), <a href="https://www.consul.io/" target="_blank">Consul</a> (Raft), or even properly configured RDBMS systems like MySQL or PostgreSQL can provide the needed primitives.</p><h3>Example: Leader election with Cloud Storage</h3><p>We can implement leader election using a single object (file) on <a href="https://cloud.google.com/storage">Cloud Storage</a> that contains the leader data, and require each node to read that file, or run for election based on the file. In this setup, the leader must renew its leadership by updating this file with its heartbeat.</p><p>My colleague <a href="https://twitter.com/sethvargo" target="_blank">Seth Vargo</a> published such a leader election implementation &#8211; written in Go and using Cloud Storage &#8211; <a href="https://godoc.org/github.com/hashicorp/vault/physical/gcs" target="_blank">as a package</a> within the HashiCorp Vault project. (Vault also has a leader election on top of <a href="https://godoc.org/github.com/hashicorp/vault/physical" target="_blank">other storage backends</a>).</p><p>To implement leader election among distributed nodes of our application in Go, we can write a program that makes use of this package in just 50 lines of code:</p>"><p>Leader election is a commonly applied pattern for implementing distributed systems. For example, replicated relational databases such as MySQL, or distributed key-value stores such as Apache Zookeeper, choose a leader (sometimes referred to as master) among the replicas. All write operations go through the leader, so only a single node is writing to the system at any time. This is done to ensure no writes are lost and the database is not corrupted.</p><p>It can be challenging to choose a leader among the nodes of a distributed system due to the nature of networked systems and time synchronization. In this article, we’ll discuss why you need leader election (or more generally, "distributed locks"), explain why they are difficult to implement, and provide an example implementation that uses a strongly consistent storage system, in this case Google Cloud Storage.</p><h3>Why do we need distributed locks?</h3><p>Imagine a multithreaded program where each thread is interacting with a shared variable or data structure. To prevent data loss or corrupting the data structure, multiple threads should block and wait on each other while modifying the state. We ensure this with mutexes in a single-process application. Distributed locks are no different in this regard than mutexes in single-process systems.</p><p>A distributed system working on shared data still needs a locking mechanism to safely take turns while modifying shared data. However, we no longer have the notion of mutexes while working in a distributed environment. This is where distributed locks and leader elections come into the picture.</p><h3>Use cases for leader election</h3><p>Typically leader election is used to ensure exclusive access by a single node to shared data, or to ensure a single node coordinates the work in a system.</p><p>For replicated database systems such as MySQL, Apache Zookeeper, or Cassandra, we need to make sure only one "leader" exists at any given time. All writes go through this leader to ensure writes happen in one place. Meanwhile, the reads can be served from the follower nodes.</p><p>Here’s another example. You have three nodes for an application that consumes messages from a message queue; however, only one of these nodes is to process messages at any time. By choosing a leader, you can appoint a node to fulfill that responsibility. If the leader becomes unavailable, other nodes can take over and continue the work. In this case, a leader election is needed to coordinate the work.</p><p>Many distributed systems take advantage of leader election or distributed lock patterns. However, choosing a leader is a nontrivial problem.</p><h3>Why is distributed locking difficult?</h3><p>Distributed systems are like threads of a single-process program, except they are on different machines and they talk to each other over the network (which can be unreliable). As a result, they cannot rely on mutexes or similar locking mechanisms that use atomic CPU instructions and shared memory to implement the lock.</p><p>The distributed locking problem requires the participants to agree on who is holding the lock. We also expect a leader to be elected while some nodes in the system are unavailable. This may sound simple, but implementing such a system correctly can be quite difficult, in part due to the many edge cases. This is where distributed consensus algorithms come into the picture.</p><p>To implement distributed locking, you need a <a href="https://web.archive.org/web/20210121173734/https://en.wikipedia.org/wiki/Strong_consistency" target="_blank">strongly consistent</a> system to decide which node holds the lock. Because this must be an atomic operation, it requires <a href="https://web.archive.org/web/20210121173734/https://en.wikipedia.org/wiki/Consensus_(computer_science)" target="_blank">consensus protocols</a> such as <a href="https://web.archive.org/web/20210121173734/https://en.wikipedia.org/wiki/Paxos_(computer_science)" target="_blank">Paxos</a>, <a href="https://web.archive.org/web/20210121173734/https://en.wikipedia.org/wiki/Raft_(algorithm)" target="_blank">Raft</a>, or the <a href="https://web.archive.org/web/20210121173734/https://en.wikipedia.org/wiki/Two-phase_commit_protocol" target="_blank">two-phase commit</a> protocol. However, implementing these algorithms correctly is quite difficult, as the implementations must be extensively tested and formally proved. Furthermore, the theoretical properties of these algorithms often fail to withstand real-world conditions, which has led to <a href="https://web.archive.org/web/20210121173734/https://www.hashicorp.com/blog/making-gossip-more-robust-with-lifeguard" target="_blank">more advanced research</a> on the topic.</p><p>At Google, we achieve distributed locking using a service called <a href="https://web.archive.org/web/20210121173734/https://static.googleusercontent.com/media/research.google.com/en//archive/chubby-osdi06.pdf" target="_blank">Chubby</a>. Across our stack, Chubby helps many teams at Google make use of distributed consensus without having to worry about implementing a locking service from scratch (and doing so correctly).</p><h3>Cheating a bit: Leveraging other storage primitives</h3><p>Instead of implementing your own consensus protocol, you can easily take advantage of a <a href="https://web.archive.org/web/20210121173734/https://en.wikipedia.org/wiki/Strong_consistency" target="_blank">strongly consistent</a> storage system that provides the same guarantees through a single key or record. By delegating the responsibility for atomicity to an external storage system, we no longer need the participating nodes to form a quorum and vote on a new leader.</p><p>For example, a distributed database record (or file) can be used to name the current leader, and when the leader has renewed its leadership lock. If there's no leader in the record, or the leader has not renewed its lock, other nodes can run for election by attempting to write their name to the record. First one to come will win, because this record or file allows atomic writes.</p><p>Such atomic writes on files or database records are typically implemented using <a href="https://web.archive.org/web/20210121173734/https://en.wikipedia.org/wiki/Optimistic_concurrency_control" target="_blank">optimistic concurrency control</a>, which lets you atomically update the record by providing its version number (if the record has changed since then, the write will be rejected). Similarly, the writes become immediately available to any readers. Using these two primitives (atomic updates and consistent reads), we can implement a leader election on top of any storage system.</p><p>In fact, many Google Cloud storage products, such as <a href="https://web.archive.org/web/20210121173734/https://cloud.google.com/storage">Cloud Storage</a> and <a href="https://web.archive.org/web/20210121173734/https://cloud.google.com/spanner">Cloud Spanner</a>, can be used to implement such a distributed lock. Similarly, open source storage systems like <a href="https://web.archive.org/web/20210121173734/https://zookeeper.apache.org/" target="_blank">Zookeeper</a> (Paxos), <a href="https://web.archive.org/web/20210121173734/https://etcd.io/" target="_blank">etcd</a> (Raft), <a href="https://web.archive.org/web/20210121173734/https://www.consul.io/" target="_blank">Consul</a> (Raft), or even properly configured RDBMS systems like MySQL or PostgreSQL can provide the needed primitives.</p><h3>Example: Leader election with Cloud Storage</h3><p>We can implement leader election using a single object (file) on <a href="https://web.archive.org/web/20210121173734/https://cloud.google.com/storage">Cloud Storage</a> that contains the leader data, and require each node to read that file, or run for election based on the file. In this setup, the leader must renew its leadership by updating this file with its heartbeat.</p><p>My colleague <a href="https://web.archive.org/web/20210121173734/https://twitter.com/sethvargo" target="_blank">Seth Vargo</a> published such a leader election implementation – written in Go and using Cloud Storage – <a href="https://web.archive.org/web/20210121173734/https://godoc.org/github.com/hashicorp/vault/physical/gcs" target="_blank">as a package</a> within the HashiCorp Vault project. (Vault also has a leader election on top of <a href="https://web.archive.org/web/20210121173734/https://godoc.org/github.com/hashicorp/vault/physical" target="_blank">other storage backends</a>).</p><p>To implement leader election among distributed nodes of our application in Go, we can write a program that makes use of this package in just 50 lines of code:</p></div></paragraph-block><!----><!----><!----></div></div></div><!----><!----><!----><!----><!----><!----><!----></div><div class="ng-star-inserted"><!----><!----><div class="module--text h-c-page ng-star-inserted"><div class="h-c-grid"><div class="uni-paragraph h-c-grid__col h-c-grid__col--8 h-c-grid__col-m--6 h-c-grid__col-l--6 h-c-grid__col--offset-2 h-c-grid__col-m--offset-3 h-c-grid__col-l--offset-3"><!----><!----><!----><article-code-block _nghost-c78="" class="ng-star-inserted"><!----><pre _ngcontent-c78=""> <!----><code _ngcontent-c78="" class="ng-star-inserted">import ( </code><code _ngcontent-c78="" class="ng-star-inserted"> "context" </code><code _ngcontent-c78="" class="ng-star-inserted"> </code><code _ngcontent-c78="" class="ng-star-inserted"> log "github.com/hashicorp/go-hclog" </code><code _ngcontent-c78="" class="ng-star-inserted"> "github.com/hashicorp/vault/physical/gcs" </code><code _ngcontent-c78="" class="ng-star-inserted"> "github.com/hashicorp/vault/sdk/physical" </code><code _ngcontent-c78="" class="ng-star-inserted">) </code><code _ngcontent-c78="" class="ng-star-inserted"> </code><code _ngcontent-c78="" class="ng-star-inserted">const ( </code><code _ngcontent-c78="" class="ng-star-inserted"> bucketName = "YOUR_GCS_BUCKET_NAME" </code><code _ngcontent-c78="" class="ng-star-inserted"> leadershipFile = "leader.txt" </code><code _ngcontent-c78="" class="ng-star-inserted">) </code><code _ngcontent-c78="" class="ng-star-inserted"> </code><code _ngcontent-c78="" class="ng-star-inserted">func main() { </code><code _ngcontent-c78="" class="ng-star-inserted"> logger := log.Default() </code><code _ngcontent-c78="" class="ng-star-inserted"> b, err := gcs.NewBackend(map[string]string{ </code><code _ngcontent-c78="" class="ng-star-inserted"> "bucket": bucketName, </code><code _ngcontent-c78="" class="ng-star-inserted"> "ha_enabled": "true", </code><code _ngcontent-c78="" class="ng-star-inserted"> }, logger) </code><code _ngcontent-c78="" class="ng-star-inserted"> if err != nil { </code><code _ngcontent-c78="" class="ng-star-inserted"> panic(err) </code><code _ngcontent-c78="" class="ng-star-inserted"> } </code><code _ngcontent-c78="" class="ng-star-inserted"> haBackend, ok := b.(physical.HABackend) </code><code _ngcontent-c78="" class="ng-star-inserted"> if !ok { </code><code _ngcontent-c78="" class="ng-star-inserted"> panic("type casting failed") </code><code _ngcontent-c78="" class="ng-star-inserted"> } </code><code _ngcontent-c78="" class="ng-star-inserted"> </code><code _ngcontent-c78="" class="ng-star-inserted"> ctx, cancel := context.WithCancel(context.Background()) </code><code _ngcontent-c78="" class="ng-star-inserted"> defer cancel() </code><code _ngcontent-c78="" class="ng-star-inserted"> </code><code _ngcontent-c78="" class="ng-star-inserted"> for { </code><code _ngcontent-c78="" class="ng-star-inserted"> lock, err := haBackend.LockWith(leadershipFile, "ignored") </code><code _ngcontent-c78="" class="ng-star-inserted"> if err != nil { </code><code _ngcontent-c78="" class="ng-star-inserted"> panic(err) </code><code _ngcontent-c78="" class="ng-star-inserted"> } </code><code _ngcontent-c78="" class="ng-star-inserted"> </code><code _ngcontent-c78="" class="ng-star-inserted"> logger.Info("running for LEADERSHIP") </code><code _ngcontent-c78="" class="ng-star-inserted"> doneCh, err := lock.Lock(ctx.Done()) </code><code _ngcontent-c78="" class="ng-star-inserted"> if err != nil { </code><code _ngcontent-c78="" class="ng-star-inserted"> panic(err) </code><code _ngcontent-c78="" class="ng-star-inserted"> } </code><code _ngcontent-c78="" class="ng-star-inserted"> logger.Info("elected as LEADER") </code><code _ngcontent-c78="" class="ng-star-inserted"> <-doneCh </code><code _ngcontent-c78="" class="ng-star-inserted"> logger.Info("lost LEADERSHIP") </code><code _ngcontent-c78="" class="ng-star-inserted"> if err := lock.Unlock(); err != nil { </code><code _ngcontent-c78="" class="ng-star-inserted"> panic(err) </code><code _ngcontent-c78="" class="ng-star-inserted"> } </code><code _ngcontent-c78="" class="ng-star-inserted"> } </code><code _ngcontent-c78="" class="ng-star-inserted">}</code> </pre></article-code-block></div></div></div><!----><!----><!----><!----><!----><!----><!----></div><div class="ng-star-inserted"><!----><!----><div class="module--text h-c-page ng-star-inserted"><div class="h-c-grid"><div class="uni-paragraph h-c-grid__col h-c-grid__col--8 h-c-grid__col-m--6 h-c-grid__col-l--6 h-c-grid__col--offset-2 h-c-grid__col-m--offset-3 h-c-grid__col-l--offset-3"><!----><!----><paragraph-block _nghost-c77="" class="ng-star-inserted"><div _ngcontent-c77="" class="rich-text" innerhtml="<p>This example program creates a lock using a file in Cloud Storage, and continually runs for election.</p><p>In this example, the <code>Lock()</code> call blocks until the calling program becomes a leader (or the context is cancelled). This call may block indefinitely since there might be another leader in the system.</p><p>If a process is elected as the leader, the library periodically sends heartbeats keeping the lock active. The leader then must finish work and give up the lock by calling the <code>Unlock()</code> method. If the leader loses the leadership, the <code>doneCh</code> channel will receive a message and the process can tell that it has lost the lock, as there might be a new leader.</p><p>Fortunately for us, the library we're using implements a heartbeat mechanism to ensure the elected leader remains available and active. If the elected leader fails abruptly without giving up the lock, after the TTL (time-to-live) on the lock expires, the remaining nodes then select a new leader, ensuring the overall system's availability.</p><p>Fortunately, this library implements the mentioned details around sending so-called periodic heartbeats, or how frequently the followers should check if the leader has died and if they should run for election. Similarly, the library employs various optimizations via storing the leadership data in <a href="https://cloud.google.com/storage/docs/metadata">object metadata</a> instead of object contents, which is costlier to read frequently.</p><p>If you need to ensure coordination between your nodes, using leader election in your distributed systems can help you safely achieve there's at most one node that has this responsibility. Using Cloud Storage or other strongly consistent systems, you can implement your own leader election. However, make sure you are aware of all the corner cases before implementing a new such library.</p><p>Further reading:</p><a href="https://kubernetes.io/blog/2016/01/simple-leader-election-with-kubernetes/" target="_blank"></a><ul><a href="https://kubernetes.io/blog/2016/01/simple-leader-election-with-kubernetes/" target="_blank"></a><a href="https://kubernetes.io/blog/2016/01/simple-leader-election-with-kubernetes/" target="_blank"></a><li><a href="https://kubernetes.io/blog/2016/01/simple-leader-election-with-kubernetes/" target="_blank"></a><a href="https://kubernetes.io/blog/2016/01/simple-leader-election-with-kubernetes/" target="_blank"></a><a href="https://kubernetes.io/blog/2016/01/simple-leader-election-with-kubernetes/" target="_blank">Implementing leader election using Kubernetes API</a></li><li><a href="https://aws.amazon.com/builders-library/leader-election-in-distributed-systems/" target="_blank">Leader election in distributed systems - AWS Builders Library</a></li><li><a href="https://docs.microsoft.com/en-us/azure/architecture/patterns/leader-election" target="_blank">Leader election -&#160; Azure Design Patterns Library</a></li><li><a href="https://kubernetespodcast.com/episode/123-leader-election/" target="_blank">Kubernetes Leader Election on Kubernetes Podcast</a><br></li></ul><p>Thanks to <a href="https://twitter.com/sethvargo" target="_blank">Seth Vargo</a> for reading drafts of this article. You can follow me <a href="https://twitter.com/ahmetb" target="_blank">on Twitter</a>.</p>"><p>This example program creates a lock using a file in Cloud Storage, and continually runs for election.</p><p>In this example, the <code>Lock()</code> call blocks until the calling program becomes a leader (or the context is cancelled). This call may block indefinitely since there might be another leader in the system.</p><p>If a process is elected as the leader, the library periodically sends heartbeats keeping the lock active. The leader then must finish work and give up the lock by calling the <code>Unlock()</code> method. If the leader loses the leadership, the <code>doneCh</code> channel will receive a message and the process can tell that it has lost the lock, as there might be a new leader.</p><p>Fortunately for us, the library we're using implements a heartbeat mechanism to ensure the elected leader remains available and active. If the elected leader fails abruptly without giving up the lock, after the TTL (time-to-live) on the lock expires, the remaining nodes then select a new leader, ensuring the overall system's availability.</p><p>Fortunately, this library implements the mentioned details around sending so-called periodic heartbeats, or how frequently the followers should check if the leader has died and if they should run for election. Similarly, the library employs various optimizations via storing the leadership data in <a href="https://web.archive.org/web/20210121173734/https://cloud.google.com/storage/docs/metadata">object metadata</a> instead of object contents, which is costlier to read frequently.</p><p>If you need to ensure coordination between your nodes, using leader election in your distributed systems can help you safely achieve there's at most one node that has this responsibility. Using Cloud Storage or other strongly consistent systems, you can implement your own leader election. However, make sure you are aware of all the corner cases before implementing a new such library.</p><p>Further reading:</p><a href="https://web.archive.org/web/20210121173734/https://kubernetes.io/blog/2016/01/simple-leader-election-with-kubernetes/" target="_blank"></a><ul><a href="https://web.archive.org/web/20210121173734/https://kubernetes.io/blog/2016/01/simple-leader-election-with-kubernetes/" target="_blank"></a><a href="https://web.archive.org/web/20210121173734/https://kubernetes.io/blog/2016/01/simple-leader-election-with-kubernetes/" target="_blank"></a><li><a href="https://web.archive.org/web/20210121173734/https://kubernetes.io/blog/2016/01/simple-leader-election-with-kubernetes/" target="_blank"></a><a href="https://web.archive.org/web/20210121173734/https://kubernetes.io/blog/2016/01/simple-leader-election-with-kubernetes/" target="_blank"></a><a href="https://web.archive.org/web/20210121173734/https://kubernetes.io/blog/2016/01/simple-leader-election-with-kubernetes/" target="_blank">Implementing leader election using Kubernetes API</a></li><li><a href="https://web.archive.org/web/20210121173734/https://aws.amazon.com/builders-library/leader-election-in-distributed-systems/" target="_blank">Leader election in distributed systems - AWS Builders Library</a></li><li><a href="https://web.archive.org/web/20210121173734/https://docs.microsoft.com/en-us/azure/architecture/patterns/leader-election" target="_blank">Leader election - Azure Design Patterns Library</a></li><li><a href="https://web.archive.org/web/20210121173734/https://kubernetespodcast.com/episode/123-leader-election/" target="_blank">Kubernetes Leader Election on Kubernetes Podcast</a><br></li></ul><p>Thanks to <a href="https://web.archive.org/web/20210121173734/https://twitter.com/sethvargo" target="_blank">Seth Vargo</a> for reading drafts of this article. You can follow me <a href="https://web.archive.org/web/20210121173734/https://twitter.com/ahmetb" target="_blank">on Twitter</a>.</p></div></paragraph-block><!----><span class="tombstone ng-star-inserted"></span><!----><!----></div></div></div><!----><!----><!----><!----><!----><!----><!----></div></article-content-stream-block><!----><article-tag-list-block class="ng-star-inserted"><!----><div class="uni-blog-article-tags ng-star-inserted"><div class="h-c-page"><div class="h-c-grid"><div class="h-c-grid__col h-c-grid__col--8 h-c-grid__col-m--6 h-c-grid__col-l--6 h-c-grid__col--offset-2 h-c-grid__col-m--offset-3 h-c-grid__col-l--offset-3"><span class="uni-blog-article-tags__label">Posted in:</span><tag-list-block _nghost-c81=""><nav _ngcontent-c81="" class="uni-blog-article-tags__container"><ul _ngcontent-c81="" class="uni-blog-article-tags__tags-list"><!----><li _ngcontent-c81="" class="ng-star-inserted"><!----><a _ngcontent-c81="" class="uni-blog-article-tags-value uni-link-active ng-star-inserted" href="/web/20210121173734/https://cloud.google.com/blog/topics/developers-practitioners">Developers & Practitioners</a><!----></li><li _ngcontent-c81="" class="ng-star-inserted"><!----><a _ngcontent-c81="" class="uni-blog-article-tags-value uni-link-active ng-star-inserted" href="/web/20210121173734/https://cloud.google.com/blog/products/gcp">Google Cloud Platform</a><!----></li><li _ngcontent-c81="" class="ng-star-inserted"><!----><a _ngcontent-c81="" class="uni-blog-article-tags-value uni-link-active ng-star-inserted" href="/web/20210121173734/https://cloud.google.com/blog/products/storage-data-transfer">Storage & Data Transfer</a><!----></li></ul></nav></tag-list-block></div></div></div></div></article-tag-list-block><div class="share-sticky-end"></div></div><section class="uni-blog-article-recommended"><article-up-1to3-block _nghost-c76=""><!----></article-up-1to3-block></section></div></section></article></main></article-page></dynamic-page></div><site-footer _nghost-c3=""><footer _ngcontent-c3="" class="h-c-footer h-c-footer--topmargin h-c-footer--standard h-has-social" id="footer-standard"><section _ngcontent-c3="" class="h-c-footer__upper"><social-links _ngcontent-c3="" _nghost-c7=""><section _ngcontent-c7="" class="h-c-social h-c-social--inline"><div _ngcontent-c7="" class="h-c-social__group"><p _ngcontent-c7="" class="h-c-social__title h-c-social__title--inline"> Follow Us </p><ul _ngcontent-c7="" class="h-c-social__list h-no-bullet"><!----></ul></div></section><!----></social-links></section><section _ngcontent-c3="" class="h-c-footer__global"><div _ngcontent-c3="" class="h-c-footer__logo"><a _ngcontent-c3="" href="https://web.archive.org/web/20210121173734/https://www.google.com/" title="Google"><svg _ngcontent-c3="" aria-hidden="true" class="h-c-footer__logo-img" viewbox="0 0 396 130"><use _ngcontent-c3="" xlink:href="/web/20210121173734im_/https://cloud.google.com/blog/#google-logo" xmlns:xlink="http://www.w3.org/1999/xlink"></use></svg></a></div><ul _ngcontent-c3="" class="h-c-footer__global-links h-no-bullet"><li _ngcontent-c3="" class="h-c-footer__global-links-list-item"><a _ngcontent-c3="" class="h-c-footer__link"> Privacy </a></li><li _ngcontent-c3="" class="h-c-footer__global-links-list-item"><a _ngcontent-c3="" class="h-c-footer__link"> Terms </a></li><li _ngcontent-c3="" class="h-c-footer__global-links-list-item"><a _ngcontent-c3="" class="h-c-footer__link" data-analytics="{'label': 'navlink: about'}"> About Google </a></li><li _ngcontent-c3="" class="h-c-footer__global-links-list-item"><a _ngcontent-c3="" class="h-c-footer__link" data-analytics="{'label': 'navlink: products'}"> Google Cloud Products </a></li></ul><ul _ngcontent-c3="" class="h-c-footer__global-links h-c-footer__global-links--extra h-no-bullet"><li _ngcontent-c3="" class="h-c-footer__global-links-list-item h-c-footer__global-links-list-item--extra"><button _ngcontent-c3="" aria-haspopup="true" class="language-selector-btn" disableripple="" mat-button=""><span class="mat-button-wrapper"><span _ngcontent-c3="">Language</span><mat-icon _ngcontent-c3="" class="mat-icon" role="img" aria-hidden="true">arrow_drop_down</mat-icon></span><div class="mat-button-ripple mat-ripple" matripple=""></div><div class="mat-button-focus-overlay"></div></button><mat-menu _ngcontent-c3="" overlaptrigger="false" yposition="above" class="ng-tns-c10-0"><!----></mat-menu></li><li _ngcontent-c3="" class="h-c-footer__global-links-list-item h-c-footer__global-links-list-item--extra"><a _ngcontent-c3="" class="h-c-footer__link"><svg _ngcontent-c3="" aria-hidden="true" class="h-c-icon h-c-icon--24px h-c-icon--footer"><use _ngcontent-c3="" xlink:href="/web/20210121173734im_/https://cloud.google.com/blog/#mi-help" xmlns:xlink="http://www.w3.org/1999/xlink"></use></svg><span _ngcontent-c3="">Help</span></a></li></ul></section></footer></site-footer></div></app-root><svg class="svg-assets h-u-visually-hidden"><symbol id="mi-arrow-forward"><path d="M9 1.5C4.8 1.5 1.5 4.8 1.5 9s3.3 7.5 7.5 7.5 7.5-3.3 7.5-7.5S13.2 1.5 9 1.5zm0 13l-1-1 3.8-3.8H3.5V8.3h8.4L8.1 4.5l.9-1L14.5 9 9 14.5z"></path></symbol><symbol id="mi-help" viewbox="0 0 48 48"><path d="M24 4C12.95 4 4 12.95 4 24s8.95 20 20 20 20-8.95 20-20S35.05 4 24 4zm2 34h-4v-4h4v4zm4.13-15.49l-1.79 1.84C26.9 25.79 26 27 26 30h-4v-1c0-2.21.9-4.21 2.34-5.66l2.49-2.52C27.55 20.1 28 19.1 28 18c0-2.21-1.79-4-4-4s-4 1.79-4 4h-4c0-4.42 3.58-8 8-8s8 3.58 8 8c0 1.76-.71 3.35-1.87 4.51z" fill="currentColor"></path></symbol><symbol id="mi-clear" viewbox="0 0 24 24"><path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"></path><path d="M0 0h24v24H0z" fill="none"></path></symbol><symbol id="mi-keyboard-arrow-right" viewbox="0 0 24 24"><path stroke-width="2" d="M9.546 6.5l5.443 5.532L9.5 17.5" fill="none" fill-rule="evenodd"></path></symbol><symbol id="mi-chevron" viewbox="0 0 12 8"><path fill-rule="evenodd" d="M12 6.6L10.6 8 6 3.4 1.4 8 0 6.6l6-6"></path></symbol><symbol id="mi-youtube-icon" viewbox="0 0 28 20"><path d="M11.2,14.1V5.9l7.5,4.3L11.2,14.1z M27.7,4.2c0,0-0.3-1.9-1.1-2.8c-1.1-1.1-2.3-1.1-2.8-1.2 C19.9,0,14,0,14,0S8.1,0,4.2,0.2C3.7,0.3,2.5,0.3,1.4,1.4C0.6,2.3,0.3,4.2,0.3,4.2S0,6.5,0,8.8v2.4c0,2.3,0.3,4.6,0.3,4.6 s0.3,1.9,1.1,2.8c1.1,1.1,2.5,1.1,3.1,1.2C6.7,20,13.8,20,14,20c0,0,5.9,0,9.8-0.3c0.5-0.1,1.7-0.1,2.8-1.2c0.8-0.8,1.1-2.8,1.1-2.8 s0.3-2.3,0.3-4.6V8.8C28,6.5,27.7,4.2,27.7,4.2L27.7,4.2z"></path></symbol><symbol id="mi-arrow-dropdown" viewbox="0 0 24 24"><path d="M7 10l5 5 5-5z"></path></symbol><symbol id="mi-search" viewbox="0 0 24 22"><path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"></path></symbol><symbol id="social-facebook" viewbox="0 0 18 18"><path d="M15.7,1.5H2.3c-0.5,0-0.8,0.4-0.8,0.8v13.3c0,0.5,0.4,0.8,0.8,0.8h7.2v-5.8h-2V8.4h2V6.8c0-1.9,1.2-3,2.9-3 c0.8,0,1.5,0.1,1.7,0.1v2l-1.2,0c-0.9,0-1.1,0.4-1.1,1.1v1.4h2.2l-0.3,2.3h-1.9v5.8h3.8c0.5,0,0.8-0.4,0.8-0.8V2.3 C16.5,1.9,16.1,1.5,15.7,1.5z"></path></symbol><symbol id="social-link" viewbox="0 0 18 18"><path d="M12.8,5.2h-3v1.4h3c1.3,0,2.3,1,2.3,2.3s-1,2.3-2.3,2.3h-3v1.4h3c2.1,0,3.8-1.7,3.8-3.8S14.8,5.2,12.8,5.2z M6,9.8h6V8.2H6V9.8z M2.9,9c0-1.3,1-2.3,2.3-2.3h3V5.2h-3C3.2,5.2,1.5,6.9,1.5,9s1.7,3.8,3.8,3.8h3v-1.4h-3C4,11.3,2.9,10.3,2.9,9z"></path></symbol><symbol id="social-linkedin" viewbox="0 0 18 18"><path d="M15.4,1.5H2.6C2,1.5,1.5,2,1.5,2.6v12.8c0,0.6,0.5,1.1,1.1,1.1h12.8c0.6,0,1.1-0.5,1.1-1.1V2.6C16.5,2,16,1.5,15.4,1.5z M3.8,7.1H6v7.2H3.8V7.1z M4.9,6.1c-0.7,0-1.3-0.6-1.3-1.3c0-0.7,0.6-1.3,1.3-1.3c0.7,0,1.3,0.6,1.3,1.3C6.2,5.6,5.6,6.1,4.9,6.1z M14.5,14.3h-2.3v-3.5c0-0.8,0-1.9-1.2-1.9c-1.2,0-1.4,0.9-1.4,1.8v3.5H7.4V7.1h2.2v1h0c0.3-0.6,1-1.2,2.1-1.2 c2.3,0,2.7,1.5,2.7,3.4V14.3z"></path></symbol><symbol id="social-mail" viewbox="0 0 18 18"><path d="M9,8.2L3,4.5h12L9,8.2z M15,13.5H3V6l6,3.8L15,6V13.5z M15,3H3C2.2,3,1.5,3.7,1.5,4.5l0,9C1.5,14.3,2.2,15,3,15 h12c0.8,0,1.5-0.7,1.5-1.5v-9C16.5,3.7,15.8,3,15,3z"></path></symbol><symbol id="social-twitter" viewbox="0 0 18 18"><path d="M16.5,4.3c-0.6,0.2-1.1,0.4-1.8,0.5c0.6-0.4,1.1-1,1.4-1.7c-0.6,0.4-1.3,0.6-2,0.8c-0.6-0.6-1.4-1-2.2-1 c-1.7,0-3.1,1.4-3.1,3.1c0,0.2,0,0.5,0.1,0.7C6.3,6.5,4.1,5.3,2.5,3.4C2.3,3.9,2.1,4.4,2.1,5c0,1.1,0.5,2,1.4,2.6 c-0.5,0-1-0.2-1.4-0.4c0,0,0,0,0,0c0,1.5,1.1,2.8,2.5,3.1c-0.3,0.1-0.5,0.1-0.8,0.1c-0.2,0-0.4,0-0.6-0.1c0.4,1.2,1.5,2.1,2.9,2.2 c-1.1,0.8-2.4,1.3-3.8,1.3c-0.2,0-0.5,0-0.7,0c1.4,0.9,3,1.4,4.7,1.4c5.7,0,8.8-4.7,8.8-8.9c0-0.1,0-0.3,0-0.4 C15.6,5.5,16.1,4.9,16.5,4.3"></path></symbol><symbol id="social-youtube" viewbox="0 0 18 18"><path d="M7.2,11.6V6.4L12,9.1L7.2,11.6z M17.8,5.3c0,0-0.2-1.2-0.7-1.8c-0.7-0.7-1.4-0.7-1.8-0.8C12.8,2.6,9,2.6,9,2.6 s-3.8,0-6.3,0.2c-0.3,0-1.1,0-1.8,0.8C0.4,4.1,0.2,5.3,0.2,5.3S0,6.8,0,8.2v1.5c0,1.5,0.2,2.9,0.2,2.9s0.2,1.2,0.7,1.8 c0.7,0.7,1.6,0.7,2,0.8c1.4,0.1,5.9,0.2,6.1,0.2c0,0,3.8,0,6.3-0.2c0.3,0,1.1,0,1.8-0.8c0.5-0.5,0.7-1.8,0.7-1.8S18,11.2,18,9.8V8.2 C18,6.8,17.8,5.3,17.8,5.3z"></path></symbol><symbol id="google-logo" viewbox="0 0 396 130"><path d="M51.0745265,101.038701 C23.3283097,101.038701 9.65724009e-07,78.4212338 9.65724009e-07,50.645974 C-0.00548030982,22.8707143 23.3228284,0.253246753 51.0745265,0.253246753 C66.4220981,0.253246753 77.3517615,6.27798701 85.5736748,14.1408766 L75.8718171,23.8528896 C69.9794459,18.3219805 61.9987087,14.0201623 51.0690452,14.0201623 C30.8102508,14.0201623 14.9693645,30.365974 14.9693645,50.645974 C14.9693645,70.925974 30.8102508,87.2717857 51.0690452,87.2717857 C64.2076627,87.2717857 71.6950851,81.9877922 76.48572,77.1921429 C80.4157945,73.2579545 82.991994,67.6063312 83.9731424,59.8641558 L51.0745265,59.8641558 L51.0745265,46.1027273 L97.3638985,46.1027273 C97.8572133,48.5609091 98.0983894,51.5129221 98.0983894,54.7063636 C98.0983894,65.0329221 95.2755325,77.8121753 86.1875777,86.9096429 C77.3462802,96.1223377 66.0548526,101.038701 51.0745265,101.038701 L51.0745265,101.038701 Z"></path><path d="M167.573556,68.369026 C167.573556,87.0523052 152.965957,100.813734 135.036704,100.813734 C117.112933,100.813734 102.499853,87.0468182 102.499853,68.369026 C102.499853,49.5650325 117.112933,35.9188312 135.036704,35.9188312 C152.965957,35.9188312 167.573556,49.5650325 167.573556,68.369026 L167.573556,68.369026 Z M153.333202,68.369026 C153.333202,56.6926623 144.85915,48.7035714 135.036704,48.7035714 C125.214259,48.7035714 116.740207,56.6926623 116.740207,68.369026 C116.740207,79.9191883 125.214259,88.0344805 135.036704,88.0344805 C144.85915,88.0344805 153.333202,79.9191883 153.333202,68.369026 L153.333202,68.369026 Z"></path><path d="M238.282011,68.369026 C238.282011,87.0523052 223.674411,100.813734 205.745159,100.813734 C187.821388,100.813734 173.208307,87.0468182 173.208307,68.369026 C173.208307,49.5650325 187.821388,35.9188312 205.745159,35.9188312 C223.674411,35.9188312 238.282011,49.5650325 238.282011,68.369026 L238.282011,68.369026 Z M224.041657,68.369026 C224.041657,56.6926623 215.567605,48.7035714 205.745159,48.7035714 C195.922713,48.7035714 187.448661,56.6926623 187.448661,68.369026 C187.448661,79.9191883 195.922713,88.0344805 205.745159,88.0344805 C215.567605,88.0344805 224.041657,79.9191883 224.041657,68.369026 L224.041657,68.369026 Z"></path><path d="M306.04702,37.943539 L306.04702,96.1442857 C306.04702,120.111558 291.927254,129.944286 275.231289,129.944286 C259.516472,129.944286 250.061272,119.376299 246.498443,110.772662 L258.897088,105.609383 C261.106042,110.893377 266.51058,117.159545 275.225808,117.159545 C285.908814,117.159545 292.535676,110.52026 292.535676,98.1086364 L292.535676,93.4391883 L292.047842,93.4391883 C288.85774,97.3733766 282.71323,100.813734 274.97915,100.813734 C258.771019,100.813734 243.916762,86.6791883 243.916762,68.4897403 C243.916762,50.1740909 258.771019,35.9188312 274.97915,35.9188312 C282.71323,35.9188312 288.852259,39.3591883 292.047842,43.1726623 L292.535676,43.1726623 L292.535676,37.943539 L306.04702,37.943539 L306.04702,37.943539 Z M293.522306,68.4897403 C293.522306,57.0602922 285.908814,48.7035714 276.212437,48.7035714 C266.389992,48.7035714 258.162597,57.0602922 258.162597,68.4897403 C258.162597,79.798474 266.389992,88.0344805 276.212437,88.0344805 C285.908814,88.0344805 293.522306,79.798474 293.522306,68.4897403 L293.522306,68.4897403 Z"></path><path d="M329.961825,3.54545455 L329.961825,98.9207143 L315.721472,98.9207143 L315.721472,3.54545455 L329.961825,3.54545455 L329.961825,3.54545455 Z"></path><path d="M383.755064,79.0577273 L394.805315,86.4322727 C391.242486,91.7162662 382.647846,100.813734 367.793589,100.813734 C349.376503,100.813734 336.002191,86.558474 336.002191,68.369026 C336.002191,49.0712013 349.497091,35.9188312 366.198538,35.9188312 C383.020573,35.9188312 391.247967,49.3181169 393.944755,56.566461 L395.419218,60.2537338 L352.078772,78.1962662 C355.394944,84.7093506 360.552824,88.0289935 367.793589,88.0289935 C375.039836,88.0289935 380.071647,84.4624351 383.755064,79.0577273 L383.755064,79.0577273 Z M349.743749,67.3813636 L378.717771,55.3373701 C377.12272,51.2824675 372.332085,48.4566558 366.686372,48.4566558 C359.445607,48.4511688 349.376503,54.843539 349.743749,67.3813636 L349.743749,67.3813636 Z"></path></symbol><symbol id="h-color-cloud-logo" viewbox="0 0 181 28"><path d="M21.85 7.41h1l2.85-2.85.14-1.21A12.81 12.81 0 0 0 5 9.6a1.55 1.55 0 0 1 1-.06l5.7-.94s.29-.48.44-.45a7.11 7.11 0 0 1 9.73-.74z" fill="#ea4335"></path><path d="M29.76 9.6a12.84 12.84 0 0 0-3.87-6.24l-4 4A7.11 7.11 0 0 1 24.5 13v.71a3.56 3.56 0 1 1 0 7.12h-7.12l-.71.72v4.27l.71.71h7.12A9.26 9.26 0 0 0 29.76 9.6z" fill="#4285f4"></path><path d="M10.25 26.49h7.12v-5.7h-7.12a3.54 3.54 0 0 1-1.47-.32l-1 .31-2.87 2.85-.25 1a9.21 9.21 0 0 0 5.59 1.86z" fill="#34a853"></path><path d="M10.25 8a9.26 9.26 0 0 0-5.59 16.6l4.13-4.13a3.56 3.56 0 1 1 4.71-4.71l4.13-4.13A9.25 9.25 0 0 0 10.25 8z" fill="#fbbc05"></path><path d="M52.79 22.51a9.11 9.11 0 0 1-6.6-2.71 8.8 8.8 0 0 1-2.77-6.52 8.81 8.81 0 0 1 2.77-6.52A9.11 9.11 0 0 1 52.79 4a8.84 8.84 0 0 1 6.33 2.55l-1.78 1.81a6.41 6.41 0 0 0-4.55-1.8 6.34 6.34 0 0 0-4.7 2 6.53 6.53 0 0 0-1.93 4.75A6.53 6.53 0 0 0 48.09 18a6.71 6.71 0 0 0 9.36.11A5.32 5.32 0 0 0 58.82 15h-6v-2.56h8.49a8.12 8.12 0 0 1 .1 1.56 8 8 0 0 1-2.19 5.9 8.51 8.51 0 0 1-6.43 2.61zm19.74-1.7a6.12 6.12 0 0 1-8.47 0 5.7 5.7 0 0 1-1.73-4.25 5.71 5.71 0 0 1 1.73-4.25 6.13 6.13 0 0 1 8.47 0 5.71 5.71 0 0 1 1.73 4.25 5.7 5.7 0 0 1-1.74 4.25zm-6.6-1.67a3.24 3.24 0 0 0 4.73 0 3.56 3.56 0 0 0 1-2.58 3.57 3.57 0 0 0-1-2.59 3.29 3.29 0 0 0-4.75 0 3.57 3.57 0 0 0-1 2.59 3.56 3.56 0 0 0 1.01 2.58zm19.62 1.67a6.12 6.12 0 0 1-8.47 0 5.7 5.7 0 0 1-1.73-4.25 5.71 5.71 0 0 1 1.73-4.25 6.12 6.12 0 0 1 8.47 0 5.71 5.71 0 0 1 1.73 4.25 5.7 5.7 0 0 1-1.73 4.25zm-6.6-1.67a3.24 3.24 0 0 0 4.73 0 3.56 3.56 0 0 0 1-2.58 3.57 3.57 0 0 0-1-2.59 3.29 3.29 0 0 0-4.75 0 3.57 3.57 0 0 0-1 2.59 3.56 3.56 0 0 0 1.01 2.58zm15.16 8.71a5.24 5.24 0 0 1-3.33-1.06 6.13 6.13 0 0 1-1.94-2.46l2.28-.95a3.84 3.84 0 0 0 1.13 1.49 2.85 2.85 0 0 0 1.87.63 3 3 0 0 0 2.33-.9 3.65 3.65 0 0 0 .83-2.6v-.86h-.09a3.81 3.81 0 0 1-3.13 1.35 5.43 5.43 0 0 1-4-1.74 5.75 5.75 0 0 1-1.71-4.19 5.81 5.81 0 0 1 1.71-4.22 5.42 5.42 0 0 1 4-1.75 4.3 4.3 0 0 1 1.84.41 3.7 3.7 0 0 1 1.3.95h.09V11h2.48v10.65a6.21 6.21 0 0 1-1.59 4.65 5.6 5.6 0 0 1-4.07 1.55zm.18-7.68a2.91 2.91 0 0 0 2.26-1 3.7 3.7 0 0 0 .91-2.56 3.78 3.78 0 0 0-.91-2.61 2.9 2.9 0 0 0-2.26-1 3.09 3.09 0 0 0-2.34 1 3.65 3.65 0 0 0-1 2.59 3.58 3.58 0 0 0 1 2.56 3.1 3.1 0 0 0 2.34 1.02zm9.89-15.5v17.48h-2.61V4.67zm7.16 17.84a5.68 5.68 0 0 1-4.21-1.71 5.79 5.79 0 0 1-1.69-4.24 5.86 5.86 0 0 1 1.63-4.28 5.36 5.36 0 0 1 4-1.67 5.05 5.05 0 0 1 2 .39 4.71 4.71 0 0 1 1.53 1 7 7 0 0 1 1 1.21 7.15 7.15 0 0 1 .59 1.17l.27.68-8 3.29a3 3 0 0 0 2.88 1.8 3.41 3.41 0 0 0 2.93-1.65l2 1.35a6.59 6.59 0 0 1-1.92 1.82 5.44 5.44 0 0 1-3.01.84zM108 16.38l5.32-2.21a1.84 1.84 0 0 0-.83-.91 2.71 2.71 0 0 0-1.37-.35 3.09 3.09 0 0 0-2.15.95 3.17 3.17 0 0 0-.97 2.52zM130.13 22.51a8.24 8.24 0 0 1-8.38-8.43 8.24 8.24 0 0 1 8.38-8.43 7.46 7.46 0 0 1 5.93 2.64l-1.44 1.4a5.44 5.44 0 0 0-4.48-2.05 6.11 6.11 0 0 0-4.45 1.78 6.24 6.24 0 0 0-1.81 4.66 6.24 6.24 0 0 0 1.81 4.66 6.11 6.11 0 0 0 4.45 1.78 6.36 6.36 0 0 0 5-2.34l1.44 1.44a7.86 7.86 0 0 1-2.77 2.11 8.48 8.48 0 0 1-3.68.78zM140.45 22.15h-2.07V6h2.07zM143.83 12.43a5.79 5.79 0 0 1 8.16 0 5.85 5.85 0 0 1 1.6 4.2 5.85 5.85 0 0 1-1.6 4.2 5.79 5.79 0 0 1-8.16 0 5.85 5.85 0 0 1-1.6-4.2 5.85 5.85 0 0 1 1.6-4.2zm1.54 7.1a3.49 3.49 0 0 0 5.07 0 4 4 0 0 0 1.07-2.9 4 4 0 0 0-1.07-2.9 3.49 3.49 0 0 0-5.07 0 4 4 0 0 0-1.07 2.9 4 4 0 0 0 1.08 2.89zM165.06 22.15h-2v-1.53H163a3.85 3.85 0 0 1-1.46 1.38 4.08 4.08 0 0 1-2.05.55 3.89 3.89 0 0 1-3.14-1.26 5 5 0 0 1-1.07-3.38v-6.8h2.07v6.42q0 3.09 2.73 3.09a2.54 2.54 0 0 0 2.1-1 3.77 3.77 0 0 0 .81-2.39v-6.12h2.07zM172.09 22.51a4.86 4.86 0 0 1-3.7-1.69 6 6 0 0 1-1.55-4.19 6 6 0 0 1 1.55-4.19 4.86 4.86 0 0 1 3.7-1.69 4.69 4.69 0 0 1 2.26.54 3.83 3.83 0 0 1 1.5 1.35h.09l-.09-1.53V6h2.07v16.15h-2v-1.53h-.09a3.83 3.83 0 0 1-1.5 1.35 4.69 4.69 0 0 1-2.24.54zm.34-1.89a3.3 3.3 0 0 0 2.49-1.08 4.05 4.05 0 0 0 1-2.91 4.05 4.05 0 0 0-1-2.91 3.38 3.38 0 0 0-5 0 4 4 0 0 0-1 2.9 4 4 0 0 0 1 2.9 3.3 3.3 0 0 0 2.51 1.1z" fill="#5f6368"></path></symbol><symbol height="24" id="h-burger" viewbox="0 0 24 24" width="24"><path d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z"></path></symbol><symbol id="mi-rss-feed" viewbox="0 0 24 24"><path d="M0 0h24v24H0z" fill="none"></path><circle cx="6.18" cy="17.82" r="2.18"></circle><path d="M4 4.44v2.83c7.03 0 12.73 5.7 12.73 12.73h2.83c0-8.59-6.97-15.56-15.56-15.56zm0 5.66v2.83c3.9 0 7.07 3.17 7.07 7.07h2.83c0-5.47-4.43-9.9-9.9-9.9z"></path></symbol><symbol id="mi-more-vert" height="24" viewbox="0 0 24 24" width="24"><path d="M0 0h24v24H0z" fill="none"></path><path d="M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"></path></symbol></svg><script nonce="dnjOyD20sY" type="text/javascript" src="/web/20210121173734js_/https://cloud.google.com/blog/static/inline.c885d8d9eb18bf9d1507.bundle.js"></script><script nonce="dnjOyD20sY" type="text/javascript" src="/web/20210121173734js_/https://cloud.google.com/blog/static/polyfills.d3ef375ee274a261a86f.bundle.js"></script><script nonce="dnjOyD20sY" type="text/javascript" src="/web/20210121173734js_/https://cloud.google.com/blog/static/main.a0f792ffc6ca80b2594b.bundle.js"></script><script id="cloudblog-state" type="application/json">{&q;G.https://gweb-cloudblog-publish.appspot.com/api/w_v2/pagesByUrl/home/topics/developers-practitioners/implementing-leader-election-google-cloud-storage/&q;:{&q;body&q;:{&q;id&q;:42740,&q;meta&q;:{&q;type&q;:&q;blog.ArticlePage&q;,&q;detail_url&q;:&q;/api/w_v2/pagesByUrl/42740&q;,&q;html_url&q;:&q;https://gweb-cloudblog-publish.appspot.com/topics/developers-practitioners/implementing-leader-election-google-cloud-storage/&q;,&q;slug&q;:&q;implementing-leader-election-google-cloud-storage&q;,&q;show_in_menus&q;:false,&q;seo_title&q;:&q;Implementing leader election on Google Cloud Storage&q;,&q;search_description&q;:&q;&q;,&q;first_published_at&q;:&q;2021-01-13T20:12:00.985303Z&q;,&q;parent&q;:{&q;id&q;:41594,&q;meta&q;:{&q;type&q;:&q;blog.TopicLandingPage&q;,&q;detail_url&q;:&q;/api/w_v2/pagesByUrl/41594&q;,&q;html_url&q;:&q;https://gweb-cloudblog-publish.appspot.com/home/topics/developers-practitioners/&q;},&q;title&q;:&q;Developers &a; Practitioners&q;}},&q;title&q;:&q;Implementing leader election on Google Cloud Storage&q;,&q;published_at&q;:&q;2021-01-13T20:00:00Z&q;,&q;last_published_at&q;:&q;2021-01-15T04:07:53.724527Z&q;,&q;authors&q;:[{&q;display_name&q;:&q;Ahmet Alp Balkan&q;,&q;display_role_list&q;:&q;Senior Developer Advocate&q;}],&q;image&q;:{&q;sources&q;:[{&q;url&q;:&q;https://storage.googleapis.com/gweb-cloudblog-publish/images/GCP_Storage_and_Data_Transfer.max-2800x280.max-1100x1100.jpg&q;,&q;media&q;:&q;(max-resolution: 1.5dppx)&q;,&q;srcset&q;:&q;https://storage.googleapis.com/gweb-cloudblog-publish/images/GCP_Storage_and_Data_Transfer.max-2800x280.max-1100x1100.jpg 1060w&q;,&q;width&q;:1060,&q;sizes&q;:&q; 1060px&q;},{&q;url&q;:&q;https://storage.googleapis.com/gweb-cloudblog-publish/images/GCP_Storage_and_Data_Transfer.max-2800x280.max-2200x2200.jpg&q;,&q;media&q;:&q;(min-resolution: 1.5dppx)&q;,&q;srcset&q;:&q;https://storage.googleapis.com/gweb-cloudblog-publish/images/GCP_Storage_and_Data_Transfer.max-2800x280.max-2200x2200.jpg 2120w&q;,&q;width&q;:2120,&q;sizes&q;:&q; 2120px&q;}],&q;alt&q;:&q;#storage&q;,&q;sizes&q;:&q; 1060px, 2120px&q;,&q;srcset&q;:&q;https://storage.googleapis.com/gweb-cloudblog-publish/images/GCP_Storage_and_Data_Transfer.max-2800x280.max-1100x1100.jpg 1060w, https://storage.googleapis.com/gweb-cloudblog-publish/images/GCP_Storage_and_Data_Transfer.max-2800x280.max-2200x2200.jpg 2120w&q;,&q;src&q;:&q;https://storage.googleapis.com/gweb-cloudblog-publish/images/GCP_Storage_and_Data_Transfer.max-2800x280.max-2200x2200.jpg&q;},&q;video&q;:null,&q;summary&q;:&q;Controlling coordination among distributed systems can be complex. This article showcases how to build your own leader election system using only Google Cloud Storage.&q;,&q;body&q;:[{&q;type&q;:&q;paragraph&q;,&q;id&q;:&q;81b745d4-2148-4039-afb5-117935bfdcad&q;,&q;value&q;:&q;&l;p&g;Leader election is a commonly applied pattern for implementing distributed systems. For example, replicated relational databases such as MySQL, or distributed key-value stores such as Apache Zookeeper, choose a leader (sometimes referred to as master) among the replicas. All write operations go through the leader, so only a single node is writing to the system at any time. This is done to ensure no writes are lost and the database is not corrupted.&l;/p&g;&l;p&g;It can be challenging to choose a leader among the nodes of a distributed system due to the nature of networked systems and time synchronization. In this article, we’ll discuss why you need leader election (or more generally, \&q;distributed locks\&q;), explain why they are difficult to implement, and provide an example implementation that uses a strongly consistent storage system, in this case Google Cloud Storage.&l;/p&g;&l;h3&g;Why do we need distributed locks?&l;/h3&g;&l;p&g;Imagine a multithreaded program where each thread is interacting with a shared variable or data structure. To prevent data loss or corrupting the data structure, multiple threads should block and wait on each other while modifying the state. We ensure this with mutexes in a single-process application. Distributed locks are no different in this regard than mutexes in single-process systems.&l;/p&g;&l;p&g;A distributed system working on shared data still needs a locking mechanism to safely take turns while modifying shared data. However, we no longer have the notion of mutexes while working in a distributed environment. This is where distributed locks and leader elections come into the picture.&l;/p&g;&l;h3&g;Use cases for leader election&l;/h3&g;&l;p&g;Typically leader election is used to ensure exclusive access by a single node to shared data, or to ensure a single node coordinates the work in a system.&l;/p&g;&l;p&g;For replicated database systems such as MySQL, Apache Zookeeper, or Cassandra, we need to make sure only one \&q;leader\&q; exists at any given time. All writes go through this leader to ensure writes happen in one place. Meanwhile, the reads can be served from the follower nodes.&l;/p&g;&l;p&g;Here’s another example. You have three nodes for an application that consumes messages from a message queue; however, only one of these nodes is to process messages at any time. By choosing a leader, you can appoint a node to fulfill that responsibility. If the leader becomes unavailable, other nodes can take over and continue the work. In this case, a leader election is needed to coordinate the work.&l;/p&g;&l;p&g;Many distributed systems take advantage of leader election or distributed lock patterns. However, choosing a leader is a nontrivial problem.&l;/p&g;&l;h3&g;Why is distributed locking difficult?&l;/h3&g;&l;p&g;Distributed systems are like threads of a single-process program, except they are on different machines and they talk to each other over the network (which can be unreliable). As a result, they cannot rely on mutexes or similar locking mechanisms that use atomic CPU instructions and shared memory to implement the lock.&l;/p&g;&l;p&g;The distributed locking problem requires the participants to agree on who is holding the lock. We also expect a leader to be elected while some nodes in the system are unavailable. This may sound simple, but implementing such a system correctly can be quite difficult, in part due to the many edge cases. This is where distributed consensus algorithms come into the picture.&l;/p&g;&l;p&g;To implement distributed locking, you need a &l;a href=\&q;https://en.wikipedia.org/wiki/Strong_consistency\&q; target=\&q;_blank\&q;&g;strongly consistent&l;/a&g; system to decide which node holds the lock. Because this must be an atomic operation, it requires &l;a href=\&q;https://en.wikipedia.org/wiki/Consensus_(computer_science)\&q; target=\&q;_blank\&q;&g;consensus protocols&l;/a&g; such as &l;a href=\&q;https://en.wikipedia.org/wiki/Paxos_(computer_science)\&q; target=\&q;_blank\&q;&g;Paxos&l;/a&g;, &l;a href=\&q;https://en.wikipedia.org/wiki/Raft_(algorithm)\&q; target=\&q;_blank\&q;&g;Raft&l;/a&g;, or the &l;a href=\&q;https://en.wikipedia.org/wiki/Two-phase_commit_protocol\&q; target=\&q;_blank\&q;&g;two-phase commit&l;/a&g; protocol. However, implementing these algorithms correctly is quite difficult, as the implementations must be extensively tested and formally proved. Furthermore, the theoretical properties of these algorithms often fail to withstand real-world conditions, which has led to &l;a href=\&q;https://www.hashicorp.com/blog/making-gossip-more-robust-with-lifeguard\&q; target=\&q;_blank\&q;&g;more advanced research&l;/a&g; on the topic.&l;/p&g;&l;p&g;At Google, we achieve distributed locking using a service called &l;a href=\&q;https://static.googleusercontent.com/media/research.google.com/en//archive/chubby-osdi06.pdf\&q; target=\&q;_blank\&q;&g;Chubby&l;/a&g;. Across our stack, Chubby helps many teams at Google make use of distributed consensus without having to worry about implementing a locking service from scratch (and doing so correctly).&l;/p&g;&l;h3&g;Cheating a bit: Leveraging other storage primitives&l;/h3&g;&l;p&g;Instead of implementing your own consensus protocol, you can easily take advantage of a &l;a href=\&q;https://en.wikipedia.org/wiki/Strong_consistency\&q; target=\&q;_blank\&q;&g;strongly consistent&l;/a&g; storage system that provides the same guarantees through a single key or record. By delegating the responsibility for atomicity to an external storage system, we no longer need the participating nodes to form a quorum and vote on a new leader.&l;/p&g;&l;p&g;For example, a distributed database record (or file) can be used to name the current leader, and when the leader has renewed its leadership lock. If there&s;s no leader in the record, or the leader has not renewed its lock, other nodes can run for election by attempting to write their name to the record. First one to come will win, because this record or file allows atomic writes.&l;/p&g;&l;p&g;Such atomic writes on files or database records are typically implemented using &l;a href=\&q;https://en.wikipedia.org/wiki/Optimistic_concurrency_control\&q; target=\&q;_blank\&q;&g;optimistic concurrency control&l;/a&g;, which lets you atomically update the record by providing its version number (if the record has changed since then, the write will be rejected). Similarly, the writes become immediately available to any readers. Using these two primitives (atomic updates and consistent reads), we can implement a leader election on top of any storage system.&l;/p&g;&l;p&g;In fact, many Google Cloud storage products, such as &l;a href=\&q;https://cloud.google.com/storage\&q;&g;Cloud Storage&l;/a&g; and &l;a href=\&q;https://cloud.google.com/spanner\&q;&g;Cloud Spanner&l;/a&g;, can be used to implement such a distributed lock. Similarly, open source storage systems like &l;a href=\&q;https://zookeeper.apache.org/\&q; target=\&q;_blank\&q;&g;Zookeeper&l;/a&g; (Paxos), &l;a href=\&q;https://etcd.io/\&q; target=\&q;_blank\&q;&g;etcd&l;/a&g; (Raft), &l;a href=\&q;https://www.consul.io/\&q; target=\&q;_blank\&q;&g;Consul&l;/a&g; (Raft), or even properly configured RDBMS systems like MySQL or PostgreSQL can provide the needed primitives.&l;/p&g;&l;h3&g;Example: Leader election with Cloud Storage&l;/h3&g;&l;p&g;We can implement leader election using a single object (file) on &l;a href=\&q;https://cloud.google.com/storage\&q;&g;Cloud Storage&l;/a&g; that contains the leader data, and require each node to read that file, or run for election based on the file. In this setup, the leader must renew its leadership by updating this file with its heartbeat.&l;/p&g;&l;p&g;My colleague &l;a href=\&q;https://twitter.com/sethvargo\&q; target=\&q;_blank\&q;&g;Seth Vargo&l;/a&g; published such a leader election implementation – written in Go and using Cloud Storage – &l;a href=\&q;https://godoc.org/github.com/hashicorp/vault/physical/gcs\&q; target=\&q;_blank\&q;&g;as a package&l;/a&g; within the HashiCorp Vault project. (Vault also has a leader election on top of &l;a href=\&q;https://godoc.org/github.com/hashicorp/vault/physical\&q; target=\&q;_blank\&q;&g;other storage backends&l;/a&g;).&l;/p&g;&l;p&g;To implement leader election among distributed nodes of our application in Go, we can write a program that makes use of this package in just 50 lines of code:&l;/p&g;&q;},{&q;type&q;:&q;code&q;,&q;id&q;:&q;b5d8e5f3-1733-4fb7-9891-4d6f348d50b9&q;,&q;value&q;:{&q;code_block&q;:[{&q;code&q;:&q;import (\r\n\t\&q;context\&q;\r\n\r\n\tlog \&q;github.com/hashicorp/go-hclog\&q;\r\n\t\&q;github.com/hashicorp/vault/physical/gcs\&q;\r\n\t\&q;github.com/hashicorp/vault/sdk/physical\&q;\r\n)\r\n\r\nconst (\r\n\tbucketName = \&q;YOUR_GCS_BUCKET_NAME\&q; \r\n \tleadershipFile = \&q;leader.txt\&q;\r\n)\r\n\r\nfunc main() {\r\n\tlogger := log.Default()\r\n\tb, err := gcs.NewBackend(map[string]string{\r\n\t\t\&q;bucket\&q;: bucketName,\r\n\t\t\&q;ha_enabled\&q;: \&q;true\&q;,\r\n\t}, logger)\r\n\tif err != nil {\r\n\t\tpanic(err)\r\n\t}\r\n\thaBackend, ok := b.(physical.HABackend)\r\n\tif !ok {\r\n\t\tpanic(\&q;type casting failed\&q;)\r\n\t}\r\n\r\n\tctx, cancel := context.WithCancel(context.Background())\r\n\tdefer cancel()\r\n\r\n\tfor {\r\n\t\tlock, err := haBackend.LockWith(leadershipFile, \&q;ignored\&q;)\r\n\t\tif err != nil {\r\n\t\t\tpanic(err)\r\n\t\t}\r\n\r\n\t\tlogger.Info(\&q;running for LEADERSHIP\&q;)\r\n\t\tdoneCh, err := lock.Lock(ctx.Done())\r\n\t\tif err != nil {\r\n\t\t\tpanic(err)\r\n\t\t}\r\n\t\tlogger.Info(\&q;elected as LEADER\&q;)\r\n\t\t&l;-doneCh\r\n\t\tlogger.Info(\&q;lost LEADERSHIP\&q;)\r\n\t\tif err := lock.Unlock(); err != nil {\r\n\t\t\tpanic(err)\r\n\t\t}\r\n\t}\r\n}&q;,&q;language&q;:&q;&q;}]}},{&q;type&q;:&q;paragraph&q;,&q;id&q;:&q;79e025ff-6fe9-4fb6-bac2-1e362d760a81&q;,&q;value&q;:&q;&l;p&g;This example program creates a lock using a file in Cloud Storage, and continually runs for election.&l;/p&g;&l;p&g;In this example, the &l;code&g;Lock()&l;/code&g; call blocks until the calling program becomes a leader (or the context is cancelled). This call may block indefinitely since there might be another leader in the system.&l;/p&g;&l;p&g;If a process is elected as the leader, the library periodically sends heartbeats keeping the lock active. The leader then must finish work and give up the lock by calling the &l;code&g;Unlock()&l;/code&g; method. If the leader loses the leadership, the &l;code&g;doneCh&l;/code&g; channel will receive a message and the process can tell that it has lost the lock, as there might be a new leader.&l;/p&g;&l;p&g;Fortunately for us, the library we&s;re using implements a heartbeat mechanism to ensure the elected leader remains available and active. If the elected leader fails abruptly without giving up the lock, after the TTL (time-to-live) on the lock expires, the remaining nodes then select a new leader, ensuring the overall system&s;s availability.&l;/p&g;&l;p&g;Fortunately, this library implements the mentioned details around sending so-called periodic heartbeats, or how frequently the followers should check if the leader has died and if they should run for election. Similarly, the library employs various optimizations via storing the leadership data in &l;a href=\&q;https://cloud.google.com/storage/docs/metadata\&q;&g;object metadata&l;/a&g; instead of object contents, which is costlier to read frequently.&l;/p&g;&l;p&g;If you need to ensure coordination between your nodes, using leader election in your distributed systems can help you safely achieve there&s;s at most one node that has this responsibility. Using Cloud Storage or other strongly consistent systems, you can implement your own leader election. However, make sure you are aware of all the corner cases before implementing a new such library.&l;/p&g;&l;p&g;Further reading:&l;/p&g;&l;a href=\&q;https://kubernetes.io/blog/2016/01/simple-leader-election-with-kubernetes/\&q; target=\&q;_blank\&q;&g;&l;/a&g;&l;ul&g;&l;a href=\&q;https://kubernetes.io/blog/2016/01/simple-leader-election-with-kubernetes/\&q; target=\&q;_blank\&q;&g;&l;/a&g;&l;a href=\&q;https://kubernetes.io/blog/2016/01/simple-leader-election-with-kubernetes/\&q; target=\&q;_blank\&q;&g;&l;/a&g;&l;li&g;&l;a href=\&q;https://kubernetes.io/blog/2016/01/simple-leader-election-with-kubernetes/\&q; target=\&q;_blank\&q;&g;&l;/a&g;&l;a href=\&q;https://kubernetes.io/blog/2016/01/simple-leader-election-with-kubernetes/\&q; target=\&q;_blank\&q;&g;&l;/a&g;&l;a href=\&q;https://kubernetes.io/blog/2016/01/simple-leader-election-with-kubernetes/\&q; target=\&q;_blank\&q;&g;Implementing leader election using Kubernetes API&l;/a&g;&l;/li&g;&l;li&g;&l;a href=\&q;https://aws.amazon.com/builders-library/leader-election-in-distributed-systems/\&q; target=\&q;_blank\&q;&g;Leader election in distributed systems - AWS Builders Library&l;/a&g;&l;/li&g;&l;li&g;&l;a href=\&q;https://docs.microsoft.com/en-us/azure/architecture/patterns/leader-election\&q; target=\&q;_blank\&q;&g;Leader election - Azure Design Patterns Library&l;/a&g;&l;/li&g;&l;li&g;&l;a href=\&q;https://kubernetespodcast.com/episode/123-leader-election/\&q; target=\&q;_blank\&q;&g;Kubernetes Leader Election on Kubernetes Podcast&l;/a&g;&l;br/&g;&l;/li&g;&l;/ul&g;&l;p&g;Thanks to &l;a href=\&q;https://twitter.com/sethvargo\&q; target=\&q;_blank\&q;&g;Seth Vargo&l;/a&g; for reading drafts of this article. You can follow me &l;a href=\&q;https://twitter.com/ahmetb\&q; target=\&q;_blank\&q;&g;on Twitter&l;/a&g;.&l;/p&g;&q;}],&q;recommended_for_you&q;:[],&q;full_amp_url&q;:&q;https://cloudblog.withgoogle.com/topics/developers-practitioners/implementing-leader-election-google-cloud-storage/amp/&q;,&q;primary_tag&q;:{&q;icon&q;:null,&q;type&q;:&q;Topics&q;,&q;display_name&q;:&q;Developers &a; Practitioners&q;,&q;active&q;:true,&q;landing_page_url&q;:&q;https://gweb-cloudblog-publish.appspot.com/topics/developers-practitioners/&q;,&q;analytics_type&q;:&q;topic&q;,&q;slug&q;:&q;developers&q;},&q;cta&q;:null,&q;secondary_tags&q;:[{&q;icon&q;:{&q;sources&q;:[{&q;url&q;:&q;https://storage.googleapis.com/gweb-cloudblog-publish/images/logo_cloud_color_2x_web_96dp.max-200x200.png&q;,&q;media&q;:&q;(max-resolution: 1.5dppx)&q;,&q;srcset&q;:&q;https://storage.googleapis.com/gweb-cloudblog-publish/images/logo_cloud_color_2x_web_96dp.max-200x200.png 120w&q;,&q;width&q;:120,&q;sizes&q;:&q; 120px&q;},{&q;url&q;:&q;https://storage.googleapis.com/gweb-cloudblog-publish/images/logo_cloud_color_2x_web_96dp.max-200x200.png&q;,&q;media&q;:&q;(min-resolution: 1.5dppx)&q;,&q;srcset&q;:&q;https://storage.googleapis.com/gweb-cloudblog-publish/images/logo_cloud_color_2x_web_96dp.max-200x200.png 192w&q;,&q;width&q;:192,&q;sizes&q;:&q; 192px&q;}],&q;alt&q;:&q;Google Cloud Platform&q;,&q;sizes&q;:&q; 120px, 192px&q;,&q;srcset&q;:&q;https://storage.googleapis.com/gweb-cloudblog-publish/images/logo_cloud_color_2x_web_96dp.max-200x200.png 120w, https://storage.googleapis.com/gweb-cloudblog-publish/images/logo_cloud_color_2x_web_96dp.max-200x200.png 192w&q;,&q;src&q;:&q;https://storage.googleapis.com/gweb-cloudblog-publish/images/logo_cloud_color_2x_web_96dp.max-200x200.png&q;},&q;type&q;:&q;Products&q;,&q;display_name&q;:&q;Google Cloud Platform&q;,&q;active&q;:true,&q;landing_page_url&q;:&q;https://gweb-cloudblog-publish.appspot.com/products/gcp/&q;,&q;analytics_type&q;:&q;product&q;,&q;slug&q;:&q;gcp&q;},{&q;icon&q;:{&q;sources&q;:[{&q;url&q;:&q;https://storage.googleapis.com/gweb-cloudblog-publish/images/Copy_of_CloudStorage_128px_Retina.max-200x200.png&q;,&q;media&q;:&q;(max-resolution: 1.5dppx)&q;,&q;srcset&q;:&q;https://storage.googleapis.com/gweb-cloudblog-publish/images/Copy_of_CloudStorage_128px_Retina.max-200x200.png 120w&q;,&q;width&q;:120,&q;sizes&q;:&q; 120px&q;},{&q;url&q;:&q;https://storage.googleapis.com/gweb-cloudblog-publish/images/Copy_of_CloudStorage_128px_Retina.max-300x300.png&q;,&q;media&q;:&q;(min-resolution: 1.5dppx)&q;,&q;srcset&q;:&q;https://storage.googleapis.com/gweb-cloudblog-publish/images/Copy_of_CloudStorage_128px_Retina.max-300x300.png 240w&q;,&q;width&q;:240,&q;sizes&q;:&q; 240px&q;}],&q;alt&q;:&q;Storage &a; Databases&q;,&q;sizes&q;:&q; 120px, 240px&q;,&q;srcset&q;:&q;https://storage.googleapis.com/gweb-cloudblog-publish/images/Copy_of_CloudStorage_128px_Retina.max-200x200.png 120w, https://storage.googleapis.com/gweb-cloudblog-publish/images/Copy_of_CloudStorage_128px_Retina.max-300x300.png 240w&q;,&q;src&q;:&q;https://storage.googleapis.com/gweb-cloudblog-publish/images/Copy_of_CloudStorage_128px_Retina.max-300x300.png&q;},&q;type&q;:&q;Products&q;,&q;display_name&q;:&q;Storage &a; Data Transfer&q;,&q;active&q;:true,&q;landing_page_url&q;:&q;https://gweb-cloudblog-publish.appspot.com/products/storage-data-transfer/&q;,&q;analytics_type&q;:&q;product&q;,&q;slug&q;:&q;storage-data-transfer&q;}],&q;related_articles&q;:[{&q;pk&q;:43016,&q;url&q;:&q;https://gweb-cloudblog-publish.appspot.com/topics/developers-practitioners/hands-anthos-bare-metal/&q;,&q;title&q;:&q;Hands-on with Anthos on bare metal&q;,&q;summary&q;:&q;In this blog post I take you through my experience of deploying Anthos on Bare Metal in my home lab.&q;,&q;image&q;:{&q;sources&q;:[{&q;url&q;:&q;https://storage.googleapis.com/gweb-cloudblog-publish/images/anthos_bare_metal.max-100x100.jpg&q;,&q;media&q;:&q;(max-resolution: 1.5dppx)&q;,&q;srcset&q;:&q;https://storage.googleapis.com/gweb-cloudblog-publish/images/anthos_bare_metal.max-100x100.jpg 82w&q;,&q;width&q;:82,&q;sizes&q;:&q; 82px&q;},{&q;url&q;:&q;https://storage.googleapis.com/gweb-cloudblog-publish/images/anthos_bare_metal.max-200x200.jpg&q;,&q;media&q;:&q;(min-resolution: 1.5dppx)&q;,&q;srcset&q;:&q;https://storage.googleapis.com/gweb-cloudblog-publish/images/anthos_bare_metal.max-200x200.jpg 164w&q;,&q;width&q;:164,&q;sizes&q;:&q; 164px&q;}],&q;alt&q;:&q;Anthos on bare metal video&q;,&q;sizes&q;:&q; 82px, 164px&q;,&q;srcset&q;:&q;https://storage.googleapis.com/gweb-cloudblog-publish/images/anthos_bare_metal.max-100x100.jpg 82w, https://storage.googleapis.com/gweb-cloudblog-publish/images/anthos_bare_metal.max-200x200.jpg 164w&q;,&q;src&q;:&q;https://storage.googleapis.com/gweb-cloudblog-publish/images/anthos_bare_metal.max-200x200.jpg&q;},&q;primary_tag_name&q;:&q;Developers &a; Practitioners&q;},{&q;pk&q;:42990,&q;url&q;:&q;https://gweb-cloudblog-publish.appspot.com/topics/developers-practitioners/work-warp-speed-bigquery-ui/&q;,&q;title&q;:&q;Work at warp-speed in the BigQuery UI&q;,&q;summary&q;:&q;Data analysts can spend hours writing SQL each day to get the right insights. So it’s crucial that the tools in the Google Cloud Console make that job as easy and as fast as possible.&q;,&q;image&q;:{&q;sources&q;:[{&q;url&q;:&q;https://storage.googleapis.com/gweb-cloudblog-publish/images/BlogHeader_Data_Analytics1_1.max-100x100.jpg&q;,&q;media&q;:&q;(max-resolution: 1.5dppx)&q;,&q;srcset&q;:&q;https://storage.googleapis.com/gweb-cloudblog-publish/images/BlogHeader_Data_Analytics1_1.max-100x100.jpg 82w&q;,&q;width&q;:82,&q;sizes&q;:&q; 82px&q;},{&q;url&q;:&q;https://storage.googleapis.com/gweb-cloudblog-publish/images/BlogHeader_Data_Analytics1_1.max-200x200.jpg&q;,&q;media&q;:&q;(min-resolution: 1.5dppx)&q;,&q;srcset&q;:&q;https://storage.googleapis.com/gweb-cloudblog-publish/images/BlogHeader_Data_Analytics1_1.max-200x200.jpg 164w&q;,&q;width&q;:164,&q;sizes&q;:&q; 164px&q;}],&q;alt&q;:&q;Blog Header Data Analytics&q;,&q;sizes&q;:&q; 82px, 164px&q;,&q;srcset&q;:&q;https://storage.googleapis.com/gweb-cloudblog-publish/images/BlogHeader_Data_Analytics1_1.max-100x100.jpg 82w, https://storage.googleapis.com/gweb-cloudblog-publish/images/BlogHeader_Data_Analytics1_1.max-200x200.jpg 164w&q;,&q;src&q;:&q;https://storage.googleapis.com/gweb-cloudblog-publish/images/BlogHeader_Data_Analytics1_1.max-200x200.jpg&q;},&q;primary_tag_name&q;:&q;Developers &a; Practitioners&q;},{&q;pk&q;:42981,&q;url&q;:&q;https://gweb-cloudblog-publish.appspot.com/topics/developers-practitioners/eventarc-unified-eventing-experience-google-cloud/&q;,&q;title&q;:&q;Eventarc: A unified eventing experience in Google Cloud&q;,&q;summary&q;:&q;Eventarc provides a unified eventing experience in Google Cloud so you can send events to Cloud Run from more than 60 Google Cloud sources.&q;,&q;image&q;:{&q;sources&q;:[{&q;url&q;:&q;https://storage.googleapis.com/gweb-cloudblog-publish/images/Google_Blog_Serverless.max-100x100.jpg&q;,&q;media&q;:&q;(max-resolution: 1.5dppx)&q;,&q;srcset&q;:&q;https://storage.googleapis.com/gweb-cloudblog-publish/images/Google_Blog_Serverless.max-100x100.jpg 82w&q;,&q;width&q;:82,&q;sizes&q;:&q; 82px&q;},{&q;url&q;:&q;https://storage.googleapis.com/gweb-cloudblog-publish/images/Google_Blog_Serverless.max-200x200.jpg&q;,&q;media&q;:&q;(min-resolution: 1.5dppx)&q;,&q;srcset&q;:&q;https://storage.googleapis.com/gweb-cloudblog-publish/images/Google_Blog_Serverless.max-200x200.jpg 164w&q;,&q;width&q;:164,&q;sizes&q;:&q; 164px&q;}],&q;alt&q;:&q;#serverless&q;,&q;sizes&q;:&q; 82px, 164px&q;,&q;srcset&q;:&q;https://storage.googleapis.com/gweb-cloudblog-publish/images/Google_Blog_Serverless.max-100x100.jpg 82w, https://storage.googleapis.com/gweb-cloudblog-publish/images/Google_Blog_Serverless.max-200x200.jpg 164w&q;,&q;src&q;:&q;https://storage.googleapis.com/gweb-cloudblog-publish/images/Google_Blog_Serverless.max-200x200.jpg&q;},&q;primary_tag_name&q;:&q;Developers &a; Practitioners&q;},{&q;pk&q;:42854,&q;url&q;:&q;https://gweb-cloudblog-publish.appspot.com/topics/developers-practitioners/loading-complex-csv-files-bigquery-using-google-sheets/&q;,&q;title&q;:&q;Loading complex CSV files into BigQuery using Google Sheets&q;,&q;summary&q;:&q;To import complex CSV files into BigQuery, build an ELT pipeline using Google Sheets as an intermediary. This allows you to handle CSV files with new lines and other special characters in the columns.&q;,&q;image&q;:{&q;sources&q;:[{&q;url&q;:&q;https://storage.googleapis.com/gweb-cloudblog-publish/images/Citrix-BlogHeader-r1_gSJYlNx.max-100x100.png&q;,&q;media&q;:&q;(max-resolution: 1.5dppx)&q;,&q;srcset&q;:&q;https://storage.googleapis.com/gweb-cloudblog-publish/images/Citrix-BlogHeader-r1_gSJYlNx.max-100x100.png 82w&q;,&q;width&q;:82,&q;sizes&q;:&q; 82px&q;},{&q;url&q;:&q;https://storage.googleapis.com/gweb-cloudblog-publish/images/Citrix-BlogHeader-r1_gSJYlNx.max-200x200.png&q;,&q;media&q;:&q;(min-resolution: 1.5dppx)&q;,&q;srcset&q;:&q;https://storage.googleapis.com/gweb-cloudblog-publish/images/Citrix-BlogHeader-r1_gSJYlNx.max-200x200.png 164w&q;,&q;width&q;:164,&q;sizes&q;:&q; 164px&q;}],&q;alt&q;:&q;Data Analytics&q;,&q;sizes&q;:&q; 82px, 164px&q;,&q;srcset&q;:&q;https://storage.googleapis.com/gweb-cloudblog-publish/images/Citrix-BlogHeader-r1_gSJYlNx.max-100x100.png 82w, https://storage.googleapis.com/gweb-cloudblog-publish/images/Citrix-BlogHeader-r1_gSJYlNx.max-200x200.png 164w&q;,&q;src&q;:&q;https://storage.googleapis.com/gweb-cloudblog-publish/images/Citrix-BlogHeader-r1_gSJYlNx.max-200x200.png&q;},&q;primary_tag_name&q;:&q;Developers &a; Practitioners&q;},{&q;pk&q;:42980,&q;url&q;:&q;https://gweb-cloudblog-publish.appspot.com/topics/developers-practitioners/lock-statistics-diagnose-performance-issues-in-cloud-spanner/&q;,&q;title&q;:&q;Lock Statistics: Diagnose performance issues in Cloud Spanner&q;,&q;summary&q;:&q;This post introduces a newly released introspection tool: Lock statistic, and guides our readers through a simple example of using it to diagnose transaction performance issues caused by lock conflict.&q;,&q;image&q;:null,&q;primary_tag_name&q;:&q;Developers &a; Practitioners&q;},{&q;pk&q;:42938,&q;url&q;:&q;https://gweb-cloudblog-publish.appspot.com/topics/developers-practitioners/magic-distributed-joins-cloud-spanner/&q;,&q;title&q;:&q;Under the hood: Distributed joins in Cloud Spanner&q;,&q;summary&q;:&q;How do you join two tables when both of them are divided into multiple splits managed by multiple different machines? In this blog entry, we&s;ll describe distributed joins using the Distributed Cross Apply (DCA) operator.&q;,&q;image&q;:null,&q;primary_tag_name&q;:&q;Developers &a; Practitioners&q;}],&q;show_byline&q;:true,&q;canonicalURL&q;:null,&q;seo_tag&q;:&q;&q;},&q;headers&q;:{&q;x-xss-protection&q;:[&q;1; mode=block&q;],&q;x-content-type-options&q;:[&q;nosniff&q;],&q;content-security-policy&q;:[&q;script-src &s;strict-dynamic&s; *.googleanalytics.com *.google-analytics.com ajax.googleapis.com https://www.youtube.com https://s.ytimg.com *.googletagmanager.com apis.google.com storage.googleapis.com &s;sha256-786mZQPkATV3kJd7q8ZuwoTH4U3/0WniBdyVOgZQpv4=&s; &s;sha256-Xyk5Ei/Yh7DuZgaxNfbPswkpmMKHk5Jy18vkxjfPMj0=&s; &s;sha256-VYh+xiSqo4QzOSUckJBCHDIBNNBdxwG2PIIevxRqeh4=&s; *.googleapis.com; style-src &s;self&s; &s;unsafe-inline&s; fonts.googleapis.com *.gstatic.com storage.googleapis.com; default-src ; frame-src &s;self&s; www.google.com *.youtube.com accounts.google.com apis.google.com plus.google.com *.doubleclick.net apis.google.com https://www.youtube.com; img-src * data: blob:; connect-src &s;self&s; plus.google.com www.google-analytics.com apis.google.com; object-src &s;none&s;; font-src &s;self&s; themes.googleusercontent.com *.gstatic.com https://fonts.gstatic.com storage.googleapis.com; base-uri &s;none&s;&q;],&q;strict-transport-security&q;:[&q;max-age=2592000; includeSubDomains&q;],&q;allow&q;:[&q;GET, HEAD, OPTIONS&q;],&q;x-frame-options&q;:[&q;SAMEORIGIN&q;],&q;content-type&q;:[&q;application/json&q;],&q;x-cloud-trace-context&q;:[&q;8a5105d7a34d3f46c675566d542bcf88&q;],&q;date&q;:[&q;Thu, 21 Jan 2021 17:11:29 GMT&q;],&q;server&q;:[&q;Google Frontend&q;],&q;content-length&q;:[&q;29424&q;]},&q;status&q;:200,&q;statusText&q;:&q;OK&q;,&q;url&q;:&q;https://gweb-cloudblog-publish.appspot.com/api/w_v2/pagesByUrl/home/topics/developers-practitioners/implementing-leader-election-google-cloud-storage/&q;}}</script></body></html><!-- FILE ARCHIVED ON 17:37:34 Jan 21, 2021 AND RETRIEVED FROM THE INTERNET ARCHIVE ON 19:53:22 Nov 26, 2024. JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE. ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C. SECTION 108(a)(3)). --> <!-- playback timings (ms): captures_list: 0.587 exclusion.robots: 0.032 exclusion.robots.policy: 0.021 esindex: 0.011 cdx.remote: 11.101 LoadShardBlock: 225.319 (3) PetaboxLoader3.datanode: 143.341 (4) PetaboxLoader3.resolve: 160.605 (2) load_resource: 112.048 -->