html{height:100%}body{display:flex;flex-direction:column;min-height:100%}footer{margin-top:auto}h3,h4,h5,h6{font-family:Neuzeit Grotesk,sans-serif;font-weight:700!important}h1,h2{font-family:Bradford Medium,sans-serif;font-weight:500!important}.h1,h1{font-size:2.25rem!important;line-height:2.75rem!important}h2{font-size:1.625rem!important;line-height:1.875rem!important}h3{font-size:1.25rem!important;line-height:1.5rem!important}h4{font-size:1.125rem!important;line-height:1.375rem!important}h5{font-size:1rem!important;line-height:1.25rem!important}@media (min-width:768px){.h1,h1{font-size:3rem!important;line-height:3.625rem!important}h2{font-size:2rem!important;line-height:2.375rem!important}h3{font-size:1.25rem!important;line-height:1.5rem!important}h4{font-size:1.125rem!important;line-height:1.375rem!important}h5{font-size:1rem!important;line-height:1.188rem!important}}
.tab-content{max-height:0}.tab input:checked~.tab-content{max-height:100%}.tab input:checked+label{background-color:#f8fafc;border-color:#000;color:#000;font-size:1.1rem;padding-bottom:1.25rem;padding-left:1.25rem;padding-top:1.25rem}.tab label:after{display:block;float:right;font-size:1.5rem;height:2em;line-height:1.5;right:0;text-align:center;top:0;transition:all .35s;width:2em}.tab input[type=checkbox]+label:after{border-color:#b8c2cc;border-radius:9999px;border-width:1px;content:"+";font-weight:900;padding:.5rem}.tab input[type=checkbox]:checked+label:after{background-color:#000;color:#f8fafc;padding-left:1rem;padding-right:1rem;transform:rotate(315deg)}
.backdrop{-webkit-backdrop-filter:brightness(40%);backdrop-filter:brightness(40%)}.headerBackground{background-position:50%!important;background-repeat:no-repeat;background-size:cover;min-height:200px;position:relative}
:root{--calcColorButton:currentColor;--calcColorText:#000}.radio-toolbar{margin-right:10px}.radio-toolbar input[type=radio]{opacity:0;position:fixed;width:0}.radio-toolbar label{background-color:#ddd;border-radius:9999px;display:inline-block;font-size:16px;line-height:1.5;padding:5px 15px}.radio-toolbar-number input[type=number]:disabled{background-color:#fff;color:#a6a6a6;cursor:not-allowed}.checkbox-toolbar{margin-right:10px}.checkbox-toolbar input[type=checkbox]{opacity:0;position:fixed;width:0}.checkbox-toolbar label{background-color:#ddd;border-radius:9999px;content:"X";display:inline-block;font-size:16px;padding:5px 15px}.calculator-success{background-color:#edfff3;border:#46d390;color:#008a48}.radio-toolbar-yellow label:hover{background-color:#ffd400;opacity:.6}.radio-toolbar-yellow input[type=radio]:checked+label{background-color:#ffd400}.radio-toolbar-yellow input[type=radio]:not(:checked):disabled+label{background-color:#ddd;color:#8c8c8c;cursor:not-allowed;opacity:.4}.radio-toolbar-yellow input[type=radio]:checked:disabled+label{background-color:#ffd400;color:#8c8c8c;cursor:not-allowed;opacity:.4}.checkbox-toolbar-yellow label:hover{background-color:#ffd400;opacity:.6}.checkbox-toolbar-yellow input[type=checkbox]:checked+label{background-color:#ffd400}.checkbox-toolbar-yellow input[type=checkbox]:checked:disabled+label{background-color:#ffd400;color:#8c8c8c;cursor:not-allowed;opacity:.4}.checkbox-toolbar-yellow input[type=checkbox]:not(:checked):disabled+label{background-color:#ddd;color:#8c8c8c;cursor:not-allowed;opacity:.4}.calculator-yellow{color:#ffd400}.radio-toolbar-blue label:hover{opacity:.6}.radio-toolbar-blue input[type=radio]:checked+label,.radio-toolbar-blue label:hover{background-color:#0400ce;color:#fff}.radio-toolbar-blue input[type=radio]:not(:checked):disabled+label{background-color:#ddd;color:#a6a6a6;cursor:not-allowed;opacity:.4}.radio-toolbar-blue input[type=radio]:checked:disabled+label{background-color:#0400ce;color:#f2f2f2;cursor:not-allowed;opacity:.4}.checkbox-toolbar-blue label:hover{opacity:.6}.checkbox-toolbar-blue input[type=checkbox]:checked+label,.checkbox-toolbar-blue label:hover{background-color:#0400ce;color:#fff}.checkbox-toolbar-blue input[type=checkbox]:checked:disabled+label{background-color:#0400ce;color:#f2f2f2;cursor:not-allowed;opacity:.4}.checkbox-toolbar-blue input[type=checkbox]:not(:checked):disabled+label{background-color:#ddd;color:#a6a6a6;cursor:not-allowed;opacity:.4}.calculator-blue{color:#0400ce}.radio-toolbar-custom label:hover{opacity:.6}.radio-toolbar-custom input[type=radio]:checked+label,.radio-toolbar-custom label:hover{background-color:var(--calcColorButton);color:var(--calcColorText)}.radio-toolbar-custom input[type=radio]:not(:checked):disabled+label{background-color:#ddd;color:#a6a6a6;cursor:not-allowed;opacity:.4}.radio-toolbar-custom input[type=radio]:checked:disabled+label{background-color:var(--calcColorButton);color:var(--calcColorText);cursor:not-allowed;opacity:.4}.checkbox-toolbar-custom label:hover{opacity:.6}.checkbox-toolbar-custom input[type=checkbox]:checked+label,.checkbox-toolbar-custom label:hover{background-color:var(--calcColorButton);color:var(--calcColorText)}.checkbox-toolbar-custom input[type=checkbox]:checked:disabled+label{background-color:var(--calcColorButton);color:var(--calcColorText);cursor:not-allowed;opacity:.4}.checkbox-toolbar-custom input[type=checkbox]:not(:checked):disabled+label{background-color:#ddd;color:#a6a6a6;cursor:not-allowed;opacity:.4}.calculator-custom{color:var(--calcColorButton)}.h-18{height:4.5rem}
.ThreeItems{-o-object-fit:cover;object-fit:cover;-o-object-position:inherit;object-position:inherit;width:100%}@media (min-width:1280px){.ThreeItems{height:270px;-o-object-fit:cover;object-fit:cover;-o-object-position:inherit;object-position:inherit}}.TwoItems{height:180px;-o-object-fit:cover;object-fit:cover;-o-object-position:inherit;object-position:inherit;width:100%}@media (min-width:768px){.OneItem,.TwoItems{height:400px;-o-object-fit:cover;object-fit:cover;-o-object-position:inherit;object-position:inherit}}.OneItem{-o-object-fit:cover;object-fit:cover;-o-object-position:inherit;object-position:inherit;width:100%}@media (min-width:1280px){.container{max-width:1280px!important}}@media (min-width:1024px){.xl\:container{max-width:1024px!important}}
.rich-text h1,h2,h3{margin:5px 0!important}.rich-text ul{list-style:disc!important;margin-left:1rem}.rich-text ol{counter-reset:item;padding:0}.rich-text ol>li{counter-increment:item;list-style-type:none;margin:0;padding:0 0 0 1.5em;text-indent:-1.5em}.rich-text ol>li:before{content:counter(item) ".";display:inline-block;font-weight:700;padding-right:.5em;text-align:right;width:1.5em}.rich-text p{margin-block-end:1em;margin-block-start:1em}.rich-text a{text-decoration:underline}
.desktop-nav-border:before{height:100%;left:1px;top:1px;width:100%}.desktop-nav-border:before,.desktop-navigation:before{background:0 0;border:2px solid #000;border-radius:100px;content:"";position:absolute;z-index:40}.desktop-navigation:before{animation-fill-mode:both;bottom:0;box-sizing:inherit;-webkit-clip-path:polygon(10px 0,100% 0,10px 0,0 100%,10px 0,10px 0,10px 50%);clip-path:polygon(10px 0,100% 0,10px 0,0 100%,10px 0,10px 0,10px 50%);left:0;right:0;top:0}.desktop-navigation:hover:before{animation:border-fill-animation .8s cubic-bezier(.1,.3,.9,.7) 0s forwards}@keyframes border-fill-animation{0%{-webkit-clip-path:polygon(10px 0,100% 0,10px 0,0 100%,10px 0,10px 0,10px 50%);clip-path:polygon(10px 0,100% 0,10px 0,0 100%,10px 0,10px 0,10px 50%)}25%{-webkit-clip-path:polygon(10px 0,100% 0,100% 0,0 100%,100% 0,100% 0,10px 50%);clip-path:polygon(10px 0,100% 0,100% 0,0 100%,100% 0,100% 0,10px 50%)}50%{-webkit-clip-path:polygon(10px 0,100% 0,100% 100%,0 100%,100% 100%,100% 100%,10px 50%);clip-path:polygon(10px 0,100% 0,100% 100%,0 100%,100% 100%,100% 100%,10px 50%)}75%{-webkit-clip-path:polygon(10px 0,100% 0,100% 100%,0 100%,0 100%,0 100%,10px 50%);clip-path:polygon(10px 0,100% 0,100% 100%,0 100%,0 100%,0 100%,10px 50%)}to{-webkit-clip-path:polygon(10px 0,100% 0,100% 100%,0 100%,0 0,10px 0,10px 50%);clip-path:polygon(10px 0,100% 0,100% 100%,0 100%,0 0,10px 0,10px 50%)}}.main-menu:hover .sub-menu{max-height:-moz-max-content;max-height:max-content;opacity:1}.sub-menu{background:#ffd400;max-height:0;opacity:0;overflow:hidden;position:absolute;text-align:left;transition-duration:.7s;transition-property:all;transition-timing-function:ease-in-out;width:290px;z-index:30}
.career{max-height:550px}.careerDiv{background-color:#000;max-height:inherit}
@media (min-width:968px){.scrollFade{opacity:1;pointer-events:all}.scrollFade--hidden{opacity:0;pointer-events:none}.scrollFade--visible{opacity:1;pointer-events:all}.scrollFade--animate{transition:opacity .7s ease-in-out}}
.cookiefirst-accept-button{background-color:#000;border-radius:9999px;color:#fff;font-size:.875rem;font-weight:900;letter-spacing:-.01562em;padding:.75rem 1.25rem .5rem;text-transform:uppercase;transition:color .2s ease;z-index:40}.cookiefirst-accept-button:hover{color:#fff;cursor:pointer}
@font-face{font-display:swap;font-family:Neuzeit Grotesk;font-weight:700;src:url(/typo3conf/ext/eleasa_sitepackage/Resources/Public/dist/fonts/38B08A_0_0.eot);src:url(/typo3conf/ext/eleasa_sitepackage/Resources/Public/dist/fonts/38B08A_0_0.eot?#iefix) format("embedded-opentype"),url(/typo3conf/ext/eleasa_sitepackage/Resources/Public/dist/fonts/38B08A_0_0.woff2) format("woff2"),url(/typo3conf/ext/eleasa_sitepackage/Resources/Public/dist/fonts/38B08A_0_0.woff) format("woff"),url(/typo3conf/ext/eleasa_sitepackage/Resources/Public/dist/fonts/38B08A_0_0.ttf) format("truetype")}@font-face{font-display:swap;font-family:Neuzeit Grotesk;font-weight:400;src:url(/typo3conf/ext/eleasa_sitepackage/Resources/Public/dist/fonts/38B08A_1_0.eot);src:url(/typo3conf/ext/eleasa_sitepackage/Resources/Public/dist/fonts/38B08A_1_0.eot?#iefix) format("embedded-opentype"),url(/typo3conf/ext/eleasa_sitepackage/Resources/Public/dist/fonts/38B08A_1_0.woff2) format("woff2"),url(/typo3conf/ext/eleasa_sitepackage/Resources/Public/dist/fonts/38B08A_1_0.woff) format("woff"),url(/typo3conf/ext/eleasa_sitepackage/Resources/Public/dist/fonts/38B08A_1_0.ttf) format("truetype")}@font-face{font-display:swap;font-family:Bradford Medium;font-weight:700;src:url(/typo3conf/ext/eleasa_sitepackage/Resources/Public/dist/fonts/BradfordLLSub-Medium.eot);src:url(/typo3conf/ext/eleasa_sitepackage/Resources/Public/dist/fonts/BradfordLLSub-Medium.eot?#iefix) format("embedded-opentype"),url(/typo3conf/ext/eleasa_sitepackage/Resources/Public/dist/fonts/BradfordLLSub-Medium.woff2) format("woff2"),url(/typo3conf/ext/eleasa_sitepackage/Resources/Public/dist/fonts/BradfordLLSub-Medium.woff) format("woff")}@font-face{font-display:swap;font-family:Bradford Medium Italic;font-weight:400;src:url(/typo3conf/ext/eleasa_sitepackage/Resources/Public/dist/fonts/BradfordLLSub-MediumItalic.eot);src:url(/typo3conf/ext/eleasa_sitepackage/Resources/Public/dist/fonts/BradfordLLSub-MediumItalic.eot?#iefix) format("embedded-opentype"),url(/typo3conf/ext/eleasa_sitepackage/Resources/Public/dist/fonts/BradfordLLSub-MediumItalic.woff2) format("woff2"),url(/typo3conf/ext/eleasa_sitepackage/Resources/Public/dist/fonts/BradfordLLSub-MediumItalic.woff) format("woff")}@font-face{font-display:swap;font-family:Bradford Medium;font-weight:400;src:url(/typo3conf/ext/eleasa_sitepackage/Resources/Public/dist/fonts/BradfordLLWeb-Medium.eot);src:url(/typo3conf/ext/eleasa_sitepackage/Resources/Public/dist/fonts/BradfordLLWeb-Medium.eot?#iefix) format("embedded-opentype"),url(/typo3conf/ext/eleasa_sitepackage/Resources/Public/dist/fonts/BradfordLLWeb-Medium.woff2) format("woff2"),url(/typo3conf/ext/eleasa_sitepackage/Resources/Public/dist/fonts/BradfordLLWeb-Medium.woff) format("woff")}@font-face{font-display:swap;font-family:Bradford Medium Italic;font-weight:400;src:url(/typo3conf/ext/eleasa_sitepackage/Resources/Public/dist/fonts/BradfordLLWeb-MediumItalic.eot);src:url(/typo3conf/ext/eleasa_sitepackage/Resources/Public/dist/fonts/BradfordLLWeb-MediumItalic.eot?#iefix) format("embedded-opentype"),url(/typo3conf/ext/eleasa_sitepackage/Resources/Public/dist/fonts/BradfordLLWeb-MediumItalic.woff2) format("woff2"),url(/typo3conf/ext/eleasa_sitepackage/Resources/Public/dist/fonts/BradfordLLWeb-MediumItalic.woff) format("woff")}

/*! tailwindcss v3.4.1 | MIT License | https://tailwindcss.com*/*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:Neuzeit Grotesk,ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-feature-settings:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]{display:none}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.container{margin-left:auto;margin-right:auto;width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-x-0{left:0;right:0}.inset-y-0{bottom:0;top:0}.-right-full{right:-100%}.bottom-0{bottom:0}.bottom-4{bottom:1rem}.left-0{left:0}.right-0{right:0}.right-6{right:1.5rem}.top-0{top:0}.top-12{top:3rem}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-40{z-index:40}.order-2{order:2}.order-first{order:-9999}.col-auto{grid-column:auto}.col-span-1{grid-column:span 1/span 1}.col-span-11{grid-column:span 11/span 11}.col-span-2{grid-column:span 2/span 2}.col-span-3{grid-column:span 3/span 3}.col-span-full{grid-column:1/-1}.col-start-1{grid-column-start:1}.col-start-2{grid-column-start:2}.float-start{float:inline-start}.float-end{float:inline-end}.m-0{margin:0}.m-10{margin:2.5rem}.m-16{margin:4rem}.m-5{margin:1.25rem}.m-6{margin:1.5rem}.m-8{margin:2rem}.m-auto{margin:auto}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-1\.5{margin-left:.375rem;margin-right:.375rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-3{margin-left:.75rem;margin-right:.75rem}.mx-auto{margin-left:auto;margin-right:auto}.my-10{margin-bottom:2.5rem;margin-top:2.5rem}.my-12{margin-bottom:3rem;margin-top:3rem}.my-3{margin-bottom:.75rem;margin-top:.75rem}.my-5px{margin-bottom:5px;margin-top:5px}.my-8{margin-bottom:2rem;margin-top:2rem}.-ml-2{margin-left:-.5rem}.-ml-5{margin-left:-1.25rem}.-ml-6{margin-left:-1.5rem}.-mt-8{margin-top:-2rem}.mb-0{margin-bottom:0}.mb-1{margin-bottom:.25rem}.mb-10{margin-bottom:2.5rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.me-1{margin-inline-end:.25rem}.me-2{margin-inline-end:.5rem}.ml-5{margin-left:1.25rem}.ml-6{margin-left:1.5rem}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mr-4{margin-right:1rem}.mr-64{margin-right:16rem}.mt-0{margin-top:0}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-20{margin-top:5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.table{display:table}.table-cell{display:table-cell}.grid{display:grid}.contents{display:contents}.hidden{display:none}.h-1\/2{height:50%}.h-10{height:2.5rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-18{height:4.5rem}.h-20{height:5rem}.h-2px{height:2px}.h-5{height:1.25rem}.h-56{height:14rem}.h-6{height:1.5rem}.h-60{height:15rem}.h-64{height:16rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-auto{height:auto}.h-full{height:100%}.h-screen{height:100vh}.max-h-0{max-height:0}.max-h-32{max-height:8rem}.max-h-56{max-height:14rem}.max-h-72{max-height:18rem}.min-h-full{min-height:100%}.w-1\/2{width:50%}.w-1\/3{width:33.333333%}.w-1\/4{width:25%}.w-1\/6{width:16.666667%}.w-10{width:2.5rem}.w-10\/12{width:83.333333%}.w-11\/12{width:91.666667%}.w-2\/5{width:40%}.w-25px{width:25px}.w-3\/4{width:75%}.w-3\/5{width:60%}.w-32{width:8rem}.w-4\/5{width:80%}.w-5{width:1.25rem}.w-5\/6{width:83.333333%}.w-64{width:16rem}.w-64\.5{width:17rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-9\/12{width:75%}.w-auto{width:auto}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.min-w-64{min-width:16rem}.max-w-3xl{max-width:48rem}.max-w-48{max-width:12rem}.max-w-xl{max-width:36rem}.flex-1{flex:1 1 0%}.flex-shrink{flex-shrink:1}.flex-grow,.grow{flex-grow:1}.table-fixed{table-layout:fixed}.border-collapse{border-collapse:collapse}.-translate-y-1\/2{--tw-translate-y:-50%}.-translate-y-1\/2,.-translate-y-2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-2{--tw-translate-y:-0.5rem}.translate-y-0{--tw-translate-y:0px}.translate-y-0,.translate-y-0\.4rem{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-0\.4rem{--tw-translate-y:0.4rem}.-rotate-45{--tw-rotate:-45deg}.-rotate-45,.rotate-45{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-45{--tw-rotate:45deg}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-eResize{cursor:e-resize}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.select-all{-webkit-user-select:all;-moz-user-select:all;user-select:all}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-row-reverse{flex-direction:row-reverse}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.content-center{align-content:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-evenly{justify-content:space-evenly}.justify-items-center{justify-items:center}.gap-2{gap:.5rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-x-10{-moz-column-gap:2.5rem;column-gap:2.5rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.gap-x-9{-moz-column-gap:2.25rem;column-gap:2.25rem}.gap-y-6{row-gap:1.5rem}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.5rem*var(--tw-space-x-reverse))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(1rem*var(--tw-space-x-reverse))}.space-x-6>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(1.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(1.5rem*var(--tw-space-x-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.5rem*var(--tw-space-y-reverse));margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.75rem*var(--tw-space-y-reverse));margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(2rem*var(--tw-space-y-reverse));margin-top:calc(2rem*(1 - var(--tw-space-y-reverse)))}.self-start{align-self:flex-start}.self-end{align-self:flex-end}.self-center{align-self:center}.justify-self-end{justify-self:end}.justify-self-center{justify-self:center}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.whitespace-nowrap{white-space:nowrap}.text-nowrap{text-wrap:nowrap}.break-words{overflow-wrap:break-word}.rounded{border-radius:.25rem}.rounded-3xl{border-radius:1.5rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.rounded-t-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.rounded-t-xl{border-top-left-radius:.75rem;border-top-right-radius:.75rem}.rounded-tl-lg{border-top-left-radius:.5rem}.rounded-tr-lg{border-top-right-radius:.5rem}.border{border-width:1px}.border-0{border-width:0}.border-2{border-width:2px}.border-8{border-width:8px}.border-b-0{border-bottom-width:0}.border-b-2{border-bottom-width:2px}.border-b-4{border-bottom-width:4px}.border-t{border-top-width:1px}.border-solid{border-style:solid}.border-black{--tw-border-opacity:1;border-color:rgb(31 31 31/var(--tw-border-opacity))}.border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity))}.border-gray-900{--tw-border-opacity:1;border-color:rgb(17 24 39/var(--tw-border-opacity))}.border-primary{--tw-border-opacity:1;border-color:rgb(255 212 0/var(--tw-border-opacity))}.border-slate-200{--tw-border-opacity:1;border-color:rgb(226 232 240/var(--tw-border-opacity))}.border-white{--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity))}.bg-beige{background-color:rgb(242 239 232/var(--tw-bg-opacity))}.bg-beige,.bg-black{--tw-bg-opacity:1}.bg-black{background-color:rgb(31 31 31/var(--tw-bg-opacity))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity))}.bg-gray-50{background-color:rgb(249 250 251/var(--tw-bg-opacity))}.bg-gray-50,.bg-green{--tw-bg-opacity:1}.bg-green{background-color:rgb(198 228 212/var(--tw-bg-opacity))}.bg-pastelOrange{--tw-bg-opacity:1;background-color:rgb(255 211 164/var(--tw-bg-opacity))}.bg-primary{--tw-bg-opacity:1;background-color:rgb(255 212 0/var(--tw-bg-opacity))}.bg-stone-200{--tw-bg-opacity:1;background-color:rgb(231 229 228/var(--tw-bg-opacity))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.bg-opacity-0{--tw-bg-opacity:0}.bg-cover{background-size:cover}.bg-no-repeat{background-repeat:no-repeat}.fill-current{fill:currentColor}.stroke-current{stroke:currentColor}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:0}.p-12{padding:3rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.px-0{padding-left:0;padding-right:0}.px-1{padding-left:.25rem;padding-right:.25rem}.px-10{padding-left:2.5rem;padding-right:2.5rem}.px-12{padding-left:3rem;padding-right:3rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-10{padding-bottom:2.5rem;padding-top:2.5rem}.py-12{padding-bottom:3rem;padding-top:3rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-20{padding-bottom:5rem;padding-top:5rem}.py-24{padding-bottom:6rem;padding-top:6rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.py-4{padding-bottom:1rem;padding-top:1rem}.py-40{padding-bottom:10rem;padding-top:10rem}.py-5{padding-bottom:1.25rem;padding-top:1.25rem}.py-6{padding-bottom:1.5rem;padding-top:1.5rem}.py-8{padding-bottom:2rem;padding-top:2rem}.pb-1{padding-bottom:.25rem}.pb-10{padding-bottom:2.5rem}.pb-12{padding-bottom:3rem}.pb-16{padding-bottom:4rem}.pb-2{padding-bottom:.5rem}.pb-20{padding-bottom:5rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pb-40{padding-bottom:10rem}.pb-6{padding-bottom:1.5rem}.pb-8{padding-bottom:2rem}.pe-3{padding-inline-end:.75rem}.pl-1{padding-left:.25rem}.pl-2{padding-left:.5rem}.pl-24{padding-left:6rem}.pl-3{padding-left:.75rem}.pl-5{padding-left:1.25rem}.pl-6{padding-left:1.5rem}.pl-7{padding-left:1.75rem}.pr-1{padding-right:.25rem}.pr-2{padding-right:.5rem}.pr-3{padding-right:.75rem}.pr-4{padding-right:1rem}.pr-5{padding-right:1.25rem}.pr-6{padding-right:1.5rem}.pr-8{padding-right:2rem}.pt-1{padding-top:.25rem}.pt-10{padding-top:2.5rem}.pt-16{padding-top:4rem}.pt-2{padding-top:.5rem}.pt-20{padding-top:5rem}.pt-24{padding-top:6rem}.pt-3{padding-top:.75rem}.pt-32{padding-top:8rem}.pt-4{padding-top:1rem}.pt-40{padding-top:10rem}.pt-5{padding-top:1.25rem}.pt-6{padding-top:1.5rem}.pt-8{padding-top:2rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-start{text-align:start}.text-end{text-align:end}.align-top{vertical-align:top}.align-bottom{vertical-align:bottom}.font-bradford{font-family:Bradford Medium,sans-serif}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-5xl{font-size:3rem;line-height:1}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-black{font-weight:900}.font-bold{font-weight:700}.font-light{font-weight:300}.font-normal{font-weight:400}.font-semibold{font-weight:600}.font-thin{font-weight:100}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.leading-loose{line-height:2}.leading-normal{line-height:1.5}.leading-snug{line-height:1.375}.tracking-tight{letter-spacing:-.025em}.tracking-widest{letter-spacing:.1em}.text-black{--tw-text-opacity:1;color:rgb(31 31 31/var(--tw-text-opacity))}.text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity))}.text-primary{--tw-text-opacity:1;color:rgb(255 212 0/var(--tw-text-opacity))}.text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-0{opacity:0}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.blur{--tw-blur:blur(8px)}.blur,.drop-shadow{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.drop-shadow{--tw-drop-shadow:drop-shadow(0 1px 2px rgba(0,0,0,.1)) drop-shadow(0 1px 1px rgba(0,0,0,.06))}.grayscale{--tw-grayscale:grayscale(100%)}.filter,.grayscale{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-brightness-50{--tw-backdrop-brightness:brightness(.5)}.backdrop-brightness-50,.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-opacity{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-100{transition-duration:.1s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.duration-700{transition-duration:.7s}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.hover\:scale-110:hover{--tw-scale-x:1.1;--tw-scale-y:1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-b:hover{border-bottom-width:1px}.hover\:border-primary:hover{--tw-border-opacity:1;border-color:rgb(255 212 0/var(--tw-border-opacity))}.hover\:border-white:hover{--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity))}.hover\:bg-black:hover{--tw-bg-opacity:1;background-color:rgb(31 31 31/var(--tw-bg-opacity))}.hover\:bg-primary:hover{--tw-bg-opacity:1;background-color:rgb(255 212 0/var(--tw-bg-opacity))}.hover\:bg-slate-100:hover{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity))}.hover\:bg-white:hover{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.hover\:bg-yellow-400:hover{--tw-bg-opacity:1;background-color:rgb(250 204 21/var(--tw-bg-opacity))}.hover\:text-black:hover{--tw-text-opacity:1;color:rgb(31 31 31/var(--tw-text-opacity))}.hover\:text-gray-200:hover{--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity))}.hover\:text-gray-400:hover{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity))}.hover\:text-secondary:hover{--tw-text-opacity:1;color:rgb(236 236 236/var(--tw-text-opacity))}.hover\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.focus\:border-4:focus{border-width:4px}.focus\:border-primary:focus{--tw-border-opacity:1;border-color:rgb(255 212 0/var(--tw-border-opacity))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.active\:bg-black:active{--tw-bg-opacity:1;background-color:rgb(31 31 31/var(--tw-bg-opacity))}.active\:text-white:active{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.group:hover .group-hover\:visible{visibility:visible}.group:hover .group-hover\:max-h-maxContent{max-height:-moz-max-content;max-height:max-content}.group:hover .group-hover\:-rotate-1{--tw-rotate:-1deg}.group:hover .group-hover\:-rotate-1,.group:hover .group-hover\:scale-105{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:scale-105{--tw-scale-x:1.05;--tw-scale-y:1.05}.group:hover .group-hover\:text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.group:hover .group-hover\:opacity-100{opacity:1}@media (min-width:640px){.sm\:static{position:static}.sm\:relative{position:relative}.sm\:col-span-1{grid-column:span 1/span 1}.sm\:col-span-2{grid-column:span 2/span 2}.sm\:col-span-9{grid-column:span 9/span 9}.sm\:col-start-1{grid-column-start:1}.sm\:col-start-4{grid-column-start:4}.sm\:m-0{margin:0}.sm\:-ml-4{margin-left:-1rem}.sm\:mr-80{margin-right:20rem}.sm\:mt-0{margin-top:0}.sm\:block{display:block}.sm\:flex{display:flex}.sm\:table-cell{display:table-cell}.sm\:grid{display:grid}.sm\:hidden{display:none}.sm\:w-24{width:6rem}.sm\:w-4\/12{width:33.333333%}.sm\:w-8\/12{width:66.666667%}.sm\:w-80{width:20rem}.sm\:w-auto{width:auto}.sm\:w-full{width:100%}.sm\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:flex-col{flex-direction:column}.sm\:items-start{align-items:flex-start}.sm\:space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(1rem*var(--tw-space-x-reverse))}.sm\:space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(0px*var(--tw-space-y-reverse));margin-top:calc(0px*(1 - var(--tw-space-y-reverse)))}.sm\:self-center{align-self:center}.sm\:p-0{padding:0}.sm\:px-0{padding-left:0;padding-right:0}.sm\:px-2{padding-left:.5rem;padding-right:.5rem}.sm\:px-20{padding-left:5rem;padding-right:5rem}.sm\:pb-0{padding-bottom:0}.sm\:pl-16{padding-left:4rem}.sm\:pr-10{padding-right:2.5rem}.sm\:pt-4{padding-top:1rem}.sm\:text-left{text-align:left}.sm\:text-lg{font-size:1.125rem;line-height:1.75rem}}@media (min-width:768px){.md\:col-span-2{grid-column:span 2/span 2}.md\:-ml-6{margin-left:-1.5rem}.md\:block{display:block}.md\:flex{display:flex}.md\:grid{display:grid}.md\:hidden{display:none}.md\:h-32{height:8rem}.md\:h-40{height:10rem}.md\:h-48{height:12rem}.md\:h-96{height:24rem}.md\:w-1\/2{width:50%}.md\:w-1\/3{width:33.333333%}.md\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:flex-row-reverse{flex-direction:row-reverse}.md\:flex-nowrap{flex-wrap:nowrap}.md\:gap-10{gap:2.5rem}.md\:space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(1rem*var(--tw-space-x-reverse))}.md\:space-x-6>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(1.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(1.5rem*var(--tw-space-x-reverse))}.md\:space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(0px*var(--tw-space-y-reverse));margin-top:calc(0px*(1 - var(--tw-space-y-reverse)))}.md\:pt-0{padding-top:0}.md\:pt-24{padding-top:6rem}.md\:pt-40{padding-top:10rem}.md\:pt-56{padding-top:14rem}.md\:text-lg{font-size:1.125rem}.md\:text-lg,.md\:text-xl{line-height:1.75rem}.md\:text-xl{font-size:1.25rem}.md\:text-xs{font-size:.75rem;line-height:1rem}}@media (min-width:1024px){.lg\:col-span-1{grid-column:span 1/span 1}.lg\:col-start-2{grid-column-start:2}.lg\:m-0{margin:0}.lg\:flex{display:flex}.lg\:grid{display:grid}.lg\:hidden{display:none}.lg\:h-40{height:10rem}.lg\:h-48{height:12rem}.lg\:h-60{height:15rem}.lg\:w-1\/2{width:50%}.lg\:w-1\/4{width:25%}.lg\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:flex-col{flex-direction:column}.lg\:justify-start{justify-content:flex-start}.lg\:gap-12{gap:3rem}.lg\:gap-16{gap:4rem}.lg\:gap-24{gap:6rem}.lg\:gap-8{gap:2rem}.lg\:rounded-t-2xl{border-top-left-radius:1rem;border-top-right-radius:1rem}.lg\:px-0{padding-left:0;padding-right:0}.lg\:px-12{padding-left:3rem;padding-right:3rem}.lg\:py-40{padding-bottom:10rem;padding-top:10rem}.lg\:pb-20{padding-bottom:5rem}.lg\:pt-0{padding-top:0}.lg\:text-left{text-align:left}.lg\:text-5xl{font-size:3rem}.lg\:text-5xl,.lg\:text-6xl{line-height:1}.lg\:text-6xl{font-size:3.75rem}.lg\:text-sm{font-size:.875rem;line-height:1.25rem}.lg\:text-xl{font-size:1.25rem;line-height:1.75rem}}@media (min-width:1280px){.xl\:col-span-2{grid-column:span 2/span 2}.xl\:col-span-6{grid-column:span 6/span 6}.xl\:col-start-2{grid-column-start:2}.xl\:mr-4{margin-right:1rem}.xl\:w-6\/12{width:50%}.xl\:w-auto{width:auto}.xl\:gap-24{gap:6rem}.xl\:gap-48{gap:12rem}.xl\:py-0{padding-bottom:0;padding-top:0}.xl\:pt-36{padding-top:9rem}.xl\:pt-40{padding-top:10rem}.xl\:text-lg{font-size:1.125rem;line-height:1.75rem}}
.vue-map-container{position:relative}.vue-map-container .vue-map{bottom:0;left:0;position:absolute;right:0;top:0}.vue-map-hidden{display:none}
.vue-street-view-pano-container{position:relative}.vue-street-view-pano-container .vue-street-view-pano{bottom:0;left:0;position:absolute;right:0;top:0}
.agile{position:relative}.agile--ssr .agile__slides--cloned{display:none}.agile--ssr .agile__slides>*{overflow:hidden;width:0}.agile--ssr .agile__slides>:first-child{width:100%}.agile--rtl .agile__actions,.agile--rtl .agile__dots,.agile--rtl .agile__slides,.agile--rtl .agile__track{flex-direction:row-reverse}.agile :active,.agile :focus,.agile:active,.agile:focus{outline:none}.agile__list{display:block;overflow:hidden;position:relative;width:100%}.agile__track{display:flex;flex-direction:row;flex-wrap:nowrap}.agile__actions{display:flex;justify-content:space-between}.agile--no-nav-buttons .agile__actions{justify-content:center}.agile__slides{align-items:center;display:flex;flex-direction:row;flex-grow:1;flex-shrink:unset;flex-wrap:nowrap;justify-content:flex-start}.agile--disabled .agile__slides{display:block;width:100%}.agile__slide{display:block;flex-grow:1;flex-shrink:0}.agile__slide,.agile__slide *{-webkit-user-drag:none}.agile--fade .agile__slide{opacity:0;position:relative;z-index:0}.agile--fade .agile__slide--active{opacity:1;z-index:2}.agile--fade .agile__slide--expiring{opacity:1;transition-duration:0s;z-index:1}.agile__nav-button[disabled]{cursor:default}.agile__dots{align-items:center;display:flex;list-style:none;padding:0;white-space:nowrap}.agile__dot button{cursor:pointer;display:block;font-size:0;line-height:0}
.slide[data-v-8a897f06]{max-height:200px;width:auto}
.slide[data-v-ff28f672]{width:auto}.carousel-custom .agile__dot button{background-color:#000;border-radius:5px;height:10px;margin:10px 4px 0 2px;width:10px}.carousel-custom .agile__dot--current button{background-color:#ffd400}.carousel-custom .agile__dot button:hover{background-color:#ffe97b}
.slide[data-v-6ebd8767]{width:auto}.carousel-custom .agile__dot button{background-color:#000;border-radius:5px;height:10px;margin:10px 4px 0 2px;width:10px}.carousel-custom .agile__dot--current button{background-color:#ffd400}.carousel-custom .agile__dot button:hover{background-color:#ffe97b}
.slide[data-v-2353c942]{width:auto}.carousel-custom .agile__dot button{background-color:#000;border-radius:5px;height:10px;margin:10px 4px 0 2px;width:10px}.carousel-custom .agile__dot--current button{background-color:#ffd400}.carousel-custom .agile__dot button:hover{background-color:#ffe97b}
.tabselected[data-v-8da93094]{background:#222;color:#fff}.tabText[data-v-8da93094]{font-size:1.125rem;line-height:2rem}
.popup[data-v-8a66dc02]{position:fixed;top:0;left:0;right:0;bottom:0;z-index:99;background-color:rgba(0,0,0,.2);display:flex;align-items:center;justify-content:center}.popup .popup-inner[data-v-8a66dc02]{background:#fff;padding:20px}.popup .popup-inner .popup-close[data-v-8a66dc02]{right:6px}
select[data-v-0a60e5bb]{-moz-text-align-last:center;text-align-last:center}label[data-v-0a60e5bb]{line-height:1.5}
select[data-v-cb623c40]{-moz-text-align-last:center;text-align-last:center}
select[data-v-373ba8f1]{-moz-text-align-last:center;text-align-last:center}label[data-v-373ba8f1]{line-height:1.5}
select[data-v-6ebaaab8]{-moz-text-align-last:center;text-align-last:center}label[data-v-6ebaaab8]{line-height:1.5}
select[data-v-8894b532]{-moz-text-align-last:center;text-align-last:center}label[data-v-8894b532]{line-height:1.5}
.slide[data-v-28daea0d]{width:auto}.carousel-custom .agile__dot button{background-color:#000;border-radius:5px;height:10px;margin:10px 4px 0 2px;width:10px}.carousel-custom .agile__dot--current button{background-color:#ffd400}.carousel-custom .agile__dot button:hover{background-color:#ffe97b}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiN2UwZmY5ZjhkOGFmNjZmNDI2YmUuY3NzIiwibWFwcGluZ3MiOiJBQUFBLEtBQ0ksV0FDSixDQUNBLEtBQ0ksWUFBYSxDQUNiLHFCQUFzQixDQUN0QixlQUNKLENBQ0EsT0FDSSxlQUNKLENBQ0EsWUFDSSxzQ0FBMEMsQ0FDMUMseUJBRUosQ0FDQSxNQUNJLHNDQUEwQyxDQUMxQyx5QkFDSixDQUNBLE9BQ0ksMkJBQTZCLENBQzdCLDZCQUNGLENBRUEsR0FDRSw0QkFBOEIsQ0FDOUIsOEJBQ0YsQ0FFQSxHQUNFLDJCQUE2QixDQUM3Qiw0QkFDRixDQUVBLEdBQ0UsNEJBQThCLENBQzlCLDhCQUNGLENBRUEsR0FDRSx3QkFBMEIsQ0FDMUIsNkJBQ0YsQ0FFQSx5QkFDRSxPQUNFLHdCQUEwQixDQUMxQiw4QkFDRixDQUNBLEdBQ0ksd0JBQTBCLENBQzFCLDhCQUNGLENBRUEsR0FDRSwyQkFBNkIsQ0FDN0IsNEJBQ0YsQ0FFQSxHQUNFLDRCQUE4QixDQUM5Qiw4QkFDRixDQUVBLEdBQ0Usd0JBQTBCLENBQzFCLDhCQUNGLENBQ0osQztBQ3JFRixhQUFhLFlBQVksQ0FBQyxnQ0FBZ0MsZUFBZSxDQUFDLHlCQUE0SCx3QkFBd0IsQ0FBMUMsaUJBQWlCLENBQTBCLFVBQVMsQ0FBckksZ0JBQWdCLENBQTBDLHNCQUFzQixDQUEzQyxvQkFBb0IsQ0FBeEMsbUJBQXFILENBQUMsaUJBQTRDLGFBQWEsQ0FBdkMsV0FBVyxDQUFrRSxnQkFBZ0IsQ0FBM0MsVUFBVSxDQUFDLGVBQWUsQ0FBaEUsT0FBTyxDQUEyRSxpQkFBaUIsQ0FBM0YsS0FBSyxDQUEwSSxtQkFBa0IsQ0FBN0ksU0FBOEksQ0FBQyxzQ0FBdUgsb0JBQW1CLENBQXhDLG9CQUFvQixDQUFyQyxnQkFBZ0IsQ0FBMUQsV0FBVyxDQUFDLGVBQWUsQ0FBQyxhQUF3RSxDQUFDLDhDQUF3RSxxQkFBcUIsQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUMsa0JBQWlCLENBQWhHLHdCQUFpRyxDO0FDQS9zQixVQUFVLHVDQUE4QixDQUE5QiwrQkFBK0IsQ0FBQyxrQkFBcUYsaUNBQW9DLENBQXRGLDJCQUEyQixDQUFDLHFCQUFxQixDQUFsRSxnQkFBZ0IsQ0FBd0YsaUJBQWlCLEM7QUNBckwsTUFDSSw4QkFBK0IsQ0FDL0Isb0JBQ0osQ0FFQSxlQUNJLGlCQUNKLENBRUEsaUNBQ0ksU0FBVSxDQUNWLGNBQWUsQ0FDZixPQUNKLENBRUEscUJBRUkscUJBQXNCLENBR3RCLG9CQUFxQixDQUpyQixvQkFBcUIsQ0FHckIsY0FBZSxDQUVmLGVBQWdCLENBSGhCLGdCQUlKLENBRUEsa0RBQ0kscUJBQXVCLENBQ3ZCLGFBQWMsQ0FDZCxrQkFDSixDQUVBLGtCQUNJLGlCQUNKLENBRUEsdUNBQ0ksU0FBVSxDQUNWLGNBQWUsQ0FDZixPQUNKLENBRUEsd0JBRUkscUJBQXNCLENBR3RCLG9CQUFxQixDQUNyQixXQUFZLENBTFosb0JBQXFCLENBR3JCLGNBQWUsQ0FEZixnQkFJSixDQUVBLG9CQUNJLHdCQUF5QixDQUN6QixjQUFlLENBQ2YsYUFDSixDQUtBLGtDQUNJLHdCQUF5QixDQUN6QixVQUNKLENBRUEsc0RBQ0ksd0JBQ0osQ0FDQSxxRUFDSSxxQkFBc0IsQ0FFdEIsYUFBYyxDQUNkLGtCQUFtQixDQUZuQixVQUdKLENBRUEsK0RBQ0ksd0JBQXlCLENBRXpCLGFBQWMsQ0FDZCxrQkFBbUIsQ0FGbkIsVUFHSixDQUVBLHFDQUNJLHdCQUF5QixDQUN6QixVQUNKLENBRUEsNERBQ0ksd0JBQ0osQ0FFQSxxRUFDSSx3QkFBeUIsQ0FFekIsYUFBYyxDQUNkLGtCQUFtQixDQUZuQixVQUdKLENBRUEsMkVBQ0kscUJBQXNCLENBRXRCLGFBQWMsQ0FDZCxrQkFBbUIsQ0FGbkIsVUFHSixDQUVBLG1CQUNJLGFBQ0osQ0FHQSxnQ0FFSSxVQUVKLENBRUEsb0ZBTEksd0JBQXlCLENBRXpCLFVBTUosQ0FFQSxtRUFDSSxxQkFBc0IsQ0FFdEIsYUFBYyxDQUNkLGtCQUFtQixDQUZuQixVQUdKLENBRUEsNkRBQ0ksd0JBQXlCLENBRXpCLGFBQWMsQ0FDZCxrQkFBbUIsQ0FGbkIsVUFHSixDQUVBLG1DQUVJLFVBRUosQ0FFQSw2RkFMSSx3QkFBeUIsQ0FFekIsVUFNSixDQUNBLG1FQUNJLHdCQUF5QixDQUV6QixhQUFjLENBQ2Qsa0JBQW1CLENBRm5CLFVBR0osQ0FFQSx5RUFDSSxxQkFBc0IsQ0FFdEIsYUFBYyxDQUNkLGtCQUFtQixDQUZuQixVQUdKLENBRUEsaUJBQ0ksYUFDSixDQUdBLGtDQUVJLFVBRUosQ0FFQSx3RkFMSSx1Q0FBd0MsQ0FFeEMsMEJBTUosQ0FFQSxxRUFDSSxxQkFBc0IsQ0FFdEIsYUFBYyxDQUNkLGtCQUFtQixDQUZuQixVQUdKLENBRUEsK0RBQ0ksdUNBQXdDLENBRXhDLDBCQUEyQixDQUMzQixrQkFBbUIsQ0FGbkIsVUFHSixDQUVBLHFDQUdJLFVBQ0osQ0FFQSxpR0FMSSx1Q0FBd0MsQ0FDeEMsMEJBT0osQ0FDQSxxRUFDSSx1Q0FBd0MsQ0FFeEMsMEJBQTJCLENBQzNCLGtCQUFtQixDQUZuQixVQUdKLENBRUEsMkVBQ0kscUJBQXNCLENBRXRCLGFBQWMsQ0FDZCxrQkFBbUIsQ0FGbkIsVUFHSixDQUVBLG1CQUNJLDRCQUNKLENBQ0EsTUFDSSxhQUNKLEM7QUN4TkEsWUFHSSxtQkFBaUIsQ0FBakIsZ0JBQWlCLENBQ2pCLDBCQUF3QixDQUF4Qix1QkFBd0IsQ0FGeEIsVUFHSixDQUVBLDBCQUNJLFlBQ0ksWUFBYSxDQUNiLG1CQUFpQixDQUFqQixnQkFBaUIsQ0FDakIsMEJBQXdCLENBQXhCLHVCQUNKLENBQ0osQ0FFQSxVQUNJLFlBQWEsQ0FFYixtQkFBaUIsQ0FBakIsZ0JBQWlCLENBQ2pCLDBCQUF3QixDQUF4Qix1QkFBd0IsQ0FGeEIsVUFHSixDQUVBLHlCQVNJLG1CQUNJLFlBQWEsQ0FDYixtQkFBaUIsQ0FBakIsZ0JBQWlCLENBQ2pCLDBCQUF3QixDQUF4Qix1QkFDSixDQVBKLENBVUEsU0FFSSxtQkFBaUIsQ0FBakIsZ0JBQWlCLENBQ2pCLDBCQUF3QixDQUF4Qix1QkFBd0IsQ0FGeEIsVUFHSixDQUVBLDBCQUNJLFdBQ0ksMEJBQ0osQ0FDSixDQUVBLDBCQUNJLGVBQ0ksMEJBQ0osQ0FDSixDO0FDOUJBLG9CQUVJLHNCQUNKLENBRUEsY0FDSSx5QkFBMkIsQ0FDM0IsZ0JBQ0osQ0FFQSxjQUVJLGtCQUFrQixDQURsQixTQUVKLENBRUEsaUJBS0ksc0JBQXNCLENBRHRCLG9CQUFxQixDQUhyQixRQUFTLENBQ1QsbUJBQW9CLENBQ3BCLGtCQUdKLENBRUEsd0JBTUkseUJBQXlCLENBTHpCLG9CQUFxQixDQUdyQixlQUFnQixDQURoQixrQkFBbUIsQ0FFbkIsZ0JBQWlCLENBSGpCLFdBS0osQ0FFQSxhQUVJLG9CQUFvQixDQURwQixzQkFFSixDQUVBLGFBQ0kseUJBQ0osQztBQy9EQSwyQkFBZ0csV0FBVyxDQUEvQixRQUFRLENBQWhCLE9BQU8sQ0FBVSxVQUErRSxDQUFDLHNEQUF6RCxjQUFjLENBQUMscUJBQXFCLENBQUMsbUJBQWtCLENBQXZJLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxVQUF3WCxDQUE1USwyQkFBOEssd0JBQXdCLENBQXBILFFBQVEsQ0FBUSxrQkFBa0IsQ0FBbUYsNkVBQW9FLENBQXBFLHFFQUFvRSxDQUFoTCxNQUFNLENBQXZCLE9BQU8sQ0FBYixLQUF3TSxDQUFDLGlDQUFrQyx5RUFBeUUsQ0FBQyxpQ0FBaUMsR0FBRyw2RUFBb0UsQ0FBcEUscUVBQXFFLENBQUMsSUFBSSw2RUFBb0UsQ0FBcEUscUVBQXFFLENBQUMsSUFBSSxzRkFBNkUsQ0FBN0UsOEVBQThFLENBQUMsSUFBSSxnRkFBdUUsQ0FBdkUsd0VBQXdFLENBQUMsR0FBRyw2RUFBb0UsQ0FBcEUscUVBQXFFLENBQUMsQ0FBQywyQkFBdUMsMkJBQXFCLENBQXJCLHNCQUFxQixDQUFqQyxTQUFrQyxDQUFDLFVBQXFMLGtCQUFrQixDQUEzSSxZQUFZLENBQUMsU0FBUyxDQUF4RSxlQUFlLENBQWlCLGlCQUFpQixDQUFqQyxlQUFlLENBQWtFLHVCQUF1QixDQUEvQyx1QkFBdUIsQ0FBeUIsc0NBQXNDLENBQStCLFdBQVUsQ0FBeEMsVUFBeUMsQztBQ0E3c0MsUUFBUSxnQkFBZ0IsQ0FBQyxXQUE4QixxQkFBb0IsQ0FBdkMsa0JBQXdDLEM7QUNBNUUseUJBQXlCLFlBQVksU0FBUyxDQUFDLGtCQUFrQixDQUFDLG9CQUFvQixTQUFTLENBQUMsbUJBQW1CLENBQUMscUJBQXFCLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxxQkFBcUIsa0NBQWtDLENBQUMsQztBQ0E5TiwyQkFDRSxxQkFBdUIsQ0FXdkIsb0JBQXFCLENBVnJCLFVBQVksQ0FNWixpQkFBbUIsQ0FDbkIsZUFBZ0IsQ0FDaEIsd0JBQTBCLENBSDFCLDRCQUFzQixDQUl0Qix3QkFBeUIsQ0FFekIseUJBQTJCLENBVjNCLFVBV0YsQ0FFQSxpQ0FFRSxVQUFZLENBRFosY0FHRixDO0FDbkJBLFdBUUksaUJBQWtCLENBUGxCLDJCQUE0QixDQUM1QixlQUFnQixDQUNoQiwyQ0FBd0MsQ0FDeEMsaVBBS0osQ0FFQSxXQVNJLGlCQUFrQixDQVBsQiwyQkFBNEIsQ0FDNUIsZUFBZ0IsQ0FDaEIsMkNBQXdDLENBQ3hDLGlQQUtKLENBRUEsV0FRSSxpQkFBa0IsQ0FObEIsMkJBQTRCLENBQzVCLGVBQWdCLENBQ2hCLDRDQUFtRCxDQUNuRCx5TEFJSixDQUVBLFdBUUksaUJBQWtCLENBTmxCLGtDQUFtQyxDQUNuQyxlQUFnQixDQUNoQiw0Q0FBeUQsQ0FDekQseUxBSUosQ0FFQSxXQVFJLGlCQUFrQixDQU5sQiwyQkFBNEIsQ0FDNUIsZUFBZ0IsQ0FDaEIsNENBQW1ELENBQ25ELHlMQUlKLENBRUEsV0FRSSxpQkFBa0IsQ0FObEIsa0NBQW1DLENBQ25DLGVBQWdCLENBQ2hCLDRDQUF5RCxDQUN6RCx5TEFJSjs7QUFFQSwrREFBMEIsQ0FBMUIsdUNBQTBCLENBQTFCLHFCQUEwQixDQUExQiw4QkFBMEIsQ0FBMUIsMEJBQTBCLENBQTFCLDZCQUEwQixDQUExQixnSUFBMEIsQ0FBMUIsNEJBQTBCLENBQTFCLDhCQUEwQixDQUExQixlQUEwQixDQUExQixhQUEwQixDQUExQixVQUEwQixDQUExQix1Q0FBMEIsQ0FBMUIsd0JBQTBCLENBQTFCLFFBQTBCLENBQTFCLHVCQUEwQixDQUExQixhQUEwQixDQUExQixRQUEwQixDQUExQiw0REFBMEIsQ0FBMUIsZ0NBQTBCLENBQTFCLG1DQUEwQixDQUExQixtQkFBMEIsQ0FBMUIsZUFBMEIsQ0FBMUIsdUJBQTBCLENBQTFCLDJCQUEwQixDQUExQixxSEFBMEIsQ0FBMUIsNEJBQTBCLENBQTFCLGFBQTBCLENBQTFCLDhCQUEwQixDQUExQixtQkFBMEIsQ0FBMUIscUJBQTBCLENBQTFCLGFBQTBCLENBQTFCLGlCQUEwQixDQUExQix1QkFBMEIsQ0FBMUIsaUJBQTBCLENBQTFCLGFBQTBCLENBQTFCLDhCQUEwQixDQUExQixvQkFBMEIsQ0FBMUIsYUFBMEIsQ0FBMUIsbURBQTBCLENBQTFCLG1CQUEwQixDQUExQiw2QkFBMEIsQ0FBMUIsY0FBMEIsQ0FBMUIsK0JBQTBCLENBQTFCLG1CQUEwQixDQUExQixtQkFBMEIsQ0FBMUIsUUFBMEIsQ0FBMUIsU0FBMEIsQ0FBMUIsaUNBQTBCLENBQTFCLHlFQUEwQixDQUExQiw0QkFBMEIsQ0FBMUIscUJBQTBCLENBQTFCLDRCQUEwQixDQUExQixnQ0FBMEIsQ0FBMUIsZ0NBQTBCLENBQTFCLG1FQUEwQixDQUExQiwwQ0FBMEIsQ0FBMUIsbUJBQTBCLENBQTFCLG1EQUEwQixDQUExQixzREFBMEIsQ0FBMUIsWUFBMEIsQ0FBMUIseUJBQTBCLENBQTFCLDJEQUEwQixDQUExQixpQkFBMEIsQ0FBMUIseUJBQTBCLENBQTFCLDBCQUEwQixDQUExQixRQUEwQixDQUExQixTQUEwQixDQUExQixnQkFBMEIsQ0FBMUIsd0JBQTBCLENBQTFCLGdFQUEwQixDQUExQixTQUEwQixDQUExQixzREFBMEIsQ0FBMUIsU0FBMEIsQ0FBMUIsbUNBQTBCLENBQTFCLHdCQUEwQixDQUExQiw0REFBMEIsQ0FBMUIscUJBQTBCLENBQTFCLHFCQUEwQixDQUExQixjQUEwQixDQUExQixxQkFBMEIsQ0FBMUIsd0NBQTBCLENBQTFCLHVCQUEwQixDQUExQixrQkFBMEIsQ0FBMUIsa0JBQTBCLENBQTFCLGFBQTBCLENBQTFCLGFBQTBCLENBQTFCLGFBQTBCLENBQTFCLGNBQTBCLENBQTFCLGNBQTBCLENBQTFCLFlBQTBCLENBQTFCLFlBQTBCLENBQTFCLGlCQUEwQixDQUExQixxQ0FBMEIsQ0FBMUIsNkJBQTBCLENBQTFCLDRCQUEwQixDQUExQiwyQkFBMEIsQ0FBMUIsY0FBMEIsQ0FBMUIsbUJBQTBCLENBQTFCLHFCQUEwQixDQUExQixzQkFBMEIsQ0FBMUIsdUJBQTBCLENBQTFCLGlCQUEwQixDQUExQiwwQkFBMEIsQ0FBMUIsMkJBQTBCLENBQTFCLG1DQUEwQixDQUExQixpQ0FBMEIsQ0FBMUIsMEJBQTBCLENBQTFCLHFCQUEwQixDQUExQiw2QkFBMEIsQ0FBMUIsV0FBMEIsQ0FBMUIsaUJBQTBCLENBQTFCLGVBQTBCLENBQTFCLGdCQUEwQixDQUExQixpQkFBMEIsQ0FBMUIsYUFBMEIsQ0FBMUIsZUFBMEIsQ0FBMUIsWUFBMEIsQ0FBMUIsa0JBQTBCLENBQTFCLG9CQUEwQixDQUExQiwwQkFBMEIsQ0FBMUIsd0JBQTBCLENBQTFCLHlCQUEwQixDQUExQiwwQkFBMEIsQ0FBMUIsc0JBQTBCLENBQTFCLHVCQUEwQixDQUExQix3QkFBMEIsQ0FBMUIscUJBQTBCLENBQTFCLGtDQUEwQixDQUExQix1QkFBMEIsQ0FBMUIsa0JBQTBCLENBQTFCLGtCQUEwQixDQUExQixhQUEwQixDQUExQixhQUEwQixDQUExQixhQUEwQixDQUExQixjQUEwQixDQUExQixjQUEwQixDQUExQixZQUEwQixDQUExQixZQUEwQixDQUExQixpQkFBMEIsQ0FBMUIscUNBQTBCLENBQTFCLDZCQUEwQixDQUExQiw0QkFBMEIsQ0FBMUIsMkJBQTBCLENBQTFCLGNBQTBCLENBQTFCLG1CQUEwQixDQUExQixxQkFBMEIsQ0FBMUIsc0JBQTBCLENBQTFCLHVCQUEwQixDQUExQixpQkFBMEIsQ0FBMUIsMEJBQTBCLENBQTFCLDJCQUEwQixDQUExQixtQ0FBMEIsQ0FBMUIsaUNBQTBCLENBQTFCLDBCQUEwQixDQUExQixxQkFBMEIsQ0FBMUIsNkJBQTBCLENBQTFCLFdBQTBCLENBQTFCLGlCQUEwQixDQUExQixlQUEwQixDQUExQixnQkFBMEIsQ0FBMUIsaUJBQTBCLENBQTFCLGFBQTBCLENBQTFCLGVBQTBCLENBQTFCLFlBQTBCLENBQTFCLGtCQUEwQixDQUExQixvQkFBMEIsQ0FBMUIsMEJBQTBCLENBQTFCLHdCQUEwQixDQUExQix5QkFBMEIsQ0FBMUIsMEJBQTBCLENBQTFCLHNCQUEwQixDQUExQix1QkFBMEIsQ0FBMUIsd0JBQTBCLENBQTFCLHFCQUEwQixDQUMxQiwyQkFBZ0MsQ0FBaEMsaUJBQWdDLENBQWhDLFVBQWdDLENBQWhDLG1EQUFnQyxFQUFoQyxtREFBZ0MsRUFBaEMscURBQWdDLEVBQWhDLHFEQUFnQyxFQUFoQyxxREFBZ0MsRUFDaEMsMkJBQStCLENBQS9CLDRCQUErQixDQUEvQiw2QkFBK0IsQ0FBL0IsdUJBQStCLENBQS9CLHFCQUErQixDQUEvQiwyQkFBK0IsQ0FBL0IsMkJBQStCLENBQS9CLHVCQUErQixDQUEvQixnQkFBK0IsQ0FBL0IsaUJBQStCLENBQS9CLE9BQStCLENBQS9CLG1CQUErQixDQUEvQixLQUErQixDQUEvQix3QkFBK0IsQ0FBL0Isa0JBQStCLENBQS9CLHFCQUErQixDQUEvQixjQUErQixDQUEvQixnQkFBK0IsQ0FBL0IscUJBQStCLENBQS9CLFlBQStCLENBQS9CLGdCQUErQixDQUEvQixjQUErQixDQUEvQixnQkFBK0IsQ0FBL0IsZ0JBQStCLENBQS9CLGdCQUErQixDQUEvQixnQkFBK0IsQ0FBL0Isd0JBQStCLENBQS9CLDBCQUErQixDQUEvQixxQ0FBK0IsQ0FBL0Isd0NBQStCLENBQS9CLHFDQUErQixDQUEvQixxQ0FBK0IsQ0FBL0IsK0JBQStCLENBQS9CLGdDQUErQixDQUEvQixnQ0FBK0IsQ0FBL0IsK0JBQStCLENBQS9CLDJCQUErQixDQUEvQixhQUErQixDQUEvQixtQkFBK0IsQ0FBL0IsaUJBQStCLENBQS9CLG1CQUErQixDQUEvQixrQkFBK0IsQ0FBL0IsZ0JBQStCLENBQS9CLG1CQUErQixDQUEvQix3QkFBK0IsQ0FBL0IsbUJBQStCLENBQS9CLDRCQUErQixDQUEvQixvQkFBK0IsQ0FBL0IsdUJBQStCLENBQS9CLGtCQUErQixDQUEvQix3QkFBK0IsQ0FBL0IsbUJBQStCLENBQS9CLHlCQUErQixDQUEvQixpQkFBK0IsQ0FBL0IsMkJBQStCLENBQS9CLGlCQUErQixDQUEvQix5QkFBK0IsQ0FBL0IsZUFBK0IsQ0FBL0IsMEJBQStCLENBQS9CLGlCQUErQixDQUEvQix5QkFBK0IsQ0FBL0IsY0FBK0IsQ0FBL0Isd0JBQStCLENBQS9CLGVBQStCLENBQS9CLHlCQUErQixDQUEvQiwyQkFBK0IsQ0FBL0IsMEJBQStCLENBQS9CLHVCQUErQixDQUEvQixxQkFBK0IsQ0FBL0IsMEJBQStCLENBQS9CLDJCQUErQixDQUEvQix5QkFBK0IsQ0FBL0IsMEJBQStCLENBQS9CLHdCQUErQixDQUEvQiwyQkFBK0IsQ0FBL0IsMEJBQStCLENBQS9CLHdCQUErQixDQUEvQiw4QkFBK0IsQ0FBL0IsNkJBQStCLENBQS9CLHlCQUErQixDQUEvQix3QkFBK0IsQ0FBL0IseUJBQStCLENBQS9CLHdCQUErQixDQUEvQix1QkFBK0IsQ0FBL0IseUJBQStCLENBQS9CLGtCQUErQixDQUEvQix1QkFBK0IsQ0FBL0Isc0JBQStCLENBQS9CLHNCQUErQixDQUEvQix1QkFBK0IsQ0FBL0IscUJBQStCLENBQS9CLHdCQUErQixDQUEvQix1QkFBK0IsQ0FBL0IscUJBQStCLENBQS9CLG9CQUErQixDQUEvQixrQ0FBK0IsQ0FBL0Isc0JBQStCLENBQS9CLGtCQUErQixDQUEvQixvQkFBK0IsQ0FBL0IsOEJBQStCLENBQS9CLGtCQUErQixDQUEvQiwwQkFBK0IsQ0FBL0Isb0JBQStCLENBQS9CLGtCQUErQixDQUEvQixtQkFBK0IsQ0FBL0IsaUJBQStCLENBQS9CLG1CQUErQixDQUEvQixpQkFBK0IsQ0FBL0IsbUJBQStCLENBQS9CLGlCQUErQixDQUEvQixpQkFBK0IsQ0FBL0IsbUJBQStCLENBQS9CLGtCQUErQixDQUEvQixrQkFBK0IsQ0FBL0Isa0JBQStCLENBQS9CLGtCQUErQixDQUEvQixnQkFBK0IsQ0FBL0IsbUJBQStCLENBQS9CLG1CQUErQixDQUEvQixtQkFBK0IsQ0FBL0Isc0JBQStCLENBQS9CLHFCQUErQixDQUEvQix5QkFBK0IsQ0FBL0IsMEJBQStCLENBQS9CLDBCQUErQixDQUEvQiwyQkFBK0IsQ0FBL0IsaUJBQStCLENBQS9CLHdCQUErQixDQUEvQixpQkFBK0IsQ0FBL0Isd0JBQStCLENBQS9CLGtCQUErQixDQUEvQiwwQkFBK0IsQ0FBL0IsMEJBQStCLENBQS9CLGlCQUErQixDQUEvQixrQkFBK0IsQ0FBL0IsaUJBQStCLENBQS9CLGlCQUErQixDQUEvQixnQkFBK0IsQ0FBL0IsaUJBQStCLENBQS9CLGtCQUErQixDQUEvQix3QkFBK0IsQ0FBL0IsaUJBQStCLENBQS9CLG9CQUErQixDQUEvQixlQUErQixDQUEvQixrQkFBK0IsQ0FBL0Isa0JBQStCLENBQS9CLGtCQUErQixDQUEvQiw2QkFBK0IsQ0FBL0IsaUJBQStCLENBQS9CLGtCQUErQixDQUEvQix5QkFBK0IsQ0FBL0IsMEJBQStCLENBQS9CLHlCQUErQixDQUEvQix5QkFBK0IsQ0FBL0IsbUJBQStCLENBQS9CLDBCQUErQixDQUEvQiw0QkFBK0IsQ0FBL0IsK0JBQStCLENBQS9CLHlDQUErQixDQUEvQix3Q0FBK0IsQ0FBL0IsZ09BQStCLENBQS9CLHdDQUErQixDQUEvQixtQ0FBK0IsQ0FBL0IsaU9BQStCLENBQS9CLDRDQUErQixDQUEvQiw4QkFBK0IsQ0FBL0Isb05BQStCLENBQS9CLDRCQUErQixDQUEvQix3TUFBK0IsQ0FBL0IsK0JBQStCLENBQS9CLDhCQUErQixDQUEvQixxQ0FBK0IsQ0FBL0IscUJBQStCLENBQS9CLGdCQUErQixDQUEvQixtQ0FBK0IsQ0FBL0Isb0JBQStCLENBQS9CLGVBQStCLENBQS9CLG1CQUErQixDQUEvQiwwREFBK0IsQ0FBL0IsNERBQStCLENBQS9CLDBEQUErQixDQUEvQiwwREFBK0IsQ0FBL0IsNEJBQStCLENBQS9CLDRDQUErQixDQUEvQiwrQkFBK0IsQ0FBL0IseUJBQStCLENBQS9CLDZCQUErQixDQUEvQixvQ0FBK0IsQ0FBL0IsbUNBQStCLENBQS9CLCtCQUErQixDQUEvQixnQ0FBK0IsQ0FBL0Isb0NBQStCLENBQS9CLGtDQUErQixDQUEvQixxQ0FBK0IsQ0FBL0Isc0NBQStCLENBQS9CLDhDQUErQixDQUEvQiw0Q0FBK0IsQ0FBL0IsMENBQStCLENBQS9CLGdCQUErQixDQUEvQixlQUErQixDQUEvQixpQkFBK0IsQ0FBL0IsZ0NBQStCLENBQS9CLGlCQUErQixDQUEvQiw2QkFBK0IsQ0FBL0IsZUFBK0IsQ0FBL0IsK0JBQStCLENBQS9CLGlCQUErQixDQUEvQixnQ0FBK0IsQ0FBL0Isa0JBQStCLENBQS9CLHVCQUErQixDQUEvQiwrREFBK0IsQ0FBL0IsdURBQStCLENBQS9CLGtEQUErQixDQUEvQiwrREFBK0IsQ0FBL0Isc0RBQStCLENBQS9CLGlEQUErQixDQUEvQiwrREFBK0IsQ0FBL0Isd0RBQStCLENBQS9CLG1EQUErQixDQUEvQiwrREFBK0IsQ0FBL0IsbURBQStCLENBQS9CLHNEQUErQixDQUEvQiwrREFBK0IsQ0FBL0Isb0RBQStCLENBQS9CLHVEQUErQixDQUEvQiwrREFBK0IsQ0FBL0Isa0RBQStCLENBQS9CLHFEQUErQixDQUEvQixpQ0FBK0IsQ0FBL0IsNkJBQStCLENBQS9CLDhCQUErQixDQUEvQixrQ0FBK0IsQ0FBL0Isd0NBQStCLENBQS9CLDRCQUErQixDQUEvQixnQ0FBK0IsQ0FBL0IscUNBQStCLENBQS9CLDZCQUErQixDQUEvQixxQ0FBK0IsQ0FBL0IsNkJBQStCLENBQS9CLGlDQUErQixDQUEvQixrQ0FBK0IsQ0FBL0IsK0JBQStCLENBQS9CLGlDQUErQixDQUEvQixnQ0FBK0IsQ0FBL0IsMENBQStCLENBQS9CLDZCQUErQixDQUEvQiwyQ0FBK0IsQ0FBL0IsOEJBQStCLENBQS9CLDJDQUErQixDQUEvQiw0Q0FBK0IsQ0FBL0Isd0JBQStCLENBQS9CLHdCQUErQixDQUEvQiwwQkFBK0IsQ0FBL0IsMEJBQStCLENBQS9CLGlDQUErQixDQUEvQixtQ0FBK0IsQ0FBL0IsbUNBQStCLENBQS9CLDhCQUErQixDQUEvQixnQ0FBK0IsQ0FBL0IsbUNBQStCLENBQS9CLG1EQUErQixDQUEvQixzQ0FBK0IsQ0FBL0Isc0RBQStCLENBQS9CLHNDQUErQixDQUEvQixtREFBK0IsQ0FBL0IscUNBQStCLENBQS9CLG9EQUErQixDQUEvQix1Q0FBK0IsQ0FBL0Isc0RBQStCLENBQS9CLG1DQUErQixDQUEvQixzREFBK0IsQ0FBL0IsZ0VBQStCLENBQS9CLHFDQUErQixDQUEvQiw2REFBK0IsQ0FBL0IsOEJBQStCLENBQS9CLHNEQUErQixDQUEvQiw4QkFBK0IsQ0FBL0Isc0RBQStCLENBQS9CLGtFQUErQixDQUEvQix1Q0FBK0IsQ0FBL0IsZ0VBQStCLENBQS9CLGtDQUErQixDQUEvQixzREFBK0IsQ0FBL0IsNkJBQStCLENBQS9CLG9EQUErQixDQUEvQiwrQkFBK0IsQ0FBL0Isc0RBQStCLENBQS9CLDJCQUErQixDQUEvQixzREFBK0IsQ0FBL0IsK0JBQStCLENBQS9CLCtCQUErQixDQUEvQix5Q0FBK0IsQ0FBL0IsK0JBQStCLENBQS9CLG1DQUErQixDQUEvQixxQ0FBK0IsQ0FBL0Isa0JBQStCLENBQS9CLGlDQUErQixDQUEvQixnQkFBK0IsQ0FBL0IsY0FBK0IsQ0FBL0Isa0JBQStCLENBQS9CLGtCQUErQixDQUEvQixtQkFBK0IsQ0FBL0IsaUJBQStCLENBQS9CLG9CQUErQixDQUEvQixtQkFBK0IsQ0FBL0Isb0JBQStCLENBQS9CLGVBQStCLENBQS9CLHlCQUErQixDQUEvQixvQkFBK0IsQ0FBL0IsMEJBQStCLENBQS9CLG9CQUErQixDQUEvQix3QkFBK0IsQ0FBL0Isa0JBQStCLENBQS9CLHdCQUErQixDQUEvQixtQkFBK0IsQ0FBL0IseUJBQStCLENBQS9CLG9CQUErQixDQUEvQix1QkFBK0IsQ0FBL0Isa0JBQStCLENBQS9CLDBCQUErQixDQUEvQixxQkFBK0IsQ0FBL0IseUJBQStCLENBQS9CLG9CQUErQixDQUEvQix1QkFBK0IsQ0FBL0Isa0JBQStCLENBQS9CLDJCQUErQixDQUEvQixrQkFBK0IsQ0FBL0IsNEJBQStCLENBQS9CLGtCQUErQixDQUEvQiwwQkFBK0IsQ0FBL0IsZ0JBQStCLENBQS9CLDBCQUErQixDQUEvQixpQkFBK0IsQ0FBL0IsMEJBQStCLENBQS9CLGdCQUErQixDQUEvQiwwQkFBK0IsQ0FBL0IsZ0JBQStCLENBQS9CLDJCQUErQixDQUEvQixrQkFBK0IsQ0FBL0IseUJBQStCLENBQS9CLGdCQUErQixDQUEvQiwyQkFBK0IsQ0FBL0IsaUJBQStCLENBQS9CLDRCQUErQixDQUEvQixtQkFBK0IsQ0FBL0IsMkJBQStCLENBQS9CLGtCQUErQixDQUEvQix5QkFBK0IsQ0FBL0IsZ0JBQStCLENBQS9CLDJCQUErQixDQUEvQiw0QkFBK0IsQ0FBL0IsMEJBQStCLENBQS9CLDBCQUErQixDQUEvQiwwQkFBK0IsQ0FBL0IsMEJBQStCLENBQS9CLDJCQUErQixDQUEvQix5QkFBK0IsQ0FBL0IsMkJBQStCLENBQS9CLDJCQUErQixDQUEvQix5QkFBK0IsQ0FBL0IsK0JBQStCLENBQS9CLHlCQUErQixDQUEvQix3QkFBK0IsQ0FBL0Isd0JBQStCLENBQS9CLHlCQUErQixDQUEvQiwwQkFBK0IsQ0FBL0IseUJBQStCLENBQS9CLDBCQUErQixDQUEvQiwwQkFBK0IsQ0FBL0IseUJBQStCLENBQS9CLDBCQUErQixDQUEvQix3QkFBK0IsQ0FBL0IsMkJBQStCLENBQS9CLDBCQUErQixDQUEvQix3QkFBK0IsQ0FBL0Isd0JBQStCLENBQS9CLHlCQUErQixDQUEvQix1QkFBK0IsQ0FBL0IsdUJBQStCLENBQS9CLHVCQUErQixDQUEvQix1QkFBK0IsQ0FBL0Isd0JBQStCLENBQS9CLHVCQUErQixDQUEvQixzQkFBK0IsQ0FBL0Isd0JBQStCLENBQS9CLHlCQUErQixDQUEvQix3QkFBK0IsQ0FBL0Isc0JBQStCLENBQS9CLDBCQUErQixDQUEvQiw4QkFBK0IsQ0FBL0IsNEJBQStCLENBQS9CLDRCQUErQixDQUEvQix3QkFBK0IsQ0FBL0IsNkJBQStCLENBQS9CLG1DQUErQixDQUEvQixxREFBK0IsQ0FBL0IsMEJBQStCLENBQS9CLGdCQUErQixDQUEvQiw0QkFBK0IsQ0FBL0IsbUJBQStCLENBQS9CLHdCQUErQixDQUEvQixhQUErQixDQUEvQix5QkFBK0IsQ0FBL0Isa0JBQStCLENBQS9CLDJCQUErQixDQUEvQixtQkFBK0IsQ0FBL0IsMEJBQStCLENBQS9CLG1CQUErQixDQUEvQiwwQkFBK0IsQ0FBL0IsbUJBQStCLENBQS9CLHlCQUErQixDQUEvQixnQkFBK0IsQ0FBL0IsMkJBQStCLENBQS9CLDBCQUErQixDQUEvQiwyQkFBK0IsQ0FBL0IsNEJBQStCLENBQS9CLDhCQUErQixDQUEvQiwwQkFBK0IsQ0FBL0IsbUNBQStCLENBQS9CLHFDQUErQixDQUEvQiw0QkFBK0IsQ0FBL0IsK0JBQStCLENBQS9CLCtCQUErQixDQUEvQixzQ0FBK0IsQ0FBL0Isb0NBQStCLENBQS9CLCtCQUErQixDQUEvQiwwQ0FBK0IsQ0FBL0Isa0NBQStCLENBQS9CLDZDQUErQixDQUEvQixpQ0FBK0IsQ0FBL0IsMkNBQStCLENBQS9CLGlDQUErQixDQUEvQiwyQ0FBK0IsQ0FBL0IsK0JBQStCLENBQS9CLDZDQUErQixDQUEvQix5Q0FBK0IsQ0FBL0IsK0NBQStCLENBQS9CLGlDQUErQixDQUEvQixvQkFBK0IsQ0FBL0IsNEVBQStCLENBQS9CLDRGQUErQixDQUEvQixrR0FBK0IsQ0FBL0IsNEJBQStCLENBQS9CLHlCQUErQixDQUEvQixtTUFBK0IsQ0FBL0IsMEdBQStCLENBQS9CLHlDQUErQixDQUEvQixtTUFBK0IsQ0FBL0IsK0RBQStCLENBQS9CLHVUQUErQixDQUEvQixzUUFBK0IsQ0FBL0Isb0NBQStCLENBQS9CLHFKQUErQixDQUEvQiw2SUFBK0IsQ0FBL0IscUtBQStCLENBQS9CLGtEQUErQixDQUEvQix3Q0FBK0IsQ0FBL0IsdUJBQStCLENBQS9CLGtEQUErQixDQUEvQiw0Q0FBK0IsQ0FBL0IsMkJBQStCLENBQS9CLGtEQUErQixDQUEvQixxQ0FBK0IsQ0FBL0IscUNBQStCLENBQS9CLHFDQUErQixDQUEvQixxQ0FBK0IsQ0FBL0IsMERBQStCLENBQS9CLCtEQUErQixDQXRFL0Isd0NBc0ZBLENBdEZBLGdCQXNGQSxDQXRGQSw2TEFzRkEsQ0F0RkEsOENBc0ZBLENBdEZBLGtEQXNGQSxDQXRGQSxvREFzRkEsQ0F0RkEsZ0RBc0ZBLENBdEZBLHNEQXNGQSxDQXRGQSx3Q0FzRkEsQ0F0RkEsbURBc0ZBLENBdEZBLDBDQXNGQSxDQXRGQSxvREFzRkEsQ0F0RkEsNENBc0ZBLENBdEZBLHNEQXNGQSxDQXRGQSx3Q0FzRkEsQ0F0RkEsc0RBc0ZBLENBdEZBLDZDQXNGQSxDQXRGQSxxREFzRkEsQ0F0RkEsNENBc0ZBLENBdEZBLDBDQXNGQSxDQXRGQSwrQ0FzRkEsQ0F0RkEsNkNBc0ZBLENBdEZBLCtDQXNGQSxDQXRGQSw2Q0FzRkEsQ0F0RkEsZ0RBc0ZBLENBdEZBLDZDQXNGQSxDQXRGQSw0Q0FzRkEsQ0F0RkEsNkNBc0ZBLENBdEZBLHVDQXNGQSxDQXRGQSxrREFzRkEsQ0F0RkEsb0RBc0ZBLENBdEZBLHdEQXNGQSxDQXRGQSxrQkFzRkEsQ0F0RkEsMENBc0ZBLENBdEZBLG1EQXNGQSxDQXRGQSw4Q0FzRkEsQ0F0RkEsNkNBc0ZBLENBdEZBLHFEQXNGQSxDQXRGQSx1RUFzRkEsQ0F0RkEsc0JBc0ZBLENBdEZBLHNEQXNGQSxDQXRGQSx1UUFzRkEsQ0F0RkEsc0RBc0ZBLENBdEZBLGlCQXNGQSxDQXRGQSx5REFzRkEsQ0F0RkEsNkNBc0ZBLENBdEZBLGdEQXNGQSxDQXRGQSxvREFzRkEsQ0F0RkEsK0JBc0ZBLENBdEZBLHlDQXNGQSxDQXRGQSx5Q0FzRkEsQ0F0RkEseUNBc0ZBLENBdEZBLG9DQXNGQSxDQXRGQSxvQ0FzRkEsQ0F0RkEsaUJBc0ZBLENBdEZBLDRCQXNGQSxDQXRGQSw2QkFzRkEsQ0F0RkEsc0JBc0ZBLENBdEZBLHdCQXNGQSxDQXRGQSxzQkFzRkEsQ0F0RkEsa0NBc0ZBLENBdEZBLHNCQXNGQSxDQXRGQSx3QkFzRkEsQ0F0RkEsb0JBc0ZBLENBdEZBLDZCQXNGQSxDQXRGQSw2QkFzRkEsQ0F0RkEscUJBc0ZBLENBdEZBLHNCQXNGQSxDQXRGQSxzQkFzRkEsQ0F0RkEsOERBc0ZBLENBdEZBLDhEQXNGQSxDQXRGQSw4REFzRkEsQ0F0RkEsOERBc0ZBLENBdEZBLGdDQXNGQSxDQXRGQSxtQ0FzRkEsQ0F0RkEsdUNBc0ZBLENBdEZBLG1FQXNGQSxDQXRGQSxzREFzRkEsQ0F0RkEsaURBc0ZBLENBdEZBLG1FQXNGQSxDQXRGQSxpREFzRkEsQ0F0RkEsb0RBc0ZBLENBdEZBLGtDQXNGQSxDQXRGQSxrQkFzRkEsQ0F0RkEsd0JBc0ZBLENBdEZBLGVBc0ZBLENBdEZBLDRCQXNGQSxDQXRGQSxtQkFzRkEsQ0F0RkEsNEJBc0ZBLENBdEZBLGtCQXNGQSxDQXRGQSwwQkFzRkEsQ0F0RkEsNEJBc0ZBLENBdEZBLCtCQXNGQSxDQXRGQSwwQkFzRkEsQ0F0RkEsOEJBc0ZBLENBdEZBLCtCQXNGQSxDQXRGQSxtQkFzRkEsRUF0RkEsa0VBc0ZBLENBdEZBLDhCQXNGQSxDQXRGQSx3QkFzRkEsQ0F0RkEsc0JBc0ZBLENBdEZBLHNCQXNGQSxDQXRGQSx3QkFzRkEsQ0F0RkEscUJBc0ZBLENBdEZBLHNCQXNGQSxDQXRGQSxzQkFzRkEsQ0F0RkEsc0JBc0ZBLENBdEZBLHFCQXNGQSxDQXRGQSw0QkFzRkEsQ0F0RkEsOERBc0ZBLENBdEZBLDhEQXNGQSxDQXRGQSw4REFzRkEsQ0F0RkEsOERBc0ZBLENBdEZBLGdDQXNGQSxDQXRGQSxnREFzRkEsQ0F0RkEsaUNBc0ZBLENBdEZBLHNCQXNGQSxDQXRGQSxtRUFzRkEsQ0F0RkEsc0RBc0ZBLENBdEZBLGlEQXNGQSxDQXRGQSxtRUFzRkEsQ0F0RkEsd0RBc0ZBLENBdEZBLG1EQXNGQSxDQXRGQSxtRUFzRkEsQ0F0RkEsaURBc0ZBLENBdEZBLG9EQXNGQSxDQXRGQSx1QkFzRkEsQ0F0RkEsMkJBc0ZBLENBdEZBLDRCQXNGQSxDQXRGQSw0QkFzRkEsQ0F0RkEsK0JBc0ZBLENBdEZBLDZDQXNGQSxDQXRGQSw4QkFzRkEsQ0F0RkEsNkJBc0ZBLENBdEZBLGdCQXNGQSxFQXRGQSxtRUFzRkEsQ0F0RkEsb0NBc0ZBLENBdEZBLGlCQXNGQSxDQXRGQSxzQkFzRkEsQ0F0RkEsc0JBc0ZBLENBdEZBLHdCQXNGQSxDQXRGQSxzQkFzRkEsQ0F0RkEsc0JBc0ZBLENBdEZBLHNCQXNGQSxDQXRGQSxxQkFzRkEsQ0F0RkEscUJBc0ZBLENBdEZBLDhEQXNGQSxDQXRGQSw4REFzRkEsQ0F0RkEsOERBc0ZBLENBdEZBLDhEQXNGQSxDQXRGQSxnQ0FzRkEsQ0F0RkEsbUNBc0ZBLENBdEZBLDZDQXNGQSxDQXRGQSxvQkFzRkEsQ0F0RkEsb0JBc0ZBLENBdEZBLG9CQXNGQSxDQXRGQSxtQkFzRkEsQ0F0RkEsOENBc0ZBLENBdEZBLDRCQXNGQSxDQXRGQSx3QkFzRkEsQ0F0RkEsZUFzRkEsQ0F0RkEsNEJBc0ZBLENBdEZBLGtCQXNGQSxDQXRGQSwrQkFzRkEsQ0F0RkEsaUJBc0ZBLENBdEZBLDhCQXNGQSxDQXRGQSx1QkFzRkEsQ0F0RkEsOEJBc0ZBLENBdEZBLDRCQXNGQSxDQXRGQSx5Q0FzRkEsQ0F0RkEsK0JBc0ZBLENBdEZBLDhCQXNGQSxDQXRGQSxtQkFzRkEsQ0F0RkEsOEJBc0ZBLENBdEZBLG1CQXNGQSxFQXRGQSxtRUFzRkEsQ0F0RkEseUNBc0ZBLENBdEZBLG9DQXNGQSxDQXRGQSwyQkFzRkEsQ0F0RkEsc0JBc0ZBLENBdEZBLHNCQXNGQSxDQXRGQSxvQkFzRkEsQ0F0RkEscUJBc0ZBLENBdEZBLDBCQXNGQSxDQXRGQSxhQXNGQSxDQXRGQSwyQkFzRkEsQ0F0RkEsNEJBc0ZBLENBdEZBLCtCQXNGQSxDQXRGQSxtQkFzRkEsRTtBQ3ZFQSxtQkFDQSxpQkFDQSxDQUVBLDRCQUNBLGdCQUNBLGtCQURBLGFBRUEsQ0FDQSxnQkFDQSxZQUNBLEM7QUNiQSxnQ0FDQSxpQkFDQSxDQUVBLHNEQUNBLGdCQUNBLGtCQURBLGFBRUEsQztBQ21hQSxPQUNBLGlCQUNBLENBRUEsbUNBQ0EsWUFDQSxDQUVBLDZCQUNBLGdCQUNBLE9BQ0EsQ0FFQSx3Q0FDQSxVQUNBLENBRUEsMEdBSUEsMEJBQ0EsQ0FFQSx3REFDQSxZQUNBLENBRUEsYUFDQSxjQUNBLGdCQUNBLGtCQUNBLFVBQ0EsQ0FFQSxjQUNBLGFBQ0EsbUJBQ0EsZ0JBQ0EsQ0FFQSxnQkFDQSxhQUNBLDZCQUNBLENBRUEsdUNBQ0Esc0JBQ0EsQ0FFQSxlQUNBLG1CQUNBLGFBQ0EsbUJBQ0EsWUFDQSxrQkFDQSxpQkFDQSwwQkFDQSxDQUVBLGdDQUNBLGNBQ0EsVUFDQSxDQUVBLGNBQ0EsY0FDQSxZQUNBLGFBQ0EsQ0FFQSw4QkFFQSxzQkFDQSxDQUVBLDJCQUNBLFVBQ0Esa0JBQ0EsU0FDQSxDQUVBLG1DQUNBLFVBQ0EsU0FDQSxDQUVBLHFDQUNBLFVBQ0EsdUJBQ0EsU0FDQSxDQUVBLDZCQUNBLGNBQ0EsQ0FFQSxhQUNBLG1CQUNBLGFBQ0EsZ0JBQ0EsVUFDQSxrQkFDQSxDQUVBLG1CQUNBLGVBQ0EsY0FDQSxZQUNBLGFBQ0EsQztBQ3ZlQSx3QkFDQSxpQkFDQSxVQUNBLEM7QUNqQkEsd0JBRUEsVUFDQSxDQUVBLG9DQUdBLHNCQUNBLGtCQUZBLFlBR0Esc0JBSkEsVUFLQSxDQUVBLDZDQUNBLHdCQUNBLENBQ0EsMENBQ0Esd0JBQ0EsQztBQ0RBLHdCQUVBLFVBQ0EsQ0FFQSxvQ0FHQSxzQkFDQSxrQkFGQSxZQUdBLHNCQUpBLFVBS0EsQ0FFQSw2Q0FDQSx3QkFDQSxDQUNBLDBDQUNBLHdCQUNBLEM7QUNQQSx3QkFFQSxVQUNBLENBRUEsb0NBR0Esc0JBQ0Esa0JBRkEsWUFHQSxzQkFKQSxVQUtBLENBRUEsNkNBQ0Esd0JBQ0EsQ0FDQSwwQ0FDQSx3QkFDQSxDO0FDakJBLDhCQUNBLGdCQUNBLFVBQ0EsQ0FDQSwwQkFDQSxtQkFDQSxnQkFDQSxDO0FDbEZBLHdCQUNJLGVBQ0EsTUFDQSxPQUNBLFFBQ0EsU0FDQSxXQUNBLGdDQUNBLGFBQ0EsbUJBQ0EsdUJBRUEscUNBQ0ksZ0JBQ0EsYUFDQSxrREFDSSxVO0FDdTdDWix3QkFDQSxrREFDQSxDQUVBLHVCQUNBLGVBQ0EsQztBQy9iQSx3QkFDQSxrREFDQSxDO0FDaWhCQSx3QkFDQSxrREFDQSxDQUVBLHVCQUNBLGVBQ0EsQztBQ0hBLHdCQUNBLGtEQUNBLENBRUEsdUJBQ0EsZUFDQSxDO0FDTkEsd0JBQ0Esa0RBQ0EsQ0FFQSx1QkFDQSxlQUNBLEM7QUMvN0NBLHdCQUVBLFVBQ0EsQ0FFQSxvQ0FHQSxzQkFDQSxrQkFGQSxZQUdBLHNCQUpBLFVBS0EsQ0FFQSw2Q0FDQSx3QkFDQSxDQUNBLDBDQUNBLHdCQUNBLEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9lbGVhc2Etc2l0ZXBhY2thZ2UvLi9zcmMvY3NzL2Jhc2UuY3NzIiwid2VicGFjazovL2VsZWFzYS1zaXRlcGFja2FnZS8uL3NyYy9jc3MvY2UtZmFxLmNzcyIsIndlYnBhY2s6Ly9lbGVhc2Etc2l0ZXBhY2thZ2UvLi9zcmMvY3NzL2NlLWhlYWRlci5jc3MiLCJ3ZWJwYWNrOi8vZWxlYXNhLXNpdGVwYWNrYWdlLy4vc3JjL2Nzcy9jYWxjdWxhdG9yLmNzcyIsIndlYnBhY2s6Ly9lbGVhc2Etc2l0ZXBhY2thZ2UvLi9zcmMvY3NzL2ltYWdlU3RhY2tlZC5jc3MiLCJ3ZWJwYWNrOi8vZWxlYXNhLXNpdGVwYWNrYWdlLy4vc3JjL2Nzcy9jZS1ydGUuY3NzIiwid2VicGFjazovL2VsZWFzYS1zaXRlcGFja2FnZS8uL3NyYy9jc3MvY2UtZGVza3RvcC1uYXYuY3NzIiwid2VicGFjazovL2VsZWFzYS1zaXRlcGFja2FnZS8uL3NyYy9jc3MvY2FyZWVyLmNzcyIsIndlYnBhY2s6Ly9lbGVhc2Etc2l0ZXBhY2thZ2UvLi9zcmMvY3NzL2ZhZGVDb250ZW50LmNzcyIsIndlYnBhY2s6Ly9lbGVhc2Etc2l0ZXBhY2thZ2UvLi9zcmMvY3NzL2Nvb2tpZUZpcnN0LmNzcyIsIndlYnBhY2s6Ly9lbGVhc2Etc2l0ZXBhY2thZ2UvLi9zcmMvYXBwLmNzcyIsIndlYnBhY2s6Ly9lbGVhc2Etc2l0ZXBhY2thZ2UvLi9ub2RlX21vZHVsZXMvdnVlMi1nb29nbGUtbWFwcy9kaXN0L2NvbXBvbmVudHMvbWFwLnZ1ZSIsIndlYnBhY2s6Ly9lbGVhc2Etc2l0ZXBhY2thZ2UvLi9ub2RlX21vZHVsZXMvdnVlMi1nb29nbGUtbWFwcy9kaXN0L2NvbXBvbmVudHMvc3RyZWV0Vmlld1Bhbm9yYW1hLnZ1ZSIsIndlYnBhY2s6Ly9lbGVhc2Etc2l0ZXBhY2thZ2UvLi9ub2RlX21vZHVsZXMvdnVlLWFnaWxlL3NyYy9BZ2lsZS52dWUiLCJ3ZWJwYWNrOi8vZWxlYXNhLXNpdGVwYWNrYWdlLy4vc3JjL2NvbXBvbmVudHMvQ29udGVudEVsZW1lbnRzL0xvZ29TbGlkZXIudnVlIiwid2VicGFjazovL2VsZWFzYS1zaXRlcGFja2FnZS8uL3NyYy9jb21wb25lbnRzL0NvbnRlbnRFbGVtZW50cy9DYXJvdXNlbC52dWUiLCJ3ZWJwYWNrOi8vZWxlYXNhLXNpdGVwYWNrYWdlLy4vc3JjL2NvbXBvbmVudHMvQ29udGVudEVsZW1lbnRzL0FydGljbGVDYXJvdXNlbC52dWUiLCJ3ZWJwYWNrOi8vZWxlYXNhLXNpdGVwYWNrYWdlLy4vc3JjL2NvbXBvbmVudHMvQ29udGVudEVsZW1lbnRzL0Rpc3R1cmJlckNhcm91c2VsLnZ1ZSIsIndlYnBhY2s6Ly9lbGVhc2Etc2l0ZXBhY2thZ2UvLi9zcmMvY29tcG9uZW50cy9Db250ZW50RWxlbWVudHMvQnVsbGV0U3dpdGNoLnZ1ZSIsIndlYnBhY2s6Ly9lbGVhc2Etc2l0ZXBhY2thZ2UvLi9zcmMvY29tcG9uZW50cy9DYWxjdWxhdG9ycy9jb21wb25lbnRzL0luZm9wb3B1cC52dWUiLCJ3ZWJwYWNrOi8vZWxlYXNhLXNpdGVwYWNrYWdlLy4vc3JjL2NvbXBvbmVudHMvQ2FsY3VsYXRvcnMvQ2FsY3VsYXRvclZlbG8udnVlIiwid2VicGFjazovL2VsZWFzYS1zaXRlcGFja2FnZS8uL3NyYy9jb21wb25lbnRzL0NhbGN1bGF0b3JzL0NhbGN1bGF0b3JNcHAudnVlIiwid2VicGFjazovL2VsZWFzYS1zaXRlcGFja2FnZS8uL3NyYy9jb21wb25lbnRzL0NhbGN1bGF0b3JzL0NhbGN1bGF0b3JTY29vdGVyLnZ1ZSIsIndlYnBhY2s6Ly9lbGVhc2Etc2l0ZXBhY2thZ2UvLi9zcmMvY29tcG9uZW50cy9DYWxjdWxhdG9ycy9DYWxjdWxhdG9yUm9sbGVyLnZ1ZSIsIndlYnBhY2s6Ly9lbGVhc2Etc2l0ZXBhY2thZ2UvLi9zcmMvY29tcG9uZW50cy9DYWxjdWxhdG9ycy9DYWxjdWxhdG9yU1BlZGVsZWMudnVlIiwid2VicGFjazovL2VsZWFzYS1zaXRlcGFja2FnZS8uL3NyYy9jb21wb25lbnRzL0NvbnRlbnRFbGVtZW50cy9UZXh0SW1hZ2VDYXJvdXNlbC52dWUiXSwic291cmNlc0NvbnRlbnQiOlsiaHRtbCB7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuYm9keSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG59XG5mb290ZXIge1xuICAgIG1hcmdpbi10b3A6IGF1dG87XG59XG5oMywgaDQsIGg1LCBoNiB7XG4gICAgZm9udC1mYW1pbHk6ICdOZXV6ZWl0IEdyb3Rlc2snLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDAgIWltcG9ydGFudDtcblxufVxuaDEsIGgyIHtcbiAgICBmb250LWZhbWlseTogXCJCcmFkZm9yZCBNZWRpdW1cIiwgc2Fucy1zZXJpZjtcbiAgICBmb250LXdlaWdodDogNTAwICFpbXBvcnRhbnQ7XG59XG5oMSwgLmgxIHtcbiAgICBmb250LXNpemU6IDIuMjVyZW0gIWltcG9ydGFudDtcbiAgICBsaW5lLWhlaWdodDogMi43NXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIFxuICBoMiB7XG4gICAgZm9udC1zaXplOiAxLjYyNXJlbSAhaW1wb3J0YW50O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjg3NXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIFxuICBoMyB7XG4gICAgZm9udC1zaXplOiAxLjI1cmVtICFpbXBvcnRhbnQ7XG4gICAgbGluZS1oZWlnaHQ6IDEuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIFxuICBoNCB7XG4gICAgZm9udC1zaXplOiAxLjEyNXJlbSAhaW1wb3J0YW50O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM3NXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIFxuICBoNSB7XG4gICAgZm9udC1zaXplOiAxcmVtICFpbXBvcnRhbnQ7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjVyZW0gIWltcG9ydGFudDtcbiAgfVxuXG4gIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgIGgxLCAuaDEge1xuICAgICAgZm9udC1zaXplOiAzcmVtICFpbXBvcnRhbnQ7XG4gICAgICBsaW5lLWhlaWdodDogMy42MjVyZW0gIWltcG9ydGFudDtcbiAgICB9XG4gICAgaDIge1xuICAgICAgICBmb250LXNpemU6IDJyZW0gIWltcG9ydGFudDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDIuMzc1cmVtICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgICBcbiAgICAgIGgzIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjI1cmVtICFpbXBvcnRhbnQ7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjVyZW0gIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgaDQge1xuICAgICAgICBmb250LXNpemU6IDEuMTI1cmVtICFpbXBvcnRhbnQ7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM3NXJlbSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgICAgXG4gICAgICBoNSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbSAhaW1wb3J0YW50O1xuICAgICAgICBsaW5lLWhlaWdodDogMS4xODhyZW0gIWltcG9ydGFudDtcbiAgICAgIH1cbiAgfSIsIi50YWItY29udGVudHttYXgtaGVpZ2h0OjB9LnRhYiBpbnB1dDpjaGVja2Vkfi50YWItY29udGVudHttYXgtaGVpZ2h0OjEwMCV9LnRhYiBpbnB1dDpjaGVja2VkK2xhYmVse2ZvbnQtc2l6ZToxLjFyZW07cGFkZGluZy10b3A6MS4yNXJlbTtwYWRkaW5nLWxlZnQ6MS4yNXJlbTtwYWRkaW5nLWJvdHRvbToxLjI1cmVtO2JvcmRlci1jb2xvcjojMDAwO2JhY2tncm91bmQtY29sb3I6I2Y4ZmFmYztjb2xvcjojMDAwfS50YWIgbGFiZWw6OmFmdGVye2Zsb2F0OnJpZ2h0O3JpZ2h0OjA7dG9wOjA7ZGlzcGxheTpibG9jazt3aWR0aDoyZW07aGVpZ2h0OjJlbTtsaW5lLWhlaWdodDoxLjU7Zm9udC1zaXplOjEuNXJlbTt0ZXh0LWFsaWduOmNlbnRlcjstd2Via2l0LXRyYW5zaXRpb246YWxsIC4zNXM7LW8tdHJhbnNpdGlvbjphbGwgLjM1czt0cmFuc2l0aW9uOmFsbCAuMzVzfS50YWIgaW5wdXRbdHlwZT1jaGVja2JveF0rbGFiZWw6OmFmdGVye2NvbnRlbnQ6XCIrXCI7Zm9udC13ZWlnaHQ6OTAwO3BhZGRpbmc6LjVyZW07Ym9yZGVyLXdpZHRoOjFweDtib3JkZXItcmFkaXVzOjk5OTlweDtib3JkZXItY29sb3I6I2I4YzJjY30udGFiIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw6OmFmdGVye3RyYW5zZm9ybTpyb3RhdGUoMzE1ZGVnKTtiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7Y29sb3I6I2Y4ZmFmYztwYWRkaW5nLWxlZnQ6MXJlbTtwYWRkaW5nLXJpZ2h0OjFyZW19IiwiLmJhY2tkcm9we2JhY2tkcm9wLWZpbHRlcjpicmlnaHRuZXNzKDQwJSl9LmhlYWRlckJhY2tncm91bmR7bWluLWhlaWdodDoyMDBweDtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7YmFja2dyb3VuZC1zaXplOmNvdmVyO2JhY2tncm91bmQtcG9zaXRpb246Y2VudGVyIWltcG9ydGFudDtwb3NpdGlvbjpyZWxhdGl2ZX0iLCI6cm9vdHtcbiAgICAtLWNhbGNDb2xvckJ1dHRvbjogY3VycmVudENvbG9yO1xuICAgIC0tY2FsY0NvbG9yVGV4dDogYmxhY2s7XG59XG5cbi5yYWRpby10b29sYmFyIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHhcbn1cblxuLnJhZGlvLXRvb2xiYXIgaW5wdXRbdHlwZT1yYWRpb10ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHdpZHRoOiAwXG59XG5cbi5yYWRpby10b29sYmFyIGxhYmVsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2RkZDtcbiAgICBwYWRkaW5nOiA1cHggMTVweDtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5OXB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG5cbi5yYWRpby10b29sYmFyLW51bWJlciBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOmRpc2FibGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICBjb2xvcjogI2E2YTZhNjtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG4uY2hlY2tib3gtdG9vbGJhciB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4XG59XG5cbi5jaGVja2JveC10b29sYmFyIGlucHV0W3R5cGU9Y2hlY2tib3hdIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB3aWR0aDogMFxufVxuXG4uY2hlY2tib3gtdG9vbGJhciBsYWJlbCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNkZGQ7XG4gICAgcGFkZGluZzogNXB4IDE1cHg7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OTlweDtcbiAgICBjb250ZW50OiBcIlhcIjtcbn1cblxuLmNhbGN1bGF0b3Itc3VjY2Vzc3tcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRURGRkYzO1xuICAgIGJvcmRlcjogIzQ2RDM5MDtcbiAgICBjb2xvcjojMDA4QTQ4O1xufVxuXG4vKiBDb2xvciBPcHRpb25zICovXG5cbi8qIFllbGxvdyAqL1xuLnJhZGlvLXRvb2xiYXIteWVsbG93IGxhYmVsOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZkNDAwO1xuICAgIG9wYWNpdHk6IDAuNjtcbn1cblxuLnJhZGlvLXRvb2xiYXIteWVsbG93IGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWwge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmQ0MDA7XG59XG4ucmFkaW8tdG9vbGJhci15ZWxsb3cgaW5wdXRbdHlwZT1yYWRpb106bm90KDpjaGVja2VkKTpkaXNhYmxlZCtsYWJlbCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2RkZDtcbiAgICBvcGFjaXR5OiAwLjQ7XG4gICAgY29sb3I6ICM4YzhjOGM7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cblxuLnJhZGlvLXRvb2xiYXIteWVsbG93IGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQ6ZGlzYWJsZWQrbGFiZWwge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmQ0MDA7XG4gICAgb3BhY2l0eTogMC40O1xuICAgIGNvbG9yOiAjOGM4YzhjO1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5cbi5jaGVja2JveC10b29sYmFyLXllbGxvdyBsYWJlbDpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZDQwMDtcbiAgICBvcGFjaXR5OiAwLjY7XG59XG5cbi5jaGVja2JveC10b29sYmFyLXllbGxvdyBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZkNDAwO1xufVxuXG4uY2hlY2tib3gtdG9vbGJhci15ZWxsb3cgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZDpkaXNhYmxlZCtsYWJlbCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZDQwMDtcbiAgICBvcGFjaXR5OiAwLjQ7XG4gICAgY29sb3I6ICM4YzhjOGM7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cblxuLmNoZWNrYm94LXRvb2xiYXIteWVsbG93IGlucHV0W3R5cGU9Y2hlY2tib3hdOm5vdCg6Y2hlY2tlZCk6ZGlzYWJsZWQrbGFiZWwge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNkZGQ7XG4gICAgb3BhY2l0eTogMC40O1xuICAgIGNvbG9yOiAjOGM4YzhjO1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5cbi5jYWxjdWxhdG9yLXllbGxvdyB7XG4gICAgY29sb3I6ICNmZmQ0MDA7XG59XG5cbi8qIEJsdWUgKi9cbi5yYWRpby10b29sYmFyLWJsdWUgbGFiZWw6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwNDAwQ0U7XG4gICAgb3BhY2l0eTogMC42O1xuICAgIGNvbG9yOiB3aGl0ZTtcbn1cblxuLnJhZGlvLXRvb2xiYXItYmx1ZSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDQwMENFO1xuICAgIGNvbG9yOiB3aGl0ZTtcbn1cblxuLnJhZGlvLXRvb2xiYXItYmx1ZSBpbnB1dFt0eXBlPXJhZGlvXTpub3QoOmNoZWNrZWQpOmRpc2FibGVkK2xhYmVsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkO1xuICAgIG9wYWNpdHk6IDAuNDtcbiAgICBjb2xvcjogI2E2YTZhNjtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG4ucmFkaW8tdG9vbGJhci1ibHVlIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQ6ZGlzYWJsZWQrbGFiZWwge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwNDAwQ0U7XG4gICAgb3BhY2l0eTogMC40O1xuICAgIGNvbG9yOiAjZjJmMmYyO1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5cbi5jaGVja2JveC10b29sYmFyLWJsdWUgbGFiZWw6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwNDAwQ0U7XG4gICAgb3BhY2l0eTogMC42O1xuICAgIGNvbG9yOiB3aGl0ZTtcbn1cblxuLmNoZWNrYm94LXRvb2xiYXItYmx1ZSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDQwMENFO1xuICAgIGNvbG9yOiB3aGl0ZTtcbn1cbi5jaGVja2JveC10b29sYmFyLWJsdWUgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZDpkaXNhYmxlZCtsYWJlbCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzA0MDBDRTtcbiAgICBvcGFjaXR5OiAwLjQ7XG4gICAgY29sb3I6ICNmMmYyZjI7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cblxuLmNoZWNrYm94LXRvb2xiYXItYmx1ZSBpbnB1dFt0eXBlPWNoZWNrYm94XTpub3QoOmNoZWNrZWQpOmRpc2FibGVkK2xhYmVsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkO1xuICAgIG9wYWNpdHk6IDAuNDtcbiAgICBjb2xvcjogI2E2YTZhNjtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG4uY2FsY3VsYXRvci1ibHVlIHtcbiAgICBjb2xvcjogIzA0MDBDRTtcbn1cblxuLyogQ3VzdG9tICovXG4ucmFkaW8tdG9vbGJhci1jdXN0b20gbGFiZWw6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNhbGNDb2xvckJ1dHRvbik7XG4gICAgb3BhY2l0eTogMC42O1xuICAgIGNvbG9yOiB2YXIoLS1jYWxjQ29sb3JUZXh0KTtcbn1cblxuLnJhZGlvLXRvb2xiYXItY3VzdG9tIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWwge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNhbGNDb2xvckJ1dHRvbik7XG4gICAgY29sb3I6IHZhcigtLWNhbGNDb2xvclRleHQpO1xufVxuXG4ucmFkaW8tdG9vbGJhci1jdXN0b20gaW5wdXRbdHlwZT1yYWRpb106bm90KDpjaGVja2VkKTpkaXNhYmxlZCtsYWJlbCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2RkZDtcbiAgICBvcGFjaXR5OiAwLjQ7XG4gICAgY29sb3I6ICNhNmE2YTY7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cblxuLnJhZGlvLXRvb2xiYXItY3VzdG9tIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQ6ZGlzYWJsZWQrbGFiZWwge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNhbGNDb2xvckJ1dHRvbik7XG4gICAgb3BhY2l0eTogMC40O1xuICAgIGNvbG9yOiB2YXIoLS1jYWxjQ29sb3JUZXh0KTtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG4uY2hlY2tib3gtdG9vbGJhci1jdXN0b20gbGFiZWw6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNhbGNDb2xvckJ1dHRvbik7XG4gICAgY29sb3I6IHZhcigtLWNhbGNDb2xvclRleHQpO1xuICAgIG9wYWNpdHk6IDAuNjtcbn1cblxuLmNoZWNrYm94LXRvb2xiYXItY3VzdG9tIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWwge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNhbGNDb2xvckJ1dHRvbik7XG4gICAgY29sb3I6IHZhcigtLWNhbGNDb2xvclRleHQpO1xufVxuLmNoZWNrYm94LXRvb2xiYXItY3VzdG9tIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQ6ZGlzYWJsZWQrbGFiZWwge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNhbGNDb2xvckJ1dHRvbik7XG4gICAgb3BhY2l0eTogMC40O1xuICAgIGNvbG9yOiB2YXIoLS1jYWxjQ29sb3JUZXh0KTtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG4uY2hlY2tib3gtdG9vbGJhci1jdXN0b20gaW5wdXRbdHlwZT1jaGVja2JveF06bm90KDpjaGVja2VkKTpkaXNhYmxlZCtsYWJlbCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2RkZDtcbiAgICBvcGFjaXR5OiAwLjQ7XG4gICAgY29sb3I6ICNhNmE2YTY7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cblxuLmNhbGN1bGF0b3ItY3VzdG9tIHtcbiAgICBjb2xvcjogdmFyKC0tY2FsY0NvbG9yQnV0dG9uKTtcbn1cbi5oLTE4IHtcbiAgICBoZWlnaHQ6IDQuNXJlbTtcbn1cbiIsIi5UaHJlZUl0ZW1zIHtcbiAgICAvKiBoZWlnaHQ6IDIyMHB4OyAqL1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIG9iamVjdC1wb3NpdGlvbjogaW5oZXJpdDtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEyODBweCkge1xuICAgIC5UaHJlZUl0ZW1zIHtcbiAgICAgICAgaGVpZ2h0OiAyNzBweDtcbiAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICAgIG9iamVjdC1wb3NpdGlvbjogaW5oZXJpdDtcbiAgICB9XG59XG5cbi5Ud29JdGVtcyB7XG4gICAgaGVpZ2h0OiAxODBweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICBvYmplY3QtcG9zaXRpb246IGluaGVyaXQ7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgIC5Ud29JdGVtcyB7XG4gICAgICAgIGhlaWdodDogNDAwcHg7XG4gICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgICBvYmplY3QtcG9zaXRpb246IGluaGVyaXQ7XG4gICAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAuT25lSXRlbSB7XG4gICAgICAgIGhlaWdodDogNDAwcHg7XG4gICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgICBvYmplY3QtcG9zaXRpb246IGluaGVyaXQ7XG4gICAgfVxufVxuXG4uT25lSXRlbSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgb2JqZWN0LXBvc2l0aW9uOiBpbmhlcml0O1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTI4MHB4KSB7XG4gICAgLmNvbnRhaW5lciB7XG4gICAgICAgIG1heC13aWR0aDogMTI4MHB4ICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gICAgLnhsXFw6Y29udGFpbmVyIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDI0cHggIWltcG9ydGFudDtcbiAgICB9XG59XG4iLCIvKiBUT0RPOiBIZWFkbGluZXMhICovXG5cbi8qIC5yaWNoLXRleHQgaDEge1xuICAgIGZvbnQtc2l6ZTogM3JlbSAhaW1wb3J0YW50XG59XG5cbi5yaWNoLXRleHQgaDIge1xuICAgIGZvbnQtc2l6ZTogMnJlbSAhaW1wb3J0YW50XG59XG5cbi5yaWNoLXRleHQgaDEsXG5oMiB7XG4gICAgbGluZS1oZWlnaHQ6IDEuMiAhaW1wb3J0YW50XG59XG5cbi5yaWNoLXRleHQgaDEsXG5oMixcbmgzLFxuaDQsXG5oNSxcbmg2IHtcbiAgICBmb250LXdlaWdodDogOTAwICFpbXBvcnRhbnRcbn0gKi9cblxuLnJpY2gtdGV4dCBoMSxcbmgyLCBoMyB7XG4gICAgbWFyZ2luOiA1cHggMCAhaW1wb3J0YW50O1xufVxuXG4ucmljaC10ZXh0IHVsIHtcbiAgICBsaXN0LXN0eWxlOiBkaXNjICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWxlZnQ6IDFyZW1cbn1cblxuLnJpY2gtdGV4dCBvbCB7XG4gICAgcGFkZGluZzogMDtcbiAgICBjb3VudGVyLXJlc2V0OiBpdGVtXG59XG5cbi5yaWNoLXRleHQgb2w+bGkge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwIDAgMCAxLjVlbTtcbiAgICB0ZXh0LWluZGVudDogLTEuNWVtO1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICBjb3VudGVyLWluY3JlbWVudDogaXRlbVxufVxuXG4ucmljaC10ZXh0IG9sPmxpOmJlZm9yZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAxLjVlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAuNWVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgY29udGVudDogY291bnRlcihpdGVtKSAnLidcbn1cblxuLnJpY2gtdGV4dCBwIHtcbiAgICBtYXJnaW4tYmxvY2stc3RhcnQ6IDFlbTtcbiAgICBtYXJnaW4tYmxvY2stZW5kOiAxZW1cbn1cblxuLnJpY2gtdGV4dCBhIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZVxufSIsIi5kZXNrdG9wLW5hdi1ib3JkZXI6OmJlZm9yZXtjb250ZW50OlwiXCI7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDo0MDt0b3A6MXB4O2xlZnQ6MXB4O3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7YmFja2dyb3VuZDowIDA7Ym9yZGVyOjJweCBzb2xpZCAjMDAwO2JvcmRlci1yYWRpdXM6MTAwcHh9LmRlc2t0b3AtbmF2aWdhdGlvbjo6YmVmb3Jle2NvbnRlbnQ6XCJcIjtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjQwO3RvcDowO3JpZ2h0OjA7Ym90dG9tOjA7bGVmdDowO2JveC1zaXppbmc6aW5oZXJpdDtiYWNrZ3JvdW5kOjAgMDtib3JkZXI6MnB4IHNvbGlkICMwMDA7Ym9yZGVyLXJhZGl1czoxMDBweDthbmltYXRpb24tZmlsbC1tb2RlOmJvdGg7Y2xpcC1wYXRoOnBvbHlnb24oMTBweCAwLDEwMCUgMCwxMHB4IDAsMCAxMDAlLDEwcHggMCwxMHB4IDAsMTBweCA1MCUpfS5kZXNrdG9wLW5hdmlnYXRpb246aG92ZXI6OmJlZm9yZXthbmltYXRpb246Ym9yZGVyLWZpbGwtYW5pbWF0aW9uIC44cyBjdWJpYy1iZXppZXIoLjEsLjMsLjksLjcpIDBzIGZvcndhcmRzfUBrZXlmcmFtZXMgYm9yZGVyLWZpbGwtYW5pbWF0aW9uezAle2NsaXAtcGF0aDpwb2x5Z29uKDEwcHggMCwxMDAlIDAsMTBweCAwLDAgMTAwJSwxMHB4IDAsMTBweCAwLDEwcHggNTAlKX0yNSV7Y2xpcC1wYXRoOnBvbHlnb24oMTBweCAwLDEwMCUgMCwxMDAlIDAsMCAxMDAlLDEwMCUgMCwxMDAlIDAsMTBweCA1MCUpfTUwJXtjbGlwLXBhdGg6cG9seWdvbigxMHB4IDAsMTAwJSAwLDEwMCUgMTAwJSwwIDEwMCUsMTAwJSAxMDAlLDEwMCUgMTAwJSwxMHB4IDUwJSl9NzUle2NsaXAtcGF0aDpwb2x5Z29uKDEwcHggMCwxMDAlIDAsMTAwJSAxMDAlLDAgMTAwJSwwIDEwMCUsMCAxMDAlLDEwcHggNTAlKX10b3tjbGlwLXBhdGg6cG9seWdvbigxMHB4IDAsMTAwJSAwLDEwMCUgMTAwJSwwIDEwMCUsMCAwLDEwcHggMCwxMHB4IDUwJSl9fS5tYWluLW1lbnU6aG92ZXIgLnN1Yi1tZW51e29wYWNpdHk6MTAwO21heC1oZWlnaHQ6bWF4LWNvbnRlbnR9LnN1Yi1tZW51e292ZXJmbG93OmhpZGRlbjt0ZXh0LWFsaWduOmxlZnQ7cG9zaXRpb246YWJzb2x1dGU7bWF4LWhlaWdodDowO29wYWNpdHk6MDt0cmFuc2l0aW9uLXByb3BlcnR5OmFsbDt0cmFuc2l0aW9uLWR1cmF0aW9uOi43czt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlLWluLW91dDt6LWluZGV4OjMwO2JhY2tncm91bmQ6I2ZmZDQwMDt3aWR0aDoyOTBweH0iLCIuY2FyZWVye21heC1oZWlnaHQ6NTUwcHh9LmNhcmVlckRpdnttYXgtaGVpZ2h0OmluaGVyaXQ7YmFja2dyb3VuZC1jb2xvcjojMDAwfSIsIkBtZWRpYSAobWluLXdpZHRoOjk2OHB4KXsuc2Nyb2xsRmFkZXtvcGFjaXR5OjE7cG9pbnRlci1ldmVudHM6YWxsfS5zY3JvbGxGYWRlLS1oaWRkZW57b3BhY2l0eTowO3BvaW50ZXItZXZlbnRzOm5vbmV9LnNjcm9sbEZhZGUtLXZpc2libGV7b3BhY2l0eToxO3BvaW50ZXItZXZlbnRzOmFsbH0uc2Nyb2xsRmFkZS0tYW5pbWF0ZXt0cmFuc2l0aW9uOm9wYWNpdHkgLjdzIGVhc2UtaW4tb3V0fX0iLCIuY29va2llZmlyc3QtYWNjZXB0LWJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xuICBjb2xvcjogd2hpdGU7XG4gIHotaW5kZXg6IDQwO1xuICBwYWRkaW5nLWxlZnQ6IDEuMjVyZW07ICAvKiBweC01ICovXG4gIHBhZGRpbmctcmlnaHQ6IDEuMjVyZW07XG4gIHBhZGRpbmctdG9wOiAwLjc1cmVtOyAgIC8qIHB0LTMgKi9cbiAgcGFkZGluZy1ib3R0b206IDAuNXJlbTsgLyogcGItMiAqL1xuICBmb250LXNpemU6IDAuODc1cmVtOyAgICAvKiB0ZXh0LXNtICovXG4gIGZvbnQtd2VpZ2h0OiA5MDA7ICAgICAgIC8qIGZvbnQtYmxhY2sgKi9cbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxNTYyZW07IC8qIHRyYWNraW5nLXRpZ2h0IChhcHByb3hpbWF0aW9uKSAqL1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBib3JkZXItcmFkaXVzOiA5OTk5cHg7ICAvKiByb3VuZGVkLWZ1bGwgKi9cbiAgdHJhbnNpdGlvbjogY29sb3IgMC4ycyBlYXNlOyAvKiBvcHRpb25hbCBmb3IgaG92ZXIgZWZmZWN0ICovXG59XG5cbi5jb29raWVmaXJzdC1hY2NlcHQtYnV0dG9uOmhvdmVyIHtcbiAgY3Vyc29yOiBwb2ludGVyOyAvKiBEZWZpbmUgLS1jb2xvci1zZWNvbmRhcnkgaW4geW91ciBDU1MgKi9cbiAgY29sb3I6IHdoaXRlO1xuXG59XG4iLCJcbkBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiBOZXV6ZWl0IEdyb3Rlc2s7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBzcmM6IHVybCgnZm9udHMvbmV1emVpdC8zOEIwOEFfMF8wLmVvdCcpO1xuICAgIHNyYzogdXJsKCdmb250cy9uZXV6ZWl0LzM4QjA4QV8wXzAuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbiAgICAgICAgdXJsKCdmb250cy9uZXV6ZWl0LzM4QjA4QV8wXzAud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksXG4gICAgICAgIHVybCgnZm9udHMvbmV1emVpdC8zOEIwOEFfMF8wLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgICAgICAgdXJsKCdmb250cy9uZXV6ZWl0LzM4QjA4QV8wXzAudHRmJykgZm9ybWF0KCd0cnVldHlwZScpO1xuICAgIGZvbnQtZGlzcGxheTogc3dhcDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gICAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICAgIGZvbnQtZmFtaWx5OiBOZXV6ZWl0IEdyb3Rlc2s7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBzcmM6IHVybCgnZm9udHMvbmV1emVpdC8zOEIwOEFfMV8wLmVvdCcpO1xuICAgIHNyYzogdXJsKCdmb250cy9uZXV6ZWl0LzM4QjA4QV8xXzAuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbiAgICAgICAgdXJsKCdmb250cy9uZXV6ZWl0LzM4QjA4QV8xXzAud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksXG4gICAgICAgIHVybCgnZm9udHMvbmV1emVpdC8zOEIwOEFfMV8wLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgICAgICAgdXJsKCdmb250cy9uZXV6ZWl0LzM4QjA4QV8xXzAudHRmJykgZm9ybWF0KCd0cnVldHlwZScpO1xuICAgIGZvbnQtZGlzcGxheTogc3dhcDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gICAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICAgIGZvbnQtZmFtaWx5OiBCcmFkZm9yZCBNZWRpdW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBzcmM6IHVybCgnZm9udHMvYnJhZGZvcmQvQnJhZGZvcmRMTFN1Yi1NZWRpdW0uZW90Jyk7XG4gICAgc3JjOiB1cmwoJ2ZvbnRzL2JyYWRmb3JkL0JyYWRmb3JkTExTdWItTWVkaXVtLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gICAgICAgIHVybCgnZm9udHMvYnJhZGZvcmQvQnJhZGZvcmRMTFN1Yi1NZWRpdW0ud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksXG4gICAgICAgIHVybCgnZm9udHMvYnJhZGZvcmQvQnJhZGZvcmRMTFN1Yi1NZWRpdW0ud29mZicpIGZvcm1hdCgnd29mZicpO1xuICAgIGZvbnQtZGlzcGxheTogc3dhcDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gICAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICAgIGZvbnQtZmFtaWx5OiBCcmFkZm9yZCBNZWRpdW0gSXRhbGljO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgc3JjOiB1cmwoJ2ZvbnRzL2JyYWRmb3JkL0JyYWRmb3JkTExTdWItTWVkaXVtSXRhbGljLmVvdCcpO1xuICAgIHNyYzogdXJsKCdmb250cy9icmFkZm9yZC9CcmFkZm9yZExMU3ViLU1lZGl1bUl0YWxpYy5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICAgICAgICB1cmwoJ2ZvbnRzL2JyYWRmb3JkL0JyYWRmb3JkTExTdWItTWVkaXVtSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuICAgICAgICB1cmwoJ2ZvbnRzL2JyYWRmb3JkL0JyYWRmb3JkTExTdWItTWVkaXVtSXRhbGljLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTtcbiAgICBmb250LWRpc3BsYXk6IHN3YXA7XG59XG5cbkBmb250LWZhY2Uge1xuICAgIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgICBmb250LWZhbWlseTogQnJhZGZvcmQgTWVkaXVtO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgc3JjOiB1cmwoJ2ZvbnRzL2JyYWRmb3JkL0JyYWRmb3JkTExXZWItTWVkaXVtLmVvdCcpO1xuICAgIHNyYzogdXJsKCdmb250cy9icmFkZm9yZC9CcmFkZm9yZExMV2ViLU1lZGl1bS5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICAgICAgICB1cmwoJ2ZvbnRzL2JyYWRmb3JkL0JyYWRmb3JkTExXZWItTWVkaXVtLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuICAgICAgICB1cmwoJ2ZvbnRzL2JyYWRmb3JkL0JyYWRmb3JkTExXZWItTWVkaXVtLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTtcbiAgICBmb250LWRpc3BsYXk6IHN3YXA7XG59XG5cbkBmb250LWZhY2Uge1xuICAgIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgICBmb250LWZhbWlseTogQnJhZGZvcmQgTWVkaXVtIEl0YWxpYztcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIHNyYzogdXJsKCdmb250cy9icmFkZm9yZC9CcmFkZm9yZExMV2ViLU1lZGl1bUl0YWxpYy5lb3QnKTtcbiAgICBzcmM6IHVybCgnZm9udHMvYnJhZGZvcmQvQnJhZGZvcmRMTFdlYi1NZWRpdW1JdGFsaWMuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbiAgICAgICAgdXJsKCdmb250cy9icmFkZm9yZC9CcmFkZm9yZExMV2ViLU1lZGl1bUl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKSxcbiAgICAgICAgdXJsKCdmb250cy9icmFkZm9yZC9CcmFkZm9yZExMV2ViLU1lZGl1bUl0YWxpYy53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XG4gICAgZm9udC1kaXNwbGF5OiBzd2FwO1xufVxuXG5AaW1wb3J0ICd0YWlsd2luZGNzcy9iYXNlJztcbkBpbXBvcnQgJ3RhaWx3aW5kY3NzL2NvbXBvbmVudHMnO1xuQGltcG9ydCAndGFpbHdpbmRjc3MvdXRpbGl0aWVzJztcblxuLyogQHRhaWx3aW5kIGJhc2U7XG5AdGFpbHdpbmQgY29tcG9uZW50cztcbkB0YWlsd2luZCB1dGlsaXRpZXM7ICovXG5cbkBpbXBvcnQgJ2Nzcy9iYXNlLmNzcyc7XG5AaW1wb3J0ICdjc3MvY2UtZmFxLmNzcyc7XG5AaW1wb3J0ICdjc3MvY2UtaGVhZGVyLmNzcyc7XG5AaW1wb3J0ICdjc3MvY2FsY3VsYXRvci5jc3MnO1xuQGltcG9ydCAnY3NzL2ltYWdlU3RhY2tlZC5jc3MnO1xuQGltcG9ydCAnY3NzL2NlLXJ0ZS5jc3MnO1xuQGltcG9ydCAnY3NzL2NlLWRlc2t0b3AtbmF2LmNzcyc7XG5AaW1wb3J0ICdjc3MvY2FyZWVyLmNzcyc7XG5AaW1wb3J0ICdjc3MvZmFkZUNvbnRlbnQuY3NzJztcbkBpbXBvcnQgJ2Nzcy9jb29raWVGaXJzdC5jc3MnO1xuIiwiPHRlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwidnVlLW1hcC1jb250YWluZXJcIj5cbiAgICA8ZGl2IHJlZj1cInZ1ZS1tYXBcIiBjbGFzcz1cInZ1ZS1tYXBcIj48L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwidnVlLW1hcC1oaWRkZW5cIj5cbiAgICAgIDxzbG90Pjwvc2xvdD5cbiAgICA8L2Rpdj5cbiAgICA8c2xvdCBuYW1lPVwidmlzaWJsZVwiPjwvc2xvdD5cbiAgPC9kaXY+XG48L3RlbXBsYXRlPlxuXG48c2NyaXB0PlxuZXhwb3J0IGRlZmF1bHQgKGZ1bmN0aW9uICh4KSB7IHJldHVybiB4LmRlZmF1bHQgfHwgeCB9KShyZXF1aXJlKCcuL21hcEltcGwuanMnKSlcbjwvc2NyaXB0PlxuXG48c3R5bGUgbGFuZz1cImNzc1wiPlxuLnZ1ZS1tYXAtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4udnVlLW1hcC1jb250YWluZXIgLnZ1ZS1tYXAge1xuICBsZWZ0OiAwOyByaWdodDogMDsgdG9wOiAwOyBib3R0b206IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbi52dWUtbWFwLWhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG48L3N0eWxlPlxuIiwiPHRlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwidnVlLXN0cmVldC12aWV3LXBhbm8tY29udGFpbmVyXCI+XG4gICAgPGRpdiByZWY9XCJ2dWUtc3RyZWV0LXZpZXctcGFub1wiIGNsYXNzPVwidnVlLXN0cmVldC12aWV3LXBhbm9cIj48L2Rpdj5cbiAgICA8c2xvdD48L3Nsb3Q+XG4gIDwvZGl2PlxuPC90ZW1wbGF0ZT5cblxuPHNjcmlwdD5cbmV4cG9ydCBkZWZhdWx0IChmdW5jdGlvbiAoeCkgeyByZXR1cm4geC5kZWZhdWx0IHx8IHggfSkocmVxdWlyZSgnLi9zdHJlZXRWaWV3UGFub3JhbWFJbXBsLmpzJykpXG48L3NjcmlwdD5cblxuPHN0eWxlIGxhbmc9XCJjc3NcIj5cbi52dWUtc3RyZWV0LXZpZXctcGFuby1jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi52dWUtc3RyZWV0LXZpZXctcGFuby1jb250YWluZXIgLnZ1ZS1zdHJlZXQtdmlldy1wYW5vIHtcbiAgbGVmdDogMDsgcmlnaHQ6IDA7IHRvcDogMDsgYm90dG9tOiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG48L3N0eWxlPlxuIiwiPHRlbXBsYXRlPlxuICA8ZGl2XG4gICAgOmNsYXNzPVwieydhZ2lsZS0tc3NyJzogaXNTU1IsICdhZ2lsZS0tYXV0by1wbGF5Jzogc2V0dGluZ3MuYXV0b3BsYXksICdhZ2lsZS0tZGlzYWJsZWQnOiBzZXR0aW5ncy51bmFnaWxlLCAnYWdpbGUtLWZhZGUnOiBzZXR0aW5ncy5mYWRlICYmICFzZXR0aW5ncy51bmFnaWxlLCAnYWdpbGUtLXJ0bCc6IHNldHRpbmdzLnJ0bCwgJ2FnaWxlLS1uby1uYXYtYnV0dG9ucyc6ICFzZXR0aW5ncy5uYXZCdXR0b25zfVwiXG4gICAgY2xhc3M9XCJhZ2lsZVwiXG4gICAgQHRvdWNoc3RhcnQ9XCIoKSA9PiB7fVwiXG4gID5cbiAgICA8ZGl2XG4gICAgICByZWY9XCJsaXN0XCJcbiAgICAgIGNsYXNzPVwiYWdpbGVfX2xpc3RcIlxuICAgID5cbiAgICAgIDxkaXZcbiAgICAgICAgcmVmPVwidHJhY2tcIlxuICAgICAgICA6c3R5bGU9XCJ7dHJhbnNmb3JtOiBgdHJhbnNsYXRlKCR7dHJhbnNsYXRlWCArIG1hcmdpblh9cHgpYCwgdHJhbnNpdGlvbjogYHRyYW5zZm9ybSAke3NldHRpbmdzLnRpbWluZ30gJHt0cmFuc2l0aW9uRGVsYXl9bXNgfVwiXG4gICAgICAgIGNsYXNzPVwiYWdpbGVfX3RyYWNrXCJcbiAgICAgICAgQG1vdXNlb3V0PVwiaGFuZGxlTW91c2VPdXQoJ3RyYWNrJylcIlxuICAgICAgICBAbW91c2VvdmVyPVwiaGFuZGxlTW91c2VPdmVyKCd0cmFjaycpXCJcbiAgICAgID5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIHYtc2hvdz1cInNsaWRlc0Nsb25lZFwiXG4gICAgICAgICAgcmVmPVwic2xpZGVzQ2xvbmVkQmVmb3JlXCJcbiAgICAgICAgICBjbGFzcz1cImFnaWxlX19zbGlkZXMgYWdpbGVfX3NsaWRlcy0tY2xvbmVkXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxzbG90Lz5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIHJlZj1cInNsaWRlc1wiXG4gICAgICAgICAgY2xhc3M9XCJhZ2lsZV9fc2xpZGVzIGFnaWxlX19zbGlkZXMtLXJlZ3VsYXJcIlxuICAgICAgICA+XG4gICAgICAgICAgPHNsb3QvPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2XG4gICAgICAgICAgdi1zaG93PVwic2xpZGVzQ2xvbmVkXCJcbiAgICAgICAgICByZWY9XCJzbGlkZXNDbG9uZWRBZnRlclwiXG4gICAgICAgICAgY2xhc3M9XCJhZ2lsZV9fc2xpZGVzIGFnaWxlX19zbGlkZXMtLWNsb25lZFwiXG4gICAgICAgID5cbiAgICAgICAgICA8c2xvdC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2XG4gICAgICB2LWlmPVwiJHNsb3RzLmNhcHRpb25cIlxuICAgICAgY2xhc3M9XCJhZ2lsZV9fY2FwdGlvblwiXG4gICAgPlxuICAgICAgPHNsb3QgbmFtZT1cImNhcHRpb25cIi8+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2XG4gICAgICB2LWlmPVwiIXNldHRpbmdzLnVuYWdpbGUgJiYgKHNldHRpbmdzLm5hdkJ1dHRvbnMgfHwgc2V0dGluZ3MuZG90cylcIlxuICAgICAgY2xhc3M9XCJhZ2lsZV9fYWN0aW9uc1wiXG4gICAgPlxuICAgICAgPGJ1dHRvblxuICAgICAgICB2LWlmPVwic2V0dGluZ3MubmF2QnV0dG9ucyAmJiAhc2V0dGluZ3MudW5hZ2lsZVwiXG4gICAgICAgIHJlZj1cInByZXZCdXR0b25cIlxuICAgICAgICA6ZGlzYWJsZWQ9XCIhY2FuR29Ub1ByZXZcIlxuICAgICAgICBhcmlhLWxhYmVsPVwiUHJldmlvdXNcIlxuICAgICAgICBjbGFzcz1cImFnaWxlX19uYXYtYnV0dG9uIGFnaWxlX19uYXYtYnV0dG9uLS1wcmV2XCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIEBjbGljaz1cImdvVG9QcmV2KCksIHJlc3RhcnRBdXRvUGxheSgpXCJcbiAgICAgID5cbiAgICAgICAgPHNsb3QgbmFtZT1cInByZXZCdXR0b25cIj5cbiAgICAgICAgICDihpBcbiAgICAgICAgPC9zbG90PlxuICAgICAgPC9idXR0b24+XG5cbiAgICAgIDx1bFxuICAgICAgICB2LWlmPVwic2V0dGluZ3MuZG90cyAmJiAhc2V0dGluZ3MudW5hZ2lsZVwiXG4gICAgICAgIHJlZj1cImRvdHNcIlxuICAgICAgICBjbGFzcz1cImFnaWxlX19kb3RzXCJcbiAgICAgID5cbiAgICAgICAgPGxpXG4gICAgICAgICAgdi1mb3I9XCJuIGluIGNvdW50U2xpZGVzXCJcbiAgICAgICAgICA6a2V5PVwiblwiXG4gICAgICAgICAgOmNsYXNzPVwieydhZ2lsZV9fZG90LS1jdXJyZW50JzogbiAtIDEgPT09IGN1cnJlbnRTbGlkZX1cIlxuICAgICAgICAgIGNsYXNzPVwiYWdpbGVfX2RvdFwiXG4gICAgICAgICAgQG1vdXNlb3V0PVwiaGFuZGxlTW91c2VPdXQoJ2RvdCcpXCJcbiAgICAgICAgICBAbW91c2VvdmVyPVwiaGFuZGxlTW91c2VPdmVyKCdkb3QnKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIEBjbGljaz1cImdvVG8obiAtIDEpLCByZXN0YXJ0QXV0b1BsYXkoKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgbiB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2xpPlxuICAgICAgPC91bD5cblxuICAgICAgPGJ1dHRvblxuICAgICAgICB2LWlmPVwic2V0dGluZ3MubmF2QnV0dG9ucyAmJiAhc2V0dGluZ3MudW5hZ2lsZVwiXG4gICAgICAgIHJlZj1cIm5leHRCdXR0b25cIlxuICAgICAgICA6ZGlzYWJsZWQ9XCIhY2FuR29Ub05leHRcIlxuICAgICAgICBhcmlhLWxhYmVsPVwiTmV4dFwiXG4gICAgICAgIGNsYXNzPVwiYWdpbGVfX25hdi1idXR0b24gYWdpbGVfX25hdi1idXR0b24tLW5leHRcIlxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgQGNsaWNrPVwiZ29Ub05leHQoKSwgcmVzdGFydEF1dG9QbGF5KClcIlxuICAgICAgPlxuICAgICAgICA8c2xvdCBuYW1lPVwibmV4dEJ1dHRvblwiPlxuICAgICAgICAgIOKGklxuICAgICAgICA8L3Nsb3Q+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L3RlbXBsYXRlPlxuXG48c2NyaXB0PlxuICBpbXBvcnQgaGFuZGxlcnMgZnJvbSAnLi9taXhpbnMvaGFuZGxlcnMnXG4gIGltcG9ydCBoZWxwZXJzIGZyb20gJy4vbWl4aW5zL2hlbHBlcnMnXG4gIGltcG9ydCBtZXRob2RzIGZyb20gJy4vbWl4aW5zL21ldGhvZHMnXG4gIGltcG9ydCBwcmVwYXJhdGlvbnMgZnJvbSAnLi9taXhpbnMvcHJlcGFyYXRpb25zJ1xuICBpbXBvcnQgc2V0dGluZ3MgZnJvbSAnLi9taXhpbnMvc2V0dGluZ3MnXG4gIGltcG9ydCB0aHJvdHRsZSBmcm9tICcuL21peGlucy90aHJvdHRsZSdcbiAgaW1wb3J0IHdhdGNoZXJzIGZyb20gJy4vbWl4aW5zL3dhdGNoZXJzJ1xuXG4gIGV4cG9ydCBkZWZhdWx0IHtcbiAgICBuYW1lOiAnYWdpbGUnLFxuXG4gICAgbWl4aW5zOiBbaGFuZGxlcnMsIGhlbHBlcnMsIG1ldGhvZHMsIHByZXBhcmF0aW9ucywgc2V0dGluZ3MsIHRocm90dGxlLCB3YXRjaGVyc10sXG5cbiAgICBlbWl0czogWydiZWZvcmUtY2hhbmdlJywgJ2FmdGVyLWNoYW5nZScsICdicmVha3BvaW50J10sXG5cbiAgICBkYXRhICgpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGF1dG9wbGF5SW50ZXJ2YWw6IG51bGwsXG4gICAgICAgIGF1dG9wbGF5UmVtYWluaW5nOiBudWxsLFxuICAgICAgICBhdXRvcGxheVN0YXJ0VGltZXN0YW1wOiBudWxsLFxuICAgICAgICBhdXRvcGxheVRpbWVvdXQ6IG51bGwsXG4gICAgICAgIGN1cnJlbnRTbGlkZTogbnVsbCxcbiAgICAgICAgZHJhZ0Rpc3RhbmNlOiAwLFxuICAgICAgICBkcmFnU3RhcnRYOiAwLFxuICAgICAgICBkcmFnU3RhcnRZOiAwLFxuICAgICAgICBpc0F1dG9wbGF5UGF1c2VkOiBmYWxzZSxcbiAgICAgICAgaXNNb3VzZURvd246IGZhbHNlLFxuICAgICAgICBzbGlkZXM6IFtdLFxuICAgICAgICBzbGlkZXNDbG9uZWRBZnRlcjogW10sXG4gICAgICAgIHNsaWRlc0Nsb25lZEJlZm9yZTogW10sXG4gICAgICAgIGlzU1NSOiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpLFxuICAgICAgICB0cmFuc2l0aW9uRGVsYXk6IDAsXG4gICAgICAgIHRyYW5zbGF0ZVg6IDAsXG4gICAgICAgIHdpZHRoV2luZG93OiAwLFxuICAgICAgICB3aWR0aENvbnRhaW5lcjogMFxuICAgICAgfVxuICAgIH0sXG5cbiAgICBjb21wdXRlZDoge1xuICAgICAgYnJlYWtwb2ludHM6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuICghdGhpcy5pbml0aWFsU2V0dGluZ3MucmVzcG9uc2l2ZSkgPyBbXSA6IHRoaXMuaW5pdGlhbFNldHRpbmdzLnJlc3BvbnNpdmUubWFwKGl0ZW0gPT4gaXRlbS5icmVha3BvaW50KVxuICAgICAgfSxcblxuICAgICAgY2FuR29Ub1ByZXY6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLnNldHRpbmdzLmluZmluaXRlIHx8IHRoaXMuY3VycmVudFNsaWRlID4gMClcbiAgICAgIH0sXG5cbiAgICAgIGNhbkdvVG9OZXh0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiAodGhpcy5zZXR0aW5ncy5pbmZpbml0ZSB8fCB0aGlzLmN1cnJlbnRTbGlkZSA8IHRoaXMuY291bnRTbGlkZXMgLSAxKVxuICAgICAgfSxcblxuICAgICAgY291bnRTbGlkZXM6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLmlzU1NSKSA/IHRoaXMuaHRtbENvbGxlY3Rpb25Ub0FycmF5KHRoaXMuJHNsb3RzLmRlZmF1bHQpLmxlbmd0aCA6IHRoaXMuc2xpZGVzLmxlbmd0aFxuICAgICAgfSxcblxuICAgICAgY291bnRTbGlkZXNBbGw6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2xpZGVzQWxsLmxlbmd0aFxuICAgICAgfSxcblxuICAgICAgY3VycmVudEJyZWFrcG9pbnQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY29uc3QgYnJlYWtwb2ludHMgPSB0aGlzLmJyZWFrcG9pbnRzLm1hcChpdGVtID0+IGl0ZW0pLnJldmVyc2UoKVxuICAgICAgICByZXR1cm4gKHRoaXMuaW5pdGlhbFNldHRpbmdzLm1vYmlsZUZpcnN0KSA/IGJyZWFrcG9pbnRzLmZpbmQoaXRlbSA9PiBpdGVtIDwgdGhpcy53aWR0aFdpbmRvdykgfHwgMCA6IGJyZWFrcG9pbnRzLmZpbmQoaXRlbSA9PiBpdGVtID4gdGhpcy53aWR0aFdpbmRvdykgfHwgbnVsbFxuICAgICAgfSxcblxuICAgICAgbWFyZ2luWDogZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAodGhpcy5zZXR0aW5ncy51bmFnaWxlKSB7XG4gICAgICAgICAgcmV0dXJuIDBcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBtYXJnaW5YID0gKHRoaXMuc2xpZGVzQ2xvbmVkKSA/IHRoaXMuY291bnRTbGlkZXMgKiB0aGlzLndpZHRoU2xpZGUgOiAwXG5cbiAgICAgICAgLy8gQ2VudGVyIG1vZGUgbWFyZ2luXG4gICAgICAgIGlmICh0aGlzLnNldHRpbmdzLmNlbnRlck1vZGUpIHtcbiAgICAgICAgICBtYXJnaW5YIC09IChNYXRoLmZsb29yKHRoaXMuc2V0dGluZ3Muc2xpZGVzVG9TaG93IC8gMikgLSArKHRoaXMuc2V0dGluZ3Muc2xpZGVzVG9TaG93ICUgMiA9PT0gMCkpICogdGhpcy53aWR0aFNsaWRlXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gKHRoaXMuc2V0dGluZ3MucnRsKSA/IG1hcmdpblggOiAtMSAqIG1hcmdpblhcbiAgICAgIH0sXG5cbiAgICAgIHNsaWRlc0Nsb25lZDogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gKCF0aGlzLnNldHRpbmdzLnVuYWdpbGUgJiYgIXRoaXMuc2V0dGluZ3MuZmFkZSAmJiB0aGlzLnNldHRpbmdzLmluZmluaXRlKVxuICAgICAgfSxcblxuICAgICAgc2xpZGVzQWxsOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiAodGhpcy5zbGlkZXNDbG9uZWQpID8gWy4uLnRoaXMuc2xpZGVzQ2xvbmVkQmVmb3JlLCAuLi50aGlzLnNsaWRlcywgLi4udGhpcy5zbGlkZXNDbG9uZWRBZnRlcl0gOiB0aGlzLnNsaWRlc1xuICAgICAgfSxcblxuICAgICAgd2lkdGhTbGlkZTogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gKCF0aGlzLnNldHRpbmdzLnVuYWdpbGUpID8gdGhpcy53aWR0aENvbnRhaW5lciAvIHRoaXMuc2V0dGluZ3Muc2xpZGVzVG9TaG93IDogJ2F1dG8nXG4gICAgICB9XG4gICAgfSxcblxuICAgIG1vdW50ZWQgKCkge1xuICAgICAgLy8gV2luZG93cyByZXNpemUgbGlzdGVuZXJcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLmdldFdpZHRoKVxuXG4gICAgICAvLyBNb3VzZSBhbmQgdG91Y2ggZXZlbnRzXG4gICAgICB0aGlzLiRyZWZzLnRyYWNrLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCB0aGlzLmhhbmRsZU1vdXNlRG93bilcbiAgICAgIHRoaXMuJHJlZnMudHJhY2suYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hlbmQnLCB0aGlzLmhhbmRsZU1vdXNlVXApXG4gICAgICB0aGlzLiRyZWZzLnRyYWNrLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNobW92ZScsIHRoaXMuaGFuZGxlTW91c2VNb3ZlKVxuICAgICAgdGhpcy4kcmVmcy50cmFjay5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCB0aGlzLmhhbmRsZU1vdXNlRG93bilcbiAgICAgIHRoaXMuJHJlZnMudHJhY2suYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIHRoaXMuaGFuZGxlTW91c2VVcClcbiAgICAgIHRoaXMuJHJlZnMudHJhY2suYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgdGhpcy5oYW5kbGVNb3VzZU1vdmUpXG5cbiAgICAgIC8vIEluaXRcbiAgICAgIHRoaXMuaXNTU1IgPSBmYWxzZVxuICAgICAgdGhpcy5yZWxvYWQoKVxuICAgIH0sXG5cbiAgICAvLyBWdWUgM1xuICAgIGJlZm9yZVVubW91bnQgKCkge1xuICAgICAgdGhpcy5kZXN0cm95KClcbiAgICB9LFxuXG4gICAgbWV0aG9kczoge1xuICAgICAgZGVzdHJveSAoKSB7XG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLmdldFdpZHRoKVxuXG4gICAgICAgIHRoaXMuJHJlZnMudHJhY2sucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIHRoaXMuaGFuZGxlTW91c2VEb3duKVxuICAgICAgICB0aGlzLiRyZWZzLnRyYWNrLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgdGhpcy5oYW5kbGVNb3VzZVVwKVxuICAgICAgICB0aGlzLiRyZWZzLnRyYWNrLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RvdWNobW92ZScsIHRoaXMuaGFuZGxlTW91c2VNb3ZlKVxuICAgICAgICB0aGlzLiRyZWZzLnRyYWNrLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIHRoaXMuaGFuZGxlTW91c2VEb3duKVxuICAgICAgICB0aGlzLiRyZWZzLnRyYWNrLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCB0aGlzLmhhbmRsZU1vdXNlVXApXG4gICAgICAgIHRoaXMuJHJlZnMudHJhY2sucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgdGhpcy5oYW5kbGVNb3VzZU1vdmUpXG5cbiAgICAgICAgdGhpcy5kaXNhYmxlQXV0b1BsYXkoKVxuICAgICAgfSxcblxuICAgICAgLy8gUmV0dXJuIGN1cnJlbnQgYnJlYWtwb2ludFxuICAgICAgZ2V0Q3VycmVudEJyZWFrcG9pbnQgKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50QnJlYWtwb2ludFxuICAgICAgfSxcblxuICAgICAgLy8gUmV0dXJuIHNldHRpbmdzIGZvciBjdXJyZW50IGJyZWFrcG9pbnRcbiAgICAgIGdldEN1cnJlbnRTZXR0aW5ncyAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNldHRpbmdzXG4gICAgICB9LFxuXG4gICAgICAvLyBSZXR1cm4gY3VycmVudCBzbGlkZSBpbmRleFxuICAgICAgZ2V0Q3VycmVudFNsaWRlICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudFNsaWRlXG4gICAgICB9LFxuXG4gICAgICAvLyBSZXR1cm4gaW5pdGlhbCBzZXR0aW5nc1xuICAgICAgZ2V0SW5pdGlhbFNldHRpbmdzICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5pdGlhbFNldHRpbmdzXG4gICAgICB9LFxuXG4gICAgICAvLyBHbyB0byBzbGlkZVxuICAgICAgZ29UbyAobiwgdHJhbnNpdGlvbiA9IHRydWUsIGFzTmF2ID0gZmFsc2UpIHtcbiAgICAgICAgLy8gQnJlYWsgZ29UbygpIGlmIHVuYWdpbGUgaXMgYWN0aXZlXG4gICAgICAgIGlmICh0aGlzLnNldHRpbmdzLnVuYWdpbGUpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghYXNOYXYpIHtcbiAgICAgICAgICB0aGlzLnNldHRpbmdzLmFzTmF2Rm9yLmZvckVhY2goY2Fyb3VzZWwgPT4ge1xuICAgICAgICAgICAgaWYgKGNhcm91c2VsKSB7XG4gICAgICAgICAgICAgIGNhcm91c2VsLmdvVG8obiwgdHJhbnNpdGlvbiwgdHJ1ZSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHNsaWRlTmV4dFJlYWwgPSBuXG5cbiAgICAgICAgaWYgKHRyYW5zaXRpb24pIHtcbiAgICAgICAgICBpZiAodGhpcy5zZXR0aW5ncy5pbmZpbml0ZSAmJiBuIDwgMCkge1xuICAgICAgICAgICAgc2xpZGVOZXh0UmVhbCA9IHRoaXMuY291bnRTbGlkZXMgLSAxXG4gICAgICAgICAgfSBlbHNlIGlmIChuID49IHRoaXMuY291bnRTbGlkZXMpIHtcbiAgICAgICAgICAgIHNsaWRlTmV4dFJlYWwgPSAwXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGhpcy4kZW1pdCgnYmVmb3JlLWNoYW5nZScsIHsgY3VycmVudFNsaWRlOiB0aGlzLmN1cnJlbnRTbGlkZSwgbmV4dFNsaWRlOiBzbGlkZU5leHRSZWFsIH0pXG5cbiAgICAgICAgICB0aGlzLmN1cnJlbnRTbGlkZSA9IHNsaWRlTmV4dFJlYWxcblxuICAgICAgICAgIGlmIChuICE9PSBzbGlkZU5leHRSZWFsKSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5nb1RvKHNsaWRlTmV4dFJlYWwsIGZhbHNlKVxuICAgICAgICAgICAgfSwgdGhpcy5zZXR0aW5ncy5zcGVlZClcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB0cmFuc2xhdGVYID0gKCF0aGlzLnNldHRpbmdzLmZhZGUpID8gbiAqIHRoaXMud2lkdGhTbGlkZSAqIHRoaXMuc2V0dGluZ3Muc2xpZGVzVG9TY3JvbGwgOiAwXG4gICAgICAgIHRoaXMudHJhbnNpdGlvbkRlbGF5ID0gKHRyYW5zaXRpb24pID8gdGhpcy5zcGVlZCA6IDBcblxuICAgICAgICBpZiAodGhpcy5pbmZpbml0ZSB8fCAodGhpcy5jdXJyZW50U2xpZGUgKyB0aGlzLnNsaWRlc1RvU2hvdyA8PSB0aGlzLmNvdW50U2xpZGVzKSkge1xuICAgICAgICAgIHRoaXMudHJhbnNsYXRlWCA9ICh0aGlzLnNldHRpbmdzLnJ0bCkgPyB0cmFuc2xhdGVYIDogLTEgKiB0cmFuc2xhdGVYXG4gICAgICAgIH1cbiAgICAgIH0sXG5cbiAgICAgIC8vIEdvIHRvIG5leHQgc2xpZGVcbiAgICAgIGdvVG9OZXh0ICgpIHtcbiAgICAgICAgaWYgKHRoaXMuY2FuR29Ub05leHQpIHtcbiAgICAgICAgICB0aGlzLmdvVG8odGhpcy5jdXJyZW50U2xpZGUgKyAxKVxuICAgICAgICB9XG4gICAgICB9LFxuXG4gICAgICAvLyBHbyB0byBwcmV2aW91cyBzbGlkZVxuICAgICAgZ29Ub1ByZXYgKCkge1xuICAgICAgICBpZiAodGhpcy5jYW5Hb1RvUHJldikge1xuICAgICAgICAgIHRoaXMuZ29Ubyh0aGlzLmN1cnJlbnRTbGlkZSAtIDEpXG4gICAgICAgIH1cbiAgICAgIH0sXG5cbiAgICAgIC8vIFJlbG9hZCBjYXJvdXNlbFxuICAgICAgcmVsb2FkICgpIHtcbiAgICAgICAgdGhpcy5nZXRXaWR0aCgpXG4gICAgICAgIHRoaXMucHJlcGFyZVNsaWRlcygpXG4gICAgICAgIHRoaXMucHJlcGFyZUNhcm91c2VsKClcbiAgICAgICAgdGhpcy50b2dnbGVGYWRlKClcbiAgICAgICAgdGhpcy50b2dnbGVBdXRvUGxheSgpXG4gICAgICB9XG4gICAgfVxuICB9XG48L3NjcmlwdD5cblxuPHN0eWxlPlxuICAuYWdpbGUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuXG4gIC5hZ2lsZS0tc3NyIC5hZ2lsZV9fc2xpZGVzLS1jbG9uZWQge1xuICAgIGRpc3BsYXk6IG5vbmVcbiAgfVxuXG4gIC5hZ2lsZS0tc3NyIC5hZ2lsZV9fc2xpZGVzID4gKiB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aWR0aDogMFxuICB9XG5cbiAgLmFnaWxlLS1zc3IgLmFnaWxlX19zbGlkZXMgPiAqOmZpcnN0LWNoaWxkIHtcbiAgICB3aWR0aDogMTAwJVxuICB9XG5cbiAgLmFnaWxlLS1ydGwgLmFnaWxlX190cmFjayxcbiAgLmFnaWxlLS1ydGwgLmFnaWxlX19zbGlkZXMsXG4gIC5hZ2lsZS0tcnRsIC5hZ2lsZV9fYWN0aW9ucyxcbiAgLmFnaWxlLS1ydGwgLmFnaWxlX19kb3RzIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG4gIH1cblxuICAuYWdpbGU6Zm9jdXMsIC5hZ2lsZTphY3RpdmUsIC5hZ2lsZSAqOmZvY3VzLCAuYWdpbGUgKjphY3RpdmUge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gIH1cblxuICAuYWdpbGVfX2xpc3Qge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLmFnaWxlX190cmFjayB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICB9XG5cbiAgLmFnaWxlX19hY3Rpb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgfVxuXG4gIC5hZ2lsZS0tbm8tbmF2LWJ1dHRvbnMgLmFnaWxlX19hY3Rpb25zIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgfVxuXG4gIC5hZ2lsZV9fc2xpZGVzIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgZmxleC1zaHJpbms6IHVuc2V0O1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgfVxuXG4gIC5hZ2lsZS0tZGlzYWJsZWQgLmFnaWxlX19zbGlkZXMge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLmFnaWxlX19zbGlkZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZmxleC1ncm93OiAxO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICB9XG5cbiAgLmFnaWxlX19zbGlkZSxcbiAgLmFnaWxlX19zbGlkZSAqIHtcbiAgICAtd2Via2l0LXVzZXItZHJhZzogbm9uZTtcbiAgfVxuXG4gIC5hZ2lsZS0tZmFkZSAuYWdpbGVfX3NsaWRlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAwO1xuICB9XG5cbiAgLmFnaWxlLS1mYWRlIC5hZ2lsZV9fc2xpZGUtLWFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB6LWluZGV4OiAyO1xuICB9XG5cbiAgLmFnaWxlLS1mYWRlIC5hZ2lsZV9fc2xpZGUtLWV4cGlyaW5nIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDBzO1xuICAgIHotaW5kZXg6IDE7XG4gIH1cblxuICAuYWdpbGVfX25hdi1idXR0b25bZGlzYWJsZWRdIHtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gIH1cblxuICAuYWdpbGVfX2RvdHMge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgfVxuXG4gIC5hZ2lsZV9fZG90IGJ1dHRvbiB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMDtcbiAgICBsaW5lLWhlaWdodDogMDtcbiAgfVxuPC9zdHlsZT5cbiIsIjx0ZW1wbGF0ZT5cbiAgICA8YWdpbGVcbiAgICAgICAgOmluZmluaXRlPVwidHJ1ZVwiXG4gICAgICAgIDphdXRvcGxheT1cInRydWVcIlxuICAgICAgICA6YXV0b3BsYXlTcGVlZD1cIjMwMDBcIlxuICAgICAgICA6bmF2QnV0dG9ucz1cImZhbHNlXCJcbiAgICAgICAgOnNwZWVkPVwiODAwXCJcbiAgICAgICAgOmNlbnRlck1vZGU9XCJ0cnVlXCJcbiAgICAgICAgOm9wdGlvbnM9XCJteU9wdGlvbnNcIlxuICAgICAgICA6c2xpZGVzVG9TaG93PVwiMlwiXG4gICAgICAgIDp0aW1pbmc9XCInZWFzZS1pbi1vdXQnXCJcbiAgICA+XG4gICAgICAgIDxkaXYgdi1mb3I9XCIoY2FwdGlvbiwgaW5kZXgpIGluIGNhcHRpb25zXCIgOmtleT1cImluZGV4XCI+XG4gICAgICAgICAgICA8aW1nIGNsYXNzPVwic2xpZGUgcHgtNiBteC1hdXRvXCIgOnNyYz1cImNhcHRpb25cIj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9hZ2lsZT5cbjwvdGVtcGxhdGU+XG5cbjxzY3JpcHQ+XG5pbXBvcnQgeyBWdWVBZ2lsZSB9IGZyb20gJ3Z1ZS1hZ2lsZSdcblxuZXhwb3J0IGRlZmF1bHQge1xuICAgIG5hbWU6ICdMb2dvU2xpZGVyJyxcbiAgICBjb21wb25lbnRzOiB7XG4gICAgICAgIGFnaWxlOiBWdWVBZ2lsZSxcbiAgICB9LFxuICAgIGRhdGEoKXtcbiAgICAgICAgcmV0dXJuIHsgXG4gICAgICAgICAgICBteU9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICByZXNwb25zaXZlOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrcG9pbnQ6IDYwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldHRpbmdzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xpZGVzVG9TaG93OjNcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrcG9pbnQ6IDEwMjMsXG4gICAgICAgICAgICAgICAgICAgICAgICBzZXR0aW5nczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsaWRlc1RvU2hvdzo0XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LFxuICAgIHByb3BzOiB7XG4gICAgICAgIGltYWdlczoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgZGVmYXVsdDogJycsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBjb21wdXRlZDoge1xuICAgICAgICBjYXB0aW9ucygpIHtcbiAgICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKHRoaXMuaW1hZ2VzKVxuICAgICAgICB9LFxuICAgIH0sXG59XG48L3NjcmlwdD5cblxuPHN0eWxlIHNjb3BlZD5cbi5zbGlkZSB7XG4gICAgbWF4LWhlaWdodDogMjAwcHg7XG4gICAgd2lkdGg6IGF1dG87XG59XG48L3N0eWxlPlxuIiwiPHRlbXBsYXRlPlxuICAgIDxhZ2lsZVxuICAgICAgICA6aW5maW5pdGU9XCJ0cnVlXCJcbiAgICAgICAgOmF1dG9wbGF5PVwidHJ1ZVwiXG4gICAgICAgIDpuYXZCdXR0b25zPVwiZmFsc2VcIlxuICAgICAgICA6c3BlZWQ9XCI4MDBcIlxuICAgICAgICA6Y2VudGVyTW9kZT1cInRydWVcIlxuICAgICAgICA6b3B0aW9ucz1cIm15T3B0aW9uc1wiXG4gICAgICAgIDpzbGlkZXNUb1Nob3c9XCIxXCJcbiAgICAgICAgOnRpbWluZz1cIidlYXNlLWluLW91dCdcIlxuICAgICAgICA6ZG90cz1cInRydWVcIlxuICAgID5cbiAgICAgICAgPGRpdiB2LWZvcj1cIihjYXB0aW9uLCBpbmRleCkgaW4gY2FwdGlvbnNcIiA6a2V5PVwiaW5kZXhcIj5cbiAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJzbGlkZSBweC02IG14LWF1dG9cIiA6c3JjPVwiY2FwdGlvblwiPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2FnaWxlPlxuPC90ZW1wbGF0ZT5cblxuPHNjcmlwdD5cbmltcG9ydCB7IFZ1ZUFnaWxlIH0gZnJvbSAndnVlLWFnaWxlJ1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gICAgbmFtZTogJ0Nhcm91c2VsJyxcbiAgICBjb21wb25lbnRzOiB7XG4gICAgICAgIGFnaWxlOiBWdWVBZ2lsZSxcbiAgICB9LFxuICAgIGRhdGEoKXtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG15T3B0aW9uczoge1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSxcbiAgICBwcm9wczoge1xuICAgICAgICBpbWFnZXM6IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIGRlZmF1bHQ6ICcnLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgY29tcHV0ZWQ6IHtcbiAgICAgICAgY2FwdGlvbnMoKSB7XG4gICAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZSh0aGlzLmltYWdlcylcbiAgICAgICAgfSxcbiAgICB9LFxufVxuPC9zY3JpcHQ+XG5cbjxzdHlsZSBzY29wZWQ+XG4uc2xpZGUge1xuICAgIC8qIG1heC1oZWlnaHQ6IDIwMHB4OyAqL1xuICAgIHdpZHRoOiBhdXRvO1xufVxuXG46Z2xvYmFsKC5jYXJvdXNlbC1jdXN0b20gLmFnaWxlX19kb3QgYnV0dG9uKXtcbiAgICB3aWR0aDogMTBweDtcbiAgICBoZWlnaHQ6IDEwcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjpibGFjaztcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgbWFyZ2luOiAxMHB4IDRweCAwIDJweDtcbn1cblxuOmdsb2JhbCguY2Fyb3VzZWwtY3VzdG9tIC5hZ2lsZV9fZG90LS1jdXJyZW50IGJ1dHRvbil7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZDQwMDtcbn1cbjpnbG9iYWwoLmNhcm91c2VsLWN1c3RvbSAuYWdpbGVfX2RvdCBidXR0b246aG92ZXIpe1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmU5N2I7XG59XG5cbjwvc3R5bGU+XG4iLCI8dGVtcGxhdGU+XG4gICAgPGFnaWxlXG4gICAgICAgIDppbmZpbml0ZT1cInRydWVcIlxuICAgICAgICA6YXV0b3BsYXk9XCJ0cnVlXCJcbiAgICAgICAgOm5hdkJ1dHRvbnM9XCJmYWxzZVwiXG4gICAgICAgIDpzcGVlZD1cIjEwMDBcIlxuICAgICAgICA6Y2VudGVyTW9kZT1cInRydWVcIlxuICAgICAgICA6b3B0aW9ucz1cIm15T3B0aW9uc1wiXG4gICAgICAgIDpzbGlkZXNUb1Nob3c9XCIxXCJcbiAgICAgICAgOnRpbWluZz1cIidlYXNlLWluLW91dCdcIlxuICAgICAgICA6ZG90cz1cImZhbHNlXCJcbiAgICA+XG4gICAgXG4gICAgICAgIDxkaXYgdi1mb3I9XCIoY2FwdGlvbiwgaW5kZXgpIGluIGNhcHRpb25zXCIgOmtleT1cImluZGV4XCIgY2xhc3M9XCJmbGV4IGZsZXgtY29sICBoLWZ1bGwgcm91bmRlZC0zeGwgIFwiPlxuICAgICAgICAgICAgPGEgdi1pZj1cImNhcHRpb24ucmVuZGVyX2xpbmsgIT0gJydcIiA6aHJlZj1cImNhcHRpb24ucmVuZGVyX2xpbmtcIiA6dGFyZ2V0PVwiY2FwdGlvbi5yZW5kZXJfbGlua190YXJnZXRcIiBjbGFzcz1cImgtZnVsbFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoLTEvMiBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciB3LWZ1bGxcIj5cbiAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiIG9iamVjdC1jb3ZlciBoLWZ1bGwgdy1mdWxsIHJvdW5kZWQtM3hsXCIgOnNyYz1cImNhcHRpb24uaW1hZ2VcIj5cbiAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIiBoLTEvMiBmbGV4IGZsZXgtY29sXCI+XG4gICAgICAgICAgICA8aDMgY2xhc3M9XCJwLTQgYmxvZ3RleHQgZm9udC1ib2xkIHRleHQtY2VudGVyXCI+e3tjYXB0aW9uLmhlYWRlcn19PC9oMz5cbiAgICAgICAgICAgIDxkaXYgdi1odG1sPVwiY2FwdGlvbi5ib2R5dGV4dFwiIGNsYXNzPVwicC00ICBncm93IGgtZnVsbCByb3VuZGVkLTN4bCAgdGV4dC1jZW50ZXJcIj5cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICBcbiAgICAgICAgPC9kaXY+XG4gXG4gICAgICAgXG4gICAgPC9hZ2lsZT5cblxuPC90ZW1wbGF0ZT5cblxuPHNjcmlwdD5cbmltcG9ydCB7IFZ1ZUFnaWxlIH0gZnJvbSAndnVlLWFnaWxlJ1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gICAgbmFtZTogJ0FydGljbGVDYXJvdXNlbCcsXG4gICAgY29tcG9uZW50czoge1xuICAgICAgICBhZ2lsZTogVnVlQWdpbGUsXG4gICAgfSxcbiAgICBkYXRhKCl7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBteU9wdGlvbnM6IHtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgcmVjb3Jkczoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgZGVmYXVsdDogJycsXG4gICAgICAgIH0sIFxuICAgICAgICBcbiAgICB9LFxuICAgIGNvbXB1dGVkOiB7XG4gICAgICAgIGNhcHRpb25zKCkge1xuICAgICAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UodGhpcy5yZWNvcmRzKVxuICAgICAgICB9LFxuICAgICAgIFxuICAgIH0sXG59XG48L3NjcmlwdD5cblxuPHN0eWxlIHNjb3BlZD5cbi5zbGlkZSB7XG4gICAgLyogbWF4LWhlaWdodDogMjAwcHg7ICovXG4gICAgd2lkdGg6IGF1dG87XG59XG5cbjpnbG9iYWwoLmNhcm91c2VsLWN1c3RvbSAuYWdpbGVfX2RvdCBidXR0b24pe1xuICAgIHdpZHRoOiAxMHB4O1xuICAgIGhlaWdodDogMTBweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOmJsYWNrO1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBtYXJnaW46IDEwcHggNHB4IDAgMnB4O1xufVxuXG46Z2xvYmFsKC5jYXJvdXNlbC1jdXN0b20gLmFnaWxlX19kb3QtLWN1cnJlbnQgYnV0dG9uKXtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZkNDAwO1xufVxuOmdsb2JhbCguY2Fyb3VzZWwtY3VzdG9tIC5hZ2lsZV9fZG90IGJ1dHRvbjpob3Zlcil7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZTk3Yjtcbn1cblxuPC9zdHlsZT5cblxuIiwiPHRlbXBsYXRlPlxuICAgIDxkaXYgY2xhc3M9XCJ2aXNpYmxlIG1kOmhpZGRlbiAgYmctYmVpZ2Ugcm91bmRlZC0zeGxcIj5cbiAgICAgICAgPGFnaWxlXG4gICAgICAgIDppbmZpbml0ZT1cInRydWVcIlxuICAgICAgICA6YXV0b3BsYXk9XCJ0cnVlXCJcbiAgICAgICAgOm5hdkJ1dHRvbnM9XCJmYWxzZVwiXG4gICAgICAgIDpzcGVlZD1cIjEwMDBcIlxuICAgICAgICA6Y2VudGVyTW9kZT1cInRydWVcIlxuICAgICAgICA6b3B0aW9ucz1cIm15T3B0aW9uc1wiXG4gICAgICAgIDpzbGlkZXNUb1Nob3c9XCIxXCJcbiAgICAgICAgOnRpbWluZz1cIidlYXNlLWluLW91dCdcIlxuICAgICAgICA6ZG90cz1cImZhbHNlXCJcbiAgICA+XG4gICAgXG4gICAgICAgIDxkaXYgdi1mb3I9XCIoY2FwdGlvbiwgaW5kZXgpIGluIGNhcHRpb25zXCIgOmtleT1cImluZGV4XCIgY2xhc3M9XCJ0ZXh0LWNlbnRlciBmbGV4IGZsZXgtY29sIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gYWxpZ24tY2VudGVyIHctZnVsbCBwLTZcIj5cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgPGltZyBjbGFzcz1cInNsaWRlIHB4LTYgbXgtYXV0byBvYmplY3QtY29udGFpbiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoLTY0IG1kOmgtMzIgbGc6aC00MCAgIHctZnVsbCBwYi00IGxhenkgXCIgOnNyYz1cImNhcHRpb24uaW1hZ2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgXG4gICAgICAgXG4gICAgICAgICAgIFxuICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInBiLTQgZm9udC1icmFkZm9yZCBmb250LXNlbWlib2xkIG10LTAgXCI+e3tjYXB0aW9uLmhlYWRlcn19PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIHYtaWY9XCJjYXB0aW9uLnJlbmRlcl9saW5rXCIgOmhyZWY9XCJjYXB0aW9uLnJlbmRlcl9saW5rXCIgOnRhcmdldD1cImNhcHRpb24ucmVuZGVyX2xpbmtfdGFyZ2V0XCIgY2xhc3M9XCJ3LWZ1bGwgIHRleHQtY2VudGVyIFwiID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gdi1pZj1cImNhcHRpb24udGl0bGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJiZy1wcmltYXJ5IGZvbnQtc2VtaWJvbGQgIHAtMlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LWJsYWNrIGhvdmVyOmJnLWJsYWNrIGhvdmVyOnRleHQtd2hpdGUgdXBwZXJjYXNlIHtkYXRhLmNhbGxfdG9fYWN0aW9uX2J1dHRvbl9zaXplfSB3LTEwLzEyIHJvdW5kZWQtZnVsbCBicmVhay13b3JkcyBteC1hdXRvIGlubGluZS1ibG9jayBtdC0yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBjYXB0aW9uLnRpdGxlIH19IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIFxuICAgICAgICBcbiAgICA8L2FnaWxlPlxuICAgIDwvZGl2PlxuICAgIFxuXG48L3RlbXBsYXRlPlxuXG48c2NyaXB0PlxuaW1wb3J0IHsgVnVlQWdpbGUgfSBmcm9tICd2dWUtYWdpbGUnXG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgICBuYW1lOiAnRGlzdHVyYmVyQ2Fyb3VzZWwnLFxuICAgIGNvbXBvbmVudHM6IHtcbiAgICAgICAgYWdpbGU6IFZ1ZUFnaWxlLFxuICAgIH0sXG4gICAgZGF0YSgpe1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbXlPcHRpb25zOiB7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LFxuICAgIHByb3BzOiB7XG4gICAgICAgIHJlY29yZHM6IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIGRlZmF1bHQ6ICcnLFxuICAgICAgICB9LFxuICAgICAgXG4gICAgfSxcbiAgICBjb21wdXRlZDoge1xuICAgICAgICBjYXB0aW9ucygpIHtcbiAgICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKHRoaXMucmVjb3JkcylcbiAgICAgICAgfSxcbiAgICB9LFxufVxuPC9zY3JpcHQ+XG5cbjxzdHlsZSBzY29wZWQ+XG4uc2xpZGUge1xuICAgIC8qIG1heC1oZWlnaHQ6IDIwMHB4OyAqL1xuICAgIHdpZHRoOiBhdXRvO1xufVxuXG46Z2xvYmFsKC5jYXJvdXNlbC1jdXN0b20gLmFnaWxlX19kb3QgYnV0dG9uKXtcbiAgICB3aWR0aDogMTBweDtcbiAgICBoZWlnaHQ6IDEwcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjpibGFjaztcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgbWFyZ2luOiAxMHB4IDRweCAwIDJweDtcbn1cblxuOmdsb2JhbCguY2Fyb3VzZWwtY3VzdG9tIC5hZ2lsZV9fZG90LS1jdXJyZW50IGJ1dHRvbil7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZDQwMDtcbn1cbjpnbG9iYWwoLmNhcm91c2VsLWN1c3RvbSAuYWdpbGVfX2RvdCBidXR0b246aG92ZXIpe1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmU5N2I7XG59XG5cbjwvc3R5bGU+XG5cbiIsIjx0ZW1wbGF0ZT5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBqdXN0aWZ5LWNlbnRlciAgcC02IFwiPlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBsZzptLTAgdy1mdWxsIGxnOnctMS8yIHNlbGYtY2VudGVyIGp1c3RpZnktY2VudGVyIG10LTggXCI+XG4gICAgICAgICAgICAgIDxidXR0b24gQGNsaWNrPVwidGFiID0gMVwiIGNsYXNzPVwidy0yLzUgbWQ6dy0xLzMgbWQ6dGV4dC1sZyBoLTggYm9yZGVyIGJvcmRlci1iLTAgIHJvdW5kZWQtdGwtbGcgYmctZ3JheS01MCBhY3RpdmU6YmctYmxhY2sgYm9yZGVyLXNsYXRlLTIwMCBhY3RpdmU6dGV4dC13aGl0ZSBob3ZlcjpiZy1zbGF0ZS0xMDBcIiA6Y2xhc3M9XCJ7dGFic2VsZWN0ZWQ6IHRhYiA9PSAxfVwiPnt7YnVsbGV0c3dpdGNoZGF0YVswXS5kYXRhLmhlYWRlcn19PC9idXR0b24+XG4gICAgICAgICAgICAgIDxidXR0b24gQGNsaWNrPVwidGFiID0gMlwiIGNsYXNzPVwidy0yLzUgbWQ6dy0xLzMgbWQ6dGV4dC1sZyBoLTggYm9yZGVyIGJvcmRlci1iLTAgcm91bmRlZC10ci1sZyBiZy1ncmF5LTUwIGFjdGl2ZTpiZy1ibGFjayBib3JkZXItc2xhdGUtMjAwIGFjdGl2ZTp0ZXh0LXdoaXRlIGhvdmVyOmJnLXNsYXRlLTEwMFwiIDpjbGFzcz1cInt0YWJzZWxlY3RlZDogdGFiID09IDJ9XCI+e3tidWxsZXRzd2l0Y2hkYXRhWzFdLmRhdGEuaGVhZGVyfX08L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IHctZnVsbCBsZzp3LTEvMiBzZWxmLWNlbnRlciBqdXN0aWZ5LWNlbnRlciAgXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGp1c3RpZnktYmV0d2VlbiB3LWZ1bGwgaC1mdWxsICBib3JkZXIgcm91bmRlZC0zeGwgYmctZ3JheS01MCBib3JkZXItc2xhdGUtMjAwIFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiB2LXNob3c9XCJ0YWIgPT0gMVwiIGNsYXNzPVwiZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIgXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTQgbXQtNiBweC00XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwbC03IG1kOnRleHQtbGdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7YnVsbGV0c3dpdGNoZGF0YVswXS5kYXRhLnRpdGxlfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwiYnVsbGV0bGlzdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJtZDp0ZXh0LXhsXHRncmlkIGdhcC0yIGdyaWQtY29scy0xMlwiIHYtZm9yPVwiKHRleHQsIGluZGV4KSBpbiBidWxsZXRzd2l0Y2hkYXRhWzBdLnRleHRfaXRlbXNcIiA6a2V5PVwiaW5kZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz1cImp1c3RpZnktc2VsZi1lbmRcIiBzdHlsZT1cIndpZHRoOjI0cHg7IGhlaWdodDoyNHB4XCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHhtbG5zOnhsaW5rPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiIHdpZHRoPVwiMTI4MFwiIHpvb21BbmRQYW49XCJtYWduaWZ5XCIgdmlld0JveD1cIjAgMCA5NjAgODA5Ljk5OTk5M1wiIGhlaWdodD1cIjEwODBcIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPVwieE1pZFlNaWQgbWVldFwiIHZlcnNpb249XCIxLjBcIj48ZGVmcz48Y2xpcFBhdGggaWQ9XCJjOGZiOWVkOTUwXCI+PHBhdGggZD1cIk0gODMuNDcyNjU2IDguNDcyNjU2IEwgODc2LjIyMjY1NiA4LjQ3MjY1NiBMIDg3Ni4yMjI2NTYgODAxLjIyMjY1NiBMIDgzLjQ3MjY1NiA4MDEuMjIyNjU2IFogTSA4My40NzI2NTYgOC40NzI2NTYgXCIgY2xpcC1ydWxlPVwibm9uemVyb1wiLz48L2NsaXBQYXRoPjwvZGVmcz48ZyBjbGlwLXBhdGg9XCJ1cmwoI2M4ZmI5ZWQ5NTApXCI+PHBhdGggZmlsbD1cIiMzOWI1NGFcIiBkPVwiTSA0NzkuODQ3NjU2IDguNDcyNjU2IEMgMjYwLjk1NzAzMSA4LjQ3MjY1NiA4My40NzI2NTYgMTg1Ljk1NzAzMSA4My40NzI2NTYgNDA0Ljg0NzY1NiBDIDgzLjQ3MjY1NiA2MjMuNzM4MjgxIDI2MC45NTcwMzEgODAxLjIyMjY1NiA0NzkuODQ3NjU2IDgwMS4yMjI2NTYgQyA2OTguNzM4MjgxIDgwMS4yMjI2NTYgODc2LjIyMjY1NiA2MjMuNzM4MjgxIDg3Ni4yMjI2NTYgNDA0Ljg0NzY1NiBDIDg3Ni4yMjI2NTYgMTg1Ljk1NzAzMSA2OTguNzM4MjgxIDguNDcyNjU2IDQ3OS44NDc2NTYgOC40NzI2NTYgWiBNIDcwMi45MjU3ODEgMzQzLjY3MTg3NSBMIDQ3MS4wMDc4MTIgNTc1LjU4NTkzOCBDIDQ1OS44NDM3NSA1ODYuNzUzOTA2IDQ0NC43MjI2NTYgNTkzLjAzMTI1IDQyOC45MDYyNSA1OTMuMDMxMjUgQyA0MTMuMzIwMzEyIDU5My4wMzEyNSAzOTguMTk5MjE5IDU4Ni43NTM5MDYgMzg3LjAzNTE1NiA1NzUuNTg1OTM4IEwgMjcxLjE5MTQwNiA0NTkuNzQ2MDk0IEMgMjQ3LjkyOTY4OCA0MzYuNDg0Mzc1IDI0Ny45Mjk2ODggMzk5LjAzMTI1IDI3MS4xOTE0MDYgMzc1Ljc2OTUzMSBDIDI5NC40NTMxMjUgMzUyLjc0MjE4OCAzMzEuNjcxODc1IDM1Mi43NDIxODggMzU0LjkzMzU5NCAzNzUuNzY5NTMxIEwgNDI4LjkwNjI1IDQ0OS45NzY1NjIgTCA2MTguOTUzMTI1IDI1OS45Mjk2ODggQyA2NDIuMjE0ODQ0IDIzNi42Njc5NjkgNjc5LjY2NDA2MiAyMzYuNjY3OTY5IDcwMi45MjU3ODEgMjU5LjkyOTY4OCBDIDcyNS45NTMxMjUgMjgyLjk1NzAzMSA3MjUuOTUzMTI1IDMyMC40MTAxNTYgNzAyLjkyNTc4MSAzNDMuNjcxODc1IFogTSA3MDIuOTI1NzgxIDM0My42NzE4NzUgXCIgZmlsbC1vcGFjaXR5PVwiMVwiIGZpbGwtcnVsZT1cIm5vbnplcm9cIi8+PC9nPjxwYXRoIGZpbGw9XCIjZmZmZmZmXCIgZD1cIk0gNzAyLjkyNTc4MSAzNDMuNjcxODc1IEwgNDcxLjAwNzgxMiA1NzUuNTg1OTM4IEMgNDU5Ljg0Mzc1IDU4Ni43NTM5MDYgNDQ0LjcyMjY1NiA1OTMuMDMxMjUgNDI4LjkwNjI1IDU5My4wMzEyNSBDIDQxMy4zMjAzMTIgNTkzLjAzMTI1IDM5OC4xOTkyMTkgNTg2Ljc1MzkwNiAzODcuMDM1MTU2IDU3NS41ODU5MzggTCAyNzEuMTkxNDA2IDQ1OS43NDYwOTQgQyAyNDcuOTI5Njg4IDQzNi40ODQzNzUgMjQ3LjkyOTY4OCAzOTkuMDMxMjUgMjcxLjE5MTQwNiAzNzUuNzY5NTMxIEMgMjk0LjQ1MzEyNSAzNTIuNzQyMTg4IDMzMS42NzE4NzUgMzUyLjc0MjE4OCAzNTQuOTMzNTk0IDM3NS43Njk1MzEgTCA0MjguOTA2MjUgNDQ5Ljk3NjU2MiBMIDYxOC45NTMxMjUgMjU5LjkyOTY4OCBDIDY0Mi4yMTQ4NDQgMjM2LjY2Nzk2OSA2NzkuNjY0MDYyIDIzNi42Njc5NjkgNzAyLjkyNTc4MSAyNTkuOTI5Njg4IEMgNzI1Ljk1MzEyNSAyODIuOTU3MDMxIDcyNS45NTMxMjUgMzIwLjQxMDE1NiA3MDIuOTI1NzgxIDM0My42NzE4NzUgWiBNIDcwMi45MjU3ODEgMzQzLjY3MTg3NSBcIiBmaWxsLW9wYWNpdHk9XCIxXCIgZmlsbC1ydWxlPVwibm9uemVyb1wiLz48L3N2Zz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjb2wtc3Bhbi0xMSB3LWZ1bGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3t0ZXh0LmRhdGEuYnVsbGV0cG9pbnR9fTwvc3Bhbj48L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB0LTQgZmxleCBmbGV4LXJvdyBqdXN0aWZ5LWNlbnRlciB3LWZ1bGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSA6aHJlZj1cImJ1bGxldHN3aXRjaGRhdGFbMF0uZGF0YS5saW5rXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJ3aGl0ZXNwYWNlLW5vd3JhcCBpbmxpbmUtYmxvY2sgcC0yIHB4LTUgbXgtYXV0byBtdC0yIG1iLTIgdGV4dC1ibGFjayB1cHBlcmNhc2Ugcm91bmRlZC1mdWxsIGJnLXByaW1hcnkgaG92ZXI6YmctYmxhY2sgaG92ZXI6dGV4dC13aGl0ZVwiPiB7eyBidWxsZXRzd2l0Y2hkYXRhWzBdLmRhdGEuYnV0dG9uX3RleHQgfX0gPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IHYtc2hvdz1cInRhYiA9PSAyXCIgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGl0ZW1zLWNlbnRlciBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi00IG10LTYgcHgtNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwbC03IG1kOnRleHQtbGdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tidWxsZXRzd2l0Y2hkYXRhWzFdLmRhdGEudGl0bGV9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cImJ1bGxldGxpc3RcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwibWQ6dGV4dC14bCBncmlkIGdhcC0yIGdyaWQtY29scy0xMlwiIHYtZm9yPVwiKHRleHQsIGluZGV4KSBpbiBidWxsZXRzd2l0Y2hkYXRhWzFdLnRleHRfaXRlbXNcIiA6a2V5PVwiaW5kZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz1cImp1c3RpZnktc2VsZi1lbmRcIiBzdHlsZT1cIndpZHRoOjI0cHg7IGhlaWdodDoyNHB4XCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHhtbG5zOnhsaW5rPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiIHdpZHRoPVwiMTI4MFwiIHpvb21BbmRQYW49XCJtYWduaWZ5XCIgdmlld0JveD1cIjAgMCA5NjAgODA5Ljk5OTk5M1wiIGhlaWdodD1cIjEwODBcIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPVwieE1pZFlNaWQgbWVldFwiIHZlcnNpb249XCIxLjBcIj48ZGVmcz48Y2xpcFBhdGggaWQ9XCJjOGZiOWVkOTUwXCI+PHBhdGggZD1cIk0gODMuNDcyNjU2IDguNDcyNjU2IEwgODc2LjIyMjY1NiA4LjQ3MjY1NiBMIDg3Ni4yMjI2NTYgODAxLjIyMjY1NiBMIDgzLjQ3MjY1NiA4MDEuMjIyNjU2IFogTSA4My40NzI2NTYgOC40NzI2NTYgXCIgY2xpcC1ydWxlPVwibm9uemVyb1wiLz48L2NsaXBQYXRoPjwvZGVmcz48ZyBjbGlwLXBhdGg9XCJ1cmwoI2M4ZmI5ZWQ5NTApXCI+PHBhdGggZmlsbD1cIiMzOWI1NGFcIiBkPVwiTSA0NzkuODQ3NjU2IDguNDcyNjU2IEMgMjYwLjk1NzAzMSA4LjQ3MjY1NiA4My40NzI2NTYgMTg1Ljk1NzAzMSA4My40NzI2NTYgNDA0Ljg0NzY1NiBDIDgzLjQ3MjY1NiA2MjMuNzM4MjgxIDI2MC45NTcwMzEgODAxLjIyMjY1NiA0NzkuODQ3NjU2IDgwMS4yMjI2NTYgQyA2OTguNzM4MjgxIDgwMS4yMjI2NTYgODc2LjIyMjY1NiA2MjMuNzM4MjgxIDg3Ni4yMjI2NTYgNDA0Ljg0NzY1NiBDIDg3Ni4yMjI2NTYgMTg1Ljk1NzAzMSA2OTguNzM4MjgxIDguNDcyNjU2IDQ3OS44NDc2NTYgOC40NzI2NTYgWiBNIDcwMi45MjU3ODEgMzQzLjY3MTg3NSBMIDQ3MS4wMDc4MTIgNTc1LjU4NTkzOCBDIDQ1OS44NDM3NSA1ODYuNzUzOTA2IDQ0NC43MjI2NTYgNTkzLjAzMTI1IDQyOC45MDYyNSA1OTMuMDMxMjUgQyA0MTMuMzIwMzEyIDU5My4wMzEyNSAzOTguMTk5MjE5IDU4Ni43NTM5MDYgMzg3LjAzNTE1NiA1NzUuNTg1OTM4IEwgMjcxLjE5MTQwNiA0NTkuNzQ2MDk0IEMgMjQ3LjkyOTY4OCA0MzYuNDg0Mzc1IDI0Ny45Mjk2ODggMzk5LjAzMTI1IDI3MS4xOTE0MDYgMzc1Ljc2OTUzMSBDIDI5NC40NTMxMjUgMzUyLjc0MjE4OCAzMzEuNjcxODc1IDM1Mi43NDIxODggMzU0LjkzMzU5NCAzNzUuNzY5NTMxIEwgNDI4LjkwNjI1IDQ0OS45NzY1NjIgTCA2MTguOTUzMTI1IDI1OS45Mjk2ODggQyA2NDIuMjE0ODQ0IDIzNi42Njc5NjkgNjc5LjY2NDA2MiAyMzYuNjY3OTY5IDcwMi45MjU3ODEgMjU5LjkyOTY4OCBDIDcyNS45NTMxMjUgMjgyLjk1NzAzMSA3MjUuOTUzMTI1IDMyMC40MTAxNTYgNzAyLjkyNTc4MSAzNDMuNjcxODc1IFogTSA3MDIuOTI1NzgxIDM0My42NzE4NzUgXCIgZmlsbC1vcGFjaXR5PVwiMVwiIGZpbGwtcnVsZT1cIm5vbnplcm9cIi8+PC9nPjxwYXRoIGZpbGw9XCIjZmZmZmZmXCIgZD1cIk0gNzAyLjkyNTc4MSAzNDMuNjcxODc1IEwgNDcxLjAwNzgxMiA1NzUuNTg1OTM4IEMgNDU5Ljg0Mzc1IDU4Ni43NTM5MDYgNDQ0LjcyMjY1NiA1OTMuMDMxMjUgNDI4LjkwNjI1IDU5My4wMzEyNSBDIDQxMy4zMjAzMTIgNTkzLjAzMTI1IDM5OC4xOTkyMTkgNTg2Ljc1MzkwNiAzODcuMDM1MTU2IDU3NS41ODU5MzggTCAyNzEuMTkxNDA2IDQ1OS43NDYwOTQgQyAyNDcuOTI5Njg4IDQzNi40ODQzNzUgMjQ3LjkyOTY4OCAzOTkuMDMxMjUgMjcxLjE5MTQwNiAzNzUuNzY5NTMxIEMgMjk0LjQ1MzEyNSAzNTIuNzQyMTg4IDMzMS42NzE4NzUgMzUyLjc0MjE4OCAzNTQuOTMzNTk0IDM3NS43Njk1MzEgTCA0MjguOTA2MjUgNDQ5Ljk3NjU2MiBMIDYxOC45NTMxMjUgMjU5LjkyOTY4OCBDIDY0Mi4yMTQ4NDQgMjM2LjY2Nzk2OSA2NzkuNjY0MDYyIDIzNi42Njc5NjkgNzAyLjkyNTc4MSAyNTkuOTI5Njg4IEMgNzI1Ljk1MzEyNSAyODIuOTU3MDMxIDcyNS45NTMxMjUgMzIwLjQxMDE1NiA3MDIuOTI1NzgxIDM0My42NzE4NzUgWiBNIDcwMi45MjU3ODEgMzQzLjY3MTg3NSBcIiBmaWxsLW9wYWNpdHk9XCIxXCIgZmlsbC1ydWxlPVwibm9uemVyb1wiLz48L3N2Zz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjb2wtc3Bhbi0xMSB3LWZ1bGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3t0ZXh0LmRhdGEuYnVsbGV0cG9pbnR9fTwvc3Bhbj48L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB0LTQgZmxleCBmbGV4LXJvdyBqdXN0aWZ5LWNlbnRlciB3LWZ1bGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSA6aHJlZj1cImJ1bGxldHN3aXRjaGRhdGFbMV0uZGF0YS5saW5rXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJ3aGl0ZXNwYWNlLW5vd3JhcCBpbmxpbmUtYmxvY2sgcC0yIG14LWF1dG8gbXQtMiBtYi0yIHB4LTUgdGV4dC1ibGFjayB1cHBlcmNhc2Ugcm91bmRlZC1mdWxsIGJnLXByaW1hcnkgaG92ZXI6YmctYmxhY2sgaG92ZXI6dGV4dC13aGl0ZVwiPiB7eyBidWxsZXRzd2l0Y2hkYXRhWzFdLmRhdGEuYnV0dG9uX3RleHQgfX0gPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuPC90ZW1wbGF0ZT5cblxuPHNjcmlwdD5cblxuZXhwb3J0IGRlZmF1bHQge1xuICAgIG5hbWU6ICdCdWxsZXRTd2l0Y2gnLFxuICAgIGRhdGEoKXsgcmV0dXJuIHtcbiAgICAgICAgdGFiOiAxLFxuICAgICAgICB9XG4gICAgfSxcbiAgICBwcm9wczoge1xuICAgICAgICBidWxsZXRzd2l0Y2g6IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIGRlZmF1bHQ6ICcnLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgY29tcHV0ZWQ6IHtcbiAgICAgICAgYnVsbGV0c3dpdGNoZGF0YSgpe1xuICAgICAgICAgICAgY29uc3QgdGVzdCA9IEpTT04ucGFyc2UodGhpcy5idWxsZXRzd2l0Y2gpXG5cbiAgICAgICAgICAgIHJldHVybiB0ZXN0XG4gICAgICAgIH1cbiAgICB9XG59XG48L3NjcmlwdD5cblxuPHN0eWxlIHNjb3BlZD5cblxuLnRhYnNlbGVjdGVkIHtcbiAgICBiYWNrZ3JvdW5kOiAjMjIyO1xuICAgIGNvbG9yOndoaXRlO1xufVxuLnRhYlRleHQge1xuICAgIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDJyZW07XG59XG48L3N0eWxlPlxuIiwiXG4ucG9wdXAge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgei1pbmRleDogOTk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjIpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgIC5wb3B1cC1pbm5lciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICAgIHBhZGRpbmc6IDIwcHg7XG4gICAgICAgIC5wb3B1cC1jbG9zZSB7XG4gICAgICAgICAgICByaWdodDogNnB4O1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPHRlbXBsYXRlPlxuICAgIDxkaXYgY2xhc3M9XCJteC0yIG10LTBcIiByZWY9XCJlbGVtZW50c1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyIGJnLWdyYXktMjAwIHJvdW5kZWQtbGdcIiA6Y2xhc3M9XCJ7IGxvYWRpbmc6IGlzbG9hZGluZyB9XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyIHAtNFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmlkIGdyaWQtY29scy0xIGdhcC00IG1iLTQgbGc6Z3JpZC1jb2xzLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgc206ZmxleC1jb2xcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInctMS8zIHNtOnctZnVsbFwiPkthdWZwcmVpcyAoYnJ1dHRvKTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwicHVyY2hhc2VwcmljZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJ6LkIuOiAyMDAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybWRhdGEucHJvZHVjdHMucHJpY2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjaGFuZ2U9XCJzZW5kRGF0YVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlucHV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmb3JtZGF0YS5wcm9kdWN0cy5wcmljZSA8IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtZGF0YS5wcm9kdWN0cy5wcmljZSA9IDBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ3LTEvMiBweS0xIGZvbnQtYm9sZCB0ZXh0LWNlbnRlciBzbTp3LWZ1bGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAvPjxzcGFuIHYtaWY9XCIhaXNCdWRnZXRBbmRWYWxpZFwiIGNsYXNzPVwidGV4dC1yZWQtNjAwXCI+e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWRnZXRNZXNzYWdlXG4gICAgICAgICAgICAgICAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IHNtOmZsZXgtY29sXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ3LTEvMyBzbTp3LWZ1bGxcIj5VVlA8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cInV2cFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1kYXRhLnByb2R1Y3RzLm1zcnBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjaGFuZ2U9XCJzZW5kRGF0YVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlucHV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmb3JtZGF0YS5wcm9kdWN0cy5tc3JwIDwgMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1kYXRhLnByb2R1Y3RzLm1zcnAgPSAwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidy0xLzIgcHktMSBmb250LWJvbGQgdGV4dC1jZW50ZXIgc206dy1mdWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtcmVkLTYwMFwiPnt7IHByaWNlTWVzc2FnZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IHNtOmZsZXgtY29sXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ3LTEvMyBzbTp3LWZ1bGxcIj5CcnV0dG9nZWhhbHQ8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImdyb3Nzc2FsYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIjMwMDBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtZGF0YS5zYWxhcnkuZ3Jvc3Ntb250aGx5c2FsYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAY2hhbmdlPVwic2VuZERhdGFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidy0xLzIgcHktMSBmb250LWJvbGQgdGV4dC1jZW50ZXIgc206dy1mdWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaW5wdXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZvcm1kYXRhLnNhbGFyeS5ncm9zc21vbnRobHlzYWxhcnkgPCAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWRhdGEuc2FsYXJ5Lmdyb3NzbW9udGhseXNhbGFyeSA9IDBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXJlZC02MDBcIj57eyBlcnJvck1lc3NhZ2VHcm9zcyB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzcGFjZS15LTIgY29sLXNwYW4tZnVsbCBsZzpjb2wtc3Bhbi0xIHNtOnNwYWNlLXktMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwicGItMiBzbTpwYi0wXCI+U3RldWVya2xhc3NlPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Y2xhc3M9XCJgcmFkaW8tdG9vbGJhci0ke2NhbGN1bGF0b3JfY29sb3J9YFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtcm93IC1tbC0yIHNwYWNlLXgtMiBzbTpzcGFjZS14LTQgc206LW1sLTQgcmFkaW8tdG9vbGJhclwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRlbXBsYXRlIHYtZm9yPVwidGF4Q2xhc3MgaW4gdGF4Q2xhc3Nlc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJyYWRpb1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6aWQ9XCJgY2xhc3Mke3RheENsYXNzfWBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyb3VuZGVkLWZ1bGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1kYXRhLnNhbGFyeS50YXhjbGFzc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAY2hhbmdlPVwic2VuZERhdGFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cInZlbG8tdGF4LWNsYXNzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDp2YWx1ZT1cInRheENsYXNzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiA6Zm9yPVwiYGNsYXNzJHt0YXhDbGFzc31gXCI+e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRheENsYXNzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIHYtc2hvdz1cIiFwb3J0YWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgOmNsYXNzPVwiaXNQb3J0YWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb2wtc3Bhbi0xIHNwYWNlLXktMiBzbTpzcGFjZS15LTBcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJwYi0yIHNtOnBiLTBcIj7DnGJlcm5haG1lIGRlcyBSdW5kdW0tU2NodXR6ZXM8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpjbGFzcz1cImByYWRpby10b29sYmFyLSR7Y2FsY3VsYXRvcl9jb2xvcn1gXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXggZmxleC1yb3cgLW1sLTYgc3BhY2UteC02IHJhZGlvLXRvb2xiYXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImFyYmVpdG5laG1lclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtZGF0YS5zYWxhcnkuY2FsY0FHUlNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAY2hhbmdlPVwic2VuZERhdGFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwidmVsby1jYWxjQUdSU1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPVwiMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpkaXNhYmxlZD1cImdyYW50Q29uZmlnT2JqZWN0cy5wcm90ZWN0aW9uLmRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJhcmJlaXRuZWhtZXJcIj5BcmJlaXRuZWhtZXI8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybWRhdGEuc2FsYXJ5LmNhbGNBR1JTXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNoYW5nZT1cInNlbmREYXRhXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJhcmJlaXRnZWJlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJ2ZWxvLWNhbGNBR1JTXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCIxXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOmRpc2FibGVkPVwiZ3JhbnRDb25maWdPYmplY3RzLnByb3RlY3Rpb24uZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImFyYmVpdGdlYmVyXCI+QXJiZWl0Z2ViZXI8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICB2LXNob3c9XCIhcG9ydGFsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIDpjbGFzcz1cIltpc1BvcnRhbCwgdG9nZ2xlR3JhbnRUeXBlXVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNvbC1zcGFuLTEgc3BhY2UteS0yIHNtOnNwYWNlLXktMFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInBiLTIgc206cGItMFwiPkFydCBkZXMgWnVzY2h1c3NlczwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOmNsYXNzPVwiYHJhZGlvLXRvb2xiYXItJHtjYWxjdWxhdG9yX2NvbG9yfWBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LXJvdyAtbWwtNiBzcGFjZS14LTYgcmFkaW8tdG9vbGJhclwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJyYWRpb1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiRVVSXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1kYXRhLnNhbGFyeS5ncmFudF90eXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNoYW5nZT1cInNlbmREYXRhXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cInZlbG8tZ3JhbnRfdHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPVwiRVVSXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJFVVJcIj5GZXN0ZXIgQmV0cmFnPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1kYXRhLnNhbGFyeS5ncmFudF90eXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNoYW5nZT1cInNlbmREYXRhXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJwZXJjZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cInZlbG8tZ3JhbnRfdHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPVwicGVyY2VudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwicGVyY2VudFwiPlByb3plbnR1YWxlciBadXNjaHVzczwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIHYtc2hvdz1cIiFwb3J0YWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgOmNsYXNzPVwiW2lzUG9ydGFsLCBncmFudFR5cGUgPT0gJ3BlcmNlbnQnID8gJycgOiAnaGlkZGVuJ11cIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJsZzpjb2wtc3RhcnQtMiByYWRpby10b29sYmFyLW51bWJlclwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwPkFyYmVpdGdlYmVyenVzY2h1c3MgenVyIExlYXNpbmdyYXRlIGluICU8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW49XCIwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXg9XCIxMDBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJhcmJlaXRnZWJlcnp1c2NodXNzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybWRhdGEuc2FsYXJ5LmdyYW50X3BlcmNlbnRhZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjaGFuZ2U9XCJzZW5kRGF0YVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlucHV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmb3JtZGF0YS5zYWxhcnkuZ3JhbnRfcGVyY2VudGFnZSA+IDEwMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1kYXRhLnNhbGFyeS5ncmFudF9wZXJjZW50YWdlID0gMTAwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZm9ybWRhdGEuc2FsYXJ5LmdyYW50X3BlcmNlbnRhZ2UgPCAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWRhdGEuc2FsYXJ5LmdyYW50X3BlcmNlbnRhZ2UgPSAwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZm9ybWRhdGEuc2FsYXJ5LmdyYW50X3BlcmNlbnRhZ2UgPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWRhdGEuc2FsYXJ5LmdyYW50X2ZpeHZhbHVlID0gMFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIjEwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInctZnVsbCBweS0xIGZvbnQtYm9sZCB0ZXh0LWNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ZGlzYWJsZWQ9XCJncmFudENvbmZpZ09iamVjdHMubGVhc2luZy5kaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXJlZC02MDBcIj57eyBlcnJvck1lc3NhZ2VQZXJjZW50IH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgdi1zaG93PVwiIXBvcnRhbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA6Y2xhc3M9XCJbaXNQb3J0YWwsIGdyYW50VHlwZSA9PSAnRVVSJyA/ICcnIDogJ2hpZGRlbiddXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibGc6Y29sLXN0YXJ0LTIgcmFkaW8tdG9vbGJhci1udW1iZXJcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cD5BcmJlaXRnZWJlcnp1c2NodXNzIHp1ciBMZWFzaW5ncmF0ZSBpbiDigqw8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW49XCIwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXg9XCIxMDAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiYXJiZWl0Z2ViZXJ6dXNjaHVzc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1kYXRhLnNhbGFyeS5ncmFudF9maXh2YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNoYW5nZT1cInNlbmREYXRhXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaW5wdXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZvcm1kYXRhLnNhbGFyeS5ncmFudF9maXh2YWx1ZSA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtZGF0YS5zYWxhcnkuZ3JhbnRfcGVyY2VudGFnZSA9IDBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmb3JtZGF0YS5zYWxhcnkuZ3JhbnRfZml4dmFsdWUgPCAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWRhdGEuc2FsYXJ5LmdyYW50X2ZpeHZhbHVlID0gMFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIjMwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInctZnVsbCBweS0xIGZvbnQtYm9sZCB0ZXh0LWNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ZGlzYWJsZWQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JhbnRDb25maWdPYmplY3RzLmZpeGVkICYmIGdyYW50Q29uZmlnT2JqZWN0cy5maXhlZC5kaXNhYmxlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXJlZC02MDBcIj57eyBlcnJvck1lc3NhZ2VGaXhlZCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZWxhdGl2ZSBmbGV4IGp1c3RpZnktY2VudGVyIHctZnVsbCBtdC02IG1iLTQgc206aGlkZGVuXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy1mdWxsIGJvcmRlci1iLTIgYm9yZGVyLXdoaXRlXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPVwic2hvd0Z1cnRoZXJGaWVsZHMoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhYnNvbHV0ZSBmbGV4IGNvbnRlbnQtY2VudGVyIHB4LTIgcHktMSB0ZXh0LXhsIHRleHQtd2hpdGUgdHJhbnNmb3JtIC10cmFuc2xhdGUteS0xLzIgYmctd2hpdGUgcm91bmRlZC1mdWxsIHNtOnB4LTIwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiB2LWlmPVwic2hvd0ZpZWxkc1wiIGNsYXNzPVwicHQtMSBwci0yIHRleHQtYmFzZSB0ZXh0LWJsYWNrXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPkVyd2VpdGVydGUgQW5nYWJlbiB2ZXJiZXJnZW48L3NwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gdi1pZj1cIiFzaG93RmllbGRzXCIgY2xhc3M9XCJwdC0xIHByLTIgdGV4dC1iYXNlIHRleHQtYmxhY2tcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+RXJ3ZWl0ZXJ0ZSBBbmdhYmVuIGFuemVpZ2VuPC9zcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdi1pZj1cIiFzaG93RmllbGRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidy04IGgtNiB0ZXh0LXdoaXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTkgOWwtNyA3LTctN1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LWlmPVwic2hvd0ZpZWxkc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInctOCBoLTYgdGV4dC13aGl0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTUgMTVsNy03IDcgN1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIDpjbGFzcz1cInsgaGlkZGVuOiAhc2hvd0ZpZWxkcyB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZ3JpZC1jb2xzLTEgZ2FwLTQgbWItNCBzcGFjZS15LTMgY29sLXNwYW4tZnVsbCBzbTpncmlkIGxnOmdyaWQtY29scy0yIHNtOnNwYWNlLXktMFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc3Bhbi1mdWxsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPkJ1bmRlc2xhbmQ8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwic3RhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybWRhdGEuc2FsYXJ5LnN0YXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNoYW5nZT1cInNlbmREYXRhXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ3LWZ1bGwgcHktMiB0ZXh0LWNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiQldcIj5CYWRlbi1Xw7xydHRlbWJlcmc8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIkJZXCI+QmF5ZXJuPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJCRVwiPkJlcmxpbjwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiQkJcIj5CcmFuZGVuYnVyZzwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiSEJcIj5CcmVtZW48L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIkhIXCI+SGFtYnVyZzwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiSEVcIj5IZXNzZW48L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIk1WXCI+TWVja2xlbmJ1cmctVm9ycG9tbWVybjwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiTklcIj5OaWVkZXJzYWNoc2VuPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJOV1wiPk5vcmRyaGVpbi1XZXN0ZmFsZW48L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlJQXCI+UmhlaW5sYW5kLVBmYWx6PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJTTFwiPlNhYXJsYW5kPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJTTlwiPlNhY2hzZW48L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlNUXCI+U2FjaHNlbi1BbmhhbHQ8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlNIXCI+U2NobGVzd2lnLUhvbHN0ZWluPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJUSFwiPlRow7xyaW5nZW48L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+WnVzYXR6YmVpdHJhZyBLcmFua2Vua2Fzc2UgaW4gJSAodm9uIHt7IGhlYWx0aE1pblZhbHVlIH19IGJpcyB7eyBoZWFsdGhNYXhWYWx1ZSB9fSk8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOm1pbj1cImhlYWx0aE1pblZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOm1heD1cImhlYWx0aE1heFZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RlcD1cIjAuMDFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybWRhdGEuc2FsYXJ5LmhlYWx0aGluc3VyYW5jZWNvbnRyaWJ1dGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjaGFuZ2U9XCJzZW5kRGF0YVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidy1mdWxsIHB5LTIgZm9udC1ib2xkIHRleHQtY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZi1lbmRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+S2luZGVyZnJlaWJldHJhZzwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJ0YXhjbGFzc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtZGF0YS5zYWxhcnkuY2hpbGR0YXhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAY2hhbmdlPVwic2VuZERhdGFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInctZnVsbCBweS0yIGZvbnQtYm9sZCB0ZXh0LWNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiMFwiPjA8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjAuNVwiPjAsNTwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiMVwiPjE8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjEuNVwiPjEsNTwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiMlwiPjI8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjIuNVwiPjIsNTwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiM1wiPjM8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjMuNVwiPjMsNTwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiNFwiPjQ8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjQuNVwiPjQsNTwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiNVwiPjU8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjUuNVwiPjUsNTwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiNlwiPjY8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYtc2hvdz1cIiFwb3J0YWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpjbGFzcz1cImlzUG9ydGFsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNvbC1zcGFuLTEgc3BhY2UteS0yIHNtOnNwYWNlLXktMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwicGItMiBzbTpwYi0wXCI+w5xiZXJuYWhtZSBkZXMgU2VydmljZS1QYWtldHM8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOmNsYXNzPVwiYHJhZGlvLXRvb2xiYXItJHtjYWxjdWxhdG9yX2NvbG9yfWBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXggZmxleC1yb3cgLW1sLTYgc3BhY2UteC02IHJhZGlvLXRvb2xiYXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJzZXJ2aWNlX2FyYmVpdG5laG1lclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybWRhdGEuc2FsYXJ5LmdyYW50X3NlcnZpY2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNoYW5nZT1cInNlbmREYXRhXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJ2ZWxvLWdyYW50X3NlcnZpY2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCIwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpkaXNhYmxlZD1cImdyYW50Q29uZmlnT2JqZWN0cy5wYWNrYWdlLmRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInNlcnZpY2VfYXJiZWl0bmVobWVyXCI+QXJiZWl0bmVobWVyPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1kYXRhLnNhbGFyeS5ncmFudF9zZXJ2aWNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjaGFuZ2U9XCJzZW5kRGF0YVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cInNlcnZpY2VfYXJiZWl0Z2ViZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cInZlbG8tZ3JhbnRfc2VydmljZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cIjFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOmRpc2FibGVkPVwiZ3JhbnRDb25maWdPYmplY3RzLnBhY2thZ2UuZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwic2VydmljZV9hcmJlaXRnZWJlclwiPkFyYmVpdGdlYmVyPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zdGFydC0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlNlcnZpY2UtUGFrZXQ8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOmNsYXNzPVwiYHJhZGlvLXRvb2xiYXItJHtjYWxjdWxhdG9yX2NvbG9yfWBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXggZmxleC1yb3cgLW1sLTIgc3BhY2UteC0yIG1kOnNwYWNlLXgtNiBtZDotbWwtNiByYWRpby10b29sYmFyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZSB2LWZvcj1cImNvdXBvbk9iamVjdCBpbiBjb3Vwb25zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6a2V5PVwiY291cG9uT2JqZWN0LnZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDppZD1cImNvdXBvbk9iamVjdC50ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LW1vZGVsPVwic2VsZWN0ZWRDb3Vwb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjaGFuZ2U9XCJzZW5kRGF0YVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cInZlbG8tZ2lmdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOnZhbHVlPVwiY291cG9uT2JqZWN0LnZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ZGlzYWJsZWQ9XCJjb3Vwb25zLmxlbmd0aCA9PSAxXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgOmtleT1cImNvdXBvbk9iamVjdC50ZXh0XCIgOmZvcj1cImNvdXBvbk9iamVjdC50ZXh0XCI+e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3Vwb25PYmplY3QudGV4dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBjb2wtc3RhcnQtMVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOmNsYXNzPVwiYGNoZWNrYm94LXRvb2xiYXItJHtjYWxjdWxhdG9yX2NvbG9yfWBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInctMS82IGNoZWNrYm94LXRvb2xiYXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaHVyY2h0YXhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyb3VuZGVkLWZ1bGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1kYXRhLnNhbGFyeS5jaHVyY2h0YXhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNoYW5nZT1cInNlbmREYXRhXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJpc2NodXJjaHRheFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6dHJ1ZS12YWx1ZT1cIjFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOmZhbHNlLXZhbHVlPVwiMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCB2LWlmPVwiZm9ybWRhdGEuc2FsYXJ5LmNodXJjaHRheCA9PSAnMCdcIiBmb3I9XCJjaHVyY2h0YXhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlg8L2xhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIHYtaWY9XCJmb3JtZGF0YS5zYWxhcnkuY2h1cmNodGF4ID09ICcxJ1wiIGZvcj1cImNodXJjaHRheFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+4pyTPC9sYWJlbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzZWxmLWNlbnRlclwiPktpcmNoZW5zdGV1ZXJwZmxpY2h0PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvd1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOmNsYXNzPVwiYGNoZWNrYm94LXRvb2xiYXItJHtjYWxjdWxhdG9yX2NvbG9yfWBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInctMS82IGNoZWNrYm94LXRvb2xiYXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJwZW5zaW9udGF4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicm91bmRlZC1mdWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtZGF0YS5zYWxhcnkucGVuc2lvbmluc3VyYW5jZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAY2hhbmdlPVwic2VuZERhdGFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImlzcGVuc2lvbnRheFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6dHJ1ZS12YWx1ZT1cIjFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOmZhbHNlLXZhbHVlPVwiMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdi1pZj1cImZvcm1kYXRhLnNhbGFyeS5wZW5zaW9uaW5zdXJhbmNlID09ICcwJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3I9XCJwZW5zaW9udGF4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5YPC9sYWJlbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdi1pZj1cImZvcm1kYXRhLnNhbGFyeS5wZW5zaW9uaW5zdXJhbmNlID09ICcxJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3I9XCJwZW5zaW9udGF4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID7inJM8L2xhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNlbGYtY2VudGVyXCI+UmVudGVudmVyc2ljaGVydW5nc3BmbGljaHQ8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGNvbC1zdGFydC0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Y2xhc3M9XCJgY2hlY2tib3gtdG9vbGJhci0ke2NhbGN1bGF0b3JfY29sb3J9YFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidy0xLzYgY2hlY2tib3gtdG9vbGJhclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImhlYWx0aGluc3VyYW5jZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInJvdW5kZWQtZnVsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybWRhdGEuc2FsYXJ5LmhlYWx0aGluc3VyYW5jZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAY2hhbmdlPVwic2VuZERhdGFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImlzaGVhbHRoaW5zdXJhbmNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDp0cnVlLXZhbHVlPVwiMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ZmFsc2UtdmFsdWU9XCIwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LWlmPVwiZm9ybWRhdGEuc2FsYXJ5LmhlYWx0aGluc3VyYW5jZSA9PSAnMCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yPVwiaGVhbHRoaW5zdXJhbmNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5YPC9sYWJlbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdi1pZj1cImZvcm1kYXRhLnNhbGFyeS5oZWFsdGhpbnN1cmFuY2UgPT0gJzEnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcj1cImhlYWx0aGluc3VyYW5jZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+4pyTPC9sYWJlbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzZWxmLWNlbnRlclwiPktyYW5rZW52ZXJzaWNoZXJ1bmdzcGZsaWNodDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpjbGFzcz1cImBjaGVja2JveC10b29sYmFyLSR7Y2FsY3VsYXRvcl9jb2xvcn1gXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ3LTEvNiBjaGVja2JveC10b29sYmFyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwicHJldGF4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicm91bmRlZC1mdWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtZGF0YS5zYWxhcnkudGF4ZGVkdWN0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjaGFuZ2U9XCJzZW5kRGF0YVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiaXNwcmV0YXhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOnRydWUtdmFsdWU9XCIwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpmYWxzZS12YWx1ZT1cIjFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOmRpc2FibGVkPVwiZ3JhbnRDb25maWdPYmplY3RzLnRheC5kaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCB2LWlmPVwiZm9ybWRhdGEuc2FsYXJ5LnRheGRlZHVjdGlvbiA9PSAnMSdcIiBmb3I9XCJwcmV0YXhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlg8L2xhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIHYtaWY9XCJmb3JtZGF0YS5zYWxhcnkudGF4ZGVkdWN0aW9uID09ICcwJ1wiIGZvcj1cInByZXRheFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+4pyTPC9sYWJlbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzZWxmLWNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5Jc3QgSWhyIEFyYmVpdGdlYmVyIHZvcnN0ZXVlcmFienVnc2JlcmVjaHRpZ3Q/PC9zcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgdi1pZj1cInN1Y2Nlc3NUZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJncmlkIGNvbnRlbnQtY2VudGVyIHctZnVsbCBncmlkLWNvbHMtMSBwLTIgc206ZmxleCBjYWxjdWxhdG9yLXN1Y2Nlc3Mgcm91bmRlZC14bCBzbTpzcGFjZS14LTRcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJqdXN0aWZ5LXNlbGYtY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMSAzMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGlwLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE5LjQ0ODUgMjcuODU0NUMxOS40NDg1IDI1Ljk5MTYgMTcuOTM4MyAyNC40ODE0IDE2LjA3NTUgMjQuNDgxNEgxMS44NTkyQzExLjg1OTIgMjIuNjE4NiAxMC4zNDkgMjEuMTA4NCA4LjQ4NjE1IDIxLjEwODRIMi41ODMzNFYyNy44NTQ1SDE5LjQ0ODVaXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNDZEMzkwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTguNDg2MTUgMjQuNDgxNEgxMS44NTkyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNDZEMzkwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE0LjM4ODkgMjEuMTA4NEgyNS4zNTEzQzI1LjgxNyAyMS4xMDg0IDI2LjE5NDYgMjAuNzMwOCAyNi4xOTQ2IDIwLjI2NTFWMTIuNjc1OFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzQ2RDM5MFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMS4wMTU5IDEyLjY3NThWMTcuNzM1M1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzQ2RDM5MFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpcC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk05LjMyOTQxIDkuMjA5NDdDOS4zMjk0MSA4Ljc5NTI2IDkuNjY1MTkgOC40NTk0NyAxMC4wNzk0IDguNDU5NDdIMjcuMTMxMUMyNy41NDUzIDguNDU5NDcgMjcuODgxMSA4Ljc5NTI2IDI3Ljg4MTEgOS4yMDk0N1YxMS45MjU4QzI3Ljg4MTEgMTIuMzQgMjcuNTQ1MyAxMi42NzU4IDI3LjEzMTEgMTIuNjc1OEgxMC4wNzk0QzkuNjY1MTkgMTIuNjc1OCA5LjMyOTQxIDEyLjM0IDkuMzI5NDEgMTEuOTI1OFY5LjIwOTQ3WlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzQ2RDM5MFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xOC42MDUzIDIxLjEwODNWOC40NTk0N1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzQ2RDM5MFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpcC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0yMy40MDA2IDYuMDc0NzhDMjEuOTg3NiA3LjE4Mjg0IDIwLjM2NTMgNy45OTM5OCAxOC42MzExIDguNDU5NTJDMTkuMDk2NiA2LjcyNTI5IDE5LjkwNzggNS4xMDMwMSAyMS4wMTU4IDMuNjkwMDVDMjIuNDk4OCAyLjIwODE2IDIzLjMzODcgMi40MzUyOCAyNC4wMDIxIDMuMDk0MTRDMjQuNjY1NSAzLjc1MzAxIDI0Ljg4MzYgNC41OTI5IDIzLjQwMDYgNi4wNzQ3OFpcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM0NkQzOTBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGwtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaXAtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTMuODA4OCA2LjA3NDc4QzE1LjIyMTkgNy4xODI2MyAxNi44NDQxIDcuOTkzNzUgMTguNTc4MyA4LjQ1OTUyQzE4LjExMzMgNi43MjUxIDE3LjMwMjEgNS4xMDI3MSAxNi4xOTM1IDMuNjkwMDVDMTQuNzExNyAyLjIwODE2IDEzLjg3MTggMi40MzUyOCAxMy4yMDg0IDMuMDk0MTRDMTIuNTQ1IDMuNzUzMDEgMTIuMzI2OSA0LjU5MjkgMTMuODA4OCA2LjA3NDc4WlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzQ2RDM5MFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICAgIDxwIHYtaHRtbD1cInN1Y2Nlc3NUZXh0XCIgY2xhc3M9XCJzZWxmLWNlbnRlclwiPjwvcD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiB2LWlmPVwic2hvd0Vycm9yXCIgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXJlZC02MDBcIlxuICAgICAgICAgICAgICAgID5EaWUgQmVyZWNobnVuZyBrYW5uIG5pY2h0IGF1c2dlZsO8aHJ0IHdlcmRlbi4gQml0dGUgw7xiZXJwcsO8ZmUgZGVpbmUgRWluZ2FiZW48L3NwYW5cbiAgICAgICAgICAgID5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmlkIGdyaWQtY29scy0xIHB5LTQgdGV4dC1jZW50ZXIgbGc6Z3JpZC1jb2xzLTIgbGc6dGV4dC1sZWZ0XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2xcIj5cbiAgICAgICAgICAgICAgICAgICAgPHA+U28gdmllbCB3aXJkIGdlc3BhcnQ8L3A+XG4gICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInRleHQtNXhsIGZvbnQtYm9sZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGdldExvY2FsZVByaWNlKHByb2R1Y3REYXRhLnNhdmluZykgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Y2xhc3M9XCJgY2FsY3VsYXRvci0ke2NhbGN1bGF0b3JfY29sb3J9YFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGp1c3RpZnktY2VudGVyIHRleHQtYmFzZSBsZzp0ZXh0LXhsIGxnOmp1c3RpZnktc3RhcnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMiAzMlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0zMC42NjcgMTQuMDQ0NEMzMC42NjcgMTYuMjA0NSAyOC45MTU5IDE3Ljk1NTUgMjYuNzU1OSAxNy45NTU1XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTguMTc3OTQgOS4yMjA3MUM2LjA3NDI3IDEwLjU4NDEgNC41MDc5MSAxMi42MzQyIDMuNzQ1MzUgMTUuMDIyMkgxLjMzMzVWMjIuODQ0NEg0LjU3OTcyQzUuMjU0ODMgMjQuMDI4MSA2LjE0MzI5IDI1LjA3NjYgNy4yMDAxNiAyNS45MzY4VjI5LjY4ODlDNy4yMDAxNiAzMC4yMjg5IDcuNjM3OTMgMzAuNjY2NiA4LjE3Nzk0IDMwLjY2NjZIMTAuMTMzNUMxMC42NzM1IDMwLjY2NjYgMTEuMTExMyAzMC4yMjg5IDExLjExMTMgMjkuNjg4OVYyOC4wNzFDMTMuNjQ4OSAyOC45MTk1IDE2LjM5MjggMjguOTI0NSAxOC45MzM1IDI4LjA4NTNWMjkuNjg4OUMxOC45MzM1IDMwLjIyODkgMTkuMzcxMyAzMC42NjY2IDE5LjkxMTMgMzAuNjY2NkgyMS44NjY4QzIyLjQwNjggMzAuNjY2NiAyMi44NDQ2IDMwLjIyODkgMjIuODQ0NiAyOS42ODg5VjI1Ljk1NjRDMjUuMjg3NCAyNC4wMTUxIDI2LjcyNDMgMjEuMDc1NiAyNi43NTU3IDE3Ljk1NTVDMjYuNzA5IDE0LjM5OTkgMjQuODY1NiAxMS4xMDk2IDIxLjg1NzcgOS4yMTI4OVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS41XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMS4xMTEzIDEwLjEzMzdDMTMuNTc2IDguOTEzNzcgMTYuNDY4OCA4LjkxMzc3IDE4LjkzMzYgMTAuMTMzN1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS41XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGlwLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTUuMDIyNCA5LjE1NTcyQzE3LjE4MjUgOS4xNTU3MiAxOC45MzM2IDcuNDA0NjUgMTguOTMzNiA1LjI0NDYxQzE4LjkzMzYgMy4wODQ1NiAxNy4xODI1IDEuMzMzNSAxNS4wMjI0IDEuMzMzNUMxMi44NjI0IDEuMzMzNSAxMS4xMTEzIDMuMDg0NTYgMTEuMTExMyA1LjI0NDYxQzExLjExMTMgNy40MDQ2NSAxMi44NjI0IDkuMTU1NzIgMTUuMDIyNCA5LjE1NTcyWlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS41XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwicHQtMSBwbC0zIHRleHQtMnhsIHRleHQtYmxhY2tcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz57eyBwcm9kdWN0RGF0YS5zYXZpbmdfcGVyY2VudGFnZSB9fSU8L3N0cm9uZz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VzcGFydCFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgcHQtNCBsZzpwdC0wXCI+XG4gICAgICAgICAgICAgICAgICAgIDxwPkRpZSBpbmRpdmlkdWVsbGUgTnV0enVuZ3NyYXRlIGJldHLDpGd0OjwvcD5cbiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LTV4bCBmb250LWJvbGRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGdldExvY2FsZVByaWNlKHByb2R1Y3REYXRhLmxlYXNpbmdfbmV0KSB9fVxuICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlbGF0aXZlIGZsZXgganVzdGlmeS1jZW50ZXIgdy1mdWxsIG15LTEyXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctZnVsbCBib3JkZXItYi0yIGJvcmRlci1ibGFja1wiPjwvZGl2PlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgQGNsaWNrPVwic2hvd0NhbGN1bGF0aW9uKClcIlxuICAgICAgICAgICAgICAgICAgICA6ZGlzYWJsZWQ9XCJzaG93RXJyb3JcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFic29sdXRlIGZsZXggY29udGVudC1jZW50ZXIgcHgtNSBweS0xIHRleHQteGwgdGV4dC13aGl0ZSB0cmFuc2Zvcm0gLXRyYW5zbGF0ZS15LTEvMiBiZy1ibGFjayByb3VuZGVkLWZ1bGwgc206cHgtMjBcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gdi1pZj1cInNob3dUYWJsZVwiIHN0eWxlPVwibGluZS1oZWlnaHQ6IDMwcHhcIiBjbGFzcz1cInByLTZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPkJlcmVjaG51bmcgYW56ZWlnZW48L3NwYW5cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiB2LWlmPVwiIXNob3dUYWJsZVwiIHN0eWxlPVwibGluZS1oZWlnaHQ6IDMwcHhcIiBjbGFzcz1cInByLTZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPkJlcmVjaG51bmcgdmVyYmVyZ2VuPC9zcGFuXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgICAgICAgICAgICAgdi1pZj1cInNob3dUYWJsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidy04IGgtNiB0ZXh0LXdoaXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xOSA5bC03IDctNy03XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAgICAgICAgICAgICB2LWlmPVwiIXNob3dUYWJsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidy04IGgtNiB0ZXh0LXdoaXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk01IDE1bDctNyA3IDdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPCEtLSBFUkdFQk5JUyAtLT5cblxuICAgICAgICAgICAgPGRpdiB2LWlmPVwiIXNob3dUYWJsZVwiIGNsYXNzPVwicHktMTJcIiA6Y2xhc3M9XCJ7IGxvYWRpbmc6IGlzbG9hZGluZyB9XCI+XG4gICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwicHktNiB0ZXh0LTJ4bCBmb250LXNlbWlib2xkXCI+RXJyZWNobnVuZyBkZXIgbW9uYXRsaWNoZW4gS29zdGVuOjwvaDI+XG5cbiAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9XCJ3LWZ1bGwgcHktNCB0ZXh0LWxnIHRhYmxlLWZpeGVkXCI+XG4gICAgICAgICAgICAgICAgICAgIDx0aGVhZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz1cInRleHQtbGVmdCBib3JkZXItYi00IGJvcmRlci1ibGFja1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cImhpZGRlbiB3LTEvMiBzbTp0YWJsZS1jZWxsXCI+PC90aD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJmbGV4IHB4LTFcIj48cCBjbGFzcz1cInNlbGYtc3RhcnRcIj5vaG5lIERpZW5zdGZhaHJyYWQ8L3A+PC90aD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJ0YWJsZS1jZWxsIHctMS8zIHNtOmhpZGRlblwiPjwvdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwicHgtMSB0ZXh0LXJpZ2h0IHNtOnRleHQtbGVmdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5taXQgRGllbnN0ZmFocnJhZDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgPC90aGVhZD5cbiAgICAgICAgICAgICAgICAgICAgPHRib2R5PlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPVwicmVsYXRpdmUgYm9yZGVyLWItMiBib3JkZXItYmxhY2tcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJoaWRkZW4gdy0xLzIgc206dGFibGUtY2VsbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImZvbnQtYm9sZFwiPkJydXR0b21vbmF0c2dlaGFsdDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInB0LTEwIHBiLTQgc206cHQtNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInB0LTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGdldExvY2FsZVByaWNlKGZvcm1kYXRhLnNhbGFyeS5ncm9zc21vbnRobHlzYWxhcnkpIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImFic29sdXRlIHRvcC0wIGxlZnQtMCByaWdodC0wIGZsZXggc206aGlkZGVuXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwicHQtMiBteC1hdXRvIGZvbnQtYm9sZFwiPkJydXR0b21vbmF0c2dlaGFsdDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInB0LTEwIHBiLTQgdGV4dC1yaWdodCBhbGlnbi1ib3R0b20gc206cHQtNCBzbTp0ZXh0LWxlZnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+e3sgZ2V0TG9jYWxlUHJpY2UoZm9ybWRhdGEuc2FsYXJ5Lmdyb3NzbW9udGhseXNhbGFyeSkgfX08L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGVtcGxhdGUgdi1mb3I9XCJhbW91bnQgaW4gYW1vdW50c1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ciA6a2V5PVwiYW1vdW50LmluZGV4XCIgY2xhc3M9XCJyZWxhdGl2ZSBib3JkZXItYi0yIGJvcmRlci1ibGFja1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJoaWRkZW4gdy0xLzIgc206dGFibGUtY2VsbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJmb250LWJvbGRcIj57eyBhbW91bnQubGFiZWwgfX08L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInB0LTEwIHBiLTQgc206cHQtNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+MCwwMCDigqw8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImFic29sdXRlIHRvcC0wIGxlZnQtMCByaWdodC0wIGZsZXggc206aGlkZGVuXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInB0LTIgbXgtYXV0byBmb250LWJvbGRcIj57eyBhbW91bnQubGFiZWwgfX08L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInB0LTEwIHBiLTQgdGV4dC1yaWdodCBhbGlnbi1ib3R0b20gc206cHQtNCBzbTp0ZXh0LWxlZnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPnt7IGFtb3VudC50ZXh0IH19PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8dHIgY2xhc3M9XCJyZWxhdGl2ZSBib3JkZXItYi0yIGJvcmRlci1ibGFja1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImhpZGRlbiB3LTEvMiBzbTp0YWJsZS1jZWxsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiZm9udC1ib2xkXCI+VW13YW5kbHVuZ3NiZXRyYWcgTGVhc2luZ3JhdGU8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwdC0xMCBwYi00IHNtOnB0LTRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+MCwwMCDigqw8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJhYnNvbHV0ZSB0b3AtMCBsZWZ0LTAgcmlnaHQtMCBmbGV4IHNtOmhpZGRlblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInB0LTIgbXgtYXV0byBmb250LWJvbGRcIj5VbXdhbmRsdW5nc2JldHJhZyBMZWFzaW5ncmF0ZTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInB0LTEwIHBiLTQgdGV4dC1yaWdodCBhbGlnbi1ib3R0b20gc206cHQtNCBzbTp0ZXh0LWxlZnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+LSB7eyBnZXRMb2NhbGVQcmljZShwcm9kdWN0RGF0YS5sZWFzaW5nX2dyb3NzKSB9fTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz1cInJlbGF0aXZlIGJvcmRlci1iLTIgYm9yZGVyLWJsYWNrXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiaGlkZGVuIHctMS8yIHNtOnRhYmxlLWNlbGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJmb250LWJvbGRcIj5VbXdhbmRsdW5nc2JldHJhZyBSdW5kdW0tU2NodXR6PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicHQtMTAgcGItNCBzbTpwdC00XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjAsMDAg4oKsPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYWJzb2x1dGUgdG9wLTAgbGVmdC0wIHJpZ2h0LTAgZmxleCBzbTpoaWRkZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJwdC0yIG14LWF1dG8gZm9udC1ib2xkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbXdhbmRsdW5nc2JldHJhZyBSdW5kdW0tU2NodXR6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInB0LTEwIHBiLTQgdGV4dC1yaWdodCBhbGlnbi1ib3R0b20gc206cHQtNCBzbTp0ZXh0LWxlZnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtIHt7IGdldExvY2FsZVByaWNlKHByb2R1Y3REYXRhLmNvbnZlcnNpb25fYW1vdW50X2luc3VyYW5jZSkgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPVwicmVsYXRpdmUgYm9yZGVyLWItMiBib3JkZXItYmxhY2tcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJoaWRkZW4gdy0xLzIgc206dGFibGUtY2VsbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImZvbnQtYm9sZFwiPlVtd2FuZGx1bmdzYmV0cmFnIFNlcnZpY2UtUGFrZXQ8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwdC0xMCBwYi00IHNtOnB0LTRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+MCwwMCDigqw8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJhYnNvbHV0ZSB0b3AtMCBsZWZ0LTAgcmlnaHQtMCBmbGV4IHNtOmhpZGRlblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInB0LTIgbXgtYXV0byBmb250LWJvbGRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVtd2FuZGx1bmdzYmV0cmFnIFNlcnZpY2UgUGFrZXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicHQtMTAgcGItNCB0ZXh0LXJpZ2h0IGFsaWduLWJvdHRvbSBzbTpwdC00IHNtOnRleHQtbGVmdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD4tIHt7IGdldExvY2FsZVByaWNlKHByb2R1Y3REYXRhLnNlcnZpY2UpIH19PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdi1pZj1cImZvcm1kYXRhLnNhbGFyeS5ncmFudF9wZXJjZW50YWdlID4gMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyZWxhdGl2ZSBib3JkZXItYi0yIGJvcmRlci1ibGFja1wiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiaGlkZGVuIHctMS8yIHNtOnRhYmxlLWNlbGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJmb250LWJvbGRcIj5BcmJlaXRnZWJlci1adXNjaHVzczwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInB0LTEwIHBiLTQgc206cHQtNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD4wLDAwIOKCrDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImFic29sdXRlIHRvcC0wIGxlZnQtMCByaWdodC0wIGZsZXggc206aGlkZGVuXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwicHQtMiBteC1hdXRvIGZvbnQtYm9sZFwiPkFyYmVpdGdlYmVyLVp1c2NodXNzPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicHQtMTAgcGItNCB0ZXh0LXJpZ2h0IGFsaWduLWJvdHRvbSBzbTpwdC00IHNtOnRleHQtbGVmdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD4rIHt7IGdldExvY2FsZVByaWNlKHByb2R1Y3REYXRhLmdyYW50KSB9fTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz1cInJlbGF0aXZlIGJvcmRlci1iLTIgYm9yZGVyLWJsYWNrXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiaGlkZGVuIHctMS8yIHNtOnRhYmxlLWNlbGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJmb250LWJvbGRcIj5HZWxkd2VydGVyIFZvcnRlaWwgKDAsMjUlIFJlZ2VsKTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInB0LTEwIHBiLTQgc206cHQtNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD4wLDAwIOKCrDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImFic29sdXRlIHRvcC0wIGxlZnQtMCByaWdodC0wIGZsZXggc206aGlkZGVuXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwicHQtMiBteC1hdXRvIGZvbnQtYm9sZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR2VsZHdlcnRlciBWb3J0ZWlsICgwLDI1JSBSZWdlbClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicHQtMTAgcGItNCB0ZXh0LXJpZ2h0IGFsaWduLWJvdHRvbSBzbTpwdC00IHNtOnRleHQtbGVmdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD4rIHt7IGdldExvY2FsZVByaWNlKHByb2R1Y3REYXRhLnBlY3VuaWFyeV9hZHZhbnRhZ2UpIH19PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RyPiAtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz1cInJlbGF0aXZlIGJvcmRlci1iLTIgYm9yZGVyLWJsYWNrXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiaGlkZGVuIHctMS8yIHNtOnRhYmxlLWNlbGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJmb250LWJvbGRcIj5CZXJlY2hudW5nc2dydW5kbGFnZTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInB0LTEwIHBiLTQgc206cHQtNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD57eyBnZXRMb2NhbGVQcmljZShmb3JtZGF0YS5zYWxhcnkuZ3Jvc3Ntb250aGx5c2FsYXJ5KSB9fTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImFic29sdXRlIHRvcC0wIGxlZnQtMCByaWdodC0wIGZsZXggc206aGlkZGVuXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwicHQtMiBteC1hdXRvIGZvbnQtYm9sZFwiPkJlcmVjaG51bmdzZ3J1bmRsYWdlPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicHQtMTAgcGItNCB0ZXh0LXJpZ2h0IGFsaWduLWJvdHRvbSBzbTpwdC00IHNtOnRleHQtbGVmdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGdldExvY2FsZVByaWNlKHByb2R1Y3REYXRhLmNhbGN1bGF0aW9uX2Jhc2UpIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz1cInJlbGF0aXZlIGJvcmRlci1iLTIgYm9yZGVyLWJsYWNrXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiaGlkZGVuIHctMS8yIHNtOnRhYmxlLWNlbGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJmb250LWJvbGRcIj5TdGV1ZXJuIGdlc2FtdDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInB0LTEwIHBiLTQgc206cHQtNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD4tIHt7IGdldExvY2FsZVByaWNlKHByb2R1Y3REZXRhaWxzLnRheF9zdW0uZ3Jvc3MpIH19PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYWJzb2x1dGUgdG9wLTAgbGVmdC0wIHJpZ2h0LTAgZmxleCBzbTpoaWRkZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJwdC0yIG14LWF1dG8gZm9udC1ib2xkXCI+U3RldWVybiBnZXNhbXQ8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwdC0xMCBwYi00IHRleHQtcmlnaHQgYWxpZ24tYm90dG9tIHNtOnB0LTQgc206dGV4dC1sZWZ0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPi0ge3sgZ2V0TG9jYWxlUHJpY2UocHJvZHVjdERldGFpbHMudGF4X3N1bS5uZXQpIH19PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPVwicmVsYXRpdmUgYm9yZGVyLWItMiBib3JkZXItYmxhY2tcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJoaWRkZW4gdy0xLzIgc206dGFibGUtY2VsbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImZvbnQtYm9sZFwiPlNvemlhbGFiZ2FiZW4gZ2VzYW10PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicHQtMTAgcGItNCBzbTpwdC00XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRMb2NhbGVQcmljZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvZHVjdERldGFpbHMuc29jaWFsX2NvbnRyaWJ1dGlvbnNfdG90YWwuZ3Jvc3MsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYWJzb2x1dGUgdG9wLTAgbGVmdC0wIHJpZ2h0LTAgZmxleCBzbTpoaWRkZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJwdC0yIG14LWF1dG8gZm9udC1ib2xkXCI+U296aWFsYWJnYWJlbiBnZXNhbXQ8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwdC0xMCBwYi00IHRleHQtcmlnaHQgYWxpZ24tYm90dG9tIHNtOnB0LTQgc206dGV4dC1sZWZ0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRMb2NhbGVQcmljZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvZHVjdERldGFpbHMuc29jaWFsX2NvbnRyaWJ1dGlvbnNfdG90YWwubmV0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZSB2LWZvcj1cIm5ldF9hbW91bnQgaW4gbmV0X2Ftb3VudHNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHIgOmtleT1cIm5ldF9hbW91bnQuaW5kZXhcIiBjbGFzcz1cInJlbGF0aXZlIGJvcmRlci1iLTIgYm9yZGVyLWJsYWNrXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImhpZGRlbiB3LTEvMiBzbTp0YWJsZS1jZWxsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImZvbnQtYm9sZFwiPnt7IG5ldF9hbW91bnQubGFiZWwgfX08L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInB0LTEwIHBiLTQgc206cHQtNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+MCwwMCDigqw8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImFic29sdXRlIHRvcC0wIGxlZnQtMCByaWdodC0wIGZsZXggc206aGlkZGVuXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInB0LTIgbXgtYXV0byBmb250LWJvbGRcIj57eyBuZXRfYW1vdW50LmxhYmVsIH19PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwdC0xMCBwYi00IHRleHQtcmlnaHQgYWxpZ24tYm90dG9tIHNtOnB0LTQgc206dGV4dC1sZWZ0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD57eyBuZXRfYW1vdW50LnRleHQgfX08L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDx0ciBjbGFzcz1cInJlbGF0aXZlIGJvcmRlci1iLTIgYm9yZGVyLWJsYWNrXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiaGlkZGVuIHctMS8yIHNtOnRhYmxlLWNlbGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJmb250LWJvbGRcIj5HZWxkd2VydGVyIFZvcnRlaWwgKDAsMjUlIFJlZ2VsKTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInB0LTEwIHBiLTQgc206cHQtNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD4tIDAsMDAg4oKsPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYWJzb2x1dGUgdG9wLTAgbGVmdC0wIHJpZ2h0LTAgZmxleCBzbTpoaWRkZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJwdC0yIG14LWF1dG8gZm9udC1ib2xkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHZWxkd2VydGVyIFZvcnRlaWwgKDAsMjUlIFJlZ2VsKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwdC0xMCBwYi00IHRleHQtcmlnaHQgYWxpZ24tYm90dG9tIHNtOnB0LTQgc206dGV4dC1sZWZ0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZ2V0TG9jYWxlUHJpY2UocHJvZHVjdERhdGEucGVjdW5pYXJ5X2FkdmFudGFnZSkgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RyPiAtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz1cInJlbGF0aXZlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiaGlkZGVuIHctMS8yIHNtOnRhYmxlLWNlbGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJmb250LWJvbGRcIj5OZXR0b21vbmF0c2dlaGFsdDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInB0LTEwIHBiLTQgc206cHQtNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGdldExvY2FsZVByaWNlKHByb2R1Y3REZXRhaWxzLnNhbGFyeS5ncm9zcykgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYWJzb2x1dGUgdG9wLTAgbGVmdC0wIHJpZ2h0LTAgZmxleCBzbTpoaWRkZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJwdC0yIG14LWF1dG8gZm9udC1ib2xkXCI+TmV0dG9tb25hdHNnZWhhbHQ8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwdC0xMCBwYi00IHRleHQtcmlnaHQgYWxpZ24tYm90dG9tIHNtOnB0LTQgc206dGV4dC1sZWZ0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZ2V0TG9jYWxlUHJpY2UocHJvZHVjdERldGFpbHMuc2FsYXJ5Lm5ldCkgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PlxuICAgICAgICAgICAgICAgIDwvdGFibGU+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBweS00IHRleHQtY2VudGVyIHRleHQtd2hpdGUgYmctYmxhY2tcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+RGlmZmVyZW56IE5ldHRvbW9uYXRzZ2VoYWx0ID0gSW5kaXZpZHVlbGxlIE51dHp1bmdzcmF0ZTo8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC0yeGwgZm9udC1ib2xkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBnZXRMb2NhbGVQcmljZShwcm9kdWN0RGF0YS5sZWFzaW5nX25ldCkgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwicHktNCBwdC0xNiB0ZXh0LTJ4bCBmb250LXNlbWlib2xkXCI+XG4gICAgICAgICAgICAgICAgICAgIFNvIGVycmVjaG5ldCBzaWNoIGRpZSBFcnNwYXJuaXMgenVtIFByaXZhdGthdWY6XG4gICAgICAgICAgICAgICAgPC9oMj5cblxuICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz1cInctZnVsbCB0ZXh0LWxnIHRhYmxlLWZpeGVkXCI+XG4gICAgICAgICAgICAgICAgICAgIDx0aGVhZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz1cInRleHQtbGVmdCBib3JkZXItYi00IGJvcmRlci1ibGFja1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cImhpZGRlbiB3LTEvMiBzbTp0YWJsZS1jZWxsXCI+PC90aD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+UHJpdmF0a2F1ZiBtaXQgU2NodXR6PC90aD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJ0YWJsZS1jZWxsIHctMS8zIHNtOmhpZGRlblwiPjwvdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwicHgtMSB0ZXh0LXhzIHRleHQtcmlnaHQgc206dGV4dC1sZWZ0IHNtOnRleHQtbGdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJmb250LW5vcm1hbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZyBjbGFzcz1cInRleHQtbGdcIj5taXQgRGllbnN0ZmFocnJhZDwvc3Ryb25nPjxiciAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5rbC4gUnVuZHVtLVNjaHV0elxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+XG4gICAgICAgICAgICAgICAgICAgIDx0Ym9keT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz1cInJlbGF0aXZlIGJvcmRlci1iLTIgYm9yZGVyLWJsYWNrXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiaGlkZGVuIHctMS8yIHNtOnRhYmxlLWNlbGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJmb250LWJvbGRcIj4oRS0pIEJpa2U8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwdC0xMCBwYi00IHNtOnB0LTRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBnZXRMb2NhbGVQcmljZShmb3JtZGF0YS5wcm9kdWN0cy5wcmljZSkgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYWJzb2x1dGUgdG9wLTAgbGVmdC0wIHJpZ2h0LTAgZmxleCBzbTpoaWRkZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJwdC0yIG14LWF1dG8gZm9udC1ib2xkXCI+U2Nvb3RlcjwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInB0LTEwIHBiLTQgdGV4dC1yaWdodCBhbGlnbi1ib3R0b20gc206cHQtNCBzbTp0ZXh0LWxlZnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoe3sgZm9ybWRhdGEuc2FsYXJ5LmR1cmF0aW9uIH19IE1vbmF0ZSB4XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBnZXRMb2NhbGVQcmljZShwcm9kdWN0RGF0YS5sZWFzaW5nX25ldCkgfX0pID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGdldExvY2FsZVByaWNlKHByb2R1Y3REYXRhLmxlYXNpbmdfbmV0X3RvdGFsKSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9XCJyZWxhdGl2ZSBib3JkZXItYi0yIGJvcmRlci1ibGFja1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImhpZGRlbiB3LTEvMiBzbTp0YWJsZS1jZWxsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiZm9udC1ib2xkXCI+enpnbC4gUnVuZHVtLVNjaHV0eiAoR2VoYWx0c3Vtd2FuZGx1bmcpPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicHQtMTAgcGItNCBzbTpwdC00XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZ2V0TG9jYWxlUHJpY2UocHJvZHVjdERhdGEuZ2VuZXJhbF9pbnN1cmFuY2UpIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImFic29sdXRlIHRvcC0wIGxlZnQtMCByaWdodC0wIGZsZXggc206aGlkZGVuXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwicHQtMiBteC1hdXRvIGZvbnQtYm9sZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgenpnbC4gUnVuZHVtLVNjaHV0eiAoR2VoYWx0c3Vtd2FuZGx1bmcpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInB0LTEwIHBiLTQgdGV4dC1yaWdodCBhbGlnbi1ib3R0b20gc206cHQtNCBzbTp0ZXh0LWxlZnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+aW5rbHVzaXZlPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdi1pZj1cInByb2R1Y3REYXRhLmdlbmVyYWxfc2VydmljZV9jb3N0cyA+IDBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicmVsYXRpdmUgYm9yZGVyLWItMiBib3JkZXItYmxhY2tcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImhpZGRlbiB3LTEvMiBzbTp0YWJsZS1jZWxsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiZm9udC1ib2xkXCI+enpnbC4gU2VydmljZTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInB0LTEwIHBiLTQgc206cHQtNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGdldExvY2FsZVByaWNlKHByb2R1Y3REYXRhLmdlbmVyYWxfc2VydmljZV9jb3N0cykgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYWJzb2x1dGUgdG9wLTAgbGVmdC0wIHJpZ2h0LTAgZmxleCBzbTpoaWRkZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJwdC0yIG14LWF1dG8gZm9udC1ib2xkXCI+enpnbC4gU2VydmljZTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInB0LTEwIHBiLTQgdGV4dC1yaWdodCBhbGlnbi1ib3R0b20gc206cHQtNCBzbTp0ZXh0LWxlZnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+aW5rbHVzaXZlPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPVwicmVsYXRpdmUgYm9yZGVyLWItMiBib3JkZXItYmxhY2tcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJoaWRkZW4gdy0xLzIgc206dGFibGUtY2VsbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImZvbnQtYm9sZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXJ3YXJ0ZXRlciBHZWJyYXVjaHRrYXVmcHJlaXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHByb2R1Y3REYXRhLmNhbGN1bGF0aW9uX3Jlc2lkdWFsIH19JVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwdC0xMCBwYi00IHNtOnB0LTRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+e3sgZ2V0TG9jYWxlUHJpY2UoMCkgfX08L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJhYnNvbHV0ZSB0b3AtMCBsZWZ0LTAgcmlnaHQtMCBmbGV4IHNtOmhpZGRlblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInB0LTIgbXgtYXV0byBmb250LWJvbGRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVyd2FydGV0ZXIgR2VicmF1Y2h0a2F1ZnByZWlzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBwcm9kdWN0RGF0YS5jYWxjdWxhdGlvbl9yZXNpZHVhbCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwdC0xMCBwYi00IHRleHQtcmlnaHQgYWxpZ24tYm90dG9tIHNtOnB0LTQgc206dGV4dC1sZWZ0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZ2V0TG9jYWxlUHJpY2UocHJvZHVjdERhdGEuZ2VuZXJhbF9yZXN0KSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+XG4gICAgICAgICAgICAgICAgPC90YWJsZT5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBweS00IHRleHQtY2VudGVyIHRleHQtd2hpdGUgYmctYmxhY2tcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+QmFya2F1ZiBtaW51cyBEaWVuc3RmYWhycmFkID0gRXJzcGFybmlzIHZvbjo8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC0yeGwgZm9udC1ib2xkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBnZXRMb2NhbGVQcmljZShwcm9kdWN0RGF0YS5zYXZpbmcpIH19ICh7e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2R1Y3REYXRhLnNhdmluZ19wZXJjZW50YWdlXG4gICAgICAgICAgICAgICAgICAgICAgICB9fSUpXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHQtNCBwYi04XCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICA+QmVyZWNobnVuZyBvaG5lIEdld8OkaHIuIEJpdHRlIHdlbmRlbiBTaWUgc2ljaCBhbiBJaHJlbiBTdGV1ZXJiZXJhdGVyLCB1bVxuICAgICAgICAgICAgICAgICAgICAgICAgZWluZSB2ZXJiaW5kbGljaGUgS2Fsa3VsYXRpb24genUgZXJoYWx0ZW4uPC9zcGFuXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvdGVtcGxhdGU+XG5cbjxzY3JpcHQ+XG5pbXBvcnQgY29uZmlnIGZyb20gJy4uLy4uL2NvbmZpZy9jYWxjdWxhdG9yLmNvbmZpZy5qcydcbmltcG9ydCB7IGRlYm91bmNlIH0gZnJvbSAnbG9kYXNoJ1xuaW1wb3J0IGF4aW9zIGZyb20gJ2F4aW9zJ1xuaW1wb3J0IEluZm9wb3B1cCBmcm9tICcuL2NvbXBvbmVudHMvSW5mb3BvcHVwLnZ1ZSdcblxuZXhwb3J0IGRlZmF1bHQge1xuICAgIGNvbXBvbmVudHM6IHsgSW5mb3BvcHVwIH0sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgdXJsOiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICBkZWZhdWx0OiAnJyxcbiAgICAgICAgfSxcbiAgICAgICAgYXV0aF90b2tlbjoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgZGVmYXVsdDogJycsXG4gICAgICAgIH0sXG4gICAgICAgIGNvdXBvbl9jb25maWc6IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIGRlZmF1bHQ6ICcnLFxuICAgICAgICB9LFxuICAgICAgICB3aXRoX3NvY2lhbDoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgZGVmYXVsdDogJzEnLFxuICAgICAgICB9LFxuICAgICAgICBjb25maWdfdG9rZW46IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIGRlZmF1bHQ6ICcnLFxuICAgICAgICB9LFxuICAgICAgICByZXNpZHVhbDoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgZGVmYXVsdDogJycsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGN1bGF0b3JfY29sb3I6IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIGRlZmF1bHQ6ICcnLFxuICAgICAgICB9LFxuICAgICAgICBlbXBsb3llcl9ncmFudDoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgZGVmYXVsdDogJycsXG4gICAgICAgIH0sXG4gICAgICAgIGNvbG9yX2J1dHRvbjoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgZGVmYXVsdDogJycsXG4gICAgICAgIH0sXG4gICAgICAgIHBvcnRhbDoge1xuICAgICAgICAgICAgdHlwZTogQm9vbGVhbixcbiAgICAgICAgICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgICBncmFudFR5cGVfY29uZmlnOiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICBkZWZhdWx0OiAnJyxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIGRhdGEoKSB7XG4gICAgICAgIGNvbnN0IGZvcm1kYXRhID0ge1xuICAgICAgICAgICAgLi4uY29uZmlnLnZlbG8uZGVmYXVsdHMsXG4gICAgICAgICAgICBzYWxhcnk6IHtcbiAgICAgICAgICAgICAgICAuLi5jb25maWcudmVsby5kZWZhdWx0cy5zYWxhcnksXG4gICAgICAgICAgICAgICAgcmVzaWR1YWw6IHRoaXMucmVzaWR1YWwsXG4gICAgICAgICAgICAgICAgZ3JhbnRfcGVyY2VudGFnZTogSlNPTi5wYXJzZSh0aGlzLmVtcGxveWVyX2dyYW50KS5sZWFzaW5nLnZhbHVlLFxuICAgICAgICAgICAgICAgIGNhbGNBR1JTOiBKU09OLnBhcnNlKHRoaXMuZW1wbG95ZXJfZ3JhbnQpLnByb3RlY3Rpb24udmFsdWUsXG4gICAgICAgICAgICAgICAgZ3JhbnRfc2VydmljZTogSlNPTi5wYXJzZSh0aGlzLmVtcGxveWVyX2dyYW50KS5wYWNrYWdlLnZhbHVlLFxuICAgICAgICAgICAgICAgIHRheGRlZHVjdGlvbjogSlNPTi5wYXJzZSh0aGlzLmVtcGxveWVyX2dyYW50KS50YXgudmFsdWUsXG4gICAgICAgICAgICAgICAgLy8gc2VydmljZTogT2JqZWN0LmtleXMoSlNPTi5wYXJzZSh0aGlzLmNvdXBvbikpWzBdLFxuICAgICAgICAgICAgICAgIC8vIHNlcnZpY2VfdmFsdWU6IE9iamVjdC52YWx1ZXMoSlNPTi5wYXJzZSh0aGlzLmNvdXBvbikpWzBdLnZhbHVlLFxuICAgICAgICAgICAgICAgIC8vIHNlcnZpY2VfdmFsdWVfbmV0OiBPYmplY3QudmFsdWVzKEpTT04ucGFyc2UodGhpcy5jb3Vwb24pKVswXS52YWx1ZV9uZXQsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcHJvZHVjdHM6IHtcbiAgICAgICAgICAgICAgICBpZDogY29uZmlnLnZlbG8uZGVmYXVsdHMucHJvZHVjdHMuaWQsXG4gICAgICAgICAgICAgICAgcHJpY2U6IGNvbmZpZy52ZWxvLmRlZmF1bHRzLnByb2R1Y3RzLnByaWNlLFxuICAgICAgICAgICAgICAgIG1zcnA6IGNvbmZpZy52ZWxvLmRlZmF1bHRzLnByb2R1Y3RzLm1zcnAsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0YXhDbGFzc2VzOiBbMSwgMiwgMywgNCwgNSwgNl0sXG4gICAgICAgICAgICBidXR0b25UcmlnZ2VyOiBmYWxzZSxcbiAgICAgICAgICAgIHNob3dTdmc6IHRydWUsXG4gICAgICAgICAgICBzaG93RXJyb3I6IGZhbHNlLFxuICAgICAgICAgICAgc2hvd0ZpZWxkczogZmFsc2UsXG4gICAgICAgICAgICBzaG93VGFibGU6IHRydWUsXG4gICAgICAgICAgICBpc2xvYWRpbmc6IGZhbHNlLFxuICAgICAgICAgICAgdmF0OiBjb25maWcudmVsby5idWRnZXQudmF0LFxuICAgICAgICAgICAgbWF4VmFsdWU6IGNvbmZpZy52ZWxvLmJ1ZGdldC5tYXggKiBjb25maWcudmVsby5idWRnZXQudmF0LFxuICAgICAgICAgICAgbWluVmFsdWU6IGNvbmZpZy52ZWxvLmJ1ZGdldC5taW4gKiBjb25maWcudmVsby5idWRnZXQudmF0LFxuICAgICAgICAgICAgaGVhbHRoTWluVmFsdWU6IGNvbmZpZy5oZWFsdGhpbnN1cmFuY2Vjb250cmlidXRpb24ubWluLFxuICAgICAgICAgICAgaGVhbHRoTWF4VmFsdWU6IGNvbmZpZy5oZWFsdGhpbnN1cmFuY2Vjb250cmlidXRpb24ubWF4LFxuICAgICAgICAgICAgY291cG9uOiBjb25maWcudmVsby5kZWZhdWx0cy5jb3Vwb24sXG4gICAgICAgICAgICBmb3JtZGF0YSxcbiAgICAgICAgICAgIGNhbGN1bGF0b3JWYWx1ZXM6IGNvbmZpZy52ZWxvLmJ1ZGdldCxcbiAgICAgICAgICAgIGFwaURhdGE6IHt9LFxuICAgICAgICAgICAgaGVhZGVyOiB7XG4gICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICAgICAgICAnQ2FjaGUtQ29udHJvbCc6ICduby1jYWNoZScsXG4gICAgICAgICAgICAgICAgQWNjZXB0OiAnYXBwbGljYXRpb24veC5jYWxjdWxhdG9yLnYxK2pzb24nLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNlbmREYXRhOiBkZWJvdW5jZSh0aGlzLnNlbmRSZXF1ZXN0VG9DYWxjdWxhdG9yLCAxNTApLFxuICAgICAgICAgICAgc2VsZWN0ZWRDb3Vwb246IGZvcm1kYXRhLnNhbGFyeS5zZXJ2aWNlLFxuICAgICAgICB9XG4gICAgfSxcbiAgICBiZWZvcmVNb3VudCgpIHtcbiAgICAgICAgaWYgKEpTT04ucGFyc2UodGhpcy5lbXBsb3llcl9ncmFudCkuZml4ZWQgJiYgSlNPTi5wYXJzZSh0aGlzLmVtcGxveWVyX2dyYW50KS5maXhlZC52YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5mb3JtZGF0YS5zYWxhcnkuZ3JhbnRfZml4dmFsdWUgPSBKU09OLnBhcnNlKHRoaXMuZW1wbG95ZXJfZ3JhbnQpLmZpeGVkLnZhbHVlXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1kYXRhLnNhbGFyeS5ncmFudF9maXh2YWx1ZSA9IDBcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5jb3Vwb25fY29uZmlnICYmIHRoaXMuY291cG9uX2NvbmZpZyAhPT0gJycpIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybWRhdGEuc2FsYXJ5LnNlcnZpY2UgPSBPYmplY3Qua2V5cyhKU09OLnBhcnNlKHRoaXMuY291cG9uX2NvbmZpZykpWzBdXG4gICAgICAgICAgICA7KHRoaXMuZm9ybWRhdGEuc2FsYXJ5LnNlcnZpY2VfdmFsdWVfbmV0ID0gT2JqZWN0LnZhbHVlcyhcbiAgICAgICAgICAgICAgICBKU09OLnBhcnNlKHRoaXMuY291cG9uX2NvbmZpZyksXG4gICAgICAgICAgICApWzBdLnZhbHVlX25ldCksXG4gICAgICAgICAgICAgICAgKHRoaXMuZm9ybWRhdGEuc2FsYXJ5LnNlcnZpY2VfdmFsdWUgPSBPYmplY3QudmFsdWVzKFxuICAgICAgICAgICAgICAgICAgICBKU09OLnBhcnNlKHRoaXMuY291cG9uX2NvbmZpZyksXG4gICAgICAgICAgICAgICAgKVswXS52YWx1ZSlcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDb3Vwb24gPSB0aGlzLmZvcm1kYXRhLnNhbGFyeS5zZXJ2aWNlXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1kYXRhLnNhbGFyeS5zZXJ2aWNlID0gMTJcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIEpTT04ucGFyc2UodGhpcy5lbXBsb3llcl9ncmFudCkuZml4ZWQgJiZcbiAgICAgICAgICAgIEpTT04ucGFyc2UodGhpcy5lbXBsb3llcl9ncmFudCkuZml4ZWQudmFsdWUgPiAwXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5mb3JtZGF0YS5zYWxhcnkuZ3JhbnRfdHlwZSA9ICdFVVInXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1kYXRhLnNhbGFyeS5ncmFudF90eXBlID0gJ3BlcmNlbnQnXG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgcm9vdENvbG9yID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignOnJvb3QnKVxuICAgICAgICByb290Q29sb3Iuc3R5bGUuc2V0UHJvcGVydHkoXG4gICAgICAgICAgICAnLS1jYWxjQ29sb3JCdXR0b24nLFxuICAgICAgICAgICAgSlNPTi5wYXJzZSh0aGlzLmNvbG9yX2J1dHRvbikuY29sb3IuYmFja2dyb3VuZCxcbiAgICAgICAgKVxuICAgICAgICByb290Q29sb3Iuc3R5bGUuc2V0UHJvcGVydHkoJy0tY2FsY0NvbG9yVGV4dCcsIEpTT04ucGFyc2UodGhpcy5jb2xvcl9idXR0b24pLmNvbG9yLnRleHQpXG4gICAgfSxcbiAgICBjb21wdXRlZDoge1xuICAgICAgICB0b2dnbGVHcmFudFR5cGUoKSB7XG4gICAgICAgICAgICByZXR1cm4gKHRoaXMuZ3JhbnRDb25maWdPYmplY3RzLmZpeGVkICYmIHRoaXMuZ3JhbnRDb25maWdPYmplY3RzLmZpeGVkLnZhbHVlID4gMCkgfHxcbiAgICAgICAgICAgICAgICB0aGlzLmdyYW50Q29uZmlnT2JqZWN0cy5sZWFzaW5nLnZhbHVlID4gMFxuICAgICAgICAgICAgICAgID8gJ2hpZGRlbidcbiAgICAgICAgICAgICAgICA6ICcnXG4gICAgICAgIH0sXG4gICAgICAgIGdyYW50VHlwZSgpIHtcbiAgICAgICAgICAgIHJldHVybiAodGhpcy5ncmFudENvbmZpZ09iamVjdHMuZml4ZWQgJiYgdGhpcy5ncmFudENvbmZpZ09iamVjdHMuZml4ZWQudmFsdWUgPiAwKSB8fFxuICAgICAgICAgICAgICAgIHRoaXMuZm9ybWRhdGEuc2FsYXJ5LmdyYW50X3R5cGUgPT0gJ0VVUidcbiAgICAgICAgICAgICAgICA/ICdFVVInXG4gICAgICAgICAgICAgICAgOiAncGVyY2VudCdcbiAgICAgICAgfSxcbiAgICAgICAgZ3JhbnRQZXJjZW50VHlwZSgpIHtcbiAgICAgICAgICAgIHJldHVybiAodGhpcy5ncmFudENvbmZpZ09iamVjdHMuZml4ZWQgJiYgdGhpcy5ncmFudENvbmZpZ09iamVjdHMuZml4ZWQudmFsdWUgPiAwKSB8fFxuICAgICAgICAgICAgICAgIHRoaXMuZm9ybWRhdGEuc2FsYXJ5LmdyYW50X3R5cGUgPT0gJ0VVUidcbiAgICAgICAgICAgICAgICA/ICdoaWRkZW4nXG4gICAgICAgICAgICAgICAgOiAnJ1xuICAgICAgICB9LFxuICAgICAgICBncmFudEZpeGVkVHlwZSgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdyYW50Q29uZmlnT2JqZWN0cy5sZWFzaW5nLnZhbHVlID4gMCB8fFxuICAgICAgICAgICAgICAgICh0aGlzLmZvcm1kYXRhLnNhbGFyeS5ncmFudF90eXBlID09ICdwZXJjZW50JyAmJlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmdyYW50Q29uZmlnT2JqZWN0cy5maXhlZCAmJlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmdyYW50Q29uZmlnT2JqZWN0cy5maXhlZC52YWx1ZSA9PSAwICYmXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ3JhbnRQZXJjZW50VHlwZSAhPT0gJ2hpZGRlbicpXG4gICAgICAgICAgICAgICAgPyAnaGlkZGVuJ1xuICAgICAgICAgICAgICAgIDogJydcbiAgICAgICAgfSxcbiAgICAgICAgaXNQb3J0YWwoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wb3J0YWwgPT0gdHJ1ZSA/ICdoaWRkZW4nIDogJydcbiAgICAgICAgfSxcbiAgICAgICAgY291cG9uT2JqZWN0cygpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5jb3Vwb25fY29uZmlnIHx8IHRoaXMuY291cG9uX2NvbmZpZyA9PT0gJycpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jb3Vwb25cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UodGhpcy5jb3Vwb25fY29uZmlnKVxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBncmFudENvbmZpZ09iamVjdHMoKSB7XG4gICAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZSh0aGlzLmVtcGxveWVyX2dyYW50KVxuICAgICAgICB9LFxuICAgICAgICBjb3Vwb25zKCkge1xuICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHRoaXMuY291cG9uT2JqZWN0cykubWFwKChba2V5LCBvYmpdKSA9PiAoe1xuICAgICAgICAgICAgICAgIHRleHQ6IG9iai50ZXh0LFxuICAgICAgICAgICAgICAgIHZhbHVlX25ldDogb2JqLnZhbHVlX25ldCxcbiAgICAgICAgICAgICAgICB2YWx1ZToga2V5LFxuICAgICAgICAgICAgfSkpXG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yTWVzc2FnZVBlcmNlbnQoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5mb3JtZGF0YS5zYWxhcnkuZ3JhbnRfcGVyY2VudGFnZSA9PT0gJycgJiZcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1kYXRhLnNhbGFyeS5ncmFudF90eXBlID09ICdwZXJjZW50J1xuICAgICAgICAgICAgICAgID8gJ0JpdHRlIGdlYmVuIFNpZSBlaW5lbiBnw7xsdGlnZW4gV2VydCBhbidcbiAgICAgICAgICAgICAgICA6ICcnXG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yTWVzc2FnZUZpeGVkKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZm9ybWRhdGEuc2FsYXJ5LmdyYW50X2ZpeHZhbHVlID09PSAnJyAmJlxuICAgICAgICAgICAgICAgIHRoaXMuZm9ybWRhdGEuc2FsYXJ5LmdyYW50X3R5cGUgPT0gJ0VVUidcbiAgICAgICAgICAgICAgICA/ICdCaXR0ZSBnZWJlbiBTaWUgZWluZW4gZ8O8bHRpZ2VuIFdlcnQgYW4nXG4gICAgICAgICAgICAgICAgOiAnJ1xuICAgICAgICB9LFxuICAgICAgICBlcnJvck1lc3NhZ2VHcm9zcygpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmZvcm1kYXRhLnNhbGFyeS5ncm9zc21vbnRobHlzYWxhcnkgPT09ICcnXG4gICAgICAgICAgICAgICAgPyAnQml0dGUgZ2ViZW4gU2llIGVpbmVuIGfDvGx0aWdlbiBXZXJ0IGFuJ1xuICAgICAgICAgICAgICAgIDogJydcbiAgICAgICAgfSxcbiAgICAgICAgcHJvZHVjdHMoKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGF1dGhvcml6YXRpb246IHRoaXMuYXV0aF90b2tlbixcbiAgICAgICAgICAgICAgICBzYWxhcnk6IHtcbiAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5mb3JtZGF0YS5zYWxhcnksXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBwcm9kdWN0czoge1xuICAgICAgICAgICAgICAgICAgICAxOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAuLi50aGlzLmZvcm1kYXRhLnByb2R1Y3RzLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHNldEdyYW50UGVyY2VudGFnZSgpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm1kYXRhLnNhbGFyeS5ncmFudF9wZXJjZW50YWdlID49IDEwMCkge1xuICAgICAgICAgICAgICAgIHRoaXMuZm9ybWRhdGEuc2FsYXJ5LmdyYW50X3BlcmNlbnRhZ2UgPSAxMDBcbiAgICAgICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgcHJvZHVjdERhdGEoKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuYXBpRGF0YS5wcm9kdWN0c19jYWxjdWxhdGVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHt9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB0aGlzLmFwaURhdGEgJiYgdGhpcy5hcGlEYXRhLnByb2R1Y3RzX2NhbGN1bGF0ZWRcbiAgICAgICAgICAgICAgICA/IE9iamVjdC5rZXlzKHRoaXMuYXBpRGF0YS5wcm9kdWN0c19jYWxjdWxhdGVkW3RoaXMuZm9ybWRhdGEucHJvZHVjdHMuaWRdKVxuICAgICAgICAgICAgICAgICAgICAgIC5tYXAoKHByb2R1Y3RQcmljZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5hcGlEYXRhLnByb2R1Y3RzX2NhbGN1bGF0ZWRbdGhpcy5mb3JtZGF0YS5wcm9kdWN0cy5pZF1bXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9kdWN0UHJpY2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgLnBvcCgpXG4gICAgICAgICAgICAgICAgOiB7fVxuICAgICAgICB9LFxuICAgICAgICBwcm9kdWN0RGV0YWlscygpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2R1Y3REYXRhLmRldGFpbHNcbiAgICAgICAgfSxcbiAgICAgICAgYW1vdW50cygpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2R1Y3REYXRhLmxlYXNpbmcuZ3Jvc3NcbiAgICAgICAgfSxcbiAgICAgICAgbmV0X2Ftb3VudHMoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9kdWN0RGF0YS5sZWFzaW5nLm5ldFxuICAgICAgICB9LFxuICAgICAgICBoYXNQcm9kdWN0RGF0YSgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2R1Y3REYXRhID8gT2JqZWN0LmtleXModGhpcy5wcm9kdWN0RGF0YSkubGVuZ3RoID4gMCA6IGZhbHNlXG4gICAgICAgIH0sXG4gICAgICAgIGlzVmFsaWRhdGVkKCkge1xuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICBwYXJzZUZsb2F0KHRoaXMuZm9ybWRhdGEucHJvZHVjdHMucHJpY2UpICE9PSAwICYmXG4gICAgICAgICAgICAgICAgcGFyc2VGbG9hdCh0aGlzLmZvcm1kYXRhLnByb2R1Y3RzLnByaWNlKSA+IDAgJiZcbiAgICAgICAgICAgICAgICBwYXJzZUZsb2F0KHRoaXMuZm9ybWRhdGEuc2FsYXJ5Lmdyb3NzbW9udGhseXNhbGFyeSkgIT09IDAgJiZcbiAgICAgICAgICAgICAgICBwYXJzZUZsb2F0KHRoaXMuZm9ybWRhdGEuc2FsYXJ5Lmdyb3NzbW9udGhseXNhbGFyeSkgPiAwXG4gICAgICAgICAgICApXG4gICAgICAgIH0sXG4gICAgICAgIGlzQnVkZ2V0QW5kVmFsaWQoKSB7XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIHRoaXMuaXNCdWRnZXQodGhpcy5mb3JtZGF0YS5wcm9kdWN0cy5wcmljZSkgJiZcbiAgICAgICAgICAgICAgICB0aGlzLmlzQnVkZ2V0KHRoaXMuZm9ybWRhdGEuc2FsYXJ5Lmdyb3NzbW9udGhseXNhbGFyeSwgJ2JydXR0bycpICYmXG4gICAgICAgICAgICAgICAgdGhpcy5pc1ZhbGlkYXRlZFxuICAgICAgICAgICAgKVxuICAgICAgICB9LFxuICAgICAgICBidWRnZXRNZXNzYWdlKCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybWRhdGEucHJvZHVjdHMucHJpY2UgPCB0aGlzLm1pblZhbHVlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGBEZXIgYW5nZWdlYmVuZSBQcmVpcyBpc3QgenUgbmllZHJpZy4gRGllc2VyIG11c3MgZ3LDtsOfZXIgc2VpbiBhbHMgJHt0aGlzLmdldExvY2FsZVByaWNlKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLm1pblZhbHVlLFxuICAgICAgICAgICAgICAgICl9YFxuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmZvcm1kYXRhLnByb2R1Y3RzLnByaWNlID4gdGhpcy5tYXhWYWx1ZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBgRGVyIGFuZ2VnZWJlbmUgUHJlaXMgaXN0IHp1IGhvY2guIERpZXNlciBtdXNzIG5pZWRyaWdlciBzZWluIGFscyAke3RoaXMuZ2V0TG9jYWxlUHJpY2UoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWF4VmFsdWUsXG4gICAgICAgICAgICAgICAgKX1gXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gJydcbiAgICAgICAgfSxcbiAgICAgICAgcHJpY2VNZXNzYWdlKCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybWRhdGEucHJvZHVjdHMubXNycCA8IHRoaXMubWluVmFsdWUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYERlciBhbmdlZ2ViZW5lIFByZWlzIGlzdCB6dSBuaWVkcmlnLiBEaWVzZXIgbXVzcyBncsO2w59lciBzZWluIGFscyAke3RoaXMuZ2V0TG9jYWxlUHJpY2UoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWluVmFsdWUsXG4gICAgICAgICAgICAgICAgKX1gXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZm9ybWRhdGEucHJvZHVjdHMubXNycCA+IHRoaXMubWF4VmFsdWUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYERlciBhbmdlZ2ViZW5lIFByZWlzIGlzdCB6dSBob2NoLiBEaWVzZXIgbXVzcyBuaWVkcmlnZXIgc2VpbiBhbHMgJHt0aGlzLmdldExvY2FsZVByaWNlKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLm1heFZhbHVlLFxuICAgICAgICAgICAgICAgICl9YFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuICcnXG4gICAgICAgIH0sXG4gICAgICAgIHN1Y2Nlc3NUZXh0KCkge1xuICAgICAgICAgICAgbGV0IGdldExlYXNpbmdSYXRlID1cbiAgICAgICAgICAgICAgICAodGhpcy5ncmFudENvbmZpZ09iamVjdHMubGVhc2luZyAmJiB0aGlzLmdyYW50Q29uZmlnT2JqZWN0cy5sZWFzaW5nLnZhbHVlID4gMCkgfHxcbiAgICAgICAgICAgICAgICAodGhpcy5ncmFudENvbmZpZ09iamVjdHMuZml4ZWQgJiYgdGhpcy5ncmFudENvbmZpZ09iamVjdHMuZml4ZWQudmFsdWUgPiAwKVxuICAgICAgICAgICAgICAgICAgICA/ICcxJ1xuICAgICAgICAgICAgICAgICAgICA6ICcwJ1xuICAgICAgICAgICAgbGV0IGdldEdyYW50U2VydmljZSA9XG4gICAgICAgICAgICAgICAgdGhpcy5ncmFudENvbmZpZ09iamVjdHMucGFja2FnZS5kaXNhYmxlZCA9PSB0cnVlICYmXG4gICAgICAgICAgICAgICAgdGhpcy5ncmFudENvbmZpZ09iamVjdHMucGFja2FnZS52YWx1ZSA+IDBcbiAgICAgICAgICAgICAgICAgICAgPyAnMSdcbiAgICAgICAgICAgICAgICAgICAgOiAnMCdcbiAgICAgICAgICAgIGxldCBnZXRHcmFudFJhdGUgPVxuICAgICAgICAgICAgICAgIHRoaXMuZ3JhbnRDb25maWdPYmplY3RzLnByb3RlY3Rpb24uZGlzYWJsZWQgPT0gdHJ1ZSAmJlxuICAgICAgICAgICAgICAgIHRoaXMuZ3JhbnRDb25maWdPYmplY3RzLnByb3RlY3Rpb24udmFsdWUgPiAwXG4gICAgICAgICAgICAgICAgICAgID8gJzEnXG4gICAgICAgICAgICAgICAgICAgIDogJzAnXG4gICAgICAgICAgICBsZXQgYWdNZXNzYWdlQXJyYXkgPSBbZ2V0R3JhbnRSYXRlLCBnZXRMZWFzaW5nUmF0ZSwgZ2V0R3JhbnRTZXJ2aWNlXVxuXG4gICAgICAgICAgICBzd2l0Y2ggKGFnTWVzc2FnZUFycmF5LmpvaW4oJywnKSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJzAsMCwwJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgICAgY2FzZSAnMSwwLDAnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ0dsw7xja3d1bnNjaCEgRGVpbiBBcmJlaXRnZWJlciA8c3Ryb25nPnNjaGVua3QgZGlyIGRlbiBSdW5kdW0tU2NodXR6Ljwvc3Ryb25nPiBEaWUgU3VtbWUgZGFmw7xyIHdpcmQgdm9uIGRlaW5lciBOdXR6dW5nc3JhdGUgYXV0b21hdGlzY2ggYWJnZXpvZ2VuLidcbiAgICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICBjYXNlICcwLDEsMCc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAnR2zDvGNrd3Vuc2NoISBEZWluIEFyYmVpdGdlYmVyIDxzdHJvbmc+YmV6dXNjaHVzc3QgZGllIExlYXNpbmdyYXRlLjwvc3Ryb25nPiBEZWluZSBOdXR6dW5nc3JhdGUgdmVycmluZ2VydCBzaWNoIGluIEjDtmhlIGRlcyBadXNjaHVzc2VzLidcbiAgICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICBjYXNlICcxLDEsMCc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAnR2zDvGNrd3Vuc2NoISBEZWluIEFyYmVpdGdlYmVyIDxzdHJvbmc+c2NoZW5rdCBkaXIgZGVuIFJ1bmR1bS1TY2h1dHogdW5kIGJlenVzY2h1c3N0IGRpZSBMZWFzaW5ncmF0ZS48L3N0cm9uZz4nXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgICAgY2FzZSAnMSwwLDEnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ0dsw7xja3d1bnNjaCEgRGVpbiBBcmJlaXRnZWJlciA8c3Ryb25nPnNjaGVua3QgZGlyIGRlbiBSdW5kdW0tU2NodXR6IHVuZCBkZW4gU2VydmljZSBHdXRzY2hlaW4uPC9zdHJvbmc+IERpZSBTdW1tZSBkYWbDvHIgd2lyZCB2b24gZGVpbmVyIE51dHp1bmdzcmF0ZSBhdXRvbWF0aXNjaCBhYmdlem9nZW4uJ1xuICAgICAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICAgIGNhc2UgJzAsMSwxJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdHbMO8Y2t3dW5zY2ghIERlaW4gQXJiZWl0Z2ViZXIgPHN0cm9uZz5zY2hlbmt0IGRpciBkZW4gU2VydmljZSBHdXRzY2hlaW4gdW5kIGJlenVzY2h1c3N0IGRpZSBMZWFzaW5ncmF0ZS48L3N0cm9uZz4nXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgICAgY2FzZSAnMCwwLDEnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ0dsw7xja3d1bnNjaCEgRGVpbiBBcmJlaXRnZWJlciA8c3Ryb25nPnNjaGVua3QgZGlyIGRlbiBTZXJ2aWNlIEd1dHNjaGVpbi48L3N0cm9uZz4gRGllIFN1bW1lIGRhZsO8ciB3aXJkIHZvbiBkZWluZXIgTnV0enVuZ3NyYXRlIGF1dG9tYXRpc2NoIGFiZ2V6b2dlbi4nXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgICAgY2FzZSAnMSwxLDEnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ0dsw7xja3d1bnNjaCEgRGVpbiBBcmJlaXRnZWJlciA8c3Ryb25nPnNjaGVua3QgZGlyIGRlbiBSdW5kdW0tU2NodXR6LCBkZW4gU2VydmljZSBHdXRzY2hlaW4gdW5kIGJlenVzY2h1c3N0IGRpZSBMZWFzaW5ncmF0ZS48L3N0cm9uZz4nXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBjcmVhdGVkKCkge1xuICAgICAgICB0aGlzLmZvcm1kYXRhLnNhbGFyeS5oZWFsdGhpbnN1cmFuY2Vjb250cmlidXRpb24gPVxuICAgICAgICAgICAgdGhpcy5mb3JtZGF0YS5zYWxhcnkuaGVhbHRoaW5zdXJhbmNlY29udHJpYnV0aW9uID09IDBcbiAgICAgICAgICAgICAgICA/ICcwLjAnXG4gICAgICAgICAgICAgICAgOiB0aGlzLmZvcm1kYXRhLnNhbGFyeS5oZWFsdGhpbnN1cmFuY2Vjb250cmlidXRpb25cbiAgICB9LFxuICAgIHdhdGNoOiB7XG4gICAgICAgIHNlbGVjdGVkQ291cG9uOiB7XG4gICAgICAgICAgICBoYW5kbGVyKCkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmZvcm1kYXRhLnNhbGFyeS5zZXJ2aWNlID09PSB0aGlzLnNlbGVjdGVkQ291cG9uKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1kYXRhLnNhbGFyeS5zZXJ2aWNlID0gdGhpcy5zZWxlY3RlZENvdXBvblxuICAgICAgICAgICAgICAgIHRoaXMuZm9ybWRhdGEuc2FsYXJ5LnNlcnZpY2VfdmFsdWUgPSB0aGlzLmNvdXBvbk9iamVjdHNbdGhpcy5zZWxlY3RlZENvdXBvbl0udmFsdWVcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1kYXRhLnNhbGFyeS5zZXJ2aWNlX3ZhbHVlX25ldCA9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY291cG9uT2JqZWN0c1t0aGlzLnNlbGVjdGVkQ291cG9uXS52YWx1ZV9uZXRcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBpbW1lZGlhdGU6IHRydWUsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBtZXRob2RzOiB7XG4gICAgICAgIHRvZ2dsZUluZm9Qb3B1cCgpIHtcbiAgICAgICAgICAgIHRoaXMuYnV0dG9uVHJpZ2dlciA9ICF0aGlzLmJ1dHRvblRyaWdnZXJcbiAgICAgICAgICAgIHRoaXMuc2hvd1N2ZyA9IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgdG9nZ2xlU3ZnVmlzaWJpbGl0eSgpIHtcbiAgICAgICAgICAgIHRoaXMuc2hvd1N2ZyA9ICF0aGlzLnNob3dTdmdcbiAgICAgICAgfSxcbiAgICAgICAgc2hvd0Z1cnRoZXJGaWVsZHMoKSB7XG4gICAgICAgICAgICB0aGlzLnNob3dGaWVsZHMgPSAhdGhpcy5zaG93RmllbGRzXG4gICAgICAgIH0sXG4gICAgICAgIGlzQnVkZ2V0KHByaWNlLCBmaWVsZCA9ICcnKSB7XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIChmaWVsZCAhPT0gJycgJiYgcGFyc2VGbG9hdChwcmljZSkgPj0gcGFyc2VGbG9hdCh0aGlzLm1pblZhbHVlKSkgfHxcbiAgICAgICAgICAgICAgICAocGFyc2VGbG9hdChwcmljZSkgPj0gcGFyc2VGbG9hdCh0aGlzLm1pblZhbHVlKSAmJlxuICAgICAgICAgICAgICAgICAgICBwYXJzZUZsb2F0KHByaWNlKSA8PSBwYXJzZUZsb2F0KHRoaXMubWF4VmFsdWUpKVxuICAgICAgICAgICAgKVxuICAgICAgICB9LFxuXG4gICAgICAgIHNob3dDYWxjdWxhdGlvbigpIHtcbiAgICAgICAgICAgIHRoaXMuc2hvd1RhYmxlID0gIXRoaXMuc2hvd1RhYmxlXG4gICAgICAgIH0sXG4gICAgICAgIGFzeW5jIHNlbmRSZXF1ZXN0VG9DYWxjdWxhdG9yKCkge1xuICAgICAgICAgICAgdGhpcy5pc2xvYWRpbmcgPSB0cnVlXG5cbiAgICAgICAgICAgIGlmKCB0aGlzLmZvcm1kYXRhLnNhbGFyeS5oZWFsdGhpbnN1cmFuY2Vjb250cmlidXRpb24gPiBjb25maWcuaGVhbHRoaW5zdXJhbmNlY29udHJpYnV0aW9uLm1heCl7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtZGF0YS5zYWxhcnkuaGVhbHRoaW5zdXJhbmNlY29udHJpYnV0aW9uID0gY29uZmlnLmhlYWx0aGluc3VyYW5jZWNvbnRyaWJ1dGlvbi5tYXhcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmKCB0aGlzLmZvcm1kYXRhLnNhbGFyeS5oZWFsdGhpbnN1cmFuY2Vjb250cmlidXRpb24gPCBjb25maWcuaGVhbHRoaW5zdXJhbmNlY29udHJpYnV0aW9uLm1pbil7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtZGF0YS5zYWxhcnkuaGVhbHRoaW5zdXJhbmNlY29udHJpYnV0aW9uID0gY29uZmlnLmhlYWx0aGluc3VyYW5jZWNvbnRyaWJ1dGlvbi5taW5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICFpc05hTih0aGlzLmZvcm1kYXRhLnByb2R1Y3RzLnByaWNlKSAmJlxuICAgICAgICAgICAgICAgIHRoaXMuZm9ybWRhdGEucHJvZHVjdHMucHJpY2UgPj0gdGhpcy5taW5WYWx1ZSAmJlxuICAgICAgICAgICAgICAgIHRoaXMuZm9ybWRhdGEucHJvZHVjdHMucHJpY2UgPD0gdGhpcy5tYXhWYWx1ZSAmJlxuICAgICAgICAgICAgICAgIHRoaXMuZm9ybWRhdGEuc2FsYXJ5Lmdyb3NzbW9udGhseXNhbGFyeSAhPT0gJycgJiZcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1kYXRhLnByb2R1Y3RzLm1zcnAgIT09ICcnICYmXG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtZGF0YS5zYWxhcnkuZ3JhbnRfZml4dmFsdWUgIT09ICcnICYmXG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtZGF0YS5zYWxhcnkuZ3JhbnRfcGVyY2VudGFnZSAhPT0gJydcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIGF3YWl0IGF4aW9zXG4gICAgICAgICAgICAgICAgICAgIC5wb3N0KFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51cmwgKyAnL2FwaS9jYWxjdWxhdGU/d2l0aG91dEhhc2g9MScsXG4gICAgICAgICAgICAgICAgICAgICAgICB7IC4uLnRoaXMucHJvZHVjdHMgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHsgaGVhZGVyczogdGhpcy5oZWFkZXIgfSxcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAudGhlbigoZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zaG93RXJyb3IgPSBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hcGlEYXRhID0gZGF0YS5kYXRhXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIC5jYXRjaCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNob3dFcnJvciA9IHRydWVcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZ2V0TG9jYWxlUHJpY2UocHJpY2UpIHtcbiAgICAgICAgICAgIHJldHVybiBwcmljZSA9PT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgPyAnJ1xuICAgICAgICAgICAgICAgIDogbmV3IEludGwuTnVtYmVyRm9ybWF0KCdkZS1ERScsIHtcbiAgICAgICAgICAgICAgICAgICAgICBzdHlsZTogJ2N1cnJlbmN5JyxcbiAgICAgICAgICAgICAgICAgICAgICBjdXJyZW5jeTogJ0VVUicsXG4gICAgICAgICAgICAgICAgICB9KS5mb3JtYXQocGFyc2VGbG9hdChwcmljZS50b1N0cmluZygpLnNwbGl0KCcsJykuam9pbignLicpKSlcbiAgICAgICAgfSxcbiAgICAgICAgY3VzdG9tZXJIYXNDaGlsZHJlbigpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm1kYXRhLnNhbGFyeS5jaGlsZCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMuZm9ybWRhdGEuc2FsYXJ5LmNoaWxkdGF4ID0gMFxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB0cmFuc2Zvcm1Gb3JtRGF0YShyZXBfcHJlZml4LCBwcmVmaXgpIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybWRhdGEuc2FsYXJ5Lmdyb3NzbW9udGhseXNhbGFyeSA9IHRoaXMuZm9ybWRhdGEuc2FsYXJ5Lmdyb3NzbW9udGhseXNhbGFyeVxuICAgICAgICAgICAgICAgIC5zcGxpdChyZXBfcHJlZml4KVxuICAgICAgICAgICAgICAgIC5qb2luKHByZWZpeClcbiAgICAgICAgICAgIHRoaXMuZm9ybWRhdGEucHJvZHVjdHMucHJpY2UgPSB0aGlzLmZvcm1kYXRhLnByb2R1Y3RzLnByaWNlXG4gICAgICAgICAgICAgICAgLnNwbGl0KHJlcF9wcmVmaXgpXG4gICAgICAgICAgICAgICAgLmpvaW4ocHJlZml4KVxuICAgICAgICB9LFxuICAgIH0sXG4gICAgYXN5bmMgbW91bnRlZCgpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5zZW5kUmVxdWVzdFRvQ2FsY3VsYXRvcigpXG4gICAgfSxcbn1cbjwvc2NyaXB0PlxuXG48c3R5bGUgc2NvcGVkPlxuc2VsZWN0IHtcbiAgICB0ZXh0LWFsaWduLWxhc3Q6IGNlbnRlcjtcbn1cblxubGFiZWwge1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG48L3N0eWxlPlxuIiwiPHRlbXBsYXRlPlxuICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXIgLW10LTggc206bXQtMFwiIHJlZj1cImVsZW1lbnRzXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXIgYmctZ3JheS0yMDAgcm91bmRlZC1sZ1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lciBwLTRcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZCBncmlkLWNvbHMtMSBnYXAtNCBtYi00IGxnOmdyaWQtY29scy0yXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IHNtOmZsZXgtY29sXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ3LTEvMyBzbTp3LWZ1bGxcIj5LYXVmcHJlaXMgKGJydXR0byk8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cInB1cmNoYXNlcHJpY2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiei5CLjogMjAwMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1kYXRhLnByb2R1Y3RzLnByaWNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInctMS8yIHB5LTEgZm9udC1ib2xkIHRleHQtY2VudGVyIHNtOnctZnVsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlucHV0PVwic2VuZERhdGFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LWlmPVwiIWlzQnVkZ2V0KGZvcm1kYXRhLnByb2R1Y3RzLnByaWNlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJoaWRkZW4gdGV4dC1yZWQtNjAwIHNtOmJsb2NrXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+e3sgYnVkZ2V0TWVzc2FnZShmb3JtZGF0YS5wcm9kdWN0cy5wcmljZSkgfX08L3NwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICB2LWlmPVwiIWlzQnVkZ2V0KGZvcm1kYXRhLnByb2R1Y3RzLnByaWNlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXggdGV4dC1yZWQtNjAwIHNtOmhpZGRlblwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+e3sgYnVkZ2V0TWVzc2FnZShmb3JtZGF0YS5wcm9kdWN0cy5wcmljZSkgfX08L3NwYW5cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBzbTpmbGV4LWNvbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwidy0xLzMgc206dy1mdWxsXCI+QnJ1dHRvZ2VoYWx0PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJncm9zc3NhbGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCIzMDAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybWRhdGEuc2FsYXJ5Lmdyb3NzbW9udGhseXNhbGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ3LTEvMiBweS0xIGZvbnQtYm9sZCB0ZXh0LWNlbnRlciBzbTp3LWZ1bGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpbnB1dD1cInNlbmREYXRhXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1yZWQtNjAwXCI+e3sgZXJyb3JNZXNzYWdlR3Jvc3MgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNwYW4tMSBzcGFjZS15LTIgc206c3BhY2UteS0wXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJwYi0yIHNtOnBiLTBcIj5TdGV1ZXJrbGFzc2U8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpjbGFzcz1cImByYWRpby10b29sYmFyLSR7Y2FsY3VsYXRvcl9jb2xvcn1gXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXggZmxleC1yb3cgLW1sLTIgc3BhY2UteC0yIHJhZGlvLXRvb2xiYXIgc206c3BhY2UteC00IHNtOi1tbC00XCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGVtcGxhdGUgdi1mb3I9XCJ0YXhDbGFzcyBpbiB0YXhDbGFzc2VzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDppZD1cImBjbGFzcyR7dGF4Q2xhc3N9YFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInJvdW5kZWQtZnVsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybWRhdGEuc2FsYXJ5LnRheGNsYXNzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjaGFuZ2U9XCJzZW5kRGF0YVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwibXBwLXRheC1jbGFzc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6dmFsdWU9XCJ0YXhDbGFzc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgOmZvcj1cImBjbGFzcyR7dGF4Q2xhc3N9YFwiPnt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXhDbGFzc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICA8ZGl2IDpjbGFzcz1cIlt0b2dnbGVHcmFudFR5cGVdXCIgY2xhc3M9XCJjb2wtc3Bhbi0xIHNwYWNlLXktMiBzbTpzcGFjZS15LTBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInBiLTIgc206cGItMFwiPkFydCBkZXMgWnVzY2h1c3NlczwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOmNsYXNzPVwiYHJhZGlvLXRvb2xiYXItJHtjYWxjdWxhdG9yX2NvbG9yfWBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LXJvdyAtbWwtNiBzcGFjZS14LTYgcmFkaW8tdG9vbGJhclwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJyYWRpb1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiRVVSXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1kYXRhLnNhbGFyeS5ncmFudF90eXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNoYW5nZT1cInNlbmREYXRhXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cIm1wcC1ncmFudF90eXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCJFVVJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIkVVUlwiPkZlc3RlciBCZXRyYWc8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybWRhdGEuc2FsYXJ5LmdyYW50X3R5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAY2hhbmdlPVwic2VuZERhdGFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cInBlcmNlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwibXBwLWdyYW50X3R5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cInBlcmNlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInBlcmNlbnRcIj5Qcm96ZW50dWFsZXIgWnVzY2h1c3M8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNwYW4tMSBzcGFjZS15LTIgc206c3BhY2UteS0wXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+w5xiZXJuYWhtZSBkZXMgUnVuZHVtLVNjaHV0emVzPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Y2xhc3M9XCJgcmFkaW8tdG9vbGJhci0ke2NhbGN1bGF0b3JfY29sb3J9YFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtcm93IC1tbC02IHNwYWNlLXgtNiByYWRpby10b29sYmFyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJhcmJlaXRuZWhtZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAY2hhbmdlPVwic2VuZERhdGFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybWRhdGEuc2FsYXJ5LmNhbGNBR1JTXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cIm1wcC1jYWxjQUdSU1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPVwiMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJhcmJlaXRuZWhtZXJcIj5BcmJlaXRuZWhtZXI8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybWRhdGEuc2FsYXJ5LmNhbGNBR1JTXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJhcmJlaXRnZWJlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjaGFuZ2U9XCJzZW5kRGF0YVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJtcHAtY2FsY0FHUlNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cIjFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImFyYmVpdGdlYmVyXCI+QXJiZWl0Z2ViZXI8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICA6Y2xhc3M9XCJbZ3JhbnRUeXBlID09ICdwZXJjZW50JyA/ICcnIDogJ2hpZGRlbiddXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibGc6Y29sLXN0YXJ0LTIgcmFkaW8tdG9vbGJhci1udW1iZXJcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cD5BcmJlaXRnZWJlcnp1c2NodXNzIHp1ciBMZWFzaW5ncmF0ZSBpbiAlPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluPVwiMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4PVwiMTAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiYXJiZWl0Z2ViZXJ6dXNjaHVzc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1kYXRhLnNhbGFyeS5ncmFudF9wZXJjZW50YWdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAY2hhbmdlPVwic2VuZERhdGFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpbnB1dD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZm9ybWRhdGEuc2FsYXJ5LmdyYW50X3BlcmNlbnRhZ2UgPiAxMDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtZGF0YS5zYWxhcnkuZ3JhbnRfcGVyY2VudGFnZSA9IDEwMFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZvcm1kYXRhLnNhbGFyeS5ncmFudF9wZXJjZW50YWdlID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1kYXRhLnNhbGFyeS5ncmFudF9maXh2YWx1ZSA9IDBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCIxMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ3LWZ1bGwgcHktMSBmb250LWJvbGQgdGV4dC1jZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOmRpc2FibGVkPVwiZ3JhbnRDb25maWdPYmplY3RzLmxlYXNpbmcuZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1yZWQtNjAwXCI+e3sgZXJyb3JNZXNzYWdlUGVyY2VudCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIDpjbGFzcz1cIltncmFudFR5cGUgPT0gJ0VVUicgPyAnJyA6ICdoaWRkZW4nXVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImxnOmNvbC1zdGFydC0yIHJhZGlvLXRvb2xiYXItbnVtYmVyXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHA+QXJiZWl0Z2ViZXJ6dXNjaHVzcyB6dXIgTGVhc2luZ3JhdGUgaW4g4oKsPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluPVwiMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4PVwiMTAwMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImFyYmVpdGdlYmVyenVzY2h1c3NcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtZGF0YS5zYWxhcnkuZ3JhbnRfZml4dmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjaGFuZ2U9XCJzZW5kRGF0YVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlucHV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmb3JtZGF0YS5zYWxhcnkuZ3JhbnRfZml4dmFsdWUgPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWRhdGEuc2FsYXJ5LmdyYW50X3BlcmNlbnRhZ2UgPSAwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiMzBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidy1mdWxsIHB5LTEgZm9udC1ib2xkIHRleHQtY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpkaXNhYmxlZD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmFudENvbmZpZ09iamVjdHMuZml4ZWQgJiYgZ3JhbnRDb25maWdPYmplY3RzLmZpeGVkLmRpc2FibGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtcmVkLTYwMFwiPnt7IGVycm9yTWVzc2FnZUZpeGVkIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlbGF0aXZlIGZsZXgganVzdGlmeS1jZW50ZXIgdy1mdWxsIG15LTggc206aGlkZGVuXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy1mdWxsIGJvcmRlci1iLTIgYm9yZGVyLXdoaXRlXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPVwic2hvd0Z1cnRoZXJGaWVsZHMoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhYnNvbHV0ZSBmbGV4IGNvbnRlbnQtY2VudGVyIHB4LTIgcHktMSB0ZXh0LXhsIHRleHQtd2hpdGUgdHJhbnNmb3JtIC10cmFuc2xhdGUteS0xLzIgYmctd2hpdGUgcm91bmRlZC1mdWxsIHNtOnB4LTIwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiB2LWlmPVwic2hvd0ZpZWxkc1wiIGNsYXNzPVwicHQtMSBwci0yIHRleHQtYmFzZSB0ZXh0LWJsYWNrXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPkVyd2VpdGVydGUgQW5nYWJlbiB2ZXJiZXJnZW48L3NwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gdi1pZj1cIiFzaG93RmllbGRzXCIgY2xhc3M9XCJwdC0xIHByLTIgdGV4dC1iYXNlIHRleHQtYmxhY2tcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+RXJ3ZWl0ZXJ0ZSBBbmdhYmVuIGFuemVpZ2VuPC9zcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdi1pZj1cIiFzaG93RmllbGRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidy04IGgtNiB0ZXh0LXdoaXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTkgOWwtNyA3LTctN1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LWlmPVwic2hvd0ZpZWxkc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInctOCBoLTYgdGV4dC13aGl0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTUgMTVsNy03IDcgN1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIDpjbGFzcz1cInsgaGlkZGVuOiAhc2hvd0ZpZWxkcyB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZ3JpZC1jb2xzLTEgZ2FwLTQgbWItNCBzcGFjZS15LTMgY29sLXNwYW4tZnVsbCBzbTpncmlkIGxnOmdyaWQtY29scy0yIHNtOnNwYWNlLXktMFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc3Bhbi1mdWxsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPkJ1bmRlc2xhbmQ8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwic3RhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybWRhdGEuc2FsYXJ5LnN0YXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNoYW5nZT1cInNlbmREYXRhXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ3LWZ1bGwgcHktMiB0ZXh0LWNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiQldcIj5CYWRlbi1Xw7xydHRlbWJlcmc8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIkJZXCI+QmF5ZXJuPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJCRVwiPkJlcmxpbjwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiQkJcIj5CcmFuZGVuYnVyZzwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiSEJcIj5CcmVtZW48L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIkhIXCI+SGFtYnVyZzwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiSEVcIj5IZXNzZW48L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIk1WXCI+TWVja2xlbmJ1cmctVm9ycG9tbWVybjwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiTklcIj5OaWVkZXJzYWNoc2VuPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJOV1wiPk5vcmRyaGVpbi1XZXN0ZmFsZW48L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlJQXCI+UmhlaW5sYW5kLVBmYWx6PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJTTFwiPlNhYXJsYW5kPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJTTlwiPlNhY2hzZW48L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlNUXCI+U2FjaHNlbi1BbmhhbHQ8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlNIXCI+U2NobGVzd2lnLUhvbHN0ZWluPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJUSFwiPlRow7xyaW5nZW48L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+WnVzYXR6YmVpdHJhZyBLcmFua2Vua2Fzc2UgaW4gJSAodm9uIHt7IGhlYWx0aE1pblZhbHVlIH19IGJpcyB7eyBoZWFsdGhNYXhWYWx1ZSB9fSk8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOm1pbj1cImhlYWx0aE1pblZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOm1heD1cImhlYWx0aE1heFZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RlcD1cIjAuMDFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybWRhdGEuc2FsYXJ5LmhlYWx0aGluc3VyYW5jZWNvbnRyaWJ1dGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjaGFuZ2U9XCJzZW5kRGF0YVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidy1mdWxsIHB5LTIgZm9udC1ib2xkIHRleHQtY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5LaW5kZXJmcmVpYmV0cmFnPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImNoaWxkcmVuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1kYXRhLnNhbGFyeS5jaGlsZHRheFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjaGFuZ2U9XCJzZW5kRGF0YVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidy1mdWxsIHB5LTIgZm9udC1ib2xkIHRleHQtY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIwXCI+MDwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiMC41XCI+MCw1PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIxXCI+MTwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiMS41XCI+MSw1PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIyXCI+Mjwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiMi41XCI+Miw1PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIzXCI+Mzwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiMy41XCI+Myw1PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCI0XCI+NDwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiNC41XCI+NCw1PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCI1XCI+NTwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiNS41XCI+NSw1PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCI2XCI+Njwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBjb2wtc3RhcnQtMVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgOmNsYXNzPVwiYHctMS82IGNoZWNrYm94LXRvb2xiYXItJHtjYWxjdWxhdG9yX2NvbG9yfSBjaGVja2JveC10b29sYmFyYFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNodXJjaHRheFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInJvdW5kZWQtZnVsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybWRhdGEuc2FsYXJ5LmNodXJjaHRheFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAY2hhbmdlPVwic2VuZERhdGFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImlzY2h1cmNodGF4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDp0cnVlLXZhbHVlPVwiMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ZmFsc2UtdmFsdWU9XCIwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIHYtaWY9XCJmb3JtZGF0YS5zYWxhcnkuY2h1cmNodGF4ID09ICcwJ1wiIGZvcj1cImNodXJjaHRheFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+WDwvbGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgdi1pZj1cImZvcm1kYXRhLnNhbGFyeS5jaHVyY2h0YXggPT0gJzEnXCIgZm9yPVwiY2h1cmNodGF4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID7inJM8L2xhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNlbGYtY2VudGVyXCI+S2lyY2hlbnN0ZXVlcnBmbGljaHQ8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiA6Y2xhc3M9XCJgdy0xLzYgY2hlY2tib3gtdG9vbGJhci0ke2NhbGN1bGF0b3JfY29sb3J9IGNoZWNrYm94LXRvb2xiYXJgXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiaGVhbHRoaW5zdXJhbmNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicm91bmRlZC1mdWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtZGF0YS5zYWxhcnkuaGVhbHRoaW5zdXJhbmNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjaGFuZ2U9XCJzZW5kRGF0YVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiaXNoZWFsdGhpbnN1cmFuY2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOnRydWUtdmFsdWU9XCIxXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpmYWxzZS12YWx1ZT1cIjBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYtaWY9XCJmb3JtZGF0YS5zYWxhcnkuaGVhbHRoaW5zdXJhbmNlID09ICcwJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3I9XCJoZWFsdGhpbnN1cmFuY2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlg8L2xhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LWlmPVwiZm9ybWRhdGEuc2FsYXJ5LmhlYWx0aGluc3VyYW5jZSA9PSAnMSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yPVwiaGVhbHRoaW5zdXJhbmNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID7inJM8L2xhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNlbGYtY2VudGVyXCI+S3JhbmtlbnZlcnNpY2hlcnVuZ3NwZmxpY2h0PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvd1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgOmNsYXNzPVwiYHctMS82IGNoZWNrYm94LXRvb2xiYXItJHtjYWxjdWxhdG9yX2NvbG9yfSBjaGVja2JveC10b29sYmFyYFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cInBlbnNpb250YXhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyb3VuZGVkLWZ1bGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1kYXRhLnNhbGFyeS5wZW5zaW9uaW5zdXJhbmNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjaGFuZ2U9XCJzZW5kRGF0YVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiaXNwZW5zaW9udGF4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDp0cnVlLXZhbHVlPVwiMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ZmFsc2UtdmFsdWU9XCIwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LWlmPVwiZm9ybWRhdGEuc2FsYXJ5LnBlbnNpb25pbnN1cmFuY2UgPT0gJzAnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcj1cInBlbnNpb250YXhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlg8L2xhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LWlmPVwiZm9ybWRhdGEuc2FsYXJ5LnBlbnNpb25pbnN1cmFuY2UgPT0gJzEnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcj1cInBlbnNpb250YXhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPuKckzwvbGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2VsZi1jZW50ZXJcIj5SZW50ZW52ZXJzaWNoZXJ1bmdzcGZsaWNodDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiB2LWlmPVwic2hvd0Vycm9yXCIgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXJlZC02MDBcIlxuICAgICAgICAgICAgICAgID5EaWUgQmVyZWNobnVuZyBrYW5uIG5pY2h0IGF1c2dlZsO8aHJ0IHdlcmRlbi4gQml0dGUgw7xiZXJwcsO8ZmUgZGVpbmUgRWluZ2FiZW48L3NwYW5cbiAgICAgICAgICAgID5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJncmlkIGdyaWQtY29scy0xIHB5LTQgdGV4dC1jZW50ZXIgbGc6Z3JpZC1jb2xzLTIgbGc6dGV4dC1sZWZ0XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbFwiPlxuICAgICAgICAgICAgICAgIDxwPlNvIHZpZWwgd2lyZCBnZXNwYXJ0PC9wPlxuICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cInRleHQtNXhsIGZvbnQtYm9sZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgZ2V0TG9jYWxlUHJpY2UocHJvZHVjdERhdGEubXBwX3NhdmluZ193aXRoX3Jlc3RfdG90YWwpIH19XG4gICAgICAgICAgICAgICAgICAgIDwvaDI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIDpjbGFzcz1cImBjYWxjdWxhdG9yLSR7Y2FsY3VsYXRvcl9jb2xvcn1gXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNlbnRlciB0ZXh0LWJhc2UgbGc6dGV4dC14bCBsZzpqdXN0aWZ5LXN0YXJ0XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMyIDMyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0zMC42NjcgMTQuMDQ0NEMzMC42NjcgMTYuMjA0NSAyOC45MTU5IDE3Ljk1NTUgMjYuNzU1OSAxNy45NTU1XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS41XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNOC4xNzc5NCA5LjIyMDcxQzYuMDc0MjcgMTAuNTg0MSA0LjUwNzkxIDEyLjYzNDIgMy43NDUzNSAxNS4wMjIySDEuMzMzNVYyMi44NDQ0SDQuNTc5NzJDNS4yNTQ4MyAyNC4wMjgxIDYuMTQzMjkgMjUuMDc2NiA3LjIwMDE2IDI1LjkzNjhWMjkuNjg4OUM3LjIwMDE2IDMwLjIyODkgNy42Mzc5MyAzMC42NjY2IDguMTc3OTQgMzAuNjY2NkgxMC4xMzM1QzEwLjY3MzUgMzAuNjY2NiAxMS4xMTEzIDMwLjIyODkgMTEuMTExMyAyOS42ODg5VjI4LjA3MUMxMy42NDg5IDI4LjkxOTUgMTYuMzkyOCAyOC45MjQ1IDE4LjkzMzUgMjguMDg1M1YyOS42ODg5QzE4LjkzMzUgMzAuMjI4OSAxOS4zNzEzIDMwLjY2NjYgMTkuOTExMyAzMC42NjY2SDIxLjg2NjhDMjIuNDA2OCAzMC42NjY2IDIyLjg0NDYgMzAuMjI4OSAyMi44NDQ2IDI5LjY4ODlWMjUuOTU2NEMyNS4yODc0IDI0LjAxNTEgMjYuNzI0MyAyMS4wNzU2IDI2Ljc1NTcgMTcuOTU1NUMyNi43MDkgMTQuMzk5OSAyNC44NjU2IDExLjEwOTYgMjEuODU3NyA5LjIxMjg5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS41XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTEuMTExMyAxMC4xMzM3QzEzLjU3NiA4LjkxMzc3IDE2LjQ2ODggOC45MTM3NyAxOC45MzM2IDEwLjEzMzdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaXAtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE1LjAyMjQgOS4xNTU3MkMxNy4xODI1IDkuMTU1NzIgMTguOTMzNiA3LjQwNDY1IDE4LjkzMzYgNS4yNDQ2MUMxOC45MzM2IDMuMDg0NTYgMTcuMTgyNSAxLjMzMzUgMTUuMDIyNCAxLjMzMzVDMTIuODYyNCAxLjMzMzUgMTEuMTExMyAzLjA4NDU2IDExLjExMTMgNS4yNDQ2MUMxMS4xMTEzIDcuNDA0NjUgMTIuODYyNCA5LjE1NTcyIDE1LjAyMjQgOS4xNTU3MlpcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwicHQtMSBwbC0zIHRleHQtMnhsIHRleHQtYmxhY2tcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPnt7IHByb2R1Y3REYXRhLnNhdmluZ19wZXJjZW50YWdlIH19JTwvc3Ryb25nPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdlc3BhcnQhXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBwdC00IGxnOnB0LTBcIj5cbiAgICAgICAgICAgICAgICA8cD5EaWUgaW5kaXZpZHVlbGxlIE51dHp1bmdzcmF0ZSBiZXRyw6RndDo8L3A+XG4gICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwidGV4dC01eGwgZm9udC1ib2xkXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IGdldExvY2FsZVByaWNlKHByb2R1Y3REYXRhLmxlYXNpbmdfbmV0KSB9fVxuICAgICAgICAgICAgICAgIDwvaDM+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJlbGF0aXZlIGZsZXgganVzdGlmeS1jZW50ZXIgdy1mdWxsIG15LTEyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy1mdWxsIGJvcmRlci1iLTIgYm9yZGVyLWJsYWNrXCI+PC9kaXY+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgQGNsaWNrPVwic2hvd0NhbGN1bGF0aW9uKClcIlxuICAgICAgICAgICAgICAgIDpkaXNhYmxlZD1cInNob3dFcnJvclwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJhYnNvbHV0ZSBmbGV4IGNvbnRlbnQtY2VudGVyIHB4LTUgcHktMSB0ZXh0LXhsIHRleHQtd2hpdGUgdHJhbnNmb3JtIC10cmFuc2xhdGUteS0xLzIgYmctYmxhY2sgcm91bmRlZC1mdWxsIHNtOnB4LTIwXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3BhbiB2LWlmPVwic2hvd1RhYmxlXCIgY2xhc3M9XCJwci02XCI+QmVyZWNobnVuZyBhbnplaWdlbjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3BhbiB2LWlmPVwiIXNob3dUYWJsZVwiIGNsYXNzPVwicHItNlwiPkJlcmVjaG51bmcgdmVyYmVyZ2VuPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgICAgICAgICAgdi1pZj1cInNob3dUYWJsZVwiXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInctOCBoLTYgdGV4dC13aGl0ZVwiXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxuICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMlwiXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE5IDlsLTcgNy03LTdcIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgICAgICAgICAgdi1pZj1cIiFzaG93VGFibGVcIlxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ3LTggaC02IHRleHQtd2hpdGVcIlxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk01IDE1bDctNyA3IDdcIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgdi1pZj1cIiFzaG93VGFibGVcIiBjbGFzcz1cInB5LTEyXCIgOmNsYXNzPVwieyBsb2FkaW5nOiBpc2xvYWRpbmcgfVwiPlxuICAgICAgICAgICAgPGgyIGNsYXNzPVwicHktNiB0ZXh0LTJ4bCBmb250LXNlbWlib2xkXCI+RXJyZWNobnVuZyBkZXIgbW9uYXRsaWNoZW4gS29zdGVuOjwvaDI+XG5cbiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz1cInctZnVsbCBweS00IHRleHQtbGcgdGFibGUtZml4ZWRcIj5cbiAgICAgICAgICAgICAgICA8dGhlYWQ+XG4gICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz1cInRleHQtbGVmdCBib3JkZXItYi00IGJvcmRlci1ibGFja1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwiaGlkZGVuIHctMS8yIHNtOnRhYmxlLWNlbGxcIj48L3RoPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwiZmxleCBweC0xXCI+PHAgY2xhc3M9XCJzZWxmLXN0YXJ0XCI+b2huZSBNUFA8L3A+PC90aD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cInRhYmxlLWNlbGwgdy0xLzMgc206aGlkZGVuXCI+PC90aD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cInB4LTEgdGV4dC1yaWdodCBzbTp0ZXh0LWxlZnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5taXQgTVBQPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICA8L3RoZWFkPlxuICAgICAgICAgICAgICAgIDx0Ym9keT5cbiAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPVwicmVsYXRpdmUgYm9yZGVyLWItMiBib3JkZXItYmxhY2tcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImhpZGRlbiB3LTEvMiBzbTp0YWJsZS1jZWxsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJmb250LWJvbGRcIj5CcnV0dG9tb25hdHNnZWhhbHQ8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicHQtMTAgcGItNCBzbTpwdC00XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJwdC0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGdldExvY2FsZVByaWNlKGZvcm1kYXRhLnNhbGFyeS5ncm9zc21vbnRobHlzYWxhcnkpIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImFic29sdXRlIHRvcC0wIGxlZnQtMCByaWdodC0wIGZsZXggc206aGlkZGVuXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJwdC0yIG14LWF1dG8gZm9udC1ib2xkXCI+QnJ1dHRvbW9uYXRzZ2VoYWx0PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInB0LTEwIHBiLTQgdGV4dC1yaWdodCBhbGlnbi1ib3R0b20gc206cHQtNCBzbTp0ZXh0LWxlZnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD57eyBnZXRMb2NhbGVQcmljZShmb3JtZGF0YS5zYWxhcnkuZ3Jvc3Ntb250aGx5c2FsYXJ5KSB9fTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgIDwvdHI+XG5cbiAgICAgICAgICAgICAgICAgICAgPHRlbXBsYXRlIHYtZm9yPVwiYW1vdW50IGluIGFtb3VudHNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ciA6a2V5PVwiYW1vdW50LmluZGV4XCIgY2xhc3M9XCJyZWxhdGl2ZSBib3JkZXItYi0yIGJvcmRlci1ibGFja1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImhpZGRlbiB3LTEvMiBzbTp0YWJsZS1jZWxsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiZm9udC1ib2xkXCI+e3sgYW1vdW50LmxhYmVsIH19PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicHQtMTAgcGItNCBzbTpwdC00XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjAsMDAg4oKsPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYWJzb2x1dGUgdG9wLTAgbGVmdC0wIHJpZ2h0LTAgZmxleCBzbTpoaWRkZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJwdC0yIG14LWF1dG8gZm9udC1ib2xkXCI+e3sgYW1vdW50LmxhYmVsIH19PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicHQtMTAgcGItNCB0ZXh0LXJpZ2h0IGFsaWduLWJvdHRvbSBzbTpwdC00IHNtOnRleHQtbGVmdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD57eyBhbW91bnQudGV4dCB9fTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT5cblxuICAgICAgICAgICAgICAgICAgICA8IS0tIDx0ciBjbGFzcz1cInJlbGF0aXZlIGJvcmRlci1iLTIgYm9yZGVyLWJsYWNrXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJoaWRkZW4gdy0xLzIgc206dGFibGUtY2VsbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiZm9udC1ib2xkXCI+VW13YW5kbHVuZ3NiZXRyYWcgTGVhc2luZ3JhdGU8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicHQtMTAgcGItNCBzbTpwdC00XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+MCwwMOKCrDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJhYnNvbHV0ZSB0b3AtMCBsZWZ0LTAgcmlnaHQtMCBmbGV4IHNtOmhpZGRlblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwicHQtMiBteC1hdXRvIGZvbnQtYm9sZFwiPlVtd2FuZGx1bmdzYmV0cmFnIExlYXNpbmdyYXRlPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInB0LTEwIHBiLTQgdGV4dC1yaWdodCBhbGlnbi1ib3R0b20gc206cHQtNCBzbTp0ZXh0LWxlZnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD4tIHt7IGdldExvY2FsZVByaWNlKHByb2R1Y3REYXRhLmxlYXNpbmdfZ3Jvc3MpIH19PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPVwicmVsYXRpdmUgYm9yZGVyLWItMiBib3JkZXItYmxhY2tcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImhpZGRlbiB3LTEvMiBzbTp0YWJsZS1jZWxsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJmb250LWJvbGRcIj5VbXdhbmRsdW5nc2JldHJhZyBSdW5kdW0tU2NodXR6PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInB0LTEwIHBiLTQgc206cHQtNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjAsMDDigqw8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYWJzb2x1dGUgdG9wLTAgbGVmdC0wIHJpZ2h0LTAgZmxleCBzbTpoaWRkZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInB0LTIgbXgtYXV0byBmb250LWJvbGRcIj5VbXdhbmRsdW5nc2JldHJhZyBSdW5kdW0tU2NodXR6PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInB0LTEwIHBiLTQgdGV4dC1yaWdodCBhbGlnbi1ib3R0b20gc206cHQtNCBzbTp0ZXh0LWxlZnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD4tIHt7IGdldExvY2FsZVByaWNlKHByb2R1Y3REYXRhLmNvbnZlcnNpb25fYW1vdW50X2luc3VyYW5jZSkgfX08L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICA8dHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHYtaWY9XCJmb3JtZGF0YS5zYWxhcnkuZ3JhbnRfcGVyY2VudGFnZSA+IDBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyZWxhdGl2ZSBib3JkZXItYi00IGJvcmRlci1ibGFja1wiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImhpZGRlbiB3LTEvMiBzbTp0YWJsZS1jZWxsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJmb250LWJvbGRcIj5BcmJlaXRnZWJlci1adXNjaHVzczwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwdC0xMCBwYi00IHNtOnB0LTRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD4wLDAw4oKsPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImFic29sdXRlIHRvcC0wIGxlZnQtMCByaWdodC0wIGZsZXggc206aGlkZGVuXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJwdC0yIG14LWF1dG8gZm9udC1ib2xkXCI+QXJiZWl0Z2ViZXItWnVzY2h1c3M8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicHQtMTAgcGItNCB0ZXh0LXJpZ2h0IGFsaWduLWJvdHRvbSBzbTpwdC00IHNtOnRleHQtbGVmdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPisge3sgZ2V0TG9jYWxlUHJpY2UocHJvZHVjdERhdGEuZ3JhbnQpIH19PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgPC90cj4gLS0+XG5cbiAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPVwicmVsYXRpdmUgYm9yZGVyLWItMiBib3JkZXItYmxhY2tcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImhpZGRlbiB3LTEvMiBzbTp0YWJsZS1jZWxsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJmb250LWJvbGRcIj5CZXJlY2hudW5nc2dydW5kbGFnZTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwdC0xMCBwYi00IHNtOnB0LTRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD57eyBnZXRMb2NhbGVQcmljZShmb3JtZGF0YS5zYWxhcnkuZ3Jvc3Ntb250aGx5c2FsYXJ5KSB9fTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJhYnNvbHV0ZSB0b3AtMCBsZWZ0LTAgcmlnaHQtMCBmbGV4IHNtOmhpZGRlblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwicHQtMiBteC1hdXRvIGZvbnQtYm9sZFwiPkJlcmVjaG51bmdzZ3J1bmRsYWdlPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInB0LTEwIHBiLTQgdGV4dC1yaWdodCBhbGlnbi1ib3R0b20gc206cHQtNCBzbTp0ZXh0LWxlZnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZ2V0TG9jYWxlUHJpY2UocHJvZHVjdERhdGEuY2FsY3VsYXRpb25fYmFzZSkgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9XCJyZWxhdGl2ZSBib3JkZXItYi0yIGJvcmRlci1ibGFja1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiaGlkZGVuIHctMS8yIHNtOnRhYmxlLWNlbGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImZvbnQtYm9sZFwiPlN0ZXVlcm4gZ2VzYW10PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInB0LTEwIHBiLTQgc206cHQtNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPi0ge3sgZ2V0TG9jYWxlUHJpY2UocHJvZHVjdERldGFpbHMudGF4X3N1bS5ncm9zcykgfX08L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYWJzb2x1dGUgdG9wLTAgbGVmdC0wIHJpZ2h0LTAgZmxleCBzbTpoaWRkZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInB0LTIgbXgtYXV0byBmb250LWJvbGRcIj5TdGV1ZXJuIGdlc2FtdDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwdC0xMCBwYi00IHRleHQtcmlnaHQgYWxpZ24tYm90dG9tIHNtOnB0LTQgc206dGV4dC1sZWZ0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+LSB7eyBnZXRMb2NhbGVQcmljZShwcm9kdWN0RGV0YWlscy50YXhfc3VtLm5ldCkgfX08L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9XCJyZWxhdGl2ZSBib3JkZXItYi00IGJvcmRlci1ibGFja1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiaGlkZGVuIHctMS8yIHNtOnRhYmxlLWNlbGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImZvbnQtYm9sZFwiPlNvemlhbGFiZ2FiZW4gZ2VzYW10PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInB0LTEwIHBiLTQgc206cHQtNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRMb2NhbGVQcmljZShwcm9kdWN0RGV0YWlscy5zb2NpYWxfY29udHJpYnV0aW9uc190b3RhbC5ncm9zcylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYWJzb2x1dGUgdG9wLTAgbGVmdC0wIHJpZ2h0LTAgZmxleCBzbTpoaWRkZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInB0LTIgbXgtYXV0byBmb250LWJvbGRcIj5Tb3ppYWxhYmdhYmVuIGdlc2FtdDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwdC0xMCBwYi00IHRleHQtcmlnaHQgYWxpZ24tYm90dG9tIHNtOnB0LTQgc206dGV4dC1sZWZ0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZ2V0TG9jYWxlUHJpY2UocHJvZHVjdERldGFpbHMuc29jaWFsX2NvbnRyaWJ1dGlvbnNfdG90YWwubmV0KSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgIDwvdHI+XG5cbiAgICAgICAgICAgICAgICAgICAgPHRlbXBsYXRlIHYtZm9yPVwibmV0X2Ftb3VudCBpbiBuZXRfYW1vdW50c1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRyIDprZXk9XCJuZXRfYW1vdW50LmluZGV4XCIgY2xhc3M9XCJyZWxhdGl2ZSBib3JkZXItYi0yIGJvcmRlci1ibGFja1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImhpZGRlbiB3LTEvMiBzbTp0YWJsZS1jZWxsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiZm9udC1ib2xkXCI+e3sgbmV0X2Ftb3VudC5sYWJlbCB9fTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInB0LTEwIHBiLTQgc206cHQtNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD4wLDAwIOKCrDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImFic29sdXRlIHRvcC0wIGxlZnQtMCByaWdodC0wIGZsZXggc206aGlkZGVuXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwicHQtMiBteC1hdXRvIGZvbnQtYm9sZFwiPnt7IG5ldF9hbW91bnQubGFiZWwgfX08L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwdC0xMCBwYi00IHRleHQtcmlnaHQgYWxpZ24tYm90dG9tIHNtOnB0LTQgc206dGV4dC1sZWZ0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPnt7IG5ldF9hbW91bnQudGV4dCB9fTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT5cblxuICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9XCJyZWxhdGl2ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiaGlkZGVuIHctMS8yIHNtOnRhYmxlLWNlbGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImZvbnQtYm9sZFwiPk5ldHRvbW9uYXRzZ2VoYWx0PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInB0LTEwIHBiLTQgc206cHQtNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBnZXRMb2NhbGVQcmljZShwcm9kdWN0RGV0YWlscy5zYWxhcnkuZ3Jvc3MpIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImFic29sdXRlIHRvcC0wIGxlZnQtMCByaWdodC0wIGZsZXggc206aGlkZGVuXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJwdC0yIG14LWF1dG8gZm9udC1ib2xkXCI+TmV0dG9tb25hdHNnZWhhbHQ8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicHQtMTAgcGItNCB0ZXh0LXJpZ2h0IGFsaWduLWJvdHRvbSBzbTpwdC00IHNtOnRleHQtbGVmdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBnZXRMb2NhbGVQcmljZShwcm9kdWN0RGV0YWlscy5zYWxhcnkubmV0KSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgPC90Ym9keT5cbiAgICAgICAgICAgIDwvdGFibGU+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIHB5LTQgdGV4dC1jZW50ZXIgdGV4dC13aGl0ZSBiZy1ibGFja1wiPlxuICAgICAgICAgICAgICAgIDxzcGFuPkRpZmZlcmVueiBOZXR0b21vbmF0c2dlaGFsdCA9IEluZGl2aWR1ZWxsZSBOdXR6dW5nc3JhdGU6PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC0yeGwgZm9udC1ib2xkXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IGdldExvY2FsZVByaWNlKHByb2R1Y3REYXRhLmxlYXNpbmdfbmV0KSB9fVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8aDIgY2xhc3M9XCJweS00IHB0LTE2IHRleHQtMnhsIGZvbnQtc2VtaWJvbGRcIj5cbiAgICAgICAgICAgICAgICBTbyBlcnJlY2huZXQgc2ljaCBkaWUgRXJzcGFybmlzIHp1bSBQcml2YXRrYXVmOlxuICAgICAgICAgICAgPC9oMj5cblxuICAgICAgICAgICAgPHRhYmxlIGNsYXNzPVwidy1mdWxsIHRleHQtbGcgdGFibGUtZml4ZWRcIj5cbiAgICAgICAgICAgICAgICA8dGhlYWQ+XG4gICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz1cInRleHQtbGVmdCBib3JkZXItYi00IGJvcmRlci1ibGFja1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwiaGlkZGVuIHctMS8yIHNtOnRhYmxlLWNlbGxcIj48L3RoPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlByaXZhdGthdWYgbWl0IFNjaHV0ejwvdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJ0YWJsZS1jZWxsIHctMS8zIHNtOmhpZGRlblwiPjwvdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJweC0xIHRleHQteHMgdGV4dC1yaWdodCBzbTp0ZXh0LWxlZnQgc206dGV4dC1sZ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiZm9udC1ub3JtYWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZyBjbGFzcz1cInRleHQtbGdcIj5taXQgTVBQPC9zdHJvbmc+PGJyIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlua2wuIFJ1bmR1bS1TY2h1dHpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgIDwvdGhlYWQ+XG4gICAgICAgICAgICAgICAgPHRib2R5PlxuICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9XCJyZWxhdGl2ZSBib3JkZXItYi0yIGJvcmRlci1ibGFja1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiaGlkZGVuIHctMS8yIHNtOnRhYmxlLWNlbGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImZvbnQtYm9sZFwiPkdlcsOkdDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwdC0xMCBwYi00IHNtOnB0LTRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZ2V0TG9jYWxlUHJpY2UoZm9ybWRhdGEucHJvZHVjdHMucHJpY2UpIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImFic29sdXRlIHRvcC0wIGxlZnQtMCByaWdodC0wIGZsZXggc206aGlkZGVuXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJwdC0yIG14LWF1dG8gZm9udC1ib2xkXCI+R2Vyw6R0PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInB0LTEwIHBiLTQgdGV4dC1yaWdodCBhbGlnbi1ib3R0b20gc206cHQtNCBzbTp0ZXh0LWxlZnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDI0IE1vbmF0ZSB4XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGdldExvY2FsZVByaWNlKHByb2R1Y3REYXRhLmxlYXNpbmdfbmV0KSB9fSkgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBnZXRMb2NhbGVQcmljZShwcm9kdWN0RGF0YS5sZWFzaW5nX25ldF90b3RhbCkgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9XCJyZWxhdGl2ZSBib3JkZXItYi0yIGJvcmRlci1ibGFja1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiaGlkZGVuIHctMS8yIHNtOnRhYmxlLWNlbGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImZvbnQtYm9sZFwiPnp6Z2wuIFJ1bmR1bS1TY2h1dHogKEdlaGFsdHN1bXdhbmRsdW5nKTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwdC0xMCBwYi00IHNtOnB0LTRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZ2V0TG9jYWxlUHJpY2UocHJvZHVjdERhdGEuZ2VuZXJhbF9pbnN1cmFuY2UpIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImFic29sdXRlIHRvcC0wIGxlZnQtMCByaWdodC0wIGZsZXggc206aGlkZGVuXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJwdC0yIG14LWF1dG8gZm9udC1ib2xkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHp6Z2wuIFJ1bmR1bS1TY2h1dHogKEdlaGFsdHN1bXdhbmRsdW5nKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwdC0xMCBwYi00IHRleHQtcmlnaHQgYWxpZ24tYm90dG9tIHNtOnB0LTQgc206dGV4dC1sZWZ0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+aW5rbHVzaXZlPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPVwicmVsYXRpdmUgYm9yZGVyLWItMiBib3JkZXItYmxhY2tcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImhpZGRlbiB3LTEvMiBzbTp0YWJsZS1jZWxsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJmb250LWJvbGRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXJ3YXJ0ZXRlciBHZWJyYXVjaHRrYXVmcHJlaXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgcHJvZHVjdERhdGEuY2FsY3VsYXRpb25fcmVzaWR1YWwgfX0lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInB0LTEwIHBiLTQgc206cHQtNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPnt7IGdldExvY2FsZVByaWNlKDApIH19PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImFic29sdXRlIHRvcC0wIGxlZnQtMCByaWdodC0wIGZsZXggc206aGlkZGVuXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJwdC0yIG14LWF1dG8gZm9udC1ib2xkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVyd2FydGV0ZXIgR2VicmF1Y2h0a2F1ZnByZWlzIHt7IHByb2R1Y3REYXRhLmNhbGN1bGF0aW9uX3Jlc2lkdWFsIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInB0LTEwIHBiLTQgdGV4dC1yaWdodCBhbGlnbi1ib3R0b20gc206cHQtNCBzbTp0ZXh0LWxlZnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZ2V0TG9jYWxlUHJpY2UocHJvZHVjdERhdGEuZ2VuZXJhbF9yZXN0KSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgPC90Ym9keT5cbiAgICAgICAgICAgIDwvdGFibGU+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBweS00IHRleHQtY2VudGVyIHRleHQtd2hpdGUgYmctYmxhY2tcIj5cbiAgICAgICAgICAgICAgICA8c3Bhbj5CYXJrYXVmIG1pbnVzIE1QUCA9IEVyc3Bhcm5pcyB2b246PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC0yeGwgZm9udC1ib2xkXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IGdldExvY2FsZVByaWNlKHByb2R1Y3REYXRhLmxlYXNpbmdfbmV0X3RvdGFsKSB9fSAoe3tcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb2R1Y3REYXRhLnNhdmluZ19wZXJjZW50YWdlXG4gICAgICAgICAgICAgICAgICAgIH19JSlcbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwdC00IHBiLThcIj5cbiAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICA+QmVyZWNobnVuZyBvaG5lIEdld8OkaHIuIEJpdHRlIHdlbmRlbiBTaWUgc2ljaCBhbiBJaHJlbiBTdGV1ZXJiZXJhdGVyLCB1bSBlaW5lXG4gICAgICAgICAgICAgICAgICAgIHZlcmJpbmRsaWNoZSBLYWxrdWxhdGlvbiB6dSBlcmhhbHRlbi48L3NwYW5cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L3RlbXBsYXRlPlxuXG48c2NyaXB0PlxuaW1wb3J0IGNvbmZpZyBmcm9tICcuLi8uLi9jb25maWcvY2FsY3VsYXRvci5jb25maWcuanMnXG5pbXBvcnQgeyBkZWJvdW5jZSB9IGZyb20gJ2xvZGFzaCdcbmltcG9ydCBheGlvcyBmcm9tICdheGlvcydcblxuZXhwb3J0IGRlZmF1bHQge1xuICAgIHByb3BzOiB7XG4gICAgICAgIHVybDoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgZGVmYXVsdDogJycsXG4gICAgICAgIH0sXG4gICAgICAgIHRva2VuOiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICBkZWZhdWx0OiAnJyxcbiAgICAgICAgfSxcbiAgICAgICAgYXV0aF90b2tlbjoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgZGVmYXVsdDogJycsXG4gICAgICAgIH0sXG4gICAgICAgIGVtcGxveWVyX2dyYW50OiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICBkZWZhdWx0OiAnJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsY3VsYXRvcl9jb2xvcjoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgZGVmYXVsdDogJ3llbGxvdycsXG4gICAgICAgIH0sXG4gICAgICAgIGNvbG9yX2J1dHRvbjoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgZGVmYXVsdDogJ3tcImNvbG9yXCI6e1wiYmFja2dyb3VuZFwiOlwiY3VycmVudENvbG9yXCIsXCJ0ZXh0XCI6XCJjdXJyZW50Q29sb3JcIn19JyxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIGRhdGEoKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0YXhDbGFzc2VzOiBbMSwgMiwgMywgNCwgNSwgNl0sXG4gICAgICAgICAgICBzaG93RXJyb3I6IGZhbHNlLFxuICAgICAgICAgICAgc2hvd0ZpZWxkczogZmFsc2UsXG4gICAgICAgICAgICBzaG93VGFibGU6IHRydWUsXG4gICAgICAgICAgICBpc2xvYWRpbmc6IGZhbHNlLFxuICAgICAgICAgICAgdmF0OiBjb25maWcubXBwLmJ1ZGdldC52YXQsXG4gICAgICAgICAgICBtYXhWYWx1ZTogY29uZmlnLm1wcC5idWRnZXQubWF4ICogY29uZmlnLm1wcC5idWRnZXQudmF0LFxuICAgICAgICAgICAgbWluVmFsdWU6IGNvbmZpZy5tcHAuYnVkZ2V0Lm1pbiAqIGNvbmZpZy5tcHAuYnVkZ2V0LnZhdCxcbiAgICAgICAgICAgIGhlYWx0aE1pblZhbHVlOiBjb25maWcuaGVhbHRoaW5zdXJhbmNlY29udHJpYnV0aW9uLm1pbixcbiAgICAgICAgICAgIGhlYWx0aE1heFZhbHVlOiBjb25maWcuaGVhbHRoaW5zdXJhbmNlY29udHJpYnV0aW9uLm1heCxcbiAgICAgICAgICAgIGZvcm1kYXRhOiB7XG4gICAgICAgICAgICAgICAgc2FsYXJ5OiB7IC4uLmNvbmZpZy5tcHAuZGVmYXVsdHMuc2FsYXJ5IH0sXG4gICAgICAgICAgICAgICAgcHJvZHVjdHM6IHtcbiAgICAgICAgICAgICAgICAgICAgaWQ6IGNvbmZpZy5tcHAuZGVmYXVsdHMucHJvZHVjdHMuaWQsXG4gICAgICAgICAgICAgICAgICAgIHByaWNlOiBjb25maWcubXBwLmRlZmF1bHRzLnByb2R1Y3RzLnByaWNlLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY2FsY3VsYXRvclZhbHVlczogY29uZmlnLm1wcC5idWRnZXQsXG4gICAgICAgICAgICBhcGlEYXRhOiB7fSxcbiAgICAgICAgICAgIGhlYWRlcjoge1xuICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgICAgICAgJ0NhY2hlLUNvbnRyb2wnOiAnbm8tY2FjaGUnLFxuICAgICAgICAgICAgICAgIEFjY2VwdDogJ2FwcGxpY2F0aW9uL3guY2FsY3VsYXRvci52MStqc29uJyxcbiAgICAgICAgICAgICAgICAnY2FjaGUtY29udHJvbCc6ICduby1jYWNoZScsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2VuZERhdGE6IGRlYm91bmNlKHRoaXMuc2VuZFJlcXVlc3RUb0NhbGN1bGF0b3IsIDE1MCksXG4gICAgICAgIH1cbiAgICB9LFxuICAgIGJlZm9yZU1vdW50KCkge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICBKU09OLnBhcnNlKHRoaXMuZW1wbG95ZXJfZ3JhbnQpLmZpeGVkICYmXG4gICAgICAgICAgICBKU09OLnBhcnNlKHRoaXMuZW1wbG95ZXJfZ3JhbnQpLmZpeGVkLnZhbHVlID4gMFxuICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybWRhdGEuc2FsYXJ5LmdyYW50X3R5cGUgPSAnRVVSJ1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5mb3JtZGF0YS5zYWxhcnkuZ3JhbnRfdHlwZSA9ICdwZXJjZW50J1xuICAgICAgICB9XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBjb2xvciA9IEpTT04ucGFyc2UodGhpcy5jb2xvcl9idXR0b24pLmNvbG9yXG4gICAgICAgICAgICBjb25zdCByb290Q29sb3IgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCc6cm9vdCcpXG4gICAgICAgICAgICByb290Q29sb3Iuc3R5bGUuc2V0UHJvcGVydHkoJy0tY2FsY0NvbG9yQnV0dG9uJywgY29sb3IuYmFja2dyb3VuZClcbiAgICAgICAgICAgIHJvb3RDb2xvci5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1jYWxjQ29sb3JUZXh0JywgY29sb3IudGV4dClcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgLy8gY29sb3JfYnV0dG9uIGlzIG5vdCB2YWxpZCBKU09OIOKAkyBsZWF2ZSB0aGUgY3VycmVudCBDU1MgdmFyaWFibGVzIHVudG91Y2hlZFxuICAgICAgICB9XG4gICAgfSxcbiAgICBjb21wdXRlZDoge1xuICAgICAgICBncmFudENvbmZpZ09iamVjdHMoKSB7XG4gICAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZSh0aGlzLmVtcGxveWVyX2dyYW50KVxuICAgICAgICB9LFxuICAgICAgICB0b2dnbGVHcmFudFR5cGUoKSB7XG4gICAgICAgICAgICByZXR1cm4gKHRoaXMuZ3JhbnRDb25maWdPYmplY3RzLmZpeGVkICYmIHRoaXMuZ3JhbnRDb25maWdPYmplY3RzLmZpeGVkLnZhbHVlID4gMCkgfHxcbiAgICAgICAgICAgICAgICB0aGlzLmdyYW50Q29uZmlnT2JqZWN0cy5sZWFzaW5nLnZhbHVlID4gMFxuICAgICAgICAgICAgICAgID8gJ2hpZGRlbidcbiAgICAgICAgICAgICAgICA6ICcnXG4gICAgICAgIH0sXG4gICAgICAgIGdyYW50VHlwZSgpIHtcbiAgICAgICAgICAgIHJldHVybiAodGhpcy5ncmFudENvbmZpZ09iamVjdHMuZml4ZWQgJiYgdGhpcy5ncmFudENvbmZpZ09iamVjdHMuZml4ZWQudmFsdWUgPiAwKSB8fFxuICAgICAgICAgICAgICAgIHRoaXMuZm9ybWRhdGEuc2FsYXJ5LmdyYW50X3R5cGUgPT0gJ0VVUidcbiAgICAgICAgICAgICAgICA/ICdFVVInXG4gICAgICAgICAgICAgICAgOiAncGVyY2VudCdcbiAgICAgICAgfSxcbiAgICAgICAgZ3JhbnRQZXJjZW50VHlwZSgpIHtcbiAgICAgICAgICAgIHJldHVybiAodGhpcy5ncmFudENvbmZpZ09iamVjdHMuZml4ZWQgJiYgdGhpcy5ncmFudENvbmZpZ09iamVjdHMuZml4ZWQudmFsdWUgPiAwKSB8fFxuICAgICAgICAgICAgICAgIHRoaXMuZm9ybWRhdGEuc2FsYXJ5LmdyYW50X3R5cGUgPT0gJ0VVUidcbiAgICAgICAgICAgICAgICA/ICdoaWRkZW4nXG4gICAgICAgICAgICAgICAgOiAnJ1xuICAgICAgICB9LFxuICAgICAgICBncmFudEZpeGVkVHlwZSgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdyYW50Q29uZmlnT2JqZWN0cy5sZWFzaW5nLnZhbHVlID4gMCB8fFxuICAgICAgICAgICAgICAgICh0aGlzLmZvcm1kYXRhLnNhbGFyeS5ncmFudF90eXBlID09ICdwZXJjZW50JyAmJlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmdyYW50Q29uZmlnT2JqZWN0cy5maXhlZCAmJlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmdyYW50Q29uZmlnT2JqZWN0cy5maXhlZC52YWx1ZSA9PSAwICYmXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ3JhbnRQZXJjZW50VHlwZSAhPT0gJ2hpZGRlbicpXG4gICAgICAgICAgICAgICAgPyAnaGlkZGVuJ1xuICAgICAgICAgICAgICAgIDogJydcbiAgICAgICAgfSxcbiAgICAgICAgYW1vdW50cygpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2R1Y3REYXRhLmxlYXNpbmcuZ3Jvc3NcbiAgICAgICAgfSxcbiAgICAgICAgbmV0X2Ftb3VudHMoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9kdWN0RGF0YS5sZWFzaW5nLm5ldFxuICAgICAgICB9LFxuICAgICAgICBlcnJvck1lc3NhZ2VQZXJjZW50KCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZm9ybWRhdGEuc2FsYXJ5LmdyYW50X3BlcmNlbnRhZ2UgPT09ICcnICYmXG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtZGF0YS5zYWxhcnkuZ3JhbnRfdHlwZSA9PSAncGVyY2VudCdcbiAgICAgICAgICAgICAgICA/ICdCaXR0ZSBnZWJlbiBTaWUgZWluZW4gZ8O8bHRpZ2VuIFdlcnQgYW4nXG4gICAgICAgICAgICAgICAgOiAnJ1xuICAgICAgICB9LFxuICAgICAgICBlcnJvck1lc3NhZ2VGaXhlZCgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmZvcm1kYXRhLnNhbGFyeS5ncmFudF9maXh2YWx1ZSA9PT0gJycgJiZcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1kYXRhLnNhbGFyeS5ncmFudF90eXBlID09ICdFVVInXG4gICAgICAgICAgICAgICAgPyAnQml0dGUgZ2ViZW4gU2llIGVpbmVuIGfDvGx0aWdlbiBXZXJ0IGFuJ1xuICAgICAgICAgICAgICAgIDogJydcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3JNZXNzYWdlR3Jvc3MoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5mb3JtZGF0YS5zYWxhcnkuZ3Jvc3Ntb250aGx5c2FsYXJ5ID09PSAnJ1xuICAgICAgICAgICAgICAgID8gJ0JpdHRlIGdlYmVuIFNpZSBlaW5lbiBnw7xsdGlnZW4gV2VydCBhbidcbiAgICAgICAgICAgICAgICA6ICcnXG4gICAgICAgIH0sXG4gICAgICAgIHByb2R1Y3RzKCkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBhdXRob3JpemF0aW9uOiB0aGlzLmF1dGhfdG9rZW4sXG4gICAgICAgICAgICAgICAgc2FsYXJ5OiB7XG4gICAgICAgICAgICAgICAgICAgIC4uLnRoaXMuZm9ybWRhdGEuc2FsYXJ5LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgcHJvZHVjdHM6IHtcbiAgICAgICAgICAgICAgICAgICAgMToge1xuICAgICAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5mb3JtZGF0YS5wcm9kdWN0cyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBzZXRHcmFudFBlcmNlbnRhZ2UoKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5mb3JtZGF0YS5zYWxhcnkuZ3JhbnRfcGVyY2VudGFnZSA+PSA5OSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZm9ybWRhdGEuc2FsYXJ5LmdyYW50X3BlcmNlbnRhZ2UgPSA5OVxuICAgICAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBwcm9kdWN0RGF0YSgpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5hcGlEYXRhLnByb2R1Y3RzX2NhbGN1bGF0ZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge31cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuYXBpRGF0YSAmJiB0aGlzLmFwaURhdGEucHJvZHVjdHNfY2FsY3VsYXRlZFxuICAgICAgICAgICAgICAgID8gT2JqZWN0LmtleXModGhpcy5hcGlEYXRhLnByb2R1Y3RzX2NhbGN1bGF0ZWRbdGhpcy5mb3JtZGF0YS5wcm9kdWN0cy5pZF0pXG4gICAgICAgICAgICAgICAgICAgICAgLm1hcCgocHJvZHVjdFByaWNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmFwaURhdGEucHJvZHVjdHNfY2FsY3VsYXRlZFt0aGlzLmZvcm1kYXRhLnByb2R1Y3RzLmlkXVtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2R1Y3RQcmljZVxuICAgICAgICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAucG9wKClcbiAgICAgICAgICAgICAgICA6IHt9XG4gICAgICAgIH0sXG4gICAgICAgIHByb2R1Y3REZXRhaWxzKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvZHVjdERhdGEuZGV0YWlsc1xuICAgICAgICB9LFxuICAgICAgICBoYXNQcm9kdWN0RGF0YSgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2R1Y3REYXRhID8gT2JqZWN0LmtleXModGhpcy5wcm9kdWN0RGF0YSkubGVuZ3RoID4gMCA6IGZhbHNlXG4gICAgICAgIH0sXG4gICAgICAgIGlzVmFsaWRhdGVkKCkge1xuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICBwYXJzZUZsb2F0KHRoaXMuZm9ybWRhdGEucHJvZHVjdHMucHJpY2UpICE9PSAwICYmXG4gICAgICAgICAgICAgICAgcGFyc2VGbG9hdCh0aGlzLmZvcm1kYXRhLnByb2R1Y3RzLnByaWNlKSA+IDAgJiZcbiAgICAgICAgICAgICAgICBwYXJzZUZsb2F0KHRoaXMuZm9ybWRhdGEuc2FsYXJ5Lmdyb3NzbW9udGhseXNhbGFyeSkgIT09IDAgJiZcbiAgICAgICAgICAgICAgICBwYXJzZUZsb2F0KHRoaXMuZm9ybWRhdGEuc2FsYXJ5Lmdyb3NzbW9udGhseXNhbGFyeSkgPiAwXG4gICAgICAgICAgICApXG4gICAgICAgIH0sXG4gICAgICAgIGlzQnVkZ2V0QW5kVmFsaWQoKSB7XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIHRoaXMuaXNCdWRnZXQodGhpcy5mb3JtZGF0YS5wcm9kdWN0cy5wcmljZSkgJiZcbiAgICAgICAgICAgICAgICB0aGlzLmlzQnVkZ2V0KHRoaXMuZm9ybWRhdGEuc2FsYXJ5Lmdyb3NzbW9udGhseXNhbGFyeSwgJ2JydXR0bycpICYmXG4gICAgICAgICAgICAgICAgdGhpcy5pc1ZhbGlkYXRlZFxuICAgICAgICAgICAgKVxuICAgICAgICB9LFxuICAgIH0sXG4gICAgY3JlYXRlZCgpIHtcbiAgICAgICAgdGhpcy5mb3JtZGF0YS5zYWxhcnkuaGVhbHRoaW5zdXJhbmNlY29udHJpYnV0aW9uID1cbiAgICAgICAgICAgIHRoaXMuZm9ybWRhdGEuc2FsYXJ5LmhlYWx0aGluc3VyYW5jZWNvbnRyaWJ1dGlvbiA9PSAwXG4gICAgICAgICAgICAgICAgPyAnMC4wJ1xuICAgICAgICAgICAgICAgIDogdGhpcy5mb3JtZGF0YS5zYWxhcnkuaGVhbHRoaW5zdXJhbmNlY29udHJpYnV0aW9uXG4gICAgfSxcbiAgICBtZXRob2RzOiB7XG4gICAgICAgIHNob3dGdXJ0aGVyRmllbGRzKCkge1xuICAgICAgICAgICAgdGhpcy5zaG93RmllbGRzID0gIXRoaXMuc2hvd0ZpZWxkc1xuICAgICAgICB9LFxuICAgICAgICBpc0J1ZGdldChwcmljZSwgZmllbGQgPSAnJykge1xuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICBmaWVsZCAhPT0gJycgfHxcbiAgICAgICAgICAgICAgICAocGFyc2VGbG9hdChwcmljZSkgPj0gcGFyc2VGbG9hdCh0aGlzLmNhbGN1bGF0b3JWYWx1ZXMubWluKSAmJlxuICAgICAgICAgICAgICAgICAgICBwYXJzZUZsb2F0KHByaWNlKSA8PSBwYXJzZUZsb2F0KHRoaXMuY2FsY3VsYXRvclZhbHVlcy5tYXgpKVxuICAgICAgICAgICAgKVxuICAgICAgICB9LFxuICAgICAgICBidWRnZXRNZXNzYWdlKHByaWNlLCBmaWVsZCA9ICcnKSB7XG4gICAgICAgICAgICBpZiAocHJpY2UgPCB0aGlzLmNhbGN1bGF0b3JWYWx1ZXMubWluKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGBEZXIgYW5nZWdlYmVuZSBQcmVpcyBpc3QgenUgbmllZHJpZy4gRGllc2VyIG11c3MgZ3LDtsOfZXIgc2VpbiBhbHMgJHt0aGlzLmdldExvY2FsZVByaWNlKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNhbGN1bGF0b3JWYWx1ZXMubWluLFxuICAgICAgICAgICAgICAgICl9YFxuICAgICAgICAgICAgfSBlbHNlIGlmIChwcmljZSA+IHRoaXMuY2FsY3VsYXRvclZhbHVlcy5tYXggJiYgZmllbGQgPT09ICcnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGBEZXIgYW5nZWdlYmVuZSBQcmVpcyBpc3QgenUgaG9jaC4gRGllc2VyIG11c3MgbmllZHJpZ2VyIHNlaW4gYWxzICR7dGhpcy5nZXRMb2NhbGVQcmljZShcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jYWxjdWxhdG9yVmFsdWVzLm1heCxcbiAgICAgICAgICAgICAgICApfWBcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiAnJ1xuICAgICAgICB9LFxuICAgICAgICBzaG93Q2FsY3VsYXRpb24oKSB7XG4gICAgICAgICAgICB0aGlzLnNob3dUYWJsZSA9ICF0aGlzLnNob3dUYWJsZVxuICAgICAgICB9LFxuICAgICAgICBhc3luYyBzZW5kUmVxdWVzdFRvQ2FsY3VsYXRvcigpIHtcbiAgICAgICAgICAgIHRoaXMuaXNsb2FkaW5nID0gdHJ1ZVxuXG4gICAgICAgICAgICBpZiggdGhpcy5mb3JtZGF0YS5zYWxhcnkuaGVhbHRoaW5zdXJhbmNlY29udHJpYnV0aW9uID4gY29uZmlnLmhlYWx0aGluc3VyYW5jZWNvbnRyaWJ1dGlvbi5tYXgpe1xuICAgICAgICAgICAgICAgIHRoaXMuZm9ybWRhdGEuc2FsYXJ5LmhlYWx0aGluc3VyYW5jZWNvbnRyaWJ1dGlvbiA9IGNvbmZpZy5oZWFsdGhpbnN1cmFuY2Vjb250cmlidXRpb24ubWF4XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiggdGhpcy5mb3JtZGF0YS5zYWxhcnkuaGVhbHRoaW5zdXJhbmNlY29udHJpYnV0aW9uIDwgY29uZmlnLmhlYWx0aGluc3VyYW5jZWNvbnRyaWJ1dGlvbi5taW4pe1xuICAgICAgICAgICAgICAgIHRoaXMuZm9ybWRhdGEuc2FsYXJ5LmhlYWx0aGluc3VyYW5jZWNvbnRyaWJ1dGlvbiA9IGNvbmZpZy5oZWFsdGhpbnN1cmFuY2Vjb250cmlidXRpb24ubWluXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAhaXNOYU4odGhpcy5mb3JtZGF0YS5wcm9kdWN0cy5wcmljZSkgJiZcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1kYXRhLnByb2R1Y3RzLnByaWNlID49IHRoaXMubWluVmFsdWUgJiZcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1kYXRhLnByb2R1Y3RzLnByaWNlIDw9IHRoaXMubWF4VmFsdWUgJiZcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1kYXRhLnNhbGFyeS5ncm9zc21vbnRobHlzYWxhcnkgIT09ICcnXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBhd2FpdCBheGlvc1xuICAgICAgICAgICAgICAgICAgICAucG9zdChcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXJsICsgJy9hcGkvY2FsY3VsYXRlP3dpdGhvdXRIYXNoPTEnLFxuICAgICAgICAgICAgICAgICAgICAgICAgeyAuLi50aGlzLnByb2R1Y3RzIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7IGhlYWRlcnM6IHRoaXMuaGVhZGVyIH0sXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgLnRoZW4oKGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2hvd0Vycm9yID0gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYXBpRGF0YSA9IGRhdGEuZGF0YVxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAuY2F0Y2goKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zaG93RXJyb3IgPSB0cnVlXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGdldExvY2FsZVByaWNlKHByaWNlKSB7XG4gICAgICAgICAgICByZXR1cm4gcHJpY2UgPT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgID8gJydcbiAgICAgICAgICAgICAgICA6IG5ldyBJbnRsLk51bWJlckZvcm1hdCgnZGUtREUnLCB7XG4gICAgICAgICAgICAgICAgICAgICAgc3R5bGU6ICdjdXJyZW5jeScsXG4gICAgICAgICAgICAgICAgICAgICAgY3VycmVuY3k6ICdFVVInLFxuICAgICAgICAgICAgICAgICAgfSkuZm9ybWF0KHBhcnNlRmxvYXQocHJpY2UudG9TdHJpbmcoKS5zcGxpdCgnLCcpLmpvaW4oJy4nKSkpXG4gICAgICAgIH0sXG4gICAgICAgIGN1c3RvbWVySGFzQ2hpbGRyZW4oKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5mb3JtZGF0YS5zYWxhcnkuY2hpbGQgPT09IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1kYXRhLnNhbGFyeS5jaGlsZHRheCA9IDBcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgdHJhbnNmb3JtRm9ybURhdGEocmVwX3ByZWZpeCwgcHJlZml4KSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1kYXRhLnNhbGFyeS5ncm9zc21vbnRobHlzYWxhcnkgPSB0aGlzLmZvcm1kYXRhLnNhbGFyeS5ncm9zc21vbnRobHlzYWxhcnlcbiAgICAgICAgICAgICAgICAuc3BsaXQocmVwX3ByZWZpeClcbiAgICAgICAgICAgICAgICAuam9pbihwcmVmaXgpXG4gICAgICAgICAgICB0aGlzLmZvcm1kYXRhLnByb2R1Y3RzLnByaWNlID0gdGhpcy5mb3JtZGF0YS5wcm9kdWN0cy5wcmljZVxuICAgICAgICAgICAgICAgIC5zcGxpdChyZXBfcHJlZml4KVxuICAgICAgICAgICAgICAgIC5qb2luKHByZWZpeClcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIGFzeW5jIG1vdW50ZWQoKSB7XG4gICAgICAgIGF3YWl0IHRoaXMuc2VuZFJlcXVlc3RUb0NhbGN1bGF0b3IoKVxuICAgIH0sXG59XG48L3NjcmlwdD5cblxuPHN0eWxlIHNjb3BlZD5cbnNlbGVjdCB7XG4gICAgdGV4dC1hbGlnbi1sYXN0OiBjZW50ZXI7XG59XG48L3N0eWxlPlxuIiwiPHRlbXBsYXRlPlxuICAgIDxkaXYgY2xhc3M9XCJteC0yIG10LTBcIiByZWY9XCJlbGVtZW50c1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyIGJnLWdyYXktMjAwIHJvdW5kZWQtbGdcIiA6Y2xhc3M9XCJ7IGxvYWRpbmc6IGlzbG9hZGluZyB9XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyIHAtNFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmlkIGdyaWQtY29scy0xIGdhcC00IG1iLTRcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlbGF0aXZlIGZsZXggZmxleC1yb3cgc206ZmxleC1jb2xcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZsZXggdy0xLzMgc206dy1mdWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+RW50ZmVybnVuZyB6dW0gQXJiZWl0c3BsYXR6IChrbSlcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPVwidG9nZ2xlSW5mb1BvcHVwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhYnNvbHV0ZSBzbTpzdGF0aWMgZm9jdXM6b3V0bGluZS1ub25lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDogMThweDsgcmlnaHQ6IDEwcHg7IG1hcmdpbi1sZWZ0OiAxMHB4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQG1vdXNlZW50ZXI9XCJ0b2dnbGVTdmdWaXNpYmlsaXR5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQG1vdXNlbGVhdmU9XCJ0b2dnbGVTdmdWaXNpYmlsaXR5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYtaWY9XCJzaG93U3ZnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMThcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMThcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAxOCAxOFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjlcIiBjeT1cIjlcIiByPVwiOC41XCIgc3Ryb2tlPVwiYmxhY2tcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjlcIiBjeT1cIjQuNVwiIHI9XCIxXCIgZmlsbD1cIiMxRjFGMUZcIiBzdHJva2U9XCIjMUYxRjFGXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCI4XCIgeT1cIjhcIiB3aWR0aD1cIjJcIiBoZWlnaHQ9XCI3XCIgZmlsbD1cImJsYWNrXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpjbGFzcz1cImBjYWxjdWxhdG9yLSR7Y2FsY3VsYXRvcl9jb2xvcn1gXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYtZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxOFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIxOFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDE4IDE4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3g9XCI5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjeT1cIjlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHI9XCI4LjVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIndoaXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiOVwiIGN5PVwiNC41XCIgcj1cIjFcIiBmaWxsPVwid2hpdGVcIiBzdHJva2U9XCJ3aGl0ZVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiOFwiIHk9XCI4XCIgd2lkdGg9XCIyXCIgaGVpZ2h0PVwiN1wiIGZpbGw9XCJ3aGl0ZVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxJbmZvcG9wdXAgdi1pZj1cImJ1dHRvblRyaWdnZXJcIiBAdG9nZ2xlLXBvcHVwPVwidG9nZ2xlSW5mb1BvcHVwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0luZm9wb3B1cD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiMzBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtZGF0YS5zYWxhcnkuZGlzdGFuY2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjaGFuZ2U9XCJzZW5kRGF0YVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ3LTEvMiBweS0xIGZvbnQtYm9sZCB0ZXh0LWNlbnRlciBzbTp3LWZ1bGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQgZ3JpZC1jb2xzLTEgZ2FwLTQgbWItNCBsZzpncmlkLWNvbHMtMlwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBzbTpmbGV4LWNvbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwidy0xLzMgc206dy1mdWxsXCI+S2F1ZnByZWlzIChicnV0dG8pPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJwdXJjaGFzZXByaWNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cInouQi46IDIwMDBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtZGF0YS5wcm9kdWN0cy5wcmljZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNoYW5nZT1cInNlbmREYXRhXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInctMS8yIHB5LTEgZm9udC1ib2xkIHRleHQtY2VudGVyIHNtOnctZnVsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaW5wdXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZvcm1kYXRhLnByb2R1Y3RzLnByaWNlIDwgMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1kYXRhLnByb2R1Y3RzLnByaWNlID0gMFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8+PHNwYW4gdi1pZj1cIiFpc0J1ZGdldEFuZFZhbGlkXCIgY2xhc3M9XCJ0ZXh0LXJlZC02MDBcIj57e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZGdldE1lc3NhZ2VcbiAgICAgICAgICAgICAgICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgc206ZmxleC1jb2xcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInctMS8zIHNtOnctZnVsbFwiPlVWUDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwidXZwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybWRhdGEucHJvZHVjdHMubXNycFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNoYW5nZT1cInNlbmREYXRhXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaW5wdXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZvcm1kYXRhLnByb2R1Y3RzLm1zcnAgPCAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWRhdGEucHJvZHVjdHMubXNycCA9IDBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ3LTEvMiBweS0xIGZvbnQtYm9sZCB0ZXh0LWNlbnRlciBzbTp3LWZ1bGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1yZWQtNjAwXCI+e3sgcHJpY2VNZXNzYWdlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgc206ZmxleC1jb2xcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInctMS8zIHNtOnctZnVsbFwiPkJydXR0b2dlaGFsdDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiZ3Jvc3NzYWxhcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiMzAwMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1kYXRhLnNhbGFyeS5ncm9zc21vbnRobHlzYWxhcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjaGFuZ2U9XCJzZW5kRGF0YVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlucHV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmb3JtZGF0YS5zYWxhcnkuZ3Jvc3Ntb250aGx5c2FsYXJ5IDwgMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1kYXRhLnNhbGFyeS5ncm9zc21vbnRobHlzYWxhcnkgPSAwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidy0xLzIgcHktMSBmb250LWJvbGQgdGV4dC1jZW50ZXIgc206dy1mdWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1yZWQtNjAwXCI+e3sgZXJyb3JNZXNzYWdlR3Jvc3MgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3BhY2UteS0yIGNvbC1zcGFuLWZ1bGwgbGc6Y29sLXNwYW4tMSBzbTpzcGFjZS15LTBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInBiLTIgc206cGItMFwiPlN0ZXVlcmtsYXNzZTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOmNsYXNzPVwiYHJhZGlvLXRvb2xiYXItJHtjYWxjdWxhdG9yX2NvbG9yfWBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LXJvdyAtbWwtMiBzcGFjZS14LTIgc206c3BhY2UteC00IHNtOi1tbC00IHJhZGlvLXRvb2xiYXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZSB2LWZvcj1cInRheENsYXNzIGluIHRheENsYXNzZXNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOmlkPVwiYGNsYXNzJHt0YXhDbGFzc31gXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicm91bmRlZC1mdWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtZGF0YS5zYWxhcnkudGF4Y2xhc3NcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNoYW5nZT1cInNlbmREYXRhXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJzY29vdGVyLXRheC1jbGFzc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6dmFsdWU9XCJ0YXhDbGFzc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgOmZvcj1cImBjbGFzcyR7dGF4Q2xhc3N9YFwiPnt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXhDbGFzc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICB2LXNob3c9XCIhcG9ydGFsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIDpjbGFzcz1cImlzUG9ydGFsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29sLXNwYW4tMSBzcGFjZS15LTIgc206c3BhY2UteS0wXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwicGItMiBzbTpwYi0wXCI+w5xiZXJuYWhtZSBkZXMgUnVuZHVtLVNjaHV0emVzPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Y2xhc3M9XCJgcmFkaW8tdG9vbGJhci0ke2NhbGN1bGF0b3JfY29sb3J9YFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtcm93IC1tbC02IHNwYWNlLXgtNiByYWRpby10b29sYmFyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJhcmJlaXRuZWhtZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybWRhdGEuc2FsYXJ5LmNhbGNBR1JTXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNoYW5nZT1cInNlbmREYXRhXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cInNjb290ZXItY2FsY0FHUlNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cIjBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ZGlzYWJsZWQ9XCJncmFudENvbmZpZ09iamVjdHMucHJvdGVjdGlvbi5kaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiYXJiZWl0bmVobWVyXCI+QXJiZWl0bmVobWVyPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1kYXRhLnNhbGFyeS5jYWxjQUdSU1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjaGFuZ2U9XCJzZW5kRGF0YVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiYXJiZWl0Z2ViZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwic2Nvb3Rlci1jYWxjQUdSU1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPVwiMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpkaXNhYmxlZD1cImdyYW50Q29uZmlnT2JqZWN0cy5wcm90ZWN0aW9uLmRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJhcmJlaXRnZWJlclwiPkFyYmVpdGdlYmVyPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgdi1zaG93PVwiIXBvcnRhbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA6Y2xhc3M9XCJbaXNQb3J0YWwsIHRvZ2dsZUdyYW50VHlwZV1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb2wtc3Bhbi0xIHNwYWNlLXktMiBzbTpzcGFjZS15LTBcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJwYi0yIHNtOnBiLTBcIj5BcnQgZGVzIFp1c2NodXNzZXM8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpjbGFzcz1cImByYWRpby10b29sYmFyLSR7Y2FsY3VsYXRvcl9jb2xvcn1gXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXggZmxleC1yb3cgLW1sLTYgc3BhY2UteC02IHJhZGlvLXRvb2xiYXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cIkVVUlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtZGF0YS5zYWxhcnkuZ3JhbnRfdHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjaGFuZ2U9XCJzZW5kRGF0YVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJzY29vdGVyLWdyYW50X3R5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cIkVVUlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiRVVSXCI+RmVzdGVyIEJldHJhZzwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJyYWRpb1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtZGF0YS5zYWxhcnkuZ3JhbnRfdHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjaGFuZ2U9XCJzZW5kRGF0YVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwicGVyY2VudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJzY29vdGVyLWdyYW50X3R5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cInBlcmNlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInBlcmNlbnRcIj5Qcm96ZW50dWFsZXIgWnVzY2h1c3M8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICB2LXNob3c9XCIhcG9ydGFsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIDpjbGFzcz1cIltpc1BvcnRhbCwgZ3JhbnRUeXBlID09ICdwZXJjZW50JyA/ICcnIDogJ2hpZGRlbiddXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibGc6Y29sLXN0YXJ0LTIgcmFkaW8tdG9vbGJhci1udW1iZXJcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cD5BcmJlaXRnZWJlcnp1c2NodXNzIHp1ciBMZWFzaW5ncmF0ZSBpbiAlPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluPVwiMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4PVwiMTAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiYXJiZWl0Z2ViZXJ6dXNjaHVzc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1kYXRhLnNhbGFyeS5ncmFudF9wZXJjZW50YWdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAY2hhbmdlPVwic2VuZERhdGFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpbnB1dD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZm9ybWRhdGEuc2FsYXJ5LmdyYW50X3BlcmNlbnRhZ2UgPiAxMDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtZGF0YS5zYWxhcnkuZ3JhbnRfcGVyY2VudGFnZSA9IDEwMFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZvcm1kYXRhLnNhbGFyeS5ncmFudF9wZXJjZW50YWdlID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1kYXRhLnNhbGFyeS5ncmFudF9maXh2YWx1ZSA9IDBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCIxMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ3LWZ1bGwgcHktMSBmb250LWJvbGQgdGV4dC1jZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOmRpc2FibGVkPVwiZ3JhbnRDb25maWdPYmplY3RzLmxlYXNpbmcuZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1yZWQtNjAwXCI+e3sgZXJyb3JNZXNzYWdlUGVyY2VudCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIHYtc2hvdz1cIiFwb3J0YWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgOmNsYXNzPVwiW2lzUG9ydGFsLCBncmFudFR5cGUgPT0gJ0VVUicgPyAnJyA6ICdoaWRkZW4nXVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInhsOmNvbC1zdGFydC0yIHJhZGlvLXRvb2xiYXItbnVtYmVyXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHA+QXJiZWl0Z2ViZXJ6dXNjaHVzcyB6dXIgTGVhc2luZ3JhdGUgaW4g4oKsPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluPVwiMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4PVwiMTAwMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImFyYmVpdGdlYmVyenVzY2h1c3NcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtZGF0YS5zYWxhcnkuZ3JhbnRfZml4dmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjaGFuZ2U9XCJzZW5kRGF0YVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlucHV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmb3JtZGF0YS5zYWxhcnkuZ3JhbnRfZml4dmFsdWUgPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWRhdGEuc2FsYXJ5LmdyYW50X3BlcmNlbnRhZ2UgPSAwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiMzBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidy1mdWxsIHB5LTEgZm9udC1ib2xkIHRleHQtY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpkaXNhYmxlZD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmFudENvbmZpZ09iamVjdHMuZml4ZWQgJiYgZ3JhbnRDb25maWdPYmplY3RzLmZpeGVkLmRpc2FibGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtcmVkLTYwMFwiPnt7IGVycm9yTWVzc2FnZUZpeGVkIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlbGF0aXZlIGZsZXgganVzdGlmeS1jZW50ZXIgdy1mdWxsIG10LTYgbWItNCBzbTpoaWRkZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LWZ1bGwgYm9yZGVyLWItMiBib3JkZXItd2hpdGVcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9XCJzaG93RnVydGhlckZpZWxkcygpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFic29sdXRlIGZsZXggY29udGVudC1jZW50ZXIgcHgtMiBweS0xIHRleHQteGwgdGV4dC13aGl0ZSB0cmFuc2Zvcm0gLXRyYW5zbGF0ZS15LTEvMiBiZy13aGl0ZSByb3VuZGVkLWZ1bGwgc206cHgtMjBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIHYtaWY9XCJzaG93RmllbGRzXCIgY2xhc3M9XCJwdC0xIHByLTIgdGV4dC1iYXNlIHRleHQtYmxhY2tcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+RXJ3ZWl0ZXJ0ZSBBbmdhYmVuIHZlcmJlcmdlbjwvc3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiB2LWlmPVwiIXNob3dGaWVsZHNcIiBjbGFzcz1cInB0LTEgcHItMiB0ZXh0LWJhc2UgdGV4dC1ibGFja1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5FcndlaXRlcnRlIEFuZ2FiZW4gYW56ZWlnZW48L3NwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LWlmPVwiIXNob3dGaWVsZHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ3LTggaC02IHRleHQtd2hpdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xOSA5bC03IDctNy03XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYtaWY9XCJzaG93RmllbGRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidy04IGgtNiB0ZXh0LXdoaXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNSAxNWw3LTcgNyA3XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgOmNsYXNzPVwieyBoaWRkZW46ICFzaG93RmllbGRzIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJncmlkLWNvbHMtMSBnYXAtNCBtYi00IHNwYWNlLXktMyBjb2wtc3Bhbi1mdWxsIHNtOmdyaWQgbGc6Z3JpZC1jb2xzLTIgc206c3BhY2UteS0wXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zcGFuLWZ1bGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+QnVuZGVzbGFuZDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJzdGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtZGF0YS5zYWxhcnkuc3RhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAY2hhbmdlPVwic2VuZERhdGFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInctZnVsbCBweS0yIHRleHQtY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJCV1wiPkJhZGVuLVfDvHJ0dGVtYmVyZzwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiQllcIj5CYXllcm48L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIkJFXCI+QmVybGluPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJCQlwiPkJyYW5kZW5idXJnPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJIQlwiPkJyZW1lbjwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiSEhcIj5IYW1idXJnPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJIRVwiPkhlc3Nlbjwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiTVZcIj5NZWNrbGVuYnVyZy1Wb3Jwb21tZXJuPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJOSVwiPk5pZWRlcnNhY2hzZW48L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIk5XXCI+Tm9yZHJoZWluLVdlc3RmYWxlbjwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiUlBcIj5SaGVpbmxhbmQtUGZhbHo8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlNMXCI+U2FhcmxhbmQ8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlNOXCI+U2FjaHNlbjwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiU1RcIj5TYWNoc2VuLUFuaGFsdDwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiU0hcIj5TY2hsZXN3aWctSG9sc3RlaW48L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlRIXCI+VGjDvHJpbmdlbjwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5adXNhdHpiZWl0cmFnIEtyYW5rZW5rYXNzZSBpbiAlICh2b24ge3sgaGVhbHRoTWluVmFsdWUgfX0gYmlzIHt7IGhlYWx0aE1heFZhbHVlIH19KTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6bWluPVwiaGVhbHRoTWluVmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6bWF4PVwiaGVhbHRoTWF4VmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGVwPVwiMC4wMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtZGF0YS5zYWxhcnkuaGVhbHRoaW5zdXJhbmNlY29udHJpYnV0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNoYW5nZT1cInNlbmREYXRhXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ3LWZ1bGwgcHktMiBmb250LWJvbGQgdGV4dC1jZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxmLWVuZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5LaW5kZXJmcmVpYmV0cmFnPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cInRheGNsYXNzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1kYXRhLnNhbGFyeS5jaGlsZHRheFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjaGFuZ2U9XCJzZW5kRGF0YVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidy1mdWxsIHB5LTIgZm9udC1ib2xkIHRleHQtY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIwXCI+MDwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiMC41XCI+MCw1PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIxXCI+MTwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiMS41XCI+MSw1PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIyXCI+Mjwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiMi41XCI+Miw1PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIzXCI+Mzwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiMy41XCI+Myw1PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCI0XCI+NDwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiNC41XCI+NCw1PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCI1XCI+NTwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiNS41XCI+NSw1PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCI2XCI+Njwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdi1zaG93PVwiIXBvcnRhbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOmNsYXNzPVwiaXNQb3J0YWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29sLXNwYW4tMSBzcGFjZS15LTIgc206c3BhY2UteS0wXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJwYi0yIHNtOnBiLTBcIj7DnGJlcm5haG1lIGRlcyBTZXJ2aWNlLVBha2V0czwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Y2xhc3M9XCJgcmFkaW8tdG9vbGJhci0ke2NhbGN1bGF0b3JfY29sb3J9YFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LXJvdyAtbWwtNiBzcGFjZS14LTYgcmFkaW8tdG9vbGJhclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJyYWRpb1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cInNlcnZpY2VfYXJiZWl0bmVobWVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtZGF0YS5zYWxhcnkuZ3JhbnRfc2VydmljZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAY2hhbmdlPVwic2VuZERhdGFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cInNjb290ZXItZ3JhbnRfc2VydmljZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cIjBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOmRpc2FibGVkPVwiZ3JhbnRDb25maWdPYmplY3RzLnBhY2thZ2UuZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwic2VydmljZV9hcmJlaXRuZWhtZXJcIj5BcmJlaXRuZWhtZXI8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJyYWRpb1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybWRhdGEuc2FsYXJ5LmdyYW50X3NlcnZpY2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNoYW5nZT1cInNlbmREYXRhXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwic2VydmljZV9hcmJlaXRnZWJlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwic2Nvb3Rlci1ncmFudF9zZXJ2aWNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPVwiMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ZGlzYWJsZWQ9XCJncmFudENvbmZpZ09iamVjdHMucGFja2FnZS5kaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJzZXJ2aWNlX2FyYmVpdGdlYmVyXCI+QXJiZWl0Z2ViZXI8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXN0YXJ0LTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+U2VydmljZS1QYWtldDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Y2xhc3M9XCJgcmFkaW8tdG9vbGJhci0ke2NhbGN1bGF0b3JfY29sb3J9YFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LXJvdyAtbWwtMiBzcGFjZS14LTIgcmFkaW8tdG9vbGJhciBtZDpzcGFjZS14LTYgbWQ6LW1sLTZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRlbXBsYXRlIHYtZm9yPVwiY291cG9uT2JqZWN0IGluIGNvdXBvbnNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDprZXk9XCJjb3Vwb25PYmplY3QudmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJyYWRpb1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOmlkPVwiY291cG9uT2JqZWN0LnRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJzZWxlY3RlZENvdXBvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNoYW5nZT1cInNlbmREYXRhXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwic2Nvb3Rlci1naWZ0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6dmFsdWU9XCJjb3Vwb25PYmplY3QudmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpkaXNhYmxlZD1cImNvdXBvbnMubGVuZ3RoID09IDFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCA6a2V5PVwiY291cG9uT2JqZWN0LnRleHRcIiA6Zm9yPVwiY291cG9uT2JqZWN0LnRleHRcIj57e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdXBvbk9iamVjdC50ZXh0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGNvbC1zdGFydC0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Y2xhc3M9XCJgY2hlY2tib3gtdG9vbGJhci0ke2NhbGN1bGF0b3JfY29sb3J9YFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidy0xLzYgY2hlY2tib3gtdG9vbGJhclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNodXJjaHRheFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInJvdW5kZWQtZnVsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybWRhdGEuc2FsYXJ5LmNodXJjaHRheFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAY2hhbmdlPVwic2VuZERhdGFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImlzY2h1cmNodGF4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDp0cnVlLXZhbHVlPVwiMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ZmFsc2UtdmFsdWU9XCIwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIHYtaWY9XCJmb3JtZGF0YS5zYWxhcnkuY2h1cmNodGF4ID09ICcwJ1wiIGZvcj1cImNodXJjaHRheFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+WDwvbGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgdi1pZj1cImZvcm1kYXRhLnNhbGFyeS5jaHVyY2h0YXggPT0gJzEnXCIgZm9yPVwiY2h1cmNodGF4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID7inJM8L2xhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNlbGYtY2VudGVyXCI+S2lyY2hlbnN0ZXVlcnBmbGljaHQ8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Y2xhc3M9XCJgY2hlY2tib3gtdG9vbGJhci0ke2NhbGN1bGF0b3JfY29sb3J9YFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidy0xLzYgY2hlY2tib3gtdG9vbGJhclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cInBlbnNpb250YXhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyb3VuZGVkLWZ1bGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1kYXRhLnNhbGFyeS5wZW5zaW9uaW5zdXJhbmNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjaGFuZ2U9XCJzZW5kRGF0YVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiaXNwZW5zaW9udGF4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDp0cnVlLXZhbHVlPVwiMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ZmFsc2UtdmFsdWU9XCIwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LWlmPVwiZm9ybWRhdGEuc2FsYXJ5LnBlbnNpb25pbnN1cmFuY2UgPT0gJzAnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcj1cInBlbnNpb250YXhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlg8L2xhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LWlmPVwiZm9ybWRhdGEuc2FsYXJ5LnBlbnNpb25pbnN1cmFuY2UgPT0gJzEnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcj1cInBlbnNpb250YXhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPuKckzwvbGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2VsZi1jZW50ZXJcIj5SZW50ZW52ZXJzaWNoZXJ1bmdzcGZsaWNodDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgY29sLXN0YXJ0LTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpjbGFzcz1cImBjaGVja2JveC10b29sYmFyLSR7Y2FsY3VsYXRvcl9jb2xvcn1gXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ3LTEvNiBjaGVja2JveC10b29sYmFyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiaGVhbHRoaW5zdXJhbmNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicm91bmRlZC1mdWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtZGF0YS5zYWxhcnkuaGVhbHRoaW5zdXJhbmNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjaGFuZ2U9XCJzZW5kRGF0YVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiaXNoZWFsdGhpbnN1cmFuY2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOnRydWUtdmFsdWU9XCIxXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpmYWxzZS12YWx1ZT1cIjBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYtaWY9XCJmb3JtZGF0YS5zYWxhcnkuaGVhbHRoaW5zdXJhbmNlID09ICcwJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3I9XCJoZWFsdGhpbnN1cmFuY2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlg8L2xhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LWlmPVwiZm9ybWRhdGEuc2FsYXJ5LmhlYWx0aGluc3VyYW5jZSA9PSAnMSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yPVwiaGVhbHRoaW5zdXJhbmNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID7inJM8L2xhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNlbGYtY2VudGVyXCI+S3JhbmtlbnZlcnNpY2hlcnVuZ3NwZmxpY2h0PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvd1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOmNsYXNzPVwiYGNoZWNrYm94LXRvb2xiYXItJHtjYWxjdWxhdG9yX2NvbG9yfWBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInctMS82IGNoZWNrYm94LXRvb2xiYXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJwcmV0YXhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyb3VuZGVkLWZ1bGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1kYXRhLnNhbGFyeS50YXhkZWR1Y3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNoYW5nZT1cInNlbmREYXRhXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJpc3ByZXRheFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6dHJ1ZS12YWx1ZT1cIjBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOmZhbHNlLXZhbHVlPVwiMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ZGlzYWJsZWQ9XCJncmFudENvbmZpZ09iamVjdHMudGF4LmRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIHYtaWY9XCJmb3JtZGF0YS5zYWxhcnkudGF4ZGVkdWN0aW9uID09ICcxJ1wiIGZvcj1cInByZXRheFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+WDwvbGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgdi1pZj1cImZvcm1kYXRhLnNhbGFyeS50YXhkZWR1Y3Rpb24gPT0gJzAnXCIgZm9yPVwicHJldGF4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID7inJM8L2xhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNlbGYtY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPklzdCBJaHIgQXJiZWl0Z2ViZXIgdm9yc3RldWVyYWJ6dWdzYmVyZWNodGlndD88L3NwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICB2LWlmPVwic3VjY2Vzc1RleHRcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImdyaWQgY29udGVudC1jZW50ZXIgdy1mdWxsIGdyaWQtY29scy0xIHAtMiBzbTpmbGV4IGNhbGN1bGF0b3Itc3VjY2VzcyByb3VuZGVkLXhsIHNtOnNwYWNlLXgtNFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImp1c3RpZnktc2VsZi1jZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMxIDMxXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGwtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaXAtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTkuNDQ4NSAyNy44NTQ1QzE5LjQ0ODUgMjUuOTkxNiAxNy45MzgzIDI0LjQ4MTQgMTYuMDc1NSAyNC40ODE0SDExLjg1OTJDMTEuODU5MiAyMi42MTg2IDEwLjM0OSAyMS4xMDg0IDguNDg2MTUgMjEuMTA4NEgyLjU4MzM0VjI3Ljg1NDVIMTkuNDQ4NVpcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM0NkQzOTBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNOC40ODYxNSAyNC40ODE0SDExLjg1OTJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM0NkQzOTBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTQuMzg4OSAyMS4xMDg0SDI1LjM1MTNDMjUuODE3IDIxLjEwODQgMjYuMTk0NiAyMC43MzA4IDI2LjE5NDYgMjAuMjY1MVYxMi42NzU4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNDZEMzkwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTExLjAxNTkgMTIuNjc1OFYxNy43MzUzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNDZEMzkwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGlwLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTkuMzI5NDEgOS4yMDk0N0M5LjMyOTQxIDguNzk1MjYgOS42NjUxOSA4LjQ1OTQ3IDEwLjA3OTQgOC40NTk0N0gyNy4xMzExQzI3LjU0NTMgOC40NTk0NyAyNy44ODExIDguNzk1MjYgMjcuODgxMSA5LjIwOTQ3VjExLjkyNThDMjcuODgxMSAxMi4zNCAyNy41NDUzIDEyLjY3NTggMjcuMTMxMSAxMi42NzU4SDEwLjA3OTRDOS42NjUxOSAxMi42NzU4IDkuMzI5NDEgMTIuMzQgOS4zMjk0MSAxMS45MjU4VjkuMjA5NDdaXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNDZEMzkwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE4LjYwNTMgMjEuMTA4M1Y4LjQ1OTQ3XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNDZEMzkwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGlwLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTIzLjQwMDYgNi4wNzQ3OEMyMS45ODc2IDcuMTgyODQgMjAuMzY1MyA3Ljk5Mzk4IDE4LjYzMTEgOC40NTk1MkMxOS4wOTY2IDYuNzI1MjkgMTkuOTA3OCA1LjEwMzAxIDIxLjAxNTggMy42OTAwNUMyMi40OTg4IDIuMjA4MTYgMjMuMzM4NyAyLjQzNTI4IDI0LjAwMjEgMy4wOTQxNEMyNC42NjU1IDMuNzUzMDEgMjQuODgzNiA0LjU5MjkgMjMuNDAwNiA2LjA3NDc4WlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzQ2RDM5MFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpcC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMy44MDg4IDYuMDc0NzhDMTUuMjIxOSA3LjE4MjYzIDE2Ljg0NDEgNy45OTM3NSAxOC41NzgzIDguNDU5NTJDMTguMTEzMyA2LjcyNTEgMTcuMzAyMSA1LjEwMjcxIDE2LjE5MzUgMy42OTAwNUMxNC43MTE3IDIuMjA4MTYgMTMuODcxOCAyLjQzNTI4IDEzLjIwODQgMy4wOTQxNEMxMi41NDUgMy43NTMwMSAxMi4zMjY5IDQuNTkyOSAxMy44MDg4IDYuMDc0NzhaXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNDZEMzkwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICAgICAgPHAgdi1odG1sPVwic3VjY2Vzc1RleHRcIiBjbGFzcz1cInNlbGYtY2VudGVyXCI+PC9wPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IHYtaWY9XCJzaG93RXJyb3JcIiBjbGFzcz1cInRleHQtY2VudGVyXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtcmVkLTYwMFwiXG4gICAgICAgICAgICAgICAgPkRpZSBCZXJlY2hudW5nIGthbm4gbmljaHQgYXVzZ2Vmw7xocnQgd2VyZGVuLiBCaXR0ZSDDvGJlcnByw7xmZSBkZWluZSBFaW5nYWJlbjwvc3BhblxuICAgICAgICAgICAgPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQgZ3JpZC1jb2xzLTEgcHktNCB0ZXh0LWNlbnRlciBsZzpncmlkLWNvbHMtMiBsZzp0ZXh0LWxlZnRcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbFwiPlxuICAgICAgICAgICAgICAgICAgICA8cD5TbyB2aWVsIHdpcmQgZ2VzcGFydDwvcD5cbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidGV4dC01eGwgZm9udC1ib2xkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZ2V0TG9jYWxlUHJpY2UocHJvZHVjdERhdGEuc2F2aW5nKSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpjbGFzcz1cImBjYWxjdWxhdG9yLSR7Y2FsY3VsYXRvcl9jb2xvcn1gXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXgganVzdGlmeS1jZW50ZXIgdGV4dC1iYXNlIGxnOnRleHQteGwgbGc6anVzdGlmeS1zdGFydFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMyIDMyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTMwLjY2NyAxNC4wNDQ0QzMwLjY2NyAxNi4yMDQ1IDI4LjkxNTkgMTcuOTU1NSAyNi43NTU5IDE3Ljk1NTVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNOC4xNzc5NCA5LjIyMDcxQzYuMDc0MjcgMTAuNTg0MSA0LjUwNzkxIDEyLjYzNDIgMy43NDUzNSAxNS4wMjIySDEuMzMzNVYyMi44NDQ0SDQuNTc5NzJDNS4yNTQ4MyAyNC4wMjgxIDYuMTQzMjkgMjUuMDc2NiA3LjIwMDE2IDI1LjkzNjhWMjkuNjg4OUM3LjIwMDE2IDMwLjIyODkgNy42Mzc5MyAzMC42NjY2IDguMTc3OTQgMzAuNjY2NkgxMC4xMzM1QzEwLjY3MzUgMzAuNjY2NiAxMS4xMTEzIDMwLjIyODkgMTEuMTExMyAyOS42ODg5VjI4LjA3MUMxMy42NDg5IDI4LjkxOTUgMTYuMzkyOCAyOC45MjQ1IDE4LjkzMzUgMjguMDg1M1YyOS42ODg5QzE4LjkzMzUgMzAuMjI4OSAxOS4zNzEzIDMwLjY2NjYgMTkuOTExMyAzMC42NjY2SDIxLjg2NjhDMjIuNDA2OCAzMC42NjY2IDIyLjg0NDYgMzAuMjI4OSAyMi44NDQ2IDI5LjY4ODlWMjUuOTU2NEMyNS4yODc0IDI0LjAxNTEgMjYuNzI0MyAyMS4wNzU2IDI2Ljc1NTcgMTcuOTU1NUMyNi43MDkgMTQuMzk5OSAyNC44NjU2IDExLjEwOTYgMjEuODU3NyA5LjIxMjg5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTExLjExMTMgMTAuMTMzN0MxMy41NzYgOC45MTM3NyAxNi40Njg4IDguOTEzNzcgMTguOTMzNiAxMC4xMzM3XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaXAtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xNS4wMjI0IDkuMTU1NzJDMTcuMTgyNSA5LjE1NTcyIDE4LjkzMzYgNy40MDQ2NSAxOC45MzM2IDUuMjQ0NjFDMTguOTMzNiAzLjA4NDU2IDE3LjE4MjUgMS4zMzM1IDE1LjAyMjQgMS4zMzM1QzEyLjg2MjQgMS4zMzM1IDExLjExMTMgMy4wODQ1NiAxMS4xMTEzIDUuMjQ0NjFDMTEuMTExMyA3LjQwNDY1IDEyLjg2MjQgOS4xNTU3MiAxNS4wMjI0IDkuMTU1NzJaXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJwdC0xIHBsLTMgdGV4dC0yeGwgdGV4dC1ibGFja1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPnt7IHByb2R1Y3REYXRhLnNhdmluZ19wZXJjZW50YWdlIH19JTwvc3Ryb25nPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXNwYXJ0IVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBwdC00IGxnOnB0LTBcIj5cbiAgICAgICAgICAgICAgICAgICAgPHA+RGllIGluZGl2aWR1ZWxsZSBOdXR6dW5nc3JhdGUgYmV0csOkZ3Q6PC9wPlxuICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInRleHQtNXhsIGZvbnQtYm9sZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgZ2V0TG9jYWxlUHJpY2UocHJvZHVjdERhdGEubGVhc2luZ19uZXQpIH19XG4gICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVsYXRpdmUgZmxleCBqdXN0aWZ5LWNlbnRlciB3LWZ1bGwgbXktMTJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy1mdWxsIGJvcmRlci1iLTIgYm9yZGVyLWJsYWNrXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBAY2xpY2s9XCJzaG93Q2FsY3VsYXRpb24oKVwiXG4gICAgICAgICAgICAgICAgICAgIDpkaXNhYmxlZD1cInNob3dFcnJvclwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYWJzb2x1dGUgZmxleCBjb250ZW50LWNlbnRlciBweC01IHB5LTEgdGV4dC14bCB0ZXh0LXdoaXRlIHRyYW5zZm9ybSAtdHJhbnNsYXRlLXktMS8yIGJnLWJsYWNrIHJvdW5kZWQtZnVsbCBzbTpweC0yMFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiB2LWlmPVwic2hvd1RhYmxlXCIgc3R5bGU9XCJsaW5lLWhlaWdodDogMzBweFwiIGNsYXNzPVwicHItNlwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+QmVyZWNobnVuZyBhbnplaWdlbjwvc3BhblxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIHYtaWY9XCIhc2hvd1RhYmxlXCIgc3R5bGU9XCJsaW5lLWhlaWdodDogMzBweFwiIGNsYXNzPVwicHItNlwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+QmVyZWNobnVuZyB2ZXJiZXJnZW48L3NwYW5cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAgICAgICAgICAgICB2LWlmPVwic2hvd1RhYmxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ3LTggaC02IHRleHQtd2hpdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE5IDlsLTcgNy03LTdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgICAgICAgICAgICAgIHYtaWY9XCIhc2hvd1RhYmxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ3LTggaC02IHRleHQtd2hpdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTUgMTVsNy03IDcgN1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8IS0tIEVSR0VCTklTIC0tPlxuXG4gICAgICAgICAgICA8ZGl2IHYtaWY9XCIhc2hvd1RhYmxlXCIgY2xhc3M9XCJweS0xMlwiIDpjbGFzcz1cInsgbG9hZGluZzogaXNsb2FkaW5nIH1cIj5cbiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJweS02IHRleHQtMnhsIGZvbnQtc2VtaWJvbGRcIj5FcnJlY2hudW5nIGRlciBtb25hdGxpY2hlbiBLb3N0ZW46PC9oMj5cblxuICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz1cInctZnVsbCBweS00IHRleHQtbGcgdGFibGUtZml4ZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgPHRoZWFkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPVwidGV4dC1sZWZ0IGJvcmRlci1iLTQgYm9yZGVyLWJsYWNrXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwiaGlkZGVuIHctMS8yIHNtOnRhYmxlLWNlbGxcIj48L3RoPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cImZsZXggcHgtMVwiPjxwIGNsYXNzPVwic2VsZi1zdGFydFwiPm9obmUgRGllbnN0c2Nvb3RlcjwvcD48L3RoPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cInRhYmxlLWNlbGwgdy0xLzMgc206aGlkZGVuXCI+PC90aD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJweC0xIHRleHQtcmlnaHQgc206dGV4dC1sZWZ0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPm1pdCBEaWVuc3RzY29vdGVyPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPlxuICAgICAgICAgICAgICAgICAgICA8dGJvZHk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9XCJyZWxhdGl2ZSBib3JkZXItYi0yIGJvcmRlci1ibGFja1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImhpZGRlbiB3LTEvMiBzbTp0YWJsZS1jZWxsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiZm9udC1ib2xkXCI+QnJ1dHRvbW9uYXRzZ2VoYWx0PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicHQtMTAgcGItNCBzbTpwdC00XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwicHQtMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZ2V0TG9jYWxlUHJpY2UoZm9ybWRhdGEuc2FsYXJ5Lmdyb3NzbW9udGhseXNhbGFyeSkgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYWJzb2x1dGUgdG9wLTAgbGVmdC0wIHJpZ2h0LTAgZmxleCBzbTpoaWRkZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJwdC0yIG14LWF1dG8gZm9udC1ib2xkXCI+QnJ1dHRvbW9uYXRzZ2VoYWx0PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicHQtMTAgcGItNCB0ZXh0LXJpZ2h0IGFsaWduLWJvdHRvbSBzbTpwdC00IHNtOnRleHQtbGVmdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD57eyBnZXRMb2NhbGVQcmljZShmb3JtZGF0YS5zYWxhcnkuZ3Jvc3Ntb250aGx5c2FsYXJ5KSB9fTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZSB2LWZvcj1cImFtb3VudCBpbiBhbW91bnRzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyIDprZXk9XCJhbW91bnQuaW5kZXhcIiBjbGFzcz1cInJlbGF0aXZlIGJvcmRlci1iLTIgYm9yZGVyLWJsYWNrXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImhpZGRlbiB3LTEvMiBzbTp0YWJsZS1jZWxsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImZvbnQtYm9sZFwiPnt7IGFtb3VudC5sYWJlbCB9fTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicHQtMTAgcGItNCBzbTpwdC00XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD4wLDAwIOKCrDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYWJzb2x1dGUgdG9wLTAgbGVmdC0wIHJpZ2h0LTAgZmxleCBzbTpoaWRkZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwicHQtMiBteC1hdXRvIGZvbnQtYm9sZFwiPnt7IGFtb3VudC5sYWJlbCB9fTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicHQtMTAgcGItNCB0ZXh0LXJpZ2h0IGFsaWduLWJvdHRvbSBzbTpwdC00IHNtOnRleHQtbGVmdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+e3sgYW1vdW50LnRleHQgfX08L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDx0ciBjbGFzcz1cInJlbGF0aXZlIGJvcmRlci1iLTIgYm9yZGVyLWJsYWNrXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiaGlkZGVuIHctMS8yIHNtOnRhYmxlLWNlbGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJmb250LWJvbGRcIj5VbXdhbmRsdW5nc2JldHJhZyBMZWFzaW5ncmF0ZTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInB0LTEwIHBiLTQgc206cHQtNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD4wLDAwIOKCrDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImFic29sdXRlIHRvcC0wIGxlZnQtMCByaWdodC0wIGZsZXggc206aGlkZGVuXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwicHQtMiBteC1hdXRvIGZvbnQtYm9sZFwiPlVtd2FuZGx1bmdzYmV0cmFnIExlYXNpbmdyYXRlPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicHQtMTAgcGItNCB0ZXh0LXJpZ2h0IGFsaWduLWJvdHRvbSBzbTpwdC00IHNtOnRleHQtbGVmdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD4tIHt7IGdldExvY2FsZVByaWNlKHByb2R1Y3REYXRhLmxlYXNpbmdfZ3Jvc3MpIH19PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPVwicmVsYXRpdmUgYm9yZGVyLWItMiBib3JkZXItYmxhY2tcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJoaWRkZW4gdy0xLzIgc206dGFibGUtY2VsbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImZvbnQtYm9sZFwiPlVtd2FuZGx1bmdzYmV0cmFnIFJ1bmR1bS1TY2h1dHo8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwdC0xMCBwYi00IHNtOnB0LTRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+MCwwMCDigqw8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJhYnNvbHV0ZSB0b3AtMCBsZWZ0LTAgcmlnaHQtMCBmbGV4IHNtOmhpZGRlblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInB0LTIgbXgtYXV0byBmb250LWJvbGRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVtd2FuZGx1bmdzYmV0cmFnIFJ1bmR1bS1TY2h1dHpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicHQtMTAgcGItNCB0ZXh0LXJpZ2h0IGFsaWduLWJvdHRvbSBzbTpwdC00IHNtOnRleHQtbGVmdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0ge3sgZ2V0TG9jYWxlUHJpY2UocHJvZHVjdERhdGEuY29udmVyc2lvbl9hbW91bnRfaW5zdXJhbmNlKSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9XCJyZWxhdGl2ZSBib3JkZXItYi0yIGJvcmRlci1ibGFja1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImhpZGRlbiB3LTEvMiBzbTp0YWJsZS1jZWxsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiZm9udC1ib2xkXCI+VW13YW5kbHVuZ3NiZXRyYWcgU2VydmljZS1QYWtldDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInB0LTEwIHBiLTQgc206cHQtNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD4wLDAwIOKCrDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImFic29sdXRlIHRvcC0wIGxlZnQtMCByaWdodC0wIGZsZXggc206aGlkZGVuXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwicHQtMiBteC1hdXRvIGZvbnQtYm9sZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW13YW5kbHVuZ3NiZXRyYWcgU2VydmljZSBQYWtldFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwdC0xMCBwYi00IHRleHQtcmlnaHQgYWxpZ24tYm90dG9tIHNtOnB0LTQgc206dGV4dC1sZWZ0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPi0ge3sgZ2V0TG9jYWxlUHJpY2UocHJvZHVjdERhdGEuc2VydmljZSkgfX08L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LWlmPVwiZm9ybWRhdGEuc2FsYXJ5LmdyYW50X3BlcmNlbnRhZ2UgPiAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInJlbGF0aXZlIGJvcmRlci1iLTIgYm9yZGVyLWJsYWNrXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJoaWRkZW4gdy0xLzIgc206dGFibGUtY2VsbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImZvbnQtYm9sZFwiPkFyYmVpdGdlYmVyLVp1c2NodXNzPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicHQtMTAgcGItNCBzbTpwdC00XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjAsMDAg4oKsPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYWJzb2x1dGUgdG9wLTAgbGVmdC0wIHJpZ2h0LTAgZmxleCBzbTpoaWRkZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJwdC0yIG14LWF1dG8gZm9udC1ib2xkXCI+QXJiZWl0Z2ViZXItWnVzY2h1c3M8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwdC0xMCBwYi00IHRleHQtcmlnaHQgYWxpZ24tYm90dG9tIHNtOnB0LTQgc206dGV4dC1sZWZ0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPisge3sgZ2V0TG9jYWxlUHJpY2UocHJvZHVjdERhdGEuZ3JhbnQpIH19PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPVwicmVsYXRpdmUgYm9yZGVyLWItMiBib3JkZXItYmxhY2tcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJoaWRkZW4gdy0xLzIgc206dGFibGUtY2VsbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImZvbnQtYm9sZFwiPkdlbGR3ZXJ0ZXIgVm9ydGVpbCAoMCwyNSUgUmVnZWwpPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicHQtMTAgcGItNCBzbTpwdC00XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjAsMDAg4oKsPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYWJzb2x1dGUgdG9wLTAgbGVmdC0wIHJpZ2h0LTAgZmxleCBzbTpoaWRkZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJwdC0yIG14LWF1dG8gZm9udC1ib2xkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHZWxkd2VydGVyIFZvcnRlaWwgKDAsMjUlIFJlZ2VsKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwdC0xMCBwYi00IHRleHQtcmlnaHQgYWxpZ24tYm90dG9tIHNtOnB0LTQgc206dGV4dC1sZWZ0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPisge3sgZ2V0TG9jYWxlUHJpY2UocHJvZHVjdERhdGEucGVjdW5pYXJ5X2FkdmFudGFnZSkgfX08L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9XCJyZWxhdGl2ZSBib3JkZXItYi00IGJvcmRlci1ibGFja1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImhpZGRlbiB3LTEvMiBzbTp0YWJsZS1jZWxsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiZm9udC1ib2xkXCI+VmVyc3RldWVydW5nIEFuZmFocnRza2lsb21ldGVyPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicHQtMTAgcGItNCBzbTpwdC00XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjAsMDAg4oKsPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYWJzb2x1dGUgdG9wLTAgbGVmdC0wIHJpZ2h0LTAgZmxleCBzbTpoaWRkZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJwdC0yIG14LWF1dG8gZm9udC1ib2xkXCI+VmVyc3RldWVydW5nIEFuZmFocnRza2lsb21ldGVyPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicHQtMTAgcGItNCB0ZXh0LXJpZ2h0IGFsaWduLWJvdHRvbSBzbTpwdC00IHNtOnRleHQtbGVmdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD4rIHt7IGdldExvY2FsZVByaWNlKHByb2R1Y3REYXRhLnRyYXZlbF9jb3N0cykgfX08L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+IC0tPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPVwicmVsYXRpdmUgYm9yZGVyLWItMiBib3JkZXItYmxhY2tcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJoaWRkZW4gdy0xLzIgc206dGFibGUtY2VsbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImZvbnQtYm9sZFwiPkJlcmVjaG51bmdzZ3J1bmRsYWdlPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicHQtMTAgcGItNCBzbTpwdC00XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPnt7IGdldExvY2FsZVByaWNlKGZvcm1kYXRhLnNhbGFyeS5ncm9zc21vbnRobHlzYWxhcnkpIH19PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYWJzb2x1dGUgdG9wLTAgbGVmdC0wIHJpZ2h0LTAgZmxleCBzbTpoaWRkZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJwdC0yIG14LWF1dG8gZm9udC1ib2xkXCI+QmVyZWNobnVuZ3NncnVuZGxhZ2U8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwdC0xMCBwYi00IHRleHQtcmlnaHQgYWxpZ24tYm90dG9tIHNtOnB0LTQgc206dGV4dC1sZWZ0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZ2V0TG9jYWxlUHJpY2UocHJvZHVjdERhdGEuY2FsY3VsYXRpb25fYmFzZSkgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPVwicmVsYXRpdmUgYm9yZGVyLWItMiBib3JkZXItYmxhY2tcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJoaWRkZW4gdy0xLzIgc206dGFibGUtY2VsbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImZvbnQtYm9sZFwiPlN0ZXVlcm4gZ2VzYW10PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicHQtMTAgcGItNCBzbTpwdC00XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPi0ge3sgZ2V0TG9jYWxlUHJpY2UocHJvZHVjdERldGFpbHMudGF4X3N1bS5ncm9zcykgfX08L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJhYnNvbHV0ZSB0b3AtMCBsZWZ0LTAgcmlnaHQtMCBmbGV4IHNtOmhpZGRlblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInB0LTIgbXgtYXV0byBmb250LWJvbGRcIj5TdGV1ZXJuIGdlc2FtdDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInB0LTEwIHBiLTQgdGV4dC1yaWdodCBhbGlnbi1ib3R0b20gc206cHQtNCBzbTp0ZXh0LWxlZnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+LSB7eyBnZXRMb2NhbGVQcmljZShwcm9kdWN0RGV0YWlscy50YXhfc3VtLm5ldCkgfX08L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9XCJyZWxhdGl2ZSBib3JkZXItYi0yIGJvcmRlci1ibGFja1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImhpZGRlbiB3LTEvMiBzbTp0YWJsZS1jZWxsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiZm9udC1ib2xkXCI+U296aWFsYWJnYWJlbiBnZXNhbXQ8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwdC0xMCBwYi00IHNtOnB0LTRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldExvY2FsZVByaWNlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9kdWN0RGV0YWlscy5zb2NpYWxfY29udHJpYnV0aW9uc190b3RhbC5ncm9zcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJhYnNvbHV0ZSB0b3AtMCBsZWZ0LTAgcmlnaHQtMCBmbGV4IHNtOmhpZGRlblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInB0LTIgbXgtYXV0byBmb250LWJvbGRcIj5Tb3ppYWxhYmdhYmVuIGdlc2FtdDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInB0LTEwIHBiLTQgdGV4dC1yaWdodCBhbGlnbi1ib3R0b20gc206cHQtNCBzbTp0ZXh0LWxlZnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldExvY2FsZVByaWNlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9kdWN0RGV0YWlscy5zb2NpYWxfY29udHJpYnV0aW9uc190b3RhbC5uZXQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRlbXBsYXRlIHYtZm9yPVwibmV0X2Ftb3VudCBpbiBuZXRfYW1vdW50c1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ciA6a2V5PVwibmV0X2Ftb3VudC5pbmRleFwiIGNsYXNzPVwicmVsYXRpdmUgYm9yZGVyLWItMiBib3JkZXItYmxhY2tcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiaGlkZGVuIHctMS8yIHNtOnRhYmxlLWNlbGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiZm9udC1ib2xkXCI+e3sgbmV0X2Ftb3VudC5sYWJlbCB9fTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicHQtMTAgcGItNCBzbTpwdC00XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD4wLDAwIOKCrDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYWJzb2x1dGUgdG9wLTAgbGVmdC0wIHJpZ2h0LTAgZmxleCBzbTpoaWRkZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwicHQtMiBteC1hdXRvIGZvbnQtYm9sZFwiPnt7IG5ldF9hbW91bnQubGFiZWwgfX08L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInB0LTEwIHBiLTQgdGV4dC1yaWdodCBhbGlnbi1ib3R0b20gc206cHQtNCBzbTp0ZXh0LWxlZnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPnt7IG5ldF9hbW91bnQudGV4dCB9fTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPHRyIGNsYXNzPVwicmVsYXRpdmUgYm9yZGVyLWItMiBib3JkZXItYmxhY2tcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJoaWRkZW4gdy0xLzIgc206dGFibGUtY2VsbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImZvbnQtYm9sZFwiPkdlbGR3ZXJ0ZXIgVm9ydGVpbCAoMCwyNSUgUmVnZWwpPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicHQtMTAgcGItNCBzbTpwdC00XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPi0gMCwwMCDigqw8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJhYnNvbHV0ZSB0b3AtMCBsZWZ0LTAgcmlnaHQtMCBmbGV4IHNtOmhpZGRlblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInB0LTIgbXgtYXV0byBmb250LWJvbGRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdlbGR3ZXJ0ZXIgVm9ydGVpbCAoMCwyNSUgUmVnZWwpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInB0LTEwIHBiLTQgdGV4dC1yaWdodCBhbGlnbi1ib3R0b20gc206cHQtNCBzbTp0ZXh0LWxlZnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBnZXRMb2NhbGVQcmljZShwcm9kdWN0RGF0YS5wZWN1bmlhcnlfYWR2YW50YWdlKSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9XCJyZWxhdGl2ZSBib3JkZXItYi00IGJvcmRlci1ibGFja1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImhpZGRlbiB3LTEvMiBzbTp0YWJsZS1jZWxsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiZm9udC1ib2xkXCI+VmVyc3RldWVydW5nIEFuZmFocnRza2lsb21ldGVyPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicHQtMTAgcGItNCBzbTpwdC00XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjAsMDAg4oKsPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYWJzb2x1dGUgdG9wLTAgbGVmdC0wIHJpZ2h0LTAgZmxleCBzbTpoaWRkZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJwdC0yIG14LWF1dG8gZm9udC1ib2xkXCI+VmVyc3RldWVydW5nIEFuZmFocnRza2lsb21ldGVyPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicHQtMTAgcGItNCB0ZXh0LXJpZ2h0IGFsaWduLWJvdHRvbSBzbTpwdC00IHNtOnRleHQtbGVmdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGdldExvY2FsZVByaWNlKHByb2R1Y3REYXRhLnRyYXZlbF9jb3N0cykgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RyPiAtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz1cInJlbGF0aXZlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiaGlkZGVuIHctMS8yIHNtOnRhYmxlLWNlbGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJmb250LWJvbGRcIj5OZXR0b21vbmF0c2dlaGFsdDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInB0LTEwIHBiLTQgc206cHQtNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGdldExvY2FsZVByaWNlKHByb2R1Y3REZXRhaWxzLnNhbGFyeS5ncm9zcykgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYWJzb2x1dGUgdG9wLTAgbGVmdC0wIHJpZ2h0LTAgZmxleCBzbTpoaWRkZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJwdC0yIG14LWF1dG8gZm9udC1ib2xkXCI+TmV0dG9tb25hdHNnZWhhbHQ8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwdC0xMCBwYi00IHRleHQtcmlnaHQgYWxpZ24tYm90dG9tIHNtOnB0LTQgc206dGV4dC1sZWZ0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZ2V0TG9jYWxlUHJpY2UocHJvZHVjdERldGFpbHMuc2FsYXJ5Lm5ldCkgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PlxuICAgICAgICAgICAgICAgIDwvdGFibGU+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBweS00IHRleHQtY2VudGVyIHRleHQtd2hpdGUgYmctYmxhY2tcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+RGlmZmVyZW56IE5ldHRvbW9uYXRzZ2VoYWx0ID0gSW5kaXZpZHVlbGxlIE51dHp1bmdzcmF0ZTo8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC0yeGwgZm9udC1ib2xkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBnZXRMb2NhbGVQcmljZShwcm9kdWN0RGF0YS5sZWFzaW5nX25ldCkgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwicHktNCBwdC0xNiB0ZXh0LTJ4bCBmb250LXNlbWlib2xkXCI+XG4gICAgICAgICAgICAgICAgICAgIFNvIGVycmVjaG5ldCBzaWNoIGRpZSBFcnNwYXJuaXMgenVtIFByaXZhdGthdWY6XG4gICAgICAgICAgICAgICAgPC9oMj5cblxuICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz1cInctZnVsbCB0ZXh0LWxnIHRhYmxlLWZpeGVkXCI+XG4gICAgICAgICAgICAgICAgICAgIDx0aGVhZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz1cInRleHQtbGVmdCBib3JkZXItYi00IGJvcmRlci1ibGFja1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cImhpZGRlbiB3LTEvMiBzbTp0YWJsZS1jZWxsXCI+PC90aD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+UHJpdmF0a2F1ZiBtaXQgU2NodXR6PC90aD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJ0YWJsZS1jZWxsIHctMS8zIHNtOmhpZGRlblwiPjwvdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwicHgtMSB0ZXh0LXhzIHRleHQtcmlnaHQgc206dGV4dC1sZWZ0IHNtOnRleHQtbGdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJmb250LW5vcm1hbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZyBjbGFzcz1cInRleHQtbGdcIj5taXQgRGllbnN0c2Nvb3Rlcjwvc3Ryb25nPjxiciAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5rbC4gUnVuZHVtLVNjaHV0elxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+XG4gICAgICAgICAgICAgICAgICAgIDx0Ym9keT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz1cInJlbGF0aXZlIGJvcmRlci1iLTIgYm9yZGVyLWJsYWNrXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiaGlkZGVuIHctMS8yIHNtOnRhYmxlLWNlbGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJmb250LWJvbGRcIj5TY29vdGVyPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicHQtMTAgcGItNCBzbTpwdC00XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZ2V0TG9jYWxlUHJpY2UoZm9ybWRhdGEucHJvZHVjdHMucHJpY2UpIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImFic29sdXRlIHRvcC0wIGxlZnQtMCByaWdodC0wIGZsZXggc206aGlkZGVuXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwicHQtMiBteC1hdXRvIGZvbnQtYm9sZFwiPlNjb290ZXI8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwdC0xMCBwYi00IHRleHQtcmlnaHQgYWxpZ24tYm90dG9tIHNtOnB0LTQgc206dGV4dC1sZWZ0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHt7IGZvcm1kYXRhLnNhbGFyeS5kdXJhdGlvbiB9fSBNb25hdGUgeFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZ2V0TG9jYWxlUHJpY2UocHJvZHVjdERhdGEubGVhc2luZ19uZXQpIH19KSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBnZXRMb2NhbGVQcmljZShwcm9kdWN0RGF0YS5sZWFzaW5nX25ldF90b3RhbCkgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPVwicmVsYXRpdmUgYm9yZGVyLWItMiBib3JkZXItYmxhY2tcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJoaWRkZW4gdy0xLzIgc206dGFibGUtY2VsbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImZvbnQtYm9sZFwiPnp6Z2wuIFJ1bmR1bS1TY2h1dHogKEdlaGFsdHN1bXdhbmRsdW5nKTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInB0LTEwIHBiLTQgc206cHQtNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGdldExvY2FsZVByaWNlKHByb2R1Y3REYXRhLmdlbmVyYWxfaW5zdXJhbmNlKSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJhYnNvbHV0ZSB0b3AtMCBsZWZ0LTAgcmlnaHQtMCBmbGV4IHNtOmhpZGRlblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInB0LTIgbXgtYXV0byBmb250LWJvbGRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHp6Z2wuIFJ1bmR1bS1TY2h1dHogKEdlaGFsdHN1bXdhbmRsdW5nKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwdC0xMCBwYi00IHRleHQtcmlnaHQgYWxpZ24tYm90dG9tIHNtOnB0LTQgc206dGV4dC1sZWZ0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPmlua2x1c2l2ZTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0clxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYtaWY9XCJwcm9kdWN0RGF0YS5nZW5lcmFsX3NlcnZpY2VfY29zdHMgPiAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInJlbGF0aXZlIGJvcmRlci1iLTIgYm9yZGVyLWJsYWNrXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJoaWRkZW4gdy0xLzIgc206dGFibGUtY2VsbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImZvbnQtYm9sZFwiPnp6Z2wuIFNlcnZpY2U8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwdC0xMCBwYi00IHNtOnB0LTRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBnZXRMb2NhbGVQcmljZShwcm9kdWN0RGF0YS5nZW5lcmFsX3NlcnZpY2VfY29zdHMpIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImFic29sdXRlIHRvcC0wIGxlZnQtMCByaWdodC0wIGZsZXggc206aGlkZGVuXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwicHQtMiBteC1hdXRvIGZvbnQtYm9sZFwiPnp6Z2wuIFNlcnZpY2U8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwdC0xMCBwYi00IHRleHQtcmlnaHQgYWxpZ24tYm90dG9tIHNtOnB0LTQgc206dGV4dC1sZWZ0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPmlua2x1c2l2ZTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz1cInJlbGF0aXZlIGJvcmRlci1iLTIgYm9yZGVyLWJsYWNrXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiaGlkZGVuIHctMS8yIHNtOnRhYmxlLWNlbGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJmb250LWJvbGRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVyd2FydGV0ZXIgR2VicmF1Y2h0a2F1ZnByZWlzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBwcm9kdWN0RGF0YS5jYWxjdWxhdGlvbl9yZXNpZHVhbCB9fSVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicHQtMTAgcGItNCBzbTpwdC00XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPnt7IGdldExvY2FsZVByaWNlKDApIH19PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYWJzb2x1dGUgdG9wLTAgbGVmdC0wIHJpZ2h0LTAgZmxleCBzbTpoaWRkZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJwdC0yIG14LWF1dG8gZm9udC1ib2xkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFcndhcnRldGVyIEdlYnJhdWNodGthdWZwcmVpc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgcHJvZHVjdERhdGEuY2FsY3VsYXRpb25fcmVzaWR1YWwgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicHQtMTAgcGItNCB0ZXh0LXJpZ2h0IGFsaWduLWJvdHRvbSBzbTpwdC00IHNtOnRleHQtbGVmdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGdldExvY2FsZVByaWNlKHByb2R1Y3REYXRhLmdlbmVyYWxfcmVzdCkgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PlxuICAgICAgICAgICAgICAgIDwvdGFibGU+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgcHktNCB0ZXh0LWNlbnRlciB0ZXh0LXdoaXRlIGJnLWJsYWNrXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPkJhcmthdWYgbWludXMgRGllbnN0c2Nvb3RlciA9IEVyc3Bhcm5pcyB2b246PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtMnhsIGZvbnQtYm9sZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgZ2V0TG9jYWxlUHJpY2UocHJvZHVjdERhdGEuc2F2aW5nKSB9fSAoe3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9kdWN0RGF0YS5zYXZpbmdfcGVyY2VudGFnZVxuICAgICAgICAgICAgICAgICAgICAgICAgfX0lKVxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB0LTQgcGItOFwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgPkJlcmVjaG51bmcgb2huZSBHZXfDpGhyLiBCaXR0ZSB3ZW5kZW4gU2llIHNpY2ggYW4gSWhyZW4gU3RldWVyYmVyYXRlciwgdW1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVpbmUgdmVyYmluZGxpY2hlIEthbGt1bGF0aW9uIHp1IGVyaGFsdGVuLjwvc3BhblxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L3RlbXBsYXRlPlxuXG48c2NyaXB0PlxuaW1wb3J0IGNvbmZpZyBmcm9tICcuLi8uLi9jb25maWcvY2FsY3VsYXRvci5jb25maWcuanMnXG5pbXBvcnQgeyBkZWJvdW5jZSB9IGZyb20gJ2xvZGFzaCdcbmltcG9ydCBheGlvcyBmcm9tICdheGlvcydcbmltcG9ydCBJbmZvcG9wdXAgZnJvbSAnLi9jb21wb25lbnRzL0luZm9wb3B1cC52dWUnXG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgICBjb21wb25lbnRzOiB7IEluZm9wb3B1cCB9LFxuICAgIHByb3BzOiB7XG4gICAgICAgIHVybDoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgZGVmYXVsdDogJycsXG4gICAgICAgIH0sXG4gICAgICAgIHRva2VuOiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICBkZWZhdWx0OiAnJyxcbiAgICAgICAgfSxcbiAgICAgICAgYXV0aF90b2tlbjoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgZGVmYXVsdDogJycsXG4gICAgICAgIH0sXG4gICAgICAgIGNvdXBvbl9jb25maWc6IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIGRlZmF1bHQ6ICcnLFxuICAgICAgICB9LFxuICAgICAgICBkdXJhdGlvbjoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgZGVmYXVsdDogJzM2JyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVzaWR1YWw6IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIGRlZmF1bHQ6ICcxOCcsXG4gICAgICAgIH0sXG4gICAgICAgIHdpdGhfc29jaWFsOiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICBkZWZhdWx0OiAnMScsXG4gICAgICAgIH0sXG4gICAgICAgIGFsbF9yb3VuZF9wcm90ZWN0aW9uOiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICBkZWZhdWx0OiAnMzYnLFxuICAgICAgICB9LFxuICAgICAgICBjYWxjdWxhdG9yX2NvbG9yOiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICBkZWZhdWx0OiAnJyxcbiAgICAgICAgfSxcbiAgICAgICAgZW1wbG95ZXJfZ3JhbnQ6IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIGRlZmF1bHQ6ICcnLFxuICAgICAgICB9LFxuICAgICAgICBjb2xvcl9idXR0b246IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIGRlZmF1bHQ6ICcnLFxuICAgICAgICB9LFxuICAgICAgICBwb3J0YWw6IHtcbiAgICAgICAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgICAgICAgICBkZWZhdWx0OiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIGRhdGEoKSB7XG4gICAgICAgIGNvbnN0IGZvcm1kYXRhID0ge1xuICAgICAgICAgICAgLi4uY29uZmlnLnNjb290ZXIuZGVmYXVsdHMsXG4gICAgICAgICAgICBzYWxhcnk6IHtcbiAgICAgICAgICAgICAgICAuLi5jb25maWcuc2Nvb3Rlci5kZWZhdWx0cy5zYWxhcnksXG4gICAgICAgICAgICAgICAgZ3JhbnRfcGVyY2VudGFnZTogSlNPTi5wYXJzZSh0aGlzLmVtcGxveWVyX2dyYW50KS5sZWFzaW5nLnZhbHVlLFxuICAgICAgICAgICAgICAgIGNhbGNBR1JTOiBKU09OLnBhcnNlKHRoaXMuZW1wbG95ZXJfZ3JhbnQpLnByb3RlY3Rpb24udmFsdWUsXG4gICAgICAgICAgICAgICAgZ3JhbnRfc2VydmljZTogSlNPTi5wYXJzZSh0aGlzLmVtcGxveWVyX2dyYW50KS5wYWNrYWdlLnZhbHVlLFxuICAgICAgICAgICAgICAgIHRheGRlZHVjdGlvbjogSlNPTi5wYXJzZSh0aGlzLmVtcGxveWVyX2dyYW50KS50YXgudmFsdWUsXG4gICAgICAgICAgICAgICAgLy8gc2VydmljZTogT2JqZWN0LmtleXMoSlNPTi5wYXJzZSh0aGlzLmNvdXBvbikpWzBdLFxuICAgICAgICAgICAgICAgIC8vIHNlcnZpY2VfdmFsdWU6IE9iamVjdC52YWx1ZXMoSlNPTi5wYXJzZSh0aGlzLmNvdXBvbikpWzBdLnZhbHVlLFxuICAgICAgICAgICAgICAgIC8vIHNlcnZpY2VfdmFsdWVfbmV0OiBPYmplY3QudmFsdWVzKEpTT04ucGFyc2UodGhpcy5jb3Vwb24pKVswXS52YWx1ZV9uZXQsXG4gICAgICAgICAgICAgICAgLy8gZ3JhbnRfdHlwZTogJ3BlcmNlbnQnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHByb2R1Y3RzOiB7XG4gICAgICAgICAgICAgICAgaWQ6IGNvbmZpZy5zY29vdGVyLmRlZmF1bHRzLnByb2R1Y3RzLmlkLFxuICAgICAgICAgICAgICAgIHByaWNlOiBjb25maWcuc2Nvb3Rlci5kZWZhdWx0cy5wcm9kdWN0cy5wcmljZSxcbiAgICAgICAgICAgICAgICBtc3JwOiBjb25maWcuc2Nvb3Rlci5kZWZhdWx0cy5wcm9kdWN0cy5tc3JwLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdGF4Q2xhc3NlczogWzEsIDIsIDMsIDQsIDUsIDZdLFxuICAgICAgICAgICAgYnV0dG9uVHJpZ2dlcjogZmFsc2UsXG4gICAgICAgICAgICBzaG93U3ZnOiB0cnVlLFxuICAgICAgICAgICAgc2hvd0Vycm9yOiBmYWxzZSxcbiAgICAgICAgICAgIHNob3dGaWVsZHM6IGZhbHNlLFxuICAgICAgICAgICAgc2hvd1RhYmxlOiB0cnVlLFxuICAgICAgICAgICAgaXNsb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgICAgIHZhdDogY29uZmlnLnNjb290ZXIuYnVkZ2V0LnZhdCxcbiAgICAgICAgICAgIG1heFZhbHVlOiBjb25maWcuc2Nvb3Rlci5idWRnZXQubWF4ICogY29uZmlnLnNjb290ZXIuYnVkZ2V0LnZhdCxcbiAgICAgICAgICAgIG1pblZhbHVlOiBjb25maWcuc2Nvb3Rlci5idWRnZXQubWluICogY29uZmlnLnNjb290ZXIuYnVkZ2V0LnZhdCxcbiAgICAgICAgICAgIGhlYWx0aE1pblZhbHVlOiBjb25maWcuaGVhbHRoaW5zdXJhbmNlY29udHJpYnV0aW9uLm1pbixcbiAgICAgICAgICAgIGhlYWx0aE1heFZhbHVlOiBjb25maWcuaGVhbHRoaW5zdXJhbmNlY29udHJpYnV0aW9uLm1heCxcbiAgICAgICAgICAgIGNvdXBvbjogY29uZmlnLnNjb290ZXIuZGVmYXVsdHMuY291cG9uLFxuICAgICAgICAgICAgZm9ybWRhdGEsXG4gICAgICAgICAgICBjYWxjdWxhdG9yVmFsdWVzOiBjb25maWcuc2Nvb3Rlci5idWRnZXQsXG4gICAgICAgICAgICBhcGlEYXRhOiB7fSxcbiAgICAgICAgICAgIGhlYWRlcjoge1xuICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgICAgICAgJ0NhY2hlLUNvbnRyb2wnOiAnbm8tY2FjaGUnLFxuICAgICAgICAgICAgICAgIEFjY2VwdDogJ2FwcGxpY2F0aW9uL3guY2FsY3VsYXRvci52MStqc29uLCB4bWwsIGFwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNlbmREYXRhOiBkZWJvdW5jZSh0aGlzLnNlbmRSZXF1ZXN0VG9DYWxjdWxhdG9yLCAxNTApLFxuICAgICAgICAgICAgc2VsZWN0ZWRDb3Vwb246IGZvcm1kYXRhLnNhbGFyeS5zZXJ2aWNlLFxuICAgICAgICB9XG4gICAgfSxcbiAgICBiZWZvcmVNb3VudCgpIHtcbiAgICAgICAgaWYgKEpTT04ucGFyc2UodGhpcy5lbXBsb3llcl9ncmFudCkuZml4ZWQgJiYgSlNPTi5wYXJzZSh0aGlzLmVtcGxveWVyX2dyYW50KS5maXhlZC52YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5mb3JtZGF0YS5zYWxhcnkuZ3JhbnRfZml4dmFsdWUgPSBKU09OLnBhcnNlKHRoaXMuZW1wbG95ZXJfZ3JhbnQpLmZpeGVkLnZhbHVlXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1kYXRhLnNhbGFyeS5ncmFudF9maXh2YWx1ZSA9IDBcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5jb3Vwb25fY29uZmlnICYmIHRoaXMuY291cG9uX2NvbmZpZyAhPT0gJycpIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybWRhdGEuc2FsYXJ5LnNlcnZpY2UgPSBPYmplY3Qua2V5cyhKU09OLnBhcnNlKHRoaXMuY291cG9uX2NvbmZpZykpWzBdXG4gICAgICAgICAgICA7KHRoaXMuZm9ybWRhdGEuc2FsYXJ5LnNlcnZpY2VfdmFsdWVfbmV0ID0gT2JqZWN0LnZhbHVlcyhcbiAgICAgICAgICAgICAgICBKU09OLnBhcnNlKHRoaXMuY291cG9uX2NvbmZpZyksXG4gICAgICAgICAgICApWzBdLnZhbHVlX25ldCksXG4gICAgICAgICAgICAgICAgKHRoaXMuZm9ybWRhdGEuc2FsYXJ5LnNlcnZpY2VfdmFsdWUgPSBPYmplY3QudmFsdWVzKFxuICAgICAgICAgICAgICAgICAgICBKU09OLnBhcnNlKHRoaXMuY291cG9uX2NvbmZpZyksXG4gICAgICAgICAgICAgICAgKVswXS52YWx1ZSlcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDb3Vwb24gPSB0aGlzLmZvcm1kYXRhLnNhbGFyeS5zZXJ2aWNlXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1kYXRhLnNhbGFyeS5zZXJ2aWNlID0gMTJcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIEpTT04ucGFyc2UodGhpcy5lbXBsb3llcl9ncmFudCkuZml4ZWQgJiZcbiAgICAgICAgICAgIEpTT04ucGFyc2UodGhpcy5lbXBsb3llcl9ncmFudCkuZml4ZWQudmFsdWUgPiAwXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5mb3JtZGF0YS5zYWxhcnkuZ3JhbnRfdHlwZSA9ICdFVVInXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1kYXRhLnNhbGFyeS5ncmFudF90eXBlID0gJ3BlcmNlbnQnXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByb290Q29sb3IgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCc6cm9vdCcpXG4gICAgICAgIHJvb3RDb2xvci5zdHlsZS5zZXRQcm9wZXJ0eShcbiAgICAgICAgICAgICctLWNhbGNDb2xvckJ1dHRvbicsXG4gICAgICAgICAgICBKU09OLnBhcnNlKHRoaXMuY29sb3JfYnV0dG9uKS5jb2xvci5iYWNrZ3JvdW5kLFxuICAgICAgICApXG4gICAgICAgIHJvb3RDb2xvci5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1jYWxjQ29sb3JUZXh0JywgSlNPTi5wYXJzZSh0aGlzLmNvbG9yX2J1dHRvbikuY29sb3IudGV4dClcbiAgICB9LFxuICAgIGNvbXB1dGVkOiB7XG4gICAgICAgIHRvZ2dsZUdyYW50VHlwZSgpIHtcbiAgICAgICAgICAgIHJldHVybiAodGhpcy5ncmFudENvbmZpZ09iamVjdHMuZml4ZWQgJiYgdGhpcy5ncmFudENvbmZpZ09iamVjdHMuZml4ZWQudmFsdWUgPiAwKSB8fFxuICAgICAgICAgICAgICAgIHRoaXMuZ3JhbnRDb25maWdPYmplY3RzLmxlYXNpbmcudmFsdWUgPiAwXG4gICAgICAgICAgICAgICAgPyAnaGlkZGVuJ1xuICAgICAgICAgICAgICAgIDogJydcbiAgICAgICAgfSxcbiAgICAgICAgZ3JhbnRUeXBlKCkge1xuICAgICAgICAgICAgcmV0dXJuICh0aGlzLmdyYW50Q29uZmlnT2JqZWN0cy5maXhlZCAmJiB0aGlzLmdyYW50Q29uZmlnT2JqZWN0cy5maXhlZC52YWx1ZSA+IDApIHx8XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtZGF0YS5zYWxhcnkuZ3JhbnRfdHlwZSA9PSAnRVVSJ1xuICAgICAgICAgICAgICAgID8gJ0VVUidcbiAgICAgICAgICAgICAgICA6ICdwZXJjZW50J1xuICAgICAgICB9LFxuICAgICAgICBncmFudFBlcmNlbnRUeXBlKCkge1xuICAgICAgICAgICAgcmV0dXJuICh0aGlzLmdyYW50Q29uZmlnT2JqZWN0cy5maXhlZCAmJiB0aGlzLmdyYW50Q29uZmlnT2JqZWN0cy5maXhlZC52YWx1ZSA+IDApIHx8XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtZGF0YS5zYWxhcnkuZ3JhbnRfdHlwZSA9PSAnRVVSJ1xuICAgICAgICAgICAgICAgID8gJ2hpZGRlbidcbiAgICAgICAgICAgICAgICA6ICcnXG4gICAgICAgIH0sXG4gICAgICAgIGdyYW50Rml4ZWRUeXBlKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ3JhbnRDb25maWdPYmplY3RzLmxlYXNpbmcudmFsdWUgPiAwIHx8XG4gICAgICAgICAgICAgICAgKHRoaXMuZm9ybWRhdGEuc2FsYXJ5LmdyYW50X3R5cGUgPT0gJ3BlcmNlbnQnICYmXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ3JhbnRDb25maWdPYmplY3RzLmZpeGVkICYmXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ3JhbnRDb25maWdPYmplY3RzLmZpeGVkLnZhbHVlID09IDAgJiZcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ncmFudFBlcmNlbnRUeXBlICE9PSAnaGlkZGVuJylcbiAgICAgICAgICAgICAgICA/ICdoaWRkZW4nXG4gICAgICAgICAgICAgICAgOiAnJ1xuICAgICAgICB9LFxuICAgICAgICBpc1BvcnRhbCgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnBvcnRhbCA9PSB0cnVlID8gJ2hpZGRlbicgOiAnJ1xuICAgICAgICB9LFxuICAgICAgICBjb3Vwb25PYmplY3RzKCkge1xuICAgICAgICAgICAgaWYgKCF0aGlzLmNvdXBvbl9jb25maWcgfHwgdGhpcy5jb3Vwb25fY29uZmlnID09PSAnJykge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNvdXBvblxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZSh0aGlzLmNvdXBvbl9jb25maWcpXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGdyYW50Q29uZmlnT2JqZWN0cygpIHtcbiAgICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKHRoaXMuZW1wbG95ZXJfZ3JhbnQpXG4gICAgICAgIH0sXG4gICAgICAgIGNvdXBvbnMoKSB7XG4gICAgICAgICAgICByZXR1cm4gT2JqZWN0LmVudHJpZXModGhpcy5jb3Vwb25PYmplY3RzKS5tYXAoKFtrZXksIG9ial0pID0+ICh7XG4gICAgICAgICAgICAgICAgdGV4dDogb2JqLnRleHQsXG4gICAgICAgICAgICAgICAgdmFsdWVfbmV0OiBvYmoudmFsdWVfbmV0LFxuICAgICAgICAgICAgICAgIHZhbHVlOiBrZXksXG4gICAgICAgICAgICB9KSlcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3JNZXNzYWdlUGVyY2VudCgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmZvcm1kYXRhLnNhbGFyeS5ncmFudF9wZXJjZW50YWdlID09PSAnJyAmJlxuICAgICAgICAgICAgICAgIHRoaXMuZm9ybWRhdGEuc2FsYXJ5LmdyYW50X3R5cGUgPT0gJ3BlcmNlbnQnXG4gICAgICAgICAgICAgICAgPyAnQml0dGUgZ2ViZW4gU2llIGVpbmVuIGfDvGx0aWdlbiBXZXJ0IGFuJ1xuICAgICAgICAgICAgICAgIDogJydcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3JNZXNzYWdlRml4ZWQoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5mb3JtZGF0YS5zYWxhcnkuZ3JhbnRfZml4dmFsdWUgPT09ICcnICYmXG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtZGF0YS5zYWxhcnkuZ3JhbnRfdHlwZSA9PSAnRVVSJ1xuICAgICAgICAgICAgICAgID8gJ0JpdHRlIGdlYmVuIFNpZSBlaW5lbiBnw7xsdGlnZW4gV2VydCBhbidcbiAgICAgICAgICAgICAgICA6ICcnXG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yTWVzc2FnZUdyb3NzKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZm9ybWRhdGEuc2FsYXJ5Lmdyb3NzbW9udGhseXNhbGFyeSA9PT0gJydcbiAgICAgICAgICAgICAgICA/ICdCaXR0ZSBnZWJlbiBTaWUgZWluZW4gZ8O8bHRpZ2VuIFdlcnQgYW4nXG4gICAgICAgICAgICAgICAgOiAnJ1xuICAgICAgICB9LFxuICAgICAgICBwcm9kdWN0cygpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgYXV0aG9yaXphdGlvbjogdGhpcy5hdXRoX3Rva2VuLFxuICAgICAgICAgICAgICAgIHNhbGFyeToge1xuICAgICAgICAgICAgICAgICAgICAuLi50aGlzLmZvcm1kYXRhLnNhbGFyeSxcbiAgICAgICAgICAgICAgICAgICAgcmVzaWR1YWw6IHRoaXMucmVzaWR1YWwsXG4gICAgICAgICAgICAgICAgICAgIGR1cmF0aW9uOiB0aGlzLmR1cmF0aW9uLFxuICAgICAgICAgICAgICAgICAgICB3aXRoX3NvY2lhbDogdGhpcy53aXRoX3NvY2lhbCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHByb2R1Y3RzOiB7XG4gICAgICAgICAgICAgICAgICAgIDE6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLnRoaXMuZm9ybWRhdGEucHJvZHVjdHMsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgc2V0R3JhbnRQZXJjZW50YWdlKCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybWRhdGEuc2FsYXJ5LmdyYW50X3BlcmNlbnRhZ2UgPj0gMTAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICh0aGlzLmZvcm1kYXRhLnNhbGFyeS5ncmFudF9wZXJjZW50YWdlID0gMTAwKVxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBwcm9kdWN0RGF0YSgpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5hcGlEYXRhLnByb2R1Y3RzX2NhbGN1bGF0ZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge31cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuYXBpRGF0YSAmJiB0aGlzLmFwaURhdGEucHJvZHVjdHNfY2FsY3VsYXRlZFxuICAgICAgICAgICAgICAgID8gT2JqZWN0LmtleXModGhpcy5hcGlEYXRhLnByb2R1Y3RzX2NhbGN1bGF0ZWRbdGhpcy5mb3JtZGF0YS5wcm9kdWN0cy5pZF0pXG4gICAgICAgICAgICAgICAgICAgICAgLm1hcCgocHJvZHVjdFByaWNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmFwaURhdGEucHJvZHVjdHNfY2FsY3VsYXRlZFt0aGlzLmZvcm1kYXRhLnByb2R1Y3RzLmlkXVtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2R1Y3RQcmljZVxuICAgICAgICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAucG9wKClcbiAgICAgICAgICAgICAgICA6IHt9XG4gICAgICAgIH0sXG4gICAgICAgIHByb2R1Y3REZXRhaWxzKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvZHVjdERhdGEuZGV0YWlsc1xuICAgICAgICB9LFxuICAgICAgICBhbW91bnRzKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvZHVjdERhdGEubGVhc2luZy5ncm9zc1xuICAgICAgICB9LFxuICAgICAgICBuZXRfYW1vdW50cygpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2R1Y3REYXRhLmxlYXNpbmcubmV0XG4gICAgICAgIH0sXG4gICAgICAgIGhhc1Byb2R1Y3REYXRhKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvZHVjdERhdGEgPyBPYmplY3Qua2V5cyh0aGlzLnByb2R1Y3REYXRhKS5sZW5ndGggPiAwIDogZmFsc2VcbiAgICAgICAgfSxcbiAgICAgICAgaXNWYWxpZGF0ZWQoKSB7XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIHBhcnNlRmxvYXQodGhpcy5mb3JtZGF0YS5wcm9kdWN0cy5wcmljZSkgIT09IDAgJiZcbiAgICAgICAgICAgICAgICBwYXJzZUZsb2F0KHRoaXMuZm9ybWRhdGEucHJvZHVjdHMucHJpY2UpID4gMCAmJlxuICAgICAgICAgICAgICAgIHBhcnNlRmxvYXQodGhpcy5mb3JtZGF0YS5zYWxhcnkuZ3Jvc3Ntb250aGx5c2FsYXJ5KSAhPT0gMCAmJlxuICAgICAgICAgICAgICAgIHBhcnNlRmxvYXQodGhpcy5mb3JtZGF0YS5zYWxhcnkuZ3Jvc3Ntb250aGx5c2FsYXJ5KSA+IDBcbiAgICAgICAgICAgIClcbiAgICAgICAgfSxcbiAgICAgICAgaXNCdWRnZXRBbmRWYWxpZCgpIHtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgdGhpcy5pc0J1ZGdldCh0aGlzLmZvcm1kYXRhLnByb2R1Y3RzLnByaWNlKSAmJlxuICAgICAgICAgICAgICAgIHRoaXMuaXNCdWRnZXQodGhpcy5mb3JtZGF0YS5zYWxhcnkuZ3Jvc3Ntb250aGx5c2FsYXJ5LCAnYnJ1dHRvJykgJiZcbiAgICAgICAgICAgICAgICB0aGlzLmlzVmFsaWRhdGVkXG4gICAgICAgICAgICApXG4gICAgICAgIH0sXG4gICAgICAgIGJ1ZGdldE1lc3NhZ2UoKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5mb3JtZGF0YS5wcm9kdWN0cy5wcmljZSA8IHRoaXMubWluVmFsdWUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYERlciBhbmdlZ2ViZW5lIFByZWlzIGlzdCB6dSBuaWVkcmlnLiBEaWVzZXIgbXVzcyBncsO2w59lciBzZWluIGFscyAke3RoaXMuZ2V0TG9jYWxlUHJpY2UoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWluVmFsdWUsXG4gICAgICAgICAgICAgICAgKX1gXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZm9ybWRhdGEucHJvZHVjdHMucHJpY2UgPiB0aGlzLm1heFZhbHVlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGBEZXIgYW5nZWdlYmVuZSBQcmVpcyBpc3QgenUgaG9jaC4gRGllc2VyIG11c3MgbmllZHJpZ2VyIHNlaW4gYWxzICR7dGhpcy5nZXRMb2NhbGVQcmljZShcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tYXhWYWx1ZSxcbiAgICAgICAgICAgICAgICApfWBcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiAnJ1xuICAgICAgICB9LFxuICAgICAgICBwcmljZU1lc3NhZ2UoKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5mb3JtZGF0YS5wcm9kdWN0cy5tc3JwIDwgdGhpcy5taW5WYWx1ZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBgRGVyIGFuZ2VnZWJlbmUgUHJlaXMgaXN0IHp1IG5pZWRyaWcuIERpZXNlciBtdXNzIGdyw7bDn2VyIHNlaW4gYWxzICR7dGhpcy5nZXRMb2NhbGVQcmljZShcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5taW5WYWx1ZSxcbiAgICAgICAgICAgICAgICApfWBcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5mb3JtZGF0YS5wcm9kdWN0cy5tc3JwID4gdGhpcy5tYXhWYWx1ZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBgRGVyIGFuZ2VnZWJlbmUgUHJlaXMgaXN0IHp1IGhvY2guIERpZXNlciBtdXNzIG5pZWRyaWdlciBzZWluIGFscyAke3RoaXMuZ2V0TG9jYWxlUHJpY2UoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWF4VmFsdWUsXG4gICAgICAgICAgICAgICAgKX1gXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gJydcbiAgICAgICAgfSxcbiAgICAgICAgc3VjY2Vzc1RleHQoKSB7XG4gICAgICAgICAgICBsZXQgZ2V0TGVhc2luZ1JhdGUgPVxuICAgICAgICAgICAgICAgICh0aGlzLmdyYW50Q29uZmlnT2JqZWN0cy5sZWFzaW5nICYmIHRoaXMuZ3JhbnRDb25maWdPYmplY3RzLmxlYXNpbmcudmFsdWUgPiAwKSB8fFxuICAgICAgICAgICAgICAgICh0aGlzLmdyYW50Q29uZmlnT2JqZWN0cy5maXhlZCAmJiB0aGlzLmdyYW50Q29uZmlnT2JqZWN0cy5maXhlZC52YWx1ZSA+IDApXG4gICAgICAgICAgICAgICAgICAgID8gJzEnXG4gICAgICAgICAgICAgICAgICAgIDogJzAnXG4gICAgICAgICAgICBsZXQgZ2V0R3JhbnRTZXJ2aWNlID1cbiAgICAgICAgICAgICAgICB0aGlzLmdyYW50Q29uZmlnT2JqZWN0cy5wYWNrYWdlLmRpc2FibGVkID09IHRydWUgJiZcbiAgICAgICAgICAgICAgICB0aGlzLmdyYW50Q29uZmlnT2JqZWN0cy5wYWNrYWdlLnZhbHVlID4gMFxuICAgICAgICAgICAgICAgICAgICA/ICcxJ1xuICAgICAgICAgICAgICAgICAgICA6ICcwJ1xuICAgICAgICAgICAgbGV0IGdldEdyYW50UmF0ZSA9XG4gICAgICAgICAgICAgICAgdGhpcy5ncmFudENvbmZpZ09iamVjdHMucHJvdGVjdGlvbi5kaXNhYmxlZCA9PSB0cnVlICYmXG4gICAgICAgICAgICAgICAgdGhpcy5ncmFudENvbmZpZ09iamVjdHMucHJvdGVjdGlvbi52YWx1ZSA+IDBcbiAgICAgICAgICAgICAgICAgICAgPyAnMSdcbiAgICAgICAgICAgICAgICAgICAgOiAnMCdcbiAgICAgICAgICAgIGxldCBhZ01lc3NhZ2VBcnJheSA9IFtnZXRHcmFudFJhdGUsIGdldExlYXNpbmdSYXRlLCBnZXRHcmFudFNlcnZpY2VdXG5cbiAgICAgICAgICAgIHN3aXRjaCAoYWdNZXNzYWdlQXJyYXkuam9pbignLCcpKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnMCwwLDAnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICBjYXNlICcxLDAsMCc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAnR2zDvGNrd3Vuc2NoISBEZWluIEFyYmVpdGdlYmVyIDxzdHJvbmc+c2NoZW5rdCBkaXIgZGVuIFJ1bmR1bS1TY2h1dHouPC9zdHJvbmc+IERpZSBTdW1tZSBkYWbDvHIgd2lyZCB2b24gZGVpbmVyIE51dHp1bmdzcmF0ZSBhdXRvbWF0aXNjaCBhYmdlem9nZW4uJ1xuICAgICAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICAgIGNhc2UgJzAsMSwwJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdHbMO8Y2t3dW5zY2ghIERlaW4gQXJiZWl0Z2ViZXIgPHN0cm9uZz5iZXp1c2NodXNzdCBkaWUgTGVhc2luZ3JhdGUuPC9zdHJvbmc+IERlaW5lIE51dHp1bmdzcmF0ZSB2ZXJyaW5nZXJ0IHNpY2ggaW4gSMO2aGUgZGVzIFp1c2NodXNzZXMuJ1xuICAgICAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICAgIGNhc2UgJzEsMSwwJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdHbMO8Y2t3dW5zY2ghIERlaW4gQXJiZWl0Z2ViZXIgPHN0cm9uZz5zY2hlbmt0IGRpciBkZW4gUnVuZHVtLVNjaHV0eiB1bmQgYmV6dXNjaHVzc3QgZGllIExlYXNpbmdyYXRlLjwvc3Ryb25nPidcbiAgICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICBjYXNlICcxLDAsMSc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAnR2zDvGNrd3Vuc2NoISBEZWluIEFyYmVpdGdlYmVyIDxzdHJvbmc+c2NoZW5rdCBkaXIgZGVuIFJ1bmR1bS1TY2h1dHogdW5kIGRlbiBTZXJ2aWNlIEd1dHNjaGVpbi48L3N0cm9uZz4gRGllIFN1bW1lIGRhZsO8ciB3aXJkIHZvbiBkZWluZXIgTnV0enVuZ3NyYXRlIGF1dG9tYXRpc2NoIGFiZ2V6b2dlbi4nXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgICAgY2FzZSAnMCwxLDEnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ0dsw7xja3d1bnNjaCEgRGVpbiBBcmJlaXRnZWJlciA8c3Ryb25nPnNjaGVua3QgZGlyIGRlbiBTZXJ2aWNlIEd1dHNjaGVpbiB1bmQgYmV6dXNjaHVzc3QgZGllIExlYXNpbmdyYXRlLjwvc3Ryb25nPidcbiAgICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICBjYXNlICcwLDAsMSc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAnR2zDvGNrd3Vuc2NoISBEZWluIEFyYmVpdGdlYmVyIDxzdHJvbmc+c2NoZW5rdCBkaXIgZGVuIFNlcnZpY2UgR3V0c2NoZWluLjwvc3Ryb25nPiBEaWUgU3VtbWUgZGFmw7xyIHdpcmQgdm9uIGRlaW5lciBOdXR6dW5nc3JhdGUgYXV0b21hdGlzY2ggYWJnZXpvZ2VuLidcbiAgICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICBjYXNlICcxLDEsMSc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAnR2zDvGNrd3Vuc2NoISBEZWluIEFyYmVpdGdlYmVyIDxzdHJvbmc+c2NoZW5rdCBkaXIgZGVuIFJ1bmR1bS1TY2h1dHosIGRlbiBTZXJ2aWNlIEd1dHNjaGVpbiB1bmQgYmV6dXNjaHVzc3QgZGllIExlYXNpbmdyYXRlLjwvc3Ryb25nPidcbiAgICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICB9LFxuICAgIGNyZWF0ZWQoKSB7XG4gICAgICAgIHRoaXMuZm9ybWRhdGEuc2FsYXJ5LmhlYWx0aGluc3VyYW5jZWNvbnRyaWJ1dGlvbiA9XG4gICAgICAgICAgICB0aGlzLmZvcm1kYXRhLnNhbGFyeS5oZWFsdGhpbnN1cmFuY2Vjb250cmlidXRpb24gPT0gMFxuICAgICAgICAgICAgICAgID8gJzAuMCdcbiAgICAgICAgICAgICAgICA6IHRoaXMuZm9ybWRhdGEuc2FsYXJ5LmhlYWx0aGluc3VyYW5jZWNvbnRyaWJ1dGlvblxuICAgIH0sXG4gICAgd2F0Y2g6IHtcbiAgICAgICAgc2VsZWN0ZWRDb3Vwb246IHtcbiAgICAgICAgICAgIGhhbmRsZXIoKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZm9ybWRhdGEuc2FsYXJ5LnNlcnZpY2UgPT09IHRoaXMuc2VsZWN0ZWRDb3Vwb24pIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuZm9ybWRhdGEuc2FsYXJ5LnNlcnZpY2UgPSB0aGlzLnNlbGVjdGVkQ291cG9uXG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtZGF0YS5zYWxhcnkuc2VydmljZV92YWx1ZV9uZXQgPVxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvdXBvbk9iamVjdHNbdGhpcy5zZWxlY3RlZENvdXBvbl0udmFsdWVfbmV0XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtZGF0YS5zYWxhcnkuc2VydmljZV92YWx1ZSA9IHRoaXMuY291cG9uT2JqZWN0c1t0aGlzLnNlbGVjdGVkQ291cG9uXS52YWx1ZVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGltbWVkaWF0ZTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIG1ldGhvZHM6IHtcbiAgICAgICAgdG9nZ2xlSW5mb1BvcHVwKCkge1xuICAgICAgICAgICAgdGhpcy5idXR0b25UcmlnZ2VyID0gIXRoaXMuYnV0dG9uVHJpZ2dlclxuICAgICAgICAgICAgdGhpcy5zaG93U3ZnID0gdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICB0b2dnbGVTdmdWaXNpYmlsaXR5KCkge1xuICAgICAgICAgICAgdGhpcy5zaG93U3ZnID0gIXRoaXMuc2hvd1N2Z1xuICAgICAgICB9LFxuICAgICAgICBzaG93RnVydGhlckZpZWxkcygpIHtcbiAgICAgICAgICAgIHRoaXMuc2hvd0ZpZWxkcyA9ICF0aGlzLnNob3dGaWVsZHNcbiAgICAgICAgfSxcbiAgICAgICAgaXNCdWRnZXQocHJpY2UsIGZpZWxkID0gJycpIHtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgKGZpZWxkICE9PSAnJyAmJiBwYXJzZUZsb2F0KHByaWNlKSA+PSBwYXJzZUZsb2F0KHRoaXMubWluVmFsdWUpKSB8fFxuICAgICAgICAgICAgICAgIChwYXJzZUZsb2F0KHByaWNlKSA+PSBwYXJzZUZsb2F0KHRoaXMubWluVmFsdWUpICYmXG4gICAgICAgICAgICAgICAgICAgIHBhcnNlRmxvYXQocHJpY2UpIDw9IHBhcnNlRmxvYXQodGhpcy5tYXhWYWx1ZSkpXG4gICAgICAgICAgICApXG4gICAgICAgIH0sXG5cbiAgICAgICAgc2hvd0NhbGN1bGF0aW9uKCkge1xuICAgICAgICAgICAgdGhpcy5zaG93VGFibGUgPSAhdGhpcy5zaG93VGFibGVcbiAgICAgICAgfSxcbiAgICAgICAgYXN5bmMgc2VuZFJlcXVlc3RUb0NhbGN1bGF0b3IoKSB7XG4gICAgICAgICAgICB0aGlzLmlzbG9hZGluZyA9IHRydWVcblxuICAgICAgICAgICAgaWYoIHRoaXMuZm9ybWRhdGEuc2FsYXJ5LmhlYWx0aGluc3VyYW5jZWNvbnRyaWJ1dGlvbiA+IGNvbmZpZy5oZWFsdGhpbnN1cmFuY2Vjb250cmlidXRpb24ubWF4KXtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1kYXRhLnNhbGFyeS5oZWFsdGhpbnN1cmFuY2Vjb250cmlidXRpb24gPSBjb25maWcuaGVhbHRoaW5zdXJhbmNlY29udHJpYnV0aW9uLm1heFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYoIHRoaXMuZm9ybWRhdGEuc2FsYXJ5LmhlYWx0aGluc3VyYW5jZWNvbnRyaWJ1dGlvbiA8IGNvbmZpZy5oZWFsdGhpbnN1cmFuY2Vjb250cmlidXRpb24ubWluKXtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1kYXRhLnNhbGFyeS5oZWFsdGhpbnN1cmFuY2Vjb250cmlidXRpb24gPSBjb25maWcuaGVhbHRoaW5zdXJhbmNlY29udHJpYnV0aW9uLm1pblxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgIWlzTmFOKHRoaXMuZm9ybWRhdGEucHJvZHVjdHMucHJpY2UpICYmXG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtZGF0YS5wcm9kdWN0cy5wcmljZSA+PSB0aGlzLm1pblZhbHVlICYmXG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtZGF0YS5wcm9kdWN0cy5wcmljZSA8PSB0aGlzLm1heFZhbHVlICYmXG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtZGF0YS5zYWxhcnkuZ3Jvc3Ntb250aGx5c2FsYXJ5ICE9PSAnJyAmJlxuICAgICAgICAgICAgICAgIHRoaXMuZm9ybWRhdGEucHJvZHVjdHMubXNycCAhPT0gJycgJiZcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1kYXRhLnNhbGFyeS5ncmFudF9maXh2YWx1ZSAhPT0gJycgJiZcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1kYXRhLnNhbGFyeS5ncmFudF9wZXJjZW50YWdlICE9PSAnJ1xuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgYXhpb3NcbiAgICAgICAgICAgICAgICAgICAgLnBvc3QoXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVybCArICcvYXBpL2NhbGN1bGF0ZT93aXRob3V0SGFzaD0xJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHsgLi4udGhpcy5wcm9kdWN0cyB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgeyBoZWFkZXJzOiB0aGlzLmhlYWRlciB9LFxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIC50aGVuKChkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNob3dFcnJvciA9IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFwaURhdGEgPSBkYXRhLmRhdGFcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgLmNhdGNoKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2hvd0Vycm9yID0gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBnZXRMb2NhbGVQcmljZShwcmljZSkge1xuICAgICAgICAgICAgcmV0dXJuIHByaWNlID09PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICA/ICcnXG4gICAgICAgICAgICAgICAgOiBuZXcgSW50bC5OdW1iZXJGb3JtYXQoJ2RlLURFJywge1xuICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiAnY3VycmVuY3knLFxuICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbmN5OiAnRVVSJyxcbiAgICAgICAgICAgICAgICAgIH0pLmZvcm1hdChwYXJzZUZsb2F0KHByaWNlLnRvU3RyaW5nKCkuc3BsaXQoJywnKS5qb2luKCcuJykpKVxuICAgICAgICB9LFxuICAgICAgICBjdXN0b21lckhhc0NoaWxkcmVuKCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybWRhdGEuc2FsYXJ5LmNoaWxkID09PSAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtZGF0YS5zYWxhcnkuY2hpbGR0YXggPSAwXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHRyYW5zZm9ybUZvcm1EYXRhKHJlcF9wcmVmaXgsIHByZWZpeCkge1xuICAgICAgICAgICAgdGhpcy5mb3JtZGF0YS5zYWxhcnkuZ3Jvc3Ntb250aGx5c2FsYXJ5ID0gdGhpcy5mb3JtZGF0YS5zYWxhcnkuZ3Jvc3Ntb250aGx5c2FsYXJ5XG4gICAgICAgICAgICAgICAgLnNwbGl0KHJlcF9wcmVmaXgpXG4gICAgICAgICAgICAgICAgLmpvaW4ocHJlZml4KVxuICAgICAgICAgICAgdGhpcy5mb3JtZGF0YS5wcm9kdWN0cy5wcmljZSA9IHRoaXMuZm9ybWRhdGEucHJvZHVjdHMucHJpY2VcbiAgICAgICAgICAgICAgICAuc3BsaXQocmVwX3ByZWZpeClcbiAgICAgICAgICAgICAgICAuam9pbihwcmVmaXgpXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBhc3luYyBtb3VudGVkKCkge1xuICAgICAgICBhd2FpdCB0aGlzLnNlbmRSZXF1ZXN0VG9DYWxjdWxhdG9yKClcbiAgICB9LFxufVxuPC9zY3JpcHQ+XG5cbjxzdHlsZSBzY29wZWQ+XG5zZWxlY3Qge1xuICAgIHRleHQtYWxpZ24tbGFzdDogY2VudGVyO1xufVxuXG5sYWJlbCB7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbn1cbjwvc3R5bGU+XG4iLCI8dGVtcGxhdGU+XG4gICAgPGRpdiBjbGFzcz1cIm14LTIgbXQtMFwiIHJlZj1cImVsZW1lbnRzXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXIgYmctZ3JheS0yMDAgcm91bmRlZC1sZ1wiIDpjbGFzcz1cInsgbG9hZGluZzogaXNsb2FkaW5nIH1cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXIgcC00XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQgZ3JpZC1jb2xzLTEgZ2FwLTQgbWItNFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVsYXRpdmUgZmxleCBmbGV4LXJvdyBzbTpmbGV4LWNvbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZmxleCB3LTEvMyBzbTp3LWZ1bGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5FbnRmZXJudW5nIHp1bSBBcmJlaXRzcGxhdHogKGttKVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9XCJ0b2dnbGVJbmZvUG9wdXBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFic29sdXRlIHNtOnN0YXRpYyBmb2N1czpvdXRsaW5lLW5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOiAxOHB4OyByaWdodDogMTBweDsgbWFyZ2luLWxlZnQ6IDEwcHhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAbW91c2VlbnRlcj1cInRvZ2dsZVN2Z1Zpc2liaWxpdHlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAbW91c2VsZWF2ZT1cInRvZ2dsZVN2Z1Zpc2liaWxpdHlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdi1pZj1cInNob3dTdmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxOFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIxOFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDE4IDE4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiOVwiIGN5PVwiOVwiIHI9XCI4LjVcIiBzdHJva2U9XCJibGFja1wiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiOVwiIGN5PVwiNC41XCIgcj1cIjFcIiBmaWxsPVwiIzFGMUYxRlwiIHN0cm9rZT1cIiMxRjFGMUZcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjhcIiB5PVwiOFwiIHdpZHRoPVwiMlwiIGhlaWdodD1cIjdcIiBmaWxsPVwiYmxhY2tcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOmNsYXNzPVwiYGNhbGN1bGF0b3ItJHtjYWxjdWxhdG9yX2NvbG9yfWBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdi1lbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjE4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjE4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMTggMThcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjeD1cIjlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN5PVwiOVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcj1cIjguNVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwid2hpdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCI5XCIgY3k9XCI0LjVcIiByPVwiMVwiIGZpbGw9XCJ3aGl0ZVwiIHN0cm9rZT1cIndoaXRlXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCI4XCIgeT1cIjhcIiB3aWR0aD1cIjJcIiBoZWlnaHQ9XCI3XCIgZmlsbD1cIndoaXRlXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPEluZm9wb3B1cCB2LWlmPVwiYnV0dG9uVHJpZ2dlclwiIEB0b2dnbGUtcG9wdXA9XCJ0b2dnbGVJbmZvUG9wdXBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvSW5mb3BvcHVwPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cIlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCIzMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1kYXRhLnNhbGFyeS5kaXN0YW5jZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNoYW5nZT1cInNlbmREYXRhXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInctMS8yIHB5LTEgZm9udC1ib2xkIHRleHQtY2VudGVyIHNtOnctZnVsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZCBncmlkLWNvbHMtMSBnYXAtNCBtYi00IGxnOmdyaWQtY29scy0yXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IHNtOmZsZXgtY29sXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ3LTEvMyBzbTp3LWZ1bGxcIj5LYXVmcHJlaXMgKGJydXR0byk8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cInB1cmNoYXNlcHJpY2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiei5CLjogMjAwMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1kYXRhLnByb2R1Y3RzLnByaWNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAY2hhbmdlPVwic2VuZERhdGFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidy0xLzIgcHktMSBmb250LWJvbGQgdGV4dC1jZW50ZXIgc206dy1mdWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpbnB1dD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZm9ybWRhdGEucHJvZHVjdHMucHJpY2UgPCAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWRhdGEucHJvZHVjdHMucHJpY2UgPSAwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgLz48c3BhbiB2LWlmPVwiIWlzQnVkZ2V0QW5kVmFsaWRcIiBjbGFzcz1cInRleHQtcmVkLTYwMFwiPnt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVkZ2V0TWVzc2FnZVxuICAgICAgICAgICAgICAgICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBzbTpmbGV4LWNvbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwidy0xLzMgc206dy1mdWxsXCI+VVZQPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJ1dnBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtZGF0YS5wcm9kdWN0cy5tc3JwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAY2hhbmdlPVwic2VuZERhdGFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpbnB1dD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZm9ybWRhdGEucHJvZHVjdHMubXNycCA8IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtZGF0YS5wcm9kdWN0cy5tc3JwID0gMFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInctMS8yIHB5LTEgZm9udC1ib2xkIHRleHQtY2VudGVyIHNtOnctZnVsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXJlZC02MDBcIj57eyBwcmljZU1lc3NhZ2UgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBzbTpmbGV4LWNvbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwidy0xLzMgc206dy1mdWxsXCI+QnJ1dHRvZ2VoYWx0PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJncm9zc3NhbGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCIzMDAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybWRhdGEuc2FsYXJ5Lmdyb3NzbW9udGhseXNhbGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNoYW5nZT1cInNlbmREYXRhXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInctMS8yIHB5LTEgZm9udC1ib2xkIHRleHQtY2VudGVyIHNtOnctZnVsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlucHV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmb3JtZGF0YS5zYWxhcnkuZ3Jvc3Ntb250aGx5c2FsYXJ5IDwgMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1kYXRhLnNhbGFyeS5ncm9zc21vbnRobHlzYWxhcnkgPSAwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1yZWQtNjAwXCI+e3sgZXJyb3JNZXNzYWdlR3Jvc3MgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3BhY2UteS0yIGNvbC1zcGFuLWZ1bGwgbGc6Y29sLXNwYW4tMSBzbTpzcGFjZS15LTBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInBiLTIgc206cGItMFwiPlN0ZXVlcmtsYXNzZTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOmNsYXNzPVwiYHJhZGlvLXRvb2xiYXItJHtjYWxjdWxhdG9yX2NvbG9yfWBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LXJvdyAtbWwtMiBzcGFjZS14LTIgcmFkaW8tdG9vbGJhciBzbTpzcGFjZS14LTQgc206LW1sLTRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZSB2LWZvcj1cInRheENsYXNzIGluIHRheENsYXNzZXNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOmlkPVwiYGNsYXNzJHt0YXhDbGFzc31gXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicm91bmRlZC1mdWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtZGF0YS5zYWxhcnkudGF4Y2xhc3NcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNoYW5nZT1cInNlbmREYXRhXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJyb2xsZXItdGF4LWNsYXNzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDp2YWx1ZT1cInRheENsYXNzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiA6Zm9yPVwiYGNsYXNzJHt0YXhDbGFzc31gXCI+e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRheENsYXNzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIHYtc2hvdz1cIiFwb3J0YWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgOmNsYXNzPVwiaXNQb3J0YWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb2wtc3Bhbi0xIHNwYWNlLXktMiBzbTpzcGFjZS15LTBcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJwYi0yIHNtOnBiLTBcIj7DnGJlcm5haG1lIGRlcyBSdW5kdW0tU2NodXR6ZXM8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpjbGFzcz1cImByYWRpby10b29sYmFyLSR7Y2FsY3VsYXRvcl9jb2xvcn1gXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXggZmxleC1yb3cgLW1sLTYgc3BhY2UteC02IHJhZGlvLXRvb2xiYXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImFyYmVpdG5laG1lclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtZGF0YS5zYWxhcnkuY2FsY0FHUlNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAY2hhbmdlPVwic2VuZERhdGFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwicm9sbGVyLWNhbGNBR1JTXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCIwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOmRpc2FibGVkPVwiZ3JhbnRDb25maWdPYmplY3RzLnByb3RlY3Rpb24uZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImFyYmVpdG5laG1lclwiPkFyYmVpdG5laG1lcjwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJyYWRpb1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtZGF0YS5zYWxhcnkuY2FsY0FHUlNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAY2hhbmdlPVwic2VuZERhdGFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImFyYmVpdGdlYmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cInJvbGxlci1jYWxjQUdSU1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPVwiMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpkaXNhYmxlZD1cImdyYW50Q29uZmlnT2JqZWN0cy5wcm90ZWN0aW9uLmRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJhcmJlaXRnZWJlclwiPkFyYmVpdGdlYmVyPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgdi1zaG93PVwiIXBvcnRhbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA6Y2xhc3M9XCJbaXNQb3J0YWwsIHRvZ2dsZUdyYW50VHlwZV1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb2wtc3Bhbi0xIHNwYWNlLXktMiBzbTpzcGFjZS15LTBcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJwYi0yIHNtOnBiLTBcIj5BcnQgZGVzIFp1c2NodXNzZXM8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpjbGFzcz1cImByYWRpby10b29sYmFyLSR7Y2FsY3VsYXRvcl9jb2xvcn1gXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXggZmxleC1yb3cgLW1sLTYgc3BhY2UteC02IHJhZGlvLXRvb2xiYXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cIkVVUlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtZGF0YS5zYWxhcnkuZ3JhbnRfdHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjaGFuZ2U9XCJzZW5kRGF0YVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJyb2xsZXItZ3JhbnRfdHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPVwiRVVSXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJFVVJcIj5GZXN0ZXIgQmV0cmFnPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1kYXRhLnNhbGFyeS5ncmFudF90eXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNoYW5nZT1cInNlbmREYXRhXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJwZXJjZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cInJvbGxlci1ncmFudF90eXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCJwZXJjZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJwZXJjZW50XCI+UHJvemVudHVhbGVyIFp1c2NodXNzPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgdi1zaG93PVwiIXBvcnRhbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA6Y2xhc3M9XCJbaXNQb3J0YWwsIGdyYW50VHlwZSA9PSAncGVyY2VudCcgPyAnJyA6ICdoaWRkZW4nXVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImxnOmNvbC1zdGFydC0yIHJhZGlvLXRvb2xiYXItbnVtYmVyXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHA+QXJiZWl0Z2ViZXJ6dXNjaHVzcyB6dXIgTGVhc2luZ3JhdGUgaW4gJTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbj1cIjBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heD1cIjEwMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImFyYmVpdGdlYmVyenVzY2h1c3NcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtZGF0YS5zYWxhcnkuZ3JhbnRfcGVyY2VudGFnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNoYW5nZT1cInNlbmREYXRhXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaW5wdXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZvcm1kYXRhLnNhbGFyeS5ncmFudF9wZXJjZW50YWdlID4gMTAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWRhdGEuc2FsYXJ5LmdyYW50X3BlcmNlbnRhZ2UgPSAxMDBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmb3JtZGF0YS5zYWxhcnkuZ3JhbnRfcGVyY2VudGFnZSA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtZGF0YS5zYWxhcnkuZ3JhbnRfZml4dmFsdWUgPSAwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiMTBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidy1mdWxsIHB5LTEgZm9udC1ib2xkIHRleHQtY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpkaXNhYmxlZD1cImdyYW50Q29uZmlnT2JqZWN0cy5sZWFzaW5nLmRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtcmVkLTYwMFwiPnt7IGVycm9yTWVzc2FnZVBlcmNlbnQgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICB2LXNob3c9XCIhcG9ydGFsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIDpjbGFzcz1cIltpc1BvcnRhbCwgZ3JhbnRUeXBlID09ICdFVVInID8gJycgOiAnaGlkZGVuJ11cIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJsZzpjb2wtc3RhcnQtMiByYWRpby10b29sYmFyLW51bWJlclwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwPkFyYmVpdGdlYmVyenVzY2h1c3MgenVyIExlYXNpbmdyYXRlIGluIOKCrDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbj1cIjBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heD1cIjEwMDBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJhcmJlaXRnZWJlcnp1c2NodXNzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybWRhdGEuc2FsYXJ5LmdyYW50X2ZpeHZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAY2hhbmdlPVwic2VuZERhdGFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpbnB1dD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZm9ybWRhdGEuc2FsYXJ5LmdyYW50X2ZpeHZhbHVlID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1kYXRhLnNhbGFyeS5ncmFudF9wZXJjZW50YWdlID0gMFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIjMwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInctZnVsbCBweS0xIGZvbnQtYm9sZCB0ZXh0LWNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ZGlzYWJsZWQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JhbnRDb25maWdPYmplY3RzLmZpeGVkICYmIGdyYW50Q29uZmlnT2JqZWN0cy5maXhlZC5kaXNhYmxlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXJlZC02MDBcIj57eyBlcnJvck1lc3NhZ2VGaXhlZCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZWxhdGl2ZSBmbGV4IGp1c3RpZnktY2VudGVyIHctZnVsbCBtdC02IG1iLTQgc206aGlkZGVuXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy1mdWxsIGJvcmRlci1iLTIgYm9yZGVyLXdoaXRlXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPVwic2hvd0Z1cnRoZXJGaWVsZHMoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhYnNvbHV0ZSBmbGV4IGNvbnRlbnQtY2VudGVyIHB4LTIgcHktMSB0ZXh0LXhsIHRleHQtd2hpdGUgdHJhbnNmb3JtIC10cmFuc2xhdGUteS0xLzIgYmctd2hpdGUgcm91bmRlZC1mdWxsIHNtOnB4LTIwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiB2LWlmPVwic2hvd0ZpZWxkc1wiIGNsYXNzPVwicHQtMSBwci0yIHRleHQtYmFzZSB0ZXh0LWJsYWNrXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPkVyd2VpdGVydGUgQW5nYWJlbiB2ZXJiZXJnZW48L3NwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gdi1pZj1cIiFzaG93RmllbGRzXCIgY2xhc3M9XCJwdC0xIHByLTIgdGV4dC1iYXNlIHRleHQtYmxhY2tcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+RXJ3ZWl0ZXJ0ZSBBbmdhYmVuIGFuemVpZ2VuPC9zcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdi1pZj1cIiFzaG93RmllbGRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidy04IGgtNiB0ZXh0LXdoaXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTkgOWwtNyA3LTctN1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LWlmPVwic2hvd0ZpZWxkc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInctOCBoLTYgdGV4dC13aGl0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTUgMTVsNy03IDcgN1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIDpjbGFzcz1cInsgaGlkZGVuOiAhc2hvd0ZpZWxkcyB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZ3JpZC1jb2xzLTEgZ2FwLTQgbWItNCBzcGFjZS15LTMgY29sLXNwYW4tZnVsbCBzbTpncmlkIGxnOmdyaWQtY29scy0yIHNtOnNwYWNlLXktMFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc3Bhbi1mdWxsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPkJ1bmRlc2xhbmQ8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwic3RhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybWRhdGEuc2FsYXJ5LnN0YXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNoYW5nZT1cInNlbmREYXRhXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ3LWZ1bGwgcHktMiB0ZXh0LWNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiQldcIj5CYWRlbi1Xw7xydHRlbWJlcmc8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIkJZXCI+QmF5ZXJuPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJCRVwiPkJlcmxpbjwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiQkJcIj5CcmFuZGVuYnVyZzwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiSEJcIj5CcmVtZW48L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIkhIXCI+SGFtYnVyZzwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiSEVcIj5IZXNzZW48L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIk1WXCI+TWVja2xlbmJ1cmctVm9ycG9tbWVybjwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiTklcIj5OaWVkZXJzYWNoc2VuPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJOV1wiPk5vcmRyaGVpbi1XZXN0ZmFsZW48L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlJQXCI+UmhlaW5sYW5kLVBmYWx6PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJTTFwiPlNhYXJsYW5kPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJTTlwiPlNhY2hzZW48L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlNUXCI+U2FjaHNlbi1BbmhhbHQ8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlNIXCI+U2NobGVzd2lnLUhvbHN0ZWluPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJUSFwiPlRow7xyaW5nZW48L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+WnVzYXR6YmVpdHJhZyBLcmFua2Vua2Fzc2UgaW4gJSAodm9uIHt7IGhlYWx0aE1pblZhbHVlIH19IGJpcyB7eyBoZWFsdGhNYXhWYWx1ZSB9fSk8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOm1pbj1cImhlYWx0aE1pblZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOm1heD1cImhlYWx0aE1heFZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RlcD1cIjAuMDFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybWRhdGEuc2FsYXJ5LmhlYWx0aGluc3VyYW5jZWNvbnRyaWJ1dGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjaGFuZ2U9XCJzZW5kRGF0YVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidy1mdWxsIHB5LTIgZm9udC1ib2xkIHRleHQtY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZi1lbmRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+S2luZGVyZnJlaWJldHJhZzwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJ0YXhjbGFzc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtZGF0YS5zYWxhcnkuY2hpbGR0YXhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAY2hhbmdlPVwic2VuZERhdGFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInctZnVsbCBweS0yIGZvbnQtYm9sZCB0ZXh0LWNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiMFwiPjA8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjAuNVwiPjAsNTwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiMVwiPjE8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjEuNVwiPjEsNTwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiMlwiPjI8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjIuNVwiPjIsNTwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiM1wiPjM8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjMuNVwiPjMsNTwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiNFwiPjQ8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjQuNVwiPjQsNTwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiNVwiPjU8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjUuNVwiPjUsNTwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiNlwiPjY8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYtc2hvdz1cIiFwb3J0YWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpjbGFzcz1cImlzUG9ydGFsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNvbC1zcGFuLTEgc3BhY2UteS0yIHNtOnNwYWNlLXktMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwicGItMiBzbTpwYi0wXCI+w5xiZXJuYWhtZSBkZXMgU2VydmljZS1QYWtldHM8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOmNsYXNzPVwiYHJhZGlvLXRvb2xiYXItJHtjYWxjdWxhdG9yX2NvbG9yfWBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXggZmxleC1yb3cgLW1sLTYgc3BhY2UteC02IHJhZGlvLXRvb2xiYXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJzZXJ2aWNlX2FyYmVpdG5laG1lclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybWRhdGEuc2FsYXJ5LmdyYW50X3NlcnZpY2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNoYW5nZT1cInNlbmREYXRhXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJyb2xsZXItZ3JhbnRfc2VydmljZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cIjBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOmRpc2FibGVkPVwiZ3JhbnRDb25maWdPYmplY3RzLnBhY2thZ2UuZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwic2VydmljZV9hcmJlaXRuZWhtZXJcIj5BcmJlaXRuZWhtZXI8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJyYWRpb1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybWRhdGEuc2FsYXJ5LmdyYW50X3NlcnZpY2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNoYW5nZT1cInNlbmREYXRhXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwic2VydmljZV9hcmJlaXRnZWJlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwicm9sbGVyLWdyYW50X3NlcnZpY2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCIxXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpkaXNhYmxlZD1cImdyYW50Q29uZmlnT2JqZWN0cy5wYWNrYWdlLmRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInNlcnZpY2VfYXJiZWl0Z2ViZXJcIj5BcmJlaXRnZWJlcjwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc3RhcnQtMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5TZXJ2aWNlLVBha2V0PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpjbGFzcz1cImByYWRpby10b29sYmFyLSR7Y2FsY3VsYXRvcl9jb2xvcn1gXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtcm93IC1tbC0yIHNwYWNlLXgtMiByYWRpby10b29sYmFyIG1kOnNwYWNlLXgtNiBtZDotbWwtNlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGVtcGxhdGUgdi1mb3I9XCJjb3Vwb25PYmplY3QgaW4gY291cG9uc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOmtleT1cImNvdXBvbk9iamVjdC52YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6aWQ9XCJjb3Vwb25PYmplY3QudGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdi1tb2RlbD1cInNlbGVjdGVkQ291cG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAY2hhbmdlPVwic2VuZERhdGFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJyb2xsZXItZ2lmdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOnZhbHVlPVwiY291cG9uT2JqZWN0LnZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ZGlzYWJsZWQ9XCJjb3Vwb25zLmxlbmd0aCA9PSAxXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgOmtleT1cImNvdXBvbk9iamVjdC50ZXh0XCIgOmZvcj1cImNvdXBvbk9iamVjdC50ZXh0XCI+e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3Vwb25PYmplY3QudGV4dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBjb2wtc3RhcnQtMVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOmNsYXNzPVwiYGNoZWNrYm94LXRvb2xiYXItJHtjYWxjdWxhdG9yX2NvbG9yfWBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInctMS82IGNoZWNrYm94LXRvb2xiYXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaHVyY2h0YXhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyb3VuZGVkLWZ1bGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1kYXRhLnNhbGFyeS5jaHVyY2h0YXhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNoYW5nZT1cInNlbmREYXRhXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJpc2NodXJjaHRheFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6dHJ1ZS12YWx1ZT1cIjFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOmZhbHNlLXZhbHVlPVwiMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCB2LWlmPVwiZm9ybWRhdGEuc2FsYXJ5LmNodXJjaHRheCA9PSAnMCdcIiBmb3I9XCJjaHVyY2h0YXhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlg8L2xhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIHYtaWY9XCJmb3JtZGF0YS5zYWxhcnkuY2h1cmNodGF4ID09ICcxJ1wiIGZvcj1cImNodXJjaHRheFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+4pyTPC9sYWJlbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzZWxmLWNlbnRlclwiPktpcmNoZW5zdGV1ZXJwZmxpY2h0PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvd1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOmNsYXNzPVwiYGNoZWNrYm94LXRvb2xiYXItJHtjYWxjdWxhdG9yX2NvbG9yfWBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInctMS82IGNoZWNrYm94LXRvb2xiYXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJwZW5zaW9udGF4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicm91bmRlZC1mdWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtZGF0YS5zYWxhcnkucGVuc2lvbmluc3VyYW5jZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAY2hhbmdlPVwic2VuZERhdGFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImlzcGVuc2lvbnRheFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6dHJ1ZS12YWx1ZT1cIjFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOmZhbHNlLXZhbHVlPVwiMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdi1pZj1cImZvcm1kYXRhLnNhbGFyeS5wZW5zaW9uaW5zdXJhbmNlID09ICcwJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3I9XCJwZW5zaW9udGF4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5YPC9sYWJlbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdi1pZj1cImZvcm1kYXRhLnNhbGFyeS5wZW5zaW9uaW5zdXJhbmNlID09ICcxJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3I9XCJwZW5zaW9udGF4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID7inJM8L2xhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNlbGYtY2VudGVyXCI+UmVudGVudmVyc2ljaGVydW5nc3BmbGljaHQ8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGNvbC1zdGFydC0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Y2xhc3M9XCJgY2hlY2tib3gtdG9vbGJhci0ke2NhbGN1bGF0b3JfY29sb3J9YFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidy0xLzYgY2hlY2tib3gtdG9vbGJhclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImhlYWx0aGluc3VyYW5jZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInJvdW5kZWQtZnVsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybWRhdGEuc2FsYXJ5LmhlYWx0aGluc3VyYW5jZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAY2hhbmdlPVwic2VuZERhdGFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImlzaGVhbHRoaW5zdXJhbmNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDp0cnVlLXZhbHVlPVwiMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ZmFsc2UtdmFsdWU9XCIwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LWlmPVwiZm9ybWRhdGEuc2FsYXJ5LmhlYWx0aGluc3VyYW5jZSA9PSAnMCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yPVwiaGVhbHRoaW5zdXJhbmNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5YPC9sYWJlbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdi1pZj1cImZvcm1kYXRhLnNhbGFyeS5oZWFsdGhpbnN1cmFuY2UgPT0gJzEnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcj1cImhlYWx0aGluc3VyYW5jZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+4pyTPC9sYWJlbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzZWxmLWNlbnRlclwiPktyYW5rZW52ZXJzaWNoZXJ1bmdzcGZsaWNodDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpjbGFzcz1cImBjaGVja2JveC10b29sYmFyLSR7Y2FsY3VsYXRvcl9jb2xvcn1gXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ3LTEvNiBjaGVja2JveC10b29sYmFyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwicHJldGF4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicm91bmRlZC1mdWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtZGF0YS5zYWxhcnkudGF4ZGVkdWN0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjaGFuZ2U9XCJzZW5kRGF0YVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiaXNwcmV0YXhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOnRydWUtdmFsdWU9XCIwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpmYWxzZS12YWx1ZT1cIjFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOmRpc2FibGVkPVwiZ3JhbnRDb25maWdPYmplY3RzLnRheC5kaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCB2LWlmPVwiZm9ybWRhdGEuc2FsYXJ5LnRheGRlZHVjdGlvbiA9PSAnMSdcIiBmb3I9XCJwcmV0YXhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlg8L2xhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIHYtaWY9XCJmb3JtZGF0YS5zYWxhcnkudGF4ZGVkdWN0aW9uID09ICcwJ1wiIGZvcj1cInByZXRheFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+4pyTPC9sYWJlbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzZWxmLWNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5Jc3QgSWhyIEFyYmVpdGdlYmVyIHZvcnN0ZXVlcmFienVnc2JlcmVjaHRpZ3Q/PC9zcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgdi1pZj1cInN1Y2Nlc3NUZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJncmlkIGNvbnRlbnQtY2VudGVyIHctZnVsbCBncmlkLWNvbHMtMSBwLTIgc206ZmxleCBjYWxjdWxhdG9yLXN1Y2Nlc3Mgcm91bmRlZC14bCBzbTpzcGFjZS14LTRcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJqdXN0aWZ5LXNlbGYtY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMSAzMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGlwLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE5LjQ0ODUgMjcuODU0NUMxOS40NDg1IDI1Ljk5MTYgMTcuOTM4MyAyNC40ODE0IDE2LjA3NTUgMjQuNDgxNEgxMS44NTkyQzExLjg1OTIgMjIuNjE4NiAxMC4zNDkgMjEuMTA4NCA4LjQ4NjE1IDIxLjEwODRIMi41ODMzNFYyNy44NTQ1SDE5LjQ0ODVaXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNDZEMzkwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTguNDg2MTUgMjQuNDgxNEgxMS44NTkyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNDZEMzkwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE0LjM4ODkgMjEuMTA4NEgyNS4zNTEzQzI1LjgxNyAyMS4xMDg0IDI2LjE5NDYgMjAuNzMwOCAyNi4xOTQ2IDIwLjI2NTFWMTIuNjc1OFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzQ2RDM5MFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMS4wMTU5IDEyLjY3NThWMTcuNzM1M1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzQ2RDM5MFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpcC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk05LjMyOTQxIDkuMjA5NDdDOS4zMjk0MSA4Ljc5NTI2IDkuNjY1MTkgOC40NTk0NyAxMC4wNzk0IDguNDU5NDdIMjcuMTMxMUMyNy41NDUzIDguNDU5NDcgMjcuODgxMSA4Ljc5NTI2IDI3Ljg4MTEgOS4yMDk0N1YxMS45MjU4QzI3Ljg4MTEgMTIuMzQgMjcuNTQ1MyAxMi42NzU4IDI3LjEzMTEgMTIuNjc1OEgxMC4wNzk0QzkuNjY1MTkgMTIuNjc1OCA5LjMyOTQxIDEyLjM0IDkuMzI5NDEgMTEuOTI1OFY5LjIwOTQ3WlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzQ2RDM5MFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xOC42MDUzIDIxLjEwODNWOC40NTk0N1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzQ2RDM5MFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpcC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0yMy40MDA2IDYuMDc0NzhDMjEuOTg3NiA3LjE4Mjg0IDIwLjM2NTMgNy45OTM5OCAxOC42MzExIDguNDU5NTJDMTkuMDk2NiA2LjcyNTI5IDE5LjkwNzggNS4xMDMwMSAyMS4wMTU4IDMuNjkwMDVDMjIuNDk4OCAyLjIwODE2IDIzLjMzODcgMi40MzUyOCAyNC4wMDIxIDMuMDk0MTRDMjQuNjY1NSAzLjc1MzAxIDI0Ljg4MzYgNC41OTI5IDIzLjQwMDYgNi4wNzQ3OFpcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM0NkQzOTBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGwtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaXAtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTMuODA4OCA2LjA3NDc4QzE1LjIyMTkgNy4xODI2MyAxNi44NDQxIDcuOTkzNzUgMTguNTc4MyA4LjQ1OTUyQzE4LjExMzMgNi43MjUxIDE3LjMwMjEgNS4xMDI3MSAxNi4xOTM1IDMuNjkwMDVDMTQuNzExNyAyLjIwODE2IDEzLjg3MTggMi40MzUyOCAxMy4yMDg0IDMuMDk0MTRDMTIuNTQ1IDMuNzUzMDEgMTIuMzI2OSA0LjU5MjkgMTMuODA4OCA2LjA3NDc4WlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzQ2RDM5MFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICAgIDxwIHYtaHRtbD1cInN1Y2Nlc3NUZXh0XCIgY2xhc3M9XCJzZWxmLWNlbnRlclwiPjwvcD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiB2LWlmPVwic2hvd0Vycm9yXCIgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXJlZC02MDBcIlxuICAgICAgICAgICAgICAgID5EaWUgQmVyZWNobnVuZyBrYW5uIG5pY2h0IGF1c2dlZsO8aHJ0IHdlcmRlbi4gQml0dGUgw7xiZXJwcsO8ZmUgZGVpbmUgRWluZ2FiZW48L3NwYW5cbiAgICAgICAgICAgID5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmlkIGdyaWQtY29scy0xIHB5LTQgdGV4dC1jZW50ZXIgbGc6Z3JpZC1jb2xzLTIgbGc6dGV4dC1sZWZ0XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2xcIj5cbiAgICAgICAgICAgICAgICAgICAgPHA+U28gdmllbCB3aXJkIGdlc3BhcnQ8L3A+XG4gICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInRleHQtNXhsIGZvbnQtYm9sZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGdldExvY2FsZVByaWNlKHByb2R1Y3REYXRhLnNhdmluZykgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Y2xhc3M9XCJgY2FsY3VsYXRvci0ke2NhbGN1bGF0b3JfY29sb3J9YFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGp1c3RpZnktY2VudGVyIHRleHQtYmFzZSBsZzp0ZXh0LXhsIGxnOmp1c3RpZnktc3RhcnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMiAzMlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0zMC42NjcgMTQuMDQ0NEMzMC42NjcgMTYuMjA0NSAyOC45MTU5IDE3Ljk1NTUgMjYuNzU1OSAxNy45NTU1XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTguMTc3OTQgOS4yMjA3MUM2LjA3NDI3IDEwLjU4NDEgNC41MDc5MSAxMi42MzQyIDMuNzQ1MzUgMTUuMDIyMkgxLjMzMzVWMjIuODQ0NEg0LjU3OTcyQzUuMjU0ODMgMjQuMDI4MSA2LjE0MzI5IDI1LjA3NjYgNy4yMDAxNiAyNS45MzY4VjI5LjY4ODlDNy4yMDAxNiAzMC4yMjg5IDcuNjM3OTMgMzAuNjY2NiA4LjE3Nzk0IDMwLjY2NjZIMTAuMTMzNUMxMC42NzM1IDMwLjY2NjYgMTEuMTExMyAzMC4yMjg5IDExLjExMTMgMjkuNjg4OVYyOC4wNzFDMTMuNjQ4OSAyOC45MTk1IDE2LjM5MjggMjguOTI0NSAxOC45MzM1IDI4LjA4NTNWMjkuNjg4OUMxOC45MzM1IDMwLjIyODkgMTkuMzcxMyAzMC42NjY2IDE5LjkxMTMgMzAuNjY2NkgyMS44NjY4QzIyLjQwNjggMzAuNjY2NiAyMi44NDQ2IDMwLjIyODkgMjIuODQ0NiAyOS42ODg5VjI1Ljk1NjRDMjUuMjg3NCAyNC4wMTUxIDI2LjcyNDMgMjEuMDc1NiAyNi43NTU3IDE3Ljk1NTVDMjYuNzA5IDE0LjM5OTkgMjQuODY1NiAxMS4xMDk2IDIxLjg1NzcgOS4yMTI4OVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS41XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMS4xMTEzIDEwLjEzMzdDMTMuNTc2IDguOTEzNzcgMTYuNDY4OCA4LjkxMzc3IDE4LjkzMzYgMTAuMTMzN1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS41XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGlwLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTUuMDIyNCA5LjE1NTcyQzE3LjE4MjUgOS4xNTU3MiAxOC45MzM2IDcuNDA0NjUgMTguOTMzNiA1LjI0NDYxQzE4LjkzMzYgMy4wODQ1NiAxNy4xODI1IDEuMzMzNSAxNS4wMjI0IDEuMzMzNUMxMi44NjI0IDEuMzMzNSAxMS4xMTEzIDMuMDg0NTYgMTEuMTExMyA1LjI0NDYxQzExLjExMTMgNy40MDQ2NSAxMi44NjI0IDkuMTU1NzIgMTUuMDIyNCA5LjE1NTcyWlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS41XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwicHQtMSBwbC0zIHRleHQtMnhsIHRleHQtYmxhY2tcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz57eyBwcm9kdWN0RGF0YS5zYXZpbmdfcGVyY2VudGFnZSB9fSU8L3N0cm9uZz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VzcGFydCFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgcHQtNCBsZzpwdC0wXCI+XG4gICAgICAgICAgICAgICAgICAgIDxwPkRpZSBpbmRpdmlkdWVsbGUgTnV0enVuZ3NyYXRlIGJldHLDpGd0OjwvcD5cbiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LTV4bCBmb250LWJvbGRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGdldExvY2FsZVByaWNlKHByb2R1Y3REYXRhLmxlYXNpbmdfbmV0KSB9fVxuICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlbGF0aXZlIGZsZXgganVzdGlmeS1jZW50ZXIgdy1mdWxsIG15LTEyXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctZnVsbCBib3JkZXItYi0yIGJvcmRlci1ibGFja1wiPjwvZGl2PlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgQGNsaWNrPVwic2hvd0NhbGN1bGF0aW9uKClcIlxuICAgICAgICAgICAgICAgICAgICA6ZGlzYWJsZWQ9XCJzaG93RXJyb3JcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFic29sdXRlIGZsZXggY29udGVudC1jZW50ZXIgcHgtNSBweS0xIHRleHQteGwgdGV4dC13aGl0ZSB0cmFuc2Zvcm0gLXRyYW5zbGF0ZS15LTEvMiBiZy1ibGFjayByb3VuZGVkLWZ1bGwgc206cHgtMjBcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gdi1pZj1cInNob3dUYWJsZVwiIHN0eWxlPVwibGluZS1oZWlnaHQ6IDMwcHhcIiBjbGFzcz1cInByLTZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPkJlcmVjaG51bmcgYW56ZWlnZW48L3NwYW5cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiB2LWlmPVwiIXNob3dUYWJsZVwiIHN0eWxlPVwibGluZS1oZWlnaHQ6IDMwcHhcIiBjbGFzcz1cInByLTZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPkJlcmVjaG51bmcgdmVyYmVyZ2VuPC9zcGFuXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgICAgICAgICAgICAgdi1pZj1cInNob3dUYWJsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidy04IGgtNiB0ZXh0LXdoaXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xOSA5bC03IDctNy03XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAgICAgICAgICAgICB2LWlmPVwiIXNob3dUYWJsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidy04IGgtNiB0ZXh0LXdoaXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk01IDE1bDctNyA3IDdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiB2LWlmPVwiIXNob3dUYWJsZVwiIGNsYXNzPVwicHktMTJcIiA6Y2xhc3M9XCJ7IGxvYWRpbmc6IGlzbG9hZGluZyB9XCI+XG4gICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwicHktNiB0ZXh0LTJ4bCBmb250LXNlbWlib2xkXCI+RXJyZWNobnVuZyBkZXIgbW9uYXRsaWNoZW4gS29zdGVuOjwvaDI+XG5cbiAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9XCJ3LWZ1bGwgcHktNCB0ZXh0LWxnIHRhYmxlLWZpeGVkXCI+XG4gICAgICAgICAgICAgICAgICAgIDx0aGVhZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz1cInRleHQtbGVmdCBib3JkZXItYi00IGJvcmRlci1ibGFja1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cImhpZGRlbiB3LTEvMiBzbTp0YWJsZS1jZWxsXCI+PC90aD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJmbGV4IHB4LTFcIj48cCBjbGFzcz1cInNlbGYtc3RhcnRcIj5vaG5lIERpZW5zdHJvbGxlcjwvcD48L3RoPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cInRhYmxlLWNlbGwgdy0xLzMgc206aGlkZGVuXCI+PC90aD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJweC0xIHRleHQtcmlnaHQgc206dGV4dC1sZWZ0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPm1pdCBEaWVuc3Ryb2xsZXI8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+XG4gICAgICAgICAgICAgICAgICAgIDx0Ym9keT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz1cInJlbGF0aXZlIGJvcmRlci1iLTIgYm9yZGVyLWJsYWNrXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiaGlkZGVuIHctMS8yIHNtOnRhYmxlLWNlbGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJmb250LWJvbGRcIj5CcnV0dG9tb25hdHNnZWhhbHQ8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwdC0xMCBwYi00IHNtOnB0LTRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJwdC0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBnZXRMb2NhbGVQcmljZShmb3JtZGF0YS5zYWxhcnkuZ3Jvc3Ntb250aGx5c2FsYXJ5KSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJhYnNvbHV0ZSB0b3AtMCBsZWZ0LTAgcmlnaHQtMCBmbGV4IHNtOmhpZGRlblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInB0LTIgbXgtYXV0byBmb250LWJvbGRcIj5CcnV0dG9tb25hdHNnZWhhbHQ8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwdC0xMCBwYi00IHRleHQtcmlnaHQgYWxpZ24tYm90dG9tIHNtOnB0LTQgc206dGV4dC1sZWZ0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPnt7IGdldExvY2FsZVByaWNlKGZvcm1kYXRhLnNhbGFyeS5ncm9zc21vbnRobHlzYWxhcnkpIH19PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGVtcGxhdGUgdi1mb3I9XCJhbW91bnQgaW4gYW1vdW50c1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ciA6a2V5PVwiYW1vdW50LmluZGV4XCIgY2xhc3M9XCJyZWxhdGl2ZSBib3JkZXItYi0yIGJvcmRlci1ibGFja1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJoaWRkZW4gdy0xLzIgc206dGFibGUtY2VsbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJmb250LWJvbGRcIj57eyBhbW91bnQubGFiZWwgfX08L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInB0LTEwIHBiLTQgc206cHQtNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+MCwwMCDigqw8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImFic29sdXRlIHRvcC0wIGxlZnQtMCByaWdodC0wIGZsZXggc206aGlkZGVuXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInB0LTIgbXgtYXV0byBmb250LWJvbGRcIj57eyBhbW91bnQubGFiZWwgfX08L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInB0LTEwIHBiLTQgdGV4dC1yaWdodCBhbGlnbi1ib3R0b20gc206cHQtNCBzbTp0ZXh0LWxlZnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPnt7IGFtb3VudC50ZXh0IH19PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RlbXBsYXRlPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDx0ciBjbGFzcz1cInJlbGF0aXZlIGJvcmRlci1iLTIgYm9yZGVyLWJsYWNrXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiaGlkZGVuIHctMS8yIHNtOnRhYmxlLWNlbGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJmb250LWJvbGRcIj5VbXdhbmRsdW5nc2JldHJhZyBMZWFzaW5ncmF0ZTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInB0LTEwIHBiLTQgc206cHQtNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD4wLDAwIOKCrDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImFic29sdXRlIHRvcC0wIGxlZnQtMCByaWdodC0wIGZsZXggc206aGlkZGVuXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwicHQtMiBteC1hdXRvIGZvbnQtYm9sZFwiPlVtd2FuZGx1bmdzYmV0cmFnIExlYXNpbmdyYXRlPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicHQtMTAgcGItNCB0ZXh0LXJpZ2h0IGFsaWduLWJvdHRvbSBzbTpwdC00IHNtOnRleHQtbGVmdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD4tIHt7IGdldExvY2FsZVByaWNlKHByb2R1Y3REYXRhLmxlYXNpbmdfZ3Jvc3MpIH19PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPVwicmVsYXRpdmUgYm9yZGVyLWItMiBib3JkZXItYmxhY2tcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJoaWRkZW4gdy0xLzIgc206dGFibGUtY2VsbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImZvbnQtYm9sZFwiPlVtd2FuZGx1bmdzYmV0cmFnIFJ1bmR1bS1TY2h1dHo8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwdC0xMCBwYi00IHNtOnB0LTRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+MCwwMCDigqw8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJhYnNvbHV0ZSB0b3AtMCBsZWZ0LTAgcmlnaHQtMCBmbGV4IHNtOmhpZGRlblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInB0LTIgbXgtYXV0byBmb250LWJvbGRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVtd2FuZGx1bmdzYmV0cmFnIFJ1bmR1bS1TY2h1dHpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicHQtMTAgcGItNCB0ZXh0LXJpZ2h0IGFsaWduLWJvdHRvbSBzbTpwdC00IHNtOnRleHQtbGVmdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0ge3sgZ2V0TG9jYWxlUHJpY2UocHJvZHVjdERhdGEuY29udmVyc2lvbl9hbW91bnRfaW5zdXJhbmNlKSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9XCJyZWxhdGl2ZSBib3JkZXItYi0yIGJvcmRlci1ibGFja1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImhpZGRlbiB3LTEvMiBzbTp0YWJsZS1jZWxsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiZm9udC1ib2xkXCI+VW13YW5kbHVuZ3NiZXRyYWcgU2VydmljZS1QYWtldDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInB0LTEwIHBiLTQgc206cHQtNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD4wLDAwIOKCrDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImFic29sdXRlIHRvcC0wIGxlZnQtMCByaWdodC0wIGZsZXggc206aGlkZGVuXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwicHQtMiBteC1hdXRvIGZvbnQtYm9sZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW13YW5kbHVuZ3NiZXRyYWcgU2VydmljZSBQYWtldFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwdC0xMCBwYi00IHRleHQtcmlnaHQgYWxpZ24tYm90dG9tIHNtOnB0LTQgc206dGV4dC1sZWZ0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPi0ge3sgZ2V0TG9jYWxlUHJpY2UocHJvZHVjdERhdGEuc2VydmljZSkgfX08L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+IC0tPlxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8dHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LWlmPVwiZm9ybWRhdGEuc2FsYXJ5LmdyYW50X3BlcmNlbnRhZ2UgPiAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInJlbGF0aXZlIGJvcmRlci1iLTIgYm9yZGVyLWJsYWNrXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJoaWRkZW4gdy0xLzIgc206dGFibGUtY2VsbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImZvbnQtYm9sZFwiPkFyYmVpdGdlYmVyLVp1c2NodXNzPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicHQtMTAgcGItNCBzbTpwdC00XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjAsMDAg4oKsPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYWJzb2x1dGUgdG9wLTAgbGVmdC0wIHJpZ2h0LTAgZmxleCBzbTpoaWRkZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJwdC0yIG14LWF1dG8gZm9udC1ib2xkXCI+QXJiZWl0Z2ViZXItWnVzY2h1c3M8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwdC0xMCBwYi00IHRleHQtcmlnaHQgYWxpZ24tYm90dG9tIHNtOnB0LTQgc206dGV4dC1sZWZ0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPisge3sgZ2V0TG9jYWxlUHJpY2UocHJvZHVjdERhdGEuZ3JhbnQpIH19PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPVwicmVsYXRpdmUgYm9yZGVyLWItMiBib3JkZXItYmxhY2tcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJoaWRkZW4gdy0xLzIgc206dGFibGUtY2VsbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImZvbnQtYm9sZFwiPkdlbGR3ZXJ0ZXIgVm9ydGVpbCAoMCwyNSUgUmVnZWwpPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicHQtMTAgcGItNCBzbTpwdC00XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjAsMDAg4oKsPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYWJzb2x1dGUgdG9wLTAgbGVmdC0wIHJpZ2h0LTAgZmxleCBzbTpoaWRkZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJwdC0yIG14LWF1dG8gZm9udC1ib2xkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHZWxkd2VydGVyIFZvcnRlaWwgKDAsMjUlIFJlZ2VsKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwdC0xMCBwYi00IHRleHQtcmlnaHQgYWxpZ24tYm90dG9tIHNtOnB0LTQgc206dGV4dC1sZWZ0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPisge3sgZ2V0TG9jYWxlUHJpY2UocHJvZHVjdERhdGEucGVjdW5pYXJ5X2FkdmFudGFnZSkgfX08L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9XCJyZWxhdGl2ZSBib3JkZXItYi00IGJvcmRlci1ibGFja1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImhpZGRlbiB3LTEvMiBzbTp0YWJsZS1jZWxsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiZm9udC1ib2xkXCI+VmVyc3RldWVydW5nIEFuZmFocnRza2lsb21ldGVyPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicHQtMTAgcGItNCBzbTpwdC00XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjAsMDAg4oKsPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYWJzb2x1dGUgdG9wLTAgbGVmdC0wIHJpZ2h0LTAgZmxleCBzbTpoaWRkZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJwdC0yIG14LWF1dG8gZm9udC1ib2xkXCI+VmVyc3RldWVydW5nIEFuZmFocnRza2lsb21ldGVyPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicHQtMTAgcGItNCB0ZXh0LXJpZ2h0IGFsaWduLWJvdHRvbSBzbTpwdC00IHNtOnRleHQtbGVmdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD4rIHt7IGdldExvY2FsZVByaWNlKHByb2R1Y3REYXRhLnRyYXZlbF9jb3N0cykgfX08L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+IC0tPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPVwicmVsYXRpdmUgYm9yZGVyLWItMiBib3JkZXItYmxhY2tcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJoaWRkZW4gdy0xLzIgc206dGFibGUtY2VsbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImZvbnQtYm9sZFwiPkJlcmVjaG51bmdzZ3J1bmRsYWdlPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicHQtMTAgcGItNCBzbTpwdC00XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPnt7IGdldExvY2FsZVByaWNlKGZvcm1kYXRhLnNhbGFyeS5ncm9zc21vbnRobHlzYWxhcnkpIH19PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYWJzb2x1dGUgdG9wLTAgbGVmdC0wIHJpZ2h0LTAgZmxleCBzbTpoaWRkZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJwdC0yIG14LWF1dG8gZm9udC1ib2xkXCI+QmVyZWNobnVuZ3NncnVuZGxhZ2U8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwdC0xMCBwYi00IHRleHQtcmlnaHQgYWxpZ24tYm90dG9tIHNtOnB0LTQgc206dGV4dC1sZWZ0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZ2V0TG9jYWxlUHJpY2UocHJvZHVjdERhdGEuY2FsY3VsYXRpb25fYmFzZSkgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPVwicmVsYXRpdmUgYm9yZGVyLWItMiBib3JkZXItYmxhY2tcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJoaWRkZW4gdy0xLzIgc206dGFibGUtY2VsbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImZvbnQtYm9sZFwiPlN0ZXVlcm4gZ2VzYW10PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicHQtMTAgcGItNCBzbTpwdC00XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPi0ge3sgZ2V0TG9jYWxlUHJpY2UocHJvZHVjdERldGFpbHMudGF4X3N1bS5ncm9zcykgfX08L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJhYnNvbHV0ZSB0b3AtMCBsZWZ0LTAgcmlnaHQtMCBmbGV4IHNtOmhpZGRlblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInB0LTIgbXgtYXV0byBmb250LWJvbGRcIj5TdGV1ZXJuIGdlc2FtdDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInB0LTEwIHBiLTQgdGV4dC1yaWdodCBhbGlnbi1ib3R0b20gc206cHQtNCBzbTp0ZXh0LWxlZnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+LSB7eyBnZXRMb2NhbGVQcmljZShwcm9kdWN0RGV0YWlscy50YXhfc3VtLm5ldCkgfX08L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9XCJyZWxhdGl2ZSBib3JkZXItYi0yIGJvcmRlci1ibGFja1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImhpZGRlbiB3LTEvMiBzbTp0YWJsZS1jZWxsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiZm9udC1ib2xkXCI+U296aWFsYWJnYWJlbiBnZXNhbXQ8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwdC0xMCBwYi00IHNtOnB0LTRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldExvY2FsZVByaWNlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9kdWN0RGV0YWlscy5zb2NpYWxfY29udHJpYnV0aW9uc190b3RhbC5ncm9zcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJhYnNvbHV0ZSB0b3AtMCBsZWZ0LTAgcmlnaHQtMCBmbGV4IHNtOmhpZGRlblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInB0LTIgbXgtYXV0byBmb250LWJvbGRcIj5Tb3ppYWxhYmdhYmVuIGdlc2FtdDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInB0LTEwIHBiLTQgdGV4dC1yaWdodCBhbGlnbi1ib3R0b20gc206cHQtNCBzbTp0ZXh0LWxlZnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldExvY2FsZVByaWNlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9kdWN0RGV0YWlscy5zb2NpYWxfY29udHJpYnV0aW9uc190b3RhbC5uZXQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGVtcGxhdGUgdi1mb3I9XCJuZXRfYW1vdW50IGluIG5ldF9hbW91bnRzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyIDprZXk9XCJuZXRfYW1vdW50LmluZGV4XCIgY2xhc3M9XCJyZWxhdGl2ZSBib3JkZXItYi0yIGJvcmRlci1ibGFja1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJoaWRkZW4gdy0xLzIgc206dGFibGUtY2VsbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJmb250LWJvbGRcIj57eyBuZXRfYW1vdW50LmxhYmVsIH19PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwdC0xMCBwYi00IHNtOnB0LTRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjAsMDAg4oKsPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJhYnNvbHV0ZSB0b3AtMCBsZWZ0LTAgcmlnaHQtMCBmbGV4IHNtOmhpZGRlblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJwdC0yIG14LWF1dG8gZm9udC1ib2xkXCI+e3sgbmV0X2Ftb3VudC5sYWJlbCB9fTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicHQtMTAgcGItNCB0ZXh0LXJpZ2h0IGFsaWduLWJvdHRvbSBzbTpwdC00IHNtOnRleHQtbGVmdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+e3sgbmV0X2Ftb3VudC50ZXh0IH19PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RlbXBsYXRlPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDx0ciBjbGFzcz1cInJlbGF0aXZlIGJvcmRlci1iLTIgYm9yZGVyLWJsYWNrXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiaGlkZGVuIHctMS8yIHNtOnRhYmxlLWNlbGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJmb250LWJvbGRcIj5HZWxkd2VydGVyIFZvcnRlaWwgKDAsMjUlIFJlZ2VsKTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInB0LTEwIHBiLTQgc206cHQtNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD4tIDAsMDAg4oKsPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYWJzb2x1dGUgdG9wLTAgbGVmdC0wIHJpZ2h0LTAgZmxleCBzbTpoaWRkZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJwdC0yIG14LWF1dG8gZm9udC1ib2xkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHZWxkd2VydGVyIFZvcnRlaWwgKDAsMjUlIFJlZ2VsKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwdC0xMCBwYi00IHRleHQtcmlnaHQgYWxpZ24tYm90dG9tIHNtOnB0LTQgc206dGV4dC1sZWZ0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZ2V0TG9jYWxlUHJpY2UocHJvZHVjdERhdGEucGVjdW5pYXJ5X2FkdmFudGFnZSkgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPVwicmVsYXRpdmUgYm9yZGVyLWItNCBib3JkZXItYmxhY2tcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJoaWRkZW4gdy0xLzIgc206dGFibGUtY2VsbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImZvbnQtYm9sZFwiPlZlcnN0ZXVlcnVuZyBBbmZhaHJ0c2tpbG9tZXRlcjwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInB0LTEwIHBiLTQgc206cHQtNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD4wLDAwIOKCrDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImFic29sdXRlIHRvcC0wIGxlZnQtMCByaWdodC0wIGZsZXggc206aGlkZGVuXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwicHQtMiBteC1hdXRvIGZvbnQtYm9sZFwiPlZlcnN0ZXVlcnVuZyBBbmZhaHJ0c2tpbG9tZXRlcjwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInB0LTEwIHBiLTQgdGV4dC1yaWdodCBhbGlnbi1ib3R0b20gc206cHQtNCBzbTp0ZXh0LWxlZnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBnZXRMb2NhbGVQcmljZShwcm9kdWN0RGF0YS50cmF2ZWxfY29zdHMpIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4gLS0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9XCJyZWxhdGl2ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImhpZGRlbiB3LTEvMiBzbTp0YWJsZS1jZWxsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiZm9udC1ib2xkXCI+TmV0dG9tb25hdHNnZWhhbHQ8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwdC0xMCBwYi00IHNtOnB0LTRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBnZXRMb2NhbGVQcmljZShwcm9kdWN0RGV0YWlscy5zYWxhcnkuZ3Jvc3MpIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImFic29sdXRlIHRvcC0wIGxlZnQtMCByaWdodC0wIGZsZXggc206aGlkZGVuXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwicHQtMiBteC1hdXRvIGZvbnQtYm9sZFwiPk5ldHRvbW9uYXRzZ2VoYWx0PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicHQtMTAgcGItNCB0ZXh0LXJpZ2h0IGFsaWduLWJvdHRvbSBzbTpwdC00IHNtOnRleHQtbGVmdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGdldExvY2FsZVByaWNlKHByb2R1Y3REZXRhaWxzLnNhbGFyeS5uZXQpIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgPC90Ym9keT5cbiAgICAgICAgICAgICAgICA8L3RhYmxlPlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgcHktNCB0ZXh0LWNlbnRlciB0ZXh0LXdoaXRlIGJnLWJsYWNrXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPkRpZmZlcmVueiBOZXR0b21vbmF0c2dlaGFsdCA9IEluZGl2aWR1ZWxsZSBOdXR6dW5nc3JhdGU6PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtMnhsIGZvbnQtYm9sZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgZ2V0TG9jYWxlUHJpY2UocHJvZHVjdERhdGEubGVhc2luZ19uZXQpIH19XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cInB5LTQgcHQtMTYgdGV4dC0yeGwgZm9udC1zZW1pYm9sZFwiPlxuICAgICAgICAgICAgICAgICAgICBTbyBlcnJlY2huZXQgc2ljaCBkaWUgRXJzcGFybmlzIHp1bSBQcml2YXRrYXVmOlxuICAgICAgICAgICAgICAgIDwvaDI+XG5cbiAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9XCJ3LWZ1bGwgdGV4dC1sZyB0YWJsZS1maXhlZFwiPlxuICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9XCJ0ZXh0LWxlZnQgYm9yZGVyLWItNCBib3JkZXItYmxhY2tcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJoaWRkZW4gdy0xLzIgc206dGFibGUtY2VsbFwiPjwvdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlByaXZhdGthdWYgbWl0IFNjaHV0ejwvdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwidGFibGUtY2VsbCB3LTEvMyBzbTpoaWRkZW5cIj48L3RoPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cInB4LTEgdGV4dC14cyB0ZXh0LXJpZ2h0IHNtOnRleHQtbGVmdCBzbTp0ZXh0LWxnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiZm9udC1ub3JtYWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmcgY2xhc3M9XCJ0ZXh0LWxnXCI+bWl0IERpZW5zdHJvbGxlcjwvc3Ryb25nPjxiciAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5rbC4gUnVuZHVtLVNjaHV0elxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+XG4gICAgICAgICAgICAgICAgICAgIDx0Ym9keT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz1cInJlbGF0aXZlIGJvcmRlci1iLTIgYm9yZGVyLWJsYWNrXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiaGlkZGVuIHctMS8yIHNtOnRhYmxlLWNlbGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJmb250LWJvbGRcIj5Sb2xsZXI8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwdC0xMCBwYi00IHNtOnB0LTRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBnZXRMb2NhbGVQcmljZShmb3JtZGF0YS5wcm9kdWN0cy5wcmljZSkgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYWJzb2x1dGUgdG9wLTAgbGVmdC0wIHJpZ2h0LTAgZmxleCBzbTpoaWRkZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJwdC0yIG14LWF1dG8gZm9udC1ib2xkXCI+Um9sbGVyPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicHQtMTAgcGItNCB0ZXh0LXJpZ2h0IGFsaWduLWJvdHRvbSBzbTpwdC00IHNtOnRleHQtbGVmdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh7eyBmb3JtZGF0YS5zYWxhcnkuZHVyYXRpb24gfX0gTW9uYXRlIHhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGdldExvY2FsZVByaWNlKHByb2R1Y3REYXRhLmxlYXNpbmdfbmV0KSB9fSkgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZ2V0TG9jYWxlUHJpY2UocHJvZHVjdERhdGEubGVhc2luZ19uZXRfdG90YWwpIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz1cInJlbGF0aXZlIGJvcmRlci1iLTIgYm9yZGVyLWJsYWNrXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiaGlkZGVuIHctMS8yIHNtOnRhYmxlLWNlbGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJmb250LWJvbGRcIj56emdsLiBSdW5kdW0tU2NodXR6IChHZWhhbHRzdW13YW5kbHVuZyk8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwdC0xMCBwYi00IHNtOnB0LTRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBnZXRMb2NhbGVQcmljZShwcm9kdWN0RGF0YS5nZW5lcmFsX2luc3VyYW5jZSkgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYWJzb2x1dGUgdG9wLTAgbGVmdC0wIHJpZ2h0LTAgZmxleCBzbTpoaWRkZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJwdC0yIG14LWF1dG8gZm9udC1ib2xkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB6emdsLiBSdW5kdW0tU2NodXR6IChHZWhhbHRzdW13YW5kbHVuZylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicHQtMTAgcGItNCB0ZXh0LXJpZ2h0IGFsaWduLWJvdHRvbSBzbTpwdC00IHNtOnRleHQtbGVmdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5pbmtsdXNpdmU8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LWlmPVwicHJvZHVjdERhdGEuZ2VuZXJhbF9zZXJ2aWNlX2Nvc3RzID4gMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyZWxhdGl2ZSBib3JkZXItYi0yIGJvcmRlci1ibGFja1wiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiaGlkZGVuIHctMS8yIHNtOnRhYmxlLWNlbGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJmb250LWJvbGRcIj56emdsLiBTZXJ2aWNlPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicHQtMTAgcGItNCBzbTpwdC00XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZ2V0TG9jYWxlUHJpY2UocHJvZHVjdERhdGEuZ2VuZXJhbF9zZXJ2aWNlX2Nvc3RzKSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJhYnNvbHV0ZSB0b3AtMCBsZWZ0LTAgcmlnaHQtMCBmbGV4IHNtOmhpZGRlblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInB0LTIgbXgtYXV0byBmb250LWJvbGRcIj56emdsLiBTZXJ2aWNlPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicHQtMTAgcGItNCB0ZXh0LXJpZ2h0IGFsaWduLWJvdHRvbSBzbTpwdC00IHNtOnRleHQtbGVmdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5pbmtsdXNpdmU8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9XCJyZWxhdGl2ZSBib3JkZXItYi0yIGJvcmRlci1ibGFja1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImhpZGRlbiB3LTEvMiBzbTp0YWJsZS1jZWxsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiZm9udC1ib2xkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFcndhcnRldGVyIEdlYnJhdWNodGthdWZwcmVpc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgcHJvZHVjdERhdGEuY2FsY3VsYXRpb25fcmVzaWR1YWwgfX0lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInB0LTEwIHBiLTQgc206cHQtNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD57eyBnZXRMb2NhbGVQcmljZSgwKSB9fTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImFic29sdXRlIHRvcC0wIGxlZnQtMCByaWdodC0wIGZsZXggc206aGlkZGVuXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwicHQtMiBteC1hdXRvIGZvbnQtYm9sZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXJ3YXJ0ZXRlciBHZWJyYXVjaHRrYXVmcHJlaXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHByb2R1Y3REYXRhLmNhbGN1bGF0aW9uX3Jlc2lkdWFsIH19JVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwdC0xMCBwYi00IHRleHQtcmlnaHQgYWxpZ24tYm90dG9tIHNtOnB0LTQgc206dGV4dC1sZWZ0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZ2V0TG9jYWxlUHJpY2UocHJvZHVjdERhdGEuZ2VuZXJhbF9yZXN0KSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+XG4gICAgICAgICAgICAgICAgPC90YWJsZT5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBweS00IHRleHQtY2VudGVyIHRleHQtd2hpdGUgYmctYmxhY2tcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+QmFya2F1ZiBtaW51cyBEaWVuc3Ryb2xsZXIgPSBFcnNwYXJuaXMgdm9uOjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LTJ4bCBmb250LWJvbGRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGdldExvY2FsZVByaWNlKHByb2R1Y3REYXRhLnNhdmluZykgfX0gKHt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvZHVjdERhdGEuc2F2aW5nX3BlcmNlbnRhZ2VcbiAgICAgICAgICAgICAgICAgICAgICAgIH19JSlcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwdC00IHBiLThcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgID5CZXJlY2hudW5nIG9obmUgR2V3w6Roci4gQml0dGUgd2VuZGVuIFNpZSBzaWNoIGFuIElocmVuIFN0ZXVlcmJlcmF0ZXIsIHVtXG4gICAgICAgICAgICAgICAgICAgICAgICBlaW5lIHZlcmJpbmRsaWNoZSBLYWxrdWxhdGlvbiB6dSBlcmhhbHRlbi48L3NwYW5cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC90ZW1wbGF0ZT5cblxuPHNjcmlwdD5cbmltcG9ydCBjb25maWcgZnJvbSAnLi4vLi4vY29uZmlnL2NhbGN1bGF0b3IuY29uZmlnLmpzJ1xuaW1wb3J0IHsgZGVib3VuY2UgfSBmcm9tICdsb2Rhc2gnXG5pbXBvcnQgYXhpb3MgZnJvbSAnYXhpb3MnXG5pbXBvcnQgSW5mb3BvcHVwIGZyb20gJy4vY29tcG9uZW50cy9JbmZvcG9wdXAudnVlJ1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gICAgY29tcG9uZW50czogeyBJbmZvcG9wdXAgfSxcbiAgICBwcm9wczoge1xuICAgICAgICB1cmw6IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIGRlZmF1bHQ6ICcnLFxuICAgICAgICB9LFxuICAgICAgICB0b2tlbjoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgZGVmYXVsdDogJycsXG4gICAgICAgIH0sXG4gICAgICAgIGF1dGhfdG9rZW46IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIGRlZmF1bHQ6ICcnLFxuICAgICAgICB9LFxuICAgICAgICBjb3Vwb25fY29uZmlnOiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICBkZWZhdWx0OiAnJyxcbiAgICAgICAgfSxcbiAgICAgICAgZHVyYXRpb246IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIGRlZmF1bHQ6ICczNicsXG4gICAgICAgIH0sXG4gICAgICAgIHJlc2lkdWFsOiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICBkZWZhdWx0OiAnMTgnLFxuICAgICAgICB9LFxuICAgICAgICB3aXRoX3NvY2lhbDoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgZGVmYXVsdDogJzEnLFxuICAgICAgICB9LFxuICAgICAgICBhbGxfcm91bmRfcHJvdGVjdGlvbjoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgZGVmYXVsdDogJzM2JyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsY3VsYXRvcl9jb2xvcjoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgZGVmYXVsdDogJycsXG4gICAgICAgIH0sXG4gICAgICAgIGVtcGxveWVyX2dyYW50OiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICBkZWZhdWx0OiAnJyxcbiAgICAgICAgfSxcbiAgICAgICAgY29sb3JfYnV0dG9uOiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICBkZWZhdWx0OiAnJyxcbiAgICAgICAgfSxcbiAgICAgICAgcG9ydGFsOiB7XG4gICAgICAgICAgICB0eXBlOiBCb29sZWFuLFxuICAgICAgICAgICAgZGVmYXVsdDogZmFsc2UsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBkYXRhKCkge1xuICAgICAgICBjb25zdCBmb3JtZGF0YSA9IHtcbiAgICAgICAgICAgIC4uLmNvbmZpZy5yb2xsZXIuZGVmYXVsdHMsXG4gICAgICAgICAgICBzYWxhcnk6IHtcbiAgICAgICAgICAgICAgICAuLi5jb25maWcucm9sbGVyLmRlZmF1bHRzLnNhbGFyeSxcbiAgICAgICAgICAgICAgICBncmFudF9wZXJjZW50YWdlOiBKU09OLnBhcnNlKHRoaXMuZW1wbG95ZXJfZ3JhbnQpLmxlYXNpbmcudmFsdWUsXG4gICAgICAgICAgICAgICAgLy8gZ3JhbnRfZml4dmFsdWU6IHRoaXMuZ3JhbnRfZml4dmFsdWVfdGVzdCxcbiAgICAgICAgICAgICAgICBjYWxjQUdSUzogSlNPTi5wYXJzZSh0aGlzLmVtcGxveWVyX2dyYW50KS5wcm90ZWN0aW9uLnZhbHVlLFxuICAgICAgICAgICAgICAgIGdyYW50X3NlcnZpY2U6IEpTT04ucGFyc2UodGhpcy5lbXBsb3llcl9ncmFudCkucGFja2FnZS52YWx1ZSxcbiAgICAgICAgICAgICAgICB0YXhkZWR1Y3Rpb246IEpTT04ucGFyc2UodGhpcy5lbXBsb3llcl9ncmFudCkudGF4LnZhbHVlLFxuICAgICAgICAgICAgICAgIC8vIHNlcnZpY2U6IE9iamVjdC5rZXlzKEpTT04ucGFyc2UodGhpcy5jb3Vwb24pKVswXSxcbiAgICAgICAgICAgICAgICAvLyBzZXJ2aWNlX3ZhbHVlX25ldDogT2JqZWN0LnZhbHVlcyhKU09OLnBhcnNlKHRoaXMuY291cG9uKSlbMF0udmFsdWVfbmV0LFxuICAgICAgICAgICAgICAgIC8vIHNlcnZpY2VfdmFsdWU6IE9iamVjdC52YWx1ZXMoSlNPTi5wYXJzZSh0aGlzLmNvdXBvbikpWzBdLnZhbHVlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHByb2R1Y3RzOiB7XG4gICAgICAgICAgICAgICAgaWQ6IGNvbmZpZy5yb2xsZXIuZGVmYXVsdHMucHJvZHVjdHMuaWQsXG4gICAgICAgICAgICAgICAgcHJpY2U6IGNvbmZpZy5yb2xsZXIuZGVmYXVsdHMucHJvZHVjdHMucHJpY2UsXG4gICAgICAgICAgICAgICAgbXNycDogY29uZmlnLnJvbGxlci5kZWZhdWx0cy5wcm9kdWN0cy5tc3JwLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdGF4Q2xhc3NlczogWzEsIDIsIDMsIDQsIDUsIDZdLFxuICAgICAgICAgICAgYnV0dG9uVHJpZ2dlcjogZmFsc2UsXG4gICAgICAgICAgICBzaG93U3ZnOiB0cnVlLFxuICAgICAgICAgICAgc2hvd0Vycm9yOiBmYWxzZSxcbiAgICAgICAgICAgIHNob3dGaWVsZHM6IGZhbHNlLFxuICAgICAgICAgICAgc2hvd1RhYmxlOiB0cnVlLFxuICAgICAgICAgICAgaXNsb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgICAgIHZhdDogY29uZmlnLnJvbGxlci5idWRnZXQudmF0LFxuICAgICAgICAgICAgbWF4VmFsdWU6IGNvbmZpZy5yb2xsZXIuYnVkZ2V0Lm1heCAqIGNvbmZpZy5yb2xsZXIuYnVkZ2V0LnZhdCxcbiAgICAgICAgICAgIG1pblZhbHVlOiBjb25maWcucm9sbGVyLmJ1ZGdldC5taW4gKiBjb25maWcucm9sbGVyLmJ1ZGdldC52YXQsXG4gICAgICAgICAgICBoZWFsdGhNaW5WYWx1ZTogY29uZmlnLmhlYWx0aGluc3VyYW5jZWNvbnRyaWJ1dGlvbi5taW4sXG4gICAgICAgICAgICBoZWFsdGhNYXhWYWx1ZTogY29uZmlnLmhlYWx0aGluc3VyYW5jZWNvbnRyaWJ1dGlvbi5tYXgsXG4gICAgICAgICAgICBjb3Vwb246IGNvbmZpZy5yb2xsZXIuZGVmYXVsdHMuY291cG9uLFxuICAgICAgICAgICAgZm9ybWRhdGEsXG4gICAgICAgICAgICBjYWxjdWxhdG9yVmFsdWVzOiBjb25maWcucm9sbGVyLmJ1ZGdldCxcbiAgICAgICAgICAgIGFwaURhdGE6IHt9LFxuICAgICAgICAgICAgaGVhZGVyOiB7XG4gICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICAgICAgICAnQ2FjaGUtQ29udHJvbCc6ICduby1jYWNoZScsXG4gICAgICAgICAgICAgICAgQWNjZXB0OiAnYXBwbGljYXRpb24veC5jYWxjdWxhdG9yLnYxK2pzb24nLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNlbmREYXRhOiBkZWJvdW5jZSh0aGlzLnNlbmRSZXF1ZXN0VG9DYWxjdWxhdG9yLCAxNTApLFxuICAgICAgICAgICAgc2VsZWN0ZWRDb3Vwb246IGZvcm1kYXRhLnNhbGFyeS5zZXJ2aWNlLFxuICAgICAgICB9XG4gICAgfSxcbiAgICBiZWZvcmVNb3VudCgpIHtcbiAgICAgICAgaWYgKEpTT04ucGFyc2UodGhpcy5lbXBsb3llcl9ncmFudCkuZml4ZWQgJiYgSlNPTi5wYXJzZSh0aGlzLmVtcGxveWVyX2dyYW50KS5maXhlZC52YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5mb3JtZGF0YS5zYWxhcnkuZ3JhbnRfZml4dmFsdWUgPSBKU09OLnBhcnNlKHRoaXMuZW1wbG95ZXJfZ3JhbnQpLmZpeGVkLnZhbHVlXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1kYXRhLnNhbGFyeS5ncmFudF9maXh2YWx1ZSA9IDBcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5jb3Vwb25fY29uZmlnICYmIHRoaXMuY291cG9uX2NvbmZpZyAhPT0gJycpIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybWRhdGEuc2FsYXJ5LnNlcnZpY2UgPSBPYmplY3Qua2V5cyhKU09OLnBhcnNlKHRoaXMuY291cG9uX2NvbmZpZykpWzBdXG4gICAgICAgICAgICA7KHRoaXMuZm9ybWRhdGEuc2FsYXJ5LnNlcnZpY2VfdmFsdWVfbmV0ID0gT2JqZWN0LnZhbHVlcyhcbiAgICAgICAgICAgICAgICBKU09OLnBhcnNlKHRoaXMuY291cG9uX2NvbmZpZyksXG4gICAgICAgICAgICApWzBdLnZhbHVlX25ldCksXG4gICAgICAgICAgICAgICAgKHRoaXMuZm9ybWRhdGEuc2FsYXJ5LnNlcnZpY2VfdmFsdWUgPSBPYmplY3QudmFsdWVzKFxuICAgICAgICAgICAgICAgICAgICBKU09OLnBhcnNlKHRoaXMuY291cG9uX2NvbmZpZyksXG4gICAgICAgICAgICAgICAgKVswXS52YWx1ZSlcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDb3Vwb24gPSB0aGlzLmZvcm1kYXRhLnNhbGFyeS5zZXJ2aWNlXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1kYXRhLnNhbGFyeS5zZXJ2aWNlID0gMTJcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIEpTT04ucGFyc2UodGhpcy5lbXBsb3llcl9ncmFudCkuZml4ZWQgJiZcbiAgICAgICAgICAgIEpTT04ucGFyc2UodGhpcy5lbXBsb3llcl9ncmFudCkuZml4ZWQudmFsdWUgPiAwXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5mb3JtZGF0YS5zYWxhcnkuZ3JhbnRfdHlwZSA9ICdFVVInXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1kYXRhLnNhbGFyeS5ncmFudF90eXBlID0gJ3BlcmNlbnQnXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByb290Q29sb3IgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCc6cm9vdCcpXG4gICAgICAgIHJvb3RDb2xvci5zdHlsZS5zZXRQcm9wZXJ0eShcbiAgICAgICAgICAgICctLWNhbGNDb2xvckJ1dHRvbicsXG4gICAgICAgICAgICBKU09OLnBhcnNlKHRoaXMuY29sb3JfYnV0dG9uKS5jb2xvci5iYWNrZ3JvdW5kLFxuICAgICAgICApXG4gICAgICAgIHJvb3RDb2xvci5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1jYWxjQ29sb3JUZXh0JywgSlNPTi5wYXJzZSh0aGlzLmNvbG9yX2J1dHRvbikuY29sb3IudGV4dClcbiAgICB9LFxuICAgIGNvbXB1dGVkOiB7XG4gICAgICAgIHRvZ2dsZUdyYW50VHlwZSgpIHtcbiAgICAgICAgICAgIHJldHVybiAodGhpcy5ncmFudENvbmZpZ09iamVjdHMuZml4ZWQgJiYgdGhpcy5ncmFudENvbmZpZ09iamVjdHMuZml4ZWQudmFsdWUgPiAwKSB8fFxuICAgICAgICAgICAgICAgIHRoaXMuZ3JhbnRDb25maWdPYmplY3RzLmxlYXNpbmcudmFsdWUgPiAwXG4gICAgICAgICAgICAgICAgPyAnaGlkZGVuJ1xuICAgICAgICAgICAgICAgIDogJydcbiAgICAgICAgfSxcbiAgICAgICAgZ3JhbnRUeXBlKCkge1xuICAgICAgICAgICAgcmV0dXJuICh0aGlzLmdyYW50Q29uZmlnT2JqZWN0cy5maXhlZCAmJiB0aGlzLmdyYW50Q29uZmlnT2JqZWN0cy5maXhlZC52YWx1ZSA+IDApIHx8XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtZGF0YS5zYWxhcnkuZ3JhbnRfdHlwZSA9PSAnRVVSJ1xuICAgICAgICAgICAgICAgID8gJ0VVUidcbiAgICAgICAgICAgICAgICA6ICdwZXJjZW50J1xuICAgICAgICB9LFxuICAgICAgICBncmFudFBlcmNlbnRUeXBlKCkge1xuICAgICAgICAgICAgcmV0dXJuICh0aGlzLmdyYW50Q29uZmlnT2JqZWN0cy5maXhlZCAmJiB0aGlzLmdyYW50Q29uZmlnT2JqZWN0cy5maXhlZC52YWx1ZSA+IDApIHx8XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtZGF0YS5zYWxhcnkuZ3JhbnRfdHlwZSA9PSAnRVVSJ1xuICAgICAgICAgICAgICAgID8gJ2hpZGRlbidcbiAgICAgICAgICAgICAgICA6ICcnXG4gICAgICAgIH0sXG4gICAgICAgIGdyYW50Rml4ZWRUeXBlKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ3JhbnRDb25maWdPYmplY3RzLmxlYXNpbmcudmFsdWUgPiAwIHx8XG4gICAgICAgICAgICAgICAgKHRoaXMuZm9ybWRhdGEuc2FsYXJ5LmdyYW50X3R5cGUgPT0gJ3BlcmNlbnQnICYmXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ3JhbnRDb25maWdPYmplY3RzLmZpeGVkICYmXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ3JhbnRDb25maWdPYmplY3RzLmZpeGVkLnZhbHVlID09IDAgJiZcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ncmFudFBlcmNlbnRUeXBlICE9PSAnaGlkZGVuJylcbiAgICAgICAgICAgICAgICA/ICdoaWRkZW4nXG4gICAgICAgICAgICAgICAgOiAnJ1xuICAgICAgICB9LFxuICAgICAgICBpc1BvcnRhbCgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnBvcnRhbCA9PSB0cnVlID8gJ2hpZGRlbicgOiAnJ1xuICAgICAgICB9LFxuICAgICAgICBjb3Vwb25PYmplY3RzKCkge1xuICAgICAgICAgICAgaWYgKCF0aGlzLmNvdXBvbl9jb25maWcgfHwgdGhpcy5jb3Vwb25fY29uZmlnID09PSAnJykge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNvdXBvblxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZSh0aGlzLmNvdXBvbl9jb25maWcpXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGdyYW50Q29uZmlnT2JqZWN0cygpIHtcbiAgICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKHRoaXMuZW1wbG95ZXJfZ3JhbnQpXG4gICAgICAgIH0sXG4gICAgICAgIGNvdXBvbnMoKSB7XG4gICAgICAgICAgICByZXR1cm4gT2JqZWN0LmVudHJpZXModGhpcy5jb3Vwb25PYmplY3RzKS5tYXAoKFtrZXksIG9ial0pID0+ICh7XG4gICAgICAgICAgICAgICAgdGV4dDogb2JqLnRleHQsXG4gICAgICAgICAgICAgICAgdmFsdWVfbmV0OiBvYmoudmFsdWVfbmV0LFxuICAgICAgICAgICAgICAgIHZhbHVlOiBrZXksXG4gICAgICAgICAgICB9KSlcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3JNZXNzYWdlUGVyY2VudCgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmZvcm1kYXRhLnNhbGFyeS5ncmFudF9wZXJjZW50YWdlID09PSAnJyAmJlxuICAgICAgICAgICAgICAgIHRoaXMuZm9ybWRhdGEuc2FsYXJ5LmdyYW50X3R5cGUgPT0gJ3BlcmNlbnQnXG4gICAgICAgICAgICAgICAgPyAnQml0dGUgZ2ViZW4gU2llIGVpbmVuIGfDvGx0aWdlbiBXZXJ0IGFuJ1xuICAgICAgICAgICAgICAgIDogJydcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3JNZXNzYWdlRml4ZWQoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5mb3JtZGF0YS5zYWxhcnkuZ3JhbnRfZml4dmFsdWUgPT09ICcnICYmXG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtZGF0YS5zYWxhcnkuZ3JhbnRfdHlwZSA9PSAnRVVSJ1xuICAgICAgICAgICAgICAgID8gJ0JpdHRlIGdlYmVuIFNpZSBlaW5lbiBnw7xsdGlnZW4gV2VydCBhbidcbiAgICAgICAgICAgICAgICA6ICcnXG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yTWVzc2FnZUdyb3NzKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZm9ybWRhdGEuc2FsYXJ5Lmdyb3NzbW9udGhseXNhbGFyeSA9PT0gJydcbiAgICAgICAgICAgICAgICA/ICdCaXR0ZSBnZWJlbiBTaWUgZWluZW4gZ8O8bHRpZ2VuIFdlcnQgYW4nXG4gICAgICAgICAgICAgICAgOiAnJ1xuICAgICAgICB9LFxuICAgICAgICBwcm9kdWN0cygpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgLy8gY2FsY3VsYXRpb246IHRoaXMudG9rZW4sXG4gICAgICAgICAgICAgICAgYXV0aG9yaXphdGlvbjogdGhpcy5hdXRoX3Rva2VuLFxuICAgICAgICAgICAgICAgIHNhbGFyeToge1xuICAgICAgICAgICAgICAgICAgICAuLi50aGlzLmZvcm1kYXRhLnNhbGFyeSxcbiAgICAgICAgICAgICAgICAgICAgcmVzaWR1YWw6IHRoaXMucmVzaWR1YWwsXG4gICAgICAgICAgICAgICAgICAgIGR1cmF0aW9uOiB0aGlzLmR1cmF0aW9uLFxuICAgICAgICAgICAgICAgICAgICB3aXRoX3NvY2lhbDogdGhpcy53aXRoX3NvY2lhbCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHByb2R1Y3RzOiB7XG4gICAgICAgICAgICAgICAgICAgIDE6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLnRoaXMuZm9ybWRhdGEucHJvZHVjdHMsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgc2V0R3JhbnRQZXJjZW50YWdlKCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybWRhdGEuc2FsYXJ5LmdyYW50X3BlcmNlbnRhZ2UgPj0gMTAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtZGF0YS5zYWxhcnkuZ3JhbnRfcGVyY2VudGFnZSA9IDEwMFxuICAgICAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBwcm9kdWN0RGF0YSgpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5hcGlEYXRhLnByb2R1Y3RzX2NhbGN1bGF0ZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge31cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuYXBpRGF0YSAmJiB0aGlzLmFwaURhdGEucHJvZHVjdHNfY2FsY3VsYXRlZFxuICAgICAgICAgICAgICAgID8gT2JqZWN0LmtleXModGhpcy5hcGlEYXRhLnByb2R1Y3RzX2NhbGN1bGF0ZWRbdGhpcy5mb3JtZGF0YS5wcm9kdWN0cy5pZF0pXG4gICAgICAgICAgICAgICAgICAgICAgLm1hcCgocHJvZHVjdFByaWNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmFwaURhdGEucHJvZHVjdHNfY2FsY3VsYXRlZFt0aGlzLmZvcm1kYXRhLnByb2R1Y3RzLmlkXVtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2R1Y3RQcmljZVxuICAgICAgICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAucG9wKClcbiAgICAgICAgICAgICAgICA6IHt9XG4gICAgICAgIH0sXG4gICAgICAgIHByb2R1Y3REZXRhaWxzKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvZHVjdERhdGEuZGV0YWlsc1xuICAgICAgICB9LFxuICAgICAgICBhbW91bnRzKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvZHVjdERhdGEubGVhc2luZy5ncm9zc1xuICAgICAgICB9LFxuICAgICAgICBuZXRfYW1vdW50cygpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2R1Y3REYXRhLmxlYXNpbmcubmV0XG4gICAgICAgIH0sXG4gICAgICAgIGhhc1Byb2R1Y3REYXRhKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvZHVjdERhdGEgPyBPYmplY3Qua2V5cyh0aGlzLnByb2R1Y3REYXRhKS5sZW5ndGggPiAwIDogZmFsc2VcbiAgICAgICAgfSxcbiAgICAgICAgaXNWYWxpZGF0ZWQoKSB7XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIHBhcnNlRmxvYXQodGhpcy5mb3JtZGF0YS5wcm9kdWN0cy5wcmljZSkgIT09IDAgJiZcbiAgICAgICAgICAgICAgICBwYXJzZUZsb2F0KHRoaXMuZm9ybWRhdGEucHJvZHVjdHMucHJpY2UpID4gMCAmJlxuICAgICAgICAgICAgICAgIHBhcnNlRmxvYXQodGhpcy5mb3JtZGF0YS5zYWxhcnkuZ3Jvc3Ntb250aGx5c2FsYXJ5KSAhPT0gMCAmJlxuICAgICAgICAgICAgICAgIHBhcnNlRmxvYXQodGhpcy5mb3JtZGF0YS5zYWxhcnkuZ3Jvc3Ntb250aGx5c2FsYXJ5KSA+IDBcbiAgICAgICAgICAgIClcbiAgICAgICAgfSxcbiAgICAgICAgaXNCdWRnZXRBbmRWYWxpZCgpIHtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgdGhpcy5pc0J1ZGdldCh0aGlzLmZvcm1kYXRhLnByb2R1Y3RzLnByaWNlKSAmJlxuICAgICAgICAgICAgICAgIHRoaXMuaXNCdWRnZXQodGhpcy5mb3JtZGF0YS5zYWxhcnkuZ3Jvc3Ntb250aGx5c2FsYXJ5LCAnYnJ1dHRvJykgJiZcbiAgICAgICAgICAgICAgICB0aGlzLmlzVmFsaWRhdGVkXG4gICAgICAgICAgICApXG4gICAgICAgIH0sXG4gICAgICAgIGJ1ZGdldE1lc3NhZ2UoKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5mb3JtZGF0YS5wcm9kdWN0cy5wcmljZSA8IHRoaXMubWluVmFsdWUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYERlciBhbmdlZ2ViZW5lIFByZWlzIGlzdCB6dSBuaWVkcmlnLiBEaWVzZXIgbXVzcyBncsO2w59lciBzZWluIGFscyAke3RoaXMuZ2V0TG9jYWxlUHJpY2UoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWluVmFsdWUsXG4gICAgICAgICAgICAgICAgKX1gXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZm9ybWRhdGEucHJvZHVjdHMucHJpY2UgPiB0aGlzLm1heFZhbHVlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGBEZXIgYW5nZWdlYmVuZSBQcmVpcyBpc3QgenUgaG9jaC4gRGllc2VyIG11c3MgbmllZHJpZ2VyIHNlaW4gYWxzICR7dGhpcy5nZXRMb2NhbGVQcmljZShcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tYXhWYWx1ZSxcbiAgICAgICAgICAgICAgICApfWBcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiAnJ1xuICAgICAgICB9LFxuICAgICAgICBwcmljZU1lc3NhZ2UoKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5mb3JtZGF0YS5wcm9kdWN0cy5tc3JwIDwgdGhpcy5taW5WYWx1ZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBgRGVyIGFuZ2VnZWJlbmUgUHJlaXMgaXN0IHp1IG5pZWRyaWcuIERpZXNlciBtdXNzIGdyw7bDn2VyIHNlaW4gYWxzICR7dGhpcy5nZXRMb2NhbGVQcmljZShcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5taW5WYWx1ZSxcbiAgICAgICAgICAgICAgICApfWBcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5mb3JtZGF0YS5wcm9kdWN0cy5tc3JwID4gdGhpcy5tYXhWYWx1ZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBgRGVyIGFuZ2VnZWJlbmUgUHJlaXMgaXN0IHp1IGhvY2guIERpZXNlciBtdXNzIG5pZWRyaWdlciBzZWluIGFscyAke3RoaXMuZ2V0TG9jYWxlUHJpY2UoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWF4VmFsdWUsXG4gICAgICAgICAgICAgICAgKX1gXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gJydcbiAgICAgICAgfSxcbiAgICAgICAgc3VjY2Vzc1RleHQoKSB7XG4gICAgICAgICAgICBsZXQgZ2V0TGVhc2luZ1JhdGUgPVxuICAgICAgICAgICAgICAgICh0aGlzLmdyYW50Q29uZmlnT2JqZWN0cy5sZWFzaW5nICYmIHRoaXMuZ3JhbnRDb25maWdPYmplY3RzLmxlYXNpbmcudmFsdWUgPiAwKSB8fFxuICAgICAgICAgICAgICAgICh0aGlzLmdyYW50Q29uZmlnT2JqZWN0cy5maXhlZCAmJiB0aGlzLmdyYW50Q29uZmlnT2JqZWN0cy5maXhlZC52YWx1ZSA+IDApXG4gICAgICAgICAgICAgICAgICAgID8gJzEnXG4gICAgICAgICAgICAgICAgICAgIDogJzAnXG4gICAgICAgICAgICBsZXQgZ2V0R3JhbnRTZXJ2aWNlID1cbiAgICAgICAgICAgICAgICB0aGlzLmdyYW50Q29uZmlnT2JqZWN0cy5wYWNrYWdlLmRpc2FibGVkID09IHRydWUgJiZcbiAgICAgICAgICAgICAgICB0aGlzLmdyYW50Q29uZmlnT2JqZWN0cy5wYWNrYWdlLnZhbHVlID4gMFxuICAgICAgICAgICAgICAgICAgICA/ICcxJ1xuICAgICAgICAgICAgICAgICAgICA6ICcwJ1xuICAgICAgICAgICAgbGV0IGdldEdyYW50UmF0ZSA9XG4gICAgICAgICAgICAgICAgdGhpcy5ncmFudENvbmZpZ09iamVjdHMucHJvdGVjdGlvbi5kaXNhYmxlZCA9PSB0cnVlICYmXG4gICAgICAgICAgICAgICAgdGhpcy5ncmFudENvbmZpZ09iamVjdHMucHJvdGVjdGlvbi52YWx1ZSA+IDBcbiAgICAgICAgICAgICAgICAgICAgPyAnMSdcbiAgICAgICAgICAgICAgICAgICAgOiAnMCdcbiAgICAgICAgICAgIGxldCBhZ01lc3NhZ2VBcnJheSA9IFtnZXRHcmFudFJhdGUsIGdldExlYXNpbmdSYXRlLCBnZXRHcmFudFNlcnZpY2VdXG5cbiAgICAgICAgICAgIHN3aXRjaCAoYWdNZXNzYWdlQXJyYXkuam9pbignLCcpKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnMCwwLDAnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICBjYXNlICcxLDAsMCc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAnR2zDvGNrd3Vuc2NoISBEZWluIEFyYmVpdGdlYmVyIDxzdHJvbmc+c2NoZW5rdCBkaXIgZGVuIFJ1bmR1bS1TY2h1dHouPC9zdHJvbmc+IERpZSBTdW1tZSBkYWbDvHIgd2lyZCB2b24gZGVpbmVyIE51dHp1bmdzcmF0ZSBhdXRvbWF0aXNjaCBhYmdlem9nZW4uJ1xuICAgICAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICAgIGNhc2UgJzAsMSwwJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdHbMO8Y2t3dW5zY2ghIERlaW4gQXJiZWl0Z2ViZXIgPHN0cm9uZz5iZXp1c2NodXNzdCBkaWUgTGVhc2luZ3JhdGUuPC9zdHJvbmc+IERlaW5lIE51dHp1bmdzcmF0ZSB2ZXJyaW5nZXJ0IHNpY2ggaW4gSMO2aGUgZGVzIFp1c2NodXNzZXMuJ1xuICAgICAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICAgIGNhc2UgJzEsMSwwJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdHbMO8Y2t3dW5zY2ghIERlaW4gQXJiZWl0Z2ViZXIgPHN0cm9uZz5zY2hlbmt0IGRpciBkZW4gUnVuZHVtLVNjaHV0eiB1bmQgYmV6dXNjaHVzc3QgZGllIExlYXNpbmdyYXRlLjwvc3Ryb25nPidcbiAgICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICBjYXNlICcxLDAsMSc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAnR2zDvGNrd3Vuc2NoISBEZWluIEFyYmVpdGdlYmVyIDxzdHJvbmc+c2NoZW5rdCBkaXIgZGVuIFJ1bmR1bS1TY2h1dHogdW5kIGRlbiBTZXJ2aWNlIEd1dHNjaGVpbi48L3N0cm9uZz4gRGllIFN1bW1lIGRhZsO8ciB3aXJkIHZvbiBkZWluZXIgTnV0enVuZ3NyYXRlIGF1dG9tYXRpc2NoIGFiZ2V6b2dlbi4nXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgICAgY2FzZSAnMCwxLDEnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ0dsw7xja3d1bnNjaCEgRGVpbiBBcmJlaXRnZWJlciA8c3Ryb25nPnNjaGVua3QgZGlyIGRlbiBTZXJ2aWNlIEd1dHNjaGVpbiB1bmQgYmV6dXNjaHVzc3QgZGllIExlYXNpbmdyYXRlLjwvc3Ryb25nPidcbiAgICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICBjYXNlICcwLDAsMSc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAnR2zDvGNrd3Vuc2NoISBEZWluIEFyYmVpdGdlYmVyIDxzdHJvbmc+c2NoZW5rdCBkaXIgZGVuIFNlcnZpY2UgR3V0c2NoZWluLjwvc3Ryb25nPiBEaWUgU3VtbWUgZGFmw7xyIHdpcmQgdm9uIGRlaW5lciBOdXR6dW5nc3JhdGUgYXV0b21hdGlzY2ggYWJnZXpvZ2VuLidcbiAgICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICBjYXNlICcxLDEsMSc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAnR2zDvGNrd3Vuc2NoISBEZWluIEFyYmVpdGdlYmVyIDxzdHJvbmc+c2NoZW5rdCBkaXIgZGVuIFJ1bmR1bS1TY2h1dHosIGRlbiBTZXJ2aWNlIEd1dHNjaGVpbiB1bmQgYmV6dXNjaHVzc3QgZGllIExlYXNpbmdyYXRlLjwvc3Ryb25nPidcbiAgICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICB9LFxuICAgIGNyZWF0ZWQoKSB7XG4gICAgICAgIHRoaXMuZm9ybWRhdGEuc2FsYXJ5LmhlYWx0aGluc3VyYW5jZWNvbnRyaWJ1dGlvbiA9XG4gICAgICAgICAgICB0aGlzLmZvcm1kYXRhLnNhbGFyeS5oZWFsdGhpbnN1cmFuY2Vjb250cmlidXRpb24gPT0gMFxuICAgICAgICAgICAgICAgID8gJzAuMCdcbiAgICAgICAgICAgICAgICA6IHRoaXMuZm9ybWRhdGEuc2FsYXJ5LmhlYWx0aGluc3VyYW5jZWNvbnRyaWJ1dGlvblxuICAgIH0sXG4gICAgd2F0Y2g6IHtcbiAgICAgICAgc2VsZWN0ZWRDb3Vwb246IHtcbiAgICAgICAgICAgIGhhbmRsZXIoKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZm9ybWRhdGEuc2FsYXJ5LnNlcnZpY2UgPT09IHRoaXMuc2VsZWN0ZWRDb3Vwb24pIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuZm9ybWRhdGEuc2FsYXJ5LnNlcnZpY2UgPSB0aGlzLnNlbGVjdGVkQ291cG9uXG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtZGF0YS5zYWxhcnkuc2VydmljZV92YWx1ZV9uZXQgPVxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvdXBvbk9iamVjdHNbdGhpcy5zZWxlY3RlZENvdXBvbl0udmFsdWVfbmV0XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtZGF0YS5zYWxhcnkuc2VydmljZV92YWx1ZSA9IHRoaXMuY291cG9uT2JqZWN0c1t0aGlzLnNlbGVjdGVkQ291cG9uXS52YWx1ZVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGltbWVkaWF0ZTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIG1ldGhvZHM6IHtcbiAgICAgICAgdG9nZ2xlSW5mb1BvcHVwKCkge1xuICAgICAgICAgICAgdGhpcy5idXR0b25UcmlnZ2VyID0gIXRoaXMuYnV0dG9uVHJpZ2dlclxuICAgICAgICAgICAgdGhpcy5zaG93U3ZnID0gdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICB0b2dnbGVTdmdWaXNpYmlsaXR5KCkge1xuICAgICAgICAgICAgdGhpcy5zaG93U3ZnID0gIXRoaXMuc2hvd1N2Z1xuICAgICAgICB9LFxuICAgICAgICBzaG93RnVydGhlckZpZWxkcygpIHtcbiAgICAgICAgICAgIHRoaXMuc2hvd0ZpZWxkcyA9ICF0aGlzLnNob3dGaWVsZHNcbiAgICAgICAgfSxcbiAgICAgICAgaXNCdWRnZXQocHJpY2UsIGZpZWxkID0gJycpIHtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgKGZpZWxkICE9PSAnJyAmJiBwYXJzZUZsb2F0KHByaWNlKSA+PSBwYXJzZUZsb2F0KHRoaXMubWluVmFsdWUpKSB8fFxuICAgICAgICAgICAgICAgIChwYXJzZUZsb2F0KHByaWNlKSA+PSBwYXJzZUZsb2F0KHRoaXMubWluVmFsdWUpICYmXG4gICAgICAgICAgICAgICAgICAgIHBhcnNlRmxvYXQocHJpY2UpIDw9IHBhcnNlRmxvYXQodGhpcy5tYXhWYWx1ZSkpXG4gICAgICAgICAgICApXG4gICAgICAgIH0sXG5cbiAgICAgICAgc2hvd0NhbGN1bGF0aW9uKCkge1xuICAgICAgICAgICAgdGhpcy5zaG93VGFibGUgPSAhdGhpcy5zaG93VGFibGVcbiAgICAgICAgfSxcbiAgICAgICAgYXN5bmMgc2VuZFJlcXVlc3RUb0NhbGN1bGF0b3IoKSB7XG4gICAgICAgICAgICB0aGlzLmlzbG9hZGluZyA9IHRydWVcblxuICAgICAgICAgICAgaWYoIHRoaXMuZm9ybWRhdGEuc2FsYXJ5LmhlYWx0aGluc3VyYW5jZWNvbnRyaWJ1dGlvbiA+IGNvbmZpZy5oZWFsdGhpbnN1cmFuY2Vjb250cmlidXRpb24ubWF4KXtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1kYXRhLnNhbGFyeS5oZWFsdGhpbnN1cmFuY2Vjb250cmlidXRpb24gPSBjb25maWcuaGVhbHRoaW5zdXJhbmNlY29udHJpYnV0aW9uLm1heFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYoIHRoaXMuZm9ybWRhdGEuc2FsYXJ5LmhlYWx0aGluc3VyYW5jZWNvbnRyaWJ1dGlvbiA8IGNvbmZpZy5oZWFsdGhpbnN1cmFuY2Vjb250cmlidXRpb24ubWluKXtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1kYXRhLnNhbGFyeS5oZWFsdGhpbnN1cmFuY2Vjb250cmlidXRpb24gPSBjb25maWcuaGVhbHRoaW5zdXJhbmNlY29udHJpYnV0aW9uLm1pblxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgIWlzTmFOKHRoaXMuZm9ybWRhdGEucHJvZHVjdHMucHJpY2UpICYmXG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtZGF0YS5wcm9kdWN0cy5wcmljZSA+PSB0aGlzLm1pblZhbHVlICYmXG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtZGF0YS5wcm9kdWN0cy5wcmljZSA8PSB0aGlzLm1heFZhbHVlICYmXG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtZGF0YS5zYWxhcnkuZ3Jvc3Ntb250aGx5c2FsYXJ5ICE9PSAnJyAmJlxuICAgICAgICAgICAgICAgIHRoaXMuZm9ybWRhdGEucHJvZHVjdHMubXNycCAhPT0gJycgJiZcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1kYXRhLnNhbGFyeS5ncmFudF9maXh2YWx1ZSAhPT0gJycgJiZcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1kYXRhLnNhbGFyeS5ncmFudF9wZXJjZW50YWdlICE9PSAnJ1xuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgYXhpb3NcbiAgICAgICAgICAgICAgICAgICAgLnBvc3QoXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVybCArICcvYXBpL2NhbGN1bGF0ZT93aXRob3V0SGFzaD0xJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHsgLi4udGhpcy5wcm9kdWN0cyB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgeyBoZWFkZXJzOiB0aGlzLmhlYWRlciB9LFxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIC50aGVuKChkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNob3dFcnJvciA9IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFwaURhdGEgPSBkYXRhLmRhdGFcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgLmNhdGNoKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2hvd0Vycm9yID0gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBnZXRMb2NhbGVQcmljZShwcmljZSkge1xuICAgICAgICAgICAgcmV0dXJuIHByaWNlID09PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICA/ICcnXG4gICAgICAgICAgICAgICAgOiBuZXcgSW50bC5OdW1iZXJGb3JtYXQoJ2RlLURFJywge1xuICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiAnY3VycmVuY3knLFxuICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbmN5OiAnRVVSJyxcbiAgICAgICAgICAgICAgICAgIH0pLmZvcm1hdChwYXJzZUZsb2F0KHByaWNlLnRvU3RyaW5nKCkuc3BsaXQoJywnKS5qb2luKCcuJykpKVxuICAgICAgICB9LFxuICAgICAgICBjdXN0b21lckhhc0NoaWxkcmVuKCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybWRhdGEuc2FsYXJ5LmNoaWxkID09PSAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtZGF0YS5zYWxhcnkuY2hpbGR0YXggPSAwXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHRyYW5zZm9ybUZvcm1EYXRhKHJlcF9wcmVmaXgsIHByZWZpeCkge1xuICAgICAgICAgICAgdGhpcy5mb3JtZGF0YS5zYWxhcnkuZ3Jvc3Ntb250aGx5c2FsYXJ5ID0gdGhpcy5mb3JtZGF0YS5zYWxhcnkuZ3Jvc3Ntb250aGx5c2FsYXJ5XG4gICAgICAgICAgICAgICAgLnNwbGl0KHJlcF9wcmVmaXgpXG4gICAgICAgICAgICAgICAgLmpvaW4ocHJlZml4KVxuICAgICAgICAgICAgdGhpcy5mb3JtZGF0YS5wcm9kdWN0cy5wcmljZSA9IHRoaXMuZm9ybWRhdGEucHJvZHVjdHMucHJpY2VcbiAgICAgICAgICAgICAgICAuc3BsaXQocmVwX3ByZWZpeClcbiAgICAgICAgICAgICAgICAuam9pbihwcmVmaXgpXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBhc3luYyBtb3VudGVkKCkge1xuICAgICAgICBhd2FpdCB0aGlzLnNlbmRSZXF1ZXN0VG9DYWxjdWxhdG9yKClcbiAgICB9LFxufVxuPC9zY3JpcHQ+XG5cbjxzdHlsZSBzY29wZWQ+XG5zZWxlY3Qge1xuICAgIHRleHQtYWxpZ24tbGFzdDogY2VudGVyO1xufVxuXG5sYWJlbCB7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbn1cbjwvc3R5bGU+XG4iLCI8dGVtcGxhdGU+XG4gICAgPGRpdiBjbGFzcz1cIm14LTIgbXQtMFwiIHJlZj1cImVsZW1lbnRzXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXIgYmctZ3JheS0yMDAgcm91bmRlZC1sZ1wiIDpjbGFzcz1cInsgbG9hZGluZzogaXNsb2FkaW5nIH1cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXIgcC00XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQgZ3JpZC1jb2xzLTEgZ2FwLTQgbWItNFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVsYXRpdmUgZmxleCBmbGV4LXJvdyBzbTpmbGV4LWNvbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZmxleCB3LTEvMyBzbTp3LWZ1bGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5FbnRmZXJudW5nIHp1bSBBcmJlaXRzcGxhdHogKGttKVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9XCJ0b2dnbGVJbmZvUG9wdXBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFic29sdXRlIHNtOnN0YXRpYyBmb2N1czpvdXRsaW5lLW5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOiAxOHB4OyByaWdodDogMTBweDsgbWFyZ2luLWxlZnQ6IDEwcHhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAbW91c2VlbnRlcj1cInRvZ2dsZVN2Z1Zpc2liaWxpdHlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAbW91c2VsZWF2ZT1cInRvZ2dsZVN2Z1Zpc2liaWxpdHlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdi1pZj1cInNob3dTdmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxOFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIxOFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDE4IDE4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiOVwiIGN5PVwiOVwiIHI9XCI4LjVcIiBzdHJva2U9XCJibGFja1wiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiOVwiIGN5PVwiNC41XCIgcj1cIjFcIiBmaWxsPVwiIzFGMUYxRlwiIHN0cm9rZT1cIiMxRjFGMUZcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjhcIiB5PVwiOFwiIHdpZHRoPVwiMlwiIGhlaWdodD1cIjdcIiBmaWxsPVwiYmxhY2tcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOmNsYXNzPVwiYGNhbGN1bGF0b3ItJHtjYWxjdWxhdG9yX2NvbG9yfWBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdi1lbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjE4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjE4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMTggMThcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjeD1cIjlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN5PVwiOVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcj1cIjguNVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwid2hpdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCI5XCIgY3k9XCI0LjVcIiByPVwiMVwiIGZpbGw9XCJ3aGl0ZVwiIHN0cm9rZT1cIndoaXRlXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCI4XCIgeT1cIjhcIiB3aWR0aD1cIjJcIiBoZWlnaHQ9XCI3XCIgZmlsbD1cIndoaXRlXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPEluZm9wb3B1cCB2LWlmPVwiYnV0dG9uVHJpZ2dlclwiIEB0b2dnbGUtcG9wdXA9XCJ0b2dnbGVJbmZvUG9wdXBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvSW5mb3BvcHVwPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cIlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCIzMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1kYXRhLnNhbGFyeS5kaXN0YW5jZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNoYW5nZT1cInNlbmREYXRhXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInctMS8yIHB5LTEgZm9udC1ib2xkIHRleHQtY2VudGVyIHNtOnctZnVsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZCBncmlkLWNvbHMtMSBnYXAtNCBtYi00IGxnOmdyaWQtY29scy0yXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IHNtOmZsZXgtY29sXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ3LTEvMyBzbTp3LWZ1bGxcIj5LYXVmcHJlaXMgKGJydXR0byk8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cInB1cmNoYXNlcHJpY2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiei5CLjogMjAwMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1kYXRhLnByb2R1Y3RzLnByaWNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAY2hhbmdlPVwic2VuZERhdGFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidy0xLzIgcHktMSBmb250LWJvbGQgdGV4dC1jZW50ZXIgc206dy1mdWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpbnB1dD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZm9ybWRhdGEucHJvZHVjdHMucHJpY2UgPCAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWRhdGEucHJvZHVjdHMucHJpY2UgPSAwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgLz48c3BhbiB2LWlmPVwiIWlzQnVkZ2V0QW5kVmFsaWRcIiBjbGFzcz1cInRleHQtcmVkLTYwMFwiPnt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVkZ2V0TWVzc2FnZVxuICAgICAgICAgICAgICAgICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBzbTpmbGV4LWNvbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwidy0xLzMgc206dy1mdWxsXCI+VVZQPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJ1dnBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtZGF0YS5wcm9kdWN0cy5tc3JwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAY2hhbmdlPVwic2VuZERhdGFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpbnB1dD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZm9ybWRhdGEucHJvZHVjdHMubXNycCA8IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtZGF0YS5wcm9kdWN0cy5tc3JwID0gMFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInctMS8yIHB5LTEgZm9udC1ib2xkIHRleHQtY2VudGVyIHNtOnctZnVsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXJlZC02MDBcIj57eyBwcmljZU1lc3NhZ2UgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBzbTpmbGV4LWNvbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwidy0xLzMgc206dy1mdWxsXCI+QnJ1dHRvZ2VoYWx0PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJncm9zc3NhbGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCIzMDAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybWRhdGEuc2FsYXJ5Lmdyb3NzbW9udGhseXNhbGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNoYW5nZT1cInNlbmREYXRhXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInctMS8yIHB5LTEgZm9udC1ib2xkIHRleHQtY2VudGVyIHNtOnctZnVsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlucHV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmb3JtZGF0YS5zYWxhcnkuZ3Jvc3Ntb250aGx5c2FsYXJ5IDwgMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1kYXRhLnNhbGFyeS5ncm9zc21vbnRobHlzYWxhcnkgPSAwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1yZWQtNjAwXCI+e3sgZXJyb3JNZXNzYWdlR3Jvc3MgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3BhY2UteS0yIGNvbC1zcGFuLWZ1bGwgbGc6Y29sLXNwYW4tMSBzbTpzcGFjZS15LTBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInBiLTIgc206cGItMFwiPlN0ZXVlcmtsYXNzZTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOmNsYXNzPVwiYHJhZGlvLXRvb2xiYXItJHtjYWxjdWxhdG9yX2NvbG9yfWBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LXJvdyAtbWwtMiBzcGFjZS14LTIgcmFkaW8tdG9vbGJhciBzbTpzcGFjZS14LTQgc206LW1sLTRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZSB2LWZvcj1cInRheENsYXNzIGluIHRheENsYXNzZXNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOmlkPVwiYGNsYXNzJHt0YXhDbGFzc31gXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicm91bmRlZC1mdWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtZGF0YS5zYWxhcnkudGF4Y2xhc3NcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNoYW5nZT1cInNlbmREYXRhXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJwZWRlbGVjLXRheC1jbGFzc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6dmFsdWU9XCJ0YXhDbGFzc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgOmZvcj1cImBjbGFzcyR7dGF4Q2xhc3N9YFwiPnt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXhDbGFzc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICB2LXNob3c9XCIhcG9ydGFsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIDpjbGFzcz1cImlzUG9ydGFsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29sLXNwYW4tMSBzcGFjZS15LTIgc206c3BhY2UteS0wXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwicGItMiBzbTpwYi0wXCI+w5xiZXJuYWhtZSBkZXMgUnVuZHVtLVNjaHV0emVzPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Y2xhc3M9XCJgcmFkaW8tdG9vbGJhci0ke2NhbGN1bGF0b3JfY29sb3J9YFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtcm93IC1tbC02IHNwYWNlLXgtNiByYWRpby10b29sYmFyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJhcmJlaXRuZWhtZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybWRhdGEuc2FsYXJ5LmNhbGNBR1JTXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNoYW5nZT1cInNlbmREYXRhXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cInBlZGVsZWMtY2FsY0FHUlNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cIjBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ZGlzYWJsZWQ9XCJncmFudENvbmZpZ09iamVjdHMucHJvdGVjdGlvbi5kaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiYXJiZWl0bmVobWVyXCI+QXJiZWl0bmVobWVyPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1kYXRhLnNhbGFyeS5jYWxjQUdSU1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjaGFuZ2U9XCJzZW5kRGF0YVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiYXJiZWl0Z2ViZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwicGVkZWxlYy1jYWxjQUdSU1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPVwiMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpkaXNhYmxlZD1cImdyYW50Q29uZmlnT2JqZWN0cy5wcm90ZWN0aW9uLmRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJhcmJlaXRnZWJlclwiPkFyYmVpdGdlYmVyPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgdi1zaG93PVwiIXBvcnRhbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA6Y2xhc3M9XCJbaXNQb3J0YWwsIHRvZ2dsZUdyYW50VHlwZV1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb2wtc3Bhbi0xIHNwYWNlLXktMiBzbTpzcGFjZS15LTBcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJwYi0yIHNtOnBiLTBcIj5BcnQgZGVzIFp1c2NodXNzZXM8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpjbGFzcz1cImByYWRpby10b29sYmFyLSR7Y2FsY3VsYXRvcl9jb2xvcn1gXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXggZmxleC1yb3cgLW1sLTYgc3BhY2UteC02IHJhZGlvLXRvb2xiYXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cIkVVUlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtZGF0YS5zYWxhcnkuZ3JhbnRfdHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjaGFuZ2U9XCJzZW5kRGF0YVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJwZWRlbGVjLWdyYW50X3R5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cIkVVUlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiRVVSXCI+RmVzdGVyIEJldHJhZzwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJyYWRpb1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtZGF0YS5zYWxhcnkuZ3JhbnRfdHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjaGFuZ2U9XCJzZW5kRGF0YVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwicGVyY2VudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJwZWRlbGVjLWdyYW50X3R5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cInBlcmNlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInBlcmNlbnRcIj5Qcm96ZW50dWFsZXIgWnVzY2h1c3M8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICB2LXNob3c9XCIhcG9ydGFsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIDpjbGFzcz1cIltpc1BvcnRhbCwgZ3JhbnRUeXBlID09ICdwZXJjZW50JyA/ICcnIDogJ2hpZGRlbiddXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibGc6Y29sLXN0YXJ0LTIgcmFkaW8tdG9vbGJhci1udW1iZXJcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cD5BcmJlaXRnZWJlcnp1c2NodXNzIHp1ciBMZWFzaW5ncmF0ZSBpbiAlPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluPVwiMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4PVwiMTAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiYXJiZWl0Z2ViZXJ6dXNjaHVzc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1kYXRhLnNhbGFyeS5ncmFudF9wZXJjZW50YWdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAY2hhbmdlPVwic2VuZERhdGFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpbnB1dD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZm9ybWRhdGEuc2FsYXJ5LmdyYW50X3BlcmNlbnRhZ2UgPiAxMDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtZGF0YS5zYWxhcnkuZ3JhbnRfcGVyY2VudGFnZSA9IDEwMFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZvcm1kYXRhLnNhbGFyeS5ncmFudF9wZXJjZW50YWdlID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1kYXRhLnNhbGFyeS5ncmFudF9maXh2YWx1ZSA9IDBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCIxMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ3LWZ1bGwgcHktMSBmb250LWJvbGQgdGV4dC1jZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOmRpc2FibGVkPVwiZ3JhbnRDb25maWdPYmplY3RzLmxlYXNpbmcuZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1yZWQtNjAwXCI+e3sgZXJyb3JNZXNzYWdlUGVyY2VudCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIHYtc2hvdz1cIiFwb3J0YWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgOmNsYXNzPVwiW2lzUG9ydGFsLCBncmFudFR5cGUgPT0gJ0VVUicgPyAnJyA6ICdoaWRkZW4nXVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImxnOmNvbC1zdGFydC0yIHJhZGlvLXRvb2xiYXItbnVtYmVyXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHA+QXJiZWl0Z2ViZXJ6dXNjaHVzcyB6dXIgTGVhc2luZ3JhdGUgaW4g4oKsPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluPVwiMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4PVwiMTAwMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImFyYmVpdGdlYmVyenVzY2h1c3NcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtZGF0YS5zYWxhcnkuZ3JhbnRfZml4dmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjaGFuZ2U9XCJzZW5kRGF0YVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlucHV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmb3JtZGF0YS5zYWxhcnkuZ3JhbnRfZml4dmFsdWUgPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWRhdGEuc2FsYXJ5LmdyYW50X3BlcmNlbnRhZ2UgPSAwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiMzBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidy1mdWxsIHB5LTEgZm9udC1ib2xkIHRleHQtY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpkaXNhYmxlZD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmFudENvbmZpZ09iamVjdHMuZml4ZWQgJiYgZ3JhbnRDb25maWdPYmplY3RzLmZpeGVkLmRpc2FibGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtcmVkLTYwMFwiPnt7IGVycm9yTWVzc2FnZUZpeGVkIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlbGF0aXZlIGZsZXgganVzdGlmeS1jZW50ZXIgdy1mdWxsIG10LTYgbWItNCBzbTpoaWRkZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LWZ1bGwgYm9yZGVyLWItMiBib3JkZXItd2hpdGVcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9XCJzaG93RnVydGhlckZpZWxkcygpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFic29sdXRlIGZsZXggY29udGVudC1jZW50ZXIgcHgtMiBweS0xIHRleHQteGwgdGV4dC13aGl0ZSB0cmFuc2Zvcm0gLXRyYW5zbGF0ZS15LTEvMiBiZy13aGl0ZSByb3VuZGVkLWZ1bGwgc206cHgtMjBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIHYtaWY9XCJzaG93RmllbGRzXCIgY2xhc3M9XCJwdC0xIHByLTIgdGV4dC1iYXNlIHRleHQtYmxhY2tcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+RXJ3ZWl0ZXJ0ZSBBbmdhYmVuIHZlcmJlcmdlbjwvc3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiB2LWlmPVwiIXNob3dGaWVsZHNcIiBjbGFzcz1cInB0LTEgcHItMiB0ZXh0LWJhc2UgdGV4dC1ibGFja1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5FcndlaXRlcnRlIEFuZ2FiZW4gYW56ZWlnZW48L3NwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LWlmPVwiIXNob3dGaWVsZHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ3LTggaC02IHRleHQtd2hpdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xOSA5bC03IDctNy03XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYtaWY9XCJzaG93RmllbGRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidy04IGgtNiB0ZXh0LXdoaXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNSAxNWw3LTcgNyA3XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgOmNsYXNzPVwieyBoaWRkZW46ICFzaG93RmllbGRzIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJncmlkLWNvbHMtMSBnYXAtNCBtYi00IHNwYWNlLXktMyBjb2wtc3Bhbi1mdWxsIHNtOmdyaWQgbGc6Z3JpZC1jb2xzLTIgc206c3BhY2UteS0wXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zcGFuLWZ1bGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+QnVuZGVzbGFuZDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJzdGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtZGF0YS5zYWxhcnkuc3RhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAY2hhbmdlPVwic2VuZERhdGFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInctZnVsbCBweS0yIHRleHQtY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJCV1wiPkJhZGVuLVfDvHJ0dGVtYmVyZzwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiQllcIj5CYXllcm48L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIkJFXCI+QmVybGluPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJCQlwiPkJyYW5kZW5idXJnPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJIQlwiPkJyZW1lbjwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiSEhcIj5IYW1idXJnPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJIRVwiPkhlc3Nlbjwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiTVZcIj5NZWNrbGVuYnVyZy1Wb3Jwb21tZXJuPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJOSVwiPk5pZWRlcnNhY2hzZW48L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIk5XXCI+Tm9yZHJoZWluLVdlc3RmYWxlbjwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiUlBcIj5SaGVpbmxhbmQtUGZhbHo8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlNMXCI+U2FhcmxhbmQ8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlNOXCI+U2FjaHNlbjwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiU1RcIj5TYWNoc2VuLUFuaGFsdDwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiU0hcIj5TY2hsZXN3aWctSG9sc3RlaW48L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlRIXCI+VGjDvHJpbmdlbjwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5adXNhdHpiZWl0cmFnIEtyYW5rZW5rYXNzZSBpbiAlICh2b24ge3sgaGVhbHRoTWluVmFsdWUgfX0gYmlzIHt7IGhlYWx0aE1heFZhbHVlIH19KTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6bWluPVwiaGVhbHRoTWluVmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6bWF4PVwiaGVhbHRoTWF4VmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGVwPVwiMC4wMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtZGF0YS5zYWxhcnkuaGVhbHRoaW5zdXJhbmNlY29udHJpYnV0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNoYW5nZT1cInNlbmREYXRhXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ3LWZ1bGwgcHktMiBmb250LWJvbGQgdGV4dC1jZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxmLWVuZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5LaW5kZXJmcmVpYmV0cmFnPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cInRheGNsYXNzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1kYXRhLnNhbGFyeS5jaGlsZHRheFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjaGFuZ2U9XCJzZW5kRGF0YVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidy1mdWxsIHB5LTIgZm9udC1ib2xkIHRleHQtY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIwXCI+MDwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiMC41XCI+MCw1PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIxXCI+MTwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiMS41XCI+MSw1PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIyXCI+Mjwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiMi41XCI+Miw1PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIzXCI+Mzwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiMy41XCI+Myw1PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCI0XCI+NDwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiNC41XCI+NCw1PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCI1XCI+NTwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiNS41XCI+NSw1PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCI2XCI+Njwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdi1zaG93PVwiIXBvcnRhbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOmNsYXNzPVwiaXNQb3J0YWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29sLXNwYW4tMSBzcGFjZS15LTIgc206c3BhY2UteS0wXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJwYi0yIHNtOnBiLTBcIj7DnGJlcm5haG1lIGRlcyBTZXJ2aWNlLVBha2V0czwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Y2xhc3M9XCJgcmFkaW8tdG9vbGJhci0ke2NhbGN1bGF0b3JfY29sb3J9YFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LXJvdyAtbWwtNiBzcGFjZS14LTYgcmFkaW8tdG9vbGJhclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJyYWRpb1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cInNlcnZpY2VfYXJiZWl0bmVobWVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtZGF0YS5zYWxhcnkuZ3JhbnRfc2VydmljZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAY2hhbmdlPVwic2VuZERhdGFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cInBlZGVsZWMtZ3JhbnRfc2VydmljZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cIjBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOmRpc2FibGVkPVwiZ3JhbnRDb25maWdPYmplY3RzLnBhY2thZ2UuZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwic2VydmljZV9hcmJlaXRuZWhtZXJcIj5BcmJlaXRuZWhtZXI8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJyYWRpb1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybWRhdGEuc2FsYXJ5LmdyYW50X3NlcnZpY2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNoYW5nZT1cInNlbmREYXRhXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwic2VydmljZV9hcmJlaXRnZWJlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwicGVkZWxlYy1ncmFudF9zZXJ2aWNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPVwiMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ZGlzYWJsZWQ9XCJncmFudENvbmZpZ09iamVjdHMucGFja2FnZS5kaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJzZXJ2aWNlX2FyYmVpdGdlYmVyXCI+QXJiZWl0Z2ViZXI8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXN0YXJ0LTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+U2VydmljZS1QYWtldDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Y2xhc3M9XCJgcmFkaW8tdG9vbGJhci0ke2NhbGN1bGF0b3JfY29sb3J9YFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LXJvdyAtbWwtMiBzcGFjZS14LTIgcmFkaW8tdG9vbGJhciBtZDpzcGFjZS14LTYgbWQ6LW1sLTZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRlbXBsYXRlIHYtZm9yPVwiY291cG9uT2JqZWN0IGluIGNvdXBvbnNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDprZXk9XCJjb3Vwb25PYmplY3QudmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJyYWRpb1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOmlkPVwiY291cG9uT2JqZWN0LnRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJzZWxlY3RlZENvdXBvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNoYW5nZT1cInNlbmREYXRhXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwicGVkZWxlYy1naWZ0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6dmFsdWU9XCJjb3Vwb25PYmplY3QudmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpkaXNhYmxlZD1cImNvdXBvbnMubGVuZ3RoID09IDFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCA6a2V5PVwiY291cG9uT2JqZWN0LnRleHRcIiA6Zm9yPVwiY291cG9uT2JqZWN0LnRleHRcIj57e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdXBvbk9iamVjdC50ZXh0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGNvbC1zdGFydC0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Y2xhc3M9XCJgY2hlY2tib3gtdG9vbGJhci0ke2NhbGN1bGF0b3JfY29sb3J9YFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidy0xLzYgY2hlY2tib3gtdG9vbGJhclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNodXJjaHRheFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInJvdW5kZWQtZnVsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybWRhdGEuc2FsYXJ5LmNodXJjaHRheFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAY2hhbmdlPVwic2VuZERhdGFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImlzY2h1cmNodGF4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDp0cnVlLXZhbHVlPVwiMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ZmFsc2UtdmFsdWU9XCIwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIHYtaWY9XCJmb3JtZGF0YS5zYWxhcnkuY2h1cmNodGF4ID09ICcwJ1wiIGZvcj1cImNodXJjaHRheFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+WDwvbGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgdi1pZj1cImZvcm1kYXRhLnNhbGFyeS5jaHVyY2h0YXggPT0gJzEnXCIgZm9yPVwiY2h1cmNodGF4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID7inJM8L2xhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNlbGYtY2VudGVyXCI+S2lyY2hlbnN0ZXVlcnBmbGljaHQ8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Y2xhc3M9XCJgY2hlY2tib3gtdG9vbGJhci0ke2NhbGN1bGF0b3JfY29sb3J9YFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidy0xLzYgY2hlY2tib3gtdG9vbGJhclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cInBlbnNpb250YXhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyb3VuZGVkLWZ1bGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1kYXRhLnNhbGFyeS5wZW5zaW9uaW5zdXJhbmNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjaGFuZ2U9XCJzZW5kRGF0YVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiaXNwZW5zaW9udGF4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDp0cnVlLXZhbHVlPVwiMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ZmFsc2UtdmFsdWU9XCIwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LWlmPVwiZm9ybWRhdGEuc2FsYXJ5LnBlbnNpb25pbnN1cmFuY2UgPT0gJzAnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcj1cInBlbnNpb250YXhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlg8L2xhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LWlmPVwiZm9ybWRhdGEuc2FsYXJ5LnBlbnNpb25pbnN1cmFuY2UgPT0gJzEnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcj1cInBlbnNpb250YXhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPuKckzwvbGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2VsZi1jZW50ZXJcIj5SZW50ZW52ZXJzaWNoZXJ1bmdzcGZsaWNodDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgY29sLXN0YXJ0LTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpjbGFzcz1cImBjaGVja2JveC10b29sYmFyLSR7Y2FsY3VsYXRvcl9jb2xvcn1gXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ3LTEvNiBjaGVja2JveC10b29sYmFyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiaGVhbHRoaW5zdXJhbmNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicm91bmRlZC1mdWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtZGF0YS5zYWxhcnkuaGVhbHRoaW5zdXJhbmNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjaGFuZ2U9XCJzZW5kRGF0YVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiaXNoZWFsdGhpbnN1cmFuY2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOnRydWUtdmFsdWU9XCIxXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpmYWxzZS12YWx1ZT1cIjBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYtaWY9XCJmb3JtZGF0YS5zYWxhcnkuaGVhbHRoaW5zdXJhbmNlID09ICcwJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3I9XCJoZWFsdGhpbnN1cmFuY2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlg8L2xhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LWlmPVwiZm9ybWRhdGEuc2FsYXJ5LmhlYWx0aGluc3VyYW5jZSA9PSAnMSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yPVwiaGVhbHRoaW5zdXJhbmNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID7inJM8L2xhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNlbGYtY2VudGVyXCI+S3JhbmtlbnZlcnNpY2hlcnVuZ3NwZmxpY2h0PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvd1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOmNsYXNzPVwiYGNoZWNrYm94LXRvb2xiYXItJHtjYWxjdWxhdG9yX2NvbG9yfWBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInctMS82IGNoZWNrYm94LXRvb2xiYXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJwcmV0YXhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyb3VuZGVkLWZ1bGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1kYXRhLnNhbGFyeS50YXhkZWR1Y3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNoYW5nZT1cInNlbmREYXRhXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJpc3ByZXRheFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6dHJ1ZS12YWx1ZT1cIjBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOmZhbHNlLXZhbHVlPVwiMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ZGlzYWJsZWQ9XCJncmFudENvbmZpZ09iamVjdHMudGF4LmRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIHYtaWY9XCJmb3JtZGF0YS5zYWxhcnkudGF4ZGVkdWN0aW9uID09ICcxJ1wiIGZvcj1cInByZXRheFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+WDwvbGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgdi1pZj1cImZvcm1kYXRhLnNhbGFyeS50YXhkZWR1Y3Rpb24gPT0gJzAnXCIgZm9yPVwicHJldGF4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID7inJM8L2xhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNlbGYtY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPklzdCBJaHIgQXJiZWl0Z2ViZXIgdm9yc3RldWVyYWJ6dWdzYmVyZWNodGlndD88L3NwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICB2LWlmPVwic3VjY2Vzc1RleHRcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImdyaWQgY29udGVudC1jZW50ZXIgdy1mdWxsIGdyaWQtY29scy0xIHAtMiBzbTpmbGV4IGNhbGN1bGF0b3Itc3VjY2VzcyByb3VuZGVkLXhsIHNtOnNwYWNlLXgtNFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImp1c3RpZnktc2VsZi1jZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMxIDMxXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGwtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaXAtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTkuNDQ4NSAyNy44NTQ1QzE5LjQ0ODUgMjUuOTkxNiAxNy45MzgzIDI0LjQ4MTQgMTYuMDc1NSAyNC40ODE0SDExLjg1OTJDMTEuODU5MiAyMi42MTg2IDEwLjM0OSAyMS4xMDg0IDguNDg2MTUgMjEuMTA4NEgyLjU4MzM0VjI3Ljg1NDVIMTkuNDQ4NVpcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM0NkQzOTBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNOC40ODYxNSAyNC40ODE0SDExLjg1OTJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM0NkQzOTBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTQuMzg4OSAyMS4xMDg0SDI1LjM1MTNDMjUuODE3IDIxLjEwODQgMjYuMTk0NiAyMC43MzA4IDI2LjE5NDYgMjAuMjY1MVYxMi42NzU4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNDZEMzkwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTExLjAxNTkgMTIuNjc1OFYxNy43MzUzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNDZEMzkwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGlwLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTkuMzI5NDEgOS4yMDk0N0M5LjMyOTQxIDguNzk1MjYgOS42NjUxOSA4LjQ1OTQ3IDEwLjA3OTQgOC40NTk0N0gyNy4xMzExQzI3LjU0NTMgOC40NTk0NyAyNy44ODExIDguNzk1MjYgMjcuODgxMSA5LjIwOTQ3VjExLjkyNThDMjcuODgxMSAxMi4zNCAyNy41NDUzIDEyLjY3NTggMjcuMTMxMSAxMi42NzU4SDEwLjA3OTRDOS42NjUxOSAxMi42NzU4IDkuMzI5NDEgMTIuMzQgOS4zMjk0MSAxMS45MjU4VjkuMjA5NDdaXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNDZEMzkwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE4LjYwNTMgMjEuMTA4M1Y4LjQ1OTQ3XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNDZEMzkwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGlwLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTIzLjQwMDYgNi4wNzQ3OEMyMS45ODc2IDcuMTgyODQgMjAuMzY1MyA3Ljk5Mzk4IDE4LjYzMTEgOC40NTk1MkMxOS4wOTY2IDYuNzI1MjkgMTkuOTA3OCA1LjEwMzAxIDIxLjAxNTggMy42OTAwNUMyMi40OTg4IDIuMjA4MTYgMjMuMzM4NyAyLjQzNTI4IDI0LjAwMjEgMy4wOTQxNEMyNC42NjU1IDMuNzUzMDEgMjQuODgzNiA0LjU5MjkgMjMuNDAwNiA2LjA3NDc4WlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzQ2RDM5MFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpcC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMy44MDg4IDYuMDc0NzhDMTUuMjIxOSA3LjE4MjYzIDE2Ljg0NDEgNy45OTM3NSAxOC41NzgzIDguNDU5NTJDMTguMTEzMyA2LjcyNTEgMTcuMzAyMSA1LjEwMjcxIDE2LjE5MzUgMy42OTAwNUMxNC43MTE3IDIuMjA4MTYgMTMuODcxOCAyLjQzNTI4IDEzLjIwODQgMy4wOTQxNEMxMi41NDUgMy43NTMwMSAxMi4zMjY5IDQuNTkyOSAxMy44MDg4IDYuMDc0NzhaXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNDZEMzkwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICAgICAgPHAgdi1odG1sPVwic3VjY2Vzc1RleHRcIiBjbGFzcz1cInNlbGYtY2VudGVyXCI+PC9wPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IHYtaWY9XCJzaG93RXJyb3JcIiBjbGFzcz1cInRleHQtY2VudGVyXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtcmVkLTYwMFwiXG4gICAgICAgICAgICAgICAgPkRpZSBCZXJlY2hudW5nIGthbm4gbmljaHQgYXVzZ2Vmw7xocnQgd2VyZGVuLiBCaXR0ZSDDvGJlcnByw7xmZSBkZWluZSBFaW5nYWJlbjwvc3BhblxuICAgICAgICAgICAgPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQgZ3JpZC1jb2xzLTEgcHktNCB0ZXh0LWNlbnRlciBsZzpncmlkLWNvbHMtMiBsZzp0ZXh0LWxlZnRcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbFwiPlxuICAgICAgICAgICAgICAgICAgICA8cD5TbyB2aWVsIHdpcmQgZ2VzcGFydDwvcD5cbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidGV4dC01eGwgZm9udC1ib2xkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZ2V0TG9jYWxlUHJpY2UocHJvZHVjdERhdGEuc2F2aW5nKSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpjbGFzcz1cImBjYWxjdWxhdG9yLSR7Y2FsY3VsYXRvcl9jb2xvcn1gXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXgganVzdGlmeS1jZW50ZXIgdGV4dC1iYXNlIGxnOnRleHQteGwgbGc6anVzdGlmeS1zdGFydFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMyIDMyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTMwLjY2NyAxNC4wNDQ0QzMwLjY2NyAxNi4yMDQ1IDI4LjkxNTkgMTcuOTU1NSAyNi43NTU5IDE3Ljk1NTVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNOC4xNzc5NCA5LjIyMDcxQzYuMDc0MjcgMTAuNTg0MSA0LjUwNzkxIDEyLjYzNDIgMy43NDUzNSAxNS4wMjIySDEuMzMzNVYyMi44NDQ0SDQuNTc5NzJDNS4yNTQ4MyAyNC4wMjgxIDYuMTQzMjkgMjUuMDc2NiA3LjIwMDE2IDI1LjkzNjhWMjkuNjg4OUM3LjIwMDE2IDMwLjIyODkgNy42Mzc5MyAzMC42NjY2IDguMTc3OTQgMzAuNjY2NkgxMC4xMzM1QzEwLjY3MzUgMzAuNjY2NiAxMS4xMTEzIDMwLjIyODkgMTEuMTExMyAyOS42ODg5VjI4LjA3MUMxMy42NDg5IDI4LjkxOTUgMTYuMzkyOCAyOC45MjQ1IDE4LjkzMzUgMjguMDg1M1YyOS42ODg5QzE4LjkzMzUgMzAuMjI4OSAxOS4zNzEzIDMwLjY2NjYgMTkuOTExMyAzMC42NjY2SDIxLjg2NjhDMjIuNDA2OCAzMC42NjY2IDIyLjg0NDYgMzAuMjI4OSAyMi44NDQ2IDI5LjY4ODlWMjUuOTU2NEMyNS4yODc0IDI0LjAxNTEgMjYuNzI0MyAyMS4wNzU2IDI2Ljc1NTcgMTcuOTU1NUMyNi43MDkgMTQuMzk5OSAyNC44NjU2IDExLjEwOTYgMjEuODU3NyA5LjIxMjg5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTExLjExMTMgMTAuMTMzN0MxMy41NzYgOC45MTM3NyAxNi40Njg4IDguOTEzNzcgMTguOTMzNiAxMC4xMzM3XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaXAtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xNS4wMjI0IDkuMTU1NzJDMTcuMTgyNSA5LjE1NTcyIDE4LjkzMzYgNy40MDQ2NSAxOC45MzM2IDUuMjQ0NjFDMTguOTMzNiAzLjA4NDU2IDE3LjE4MjUgMS4zMzM1IDE1LjAyMjQgMS4zMzM1QzEyLjg2MjQgMS4zMzM1IDExLjExMTMgMy4wODQ1NiAxMS4xMTEzIDUuMjQ0NjFDMTEuMTExMyA3LjQwNDY1IDEyLjg2MjQgOS4xNTU3MiAxNS4wMjI0IDkuMTU1NzJaXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJwdC0xIHBsLTMgdGV4dC0yeGwgdGV4dC1ibGFja1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPnt7IHByb2R1Y3REYXRhLnNhdmluZ19wZXJjZW50YWdlIH19JTwvc3Ryb25nPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXNwYXJ0IVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBwdC00IGxnOnB0LTBcIj5cbiAgICAgICAgICAgICAgICAgICAgPHA+RGllIGluZGl2aWR1ZWxsZSBOdXR6dW5nc3JhdGUgYmV0csOkZ3Q6PC9wPlxuICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInRleHQtNXhsIGZvbnQtYm9sZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgZ2V0TG9jYWxlUHJpY2UocHJvZHVjdERhdGEubGVhc2luZ19uZXQpIH19XG4gICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVsYXRpdmUgZmxleCBqdXN0aWZ5LWNlbnRlciB3LWZ1bGwgbXktMTJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy1mdWxsIGJvcmRlci1iLTIgYm9yZGVyLWJsYWNrXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBAY2xpY2s9XCJzaG93Q2FsY3VsYXRpb24oKVwiXG4gICAgICAgICAgICAgICAgICAgIDpkaXNhYmxlZD1cInNob3dFcnJvclwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYWJzb2x1dGUgZmxleCBjb250ZW50LWNlbnRlciBweC01IHB5LTEgdGV4dC14bCB0ZXh0LXdoaXRlIHRyYW5zZm9ybSAtdHJhbnNsYXRlLXktMS8yIGJnLWJsYWNrIHJvdW5kZWQtZnVsbCBzbTpweC0yMFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiB2LWlmPVwic2hvd1RhYmxlXCIgc3R5bGU9XCJsaW5lLWhlaWdodDogMzBweFwiIGNsYXNzPVwicHItNlwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+QmVyZWNobnVuZyBhbnplaWdlbjwvc3BhblxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIHYtaWY9XCIhc2hvd1RhYmxlXCIgc3R5bGU9XCJsaW5lLWhlaWdodDogMzBweFwiIGNsYXNzPVwicHItNlwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+QmVyZWNobnVuZyB2ZXJiZXJnZW48L3NwYW5cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAgICAgICAgICAgICB2LWlmPVwic2hvd1RhYmxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ3LTggaC02IHRleHQtd2hpdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE5IDlsLTcgNy03LTdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgICAgICAgICAgICAgIHYtaWY9XCIhc2hvd1RhYmxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ3LTggaC02IHRleHQtd2hpdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTUgMTVsNy03IDcgN1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IHYtaWY9XCIhc2hvd1RhYmxlXCIgY2xhc3M9XCJweS0xMlwiIDpjbGFzcz1cInsgbG9hZGluZzogaXNsb2FkaW5nIH1cIj5cbiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJweS02IHRleHQtMnhsIGZvbnQtc2VtaWJvbGRcIj5FcnJlY2hudW5nIGRlciBtb25hdGxpY2hlbiBLb3N0ZW46PC9oMj5cblxuICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz1cInctZnVsbCBweS00IHRleHQtbGcgdGFibGUtZml4ZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgPHRoZWFkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPVwidGV4dC1sZWZ0IGJvcmRlci1iLTQgYm9yZGVyLWJsYWNrXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwiaGlkZGVuIHctMS8yIHNtOnRhYmxlLWNlbGxcIj48L3RoPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cImZsZXggcHgtMVwiPjxwIGNsYXNzPVwic2VsZi1zdGFydFwiPm9obmUgUy1QZWRlbGVjPC9wPjwvdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwidGFibGUtY2VsbCB3LTEvMyBzbTpoaWRkZW5cIj48L3RoPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cInB4LTEgdGV4dC1yaWdodCBzbTp0ZXh0LWxlZnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+bWl0IFMtUGVkZWxlYzwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgPC90aGVhZD5cbiAgICAgICAgICAgICAgICAgICAgPHRib2R5PlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPVwicmVsYXRpdmUgYm9yZGVyLWItMiBib3JkZXItYmxhY2tcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJoaWRkZW4gdy0xLzIgc206dGFibGUtY2VsbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImZvbnQtYm9sZFwiPkJydXR0b21vbmF0c2dlaGFsdDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInB0LTEwIHBiLTQgc206cHQtNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInB0LTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGdldExvY2FsZVByaWNlKGZvcm1kYXRhLnNhbGFyeS5ncm9zc21vbnRobHlzYWxhcnkpIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImFic29sdXRlIHRvcC0wIGxlZnQtMCByaWdodC0wIGZsZXggc206aGlkZGVuXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwicHQtMiBteC1hdXRvIGZvbnQtYm9sZFwiPkJydXR0b21vbmF0c2dlaGFsdDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInB0LTEwIHBiLTQgdGV4dC1yaWdodCBhbGlnbi1ib3R0b20gc206cHQtNCBzbTp0ZXh0LWxlZnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+e3sgZ2V0TG9jYWxlUHJpY2UoZm9ybWRhdGEuc2FsYXJ5Lmdyb3NzbW9udGhseXNhbGFyeSkgfX08L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZSB2LWZvcj1cImFtb3VudCBpbiBhbW91bnRzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyIDprZXk9XCJhbW91bnQuaW5kZXhcIiBjbGFzcz1cInJlbGF0aXZlIGJvcmRlci1iLTIgYm9yZGVyLWJsYWNrXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImhpZGRlbiB3LTEvMiBzbTp0YWJsZS1jZWxsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImZvbnQtYm9sZFwiPnt7IGFtb3VudC5sYWJlbCB9fTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicHQtMTAgcGItNCBzbTpwdC00XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD4wLDAwIOKCrDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYWJzb2x1dGUgdG9wLTAgbGVmdC0wIHJpZ2h0LTAgZmxleCBzbTpoaWRkZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwicHQtMiBteC1hdXRvIGZvbnQtYm9sZFwiPnt7IGFtb3VudC5sYWJlbCB9fTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicHQtMTAgcGItNCB0ZXh0LXJpZ2h0IGFsaWduLWJvdHRvbSBzbTpwdC00IHNtOnRleHQtbGVmdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+e3sgYW1vdW50LnRleHQgfX08L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGVtcGxhdGU+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPHRyIGNsYXNzPVwicmVsYXRpdmUgYm9yZGVyLWItMiBib3JkZXItYmxhY2tcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJoaWRkZW4gdy0xLzIgc206dGFibGUtY2VsbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImZvbnQtYm9sZFwiPlVtd2FuZGx1bmdzYmV0cmFnIExlYXNpbmdyYXRlPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicHQtMTAgcGItNCBzbTpwdC00XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjAsMDAg4oKsPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYWJzb2x1dGUgdG9wLTAgbGVmdC0wIHJpZ2h0LTAgZmxleCBzbTpoaWRkZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJwdC0yIG14LWF1dG8gZm9udC1ib2xkXCI+VW13YW5kbHVuZ3NiZXRyYWcgTGVhc2luZ3JhdGU8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwdC0xMCBwYi00IHRleHQtcmlnaHQgYWxpZ24tYm90dG9tIHNtOnB0LTQgc206dGV4dC1sZWZ0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPi0ge3sgZ2V0TG9jYWxlUHJpY2UocHJvZHVjdERhdGEubGVhc2luZ19ncm9zcykgfX08L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9XCJyZWxhdGl2ZSBib3JkZXItYi0yIGJvcmRlci1ibGFja1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImhpZGRlbiB3LTEvMiBzbTp0YWJsZS1jZWxsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiZm9udC1ib2xkXCI+VW13YW5kbHVuZ3NiZXRyYWcgUnVuZHVtLVNjaHV0ejwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInB0LTEwIHBiLTQgc206cHQtNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD4wLDAwIOKCrDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImFic29sdXRlIHRvcC0wIGxlZnQtMCByaWdodC0wIGZsZXggc206aGlkZGVuXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwicHQtMiBteC1hdXRvIGZvbnQtYm9sZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW13YW5kbHVuZ3NiZXRyYWcgUnVuZHVtLVNjaHV0elxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwdC0xMCBwYi00IHRleHQtcmlnaHQgYWxpZ24tYm90dG9tIHNtOnB0LTQgc206dGV4dC1sZWZ0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSB7eyBnZXRMb2NhbGVQcmljZShwcm9kdWN0RGF0YS5jb252ZXJzaW9uX2Ftb3VudF9pbnN1cmFuY2UpIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz1cInJlbGF0aXZlIGJvcmRlci1iLTIgYm9yZGVyLWJsYWNrXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiaGlkZGVuIHctMS8yIHNtOnRhYmxlLWNlbGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJmb250LWJvbGRcIj5VbXdhbmRsdW5nc2JldHJhZyBTZXJ2aWNlLVBha2V0PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicHQtMTAgcGItNCBzbTpwdC00XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjAsMDAg4oKsPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYWJzb2x1dGUgdG9wLTAgbGVmdC0wIHJpZ2h0LTAgZmxleCBzbTpoaWRkZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJwdC0yIG14LWF1dG8gZm9udC1ib2xkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbXdhbmRsdW5nc2JldHJhZyBTZXJ2aWNlIFBha2V0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInB0LTEwIHBiLTQgdGV4dC1yaWdodCBhbGlnbi1ib3R0b20gc206cHQtNCBzbTp0ZXh0LWxlZnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+LSB7eyBnZXRMb2NhbGVQcmljZShwcm9kdWN0RGF0YS5zZXJ2aWNlKSB9fTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4gLS0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDx0clxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYtaWY9XCJmb3JtZGF0YS5zYWxhcnkuZ3JhbnRfcGVyY2VudGFnZSA+IDBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicmVsYXRpdmUgYm9yZGVyLWItMiBib3JkZXItYmxhY2tcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImhpZGRlbiB3LTEvMiBzbTp0YWJsZS1jZWxsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiZm9udC1ib2xkXCI+QXJiZWl0Z2ViZXItWnVzY2h1c3M8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwdC0xMCBwYi00IHNtOnB0LTRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+MCwwMCDigqw8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJhYnNvbHV0ZSB0b3AtMCBsZWZ0LTAgcmlnaHQtMCBmbGV4IHNtOmhpZGRlblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInB0LTIgbXgtYXV0byBmb250LWJvbGRcIj5BcmJlaXRnZWJlci1adXNjaHVzczwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInB0LTEwIHBiLTQgdGV4dC1yaWdodCBhbGlnbi1ib3R0b20gc206cHQtNCBzbTp0ZXh0LWxlZnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+KyB7eyBnZXRMb2NhbGVQcmljZShwcm9kdWN0RGF0YS5ncmFudCkgfX08L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9XCJyZWxhdGl2ZSBib3JkZXItYi0yIGJvcmRlci1ibGFja1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImhpZGRlbiB3LTEvMiBzbTp0YWJsZS1jZWxsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiZm9udC1ib2xkXCI+R2VsZHdlcnRlciBWb3J0ZWlsICgwLDI1JSBSZWdlbCk8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwdC0xMCBwYi00IHNtOnB0LTRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+MCwwMCDigqw8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJhYnNvbHV0ZSB0b3AtMCBsZWZ0LTAgcmlnaHQtMCBmbGV4IHNtOmhpZGRlblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInB0LTIgbXgtYXV0byBmb250LWJvbGRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdlbGR3ZXJ0ZXIgVm9ydGVpbCAoMCwyNSUgUmVnZWwpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInB0LTEwIHBiLTQgdGV4dC1yaWdodCBhbGlnbi1ib3R0b20gc206cHQtNCBzbTp0ZXh0LWxlZnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+KyB7eyBnZXRMb2NhbGVQcmljZShwcm9kdWN0RGF0YS5wZWN1bmlhcnlfYWR2YW50YWdlKSB9fTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz1cInJlbGF0aXZlIGJvcmRlci1iLTQgYm9yZGVyLWJsYWNrXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiaGlkZGVuIHctMS8yIHNtOnRhYmxlLWNlbGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJmb250LWJvbGRcIj5WZXJzdGV1ZXJ1bmcgQW5mYWhydHNraWxvbWV0ZXI8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwdC0xMCBwYi00IHNtOnB0LTRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+MCwwMCDigqw8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJhYnNvbHV0ZSB0b3AtMCBsZWZ0LTAgcmlnaHQtMCBmbGV4IHNtOmhpZGRlblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInB0LTIgbXgtYXV0byBmb250LWJvbGRcIj5WZXJzdGV1ZXJ1bmcgQW5mYWhydHNraWxvbWV0ZXI8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwdC0xMCBwYi00IHRleHQtcmlnaHQgYWxpZ24tYm90dG9tIHNtOnB0LTQgc206dGV4dC1sZWZ0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPisge3sgZ2V0TG9jYWxlUHJpY2UocHJvZHVjdERhdGEudHJhdmVsX2Nvc3RzKSB9fTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4gLS0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9XCJyZWxhdGl2ZSBib3JkZXItYi0yIGJvcmRlci1ibGFja1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImhpZGRlbiB3LTEvMiBzbTp0YWJsZS1jZWxsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiZm9udC1ib2xkXCI+QmVyZWNobnVuZ3NncnVuZGxhZ2U8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwdC0xMCBwYi00IHNtOnB0LTRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+e3sgZ2V0TG9jYWxlUHJpY2UoZm9ybWRhdGEuc2FsYXJ5Lmdyb3NzbW9udGhseXNhbGFyeSkgfX08L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJhYnNvbHV0ZSB0b3AtMCBsZWZ0LTAgcmlnaHQtMCBmbGV4IHNtOmhpZGRlblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInB0LTIgbXgtYXV0byBmb250LWJvbGRcIj5CZXJlY2hudW5nc2dydW5kbGFnZTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInB0LTEwIHBiLTQgdGV4dC1yaWdodCBhbGlnbi1ib3R0b20gc206cHQtNCBzbTp0ZXh0LWxlZnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBnZXRMb2NhbGVQcmljZShwcm9kdWN0RGF0YS5jYWxjdWxhdGlvbl9iYXNlKSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9XCJyZWxhdGl2ZSBib3JkZXItYi0yIGJvcmRlci1ibGFja1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImhpZGRlbiB3LTEvMiBzbTp0YWJsZS1jZWxsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiZm9udC1ib2xkXCI+U3RldWVybiBnZXNhbXQ8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwdC0xMCBwYi00IHNtOnB0LTRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+LSB7eyBnZXRMb2NhbGVQcmljZShwcm9kdWN0RGV0YWlscy50YXhfc3VtLmdyb3NzKSB9fTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImFic29sdXRlIHRvcC0wIGxlZnQtMCByaWdodC0wIGZsZXggc206aGlkZGVuXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwicHQtMiBteC1hdXRvIGZvbnQtYm9sZFwiPlN0ZXVlcm4gZ2VzYW10PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicHQtMTAgcGItNCB0ZXh0LXJpZ2h0IGFsaWduLWJvdHRvbSBzbTpwdC00IHNtOnRleHQtbGVmdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD4tIHt7IGdldExvY2FsZVByaWNlKHByb2R1Y3REZXRhaWxzLnRheF9zdW0ubmV0KSB9fTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz1cInJlbGF0aXZlIGJvcmRlci1iLTIgYm9yZGVyLWJsYWNrXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiaGlkZGVuIHctMS8yIHNtOnRhYmxlLWNlbGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJmb250LWJvbGRcIj5Tb3ppYWxhYmdhYmVuIGdlc2FtdDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInB0LTEwIHBiLTQgc206cHQtNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0TG9jYWxlUHJpY2UoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2R1Y3REZXRhaWxzLnNvY2lhbF9jb250cmlidXRpb25zX3RvdGFsLmdyb3NzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImFic29sdXRlIHRvcC0wIGxlZnQtMCByaWdodC0wIGZsZXggc206aGlkZGVuXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwicHQtMiBteC1hdXRvIGZvbnQtYm9sZFwiPlNvemlhbGFiZ2FiZW4gZ2VzYW10PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicHQtMTAgcGItNCB0ZXh0LXJpZ2h0IGFsaWduLWJvdHRvbSBzbTpwdC00IHNtOnRleHQtbGVmdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0TG9jYWxlUHJpY2UoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2R1Y3REZXRhaWxzLnNvY2lhbF9jb250cmlidXRpb25zX3RvdGFsLm5ldCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZSB2LWZvcj1cIm5ldF9hbW91bnQgaW4gbmV0X2Ftb3VudHNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHIgOmtleT1cIm5ldF9hbW91bnQuaW5kZXhcIiBjbGFzcz1cInJlbGF0aXZlIGJvcmRlci1iLTIgYm9yZGVyLWJsYWNrXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImhpZGRlbiB3LTEvMiBzbTp0YWJsZS1jZWxsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImZvbnQtYm9sZFwiPnt7IG5ldF9hbW91bnQubGFiZWwgfX08L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInB0LTEwIHBiLTQgc206cHQtNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+MCwwMCDigqw8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImFic29sdXRlIHRvcC0wIGxlZnQtMCByaWdodC0wIGZsZXggc206aGlkZGVuXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInB0LTIgbXgtYXV0byBmb250LWJvbGRcIj57eyBuZXRfYW1vdW50LmxhYmVsIH19PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwdC0xMCBwYi00IHRleHQtcmlnaHQgYWxpZ24tYm90dG9tIHNtOnB0LTQgc206dGV4dC1sZWZ0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD57eyBuZXRfYW1vdW50LnRleHQgfX08L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGVtcGxhdGU+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPHRyIGNsYXNzPVwicmVsYXRpdmUgYm9yZGVyLWItMiBib3JkZXItYmxhY2tcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJoaWRkZW4gdy0xLzIgc206dGFibGUtY2VsbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImZvbnQtYm9sZFwiPkdlbGR3ZXJ0ZXIgVm9ydGVpbCAoMCwyNSUgUmVnZWwpPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicHQtMTAgcGItNCBzbTpwdC00XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPi0gMCwwMCDigqw8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJhYnNvbHV0ZSB0b3AtMCBsZWZ0LTAgcmlnaHQtMCBmbGV4IHNtOmhpZGRlblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInB0LTIgbXgtYXV0byBmb250LWJvbGRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdlbGR3ZXJ0ZXIgVm9ydGVpbCAoMCwyNSUgUmVnZWwpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInB0LTEwIHBiLTQgdGV4dC1yaWdodCBhbGlnbi1ib3R0b20gc206cHQtNCBzbTp0ZXh0LWxlZnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBnZXRMb2NhbGVQcmljZShwcm9kdWN0RGF0YS5wZWN1bmlhcnlfYWR2YW50YWdlKSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9XCJyZWxhdGl2ZSBib3JkZXItYi00IGJvcmRlci1ibGFja1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImhpZGRlbiB3LTEvMiBzbTp0YWJsZS1jZWxsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiZm9udC1ib2xkXCI+VmVyc3RldWVydW5nIEFuZmFocnRza2lsb21ldGVyPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicHQtMTAgcGItNCBzbTpwdC00XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjAsMDAg4oKsPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYWJzb2x1dGUgdG9wLTAgbGVmdC0wIHJpZ2h0LTAgZmxleCBzbTpoaWRkZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJwdC0yIG14LWF1dG8gZm9udC1ib2xkXCI+VmVyc3RldWVydW5nIEFuZmFocnRza2lsb21ldGVyPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicHQtMTAgcGItNCB0ZXh0LXJpZ2h0IGFsaWduLWJvdHRvbSBzbTpwdC00IHNtOnRleHQtbGVmdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGdldExvY2FsZVByaWNlKHByb2R1Y3REYXRhLnRyYXZlbF9jb3N0cykgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RyPiAtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz1cInJlbGF0aXZlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiaGlkZGVuIHctMS8yIHNtOnRhYmxlLWNlbGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJmb250LWJvbGRcIj5OZXR0b21vbmF0c2dlaGFsdDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInB0LTEwIHBiLTQgc206cHQtNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGdldExvY2FsZVByaWNlKHByb2R1Y3REZXRhaWxzLnNhbGFyeS5ncm9zcykgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYWJzb2x1dGUgdG9wLTAgbGVmdC0wIHJpZ2h0LTAgZmxleCBzbTpoaWRkZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJwdC0yIG14LWF1dG8gZm9udC1ib2xkXCI+TmV0dG9tb25hdHNnZWhhbHQ8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwdC0xMCBwYi00IHRleHQtcmlnaHQgYWxpZ24tYm90dG9tIHNtOnB0LTQgc206dGV4dC1sZWZ0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZ2V0TG9jYWxlUHJpY2UocHJvZHVjdERldGFpbHMuc2FsYXJ5Lm5ldCkgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PlxuICAgICAgICAgICAgICAgIDwvdGFibGU+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBweS00IHRleHQtY2VudGVyIHRleHQtd2hpdGUgYmctYmxhY2tcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+RGlmZmVyZW56IE5ldHRvbW9uYXRzZ2VoYWx0ID0gSW5kaXZpZHVlbGxlIE51dHp1bmdzcmF0ZTo8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC0yeGwgZm9udC1ib2xkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBnZXRMb2NhbGVQcmljZShwcm9kdWN0RGF0YS5sZWFzaW5nX25ldCkgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwicHktNCBwdC0xNiB0ZXh0LTJ4bCBmb250LXNlbWlib2xkXCI+XG4gICAgICAgICAgICAgICAgICAgIFNvIGVycmVjaG5ldCBzaWNoIGRpZSBFcnNwYXJuaXMgenVtIFByaXZhdGthdWY6XG4gICAgICAgICAgICAgICAgPC9oMj5cblxuICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz1cInctZnVsbCB0ZXh0LWxnIHRhYmxlLWZpeGVkXCI+XG4gICAgICAgICAgICAgICAgICAgIDx0aGVhZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz1cInRleHQtbGVmdCBib3JkZXItYi00IGJvcmRlci1ibGFja1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cImhpZGRlbiB3LTEvMiBzbTp0YWJsZS1jZWxsXCI+PC90aD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+UHJpdmF0a2F1ZiBtaXQgU2NodXR6PC90aD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJ0YWJsZS1jZWxsIHctMS8zIHNtOmhpZGRlblwiPjwvdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwicHgtMSB0ZXh0LXhzIHRleHQtcmlnaHQgc206dGV4dC1sZWZ0IHNtOnRleHQtbGdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJmb250LW5vcm1hbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZyBjbGFzcz1cInRleHQtbGdcIj5taXQgUy1QZWRlbGVjPC9zdHJvbmc+PGJyIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmtsLiBSdW5kdW0tU2NodXR6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgPC90aGVhZD5cbiAgICAgICAgICAgICAgICAgICAgPHRib2R5PlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPVwicmVsYXRpdmUgYm9yZGVyLWItMiBib3JkZXItYmxhY2tcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJoaWRkZW4gdy0xLzIgc206dGFibGUtY2VsbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImZvbnQtYm9sZFwiPnBlZGVsZWM8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwdC0xMCBwYi00IHNtOnB0LTRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBnZXRMb2NhbGVQcmljZShmb3JtZGF0YS5wcm9kdWN0cy5wcmljZSkgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYWJzb2x1dGUgdG9wLTAgbGVmdC0wIHJpZ2h0LTAgZmxleCBzbTpoaWRkZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJwdC0yIG14LWF1dG8gZm9udC1ib2xkXCI+cGVkZWxlYzwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInB0LTEwIHBiLTQgdGV4dC1yaWdodCBhbGlnbi1ib3R0b20gc206cHQtNCBzbTp0ZXh0LWxlZnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoe3sgZm9ybWRhdGEuc2FsYXJ5LmR1cmF0aW9uIH19IE1vbmF0ZSB4XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBnZXRMb2NhbGVQcmljZShwcm9kdWN0RGF0YS5sZWFzaW5nX25ldCkgfX0pID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGdldExvY2FsZVByaWNlKHByb2R1Y3REYXRhLmxlYXNpbmdfbmV0X3RvdGFsKSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9XCJyZWxhdGl2ZSBib3JkZXItYi0yIGJvcmRlci1ibGFja1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImhpZGRlbiB3LTEvMiBzbTp0YWJsZS1jZWxsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiZm9udC1ib2xkXCI+enpnbC4gUnVuZHVtLVNjaHV0eiAoR2VoYWx0c3Vtd2FuZGx1bmcpPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicHQtMTAgcGItNCBzbTpwdC00XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZ2V0TG9jYWxlUHJpY2UocHJvZHVjdERhdGEuZ2VuZXJhbF9pbnN1cmFuY2UpIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImFic29sdXRlIHRvcC0wIGxlZnQtMCByaWdodC0wIGZsZXggc206aGlkZGVuXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwicHQtMiBteC1hdXRvIGZvbnQtYm9sZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgenpnbC4gUnVuZHVtLVNjaHV0eiAoR2VoYWx0c3Vtd2FuZGx1bmcpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInB0LTEwIHBiLTQgdGV4dC1yaWdodCBhbGlnbi1ib3R0b20gc206cHQtNCBzbTp0ZXh0LWxlZnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+aW5rbHVzaXZlPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdi1pZj1cInByb2R1Y3REYXRhLmdlbmVyYWxfc2VydmljZV9jb3N0cyA+IDBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicmVsYXRpdmUgYm9yZGVyLWItMiBib3JkZXItYmxhY2tcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImhpZGRlbiB3LTEvMiBzbTp0YWJsZS1jZWxsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiZm9udC1ib2xkXCI+enpnbC4gU2VydmljZTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInB0LTEwIHBiLTQgc206cHQtNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGdldExvY2FsZVByaWNlKHByb2R1Y3REYXRhLmdlbmVyYWxfc2VydmljZV9jb3N0cykgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYWJzb2x1dGUgdG9wLTAgbGVmdC0wIHJpZ2h0LTAgZmxleCBzbTpoaWRkZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJwdC0yIG14LWF1dG8gZm9udC1ib2xkXCI+enpnbC4gU2VydmljZTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInB0LTEwIHBiLTQgdGV4dC1yaWdodCBhbGlnbi1ib3R0b20gc206cHQtNCBzbTp0ZXh0LWxlZnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+aW5rbHVzaXZlPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPVwicmVsYXRpdmUgYm9yZGVyLWItMiBib3JkZXItYmxhY2tcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJoaWRkZW4gdy0xLzIgc206dGFibGUtY2VsbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImZvbnQtYm9sZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXJ3YXJ0ZXRlciBHZWJyYXVjaHRrYXVmcHJlaXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHByb2R1Y3REYXRhLmNhbGN1bGF0aW9uX3Jlc2lkdWFsIH19JVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwdC0xMCBwYi00IHNtOnB0LTRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+e3sgZ2V0TG9jYWxlUHJpY2UoMCkgfX08L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJhYnNvbHV0ZSB0b3AtMCBsZWZ0LTAgcmlnaHQtMCBmbGV4IHNtOmhpZGRlblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInB0LTIgbXgtYXV0byBmb250LWJvbGRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVyd2FydGV0ZXIgR2VicmF1Y2h0a2F1ZnByZWlzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBwcm9kdWN0RGF0YS5jYWxjdWxhdGlvbl9yZXNpZHVhbCB9fSVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicHQtMTAgcGItNCB0ZXh0LXJpZ2h0IGFsaWduLWJvdHRvbSBzbTpwdC00IHNtOnRleHQtbGVmdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGdldExvY2FsZVByaWNlKHByb2R1Y3REYXRhLmdlbmVyYWxfcmVzdCkgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PlxuICAgICAgICAgICAgICAgIDwvdGFibGU+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgcHktNCB0ZXh0LWNlbnRlciB0ZXh0LXdoaXRlIGJnLWJsYWNrXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPkJhcmthdWYgbWludXMgUy1QZWRlbGVjID0gRXJzcGFybmlzIHZvbjo8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC0yeGwgZm9udC1ib2xkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBnZXRMb2NhbGVQcmljZShwcm9kdWN0RGF0YS5zYXZpbmcpIH19ICh7e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2R1Y3REYXRhLnNhdmluZ19wZXJjZW50YWdlXG4gICAgICAgICAgICAgICAgICAgICAgICB9fSUpXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHQtNCBwYi04XCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICA+QmVyZWNobnVuZyBvaG5lIEdld8OkaHIuIEJpdHRlIHdlbmRlbiBTaWUgc2ljaCBhbiBJaHJlbiBTdGV1ZXJiZXJhdGVyLCB1bVxuICAgICAgICAgICAgICAgICAgICAgICAgZWluZSB2ZXJiaW5kbGljaGUgS2Fsa3VsYXRpb24genUgZXJoYWx0ZW4uPC9zcGFuXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvdGVtcGxhdGU+XG5cbjxzY3JpcHQ+XG5pbXBvcnQgY29uZmlnIGZyb20gJy4uLy4uL2NvbmZpZy9jYWxjdWxhdG9yLmNvbmZpZy5qcydcbmltcG9ydCB7IGRlYm91bmNlIH0gZnJvbSAnbG9kYXNoJ1xuaW1wb3J0IGF4aW9zIGZyb20gJ2F4aW9zJ1xuaW1wb3J0IEluZm9wb3B1cCBmcm9tICcuL2NvbXBvbmVudHMvSW5mb3BvcHVwLnZ1ZSdcblxuZXhwb3J0IGRlZmF1bHQge1xuICAgIGNvbXBvbmVudHM6IHsgSW5mb3BvcHVwIH0sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgdXJsOiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICBkZWZhdWx0OiAnJyxcbiAgICAgICAgfSxcbiAgICAgICAgdG9rZW46IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIGRlZmF1bHQ6ICcnLFxuICAgICAgICB9LFxuICAgICAgICBhdXRoX3Rva2VuOiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICBkZWZhdWx0OiAnJyxcbiAgICAgICAgfSxcbiAgICAgICAgY291cG9uX2NvbmZpZzoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgZGVmYXVsdDogJycsXG4gICAgICAgIH0sXG4gICAgICAgIGR1cmF0aW9uOiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICBkZWZhdWx0OiAnMzYnLFxuICAgICAgICB9LFxuICAgICAgICByZXNpZHVhbDoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgZGVmYXVsdDogJzE4JyxcbiAgICAgICAgfSxcbiAgICAgICAgd2l0aF9zb2NpYWw6IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIGRlZmF1bHQ6ICcxJyxcbiAgICAgICAgfSxcbiAgICAgICAgYWxsX3JvdW5kX3Byb3RlY3Rpb246IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIGRlZmF1bHQ6ICczNicsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGN1bGF0b3JfY29sb3I6IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIGRlZmF1bHQ6ICcnLFxuICAgICAgICB9LFxuICAgICAgICBlbXBsb3llcl9ncmFudDoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgZGVmYXVsdDogJycsXG4gICAgICAgIH0sXG4gICAgICAgIGNvbG9yX2J1dHRvbjoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgZGVmYXVsdDogJycsXG4gICAgICAgIH0sXG4gICAgICAgIHBvcnRhbDoge1xuICAgICAgICAgICAgdHlwZTogQm9vbGVhbixcbiAgICAgICAgICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgZGF0YSgpIHtcbiAgICAgICAgY29uc3QgZm9ybWRhdGEgPSB7XG4gICAgICAgICAgICAuLi5jb25maWcucGVkZWxlYy5kZWZhdWx0cyxcbiAgICAgICAgICAgIHNhbGFyeToge1xuICAgICAgICAgICAgICAgIC4uLmNvbmZpZy5wZWRlbGVjLmRlZmF1bHRzLnNhbGFyeSxcbiAgICAgICAgICAgICAgICBncmFudF9wZXJjZW50YWdlOiBKU09OLnBhcnNlKHRoaXMuZW1wbG95ZXJfZ3JhbnQpLmxlYXNpbmcudmFsdWUsXG4gICAgICAgICAgICAgICAgLy8gZ3JhbnRfZml4dmFsdWU6IHRoaXMuZ3JhbnRfZml4dmFsdWVfdGVzdCxcbiAgICAgICAgICAgICAgICBjYWxjQUdSUzogSlNPTi5wYXJzZSh0aGlzLmVtcGxveWVyX2dyYW50KS5wcm90ZWN0aW9uLnZhbHVlLFxuICAgICAgICAgICAgICAgIGdyYW50X3NlcnZpY2U6IEpTT04ucGFyc2UodGhpcy5lbXBsb3llcl9ncmFudCkucGFja2FnZS52YWx1ZSxcbiAgICAgICAgICAgICAgICB0YXhkZWR1Y3Rpb246IEpTT04ucGFyc2UodGhpcy5lbXBsb3llcl9ncmFudCkudGF4LnZhbHVlLFxuICAgICAgICAgICAgICAgIC8vIHNlcnZpY2U6IE9iamVjdC5rZXlzKEpTT04ucGFyc2UodGhpcy5jb3Vwb24pKVswXSxcbiAgICAgICAgICAgICAgICAvLyBzZXJ2aWNlX3ZhbHVlX25ldDogT2JqZWN0LnZhbHVlcyhKU09OLnBhcnNlKHRoaXMuY291cG9uKSlbMF0udmFsdWVfbmV0LFxuICAgICAgICAgICAgICAgIC8vIHNlcnZpY2VfdmFsdWU6IE9iamVjdC52YWx1ZXMoSlNPTi5wYXJzZSh0aGlzLmNvdXBvbikpWzBdLnZhbHVlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHByb2R1Y3RzOiB7XG4gICAgICAgICAgICAgICAgaWQ6IGNvbmZpZy5wZWRlbGVjLmRlZmF1bHRzLnByb2R1Y3RzLmlkLFxuICAgICAgICAgICAgICAgIHByaWNlOiBjb25maWcucGVkZWxlYy5kZWZhdWx0cy5wcm9kdWN0cy5wcmljZSxcbiAgICAgICAgICAgICAgICBtc3JwOiBjb25maWcucGVkZWxlYy5kZWZhdWx0cy5wcm9kdWN0cy5tc3JwLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdGF4Q2xhc3NlczogWzEsIDIsIDMsIDQsIDUsIDZdLFxuICAgICAgICAgICAgYnV0dG9uVHJpZ2dlcjogZmFsc2UsXG4gICAgICAgICAgICBzaG93U3ZnOiB0cnVlLFxuICAgICAgICAgICAgc2hvd0Vycm9yOiBmYWxzZSxcbiAgICAgICAgICAgIHNob3dGaWVsZHM6IGZhbHNlLFxuICAgICAgICAgICAgc2hvd1RhYmxlOiB0cnVlLFxuICAgICAgICAgICAgaXNsb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgICAgIHZhdDogY29uZmlnLnBlZGVsZWMuYnVkZ2V0LnZhdCxcbiAgICAgICAgICAgIG1heFZhbHVlOiBjb25maWcucGVkZWxlYy5idWRnZXQubWF4ICogY29uZmlnLnBlZGVsZWMuYnVkZ2V0LnZhdCxcbiAgICAgICAgICAgIG1pblZhbHVlOiBjb25maWcucGVkZWxlYy5idWRnZXQubWluICogY29uZmlnLnBlZGVsZWMuYnVkZ2V0LnZhdCxcbiAgICAgICAgICAgIGhlYWx0aE1pblZhbHVlOiBjb25maWcuaGVhbHRoaW5zdXJhbmNlY29udHJpYnV0aW9uLm1pbixcbiAgICAgICAgICAgIGhlYWx0aE1heFZhbHVlOiBjb25maWcuaGVhbHRoaW5zdXJhbmNlY29udHJpYnV0aW9uLm1heCxcbiAgICAgICAgICAgIGNvdXBvbjogY29uZmlnLnBlZGVsZWMuZGVmYXVsdHMuY291cG9uLFxuICAgICAgICAgICAgZm9ybWRhdGEsXG4gICAgICAgICAgICBjYWxjdWxhdG9yVmFsdWVzOiBjb25maWcucGVkZWxlYy5idWRnZXQsXG4gICAgICAgICAgICBhcGlEYXRhOiB7fSxcbiAgICAgICAgICAgIGhlYWRlcjoge1xuICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgICAgICAgJ0NhY2hlLUNvbnRyb2wnOiAnbm8tY2FjaGUnLFxuICAgICAgICAgICAgICAgIEFjY2VwdDogJ2FwcGxpY2F0aW9uL3guY2FsY3VsYXRvci52MStqc29uJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzZW5kRGF0YTogZGVib3VuY2UodGhpcy5zZW5kUmVxdWVzdFRvQ2FsY3VsYXRvciwgMTUwKSxcbiAgICAgICAgICAgIHNlbGVjdGVkQ291cG9uOiBmb3JtZGF0YS5zYWxhcnkuc2VydmljZSxcbiAgICAgICAgfVxuICAgIH0sXG4gICAgYmVmb3JlTW91bnQoKSB7XG4gICAgICAgIGlmIChKU09OLnBhcnNlKHRoaXMuZW1wbG95ZXJfZ3JhbnQpLmZpeGVkICYmIEpTT04ucGFyc2UodGhpcy5lbXBsb3llcl9ncmFudCkuZml4ZWQudmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybWRhdGEuc2FsYXJ5LmdyYW50X2ZpeHZhbHVlID0gSlNPTi5wYXJzZSh0aGlzLmVtcGxveWVyX2dyYW50KS5maXhlZC52YWx1ZVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5mb3JtZGF0YS5zYWxhcnkuZ3JhbnRfZml4dmFsdWUgPSAwXG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuY291cG9uX2NvbmZpZyAmJiB0aGlzLmNvdXBvbl9jb25maWcgIT09ICcnKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1kYXRhLnNhbGFyeS5zZXJ2aWNlID0gT2JqZWN0LmtleXMoSlNPTi5wYXJzZSh0aGlzLmNvdXBvbl9jb25maWcpKVswXVxuICAgICAgICAgICAgOyh0aGlzLmZvcm1kYXRhLnNhbGFyeS5zZXJ2aWNlX3ZhbHVlX25ldCA9IE9iamVjdC52YWx1ZXMoXG4gICAgICAgICAgICAgICAgSlNPTi5wYXJzZSh0aGlzLmNvdXBvbl9jb25maWcpLFxuICAgICAgICAgICAgKVswXS52YWx1ZV9uZXQpLFxuICAgICAgICAgICAgICAgICh0aGlzLmZvcm1kYXRhLnNhbGFyeS5zZXJ2aWNlX3ZhbHVlID0gT2JqZWN0LnZhbHVlcyhcbiAgICAgICAgICAgICAgICAgICAgSlNPTi5wYXJzZSh0aGlzLmNvdXBvbl9jb25maWcpLFxuICAgICAgICAgICAgICAgIClbMF0udmFsdWUpXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkQ291cG9uID0gdGhpcy5mb3JtZGF0YS5zYWxhcnkuc2VydmljZVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5mb3JtZGF0YS5zYWxhcnkuc2VydmljZSA9IDEyXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICBKU09OLnBhcnNlKHRoaXMuZW1wbG95ZXJfZ3JhbnQpLmZpeGVkICYmXG4gICAgICAgICAgICBKU09OLnBhcnNlKHRoaXMuZW1wbG95ZXJfZ3JhbnQpLmZpeGVkLnZhbHVlID4gMFxuICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybWRhdGEuc2FsYXJ5LmdyYW50X3R5cGUgPSAnRVVSJ1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5mb3JtZGF0YS5zYWxhcnkuZ3JhbnRfdHlwZSA9ICdwZXJjZW50J1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgcm9vdENvbG9yID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignOnJvb3QnKVxuICAgICAgICByb290Q29sb3Iuc3R5bGUuc2V0UHJvcGVydHkoXG4gICAgICAgICAgICAnLS1jYWxjQ29sb3JCdXR0b24nLFxuICAgICAgICAgICAgSlNPTi5wYXJzZSh0aGlzLmNvbG9yX2J1dHRvbikuY29sb3IuYmFja2dyb3VuZCxcbiAgICAgICAgKVxuICAgICAgICByb290Q29sb3Iuc3R5bGUuc2V0UHJvcGVydHkoJy0tY2FsY0NvbG9yVGV4dCcsIEpTT04ucGFyc2UodGhpcy5jb2xvcl9idXR0b24pLmNvbG9yLnRleHQpXG4gICAgfSxcbiAgICBjb21wdXRlZDoge1xuICAgICAgICB0b2dnbGVHcmFudFR5cGUoKSB7XG4gICAgICAgICAgICByZXR1cm4gKHRoaXMuZ3JhbnRDb25maWdPYmplY3RzLmZpeGVkICYmIHRoaXMuZ3JhbnRDb25maWdPYmplY3RzLmZpeGVkLnZhbHVlID4gMCkgfHxcbiAgICAgICAgICAgICAgICB0aGlzLmdyYW50Q29uZmlnT2JqZWN0cy5sZWFzaW5nLnZhbHVlID4gMFxuICAgICAgICAgICAgICAgID8gJ2hpZGRlbidcbiAgICAgICAgICAgICAgICA6ICcnXG4gICAgICAgIH0sXG4gICAgICAgIGdyYW50VHlwZSgpIHtcbiAgICAgICAgICAgIHJldHVybiAodGhpcy5ncmFudENvbmZpZ09iamVjdHMuZml4ZWQgJiYgdGhpcy5ncmFudENvbmZpZ09iamVjdHMuZml4ZWQudmFsdWUgPiAwKSB8fFxuICAgICAgICAgICAgICAgIHRoaXMuZm9ybWRhdGEuc2FsYXJ5LmdyYW50X3R5cGUgPT0gJ0VVUidcbiAgICAgICAgICAgICAgICA/ICdFVVInXG4gICAgICAgICAgICAgICAgOiAncGVyY2VudCdcbiAgICAgICAgfSxcbiAgICAgICAgZ3JhbnRQZXJjZW50VHlwZSgpIHtcbiAgICAgICAgICAgIHJldHVybiAodGhpcy5ncmFudENvbmZpZ09iamVjdHMuZml4ZWQgJiYgdGhpcy5ncmFudENvbmZpZ09iamVjdHMuZml4ZWQudmFsdWUgPiAwKSB8fFxuICAgICAgICAgICAgICAgIHRoaXMuZm9ybWRhdGEuc2FsYXJ5LmdyYW50X3R5cGUgPT0gJ0VVUidcbiAgICAgICAgICAgICAgICA/ICdoaWRkZW4nXG4gICAgICAgICAgICAgICAgOiAnJ1xuICAgICAgICB9LFxuICAgICAgICBncmFudEZpeGVkVHlwZSgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdyYW50Q29uZmlnT2JqZWN0cy5sZWFzaW5nLnZhbHVlID4gMCB8fFxuICAgICAgICAgICAgICAgICh0aGlzLmZvcm1kYXRhLnNhbGFyeS5ncmFudF90eXBlID09ICdwZXJjZW50JyAmJlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmdyYW50Q29uZmlnT2JqZWN0cy5maXhlZCAmJlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmdyYW50Q29uZmlnT2JqZWN0cy5maXhlZC52YWx1ZSA9PSAwICYmXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ3JhbnRQZXJjZW50VHlwZSAhPT0gJ2hpZGRlbicpXG4gICAgICAgICAgICAgICAgPyAnaGlkZGVuJ1xuICAgICAgICAgICAgICAgIDogJydcbiAgICAgICAgfSxcbiAgICAgICAgaXNQb3J0YWwoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wb3J0YWwgPT0gdHJ1ZSA/ICdoaWRkZW4nIDogJydcbiAgICAgICAgfSxcbiAgICAgICAgY291cG9uT2JqZWN0cygpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5jb3Vwb25fY29uZmlnIHx8IHRoaXMuY291cG9uX2NvbmZpZyA9PT0gJycpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jb3Vwb25cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UodGhpcy5jb3Vwb25fY29uZmlnKVxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBncmFudENvbmZpZ09iamVjdHMoKSB7XG4gICAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZSh0aGlzLmVtcGxveWVyX2dyYW50KVxuICAgICAgICB9LFxuICAgICAgICBjb3Vwb25zKCkge1xuICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHRoaXMuY291cG9uT2JqZWN0cykubWFwKChba2V5LCBvYmpdKSA9PiAoe1xuICAgICAgICAgICAgICAgIHRleHQ6IG9iai50ZXh0LFxuICAgICAgICAgICAgICAgIHZhbHVlX25ldDogb2JqLnZhbHVlX25ldCxcbiAgICAgICAgICAgICAgICB2YWx1ZToga2V5LFxuICAgICAgICAgICAgfSkpXG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yTWVzc2FnZVBlcmNlbnQoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5mb3JtZGF0YS5zYWxhcnkuZ3JhbnRfcGVyY2VudGFnZSA9PT0gJycgJiZcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1kYXRhLnNhbGFyeS5ncmFudF90eXBlID09ICdwZXJjZW50J1xuICAgICAgICAgICAgICAgID8gJ0JpdHRlIGdlYmVuIFNpZSBlaW5lbiBnw7xsdGlnZW4gV2VydCBhbidcbiAgICAgICAgICAgICAgICA6ICcnXG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yTWVzc2FnZUZpeGVkKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZm9ybWRhdGEuc2FsYXJ5LmdyYW50X2ZpeHZhbHVlID09PSAnJyAmJlxuICAgICAgICAgICAgICAgIHRoaXMuZm9ybWRhdGEuc2FsYXJ5LmdyYW50X3R5cGUgPT0gJ0VVUidcbiAgICAgICAgICAgICAgICA/ICdCaXR0ZSBnZWJlbiBTaWUgZWluZW4gZ8O8bHRpZ2VuIFdlcnQgYW4nXG4gICAgICAgICAgICAgICAgOiAnJ1xuICAgICAgICB9LFxuICAgICAgICBlcnJvck1lc3NhZ2VHcm9zcygpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmZvcm1kYXRhLnNhbGFyeS5ncm9zc21vbnRobHlzYWxhcnkgPT09ICcnXG4gICAgICAgICAgICAgICAgPyAnQml0dGUgZ2ViZW4gU2llIGVpbmVuIGfDvGx0aWdlbiBXZXJ0IGFuJ1xuICAgICAgICAgICAgICAgIDogJydcbiAgICAgICAgfSxcbiAgICAgICAgcHJvZHVjdHMoKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIC8vIGNhbGN1bGF0aW9uOiB0aGlzLnRva2VuLFxuICAgICAgICAgICAgICAgIGF1dGhvcml6YXRpb246IHRoaXMuYXV0aF90b2tlbixcbiAgICAgICAgICAgICAgICBzYWxhcnk6IHtcbiAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5mb3JtZGF0YS5zYWxhcnksXG4gICAgICAgICAgICAgICAgICAgIHJlc2lkdWFsOiB0aGlzLnJlc2lkdWFsLFxuICAgICAgICAgICAgICAgICAgICBkdXJhdGlvbjogdGhpcy5kdXJhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgd2l0aF9zb2NpYWw6IHRoaXMud2l0aF9zb2NpYWwsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBwcm9kdWN0czoge1xuICAgICAgICAgICAgICAgICAgICAxOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAuLi50aGlzLmZvcm1kYXRhLnByb2R1Y3RzLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHNldEdyYW50UGVyY2VudGFnZSgpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm1kYXRhLnNhbGFyeS5ncmFudF9wZXJjZW50YWdlID49IDEwMCkge1xuICAgICAgICAgICAgICAgIHRoaXMuZm9ybWRhdGEuc2FsYXJ5LmdyYW50X3BlcmNlbnRhZ2UgPSAxMDBcbiAgICAgICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgcHJvZHVjdERhdGEoKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuYXBpRGF0YS5wcm9kdWN0c19jYWxjdWxhdGVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHt9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB0aGlzLmFwaURhdGEgJiYgdGhpcy5hcGlEYXRhLnByb2R1Y3RzX2NhbGN1bGF0ZWRcbiAgICAgICAgICAgICAgICA/IE9iamVjdC5rZXlzKHRoaXMuYXBpRGF0YS5wcm9kdWN0c19jYWxjdWxhdGVkW3RoaXMuZm9ybWRhdGEucHJvZHVjdHMuaWRdKVxuICAgICAgICAgICAgICAgICAgICAgIC5tYXAoKHByb2R1Y3RQcmljZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5hcGlEYXRhLnByb2R1Y3RzX2NhbGN1bGF0ZWRbdGhpcy5mb3JtZGF0YS5wcm9kdWN0cy5pZF1bXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9kdWN0UHJpY2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgLnBvcCgpXG4gICAgICAgICAgICAgICAgOiB7fVxuICAgICAgICB9LFxuICAgICAgICBwcm9kdWN0RGV0YWlscygpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2R1Y3REYXRhLmRldGFpbHNcbiAgICAgICAgfSxcbiAgICAgICAgYW1vdW50cygpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2R1Y3REYXRhLmxlYXNpbmcuZ3Jvc3NcbiAgICAgICAgfSxcbiAgICAgICAgbmV0X2Ftb3VudHMoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9kdWN0RGF0YS5sZWFzaW5nLm5ldFxuICAgICAgICB9LFxuICAgICAgICBoYXNQcm9kdWN0RGF0YSgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2R1Y3REYXRhID8gT2JqZWN0LmtleXModGhpcy5wcm9kdWN0RGF0YSkubGVuZ3RoID4gMCA6IGZhbHNlXG4gICAgICAgIH0sXG4gICAgICAgIGlzVmFsaWRhdGVkKCkge1xuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICBwYXJzZUZsb2F0KHRoaXMuZm9ybWRhdGEucHJvZHVjdHMucHJpY2UpICE9PSAwICYmXG4gICAgICAgICAgICAgICAgcGFyc2VGbG9hdCh0aGlzLmZvcm1kYXRhLnByb2R1Y3RzLnByaWNlKSA+IDAgJiZcbiAgICAgICAgICAgICAgICBwYXJzZUZsb2F0KHRoaXMuZm9ybWRhdGEuc2FsYXJ5Lmdyb3NzbW9udGhseXNhbGFyeSkgIT09IDAgJiZcbiAgICAgICAgICAgICAgICBwYXJzZUZsb2F0KHRoaXMuZm9ybWRhdGEuc2FsYXJ5Lmdyb3NzbW9udGhseXNhbGFyeSkgPiAwXG4gICAgICAgICAgICApXG4gICAgICAgIH0sXG4gICAgICAgIGlzQnVkZ2V0QW5kVmFsaWQoKSB7XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIHRoaXMuaXNCdWRnZXQodGhpcy5mb3JtZGF0YS5wcm9kdWN0cy5wcmljZSkgJiZcbiAgICAgICAgICAgICAgICB0aGlzLmlzQnVkZ2V0KHRoaXMuZm9ybWRhdGEuc2FsYXJ5Lmdyb3NzbW9udGhseXNhbGFyeSwgJ2JydXR0bycpICYmXG4gICAgICAgICAgICAgICAgdGhpcy5pc1ZhbGlkYXRlZFxuICAgICAgICAgICAgKVxuICAgICAgICB9LFxuICAgICAgICBidWRnZXRNZXNzYWdlKCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybWRhdGEucHJvZHVjdHMucHJpY2UgPCB0aGlzLm1pblZhbHVlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGBEZXIgYW5nZWdlYmVuZSBQcmVpcyBpc3QgenUgbmllZHJpZy4gRGllc2VyIG11c3MgZ3LDtsOfZXIgc2VpbiBhbHMgJHt0aGlzLmdldExvY2FsZVByaWNlKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLm1pblZhbHVlLFxuICAgICAgICAgICAgICAgICl9YFxuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmZvcm1kYXRhLnByb2R1Y3RzLnByaWNlID4gdGhpcy5tYXhWYWx1ZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBgRGVyIGFuZ2VnZWJlbmUgUHJlaXMgaXN0IHp1IGhvY2guIERpZXNlciBtdXNzIG5pZWRyaWdlciBzZWluIGFscyAke3RoaXMuZ2V0TG9jYWxlUHJpY2UoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWF4VmFsdWUsXG4gICAgICAgICAgICAgICAgKX1gXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gJydcbiAgICAgICAgfSxcbiAgICAgICAgcHJpY2VNZXNzYWdlKCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybWRhdGEucHJvZHVjdHMubXNycCA8IHRoaXMubWluVmFsdWUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYERlciBhbmdlZ2ViZW5lIFByZWlzIGlzdCB6dSBuaWVkcmlnLiBEaWVzZXIgbXVzcyBncsO2w59lciBzZWluIGFscyAke3RoaXMuZ2V0TG9jYWxlUHJpY2UoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWluVmFsdWUsXG4gICAgICAgICAgICAgICAgKX1gXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZm9ybWRhdGEucHJvZHVjdHMubXNycCA+IHRoaXMubWF4VmFsdWUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYERlciBhbmdlZ2ViZW5lIFByZWlzIGlzdCB6dSBob2NoLiBEaWVzZXIgbXVzcyBuaWVkcmlnZXIgc2VpbiBhbHMgJHt0aGlzLmdldExvY2FsZVByaWNlKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLm1heFZhbHVlLFxuICAgICAgICAgICAgICAgICl9YFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuICcnXG4gICAgICAgIH0sXG4gICAgICAgIHN1Y2Nlc3NUZXh0KCkge1xuICAgICAgICAgICAgbGV0IGdldExlYXNpbmdSYXRlID1cbiAgICAgICAgICAgICAgICAodGhpcy5ncmFudENvbmZpZ09iamVjdHMubGVhc2luZyAmJiB0aGlzLmdyYW50Q29uZmlnT2JqZWN0cy5sZWFzaW5nLnZhbHVlID4gMCkgfHxcbiAgICAgICAgICAgICAgICAodGhpcy5ncmFudENvbmZpZ09iamVjdHMuZml4ZWQgJiYgdGhpcy5ncmFudENvbmZpZ09iamVjdHMuZml4ZWQudmFsdWUgPiAwKVxuICAgICAgICAgICAgICAgICAgICA/ICcxJ1xuICAgICAgICAgICAgICAgICAgICA6ICcwJ1xuICAgICAgICAgICAgbGV0IGdldEdyYW50U2VydmljZSA9XG4gICAgICAgICAgICAgICAgdGhpcy5ncmFudENvbmZpZ09iamVjdHMucGFja2FnZS5kaXNhYmxlZCA9PSB0cnVlICYmXG4gICAgICAgICAgICAgICAgdGhpcy5ncmFudENvbmZpZ09iamVjdHMucGFja2FnZS52YWx1ZSA+IDBcbiAgICAgICAgICAgICAgICAgICAgPyAnMSdcbiAgICAgICAgICAgICAgICAgICAgOiAnMCdcbiAgICAgICAgICAgIGxldCBnZXRHcmFudFJhdGUgPVxuICAgICAgICAgICAgICAgIHRoaXMuZ3JhbnRDb25maWdPYmplY3RzLnByb3RlY3Rpb24uZGlzYWJsZWQgPT0gdHJ1ZSAmJlxuICAgICAgICAgICAgICAgIHRoaXMuZ3JhbnRDb25maWdPYmplY3RzLnByb3RlY3Rpb24udmFsdWUgPiAwXG4gICAgICAgICAgICAgICAgICAgID8gJzEnXG4gICAgICAgICAgICAgICAgICAgIDogJzAnXG4gICAgICAgICAgICBsZXQgYWdNZXNzYWdlQXJyYXkgPSBbZ2V0R3JhbnRSYXRlLCBnZXRMZWFzaW5nUmF0ZSwgZ2V0R3JhbnRTZXJ2aWNlXVxuXG4gICAgICAgICAgICBzd2l0Y2ggKGFnTWVzc2FnZUFycmF5LmpvaW4oJywnKSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJzAsMCwwJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgICAgY2FzZSAnMSwwLDAnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ0dsw7xja3d1bnNjaCEgRGVpbiBBcmJlaXRnZWJlciA8c3Ryb25nPnNjaGVua3QgZGlyIGRlbiBSdW5kdW0tU2NodXR6Ljwvc3Ryb25nPiBEaWUgU3VtbWUgZGFmw7xyIHdpcmQgdm9uIGRlaW5lciBOdXR6dW5nc3JhdGUgYXV0b21hdGlzY2ggYWJnZXpvZ2VuLidcbiAgICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICBjYXNlICcwLDEsMCc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAnR2zDvGNrd3Vuc2NoISBEZWluIEFyYmVpdGdlYmVyIDxzdHJvbmc+YmV6dXNjaHVzc3QgZGllIExlYXNpbmdyYXRlLjwvc3Ryb25nPiBEZWluZSBOdXR6dW5nc3JhdGUgdmVycmluZ2VydCBzaWNoIGluIEjDtmhlIGRlcyBadXNjaHVzc2VzLidcbiAgICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICBjYXNlICcxLDEsMCc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAnR2zDvGNrd3Vuc2NoISBEZWluIEFyYmVpdGdlYmVyIDxzdHJvbmc+c2NoZW5rdCBkaXIgZGVuIFJ1bmR1bS1TY2h1dHogdW5kIGJlenVzY2h1c3N0IGRpZSBMZWFzaW5ncmF0ZS48L3N0cm9uZz4nXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgICAgY2FzZSAnMSwwLDEnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ0dsw7xja3d1bnNjaCEgRGVpbiBBcmJlaXRnZWJlciA8c3Ryb25nPnNjaGVua3QgZGlyIGRlbiBSdW5kdW0tU2NodXR6IHVuZCBkZW4gU2VydmljZSBHdXRzY2hlaW4uPC9zdHJvbmc+IERpZSBTdW1tZSBkYWbDvHIgd2lyZCB2b24gZGVpbmVyIE51dHp1bmdzcmF0ZSBhdXRvbWF0aXNjaCBhYmdlem9nZW4uJ1xuICAgICAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICAgIGNhc2UgJzAsMSwxJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdHbMO8Y2t3dW5zY2ghIERlaW4gQXJiZWl0Z2ViZXIgPHN0cm9uZz5zY2hlbmt0IGRpciBkZW4gU2VydmljZSBHdXRzY2hlaW4gdW5kIGJlenVzY2h1c3N0IGRpZSBMZWFzaW5ncmF0ZS48L3N0cm9uZz4nXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgICAgY2FzZSAnMCwwLDEnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ0dsw7xja3d1bnNjaCEgRGVpbiBBcmJlaXRnZWJlciA8c3Ryb25nPnNjaGVua3QgZGlyIGRlbiBTZXJ2aWNlIEd1dHNjaGVpbi48L3N0cm9uZz4gRGllIFN1bW1lIGRhZsO8ciB3aXJkIHZvbiBkZWluZXIgTnV0enVuZ3NyYXRlIGF1dG9tYXRpc2NoIGFiZ2V6b2dlbi4nXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgICAgY2FzZSAnMSwxLDEnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ0dsw7xja3d1bnNjaCEgRGVpbiBBcmJlaXRnZWJlciA8c3Ryb25nPnNjaGVua3QgZGlyIGRlbiBSdW5kdW0tU2NodXR6LCBkZW4gU2VydmljZSBHdXRzY2hlaW4gdW5kIGJlenVzY2h1c3N0IGRpZSBMZWFzaW5ncmF0ZS48L3N0cm9uZz4nXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBjcmVhdGVkKCkge1xuICAgICAgICB0aGlzLmZvcm1kYXRhLnNhbGFyeS5oZWFsdGhpbnN1cmFuY2Vjb250cmlidXRpb24gPVxuICAgICAgICAgICAgdGhpcy5mb3JtZGF0YS5zYWxhcnkuaGVhbHRoaW5zdXJhbmNlY29udHJpYnV0aW9uID09IDBcbiAgICAgICAgICAgICAgICA/ICcwLjAnXG4gICAgICAgICAgICAgICAgOiB0aGlzLmZvcm1kYXRhLnNhbGFyeS5oZWFsdGhpbnN1cmFuY2Vjb250cmlidXRpb25cbiAgICB9LFxuICAgIHdhdGNoOiB7XG4gICAgICAgIHNlbGVjdGVkQ291cG9uOiB7XG4gICAgICAgICAgICBoYW5kbGVyKCkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmZvcm1kYXRhLnNhbGFyeS5zZXJ2aWNlID09PSB0aGlzLnNlbGVjdGVkQ291cG9uKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1kYXRhLnNhbGFyeS5zZXJ2aWNlID0gdGhpcy5zZWxlY3RlZENvdXBvblxuICAgICAgICAgICAgICAgIHRoaXMuZm9ybWRhdGEuc2FsYXJ5LnNlcnZpY2VfdmFsdWVfbmV0ID1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb3Vwb25PYmplY3RzW3RoaXMuc2VsZWN0ZWRDb3Vwb25dLnZhbHVlX25ldFxuICAgICAgICAgICAgICAgIHRoaXMuZm9ybWRhdGEuc2FsYXJ5LnNlcnZpY2VfdmFsdWUgPSB0aGlzLmNvdXBvbk9iamVjdHNbdGhpcy5zZWxlY3RlZENvdXBvbl0udmFsdWVcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBpbW1lZGlhdGU6IHRydWUsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBtZXRob2RzOiB7XG4gICAgICAgIHRvZ2dsZUluZm9Qb3B1cCgpIHtcbiAgICAgICAgICAgIHRoaXMuYnV0dG9uVHJpZ2dlciA9ICF0aGlzLmJ1dHRvblRyaWdnZXJcbiAgICAgICAgICAgIHRoaXMuc2hvd1N2ZyA9IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgdG9nZ2xlU3ZnVmlzaWJpbGl0eSgpIHtcbiAgICAgICAgICAgIHRoaXMuc2hvd1N2ZyA9ICF0aGlzLnNob3dTdmdcbiAgICAgICAgfSxcbiAgICAgICAgc2hvd0Z1cnRoZXJGaWVsZHMoKSB7XG4gICAgICAgICAgICB0aGlzLnNob3dGaWVsZHMgPSAhdGhpcy5zaG93RmllbGRzXG4gICAgICAgIH0sXG4gICAgICAgIGlzQnVkZ2V0KHByaWNlLCBmaWVsZCA9ICcnKSB7XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIChmaWVsZCAhPT0gJycgJiYgcGFyc2VGbG9hdChwcmljZSkgPj0gcGFyc2VGbG9hdCh0aGlzLm1pblZhbHVlKSkgfHxcbiAgICAgICAgICAgICAgICAocGFyc2VGbG9hdChwcmljZSkgPj0gcGFyc2VGbG9hdCh0aGlzLm1pblZhbHVlKSAmJlxuICAgICAgICAgICAgICAgICAgICBwYXJzZUZsb2F0KHByaWNlKSA8PSBwYXJzZUZsb2F0KHRoaXMubWF4VmFsdWUpKVxuICAgICAgICAgICAgKVxuICAgICAgICB9LFxuXG4gICAgICAgIHNob3dDYWxjdWxhdGlvbigpIHtcbiAgICAgICAgICAgIHRoaXMuc2hvd1RhYmxlID0gIXRoaXMuc2hvd1RhYmxlXG4gICAgICAgIH0sXG4gICAgICAgIGFzeW5jIHNlbmRSZXF1ZXN0VG9DYWxjdWxhdG9yKCkge1xuICAgICAgICAgICAgdGhpcy5pc2xvYWRpbmcgPSB0cnVlXG5cbiAgICAgICAgICAgIGlmKCB0aGlzLmZvcm1kYXRhLnNhbGFyeS5oZWFsdGhpbnN1cmFuY2Vjb250cmlidXRpb24gPiBjb25maWcuaGVhbHRoaW5zdXJhbmNlY29udHJpYnV0aW9uLm1heCl7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtZGF0YS5zYWxhcnkuaGVhbHRoaW5zdXJhbmNlY29udHJpYnV0aW9uID0gY29uZmlnLmhlYWx0aGluc3VyYW5jZWNvbnRyaWJ1dGlvbi5tYXhcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmKCB0aGlzLmZvcm1kYXRhLnNhbGFyeS5oZWFsdGhpbnN1cmFuY2Vjb250cmlidXRpb24gPCBjb25maWcuaGVhbHRoaW5zdXJhbmNlY29udHJpYnV0aW9uLm1pbil7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtZGF0YS5zYWxhcnkuaGVhbHRoaW5zdXJhbmNlY29udHJpYnV0aW9uID0gY29uZmlnLmhlYWx0aGluc3VyYW5jZWNvbnRyaWJ1dGlvbi5taW5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICFpc05hTih0aGlzLmZvcm1kYXRhLnByb2R1Y3RzLnByaWNlKSAmJlxuICAgICAgICAgICAgICAgIHRoaXMuZm9ybWRhdGEucHJvZHVjdHMucHJpY2UgPj0gdGhpcy5taW5WYWx1ZSAmJlxuICAgICAgICAgICAgICAgIHRoaXMuZm9ybWRhdGEucHJvZHVjdHMucHJpY2UgPD0gdGhpcy5tYXhWYWx1ZSAmJlxuICAgICAgICAgICAgICAgIHRoaXMuZm9ybWRhdGEuc2FsYXJ5Lmdyb3NzbW9udGhseXNhbGFyeSAhPT0gJycgJiZcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1kYXRhLnByb2R1Y3RzLm1zcnAgIT09ICcnICYmXG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtZGF0YS5zYWxhcnkuZ3JhbnRfZml4dmFsdWUgIT09ICcnICYmXG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtZGF0YS5zYWxhcnkuZ3JhbnRfcGVyY2VudGFnZSAhPT0gJydcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIGF3YWl0IGF4aW9zXG4gICAgICAgICAgICAgICAgICAgIC5wb3N0KFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51cmwgKyAnL2FwaS9jYWxjdWxhdGU/d2l0aG91dEhhc2g9MScsXG4gICAgICAgICAgICAgICAgICAgICAgICB7IC4uLnRoaXMucHJvZHVjdHMgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHsgaGVhZGVyczogdGhpcy5oZWFkZXIgfSxcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAudGhlbigoZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zaG93RXJyb3IgPSBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hcGlEYXRhID0gZGF0YS5kYXRhXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIC5jYXRjaCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNob3dFcnJvciA9IHRydWVcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZ2V0TG9jYWxlUHJpY2UocHJpY2UpIHtcbiAgICAgICAgICAgIHJldHVybiBwcmljZSA9PT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgPyAnJ1xuICAgICAgICAgICAgICAgIDogbmV3IEludGwuTnVtYmVyRm9ybWF0KCdkZS1ERScsIHtcbiAgICAgICAgICAgICAgICAgICAgICBzdHlsZTogJ2N1cnJlbmN5JyxcbiAgICAgICAgICAgICAgICAgICAgICBjdXJyZW5jeTogJ0VVUicsXG4gICAgICAgICAgICAgICAgICB9KS5mb3JtYXQocGFyc2VGbG9hdChwcmljZS50b1N0cmluZygpLnNwbGl0KCcsJykuam9pbignLicpKSlcbiAgICAgICAgfSxcbiAgICAgICAgY3VzdG9tZXJIYXNDaGlsZHJlbigpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm1kYXRhLnNhbGFyeS5jaGlsZCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMuZm9ybWRhdGEuc2FsYXJ5LmNoaWxkdGF4ID0gMFxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB0cmFuc2Zvcm1Gb3JtRGF0YShyZXBfcHJlZml4LCBwcmVmaXgpIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybWRhdGEuc2FsYXJ5Lmdyb3NzbW9udGhseXNhbGFyeSA9IHRoaXMuZm9ybWRhdGEuc2FsYXJ5Lmdyb3NzbW9udGhseXNhbGFyeVxuICAgICAgICAgICAgICAgIC5zcGxpdChyZXBfcHJlZml4KVxuICAgICAgICAgICAgICAgIC5qb2luKHByZWZpeClcbiAgICAgICAgICAgIHRoaXMuZm9ybWRhdGEucHJvZHVjdHMucHJpY2UgPSB0aGlzLmZvcm1kYXRhLnByb2R1Y3RzLnByaWNlXG4gICAgICAgICAgICAgICAgLnNwbGl0KHJlcF9wcmVmaXgpXG4gICAgICAgICAgICAgICAgLmpvaW4ocHJlZml4KVxuICAgICAgICB9LFxuICAgIH0sXG4gICAgYXN5bmMgbW91bnRlZCgpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5zZW5kUmVxdWVzdFRvQ2FsY3VsYXRvcigpXG4gICAgfSxcbn1cbjwvc2NyaXB0PlxuXG48c3R5bGUgc2NvcGVkPlxuc2VsZWN0IHtcbiAgICB0ZXh0LWFsaWduLWxhc3Q6IGNlbnRlcjtcbn1cblxubGFiZWwge1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG48L3N0eWxlPlxuIiwiPHRlbXBsYXRlPlxuICAgIDxkaXYgY2xhc3M9XCJ2aXNpYmxlIG1kOmhpZGRlblwiPlxuICAgICAgICA8YWdpbGVcbiAgICAgICAgOmluZmluaXRlPVwidHJ1ZVwiXG4gICAgICAgIDphdXRvcGxheT1cInRydWVcIlxuICAgICAgICA6bmF2QnV0dG9ucz1cImZhbHNlXCJcbiAgICAgICAgOnNwZWVkPVwiMTAwMFwiXG4gICAgICAgIDpjZW50ZXJNb2RlPVwidHJ1ZVwiXG4gICAgICAgIDpvcHRpb25zPVwibXlPcHRpb25zXCJcbiAgICAgICAgOnNsaWRlc1RvU2hvdz1cIjFcIlxuICAgICAgICA6dGltaW5nPVwiJ2Vhc2UtaW4tb3V0J1wiXG4gICAgICAgIDpkb3RzPVwiZmFsc2VcIlxuICAgID5cbiAgICBcbiAgICAgICAgPGRpdiB2LWZvcj1cIihjYXB0aW9uLCBpbmRleCkgaW4gY2FwdGlvbnNcIiA6a2V5PVwiaW5kZXhcIiBjbGFzcz1cImZsZXggZmxleC1jb2wgICBoLWZ1bGwgcm91bmRlZC0zeGwgIFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgcHktNCB4bDpweS0wXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBiLTRcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlbGF0aXZlIGZsZXgganVzdGlmeS1jZW50ZXIgaXRlbXMtc3RyZXRjaCB3LWZ1bGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCIgb2JqZWN0LWNvbnRhaW4gbGF6eVwiIDpzcmM9XCJjYXB0aW9uLmltYWdlXCI+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyB2LWlmPVwiY2FwdGlvbi5oZWFkZXIgIT0gJydcIiBjbGFzcz1cImZvbnQtYm9sZFwiPnt7Y2FwdGlvbi5oZWFkZXJ9fTwvaDM+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiB2LWh0bWw9XCJjYXB0aW9uLmJvZHl0ZXh0XCIgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAgY2xhc3M9XCJmbGV4IGp1c3RpZnktZXZlbmx5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgdi1pZj1cImNhcHRpb24uY3RhX2J1dHRvbl90ZXh0ICE9ICcnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSAgdi1pZj1cImNhcHRpb24ucmVuZGVyX2J1dHRvbl9saW5rXCIgIDpocmVmPVwiY2FwdGlvbi5yZW5kZXJfYnV0dG9uX2xpbmtcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIHYtaWY9XCJjYXB0aW9uLmN0YV9idXR0b25fdGV4dCAhPSAnJyAmJiBjYXB0aW9uLmN0YV9idXR0b25fdGV4dCAhPSAnJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Y2xhc3M9XCJidXR0b25DbGFzc2VzKGNhcHRpb24uY3RhX2J1dHRvbl90eXBlKSArICcgJyArIGNhcHRpb24uY2FsbF90b19hY3Rpb25fYnV0dG9uX3NpemVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCIgcHktMiBweC01IHVwcGVyY2FzZSByb3VuZGVkLWZ1bGwgbXgtYXV0byBpbmxpbmUtYmxvY2sgbXQtNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7Y2FwdGlvbi5jdGFfYnV0dG9uX3RleHR9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gOmNsYXNzPVwiYnV0dG9uQ2xhc3NlcyhjYXB0aW9uLmN0YV9idXR0b25fdHlwZSkgKyAnICcgKyBjYXB0aW9uLmNhbGxfdG9fYWN0aW9uX2J1dHRvbl9zaXplXCIgIGNsYXNzPVwicHktMiBweC01IHVwcGVyY2FzZSByb3VuZGVkLWZ1bGwgbXgtYXV0byBpbmxpbmUtYmxvY2sgbXQtNFwiIHYtZWxzZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tjYXB0aW9uLmN0YV9idXR0b25fdGV4dH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiB2LWlmPVwiY2FwdGlvbi5jdGFfYnV0dG9uX3RleHRfMiAhPSAnJ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgdi1pZj1cImNhcHRpb24ucmVuZGVyX2J1dHRvbl9saW5rXzJcIiA6aHJlZj1cImNhcHRpb24ucmVuZGVyX2J1dHRvbl9saW5rXzJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiA6Y2xhc3M9XCJidXR0b25DbGFzc2VzKGNhcHRpb24uY3RhX2J1dHRvbl90eXBlXzIpICsgJyAnICsgY2FwdGlvbi5jYWxsX3RvX2FjdGlvbl9idXR0b25fc2l6ZV8yIFwiIGNsYXNzPVwidXBwZXJjYXNlIHJvdW5kZWQtZnVsbCBteC1hdXRvIGlubGluZS1ibG9jayBtdC00XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7Y2FwdGlvbi5jdGFfYnV0dG9uX3RleHRfMn19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIDpjbGFzcz1cImJ1dHRvbkNsYXNzZXMoY2FwdGlvbi5jdGFfYnV0dG9uX3R5cGVfMikgKyAnICcgKyBjYXB0aW9uLmNhbGxfdG9fYWN0aW9uX2J1dHRvbl9zaXplXzJcIiBjbGFzcz1cIiB1cHBlcmNhc2Ugcm91bmRlZC1mdWxsIG14LWF1dG8gaW5saW5lLWJsb2NrIG10LTRcIiB2LWVsc2U+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7Y2FwdGlvbi5jdGFfYnV0dG9uX3RleHRfMn19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiBcbiAgICAgICBcbiAgICA8L2FnaWxlPlxuXG4gICAgPC9kaXY+XG4gICBcbjwvdGVtcGxhdGU+XG5cbjxzY3JpcHQ+XG5pbXBvcnQgeyBWdWVBZ2lsZSB9IGZyb20gJ3Z1ZS1hZ2lsZSdcblxuZXhwb3J0IGRlZmF1bHQge1xuICAgIG5hbWU6ICdUZXh0SW1hZ2VDYXJvdXNlbCcsXG4gICAgY29tcG9uZW50czoge1xuICAgICAgICBhZ2lsZTogVnVlQWdpbGUsXG4gICAgfSxcbiAgICBkYXRhKCl7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBteU9wdGlvbnM6IHtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgcmVjb3Jkczoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgZGVmYXVsdDogJycsXG4gICAgICAgIH0sIFxuICAgICAgICBcbiAgICB9LFxuICAgIGNvbXB1dGVkOiB7XG4gICAgICAgIGNhcHRpb25zKCkge1xuICAgICAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UodGhpcy5yZWNvcmRzKVxuICAgICAgICB9LFxuICAgICBcbiAgICB9LFxuICAgIG1ldGhvZHM6IHtcbiAgICAgICAgYnV0dG9uQ2xhc3NlcyhidXR0b25UeXBlKSB7XG4gICAgICAgICAgICBpZihidXR0b25UeXBlID09ICdZZWxsb3cnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdiZy1wcmltYXJ5IHRleHQtYmxhY2sgaG92ZXI6YmctYmxhY2sgcHgtNCBob3Zlcjp0ZXh0LXdoaXRlJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYoYnV0dG9uVHlwZSA9PSAnUHJpbWFyeURhcmsnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdiZy1ibGFjayB0ZXh0LXdoaXRlIGhvdmVyOmJnLXByaW1hcnkgaG92ZXI6dGV4dC1ibGFjaydcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmKGJ1dHRvblR5cGUgPT0gJ1NlY29uZGFyeUxpZ2h0Jykge1xuICAgICAgICAgICAgICAgIHJldHVybiAnYmctb3BhY2l0eS0wIHRleHQtYmxhY2sgaG92ZXI6YmctYmxhY2sgaG92ZXI6dGV4dC13aGl0ZSBib3JkZXItMiBib3JkZXItYmxhY2snXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHJldHVybiAnYmctcHJpbWFyeSB0ZXh0LWJsYWNrIGhvdmVyOmJnLWJsYWNrIHB4LTQgaG92ZXI6dGV4dC13aGl0ZSdcbiAgICB9XG4gICAgfVxufVxuPC9zY3JpcHQ+XG5cbjxzdHlsZSBzY29wZWQ+XG4uc2xpZGUge1xuICAgIC8qIG1heC1oZWlnaHQ6IDIwMHB4OyAqL1xuICAgIHdpZHRoOiBhdXRvO1xufVxuXG46Z2xvYmFsKC5jYXJvdXNlbC1jdXN0b20gLmFnaWxlX19kb3QgYnV0dG9uKXtcbiAgICB3aWR0aDogMTBweDtcbiAgICBoZWlnaHQ6IDEwcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjpibGFjaztcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgbWFyZ2luOiAxMHB4IDRweCAwIDJweDtcbn1cblxuOmdsb2JhbCguY2Fyb3VzZWwtY3VzdG9tIC5hZ2lsZV9fZG90LS1jdXJyZW50IGJ1dHRvbil7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZDQwMDtcbn1cbjpnbG9iYWwoLmNhcm91c2VsLWN1c3RvbSAuYWdpbGVfX2RvdCBidXR0b246aG92ZXIpe1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmU5N2I7XG59XG5cbjwvc3R5bGU+XG5cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==*/