*{margin:0;padding:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}html{line-height:1.15;-webkit-text-size-adjust:100%}body{width:100%}a,background-color: transparent{display:inline-block}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bold}code,kbd,samp{font-family:monospace,monospace;font-size:1em}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input{overflow:visible;font:inherit}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{color:inherit;display:table;max-width:100%;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{padding:0}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px}[type="search"]::-webkit-search-decoration,-webkit-appearance: none,::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}ul{all:unset;display:block}li{list-style-type:none}:root{--main_prim:#d4af37;--main_hex_prim:212, 175, 55;--main_second:#fff;--main_hex_second:255, 255, 255;--main_second_2:#e0e0e0;--main_hex_second_2:224, 224, 224;--main_second_3:#f4e8c1;--main_hex_second_3:244, 232, 193;--main_dark_yel:#ff9600;--main_hex_dark_yel:255, 150, 0;--main_yel3:#ffe699;--main_hex_yel3:255, 230, 153;--main_blck:#0c0b0b;--main_hex_blck:12, 11, 11;--main_blck_2:#1a1a1a;--main_hex_blck_2:26, 26, 26;--main_blck_3:#252525;--main_hex_blck_3:37, 37, 37;--main_whatsapp:#25d366;--main_hex_whatsapp:37, 211, 102;--main_telegram:#229ed9;--main_hex_telegram:34, 158, 217;--main_phone:#25d266;--main_hex_phone:37, 210, 102;--font_header:'Oswald';--font_prim:'Montserrat' sans-serif;--font_icon:"fontello" sans-serif;--speed:5s;--degree_sec:135deg}h1,h2,h3,h4{font-family:var(--font_header);font-weight:500;text-transform:uppercase;letter-spacing:1px}h1{font-size:2.5em;background:linear-gradient(45deg, var(--main_prim), var(--main_second_3));-webkit-background-clip:text;-webkit-text-fill-color:transparent}h2{font-size:2.2em;margin-bottom:1em;color:var(--main_prim);line-height:1.3}h3{font-size:1.8em;color:var(--main_prim);margin-bottom:.8em}h4{font-size:1.3em;color:var(--main_second_3);margin-bottom:.5em}p{font-family:var(--font_prim);font-size:1em;text-align:left}a{font-size:1em}i h2,+below(desktop) h2{font-size:2em}i h3,+below(desktop) h3{font-size:1.5em}i p,+below(desktop) p{font-size:.9em}i a,+below(desktop) a{font-size:.9em}@media only screen and (max-width:480px){h2{font-size:1.5em}}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:'Montserrat',sans-serif;background:linear-gradient(135deg, #0a0a0a 0%, #1a1a1a 100%);color:#fff;line-height:1.6;overflow-x:hidden}.container{max-width:1200px;margin:0 auto;padding:0 20px}button{font-size:1em;font-weight:600;text-decoration:none;width:100%;align-items:center;gap:10px;padding:15px 30px;border-radius:50px;border:none;box-shadow:0 10px 20px rgba(212,175,55,0.3);transition:all 0.3s ease;cursor:pointer;position:relative;overflow:hidden}.btn{display:block}.btn::before{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent);transition:left 0.5s}.btn:hover::before{left:100%}img{object-fit:fill;max-width:100%;height:auto}.btn-primary{background:linear-gradient(45deg, #d4af37, #f4e8c1);color:#000;box-shadow:0 10px 30px rgba(212,175,55,0.3)}.btn-primary:hover{transform:translateY(-3px);box-shadow:0 15px 40px rgba(212,175,55,0.4)}.btn-secondary{background:transparent;color:#d4af37;border:2px solid #d4af37}.btn-secondary:hover{background:#d4af37;color:#000;transform:translateY(-3px)}.btn-gift{background:linear-gradient(45deg, #ff6b35, #f7931e);color:#fff;box-shadow:0 10px 30px rgba(255,107,53,0.3)}.block_padding_20{width:100%;height:20px}.block_padding_40{width:100%;height:40px}.block_padding_60{width:100%;height:60px}.block_padding_80{width:100%;height:80px}.btn-gift:hover{transform:translateY(-3px);box-shadow:0 15px 40px rgba(255,107,53,0.4)}button.testBtn{width:50px;text-align:center;background:unset;color:#fff;box-shadow:unset;text-align:center;padding:10px}section:nth-child(2n+1){background:linear-gradient(var(--degree_sec), var(--main_blck) 0%, var(--main_blck_2) 100%)}section:nth-child(2n){background:linear-gradient(var(--degree_sec), var(--main_blck_3) 0%, var(--main_blck_2) 100%)}section{padding:6em 0}.section-header{text-align:center;margin-bottom:3rem}.section-header p{text-align:center}button.btnUpper{width:50px;height:50px;position:fixed;top:84%;left:95%;transition:all 0.5s;font-size:1.8em;font-weight:900;padding:unset;background:var(--main_prim);color:var(--main_second);transform:scale(0) rotate(-660deg);z-index:100}button.hidden{transform:scale(1) rotate(0)}button#btnUpper::before{position:relative;top:25%;transform:translateY(-50%)}@media only screen and (max-width:768px){button.btnUpper{top:88%;left:92%}}@media only screen and (max-width:568px){button.btnUpper{left:86%}button.hidden{transform:scale(.86) rotate(0)}}@media only screen and (max-width:480px){button.btnUpper{left:82%}}.btn{padding:12px 20px;font-size:.9rem}.header{position:fixed;top:0;left:0;right:0;z-index:1000;background:rgba(var(--main_hex_blck), 0.95);backdrop-filter:blur(20px);border-bottom:1px solid rgba(var(--main_hex_prim), 0.2);transition:all 0.3s ease}.header-content{display:flex;align-items:center;justify-content:space-between;padding:1em 0}.logo-section{display:flex;align-items:center;gap:1em}.logo-icon{width:60px;height:60px;display:flex;align-items:center;justify-content:center;animation:float 3s ease-in-out infinite}.logo-icon i{font-size:30px;color:var(--main_blck);animation:pulse 2s infinite ease-in-out}.brand-name{font-family:var(--font_header);font-size:1.8rem;margin:0;text-align:center}.brand-slogan{font-family:var(--font_prim);font-size:.9rem;color:var(--main_prim);margin:0;opacity:.8}.nav-menu ul{display:flex;list-style:none;gap:2rem}.nav-menu a{color:var(--main_second);text-decoration:none;font-weight:500;transition:color 0.3s ease;position:relative}.nav-menu a:hover{color:var(--main_prim)}.nav-menu a::after{content:'';position:absolute;bottom:-5px;left:0;width:0;height:2px;background:var(--main_prim);transition:all 0.3s ease}.nav-menu a:hover::after{width:100%}.contact-info{display:flex;align-items:center;gap:1em}.phone{display:flex;align-items:center;gap:.5rem;color:var(--main_prim);font-weight:600}.social-links{display:flex;flex-direction:row;gap:.5rem;align-items:center}.social-links__top a{order:2}.social-links__btm{display:flex;justify-content:center}.social-link{display:flex;align-items:center;justify-content:center;border-radius:50%;color:var(--main_second);text-decoration:none;transition:all 0.3s ease}.social-link.phone i{display:none}header .social-link i{font-size:1.5em}.social-link > i{color:var(--main_phone)}.social-link .fontello-phone-call{color:var(--main_phone)}.social-link .fontello-whatsapp{color:var(--main_whatsapp)}.social-link .fontello-telegram{color:var(--main_telegram)}.social-link.telegram,.social-link.whatsapp{background:unset}.social-link:hover{transform:scale(1.1);box-shadow:0 5px 15px rgba(var(--main_hex_blck), 0.3)}.mobile-menu-toggle{display:none;flex-direction:column;gap:4px;background:none;border:none;cursor:pointer}.mobile-menu-toggle span{width:25px;height:3px;background:var(--main_prim);transition:all 0.3s ease}@media only screen and (max-width:1024px){.brand-name{font-size:1.5em}.brand-slogan{font-size:.8em}}@media only screen and (max-width:938px){.nav-menu ul{gap:1em}}@media only screen and (max-width:876px){.nav-menu a{font-size:.8em}}@media only screen and (max-width:768px){.container{padding:0 38px}.header-content{flex-wrap:nowrap;gap:1em}.nav-menu{display:none}.mobile-menu-toggle{display:flex}.social-link.phone i{display:none}.social-link.phone p{display:block}.social-links,.social-links__btm{flex-direction:row;gap:5px}.contact-info.coderIcon{justify-self:unset;margin-left:124px}button.mobile-menu-toggle{width:max-content;background:none;box-shadow:none}}@media only screen and (max-width:631px){.social-link.phone i{display:block}.social-link.phone p{display:none}}@media only screen and (max-width:568px){.brand-text p{display:none}.brand-name{line-height:unset}.contact-info.coderIcon{margin-left:120px}.nav-menu,.contact-info .coderIcon{gap:5px}}@media only screen and (max-width:494px){.contact-info.coderIcon{margin-left:88px}}@media only screen and (max-width:454px){.contact-info.coderIcon{margin-left:52px}}@media only screen and (max-width:422px){.contact-info.coderIcon{margin-left:2em}}@media only screen and (max-width:384px){.contact-info.coderIcon{margin-left:4em}.logo-section{flex-direction:column;gap:2px}}@media only screen and (max-width:380px){.logo-icon{width:47px;height:29px}.contact-info.coderIcon{margin-left:4em}}@media only screen and (max-width:322px){.contact-info.coderIcon{margin-left:1em}}@-moz-keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}@-webkit-keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}@-o-keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}.about-content{display:grid;grid-template-columns:2fr 1fr;gap:3rem;align-items:center}.about-text p{margin-bottom:1.5rem;color:var(--main_second_2);line-height:1.8}.logo-circle{width:150px;height:150px;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.logo-circle::before{content:'';position:absolute;width:200%;height:200%;top:-50%;left:-50%;animation:rotate 8s linear infinite}.logo-circle i{font-size:70px;color:var(--main_blck);z-index:2;animation:pulse 2s infinite ease-in-out}.logo-text{font-family:var(--font_header);font-size:2.5rem;font-weight:700;color:var(--main_prim);text-transform:uppercase;letter-spacing:2px;text-shadow:0 5px 10px rgba(var(--main_hex_blck), 0.3)}@media only screen and (max-width:768px){.about-content{grid-template-columns:1fr;text-align:center}.logo-text{font-size:1.8em}.logo-circle{width:96px;height:auto}}.advantages-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem}.advantage-item{background:rgba(var(--main_hex_blck), 1);border:1px solid rgba(var(--main_hex_prim), 0.2);border-radius:15px;padding:2rem;text-align:center;transition:all 0.3s ease;position:relative;overflow:hidden}.advantage-item p{text-align:center}.advantage-item::before{content:'';position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle, rgba(var(--main_hex_prim), 0.1) 0%, transparent 70%);transform:scale(0);transition:transform 0.5s ease}.advantage-item:hover::before{transform:scale(1)}.advantage-item:hover{transform:translateY(-10px);border-color:var(--main_prim);box-shadow:0 20px 40px rgba(var(--main_hex_prim), 0.2)}.advantage-icon{font-size:3rem;color:var(--main_prim);margin-bottom:1rem;animation:pulse 2s ease-in-out infinite}.advantage-item h3{margin-bottom:1rem;position:relative;z-index:1}.advantage-item p{color:var(--main_second_2);position:relative;z-index:1}@media only screen and (max-width:768px){.advantages-grid{grid-template-columns:1fr}}@media only screen and (max-width:480px){.advantage-item h3{margin-bottom:1em;position:relative;z-index:1}h3{font-size:1.5em}}@-moz-keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.05)}}@-webkit-keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.05)}}@-o-keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.05)}}@-moz-keyframes bounce{0%,20%,50%,80%,100%{transform:translateY(0)}40%{transform:translateY(-20px)}60%{transform:translateY(-10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,100%{transform:translateY(0)}40%{transform:translateY(-20px)}60%{transform:translateY(-10px)}}@-o-keyframes bounce{0%,20%,50%,80%,100%{transform:translateY(0)}40%{transform:translateY(-20px)}60%{transform:translateY(-10px)}}@keyframes bounce{0%,20%,50%,80%,100%{transform:translateY(0)}40%{transform:translateY(-20px)}60%{transform:translateY(-10px)}}.fade-in{animation:fadeIn 1s ease-out}.slide-up{animation:slideUp .8s ease-out}.bounce-in{animation:bounceIn .8s cubic-bezier(.215,.61,.355,1)}.rotate-in{animation:rotateIn .8s ease-out}.swing{animation:swing 1s ease-in-out infinite}.shake{animation:shake .8s cubic-bezier(.36,.07,.19,.97) both}.pulse{animation:pulse 2s infinite}.float{animation:float 3s ease-in-out infinite}.animate-on-scroll{opacity:0;transform:translateY(30px);transition:all 0.8s ease-out}.animate-on-scroll.animated{opacity:1;transform:translateY(0)}.luxury-glow{position:relative}.luxury-glow::before{content:'';position:absolute;top:-2px;left:-2px;right:-2px;bottom:-2px;background:linear-gradient(45deg, var(--main_prim), var(--main_second_3), var(--main_prim));z-index:-1;opacity:0;transition:opacity 0.3s ease}.luxury-glow:hover::before{opacity:1}.loading{position:relative;overflow:hidden}.loading::after{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg, transparent, rgba(var(--main_hex_prim), 0.3), transparent);animation:loading 1.5s infinite}@media only screen and (max-width:768px){.mortgage-help{order:-1}.coderBtn{display:block;width:100%}}@media only screen and (max-width:568px){.animated-logo{width:120px}}@-moz-keyframes fadeInUp{from{opacity:0;transform:translateY(60px)}to{opacity:1;transform:translateY(0)}}@-webkit-keyframes fadeInUp{from{opacity:0;transform:translateY(60px)}to{opacity:1;transform:translateY(0)}}@-o-keyframes fadeInUp{from{opacity:0;transform:translateY(60px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{from{opacity:0;transform:translateY(60px)}to{opacity:1;transform:translateY(0)}}@-moz-keyframes rotate{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@-webkit-keyframes rotate{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@-o-keyframes rotate{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes rotate{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@-moz-keyframes fadeIn{from{opacity:0}to{opacity:1}}@-webkit-keyframes fadeIn{from{opacity:0}to{opacity:1}}@-o-keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@-moz-keyframes slideUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@-webkit-keyframes slideUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@-o-keyframes slideUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@-moz-keyframes bounceIn{0%{opacity:0;transform:scale3d(.3,.3,.3)}20%{transform:scale3d(1.1,1.1,1.1)}40%{transform:scale3d(.9,.9,.9)}60%{opacity:1;transform:scale3d(1.03,1.03,1.03)}80%{transform:scale3d(.97,.97,.97)}100%{opacity:1;transform:scale3d(1,1,1)}}@-webkit-keyframes bounceIn{0%{opacity:0;transform:scale3d(.3,.3,.3)}20%{transform:scale3d(1.1,1.1,1.1)}40%{transform:scale3d(.9,.9,.9)}60%{opacity:1;transform:scale3d(1.03,1.03,1.03)}80%{transform:scale3d(.97,.97,.97)}100%{opacity:1;transform:scale3d(1,1,1)}}@-o-keyframes bounceIn{0%{opacity:0;transform:scale3d(.3,.3,.3)}20%{transform:scale3d(1.1,1.1,1.1)}40%{transform:scale3d(.9,.9,.9)}60%{opacity:1;transform:scale3d(1.03,1.03,1.03)}80%{transform:scale3d(.97,.97,.97)}100%{opacity:1;transform:scale3d(1,1,1)}}@keyframes bounceIn{0%{opacity:0;transform:scale3d(.3,.3,.3)}20%{transform:scale3d(1.1,1.1,1.1)}40%{transform:scale3d(.9,.9,.9)}60%{opacity:1;transform:scale3d(1.03,1.03,1.03)}80%{transform:scale3d(.97,.97,.97)}100%{opacity:1;transform:scale3d(1,1,1)}}@-moz-keyframes rotateIn{from{transform-origin:center;transform:rotate3d(0,0,1,-200deg);opacity:0}to{transform-origin:center;transform:none;opacity:1}}@-webkit-keyframes rotateIn{from{transform-origin:center;transform:rotate3d(0,0,1,-200deg);opacity:0}to{transform-origin:center;transform:none;opacity:1}}@-o-keyframes rotateIn{from{transform-origin:center;transform:rotate3d(0,0,1,-200deg);opacity:0}to{transform-origin:center;transform:none;opacity:1}}@keyframes rotateIn{from{transform-origin:center;transform:rotate3d(0,0,1,-200deg);opacity:0}to{transform-origin:center;transform:none;opacity:1}}@-moz-keyframes swing{20%{transform:rotate3d(0,0,1,15deg)}40%{transform:rotate3d(0,0,1,-10deg)}60%{transform:rotate3d(0,0,1,5deg)}80%{transform:rotate3d(0,0,1,-5deg)}to{transform:rotate3d(0,0,1,0deg)}}@-webkit-keyframes swing{20%{transform:rotate3d(0,0,1,15deg)}40%{transform:rotate3d(0,0,1,-10deg)}60%{transform:rotate3d(0,0,1,5deg)}80%{transform:rotate3d(0,0,1,-5deg)}to{transform:rotate3d(0,0,1,0deg)}}@-o-keyframes swing{20%{transform:rotate3d(0,0,1,15deg)}40%{transform:rotate3d(0,0,1,-10deg)}60%{transform:rotate3d(0,0,1,5deg)}80%{transform:rotate3d(0,0,1,-5deg)}to{transform:rotate3d(0,0,1,0deg)}}@keyframes swing{20%{transform:rotate3d(0,0,1,15deg)}40%{transform:rotate3d(0,0,1,-10deg)}60%{transform:rotate3d(0,0,1,5deg)}80%{transform:rotate3d(0,0,1,-5deg)}to{transform:rotate3d(0,0,1,0deg)}}@-moz-keyframes shake{10%,90%{transform:translate3d(-1px,0,0)}20%,80%{transform:translate3d(2px,0,0)}30%,50%,70%{transform:translate3d(-4px,0,0)}40%,60%{transform:translate3d(4px,0,0)}}@-webkit-keyframes shake{10%,90%{transform:translate3d(-1px,0,0)}20%,80%{transform:translate3d(2px,0,0)}30%,50%,70%{transform:translate3d(-4px,0,0)}40%,60%{transform:translate3d(4px,0,0)}}@-o-keyframes shake{10%,90%{transform:translate3d(-1px,0,0)}20%,80%{transform:translate3d(2px,0,0)}30%,50%,70%{transform:translate3d(-4px,0,0)}40%,60%{transform:translate3d(4px,0,0)}}@keyframes shake{10%,90%{transform:translate3d(-1px,0,0)}20%,80%{transform:translate3d(2px,0,0)}30%,50%,70%{transform:translate3d(-4px,0,0)}40%,60%{transform:translate3d(4px,0,0)}}@-moz-keyframes loading{0%{left:-100%}100%{left:100%}}@-webkit-keyframes loading{0%{left:-100%}100%{left:100%}}@-o-keyframes loading{0%{left:-100%}100%{left:100%}}@keyframes loading{0%{left:-100%}100%{left:100%}}.bank-partners-flex{display:flex;gap:3rem;align-items:flex-start;margin:3rem 0}.banks-column{display:flex;flex-direction:column}.banks-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1.5rem}.mortgage-help{display:flex;flex-direction:column;background:rgba(var(--main_hex_prim), 0.05);border:1px solid rgba(var(--main_hex_prim), 0.2);border-radius:15px;padding:2.5rem;animation:fadeIn 1s ease-out;box-shadow:0 15px 30px rgba(var(--main_hex_blck), 0.3)}.mortgage-help h3{font-size:2rem;margin-bottom:1.5rem;color:var(--main_prim)}.mortgage-help p{margin-bottom:2rem;color:var(--main_second_2);line-height:1.8}.mortgage-benefits{list-style:none;margin-bottom:2rem}.mortgage-benefits li{display:flex;align-items:center;gap:.8rem;margin-bottom:1rem;color:var(--main_second_2)}.mortgage-benefits i{color:var(--main_prim);font-size:1.2rem}.bank-logo{background:rgba(var(--main_hex_second), 0.05);border-radius:15px;padding:1.5rem;display:flex;align-items:center;justify-content:center;transition:all 0.3s ease;aspect-ratio:1;border:1px solid rgba(var(--main_hex_prim), 0.2)}.bank-icon{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;width:100%;height:100%}.bank-icon i{font-size:2.5rem;color:var(--main_prim);transition:all 0.5s ease}.bank-icon span{font-size:.9rem;color:var(--main_second);font-weight:500;text-align:center;transition:all 0.3s ease}.bank-logo:hover{transform:translateY(-5px);box-shadow:0 15px 30px rgba(var(--main_hex_prim), 0.3);BORDER-color:var(--main_prim);background:rgba(var(--main_hex_prim), 0.1)}.bank-logo:hover .bank-icon i{transform:scale(1.2);color:var(--main_second_3)}.bank-logo:hover .bank-icon span{color:var(--main_prim)}.gift-section{padding:6rem 0;background:linear-gradient(135deg, var(--main_blck_2) 0%, var(--main_blck_3) 100%);position:relative;overflow:hidden}.gift-section::before{content:'';position:absolute;top:0;right:0;width:50%;height:100%;background:url("https://images.unsplash.com/photo-1544620347-c4fd4a3d5957?w=800&h=600&fit=crop") center/cover;opacity:.1;z-index:-1}.gift-content{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:flex-start}.form-group{display:flex;gap:1rem;margin-bottom:1rem}.form-group input{display:flex;flex-direction:column;padding:15px 20px;border:2px solid rgba(var(--main_hex_prim), 0.3);border-radius:25px;background:rgba(var(--main_hex_second), 0.05);color:var(--main_second);font-size:1rem;transition:all 0.3s ease}.form-group input:focus{outline:none;BORDER-color:var(--main_prim);box-shadow:0 0 20px rgba(var(--main_hex_prim), 0.3)}.form-group input::placeholder{color:rgba(var(--main_hex_second), 0.6)}@media only screen and (max-width:768px){.banks-grid{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1rem}}@media only screen and (max-width:650px){.bank-partners-flex{flex-direction:column}.banks-grid{grid-template-columns:repeat(3,1fr)}.banks-column{margin:0 auto}.bank-logo{padding:12px}}@media only screen and (max-width:568px){.banks-grid{grid-template-columns:repeat(4,1fr)}}.discount-text{font-size:1.2rem;color:#ff6b35;font-weight:600;margin-top:.5rem}.floor-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem;margin:2rem 0}.option-card{position:relative;cursor:pointer}.option-card input{position:absolute;opacity:0;width:0;height:0}.option-content{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:2rem;background:rgba(var(--main_hex_prim), 0.05);border:2px solid rgba(var(--main_hex_prim), 0.2);border-radius:15px;transition:all 0.3s ease}.option-content i{font-size:3rem;color:var(--main_prim)}.option-card input:checked + .option-content{background:rgba(var(--main_hex_prim), 0.2);border-color:var(--main_prim);transform:scale(1.05);box-shadow:0 10px 30px rgba(var(--main_hex_prim), 0.3)}@media only screen and (max-width:768px){.calculator-advanced{grid-template-columns:1fr}}section.copyright-section{padding-bottom:25px}@media only screen and (max-width:768px){.copyright-content h1{font-size:2em;line-height:3em}.copyright-content h2{font-size:1.8em;line-height:3em}}.section-divider{width:80px;height:3px;background:linear-gradient(45deg, var(--main_prim), var(--main_second_3));margin:1rem auto;border-radius:2px}.section-actions{display:flex;justify-content:center;align-items:center;gap:2rem;margin-top:3rem}@media only screen and (max-width:768px){.form-group{flex-direction:column}}@media only screen and (max-width:480px){.modal-content{margin:10% auto;padding:1.5rem}}.gift-section{position:relative;overflow:hidden}.gift-section::before{content:'';position:absolute;top:0;right:0;width:50%;height:100%;background:url("https://images.unsplash.com/photo-1544620347-c4fd4a3d5957?w=800&h=600&fit=crop") center/cover;opacity:.1;z-index:-1}.btn-calculate{background:linear-gradient(45deg, var(--main_prim), var(--main_second_3), var(--main_prim));background-size:200% 200%;animation:gradient 5s ease infinite;color:var(--main_blck);display:flex;justify-content:center;width:100%;box-shadow:0 10px 20px rgba(var(--main_hex_prim), 0.3)}.btn-calculate:hover{transform:translateY(-5px);box-shadow:0 15px 30px rgba(var(--main_hex_prim), 0.5)}.gift-content{display:grid;grid-template-columns:repeat(2,1fr);gap:3em;align-items:flex-start}.calculator-block{background:rgba(var(--main_hex_prim), 0.05);border:1px solid rgba(var(--main_hex_prim), 0.2);border-radius:15px;padding:2.5em;box-shadow:0 15px 30px rgba(var(--main_hex_blck), 0.3);animation:fadeIn 1s ease-out}.calculator-block h2{margin-bottom:1.5em;color:var(--main_prim)}.calculator-options{display:flex;flex-direction:column;gap:1.5em;margin-bottom:2em}.calc-option{display:flex;flex-direction:column;gap:.5em}.calc-option label{color:var(--main_prim);font-weight:500}.calc-option select,.calc-option input{padding:12px 15px;border-radius:8px;border:1px solid rgba(var(--main_hex_prim), 0.3);background:rgba(var(--main_hex_second), 0.05);color:var(--main_second);font-family:var(--font_prim);transition:all 0.3s ease}.calc-option select:focus,.calc-option input:focus{outline:none;border-color:var(--main_prim);box-shadow:0 0 10px rgba(var(--main_hex_prim), 0.3)}.calculator-block p{margin-bottom:2em;color:var(--main_second_2)}.gift-block h2{margin-bottom:1.5em;color:var(--main_prim)}option{background-color:rgba(var(--main_hex_blck_3), 0.5)}.gift-block p{margin-bottom:2em;color:var(--main_second_2)}.gift-image:hover{transform:scale(1.05)}.gift-buttons{display:flex;gap:1em;flex-wrap:wrap}.gift-buttons button{width:100%}.gift-image{width:100%;height:auto;transition:transform 0.5s ease;display:block;max-width:300px;border-radius:15px;transition:transform 0.3s ease}.form-group{display:flex;gap:1em;margin-bottom:1em}.form-group input{display:flex;flex-direction:column;padding:15px 20px;border:2px solid rgba(var(--main_hex_prim), 0.3);border-radius:25px;background:rgba(var(--main_hex_second), 0.05);color:var(--main_second);font-size:1em;transition:all 0.3s ease}.form-group input:focus{outline:none;border-color:var(--main_prim);box-shadow:0 0 20px rgba(var(--main_hex_prim), 0.3)}.form-group input::placeholder{color:rgba(var(--main_hex_second), 0.6)}.gift-block{background:rgba(var(--main_hex_second), 0.05);border:1px solid rgba(var(--main_hex_prim), 0.2);border-radius:15px;padding:2.5em;box-shadow:0 15px 30px rgba(var(--main_hex_blck), 0.3);animation:fadeIn 1s ease-out .3s both}.gift-visual{display:flex;flex-direction:column;align-items:center;gap:2em;margin-bottom:2em;border-radius:10px;overflow:hidden}@media only screen and (max-width:1024px){.gift-image{max-width:188px}}@media only screen and (max-width:768px){.gift-content{grid-template-columns:1fr;text-align:center;align-items:center}.gift-content img{text-align:center}}@media only screen and (max-width:568px){.gift-visual{width:186px;justify-self:center}}@-moz-keyframes gradient{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}@-webkit-keyframes gradient{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}@-o-keyframes gradient{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}@keyframes gradient{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}.hero-section{display:flex;flex-direction:column;justify-content:space-between;padding:25px 0}.hero-content{display:grid;grid-template-columns:repeat(2,1fr);gap:4em;align-items:center}div.hero-text{padding-right:2em}.hero-title{font-size:3em;color:var(--main_second);animation:fadeInUp 1s ease-out}.hero-description{color:var(--main_second_2);margin-bottom:2em;animation:fadeInUp 1s ease-out .2s both}.hero-buttons{display:flex;gap:1em;margin-bottom:2em;animation:fadeInUp 1s ease-out .4s both}.hero-image-container{display:flex;justify-content:center;align-items:center}.hero-house-image{width:100%;max-width:500px;height:auto;border-radius:15px;transition:transform 0.3s ease}.hero-house-image:hover{transform:scale(1.05)}.hero-bottom{margin-top:3em}.hero-contact{display:flex;gap:2em;align-items:end}.phone-section,.social-section{display:flex;flex-direction:column;gap:.5em}.social-section{flex-direction:row}.social-section a{font-size:2em}.phone-label,.social-label{font-size:.9em;color:var(--main_prim);font-weight:600;letter-spacing:1px}.phone-number{font-weight:700;color:var(--main_second);transition:all 0.3s}.phone-number:hover{color:var(--main_prim);transform:scale(1.2)}.social-handle{font-size:1em;color:var(--main_second_2)}@media only screen and (max-width:1024px){.hero-title{font-size:2.5em}}@media only screen and (max-width:768px){.hero-content{grid-template-columns:1fr;text-align:center;gap:2em}.hero-title{font-size:2em;line-height:1.5em}.hero-buttons{flex-direction:column;align-items:center}.hero-contact{flex-direction:column;gap:2em;text-align:center}}@media only screen and (max-width:480px){.hero-title{font-size:1.5em}.hero-text{text-align:left}}.modal{display:none;position:fixed;z-index:2000;left:0;top:0;width:100%;height:100%;background-color:rgba(var(--main_hex_blck), 0.8);backdrop-filter:blur(5px)}.modal-content{background:linear-gradient(135deg, var(--main_blck_2), rgba(var(--main_hex_blck), 0.5));margin:5% auto;padding:2rem;border-radius:15px;width:90%;max-width:500px;position:relative;border:1px solid rgba(var(--main_hex_prim), 0.3);animation:modalSlideIn .3s ease-out}.close{position:absolute;right:1rem;top:1rem;font-size:2rem;color:var(--main_prim);cursor:pointer;transition:color 0.3s ease}.close:hover{color:var(--main_prim)}.contact-form .form-group{margin-bottom:1.5rem}.contact-form input,.contact-form textarea{width:100%;padding:15px 20px;border:2px solid rgba(var(--main_hex_prim), 0.3);border-radius:10px;background:rgba(var(--main_hex_second), 0.05);color:var(--main_second);font-size:1rem;transition:all 0.3s ease}.contact-form input:focus,.contact-form textarea:focus{outline:none;border-color:var(--main_prim);box-shadow:0 0 20px rgba(var(--main_hex_prim), 0.3)}.contact-form textarea{resize:vertical;min-height:100px}@-moz-keyframes modalSlideIn{from{opacity:0;transform:translateY(-50px)}to{opacity:1;transform:translateY(0)}}@-webkit-keyframes modalSlideIn{from{opacity:0;transform:translateY(-50px)}to{opacity:1;transform:translateY(0)}}@-o-keyframes modalSlideIn{from{opacity:0;transform:translateY(-50px)}to{opacity:1;transform:translateY(0)}}@keyframes modalSlideIn{from{opacity:0;transform:translateY(-50px)}to{opacity:1;transform:translateY(0)}}.company-logo-animated{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.5rem;animation:float 3s ease-in-out infinite}.houses-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:2rem}.house-item{position:relative;border-radius:15px;overflow:hidden;box-shadow:0 20px 40px rgba(var(--main_hex_blck), 0.5);transition:all 0.3s ease}.house-item:hover{transform:translateY(-10px);box-shadow:0 30px 60px rgba(var(--main_hex_blck), 0.7)}.house-item img{width:100%;height:250px;object-fit:cover;transition:transform 0.3s ease}.house-item:hover img{transform:scale(1.1)}@media only screen and (max-width:768px){.houses-gallery{grid-template-columns:repeat(2,1fr)}.house-variants{flex-direction:row;gap:1rem}}.project-showcase{position:relative}.project-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:3rem}.animated-logo{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:25px;animation:pulse 2s infinite ease-in-out;width:180px}.animated-logo i{font-size:1.5rem;color:var(--main_blck)}.animated-logo span{font-family:'Oswald',sans-serif;font-weight:600;font-size:1.2rem;color:var(--main_blck);text-transform:uppercase;letter-spacing:1px}.project-content{display:grid;grid-template-columns:150px 1fr 300px;gap:3rem;align-items:start}.project-controls{display:flex;flex-direction:column}.floor-buttons{display:flex;flex-direction:column;gap:1rem}.floor-btn{background:rgba(var(--main_hex_blck), 0.7);color:var(--main_prim);border:2px solid var(--main_prim);border-radius:5px;text-transform:uppercase;letter-spacing:1px;margin-bottom:15px;z-index:1;font-size:.8em;padding:12px 8px}.floor-btn::before{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg, transparent, rgba(var(--main_hex_prim), 0.2), transparent);transition:left 0.5s;z-index:-1}.floor-btn:hover::before{left:100%}.floor-btn.active{background:var(--main_prim);color:var(--main_blck);transform:scale(1.05);box-shadow:0 5px 15px rgba(var(--main_hex_prim), 0.4)}.floor-btn:hover:not(.active){background:rgba(var(--main_hex_prim), 0.1);transform:translateX(5px)}.project-center{display:flex;flex-direction:column;gap:2rem}.house-main-image{position:relative;border-radius:15px;overflow:hidden;box-shadow:0 20px 40px rgba(var(--main_hex_blck), 0.5)}.house-main-image img{width:100%;height:300px;object-fit:cover;transition:transform 0.3s ease}.house-main-image:hover img{transform:scale(1.05)}.house-plan{background:rgba(var(--main_hex_second), 0.95);border-radius:15px;padding:1rem;box-shadow:0 10px 30px rgba(var(--main_hex_blck), 0.3)}.house-plan img{width:100%;height:250px;object-fit:cover;border-radius:10px}.project-right{display:flex;flex-direction:column;gap:2rem}.house-variants{display:flex;flex-direction:column;gap:1rem}.variant-image{border-radius:10px;overflow:hidden;box-shadow:0 5px 15px rgba(var(--main_hex_blck), 0.3);transition:transform 0.3s ease;cursor:pointer}.variant-image:hover{transform:scale(1.05)}.variant-image img{width:100%;height:80px;object-fit:cover}.house-info{background:transparent;padding:2rem 0;bottom:0;left:0;right:0;padding:1rem 1.2rem 1.5rem;color:var(--main_second)}.house-info h3{color:var(--main_prim);margin-bottom:1.5rem;font-size:1.5rem;text-align:center;text-transform:uppercase;letter-spacing:2px}.project-description{color:var(--main_second_2);margin-bottom:2rem;line-height:1.6;text-align:justify;font-size:.95rem}.specs-box{background-color:var(--main_blck);border:1px solid var(--main_prim);border-radius:15px;padding:.8rem;position:relative;overflow:hidden}.specs-box::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;border-radius:15px;border:1px solid var(--main_prim);box-shadow:0 0 15px rgba(var(--main_hex_prim), 0.3);pointer-events:none}.specs-box h4{color:var(--main_prim);text-align:center;margin-bottom:1.5rem;font-weight:600}.specs-list{list-style:none;padding:0;margin:0}.specs-list li{display:flex;align-items:center;gap:1rem;margin-bottom:.8rem;color:var(--main_prim)}.specs-list li i{font-size:1.2rem;width:25px;height:25px;display:flex;align-items:center;justify-content:center;color:var(--main_prim)}.specs-list li span{font-size:1rem;color:var(--main_prim);font-weight:500}@media only screen and (max-width:768px){.project-content{grid-template-columns:1fr;gap:2rem}.project-title{font-size:2.5rem}.floor-buttons{flex-direction:row;flex-wrap:wrap;gap:.5rem}}@media only screen and (max-width:480px){.animated-logo{width:125px}.project-title{font-size:1.8rem}.specs-box h4{font-size:1em}.floor-buttons{flex-direction:row}.floor-btn{width:48%}}.slideshow-container{position:relative;border-radius:20px;padding:20px;margin-bottom:30px;box-shadow:0 20px 40px rgba(var(--main_hex_blck), 0.1);backdrop-filter:blur(10px)}.slides-wrapper{position:relative;height:400px;overflow:hidden;border-radius:15px}.slide{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;transition:opacity 0.8s ease-in-out;display:flex;align-items:center;justify-content:center}.slide.active{opacity:1}.nav-arrow{position:absolute;top:50%;transform:translateY(-50%);width:50px;height:50px;padding:unset;color:#333;z-index:10}.nav-arrow:hover{transform:translateY(-50%) scale(1.1);box-shadow:0 6px 20px rgba(var(--main_hex_blck), 0.3)}.prev-arrow{left:30px}.next-arrow{right:30px}.slide-indicators{display:flex;justify-content:center;gap:10px;margin-top:20px}.indicator{width:12px;height:12px;border-radius:50%;background:rgba(var(--main_hex_blck), 0.3);cursor:pointer;transition:all 0.3s ease}.indicator.active{background:var(--main_prim);transform:scale(1.2)}.indicator:hover{background:rgba(102,126,234,0.7)}.navigation-panel{padding:25px;margin-bottom:30px}.project-buttons{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:15px;max-width:1000px;margin:0 auto}.project-btn{padding:15px 20px;border:none;border-radius:12px;background:linear-gradient(135deg, #f093fb 0%, #f5576c 100%);color:var(--main_second);font-size:16px;font-weight:600;cursor:pointer;transition:all 0.3s ease;box-shadow:0 4px 15px rgba(var(--main_hex_blck), 0.2)}.project-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(var(--main_hex_blck), 0.3)}.project-btn.active{background:linear-gradient(135deg, #667eea 0%, #764ba2 100%);transform:scale(1.05);box-shadow:0 8px 25px rgba(102,126,234,0.4)}.text-content{padding:30px;text-align:center}.project-description{font-size:1.2rem;line-height:1.8;color:#666;margin:0 auto}.slide.active{animation:fadeIn .8s ease-out}.slide img{transition:transform 0.3s ease}.slide img:hover{transform:scale(1.05)}@media only screen and (max-width:768px){.container{padding:15px}.slides-wrapper{height:300px}.nav-arrow{width:40px;height:40px;font-size:16px}.prev-arrow{left:15px}.next-arrow{right:15px}.project-buttons{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px}.project-btn{padding:12px 15px;font-size:14px}.project-title{font-size:2rem}.project-description{font-size:1rem}}@media only screen and (max-width:480px){.slides-wrapper{height:250px}.project-buttons{grid-template-columns:repeat(2,1fr)}.project-title{font-size:1.8rem}}@-moz-keyframes fadeIn{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@-webkit-keyframes fadeIn{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@-o-keyframes fadeIn{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.suppliers-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:2rem;margin-top:3rem}.supplier-logo{background:rgba(var(--main_hex_second), 0.05);border-radius:15px;padding:2rem;display:flex;align-items:center;justify-content:center;transition:all 0.3s ease;aspect-ratio:1;border:1px solid rgba(var(--main_hex_prim), 0.2)}.supplier-icon{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.5rem;width:100%;height:100%}.supplier-icon i{font-size:3.5rem;color:var(--main_prim);transition:all 0.5s ease}.supplier-icon span{font-size:1.2rem;color:var(--main_second);font-weight:500;text-align:center;transition:all 0.3s ease}.supplier-logo:hover{transform:translateY(-10px) rotate(3deg);box-shadow:0 20px 40px rgba(var(--main_hex_prim), 0.4);border-color:var(--main_prim);background:rgba(var(--main_hex_prim), 0.1)}.supplier-logo:hover .supplier-icon i{transform:scale(1.2) rotate(-10deg);color:var(--main_second_3)}.supplier-logo:hover .supplier-icon span{color:var(--main_prim)}@media only screen and (max-width:768px){.suppliers-grid{grid-template-columns:repeat(3,152px);gap:1rem;justify-content:center}.supplier-icon span{font-size:1em}}@media only screen and (max-width:480px){.suppliers-grid{grid-template-columns:repeat(3,114px);gap:.5rem}.supplier-icon span{font-size:.8em}}.technology-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:2rem}.tech-item{background:rgba(var(--main_hex_prim), 0.05);border:1px solid rgba(var(--main_hex_prim), 0.2);border-radius:15px;padding:2rem;transition:all 0.3s ease}.tech-item:hover{transform:translateY(-5px);border-color:var(--main_prim);box-shadow:0 15px 30px rgba(var(--main_hex_prim), 0.2)}.tech-icon{color:var(--main_prim);margin-bottom:1rem;display:flex;gap:10px}.tech-item ul{list-style:none;margin-top:1rem}.tech-item li{padding:.5rem 0;color:var(--main_second_2);position:relative;padding-left:1.5rem}.tech-item li::before{content:'✓';position:absolute;left:0;color:var(--main_prim);font-weight:bold}@media only screen and (max-width:768px){.technology-grid{grid-template-columns:1fr}.section-actions{flex-direction:column;gap:1rem}}@media only screen and (max-width:480px){.technology-section h3{font-size:1em}.tech-item li{font-size:.8em}}.footer{background:rgba(var(--main_hex_blck), 0.95);padding:3rem 0 1rem;border-top:1px solid rgba(var(--main_hex_prim), 0.2)}.footer-content{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:2rem;margin-bottom:2rem;justify-items:center}.footer-logo{display:flex;align-items:center;gap:1rem}.footer-logo-icon{width:50px;height:50px;display:flex;align-items:center;justify-content:center}.footer-logo-icon i{font-size:25px;color:var(--main_blck)}.footer-section h4{color:var(--main_prim);margin-bottom:1rem}.footer-section p{color:var(--main_second_2);margin-bottom:.5rem;display:flex;align-items:center;gap:.5rem}.footer-social{display:flex;flex-direction:column;gap:.5rem}.footer-social a{color:var(--main_second_2);text-decoration:none;transition:color 0.3s ease}.footer-social a:hover{color:var(--main_prim)}.footer-bottom{text-align:center;padding-top:2rem;border-top:1px solid rgba(var(--main_hex_prim), 0.1);color:#888}.footer-bottom a{color:var(--main_second)}.footer-bottom a:hover{color:var(--main_prim)}@media only screen and (max-width:768px){.footer-logo{flex-direction:column}.footer-logo-icon{width:96px;border:unset;background:unset;box-shadow:none}.footer-section p{text-align:center;display:block}.footer-content{grid-template-columns:repeat(2,1fr);text-align:center}}@media only screen and (max-width:480px){.footer-content{grid-template-columns:repeat(1,1fr)}}/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zdHlsdXMvZGVmYXVsdC9fbm9ybWlsaXNlLnN0eWwiLCIuLi8uLi8uLi9zcmMvbm9kZV9tb2R1bGVzL25pYi9saWIvbmliL3ZlbmRvci5zdHlsIiwiLi4vLi4vLi4vc3JjL25vZGVfbW9kdWxlcy9uaWIvbGliL25pYi9mbGV4LnN0eWwiLCIuLi8uLi8uLi9zcmMvbm9kZV9tb2R1bGVzL25pYi9saWIvbmliL292ZXJmbG93LnN0eWwiLCIuLi8uLi8uLi9zcmMvc3R5bHVzL2RlZmF1bHQvX3ZhcmlhYmxlLnN0eWwiLCIuLi8uLi8uLi9zcmMvc3R5bHVzL2RlZmF1bHQvX3R5cG9ncmFwaHkuc3R5bCIsIi4uLy4uLy4uL3NyYy9ub2RlX21vZHVsZXMvcnVwdHVyZS9ydXB0dXJlL2luZGV4LnN0eWwiLCIuLi8uLi8uLi9zcmMvc3R5bHVzL2RlZmF1bHQvX21haW5Db2RlLnN0eWwiLCIuLi8uLi8uLi9zcmMvbm9kZV9tb2R1bGVzL25pYi9saWIvbmliL2JvcmRlci1yYWRpdXMuc3R5bCIsIi4uLy4uLy4uL3NyYy9ub2RlX21vZHVsZXMvbmliL2xpYi9uaWIvYm9yZGVyLnN0eWwiLCIuLi8uLi8uLi9zcmMvc3R5bHVzL2hlYWRlci5zdHlsIiwiLi4vLi4vLi4vc3JjL3N0eWx1cy9tYWluL2Fib3V0LnN0eWwiLCIuLi8uLi8uLi9zcmMvc3R5bHVzL21haW4vYWR2YW50YWdlLnN0eWwiLCIuLi8uLi8uLi9zcmMvc3R5bHVzL21haW4vYW5pbWF0ZS5zdHlsIiwiLi4vLi4vLi4vc3JjL3N0eWx1cy9tYWluL2Jhbmsuc3R5bCIsIi4uLy4uLy4uL3NyYy9zdHlsdXMvbWFpbi9jYWxjdWxhdG9yLnN0eWwiLCIuLi8uLi8uLi9zcmMvc3R5bHVzL21haW4vY29weXJpZ2h0LnN0eWwiLCIuLi8uLi8uLi9zcmMvc3R5bHVzL21haW4vZGl2aWRlci5zdHlsIiwiLi4vLi4vLi4vc3JjL3N0eWx1cy9tYWluL2Zvcm0uc3R5bCIsIi4uLy4uLy4uL3NyYy9zdHlsdXMvbWFpbi9naWZ0LnN0eWwiLCIuLi8uLi8uLi9zcmMvc3R5bHVzL2RlZmF1bHQvX21peGlucy5zdHlsIiwiLi4vLi4vLi4vc3JjL3N0eWx1cy9tYWluL2hlcm8uc3R5bCIsIi4uLy4uLy4uL3NyYy9zdHlsdXMvbWFpbi9tb2RhbC5zdHlsIiwiLi4vLi4vLi4vc3JjL3N0eWx1cy9tYWluL291ckhvdXNlLnN0eWwiLCIuLi8uLi8uLi9zcmMvc3R5bHVzL21haW4vb3VyUHJvamVjdC5zdHlsIiwiLi4vLi4vLi4vc3JjL3N0eWx1cy9tYWluL3NsaWRlUGFnZS5zdHlsIiwiLi4vLi4vLi4vc3JjL3N0eWx1cy9tYWluL3N1cHBsaW1pbGxlci5zdHlsIiwiLi4vLi4vLi4vc3JjL3N0eWx1cy9tYWluL3RlaG5vbG9neS5zdHlsIiwiLi4vLi4vLi4vc3JjL3N0eWx1cy9mb290ZXIuc3R5bCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxFQUNDLE9BQVEsRUFDUixRQUFTLEVDeUNRLG1CQUFHLFdBQUgsZ0JBQUcsV0FSTixXQUFHLFdBUUEsb0JBQUcsS0FBSCxpQkFBRyxLQUFILGdCQUFHLEtBUk4sWUFBRyxLRDdCbEIsS0FDQyxZQUFhLEtBQ2IseUJBQTBCLEtBRTNCLEtBQ0MsTUFBTSxLQUVQLEVBQ0csOEJFUUMsUUFBUyxhRkxiLFlBQ0MsY0FBZSxLQUNmLGdCQUFpQixVQUNqQixnQkFBaUIsaUJBRWxCLEVBQ0EsT0FDQyxZQUFhLEtBRWQsS0FDQSxJQUNBLEtBQ0MsWUFBc0Isb0JBQ3RCLFVBQVcsSUFFWixJQUNDLE9BQVEsT0FFVCxJQUNDLElBQUssTUFFTixJQUNDLGFBQWMsS0FFZixPQUNBLE1HdkJJLFNBQVUsUUh5QmIsS0FBTSxRQUVQLE9BQ0EsT0FDQyxlQUFnQixLQUVqQixPQUNBLGdCQUNBLGVBQ0EsZ0JBQ0MsbUJBQW9CLE9BRXJCLHlCQUNBLGtDQUNBLGlDQUNBLGtDQUNDLGFBQWMsS0FFZixzQkFDQSwrQkFDQSw4QkFDQSwrQkFDQyxRQUFTLHNCQUVWLFNBQ0MsUUFBUyxtQkFFVixP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V0FBWSxRdEJ5RFQseUNzQnJEUCxnQkFDSSxzQkFBdUIiLCJmaWxlIjoic3R5bGUubWluLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIiogXG5cdG1hcmdpbjogMFxuXHRwYWRkaW5nOiAwXG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3hcblx0dXNlci1zZWxlY3Q6IG5vbmVcblxuaHRtbCBcblx0bGluZS1oZWlnaHQ6IDEuMTVcblx0LXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlXG5cbmJvZHkgXG5cdHdpZHRoIDEwMCVcblxuYSBcbiAgXHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudFxuXHRkaXNwbGF5OmlubGluZS1ibG9ja1xuICBcbmFiYnJbdGl0bGVdIFxuXHRib3JkZXItYm90dG9tOiBub25lIFxuXHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBcblx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkIFxuXG5iLFxuc3Ryb25nIFxuXHRmb250LXdlaWdodDogYm9sZFxuXG5jb2RlLFxua2JkLFxuc2FtcCBcblx0Zm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlIFxuXHRmb250LXNpemU6IDFlbSBcblxuc3ViIFxuXHRib3R0b206IC0wLjI1ZW1cblxuc3VwIFxuXHR0b3A6IC0wLjVlbVxuXG5pbWcgXG5cdGJvcmRlci1zdHlsZTogbm9uZVxuXG5idXR0b24sXG5pbnB1dCAgXG5cdG92ZXJmbG93OiB2aXNpYmxlXG5cdGZvbnQ6IGluaGVyaXRcblxuYnV0dG9uLFxuc2VsZWN0ICBcblx0dGV4dC10cmFuc2Zvcm06IG5vbmVcblxuYnV0dG9uLFxuW3R5cGU9XCJidXR0b25cIl0sXG5bdHlwZT1cInJlc2V0XCJdLFxuW3R5cGU9XCJzdWJtaXRcIl0gXG5cdC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uXG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwiYnV0dG9uXCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJyZXNldFwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwic3VibWl0XCJdOjotbW96LWZvY3VzLWlubmVyIFxuXHRib3JkZXItc3R5bGU6IG5vbmVcblx0XG5idXR0b246LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cImJ1dHRvblwiXTotbW96LWZvY3VzcmluZyxcblt0eXBlPVwicmVzZXRcIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInN1Ym1pdFwiXTotbW96LWZvY3VzcmluZyBcblx0b3V0bGluZTogMXB4IGRvdHRlZCBCdXR0b25UZXh0XG5cbmZpZWxkc2V0IFxuXHRwYWRkaW5nOiAwLjM1ZW0gMC43NWVtIDAuNjI1ZW1cblxubGVnZW5kIFxuXHRjb2xvcjogaW5oZXJpdCBcblx0ZGlzcGxheTogdGFibGUgXG5cdG1heC13aWR0aDogMTAwJSBcblx0d2hpdGUtc3BhY2U6IG5vcm1hbCBcblxucHJvZ3Jlc3MgXG5cdHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZVxuXG50ZXh0YXJlYSBcblx0b3ZlcmZsb3c6IGF1dG9cblxuW3R5cGU9XCJjaGVja2JveFwiXSxcblt0eXBlPVwicmFkaW9cIl0gXG5cdHBhZGRpbmc6IDAgXG5cblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24gXG5cdGhlaWdodDogYXV0b1xuXG5bdHlwZT1cInNlYXJjaFwiXSBcblx0LXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQgXG5cdG91dGxpbmUtb2Zmc2V0OiAtMnB4IFxuXG5bdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiBcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lXG5cblxuOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiBcblx0LXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b24gXG5cdGZvbnQ6IGluaGVyaXQgXG5cbnVsXG5cdGFsbDogdW5zZXRcblx0ZGlzcGxheTogYmxvY2sgXG5saVxuXHRsaXN0LXN0eWxlLXR5cGU6IG5vbmVcblxuIiwidXNlKCcuLi9ub2Rlcy92ZW5kb3ItaGVscGVycy5qcycpXG5AaW1wb3J0ICdjb25maWcnXG5cbi8qXG4gKiBBbGlhcyBcIm5vd3JhcFwiIGFzIFwibm8td3JhcFwiLlxuICovXG5cbm5vLXdyYXAgPSB1bnF1b3RlKCdub3dyYXAnKVxuXG4vKlxuICogSGVscGVyIHRvIGZpbmQgb3V0IGlmIGEgZ2l2ZW4gdmFsdWUgaXMgYSB3aWR0aFxuICovXG5cbmlzLXdpZHRoKHZhbClcbiAgaWYgYXV0byA9PSB2YWxcbiAgICByZXR1cm4gdHJ1ZVxuICBlbHNlIGlmIHZhbCAmJiAndW5pdCcgPT0gdHlwZSh2YWwpXG4gICAgLy8gU3R5bHVzIGRvZXMgbm90IHNob3J0IGNpcmN1aXQgc28gd2UgbmVlZCB0byBwZXJmb3JtIHRoaXMgYXMgYSBkaXN0aW5jdFxuICAgIC8vIG9wZXJhdGlvbiB0byBwcmV2ZW50IGVycm9yc1xuICAgIHJldHVybiAnJyAhPSB1bml0KHZhbClcbiAgcmV0dXJuIGZhbHNlXG5cbi8qXG4gKiBWZW5kb3Igc3VwcG9ydCBmb3IgdGhlIGdpdmVuIHByb3AgLyBhcmd1bWVudHMsIG9wdGlvbmFsbHkgc3BlY2lmeWluZyB0aGVcbiAqIG9ubHkgcHJlZml4ZXMgdG8gdXRpbGl6ZSwgb3IgdGhvc2Ugd2hpY2ggc2hvdWxkIGJlIGlnbm9yZWQuXG4gKi9cblxudmVuZG9yKHByb3AsIGFyZ3MsIG9ubHkgPSBudWxsLCBpZ25vcmUgPSBudWxsLCB2ZW5kb3ItcHJvcGVydHkgPSB0cnVlKVxuICBuZWVkX25vcm1hbGl6ZSA9ICF2ZW5kb3ItcHJvcGVydHkgb3IgcHJvcCBpbiAoJ3RyYW5zaXRpb24nICd0cmFuc2l0aW9uLXByb3BlcnR5JyAnYm9yZGVyLWltYWdlJyAnYm9yZGVyLWltYWdlLXNsaWNlJylcbiAgZm9yIHByZWZpeCBpbiB2ZW5kb3ItcHJlZml4ZXNcbiAgICB1bmxlc3MgKG9ubHkgYW5kICEocHJlZml4IGluIG9ubHkpKSBvciAoaWdub3JlIGFuZCBwcmVmaXggaW4gaWdub3JlKVxuICAgICAgaWYgb2ZmaWNpYWwgPT0gcHJlZml4XG4gICAgICAgIGlmIG5lZWRfbm9ybWFsaXplXG4gICAgICAgICAge3Byb3B9OiBub3JtYWxpemUocHJvcCwoJyVzJyAlIGFyZ3MpKVxuICAgICAgICBlbHNlXG4gICAgICAgICAge3Byb3B9OiBhcmdzXG4gICAgICBlbHNlXG4gICAgICAgIG5ld3Byb3AgPSBwcm9wXG4gICAgICAgIG5ld3Byb3AgPSAnLScgKyBwcmVmaXggKyAnLScgKyBwcm9wIGlmIHZlbmRvci1wcm9wZXJ0eVxuXG4gICAgICAgIGlmIG5lZWRfbm9ybWFsaXplXG4gICAgICAgICAge25ld3Byb3B9OiBub3JtYWxpemUocHJvcCwoJyVzJyAlIGFyZ3MpLHByZWZpeClcbiAgICAgICAgZWxzZVxuICAgICAgICAgIHtuZXdwcm9wfTogYXJnc1xuLypcbiAqIFZlbmRvcml6ZSB0aGUgZ2l2ZW4gdmFsdWUuXG4gKi9cblxudmVuZG9yLXZhbHVlKGFyZywgb25seSA9IG51bGwsIGlnbm9yZSA9IG51bGwpXG4gIHByb3AgPSBjdXJyZW50LXByb3BlcnR5WzBdXG4gIGZvciBwcmVmaXggaW4gdmVuZG9yLXByZWZpeGVzXG4gICAgdW5sZXNzIChvbmx5IGFuZCAhKHByZWZpeCBpbiBvbmx5KSkgb3IgKGlnbm9yZSBhbmQgcHJlZml4IGluIGlnbm9yZSkgb3Igb2ZmaWNpYWwgPT0gcHJlZml4XG4gICAgICBhZGQtcHJvcGVydHkocHJvcCwgJy0lcy0lcycgJSAocHJlZml4IGFyZykpXG4gIGFyZ1xuXG4vKlxuICogVmVuZG9yIFwiYm94LXNoYWRvd1wiIHN1cHBvcnQuXG4gKi9cblxuYm94LXNoYWRvdygpXG4gIHZlbmRvcignYm94LXNoYWRvdycsIGFyZ3VtZW50cywgb25seTogd2Via2l0IG9mZmljaWFsKVxuXG4vKlxuICogVmVuZG9yIFwidXNlci1zZWxlY3RcIiBzdXBwb3J0LlxuICovXG5cbnVzZXItc2VsZWN0KClcbiAgdmVuZG9yKCd1c2VyLXNlbGVjdCcsIGFyZ3VtZW50cywgb25seTogd2Via2l0IG1veiBtcyBvZmZpY2lhbClcblxuLypcbiAqIFZlbmRvciBcImNvbHVtbi1jb3VudFwiIHN1cHBvcnQuXG4gKi9cblxuY29sdW1uLWNvdW50KClcbiAgdmVuZG9yKCdjb2x1bW4tY291bnQnLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBtb3ogb2ZmaWNpYWwpXG5cbi8qXG4gKiBWZW5kb3IgXCJjb2x1bW4tZ2FwXCIgc3VwcG9ydC5cbiAqL1xuXG5jb2x1bW4tZ2FwKClcbiAgdmVuZG9yKCdjb2x1bW4tZ2FwJywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgbW96IG9mZmljaWFsKVxuXG4vKlxuICogVmVuZG9yIFwiY29sdW1uLXJ1bGVcIiBzdXBwb3J0LlxuICovXG5cbmNvbHVtbi1ydWxlKClcbiAgdmVuZG9yKCdjb2x1bW4tcnVsZScsIGFyZ3VtZW50cywgb25seTogd2Via2l0IG1veiBvZmZpY2lhbClcblxuLypcbiAqIFZlbmRvciBcImNvbHVtbi1ydWxlLWNvbG9yXCIgc3VwcG9ydC5cbiAqL1xuXG5jb2x1bW4tcnVsZS1jb2xvcigpXG4gIHZlbmRvcignY29sdW1uLXJ1bGUtY29sb3InLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBtb3ogb2ZmaWNpYWwpXG5cbi8qXG4gKiBWZW5kb3IgXCJjb2x1bW4tcnVsZS13aWR0aFwiIHN1cHBvcnQuXG4gKi9cblxuY29sdW1uLXJ1bGUtd2lkdGgoKVxuICB2ZW5kb3IoJ2NvbHVtbi1ydWxlLXdpZHRoJywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgbW96IG9mZmljaWFsKVxuXG4vKlxuICogVmVuZG9yIFwiY29sdW1uLXJ1bGUtc3R5bGVcIiBzdXBwb3J0LlxuICovXG5cbmNvbHVtbi1ydWxlLXN0eWxlKClcbiAgdmVuZG9yKCdjb2x1bW4tcnVsZS1zdHlsZScsIGFyZ3VtZW50cywgb25seTogd2Via2l0IG1veiBvZmZpY2lhbClcblxuLypcbiAqIFZlbmRvciBcImNvbHVtbi13aWR0aFwiIHN1cHBvcnQuXG4gKi9cblxuY29sdW1uLXdpZHRoKClcbiAgdmVuZG9yKCdjb2x1bW4td2lkdGgnLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBtb3ogb2ZmaWNpYWwpXG5cbi8qXG4gKiBWZW5kb3IgXCJjb2x1bW4tc3BhblwiIHN1cHBvcnQuXG4gKi9cblxuY29sdW1uLXNwYW4oKVxuICB2ZW5kb3IoJ2NvbHVtbi1zcGFuJywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgb2ZmaWNpYWwpXG5cbi8qXG4gKiBWZW5kb3IgXCJjb2x1bW4tZmlsbFwiIHN1cHBvcnQuXG4gKi9cblxuY29sdW1uLWZpbGwoKVxuICB2ZW5kb3IoJ2NvbHVtbi1maWxsJywgYXJndW1lbnRzLCBvbmx5OiBtb3ogb2ZmaWNpYWwpXG5cbi8qXG4gKiBMZWdhY3kgc3ludGF4IHN1cHBvcnQgZm9yIGJhY2tncm91bmQtY2xpcCBhbmQgYmFja2dyb3VuZC1vcmlnaW5cbiAqL1xuXG5sZWdhY3ktYmctdmFsdWVzKHByb3BlcnR5LCBhcmdzKVxuICBsZWdhY3lfYXJncyA9ICgpXG4gIGltcG9ydGFuY2UgPSB1bnF1b3RlKCcnKVxuICBmb3Igc3ViYXJncyBpbiBhcmdzXG4gICAgZm9yIGFyZyBpbiBzdWJhcmdzXG4gICAgICBpZiBhcmcgaW4gKGJvcmRlci1ib3ggcGFkZGluZy1ib3ggY29udGVudC1ib3gpXG4gICAgICAgIGFyZyA9IHVucXVvdGUoJ2JvcmRlcicpICBpZiBhcmcgPT0gYm9yZGVyLWJveFxuICAgICAgICBhcmcgPSB1bnF1b3RlKCdwYWRkaW5nJykgaWYgYXJnID09IHBhZGRpbmctYm94XG4gICAgICAgIGFyZyA9IHVucXVvdGUoJ2NvbnRlbnQnKSBpZiBhcmcgPT0gY29udGVudC1ib3hcbiAgICAgIGlmIGFyZyAhPSAnIWltcG9ydGFudCdcbiAgICAgICAgcHVzaChsZWdhY3lfYXJncyxhcmcpXG4gICAgICBlbHNlXG4gICAgICAgIGltcG9ydGFuY2UgPSAhaW1wb3J0YW50XG4gIHZlbmRvcihwcm9wZXJ0eSwgdW5xdW90ZShqb2luKCcsICcsbGVnYWN5X2FyZ3MpKSBpbXBvcnRhbmNlLCBvbmx5OiBtb3ogd2Via2l0KVxuXG4vKlxuICogVmVuZG9yIFwiYmFja2dyb3VuZC1jbGlwXCIgc3VwcG9ydC5cbiAqL1xuXG5iYWNrZ3JvdW5kLWNsaXAoKVxuICBpZiBhcmd1bWVudHNbMF0gPT0gdGV4dFxuICAgIHZlbmRvcignYmFja2dyb3VuZC1jbGlwJywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQpXG4gIGVsc2VcbiAgICBsZWdhY3ktYmctdmFsdWVzKCdiYWNrZ3JvdW5kLWNsaXAnLCBhcmd1bWVudHMpXG4gICAgYmFja2dyb3VuZC1jbGlwOiBhcmd1bWVudHNcblxuLypcbiAqIFZlbmRvciBcImJhY2tncm91bmQtb3JpZ2luXCIgc3VwcG9ydC5cbiAqL1xuXG5iYWNrZ3JvdW5kLW9yaWdpbigpXG4gIGxlZ2FjeS1iZy12YWx1ZXMoJ2JhY2tncm91bmQtb3JpZ2luJywgYXJndW1lbnRzKVxuICBiYWNrZ3JvdW5kLW9yaWdpbjogYXJndW1lbnRzXG5cbi8qXG4gKiBWZW5kb3IgXCJ0cmFuc2Zvcm1cIiBzdXBwb3J0LlxuICovXG5cbnRyYW5zZm9ybSgpXG4gIHZlbmRvcigndHJhbnNmb3JtJywgYXJndW1lbnRzKVxuXG4vKlxuICogVmVuZG9yIFwidHJhbnNmb3JtLW9yaWdpblwiIHN1cHBvcnQuXG4gKi9cbnRyYW5zZm9ybS1vcmlnaW4oKVxuICAgIHZlbmRvcigndHJhbnNmb3JtLW9yaWdpbicsIGFyZ3VtZW50cylcblxuLypcbiAqIFZlbmRvciBcInRyYW5zZm9ybS1zdHlsZVwiIHN1cHBvcnQuXG4gKi9cblxudHJhbnNmb3JtLXN0eWxlKClcbiAgdmVuZG9yKCd0cmFuc2Zvcm0tc3R5bGUnLCBhcmd1bWVudHMpXG5cbi8qXG4gKiBWZW5kb3IgXCJib3JkZXItaW1hZ2VcIiBzdXBwb3J0LlxuICovXG5cbmJvcmRlci1pbWFnZSgpXG4gIHZlbmRvcignYm9yZGVyLWltYWdlJywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgbW96IG8gb2ZmaWNpYWwpXG5cbi8qXG4gKiBWZW5kb3IgXCJ0cmFuc2l0aW9uXCIgc3VwcG9ydC5cbiAqL1xuXG50cmFuc2l0aW9uKClcbiAgdmVuZG9yKCd0cmFuc2l0aW9uJywgYXJndW1lbnRzKVxuXG4vKlxuICogVmVuZG9yIFwidHJhbnNpdGlvbi1wcm9wZXJ0eVwiIHN1cHBvcnQuXG4gKi9cblxudHJhbnNpdGlvbi1wcm9wZXJ0eSgpXG4gIHZlbmRvcigndHJhbnNpdGlvbi1wcm9wZXJ0eScsIGFyZ3VtZW50cylcblxuLypcbiAqIFZlbmRvciBcInRyYW5zaXRpb24tZHVyYXRpb25cIiBzdXBwb3J0LlxuICovXG5cbnRyYW5zaXRpb24tZHVyYXRpb24oKVxuICB2ZW5kb3IoJ3RyYW5zaXRpb24tZHVyYXRpb24nLCBhcmd1bWVudHMpXG5cbi8qXG4gKiBWZW5kb3IgXCJ0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvblwiIHN1cHBvcnQuXG4gKi9cblxudHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24oKVxuICB2ZW5kb3IoJ3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uJywgYXJndW1lbnRzKVxuXG4vKlxuICogVmVuZG9yIFwidHJhbnNpdGlvbi1kZWxheVwiIHN1cHBvcnQuXG4gKi9cblxudHJhbnNpdGlvbi1kZWxheSgpXG4gIHZlbmRvcigndHJhbnNpdGlvbi1kZWxheScsIGFyZ3VtZW50cylcblxuLypcbiAqIFZlbmRvciBcImJhY2tmYWNlLXZpc2liaWxpdHlcIiBzdXBwb3J0LlxuICovXG5cbmJhY2tmYWNlLXZpc2liaWxpdHkoKVxuICB2ZW5kb3IoJ2JhY2tmYWNlLXZpc2liaWxpdHknLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBtb3ogbXMgb2ZmaWNpYWwpXG5cbi8qXG4gKiBWZW5kb3IgXCJwZXJzcGVjdGl2ZVwiIHN1cHBvcnQuXG4gKi9cblxucGVyc3BlY3RpdmUoKVxuICBpZiBtaXhpblxuICAgIHZlbmRvcigncGVyc3BlY3RpdmUnLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBtb3ogbXMgb2ZmaWNpYWwpXG4gIGVsc2VcbiAgICAncGVyc3BlY3RpdmUoJXMpJyAlIGFyZ3VtZW50c1xuXG4vKlxuICogVmVuZG9yIFwicGVyc3BlY3RpdmUtb3JpZ2luXCIgc3VwcG9ydC5cbiAqL1xuXG5wZXJzcGVjdGl2ZS1vcmlnaW4oKVxuICB2ZW5kb3IoJ3BlcnNwZWN0aXZlLW9yaWdpbicsIGFyZ3VtZW50cywgb25seTogd2Via2l0IG1veiBtcyBvZmZpY2lhbClcblxuLypcbiAqIE9wYWNpdHkgd2l0aCBjb25kaXRpb25hbCBJRSBzdXBwb3J0LlxuICovXG5cbm9wYWNpdHkobiwgYXJncy4uLilcbiAgb3BhY2l0eTogbiBhcmdzXG4gIGlmIHN1cHBvcnQtZm9yLWllXG4gICAgaWYgbiA9PSBpbmhlcml0IG9yIG4gPT0gaW5pdGlhbFxuICAgICAgLW1zLWZpbHRlcjogbiBhcmdzXG4gICAgICBmaWx0ZXI6IG4gYXJnc1xuICAgIGVsc2VcbiAgICAgIHZhbCA9IHJvdW5kKG4gKiAxMDApXG4gICAgICBpZiB2YWwgPT0gMTAwXG4gICAgICAgIC1tcy1maWx0ZXI6IG5vbmUgYXJnc1xuICAgICAgICBmaWx0ZXI6IG5vbmUgYXJnc1xuICAgICAgZWxzZVxuICAgICAgICAtbXMtZmlsdGVyOiAnXCJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGEoT3BhY2l0eT0lcylcIicgJSB2YWwgYXJnc1xuICAgICAgICBmaWx0ZXI6ICdhbHBoYShvcGFjaXR5PSVzKScgJSB2YWwgYXJnc1xuXG4vKlxuICogVmVuZG9yIFwidGV4dC1zaXplLWFkanVzdFwiXG4gKi9cblxudGV4dC1zaXplLWFkanVzdCgpXG4gIHZlbmRvcigndGV4dC1zaXplLWFkanVzdCcsIGFyZ3VtZW50cylcblxuLypcbiAqIEFsaWFzIHRoZSBcIndoaXRlLXNwYWNlXCIgcHJvcGVydHkuXG4gKi9cblxud2hpdGVzcGFjZSgpXG4gIHdoaXRlLXNwYWNlOiBhcmd1bWVudHNcblxuLypcbiAqIFZlbmRvciBcImJveC1zaXppbmdcIiBzdXBwb3J0LlxuICovXG5cbmJveC1zaXppbmcoKVxuICB2ZW5kb3IoJ2JveC1zaXppbmcnLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBtb3ogb2ZmaWNpYWwpXG5cbi8qXG4gKiBWZW5kb3IgXCJib3gtb3JpZW50XCIgc3VwcG9ydC5cbiAqL1xuXG5ib3gtb3JpZW50KClcbiAgdmVuZG9yKCdib3gtb3JpZW50JywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgbW96IG9mZmljaWFsKVxuXG4vKlxuICogVmVuZG9yIFwiYm94LWZsZXgtZ3JvdXBcIiBzdXBwb3J0LlxuICovXG5cbmJveC1mbGV4LWdyb3VwKClcbiAgdmVuZG9yKCdib3gtZmxleC1ncm91cCcsIGFyZ3VtZW50cywgb25seTogd2Via2l0IG1veiBvZmZpY2lhbClcblxuLypcbiAqIFZlbmRvciBcImJveC1vcmRpbmFsLWdyb3VwXCIgc3VwcG9ydC5cbiAqL1xuXG5ib3gtb3JkaW5hbC1ncm91cCgpXG4gIHZlbmRvcignYm94LW9yZGluYWwtZ3JvdXAnLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBtb3ogbXMgb2ZmaWNpYWwpXG5cblxuLypcbiAqIFZlbmRvciBcImJveC1hbGlnblwiIHN1cHBvcnQuXG4gKi9cblxuYm94LWFsaWduKClcbiAgdmVuZG9yKCdib3gtYWxpZ24nLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBtb3ogbXMgb2ZmaWNpYWwpXG5cbi8qXG4gKiBWZW5kb3IgXCJib3gtcGFja1wiIHN1cHBvcnQuXG4gKi9cblxuYm94LXBhY2soKVxuICB2ZW5kb3IoJ2JveC1wYWNrJywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgbW96IG1zIG9mZmljaWFsKVxuXG4vKlxuICogVmVuZG9yIFwiYm94LWRpcmVjdGlvblwiIHN1cHBvcnQuXG4gKi9cblxuYm94LWRpcmVjdGlvbigpXG4gIHZlbmRvcignYm94LWRpcmVjdGlvbicsIGFyZ3VtZW50cywgb25seTogd2Via2l0IG1veiBtcyBvZmZpY2lhbClcblxuLypcbiAqIFZlbmRvciBcImFuaW1hdGlvblwiIHN1cHBvcnQuXG4gKi9cblxuYW5pbWF0aW9uKClcbiAgdmVuZG9yKCdhbmltYXRpb24nLCBhcmd1bWVudHMpXG5cblxuLypcbiAqIFZlbmRvciBcImFuaW1hdGlvbi1uYW1lXCIgc3VwcG9ydC5cbiAqL1xuXG5hbmltYXRpb24tbmFtZSgpXG4gIHZlbmRvcignYW5pbWF0aW9uLW5hbWUnLCBhcmd1bWVudHMpXG5cbi8qXG4gKiBWZW5kb3IgXCJhbmltYXRpb24tZHVyYXRpb25cIiBzdXBwb3J0LlxuICovXG5cbmFuaW1hdGlvbi1kdXJhdGlvbigpXG4gIHZlbmRvcignYW5pbWF0aW9uLWR1cmF0aW9uJywgYXJndW1lbnRzKVxuXG4vKlxuICogVmVuZG9yIFwiYW5pbWF0aW9uLWRlbGF5XCIgc3VwcG9ydC5cbiAqL1xuXG5hbmltYXRpb24tZGVsYXkoKVxuICB2ZW5kb3IoJ2FuaW1hdGlvbi1kZWxheScsIGFyZ3VtZW50cylcblxuLypcbiAqIFZlbmRvciBcImFuaW1hdGlvbi1kaXJlY3Rpb25cIiBzdXBwb3J0LlxuICovXG5cbmFuaW1hdGlvbi1kaXJlY3Rpb24oKVxuICB2ZW5kb3IoJ2FuaW1hdGlvbi1kaXJlY3Rpb24nLCBhcmd1bWVudHMpXG5cbi8qXG4gKiBWZW5kb3IgXCJhbmltYXRpb24taXRlcmF0aW9uLWNvdW50XCIgc3VwcG9ydC5cbiAqL1xuXG5hbmltYXRpb24taXRlcmF0aW9uLWNvdW50KClcbiAgdmVuZG9yKCdhbmltYXRpb24taXRlcmF0aW9uLWNvdW50JywgYXJndW1lbnRzKVxuXG4vKlxuICogVmVuZG9yIFwiYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvblwiIHN1cHBvcnQuXG4gKi9cblxuYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbigpXG4gIHZlbmRvcignYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbicsIGFyZ3VtZW50cylcblxuLypcbiAqIFZlbmRvciBcImFuaW1hdGlvbi1wbGF5LXN0YXRlXCIgc3VwcG9ydC5cbiAqL1xuXG5hbmltYXRpb24tcGxheS1zdGF0ZSgpXG4gIHZlbmRvcignYW5pbWF0aW9uLXBsYXktc3RhdGUnLCBhcmd1bWVudHMpXG5cbi8qXG4gKiBWZW5kb3IgXCJhbmltYXRpb24tZmlsbC1tb2RlXCIgc3VwcG9ydC5cbiAqL1xuXG5hbmltYXRpb24tZmlsbC1tb2RlKClcbiAgdmVuZG9yKCdhbmltYXRpb24tZmlsbC1tb2RlJywgYXJndW1lbnRzKVxuXG4vKlxuICogVmVuZG9yIFwiaHlwaGVuc1wiIHN1cHBvcnQuXG4gKi9cblxuaHlwaGVucygpXG4gIHZlbmRvcignaHlwaGVucycsIGFyZ3VtZW50cywgb25seTogd2Via2l0IG1veiBtcyBvZmZpY2lhbClcblxuLypcbiAqIFZlbmRvciBcImFwcGVhcmFuY2VcIiBzdXBwb3J0LlxuICovXG5cbmFwcGVhcmFuY2UoKVxuICB2ZW5kb3IoJ2FwcGVhcmFuY2UnLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBtb3ogb2ZmaWNpYWwpXG5cbi8qXG4gKiBWZW5kb3IgXCJ0YWItc2l6ZVwiIHN1cHBvcnQuXG4gKi9cblxudGFiLXNpemUoKVxuICB2ZW5kb3IoJ3RhYi1zaXplJywgYXJndW1lbnRzLCBvbmx5OiBtb3ogbyBvZmZpY2lhbClcblxuLypcbiAqIFZlbmRvciBcIm92ZXJmbG93LXNjcm9sbGluZ1wiIHN1cHBvcnQuXG4gKi9cblxub3ZlcmZsb3ctc2Nyb2xsaW5nKClcbiAgdmVuZG9yKCdvdmVyZmxvdy1zY3JvbGxpbmcnLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBvZmZpY2lhbClcblxuLypcbiAqIFZlbmRvciBcInRleHQtb3ZlcmZsb3dcIiBzdXBwb3J0LCAsIC1vLSBmb3Igb3BlcmEgOS4qIC0gMTAuKlxuICovXG5cbnRleHQtb3ZlcmZsb3coKVxuICB2ZW5kb3IoJ3RleHQtb3ZlcmZsb3cnLCBhcmd1bWVudHMsIG9ubHk6IG9mZmljaWFsIG8pXG5cbi8qXG4gKiBWZW5kb3IgXCJ0ZXh0LXNpemUtYWRqdXN0XCIgc3VwcG9ydC5cbiAqL1xudGV4dC1zaXplLWFkanVzdCgpXG4gIHZlbmRvcigndGV4dC1zaXplLWFkanVzdCcsIGFyZ3VtZW50cywgb25seTogb2ZmaWNpYWwgd2Via2l0IG1zKVxuXG4vKlxuICogVmVuZG9yIFwiZm9udC1zbW9vdGhpbmdcIiBzdXBwb3J0LCB3ZWJraXQgb25seS5cbiAqL1xuZm9udC1zbW9vdGhpbmcoKVxuICB2ZW5kb3IoJ2ZvbnQtc21vb3RoaW5nJywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQpXG5cblxuLyoqXG4gKiBWZW5kb3IgaW5wdXQtcGxhY2Vob2xkZXIvcGxhY2Vob2xkZXIgc3VwcG9ydC5cbiAqXG4gKiBFeGFtcGxlczpcbiAqICAgIC8vIERlZmF1bHQgc3ludGF4XG4gKiAgICBib2R5XG4gKiAgICAgIHBsYWNlaG9sZGVyKGNvbG9yICMzMzMsIGZvbnQtd2VpZ2h0IG5vcm1hbClcbiAqXG4gKiAgICAvLyBUaGUgY29tbWEgaXMgaW1wb3J0YW50XG4gKiAgICAucGxhY2Vob2xkZXItcmVkXG4gKiAgICAgIHBsYWNlaG9sZGVyKGNvbG9yIHJlZCwpXG4gKlxuICogICAgLy8gV2UgY2FuIHBhc3MgYSBmdW5jdGlvblxuICogICAgZ3JlZW4tcGxhY2Vob2xkZXIoKVxuICogICAgICBjb2xvciBncmVlblxuICogICAgLnBsYWNlaG9sZGVyLWdyZWVuXG4gKiAgICAgIHBsYWNlaG9sZGVyKGdyZWVuLXBsYWNlaG9sZGVyKVxuICpcbiAqICAgIC8vIFdlIGNhbiBwYXNzIGEgaGFzaFxuICogICAgdGV4dGFyZWFcbiAqICAgICAgcGxhY2Vob2xkZXIoKGZvbnQtc3R5bGUgaXRhbGljKSAoZm9udC13ZWlnaHQgYm9sZCkgKHBhZGRpbmcgJzRweCAxMHB4JykpXG4gKi9cbnBsYWNlaG9sZGVyKClcbiAgZm9yIHYgaW4gJzotd2Via2l0LWlucHV0JyAnLW1veicgJzotbW96JyAnLW1zLWlucHV0J1xuICAgICY6e3Z9LXBsYWNlaG9sZGVyXG4gICAgICBmb3IgcGFpciBpbiBhcmd1bWVudHNcbiAgICAgICAgaWYgdHlwZW9mKHBhaXIpID09ICdmdW5jdGlvbidcbiAgICAgICAgICBwYWlyKClcbiAgICAgICAgZWxzZSBpZiBwYWlyIGlzIG5vdCBudWxsICYmIHBhaXJbMF0gaXMgbm90IG51bGxcbiAgICAgICAgICB7cGFpclswXX06IHR5cGUocGFpclsxXSkgPT0gJ3N0cmluZycgPyBzKHBhaXJbMV0pIDogcGFpclsxXVxuaW5wdXQtcGxhY2Vob2xkZXIgPSBwbGFjZWhvbGRlclxuXG4vKlxuICogVmVuZG9yIGJhY2tncm91bmQgc3VwcG9ydCAoZ3JhZGllbnRzKS5cbiAqL1xuXG5iYWNrZ3JvdW5kKClcbiAgaWYgbWF0Y2goJy1ncmFkaWVudFxcKCcsICcnK2FyZ3VtZW50cylcbiAgICB2ZW5kb3IoJ2JhY2tncm91bmQnLCBhcmd1bWVudHMsIHZlbmRvci1wcm9wZXJ0eTogZmFsc2UpXG4gIGVsc2VcbiAgICBiYWNrZ3JvdW5kIGFyZ3VtZW50c1xuXG5iYWNrZ3JvdW5kLWltYWdlKClcbiAgaWYgbWF0Y2goJy1ncmFkaWVudFxcKCcsICcnK2FyZ3VtZW50cylcbiAgICB2ZW5kb3IoJ2JhY2tncm91bmQtaW1hZ2UnLCBhcmd1bWVudHMsIHZlbmRvci1wcm9wZXJ0eTogZmFsc2UpXG4gIGVsc2VcbiAgICBiYWNrZ3JvdW5kLWltYWdlIGFyZ3VtZW50c1xuXG5jdXJzb3IoKVxuICBpZiBtYXRjaCgnLWdyYWRpZW50XFwoJywgJycrYXJndW1lbnRzKVxuICAgIHZlbmRvcignY3Vyc29yJywgYXJndW1lbnRzLCB2ZW5kb3ItcHJvcGVydHk6IGZhbHNlKVxuICBlbHNlXG4gICAgY3Vyc29yIGFyZ3VtZW50c1xuXG5saXN0LXN0eWxlKClcbiAgaWYgbWF0Y2goJy1ncmFkaWVudFxcKCcsICcnK2FyZ3VtZW50cylcbiAgICB2ZW5kb3IoJ2xpc3Qtc3R5bGUnLCBhcmd1bWVudHMsIHZlbmRvci1wcm9wZXJ0eTogZmFsc2UpXG4gIGVsc2VcbiAgICBsaXN0LXN0eWxlIGFyZ3VtZW50c1xuXG5saXN0LXN0eWxlLWltYWdlKClcbiAgaWYgbWF0Y2goJy1ncmFkaWVudFxcKCcsICcnK2FyZ3VtZW50cylcbiAgICB2ZW5kb3IoJ2xpc3Qtc3R5bGUtaW1hZ2UnLCBhcmd1bWVudHMsIHZlbmRvci1wcm9wZXJ0eTogZmFsc2UpXG4gIGVsc2VcbiAgICBsaXN0LXN0eWxlLWltYWdlIGFyZ3VtZW50c1xuIiwiLypcbiAqIFZlbmRvciBcImRpc3BsYXk6IGZsZXhcIiBzdXBwb3J0IHdpdGggZmFsbGJhY2sgdG8gb2Jzb2xldGUgdmVyc2lvbnMuXG4gKi9cblxuZmxleC12ZXJzaW9uID89IGJveCBmbGV4XG5cbi8vXG4vLyAxLiBEaXNwbGF5IHZhbHVlc1xuLy8gICAgLSBodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLWZsZXhib3gvI2ZsZXgtY29udGFpbmVyc1xuLy9cbmRpc3BsYXkodHlwZSwgYXJncy4uLilcbiAgaWYgZmxleCA9PSB0eXBlIHx8IGlubGluZS1mbGV4ID09IHR5cGVcbiAgICBpZiBib3ggaW4gZmxleC12ZXJzaW9uXG4gICAgICBpZiBmbGV4ID09IHR5cGVcbiAgICAgICAgZGlzcGxheTogLW1zLWZsZXhib3ggYXJnc1xuICAgICAgICBkaXNwbGF5OiB2ZW5kb3ItdmFsdWUoYm94IGFyZ3MsIG9ubHk6IG1veiB3ZWJraXQpXG4gICAgICBlbHNlXG4gICAgICAgIGRpc3BsYXk6IC1tcy1pbmxpbmUtZmxleGJveCBhcmdzXG4gICAgICAgIGRpc3BsYXk6IHZlbmRvci12YWx1ZShpbmxpbmUtYm94IGFyZ3MsIG9ubHk6IG1veiB3ZWJraXQpXG4gICAgaWYgZmxleCBpbiBmbGV4LXZlcnNpb25cbiAgICAgIGRpc3BsYXk6IHZlbmRvci12YWx1ZShhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBvZmZpY2lhbCkgLy8gb3ZlcndyaXRlcyBvbGQgd2Via2l0XG4gIGVsc2VcbiAgICBkaXNwbGF5OiBhcmd1bWVudHNcblxuLypcbiAqIE5ldyBzeW50YXggZm9yIGJyb3dzZXJzIGxpa2UgR29vZ2xlIENocm9tZS5cbiAqIFBsdXMgYSB0cmFuc2xhdGlvbiB0byB0aGUgb2xkIHN5bnRheCwgaWYgcG9zc2libGUuXG4gKi9cblxuXG4vL1xuLy8gNS4gT3JkZXJpbmcgYW5kIE9yaWVudGF0aW9uXG4vLyAgICAtIGh0dHA6Ly93d3cudzMub3JnL1RSL2NzczMtZmxleGJveC8jb3JkZXJpbmctYW5kLW9yaWVudGF0aW9uXG4vL1xuLWZsZXgtb2Jzb2xldGUtZGlyZWN0aW9uKGRpcmVjdGlvbilcbiAgaWYgYm94IGluIGZsZXgtdmVyc2lvblxuICAgIGlmIHJvdy1yZXZlcnNlID09IGRpcmVjdGlvbiB8fCBjb2x1bW4tcmV2ZXJzZSA9PSBkaXJlY3Rpb25cbiAgICAgIHZlbmRvcignYm94LWRpcmVjdGlvbicsIHJldmVyc2UsIGlnbm9yZTogbXMgb2ZmaWNpYWwpXG5cbiAgICBpZiByb3cgPT0gZGlyZWN0aW9uIHx8IHJvdy1yZXZlcnNlID09IGRpcmVjdGlvblxuICAgICAgdmVuZG9yKCdib3gtb3JpZW50JywgaG9yaXpvbnRhbCwgaWdub3JlOiBtcyBvZmZpY2lhbClcbiAgICBlbHNlIGlmIGNvbHVtbiA9PSBkaXJlY3Rpb24gfHwgY29sdW1uLXJldmVyc2UgPT0gZGlyZWN0aW9uXG4gICAgICB2ZW5kb3IoJ2JveC1vcmllbnQnLCB2ZXJ0aWNhbCwgaWdub3JlOiBtcyBvZmZpY2lhbClcblxuLWZsZXgtb2Jzb2xldGUtd3JhcCh2YWx1ZSlcbiAgaWYgYm94IGluIGZsZXgtdmVyc2lvblxuICAgIC8vIFdBUk46IHdyYXAtcmV2ZXJzZSBkb2VzIG5vdCBoYXZlIGEgYm94IGVxdWl2YWxlbnQuIFRoaXMgd2lsbCByZW5kZXIgaW4gZGlmZmVyZW50IG1hbm5lcnNcbiAgICAvLyAgICBvbiBib3ggdnMuIGZsZXggdmFsdWVzLlxuICAgIGlmICd3cmFwJyA9PSB2YWx1ZSB8fCB3cmFwLXJldmVyc2UgPT0gdmFsdWVcbiAgICAgIHZlbmRvcignYm94LWxpbmVzJywgbXVsdGlwbGUsIGlnbm9yZTogbXMgb2ZmaWNpYWwpXG4gICAgZWxzZSBpZiBub3dyYXAgPT0gdmFsdWVcbiAgICAgIHZlbmRvcignYm94LWxpbmVzJywgc2luZ2xlLCBpZ25vcmU6IG1zIG9mZmljaWFsKVxuXG5mbGV4LWRpcmVjdGlvbihkaXJlY3Rpb24pXG4gIC8vIG9ic29sZXRlXG4gIC1mbGV4LW9ic29sZXRlLWRpcmVjdGlvbihkaXJlY3Rpb24pXG5cbiAgLy8gbmV3XG4gIGlmIGZsZXggaW4gZmxleC12ZXJzaW9uXG4gICAgdmVuZG9yKCdmbGV4LWRpcmVjdGlvbicsIGFyZ3VtZW50cywgb25seTogd2Via2l0IG1zIG9mZmljaWFsKVxuXG5mbGV4LXdyYXAodmFsdWUpXG4gIC8vIG9ic29sZXRlXG4gIC1mbGV4LW9ic29sZXRlLXdyYXAodmFsdWUpXG5cbiAgaWYgZmxleCBpbiBmbGV4LXZlcnNpb25cbiAgICB2ZW5kb3IoJ2ZsZXgtd3JhcCcsIGFyZ3VtZW50cywgb25seTogd2Via2l0IG1zIG9mZmljaWFsKVxuXG5mbGV4LWZsb3coKVxuICAvLyBvYnNvbGV0ZVxuICAtZmxleC1vYnNvbGV0ZS1kaXJlY3Rpb24oYXJndW1lbnRzWzBdKVxuICAtZmxleC1vYnNvbGV0ZS1kaXJlY3Rpb24oYXJndW1lbnRzWzFdKVxuICAtZmxleC1vYnNvbGV0ZS13cmFwKGFyZ3VtZW50c1swXSlcbiAgLWZsZXgtb2Jzb2xldGUtd3JhcChhcmd1bWVudHNbMV0pXG5cbiAgLy8gbmV3XG4gIGlmIGZsZXggaW4gZmxleC12ZXJzaW9uXG4gICAgdmVuZG9yKCdmbGV4LWZsb3cnLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBtcyBvZmZpY2lhbClcblxuXG5vcmRlcigpXG4gIC8vIG9ic29sZXRlXG4gIGlmIGJveCBpbiBmbGV4LXZlcnNpb25cbiAgICB2ZW5kb3IoJ2JveC1vcmRpbmFsLWdyb3VwJywgYXJndW1lbnRzLCBpZ25vcmU6IG1zIG9mZmljaWFsKVxuXG4gIC8vIG5ld1xuICBpZiBmbGV4IGluIGZsZXgtdmVyc2lvblxuICAgIHZlbmRvcignZmxleC1vcmRlcicsIGFyZ3VtZW50cywgb25seTogbXMpXG4gICAgdmVuZG9yKCdvcmRlcicsIGFyZ3VtZW50cywgb25seTogd2Via2l0IG9mZmljaWFsKVxuXG5cbi8vXG4vLyA3LiBGbGV4aWJpbGl0eVxuLy8gICAgLSBodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLWZsZXhib3gvI2ZsZXhpYmlsaXR5XG4vL1xuZmxleC1ncm93KGdyb3d0aClcbiAgLy8gb2Jzb2xldGVcbiAgaWYgYm94IGluIGZsZXgtdmVyc2lvblxuICAgIHZlbmRvcignYm94LWZsZXgnLCBncm93dGgpXG5cbiAgLy8gbmV3XG4gIGlmIGZsZXggaW4gZmxleC12ZXJzaW9uXG4gICAgdmVuZG9yKCdmbGV4LWdyb3cnLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBvZmZpY2lhbClcblxuZmxleC1iYXNpcygpXG4gIGlmIGZsZXggaW4gZmxleC12ZXJzaW9uXG4gICAgdmVuZG9yKCdmbGV4LWJhc2lzJywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgb2ZmaWNpYWwpXG5cbmZsZXgtc2hyaW5rKClcbiAgaWYgZmxleCBpbiBmbGV4LXZlcnNpb25cbiAgICB2ZW5kb3IoJ2ZsZXgtc2hyaW5rJywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgb2ZmaWNpYWwpXG5cbmZsZXgoZ3Jvd3RoKVxuXG4gIC8vIG9ic29sZXRlXG4gIGlmIGJveCBpbiBmbGV4LXZlcnNpb25cbiAgICBzaHJpbmsgPSAxXG5cbiAgICBpZiBub25lID09IGdyb3d0aCB8fCBpbml0aWFsID09IGdyb3d0aFxuICAgICAgLy8gV2VsbCBrbm93biB2YWx1ZXNcbiAgICAgIHNocmluayA9IDAgaWYgbm9uZSA9PSBncm93dGhcbiAgICAgIGdyb3d0aCA9IDBcbiAgICBlbHNlIGlmIGlzLXdpZHRoKGdyb3d0aCkgPT0gdHJ1ZVxuICAgICAgLy8gQmFzaXMgaXMgZGVmaW5lZCBhcyB0aGUgZmlyc3QgcGFyYW1ldGVyXG4gICAgICBncm93dGggPSBhcmd1bWVudHNbMV0gfHwgMFxuICAgICAgc2hyaW5rID0gYXJndW1lbnRzWzJdIGlmIDMgPD0gbGVuZ3RoKGFyZ3VtZW50cylcbiAgICBlbHNlIGlmIGFyZ3VtZW50c1sxXSAmJiBpcy13aWR0aChhcmd1bWVudHNbMV0pID09IGZhbHNlXG4gICAgICAvLyBHcm93dGggaXMgZmlyc3QgYW5kIHNocmluayBpcyBzZWNvbmRcbiAgICAgIHNocmluayA9IGFyZ3VtZW50c1sxXVxuXG4gICAgLy8gU2luY2Ugd2UgY2FuJ3QgbWFrZSB0aGUgZGlzdGluY3Rpb24gYmV0d2VlbiBncm93aW5nIGFuZCBzaHJpbmtpbmcgaW4gdGhlIGJveCBtb2RlbCwgdGFrZVxuICAgIC8vIHRoZSBvbmUgdGhhdCBwcm92aWRlcyB0aGUgbW9zdCBmbGV4aWJpbGl0eS5cbiAgICB2ZW5kb3IoJ2JveC1mbGV4JywgbWF4KGdyb3d0aCwgc2hyaW5rKSwgaWdub3JlOiBtcylcblxuICAvLyBuZXdcbiAgaWYgZmxleCBpbiBmbGV4LXZlcnNpb25cbiAgICB2ZW5kb3IoJ2ZsZXgnLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBtcyBvZmZpY2lhbClcblxuXG4vLyBjb252ZXJ0cyB0aGUganVzdGlmaWNhdGlvbiBhbGlnbm1lbnRcbi1jb252ZXJ0LWp1c3RpZnkoYWxpZ24pXG4gIGlmIGZsZXgtc3RhcnQgPT0gYWxpZ25cbiAgICByZXR1cm4gc3RhcnRcbiAgZWxzZSBpZiBmbGV4LWVuZCA9PSBhbGlnblxuICAgIHJldHVybiBlbmRcbiAgZWxzZSBpZiBzcGFjZS1hcm91bmQgPT0gYWxpZ25cbiAgICByZXR1cm4gZGlzdHJpYnV0ZVxuICBlbHNlIGlmIHNwYWNlLWJldHdlZW4gPT0gYWxpZ25cbiAgICByZXR1cm4ganVzdGlmeVxuICBlbHNlXG4gICAgcmV0dXJuIGFsaWduXG5cbi8vXG4vLyA4LiBBbGlnbm1lbnRcbi8vICAgIC0gaHR0cDovL3d3dy53My5vcmcvVFIvY3NzMy1mbGV4Ym94LyNhbGlnbm1lbnRcbi8vXG5qdXN0aWZ5LWNvbnRlbnQoYWxpZ24pXG4gIC8vIG9ic29sZXRlXG4gIGlmIGJveCBpbiBmbGV4LXZlcnNpb25cbiAgICB2ZW5kb3IoJ2JveC1wYWNrJywgLWNvbnZlcnQtanVzdGlmeShhbGlnbiksIGlnbm9yZTogbXMgb2ZmaWNpYWwpXG5cbiAgLy8gbmV3XG4gIGlmIGZsZXggaW4gZmxleC12ZXJzaW9uXG4gICAgdmVuZG9yKCdmbGV4LXBhY2snLCAtY29udmVydC1qdXN0aWZ5KGFsaWduKSwgb25seTogbXMpXG4gICAgdmVuZG9yKCdqdXN0aWZ5LWNvbnRlbnQnLCBhbGlnbiwgb25seTogd2Via2l0IG9mZmljaWFsKVxuXG5hbGlnbi1jb250ZW50KGFsaWduKVxuICAvLyBXQVJOOiBPYnNvbGV0ZSBzcGVjIGRvZXMgbm90IGFsbG93IGZvciBhZGp1c3RtZW50IGhlcmVcbiAgaWYgZmxleCBpbiBmbGV4LXZlcnNpb25cbiAgICB2ZW5kb3IoJ2ZsZXgtbGluZS1wYWNrJywgLWNvbnZlcnQtanVzdGlmeShhbGlnbiksIG9ubHk6IG1zKVxuICAgIHZlbmRvcignYWxpZ24tY29udGVudCcsIGFsaWduLCBvbmx5OiB3ZWJraXQgb2ZmaWNpYWwpXG5cbi8vIGNvbnZlcnRzIGFsaWdubWVudCBmcm9tICdmbGV4JyB0byBub3JtYWwgdmFsdWVcbi1jb252ZXJ0LWFsaWdubWVudChhbGlnbilcbiAgaWYgZmxleC1zdGFydCA9PSBhbGlnblxuICAgIHJldHVybiBzdGFydFxuICBlbHNlIGlmIGZsZXgtZW5kID09IGFsaWduXG4gICAgcmV0dXJuIGVuZFxuICBlbHNlXG4gICAgcmV0dXJuIGFsaWduXG5cbmFsaWduLWl0ZW1zKGFsaWduKVxuICAvLyBvYnNvbGV0ZVxuICBpZiBib3ggaW4gZmxleC12ZXJzaW9uXG4gICAgdmVuZG9yKCdib3gtYWxpZ24nLCAtY29udmVydC1hbGlnbm1lbnQoYWxpZ24pLCBpZ25vcmU6IG1zIG9mZmljaWFsKVxuXG4gIC8vIG5ld1xuICBpZiBmbGV4IGluIGZsZXgtdmVyc2lvblxuICAgIHZlbmRvcignZmxleC1hbGlnbicsIC1jb252ZXJ0LWFsaWdubWVudChhbGlnbiksIG9ubHk6IG1zKVxuICAgIHZlbmRvcignYWxpZ24taXRlbXMnLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBvZmZpY2lhbClcblxuYWxpZ24tc2VsZihhbGlnbilcbiAgLy8gV0FSTjogT2Jzb2xldGUgc3BlYyBkb2VzIG5vdCBhbGxvdyBmb3Igb3ZlcnJpZGluZyBhbGlnbm1lbnQgb24gaW5kaXZpZHVhbCBpdGVtcy5cbiAgaWYgZmxleCBpbiBmbGV4LXZlcnNpb25cbiAgICB2ZW5kb3IoJ2FsaWduLXNlbGYnLCBhbGlnbiwgb25seTogd2Via2l0IG9mZmljaWFsKVxuICAgIHZlbmRvcignZmxleC1pdGVtLWFsaWduJywgLWNvbnZlcnQtYWxpZ25tZW50KGFsaWduKSwgb25seTogbXMpXG4iLCIvKlxuICogT3ZlcmZsb3cgdXRpbGl0eS4gTWFwcyB0byByZWd1bGFyIG92ZXJmbG93LCBhbmQgYWRkcyBhbiBlbGxpcHNpcyB2YWx1ZS5cbiAqXG4gKiBTeW5vcHNpczpcbiAqXG4gKiAgIG92ZXJmbG93OiA8dHlwZT5cbiAqXG4gKiBFeGFtcGxlczpcbiAqXG4gKiAgICAgb3ZlcmZsb3c6IGF1dG9cbiAqICAgICBvdmVyZmxvdzogaGlkZGVuXG4gKiAgICAgb3ZlcmZsb3c6IGVsbGlwc2lzXG4gKlxuICovXG5cbm92ZXJmbG93KClcbiAgaWYgYXJndW1lbnRzWzBdID09IGVsbGlwc2lzXG4gICAgZWxsaXBzaXMoKVxuICBlbHNlXG4gICAgb3ZlcmZsb3c6IGFyZ3VtZW50c1xuIiwiY29sb3JzID0ge1xuICAgIHByaW06ICNkNGFmMzcsXG4gICAgc2Vjb25kOiAjZmZmLFxuICAgIHNlY29uZF8yOiAjZTBlMGUwLFxuICAgIHNlY29uZF8zOiAjZjRlOGMxXG4gICAgZGFya195ZWw6I2ZmOTYwMCxcbiAgICB5ZWwzOiNmZmU2OTksXG4gICAgYmxjazojMGMwYjBiLFxuICAgIGJsY2tfMjojMWExYTFhLFxuICAgIGJsY2tfMzojMjUyNTI1LFxuICAgIHdoYXRzYXBwOiAjMjVEMzY2LFxuICAgIHRlbGVncmFtOiAjMjI5RUQ5LFxuICAgIHBob25lOiAjMjVkMjY2XG59XG5cbi8vINC30LDQt9C80LXRgNGLINC00LvRjyDQsNC00LDQv9GC0LDRhtC40Y8gXG4vLyDRiNGA0LjRhNGCINC+0L/RgNC10LTQtdC70Y/QtdGCINGB0L/QtdGG0LjQsNC70YzQvdGL0Lkg0LrQvtC0INCy0L3QuNC30YMgXG5mb250cyA9IHtcbiAgICBoZWFkZXI6ICdPc3dhbGQnXG4gICAgcHJpbTogJ01vbnRzZXJyYXQnIHNhbnMtc2VyaWZcbiAgICBpY29uOiBcImZvbnRlbGxvXCIgc2Fucy1zZXJpZlxufVxuXG4vLyDQvtC/0YDQtdC00LXQu9GP0LXQvCDQv9C10YDQtdC80LXQvdC90YvQuSAgXG46cm9vdFxuICAgIC8vINC+0L/RgNC10LTQtdC70Y/QtdC8INGG0LLQtdGC0LAgIFxuICAgIGZvciBuYW1lLCBjb2xvciBpbiBjb2xvcnMgXG4gICAgICAgIC0tbWFpbl97bmFtZX06Y29sb3JcbiAgICAgICAgLS1tYWluX2hleF97bmFtZX06IHVucXVvdGUoam9pbihcIiwgXCIsIHJlZChjb2xvcikgZ3JlZW4oY29sb3IpIGJsdWUoY29sb3IpKSlcbiAgICBcbiAgICAvLyDQvtC/0YDQtdC00LXQu9GP0LXQvCDRiNGA0LjRhNGCXG4gICAgZm9yIG5hbWUsIGZvbnQgaW4gZm9udHMgXG4gICAgICAgIC0tZm9udF97bmFtZX06Zm9udFxuXG4gICAgLS1zcGVlZDowNXNcbiAgICAtLWRlZ3JlZV9zZWM6MTM1ZGVnXG5cbi8vINC+0L/RgNC10LTQtdC70Y/QtdC8INGA0LDQt9C80LXRgNGLICBcbmV4dHJhTGFyZ2UgPSAxNDAwcHhcbmVsID0gZXh0cmFMYXJnZVxuXG5sYXJnZSA9IDEyMDBweFxubCA9IGxhcmdlXG5cbmRlc2t0b3AgPSAxMDI0cHhcbmQgPSBkZXNrdG9wXG5cbnRhYmxldCA9IDc2OHB4XG50ID0gdGFibGV0XG5cbm1vYmlsZSA9IDU2OHB4XG5tID0gbW9iaWxlXG5cbnNtYWxsTW9iaWxlID0gNDgwcHhcbnNtID0gc21hbGxNb2JpbGVcblxuZXh0cmFTbWFsbE1vYmlsZSA9IDM4MHB4XG5lc20gPSBleHRyYVNtYWxsTW9iaWxlXG5cbiIsImgxLCBoMiwgaDMsIGg0XHJcbiAgICBmb250LWZhbWlseTogZm50KGhlYWRlcilcclxuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgbGV0dGVyLXNwYWNpbmc6IDFweDtcclxuXHJcbmgxXHJcbiAgICBmb250LXNpemU6IDIuNWVtXHJcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoNDVkZWcsIGNscihwcmltKSwgY2xyKHNlY29uZF8zKSk7XHJcbiAgICAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogdGV4dDtcclxuICAgIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgIGJhY2tncm91bmQtY2xpcDogdGV4dDtcclxuXHJcbmgyXHJcbiAgICBmb250LXNpemU6IDIuMmVtXHJcbiAgICBtYXJnaW4tYm90dG9tOiAxZW1cclxuICAgIGNvbG9yOiBjbHIocHJpbSk7XHJcbiAgICBsaW5lLWhlaWdodDogMS4zXHJcblxyXG5oM1xyXG4gICAgZm9udC1zaXplOiAxLjhlbVxyXG4gICAgY29sb3I6IGNscihwcmltKTtcclxuICAgIG1hcmdpbi1ib3R0b206IDAuOGVtXHJcblxyXG5oNFxyXG4gICAgZm9udC1zaXplOiAxLjNlbVxyXG4gICAgY29sb3I6IGNscihzZWNvbmRfMyk7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwLjVlbVxyXG5cclxucCBcclxuICAgIGZvbnQtZmFtaWx5OiBmbnQocHJpbSlcclxuICAgIGZvbnQtc2l6ZTogMWVtXHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0XHJcblxyXG5hXHJcbiAgICBmb250LXNpemU6IDFlbVxyXG5cclxuaVxyXG4gICAgXHJcblxyXG4rYmVsb3coZGVza3RvcClcclxuICAgIGgyIFxyXG4gICAgICAgIGZvbnQtc2l6ZTogMmVtXHJcbiAgICBcclxuICAgIGgzIFxyXG4gICAgICAgIGZvbnQtc2l6ZTogMS41ZW07XHJcblxyXG4gICAgcCBcclxuICAgICAgICBmb250LXNpemU6IC45ZW1cclxuICAgIFxyXG4gICAgYVxyXG4gICAgICAgIGZvbnQtc2l6ZTogLjllbSBcclxuXHJcbiAgICBcclxuK2JlbG93KHNtYWxsTW9iaWxlKVxyXG4gICAgaDIgXHJcbiAgICAgICAgZm9udC1zaXplOiAxLjVlbVxyXG4gICAgXHJcbiAgICAiLCJiYXNlLWZvbnQtc2l6ZSA/PSAxNnB4XG5yYXN0ZXJpc2UtbWVkaWEtcXVlcmllcyA/PSBmYWxzZVxuXG5ydXB0dXJlID0ge1xuICByYXN0ZXJpc2UtbWVkaWEtcXVlcmllczogcmFzdGVyaXNlLW1lZGlhLXF1ZXJpZXNcbiAgbW9iaWxlLWN1dG9mZjogNDAwcHhcbiAgZGVza3RvcC1jdXRvZmY6IDEwNTBweFxuICBoZC1jdXRvZmY6IDE4MDBweFxuICBlbmFibGUtZW0tYnJlYWtwb2ludHM6IGZhbHNlXG4gIGJhc2UtZm9udC1zaXplOiBiYXNlLWZvbnQtc2l6ZVxuICBhbnRpLW92ZXJsYXA6IGZhbHNlXG4gIGRlbnNpdHktcXVlcmllczogJ2RwcHgnICd3ZWJraXQnICdtb3onICdkcGknXG4gIHJldGluYS1kZW5zaXR5OiAxLjVcbiAgdXNlLWRldmljZS13aWR0aDogZmFsc2Vcbn1cbnJ1cHR1cmUuc2NhbGUgPSAwIChydXB0dXJlLm1vYmlsZS1jdXRvZmYpIDYwMHB4IDgwMHB4IChydXB0dXJlLmRlc2t0b3AtY3V0b2ZmKSAocnVwdHVyZS5oZC1jdXRvZmYpXG5ydXB0dXJlLnNjYWxlLW5hbWVzID0gJ3hzJyAncycgJ20nICdsJyAneGwnICdoZCdcblxuLWlzLXN0cmluZyh2YWwpXG4gIGlmIHR5cGVvZih2YWwpIGlzIG5vdCAndW5pdCdcbiAgICBpZiB2YWwgaXMgYSAnc3RyaW5nJyBvciB2YWwgaXMgYSAnaWRlbnQnXG4gICAgICB0cnVlXG4gICAgZWxzZVxuICAgICAgZmFsc2VcbiAgZWxzZVxuICAgIGZhbHNlXG5cbi1nZXQtc2NhbGUtbnVtYmVyKHNjYWxlLW5hbWUpXG4gIGZvciBsaXN0LWl0ZW0sIGkgaW4gcnVwdHVyZS5zY2FsZS1uYW1lc1xuICAgIGlmIGxpc3QtaXRlbSBpcyBzY2FsZS1uYW1lXG4gICAgICByZXR1cm4gaSArIDFcbiAgcmV0dXJuIGZhbHNlXG5cbi1jb252ZXJ0LXRvKHRvLXVuaXQsIHZhbHVlLCBjb250ZXh0ID0gcnVwdHVyZS5iYXNlLWZvbnQtc2l6ZSlcbiAgZnJvbS11bml0ID0gdW5pdCh2YWx1ZSlcbiAgcmV0dXJuIHZhbHVlIGlmIHRvLXVuaXQgaXMgZnJvbS11bml0XG4gIGlmIHRvLXVuaXQgaW4gKCdlbScgJ3JlbScpXG4gICAgcmV0dXJuIHZhbHVlIGlmIGZyb20tdW5pdCBpbiAoJ2VtJyAncmVtJylcbiAgICByZXR1cm4gdW5pdCgodmFsdWUgLyBjb250ZXh0KSwgdG8tdW5pdClcbiAgaWYgdG8tdW5pdCBpcyAncHgnXG4gICAgcmV0dXJuIHVuaXQoKHZhbHVlICogY29udGV4dCksICdweCcpXG5cbi1vbi1zY2FsZShuKVxuICByZXR1cm4gdW5pdChuKSBpcyAnJ1xuXG4tbGFyZ2VyLXRoYW4tc2NhbGUobilcbiAgcmV0dXJuIChuID4gKGxlbmd0aChydXB0dXJlLnNjYWxlKSAtIDEpKSBhbmQgLW9uLXNjYWxlKG4pXG5cbi1pcy16ZXJvKG4pXG4gIHJldHVybiBuIGlzIDBcblxuLW92ZXJsYXAtc2hpZnQoYW50aS1vdmVybGFwLCBuKVxuICBzaGlmdC11bml0ID0gdW5pdChuKVxuICBhbnRpLW92ZXJsYXAgPSAwcHggdW5sZXNzIGFudGktb3ZlcmxhcFxuICBhbnRpLW92ZXJsYXAgPSAxcHggaWYgYW50aS1vdmVybGFwIGlzIHRydWVcbiAgaWYgbGVuZ3RoKGFudGktb3ZlcmxhcCkgaXMgMVxuICAgIHJldHVybiAtY29udmVydC10byhzaGlmdC11bml0LCBhbnRpLW92ZXJsYXApXG4gIGZvciB2YWwgaW4gYW50aS1vdmVybGFwXG4gICAgcmV0dXJuIHZhbCBpZiB1bml0KHZhbCkgaXMgc2hpZnQtdW5pdFxuXG4tYWRqdXN0LW92ZXJsYXAoYW50aS1vdmVybGFwLCBuLCBzaWRlID0gJ21pbicpXG4gIC1zaGlmdCA9IC1vdmVybGFwLXNoaWZ0KGFudGktb3ZlcmxhcCwgbilcbiAgaWYgKHNpZGUgaXMgJ21pbicgYW5kIC1zaGlmdCA+IDApIG9yIChzaWRlIGlzICdtYXgnIGFuZCAtc2hpZnQgPCAwKVxuICAgIG4gPSBuICsgLXNoaWZ0XG4gIHJldHVybiBuXG5cbi1pcy1wb3NpdGl2ZShuKVxuICByZXR1cm4gbiA+PSAwXG5cbi1kZW5zaXR5LXF1ZXJpZXMoZGVuc2l0eSlcbiAgaWYgdHlwZW9mKGRlbnNpdHkpIGlzIG5vdCAndW5pdCdcbiAgICBpZiBub3QgLWlzLXN0cmluZyhkZW5zaXR5KVxuICAgICAgZGVuc2l0eSA9ICclcycgJSBkZW5zaXR5XG4gIGRlbnNpdHkgPSBydXB0dXJlLnJldGluYS1kZW5zaXR5IGlmIGRlbnNpdHkgaXMgJ3JldGluYSdcbiAgcXVlcmllcyA9ICgpXG4gIGZvciBxdWVyeSBpbiBydXB0dXJlLmRlbnNpdHktcXVlcmllc1xuICAgIGlmIHF1ZXJ5IGlzICd3ZWJraXQnXG4gICAgICBwdXNoKHF1ZXJpZXMsICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAlcyknICUgKGRlbnNpdHkpKVxuICAgIGVsc2UgaWYgcXVlcnkgaXMgJ21veidcbiAgICAgIHB1c2gocXVlcmllcywgJyhtaW4tLW1vei1kZXZpY2UtcGl4ZWwtcmF0aW86ICVzKScgJSAoZGVuc2l0eSkpXG4gICAgZWxzZSBpZiBxdWVyeSBpcyAnbydcbiAgICAgIHB1c2gocXVlcmllcywgJygtby1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAlcy8xKScgJSAoZGVuc2l0eSkpXG4gICAgZWxzZSBpZiBxdWVyeSBpcyAncmF0aW8nXG4gICAgICBwdXNoKHF1ZXJpZXMsICcobWluLWRldmljZS1waXhlbC1yYXRpbzogJXMpJyAlIChkZW5zaXR5KSlcbiAgICBlbHNlIGlmIHF1ZXJ5IGlzICdkcGknXG4gICAgICBpZiAtaXMtc3RyaW5nKGRlbnNpdHkpXG4gICAgICAgIGRlbnNpdHk9Y29udmVydChkZW5zaXR5KVxuICAgICAgcHVzaChxdWVyaWVzLCAnKG1pbi1yZXNvbHV0aW9uOiAlc2RwaSknICUgKHJvdW5kKGRlbnNpdHkgKiA5NiwgMSkpKVxuICAgIGVsc2UgaWYgcXVlcnkgaXMgJ2RwcHgnXG4gICAgICBwdXNoKHF1ZXJpZXMsICcobWluLXJlc29sdXRpb246ICVzZHBweCknICUgKGRlbnNpdHkpKVxuICByZXR1cm4gcXVlcmllc1xuXG5jcmVhdGUtZmFsbGJhY2stY2xhc3Moc2VsZWN0ZWQsIGNsYXNzKVxuICAveycnICsgY2xhc3MgKyAnICcgKyBzZWxlY3RlZH1cbiAgICB7YmxvY2t9XG5cbi8vICtiZXR3ZWVuKG1pbiwgbWF4KVxuLy8gdXNhZ2UgKHNjYWxlIGNhbiBiZSBtaXhlZCB3aXRoIGN1c3RvbSB2YWx1ZXMpOlxuLy8gICAtICtiZXR3ZWVuKDEsIDMpIHNjYWxlOnNjYWxlXG4vLyAgIC0gK2JldHdlZW4oMCwgMykgMCB3aWR0aDpzY2FsZVxuLy8gICAtICtiZXR3ZWVuKDIwMHB4LCA1MDBweCkgY3VzdG9tOmN1c3RvbVxuLy8gICAtICtiZXR3ZWVuKDAsIDMwMHB4KSAwIHdpZHRoOmN1c3RvbVxuLy8gICAtICtiZXR3ZWVuKDEsIDMwMHB4KSBzY2FsZTpjdXN0b21cbi8vICAgLSArYmV0d2VlbigyMDBweCwgNCkgY3VzdG9tOnNjYWxlXG5cbmJldHdlZW4obWluLCBtYXgsIGFudGktb3ZlcmxhcCA9IHJ1cHR1cmUuYW50aS1vdmVybGFwLCBkZW5zaXR5ID0gbnVsbCwgb3JpZW50YXRpb24gPSBudWxsLCB1c2UtZGV2aWNlLXdpZHRoID0gcnVwdHVyZS51c2UtZGV2aWNlLXdpZHRoLCBmYWxsYmFjay1jbGFzcyA9IG51bGwpXG4gIHNlbGVjdGVkID0gc2VsZWN0b3IoKVxuXG4gIGlmIC1pcy1zdHJpbmcob3JpZW50YXRpb24pXG4gICAgb3JpZW50YXRpb24gPSBjb252ZXJ0KG9yaWVudGF0aW9uKVxuICBpZiAtaXMtc3RyaW5nKGRlbnNpdHkpXG4gICAgZGVuc2l0eSA9IGNvbnZlcnQoZGVuc2l0eSlcbiAgaWYgLWlzLXN0cmluZyhtaW4pXG4gICAgbWluID0gLWdldC1zY2FsZS1udW1iZXIobWluKVxuICBpZiAtaXMtc3RyaW5nKG1heClcbiAgICBtYXggPSAtZ2V0LXNjYWxlLW51bWJlcihtYXgpXG5cbiAgLW1pbiA9IHJ1cHR1cmUuc2NhbGVbbWluIC0gMV0gdW5sZXNzIC1pcy16ZXJvKG1pbikgb3IgKG5vdCAtb24tc2NhbGUobWluKSlcbiAgLW1heCA9IHJ1cHR1cmUuc2NhbGVbbWF4XSB1bmxlc3Mgbm90IC1vbi1zY2FsZShtYXgpXG4gIC1taW4gPz0gbWluXG4gIC1tYXggPz0gbWF4XG5cbiAgaWYgKHJ1cHR1cmUucmFzdGVyaXNlLW1lZGlhLXF1ZXJpZXMpXG4gICAgaWYgbm90IChkZW5zaXR5IG9yIC1tYXggb3Igb3JpZW50YXRpb24pXG4gICAgICB7YmxvY2t9XG4gIGVsc2VcbiAgICBjb25kaXRpb24gPSAnb25seSBzY3JlZW4nXG4gICAgdXNlLWRldmljZS13aWR0aCA9IHVzZS1kZXZpY2Utd2lkdGggPyAnZGV2aWNlLScgOiAnJ1xuICAgIHVubGVzcyAtbWluIGlzIDBcbiAgICAgIC1taW4gPSAtY29udmVydC10bygnZW0nLCAtbWluKSBpZiBydXB0dXJlLmVuYWJsZS1lbS1icmVha3BvaW50c1xuICAgICAgLW1pbiA9IC1hZGp1c3Qtb3ZlcmxhcChhbnRpLW92ZXJsYXAsIC1taW4sIHNpZGU6ICdtaW4nKVxuICAgICAgY29uZGl0aW9uID0gY29uZGl0aW9uICsgJyBhbmQgKG1pbi0nICsgdXNlLWRldmljZS13aWR0aCArICd3aWR0aDogJXMpJyAlICgtbWluKVxuICAgIHVubGVzcyAtbGFyZ2VyLXRoYW4tc2NhbGUobWF4KVxuICAgICAgLW1heCA9IC1jb252ZXJ0LXRvKCdlbScsIC1tYXgpIGlmIHJ1cHR1cmUuZW5hYmxlLWVtLWJyZWFrcG9pbnRzXG4gICAgICAtbWF4ID0gLWFkanVzdC1vdmVybGFwKGFudGktb3ZlcmxhcCwgLW1heCwgc2lkZTogJ21heCcpXG4gICAgICBjb25kaXRpb24gPSBjb25kaXRpb24gKyAnIGFuZCAobWF4LScgKyB1c2UtZGV2aWNlLXdpZHRoICsgJ3dpZHRoOiAlcyknICUgKC1tYXgpXG4gICAgaWYgb3JpZW50YXRpb25cbiAgICAgIGNvbmRpdGlvbiA9IGNvbmRpdGlvbiArICcgYW5kIChvcmllbnRhdGlvbjogJXMpJyAlIChvcmllbnRhdGlvbilcbiAgICBpZiBkZW5zaXR5XG4gICAgICBjb25kaXRpb25zID0gKClcbiAgICAgIGZvciBxdWVyeSBpbiAtZGVuc2l0eS1xdWVyaWVzKGRlbnNpdHkpXG4gICAgICAgIHB1c2goY29uZGl0aW9ucywgY29uZGl0aW9uICsgJyBhbmQgJXMnICUgKHF1ZXJ5KSlcbiAgICAgIGNvbmRpdGlvbiA9IGpvaW4oJywgJywgY29uZGl0aW9ucylcbiAgICBAbWVkaWEgY29uZGl0aW9uXG4gICAgICB7YmxvY2t9XG4gIGlmIGZhbGxiYWNrLWNsYXNzXG4gICAgK2NyZWF0ZS1mYWxsYmFjay1jbGFzcyhzZWxlY3RlZCwgZmFsbGJhY2stY2xhc3MpXG4gICAgICB7YmxvY2t9XG5cbmF0KHNjYWxlLXBvaW50LCBhbnRpLW92ZXJsYXAgPSBydXB0dXJlLmFudGktb3ZlcmxhcCwgZGVuc2l0eSA9IG51bGwsIG9yaWVudGF0aW9uID0gbnVsbCwgdXNlLWRldmljZS13aWR0aCA9IHJ1cHR1cmUudXNlLWRldmljZS13aWR0aCwgZmFsbGJhY2stY2xhc3MgPSBudWxsKVxuICBpZiAtaXMtc3RyaW5nKG9yaWVudGF0aW9uKVxuICAgIG9yaWVudGF0aW9uID0gY29udmVydChvcmllbnRhdGlvbilcbiAgaWYgLWlzLXN0cmluZyhkZW5zaXR5KVxuICAgIGRlbnNpdHkgPSBjb252ZXJ0KGRlbnNpdHkpXG4gICtiZXR3ZWVuKHNjYWxlLXBvaW50LCBzY2FsZS1wb2ludCwgYW50aS1vdmVybGFwLCBkZW5zaXR5LCBvcmllbnRhdGlvbiwgdXNlLWRldmljZS13aWR0aCwgZmFsbGJhY2stY2xhc3MpXG4gICAge2Jsb2NrfVxuXG5mcm9tLXdpZHRoKHNjYWxlLXBvaW50LCBhbnRpLW92ZXJsYXAgPSBydXB0dXJlLmFudGktb3ZlcmxhcCwgZGVuc2l0eSA9IG51bGwsIG9yaWVudGF0aW9uID0gbnVsbCwgdXNlLWRldmljZS13aWR0aCA9IHJ1cHR1cmUudXNlLWRldmljZS13aWR0aCwgZmFsbGJhY2stY2xhc3MgPSBudWxsKVxuICBpZiAtaXMtc3RyaW5nKG9yaWVudGF0aW9uKVxuICAgIG9yaWVudGF0aW9uID0gY29udmVydChvcmllbnRhdGlvbilcbiAgaWYgLWlzLXN0cmluZyhkZW5zaXR5KVxuICAgIGRlbnNpdHkgPSBjb252ZXJ0KGRlbnNpdHkpXG4gICtiZXR3ZWVuKHNjYWxlLXBvaW50LCBsZW5ndGgocnVwdHVyZS5zY2FsZSksIGFudGktb3ZlcmxhcCwgZGVuc2l0eSwgb3JpZW50YXRpb24sIHVzZS1kZXZpY2Utd2lkdGgsIGZhbGxiYWNrLWNsYXNzKVxuICAgIHtibG9ja31cblxuYWJvdmUgPSBmcm9tLXdpZHRoXG5cbnRvLXdpZHRoKHNjYWxlLXBvaW50LCBhbnRpLW92ZXJsYXAgPSBydXB0dXJlLmFudGktb3ZlcmxhcCwgZGVuc2l0eSA9IG51bGwsIG9yaWVudGF0aW9uID0gbnVsbCwgdXNlLWRldmljZS13aWR0aCA9IHJ1cHR1cmUudXNlLWRldmljZS13aWR0aCwgZmFsbGJhY2stY2xhc3MgPSBudWxsKVxuICBpZiAtaXMtc3RyaW5nKG9yaWVudGF0aW9uKVxuICAgIG9yaWVudGF0aW9uID0gY29udmVydChvcmllbnRhdGlvbilcbiAgaWYgLWlzLXN0cmluZyhkZW5zaXR5KVxuICAgIGRlbnNpdHkgPSBjb252ZXJ0KGRlbnNpdHkpXG4gICtiZXR3ZWVuKDEsIHNjYWxlLXBvaW50LCBhbnRpLW92ZXJsYXAsIGRlbnNpdHksIG9yaWVudGF0aW9uLCB1c2UtZGV2aWNlLXdpZHRoLCBmYWxsYmFjay1jbGFzcylcbiAgICB7YmxvY2t9XG5cbmJlbG93ID0gdG8td2lkdGhcblxubW9iaWxlKGFudGktb3ZlcmxhcCA9IHJ1cHR1cmUuYW50aS1vdmVybGFwLCBkZW5zaXR5ID0gbnVsbCwgb3JpZW50YXRpb24gPSBudWxsLCB1c2UtZGV2aWNlLXdpZHRoID0gcnVwdHVyZS51c2UtZGV2aWNlLXdpZHRoLCBmYWxsYmFjay1jbGFzcyA9IG51bGwpXG4gIGlmIC1pcy1zdHJpbmcob3JpZW50YXRpb24pXG4gICAgb3JpZW50YXRpb24gPSBjb252ZXJ0KG9yaWVudGF0aW9uKVxuICBpZiAtaXMtc3RyaW5nKGRlbnNpdHkpXG4gICAgZGVuc2l0eSA9IGNvbnZlcnQoZGVuc2l0eSlcbiAgK2JlbG93KHJ1cHR1cmUubW9iaWxlLWN1dG9mZiwgYW50aS1vdmVybGFwLCBkZW5zaXR5LCBvcmllbnRhdGlvbiwgdXNlLWRldmljZS13aWR0aCwgZmFsbGJhY2stY2xhc3MpXG4gICAge2Jsb2NrfVxuXG50YWJsZXQoYW50aS1vdmVybGFwID0gcnVwdHVyZS5hbnRpLW92ZXJsYXAsIGRlbnNpdHkgPSBudWxsLCBvcmllbnRhdGlvbiA9IG51bGwsIHVzZS1kZXZpY2Utd2lkdGggPSBydXB0dXJlLnVzZS1kZXZpY2Utd2lkdGgsIGZhbGxiYWNrLWNsYXNzID0gbnVsbClcbiAgaWYgLWlzLXN0cmluZyhvcmllbnRhdGlvbilcbiAgICBvcmllbnRhdGlvbiA9IGNvbnZlcnQob3JpZW50YXRpb24pXG4gIGlmIC1pcy1zdHJpbmcoZGVuc2l0eSlcbiAgICBkZW5zaXR5ID0gY29udmVydChkZW5zaXR5KVxuICArYmV0d2VlbihydXB0dXJlLm1vYmlsZS1jdXRvZmYsIHJ1cHR1cmUuZGVza3RvcC1jdXRvZmYsIGFudGktb3ZlcmxhcCwgZGVuc2l0eSwgb3JpZW50YXRpb24sIHVzZS1kZXZpY2Utd2lkdGgsIGZhbGxiYWNrLWNsYXNzKVxuICAgIHtibG9ja31cblxuZGVza3RvcChhbnRpLW92ZXJsYXAgPSBydXB0dXJlLmFudGktb3ZlcmxhcCwgZGVuc2l0eSA9IG51bGwsIG9yaWVudGF0aW9uID0gbnVsbCwgdXNlLWRldmljZS13aWR0aCA9IHJ1cHR1cmUudXNlLWRldmljZS13aWR0aCwgZmFsbGJhY2stY2xhc3MgPSBudWxsKVxuICBpZiAtaXMtc3RyaW5nKG9yaWVudGF0aW9uKVxuICAgIG9yaWVudGF0aW9uID0gY29udmVydChvcmllbnRhdGlvbilcbiAgaWYgLWlzLXN0cmluZyhkZW5zaXR5KVxuICAgIGRlbnNpdHkgPSBjb252ZXJ0KGRlbnNpdHkpXG4gICthYm92ZShydXB0dXJlLmRlc2t0b3AtY3V0b2ZmLCBhbnRpLW92ZXJsYXAsIGRlbnNpdHksIG9yaWVudGF0aW9uLCB1c2UtZGV2aWNlLXdpZHRoLCBmYWxsYmFjay1jbGFzcylcbiAgICB7YmxvY2t9XG5cbmhkKGFudGktb3ZlcmxhcCA9IHJ1cHR1cmUuYW50aS1vdmVybGFwLCBkZW5zaXR5ID0gbnVsbCwgb3JpZW50YXRpb24gPSBudWxsLCB1c2UtZGV2aWNlLXdpZHRoID0gcnVwdHVyZS51c2UtZGV2aWNlLXdpZHRoLCBmYWxsYmFjay1jbGFzcyA9IG51bGwpXG4gIGlmIC1pcy1zdHJpbmcob3JpZW50YXRpb24pXG4gICAgb3JpZW50YXRpb24gPSBjb252ZXJ0KG9yaWVudGF0aW9uKVxuICBpZiAtaXMtc3RyaW5nKGRlbnNpdHkpXG4gICAgZGVuc2l0eSA9IGNvbnZlcnQoZGVuc2l0eSlcbiAgK2Fib3ZlKHJ1cHR1cmUuaGQtY3V0b2ZmLCBhbnRpLW92ZXJsYXAsIGRlbnNpdHksIG9yaWVudGF0aW9uLCB1c2UtZGV2aWNlLXdpZHRoLCBmYWxsYmFjay1jbGFzcylcbiAgICB7YmxvY2t9XG5cbmRlbnNpdHkoZGVuc2l0eSwgb3JpZW50YXRpb24gPSBudWxsLCBmYWxsYmFjay1jbGFzcyA9IG51bGwpXG4gIHNlbGVjdGVkID0gc2VsZWN0b3IoKVxuICBpZiBub3QgKHJ1cHR1cmUucmFzdGVyaXNlLW1lZGlhLXF1ZXJpZXMpXG4gICAgY29uZGl0aW9ucyA9ICgpXG4gICAgZm9yIHF1ZXJ5IGluIC1kZW5zaXR5LXF1ZXJpZXMoZGVuc2l0eSlcbiAgICAgIGNvbmRpdGlvbiA9ICdvbmx5IHNjcmVlbiBhbmQgJXMnICUgKHF1ZXJ5KVxuICAgICAgaWYgb3JpZW50YXRpb25cbiAgICAgICAgY29uZGl0aW9uID0gY29uZGl0aW9uICsgJyBhbmQgKG9yaWVudGF0aW9uOiAlcyknICUgKG9yaWVudGF0aW9uKVxuICAgICAgcHVzaChjb25kaXRpb25zLCBjb25kaXRpb24pXG4gICAgY29uZGl0aW9uID0gam9pbignLCAnLCBjb25kaXRpb25zKVxuICAgIEBtZWRpYSBjb25kaXRpb25cbiAgICAgIHtibG9ja31cbiAgICBpZiBmYWxsYmFjay1jbGFzc1xuICAgICAgK2NyZWF0ZS1mYWxsYmFjay1jbGFzcyhzZWxlY3RlZCwgZmFsbGJhY2stY2xhc3MpXG4gICAgICAgIHtibG9ja31cblxucGl4ZWwtcmF0aW8gPSBkZW5zaXR5XG5cbnJldGluYShvcmllbnRhdGlvbiA9IG51bGwsIGZhbGxiYWNrLWNsYXNzID0gbnVsbClcbiAgK2RlbnNpdHkoJ3JldGluYScsIG9yaWVudGF0aW9uLCBmYWxsYmFjay1jbGFzcylcbiAgICB7YmxvY2t9XG5cbmxhbmRzY2FwZShkZW5zaXR5ID0gbnVsbCwgZmFsbGJhY2stY2xhc3MgPSBudWxsKVxuICBzZWxlY3RlZCA9IHNlbGVjdG9yKClcbiAgaWYgbm90IChydXB0dXJlLnJhc3RlcmlzZS1tZWRpYS1xdWVyaWVzKVxuICAgIGlmIC1pcy1zdHJpbmcoZGVuc2l0eSlcbiAgICAgIGRlbnNpdHkgPSBjb252ZXJ0KGRlbnNpdHkpXG4gICAgaWYgZGVuc2l0eVxuICAgICAgK3BpeGVsLXJhdGlvKGRlbnNpdHksIG9yaWVudGF0aW9uOiBsYW5kc2NhcGUsIGZhbGxiYWNrLWNsYXNzKVxuICAgICAgICB7YmxvY2t9XG4gICAgZWxzZVxuICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSlcbiAgICAgICAge2Jsb2NrfVxuICAgICAgaWYgZmFsbGJhY2stY2xhc3NcbiAgICAgICAgK2NyZWF0ZS1mYWxsYmFjay1jbGFzcyhzZWxlY3RlZCwgZmFsbGJhY2stY2xhc3MpXG4gICAgICAgICAge2Jsb2NrfVxuXG5wb3J0cmFpdChkZW5zaXR5ID0gbnVsbCwgZmFsbGJhY2stY2xhc3MgPSBudWxsKVxuICBzZWxlY3RlZCA9IHNlbGVjdG9yKClcbiAgaWYgbm90IChydXB0dXJlLnJhc3RlcmlzZS1tZWRpYS1xdWVyaWVzKVxuICAgIGlmIC1pcy1zdHJpbmcoZGVuc2l0eSlcbiAgICAgIGRlbnNpdHkgPSBjb252ZXJ0KGRlbnNpdHkpXG4gICAgaWYgZGVuc2l0eVxuICAgICAgK3BpeGVsLXJhdGlvKGRlbnNpdHksIG9yaWVudGF0aW9uOiBwb3J0cmFpdCwgZmFsbGJhY2stY2xhc3MpXG4gICAgICAgIHtibG9ja31cbiAgICBlbHNlXG4gICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpXG4gICAgICAgIHtibG9ja31cbiAgICAgIGlmIGZhbGxiYWNrLWNsYXNzXG4gICAgICAgICtjcmVhdGUtZmFsbGJhY2stY2xhc3Moc2VsZWN0ZWQsIGZhbGxiYWNrLWNsYXNzKVxuICAgICAgICAgIHtibG9ja31cblxucnVwdHVyZS1ob3ZlcihkZW5zaXR5ID0gbnVsbCwgb3JpZW50YXRpb24gPSBudWxsLCBmYWxsYmFjay1jbGFzcyA9IG51bGwpXG4gIGNvbmRpdGlvbiA9IFwib25seSBzY3JlZW4gYW5kIChob3ZlcjogaG92ZXIpXCI7XG4gIEBtZWRpYSAoe2NvbmRpdGlvbn0pXG4gICAge2Jsb2NrfVxuXG5ob3ZlciA9IHJ1cHR1cmUtaG92ZXJcbiIsIiogXHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuXHJcbmh0bWwgXHJcbiAgICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDtcclxuXHJcbmJvZHkgXHJcbiAgICBmb250LWZhbWlseTogJ01vbnRzZXJyYXQnLCBzYW5zLXNlcmlmO1xyXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzBhMGEwYSAwJSwgIzFhMWExYSAxMDAlKTtcclxuICAgIGNvbG9yOiAjZmZmZmZmO1xyXG4gICAgbGluZS1oZWlnaHQ6IDEuNjtcclxuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcclxuXHJcbi5jb250YWluZXIgXHJcbiAgICBtYXgtd2lkdGg6IDEyMDBweDtcclxuICAgIG1hcmdpbjogMCBhdXRvO1xyXG4gICAgcGFkZGluZzogMCAyMHB4O1xyXG5cclxuYnV0dG9uXHJcbiAgICBmb250LXNpemU6IDFlbTtcclxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBnYXA6IDEwcHg7XHJcbiAgICBwYWRkaW5nOiAxNXB4IDMwcHg7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1MHB4O1xyXG4gICAgYm9yZGVyOiBub25lO1xyXG4gICAgYm94LXNoYWRvdzogMCAxMHB4IDIwcHggcmdiYSgyMTIsIDE3NSwgNTUsIDAuMyk7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuXHJcbi5idG4gXHJcbiAgICBkaXNwbGF5OmJsb2NrXHJcblxyXG4uYnRuOjpiZWZvcmUgXHJcbiAgICBjb250ZW50OiAnJztcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogMDtcclxuICAgIGxlZnQ6IC0xMDAlO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHRyYW5zcGFyZW50LCByZ2JhKDI1NSwyNTUsMjU1LDAuMiksIHRyYW5zcGFyZW50KTtcclxuICAgIHRyYW5zaXRpb246IGxlZnQgMC41cztcclxuXHJcbi5idG46aG92ZXI6OmJlZm9yZSBcclxuICAgIGxlZnQ6IDEwMCU7XHJcblxyXG5pbWdcclxuICAgIG9iamVjdC1maXQ6IGZpbGw7XHJcbiAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IGF1dG87XHJcblxyXG4uYnRuLXByaW1hcnkgXHJcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoNDVkZWcsICNkNGFmMzcsICNmNGU4YzEpO1xyXG4gICAgY29sb3I6ICMwMDA7XHJcbiAgICBib3gtc2hhZG93OiAwIDEwcHggMzBweCByZ2JhKDIxMiwgMTc1LCA1NSwgMC4zKTtcclxuXHJcbi5idG4tcHJpbWFyeTpob3ZlciBcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtM3B4KTtcclxuICAgIGJveC1zaGFkb3c6IDAgMTVweCA0MHB4IHJnYmEoMjEyLCAxNzUsIDU1LCAwLjQpO1xyXG5cclxuLmJ0bi1zZWNvbmRhcnkgXHJcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgIGNvbG9yOiAjZDRhZjM3O1xyXG4gICAgYm9yZGVyOiAycHggc29saWQgI2Q0YWYzNztcclxuXHJcbi5idG4tc2Vjb25kYXJ5OmhvdmVyIFxyXG4gICAgYmFja2dyb3VuZDogI2Q0YWYzNztcclxuICAgIGNvbG9yOiAjMDAwO1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zcHgpO1xyXG5cclxuLmJ0bi1naWZ0IFxyXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAjZmY2YjM1LCAjZjc5MzFlKTtcclxuICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgYm94LXNoYWRvdzogMCAxMHB4IDMwcHggcmdiYSgyNTUsIDEwNywgNTMsIDAuMyk7XHJcblxyXG4uYmxvY2tfcGFkZGluZ18yMFxyXG4gICAgd2lkdGggMTAwJVxyXG4gICAgaGVpZ2h0OiAyMHB4XHJcblxyXG4uYmxvY2tfcGFkZGluZ180MFxyXG4gICAgd2lkdGggMTAwJVxyXG4gICAgaGVpZ2h0OiA0MHB4XHJcblxyXG4uYmxvY2tfcGFkZGluZ182MFxyXG4gICAgd2lkdGggMTAwJVxyXG4gICAgaGVpZ2h0OiA2MHB4XHJcblxyXG4uYmxvY2tfcGFkZGluZ184MFxyXG4gICAgd2lkdGggMTAwJVxyXG4gICAgaGVpZ2h0OiA4MHB4XHJcblxyXG4vLyDQtNC70Y8g0LDQvdC40LzQsNGG0LjRjyBcclxuYW5pbVN1YkxpbmUoKVxyXG4gICAgcG9zaXRpb24gcmVsYXRpdmVcclxuXHJcbiAgICAmOmhvdmVyIFxyXG4gICAgICAgIGNvbG9yIGNscihwcmltKVxyXG5cclxuICAgICY6OmFmdGVyXHJcbiAgICAgICAgY29udGVudDogJyc7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIGJvdHRvbTogLTVweDtcclxuICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgIHdpZHRoOiAwO1xyXG4gICAgICAgIGhlaWdodDogMnB4O1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICBjbHIocHJpbSk7XHJcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcclxuICAgIFxyXG4gICAgJjpob3Zlcjo6YWZ0ZXIgXHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcblxyXG4uYnRuLWdpZnQ6aG92ZXIgXHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTNweCk7XHJcbiAgICBib3gtc2hhZG93OiAwIDE1cHggNDBweCByZ2JhKDI1NSwgMTA3LCA1MywgMC40KTtcclxuXHJcbmJ1dHRvbi50ZXN0QnRuXHJcbiAgICB3aWR0aDogNTBweDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGJhY2tncm91bmQ6IHVuc2V0O1xyXG4gICAgY29sb3I6ICNmZmY7XHJcbiAgICBib3gtc2hhZG93OiB1bnNldDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIHBhZGRpbmc6IDEwcHg7XHJcblxyXG4vLyDQvtC/0YDQtdC00LXQu9C10L3QuNC1INGB0LXQutGG0LjQuNC4INGG0LLQtdGC0L7QsiDRgtC10LzQvdGL0LkgMSwzLDUgXHJcbnNlY3Rpb246bnRoLWNoaWxkKDJuKzEpIFxyXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KGRlZyhzZWMpLCBjbHIoYmxjaykgMCUsIGNscihibGNrXzIpIDEwMCUpO1xyXG5cclxuLy8g0L7Qv9GA0LXQtNC10LvQtdC90LjQtSDRgdC10LrRhtC40LjQuCDRhtCy0LXRgtC+0LIg0YLQtdC80L3Ri9C5IDIsNCw2IFxyXG5zZWN0aW9uOm50aC1jaGlsZCgybilcclxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChkZWcoc2VjKSwgY2xyKGJsY2tfMykgMCUsIGNscihibGNrXzIpIDEwMCUpO1xyXG5cclxuc2VjdGlvbiBcclxuICAgIHBhZGRpbmcgNmVtIDBcclxuXHJcbi5zZWN0aW9uLWhlYWRlciBcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIG1hcmdpbi1ib3R0b206IDNyZW07XHJcblxyXG4uc2VjdGlvbi1oZWFkZXIgcCAgXHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXJcclxuXHJcbmJ1dHRvbi5idG5VcHBlclxyXG4gICAgd2lkdGg6IDUwcHg7XHJcbiAgICBoZWlnaHQ6IDUwcHg7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICB0b3A6IDg0JTtcclxuICAgIGxlZnQ6IDk1JTtcclxuICAgIHRyYW5zaXRpb246IGFsbCAuNXNcclxuICAgIGZvbnQtc2l6ZTogMS44ZW1cclxuICAgIGZvbnQtd2VpZ2h0OiA5MDBcclxuICAgIHBhZGRpbmc6IHVuc2V0XHJcbiAgICBiYWNrZ3JvdW5kOiBjbHIocHJpbSlcclxuICAgIGNvbG9yOiBjbHIoc2Vjb25kKVxyXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwKSByb3RhdGUoLTY2MGRlZylcclxuICAgIHotaW5kZXggMTAwXHJcblxyXG5idXR0b24uaGlkZGVuXHJcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpICByb3RhdGUoMClcclxuXHJcbmJ1dHRvbiNidG5VcHBlcjo6YmVmb3JlIFxyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgdG9wOiAyNSU7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XHJcblxyXG5cclxuK2JlbG93KHQpXHJcbiAgICBidXR0b24uYnRuVXBwZXIgXHJcbiAgICAgICAgdG9wOiA4OCU7XHJcbiAgICAgICAgbGVmdDogOTIlO1xyXG5cclxuK2JlbG93KG0pXHJcbiAgICBidXR0b24uYnRuVXBwZXIgXHJcbiAgICAgICAgbGVmdCA4NiVcclxuICAgICAgICBcclxuICAgIGJ1dHRvbi5oaWRkZW4gXHJcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSguODYpIHJvdGF0ZSgwKTtcclxuXHJcbitiZWxvdyhzbSlcclxuXHJcbiAgICBidXR0b24uYnRuVXBwZXJcclxuICAgICAgICBsZWZ0OiA4MiU7XHJcblxyXG4gICAuYnRuIFxyXG4gICAgICAgIHBhZGRpbmc6IDEycHggMjBweDtcclxuICAgICAgICBmb250LXNpemU6IDAuOXJlbTtcclxuXHJcblxyXG4iLCIvKlxuICogSGVscGVyIGZvciBib3JkZXItcmFkaXVzKCkuXG4gKi9cblxuLWFwcGx5LWJvcmRlci1yYWRpdXMocG9zLCBpbXBvcnRhbmNlKVxuICBpZiBsZW5ndGgocG9zKSA9PSAzXG4gICAgLy8gYm9yZGVyLXJhZGl1czogPHRvcCB8IGJvdHRvbT4gPGxlZnQgfCByaWdodD4gPG4+XG4gICAgeSA9IHBvc1swXVxuICAgIHggPSBwb3NbMV1cbiAgICAvLyBXZSBkb24ndCB1c2UgdmVuZG9yIGZvciBib2Rlci1yYWRpdXMgYW55bW9yZVxuICAgIC8vIHZlbmRvcignYm9yZGVyLXJhZGl1cy0lcyVzJyAlIHBvcywgcG9zWzJdLCBvbmx5OiB3ZWJraXQgb2ZmaWNpYWwpXG4gICAgeydib3JkZXItJXMtJXMtcmFkaXVzJyAlIHBvc306IHBvc1syXSBpbXBvcnRhbmNlXG4gIGVsc2UgaWYgcG9zWzBdIGluICh0b3AgYm90dG9tKVxuICAgIC8vIGJvcmRlci1yYWRpdXM6IDx0b3AgfCBib3R0b20+IDxuPlxuICAgIC1hcHBseS1ib3JkZXItcmFkaXVzKHBvc1swXSBsZWZ0IHBvc1sxXSwgaW1wb3J0YW5jZSlcbiAgICAtYXBwbHktYm9yZGVyLXJhZGl1cyhwb3NbMF0gcmlnaHQgcG9zWzFdLCBpbXBvcnRhbmNlKVxuICBlbHNlIGlmIHBvc1swXSBpbiAobGVmdCByaWdodClcbiAgICAvLyBib3JkZXItcmFkaXVzOiA8bGVmdCB8IHJpZ2h0PiA8bj5cbiAgICB1bnNoaWZ0KHBvcywgdG9wKTtcbiAgICAtYXBwbHktYm9yZGVyLXJhZGl1cyhwb3MsIGltcG9ydGFuY2UpXG4gICAgcG9zWzBdID0gYm90dG9tXG4gICAgLWFwcGx5LWJvcmRlci1yYWRpdXMocG9zLCBpbXBvcnRhbmNlKVxuXG4vKlxuICogYm9yZGVyLXJhZGl1cyBzdXBwb3J0aW5nIGF1Z21lbnRlZCBiZWhhdmlvci5cbiAqXG4gKiBFeGFtcGxlczpcbiAqXG4gKiAgICBib3JkZXItcmFkaXVzOiAycHggNXB4XG4gKiAgICBib3JkZXItcmFkaXVzOiB0b3AgNXB4IGJvdHRvbSAxMHB4XG4gKiAgICBib3JkZXItcmFkaXVzOiBsZWZ0IDVweFxuICogICAgYm9yZGVyLXJhZGl1czogdG9wIGxlZnQgNXB4XG4gKiAgICBib3JkZXItcmFkaXVzOiB0b3AgbGVmdCAxMHB4IGJvdHRvbSByaWdodCA1cHhcbiAqICAgIGJvcmRlci1yYWRpdXM6IHRvcCBsZWZ0IDEwcHgsIGJvdHRvbSByaWdodCA1cHhcbiAqXG4gKi9cblxuYm9yZGVyLXJhZGl1cygpXG4gIHBvcyA9ICgpXG4gIGF1Z21lbnRlZCA9IGZhbHNlXG4gIGltcG9ydGFuY2UgPSBhcmd1bWVudHNbbGVuZ3RoKGFyZ3VtZW50cykgLSAxXSA9PSAhaW1wb3J0YW50ID8gIWltcG9ydGFudCA6IHVucXVvdGUoJycpXG5cbiAgZm9yIGFyZ3MgaW4gYXJndW1lbnRzXG4gICAgZm9yIGFyZyBpbiBhcmdzXG4gICAgICBpZiBhcmcgaXMgYSAnaWRlbnQnXG4gICAgICAgIGFwcGVuZChwb3MsIGFyZylcbiAgICAgICAgYXVnbWVudGVkID0gdHJ1ZVxuICAgICAgZWxzZVxuICAgICAgICBhcHBlbmQocG9zLCBhcmcpXG4gICAgICAgIGlmIGF1Z21lbnRlZFxuICAgICAgICAgIC1hcHBseS1ib3JkZXItcmFkaXVzKHBvcywgaW1wb3J0YW5jZSlcbiAgICAgICAgICBwb3MgPSAoKVxuICBib3JkZXItcmFkaXVzIHBvcyB1bmxlc3MgYXVnbWVudGVkXG4iLCIvKlxuICogYm9yZGVyOiA8Y29sb3I+XG4gKiBib3JkZXI6IC4uLlxuICovXG5cbmJvcmRlcihjb2xvciwgYXJncy4uLilcbiAgaWYgY29sb3IgaXMgYSAnY29sb3InXG4gICAgYm9yZGVyOiAxcHggc29saWQgY29sb3IgYXJnc1xuICBlbHNlXG4gICAgYm9yZGVyOiBhcmd1bWVudHNcbiIsIi5oZWFkZXIgXHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICB0b3A6IDA7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgICB6LWluZGV4OiAxMDAwO1xyXG4gICAgYmFja2dyb3VuZDogY2xyZ2IoYmxjaywgLjk1KVxyXG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDIwcHgpO1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGNscmdiKHByaW0sIDAuMik7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xyXG5cclxuLmhlYWRlci1jb250ZW50IFxyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICBwYWRkaW5nOiAxZW0gMDtcclxuXHJcbi8vIGxvZ29cclxuLmxvZ28tc2VjdGlvbiBcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgZ2FwOiAxZW07XHJcblxyXG4ubG9nby1pY29uIFxyXG4gICAgd2lkdGg6IDYwcHg7XHJcbiAgICBoZWlnaHQ6IDYwcHg7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgYW5pbWF0aW9uOiBmbG9hdCAzcyBlYXNlLWluLW91dCBpbmZpbml0ZTtcclxuXHJcbi5sb2dvLWljb24gaSBcclxuICAgIGZvbnQtc2l6ZTogMzBweDtcclxuICAgIGNvbG9yOiBjbHIoYmxjaylcclxuICAgIGFuaW1hdGlvbjogcHVsc2UgMnMgaW5maW5pdGUgZWFzZS1pbi1vdXQ7XHJcblxyXG5cclxuQGtleWZyYW1lcyBmbG9hdCBcclxuICAgIDAlLCAxMDAlICBcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHB4KTsgXHJcbiAgICA1MCUgIFxyXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTBweCk7IFxyXG5cclxuLmJyYW5kLW5hbWUgXHJcbiAgICBmb250LWZhbWlseTogZm50KGhlYWRlcilcclxuICAgIGZvbnQtc2l6ZTogMS44cmVtO1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG5cclxuXHJcbi5icmFuZC1zbG9nYW4gXHJcbiAgICBmb250LWZhbWlseTogZm50KHByaW0pXHJcbiAgICBmb250LXNpemU6IDAuOXJlbTtcclxuICAgIGNvbG9yIGNscihwcmltKVxyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgb3BhY2l0eTogMC44O1xyXG5cclxuLm5hdi1tZW51IHVsIFxyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgICBnYXA6IDJyZW07XHJcblxyXG4ubmF2LW1lbnUgYSBcclxuICAgIGNvbG9yIGNscihzZWNvbmQpO1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICAgIHRyYW5zaXRpb246IGNvbG9yIDAuM3MgZWFzZTtcclxuICAgIGFuaW1TdWJMaW5lKClcclxuICAgIFxyXG4uY29udGFjdC1pbmZvIFxyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBnYXA6IDFlbTtcclxuXHJcblxyXG4ucGhvbmUgXHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGdhcDogMC41cmVtO1xyXG4gICAgY29sb3IgY2xyKHByaW0pXHJcbiAgICBmb250LXdlaWdodDogNjAwO1xyXG5cclxuXHJcbi5zb2NpYWwtbGlua3MgXHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IHJvd1xyXG4gICAgZ2FwOiAwLjVyZW07XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cclxuLnNvY2lhbC1saW5rc19fdG9wIGEgXHJcbiAgICBvcmRlciAyXHJcblxyXG4uc29jaWFsLWxpbmtzX19idG0gXHJcbiAgICBmbGV4KCk7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlclxyXG4gICAgXHJcblxyXG5cclxuLnNvY2lhbC1saW5rIFxyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgIGNvbG9yIGNscihzZWNvbmQpO1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcclxuXHJcbi5zb2NpYWwtbGluay5waG9uZSBpICBcclxuICAgIGRpc3BsYXk6IG5vbmVcclxuXHJcbmhlYWRlclxyXG4gICAgLnNvY2lhbC1saW5rIGlcclxuICAgICAgICBmb250LXNpemU6IDEuNWVtXHJcbiAgICBcclxuLnNvY2lhbC1saW5rID4gaVxyXG4gICAgY29sb3I6IGNscihwaG9uZSkgXHJcblxyXG5cclxuLnNvY2lhbC1saW5rIC5mb250ZWxsby1waG9uZS1jYWxsXHJcbiAgICBjb2xvciBjbHIocGhvbmUpXHJcblxyXG4uc29jaWFsLWxpbmsgLmZvbnRlbGxvLXdoYXRzYXBwXHJcbiAgICBjb2xvciBjbHIod2hhdHNhcHApXHJcblxyXG4uc29jaWFsLWxpbmsgLmZvbnRlbGxvLXRlbGVncmFtXHJcbiAgICBjb2xvciBjbHIodGVsZWdyYW0pXHJcblxyXG5cclxuLnNvY2lhbC1saW5rLnRlbGVncmFtLFxyXG4uc29jaWFsLWxpbmsud2hhdHNhcHBcclxuICAgIGJhY2tncm91bmQ6IHVuc2V0O1xyXG5cclxuLnNvY2lhbC1saW5rOmhvdmVyIFxyXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xyXG4gICAgYm94LXNoYWRvdzogMCA1cHggMTVweCBjbHJnYihibGNrLCAwLjMpO1xyXG5cclxuLm1vYmlsZS1tZW51LXRvZ2dsZSBcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgZ2FwOiA0cHg7XHJcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xyXG4gICAgYm9yZGVyOiBub25lO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG5cclxuXHJcbi5tb2JpbGUtbWVudS10b2dnbGUgc3BhbiBcclxuICAgIHdpZHRoOiAyNXB4O1xyXG4gICAgaGVpZ2h0OiAzcHg7XHJcbiAgICBiYWNrZ3JvdW5kOiAgY2xyKHByaW0pO1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcclxuXHJcbitiZWxvdyhkKVxyXG4gICAgLmJyYW5kLW5hbWVcclxuICAgICAgICBmb250LXNpemU6IDEuNWVtXHJcbiAgICBcclxuICAgIC5icmFuZC1zbG9nYW5cclxuICAgICAgICBmb250LXNpemU6IC44ZW1cclxuXHJcbitiZWxvdyg5MzhweClcclxuICAgIC5uYXYtbWVudSB1bFxyXG4gICAgICAgIGdhcCAxZW1cclxuXHJcbitiZWxvdyg4NzZweClcclxuICAgIC5uYXYtbWVudSBhXHJcbiAgICAgICAgZm9udC1zaXplOiAuOGVtXHJcbitiZWxvdyh0KVxyXG4gICAgLmNvbnRhaW5lclxyXG4gICAgICAgIHBhZGRpbmc6IDAgMzhweDtcclxuICAgIFxyXG4gICAgLmhlYWRlci1jb250ZW50XHJcbiAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XHJcbiAgICAgICAgZ2FwOiAxZW07XHJcbiAgICAgICAgXHJcbiAgICAubmF2LW1lbnVcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgXHJcbiAgICAubW9iaWxlLW1lbnUtdG9nZ2xlXHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgIFxyXG4gICAgLnNvY2lhbC1saW5rLnBob25lIFxyXG4gICAgICAgIGkgIFxyXG4gICAgICAgICAgICBkaXNwbGF5OiBub25lXHJcbiAgICAgICAgcCBcclxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2tcclxuICAgIFxyXG4gICAgLnNvY2lhbC1saW5rcywgLnNvY2lhbC1saW5rc19fYnRtXHJcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvd1xyXG4gICAgICAgIGdhcCA1cHhcclxuXHJcbiAgICAuY29udGFjdC1pbmZvLmNvZGVySWNvblxyXG4gICAgICAgIGp1c3RpZnktc2VsZjogdW5zZXQ7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDEyNHB4O1xyXG5cclxuICAgIGJ1dHRvbi5tb2JpbGUtbWVudS10b2dnbGVcclxuICAgICAgICB3aWR0aDogbWF4LWNvbnRlbnQ7XHJcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcclxuICAgICAgICBib3gtc2hhZG93OiBub25lO1xyXG4gICAgXHJcblxyXG4rYmVsb3coNjMxcHgpXHJcbiAgICAuc29jaWFsLWxpbmsucGhvbmUgXHJcbiAgICAgICAgaSAgXHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrXHJcbiAgICAgICAgcCBcclxuICAgICAgICAgICAgZGlzcGxheTogbm9uZVxyXG5cclxuK2JlbG93KG0pXHJcbiAgICAuYnJhbmQtdGV4dCBwICBcclxuICAgICAgICBkaXNwbGF5OiBub25lXHJcbiAgICBcclxuICAgIC5icmFuZC1uYW1lXHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IHVuc2V0O1xyXG4gICAgXHJcbiAgICAuY29udGFjdC1pbmZvLmNvZGVySWNvblxyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxMjBweDtcclxuXHJcbiAgICAubmF2LW1lbnUsIC5jb250YWN0LWluZm8gLmNvZGVySWNvblxyXG4gICAgICAgIGdhcCA1cHhcclxuXHJcblxyXG4rYmVsb3coNDk0cHgpXHJcbiAgICAuY29udGFjdC1pbmZvLmNvZGVySWNvblxyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiA4OHB4O1xyXG5cclxuK2JlbG93KDQ1NHB4KVxyXG4gICAgLmNvbnRhY3QtaW5mby5jb2Rlckljb25cclxuICAgICAgICBtYXJnaW4tbGVmdDogNTJweDtcclxuXHJcblxyXG4rYmVsb3coNDIycHgpXHJcbiAgICAuY29udGFjdC1pbmZvLmNvZGVySWNvblxyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAyZW07XHJcblxyXG4rYmVsb3coMzg0cHgpXHJcbiAgICAuY29udGFjdC1pbmZvLmNvZGVySWNvblxyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiA0ZW07XHJcblxyXG4gICAgLmxvZ28tc2VjdGlvblxyXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW5cclxuICAgICAgICBnYXAgMnB4XHJcblxyXG4rYmVsb3coZXNtKVxyXG4gICAgLmxvZ28taWNvbiBcclxuICAgICAgICB3aWR0aDogNDdweDtcclxuICAgICAgICBoZWlnaHQ6IDI5cHg7XHJcblxyXG4gICAgLmNvbnRhY3QtaW5mby5jb2Rlckljb25cclxuICAgICAgICBtYXJnaW4tbGVmdDogNGVtO1xyXG5cclxuK2JlbG93KDMyMnB4KVxyXG4gICAgLmNvbnRhY3QtaW5mby5jb2Rlckljb25cclxuICAgICAgICBtYXJnaW4tbGVmdDogMWVtO1xyXG4vLyArYmVsb3coc21hbGxNb2JpbGUpXHJcblxyXG4iLCIuYWJvdXQtY29udGVudCBcclxuICAgIGRpc3BsYXk6IGdyaWQ7XHJcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDJmciAxZnI7XHJcbiAgICBnYXA6IDNyZW07XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cclxuLmFib3V0LXRleHQgcCBcclxuICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcclxuICAgIGNvbG9yIGNscihzZWNvbmRfMik7XHJcbiAgICBsaW5lLWhlaWdodDogMS44O1xyXG5cclxuLmxvZ28tY2lyY2xlIFxyXG4gICAgd2lkdGg6IDE1MHB4O1xyXG4gICAgaGVpZ2h0OiAxNTBweDtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG5cclxuLmxvZ28tY2lyY2xlOjpiZWZvcmUgXHJcbiAgICBjb250ZW50OiAnJztcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHdpZHRoOiAyMDAlO1xyXG4gICAgaGVpZ2h0OiAyMDAlO1xyXG4gICAgdG9wOiAtNTAlO1xyXG4gICAgbGVmdDogLTUwJTtcclxuICAgIGFuaW1hdGlvbjogcm90YXRlIDhzIGxpbmVhciBpbmZpbml0ZTtcclxuXHJcblxyXG4ubG9nby1jaXJjbGUgaSBcclxuICAgIGZvbnQtc2l6ZTogNzBweDtcclxuICAgIGNvbG9yOiBjbHIoYmxjayk7XHJcbiAgICB6LWluZGV4OiAyO1xyXG4gICAgYW5pbWF0aW9uOiBwdWxzZSAycyBpbmZpbml0ZSBlYXNlLWluLW91dDtcclxuXHJcbi5sb2dvLXRleHQgXHJcbiAgICBmb250LWZhbWlseTogZm50KGhlYWRlcilcclxuICAgIGZvbnQtc2l6ZTogMi41cmVtO1xyXG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgIGNvbG9yIGNscihwcmltKVxyXG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgIGxldHRlci1zcGFjaW5nOiAycHg7XHJcbiAgICB0ZXh0LXNoYWRvdzogMCA1cHggMTBweCBjbHJnYihibGNrLC4zKVxyXG5cclxuXHJcblxyXG4rYmVsb3codClcclxuICAgIC5hYm91dC1jb250ZW50IFxyXG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHJcbiAgICAubG9nby10ZXh0XHJcbiAgICAgICAgZm9udC1zaXplOiAxLjhlbVxyXG4gICAgXHJcbiAgICAubG9nby1jaXJjbGVcclxuICAgICAgICB3aWR0aCA5NnB4XHJcbiAgICAgICAgaGVpZ2h0OiBhdXRvXHJcblxyXG5cclxuICAgICIsIi5hZHZhbnRhZ2VzLWdyaWQgXHJcbiAgICBkaXNwbGF5OiBncmlkO1xyXG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgzMDBweCwgMWZyKSk7XHJcbiAgICBnYXA6IDJyZW07XHJcblxyXG5cclxuLmFkdmFudGFnZS1pdGVtIFxyXG4gICAgYmFja2dyb3VuZDogY2xyZ2IoYmxjaywgMSlcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkIGNscmdiKHByaW0sIC4yKVxyXG4gICAgYm9yZGVyLXJhZGl1czogMTVweDtcclxuICAgIHBhZGRpbmc6IDJyZW07XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuXHJcbi5hZHZhbnRhZ2UtaXRlbSBwICBcclxuICAgIHRleHQtYWxpZ246IGNlbnRlclxyXG5cclxuXHJcbi5hZHZhbnRhZ2UtaXRlbTo6YmVmb3JlIFxyXG4gICAgY29udGVudDogJyc7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IC01MCU7XHJcbiAgICBsZWZ0OiAtNTAlO1xyXG4gICAgd2lkdGg6IDIwMCU7XHJcbiAgICBoZWlnaHQ6IDIwMCU7XHJcbiAgICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCBjbHJnYihwcmltLCAuMSkgMCUsIHRyYW5zcGFyZW50IDcwJSk7XHJcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xyXG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNXMgZWFzZTtcclxuXHJcblxyXG4uYWR2YW50YWdlLWl0ZW06aG92ZXI6OmJlZm9yZSBcclxuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XHJcblxyXG5cclxuLmFkdmFudGFnZS1pdGVtOmhvdmVyIFxyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMHB4KTtcclxuICAgIGJvcmRlci1jb2xvciBjbHIocHJpbSlcclxuICAgIGJveC1zaGFkb3c6IDAgMjBweCA0MHB4IGNscmdiKHByaW0sIC4yKVxyXG5cclxuXHJcbi5hZHZhbnRhZ2UtaWNvbiBcclxuICAgIGZvbnQtc2l6ZTogM3JlbTtcclxuICAgIGNvbG9yIGNscihwcmltKVxyXG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcclxuICAgIGFuaW1hdGlvbjogcHVsc2UgMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XHJcblxyXG5cclxuQGtleWZyYW1lcyBwdWxzZSBcclxuICAgIDAlLCAxMDAlIFxyXG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7IFxyXG4gICAgNTAlICBcclxuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDUpOyBcclxuXHJcblxyXG5Aa2V5ZnJhbWVzIGJvdW5jZSBcclxuICAgIDAlLCAyMCUsIDUwJSwgODAlLCAxMDAlIFxyXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcclxuICAgIDQwJSBcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTIwcHgpO1xyXG4gICAgNjAlIFxyXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTBweCk7XHJcblxyXG5cclxuLmFkdmFudGFnZS1pdGVtIGgzIFxyXG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHotaW5kZXg6IDE7XHJcblxyXG5cclxuLmFkdmFudGFnZS1pdGVtIHAgXHJcbiAgICBjb2xvciBjbHIoc2Vjb25kXzIpO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgei1pbmRleDogMTtcclxuXHJcbitiZWxvdyh0KVxyXG4gICAgLmFkdmFudGFnZXMtZ3JpZCBcclxuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcclxuICAgIFxyXG4rYmVsb3coc20pXHJcbiAgICAuYWR2YW50YWdlLWl0ZW0gaDNcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAxZW07XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIHotaW5kZXg6IDE7XHJcbiAgICBcclxuICAgIGgzXHJcbiAgICAgICAgZm9udC1zaXplOiAxLjVlbSIsIi5mYWRlLWluIFxyXG4gICAgYW5pbWF0aW9uOiBmYWRlSW4gMXMgZWFzZS1vdXQ7XHJcblxyXG4uc2xpZGUtdXAgXHJcbiAgICBhbmltYXRpb246IHNsaWRlVXAgMC44cyBlYXNlLW91dDtcclxuXHJcbi5ib3VuY2UtaW4gXHJcbiAgICBhbmltYXRpb246IGJvdW5jZUluIDAuOHMgY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcclxuXHJcbi5yb3RhdGUtaW4gXHJcbiAgICBhbmltYXRpb246IHJvdGF0ZUluIDAuOHMgZWFzZS1vdXQ7XHJcblxyXG4uc3dpbmcgXHJcbiAgICBhbmltYXRpb246IHN3aW5nIDFzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xyXG5cclxuLnNoYWtlIFxyXG4gICAgYW5pbWF0aW9uOiBzaGFrZSAwLjhzIGN1YmljLWJlemllciguMzYsLjA3LC4xOSwuOTcpIGJvdGg7XHJcblxyXG4ucHVsc2UgXHJcbiAgICBhbmltYXRpb246IHB1bHNlIDJzIGluZmluaXRlO1xyXG5cclxuLmZsb2F0IFxyXG4gICAgYW5pbWF0aW9uOiBmbG9hdCAzcyBlYXNlLWluLW91dCBpbmZpbml0ZTtcclxuXHJcbi8vINCw0L3QuNC80LDRhtC40Y8g0L/RgNC4INC/0LXRgNCy0YvQuSDQv9C+0YHQtdGJ0LXQvdC40LUgXHJcbkBrZXlmcmFtZXMgZmFkZUluVXAgXHJcbiAgICBmcm9tIFxyXG4gICAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDYwcHgpO1xyXG4gICAgXHJcbiAgICB0byBcclxuICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcclxuXHJcbi8vIGZvciBhYm91ciBcclxuQGtleWZyYW1lcyByb3RhdGUgXHJcbiAgICAwJSAgXHJcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IFxyXG4gICAgMTAwJSAgXHJcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgXHJcblxyXG5Aa2V5ZnJhbWVzIGZhZGVJbiBcclxuICAgIGZyb20gXHJcbiAgICAgICAgb3BhY2l0eTogMDsgXHJcbiAgICB0byBcclxuICAgICAgICBvcGFjaXR5OiAxOyBcclxuXHJcblxyXG5Aa2V5ZnJhbWVzIHNsaWRlVXAgXHJcbiAgICBmcm9tIFxyXG4gICAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDMwcHgpO1xyXG4gICAgXHJcbiAgICB0byBcclxuICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcclxuICAgIFxyXG5Aa2V5ZnJhbWVzIGJvdW5jZUluIFxyXG4gICAgMCUgXHJcbiAgICAgICAgb3BhY2l0eTogMDtcclxuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMC4zLCAwLjMsIDAuMyk7XHJcbiAgICBcclxuICAgIDIwJSBcclxuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMS4xLCAxLjEsIDEuMSk7XHJcbiAgICBcclxuICAgIDQwJSBcclxuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMC45LCAwLjksIDAuOSk7XHJcbiAgICBcclxuICAgIDYwJSBcclxuICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjAzLCAxLjAzLCAxLjAzKTtcclxuICAgIFxyXG4gICAgODAlIFxyXG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUzZCgwLjk3LCAwLjk3LCAwLjk3KTtcclxuICAgIFxyXG4gICAgMTAwJSBcclxuICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcclxuXHJcbkBrZXlmcmFtZXMgcm90YXRlSW4gXHJcbiAgICBmcm9tIFxyXG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcclxuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC0yMDBkZWcpO1xyXG4gICAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICBcclxuICAgIHRvIFxyXG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcclxuICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XHJcbiAgICAgICAgb3BhY2l0eTogMTtcclxuICAgIFxyXG5Aa2V5ZnJhbWVzIHN3aW5nIFxyXG4gICAgMjAlICBcclxuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDE1ZGVnKTsgXHJcbiAgICA0MCUgIFxyXG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTEwZGVnKTsgXHJcbiAgICA2MCUgIFxyXG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgNWRlZyk7IFxyXG4gICAgODAlICBcclxuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC01ZGVnKTsgXHJcbiAgICB0byAgXHJcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAwZGVnKTsgXHJcblxyXG5Aa2V5ZnJhbWVzIHNoYWtlIFxyXG4gICAgMTAlLCA5MCUgIFxyXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTFweCwgMCwgMCk7IFxyXG4gICAgMjAlLCA4MCUgIFxyXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMnB4LCAwLCAwKTsgXHJcbiAgICAzMCUsIDUwJSwgNzAlICBcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC00cHgsIDAsIDApOyBcclxuICAgIDQwJSwgNjAlICBcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDRweCwgMCwgMCk7IFxyXG5cclxuXHJcbi8qIFNjcm9sbCBBbmltYXRpb25zICovXHJcbi5hbmltYXRlLW9uLXNjcm9sbCBcclxuICAgIG9wYWNpdHk6IDA7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMzBweCk7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC44cyBlYXNlLW91dDtcclxuXHJcblxyXG4uYW5pbWF0ZS1vbi1zY3JvbGwuYW5pbWF0ZWQgXHJcbiAgICBvcGFjaXR5OiAxO1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xyXG5cclxuLyogTHV4dXJ5IEVmZmVjdHMgKi9cclxuLmx1eHVyeS1nbG93IFxyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuLmx1eHVyeS1nbG93OjpiZWZvcmUgXHJcbiAgICBjb250ZW50OiAnJztcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogLTJweDtcclxuICAgIGxlZnQ6IC0ycHg7XHJcbiAgICByaWdodDogLTJweDtcclxuICAgIGJvdHRvbTogLTJweDtcclxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg0NWRlZywgY2xyKHByaW0pLCBjbHIoc2Vjb25kXzMpLCBjbHIocHJpbSkpO1xyXG4gICAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcclxuICAgIHotaW5kZXg6IC0xO1xyXG4gICAgb3BhY2l0eTogMDtcclxuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlO1xyXG5cclxuLmx1eHVyeS1nbG93OmhvdmVyOjpiZWZvcmUgXHJcbiAgICBvcGFjaXR5OiAxO1xyXG5cclxuLyogTG9hZGluZyBBbmltYXRpb24gKi9cclxuLmxvYWRpbmcgXHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG5cclxuLmxvYWRpbmc6OmFmdGVyIFxyXG4gICAgY29udGVudDogJyc7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDA7XHJcbiAgICBsZWZ0OiAtMTAwJTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCwgY2xyZ2IocHJpbSwgLjMpLCB0cmFuc3BhcmVudCk7XHJcbiAgICBhbmltYXRpb246IGxvYWRpbmcgMS41cyBpbmZpbml0ZTtcclxuXHJcbkBrZXlmcmFtZXMgbG9hZGluZyBcclxuICAgIDAlICBcclxuICAgICAgICBsZWZ0OiAtMTAwJTsgXHJcbiAgICAxMDAlICBcclxuICAgICAgICBsZWZ0OiAxMDAlOyBcclxuXHJcblxyXG4rYmVsb3codClcclxuICAgIC5tb3J0Z2FnZS1oZWxwXHJcbiAgICAgICAgb3JkZXI6LTE7XHJcbiAgICBcclxuICAgIC5jb2RlckJ0blxyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG5cclxuK2JlbG93KG0pXHJcbiAgICAuYW5pbWF0ZWQtbG9nb1xyXG4gICAgICAgIHdpZHRoOiAxMjBweDtcclxuICAgIFxyXG4iLCIuYmFuay1wYXJ0bmVycy1mbGV4IHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBnYXA6IDNyZW07XHJcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxuICAgIG1hcmdpbjogM3JlbSAwO1xyXG59XHJcblxyXG4uYmFua3MtY29sdW1uIHtcclxuICAgIGZsZXg6IDE7XHJcbn1cclxuXHJcbi5iYW5rcy1ncmlkIHtcclxuICAgIGRpc3BsYXk6IGdyaWQ7XHJcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDEyMHB4LCAxZnIpKTtcclxuICAgIGdhcDogMS41cmVtO1xyXG59XHJcblxyXG4ubW9ydGdhZ2UtaGVscCB7XHJcbiAgICBmbGV4OiAxO1xyXG4gICAgYmFja2dyb3VuZDogY2xyZ2IocHJpbSwgMC4wNSlcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkIGNscmdiKHByaW0sIDAuMik7XHJcbiAgICBib3JkZXItcmFkaXVzOiAxNXB4O1xyXG4gICAgcGFkZGluZzogMi41cmVtO1xyXG4gICAgYW5pbWF0aW9uOiBmYWRlSW4gMXMgZWFzZS1vdXQ7XHJcbiAgICBib3gtc2hhZG93OiAwIDE1cHggMzBweCBjbHJnYihibGNrLCAwLjMpO1xyXG59XHJcblxyXG4ubW9ydGdhZ2UtaGVscCBoMyB7XHJcbiAgICBmb250LXNpemU6IDJyZW07XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XHJcbiAgICBjb2xvciBjbHIocHJpbSlcclxufVxyXG5cclxuLm1vcnRnYWdlLWhlbHAgcCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xyXG4gICAgY29sb3IgY2xyKHNlY29uZF8yKTtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjg7XHJcbn1cclxuXHJcbi5tb3J0Z2FnZS1iZW5lZml0cyB7XHJcbiAgICBsaXN0LXN0eWxlOiBub25lO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcclxufVxyXG5cclxuLm1vcnRnYWdlLWJlbmVmaXRzIGxpIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgZ2FwOiAwLjhyZW07XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xyXG4gICAgY29sb3IgY2xyKHNlY29uZF8yKTtcclxufVxyXG5cclxuLm1vcnRnYWdlLWJlbmVmaXRzIGkge1xyXG4gICAgY29sb3IgY2xyKHByaW0pXHJcbiAgICBmb250LXNpemU6IDEuMnJlbTtcclxufVxyXG5cclxuLmJhbmstbG9nbyB7XHJcbiAgICBiYWNrZ3JvdW5kOiBjbHJnYihzZWNvbmQsIDAuMDUpO1xyXG4gICAgYm9yZGVyLXJhZGl1czogMTVweDtcclxuICAgIHBhZGRpbmc6IDEuNXJlbTtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xyXG4gICAgYXNwZWN0LXJhdGlvOiAxO1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgY2xyZ2IocHJpbSwgMC4yKTtcclxufVxyXG5cclxuLmJhbmstaWNvbiB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIGdhcDogMXJlbTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG59XHJcblxyXG4uYmFuay1pY29uIGkge1xyXG4gICAgZm9udC1zaXplOiAyLjVyZW07XHJcbiAgICBjb2xvciBjbHIocHJpbSlcclxuICAgIHRyYW5zaXRpb246IGFsbCAwLjVzIGVhc2U7XHJcbn1cclxuXHJcbi5iYW5rLWljb24gc3BhbiB7XHJcbiAgICBmb250LXNpemU6IDAuOXJlbTtcclxuICAgIGNvbG9yIGNscihzZWNvbmQpO1xyXG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XHJcbn1cclxuXHJcbi5iYW5rLWxvZ286aG92ZXIge1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01cHgpO1xyXG4gICAgYm94LXNoYWRvdzogMCAxNXB4IDMwcHggY2xyZ2IocHJpbSwgMC4zKTtcclxuICAgIEJPUkRFUi1jb2xvciBjbHIocHJpbSlcclxuICAgIGJhY2tncm91bmQ6IGNscmdiKHByaW0sIDAuMSk7XHJcbn1cclxuXHJcbi5iYW5rLWxvZ286aG92ZXIgLmJhbmstaWNvbiBpIHtcclxuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4yKTtcclxuICAgIGNvbG9yIGNscihzZWNvbmRfMyk7XHJcbn1cclxuXHJcbi5iYW5rLWxvZ286aG92ZXIgLmJhbmstaWNvbiBzcGFuIHtcclxuICAgIGNvbG9yIGNscihwcmltKVxyXG59XHJcblxyXG4vKiBHaWZ0IFNlY3Rpb24gKi9cclxuLmdpZnQtc2VjdGlvbiB7XHJcbiAgICBwYWRkaW5nOiA2cmVtIDA7XHJcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCBjbHIoYmxja18yKSAwJSwgY2xyKGJsY2tfMykgMTAwJSk7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG59XHJcblxyXG4uZ2lmdC1zZWN0aW9uOjpiZWZvcmUge1xyXG4gICAgY29udGVudDogJyc7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDA7XHJcbiAgICByaWdodDogMDtcclxuICAgIHdpZHRoOiA1MCU7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICBiYWNrZ3JvdW5kOiB1cmwoJ2h0dHBzOi8vaW1hZ2VzLnVuc3BsYXNoLmNvbS9waG90by0xNTQ0NjIwMzQ3LWM0ZmQ0YTNkNTk1Nz93PTgwMCZoPTYwMCZmaXQ9Y3JvcCcpIGNlbnRlci9jb3ZlcjtcclxuICAgIG9wYWNpdHk6IDAuMTtcclxuICAgIHotaW5kZXg6IC0xO1xyXG59XHJcblxyXG4uZ2lmdC1jb250ZW50IHtcclxuICAgIGRpc3BsYXk6IGdyaWQ7XHJcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XHJcbiAgICBnYXA6IDNyZW07XHJcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxufVxyXG5cclxuXHJcbi5mb3JtLWdyb3VwIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBnYXA6IDFyZW07XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xyXG59XHJcblxyXG4uZm9ybS1ncm91cCBpbnB1dCB7XHJcbiAgICBmbGV4OiAxO1xyXG4gICAgcGFkZGluZzogMTVweCAyMHB4O1xyXG4gICAgYm9yZGVyOiAycHggc29saWQgY2xyZ2IocHJpbSwgMC4zKTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDI1cHg7XHJcbiAgICBiYWNrZ3JvdW5kOiBjbHJnYihzZWNvbmQsIDAuMDUpO1xyXG4gICAgY29sb3IgY2xyKHNlY29uZCk7XHJcbiAgICBmb250LXNpemU6IDFyZW07XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xyXG59XHJcblxyXG4uZm9ybS1ncm91cCBpbnB1dDpmb2N1cyB7XHJcbiAgICBvdXRsaW5lOiBub25lO1xyXG4gICAgQk9SREVSLWNvbG9yIGNscihwcmltKVxyXG4gICAgYm94LXNoYWRvdzogMCAwIDIwcHggY2xyZ2IocHJpbSwgMC4zKTtcclxufVxyXG5cclxuLmZvcm0tZ3JvdXAgaW5wdXQ6OnBsYWNlaG9sZGVyIHtcclxuICAgIGNvbG9yOiBjbHJnYihzZWNvbmQsIDAuNik7XHJcbn1cclxuXHJcbitiZWxvdyh0KVxyXG4gICAgLmJhbmtzLWdyaWQgXHJcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgxMjBweCwgMWZyKSk7XHJcbiAgICAgICAgZ2FwOiAxcmVtO1xyXG4gICAgXHJcblxyXG4rYmVsb3coNjUwcHgpXHJcbiAgICAuYmFuay1wYXJ0bmVycy1mbGV4XHJcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIFxyXG4gICAgLmJhbmtzLWdyaWRcclxuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpO1xyXG4gICAgICAgIFxyXG4gICAgLmJhbmtzLWNvbHVtblxyXG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xyXG4gICAgXHJcbiAgICAuYmFuay1sb2dvIFxyXG4gICAgICAgIHBhZGRpbmc6IDEycHg7XHJcbiAgICAgICAgXHJcbitiZWxvdyhtKVxyXG4gICAuYmFua3MtZ3JpZFxyXG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDQsIDFmcik7XHJcbiAgICAgICAgIiwiLmRpc2NvdW50LXRleHQgXHJcbiAgICBmb250LXNpemU6IDEuMnJlbTtcclxuICAgIGNvbG9yOiAjZmY2YjM1O1xyXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcclxuICAgIFxyXG4uZmxvb3Itb3B0aW9ucyBcclxuICAgIGRpc3BsYXk6IGdyaWQ7XHJcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDIwMHB4LCAxZnIpKTtcclxuICAgIGdhcDogMS41cmVtO1xyXG4gICAgbWFyZ2luOiAycmVtIDA7XHJcblxyXG4ub3B0aW9uLWNhcmQgXHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcblxyXG4ub3B0aW9uLWNhcmQgaW5wdXQgXHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBvcGFjaXR5OiAwO1xyXG4gICAgd2lkdGg6IDA7XHJcbiAgICBoZWlnaHQ6IDA7XHJcblxyXG4ub3B0aW9uLWNvbnRlbnQgXHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBnYXA6IDFyZW07XHJcbiAgICBwYWRkaW5nOiAycmVtO1xyXG4gICAgYmFja2dyb3VuZDogY2xyZ2IocHJpbSwgMC4wNSk7XHJcbiAgICBib3JkZXI6IDJweCBzb2xpZCBjbHJnYihwcmltLCAwLjIpO1xyXG4gICAgYm9yZGVyLXJhZGl1czogMTVweDtcclxuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XHJcblxyXG5cclxuXHJcbi5vcHRpb24tY29udGVudCBpIFxyXG4gICAgZm9udC1zaXplOiAzcmVtO1xyXG4gICAgY29sb3IgY2xyKHByaW0pXHJcblxyXG4ub3B0aW9uLWNhcmQgaW5wdXQ6Y2hlY2tlZCArIC5vcHRpb24tY29udGVudCBcclxuICAgIGJhY2tncm91bmQ6IGNscmdiKHByaW0sIDAuMik7XHJcbiAgICBib3JkZXItY29sb3IgY2xyKHByaW0pXHJcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDUpO1xyXG4gICAgYm94LXNoYWRvdzogMCAxMHB4IDMwcHggY2xyZ2IocHJpbSwgMC4zKTtcclxuXHJcbitiZWxvdyg3NjhweClcclxuICAgIC5jYWxjdWxhdG9yLWFkdmFuY2VkIFxyXG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xyXG4gICAgIiwic2VjdGlvbi5jb3B5cmlnaHQtc2VjdGlvblxyXG4gICAgcGFkZGluZy1ib3R0b206IDI1cHhcclxuXHJcbitiZWxvdyg3NjhweClcclxuICAgIC5jb3B5cmlnaHQtY29udGVudFxyXG4gICAgICAgIGgxIFxyXG4gICAgICAgICAgICBmb250LXNpemU6IDJlbVxyXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogM2VtXHJcbiAgICAgICAgaDIgXHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS44ZW0gXHJcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAzZW1cclxuIiwiXHJcbi5zZWN0aW9uLWRpdmlkZXIgXHJcbiAgICB3aWR0aDogODBweDtcclxuICAgIGhlaWdodDogM3B4O1xyXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCBjbHIocHJpbSksIGNscihzZWNvbmRfMykpO1xyXG4gICAgbWFyZ2luOiAxcmVtIGF1dG87XHJcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XHJcblxyXG5cclxuLnNlY3Rpb24tYWN0aW9ucyBcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBnYXA6IDJyZW07XHJcbiAgICBtYXJnaW4tdG9wOiAzcmVtO1xyXG5cclxuIiwiK2JlbG93KHQpXHJcbiAgICAuZm9ybS1ncm91cCBcclxuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgXHJcbitiZWxvdyhzbSlcclxuICAgLm1vZGFsLWNvbnRlbnQgXHJcbiAgICAgICAgbWFyZ2luOiAxMCUgYXV0bztcclxuICAgICAgICBwYWRkaW5nOiAxLjVyZW07XHJcbiAgICBcclxuIiwiLmdpZnQtc2VjdGlvbiBcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcblxyXG4uZ2lmdC1zZWN0aW9uOjpiZWZvcmUgXHJcbiAgICBjb250ZW50OiAnJztcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogMDtcclxuICAgIHJpZ2h0OiAwO1xyXG4gICAgd2lkdGg6IDUwJTtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIGJhY2tncm91bmQ6IHVybCgnaHR0cHM6Ly9pbWFnZXMudW5zcGxhc2guY29tL3Bob3RvLTE1NDQ2MjAzNDctYzRmZDRhM2Q1OTU3P3c9ODAwJmg9NjAwJmZpdD1jcm9wJykgY2VudGVyL2NvdmVyO1xyXG4gICAgb3BhY2l0eTogMC4xO1xyXG4gICAgei1pbmRleDogLTE7XHJcblxyXG4uYnRuLWNhbGN1bGF0ZSBcclxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg0NWRlZywgY2xyKHByaW0pLCBjbHIoc2Vjb25kXzMpLCBjbHIocHJpbSkpO1xyXG4gICAgYmFja2dyb3VuZC1zaXplOiAyMDAlIDIwMCU7XHJcbiAgICBhbmltYXRpb246IGdyYWRpZW50IDVzIGVhc2UgaW5maW5pdGU7XHJcbiAgICBjb2xvcjogY2xyKGJsY2spXHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGJveC1zaGFkb3c6IDAgMTBweCAyMHB4IGNscmdiKHByaW0sIDAuMyk7XHJcblxyXG4uYnRuLWNhbGN1bGF0ZTpob3ZlciBcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNXB4KTtcclxuICAgIGJveC1zaGFkb3c6IDAgMTVweCAzMHB4IGNscmdiKHByaW0sIDAuNSk7XHJcblxyXG4uZ2lmdC1jb250ZW50IFxyXG4gICAgZ3JpZCgyKVxyXG4gICAgZ2FwOiAzZW07XHJcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxuXHJcbi5jYWxjdWxhdG9yLWJsb2NrIFxyXG4gICAgYmFja2dyb3VuZDogY2xyZ2IocHJpbSwgMC4wNSk7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCBjbHJnYihwcmltLCAwLjIpO1xyXG4gICAgYm9yZGVyLXJhZGl1czogMTVweDtcclxuICAgIHBhZGRpbmc6IDIuNWVtO1xyXG4gICAgYm94LXNoYWRvdzogMCAxNXB4IDMwcHggY2xyZ2IoYmxjaywgLjMpO1xyXG4gICAgYW5pbWF0aW9uOiBmYWRlSW4gMXMgZWFzZS1vdXQ7XHJcblxyXG4uY2FsY3VsYXRvci1ibG9jayBoMiBcclxuICAgIG1hcmdpbi1ib3R0b206IDEuNWVtO1xyXG4gICAgY29sb3IgY2xyKHByaW0pXHJcblxyXG4uY2FsY3VsYXRvci1vcHRpb25zIFxyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBnYXA6IDEuNWVtO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMmVtO1xyXG5cclxuLmNhbGMtb3B0aW9uIFxyXG4gICAgZmxleCgxKVxyXG4gICAgZ2FwOiAwLjVlbTtcclxuXHJcbi5jYWxjLW9wdGlvbiBsYWJlbCBcclxuICAgIGNvbG9yIGNscihwcmltKVxyXG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcclxuXHJcbi5jYWxjLW9wdGlvbiBzZWxlY3QsXHJcbi5jYWxjLW9wdGlvbiBpbnB1dCBcclxuICAgIHBhZGRpbmc6IDEycHggMTVweDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkIGNscmdiKHByaW0sIDAuMyk7XHJcbiAgICBiYWNrZ3JvdW5kOiBjbHJnYihzZWNvbmQsIDAuMDUpO1xyXG4gICAgY29sb3IgY2xyKHNlY29uZCk7XHJcbiAgICBmb250LWZhbWlseTogZm50KHByaW0pXHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xyXG5cclxuLmNhbGMtb3B0aW9uIHNlbGVjdDpmb2N1cyxcclxuLmNhbGMtb3B0aW9uIGlucHV0OmZvY3VzIFxyXG4gICAgb3V0bGluZTogbm9uZTtcclxuICAgIGJvcmRlci1jb2xvcjogY2xyKHByaW0pO1xyXG4gICAgYm94LXNoYWRvdzogMCAwIDEwcHggY2xyZ2IocHJpbSwgMC4zKTtcclxuXHJcbi5jYWxjdWxhdG9yLWJsb2NrIHAgXHJcbiAgICBtYXJnaW4tYm90dG9tOiAyZW07XHJcbiAgICBjb2xvciBjbHIoc2Vjb25kXzIpO1xyXG5cclxuQGtleWZyYW1lcyBncmFkaWVudCBcclxuICAgIDAlICBcclxuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwJSA1MCU7IFxyXG4gICAgNTAlICBcclxuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIDUwJTsgXHJcbiAgICAxMDAlICBcclxuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwJSA1MCU7IFxyXG5cclxuLmdpZnQtYmxvY2sgaDIgXHJcbiAgICBtYXJnaW4tYm90dG9tOiAxLjVlbTtcclxuICAgIGNvbG9yIGNscihwcmltKVxyXG5cclxub3B0aW9uXHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjbHJnYihibGNrXzMsIC41KVxyXG5cclxuLmdpZnQtYmxvY2sgcCBcclxuICAgIG1hcmdpbi1ib3R0b206IDJlbTtcclxuICAgIGNvbG9yOiBjbHIoc2Vjb25kXzIpO1xyXG5cclxuLmdpZnQtaW1hZ2U6aG92ZXIgXHJcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDUpO1xyXG5cclxuLmdpZnQtYnV0dG9ucyBcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBnYXA6IDFlbTtcclxuICAgIGZsZXgtd3JhcDogd3JhcDtcclxuXHJcbi5naWZ0LWJ1dHRvbnMgYnV0dG9uIFxyXG4gICAgd2lkdGg6IDEwMCVcclxuXHJcbi5naWZ0LWltYWdlIFxyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC41cyBlYXNlO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBtYXgtd2lkdGg6IDMwMHB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogMTVweDtcclxuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2U7XHJcblxyXG4uZm9ybS1ncm91cCBcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBnYXA6IDFlbTtcclxuICAgIG1hcmdpbi1ib3R0b206IDFlbTtcclxuXHJcbi5mb3JtLWdyb3VwIGlucHV0IFxyXG4gICAgZmxleDogMTtcclxuICAgIHBhZGRpbmc6IDE1cHggMjBweDtcclxuICAgIGJvcmRlcjogMnB4IHNvbGlkIGNscmdiKHByaW0sIDAuMyk7XHJcbiAgICBib3JkZXItcmFkaXVzOiAyNXB4O1xyXG4gICAgYmFja2dyb3VuZDogY2xyZ2Ioc2Vjb25kLCAwLjA1KTtcclxuICAgIGNvbG9yIGNscihzZWNvbmQpO1xyXG4gICAgZm9udC1zaXplOiAxZW07XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xyXG5cclxuLmZvcm0tZ3JvdXAgaW5wdXQ6Zm9jdXMgXHJcbiAgICBvdXRsaW5lOiBub25lO1xyXG4gICAgYm9yZGVyLWNvbG9yOiBjbHIocHJpbSk7XHJcbiAgICBib3gtc2hhZG93OiAwIDAgMjBweCBjbHJnYihwcmltLCAwLjMpO1xyXG5cclxuLmZvcm0tZ3JvdXAgaW5wdXQ6OnBsYWNlaG9sZGVyIFxyXG4gICAgY29sb3I6IGNscmdiKHNlY29uZCwgMC42KTtcclxuXHJcbi5naWZ0LWJsb2NrIFxyXG4gICAgYmFja2dyb3VuZDogY2xyZ2Ioc2Vjb25kLCAwLjA1KTtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkIGNscmdiKHByaW0sIDAuMik7XHJcbiAgICBib3JkZXItcmFkaXVzOiAxNXB4O1xyXG4gICAgcGFkZGluZzogMi41ZW07XHJcbiAgICBib3gtc2hhZG93OiAwIDE1cHggMzBweCBjbHJnYihibGNrLCAuMyk7XHJcbiAgICBhbmltYXRpb246IGZhZGVJbiAxcyBlYXNlLW91dCAwLjNzIGJvdGg7XHJcblxyXG4uZ2lmdC12aXN1YWwgXHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBnYXA6IDJlbTtcclxuICAgIG1hcmdpbi1ib3R0b206IDJlbTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG5cclxuK2JlbG93KGQpXHJcbiAgICAuZ2lmdC1pbWFnZVxyXG4gICAgICAgIG1heC13aWR0aCAxODhweFxyXG5cclxuK2JlbG93KHQpXHJcblxyXG4gICAgLmdpZnQtY29udGVudCBcclxuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlclxyXG4gICAgICAgIFxyXG4gICAgICAgIGltZ1xyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXJcclxuICAgIFxyXG4rYmVsb3cobSlcclxuICAgIC5naWZ0LXZpc3VhbFxyXG4gICAgICAgIHdpZHRoIDE4NnB4XHJcbiAgICAgICAganVzdGlmeS1zZWxmOiBjZW50ZXJcclxuICAgIFxyXG4gICAgIiwiLy8gZ3JpZCDQsdC10LcgZGlzcGxheSBncmlkKCkgXG5ncmlkKG51bTEsIGdhcCA9IGZhbHNlKVxuICAgIGRpc3BsYXk6IGdyaWRcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KG51bTEsIDFmcikgXG5cbiAgICBpZiBnYXAgIT0gZmFsc2VcbiAgICAgICAgZ2FwOihnYXApcHhcblxuLy8gZmxleCDQsdC10LcgZGlzcGxheSBmbGV4KCkgXG5mbGV4KHdoaWNoID0gZmFsc2UsIGdhcCA9IGZhbHNlKVxuICAgIGRpc3BsYXk6IGZsZXhcbiAgICBpZiB3aGljaCAhPSBmYWxzZVxuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uXG4gICAgaWYgZ2FwICE9IGZhbHNlXG4gICAgICAgIGdhcDooZ2FwKXB4XG5cbi8vINC+0L/RgNC10LTQtdC70Y/QtdC8ICDRhtCy0LXRgtCwINCx0LXQtyA9PiB2YXIoLS1tYWluX2dvbGQpIFxuY2xyKHZhck5hbWUpXG4gICAgcmV0dXJuIHZhciggdW5xdW90ZShcIi0tbWFpbl9cIiArIHZhck5hbWUpIClcblxuLy8g0L7Qv9GA0LXQtNC10LvRj9C10LwgINGI0YDQuNGE0YLRiyDQsdC10LcgPT4gdmFyKC0tZm9udF9wcmltKSBcbmZudCh2YXJOYW1lKVxuICAgIHJldHVybiB2YXIoIHVucXVvdGUoXCItLWZvbnRfXCIgKyB2YXJOYW1lKSApXG5cbi8vINC+0L/RgNC10LTQtdC70Y/QtdC8ICDRgNCw0LfQvNC10YDRiyDQsdC10LcgPT4gdmFyKC0tc2l6ZV9tb2JpbGUpIFxuc2l6ZSh2YXJOYW1lKVxuICAgIHJldHVybiB2YXIoIHVucXVvdGUoXCItLXNpemVfXCIgKyB2YXJOYW1lKSApXG5cbi8vINC+0L/RgNC10LTQtdC70Y/QtdC8ICAg0LPRgNCw0LTRg9GB0YsgPT4gdmFyKC0tbWFpbl9nb2xkKSBcbmRlZyh2YXJOYW1lKVxuICAgIHJldHVybiB2YXIoIHVucXVvdGUoXCItLWRlZ3JlZV9cIiArIHZhck5hbWUpKVxuXG4vLyDQtNC70Y8gcmdiYVxuY2xyZ2IodGVzdCwgcGVyY2VudClcbiAgICByZXR1cm4gdW5xdW90ZShcInJnYmEodmFyKC0tbWFpbl9oZXhfXCIgKyB0ZXN0ICsgXCIpLCBcIiArIHBlcmNlbnQgKyBcIilcIilcblxub2JqZWN0Zih3aWR0aCA9IDEwMCUsIGhlaWdodCA9IG51bGwsIGZpdCA9IGNvdmVyLCBwb3MgPSBjZW50ZXIpXG4gICAgd2lkdGggd2lkdGggXG4gICAgXG4gICAgaWYgaGVpZ2h0IGlzIG5vdCBudWxsXG4gICAgICAgIGhlaWdodDogaGVpZ2h0XG4gICAgZWxzZSBcbiAgICAgICAgaGVpZ2h0OiBAd2lkdGhcbiAgICBcbiAgICBvYmplY3QtZml0OiBmaXRcbiAgICBvYmplY3QtcG9zaXRpb246IHBvc1xuXG5cblxuXG5cbiAgICBcblxuXG5cblxuXG4iLCIuaGVyby1zZWN0aW9uIFxyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICBwYWRkaW5nOiAyNXB4IDBcclxuXHJcbi8vINC+0LHRiNC40Lkg0LrQvtC90YLQtdC90YIgXHJcbi5oZXJvLWNvbnRlbnQgXHJcbiAgICBkaXNwbGF5OiBncmlkO1xyXG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKVxyXG4gICAgZ2FwOiA0ZW1cclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblxyXG4vLyBsZWZ0IFxyXG5kaXYuaGVyby10ZXh0IFxyXG4gICAgcGFkZGluZy1yaWdodDogMmVtXHJcblxyXG4uaGVyby10aXRsZSBcclxuICAgIGZvbnQtc2l6ZTogM2VtXHJcbiAgICBjb2xvciBjbHIoc2Vjb25kKTtcclxuICAgIGFuaW1hdGlvbjogZmFkZUluVXAgMXMgZWFzZS1vdXQ7XHJcblxyXG4uaGVyby1kZXNjcmlwdGlvbiBcclxuICAgIGNvbG9yIGNscihzZWNvbmRfMik7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAyZW1cclxuICAgIGFuaW1hdGlvbjogZmFkZUluVXAgMXMgZWFzZS1vdXQgMC4ycyBib3RoO1xyXG5cclxuLmhlcm8tYnV0dG9ucyBcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBnYXA6IDFlbVxyXG4gICAgbWFyZ2luLWJvdHRvbTogMmVtXHJcbiAgICBhbmltYXRpb246IGZhZGVJblVwIDFzIGVhc2Utb3V0IDAuNHMgYm90aDtcclxuXHJcbi8vIHJpZ2h0IFxyXG4uaGVyby1pbWFnZS1jb250YWluZXIgXHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cclxuLmhlcm8taG91c2UtaW1hZ2UgXHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1heC13aWR0aDogNTAwcHg7XHJcbiAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICBib3JkZXItcmFkaXVzOiAxNXB4O1xyXG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZTtcclxuXHJcbi5oZXJvLWhvdXNlLWltYWdlOmhvdmVyIFxyXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTtcclxuXHJcbi5oZXJvLWJvdHRvbSBcclxuICAgIG1hcmdpbi10b3A6IDNlbVxyXG5cclxuLmhlcm8tY29udGFjdCBcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBnYXA6IDJlbVxyXG4gICAgYWxpZ24taXRlbXM6IGVuZDtcclxuXHJcbi5waG9uZS1zZWN0aW9uLCAuc29jaWFsLXNlY3Rpb24gXHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGdhcDogMC41ZW1cclxuXHJcbi5zb2NpYWwtc2VjdGlvblxyXG4gICAgZmxleC1kaXJlY3Rpb246IHJvd1xyXG5cclxuLnNvY2lhbC1zZWN0aW9uIGFcclxuICAgIGZvbnQtc2l6ZTogMmVtXHJcblxyXG4ucGhvbmUtbGFiZWwsIC5zb2NpYWwtbGFiZWwgXHJcbiAgICBmb250LXNpemU6IDAuOWVtXHJcbiAgICBjb2xvciBjbHIocHJpbSlcclxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICBsZXR0ZXItc3BhY2luZzogMXB4O1xyXG5cclxuLnBob25lLW51bWJlciBcclxuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICBjb2xvcjpjbHIoc2Vjb25kKVxyXG4gICAgdHJhbnNpdGlvbjogYWxsIC4zc1xyXG5cclxuLnBob25lLW51bWJlcjpob3ZlciBcclxuICAgIGNvbG9yIGNscihwcmltKVxyXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjIpXHJcblxyXG4uc29jaWFsLWhhbmRsZSBcclxuICAgIGZvbnQtc2l6ZTogMWVtXHJcbiAgICBjb2xvciBjbHIoc2Vjb25kXzIpO1xyXG5cclxuK2JlbG93KGRlc2t0b3ApXHJcbiAgICAuaGVyby10aXRsZVxyXG4gICAgICAgIGZvbnQtc2l6ZTogMi41ZW1cclxuXHJcblxyXG4rYmVsb3codGFibGV0KVxyXG4gICAgICAgIFxyXG4gICAgLmhlcm8tY29udGVudCBcclxuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgZ2FwOiAyZW1cclxuICAgIFxyXG4gICAgLmhlcm8tdGl0bGUgXHJcbiAgICAgICAgZm9udC1zaXplOiAyZW1cclxuICAgICAgICBsaW5lLWhlaWdodDogMS41ZW1cclxuICAgIFxyXG4gICAgLmhlcm8tYnV0dG9ucyBcclxuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBcclxuICAgIC5oZXJvLWNvbnRhY3QgXHJcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgICBnYXA6IDJlbVxyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIFxyXG4rYmVsb3coc21hbGxNb2JpbGUpXHJcblxyXG4gICAgLmhlcm8tdGl0bGUgXHJcbiAgICAgICAgZm9udC1zaXplOiAxLjVlbVxyXG4gICAgXHJcbiAgICAuaGVyby10ZXh0IFxyXG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7IiwiXHJcbi5tb2RhbCBcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICB6LWluZGV4OiAyMDAwO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHRvcDogMDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogY2xyZ2IoYmxjaywgMC44KTtcclxuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cig1cHgpO1xyXG5cclxuXHJcbi5tb2RhbC1jb250ZW50IFxyXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgY2xyKGJsY2tfMiksIGNscmdiKGJsY2ssLjUpKTtcclxuICAgIG1hcmdpbjogNSUgYXV0bztcclxuICAgIHBhZGRpbmc6IDJyZW07XHJcbiAgICBib3JkZXItcmFkaXVzOiAxNXB4O1xyXG4gICAgd2lkdGg6IDkwJTtcclxuICAgIG1heC13aWR0aDogNTAwcHg7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCBjbHJnYihwcmltLCAwLjMpO1xyXG4gICAgYW5pbWF0aW9uOiBtb2RhbFNsaWRlSW4gMC4zcyBlYXNlLW91dDtcclxuXHJcblxyXG5Aa2V5ZnJhbWVzIG1vZGFsU2xpZGVJbiBcclxuICAgIGZyb20gXHJcbiAgICAgICAgb3BhY2l0eTogMDtcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwcHgpO1xyXG4gICAgXHJcbiAgICB0byBcclxuICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcclxuICAgIFxyXG5cclxuXHJcbi5jbG9zZSBcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHJpZ2h0OiAxcmVtO1xyXG4gICAgdG9wOiAxcmVtO1xyXG4gICAgZm9udC1zaXplOiAycmVtO1xyXG4gICAgY29sb3I6Y2xyKHByaW0pXHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjNzIGVhc2U7XHJcblxyXG5cclxuLmNsb3NlOmhvdmVyIFxyXG4gICAgY29sb3I6Y2xyKHByaW0pXHJcblxyXG5cclxuLmNvbnRhY3QtZm9ybSAuZm9ybS1ncm91cCBcclxuICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcclxuXHJcblxyXG4uY29udGFjdC1mb3JtIGlucHV0LFxyXG4uY29udGFjdC1mb3JtIHRleHRhcmVhIFxyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBwYWRkaW5nOiAxNXB4IDIwcHg7XHJcbiAgICBib3JkZXI6IDJweCBzb2xpZCBjbHJnYihwcmltLCAwLjMpO1xyXG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcclxuICAgIGJhY2tncm91bmQ6IGNscmdiKHNlY29uZCwgMC4wNSk7XHJcbiAgICBjb2xvcjpjbHIoc2Vjb25kKTtcclxuICAgIGZvbnQtc2l6ZTogMXJlbTtcclxuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XHJcblxyXG5cclxuLmNvbnRhY3QtZm9ybSBpbnB1dDpmb2N1cyxcclxuLmNvbnRhY3QtZm9ybSB0ZXh0YXJlYTpmb2N1cyBcclxuICAgIG91dGxpbmU6IG5vbmU7XHJcbiAgICBib3JkZXItY29sb3I6IGNscihwcmltKVxyXG4gICAgYm94LXNoYWRvdzogMCAwIDIwcHggY2xyZ2IocHJpbSwgMC4zKTtcclxuXHJcblxyXG4uY29udGFjdC1mb3JtIHRleHRhcmVhIFxyXG4gICAgcmVzaXplOiB2ZXJ0aWNhbDtcclxuICAgIG1pbi1oZWlnaHQ6IDEwMHB4O1xyXG5cclxuIiwiXHJcbi5jb21wYW55LWxvZ28tYW5pbWF0ZWQgXHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIGdhcDogMS41cmVtO1xyXG4gICAgYW5pbWF0aW9uOiBmbG9hdCAzcyBlYXNlLWluLW91dCBpbmZpbml0ZTtcclxuXHJcbi5ob3VzZXMtZ2FsbGVyeSBcclxuICAgIGRpc3BsYXk6IGdyaWQ7XHJcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDM1MHB4LCAxZnIpKTtcclxuICAgIGdhcDogMnJlbTtcclxuXHJcbi5ob3VzZS1pdGVtIFxyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgYm9yZGVyLXJhZGl1czogMTVweDtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICBib3gtc2hhZG93OiAwIDIwcHggNDBweCBjbHJnYihibGNrLCAwLjUpO1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcclxuXHJcbi5ob3VzZS1pdGVtOmhvdmVyIFxyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMHB4KTtcclxuICAgIGJveC1zaGFkb3c6IDAgMzBweCA2MHB4IGNscmdiKGJsY2ssIDAuNyk7XHJcblxyXG4uaG91c2UtaXRlbSBpbWcgXHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogMjUwcHg7XHJcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcclxuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2U7XHJcblxyXG4uaG91c2UtaXRlbTpob3ZlciBpbWcgXHJcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XHJcblxyXG4rYmVsb3codClcclxuICAgIC5ob3VzZXMtZ2FsbGVyeSBcclxuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpXHJcbiAgICBcclxuICAgIC5ob3VzZS12YXJpYW50cyBcclxuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gICAgICAgIGdhcDogMXJlbTtcclxuICAgIFxyXG4gICAgIiwiLnByb2plY3Qtc2hvd2Nhc2UgXHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4ucHJvamVjdC1oZWFkZXIgXHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIG1hcmdpbi1ib3R0b206IDNyZW07XHJcblxyXG4uYW5pbWF0ZWQtbG9nbyBcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgZ2FwOiAwLjVyZW07XHJcbiAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDI1cHg7XHJcbiAgICBhbmltYXRpb246IHB1bHNlIDJzIGluZmluaXRlIGVhc2UtaW4tb3V0O1xyXG4gICAgd2lkdGg6IDE4MHB4O1xyXG5cclxuLmFuaW1hdGVkLWxvZ28gaSBcclxuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xyXG4gICAgY29sb3IgY2xyKGJsY2spXHJcblxyXG4uYW5pbWF0ZWQtbG9nbyBzcGFuIFxyXG4gICAgZm9udC1mYW1pbHk6ICdPc3dhbGQnLCBzYW5zLXNlcmlmO1xyXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xyXG4gICAgY29sb3IgY2xyKGJsY2spXHJcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgbGV0dGVyLXNwYWNpbmc6IDFweDtcclxuXHJcbi5wcm9qZWN0LWNvbnRlbnQgXHJcbiAgICBkaXNwbGF5OiBncmlkO1xyXG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxNTBweCAxZnIgMzAwcHg7XHJcbiAgICBnYXA6IDNyZW07XHJcbiAgICBhbGlnbi1pdGVtczogc3RhcnQ7XHJcblxyXG4vKiBMZWZ0IENvbnRyb2xzICovXHJcbi5wcm9qZWN0LWNvbnRyb2xzIFxyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcblxyXG4uZmxvb3ItYnV0dG9ucyBcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgZ2FwOiAxcmVtO1xyXG5cclxuLmZsb29yLWJ0biBcclxuICAgIGJhY2tncm91bmQ6IGNscmdiKGJsY2ssIDAuNyk7XHJcbiAgICBjb2xvciBjbHIocHJpbSlcclxuICAgIGJvcmRlcjogMnB4IHNvbGlkIGNscihwcmltKVxyXG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xyXG4gICAgei1pbmRleDogMTtcclxuICAgIGZvbnQtc2l6ZTogLjhlbTtcclxuICAgIHBhZGRpbmc6IDEycHggOHB4O1xyXG5cclxuLmZsb29yLWJ0bjo6YmVmb3JlIFxyXG4gICAgY29udGVudDogJyc7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDA7XHJcbiAgICBsZWZ0OiAtMTAwJTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCwgY2xyZ2IocHJpbSwgMC4yKSwgdHJhbnNwYXJlbnQpO1xyXG4gICAgdHJhbnNpdGlvbjogbGVmdCAwLjVzO1xyXG4gICAgei1pbmRleDogLTE7XHJcblxyXG4uZmxvb3ItYnRuOmhvdmVyOjpiZWZvcmUgXHJcbiAgICBsZWZ0OiAxMDAlO1xyXG5cclxuLmZsb29yLWJ0bi5hY3RpdmUgXHJcbiAgICBiYWNrZ3JvdW5kOiBjbHIocHJpbSlcclxuICAgIGNvbG9yIGNscihibGNrKVxyXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTtcclxuICAgIGJveC1zaGFkb3c6IDAgNXB4IDE1cHggY2xyZ2IocHJpbSwgMC40KTtcclxuXHJcbi5mbG9vci1idG46aG92ZXI6bm90KC5hY3RpdmUpIFxyXG4gICAgYmFja2dyb3VuZDogY2xyZ2IocHJpbSwgMC4xKTtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg1cHgpO1xyXG5cclxuLyogQ2VudGVyIENvbnRlbnQgKi9cclxuLnByb2plY3QtY2VudGVyIFxyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBnYXA6IDJyZW07XHJcblxyXG4uaG91c2UtbWFpbi1pbWFnZSBcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDE1cHg7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgYm94LXNoYWRvdzogMCAyMHB4IDQwcHggY2xyZ2IoYmxjaywgMC41KTtcclxuXHJcbi5ob3VzZS1tYWluLWltYWdlIGltZyBcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAzMDBweDtcclxuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xyXG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZTtcclxuXHJcbi5ob3VzZS1tYWluLWltYWdlOmhvdmVyIGltZyBcclxuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7XHJcblxyXG4uaG91c2UtcGxhbiBcclxuICAgIGJhY2tncm91bmQ6IGNscmdiKHNlY29uZCwgMC45NSk7XHJcbiAgICBib3JkZXItcmFkaXVzOiAxNXB4O1xyXG4gICAgcGFkZGluZzogMXJlbTtcclxuICAgIGJveC1zaGFkb3c6IDAgMTBweCAzMHB4IGNscmdiKGJsY2ssIDAuMyk7XHJcblxyXG4uaG91c2UtcGxhbiBpbWcgXHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogMjUwcHg7XHJcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcclxuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XHJcblxyXG4vKiBSaWdodCBDb250ZW50ICovXHJcbi5wcm9qZWN0LXJpZ2h0IFxyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBnYXA6IDJyZW07XHJcblxyXG4uaG91c2UtdmFyaWFudHMgXHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGdhcDogMXJlbTtcclxuXHJcbi52YXJpYW50LWltYWdlIFxyXG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICBib3gtc2hhZG93OiAwIDVweCAxNXB4IGNscmdiKGJsY2ssIDAuMyk7XHJcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBlYXNlO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG5cclxuXHJcbi52YXJpYW50LWltYWdlOmhvdmVyIFxyXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTtcclxuXHJcblxyXG4udmFyaWFudC1pbWFnZSBpbWcgXHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogODBweDtcclxuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xyXG5cclxuLmhvdXNlLWluZm8gXHJcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgIHBhZGRpbmc6IDJyZW0gMDtcclxuICAgIGJvdHRvbTogMDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICByaWdodDogMDtcclxuICAgIHBhZGRpbmc6IDFyZW0gMS4ycmVtIDEuNXJlbTtcclxuICAgIGNvbG9yOiBjbHIoc2Vjb25kKVxyXG5cclxuLmhvdXNlLWluZm8gaDMgXHJcbiAgICBjb2xvciBjbHIocHJpbSlcclxuICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcclxuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgIGxldHRlci1zcGFjaW5nOiAycHg7XHJcblxyXG5cclxuLnByb2plY3QtZGVzY3JpcHRpb24gXHJcbiAgICBjb2xvcjogY2xyKHNlY29uZF8yKVxyXG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjY7XHJcbiAgICB0ZXh0LWFsaWduOiBqdXN0aWZ5O1xyXG4gICAgZm9udC1zaXplOiAwLjk1cmVtO1xyXG5cclxuXHJcbi8qIFNwZWNzIGJveCBzdHlsZWQgbGlrZSBpbiB0aGUgaW1hZ2UgKi9cclxuLnNwZWNzLWJveCBcclxuICAgIGJhY2tncm91bmQtY29sb3I6IGNscihibGNrKTtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkIGNscihwcmltKVxyXG4gICAgYm9yZGVyLXJhZGl1czogMTVweDtcclxuICAgIHBhZGRpbmc6IC44cmVtO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuXHJcblxyXG4uc3BlY3MtYm94OjpiZWZvcmUgXHJcbiAgICBjb250ZW50OiAnJztcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogMDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICByaWdodDogMDtcclxuICAgIGJvdHRvbTogMDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDE1cHg7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCBjbHIocHJpbSlcclxuICAgIGJveC1zaGFkb3c6IDAgMCAxNXB4IGNscmdiKHByaW0sIDAuMyk7XHJcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuXHJcblxyXG4uc3BlY3MtYm94IGg0IFxyXG4gICAgY29sb3IgY2xyKHByaW0pXHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XHJcbiAgICBmb250LXdlaWdodDogNjAwO1xyXG5cclxuXHJcbi5zcGVjcy1saXN0IFxyXG4gICAgbGlzdC1zdHlsZTogbm9uZTtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgICBtYXJnaW46IDA7XHJcblxyXG5cclxuLnNwZWNzLWxpc3QgbGkgXHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGdhcDogMXJlbTtcclxuICAgIG1hcmdpbi1ib3R0b206IDAuOHJlbTtcclxuICAgIGNvbG9yIGNscihwcmltKVxyXG5cclxuXHJcbi5zcGVjcy1saXN0IGxpIGkgXHJcbiAgICBmb250LXNpemU6IDEuMnJlbTtcclxuICAgIHdpZHRoOiAyNXB4O1xyXG4gICAgaGVpZ2h0OiAyNXB4O1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIGNvbG9yIGNscihwcmltKVxyXG5cclxuXHJcbi5zcGVjcy1saXN0IGxpIHNwYW4gXHJcbiAgICBmb250LXNpemU6IDFyZW07XHJcbiAgICBjb2xvciBjbHIocHJpbSlcclxuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XHJcblxyXG4rYmVsb3codClcclxuXHJcbiAgICAucHJvamVjdC1jb250ZW50IFxyXG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xyXG4gICAgICAgIGdhcDogMnJlbTtcclxuICAgICAgICBcclxuICAgIFxyXG4gICAgLnByb2plY3QtdGl0bGUgXHJcbiAgICAgICAgZm9udC1zaXplOiAyLjVyZW07XHJcbiAgICBcclxuICAgIFxyXG4gICAgLmZsb29yLWJ1dHRvbnMgXHJcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICAgICAgZ2FwOiAwLjVyZW07XHJcbiAgICBcclxuICAgIFxyXG4rYmVsb3coc20pXHJcbiAgICAuYW5pbWF0ZWQtbG9nb1xyXG4gICAgICAgIHdpZHRoIDEyNXB4XHJcbiAgICBcclxuICAgIC5wcm9qZWN0LXRpdGxlIFxyXG4gICAgICAgIGZvbnQtc2l6ZTogMS44cmVtO1xyXG4gICAgXHJcbiAgICAuc3BlY3MtYm94IGg0XHJcbiAgICAgICAgZm9udC1zaXplOiAxZW1cclxuXHJcbiAgICAuZmxvb3ItYnV0dG9uc1xyXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3dcclxuXHJcbiAgICAuZmxvb3ItYnRuXHJcbiAgICAgICAgd2lkdGggNDglXHJcbiAgICBcclxuICAgICIsIi8qINCS0LXRgNGF0L3QuNC5INCx0LvQvtC6OiDQodC70LDQudC0LdGI0L7RgyAqL1xyXG4uc2xpZGVzaG93LWNvbnRhaW5lciBcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIC8vIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NSk7XHJcbiAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xyXG4gICAgcGFkZGluZzogMjBweDtcclxuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XHJcbiAgICBib3gtc2hhZG93OiAwIDIwcHggNDBweCBjbHJnYihibGNrLCAwLjEpO1xyXG4gICAgLy8gYm9yZGVyIDJweCBzb2xpZCBjbHIocHJpbSlcclxuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcclxuXHJcbi5zbGlkZXMtd3JhcHBlciBcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGhlaWdodDogNDAwcHg7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgYm9yZGVyLXJhZGl1czogMTVweDtcclxuICAgIC8vIGJhY2tncm91bmQ6ICNmOGY5ZmE7XHJcblxyXG4uc2xpZGUgXHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDA7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICBvcGFjaXR5OiAwO1xyXG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjhzIGVhc2UtaW4tb3V0O1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHJcbi5zbGlkZS5hY3RpdmUgXHJcbiAgICBvcGFjaXR5OiAxO1xyXG5cclxuLy8gLnNsaWRlIGltZyBcclxuLy8gICAgIG1heC13aWR0aDogMTAwJTtcclxuLy8gICAgIG1heC1oZWlnaHQ6IDEwMCU7XHJcbi8vICAgICBvYmplY3QtZml0OiBjb3ZlcjtcclxuLy8gICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XHJcblxyXG4vKiDQodGC0YDQtdC70LrQuCDQvdCw0LLQuNCz0LDRhtC40LggKi9cclxuLm5hdi1hcnJvdyBcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogNTAlO1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xyXG4gICAgLy8gYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpO1xyXG4gICAgd2lkdGg6IDUwcHg7XHJcbiAgICBoZWlnaHQ6IDUwcHg7XHJcbiAgICBwYWRkaW5nOiB1bnNldFxyXG4gICAgY29sb3I6ICMzMzM7XHJcbiAgICB6LWluZGV4OiAxMDtcclxuXHJcbi5uYXYtYXJyb3c6aG92ZXIgXHJcbiAgICAvLyBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDEpO1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHNjYWxlKDEuMSk7XHJcbiAgICBib3gtc2hhZG93OiAwIDZweCAyMHB4IGNscmdiKGJsY2ssIDAuMyk7XHJcblxyXG4ucHJldi1hcnJvdyBcclxuICAgIGxlZnQ6IDMwcHg7XHJcblxyXG4ubmV4dC1hcnJvdyBcclxuICAgIHJpZ2h0OiAzMHB4O1xyXG5cclxuLyog0JjQvdC00LjQutCw0YLQvtGA0Ysg0YHQu9Cw0LnQtNC+0LIgKi9cclxuLnNsaWRlLWluZGljYXRvcnMgXHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBnYXA6IDEwcHg7XHJcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xyXG5cclxuLmluZGljYXRvciBcclxuICAgIHdpZHRoOiAxMnB4O1xyXG4gICAgaGVpZ2h0OiAxMnB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgYmFja2dyb3VuZDogY2xyZ2IoYmxjaywgMC4zKTtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XHJcblxyXG4uaW5kaWNhdG9yLmFjdGl2ZSBcclxuICAgIGJhY2tncm91bmQ6IGNscihwcmltKVxyXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjIpO1xyXG5cclxuLmluZGljYXRvcjpob3ZlciBcclxuICAgIGJhY2tncm91bmQ6IHJnYmEoMTAyLCAxMjYsIDIzNCwgMC43KTtcclxuXHJcbi8qINCh0YDQtdC00L3QuNC5INCx0LvQvtC6OiDQndCw0LLQuNCz0LDRhtC40L7QvdC90LDRjyDQv9Cw0L3QtdC70YwgKi9cclxuLm5hdmlnYXRpb24tcGFuZWwgXHJcbiAgICAvLyBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTUpO1xyXG4gICAgLy8gYm9yZGVyLXJhZGl1czogMjBweDtcclxuICAgIHBhZGRpbmc6IDI1cHg7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xyXG4gICAgLy8gYm94LXNoYWRvdzogMCAyMHB4IDQwcHggY2xyZ2IoYmxjaywgMC4xKTtcclxuICAgIC8vIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcclxuXHJcbi5wcm9qZWN0LWJ1dHRvbnMgXHJcbiAgICBkaXNwbGF5OiBncmlkO1xyXG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgxNTBweCwgMWZyKSk7XHJcbiAgICBnYXA6IDE1cHg7XHJcbiAgICBtYXgtd2lkdGg6IDEwMDBweDtcclxuICAgIG1hcmdpbjogMCBhdXRvO1xyXG5cclxuLnByb2plY3QtYnRuIFxyXG4gICAgcGFkZGluZzogMTVweCAyMHB4O1xyXG4gICAgYm9yZGVyOiBub25lO1xyXG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcclxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNmMDkzZmIgMCUsICNmNTU3NmMgMTAwJSk7XHJcbiAgICBjb2xvcjogY2xyKHNlY29uZCk7XHJcbiAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcclxuICAgIGJveC1zaGFkb3c6IDAgNHB4IDE1cHggY2xyZ2IoYmxjaywgMC4yKTtcclxuXHJcbi5wcm9qZWN0LWJ0bjpob3ZlciBcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTtcclxuICAgIGJveC1zaGFkb3c6IDAgNnB4IDIwcHggY2xyZ2IoYmxjaywgMC4zKTtcclxuXHJcbi5wcm9qZWN0LWJ0bi5hY3RpdmUgXHJcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjNjY3ZWVhIDAlLCAjNzY0YmEyIDEwMCUpO1xyXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTtcclxuICAgIGJveC1zaGFkb3c6IDAgOHB4IDI1cHggcmdiYSgxMDIsIDEyNiwgMjM0LCAwLjQpO1xyXG5cclxuLyog0J3QuNC20L3QuNC5INCx0LvQvtC6OiDQotC10LrRgdGC0L7QstCw0Y8g0L7QsdC70LDRgdGC0YwgKi9cclxuLnRleHQtY29udGVudCBcclxuICAgIC8vIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NSk7XHJcbiAgICAvLyBib3JkZXItcmFkaXVzOiAyMHB4O1xyXG4gICAgcGFkZGluZzogMzBweDtcclxuICAgIC8vIGJveC1zaGFkb3c6IDAgMjBweCA0MHB4IGNscmdiKGJsY2ssIDAuMSk7XHJcbiAgICAvLyBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblxyXG4vLyAucHJvamVjdC10aXRsZSBcclxuICAgIC8vIGZvbnQtc2l6ZTogMi41cmVtO1xyXG4gICAgLy8gbWFyZ2luLWJvdHRvbTogMjBweDtcclxuICAgIC8vIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICM2NjdlZWEgMCUsICM3NjRiYTIgMTAwJSk7XHJcbiAgICAvLyAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogdGV4dDtcclxuICAgIC8vIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgIC8vIGJhY2tncm91bmQtY2xpcDogdGV4dDtcclxuICAgIC8vIGZvbnQtd2VpZ2h0OiA3MDA7XHJcblxyXG4ucHJvamVjdC1kZXNjcmlwdGlvbiBcclxuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xyXG4gICAgbGluZS1oZWlnaHQ6IDEuODtcclxuICAgIGNvbG9yOiAjNjY2O1xyXG4gICAgbWFyZ2luOiAwIGF1dG87XHJcblxyXG4vKiDQkNC90LjQvNCw0YbQuNC4ICovXHJcbkBrZXlmcmFtZXMgZmFkZUluIFxyXG4gICAgZnJvbSBcclxuICAgICAgICBvcGFjaXR5OiAwO1xyXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMHB4KTtcclxuICAgIFxyXG4gICAgdG8gXHJcbiAgICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XHJcblxyXG4uc2xpZGUuYWN0aXZlIFxyXG4gICAgYW5pbWF0aW9uOiBmYWRlSW4gMC44cyBlYXNlLW91dDtcclxuXHJcbi8qINCX0LDQs9GA0YPQt9C60LAg0LjQt9C+0LHRgNCw0LbQtdC90LjQuSAqL1xyXG4uc2xpZGUgaW1nIFxyXG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZTtcclxuXHJcbi5zbGlkZSBpbWc6aG92ZXIgXHJcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDUpO1xyXG5cclxuK2JlbG93KDc2OHB4KSBcclxuICAgIC5jb250YWluZXIgXHJcbiAgICAgICAgcGFkZGluZzogMTVweDtcclxuICAgIFxyXG4gICAgLnNsaWRlcy13cmFwcGVyIFxyXG4gICAgICAgIGhlaWdodDogMzAwcHg7XHJcbiAgICAgIFxyXG4gICAgLm5hdi1hcnJvdyBcclxuICAgICAgICB3aWR0aDogNDBweDtcclxuICAgICAgICBoZWlnaHQ6IDQwcHg7XHJcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xyXG4gICAgXHJcbiAgICAucHJldi1hcnJvdyBcclxuICAgICAgICBsZWZ0OiAxNXB4O1xyXG4gICAgXHJcbiAgICAubmV4dC1hcnJvdyBcclxuICAgICAgICByaWdodDogMTVweDtcclxuICAgICBcclxuICAgIC5wcm9qZWN0LWJ1dHRvbnMgXHJcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgxMjBweCwgMWZyKSk7XHJcbiAgICAgICAgZ2FwOiAxMHB4O1xyXG4gICAgXHJcbiAgICAucHJvamVjdC1idG4gXHJcbiAgICAgICAgcGFkZGluZzogMTJweCAxNXB4O1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgIFxyXG4gICAgLnByb2plY3QtdGl0bGUgXHJcbiAgICAgICAgZm9udC1zaXplOiAycmVtO1xyXG4gICAgXHJcbiAgICAucHJvamVjdC1kZXNjcmlwdGlvbiBcclxuICAgICAgICBmb250LXNpemU6IDFyZW07XHJcbiAgICBcclxuK2JlbG93KDQ4MHB4KSBcclxuICAgIC5zbGlkZXMtd3JhcHBlciBcclxuICAgICAgICBoZWlnaHQ6IDI1MHB4O1xyXG4gICAgXHJcbiAgICAucHJvamVjdC1idXR0b25zIFxyXG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XHJcbiAgICBcclxuICAgIC5wcm9qZWN0LXRpdGxlIFxyXG4gICAgICAgIGZvbnQtc2l6ZTogMS44cmVtO1xyXG4gIFxyXG5cclxuIiwiXHJcbi5zdXBwbGllcnMtZ3JpZFxyXG4gICAgZGlzcGxheTogZ3JpZDtcclxuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMjAwcHgsIDFmcikpO1xyXG4gICAgZ2FwOiAycmVtO1xyXG4gICAgbWFyZ2luLXRvcDogM3JlbTtcclxuICAgIFxyXG4uc3VwcGxpZXItbG9nbyBcclxuICAgIGJhY2tncm91bmQ6IGNscmdiKHNlY29uZCwgMC4wNSk7XHJcbiAgICBib3JkZXItcmFkaXVzOiAxNXB4O1xyXG4gICAgcGFkZGluZzogMnJlbTtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xyXG4gICAgYXNwZWN0LXJhdGlvOiAxO1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgY2xyZ2IocHJpbSwgMC4yKTtcclxuXHJcblxyXG4uc3VwcGxpZXItaWNvbiBcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgZ2FwOiAxLjVyZW07XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogMTAwJTtcclxuXHJcblxyXG4uc3VwcGxpZXItaWNvbiBpIFxyXG4gICAgZm9udC1zaXplOiAzLjVyZW07XHJcbiAgICBjb2xvciBjbHIocHJpbSlcclxuICAgIHRyYW5zaXRpb246IGFsbCAwLjVzIGVhc2U7XHJcblxyXG5cclxuLnN1cHBsaWVyLWljb24gc3BhbiBcclxuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xyXG4gICAgY29sb3I6Y2xyKHNlY29uZCk7XHJcbiAgICBmb250LXdlaWdodDogNTAwO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcclxuXHJcblxyXG4uc3VwcGxpZXItbG9nbzpob3ZlciBcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTBweCkgcm90YXRlKDNkZWcpO1xyXG4gICAgYm94LXNoYWRvdzogMCAyMHB4IDQwcHggY2xyZ2IocHJpbSwgMC40KTtcclxuICAgIGJvcmRlci1jb2xvcjogY2xyKHByaW0pO1xyXG4gICAgYmFja2dyb3VuZDogY2xyZ2IocHJpbSwgMC4xKTtcclxuXHJcblxyXG4uc3VwcGxpZXItbG9nbzpob3ZlciAuc3VwcGxpZXItaWNvbiBpIFxyXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjIpIHJvdGF0ZSgtMTBkZWcpO1xyXG4gICAgY29sb3I6IGNscihzZWNvbmRfMyk7XHJcblxyXG5cclxuLnN1cHBsaWVyLWxvZ286aG92ZXIgLnN1cHBsaWVyLWljb24gc3BhbiBcclxuICAgIGNvbG9yIGNscihwcmltKVxyXG5cclxuICtiZWxvdyh0KVxyXG4gICAgLnN1cHBsaWVycy1ncmlkXHJcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgMTUycHgpO1xyXG4gICAgICAgIGdhcDogMXJlbTtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlclxyXG4gICAgXHJcbiAgICAuc3VwcGxpZXItaWNvbiBzcGFuIFxyXG4gICAgICAgIGZvbnQtc2l6ZTogMWVtXHJcblxyXG4rYmVsb3coc20pXHJcbiAgICAuc3VwcGxpZXJzLWdyaWQgXHJcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgMTE0cHgpO1xyXG4gICAgICAgIGdhcDogLjVyZW07XHJcbiAgICBcclxuICAgIC5zdXBwbGllci1pY29uIHNwYW5cclxuICAgICAgICBmb250LXNpemU6IC44ZW0iLCJcclxuLnRlY2hub2xvZ3ktZ3JpZCBcclxuICAgIGRpc3BsYXk6IGdyaWQ7XHJcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDM1MHB4LCAxZnIpKTtcclxuICAgIGdhcDogMnJlbTtcclxuXHJcbi50ZWNoLWl0ZW0gXHJcbiAgICBiYWNrZ3JvdW5kOiBjbHJnYihwcmltLCAwLjA1KTtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkIGNscmdiKHByaW0sIDAuMik7XHJcbiAgICBib3JkZXItcmFkaXVzOiAxNXB4O1xyXG4gICAgcGFkZGluZzogMnJlbTtcclxuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XHJcblxyXG4udGVjaC1pdGVtOmhvdmVyIFxyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01cHgpO1xyXG4gICAgYm9yZGVyLWNvbG9yOiBjbHIocHJpbSk7XHJcbiAgICBib3gtc2hhZG93OiAwIDE1cHggMzBweCBjbHJnYihwcmltLCAwLjIpO1xyXG5cclxuLnRlY2gtaWNvbiBcclxuICAgIGNvbG9yOiBjbHIocHJpbSk7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xyXG4gICAgZGlzcGxheTogZmxleFxyXG4gICAgZ2FwIDEwcHhcclxuXHJcbi50ZWNoLWl0ZW0gdWwgXHJcbiAgICBsaXN0LXN0eWxlOiBub25lO1xyXG4gICAgbWFyZ2luLXRvcDogMXJlbTtcclxuXHJcbi50ZWNoLWl0ZW0gbGkgXHJcbiAgICBwYWRkaW5nOiAwLjVyZW0gMDtcclxuICAgIGNvbG9yOiBjbHIoc2Vjb25kXzIpO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgcGFkZGluZy1sZWZ0OiAxLjVyZW07XHJcblxyXG5cclxuLnRlY2gtaXRlbSBsaTo6YmVmb3JlIFxyXG4gICAgY29udGVudDogJ+Kckyc7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgY29sb3I6IGNscihwcmltKTtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG5cclxuK2JlbG93KHRhYmxldClcclxuIFxyXG4gICAgLnRlY2hub2xvZ3ktZ3JpZCBcclxuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcclxuICAgIFxyXG4gICAgLnNlY3Rpb24tYWN0aW9ucyBcclxuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAgIGdhcDogMXJlbTtcclxuXHJcbitiZWxvdyhzbWFsbE1vYmlsZSlcclxuICAgIC50ZWNobm9sb2d5LXNlY3Rpb24gaDNcclxuICAgICAgICBmb250LXNpemU6IDFlbVxyXG4gICAgXHJcbiAgICAudGVjaC1pdGVtIGxpXHJcbiAgICAgICAgZm9udC1zaXplOiAuOGVtIiwiLmZvb3RlciBcclxuICAgIGJhY2tncm91bmQ6IGNscmdiKGJsY2ssIC45NSlcclxuICAgIHBhZGRpbmc6IDNyZW0gMCAxcmVtO1xyXG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIGNscmdiKHByaW0sIDAuMik7XHJcblxyXG4uZm9vdGVyLWNvbnRlbnQgXHJcbiAgICBkaXNwbGF5OiBncmlkO1xyXG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgyNTBweCwgMWZyKSk7XHJcbiAgICBnYXA6IDJyZW07XHJcbiAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xyXG4gICAganVzdGlmeS1pdGVtczogIGNlbnRlclxyXG5cclxuLmZvb3Rlci1sb2dvIFxyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBnYXA6IDFyZW07XHJcblxyXG4uZm9vdGVyLWxvZ28taWNvbiBcclxuICAgIHdpZHRoOiA1MHB4O1xyXG4gICAgaGVpZ2h0OiA1MHB4O1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHJcbi5mb290ZXItbG9nby1pY29uIGkgXHJcbiAgICBmb250LXNpemU6IDI1cHg7XHJcbiAgICBjb2xvcjogY2xyKGJsY2spXHJcblxyXG4uZm9vdGVyLXNlY3Rpb24gaDQgXHJcbiAgICBjb2xvcjogY2xyKHByaW0pXHJcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xyXG5cclxuLmZvb3Rlci1zZWN0aW9uIHAgXHJcbiAgICBjb2xvcjogY2xyKHNlY29uZF8yKTtcclxuICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgZ2FwOiAwLjVyZW07XHJcblxyXG5cclxuLmZvb3Rlci1zb2NpYWwgXHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGdhcDogMC41cmVtO1xyXG5cclxuXHJcbi5mb290ZXItc29jaWFsIGEgXHJcbiAgICBjb2xvcjogY2xyKHNlY29uZF8yKTtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgIHRyYW5zaXRpb246IGNvbG9yIDAuM3MgZWFzZTtcclxuXHJcblxyXG4uZm9vdGVyLXNvY2lhbCBhOmhvdmVyIFxyXG4gICAgY29sb3I6IGNscihwcmltKVxyXG5cclxuLmZvb3Rlci1ib3R0b20gXHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBwYWRkaW5nLXRvcDogMnJlbTtcclxuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCBjbHJnYihwcmltLCAwLjEpO1xyXG4gICAgY29sb3I6ICM4ODg7XHJcblxyXG4uZm9vdGVyLWJvdHRvbSBhICBcclxuICAgIGNvbG9yOiBjbHIoc2Vjb25kKVxyXG5cclxuLmZvb3Rlci1ib3R0b20gYTpob3ZlciBcclxuICAgIGNvbG9yOiBjbHIocHJpbSlcclxuICAgIFxyXG4rYmVsb3codClcclxuXHJcbiAgICAuZm9vdGVyLWxvZ29cclxuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgXHJcbiAgICAuZm9vdGVyLWxvZ28taWNvblxyXG4gICAgICAgIHdpZHRoOiA5NnB4O1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHVuc2V0O1xyXG4gICAgICAgIGJvcmRlcjogdW5zZXQ7XHJcbiAgICAgICAgYmFja2dyb3VuZDogdW5zZXQ7XHJcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcclxuICAgIFxyXG4gICAgLmZvb3Rlci1zZWN0aW9uIHBcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcblxyXG4gICAgXHJcbiAgICAuZm9vdGVyLWNvbnRlbnQgXHJcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKVxyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHJcblxyXG4rYmVsb3coc20pXHJcbiAgICAuZm9vdGVyLWNvbnRlbnQgXHJcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMSwgMWZyKVxyXG4iXX0= */