﻿

<!DOCTYPE html>
<!--[if IE 8]> <html class="ie ie8 lte10 lte9" lang="en"> <![endif]-->
<!--[if IE 9]> <html class="no-js ie ie9 lte10"> <![endif]-->
<!--[if gt IE 9]><!-->
<html lang="en">
<!--<![endif]-->

<head><script>var fbApplicationId = '598955546980526';</script><meta http-equiv="X-UA-Compatible" content="IE=EDGE" /><meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta id="SEODesc" name="description" /><meta id="SEOKeywords" name="keywords" /><title>
	Chicago Symphony Orchestra - 
</title><meta id="ogImage" property="og:image" /><meta id="ogTitle" property="og:title" content="Chicago Symphony Orchestra - " /><meta id="ogUrl" property="og:url" content="https://cso.org/Page-Not-Found/" /><meta id="ogDescription" property="og:description" /><meta id="twitterImage" name="twitter:image" /><meta id="twitterTitle" name="twitter:title" content="Chicago Symphony Orchestra - " /><meta id="twitterUrl" name="twitter:url" content="https://cso.org/Page-Not-Found/" /><meta id="twitterDescription" name="twitter:description" /><script src="/bundles/global?v=jLR3NqqPTW9qfmRQzMnzY44Xc_DlNmtG0QSJxmF-zMU1"></script>
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css" rel="stylesheet" />
<link href="/bundles/mainCss?v=99o0M3k6KkqiFFob98VqBy4CsQbx2JjFjoWXYnBYGiQ1" rel="stylesheet" />

    
    
<!-- Load in Bootstrap icons -->
<link href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" rel="stylesheet" />
<!-- Load Source Sans --> 
<link href="//fonts.googleapis.com/css?family=Source+Sans+Pro&amp;display=swap" rel="stylesheet" />
<!-- preload styles --> 
<style type="text/css">
body, p, div, a, body >* { 
font-family: Arial,Helvetica,sans-serif; 
background-color: #fff;
font-size: 1em;
color: #ccc;
}
.l-header:before {
 display: none !important;
 background-image: none !important;
}
@font-face { font-family: "Helvetica Neue eText Pro"; src: url("/assets/fonts/cso-fonts/de7da99e-0f77-4410-b512-b71c48f2fff5.eot"); src:url("/assets/fonts/cso-fonts/de7da99e-0f77-4410-b512-b71c48f2fff5.eot?#iefix") format("eot"), url("/assets/fonts/cso-fonts/c83a2632-2ed7-4931-8668-d9d2135bd9f5.woff") format("woff"), url("/assets/fonts/cso-fonts/104a9eb8-8293-4ea8-92ad-b14cfe0913ae.ttf") format("truetype");}
@font-face { font-family: "HelveticaNeueLTPro-Lt"; src: url("/assets/fonts/cso-fonts/39CDCD_4_0.eot"); src: url("/assets/fonts/cso-fonts/39CDCD_4_0.eot?#iefix") format("embedded-opentype"),url("/assets/fonts/cso-fonts/39CDCD_4_0.woff") format("woff"),url("/assets/fonts/cso-fonts/39CDCD_4_0.ttf") format("truetype");}
@font-face { font-family: "HelveticaNeueLTPro-LtIt"; src: url("/assets/fonts/cso-fonts/39CDCD_5_0.eot"); src: url("/assets/fonts/cso-fonts/39CDCD_5_0.eot?#iefix") format("embedded-opentype"),url("/assets/fonts/cso-fonts/39CDCD_5_0.woff") format("woff"),url("/assets/fonts/cso-fonts/39CDCD_5_0.ttf") format("truetype");}
@font-face { font-family: "HelveticaNeueLTPro-Roman"; src: url("/assets/fonts/cso-fonts/39CDCD_6_0.eot"); src: url("/assets/fonts/cso-fonts/39CDCD_6_0.eot?#iefix") format("embedded-opentype"),url("/assets/fonts/cso-fonts/39CDCD_6_0.woff") format("woff"),url("/assets/fonts/cso-fonts/39CDCD_6_0.ttf") format("truetype");}
@font-face { font-family: "HelveticaNeueLTPro-It"; src: url("/assets/fonts/cso-fonts/39CDCD_7_0.eot"); src: url("/assets/fonts/cso-fonts/39CDCD_7_0.eot?#iefix") format("embedded-opentype"),url("/assets/fonts/cso-fonts/39CDCD_7_0.woff") format("woff"),url("/assets/fonts/cso-fonts/39CDCD_7_0.ttf") format("truetype");}
@font-face { font-family: "HelveticaNeueLTPro-Md"; src: url("/assets/fonts/cso-fonts/39CDCD_8_0.eot"); src: url("/assets/fonts/cso-fonts/39CDCD_8_0.eot?#iefix") format("embedded-opentype"),url("/assets/fonts/cso-fonts/39CDCD_8_0.woff") format("woff"),url("/assets/fonts/cso-fonts/39CDCD_8_0.ttf") format("truetype");}
@font-face {
 font-family: "HelveticaNeueLTPro-MdIt";
 src: url("/assets/fonts/cso-fonts/39CDCD_9_0.eot");
 src: url("/assets/fonts/cso-fonts/39CDCD_9_0.eot?#iefix") format("embedded-opentype"), url("/assets/fonts/cso-fonts/39CDCD_9_0.woff") format("woff"), url("/assets/fonts/cso-fonts/39CDCD_9_0.ttf") format("truetype");
}
@font-face {
 font-family: "HelveticaNeueLTPro-Bd";
 src: url("/assets/fonts/cso-fonts/39CDCD_A_0.eot");
 src: url("/assets/fonts/cso-fonts/39CDCD_A_0.eot?#iefix") format("embedded-opentype"), url("/assets/fonts/cso-fonts/39CDCD_A_0.woff") format("woff"), url("/assets/fonts/cso-fonts/39CDCD_A_0.ttf") format("truetype");
}
@font-face {font-family: "HelveticaNeueLTPro-BdIt"; src: url("/assets/fonts/cso-fonts/39CDCD_B_0.eot"); src: url("/assets/fonts/cso-fonts/39CDCD_B_0.eot?#iefix") format("embedded-opentype"), url("/assets/fonts/cso-fonts/39CDCD_B_0.woff") format("woff"), url("/assets/fonts/cso-fonts/39CDCD_B_0.ttf") format("truetype");
}
body, p { 
  font-family: "Helvetica Neue Light","Helvetica Neue",Helvetica Neue,"Helvetica Neue eText Pro","HelveticaNeueLTPro-Lt","HelveticaNeue-Light","HelveticaNeueLTPro-Bd","HelveticaNeueLTPro-BdIt",Helvetica,Arial,sans-serif; 
  font-weight: normal; 
}
#MainContent_Content_hlBuyTickets {
 display: none !important; 
 margin: 0;
}
@viewport {
  width: device-width;
}
@-ms-viewport {
  width: device-width;
}
</style>
<!-- END preload styles -->

    <script>
        dataLayer = [];
    </script>

    
    
    



    <!-- Google Tag Manager -->    
    <script>
        (function (w, d, s, l, i) {
            w[l] = w[l] || []; w[l].push({
                'gtm.start':
                    new Date().getTime(), event: 'gtm.js'
            }); var f = d.getElementsByTagName(s)[0],
                j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src =
                    'https://www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f);
        })(window, document, 'script', 'dataLayer', 'GTM-M59D3LT');
    </script>
    <script>(function (w, d, s, l, i) {
            w[l] = w[l] || []; w[l].push({
                'gtm.start':
                    new Date().getTime(), event: 'gtm.js'
            }); var f = d.getElementsByTagName(s)[0],
                j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src =
                    'https://www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f);
        })(window, document, 'script', 'dataLayer', 'GTM-M4RGHBS');</script>
    <!-- End Google Tag Manager -->
</head>

<body id="csoBody">
    <!-- Google Tag Manager (noscript) -->
    <noscript>
        <iframe src="https://www.googletagmanager.com/ns.html?id=GTM-M59D3LT" height="0" width="0" style="display: none; visibility: hidden"></iframe>
    </noscript>
    <noscript>
        <iframe src="https://www.googletagmanager.com/ns.html?id=GTM-M4RGHBS" height="0" width="0" style="display: none; visibility: hidden"></iframe>
    </noscript>
    <!-- End Google Tag Manager (noscript) -->

    <form method="post" action="/Page-Not-Found/" id="ctl05">
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwULLTE5NTg4Mjk0OTEPFgIeE1ZhbGlkYXRlUmVxdWVzdE1vZGUCARYCZg9kFgJmD2QWBAIBD2QWFgIEDxYCHgdjb250ZW50ZGQCBQ8WAh8BZGQCBw8WAh8BZGQCCA8WAh8BBR1DaGljYWdvIFN5bXBob255IE9yY2hlc3RyYSAtIGQCCQ8WAh8BBR9odHRwczovL2Nzby5vcmcvUGFnZS1Ob3QtRm91bmQvZAIKDxYCHwFkZAILDxYCHwFkZAIMDxYCHwEFHUNoaWNhZ28gU3ltcGhvbnkgT3JjaGVzdHJhIC0gZAINDxYCHwEFH2h0dHBzOi8vY3NvLm9yZy9QYWdlLU5vdC1Gb3VuZC9kAg4PFgIfAWRkAhEPFgIeBFRleHQF6h48IS0tIExvYWQgaW4gQm9vdHN0cmFwIGljb25zIC0tPgo8bGluayBocmVmPSIvL25ldGRuYS5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjAuMC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiIHJlbD0ic3R5bGVzaGVldCIgLz4KPCEtLSBMb2FkIFNvdXJjZSBTYW5zIC0tPiAKPGxpbmsgaHJlZj0iLy9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PVNvdXJjZStTYW5zK1BybyZhbXA7ZGlzcGxheT1zd2FwIiByZWw9InN0eWxlc2hlZXQiIC8+CjwhLS0gcHJlbG9hZCBzdHlsZXMgLS0+IAo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgpib2R5LCBwLCBkaXYsIGEsIGJvZHkgPiogeyAKZm9udC1mYW1pbHk6IEFyaWFsLEhlbHZldGljYSxzYW5zLXNlcmlmOyAKYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsKZm9udC1zaXplOiAxZW07CmNvbG9yOiAjY2NjOwp9Ci5sLWhlYWRlcjpiZWZvcmUgewogZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OwogYmFja2dyb3VuZC1pbWFnZTogbm9uZSAhaW1wb3J0YW50Owp9CkBmb250LWZhY2UgeyBmb250LWZhbWlseTogIkhlbHZldGljYSBOZXVlIGVUZXh0IFBybyI7IHNyYzogdXJsKCIvYXNzZXRzL2ZvbnRzL2Nzby1mb250cy9kZTdkYTk5ZS0wZjc3LTQ0MTAtYjUxMi1iNzFjNDhmMmZmZjUuZW90Iik7IHNyYzp1cmwoIi9hc3NldHMvZm9udHMvY3NvLWZvbnRzL2RlN2RhOTllLTBmNzctNDQxMC1iNTEyLWI3MWM0OGYyZmZmNS5lb3Q/I2llZml4IikgZm9ybWF0KCJlb3QiKSwgdXJsKCIvYXNzZXRzL2ZvbnRzL2Nzby1mb250cy9jODNhMjYzMi0yZWQ3LTQ5MzEtODY2OC1kOWQyMTM1YmQ5ZjUud29mZiIpIGZvcm1hdCgid29mZiIpLCB1cmwoIi9hc3NldHMvZm9udHMvY3NvLWZvbnRzLzEwNGE5ZWI4LTgyOTMtNGVhOC05MmFkLWIxNGNmZTA5MTNhZS50dGYiKSBmb3JtYXQoInRydWV0eXBlIik7fQpAZm9udC1mYWNlIHsgZm9udC1mYW1pbHk6ICJIZWx2ZXRpY2FOZXVlTFRQcm8tTHQiOyBzcmM6IHVybCgiL2Fzc2V0cy9mb250cy9jc28tZm9udHMvMzlDRENEXzRfMC5lb3QiKTsgc3JjOiB1cmwoIi9hc3NldHMvZm9udHMvY3NvLWZvbnRzLzM5Q0RDRF80XzAuZW90PyNpZWZpeCIpIGZvcm1hdCgiZW1iZWRkZWQtb3BlbnR5cGUiKSx1cmwoIi9hc3NldHMvZm9udHMvY3NvLWZvbnRzLzM5Q0RDRF80XzAud29mZiIpIGZvcm1hdCgid29mZiIpLHVybCgiL2Fzc2V0cy9mb250cy9jc28tZm9udHMvMzlDRENEXzRfMC50dGYiKSBmb3JtYXQoInRydWV0eXBlIik7fQpAZm9udC1mYWNlIHsgZm9udC1mYW1pbHk6ICJIZWx2ZXRpY2FOZXVlTFRQcm8tTHRJdCI7IHNyYzogdXJsKCIvYXNzZXRzL2ZvbnRzL2Nzby1mb250cy8zOUNEQ0RfNV8wLmVvdCIpOyBzcmM6IHVybCgiL2Fzc2V0cy9mb250cy9jc28tZm9udHMvMzlDRENEXzVfMC5lb3Q/I2llZml4IikgZm9ybWF0KCJlbWJlZGRlZC1vcGVudHlwZSIpLHVybCgiL2Fzc2V0cy9mb250cy9jc28tZm9udHMvMzlDRENEXzVfMC53b2ZmIikgZm9ybWF0KCJ3b2ZmIiksdXJsKCIvYXNzZXRzL2ZvbnRzL2Nzby1mb250cy8zOUNEQ0RfNV8wLnR0ZiIpIGZvcm1hdCgidHJ1ZXR5cGUiKTt9CkBmb250LWZhY2UgeyBmb250LWZhbWlseTogIkhlbHZldGljYU5ldWVMVFByby1Sb21hbiI7IHNyYzogdXJsKCIvYXNzZXRzL2ZvbnRzL2Nzby1mb250cy8zOUNEQ0RfNl8wLmVvdCIpOyBzcmM6IHVybCgiL2Fzc2V0cy9mb250cy9jc28tZm9udHMvMzlDRENEXzZfMC5lb3Q/I2llZml4IikgZm9ybWF0KCJlbWJlZGRlZC1vcGVudHlwZSIpLHVybCgiL2Fzc2V0cy9mb250cy9jc28tZm9udHMvMzlDRENEXzZfMC53b2ZmIikgZm9ybWF0KCJ3b2ZmIiksdXJsKCIvYXNzZXRzL2ZvbnRzL2Nzby1mb250cy8zOUNEQ0RfNl8wLnR0ZiIpIGZvcm1hdCgidHJ1ZXR5cGUiKTt9CkBmb250LWZhY2UgeyBmb250LWZhbWlseTogIkhlbHZldGljYU5ldWVMVFByby1JdCI7IHNyYzogdXJsKCIvYXNzZXRzL2ZvbnRzL2Nzby1mb250cy8zOUNEQ0RfN18wLmVvdCIpOyBzcmM6IHVybCgiL2Fzc2V0cy9mb250cy9jc28tZm9udHMvMzlDRENEXzdfMC5lb3Q/I2llZml4IikgZm9ybWF0KCJlbWJlZGRlZC1vcGVudHlwZSIpLHVybCgiL2Fzc2V0cy9mb250cy9jc28tZm9udHMvMzlDRENEXzdfMC53b2ZmIikgZm9ybWF0KCJ3b2ZmIiksdXJsKCIvYXNzZXRzL2ZvbnRzL2Nzby1mb250cy8zOUNEQ0RfN18wLnR0ZiIpIGZvcm1hdCgidHJ1ZXR5cGUiKTt9CkBmb250LWZhY2UgeyBmb250LWZhbWlseTogIkhlbHZldGljYU5ldWVMVFByby1NZCI7IHNyYzogdXJsKCIvYXNzZXRzL2ZvbnRzL2Nzby1mb250cy8zOUNEQ0RfOF8wLmVvdCIpOyBzcmM6IHVybCgiL2Fzc2V0cy9mb250cy9jc28tZm9udHMvMzlDRENEXzhfMC5lb3Q/I2llZml4IikgZm9ybWF0KCJlbWJlZGRlZC1vcGVudHlwZSIpLHVybCgiL2Fzc2V0cy9mb250cy9jc28tZm9udHMvMzlDRENEXzhfMC53b2ZmIikgZm9ybWF0KCJ3b2ZmIiksdXJsKCIvYXNzZXRzL2ZvbnRzL2Nzby1mb250cy8zOUNEQ0RfOF8wLnR0ZiIpIGZvcm1hdCgidHJ1ZXR5cGUiKTt9CkBmb250LWZhY2UgewogZm9udC1mYW1pbHk6ICJIZWx2ZXRpY2FOZXVlTFRQcm8tTWRJdCI7CiBzcmM6IHVybCgiL2Fzc2V0cy9mb250cy9jc28tZm9udHMvMzlDRENEXzlfMC5lb3QiKTsKIHNyYzogdXJsKCIvYXNzZXRzL2ZvbnRzL2Nzby1mb250cy8zOUNEQ0RfOV8wLmVvdD8jaWVmaXgiKSBmb3JtYXQoImVtYmVkZGVkLW9wZW50eXBlIiksIHVybCgiL2Fzc2V0cy9mb250cy9jc28tZm9udHMvMzlDRENEXzlfMC53b2ZmIikgZm9ybWF0KCJ3b2ZmIiksIHVybCgiL2Fzc2V0cy9mb250cy9jc28tZm9udHMvMzlDRENEXzlfMC50dGYiKSBmb3JtYXQoInRydWV0eXBlIik7Cn0KQGZvbnQtZmFjZSB7CiBmb250LWZhbWlseTogIkhlbHZldGljYU5ldWVMVFByby1CZCI7CiBzcmM6IHVybCgiL2Fzc2V0cy9mb250cy9jc28tZm9udHMvMzlDRENEX0FfMC5lb3QiKTsKIHNyYzogdXJsKCIvYXNzZXRzL2ZvbnRzL2Nzby1mb250cy8zOUNEQ0RfQV8wLmVvdD8jaWVmaXgiKSBmb3JtYXQoImVtYmVkZGVkLW9wZW50eXBlIiksIHVybCgiL2Fzc2V0cy9mb250cy9jc28tZm9udHMvMzlDRENEX0FfMC53b2ZmIikgZm9ybWF0KCJ3b2ZmIiksIHVybCgiL2Fzc2V0cy9mb250cy9jc28tZm9udHMvMzlDRENEX0FfMC50dGYiKSBmb3JtYXQoInRydWV0eXBlIik7Cn0KQGZvbnQtZmFjZSB7Zm9udC1mYW1pbHk6ICJIZWx2ZXRpY2FOZXVlTFRQcm8tQmRJdCI7IHNyYzogdXJsKCIvYXNzZXRzL2ZvbnRzL2Nzby1mb250cy8zOUNEQ0RfQl8wLmVvdCIpOyBzcmM6IHVybCgiL2Fzc2V0cy9mb250cy9jc28tZm9udHMvMzlDRENEX0JfMC5lb3Q/I2llZml4IikgZm9ybWF0KCJlbWJlZGRlZC1vcGVudHlwZSIpLCB1cmwoIi9hc3NldHMvZm9udHMvY3NvLWZvbnRzLzM5Q0RDRF9CXzAud29mZiIpIGZvcm1hdCgid29mZiIpLCB1cmwoIi9hc3NldHMvZm9udHMvY3NvLWZvbnRzLzM5Q0RDRF9CXzAudHRmIikgZm9ybWF0KCJ0cnVldHlwZSIpOwp9CmJvZHksIHAgeyAKICBmb250LWZhbWlseTogIkhlbHZldGljYSBOZXVlIExpZ2h0IiwiSGVsdmV0aWNhIE5ldWUiLEhlbHZldGljYSBOZXVlLCJIZWx2ZXRpY2EgTmV1ZSBlVGV4dCBQcm8iLCJIZWx2ZXRpY2FOZXVlTFRQcm8tTHQiLCJIZWx2ZXRpY2FOZXVlLUxpZ2h0IiwiSGVsdmV0aWNhTmV1ZUxUUHJvLUJkIiwiSGVsdmV0aWNhTmV1ZUxUUHJvLUJkSXQiLEhlbHZldGljYSxBcmlhbCxzYW5zLXNlcmlmOyAKICBmb250LXdlaWdodDogbm9ybWFsOyAKfQojTWFpbkNvbnRlbnRfQ29udGVudF9obEJ1eVRpY2tldHMgewogZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyAKIG1hcmdpbjogMDsKfQpAdmlld3BvcnQgewogIHdpZHRoOiBkZXZpY2Utd2lkdGg7Cn0KQC1tcy12aWV3cG9ydCB7CiAgd2lkdGg6IGRldmljZS13aWR0aDsKfQo8L3N0eWxlPgo8IS0tIEVORCBwcmVsb2FkIHN0eWxlcyAtLT4KZAIDD2QWAgIBD2QWBgIBD2QWBAIDDxYCHgdWaXNpYmxlaGQCDw9kFgRmD2QWAmYPFgIeCV9wYWdlTGluaygpa0VQaVNlcnZlci5Db3JlLlBhZ2VSZWZlcmVuY2UsIEVQaVNlcnZlciwgVmVyc2lvbj0xMC4xLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj04ZmU4M2RlYTczOGI0NWI3AzE3MRYOAgEPZBYGZg8VAQxoYXMtY2hpbGRyZW5kAgEPDxYEHgxfYm91bmRQYWdlSUQC9wEeCV9sYXN0VHlwZQspaEVQaVNlcnZlci5Db3JlLlJlbmRlclR5cGUsIEVQaVNlcnZlciwgVmVyc2lvbj0xMC4xLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj04ZmU4M2RlYTczOGI0NWI3AWQWAmYPDxYEHghDc3NDbGFzcwUNbWFpbl9uYXYtbGluax4EXyFTQgICZGQCAw8WAh8EKCsEAzI0NxYOAgEPZBYGZg8VAQBkAgEPDxYEHwUCPB8GCysFAWQWAmYPDxYEHwcFEm1haW5fbmF2LWRyb3BfbGluax8IAgJkZAIDDxYCHwQoKwQCNjBkAgIPZBYGZg8VAQBkAgEPDxYEHwUC2TMfBgsrBQFkFgJmDw8WBB8HBRJtYWluX25hdi1kcm9wX2xpbmsfCAICZGQCAw8WAh8EKCsEBDY2MTdkAgMPZBYGZg8VAQBkAgEPDxYEHwUC6ogDHwYLKwUBZBYCZg8PFgQfBwUSbWFpbl9uYXYtZHJvcF9saW5rHwgCAmRkAgMPFgIfBCgrBAU1MDI4MmQCBA9kFgZmDxUBAGQCAQ8PFgQfBQLuiAMfBgsrBQFkFgJmDw8WBB8HBRJtYWluX25hdi1kcm9wX2xpbmsfCAICZGQCAw8WAh8EKCsEBTUwMjg2ZAIFD2QWBmYPFQEAZAIBDw8WBB8FAtYjHwYLKwUBZBYCZg8PFgQfBwUSbWFpbl9uYXYtZHJvcF9saW5rHwgCAmRkAgMPFgIfBCgrBAQ0NTY2ZAIGD2QWBmYPFQEAZAIBDw8WBB8FAsogHwYLKwUBZBYCZg8PFgQfBwUSbWFpbl9uYXYtZHJvcF9saW5rHwgCAmRkAgMPFgIfBCgrBAQ0MTcwZAIHD2QWBmYPFQEAZAIBDw8WBB8FApsDHwYLKwUBZBYCZg8PFgQfBwUSbWFpbl9uYXYtZHJvcF9saW5rHwgCAmRkAgMPFgIfBCgrBAM0MTFkAgIPZBYGZg8VAQxoYXMtY2hpbGRyZW5kAgEPDxYEHwUC9gEfBgsrBQFkFgJmDw8WBB8HBQ1tYWluX25hdi1saW5rHwgCAmRkAgMPFgIfBCgrBAMyNDYWDAIBD2QWBmYPFQEAZAIBDw8WBB8FAreKAx8GCysFAWQWAmYPDxYEHwcFEm1haW5fbmF2LWRyb3BfbGluax8IAgJkZAIDDxYCHwQoKwQFNTA0ODdkAgIPZBYGZg8VAQBkAgEPDxYEHwUC9YkDHwYLKwUBZBYCZg8PFgQfBwUSbWFpbl9uYXYtZHJvcF9saW5rHwgCAmRkAgMPFgIfBCgrBAU1MDQyMWQCAw9kFgZmDxUBAGQCAQ8PFgQfBQK4igMfBgsrBQFkFgJmDw8WBB8HBRJtYWluX25hdi1kcm9wX2xpbmsfCAICZGQCAw8WAh8EKCsEBTUwNDg4ZAIED2QWBmYPFQEAZAIBDw8WBB8FAuuEAx8GCysFAWQWAmYPDxYEHwcFEm1haW5fbmF2LWRyb3BfbGluax8IAgJkZAIDDxYCHwQoKwQFNDk3NzFkAgUPZBYGZg8VAQBkAgEPDxYEHwUC/4kDHwYLKwUBZBYCZg8PFgQfBwUSbWFpbl9uYXYtZHJvcF9saW5rHwgCAmRkAgMPFgIfBCgrBAU1MDQzMWQCBg9kFgZmDxUBAGQCAQ8PFgQfBQKaAR8GCysFAWQWAmYPDxYEHwcFEm1haW5fbmF2LWRyb3BfbGluax8IAgJkZAIDDxYCHwQoKwQDMTU0ZAIDD2QWBmYPFQEMaGFzLWNoaWxkcmVuZAIBDw8WBB8FAvUBHwYLKwUBZBYCZg8PFgQfBwUNbWFpbl9uYXYtbGluax8IAgJkZAIDDxYCHwQoKwQDMjQ1FgoCAQ9kFgZmDxUBAGQCAQ8PFgQfBQL0Ah8GCysFAWQWAmYPDxYEHwcFEm1haW5fbmF2LWRyb3BfbGluax8IAgJkZAIDDxYCHwQoKwQDMzcyZAICD2QWBmYPFQEAZAIBDw8WBB8FAvUCHwYLKwUBZBYCZg8PFgQfBwUSbWFpbl9uYXYtZHJvcF9saW5rHwgCAmRkAgMPFgIfBCgrBAMzNzNkAgMPZBYGZg8VAQBkAgEPDxYEHwUCpIwCHwYLKwUBZBYCZg8PFgQfBwUSbWFpbl9uYXYtZHJvcF9saW5rHwgCAmRkAgMPFgIfBCgrBAUzNDM0MGQCBA9kFgZmDxUBAGQCAQ8PFgQfBQL1+QIfBgsrBQFkFgJmDw8WBB8HBRJtYWluX25hdi1kcm9wX2xpbmsfCAICZGQCAw8WAh8EKCsEBTQ4MzczZAIFD2QWBmYPFQEAZAIBDw8WBB8FApb2AR8GCysFAWQWAmYPDxYEHwcFEm1haW5fbmF2LWRyb3BfbGluax8IAgJkZAIDDxYCHwQoKwQFMzE1MTBkAgQPZBYGZg8VAQxoYXMtY2hpbGRyZW5kAgEPDxYEHwUC8wEfBgsrBQFkFgJmDw8WBB8HBQ1tYWluX25hdi1saW5rHwgCAmRkAgMPFgIfBCgrBAMyNDMWDAIBD2QWBmYPFQEAZAIBDw8WBB8FAvsMHwYLKwUBZBYCZg8PFgQfBwUSbWFpbl9uYXYtZHJvcF9saW5rHwgCAmRkAgMPFgIfBCgrBAQxNjU5ZAICD2QWBmYPFQEAZAIBDw8WBB8FAvgCHwYLKwUBZBYCZg8PFgQfBwUSbWFpbl9uYXYtZHJvcF9saW5rHwgCAmRkAgMPFgIfBCgrBAMzNzZkAgMPZBYGZg8VAQBkAgEPDxYEHwUC+QIfBgsrBQFkFgJmDw8WBB8HBRJtYWluX25hdi1kcm9wX2xpbmsfCAICZGQCAw8WAh8EKCsEAzM3N2QCBA9kFgZmDxUBAGQCAQ8PFgQfBQL6Ah8GCysFAWQWAmYPDxYEHwcFEm1haW5fbmF2LWRyb3BfbGluax8IAgJkZAIDDxYCHwQoKwQDMzc4ZAIFD2QWBmYPFQEAZAIBDw8WBB8FAvsCHwYLKwUBZBYCZg8PFgQfBwUSbWFpbl9uYXYtZHJvcF9saW5rHwgCAmRkAgMPFgIfBCgrBAMzNzlkAgYPZBYGZg8VAQBkAgEPDxYEHwUC/AIfBgsrBQFkFgJmDw8WBB8HBRJtYWluX25hdi1kcm9wX2xpbmsfCAICZGQCAw8WAh8EKCsEAzM4MGQCBQ9kFgZmDxUBDGhhcy1jaGlsZHJlbmQCAQ8PFgQfBQLwAR8GCysFAWQWAmYPDxYEHwcFDW1haW5fbmF2LWxpbmsfCAICZGQCAw8WAh8EKCsEAzI0MBYQAgEPZBYGZg8VAQBkAgEPDxYEHwUC/QIfBgsrBQFkFgJmDw8WBB8HBRJtYWluX25hdi1kcm9wX2xpbmsfCAICZGQCAw8WAh8EKCsEAzM4MWQCAg9kFgZmDxUBAGQCAQ8PFgQfBQL+Ah8GCysFAWQWAmYPDxYEHwcFEm1haW5fbmF2LWRyb3BfbGluax8IAgJkZAIDDxYCHwQoKwQDMzgyZAIDD2QWBmYPFQEAZAIBDw8WBB8FAsHxAR8GCysFAWQWAmYPDxYEHwcFEm1haW5fbmF2LWRyb3BfbGluax8IAgJkZAIDDxYCHwQoKwQFMzA5MTNkAgQPZBYGZg8VAQBkAgEPDxYEHwUCgQMfBgsrBQFkFgJmDw8WBB8HBRJtYWluX25hdi1kcm9wX2xpbmsfCAICZGQCAw8WAh8EKCsEAzM4NWQCBQ9kFgZmDxUBAGQCAQ8PFgQfBQL6igMfBgsrBQFkFgJmDw8WBB8HBRJtYWluX25hdi1kcm9wX2xpbmsfCAICZGQCAw8WAh8EKCsEBTUwNTU0ZAIGD2QWBmYPFQEAZAIBDw8WBB8FAvuKAx8GCysFAWQWAmYPDxYEHwcFEm1haW5fbmF2LWRyb3BfbGluax8IAgJkZAIDDxYCHwQoKwQFNTA1NTVkAgcPZBYGZg8VAQBkAgEPDxYEHwUC/wIfBgsrBQFkFgJmDw8WBB8HBRJtYWluX25hdi1kcm9wX2xpbmsfCAICZGQCAw8WAh8EKCsEAzM4M2QCCA9kFgZmDxUBAGQCAQ8PFgQfBQKAAx8GCysFAWQWAmYPDxYEHwcFEm1haW5fbmF2LWRyb3BfbGluax8IAgJkZAIDDxYCHwQoKwQDMzg0ZAIGD2QWBmYPFQEAZAIBDw8WBB8FAoUCHwYLKwUBZBYCZg8PFgQfBwUNbWFpbl9uYXYtbGluax8IAgJkZAIDDxYCHwQoKwQDMjYxZAIHD2QWBmYPFQEAZAIBDw8WBB8FAvQBHwYLKwUBZBYCZg8PFgQfBwUNbWFpbl9uYXYtbGluax8IAgJkZAIDDxYCHwQoKwQDMjQ0ZAIBDw8WAh8DaGRkAgUPZBYCAgMPZBYMZg8PFgIfBgsrBQFkFgJmDw8WBB8HBQpwYWdlX3RpdGxlHwgCAmQWAmYPFgIeCGRpc2FibGVkZGQCAQ8PFgIfBgsrBQFkFgJmDw8WBB8HZR8IAgJkZAICDw8WAh8GCysFAWQWAmYPDxYEHwcFDHBhZ2Vfc3ViaGVhZB8IAgJkFgJmDxYCHwlkZAIDDw8WAh8GCysFAWQWAmYPDxYEHwcFCXJpY2gtdGV4dB8IAgJkZAIEDw8WAh8GCysFAWQWAmYPDxYEHwdlHwgCAmQWAmYPFgIfCWQWBGYPZBYCZg9kFgQCAQ8WAh8CZGQCAw8WAh8CBbv5Bgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgphLCBwID4gYSB7CiBjb2xvcjogI2IyMjIyMjsKIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKfQphOmhvdmVyLCBhOmZvY3VzIHsKY29sb3I6ICNiMjIyMjI7CnRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwp9CiNtYWluQ29udGVudCB7CiBwYWRkaW5nOiAwOwogbWFyZ2luOiAwOwogbWF4LXdpZHRoOiAxMDAlOwp9Ci5sLWNvbnRhaW5lciB7CiBwYWRkaW5nOiAwOwogd2lkdGg6IDEwMCU7CiBtYXJnaW46IDA7CiB2ZXJ0aWNhbC1hbGlnbjogdG9wOwogbWF4LXdpZHRoOiAxMDAlOwp9Ci5tb2JpbGVfY2FsIHsKIGRpc3BsYXk6IG5vbmU7Cn0KLnBsYWNlaG9sZGVyX3RleHQgewogZGlzcGxheTogbm9uZTsKfQoubWFpbl9uYXYtYmFjaywgLm1haW5fbmF2LWRlZXBfYmFjayB7CiBib3JkZXItc3R5bGU6IG5vbmU7CiAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7CiAtbW96LWFwcGVhcmFuY2U6IG5vbmU7CiBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsKIGN1cnNvcjogcG9pbnRlcjsKIGxpbmUtaGVpZ2h0OiAxLjZlbTsKfQoubWFpbl9uYXYtbGluaywgLm1haW5fbmF2LWxpbmstZ3JleSwgLm1haW5fbmF2LWRyb3BfbGluaywgLm1haW5fbmF2LWRlZXBfbGluaywgLm1haW5fbmF2LWJhY2ssIC5tYWluX25hdi1kZWVwX2JhY2ssIC5tYWluX25hdi1kcm9wX2J1dHRvbiwgLm1haW5fbmF2LWRlZXBfYnV0dG9uIHsKIHVzZXItc2VsZWN0OiBub25lOwogLW1vei11c2VyLXNlbGVjdDogbm9uZTsKIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CiAtby11c2VyLXNlbGVjdDogbm9uZTsKIC1tcy11c2VyLXNlbGVjdDogbm9uZTsKIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7CiBsaW5lLWhlaWdodDogMS42ZW07Cn0KLmNhbGxvdXQtMmNvbF90ZXh0ID4gKiB7CiBwYWRkaW5nOiAwOwogbWFyZ2luOiAwOwogYm9yZGVyOiBub25lOwp9Ci5sLWNvbnRhaW5lciwgI21haW5Db250ZW50LCAubGFuZGluZywgLmxhbmRpbmctYXJjaGl2ZSwgLndpZGUgLmxhbmRpbmctYXJjaGl2ZV9hcnRpY2xlLCAucGFnZXIsIC5jYWxsb3V0LTRjb2wsIC5jYWxsb3V0LTJjb2wgewogZGlzcGxheTogLW1zLWZsZXhib3g7CiBkaXNwbGF5OiAtd2Via2l0LWJveDsKIGRpc3BsYXk6IGZsZXg7Cn0KLmhvbWUtY2FsbG91dC1jb250YWluZXIgPiBkaXYgewogYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlZWU7CiBwYWRkaW5nLWJvdHRvbTogMWVtOwp9Ci5ob21lLXNpZGViYXJfYmxvY2sgPiBkaXYgewogZGlzcGxheTogbm9uZTsKfQouaG9tZS1zaWRlYmFyX2Jsb2NrID4gZGl2Omxhc3QtY2hpbGQgewogYm9yZGVyLWJvdHRvbTogbm9uZTsKfQouaG9tZS1zaWRlYmFyX2l0ZW0gewogbGlzdC1zdHlsZS10eXBlOiBub25lCn0KLmNhbGxvdXQtMmNvbF90ZXh0IHsKIG1hcmdpbjogMDsKIGZvbnQtc2l6ZTogMWVtCn0KLm93bC1wcmV2LCAub3dsLW5leHQgewogYmFja2dyb3VuZDogdXJsKCcvZ2xvYmFsYXNzZXRzL2Nhcm91c2VsX2Fycm93cy10cmFucy5wbmcnKSBuby1yZXBlYXQ7CiB3aWR0aDogMzZweDsKIGhlaWdodDogMzZweDsKIHotaW5kZXg6IDEwOwogY29sb3I6IHRyYW5zcGFyZW50OwogdG9wOiA0OCU7Cn0KaHRtbCwgYm9keSwgZGl2LCBzcGFuLCBvYmplY3QsIGlmcmFtZSwgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiwgcCwgYmxvY2txdW90ZSwgcHJlLCBhYmJyLCBhZGRyZXNzLCBjaXRlLCBjb2RlLCBkZWwsIGRmbiwgZW0sIGltZywgaW5zLCBrYmQsIHEsIHNhbXAsIHNtYWxsLCBzdHJvbmcsIHN1Yiwgc3VwLCB2YXIsIGIsIGksIGRsLCBkdCwgZGQsIG9sLCB1bCwgbGksIGxlZ2VuZCwgdGFibGUsIGNhcHRpb24sIHRib2R5LCB0Zm9vdCwgdGhlYWQsIHRyLCB0aCwgdGQsIGFydGljbGUsIGFzaWRlLCBjYW52YXMsIGRldGFpbHMsIGZpZ2NhcHRpb24sIGZpZ3VyZSwgaGVhZGVyLCBoZ3JvdXAsIG1lbnUsIG5hdiwgc2VjdGlvbiwgc3VtbWFyeSwgdGltZSwgbWFyaywgYXVkaW8sIHZpZGVvLCBmaWVsZHNldCwgZm9ybSwgbGFiZWwgewogbWFyZ2luOiAwOwogcGFkZGluZzogMDsKIGJvcmRlcjogMDsKIG91dGxpbmU6IG5vbmUgIWltcG9ydGFudDsKIGZvbnQtc2l6ZTogMWVtOwogdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOwogYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7Cn0KaHRtbCwgYm9keSB7CiBmb250LXNpemU6IDFlbTsKIG1heC13aWR0aDogMTAwJTsKfQpib2R5IHsKIGxpbmUtaGVpZ2h0OiAxLjZlbTsKIGZvbnQtZmFtaWx5OiAgJ0hlbHZldGljYSBOZXVlIExpZ2h0JywgJ0hlbHZldGljYSBOZXVlJywgJ0hlbHZldGljYSBOZXVlIGVUZXh0IFBybycsICdIZWx2ZXRpY2FOZXVlTFRQcm8tTHQnLCAnSGVsdmV0aWNhTmV1ZS1MaWdodCcsSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjsKIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7CiAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsKIG1hcmdpbjogMDsKICBwYWRkaW5nOiAwOwogY29sb3I6ICMwNzA3MDc7CiBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOwp9CiNjc29Cb2R5IHsKIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7CiAgbWFyZ2luOiAwOwogICBwYWRkaW5nOiAwOwp9CmJvZHkubWVudS1vcGVuZWQgewogb3ZlcmZsb3c6IGhpZGRlbjsKfQojaGVhZGVyQ3RybF9QYW5lbDIgewogZGlzcGxheTogbm9uZSAhaW1wb3J0YW50Owp9CkBtZWRpYShtYXgtd2lkdGg6OTI1cHgpIHsKYm9keS5tZW51LW9wZW5lZCAuem9waW0gewogZGlzcGxheTogbm9uZTsKIH0KfQovKiBoaWRlIG9sZCBiZyBpbWFnZSAqLwoubC1oZWFkZXI6YmVmb3JlIHsKIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKIGJhY2tncm91bmQtaW1hZ2U6IG5vbmUgIWltcG9ydGFudDsKfQphcnRpY2xlLCBhc2lkZSwgZGV0YWlscywgZmlnY2FwdGlvbiwgZmlndXJlLCBoZWFkZXIsIGhncm91cCwgbWVudSwgbmF2LCBzZWN0aW9uLCBmb290ZXIgewogZGlzcGxheTogYmxvY2s7Cn0Kb2wsIHVsIHsKIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsKfQpibG9ja3F1b3RlLCBxIHsKIHF1b3Rlczogbm9uZTsKfQpibG9ja3F1b3RlOmJlZm9yZSwgYmxvY2txdW90ZTphZnRlciwgcTpiZWZvcmUsIHE6YWZ0ZXIgewogY29udGVudDogJyc7CiBjb250ZW50OiBub25lOwp9Cgpib2R5IHsKIGZvbnQtd2VpZ2h0OiA0MDA7ICAvKiBDSEFOR0VEIC0gaGFkIGJlZW4gbm9ybWFsICovCiBmb250LXN0eWxlOiBub3JtYWwKfQphIHsKIGNvbG9yOiAjYjIyMjIyOwogd29yZC13cmFwOiBicmVhay13b3JkOwogcGFkZGluZzogMDsgCiBmb250LXdlaWdodDogNTAwOwogdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOwogYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7Cn0KYTpob3ZlciwgYTpmb2N1cyB7CmNvbG9yOiAjYjIyMjIyOwp0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSAhaW1wb3J0YW50Owp9CmltZyB7CiBtYXgtd2lkdGg6IDEwMCU7CiBoZWlnaHQ6IGF1dG87CiBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwogLW1zLWludGVycG9sYXRpb24tbW9kZTogYmljdWJpYzsKIHdpZHRoOiBhdXRvXDk7IC8qIGllOCAqLwp9Ci52aWRlb3dyYXAgewogcG9zaXRpb246IHJlbGF0aXZlOwogcGFkZGluZy1ib3R0b206IDU2LjI1JTsgLyogMTY6OSAqLwogcGFkZGluZy10b3A6IDIwcHg7CiBoZWlnaHQ6IDA7CiBtYXgtd2lkdGg6IDExOThweDsKfQoudmlkZW93cmFwIGlmcmFtZSB7Cglwb3NpdGlvbjogYWJzb2x1dGU7Cgl0b3A6IDA7CglsZWZ0OiAwOwoJd2lkdGg6IDEwMCU7CgltYXgtd2lkdGg6IDEwMCU7IAoJaGVpZ2h0OiA5OCU7IAp9Ci5yb3cgewogd2lkdGg6IDEwMCU7CiBtYXJnaW4tbGVmdDogMDsKIG1hcmdpbi1yaWdodDogMDsKIG1hcmdpbi10b3A6IDA7CiBtYXJnaW4tYm90dG9tOiAwOwogbWF4LXdpZHRoOiAxMTk4cHg7Cn0JCi5tYWluX25hdi1kcm9wX2J1dHRvbiwgLm1haW5fbmF2LWRlZXBfYnV0dG9uIHsKIGJvcmRlci1zdHlsZTogbm9uZTsKIG1hcmdpbjogMDsKIHBhZGRpbmc6IDA7CiB3aWR0aDogYXV0bzsKIG92ZXJmbG93OiB2aXNpYmxlOwogYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAvKiBjb2xvcjogaW5oZXJpdDsgKi8KIGZvbnQ6IGluaGVyaXQ7CiBsaW5lLWhlaWdodDogaW5oZXJpdDsKIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGluaGVyaXQ7CiAtbW96LW9zeC1mb250LXNtb290aGluZzogaW5oZXJpdDsKIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZQp9CkAtd2Via2l0LWtleWZyYW1lcyBzbGlkZUluIHsKZnJvbSB7Ci13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMjAlKTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEyMCUpCn0KdG8gewotd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCkKfQp9CkBrZXlmcmFtZXMgc2xpZGVJbiB7CmZyb20gewotd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTIwJSk7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMjAlKQp9CnRvIHsKLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApCn0KfQpALXdlYmtpdC1rZXlmcmFtZXMgZmFkZS1pbiB7CjAlIHsKb3BhY2l0eTogMAp9CjUwJSB7Cm9wYWNpdHk6IDAKfQoxMDAlIHsKb3BhY2l0eTogMAp9Cn0KQGtleWZyYW1lcyBmYWRlLWluIHsKMCUgewpvcGFjaXR5OiAwCn0KNTAlIHsKb3BhY2l0eTowCn0KMTAwJSB7Cm9wYWNpdHk6IDAKfQp9CkAtd2Via2l0LWtleWZyYW1lcyBsb2FkMSB7CjAlLCA4MCUsIDEwMCUgewpoZWlnaHQ6IDEwcHg7Ci13ZWJraXQtYm94LXNoYWRvdzogMCAwICNmZmY7CiAgICAgICAgYm94LXNoYWRvdzogMCAwICNmZmYKfQo0MCUgewpoZWlnaHQ6IDE1cHg7Ci13ZWJraXQtYm94LXNoYWRvdzogMCAtNnB4ICNmZmY7CiAgICAgICAgYm94LXNoYWRvdzogMCAtNnB4ICNmZmYKfQp9CkBrZXlmcmFtZXMgbG9hZDEgewowJSwgODAlLCAxMDAlIHsKaGVpZ2h0OiAxMHB4Owotd2Via2l0LWJveC1zaGFkb3c6IDAgMCAjZmZmOwogICAgICAgIGJveC1zaGFkb3c6IDAgMCAjZmZmOwp9CjQwJSB7CmhlaWdodDogMTVweDsKLXdlYmtpdC1ib3gtc2hhZG93OiBub25lOwogICAgICAgIGJveC1zaGFkb3c6IDAgLTZweCAjZmZmOwp9Cn0KLm5nLWNsb2FrIHsKIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKfQoJCmgxLCBoMS50bi1oZWFkaW5nIHsKIGZvbnQtc2l6ZTogMmVtOwogY29sb3I6ICMxYjFiMWI7CiBmb250LXdlaWdodDogNjAwOwogbGluZS1oZWlnaHQ6IDEuNmVtOwogd2lkdGg6IDEwMCU7CiBtYXJnaW46IDhweCAwIDE0cHggMDsKIGZvbnQtZmFtaWx5OiAnU291cmNlIFNhbnMgUHJvJywgU291cmNlIFNhbnMgUHJvLCBTb3VyY2UgU2FucywgJ09wZW4gU2FucycsIE9wZW4gU2FucywgQXJpYWwsIHNhbnMtc2VyaWYgIWltcG9ydGFudDsKIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7CiAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsKIHRleHQtdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7CiBwYWRkaW5nOiAwIDEwcHggMnB4IDA7Cn0KaDIgewogZm9udC1zaXplOiAxLjhlbTsKIGZvbnQtd2VpZ2h0OiA2MDA7CiBjb2xvcjogIzFiMWIxYjsKIG1hcmdpbjogMTBweCAwIDE1cHggMDsKIGxpbmUtaGVpZ2h0OiAxLjZlbTsKIGZvbnQtZmFtaWx5OiAnU291cmNlIFNhbnMgUHJvJywgU291cmNlIFNhbnMgUHJvLCBTb3VyY2UgU2FucywgJ09wZW4gU2FucycsIE9wZW4gU2FucywgQXJpYWwsIHNhbnMtc2VyaWYgIWltcG9ydGFudDsKIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7CiAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsKIHRleHQtdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7CiBwYWRkaW5nOiAwIDE1cHggMnB4IDA7Cn0KCmgzIHsKIHRleHQtdHJhbnNmb3JtOiBub25lOwogZm9udC1mYW1pbHk6ICdTb3VyY2UgU2FucyBQcm8nLCBTb3VyY2UgU2FucyBQcm8sIFNvdXJjZSBTYW5zLCAnT3BlbiBTYW5zJywgT3BlbiBTYW5zLCBBcmlhbCwgc2Fucy1zZXJpZiAhaW1wb3J0YW50OwogLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsKIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOwogZm9udC1zaXplOiAxLjZlbTsKIGxpbmUtaGVpZ2h0OiAxLjZlbTsKIGZvbnQtd2VpZ2h0OiA2MDA7CiB0ZXh0LXRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50OwogbWFyZ2luOiAxMHB4IDAgMTVweCAwOwogcGFkZGluZzogMCAxMHB4IDJweCAwOwp9CmgxLnBhZ2VfdGl0bGUsIGgyLnBhZ2VfdGl0bGUsIGgzLnBhZ2VfdGl0bGUgewogZm9udC13ZWlnaHQ6IDYwMDsKIGNvbG9yOiAjMWIxYjFiOwogZm9udC1mYW1pbHk6ICdTb3VyY2UgU2FucyBQcm8nLCBTb3VyY2UgU2FucyBQcm8sIFNvdXJjZSBTYW5zLCAnT3BlbiBTYW5zJywgT3BlbiBTYW5zLCBBcmlhbCwgc2Fucy1zZXJpZiAhaW1wb3J0YW50OwogLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsKIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOwogZm9udC1zaXplOiAyLjFlbTsKIGxpbmUtaGVpZ2h0OiAxLjZlbTsKIHRleHQtdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7CiBtYXJnaW46IDIwcHggMCAxNXB4IDJweCAhaW1wb3J0YW50OwogcGFkZGluZzogMDsKfQpoNCB7CiBmb250LXdlaWdodDogNjAwOwogY29sb3I6ICMzNjM2MzY7CiBmb250LWZhbWlseTogJ1NvdXJjZSBTYW5zIFBybycsIFNvdXJjZSBTYW5zIFBybywgU291cmNlIFNhbnMsICdPcGVuIFNhbnMnLCBPcGVuIFNhbnMsIEFyaWFsLCBzYW5zLXNlcmlmICFpbXBvcnRhbnQ7CiAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOwogLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7CiBmb250LXNpemU6IDEuNWVtOwogbGluZS1oZWlnaHQ6IDEuNmVtOwogdGV4dC10cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDsKIG1hcmdpbjogMTBweCAwIDE1cHggMDsKIHBhZGRpbmc6IDAgMTBweCAycHggMDsKfQpoMi5wYWdlX3N1YmhlYWQsIGgxLnBhZ2Vfc3ViaGVhZCwgaDMucGFnZV9zdWJoZWFkIHsKIGZvbnQtd2VpZ2h0OiA2MDA7CiBmb250LWZhbWlseTogICdIZWx2ZXRpY2EgTmV1ZSBMaWdodCcsICdIZWx2ZXRpY2EgTmV1ZScsICdIZWx2ZXRpY2EgTmV1ZSBlVGV4dCBQcm8nLCAnSGVsdmV0aWNhTmV1ZUxUUHJvLUx0JywgJ0hlbHZldGljYU5ldWUtTGlnaHQnLEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7CiAvKiBub3RlIHVzaW5nIEhlbHZldGljYSBpbnN0ZWFkIG9mIFNvdXJjZSBzaW5jZSBtb3N0IG9mIHRoZXNlIGFyZSBib2R5IGNvcHkgdGV4dCAqLwogZm9udC1zaXplOiAxLjdlbTsKIGxpbmUtaGVpZ2h0OiAxLjRlbTsKICBjb2xvcjogIzFiMWIxYjsKIHRleHQtdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7CiBtYXJnaW46IDVweCAwIDE1cHggMDsKIHBhZGRpbmc6IDE1cHggMTBweCAxMHB4IDA7Cn0KcCwgbGksIGRpdiB7CiBmb250LXNpemU6IDFlbTsKIGZvbnQtZmFtaWx5OiAgJ0hlbHZldGljYSBOZXVlIExpZ2h0JywgJ0hlbHZldGljYSBOZXVlJywgJ0hlbHZldGljYSBOZXVlIGVUZXh0IFBybycsICdIZWx2ZXRpY2FOZXVlTFRQcm8tTHQnLCAnSGVsdmV0aWNhTmV1ZS1MaWdodCcsIEhlbHZldGljYSBOZXVlLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmOwogLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsKIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOwogY29sb3I6ICMwNzA3MDc7CiBmb250LXdlaWdodDogNDAwOwp9CnAsIGRpdi5wLCBkaXYgPiBwLCBwID4gc3BhbiB7CiBtYXJnaW4tYm90dG9tOiAxNXB4OwogZm9udC1mYW1pbHk6ICAnSGVsdmV0aWNhIE5ldWUgTGlnaHQnLCAnSGVsdmV0aWNhIE5ldWUnLCAnSGVsdmV0aWNhIE5ldWUgZVRleHQgUHJvJywgJ0hlbHZldGljYU5ldWVMVFByby1MdCcsICdIZWx2ZXRpY2FOZXVlLUxpZ2h0JywgSGVsdmV0aWNhIE5ldWUsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7CiAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOwogLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7CiBjb2xvcjogIzA3MDcwNzsKIGxpbmUtaGVpZ2h0OiAxLjVlbTsKIGZvbnQtd2VpZ2h0OiA0MDA7Cn0KcCA+IHN0cm9uZywgc3Ryb25nLCBkaXYgPiBzdHJvbmcgewogZm9udC1mYW1pbHk6ICAnSGVsdmV0aWNhIE5ldWUgTGlnaHQnLCAnSGVsdmV0aWNhIE5ldWUnLCAnSGVsdmV0aWNhIE5ldWUgZVRleHQgUHJvJywgJ0hlbHZldGljYU5ldWVMVFByby1MdCcsICdIZWx2ZXRpY2FOZXVlLUxpZ2h0JywgSGVsdmV0aWNhIE5ldWUsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7CiAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOwogLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7CiBjb2xvcjogIzA3MDcwNzsKIGZvbnQtd2VpZ2h0OiA2MDA7Cn0KCi5yaWNoLXRleHQgaDMgewogdGV4dC10cmFuc2Zvcm06IG5vbmU7CiBmb250LXdlaWdodDogaW5oZXJpdDsKIGNvbG9yOiAjMzYzNjM2OwogZm9udC1mYW1pbHk6ICAnSGVsdmV0aWNhIE5ldWUgTGlnaHQnLCAnSGVsdmV0aWNhIE5ldWUnLCAnSGVsdmV0aWNhIE5ldWUgZVRleHQgUHJvJywgJ0hlbHZldGljYU5ldWVMVFByby1MdCcsICdIZWx2ZXRpY2FOZXVlLUxpZ2h0JywgSGVsdmV0aWNhIE5ldWUsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7CiAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOwogLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7CiBmb250LXNpemU6IDEuNmVtOwp9Ci5yaWNoLXRleHQgb2wgewogbGlzdC1zdHlsZS10eXBlOiBkZWNpbWFsCn0KLnJpY2gtdGV4dCB1bCB7CiBsaXN0LXN0eWxlLXR5cGU6IGRpc2MKfQoucmljaC10ZXh0IG9sLCAucmljaC10ZXh0IHVsIHsKIG1hcmdpbjogMCAwIC44NWVtIC44NWVtOwogcGFkZGluZy1sZWZ0OiA0cHgKfQoucmljaC10ZXh0IG9sIGxpICsgbGksIC5yaWNoLXRleHQgdWwgbGkgKyBsaSB7CiBwYWRkaW5nLXRvcDogLjg1ZW0KfQouZXJyb3IsIC5maWVsZC12YWxpZGF0aW9uLWVycm9yIHsKIGNvbG9yOiAjYjIyMjIyOwogZm9udC13ZWlnaHQ6IDcwMDsKIGZvbnQtc2l6ZTogMWVtOwogZm9udC1mYW1pbHk6ICAnSGVsdmV0aWNhIE5ldWUgTGlnaHQnLCAnSGVsdmV0aWNhIE5ldWUnLCAnSGVsdmV0aWNhIE5ldWUgZVRleHQgUHJvJywgJ0hlbHZldGljYU5ldWVMVFByby1MdCcsICdIZWx2ZXRpY2FOZXVlLUxpZ2h0JywgSGVsdmV0aWNhIE5ldWUsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7CiAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOwogLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7Cn0KLmVycm9yIHAsIC5maWVsZC12YWxpZGF0aW9uLWVycm9yIHAgewogY29sb3I6ICNiMjIyMjI7CiBmb250LWZhbWlseTogICdIZWx2ZXRpY2EgTmV1ZSBMaWdodCcsICdIZWx2ZXRpY2EgTmV1ZScsICdIZWx2ZXRpY2EgTmV1ZSBlVGV4dCBQcm8nLCAnSGVsdmV0aWNhTmV1ZUxUUHJvLUx0JywgJ0hlbHZldGljYU5ldWUtTGlnaHQnLCBIZWx2ZXRpY2EgTmV1ZSwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjsKIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7CiAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsKIHBhZGRpbmc6IDEuNWVtOwp9Ci8qIGdlbmVyaWMgcGFyYWdyYXBoIHN0eWxlIGZvciBzcGFjaW5nIGF0IGVuZCBvZiBwICovCi5wYXJhZ3JhcGggewogcGFkZGluZy1ib3R0b206IDEuMjVlbTsKfQoubC13cmFwcGVyIHsKIHdpZHRoOiAxMDAlOwogbWFyZ2luOiAwIGF1dG87CiBwYWRkaW5nOiAwIGF1dG87CiBkaXNwbGF5OiBibG9jazsKIC8qIGhlaWdodDogMTAwJTsgKi8KfQoKLyogbWFpbiBjb250ZW50IHBhZGRpbmcgKi8KLmwtY29udGFpbmVyLCAjbWFpbkNvbnRlbnQgewogLW1zLWZsZXg6IDEgMTAwJTsKIC13ZWJraXQtYm94LWZsZXg6IDE7CiAgICAgICAgIGZsZXg6IDEgMTAwJTsKIGZsZXgtd3JhcDogd3JhcDsKIC13ZWJraXQtZmxleC13cmFwOiB3cmFwOwogLW1zLWZsZXgtd3JhcDogd3JhcDsKIHBhZGRpbmc6IDAgMTBweCAwIDEwcHg7CiBtYXJnaW46IDA7CiB3aWR0aDogMTAwJTsKIG1heC13aWR0aDogMTAwJTsKfQpAbWVkaWEobWluLXdpZHRoOiA5MjZweCkgewoubC1oZWFkZXIgewogZGlzcGxheTogdGFibGU7CiB3aWR0aDogMTAwJTsKIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogcG9zaXRpb246IHJlbGF0aXZlOwogei1pbmRleDogMTk7IC8qIGNoYW5nZWQgLSB3YXMgOTAwICovIAogaGVpZ2h0OiAxNjhweCAhaW1wb3J0YW50OwogbWluLWhlaWdodDogMTY4cHggIWltcG9ydGFudDsKbWF4LXdpZHRoOiAxMDAlOwogbWFyZ2luOiAwOwogcGFkZGluZzogMCAwIDEuNmVtIDA7IC8qIGNoYW5nZWQgOC0zMSAqLwogbWFyZ2luLXRvcDogMjFweCAhaW1wb3J0YW50OwogdmVydGljYWwtYWxpZ246IGJvdHRvbTsKfQoubC1zaWRlYmFyIHsKIG1heC13aWR0aDogMjgwcHg7Cn0KfQpAbWVkaWEobWF4LXdpZHRoOiA5MjVweCkgewoubC1oZWFkZXIgewogIHBhZGRpbmc6IDA7IAogIGRpc3BsYXk6IHRhYmxlOwogIHdpZHRoOiAxMDAlOwogIG1heC13aWR0aDogMTAwJTsKICBoZWlnaHQ6IGF1dG87CiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgcG9zaXRpb246IHJlbGF0aXZlOwogIHotaW5kZXg6IDE7CiAgbWFyZ2luOiAwOwogfQoubC1zaWRlYmFyIHsKIHdpZHRoOiAxMDAlOwptYXgtd2lkdGg6IDEwMCU7Cn0KLm93bC1kb3RzIHsKIGRpc3BsYXk6IGJsb2NrOwogcG9zaXRpb246IGFic29sdXRlOwogbGVmdDogMjAlOwogcmlnaHQ6IDIwJTsKIGJvdHRvbTogLjVlbTsKIHotaW5kZXg6IDIwOwogb3BhY2l0eTogMC44Owp9Ci5vd2wtZG90IHsKIGJhY2tncm91bmQ6ICNjY2M7CiBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiBoZWlnaHQ6IC4zZW07CiBtYXJnaW46IDAgLjNlbTsKIHdpZHRoOiAuM2VtOwogb3BhY2l0eTogMC44Owp9Cn0KCkBtZWRpYShtaW4td2lkdGg6IDY0MHB4KSB7Ci5vd2wtZG90cyB7CiBkaXNwbGF5OiBibG9jazsKIG9wYWNpdHk6IDAuODsKfQoub3dsLWRvdCB7CiBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiBvcGFjaXR5OiAwLjg7Cn0KfQoKCkBtZWRpYShtYXgtd2lkdGg6IDYzOXB4KSB7Ci5vd2wtZG90cyB7CiBkaXNwbGF5OiBub25lOwogb3BhY2l0eTogMDsKfQoub3dsLWRvdCB7CiBkaXNwbGF5OiBub25lOwogb3BhY2l0eTogMDsKfQp9CgoKCi5sLWhlcm8gewogcG9zaXRpb246IHJlbGF0aXZlOwp3aWR0aDogMTAwJTsKaGVpZ2h0OiBhdXRvOwogbWFyZ2luOiAxNXB4IDAgMTBweCAwOwpwYWRkaW5nOiAwOwogdGV4dC1hbGlnbjogY2VudGVyOwptYXgtd2lkdGg6IDEwMCU7Cn0KLmwtbWFpbiB7CiB3aWR0aDogMTAwJTsKbWF4LXdpZHRoOiAxMDAlOwp9Ci5sLW1haW5fbGVmdCB7CiAtbXMtZmxleC1vcmRlcjogMTsKIC13ZWJraXQtYm94LW9yZGluYWwtZ3JvdXA6IDI7CiAgICAgICAgIG9yZGVyOiAxOwp9Ci5sLW1haW5fcmlnaHQgewogLW1zLWZsZXgtb3JkZXI6IDI7CiAtd2Via2l0LWJveC1vcmRpbmFsLWdyb3VwOiAzOwogICAgICAgICBvcmRlcjogMjsKfQoKLmwtc2lkZWJhcl9sZWZ0IHsKIHBhZGRpbmctcmlnaHQ6IDJlbTsKIC1tcy1mbGV4LW9yZGVyOiAxOwogLXdlYmtpdC1ib3gtb3JkaW5hbC1ncm91cDogMjsKICAgICAgICAgb3JkZXI6IDE7Cn0KLmwtc2lkZWJhcl9yaWdodCB7CiBwYWRkaW5nLWxlZnQ6IDJlbTsKIC1tcy1mbGV4LW9yZGVyOiAyOwogLXdlYmtpdC1ib3gtb3JkaW5hbC1ncm91cDogMzsKICAgICAgICAgb3JkZXI6IDI7Cn0KLm1haW5Db250ZW50RnVsbCB7CiB3aWR0aDogMTAwJTsKIGhlaWdodDogMTAwJTsKfQoKQG1lZGlhKG1pbi13aWR0aDo5MjZweCkgewoubWFpbl9uYXYgewogZmxvYXQ6IGxlZnQ7CiBtYXJnaW46IDA7IAogcGFkZGluZzogMCAycHggMCAwOwogd2lkdGg6IDEwMCU7CiB3aGl0ZS1zcGFjZTogbm93cmFwOwogdmVydGljYWwtYWxpZ246IGJvdHRvbTsKIG1heC13aWR0aDogMTAwJTsKIH0KLm1haW5fbmF2LWxpc3QgewogZGlzcGxheTogdGFibGU7CiB3aWR0aDogMTAwJTsKIHBhZGRpbmctcmlnaHQ6IDJweDsKIHBhZGRpbmctbGVmdDogMnB4Owogd2hpdGUtc3BhY2U6IG5vd3JhcDsKIG1heC13aWR0aDogMTAwJTsgLyogY2hhbmdlZCA5LTI0IC0gd2FzIDEyMDAgKi8KIHZlcnRpY2FsLWFsaWduOiBib3R0b207CiBtYXgtaGVpZ2h0OiAzOHB4OyAvKiBhZGRlZCA5LTYgKi8KIH0KfQoKLm1haW5fbmF2LWxpbmsgewogZm9udC1mYW1pbHk6ICdTb3VyY2UgU2FucyBQcm8nLCBTb3VyY2UgU2FucyBQcm8sIFNvdXJjZSBTYW5zLCAnT3BlbiBTYW5zJywgT3BlbiBTYW5zLCBBcmlhbCwgc2Fucy1zZXJpZjsKIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7CiAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsKIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiBmb250LXNpemU6IDEuMWVtOwogbGluZS1oZWlnaHQ6IDEuMWVtOwogY29sb3I6ICMwNzA3MDc7CiB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDsKIGZvbnQtd2VpZ2h0OiA2MDA7CiBwYWRkaW5nOiAwOwp9Ci5tYWluX25hdi1saW5rOmFmdGVyIHsKIGNvbnRlbnQ6ICcgfCc7CiBjb2xvcjogI2NjYzsKIGZvbnQtc2l6ZTogLjhlbTsKIGZvbnQtd2VpZ2h0OiAxMDA7CiBwYWRkaW5nOiAwIDFweCAwIDdweDsKIG1hcmdpbjogMDsKIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsKIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50Owp9Ci5tYWluX25hdi1saW5rOmFmdGVyOmhvdmVyLCAubWFpbl9uYXYtbGluazphZnRlcjpmb2N1cyB7CnRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50Owpjb2xvcjogI2ZmZjsgLyogd2hpdGUgdW5kZXJsaW5lIG9uIHNwYWNlIGNoYXJhY3RlciAqLwp9Ci5tYWluX25hdi1saW5rOmhvdmVyLCAubWFpbl9uYXYtbGluazpmb2N1cyB7CiB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDsKIGNvbG9yOiAjYjIyMjIyICFpbXBvcnRhbnQ7Cn0KLm1haW5fbmF2LWl0ZW06aG92ZXIsIC5tYWluX25hdi1pdGVtOmZvY3VzIHsKIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50OwogY29sb3I6ICNiMjIyMjIgIWltcG9ydGFudDsKfQoKQG1lZGlhKG1pbi13aWR0aDo5MjZweCkgewoubWFpbl9uYXYtaXRlbSB7CiBmbG9hdDogbGVmdDsKIG1hcmdpbjogMDsKIHBhZGRpbmc6IDAgMTBweCAxM3B4IDAgIWltcG9ydGFudDsKIHBvc2l0aW9uOiByZWxhdGl2ZTsKIGRpc3BsYXk6IGlubGluZS1ibG9jazsKIHotaW5kZXg6IDEKfQoubWFpbl9uYXYtbGluazpsYXN0LWNoaWxkIHsKIGNvbG9yOiAjMzYzNjM2ICFpbXBvcnRhbnQ7Cn0KLm1haW5fbmF2LWxpbms6bnRoLWxhc3QtY2hpbGQoMikgewogY29sb3I6ICMzNjM2MzYgIWltcG9ydGFudDsKfQoubWFpbl9uYXYtbGluazpsYXN0LWNoaWxkOmhvdmVyLCAubWFpbl9uYXYtbGluazpsYXN0LWNoaWxkOmZvY3VzIHsKIGNvbG9yOiAjYjIyMjIyICFpbXBvcnRhbnQ7CiAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7Cn0KLm1haW5fbmF2LWxpbms6bnRoLWxhc3QtY2hpbGQoMik6aG92ZXIsIC5tYWluX25hdi1saW5rOm50aC1sYXN0LWNoaWxkKDIpOmZvY3VzIHsKIGNvbG9yOiAjYjIyMjIyICFpbXBvcnRhbnQ7CiAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7Cn0KCi5tYWluX25hdi1pdGVtOmxhc3QtY2hpbGQgewogZmxvYXQ6IHJpZ2h0OwogY29sb3I6ICMzNjM2MzY7CiBtYXJnaW46IDA7CiBwYWRkaW5nOiAwIDEwcHggMTNweCAwICFpbXBvcnRhbnQ7CiBwb3NpdGlvbjogcmVsYXRpdmU7CiBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Cn0KLm1haW5fbmF2LWl0ZW06bnRoLWxhc3QtY2hpbGQoMikgewogZmxvYXQ6IHJpZ2h0OwogY29sb3I6ICMzNjM2MzY7CiBtYXJnaW46IDA7CiBwYWRkaW5nOiAwIDEwcHggMTNweCAwICFpbXBvcnRhbnQ7CiBwb3NpdGlvbjogcmVsYXRpdmU7CiBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Cn0KLm1haW5fbmF2LWl0ZW06bGFzdC1jaGlsZDpob3ZlciwgLm1haW5fbmF2LWl0ZW06bGFzdC1jaGlsZDpmb2N1cyB7CiBjb2xvcjogI2IyMjIyMiAhaW1wb3J0YW50OwogIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50Owp9Ci5tYWluX25hdi1pdGVtOm50aC1sYXN0LWNoaWxkKDIpOmhvdmVyLCAubWFpbl9uYXYtaXRlbTpudGgtbGFzdC1jaGlsZCgyKTpmb2N1cyB7CiBjb2xvcjogI2IyMjIyMiAhaW1wb3J0YW50OwogIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50Owp9Cn0KLyogbGFzdCBuYXYgaXRlbSAqLyAKLm1haW5fbmF2LWxpc3QgPiBsaTpudGgtY2hpbGQoNikgewogbWFyZ2luLXJpZ2h0OiAwOwogcGFkZGluZy1yaWdodDogMDsKIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50Owp9Ci5tYWluX25hdi1saXN0ID4gbGk6bnRoLWNoaWxkKDYpOmhvdmVyIHsKIG1hcmdpbi1yaWdodDogMDsKIHBhZGRpbmctcmlnaHQ6IDA7CiBjb2xvcjogI2IyMjIyMiAhaW1wb3J0YW50OwogIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50Owp9Ci5tYWluX25hdi1saXN0ID4gbGk6bnRoLWNoaWxkKDYpOmFmdGVyIHsKIGRpc3BsYXk6IG5vbmU7CiBjb250ZW50OiBub25lOwogYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7CiBjb2xvcjogI2ZmZjsKfQoubWFpbl9uYXYtbGlzdCA+IGxpOm50aC1jaGlsZCg1KSA+IGE6YWZ0ZXIgewogZGlzcGxheTogbm9uZTsKIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50OwogbWFyZ2luLXJpZ2h0OiAwOwogcGFkZGluZy1yaWdodDogMDsKIGNvbnRlbnQ6IG5vbmU7CiBjb2xvcjogI2ZmZjsKfQoubWFpbl9uYXYtbGlzdCA+IGxpOm50aC1jaGlsZCg2KSA+IGE6YWZ0ZXIgewogZGlzcGxheTogbm9uZTsKIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50OwogbWFyZ2luLXJpZ2h0OiAwOwogcGFkZGluZy1yaWdodDogMDsKIGNvbnRlbnQ6IG5vbmU7CiBjb2xvcjogI2ZmZjsKfQoKQG1lZGlhKG1pbi13aWR0aDo5MjZweCkgewoubWFpbl9uYXYtbGluaywgLm1haW5fbmF2LWxpbmstZ3JleSB7CiBwYWRkaW5nLWJvdHRvbTogMS4xZW0KIH0KfQoKQG1lZGlhKG1pbi13aWR0aDo5MjZweCkgewoubWFpbl9uYXYtZHJvcF9saXN0IHsKIGRpc3BsYXk6IG5vbmU7CiBsaW5lLWhlaWdodDogMS42ZW07CiBwb3NpdGlvbjogYWJzb2x1dGU7CiBib3JkZXI6IDFweCBzb2xpZCAjYjIyMjIyOwogYm9yZGVyLXRvcC13aWR0aDogM3B4OwogcGFkZGluZzogMCAuNTllbTsKIGJhY2tncm91bmQtY29sb3I6ICNmYWZhZmE7CiBtYXJnaW4tdG9wOiAuODVlbTsKbWluLXdpZHRoOiAxNS4zZW07Cn0KLm1haW5fbmF2LWRyb3BfbGlzdDpiZWZvcmUgewogY29udGVudDogJyc7CiB3aWR0aDogMDsKIGhlaWdodDogMDsKIGJvcmRlci1sZWZ0OiA3cHggc29saWQgdHJhbnNwYXJlbnQ7CiBib3JkZXItcmlnaHQ6IDdweCBzb2xpZCB0cmFuc3BhcmVudDsKIGJvcmRlci1ib3R0b206IDdweCBzb2xpZCAjYjIyMjIyOwogcG9zaXRpb246IGFic29sdXRlOwogdG9wOiAtN3B4OwogbGVmdDogNXB4CiB9Cn0KCkBtZWRpYShtaW4td2lkdGg6OTI2cHgpIHsKLm1haW5fbmF2LWRyb3BfaXRlbSB7CiBwYWRkaW5nOiAuNTgzZW0gMDsKIG1hcmdpbi1ib3R0b206IDA7CiBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYzsKIGxpbmUtaGVpZ2h0OiAxLjZlbTsKIH0KfQoubWFpbl9uYXYtZHJvcF9saW5rLCAubWFpbl9uYXYtZGVlcF9saW5rIHsKIGZvbnQtZmFtaWx5OiAnU291cmNlIFNhbnMgUHJvJywgU291cmNlIFNhbnMgUHJvLCBTb3VyY2UgU2FucywgJ09wZW4gU2FucycsIE9wZW4gU2FucywgQXJpYWwsIHNhbnMtc2VyaWY7CiB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiBjb2xvcjogIzM2MzYzNjsKIGxpbmUtaGVpZ2h0OiAxLjZlbTsKfQoubWFpbl9uYXYtZGVlcF9saXN0IHsKIGRpc3BsYXk6IHRhYmxlOwogcGFkZGluZzogMCAwIDAgLjgzM2VtOwogbGluZS1oZWlnaHQ6IDEuNmVtOwp9Ci5tYWluX25hdi1kZWVwX2l0ZW0gewogbWFyZ2luLWJvdHRvbTogMAp9Ci5tYWluX25hdi1kZWVwX2xpbmsgewogZm9udC1zaXplOiAxZW07CiBsaW5lLWhlaWdodDogMS42ZW07Cn0KLm1haW5fbmF2LW1vYmlsZV9vbmx5IHsKIGRpc3BsYXk6IG5vbmUKfQoubWFpbl9uYXYtYmFjaywgLm1haW5fbmF2LWRlZXBfYmFjayB7CiBjb2xvcjogIzM2MzYzNjsKIHRleHQtYWxpZ246IGxlZnQKfQoubWFpbl9uYXYtYmFjazphY3RpdmUsIC5tYWluX25hdi1kZWVwX2JhY2s6YWN0aXZlIHsKIG9wYWNpdHk6IC40OwogLXdlYmtpdC1vcGFjaXR5OiAuNDsKIC1tb3otb3BhY2l0eTogLjQ7CiBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9NDApOwogLW1zLWZpbHRlcjogJ3Byb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYShPcGFjaXR5PTQwKScKfQoubWFpbl9uYXYtZHJvcF9idXR0b24sIC5tYWluX25hdi1kZWVwX2J1dHRvbiB7CiBkaXNwbGF5OiBub25lOwogbWFyZ2luLXJpZ2h0OiAuODMzNWVtOwogbGluZS1oZWlnaHQ6IDEuNmVtOwp9Ci5tYWluX25hdi1kcm9wX2J1dHRvbiBzdmcsIC5tYWluX25hdi1kZWVwX2J1dHRvbiBzdmcgewogaGVpZ2h0OiAxOHB4Owogd2lkdGg6IDE4cHg7CiBmaWxsOiAjZmZmOwp9Ci5tYWluX25hdi1kcm9wX2J1dHRvbjphY3RpdmUsIC5tYWluX25hdi1kZWVwX2J1dHRvbjphY3RpdmUgewogb3BhY2l0eTogLjQ7CiAtd2Via2l0LW9wYWNpdHk6IC40OwogLW1vei1vcGFjaXR5OiAuNDsKIGZpbHRlcjogYWxwaGEob3BhY2l0eT00MCk7CiAtbXMtZmlsdGVyOiAncHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkFscGhhKE9wYWNpdHk9NDApJzsKfQoubWFpbl9uYXYtaXRlbSAuYWN0aXZlLCAubWFpbl9uYXYtaXRlbTphY3RpdmUsIC5tYWluX25hdi1pdGVtOmFjdGl2ZSB7Cgljb2xvcjogI2IyMjIyMiAhaW1wb3J0YW50OwogIH0KQG1lZGlhKG1heC13aWR0aDoxMjIwcHgpIHsKLm1haW5fbmF2LWxpc3QgewogZm9udC1zaXplOiAxLjFlbTsKfQp9CkBtZWRpYShtYXgtd2lkdGg6MTE2MHB4KSB7Ci5tYWluX25hdi1saXN0IHsKIGZvbnQtc2l6ZTogMWVtICFpbXBvcnRhbnQ7Cn0KfQpAbWVkaWEobWF4LXdpZHRoOjExMDBweCkgewoubWFpbl9uYXYtbGlzdCB7CiBmb250LXNpemU6IC45ZW0gIWltcG9ydGFudDsKfQp9CkBtZWRpYShtYXgtd2lkdGg6MTAyNXB4KSB7Ci5tYWluX25hdi1saXN0IHsKIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKfQp9CkBtZWRpYShtaW4td2lkdGg6MTAyNnB4KSB7Ci5tYWluX25hdi1pdGVtOmhvdmVyIC5tYWluX25hdi1kcm9wX2xpc3QgewogZGlzcGxheTogYmxvY2s7Cn0KLm1haW5fbmF2LWRlZXBfbGluazpob3ZlciwgLm1haW5fbmF2LWRyb3BfbGluazpob3ZlciwgLm1haW5fbmF2LWRlZXBfbGluazpob3ZlciwgLm1haW5fbmF2LWxpbms6aG92ZXIsIC5tYWluX25hdi1saW5rLWdyZXk6aG92ZXIgewogY29sb3I6ICNiMjIyMjI7CiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7Cn0KfQpAbWVkaWEobWF4LXdpZHRoOjEwMjVweCkgewogIC5tYWluX25hdi1tb2JpbGVfb25seSB7CiAgICBkaXNwbGF5OiBub25lOwogIH0KfQpAbWVkaWEobWF4LXdpZHRoOjEwMjVweCkgewogIC5tYWluX25hdi1saXN0IHsKICAgIGRpc3BsYXk6IG5vbmU7CiAgfQoubWFpbl9uYXYtbGlzdDpub3QoLmhpZGVfaXRlbXMpIHsKIGRpc3BsYXk6IG5vbmU7Cn0KLm1haW5fbmF2LWxpc3QuaGlkZV9pdGVtcyAubWFpbl9uYXYtaXRlbTpub3QoLmFjdGl2ZSkgewogZGlzcGxheTogbm9uZTsKfQoubWFpbl9uYXYtaXRlbSB7CiBkaXNwbGF5OiBub25lOwp9Ci5tYWluX25hdi1pdGVtOm5vdCguaGFzLWNoaWxkcmVuKSAubWFpbl9uYXYtZHJvcF9idXR0b24sIC5tYWluX25hdi1pdGVtOm5vdCguaGFzLWNoaWxkcmVuKSAubWFpbl9uYXYtZGVlcF9idXR0b24gewogZGlzcGxheTogbm9uZSAhaW1wb3J0YW50Owp9Ci5tYWluX25hdi1pdGVtLmFjdGl2ZTpub3QoLmRlZXAtYWN0aXZlKSA+IC5tYWluX25hdi1kcm9wX2J1dHRvbi5mb3J3YXJkLCAubWFpbl9uYXYtaXRlbS5hY3RpdmU6bm90KC5kZWVwLWFjdGl2ZSkgPiAuZm9yd2FyZC5tYWluX25hdi1kZWVwX2J1dHRvbiB7CiBkaXNwbGF5OiBub25lOwp9Ci5tYWluX25hdi1pdGVtLmRlZXAtYWN0aXZlID4gLm1haW5fbmF2LWRyb3BfYnV0dG9uLCAubWFpbl9uYXYtaXRlbS5kZWVwLWFjdGl2ZSA+IC5tYWluX25hdi1kZWVwX2J1dHRvbiwgLm1haW5fbmF2LWl0ZW0uZGVlcC1hY3RpdmUgPiAubWFpbl9uYXYtbGluayB7CiBkaXNwbGF5OiBub25lOwogfQp9CkBtZWRpYShtYXgtd2lkdGg6MTAyNXB4KSB7Ci5tYWluX25hdi1kcm9wX2xpbmssIC5tYWluX25hdi1kZWVwX2xpbmsgewogZGlzcGxheTogbm9uZTsKfQoubWFpbl9uYXYtZHJvcF9pdGVtIHsKIGRpc3BsYXk6IG5vbmU7CiB9Ci5tYWluX25hdi1kZWVwX2l0ZW0gewogZGlzcGxheTogbm9uZTsKfQoubWFpbl9uYXYtZGVlcF9saXN0IHsKIGRpc3BsYXk6IG5vbmU7Cn0KLm1haW5fbmF2LW1vYmlsZV9vbmx5IHsKIGRpc3BsYXk6IG5vbmU7IC8qIGFkZGVkIDktMyAqLwp9Cn0KLnF1aWNrX25hdiwgLnF1aWNrX25hdi1saW5rLCAucXVpY2tfbmF2LWxpbmsgc3ZnLCAucXVpY2tfbmF2LWxpc3QsIC5xdWlja19uYXYtaXRlbSwgLnF1aWNrX25hdi1pdGVtOmxhc3QtY2hpbGQsIC5xdWlja19uYXYtaXRlbS1kZXNrdG9wLCAucXVpY2tfbmF2LWl0ZW0tdGltZXIsIC5xdWlja19uYXYtaXRlbS1jYXJ0LW1vYmlsZSwgLnF1aWNrX25hdi1pdGVtLWNhcnQtZGVza3RvcCwgLm5vLXRvdWNoIC5xdWlja19uYXYtbGluazpob3ZlciB7CiBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7Cn0KI2NvdW50RG93blRpbWVyIHsKIGRpc3BsYXk6IG5vbmU7Cn0KLm1vYmlsZV9oZWFkZXItY2FsZW5kYXIsIC5tb2JpbGVfaGVhZGVyLW1lbnUsIC5tb2JpbGVfaGVhZGVyLWxvZ28gewogIGRpc3BsYXk6IG5vbmU7IAp9Ci5tb2JpbGVfaGVhZGVyLWNhbGVuZGFyIHN2ZywgLm1vYmlsZV9oZWFkZXItbWVudSBzdmcsIC5tb2JpbGVfaGVhZGVyLWxvZ28gc3ZnIHsKICBkaXNwbGF5OiBub25lOyAKfQovKiBhZGRlZCBzb21lIGhlbHAgdG8gZGlzcGxheSBtb2JpbGUgbWVudSBzdmcgKi8KI21vYmlsZV9oZWFkZXItbWVudSA+IHNwYW4ubW9iaWxlX2hlYWRlci1tZW51LW9wZW4gPiBzdmcgewogICBkaXNwbGF5OiBub25lOyAKfQoubW9iaWxlX2hlYWRlci1jYWxlbmRhciBzcGFuOm5vdCgubW9iaWxlX2hlYWRlci1tZW51LW9wZW4pOm5vdCgubW9iaWxlX2hlYWRlci1tZW51LWNsb3NlKSwgLm1vYmlsZV9oZWFkZXItbWVudSBzcGFuOm5vdCgubW9iaWxlX2hlYWRlci1tZW51LW9wZW4pOm5vdCgubW9iaWxlX2hlYWRlci1tZW51LWNsb3NlKSwgLm1vYmlsZV9oZWFkZXItbG9nbyBzcGFuOm5vdCgubW9iaWxlX2hlYWRlci1tZW51LW9wZW4pOm5vdCgubW9iaWxlX2hlYWRlci1tZW51LWNsb3NlKSB7CiAgIGRpc3BsYXk6IG5vbmU7IAp9Ci5tb2JpbGVfaGVhZGVyLW1lbnUtY2xvc2UgewogIGRpc3BsYXk6IG5vbmU7Cn0KLm1vYmlsZV9oZWFkZXItbG9nbyB7CiAgZGlzcGxheTogbm9uZTsKfQoubm8tdG91Y2ggLm1vYmlsZV9oZWFkZXItY2FsZW5kYXI6aG92ZXIsIC5uby10b3VjaCAubW9iaWxlX2hlYWRlci1tZW51OmhvdmVyLCAubm8tdG91Y2ggLm1vYmlsZV9oZWFkZXItbG9nbzpob3ZlciB7CiAgZGlzcGxheTogbm9uZTsKfQoubWVudS1vcGVuZWQgLm1vYmlsZV9oZWFkZXItbWVudS1vcGVuIHsKICBkaXNwbGF5OiBub25lOwp9Ci5tZW51LW9wZW5lZCAubW9iaWxlX2hlYWRlci1tZW51LWNsb3NlIHsKICBkaXNwbGF5OiBub25lOwp9CkBtZWRpYShtYXgtd2lkdGg6OTI1cHgpIHsKICAubW9iaWxlX21lbnUgewogICAgIGRpc3BsYXk6IG5vbmU7CiAgfQogIC5tb2JpbGVfbWVudS5vcGVuZWQgewogICAgZGlzcGxheTogbm9uZTsKICB9CiAgLm1vYmlsZV9tZW51LWlubmVyIHsKICAgIGRpc3BsYXk6IG5vbmU7CiAgfQp9CgoubW9iaWxlX2NhbCB7CiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50Owp9Ci50b3VjaCBhOmhvdmVyIHsKICAtd2Via2l0LXRyYW5zaXRpb246IG5vbmU7CiAgLW8tdHJhbnNpdGlvbjogbm9uZTsKICAgICB0cmFuc2l0aW9uOiBub25lOwp9CmxhYmVsIHsKIGNvbG9yOiAjMzYzNjM2Owp9CmlucHV0W3R5cGU9J2NoZWNrYm94J10gKyBsYWJlbCB7CiBjdXJzb3I6IHBvaW50ZXI7Cn0KaW5wdXRbdHlwZT0nc3VibWl0J10gewogLyogUkVNT1ZFRCB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyAgIC0gd2FzIHRleHQtYm90dG9tICovIAogY3Vyc29yOiBwb2ludGVyOwp9Ci5mb3JtLWJsb2NrIHsKIGRpc3BsYXk6IGJsb2NrOwogbWFyZ2luOiAxNXB4IDA7Cn0KLmZvcm0taW5saW5lIHsKIGRpc3BsYXk6IGlubGluZTsKIHBhZGRpbmc6IDVweCA1cHggNXB4IDA7Cn0Kc2VsZWN0IHsKIG1heC13aWR0aDogMTAwJTsKIHdpZHRoOiAxMDAlOwp9Ci54Zm9ybSBsYWJlbCB7CiBkaXNwbGF5OiBibG9jazsKIGZvbnQtd2VpZ2h0OiA2MDA7Cn0KLnhmb3JtIGlucHV0W3R5cGU9J3RleHQnXSwgLnhmb3JtIHRleHRhcmVhLCBpbnB1dC50ZXh0X2ZpZWxkIHsKIC13ZWJraXQtYm94LXNoYWRvdzogM3B4IDNweCA1cHggMXB4IHJnYmEoMCwgMCwgMCwgLjA5KSBpbnNldDsKICAgICAgICAgYm94LXNoYWRvdzogM3B4IDNweCA1cHggMXB4IHJnYmEoMCwgMCwgMCwgLjA5KSBpbnNldDsKIGJvcmRlcjogMXB4IHNvbGlkICM5OTk7CiB3aWR0aDogMTAwJTsgIC8qIENIQU5HRUQgLSBoYWQgYmVlbiBtaW4gd2lkdGggMjAwcHggKi8KIHBhZGRpbmc6IC41ZW07CiBtaW4taGVpZ2h0OiAzMHB4OyAKfQoueGZvcm0gdGV4dGFyZWEgewogd2lkdGg6IDEwMCU7Cn0KLnhmb3JtIGRpdiB7CiB3aWR0aDogNDAlOwogcGFkZGluZzogLjhlbSAuNGVtOwogZGlzcGxheTogaW5saW5lLWJsb2NrOwogdmVydGljYWwtYWxpZ246IHRvcDsKfQoueGZvcm0gZGl2ID4gKiB7CiBtYXJnaW4tbGVmdDogLjY2ZW07Cn0KLnhmb3JtIC5yb3cgewogZGlzcGxheTogYmxvY2s7CiB3aWR0aDogMTAwJTsKfQoueGZvcm0gLmhpZ2hsaWdodCB7CiBiYWNrZ3JvdW5kOiAjZmFmYWZhOwp9Ci5tZWRpYS1jb250YWluZXIgewogcG9zaXRpb246IHJlbGF0aXZlOwogcGFkZGluZy1ib3R0b206IDFlbTsKIHBhZGRpbmctdG9wOiAxNXB4OwogaGVpZ2h0OiAwOwogb3ZlcmZsb3c6IGhpZGRlbjsKfQoubWVkaWEtY29udGFpbmVyIGlmcmFtZSwgLm1lZGlhLWNvbnRhaW5lciBvYmplY3QsIC5tZWRpYS1jb250YWluZXIgZW1iZWQgewogcG9zaXRpb246IGFic29sdXRlOwogdG9wOiAwOwogbGVmdDogMDsKIHdpZHRoOiAxMDAlOwogaGVpZ2h0OiBhdXRvOwp9Ci5uby1saXN0LCAud3lzaXd5ZyB1bC5uby1saXN0LCAud3lzaXd5Zy10d29fY29sdW1uIHVsLm5vLWxpc3QgewogbGlzdC1zdHlsZS10eXBlOiBub25lOwogcGFkZGluZzogMDsKfQoubm8tbGlzdCA+ICosIC53eXNpd3lnIHVsLm5vLWxpc3QgPiAqLCAud3lzaXd5Zy10d29fY29sdW1uIHVsLm5vLWxpc3QgPiAqIHsKIG1hcmdpbjogMDsKfQoubGVmdC10eHQgewogdGV4dC1hbGlnbjogbGVmdDsKfQoucmlnaHQtdHh0IHsKIHRleHQtYWxpZ246IHJpZ2h0Owp9Ci5uYXYtaWNvbl9saXN0IHsKIGJhY2tncm91bmQ6IHVybCgnL2Fzc2V0cy9pbWFnZXMvaWNvbnMvbmF2LWljb24tLWxpc3QuanBnJykgbm8tcmVwZWF0Owp9Ci5uYXYtaWNvbl9zaW5nbGUgewogYmFja2dyb3VuZDogdXJsKCcvYXNzZXRzL2ltYWdlcy9pY29ucy9uYXYtaWNvbi0tc2luZ2xlLmpwZycpIG5vLXJlcGVhdDsKfQoubmF2LWljb25fZ3JpZCB7CiBiYWNrZ3JvdW5kOiB1cmwoJy9hc3NldHMvaW1hZ2VzL2ljb25zL25hdi1pY29uLS1ncmlkLmpwZycpIG5vLXJlcGVhdDsKfQoubmF2LWljb25fbGlzdCwgLm5hdi1pY29uX3NpbmdsZSwgLm5hdi1pY29uX2dyaWQgewogZGlzcGxheTogYmxvY2s7CiB3aWR0aDogMTNweDsKIGhlaWdodDogMTVweDsKIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKfQoubmF2LWljb25fbGlzdDpob3ZlciwgLm5hdi1pY29uX3NpbmdsZTpob3ZlciwgLm5hdi1pY29uX2dyaWQ6aG92ZXIgewogb3BhY2l0eTogLjU7Cn0KLmhvbWUtc2lkZWJhcl9pdGVtIGxpIHsKIG1hcmdpbi1ib3R0b206IDA7Cn0KLmhvbWUtY2FsbG91dC1jb250YWluZXIgPiBkaXYgewogbWFyZ2luOiAyZW0gMDsKfQouaG9tZS1jYWxsb3V0LWNvbnRhaW5lciA+IGRpdjpmaXJzdC1jaGlsZCB7CiBtYXJnaW46IDAKfQouaG9tZS1jYWxsb3V0LWNvbnRhaW5lciA+IGRpdjpsYXN0LWNoaWxkIHsKIGJvcmRlcjogbm9uZQp9Ci5ob21lLWNhbGxvdXQtY29udGFpbmVyID4gZGl2IHA6bGFzdC1jaGlsZCB7CiBtYXJnaW4tYm90dG9tOiAwCn0KLmhvbWUtY2FsbG91dC1jb250YWluZXIgPiBkaXYgLm1lZGlhLWNvbnRhaW5lciArIHA6bGFzdC1jaGlsZCB7CiBwYWRkaW5nLWJvdHRvbTogMWVtOwp9CgoubGFuZGluZy1hcmNoaXZlIHsKIGZsZXgtd3JhcDogd3JhcDsKIC13ZWJraXQtZmxleC13cmFwOiB3cmFwOwogLW1zLWZsZXgtd3JhcDogd3JhcDsKIC1tcy1mbGV4LXBhY2s6IGp1c3RpZnk7CiAtd2Via2l0LWJveC1wYWNrOiBqdXN0aWZ5OwogICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiB3aWR0aDogMTAwJTsKfQoubGFuZGluZy1hcmNoaXZlX2FydGljbGUgewogZmxleC1iYXNpczogNDclOwogLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IDQ3JTsKIHdpZHRoOiA0NyU7CiBtYXJnaW4tYm90dG9tOiAyLjA4M2VtCn0KLmxhbmRpbmctYXJjaGl2ZV9maWd1cmUgewogbWFyZ2luLWJvdHRvbTogLjgzM2VtCn0KLmxhbmRpbmctYXJjaGl2ZV9pbWcgewogd2lkdGg6IDEwMCU7CiBoZWlnaHQ6IGF1dG8KfQoubGFuZGluZy1hcmNoaXZlX2hlYWRlciB7CiBmb250LWZhbWlseTogICdIZWx2ZXRpY2EgTmV1ZSBMaWdodCcsICdIZWx2ZXRpY2EgTmV1ZScsICdIZWx2ZXRpY2EgTmV1ZSBlVGV4dCBQcm8nLCAnSGVsdmV0aWNhTmV1ZUxUUHJvLUx0JywgJ0hlbHZldGljYU5ldWUtTGlnaHQnLCBIZWx2ZXRpY2EgTmV1ZSwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjsKIGZvbnQtc2l6ZTogMWVtOwogbGV0dGVyLXNwYWNpbmc6IC4wNDJlbTsKIG1hcmdpbi1ib3R0b206IC40MTdlbTsKIHRleHQtc2hhZG93OiBub25lOwogY29sb3I6ICMzNjM2MzYKfQoubGFuZGluZy1hcmNoaXZlX2NvcHkgewogbWFyZ2luLWJvdHRvbTogMS42NjdlbTsKIGNvbG9yOiAjMzYzNjM2OwogZm9udC1zaXplOiAxZW07CiBsaW5lLWhlaWdodDogMS42ZW0KfQoubGFuZGluZy1hcmNoaXZlX21vcmUgewogbWFyZ2luLWJvdHRvbTogMDsKIGNvbG9yOiAjMzYzNjM2OwogZm9udC1zaXplOiAxZW07CiBsaW5lLWhlaWdodDogMS42ZW0KfQoud2lkZSAubGFuZGluZy1hcmNoaXZlX2FydGljbGUgewogZmxleC1iYXNpczogMTAwJTsKIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiAxMDAlOwogLW1zLWZsZXgtcGFjazoganVzdGlmeTsKIC13ZWJraXQtYm94LXBhY2s6IGp1c3RpZnk7CiAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbgp9Ci53aWRlIC5sYW5kaW5nLWFyY2hpdmVfYXJ0aWNsZSAubGFuZGluZy1hcmNoaXZlX2ZpZ3VyZSB7CiBmbGV4LWJhc2lzOiAzOCU7CiAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogMzglOwogd2lkdGg6IDM4JQp9Ci53aWRlIC5sYW5kaW5nLWFyY2hpdmVfYXJ0aWNsZSAubGFuZGluZy1hcmNoaXZlX2ltZyB7CiBwb3NpdGlvbjogcmVsYXRpdmUKfQoud2lkZSAubGFuZGluZy1hcmNoaXZlX2FydGljbGUgLmxhbmRpbmctYXJjaGl2ZV9jb250ZW50IHsKIGZsZXgtYmFzaXM6IDU4JTsKIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiA1OCU7CiB3aWR0aDogNTglCn0KLnBhZ2VfdGl0bGUgewogZm9udC13ZWlnaHQ6IDYwMDsKIGNvbG9yOiAjMWIxYjFiOwogZm9udC1mYW1pbHk6ICdTb3VyY2UgU2FucyBQcm8nLCBTb3VyY2UgU2FucyBQcm8sIFNvdXJjZSBTYW5zLCAnT3BlbiBTYW5zJywgT3BlbiBTYW5zLCBBcmlhbCwgc2Fucy1zZXJpZiAhaW1wb3J0YW50OwogZm9udC1zaXplOiAyLjFlbTsKIGxpbmUtaGVpZ2h0OiAyLjJlbTsKIHRleHQtdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7CiBtYXJnaW46IDIwcHggMCAxMHB4IDA7CiBwYWRkaW5nOiAwOwp9CiNtYWluQ29udGVudCB7CiBwYWRkaW5nLWxlZnQ6IDA7CiBwYWRkaW5nLXJpZ2h0OiAwCn0KLmxvYWRpbmdDb250YWluZXIgewogZGlzcGxheTogbm9uZTsKIHBvc2l0aW9uOiBmaXhlZDsKIHdpZHRoOiAxMDAlOwogaGVpZ2h0OiBhdXRvOwogdG9wOiAwOwogbGVmdDogMDsKIHotaW5kZXg6IDE7Cn0KLmxvYWRpbmdTcGlubmVyIHsKIHBvc2l0aW9uOiBmaXhlZDsKIHRvcDogNTAlOwogbGVmdDogNTAlOwogbWFyZ2luOiAtNXB4IDAgMCAtNjhweDsKIHotaW5kZXg6IDI7Cn0KLmxvYWRpbmdDb250YWluZXIgLmxvYWRpbmdNZXNzYWdlIHsKIG1pbi13aWR0aDogNTBweDsKIG1heC13aWR0aDogMTAwcHg7CiB0ZXh0LWFsaWduOiBjZW50ZXI7CiBmb250LXNpemU6IDJlbTsKIGNvbG9yOiAjZmZmOwogZm9udC13ZWlnaHQ6IDUwMDsKIHBvc2l0aW9uOiBhYnNvbHV0ZTsKIHRvcDogNTAlOwogbGVmdDogNTAlOwogbWFyZ2luLXRvcDogMTNweDsKIG1hcmdpbi1sZWZ0OiAtMTc1cHg7CiB0ZXh0LXNoYWRvdzogbm9uZTsKfQoucGFnaW5nLWNvbnRhaW5lciB7CiBtYXJnaW4tYm90dG9tOiAxNXB4Owp9CiNNYWluQ29udGVudF91cExpc3Qgewogd2lkdGg6IDEwMCU7Cn0KCkBtZWRpYShtaW4td2lkdGg6NjQxcHgpIHsKLmV2ZW50LWl0ZW0gLnJlc2VydmUtLWJ1dHRvbiB7CiBtYXgtd2lkdGg6IDEwMCU7Cn0KfQouZXZlbnQtY29udGVudCB7CiBtYXJnaW4tYm90dG9tOiAxMHB4Cn0KLmNoZWNrTGlzdCB7CiBwYWRkaW5nLXRvcDogMWVtOwogcGFkZGluZy1ib3R0b206IDFlbQp9Ci5jaGVja0xpc3QgaW5wdXQsIC5jaGVja0xpc3QgbGFiZWwgewogZGlzcGxheTogaW5saW5lLWJsb2NrCn0KLm5ldy0tY3JlZGl0LS1jYXJkID4gZGl2IHsKIHBhZGRpbmctdG9wOiAuNWVtCn0KLm5ldy0tY3JlZGl0LS1jYXJkID4gZGl2IC5yb3cgPiBkaXYgewogZGlzcGxheTogaW5saW5lCn0KLmNhcmQtbGluZSB7CiBtYXJnaW4tYm90dG9tOiAxMHB4Cn0KLnNhdmVkLWNhcmQgewogdmVydGljYWwtYWxpZ246IHRvcAp9Ci5yZW1vdmUtY2FyZCB7CiBtYXJnaW4tbGVmdDogMTBweAp9Ci5hZGQtY2FyZCB7CiBtYXJnaW4tdG9wOiAxMHB4Cn0KLmJvcmRlci1zcGFjZSB7CiBwYWRkaW5nLWJvdHRvbTogMWVtCn0KLndoaXRlc3BhY2UtLWFib3ZlIHsKIHBhZGRpbmctdG9wOiAyZW0KfQouYm9yZGVyLS13aGl0ZXNwYWNlLS1hYm92ZSB7CiBib3JkZXItdG9wOiAxcHggc29saWQgIzM2MzYzNjsKIG1hcmdpbi10b3A6IDJlbTsKIHBhZGRpbmctdG9wOiAxZW07Cn0KCkBtZWRpYShtYXgtd2lkdGg6OTI1cHgpIHsKLm1vYmlsZS0tYm9yZGVyLS13aGl0ZXNwYWNlLS1hYm92ZSB7CiBib3JkZXItdG9wOiAxcHggc29saWQgIzM2MzYzNjsKIG1hcmdpbi10b3A6IDJlbTsKIHBhZGRpbmctdG9wOiAxZW07Cn0KfQoucmlnaHRSZWdpc3RlciwgLmxlZnRDb2wsIC5yaWdodENvbCwgLmNlcnQtZGVzaWduLWltYWdlcyB7CiBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiBtYXJnaW4tcmlnaHQ6IDIwcHg7CiBtYXJnaW4tYm90dG9tOiAyMHB4Cn0KLmxlZnRDb2wgewogd2lkdGg6IDMwJTsKIG1hcmdpbi1yaWdodDogMTBweAp9Ci5yaWdodENvbCB7CiB3aWR0aDogNjUlCn0KLmNvbnRlbnQtLXRleHQgewogbWF4LXdpZHRoOiA5ODBweAp9Ci5jb250ZW50LS10ZXh0IHAgewogbWFyZ2luOiAwOwp9Ci50ZXh0Ym94LS1idXR0b24gewogdmVydGljYWwtYWxpZ246IHRvcDsKfQouc2Nyb2xsLXRleHRib3ggewogaGVpZ2h0OiAyMDBweDsKfQoqIHsKIHBvaW50ZXItZXZlbnRzOiBmaWxsOwp9Ci5wZXJmLXVuYXZhaWxhYmxlIH4gLnByb21vTWVzc2FnZSB7CiBkaXNwbGF5OiBub25lOwp9CmNhbnZhcyB7CiB3aWR0aDogMTAwJTsKIHBvc2l0aW9uOiBhYnNvbHV0ZTsKIHRvcDogMDsKIGxlZnQ6IDA7CiBoZWlnaHQ6IGF1dG87CiAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50OwogY3Vyc29yOiBtb3ZlOwp9CiNjb25mbGljdE9wdGlvbnMgewogbWFyZ2luLWJvdHRvbTogMS42NjdlbTsKIGRpc3BsYXk6IC1tcy1mbGV4Ym94OwogZGlzcGxheTogLXdlYmtpdC1ib3g7CiBkaXNwbGF5OiBmbGV4OwogLW1zLWZsZXgtZGlyZWN0aW9uOiByb3c7CiAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7CiAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDsKICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKIC1tcy1mbGV4LXBhY2s6IGp1c3RpZnk7CiAtd2Via2l0LWJveC1wYWNrOiBqdXN0aWZ5OwogICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAtbXMtZmxleC13cmFwOiB3cmFwOwogZmxleC13cmFwOiB3cmFwCn0KCkBtZWRpYShtYXgtd2lkdGg6NjQwcHgpIHsKI2NvbmZsaWN0T3B0aW9ucyA+IGRpdiB7CiBtYXJnaW46IDVweAp9Cn0KI21haW5Db250ZW50ID4gZm9ybSB7CiBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiB3aWR0aDogMTAwJTsKfQoKLnZpc3VhbGx5LWhpZGRlbiB7CiBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDsKIGNsaXA6IHJlY3QoMXB4IDFweCAxcHggMXB4KTsKIGNsaXA6IHJlY3QoMXB4LCAxcHgsIDFweCwgMXB4KTsKIHBhZGRpbmc6IDAgIWltcG9ydGFudDsKIGJvcmRlcjogMCAhaW1wb3J0YW50OwogaGVpZ2h0OiAxcHggIWltcG9ydGFudDsKIHdpZHRoOiAxcHggIWltcG9ydGFudDsKIG92ZXJmbG93OiBoaWRkZW47Cn0KLm93bC1jYXJvdXNlbCAuYW5pbWF0ZWQgewogLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDEwMDBtczsKICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxMDAwbXM7CiAtd2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7CiAgICAgICAgIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGgKfQoub3dsLWNhcm91c2VsIC5vd2wtYW5pbWF0ZWQtaW4gewogei1pbmRleDogMDsKfQoub3dsLWNhcm91c2VsIC5vd2wtYW5pbWF0ZWQtb3V0IHsKIHotaW5kZXg6IDE7Cn0KLm93bC1jYXJvdXNlbCAuZmFkZU91dCB7CiAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0OwogICAgICAgICBhbmltYXRpb24tbmFtZTogZmFkZU91dDsKfQpALXdlYmtpdC1rZXlmcmFtZXMgZmFkZU91dCB7CjAlIHsKb3BhY2l0eTogMTsKfQoxMDAlIHsKb3BhY2l0eTogMDsKfQp9CkBrZXlmcmFtZXMgZmFkZU91dCB7CjAlIHsKb3BhY2l0eTogMTsKfQoxMDAlIHsKb3BhY2l0eTogMDsKfQp9Ci5vd2wtaGVpZ2h0IHsKIC13ZWJraXQtdHJhbnNpdGlvbjogaGVpZ2h0IDUwMG1zIGVhc2UtaW4tb3V0OwogLW8tdHJhbnNpdGlvbjogaGVpZ2h0IDUwMG1zIGVhc2UtaW4tb3V0OwogdHJhbnNpdGlvbjogaGVpZ2h0IDUwMG1zIGVhc2UtaW4tb3V0Owp9Ci5vd2wtY2Fyb3VzZWwgewogZGlzcGxheTogbm9uZTsKIHdpZHRoOiAxMDAlOwogLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDsKIHBvc2l0aW9uOiByZWxhdGl2ZTsKIHotaW5kZXg6IDE7CmhlaWdodDogYXV0bzsgLyogY2hhbmdlZCBmcm9tIDUwMHB4ICovCn0KLm93bC1jYXJvdXNlbCAub3dsLXN0YWdlIHsKIHBvc2l0aW9uOiByZWxhdGl2ZTsKIC1tcy10b3VjaC1hY3Rpb246IHBhbi1ZCn0KLm93bC1jYXJvdXNlbCAub3dsLXN0YWdlOmFmdGVyIHsKIGNvbnRlbnQ6ICcuJzsKIGRpc3BsYXk6IGJsb2NrOwogY2xlYXI6IGJvdGg7CiB2aXNpYmlsaXR5OiBoaWRkZW47CiBsaW5lLWhlaWdodDogMDsKIGhlaWdodDogMAp9Ci5vd2wtY2Fyb3VzZWwgLm93bC1zdGFnZS1vdXRlciB7CiBwb3NpdGlvbjogcmVsYXRpdmU7CiBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7CiAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCkKfQoub3dsLWNhcm91c2VsIC5vd2wtY29udHJvbHMgLm93bC1uYXYgLm93bC1wcmV2LCAub3dsLWNhcm91c2VsIC5vd2wtY29udHJvbHMgLm93bC1uYXYgLm93bC1uZXh0LCAub3dsLWNhcm91c2VsIC5vd2wtY29udHJvbHMgLm93bC1kb3QgewogY3Vyc29yOiBwb2ludGVyOwogLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsKIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7CiAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7CiB1c2VyLXNlbGVjdDogbm9uZQp9Ci5vd2wtY2Fyb3VzZWwub3dsLWxvYWRlZCB7CiBkaXNwbGF5OiBibG9jazsKfQoub3dsLWNhcm91c2VsLm93bC1sb2FkaW5nIHsKIG9wYWNpdHk6IDA7CiBkaXNwbGF5OiBibG9jazsKfQoub3dsLWNhcm91c2VsLm93bC1oaWRkZW4gewogb3BhY2l0eTogMDsKfQoub3dsLWNhcm91c2VsIC5vd2wtcmVmcmVzaCAub3dsLWl0ZW0gewogZGlzcGxheTogbm9uZTsKfQoub3dsLWNhcm91c2VsIC5vd2wtaXRlbSB7CiBwb3NpdGlvbjogcmVsYXRpdmU7CiBtaW4taGVpZ2h0OiAxcHg7CiBmbG9hdDogbGVmdDsKIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOwogLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDsKIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTsKIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CiAtbW96LXVzZXItc2VsZWN0OiBub25lOwogLW1zLXVzZXItc2VsZWN0OiBub25lOwogdXNlci1zZWxlY3Q6IG5vbmU7Cn0KLm93bC1jYXJvdXNlbCAub3dsLWl0ZW0gaW1nIHsKIGRpc3BsYXk6IGJsb2NrOwogLXdlYmtpdC10cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkOwp9Ci5vd2wtY2Fyb3VzZWwub3dsLXRleHQtc2VsZWN0LW9uIC5vd2wtaXRlbSB7CiAtd2Via2l0LXVzZXItc2VsZWN0OiBhdXRvOwogLW1vei11c2VyLXNlbGVjdDogYXV0bzsKIC1tcy11c2VyLXNlbGVjdDogYXV0bzsKIHVzZXItc2VsZWN0OiBhdXRvOwp9Ci5vd2wtY2Fyb3VzZWwgLm93bC1ncmFiIHsKIGN1cnNvcjogbW92ZTsKIGN1cnNvcjogLW8tZ3JhYjsKIGN1cnNvcjogLW1zLWdyYWI7CiBjdXJzb3I6IC13ZWJraXQtZ3JhYjsKIGN1cnNvcjogZ3JhYjsKfQoub3dsLWNhcm91c2VsLm93bC1ydGwgewogZGlyZWN0aW9uOiBydGwKfQoub3dsLWNhcm91c2VsLm93bC1ydGwgLm93bC1pdGVtIHsKIGZsb2F0OiByaWdodAp9Ci5uby1qcyAub3dsLWNhcm91c2VsIHsKIGRpc3BsYXk6IGJsb2NrCn0KLm93bC1jYXJvdXNlbCAub3dsLWl0ZW0gLm93bC1sYXp5IHsKIG9wYWNpdHk6IDA7CiAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMzAwbXMgZWFzZTsKIC1vLXRyYW5zaXRpb246IG9wYWNpdHkgMzAwbXMgZWFzZTsKIHRyYW5zaXRpb246IG9wYWNpdHkgMzAwbXMgZWFzZQp9Ci5vd2wtY2Fyb3VzZWwgLm93bC1pdGVtIGltZyB7CiAtd2Via2l0LXRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7CiAgICAgICAgIHRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2QKfQoub3dsLWNhcm91c2VsIC5vd2wtdmlkZW8td3JhcHBlciB7CiBwb3NpdGlvbjogcmVsYXRpdmU7CiB3aWR0aDogMTAwJTsKIGhlaWdodDogYXV0bzsKIGJhY2tncm91bmQ6ICMzNjM2MzYKfQoub3dsLWNhcm91c2VsIC5vd2wtdmlkZW8tcGxheS1pY29uIHsKIHBvc2l0aW9uOiBhYnNvbHV0ZTsKIGhlaWdodDogODBweDsKIHdpZHRoOiA4MHB4OwogbGVmdDogNTAlOwogdG9wOiA1MCU7CiBtYXJnaW4tbGVmdDogLTQwcHg7CiBtYXJnaW4tdG9wOiAtNDBweDsKIGJhY2tncm91bmQ6ICMzNjM2MzY7ICAvKiByZW1vdmVkIHVybCgnb3dsLnZpZGVvLnBsYXkucG5nJykgbm8tcmVwZWF0ICovCiBjdXJzb3I6IHBvaW50ZXI7CiB6LWluZGV4OiAxOwogLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47CiAtd2Via2l0LXRyYW5zaXRpb246IHNjYWxlIDEwMG1zIGVhc2U7CiAtby10cmFuc2l0aW9uOiBzY2FsZSAxMDBtcyBlYXNlOwogdHJhbnNpdGlvbjogc2NhbGUgMTAwbXMgZWFzZQp9Ci5vd2wtY2Fyb3VzZWwgLm93bC12aWRlby1wbGF5LWljb246aG92ZXIgewogLXdlYmtpdC10cmFuc2l0aW9uOiBzY2FsZSgxLjMsIDEuMyk7CiAtby10cmFuc2l0aW9uOiBzY2FsZSgxLjMsIDEuMyk7CiB0cmFuc2l0aW9uOiBzY2FsZSgxLjMsIDEuMyk7Cn0KLm93bC1jYXJvdXNlbCAub3dsLXZpZGVvLXBsYXlpbmcgLm93bC12aWRlby10biwgLm93bC1jYXJvdXNlbCAub3dsLXZpZGVvLXBsYXlpbmcgLm93bC12aWRlby1wbGF5LWljb24gewogZGlzcGxheTogbm9uZTsKfQoub3dsLWNhcm91c2VsIC5vd2wtdmlkZW8tdG4gewogb3BhY2l0eTogMDsKIGhlaWdodDogYXV0bzsKIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7CiBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OwogYmFja2dyb3VuZC1zaXplOiBjb250YWluOwogLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDMwMG1zIGVhc2U7CiAtby10cmFuc2l0aW9uOiBvcGFjaXR5IDMwMG1zIGVhc2U7CiB0cmFuc2l0aW9uOiBvcGFjaXR5IDMwMG1zIGVhc2U7Cn0KLm93bC1jYXJvdXNlbCAub3dsLXZpZGVvLWZyYW1lIHsKIHBvc2l0aW9uOiByZWxhdGl2ZTsKIHotaW5kZXg6IDE7Cn0KLmNhcm91c2VsIHsKIHBvc2l0aW9uOiByZWxhdGl2ZTsKIGRpc3BsYXk6IG5vbmU7Cn0KLmNhcm91c2VsLS1ibG9jayAuaXRlbSB7CiBtYXJnaW46IDA7Cn0KLmNhcm91c2VsLWhvbWVwYWdlIHsKIG1hcmdpbi1ib3R0b206IDEuOGVtOwp9Ci5jYXJvdXNlbC1jb250YWluZXIgewogb3ZlcmZsb3c6IGhpZGRlbjsKIHBvc2l0aW9uOiByZWxhdGl2ZTsKIHdpZHRoOiAxMDAlOwogbWFyZ2luOiAwOwpwYWRkaW5nOiAwOwogaGVpZ2h0OiBhdXRvOwp9Ci5jYXJvdXNlbC1jb250YWluZXI6YmVmb3JlIHsKIGNvbnRlbnQ6ICcnOwogZGlzcGxheTogaW5saW5lLWJsb2NrOwogcGFkZGluZy1ib3R0b206IDA7ICAvKiBjaGFuZ2VkIDEwLTMgLSB3YXMgMzUuNiUgKi8KfQouY2Fyb3VzZWwtY29udGFpbmVyIC5jYXJvdXNlbCB7CiBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiB2ZXJ0aWNhbC1hbGlnbjogdG9wOwogdmlzaWJpbGl0eTogaGlkZGVuOwogaGVpZ2h0OiAwOwp9Ci5jYXJvdXNlbC1jb250YWluZXIgLmNhcm91c2VsLm93bC1sb2FkZWQgewogdmlzaWJpbGl0eTogdmlzaWJsZTsKIGhlaWdodDogYXV0bzsKfQouY2Fyb3VzZWwtbG9hZGluZyB7CiBwb3NpdGlvbjogYWJzb2x1dGU7CiB0b3A6IDUwJTsKIGxlZnQ6IDUwJTsKIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKTsKICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKTsKIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSk7CiAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpOwp9Ci5pZTEwIC5jYXJvdXNlbC1jb250YWluZXI6YmVmb3JlIHsKIGRpc3BsYXk6IG5vbmU7Cn0KCi5vd2wtcHJldiB7CiBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDA7CiBwb3NpdGlvbjogYWJzb2x1dGU7CiBsZWZ0OiAxMnB4Owp9Ci5vd2wtbmV4dCB7CiBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAwOwogcG9zaXRpb246IGFic29sdXRlOwogcmlnaHQ6IDEycHg7Cn0KLm93bC1kb3RzIHsKIGRpc3BsYXk6IGJsb2NrOwogcG9zaXRpb246IGFic29sdXRlOwogbGVmdDogMzMuMzMzJTsKIHJpZ2h0OiAzMy4zMzMlOwogYm90dG9tOiAuOWVtOwogei1pbmRleDogMjA7CiBvcGFjaXR5OiA4MCU7Cn0KLm93bC1kb3QgewogYmFja2dyb3VuZDogI2NjYzsKIGRpc3BsYXk6IGlubGluZS1ibG9jazsKIGhlaWdodDogLjZlbTsKIG1hcmdpbjogMCAuNmVtOwogd2lkdGg6IC42ZW07CiBvcGFjaXR5OiA4MCU7Cn0KLm93bC1kb3Q6aG92ZXIsIG93bC1kb3Q6Zm9jdXMgewogYmFja2dyb3VuZDogI2VlZTsKIG9wYWNpdHk6IDgwJTsKfQoub3dsLWRvdC5hY3RpdmUgewogYmFja2dyb3VuZDogI2ZmZjsKIG9wYWNpdHk6IDEwMCU7Cn0KLnByb21vLWl0ZW0gLm93bC1wcmV2IHsKIGJhY2tncm91bmQ6IHVybCgnL2Fzc2V0cy9pbWFnZXMvaWNvbnMvcHJvbW9fYXJyb3dfbGVmdC5wbmcnKSBuby1yZXBlYXQ7CiB3aWR0aDogMjVweDsKIGhlaWdodDogMjhweDsKIHBvc2l0aW9uOiBhYnNvbHV0ZTsKIGxlZnQ6IDEwcHg7CiB0b3A6IDUyJTsKfQoucHJvbW8taXRlbSAub3dsLW5leHQgewogYmFja2dyb3VuZDogdXJsKCcvYXNzZXRzL2ltYWdlcy9pY29ucy9wcm9tb19hcnJvd19yaWdodC5wbmcnKSBuby1yZXBlYXQ7CiB3aWR0aDogMjVweDsKIGhlaWdodDogMjhweDsKIHBvc2l0aW9uOiBhYnNvbHV0ZTsKIHJpZ2h0OiAxMHB4OwogdG9wOiA1MiU7Cn0KLm93bC1sb2FkZWQgaW1nIHsKIGRpc3BsYXk6IGJsb2NrOwp9IAoKCi8qIE9XTCBDYXJvdXNlbCBTdHlsZXMgKi8gCkBtZWRpYShtaW4td2lkdGg6IDkyNnB4KSB7Ci5vd2wtcHJldiwgLm93bC1uZXh0IHsKIGJhY2tncm91bmQ6IHVybCgnL2dsb2JhbGFzc2V0cy9jYXJvdXNlbF9hcnJvd3MtdHJhbnMucG5nJykgbm8tcmVwZWF0Owogd2lkdGg6IDM2cHg7CiBoZWlnaHQ6IDM2cHg7CiBjb2xvcjogdHJhbnNwYXJlbnQ7CiB0b3A6IDQ4JTsKfSAKLm93bC1wcmV2IHsKIGJhY2tncm91bmQtcG9zaXRpb246IDAgMDsKIHBvc2l0aW9uOiBhYnNvbHV0ZTsKIGxlZnQ6IDEycHg7Cn0KLm93bC1uZXh0IHsKIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IDA7CiBwb3NpdGlvbjogYWJzb2x1dGU7CiByaWdodDogMTJweDsKfQp9IApAbWVkaWEobWF4LXdpZHRoOiA5MjVweCkgewoub3dsLXByZXYsIC5vd2wtbmV4dCB7CiBiYWNrZ3JvdW5kOiB1cmwoJy9nbG9iYWxhc3NldHMvY2Fyb3VzZWxfYXJyb3dzLXRyYW5zLTI0LnBuZycpIG5vLXJlcGVhdDsKIHdpZHRoOiAyNHB4OwogaGVpZ2h0OiAyNHB4OwogY29sb3I6IHRyYW5zcGFyZW50OwogdG9wOiA0NiU7Cn0gCi5vd2wtcHJldiB7CiBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDA7CiBwb3NpdGlvbjogYWJzb2x1dGU7CiBsZWZ0OiAxMHB4Owp9Ci5vd2wtbmV4dCB7CiBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjRweCAwOwogcG9zaXRpb246IGFic29sdXRlOwogcmlnaHQ6IDEwcHg7Cn0KfQoKCi5oZXJvLWltYWdlIHsKIHdpZHRoOiAxMDAlOwptYXgtd2lkdGg6IDEwMCU7CiBtYXJnaW46IDA7CiBwYWRkaW5nOiAwOwogIC13ZWJraXQtYm94LXNoYWRvdzogMCAwIDRweCAjYmJiOwogICAgICAgICBib3gtc2hhZG93OiAwIDAgNHB4ICNiYmI7Cn0KLnBhZ2VyLWl0ZW0uYWN0aXZlOmFmdGVyLCAubm8tdG91Y2ggLnBhZ2VyLWl0ZW06aG92ZXI6YWZ0ZXIgewogcG9zaXRpb246IGFic29sdXRlOwogYm90dG9tOiAxcHg7CiBoZWlnaHQ6IDNweDsKIGJhY2tncm91bmQtY29sb3I6ICNiMjIyMjI7CiB3aWR0aDogMTAwJTsKIGxlZnQ6IDAKfQoucGFnZXIgewogLW1zLWZsZXgtcGFjazogY2VudGVyOwogLXdlYmtpdC1ib3gtcGFjazogY2VudGVyOwogICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKIHdpZHRoOiAxMDAlOwogdGV4dC1hbGlnbjogY2VudGVyOwogYmFja2dyb3VuZC1jb2xvcjogIzM2MzYzNgp9Ci5wYWdlci1pdGVtIHsKIHBvc2l0aW9uOiByZWxhdGl2ZTsKIHBhZGRpbmc6IC42ZW0gMDsKIG1hcmdpbjogMAp9Ci5wYWdlci1pdGVtLmFjdGl2ZTphZnRlciB7CiBjb250ZW50OiAnJwp9Ci5wYWdlci1saW5rIHsKIGZvbnQtc2l6ZTogMWVtOwogcGFkZGluZzogMCAuNWVtOwogLyogcmVtb3ZlZCB1cHBlcmNhc2UgdHJhbnNmb3JtICovCiB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiBjb2xvcjogI2IyMjIyMjsKIGZvbnQtd2VpZ2h0OiA1MDA7CiBmb250LWZhbWlseTogICdIZWx2ZXRpY2EgTmV1ZSBMaWdodCcsICdIZWx2ZXRpY2EgTmV1ZScsICdIZWx2ZXRpY2EgTmV1ZSBlVGV4dCBQcm8nLCAnSGVsdmV0aWNhTmV1ZUxUUHJvLUx0JywgJ0hlbHZldGljYU5ldWUtTGlnaHQnLCBIZWx2ZXRpY2EgTmV1ZSwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjsKIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkCn0KLnBhZ2VyLWxpbmsuZGlzYWJsZWQgewogY29sb3I6ICNjY2MgIWltcG9ydGFudDsKIGN1cnNvcjogZGVmYXVsdDsKfQoubm8tdG91Y2ggLnBhZ2VyLWl0ZW06aG92ZXI6YWZ0ZXIgewogY29udGVudDogJycKfQoubm8tdG91Y2ggLnBhZ2VyLWl0ZW0uZGlzYWJsZWQ6aG92ZXI6YWZ0ZXIgewogZGlzcGxheTogbm9uZQp9Ci5uby10b3VjaCAucGFnZXItbGluazpob3ZlciB7CiBjb2xvcjogI2ZmZgp9Ci8qIEFjY29yZGlvbiBzdHlsZXMgKi8KLmFjY29yZGlvbiB7CiBtYXJnaW46IDJlbSAwOwogLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgNnB4IHJnYmEoMTUwLCAxNTAsIDE1MCwgLjgpOwogICAgICAgICBib3gtc2hhZG93OiAwIDAgNnB4IHJnYmEoMTUwLCAxNTAsIDE1MCwgLjgpCn0KLmFjY29yZGlvbi0taGVhZGVyIHsKIHBvc2l0aW9uOiByZWxhdGl2ZTsKIHBhZGRpbmc6IC4zM2VtIDNlbTsKIG1hcmdpbi1ib3R0b206IC4xZW07CiBiYWNrZ3JvdW5kOiAjZmFmYWZhOwogY29sb3I6ICMzNjM2MzY7CiBmb250LXdlaWdodDogNTAwOwogZm9udC1mYW1pbHk6ICdTb3VyY2UgU2FucyBQcm8nLCBTb3VyY2UgU2FucyBQcm8sIFNvdXJjZSBTYW5zLCAnT3BlbiBTYW5zJywgT3BlbiBTYW5zLCBBcmlhbCwgc2Fucy1zZXJpZjsKIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7CiAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsKIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKIGN1cnNvcjogcG9pbnRlcjsKfQouYWNjb3JkaW9uLS1oZWFkZXI6aG92ZXIgewogdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7Cn0KLmFjY29yZGlvbi0taGVhZGVyOmJlZm9yZSB7CiBkaXNwbGF5OiBibG9jazsKIGZvbnQtZmFtaWx5OiAnR2x5cGhpY29ucyBIYWxmbGluZ3MnOwogY29udGVudDogJ1xlMTE0JzsKIC8qIGNvbnRlbnQ6ICdcZTA4MCc7ICovCiBwb3NpdGlvbjogYWJzb2x1dGU7CiB0b3A6IC40NGVtOwogbGVmdDogMS40NGVtOwogYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiB3aWR0aDogMTJweDsKIGhlaWdodDogMTJweDsKfQouYWNjb3JkaW9uLS1jb250ZW50IHsKIHBhZGRpbmc6IDEuMjVlbTsKfQoudWktc3RhdGUtYWN0aXZlIHsKIGJhY2tncm91bmQ6ICNiMjIyMjI7CiBjb2xvcjogI2ZmZjsKIHRleHQtZGVjb3JhdGlvbjogbm9uZQp9Ci51aS1zdGF0ZS1hY3RpdmU6YmVmb3JlIHsKIGRpc3BsYXk6IG5vbmUKfQouc2ltcGxlTW9kYWwgewogYm9yZGVyLXN0eWxlOiBzb2xpZDsKIGJvcmRlci1jb2xvcjogIzM2MzYzNjsKIGJvcmRlci13aWR0aDogMXB4IDFweCA1cHg7CiBwYWRkaW5nOiAuNWVtOwogYmFja2dyb3VuZDogI2ZmZgp9Ci5zaW1wbGVNb2RhbCAuZW1haWwtcmV0cmlldmUgewogbWFyZ2luOiAxMHB4Cn0KLnNpbXBsZU1vZGFsIGEgewogYmFja2dyb3VuZDogI2IyMjIyMjsKIGNvbG9yOiAjZmZmOwp0ZXh0LXRyYW5zZm9ybTogbm9uZTsKIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKIHRleHQtc2hhZG93OiBub25lOwogcGFkZGluZzogLjVlbSAxZW07CiBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7CiBib3JkZXItc3R5bGU6IG5vbmU7CiBtaW4td2lkdGg6IDhlbTsKIGhlaWdodDogMi41ZW07CiBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KYm9keSB7CiBjb3VudGVyLXJlc2V0OiBjYWxlbmRhci1ncmlkLWNvdW50Owp9Ci5jYWxlbmRhci1kb3dubG9hZCB7CiBib3JkZXI6IDA7CiBiYWNrZ3JvdW5kLWNvbG9yOiAjYjIyMjIyOwogdGV4dC1hbGlnbjogbGVmdDsKIHBhZGRpbmc6IDJweCAxMXB4Owp9Ci5jYWxlbmRhci1kb3dubG9hZCBhIHsKIGNvbG9yOiAjZmZmOwp9Ci5jb25jZXJ0LXR5cGUtaWNvbiB7CiBib3JkZXItcmFkaXVzOiA1MCU7CiB3aWR0aDogOHB4OwogaGVpZ2h0OiA4cHg7CiB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwogZGlzcGxheTogaW5saW5lLWJsb2NrOwogbWFyZ2luLXRvcDogLTNweDsKIGJhY2tncm91bmQtY29sb3I6IGF0dHIoZGF0YS1jb2xvcik7Cn0KLmNvbmNlcnQtdHlwZS1pY29uLnBlcmZvcm1hbmNlLWtleSB7CiBtYXJnaW4tcmlnaHQ6IDVweDsKfQoKQG1lZGlhKG1heC13aWR0aDo2NDBweCkgewouaG9tZS1wYWdlLWNhbGVuZGFyLm1vYmlsZS1jYWxlbmRhciB7CiBkaXNwbGF5OiBub25lOwp9Ci5kZXNrdG9wLWNhbGVuZGFyIHsKIGRpc3BsYXk6IG5vbmU7Cn0KfQoKLmxvYWRpbmcgewogcG9zaXRpb246IGFic29sdXRlOwogaGVpZ2h0OiAxMDAlOwogd2lkdGg6IDEwMCU7CiB6LWluZGV4OiAxMDsKIGJhY2tncm91bmQtY29sb3I6ICNmZmY7CiBvcGFjaXR5OiAuNzsKIHRvcDogMDsKIGxlZnQ6IDAKfQoucGFnaW5hdGlvbi1jb250cm9scyB7CiB0ZXh0LWFsaWduOiByaWdodAp9Ci5wYWdpbmF0aW9uLXN3aXRjaCB7CiBkaXNwbGF5OiBpbmxpbmU7CiBtYXJnaW4tcmlnaHQ6IDEwcHgKfQoucGFnaW5hdGlvbi1zd2l0Y2ggLnByZXYgewogbWFyZ2luLXJpZ2h0OiA1cHgKfQoucGFnaW5hdGlvbi1zd2l0Y2ggLm5leHQgewogbWFyZ2luLWxlZnQ6IDVweAp9Ci5wYWdpbmF0aW9uLXNvcnQgewogZGlzcGxheTogaW5saW5lOwogbWFyZ2luLXJpZ2h0OiAxMHB4Cn0KLnBhZ2luYXRpb24gLnBhZ2VzIHsKIGRpc3BsYXk6IGlubGluZQp9Ci5wYWdpbmF0aW9uIC5wZXItcGFnZSB7CiBkaXNwbGF5OiBpbmxpbmUKfQoucGFnZS1zZWxlY3RvciB7CiBtYXJnaW4tcmlnaHQ6IDEwcHgKfQoucGFnZS1zZWxlY3Rvci1lbGxpcHNpcyB7CiBtYXJnaW4tbGVmdDogNXB4OwogbWFyZ2luLXJpZ2h0OiA1cHgKfQoucGFnZS1zZWxlY3Rvci1jdXJyZW50LXBhZ2UgewogbWFyZ2luLXJpZ2h0OiAxMHB4OwogY29sb3I6ICNiMjIyMjI7CiB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZQp9Ci5wYWdlcyBhOmxhc3Qtb2YtdHlwZSB7CiBtYXJnaW4tcmlnaHQ6IDAKfQouY2FsbG91dCB7CiBtYXJnaW46IDJlbSAwOwogcGFkZGluZzogMDsKfQouY2FsbG91dC10aXRsZSwgLmNhbGxvdXQtdGl0bGUgaDIsIC5yZW5ld2Fscy1lZGl0IGgzIHsKIGZvbnQtc2l6ZTogMS44ZW07CiBtYXJnaW4tYm90dG9tOiAxLjFlbTsKIGZvbnQtZmFtaWx5OiAnU291cmNlIFNhbnMgUHJvJywgU291cmNlIFNhbnMgUHJvLCBTb3VyY2UgU2FucywgJ09wZW4gU2FucycsIE9wZW4gU2FucywgQXJpYWwsIHNhbnMtc2VyaWY7CiAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOwogLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7CiBmb250LXdlaWdodDogNjAwOwp9Ci5jYWxsb3V0LTRjb2wsIC5jYWxsb3V0LTJjb2wsIC5jYWxsb3V0LTNjb2wgewogd2lkdGg6IDEwMCU7CiBtYXJnaW46IDFlbSAwICFpbXBvcnRhbnQ7CiBmbGV4LXdyYXA6IHdyYXA7CiAtd2Via2l0LWZsZXgtd3JhcDogd3JhcDsKIC1tcy1mbGV4LXdyYXA6IHdyYXA7CiAtbXMtZmxleC1wYWNrOiBqdXN0aWZ5OwogLXdlYmtpdC1ib3gtcGFjazoganVzdGlmeTsKICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuCn0KLmNhbGxvdXQtNGNvbCA+ICosIC5jYWxsb3V0LTJjb2wgPiAqLCAuY2FsbG91dC0zY29sID4gKiB7CiBwYWRkaW5nLWJvdHRvbTogLjg1ZW07CiBtYXJnaW4tYm90dG9tOiAwCn0KLmNhbGxvdXQtNGNvbCBpbWcsIC5jYWxsb3V0LTJjb2wgaW1nLCAuY2FsbG91dC0zY29sIGltZyB7CiB3aWR0aDogMTAwJTsKIGhlaWdodDogYXV0bzsKfQouY2FsbG91dC0yY29sX2l0ZW0gewogZmxleC1iYXNpczogNDglOwogLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IDQ4JTsKIHdpZHRoOiA0OCU7Cn0KLmNhbGxvdXQtM2NvbF9pdGVtIHsKIGZsZXgtYmFzaXM6IDMzLjMzMzMlOwogLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IDMzLjMzMzMlOwogd2lkdGg6IDMzLjMzMzMlOwp9Ci5jYWxsb3V0LTJjb2xfbWVkaWEgewogcGFkZGluZy1ib3R0b206IDQ4JTsKfQouY2FsbG91dC0zY29sX21lZGlhIHsKIHBhZGRpbmctYm90dG9tOiAzMy4zMzMlOwp9Ci5jYWxsb3V0LTNjb2xfaXRlbSB7CiBmbGV4LWJhc2lzOiAzMy4zMzMlOwogLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IDMzLjMzMyU7Cn0KLmNhbGxvdXQtMmNvbF90ZXh0LXRpdGxlLCAuY2FsbG91dC0zY29sX3RleHQtdGl0bGUgewogZm9udC13ZWlnaHQ6IDUwMDsKfQouY2FsbG91dC00Y29sX2l0ZW0gewogZmxleC1iYXNpczogMjMlOwogLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IDIzJTsKfQouY2FsbG91dC00Y29sX3RleHQsIC5jYWxsb3V0LTNjb2xfdGV4dCB7CiBmb250LXNpemU6IDFlbTsKIG1hcmdpbi10b3A6IC4zZW07Cn0KLmNhbGxvdXQtNGNvbF90ZXh0IGEsIC5jYWxsb3V0LTNjb2xfdGV4dCBhIHsKIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwp9Ci53eXNpd3lnLXR3b19jb2x1bW4gcCB7CiAtd2Via2l0LWNvbHVtbi1jb3VudDogMjsKICAgIC1tb3otY29sdW1uLWNvdW50OiAyOwogICAgICAgICBjb2x1bW4tY291bnQ6IDIKfQoud3lzaXd5ZyB1bCwgLnd5c2l3eWctdHdvX2NvbHVtbiB1bCB7CiBwYWRkaW5nOiAwIDFlbSAxZW0gMmVtOwogbGlzdC1zdHlsZTogZGlzYzsKfQpkaXYud3lzaXd5Zy5ibG9jayB7IAptYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDsKcGFkZGluZy10b3A6IDA7Cm1hcmdpbi10b3A6IDIwcHg7IC8qIGFkZGVkIDEwLTEgKi8gCn0KCmRpdi53eXNpd3lnID4gcCB7IApwYWRkaW5nOiAxZW07Cn0KCi8qIDMgQ09MVU1OIEdSSUQgU1lTVEVNICovCgovKiBwYWRkaW5nIG92ZXIgZmlyc3QgZ3JpZHogdGl0bGUgLSBob21lcGFnZSBiYW5uZXIgKi8KLmdyaWR6LTRjb2wtd3JhcHBlciA+IGgxOm50aC1jaGlsZCgxKSB7CiBwYWRkaW5nLXRvcDogMjBweDsKfQoKLmdyaWR6LTNjb2wtd3JhcHBlciA+ICogewogLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94Owp9Ci5ncmlkei0zY29sLW1haW4gewogbWF4LXdpZHRoOiAxMTk4cHg7CiBtYXJnaW46IDAgYXV0bzsgLyogY2hhbmdlZCAtIGFkZGVkIGF1dG8gLSB3YXMgMTBweCBhdXRvIFRIRU4ganVzdCAwICovCiBwYWRkaW5nOiAwOwogd2lkdGg6IDEwMCU7CiBkaXNwbGF5OiAtbXMtZ3JpZDsKIGRpc3BsYXk6IGdyaWQ7CiAvKiBEZWZpbmUgQXV0byBSb3cgc2l6ZSAtIGhlaWdodCAqLwogZ3JpZC1hdXRvLXJvd3M6IDMwMHB4OwogLypEZWZpbmUgb3VyIGNvbHVtbnMgKi8KIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDMyMHB4LCAxZnIpKTsKIGdyaWQtZ2FwOiAyMHB4Owp9Ci5ncmlkei0zY29sLWNvbnRlbnQgewogYm9yZGVyLXJhZGl1czogMDsKIG1hcmdpbjogMDsKIHBhZGRpbmc6IDA7CiB0ZXh0LWFsaWduOiBsZWZ0OyAKfQouZ3JpZHotM2NvbC1jb250ZW50Om50aC1jaGlsZChvZGQpIHsKLyogaW4gY2FzZSBvZGQgYm94ZXMgbmVlZCB0byBiZSB0YXJnZXRlZCAqLwp9Ci5ncmlkei0zY29sLWNvbnRlbnQ6bnRoLWNoaWxkKGV2ZW4pIHsKLyogaW4gY2FzZSBldmVuIGJveGVzIG5lZWQgdG8gYmUgdGFyZ2V0ZWQgKi8KfQouZ3JpZHotM2NvbC1jb250ZW50ID4gcCB7CiBwYWRkaW5nOiAxMHB4IDEwcHggNXB4IDJweDsKIG1hcmdpbjogMnB4Owp9Ci8qIEVORCAzIENPTFVNTiBHUklEIFNZU1RFTSAqLwoKLyogNCBDT0xVTU4gR1JJRCAqLwouZ3JpZHotNGNvbC13cmFwcGVyID4gKiB7CiAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7Cn0KLmdyaWR6LTRjb2wtbWFpbiB7CiBtYXgtd2lkdGg6IDExOThweDsKIG1hcmdpbjogMCBhdXRvOyAvKiBjaGFuZ2VkIC0gc2FtZSBhcyBhYm92ZSAqLwogcGFkZGluZzogMDsKIHdpZHRoOiAxMDAlOwogbWluLXdpZHRoOiAxMDAlOwogaGVpZ2h0OiBhdXRvOyAvKiBJRSBmaXg/ICovIAogbWluLWhlaWdodDogMjAwcHg7IC8qIElFIGZpeD8gKi8KIGRpc3BsYXk6IC1tcy1ncmlkOwogZGlzcGxheTogZ3JpZDsKIGdyaWQtYXV0by1yb3dzOiAzNjBweDsKIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDI4MHB4LCAxZnIpKTsKIGdyaWQtZ2FwOiAxNHB4Owp9Ci5ncmlkei00Y29sLWNvbnRlbnQgewogYm9yZGVyLXJhZGl1czogMDsKIHBhZGRpbmc6IDJweCA1cHggMzBweCAxcHg7CiBtYXJnaW46IDAgYXV0bzsKIHRleHQtYWxpZ246IGxlZnQ7CiB2ZXJ0aWNhbC1hbGlnbjogdGV4dC10b3A7CiAgd2lkdGg6IDEwMCU7CiAgbWF4LXdpZHRoOiAxMDAlOwogaGVpZ2h0OiBhdXRvOyAvKiBJRSBmaXg/ICovIAogbWluLWhlaWdodDogMzYwcHg7IC8qIElFIGZpeD8gKi8KfQouZ3JpZHotNGNvbC1jb250ZW50Om50aC1jaGlsZChvZGQpIHsKLyogaW4gY2FzZSBvZGQgYm94ZXMgbmVlZCB0byBiZSB0YXJnZXRlZCAqLwp9Ci5ncmlkei00Y29sLWNvbnRlbnQ6bnRoLWNoaWxkKGV2ZW4pIHsKLyogaW4gY2FzZSBldmVuIGJveGVzIG5lZWQgdG8gYmUgdGFyZ2V0ZWQgKi8KfQouZ3JpZHotNGNvbC1jb250ZW50ID4gcCB7CiBwYWRkaW5nOiAxcHg7IAogbWFyZ2luOiAwIGF1dG87CiAgaGVpZ2h0OiBhdXRvOyAvKiBJRSBmaXg/ICovIAogbWluLWhlaWdodDogODBweDsKICB0ZXh0LWFsaWduOiBsZWZ0OwogICAgd2lkdGg6IDEwMCU7CiAgbWluLXdpZHRoOiAxMDAlOwogIG1heC13aWR0aDogMzAwcHg7Cn0KLyogRU5EIDQgQ09MVU1OIEdSSUQgKi8KCgovKiBTVEFSVCBJTUFHRUJPWCBTVFlMRVMgKi8KLmltYWdlLWJveC1jb250YWluZXIgewogLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94OwogYm94LXNpemluZzogYm9yZGVyLWJveDsKIG1hcmdpbjogMXB4OwogcGFkZGluZzogMXB4OwogbWluLXdpZHRoOiAxMDAlOyAKIHRleHQtYWxpZ246IGxlZnQ7IAp9Ci5pbWFnZS1ib3ggewogLyogcmVtb3ZlZCBwb3NpdGlvbjogcmVsYXRpdmU7ICovIAogbWFyZ2luOiAwIGF1dG87IAogb3ZlcmZsb3c6IGhpZGRlbjsKIG1heC13aWR0aDogMTAwJTsKIHdpZHRoOiA0MDBweDsKIHBhZGRpbmc6IDA7CiB0ZXh0LWFsaWduOiBsZWZ0OyAKICBtYXgtaGVpZ2h0OiAzMDBweDsKICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgNHB4ICNiYmI7CiAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDRweCAjYmJiOwp9Ci5pbWFnZS1ib3ggaW1nIHsKIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuM3M7CiAtby10cmFuc2l0aW9uOiBhbGwgMC4zczsKIHRyYW5zaXRpb246IGFsbCAwLjNzOwogZGlzcGxheTogaW5saW5lLWJsb2NrOwogd2lkdGg6IDEwMCU7CiBoZWlnaHQ6IGF1dG87CiAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7CiAgICAgLW1zLXRyYW5zZm9ybTogc2NhbGUoMSk7CiAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7CiBwYWRkaW5nOiAwOwogbWFyZ2luOiAwOwogdGV4dC1hbGlnbjogbGVmdDsgCn0KLmltYWdlLWJveDpob3ZlciBpbWcgewogLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEuMSk7CiAgICAgLW1zLXRyYW5zZm9ybTogc2NhbGUoMS4xKTsKICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpOwp9Ci5pbWFnZS1ib3gtYiB7CiBwb3NpdGlvbjogcmVsYXRpdmU7CiBtYXJnaW46IDAgYXV0bzsgCiBwYWRkaW5nOiAwOwogZGlzcGxheTogaW5saW5lLWJsb2NrOwogb3ZlcmZsb3c6IGhpZGRlbjsKIHdpZHRoOiAxMDAlOwogbWF4LXdpZHRoOiA1NzBweDsKIGhlaWdodDogYXV0bzsKICBtYXgtaGVpZ2h0OiAzMDBweDsKIHRleHQtYWxpZ246IGxlZnQ7CiAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAwIDRweCAjYmJiOwogICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCA0cHggI2JiYjsKfQouaW1hZ2UtYm94LWIgaW1nIHsKIG1heC13aWR0aDogNTcwcHg7CiAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjNzOwogLW8tdHJhbnNpdGlvbjogYWxsIDAuM3M7CiB0cmFuc2l0aW9uOiBhbGwgMC4zczsKIGRpc3BsYXk6IGlubGluZS1ibG9jazsKIHdpZHRoOiAxMDAlOwogaGVpZ2h0OiBhdXRvOwogbWFyZ2luOiAwOwogcGFkZGluZzogMDsKIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTsKICAgICAtbXMtdHJhbnNmb3JtOiBzY2FsZSgxKTsKICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTsKfQouaW1hZ2UtYm94LWI6aG92ZXIgaW1nIHsKIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLjEpOwogICAgIC1tcy10cmFuc2Zvcm06IHNjYWxlKDEuMSk7CiAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTsKfQouaW1hZ2UtYm94LWMgewogcG9zaXRpb246IHJlbGF0aXZlOwogbWFyZ2luOiAwIGF1dG87IAogcGFkZGluZzogMDsKIGRpc3BsYXk6IGlubGluZS1ibG9jazsKIG92ZXJmbG93OiBoaWRkZW47CiB3aWR0aDogMTAwJTsKIG1heC13aWR0aDogMjgwcHg7CiAgbWF4LWhlaWdodDogMzAwcHg7CiBoZWlnaHQ6IGF1dG87CiB0ZXh0LWFsaWduOiBsZWZ0OwogICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCA0cHggI2JiYjsKICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgNHB4ICNiYmI7Cn0KLmltYWdlLWJveC1jIGltZyB7CiBtYXgtd2lkdGg6IDMwMHB4OwogLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4zczsKIC1vLXRyYW5zaXRpb246IGFsbCAwLjNzOwogdHJhbnNpdGlvbjogYWxsIDAuM3M7CiBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiB3aWR0aDogMTAwJTsKIGhlaWdodDogYXV0bzsKIG1hcmdpbjogMDsKIHBhZGRpbmc6IDA7CiAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7CiAgICAgLW1zLXRyYW5zZm9ybTogc2NhbGUoMSk7CiAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7Cn0KLmltYWdlLWJveC1jOmhvdmVyIGltZyB7CiAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS4xKTsKICAgICAtbXMtdHJhbnNmb3JtOiBzY2FsZSgxLjEpOwogICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7Cn0KCgpAbWVkaWEobWF4LXdpZHRoOiA0ODBweCkgewouaW1hZ2UtYm94LWMgewogbWF4LXdpZHRoOiAxMDAlOwp9Ci5pbWFnZS1ib3gtYyBpbWcgewogbWF4LXdpZHRoOiAxMDAlOwp9Cgp9Ci8qIEVORCBJTUFHRUJPWCBTVFlMRVMgKi8KCi5tYWluIC5zb2NpYWwtYmxvY2sgewogbWF4LXdpZHRoOiAzMGVtOwogdGV4dC1hbGlnbjogbGVmdDsKfQouc29jaWFsLWljb24gewogdGV4dC1hbGlnbjogcmlnaHQ7CiBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiBiYWNrZ3JvdW5kLXNpemU6IDEwMCU7CiBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0Owp9Ci5zb2NpYWwtaWNvbjpob3ZlciB7CiBjb2xvcjogI2ZmZjsKfQouc29jaWFsLWZiLW1kIHsKIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnL2dsb2JhbGFzc2V0cy9zb2NpYWwvaWNvbi1mYWNlYm9vay5wbmcnKTsKIHdpZHRoOiAzMnB4OwogaGVpZ2h0OiAzMnB4Owp9Ci5zb2NpYWwtZmItbWQ6aG92ZXIgewogY29sb3I6ICNmZmY7Cn0KLnNvY2lhbC10dy1tZCB7CiBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy9nbG9iYWxhc3NldHMvc29jaWFsL2ljb24tdHdpdHRlci5wbmcnKTsKIHdpZHRoOiAzMnB4OwogaGVpZ2h0OiAzMnB4Cn0KLnNvY2lhbC15dC1tZCB7CiBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy9nbG9iYWxhc3NldHMvc29jaWFsL2ljb24teW91dHViZS5wbmcnKTsKIHdpZHRoOiAzMnB4OwogaGVpZ2h0OiAzMnB4Owp9Ci5zb2NpYWwtaW5zdC1tZCB7CiBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy9nbG9iYWxhc3NldHMvc29jaWFsL2ljb24taW5zdGFncmFtLnBuZycpOwogd2lkdGg6IDMycHg7CiBoZWlnaHQ6IDMycHg7Cn0KLnNvY2lhbC1zYy1tZCB7CiBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy9nbG9iYWxhc3NldHMvc29jaWFsL2ljb24tc291bmRjbG91ZC5wbmcnKTsKIHdpZHRoOiAzMnB4OwogaGVpZ2h0OiAzMnB4Owp9Ci5zb2NpYWwtbGlua2VkaW4tbWQgewogYmFja2dyb3VuZC1pbWFnZTogdXJsKCcvZ2xvYmFsYXNzZXRzL3NvY2lhbC9pY29uLWxpbmtlZGluLnBuZycpOwogd2lkdGg6IDMycHg7CiBoZWlnaHQ6IDMycHg7Cn0KLnNvY2lhbC1zcG90aWZ5LW1kIHsKIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnL2dsb2JhbGFzc2V0cy9zb2NpYWwvaWNvbi1zcG90aWZ5LnBuZycpOwogd2lkdGg6IDMycHg7CiBoZWlnaHQ6IDMycHg7Cn0KLnNvY2lhbC1zbmFwLW1kIHsKIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnL2dsb2JhbGFzc2V0cy9zb2NpYWwvaWNvbi1zbmFwY2hhdC5wbmcnKTsKIHdpZHRoOiAzMnB4OwogaGVpZ2h0OiAzMnB4Owp9Ci5zb2NpYWwtcnNzLW1kIHsKIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnL2dsb2JhbGFzc2V0cy9zb2NpYWwvaWNvbi1yc3MucG5nJyk7CiB3aWR0aDogMzJweDsKIGhlaWdodDogMzJweDsKfQouc29jaWFsLWNhbGVuZGFyLW1kIHsKIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnL2dsb2JhbGFzc2V0cy9zb2NpYWwvaWNvbi1jYWxlbmRhci5wbmcnKTsKIHdpZHRoOiAzMnB4OwogaGVpZ2h0OiAzMnB4Owp9Ci5zb2NpYWwtc2hhcmUgewogcG9zaXRpb246IHJlbGF0aXZlOwogdGV4dC1hbGlnbjogcmlnaHQ7Cn0KLnNvY2lhbC1zaGFyZSB1bCB7CiBwb3NpdGlvbjogYWJzb2x1dGU7CiB0b3A6IC00MHB4OwogcmlnaHQ6IDRweDsKIG9wYWNpdHk6IDUwOwp9Ci5zb2NpYWwtc2hhcmUgYSB7CiBwYWRkaW5nOiAxNXB4Owp9Ci5zb2NpYWwtc2hhcmUgYTpob3ZlciB1bCB7CiBkaXNwbGF5OiBibG9jazsKIG9wYWNpdHk6IDE7Cn0KCgouYmxvY2sgewogLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgNnB4IHJnYmEoMTUwLCAxNTAsIDE1MCwgLjgpOwogICAgICAgICBib3gtc2hhZG93OiAwIDAgNnB4IHJnYmEoMTUwLCAxNTAsIDE1MCwgLjgpOwogcGFkZGluZy1ib3R0b206IDFlbTsKIG1hcmdpbi1ib3R0b206IDIuN2VtOwp9Ci5ibG9jayA+ICogewogcGFkZGluZzogMCAxZW07Cn0KLmJsb2NrLXRpdGxlLCAuYmxvY2stdGl0bGUtc3Ryb25nIHsKIGJhY2tncm91bmQ6ICNlZWUgIWltcG9ydGFudDsKIGZvbnQtc2l6ZTogMS41ZW07CiBtYXJnaW46IDAgMCAxZW0gMDsKIHBhZGRpbmc6IDFlbTsKIGNvbG9yOiAjMzYzNjM2OwogIGZvbnQtd2VpZ2h0OiA1MDA7Cn0KLmJsb2NrLXRvcC0tdGl0bGUgewogcG9zaXRpb246IHJlbGF0aXZlOwogZGlzcGxheTogYmxvY2s7CiBjb2xvcjogIzM2MzYzNjsKICBmb250LXNpemU6IDEuNWVtOwogbGluZS1oZWlnaHQ6IDFlbTsKIHdpZHRoOiAxMDAlOwogYmFja2dyb3VuZDogI2VlZTsKfQouYmxvY2stdG9wLS1pbm5lciB7CiAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCA2cHggcmdiYSgxNTAsIDE1MCwgMTUwLCAuOCk7CiAgICAgICAgIGJveC1zaGFkb3c6IDAgMCA2cHggcmdiYSgxNTAsIDE1MCwgMTUwLCAuOCkKfQouYmxvY2stZXZlbnQgewogbWFyZ2luOiAxZW0gMDsKfQouYmxvY2stZXZlbnQtLXRpdGxlIHsKIGNvbG9yOiAjMzYzNjM2OwogcGFkZGluZy1ib3R0b206IC4wNmVtOwogbWFyZ2luLWJvdHRvbTogMWVtOwogYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMzNjM2MzY7Cn0KLmJsb2NrLW1haW4gewogbWFyZ2luOiAxZW0gMDsKfQoubmV3c2ZlZWQtYmxvY2stLWl0ZW0gewogbWFyZ2luLWJvdHRvbTogLjY2NmVtCn0KLm5ld3NmZWVkLWJsb2NrLS1pdGVtID4gKiB7CiBtYXJnaW46IDA7CiBwYWRkaW5nOiAwOwp9Ci5uZXdzZmVlZC1ibG9jay0tbW9yZWxpbmsgewogbWFyZ2luOiAxZW0gMCAxZW0gMDsKIGRpc3BsYXk6IGJsb2NrOwp9Ci5uZXdzZmVlZC1ibG9jay0tdGl0bGUgewogZm9udC13ZWlnaHQ6IDYwMDsKfQouYmxvY2stZGFyay0tdGl0bGUgewogcG9zaXRpb246IHJlbGF0aXZlOwogZGlzcGxheTogYmxvY2s7CiBjb2xvcjogIzM2MzYzNjsKIG1hcmdpbjogMDsKIGZvbnQtc2l6ZTogMS41ZW07CiBsaW5lLWhlaWdodDogMWVtOwogd2lkdGg6IDEwMCU7CiBiYWNrZ3JvdW5kOiAjZWVlOwogcGFkZGluZzogLjY2ZW0gMWVtCn0KLmJsb2NrLWRhcmstLWlubmVyIHsKIHBhZGRpbmc6IDFlbTsKIC13ZWJraXQtYm94LXNoYWRvdzogMCAwIDZweCByZ2JhKDE1MCwgMTUwLCAxNTAsIC44KTsKICAgICAgICAgYm94LXNoYWRvdzogMCAwIDZweCByZ2JhKDE1MCwgMTUwLCAxNTAsIC44KQp9Ci5pZTExIC5ibG9jay10b3AtLXRpdGxlOmFmdGVyLCAuaWUxMCAuYmxvY2stdG9wLS10aXRsZTphZnRlciB7CiB0b3A6IC00cHg7CiB3aWR0aDogNzAlOwp9Ci5wcm9tby1pdGVtIHsKIG1hcmdpbi1yaWdodDogMSU7CiBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiB3aWR0aDogMTAlOwp9Ci5wcm9tby1pdGVtIC5pdGVtLWxpbmsgewogZGlzcGxheTogYmxvY2s7CiAvKiByZW1vdmVkIHVwcGVyY2FzZSB0cmFuc2Zvcm0gKi8KIHBvc2l0aW9uOiBhYnNvbHV0ZTsKIHRvcDogNTAlOwogcmlnaHQ6IDI1JTsKIGNvbG9yOiAjZmZmOwp9Ci5wcm9tby1pdGVtOmhvdmVyIC5pdGVtLWxpbmsgewogY29sb3I6ICMzNjM2MzY7Cn0KLnByb21vLWl0ZW0gaW1nIHsKIHdpZHRoOiAxMDAlOwogaGVpZ2h0OiBhdXRvOwp9Ci5wcm9tbzpsYXN0LWNoaWxkIHsKIG1hcmdpbi1yaWdodDogMDsKfQoucHJvbW8taXRlbS5jYXJvdXNlbCB7CiB3aWR0aDogMzIlOwp9Ci5wcm9tby1pdGVtLm93bC1jYXJvdXNlbC5vd2wtbG9hZGVkIHsKIGRpc3BsYXk6IGlubGluZS1ibG9jazsKfQouZXZlbnQtbGlzdC0tYmxvY2sgewogYm9yZGVyOiAxcHggc29saWQgI2NjYzsKIHBhZGRpbmc6IDE1cHg7CiBtYXJnaW46IDVweCAwIDE1cHggMDsKfQouZXZlbnQtbGlzdC0tYmxvY2stY29sIHsKIHdpZHRoOiA1MCU7CiBwYWRkaW5nLXJpZ2h0OiAxZW07Cn0KaDEuZXZlbnQtbGlzdC0tdGl0bGUgewpmb250LXNpemU6IDEuNmVtOwp9CgpAbWVkaWEobWF4LXdpZHRoOjY0MHB4KSB7Ci5ldmVudC1saXN0LS1ibG9jay1jb2wgewogcGFkZGluZy1yaWdodDogMDsKfQp9Ci5ldmVudC1saXN0LS1ibG9jay1jb2wgKyAuZXZlbnQtbGlzdC0tYmxvY2stY29sIHsKIHBhZGRpbmctbGVmdDogMS42NjdlbTsKIHBhZGRpbmctcmlnaHQ6IDA7Cn0KCkBtZWRpYShtYXgtd2lkdGg6NjQwcHgpIHsKLmV2ZW50LWxpc3QtLWJsb2NrLWNvbCArIC5ldmVudC1saXN0LS1ibG9jay1jb2wgewogcGFkZGluZy1sZWZ0OiAwOwogcGFkZGluZy10b3A6IDFlbTsKfQp9Ci5ldmVudC1saXN0LS1ibG9jay1jb2wgPiBwIHsKIG1hcmdpbjogMDsKIHBhZGRpbmc6IDA7Cn0KLmV2ZW50LWxpc3QtLXRpdGxlIHsKIGZvbnQtd2VpZ2h0OiA2MDA7CiBmb250LWZhbWlseTogJ1NvdXJjZSBTYW5zIFBybycsIFNvdXJjZSBTYW5zIFBybywgU291cmNlIFNhbnMsICdPcGVuIFNhbnMnLCBPcGVuIFNhbnMsIEFyaWFsLCBzYW5zLXNlcmlmOwogLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsKIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOwogZm9udC1zaXplOiAxLjZlbTsKIG1hcmdpbjogMDsKd2lkdGg6IDEwMCU7Cn0KLmV2ZW50LWxpc3QtLWltZy13cmFwIHsKIHBvc2l0aW9uOiByZWxhdGl2ZTsKIG1hcmdpbi10b3A6IDFlbTsKfQouZXZlbnQtbGlzdC0taW1nLXdyYXAgaW1nIHsKIHdpZHRoOiAxMDAlOwogaGVpZ2h0OiBhdXRvOwp9Ci5ldmVudC1saXN0LS1kYXRlIHsKIHBvc2l0aW9uOiBhYnNvbHV0ZTsKIHJpZ2h0OiAwOwogYm90dG9tOiAtMmVtOwp9Ci5ldmVudC1saXN0LS1kZXRhaWxzIHsKIHBhZGRpbmc6IDFlbSAwOwp9Ci5ldmVudC1saXN0LS1kZXRhaWxzIGgzIHsKIG1hcmdpbi1ib3R0b206IC40NDRlbTsKIGZvbnQtd2VpZ2h0OiA2MDA7CiAvKiByZW1vdmVkIHVwcGVyY2FzZSB0cmFuc2Zvcm0gKi8KIGZvbnQtZmFtaWx5OiAnU291cmNlIFNhbnMgUHJvJywgU291cmNlIFNhbnMgUHJvLCBTb3VyY2UgU2FucywgJ09wZW4gU2FucycsIE9wZW4gU2FucywgQXJpYWwsIHNhbnMtc2VyaWY7CiAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOwogLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7Cn0KLmV2ZW50LWxpc3QtLWRldGFpbHMgaDQgewogZm9udC13ZWlnaHQ6IDYwMDsKIHBhZGRpbmc6IDA7CiBtYXJnaW46IDA7CiB0ZXh0LXRyYW5zZm9ybTogbm9uZTsKIGZvbnQtZmFtaWx5OiAnU291cmNlIFNhbnMgUHJvJywgU291cmNlIFNhbnMgUHJvLCBTb3VyY2UgU2FucywgJ09wZW4gU2FucycsIE9wZW4gU2FucywgQXJpYWwsIHNhbnMtc2VyaWY7CiAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOwogLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7Cn0KLmV2ZW50LWxpc3QtLWRldGFpbHMgc3BhbiB7CiBmb250LXdlaWdodDogbm9ybWFsOwp9CgpAbWVkaWEobWluLXdpZHRoOjY0MXB4KSB7Ci5ldmVudC1saXN0LS1kZXRhaWxzLWNyZWRpdHMgewogZGlzcGxheTogLW1zLWZsZXhib3g7CiBkaXNwbGF5OiAtd2Via2l0LWJveDsKIGRpc3BsYXk6IGZsZXg7CiAtbXMtZmxleC1wYWNrOiBqdXN0aWZ5OwogLXdlYmtpdC1ib3gtcGFjazoganVzdGlmeTsKICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwp9Cn0KCkBtZWRpYShtaW4td2lkdGg6NjQxcHgpIHsKLmV2ZW50LWxpc3QtLWRldGFpbHMtY3JlZGl0cy1zZWN0aW9uIHsKIHdpZHRoOiA1MCU7Cn0KfQoKLnJpY2gtdGV4dC10d28tY29sdW1uIHsKIGRpc3BsYXk6IC1tcy1mbGV4Ym94OwogZGlzcGxheTogLXdlYmtpdC1ib3g7CiBkaXNwbGF5OiBmbGV4OwogLW1zLWZsZXgtZGlyZWN0aW9uOiByb3c7CiAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7CiAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDsKICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKfQoucmljaC10ZXh0LXR3by1jb2x1bW4gPiBkaXYgewogLW1zLWZsZXg6IDEgMSBhdXRvOwogLXdlYmtpdC1ib3gtZmxleDogMTsKICBmbGV4OiAxIDEgYXV0bzsKfQoucmljaC10ZXh0LXR3by1jb2x1bW4gPiBkaXY6Zmlyc3QtY2hpbGQgPiBkaXYgewogcGFkZGluZy1yaWdodDogMTVweDsKfQoKCkBtZWRpYShtYXgtd2lkdGg6OTI1cHgpIHsKYm9keSB7CiBmb250LXNpemU6IDFlbTsKfQoubC1sZWZ0X3NpZGViYXIsIC5sLXJpZ2h0X3NpZGViYXIgewogcGFkZGluZzogMDsKfQoubC1oZWFkZXI6YmVmb3JlIHsKIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKfQoubC1oZWFkZXI6YWZ0ZXIgewogZGlzcGxheTogbm9uZSAhaW1wb3J0YW50Owp9Ci5sLWhlcm8gewptYXJnaW4tdG9wOiA2MHB4OwogdGV4dC1kZWNvcmF0aW9uOiBub25lOwp9Ci5sLWhlcm86YmVmb3JlIHsKIGxlZnQ6IC0uODExZW07Cn0KLmwtbWFpbiB7CiB3aWR0aDogMTAwJTsKfQoubC1tYWluX2xlZnQsIC5sLW1haW5fcmlnaHQgewogLW1zLWZsZXgtb3JkZXI6IDE7CiAtd2Via2l0LWJveC1vcmRpbmFsLWdyb3VwOiAyOwogICAgICAgICBvcmRlcjogMTsKIHdpZHRoOiAxMDAlOwp9Ci5sLXNpZGViYXJfbGVmdCwgLmwtc2lkZWJhcl9yaWdodCB7CiBwYWRkaW5nOiAwOwogLW1zLWZsZXgtb3JkZXI6IDI7CiAtd2Via2l0LWJveC1vcmRpbmFsLWdyb3VwOiAzOwogICAgICAgICBvcmRlcjogMjsKIHdpZHRoOiAxMDAlOwp9Ci5tb2JpbGVfY2FsIHsKICAgIGRpc3BsYXk6IG5vbmU7CiAgfQoubW9iaWxlX2hlYWRlciB7CiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDsKICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OwogICAgZGlzcGxheTogZmxleDsKICB9Ci54Zm9ybSA+ICogewogd2lkdGg6IDEwMCU7CiBkaXNwbGF5OiBibG9jazsKfQouYmxvY2stdG9wIHsKIG1hcmdpbi10b3A6IDA7Cn0KLmJsb2NrLXRvcC0tdGl0bGU6YWZ0ZXIgewogd2lkdGg6IDQwJTsKfQouaWUxMSAuYmxvY2stdG9wLS10aXRsZTphZnRlciwgLmllMTAgLmJsb2NrLXRvcC0tdGl0bGU6YWZ0ZXIgewogZGlzcGxheTogbm9uZTsKfQojbWFpbkNvbnRlbnQgewogbWFyZ2luLXRvcDogMDsKfQp9CgpAbWVkaWEobWF4LXdpZHRoOjY0MHB4KSB7Ci5sLWhlcm86YmVmb3JlIHsKIGRpc3BsYXk6IG5vbmU7Cn0KLmwtaGVybyB7Cm1hcmdpbi10b3A6IDgwcHg7Cn0KLnByb21vLWl0ZW0gewogd2lkdGg6IDMwJQp9Ci5wcm9tby1pdGVtLmNhcm91c2VsIHsKIHdpZHRoOiAxMDAlOwogbWFyZ2luOiAxZW0gMAp9Ci5jYWxsb3V0LTJjb2xfaXRlbSB7CiBmbGV4LWJhc2lzOiAxMDAlOwogLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IDEwMCU7CiB3aWR0aDogMTAwJTsKIG1hcmdpbi10b3A6IDFlbTsKIHBhZGRpbmctcmlnaHQ6IDAKfQouY2FsbG91dC0zY29sX2l0ZW0gewogZmxleC1iYXNpczogMzMuMzMzJTsKIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiAzMy4zMzMlOwogd2lkdGg6IDMzLjMzMyU7CiBtYXJnaW4tdG9wOiAxZW07CiBwYWRkaW5nLXJpZ2h0OiAwCn0KLmNhbGxvdXQtMmNvbF9tZWRpYSB7CiBwYWRkaW5nLWJvdHRvbTogNTEuNSUKfQouY2FsbG91dC00Y29sX2l0ZW0gewogZmxleC1iYXNpczogNDglOwogLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IDQ4JTsKIHdpZHRoOiA0OCUKfQoubGFuZGluZy1jb250ZW50IHsKIGZsZXgtYmFzaXM6IDEwMCU7CiAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogMTAwJTsKIHdpZHRoOiAxMDAlOwogcGFkZGluZzogMjBweCAwIDEwcHggMDsKfQouYmxvY2stdG9wLS10aXRsZTphZnRlciB7CiB3aWR0aDogNjUlCn0KLmZvcm0taW5saW5lIHsKIGRpc3BsYXk6IGJsb2NrCn0KLnhmb3JtIGRpdiB7CiB3aWR0aDogMTAwJTsKfQoubWVkaWEtY29udGFpbmVyLS1mdWwgewogcGFkZGluZy1ib3R0b206IDFlbTsKfQouZXZlbnQtbGlzdC0tYmxvY2stY29sIHsKIHdpZHRoOiAxMDAlOwogZGlzcGxheTogYmxvY2s7CiBwYWRkaW5nOiAwCn0KLmxvZ2luLXBhbmVsX2xhYmVsIHsKIHRleHQtYWxpZ246IGxlZnQ7CiBmb250LXdlaWdodDogNzAwCn0KLmxvZ2luLXBhbmVsX2NvbnRlbnQgewogbWFyZ2luLWJvdHRvbTogMmVtCn0KLmxvZ2luLXBhbmVsX2xhYmVsLCAubG9naW4tcGFuZWxfY29udGVudCB7CiBkaXNwbGF5OiBibG9jazsKIHdpZHRoOiAxMDAlOwp9Ci5zb2NpYWwtc2hhcmUgewogdGV4dC1hbGlnbjogbGVmdAp9Ci5zb2NpYWwtc2hhcmUgYSB7CiBwYWRkaW5nLWxlZnQ6IDA7CiBkaXNwbGF5OiBibG9jawp9Ci5zb2NpYWwtc2hhcmUgdWwgewogdG9wOiA1cHg7CiByaWdodDogaW5pdGlhbDsKIGxlZnQ6IDY1cHgKfQp9CgpAbWVkaWEobWF4LXdpZHRoOjM0MHB4KSB7Ci5ob21lLWhlcm86YmVmb3JlIHsKIGJvcmRlci1ib3R0b206IDFlbSBzb2xpZCAjZmZmOwogYm90dG9tOiAtLjhlbQp9Cn0KLmlubGluZS1ibG9jay1zdHlsZSB7CiBkaXNwbGF5OiBpbmxpbmUtYmxvY2sKfQouZG9uYXRpb24tZGl2aWRlciB7CiBib3JkZXItdG9wOiAxcHggc29saWQgIzM2MzYzNiAhaW1wb3J0YW50OwogaGVpZ2h0OiAxMHB4ICFpbXBvcnRhbnQKfQoubmF2LWRpdmlkZXItZ3JleSB7CiBjb2xvcjogI2NjYzsKIHBvc2l0aW9uOiByZWxhdGl2ZTsKIGZvbnQtc2l6ZTogLjllbTsKIG1hcmdpbi1sZWZ0OiA4cHg7CiBtYXJnaW4tcmlnaHQ6IC01cHg7CiBsaW5lLWhlaWdodDogMHB4OwogZm9udC13ZWlnaHQ6IDEwMDsKIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50Owp9Ci8qIEJ1dHRvbiBzdHlsZXMgKi8KCiAucHJpbWFyeS1zdWJtaXQsIC54Zm9ybSBpbnB1dFt0eXBlPSJzdWJtaXQiXSB7CmJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudChyZ2IoMTg0LCAyNSwgMTcpLCByZ2IoMTg0LCAyNSwgMTcpKTsKbWluLXdpZHRoOiAxMDAlOwp3aWR0aDogMTAwJTsKaGVpZ2h0OiAzOHB4Owp9CiAucHJpbWFyeS1zdWJtaXQ6aG92ZXIsIC54Zm9ybSBpbnB1dFt0eXBlPSJzdWJtaXQiXTpob3ZlciB7CmJhY2tncm91bmQtaW1hZ2U6IG5vbmU7CmJhY2tncm91bmQtY29sb3I6ICMxYjFiMWI7Cn0KCi5wcmltYXJ5LWJ1dHRvbiwgaW5wdXRbdHlwZT0nc3VibWl0J10sIC53cmFwcGluZy0tYnV0dG9uLCAuZGlzYWJsZWQtYnV0dG9uLCAuYnRuLCAuYnRuLXByaW1hcnksIC5idG4tZGVmYXVsdCB7CiBiYWNrZ3JvdW5kLWNvbG9yOiAjYjIyMjIyICFpbXBvcnRhbnQ7CiBjb2xvcjogI2ZmZjsKIGZvbnQtZmFtaWx5OiAgJ0hlbHZldGljYSBOZXVlIExpZ2h0JywgJ0hlbHZldGljYSBOZXVlJywgJ0hlbHZldGljYSBOZXVlIGVUZXh0IFBybycsICdIZWx2ZXRpY2FOZXVlTFRQcm8tTHQnLCAnSGVsdmV0aWNhTmV1ZS1MaWdodCcsIEhlbHZldGljYSBOZXVlLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmOwogLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsKIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOwogdGV4dC1kZWNvcmF0aW9uOiBub25lOwogcGFkZGluZzogLjVlbSAxLjJlbSAuNWVtIDEuMmVtOwogb3V0bGluZTogbm9uZSAhaW1wb3J0YW50OwogYm9yZGVyLXN0eWxlOiBub25lOwogbWluLXdpZHRoOiAzZW07CiBtaW4taGVpZ2h0OiAxLjJlbTsKIGRpc3BsYXk6IGlubGluZS1ibG9jazsKIHRleHQtYWxpZ246IGNlbnRlcjsKIG9wYWNpdHk6IDEwMCU7CiBtYXJnaW46IDEuNWVtIDEuNWVtIDEuNWVtIDA7Cn0KLnByaW1hcnktYnV0dG9uOmhvdmVyLCBpbnB1dFt0eXBlPSdzdWJtaXQnXTpob3ZlciwgLmJ0bjpob3ZlciwgLmJ0bi1wcmltYXJ5OmhvdmVyLCAuYnRuLWRlZmF1bHQ6aG92ZXIgewogYmFja2dyb3VuZC1jb2xvcjogIzFiMWIxYiAhaW1wb3J0YW50OwogY29sb3I6ICNmZmY7CiBvcGFjaXR5OiAxMDAlOwogdGV4dC1kZWNvcmF0aW9uOiBub25lOwp9Ci5wcmltYXJ5LWJ1dHRvbjphY3RpdmUsIGlucHV0W3R5cGU9J3N1Ym1pdCddOmFjdGl2ZSwgLmJ0bjphY3RpdmUsIC5idG4tcHJpbWFyeTphY3RpdmUsIC5idG4tZGVmYXVsdDphY3RpdmUgewogYmFja2dyb3VuZC1jb2xvcjogI2IyMjIyMjsKIGNvbG9yOiAjZmZmOwogb3BhY2l0eTogMTAwJTsKIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKfQoucHJpbWFyeS1idXR0b246dmlzaXRlZCwgaW5wdXRbdHlwZT0nc3VibWl0J106dmlzaXRlZCwgLmJ0bjp2aXNpdGVkLCAuYnRuLXByaW1hcnk6dmlzaXRlZCwgLmJ0bi1kZWZhdWx0OnZpc2l0ZWQgewogYmFja2dyb3VuZC1jb2xvcjogI2IyMjIyMjsKIGNvbG9yOiAjZmZmOwogb3BhY2l0eTogMTAwJTsKIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKfQoucHJpbWFyeS1idXR0b246Y3VycmVudCwgaW5wdXRbdHlwZT0nc3VibWl0J106Y3VycmVudCwgLmJ0bjpjdXJyZW50LCAuYnRuLXByaW1hcnk6Y3VycmVudCwgLmJ0bi1kZWZhdWx0OmN1cnJlbnQgewpiYWNrZ3JvdW5kLWNvbG9yOiAjYjIyMjIyOwpjb2xvcjogI2ZmZjsKb3BhY2l0eTogMTAwJTsKdGV4dC1kZWNvcmF0aW9uOiBub25lOwp9Ci5wcmltYXJ5LWJ1dHRvbjplbmFibGVkLCBpbnB1dFt0eXBlPSdzdWJtaXQnXTplbmFibGVkLCAuYnRuOmVuYWJsZWQsIC5idG4tcHJpbWFyeTplbmFibGVkLCAuYnRuLWRlZmF1bHQ6ZW5hYmxlZCB7CiBiYWNrZ3JvdW5kLWNvbG9yOiAjYjIyMjIyOwogY29sb3I6ICNmZmY7CiBvcGFjaXR5OiAxMDAlOwogdGV4dC1kZWNvcmF0aW9uOiBub25lOwp9Ci5wcmltYXJ5LWJ1dHRvbjptb3VzZWRvd24sIGlucHV0W3R5cGU9J3N1Ym1pdCddOm1vdXNlZG93biwgLmJ0bjptb3VzZWRvd24sIC5idG4tcHJpbWFyeTptb3VzZWRvd24sIC5idG4tZGVmYXVsdDptb3VzZWRvd24gewpiYWNrZ3JvdW5kLWNvbG9yOiAjMWIxYjFiOwpjb2xvcjogI2ZmZjsKb3BhY2l0eTogMTAwJTsKdGV4dC1kZWNvcmF0aW9uOiBub25lOwp9Ci5wcmltYXJ5LWJ1dHRvbjptb3VzZXVwLCBpbnB1dFt0eXBlPSdzdWJtaXQnXTptb3VzZXVwLCAuYnRuOm1vdXNldXAsIC5idG4tcHJpbWFyeTptb3VzZXVwLCAuYnRuLWRlZmF1bHQ6bW91c2V1cCB7CmJhY2tncm91bmQtY29sb3I6ICNiMjIyMjI7CmNvbG9yOiAjZmZmOwpvcGFjaXR5OiAxMDAlOwp0ZXh0LWRlY29yYXRpb246IG5vbmU7Cn0KLnByaW1hcnktYnV0dG9uOmRpc2FibGVkLCBpbnB1dC5kaXNhYmxlZFt0eXBlPSdzdWJtaXQnXSwgLmJ0bjpkaXNhYmxlZCwgLmJ0bi1wcmltYXJ5OmRpc2FibGVkLCAuYnRuLWRlZmF1bHQ6ZGlzYWJsZWQgewogcG9pbnRlci1ldmVudHM6IG5vbmU7CiBjb2xvcjogI2ZmZjsKIGJhY2tncm91bmQtY29sb3I6ICMzNjM2MzY7CiB0ZXh0LWRlY29yYXRpb246IG5vbmU7Cn0KLmRpc2FibGVkLWJ1dHRvbiB7CiBiYWNrZ3JvdW5kLWNvbG9yOiAjMzYzNjM2OwogY29sb3I6ICNmZmY7CiBwb2ludGVyLWV2ZW50czogbm9uZTsKIGN1cnNvcjogZGVmYXVsdDsKIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKfQouc2Vjb25kYXJ5LWJ1dHRvbiwgLnNlY29uZGFyeS1idXR0b246YWN0aXZlLCAuc2Vjb25kYXJ5LWJ1dHRvbjp2aXNpdGVkIHsKIGZvbnQtd2VpZ2h0OiA1MDA7CiBjb2xvcjogI2ZmZjsKIGJvcmRlci1zdHlsZTogbm9uZTsKIHBhZGRpbmc6IDVweDsKIG1hcmdpbi1ib3R0b206IDA7CiBmb250LXNpemU6IDFlbTsKIGJvcmRlci1yYWRpdXM6IDA7CiBjdXJzb3I6IHBvaW50ZXI7CiBiYWNrZ3JvdW5kLWNvbG9yOiAjYjIyMjIyOwogdGV4dC1kZWNvcmF0aW9uOiBub25lOwp9Ci5zZWNvbmRhcnktYnV0dG9uOmhvdmVyLCAuc2Vjb25kYXJ5LWJ1dHRvbjpmb2N1cyB7CiB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiBjb2xvcjogI2ZmZjsKIGJhY2tncm91bmQtY29sb3I6ICMxYjFiMWI7CiB0ZXh0LWRlY29yYXRpb246IG5vbmU7Cn0KLnByaW1hcnktc3VibWl0LCAueGZvcm0gaW5wdXRbdHlwZT0nc3VibWl0J10gewogY29sb3I6ICNmZmY7CiBib3JkZXItc3R5bGU6IG5vbmU7CiBib3JkZXItcmFkaXVzOiAwOwogY3Vyc29yOiBwb2ludGVyOwogZm9udC1zaXplOiAxZW07CiBmb250LXdlaWdodDogNTAwOwogcGFkZGluZzogNXB4OwogYmFja2dyb3VuZC1jb2xvcjogI2IyMjIyMgp9CgovKiBleHBhbmQgdG8gZnVsbCB3aWR0aCBvbiBzbWFsbCBzY3JlZW5zICovIApAbWVkaWEobWF4LXdpZHRoOjY0MHB4KSB7Ci5yaWNoLXRleHQtdHdvLWNvbHVtbiAucHJpbWFyeS1idXR0b24sIC5yaWNoLXRleHQtdHdvLWNvbHVtbiBpbnB1dFt0eXBlPSdzdWJtaXQnXSwgLnJpY2gtdGV4dC10d28tY29sdW1uIC53cmFwcGluZy0tYnV0dG9uLCAucmljaC10ZXh0LXR3by1jb2x1bW4gLmV2ZW50LWl0ZW0gLnJlc2VydmUtLWJ1dHRvbiwgLmV2ZW50LWl0ZW0gLnJpY2gtdGV4dC10d28tY29sdW1uIC5yZXNlcnZlLS1idXR0b24sIC5yaWNoLXRleHQtdHdvLWNvbHVtbiBhLCAucmljaC10ZXh0LXR3by1jb2x1bW4gLmRpc2FibGVkLWJ1dHRvbiB7CiB3aWR0aDogOTklCn0KfQovKiBpcyB0aGlzIG5lZWRlZD8gKi8gCi5wcmltYXJ5LWJ1dHRvbltzdHlsZSo9J2ZvbnQtc2l6ZSddLCAudXBkYXRlQnV0dG9uIGEsIC53cmFwcGluZy0tYnV0dG9uLCAuZGlzYWJsZWQtYnV0dG9uIHsKIG1pbi1oZWlnaHQ6IDA7Cn0KCi8qIGxvc2UgdW5kZXJsaW5lIG9uIGdseXBoIGljb25zIGZvciBBTEwgU1RBVEVTICovCi5nbHlwaGljb24sIC5nbHlwaGljb24tdGV4dC1jb2xvciwgLmdseXBoaWNvbi10ZXh0LWNvbG9yOmhvdmVyLCAuZ2x5cGhpY29uLXRleHQtY29sb3I6YWN0aXZlLCAuZ2x5cGhpY29uLXRleHQtY29sb3I6Zm9jdXMgewogdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7CiBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7CiBmb250LWZhbWlseTogIkdseXBoaWNvbnMgSGFsZmxpbmdzIixHbHlwaGljb25zIEhhbGZsaW5ncyxHbHlwaGljb25zOwp9Ci8qIEdsb2JhbCByZWQgaWNvbiBjb2xvciAqLwovKiBUTyBETyAtIGRldGVybWluZSBpZiBtb3JlIGdyYXV1bGFyIGNvbnRyb2wgaXMgbmVlZGVkICovCi5nbHlwaGljb24gewogY29sb3I6ICNjY2M7CiBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsKIGJvcmRlci1zdHlsZTogbm9uZTsKIG91dGxpbmU6IG5vbmUgIWltcG9ydGFudDsKIGZvbnQtZmFtaWx5OiAiR2x5cGhpY29ucyBIYWxmbGluZ3MiLEdseXBoaWNvbnMgSGFsZmxpbmdzLEdseXBoaWNvbnM7Cn0KLyogR2xvYmFsIHJlZCBpY29uIGhvdmVyIGNvbG9yICovCi8qIFRPIERPIC0gZGV0ZXJtaW5lIGlmIG1vcmUgZ3JhbnVsYXIgY29udHJvbCBpcyBuZWVkZWQgKi8KLmdseXBoaWNvbjpob3ZlciwgLmdseXBoaWNvbjpmb2N1cyB7CiBjb2xvcjogIzM2MzYzNjsKIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OwogYm9yZGVyLXN0eWxlOiBub25lOwogb3V0bGluZTogbm9uZSAhaW1wb3J0YW50OwogZm9udC1mYW1pbHk6ICJHbHlwaGljb25zIEhhbGZsaW5ncyIsR2x5cGhpY29ucyBIYWxmbGluZ3MsR2x5cGhpY29uczsKfQouZ2x5cGhpY29uLXpvb20taW46YmVmb3JlIHsKIGNvbnRlbnQ6ICdcZTAxNSc7Cn0KLmdseXBoaWNvbi1kb3dubG9hZDpiZWZvcmUgewogY29udGVudDogJ1xlMDI2JzsKfQouZ2x5cGhpY29uLXVwbG9hZDpiZWZvcmUgewogY29udGVudDogJ1xlMDI3JzsKfQouZ2x5cGhpY29uLXBsYXktY2lyY2xlOmJlZm9yZSB7CiBjb250ZW50OiAnXGUwMjknOwp9Ci5nbHlwaGljb24tY2hlY2s6YmVmb3JlIHsKIGNvbnRlbnQ6ICdcZTA2Nyc7Cn0KLmdseXBoaWNvbi1wbGF5OmJlZm9yZSB7CiBjb250ZW50OiAnXGUwNzInOwp9Ci5nbHlwaGljb24tY2hldnJvbi1sZWZ0OmJlZm9yZSB7CiBjb250ZW50OiAnXGUwNzknOwp9Ci5nbHlwaGljb24tY2hldnJvbi1yaWdodDpiZWZvcmUgewogY29udGVudDogJ1xlMDgwJzsKfQouZ2x5cGhpY29uLWFycm93LWxlZnQ6YmVmb3JlIHsKIGNvbnRlbnQ6ICdcZTA5MSc7Cn0KLmdseXBoaWNvbi1hcnJvdy1yaWdodDpiZWZvcmUgewogY29udGVudDogJ1xlMDkyJzsKfQouZ2x5cGhpY29uLWFycm93LXVwOmJlZm9yZSB7CiBjb250ZW50OiAnXGUwOTMnOwp9Ci5nbHlwaGljb24tYXJyb3ctZG93bjpiZWZvcmUgewogY29udGVudDogJ1xlMDk0JzsKfQouZ2x5cGhpY29uLWV4Y2xhbWF0aW9uLXNpZ246YmVmb3JlIHsKIGNvbnRlbnQ6ICdcZTEwMSc7Cn0KLmdseXBoaWNvbi13YXJuaW5nLXNpZ246YmVmb3JlIHsKIGNvbnRlbnQ6ICdcZTEwNyc7Cn0KLmdseXBoaWNvbi1jYWxlbmRhcjpiZWZvcmUgewogY29udGVudDogJ1xlMTA5JzsKfQouZ2x5cGhpY29uLWNoZXZyb24tdXA6YmVmb3JlIHsKIGNvbnRlbnQ6ICdcZTExMyc7Cn0KLmdseXBoaWNvbi1jaGV2cm9uLWRvd246YmVmb3JlIHsKIGNvbnRlbnQ6ICdcZTExNCc7Cn0KLmdseXBoaWNvbi1uZXctd2luZG93OmJlZm9yZSB7CiBjb250ZW50OiAnXGUxNjQnOwp9Ci5nbHlwaGljb24tb3BlbjpiZWZvcmUgewogY29udGVudDogJ1xlMTY3JzsKfQouZ2x5cGhpY29uLWV4cGFuZDpiZWZvcmUgewogY29udGVudDogJ1xlMTU4JzsKfQouZ2x5cGhpY29uLW5ldy13aW5kb3c6YmVmb3JlIHsKIGNvbnRlbnQ6ICdcZTE2NCc7Cn0KLmdseXBoaWNvbi1wcmV2OmJlZm9yZSB7CiBjb250ZW50OiAnXGUwMDQnOwp9Ci5nbHlwaGljb24tbmV4dDpiZWZvcmUgewogY29udGVudDogJ1xlMDAyJzsKfQouZ2x5cGhpY29uLWRvd25sb2FkOmJlZm9yZSB7CiBjb250ZW50OiAnXGUwMDcnCn0KLmdseXBoaWNvbi12aWRlb3M6YmVmb3JlIHsKIGNvbnRlbnQ6ICdcZTAwOScKfQovKiBzdHlsaW5nIGZvciB6ZW5kZXNrIGNoYXQgaWZyYW1lICovCi5tZXNoaW1fd2lkZ2V0X3dpZGdldHNfVGl0bGVCYXIgewogY29sb3I6ICNmZmY7CiBmb250LWZhbWlseTogICdIZWx2ZXRpY2EgTmV1ZSBMaWdodCcsICdIZWx2ZXRpY2EgTmV1ZScsICdIZWx2ZXRpY2EgTmV1ZSBlVGV4dCBQcm8nLCAnSGVsdmV0aWNhTmV1ZUxUUHJvLUx0JywgJ0hlbHZldGljYU5ldWUtTGlnaHQnLCBIZWx2ZXRpY2EgTmV1ZSwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjsKIGJvcmRlci1yYWRpdXM6IDAgIWltcG9ydGFudDsKfQouanhfdWlfV2lkZ2V0ID4qLCBpZnJhbWUuanhfdWlfV2lkZ2V0ID4gKiB7CiBmb250LWZhbWlseTogICdIZWx2ZXRpY2EgTmV1ZSBMaWdodCcsICdIZWx2ZXRpY2EgTmV1ZScsICdIZWx2ZXRpY2EgTmV1ZSBlVGV4dCBQcm8nLCAnSGVsdmV0aWNhTmV1ZUxUUHJvLUx0JywgJ0hlbHZldGljYU5ldWUtTGlnaHQnLCBIZWx2ZXRpY2EgTmV1ZSwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjsKIGJvcmRlci1yYWRpdXM6IDAgIWltcG9ydGFudDsKfQovKiBoZWxwIGZvciB0ZXh0IHJvbGxvdmVyIGxpbmtzICovIAoudGV4dC1saW5rZXIsIGEudGV4dC1saW5rZXIgewogY29sb3I6ICNiMjIyMjI7CiBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Owp9Ci50ZXh0LWxpbmtlcjpob3ZlciwgYS50ZXh0LWxpbmtlcjpob3ZlciwgYS50ZXh0LWxpbmtlcjpmb2N1cywgYS50ZXh0LWxpbmtlcjphY3RpdmUgewogY3Vyc29yOiBwb2ludGVyOwogY29sb3I6ICNiMjIyMjI7CiB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSAhaW1wb3J0YW50OwogYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYTsKfQovKiBociBsaW5lcyAqLwouaGxpbmUtdG9wIHsKIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZWVlOwogbWFyZ2luOiAxZW0gMCAycHggLTJweDsKIHBhZGRpbmctYm90dG9tOiAxZW07CiB3aWR0aDogMTAwJTsKIHBhZGRpbmctdG9wOiAxLjVlbTsKfQovKiBociBsaW5lICovCi5obGluZS1ib3R0b20gewogYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlZWU7CiBtYXJnaW46IDJweCAwIDEuNWVtIDA7CiBwYWRkaW5nLWJvdHRvbTogMWVtOwogd2lkdGg6IDEwMCU7CiBwYWRkaW5nLXRvcDogMnB4Owp9Ci8qIHNwb25zb3Igc3R5bGVzICovCi5zcG9uc29yYm94IHsKIGRpc3BsYXk6IC1tcy1mbGV4Ym94OwogZGlzcGxheTogLXdlYmtpdC1ib3g7CiBkaXNwbGF5OiBmbGV4OwogZm9udC13ZWlnaHQ6IDMwMDsKIHBhZGRpbmc6IDAgMnB4IDAgMnB4OwogYm9yZGVyLXN0eWxlOiBub25lOwogd2lkdGg6IDEwMCU7CiB0ZXh0LWFsaWduOiBsZWZ0OwogbWFyZ2luOiAtMTBweCAwIDAgMCAhaW1wb3J0YW50OwogZmxleC13cmFwOiB3cmFwOwogLXdlYmtpdC1mbGV4LXdyYXA6IHdyYXA7CiAtbXMtZmxleC13cmFwOiB3cmFwOwogLW1zLWZsZXgtcGFjazoganVzdGlmeTsKIC13ZWJraXQtYm94LXBhY2s6IGp1c3RpZnk7CiAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKIG92ZXJmbG93OiB3cmFwOwogZGlzcGxheTogaW5saW5lLWJsb2NrOwp9Ci8qIHNwb25zb3IgbG9nbyBhbGlnbm1lbnQgKi8KLnNwb25zb3IxIHsKIHBhZGRpbmc6IDAgMjBweCAxNXB4IDBweDsKIG1hcmdpbjogNXB4Owogd2lkdGg6IDEwMCU7CiBtYXgtd2lkdGg6IDM0MHB4OwogaGVpZ2h0OiBhdXRvOwogdGV4dC1hbGlnbjogbGVmdDsKIGZsZXgtYmFzaXM6IDQ4JTsKIGZvbnQtc2l6ZTogLjgyZW07CiBsaW5lLWhlaWdodDogMS41ZW07CiAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogNDglOwogZGlzcGxheTogaW5saW5lLWJsb2NrOwogdmVydGljYWwtYWxpZ246IHRleHQtdG9wOwp9Ci5zcG9uc29yMiB7CiBwYWRkaW5nOiAwIDIwcHggMTVweCAwcHg7CiBtYXJnaW46IDVweDsKIHdpZHRoOiAxMDAlOwogbWF4LXdpZHRoOiAzNDBweDsKIGhlaWdodDogYXV0bzsKIHRleHQtYWxpZ246IGxlZnQ7CiBmbGV4LWJhc2lzOiA0OCU7CiBmb250LXNpemU6IC44MmVtOwogbGluZS1oZWlnaHQ6IDEuNWVtOwogLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IDQ4JTsKIGRpc3BsYXk6IGlubGluZS1ibG9jazsKIHZlcnRpY2FsLWFsaWduOiB0ZXh0LXRvcDsKfQouc3BvbnNvcjMgewogcGFkZGluZzogMCAyMHB4IDE1cHggMHB4OwogbWFyZ2luOiA1cHg7CiB3aWR0aDogMTAwJTsKIG1heC13aWR0aDogMzQwcHg7CiBoZWlnaHQ6IGF1dG87CiB0ZXh0LWFsaWduOiBsZWZ0OwogZmxleC1iYXNpczogNDglOwogZm9udC1zaXplOiAuODJlbTsKIGxpbmUtaGVpZ2h0OiAxLjVlbTsKIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiA0OCU7CiBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiB2ZXJ0aWNhbC1hbGlnbjogdGV4dC10b3A7Cn0KLnNwb25zb3I0IHsKIHBhZGRpbmc6IDAgMjBweCAxNXB4IDBweDsKIG1hcmdpbjogNXB4Owogd2lkdGg6IDEwMCU7CiBtYXgtd2lkdGg6IDM0MHB4OwogaGVpZ2h0OiBhdXRvOwogdGV4dC1hbGlnbjogbGVmdDsKIGZsZXgtYmFzaXM6IDQ4JTsKIGZvbnQtc2l6ZTogLjgyZW07CiBsaW5lLWhlaWdodDogMS41ZW07CiAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogNDglOwogZGlzcGxheTogaW5saW5lLWJsb2NrOwogdmVydGljYWwtYWxpZ246IHRleHQtdG9wOwp9Ci5zcG9uc29yNSB7CiBwYWRkaW5nOiAwIDIwcHggMTVweCAwcHg7CiBtYXJnaW46IDVweDsKIHdpZHRoOiAxMDAlOwogbWF4LXdpZHRoOiAzNDBweDsKIGhlaWdodDogYXV0bzsKIHRleHQtYWxpZ246IGxlZnQ7CiBmbGV4LWJhc2lzOiA0OCU7CiBmb250LXNpemU6IC44MmVtOwogbGluZS1oZWlnaHQ6IDEuNWVtOwogLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IDQ4JTsKIGRpc3BsYXk6IGlubGluZS1ibG9jazsKIHZlcnRpY2FsLWFsaWduOiB0ZXh0LXRvcDsKfQouc3BvbnNvcjYgewogcGFkZGluZzogMCAyMHB4IDE1cHggMHB4OwogbWFyZ2luOiA1cHg7CiB3aWR0aDogMTAwJTsKIG1heC13aWR0aDogMzQwcHg7CiBoZWlnaHQ6IGF1dG87CiB0ZXh0LWFsaWduOiBsZWZ0OwogZmxleC1iYXNpczogNDglOwogZm9udC1zaXplOiAuODJlbTsKIGxpbmUtaGVpZ2h0OiAxLjVlbTsKIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiA0OCU7CiBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiB2ZXJ0aWNhbC1hbGlnbjogdGV4dC10b3A7Cn0KLmNhbC1icmFuZC1pY29uIHsKIHBvc2l0aW9uOiBhYnNvbHV0ZTsKIGRpc3BsYXk6IGlubGluZS1ibG9jazsKIHRvcDogNHB4OwogcmlnaHQ6IDRweDsKIGZsb2F0OiByaWdodDsKIHZlcnRpY2FsLWFsaWduOiB0b3A7CiBwYWRkaW5nOiAxcHg7CiBtYXJnaW46IGF1dG87CiBvcGFjaXR5OiA3NSU7Cn0KLyogRU5EIGZyb20gVE5FV19zdHlsZSAqLwoKLyogU1RBUlQgY3NvIGN1c3RvbSBzdHlsZXMgKi8gCgojcXVpY2tfbmF2LCAucXVpY2tfbmF2IHsKIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKfQojY3RsMDUgPiBkaXYubC13cmFwcGVyLnJvdyA+IGhlYWRlciA+IGRpdi5zaXRlX3RpdGxlID4gaW1nIHsKIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKfQojY3RsMDUgPiBkaXYubC13cmFwcGVyLnJvdyA+IGRpdiA+IGFzaWRlIHsKIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKfQoKLyogbWFpbiBuYXYgc3R5bGluZyBhbmQgYm9yZGVyICovCi5tYWluX25hdiB7CiB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tOwogbWFyZ2luOiAxMHB4IDAgMCAwOyAvKiB0aGlzIGlzIGtleSB0byBoZWFkZXIgdmVydCBzcGFjaW5nIC0gY2hhbmdlZCBmcm9tIDU0cHggOS04ICovCiBwYWRkaW5nOiAwIDVweCAtOXB4IDVweCAhaW1wb3J0YW50OyAvKiB0aGlzIGFsaWducyB0aGUgYmxhY2sgYW5kIHJlZCBiYXJzIHVuZGVyIHRoZSBuYXYgKi8KIGJvcmRlci1ib3R0b206IDNweCBzb2xpZCAjMDcwNzA3Owp3aWR0aDogMTAwJTsKbWF4LXdpZHRoOiAxMDAlOwp9CgoubWFpbl9uYXYtbGlzdCwgLm1haW5fbmF2LWRyb3BfbGlzdCwgLm1haW5fbmF2LWRyb3BfaXRlbSwgLm1haW5fbmF2LWRyb3BfbGluayB7CiBmb250LXNpemU6IDFlbTsKIHZlcnRpY2FsLWFsaWduOiBib3R0b207CiBmb250LXdlaWdodDogNjAwOwp9Ci5tYWluX25hdi1kcm9wX2xpbmssIC5tYWluX25hdi1kZWVwX2xpbmsgewogIGZvbnQtZmFtaWx5OiAnU291cmNlIFNhbnMgUHJvJywgU291cmNlIFNhbnMgUHJvLCBTb3VyY2UgU2FucywgJ09wZW4gU2FucycsIE9wZW4gU2FucywgQXJpYWwsIHNhbnMtc2VyaWY7CiAgICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7CiAgZm9udC13ZWlnaHQ6IDYwMDsKICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgY29sb3I6ICMzNjM2MzY7Cn0KCiNjdGwwNSA+IGRpdi5sLXdyYXBwZXIucm93ID4gZGl2IHsKIHdpZHRoOiAxMDAlOwp9Ci8qIHNpZGViYXIgdGl0bGUgKi8KaDMuYmxvY2stdGl0bGUgewogYmFja2dyb3VuZDogI2VlZSAhaW1wb3J0YW50OwogZm9udC1zaXplOiAxLjVlbTsKIG1hcmdpbjogMCAwIDFlbSAwOwogcGFkZGluZzogMWVtOwogY29sb3I6ICMzNjM2MzY7Cn0KLyogU291bmRzIGFuZCBTdG9yZSBncmV5IGxpbmtzICovCmxpLm1haW5fbmF2LWl0ZW06bnRoLWNoaWxkKDcpID4gYTpudGgtY2hpbGQoMiksIGxpLm1haW5fbmF2LWl0ZW06bnRoLWNoaWxkKDYpID4gYTpudGgtY2hpbGQoMikgewogY29sb3I6ICMzNjM2MzY7Cn0KcCA+IGEsIHAgPiBhOm50aC1jaGlsZCB7CiBtYXJnaW46IDE1cHggMTVweCAxNXB4IDA7Cn0KYTpob3ZlciwgYTpmb2N1cywgcCA+IGE6aG92ZXIsIHAgPiBhOmZvY3VzLCBwID4gYTpudGgtY2hpbGQ6aG92ZXIsIHAgPiBhOm50aC1jaGlsZDpmb2N1cyB7CiB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSAhaW1wb3J0YW50OwogY29sb3I6ICNiMjIyMjIgIWltcG9ydGFudDsKfQovKiBleHRyYSBwYWRkaW5nIHVuZGVyIHBhcmFncmFwaHMgYW5kIG1heCBwYWdlIHdpZHRoICovCnAsIGRpdiBwLCBkaXYgPiBwIHsKIG1hcmdpbi1ib3R0b206IDJlbTsKIG1heC13aWR0aDogMTAwJTsKfQoKLyogb3B0aW9uYWwgaGlkaW5nIGNsYXNzICovCi5oaWRleSB7CiBkaXNwbGF5OiBub25lOwogbWF4LWhlaWdodDogMDsKfQoKLyogc2VhcmNoIGJveCBzdHlsZXMgKi8gCkBtZWRpYShtaW4td2lkdGg6OTI2cHgpIHsKLnNpdGVfc2VhcmNoIHsKICAgIGZsb2F0OiByaWdodDsKICAgIG1hcmdpbjogLjdlbSAwIDAgMnB4OwogICAgY2xlYXI6IGJvdGg7Cgl3aWR0aDogMjUwcHg7Cglmb250LXdlaWdodDogMzAwOwoJcGFkZGluZzogMDsKCXRleHQtYWxpZ246IHJpZ2h0OwoJZm9udC1mYW1pbHk6ICAnSGVsdmV0aWNhIE5ldWUgTGlnaHQnLCAnSGVsdmV0aWNhIE5ldWUnLCAnSGVsdmV0aWNhIE5ldWUgZVRleHQgUHJvJywgJ0hlbHZldGljYU5ldWVMVFByby1MdCcsICdIZWx2ZXRpY2FOZXVlLUxpZ2h0JywgSGVsdmV0aWNhIE5ldWUsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7CiAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7CiAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOwogIH0KLnNpdGVfc2VhcmNoLXdyYXAgewogICAgZGlzcGxheTogLW1zLWZsZXhib3g7CiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBtYXJnaW46IDA7Cgl3aWR0aDogMTAwJTsKCW1pbi13aWR0aDogMjUwcHg7CglwYWRkaW5nOiAwOwoJdGV4dC1hbGlnbjogcmlnaHQ7Cgl2ZXJ0aWNhbC1hbGlnbjogYm90dG9tOwogIH0KLnNpdGVfc2VhcmNoLXRleHRib3gsICN0eHRTZWFyY2ggewogd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgCiBtaW4td2lkdGg6IDIwMHB4ICFpbXBvcnRhbnQ7IAogaGVpZ2h0OiAzNHB4OyAKIGJvcmRlci1yYWRpdXM6IDNweCAhaW1wb3J0YW50OyAKIGJvcmRlcjogMXB4IHNvbGlkICNhZmFlYWU7CiBmb250LWZhbWlseTogICdIZWx2ZXRpY2EgTmV1ZSBMaWdodCcsICdIZWx2ZXRpY2EgTmV1ZScsICdIZWx2ZXRpY2EgTmV1ZSBlVGV4dCBQcm8nLCAnSGVsdmV0aWNhTmV1ZUxUUHJvLUx0JywgJ0hlbHZldGljYU5ldWUtTGlnaHQnLCBIZWx2ZXRpY2EgTmV1ZSwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjsKIGZvbnQtc2l6ZTogMWVtOwogLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsKIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOwogcGFkZGluZzogMnB4IDNweCAycHggNXB4OwogbWFyZ2luOiAwIDVweCAwIDA7CiBmb250LXdlaWdodDogMjAwICFpbXBvcnRhbnQ7CiAgIGNvbG9yOiAjOTk5OwogICB0ZXh0LWFsaWduOiBsZWZ0OwogfQogLnNpdGVfc2VhcmNoLXRleHRib3g6aG92ZXIsIC5zaXRlX3NlYXJjaC10ZXh0Ym94OmZvY3VzIHsKIGJhY2tncm91bmQtY29sb3I6ICNmYWZhZmEgIWltcG9ydGFudDsKIGNvbG9yOiAjMWIxYjFiICFpbXBvcnRhbnQ7CmJvcmRlci1jb2xvcjogIzk5OTsKIGZvbnQtZmFtaWx5OiAgJ0hlbHZldGljYSBOZXVlIExpZ2h0JywgJ0hlbHZldGljYSBOZXVlJywgJ0hlbHZldGljYSBOZXVlIGVUZXh0IFBybycsICdIZWx2ZXRpY2FOZXVlTFRQcm8tTHQnLCAnSGVsdmV0aWNhTmV1ZS1MaWdodCcsIEhlbHZldGljYSBOZXVlLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmOwogZm9udC1zaXplOiAxZW07CiAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOwogLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7CiB9CiAuc2l0ZV9zZWFyY2gtbGFiZWwsICNsYlNlYXJjaCB7CiAgICBmb250LWZhbWlseTogJ0hlbHZldGljYSBOZXVlIExpZ2h0JywgJ0hlbHZldGljYSBOZXVlLUxpZ2h0JywgJ0hlbHZldGljYSBOZXVlJywgSGVsdmV0aWNhIE5ldWUsICdIZWx2ZXRpY2EgTmV1ZSBlVGV4dCBQcm8nLCdIZWx2ZXRpY2FOZXVlTFRQcm8tTHQnLCdIZWx2ZXRpY2FOZXVlLUxpZ2h0JyxIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmOwogICAgZm9udC1zaXplOiAxZW07CiAgICBsaW5lLWhlaWdodDogMi41ZW07CiAgICBjb2xvcjogIzk5OSAhaW1wb3J0YW50OwoJZmlsbDogIzk5OTsKCWhlaWdodDogMzRweDsKCW1heC1oZWlnaHQ6IDM0cHg7Cgl3aWR0aDogNTBweDsKCW1heC13aWR0aDogNTBweDsKCWZvbnQtd2VpZ2h0OiAzMDA7CiAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tOwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKCXRleHQtYWxpZ246IHJpZ2h0OyAKCXBhZGRpbmc6IDVweCAwIDAgMTBweDsKICB9Ci5zaXRlX3NlYXJjaC1sYWJlbCBzdmcsIGJ1dHRvbi5nc2Mtc2VhcmNoLWJ1dHRvbiA+IHN2ZzpudGgtY2hpbGQoMSksIGJ1dHRvbi5nc2Mtc2VhcmNoLWJ1dHRvbiA+IHN2ZyB7CiAgICBmaWxsOiAjOTk5OwoJY29sb3I6ICM5OTk7CiAgICB3aWR0aDogMTZweDsKICAgIGhlaWdodDogMTZweDsKCW1hcmdpbi10b3A6IDNweDsKCXZpc2liaWxpdHk6IHZpc2libGU7CglkaXNwbGF5OiBibG9jazsKCXZlcnRpY2FsLWFsaWduOiBib3R0b207Cgl0ZXh0LWFsaWduOiByaWdodDsgCgktbXMtZmxleC1pdGVtLWFsaWduOiByaWdodDsgCgkgICAgLW1zLWdyaWQtcm93LWFsaWduOiByaWdodDsgCgkgICAgYWxpZ24tc2VsZjogcmlnaHQ7CiAgfQouc2l0ZV9zZWFyY2gtbGFiZWwgc3ZnOmhvdmVyLCBidXR0b24uZ3NjLXNlYXJjaC1idXR0b24gPiBzdmc6bnRoLWNoaWxkKDEpOmhvdmVyLCBidXR0b24uZ3NjLXNlYXJjaC1idXR0b24gPiBzdmc6aG92ZXIgeyAKICBjb2xvcjogIzFiMWIxYiAhaW1wb3J0YW50OwogIGZpbGw6ICMxYjFiMWIgIWltcG9ydGFudDsKfQoKIC8qIHRleHQgYnV0dG9uICovIAouc2l0ZV9zZWFyY2gtbGFiZWwgc3BhbiB7CiAgbWF4LXdpZHRoOiA1MHB4OwogIG92ZXJmbG93OiBoaWRkZW47CiAgbWFyZ2luOiAwOwogIHdpZHRoOiA1MHB4OwogIGhlaWdodDogMzRweDsKICBtYXgtaGVpZ2h0OiAzNHB4OwogIGJvcmRlcjogbm9uZTsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOwogIHRleHQtYWxpZ246IGNlbnRlcjsKICBwYWRkaW5nOiA1cHggMCA1cHggNXB4OwogIGNvbG9yOiAjOTk5ICFpbXBvcnRhbnQ7CiAgZmlsbDogIzk5OTsgCiAgY3Vyc29yOiBwb2ludGVyOwogIGZvbnQtc2l6ZTogMWVtOwogIGZvbnQtd2VpZ2h0OiA0MDA7CiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKfQouc2l0ZV9zZWFyY2gtbGFiZWwgc3Bhbjpob3ZlciB7IAogY29sb3I6ICMxYjFiMWIgIWltcG9ydGFudDsKIH0KfQoKLyogaGlkZSBzZWFyY2ggb24gbW9iaWxlIGZvciBub3cgKi8KQG1lZGlhKG1heC13aWR0aDoxMDI1cHgpIHsKLnNpdGVfc2VhcmNoIHsKIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKfQouc2l0ZV9zZWFyY2gtd3JhcCB7CiBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7Cn0KLnNpdGVfc2VhcmNoLXRleHRib3ggewogZGlzcGxheTogbm9uZSAhaW1wb3J0YW50Owp9Ci5zaXRlX3NlYXJjaC1sYWJlbCB7CiBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7Cn0KLnNpdGVfc2VhcmNoLWxhYmVsIHNwYW4gewogZGlzcGxheTogbm9uZSAhaW1wb3J0YW50Owp9Ci5zaXRlX3NlYXJjaC1sYWJlbCBzdmcgewogZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OwogfQp9Ci8qIEVuZCBTZWFyY2ggQm94IFN0eWxlcyAqLwoKLyogc3RvcHMgc2hpZnQgb24gc2VhcmNoIHJlc3VsdHMgcm9sbG92ZXIgKi8KZGl2LmdzYy1leHBhbnNpb25BcmVhLCBkaXYuZ3NjLWV4cGFuc2lvbkFyZWEsIC5nc2MtZXhwYW5zaW9uQXJlYSwgLmdzYy1leHBhbnNpb25BcmVhLCAuZ3NjLXdlYlJlc3VsdCwgLmdzYy13ZWJSZXN1bHQsIC5nc2MtcmVzdWx0LCAuZ3NjLXByb21vdGlvbiwgLmdzYy1yZXN1bHQsIC5nc2MtZXhwYW5zaW9uQXJlYSA+IGRpdiwgLmdzYy1leHBhbnNpb25BcmVhID4gZGl2IHsgCmJvcmRlcjogbm9uZSAhaW1wb3J0YW50Owp9CmRpdi5nc2MtZXhwYW5zaW9uQXJlYTpob3ZlciwgZGl2LmdzYy1leHBhbnNpb25BcmVhOmZvY3VzLCAuZ3NjLWV4cGFuc2lvbkFyZWE6aG92ZXIsIC5nc2MtZXhwYW5zaW9uQXJlYTpmb2N1cywgLmdzYy13ZWJSZXN1bHQ6aG92ZXIsIC5nc2Mtd2ViUmVzdWx0OmZvY3VzLCAuZ3NjLXByb21vdGlvbjpob3ZlciwgLmdzYy1wcm9tb3Rpb246Zm9jdXMsIC5nc2MtcmVzdWx0OmhvdmVyLCAuZ3NjLXJlc3VsdDpmb2N1cywgLmdzYy1leHBhbnNpb25BcmVhID4gZGl2OmhvdmVyLCAuZ3NjLWV4cGFuc2lvbkFyZWEgPiBkaXY6Zm9jdXMgeyAKYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7Cn0KI19fX2djc2VfMCA+IGRpdiA+IGRpdiA+IGZvcm0geyAKbWFyZ2luLWJvdHRvbTogMjVweCAhaW1wb3J0YW50OyAKfQpkaXYuZ3NjLXdlYlJlc3VsdCB7IAptYXJnaW4tYm90dG9tOiAxNXB4ICFpbXBvcnRhbnQ7Cn0KCi8qIEVuZCBTZWFyY2ggUGFnZSBTdHlsZXMgKi8KCi8qIEdvb2dsZSBzdHlsZXMgKi8KLmdzLXRpdGxlIGEsIC5ncy10aXRsZSBhIGIsIC5nc2MtcmVzdWx0IGEsIC5nc2MtcmVzdWx0IGEgYiB7CiBjb2xvcjogIzA3MDcwNyAhaW1wb3J0YW50OwogIGZvbnQtZmFtaWx5OiAgJ0hlbHZldGljYSBOZXVlIExpZ2h0JywgJ0hlbHZldGljYSBOZXVlJywgJ0hlbHZldGljYSBOZXVlIGVUZXh0IFBybycsICdIZWx2ZXRpY2FOZXVlTFRQcm8tTHQnLCAnSGVsdmV0aWNhTmV1ZS1MaWdodCcsIEhlbHZldGljYSBOZXVlLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmOwogLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsKIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOwogIGJvcmRlcjogbm9uZTsKfQouZ3NjLXVybC10b3AgPiBkaXYuZ3MtYmlkaS1zdGFydC1hbGlnbi5ncy12aXNpYmxlVXJsLmdzLXZpc2libGVVcmwtbG9uZywgLmdzYy11cmwtYm90dG9tID4gZGl2LmdzLWJpZGktc3RhcnQtYWxpZ24uZ3MtdmlzaWJsZVVybC5ncy12aXNpYmxlVXJsLWxvbmcgewogY29sb3I6ICNiMjIyMjI7CiB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiBmb250LWZhbWlseTogICdIZWx2ZXRpY2EgTmV1ZSBMaWdodCcsICdIZWx2ZXRpY2EgTmV1ZScsICdIZWx2ZXRpY2EgTmV1ZSBlVGV4dCBQcm8nLCAnSGVsdmV0aWNhTmV1ZUxUUHJvLUx0JywgJ0hlbHZldGljYU5ldWUtTGlnaHQnLCBIZWx2ZXRpY2EgTmV1ZSwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjsKIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7CiAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsKICBib3JkZXI6IG5vbmU7Cn0KLmdzYy11cmwtdG9wID4gZGl2LmdzLWJpZGktc3RhcnQtYWxpZ24uZ3MtdmlzaWJsZVVybC5ncy12aXNpYmxlVXJsLWxvbmc6aG92ZXIsIC5nc2MtdXJsLWJvdHRvbSA+IGRpdi5ncy1iaWRpLXN0YXJ0LWFsaWduLmdzLXZpc2libGVVcmwuZ3MtdmlzaWJsZVVybC1sb25nOmhvdmVyLCAuZ3NjLXVybC10b3AgPiBkaXYuZ3MtYmlkaS1zdGFydC1hbGlnbi5ncy12aXNpYmxlVXJsLmdzLXZpc2libGVVcmwtbG9uZzpmb2N1cywgLmdzYy11cmwtYm90dG9tID4gZGl2LmdzLWJpZGktc3RhcnQtYWxpZ24uZ3MtdmlzaWJsZVVybC5ncy12aXNpYmxlVXJsLWxvbmc6Zm9jdXMgewp0ZXh0LWRlY29yYXRpb246IG5vbmU7CiBmb250LWZhbWlseTogICdIZWx2ZXRpY2EgTmV1ZSBMaWdodCcsICdIZWx2ZXRpY2EgTmV1ZScsICdIZWx2ZXRpY2EgTmV1ZSBlVGV4dCBQcm8nLCAnSGVsdmV0aWNhTmV1ZUxUUHJvLUx0JywgJ0hlbHZldGljYU5ldWUtTGlnaHQnLCBIZWx2ZXRpY2EgTmV1ZSwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjsKIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7CiAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsKICBib3JkZXI6IG5vbmU7Cn0KLyogSGlkZSB0aGUgR29vZ2xlIGJyYW5kaW5nIGluIHNlYXJjaCByZXN1bHRzICovCi5nY3NjLWJyYW5kaW5nLCAuZ2NzYy1icmFuZGluZy10ZXh0LCBzcGFuLmdjc2MtZmluZC1tb3JlLW9uLWdvb2dsZS1xdWVyeSwgLmdjc2MtZmluZC1tb3JlLW9uLWdvb2dsZS1xdWVyeSwgLmdjc2MtbW9yZS1tYXliZS1icmFuZGluZy1yb290LCAuZ2NzYy1tb3JlLW1heWJlLWJyYW5kaW5nLXJvb3QgPiBhID4gZGl2ID4gc3Bhbi5nY3NjLWZpbmQtbW9yZS1vbi1nb29nbGUtcXVlcnkgewogZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OwogdmlzaWJpbGl0eTogaGlkZGVuOwp9Ci8qIGZvbnQgZmFtaWx5IGZvciByZXN1bHRzICovCi5ncy10aXRsZSwgLmdzLXNuaXBwZXQsIC5nc2MtcHJvbW90aW9uLCBkaXYuZ3NjLXdlYlJlc3VsdCwgLmdzYy1yZXN1bHQsIC5nc2MtcHJvbW90aW9uIHsKIGZvbnQtZmFtaWx5OiAgJ0hlbHZldGljYSBOZXVlIExpZ2h0JywgJ0hlbHZldGljYSBOZXVlJywgJ0hlbHZldGljYSBOZXVlIGVUZXh0IFBybycsICdIZWx2ZXRpY2FOZXVlTFRQcm8tTHQnLCAnSGVsdmV0aWNhTmV1ZS1MaWdodCcsIEhlbHZldGljYSBOZXVlLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmOwogLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsKIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOwogIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50OwogIGNvbG9yOiAjMDcwNzA3Owp9CgovKiBFTkQgR29vZ2xlIHN0eWxlcyAqLwoKCi8qIGJ1bXAgdXAgY29udGVudCBjb250YWluZXIgb24gZGVza3RvcCAtIGNoYW5nZWQgOC0zMS0xOSAqLwoubC1jb250YWluZXIgewogbWFyZ2luLXRvcDogLTEwcHg7CiBtYXJnaW4tbGVmdDogMDsKIG1hcmdpbi1yaWdodDogMDsKfQovKiBzbGlnaHQgcGFkZGluZyB0byBsZWZ0IG9mIHBhcmFncmFwaCBnbG9iYWxseSAqLyAKcCB7CiBwYWRkaW5nLWxlZnQ6IDJweDsKfQovKiBiZm9vdGVyIHN0eWxlcyAqLwouYmZvb3Rlci1uYXYgPiAqIHsKIHBhZGRpbmc6IDA7CiBib3JkZXItcmlnaHQ6IG5vbmU7CiBmb250LXdlaWdodDogNDAwOwogdGV4dC1hbGlnbjogbGVmdDsKIHRleHQtc2hhZG93OiBub25lOwp9Ci5iZm9vdGVyLWJvdHRvbSA+ICogewogd2lkdGg6IDEwMCU7CiBtYXJnaW46IDA7CiAtbXMtZmxleC1pdGVtLWFsaWduOiBjZW50ZXI7CiAgICAgLW1zLWdyaWQtcm93LWFsaWduOiBjZW50ZXI7CiAgICAgYWxpZ24tc2VsZjogY2VudGVyOwogcGFkZGluZzogMDsKICB0ZXh0LXNoYWRvdzogbm9uZTsKfQouYmZvb3Rlci1zdWItdG9wLCAuYmZvb3Rlci1pbmZvIHsKIGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cDsKICB0ZXh0LXNoYWRvdzogbm9uZTsKfQouYmZvb3Rlci1zdWItdG9wIHsKIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgdGV4dC1zaGFkb3c6IG5vbmU7Cn0KLmJmb290ZXItc3ViLXRvcCA+ICogewogd2hpdGUtc3BhY2U6IG5vcm1hbDsKIHZlcnRpY2FsLWFsaWduOiB0b3A7CiBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgdGV4dC1zaGFkb3c6IG5vbmU7Cn0KLmJmb290ZXItc29jaWFsIHsKIG1hcmdpbjogMDsKIHBhZGRpbmc6IDA7CiAgdGV4dC1zaGFkb3c6IG5vbmU7Cn0KLmJmb290ZXItaW5mbyB7CiBtYXJnaW46IDA7CiBkaXNwbGF5OiB0YWJsZS1mb290ZXItZ3JvdXA7CiB0ZXh0LWFsaWduOiBsZWZ0OwogdmVydGljYWwtYWxpZ246IHRleHQtdG9wOwogIHRleHQtc2hhZG93OiBub25lOwp9Ci5iZm9vdGVyLWluZm8gPiA6bGFzdC1jaGlsZCB7CiBib3JkZXItcmlnaHQ6IG5vbmU7CiAgdGV4dC1zaGFkb3c6IG5vbmU7Cn0KLmJmb290ZXItaXRlbSB7CiB2ZXJ0aWNhbC1hbGlnbjogdGV4dC10b3A7CiBwYWRkaW5nOiAwOwogIHRleHQtc2hhZG93OiBub25lOwp9Ci5iZm9vdGVyLWl0ZW0gKyAuYmZvb3Rlci1pdGVtIHsKIG1hcmdpbjogMDsKICB0ZXh0LXNoYWRvdzogbm9uZTsKfQouYmZvb3Rlci1pdGVtLCAuYmZvb3Rlci1pdGVtIHAsIC5iZm9vdGVyLWl0ZW0gYSB7CiBjb2xvcjogI2VlZTsKICB0ZXh0LXNoYWRvdzogbm9uZTsKfQouYmZvb3Rlci1pdGVtIGEgewogY29sb3I6ICNmYWZhZmE7CiAgdGV4dC1zaGFkb3c6IG5vbmU7Cn0KLmJmb290ZXItaXRlbSBhOmhvdmVyLCAuYmZvb3Rlci1pdGVtIGE6Zm9jdXMgewogY29sb3I6ICNmZmY7CiB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSAhaW1wb3J0YW50OwogIHRleHQtc2hhZG93OiBub25lOwp9Ci5iZm9vdGVyLW5hdiA+ICosIC5iZm9vdGVyLWluZm8gPiAqIHsKIGNvbG9yOiAjZWVlOwogIHRleHQtc2hhZG93OiBub25lOwp9Ci5iZm9vdGVyLW5hdiA+ICo6bGFzdC1jaGlsZCB7CiBtYXJnaW4tcmlnaHQ6IDA7CiBwYWRkaW5nLXJpZ2h0OiAwOwogYm9yZGVyOiBub25lOwogIHRleHQtc2hhZG93OiBub25lOwp9Ci5iZm9vdGVyLWl0ZW0gcCBzdHJvbmcsIC5iZm9vdGVyLWl0ZW0gc3Ryb25nIHsKIGNvbG9yOiAjZWVlOwogIHRleHQtc2hhZG93OiBub25lOwp9Ci5iZm9vdGVyLW5hdiBhLCAuYmZvb3Rlci1pdGVtIHAgYSwgLmJmb290ZXItaXRlbSBwIGEgc3Ryb25nLCAuYmZvb3Rlci1pdGVtIHAgc3Ryb25nIGEgewogY29sb3I6ICNmYWZhZmEgIWltcG9ydGFudDsKICB0ZXh0LXNoYWRvdzogbm9uZTsKfQouYmZvb3Rlci1uYXYgYTpob3ZlciwgLmJmb290ZXItaXRlbSBwIGE6aG92ZXIsIC5iZm9vdGVyLW5hdiBhOmZvY3VzLCAuYmZvb3Rlci1pdGVtIHAgYTpmb2N1cyB7CiBjb2xvcjogI2ZmZjsKIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lICFpbXBvcnRhbnQ7CiAgdGV4dC1zaGFkb3c6IG5vbmU7Cn0KLmJmb290ZXItaW5mbyA+ICogewogZm9udC1zaXplOiAxZW07CiAgdGV4dC1zaGFkb3c6IG5vbmU7Cn0KLmJmb290ZXItc29jaWFsIHsKIHBhZGRpbmc6IDA7CiBvdmVyZmxvdzogaGlkZGVuOwogIHRleHQtc2hhZG93OiBub25lOwp9Ci5iZm9vdGVyLXNvY2lhbCBwIHsKIGNvbG9yOiAjZWVlOwogIHRleHQtc2hhZG93OiBub25lOwp9Ci5iZm9vdGVyLXNvY2lhbCBhIHsKIGNvbG9yOiAjZmFmYWZhOwogIHRleHQtc2hhZG93OiBub25lOwp9Ci5iZm9vdGVyLXNvY2lhbCA+IGEgewogbWFyZ2luOiAwIDAgLjg1ZW0gLjg1ZW07CiBjb2xvcjogI2VlZTsKICB0ZXh0LXNoYWRvdzogbm9uZTsKfQouYmZvb3Rlci1zb2NpYWwgPiBhOmhvdmVyIHsKIG1hcmdpbjogMCAwIC44NWVtIC44NWVtOwogY29sb3I6ICNmZmYgIWltcG9ydGFudDsKIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICB0ZXh0LXNoYWRvdzogbm9uZTsKfQouYmZvb3Rlci1zb2NpYWwgPiBhLnNvY2lhbC1mYi1tZCB7CiBtYXJnaW4tbGVmdDogMDsKICB0ZXh0LXNoYWRvdzogbm9uZTsKfQoKQG1lZGlhKG1pbi13aWR0aDoxMTI2cHgpIHsKLmJmb290ZXIgewogYmFja2dyb3VuZC1jb2xvcjogIzM2MzYzNiAhaW1wb3J0YW50OwogbWFyZ2luOiAwICFpbXBvcnRhbnQ7CiBwYWRkaW5nOiAwOwogdmVydGljYWwtYWxpZ246IGJvdHRvbTsKIHdpZHRoOiAxMDAlOwptYXgtd2lkdGg6IDEwMCU7CiBmb250LXNpemU6IDFlbTsKIGNvbG9yOiAjZWVlICFpbXBvcnRhbnQ7CiBhbGlnbjpjZW50ZXI7IAogdGV4dC1hbGlnbjpjZW50ZXI7IApoZWlnaHQ6IDI0NXB4OyAKbWluLWhlaWdodDogMjQ1cHg7IAogdGV4dC1zaGFkb3c6IG5vbmU7Cn0KfQpAbWVkaWEobWF4LXdpZHRoOjExMjVweCkgewouYmZvb3RlciB7CmhlaWdodDogMzQwcHggIWltcG9ydGFudDsgCn0KfQpAbWVkaWEobWF4LXdpZHRoOjkyNXB4KSB7Ci5iZm9vdGVyIHsKaGVpZ2h0OiAzOTVweCAhaW1wb3J0YW50OyAKfQp9CkBtZWRpYShtYXgtd2lkdGg6NjI1cHgpIHsKLmJmb290ZXIgewpoZWlnaHQ6IDQyNXB4ICFpbXBvcnRhbnQ7IAp9Cn0KLmJmb290ZXItaXRlbSB7CiB2ZXJ0aWNhbC1hbGlnbjogdGV4dC10b3A7CnBhZGRpbmc6IDA7CiB0ZXh0LXNoYWRvdzogbm9uZTsKfQouYmZvb3Rlci1pdGVtICsgLmJmb290ZXItaXRlbSB7CiBtYXJnaW46IDA7CiAgdGV4dC1zaGFkb3c6IG5vbmU7Cn0KLmJmb290ZXItaXRlbSwgLmJmb290ZXItaXRlbSBwIHsKIGNvbG9yOiAjZWVlOwogbWFyZ2luOiAwOwogIHRleHQtc2hhZG93OiBub25lOwp9Ci5iZm9vdGVyLWl0ZW0gYSB7CiBjb2xvcjogI2ZhZmFmYTsKICB0ZXh0LXNoYWRvdzogbm9uZTsKfQouYmZvb3Rlci1pdGVtIGE6aG92ZXIsIC5iZm9vdGVyLWl0ZW0gYTpmb2N1cyB7CiBjb2xvcjogI2ZmZjsKIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lICFpbXBvcnRhbnQ7CiAgdGV4dC1zaGFkb3c6IG5vbmU7Cn0KLyogZW5kIGJmb290ZXIgc3R5bGVzICovCi8qIGZvb3RlciBzdHlsZXMgKi8KLmZvb3Rlci1uYXYgPiAqIHsKICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7Cn0KZm9vdGVyLCAubC1mb290ZXIgewogZGlzcGxheTogbm9uZSAhaW1wb3J0YW50Owp9Ci8qIEhJREUgRk9PVEVSIFBST01PUyAqLwpkaXYubC13cmFwcGVyLnJvdyA+IGZvb3RlciA+IGRpdi5mb290ZXItcHJvbW90aW9ucy5wcm9tbyB7CiBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7Cn0KLmZvb3Rlci1wcm9tb3Rpb25zIHsKIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKfQouZm9vdGVyLWJvdHRvbSA+ICogewogZGlzcGxheTogbm9uZSAhaW1wb3J0YW50Owp9Ci5mb290ZXItc3ViLXRvcCB7CiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50Owp9Ci5mb290ZXItc3ViLXRvcCA+ICogewogIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKfQouZm9vdGVyLXNvY2lhbCB7CiBtYXJnaW46IDA7CiBwYWRkaW5nOiAwOwp9Ci5mb290ZXItaW5mbyB7CiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50Owp9Ci5mb290ZXItaW5mbyA+IDpsYXN0LWNoaWxkIHsKICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7Cn0KLmZvb3Rlci1pdGVtIHsKICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7Cn0KLmZvb3Rlci1pdGVtICsgLmZvb3Rlci1pdGVtIHsKICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7Cn0KLmZvb3Rlci1pdGVtLCAuZm9vdGVyLWl0ZW0gcCwgLmZvb3Rlci1pdGVtIGEgewogIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKfQouZm9vdGVyLWl0ZW0gYSB7CiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50Owp9Ci5mb290ZXItaXRlbSBhOmhvdmVyLCAuZm9vdGVyLWl0ZW0gYTpmb2N1cyB7CiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50Owp9Ci5mb290ZXItc3ViLXRvcCA+ICosIC5mb290ZXItaW5mbyA+ICogewogIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKfQouZm9vdGVyLW5hdiA+ICosIC5mb290ZXItaW5mbyA+ICogewogIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKfQouZm9vdGVyLW5hdiA+ICo6bGFzdC1jaGlsZCB7CiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50Owp9Ci5mb290ZXItaXRlbSBwIHN0cm9uZywgLmZvb3Rlci1pdGVtIHN0cm9uZyB7CiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50Owp9Ci5mb290ZXItbmF2IGEsIC5mb290ZXItaXRlbSBwIGEsIC5mb290ZXItaXRlbSBwIGEgc3Ryb25nLCAuZm9vdGVyLWl0ZW0gcCBzdHJvbmcgYSB7CiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50Owp9Ci5mb290ZXItbmF2IGE6aG92ZXIsIC5mb290ZXItaXRlbSBwIGE6aG92ZXIsIC5mb290ZXItbmF2IGE6Zm9jdXMsIC5mb290ZXItaXRlbSBwIGE6Zm9jdXMgewogIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKfQouZm9vdGVyLWluZm8gPiAqIHsKICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7Cn0KLmZvb3Rlci1zb2NpYWwgewogIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKfQouZm9vdGVyLXNvY2lhbCBwIHsKICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7Cn0KLmZvb3Rlci1zb2NpYWwgYSB7CiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50Owp9Ci5mb290ZXItc29jaWFsID4gYSB7CiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50Owp9Ci5mb290ZXItc29jaWFsID4gYTpob3ZlciB7CiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50Owp9Ci5mb290ZXItc29jaWFsID4gYS5zb2NpYWwtZmItbWQgewogIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKfQojY3RsMDUgPiBkaXYubC13cmFwcGVyLnJvdyA+IGZvb3RlciA+IGRpdi5mb290ZXItYm90dG9tLnJvdyA+IGRpdjpudGgtY2hpbGQoMSkgPiBkaXY6bnRoLWNoaWxkKDEpIHsKICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7Cn0KLyogRU5EIGZvb3RlciBzdHlsZXMgKi8KCkBtZWRpYShtaW4td2lkdGg6ODAwcHgpIHsKLmNhcm91c2VsLWdsb2JhbCB7Cm1hcmdpbjogMDsKcGFkZGluZzogMDsKd2lkdGg6IDEwMCU7CiB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgNHB4ICNiYmI7CiAgICAgICAgICBib3gtc2hhZG93OiAwIDAgNHB4ICNiYmI7CiB9Cn0KQG1lZGlhKG1heC13aWR0aDo3OTlweCkgewouY2Fyb3VzZWwtZ2xvYmFsIHsKIG1hcmdpbjogMDsKcGFkZGluZzogMDsKd2lkdGg6IDEwMCU7CiBtYXgtd2lkdGg6IDEwMCU7CiAgaGVpZ2h0OiBhdXRvOwogIG1pbi13aWR0aDogMjcycHg7CiB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgNHB4ICNiYmI7CiAgICAgICAgICBib3gtc2hhZG93OiAwIDAgNHB4ICNiYmI7CiB9Cn0KCi8qIG1ha2Ugc3VyZSBjb250ZW50IGlzIGZ1bGwtd2lkdGggYXQgd2lkZSBkZXNrdG9wIHZpZXcgKi8KQG1lZGlhKG1pbi13aWR0aDoxMjEwcHgpIHsKI21haW5Db250ZW50IHsKbWluLXdpZHRoOiAxMTkwcHg7IC8qIHRvIGZpeCAqLwp3aWR0aDogMTAwJTsKIHBhZGRpbmctbGVmdDogMDsKIHBhZGRpbmctcmlnaHQ6IDA7CiBtYXJnaW46IDVweCAwIDAgMDsKfQp9CkBtZWRpYShtYXgtd2lkdGg6MTIwOXB4KSB7CiNtYWluQ29udGVudCB7Cm1heC13aWR0aDogMTAwJTsKd2lkdGg6IDEwMCU7CiBwYWRkaW5nLWxlZnQ6IDEwcHg7CiBwYWRkaW5nLXJpZ2h0OiAxMHB4OwogIG1hcmdpbjogMDsKICAgcGFkZGluZy10b3A6IDA7Cn0KfQpAbWVkaWEobWF4LXdpZHRoOjkyNXB4KSB7CiNtYWluQ29udGVudCB7CndpZHRoOiAxMDAlOwogbWF4LXdpZHRoOiAxMDAlOwogcGFkZGluZy1sZWZ0OiAyMHB4OwogcGFkZGluZy1yaWdodDogMjBweDsKIHBhZGRpbmctdG9wOiAwOwogbWFyZ2luOiAwOwp9Cn0KCi8qIGV4dHJhIGhlYWRlciBoZWlnaHQgZml4ICovCkBtZWRpYShtaW4td2lkdGg6IDEwMjZweCkgewoubC1oZWFkZXIgewogbWluLWhlaWdodDogMTY4cHg7CiBoZWlnaHQ6IDE2OHB4Owp2aXNpYmlsaXR5OiB2aXNpYmxlOwogei1pbmRleDogMTk7Cn0KfSAKCkBtZWRpYShtYXgtd2lkdGg6IDEwMjVweCkgewoubC1oZWFkZXIgewogbWluLWhlaWdodDogOTBweCAhaW1wb3J0YW50OwogaGVpZ2h0OiA5MHB4ICFpbXBvcnRhbnQ7CiAgei1pbmRleDogMTsKfQp9CgpAbWVkaWEobWluLXdpZHRoOjEwMjZweCkgewoubWFpbl9uYXYgewpwb3NpdGlvbjogYWJzb2x1dGU7CmxlZnQ6IDZweDsKdG9wOiAxMTZweDsgCiBtYXJnaW46IDA7IAogcGFkZGluZzogMDsKIHdpZHRoOiAxMDAlOwogd2hpdGUtc3BhY2U6IG5vd3JhcDsKIG1heC13aWR0aDogMTAwJTsgLyogYWRkZWQgOC0yMiAqLwogfQp9CgovKiBob21lcGFnZSBiYW5uZXIgc3BhY2luZyAqLwpAbWVkaWEobWluLXdpZHRoOjkyNnB4KSB7Cm1haW4ubC1tYWluLm1haW4ubGFyZ2UtOC5sYW5kaW5nLWNvbnRlbnQgewptYXJnaW4tdG9wOiAyMHB4OwpwYWRkaW5nOiAwOwp9Cn0KQG1lZGlhKG1heC13aWR0aDo5MjVweCkgewptYWluLmwtbWFpbi5tYWluLmxhcmdlLTgubGFuZGluZy1jb250ZW50IHsKbWFyZ2luLXRvcDogMjBweDsKcGFkZGluZzogMDsKfQp9CgoKCkBtZWRpYShtaW4td2lkdGg6MTAyNnB4KSB7IApkaXYuc2l0ZV90aXRsZSB7CiBtYXJnaW4tbGVmdDogMDsKIG1pbi1oZWlnaHQ6IDEwMHB4OyAKIG1hcmdpbi1yaWdodDogMDsKIHBhZGRpbmc6IDA7CiAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7CiBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7CiB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDsKIGNvbG9yOiAjZmZmOwogIGJhY2tncm91bmQtY29sb3I6ICNmZmYKICB6LWluZGV4OiA1MDE7Cn0KI2N0bDA1ID4gZGl2Lmwtd3JhcHBlci5yb3cgPiBoZWFkZXIgPiBkaXYuc2l0ZV90aXRsZSA+IGE6bnRoLWNoaWxkKDMpID4gaW1nIHsKIG1hcmdpbi1sZWZ0OiAwOwp9Ci5zaXRlX3RpdGxlLW1vYmlsZV9vbmx5IHsKIGRpc3BsYXk6IG5vbmU7CiBtYXJnaW46IDA7CiBwYWRkaW5nOiAwOwogIGJvcmRlcjogbm9uZTsKIG91dGxpbmU6IG5vbmUgIWltcG9ydGFudDsKIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50OwogY29sb3I6ICNmZmY7CiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsKfQouc2l0ZV90aXRsZS1saW5rLCBhLnNpdGVfdGl0bGUtbGluayB7CiBtYXJnaW46IDA7CiBwYWRkaW5nOiAwOwogYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7CiBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7CiB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDsKIGNvbG9yOiB0cmFuc3BhcmVudDsKICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsKfQouc2l0ZV90aXRsZS1pbWcsIGltZy5zaXRlX3RpdGxlLWltZyB7CiBtYXJnaW46IDA7CiBwYWRkaW5nOiAwOwogdGV4dC1hbGlnbjogbGVmdDsKIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50Owogb3V0bGluZTogbm9uZSAhaW1wb3J0YW50OwogdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7CiBjb2xvcjogI2ZmZiAhaW1wb3J0YW50OwogIGJhY2tncm91bmQtY29sb3I6ICNmZmYgIWltcG9ydGFudDsKfQovKiBoaWRlIGRpdmlkaW5nIGxpbmUgaW4gdGl0bGUgKi8KLnNpdGVfdGl0bGUtZGl2aWRlciB7CmRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgCn0KLyogbG9zZSByZWQgdW5kZXJsaW5lIG9uIGhvdmVyICovCmRpdi5zaXRlX3RpdGxlOmhvdmVyLCBkaXYuc2l0ZV90aXRsZTpmb2N1cywgLnNpdGVfdGl0bGU6aG92ZXIsIC5zaXRlX3RpdGxlOmZvY3VzLCAuc2l0ZV90aXRsZS1saW5rOmhvdmVyLCAuc2l0ZV90aXRsZS1saW5rOmZvY3VzLCBpbWcuc2l0ZV90aXRsZS1pbWc6aG92ZXIsIGltZy5zaXRlX3RpdGxlLWltZzpmb2N1cywgLnNpdGVfdGl0bGUtaW1nOmhvdmVyLCBhLnNpdGVfdGl0bGUtbGluazpob3ZlciwgYS5zaXRlX3RpdGxlLWxpbms6Zm9jdXMsIC5zaXRlX3RpdGxlLWltZzpmb2N1cywgLnNpdGVfdGl0bGUtZGl2aWRlcjpob3ZlciwgLnNpdGVfdGl0bGUtZGl2aWRlcjpmb2N1cywgLnNpdGVfdGl0bGUgPiAqOmhvdmVyLCAuc2l0ZV90aXRsZSA+ICo6Zm9jdXMgewogYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7CiBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7CiB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDsKfQovKiBsb3NlIHVuZGVybGluZSBvbiBzaXRlIHRpdGxlIGhvdmVyICovCi5zaXRlX3RpdGxlLCAuc2l0ZV90aXRsZS1pbWFnZSwgLnNpdGVfdGl0bGUtbGluaywgLnNpdGVfdGl0bGUtbW9iaWxlX29ubHksIC5zaXRlX3RpdGxlLWRpdmlkZXIsIC5zaXRlX3RpdGxlLWxpbms6aG92ZXIsIC5zaXRlX3RpdGxlOmhvdmVyLCAuc2l0ZV90aXRsZS1kaXZpZGVyOmhvdmVyLCAuc2l0ZV90aXRsZTpmb2N1cywgLnNpdGVfdGl0bGUtZGl2aWRlcjpmb2N1cywgLnNpdGVfdGl0bGUtaW1hZ2U6aG92ZXIsIC5zaXRlX3RpdGxlLWltYWdlOmZvY3VzIHsKCXRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50OwoJIGJvcmRlcjogbm9uZTsKIG91dGxpbmU6IG5vbmUgIWltcG9ydGFudDsKICB9Cn0KCkBtZWRpYShtaW4td2lkdGg6MTAyNnB4KSB7CmRpdi5zaXRlX3RpdGxlLCAuc2l0ZV90aXRsZSB7CmRpc3BsYXk6IGJsb2NrOyAKfQoubC1oZXJvIHsgCgltYXJnaW4tdG9wOiAxMHB4OwoJcGFkZGluZzogMDsKfQpuYXYuZ24tbWVudS13cmFwcGVyIHsgCnotaW5kZXg6IDIwOwp9Cn0KQG1lZGlhKG1heC13aWR0aDoxMDI1cHgpIHsKZGl2LnNpdGVfdGl0bGUsIC5zaXRlX3RpdGxlLCAuc2l0ZV90aXRsZS1saW5rIHsKZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyAKfQoubC1oZXJvIHsgCgltYXJnaW4tdG9wOiA1cHg7CglwYWRkaW5nOiAwOwp9Cm5hdi5nbi1tZW51LXdyYXBwZXIgeyAKei1pbmRleDogOTAwICFpbXBvcnRhbnQ7Cn0KLmduLXNjcm9sbGVyIHsKCQlwb3NpdGlvbjogYWJzb2x1dGU7CgkJb3ZlcmZsb3cteTogc2Nyb2xsOwoJCXdpZHRoOiAzNTBweDsKCQl0b3A6IDA7CgkJbGVmdDogMDsKCQloZWlnaHQ6IDEwMCU7CgkJei1pbmRleDogOTA3ICFpbXBvcnRhbnQ7Cgl2aXNpYmlsaXR5OiB2aXNpYmxlOwoJb3BhY2l0eTogMTsKfQp9CgojbWFpbkNvbnRlbnQgPiBmaWd1cmUsIGZpZ3VyZS5sLWhlcm8sIC5sLWhlcm8gZGl2LCAubC1oZXJvIGRpdiA+IGEsIC5sLWhlcm8gZGl2ID4gYSA+IGltZyB7IApwYWRkaW5nLXRvcDogMCAhaW1wb3J0YW50OyAKbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50OyAKfQoKQG1lZGlhKG1heC13aWR0aDogNDgwcHgpewoubW9iaWxlX2hlYWRlciB7CiAgICBoZWlnaHQ6IDEwMCU7CgliYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsKCXBvaW50ZXItZXZlbnRzOiBub25lOwoJfQouZ24tbWVudS1tYWluIHsKCQlib3JkZXItYm90dG9tOiA0cHggc29saWQgIzA3MDcwNyAhaW1wb3J0YW50Owp9Cn0KCQouZ24taWNvbi1zZWFyY2huYXY6YmVmb3JlIHsKICBjb250ZW50OiAiXGUwMTUiOwogICAgICBwYWRkaW5nLWxlZnQ6IDE1cHg7CiAgIHBhZGRpbmctcmlnaHQ6IDMycHg7Cn0KCi5mb3JtLWNvbnRyb2wgewogICAgd2lkdGg6IDEwMCU7CiAgICBoZWlnaHQ6IDM2cHg7CiAgICBwYWRkaW5nOiA2cHggMTJweDsKICAgIGJhY2tncm91bmQtY29sb3I6ICNmYWZhZmE7CiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lOwogICAgYm9yZGVyOiAxcHggc29saWQgI2NjYzsKICAgIGJvcmRlci1yYWRpdXM6IDJweDsKIG91dGxpbmU6IG5vbmUgIWltcG9ydGFudDsKfQoKLmwtc2lkZWJhcl9sZWZ0IHsKbWFyZ2luLXRvcDogMTBweCAhaW1wb3J0YW50OwpwYWRkaW5nLWxlZnQ6IDNweDsKfQoKLmJyZWFkY3J1bWItd3JhcCB7CiB0ZXh0LWFsaWduOiBsZWZ0Owp3aWR0aDogMTAwJTsKbWFyZ2luOiAxMHB4IDAgMCAwOwpwYWRkaW5nOiAxNXB4IDAgNXB4IDVweDsKIGJhY2tncm91bmQtY29sb3I6ICNmZmY7CiBjb2xvcjogIzM2MzYzNjsKIGZvbnQtd2VpZ2h0OiA2MDA7CiAgZm9udC1mYW1pbHk6ICdTb3VyY2UgU2FucyBQcm8nLCBTb3VyY2UgU2FucyBQcm8sIFNvdXJjZSBTYW5zLCAnT3BlbiBTYW5zJywgT3BlbiBTYW5zLCBBcmlhbCwgc2Fucy1zZXJpZiAhaW1wb3J0YW50OwogLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsKIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOwogdGV4dC10cmFuc2Zvcm06IG5vbmU7Cn0KdWwuYnJlYWRjcnVtYiB7CiAgcGFkZGluZzogMnB4OwogIGxpc3Qtc3R5bGU6IG5vbmU7CiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsKICBjb2xvcjogI2NjYzsKICAgZm9udC1mYW1pbHk6ICdTb3VyY2UgU2FucyBQcm8nLCBTb3VyY2UgU2FucyBQcm8sIFNvdXJjZSBTYW5zLCAnT3BlbiBTYW5zJywgT3BlbiBTYW5zLCBBcmlhbCwgc2Fucy1zZXJpZiAhaW1wb3J0YW50OwogLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsKIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOwogdGV4dC10cmFuc2Zvcm06IG5vbmU7Cn0KdWwuYnJlYWRjcnVtYiBsaSB7CiAgZm9udC1zaXplOiAxZW07CiAgZm9udC13ZWlnaHQ6IDYwMDsKICAgZm9udC1mYW1pbHk6ICdTb3VyY2UgU2FucyBQcm8nLCBTb3VyY2UgU2FucyBQcm8sIFNvdXJjZSBTYW5zLCAnT3BlbiBTYW5zJywgT3BlbiBTYW5zLCBBcmlhbCwgc2Fucy1zZXJpZiAhaW1wb3J0YW50OwogLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsKIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOwogdGV4dC10cmFuc2Zvcm06IG5vbmU7Cn0KdWwuYnJlYWRjcnVtYiBsaStsaTpiZWZvcmUgewogIHBhZGRpbmc6IDJweDsKICBjb2xvcjogI2NjYzsKICAgZm9udC1mYW1pbHk6ICJHbHlwaGljb25zIEhhbGZsaW5ncyIsR2x5cGhpY29ucyBIYWxmbGluZ3MsR2x5cGhpY29uczsKICBjb250ZW50OiAnXGUwODAnOwogICBmb250LXdlaWdodDogMjAwOwogICBmb250LXNpemU6IC43ZW07Cn0KdWwuYnJlYWRjcnVtYiBsaSBhIHsKICBjb2xvcjogI2IyMjIyMjsKICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgcGFkZGluZzogMnB4OwogICBmb250LXNpemU6IDFlbTsKICBmb250LXdlaWdodDogNjAwOwogICBmb250LWZhbWlseTogJ1NvdXJjZSBTYW5zIFBybycsIFNvdXJjZSBTYW5zIFBybywgU291cmNlIFNhbnMsICdPcGVuIFNhbnMnLCBPcGVuIFNhbnMsIEFyaWFsLCBzYW5zLXNlcmlmICFpbXBvcnRhbnQ7CgogLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsKIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOwogdGV4dC10cmFuc2Zvcm06IG5vbmU7Cn0KdWwuYnJlYWRjcnVtYiBsaSBhOmhvdmVyIHsKICBjb2xvcjogI2IyMjIyMjsKICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICAgcGFkZGluZzogMnB4OwogICAgZm9udC1zaXplOiAxZW07CiAgZm9udC13ZWlnaHQ6IDYwMDsKICAgZm9udC1mYW1pbHk6ICdTb3VyY2UgU2FucyBQcm8nLCBTb3VyY2UgU2FucyBQcm8sIFNvdXJjZSBTYW5zLCAnT3BlbiBTYW5zJywgT3BlbiBTYW5zLCBBcmlhbCwgc2Fucy1zZXJpZiAhaW1wb3J0YW50OwogLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsKIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOwogdGV4dC10cmFuc2Zvcm06IG5vbmU7Cn0KCi8qIFNVQk5BViBzdHlsZXMgKi8KLnN1Ym5hdiBhLmFjdGl2ZTphZnRlciwgLm5vLXRvdWNoIC5zdWJuYXYtcHJpbWFyeV9saW5rOmhvdmVyOmFmdGVyLCAKLm5vLXRvdWNoIC5zdWJuYXYtc2Vjb25kYXJ5X2xpbms6aG92ZXI6YWZ0ZXIgewogIGNvbnRlbnQ6ICcnOwogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICBib3R0b206IDFweDsKICBsZWZ0OiAwOwogIHdpZHRoOiAxMDAlOwogIHJpZ2h0OiAwOwogIGhlaWdodDogLjI1ZW07CiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZiAhaW1wb3J0YW50Owp9Ci5zdWJuYXYgYSB7CiAgZm9udC1mYW1pbHk6ICdTb3VyY2UgU2FucyBQcm8nLCBTb3VyY2UgU2FucyBQcm8sIFNvdXJjZSBTYW5zLCAnT3BlbiBTYW5zJywgT3BlbiBTYW5zLCBBcmlhbCwgc2Fucy1zZXJpZiAhaW1wb3J0YW50OwogIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7CiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7CiAgdGV4dC10cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDsKICBwYWRkaW5nOiAxLjA4M2VtIC44MzNlbSAuOTE3ZW07CiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICBwb3NpdGlvbjogcmVsYXRpdmU7CiBjb2xvcjogI2IyMjIyMiAhaW1wb3J0YW50OwogZm9udC13ZWlnaHQ6IDUwMDsKfQouc3VibmF2IGEuYWN0aXZlIHsKICBjb2xvcjogI2IyMjIyMiAhaW1wb3J0YW50OwoJYmFja2dyb3VuZC1jb2xvcjogI2ZmZiAhaW1wb3J0YW50OwoJZm9udC13ZWlnaHQ6IDYwMCAhaW1wb3J0YW50Owp9Ci5zdWJuYXYtcHJpbWFyeSB7CiAgICBjb2xvcjogI2IyMjIyMiAhaW1wb3J0YW50OwoJYmFja2dyb3VuZC1jb2xvcjogI2ZmZiAhaW1wb3J0YW50OwoJIGZvbnQtd2VpZ2h0OiA1MDA7Cn0KLnN1Ym5hdi1wcmltYXJ5X2xpbmsgewogIGZvbnQtc2l6ZTogLjllbTsKICBsaW5lLWhlaWdodDogLjllbTsKICBjb2xvcjogI2IyMjIyMiAhaW1wb3J0YW50OwogICBmb250LXdlaWdodDogNTAwOwp9Ci5zdWJuYXYtZmlsdGVyLW1vYmlsZSB7CiAgZGlzcGxheTogbm9uZTsKfQouc3VibmF2LWZpbHRlci1tb2JpbGUtYnV0dG9uIHsKICBkaXNwbGF5OiBub25lOwp9Ci5zdWJuYXYtZmlsdGVyLXN0YXR1cyB7CiAgZGlzcGxheTogbm9uZTsKfQouc3VibmF2LWZpbHRlci1zdGF0dXMtaWNvbiB7CmRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKfQouc3VibmF2LXNlY29uZGFyeSB7CiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50Owp9Ci5zdWJuYXYtc2Vjb25kYXJ5X2xpbmsgewogIGRpc3BsYXk6IG5vbmU7Cn0KLnN1Ym5hdi1zZWNvbmRhcnlfbGluay5hY3RpdmU6YWZ0ZXIgewogIGRpc3BsYXk6IG5vbmU7Cn0KLnN1Ym5hdiAuc3VibmF2LXByaW1hcnksIC5zdWJuYXYgewogIGRpc3BsYXk6IGJsb2NrOwogIG1heC1oZWlnaHQ6IDE1cHg7IAp9Ci5zdWJuYXYgbGkgewogIG1hcmdpbjogMDsKICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CgliYWNrZ3JvdW5kLWNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7Cn0KLnN1Ym5hdi1yb3cgewogIGRpc3BsYXk6IC1tcy1mbGV4Ym94OwogIGRpc3BsYXk6IGZsZXg7CiAgLW1zLWZsZXgtcGFjazoganVzdGlmeTsKICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgd2lkdGg6IDEwMCU7Cn0KLm5vLXRvdWNoIC5zdWJuYXYtcHJpbWFyeV9saW5rOmhvdmVyIHsKICB0cmFuc2l0aW9uOiBjb2xvciAwczsKICBjb2xvcjogI2IyMjIyMjsKCSBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOwoJdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgIWltcG9ydGFudDsKfQouZmlyZWZveCAuc3VibmF2IGEuYWN0aXZlOmFmdGVyLCAuZmlyZWZveCAuc3VibmF2IGE6aG92ZXI6YWZ0ZXIgewogIGJvdHRvbTogMDsKCSBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOwoJY29sb3I6ICNiMjIyMjI7Cn0KLnN1Ym5hdi1wcmltYXJ5IHsKICB3aWR0aDogYXV0bzsKICBkaXNwbGF5OiAtbXMtZmxleGJveDsKICBkaXNwbGF5OiBmbGV4OwogIC1tcy1mbGV4LXBhY2s6IGVuZDsKICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogIHRleHQtYWxpZ246IGxlZnQ7Cn0KQG1lZGlhKG1pbi13aWR0aDo5MjZweCkgewpuYXYuc3VibmF2IHsKcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7CmxlZnQ6IDA7CnRvcDogMTU4cHg7IAogbWFyZ2luOiAwOyAKIHBhZGRpbmc6IDA7CiBvdmVyZmxvdy14OiB3cmFwOwogb3ZlcmZsb3c6IHdyYXA7CiB3aWR0aDogMTAwJTsKIHdoaXRlLXNwYWNlOiB3cmFwOwogbWF4LXdpZHRoOiAxMDAlOwoJZm9udC1zaXplOiAuOWVtOwogfQouc3VibmF2ICB7CiAgd2lkdGg6IDEwMCU7CiAgY2xlYXI6IGJvdGg7CgliYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50OwoJY29sb3I6ICNiMjIyMjIgIWltcG9ydGFudDsKCWZvbnQtZmFtaWx5OiAnU291cmNlIFNhbnMgUHJvJywgU291cmNlIFNhbnMgUHJvLCBTb3VyY2UgU2FucywgJ09wZW4gU2FucycsIE9wZW4gU2FucywgQXJpYWwsIHNhbnMtc2VyaWYgIWltcG9ydGFudDsKICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOwogIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOwogIHRleHQtdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7CiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICBtYXgtaGVpZ2h0OiAxNXB4OyAKfQp9Ci8qIHN1Ym5hdiBvbiBtb2JpbGUgKi8gCkBtZWRpYShtYXgtd2lkdGg6OTI1cHgpIHsKbmF2LnN1Ym5hdiB7CnBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50OwpsZWZ0OiAwOwp0b3A6IDEzNXB4OyAKIG1hcmdpbjogMDsgCiBwYWRkaW5nOiAwOwogb3ZlcmZsb3cteDogd3JhcDsKIG92ZXJmbG93OiB3cmFwOwogd2lkdGg6IDk1JTsKIHdoaXRlLXNwYWNlOiB3cmFwOwogbWF4LXdpZHRoOiA5NSU7Cglmb250LXNpemU6IC45ZW07CiB9Ci5zdWJuYXYgIHsKICBjbGVhcjogYm90aDsKCWJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7Cgljb2xvcjogI2IyMjIyMiAhaW1wb3J0YW50OwoJZm9udC1mYW1pbHk6ICdTb3VyY2UgU2FucyBQcm8nLCBTb3VyY2UgU2FucyBQcm8sIFNvdXJjZSBTYW5zLCAnT3BlbiBTYW5zJywgT3BlbiBTYW5zLCBBcmlhbCwgc2Fucy1zZXJpZiAhaW1wb3J0YW50OwogIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7CiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7CiAgdGV4dC10cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDsKICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgIG1heC1oZWlnaHQ6IDE1cHg7IAp9Cn0KLyogRU5EIFNVQk5BViBzdHlsZXMgKi8KCgovKiB1dGlsaXR5IG5hdiBjb250YWluZXIgKi8KQG1lZGlhKG1pbi13aWR0aDogOTI2cHgpIHsgCi50bi1zdWJuYXYtY29tcG9uZW50IHsgCgl3aWR0aDogMTQwcHg7CiAgIHRleHQtYWxpZ246IHJpZ2h0OwogICBwb3NpdGlvbjphYnNvbHV0ZTsgCiAgICB0b3A6ODJweDsgCglyaWdodDogMTRweDsKCWRpc3BsYXk6IGJsb2NrOwoJYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7Cglmb250LXNpemU6IC45ZW07CglwYWRkaW5nOiAxcHg7CgloZWlnaHQ6IDI2cHg7Cgl6LWluZGV4OiAxOTI7CgltYXJnaW46IDA7Cn0KfQpAbWVkaWEobWF4LXdpZHRoOiA5MjVweCkgeyAKLnRuLXN1Ym5hdi1jb21wb25lbnQsIGRpdi50bi1zdWJuYXYtY29tcG9uZW50LCAudG4tc3VibmF2LWNvbXBvbmVudCA+ICogeyAKCWRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgCn0KfQovKiBidW1wIGxvZ2luIGxpbmsgY2xvc2VyIHRvIGNhcnQgYW5kIGNhcnQgZnVydGhlciBmcm9tIHByb21vICovCi50bi1sb2dpbi1saW5rIHsgCmZvbnQtc2l6ZTogLjllbSAhaW1wb3J0YW50OwptYXJnaW46IDA7CnBhZGRpbmc6IDNweCAxMHB4IDNweCAwOwpmbG9hdDogcmlnaHQ7IAp6LWluZGV4OiAzMDE7Cn0KLnRuLWNhcnQtbGluayB7IApmb250LXNpemU6IC45ZW0gIWltcG9ydGFudDsKbWFyZ2luOiAwOwpwYWRkaW5nOiAzcHggMCAzcHggMTBweDsKZmxvYXQ6IHJpZ2h0OyAKei1pbmRleDogMzAxOwp9Ci8qIEFkZCBhbiB1bmRlcmxpbmUgaG92ZXIgc3R5bGUgZm9yIHNlY29uZCBncm91cCBvZiB1dGlsaXR5IGxpbmtzICovCmEudG4tbGluazpob3ZlciwgYS50bi1saW5rOmZvY3VzLCAudG4tbGluazpob3ZlciwgLnRuLWxpbms6Zm9jdXMgewp0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSAhaW1wb3J0YW50Owpjb2xvcjogI2IyMjIyMiAhaW1wb3J0YW50OwpiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOwp9Ci8qIGxvc2UgdW5kZXJsaW5lIG9uIHV0aWxpdHkgbmF2IGljb25zICovCi50bi1pY29uOmhvdmVyLCAudG4taWNvbjpmb2N1cyB7IAp0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDsKYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsKfQphLnRuLWljb246aG92ZXIsIGEudG4taWNvbjpmb2N1cyB7IAp0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDsKYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsKfQoudG4taWNvbiwgYS50bi1pY29uIHsgCnRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50OwpiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOwpjb2xvcjogI2IyMjIyMjI7IApmaWxsOiAjYjIyMjIyMjsgCn0KLnRuLWxvZ2luLWxpbms6YmVmb3JlIHsKZm9udC1mYW1pbHk6IEZvbnRBd2Vzb21lOwpjb250ZW50OiAiXEYwMDciOwpjb2xvcjogI2IyMjIyMjsKdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7Cn0KLnRuLWNhcnQtbGluazpiZWZvcmUgewpmb250LWZhbWlseTogRm9udEF3ZXNvbWU7CmNvbnRlbnQ6ICJcRjA3QSI7CmNvbG9yOiAjYjIyMjIyOwp0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDsKfQojbWFpbkNvbnRlbnQgPiBmaWd1cmUgeyAKbWFyZ2luOiAwOyAKfQoKLnh5ei1mb3JtLWlucHV0LWJveC1mdyB7IAogIGJvcmRlcjogMXB4IHNvbGlkICNhZmFlYWU7CiAgaGVpZ2h0OiA0MHB4OwogIGJvcmRlci1yYWRpdXM6IDJweDsKICBjb2xvcjogIzk5OTsKICBtYXJnaW46IDA7CiAgd2lkdGg6IDEwMCU7CiAgbWF4LXdpZHRoOiAxMDAlOwogIHRleHQtYWxpZ246IGxlZnQ7CiBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKZm9udC13ZWlnaHQ6IDQwMDsKICBmb250LWZhbWlseTogJ0hlbHZldGljYSBOZXVlIGVUZXh0IFBybycsICdIZWx2ZXRpY2FOZXVlTFRQcm8tTHQnLCAnSGVsdmV0aWNhTmV1ZS1MaWdodCcsICdIZWx2ZXRpY2EgTmV1ZSBMaWdodCcsICdIZWx2ZXRpY2EgTmV1ZS1MaWdodCcsICdIZWx2ZXRpY2EgTmV1ZScsICdIZWx2ZXRpY2EtTmV1ZScsICdOZXVlIFBsYWsnLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmOwogIGZvbnQtc2l6ZTogMS4yZW07CiAgbGluZS1oZWlnaHQ6IDEuMmVtOwogIHRleHQtdHJhbnNmb3JtOiBub25lOwogIG1hcmdpbjogNXB4IDEwcHggNXB4IDEwcHg7CiAgcGFkZGluZzogNXB4OwogIGJveC1zaGFkb3c6IG5vbmU7IAp9Ci54eXotZm9ybS1pbnB1dC1ib3gtZnc6Zm9jdXMsIC54eXotZm9ybS1pbnB1dC1ib3gtZnc6aG92ZXIgeyAKY29sb3I6ICMxYjFiMWIgIWltcG9ydGFudDsKYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYSAhaW1wb3J0YW50OwogYm9yZGVyLWNvbG9yOiAjOTk5OwogICBib3gtc2hhZG93OiBub25lOyAKfQoKLnN5b3MtYnV5LWJ1dHRvbiB7IApmb250LWZhbWlseTogJ1NvdXJjZSBTYW5zIFBybycsIFNvdXJjZSBTYW5zIFBybywgU291cmNlIFNhbnMsICdPcGVuIFNhbnMnLCBPcGVuIFNhbnMsIEFyaWFsLCBzYW5zLXNlcmlmOwogICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsKCS13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOwpmb250LXdlaWdodDogNjAwOyAKbWFyZ2luOiAwOyAKcGFkZGluZzogMDsKd2lkdGg6IDEwMCU7CmZvbnQtc2l6ZTogMS4zZW07IAptaW4td2lkdGg6IDEwMCU7Cm1heC13aWR0aDogMTAwJTsKdGV4dC1hbGlnbjogY2VudGVyOwp3aGl0ZS1zcGFjZTogbm93cmFwOwp9Cgouc3lvcy1idXktYnV0dG9uIGEgewpmb250LXNpemU6IDEuM2VtOyAKbGluZS1oZWlnaHQ6IDFlbTsgCnBhZGRpbmc6IC43ZW0gMmVtIC43ZW0gMmVtOwpib3JkZXItc3R5bGU6IG5vbmU7CmJvcmRlci1yYWRpdXM6IDA7CmJhY2tncm91bmQtY29sb3I6ICNiMjIyMjI7CmNvbG9yOiAjZmZmOwpwb3NpdGlvbjogcmVsYXRpdmU7CmRpc3BsYXk6IGJsb2NrOyAKIGZvbnQtZmFtaWx5OiAnU291cmNlIFNhbnMgUHJvJywgU291cmNlIFNhbnMgUHJvLCBTb3VyY2UgU2FucywgJ09wZW4gU2FucycsIE9wZW4gU2FucywgQXJpYWwsIHNhbnMtc2VyaWY7CiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOwoJLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7Cglmb250LXdlaWdodDogNjAwOyAKdGV4dC1kZWNvcmF0aW9uOiBub25lOwp0ZXh0LWFsaWduOiBjZW50ZXI7Cm9wYWNpdHk6IDEwMCU7CndpZHRoOiAxMDAlOwptYXgtd2lkdGg6IDEwMCU7CndoaXRlLXNwYWNlOiBub3dyYXA7Cm1hcmdpbjogMDsKfQouc3lvcy1idXktYnV0dG9uIGE6aG92ZXIsIC5zeW9zLWJ1eS1idXR0b24gYTpmb2N1cyB7IApiYWNrZ3JvdW5kLWNvbG9yOiAjMWIxYjFiICFpbXBvcnRhbnQ7CmNvbG9yOiAjZWVlOwpvcGFjaXR5OiAxMDAlOwp0ZXh0LWRlY29yYXRpb246IG5vbmU7Cn0KCkBtZWRpYShtaW4td2lkdGg6IDEwMjZweCkgewpoMS5wYWdlX3RpdGxlIHsKIG1hcmdpbi10b3A6IDQwcHggIWltcG9ydGFudDsKfQp9CgovKiBFTkQgY3NvIGN1c3RvbSBzdHlsZXMgKi8KPC9zdHlsZT4KCQo8IS0tIFN0YXJ0IEdOIE5hdiAgLS0+Cgo8IS0tIHN0eWxlcyBhbmQgc2NyaXB0cyBmb3IgZ24gbW9iaWxlIG5hdiAtLT4KCTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Imh0dHBzOi8vY3NvLm9yZy9jb250ZW50YXNzZXRzLzVmMDAwNGQ1OGZlMzQyNmI5MzYzZGFmMDI0MmJlM2ZkL2duLW5hdi9kZW1vLmNzcyIgLz4KCQk8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJodHRwczovL2Nzby5vcmcvY29udGVudGFzc2V0cy81ZjAwMDRkNThmZTM0MjZiOTM2M2RhZjAyNDJiZTNmZC9nbi1uYXYvY29tcG9uZW50LmNzcyIgLz4KPCEtLSBHTiBNb2JpbGUgTmF2IEhlYWRlciAtLT4KPG5hdiBjbGFzcz0ibW9iaWxlX2hlYWRlciIgcm9sZT0ibmF2aWdhdGlvbiIgc3R5bGU9Im1heC13aWR0aDogMTAwJTsgb3ZlcmZsb3c6IGhpZGRlbjsiPgogIDxkaXYgY2xhc3M9ImduLWNvbnRhaW5lciI+ICAKIDwhLS0gZ24tbWVudS1tYWluIC0tPgogPHVsIGlkPSJnbi1tZW51IiBjbGFzcz0iZ24tbWVudS1tYWluIiBzdHlsZT0iY3Vyc29yOiBwb2ludGVyOyI+CiAgIDwhLS0gZ24tdHJpZ2dlciBjb2x1bW4gMSAtLT4KICAgPGxpIGNsYXNzPSJnbi10cmlnZ2VyIiBzdHlsZT0iY3Vyc29yOiBwb2ludGVyOyI+PGEgY2xhc3M9ImduLWljb24gZ24taWNvbi1tZW51IiBzdHlsZT0iY3Vyc29yOiBwb2ludGVyOyIgaHJlZj0iamF2YXNjcmlwdDpvbkNsaWNrPScnOyI+PHNwYW4+TWVudTwvc3Bhbj48L2E+IDwhLS0gTUVOVSBJQ09OIC0tPgo8bmF2IGNsYXNzPSJnbi1tZW51LXdyYXBwZXIiIHN0eWxlPSJjdXJzb3I6IHBvaW50ZXI7Ij4gPCEtLSBnbi1tZW51LXdyYXBwZXIgTkFWIC0tPgo8ZGl2IGNsYXNzPSJnbi1zY3JvbGxlciI+Cjx1bCBjbGFzcz0iZ24tbWVudSIgc3R5bGU9ImN1cnNvcjogcG9pbnRlcjsiPgogPGxpPjxhIHN0eWxlPSJjdXJzb3I6IHBvaW50ZXI7IiBocmVmPSJodHRwczovL29yZGVyLmNzby5vcmcvZXZlbnRzIiB0aXRsZT0iVGlja2V0cyBhbmQgRXZlbnRzIiBjbGFzcz0iZ24taWNvbiBnbi1pY29uLWNoZXZyb24tcmlnaHQiPlRpY2tldHMgJmFtcDsgRXZlbnRzPC9hPjwvbGk+CiA8bGk+PGEgc3R5bGU9ImN1cnNvcjogcG9pbnRlcjsiIGhyZWY9Imh0dHBzOi8vY3NvLm9yZy9wbGFuLXlvdXItdmlzaXQvIiB0aXRsZT0iUGxhbiBZb3VyIFZpc2l0IiBjbGFzcz0iZ24taWNvbiBnbi1pY29uLWNoZXZyb24tcmlnaHQiPlBsYW4gWW91ciBWaXNpdDwvYT48L2xpPgogPGxpPjxhIHN0eWxlPSJjdXJzb3I6IHBvaW50ZXI7IiBocmVmPSJodHRwczovL2Nzby5vcmcvc3VwcG9ydCIgdGl0bGU9IlN1cHBvcnQiIGNsYXNzPSJnbi1pY29uIGduLWljb24tY2hldnJvbi1yaWdodCI+U3VwcG9ydDwvYT48L2xpPgogPGxpPjxhIGhyZWY9Imh0dHBzOi8vY3NvLm9yZy9pbnN0aXR1dGUiIHRpdGxlPSJOZWdhdW5lZSBNdXNpYyBJbnN0aXR1dGUiIGNsYXNzPSJnbi1pY29uIGduLWljb24tY2hldnJvbi1yaWdodCI+TmVnYXVuZWUgTXVzaWMgSW5zdGl0dXRlPC9hPjwvbGk+CiA8bGk+PGEgc3R5bGU9ImN1cnNvcjogcG9pbnRlcjsiIGhyZWY9Imh0dHBzOi8vY3NvLm9yZy9hYm91dCIgdGl0bGU9IkFib3V0IHRoZSBDU08iIGNsYXNzPSJnbi1pY29uIGduLWljb24tY2hldnJvbi1yaWdodCI+QWJvdXQ8L2E+PC9saT4KCiAgPGxpPjxhIHN0eWxlPSJjdXJzb3I6IHBvaW50ZXI7IiBocmVmPSJodHRwczovL2Nzby5vcmcvc2VhcmNoIiB0aXRsZT0iU2VhcmNoIiBjbGFzcz0iZ24taWNvbiBnbi1pY29uLWNoZXZyb24tcmlnaHQiPlNlYXJjaDwvYT48L2xpPgogPGxpPjxhIHN0eWxlPSJjdXJzb3I6IHBvaW50ZXI7IiBocmVmPSJodHRwczovL29yZGVyLmNzby5vcmcvY2FydC9kZXRhaWxzIiB0aXRsZT0iTXkgQ2FydCIgY2xhc3M9ImduLWljb24gZ24taWNvbi1zaG9wcGluZy1jYXJ0Ij5NeSBDYXJ0PC9hPjwvbGk+CiA8bGk+PGEgc3R5bGU9ImN1cnNvcjogcG9pbnRlcjsiIGhyZWY9Imh0dHBzOi8vb3JkZXIuY3NvLm9yZy9hY2NvdW50L2xvZ2luIiB0aXRsZT0iTXkgQWNjb3VudCIgY2xhc3M9ImduLWljb24gZ24taWNvbi11c2VyIj5NeSBBY2NvdW50PC9hPjwvbGk+CgogPGxpPjxhIHN0eWxlPSJjdXJzb3I6IHBvaW50ZXI7IiBocmVmPSJodHRwczovL2Nzb3NvdW5kc2FuZHN0b3JpZXMub3JnLyIgdGFyZ2V0PSJfYmxhbmsiIHRpdGxlPSJDU08gU291bmRzIGFuZCBTdG9yaWVzIiBjbGFzcz0iZ24taWNvbiBnbi1pY29uLW5ldy13aW5kb3ciPlNvdW5kcyAmYW1wOyBTdG9yaWVzPC9hPjwvbGk+CiA8bGk+PGEgc3R5bGU9ImN1cnNvcjogcG9pbnRlcjsiIGhyZWY9Imh0dHBzOi8vd3d3LnN5bXBob255c3RvcmUuY29tLyIgdGFyZ2V0PSJfYmxhbmsiIHRpdGxlPSJTeW1waG9ueSBTdG9yZSIgY2xhc3M9ImduLWljb24gZ24taWNvbi1uZXctd2luZG93Ij5TeW1waG9ueSBTdG9yZTwvYT48L2xpPgkJCQkKPC91bD4KPC9kaXY+PCEtLSAvZ24tc2Nyb2xsZXIgLS0+CjwvbmF2PgogICA8L2xpPgogICA8IS0tIC9nbi10cmlnZ2VyIGNvbHVtbiAxIC0tPiAKICAgPGxpIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7IHBhZGRpbmc6IDBweCA1cHggMHB4IDVweDsiPiAmbmJzcDsgPC9saT4KICAgPGxpIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7IHBhZGRpbmc6IDBweCA1cHggMHB4IDVweDsiPiAmbmJzcDsgPC9saT4KICAgPGxpIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGJvcmRlci1jb2xvcjogI2ZmZjsgd2lkdGg6IDYwcHg7IHBhZGRpbmc6IDA7IG1hcmdpbjogMDsgdGV4dC1hbGlnbjogY2VudGVyOyB2ZXJ0aWNhbC1hbGlnbjogdG9wOyI+IDxhIGhyZWY9Imh0dHBzOi8vY3NvLm9yZy8iIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB0ZXh0LWFsaWduOiBjZW50ZXI7IHBhZGRpbmc6IDA7IHZlcnRpY2FsLWFsaWduOiB0b3A7Ij48aW1nIHNyYz0iaHR0cHM6Ly9jc28ub3JnL2NvbnRlbnRhc3NldHMvNWYwMDA0ZDU4ZmUzNDI2YjkzNjNkYWYwMjQyYmUzZmQvaWNvbnMvbmF2LWxvZ28tNjB4NDgucG5nIiBhbHQ9IkNoaWNhZ28gU3ltcGhvbnkgT3JjaGVzdHJhIC0gSG9tZSIgYm9yZGVyPSIwIiBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyB2ZXJ0aWNhbC1hbGlnbjogdG9wOyIgLz48L2E+PC9saT4KIDwvdWw+CiAgPC9kaXY+CiAgCjwhLS0gU1RBUlQgQ2xhc3NpZSBIZWxwZXJzIC0tPgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci8vIGNsYXNzaWUgbmF2IC0gY2xhc3MgaGVscGVyIGZ1bmN0aW9ucyBmcm9tIC9nbi1uYXYvY2xhc3NpZS5qcyAKLy8gY2xhc3NpZS5oYXMoIGVsZW0sICdteS1jbGFzcycgdHJ1ZS9mYWxzZSAKLy8gY2xhc3NpZS5hZGQoIGVsZW0sICdteS1uZXctY2xhc3MnIAovLyBjbGFzc2llLnJlbW92ZSggZWxlbSwgJ215LXVud2FudGVkLWNsYXNzJyAKLy8gY2xhc3NpZS50b2dnbGUoIGVsZW0sICdteS1jbGFzcycgCi8vIGpzaGludCBicm93c2VyOiB0cnVlLCBzdHJpY3Q6IHRydWUsIHVuZGVmOiB0cnVlCi8vIGdsb2JhbCBkZWZpbmU6IGZhbHNlCgooIGZ1bmN0aW9uKCB3aW5kb3cgKSB7CgondXNlIHN0cmljdCc7CgovLyBjbGFzcyBoZWxwZXIgZnVuY3Rpb25zCgpmdW5jdGlvbiBjbGFzc1JlZyggY2xhc3NOYW1lICkgewogIHJldHVybiBuZXcgUmVnRXhwKCIoXnxcXHMrKSIgKyBjbGFzc05hbWUgKyAiKFxccyt8JCkiKTsKfQoKLy8gY2xhc3NMaXN0IHN1cHBvcnQgZm9yIGNsYXNzIG1hbmFnZW1lbnQKdmFyIGhhc0NsYXNzLCBhZGRDbGFzcywgcmVtb3ZlQ2xhc3M7CgppZiAoICdjbGFzc0xpc3QnIGluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCApIHsKICBoYXNDbGFzcyA9IGZ1bmN0aW9uKCBlbGVtLCBjICkgewogICAgcmV0dXJuIGVsZW0uY2xhc3NMaXN0LmNvbnRhaW5zKCBjICk7CiAgfTsKICBhZGRDbGFzcyA9IGZ1bmN0aW9uKCBlbGVtLCBjICkgewogICAgZWxlbS5jbGFzc0xpc3QuYWRkKCBjICk7CiAgfTsKICByZW1vdmVDbGFzcyA9IGZ1bmN0aW9uKCBlbGVtLCBjICkgewogICAgZWxlbS5jbGFzc0xpc3QucmVtb3ZlKCBjICk7CiAgfTsKfQplbHNlIHsKICBoYXNDbGFzcyA9IGZ1bmN0aW9uKCBlbGVtLCBjICkgewogICAgcmV0dXJuIGNsYXNzUmVnKCBjICkudGVzdCggZWxlbS5jbGFzc05hbWUgKTsKICB9OwogIGFkZENsYXNzID0gZnVuY3Rpb24oIGVsZW0sIGMgKSB7CiAgICBpZiAoICFoYXNDbGFzcyggZWxlbSwgYyApICkgewogICAgICBlbGVtLmNsYXNzTmFtZSA9IGVsZW0uY2xhc3NOYW1lICsgJyAnICsgYzsKICAgIH0KICB9OwogIHJlbW92ZUNsYXNzID0gZnVuY3Rpb24oIGVsZW0sIGMgKSB7CiAgICBlbGVtLmNsYXNzTmFtZSA9IGVsZW0uY2xhc3NOYW1lLnJlcGxhY2UoIGNsYXNzUmVnKCBjICksICcgJyApOwogIH07Cn0KCmZ1bmN0aW9uIHRvZ2dsZUNsYXNzKCBlbGVtLCBjICkgewogIHZhciBmbiA9IGhhc0NsYXNzKCBlbGVtLCBjICkgPyByZW1vdmVDbGFzcyA6IGFkZENsYXNzOwogIGZuKCBlbGVtLCBjICk7Cn0KCnZhciBjbGFzc2llID0gewogIC8vIGZ1bGwgbmFtZXMKICBoYXNDbGFzczogaGFzQ2xhc3MsCiAgYWRkQ2xhc3M6IGFkZENsYXNzLAogIHJlbW92ZUNsYXNzOiByZW1vdmVDbGFzcywKICB0b2dnbGVDbGFzczogdG9nZ2xlQ2xhc3MsCiAgLy8gc2hvcnQgbmFtZXMKICBoYXM6IGhhc0NsYXNzLAogIGFkZDogYWRkQ2xhc3MsCiAgcmVtb3ZlOiByZW1vdmVDbGFzcywKICB0b2dnbGU6IHRvZ2dsZUNsYXNzCn07CgovLyB0cmFuc3BvcnQKaWYgKCB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgKSB7CiAgLy8gQU1ECiAgZGVmaW5lKCBjbGFzc2llICk7Cn0gZWxzZSB7CiAgLy8gYnJvd3NlciBnbG9iYWwKICB3aW5kb3cuY2xhc3NpZSA9IGNsYXNzaWU7Cn0KCn0pKCB3aW5kb3cgKTsKCjwvc2NyaXB0PgoKPCEtLSAvRU5EIENsYXNzaWUgSGVscGVycyAtLT4KCjwhLS0gU1RBUlQgR04gTkFWIFNDUklQVCAtLT4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgovKiBnbm1lbnUuanMgdjEuMC4wICBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgKi8KOyggZnVuY3Rpb24oIHdpbmRvdyApIHsKCQoJJ3VzZSBzdHJpY3QnOwoKCS8vIHNlZSBzdGFja292ZXJmbG93LmNvbS9hLzExMzgxNzMwLzk4OTQzOQoJZnVuY3Rpb24gbW9iaWxlY2hlY2soKSB7CgkJdmFyIGNoZWNrID0gZmFsc2U7CgkJKGZ1bmN0aW9uKGEpe2lmKC8oYW5kcm9pZHxpcGFkfHBsYXlib29rfHNpbGt8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlyaXN8a2luZGxlfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2kudGVzdChhKXx8LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaS50ZXN0KGEuc3Vic3RyKDAsNCkpKWNoZWNrID0gdHJ1ZX0pKG5hdmlnYXRvci51c2VyQWdlbnR8fG5hdmlnYXRvci52ZW5kb3J8fHdpbmRvdy5vcGVyYSk7CgkJcmV0dXJuIGNoZWNrOwoJfQoKCWZ1bmN0aW9uIGduTWVudSggZWwsIG9wdGlvbnMgKSB7CQoJCXRoaXMuZWwgPSBlbDsKCQl0aGlzLl9pbml0KCk7Cgl9CgoJZ25NZW51LnByb3RvdHlwZSA9IHsKCQlfaW5pdCA6IGZ1bmN0aW9uKCkgewoJCQl0aGlzLnRyaWdnZXIgPSB0aGlzLmVsLnF1ZXJ5U2VsZWN0b3IoICdhLmduLWljb24tbWVudScgKTsKCQkJdGhpcy5tZW51ID0gdGhpcy5lbC5xdWVyeVNlbGVjdG9yKCAnbmF2LmduLW1lbnUtd3JhcHBlcicgKTsKCQkJdGhpcy5pc01lbnVPcGVuID0gZmFsc2U7CgkJCXRoaXMuZXZlbnR0eXBlID0gbW9iaWxlY2hlY2soKSA/ICd0b3VjaHN0YXJ0JyA6ICdjbGljayc7CgkJCXRoaXMuX2luaXRFdmVudHMoKTsKCgkJCXZhciBzZWxmID0gdGhpczsKCQkJdGhpcy5ib2R5Q2xpY2tGbiA9IGZ1bmN0aW9uKCkgewoJCQkJc2VsZi5fY2xvc2VNZW51KCk7CgkJCQl0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIoIHNlbGYuZXZlbnR0eXBlLCBzZWxmLmJvZHlDbGlja0ZuICk7CgkJCX07CgkJfSwKCQlfaW5pdEV2ZW50cyA6IGZ1bmN0aW9uKCkgewoJCQl2YXIgc2VsZiA9IHRoaXM7CgoJCQlpZiggIW1vYmlsZWNoZWNrKCkgKSB7CgkJCQl0aGlzLnRyaWdnZXIuYWRkRXZlbnRMaXN0ZW5lciggJ21vdXNlb3ZlcicsIGZ1bmN0aW9uKGV2KSB7IHNlbGYuX29wZW5JY29uTWVudSgpOyB9ICk7CgkJCQl0aGlzLnRyaWdnZXIuYWRkRXZlbnRMaXN0ZW5lciggJ21vdXNlb3V0JywgZnVuY3Rpb24oZXYpIHsgc2VsZi5fY2xvc2VJY29uTWVudSgpOyB9ICk7CgkJCQoJCQkJdGhpcy5tZW51LmFkZEV2ZW50TGlzdGVuZXIoICdtb3VzZW92ZXInLCBmdW5jdGlvbihldikgewoJCQkJCXNlbGYuX29wZW5NZW51KCk7IAoJCQkJCWRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIHNlbGYuZXZlbnR0eXBlLCBzZWxmLmJvZHlDbGlja0ZuICk7IAoJCQkJfSApOwoJCQl9CgkJCXRoaXMudHJpZ2dlci5hZGRFdmVudExpc3RlbmVyKCB0aGlzLmV2ZW50dHlwZSwgZnVuY3Rpb24oIGV2ICkgewoJCQkJZXYuc3RvcFByb3BhZ2F0aW9uKCk7CgkJCQlldi5wcmV2ZW50RGVmYXVsdCgpOwoJCQkJaWYoIHNlbGYuaXNNZW51T3BlbiApIHsKCQkJCQlzZWxmLl9jbG9zZU1lbnUoKTsKCQkJCQlkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCBzZWxmLmV2ZW50dHlwZSwgc2VsZi5ib2R5Q2xpY2tGbiApOwoJCQkJfQoJCQkJZWxzZSB7CgkJCQkJc2VsZi5fb3Blbk1lbnUoKTsKCQkJCQlkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCBzZWxmLmV2ZW50dHlwZSwgc2VsZi5ib2R5Q2xpY2tGbiApOwoJCQkJfQoJCQl9ICk7CgkJCXRoaXMubWVudS5hZGRFdmVudExpc3RlbmVyKCB0aGlzLmV2ZW50dHlwZSwgZnVuY3Rpb24oZXYpIHsgZXYuc3RvcFByb3BhZ2F0aW9uKCk7IH0gKTsKCQl9LAoJCV9vcGVuSWNvbk1lbnUgOiBmdW5jdGlvbigpIHsKCQkJY2xhc3NpZS5hZGQoIHRoaXMubWVudSwgJ2duLW9wZW4tcGFydCcgKTsKCQl9LAoJCV9jbG9zZUljb25NZW51IDogZnVuY3Rpb24oKSB7CgkJCWNsYXNzaWUucmVtb3ZlKCB0aGlzLm1lbnUsICdnbi1vcGVuLXBhcnQnICk7CgkJfSwKCQlfb3Blbk1lbnUgOiBmdW5jdGlvbigpIHsKCQkJaWYoIHRoaXMuaXNNZW51T3BlbiApIHJldHVybjsKCQkJY2xhc3NpZS5hZGQoIHRoaXMudHJpZ2dlciwgJ2duLXNlbGVjdGVkJyApOwoJCQl0aGlzLmlzTWVudU9wZW4gPSB0cnVlOwoJCQljbGFzc2llLmFkZCggdGhpcy5tZW51LCAnZ24tb3Blbi1hbGwnICk7CgkJCXRoaXMuX2Nsb3NlSWNvbk1lbnUoKTsKCQl9LAoJCV9jbG9zZU1lbnUgOiBmdW5jdGlvbigpIHsKCQkJaWYoICF0aGlzLmlzTWVudU9wZW4gKSByZXR1cm47CgkJCWNsYXNzaWUucmVtb3ZlKCB0aGlzLnRyaWdnZXIsICdnbi1zZWxlY3RlZCcgKTsKCQkJdGhpcy5pc01lbnVPcGVuID0gZmFsc2U7CgkJCWNsYXNzaWUucmVtb3ZlKCB0aGlzLm1lbnUsICdnbi1vcGVuLWFsbCcgKTsKCQkJdGhpcy5fY2xvc2VJY29uTWVudSgpOwoJCX0KCX0KCgkvLyBhZGQgdG8gZ2xvYmFsIG5hbWVzcGFjZQoJd2luZG93LmduTWVudSA9IGduTWVudTsKCn0gKSggd2luZG93ICk7Cgo8L3NjcmlwdD4KPCEtLSAvRU5EIEdOIE5BViBTQ1JJUFQgLS0+CjwhLS0gL0VORCBHTiBOYXYgLS0+CiAgPCEtLSBHTiBOYXYgR28gU2NyaXB0IC0tPiAKPHNjcmlwdD4KCW5ldyBnbk1lbnUoIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCAnZ24tbWVudScgKSApOwo8L3NjcmlwdD4KICA8IS0tIC9FTkQgR04gTmF2IEdvIFNjcmlwdCAtLT4gCjwvbmF2Pgo8IS0tIC8vLyBFbmQgTW9iaWxlIE5hdiBIZWFkZXIgLS0+CgoKPCEtLSAvLy8vLyBsb2dvIGhlYWRlciAtLT4KPGRpdiBjbGFzcz0ic2l0ZV90aXRsZSIgcm9sZT0iYmFubmVyIiBzdHlsZT0iZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7IHRvcDogMTBweDsgbGVmdDogMDsgdGV4dC1hbGlnbjp0b3A7IGJhY2tncm91bmQtY29sb3I6ICNmZmY7Ij4KICAgIDxhIGNsYXNzPSJzaXRlX3RpdGxlLWxpbmsiIHRpdGxlPSJDaGljYWdvIFN5bXBob255IE9yY2hlc3RyYSBIb21lcGFnZSIgaHJlZj0iaHR0cHM6Ly9jc28ub3JnLyI+PGltZyBpZD0iaW1nU3dhcHBlciIgYm9yZGVyPSIwIiBjbGFzcz0ic2l0ZV90aXRsZS1pbWciIHN0eWxlPSJwYWRkaW5nOiAwOyBtYXJnaW46IDA7IGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50OyB0b3A6IDEwcHg7IGxlZnQ6IDA7IGJhY2tncm91bmQtY29sb3I6ICNmZmY7IiBzcmM9Imh0dHBzOi8vY3NvLm9yZy9jb250ZW50YXNzZXRzLzVmMDAwNGQ1OGZlMzQyNmI5MzYzZGFmMDI0MmJlM2ZkL2Nzby1sb2dvLWFuaW1hdGVkLmdpZiIgYWx0PSJDaGljYWdvIFN5bXBob255IE9yY2hlc3RyYSIgdGl0bGU9IkNoaWNhZ28gU3ltcGhvbnkgT3JjaGVzdHJhIj48L2E+Cgk8YSBjbGFzcz0ic2l0ZV90aXRsZS1saW5rIiB0aXRsZT0iQ2hpY2FnbyBTeW1waG9ueSBPcmNoZXN0cmEgSG9tZXBhZ2UiIGhyZWY9Imh0dHBzOi8vY3NvLm9yZy8iPjxpbWcgc3R5bGU9InBhZGRpbmc6IDA7IG1hcmdpbjogMDsiIGNsYXNzPSJzaXRlX3RpdGxlLWltZyIgYm9yZGVyPSIwIiBzcmM9Imh0dHBzOi8vY3NvLm9yZy9jb250ZW50YXNzZXRzLzVmMDAwNGQ1OGZlMzQyNmI5MzYzZGFmMDI0MmJlM2ZkL2Nzby1sb2dvLXRleHQucG5nIiBhbHQ9IkNoaWNhZ28gU3ltcGhvbnkgT3JjaGVzdHJhIiB0aXRsZT0iQ2hpY2FnbyBTeW1waG9ueSBPcmNoZXN0cmEiIC8+PC9hPgo8L2Rpdj4KPCEtLSAvLy8gZW5kIGxvZ28gaGVhZGVyIC0tPgoKPCEtLSBUTiBTdWJuYXYgY29tcG9uZW50IC0tPiAKPG5hdiBjbGFzcz0idG4tc3VibmF2LWNvbXBvbmVudCI+CiA8ZGl2IGNsYXNzPSJ0bi1jYXJ0LWxpbmsgdG4tYWN0aXZlIj4KICAgICAgICA8YSBocmVmPSJodHRwczovL29yZGVyLmNzby5vcmcvY2FydC9kZXRhaWxzIiBjbGFzcz0idG4tbGluayI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0bi10ZXh0Ij5DYXJ0PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0idG4taWNvbiI+PC9zcGFuPgogICAgICAgIDwvYT4KIDwvZGl2PgogIDxkaXYgY2xhc3M9InRuLWxvZ2luLWxpbmsiPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9vcmRlci5jc28ub3JnL2FjY291bnQvbG9naW4iIGNsYXNzPSJ0bi1saW5rIj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idG4taWNvbiI+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0bi10ZXh0Ij5Mb2dpbjwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvYT4KIDwvZGl2PgogPGRpdiBzdHlsZT0iY2xlYXI6IGJvdGg7Ij48L2Rpdj4KPC9uYXY+Cgo8IS0tIGltYWdlIHN3YXAgc2NyaXB0IGZvciBsb2dvIC0tPgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiAgICAkKGZ1bmN0aW9uKCkgewogICAgICAgICQoIiNpbWdTd2FwcGVyIikuaG92ZXIoCiAgICAgICAgICAgIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgJCh0aGlzKS5hdHRyKCJzcmMiLCAiaHR0cHM6Ly9jc28ub3JnL2NvbnRlbnRhc3NldHMvNWYwMDA0ZDU4ZmUzNDI2YjkzNjNkYWYwMjQyYmUzZmQvY3NvLWxvZ28tYW5pbWF0ZWQuZ2lmIik7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgJCh0aGlzKS5hdHRyKCJzcmMiLCAiaHR0cHM6Ly9jc28ub3JnL2NvbnRlbnRhc3NldHMvNWYwMDA0ZDU4ZmUzNDI2YjkzNjNkYWYwMjQyYmUzZmQvY3NvLWxvZ28tc3RhdGljLmdpZiIpOwogICAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICk7ICAgICAgICAgICAgICAgICAgCiAgICB9KTsKPC9zY3JpcHQ+CjwhLS0gRW5kIGltYWdlIHN3YXAgc2NyaXB0IGZvciBsb2dvIC0tPgoKPG5hdiBjbGFzcz0iZ24tbWVudS13cmFwcGVyIiBzdHlsZT0iY3Vyc29yOiBwb2ludGVyOyI+IAo8ZGl2IGNsYXNzPSJnbi1zY3JvbGxlciI+Cjx1bCBjbGFzcz0iZ24tbWVudSIgc3R5bGU9ImN1cnNvcjogcG9pbnRlcjsiPgogPGxpPjxhIHN0eWxlPSJjdXJzb3I6IHBvaW50ZXI7IiBocmVmPSJodHRwczovL29yZGVyLmNzby5vcmcvZXZlbnRzIiB0aXRsZT0iVGlja2V0cyBhbmQgRXZlbnRzIiBjbGFzcz0iZ24taWNvbiBnbi1pY29uLWNoZXZyb24tcmlnaHQiPlRpY2tldHMgJmFtcDsgRXZlbnRzPC9hPjwvbGk+CiA8bGk+PGEgc3R5bGU9ImN1cnNvcjogcG9pbnRlcjsiIGhyZWY9Imh0dHBzOi8vY3NvLm9yZy9wbGFuLXlvdXItdmlzaXQvIiB0aXRsZT0iUGxhbiBZb3VyIFZpc2l0IiBjbGFzcz0iZ24taWNvbiBnbi1pY29uLWNoZXZyb24tcmlnaHQiPlBsYW4gWW91ciBWaXNpdDwvYT48L2xpPgogPGxpPjxhIHN0eWxlPSJjdXJzb3I6IHBvaW50ZXI7IiBocmVmPSJodHRwczovL2Nzby5vcmcvc3VwcG9ydCIgdGl0bGU9IlN1cHBvcnQiIGNsYXNzPSJnbi1pY29uIGduLWljb24tY2hldnJvbi1yaWdodCI+U3VwcG9ydDwvYT48L2xpPgogPGxpPjxhIGhyZWY9Imh0dHBzOi8vY3NvLm9yZy9pbnN0aXR1dGUiIHRpdGxlPSJOZWdhdW5lZSBNdXNpYyBJbnN0aXR1dGUiIGNsYXNzPSJnbi1pY29uIGduLWljb24tY2hldnJvbi1yaWdodCI+TmVnYXVuZWUgTXVzaWMgSW5zdGl0dXRlPC9hPjwvbGk+CiA8bGk+PGEgc3R5bGU9ImN1cnNvcjogcG9pbnRlcjsiIGhyZWY9Imh0dHBzOi8vY3NvLm9yZy9hYm91dCIgdGl0bGU9IkFib3V0IHRoZSBDU08iIGNsYXNzPSJnbi1pY29uIGduLWljb24tY2hldnJvbi1yaWdodCI+QWJvdXQ8L2E+PC9saT4KIDxsaT48YSBocmVmPSJodHRwczovL2Nzby5vcmcvc2VhcmNoIiB0aXRsZT0iU2VhcmNoIiBjbGFzcz0iZ24taWNvbiBnbi1pY29uLWNoZXZyb24tcmlnaHQiPlNlYXJjaDwvYT48L2xpPgogPGxpPjxhIHN0eWxlPSJjdXJzb3I6IHBvaW50ZXI7IiBocmVmPSJodHRwczovL29yZGVyLmNzby5vcmcvY2FydC9kZXRhaWxzIiB0aXRsZT0iTXkgQ2FydCIgY2xhc3M9ImduLWljb24gZ24taWNvbi1zaG9wcGluZy1jYXJ0Ij5NeSBDYXJ0PC9hPjwvbGk+CiA8bGk+PGEgc3R5bGU9ImN1cnNvcjogcG9pbnRlcjsiIGhyZWY9Imh0dHBzOi8vb3JkZXIuY3NvLm9yZy9hY2NvdW50L2xvZ2luIiB0aXRsZT0iTXkgQWNjb3VudCIgY2xhc3M9ImduLWljb24gZ24taWNvbi11c2VyIj5NeSBBY2NvdW50PC9hPjwvbGk+CiA8bGk+PGEgc3R5bGU9ImN1cnNvcjogcG9pbnRlcjsiIGhyZWY9Imh0dHBzOi8vY3Nvc291bmRzYW5kc3Rvcmllcy5vcmcvIiB0YXJnZXQ9Il9ibGFuayIgdGl0bGU9IkNTTyBTb3VuZHMgYW5kIFN0b3JpZXMiIGNsYXNzPSJnbi1pY29uIGduLWljb24tbmV3LXdpbmRvdyI+U291bmRzICZhbXA7IFN0b3JpZXM8L2E+PC9saT4KIDxsaT48YSBzdHlsZT0iY3Vyc29yOiBwb2ludGVyOyIgaHJlZj0iaHR0cHM6Ly93d3cuc3ltcGhvbnlzdG9yZS5jb20vIiB0YXJnZXQ9Il9ibGFuayIgdGl0bGU9IlN5bXBob255IFN0b3JlIiBjbGFzcz0iZ24taWNvbiBnbi1pY29uLW5ldy13aW5kb3ciPlN5bXBob255IFN0b3JlPC9hPjwvbGk+CQkJCQo8L3VsPgo8L2Rpdj4KPC9uYXY+Cgo8IS0tIE1vZGVybml6ciAyLjYuMiAtLT4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGFzeW5jPSJhc3luYyI+Cjt3aW5kb3cuTW9kZXJuaXpyPWZ1bmN0aW9uKGEsYixjKXtmdW5jdGlvbiB3KGEpe2ouY3NzVGV4dD1hfWZ1bmN0aW9uIHgoYSxiKXtyZXR1cm4gdyhtLmpvaW4oYSsiOyIpKyhifHwiIikpfWZ1bmN0aW9uIHkoYSxiKXtyZXR1cm4gdHlwZW9mIGE9PT1ifWZ1bmN0aW9uIHooYSxiKXtyZXR1cm4hIX4oIiIrYSkuaW5kZXhPZihiKX1mdW5jdGlvbiBBKGEsYixkKXtmb3IodmFyIGUgaW4gYSl7dmFyIGY9YlthW2VdXTtpZihmIT09YylyZXR1cm4gZD09PSExP2FbZV06eShmLCJmdW5jdGlvbiIpP2YuYmluZChkfHxiKTpmfXJldHVybiExfXZhciBkPSIyLjYuMiIsZT17fSxmPSEwLGc9Yi5kb2N1bWVudEVsZW1lbnQsaD0ibW9kZXJuaXpyIixpPWIuY3JlYXRlRWxlbWVudChoKSxqPWkuc3R5bGUsayxsPXt9LnRvU3RyaW5nLG09IiAtd2Via2l0LSAtbW96LSAtby0gLW1zLSAiLnNwbGl0KCIgIiksbj17fSxvPXt9LHA9e30scT1bXSxyPXEuc2xpY2Uscyx0PWZ1bmN0aW9uKGEsYyxkLGUpe3ZhciBmLGksaixrLGw9Yi5jcmVhdGVFbGVtZW50KCJkaXYiKSxtPWIuYm9keSxuPW18fGIuY3JlYXRlRWxlbWVudCgiYm9keSIpO2lmKHBhcnNlSW50KGQsMTApKXdoaWxlKGQtLSlqPWIuY3JlYXRlRWxlbWVudCgiZGl2Iiksai5pZD1lP2VbZF06aCsoZCsxKSxsLmFwcGVuZENoaWxkKGopO3JldHVybiBmPVsiJiMxNzM7IiwnPHN0eWxlIGlkPSJzJyxoLCciPicsYSwiPC9zdHlsZT4iXS5qb2luKCIiKSxsLmlkPWgsKG0/bDpuKS5pbm5lckhUTUwrPWYsbi5hcHBlbmRDaGlsZChsKSxtfHwobi5zdHlsZS5iYWNrZ3JvdW5kPSIiLG4uc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiIsaz1nLnN0eWxlLm92ZXJmbG93LGcuc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiIsZy5hcHBlbmRDaGlsZChuKSksaT1jKGwsYSksbT9sLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQobCk6KG4ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChuKSxnLnN0eWxlLm92ZXJmbG93PWspLCEhaX0sdT17fS5oYXNPd25Qcm9wZXJ0eSx2OyF5KHUsInVuZGVmaW5lZCIpJiYheSh1LmNhbGwsInVuZGVmaW5lZCIpP3Y9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdS5jYWxsKGEsYil9OnY9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYiBpbiBhJiZ5KGEuY29uc3RydWN0b3IucHJvdG90eXBlW2JdLCJ1bmRlZmluZWQiKX0sRnVuY3Rpb24ucHJvdG90eXBlLmJpbmR8fChGdW5jdGlvbi5wcm90b3R5cGUuYmluZD1mdW5jdGlvbihiKXt2YXIgYz10aGlzO2lmKHR5cGVvZiBjIT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3I7dmFyIGQ9ci5jYWxsKGFyZ3VtZW50cywxKSxlPWZ1bmN0aW9uKCl7aWYodGhpcyBpbnN0YW5jZW9mIGUpe3ZhciBhPWZ1bmN0aW9uKCl7fTthLnByb3RvdHlwZT1jLnByb3RvdHlwZTt2YXIgZj1uZXcgYSxnPWMuYXBwbHkoZixkLmNvbmNhdChyLmNhbGwoYXJndW1lbnRzKSkpO3JldHVybiBPYmplY3QoZyk9PT1nP2c6Zn1yZXR1cm4gYy5hcHBseShiLGQuY29uY2F0KHIuY2FsbChhcmd1bWVudHMpKSl9O3JldHVybiBlfSksbi50b3VjaD1mdW5jdGlvbigpe3ZhciBjO3JldHVybiJvbnRvdWNoc3RhcnQiaW4gYXx8YS5Eb2N1bWVudFRvdWNoJiZiIGluc3RhbmNlb2YgRG9jdW1lbnRUb3VjaD9jPSEwOnQoWyJAbWVkaWEgKCIsbS5qb2luKCJ0b3VjaC1lbmFibGVkKSwoIiksaCwiKSIsInsjbW9kZXJuaXpye3RvcDo5cHg7cG9zaXRpb246YWJzb2x1dGV9fSJdLmpvaW4oIiIpLGZ1bmN0aW9uKGEpe2M9YS5vZmZzZXRUb3A9PT05fSksY307Zm9yKHZhciBCIGluIG4pdihuLEIpJiYocz1CLnRvTG93ZXJDYXNlKCksZVtzXT1uW0JdKCkscS5wdXNoKChlW3NdPyIiOiJuby0iKStzKSk7cmV0dXJuIGUuYWRkVGVzdD1mdW5jdGlvbihhLGIpe2lmKHR5cGVvZiBhPT0ib2JqZWN0Iilmb3IodmFyIGQgaW4gYSl2KGEsZCkmJmUuYWRkVGVzdChkLGFbZF0pO2Vsc2V7YT1hLnRvTG93ZXJDYXNlKCk7aWYoZVthXSE9PWMpcmV0dXJuIGU7Yj10eXBlb2YgYj09ImZ1bmN0aW9uIj9iKCk6Yix0eXBlb2YgZiE9InVuZGVmaW5lZCImJmYmJihnLmNsYXNzTmFtZSs9IiAiKyhiPyIiOiJuby0iKSthKSxlW2FdPWJ9cmV0dXJuIGV9LHcoIiIpLGk9az1udWxsLGZ1bmN0aW9uKGEsYil7ZnVuY3Rpb24gayhhLGIpe3ZhciBjPWEuY3JlYXRlRWxlbWVudCgicCIpLGQ9YS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaGVhZCIpWzBdfHxhLmRvY3VtZW50RWxlbWVudDtyZXR1cm4gYy5pbm5lckhUTUw9Ing8c3R5bGU+IitiKyI8L3N0eWxlPiIsZC5pbnNlcnRCZWZvcmUoYy5sYXN0Q2hpbGQsZC5maXJzdENoaWxkKX1mdW5jdGlvbiBsKCl7dmFyIGE9ci5lbGVtZW50cztyZXR1cm4gdHlwZW9mIGE9PSJzdHJpbmciP2Euc3BsaXQoIiAiKTphfWZ1bmN0aW9uIG0oYSl7dmFyIGI9aVthW2ddXTtyZXR1cm4gYnx8KGI9e30saCsrLGFbZ109aCxpW2hdPWIpLGJ9ZnVuY3Rpb24gbihhLGMsZil7Y3x8KGM9Yik7aWYoailyZXR1cm4gYy5jcmVhdGVFbGVtZW50KGEpO2Z8fChmPW0oYykpO3ZhciBnO3JldHVybiBmLmNhY2hlW2FdP2c9Zi5jYWNoZVthXS5jbG9uZU5vZGUoKTplLnRlc3QoYSk/Zz0oZi5jYWNoZVthXT1mLmNyZWF0ZUVsZW0oYSkpLmNsb25lTm9kZSgpOmc9Zi5jcmVhdGVFbGVtKGEpLGcuY2FuSGF2ZUNoaWxkcmVuJiYhZC50ZXN0KGEpP2YuZnJhZy5hcHBlbmRDaGlsZChnKTpnfWZ1bmN0aW9uIG8oYSxjKXthfHwoYT1iKTtpZihqKXJldHVybiBhLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtjPWN8fG0oYSk7dmFyIGQ9Yy5mcmFnLmNsb25lTm9kZSgpLGU9MCxmPWwoKSxnPWYubGVuZ3RoO2Zvcig7ZTxnO2UrKylkLmNyZWF0ZUVsZW1lbnQoZltlXSk7cmV0dXJuIGR9ZnVuY3Rpb24gcChhLGIpe2IuY2FjaGV8fChiLmNhY2hlPXt9LGIuY3JlYXRlRWxlbT1hLmNyZWF0ZUVsZW1lbnQsYi5jcmVhdGVGcmFnPWEuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCxiLmZyYWc9Yi5jcmVhdGVGcmFnKCkpLGEuY3JlYXRlRWxlbWVudD1mdW5jdGlvbihjKXtyZXR1cm4gci5zaGl2TWV0aG9kcz9uKGMsYSxiKTpiLmNyZWF0ZUVsZW0oYyl9LGEuY3JlYXRlRG9jdW1lbnRGcmFnbWVudD1GdW5jdGlvbigiaCxmIiwicmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49Zi5jbG9uZU5vZGUoKSxjPW4uY3JlYXRlRWxlbWVudDtoLnNoaXZNZXRob2RzJiYoIitsKCkuam9pbigpLnJlcGxhY2UoL1x3Ky9nLGZ1bmN0aW9uKGEpe3JldHVybiBiLmNyZWF0ZUVsZW0oYSksYi5mcmFnLmNyZWF0ZUVsZW1lbnQoYSksJ2MoIicrYSsnIiknfSkrIik7cmV0dXJuIG59IikocixiLmZyYWcpfWZ1bmN0aW9uIHEoYSl7YXx8KGE9Yik7dmFyIGM9bShhKTtyZXR1cm4gci5zaGl2Q1NTJiYhZiYmIWMuaGFzQ1NTJiYoYy5oYXNDU1M9ISFrKGEsImFydGljbGUsYXNpZGUsZmlnY2FwdGlvbixmaWd1cmUsZm9vdGVyLGhlYWRlcixoZ3JvdXAsbmF2LHNlY3Rpb257ZGlzcGxheTpibG9ja31tYXJre2JhY2tncm91bmQ6I0ZGMDtjb2xvcjojMDAwfSIpKSxqfHxwKGEsYyksYX12YXIgYz1hLmh0bWw1fHx7fSxkPS9ePHxeKD86YnV0dG9ufG1hcHxzZWxlY3R8dGV4dGFyZWF8b2JqZWN0fGlmcmFtZXxvcHRpb258b3B0Z3JvdXApJC9pLGU9L14oPzphfGJ8Y29kZXxkaXZ8ZmllbGRzZXR8aDF8aDJ8aDN8aDR8aDV8aDZ8aXxsYWJlbHxsaXxvbHxwfHF8c3BhbnxzdHJvbmd8c3R5bGV8dGFibGV8dGJvZHl8dGR8dGh8dHJ8dWwpJC9pLGYsZz0iX2h0bWw1c2hpdiIsaD0wLGk9e30sajsoZnVuY3Rpb24oKXt0cnl7dmFyIGE9Yi5jcmVhdGVFbGVtZW50KCJhIik7YS5pbm5lckhUTUw9Ijx4eXo+PC94eXo+IixmPSJoaWRkZW4iaW4gYSxqPWEuY2hpbGROb2Rlcy5sZW5ndGg9PTF8fGZ1bmN0aW9uKCl7Yi5jcmVhdGVFbGVtZW50KCJhIik7dmFyIGE9Yi5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7cmV0dXJuIHR5cGVvZiBhLmNsb25lTm9kZT09InVuZGVmaW5lZCJ8fHR5cGVvZiBhLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQ9PSJ1bmRlZmluZWQifHx0eXBlb2YgYS5jcmVhdGVFbGVtZW50PT0idW5kZWZpbmVkIn0oKX1jYXRjaChjKXtmPSEwLGo9ITB9fSkoKTt2YXIgcj17ZWxlbWVudHM6Yy5lbGVtZW50c3x8ImFiYnIgYXJ0aWNsZSBhc2lkZSBhdWRpbyBiZGkgY2FudmFzIGRhdGEgZGF0YWxpc3QgZGV0YWlscyBmaWdjYXB0aW9uIGZpZ3VyZSBmb290ZXIgaGVhZGVyIGhncm91cCBtYXJrIG1ldGVyIG5hdiBvdXRwdXQgcHJvZ3Jlc3Mgc2VjdGlvbiBzdW1tYXJ5IHRpbWUgdmlkZW8iLHNoaXZDU1M6Yy5zaGl2Q1NTIT09ITEsc3VwcG9ydHNVbmtub3duRWxlbWVudHM6aixzaGl2TWV0aG9kczpjLnNoaXZNZXRob2RzIT09ITEsdHlwZToiZGVmYXVsdCIsc2hpdkRvY3VtZW50OnEsY3JlYXRlRWxlbWVudDpuLGNyZWF0ZURvY3VtZW50RnJhZ21lbnQ6b307YS5odG1sNT1yLHEoYil9KHRoaXMsYiksZS5fdmVyc2lvbj1kLGUuX3ByZWZpeGVzPW0sZS50ZXN0U3R5bGVzPXQsZy5jbGFzc05hbWU9Zy5jbGFzc05hbWUucmVwbGFjZSgvKF58XHMpbm8tanMoXHN8JCkvLCIkMSQyIikrKGY/IiBqcyAiK3Euam9pbigiICIpOiIiKSxlfSh0aGlzLHRoaXMuZG9jdW1lbnQpLGZ1bmN0aW9uKGEsYixjKXtmdW5jdGlvbiBkKGEpe3JldHVybiJbb2JqZWN0IEZ1bmN0aW9uXSI9PW8uY2FsbChhKX1mdW5jdGlvbiBlKGEpe3JldHVybiJzdHJpbmciPT10eXBlb2YgYX1mdW5jdGlvbiBmKCl7fWZ1bmN0aW9uIGcoYSl7cmV0dXJuIWF8fCJsb2FkZWQiPT1hfHwiY29tcGxldGUiPT1hfHwidW5pbml0aWFsaXplZCI9PWF9ZnVuY3Rpb24gaCgpe3ZhciBhPXAuc2hpZnQoKTtxPTEsYT9hLnQ/bShmdW5jdGlvbigpeygiYyI9PWEudD9CLmluamVjdENzczpCLmluamVjdEpzKShhLnMsMCxhLmEsYS54LGEuZSwxKX0sMCk6KGEoKSxoKCkpOnE9MH1mdW5jdGlvbiBpKGEsYyxkLGUsZixpLGope2Z1bmN0aW9uIGsoYil7aWYoIW8mJmcobC5yZWFkeVN0YXRlKSYmKHUucj1vPTEsIXEmJmgoKSxsLm9ubG9hZD1sLm9ucmVhZHlzdGF0ZWNoYW5nZT1udWxsLGIpKXsiaW1nIiE9YSYmbShmdW5jdGlvbigpe3QucmVtb3ZlQ2hpbGQobCl9LDUwKTtmb3IodmFyIGQgaW4geVtjXSl5W2NdLmhhc093blByb3BlcnR5KGQpJiZ5W2NdW2RdLm9ubG9hZCgpfX12YXIgaj1qfHxCLmVycm9yVGltZW91dCxsPWIuY3JlYXRlRWxlbWVudChhKSxvPTAscj0wLHU9e3Q6ZCxzOmMsZTpmLGE6aSx4Omp9OzE9PT15W2NdJiYocj0xLHlbY109W10pLCJvYmplY3QiPT1hP2wuZGF0YT1jOihsLnNyYz1jLGwudHlwZT1hKSxsLndpZHRoPWwuaGVpZ2h0PSIwIixsLm9uZXJyb3I9bC5vbmxvYWQ9bC5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXtrLmNhbGwodGhpcyxyKX0scC5zcGxpY2UoZSwwLHUpLCJpbWciIT1hJiYocnx8Mj09PXlbY10/KHQuaW5zZXJ0QmVmb3JlKGwscz9udWxsOm4pLG0oayxqKSk6eVtjXS5wdXNoKGwpKX1mdW5jdGlvbiBqKGEsYixjLGQsZil7cmV0dXJuIHE9MCxiPWJ8fCJqIixlKGEpP2koImMiPT1iP3Y6dSxhLGIsdGhpcy5pKyssYyxkLGYpOihwLnNwbGljZSh0aGlzLmkrKywwLGEpLDE9PXAubGVuZ3RoJiZoKCkpLHRoaXN9ZnVuY3Rpb24gaygpe3ZhciBhPUI7cmV0dXJuIGEubG9hZGVyPXtsb2FkOmosaTowfSxhfXZhciBsPWIuZG9jdW1lbnRFbGVtZW50LG09YS5zZXRUaW1lb3V0LG49Yi5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IilbMF0sbz17fS50b1N0cmluZyxwPVtdLHE9MCxyPSJNb3pBcHBlYXJhbmNlImluIGwuc3R5bGUscz1yJiYhIWIuY3JlYXRlUmFuZ2UoKS5jb21wYXJlTm9kZSx0PXM/bDpuLnBhcmVudE5vZGUsbD1hLm9wZXJhJiYiW29iamVjdCBPcGVyYV0iPT1vLmNhbGwoYS5vcGVyYSksbD0hIWIuYXR0YWNoRXZlbnQmJiFsLHU9cj8ib2JqZWN0IjpsPyJzY3JpcHQiOiJpbWciLHY9bD8ic2NyaXB0Ijp1LHc9QXJyYXkuaXNBcnJheXx8ZnVuY3Rpb24oYSl7cmV0dXJuIltvYmplY3QgQXJyYXldIj09by5jYWxsKGEpfSx4PVtdLHk9e30sej17dGltZW91dDpmdW5jdGlvbihhLGIpe3JldHVybiBiLmxlbmd0aCYmKGEudGltZW91dD1iWzBdKSxhfX0sQSxCO0I9ZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYihhKXt2YXIgYT1hLnNwbGl0KCIhIiksYj14Lmxlbmd0aCxjPWEucG9wKCksZD1hLmxlbmd0aCxjPXt1cmw6YyxvcmlnVXJsOmMscHJlZml4ZXM6YX0sZSxmLGc7Zm9yKGY9MDtmPGQ7ZisrKWc9YVtmXS5zcGxpdCgiPSIpLChlPXpbZy5zaGlmdCgpXSkmJihjPWUoYyxnKSk7Zm9yKGY9MDtmPGI7ZisrKWM9eFtmXShjKTtyZXR1cm4gY31mdW5jdGlvbiBnKGEsZSxmLGcsaCl7dmFyIGk9YihhKSxqPWkuYXV0b0NhbGxiYWNrO2kudXJsLnNwbGl0KCIuIikucG9wKCkuc3BsaXQoIj8iKS5zaGlmdCgpLGkuYnlwYXNzfHwoZSYmKGU9ZChlKT9lOmVbYV18fGVbZ118fGVbYS5zcGxpdCgiLyIpLnBvcCgpLnNwbGl0KCI/IilbMF1dKSxpLmluc3RlYWQ/aS5pbnN0ZWFkKGEsZSxmLGcsaCk6KHlbaS51cmxdP2kubm9leGVjPSEwOnlbaS51cmxdPTEsZi5sb2FkKGkudXJsLGkuZm9yY2VDU1N8fCFpLmZvcmNlSlMmJiJjc3MiPT1pLnVybC5zcGxpdCgiLiIpLnBvcCgpLnNwbGl0KCI/Iikuc2hpZnQoKT8iYyI6YyxpLm5vZXhlYyxpLmF0dHJzLGkudGltZW91dCksKGQoZSl8fGQoaikpJiZmLmxvYWQoZnVuY3Rpb24oKXtrKCksZSYmZShpLm9yaWdVcmwsaCxnKSxqJiZqKGkub3JpZ1VybCxoLGcpLHlbaS51cmxdPTJ9KSkpfWZ1bmN0aW9uIGgoYSxiKXtmdW5jdGlvbiBjKGEsYyl7aWYoYSl7aWYoZShhKSljfHwoaj1mdW5jdGlvbigpe3ZhciBhPVtdLnNsaWNlLmNhbGwoYXJndW1lbnRzKTtrLmFwcGx5KHRoaXMsYSksbCgpfSksZyhhLGosYiwwLGgpO2Vsc2UgaWYoT2JqZWN0KGEpPT09YSlmb3IobiBpbiBtPWZ1bmN0aW9uKCl7dmFyIGI9MCxjO2ZvcihjIGluIGEpYS5oYXNPd25Qcm9wZXJ0eShjKSYmYisrO3JldHVybiBifSgpLGEpYS5oYXNPd25Qcm9wZXJ0eShuKSYmKCFjJiYhLS1tJiYoZChqKT9qPWZ1bmN0aW9uKCl7dmFyIGE9W10uc2xpY2UuY2FsbChhcmd1bWVudHMpO2suYXBwbHkodGhpcyxhKSxsKCl9Ompbbl09ZnVuY3Rpb24oYSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGI9W10uc2xpY2UuY2FsbChhcmd1bWVudHMpO2EmJmEuYXBwbHkodGhpcyxiKSxsKCl9fShrW25dKSksZyhhW25dLGosYixuLGgpKX1lbHNlIWMmJmwoKX12YXIgaD0hIWEudGVzdCxpPWEubG9hZHx8YS5ib3RoLGo9YS5jYWxsYmFja3x8ZixrPWosbD1hLmNvbXBsZXRlfHxmLG0sbjtjKGg/YS55ZXA6YS5ub3BlLCEhaSksaSYmYyhpKX12YXIgaSxqLGw9dGhpcy55ZXBub3BlLmxvYWRlcjtpZihlKGEpKWcoYSwwLGwsMCk7ZWxzZSBpZih3KGEpKWZvcihpPTA7aTxhLmxlbmd0aDtpKyspaj1hW2ldLGUoaik/ZyhqLDAsbCwwKTp3KGopP0Ioaik6T2JqZWN0KGopPT09aiYmaChqLGwpO2Vsc2UgT2JqZWN0KGEpPT09YSYmaChhLGwpfSxCLmFkZFByZWZpeD1mdW5jdGlvbihhLGIpe3pbYV09Yn0sQi5hZGRGaWx0ZXI9ZnVuY3Rpb24oYSl7eC5wdXNoKGEpfSxCLmVycm9yVGltZW91dD0xZTQsbnVsbD09Yi5yZWFkeVN0YXRlJiZiLmFkZEV2ZW50TGlzdGVuZXImJihiLnJlYWR5U3RhdGU9ImxvYWRpbmciLGIuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsQT1mdW5jdGlvbigpe2IucmVtb3ZlRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsQSwwKSxiLnJlYWR5U3RhdGU9ImNvbXBsZXRlIn0sMCkpLGEueWVwbm9wZT1rKCksYS55ZXBub3BlLmV4ZWN1dGVTdGFjaz1oLGEueWVwbm9wZS5pbmplY3RKcz1mdW5jdGlvbihhLGMsZCxlLGksail7dmFyIGs9Yi5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKSxsLG8sZT1lfHxCLmVycm9yVGltZW91dDtrLnNyYz1hO2ZvcihvIGluIGQpay5zZXRBdHRyaWJ1dGUobyxkW29dKTtjPWo/aDpjfHxmLGsub25yZWFkeXN0YXRlY2hhbmdlPWsub25sb2FkPWZ1bmN0aW9uKCl7IWwmJmcoay5yZWFkeVN0YXRlKSYmKGw9MSxjKCksay5vbmxvYWQ9ay5vbnJlYWR5c3RhdGVjaGFuZ2U9bnVsbCl9LG0oZnVuY3Rpb24oKXtsfHwobD0xLGMoMSkpfSxlKSxpP2sub25sb2FkKCk6bi5wYXJlbnROb2RlLmluc2VydEJlZm9yZShrLG4pfSxhLnllcG5vcGUuaW5qZWN0Q3NzPWZ1bmN0aW9uKGEsYyxkLGUsZyxpKXt2YXIgZT1iLmNyZWF0ZUVsZW1lbnQoImxpbmsiKSxqLGM9aT9oOmN8fGY7ZS5ocmVmPWEsZS5yZWw9InN0eWxlc2hlZXQiLGUudHlwZT0idGV4dC9jc3MiO2ZvcihqIGluIGQpZS5zZXRBdHRyaWJ1dGUoaixkW2pdKTtnfHwobi5wYXJlbnROb2RlLmluc2VydEJlZm9yZShlLG4pLG0oYywwKSl9fSh0aGlzLGRvY3VtZW50KSxNb2Rlcm5penIubG9hZD1mdW5jdGlvbigpe3llcG5vcGUuYXBwbHkod2luZG93LFtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLDApKX07Cjwvc2NyaXB0PiAKCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KZnVuY3Rpb24gaW5pdCgpIHsKdmFyIGltZ0RlZmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2ltZycpOwpmb3IgKHZhciBpPTA7IGk8aW1nRGVmZXIubGVuZ3RoOyBpKyspIHsKaWYoaW1nRGVmZXJbaV0uZ2V0QXR0cmlidXRlKCdkYXRhLXNyYycpKSB7CmltZ0RlZmVyW2ldLnNldEF0dHJpYnV0ZSgnc3JjJyxpbWdEZWZlcltpXS5nZXRBdHRyaWJ1dGUoJ2RhdGEtc3JjJykpOwp9IH0gfQp3aW5kb3cub25sb2FkID0gaW5pdDsKPC9zY3JpcHQ+IAoKPCEtLSBmYXZpY29ucyBubiAtLT4KPGxpbmsgcmVsPSJzaG9ydGN1dCBpY29uIiBocmVmPSIvY29udGVudGFzc2V0cy81ZjAwMDRkNThmZTM0MjZiOTM2M2RhZjAyNDJiZTNmZC9pY29ucy9mYXZpY29uLmljbz92PTIuMSI+CjxsaW5rIHJlbD0ibWFzay1pY29uIiBocmVmPSIvY29udGVudGFzc2V0cy81ZjAwMDRkNThmZTM0MjZiOTM2M2RhZjAyNDJiZTNmZC9pY29ucy9zYWZhcmktcGlubmVkLXRhYi5zdmc/dj0yLjEiIGNvbG9yPSIjMDAwMDAwIj4KPGxpbmsgcmVsPSJhcHBsZS10b3VjaC1pY29uIiBzaXplcz0iNTd4NTciIGhyZWY9Ii9jb250ZW50YXNzZXRzLzVmMDAwNGQ1OGZlMzQyNmI5MzYzZGFmMDI0MmJlM2ZkL2ljb25zL2FwcGxlLXRvdWNoLWljb24tNTd4NTcucG5nP3Y9Mi4xIj4KPGxpbmsgcmVsPSJhcHBsZS10b3VjaC1pY29uIiBzaXplcz0iNjB4NjAiIGhyZWY9Ii9jb250ZW50YXNzZXRzLzVmMDAwNGQ1OGZlMzQyNmI5MzYzZGFmMDI0MmJlM2ZkL2ljb25zL2FwcGxlLXRvdWNoLWljb24tNjB4NjAucG5nP3Y9Mi4xIj4KPGxpbmsgcmVsPSJhcHBsZS10b3VjaC1pY29uIiBzaXplcz0iNzJ4NzIiIGhyZWY9Ii9jb250ZW50YXNzZXRzLzVmMDAwNGQ1OGZlMzQyNmI5MzYzZGFmMDI0MmJlM2ZkL2ljb25zL2FwcGxlLXRvdWNoLWljb24tNzJ4NzIucG5nP3Y9Mi4xIj4KPGxpbmsgcmVsPSJhcHBsZS10b3VjaC1pY29uIiBzaXplcz0iNzZ4NzYiIGhyZWY9Ii9jb250ZW50YXNzZXRzLzVmMDAwNGQ1OGZlMzQyNmI5MzYzZGFmMDI0MmJlM2ZkL2ljb25zL2FwcGxlLXRvdWNoLWljb24tNzZ4NzYucG5nP3Y9Mi4xIj4KPGxpbmsgcmVsPSJhcHBsZS10b3VjaC1pY29uIiBzaXplcz0iMTE0eDExNCIgaHJlZj0iL2NvbnRlbnRhc3NldHMvNWYwMDA0ZDU4ZmUzNDI2YjkzNjNkYWYwMjQyYmUzZmQvaWNvbnMvYXBwbGUtdG91Y2gtaWNvbi0xMTR4MTE0LnBuZz92PTIuMSI+CjxsaW5rIHJlbD0iYXBwbGUtdG91Y2gtaWNvbiIgc2l6ZXM9IjEyMHgxMjAiIGhyZWY9Ii9jb250ZW50YXNzZXRzLzVmMDAwNGQ1OGZlMzQyNmI5MzYzZGFmMDI0MmJlM2ZkL2ljb25zL2FwcGxlLXRvdWNoLWljb24tMTIweDEyMC5wbmc/dj0yLjEiPgo8bGluayByZWw9ImFwcGxlLXRvdWNoLWljb24iIHNpemVzPSIxNDR4MTQ0IiBocmVmPSIvY29udGVudGFzc2V0cy81ZjAwMDRkNThmZTM0MjZiOTM2M2RhZjAyNDJiZTNmZC9pY29ucy9hcHBsZS10b3VjaC1pY29uLTE0NHgxNDQucG5nP3Y9Mi4xIj4KPGxpbmsgcmVsPSJhcHBsZS10b3VjaC1pY29uIiBzaXplcz0iMTUyeDE1MiIgaHJlZj0iL2NvbnRlbnRhc3NldHMvNWYwMDA0ZDU4ZmUzNDI2YjkzNjNkYWYwMjQyYmUzZmQvaWNvbnMvYXBwbGUtdG91Y2gtaWNvbi0xNTJ4MTUyLnBuZz92PTIuMSI+CjxsaW5rIHJlbD0iYXBwbGUtdG91Y2gtaWNvbiIgc2l6ZXM9IjE4MHgxODAiIGhyZWY9Ii9jb250ZW50YXNzZXRzLzVmMDAwNGQ1OGZlMzQyNmI5MzYzZGFmMDI0MmJlM2ZkL2ljb25zL2FwcGxlLXRvdWNoLWljb24tMTgweDE4MC5wbmc/dj0yLjEiPgo8bGluayByZWw9Imljb24iIHR5cGU9ImltYWdlL3BuZyIgc2l6ZXM9IjMyeDMyIiBocmVmPSIvY29udGVudGFzc2V0cy81ZjAwMDRkNThmZTM0MjZiOTM2M2RhZjAyNDJiZTNmZC9pY29ucy9mYXZpY29uLTMyeDMyLnBuZz92PTIuMSI+CjxsaW5rIHJlbD0iaWNvbiIgdHlwZT0iaW1hZ2UvcG5nIiBzaXplcz0iMTk0eDE5NCIgaHJlZj0iL2NvbnRlbnRhc3NldHMvNWYwMDA0ZDU4ZmUzNDI2YjkzNjNkYWYwMjQyYmUzZmQvaWNvbnMvZmF2aWNvbi0xOTR4MTk0LnBuZz92PTIuMSI+CjxsaW5rIHJlbD0iaWNvbiIgdHlwZT0iaW1hZ2UvcG5nIiBzaXplcz0iMTkyeDE5MiIgaHJlZj0iL2NvbnRlbnRhc3NldHMvNWYwMDA0ZDU4ZmUzNDI2YjkzNjNkYWYwMjQyYmUzZmQvaWNvbnMvYW5kcm9pZC1jaHJvbWUtMTkyeDE5Mi5wbmc/dj0yLjEiPgo8bGluayByZWw9Imljb24iIHR5cGU9ImltYWdlL3BuZyIgc2l6ZXM9IjE2eDE2IiBocmVmPSIvY29udGVudGFzc2V0cy81ZjAwMDRkNThmZTM0MjZiOTM2M2RhZjAyNDJiZTNmZC9pY29ucy9mYXZpY29uLTE2eDE2LnBuZz92PTIuMSI+CjxtZXRhIG5hbWU9Im1zYXBwbGljYXRpb24tVGlsZUNvbG9yIiBjb250ZW50PSIjMDAwMDAwIj4KPG1ldGEgbmFtZT0ibXNhcHBsaWNhdGlvbi1UaWxlSW1hZ2UiIGNvbnRlbnQ9Ii9jb250ZW50YXNzZXRzLzVmMDAwNGQ1OGZlMzQyNmI5MzYzZGFmMDI0MmJlM2ZkL2ljb25zL21zdGlsZS0xNDR4MTQ0LnBuZz92PTIuMSI+CjxtZXRhIG5hbWU9InRoZW1lLWNvbG9yIiBjb250ZW50PSIjZmZmZmZmIj4KCjwhLS0gc3RhcnQgY2hhdCAtLT4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGFzeW5jPSJhc3luYyI+CndpbmRvdy4kem9waW18fChmdW5jdGlvbihkLHMpe3ZhciB6PSR6b3BpbT1mdW5jdGlvbihjKXt6Ll8ucHVzaChjKX0sJD16LnM9CmQuY3JlYXRlRWxlbWVudChzKSxlPWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUocylbMF07ei5zZXQ9ZnVuY3Rpb24obyl7ei5zZXQuCl8ucHVzaChvKX07ei5fPVtdO3ouc2V0Ll89W107JC5hc3luYz0hMDskLnNldEF0dHJpYnV0ZSgiY2hhcnNldCIsInV0Zi04Iik7CiQuc3JjPSIvL3YyLnpvcGltLmNvbS8/NFVVRmxySFpSZ2E5QkdhWUpxektuNHZsV3JpbVBzd1UiO3oudD0rbmV3IERhdGU7JC4KdHlwZT0idGV4dC9qYXZhc2NyaXB0IjtlLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKCQsZSl9KShkb2N1bWVudCwic2NyaXB0Iik7Cjwvc2NyaXB0Pgo8IS0tIGVuZCBjaGF0IC0tPiAKIAo8IS0tIHN0YXJ0IGZvb3RlciBwdXNoIHNjcmlwdCAtLT4gCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4Kbm9kZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjdGwwNScpOwpub2RlLmluc2VydEFkamFjZW50SFRNTCgnYWZ0ZXJlbmQnLCAnPGRpdiBjbGFzcz0iYmZvb3RlciIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICMzNjM2MzY7cGFkZGluZzowO3dpZHRoOjEwMCU7Y29sb3I6I2VlZTttYXJnaW46MDttYXgtd2lkdGg6IDEwMCU7dGV4dC1hbGlnbjpjZW50ZXI7bWluLWhlaWdodDoyNDVweDsiPjxpZnJhbWUgc3JjPSJodHRwczovL2Nzby5vcmcvY29udGVudGFzc2V0cy81ZjAwMDRkNThmZTM0MjZiOTM2M2RhZjAyNDJiZTNmZC9mb290ZXItb25seS5odG1sIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBzdHlsZT0ib3ZlcmZsb3c6aGlkZGVuO21heC13aWR0aDoxMDAlO21hcmdpbjowO3BhZGRpbmc6IDA7IGhlaWdodDoxMDAlO21pbi1oZWlnaHQ6MjUwcHg7YmFja2dyb3VuZC1jb2xvcjojMzYzNjM2OyIgc2Nyb2xsaW5nPSJubyI+PC9pZnJhbWU+PC9kaXY+Jyk7Cjwvc2NyaXB0PiAKPCEtLSBlbmQgZm9vdGVyIHB1c2ggc2NyaXB0IC0tPgpkAgEPZBYCZg9kFgQCAQ8WAh8CZGQCAw8WAh8CBc4BPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KLyogaGlkZSBjYWxsb3V0IHRpbGUgKi8KaDMuY2FsbG91dC10aXRsZSB7IApkaXNwbGF5OiBub25lOwptYXgtaGVpZ2h0OiAwOwp9Ci8qIGhpZGUgYmFubmVyIGNvbnRhaW5lciAqLwpmaWd1cmUubC1oZXJvIHsgCmRpc3BsYXk6IG5vbmU7IAp2aXNpYmlsaXR5OiBoaWRkZW47Cm1heC1oZWlnaHQ6IDA7Cn0KPC9zdHlsZT5kAgUPDxYCHwYLKwUBZBYCZg8PFgQfB2UfCAICZBYCZg8WAh8JZBYCZg9kFgJmD2QWCGYPFgIfA2dkAgIPDxYEHwYLKwUBHwNnZBYCZg8PFgQfBwULYmxvY2stdGl0bGUfCAICZBYCZg8WAh8JZGQCBA8PFgIfBgsrBQFkFgJmDw8WBB8HBQhjbGVhcmZpeB8IAgJkFgJmDxYCHwlkZAIGDxYCHwNnZAIHD2QWAgIHDxYEHwIFLcKpMjAxOSBDaGljYWdvIFN5bXBob255IE9yY2hlc3RyYSBBc3NvY2lhdGlvbh8DZ2QYKQVMY3RsMDAkY3RsMDAkaGVhZGVyQ3RybCRjdGwwMiRFUGlQYWdlTGlzdCRjdGwwNCRFUGlQYWdlTGlzdCRjdGwwNCRFUGlQYWdlTGlzdA8PZmRkBUxjdGwwMCRjdGwwMCRoZWFkZXJDdHJsJGN0bDAyJEVQaVBhZ2VMaXN0JGN0bDAxJEVQaVBhZ2VMaXN0JGN0bDA3JEVQaVBhZ2VMaXN0Dw9mZGQFTGN0bDAwJGN0bDAwJGhlYWRlckN0cmwkY3RsMDIkRVBpUGFnZUxpc3QkY3RsMDEkRVBpUGFnZUxpc3QkY3RsMDYkRVBpUGFnZUxpc3QPD2ZkZAVMY3RsMDAkY3RsMDAkaGVhZGVyQ3RybCRjdGwwMiRFUGlQYWdlTGlzdCRjdGwwMSRFUGlQYWdlTGlzdCRjdGwwMSRFUGlQYWdlTGlzdA8PZmRkBUxjdGwwMCRjdGwwMCRoZWFkZXJDdHJsJGN0bDAyJEVQaVBhZ2VMaXN0JGN0bDAzJEVQaVBhZ2VMaXN0JGN0bDAyJEVQaVBhZ2VMaXN0Dw9mZGQFTGN0bDAwJGN0bDAwJGhlYWRlckN0cmwkY3RsMDIkRVBpUGFnZUxpc3QkY3RsMDQkRVBpUGFnZUxpc3QkY3RsMDUkRVBpUGFnZUxpc3QPD2ZkZAUhY3RsMDAkY3RsMDAkaGVhZGVyQ3RybCRNdWx0aVZpZXcxDw9kZmQFTGN0bDAwJGN0bDAwJGhlYWRlckN0cmwkY3RsMDIkRVBpUGFnZUxpc3QkY3RsMDMkRVBpUGFnZUxpc3QkY3RsMDQkRVBpUGFnZUxpc3QPD2ZkZAVMY3RsMDAkY3RsMDAkaGVhZGVyQ3RybCRjdGwwMiRFUGlQYWdlTGlzdCRjdGwwMiRFUGlQYWdlTGlzdCRjdGwwNCRFUGlQYWdlTGlzdA8PZmRkBUxjdGwwMCRjdGwwMCRoZWFkZXJDdHJsJGN0bDAyJEVQaVBhZ2VMaXN0JGN0bDAxJEVQaVBhZ2VMaXN0JGN0bDAzJEVQaVBhZ2VMaXN0Dw9mZGQFTGN0bDAwJGN0bDAwJGhlYWRlckN0cmwkY3RsMDIkRVBpUGFnZUxpc3QkY3RsMDIkRVBpUGFnZUxpc3QkY3RsMDMkRVBpUGFnZUxpc3QPD2ZkZAVMY3RsMDAkY3RsMDAkaGVhZGVyQ3RybCRjdGwwMiRFUGlQYWdlTGlzdCRjdGwwNSRFUGlQYWdlTGlzdCRjdGwwNyRFUGlQYWdlTGlzdA8PZmRkBTpjdGwwMCRjdGwwMCRoZWFkZXJDdHJsJGN0bDAyJEVQaVBhZ2VMaXN0JGN0bDA0JEVQaVBhZ2VMaXN0Dw9mZGQFTGN0bDAwJGN0bDAwJGhlYWRlckN0cmwkY3RsMDIkRVBpUGFnZUxpc3QkY3RsMDUkRVBpUGFnZUxpc3QkY3RsMDIkRVBpUGFnZUxpc3QPD2ZkZAVMY3RsMDAkY3RsMDAkaGVhZGVyQ3RybCRjdGwwMiRFUGlQYWdlTGlzdCRjdGwwMyRFUGlQYWdlTGlzdCRjdGwwMSRFUGlQYWdlTGlzdA8PZmRkBUxjdGwwMCRjdGwwMCRoZWFkZXJDdHJsJGN0bDAyJEVQaVBhZ2VMaXN0JGN0bDA0JEVQaVBhZ2VMaXN0JGN0bDAyJEVQaVBhZ2VMaXN0Dw9mZGQFTGN0bDAwJGN0bDAwJGhlYWRlckN0cmwkY3RsMDIkRVBpUGFnZUxpc3QkY3RsMDMkRVBpUGFnZUxpc3QkY3RsMDMkRVBpUGFnZUxpc3QPD2ZkZAU6Y3RsMDAkY3RsMDAkaGVhZGVyQ3RybCRjdGwwMiRFUGlQYWdlTGlzdCRjdGwwMSRFUGlQYWdlTGlzdA8PZmRkBUxjdGwwMCRjdGwwMCRoZWFkZXJDdHJsJGN0bDAyJEVQaVBhZ2VMaXN0JGN0bDAxJEVQaVBhZ2VMaXN0JGN0bDAyJEVQaVBhZ2VMaXN0Dw9mZGQFTGN0bDAwJGN0bDAwJGhlYWRlckN0cmwkY3RsMDIkRVBpUGFnZUxpc3QkY3RsMDUkRVBpUGFnZUxpc3QkY3RsMDEkRVBpUGFnZUxpc3QPD2ZkZAVMY3RsMDAkY3RsMDAkaGVhZGVyQ3RybCRjdGwwMiRFUGlQYWdlTGlzdCRjdGwwMyRFUGlQYWdlTGlzdCRjdGwwNSRFUGlQYWdlTGlzdA8PZmRkBUxjdGwwMCRjdGwwMCRoZWFkZXJDdHJsJGN0bDAyJEVQaVBhZ2VMaXN0JGN0bDAxJEVQaVBhZ2VMaXN0JGN0bDA0JEVQaVBhZ2VMaXN0Dw9mZGQFTGN0bDAwJGN0bDAwJGhlYWRlckN0cmwkY3RsMDIkRVBpUGFnZUxpc3QkY3RsMDQkRVBpUGFnZUxpc3QkY3RsMDYkRVBpUGFnZUxpc3QPD2ZkZAU6Y3RsMDAkY3RsMDAkaGVhZGVyQ3RybCRjdGwwMiRFUGlQYWdlTGlzdCRjdGwwNyRFUGlQYWdlTGlzdA8PZmRkBUxjdGwwMCRjdGwwMCRoZWFkZXJDdHJsJGN0bDAyJEVQaVBhZ2VMaXN0JGN0bDA1JEVQaVBhZ2VMaXN0JGN0bDA2JEVQaVBhZ2VMaXN0Dw9mZGQFTGN0bDAwJGN0bDAwJGhlYWRlckN0cmwkY3RsMDIkRVBpUGFnZUxpc3QkY3RsMDUkRVBpUGFnZUxpc3QkY3RsMDgkRVBpUGFnZUxpc3QPD2ZkZAVMY3RsMDAkY3RsMDAkaGVhZGVyQ3RybCRjdGwwMiRFUGlQYWdlTGlzdCRjdGwwMiRFUGlQYWdlTGlzdCRjdGwwNSRFUGlQYWdlTGlzdA8PZmRkBUxjdGwwMCRjdGwwMCRoZWFkZXJDdHJsJGN0bDAyJEVQaVBhZ2VMaXN0JGN0bDA1JEVQaVBhZ2VMaXN0JGN0bDAzJEVQaVBhZ2VMaXN0Dw9mZGQFOmN0bDAwJGN0bDAwJGhlYWRlckN0cmwkY3RsMDIkRVBpUGFnZUxpc3QkY3RsMDUkRVBpUGFnZUxpc3QPD2ZkZAVMY3RsMDAkY3RsMDAkaGVhZGVyQ3RybCRjdGwwMiRFUGlQYWdlTGlzdCRjdGwwMiRFUGlQYWdlTGlzdCRjdGwwNiRFUGlQYWdlTGlzdA8PZmRkBUxjdGwwMCRjdGwwMCRoZWFkZXJDdHJsJGN0bDAyJEVQaVBhZ2VMaXN0JGN0bDA1JEVQaVBhZ2VMaXN0JGN0bDA1JEVQaVBhZ2VMaXN0Dw9mZGQFTGN0bDAwJGN0bDAwJGhlYWRlckN0cmwkY3RsMDIkRVBpUGFnZUxpc3QkY3RsMDQkRVBpUGFnZUxpc3QkY3RsMDMkRVBpUGFnZUxpc3QPD2ZkZAU6Y3RsMDAkY3RsMDAkaGVhZGVyQ3RybCRjdGwwMiRFUGlQYWdlTGlzdCRjdGwwNiRFUGlQYWdlTGlzdA8PZmRkBUxjdGwwMCRjdGwwMCRoZWFkZXJDdHJsJGN0bDAyJEVQaVBhZ2VMaXN0JGN0bDAxJEVQaVBhZ2VMaXN0JGN0bDA1JEVQaVBhZ2VMaXN0Dw9mZGQFTGN0bDAwJGN0bDAwJGhlYWRlckN0cmwkY3RsMDIkRVBpUGFnZUxpc3QkY3RsMDUkRVBpUGFnZUxpc3QkY3RsMDQkRVBpUGFnZUxpc3QPD2ZkZAU6Y3RsMDAkY3RsMDAkaGVhZGVyQ3RybCRjdGwwMiRFUGlQYWdlTGlzdCRjdGwwMyRFUGlQYWdlTGlzdA8PZmRkBUxjdGwwMCRjdGwwMCRoZWFkZXJDdHJsJGN0bDAyJEVQaVBhZ2VMaXN0JGN0bDA0JEVQaVBhZ2VMaXN0JGN0bDAxJEVQaVBhZ2VMaXN0Dw9mZGQFTGN0bDAwJGN0bDAwJGhlYWRlckN0cmwkY3RsMDIkRVBpUGFnZUxpc3QkY3RsMDIkRVBpUGFnZUxpc3QkY3RsMDIkRVBpUGFnZUxpc3QPD2ZkZAVMY3RsMDAkY3RsMDAkaGVhZGVyQ3RybCRjdGwwMiRFUGlQYWdlTGlzdCRjdGwwMiRFUGlQYWdlTGlzdCRjdGwwMSRFUGlQYWdlTGlzdA8PZmRkBTpjdGwwMCRjdGwwMCRoZWFkZXJDdHJsJGN0bDAyJEVQaVBhZ2VMaXN0JGN0bDAyJEVQaVBhZ2VMaXN0Dw9mZGQFKGN0bDAwJGN0bDAwJGhlYWRlckN0cmwkY3RsMDIkRVBpUGFnZUxpc3QPD2ZkZLe9V6c3C1D+AdUrzWZkI+8K6PVDdYckyq+coeMoGZRQ" />


<script src="/ScriptResource.axd?d=t2opnjijtPl8Kt2foRyIkMKTDlOizKrvJP1tHbTKynfAn_IP8v5RHxuvIV1CwIyko_GKi8GCEHp5lqE6ih7lbWHx1n3C_jubiGAKlYxyYNCPRMuPLtWaKxfgxD92YSGr0&amp;t=ffffffffdd783992" type="text/javascript"></script>
<script type="text/javascript">
//<![CDATA[
(window.Sys && Sys._Application && Sys.Observer)||document.write('<script type="text/javascript" src="/ScriptResource.axd?d=t2opnjijtPl8Kt2foRyIkMKTDlOizKrvJP1tHbTKynfAn_IP8v5RHxuvIV1CwIyko_GKi8GCEHp5lqE6ih7lbWHx1n3C_jubiGAKlYxyYNCPRMuPLtWaKxfgxD92YSGr0&t=ffffffffdd783992"><\/script>');//]]>
</script>

<input type="hidden" name="__VIEWSTATEGENERATOR" id="__VIEWSTATEGENERATOR" value="8CC0DD2A" />
<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEdAARuooHK9LiZwp8Jj15a9o8hqRGeKNRP0eGiT34JJoxV25VDSDEruy9WVqRO/75f2JXM4a+Xo8CGF/8wVBiuGkoHOGMYqeZivwMRuZS5DE94TZBXLJqRnt6j2P+6A4XIjSU=" />
        <div class="l-wrapper row">
            

<header class="l-header">
    <input type="hidden" name="ctl00$ctl00$headerCtrl$secondsRemaining" id="secondsRemaining" value="-1" />
    <!-- webform! -->
    <nav class="mobile_header" role="navigation">
        
        <a href="/calendar/index.aspx" class="mobile_header-calendar" id="mobile_header-calendar">
            <svg focusable="false">
                <use xlink:href="#icon-calendar"></use>
            </svg>
            <span>Calendar</span>
        </a>
        <a class="mobile_header-logo" title="home" href="/">
            <svg focusable="false">
                <use xlink:href="#icon-logo"></use>
            </svg>
            <span>
                Chicago Symphony Orchestra
            </span>
        </a>
        <button class="mobile_header-menu" id="mobile_header-menu" type="button">
            <span class="mobile_header-menu-open">
                <svg focusable="false">
                    <use xlink:href="#icon-menu"></use>
                </svg>
                <span>Menu</span>    
            </span>
            <span class="mobile_header-menu-close">
                <svg focusable="false">
                    <use xlink:href="#icon-close"></use>
                </svg>
                <span>Close</span>
            </span>
        </button>
    </nav>

    <div class="site_title" role="banner">
        <a class="site_title-link" title="home" href="/">
            <img class="site_title-img" src="/img/cso-logo.gif" alt="Chicago Symphony Orchestra" />
        </a>
        <img class="site_title-divider" src="/img/cso-logo-divider.gif" alt="Chicago Symphony Orchestra" />
        <a class="site_title-link" title="home" href="/">
            <img class="site_title-img" src="/img/cso-logo-muti.gif" alt="Chicago Symphony Orchestra" />
        </a>
    </div>

    <div class="mobile_cal" id="mobile_cal">
        <div class="placeholder_text">mobile calendar</div>
    </div>

    <nav class="mobile_menu" id="mobile_menu">
        <div class="mobile_menu-inner" id="mobile_menu-inner">
            <div class="quick_nav" id="quick_nav">
            <ul class="quick_nav-list">
                
                <li class="quick_nav-item quick_nav-item-cart quick_nav-item-cart-desktop">
                   <a class="quick_nav-link cart-link" href="/Cart">
                       <svg focusable="false">
                           <use xlink:href="#icon-cart"></use>
                       </svg>
                       <span id="headerCtrl_hlCartTextDesktop"></span>
                   </a>
                </li>
                
                        <li class="quick_nav-item quick_nav-item-login">
                            <a class="quick_nav-link" title="login" href="/account/Login">
                                <svg focusable="false">
                                    <use xlink:href="#icon-user"></use>
                                </svg>
                                 Login
                            </a>
                        </li>
                    

                <li class="quick_nav-item quick_nav-item-cart quick_nav-item-cart-mobile">
                   <a class="quick_nav-link cart-link" href="/Cart">
                       <svg focusable="false">
                           <use xlink:href="#icon-cart"></use>
                       </svg>
                       <span><span id="headerCtrl_hlCartTextMobile"></span>
                       <span id="mobileCartTimer" class="quick_nav-item-cart-timer"></span></span>
                   </a>
                </li>
                
                
                <li class="quick_nav-item quick_nav-item-signup">
                    <a class="quick_nav-link" title="Sign Up For CSO Email" href="/emailsignup" target="_blank">
                        <svg focusable="false">
                            <use xlink:href="#icon-email"></use>
                        </svg>
                        Email Signup
                    </a>
                </li>
            </ul>
        </div>
        <div class="site_search" role="search">
            <div class="site_search-wrap">
                <input name="ctl00$ctl00$headerCtrl$txtSearch" type="text" id="txtSearch" class="site_search-textbox" placeholder="Search" />
                <a id="lbSearch" class="site_search-label" title="search" href="javascript:__doPostBack(&#39;ctl00$ctl00$headerCtrl$lbSearch&#39;,&#39;&#39;)">
                    <svg focusable="false" aria-hidden="true">
                            <use xlink:href="#icon-search"></use>
                        </svg>
                     <span>Search</span>
                </a>
                <script type="text/javascript">
                    jQuery(document).ready(function () {
                        jQuery('#txtSearch').keypress(function (e) {
                            var code = (e.keyCode ? e.keyCode : e.which);
                            if (code == 13) {
                                e.preventDefault();
                                eval(jQuery('#lbSearch').attr('href'));
                            }
                        });
                    });
                </script>
            </div>
        </div>

        <div id="headerCtrl_Panel1">
	
        <div class="main_nav" id="main_nav_container">
            <ul class="main_nav-list" id="main_nav-list">
    
        <li class="main_nav-item has-children">
            <button class="main_nav-drop_button back" data-nav-trigger="back" type="button">
                <span class="visually-hidden">Explore tickets and events pages list</span>
                <svg focusable="false" aria-hidden="true">
                    <use xlink:href="#icon-arrow"></use>
                </svg>
            </button>
            <a class="main_nav-link" href="https://order.cso.org/events">Tickets &amp; Events</a>
            <button class="main_nav-drop_button forward" data-nav-trigger="forward" type="button">
                <span class="visually-hidden">Explore tickets and events pages list</span>
                <svg focusable="false" aria-hidden="true">
                    <use xlink:href="#icon-arrow"></use>
                </svg>
            </button>
            
                    <ul class="main_nav-drop_list">
                
                    <li class="main_nav-drop_item ">
                        <button class="main_nav-drop_button back" data-nav-trigger="deep-back" type="button">
                            <span class="visually-hidden">Explore tickets and events pages list</span>
                            <svg focusable="false" aria-hidden="true">
                                <use xlink:href="#icon-arrow"></use>
                            </svg>
                        </button>
                        <a class="main_nav-drop_link" href="https://order.cso.org/events">Calendar</a>
                        <button class="main_nav-drop_button forward" data-nav-trigger="deep-forward" type="button">
                            <span class="visually-hidden">Explore tickets and events pages list</span>
                            <svg focusable="false" aria-hidden="true">
                                <use xlink:href="#icon-arrow"></use>
                            </svg>
                        </button>
                        
                    </li>
                
                    <li class="main_nav-drop_item ">
                        <button class="main_nav-drop_button back" data-nav-trigger="deep-back" type="button">
                            <span class="visually-hidden">Explore tickets and events pages list</span>
                            <svg focusable="false" aria-hidden="true">
                                <use xlink:href="#icon-arrow"></use>
                            </svg>
                        </button>
                        <a class="main_nav-drop_link" href="https://order.cso.org/events?view=list">Event List</a>
                        <button class="main_nav-drop_button forward" data-nav-trigger="deep-forward" type="button">
                            <span class="visually-hidden">Explore tickets and events pages list</span>
                            <svg focusable="false" aria-hidden="true">
                                <use xlink:href="#icon-arrow"></use>
                            </svg>
                        </button>
                        
                    </li>
                
                    <li class="main_nav-drop_item ">
                        <button class="main_nav-drop_button back" data-nav-trigger="deep-back" type="button">
                            <span class="visually-hidden">Explore tickets and events pages list</span>
                            <svg focusable="false" aria-hidden="true">
                                <use xlink:href="#icon-arrow"></use>
                            </svg>
                        </button>
                        <a class="main_nav-drop_link" href="/ticketsandevents/201920-season/">2019/20 Season</a>
                        <button class="main_nav-drop_button forward" data-nav-trigger="deep-forward" type="button">
                            <span class="visually-hidden">Explore tickets and events pages list</span>
                            <svg focusable="false" aria-hidden="true">
                                <use xlink:href="#icon-arrow"></use>
                            </svg>
                        </button>
                        
                    </li>
                
                    <li class="main_nav-drop_item ">
                        <button class="main_nav-drop_button back" data-nav-trigger="deep-back" type="button">
                            <span class="visually-hidden">Explore tickets and events pages list</span>
                            <svg focusable="false" aria-hidden="true">
                                <use xlink:href="#icon-arrow"></use>
                            </svg>
                        </button>
                        <a class="main_nav-drop_link" href="/ticketsandevents/subscriptions/">Subscription Options</a>
                        <button class="main_nav-drop_button forward" data-nav-trigger="deep-forward" type="button">
                            <span class="visually-hidden">Explore tickets and events pages list</span>
                            <svg focusable="false" aria-hidden="true">
                                <use xlink:href="#icon-arrow"></use>
                            </svg>
                        </button>
                        
                    </li>
                
                    <li class="main_nav-drop_item ">
                        <button class="main_nav-drop_button back" data-nav-trigger="deep-back" type="button">
                            <span class="visually-hidden">Explore tickets and events pages list</span>
                            <svg focusable="false" aria-hidden="true">
                                <use xlink:href="#icon-arrow"></use>
                            </svg>
                        </button>
                        <a class="main_nav-drop_link" href="/ticketsandevents/group-services/">Group Services</a>
                        <button class="main_nav-drop_button forward" data-nav-trigger="deep-forward" type="button">
                            <span class="visually-hidden">Explore tickets and events pages list</span>
                            <svg focusable="false" aria-hidden="true">
                                <use xlink:href="#icon-arrow"></use>
                            </svg>
                        </button>
                        
                    </li>
                
                    <li class="main_nav-drop_item ">
                        <button class="main_nav-drop_button back" data-nav-trigger="deep-back" type="button">
                            <span class="visually-hidden">Explore tickets and events pages list</span>
                            <svg focusable="false" aria-hidden="true">
                                <use xlink:href="#icon-arrow"></use>
                            </svg>
                        </button>
                        <a class="main_nav-drop_link" href="/ticketsandevents/student-tickets/">Student Tickets</a>
                        <button class="main_nav-drop_button forward" data-nav-trigger="deep-forward" type="button">
                            <span class="visually-hidden">Explore tickets and events pages list</span>
                            <svg focusable="false" aria-hidden="true">
                                <use xlink:href="#icon-arrow"></use>
                            </svg>
                        </button>
                        
                    </li>
                
                    <li class="main_nav-drop_item ">
                        <button class="main_nav-drop_button back" data-nav-trigger="deep-back" type="button">
                            <span class="visually-hidden">Explore tickets and events pages list</span>
                            <svg focusable="false" aria-hidden="true">
                                <use xlink:href="#icon-arrow"></use>
                            </svg>
                        </button>
                        <a class="main_nav-drop_link" href="https://order.cso.org/gift/standard/">Gift Certificates</a>
                        <button class="main_nav-drop_button forward" data-nav-trigger="deep-forward" type="button">
                            <span class="visually-hidden">Explore tickets and events pages list</span>
                            <svg focusable="false" aria-hidden="true">
                                <use xlink:href="#icon-arrow"></use>
                            </svg>
                        </button>
                        
                    </li>
                
                    </ul>
                
        </li>
    
        <li class="main_nav-item has-children">
            <button class="main_nav-drop_button back" data-nav-trigger="back" type="button">
                <span class="visually-hidden">Explore tickets and events pages list</span>
                <svg focusable="false" aria-hidden="true">
                    <use xlink:href="#icon-arrow"></use>
                </svg>
            </button>
            <a class="main_nav-link" href="/plan-your-visit/">Plan Your Visit</a>
            <button class="main_nav-drop_button forward" data-nav-trigger="forward" type="button">
                <span class="visually-hidden">Explore tickets and events pages list</span>
                <svg focusable="false" aria-hidden="true">
                    <use xlink:href="#icon-arrow"></use>
                </svg>
            </button>
            
                    <ul class="main_nav-drop_list">
                
                    <li class="main_nav-drop_item ">
                        <button class="main_nav-drop_button back" data-nav-trigger="deep-back" type="button">
                            <span class="visually-hidden">Explore tickets and events pages list</span>
                            <svg focusable="false" aria-hidden="true">
                                <use xlink:href="#icon-arrow"></use>
                            </svg>
                        </button>
                        <a class="main_nav-drop_link" href="/plan-your-visit/learn-about-the-music/">Learn About the Music</a>
                        <button class="main_nav-drop_button forward" data-nav-trigger="deep-forward" type="button">
                            <span class="visually-hidden">Explore tickets and events pages list</span>
                            <svg focusable="false" aria-hidden="true">
                                <use xlink:href="#icon-arrow"></use>
                            </svg>
                        </button>
                        
                    </li>
                
                    <li class="main_nav-drop_item ">
                        <button class="main_nav-drop_button back" data-nav-trigger="deep-back" type="button">
                            <span class="visually-hidden">Explore tickets and events pages list</span>
                            <svg focusable="false" aria-hidden="true">
                                <use xlink:href="#icon-arrow"></use>
                            </svg>
                        </button>
                        <a class="main_nav-drop_link" href="/plan-your-visit/venue-seating/">Venue and Seating</a>
                        <button class="main_nav-drop_button forward" data-nav-trigger="deep-forward" type="button">
                            <span class="visually-hidden">Explore tickets and events pages list</span>
                            <svg focusable="false" aria-hidden="true">
                                <use xlink:href="#icon-arrow"></use>
                            </svg>
                        </button>
                        
                    </li>
                
                    <li class="main_nav-drop_item ">
                        <button class="main_nav-drop_button back" data-nav-trigger="deep-back" type="button">
                            <span class="visually-hidden">Explore tickets and events pages list</span>
                            <svg focusable="false" aria-hidden="true">
                                <use xlink:href="#icon-arrow"></use>
                            </svg>
                        </button>
                        <a class="main_nav-drop_link" href="/plan-your-visit/parking-and-transit/">Parking and Transit</a>
                        <button class="main_nav-drop_button forward" data-nav-trigger="deep-forward" type="button">
                            <span class="visually-hidden">Explore tickets and events pages list</span>
                            <svg focusable="false" aria-hidden="true">
                                <use xlink:href="#icon-arrow"></use>
                            </svg>
                        </button>
                        
                    </li>
                
                    <li class="main_nav-drop_item ">
                        <button class="main_nav-drop_button back" data-nav-trigger="deep-back" type="button">
                            <span class="visually-hidden">Explore tickets and events pages list</span>
                            <svg focusable="false" aria-hidden="true">
                                <use xlink:href="#icon-arrow"></use>
                            </svg>
                        </button>
                        <a class="main_nav-drop_link" href="/plan-your-visit/opus/">Opus Restaurant &amp; Café</a>
                        <button class="main_nav-drop_button forward" data-nav-trigger="deep-forward" type="button">
                            <span class="visually-hidden">Explore tickets and events pages list</span>
                            <svg focusable="false" aria-hidden="true">
                                <use xlink:href="#icon-arrow"></use>
                            </svg>
                        </button>
                        
                    </li>
                
                    <li class="main_nav-drop_item ">
                        <button class="main_nav-drop_button back" data-nav-trigger="deep-back" type="button">
                            <span class="visually-hidden">Explore tickets and events pages list</span>
                            <svg focusable="false" aria-hidden="true">
                                <use xlink:href="#icon-arrow"></use>
                            </svg>
                        </button>
                        <a class="main_nav-drop_link" href="/plan-your-visit/accessibility/">Accessibility</a>
                        <button class="main_nav-drop_button forward" data-nav-trigger="deep-forward" type="button">
                            <span class="visually-hidden">Explore tickets and events pages list</span>
                            <svg focusable="false" aria-hidden="true">
                                <use xlink:href="#icon-arrow"></use>
                            </svg>
                        </button>
                        
                    </li>
                
                    <li class="main_nav-drop_item ">
                        <button class="main_nav-drop_button back" data-nav-trigger="deep-back" type="button">
                            <span class="visually-hidden">Explore tickets and events pages list</span>
                            <svg focusable="false" aria-hidden="true">
                                <use xlink:href="#icon-arrow"></use>
                            </svg>
                        </button>
                        <a class="main_nav-drop_link" href="/plan-your-visit/questions/">Frequently Asked Questions</a>
                        <button class="main_nav-drop_button forward" data-nav-trigger="deep-forward" type="button">
                            <span class="visually-hidden">Explore tickets and events pages list</span>
                            <svg focusable="false" aria-hidden="true">
                                <use xlink:href="#icon-arrow"></use>
                            </svg>
                        </button>
                        
                    </li>
                
                    </ul>
                
        </li>
    
        <li class="main_nav-item has-children">
            <button class="main_nav-drop_button back" data-nav-trigger="back" type="button">
                <span class="visually-hidden">Explore tickets and events pages list</span>
                <svg focusable="false" aria-hidden="true">
                    <use xlink:href="#icon-arrow"></use>
                </svg>
            </button>
            <a class="main_nav-link" href="/support/">Support</a>
            <button class="main_nav-drop_button forward" data-nav-trigger="forward" type="button">
                <span class="visually-hidden">Explore tickets and events pages list</span>
                <svg focusable="false" aria-hidden="true">
                    <use xlink:href="#icon-arrow"></use>
                </svg>
            </button>
            
                    <ul class="main_nav-drop_list">
                
                    <li class="main_nav-drop_item ">
                        <button class="main_nav-drop_button back" data-nav-trigger="deep-back" type="button">
                            <span class="visually-hidden">Explore tickets and events pages list</span>
                            <svg focusable="false" aria-hidden="true">
                                <use xlink:href="#icon-arrow"></use>
                            </svg>
                        </button>
                        <a class="main_nav-drop_link" href="/support/personal-giving/">Personal Giving</a>
                        <button class="main_nav-drop_button forward" data-nav-trigger="deep-forward" type="button">
                            <span class="visually-hidden">Explore tickets and events pages list</span>
                            <svg focusable="false" aria-hidden="true">
                                <use xlink:href="#icon-arrow"></use>
                            </svg>
                        </button>
                        
                    </li>
                
                    <li class="main_nav-drop_item ">
                        <button class="main_nav-drop_button back" data-nav-trigger="deep-back" type="button">
                            <span class="visually-hidden">Explore tickets and events pages list</span>
                            <svg focusable="false" aria-hidden="true">
                                <use xlink:href="#icon-arrow"></use>
                            </svg>
                        </button>
                        <a class="main_nav-drop_link" href="/support/corporate-sponsorship/">Corporate Sponsorship</a>
                        <button class="main_nav-drop_button forward" data-nav-trigger="deep-forward" type="button">
                            <span class="visually-hidden">Explore tickets and events pages list</span>
                            <svg focusable="false" aria-hidden="true">
                                <use xlink:href="#icon-arrow"></use>
                            </svg>
                        </button>
                        
                    </li>
                
                    <li class="main_nav-drop_item ">
                        <button class="main_nav-drop_button back" data-nav-trigger="deep-back" type="button">
                            <span class="visually-hidden">Explore tickets and events pages list</span>
                            <svg focusable="false" aria-hidden="true">
                                <use xlink:href="#icon-arrow"></use>
                            </svg>
                        </button>
                        <a class="main_nav-drop_link" href="/support/get-involved/">Get Involved</a>
                        <button class="main_nav-drop_button forward" data-nav-trigger="deep-forward" type="button">
                            <span class="visually-hidden">Explore tickets and events pages list</span>
                            <svg focusable="false" aria-hidden="true">
                                <use xlink:href="#icon-arrow"></use>
                            </svg>
                        </button>
                        
                    </li>
                
                    <li class="main_nav-drop_item ">
                        <button class="main_nav-drop_button back" data-nav-trigger="deep-back" type="button">
                            <span class="visually-hidden">Explore tickets and events pages list</span>
                            <svg focusable="false" aria-hidden="true">
                                <use xlink:href="#icon-arrow"></use>
                            </svg>
                        </button>
                        <a class="main_nav-drop_link" href="/support/national-and-international-friends-of-the-cso/">National and International Friends</a>
                        <button class="main_nav-drop_button forward" data-nav-trigger="deep-forward" type="button">
                            <span class="visually-hidden">Explore tickets and events pages list</span>
                            <svg focusable="false" aria-hidden="true">
                                <use xlink:href="#icon-arrow"></use>
                            </svg>
                        </button>
                        
                    </li>
                
                    <li class="main_nav-drop_item ">
                        <button class="main_nav-drop_button back" data-nav-trigger="deep-back" type="button">
                            <span class="visually-hidden">Explore tickets and events pages list</span>
                            <svg focusable="false" aria-hidden="true">
                                <use xlink:href="#icon-arrow"></use>
                            </svg>
                        </button>
                        <a class="main_nav-drop_link" href="/support/contact-development/">Contact Development</a>
                        <button class="main_nav-drop_button forward" data-nav-trigger="deep-forward" type="button">
                            <span class="visually-hidden">Explore tickets and events pages list</span>
                            <svg focusable="false" aria-hidden="true">
                                <use xlink:href="#icon-arrow"></use>
                            </svg>
                        </button>
                        
                    </li>
                
                    </ul>
                
        </li>
    
        <li class="main_nav-item has-children">
            <button class="main_nav-drop_button back" data-nav-trigger="back" type="button">
                <span class="visually-hidden">Explore tickets and events pages list</span>
                <svg focusable="false" aria-hidden="true">
                    <use xlink:href="#icon-arrow"></use>
                </svg>
            </button>
            <a class="main_nav-link" href="/institute/">Negaunee Music Institute</a>
            <button class="main_nav-drop_button forward" data-nav-trigger="forward" type="button">
                <span class="visually-hidden">Explore tickets and events pages list</span>
                <svg focusable="false" aria-hidden="true">
                    <use xlink:href="#icon-arrow"></use>
                </svg>
            </button>
            
                    <ul class="main_nav-drop_list">
                
                    <li class="main_nav-drop_item ">
                        <button class="main_nav-drop_button back" data-nav-trigger="deep-back" type="button">
                            <span class="visually-hidden">Explore tickets and events pages list</span>
                            <svg focusable="false" aria-hidden="true">
                                <use xlink:href="#icon-arrow"></use>
                            </svg>
                        </button>
                        <a class="main_nav-drop_link" href="/institute/children-families/">Children &amp; Families</a>
                        <button class="main_nav-drop_button forward" data-nav-trigger="deep-forward" type="button">
                            <span class="visually-hidden">Explore tickets and events pages list</span>
                            <svg focusable="false" aria-hidden="true">
                                <use xlink:href="#icon-arrow"></use>
                            </svg>
                        </button>
                        
                    </li>
                
                    <li class="main_nav-drop_item ">
                        <button class="main_nav-drop_button back" data-nav-trigger="deep-back" type="button">
                            <span class="visually-hidden">Explore tickets and events pages list</span>
                            <svg focusable="false" aria-hidden="true">
                                <use xlink:href="#icon-arrow"></use>
                            </svg>
                        </button>
                        <a class="main_nav-drop_link" href="/institute/schools-teachers/">Schools &amp; Teachers</a>
                        <button class="main_nav-drop_button forward" data-nav-trigger="deep-forward" type="button">
                            <span class="visually-hidden">Explore tickets and events pages list</span>
                            <svg focusable="false" aria-hidden="true">
                                <use xlink:href="#icon-arrow"></use>
                            </svg>
                        </button>
                        
                    </li>
                
                    <li class="main_nav-drop_item ">
                        <button class="main_nav-drop_button back" data-nav-trigger="deep-back" type="button">
                            <span class="visually-hidden">Explore tickets and events pages list</span>
                            <svg focusable="false" aria-hidden="true">
                                <use xlink:href="#icon-arrow"></use>
                            </svg>
                        </button>
                        <a class="main_nav-drop_link" href="/institute/young-musicians/">Young Musicians</a>
                        <button class="main_nav-drop_button forward" data-nav-trigger="deep-forward" type="button">
                            <span class="visually-hidden">Explore tickets and events pages list</span>
                            <svg focusable="false" aria-hidden="true">
                                <use xlink:href="#icon-arrow"></use>
                            </svg>
                        </button>
                        
                    </li>
                
                    <li class="main_nav-drop_item ">
                        <button class="main_nav-drop_button back" data-nav-trigger="deep-back" type="button">
                            <span class="visually-hidden">Explore tickets and events pages list</span>
                            <svg focusable="false" aria-hidden="true">
                                <use xlink:href="#icon-arrow"></use>
                            </svg>
                        </button>
                        <a class="main_nav-drop_link" href="/institute/civic-orchestra-of-chicago/">Civic Orchestra of Chicago</a>
                        <button class="main_nav-drop_button forward" data-nav-trigger="deep-forward" type="button">
                            <span class="visually-hidden">Explore tickets and events pages list</span>
                            <svg focusable="false" aria-hidden="true">
                                <use xlink:href="#icon-arrow"></use>
                            </svg>
                        </button>
                        
                    </li>
                
                    <li class="main_nav-drop_item ">
                        <button class="main_nav-drop_button back" data-nav-trigger="deep-back" type="button">
                            <span class="visually-hidden">Explore tickets and events pages list</span>
                            <svg focusable="false" aria-hidden="true">
                                <use xlink:href="#icon-arrow"></use>
                            </svg>
                        </button>
                        <a class="main_nav-drop_link" href="/institute/community-partnerships/">Community Partnerships</a>
                        <button class="main_nav-drop_button forward" data-nav-trigger="deep-forward" type="button">
                            <span class="visually-hidden">Explore tickets and events pages list</span>
                            <svg focusable="false" aria-hidden="true">
                                <use xlink:href="#icon-arrow"></use>
                            </svg>
                        </button>
                        
                    </li>
                
                    <li class="main_nav-drop_item ">
                        <button class="main_nav-drop_button back" data-nav-trigger="deep-back" type="button">
                            <span class="visually-hidden">Explore tickets and events pages list</span>
                            <svg focusable="false" aria-hidden="true">
                                <use xlink:href="#icon-arrow"></use>
                            </svg>
                        </button>
                        <a class="main_nav-drop_link" href="/institute/resources/">Resources</a>
                        <button class="main_nav-drop_button forward" data-nav-trigger="deep-forward" type="button">
                            <span class="visually-hidden">Explore tickets and events pages list</span>
                            <svg focusable="false" aria-hidden="true">
                                <use xlink:href="#icon-arrow"></use>
                            </svg>
                        </button>
                        
                    </li>
                
                    </ul>
                
        </li>
    
        <li class="main_nav-item has-children">
            <button class="main_nav-drop_button back" data-nav-trigger="back" type="button">
                <span class="visually-hidden">Explore tickets and events pages list</span>
                <svg focusable="false" aria-hidden="true">
                    <use xlink:href="#icon-arrow"></use>
                </svg>
            </button>
            <a class="main_nav-link" href="/about/">About</a>
            <button class="main_nav-drop_button forward" data-nav-trigger="forward" type="button">
                <span class="visually-hidden">Explore tickets and events pages list</span>
                <svg focusable="false" aria-hidden="true">
                    <use xlink:href="#icon-arrow"></use>
                </svg>
            </button>
            
                    <ul class="main_nav-drop_list">
                
                    <li class="main_nav-drop_item ">
                        <button class="main_nav-drop_button back" data-nav-trigger="deep-back" type="button">
                            <span class="visually-hidden">Explore tickets and events pages list</span>
                            <svg focusable="false" aria-hidden="true">
                                <use xlink:href="#icon-arrow"></use>
                            </svg>
                        </button>
                        <a class="main_nav-drop_link" href="/about/performers/">Performers</a>
                        <button class="main_nav-drop_button forward" data-nav-trigger="deep-forward" type="button">
                            <span class="visually-hidden">Explore tickets and events pages list</span>
                            <svg focusable="false" aria-hidden="true">
                                <use xlink:href="#icon-arrow"></use>
                            </svg>
                        </button>
                        
                    </li>
                
                    <li class="main_nav-drop_item ">
                        <button class="main_nav-drop_button back" data-nav-trigger="deep-back" type="button">
                            <span class="visually-hidden">Explore tickets and events pages list</span>
                            <svg focusable="false" aria-hidden="true">
                                <use xlink:href="#icon-arrow"></use>
                            </svg>
                        </button>
                        <a class="main_nav-drop_link" href="/about/press-room/">Press Room</a>
                        <button class="main_nav-drop_button forward" data-nav-trigger="deep-forward" type="button">
                            <span class="visually-hidden">Explore tickets and events pages list</span>
                            <svg focusable="false" aria-hidden="true">
                                <use xlink:href="#icon-arrow"></use>
                            </svg>
                        </button>
                        
                    </li>
                
                    <li class="main_nav-drop_item ">
                        <button class="main_nav-drop_button back" data-nav-trigger="deep-back" type="button">
                            <span class="visually-hidden">Explore tickets and events pages list</span>
                            <svg focusable="false" aria-hidden="true">
                                <use xlink:href="#icon-arrow"></use>
                            </svg>
                        </button>
                        <a class="main_nav-drop_link" href="/about/beyond-the-score-licensing/">Beyond the Score Licensing</a>
                        <button class="main_nav-drop_button forward" data-nav-trigger="deep-forward" type="button">
                            <span class="visually-hidden">Explore tickets and events pages list</span>
                            <svg focusable="false" aria-hidden="true">
                                <use xlink:href="#icon-arrow"></use>
                            </svg>
                        </button>
                        
                    </li>
                
                    <li class="main_nav-drop_item ">
                        <button class="main_nav-drop_button back" data-nav-trigger="deep-back" type="button">
                            <span class="visually-hidden">Explore tickets and events pages list</span>
                            <svg focusable="false" aria-hidden="true">
                                <use xlink:href="#icon-arrow"></use>
                            </svg>
                        </button>
                        <a class="main_nav-drop_link" href="/about/facility-rentals/">Facility Rentals</a>
                        <button class="main_nav-drop_button forward" data-nav-trigger="deep-forward" type="button">
                            <span class="visually-hidden">Explore tickets and events pages list</span>
                            <svg focusable="false" aria-hidden="true">
                                <use xlink:href="#icon-arrow"></use>
                            </svg>
                        </button>
                        
                    </li>
                
                    <li class="main_nav-drop_item ">
                        <button class="main_nav-drop_button back" data-nav-trigger="deep-back" type="button">
                            <span class="visually-hidden">Explore tickets and events pages list</span>
                            <svg focusable="false" aria-hidden="true">
                                <use xlink:href="#icon-arrow"></use>
                            </svg>
                        </button>
                        <a class="main_nav-drop_link" href="/about/employment/">Employment</a>
                        <button class="main_nav-drop_button forward" data-nav-trigger="deep-forward" type="button">
                            <span class="visually-hidden">Explore tickets and events pages list</span>
                            <svg focusable="false" aria-hidden="true">
                                <use xlink:href="#icon-arrow"></use>
                            </svg>
                        </button>
                        
                    </li>
                
                    <li class="main_nav-drop_item ">
                        <button class="main_nav-drop_button back" data-nav-trigger="deep-back" type="button">
                            <span class="visually-hidden">Explore tickets and events pages list</span>
                            <svg focusable="false" aria-hidden="true">
                                <use xlink:href="#icon-arrow"></use>
                            </svg>
                        </button>
                        <a class="main_nav-drop_link" href="/about/cso-association-administration/">CSO Association Administration</a>
                        <button class="main_nav-drop_button forward" data-nav-trigger="deep-forward" type="button">
                            <span class="visually-hidden">Explore tickets and events pages list</span>
                            <svg focusable="false" aria-hidden="true">
                                <use xlink:href="#icon-arrow"></use>
                            </svg>
                        </button>
                        
                    </li>
                
                    <li class="main_nav-drop_item ">
                        <button class="main_nav-drop_button back" data-nav-trigger="deep-back" type="button">
                            <span class="visually-hidden">Explore tickets and events pages list</span>
                            <svg focusable="false" aria-hidden="true">
                                <use xlink:href="#icon-arrow"></use>
                            </svg>
                        </button>
                        <a class="main_nav-drop_link" href="/about/resources/">Resources</a>
                        <button class="main_nav-drop_button forward" data-nav-trigger="deep-forward" type="button">
                            <span class="visually-hidden">Explore tickets and events pages list</span>
                            <svg focusable="false" aria-hidden="true">
                                <use xlink:href="#icon-arrow"></use>
                            </svg>
                        </button>
                        
                    </li>
                
                    <li class="main_nav-drop_item ">
                        <button class="main_nav-drop_button back" data-nav-trigger="deep-back" type="button">
                            <span class="visually-hidden">Explore tickets and events pages list</span>
                            <svg focusable="false" aria-hidden="true">
                                <use xlink:href="#icon-arrow"></use>
                            </svg>
                        </button>
                        <a class="main_nav-drop_link" href="/about/rosenthal-archives/">Rosenthal Archives</a>
                        <button class="main_nav-drop_button forward" data-nav-trigger="deep-forward" type="button">
                            <span class="visually-hidden">Explore tickets and events pages list</span>
                            <svg focusable="false" aria-hidden="true">
                                <use xlink:href="#icon-arrow"></use>
                            </svg>
                        </button>
                        
                    </li>
                
                    </ul>
                
        </li>
    
        <li class="main_nav-item ">
            <button class="main_nav-drop_button back" data-nav-trigger="back" type="button">
                <span class="visually-hidden">Explore tickets and events pages list</span>
                <svg focusable="false" aria-hidden="true">
                    <use xlink:href="#icon-arrow"></use>
                </svg>
            </button>
            <a class="main_nav-link" href="https://www.symphonystore.com/" target="_blank">Symphony Store</a>
            <button class="main_nav-drop_button forward" data-nav-trigger="forward" type="button">
                <span class="visually-hidden">Explore tickets and events pages list</span>
                <svg focusable="false" aria-hidden="true">
                    <use xlink:href="#icon-arrow"></use>
                </svg>
            </button>
            
        </li>
    
        <li class="main_nav-item ">
            <button class="main_nav-drop_button back" data-nav-trigger="back" type="button">
                <span class="visually-hidden">Explore tickets and events pages list</span>
                <svg focusable="false" aria-hidden="true">
                    <use xlink:href="#icon-arrow"></use>
                </svg>
            </button>
            <a class="main_nav-link" href="https://csosoundsandstories.org/" target="_blank">Sounds &amp; Stories</a>
            <button class="main_nav-drop_button forward" data-nav-trigger="forward" type="button">
                <span class="visually-hidden">Explore tickets and events pages list</span>
                <svg focusable="false" aria-hidden="true">
                    <use xlink:href="#icon-arrow"></use>
                </svg>
            </button>
            
        </li>
    
        </ul>
</div>        
    

</div>
        
        </div>
    </nav>

    <div id="headerCtrl_Panel2">

</div>

</header>

            
            <div class="l-container">
                
    
    <div id="mainCol" class="mainContentFull">
        <div id="mainContent">
            
    <h1 class="page_title">Not Found</h1>
    <figure class="l-hero">
        
    </figure>
    <main class="l-main_right main large-8 landing-content" role="main">
        <section class="landing-page_copy">
            <h2 class="page_subhead">Sorry, your page could not be found.</h2>
        </section>
        <div class="rich-text">
	<p>Please try the following:</p>
<ol>
<li>Confirm that the URL or term is entered correctly.</li>
<li>Open a new page or tab and try again.</li>
<li>Type the URL manually rather than clicking a link.&nbsp;</li>
<li>Restart your browser and try again.</li>
<li>Visit the page with another browser or device.</li>
</ol>
<p><br />To report a broken link or problem with the site, visit <a href="/contact/">cso.org/contact</a>&nbsp;or call&nbsp;<strong>312-294-3000</strong>.&nbsp;We appreciate your feedback.</p>
</div>
        <div><div>
	
<h3 class="callout-title">
    
</h3>

<style type="text/css">
a, p > a {
 color: #b22222;
 text-decoration: none;
}
a:hover, a:focus {
color: #b22222;
text-decoration: underline;
}
#mainContent {
 padding: 0;
 margin: 0;
 max-width: 100%;
}
.l-container {
 padding: 0;
 width: 100%;
 margin: 0;
 vertical-align: top;
 max-width: 100%;
}
.mobile_cal {
 display: none;
}
.placeholder_text {
 display: none;
}
.main_nav-back, .main_nav-deep_back {
 border-style: none;
 -webkit-appearance: none;
 -moz-appearance: none;
 background-color: transparent;
 cursor: pointer;
 line-height: 1.6em;
}
.main_nav-link, .main_nav-link-grey, .main_nav-drop_link, .main_nav-deep_link, .main_nav-back, .main_nav-deep_back, .main_nav-drop_button, .main_nav-deep_button {
 user-select: none;
 -moz-user-select: none;
 -webkit-user-select: none;
 -o-user-select: none;
 -ms-user-select: none;
 -webkit-tap-highlight-color: transparent;
 line-height: 1.6em;
}
.callout-2col_text > * {
 padding: 0;
 margin: 0;
 border: none;
}
.l-container, #mainContent, .landing, .landing-archive, .wide .landing-archive_article, .pager, .callout-4col, .callout-2col {
 display: -ms-flexbox;
 display: -webkit-box;
 display: flex;
}
.home-callout-container > div {
 border-bottom: 1px solid #eee;
 padding-bottom: 1em;
}
.home-sidebar_block > div {
 display: none;
}
.home-sidebar_block > div:last-child {
 border-bottom: none;
}
.home-sidebar_item {
 list-style-type: none
}
.callout-2col_text {
 margin: 0;
 font-size: 1em
}
.owl-prev, .owl-next {
 background: url('/globalassets/carousel_arrows-trans.png') no-repeat;
 width: 36px;
 height: 36px;
 z-index: 10;
 color: transparent;
 top: 48%;
}
html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, figcaption, figure, header, hgroup, menu, nav, section, summary, time, mark, audio, video, fieldset, form, label {
 margin: 0;
 padding: 0;
 border: 0;
 outline: none !important;
 font-size: 1em;
 vertical-align: baseline;
 background: transparent;
}
html, body {
 font-size: 1em;
 max-width: 100%;
}
body {
 line-height: 1.6em;
 font-family:  'Helvetica Neue Light', 'Helvetica Neue', 'Helvetica Neue eText Pro', 'HelveticaNeueLTPro-Lt', 'HelveticaNeue-Light',Helvetica, Arial, sans-serif;
 -moz-osx-font-smoothing: grayscale;
 -webkit-font-smoothing: antialiased;
 margin: 0;
  padding: 0;
 color: #070707;
 background-color: #ffffff;
}
#csoBody {
 background-color: #ffffff;
  margin: 0;
   padding: 0;
}
body.menu-opened {
 overflow: hidden;
}
#headerCtrl_Panel2 {
 display: none !important;
}
@media(max-width:925px) {
body.menu-opened .zopim {
 display: none;
 }
}
/* hide old bg image */
.l-header:before {
 display: none !important;
 background-image: none !important;
}
article, aside, details, figcaption, figure, header, hgroup, menu, nav, section, footer {
 display: block;
}
ol, ul {
 list-style-type: none;
}
blockquote, q {
 quotes: none;
}
blockquote:before, blockquote:after, q:before, q:after {
 content: '';
 content: none;
}

body {
 font-weight: 400;  /* CHANGED - had been normal */
 font-style: normal
}
a {
 color: #b22222;
 word-wrap: break-word;
 padding: 0; 
 font-weight: 500;
 vertical-align: baseline;
 background: transparent;
}
a:hover, a:focus {
color: #b22222;
text-decoration: underline !important;
}
img {
 max-width: 100%;
 height: auto;
 display: inline-block;
 vertical-align: middle;
 -ms-interpolation-mode: bicubic;
 width: auto\9; /* ie8 */
}
.videowrap {
 position: relative;
 padding-bottom: 56.25%; /* 16:9 */
 padding-top: 20px;
 height: 0;
 max-width: 1198px;
}
.videowrap iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	max-width: 100%; 
	height: 98%; 
}
.row {
 width: 100%;
 margin-left: 0;
 margin-right: 0;
 margin-top: 0;
 margin-bottom: 0;
 max-width: 1198px;
}	
.main_nav-drop_button, .main_nav-deep_button {
 border-style: none;
 margin: 0;
 padding: 0;
 width: auto;
 overflow: visible;
 background: transparent;
 /* color: inherit; */
 font: inherit;
 line-height: inherit;
 -webkit-font-smoothing: inherit;
 -moz-osx-font-smoothing: inherit;
 -webkit-appearance: none
}
@-webkit-keyframes slideIn {
from {
-webkit-transform: translateY(-120%);
        transform: translateY(-120%)
}
to {
-webkit-transform: translateY(0);
        transform: translateY(0)
}
}
@keyframes slideIn {
from {
-webkit-transform: translateY(-120%);
        transform: translateY(-120%)
}
to {
-webkit-transform: translateY(0);
        transform: translateY(0)
}
}
@-webkit-keyframes fade-in {
0% {
opacity: 0
}
50% {
opacity: 0
}
100% {
opacity: 0
}
}
@keyframes fade-in {
0% {
opacity: 0
}
50% {
opacity:0
}
100% {
opacity: 0
}
}
@-webkit-keyframes load1 {
0%, 80%, 100% {
height: 10px;
-webkit-box-shadow: 0 0 #fff;
        box-shadow: 0 0 #fff
}
40% {
height: 15px;
-webkit-box-shadow: 0 -6px #fff;
        box-shadow: 0 -6px #fff
}
}
@keyframes load1 {
0%, 80%, 100% {
height: 10px;
-webkit-box-shadow: 0 0 #fff;
        box-shadow: 0 0 #fff;
}
40% {
height: 15px;
-webkit-box-shadow: none;
        box-shadow: 0 -6px #fff;
}
}
.ng-cloak {
 display: none !important;
}
	
h1, h1.tn-heading {
 font-size: 2em;
 color: #1b1b1b;
 font-weight: 600;
 line-height: 1.6em;
 width: 100%;
 margin: 8px 0 14px 0;
 font-family: 'Source Sans Pro', Source Sans Pro, Source Sans, 'Open Sans', Open Sans, Arial, sans-serif !important;
 -moz-osx-font-smoothing: grayscale;
 -webkit-font-smoothing: antialiased;
 text-transform: none !important;
 padding: 0 10px 2px 0;
}
h2 {
 font-size: 1.8em;
 font-weight: 600;
 color: #1b1b1b;
 margin: 10px 0 15px 0;
 line-height: 1.6em;
 font-family: 'Source Sans Pro', Source Sans Pro, Source Sans, 'Open Sans', Open Sans, Arial, sans-serif !important;
 -moz-osx-font-smoothing: grayscale;
 -webkit-font-smoothing: antialiased;
 text-transform: none !important;
 padding: 0 15px 2px 0;
}

h3 {
 text-transform: none;
 font-family: 'Source Sans Pro', Source Sans Pro, Source Sans, 'Open Sans', Open Sans, Arial, sans-serif !important;
 -moz-osx-font-smoothing: grayscale;
 -webkit-font-smoothing: antialiased;
 font-size: 1.6em;
 line-height: 1.6em;
 font-weight: 600;
 text-transform: none !important;
 margin: 10px 0 15px 0;
 padding: 0 10px 2px 0;
}
h1.page_title, h2.page_title, h3.page_title {
 font-weight: 600;
 color: #1b1b1b;
 font-family: 'Source Sans Pro', Source Sans Pro, Source Sans, 'Open Sans', Open Sans, Arial, sans-serif !important;
 -moz-osx-font-smoothing: grayscale;
 -webkit-font-smoothing: antialiased;
 font-size: 2.1em;
 line-height: 1.6em;
 text-transform: none !important;
 margin: 20px 0 15px 2px !important;
 padding: 0;
}
h4 {
 font-weight: 600;
 color: #363636;
 font-family: 'Source Sans Pro', Source Sans Pro, Source Sans, 'Open Sans', Open Sans, Arial, sans-serif !important;
 -moz-osx-font-smoothing: grayscale;
 -webkit-font-smoothing: antialiased;
 font-size: 1.5em;
 line-height: 1.6em;
 text-transform: none !important;
 margin: 10px 0 15px 0;
 padding: 0 10px 2px 0;
}
h2.page_subhead, h1.page_subhead, h3.page_subhead {
 font-weight: 600;
 font-family:  'Helvetica Neue Light', 'Helvetica Neue', 'Helvetica Neue eText Pro', 'HelveticaNeueLTPro-Lt', 'HelveticaNeue-Light',Helvetica, Arial, sans-serif;
 /* note using Helvetica instead of Source since most of these are body copy text */
 font-size: 1.7em;
 line-height: 1.4em;
  color: #1b1b1b;
 text-transform: none !important;
 margin: 5px 0 15px 0;
 padding: 15px 10px 10px 0;
}
p, li, div {
 font-size: 1em;
 font-family:  'Helvetica Neue Light', 'Helvetica Neue', 'Helvetica Neue eText Pro', 'HelveticaNeueLTPro-Lt', 'HelveticaNeue-Light', Helvetica Neue, Helvetica, Arial, sans-serif;
 -moz-osx-font-smoothing: grayscale;
 -webkit-font-smoothing: antialiased;
 color: #070707;
 font-weight: 400;
}
p, div.p, div > p, p > span {
 margin-bottom: 15px;
 font-family:  'Helvetica Neue Light', 'Helvetica Neue', 'Helvetica Neue eText Pro', 'HelveticaNeueLTPro-Lt', 'HelveticaNeue-Light', Helvetica Neue, Helvetica, Arial, sans-serif;
 -moz-osx-font-smoothing: grayscale;
 -webkit-font-smoothing: antialiased;
 color: #070707;
 line-height: 1.5em;
 font-weight: 400;
}
p > strong, strong, div > strong {
 font-family:  'Helvetica Neue Light', 'Helvetica Neue', 'Helvetica Neue eText Pro', 'HelveticaNeueLTPro-Lt', 'HelveticaNeue-Light', Helvetica Neue, Helvetica, Arial, sans-serif;
 -moz-osx-font-smoothing: grayscale;
 -webkit-font-smoothing: antialiased;
 color: #070707;
 font-weight: 600;
}

.rich-text h3 {
 text-transform: none;
 font-weight: inherit;
 color: #363636;
 font-family:  'Helvetica Neue Light', 'Helvetica Neue', 'Helvetica Neue eText Pro', 'HelveticaNeueLTPro-Lt', 'HelveticaNeue-Light', Helvetica Neue, Helvetica, Arial, sans-serif;
 -moz-osx-font-smoothing: grayscale;
 -webkit-font-smoothing: antialiased;
 font-size: 1.6em;
}
.rich-text ol {
 list-style-type: decimal
}
.rich-text ul {
 list-style-type: disc
}
.rich-text ol, .rich-text ul {
 margin: 0 0 .85em .85em;
 padding-left: 4px
}
.rich-text ol li + li, .rich-text ul li + li {
 padding-top: .85em
}
.error, .field-validation-error {
 color: #b22222;
 font-weight: 700;
 font-size: 1em;
 font-family:  'Helvetica Neue Light', 'Helvetica Neue', 'Helvetica Neue eText Pro', 'HelveticaNeueLTPro-Lt', 'HelveticaNeue-Light', Helvetica Neue, Helvetica, Arial, sans-serif;
 -moz-osx-font-smoothing: grayscale;
 -webkit-font-smoothing: antialiased;
}
.error p, .field-validation-error p {
 color: #b22222;
 font-family:  'Helvetica Neue Light', 'Helvetica Neue', 'Helvetica Neue eText Pro', 'HelveticaNeueLTPro-Lt', 'HelveticaNeue-Light', Helvetica Neue, Helvetica, Arial, sans-serif;
 -moz-osx-font-smoothing: grayscale;
 -webkit-font-smoothing: antialiased;
 padding: 1.5em;
}
/* generic paragraph style for spacing at end of p */
.paragraph {
 padding-bottom: 1.25em;
}
.l-wrapper {
 width: 100%;
 margin: 0 auto;
 padding: 0 auto;
 display: block;
 /* height: 100%; */
}

/* main content padding */
.l-container, #mainContent {
 -ms-flex: 1 100%;
 -webkit-box-flex: 1;
         flex: 1 100%;
 flex-wrap: wrap;
 -webkit-flex-wrap: wrap;
 -ms-flex-wrap: wrap;
 padding: 0 10px 0 10px;
 margin: 0;
 width: 100%;
 max-width: 100%;
}
@media(min-width: 926px) {
.l-header {
 display: table;
 width: 100%;
 background: transparent;
 position: relative;
 z-index: 19; /* changed - was 900 */ 
 height: 168px !important;
 min-height: 168px !important;
max-width: 100%;
 margin: 0;
 padding: 0 0 1.6em 0; /* changed 8-31 */
 margin-top: 21px !important;
 vertical-align: bottom;
}
.l-sidebar {
 max-width: 280px;
}
}
@media(max-width: 925px) {
.l-header {
  padding: 0; 
  display: table;
  width: 100%;
  max-width: 100%;
  height: auto;
  background: transparent;
  position: relative;
  z-index: 1;
  margin: 0;
 }
.l-sidebar {
 width: 100%;
max-width: 100%;
}
.owl-dots {
 display: block;
 position: absolute;
 left: 20%;
 right: 20%;
 bottom: .5em;
 z-index: 20;
 opacity: 0.8;
}
.owl-dot {
 background: #ccc;
 display: inline-block;
 height: .3em;
 margin: 0 .3em;
 width: .3em;
 opacity: 0.8;
}
}

@media(min-width: 640px) {
.owl-dots {
 display: block;
 opacity: 0.8;
}
.owl-dot {
 display: inline-block;
 opacity: 0.8;
}
}


@media(max-width: 639px) {
.owl-dots {
 display: none;
 opacity: 0;
}
.owl-dot {
 display: none;
 opacity: 0;
}
}



.l-hero {
 position: relative;
width: 100%;
height: auto;
 margin: 15px 0 10px 0;
padding: 0;
 text-align: center;
max-width: 100%;
}
.l-main {
 width: 100%;
max-width: 100%;
}
.l-main_left {
 -ms-flex-order: 1;
 -webkit-box-ordinal-group: 2;
         order: 1;
}
.l-main_right {
 -ms-flex-order: 2;
 -webkit-box-ordinal-group: 3;
         order: 2;
}

.l-sidebar_left {
 padding-right: 2em;
 -ms-flex-order: 1;
 -webkit-box-ordinal-group: 2;
         order: 1;
}
.l-sidebar_right {
 padding-left: 2em;
 -ms-flex-order: 2;
 -webkit-box-ordinal-group: 3;
         order: 2;
}
.mainContentFull {
 width: 100%;
 height: 100%;
}

@media(min-width:926px) {
.main_nav {
 float: left;
 margin: 0; 
 padding: 0 2px 0 0;
 width: 100%;
 white-space: nowrap;
 vertical-align: bottom;
 max-width: 100%;
 }
.main_nav-list {
 display: table;
 width: 100%;
 padding-right: 2px;
 padding-left: 2px;
 white-space: nowrap;
 max-width: 100%; /* changed 9-24 - was 1200 */
 vertical-align: bottom;
 max-height: 38px; /* added 9-6 */
 }
}

.main_nav-link {
 font-family: 'Source Sans Pro', Source Sans Pro, Source Sans, 'Open Sans', Open Sans, Arial, sans-serif;
 -moz-osx-font-smoothing: grayscale;
 -webkit-font-smoothing: antialiased;
 text-transform: uppercase;
 font-size: 1.1em;
 line-height: 1.1em;
 color: #070707;
 text-decoration: none !important;
 font-weight: 600;
 padding: 0;
}
.main_nav-link:after {
 content: ' |';
 color: #ccc;
 font-size: .8em;
 font-weight: 100;
 padding: 0 1px 0 7px;
 margin: 0;
 vertical-align: baseline;
 text-decoration: none !important;
}
.main_nav-link:after:hover, .main_nav-link:after:focus {
text-decoration: none !important;
color: #fff; /* white underline on space character */
}
.main_nav-link:hover, .main_nav-link:focus {
 text-decoration: none !important;
 color: #b22222 !important;
}
.main_nav-item:hover, .main_nav-item:focus {
 text-decoration: none !important;
 color: #b22222 !important;
}

@media(min-width:926px) {
.main_nav-item {
 float: left;
 margin: 0;
 padding: 0 10px 13px 0 !important;
 position: relative;
 display: inline-block;
 z-index: 1
}
.main_nav-link:last-child {
 color: #363636 !important;
}
.main_nav-link:nth-last-child(2) {
 color: #363636 !important;
}
.main_nav-link:last-child:hover, .main_nav-link:last-child:focus {
 color: #b22222 !important;
  text-decoration: none !important;
}
.main_nav-link:nth-last-child(2):hover, .main_nav-link:nth-last-child(2):focus {
 color: #b22222 !important;
  text-decoration: none !important;
}

.main_nav-item:last-child {
 float: right;
 color: #363636;
 margin: 0;
 padding: 0 10px 13px 0 !important;
 position: relative;
 display: inline-block;
}
.main_nav-item:nth-last-child(2) {
 float: right;
 color: #363636;
 margin: 0;
 padding: 0 10px 13px 0 !important;
 position: relative;
 display: inline-block;
}
.main_nav-item:last-child:hover, .main_nav-item:last-child:focus {
 color: #b22222 !important;
  text-decoration: none !important;
}
.main_nav-item:nth-last-child(2):hover, .main_nav-item:nth-last-child(2):focus {
 color: #b22222 !important;
  text-decoration: none !important;
}
}
/* last nav item */ 
.main_nav-list > li:nth-child(6) {
 margin-right: 0;
 padding-right: 0;
 border: none !important;
}
.main_nav-list > li:nth-child(6):hover {
 margin-right: 0;
 padding-right: 0;
 color: #b22222 !important;
  text-decoration: none !important;
}
.main_nav-list > li:nth-child(6):after {
 display: none;
 content: none;
 border: none !important;
 color: #fff;
}
.main_nav-list > li:nth-child(5) > a:after {
 display: none;
 border: none !important;
 margin-right: 0;
 padding-right: 0;
 content: none;
 color: #fff;
}
.main_nav-list > li:nth-child(6) > a:after {
 display: none;
 border: none !important;
 margin-right: 0;
 padding-right: 0;
 content: none;
 color: #fff;
}

@media(min-width:926px) {
.main_nav-link, .main_nav-link-grey {
 padding-bottom: 1.1em
 }
}

@media(min-width:926px) {
.main_nav-drop_list {
 display: none;
 line-height: 1.6em;
 position: absolute;
 border: 1px solid #b22222;
 border-top-width: 3px;
 padding: 0 .59em;
 background-color: #fafafa;
 margin-top: .85em;
min-width: 15.3em;
}
.main_nav-drop_list:before {
 content: '';
 width: 0;
 height: 0;
 border-left: 7px solid transparent;
 border-right: 7px solid transparent;
 border-bottom: 7px solid #b22222;
 position: absolute;
 top: -7px;
 left: 5px
 }
}

@media(min-width:926px) {
.main_nav-drop_item {
 padding: .583em 0;
 margin-bottom: 0;
 border-bottom: 1px solid #ccc;
 line-height: 1.6em;
 }
}
.main_nav-drop_link, .main_nav-deep_link {
 font-family: 'Source Sans Pro', Source Sans Pro, Source Sans, 'Open Sans', Open Sans, Arial, sans-serif;
 text-decoration: none;
 color: #363636;
 line-height: 1.6em;
}
.main_nav-deep_list {
 display: table;
 padding: 0 0 0 .833em;
 line-height: 1.6em;
}
.main_nav-deep_item {
 margin-bottom: 0
}
.main_nav-deep_link {
 font-size: 1em;
 line-height: 1.6em;
}
.main_nav-mobile_only {
 display: none
}
.main_nav-back, .main_nav-deep_back {
 color: #363636;
 text-align: left
}
.main_nav-back:active, .main_nav-deep_back:active {
 opacity: .4;
 -webkit-opacity: .4;
 -moz-opacity: .4;
 filter: alpha(opacity=40);
 -ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=40)'
}
.main_nav-drop_button, .main_nav-deep_button {
 display: none;
 margin-right: .8335em;
 line-height: 1.6em;
}
.main_nav-drop_button svg, .main_nav-deep_button svg {
 height: 18px;
 width: 18px;
 fill: #fff;
}
.main_nav-drop_button:active, .main_nav-deep_button:active {
 opacity: .4;
 -webkit-opacity: .4;
 -moz-opacity: .4;
 filter: alpha(opacity=40);
 -ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=40)';
}
.main_nav-item .active, .main_nav-item:active, .main_nav-item:active {
	color: #b22222 !important;
  }
@media(max-width:1220px) {
.main_nav-list {
 font-size: 1.1em;
}
}
@media(max-width:1160px) {
.main_nav-list {
 font-size: 1em !important;
}
}
@media(max-width:1100px) {
.main_nav-list {
 font-size: .9em !important;
}
}
@media(max-width:1025px) {
.main_nav-list {
 display: none !important;
}
}
@media(min-width:1026px) {
.main_nav-item:hover .main_nav-drop_list {
 display: block;
}
.main_nav-deep_link:hover, .main_nav-drop_link:hover, .main_nav-deep_link:hover, .main_nav-link:hover, .main_nav-link-grey:hover {
 color: #b22222;
  text-decoration: underline;
}
}
@media(max-width:1025px) {
  .main_nav-mobile_only {
    display: none;
  }
}
@media(max-width:1025px) {
  .main_nav-list {
    display: none;
  }
.main_nav-list:not(.hide_items) {
 display: none;
}
.main_nav-list.hide_items .main_nav-item:not(.active) {
 display: none;
}
.main_nav-item {
 display: none;
}
.main_nav-item:not(.has-children) .main_nav-drop_button, .main_nav-item:not(.has-children) .main_nav-deep_button {
 display: none !important;
}
.main_nav-item.active:not(.deep-active) > .main_nav-drop_button.forward, .main_nav-item.active:not(.deep-active) > .forward.main_nav-deep_button {
 display: none;
}
.main_nav-item.deep-active > .main_nav-drop_button, .main_nav-item.deep-active > .main_nav-deep_button, .main_nav-item.deep-active > .main_nav-link {
 display: none;
 }
}
@media(max-width:1025px) {
.main_nav-drop_link, .main_nav-deep_link {
 display: none;
}
.main_nav-drop_item {
 display: none;
 }
.main_nav-deep_item {
 display: none;
}
.main_nav-deep_list {
 display: none;
}
.main_nav-mobile_only {
 display: none; /* added 9-3 */
}
}
.quick_nav, .quick_nav-link, .quick_nav-link svg, .quick_nav-list, .quick_nav-item, .quick_nav-item:last-child, .quick_nav-item-desktop, .quick_nav-item-timer, .quick_nav-item-cart-mobile, .quick_nav-item-cart-desktop, .no-touch .quick_nav-link:hover {
 display: none !important;
}
#countDownTimer {
 display: none;
}
.mobile_header-calendar, .mobile_header-menu, .mobile_header-logo {
  display: none; 
}
.mobile_header-calendar svg, .mobile_header-menu svg, .mobile_header-logo svg {
  display: none; 
}
/* added some help to display mobile menu svg */
#mobile_header-menu > span.mobile_header-menu-open > svg {
   display: none; 
}
.mobile_header-calendar span:not(.mobile_header-menu-open):not(.mobile_header-menu-close), .mobile_header-menu span:not(.mobile_header-menu-open):not(.mobile_header-menu-close), .mobile_header-logo span:not(.mobile_header-menu-open):not(.mobile_header-menu-close) {
   display: none; 
}
.mobile_header-menu-close {
  display: none;
}
.mobile_header-logo {
  display: none;
}
.no-touch .mobile_header-calendar:hover, .no-touch .mobile_header-menu:hover, .no-touch .mobile_header-logo:hover {
  display: none;
}
.menu-opened .mobile_header-menu-open {
  display: none;
}
.menu-opened .mobile_header-menu-close {
  display: none;
}
@media(max-width:925px) {
  .mobile_menu {
     display: none;
  }
  .mobile_menu.opened {
    display: none;
  }
  .mobile_menu-inner {
    display: none;
  }
}

.mobile_cal {
  display: none !important;
}
.touch a:hover {
  -webkit-transition: none;
  -o-transition: none;
     transition: none;
}
label {
 color: #363636;
}
input[type='checkbox'] + label {
 cursor: pointer;
}
input[type='submit'] {
 /* REMOVED vertical-align: middle;   - was text-bottom */ 
 cursor: pointer;
}
.form-block {
 display: block;
 margin: 15px 0;
}
.form-inline {
 display: inline;
 padding: 5px 5px 5px 0;
}
select {
 max-width: 100%;
 width: 100%;
}
.xform label {
 display: block;
 font-weight: 600;
}
.xform input[type='text'], .xform textarea, input.text_field {
 -webkit-box-shadow: 3px 3px 5px 1px rgba(0, 0, 0, .09) inset;
         box-shadow: 3px 3px 5px 1px rgba(0, 0, 0, .09) inset;
 border: 1px solid #999;
 width: 100%;  /* CHANGED - had been min width 200px */
 padding: .5em;
 min-height: 30px; 
}
.xform textarea {
 width: 100%;
}
.xform div {
 width: 40%;
 padding: .8em .4em;
 display: inline-block;
 vertical-align: top;
}
.xform div > * {
 margin-left: .66em;
}
.xform .row {
 display: block;
 width: 100%;
}
.xform .highlight {
 background: #fafafa;
}
.media-container {
 position: relative;
 padding-bottom: 1em;
 padding-top: 15px;
 height: 0;
 overflow: hidden;
}
.media-container iframe, .media-container object, .media-container embed {
 position: absolute;
 top: 0;
 left: 0;
 width: 100%;
 height: auto;
}
.no-list, .wysiwyg ul.no-list, .wysiwyg-two_column ul.no-list {
 list-style-type: none;
 padding: 0;
}
.no-list > *, .wysiwyg ul.no-list > *, .wysiwyg-two_column ul.no-list > * {
 margin: 0;
}
.left-txt {
 text-align: left;
}
.right-txt {
 text-align: right;
}
.nav-icon_list {
 background: url('/assets/images/icons/nav-icon--list.jpg') no-repeat;
}
.nav-icon_single {
 background: url('/assets/images/icons/nav-icon--single.jpg') no-repeat;
}
.nav-icon_grid {
 background: url('/assets/images/icons/nav-icon--grid.jpg') no-repeat;
}
.nav-icon_list, .nav-icon_single, .nav-icon_grid {
 display: block;
 width: 13px;
 height: 15px;
 text-decoration: none;
}
.nav-icon_list:hover, .nav-icon_single:hover, .nav-icon_grid:hover {
 opacity: .5;
}
.home-sidebar_item li {
 margin-bottom: 0;
}
.home-callout-container > div {
 margin: 2em 0;
}
.home-callout-container > div:first-child {
 margin: 0
}
.home-callout-container > div:last-child {
 border: none
}
.home-callout-container > div p:last-child {
 margin-bottom: 0
}
.home-callout-container > div .media-container + p:last-child {
 padding-bottom: 1em;
}

.landing-archive {
 flex-wrap: wrap;
 -webkit-flex-wrap: wrap;
 -ms-flex-wrap: wrap;
 -ms-flex-pack: justify;
 -webkit-box-pack: justify;
         justify-content: space-between;
 width: 100%;
}
.landing-archive_article {
 flex-basis: 47%;
 -ms-flex-preferred-size: 47%;
 width: 47%;
 margin-bottom: 2.083em
}
.landing-archive_figure {
 margin-bottom: .833em
}
.landing-archive_img {
 width: 100%;
 height: auto
}
.landing-archive_header {
 font-family:  'Helvetica Neue Light', 'Helvetica Neue', 'Helvetica Neue eText Pro', 'HelveticaNeueLTPro-Lt', 'HelveticaNeue-Light', Helvetica Neue, Helvetica, Arial, sans-serif;
 font-size: 1em;
 letter-spacing: .042em;
 margin-bottom: .417em;
 text-shadow: none;
 color: #363636
}
.landing-archive_copy {
 margin-bottom: 1.667em;
 color: #363636;
 font-size: 1em;
 line-height: 1.6em
}
.landing-archive_more {
 margin-bottom: 0;
 color: #363636;
 font-size: 1em;
 line-height: 1.6em
}
.wide .landing-archive_article {
 flex-basis: 100%;
 -ms-flex-preferred-size: 100%;
 -ms-flex-pack: justify;
 -webkit-box-pack: justify;
         justify-content: space-between
}
.wide .landing-archive_article .landing-archive_figure {
 flex-basis: 38%;
 -ms-flex-preferred-size: 38%;
 width: 38%
}
.wide .landing-archive_article .landing-archive_img {
 position: relative
}
.wide .landing-archive_article .landing-archive_content {
 flex-basis: 58%;
 -ms-flex-preferred-size: 58%;
 width: 58%
}
.page_title {
 font-weight: 600;
 color: #1b1b1b;
 font-family: 'Source Sans Pro', Source Sans Pro, Source Sans, 'Open Sans', Open Sans, Arial, sans-serif !important;
 font-size: 2.1em;
 line-height: 2.2em;
 text-transform: none !important;
 margin: 20px 0 10px 0;
 padding: 0;
}
#mainContent {
 padding-left: 0;
 padding-right: 0
}
.loadingContainer {
 display: none;
 position: fixed;
 width: 100%;
 height: auto;
 top: 0;
 left: 0;
 z-index: 1;
}
.loadingSpinner {
 position: fixed;
 top: 50%;
 left: 50%;
 margin: -5px 0 0 -68px;
 z-index: 2;
}
.loadingContainer .loadingMessage {
 min-width: 50px;
 max-width: 100px;
 text-align: center;
 font-size: 2em;
 color: #fff;
 font-weight: 500;
 position: absolute;
 top: 50%;
 left: 50%;
 margin-top: 13px;
 margin-left: -175px;
 text-shadow: none;
}
.paging-container {
 margin-bottom: 15px;
}
#MainContent_upList {
 width: 100%;
}

@media(min-width:641px) {
.event-item .reserve--button {
 max-width: 100%;
}
}
.event-content {
 margin-bottom: 10px
}
.checkList {
 padding-top: 1em;
 padding-bottom: 1em
}
.checkList input, .checkList label {
 display: inline-block
}
.new--credit--card > div {
 padding-top: .5em
}
.new--credit--card > div .row > div {
 display: inline
}
.card-line {
 margin-bottom: 10px
}
.saved-card {
 vertical-align: top
}
.remove-card {
 margin-left: 10px
}
.add-card {
 margin-top: 10px
}
.border-space {
 padding-bottom: 1em
}
.whitespace--above {
 padding-top: 2em
}
.border--whitespace--above {
 border-top: 1px solid #363636;
 margin-top: 2em;
 padding-top: 1em;
}

@media(max-width:925px) {
.mobile--border--whitespace--above {
 border-top: 1px solid #363636;
 margin-top: 2em;
 padding-top: 1em;
}
}
.rightRegister, .leftCol, .rightCol, .cert-design-images {
 display: inline-block;
 margin-right: 20px;
 margin-bottom: 20px
}
.leftCol {
 width: 30%;
 margin-right: 10px
}
.rightCol {
 width: 65%
}
.content--text {
 max-width: 980px
}
.content--text p {
 margin: 0;
}
.textbox--button {
 vertical-align: top;
}
.scroll-textbox {
 height: 200px;
}
* {
 pointer-events: fill;
}
.perf-unavailable ~ .promoMessage {
 display: none;
}
canvas {
 width: 100%;
 position: absolute;
 top: 0;
 left: 0;
 height: auto;
 -webkit-tap-highlight-color: transparent;
 cursor: move;
}
#conflictOptions {
 margin-bottom: 1.667em;
 display: -ms-flexbox;
 display: -webkit-box;
 display: flex;
 -ms-flex-direction: row;
 -webkit-box-orient: horizontal;
 -webkit-box-direction: normal;
         flex-direction: row;
 -ms-flex-pack: justify;
 -webkit-box-pack: justify;
         justify-content: space-between;
 -ms-flex-wrap: wrap;
 flex-wrap: wrap
}

@media(max-width:640px) {
#conflictOptions > div {
 margin: 5px
}
}
#mainContent > form {
 display: inline-block;
 width: 100%;
}

.visually-hidden {
 position: absolute !important;
 clip: rect(1px 1px 1px 1px);
 clip: rect(1px, 1px, 1px, 1px);
 padding: 0 !important;
 border: 0 !important;
 height: 1px !important;
 width: 1px !important;
 overflow: hidden;
}
.owl-carousel .animated {
 -webkit-animation-duration: 1000ms;
         animation-duration: 1000ms;
 -webkit-animation-fill-mode: both;
         animation-fill-mode: both
}
.owl-carousel .owl-animated-in {
 z-index: 0;
}
.owl-carousel .owl-animated-out {
 z-index: 1;
}
.owl-carousel .fadeOut {
 -webkit-animation-name: fadeOut;
         animation-name: fadeOut;
}
@-webkit-keyframes fadeOut {
0% {
opacity: 1;
}
100% {
opacity: 0;
}
}
@keyframes fadeOut {
0% {
opacity: 1;
}
100% {
opacity: 0;
}
}
.owl-height {
 -webkit-transition: height 500ms ease-in-out;
 -o-transition: height 500ms ease-in-out;
 transition: height 500ms ease-in-out;
}
.owl-carousel {
 display: none;
 width: 100%;
 -webkit-tap-highlight-color: transparent;
 position: relative;
 z-index: 1;
height: auto; /* changed from 500px */
}
.owl-carousel .owl-stage {
 position: relative;
 -ms-touch-action: pan-Y
}
.owl-carousel .owl-stage:after {
 content: '.';
 display: block;
 clear: both;
 visibility: hidden;
 line-height: 0;
 height: 0
}
.owl-carousel .owl-stage-outer {
 position: relative;
 overflow: hidden !important;
 -webkit-transform: translate3d(0, 0, 0)
}
.owl-carousel .owl-controls .owl-nav .owl-prev, .owl-carousel .owl-controls .owl-nav .owl-next, .owl-carousel .owl-controls .owl-dot {
 cursor: pointer;
 -webkit-user-select: none;
 -moz-user-select: none;
 -ms-user-select: none;
 user-select: none
}
.owl-carousel.owl-loaded {
 display: block;
}
.owl-carousel.owl-loading {
 opacity: 0;
 display: block;
}
.owl-carousel.owl-hidden {
 opacity: 0;
}
.owl-carousel .owl-refresh .owl-item {
 display: none;
}
.owl-carousel .owl-item {
 position: relative;
 min-height: 1px;
 float: left;
 -webkit-backface-visibility: hidden;
 -webkit-tap-highlight-color: transparent;
 -webkit-touch-callout: none;
 -webkit-user-select: none;
 -moz-user-select: none;
 -ms-user-select: none;
 user-select: none;
}
.owl-carousel .owl-item img {
 display: block;
 -webkit-transform-style: preserve-3d;
}
.owl-carousel.owl-text-select-on .owl-item {
 -webkit-user-select: auto;
 -moz-user-select: auto;
 -ms-user-select: auto;
 user-select: auto;
}
.owl-carousel .owl-grab {
 cursor: move;
 cursor: -o-grab;
 cursor: -ms-grab;
 cursor: -webkit-grab;
 cursor: grab;
}
.owl-carousel.owl-rtl {
 direction: rtl
}
.owl-carousel.owl-rtl .owl-item {
 float: right
}
.no-js .owl-carousel {
 display: block
}
.owl-carousel .owl-item .owl-lazy {
 opacity: 0;
 -webkit-transition: opacity 300ms ease;
 -o-transition: opacity 300ms ease;
 transition: opacity 300ms ease
}
.owl-carousel .owl-item img {
 -webkit-transform-style: preserve-3d;
         transform-style: preserve-3d
}
.owl-carousel .owl-video-wrapper {
 position: relative;
 width: 100%;
 height: auto;
 background: #363636
}
.owl-carousel .owl-video-play-icon {
 position: absolute;
 height: 80px;
 width: 80px;
 left: 50%;
 top: 50%;
 margin-left: -40px;
 margin-top: -40px;
 background: #363636;  /* removed url('owl.video.play.png') no-repeat */
 cursor: pointer;
 z-index: 1;
 -webkit-backface-visibility: hidden;
 -webkit-transition: scale 100ms ease;
 -o-transition: scale 100ms ease;
 transition: scale 100ms ease
}
.owl-carousel .owl-video-play-icon:hover {
 -webkit-transition: scale(1.3, 1.3);
 -o-transition: scale(1.3, 1.3);
 transition: scale(1.3, 1.3);
}
.owl-carousel .owl-video-playing .owl-video-tn, .owl-carousel .owl-video-playing .owl-video-play-icon {
 display: none;
}
.owl-carousel .owl-video-tn {
 opacity: 0;
 height: auto;
 background-position: center center;
 background-repeat: no-repeat;
 background-size: contain;
 -webkit-transition: opacity 300ms ease;
 -o-transition: opacity 300ms ease;
 transition: opacity 300ms ease;
}
.owl-carousel .owl-video-frame {
 position: relative;
 z-index: 1;
}
.carousel {
 position: relative;
 display: none;
}
.carousel--block .item {
 margin: 0;
}
.carousel-homepage {
 margin-bottom: 1.8em;
}
.carousel-container {
 overflow: hidden;
 position: relative;
 width: 100%;
 margin: 0;
padding: 0;
 height: auto;
}
.carousel-container:before {
 content: '';
 display: inline-block;
 padding-bottom: 0;  /* changed 10-3 - was 35.6% */
}
.carousel-container .carousel {
 display: inline-block;
 vertical-align: top;
 visibility: hidden;
 height: 0;
}
.carousel-container .carousel.owl-loaded {
 visibility: visible;
 height: auto;
}
.carousel-loading {
 position: absolute;
 top: 50%;
 left: 50%;
 -ms-transform: translateX(-50%) translateY(-50%);
     transform: translateX(-50%) translateY(-50%);
 -webkit-transform: translateX(-50%) translateY(-50%);
 -moz-transform: translateX(-50%) translateY(-50%);
}
.ie10 .carousel-container:before {
 display: none;
}

.owl-prev {
 background-position: 0 0;
 position: absolute;
 left: 12px;
}
.owl-next {
 background-position: -36px 0;
 position: absolute;
 right: 12px;
}
.owl-dots {
 display: block;
 position: absolute;
 left: 33.333%;
 right: 33.333%;
 bottom: .9em;
 z-index: 20;
 opacity: 80%;
}
.owl-dot {
 background: #ccc;
 display: inline-block;
 height: .6em;
 margin: 0 .6em;
 width: .6em;
 opacity: 80%;
}
.owl-dot:hover, owl-dot:focus {
 background: #eee;
 opacity: 80%;
}
.owl-dot.active {
 background: #fff;
 opacity: 100%;
}
.promo-item .owl-prev {
 background: url('/assets/images/icons/promo_arrow_left.png') no-repeat;
 width: 25px;
 height: 28px;
 position: absolute;
 left: 10px;
 top: 52%;
}
.promo-item .owl-next {
 background: url('/assets/images/icons/promo_arrow_right.png') no-repeat;
 width: 25px;
 height: 28px;
 position: absolute;
 right: 10px;
 top: 52%;
}
.owl-loaded img {
 display: block;
} 


/* OWL Carousel Styles */ 
@media(min-width: 926px) {
.owl-prev, .owl-next {
 background: url('/globalassets/carousel_arrows-trans.png') no-repeat;
 width: 36px;
 height: 36px;
 color: transparent;
 top: 48%;
} 
.owl-prev {
 background-position: 0 0;
 position: absolute;
 left: 12px;
}
.owl-next {
 background-position: -36px 0;
 position: absolute;
 right: 12px;
}
} 
@media(max-width: 925px) {
.owl-prev, .owl-next {
 background: url('/globalassets/carousel_arrows-trans-24.png') no-repeat;
 width: 24px;
 height: 24px;
 color: transparent;
 top: 46%;
} 
.owl-prev {
 background-position: 0 0;
 position: absolute;
 left: 10px;
}
.owl-next {
 background-position: -24px 0;
 position: absolute;
 right: 10px;
}
}


.hero-image {
 width: 100%;
max-width: 100%;
 margin: 0;
 padding: 0;
  -webkit-box-shadow: 0 0 4px #bbb;
         box-shadow: 0 0 4px #bbb;
}
.pager-item.active:after, .no-touch .pager-item:hover:after {
 position: absolute;
 bottom: 1px;
 height: 3px;
 background-color: #b22222;
 width: 100%;
 left: 0
}
.pager {
 -ms-flex-pack: center;
 -webkit-box-pack: center;
         justify-content: center;
 width: 100%;
 text-align: center;
 background-color: #363636
}
.pager-item {
 position: relative;
 padding: .6em 0;
 margin: 0
}
.pager-item.active:after {
 content: ''
}
.pager-link {
 font-size: 1em;
 padding: 0 .5em;
 /* removed uppercase transform */
 text-decoration: none;
 color: #b22222;
 font-weight: 500;
 font-family:  'Helvetica Neue Light', 'Helvetica Neue', 'Helvetica Neue eText Pro', 'HelveticaNeueLTPro-Lt', 'HelveticaNeue-Light', Helvetica Neue, Helvetica, Arial, sans-serif;
 -webkit-font-smoothing: antialiased
}
.pager-link.disabled {
 color: #ccc !important;
 cursor: default;
}
.no-touch .pager-item:hover:after {
 content: ''
}
.no-touch .pager-item.disabled:hover:after {
 display: none
}
.no-touch .pager-link:hover {
 color: #fff
}
/* Accordion styles */
.accordion {
 margin: 2em 0;
 -webkit-box-shadow: 0 0 6px rgba(150, 150, 150, .8);
         box-shadow: 0 0 6px rgba(150, 150, 150, .8)
}
.accordion--header {
 position: relative;
 padding: .33em 3em;
 margin-bottom: .1em;
 background: #fafafa;
 color: #363636;
 font-weight: 500;
 font-family: 'Source Sans Pro', Source Sans Pro, Source Sans, 'Open Sans', Open Sans, Arial, sans-serif;
 -moz-osx-font-smoothing: grayscale;
 -webkit-font-smoothing: antialiased;
 text-decoration: none;
 cursor: pointer;
}
.accordion--header:hover {
 text-decoration: underline;
}
.accordion--header:before {
 display: block;
 font-family: 'Glyphicons Halflings';
 content: '\e114';
 /* content: '\e080'; */
 position: absolute;
 top: .44em;
 left: 1.44em;
 background: transparent;
 width: 12px;
 height: 12px;
}
.accordion--content {
 padding: 1.25em;
}
.ui-state-active {
 background: #b22222;
 color: #fff;
 text-decoration: none
}
.ui-state-active:before {
 display: none
}
.simpleModal {
 border-style: solid;
 border-color: #363636;
 border-width: 1px 1px 5px;
 padding: .5em;
 background: #fff
}
.simpleModal .email-retrieve {
 margin: 10px
}
.simpleModal a {
 background: #b22222;
 color: #fff;
text-transform: none;
 text-decoration: none;
 text-shadow: none;
 padding: .5em 1em;
 outline: none !important;
 border-style: none;
 min-width: 8em;
 height: 2.5em;
 display: inline-block;
 text-align: center;
}
body {
 counter-reset: calendar-grid-count;
}
.calendar-download {
 border: 0;
 background-color: #b22222;
 text-align: left;
 padding: 2px 11px;
}
.calendar-download a {
 color: #fff;
}
.concert-type-icon {
 border-radius: 50%;
 width: 8px;
 height: 8px;
 vertical-align: middle;
 display: inline-block;
 margin-top: -3px;
 background-color: attr(data-color);
}
.concert-type-icon.performance-key {
 margin-right: 5px;
}

@media(max-width:640px) {
.home-page-calendar.mobile-calendar {
 display: none;
}
.desktop-calendar {
 display: none;
}
}

.loading {
 position: absolute;
 height: 100%;
 width: 100%;
 z-index: 10;
 background-color: #fff;
 opacity: .7;
 top: 0;
 left: 0
}
.pagination-controls {
 text-align: right
}
.pagination-switch {
 display: inline;
 margin-right: 10px
}
.pagination-switch .prev {
 margin-right: 5px
}
.pagination-switch .next {
 margin-left: 5px
}
.pagination-sort {
 display: inline;
 margin-right: 10px
}
.pagination .pages {
 display: inline
}
.pagination .per-page {
 display: inline
}
.page-selector {
 margin-right: 10px
}
.page-selector-ellipsis {
 margin-left: 5px;
 margin-right: 5px
}
.page-selector-current-page {
 margin-right: 10px;
 color: #b22222;
 text-decoration: underline
}
.pages a:last-of-type {
 margin-right: 0
}
.callout {
 margin: 2em 0;
 padding: 0;
}
.callout-title, .callout-title h2, .renewals-edit h3 {
 font-size: 1.8em;
 margin-bottom: 1.1em;
 font-family: 'Source Sans Pro', Source Sans Pro, Source Sans, 'Open Sans', Open Sans, Arial, sans-serif;
 -moz-osx-font-smoothing: grayscale;
 -webkit-font-smoothing: antialiased;
 font-weight: 600;
}
.callout-4col, .callout-2col, .callout-3col {
 width: 100%;
 margin: 1em 0 !important;
 flex-wrap: wrap;
 -webkit-flex-wrap: wrap;
 -ms-flex-wrap: wrap;
 -ms-flex-pack: justify;
 -webkit-box-pack: justify;
         justify-content: space-between
}
.callout-4col > *, .callout-2col > *, .callout-3col > * {
 padding-bottom: .85em;
 margin-bottom: 0
}
.callout-4col img, .callout-2col img, .callout-3col img {
 width: 100%;
 height: auto;
}
.callout-2col_item {
 flex-basis: 48%;
 -ms-flex-preferred-size: 48%;
 width: 48%;
}
.callout-3col_item {
 flex-basis: 33.3333%;
 -ms-flex-preferred-size: 33.3333%;
 width: 33.3333%;
}
.callout-2col_media {
 padding-bottom: 48%;
}
.callout-3col_media {
 padding-bottom: 33.333%;
}
.callout-3col_item {
 flex-basis: 33.333%;
 -ms-flex-preferred-size: 33.333%;
}
.callout-2col_text-title, .callout-3col_text-title {
 font-weight: 500;
}
.callout-4col_item {
 flex-basis: 23%;
 -ms-flex-preferred-size: 23%;
}
.callout-4col_text, .callout-3col_text {
 font-size: 1em;
 margin-top: .3em;
}
.callout-4col_text a, .callout-3col_text a {
 text-decoration: underline;
}
.wysiwyg-two_column p {
 -webkit-column-count: 2;
    -moz-column-count: 2;
         column-count: 2
}
.wysiwyg ul, .wysiwyg-two_column ul {
 padding: 0 1em 1em 2em;
 list-style: disc;
}
div.wysiwyg.block { 
max-width: 100% !important;
padding-top: 0;
margin-top: 20px; /* added 10-1 */ 
}

div.wysiwyg > p { 
padding: 1em;
}

/* 3 COLUMN GRID SYSTEM */

/* padding over first gridz title - homepage banner */
.gridz-4col-wrapper > h1:nth-child(1) {
 padding-top: 20px;
}

.gridz-3col-wrapper > * {
 -webkit-box-sizing: border-box;
         box-sizing: border-box;
}
.gridz-3col-main {
 max-width: 1198px;
 margin: 0 auto; /* changed - added auto - was 10px auto THEN just 0 */
 padding: 0;
 width: 100%;
 display: -ms-grid;
 display: grid;
 /* Define Auto Row size - height */
 grid-auto-rows: 300px;
 /*Define our columns */
 grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
 grid-gap: 20px;
}
.gridz-3col-content {
 border-radius: 0;
 margin: 0;
 padding: 0;
 text-align: left; 
}
.gridz-3col-content:nth-child(odd) {
/* in case odd boxes need to be targeted */
}
.gridz-3col-content:nth-child(even) {
/* in case even boxes need to be targeted */
}
.gridz-3col-content > p {
 padding: 10px 10px 5px 2px;
 margin: 2px;
}
/* END 3 COLUMN GRID SYSTEM */

/* 4 COLUMN GRID */
.gridz-4col-wrapper > * {
 -webkit-box-sizing: border-box;
         box-sizing: border-box;
}
.gridz-4col-main {
 max-width: 1198px;
 margin: 0 auto; /* changed - same as above */
 padding: 0;
 width: 100%;
 min-width: 100%;
 height: auto; /* IE fix? */ 
 min-height: 200px; /* IE fix? */
 display: -ms-grid;
 display: grid;
 grid-auto-rows: 360px;
 grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
 grid-gap: 14px;
}
.gridz-4col-content {
 border-radius: 0;
 padding: 2px 5px 30px 1px;
 margin: 0 auto;
 text-align: left;
 vertical-align: text-top;
  width: 100%;
  max-width: 100%;
 height: auto; /* IE fix? */ 
 min-height: 360px; /* IE fix? */
}
.gridz-4col-content:nth-child(odd) {
/* in case odd boxes need to be targeted */
}
.gridz-4col-content:nth-child(even) {
/* in case even boxes need to be targeted */
}
.gridz-4col-content > p {
 padding: 1px; 
 margin: 0 auto;
  height: auto; /* IE fix? */ 
 min-height: 80px;
  text-align: left;
    width: 100%;
  min-width: 100%;
  max-width: 300px;
}
/* END 4 COLUMN GRID */


/* START IMAGEBOX STYLES */
.image-box-container {
 -webkit-box-sizing: border-box;
 box-sizing: border-box;
 margin: 1px;
 padding: 1px;
 min-width: 100%; 
 text-align: left; 
}
.image-box {
 /* removed position: relative; */ 
 margin: 0 auto; 
 overflow: hidden;
 max-width: 100%;
 width: 400px;
 padding: 0;
 text-align: left; 
  max-height: 300px;
   -webkit-box-shadow: 0 0 4px #bbb;
           box-shadow: 0 0 4px #bbb;
}
.image-box img {
 -webkit-transition: all 0.3s;
 -o-transition: all 0.3s;
 transition: all 0.3s;
 display: inline-block;
 width: 100%;
 height: auto;
 -webkit-transform: scale(1);
     -ms-transform: scale(1);
         transform: scale(1);
 padding: 0;
 margin: 0;
 text-align: left; 
}
.image-box:hover img {
 -webkit-transform: scale(1.1);
     -ms-transform: scale(1.1);
         transform: scale(1.1);
}
.image-box-b {
 position: relative;
 margin: 0 auto; 
 padding: 0;
 display: inline-block;
 overflow: hidden;
 width: 100%;
 max-width: 570px;
 height: auto;
  max-height: 300px;
 text-align: left;
   -webkit-box-shadow: 0 0 4px #bbb;
           box-shadow: 0 0 4px #bbb;
}
.image-box-b img {
 max-width: 570px;
 -webkit-transition: all 0.3s;
 -o-transition: all 0.3s;
 transition: all 0.3s;
 display: inline-block;
 width: 100%;
 height: auto;
 margin: 0;
 padding: 0;
 -webkit-transform: scale(1);
     -ms-transform: scale(1);
         transform: scale(1);
}
.image-box-b:hover img {
 -webkit-transform: scale(1.1);
     -ms-transform: scale(1.1);
         transform: scale(1.1);
}
.image-box-c {
 position: relative;
 margin: 0 auto; 
 padding: 0;
 display: inline-block;
 overflow: hidden;
 width: 100%;
 max-width: 280px;
  max-height: 300px;
 height: auto;
 text-align: left;
   -webkit-box-shadow: 0 0 4px #bbb;
           box-shadow: 0 0 4px #bbb;
}
.image-box-c img {
 max-width: 300px;
 -webkit-transition: all 0.3s;
 -o-transition: all 0.3s;
 transition: all 0.3s;
 display: inline-block;
 width: 100%;
 height: auto;
 margin: 0;
 padding: 0;
 -webkit-transform: scale(1);
     -ms-transform: scale(1);
         transform: scale(1);
}
.image-box-c:hover img {
 -webkit-transform: scale(1.1);
     -ms-transform: scale(1.1);
         transform: scale(1.1);
}


@media(max-width: 480px) {
.image-box-c {
 max-width: 100%;
}
.image-box-c img {
 max-width: 100%;
}

}
/* END IMAGEBOX STYLES */

.main .social-block {
 max-width: 30em;
 text-align: left;
}
.social-icon {
 text-align: right;
 display: inline-block;
 background-size: 100%;
 background-repeat: no-repeat;
}
.social-icon:hover {
 color: #fff;
}
.social-fb-md {
 background-image: url('/globalassets/social/icon-facebook.png');
 width: 32px;
 height: 32px;
}
.social-fb-md:hover {
 color: #fff;
}
.social-tw-md {
 background-image: url('/globalassets/social/icon-twitter.png');
 width: 32px;
 height: 32px
}
.social-yt-md {
 background-image: url('/globalassets/social/icon-youtube.png');
 width: 32px;
 height: 32px;
}
.social-inst-md {
 background-image: url('/globalassets/social/icon-instagram.png');
 width: 32px;
 height: 32px;
}
.social-sc-md {
 background-image: url('/globalassets/social/icon-soundcloud.png');
 width: 32px;
 height: 32px;
}
.social-linkedin-md {
 background-image: url('/globalassets/social/icon-linkedin.png');
 width: 32px;
 height: 32px;
}
.social-spotify-md {
 background-image: url('/globalassets/social/icon-spotify.png');
 width: 32px;
 height: 32px;
}
.social-snap-md {
 background-image: url('/globalassets/social/icon-snapchat.png');
 width: 32px;
 height: 32px;
}
.social-rss-md {
 background-image: url('/globalassets/social/icon-rss.png');
 width: 32px;
 height: 32px;
}
.social-calendar-md {
 background-image: url('/globalassets/social/icon-calendar.png');
 width: 32px;
 height: 32px;
}
.social-share {
 position: relative;
 text-align: right;
}
.social-share ul {
 position: absolute;
 top: -40px;
 right: 4px;
 opacity: 50;
}
.social-share a {
 padding: 15px;
}
.social-share a:hover ul {
 display: block;
 opacity: 1;
}


.block {
 -webkit-box-shadow: 0 0 6px rgba(150, 150, 150, .8);
         box-shadow: 0 0 6px rgba(150, 150, 150, .8);
 padding-bottom: 1em;
 margin-bottom: 2.7em;
}
.block > * {
 padding: 0 1em;
}
.block-title, .block-title-strong {
 background: #eee !important;
 font-size: 1.5em;
 margin: 0 0 1em 0;
 padding: 1em;
 color: #363636;
  font-weight: 500;
}
.block-top--title {
 position: relative;
 display: block;
 color: #363636;
  font-size: 1.5em;
 line-height: 1em;
 width: 100%;
 background: #eee;
}
.block-top--inner {
 -webkit-box-shadow: 0 0 6px rgba(150, 150, 150, .8);
         box-shadow: 0 0 6px rgba(150, 150, 150, .8)
}
.block-event {
 margin: 1em 0;
}
.block-event--title {
 color: #363636;
 padding-bottom: .06em;
 margin-bottom: 1em;
 border-bottom: 1px solid #363636;
}
.block-main {
 margin: 1em 0;
}
.newsfeed-block--item {
 margin-bottom: .666em
}
.newsfeed-block--item > * {
 margin: 0;
 padding: 0;
}
.newsfeed-block--morelink {
 margin: 1em 0 1em 0;
 display: block;
}
.newsfeed-block--title {
 font-weight: 600;
}
.block-dark--title {
 position: relative;
 display: block;
 color: #363636;
 margin: 0;
 font-size: 1.5em;
 line-height: 1em;
 width: 100%;
 background: #eee;
 padding: .66em 1em
}
.block-dark--inner {
 padding: 1em;
 -webkit-box-shadow: 0 0 6px rgba(150, 150, 150, .8);
         box-shadow: 0 0 6px rgba(150, 150, 150, .8)
}
.ie11 .block-top--title:after, .ie10 .block-top--title:after {
 top: -4px;
 width: 70%;
}
.promo-item {
 margin-right: 1%;
 display: inline-block;
 width: 10%;
}
.promo-item .item-link {
 display: block;
 /* removed uppercase transform */
 position: absolute;
 top: 50%;
 right: 25%;
 color: #fff;
}
.promo-item:hover .item-link {
 color: #363636;
}
.promo-item img {
 width: 100%;
 height: auto;
}
.promo:last-child {
 margin-right: 0;
}
.promo-item.carousel {
 width: 32%;
}
.promo-item.owl-carousel.owl-loaded {
 display: inline-block;
}
.event-list--block {
 border: 1px solid #ccc;
 padding: 15px;
 margin: 5px 0 15px 0;
}
.event-list--block-col {
 width: 50%;
 padding-right: 1em;
}
h1.event-list--title {
font-size: 1.6em;
}

@media(max-width:640px) {
.event-list--block-col {
 padding-right: 0;
}
}
.event-list--block-col + .event-list--block-col {
 padding-left: 1.667em;
 padding-right: 0;
}

@media(max-width:640px) {
.event-list--block-col + .event-list--block-col {
 padding-left: 0;
 padding-top: 1em;
}
}
.event-list--block-col > p {
 margin: 0;
 padding: 0;
}
.event-list--title {
 font-weight: 600;
 font-family: 'Source Sans Pro', Source Sans Pro, Source Sans, 'Open Sans', Open Sans, Arial, sans-serif;
 -moz-osx-font-smoothing: grayscale;
 -webkit-font-smoothing: antialiased;
 font-size: 1.6em;
 margin: 0;
width: 100%;
}
.event-list--img-wrap {
 position: relative;
 margin-top: 1em;
}
.event-list--img-wrap img {
 width: 100%;
 height: auto;
}
.event-list--date {
 position: absolute;
 right: 0;
 bottom: -2em;
}
.event-list--details {
 padding: 1em 0;
}
.event-list--details h3 {
 margin-bottom: .444em;
 font-weight: 600;
 /* removed uppercase transform */
 font-family: 'Source Sans Pro', Source Sans Pro, Source Sans, 'Open Sans', Open Sans, Arial, sans-serif;
 -moz-osx-font-smoothing: grayscale;
 -webkit-font-smoothing: antialiased;
}
.event-list--details h4 {
 font-weight: 600;
 padding: 0;
 margin: 0;
 text-transform: none;
 font-family: 'Source Sans Pro', Source Sans Pro, Source Sans, 'Open Sans', Open Sans, Arial, sans-serif;
 -moz-osx-font-smoothing: grayscale;
 -webkit-font-smoothing: antialiased;
}
.event-list--details span {
 font-weight: normal;
}

@media(min-width:641px) {
.event-list--details-credits {
 display: -ms-flexbox;
 display: -webkit-box;
 display: flex;
 -ms-flex-pack: justify;
 -webkit-box-pack: justify;
         justify-content: space-between;
}
}

@media(min-width:641px) {
.event-list--details-credits-section {
 width: 50%;
}
}

.rich-text-two-column {
 display: -ms-flexbox;
 display: -webkit-box;
 display: flex;
 -ms-flex-direction: row;
 -webkit-box-orient: horizontal;
 -webkit-box-direction: normal;
         flex-direction: row;
}
.rich-text-two-column > div {
 -ms-flex: 1 1 auto;
 -webkit-box-flex: 1;
  flex: 1 1 auto;
}
.rich-text-two-column > div:first-child > div {
 padding-right: 15px;
}


@media(max-width:925px) {
body {
 font-size: 1em;
}
.l-left_sidebar, .l-right_sidebar {
 padding: 0;
}
.l-header:before {
 display: none !important;
}
.l-header:after {
 display: none !important;
}
.l-hero {
margin-top: 60px;
 text-decoration: none;
}
.l-hero:before {
 left: -.811em;
}
.l-main {
 width: 100%;
}
.l-main_left, .l-main_right {
 -ms-flex-order: 1;
 -webkit-box-ordinal-group: 2;
         order: 1;
 width: 100%;
}
.l-sidebar_left, .l-sidebar_right {
 padding: 0;
 -ms-flex-order: 2;
 -webkit-box-ordinal-group: 3;
         order: 2;
 width: 100%;
}
.mobile_cal {
    display: none;
  }
.mobile_header {
    display: -ms-flexbox;
    display: -webkit-box;
    display: flex;
  }
.xform > * {
 width: 100%;
 display: block;
}
.block-top {
 margin-top: 0;
}
.block-top--title:after {
 width: 40%;
}
.ie11 .block-top--title:after, .ie10 .block-top--title:after {
 display: none;
}
#mainContent {
 margin-top: 0;
}
}

@media(max-width:640px) {
.l-hero:before {
 display: none;
}
.l-hero {
margin-top: 80px;
}
.promo-item {
 width: 30%
}
.promo-item.carousel {
 width: 100%;
 margin: 1em 0
}
.callout-2col_item {
 flex-basis: 100%;
 -ms-flex-preferred-size: 100%;
 width: 100%;
 margin-top: 1em;
 padding-right: 0
}
.callout-3col_item {
 flex-basis: 33.333%;
 -ms-flex-preferred-size: 33.333%;
 width: 33.333%;
 margin-top: 1em;
 padding-right: 0
}
.callout-2col_media {
 padding-bottom: 51.5%
}
.callout-4col_item {
 flex-basis: 48%;
 -ms-flex-preferred-size: 48%;
 width: 48%
}
.landing-content {
 flex-basis: 100%;
 -ms-flex-preferred-size: 100%;
 width: 100%;
 padding: 20px 0 10px 0;
}
.block-top--title:after {
 width: 65%
}
.form-inline {
 display: block
}
.xform div {
 width: 100%;
}
.media-container--ful {
 padding-bottom: 1em;
}
.event-list--block-col {
 width: 100%;
 display: block;
 padding: 0
}
.login-panel_label {
 text-align: left;
 font-weight: 700
}
.login-panel_content {
 margin-bottom: 2em
}
.login-panel_label, .login-panel_content {
 display: block;
 width: 100%;
}
.social-share {
 text-align: left
}
.social-share a {
 padding-left: 0;
 display: block
}
.social-share ul {
 top: 5px;
 right: initial;
 left: 65px
}
}

@media(max-width:340px) {
.home-hero:before {
 border-bottom: 1em solid #fff;
 bottom: -.8em
}
}
.inline-block-style {
 display: inline-block
}
.donation-divider {
 border-top: 1px solid #363636 !important;
 height: 10px !important
}
.nav-divider-grey {
 color: #ccc;
 position: relative;
 font-size: .9em;
 margin-left: 8px;
 margin-right: -5px;
 line-height: 0px;
 font-weight: 100;
 text-decoration: none !important;
}
/* Button styles */

 .primary-submit, .xform input[type="submit"] {
background-image: linear-gradient(rgb(184, 25, 17), rgb(184, 25, 17));
min-width: 100%;
width: 100%;
height: 38px;
}
 .primary-submit:hover, .xform input[type="submit"]:hover {
background-image: none;
background-color: #1b1b1b;
}

.primary-button, input[type='submit'], .wrapping--button, .disabled-button, .btn, .btn-primary, .btn-default {
 background-color: #b22222 !important;
 color: #fff;
 font-family:  'Helvetica Neue Light', 'Helvetica Neue', 'Helvetica Neue eText Pro', 'HelveticaNeueLTPro-Lt', 'HelveticaNeue-Light', Helvetica Neue, Helvetica, Arial, sans-serif;
 -moz-osx-font-smoothing: grayscale;
 -webkit-font-smoothing: antialiased;
 text-decoration: none;
 padding: .5em 1.2em .5em 1.2em;
 outline: none !important;
 border-style: none;
 min-width: 3em;
 min-height: 1.2em;
 display: inline-block;
 text-align: center;
 opacity: 100%;
 margin: 1.5em 1.5em 1.5em 0;
}
.primary-button:hover, input[type='submit']:hover, .btn:hover, .btn-primary:hover, .btn-default:hover {
 background-color: #1b1b1b !important;
 color: #fff;
 opacity: 100%;
 text-decoration: none;
}
.primary-button:active, input[type='submit']:active, .btn:active, .btn-primary:active, .btn-default:active {
 background-color: #b22222;
 color: #fff;
 opacity: 100%;
 text-decoration: none;
}
.primary-button:visited, input[type='submit']:visited, .btn:visited, .btn-primary:visited, .btn-default:visited {
 background-color: #b22222;
 color: #fff;
 opacity: 100%;
 text-decoration: none;
}
.primary-button:current, input[type='submit']:current, .btn:current, .btn-primary:current, .btn-default:current {
background-color: #b22222;
color: #fff;
opacity: 100%;
text-decoration: none;
}
.primary-button:enabled, input[type='submit']:enabled, .btn:enabled, .btn-primary:enabled, .btn-default:enabled {
 background-color: #b22222;
 color: #fff;
 opacity: 100%;
 text-decoration: none;
}
.primary-button:mousedown, input[type='submit']:mousedown, .btn:mousedown, .btn-primary:mousedown, .btn-default:mousedown {
background-color: #1b1b1b;
color: #fff;
opacity: 100%;
text-decoration: none;
}
.primary-button:mouseup, input[type='submit']:mouseup, .btn:mouseup, .btn-primary:mouseup, .btn-default:mouseup {
background-color: #b22222;
color: #fff;
opacity: 100%;
text-decoration: none;
}
.primary-button:disabled, input.disabled[type='submit'], .btn:disabled, .btn-primary:disabled, .btn-default:disabled {
 pointer-events: none;
 color: #fff;
 background-color: #363636;
 text-decoration: none;
}
.disabled-button {
 background-color: #363636;
 color: #fff;
 pointer-events: none;
 cursor: default;
 text-decoration: none;
}
.secondary-button, .secondary-button:active, .secondary-button:visited {
 font-weight: 500;
 color: #fff;
 border-style: none;
 padding: 5px;
 margin-bottom: 0;
 font-size: 1em;
 border-radius: 0;
 cursor: pointer;
 background-color: #b22222;
 text-decoration: none;
}
.secondary-button:hover, .secondary-button:focus {
 text-decoration: none;
 color: #fff;
 background-color: #1b1b1b;
 text-decoration: none;
}
.primary-submit, .xform input[type='submit'] {
 color: #fff;
 border-style: none;
 border-radius: 0;
 cursor: pointer;
 font-size: 1em;
 font-weight: 500;
 padding: 5px;
 background-color: #b22222
}

/* expand to full width on small screens */ 
@media(max-width:640px) {
.rich-text-two-column .primary-button, .rich-text-two-column input[type='submit'], .rich-text-two-column .wrapping--button, .rich-text-two-column .event-item .reserve--button, .event-item .rich-text-two-column .reserve--button, .rich-text-two-column a, .rich-text-two-column .disabled-button {
 width: 99%
}
}
/* is this needed? */ 
.primary-button[style*='font-size'], .updateButton a, .wrapping--button, .disabled-button {
 min-height: 0;
}

/* lose underline on glyph icons for ALL STATES */
.glyphicon, .glyphicon-text-color, .glyphicon-text-color:hover, .glyphicon-text-color:active, .glyphicon-text-color:focus {
 text-decoration: none !important;
 outline: none !important;
 font-family: "Glyphicons Halflings",Glyphicons Halflings,Glyphicons;
}
/* Global red icon color */
/* TO DO - determine if more grauular control is needed */
.glyphicon {
 color: #ccc;
 background-color: transparent;
 border-style: none;
 outline: none !important;
 font-family: "Glyphicons Halflings",Glyphicons Halflings,Glyphicons;
}
/* Global red icon hover color */
/* TO DO - determine if more granular control is needed */
.glyphicon:hover, .glyphicon:focus {
 color: #363636;
 background-color: transparent;
 border-style: none;
 outline: none !important;
 font-family: "Glyphicons Halflings",Glyphicons Halflings,Glyphicons;
}
.glyphicon-zoom-in:before {
 content: '\e015';
}
.glyphicon-download:before {
 content: '\e026';
}
.glyphicon-upload:before {
 content: '\e027';
}
.glyphicon-play-circle:before {
 content: '\e029';
}
.glyphicon-check:before {
 content: '\e067';
}
.glyphicon-play:before {
 content: '\e072';
}
.glyphicon-chevron-left:before {
 content: '\e079';
}
.glyphicon-chevron-right:before {
 content: '\e080';
}
.glyphicon-arrow-left:before {
 content: '\e091';
}
.glyphicon-arrow-right:before {
 content: '\e092';
}
.glyphicon-arrow-up:before {
 content: '\e093';
}
.glyphicon-arrow-down:before {
 content: '\e094';
}
.glyphicon-exclamation-sign:before {
 content: '\e101';
}
.glyphicon-warning-sign:before {
 content: '\e107';
}
.glyphicon-calendar:before {
 content: '\e109';
}
.glyphicon-chevron-up:before {
 content: '\e113';
}
.glyphicon-chevron-down:before {
 content: '\e114';
}
.glyphicon-new-window:before {
 content: '\e164';
}
.glyphicon-open:before {
 content: '\e167';
}
.glyphicon-expand:before {
 content: '\e158';
}
.glyphicon-new-window:before {
 content: '\e164';
}
.glyphicon-prev:before {
 content: '\e004';
}
.glyphicon-next:before {
 content: '\e002';
}
.glyphicon-download:before {
 content: '\e007'
}
.glyphicon-videos:before {
 content: '\e009'
}
/* styling for zendesk chat iframe */
.meshim_widget_widgets_TitleBar {
 color: #fff;
 font-family:  'Helvetica Neue Light', 'Helvetica Neue', 'Helvetica Neue eText Pro', 'HelveticaNeueLTPro-Lt', 'HelveticaNeue-Light', Helvetica Neue, Helvetica, Arial, sans-serif;
 border-radius: 0 !important;
}
.jx_ui_Widget >*, iframe.jx_ui_Widget > * {
 font-family:  'Helvetica Neue Light', 'Helvetica Neue', 'Helvetica Neue eText Pro', 'HelveticaNeueLTPro-Lt', 'HelveticaNeue-Light', Helvetica Neue, Helvetica, Arial, sans-serif;
 border-radius: 0 !important;
}
/* help for text rollover links */ 
.text-linker, a.text-linker {
 color: #b22222;
 background: transparent;
 text-decoration: none;
 background-color: transparent;
}
.text-linker:hover, a.text-linker:hover, a.text-linker:focus, a.text-linker:active {
 cursor: pointer;
 color: #b22222;
 text-decoration: underline !important;
 background-color: #fafafa;
}
/* hr lines */
.hline-top {
 border-top: 1px solid #eee;
 margin: 1em 0 2px -2px;
 padding-bottom: 1em;
 width: 100%;
 padding-top: 1.5em;
}
/* hr line */
.hline-bottom {
 border-bottom: 1px solid #eee;
 margin: 2px 0 1.5em 0;
 padding-bottom: 1em;
 width: 100%;
 padding-top: 2px;
}
/* sponsor styles */
.sponsorbox {
 display: -ms-flexbox;
 display: -webkit-box;
 display: flex;
 font-weight: 300;
 padding: 0 2px 0 2px;
 border-style: none;
 width: 100%;
 text-align: left;
 margin: -10px 0 0 0 !important;
 flex-wrap: wrap;
 -webkit-flex-wrap: wrap;
 -ms-flex-wrap: wrap;
 -ms-flex-pack: justify;
 -webkit-box-pack: justify;
         justify-content: space-between;
 overflow: wrap;
 display: inline-block;
}
/* sponsor logo alignment */
.sponsor1 {
 padding: 0 20px 15px 0px;
 margin: 5px;
 width: 100%;
 max-width: 340px;
 height: auto;
 text-align: left;
 flex-basis: 48%;
 font-size: .82em;
 line-height: 1.5em;
 -ms-flex-preferred-size: 48%;
 display: inline-block;
 vertical-align: text-top;
}
.sponsor2 {
 padding: 0 20px 15px 0px;
 margin: 5px;
 width: 100%;
 max-width: 340px;
 height: auto;
 text-align: left;
 flex-basis: 48%;
 font-size: .82em;
 line-height: 1.5em;
 -ms-flex-preferred-size: 48%;
 display: inline-block;
 vertical-align: text-top;
}
.sponsor3 {
 padding: 0 20px 15px 0px;
 margin: 5px;
 width: 100%;
 max-width: 340px;
 height: auto;
 text-align: left;
 flex-basis: 48%;
 font-size: .82em;
 line-height: 1.5em;
 -ms-flex-preferred-size: 48%;
 display: inline-block;
 vertical-align: text-top;
}
.sponsor4 {
 padding: 0 20px 15px 0px;
 margin: 5px;
 width: 100%;
 max-width: 340px;
 height: auto;
 text-align: left;
 flex-basis: 48%;
 font-size: .82em;
 line-height: 1.5em;
 -ms-flex-preferred-size: 48%;
 display: inline-block;
 vertical-align: text-top;
}
.sponsor5 {
 padding: 0 20px 15px 0px;
 margin: 5px;
 width: 100%;
 max-width: 340px;
 height: auto;
 text-align: left;
 flex-basis: 48%;
 font-size: .82em;
 line-height: 1.5em;
 -ms-flex-preferred-size: 48%;
 display: inline-block;
 vertical-align: text-top;
}
.sponsor6 {
 padding: 0 20px 15px 0px;
 margin: 5px;
 width: 100%;
 max-width: 340px;
 height: auto;
 text-align: left;
 flex-basis: 48%;
 font-size: .82em;
 line-height: 1.5em;
 -ms-flex-preferred-size: 48%;
 display: inline-block;
 vertical-align: text-top;
}
.cal-brand-icon {
 position: absolute;
 display: inline-block;
 top: 4px;
 right: 4px;
 float: right;
 vertical-align: top;
 padding: 1px;
 margin: auto;
 opacity: 75%;
}
/* END from TNEW_style */

/* START cso custom styles */ 

#quick_nav, .quick_nav {
 display: none !important;
}
#ctl05 > div.l-wrapper.row > header > div.site_title > img {
 display: none !important;
}
#ctl05 > div.l-wrapper.row > div > aside {
 display: none !important;
}

/* main nav styling and border */
.main_nav {
 vertical-align: bottom;
 margin: 10px 0 0 0; /* this is key to header vert spacing - changed from 54px 9-8 */
 padding: 0 5px -9px 5px !important; /* this aligns the black and red bars under the nav */
 border-bottom: 3px solid #070707;
width: 100%;
max-width: 100%;
}

.main_nav-list, .main_nav-drop_list, .main_nav-drop_item, .main_nav-drop_link {
 font-size: 1em;
 vertical-align: bottom;
 font-weight: 600;
}
.main_nav-drop_link, .main_nav-deep_link {
  font-family: 'Source Sans Pro', Source Sans Pro, Source Sans, 'Open Sans', Open Sans, Arial, sans-serif;
      -moz-osx-font-smoothing: grayscale;
  font-weight: 600;
  text-decoration: none;
  color: #363636;
}

#ctl05 > div.l-wrapper.row > div {
 width: 100%;
}
/* sidebar title */
h3.block-title {
 background: #eee !important;
 font-size: 1.5em;
 margin: 0 0 1em 0;
 padding: 1em;
 color: #363636;
}
/* Sounds and Store grey links */
li.main_nav-item:nth-child(7) > a:nth-child(2), li.main_nav-item:nth-child(6) > a:nth-child(2) {
 color: #363636;
}
p > a, p > a:nth-child {
 margin: 15px 15px 15px 0;
}
a:hover, a:focus, p > a:hover, p > a:focus, p > a:nth-child:hover, p > a:nth-child:focus {
 text-decoration: underline !important;
 color: #b22222 !important;
}
/* extra padding under paragraphs and max page width */
p, div p, div > p {
 margin-bottom: 2em;
 max-width: 100%;
}

/* optional hiding class */
.hidey {
 display: none;
 max-height: 0;
}

/* search box styles */ 
@media(min-width:926px) {
.site_search {
    float: right;
    margin: .7em 0 0 2px;
    clear: both;
	width: 250px;
	font-weight: 300;
	padding: 0;
	text-align: right;
	font-family:  'Helvetica Neue Light', 'Helvetica Neue', 'Helvetica Neue eText Pro', 'HelveticaNeueLTPro-Lt', 'HelveticaNeue-Light', Helvetica Neue, Helvetica, Arial, sans-serif;
   -moz-osx-font-smoothing: grayscale;
   -webkit-font-smoothing: antialiased;
  }
.site_search-wrap {
    display: -ms-flexbox;
    display: -webkit-box;
    display: flex;
    margin: 0;
	width: 100%;
	min-width: 250px;
	padding: 0;
	text-align: right;
	vertical-align: bottom;
  }
.site_search-textbox, #txtSearch {
 width: 100% !important; 
 min-width: 200px !important; 
 height: 34px; 
 border-radius: 3px !important; 
 border: 1px solid #afaeae;
 font-family:  'Helvetica Neue Light', 'Helvetica Neue', 'Helvetica Neue eText Pro', 'HelveticaNeueLTPro-Lt', 'HelveticaNeue-Light', Helvetica Neue, Helvetica, Arial, sans-serif;
 font-size: 1em;
 -moz-osx-font-smoothing: grayscale;
 -webkit-font-smoothing: antialiased;
 padding: 2px 3px 2px 5px;
 margin: 0 5px 0 0;
 font-weight: 200 !important;
   color: #999;
   text-align: left;
 }
 .site_search-textbox:hover, .site_search-textbox:focus {
 background-color: #fafafa !important;
 color: #1b1b1b !important;
border-color: #999;
 font-family:  'Helvetica Neue Light', 'Helvetica Neue', 'Helvetica Neue eText Pro', 'HelveticaNeueLTPro-Lt', 'HelveticaNeue-Light', Helvetica Neue, Helvetica, Arial, sans-serif;
 font-size: 1em;
 -moz-osx-font-smoothing: grayscale;
 -webkit-font-smoothing: antialiased;
 }
 .site_search-label, #lbSearch {
    font-family: 'Helvetica Neue Light', 'Helvetica Neue-Light', 'Helvetica Neue', Helvetica Neue, 'Helvetica Neue eText Pro','HelveticaNeueLTPro-Lt','HelveticaNeue-Light',Helvetica, Arial, sans-serif;
    font-size: 1em;
    line-height: 2.5em;
    color: #999 !important;
	fill: #999;
	height: 34px;
	max-height: 34px;
	width: 50px;
	max-width: 50px;
	font-weight: 300;
    vertical-align: bottom;
    overflow: hidden;
	text-align: right; 
	padding: 5px 0 0 10px;
  }
.site_search-label svg, button.gsc-search-button > svg:nth-child(1), button.gsc-search-button > svg {
    fill: #999;
	color: #999;
    width: 16px;
    height: 16px;
	margin-top: 3px;
	visibility: visible;
	display: block;
	vertical-align: bottom;
	text-align: right; 
	-ms-flex-item-align: right; 
	    -ms-grid-row-align: right; 
	    align-self: right;
  }
.site_search-label svg:hover, button.gsc-search-button > svg:nth-child(1):hover, button.gsc-search-button > svg:hover { 
  color: #1b1b1b !important;
  fill: #1b1b1b !important;
}

 /* text button */ 
.site_search-label span {
  max-width: 50px;
  overflow: hidden;
  margin: 0;
  width: 50px;
  height: 34px;
  max-height: 34px;
  border: none;
  background-color: #fff;
  text-align: center;
  padding: 5px 0 5px 5px;
  color: #999 !important;
  fill: #999; 
  cursor: pointer;
  font-size: 1em;
  font-weight: 400;
  vertical-align: middle;
}
.site_search-label span:hover { 
 color: #1b1b1b !important;
 }
}

/* hide search on mobile for now */
@media(max-width:1025px) {
.site_search {
 display: none !important;
}
.site_search-wrap {
 display: none !important;
}
.site_search-textbox {
 display: none !important;
}
.site_search-label {
 display: none !important;
}
.site_search-label span {
 display: none !important;
}
.site_search-label svg {
 display: none !important;
 }
}
/* End Search Box Styles */

/* stops shift on search results rollover */
div.gsc-expansionArea, div.gsc-expansionArea, .gsc-expansionArea, .gsc-expansionArea, .gsc-webResult, .gsc-webResult, .gsc-result, .gsc-promotion, .gsc-result, .gsc-expansionArea > div, .gsc-expansionArea > div { 
border: none !important;
}
div.gsc-expansionArea:hover, div.gsc-expansionArea:focus, .gsc-expansionArea:hover, .gsc-expansionArea:focus, .gsc-webResult:hover, .gsc-webResult:focus, .gsc-promotion:hover, .gsc-promotion:focus, .gsc-result:hover, .gsc-result:focus, .gsc-expansionArea > div:hover, .gsc-expansionArea > div:focus { 
border: none !important;
}
#___gcse_0 > div > div > form { 
margin-bottom: 25px !important; 
}
div.gsc-webResult { 
margin-bottom: 15px !important;
}

/* End Search Page Styles */

/* Google styles */
.gs-title a, .gs-title a b, .gsc-result a, .gsc-result a b {
 color: #070707 !important;
  font-family:  'Helvetica Neue Light', 'Helvetica Neue', 'Helvetica Neue eText Pro', 'HelveticaNeueLTPro-Lt', 'HelveticaNeue-Light', Helvetica Neue, Helvetica, Arial, sans-serif;
 -moz-osx-font-smoothing: grayscale;
 -webkit-font-smoothing: antialiased;
  border: none;
}
.gsc-url-top > div.gs-bidi-start-align.gs-visibleUrl.gs-visibleUrl-long, .gsc-url-bottom > div.gs-bidi-start-align.gs-visibleUrl.gs-visibleUrl-long {
 color: #b22222;
 text-decoration: none;
 font-family:  'Helvetica Neue Light', 'Helvetica Neue', 'Helvetica Neue eText Pro', 'HelveticaNeueLTPro-Lt', 'HelveticaNeue-Light', Helvetica Neue, Helvetica, Arial, sans-serif;
 -moz-osx-font-smoothing: grayscale;
 -webkit-font-smoothing: antialiased;
  border: none;
}
.gsc-url-top > div.gs-bidi-start-align.gs-visibleUrl.gs-visibleUrl-long:hover, .gsc-url-bottom > div.gs-bidi-start-align.gs-visibleUrl.gs-visibleUrl-long:hover, .gsc-url-top > div.gs-bidi-start-align.gs-visibleUrl.gs-visibleUrl-long:focus, .gsc-url-bottom > div.gs-bidi-start-align.gs-visibleUrl.gs-visibleUrl-long:focus {
text-decoration: none;
 font-family:  'Helvetica Neue Light', 'Helvetica Neue', 'Helvetica Neue eText Pro', 'HelveticaNeueLTPro-Lt', 'HelveticaNeue-Light', Helvetica Neue, Helvetica, Arial, sans-serif;
 -moz-osx-font-smoothing: grayscale;
 -webkit-font-smoothing: antialiased;
  border: none;
}
/* Hide the Google branding in search results */
.gcsc-branding, .gcsc-branding-text, span.gcsc-find-more-on-google-query, .gcsc-find-more-on-google-query, .gcsc-more-maybe-branding-root, .gcsc-more-maybe-branding-root > a > div > span.gcsc-find-more-on-google-query {
 display: none !important;
 visibility: hidden;
}
/* font family for results */
.gs-title, .gs-snippet, .gsc-promotion, div.gsc-webResult, .gsc-result, .gsc-promotion {
 font-family:  'Helvetica Neue Light', 'Helvetica Neue', 'Helvetica Neue eText Pro', 'HelveticaNeueLTPro-Lt', 'HelveticaNeue-Light', Helvetica Neue, Helvetica, Arial, sans-serif;
 -moz-osx-font-smoothing: grayscale;
 -webkit-font-smoothing: antialiased;
  border: none !important;
  color: #070707;
}

/* END Google styles */


/* bump up content container on desktop - changed 8-31-19 */
.l-container {
 margin-top: -10px;
 margin-left: 0;
 margin-right: 0;
}
/* slight padding to left of paragraph globally */ 
p {
 padding-left: 2px;
}
/* bfooter styles */
.bfooter-nav > * {
 padding: 0;
 border-right: none;
 font-weight: 400;
 text-align: left;
 text-shadow: none;
}
.bfooter-bottom > * {
 width: 100%;
 margin: 0;
 -ms-flex-item-align: center;
     -ms-grid-row-align: center;
     align-self: center;
 padding: 0;
  text-shadow: none;
}
.bfooter-sub-top, .bfooter-info {
 display: table-header-group;
  text-shadow: none;
}
.bfooter-sub-top {
 white-space: nowrap;
  text-shadow: none;
}
.bfooter-sub-top > * {
 white-space: normal;
 vertical-align: top;
 display: inline-block;
  text-shadow: none;
}
.bfooter-social {
 margin: 0;
 padding: 0;
  text-shadow: none;
}
.bfooter-info {
 margin: 0;
 display: table-footer-group;
 text-align: left;
 vertical-align: text-top;
  text-shadow: none;
}
.bfooter-info > :last-child {
 border-right: none;
  text-shadow: none;
}
.bfooter-item {
 vertical-align: text-top;
 padding: 0;
  text-shadow: none;
}
.bfooter-item + .bfooter-item {
 margin: 0;
  text-shadow: none;
}
.bfooter-item, .bfooter-item p, .bfooter-item a {
 color: #eee;
  text-shadow: none;
}
.bfooter-item a {
 color: #fafafa;
  text-shadow: none;
}
.bfooter-item a:hover, .bfooter-item a:focus {
 color: #fff;
 text-decoration: underline !important;
  text-shadow: none;
}
.bfooter-nav > *, .bfooter-info > * {
 color: #eee;
  text-shadow: none;
}
.bfooter-nav > *:last-child {
 margin-right: 0;
 padding-right: 0;
 border: none;
  text-shadow: none;
}
.bfooter-item p strong, .bfooter-item strong {
 color: #eee;
  text-shadow: none;
}
.bfooter-nav a, .bfooter-item p a, .bfooter-item p a strong, .bfooter-item p strong a {
 color: #fafafa !important;
  text-shadow: none;
}
.bfooter-nav a:hover, .bfooter-item p a:hover, .bfooter-nav a:focus, .bfooter-item p a:focus {
 color: #fff;
 text-decoration: underline !important;
  text-shadow: none;
}
.bfooter-info > * {
 font-size: 1em;
  text-shadow: none;
}
.bfooter-social {
 padding: 0;
 overflow: hidden;
  text-shadow: none;
}
.bfooter-social p {
 color: #eee;
  text-shadow: none;
}
.bfooter-social a {
 color: #fafafa;
  text-shadow: none;
}
.bfooter-social > a {
 margin: 0 0 .85em .85em;
 color: #eee;
  text-shadow: none;
}
.bfooter-social > a:hover {
 margin: 0 0 .85em .85em;
 color: #fff !important;
 text-decoration: none;
  text-shadow: none;
}
.bfooter-social > a.social-fb-md {
 margin-left: 0;
  text-shadow: none;
}

@media(min-width:1126px) {
.bfooter {
 background-color: #363636 !important;
 margin: 0 !important;
 padding: 0;
 vertical-align: bottom;
 width: 100%;
max-width: 100%;
 font-size: 1em;
 color: #eee !important;
 align:center; 
 text-align:center; 
height: 245px; 
min-height: 245px; 
 text-shadow: none;
}
}
@media(max-width:1125px) {
.bfooter {
height: 340px !important; 
}
}
@media(max-width:925px) {
.bfooter {
height: 395px !important; 
}
}
@media(max-width:625px) {
.bfooter {
height: 425px !important; 
}
}
.bfooter-item {
 vertical-align: text-top;
padding: 0;
 text-shadow: none;
}
.bfooter-item + .bfooter-item {
 margin: 0;
  text-shadow: none;
}
.bfooter-item, .bfooter-item p {
 color: #eee;
 margin: 0;
  text-shadow: none;
}
.bfooter-item a {
 color: #fafafa;
  text-shadow: none;
}
.bfooter-item a:hover, .bfooter-item a:focus {
 color: #fff;
 text-decoration: underline !important;
  text-shadow: none;
}
/* end bfooter styles */
/* footer styles */
.footer-nav > * {
  display: none !important;
}
footer, .l-footer {
 display: none !important;
}
/* HIDE FOOTER PROMOS */
div.l-wrapper.row > footer > div.footer-promotions.promo {
 display: none !important;
}
.footer-promotions {
 display: none !important;
}
.footer-bottom > * {
 display: none !important;
}
.footer-sub-top {
  display: none !important;
}
.footer-sub-top > * {
  display: none !important;
}
.footer-social {
 margin: 0;
 padding: 0;
}
.footer-info {
  display: none !important;
}
.footer-info > :last-child {
  display: none !important;
}
.footer-item {
  display: none !important;
}
.footer-item + .footer-item {
  display: none !important;
}
.footer-item, .footer-item p, .footer-item a {
  display: none !important;
}
.footer-item a {
  display: none !important;
}
.footer-item a:hover, .footer-item a:focus {
  display: none !important;
}
.footer-sub-top > *, .footer-info > * {
  display: none !important;
}
.footer-nav > *, .footer-info > * {
  display: none !important;
}
.footer-nav > *:last-child {
  display: none !important;
}
.footer-item p strong, .footer-item strong {
  display: none !important;
}
.footer-nav a, .footer-item p a, .footer-item p a strong, .footer-item p strong a {
  display: none !important;
}
.footer-nav a:hover, .footer-item p a:hover, .footer-nav a:focus, .footer-item p a:focus {
  display: none !important;
}
.footer-info > * {
  display: none !important;
}
.footer-social {
  display: none !important;
}
.footer-social p {
  display: none !important;
}
.footer-social a {
  display: none !important;
}
.footer-social > a {
  display: none !important;
}
.footer-social > a:hover {
  display: none !important;
}
.footer-social > a.social-fb-md {
  display: none !important;
}
#ctl05 > div.l-wrapper.row > footer > div.footer-bottom.row > div:nth-child(1) > div:nth-child(1) {
  display: none !important;
}
/* END footer styles */

@media(min-width:800px) {
.carousel-global {
margin: 0;
padding: 0;
width: 100%;
 text-align: center;
  -webkit-box-shadow: 0 0 4px #bbb;
          box-shadow: 0 0 4px #bbb;
 }
}
@media(max-width:799px) {
.carousel-global {
 margin: 0;
padding: 0;
width: 100%;
 max-width: 100%;
  height: auto;
  min-width: 272px;
 text-align: center;
  -webkit-box-shadow: 0 0 4px #bbb;
          box-shadow: 0 0 4px #bbb;
 }
}

/* make sure content is full-width at wide desktop view */
@media(min-width:1210px) {
#mainContent {
min-width: 1190px; /* to fix */
width: 100%;
 padding-left: 0;
 padding-right: 0;
 margin: 5px 0 0 0;
}
}
@media(max-width:1209px) {
#mainContent {
max-width: 100%;
width: 100%;
 padding-left: 10px;
 padding-right: 10px;
  margin: 0;
   padding-top: 0;
}
}
@media(max-width:925px) {
#mainContent {
width: 100%;
 max-width: 100%;
 padding-left: 20px;
 padding-right: 20px;
 padding-top: 0;
 margin: 0;
}
}

/* extra header height fix */
@media(min-width: 1026px) {
.l-header {
 min-height: 168px;
 height: 168px;
visibility: visible;
 z-index: 19;
}
} 

@media(max-width: 1025px) {
.l-header {
 min-height: 90px !important;
 height: 90px !important;
  z-index: 1;
}
}

@media(min-width:1026px) {
.main_nav {
position: absolute;
left: 6px;
top: 116px; 
 margin: 0; 
 padding: 0;
 width: 100%;
 white-space: nowrap;
 max-width: 100%; /* added 8-22 */
 }
}

/* homepage banner spacing */
@media(min-width:926px) {
main.l-main.main.large-8.landing-content {
margin-top: 20px;
padding: 0;
}
}
@media(max-width:925px) {
main.l-main.main.large-8.landing-content {
margin-top: 20px;
padding: 0;
}
}



@media(min-width:1026px) { 
div.site_title {
 margin-left: 0;
 min-height: 100px; 
 margin-right: 0;
 padding: 0;
  border: none !important;
 outline: none !important;
 text-decoration: none !important;
 color: #fff;
  background-color: #fff
  z-index: 501;
}
#ctl05 > div.l-wrapper.row > header > div.site_title > a:nth-child(3) > img {
 margin-left: 0;
}
.site_title-mobile_only {
 display: none;
 margin: 0;
 padding: 0;
  border: none;
 outline: none !important;
 text-decoration: none !important;
 color: #fff;
  background-color: #fff;
}
.site_title-link, a.site_title-link {
 margin: 0;
 padding: 0;
 border: none !important;
 outline: none !important;
 text-decoration: none !important;
 color: transparent;
  background-color: transparent;
}
.site_title-img, img.site_title-img {
 margin: 0;
 padding: 0;
 text-align: left;
 border: none !important;
 outline: none !important;
 text-decoration: none !important;
 color: #fff !important;
  background-color: #fff !important;
}
/* hide dividing line in title */
.site_title-divider {
display: none !important; 
}
/* lose red underline on hover */
div.site_title:hover, div.site_title:focus, .site_title:hover, .site_title:focus, .site_title-link:hover, .site_title-link:focus, img.site_title-img:hover, img.site_title-img:focus, .site_title-img:hover, a.site_title-link:hover, a.site_title-link:focus, .site_title-img:focus, .site_title-divider:hover, .site_title-divider:focus, .site_title > *:hover, .site_title > *:focus {
 border: none !important;
 outline: none !important;
 text-decoration: none !important;
}
/* lose underline on site title hover */
.site_title, .site_title-image, .site_title-link, .site_title-mobile_only, .site_title-divider, .site_title-link:hover, .site_title:hover, .site_title-divider:hover, .site_title:focus, .site_title-divider:focus, .site_title-image:hover, .site_title-image:focus {
	text-decoration: none !important;
	 border: none;
 outline: none !important;
  }
}

@media(min-width:1026px) {
div.site_title, .site_title {
display: block; 
}
.l-hero { 
	margin-top: 10px;
	padding: 0;
}
nav.gn-menu-wrapper { 
z-index: 20;
}
}
@media(max-width:1025px) {
div.site_title, .site_title, .site_title-link {
display: none !important; 
}
.l-hero { 
	margin-top: 5px;
	padding: 0;
}
nav.gn-menu-wrapper { 
z-index: 900 !important;
}
.gn-scroller {
		position: absolute;
		overflow-y: scroll;
		width: 350px;
		top: 0;
		left: 0;
		height: 100%;
		z-index: 907 !important;
	visibility: visible;
	opacity: 1;
}
}

#mainContent > figure, figure.l-hero, .l-hero div, .l-hero div > a, .l-hero div > a > img { 
padding-top: 0 !important; 
margin-top: 0 !important; 
}

@media(max-width: 480px){
.mobile_header {
    height: 100%;
	background-color: transparent;
	pointer-events: none;
	}
.gn-menu-main {
		border-bottom: 4px solid #070707 !important;
}
}
	
.gn-icon-searchnav:before {
  content: "\e015";
      padding-left: 15px;
   padding-right: 32px;
}

.form-control {
    width: 100%;
    height: 36px;
    padding: 6px 12px;
    background-color: #fafafa;
    background-image: none;
    border: 1px solid #ccc;
    border-radius: 2px;
 outline: none !important;
}

.l-sidebar_left {
margin-top: 10px !important;
padding-left: 3px;
}

.breadcrumb-wrap {
 text-align: left;
width: 100%;
margin: 10px 0 0 0;
padding: 15px 0 5px 5px;
 background-color: #fff;
 color: #363636;
 font-weight: 600;
  font-family: 'Source Sans Pro', Source Sans Pro, Source Sans, 'Open Sans', Open Sans, Arial, sans-serif !important;
 -moz-osx-font-smoothing: grayscale;
 -webkit-font-smoothing: antialiased;
 text-transform: none;
}
ul.breadcrumb {
  padding: 2px;
  list-style: none;
  background-color: #fff;
  color: #ccc;
   font-family: 'Source Sans Pro', Source Sans Pro, Source Sans, 'Open Sans', Open Sans, Arial, sans-serif !important;
 -moz-osx-font-smoothing: grayscale;
 -webkit-font-smoothing: antialiased;
 text-transform: none;
}
ul.breadcrumb li {
  font-size: 1em;
  font-weight: 600;
   font-family: 'Source Sans Pro', Source Sans Pro, Source Sans, 'Open Sans', Open Sans, Arial, sans-serif !important;
 -moz-osx-font-smoothing: grayscale;
 -webkit-font-smoothing: antialiased;
 text-transform: none;
}
ul.breadcrumb li+li:before {
  padding: 2px;
  color: #ccc;
   font-family: "Glyphicons Halflings",Glyphicons Halflings,Glyphicons;
  content: '\e080';
   font-weight: 200;
   font-size: .7em;
}
ul.breadcrumb li a {
  color: #b22222;
  text-decoration: none;
  padding: 2px;
   font-size: 1em;
  font-weight: 600;
   font-family: 'Source Sans Pro', Source Sans Pro, Source Sans, 'Open Sans', Open Sans, Arial, sans-serif !important;

 -moz-osx-font-smoothing: grayscale;
 -webkit-font-smoothing: antialiased;
 text-transform: none;
}
ul.breadcrumb li a:hover {
  color: #b22222;
  text-decoration: underline;
   padding: 2px;
    font-size: 1em;
  font-weight: 600;
   font-family: 'Source Sans Pro', Source Sans Pro, Source Sans, 'Open Sans', Open Sans, Arial, sans-serif !important;
 -moz-osx-font-smoothing: grayscale;
 -webkit-font-smoothing: antialiased;
 text-transform: none;
}

/* SUBNAV styles */
.subnav a.active:after, .no-touch .subnav-primary_link:hover:after, 
.no-touch .subnav-secondary_link:hover:after {
  content: '';
  position: absolute;
  bottom: 1px;
  left: 0;
  width: 100%;
  right: 0;
  height: .25em;
  background-color: #fff !important;
}
.subnav a {
  font-family: 'Source Sans Pro', Source Sans Pro, Source Sans, 'Open Sans', Open Sans, Arial, sans-serif !important;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  text-transform: none !important;
  padding: 1.083em .833em .917em;
  text-decoration: none;
  display: inline-block;
  position: relative;
 color: #b22222 !important;
 font-weight: 500;
}
.subnav a.active {
  color: #b22222 !important;
	background-color: #fff !important;
	font-weight: 600 !important;
}
.subnav-primary {
    color: #b22222 !important;
	background-color: #fff !important;
	 font-weight: 500;
}
.subnav-primary_link {
  font-size: .9em;
  line-height: .9em;
  color: #b22222 !important;
   font-weight: 500;
}
.subnav-filter-mobile {
  display: none;
}
.subnav-filter-mobile-button {
  display: none;
}
.subnav-filter-status {
  display: none;
}
.subnav-filter-status-icon {
display: none !important;
}
.subnav-secondary {
  display: none !important;
}
.subnav-secondary_link {
  display: none;
}
.subnav-secondary_link.active:after {
  display: none;
}
.subnav .subnav-primary, .subnav {
  display: block;
  max-height: 15px; 
}
.subnav li {
  margin: 0;
  display: inline-block;
	background-color: #fff !important;
}
.subnav-row {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-pack: justify;
  justify-content: space-between;
  width: 100%;
}
.no-touch .subnav-primary_link:hover {
  transition: color 0s;
  color: #b22222;
	 background-color: #fff;
	text-decoration: underline !important;
}
.firefox .subnav a.active:after, .firefox .subnav a:hover:after {
  bottom: 0;
	 background-color: #fff;
	color: #b22222;
}
.subnav-primary {
  width: auto;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-pack: end;
  justify-content: flex-end;
  text-align: left;
}
@media(min-width:926px) {
nav.subnav {
position: absolute !important;
left: 0;
top: 158px; 
 margin: 0; 
 padding: 0;
 overflow-x: wrap;
 overflow: wrap;
 width: 100%;
 white-space: wrap;
 max-width: 100%;
	font-size: .9em;
 }
.subnav  {
  width: 100%;
  clear: both;
	background-color: transparent !important;
	color: #b22222 !important;
	font-family: 'Source Sans Pro', Source Sans Pro, Source Sans, 'Open Sans', Open Sans, Arial, sans-serif !important;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  text-transform: none !important;
  text-decoration: none;
   max-height: 15px; 
}
}
/* subnav on mobile */ 
@media(max-width:925px) {
nav.subnav {
position: absolute !important;
left: 0;
top: 135px; 
 margin: 0; 
 padding: 0;
 overflow-x: wrap;
 overflow: wrap;
 width: 95%;
 white-space: wrap;
 max-width: 95%;
	font-size: .9em;
 }
.subnav  {
  clear: both;
	background-color: transparent !important;
	color: #b22222 !important;
	font-family: 'Source Sans Pro', Source Sans Pro, Source Sans, 'Open Sans', Open Sans, Arial, sans-serif !important;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  text-transform: none !important;
  text-decoration: none;
   max-height: 15px; 
}
}
/* END SUBNAV styles */


/* utility nav container */
@media(min-width: 926px) { 
.tn-subnav-component { 
	width: 140px;
   text-align: right;
   position:absolute; 
    top:82px; 
	right: 14px;
	display: block;
	background: transparent;
	font-size: .9em;
	padding: 1px;
	height: 26px;
	z-index: 192;
	margin: 0;
}
}
@media(max-width: 925px) { 
.tn-subnav-component, div.tn-subnav-component, .tn-subnav-component > * { 
	display: none !important; 
}
}
/* bump login link closer to cart and cart further from promo */
.tn-login-link { 
font-size: .9em !important;
margin: 0;
padding: 3px 10px 3px 0;
float: right; 
z-index: 301;
}
.tn-cart-link { 
font-size: .9em !important;
margin: 0;
padding: 3px 0 3px 10px;
float: right; 
z-index: 301;
}
/* Add an underline hover style for second group of utility links */
a.tn-link:hover, a.tn-link:focus, .tn-link:hover, .tn-link:focus {
text-decoration: underline !important;
color: #b22222 !important;
background-color: #fff;
}
/* lose underline on utility nav icons */
.tn-icon:hover, .tn-icon:focus { 
text-decoration: none !important;
background-color: #fff;
}
a.tn-icon:hover, a.tn-icon:focus { 
text-decoration: none !important;
background-color: #fff;
}
.tn-icon, a.tn-icon { 
text-decoration: none !important;
background-color: #fff;
color: #b222222; 
fill: #b222222; 
}
.tn-login-link:before {
font-family: FontAwesome;
content: "\F007";
color: #b22222;
text-decoration: none !important;
}
.tn-cart-link:before {
font-family: FontAwesome;
content: "\F07A";
color: #b22222;
text-decoration: none !important;
}
#mainContent > figure { 
margin: 0; 
}

.xyz-form-input-box-fw { 
  border: 1px solid #afaeae;
  height: 40px;
  border-radius: 2px;
  color: #999;
  margin: 0;
  width: 100%;
  max-width: 100%;
  text-align: left;
 background: transparent;
font-weight: 400;
  font-family: 'Helvetica Neue eText Pro', 'HelveticaNeueLTPro-Lt', 'HelveticaNeue-Light', 'Helvetica Neue Light', 'Helvetica Neue-Light', 'Helvetica Neue', 'Helvetica-Neue', 'Neue Plak', Helvetica, Arial, sans-serif;
  font-size: 1.2em;
  line-height: 1.2em;
  text-transform: none;
  margin: 5px 10px 5px 10px;
  padding: 5px;
  box-shadow: none; 
}
.xyz-form-input-box-fw:focus, .xyz-form-input-box-fw:hover { 
color: #1b1b1b !important;
background-color: #fafafa !important;
 border-color: #999;
   box-shadow: none; 
}

.syos-buy-button { 
font-family: 'Source Sans Pro', Source Sans Pro, Source Sans, 'Open Sans', Open Sans, Arial, sans-serif;
    -moz-osx-font-smoothing: grayscale;
	-webkit-font-smoothing: antialiased;
font-weight: 600; 
margin: 0; 
padding: 0;
width: 100%;
font-size: 1.3em; 
min-width: 100%;
max-width: 100%;
text-align: center;
white-space: nowrap;
}

.syos-buy-button a {
font-size: 1.3em; 
line-height: 1em; 
padding: .7em 2em .7em 2em;
border-style: none;
border-radius: 0;
background-color: #b22222;
color: #fff;
position: relative;
display: block; 
 font-family: 'Source Sans Pro', Source Sans Pro, Source Sans, 'Open Sans', Open Sans, Arial, sans-serif;
    -moz-osx-font-smoothing: grayscale;
	-webkit-font-smoothing: antialiased;
	font-weight: 600; 
text-decoration: none;
text-align: center;
opacity: 100%;
width: 100%;
max-width: 100%;
white-space: nowrap;
margin: 0;
}
.syos-buy-button a:hover, .syos-buy-button a:focus { 
background-color: #1b1b1b !important;
color: #eee;
opacity: 100%;
text-decoration: none;
}

@media(min-width: 1026px) {
h1.page_title {
 margin-top: 40px !important;
}
}

/* END cso custom styles */
</style>
	
<!-- Start GN Nav  -->

<!-- styles and scripts for gn mobile nav -->
	<link rel="stylesheet" type="text/css" href="https://cso.org/contentassets/5f0004d58fe3426b9363daf0242be3fd/gn-nav/demo.css" />
		<link rel="stylesheet" type="text/css" href="https://cso.org/contentassets/5f0004d58fe3426b9363daf0242be3fd/gn-nav/component.css" />
<!-- GN Mobile Nav Header -->
<nav class="mobile_header" role="navigation" style="max-width: 100%; overflow: hidden;">
  <div class="gn-container">  
 <!-- gn-menu-main -->
 <ul id="gn-menu" class="gn-menu-main" style="cursor: pointer;">
   <!-- gn-trigger column 1 -->
   <li class="gn-trigger" style="cursor: pointer;"><a class="gn-icon gn-icon-menu" style="cursor: pointer;" href="javascript:onClick=&#39;&#39;;"><span>Menu</span></a> <!-- MENU ICON -->
<nav class="gn-menu-wrapper" style="cursor: pointer;"> <!-- gn-menu-wrapper NAV -->
<div class="gn-scroller">
<ul class="gn-menu" style="cursor: pointer;">
 <li><a style="cursor: pointer;" href="https://order.cso.org/events" title="Tickets and Events" class="gn-icon gn-icon-chevron-right">Tickets &amp; Events</a></li>
 <li><a style="cursor: pointer;" href="https://cso.org/plan-your-visit/" title="Plan Your Visit" class="gn-icon gn-icon-chevron-right">Plan Your Visit</a></li>
 <li><a style="cursor: pointer;" href="https://cso.org/support" title="Support" class="gn-icon gn-icon-chevron-right">Support</a></li>
 <li><a href="https://cso.org/institute" title="Negaunee Music Institute" class="gn-icon gn-icon-chevron-right">Negaunee Music Institute</a></li>
 <li><a style="cursor: pointer;" href="https://cso.org/about" title="About the CSO" class="gn-icon gn-icon-chevron-right">About</a></li>

  <li><a style="cursor: pointer;" href="https://cso.org/search" title="Search" class="gn-icon gn-icon-chevron-right">Search</a></li>
 <li><a style="cursor: pointer;" href="https://order.cso.org/cart/details" title="My Cart" class="gn-icon gn-icon-shopping-cart">My Cart</a></li>
 <li><a style="cursor: pointer;" href="https://order.cso.org/account/login" title="My Account" class="gn-icon gn-icon-user">My Account</a></li>

 <li><a style="cursor: pointer;" href="https://csosoundsandstories.org/" target="_blank" title="CSO Sounds and Stories" class="gn-icon gn-icon-new-window">Sounds &amp; Stories</a></li>
 <li><a style="cursor: pointer;" href="https://www.symphonystore.com/" target="_blank" title="Symphony Store" class="gn-icon gn-icon-new-window">Symphony Store</a></li>				
</ul>
</div><!-- /gn-scroller -->
</nav>
   </li>
   <!-- /gn-trigger column 1 --> 
   <li style="background-color: #fff; display: inline-block; border-color: transparent; padding: 0px 5px 0px 5px;"> &nbsp; </li>
   <li style="background-color: #fff; display: inline-block; border-color: transparent; padding: 0px 5px 0px 5px;"> &nbsp; </li>
   <li style="background-color: #fff; display: inline-block; border-color: #fff; width: 60px; padding: 0; margin: 0; text-align: center; vertical-align: top;"> <a href="https://cso.org/" style="background-color: #fff; text-align: center; padding: 0; vertical-align: top;"><img src="https://cso.org/contentassets/5f0004d58fe3426b9363daf0242be3fd/icons/nav-logo-60x48.png" alt="Chicago Symphony Orchestra - Home" border="0" style="text-align: center; vertical-align: top;" /></a></li>
 </ul>
  </div>
  
<!-- START Classie Helpers -->
<script type="text/javascript">
// classie nav - class helper functions from /gn-nav/classie.js 
// classie.has( elem, 'my-class' true/false 
// classie.add( elem, 'my-new-class' 
// classie.remove( elem, 'my-unwanted-class' 
// classie.toggle( elem, 'my-class' 
// jshint browser: true, strict: true, undef: true
// global define: false

( function( window ) {

'use strict';

// class helper functions

function classReg( className ) {
  return new RegExp("(^|\\s+)" + className + "(\\s+|$)");
}

// classList support for class management
var hasClass, addClass, removeClass;

if ( 'classList' in document.documentElement ) {
  hasClass = function( elem, c ) {
    return elem.classList.contains( c );
  };
  addClass = function( elem, c ) {
    elem.classList.add( c );
  };
  removeClass = function( elem, c ) {
    elem.classList.remove( c );
  };
}
else {
  hasClass = function( elem, c ) {
    return classReg( c ).test( elem.className );
  };
  addClass = function( elem, c ) {
    if ( !hasClass( elem, c ) ) {
      elem.className = elem.className + ' ' + c;
    }
  };
  removeClass = function( elem, c ) {
    elem.className = elem.className.replace( classReg( c ), ' ' );
  };
}

function toggleClass( elem, c ) {
  var fn = hasClass( elem, c ) ? removeClass : addClass;
  fn( elem, c );
}

var classie = {
  // full names
  hasClass: hasClass,
  addClass: addClass,
  removeClass: removeClass,
  toggleClass: toggleClass,
  // short names
  has: hasClass,
  add: addClass,
  remove: removeClass,
  toggle: toggleClass
};

// transport
if ( typeof define === 'function' && define.amd ) {
  // AMD
  define( classie );
} else {
  // browser global
  window.classie = classie;
}

})( window );

</script>

<!-- /END Classie Helpers -->

<!-- START GN NAV SCRIPT -->
<script type="text/javascript">
/* gnmenu.js v1.0.0  Licensed under the MIT license */
;( function( window ) {
	
	'use strict';

	// see stackoverflow.com/a/11381730/989439
	function mobilecheck() {
		var check = false;
		(function(a){if(/(android|ipad|playbook|silk|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0,4)))check = true})(navigator.userAgent||navigator.vendor||window.opera);
		return check;
	}

	function gnMenu( el, options ) {	
		this.el = el;
		this._init();
	}

	gnMenu.prototype = {
		_init : function() {
			this.trigger = this.el.querySelector( 'a.gn-icon-menu' );
			this.menu = this.el.querySelector( 'nav.gn-menu-wrapper' );
			this.isMenuOpen = false;
			this.eventtype = mobilecheck() ? 'touchstart' : 'click';
			this._initEvents();

			var self = this;
			this.bodyClickFn = function() {
				self._closeMenu();
				this.removeEventListener( self.eventtype, self.bodyClickFn );
			};
		},
		_initEvents : function() {
			var self = this;

			if( !mobilecheck() ) {
				this.trigger.addEventListener( 'mouseover', function(ev) { self._openIconMenu(); } );
				this.trigger.addEventListener( 'mouseout', function(ev) { self._closeIconMenu(); } );
			
				this.menu.addEventListener( 'mouseover', function(ev) {
					self._openMenu(); 
					document.addEventListener( self.eventtype, self.bodyClickFn ); 
				} );
			}
			this.trigger.addEventListener( this.eventtype, function( ev ) {
				ev.stopPropagation();
				ev.preventDefault();
				if( self.isMenuOpen ) {
					self._closeMenu();
					document.removeEventListener( self.eventtype, self.bodyClickFn );
				}
				else {
					self._openMenu();
					document.addEventListener( self.eventtype, self.bodyClickFn );
				}
			} );
			this.menu.addEventListener( this.eventtype, function(ev) { ev.stopPropagation(); } );
		},
		_openIconMenu : function() {
			classie.add( this.menu, 'gn-open-part' );
		},
		_closeIconMenu : function() {
			classie.remove( this.menu, 'gn-open-part' );
		},
		_openMenu : function() {
			if( this.isMenuOpen ) return;
			classie.add( this.trigger, 'gn-selected' );
			this.isMenuOpen = true;
			classie.add( this.menu, 'gn-open-all' );
			this._closeIconMenu();
		},
		_closeMenu : function() {
			if( !this.isMenuOpen ) return;
			classie.remove( this.trigger, 'gn-selected' );
			this.isMenuOpen = false;
			classie.remove( this.menu, 'gn-open-all' );
			this._closeIconMenu();
		}
	}

	// add to global namespace
	window.gnMenu = gnMenu;

} )( window );

</script>
<!-- /END GN NAV SCRIPT -->
<!-- /END GN Nav -->
  <!-- GN Nav Go Script --> 
<script>
	new gnMenu( document.getElementById( 'gn-menu' ) );
</script>
  <!-- /END GN Nav Go Script --> 
</nav>
<!-- /// End Mobile Nav Header -->


<!-- ///// logo header -->
<div class="site_title" role="banner" style="display: block !important; position: absolute !important; top: 10px; left: 0; text-align:top; background-color: #fff;">
    <a class="site_title-link" title="Chicago Symphony Orchestra Homepage" href="https://cso.org/"><img id="imgSwapper" border="0" class="site_title-img" style="padding: 0; margin: 0; display: block !important; position: absolute !important; top: 10px; left: 0; background-color: #fff;" src="https://cso.org/contentassets/5f0004d58fe3426b9363daf0242be3fd/cso-logo-animated.gif" alt="Chicago Symphony Orchestra" title="Chicago Symphony Orchestra" /></a>
	<a class="site_title-link" title="Chicago Symphony Orchestra Homepage" href="https://cso.org/"><img style="padding: 0; margin: 0;" class="site_title-img" border="0" src="https://cso.org/contentassets/5f0004d58fe3426b9363daf0242be3fd/cso-logo-text.png" alt="Chicago Symphony Orchestra" title="Chicago Symphony Orchestra" /></a>
</div>
<!-- /// end logo header -->

<!-- TN Subnav component --> 
<nav class="tn-subnav-component">
 <div class="tn-cart-link tn-active">
        <a href="https://order.cso.org/cart/details" class="tn-link">
            <span class="tn-text">Cart</span>
            <span class="tn-icon"></span>
        </a>
 </div>
  <div class="tn-login-link">
                <a href="https://order.cso.org/account/login" class="tn-link">
                    <span class="tn-icon"></span>
                    <span class="tn-text">Login</span>
                </a>
 </div>
 <div style="clear: both;"></div>
</nav>

<!-- image swap script for logo -->
<script type="text/javascript">
    $(function() {
        $("#imgSwapper").hover(
            function() {
                $(this).attr("src", "https://cso.org/contentassets/5f0004d58fe3426b9363daf0242be3fd/cso-logo-animated.gif");
            },
            function() {
                $(this).attr("src", "https://cso.org/contentassets/5f0004d58fe3426b9363daf0242be3fd/cso-logo-static.gif");
            }                         
        );                  
    });
</script>
<!-- End image swap script for logo -->

<nav class="gn-menu-wrapper" style="cursor: pointer;"> 
<div class="gn-scroller">
<ul class="gn-menu" style="cursor: pointer;">
 <li><a style="cursor: pointer;" href="https://order.cso.org/events" title="Tickets and Events" class="gn-icon gn-icon-chevron-right">Tickets &amp; Events</a></li>
 <li><a style="cursor: pointer;" href="https://cso.org/plan-your-visit/" title="Plan Your Visit" class="gn-icon gn-icon-chevron-right">Plan Your Visit</a></li>
 <li><a style="cursor: pointer;" href="https://cso.org/support" title="Support" class="gn-icon gn-icon-chevron-right">Support</a></li>
 <li><a href="https://cso.org/institute" title="Negaunee Music Institute" class="gn-icon gn-icon-chevron-right">Negaunee Music Institute</a></li>
 <li><a style="cursor: pointer;" href="https://cso.org/about" title="About the CSO" class="gn-icon gn-icon-chevron-right">About</a></li>
 <li><a href="https://cso.org/search" title="Search" class="gn-icon gn-icon-chevron-right">Search</a></li>
 <li><a style="cursor: pointer;" href="https://order.cso.org/cart/details" title="My Cart" class="gn-icon gn-icon-shopping-cart">My Cart</a></li>
 <li><a style="cursor: pointer;" href="https://order.cso.org/account/login" title="My Account" class="gn-icon gn-icon-user">My Account</a></li>
 <li><a style="cursor: pointer;" href="https://csosoundsandstories.org/" target="_blank" title="CSO Sounds and Stories" class="gn-icon gn-icon-new-window">Sounds &amp; Stories</a></li>
 <li><a style="cursor: pointer;" href="https://www.symphonystore.com/" target="_blank" title="Symphony Store" class="gn-icon gn-icon-new-window">Symphony Store</a></li>				
</ul>
</div>
</nav>

<!-- Modernizr 2.6.2 -->
<script type="text/javascript" async="async">
;window.Modernizr=function(a,b,c){function w(a){j.cssText=a}function x(a,b){return w(m.join(a+";")+(b||""))}function y(a,b){return typeof a===b}function z(a,b){return!!~(""+a).indexOf(b)}function A(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c)return d===!1?a[e]:y(f,"function")?f.bind(d||b):f}return!1}var d="2.6.2",e={},f=!0,g=b.documentElement,h="modernizr",i=b.createElement(h),j=i.style,k,l={}.toString,m=" -webkit- -moz- -o- -ms- ".split(" "),n={},o={},p={},q=[],r=q.slice,s,t=function(a,c,d,e){var f,i,j,k,l=b.createElement("div"),m=b.body,n=m||b.createElement("body");if(parseInt(d,10))while(d--)j=b.createElement("div"),j.id=e?e[d]:h+(d+1),l.appendChild(j);return f=["&#173;",'<style id="s',h,'">',a,"</style>"].join(""),l.id=h,(m?l:n).innerHTML+=f,n.appendChild(l),m||(n.style.background="",n.style.overflow="hidden",k=g.style.overflow,g.style.overflow="hidden",g.appendChild(n)),i=c(l,a),m?l.parentNode.removeChild(l):(n.parentNode.removeChild(n),g.style.overflow=k),!!i},u={}.hasOwnProperty,v;!y(u,"undefined")&&!y(u.call,"undefined")?v=function(a,b){return u.call(a,b)}:v=function(a,b){return b in a&&y(a.constructor.prototype[b],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=r.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(r.call(arguments)));return Object(g)===g?g:f}return c.apply(b,d.concat(r.call(arguments)))};return e}),n.touch=function(){var c;return"ontouchstart"in a||a.DocumentTouch&&b instanceof DocumentTouch?c=!0:t(["@media (",m.join("touch-enabled),("),h,")","{#modernizr{top:9px;position:absolute}}"].join(""),function(a){c=a.offsetTop===9}),c};for(var B in n)v(n,B)&&(s=B.toLowerCase(),e[s]=n[B](),q.push((e[s]?"":"no-")+s));return e.addTest=function(a,b){if(typeof a=="object")for(var d in a)v(a,d)&&e.addTest(d,a[d]);else{a=a.toLowerCase();if(e[a]!==c)return e;b=typeof b=="function"?b():b,typeof f!="undefined"&&f&&(g.className+=" "+(b?"":"no-")+a),e[a]=b}return e},w(""),i=k=null,function(a,b){function k(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x<style>"+b+"</style>",d.insertBefore(c.lastChild,d.firstChild)}function l(){var a=r.elements;return typeof a=="string"?a.split(" "):a}function m(a){var b=i[a[g]];return b||(b={},h++,a[g]=h,i[h]=b),b}function n(a,c,f){c||(c=b);if(j)return c.createElement(a);f||(f=m(c));var g;return f.cache[a]?g=f.cache[a].cloneNode():e.test(a)?g=(f.cache[a]=f.createElem(a)).cloneNode():g=f.createElem(a),g.canHaveChildren&&!d.test(a)?f.frag.appendChild(g):g}function o(a,c){a||(a=b);if(j)return a.createDocumentFragment();c=c||m(a);var d=c.frag.cloneNode(),e=0,f=l(),g=f.length;for(;e<g;e++)d.createElement(f[e]);return d}function p(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return r.shivMethods?n(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+l().join().replace(/\w+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(r,b.frag)}function q(a){a||(a=b);var c=m(a);return r.shivCSS&&!f&&!c.hasCSS&&(c.hasCSS=!!k(a,"article,aside,figcaption,figure,footer,header,hgroup,nav,section{display:block}mark{background:#FF0;color:#000}")),j||p(a,c),a}var c=a.html5||{},d=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,e=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,f,g="_html5shiv",h=0,i={},j;(function(){try{var a=b.createElement("a");a.innerHTML="<xyz></xyz>",f="hidden"in a,j=a.childNodes.length==1||function(){b.createElement("a");var a=b.createDocumentFragment();return typeof a.cloneNode=="undefined"||typeof a.createDocumentFragment=="undefined"||typeof a.createElement=="undefined"}()}catch(c){f=!0,j=!0}})();var r={elements:c.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",shivCSS:c.shivCSS!==!1,supportsUnknownElements:j,shivMethods:c.shivMethods!==!1,type:"default",shivDocument:q,createElement:n,createDocumentFragment:o};a.html5=r,q(b)}(this,b),e._version=d,e._prefixes=m,e.testStyles=t,g.className=g.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(f?" js "+q.join(" "):""),e}(this,this.document),function(a,b,c){function d(a){return"[object Function]"==o.call(a)}function e(a){return"string"==typeof a}function f(){}function g(a){return!a||"loaded"==a||"complete"==a||"uninitialized"==a}function h(){var a=p.shift();q=1,a?a.t?m(function(){("c"==a.t?B.injectCss:B.injectJs)(a.s,0,a.a,a.x,a.e,1)},0):(a(),h()):q=0}function i(a,c,d,e,f,i,j){function k(b){if(!o&&g(l.readyState)&&(u.r=o=1,!q&&h(),l.onload=l.onreadystatechange=null,b)){"img"!=a&&m(function(){t.removeChild(l)},50);for(var d in y[c])y[c].hasOwnProperty(d)&&y[c][d].onload()}}var j=j||B.errorTimeout,l=b.createElement(a),o=0,r=0,u={t:d,s:c,e:f,a:i,x:j};1===y[c]&&(r=1,y[c]=[]),"object"==a?l.data=c:(l.src=c,l.type=a),l.width=l.height="0",l.onerror=l.onload=l.onreadystatechange=function(){k.call(this,r)},p.splice(e,0,u),"img"!=a&&(r||2===y[c]?(t.insertBefore(l,s?null:n),m(k,j)):y[c].push(l))}function j(a,b,c,d,f){return q=0,b=b||"j",e(a)?i("c"==b?v:u,a,b,this.i++,c,d,f):(p.splice(this.i++,0,a),1==p.length&&h()),this}function k(){var a=B;return a.loader={load:j,i:0},a}var l=b.documentElement,m=a.setTimeout,n=b.getElementsByTagName("script")[0],o={}.toString,p=[],q=0,r="MozAppearance"in l.style,s=r&&!!b.createRange().compareNode,t=s?l:n.parentNode,l=a.opera&&"[object Opera]"==o.call(a.opera),l=!!b.attachEvent&&!l,u=r?"object":l?"script":"img",v=l?"script":u,w=Array.isArray||function(a){return"[object Array]"==o.call(a)},x=[],y={},z={timeout:function(a,b){return b.length&&(a.timeout=b[0]),a}},A,B;B=function(a){function b(a){var a=a.split("!"),b=x.length,c=a.pop(),d=a.length,c={url:c,origUrl:c,prefixes:a},e,f,g;for(f=0;f<d;f++)g=a[f].split("="),(e=z[g.shift()])&&(c=e(c,g));for(f=0;f<b;f++)c=x[f](c);return c}function g(a,e,f,g,h){var i=b(a),j=i.autoCallback;i.url.split(".").pop().split("?").shift(),i.bypass||(e&&(e=d(e)?e:e[a]||e[g]||e[a.split("/").pop().split("?")[0]]),i.instead?i.instead(a,e,f,g,h):(y[i.url]?i.noexec=!0:y[i.url]=1,f.load(i.url,i.forceCSS||!i.forceJS&&"css"==i.url.split(".").pop().split("?").shift()?"c":c,i.noexec,i.attrs,i.timeout),(d(e)||d(j))&&f.load(function(){k(),e&&e(i.origUrl,h,g),j&&j(i.origUrl,h,g),y[i.url]=2})))}function h(a,b){function c(a,c){if(a){if(e(a))c||(j=function(){var a=[].slice.call(arguments);k.apply(this,a),l()}),g(a,j,b,0,h);else if(Object(a)===a)for(n in m=function(){var b=0,c;for(c in a)a.hasOwnProperty(c)&&b++;return b}(),a)a.hasOwnProperty(n)&&(!c&&!--m&&(d(j)?j=function(){var a=[].slice.call(arguments);k.apply(this,a),l()}:j[n]=function(a){return function(){var b=[].slice.call(arguments);a&&a.apply(this,b),l()}}(k[n])),g(a[n],j,b,n,h))}else!c&&l()}var h=!!a.test,i=a.load||a.both,j=a.callback||f,k=j,l=a.complete||f,m,n;c(h?a.yep:a.nope,!!i),i&&c(i)}var i,j,l=this.yepnope.loader;if(e(a))g(a,0,l,0);else if(w(a))for(i=0;i<a.length;i++)j=a[i],e(j)?g(j,0,l,0):w(j)?B(j):Object(j)===j&&h(j,l);else Object(a)===a&&h(a,l)},B.addPrefix=function(a,b){z[a]=b},B.addFilter=function(a){x.push(a)},B.errorTimeout=1e4,null==b.readyState&&b.addEventListener&&(b.readyState="loading",b.addEventListener("DOMContentLoaded",A=function(){b.removeEventListener("DOMContentLoaded",A,0),b.readyState="complete"},0)),a.yepnope=k(),a.yepnope.executeStack=h,a.yepnope.injectJs=function(a,c,d,e,i,j){var k=b.createElement("script"),l,o,e=e||B.errorTimeout;k.src=a;for(o in d)k.setAttribute(o,d[o]);c=j?h:c||f,k.onreadystatechange=k.onload=function(){!l&&g(k.readyState)&&(l=1,c(),k.onload=k.onreadystatechange=null)},m(function(){l||(l=1,c(1))},e),i?k.onload():n.parentNode.insertBefore(k,n)},a.yepnope.injectCss=function(a,c,d,e,g,i){var e=b.createElement("link"),j,c=i?h:c||f;e.href=a,e.rel="stylesheet",e.type="text/css";for(j in d)e.setAttribute(j,d[j]);g||(n.parentNode.insertBefore(e,n),m(c,0))}}(this,document),Modernizr.load=function(){yepnope.apply(window,[].slice.call(arguments,0))};
</script> 

<script type="text/javascript">
function init() {
var imgDefer = document.getElementsByTagName('img');
for (var i=0; i<imgDefer.length; i++) {
if(imgDefer[i].getAttribute('data-src')) {
imgDefer[i].setAttribute('src',imgDefer[i].getAttribute('data-src'));
} } }
window.onload = init;
</script> 

<!-- favicons nn -->
<link rel="shortcut icon" href="/contentassets/5f0004d58fe3426b9363daf0242be3fd/icons/favicon.ico?v=2.1" />
<link rel="mask-icon" href="/contentassets/5f0004d58fe3426b9363daf0242be3fd/icons/safari-pinned-tab.svg?v=2.1" color="#000000" />
<link rel="apple-touch-icon" sizes="57x57" href="/contentassets/5f0004d58fe3426b9363daf0242be3fd/icons/apple-touch-icon-57x57.png?v=2.1" />
<link rel="apple-touch-icon" sizes="60x60" href="/contentassets/5f0004d58fe3426b9363daf0242be3fd/icons/apple-touch-icon-60x60.png?v=2.1" />
<link rel="apple-touch-icon" sizes="72x72" href="/contentassets/5f0004d58fe3426b9363daf0242be3fd/icons/apple-touch-icon-72x72.png?v=2.1" />
<link rel="apple-touch-icon" sizes="76x76" href="/contentassets/5f0004d58fe3426b9363daf0242be3fd/icons/apple-touch-icon-76x76.png?v=2.1" />
<link rel="apple-touch-icon" sizes="114x114" href="/contentassets/5f0004d58fe3426b9363daf0242be3fd/icons/apple-touch-icon-114x114.png?v=2.1" />
<link rel="apple-touch-icon" sizes="120x120" href="/contentassets/5f0004d58fe3426b9363daf0242be3fd/icons/apple-touch-icon-120x120.png?v=2.1" />
<link rel="apple-touch-icon" sizes="144x144" href="/contentassets/5f0004d58fe3426b9363daf0242be3fd/icons/apple-touch-icon-144x144.png?v=2.1" />
<link rel="apple-touch-icon" sizes="152x152" href="/contentassets/5f0004d58fe3426b9363daf0242be3fd/icons/apple-touch-icon-152x152.png?v=2.1" />
<link rel="apple-touch-icon" sizes="180x180" href="/contentassets/5f0004d58fe3426b9363daf0242be3fd/icons/apple-touch-icon-180x180.png?v=2.1" />
<link rel="icon" type="image/png" sizes="32x32" href="/contentassets/5f0004d58fe3426b9363daf0242be3fd/icons/favicon-32x32.png?v=2.1" />
<link rel="icon" type="image/png" sizes="194x194" href="/contentassets/5f0004d58fe3426b9363daf0242be3fd/icons/favicon-194x194.png?v=2.1" />
<link rel="icon" type="image/png" sizes="192x192" href="/contentassets/5f0004d58fe3426b9363daf0242be3fd/icons/android-chrome-192x192.png?v=2.1" />
<link rel="icon" type="image/png" sizes="16x16" href="/contentassets/5f0004d58fe3426b9363daf0242be3fd/icons/favicon-16x16.png?v=2.1" />
<meta name="msapplication-TileColor" content="#000000" />
<meta name="msapplication-TileImage" content="/contentassets/5f0004d58fe3426b9363daf0242be3fd/icons/mstile-144x144.png?v=2.1" />
<meta name="theme-color" content="#ffffff" />

<!-- start chat -->
<script type="text/javascript" async="async">
window.$zopim||(function(d,s){var z=$zopim=function(c){z._.push(c)},$=z.s=
d.createElement(s),e=d.getElementsByTagName(s)[0];z.set=function(o){z.set.
_.push(o)};z._=[];z.set._=[];$.async=!0;$.setAttribute("charset","utf-8");
$.src="//v2.zopim.com/?4UUFlrHZRga9BGaYJqzKn4vlWrimPswU";z.t=+new Date;$.
type="text/javascript";e.parentNode.insertBefore($,e)})(document,"script");
</script>
<!-- end chat --> 
 
<!-- start footer push script --> 
<script type="text/javascript">
node = document.getElementById('ctl05');
node.insertAdjacentHTML('afterend', '<div class="bfooter" style="background-color: #363636;padding:0;width:100%;color:#eee;margin:0;max-width: 100%;text-align:center;min-height:245px;"><iframe src="https://cso.org/contentassets/5f0004d58fe3426b9363daf0242be3fd/footer-only.html" width="100%" height="100%" style="overflow:hidden;max-width:100%;margin:0;padding: 0; height:100%;min-height:250px;background-color:#363636;" scrolling="no"></iframe></div>');
</script> 
<!-- end footer push script -->



</div><div>
	
<h3 class="callout-title">
    
</h3>
<style type="text/css">
/* hide callout tile */
h3.callout-title { 
display: none;
max-height: 0;
}
/* hide banner container */
figure.l-hero { 
display: none; 
visibility: hidden;
max-height: 0;
}
</style>


</div></div>
    </main>
    <aside class="l-sidebar_left large-4 landing-sidebar" role="complementary">
        <div><div>
	
    <div class="wysiwyg block">

<h3 class="block-title">More info</h3>
<div class="clearfix"><p><a href="/calendar/">Calendar</a><br /><a href="https://order.cso.org/events?view=list">Browse Performances</a><br /><a href="/ticketsandevents/seating-charts/">Seating Charts</a><br /><a href="https://csosoundsandstories.org/category/program-books/" target="_blank">Program Notes</a><br /><a href="https://csosoundsandstories.org" target="_blank">CSO Sounds &amp; Stories</a><br /><a href="https://www.symphonystore.com/" target="_blank">Symphony Store</a><br /><a href="/contact/">Contact Us</a></p></div>

    </div>



</div></div>
    </aside>

        </div>
    </div>


            </div>
            

<footer class="l-footer">
    <div class="footer-promotions promo">
        <div class="promo-item carousel carousel-promo">
            
        </div>
        <div class="promo-item carousel carousel-promo">
            
        </div>
        
    </div>
    <div class="footer-bottom row">
        <div class="large-4 medium-4 small-12 column">
            <div class="footer-item">
                <p>
                    ©2019 Chicago Symphony Orchestra Association
                </p>
            </div>            
            
        </div>
        <div class="large-4 medium-4 small-12 column">
            
        </div>
        <div class="large-4 medium-4 small-12 column">
            
            <div class="social-block footer-social footer-item">
                
                
                
                
                
                
            </div>
        </div>
    </div>
</footer>

        </div>
    </form>

    </body><link rel="icon" href="/favicon.ico" />   
	
    <!--- Stylesheets -->
	

    <!-- Scripts -->
	<script type="text/javascript" src="https://ws.sharethis.com/button/buttons.js"></script>
	<script type="text/javascript" async="">var switchTo5x = true;</script>    
    <script type="text/javascript" async="">stLight.options({ publisher: "e09ee446-4b00-49a2-a26f-226752d721b4", doNotHash: false, doNotCopy: false, hashAddressBar: false });</script>
    
	<script type="text/javascript" async="" id="facebook-jssdk" src="//connect.facebook.net/en_US/sdk.js"></script>
    
    <script type="text/javascript" src="/amd/lib/require.js" data-main="/amd/main.js"></script>
	
	
    
    
    


</html>
