{"css":"*#dm *.dmBody div.u_1980417222\n{\n\tbackground-image:url(https://dp-cdn.multiscreensite.com/d_gallery/firstImages/a_City_skyline_1600_754_d.jpg) !important;\n}\n*#dm *.dmBody div.u_1582953132\n{\n\tbackground-image:url(https://dp-cdn.multiscreensite.com/d_gallery/firstImages/a_City_skyline_1600_754_d.jpg) !important;\n}\n*#dm *.dmBody a.u_1145340895.hover span.text\n{\n\tcolor:rgb(255,255,255) !important;\n}\n*#dm *.dmBody a.u_1145340895:hover span.text\n{\n\tcolor:rgb(255,255,255) !important;\n}\n*#dm *.dmBody a.span.textonly\n{\n\tcolor:rgb(255,255,255) !important;\n}\n*#dm *.dmBody div.u_1516620858\n{\n\twidth:775px !important;\n\tmax-width:100% !important;\n\tdisplay:block !important;\n}\n*#dm *.dmBody div.u_1694205906\n{\n\tbackground-color:rgba(0,0,0,0) !important;\n}\n*#dm *.dmBody div.u_1487980814\n{\n\tbackground-color:rgba(0,0,0,0) !important;\n}\n*#dm *.dmBody a.u_1145340895.hover\n{\n\tcolor:rgb(122,122,122) !important;\n\tbackground-color:rgb(122,122,122) !important;\n\tborder-style:solid !important;\n\tborder-color:rgba(0,0,0,0) !important;\n}\n*#dm *.dmBody a.u_1145340895:hover\n{\n\tcolor:rgb(122,122,122) !important;\n\tbackground-color:rgb(122,122,122) !important;\n\tborder-style:solid !important;\n\tborder-color:rgba(0,0,0,0) !important;\n}\n*#dm *.dmBody div.dmPopupInner\n{\n\tbackground-color:rgb(255,255,255) !important;\n\tborder-style:solid !important;\n\tborder-width:0px !important;\n\t-webkit-box-shadow:0px 0px 10px rgba(0,0,0,0.30) !important;\n\tbox-shadow:0px 0px 10px rgba(0,0,0,0.30) !important;\n\t-moz-box-shadow:0px 0px 10px rgba(0,0,0,0.30) !important;\n\tborder-radius:10px !important;\n\t-moz-border-radius:10px !important;\n\t-webkit-border-radius:10px !important;\n\tbackground-image:none !important;\n\tbackground-repeat:no-repeat !important;\n\tbackground-size:cover !important;\n\tbackground-position:top right !important;\n}\n*#dm *.dmBody div.u_dm_content\n{\n\tbackground-image:none !important;\n}\n*#dm *.dmBody div.u_1111986376\n{\n\tbackground-color:rgb(255,255,255) !important;\n}\n*#dm *.dmBody a.u_1145340895 span.text\n{\n\ttext-align:center !important;\n\tfont-weight:normal !important;\n\tfont-family:'Roboto' !important;\n\tcolor:rgb(255,255,255) !important;\n}\n*#dm *.dmBody a.u_1145340895 span.textonly\n{\n\ttext-align:center !important;\n\tfont-weight:normal !important;\n\tfont-family:'Roboto' !important;\n\tcolor:rgb(255,255,255) !important;\n}\n*#dm *.dmBody h1.u_1312640753\n{\n\tline-height:normal !important;\n}\n*#dm *.dmBody div.u_1364864902\n{\n\tline-height:normal !important;\n\tfont-family:roboto !important;\n}\n*#dm *.dmBody *.allWrapper .dmPopupInner\n{\n\tbackground-color:var(--color_1) !important;\n}\n*#dm *.dmBody a.u_1145340895\n{\n\tcolor:rgb(95,95,95) !important;\n\tbackground-color:var(--color_5) !important;\n\tborder-radius:0px !important;\n\t-moz-border-radius:0px !important;\n\t-webkit-border-radius:0px !important;\n\t-webkit-box-shadow:none !important;\n\tbox-shadow:none !important;\n\t-moz-box-shadow:none !important;\n\tborder-style:solid !important;\n\tborder-color:rgb(252,199,58) !important;\n\tborder-width:0px !important;\n}\n","additionalWidgetCss":"/**/.dmNewParagraph[data-version] .text-align-left{text-align:left!important}.dmNewParagraph[data-version] .text-align-center{text-align:center!important}.dmNewParagraph[data-version] .text-align-right{text-align:right!important}\n.dmNewParagraph[data-version] .text-align-justify{text-align:justify!important}.dmNewParagraph[data-version] .ql-indent-1{padding:0 1em;padding-inline-end:0;padding-inline-start:3em}.dmNewParagraph[data-version] .ql-indent-2{padding:0 2em;padding-inline-end:0;padding-inline-start:6em}\n.dmNewParagraph[data-version] .ql-indent-3{padding:0 3em;padding-inline-end:0;padding-inline-start:9em}.dmNewParagraph[data-version] .ql-indent-4{padding:0 4em;padding-inline-end:0;padding-inline-start:12em}\n.dmNewParagraph[data-version] .ql-indent-5{padding:0 5em;padding-inline-end:0;padding-inline-start:15em}.dmNewParagraph[data-version] .ql-indent-6{padding:0 6em;padding-inline-end:0;padding-inline-start:18em}\n.dmNewParagraph[data-version] .ql-indent-7{padding:0 7em;padding-inline-end:0;padding-inline-start:21em}.dmNewParagraph[data-version] .ql-indent-8{padding:0 8em;padding-inline-end:0;padding-inline-start:24em}\n.dmNewParagraph[data-version] .ql-indent-9{padding:0 9em;padding-inline-end:0;padding-inline-start:27em}.dmNewParagraph[data-version]{line-height:initial}.dmNewParagraph[data-version] [class*=size-]{width:auto!important;height:auto!important}\n.dmNewParagraph[data-version] h1,.dmNewParagraph[data-version] h2,.dmNewParagraph[data-version] h3,.dmNewParagraph[data-version] h4,.dmNewParagraph[data-version] h5,.dmNewParagraph[data-version] h6,.dmNewParagraph[data-version] ol,.dmNewParagraph[data-version] p,.dmNewParagraph[data-version] ul{margin-top:0;margin-bottom:0}\n.dmNewParagraph[data-version] ol,.dmNewParagraph[data-version] ul{padding:0;counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}.dmNewParagraph[data-version] ol>li,.dmNewParagraph[data-version] ul>li{list-style-type:none;text-indent:-1.5em;margin:0 1em;margin-inline-end:0;margin-inline-start:2em}\n.dmNewParagraph[data-version] ol>li:before,.dmNewParagraph[data-version] ul>li:before{min-width:1em;display:inline-block;margin-right:.5em;margin-inline-start:0;margin-inline-end:.5em;text-align:right;text-align:end}\n.dmNewParagraph[data-version] ul .ql-indent-1{counter-reset:list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;counter-increment:list-1}.dmNewParagraph[data-version] ul .ql-indent-1:before{font-weight:700;content:\"○\"}\n.dmNewParagraph[data-version] ul .ql-indent-2{counter-reset:list-3 list-4 list-5 list-6 list-7 list-8 list-9;counter-increment:list-2}.dmNewParagraph[data-version] ul .ql-indent-2:before,.dmNewParagraph[data-version] ul .ql-indent-3:before,.dmNewParagraph[data-version] ul .ql-indent-4:before,.dmNewParagraph[data-version] ul .ql-indent-5:before,.dmNewParagraph[data-version] ul .ql-indent-6:before,.dmNewParagraph[data-version] ul .ql-indent-7:before,.dmNewParagraph[data-version] ul .ql-indent-8:before,.dmNewParagraph[data-version] ul .ql-indent-9:before{font-weight:700;content:\"■\"}\n.dmNewParagraph[data-version] ul .ql-indent-3{counter-reset:list-4 list-5 list-6 list-7 list-8 list-9;counter-increment:list-3}.dmNewParagraph[data-version] ul .ql-indent-4{counter-reset:list-5 list-6 list-7 list-8 list-9;counter-increment:list-4}\n.dmNewParagraph[data-version] ul .ql-indent-5{counter-reset:list-6 list-7 list-8 list-9;counter-increment:list-5}.dmNewParagraph[data-version] ul .ql-indent-6{counter-reset:list-7 list-8 list-9;counter-increment:list-6}\n.dmNewParagraph[data-version] ul .ql-indent-7{counter-reset:list-8 list-9;counter-increment:list-7}.dmNewParagraph[data-version] ul .ql-indent-8{counter-reset:list-9;counter-increment:list-8}.dmNewParagraph[data-version] ul .ql-indent-9{counter-reset:list-10 list-9;counter-increment:list-9}\n.dmNewParagraph[data-version] ul>li:before{font-weight:700;content:\"•\";font-family:Arial}.dmNewParagraph[data-version] ul.custom-list-1>li:not([class^=ql-indent-]):not([class*=\" ql-indent-\"]):before{content:\"○\";transform:scale(1);transform-origin:center right}\n.dmNewParagraph[data-version] ul.custom-list-2>li:not([class^=ql-indent-]):not([class*=\" ql-indent-\"]):before{content:\"★\";transform:scale(.7);transform-origin:center right}\n.dmNewParagraph[data-version] ul.custom-list-3>li:not([class^=ql-indent-]):not([class*=\" ql-indent-\"]):before{content:\"➞\";transform:scale(.8);transform-origin:center right}\n.dmNewParagraph[data-version] ul.custom-list-4>li:not([class^=ql-indent-]):not([class*=\" ql-indent-\"]):before{content:\"+\";transform:scale(.7);transform-origin:center right}\n.dmNewParagraph[data-version] ul.custom-list-5>li:not([class^=ql-indent-]):not([class*=\" ql-indent-\"]):before{content:\"-\";transform:scale(.7);transform-origin:center right}\n.dmNewParagraph[data-version] ul.custom-list-6>li:not([class^=ql-indent-]):not([class*=\" ql-indent-\"]):before{content:\"✓\";transform:scale(.8);transform-origin:center right}\n.dmNewParagraph[data-version] ul.custom-list-7>li:not([class^=ql-indent-]):not([class*=\" ql-indent-\"]):before{content:\"✗\";transform:scale(.8);transform-origin:center right}\n.dmNewParagraph[data-version] ol .ql-indent-1{counter-reset:list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;counter-increment:list-1}.dmNewParagraph[data-version] ol .ql-indent-1:before{content:counter(list-1,lower-alpha) \". \"}\n.dmNewParagraph[data-version] ol .ql-indent-2{counter-reset:list-3 list-4 list-5 list-6 list-7 list-8 list-9;counter-increment:list-2}.dmNewParagraph[data-version] ol .ql-indent-2:before{content:counter(list-2,lower-roman) \". \"}\n.dmNewParagraph[data-version] ol .ql-indent-3{counter-reset:list-4 list-5 list-6 list-7 list-8 list-9;counter-increment:list-3}.dmNewParagraph[data-version] ol .ql-indent-3:before{content:counter(list-3,decimal) \". \"}\n.dmNewParagraph[data-version] ol .ql-indent-4{counter-reset:list-5 list-6 list-7 list-8 list-9;counter-increment:list-4}.dmNewParagraph[data-version] ol .ql-indent-4:before{content:counter(list-4,lower-alpha) \". \"}\n.dmNewParagraph[data-version] ol .ql-indent-5{counter-reset:list-6 list-7 list-8 list-9;counter-increment:list-5}.dmNewParagraph[data-version] ol .ql-indent-5:before{content:counter(list-5,lower-roman) \". \"}\n.dmNewParagraph[data-version] ol .ql-indent-6{counter-reset:list-7 list-8 list-9;counter-increment:list-6}.dmNewParagraph[data-version] ol .ql-indent-6:before{content:counter(list-6,decimal) \". \"}\n.dmNewParagraph[data-version] ol .ql-indent-7{counter-reset:list-8 list-9;counter-increment:list-7}.dmNewParagraph[data-version] ol .ql-indent-7:before{content:counter(list-7,lower-alpha) \". \"}\n.dmNewParagraph[data-version] ol .ql-indent-8{counter-reset:list-9;counter-increment:list-8}.dmNewParagraph[data-version] ol .ql-indent-8:before{content:counter(list-8,lower-roman) \". \"}\n.dmNewParagraph[data-version] ol .ql-indent-9{counter-reset:list-10 list-9;counter-increment:list-9}.dmNewParagraph[data-version] ol .ql-indent-9:before{content:counter(list-9,decimal) \". \"}\n.dmNewParagraph[data-version] ol li{counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;counter-increment:list-0}.dmNewParagraph[data-version] ol li:before{content:counter(list-0,decimal) \". \"}\n.dmNewParagraph[data-version] a{vertical-align:initial}@media(min-width:768px) and (max-width:1024px){.dmNewParagraph[data-version] .t-text-align-left{text-align:left!important}.dmNewParagraph[data-version] .t-text-align-center{text-align:center!important}\n.dmNewParagraph[data-version] .t-text-align-right{text-align:right!important}.dmNewParagraph[data-version] .t-text-align-justify{text-align:justify!important}}@media(max-width:767px){.dmRoot .dmNewParagraph[data-version] .m-text-align-left{text-align:left!important}\n.dmRoot .dmNewParagraph[data-version] .m-text-align-center{text-align:center!important}.dmRoot .dmNewParagraph[data-version] .m-text-align-right{text-align:right!important}.dmRoot .dmNewParagraph[data-version] .m-text-align-justify{text-align:justify!important}\n}.inlineBindingLink{color:inherit!important;text-decoration:inherit!important}/**/.imageWidget{position:relative}.imageWidget a,.imageWidget span.image-caption{font-style:italic;text-align:center}.imageWidget a[data-caption]::after,.imageWidget span[data-caption]::after{content:attr(data-caption);display:block;line-height:100%}\n.imageWidget.with-caption a::after,.imageWidget.with-caption span.image-caption::after{margin-top:12px}.imageWidget img[width][height]{height:auto}[data-flex-site] #fcontainer .imageWidget:after,[data-flex-site] #flex-footer .imageWidget:after,[data-flex-site] #flex-header .imageWidget:after{content:none}\n[data-flex-site] #fcontainer .imageWidget:before,[data-flex-site] #flex-footer .imageWidget:before,[data-flex-site] #flex-header .imageWidget:before{font-size:80px;transform:none}.imageWidget.hover img.hover-image,.imageWidget:hover img.hover-image{display:initial}\n.imageWidget.hover.hasHover img:not(.hover-image),.imageWidget:hover.hasHover img:not(.hover-image){display:none!important}.imageWidget img.hover-image,.imageWidget img.logo-on-scroll{display:none}/**/.graphicWidget{width:200px;height:200px;margin:10px auto;text-align:center}.graphicWidget svg.svg{width:100%;height:100%;color:#000;fill:#000}.graphicWidgetV2{width:60px;height:60px}.graphicWidgetV3{font-size:0}/**/#dm .dmSocialHub:not(.gapSpacing) .socialHubInnerDiv a:not(:last-child){margin-right:5px}.socialHubIcon{display:flex!important;align-items:center;justify-content:center}.socialHubIcon svg{fill:currentColor;width:80%;height:80%}\n.socialHubIcon.style1,.socialHubIcon.style4,.socialHubIcon.style6,.socialHubIcon.style7{background:#617379}.socialHubIcon.style7{box-shadow:0 5px 0 0 #475459}.style1.dmSocialTiktok,.style4.dmSocialTiktok{background:#000}\n.style1.dmSocialFacebook,.style4.dmSocialFacebook{background:#1877f2}.style1.dmSocialTwitter,.style4.dmSocialTwitter{background:#0f1419}.style1.dmSocialGooglePlus,.style4.dmSocialGooglePlus{background:#da4835}\n.style1.dmSocialInstagram,.style4.dmSocialInstagram{background:radial-gradient(circle at 30% 107%,#fdf497 0%,#fdf497 5%,#fd5949 45%,#d6249f 60%,#285aeb 90%)!important}.style1.dmSocialYoutube,.style4.dmSocialYoutube{background:red}\n.style1.dmSocialLinkedin,.style4.dmSocialLinkedin{background:#2867b2}.style1.dmSocialYelp,.style4.dmSocialYelp{background:#e43340}.style1.dmSocialPinterest,.style4.dmSocialPinterest{background:#c8232c}\n.style1.dmSocialVimeo,.style4.dmSocialVimeo{background:#1ab7ea}.style1.dmSocialPicasa,.style4.dmSocialPicasa{background:#be81d1}.style1.dmSocialFoursquare,.style4.dmSocialFoursquare{background:#ef4b78}\n.style1.dmSocialRss,.style4.dmSocialRss{background:#f39200}.style1.dmSocialReddit,.style4.dmSocialReddit{background:#ff4500}.style1.dmSocialEmail,.style4.dmSocialEmail{background:#617379}.style1.dmSocialSnapchat,.style4.dmSocialSnapchat{background:#fffc00}\n.style1.dmSocialTripadvisor,.style4.dmSocialTripadvisor{background:#589442}.style1.dmSocialWaze,.style4.dmSocialWaze{background:#56cbe7}.style1.dmSocialGoogleMyBusiness,.style4.dmSocialGoogleMyBusiness{background:#477cdf}\n.style1.dmSocialWhatsapp,.style4.dmSocialWhatsapp{background:#25d366}.style1.dmSocialPhone,.style4.dmSocialPhone{background:#616c79}.style1:after{content:\"\";width:44px;height:28px;display:block;position:absolute;top:0;left:0;z-index:-1;border-radius:10px}\n.style1.dmSocialEmail:after,.style1.dmSocialFacebook:after,.style1.dmSocialFoursquare:after,.style1.dmSocialGoogleMyBusiness:after,.style1.dmSocialGooglePlus:after,.style1.dmSocialInstagram:after,.style1.dmSocialLinkedin:after,.style1.dmSocialPhone:after,.style1.dmSocialPicasa:after,.style1.dmSocialPinterest:after,.style1.dmSocialReddit:after,.style1.dmSocialRss:after,.style1.dmSocialSnapchat:after,.style1.dmSocialTripadvisor:after,.style1.dmSocialTwitter:after,.style1.dmSocialVimeo:after,.style1.dmSocialYelp:after,.style1.dmSocialYoutube:after{background:#fff;opacity:.2}\n.style2.dmSocialTiktok{color:#000}.style2.dmSocialFacebook{color:#1877f2}.style2.dmSocialTwitter{color:#0f1419}.style2.dmSocialGooglePlus{color:#da4835}.style2.dmSocialInstagram:before{background-image:radial-gradient(circle at 30% 107%,#fdf497 0%,#fdf497 5%,#fd5949 45%,#d6249f 60%,#285aeb 90%)!important;-webkit-background-clip:text;-webkit-text-fill-color:transparent}\n.style2.dmSocialYoutube{color:red}.style2.dmSocialLinkedin{color:#2867b2}.style2.dmSocialYelp{color:#e43340}.style2.dmSocialPinterest{color:#c8232c}.style2.dmSocialVimeo{color:#1ab7ea}.style2.dmSocialPicasa{color:#be81d1}\n.style2.dmSocialFoursquare{color:#ef4b78}.style2.dmSocialRss{color:#f39200}.style2.dmSocialReddit{color:#ff4500}.style2.dmSocialEmail{color:#617379}.style2.dmSocialSnapchat{color:#fffc00}.style2.dmSocialTripadvisor{color:#589442}\n.style2.dmSocialGoogleMyBusiness:before{color:#477cdf}.style2.dmSocialWaze:before{color:#56cbe7}.style2.dmSocialWhatsapp:before{color:#25d366}.style2.dmSocialPhone{color:#616c79}.style6.dmSocialTiktok{background:#000}\n.style6.dmSocialFacebook{background:#1877f2}.style6.dmSocialTwitter{background:#0f1419}.style6.dmSocialGooglePlus{background:#da4835}.style6.dmSocialInstagram{background:radial-gradient(circle at 30% 107%,#fdf497 0%,#fdf497 5%,#fd5949 45%,#d6249f 60%,#285aeb 90%)!important}\n.style6.dmSocialYoutube{background:red}.style6.dmSocialLinkedin{background:#2867b2}.style6.dmSocialYelp{background:#e43340}.style6.dmSocialPinterest{background:#c8232c}.style6.dmSocialVimeo{background:#1ab7ea}\n.style6.dmSocialPicasa{background:#be81d1}.style6.dmSocialFoursquare{background:#ef4b78}.style6.dmSocialRss{background:#f39200}.style6.dmSocialReddit{background:#ff4500}.style6.dmSocialEmail{background:#617379}\n.style6.dmSocialSnapchat{background:#fffc00}.style6.dmSocialTripadvisor{background:#589442}.style6.dmSocialWaze{background:#56cbe7}.style6.dmSocialGoogleMyBusiness{background:#477cdf}.style6.dmSocialWhatsapp{background:#25d366}\n.style6.dmSocialPhone{background:#616c79}.style7.dmSocialTiktok{background:#000}.style7.dmSocialFacebook{background:#1877f2;box-shadow:0 5px 0 0 #4b68a5}.style7.dmSocialTwitter{background:#0f1419}.style7.dmSocialGooglePlus{background:#da4835;box-shadow:0 5px 0 0 #c44130}\n.style7.dmSocialInstagram{box-shadow:0 5px 0 0 #ad2271;background:radial-gradient(circle at 30% 107%,#fdf497 0%,#fdf497 5%,#fd5949 45%,#d6249f 60%,#285aeb 90%)!important}.style7.dmSocialYoutube{background:red;box-shadow:0 5px 0 0 #b3392c}\n.style7.dmSocialLinkedin{background:#2867b2;box-shadow:0 5px 0 0 #1278b1}.style7.dmSocialYelp{background:#e43340;box-shadow:0 5px 0 0 #b62933}.style7.dmSocialPinterest{background:#c8232c;box-shadow:0 5px 0 0 #a21a2d}\n.style7.dmSocialVimeo{background:#1ab7ea;box-shadow:0 5px 0 0 #1592bb}.style7.dmSocialPicasa{background:#be81d1;box-shadow:0 5px 0 0 #9867a7}.style7.dmSocialFoursquare{background:#ef4b78;box-shadow:0 5px 0 0 #da3b67}\n.style7.dmSocialRss{background:#f39200;box-shadow:0 5px 0 0 #c27500}.style7.dmSocialReddit{background:#ff4500;box-shadow:0 5px 0 0 #ae5534}.style7.dmSocialEmail{background:#617379;box-shadow:0 5px 0 0 #475459}\n.style7.dmSocialSnapchat{background:#fffc00;box-shadow:0 5px 0 0 #d1d05d}.style7.dmSocialTripadvisor{background:#589442;box-shadow:0 5px 0 0 #4e7b3e}.style7.dmSocialWaze{background:#56cbe7;box-shadow:0 5px 0 0 #475459}\n.style7.dmSocialGoogleMyBusiness{background:#477cdf;box-shadow:0 5px 0 0 #475459}.style7.dmSocialWhatsapp{background:#25d366;box-shadow:0 5px 0 0 #475459}.style7.dmSocialPhone{background:#616c79;box-shadow:0 5px 0 0 #4a5458}/**/@media(max-width:767px){body.dmRoot div[dmtemplateid]:not([dmtemplateid=SlideRightTopFloatM]) .dmHeader .multilingualWidget{position:absolute;top:14px;left:13px;margin-top:0}body.dmRoot div[dmtemplateid][dmtemplateid=SlideRightTopFloatM] .dmHeader .multilingualWidget{position:absolute;top:5px;right:17px}\n}@media(min-width:768px) and (max-width:1024px){body:not(.responsiveTablet) #dm div[dmtemplateid=StandardLayoutMultiT] .dmHeader .multilingualWidget{position:absolute!important;top:5px!important;right:17px!important;left:initial!important}\n}@media(max-width:767px){body.dmRoot .dmHeader .displayHidden-inner .multilingualWidget{top:0!important}}#dm_content div.dmRespCol div.multilingualWidget,#hcontainer div.dmRespCol div.multilingualWidget{width:auto!important;display:table!important}\n.multilingualWidget.displayNone{display:none!important}.multilingualWidget>div{position:relative}.multilingualWidget{clear:both;margin:0;vertical-align:top;display:table!important;font-size:0;font-family:sans-serif}\n.multilingualWidget .language{color:#888;display:inline-block}.multilingualWidget .language a{text-align:center;display:inline-block;color:inherit;border:#dadada 1px solid;background-color:#fff}.multilingualWidget .language a img{width:24px;height:26px;min-width:24px;min-height:26px}\n.multilingualWidget .language a span{display:none;line-height:initial}.multilingualWidget .language a span.name{margin-top:5px;margin-left:7px;font-size:12px;font-weight:400;text-transform:capitalize}\n.multilingualWidget .language a span.short-label{font-size:12px}.multilingualWidget .language a:after{line-height:initial}.multilingualWidget.open .current-language a:after{transform:rotate(-180deg)}.multilingualWidget .current-language a:after{transition:transform .2s}\n.multilingualWidget.dropdown .language{width:100%}.multilingualWidget.dropdown .language a{display:block;padding:1px 5px}.multilingualWidget.dropdown .language.other-languages{position:absolute;z-index:800;max-height:0;overflow:hidden;transition:max-height .1s ease-in-out}\n.multilingualWidget.dropdown .language.other-languages a{border-top:0!important}.multilingualWidget.dropdown .current-language{position:relative}.multilingualWidget.dropdown .current-language span.name{padding-right:25px}\n.multilingualWidget.dropdown .dm-icon{font-size:9px;display:inline-block;position:absolute;top:46%;transform:translateY(-50%);transition:transform .2s;right:8px}.multilingualWidget.dropdown.open .dm-icon{transform:rotate(-180deg) translateY(50%)}\n.multilingualWidget.dropdown.open .other-languages{display:block;max-height:300px}.multilingualWidget.dropdown .other-languages,.multilingualWidget.dropdown.flag-only .dm-icon,.multilingualWidget.inline span,.multilingualWidget.no-flag a img{display:none}\n.multilingualWidget.dropdown.flag-only a{border:transparent 1px solid;background-color:transparent}.multilingualWidget.dropdown.flag-only.open .language a{background-color:rgba(0,0,0,.3);border:#dadada 1px solid}\n.multilingualWidget.dropdown.long-label a{text-align:left;padding:2px 0 2px 5px;position:relative;box-sizing:border-box}.multilingualWidget.dropdown.long-label a span.name,.multilingualWidget.inline.flag-only .language,.multilingualWidget.inline.short-label.no-flag span.short-label{display:inline-block}\n.multilingualWidget.dropdown.long-label.no-flag a{padding:7px 10px 9px}.multilingualWidget.dropdown.long-label.no-flag a span.name,.multilingualWidget.dropdown.short-label.no-flag a span.short-label{margin:0;display:inline-block}\n.multilingualWidget.dropdown.short-label.no-flag a{padding:8px 22px 9px 10px;font-size:12px;min-height:32px;height:auto;box-sizing:border-box}.multilingualWidget.dropdown.short-label.no-flag .current-language a:after{top:12px}\n.multilingualWidget.short-label span.short-label{text-transform:uppercase}.multilingualWidget.inline.flag-only a{padding:2px 5px;height:32px;box-sizing:border-box}.multilingualWidget.inline.flag-only .current-language a{box-shadow:inset 0 0 8px 0 rgba(0,0,0,.6);border-right:0;border-right-width:0!important;border-right-color:transparent!important;border-right-style:none!important}\n.multilingualWidget.inline.flag-only .other-languages a:not(:last-child){border-right-width:0!important;border-right-color:transparent!important;border-right-style:none!important}.multilingualWidget.inline.flag-only .dm-icon,.multilingualWidget.inline.short-label.no-flag .dm-icon{display:none}\n.multilingualWidget.inline.short-label.no-flag .current-language a{padding-right:0;border-right-width:0!important;border-right-color:transparent!important;border-right-style:none!important}.multilingualWidget.inline.short-label.no-flag .current-language a span.short-label{font-weight:700}\n.multilingualWidget.inline.short-label.no-flag .other-languages a{border-left-color:transparent!important;border-left-width:0!important;border-left-style:none!important}.multilingualWidget.inline.short-label.no-flag .other-languages a:not(:last-child){padding-right:0;border-right-color:transparent!important;border-right-width:0!important;border-right-style:none!important}\n.multilingualWidget.inline.short-label.no-flag a{position:relative;padding:8px 10px;font-size:12px;min-height:32px;height:auto;text-decoration:none}.multilingualWidget.inline.short-label.no-flag a:after{content:\"/\";position:absolute;top:8px;right:-7px;z-index:1;pointer-events:none}\n.multilingualWidget.inline.short-label.no-flag a:hover .short-label{text-decoration:underline}.multilingualWidget.inline.short-label.no-flag .other-languages a:last-child:after{content:\"\"}","isHomePage":false,"customwidgetsdata":[{"widgetId":"e6fb702873f9471f8fad7fa6e29567a5","version":47,"js":"ICBmdW5jdGlvbiBzdHJpcEh0bWwoaW5wdXQpIHsKICAgIGlmICghaW5wdXQpIHJldHVybiAiIjsKICAgIHJldHVybiAkKCI8ZGl2PiIpLmh0bWwoU3RyaW5nKGlucHV0KSkudGV4dCgpLnRyaW0oKTsKICB9CgogIHZhciByYXdIcmVmID0gKGRhdGEgJiYgZGF0YS5jb25maWcgJiYgZGF0YS5jb25maWcuYnV0dG9uTGluaykKICAgID8gZGF0YS5jb25maWcuYnV0dG9uTGluawogICAgOiAiIjsKCiAgdmFyIHJhd1RleHQgPSAoZGF0YSAmJiBkYXRhLmNvbmZpZyAmJiBkYXRhLmNvbmZpZy5idXR0b25UZXh0KQogICAgPyBkYXRhLmNvbmZpZy5idXR0b25UZXh0CiAgICA6ICIiOwoKICB2YXIgY2xlYW5IcmVmID0gc3RyaXBIdG1sKHJhd0hyZWYpOwogIHZhciBjbGVhblRleHQgPSBzdHJpcEh0bWwocmF3VGV4dCk7CgogIHZhciAkYnRuID0gJChlbGVtZW50KS5maW5kKCIuTU1UX2J0biIpOwoKICBpZiAoJGJ0bi5sZW5ndGgpIHsKICAgICRidG4uYXR0cigiaHJlZiIsIGNsZWFuSHJlZik7CiAgICAkYnRuLmZpbmQoIi50ZXh0IikudGV4dChjbGVhblRleHQpOwoKICAgIGlmICghY2xlYW5IcmVmKSB7CiAgICAgICRidG4ucmVtb3ZlQXR0cigiaHJlZiIpOwogICAgfQogIH0=","css":".widget-e6fb70 .multihubButton {\n font-size: 25px;\n font-weight: normal;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n cursor: pointer;\n margin: 0 auto;\n padding: 0;\n}\n\n.widget-e6fb70 .text {\n font-family: Montserrat !important;\n font-style: normal;\n font-size: 16px !important;\n}\n\n.widget-e6fb70 .MMT_btn {\n text-decoration: none;\n text-align: center;\n}\n\n.widget-e6fb70 .multihubButton a {\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n}\n\n.widget-e6fb70 .multihubButton a span {\n width: 100%;\n}\n","strings":{}},{"widgetId":"b1e66263855b444897eb558f506f1b9a","version":519,"js":"Y29uc29sZS5sb2coIiAzMzMzMyAiLCQoZWxlbWVudCkpOw0KLy9jb25zb2xlLmxvZygiIDg4ODggIixkYXRhLmNvbmZpZyk7DQpsZXQgbGF5b3V0ID0gZGF0YS5jb25maWcubGF5b3V0Ow0KbGV0IGFuaW1hdGVkX2VmZmVjdCA9IGZhbHNlOw0KbGV0IHNob3dPbiA9IGRhdGEuY29uZmlnLnNob3dPbjsNCnZhciBjaGVja0hvbWVQYWdlID0gZmFsc2U7DQp2YXIgY2hlY2tfYnlfZGF0ZSA9IGRhdGEuY29uZmlnLmNoZWNrX2J5X2RhdGU7DQp2YXIgYWx3YXlzX2ZpeGVkID0gZGF0YS5jb25maWcuYWx3YXlzX2ZpeGVkOw0KdmFyIGFsd2F5c192aXNpYmxlX29uX3RvcCA9IGRhdGEuY29uZmlnLmFsd2F5c192aXNpYmxlX29uX3RvcDsNCnZhciBsaW5rdG9Cb3ggPSBkYXRhLmNvbmZpZy5saW5rdG9Cb3g7DQoNCmxldCBkYXRlRnJvbSA9IG5ldyBEYXRlKHJlbW92ZUV4dHJhKGRhdGEuY29uZmlnLmRhdGVGcm9tKSk7DQpsZXQgZGF0ZVRvID0gbmV3IERhdGUocmVtb3ZlRXh0cmEoZGF0YS5jb25maWcuZGF0ZVRvKSk7DQpsZXQgdG9kYXkgPSBuZXcgRGF0ZSgpOw0KDQp2YXIgYXB0c3luY19zcGVjaWFsID0gZGF0YS5jb25maWcuYXB0c3luY19zcGVjaWFsOw0KLy9ycmFjX2VudHJhdGFfc3BlY2lhbF92aWV3DQoNCnZhciBwdXRjb250ZW50b2h0bWwgPSB0cnVlOw0KaWYoIWRhdGEuaW5FZGl0b3IpIHsNCiAgICBpZihjaGVja19ieV9kYXRlKSB7DQogICAgICAgIGlmKHRvZGF5ID49IGRhdGVGcm9tICYmIHRvZGF5IDw9IGRhdGVUbykgew0KICAgICAgICAgICAgcHV0Y29udGVudG9odG1sID0gdHJ1ZTsNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgIHB1dGNvbnRlbnRvaHRtbCA9IGZhbHNlOw0KICAgICAgICB9DQogICAgfQ0KfQ0KDQppZihhcHRzeW5jX3NwZWNpYWwpIHB1dGNvbnRlbnRvaHRtbCA9IHRydWU7DQoNCmlmKHB1dGNvbnRlbnRvaHRtbCkgew0KICAgIGlmKGxheW91dCAgPT0gInRoZW1lMSIpIHsNCiAgICAgICAgdmFyIGRhdGFzbGlkZXJEZXNjcmlwdGlvbiA9IHJlbW92ZUV4dHJhUHRhZyhkYXRhLmNvbmZpZy5zbGlkZXJEZXNjcmlwdGlvbik7DQogICAgICAgIHZhciBzbGlkZXJEaXNjbGFpbWVyID0gcmVtb3ZlRXh0cmFQdGFnKGRhdGEuY29uZmlnLnNsaWRlckRpc2NsYWltZXIpOw0KICAgICAgICB2YXIgc2xpZGVyVGl0bGVjb25maWcgPSByZW1vdmVFeHRyYVB0YWcoZGF0YS5jb25maWcuc2xpZGVyVGl0bGUpOw0KICAgICAgICANCiAgICAgICAgJChlbGVtZW50KS5maW5kKCIud3JhcCAudGl0bGUiKS5odG1sKHNsaWRlclRpdGxlY29uZmlnKTsNCiAgICAgICAgJChlbGVtZW50KS5maW5kKCIud3JhcCAuZGVzY3JpcHRpb24iKS5odG1sKGRhdGFzbGlkZXJEZXNjcmlwdGlvbik7DQogICAgICAgICQoZWxlbWVudCkuZmluZCgiLndyYXAgLmNvcHlyaWdodCIpLmh0bWwoc2xpZGVyRGlzY2xhaW1lcik7DQogICAgfSBlbHNlIHsNCiAgICAgICAgJChlbGVtZW50KS5maW5kKCIuaGVhZGVyV3JhcHBlciAuaGVhZGVyLXRpdGxlIikuaHRtbChkYXRhLmNvbmZpZy5zbGlkZXJUaXRsZSk7DQogICAgICAgICQoZWxlbWVudCkuZmluZCgiLmhlYWRlcldyYXBwZXIgLmhlYWRlci1zdWJ0aXRsZSIpLmh0bWwoZGF0YS5jb25maWcuc2xpZGVyRGVzY3JpcHRpb24pOw0KICAgIH0NCn0NCg0KaWYoc2hvd09uID09ICdob21lJykNCnsNCiAgICBjaGVja0hvbWVQYWdlID0gdHJ1ZTsNCn0NCi8vY29uc29sZS5sb2cod2luZG93LmxvY2F0aW9uKQ0KY29uc3QgVXJsUGF0aCA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZTsNCi8vY29uc29sZS5sb2coVXJsUGF0aCk7DQppZiggKGNoZWNrSG9tZVBhZ2UgJiYgKFVybFBhdGggPT0gJy8nIHx8IFVybFBhdGggPT0gJycgfHwgVXJsUGF0aCA9PSAnaG9tZScgfHwgVXJsUGF0aCA9PSAnL2hvbWUnKSkgfHwgIWNoZWNrSG9tZVBhZ2UgfHwgZGF0YS5pbkVkaXRvcikNCnsNCiAgICAkKGVsZW1lbnQpLmZpbmQoJy53aWRnZXQtYjFlNjYyJykuc2hvdygpOw0KICAgIGlmKGRhdGEuY29uZmlnLmFuaW1hdGVkX2VmZmVjdCAhPSB1bmRlZmluZWQpDQogICAgew0KICAgICAgICBhbmltYXRlZF9lZmZlY3QgPSBkYXRhLmNvbmZpZy5hbmltYXRlZF9lZmZlY3Q7DQogICAgfQ0KICAgIGlmKGxheW91dCAgPT0gImRyb3BfdGhlbWUiKSB7DQogICAgICAgIGxldCBpbm5lckhlaWdodCA9ICQoZWxlbWVudCkuZmluZCgiLm9mZmVycG9wdXBfYWR2YW5jZWR2ZXJzaW9uX3Y0IikuY2hpbGRyZW4oKS5sZW5ndGg7DQogICAgICAgIGNvbnNvbGUubG9nKCJpbm5lckhlaWdodCIsJChlbGVtZW50KS5maW5kKCIub2ZmZXJwb3B1cF9hZHZhbmNlZHZlcnNpb25fdjQiKS5jaGlsZHJlbigpKTsNCiAgICB9IGVsc2Ugew0KICAgICAgICBsZXQgaW5uZXJIZWlnaHQgPSAkKGVsZW1lbnQpLmZpbmQoIi5oZWFkZXJXcmFwcGVyIikuY2hpbGRyZW4oKS5sZW5ndGg7DQogICAgICAgIGNvbnNvbGUubG9nKCJpbm5lckhlaWdodCIsJChlbGVtZW50KS5maW5kKCIuaGVhZGVyV3JhcHBlciIpLmNoaWxkcmVuKCkpOw0KICAgIH0NCiAgICANCiAgICANCiAgICBsZXQgaXNGYWRlT3V0ID0gZGF0YS5jb25maWcuaXNGYWRlT3V0Ow0KICAgIA0KICAgIGxldCBkZCA9IFN0cmluZyh0b2RheS5nZXREYXRlKCkpLnBhZFN0YXJ0KDIsICcnKTsNCiAgICBsZXQgbW0gPSBTdHJpbmcodG9kYXkuZ2V0TW9udGgoKSArIDEpLnBhZFN0YXJ0KDIsICcwJyk7IC8vSmFudWFyeSBpcyAwIQ0KICAgIGxldCB5eXl5ID0gdG9kYXkuZ2V0RnVsbFllYXIoKTsNCiAgICANCiAgICBsZXQgc2xpZGVyRGVzY3JpcHRpb24gPSBkYXRhLmNvbmZpZy5zbGlkZXJEZXNjcmlwdGlvbjsNCiAgICBsZXQgb25seVRleHREZXNjcmlwdGlvbiA9IHJlbW92ZVRhZ3Moc2xpZGVyRGVzY3JpcHRpb24pOw0KICAgIGlmKG9ubHlUZXh0RGVzY3JpcHRpb24gPT0gIiIpDQogICAgew0KICAgICAgICAkKGVsZW1lbnQpLmZpbmQoJy5oZWFkZXItc3VidGl0bGUnKS5yZW1vdmUoKTsNCiAgICB9DQogICAgdmFyIGluaXRpYWxQYWRkaW5nID0gdHJ1ZTsNCiAgICB2YXIgY3VycmVudFZTY3JvbGwgPSB3aW5kb3cuc2Nyb2xsWTsNCiAgICBpZihjdXJyZW50VlNjcm9sbCA+IDEwMCkNCiAgICB7DQogICAgICAgaW5pdGlhbFBhZGRpbmcgPSBmYWxzZTsNCiAgICB9DQogICAgLy9hbGVydChjdXJyZW50VlNjcm9sbCk7DQogICAgDQogICAgLy9DVVJSRU5UIERBVEUNCiAgICAvLyB0b2RheSA9IG1tICsgJy8nICsgZGQgKyAnLycgKyB5eXl5Ow0KICAgIA0KICAgIC8vYXV0byBwb3ANCiAgICB2YXIgYXV0b3BvcCA9IGRhdGEuY29uZmlnLmF1dG9wb3A7DQogICAgdmFyIGF1dG9wb3BfdGltZSA9IGRhdGEuY29uZmlnLmF1dG9wb3BfdGltZTsNCiAgICANCiAgICBpZihkYXRhLmNvbmZpZy5hdXRvcG9wX3RpbWUgPT0gdW5kZWZpbmVkIHx8IGRhdGEuY29uZmlnLmF1dG9wb3BfdGltZSA9PSAnJykNCiAgICAgICAgYXV0b3BvcF90aW1lID0gMTAwMDsNCiAgICANCiAgICBpZihhcHRzeW5jX3NwZWNpYWwgJiYgbGF5b3V0ID09ICJ0aGVtZTIiICYmIGF1dG9wb3AgJiYgYXV0b3BvcF90aW1lIDwgMjAwMCkgew0KICAgICAgICBhdXRvcG9wX3RpbWUgPSAyMDAwOw0KICAgIH0NCiAgICANCiAgICB2YXIgY2xvc2VvbmNsb3NlYnRuID0gdHJ1ZTsNCiAgICANCiAgICAkKGVsZW1lbnQpLmZpbmQoIi5vcGVuIikuY2xpY2soZnVuY3Rpb24oKSB7DQogICAgICAgICQoZWxlbWVudCkuZmluZCgiI3NsaWRlaXQgc2VjdGlvbiIpLmNzcygidHJhbnNmb3JtIiwgInRyYW5zbGF0ZVkoMCUpIik7DQogICAgfSk7DQogICAgDQogICAgJChlbGVtZW50KS5maW5kKCIuY2xvc2UiKS5jbGljayhmdW5jdGlvbigpIHsNCiAgICAgICAgJChlbGVtZW50KS5maW5kKCIjc2xpZGVpdCBzZWN0aW9uIikuY3NzKCJ0cmFuc2Zvcm0iLCAidHJhbnNsYXRlWSgxMDAlKSIpOw0KICAgIH0pOw0KICAgIGlmKGxheW91dCA9PSAidGhlbWUyIiAmJiBkYXRhLmluRWRpdG9yKSB7DQogICAgICAgICQoJ2JvZHknKS5hZGRDbGFzcygnU3BlY2lhbE9mZmVyVGFiT3BlbicpOw0KICAgIH0NCiAgICBsZXQgY29udGFpbmVySGVpZ2h0ID0gMDsNCiAgICBsZXQgbmV3Y29udGFpbmVySGVpZ2h0ID0gMDsNCiAgICB2YXIgc2V0YXV0b3BvcHNoID0gc2hvd3BvcHVwX2J5X2RhdGUgPSBmYWxzZTsNCiAgICBpZighZGF0YS5pbkVkaXRvcikgew0KICAgICAgICBpZihjaGVja19ieV9kYXRlKSB7DQogICAgICAgICAgICBpZih0b2RheSA+PSBkYXRlRnJvbSAmJiB0b2RheSA8PSBkYXRlVG8pIHsNCiAgICAgICAgICAgICAgICBzaG93cG9wdXBfYnlfZGF0ZSA9IHRydWU7DQogICAgICAgICAgICB9DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICBzaG93cG9wdXBfYnlfZGF0ZSA9IHRydWU7DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIGlmKGFwdHN5bmNfc3BlY2lhbCkgc2hvd3BvcHVwX2J5X2RhdGUgPSB0cnVlOw0KICAgICAgICANCiAgICAgICAgaWYoc2hvd3BvcHVwX2J5X2RhdGUpIHsNCiAgICAgICAgICAgIGlmKGxheW91dCA9PSAidGhlbWUyIikgew0KICAgICAgICAgICAgICAgIC8vL2JvZHkgYWRkIGNsYXNzIGZvciBvZmZlciBwb3B1cCB0aGVtZSAyDQogICAgICAgICAgICAgICAgJCgnYm9keScpLmFkZENsYXNzKCdTcGVjaWFsT2ZmZXJQb3B1cEV4aXN0Jyk7DQogICAgICAgICAgICAgICAgaWYoYXV0b3BvcCkgew0KICAgICAgICAgICAgICAgICAgICBjb250YWluZXJIZWlnaHQgPSAkKGVsZW1lbnQpLmZpbmQoIi5oZWFkZXJXcmFwcGVyIikub3V0ZXJIZWlnaHQoKTsNCiAgICAgICAgICAgICAgICAgICAgLy9sZXQgY29udGFpbmVySGVpZ2h0ID0gJChlbGVtZW50KS5maW5kKCIuaGVhZGVyV3JhcHBlciIpLmlubmVySGVpZ2h0KCk7DQogICAgICAgICAgICAgICAgICAgICQoZWxlbWVudCkuZmluZCgiLmhlYWRlcldyYXBwZXIiKS5jc3MoJ2Rpc3BsYXknLCdub25lJyk7DQoNCiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpew0KICAgICAgICAgICAgICAgICAgICAgICAgJCgnYm9keScpLmFkZENsYXNzKCdTcGVjaWFsT2ZmZXJUYWJPcGVuJyk7DQogICAgICAgICAgICAgICAgICAgICAgICBpZigkKGVsZW1lbnQpLmZpbmQoIi5oZWFkZXJXcmFwcGVyIikuZmluZCgnYScpKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoZWxlbWVudCkuZmluZCgiLmhlYWRlcldyYXBwZXIiKS5maW5kKCdhJykuYWRkQ2xhc3MoJ2hlYWRlci1hbmNob3InKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lckhlaWdodCA9ICQoZWxlbWVudCkuZmluZCgiLmhlYWRlcldyYXBwZXIiKS5vdXRlckhlaWdodCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgLy9jb250YWluZXJIZWlnaHQgPSAkKGVsZW1lbnQpLmZpbmQoIi5oZWFkZXJXcmFwcGVyIikuaW5uZXJIZWlnaHQoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdjb250YWluZXJIZWlnaHQnLGNvbnRhaW5lckhlaWdodCxhdXRvcG9wX3RpbWUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVySGVpZ2h0ID0gcGFyc2VJbnQoY29udGFpbmVySGVpZ2h0KTsNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vbGV0IGNvbnRhaW5lckhlaWdodCA9IGRhdGEuZGV2aWNlICE9ICJtb2JpbGUiID8gJChlbGVtZW50KS5maW5kKCIuaGVhZGVyV3JhcHBlciIpLm91dGVySGVpZ2h0KCkgOiBwYXJzZUludCgkKGVsZW1lbnQpLmZpbmQoIi5oZWFkZXJXcmFwcGVyIikub3V0ZXJIZWlnaHQoKSkgKyBwYXJzZUludCgkKCIjaGFtYnVyZ2VyLWhlYWRlci1jb250YWluZXIiKS5vdXRlckhlaWdodCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vY29uc29sZS5sb2coY29udGFpbmVySGVpZ2h0LCAiaGVpZ2h0Iik7DQogICAgICAgICAgICAgICAgICAgICAgICBzZXRhdXRvcG9wc2ggPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ3BhcnNlSW50Y29udGFpbmVySGVpZ2h0Jyxjb250YWluZXJIZWlnaHQpOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYoJCh3aW5kb3cpLnNjcm9sbFRvcCgpIDwgMTAwICYmIHBhcnNlSW50KGlubmVySGVpZ2h0KSA+IDApIA0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoZWxlbWVudCkuZmluZCgiLmhlYWRlcldyYXBwZXIiKS5jc3MoJ2Rpc3BsYXknLCdibG9jaycpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lckhlaWdodCA9ICQoZWxlbWVudCkuZmluZCgiLmhlYWRlcldyYXBwZXIiKS5vdXRlckhlaWdodCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lckhlaWdodCA9IHBhcnNlSW50KGNvbnRhaW5lckhlaWdodCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoaW5pdGlhbFBhZGRpbmcgKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9jb25zb2xlLmxvZyhjb250YWluZXJIZWlnaHQpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCIjc2l0ZV9jb250ZW50IikuY3NzKCJwYWRkaW5nLXRvcCIsIGAke2NvbnRhaW5lckhlaWdodH1weGApOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCIjaGFtYnVyZ2VyLWhlYWRlci1jb250YWluZXIsIC5sYXlvdXQtZHJhd2VyLWhhbWJ1cmdlciIpLmNzcygidHJhbnNmb3JtIiwgYHRyYW5zbGF0ZVkoJHskKGVsZW1lbnQpLmZpbmQoIi5oZWFkZXJXcmFwcGVyIikub3V0ZXJIZWlnaHQoKX1weClgKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0sIGF1dG9wb3BfdGltZSk7DQogICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgJCgnYm9keScpLmFkZENsYXNzKCdTcGVjaWFsT2ZmZXJUYWJPcGVuJyk7DQogICAgICAgICAgICAgICAgICAgIHNldGF1dG9wb3BzaCA9IHRydWU7DQoNCiAgICAgICAgICAgICAgICAgICAgaWYoYXB0c3luY19zcGVjaWFsKSAkKGVsZW1lbnQpLmZpbmQoIi5oZWFkZXJXcmFwcGVyIikuZmluZCgnYScpLmhpZGUoKTsNCiAgICANCiAgICAgICAgICAgICAgICAgICAgaWYoIHBhcnNlSW50KGlubmVySGVpZ2h0KSA+IDApICQoZWxlbWVudCkuZmluZCgiLmhlYWRlcldyYXBwZXIiKS5jc3MoJ2Rpc3BsYXknLCdibG9jaycpOw0KICAgIA0KICAgICAgICAgICAgICAgICAgICBpZigkKGVsZW1lbnQpLmZpbmQoIi5oZWFkZXJXcmFwcGVyIikuZmluZCgnYScpKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAkKGVsZW1lbnQpLmZpbmQoIi5oZWFkZXJXcmFwcGVyIikuZmluZCgnYScpLmFkZENsYXNzKCdoZWFkZXItYW5jaG9yJyk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgY29udGFpbmVySGVpZ2h0ID0gJChlbGVtZW50KS5maW5kKCIuaGVhZGVyV3JhcHBlciIpLm91dGVySGVpZ2h0KCk7DQogICAgICAgICAgICAgICAgICAgIC8vY29udGFpbmVySGVpZ2h0ID0gJChlbGVtZW50KS5maW5kKCIuaGVhZGVyV3JhcHBlciIpLmlubmVySGVpZ2h0KCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lckhlaWdodCA9IHBhcnNlSW50KGNvbnRhaW5lckhlaWdodCk7DQogICAgICAgICAgICAgICAgICAgIC8vbGV0IGNvbnRhaW5lckhlaWdodCA9IGRhdGEuZGV2aWNlICE9ICJtb2JpbGUiID8gJChlbGVtZW50KS5maW5kKCIuaGVhZGVyV3JhcHBlciIpLm91dGVySGVpZ2h0KCkgOiBwYXJzZUludCgkKGVsZW1lbnQpLmZpbmQoIi5oZWFkZXJXcmFwcGVyIikub3V0ZXJIZWlnaHQoKSkgKyBwYXJzZUludCgkKCIjaGFtYnVyZ2VyLWhlYWRlci1jb250YWluZXIiKS5vdXRlckhlaWdodCgpKTsNCiAgICAgICAgICAgICAgICAgICAgLy9jb25zb2xlLmxvZyhjb250YWluZXJIZWlnaHQsICJoZWlnaHQiKTsNCiAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdjb250YWluZXJIZWlnaHQnLGNvbnRhaW5lckhlaWdodCk7DQogICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICBpZihhcHRzeW5jX3NwZWNpYWwpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmKGluaXRpYWxQYWRkaW5nICYmIHBhcnNlSW50KGlubmVySGVpZ2h0KSA+IDApDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9jb25zb2xlLmxvZyhjb250YWluZXJIZWlnaHQpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoIiNzaXRlX2NvbnRlbnQiKS5jc3MoInBhZGRpbmctdG9wIiwgYCR7Y29udGFpbmVySGVpZ2h0fXB4YCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgiI2hhbWJ1cmdlci1oZWFkZXItY29udGFpbmVyLCAubGF5b3V0LWRyYXdlci1oYW1idXJnZXIiKS5jc3MoInRyYW5zZm9ybSIsIGB0cmFuc2xhdGVZKCR7JChlbGVtZW50KS5maW5kKCIuaGVhZGVyV3JhcHBlciIpLm91dGVySGVpZ2h0KCl9cHgpYCk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vbXV0YXRpb24gY2hlY2sNCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGpvYnRhcmdldE5vZGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcucnJhY19lbnRyYXRhX3NwZWNpYWxfdmlldycpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgam9iY29uZmlnID0geyBjaGlsZExpc3Q6IHRydWUgfTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zTGlzdCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgbXV0YXRpb24gb2YgbXV0YXRpb25zTGlzdCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobXV0YXRpb24udHlwZSA9PT0gJ2NoaWxkTGlzdCcgJiYgbXV0YXRpb24uYWRkZWROb2Rlcy5sZW5ndGggPiAwKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyQoZWxlbWVudCkuZmluZCgiLmhlYWRlcldyYXBwZXIiKS5jc3MoJ2Rpc3BsYXknLCdibG9jaycpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoJChlbGVtZW50KS5maW5kKCIubm9fcG9wdXBfbXNnIikubGVuZ3RoID4gMCB8fCAkKGVsZW1lbnQpLmZpbmQoJy5ycmFjX2VudHJhdGFfc3BlY2lhbF92aWV3JykuaW5uZXJIZWlnaHQoKSA9PSAwKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJChlbGVtZW50KS5maW5kKCIucnJhY19lbnRyYXRhX3NwZWNpYWxfdmlldyIpLnJlbW92ZSgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoZWxlbWVudCkuZmluZCgiLmhlYWRlci1hbmNob3IiKS5yZW1vdmUoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKGVsZW1lbnQpLmZpbmQoIi5oZWFkZXJXcmFwcGVyIikuY3NzKCJwYWRkaW5nIiwnMHB4Jyk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoZWxlbWVudCkuZmluZCgiLmhlYWRlcldyYXBwZXIiKS5maW5kKCcuaGVhZGVyLWFuY2hvcicpLnNob3coKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVySGVpZ2h0ID0gJChlbGVtZW50KS5maW5kKCIuaGVhZGVyV3JhcHBlciIpLm91dGVySGVpZ2h0KCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXJIZWlnaHQgPSBwYXJzZUludChjb250YWluZXJIZWlnaHQpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihpbml0aWFsUGFkZGluZyAmJiBwYXJzZUludChpbm5lckhlaWdodCkgPiAwKSANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2NvbnNvbGUubG9nKGNvbnRhaW5lckhlaWdodCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgiI3NpdGVfY29udGVudCIpLmNzcygicGFkZGluZy10b3AiLCBgJHtjb250YWluZXJIZWlnaHR9cHhgKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCIjaGFtYnVyZ2VyLWhlYWRlci1jb250YWluZXIsIC5sYXlvdXQtZHJhd2VyLWhhbWJ1cmdlciIpLmNzcygidHJhbnNmb3JtIiwgYHRyYW5zbGF0ZVkoJHskKGVsZW1lbnQpLmZpbmQoIi5oZWFkZXJXcmFwcGVyIikub3V0ZXJIZWlnaHQoKX1weClgKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3RhcnQgb2JzZXJ2aW5nIA0KICAgICAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZShqb2J0YXJnZXROb2RlLCBqb2Jjb25maWcpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoaW5pdGlhbFBhZGRpbmcgJiYgcGFyc2VJbnQoaW5uZXJIZWlnaHQpID4gMCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vY29uc29sZS5sb2coY29udGFpbmVySGVpZ2h0KTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgiI3NpdGVfY29udGVudCIpLmNzcygicGFkZGluZy10b3AiLCBgJHtjb250YWluZXJIZWlnaHR9cHhgKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgiI2hhbWJ1cmdlci1oZWFkZXItY29udGFpbmVyLCAubGF5b3V0LWRyYXdlci1oYW1idXJnZXIiKS5jc3MoInRyYW5zZm9ybSIsIGB0cmFuc2xhdGVZKCR7JChlbGVtZW50KS5maW5kKCIuaGVhZGVyV3JhcHBlciIpLm91dGVySGVpZ2h0KCl9cHgpYCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgfSwgMzAwKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICBsZXQgc2hvd2xvY2sgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICBsZXQgaGlkZWxvY2sgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAkKHdpbmRvdykuc2Nyb2xsKGZ1bmN0aW9uKCl7DQogICAgICAgICAgICAgICAgICAgIGlmKGNvbnRhaW5lckhlaWdodCA9PSAwIHx8IGFwdHN5bmNfc3BlY2lhbCl7DQogICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXJIZWlnaHQgPSAkKGVsZW1lbnQpLmZpbmQoIi5oZWFkZXJXcmFwcGVyIikub3V0ZXJIZWlnaHQoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vY29udGFpbmVySGVpZ2h0ID0gJChlbGVtZW50KS5maW5kKCIuaGVhZGVyV3JhcHBlciIpLmlubmVySGVpZ2h0KCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXJIZWlnaHQgPSBwYXJzZUludChjb250YWluZXJIZWlnaHQpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICBpZihjbG9zZW9uY2xvc2VidG4pDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmICgkKHdpbmRvdykuc2Nyb2xsVG9wKCkgPj0gMTAwKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgY29uc29sZS5sb2coInNjcm9sbCB0aGVtZSAyIGRhdGUiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICAkKGVsZW1lbnQpLmZpbmQoIi5oZWFkZXJXcmFwcGVyIikuaGlkZSgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgICQoIiNzaXRlX2NvbnRlbnQiKS5jc3MoInBhZGRpbmctdG9wIiwgIjBweCIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgICQoIiNoYW1idXJnZXItaGVhZGVyLWNvbnRhaW5lciwgLmxheW91dC1kcmF3ZXItaGFtYnVyZ2VyIikuY3NzKCJ0cmFuc2Zvcm0iLCAidHJhbnNsYXRlWSgwcHgpIik7DQogICAgICAgICAgICAgICAgICAgICAgICAvLyB9DQogICAgICAgICAgICAgICAgICAgICAgICAvLyBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICAkKGVsZW1lbnQpLmZpbmQoIi5oZWFkZXJXcmFwcGVyIikuc2hvdygpOw0KICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgIGNvbnNvbGUubG9nKGNvbnRhaW5lckhlaWdodCk7DQogICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgJCgiI3NpdGVfY29udGVudCIpLmNzcygicGFkZGluZy10b3AiLCBgJHtjb250YWluZXJIZWlnaHR9cHhgKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICAkKCIjaGFtYnVyZ2VyLWhlYWRlci1jb250YWluZXIsIC5sYXlvdXQtZHJhd2VyLWhhbWJ1cmdlciIpLmNzcygidHJhbnNmb3JtIiwgYHRyYW5zbGF0ZVkoJHskKGVsZW1lbnQpLmZpbmQoIi5oZWFkZXJXcmFwcGVyIikub3V0ZXJIZWlnaHQoKX1weClgKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIC8vY29uc29sZS5sb2coY2xvc2VvbmNsb3NlYnRuKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkKHdpbmRvdykuc2Nyb2xsVG9wKCkgPj0gMTAwKSANCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2NvbnNvbGUubG9nKCJzY3JvbGwgdGhlbWUgMiBoaWRlIik7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8kKGVsZW1lbnQpLmZpbmQoIi5oZWFkZXJXcmFwcGVyIikuaGlkZSgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGFuaW1hdGVkX2VmZmVjdCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCFoaWRlbG9jaykNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJChlbGVtZW50KS5maW5kKCIuaGVhZGVyV3JhcHBlciIpLmFuaW1hdGUoe2hlaWdodDowLHBhZGRpbmc6MH0sNTAwKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoIiNzaXRlX2NvbnRlbnQiKS5hbmltYXRlKHtwYWRkaW5nVG9wOjB9LDUwMCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vJCgiI3NpdGVfY29udGVudCIpLmNzcygicGFkZGluZy10b3AiLCAiMHB4Iik7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCIjaGFtYnVyZ2VyLWhlYWRlci1jb250YWluZXIsIC5sYXlvdXQtZHJhd2VyLWhhbWJ1cmdlciIpLmFkZENsYXNzKCdoYW1idXJnZXItaGVhZGVyLWNvbnRhaW5lci1hbmltYXRlLXRvcCcpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgiI2hhbWJ1cmdlci1oZWFkZXItY29udGFpbmVyLCAubGF5b3V0LWRyYXdlci1oYW1idXJnZXIiKS5jc3MoInRyYW5zZm9ybSIsICJ0cmFuc2xhdGVZKDBweCkiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaWRlbG9jayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dsb2NrID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoZWxlbWVudCkuZmluZCgiLmhlYWRlcldyYXBwZXIiKS5oaWRlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoIiNzaXRlX2NvbnRlbnQiKS5jc3MoInBhZGRpbmctdG9wIiwgIjBweCIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCIjaGFtYnVyZ2VyLWhlYWRlci1jb250YWluZXIsIC5sYXlvdXQtZHJhd2VyLWhhbWJ1cmdlciIpLmNzcygidHJhbnNmb3JtIiwgInRyYW5zbGF0ZVkoMHB4KSIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCdib2R5JykucmVtb3ZlQ2xhc3MoJ1NwZWNpYWxPZmZlclRhYk9wZW4nKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIA0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vY29uc29sZS5sb2coInNjcm9sbCB0aGVtZSAyIHNob3ciKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyQoZWxlbWVudCkuZmluZCgiLmhlYWRlcldyYXBwZXIiKS5zaG93KCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoc2V0YXV0b3BvcHNoKXsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoYW5pbWF0ZWRfZWZmZWN0KQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2NvbnNvbGUubG9nKCJzZWNoZXQiLGNvbnRhaW5lckhlaWdodCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2lmKCFzaG93bG9jayAmJiAkKHdpbmRvdykuc2Nyb2xsVG9wKCkgIT0gMCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCFzaG93bG9jaykNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKGVsZW1lbnQpLmZpbmQoIi5oZWFkZXJXcmFwcGVyIikuYW5pbWF0ZSh7aGVpZ2h0OmNvbnRhaW5lckhlaWdodCxwYWRkaW5nOicyMHB4IDUwcHgnfSw1MDApOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoIiNzaXRlX2NvbnRlbnQiKS5hbmltYXRlKHtwYWRkaW5nVG9wOmNvbnRhaW5lckhlaWdodH0sNTAwKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2NvbnNvbGUubG9nKGNvbnRhaW5lckhlaWdodCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8kKCIjc2l0ZV9jb250ZW50IikuY3NzKCJwYWRkaW5nLXRvcCIsIGAke2NvbnRhaW5lckhlaWdodH1weGApOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoIiNoYW1idXJnZXItaGVhZGVyLWNvbnRhaW5lciwgLmxheW91dC1kcmF3ZXItaGFtYnVyZ2VyIikuYWRkQ2xhc3MoJ2hhbWJ1cmdlci1oZWFkZXItY29udGFpbmVyLWFuaW1hdGUtdG9wJyk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgiI2hhbWJ1cmdlci1oZWFkZXItY29udGFpbmVyLCAubGF5b3V0LWRyYXdlci1oYW1idXJnZXIiKS5jc3MoInRyYW5zZm9ybSIsIGB0cmFuc2xhdGVZKCR7Y29udGFpbmVySGVpZ2h0fXB4KWApOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaWRlbG9jayA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd2xvY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoIHBhcnNlSW50KGlubmVySGVpZ2h0KSA+IDApIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoZWxlbWVudCkuZmluZCgiLmhlYWRlcldyYXBwZXIiKS5jc3MoJ2Rpc3BsYXknLCdibG9jaycpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGF1dG9wb3ApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVySGVpZ2h0ID0gJChlbGVtZW50KS5maW5kKCIuaGVhZGVyV3JhcHBlciIpLm91dGVySGVpZ2h0KCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lckhlaWdodCA9IHBhcnNlSW50KGNvbnRhaW5lckhlaWdodCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoIiNzaXRlX2NvbnRlbnQiKS5jc3MoInBhZGRpbmctdG9wIiwgYCR7Y29udGFpbmVySGVpZ2h0fXB4YCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgiI2hhbWJ1cmdlci1oZWFkZXItY29udGFpbmVyLCAubGF5b3V0LWRyYXdlci1oYW1idXJnZXIiKS5jc3MoInRyYW5zZm9ybSIsIGB0cmFuc2xhdGVZKCR7Y29udGFpbmVySGVpZ2h0fXB4KWApOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoJ2JvZHknKS5hZGRDbGFzcygnU3BlY2lhbE9mZmVyVGFiT3BlbicpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8NCiAgICAgICAgICAgICAgICAkKCIubGF5b3V0LWRyYXdlci1oYW1idXJnZXIiKS5vbignY2xpY2snLGZ1bmN0aW9uKCl7DQogICAgICAgICAgICAgICAgICAgICB2YXIgY3VycmVudFZTY3JvbGxIQk1lbnUgPSB3aW5kb3cuc2Nyb2xsWTsNCiAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgLy9hZGRlZCBmb3IgbW9iaWxlIGRldmljZSBhbmQgZHVkYSBuZXcgdXBkYXRlDQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YS5kZXZpY2U9PT0ibW9iaWxlIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vY29uc29sZS5sb2coJCh0aGlzKSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoISQoJy5sYXlvdXQtZHJhd2VyLWhhbWJ1cmdlcicpLmhhc0NsYXNzKCdoYW1idXJnZXItb24taGVhZGVyJykgJiYgJChlbGVtZW50KS5maW5kKCIuaGVhZGVyV3JhcHBlciIpLmhhc0NsYXNzKCdoaWRlVGhpc09mZmVyJykpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQodGhpcykudG9nZ2xlQ2xhc3MoJ2hhbWJ1cmdlci1vbi1oZWFkZXInKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vY29uc29sZS5sb2coY3VycmVudFZTY3JvbGxIQk1lbnUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCQoJy5sYXlvdXQtZHJhd2VyLWhhbWJ1cmdlcicpLmhhc0NsYXNzKCdoYW1idXJnZXItb24taGVhZGVyJykpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2NvbnNvbGUubG9nKCdoaWRlJyk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoZWxlbWVudCkuZmluZCgiLmhlYWRlcldyYXBwZXIiKS5yZW1vdmVDbGFzcygnaGlkZVRoaXNPZmZlcicpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCJib2R5IikucmVtb3ZlQ2xhc3MoJ2hpZGVUaGlzT2ZmZXJQb3AnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gIGlmKGN1cnJlbnRWU2Nyb2xsSEJNZW51IDw9IDEwMCAmJiBjbG9zZW9uY2xvc2VidG4gPT0gdHJ1ZSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoY2xvc2VvbmNsb3NlYnRuID09IHRydWUpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoIiNzaXRlX2NvbnRlbnQiKS5hbmltYXRlKHtwYWRkaW5nVG9wOmNvbnRhaW5lckhlaWdodH0sNTAwKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoIiNoYW1idXJnZXItaGVhZGVyLWNvbnRhaW5lciwgLmxheW91dC1kcmF3ZXItaGFtYnVyZ2VyIikuY3NzKCJ0cmFuc2Zvcm0iLCBgdHJhbnNsYXRlWSgke2NvbnRhaW5lckhlaWdodH1weClgKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCQod2luZG93KS5zY3JvbGxUb3AoKSA+PSAxMDApIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAJJCh3aW5kb3cpLnNjcm9sbFRvcCgkKHdpbmRvdykuc2Nyb2xsVG9wKCkrMSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAkkKHdpbmRvdykuc2Nyb2xsVG9wKCQod2luZG93KS5zY3JvbGxUb3AoKS0xKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9jb25zb2xlLmxvZygnc2hvdycpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJChlbGVtZW50KS5maW5kKCIuaGVhZGVyV3JhcHBlciIpLmFkZENsYXNzKCdoaWRlVGhpc09mZmVyJyk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCJib2R5IikuYWRkQ2xhc3MoJ2hpZGVUaGlzT2ZmZXJQb3AnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gIGlmKGN1cnJlbnRWU2Nyb2xsSEJNZW51IDw9IDEwMCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoIiNzaXRlX2NvbnRlbnQiKS5hbmltYXRlKHtwYWRkaW5nVG9wOjB9LDUwMCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCIjaGFtYnVyZ2VyLWhlYWRlci1jb250YWluZXIsIC5sYXlvdXQtZHJhd2VyLWhhbWJ1cmdlciIpLmNzcygidHJhbnNmb3JtIiwgInRyYW5zbGF0ZVkoMHB4KSIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgfSwxMDApOw0KICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgLy8vL2NsaWNrIG9uIGNsb3NlLy8vLy8vLw0KICAgICAgICAgICAgICAgICQoJy5TUEVDSUFMLWNsb3NlLWJ0bicpLmNsaWNrKCBmdW5jdGlvbigpIHsNCiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coImNsaWNrIG9uIGNsb3NlIik7DQogICAgICAgICAgICAgICAgICAgIGNsb3Nlb25jbG9zZWJ0biA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgaWYoYW5pbWF0ZWRfZWZmZWN0KQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAkKGVsZW1lbnQpLmZpbmQoIi5oZWFkZXJXcmFwcGVyIikuYW5pbWF0ZSh7aGVpZ2h0OjAscGFkZGluZzowfSw1MDApOw0KICAgICAgICAgICAgICAgICAgICAgICAgJCgiI3NpdGVfY29udGVudCIpLmFuaW1hdGUoe3BhZGRpbmdUb3A6MH0sNTAwKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vJCgiI3NpdGVfY29udGVudCIpLmNzcygicGFkZGluZy10b3AiLCAiMHB4Iik7DQogICAgICAgICAgICAgICAgICAgICAgICAkKCIjaGFtYnVyZ2VyLWhlYWRlci1jb250YWluZXIsIC5sYXlvdXQtZHJhd2VyLWhhbWJ1cmdlciIpLmFkZENsYXNzKCdoYW1idXJnZXItaGVhZGVyLWNvbnRhaW5lci1hbmltYXRlLXRvcCcpOw0KICAgICAgICAgICAgICAgICAgICAgICAgJCgiI2hhbWJ1cmdlci1oZWFkZXItY29udGFpbmVyLCAubGF5b3V0LWRyYXdlci1oYW1idXJnZXIiKS5jc3MoInRyYW5zZm9ybSIsICJ0cmFuc2xhdGVZKDBweCkiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpeyQoJy5TUEVDSUFMLW9wZW4tYnRuJykuc2hvdygpO30sNTAwKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgc2hvd2xvY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgJChlbGVtZW50KS5maW5kKCIuaGVhZGVyV3JhcHBlciIpLmNzcygnZGlzcGxheScsJ25vbmUnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICQoIiNzaXRlX2NvbnRlbnQiKS5jc3MoInBhZGRpbmctdG9wIiwgIjBweCIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgJCgiI2hhbWJ1cmdlci1oZWFkZXItY29udGFpbmVyLCAubGF5b3V0LWRyYXdlci1oYW1idXJnZXIiKS5jc3MoInRyYW5zZm9ybSIsICJ0cmFuc2xhdGVZKDBweCkiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICQoJy5TUEVDSUFMLW9wZW4tYnRuJykuc2hvdygpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICQoJ2JvZHknKS5yZW1vdmVDbGFzcygnU3BlY2lhbE9mZmVyVGFiT3BlbicpOw0KICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgJCgnLlNQRUNJQUwtb3Blbi1idG4nKS5jbGljayggZnVuY3Rpb24oKSB7DQogICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJjbGljayBvbiBvcGVuIik7DQogICAgICAgICAgICAgICAgICAgIGNsb3Nlb25jbG9zZWJ0biA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICBpZihhbmltYXRlZF9lZmZlY3QpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICQoZWxlbWVudCkuZmluZCgiLmhlYWRlcldyYXBwZXIiKS5hbmltYXRlKHtoZWlnaHQ6Y29udGFpbmVySGVpZ2h0LHBhZGRpbmc6JzIwcHggNTBweCd9LDUwMCk7DQogICAgICAgICAgICAgICAgICAgICAgICAkKCIjc2l0ZV9jb250ZW50IikuYW5pbWF0ZSh7cGFkZGluZ1RvcDpjb250YWluZXJIZWlnaHR9LDUwMCk7DQogICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgIC8vY29uc29sZS5sb2coY29udGFpbmVySGVpZ2h0KTsNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vJCgiI3NpdGVfY29udGVudCIpLmNzcygicGFkZGluZy10b3AiLCBgJHtjb250YWluZXJIZWlnaHR9cHhgKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICQoIiNoYW1idXJnZXItaGVhZGVyLWNvbnRhaW5lciwgLmxheW91dC1kcmF3ZXItaGFtYnVyZ2VyIikuYWRkQ2xhc3MoJ2hhbWJ1cmdlci1oZWFkZXItY29udGFpbmVyLWFuaW1hdGUtdG9wJyk7DQogICAgICAgICAgICAgICAgICAgICAgICAkKCIjaGFtYnVyZ2VyLWhlYWRlci1jb250YWluZXIsIC5sYXlvdXQtZHJhd2VyLWhhbWJ1cmdlciIpLmNzcygidHJhbnNmb3JtIiwgYHRyYW5zbGF0ZVkoJHtjb250YWluZXJIZWlnaHR9cHgpYCk7DQogICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKXskKCcuU1BFQ0lBTC1vcGVuLWJ0bicpLmhpZGUoKTt9LDUwMCk7DQogICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgIHNob3dsb2NrID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiggcGFyc2VJbnQoaW5uZXJIZWlnaHQpID4gMCkgDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJChlbGVtZW50KS5maW5kKCIuaGVhZGVyV3JhcHBlciIpLmNzcygnZGlzcGxheScsJ2Jsb2NrJyk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgiI3NpdGVfY29udGVudCIpLmNzcygicGFkZGluZy10b3AiLCBgJHtjb250YWluZXJIZWlnaHR9cHhgKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCIjaGFtYnVyZ2VyLWhlYWRlci1jb250YWluZXIsIC5sYXlvdXQtZHJhd2VyLWhhbWJ1cmdlciIpLmNzcygidHJhbnNmb3JtIiwgYHRyYW5zbGF0ZVkoJHtjb250YWluZXJIZWlnaHR9cHgpYCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgnLlNQRUNJQUwtb3Blbi1idG4nKS5oaWRlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAkKCdib2R5JykuYWRkQ2xhc3MoJ1NwZWNpYWxPZmZlclRhYk9wZW4nKTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgIA0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYobGF5b3V0ID09ICJ0aGVtZTEiKSB7DQogICAgICAgICAgICAgICAgJChlbGVtZW50KS5maW5kKCIjc2xpZGVpdCIpLnNob3coKTsNCiAgICAgICAgICAgICAgICAkKCIjc2l0ZV9jb250ZW50IikuY3NzKCJwYWRkaW5nLXRvcCIsICIwcHgiKTsNCiAgICAgICAgICAgICAgICAkKCIjaGFtYnVyZ2VyLWhlYWRlci1jb250YWluZXIsIC5sYXlvdXQtZHJhd2VyLWhhbWJ1cmdlciIpLmNzcygidHJhbnNmb3JtIiwgInRyYW5zbGF0ZVkoMHB4KSIpOw0KICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgIGlmKGF1dG9wb3ApIHsNCiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7DQogICAgICAgICAgICAgICAgICAgICAgICAkKGVsZW1lbnQpLmZpbmQoIiNzbGlkZWl0IHNlY3Rpb24iKS5jc3MoInRyYW5zZm9ybSIsICJ0cmFuc2xhdGVZKDAlKSIpOw0KICAgICAgICAgICAgICAgICAgICB9LCBhdXRvcG9wX3RpbWUpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICBpZihpc0ZhZGVPdXQpIHsNCiAgICAgICAgICAgICAgICAgICAgZmFkZU91dE9uU2Nyb2xsKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYobGF5b3V0ID09ICJkcm9wX3RoZW1lIikgew0KICAgICAgICAgICAgICAgIGlmKGFsd2F5c192aXNpYmxlX29uX3RvcCAmJiBhbHdheXNfZml4ZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNoZWNra2lja29ucG9wdXAgPSAwOw0KICAgICAgICAgICAgICAgICAgICBpZihsaW5rdG9Cb3gpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICQoZWxlbWVudCkuZmluZCgnLm9mZmVycG9wdXBfYWR2YW5jZWR2ZXJzaW9uX3Y0X0J0bicpLmF0dHIoInN0eWxlIiwgImRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsiKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZigkKGVsZW1lbnQpLmZpbmQoJy5vZmZlcnBvcHVwX2FkdmFuY2VkdmVyc2lvbl92NF9kZXNjcmlwdGlvbicpLnRleHQoKSA9PSAnJykgew0KICAgICAgICAgICAgICAgICAgICAgICAgJChlbGVtZW50KS5maW5kKCcub2ZmZXJwb3B1cF9hZHZhbmNlZHZlcnNpb25fdjRfZGVzY3JpcHRpb24nKS5oaWRlKCk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgLy9jb25zb2xlLmxvZygnZ2RnZGcnLCQoZWxlbWVudCkuZmluZCgnLm9mZmVycG9wdXBfYWR2YW5jZWR2ZXJzaW9uX3Y0X2Rlc2NyaXB0aW9uJyksICQoZWxlbWVudCkuZmluZCgnLm9mZmVycG9wdXBfYWR2YW5jZWR2ZXJzaW9uX3Y0X2Rlc2NyaXB0aW9uJykudGV4dCgpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgLy9maXJzdCBsb2FkIHRpbWUNCiAgICAgICAgICAgICAgICBjb250YWluZXJIZWlnaHQgPSAkKGVsZW1lbnQpLmZpbmQoIi5vZmZlcnBvcHVwX2FkdmFuY2VkdmVyc2lvbl92NCIpLm91dGVySGVpZ2h0KCk7DQogICAgICAgICAgICAgICAgdmFyIGZpeGVkaW5uZXJoZWlnaHQgPSBwYXJzZUludChjb250YWluZXJIZWlnaHQpOyAvL2ZvciBmaXhlZCBlZmZlY3QNCiAgICAgICAgICAgICAgICBpZihhdXRvcG9wKSB7DQogICAgICAgICAgICAgICAgICAgIC8vJChlbGVtZW50KS5maW5kKCIub2ZmZXJwb3B1cF9hZHZhbmNlZHZlcnNpb25fdjQiKS5jc3MoJ2Rpc3BsYXknLCdub25lJyk7DQogICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgaWYocGFyc2VJbnQoaW5uZXJIZWlnaHQpID4gMCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCQod2luZG93KS5zY3JvbGxUb3AoKSA8IDEwMCB8fCBhbHdheXNfZml4ZWQpIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJChlbGVtZW50KS5maW5kKCIub2ZmZXJwb3B1cF9hZHZhbmNlZHZlcnNpb25fdjQiKS5jc3MoJ2Rpc3BsYXknLCdibG9jaycpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVySGVpZ2h0ID0gJChlbGVtZW50KS5maW5kKCIub2ZmZXJwb3B1cF9hZHZhbmNlZHZlcnNpb25fdjQiKS5vdXRlckhlaWdodCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXJIZWlnaHQgPSBwYXJzZUludChjb250YWluZXJIZWlnaHQpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXhlZGlubmVyaGVpZ2h0ID0gY29udGFpbmVySGVpZ2h0Ow0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoIiNzaXRlX2NvbnRlbnQiKS5jc3MoInBhZGRpbmctdG9wIiwgYCR7Y29udGFpbmVySGVpZ2h0fXB4YCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoIiNoYW1idXJnZXItaGVhZGVyLWNvbnRhaW5lciwgLmxheW91dC1kcmF3ZXItaGFtYnVyZ2VyIikuY3NzKCJ0cmFuc2Zvcm0iLCBgdHJhbnNsYXRlWSgke2NvbnRhaW5lckhlaWdodH1weClgKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgnYm9keScpLmFkZENsYXNzKCdTcGVjaWFsT2ZmZXJQb3B1cE9wZW5fVDMnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0sIGF1dG9wb3BfdGltZSk7DQogICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgaWYoIHBhcnNlSW50KGlubmVySGVpZ2h0KSA+IDApICQoZWxlbWVudCkuZmluZCgiLm9mZmVycG9wdXBfYWR2YW5jZWR2ZXJzaW9uX3Y0IikuY3NzKCdkaXNwbGF5JywnYmxvY2snKTsNCiAgICAgICAgDQogICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lckhlaWdodCA9ICQoZWxlbWVudCkuZmluZCgiLm9mZmVycG9wdXBfYWR2YW5jZWR2ZXJzaW9uX3Y0Iikub3V0ZXJIZWlnaHQoKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGFpbmVySGVpZ2h0ID0gcGFyc2VJbnQoY29udGFpbmVySGVpZ2h0KTsNCiAgICAgICAgICAgICAgICAgICAgZml4ZWRpbm5lcmhlaWdodCA9IGNvbnRhaW5lckhlaWdodDsNCiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coImhlaWdodCIsIGNvbnRhaW5lckhlaWdodCk7DQogICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAvL2NhbGN1bGF0ZSBkZXNjcmlwdGlvbiBoZWlnaHQNCiAgICAgICAgICAgICAgICAgICAgJChlbGVtZW50KS5maW5kKCIub2ZmZXJwb3B1cF9hZHZhbmNlZHZlcnNpb25fdjQgLm9mZmVycG9wdXBfYWR2YW5jZWR2ZXJzaW9uX3Y0X2NvbnRhbnQiKS5jc3MoIm9wYWNpdHkiLCAwKTsNCiAgICAgICAgICAgICAgICAgICAgJChlbGVtZW50KS5maW5kKCIub2ZmZXJwb3B1cF9hZHZhbmNlZHZlcnNpb25fdjQgLm9mZmVycG9wdXBfYWR2YW5jZWR2ZXJzaW9uX3Y0X2NvbnRhbnQiKS5jc3MoJ2Rpc3BsYXknLCAnYmxvY2snKTsNCiAgICAgICAgICAgICAgICAgICAgbmV3Y29udGFpbmVySGVpZ2h0ID0gJChlbGVtZW50KS5maW5kKCIub2ZmZXJwb3B1cF9hZHZhbmNlZHZlcnNpb25fdjQiKS5vdXRlckhlaWdodCgpOw0KICAgICAgICAgICAgICAgICAgICBuZXdjb250YWluZXJIZWlnaHQgPSBwYXJzZUludChuZXdjb250YWluZXJIZWlnaHQpOw0KICAgICAgICAgICAgICAgICAgICAkKGVsZW1lbnQpLmZpbmQoIi5vZmZlcnBvcHVwX2FkdmFuY2VkdmVyc2lvbl92NCAub2ZmZXJwb3B1cF9hZHZhbmNlZHZlcnNpb25fdjRfY29udGFudCIpLmNzcygnZGlzcGxheScsICdub25lJyk7DQogICAgICAgICAgICAgICAgICAgICQoZWxlbWVudCkuZmluZCgiLm9mZmVycG9wdXBfYWR2YW5jZWR2ZXJzaW9uX3Y0IC5vZmZlcnBvcHVwX2FkdmFuY2VkdmVyc2lvbl92NF9jb250YW50IikuY3NzKCJvcGFjaXR5IiwgMSk7DQogICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCBwYXJzZUludChpbm5lckhlaWdodCkgPiAwKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoaW5pdGlhbFBhZGRpbmcgfHwgYWx3YXlzX2ZpeGVkKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9jb25zb2xlLmxvZyhjb250YWluZXJIZWlnaHQpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCIjc2l0ZV9jb250ZW50IikuY3NzKCJwYWRkaW5nLXRvcCIsIGAke2NvbnRhaW5lckhlaWdodH1weGApOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCIjaGFtYnVyZ2VyLWhlYWRlci1jb250YWluZXIsIC5sYXlvdXQtZHJhd2VyLWhhbWJ1cmdlciIpLmNzcygidHJhbnNmb3JtIiwgYHRyYW5zbGF0ZVkoJHtjb250YWluZXJIZWlnaHR9cHgpYCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoJ2JvZHknKS5hZGRDbGFzcygnU3BlY2lhbE9mZmVyUG9wdXBPcGVuX1QzJyk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9LCAxMDApOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgdmFyIGNoZWNrZml4ZWRzY3JvbGwgPSAwOw0KICAgICAgICAgICAgICAgIC8vb24gd2luZG93IHNjcm9sbCBlZmZlY3QNCiAgICAgICAgICAgICAgICAkKHdpbmRvdykuc2Nyb2xsKGZ1bmN0aW9uKCl7DQogICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lckhlaWdodCA9ICQoZWxlbWVudCkuZmluZCgiLm9mZmVycG9wdXBfYWR2YW5jZWR2ZXJzaW9uX3Y0Iikub3V0ZXJIZWlnaHQoKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGFpbmVySGVpZ2h0ID0gcGFyc2VJbnQoY29udGFpbmVySGVpZ2h0KTsNCg0KICAgICAgICAgICAgICAgICAgICAkKCIjaGFtYnVyZ2VyLWhlYWRlci1jb250YWluZXIsIC5sYXlvdXQtZHJhd2VyLWhhbWJ1cmdlciIpLnJlbW92ZUNsYXNzKCdoYW1idXJnZXItaGVhZGVyLWNvbnRhaW5lci1hbmltYXRlLXRvcCcpOw0KDQogICAgICAgICAgICAgICAgICAgIGlmKGFsd2F5c19maXhlZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCQod2luZG93KS5zY3JvbGxUb3AoKSA+PSAxMDAgJiYgJChlbGVtZW50KS5maW5kKCIub2ZmZXJwb3B1cF9hZHZhbmNlZHZlcnNpb25fdjQiKS5oYXNDbGFzcygnRGVzY3JpcHRpb25PcGVuJykpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKGVsZW1lbnQpLmZpbmQoIi5vZmZlcnBvcHVwX2FkdmFuY2VkdmVyc2lvbl92NF9pY29uIikudHJpZ2dlcigiY2xpY2siKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja2ZpeGVkc2Nyb2xsID0gMDsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoJCh3aW5kb3cpLnNjcm9sbFRvcCgpID49IDEwMCAmJiAhJChlbGVtZW50KS5maW5kKCIub2ZmZXJwb3B1cF9hZHZhbmNlZHZlcnNpb25fdjQiKS5oYXNDbGFzcygnRGVzY3JpcHRpb25PcGVuJykpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXJIZWlnaHQgPSAkKGVsZW1lbnQpLmZpbmQoIi5zY2hlZHVsZXRvdXJfdjNfdG9wX2hlYWRlciIpLm91dGVySGVpZ2h0KCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVySGVpZ2h0ID0gcGFyc2VJbnQoY29udGFpbmVySGVpZ2h0KTsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoIiNzaXRlX2NvbnRlbnQiKS5jc3MoInBhZGRpbmctdG9wIiwgYCR7Y29udGFpbmVySGVpZ2h0fXB4YCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgiI2hhbWJ1cmdlci1oZWFkZXItY29udGFpbmVyLCAubGF5b3V0LWRyYXdlci1oYW1idXJnZXIiKS5jc3MoInRyYW5zZm9ybSIsIGB0cmFuc2xhdGVZKCR7Y29udGFpbmVySGVpZ2h0fXB4KWApOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCQod2luZG93KS5zY3JvbGxUb3AoKSA+PSAxMDApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKGVsZW1lbnQpLmZpbmQoIi5vZmZlcnBvcHVwX2FkdmFuY2VkdmVyc2lvbl92NCIpLmhpZGUoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCIjc2l0ZV9jb250ZW50IikuY3NzKCJwYWRkaW5nLXRvcCIsICIwcHgiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCIjaGFtYnVyZ2VyLWhlYWRlci1jb250YWluZXIsIC5sYXlvdXQtZHJhd2VyLWhhbWJ1cmdlciIpLmNzcygidHJhbnNmb3JtIiwgInRyYW5zbGF0ZVkoMHB4KSIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoJ2JvZHknKS5yZW1vdmVDbGFzcygnU3BlY2lhbE9mZmVyUG9wdXBPcGVuX1QzJyk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHVybk9GRmRlc2NyaXB0aW9uKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCBwYXJzZUludChpbm5lckhlaWdodCkgPiAwKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoZWxlbWVudCkuZmluZCgiLm9mZmVycG9wdXBfYWR2YW5jZWR2ZXJzaW9uX3Y0IikuY3NzKCdkaXNwbGF5JywnYmxvY2snKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgiI3NpdGVfY29udGVudCIpLmNzcygicGFkZGluZy10b3AiLCBgJHtjb250YWluZXJIZWlnaHR9cHhgKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgiI2hhbWJ1cmdlci1oZWFkZXItY29udGFpbmVyLCAubGF5b3V0LWRyYXdlci1oYW1idXJnZXIiKS5jc3MoInRyYW5zZm9ybSIsIGB0cmFuc2xhdGVZKCR7Y29udGFpbmVySGVpZ2h0fXB4KWApOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCdib2R5JykuYWRkQ2xhc3MoJ1NwZWNpYWxPZmZlclBvcHVwT3Blbl9UMycpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgIHZhciBjbGlja3NlbGVjdG9yID0gIi5vZmZlcnBvcHVwX2FkdmFuY2VkdmVyc2lvbl92NF9pY29uLCAub2ZmZXJwb3B1cF9hZHZhbmNlZHZlcnNpb25fdjRfbWFpbl9oZWFkaW5nIjsNCiAgICAgICAgICAgICAgICBpZihhbHdheXNfZml4ZWQpIGNsaWNrc2VsZWN0b3IgPSAiLm9mZmVycG9wdXBfYWR2YW5jZWR2ZXJzaW9uX3Y0X2ljb24iOw0KICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgIC8vY2xpY2sgb24gdG9nZ2xlDQogICAgICAgICAgICAgICAgJChlbGVtZW50KS5maW5kKGNsaWNrc2VsZWN0b3IpLm9uKCJjbGljayIsIGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgJChlbGVtZW50KS5maW5kKCIub2ZmZXJwb3B1cF9hZHZhbmNlZHZlcnNpb25fdjRfY29udGFudCIpLnN0b3AoKS5zbGlkZVRvZ2dsZSg1MDAsICJzd2luZyIpOw0KICAgICAgICAgICAgICAgICAgICAkKGVsZW1lbnQpLmZpbmQoIi5vZmZlcnBvcHVwX2FkdmFuY2VkdmVyc2lvbl92NCIpLnRvZ2dsZUNsYXNzKCJEZXNjcmlwdGlvbk9wZW4iKTsNCiAgICAgICAgICAgICAgICAgICAgJCgiI2hhbWJ1cmdlci1oZWFkZXItY29udGFpbmVyLCAubGF5b3V0LWRyYXdlci1oYW1idXJnZXIiKS5hZGRDbGFzcygnaGFtYnVyZ2VyLWhlYWRlci1jb250YWluZXItYW5pbWF0ZS10b3AnKTsNCiAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgIGlmKCEkKGVsZW1lbnQpLmZpbmQoIi5vZmZlcnBvcHVwX2FkdmFuY2VkdmVyc2lvbl92NCIpLmhhc0NsYXNzKCdEZXNjcmlwdGlvbk9wZW4nKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgaWYoYWx3YXlzX2ZpeGVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgiI3NpdGVfY29udGVudCIpLmFuaW1hdGUoe3BhZGRpbmdUb3A6Zml4ZWRpbm5lcmhlaWdodH0sNTAwKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCIjaGFtYnVyZ2VyLWhlYWRlci1jb250YWluZXIsIC5sYXlvdXQtZHJhd2VyLWhhbWJ1cmdlciIpLmNzcygidHJhbnNmb3JtIiwgYHRyYW5zbGF0ZVkoJHtmaXhlZGlubmVyaGVpZ2h0fXB4KWApOw0KICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCIjc2l0ZV9jb250ZW50IikuYW5pbWF0ZSh7cGFkZGluZ1RvcDpjb250YWluZXJIZWlnaHR9LDUwMCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgiI2hhbWJ1cmdlci1oZWFkZXItY29udGFpbmVyLCAubGF5b3V0LWRyYXdlci1oYW1idXJnZXIiKS5jc3MoInRyYW5zZm9ybSIsIGB0cmFuc2xhdGVZKCR7Y29udGFpbmVySGVpZ2h0fXB4KWApOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgaWYobmV3Y29udGFpbmVySGVpZ2h0ID4gMCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoIiNzaXRlX2NvbnRlbnQiKS5hbmltYXRlKHtwYWRkaW5nVG9wOm5ld2NvbnRhaW5lckhlaWdodH0sNTAwKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCIjaGFtYnVyZ2VyLWhlYWRlci1jb250YWluZXIsIC5sYXlvdXQtZHJhd2VyLWhhbWJ1cmdlciIpLmNzcygidHJhbnNmb3JtIiwgYHRyYW5zbGF0ZVkoJHtuZXdjb250YWluZXJIZWlnaHR9cHgpYCk7DQogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdjb250YWluZXJIZWlnaHQgPSAkKGVsZW1lbnQpLmZpbmQoIi5vZmZlcnBvcHVwX2FkdmFuY2VkdmVyc2lvbl92NCIpLm91dGVySGVpZ2h0KCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld2NvbnRhaW5lckhlaWdodCA9IHBhcnNlSW50KG5ld2NvbnRhaW5lckhlaWdodCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJkZXNjIGhlaWdodCIsbmV3Y29udGFpbmVySGVpZ2h0KTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoIiNzaXRlX2NvbnRlbnQiKS5hbmltYXRlKHtwYWRkaW5nVG9wOm5ld2NvbnRhaW5lckhlaWdodH0sNTAwKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgiI2hhbWJ1cmdlci1oZWFkZXItY29udGFpbmVyLCAubGF5b3V0LWRyYXdlci1oYW1idXJnZXIiKS5jc3MoInRyYW5zZm9ybSIsIGB0cmFuc2xhdGVZKCR7bmV3Y29udGFpbmVySGVpZ2h0fXB4KWApOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIDUxMCk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAvL2NsaWNrIG9uIGhhbWJ1cmdlcg0KICAgICAgICAgICAgICAgICQoIi5sYXlvdXQtZHJhd2VyLWhhbWJ1cmdlciIpLm9uKCdjbGljaycsZnVuY3Rpb24oKXsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGN1cnJlbnRWU2Nyb2xsSEJNZW51ID0gd2luZG93LnNjcm9sbFk7DQogICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7DQogICAgICAgICAgICAgICAgICAgICAgICAvL2NvbnNvbGUubG9nKGN1cnJlbnRWU2Nyb2xsSEJNZW51KTsNCiAgICAgICAgICAgICAgICAgICAgICAgICQoIiNoYW1idXJnZXItaGVhZGVyLWNvbnRhaW5lciwgLmxheW91dC1kcmF3ZXItaGFtYnVyZ2VyIikuYWRkQ2xhc3MoJ2hhbWJ1cmdlci1oZWFkZXItY29udGFpbmVyLWFuaW1hdGUtdG9wJyk7DQogICAgICAgICAgICAgICAgICAgICAgICBpZigkKCcubGF5b3V0LWRyYXdlci1oYW1idXJnZXInKS5oYXNDbGFzcygnaGFtYnVyZ2VyT1BFTicpKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGN1cnJlbnRWU2Nyb2xsSEJNZW51IDw9IDEwMCB8fCBhbHdheXNfZml4ZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJChlbGVtZW50KS5maW5kKCIub2ZmZXJwb3B1cF9hZHZhbmNlZHZlcnNpb25fdjQiKS5jc3MoJ2Rpc3BsYXknLCdibG9jaycpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXJIZWlnaHQgPSAkKGVsZW1lbnQpLmZpbmQoIi5vZmZlcnBvcHVwX2FkdmFuY2VkdmVyc2lvbl92NCIpLm91dGVySGVpZ2h0KCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lckhlaWdodCA9IHBhcnNlSW50KGNvbnRhaW5lckhlaWdodCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoIiNzaXRlX2NvbnRlbnQiKS5hbmltYXRlKHtwYWRkaW5nVG9wOmNvbnRhaW5lckhlaWdodH0sNTAwKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgiI2hhbWJ1cmdlci1oZWFkZXItY29udGFpbmVyLCAubGF5b3V0LWRyYXdlci1oYW1idXJnZXIiKS5jc3MoInRyYW5zZm9ybSIsIGB0cmFuc2xhdGVZKCR7Y29udGFpbmVySGVpZ2h0fXB4KWApOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCdib2R5JykuYWRkQ2xhc3MoJ1NwZWNpYWxPZmZlclBvcHVwT3Blbl9UMycpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoJy5sYXlvdXQtZHJhd2VyLWhhbWJ1cmdlcicpLnJlbW92ZUNsYXNzKCdoYW1idXJnZXJPUEVOJyk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoYWx3YXlzX3Zpc2libGVfb25fdG9wICYmIGFsd2F5c19maXhlZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZih3aW5kb3cuc2Nyb2xsWSA9PSAwKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJChlbGVtZW50KS5maW5kKCIub2ZmZXJwb3B1cF9hZHZhbmNlZHZlcnNpb25fdjRfaWNvbiIpLnRyaWdnZXIoJ2NsaWNrJyk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoJy5sYXlvdXQtZHJhd2VyLWhhbWJ1cmdlcicpLmFkZENsYXNzKCdoYW1idXJnZXJPUEVOJyk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJChlbGVtZW50KS5maW5kKCIub2ZmZXJwb3B1cF9hZHZhbmNlZHZlcnNpb25fdjQiKS5oaWRlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgiI3NpdGVfY29udGVudCIpLmFuaW1hdGUoe3BhZGRpbmdUb3A6MH0sNTAwKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCIjaGFtYnVyZ2VyLWhlYWRlci1jb250YWluZXIsIC5sYXlvdXQtZHJhd2VyLWhhbWJ1cmdlciIpLmNzcygidHJhbnNmb3JtIiwgInRyYW5zbGF0ZVkoMHB4KSIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoJ2JvZHknKS5yZW1vdmVDbGFzcygnU3BlY2lhbE9mZmVyUG9wdXBPcGVuX1QzJyk7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vdHJ1bm9mZiB0aGUgZGVzY3JpcHRpb24NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihhbHdheXNfZml4ZWQpIHR1cm5PRkZkZXNjcmlwdGlvbigpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9LDIwMCk7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgLy9zcGVjaWFsIHJlcXVlc3QNCiAgICAgICAgICAgICAgICBpZihhbHdheXNfdmlzaWJsZV9vbl90b3AgJiYgYWx3YXlzX2ZpeGVkKSB7DQoNCiAgICAgICAgICAgICAgICAgICAgLy9vbiBmaXJzdCBsb2FkDQogICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZigkKHdpbmRvdykuc2Nyb2xsVG9wKCkgPT0gMCkgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja2tpY2tvbnBvcHVwID0gMTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKGVsZW1lbnQpLmZpbmQoIi5vZmZlcnBvcHVwX2FkdmFuY2VkdmVyc2lvbl92NF9pY29uIikudHJpZ2dlcignY2xpY2snKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfSwgMTAwMCk7DQogICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAvL29uIHNjcm9sbA0KICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgJCh3aW5kb3cpLm9uKCJzY3JvbGwiLCBmdW5jdGlvbigpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCQodGhpcykuc2Nyb2xsVG9wKCkgPT0gMCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNra2lja29ucG9wdXAgPSAxOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoZWxlbWVudCkuZmluZCgiLm9mZmVycG9wdXBfYWR2YW5jZWR2ZXJzaW9uX3Y0X2ljb24iKS50cmlnZ2VyKCdjbGljaycpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICAgICAgfSwgMjAwMCk7DQogICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAkKGVsZW1lbnQpLmZpbmQoIi5vZmZlcnBvcHVwX2FkdmFuY2VkdmVyc2lvbl92NF9pY29uIikuY2xpY2soZnVuY3Rpb24oKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjaGVja2tpY2tvbnBvcHVwID0gMTsNCiAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAvLyBvbiBjbGljayBvbiBwb3B1cA0KICAgICAgICAgICAgICAgICAgICBpZihsaW5rdG9Cb3gpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICQoZWxlbWVudCkuZmluZCgiLm9mZmVycG9wdXBfYWR2YW5jZWR2ZXJzaW9uX3Y0IikuY2xpY2soZnVuY3Rpb24oKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoY2hlY2traWNrb25wb3B1cCA9PSAwKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJwb3B1cGJ0biIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9ICQoZWxlbWVudCkuZmluZCgnLm9mZmVycG9wdXBfYWR2YW5jZWR2ZXJzaW9uX3Y0X0J0bicpLmF0dHIoImhyZWYiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja2tpY2tvbnBvcHVwID0gMDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICQoZWxlbWVudCkuZmluZCgiLmhlYWRlcldyYXBwZXIiKS5oaWRlKCk7DQogICAgICAgICAgICAkKGVsZW1lbnQpLmZpbmQoIiNzbGlkZWl0IikuaGlkZSgpOw0KICAgICAgICAgICAgJChlbGVtZW50KS5maW5kKCIub2ZmZXJwb3B1cF9hZHZhbmNlZHZlcnNpb25fdjQiKS5oaWRlKCk7DQogICAgICAgICAgICANCiAgICAgICAgICAgICQoIiNzaXRlX2NvbnRlbnQiKS5jc3MoInBhZGRpbmctdG9wIiwgIjBweCIpOw0KICAgICAgICAgICAgJCgiI2hhbWJ1cmdlci1oZWFkZXItY29udGFpbmVyLCAubGF5b3V0LWRyYXdlci1oYW1idXJnZXIiKS5jc3MoInRyYW5zZm9ybSIsICJ0cmFuc2xhdGVZKDBweCkiKTsNCiAgICAgICAgICAgIA0KICAgICAgICAgICAgLy9yZW1vdmUgdGhlIGlubmVyIGNvbnRlbnQNCiAgICAgICAgICAgICQoZWxlbWVudCkuZmluZCgiLmhlYWRlcldyYXBwZXIiKS5odG1sKCcnKTsNCiAgICAgICAgICAgICQoZWxlbWVudCkuZmluZCgiI3NsaWRlaXQiKS5odG1sKCcnKTsNCiAgICAgICAgICAgICQoZWxlbWVudCkuZmluZCgiLm9mZmVycG9wdXBfYWR2YW5jZWR2ZXJzaW9uX3Y0IikuaHRtbCgnJyk7DQogICAgICAgICAgICANCiAgICAgICAgICAgICQod2luZG93KS5zY3JvbGwoZnVuY3Rpb24oKXsNCiAgICAgICAgICAgICAgICBpZiAoJCh3aW5kb3cpLnNjcm9sbFRvcCgpID49IDEwMCkgew0KICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygic2Nyb2xsIHRoZW1lIGVuZCBkYXRlIik7DQogICAgICAgICAgICAgICAgICAgICQoZWxlbWVudCkuZmluZCgiLmhlYWRlcldyYXBwZXIiKS5oaWRlKCk7DQogICAgICAgICAgICAgICAgICAgICQoIiNzaXRlX2NvbnRlbnQiKS5jc3MoInBhZGRpbmctdG9wIiwgIjBweCIpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0pOw0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICBmdW5jdGlvbiBmYWRlT3V0T25TY3JvbGwoKSB7DQogICAgICAgICAgICAkKHdpbmRvdykuc2Nyb2xsKGZ1bmN0aW9uKCkgew0KICAgICAgICAgICAgICAgIGlmICgkKHdpbmRvdykuc2Nyb2xsVG9wKCkgPiAyMDApIHsNCiAgICAgICAgICAgICAgICAgICAgJChlbGVtZW50KS5maW5kKCIjc2xpZGVpdCIpLmZhZGVPdXQoKTsNCiAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAkKGVsZW1lbnQpLmZpbmQoIiNzbGlkZWl0IikuZmFkZUluKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSk7DQogICAgICAgIH0NCiAgICB9DQogICAgDQogICAgaWYoZGF0YS5pbkVkaXRvcikgew0KICAgICAgICBpZihsYXlvdXQgPT0gInRoZW1lMiIpIHsNCiAgICAgICAgICAgIC8vY2hlY2sgcG9wdXAgcGFnZQ0KICAgICAgICAgICAgY29uc29sZS5sb2coImRtUG9wdXBNZXNzYWdlIiwkKCcuZG1Qb3B1cE1lc3NhZ2UnKSwkKCdib2R5JykudGV4dCgpLmluY2x1ZGVzKCdEaXNwbGF5IHRoaXMgcG9wdXAgdXNpbmcgYScpKTsNCg0KICAgICAgICAgICAgdmFyIG5vdHdvcmtmb3Jwb3B1cCA9IHRydWU7DQoNCiAgICAgICAgICAgIGlmKCQoJy5kbVBvcHVwTWVzc2FnZScpLmxlbmd0aCA+IDApIHsNCiAgICAgICAgICAgICAgICBub3R3b3JrZm9ycG9wdXAgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiSXQgaXMgYSBwb3B1cCBwYWdlIik7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmKG5vdHdvcmtmb3Jwb3B1cCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAkKCdib2R5JykuYWRkQ2xhc3MoJ1NwZWNpYWxPZmZlclBvcHVwRXhpc3QnKTsNCiAgICAgICAgICAgICAgICAkKGVsZW1lbnQpLmZpbmQoIi5oZWFkZXJXcmFwcGVyIikuY3NzKCdkaXNwbGF5JywnYmxvY2snKTsNCiAgICAgICAgICAgICAgICBpZigkKGVsZW1lbnQpLmZpbmQoIi5oZWFkZXJXcmFwcGVyIikuZmluZCgnYScpKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgJChlbGVtZW50KS5maW5kKCIuaGVhZGVyV3JhcHBlciIpLmZpbmQoJ2EnKS5hZGRDbGFzcygnaGVhZGVyLWFuY2hvcicpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBsZXQgY29udGFpbmVySGVpZ2h0ID0gJChlbGVtZW50KS5maW5kKCIuaGVhZGVyV3JhcHBlciIpLm91dGVySGVpZ2h0KCk7DQogICAgICAgICAgICAgICAgLy9sZXQgY29udGFpbmVySGVpZ2h0ID0gJChlbGVtZW50KS5maW5kKCIuaGVhZGVyV3JhcHBlciIpLmlubmVySGVpZ2h0KCk7DQogICAgICAgICAgICAgICAgLy8gbGV0IGNvbnRhaW5lckhlaWdodCA9IGRhdGEuZGV2aWNlICE9ICJtb2JpbGUiID8gJChlbGVtZW50KS5maW5kKCIuaGVhZGVyV3JhcHBlciIpLm91dGVySGVpZ2h0KCkgOiBwYXJzZUludCgkKGVsZW1lbnQpLmZpbmQoIi5oZWFkZXJXcmFwcGVyIikub3V0ZXJIZWlnaHQoKSkgKyBwYXJzZUludCgkKCIjaGFtYnVyZ2VyLWhlYWRlci1jb250YWluZXIiKS5vdXRlckhlaWdodCgpKTsNCiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhjb250YWluZXJIZWlnaHQsICJoZWlnaHQiKTsNCiAgICAgICAgICAgICAgICAvLyBjb250YWluZXJIZWlnaHQgPSBwYXJzZUludChjb250YWluZXJIZWlnaHQpOw0KICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gew0KICAgICAgICAgICAgICAgICAgICBjb250YWluZXJIZWlnaHQgPSAkKGVsZW1lbnQpLmZpbmQoIi5oZWFkZXJXcmFwcGVyIikub3V0ZXJIZWlnaHQoKTsNCiAgICAgICAgICAgICAgICAgICAgLy9jb250YWluZXJIZWlnaHQgPSAkKGVsZW1lbnQpLmZpbmQoIi5oZWFkZXJXcmFwcGVyIikuaW5uZXJIZWlnaHQoKTsNCiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coY29udGFpbmVySGVpZ2h0LCAiaGVpZ2h0Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lckhlaWdodCA9IHBhcnNlSW50KGNvbnRhaW5lckhlaWdodCk7DQogICAgICAgICAgICAgICAgICAgIGlmKHBhcnNlSW50KGlubmVySGVpZ2h0KSA+IDAgKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhjb250YWluZXJIZWlnaHQpOw0KICAgICAgICAgICAgICAgICAgICAgICAgJCgiI3NpdGVfY29udGVudCIpLmNzcygicGFkZGluZy10b3AiLCBgJHtjb250YWluZXJIZWlnaHR9cHhgKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICQoIiNoYW1idXJnZXItaGVhZGVyLWNvbnRhaW5lciwgLmxheW91dC1kcmF3ZXItaGFtYnVyZ2VyIikuY3NzKCJ0cmFuc2Zvcm0iLCBgdHJhbnNsYXRlWSgkeyQoZWxlbWVudCkuZmluZCgiLmhlYWRlcldyYXBwZXIiKS5vdXRlckhlaWdodCgpfXB4KWApOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgIH0sIDUwMCk7DQogICAgICAgICAgICAgICAgbGV0IHNob3dsb2NrID0gZmFsc2U7DQogICAgICAgICAgICAgICAgbGV0IGhpZGVsb2NrID0gZmFsc2U7DQogICAgICAgICAgICAgICAgJCh3aW5kb3cpLnNjcm9sbChmdW5jdGlvbigpew0KICAgICAgICAgICAgICAgICAgICBpZihjbG9zZW9uY2xvc2VidG4pew0KICAgICAgICAgICAgICAgICAgICAgICAgLy9jb25zb2xlLmxvZyhjbG9zZW9uY2xvc2VidG4pOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCQod2luZG93KS5zY3JvbGxUb3AoKSA+PSAxMDApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2NvbnNvbGUubG9nKCJzY3JvbGwgdGhlbWUgMiBoaWRlIik7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8kKGVsZW1lbnQpLmZpbmQoIi5oZWFkZXJXcmFwcGVyIikuaGlkZSgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGFuaW1hdGVkX2VmZmVjdCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCFoaWRlbG9jaykNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJChlbGVtZW50KS5maW5kKCIuaGVhZGVyV3JhcHBlciIpLmFuaW1hdGUoe2hlaWdodDowLHBhZGRpbmc6MH0sNTAwKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoIiNzaXRlX2NvbnRlbnQiKS5hbmltYXRlKHtwYWRkaW5nVG9wOjB9LDUwMCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vJCgiI3NpdGVfY29udGVudCIpLmNzcygicGFkZGluZy10b3AiLCAiMHB4Iik7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCIjaGFtYnVyZ2VyLWhlYWRlci1jb250YWluZXIsIC5sYXlvdXQtZHJhd2VyLWhhbWJ1cmdlciIpLmFkZENsYXNzKCdoYW1idXJnZXItaGVhZGVyLWNvbnRhaW5lci1hbmltYXRlLXRvcCcpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgiI2hhbWJ1cmdlci1oZWFkZXItY29udGFpbmVyLCAubGF5b3V0LWRyYXdlci1oYW1idXJnZXIiKS5jc3MoInRyYW5zZm9ybSIsICJ0cmFuc2xhdGVZKDBweCkiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaWRlbG9jayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dsb2NrID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoZWxlbWVudCkuZmluZCgiLmhlYWRlcldyYXBwZXIiKS5jc3MoJ2Rpc3BsYXknLCdub25lJyk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoIiNzaXRlX2NvbnRlbnQiKS5jc3MoInBhZGRpbmctdG9wIiwgIjBweCIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCIjaGFtYnVyZ2VyLWhlYWRlci1jb250YWluZXIsIC5sYXlvdXQtZHJhd2VyLWhhbWJ1cmdlciIpLmNzcygidHJhbnNmb3JtIiwgInRyYW5zbGF0ZVkoMHB4KSIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCdib2R5JykucmVtb3ZlQ2xhc3MoJ1NwZWNpYWxPZmZlclRhYk9wZW4nKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2NvbnNvbGUubG9nKCJzY3JvbGwgdGhlbWUgMiBzaG93Iik7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoYW5pbWF0ZWRfZWZmZWN0KQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoIXNob3dsb2NrKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKGVsZW1lbnQpLmZpbmQoIi5oZWFkZXJXcmFwcGVyIikuYW5pbWF0ZSh7aGVpZ2h0OmNvbnRhaW5lckhlaWdodCxwYWRkaW5nOicyMHB4IDUwcHgnfSw1MDApOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgiI3NpdGVfY29udGVudCIpLmFuaW1hdGUoe3BhZGRpbmdUb3A6Y29udGFpbmVySGVpZ2h0fSw1MDApOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2NvbnNvbGUubG9nKGNvbnRhaW5lckhlaWdodCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyQoIiNzaXRlX2NvbnRlbnQiKS5jc3MoInBhZGRpbmctdG9wIiwgYCR7Y29udGFpbmVySGVpZ2h0fXB4YCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCIjaGFtYnVyZ2VyLWhlYWRlci1jb250YWluZXIsIC5sYXlvdXQtZHJhd2VyLWhhbWJ1cmdlciIpLmFkZENsYXNzKCdoYW1idXJnZXItaGVhZGVyLWNvbnRhaW5lci1hbmltYXRlLXRvcCcpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgiI2hhbWJ1cmdlci1oZWFkZXItY29udGFpbmVyLCAubGF5b3V0LWRyYXdlci1oYW1idXJnZXIiKS5jc3MoInRyYW5zZm9ybSIsIGB0cmFuc2xhdGVZKCR7Y29udGFpbmVySGVpZ2h0fXB4KWApOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaWRlbG9jayA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93bG9jayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vY29uc29sZS5sb2coInNjcm9sbCBoZWlnaCIsY29udGFpbmVySGVpZ2h0KTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJChlbGVtZW50KS5maW5kKCIuaGVhZGVyV3JhcHBlciIpLmNzcygnZGlzcGxheScsJ2Jsb2NrJyk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoIiNzaXRlX2NvbnRlbnQiKS5jc3MoInBhZGRpbmctdG9wIiwgYCR7Y29udGFpbmVySGVpZ2h0fXB4YCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoIiNoYW1idXJnZXItaGVhZGVyLWNvbnRhaW5lciwgLmxheW91dC1kcmF3ZXItaGFtYnVyZ2VyIikuY3NzKCJ0cmFuc2Zvcm0iLCBgdHJhbnNsYXRlWSgke2NvbnRhaW5lckhlaWdodH1weClgKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgnYm9keScpLmFkZENsYXNzKCdTcGVjaWFsT2ZmZXJUYWJPcGVuJyk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAvLy9vcGVuIGNsb3NlIG9mIGhhbWJ1cmdlciBtZW51IC0tIGFyaWppdCBzdGFydC0tLQ0KICAgICAgICAgICAgICAgICQoIi5sYXlvdXQtZHJhd2VyLWhhbWJ1cmdlciIpLm9uKCdjbGljaycsZnVuY3Rpb24oKXsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGN1cnJlbnRWU2Nyb2xsSEJNZW51ID0gd2luZG93LnNjcm9sbFk7DQogICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAvL2FkZGVkIGZvciBtb2JpbGUgZGV2aWNlIGFuZCBkdWRhIG5ldyB1cGRhdGUNCiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGEuZGV2aWNlPT09Im1vYmlsZSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCQoJ2RpdiNsYXlvdXQtZHJhd2VyLWhhbWJ1cmdlcicpLmhhc0NsYXNzKCdoYW1idXJnZXItb24taGVhZGVyJykpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCdkaXYjbGF5b3V0LWRyYXdlci1oYW1idXJnZXInKS5yZW1vdmVDbGFzcygnaGFtYnVyZ2VyLW9uLWhlYWRlcicpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCdkaXYjbGF5b3V0LWRyYXdlci1oYW1idXJnZXInKS5hZGRDbGFzcygnaGFtYnVyZ2VyLW9uLWhlYWRlcicpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgLy8kKCdkaXYjbGF5b3V0LWRyYXdlci1oYW1idXJnZXIubGF5b3V0LWRyYXdlci1oYW1idXJnZXInKS50b2dnbGVDbGFzcygnaGFtYnVyZ2VyLW9uLWhlYWRlcicpOw0KICAgICAgICAgICAgICAgICAgICAgICAgLy9jb25zb2xlLmxvZygiY2hlY2sgbW9iaWxlIixkYXRhLmRldmljZSwkKCcubGF5b3V0LWRyYXdlci1oYW1idXJnZXInKSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vY29uc29sZS5sb2coY3VycmVudFZTY3JvbGxIQk1lbnUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYoJCgnLmxheW91dC1kcmF3ZXItaGFtYnVyZ2VyJykuaGFzQ2xhc3MoJ2hhbWJ1cmdlci1vbi1oZWFkZXInKSkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2NvbnNvbGUubG9nKCdoaWRlJyk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJChlbGVtZW50KS5maW5kKCIuaGVhZGVyV3JhcHBlciIpLnJlbW92ZUNsYXNzKCdoaWRlVGhpc09mZmVyJyk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgiYm9keSIpLnJlbW92ZUNsYXNzKCdoaWRlVGhpc09mZmVyUG9wJyk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gIGlmKGN1cnJlbnRWU2Nyb2xsSEJNZW51IDw9IDEwMCAmJiBjbG9zZW9uY2xvc2VidG4gPT0gdHJ1ZSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihjbG9zZW9uY2xvc2VidG4gPT0gdHJ1ZSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoIiNzaXRlX2NvbnRlbnQiKS5hbmltYXRlKHtwYWRkaW5nVG9wOmNvbnRhaW5lckhlaWdodH0sNTAwKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgiI2hhbWJ1cmdlci1oZWFkZXItY29udGFpbmVyLCAubGF5b3V0LWRyYXdlci1oYW1idXJnZXIiKS5jc3MoInRyYW5zZm9ybSIsIGB0cmFuc2xhdGVZKCR7Y29udGFpbmVySGVpZ2h0fXB4KWApOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2NvbnNvbGUubG9nKCdzaG93Jyk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJChlbGVtZW50KS5maW5kKCIuaGVhZGVyV3JhcHBlciIpLmFkZENsYXNzKCdoaWRlVGhpc09mZmVyJyk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgiYm9keSIpLmFkZENsYXNzKCdoaWRlVGhpc09mZmVyUG9wJyk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gIGlmKGN1cnJlbnRWU2Nyb2xsSEJNZW51IDw9IDEwMCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCIjc2l0ZV9jb250ZW50IikuYW5pbWF0ZSh7cGFkZGluZ1RvcDowfSw1MDApOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCIjaGFtYnVyZ2VyLWhlYWRlci1jb250YWluZXIsIC5sYXlvdXQtZHJhd2VyLWhhbWJ1cmdlciIpLmNzcygidHJhbnNmb3JtIiwgInRyYW5zbGF0ZVkoMHB4KSIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0sMjAwKTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICAvLy8tYXJpaml0IGVuZC8vDQogICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAvLy8vY2xpY2sgb24gY2xvc2UvLy8vLy8vDQogICAgICAgICAgICAgICAgJCgnLlNQRUNJQUwtY2xvc2UtYnRuJykuY2xpY2soIGZ1bmN0aW9uKCkgew0KICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiY2xpY2sgb24gY2xvc2UiKTsNCiAgICAgICAgICAgICAgICAgICAgY2xvc2VvbmNsb3NlYnRuID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICBpZihhbmltYXRlZF9lZmZlY3QpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICQoZWxlbWVudCkuZmluZCgiLmhlYWRlcldyYXBwZXIiKS5hbmltYXRlKHtoZWlnaHQ6MCxwYWRkaW5nOjB9LDUwMCk7DQogICAgICAgICAgICAgICAgICAgICAgICAkKCIjc2l0ZV9jb250ZW50IikuYW5pbWF0ZSh7cGFkZGluZ1RvcDowfSw1MDApOw0KICAgICAgICAgICAgICAgICAgICAgICAgLy8kKCIjc2l0ZV9jb250ZW50IikuY3NzKCJwYWRkaW5nLXRvcCIsICIwcHgiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICQoIiNoYW1idXJnZXItaGVhZGVyLWNvbnRhaW5lciwgLmxheW91dC1kcmF3ZXItaGFtYnVyZ2VyIikuYWRkQ2xhc3MoJ2hhbWJ1cmdlci1oZWFkZXItY29udGFpbmVyLWFuaW1hdGUtdG9wJyk7DQogICAgICAgICAgICAgICAgICAgICAgICAkKCIjaGFtYnVyZ2VyLWhlYWRlci1jb250YWluZXIsIC5sYXlvdXQtZHJhd2VyLWhhbWJ1cmdlciIpLmNzcygidHJhbnNmb3JtIiwgInRyYW5zbGF0ZVkoMHB4KSIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7JCgnLlNQRUNJQUwtb3Blbi1idG4nKS5zaG93KCk7fSw1MDApOw0KICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICBzaG93bG9jayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAkKGVsZW1lbnQpLmZpbmQoIi5oZWFkZXJXcmFwcGVyIikuY3NzKCdkaXNwbGF5Jywnbm9uZScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgJCgiI3NpdGVfY29udGVudCIpLmNzcygicGFkZGluZy10b3AiLCAiMHB4Iik7DQogICAgICAgICAgICAgICAgICAgICAgICAkKCIjaGFtYnVyZ2VyLWhlYWRlci1jb250YWluZXIsIC5sYXlvdXQtZHJhd2VyLWhhbWJ1cmdlciIpLmNzcygidHJhbnNmb3JtIiwgInRyYW5zbGF0ZVkoMHB4KSIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgJCgnLlNQRUNJQUwtb3Blbi1idG4nKS5zaG93KCk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgJCgnYm9keScpLnJlbW92ZUNsYXNzKCdTcGVjaWFsT2ZmZXJUYWJPcGVuJyk7DQogICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICQoJy5TUEVDSUFMLW9wZW4tYnRuJykuY2xpY2soIGZ1bmN0aW9uKCkgew0KICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiY2xpY2sgb24gb3BlbiIpOw0KICAgICAgICAgICAgICAgICAgICBjbG9zZW9uY2xvc2VidG4gPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgaWYoYW5pbWF0ZWRfZWZmZWN0KQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAkKGVsZW1lbnQpLmZpbmQoIi5oZWFkZXJXcmFwcGVyIikuYW5pbWF0ZSh7aGVpZ2h0OmNvbnRhaW5lckhlaWdodCxwYWRkaW5nOicyMHB4IDUwcHgnfSw1MDApOw0KICAgICAgICAgICAgICAgICAgICAgICAgJCgiI3NpdGVfY29udGVudCIpLmFuaW1hdGUoe3BhZGRpbmdUb3A6Y29udGFpbmVySGVpZ2h0fSw1MDApOw0KICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAvL2NvbnNvbGUubG9nKGNvbnRhaW5lckhlaWdodCk7DQogICAgICAgICAgICAgICAgICAgICAgICAvLyQoIiNzaXRlX2NvbnRlbnQiKS5jc3MoInBhZGRpbmctdG9wIiwgYCR7Y29udGFpbmVySGVpZ2h0fXB4YCk7DQogICAgICAgICAgICAgICAgICAgICAgICAkKCIjaGFtYnVyZ2VyLWhlYWRlci1jb250YWluZXIsIC5sYXlvdXQtZHJhd2VyLWhhbWJ1cmdlciIpLmFkZENsYXNzKCdoYW1idXJnZXItaGVhZGVyLWNvbnRhaW5lci1hbmltYXRlLXRvcCcpOw0KICAgICAgICAgICAgICAgICAgICAgICAgJCgiI2hhbWJ1cmdlci1oZWFkZXItY29udGFpbmVyLCAubGF5b3V0LWRyYXdlci1oYW1idXJnZXIiKS5jc3MoInRyYW5zZm9ybSIsIGB0cmFuc2xhdGVZKCR7Y29udGFpbmVySGVpZ2h0fXB4KWApOw0KICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7JCgnLlNQRUNJQUwtb3Blbi1idG4nKS5oaWRlKCk7fSw1MDApOw0KICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICBzaG93bG9jayA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgaWYocGFyc2VJbnQoaW5uZXJIZWlnaHQpID4gMCkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKGVsZW1lbnQpLmZpbmQoIi5oZWFkZXJXcmFwcGVyIikuY3NzKCdkaXNwbGF5JywnYmxvY2snKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCIjc2l0ZV9jb250ZW50IikuY3NzKCJwYWRkaW5nLXRvcCIsIGAke2NvbnRhaW5lckhlaWdodH1weGApOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoIiNoYW1idXJnZXItaGVhZGVyLWNvbnRhaW5lciwgLmxheW91dC1kcmF3ZXItaGFtYnVyZ2VyIikuY3NzKCJ0cmFuc2Zvcm0iLCBgdHJhbnNsYXRlWSgke2NvbnRhaW5lckhlaWdodH1weClgKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCcuU1BFQ0lBTC1vcGVuLWJ0bicpLmhpZGUoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICQoJ2JvZHknKS5hZGRDbGFzcygnU3BlY2lhbE9mZmVyVGFiT3BlbicpOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIGlmKGxheW91dCA9PSAidGhlbWUxIikgew0KICAgICAgICAgICAgJCgiI3NpdGVfY29udGVudCIpLmNzcygicGFkZGluZy10b3AiLCAiMHB4Iik7DQogICAgICAgICAgICAkKCIjaGFtYnVyZ2VyLWhlYWRlci1jb250YWluZXIsIC5sYXlvdXQtZHJhd2VyLWhhbWJ1cmdlciIpLmNzcygidHJhbnNmb3JtIiwgInRyYW5zbGF0ZVkoMHB4KSIpOw0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICBpZihsYXlvdXQgPT0gImRyb3BfdGhlbWUiKSB7DQogICAgICAgICAgICAvL2ZpcnN0IGxvYWQNCiAgICAgICAgICAgICQoZWxlbWVudCkuZmluZCgiLm9mZmVycG9wdXBfYWR2YW5jZWR2ZXJzaW9uX3Y0IikuY3NzKCdkaXNwbGF5JywnYmxvY2snKTsNCiAgICAgICAgICAgIGNvbnRhaW5lckhlaWdodCA9ICQoZWxlbWVudCkuZmluZCgiLm9mZmVycG9wdXBfYWR2YW5jZWR2ZXJzaW9uX3Y0Iikub3V0ZXJIZWlnaHQoKTsNCiAgICAgICAgICAgIGNvbnRhaW5lckhlaWdodCA9IHBhcnNlSW50KGNvbnRhaW5lckhlaWdodCk7DQoNCiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gew0KICAgICAgICAgICAgICAgIGlmKCBwYXJzZUludChpbm5lckhlaWdodCkgPiAwKSB7DQogICAgICAgICAgICAgICAgICAgIGlmKGluaXRpYWxQYWRkaW5nIHx8IGFsd2F5c19maXhlZCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgJCgiI3NpdGVfY29udGVudCIpLmNzcygicGFkZGluZy10b3AiLCBgJHtjb250YWluZXJIZWlnaHR9cHhgKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICQoIiNoYW1idXJnZXItaGVhZGVyLWNvbnRhaW5lciwgLmxheW91dC1kcmF3ZXItaGFtYnVyZ2VyIikuY3NzKCJ0cmFuc2Zvcm0iLCBgdHJhbnNsYXRlWSgke2NvbnRhaW5lckhlaWdodH1weClgKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICQoJ2JvZHknKS5hZGRDbGFzcygnU3BlY2lhbE9mZmVyUG9wdXBPcGVuX1QzJyk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LCAzMDApOw0KICAgICAgICAgICAgDQogICAgICAgICAgICAvL29uIHNjcm9sbCBlZmZlY3QNCiAgICAgICAgICAgICQod2luZG93KS5zY3JvbGwoZnVuY3Rpb24oKXsNCiAgICAgICAgICAgICAgICBpZihhbHdheXNfZml4ZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKCQod2luZG93KS5zY3JvbGxUb3AoKSA+PSAxMDAgJiYgJChlbGVtZW50KS5maW5kKCIub2ZmZXJwb3B1cF9hZHZhbmNlZHZlcnNpb25fdjQiKS5oYXNDbGFzcygnRGVzY3JpcHRpb25PcGVuJykpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICQoZWxlbWVudCkuZmluZCgiLm9mZmVycG9wdXBfYWR2YW5jZWR2ZXJzaW9uX3Y0X2ljb24iKS50cmlnZ2VyKCJjbGljayIpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKCQod2luZG93KS5zY3JvbGxUb3AoKSA+PSAxMDApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICQoZWxlbWVudCkuZmluZCgiLm9mZmVycG9wdXBfYWR2YW5jZWR2ZXJzaW9uX3Y0IikuaGlkZSgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgJCgiI3NpdGVfY29udGVudCIpLmNzcygicGFkZGluZy10b3AiLCAiMHB4Iik7DQogICAgICAgICAgICAgICAgICAgICAgICAkKCIjaGFtYnVyZ2VyLWhlYWRlci1jb250YWluZXIsIC5sYXlvdXQtZHJhd2VyLWhhbWJ1cmdlciIpLmNzcygidHJhbnNmb3JtIiwgInRyYW5zbGF0ZVkoMHB4KSIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgJCgnYm9keScpLnJlbW92ZUNsYXNzKCdTcGVjaWFsT2ZmZXJQb3B1cE9wZW5fVDMnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgdHVybk9GRmRlc2NyaXB0aW9uKCk7DQogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXJIZWlnaHQgPSAkKGVsZW1lbnQpLmZpbmQoIi5vZmZlcnBvcHVwX2FkdmFuY2VkdmVyc2lvbl92NCIpLm91dGVySGVpZ2h0KCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXJIZWlnaHQgPSBwYXJzZUludChjb250YWluZXJIZWlnaHQpOw0KICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgICQoZWxlbWVudCkuZmluZCgiLm9mZmVycG9wdXBfYWR2YW5jZWR2ZXJzaW9uX3Y0IikuY3NzKCdkaXNwbGF5JywnYmxvY2snKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICQoIiNzaXRlX2NvbnRlbnQiKS5jc3MoInBhZGRpbmctdG9wIiwgYCR7Y29udGFpbmVySGVpZ2h0fXB4YCk7DQogICAgICAgICAgICAgICAgICAgICAgICAkKCIjaGFtYnVyZ2VyLWhlYWRlci1jb250YWluZXIsIC5sYXlvdXQtZHJhd2VyLWhhbWJ1cmdlciIpLmNzcygidHJhbnNmb3JtIiwgYHRyYW5zbGF0ZVkoJHtjb250YWluZXJIZWlnaHR9cHgpYCk7DQogICAgICAgICAgICAgICAgICAgICAgICAkKCdib2R5JykuYWRkQ2xhc3MoJ1NwZWNpYWxPZmZlclBvcHVwT3Blbl9UMycpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSk7DQogICAgICAgICAgICANCiAgICAgICAgICAgIC8vb24gY2xpY2sgZWZmZWN0DQogICAgICAgICAgICAkKGVsZW1lbnQpLmZpbmQoIi5vZmZlcnBvcHVwX2FkdmFuY2VkdmVyc2lvbl92NF9pY29uIikub24oImNsaWNrIiwgZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICQoZWxlbWVudCkuZmluZCgiLm9mZmVycG9wdXBfYWR2YW5jZWR2ZXJzaW9uX3Y0X2NvbnRhbnQiKS5zdG9wKCkuc2xpZGVUb2dnbGUoNDAwLCAic3dpbmciKTsNCiAgICAgICAgICAgICAgICAkKGVsZW1lbnQpLmZpbmQoIi5vZmZlcnBvcHVwX2FkdmFuY2VkdmVyc2lvbl92NCIpLnRvZ2dsZUNsYXNzKCJEZXNjcmlwdGlvbk9wZW4iKTsNCiAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsNCiAgICAgICAgICAgICAgICAgICAgY29udGFpbmVySGVpZ2h0ID0gJChlbGVtZW50KS5maW5kKCIub2ZmZXJwb3B1cF9hZHZhbmNlZHZlcnNpb25fdjQiKS5vdXRlckhlaWdodCgpOw0KICAgICAgICAgICAgICAgICAgICBjb250YWluZXJIZWlnaHQgPSBwYXJzZUludChjb250YWluZXJIZWlnaHQpOw0KICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgJCgiI3NpdGVfY29udGVudCIpLmFuaW1hdGUoe3BhZGRpbmdUb3A6Y29udGFpbmVySGVpZ2h0fSw0MDApOw0KICAgICAgICAgICAgICAgICAgICAkKCIjaGFtYnVyZ2VyLWhlYWRlci1jb250YWluZXIsIC5sYXlvdXQtZHJhd2VyLWhhbWJ1cmdlciIpLmNzcygidHJhbnNmb3JtIiwgYHRyYW5zbGF0ZVkoJHtjb250YWluZXJIZWlnaHR9cHgpYCk7DQogICAgICAgICAgICAgICAgfSwgNDEwKTsNCiAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgDQogICAgICAgICAgICAvL2NsaWNrIG9uIGhhbWJ1cmdlcg0KICAgICAgICAgICAgJCgiLmxheW91dC1kcmF3ZXItaGFtYnVyZ2VyIikub24oJ2NsaWNrJyxmdW5jdGlvbigpew0KICAgICAgICAgICAgICAgIHZhciBjdXJyZW50VlNjcm9sbEhCTWVudSA9IHdpbmRvdy5zY3JvbGxZOw0KICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsNCiAgICAgICAgICAgICAgICAgICAgLy9jb25zb2xlLmxvZyhjdXJyZW50VlNjcm9sbEhCTWVudSk7DQogICAgICAgICAgICAgICAgICAgIGlmKCQoJy5sYXlvdXQtZHJhd2VyLWhhbWJ1cmdlcicpLmhhc0NsYXNzKCdoYW1idXJnZXJPUEVOJykpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmKGN1cnJlbnRWU2Nyb2xsSEJNZW51IDw9IDEwMCB8fCBhbHdheXNfZml4ZWQpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJChlbGVtZW50KS5maW5kKCIub2ZmZXJwb3B1cF9hZHZhbmNlZHZlcnNpb25fdjQiKS5jc3MoJ2Rpc3BsYXknLCdibG9jaycpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lckhlaWdodCA9ICQoZWxlbWVudCkuZmluZCgiLm9mZmVycG9wdXBfYWR2YW5jZWR2ZXJzaW9uX3Y0Iikub3V0ZXJIZWlnaHQoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXJIZWlnaHQgPSBwYXJzZUludChjb250YWluZXJIZWlnaHQpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoIiNzaXRlX2NvbnRlbnQiKS5hbmltYXRlKHtwYWRkaW5nVG9wOmNvbnRhaW5lckhlaWdodH0sNTAwKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCIjaGFtYnVyZ2VyLWhlYWRlci1jb250YWluZXIsIC5sYXlvdXQtZHJhd2VyLWhhbWJ1cmdlciIpLmNzcygidHJhbnNmb3JtIiwgYHRyYW5zbGF0ZVkoJHtjb250YWluZXJIZWlnaHR9cHgpYCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgnYm9keScpLmFkZENsYXNzKCdTcGVjaWFsT2ZmZXJQb3B1cE9wZW5fVDMnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICQoJy5sYXlvdXQtZHJhd2VyLWhhbWJ1cmdlcicpLnJlbW92ZUNsYXNzKCdoYW1idXJnZXJPUEVOJyk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAkKCcubGF5b3V0LWRyYXdlci1oYW1idXJnZXInKS5hZGRDbGFzcygnaGFtYnVyZ2VyT1BFTicpOw0KICAgICAgICAgICAgICAgICAgICAgICAgJChlbGVtZW50KS5maW5kKCIub2ZmZXJwb3B1cF9hZHZhbmNlZHZlcnNpb25fdjQiKS5oaWRlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICAkKCdib2R5JykucmVtb3ZlQ2xhc3MoJ1NwZWNpYWxPZmZlclBvcHVwT3Blbl9UMycpOw0KICAgICAgICAgICAgICAgICAgICAgICAgJCgiI3NpdGVfY29udGVudCIpLmFuaW1hdGUoe3BhZGRpbmdUb3A6MH0sNTAwKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICQoIiNoYW1idXJnZXItaGVhZGVyLWNvbnRhaW5lciwgLmxheW91dC1kcmF3ZXItaGFtYnVyZ2VyIikuY3NzKCJ0cmFuc2Zvcm0iLCAidHJhbnNsYXRlWSgwcHgpIik7DQogICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgIC8vdHJ1bm9mZiB0aGUgZGVzY3JpcHRpb24NCiAgICAgICAgICAgICAgICAgICAgICAgIGlmKGFsd2F5c19maXhlZCkgdHVybk9GRmRlc2NyaXB0aW9uKCk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9LDIwMCk7DQogICAgICAgICAgICB9KTsNCiAgICAgICAgfQ0KICAgIH0NCiAgICANCiAgICBmdW5jdGlvbiByZW1vdmVUYWdzKHN0cikgew0KICAgICAgICBpZiAoKHN0cj09PW51bGwpIHx8IChzdHI9PT0nJykpDQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIGVsc2UNCiAgICAgICAgICAgIHN0ciA9IHN0ci50b1N0cmluZygpOw0KICAgICAgICAgICAgICANCiAgICAgICAgLy8gUmVndWxhciBleHByZXNzaW9uIHRvIGlkZW50aWZ5IEhUTUwgdGFncyBpbiANCiAgICAgICAgLy8gdGhlIGlucHV0IHN0cmluZy4gUmVwbGFjaW5nIHRoZSBpZGVudGlmaWVkIA0KICAgICAgICAvLyBIVE1MIHRhZyB3aXRoIGEgbnVsbCBzdHJpbmcuDQogICAgICAgIHJldHVybiBzdHIucmVwbGFjZSggLyg8KFtePl0rKT4pL2lnLCAnJyk7DQogICAgfQ0KDQogICAgZnVuY3Rpb24gdHVybk9GRmRlc2NyaXB0aW9uKCkgew0KICAgICAgICBpZigkKGVsZW1lbnQpLmZpbmQoIi5vZmZlcnBvcHVwX2FkdmFuY2VkdmVyc2lvbl92NCIpLmhhc0NsYXNzKCdEZXNjcmlwdGlvbk9wZW4nKSkgew0KICAgICAgICAgICAgJChlbGVtZW50KS5maW5kKCIub2ZmZXJwb3B1cF9hZHZhbmNlZHZlcnNpb25fdjRfY29udGFudCIpLnN0b3AoKS5zbGlkZVRvZ2dsZSg0MDAsICJzd2luZyIpOw0KICAgICAgICAgICAgJChlbGVtZW50KS5maW5kKCIub2ZmZXJwb3B1cF9hZHZhbmNlZHZlcnNpb25fdjQiKS50b2dnbGVDbGFzcygiRGVzY3JpcHRpb25PcGVuIik7DQogICAgICAgIH0NCiAgICB9DQp9DQplbHNlDQp7DQogICAgJChlbGVtZW50KS5maW5kKCcud2lkZ2V0LWIxZTY2MicpLmhpZGUoKTsNCiAgICAkKGVsZW1lbnQpLmZpbmQoJy53aWRnZXQtYjFlNjYyJykuaHRtbCgnJyk7DQp9DQoNCmZ1bmN0aW9uIHJlbW92ZUV4dHJhKHN0cil7DQogICAgbGV0IGZ1bGxUZXh0ID0nJzsNCiAgICBpZih0eXBlb2Ygc3RyICE9PSAidW5kZWZpbmVkIil7DQogICAgICAgIGlmKCFzdHIuaW5jbHVkZXMoIjwvcD4iKSl7DQogICAgICAgICAgICBmdWxsVGV4dCA9IHN0cjsNCiAgICAgICAgfWVsc2V7DQogICAgICAgICAgICBmdWxsVGV4dCA9IHN0ci5zdWJzdHJpbmcoc3RyLmluZGV4T2YoIj4iKSsxKS5yZXBsYWNlKCI8L3A+IiwnJyk7DQogICAgICAgIH0NCiAgICB9DQogICAgcmV0dXJuIGZ1bGxUZXh0Ow0KfQ0KDQovL3JlbW92ZSBleHRyYSA8cCBjbGFzcz0icnRlQmxvY2siPiB0YWcgZnJvbSBzdHJpbmcNCmZ1bmN0aW9uIHJlbW92ZUV4dHJhUHRhZyhzdHIpIHsNCiAgICBsZXQgZnVsbFRleHQgPScnOw0KICAgIGlmKHR5cGVvZiBzdHIgIT09ICJ1bmRlZmluZWQiICYmIHN0ciAhPSAnJyl7DQogICAgICAgIGlmKCFzdHIuaW5jbHVkZXMoIjwvcD4iKSkNCiAgICAgICAgICAgIGZ1bGxUZXh0ID0gc3RyOw0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGZ1bGxUZXh0ID0gc3RyLnJlcGxhY2UoJzxwIGNsYXNzPSJydGVCbG9jayI+JywnJyk7DQogICAgICAgICAgICBmdWxsVGV4dCA9IGZ1bGxUZXh0LnJlcGxhY2UoJzwvcD4nLCcnKTsNCiAgICAgICAgICAgIA0KICAgICAgICAgICAgaWYoZnVsbFRleHQuaW5jbHVkZXMoIjwvcD4iKSkgZnVsbFRleHQgPSByZW1vdmVFeHRyYVB0YWcoZnVsbFRleHQpOw0KICAgICAgICAgICAgZWxzZSByZXR1cm4gZnVsbFRleHQ7DQogICAgICAgIH0NCiAgICB9DQogICAgcmV0dXJuIGZ1bGxUZXh0Ow0KfQ==","css":"@charset \"UTF-8\";\n/*********** INFORMATION *****************************\n\n- document: SlideIt - CSS3 fixed sliding elements\n- element: Simple Footer - Half Width - Opened\n- author: Capelle @ Codecanyon\n- profile: http://codecanyon.net/user/Capelle\n\n*****************************************************/\n/* ==================\n 1. FONTS\n ================== */\n/* ==================\n 2. RESET\n ================== */\n/***** Item reset *****/\n#dm .dmBody .rrac_entrata_special_view .Entrata_POPUP_item .card_Heading, #dm .dmBody .rrac_entrata_special_view .Entrata_POPUP_item .card_DESC {\n color: rgb(0, 0, 0) !important;\n}\n\n.rrac_entrata_special_view .specialofferloaderdiv {\n width: 100%;\n margin: 0 auto !important;\n}\n\n.rrac_entrata_special_view .Entrata_POPUP_item {\n padding: 0 !important;\n}\n\n#slideit * {\n margin: 0;\n padding: 0;\n border: 0;\n outline: 0;\n font-weight: 300;\n font-style: normal;\n font-size: 100%;\n vertical-align: baseline;\n line-height: normal;\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n}\n\n#slideit a {\n text-decoration: none;\n}\n\n#slideit label {\n cursor: pointer;\n}\n\n#slideit input[type=radio] {\n display: none;\n}\n\n/* === Note === If you experience issues with reset above, please adjust the selectors and values according to your template/website.\nWhen adjusting the reset is adviced to check up the elements on your page, as they might distort. */\n/* ==================\n 3. MAIN STYLES\n ================== */\n#slideit {\n z-index: 9999; /* Keep the item above all other elements on the page */\n position: fixed;\n width: 50%; /* Width of the wrapper of the section. Adjust this value if you want wider footer */\n bottom: 0; /* Vertical position of the elements */\n left: 0;\n right: 0;\n margin: 0 auto;\n}\n\n/***** Form styles *****/\n#slideit section {\n overflow: hidden;\n width: 100%;\n max-width: 760px;\n height: auto;\n left: 0;\n right: 0;\n bottom: 0;\n position: fixed;\n z-index: 10;\n background: #fff;\n border-bottom: 5px solid #434343;\n -webkit-backface-visibility: hidden; /* Webkit transition hack */\n}\n\n#slideit section.left {\n margin-left: 0;\n margin-right: auto;\n}\n\n#slideit section.center {\n margin-left: auto;\n margin-right: auto;\n}\n\n#slideit section.right {\n margin-left: auto;\n margin-right: 0;\n}\n\n#slideit section, #slideit input#close-item:checked ~ section { /* Section position when closed */\n -webkit-transform: translateY(100%);\n -moz-transform: translateY(100%);\n -ms-transform: translateY(100%);\n -o-transform: translateY(100%);\n transform: translateY(100%);\n}\n\n#slideit input#open-item:checked ~ section { /* Section position when opened */\n -webkit-transform: translateY(0);\n -moz-transform: translateY(0);\n -ms-transform: translateY(0);\n -o-transform: translateY(0);\n transform: translateY(0);\n}\n\n#slideit section .wrap {\n padding: 30px;\n position: relative;\n float: left;\n text-align: center;\n width: 100%;\n}\n\n#slideit section .wrap .title {\n display: block;\n font-size: 30px;\n font-weight: 600;\n color: #222;\n width: 100%;\n}\n\n#slideit section .wrap .description {\n font-size: 18px;\n display: inline-block;\n padding-right: 4px;\n vertical-align: top;\n padding: 10px 10px 10px 10px;\n width: 100%;\n}\n\n#slideit section .wrap .description p.rteBlock {\n text-align: center;\n}\n\n#slideit .links a {\n color: #bbb;\n font-size: 12px;\n display: inline-block;\n margin: 16px 10px 10px 10px;\n}\n\n#slideit .links a:hover, #slideit .links a:focus {\n color: #222;\n}\n\n#slideit .links a:before {\n content: \"●\";\n padding-right: 4px;\n}\n\n#slideit p.copyright {\n font-size: 14px;\n color: #bbb;\n line-height: 14px;\n display: block;\n margin: 10px auto 0 auto;\n padding-top: 20px;\n width: 80%;\n}\n\n#slideit p.copyright span {\n font-size: 14px;\n display: inline-block;\n padding-right: 4px;\n vertical-align: top;\n margin-top: -1px;\n}\n\nsection.center .wrap {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n}\n\nsection.center .wrap .title {\n text-align: center !important;\n}\n\nsection.center .wrap .title p.rteBlock {\n text-align: center !important;\n}\n\n/***** Main labels *****/\n#slideit label.open, #slideit label.close {\n text-align: center;\n position: absolute;\n}\n\n#slideit label.open {\n position: fixed;\n font-size: 24px;\n font-weight: 600;\n color: #222;\n background: #fff;\n width: 285px;\n bottom: 0px;\n left: 0;\n right: 0;\n top: auto;\n padding: 10px 10px 10px;\n z-index: 1;\n}\n\n#slideit label.open.left {\n margin-left: 0;\n margin-right: auto;\n}\n\n#slideit label.open.center {\n margin-left: auto;\n margin-right: auto;\n}\n\n#slideit label.open.right {\n margin-left: auto;\n margin-right: 0;\n}\n\n#slideit input#close-item:checked ~ label.open {\n bottom: 0;\n}\n\n#slideit label.open:hover, #slideit label.open:focus {\n background: #f7f7f7;\n color: #000;\n}\n\n#slideit label.close {\n right: 30px;\n left: auto;\n top: 0;\n bottom: auto;\n font-size: 30px;\n background: #434343;\n color: #fff;\n width: 22px;\n z-index: 999;\n}\n\n#slideit label.close:hover, #slideit label.close:focus {\n background: #ff0404;\n}\n\n/***** Transitions *****/\n#slideit label, #slideit a {\n -webkit-transition: all 0.1s ease-in-out;\n -moz-transition: all 0.1s ease-in-out;\n -ms-transition: all 0.1s ease-in-out;\n -o-transition: all 0.1s ease-in-out;\n transition: all 0.1s ease-in-out;\n}\n\n#slideit section {\n -webkit-transition: all 0.4s cubic-bezier(0.2, 0.6, 0.3, 1);\n -moz-transition: all 0.4s cubic-bezier(0.2, 0.6, 0.3, 1);\n -ms-transition: all 0.4s cubic-bezier(0.2, 0.6, 0.3, 1);\n -o-transition: all 0.4s cubic-bezier(0.2, 0.6, 0.3, 1);\n transition: all 0.4s cubic-bezier(0.2, 0.6, 0.3, 1);\n}\n\n#slideit input#close-item:checked ~ label.open {\n -webkit-transition: bottom 0.3s ease 0.4s, background 0.1s ease, color 0.1s ease;\n -moz-transition: bottom 0.3s ease 0.4s, background 0.1s ease, color 0.1s ease;\n -ms-transition: bottom 0.3s ease 0.4s, background 0.1s ease, color 0.1s ease;\n -o-transition: bottom 0.3s ease 0.4s, background 0.1s ease, color 0.1s ease;\n transition: bottom 0.3s ease 0.4s, background 0.1s ease, color 0.1s ease;\n}\n\n.headerWrapper .SPECIAL-close-btn svg {\n width: 22px !important;\n fill: #fff;\n border: 1px solid #fff;\n height: 22px !important;\n padding: 3px;\n border-radius: 30px;\n}\n\n.headerWrapper .SPECIAL-close-btn {\n position: absolute;\n right: 20px;\n top: 10px;\n cursor: pointer;\n z-index: 9;\n}\n\n.headerWrapper .header-subtitle p {\n text-align: unset !important;\n}\n\n/* ==================\n 4. MEDIA QUERIES\n ================== */\n@media screen and (max-width: 959px) {\n .headerWrapper .SPECIAL-close-btn {\n right: 10px;\n }\n}\n/***** Max width 640px *****/\n@media screen and (max-width: 640px) {\n #slideit {\n width: 100%; /* <-- Setting the footer to 100% width so we can fit more elements horizontally */\n }\n #slideit p.copyright {\n width: 100%;\n }\n section.center .wrap .title p.rteBlock {\n font-size: 17px !important;\n }\n section.center .wrap .description {\n font-size: 15px !important;\n }\n}\n/***** Max width 480px *****/\n@media screen and (max-width: 480px) {\n #slideit section .wrap {\n text-align: left;\n }\n #slideit .links a {\n width: 100%;\n display: block;\n margin-left: 0;\n }\n #slideit p.copyright {\n float: left;\n margin: 10px 0 0 0;\n }\n section.center .wrap .title p.rteBlock {\n font-size: 17px !important;\n }\n section.center .wrap .description {\n font-size: 15px !important;\n }\n}\n/*THEME 2*/\n.headerWrapper {\n display: none;\n position: fixed;\n width: 100%;\n top: 0;\n left: 0;\n padding: 10px 10px;\n background-color: #000;\n z-index: 5;\n overflow: hidden;\n}\n\n.headerWrapper .header-title {\n font-size: 24px;\n font-weight: 700;\n color: #fff;\n}\n\n.headerWrapper .header-subtitle {\n font-size: 18px;\n font-weight: 700;\n color: #fff;\n margin: 0px;\n text-align: center !important;\n}\n\n.headerWrapper a {\n font-size: 18px;\n font-weight: 400;\n color: #fff;\n text-decoration: none;\n float: none;\n display: block;\n text-align: center !important;\n}\n\n.headerWrapper .header-anchor {\n text-align: center !important;\n color: #fff !important;\n}\n\n.headerWrapper .Theme2_Disclaimer {\n font-size: 15px;\n font-weight: 500;\n color: #fff;\n margin: 0;\n}\n\n.hamburger-header-container-animate-top {\n transition: all 0.5s linear; /*transform:translateY(130px);*/\n}\n\n.hamburger-header-container-animate-zero {\n transition: all 0.5s;\n transform: translateY(0px);\n}\n\n.SPECIAL-open-btn {\n display: none;\n}\n\n#dm .dmBody .dmRespRow div.u_1170127670 .headerWrapper {\n height: auto !important;\n opacity: 0 !important;\n transition: all 0.5s linear;\n transform: translateY(0px);\n}\n\n.SpecialOfferTabOpen #dm .dmBody .dmRespRow div.u_1170127670 .headerWrapper {\n opacity: 1 !important;\n flex-wrap: wrap;\n align-items: center;\n}\n\n.SPECIAL-open-btn {\n position: fixed;\n z-index: 99;\n color: #fff;\n text-transform: uppercase;\n font-size: 12px;\n bottom: 0;\n left: 0;\n right: 0;\n margin: 0 auto;\n width: 190px;\n background: rgb(220, 55, 14);\n border-radius: 20px 20px 0 0;\n text-align: center;\n line-height: 14px;\n transition: all 0.2s linear;\n letter-spacing: 0.5px;\n padding: 5px 0 3px;\n cursor: pointer;\n}\n\n.SPECIAL-open-btn:hover {\n background: #234058;\n}\n\n.SpecialOfferTabOpen #dm .dmBody .dmRespRow div.u_1170127670 .headerWrapper.hideThisOffer {\n display: none;\n height: auto !important;\n padding: 0 !important;\n}\n\n.headerWrapper .header-title {\n width: 100%;\n margin-bottom: 0;\n text-align: center !important;\n}\n\n.headerWrapper .Theme2_Disclaimer {\n text-align: center;\n}\n\n#dm .dmBody .u_1170127670 .header-subtitle {\n width: 100%;\n margin: -7px 0 0;\n}\n\n#dm .dmBody div.u_1170127670 .headerWrapper .header-anchor {\n background: #fff;\n color: #000;\n max-width: 140px;\n margin: 0 auto;\n padding: 7px 0;\n text-align: center !important;\n width: 100% !important;\n}\n\n.SpecialOfferTabOpen.hideThisOfferPop .headerWrapper.hideThisOffer {\n display: none !important;\n height: auto !important;\n padding: 0 !important;\n}\n\n#slideit.OfferPopWithImageLayout2 section .wrap {\n width: 100% !important;\n}\n\n#slideit.OfferPopWithImageLayout2 section .wrap .bg-img {\n width: 100% !important;\n}\n\n#slideit.OfferPopWithImageLayout2 section .wrap .bg-img a {\n display: block !important;\n}\n\n#slideit.OfferPopWithImageLayout2 section .wrap .bg-img a .img-content {\n width: 100% !important;\n object-fit: contain !important;\n}\n\n.OfferPopWithImageLayout2 .offerpopup_layoutone_Btn {\n margin-top: 20px !important;\n padding: 13px 25px !important;\n}\n\n.OfferPopWithImageLayout2 .copyright {\n margin: 15px auto 0px !important;\n}\n\n/*DROPDOWN THEME*/\n.offerpopup_advancedversion_v4 .offerpopup_advancedversion_v4_contant {\n padding-top: 0 !important;\n}\n\n.offerpopup_advancedversion_v4 .offerpopup_advancedversion_v4_contant .offerpopup_advancedversion_v4_para p {\n text-align: center !important;\n}\n\n.offerpopup_advancedversion_v4 .offerpopup_advancedversion_v4_contant .offerpopup_advancedversion_v4_Btn {\n width: 170px !important;\n text-align: center !important;\n text-decoration: none;\n display: block !important;\n}\n\n.offerpopup_advancedversion_v4 .offerpopup_advancedversion_v4_contant .offerpopup_advancedversion_v4_description {\n margin: 0;\n}\n\n@media only screen and (min-width: 768px) and (max-width: 1200px) {\n .headerWrapper .header-title {\n font-size: 24px !important;\n }\n .headerWrapper .header-subtitle {\n font-size: 14px;\n font-weight: 600;\n line-height: 1.4;\n }\n .headerWrapper .header-anchor {\n font-size: 15px;\n }\n .headerWrapper .Theme2_Disclaimer p.rteBlock {\n font-size: 14px;\n font-weight: 500;\n line-height: 1.4;\n }\n}\n@media only screen and (max-width: 767px) {\n .SpecialOfferTabOpen #dm .dmBody .dmRespRow div.u_1170127670 .headerWrapper {\n padding: 10px 20px !important;\n }\n .headerWrapper .SPECIAL-close-btn {\n right: 6px !important;\n top: 5px !important;\n }\n #dm .dmBody .dmRespColsWrapper div.u_1170127670 .header-title {\n font-size: 13px !important;\n }\n .headerWrapper .header-subtitle {\n margin: 0px !important;\n }\n .headerWrapper .header-subtitle {\n font-size: 14px;\n font-weight: 600;\n line-height: 1.4;\n }\n .headerWrapper .header-anchor {\n font-size: 15px;\n }\n .headerWrapper .Theme2_Disclaimer p.rteBlock {\n font-size: 14px;\n font-weight: 500;\n line-height: 1.4;\n }\n .headerWrapper .header-title {\n line-height: 1.2;\n margin-bottom: 0;\n }\n .headerWrapper .Theme2_Disclaimer {\n margin: 0;\n }\n #slideit.OfferPopWithImageLayout2 section .wrap {\n padding: 15px;\n }\n #slideit.OfferPopWithImageLayout2 label.close {\n right: 15px;\n }\n}\n/* 04-01-2023 */\n/*.SpecialOfferPopupExist .runtime-module-container[dmtemplateid*=amburger] .dmLayoutWrapper .layout-drawer-hamburger.hamburger-on-header{margin-top:0!important;transition:all 0.5s linear!important;}*/\n/*.hideThisOfferPop .hamburger-header-container.hamburger-header-container-animate-top,.hideThisOfferPop .layout-drawer-hamburger.hamburger-header-container-animate-top,.hideThisOfferPop .hamburger-header-container.p_hfcontainer{transform:translateY(0px)!important;}*/\n/*.runtime-module-container .hamburger-header-container{transition:all 0.5s linear!important;}*/\n/*.hamburger-header-container{z-index:6!important;}*/\n/*@media only screen and (min-width:768px) and (max-width:1200px){*/\n/* .SpecialOfferPopupExist #dm .dmOuter .dmInner .dmLayoutWrapper .p_hfcontainer .dmRespColsWrapper .dmRespRow .dmRespColsWrapper .u_1838333705.dmRespCol .main-navigation .unifiednav__container .unifiednav__item-wrap .unifiednav__item{font-size:16px!important;}*/\n/*\t.SpecialOfferPopupExist *.responsiveTablet [dmtemplateid=\"Hamburger\"].runtime-module-container .layout-drawer-hamburger{top:23.26667022705078px!important;right:40px!important;}*/\n/*}*/\n/*@media (max-width:1199px){*/\n/* *#dm .SpecialOfferPopupExist .dmOuter .dmInner .dmLayoutWrapper.standard-var .layout-drawer-hamburger{top:20px!important;right:20px!important;margin-top:0!important;}*/\n/*}*/\n/*@media only screen and (max-width:767px){*/\n/*\t.runtime-module-container.layout-drawer_open.layout-drawer_push-content{transform:translate(100vw,0)!important;}*/\n/*\t.SpecialOfferPopupExist #dmRoot.dmMobileBody.dmLayoutBody .runtime-module-container .layout-drawer-hamburger{left:20px!important;position:fixed!important;}*/\n/*\t.SpecialOfferPopupExist #dmRoot.dmMobileBody.dmLayoutBody .runtime-module-container .layout-drawer-hamburger.hamburger-on-header{top:19px!important;}*/\n/*\t#dmRoot.dmMobileBody.dmLayoutBody #dm #site_content .p_hfcontainer #mobile-hamburger-drawer.layout-drawer:not([data-origin=\"top\"]){width:100%!important;left:0!important;}*/\n/*\t#dmRoot.dmMobileBody.dmLayoutBody.hideThisOfferPop #dm #site_content .p_hfcontainer #mobile-hamburger-drawer.layout-drawer:not([data-origin=\"top\"]){width:100%!important;left:0!important;right:0!important;transform:translate(-100vw,0)!important;}*/\n/*\t#dmRoot.dmMobileBody.dmLayoutBody #dm .runtime-module-container.layout-drawer_open.layout-drawer_push-content{transform:translate(100vw,0)!important;}*/\n/*\t.mobileHamburgerLayout .runtime-module-container .layout-drawer-hamburger { left: -70px !important;}*/\n/*\t.mobileHamburgerLayout .runtime-module-container .layout-drawer-hamburger.hamburger-on-header { left: 20px !important;}*/\n/*\t.SpecialOfferPopupExist .mobileHamburgerLayout .runtime-module-container .layout-drawer-hamburger { left: -70px !important;}*/\n/*\t.SpecialOfferPopupExist .mobileHamburgerLayout .runtime-module-container .layout-drawer-hamburger.hamburger-on-header { left: 20px !important;}*/\n/*\t.SpecialOfferPopupExist #dmRoot.dmMobileBody.dmLayoutBody.hideThisOfferPop .runtime-module-container .layout-drawer-hamburger{left:-50px!important;}*/\n/*}*/\n/*.SpecialOfferPopupExist .responsiveTablet [dmtemplateid=\"Hamburger\"].runtime-module-container .layout-drawer-hamburger.hamburger-on-header{top:21px!important;right:40px!important;}*/\n@media (min-width: 768px) {\n .headerWrapper.splitView .leftOfSplit {\n position: relative !important;\n float: left !important;\n width: 50% !important;\n margin: 0 !important;\n padding: 0 60px 0 60px !important;\n text-align: left !important;\n margin-bottom: 0 !important;\n line-height: 60px !important;\n }\n .headerWrapper.splitView .leftOfSplit::after {\n content: \"\";\n position: absolute;\n width: 2px;\n height: 59px;\n background-color: #a37c20 !important;\n right: 30px;\n top: 0;\n }\n .headerWrapper.splitView .rightOfSplit {\n float: right !important;\n width: 50% !important;\n margin: 0 !important;\n text-align: left !important;\n }\n .headerWrapper.splitView .rightOfSplit .header-title {\n margin-bottom: 0 !important;\n line-height: 30px !important;\n }\n}\n@media only screen and (min-width: 960px) and (max-width: 1200px) {\n .dmRoot #dm .dmBody div.dmCustomWidget .headerWrapper.splitView .leftOfSplit::after {\n height: 60px !important;\n }\n .dmRoot #dm .dmBody div.dmCustomWidget .headerWrapper.splitView .header-title {\n font-size: 21px !important;\n }\n .dmRoot #dm .dmBody div.dmCustomWidget .headerWrapper.splitView .header-subtitle {\n margin: 0 !important;\n }\n .dmRoot #dm .dmBody div.dmCustomWidget .headerWrapper.splitView .leftOfSplit {\n width: 40% !important;\n font-size: 30px !important;\n }\n .dmRoot #dm .dmBody div.dmCustomWidget .headerWrapper.splitView .rightOfSplit {\n width: 60% !important;\n }\n .dmRoot #dm .dmBody div.dmCustomWidget .headerWrapper.splitView .rightOfSplit .header-subtitle {\n line-height: 1.1 !important;\n }\n}\n@media only screen and (min-width: 960px) and (max-width: 1024px) {\n .dmRoot #dm .dmBody div.dmCustomWidget .headerWrapper.splitView .header-title {\n font-size: 20px !important;\n }\n .dmRoot #dm .dmBody div.dmCustomWidget .headerWrapper.splitView .leftOfSplit {\n font-size: 30px !important;\n }\n}\n@media only screen and (min-width: 768px) and (max-width: 959px) {\n .dmRoot #dm .dmBody div.dmCustomWidget .headerWrapper.splitView .leftOfSplit::after {\n height: 64px !important;\n }\n .dmRoot #dm .dmBody div.dmCustomWidget .headerWrapper.splitView .header-title {\n font-size: 21px !important;\n }\n .dmRoot #dm .dmBody div.dmCustomWidget .headerWrapper.splitView .header-subtitle {\n margin: 0 !important;\n }\n .dmRoot #dm .dmBody div.dmCustomWidget .headerWrapper.splitView .leftOfSplit {\n width: 40% !important;\n font-size: 21px !important;\n }\n .dmRoot #dm .dmBody div.dmCustomWidget .headerWrapper.splitView .rightOfSplit {\n width: 60% !important;\n }\n .dmRoot #dm .dmBody div.dmCustomWidget .headerWrapper.splitView .rightOfSplit .header-subtitle {\n line-height: 1.1 !important;\n }\n}\n@media only screen and (max-width: 959px) {\n .widget-b1e662 {\n position: relative !important;\n z-index: 99 !important;\n }\n}\n@media (max-width: 767px) {\n .dmRoot #dm .dmBody div.dmCustomWidget .headerWrapper.splitView {\n padding: 20px 20px !important;\n }\n .dmRoot #dm .dmBody div.dmCustomWidget .headerWrapper.splitView .leftOfSplit {\n text-align: center !important;\n }\n .dmRoot #dm .dmBody div.dmCustomWidget .headerWrapper.splitView .header-title {\n text-align: center !important;\n line-height: 1.1 !important;\n margin-top: 4px !important;\n }\n .dmRoot #dm .dmBody div.dmCustomWidget .headerWrapper.splitView .header-subtitle {\n text-align: center !important;\n line-height: 1.1 !important;\n }\n}\n/* new dropdown template */\n.offerpopup_advancedversion_v4 {\n position: fixed;\n width: 100%;\n top: 0;\n left: 0;\n z-index: 99;\n overflow: hidden;\n}\n\n.offerpopup_advancedversion_v4 .scheduletour_v3_top_header {\n background-color: #f95353;\n padding: 16px;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 10px;\n cursor: pointer;\n}\n\n.offerpopup_advancedversion_v4 .scheduletour_v3_top_header .offerpopup_advancedversion_v4_main_heading {\n font-size: 15px;\n line-height: 24px;\n color: #fff;\n}\n\n.offerpopup_advancedversion_v4 .scheduletour_v3_top_header .offerpopup_advancedversion_v4_icon {\n display: flex;\n align-items: center;\n width: 15px;\n cursor: pointer;\n}\n\n.offerpopup_advancedversion_v4 .scheduletour_v3_top_header .offerpopup_advancedversion_v4_icon svg {\n width: 15px;\n height: 17px;\n fill: #fff;\n}\n\n.offerpopup_advancedversion_v4 .offerpopup_advancedversion_v4_contant {\n display: none;\n background: #3d3d3d;\n padding: 20px 300px;\n}\n\n.offerpopup_advancedversion_v4 .offerpopup_advancedversion_v4_contant .offerpopup_advancedversion_v4_para {\n font-size: 15px;\n line-height: 24px;\n color: #fff;\n text-align: center;\n}\n\n.offerpopup_advancedversion_v4 .offerpopup_advancedversion_v4_contant .offerpopup_advancedversion_v4_Btn {\n display: inline-block;\n padding: 10px 20px;\n border: 1px solid #fff;\n font-size: 16px;\n line-height: 24px;\n background: transparent;\n color: #fff;\n margin: 15px auto 0 auto;\n transition: 0.2s ease-in-out;\n cursor: pointer;\n}\n\n.offerpopup_advancedversion_v4 .offerpopup_advancedversion_v4_contant .offerpopup_advancedversion_v4_Btn:hover {\n background: #fff;\n border: 1px solid #fff;\n color: #3d3d3d;\n}\n\n.offerpopup_advancedversion_v4 .offerpopup_advancedversion_v4_contant .offerpopup_advancedversion_v4_description {\n margin: 15px 0 0 0;\n font-size: 15px;\n line-height: 24px;\n color: #fff;\n text-align: center;\n}\n\n.offerpopup_advancedversion_v4.DescriptionOpen .scheduletour_v3_top_header .offerpopup_advancedversion_v4_icon {\n transform: rotate(-180deg);\n}\n\n.headerWrapper.splitView {\n padding: 0;\n}\n\n.headerWrapper.splitView .leftOfSplit {\n width: 25% !important;\n padding: 0 10px 0 30px !important;\n}\n\n.headerWrapper.splitView .leftOfSplit .leftOfSplitImgsec {\n width: 200px;\n height: auto;\n margin-left: auto;\n padding-top: 20px;\n}\n\n.headerWrapper.splitView .leftOfSplit .leftOfSplitImgsec img {\n width: 100%;\n height: 100%;\n object-fit: contain;\n}\n\n.headerWrapper.splitView .leftOfSplit::after {\n display: none;\n}\n\n.headerWrapper.splitView .rightOfSplit {\n width: 75% !important;\n padding-left: 0 !important;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n padding-right: 30px;\n}\n\n.headerWrapper.splitView .rightOfSplit .rightOfSplittxt {\n border-left: 1px solid #f6f6f6 !important;\n border-right: 1px solid #f6f6f6 !important;\n padding: 10px 30px;\n}\n\n.headerWrapper.splitView .rightOfSplit .rightOfSplitimg {\n width: 240px;\n height: fit-content;\n margin-left: 20px;\n}\n\n.headerWrapper.splitView .rightOfSplit .rightOfSplitimg img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n filter: brightness(0) invert(1);\n}\n\n.headerWrapper.splitView .rightOfSplit .header-subtitle {\n width: 100% !important;\n}\n\n.headerWrapper.splitView .Theme2_Disclaimer {\n width: 100%;\n}\n\n@media only screen and (min-width: 1201px) and (max-width: 1500px) {\n .headerWrapper.splitView .rightOfSplit .rightOfSplitimg {\n width: 240px;\n padding-left: 25px;\n }\n}\n@media only screen and (min-width: 960px) and (max-width: 1200px) {\n .offerpopup_advancedversion_v4 .offerpopup_advancedversion_v4_contant {\n padding: 20px 50px;\n }\n .offerpopup_advancedversion_v4 .offerpopup_advancedversion_v4_contant .offerpopup_advancedversion_v4_Btn {\n margin: 10px auto 0 auto;\n }\n .offerpopup_advancedversion_v4 .offerpopup_advancedversion_v4_contant {\n padding: 20px 50px;\n }\n .offerpopup_advancedversion_v4 .offerpopup_advancedversion_v4_contant .offerpopup_advancedversion_v4_Btn {\n margin: 10px auto 0 auto;\n }\n .headerWrapper.splitView .leftOfSplit {\n width: 20% !important;\n border-right: none !important;\n padding: 0 !important;\n }\n .headerWrapper.splitView .leftOfSplit .leftOfSplitImgsec {\n width: 360px !important;\n height: 130px !important;\n margin: 0 auto !important;\n }\n .headerWrapper.splitView .rightOfSplit {\n width: 80% !important;\n padding: 0 !important;\n justify-content: center;\n align-items: flex-start;\n }\n .headerWrapper.splitView .rightOfSplit .header-title {\n text-align: center !important;\n }\n .headerWrapper.splitView .rightOfSplit .header-subtitle {\n text-align: center !important;\n }\n .headerWrapper.splitView .rightOfSplit .rightOfSplitimg {\n padding-left: 0;\n width: 200px;\n margin: 20px 0 0 0;\n }\n .headerWrapper.splitView .rightOfSplit .rightOfSplittxt {\n padding: 10px !important;\n }\n}\n@media only screen and (min-width: 768px) and (max-width: 1200px) {\n .headerWrapper.splitView .rightOfSplit {\n flex-wrap: nowrap;\n }\n .headerWrapper.splitView .rightOfSplit .rightOfSplitimg {\n padding-left: 20px;\n width: 160px;\n }\n}\n@media only screen and (min-width: 768px) and (max-width: 959px) {\n .offerpopup_advancedversion_v4 .offerpopup_advancedversion_v4_contant {\n padding: 20px 50px;\n }\n .offerpopup_advancedversion_v4 .offerpopup_advancedversion_v4_contant .offerpopup_advancedversion_v4_Btn {\n margin: 10px auto 0 auto;\n }\n .headerWrapper.splitView .leftOfSplit {\n width: 20% !important;\n border-right: none !important;\n padding: 0 !important;\n }\n .headerWrapper.splitView .leftOfSplit .leftOfSplitImgsec {\n height: 100px !important;\n margin: 0 auto !important;\n }\n .headerWrapper.splitView .rightOfSplit {\n width: 80% !important;\n padding: 0 !important;\n justify-content: center;\n align-items: flex-start;\n }\n .headerWrapper.splitView .rightOfSplit .header-title {\n text-align: center !important;\n }\n .headerWrapper.splitView .rightOfSplit .header-subtitle {\n text-align: center !important;\n }\n .headerWrapper.splitView .rightOfSplit .rightOfSplitimg {\n padding-left: 10px;\n width: 170px;\n margin: 20px 0 0 0;\n }\n .headerWrapper.splitView .rightOfSplit .rightOfSplittxt {\n padding: 0 10px !important;\n }\n .headerWrapper.splitView .leftOfSplit .leftOfSplitImgsec {\n padding-top: 10px;\n }\n .headerWrapper.splitView .leftOfSplit {\n width: 100% !important;\n }\n .headerWrapper.splitView .rightOfSplit {\n width: 100% !important;\n }\n .headerWrapper.splitView .rightOfSplit .rightOfSplittxt {\n border-left: none !important;\n }\n .headerWrapper.splitView .rightOfSplit .rightOfSplittxt br {\n display: none;\n }\n .headerWrapper.splitView .rightOfSplit {\n padding-bottom: 10px !important;\n }\n}\n@media only screen and (max-width: 767px) {\n .offerpopup_advancedversion_v4 .scheduletour_v3_top_header {\n align-items: flex-start;\n padding: 20px;\n }\n .offerpopup_advancedversion_v4 .scheduletour_v3_top_header .offerpopup_advancedversion_v4_main_heading {\n line-height: 1;\n }\n .offerpopup_advancedversion_v4 .offerpopup_advancedversion_v4_contant {\n padding: 10px 15px;\n }\n .offerpopup_advancedversion_v4 .offerpopup_advancedversion_v4_contant .offerpopup_advancedversion_v4_Btn {\n width: 150px !important;\n margin: 10px auto 0 auto;\n }\n .offerpopup_advancedversion_v4 .offerpopup_advancedversion_v4_contant .offerpopup_advancedversion_v4_description {\n margin: 10px 0 0 0;\n }\n .headerWrapper.splitView {\n padding: 10px 10px !important;\n }\n .headerWrapper.splitView .leftOfSplit {\n width: 100% !important;\n border-right: none !important;\n padding: 0 !important;\n }\n .headerWrapper.splitView .leftOfSplit .leftOfSplitImgsec {\n width: 100px !important;\n height: 100px !important;\n margin: 0 auto !important;\n }\n .headerWrapper.splitView .rightOfSplit {\n width: 100% !important;\n padding: 0 !important;\n justify-content: center;\n }\n .headerWrapper.splitView .rightOfSplit .header-title {\n text-align: center !important;\n }\n .headerWrapper.splitView .rightOfSplit .header-subtitle {\n text-align: center !important;\n }\n .headerWrapper.splitView .rightOfSplit .rightOfSplitimg {\n padding-left: 0;\n width: 120px;\n margin: 10px 0 0 0;\n }\n .headerWrapper.splitView .rightOfSplit .rightOfSplittxt {\n border-left: none !important;\n border-right: none !important;\n padding: 0 !important;\n }\n .headerWrapper.splitView .leftOfSplit .leftOfSplitImgsec {\n padding-top: 0;\n }\n}\n.OfferPopWithImage {\n padding: 0;\n width: 100%;\n}\n\n.OfferPopWithImage .bg-img-wrapper .bg-img .header-anchor img {\n width: 100%;\n object-fit: cover;\n}\n","strings":{}},{"widgetId":"1f5975986930429f819d4cd2154b5c4a","version":25,"js":null,"css":".widget-1f5975 .copyright {\n font-size: 13px;\n display: flex;\n text-align: left;\n justify-content: flex-start;\n}\n","strings":{}}],"page_title":"Blank","flexstyles":[],"popups":[],"title":null,"uuid":"e2cfc56d7959453aa544a2f6ea397636","devicecss":"*#dm *.dmBody div.u_1582953132\n{\n\tbackground-attachment:fixed !important;\n\tposition:static !important;\n}\n*#dm *.dmBody a.u_1305029531\n{\n\tpadding-top:0px !important;\n\tpadding-left:0px !important;\n\tdisplay:block !important;\n\tpadding-bottom:0px !important;\n\tfloat:none !important;\n\tmargin-right:auto !important;\n\tmargin-left:auto !important;\n\ttop:auto !important;\n\tmax-width:100% !important;\n\tleft:0 !important;\n\twidth:280px !important;\n\tmargin-top:10px !important;\n\tposition:relative !important;\n\tmargin-bottom:10px !important;\n\tpadding-right:0px !important;\n\tmin-width:0 !important;\n\ttext-align:center !important;\n\theight:41px !important;\n}\n*#dm *.dmBody div.u_1969874274\n{\n\tpadding-top:0px !important;\n\tpadding-left:0px !important;\n\tpadding-bottom:0px !important;\n\tfloat:none !important;\n\tmargin-right:0px !important;\n\tmargin-left:0px !important;\n\ttop:auto !important;\n\tmax-width:calc(100% - 0px) !important;\n\tleft:0px !important;\n\twidth:754px !important;\n\tmargin-top:10px !important;\n\tposition:relative !important;\n\tmargin-bottom:10px !important;\n\tpadding-right:0px !important;\n\tmin-width:25px !important;\n\ttext-align:center !important;\n\theight:auto !important;\n}\n*#dm *.dmBody div.u_1961225355\n{\n\tpadding-top:0px !important;\n\tpadding-left:40px !important;\n\tpadding-bottom:0px !important;\n\tfloat:none !important;\n\tmargin-right:auto !important;\n\tmargin-left:auto !important;\n\ttop:auto !important;\n\tmax-width:none !important;\n\tleft:0 !important;\n\twidth:100% !important;\n\tmargin-top:0px !important;\n\tposition:relative !important;\n\tmargin-bottom:0px !important;\n\tpadding-right:40px !important;\n\tmin-width:0 !important;\n\ttext-align:center !important;\n\theight:auto !important;\n}\n*#dm *.dmBody div.u_1487980814\n{\n\tpadding-top:0px !important;\n\tpadding-bottom:0px !important;\n\tpadding-left:0px !important;\n\tpadding-right:0px !important;\n\tfloat:none !important;\n\tmargin-right:0px !important;\n\tmargin-left:0px !important;\n\ttop:auto !important;\n\tmax-width:none !important;\n\tleft:0 !important;\n\twidth:100% !important;\n\tmargin-top:0px !important;\n\tposition:relative !important;\n\tmargin-bottom:0px !important;\n\tmin-width:0 !important;\n\ttext-align:center !important;\n\theight:auto !important;\n}\n*#dm *.dmBody div.u_1272008522\n{\n\tpadding-top:0px !important;\n\tpadding-left:0px !important;\n\tpadding-bottom:0px !important;\n\tfloat:none !important;\n\tmargin-right:0px !important;\n\tmargin-left:0px !important;\n\ttop:0px !important;\n\tmax-width:calc(100% - 0px) !important;\n\tleft:0px !important;\n\twidth:100% !important;\n\tmargin-top:0px !important;\n\tposition:relative !important;\n\tmargin-bottom:0px !important;\n\tpadding-right:0px !important;\n\tmin-width:25px !important;\n\ttext-align:center !important;\n\theight:372px !important;\n}\n*#dm *.dmBody div.u_1516620858\n{\n\tpadding-top:0px !important;\n\tpadding-left:0px !important;\n\tpadding-bottom:0px !important;\n\tfloat:none !important;\n\tmargin-right:0px !important;\n\tmargin-left:156px !important;\n\ttop:auto !important;\n\tmax-width:calc(100% - 156px) !important;\n\tleft:0px !important;\n\twidth:604px !important;\n\tmargin-top:0px !important;\n\tposition:relative !important;\n\tmargin-bottom:0px !important;\n\tpadding-right:0px !important;\n\tmin-width:25px !important;\n\ttext-align:center !important;\n\theight:auto !important;\n}\n*#dm *.dmBody div.u_dm_content\n{\n\tpadding-top:20px !important;\n\tpadding-bottom:20px !important;\n\tpadding-left:20px !important;\n\tpadding-right:20px !important;\n}\n*#dm *.dmBody div.u_1891614437\n{\n\tpadding-top:0px !important;\n\tpadding-left:40px !important;\n\tpadding-bottom:0px !important;\n\tfloat:none !important;\n\tmargin-right:auto !important;\n\tmargin-left:auto !important;\n\ttop:auto !important;\n\tmax-width:none !important;\n\tleft:0 !important;\n\twidth:100% !important;\n\tmargin-top:0px !important;\n\tposition:relative !important;\n\tmargin-bottom:0px !important;\n\tpadding-right:40px !important;\n\tmin-width:0 !important;\n\ttext-align:center !important;\n\theight:auto !important;\n}\n*#dm *.dmBody div.u_1694205906\n{\n\tpadding-top:0px !important;\n\tpadding-left:0px !important;\n\tpadding-bottom:0px !important;\n\tfloat:none !important;\n\tmargin-right:auto !important;\n\tmargin-left:auto !important;\n\ttop:auto !important;\n\tmax-width:none !important;\n\tleft:0 !important;\n\twidth:100% !important;\n\tmargin-top:0px !important;\n\tposition:relative !important;\n\tmargin-bottom:0px !important;\n\tpadding-right:0 !important;\n\tmin-width:0 !important;\n\ttext-align:center !important;\n\theight:auto !important;\n}\n*#dm *.dmBody div.u_1111986376\n{\n\tpadding-top:38.5px !important;\n\tpadding-left:0 !important;\n\tpadding-bottom:38.5px !important;\n\tfloat:none !important;\n\tmargin-right:auto !important;\n\tmargin-left:auto !important;\n\ttop:auto !important;\n\tmax-width:none !important;\n\tleft:0 !important;\n\twidth:100% !important;\n\tmargin-top:0px !important;\n\tposition:relative !important;\n\tmargin-bottom:0px !important;\n\tpadding-right:0 !important;\n\tmin-width:0 !important;\n\ttext-align:center !important;\n\theight:auto !important;\n}\n*#dm *.dmBody div.u_1351773922\n{\n\tpadding-top:5px !important;\n\tpadding-left:0px !important;\n\tdisplay:block !important;\n\tpadding-bottom:5px !important;\n\tfloat:none !important;\n\tmargin-right:auto !important;\n\tmargin-left:auto !important;\n\ttop:0px !important;\n\tmax-width:100% !important;\n\tleft:0 !important;\n\twidth:488px !important;\n\tmargin-top:15px !important;\n\tposition:relative !important;\n\tmargin-bottom:8px !important;\n\tpadding-right:0px !important;\n\tmin-width:0 !important;\n\ttext-align:center !important;\n\theight:auto !important;\n}\n*#dm *.dmBody a.u_1145340895 span.text\n{\n\tfont-size:18px !important;\n}\n*#dm *.dmBody a.u_1145340895 span.textonly\n{\n\tfont-size:18px !important;\n}\n*#dm *.dmBody a.u_1145340895\n{\n\tpadding-top:0px !important;\n\tpadding-left:0px !important;\n\tdisplay:block !important;\n\tpadding-bottom:0px !important;\n\tfloat:none !important;\n\tmargin-right:auto !important;\n\tmargin-left:auto !important;\n\ttop:0px !important;\n\tmax-width:100% !important;\n\tleft:0 !important;\n\twidth:250px !important;\n\tmargin-top:30px !important;\n\tposition:relative !important;\n\tmargin-bottom:0px !important;\n\tpadding-right:0px !important;\n\tmin-width:0 !important;\n\ttext-align:center !important;\n\theight:46px !important;\n}\n*#dm *.dmBody h1.u_1132229325\n{\n\tpadding-top:2px !important;\n\tpadding-left:0px !important;\n\tdisplay:block !important;\n\tpadding-bottom:0px !important;\n\tfloat:none !important;\n\tmargin-right:auto !important;\n\tmargin-left:auto !important;\n\ttop:0px !important;\n\tmax-width:calc(100% - 0px) !important;\n\tleft:0 !important;\n\twidth:100% !important;\n\tmargin-top:38px !important;\n\tposition:relative !important;\n\tmargin-bottom:0px !important;\n\tpadding-right:0px !important;\n\tmin-width:25px !important;\n\ttext-align:center !important;\n\theight:auto !important;\n}\n*#dm *.dmBody div.u_1248844576\n{\n\tpadding-top:2px !important;\n\tpadding-left:0px !important;\n\tpadding-bottom:2px !important;\n\tfloat:none !important;\n\tmargin-right:auto !important;\n\tmargin-left:auto !important;\n\ttop:0px !important;\n\tmax-width:calc(100% - 0px) !important;\n\tleft:0 !important;\n\twidth:100% !important;\n\tmargin-top:13px !important;\n\tposition:relative !important;\n\tmargin-bottom:8px !important;\n\tpadding-right:0px !important;\n\tmin-width:25px !important;\n\ttext-align:center !important;\n\theight:auto !important;\n\tdisplay:block !important;\n}\n*#dm *.dmBody h1.u_1312640753\n{\n\tpadding-top:2px !important;\n\tpadding-left:0px !important;\n\tpadding-bottom:2px !important;\n\tfloat:none !important;\n\tmargin-right:0px !important;\n\tmargin-left:0px !important;\n\ttop:0px !important;\n\tmax-width:calc(100% - 0px) !important;\n\tleft:0px !important;\n\twidth:100% !important;\n\tmargin-top:36px !important;\n\tposition:relative !important;\n\tmargin-bottom:8px !important;\n\tpadding-right:0px !important;\n\tmin-width:25px !important;\n\ttext-align:left !important;\n\theight:auto !important;\n}\n*#dm *.dmBody div.u_1364864902\n{\n}\n*#dm *.dmBody h2.u_1312640753\n{\n\tfloat:none !important;\n\ttop:0px !important;\n\tleft:0 !important;\n\twidth:calc(100% - 0px) !important;\n\tposition:relative !important;\n\theight:auto !important;\n\tpadding-top:2px !important;\n\tpadding-left:0px !important;\n\tpadding-bottom:2px !important;\n\tmin-height:auto !important;\n\tmargin-right:auto !important;\n\tmargin-left:auto !important;\n\tmax-width:100% !important;\n\tmargin-top:29px !important;\n\tmargin-bottom:8px !important;\n\tpadding-right:0px !important;\n\tmin-width:25px !important;\n\ttext-align:left !important;\n}\n","seometatags":"","content":"
\n
\n
\n
\n
\n
\n \n

Deposit Alternative Available

Jetty allows qualified applicants to lower upfront move in costs.
Ask our leasing team for details.
\n \n Contact Us \n \n
\n
\n
\n
\n
\n
\n
\n
\n","ssr_script":"","headsection":"\n\n\n\r\n \r\n Upscale Townhomes for Rent in Bee Caves, Austin, TX\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n","current_url":"","collections":"e30=","sidebarPosition":"NA","pageFontSizeStyle":".font-size-32, .size-32, .size-32 > font { font-size: 32px !important; }.font-size-16, .size-16, .size-16 > font { font-size: 16px !important; }","alias":"3ff20368b16b47169accfef78e94aa30","relAlternateLanguageLinksMarkup":"","extensionsToRender":{"1488996224":"
\n","1800247147":"
\n
\n","1734828792":" \n","1693976778":" \n","1423742255":" \n"},"parameters":{"InitialPageAlias":"3ff20368b16b47169accfef78e94aa30","InitialDynamicItem":null,"IsCurrentHomePage":false,"pageType":"POPUP","CurrentPageUrl":""},"insite_scripts":""}