.grid-container{padding-right:1.0625rem;padding-left:1.0625rem;max-width:78.125rem;margin-left:auto;margin-right:auto}@media print,screen and (min-width:40em){.grid-container{padding-right:1.5625rem;padding-left:1.5625rem}}@media screen and (min-width:75em){.grid-container{padding-right:1.875rem;padding-left:1.875rem}}.grid-container.fluid{padding-right:1.0625rem;padding-left:1.0625rem;max-width:100%;margin-left:auto;margin-right:auto}@media print,screen and (min-width:40em){.grid-container.fluid{padding-right:1.5625rem;padding-left:1.5625rem}}@media screen and (min-width:75em){.grid-container.fluid{padding-right:1.875rem;padding-left:1.875rem}}.grid-container.full{padding-right:0;padding-left:0;max-width:100%;margin-left:auto;margin-right:auto}.grid-x{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap}.cell{-ms-flex:0 0 auto;flex:0 0 auto;min-height:0;min-width:0;width:100%}.cell.auto{-ms-flex:1 1 0px;flex:1 1 0px}.cell.shrink{-ms-flex:0 0 auto;flex:0 0 auto}.grid-x>.auto,.grid-x>.shrink{width:auto}.grid-x>.small-1,.grid-x>.small-2,.grid-x>.small-3,.grid-x>.small-4,.grid-x>.small-5,.grid-x>.small-6,.grid-x>.small-7,.grid-x>.small-8,.grid-x>.small-9,.grid-x>.small-10,.grid-x>.small-11,.grid-x>.small-12,.grid-x>.small-full,.grid-x>.small-shrink{-ms-flex-preferred-size:auto;flex-basis:auto}@media print,screen and (min-width:40em){.grid-x>.medium-1,.grid-x>.medium-2,.grid-x>.medium-3,.grid-x>.medium-4,.grid-x>.medium-5,.grid-x>.medium-6,.grid-x>.medium-7,.grid-x>.medium-8,.grid-x>.medium-9,.grid-x>.medium-10,.grid-x>.medium-11,.grid-x>.medium-12,.grid-x>.medium-full,.grid-x>.medium-shrink{-ms-flex-preferred-size:auto;flex-basis:auto}}@media print,screen and (min-width:64em){.grid-x>.large-1,.grid-x>.large-2,.grid-x>.large-3,.grid-x>.large-4,.grid-x>.large-5,.grid-x>.large-6,.grid-x>.large-7,.grid-x>.large-8,.grid-x>.large-9,.grid-x>.large-10,.grid-x>.large-11,.grid-x>.large-12,.grid-x>.large-full,.grid-x>.large-shrink{-ms-flex-preferred-size:auto;flex-basis:auto}}.grid-x>.small-1,.grid-x>.small-2,.grid-x>.small-3,.grid-x>.small-4,.grid-x>.small-5,.grid-x>.small-6,.grid-x>.small-7,.grid-x>.small-8,.grid-x>.small-9,.grid-x>.small-10,.grid-x>.small-11,.grid-x>.small-12{-ms-flex:0 0 auto;flex:0 0 auto}.grid-x>.small-1{width:8.33333%}.grid-x>.small-2{width:16.66667%}.grid-x>.small-3{width:25%}.grid-x>.small-4{width:33.33333%}.grid-x>.small-5{width:41.66667%}.grid-x>.small-6{width:50%}.grid-x>.small-7{width:58.33333%}.grid-x>.small-8{width:66.66667%}.grid-x>.small-9{width:75%}.grid-x>.small-10{width:83.33333%}.grid-x>.small-11{width:91.66667%}.grid-x>.small-12{width:100%}@media print,screen and (min-width:40em){.grid-x>.medium-auto{-ms-flex:1 1 0px;flex:1 1 0px;width:auto}.grid-x>.medium-1,.grid-x>.medium-2,.grid-x>.medium-3,.grid-x>.medium-4,.grid-x>.medium-5,.grid-x>.medium-6,.grid-x>.medium-7,.grid-x>.medium-8,.grid-x>.medium-9,.grid-x>.medium-10,.grid-x>.medium-11,.grid-x>.medium-12,.grid-x>.medium-shrink{-ms-flex:0 0 auto;flex:0 0 auto}.grid-x>.medium-shrink{width:auto}.grid-x>.medium-1{width:8.33333%}.grid-x>.medium-2{width:16.66667%}.grid-x>.medium-3{width:25%}.grid-x>.medium-4{width:33.33333%}.grid-x>.medium-5{width:41.66667%}.grid-x>.medium-6{width:50%}.grid-x>.medium-7{width:58.33333%}.grid-x>.medium-8{width:66.66667%}.grid-x>.medium-9{width:75%}.grid-x>.medium-10{width:83.33333%}.grid-x>.medium-11{width:91.66667%}.grid-x>.medium-12{width:100%}}@media print,screen and (min-width:64em){.grid-x>.large-auto{-ms-flex:1 1 0px;flex:1 1 0px;width:auto}.grid-x>.large-1,.grid-x>.large-2,.grid-x>.large-3,.grid-x>.large-4,.grid-x>.large-5,.grid-x>.large-6,.grid-x>.large-7,.grid-x>.large-8,.grid-x>.large-9,.grid-x>.large-10,.grid-x>.large-11,.grid-x>.large-12,.grid-x>.large-shrink{-ms-flex:0 0 auto;flex:0 0 auto}.grid-x>.large-shrink{width:auto}.grid-x>.large-1{width:8.33333%}.grid-x>.large-2{width:16.66667%}.grid-x>.large-3{width:25%}.grid-x>.large-4{width:33.33333%}.grid-x>.large-5{width:41.66667%}.grid-x>.large-6{width:50%}.grid-x>.large-7{width:58.33333%}.grid-x>.large-8{width:66.66667%}.grid-x>.large-9{width:75%}.grid-x>.large-10{width:83.33333%}.grid-x>.large-11{width:91.66667%}.grid-x>.large-12{width:100%}}.grid-margin-x:not(.grid-x)>.cell{width:auto}.grid-margin-y:not(.grid-y)>.cell{height:auto}.grid-margin-x{margin-left:-.625rem;margin-right:-.625rem}@media print,screen and (min-width:40em){.grid-margin-x{margin-left:-.9375rem;margin-right:-.9375rem}}.grid-margin-x>.cell{width:calc(100% - 1.25rem);margin-left:.625rem;margin-right:.625rem}@media print,screen and (min-width:40em){.grid-margin-x>.cell{width:calc(100% - 1.875rem);margin-left:.9375rem;margin-right:.9375rem}}.grid-margin-x>.auto,.grid-margin-x>.shrink{width:auto}.grid-margin-x>.small-1{width:calc(8.33333% - 1.25rem)}.grid-margin-x>.small-2{width:calc(16.66667% - 1.25rem)}.grid-margin-x>.small-3{width:calc(25% - 1.25rem)}.grid-margin-x>.small-4{width:calc(33.33333% - 1.25rem)}.grid-margin-x>.small-5{width:calc(41.66667% - 1.25rem)}.grid-margin-x>.small-6{width:calc(50% - 1.25rem)}.grid-margin-x>.small-7{width:calc(58.33333% - 1.25rem)}.grid-margin-x>.small-8{width:calc(66.66667% - 1.25rem)}.grid-margin-x>.small-9{width:calc(75% - 1.25rem)}.grid-margin-x>.small-10{width:calc(83.33333% - 1.25rem)}.grid-margin-x>.small-11{width:calc(91.66667% - 1.25rem)}.grid-margin-x>.small-12{width:calc(100% - 1.25rem)}@media print,screen and (min-width:40em){.grid-margin-x>.auto,.grid-margin-x>.shrink{width:auto}.grid-margin-x>.small-1{width:calc(8.33333% - 1.875rem)}.grid-margin-x>.small-2{width:calc(16.66667% - 1.875rem)}.grid-margin-x>.small-3{width:calc(25% - 1.875rem)}.grid-margin-x>.small-4{width:calc(33.33333% - 1.875rem)}.grid-margin-x>.small-5{width:calc(41.66667% - 1.875rem)}.grid-margin-x>.small-6{width:calc(50% - 1.875rem)}.grid-margin-x>.small-7{width:calc(58.33333% - 1.875rem)}.grid-margin-x>.small-8{width:calc(66.66667% - 1.875rem)}.grid-margin-x>.small-9{width:calc(75% - 1.875rem)}.grid-margin-x>.small-10{width:calc(83.33333% - 1.875rem)}.grid-margin-x>.small-11{width:calc(91.66667% - 1.875rem)}.grid-margin-x>.small-12{width:calc(100% - 1.875rem)}.grid-margin-x>.medium-auto,.grid-margin-x>.medium-shrink{width:auto}.grid-margin-x>.medium-1{width:calc(8.33333% - 1.875rem)}.grid-margin-x>.medium-2{width:calc(16.66667% - 1.875rem)}.grid-margin-x>.medium-3{width:calc(25% - 1.875rem)}.grid-margin-x>.medium-4{width:calc(33.33333% - 1.875rem)}.grid-margin-x>.medium-5{width:calc(41.66667% - 1.875rem)}.grid-margin-x>.medium-6{width:calc(50% - 1.875rem)}.grid-margin-x>.medium-7{width:calc(58.33333% - 1.875rem)}.grid-margin-x>.medium-8{width:calc(66.66667% - 1.875rem)}.grid-margin-x>.medium-9{width:calc(75% - 1.875rem)}.grid-margin-x>.medium-10{width:calc(83.33333% - 1.875rem)}.grid-margin-x>.medium-11{width:calc(91.66667% - 1.875rem)}.grid-margin-x>.medium-12{width:calc(100% - 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-x>.large-auto,.grid-margin-x>.large-shrink{width:auto}.grid-margin-x>.large-1{width:calc(8.33333% - 1.875rem)}.grid-margin-x>.large-2{width:calc(16.66667% - 1.875rem)}.grid-margin-x>.large-3{width:calc(25% - 1.875rem)}.grid-margin-x>.large-4{width:calc(33.33333% - 1.875rem)}.grid-margin-x>.large-5{width:calc(41.66667% - 1.875rem)}.grid-margin-x>.large-6{width:calc(50% - 1.875rem)}.grid-margin-x>.large-7{width:calc(58.33333% - 1.875rem)}.grid-margin-x>.large-8{width:calc(66.66667% - 1.875rem)}.grid-margin-x>.large-9{width:calc(75% - 1.875rem)}.grid-margin-x>.large-10{width:calc(83.33333% - 1.875rem)}.grid-margin-x>.large-11{width:calc(91.66667% - 1.875rem)}.grid-margin-x>.large-12{width:calc(100% - 1.875rem)}}.grid-padding-x .grid-padding-x{margin-right:-.625rem;margin-left:-.625rem}@media print,screen and (min-width:40em){.grid-padding-x .grid-padding-x{margin-right:-.9375rem;margin-left:-.9375rem}}.grid-container:not(.full)>.grid-padding-x{margin-right:-.625rem;margin-left:-.625rem}@media print,screen and (min-width:40em){.grid-container:not(.full)>.grid-padding-x{margin-right:-.9375rem;margin-left:-.9375rem}}.grid-padding-x>.cell{padding-right:.625rem;padding-left:.625rem}@media print,screen and (min-width:40em){.grid-padding-x>.cell{padding-right:.9375rem;padding-left:.9375rem}}.small-up-1>.cell{width:100%}.small-up-2>.cell{width:50%}.small-up-3>.cell{width:33.33333%}.small-up-4>.cell{width:25%}.small-up-5>.cell{width:20%}.small-up-6>.cell{width:16.66667%}.small-up-7>.cell{width:14.28571%}.small-up-8>.cell{width:12.5%}@media print,screen and (min-width:40em){.medium-up-1>.cell{width:100%}.medium-up-2>.cell{width:50%}.medium-up-3>.cell{width:33.33333%}.medium-up-4>.cell{width:25%}.medium-up-5>.cell{width:20%}.medium-up-6>.cell{width:16.66667%}.medium-up-7>.cell{width:14.28571%}.medium-up-8>.cell{width:12.5%}}@media print,screen and (min-width:64em){.large-up-1>.cell{width:100%}.large-up-2>.cell{width:50%}.large-up-3>.cell{width:33.33333%}.large-up-4>.cell{width:25%}.large-up-5>.cell{width:20%}.large-up-6>.cell{width:16.66667%}.large-up-7>.cell{width:14.28571%}.large-up-8>.cell{width:12.5%}}.grid-margin-x.small-up-1>.cell{width:calc(100% - 1.25rem)}.grid-margin-x.small-up-2>.cell{width:calc(50% - 1.25rem)}.grid-margin-x.small-up-3>.cell{width:calc(33.33333% - 1.25rem)}.grid-margin-x.small-up-4>.cell{width:calc(25% - 1.25rem)}.grid-margin-x.small-up-5>.cell{width:calc(20% - 1.25rem)}.grid-margin-x.small-up-6>.cell{width:calc(16.66667% - 1.25rem)}.grid-margin-x.small-up-7>.cell{width:calc(14.28571% - 1.25rem)}.grid-margin-x.small-up-8>.cell{width:calc(12.5% - 1.25rem)}@media print,screen and (min-width:40em){.grid-margin-x.small-up-1>.cell{width:calc(100% - 1.875rem)}.grid-margin-x.small-up-2>.cell{width:calc(50% - 1.875rem)}.grid-margin-x.small-up-3>.cell{width:calc(33.33333% - 1.875rem)}.grid-margin-x.small-up-4>.cell{width:calc(25% - 1.875rem)}.grid-margin-x.small-up-5>.cell{width:calc(20% - 1.875rem)}.grid-margin-x.small-up-6>.cell{width:calc(16.66667% - 1.875rem)}.grid-margin-x.small-up-7>.cell{width:calc(14.28571% - 1.875rem)}.grid-margin-x.small-up-8>.cell{width:calc(12.5% - 1.875rem)}.grid-margin-x.medium-up-1>.cell{width:calc(100% - 1.875rem)}.grid-margin-x.medium-up-2>.cell{width:calc(50% - 1.875rem)}.grid-margin-x.medium-up-3>.cell{width:calc(33.33333% - 1.875rem)}.grid-margin-x.medium-up-4>.cell{width:calc(25% - 1.875rem)}.grid-margin-x.medium-up-5>.cell{width:calc(20% - 1.875rem)}.grid-margin-x.medium-up-6>.cell{width:calc(16.66667% - 1.875rem)}.grid-margin-x.medium-up-7>.cell{width:calc(14.28571% - 1.875rem)}.grid-margin-x.medium-up-8>.cell{width:calc(12.5% - 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-x.large-up-1>.cell{width:calc(100% - 1.875rem)}.grid-margin-x.large-up-2>.cell{width:calc(50% - 1.875rem)}.grid-margin-x.large-up-3>.cell{width:calc(33.33333% - 1.875rem)}.grid-margin-x.large-up-4>.cell{width:calc(25% - 1.875rem)}.grid-margin-x.large-up-5>.cell{width:calc(20% - 1.875rem)}.grid-margin-x.large-up-6>.cell{width:calc(16.66667% - 1.875rem)}.grid-margin-x.large-up-7>.cell{width:calc(14.28571% - 1.875rem)}.grid-margin-x.large-up-8>.cell{width:calc(12.5% - 1.875rem)}}.small-margin-collapse,.small-margin-collapse>.cell{margin-right:0;margin-left:0}.small-margin-collapse>.small-1{width:8.33333%}.small-margin-collapse>.small-2{width:16.66667%}.small-margin-collapse>.small-3{width:25%}.small-margin-collapse>.small-4{width:33.33333%}.small-margin-collapse>.small-5{width:41.66667%}.small-margin-collapse>.small-6{width:50%}.small-margin-collapse>.small-7{width:58.33333%}.small-margin-collapse>.small-8{width:66.66667%}.small-margin-collapse>.small-9{width:75%}.small-margin-collapse>.small-10{width:83.33333%}.small-margin-collapse>.small-11{width:91.66667%}.small-margin-collapse>.small-12{width:100%}@media print,screen and (min-width:40em){.small-margin-collapse>.medium-1{width:8.33333%}.small-margin-collapse>.medium-2{width:16.66667%}.small-margin-collapse>.medium-3{width:25%}.small-margin-collapse>.medium-4{width:33.33333%}.small-margin-collapse>.medium-5{width:41.66667%}.small-margin-collapse>.medium-6{width:50%}.small-margin-collapse>.medium-7{width:58.33333%}.small-margin-collapse>.medium-8{width:66.66667%}.small-margin-collapse>.medium-9{width:75%}.small-margin-collapse>.medium-10{width:83.33333%}.small-margin-collapse>.medium-11{width:91.66667%}.small-margin-collapse>.medium-12{width:100%}}@media print,screen and (min-width:64em){.small-margin-collapse>.large-1{width:8.33333%}.small-margin-collapse>.large-2{width:16.66667%}.small-margin-collapse>.large-3{width:25%}.small-margin-collapse>.large-4{width:33.33333%}.small-margin-collapse>.large-5{width:41.66667%}.small-margin-collapse>.large-6{width:50%}.small-margin-collapse>.large-7{width:58.33333%}.small-margin-collapse>.large-8{width:66.66667%}.small-margin-collapse>.large-9{width:75%}.small-margin-collapse>.large-10{width:83.33333%}.small-margin-collapse>.large-11{width:91.66667%}.small-margin-collapse>.large-12{width:100%}}.small-padding-collapse{margin-right:0;margin-left:0}.small-padding-collapse>.cell{padding-right:0;padding-left:0}@media print,screen and (min-width:40em){.medium-margin-collapse,.medium-margin-collapse>.cell{margin-right:0;margin-left:0}}@media print,screen and (min-width:40em){.medium-margin-collapse>.small-1{width:8.33333%}.medium-margin-collapse>.small-2{width:16.66667%}.medium-margin-collapse>.small-3{width:25%}.medium-margin-collapse>.small-4{width:33.33333%}.medium-margin-collapse>.small-5{width:41.66667%}.medium-margin-collapse>.small-6{width:50%}.medium-margin-collapse>.small-7{width:58.33333%}.medium-margin-collapse>.small-8{width:66.66667%}.medium-margin-collapse>.small-9{width:75%}.medium-margin-collapse>.small-10{width:83.33333%}.medium-margin-collapse>.small-11{width:91.66667%}.medium-margin-collapse>.small-12{width:100%}}@media print,screen and (min-width:40em){.medium-margin-collapse>.medium-1{width:8.33333%}.medium-margin-collapse>.medium-2{width:16.66667%}.medium-margin-collapse>.medium-3{width:25%}.medium-margin-collapse>.medium-4{width:33.33333%}.medium-margin-collapse>.medium-5{width:41.66667%}.medium-margin-collapse>.medium-6{width:50%}.medium-margin-collapse>.medium-7{width:58.33333%}.medium-margin-collapse>.medium-8{width:66.66667%}.medium-margin-collapse>.medium-9{width:75%}.medium-margin-collapse>.medium-10{width:83.33333%}.medium-margin-collapse>.medium-11{width:91.66667%}.medium-margin-collapse>.medium-12{width:100%}}@media print,screen and (min-width:64em){.medium-margin-collapse>.large-1{width:8.33333%}.medium-margin-collapse>.large-2{width:16.66667%}.medium-margin-collapse>.large-3{width:25%}.medium-margin-collapse>.large-4{width:33.33333%}.medium-margin-collapse>.large-5{width:41.66667%}.medium-margin-collapse>.large-6{width:50%}.medium-margin-collapse>.large-7{width:58.33333%}.medium-margin-collapse>.large-8{width:66.66667%}.medium-margin-collapse>.large-9{width:75%}.medium-margin-collapse>.large-10{width:83.33333%}.medium-margin-collapse>.large-11{width:91.66667%}.medium-margin-collapse>.large-12{width:100%}}@media print,screen and (min-width:40em){.medium-padding-collapse{margin-right:0;margin-left:0}.medium-padding-collapse>.cell{padding-right:0;padding-left:0}}@media print,screen and (min-width:64em){.large-margin-collapse,.large-margin-collapse>.cell{margin-right:0;margin-left:0}}@media print,screen and (min-width:64em){.large-margin-collapse>.small-1{width:8.33333%}.large-margin-collapse>.small-2{width:16.66667%}.large-margin-collapse>.small-3{width:25%}.large-margin-collapse>.small-4{width:33.33333%}.large-margin-collapse>.small-5{width:41.66667%}.large-margin-collapse>.small-6{width:50%}.large-margin-collapse>.small-7{width:58.33333%}.large-margin-collapse>.small-8{width:66.66667%}.large-margin-collapse>.small-9{width:75%}.large-margin-collapse>.small-10{width:83.33333%}.large-margin-collapse>.small-11{width:91.66667%}.large-margin-collapse>.small-12{width:100%}}@media print,screen and (min-width:64em){.large-margin-collapse>.medium-1{width:8.33333%}.large-margin-collapse>.medium-2{width:16.66667%}.large-margin-collapse>.medium-3{width:25%}.large-margin-collapse>.medium-4{width:33.33333%}.large-margin-collapse>.medium-5{width:41.66667%}.large-margin-collapse>.medium-6{width:50%}.large-margin-collapse>.medium-7{width:58.33333%}.large-margin-collapse>.medium-8{width:66.66667%}.large-margin-collapse>.medium-9{width:75%}.large-margin-collapse>.medium-10{width:83.33333%}.large-margin-collapse>.medium-11{width:91.66667%}.large-margin-collapse>.medium-12{width:100%}}@media print,screen and (min-width:64em){.large-margin-collapse>.large-1{width:8.33333%}.large-margin-collapse>.large-2{width:16.66667%}.large-margin-collapse>.large-3{width:25%}.large-margin-collapse>.large-4{width:33.33333%}.large-margin-collapse>.large-5{width:41.66667%}.large-margin-collapse>.large-6{width:50%}.large-margin-collapse>.large-7{width:58.33333%}.large-margin-collapse>.large-8{width:66.66667%}.large-margin-collapse>.large-9{width:75%}.large-margin-collapse>.large-10{width:83.33333%}.large-margin-collapse>.large-11{width:91.66667%}.large-margin-collapse>.large-12{width:100%}}@media print,screen and (min-width:64em){.large-padding-collapse{margin-right:0;margin-left:0}.large-padding-collapse>.cell{padding-right:0;padding-left:0}}.small-offset-0{margin-left:0}.grid-margin-x>.small-offset-0{margin-left:calc(0% + .625rem)}.small-offset-1{margin-left:8.33333%}.grid-margin-x>.small-offset-1{margin-left:calc(8.33333% + .625rem)}.small-offset-2{margin-left:16.66667%}.grid-margin-x>.small-offset-2{margin-left:calc(16.66667% + .625rem)}.small-offset-3{margin-left:25%}.grid-margin-x>.small-offset-3{margin-left:calc(25% + .625rem)}.small-offset-4{margin-left:33.33333%}.grid-margin-x>.small-offset-4{margin-left:calc(33.33333% + .625rem)}.small-offset-5{margin-left:41.66667%}.grid-margin-x>.small-offset-5{margin-left:calc(41.66667% + .625rem)}.small-offset-6{margin-left:50%}.grid-margin-x>.small-offset-6{margin-left:calc(50% + .625rem)}.small-offset-7{margin-left:58.33333%}.grid-margin-x>.small-offset-7{margin-left:calc(58.33333% + .625rem)}.small-offset-8{margin-left:66.66667%}.grid-margin-x>.small-offset-8{margin-left:calc(66.66667% + .625rem)}.small-offset-9{margin-left:75%}.grid-margin-x>.small-offset-9{margin-left:calc(75% + .625rem)}.small-offset-10{margin-left:83.33333%}.grid-margin-x>.small-offset-10{margin-left:calc(83.33333% + .625rem)}.small-offset-11{margin-left:91.66667%}.grid-margin-x>.small-offset-11{margin-left:calc(91.66667% + .625rem)}@media print,screen and (min-width:40em){.medium-offset-0{margin-left:0}.grid-margin-x>.medium-offset-0{margin-left:calc(0% + .9375rem)}.medium-offset-1{margin-left:8.33333%}.grid-margin-x>.medium-offset-1{margin-left:calc(8.33333% + .9375rem)}.medium-offset-2{margin-left:16.66667%}.grid-margin-x>.medium-offset-2{margin-left:calc(16.66667% + .9375rem)}.medium-offset-3{margin-left:25%}.grid-margin-x>.medium-offset-3{margin-left:calc(25% + .9375rem)}.medium-offset-4{margin-left:33.33333%}.grid-margin-x>.medium-offset-4{margin-left:calc(33.33333% + .9375rem)}.medium-offset-5{margin-left:41.66667%}.grid-margin-x>.medium-offset-5{margin-left:calc(41.66667% + .9375rem)}.medium-offset-6{margin-left:50%}.grid-margin-x>.medium-offset-6{margin-left:calc(50% + .9375rem)}.medium-offset-7{margin-left:58.33333%}.grid-margin-x>.medium-offset-7{margin-left:calc(58.33333% + .9375rem)}.medium-offset-8{margin-left:66.66667%}.grid-margin-x>.medium-offset-8{margin-left:calc(66.66667% + .9375rem)}.medium-offset-9{margin-left:75%}.grid-margin-x>.medium-offset-9{margin-left:calc(75% + .9375rem)}.medium-offset-10{margin-left:83.33333%}.grid-margin-x>.medium-offset-10{margin-left:calc(83.33333% + .9375rem)}.medium-offset-11{margin-left:91.66667%}.grid-margin-x>.medium-offset-11{margin-left:calc(91.66667% + .9375rem)}}@media print,screen and (min-width:64em){.large-offset-0{margin-left:0}.grid-margin-x>.large-offset-0{margin-left:calc(0% + .9375rem)}.large-offset-1{margin-left:8.33333%}.grid-margin-x>.large-offset-1{margin-left:calc(8.33333% + .9375rem)}.large-offset-2{margin-left:16.66667%}.grid-margin-x>.large-offset-2{margin-left:calc(16.66667% + .9375rem)}.large-offset-3{margin-left:25%}.grid-margin-x>.large-offset-3{margin-left:calc(25% + .9375rem)}.large-offset-4{margin-left:33.33333%}.grid-margin-x>.large-offset-4{margin-left:calc(33.33333% + .9375rem)}.large-offset-5{margin-left:41.66667%}.grid-margin-x>.large-offset-5{margin-left:calc(41.66667% + .9375rem)}.large-offset-6{margin-left:50%}.grid-margin-x>.large-offset-6{margin-left:calc(50% + .9375rem)}.large-offset-7{margin-left:58.33333%}.grid-margin-x>.large-offset-7{margin-left:calc(58.33333% + .9375rem)}.large-offset-8{margin-left:66.66667%}.grid-margin-x>.large-offset-8{margin-left:calc(66.66667% + .9375rem)}.large-offset-9{margin-left:75%}.grid-margin-x>.large-offset-9{margin-left:calc(75% + .9375rem)}.large-offset-10{margin-left:83.33333%}.grid-margin-x>.large-offset-10{margin-left:calc(83.33333% + .9375rem)}.large-offset-11{margin-left:91.66667%}.grid-margin-x>.large-offset-11{margin-left:calc(91.66667% + .9375rem)}}.grid-y{display:-ms-flexbox;display:flex;-ms-flex-flow:column nowrap;flex-flow:column nowrap}.grid-y>.cell{height:auto;max-height:none}.grid-y>.auto,.grid-y>.shrink{height:auto}.grid-y>.small-1,.grid-y>.small-2,.grid-y>.small-3,.grid-y>.small-4,.grid-y>.small-5,.grid-y>.small-6,.grid-y>.small-7,.grid-y>.small-8,.grid-y>.small-9,.grid-y>.small-10,.grid-y>.small-11,.grid-y>.small-12,.grid-y>.small-full,.grid-y>.small-shrink{-ms-flex-preferred-size:auto;flex-basis:auto}@media print,screen and (min-width:40em){.grid-y>.medium-1,.grid-y>.medium-2,.grid-y>.medium-3,.grid-y>.medium-4,.grid-y>.medium-5,.grid-y>.medium-6,.grid-y>.medium-7,.grid-y>.medium-8,.grid-y>.medium-9,.grid-y>.medium-10,.grid-y>.medium-11,.grid-y>.medium-12,.grid-y>.medium-full,.grid-y>.medium-shrink{-ms-flex-preferred-size:auto;flex-basis:auto}}@media print,screen and (min-width:64em){.grid-y>.large-1,.grid-y>.large-2,.grid-y>.large-3,.grid-y>.large-4,.grid-y>.large-5,.grid-y>.large-6,.grid-y>.large-7,.grid-y>.large-8,.grid-y>.large-9,.grid-y>.large-10,.grid-y>.large-11,.grid-y>.large-12,.grid-y>.large-full,.grid-y>.large-shrink{-ms-flex-preferred-size:auto;flex-basis:auto}}.grid-y>.small-1,.grid-y>.small-2,.grid-y>.small-3,.grid-y>.small-4,.grid-y>.small-5,.grid-y>.small-6,.grid-y>.small-7,.grid-y>.small-8,.grid-y>.small-9,.grid-y>.small-10,.grid-y>.small-11,.grid-y>.small-12{-ms-flex:0 0 auto;flex:0 0 auto}.grid-y>.small-1{height:8.33333%}.grid-y>.small-2{height:16.66667%}.grid-y>.small-3{height:25%}.grid-y>.small-4{height:33.33333%}.grid-y>.small-5{height:41.66667%}.grid-y>.small-6{height:50%}.grid-y>.small-7{height:58.33333%}.grid-y>.small-8{height:66.66667%}.grid-y>.small-9{height:75%}.grid-y>.small-10{height:83.33333%}.grid-y>.small-11{height:91.66667%}.grid-y>.small-12{height:100%}@media print,screen and (min-width:40em){.grid-y>.medium-auto{-ms-flex:1 1 0px;flex:1 1 0px;height:auto}.grid-y>.medium-1,.grid-y>.medium-2,.grid-y>.medium-3,.grid-y>.medium-4,.grid-y>.medium-5,.grid-y>.medium-6,.grid-y>.medium-7,.grid-y>.medium-8,.grid-y>.medium-9,.grid-y>.medium-10,.grid-y>.medium-11,.grid-y>.medium-12,.grid-y>.medium-shrink{-ms-flex:0 0 auto;flex:0 0 auto}.grid-y>.medium-shrink{height:auto}.grid-y>.medium-1{height:8.33333%}.grid-y>.medium-2{height:16.66667%}.grid-y>.medium-3{height:25%}.grid-y>.medium-4{height:33.33333%}.grid-y>.medium-5{height:41.66667%}.grid-y>.medium-6{height:50%}.grid-y>.medium-7{height:58.33333%}.grid-y>.medium-8{height:66.66667%}.grid-y>.medium-9{height:75%}.grid-y>.medium-10{height:83.33333%}.grid-y>.medium-11{height:91.66667%}.grid-y>.medium-12{height:100%}}@media print,screen and (min-width:64em){.grid-y>.large-auto{-ms-flex:1 1 0px;flex:1 1 0px;height:auto}.grid-y>.large-1,.grid-y>.large-2,.grid-y>.large-3,.grid-y>.large-4,.grid-y>.large-5,.grid-y>.large-6,.grid-y>.large-7,.grid-y>.large-8,.grid-y>.large-9,.grid-y>.large-10,.grid-y>.large-11,.grid-y>.large-12,.grid-y>.large-shrink{-ms-flex:0 0 auto;flex:0 0 auto}.grid-y>.large-shrink{height:auto}.grid-y>.large-1{height:8.33333%}.grid-y>.large-2{height:16.66667%}.grid-y>.large-3{height:25%}.grid-y>.large-4{height:33.33333%}.grid-y>.large-5{height:41.66667%}.grid-y>.large-6{height:50%}.grid-y>.large-7{height:58.33333%}.grid-y>.large-8{height:66.66667%}.grid-y>.large-9{height:75%}.grid-y>.large-10{height:83.33333%}.grid-y>.large-11{height:91.66667%}.grid-y>.large-12{height:100%}}.grid-padding-y .grid-padding-y{margin-top:-.625rem;margin-bottom:-.625rem}@media print,screen and (min-width:40em){.grid-padding-y .grid-padding-y{margin-top:-.9375rem;margin-bottom:-.9375rem}}.grid-padding-y>.cell{padding-top:.625rem;padding-bottom:.625rem}@media print,screen and (min-width:40em){.grid-padding-y>.cell{padding-top:.9375rem;padding-bottom:.9375rem}}.grid-frame{overflow:hidden;position:relative;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-ms-flex-align:stretch;align-items:stretch;width:100vw}.cell .grid-frame{width:100%}.cell-block{overflow-x:auto;max-width:100%}.cell-block,.cell-block-y{-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.cell-block-y{overflow-y:auto;max-height:100%;min-height:100%}.cell-block-container{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;max-height:100%}.cell-block-container>.grid-x{max-height:100%;-ms-flex-wrap:nowrap;flex-wrap:nowrap}@media print,screen and (min-width:40em){.medium-grid-frame{overflow:hidden;position:relative;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-ms-flex-align:stretch;align-items:stretch;width:100vw}.cell .medium-grid-frame{width:100%}.medium-cell-block{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.medium-cell-block-container{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;max-height:100%}.medium-cell-block-container>.grid-x{max-height:100%;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.medium-cell-block-y{overflow-y:auto;max-height:100%;min-height:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}}@media print,screen and (min-width:64em){.large-grid-frame{overflow:hidden;position:relative;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-ms-flex-align:stretch;align-items:stretch;width:100vw}.cell .large-grid-frame{width:100%}.large-cell-block{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.large-cell-block-container{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;max-height:100%}.large-cell-block-container>.grid-x{max-height:100%;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.large-cell-block-y{overflow-y:auto;max-height:100%;min-height:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}}.grid-y.grid-frame{width:auto;overflow:hidden;position:relative;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-ms-flex-align:stretch;align-items:stretch;height:100vh}@media print,screen and (min-width:40em){.grid-y.medium-grid-frame{width:auto;overflow:hidden;position:relative;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-ms-flex-align:stretch;align-items:stretch;height:100vh}}@media print,screen and (min-width:64em){.grid-y.large-grid-frame{width:auto;overflow:hidden;position:relative;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-ms-flex-align:stretch;align-items:stretch;height:100vh}}.cell .grid-y.grid-frame{height:100%}@media print,screen and (min-width:40em){.cell .grid-y.medium-grid-frame{height:100%}}@media print,screen and (min-width:64em){.cell .grid-y.large-grid-frame{height:100%}}.grid-margin-y{margin-top:-.625rem;margin-bottom:-.625rem}@media print,screen and (min-width:40em){.grid-margin-y{margin-top:-.9375rem;margin-bottom:-.9375rem}}.grid-margin-y>.cell{height:calc(100% - 1.25rem);margin-top:.625rem;margin-bottom:.625rem}@media print,screen and (min-width:40em){.grid-margin-y>.cell{height:calc(100% - 1.875rem);margin-top:.9375rem;margin-bottom:.9375rem}}.grid-margin-y>.auto,.grid-margin-y>.shrink{height:auto}.grid-margin-y>.small-1{height:calc(8.33333% - 1.25rem)}.grid-margin-y>.small-2{height:calc(16.66667% - 1.25rem)}.grid-margin-y>.small-3{height:calc(25% - 1.25rem)}.grid-margin-y>.small-4{height:calc(33.33333% - 1.25rem)}.grid-margin-y>.small-5{height:calc(41.66667% - 1.25rem)}.grid-margin-y>.small-6{height:calc(50% - 1.25rem)}.grid-margin-y>.small-7{height:calc(58.33333% - 1.25rem)}.grid-margin-y>.small-8{height:calc(66.66667% - 1.25rem)}.grid-margin-y>.small-9{height:calc(75% - 1.25rem)}.grid-margin-y>.small-10{height:calc(83.33333% - 1.25rem)}.grid-margin-y>.small-11{height:calc(91.66667% - 1.25rem)}.grid-margin-y>.small-12{height:calc(100% - 1.25rem)}@media print,screen and (min-width:40em){.grid-margin-y>.auto,.grid-margin-y>.shrink{height:auto}.grid-margin-y>.small-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.small-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.small-3{height:calc(25% - 1.875rem)}.grid-margin-y>.small-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.small-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.small-6{height:calc(50% - 1.875rem)}.grid-margin-y>.small-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.small-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.small-9{height:calc(75% - 1.875rem)}.grid-margin-y>.small-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.small-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.small-12{height:calc(100% - 1.875rem)}.grid-margin-y>.medium-auto,.grid-margin-y>.medium-shrink{height:auto}.grid-margin-y>.medium-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.medium-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.medium-3{height:calc(25% - 1.875rem)}.grid-margin-y>.medium-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.medium-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.medium-6{height:calc(50% - 1.875rem)}.grid-margin-y>.medium-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.medium-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.medium-9{height:calc(75% - 1.875rem)}.grid-margin-y>.medium-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.medium-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.medium-12{height:calc(100% - 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-y>.large-auto,.grid-margin-y>.large-shrink{height:auto}.grid-margin-y>.large-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.large-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.large-3{height:calc(25% - 1.875rem)}.grid-margin-y>.large-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.large-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.large-6{height:calc(50% - 1.875rem)}.grid-margin-y>.large-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.large-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.large-9{height:calc(75% - 1.875rem)}.grid-margin-y>.large-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.large-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.large-12{height:calc(100% - 1.875rem)}}.grid-frame.grid-margin-y{height:calc(100vh + 1.25rem)}@media print,screen and (min-width:40em){.grid-frame.grid-margin-y{height:calc(100vh + 1.875rem)}}@media print,screen and (min-width:64em){.grid-frame.grid-margin-y{height:calc(100vh + 1.875rem)}}@media print,screen and (min-width:40em){.grid-margin-y.medium-grid-frame{height:calc(100vh + 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-y.large-grid-frame{height:calc(100vh + 1.875rem)}}.align-left{-ms-flex-pack:start;justify-content:flex-start}.align-right{-ms-flex-pack:end;justify-content:flex-end}.align-center{-ms-flex-pack:center;justify-content:center}.align-justify{-ms-flex-pack:justify;justify-content:space-between}.align-spaced{-ms-flex-pack:distribute;justify-content:space-around}.align-left.vertical.menu>li>a{-ms-flex-pack:start;justify-content:flex-start}.align-right.vertical.menu>li>a{-ms-flex-pack:end;justify-content:flex-end}.align-center.vertical.menu>li>a{-ms-flex-pack:center;justify-content:center}.align-top{-ms-flex-align:start;align-items:flex-start}.align-self-top{-ms-flex-item-align:start;align-self:flex-start}.align-bottom{-ms-flex-align:end;align-items:flex-end}.align-self-bottom{-ms-flex-item-align:end;align-self:flex-end}.align-middle{-ms-flex-align:center;align-items:center}.align-self-middle{-ms-flex-item-align:center;align-self:center}.align-stretch{-ms-flex-align:stretch;align-items:stretch}.align-self-stretch{-ms-flex-item-align:stretch;align-self:stretch}.align-center-middle{-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;-ms-flex-line-pack:center;align-content:center}.small-order-1{-ms-flex-order:1;order:1}.small-order-2{-ms-flex-order:2;order:2}.small-order-3{-ms-flex-order:3;order:3}.small-order-4{-ms-flex-order:4;order:4}.small-order-5{-ms-flex-order:5;order:5}.small-order-6{-ms-flex-order:6;order:6}@media print,screen and (min-width:40em){.medium-order-1{-ms-flex-order:1;order:1}.medium-order-2{-ms-flex-order:2;order:2}.medium-order-3{-ms-flex-order:3;order:3}.medium-order-4{-ms-flex-order:4;order:4}.medium-order-5{-ms-flex-order:5;order:5}.medium-order-6{-ms-flex-order:6;order:6}}@media print,screen and (min-width:64em){.large-order-1{-ms-flex-order:1;order:1}.large-order-2{-ms-flex-order:2;order:2}.large-order-3{-ms-flex-order:3;order:3}.large-order-4{-ms-flex-order:4;order:4}.large-order-5{-ms-flex-order:5;order:5}.large-order-6{-ms-flex-order:6;order:6}}.flex-container{display:-ms-flexbox;display:flex}.flex-child-auto{-ms-flex:1 1 auto;flex:1 1 auto}.flex-child-grow{-ms-flex:1 0 auto;flex:1 0 auto}.flex-child-shrink{-ms-flex:0 1 auto;flex:0 1 auto}.flex-dir-row{-ms-flex-direction:row;flex-direction:row}.flex-dir-row-reverse{-ms-flex-direction:row-reverse;flex-direction:row-reverse}.flex-dir-column{-ms-flex-direction:column;flex-direction:column}.flex-dir-column-reverse{-ms-flex-direction:column-reverse;flex-direction:column-reverse}@media print,screen and (min-width:40em){.medium-flex-container{display:-ms-flexbox;display:flex}.medium-flex-child-auto{-ms-flex:1 1 auto;flex:1 1 auto}.medium-flex-child-grow{-ms-flex:1 0 auto;flex:1 0 auto}.medium-flex-child-shrink{-ms-flex:0 1 auto;flex:0 1 auto}.medium-flex-dir-row{-ms-flex-direction:row;flex-direction:row}.medium-flex-dir-row-reverse{-ms-flex-direction:row-reverse;flex-direction:row-reverse}.medium-flex-dir-column{-ms-flex-direction:column;flex-direction:column}.medium-flex-dir-column-reverse{-ms-flex-direction:column-reverse;flex-direction:column-reverse}}@media print,screen and (min-width:64em){.large-flex-container{display:-ms-flexbox;display:flex}.large-flex-child-auto{-ms-flex:1 1 auto;flex:1 1 auto}.large-flex-child-grow{-ms-flex:1 0 auto;flex:1 0 auto}.large-flex-child-shrink{-ms-flex:0 1 auto;flex:0 1 auto}.large-flex-dir-row{-ms-flex-direction:row;flex-direction:row}.large-flex-dir-row-reverse{-ms-flex-direction:row-reverse;flex-direction:row-reverse}.large-flex-dir-column{-ms-flex-direction:column;flex-direction:column}.large-flex-dir-column-reverse{-ms-flex-direction:column-reverse;flex-direction:column-reverse}}.hide{display:none!important}.invisible{visibility:hidden}@media print,screen and (max-width:39.99875em){.hide-for-small-only{display:none!important}}@media screen and (max-width:0em),screen and (min-width:40em){.show-for-small-only{display:none!important}}@media print,screen and (min-width:40em){.hide-for-medium{display:none!important}}@media screen and (max-width:39.99875em){.show-for-medium{display:none!important}}@media print,screen and (min-width:40em) and (max-width:63.99875em){.hide-for-medium-only{display:none!important}}@media screen and (max-width:39.99875em),screen and (min-width:64em){.show-for-medium-only{display:none!important}}@media print,screen and (min-width:64em){.hide-for-large{display:none!important}}@media screen and (max-width:63.99875em){.show-for-large{display:none!important}}@media print,screen and (min-width:64em) and (max-width:74.99875em){.hide-for-large-only{display:none!important}}@media screen and (max-width:63.99875em),screen and (min-width:75em){.show-for-large-only{display:none!important}}.show-for-sr,.show-on-focus{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.show-on-focus:active,.show-on-focus:focus{position:static!important;width:auto!important;height:auto!important;overflow:visible!important;clip:auto!important;white-space:normal!important}.hide-for-portrait,.show-for-landscape{display:block!important}@media screen and (orientation:landscape){.hide-for-portrait,.show-for-landscape{display:block!important}}@media screen and (orientation:portrait){.hide-for-portrait,.show-for-landscape{display:none!important}}.hide-for-landscape,.show-for-portrait{display:none!important}@media screen and (orientation:landscape){.hide-for-landscape,.show-for-portrait{display:none!important}}@media screen and (orientation:portrait){.hide-for-landscape,.show-for-portrait{display:block!important}}.heading{font-family:DM Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;text-transform:uppercase}.heading--large-title{color:#330f66;font-size:3.6rem;line-height:1}@media (max-width:1299px){.heading--large-title{font-size:3.15rem}}@media (max-width:1092px){.heading--large-title{font-size:2.7rem}}@media (max-width:768px){.heading--large-title{font-size:2.25rem}}.heading--medium-title{color:#fff;font-size:1.5rem}.heading--large-title-dark{color:#330f66;font-size:3.6rem}@media (max-width:768px){.heading--large-title-dark{font-size:2.25rem}}.heading--section-title-container{position:relative}.heading--section-title{position:absolute;left:0;top:0;color:#fff;font-size:1rem;font-family:Space Mono,monospace;font-weight:300;transform:rotate(-90deg) translate(-100%);transform-origin:left top;margin-top:12px;letter-spacing:2px}@media (max-width:768px){.heading--section-title{position:unset;margin-top:0;transform:unset}}.small-heading{color:#fff;font-family:Space Mono,monospace;text-transform:uppercase;letter-spacing:1.95px;font-size:12px}.text{font-family:DM Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;color:#fff;line-height:1.1;font-weight:800}.text a{transition:all .3s ease-out 0s;color:#fff}.text a.dark{color:#330f66}.text a:hover{color:#ed6054}.text--small{margin:0;font-size:14px;line-height:16.8px;font-weight:lighter}.text--small.dark{color:#330f66}.text--normal{margin:0;font-size:1rem;line-height:1.3rem;font-weight:lighter}.text--normal.dark{color:#330f66}.text--medium{font-size:1.2rem;line-height:1.2}.text--medium.dark{color:#330f66}.text--medium-dark{font-size:1.2rem;line-height:1.2;color:#330f66;margin:0;padding:2rem}.text--medium-dark.dark{color:#330f66}.text--large{margin:0;font-size:3rem}.text--large.dark{color:#330f66}@media (max-width:768px){.text--large{font-size:1.5rem;line-height:1.5rem}}.meta-text{text-decoration:none;letter-spacing:1.95px;font-size:9px;margin-right:1rem;display:inline}.link,.meta-text{color:#fff;font-family:Space Mono,monospace;text-transform:uppercase}.link{transition:all .3s ease-out 0s;font-size:12px;display:inline-block;font-weight:300;letter-spacing:2px}.link--dark{color:#330f66}.social__link{color:#fff;text-shadow:-2px -2px 0 #fff,2px -2px 0 #fff,-2px 2px 0 #fff,2px 2px 0 #fff,-2px 0 0 #fff,2px 0 0 #fff,0 2px 0 #fff,0 -2px 0 #fff,0 0 0 #fff;transition:all .3s ease-out 0s;font-family:DM Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;letter-spacing:.1em;font-size:2.7rem;line-height:1;text-transform:uppercase;text-align:center}@supports (-webkit-text-stroke-color:#fff) or (-moz-text-stroke-color:#fff) or (text-stroke-color:#fff){.social__link{color:transparent;text-shadow:none;-moz-text-stroke-color:#fff;-webkit-text-stroke-color:#fff;text-stroke-color:#fff;-moz-text-stroke-width:2px;-webkit-text-stroke-width:2px;text-stroke-width:2px}}@media (max-width:1024px){.social__link{font-size:2rem;line-height:2rem}}.social__link:hover{color:#fff;font-weight:lighter}.post-content-title{color:#fff;text-shadow:-1px -1px 0 #69ff00,1px -1px 0 #69ff00,-1px 1px 0 #69ff00,1px 1px 0 #69ff00,-1px 0 0 #69ff00,1px 0 0 #69ff00,0 1px 0 #69ff00,0 -1px 0 #69ff00,0 0 0 #69ff00;font-family:DM Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:3rem;line-height:3rem}@supports (-webkit-text-stroke-color:#69ff00) or (-moz-text-stroke-color:#69ff00) or (text-stroke-color:#69ff00){.post-content-title{color:transparent;text-shadow:none;-moz-text-stroke-color:#69ff00;-webkit-text-stroke-color:#69ff00;text-stroke-color:#69ff00;-moz-text-stroke-width:1px;-webkit-text-stroke-width:1px;text-stroke-width:1px}}.post-content-title:before{content:url(/wp-content/themes/youngbloods/dist/img/dot-point.svg);position:relative;bottom:6px;margin-right:.75rem}.intro{height:100vh;-ms-flex-direction:column;flex-direction:column}.intro,.intro__content-wrap{position:relative;display:-ms-flexbox;display:flex}.intro__content-wrap{width:100%;height:100%;overflow:visible}.intro__content{width:100%;height:100%;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:end;justify-content:flex-end}.intro__content:after{content:"";display:block;height:9%}@media (max-width:768px){.intro__content:after{height:4.5%}}.intro__content-background-wrap{width:100%;display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:justify;justify-content:space-between}.intro__content-background{height:277px;background:#ddd0c6;display:-ms-flexbox;display:flex;-ms-flex-align:end;align-items:flex-end}.intro__content-background.dark{background:#330f66}.intro__content-background.dark .heading--large-title{color:#fff}.intro__repeat-logo-container{height:277px}@media (max-width:768px){.intro__repeat-logo-container{display:none}}.intro .heading--large-title{padding:1rem}.intro--smaller .background{position:relative;height:50vh;width:100%;max-height:100vw;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.background{position:absolute;z-index:-1;left:0;top:0;width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.background.adlands{-o-object-position:left;object-position:left}.grid__item-wrap{padding:1rem}@media (max-width:768px){.grid__item-wrap{padding:1rem 0}}.grid__item-img{display:block}@media (min-width:1440px){.grid__item-img{margin-left:2rem}}.grid__item-info{background:#330f66;padding:1rem;width:100%;box-shadow:0 2px 4px rgba(0,0,0,.5);min-height:170px}@media (min-width:1440px){.grid__item-info{margin-left:2rem;width:65%;transform:translateY(-2.7rem);margin-left:0}}.grid__item-info a:hover{color:#69ff00!important}.button{font-size:1rem;text-transform:uppercase;color:#fff;border:1px solid #fff;background:transparent;border-radius:20px;padding:8px 16px}.button,.ordered__list{font-family:DM Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.ordered__list{list-style:none;counter-reset:a;padding:0;display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap}.ordered__list--item{color:#fff;counter-increment:a;font-size:2rem;margin-bottom:5rem;-ms-flex-preferred-size:50%;flex-basis:50%}@media (max-width:1023px){.ordered__list--item{font-size:1.5rem}}.ordered__list--item:last-of-type{margin-bottom:0}.ordered__list--item-title{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;line-height:2rem}.ordered__list--item-title:before{color:#69ff00;content:"0" counter(a);font-size:4rem;height:4rem;padding:0 1rem 0 0;display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start;text-decoration:underline}@media (max-width:1023px){.ordered__list--item-title:before{font-size:3rem;line-height:3rem}}.ordered__list--link{color:#fff;text-shadow:-1px -1px 0 #fff,1px -1px 0 #fff,-1px 1px 0 #fff,1px 1px 0 #fff,-1px 0 0 #fff,1px 0 0 #fff,0 1px 0 #fff,0 -1px 0 #fff,0 0 0 #fff;transition:all .3s ease-out 0s;margin-top:-1rem}@supports (-webkit-text-stroke-color:#fff) or (-moz-text-stroke-color:#fff) or (text-stroke-color:#fff){.ordered__list--link{color:transparent;text-shadow:none;-moz-text-stroke-color:#fff;-webkit-text-stroke-color:#fff;text-stroke-color:#fff;-moz-text-stroke-width:1px;-webkit-text-stroke-width:1px;text-stroke-width:1px}}.ordered__list--link:hover{color:#fff;font-weight:lighter}.quote{display:inline-block;width:80%;font-size:2rem;line-height:2rem;color:#69ff00;margin-left:15%;text-align:center;margin:1rem 10%}@media (max-width:768px){.quote{font-size:1.5rem;line-height:1.5rem}}.section__list{list-style:none;font-family:DM Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;counter-reset:b;padding:0;position:relative;color:#fff;padding-left:3rem}@media (max-width:768px){.section__list{padding-left:0}}.section__list ul{padding-left:1rem}.section__list--item{color:#69ff00;counter-increment:b;font-size:1.5rem;-ms-flex-preferred-size:50%;flex-basis:50%;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.section__list--item:before{text-shadow:-1px -1px 0 #69ff00,1px -1px 0 #69ff00,-1px 1px 0 #69ff00,1px 1px 0 #69ff00,-1px 0 0 #69ff00,1px 0 0 #69ff00,0 1px 0 #69ff00,0 -1px 0 #69ff00,0 0 0 #69ff00;color:#fff;content:counter(b);font-size:3rem;height:3rem;position:absolute;margin-left:-2.5rem}@supports (-webkit-text-stroke-color:#69ff00) or (-moz-text-stroke-color:#69ff00) or (text-stroke-color:#69ff00){.section__list--item:before{color:transparent;text-shadow:none;-moz-text-stroke-color:#69ff00;-webkit-text-stroke-color:#69ff00;text-stroke-color:#69ff00;-moz-text-stroke-width:1px;-webkit-text-stroke-width:1px;text-stroke-width:1px}}.section__list--text{font-size:1rem;line-height:1.2rem;font-weight:lighter;margin-bottom:2rem}.unordered__list{padding:0 0 0 19px;margin-top:2rem}.unordered__list--item{transition:all .3s ease-out 0s;color:#fff;font-size:1rem;line-height:1.2rem}.unordered__list--item:hover{color:#fff}.post-content{color:#fff;font-family:DM Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;padding:0 0 7rem}.post-content .button{margin-top:2rem}.post-content .post-img{margin-bottom:3rem}.post-content .intro__content-background-wrap{margin-top:-138.5px}.post-content .intro__content-background{display:-ms-flexbox;display:flex;-ms-flex-align:end;align-items:flex-end}.post-content .intro__repeat-logo-container img{margin-top:0}.post-content .chapter-intro{margin-top:3.5rem}.post-content .post-intro{margin:3.5rem 0;color:#fff;font-family:Space Mono,monospace;text-transform:uppercase;letter-spacing:1.95px;font-size:12px}.post-content .heading--large-title{margin:0;padding:1rem}.post-content .post-content-title{margin:3.5rem 0 2rem}@media (max-width:768px){.post-content .post-content-title{font-size:2rem;line-height:2rem}}.post-content .post-content-title:before{display:none;bottom:2px}.post-content .section__list{margin:2rem 0}.post-content .section__list--item{line-height:1.5rem}.post-content .text.section__list--text p{margin-bottom:0}.post-content img{margin:3rem 0 0}.post-content ul{padding-left:1rem;font-family:DM Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.post-content a{color:#fff}.post-content a:hover{transition:all .3s ease-out 0s;color:#ed6054}html{background:#330f66;box-sizing:border-box;font-size:18px;text-rendering:geometricPrecision}body{margin:0}*,:after,:before{box-sizing:inherit}img{max-width:100%;height:auto;vertical-align:middle}h1,h2,h3,h4,h5,h6{margin:0}a{text-decoration:none}hr{border-top:1px solid #fff}.nav{position:absolute;width:100%;margin-top:2rem;z-index:100}.nav__logo{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;z-index:300}.nav__mobile-menu-toggle-wrap{z-index:300;position:relative}.nav__menu{list-style:none;padding:0 2rem;margin:0;display:-ms-flexbox;display:flex;-ms-flex-pack:distribute;justify-content:space-around}@media screen and (max-width:1023px){.nav__menu{display:none}}.nav__menu-item:first-of-type{margin-left:0}.nav__menu-item a{font-family:Space Mono,monospace;color:#fff;font-size:.75rem;text-transform:uppercase}@media screen and (max-width:1023px){.nav__social-wrap{display:none}}.nav__social-link{margin-right:.5rem}.nav__social-link:last-of-type{margin-right:0}#mobile-nav-toggle{position:absolute;top:0;right:0;padding:0}#mobile-nav-toggle i{display:block;width:23px;height:18px;transform:rotate(0deg);transition:.5s ease-in-out;cursor:pointer}#mobile-nav-toggle i span{display:block;position:absolute;height:2px;width:100%;background:#fff;opacity:1;left:0;transform:rotate(0deg);transition:.25s ease-in-out}#mobile-nav-toggle i span:first-child{top:0}#mobile-nav-toggle i span:nth-child(2),#mobile-nav-toggle i span:nth-child(3){top:7px}#mobile-nav-toggle i span:nth-child(4){top:14px}body.mobile-nav-active #mobile-nav-toggle i span:first-child{top:18px;width:0;left:50%}body.mobile-nav-active #mobile-nav-toggle i span:nth-child(2){transform:rotate(45deg)}body.mobile-nav-active #mobile-nav-toggle i span:nth-child(3){transform:rotate(-45deg)}body.mobile-nav-active #mobile-nav-toggle i span:nth-child(4){top:18px;width:0;left:50%}#mobile-menu{transition:all .3s ease-out 0s;visibility:hidden;opacity:0;pointer-events:none;transform:scale(.3);position:fixed;top:0;left:0;right:0;bottom:0;z-index:200;background:#330f66;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center}#mobile-menu,#mobile-menu ul{display:-ms-flexbox;display:flex}#mobile-menu ul{margin:0;padding:0;list-style:none;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:justify;justify-content:space-between;min-height:50vh}#mobile-menu ul li{font-size:2rem;font-family:DM Sans;text-align:center}#mobile-menu ul li a{transition:all .3s ease-out 0s;color:#fff}#mobile-menu ul li a:hover{color:#ed6054}body.mobile-nav-active{overflow:hidden}body.mobile-nav-active #mobile-menu{transform:scale(1);visibility:visible;opacity:1;pointer-events:auto}.sponsors{padding:3.5rem 0;background:#2e1c2e}.sponsors hr{margin-bottom:2rem}.sponsors__grid-wrapper{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap}.sponsors__grid-wrapper img{width:176px}.sponsors__grid-item{-ms-flex-preferred-size:25%;flex-basis:25%}.footer{padding:7rem 0}.footer,.footer.alt{background:#2e1c2e}@media (max-width:768px){.footer{padding:3.5rem 0}}.footer .yb-logo{margin-bottom:1.5rem}@media (max-width:768px){.footer .yb-logo{width:60%}}.footer .comms-council-logo{width:37%}@media (max-width:768px){.footer .comms-council-logo{width:40%;margin-bottom:2rem}}.footer .small-heading{margin-bottom:1rem}.footer .heading--medium-title{margin:0 0 1rem;font-size:1rem}.footer__nav-menu{list-style:none;padding:0;margin:0}@media (max-width:768px){.footer__nav-menu{margin-bottom:2rem}}.footer__nav-menu-item{margin-bottom:.5rem}.footer__nav-menu-item a{font-family:DM Sans;color:#fff;font-size:1rem;font-weight:lighter;text-transform:uppercase}@media (max-width:768px){.footer__nav-menu-item a{font-size:1rem}}#mailchimp-form label,#mc-embedded-subscribe-form label{display:block;position:relative;margin-bottom:1rem}#mailchimp-form label input:not([type=submit]),#mc-embedded-subscribe-form label input:not([type=submit]){width:100%;background-color:transparent;border:0;border-bottom:1px solid #fff;outline:none;color:#fff;font-size:1rem;border-radius:0;box-sizing:border-box;padding-left:0}@media (max-width:1023px){#mailchimp-form label input:not([type=submit]),#mc-embedded-subscribe-form label input:not([type=submit]){font-size:12px}}#mailchimp-form label span.title,#mc-embedded-subscribe-form label span.title{text-shadow:-1px -1px 0 #fff,1px -1px 0 #fff,-1px 1px 0 #fff,1px 1px 0 #fff,-1px 0 0 #fff,1px 0 0 #fff,0 1px 0 #fff,0 -1px 0 #fff,0 0 0 #fff;transition:all .3s ease-out 0s;font-family:DM Sans;font-size:12px;color:#fff;letter-spacing:.1em;text-transform:uppercase;position:absolute;top:-1;left:0;transform-origin:bottom left}@supports (-webkit-text-stroke-color:#fff) or (-moz-text-stroke-color:#fff) or (text-stroke-color:#fff){#mailchimp-form label span.title,#mc-embedded-subscribe-form label span.title{color:transparent;text-shadow:none;-moz-text-stroke-color:#fff;-webkit-text-stroke-color:#fff;text-stroke-color:#fff;-moz-text-stroke-width:1px;-webkit-text-stroke-width:1px;text-stroke-width:1px}}#mailchimp-form label input#mce-EMAIL,#mc-embedded-subscribe-form label input#mce-EMAIL{margin-bottom:1rem}#mailchimp-form label.activated span.title,#mc-embedded-subscribe-form label.activated span.title{transform:scale(.7) translateY(-37px)}#mailchimp-form label.invalid input,#mc-embedded-subscribe-form label.invalid input{border-color:red}.home-about-us{padding:7rem 0}@media (max-width:768px){.home-about-us .heading--section-title-container{display:none}}@media (max-width:768px){.home-about-us{padding:3.5rem 0}}.home-about-us .grid-container{position:relative}.home-about-us .text--large{margin-bottom:3rem}@media (max-width:768px){.home-about-us .text--large{margin-bottom:1.5rem}}.home-about-us .text--normal{margin-bottom:1.5rem}.home-blog{padding:7rem 0 5rem;background:#ddd0c6}@media (max-width:768px){.home-blog{padding:2rem 0}}.home-blog .heading--section-title,.home-blog .link{color:#330f66}.home-blog .link:hover .grid-container{position:relative}.home-blog .text--medium{padding-bottom:12px}@media (max-width:768px){.home-blog .link{margin-bottom:1rem}}.home-adland{padding:7rem 0;height:100vh;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;position:relative;overflow-x:hidden}@media (max-width:768px){.home-adland{padding:3rem 0}}.home-adland__content-wrap{height:100%;width:100%;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;position:relative;overflow-x:hidden}@media (max-width:1023px){.home-adland__content-wrap{-ms-flex-align:center;align-items:center}}.home-adland__content-wrap .heading--section-title{text-align:right}@media (max-width:1023px){.home-adland__content-wrap .heading--section-title{display:none}}.home-adland__content{width:100%;height:-moz-fit-content;height:fit-content;display:-ms-flexbox;display:flex;-ms-flex-pack:end;justify-content:flex-end}.home-adland__content-background-wrap{width:100%;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-pack:justify;justify-content:space-between}.home-adland__content-background{background:hsla(0,0%,100%,.8);padding:1.75rem;margin:0 1rem;max-width:100%}@media (max-width:768px){.home-adland__content-background{margin:0}}.home-adland .heading--large-title-dark{margin-bottom:1.75rem}.home-adland .text--medium-dark{padding:0;margin-bottom:1.75rem;max-width:87%}@media (max-width:768px){.home-adland .text--medium-dark{font-size:1rem;line-height:1rem;margin-bottom:1rem;max-width:90%}}@media (max-width:768px){.social{padding:2rem 0 0}}.social .heading--section-title{position:absolute}@media (max-width:768px){.social .heading--section-title{display:none}}.social .heading--large-title{margin:0;font-size:2rem;line-height:2rem;position:unset}.social__menu-wrapper{position:relative;-ms-flex-preferred-size:50%;flex-basis:50%;display:-ms-flexbox;display:flex;-ms-flex-flow:column wrap;flex-flow:column wrap;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center}.social__menu-wrapper .heading--large-title{position:unset}.social__feed-wrapper{width:50vw;display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap}@media (max-width:768px){.social__feed-wrapper{margin-left:-1.0625rem;width:100vw}}.social__feed-image{-ms-flex-preferred-size:33.33%;flex-basis:33.33%;position:relative}.social__menu{list-style:none;padding:0;margin:0}@media (max-width:768px){.social__menu{margin-bottom:2rem}}.social__content-wrap{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}@media (max-width:768px){.social .medium-6.social__content-wrap{width:100%}}.adland-welcome{padding:7rem 0;background:#ddd0c6}@media (max-width:768px){.adland-welcome{padding:3.5rem 0}}.adland-welcome .text--large{margin-bottom:3rem}.adland-welcome .heading--section-title{text-align:right;color:#330f66}@media (max-width:1023px){.adland-welcome .heading--section-title{display:none}}.adland-welcome .text--normal{padding-right:2rem}@media (max-width:768px){.adland-welcome .text--normal{padding:0}}.adland-guide-to-guide{padding:7rem 0;background:#330f66}@media (max-width:768px){.adland-guide-to-guide{padding:3.5rem 0}}.adland-guide-to-guide .heading--section-title{text-align:right}@media (max-width:1023px){.adland-guide-to-guide .heading--section-title{position:unset;margin-top:0;transform:unset;margin-bottom:2rem;text-align:left}}.adland-guide-to-guide .ordered__list--item{padding-right:3rem}.adland-guide-to-guide .ordered__list--item p{margin:0}@media (max-width:678px){.adland-guide-to-guide .ordered__list--item{padding:0;-ms-flex-preferred-size:100%;flex-basis:100%}}.adland-guide-to-guide .ordered__list--item-title{max-width:318px}.adland-guide-to-guide .unordered__list--item{max-width:400px}.blog{padding:7rem 0;background:#ddd0c6}.blog .heading--section-title{color:#330f66}.blog .button{color:#330f66;border-color:#330f66}.blog .button:hover{color:#330f66}@media (max-width:768px){.blog{padding:3.5rem 0}}.blog .grid-container{position:relative}@media (max-width:1023px){.blog .heading--section-title{display:none}}@media (max-width:1023px){.blog .grid__item-wrap{padding:0;margin-bottom:2rem}}.blog .text--medium{padding-bottom:12px}.blog .text a:hover{color:#330f66}.blog__category-wrap{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;margin-bottom:2rem}.blog__category-link{margin:0 1rem 1rem 0}.about-us{padding:7rem 0;background:#330f66}@media (max-width:768px){.about-us{padding:3.5rem 0}}.about-us img{margin-bottom:4rem}.about-us .text--large{margin-bottom:3rem}.about-us .heading--section-title{text-align:right}@media (max-width:1023px){.about-us .heading--section-title{display:none}}.about-us .text--normal{padding-right:4rem}@media (max-width:768px){.about-us .text--normal{padding:0}}.get-in-touch{padding:7rem 0;color:#fff}@media (max-width:768px){.get-in-touch{padding:3.5rem 0}}@media (max-width:1023px){.get-in-touch .heading--section-title{display:none}}.get-in-touch .text--large{margin-bottom:3rem;font-weight:lighter}.get-in-touch .wpcf7-form{padding-bottom:40px}.get-in-touch .wpcf7-form .cell{padding-top:20px;padding-bottom:20px}.get-in-touch .wpcf7-form br{display:none}.get-in-touch .wpcf7-form .wpcf7-form-control-wrap{display:block}.get-in-touch .wpcf7-form label{display:block;position:relative}.get-in-touch .wpcf7-form label input:not([type=submit]):not([type=radio]){width:100%;background-color:transparent;border:0;border-bottom:1px solid #fff;outline:none;color:#fff;font-size:18px;border-radius:0;box-sizing:border-box;padding-left:0}.get-in-touch .wpcf7-form label .wpcf7-form-control-wrap.message{position:relative;z-index:2;display:block}.get-in-touch .wpcf7-form label .wpcf7-form-control-wrap.message:before{transition:all .3s ease-out 0s;content:"";position:absolute;z-index:1;top:0;left:0;right:0;bottom:0;background:repeating-linear-gradient(0deg,#fff,#fff 1px,hsla(0,0%,100%,0) 0,hsla(0,0%,100%,0) 40px)}.get-in-touch .wpcf7-form label textarea{transition:all .3s ease-out 0s;display:block;width:100%;background-color:transparent;border:0;border-bottom:1px solid transparent;outline:none;color:#fff;font-size:18px;line-height:1.5;position:relative;z-index:3;border-radius:0;box-sizing:border-box;padding-left:0}.get-in-touch .wpcf7-form label span.title{transition:all .3s ease-out 0s;font-family:DM Sans;font-size:18px;position:absolute;top:-1;left:0;transform-origin:bottom left}.get-in-touch .wpcf7-form label span.title sup{margin-left:5px;font-size:.75em}.get-in-touch .wpcf7-form label.activated span.title{transform:scale(.7) translateY(-37px)}.get-in-touch .wpcf7-form label.activated .wpcf7-form-control-wrap.message:before{opacity:0}.get-in-touch .wpcf7-form label.activated textarea{border-color:#fff}.get-in-touch .wpcf7-form label.invalid input,.get-in-touch .wpcf7-form label.invalid textarea{border-color:#ed6054}.get-in-touch .wpcf7-form span.wpcf7-not-valid-tip{font-family:DM Sans;color:#ed6054;position:absolute;white-space:nowrap;padding-top:3px}.get-in-touch .wpcf7-form .wpcf7-response-output{padding:10px;text-align:center;font-family:DM Sans}.get-in-touch .wpcf7-form .wpcf7-response-output.wpcf7-validation-errors{border-color:#ed6054;color:#ed6054}.get-in-touch .wpcf7-form .wpcf7-response-output.wpcf7-mail-sent-ok{border-color:#fff;color:#fff;font-size:20px}.get-in-touch .wpcf7-form .button{margin-top:40px}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MveHktZ3JpZC9fY2xhc3Nlcy5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy94eS1ncmlkL19ndXR0ZXJzLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3h5LWdyaWQvX2dyaWQuc2NzcyIsIl92YXJpYWJsZXMuc2NzcyIsIi4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fYnJlYWtwb2ludC5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy94eS1ncmlkL19jZWxsLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX21hdGguc2NzcyIsIi4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MveHktZ3JpZC9fbGF5b3V0LnNjc3MiLCIuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3h5LWdyaWQvX2NvbGxhcHNlLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3h5LWdyaWQvX3Bvc2l0aW9uLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3h5LWdyaWQvX2ZyYW1lLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2ZsZXguc2NzcyIsIi4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fZmxleC5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL192aXNpYmlsaXR5LnNjc3MiLCIuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX21peGlucy5zY3NzIiwiX3R5cG9ncmFwaHkuc2NzcyIsIl9taXhpbnMuc2NzcyIsIl9jb21tb24uc2NzcyIsIl9iYXNlLnNjc3MiLCJfaGVhZGVyLnNjc3MiLCJfZm9vdGVyLnNjc3MiLCJfZnJvbnQtcGFnZS5zY3NzIiwiX2FkbGFuZC5zY3NzIiwiX2Jsb2cuc2NzcyIsIl9hYm91dC11cy5zY3NzIiwiX2dldC1pbi10b3VjaC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVlFLGdCQ29CTSx3QkFBNkQsQUFBN0QsdUJBQTZELEFDZG5FLG9CQ2pCc0IsQURrQnRCLGlCQUFpQixBQUNqQixpQkFBa0IsQ0ZFakIsQUkwSksseUNKcEtOLGdCQ29CTSx3QkFBNkQsQUFBN0Qsc0JBQTZELENEVmxFLENBQUEsQUkrSkssbUNKektOLGdCQ29CTSx1QkFBNkQsQUFBN0QscUJBQTZELENEVmxFLENBQUEsQUFWRCxzQkNvQk0sd0JBQTZELEFBQTdELHVCQUE2RCxBQ2RuRSxlRkZtQyxBRUduQyxpQkFBaUIsQUFDakIsaUJBQWtCLENGSGYsQUkrSkcseUNKcEtOLHNCQ29CTSx3QkFBNkQsQUFBN0Qsc0JBQTZELENEZmhFLENBQUEsQUlvS0csbUNKektOLHNCQ29CTSx1QkFBNkQsQUFBN0QscUJBQTZELENEZmhFLENBQUEsQUFMSCxxQkM2QkksZ0JBQTZELEFBQTdELGVBQTZELEFDdkJqRSxlRkVtQyxBRURuQyxpQkFBaUIsQUFDakIsaUJBQWtCLENGQ2YsQUFJSCxRRVNBLG9CQUFhLEFBQWIsYUFBYSxBQUNiLHVCQUhxQixBQUdyQixrQkFIcUIsQ0ZMcEIsQUFFRCxNSzRGQSxrQkFBTSxBQUFOLGNBQU0sQUFJSixhQUFlLEFBQ2YsWUFBYyxBQXNDZCxVQXRFaUMsQ0x0RGxDLEFBWEQsV0s0RkEsaUJBQU0sQUFBTixZQUFNLENMdkZILEFBTEgsYUs0RkEsa0JBQU0sQUFBTixhQUFNLENMbkZILEFBR0gsOEJLMkhFLFVBbEZZLENMbENYLEFBU0QseVBBTUksNkJBQWdCLEFBQWhCLGVBQWdCLENBQ2pCLEFJZ0hDLHlDSnZISix1UUFNSSw2QkFBZ0IsQUFBaEIsZUFBZ0IsQ0FDakIsQ0FBQSxBSWdIQyx5Q0p2SEoseVBBTUksNkJBQWdCLEFBQWhCLGVBQWdCLENBQ2pCLENBQUEsQUFZSCwrTUs2Q0Ysa0JBQU0sQUFBTixhQUFNLENMM0NILEFBYUMsaUJLeUVGLGNDbkJ5RCxDTm5EdEQsQUFIRCxpQkt5RUYsZUNuQnlELENObkR0RCxBQUhELGlCS3lFRixTQ25CeUQsQ05uRHRELEFBSEQsaUJLeUVGLGVDbkJ5RCxDTm5EdEQsQUFIRCxpQkt5RUYsZUNuQnlELENObkR0RCxBQUhELGlCS3lFRixTQ25CeUQsQ05uRHRELEFBSEQsaUJLeUVGLGVDbkJ5RCxDTm5EdEQsQUFIRCxpQkt5RUYsZUNuQnlELENObkR0RCxBQUhELGlCS3lFRixTQ25CeUQsQ05uRHRELEFBSEQsa0JLeUVGLGVDbkJ5RCxDTm5EdEQsQUFIRCxrQkt5RUYsZUNuQnlELENObkR0RCxBQUhELGtCS3lFRixVQ25CeUQsQ05uRHRELEFJa0ZDLHlDSnpHRixxQktrREosaUJBQU0sQUFBTixhQUFNLEFBMkNKLFVBbEZZLENMVFQsQUFHSCxrUEs2Q0Ysa0JBQU0sQUFBTixhQUFNLENMM0NILEFBSUMsdUJLa0ZGLFVBbEZZLENMR1QsQUFNRCxrQkt5RUYsY0NuQnlELENObkR0RCxBQUhELGtCS3lFRixlQ25CeUQsQ05uRHRELEFBSEQsa0JLeUVGLFNDbkJ5RCxDTm5EdEQsQUFIRCxrQkt5RUYsZUNuQnlELENObkR0RCxBQUhELGtCS3lFRixlQ25CeUQsQ05uRHRELEFBSEQsa0JLeUVGLFNDbkJ5RCxDTm5EdEQsQUFIRCxrQkt5RUYsZUNuQnlELENObkR0RCxBQUhELGtCS3lFRixlQ25CeUQsQ05uRHRELEFBSEQsa0JLeUVGLFNDbkJ5RCxDTm5EdEQsQUFIRCxtQkt5RUYsZUNuQnlELENObkR0RCxBQUhELG1CS3lFRixlQ25CeUQsQ05uRHRELEFBSEQsbUJLeUVGLFVDbkJ5RCxDTm5EdEQsQ0FBQSxBSWtGQyx5Q0p6R0Ysb0JLa0RKLGlCQUFNLEFBQU4sYUFBTSxBQTJDSixVQWxGWSxDTFRULEFBR0gscU9LNkNGLGtCQUFNLEFBQU4sYUFBTSxDTDNDSCxBQUlDLHNCS2tGRixVQWxGWSxDTEdULEFBTUQsaUJLeUVGLGNDbkJ5RCxDTm5EdEQsQUFIRCxpQkt5RUYsZUNuQnlELENObkR0RCxBQUhELGlCS3lFRixTQ25CeUQsQ05uRHRELEFBSEQsaUJLeUVGLGVDbkJ5RCxDTm5EdEQsQUFIRCxpQkt5RUYsZUNuQnlELENObkR0RCxBQUhELGlCS3lFRixTQ25CeUQsQ05uRHRELEFBSEQsaUJLeUVGLGVDbkJ5RCxDTm5EdEQsQUFIRCxpQkt5RUYsZUNuQnlELENObkR0RCxBQUhELGlCS3lFRixTQ25CeUQsQ05uRHRELEFBSEQsa0JLeUVGLGVDbkJ5RCxDTm5EdEQsQUFIRCxrQkt5RUYsZUNuQnlELENObkR0RCxBQUhELGtCS3lFRixVQ25CeUQsQ05uRHRELENBQUEsQUFLTCxrQ0FDRSxVQUFXLENBQ1osQUFHRCxrQ0FDRSxXQUFZLENBQ2IsQUE2QkQsZUN2R00scUJBQTZELEFBQTdELHFCQUE2RCxDRHNJbEUsQUlVSyx5Q0p6Q04sZUN2R00sc0JBQTZELEFBQTdELHNCQUE2RCxDRHNJbEUsQ0FBQSxBQS9CRCxxQks2QkUsMkJBdEQ4RixBSnJFNUYsb0JBQTZELEFBQTdELG9CQUE2RCxDRG9HOUQsQUltQ0cseUNKekNOLHFCSzZCRSw0QkF0RDhGLEFKckU1RixxQkFBNkQsQUFBN0QscUJBQTZELENEMkcxRCxDQUFBLEFBakNQLDRDS2lERSxVQWxGWSxDTG1DYixBQU1DLHdCS3lDQSw4QkF0RDhGLENMZTdGLEFBRkQsd0JLeUNBLCtCQXREOEYsQ0xlN0YsQUFGRCx3Qkt5Q0EseUJBdEQ4RixDTGU3RixBQUZELHdCS3lDQSwrQkF0RDhGLENMZTdGLEFBRkQsd0JLeUNBLCtCQXREOEYsQ0xlN0YsQUFGRCx3Qkt5Q0EseUJBdEQ4RixDTGU3RixBQUZELHdCS3lDQSwrQkF0RDhGLENMZTdGLEFBRkQsd0JLeUNBLCtCQXREOEYsQ0xlN0YsQUFGRCx3Qkt5Q0EseUJBdEQ4RixDTGU3RixBQUZELHlCS3lDQSwrQkF0RDhGLENMZTdGLEFBRkQseUJLeUNBLCtCQXREOEYsQ0xlN0YsQUFGRCx5Qkt5Q0EsMEJBdEQ4RixDTGU3RixBSW1ERyx5Q0o3RE4sNENLaURFLFVBbEZZLENMbUNiLEFBTUMsd0JLeUNBLCtCQXREOEYsQ0xlN0YsQUFGRCx3Qkt5Q0EsZ0NBdEQ4RixDTGU3RixBQUZELHdCS3lDQSwwQkF0RDhGLENMZTdGLEFBRkQsd0JLeUNBLGdDQXREOEYsQ0xlN0YsQUFGRCx3Qkt5Q0EsZ0NBdEQ4RixDTGU3RixBQUZELHdCS3lDQSwwQkF0RDhGLENMZTdGLEFBRkQsd0JLeUNBLGdDQXREOEYsQ0xlN0YsQUFGRCx3Qkt5Q0EsZ0NBdEQ4RixDTGU3RixBQUZELHdCS3lDQSwwQkF0RDhGLENMZTdGLEFBRkQseUJLeUNBLGdDQXREOEYsQ0xlN0YsQUFGRCx5Qkt5Q0EsZ0NBdEQ4RixDTGU3RixBQUZELHlCS3lDQSwyQkF0RDhGLENMZTdGLEFBVkgsMERLaURFLFVBbEZZLENMbUNiLEFBTUMseUJLeUNBLCtCQXREOEYsQ0xlN0YsQUFGRCx5Qkt5Q0EsZ0NBdEQ4RixDTGU3RixBQUZELHlCS3lDQSwwQkF0RDhGLENMZTdGLEFBRkQseUJLeUNBLGdDQXREOEYsQ0xlN0YsQUFGRCx5Qkt5Q0EsZ0NBdEQ4RixDTGU3RixBQUZELHlCS3lDQSwwQkF0RDhGLENMZTdGLEFBRkQseUJLeUNBLGdDQXREOEYsQ0xlN0YsQUFGRCx5Qkt5Q0EsZ0NBdEQ4RixDTGU3RixBQUZELHlCS3lDQSwwQkF0RDhGLENMZTdGLEFBRkQsMEJLeUNBLGdDQXREOEYsQ0xlN0YsQUFGRCwwQkt5Q0EsZ0NBdEQ4RixDTGU3RixBQUZELDBCS3lDQSwyQkF0RDhGLENMZTdGLENBQUEsQUltREcseUNKN0ROLHdES2lERSxVQWxGWSxDTG1DYixBQU1DLHdCS3lDQSwrQkF0RDhGLENMZTdGLEFBRkQsd0JLeUNBLGdDQXREOEYsQ0xlN0YsQUFGRCx3Qkt5Q0EsMEJBdEQ4RixDTGU3RixBQUZELHdCS3lDQSxnQ0F0RDhGLENMZTdGLEFBRkQsd0JLeUNBLGdDQXREOEYsQ0xlN0YsQUFGRCx3Qkt5Q0EsMEJBdEQ4RixDTGU3RixBQUZELHdCS3lDQSxnQ0F0RDhGLENMZTdGLEFBRkQsd0JLeUNBLGdDQXREOEYsQ0xlN0YsQUFGRCx3Qkt5Q0EsMEJBdEQ4RixDTGU3RixBQUZELHlCS3lDQSxnQ0F0RDhGLENMZTdGLEFBRkQseUJLeUNBLGdDQXREOEYsQ0xlN0YsQUFGRCx5Qkt5Q0EsMkJBdEQ4RixDTGU3RixDQUFBLEFBOENILGdDQzNJTSxzQkFBNkQsQUFBN0Qsb0JBQTZELENEZ0poRSxBSUFHLHlDSkxOLGdDQzNJTSx1QkFBNkQsQUFBN0QscUJBQTZELENEZ0poRSxDQUFBLEFBSUQsMkNDcEpJLHNCQUE2RCxBQUE3RCxvQkFBNkQsQ0RzSmhFLEFJTkcseUNKSUosMkNDcEpJLHVCQUE2RCxBQUE3RCxxQkFBNkQsQ0RzSmhFLENBQUEsQUFYSCxzQkMzSU0sc0JBQTZELEFBQTdELG9CQUE2RCxDRDJKaEUsQUlYRyx5Q0pMTixzQkMzSU0sdUJBQTZELEFBQTdELHFCQUE2RCxDRDJKaEUsQ0FBQSxBTzNKSCxrQkZvSUUsVUNuQnlELENDL0cxRCxBQUZELGtCRm9JRSxTQ25CeUQsQ0MvRzFELEFBRkQsa0JGb0lFLGVDbkJ5RCxDQy9HMUQsQUFGRCxrQkZvSUUsU0NuQnlELENDL0cxRCxBQUZELGtCRm9JRSxTQ25CeUQsQ0MvRzFELEFBRkQsa0JGb0lFLGVDbkJ5RCxDQy9HMUQsQUFGRCxrQkZvSUUsZUNuQnlELENDL0cxRCxBQUZELGtCRm9JRSxXQ25CeUQsQ0MvRzFELEFIOElLLHlDR2hKTixtQkZvSUUsVUNuQnlELENDL0cxRCxBQUZELG1CRm9JRSxTQ25CeUQsQ0MvRzFELEFBRkQsbUJGb0lFLGVDbkJ5RCxDQy9HMUQsQUFGRCxtQkZvSUUsU0NuQnlELENDL0cxRCxBQUZELG1CRm9JRSxTQ25CeUQsQ0MvRzFELEFBRkQsbUJGb0lFLGVDbkJ5RCxDQy9HMUQsQUFGRCxtQkZvSUUsZUNuQnlELENDL0cxRCxBQUZELG1CRm9JRSxXQ25CeUQsQ0MvRzFELENBQUEsQUg4SUsseUNHaEpOLGtCRm9JRSxVQ25CeUQsQ0MvRzFELEFBRkQsa0JGb0lFLFNDbkJ5RCxDQy9HMUQsQUFGRCxrQkZvSUUsZUNuQnlELENDL0cxRCxBQUZELGtCRm9JRSxTQ25CeUQsQ0MvRzFELEFBRkQsa0JGb0lFLFNDbkJ5RCxDQy9HMUQsQUFGRCxrQkZvSUUsZUNuQnlELENDL0cxRCxBQUZELGtCRm9JRSxlQ25CeUQsQ0MvRzFELEFBRkQsa0JGb0lFLFdDbkJ5RCxDQy9HMUQsQ0FBQSxBQUZELGdDRm9JRSwwQkF0RDhGLENFNUUvRixBQUZELGdDRm9JRSx5QkF0RDhGLENFNUUvRixBQUZELGdDRm9JRSwrQkF0RDhGLENFNUUvRixBQUZELGdDRm9JRSx5QkF0RDhGLENFNUUvRixBQUZELGdDRm9JRSx5QkF0RDhGLENFNUUvRixBQUZELGdDRm9JRSwrQkF0RDhGLENFNUUvRixBQUZELGdDRm9JRSwrQkF0RDhGLENFNUUvRixBQUZELGdDRm9JRSwyQkF0RDhGLENFNUUvRixBSDhJSyx5Q0doSk4sZ0NGb0lFLDJCQXREOEYsQ0U1RS9GLEFBRkQsZ0NGb0lFLDBCQXREOEYsQ0U1RS9GLEFBRkQsZ0NGb0lFLGdDQXREOEYsQ0U1RS9GLEFBRkQsZ0NGb0lFLDBCQXREOEYsQ0U1RS9GLEFBRkQsZ0NGb0lFLDBCQXREOEYsQ0U1RS9GLEFBRkQsZ0NGb0lFLGdDQXREOEYsQ0U1RS9GLEFBRkQsZ0NGb0lFLGdDQXREOEYsQ0U1RS9GLEFBRkQsZ0NGb0lFLDRCQXREOEYsQ0U1RS9GLEFBRkQsaUNGb0lFLDJCQXREOEYsQ0U1RS9GLEFBRkQsaUNGb0lFLDBCQXREOEYsQ0U1RS9GLEFBRkQsaUNGb0lFLGdDQXREOEYsQ0U1RS9GLEFBRkQsaUNGb0lFLDBCQXREOEYsQ0U1RS9GLEFBRkQsaUNGb0lFLDBCQXREOEYsQ0U1RS9GLEFBRkQsaUNGb0lFLGdDQXREOEYsQ0U1RS9GLEFBRkQsaUNGb0lFLGdDQXREOEYsQ0U1RS9GLEFBRkQsaUNGb0lFLDRCQXREOEYsQ0U1RS9GLENBQUEsQUg4SUsseUNHaEpOLGdDRm9JRSwyQkF0RDhGLENFNUUvRixBQUZELGdDRm9JRSwwQkF0RDhGLENFNUUvRixBQUZELGdDRm9JRSxnQ0F0RDhGLENFNUUvRixBQUZELGdDRm9JRSwwQkF0RDhGLENFNUUvRixBQUZELGdDRm9JRSwwQkF0RDhGLENFNUUvRixBQUZELGdDRm9JRSxnQ0F0RDhGLENFNUUvRixBQUZELGdDRm9JRSxnQ0F0RDhGLENFNUUvRixBQUZELGdDRm9JRSw0QkF0RDhGLENFNUUvRixDQUFBLEFDTkcsb0RBRUksZUFBMEIsQUFBMUIsYUFBMEIsQ0FFN0IsQUFvQkssZ0NIZ0hSLGNDbkJ5RCxDRTNGaEQsQUFGRCxnQ0hnSFIsZUNuQnlELENFM0ZoRCxBQUZELGdDSGdIUixTQ25CeUQsQ0UzRmhELEFBRkQsZ0NIZ0hSLGVDbkJ5RCxDRTNGaEQsQUFGRCxnQ0hnSFIsZUNuQnlELENFM0ZoRCxBQUZELGdDSGdIUixTQ25CeUQsQ0UzRmhELEFBRkQsZ0NIZ0hSLGVDbkJ5RCxDRTNGaEQsQUFGRCxnQ0hnSFIsZUNuQnlELENFM0ZoRCxBQUZELGdDSGdIUixTQ25CeUQsQ0UzRmhELEFBRkQsaUNIZ0hSLGVDbkJ5RCxDRTNGaEQsQUFGRCxpQ0hnSFIsZUNuQnlELENFM0ZoRCxBQUZELGlDSGdIUixVQ25CeUQsQ0UzRmhELEFKMEhMLHlDSTVISSxpQ0hnSFIsY0NuQnlELENFM0ZoRCxBQUZELGlDSGdIUixlQ25CeUQsQ0UzRmhELEFBRkQsaUNIZ0hSLFNDbkJ5RCxDRTNGaEQsQUFGRCxpQ0hnSFIsZUNuQnlELENFM0ZoRCxBQUZELGlDSGdIUixlQ25CeUQsQ0UzRmhELEFBRkQsaUNIZ0hSLFNDbkJ5RCxDRTNGaEQsQUFGRCxpQ0hnSFIsZUNuQnlELENFM0ZoRCxBQUZELGlDSGdIUixlQ25CeUQsQ0UzRmhELEFBRkQsaUNIZ0hSLFNDbkJ5RCxDRTNGaEQsQUFGRCxrQ0hnSFIsZUNuQnlELENFM0ZoRCxBQUZELGtDSGdIUixlQ25CeUQsQ0UzRmhELEFBRkQsa0NIZ0hSLFVDbkJ5RCxDRTNGaEQsQ0FBQSxBSjBITCx5Q0k1SEksZ0NIZ0hSLGNDbkJ5RCxDRTNGaEQsQUFGRCxnQ0hnSFIsZUNuQnlELENFM0ZoRCxBQUZELGdDSGdIUixTQ25CeUQsQ0UzRmhELEFBRkQsZ0NIZ0hSLGVDbkJ5RCxDRTNGaEQsQUFGRCxnQ0hnSFIsZUNuQnlELENFM0ZoRCxBQUZELGdDSGdIUixTQ25CeUQsQ0UzRmhELEFBRkQsZ0NIZ0hSLGVDbkJ5RCxDRTNGaEQsQUFGRCxnQ0hnSFIsZUNuQnlELENFM0ZoRCxBQUZELGdDSGdIUixTQ25CeUQsQ0UzRmhELEFBRkQsaUNIZ0hSLGVDbkJ5RCxDRTNGaEQsQUFGRCxpQ0hnSFIsZUNuQnlELENFM0ZoRCxBQUZELGlDSGdIUixVQ25CeUQsQ0UzRmhELENBQUEsQVJ1TFAsd0JRN0tFLGVBQTBCLEFBQTFCLGFBQTBCLENSK0szQixBUTVLRCw4QkFFSSxnQkFBNEIsQUFBNUIsY0FBNEIsQ0FFL0IsQUp5R0MseUNJcEpGLHNEQUVJLGVBQTBCLEFBQTFCLGFBQTBCLENBRTdCLENBQUEsQUpnSkMseUNJcklJLGlDSHlIUixjQ25CeUQsQ0VwR2hELEFBRkQsaUNIeUhSLGVDbkJ5RCxDRXBHaEQsQUFGRCxpQ0h5SFIsU0NuQnlELENFcEdoRCxBQUZELGlDSHlIUixlQ25CeUQsQ0VwR2hELEFBRkQsaUNIeUhSLGVDbkJ5RCxDRXBHaEQsQUFGRCxpQ0h5SFIsU0NuQnlELENFcEdoRCxBQUZELGlDSHlIUixlQ25CeUQsQ0VwR2hELEFBRkQsaUNIeUhSLGVDbkJ5RCxDRXBHaEQsQUFGRCxpQ0h5SFIsU0NuQnlELENFcEdoRCxBQUZELGtDSHlIUixlQ25CeUQsQ0VwR2hELEFBRkQsa0NIeUhSLGVDbkJ5RCxDRXBHaEQsQUFGRCxrQ0h5SFIsVUNuQnlELENFcEdoRCxDQUFBLEFKbUlMLHlDSTVISSxrQ0hnSFIsY0NuQnlELENFM0ZoRCxBQUZELGtDSGdIUixlQ25CeUQsQ0UzRmhELEFBRkQsa0NIZ0hSLFNDbkJ5RCxDRTNGaEQsQUFGRCxrQ0hnSFIsZUNuQnlELENFM0ZoRCxBQUZELGtDSGdIUixlQ25CeUQsQ0UzRmhELEFBRkQsa0NIZ0hSLFNDbkJ5RCxDRTNGaEQsQUFGRCxrQ0hnSFIsZUNuQnlELENFM0ZoRCxBQUZELGtDSGdIUixlQ25CeUQsQ0UzRmhELEFBRkQsa0NIZ0hSLFNDbkJ5RCxDRTNGaEQsQUFGRCxtQ0hnSFIsZUNuQnlELENFM0ZoRCxBQUZELG1DSGdIUixlQ25CeUQsQ0UzRmhELEFBRkQsbUNIZ0hSLFVDbkJ5RCxDRTNGaEQsQ0FBQSxBSjBITCx5Q0k1SEksaUNIZ0hSLGNDbkJ5RCxDRTNGaEQsQUFGRCxpQ0hnSFIsZUNuQnlELENFM0ZoRCxBQUZELGlDSGdIUixTQ25CeUQsQ0UzRmhELEFBRkQsaUNIZ0hSLGVDbkJ5RCxDRTNGaEQsQUFGRCxpQ0hnSFIsZUNuQnlELENFM0ZoRCxBQUZELGlDSGdIUixTQ25CeUQsQ0UzRmhELEFBRkQsaUNIZ0hSLGVDbkJ5RCxDRTNGaEQsQUFGRCxpQ0hnSFIsZUNuQnlELENFM0ZoRCxBQUZELGlDSGdIUixTQ25CeUQsQ0UzRmhELEFBRkQsa0NIZ0hSLGVDbkJ5RCxDRTNGaEQsQUFGRCxrQ0hnSFIsZUNuQnlELENFM0ZoRCxBQUZELGtDSGdIUixVQ25CeUQsQ0UzRmhELENBQUEsQUowSEwseUNKNkRGLHlCUTdLRSxlQUEwQixBQUExQixhQUEwQixDUitLM0IsQVE1S0QsK0JBRUksZ0JBQTRCLEFBQTVCLGNBQTRCLENBRS9CLENBQUEsQUp5R0MseUNJcEpGLG9EQUVJLGVBQTBCLEFBQTFCLGFBQTBCLENBRTdCLENBQUEsQUpnSkMseUNJcklJLGdDSHlIUixjQ25CeUQsQ0VwR2hELEFBRkQsZ0NIeUhSLGVDbkJ5RCxDRXBHaEQsQUFGRCxnQ0h5SFIsU0NuQnlELENFcEdoRCxBQUZELGdDSHlIUixlQ25CeUQsQ0VwR2hELEFBRkQsZ0NIeUhSLGVDbkJ5RCxDRXBHaEQsQUFGRCxnQ0h5SFIsU0NuQnlELENFcEdoRCxBQUZELGdDSHlIUixlQ25CeUQsQ0VwR2hELEFBRkQsZ0NIeUhSLGVDbkJ5RCxDRXBHaEQsQUFGRCxnQ0h5SFIsU0NuQnlELENFcEdoRCxBQUZELGlDSHlIUixlQ25CeUQsQ0VwR2hELEFBRkQsaUNIeUhSLGVDbkJ5RCxDRXBHaEQsQUFGRCxpQ0h5SFIsVUNuQnlELENFcEdoRCxDQUFBLEFKbUlMLHlDSXJJSSxpQ0h5SFIsY0NuQnlELENFcEdoRCxBQUZELGlDSHlIUixlQ25CeUQsQ0VwR2hELEFBRkQsaUNIeUhSLFNDbkJ5RCxDRXBHaEQsQUFGRCxpQ0h5SFIsZUNuQnlELENFcEdoRCxBQUZELGlDSHlIUixlQ25CeUQsQ0VwR2hELEFBRkQsaUNIeUhSLFNDbkJ5RCxDRXBHaEQsQUFGRCxpQ0h5SFIsZUNuQnlELENFcEdoRCxBQUZELGlDSHlIUixlQ25CeUQsQ0VwR2hELEFBRkQsaUNIeUhSLFNDbkJ5RCxDRXBHaEQsQUFGRCxrQ0h5SFIsZUNuQnlELENFcEdoRCxBQUZELGtDSHlIUixlQ25CeUQsQ0VwR2hELEFBRkQsa0NIeUhSLFVDbkJ5RCxDRXBHaEQsQ0FBQSxBSm1JTCx5Q0k1SEksZ0NIZ0hSLGNDbkJ5RCxDRTNGaEQsQUFGRCxnQ0hnSFIsZUNuQnlELENFM0ZoRCxBQUZELGdDSGdIUixTQ25CeUQsQ0UzRmhELEFBRkQsZ0NIZ0hSLGVDbkJ5RCxDRTNGaEQsQUFGRCxnQ0hnSFIsZUNuQnlELENFM0ZoRCxBQUZELGdDSGdIUixTQ25CeUQsQ0UzRmhELEFBRkQsZ0NIZ0hSLGVDbkJ5RCxDRTNGaEQsQUFGRCxnQ0hnSFIsZUNuQnlELENFM0ZoRCxBQUZELGdDSGdIUixTQ25CeUQsQ0UzRmhELEFBRkQsaUNIZ0hSLGVDbkJ5RCxDRTNGaEQsQUFGRCxpQ0hnSFIsZUNuQnlELENFM0ZoRCxBQUZELGlDSGdIUixVQ25CeUQsQ0UzRmhELENBQUEsQUowSEwseUNKNkRGLHdCUTdLRSxlQUEwQixBQUExQixhQUEwQixDUitLM0IsQVE1S0QsOEJBRUksZ0JBQTRCLEFBQTVCLGNBQTRCLENBRS9CLENBQUEsQVJvTEQsZ0JTdk1GLGFBQTZCLENUeU0xQixBQUVELCtCUzNNRiw4QkFBNkIsQ1Q2TTFCLEFBTkQsZ0JTdk1GLG9CQUE2QixDVHlNMUIsQUFFRCwrQlMzTUYsb0NBQTZCLENUNk0xQixBQU5ELGdCU3ZNRixxQkFBNkIsQ1R5TTFCLEFBRUQsK0JTM01GLHFDQUE2QixDVDZNMUIsQUFORCxnQlN2TUYsZUFBNkIsQ1R5TTFCLEFBRUQsK0JTM01GLCtCQUE2QixDVDZNMUIsQUFORCxnQlN2TUYscUJBQTZCLENUeU0xQixBQUVELCtCUzNNRixxQ0FBNkIsQ1Q2TTFCLEFBTkQsZ0JTdk1GLHFCQUE2QixDVHlNMUIsQUFFRCwrQlMzTUYscUNBQTZCLENUNk0xQixBQU5ELGdCU3ZNRixlQUE2QixDVHlNMUIsQUFFRCwrQlMzTUYsK0JBQTZCLENUNk0xQixBQU5ELGdCU3ZNRixxQkFBNkIsQ1R5TTFCLEFBRUQsK0JTM01GLHFDQUE2QixDVDZNMUIsQUFORCxnQlN2TUYscUJBQTZCLENUeU0xQixBQUVELCtCUzNNRixxQ0FBNkIsQ1Q2TTFCLEFBTkQsZ0JTdk1GLGVBQTZCLENUeU0xQixBQUVELCtCUzNNRiwrQkFBNkIsQ1Q2TTFCLEFBTkQsaUJTdk1GLHFCQUE2QixDVHlNMUIsQUFFRCxnQ1MzTUYscUNBQTZCLENUNk0xQixBQU5ELGlCU3ZNRixxQkFBNkIsQ1R5TTFCLEFBRUQsZ0NTM01GLHFDQUE2QixDVDZNMUIsQUlqRkMseUNKMkVGLGlCU3ZNRixhQUE2QixDVHlNMUIsQUFFRCxnQ1MzTUYsK0JBQTZCLENUNk0xQixBQU5ELGlCU3ZNRixvQkFBNkIsQ1R5TTFCLEFBRUQsZ0NTM01GLHFDQUE2QixDVDZNMUIsQUFORCxpQlN2TUYscUJBQTZCLENUeU0xQixBQUVELGdDUzNNRixzQ0FBNkIsQ1Q2TTFCLEFBTkQsaUJTdk1GLGVBQTZCLENUeU0xQixBQUVELGdDUzNNRixnQ0FBNkIsQ1Q2TTFCLEFBTkQsaUJTdk1GLHFCQUE2QixDVHlNMUIsQUFFRCxnQ1MzTUYsc0NBQTZCLENUNk0xQixBQU5ELGlCU3ZNRixxQkFBNkIsQ1R5TTFCLEFBRUQsZ0NTM01GLHNDQUE2QixDVDZNMUIsQUFORCxpQlN2TUYsZUFBNkIsQ1R5TTFCLEFBRUQsZ0NTM01GLGdDQUE2QixDVDZNMUIsQUFORCxpQlN2TUYscUJBQTZCLENUeU0xQixBQUVELGdDUzNNRixzQ0FBNkIsQ1Q2TTFCLEFBTkQsaUJTdk1GLHFCQUE2QixDVHlNMUIsQUFFRCxnQ1MzTUYsc0NBQTZCLENUNk0xQixBQU5ELGlCU3ZNRixlQUE2QixDVHlNMUIsQUFFRCxnQ1MzTUYsZ0NBQTZCLENUNk0xQixBQU5ELGtCU3ZNRixxQkFBNkIsQ1R5TTFCLEFBRUQsaUNTM01GLHNDQUE2QixDVDZNMUIsQUFORCxrQlN2TUYscUJBQTZCLENUeU0xQixBQUVELGlDUzNNRixzQ0FBNkIsQ1Q2TTFCLENBQUEsQUlqRkMseUNKMkVGLGdCU3ZNRixhQUE2QixDVHlNMUIsQUFFRCwrQlMzTUYsK0JBQTZCLENUNk0xQixBQU5ELGdCU3ZNRixvQkFBNkIsQ1R5TTFCLEFBRUQsK0JTM01GLHFDQUE2QixDVDZNMUIsQUFORCxnQlN2TUYscUJBQTZCLENUeU0xQixBQUVELCtCUzNNRixzQ0FBNkIsQ1Q2TTFCLEFBTkQsZ0JTdk1GLGVBQTZCLENUeU0xQixBQUVELCtCUzNNRixnQ0FBNkIsQ1Q2TTFCLEFBTkQsZ0JTdk1GLHFCQUE2QixDVHlNMUIsQUFFRCwrQlMzTUYsc0NBQTZCLENUNk0xQixBQU5ELGdCU3ZNRixxQkFBNkIsQ1R5TTFCLEFBRUQsK0JTM01GLHNDQUE2QixDVDZNMUIsQUFORCxnQlN2TUYsZUFBNkIsQ1R5TTFCLEFBRUQsK0JTM01GLGdDQUE2QixDVDZNMUIsQUFORCxnQlN2TUYscUJBQTZCLENUeU0xQixBQUVELCtCUzNNRixzQ0FBNkIsQ1Q2TTFCLEFBTkQsZ0JTdk1GLHFCQUE2QixDVHlNMUIsQUFFRCwrQlMzTUYsc0NBQTZCLENUNk0xQixBQU5ELGdCU3ZNRixlQUE2QixDVHlNMUIsQUFFRCwrQlMzTUYsZ0NBQTZCLENUNk0xQixBQU5ELGlCU3ZNRixxQkFBNkIsQ1R5TTFCLEFBRUQsZ0NTM01GLHNDQUE2QixDVDZNMUIsQUFORCxpQlN2TUYscUJBQTZCLENUeU0xQixBQUVELGdDUzNNRixzQ0FBNkIsQ1Q2TTFCLENBQUEsQUF6SlMsUUV0RWQsb0JBQWEsQUFBYixhQUFhLEFBQ2IsNEJBSDZCLEFBRzdCLHVCQUg2QixDRjhTNUIsQUE3REQsY0sxSUEsWUFBbUIsQUFDbkIsZUFBMkIsQ0wrSXhCLEFBTkgsOEJLN0dFLFdBbEZZLENMNk1YLEFBZEgseVBBMkJNLDZCQUFnQixBQUFoQixlQUFnQixDQUNqQixBSTdIQyx5Q0ppR04sdVFBMkJNLDZCQUFnQixBQUFoQixlQUFnQixDQUNqQixDQUFBLEFJN0hDLHlDSmlHTix5UEEyQk0sNkJBQWdCLEFBQWhCLGVBQWdCLENBQ2pCLENBQUEsQUE1QkwsK01LeEpBLGtCQUFNLEFBQU4sYUFBTSxDTGlNRCxBQXpDTCxpQks3R0UsZUNuQnlELENOeUxwRCxBQXpEUCxpQks3R0UsZ0JDbkJ5RCxDTnlMcEQsQUF6RFAsaUJLN0dFLFVDbkJ5RCxDTnlMcEQsQUF6RFAsaUJLN0dFLGdCQ25CeUQsQ055THBELEFBekRQLGlCSzdHRSxnQkNuQnlELENOeUxwRCxBQXpEUCxpQks3R0UsVUNuQnlELENOeUxwRCxBQXpEUCxpQks3R0UsZ0JDbkJ5RCxDTnlMcEQsQUF6RFAsaUJLN0dFLGdCQ25CeUQsQ055THBELEFBekRQLGlCSzdHRSxVQ25CeUQsQ055THBELEFBekRQLGtCSzdHRSxnQkNuQnlELENOeUxwRCxBQXpEUCxrQks3R0UsZ0JDbkJ5RCxDTnlMcEQsQUF6RFAsa0JLN0dFLFdDbkJ5RCxDTnlMcEQsQUkxSkQseUNKaUdOLHFCS3hKQSxpQkFBTSxBQUFOLGFBQU0sQUEyQ0osV0FsRlksQ0xtT1AsQUFwQ1Asa1BLeEpBLGtCQUFNLEFBQU4sYUFBTSxDTGlNRCxBQXpDTCx1Qks3R0UsV0FsRlksQ0wrT1AsQUFoRFAsa0JLN0dFLGVDbkJ5RCxDTnlMcEQsQUF6RFAsa0JLN0dFLGdCQ25CeUQsQ055THBELEFBekRQLGtCSzdHRSxVQ25CeUQsQ055THBELEFBekRQLGtCSzdHRSxnQkNuQnlELENOeUxwRCxBQXpEUCxrQks3R0UsZ0JDbkJ5RCxDTnlMcEQsQUF6RFAsa0JLN0dFLFVDbkJ5RCxDTnlMcEQsQUF6RFAsa0JLN0dFLGdCQ25CeUQsQ055THBELEFBekRQLGtCSzdHRSxnQkNuQnlELENOeUxwRCxBQXpEUCxrQks3R0UsVUNuQnlELENOeUxwRCxBQXpEUCxtQks3R0UsZ0JDbkJ5RCxDTnlMcEQsQUF6RFAsbUJLN0dFLGdCQ25CeUQsQ055THBELEFBekRQLG1CSzdHRSxXQ25CeUQsQ055THBELENBQUEsQUkxSkQseUNKaUdOLG9CS3hKQSxpQkFBTSxBQUFOLGFBQU0sQUEyQ0osV0FsRlksQ0xtT1AsQUFwQ1AscU9LeEpBLGtCQUFNLEFBQU4sYUFBTSxDTGlNRCxBQXpDTCxzQks3R0UsV0FsRlksQ0wrT1AsQUFoRFAsaUJLN0dFLGVDbkJ5RCxDTnlMcEQsQUF6RFAsaUJLN0dFLGdCQ25CeUQsQ055THBELEFBekRQLGlCSzdHRSxVQ25CeUQsQ055THBELEFBekRQLGlCSzdHRSxnQkNuQnlELENOeUxwRCxBQXpEUCxpQks3R0UsZ0JDbkJ5RCxDTnlMcEQsQUF6RFAsaUJLN0dFLFVDbkJ5RCxDTnlMcEQsQUF6RFAsaUJLN0dFLGdCQ25CeUQsQ055THBELEFBekRQLGlCSzdHRSxnQkNuQnlELENOeUxwRCxBQXpEUCxpQks3R0UsVUNuQnlELENOeUxwRCxBQXpEUCxrQks3R0UsZ0JDbkJ5RCxDTnlMcEQsQUF6RFAsa0JLN0dFLGdCQ25CeUQsQ055THBELEFBekRQLGtCSzdHRSxXQ25CeUQsQ055THBELENBQUEsQUFPTCxnQ0NqVEksb0JBQTZELEFBQTdELHNCQUE2RCxDRHFUOUQsQUlyS0MseUNKaUtKLGdDQ2pUSSxxQkFBNkQsQUFBN0QsdUJBQTZELENEcVQ5RCxDQUFBLEFBSkgsc0JDalRJLG9CQUE2RCxBQUE3RCxzQkFB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QXREOEYsQUpyRTVGLG1CQUE2RCxBQUE3RCxxQkFBNkQsQ0RvRzlELEFJbUNHLHlDSnpDTixxQks2QkUsNkJBdEQ4RixBSnJFNUYsb0JBQTZELEFBQTdELHNCQUE2RCxDRDJHMUQsQ0FBQSxBQWpDUCw0Q0tpREUsV0FsRlksQ0xtQ2IsQUFNQyx3Qkt5Q0EsK0JBdEQ4RixDTGU3RixBQUZELHdCS3lDQSxnQ0F0RDhGLENMZTdGLEFBRkQsd0JLeUNBLDBCQXREOEYsQ0xlN0YsQUFGRCx3Qkt5Q0EsZ0NBdEQ4RixDTGU3RixBQUZELHdCS3lDQSxnQ0F0RDhGLENMZTdGLEFBRkQsd0JLeUNBLDBCQXREOEYsQ0xlN0YsQUFGRCx3Qkt5Q0EsZ0NBdEQ4RixDTGU3RixBQUZELHdCS3lDQSxnQ0F0RDhGLENMZTdGLEFBRkQsd0JLeUNBLDBCQXREOEYsQ0xlN0YsQUFGRCx5Qkt5Q0EsZ0NBdEQ4RixDTGU3RixBQUZELHlCS3lDQSxnQ0F0RDhGLENMZTdGLEFBRkQseUJLeUNBLDJCQXREOEYsQ0xlN0YsQUltREcseUNKN0ROLDRDS2lERSxXQWxGWSxDTG1DYixBQU1DLHdCS3lDQSxnQ0F0RDhGLENMZTdGLEFBRkQsd0JLeUNBLGlDQXREOEYsQ0xlN0YsQUFGRCx3Qkt5Q0EsMkJBdEQ4RixDTGU3RixBQUZELHdCS3lDQSxpQ0F0RDhGLENMZTdGLEFBRkQsd0JLeUNBLGlDQXREOEYsQ0xlN0YsQUFGRCx3Qkt5Q0EsMkJBdEQ4RixDTGU3RixBQUZELHdCS3lDQSxpQ0F0RDhGLENMZTdGLEFBRkQsd0JLeUNBLGlDQXREOEYsQ0xlN0YsQUFGRCx3Qkt5Q0EsMkJBdEQ4RixDTGU3RixBQUZELHlCS3lDQSxpQ0F0RDhGLENMZTdGLEFBRkQseUJLeUNBLGlDQXREOEYsQ0xlN0YsQUFGRCx5Qkt5Q0EsNEJBdEQ4RixDTGU3RixBQVZILDBES2lERSxXQWxGWSxDTG1DYixBQU1DLHlCS3lDQSxnQ0F0RDhGLENMZTdGLEFBRkQseUJLeUNBLGlDQXREOEYsQ0xlN0YsQUFGRCx5Qkt5Q0EsMkJBdEQ4RixDTGU3RixBQUZELHlCS3lDQSxpQ0F0RDhGLENMZTdGLEFBRkQseUJLeUNBLGlDQXREOEYsQ0xlN0YsQUFGRCx5Qkt5Q0EsMkJBdEQ4RixDTGU3RixBQUZELHlCS3lDQSxpQ0F0RDhGLENMZTdGLEFBRkQseUJLeUNBLGlDQXREOEYsQ0xlN0YsQUFGRCx5Qkt5Q0EsMkJBdEQ4RixDTGU3RixBQUZELDBCS3lDQSxpQ0F0RDhGLENMZTdGLEFBRkQsMEJLeUNBLGlDQXREOEYsQ0xlN0YsQUFGRCwwQkt5Q0EsNEJBdEQ4RixDTGU3RixDQUFBLEFJbURHLHlDSjdETix3REtpREUsV0FsRlksQ0xtQ2IsQUFNQyx3Qkt5Q0EsZ0NBdEQ4RixDTGU3RixBQUZELHdCS3lDQSxpQ0F0RDhGLENMZTdGLEFBRkQsd0JLeUNBLDJCQXREOEYsQ0xlN0YsQUFGRCx3Qkt5Q0EsaUNBdEQ4RixDTGU3RixBQUZELHdCS3lDQSxpQ0F0RDhGLENMZTdGLEFBRkQsd0JLeUNBLDJCQXREOEYsQ0xlN0YsQUFGRCx3Qkt5Q0EsaUNBdEQ4RixDTGU3RixBQUZELHdCS3lDQSxpQ0F0RDhGLENMZTdGLEFBRkQsd0JLeUNBLDJCQXREOEYsQ0xlN0YsQUFGRCx5Qkt5Q0EsaUNBdEQ4RixDTGU3RixBQUZELHlCS3lDQSxpQ0F0RDhGLENMZTdGLEFBRkQseUJLeUNBLDRCQXREOEYsQ0xlN0YsQ0FBQSxBQWtURCwwQlU1WUksNEJBQW1DLENWOFl0QyxBSWpRRyx5Q0orUEosMEJVNVlJLDZCQUFtQyxDVjhZdEMsQ0FBQSxBSWpRRyx5Q0orUEosMEJVNVlJLDZCQUFtQyxDVjhZdEMsQ0FBQSxBSWpRRyx5Q0ptUUYsaUNVaFpFLDZCQUFtQyxDVmtacEMsQ0FBQSxBSXJRQyx5Q0ptUUYsZ0NVaFpFLDZCQUFtQyxDVmtacEMsQ0FBQSxBVzNXSCxZQ25CRixvQkFyRHlELEFBcUR6RCwwQkFyRHlELENEMEV0RCxBQUZELGFDbkJGLGtCQXBEMEQsQUFvRDFELHdCQXBEMEQsQ0R5RXZELEFBRkQsY0NuQkYscUJBbkRrQixBQW1EbEIsc0JBbkRrQixDRHdFZixBQUZELGVDbkJGLHNCQWxE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NEJBQTZCLENBTTlCLEFBNUdQLCtDQXlHVSxnQkFBZ0IsQUFDaEIsZUFBaUIsQ0FDbEIsQUEzR1QscURBZ0hVLHFDQUF1QyxDQUN4QyxBQWpIVCxrRkFvSFUsU0FBVSxDQUNYLEFBckhULG1EQXVIVSxpQkFBa0IsQ0FDbkIsQUF4SFQsK0ZBaUlVLG9CdEJ0SEssQ3NCdUhOLEFBbElULG1EQXdJTSxvQnRCakg0QixBc0JrSDVCLGN0QjlIUyxBc0IrSFQsa0JBQWtCLEFBQ2xCLG1CQUFtQixBQUNuQixlQUFnQixDQUNqQixBQTdJTCxpREFpSk0sYUFBYSxBQUNiLGtCQUFrQixBQUNsQixtQnRCNUg0QixDc0J3STdCLEFBL0pMLHlFQXNKUSxxQnRCM0lPLEFzQjRJUCxhdEI1SU8sQ3NCNklSLEFBeEpQLG9FQTJKUSxrQkFBa0IsQUFDbEIsV0FBVyxBQUNYLGNBQWUsQ0FDaEIsQUE5SlAsa0NBa0tNLGVBQWdCLENBQ2pCIiwiZmlsZSI6ImFwcC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgeHktZ3JpZFxuLy8vL1xuXG4vLyBNYXJnaW4gR3JpZCBjbGFzc2VzXG5AbWl4aW4geHktYmFzZS1ncmlkLWNsYXNzZXMge1xuXG4gIC8vIEdyaWQgQ29udGFpbmVyXG4gIC5ncmlkLWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgeHktZ3JpZC1jb250YWluZXI7XG5cbiAgICAmLmZsdWlkIHtcbiAgICAgIEBpbmNsdWRlIHh5LWdyaWQtY29udGFpbmVyKDEwMCUpO1xuICAgIH1cblxuICAgICYuZnVsbCB7XG4gICAgICBAaW5jbHVkZSB4eS1ncmlkLWNvbnRhaW5lcigxMDAlLCAwKTtcbiAgICB9XG4gIH1cblxuICAvLyBCYXNlIGdyaWQgc3R5bGVzXG4gIC5ncmlkLXgge1xuICAgIEBpbmNsdWRlIHh5LWdyaWQ7XG4gIH1cblxuICAuY2VsbCB7XG4gICAgQGluY2x1ZGUgeHktY2VsbChmdWxsLCAkZ3V0dGVyLXR5cGU6IG5vbmUpO1xuXG4gICAgJi5hdXRvIHtcbiAgICAgIEBpbmNsdWRlIHh5LWNlbGwtYmFzZShhdXRvKTtcbiAgICB9XG5cbiAgICAmLnNocmluayB7XG4gICAgICBAaW5jbHVkZSB4eS1jZWxsLWJhc2Uoc2hyaW5rKTtcbiAgICB9XG5cbiAgfVxuICAuZ3JpZC14IHtcbiAgICA+IC5hdXRvIHtcbiAgICAgIEBpbmNsdWRlIHh5LWNlbGwtc2l6ZShhdXRvLCAkZ3V0dGVyLXR5cGU6IG5vbmUpO1xuICAgIH1cblxuICAgID4gLnNocmluayB7XG4gICAgICBAaW5jbHVkZSB4eS1jZWxsLXNpemUoc2hyaW5rLCAkZ3V0dGVyLXR5cGU6IG5vbmUpO1xuICAgIH1cbiAgfVxuXG4gIC8vIEF1dG8gd2lkdGhcbiAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCgpIHtcbiAgICAvLyBUaGlzIGlzIGEgYml0IG9mIGEgaGFjay93b3JrYXJvdW5kLCBzZWUgdGhlc2UgaXNzdWVzICYgUFJzIGZvciB0aGUgYmFja3N0b3J5OlxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mb3VuZGF0aW9uL2ZvdW5kYXRpb24tc2l0ZXMvaXNzdWVzLzEwMjQ0XG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZvdW5kYXRpb24vZm91bmRhdGlvbi1zaXRlcy9wdWxsLzEwMjIyIGFuZFxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mb3VuZGF0aW9uL2ZvdW5kYXRpb24tc2l0ZXMvcHVsbC8xMDE2NFxuICAgIC5ncmlkLXgge1xuICAgICAgJHN0cjogXCI+IC4jeyQtemYtc2l6ZX0tc2hyaW5rLCA+IC4jeyQtemYtc2l6ZX0tZnVsbFwiO1xuICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2x1bW5zIHtcbiAgICAgICAgJHN0cjogJHN0ciArIFwiLCA+IC4jeyQtemYtc2l6ZX0tI3skaX1cIlxuICAgICAgfVxuICAgICAgI3skc3RyfSB7XG4gICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCgpIHtcbiAgICAvLyBSZXNwb25zaXZlIFwiYXV0b1wiIG1vZGlmaWVyXG4gICAgQGlmIG5vdCgkLXpmLXNpemUgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQpIHtcbiAgICAgIC5ncmlkLXggPiAuI3skLXpmLXNpemV9LWF1dG8ge1xuICAgICAgICBAaW5jbHVkZSB4eS1jZWxsKGF1dG8sICRndXR0ZXItdHlwZTogbm9uZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJS14eS1jZWxsLWJhc2Utc2hyaW5rLWhvcml6b250YWwtI3skLXpmLXNpemV9IHtcbiAgICAgIEBpbmNsdWRlIHh5LWNlbGwtYmFzZShzaHJpbmspO1xuICAgIH1cblxuICAgIC8vIFJlc3BvbnNpdmUgXCJzaHJpbmtcIiBtb2RpZmllclxuICAgIEBpZiBub3QoJC16Zi1zaXplID09ICQtemYtemVyby1icmVha3BvaW50KSB7XG4gICAgICAuZ3JpZC14ID4gLiN7JC16Zi1zaXplfS1zaHJpbmsge1xuICAgICAgICBAZXh0ZW5kICUteHktY2VsbC1iYXNlLXNocmluay1ob3Jpem9udGFsLSN7JC16Zi1zaXplfTtcbiAgICAgICAgQGluY2x1ZGUgeHktY2VsbC1zaXplKHNocmluaywgJGd1dHRlci10eXBlOiBub25lKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSZXNwb25zaXZlIHdpZHRoIG1vZGlmaWVyc1xuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sdW1ucyB7XG4gICAgICAvLyBTaXppbmcgKHBlcmNlbnRhZ2UpXG4gICAgICAuZ3JpZC14ID4gLiN7JC16Zi1zaXplfS0jeyRpfSB7XG4gICAgICAgIEBleHRlbmQgJS14eS1jZWxsLWJhc2Utc2hyaW5rLWhvcml6b250YWwtI3skLXpmLXNpemV9O1xuICAgICAgICBAaW5jbHVkZSB4eS1jZWxsLXNpemUoJGksICRndXR0ZXItdHlwZTogbm9uZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gUmVzZXQgd2lkdGggd2hlbiB1c2luZyBgLmdyaWQtbWFyZ2luLXhgIG5vdCBvbiBgLmdyaWQteGBcbiAgLmdyaWQtbWFyZ2luLXg6bm90KC5ncmlkLXgpID4gLmNlbGwge1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG5cbiAgLy8gUmVzZXQgaGVpZ2h0IHdoZW4gdXNpbmcgYC5ncmlkLW1hcmdpbi15YCBub3Qgb24gYC5ncmlkLXlgXG4gIC5ncmlkLW1hcmdpbi15Om5vdCguZ3JpZC15KSA+IC5jZWxsIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cbn1cblxuQG1peGluIC14eS1icmVha3BvaW50LWNlbGwtY2xhc3NlcygkY2xhc3MtYnJlYWtwb2ludCwgJGd1dHRlci1icmVha3BvaW50LCAkdmVydGljYWwpIHtcbiAgJHByZWZpeDogaWYoJGNsYXNzLWJyZWFrcG9pbnQgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQsICcnLCAnI3skY2xhc3MtYnJlYWtwb2ludH0tJyk7XG4gID4gLiN7JHByZWZpeH1hdXRvIHtcbiAgICBAaW5jbHVkZSB4eS1jZWxsLXNpemUoYXV0bywgJHZlcnRpY2FsOiAkdmVydGljYWwpO1xuICB9XG5cbiAgPiAuI3skcHJlZml4fXNocmluayB7XG4gICAgQGluY2x1ZGUgeHktY2VsbC1zaXplKHNocmluaywgJHZlcnRpY2FsOiAkdmVydGljYWwpO1xuICB9XG5cbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2x1bW5zIHtcbiAgICAvLyBTaXppbmcgKHBlcmNlbnRhZ2UpXG4gICAgJGNsYXNzbmFtZTogaWYoJHZlcnRpY2FsLCAnLiN7JGNsYXNzLWJyZWFrcG9pbnR9LSN7JGl9JywgJy4jeyRjbGFzcy1icmVha3BvaW50fS0jeyRpfScpO1xuXG4gICAgPiAjeyRjbGFzc25hbWV9IHtcbiAgICAgIEBpbmNsdWRlIHh5LWNlbGwtc2l6ZSgkaSwgJHZlcnRpY2FsOiAkdmVydGljYWwpO1xuICAgIH1cbiAgfVxufVxuXG4vLyBNYXJnaW4gR3JpZCBjbGFzc2VzXG5AbWl4aW4geHktbWFyZ2luLWdyaWQtY2xhc3NlcyhcbiAgJGd1dHRlci1wb3NpdGlvbjogbGVmdCByaWdodCxcbiAgJHZlcnRpY2FsOiBmYWxzZSxcbiAgJHdyYXBwaW5nLXNlbGVjdG9yOiAnLmdyaWQtbWFyZ2luLXgnXG4pe1xuICAjeyR3cmFwcGluZy1zZWxlY3Rvcn0ge1xuICAgIEBpbmNsdWRlIHh5LWd1dHRlcnMoJG5lZ2F0aXZlOiB0cnVlLCAkZ3V0dGVyLXBvc2l0aW9uOiAkZ3V0dGVyLXBvc2l0aW9uKTtcblxuICAgIC8vIEJhc2UgY2VsbCBzdHlsZXNcbiAgICA+IC5jZWxsIHtcbiAgICAgIEBpbmNsdWRlIHh5LWNlbGwoJHZlcnRpY2FsOiAkdmVydGljYWwsICRvdXRwdXQ6IChzaXplIGd1dHRlcnMpKTtcbiAgICB9XG5cbiAgICAvLyBiYXNlIHN0eWxlcyBuZWVkIHRvIGFsbCBiZSBiZWZvcmUgdGhlIGF1dG8gYW5kIHNocmluayBzdHlsZXNcbiAgICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50KCkge1xuICAgICAgQGlmKHR5cGUtb2YoJGdyaWQtbWFyZ2luLWd1dHRlcnMpID09ICdtYXAnIGFuZCBtYXAtaGFzLWtleSgkZ3JpZC1tYXJnaW4tZ3V0dGVycywgJC16Zi1zaXplKSBhbmQgJC16Zi1zaXplICE9ICQtemYtemVyby1icmVha3BvaW50KSB7XG4gICAgICAgID4gLmNlbGwge1xuICAgICAgICAgIEBpbmNsdWRlIHh5LWNlbGwoJHZlcnRpY2FsOiAkdmVydGljYWwsICRvdXRwdXQ6IChzaXplIGd1dHRlcnMpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQoKSB7XG5cbiAgICAgIC8vIFRoaXMgaXMgcHVyZWx5IGZvciByZXNwb25zaXZlIGd1dHRlcnMgLSB0aGUgbWFyZ2luIGdyaWQgaGFzIHRvIGdvIGJhY2sgYW5kIGFkanVzdCB3aWR0aHMgKG9yIGhlaWdodHMpXG4gICAgICAvLyBmb3IgYWxsIHByaW9yIGJyZWFrcG9pbnRzLlxuICAgICAgLy8gQXMgdGhlaXIgZ3V0dGVyIGlzIGRlZmluZWQgd2l0aCB0aGVpciB3aWR0aC9oZWlnaHQsIGV2ZW4gYnJlYWtwb2ludCB3aXRob3V0IGEgbmV3IG1hcmdpbiBtdXN0IGJlXG4gICAgICAvLyBnZW5lcmF0ZWQgdG8gbm90IGhhdmluZyB0aGVpciB3aWR0aC9oZWlnaHQgb3ZlcnJpZGVkIGJ5IHJlLWFkanVzdGVkIHNtYWxsZXIgYnJlYWtwb2ludHMuXG4gICAgICBAaWYodHlwZS1vZigkZ3JpZC1tYXJnaW4tZ3V0dGVycykgPT0gJ21hcCcgYW5kIG1hcC1oYXMta2V5KCRncmlkLW1hcmdpbi1ndXR0ZXJzLCAkLXpmLXNpemUpKSB7XG4gICAgICAgIEBlYWNoICRicCBpbiAtemYtYnJlYWtwb2ludHMtbGVzcy10aGFuKCQtemYtc2l6ZSkge1xuICAgICAgICAgIEBpbmNsdWRlIC14eS1icmVha3BvaW50LWNlbGwtY2xhc3NlcygkYnAsICQtemYtc2l6ZSwgJHZlcnRpY2FsKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSAteHktYnJlYWtwb2ludC1jZWxsLWNsYXNzZXMoJC16Zi1zaXplLCAkLXpmLXNpemUsICR2ZXJ0aWNhbCk7XG4gICAgfVxuICB9XG59XG5cbi8vIFBhZGRpbmcgR3JpZCBjbGFzc2VzXG5AbWl4aW4geHktcGFkZGluZy1ncmlkLWNsYXNzZXMge1xuICAuZ3JpZC1wYWRkaW5nLXgge1xuXG4gICAgLy8gTmVnYXRpdmUgbWFyZ2luIGZvciBuZXN0ZWQgZ3JpZHNcbiAgICAuZ3JpZC1wYWRkaW5nLXgge1xuICAgICAgQGluY2x1ZGUgeHktZ3V0dGVycygkbmVnYXRpdmU6IHRydWUpO1xuICAgIH1cblxuICAgIC8vIE5lZ2F0aXZlIG1hcmdpbiBmb3IgZ3JpZHMgd2l0aGluIGBncmlkLWNvbnRhaW5lci9ncmlkLWNvbnRhaW5lci5mbHVpZGBcbiAgICAvLyBUaGlzIGFsbG93cyBtYXJnaW4gYW5kIHBhZGRpbmcgZ3JpZHMgdG8gbGluZSB1cCB3aXRoIGVhY2hvdGhlclxuICAgIC5ncmlkLWNvbnRhaW5lcjpub3QoLmZ1bGwpID4gJiB7XG4gICAgICBAaW5jbHVkZSB4eS1ndXR0ZXJzKCRuZWdhdGl2ZTogdHJ1ZSk7XG4gICAgfVxuXG4gICAgLy8gQmFzZSBjZWxsIHN0eWxlc1xuICAgID4gLmNlbGwge1xuICAgICAgQGluY2x1ZGUgeHktZ3V0dGVycygkZ3V0dGVyczogJGdyaWQtcGFkZGluZy1ndXR0ZXJzLCAkZ3V0dGVyLXR5cGU6IHBhZGRpbmcpO1xuICAgIH1cbiAgfVxufVxuXG4vLyBCbG9jayBHcmlkIGNsYXNzZXNcbkBtaXhpbiB4eS1ibG9jay1ncmlkLWNsYXNzZXMoJG1hcmdpbi1ncmlkOiB0cnVlLCAkcGFkZGluZy1ncmlkOiB0cnVlKSB7XG4gIEBpZiAkcGFkZGluZy1ncmlkIHtcbiAgICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50IHtcbiAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJHh5LWJsb2NrLWdyaWQtbWF4IHtcbiAgICAgICAgLiN7JC16Zi1zaXplfS11cC0jeyRpfSB7XG4gICAgICAgICAgQGluY2x1ZGUgeHktZ3JpZC1sYXlvdXQoJG46ICRpLCAkc2VsZWN0b3I6ICcuY2VsbCcsICRndXR0ZXItdHlwZTogcGFkZGluZywgJG91dHB1dDogKHNpemUpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpZiAkbWFyZ2luLWdyaWQge1xuICAgIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQge1xuICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkeHktYmxvY2stZ3JpZC1tYXgge1xuICAgICAgICAvLyBUaGlzIGlzIHB1cmVseSBmb3IgcmVzcG9uc2l2ZSBndXR0ZXJzIC0gdGhlIG1hcmdpbiBncmlkIGhhcyB0byBnbyBiYWNrIGFuZCBhZGp1c3Qgd2lkdGhzIChvciBoZWlnaHRzKVxuICAgICAgICAvLyBmb3IgcHJpb3IgYnJlYWtwb2ludHMgYmFzZWQgb24gdGhlIHJlc3BvbnNpdmUgZ3V0dGVyLlxuICAgICAgICBAaWYodHlwZS1vZigkZ3JpZC1tYXJnaW4tZ3V0dGVycykgPT0gJ21hcCcgYW5kIG1hcC1oYXMta2V5KCRncmlkLW1hcmdpbi1ndXR0ZXJzLCAkLXpmLXNpemUpKSB7XG4gICAgICAgICAgQGVhY2ggJGJwIGluIC16Zi1icmVha3BvaW50cy1sZXNzLXRoYW4oJC16Zi1zaXplKSB7XG4gICAgICAgICAgICBAaWYobWFwLWhhcy1rZXkoJGdyaWQtbWFyZ2luLWd1dHRlcnMsICRicCkpIHtcbiAgICAgICAgICAgICAgLmdyaWQtbWFyZ2luLXguI3skYnB9LXVwLSN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSB4eS1ncmlkLWxheW91dCgkbjogJGksICRzZWxlY3RvcjogJy5jZWxsJywgJGd1dHRlci10eXBlOiBtYXJnaW4sICRvdXRwdXQ6IChzaXplKSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJHh5LWJsb2NrLWdyaWQtbWF4IHtcbiAgICAgICAgLmdyaWQtbWFyZ2luLXguI3skLXpmLXNpemV9LXVwLSN7JGl9IHtcbiAgICAgICAgICBAaW5jbHVkZSB4eS1ncmlkLWxheW91dCgkbjogJGksICRzZWxlY3RvcjogJy5jZWxsJywgJGd1dHRlci10eXBlOiBtYXJnaW4sICRvdXRwdXQ6IChzaXplKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gQ29sbGFwc2UgY2xhc3Nlc1xuQG1peGluIHh5LWNvbGxhcHNlLWdyaWQtY2xhc3NlcygkbWFyZ2luLWdyaWQ6IHRydWUsICRwYWRkaW5nLWdyaWQ6IHRydWUpIHtcbiAgQGVhY2ggJGJwIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgIEBpZiAkbWFyZ2luLWdyaWQge1xuICAgICAgLiN7JGJwfS1tYXJnaW4tY29sbGFwc2Uge1xuICAgICAgICBAaW5jbHVkZSB4eS1ncmlkLWNvbGxhcHNlKCRndXR0ZXItdHlwZTogbWFyZ2luLCAkbWluLWJyZWFrcG9pbnQ6ICRicCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmICRwYWRkaW5nLWdyaWQge1xuICAgICAgLiN7JGJwfS1wYWRkaW5nLWNvbGxhcHNlIHtcbiAgICAgICAgQGluY2x1ZGUgeHktZ3JpZC1jb2xsYXBzZSgkZ3V0dGVyLXR5cGU6IHBhZGRpbmcsICRtaW4tYnJlYWtwb2ludDogJGJwKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gT2Zmc2V0IGNsYXNzZXNcbkBtaXhpbiB4eS1vZmZzZXQtY2VsbC1jbGFzc2VzIHtcbiAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCB7XG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2x1bW5zIHtcbiAgICAgIC8vIE9mZnNldHNcbiAgICAgICRvOiAkaSAtIDE7XG5cbiAgICAgIC4jeyQtemYtc2l6ZX0tb2Zmc2V0LSN7JG99IHtcbiAgICAgICAgQGluY2x1ZGUgeHktY2VsbC1vZmZzZXQoJG8sICRndXR0ZXJzOiAkZ3JpZC1wYWRkaW5nLWd1dHRlcnMsICRndXR0ZXItdHlwZTogcGFkZGluZyk7XG4gICAgICB9XG5cbiAgICAgIC5ncmlkLW1hcmdpbi14ID4gLiN7JC16Zi1zaXplfS1vZmZzZXQtI3skb30ge1xuICAgICAgICBAaW5jbHVkZSB4eS1jZWxsLW9mZnNldCgkbyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIFZlcnRpY2FsIEdyaWQgY2xhc3Nlc1xuQG1peGluIHh5LXZlcnRpY2FsLWdyaWQtY2xhc3NlcyhcbiAgJG1hcmdpbi1ncmlkOiB0cnVlLFxuICAkcGFkZGluZy1ncmlkOiB0cnVlXG4pIHtcblxuICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50KCkge1xuICAgIEBpZiBub3QoJC16Zi1zaXplID09ICQtemYtemVyby1icmVha3BvaW50KSB7XG4gICAgfVxuICB9XG5cbiAgLmdyaWQteSB7XG4gICAgQGluY2x1ZGUgeHktZ3JpZCh2ZXJ0aWNhbCwgZmFsc2UpO1xuXG5cbiAgICA+IC5jZWxsIHtcbiAgICAgIEBpbmNsdWRlIHh5LWNlbGwtcmVzZXQoKTtcbiAgICB9XG5cbiAgICA+IC5hdXRvIHtcbiAgICAgIEBpbmNsdWRlIHh5LWNlbGwtc2l6ZShhdXRvLCAkZ3V0dGVyLXR5cGU6IG5vbmUsICR2ZXJ0aWNhbDogdHJ1ZSk7XG4gICAgfVxuXG4gICAgPiAuc2hyaW5rIHtcbiAgICAgIEBpbmNsdWRlIHh5LWNlbGwtc2l6ZShzaHJpbmssICRndXR0ZXItdHlwZTogbm9uZSwgJHZlcnRpY2FsOiB0cnVlKTtcbiAgICB9XG5cblxuICAgIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQoKSB7XG4gICAgICAvLyBUaGlzIGlzIGEgYml0IG9mIGEgaGFjay93b3JrYXJvdW5kLCBzZWUgdGhlc2UgaXNzdWVzIGFuZCBQUnMgZm9yIHRoZSBiYWNrc3Rvcnk6XG4gICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZm91bmRhdGlvbi9mb3VuZGF0aW9uLXNpdGVzL2lzc3Vlcy8xMDI0NFxuICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZvdW5kYXRpb24vZm91bmRhdGlvbi1zaXRlcy9wdWxsLzEwMjIyIGFuZFxuICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZvdW5kYXRpb24vZm91bmRhdGlvbi1zaXRlcy9wdWxsLzEwMTY0XG4gICAgICAkc3RyOiBcIj4gLiN7JC16Zi1zaXplfS1zaHJpbmssID4gLiN7JC16Zi1zaXplfS1mdWxsXCI7XG4gICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRncmlkLWNvbHVtbnMge1xuICAgICAgICAkc3RyOiAkc3RyICsgXCIsID4gLiN7JC16Zi1zaXplfS0jeyRpfVwiXG4gICAgICB9XG4gICAgICAjeyRzdHJ9IHtcbiAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50KCkge1xuICAgICAgLy8gUmVzcG9uc2l2ZSBcImF1dG9cIiBtb2RpZmllclxuICAgICAgQGlmIG5vdCgkLXpmLXNpemUgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgPiAuI3skLXpmLXNpemV9LWF1dG8ge1xuICAgICAgICAgIEBpbmNsdWRlIHh5LWNlbGwoYXV0bywgJGd1dHRlci10eXBlOiBub25lLCAkdmVydGljYWw6IHRydWUpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICUteHktY2VsbC1iYXNlLXNocmluay12ZXJ0aWNhbC0jeyQtemYtc2l6ZX0ge1xuICAgICAgICBAaW5jbHVkZSB4eS1jZWxsLWJhc2Uoc2hyaW5rKTtcbiAgICAgIH1cblxuICAgICAgLy8gUmVzcG9uc2l2ZSBcInNocmlua1wiIG1vZGlmaWVyXG4gICAgICBAaWYgbm90KCQtemYtc2l6ZSA9PSAkLXpmLXplcm8tYnJlYWtwb2ludCkge1xuICAgICAgICA+IC4jeyQtemYtc2l6ZX0tc2hyaW5rIHtcbiAgICAgICAgICBAZXh0ZW5kICUteHktY2VsbC1iYXNlLXNocmluay12ZXJ0aWNhbC0jeyQtemYtc2l6ZX07XG4gICAgICAgICAgQGluY2x1ZGUgeHktY2VsbC1zaXplKHNocmluaywgJGd1dHRlci10eXBlOiBub25lLCAkdmVydGljYWw6IHRydWUpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIFJlc3BvbnNpdmUgd2lkdGggbW9kaWZpZXJzXG4gICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRncmlkLWNvbHVtbnMge1xuICAgICAgICAvLyBTaXppbmcgKHBlcmNlbnRhZ2UpXG4gICAgICAgID4gLiN7JC16Zi1zaXplfS0jeyRpfSB7XG4gICAgICAgICAgQGV4dGVuZCAlLXh5LWNlbGwtYmFzZS1zaHJpbmstdmVydGljYWwtI3skLXpmLXNpemV9O1xuICAgICAgICAgIEBpbmNsdWRlIHh5LWNlbGwtc2l6ZSgkaSwgJGd1dHRlci10eXBlOiBub25lLCAkdmVydGljYWw6IHRydWUpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICB9XG4gIH1cblxuICBAaWYgJHBhZGRpbmctZ3JpZCB7XG4gICAgLmdyaWQtcGFkZGluZy15IHtcbiAgICAgIC8vIE5lZ2F0aXZlIG1hcmdpbiBmb3IgbmVzdGVkIGdyaWRzXG4gICAgICAuZ3JpZC1wYWRkaW5nLXkge1xuICAgICAgICBAaW5jbHVkZSB4eS1ndXR0ZXJzKCRuZWdhdGl2ZTogdHJ1ZSwgJGd1dHRlci1wb3NpdGlvbjogdG9wIGJvdHRvbSk7XG4gICAgICB9XG5cbiAgICAgIC8vIEJhc2UgY2VsbCBzdHlsZXNcbiAgICAgID4gLmNlbGwge1xuICAgICAgICBAaW5jbHVkZSB4eS1ndXR0ZXJzKCRndXR0ZXJzOiAkZ3JpZC1wYWRkaW5nLWd1dHRlcnMsICRndXR0ZXItdHlwZTogcGFkZGluZywgJGd1dHRlci1wb3NpdGlvbjogdG9wIGJvdHRvbSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGlmICRtYXJnaW4tZ3JpZCB7XG4gICAgQGluY2x1ZGUgeHktbWFyZ2luLWdyaWQtY2xhc3Nlcyh0b3AgYm90dG9tLCB0cnVlLCAnLmdyaWQtbWFyZ2luLXknKTtcbiAgfVxuXG59XG5cbkBtaXhpbiB4eS1mcmFtZS1ncmlkLWNsYXNzZXMoJHZlcnRpY2FsLWdyaWQ6IHRydWUsICRtYXJnaW4tZ3JpZDogdHJ1ZSkge1xuICAvLyBGcmFtZWQgZ3JpZCBzdHlsZXNcbiAgLmdyaWQtZnJhbWUge1xuICAgIEBpbmNsdWRlIHh5LWdyaWQtZnJhbWU7XG4gIH1cblxuICAuY2VsbCAuZ3JpZC1mcmFtZSB7XG4gICAgd2lkdGg6IDEwMCU7IC8vIFNhbWUgYXMgaW5jbHVkZSB3aXRoICRuZXN0ZWQsIGJ1dCB3aXRoIGxlc3MgY3NzXG4gIH1cblxuICAuY2VsbC1ibG9jayB7XG4gICAgQGluY2x1ZGUgeHktY2VsbC1ibG9jaygpO1xuICB9XG5cbiAgLmNlbGwtYmxvY2steSB7XG4gICAgQGluY2x1ZGUgeHktY2VsbC1ibG9jayh0cnVlKTtcbiAgfVxuXG5cbiAgLmNlbGwtYmxvY2stY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSB4eS1jZWxsLWJsb2NrLWNvbnRhaW5lcigpO1xuICB9XG5cblxuICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50KGZhbHNlKSB7XG5cbiAgICAuI3skLXpmLXNpemV9LWdyaWQtZnJhbWUge1xuICAgICAgQGluY2x1ZGUgeHktZ3JpZC1mcmFtZTtcbiAgICB9XG5cbiAgICAuY2VsbCAuI3skLXpmLXNpemV9LWdyaWQtZnJhbWUge1xuICAgICAgd2lkdGg6IDEwMCU7IC8vIFNhbWUgYXMgaW5jbHVkZSB3aXRoICRuZXN0ZWQsIGJ1dCB3aXRoIGxlc3MgY3NzXG4gICAgfVxuXG4gICAgLiN7JC16Zi1zaXplfS1jZWxsLWJsb2NrIHtcbiAgICAgIEBpbmNsdWRlIHh5LWNlbGwtYmxvY2soKTtcbiAgICB9XG5cbiAgICAuI3skLXpmLXNpemV9LWNlbGwtYmxvY2stY29udGFpbmVyIHtcbiAgICAgIEBpbmNsdWRlIHh5LWNlbGwtYmxvY2stY29udGFpbmVyKCk7XG4gICAgfVxuXG4gICAgLiN7JC16Zi1zaXplfS1jZWxsLWJsb2NrLXkge1xuICAgICAgQGluY2x1ZGUgeHktY2VsbC1ibG9jayh0cnVlKTtcbiAgICB9XG4gIH1cblxuICBAaWYgJHZlcnRpY2FsLWdyaWQge1xuICAgIC5ncmlkLXkge1xuICAgICAgJi5ncmlkLWZyYW1lIHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIEBpbmNsdWRlIHh5LWdyaWQtZnJhbWUodHJ1ZSk7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQoZmFsc2UpIHtcbiAgICAgICAgJi4jeyQtemYtc2l6ZX0tZ3JpZC1mcmFtZSB7XG4gICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgQGluY2x1ZGUgeHktZ3JpZC1mcmFtZSh0cnVlKTtcbiAgICAgICAgfVxuXG4gICAgICB9XG4gICAgfVxuICAgIC5jZWxsIHtcbiAgICAgIC5ncmlkLXkuZ3JpZC1mcmFtZSB7XG4gICAgICAgIGhlaWdodDogMTAwJTsgLy8gU2FtZSBhcyBpbmNsdWRlIHdpdGggJG5lc3RlZCwgYnV0IHdpdGggbGVzcyBjc3NcbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQoZmFsc2UpIHtcbiAgICAgICAgLmdyaWQteS4jeyQtemYtc2l6ZX0tZ3JpZC1mcmFtZSB7XG4gICAgICAgICAgaGVpZ2h0OiAxMDAlOyAvLyBTYW1lIGFzIGluY2x1ZGUgd2l0aCAkbmVzdGVkLCBidXQgd2l0aCBsZXNzIGNzc1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBpZiAkbWFyZ2luLWdyaWQge1xuICAgIEBpbmNsdWRlIHh5LW1hcmdpbi1ncmlkLWNsYXNzZXModG9wIGJvdHRvbSwgdHJ1ZSwgJy5ncmlkLW1hcmdpbi15Jyk7XG4gICAgLmdyaWQtZnJhbWUuZ3JpZC1tYXJnaW4teSB7XG4gICAgICBAaW5jbHVkZSB4eS1ncmlkLWZyYW1lKHRydWUsIGZhbHNlLCAkZ3JpZC1tYXJnaW4tZ3V0dGVycywgJGluY2x1ZGUtYmFzZTogZmFsc2UpO1xuICAgIH1cbiAgICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50KGZhbHNlKSB7XG4gICAgICAuZ3JpZC1tYXJnaW4teS4jeyQtemYtc2l6ZX0tZ3JpZC1mcmFtZSB7XG4gICAgICAgIEBpbmNsdWRlIHh5LWdyaWQtZnJhbWUodHJ1ZSwgZmFsc2UsICRncmlkLW1hcmdpbi1ndXR0ZXJzLCAkLXpmLXNpemUsIGZhbHNlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gRmluYWwgY2xhc3Nlc1xuQG1peGluIGZvdW5kYXRpb24teHktZ3JpZC1jbGFzc2VzKFxuICAkYmFzZS1ncmlkOiB0cnVlLFxuICAkbWFyZ2luLWdyaWQ6IHRydWUsXG4gICRwYWRkaW5nLWdyaWQ6IHRydWUsXG4gICRibG9jay1ncmlkOiB0cnVlLFxuICAkY29sbGFwc2U6IHRydWUsXG4gICRvZmZzZXQ6IHRydWUsXG4gICR2ZXJ0aWNhbC1ncmlkOiB0cnVlLFxuICAkZnJhbWUtZ3JpZDogdHJ1ZVxuKSB7XG5cbiAgLy8gQmFzZSBncmlkIHN0eWxlc1xuICBAaWYoJGJhc2UtZ3JpZCkge1xuICAgIEBpbmNsdWRlIHh5LWJhc2UtZ3JpZC1jbGFzc2VzKCk7XG4gIH1cblxuICAvLyBNYXJnaW4gZ3JpZFxuICBAaWYoJG1hcmdpbi1ncmlkKSB7XG4gICAgQGluY2x1ZGUgeHktbWFyZ2luLWdyaWQtY2xhc3NlcygpO1xuICB9XG5cbiAgLy8gUGFkZGluZyBncmlkXG4gIEBpZigkcGFkZGluZy1ncmlkKSB7XG4gICAgQGluY2x1ZGUgeHktcGFkZGluZy1ncmlkLWNsYXNzZXMoKTtcbiAgfVxuXG4gIC8vIEJsb2NrIGdyaWRcbiAgQGlmKCRibG9jay1ncmlkKSB7XG4gICAgQGluY2x1ZGUgeHktYmxvY2stZ3JpZC1jbGFzc2VzKCRtYXJnaW4tZ3JpZCwgJHBhZGRpbmctZ3JpZCk7XG4gIH1cblxuICAvLyBDb2xsYXBzZSBndXR0ZXJzXG4gIEBpZigkY29sbGFwc2UpIHtcbiAgICBAaW5jbHVkZSB4eS1jb2xsYXBzZS1ncmlkLWNsYXNzZXMoJG1hcmdpbi1ncmlkLCAkcGFkZGluZy1ncmlkKTtcbiAgfVxuXG4gIC8vIE9mZnNldCBndXR0ZXJzXG4gIEBpZigkb2Zmc2V0KSB7XG4gICAgQGluY2x1ZGUgeHktb2Zmc2V0LWNlbGwtY2xhc3NlcygpO1xuICB9XG5cbiAgLy8gVmVydGljYWwgZ3JpZFxuICBAaWYoJHZlcnRpY2FsLWdyaWQpIHtcbiAgICBAaW5jbHVkZSB4eS12ZXJ0aWNhbC1ncmlkLWNsYXNzZXMoJG1hcmdpbi1ncmlkLCAkcGFkZGluZy1ncmlkKTtcbiAgfVxuXG4gIEBpZiAoJGZyYW1lLWdyaWQpIHtcbiAgICBAaW5jbHVkZSB4eS1mcmFtZS1ncmlkLWNsYXNzZXMoJHZlcnRpY2FsLWdyaWQsICRtYXJnaW4tZ3JpZClcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHh5LWdyaWRcbi8vLy9cblxuLy8vIENyZWF0ZSBndXR0ZXJzIGZvciBhIGNlbGwvY29udGFpbmVyLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtbWFyZ2luLWd1dHRlcnNdIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSBmb3IgZ3V0dGVycy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRndXR0ZXItdHlwZSBbbWFyZ2luXSAtIFR5cGUgb2YgZ3V0dGVyIHRvIG91dHB1dC4gQWNjZXB0cyBlaXRoZXIgbWFyZ2luIG9yIHBhZGRpbmcuXG4vLy8gQHBhcmFtIHtMaXN0fSAkZ3V0dGVyLXBvc2l0aW9uIFtyaWdodCBsZWZ0XSAtIFRoZSBwb3NpdGlvbiB0byBhcHBseSBndXR0ZXJzIHRvLiBBY2NlcHRzIGB0b3BgLCBgYm90dG9tYCwgYGxlZnRgLCBgcmlnaHRgIGluIGFueSBjb21iaW5hdGlvbi5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRuZWdhdGl2ZSBbZmFsc2VdIC0gV2hldGhlciB0byBhcHBseSB0aGUgZ3V0dGVyIGFzIGEgbmVnYXRpdmUgdmFsdWUuIENvbW1vbmx5IHVzZWQgZm9yIG5lc3RlZCBncmlkcy5cbkBtaXhpbiB4eS1ndXR0ZXJzKFxuICAkZ3V0dGVyczogJGdyaWQtbWFyZ2luLWd1dHRlcnMsXG4gICRndXR0ZXItdHlwZTogbWFyZ2luLFxuICAkZ3V0dGVyLXBvc2l0aW9uOiByaWdodCBsZWZ0LFxuICAkbmVnYXRpdmU6IGZhbHNlXG4pIHtcbiAgJG9wZXJhdG9yOiBpZigkbmVnYXRpdmUsICctJywgJycpO1xuXG4gIC8vIElmIHdlIGhhdmUgZGVjbGFyZWQgbmVnYXRpdmUgZ3V0dGVycywgZm9yY2UgdHlwZSB0byBgbWFyZ2luLlxuICAkZ3V0dGVyLXR5cGU6IGlmKCRuZWdhdGl2ZSwgJ21hcmdpbicsICRndXR0ZXItdHlwZSk7XG5cbiAgLy8gT3V0cHV0IG91ciBtYXJnaW4gZ3V0dGVycy5cbiAgQGlmICh0eXBlLW9mKCRndXR0ZXJzKSA9PSAnbWFwJykge1xuICAgIEBpbmNsdWRlIC16Zi1icmVha3BvaW50LXZhbHVlKGF1dG8sICRndXR0ZXJzKSB7XG4gICAgICAkZ3V0dGVyOiByZW0tY2FsYygkLXpmLWJwLXZhbHVlKSAvIDI7XG5cbiAgICAgIC8vIExvb3AgdGhyb3VnaCBlYWNoIGd1dHRlciBwb3NpdGlvblxuICAgICAgQGVhY2ggJHZhbHVlIGluICRndXR0ZXItcG9zaXRpb24ge1xuICAgICAgICAjeyRndXR0ZXItdHlwZX0tI3skdmFsdWV9OiB1bnF1b3RlKFwiI3skb3BlcmF0b3J9I3skZ3V0dGVyfVwiKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgKHR5cGUtb2YoJGd1dHRlcnMpID09ICdudW1iZXInKSB7XG4gICAgJGd1dHRlcjogcmVtLWNhbGMoJGd1dHRlcnMpIC8gMjtcblxuICAgIC8vIExvb3AgdGhyb3VnaCBlYWNoIGd1dHRlciBwb3NpdGlvblxuICAgIEBlYWNoICR2YWx1ZSBpbiAkZ3V0dGVyLXBvc2l0aW9uIHtcbiAgICAgICN7JGd1dHRlci10eXBlfS0jeyR2YWx1ZX06IHVucXVvdGUoXCIjeyRvcGVyYXRvcn0jeyRndXR0ZXJ9XCIpO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHh5LWdyaWRcbi8vLy9cblxuLy8vIENyZWF0ZXMgYSBtYXggd2lkdGggY29udGFpbmVyLCBkZXNpZ25lZCB0byBob3VzZSB5b3VyIGdyaWQgY29udGVudC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggWyRncmlkLWNvbnRhaW5lcl0gLSBhIHdpZHRoIHRvIGxpbWl0IHRoZSBjb250YWluZXIgdG8uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRwYWRkaW5nIFskZ3JpZC1jb250YWluZXItcGFkZGluZ10gLSBwYWRkaW5ncyBvZiB0aGUgY29udGFpbmVyLlxuQG1peGluIHh5LWdyaWQtY29udGFpbmVyKFxuICAkd2lkdGg6ICRncmlkLWNvbnRhaW5lcixcbiAgJHBhZGRpbmc6ICRncmlkLWNvbnRhaW5lci1wYWRkaW5nXG4pIHtcbiAgQGluY2x1ZGUgeHktZ3V0dGVycygkZ3V0dGVyczogJHBhZGRpbmcsICRndXR0ZXItdHlwZTogcGFkZGluZyk7XG5cbiAgbWF4LXdpZHRoOiAkd2lkdGg7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG5cbi8vLyBDcmVhdGVzIGEgY29udGFpbmVyIGZvciB5b3VyIGZsZXggY2VsbHMuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXJlY3Rpb24gW2hvcml6b250YWxdIC0gRWl0aGVyIGhvcml6b250YWwgb3IgdmVydGljYWwgZGlyZWN0aW9uIG9mIGNlbGxzIHdpdGhpbi5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICR3cmFwIFt0cnVlXSAtIElmIHRoZSBjZWxscyB3aXRoaW4gc2hvdWxkIHdyYXAgb3Igbm90LlxuQG1peGluIHh5LWdyaWQoXG4gICRkaXJlY3Rpb246IGhvcml6b250YWwsXG4gICR3cmFwOiB0cnVlXG4pIHtcbiAgJGRpcmVjdGlvbjogaWYoJGRpcmVjdGlvbiA9PSAnaG9yaXpvbnRhbCcsIHJvdywgY29sdW1uKTtcbiAgJHdyYXA6IGlmKCR3cmFwLCB3cmFwLCBub3dyYXApO1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogJGRpcmVjdGlvbiAkd3JhcDtcbn1cbiIsIi8vIEZvdW5kYXRpb24gc2V0dGluZ3NcbiRnbG9iYWwtd2lkdGg6IDc4LjEyNXJlbTtcbiRncmlkLWNvbnRhaW5lci1wYWRkaW5nOiAoXG4gIHNtYWxsOiAzNHB4LFxuICBtZWRpdW06IDUwcHgsXG4gIHhsYXJnZTogNjBweCxcbik7XG5cbiR4eS1ncmlkOiB0cnVlO1xuXG4vLyBDb2xvdXJzXG4kYnJpY2s6ICNlZDYwNTQ7XG4kZ3JhcGU6ICMzMzBmNjY7XG4kc3RvbmU6ICNkZGQwYzY7XG4kZWdncGxhbnQ6ICMyZTFjMmU7XG4kaGlnaGxpZ2h0R3JlZW46ICM2OWZmMDA7XG4kaGlnaGxpZ2h0UHVycGxlOiAjYjQ2N2ZmO1xuXG4vLyBGb250c1xuJGZvbnQtZmFtaWx5LXN5c3RlbS1zYW5zLXNlcmlmOiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFwiU2Vnb2UgVUlcIixcbiAgUm9ib3RvLCBPeHlnZW4tU2FucywgVWJ1bnR1LCBDYW50YXJlbGwsIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiRmb250LWZhbWlseS1zYW5zLXNlcmlmOiAkZm9udC1mYW1pbHktc3lzdGVtLXNhbnMtc2VyaWY7XG4vLyBHb29nbGUgRm9udHNcbiRmb250LWZhbWlseS1zYW5zLXNlcmlmOiBcIkRNIFNhbnNcIjtcbiRmb250LWZhbWlseS1tb25vOiBcIlNwYWNlIE1vbm9cIiwgbW9ub3NwYWNlO1xuXG4vL1xuJHotaW5kZXgtYmVoaW5kOiAtMTtcbiR6LWluZGV4LW1lbnU6IDEwMDtcblxuLy8gUGFkZGluZ1xuJHNlY3Rpb24tcGFkZGluZy1sYXJnZTogN3JlbSAwO1xuJHNlY3Rpb24tcGFkZGluZy1zbWFsbDogMy41cmVtIDA7XG5cbi8vIE1hcmdpbnNcblxuJHBhZ2UtdGl0bGUtbWFyZ2luczogMnJlbSAwO1xuJHNlY3Rpb24tdGl0bGUtbWFyZ2luczogMy41cmVtIDAgMnJlbTtcbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBicmVha3BvaW50c1xuLy8vL1xuXG4vLy8gQSBsaXN0IG9mIG5hbWVkIGJyZWFrcG9pbnRzLiBZb3UgY2FuIHVzZSB0aGVzZSB3aXRoIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0byBxdWlja2x5IGNyZWF0ZSBtZWRpYSBxdWVyaWVzLlxuLy8vIEB0eXBlIE1hcFxuJGJyZWFrcG9pbnRzOiAoXG4gIHNtYWxsOiAwLFxuICBtZWRpdW06IDY0MHB4LFxuICBsYXJnZTogMTAyNHB4LFxuICB4bGFyZ2U6IDEyMDBweCxcbiAgeHhsYXJnZTogMTQ0MHB4LFxuKSAhZGVmYXVsdDtcblxuLy8vIEEgbGlzdCBvZiBuYW1lZCBIaURQSSBicmVha3BvaW50cy4gWW91IGNhbiB1c2UgdGhlc2Ugd2l0aCB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdG8gcXVpY2tseSBjcmVhdGUgbWVkaWEgcXVlcmllcyBmb3IgcmVzb2x1dGlvbnMuXG4vLy8gVmFsdWVzIG11c3QgcmVwcmVzZW50IHRoZSBkZXZpY2UgcGl4ZWxzIC8gd2ViIHBpeGVscyByYXRpb24gYW5kIGJlIHVuaXRsZXNzIG9yIGluIERQUFguXG4vLy8gQHR5cGUgTWFwXG4kYnJlYWtwb2ludHMtaGlkcGk6IChcbiAgaGlkcGktMTogMSxcbiAgaGlkcGktMS01OiAxLjUsXG4gIGhpZHBpLTI6IDIsXG4gIHJldGluYTogMixcbiAgaGlkcGktMzogM1xuKSAhZGVmYXVsdDtcblxuLy8vIFRoZSBsYXJnZXN0IG5hbWVkIGJyZWFrcG9pbnQgaW4gd2hpY2ggdG8gaW5jbHVkZSBwcmludCBhcyBhIG1lZGlhIHR5cGVcbi8vLyBAdHlwZSBLZXl3b3JkXG4kcHJpbnQtYnJlYWtwb2ludDogbGFyZ2UgIWRlZmF1bHQ7XG5cbiQtemYtemVyby1icmVha3BvaW50OiBzbWFsbCAhZGVmYXVsdDtcblxuJC16Zi1icmVha3BvaW50cy1rZXlzOiBtYXAtdG8tbGlzdCgkYnJlYWtwb2ludHMsICdrZXlzJyk7XG5cbkBpZiBudGgobWFwLXZhbHVlcygkYnJlYWtwb2ludHMpLCAxKSAhPSAwIHtcbiAgQGVycm9yICdUaGUgZmlyc3Qga2V5IGluIHRoZSAkYnJlYWtwb2ludHMgbWFwIG11c3QgaGF2ZSBhIHZhbHVlIG9mIFwiMFwiLic7XG59XG5AZWxzZSB7XG4gICQtemYtemVyby1icmVha3BvaW50OiBudGgobWFwLWtleXMoJGJyZWFrcG9pbnRzKSwgMSk7XG59XG5cbi8vLyBBbGwgb2YgdGhlIG5hbWVzIGluIHRoaXMgbGlzdCB3aWxsIGJlIG91dHB1dCBhcyBjbGFzc2VzIGluIHlvdXIgQ1NTLCBsaWtlIGAuc21hbGwtMTJgLCBgLm1lZGl1bS02YCwgYW5kIHNvIG9uLiBFYWNoIHZhbHVlIGluIHRoaXMgbGlzdCBtdXN0IGFsc28gYmUgaW4gdGhlIGAkYnJlYWtwb2ludHNgIG1hcC5cbi8vLyBAdHlwZSBMaXN0XG4kYnJlYWtwb2ludC1jbGFzc2VzOiAoc21hbGwgbWVkaXVtIGxhcmdlKSAhZGVmYXVsdDtcblxuLy8vIEdlbmVyYXRlcyBhIG1lZGlhIHF1ZXJ5IHN0cmluZyBtYXRjaGluZyB0aGUgaW5wdXQgdmFsdWUuIFJlZmVyIHRvIHRoZSBkb2N1bWVudGF0aW9uIGZvciB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdG8gc2VlIHdoYXQgdGhlIHBvc3NpYmxlIGlucHV0cyBhcmUuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkdmFsIFtzbWFsbF0gLSBCcmVha3BvaW50IG5hbWUsIG9yIHB4LCByZW0sIG9yIGVtIHZhbHVlIHRvIHByb2Nlc3MuXG5AZnVuY3Rpb24gYnJlYWtwb2ludCgkdmFsOiAkLXpmLXplcm8tYnJlYWtwb2ludCkge1xuICAvLyBXZWIgc3RhbmRhcmQgUGl4ZWxzIHBlciBpbmNoLiAoMWRkcHggLyAkc3RkLXdlYi1kcGkpID0gMWRwaVxuICAvLyBTZWUgaHR0cHM6Ly93d3cudzMub3JnL1RSL2Nzcy12YWx1ZXMtMy8jYWJzb2x1dGUtbGVuZ3Roc1xuICAkc3RkLXdlYi1kcGk6IDk2O1xuXG4gIC8vIFNpemUgb3Iga2V5d29yZFxuICAkYnA6IG50aCgkdmFsLCAxKTtcbiAgLy8gVmFsdWUgb2YgdGhlIGZvbGxvd2luZyBicmVha3BvaW50XG4gICRicC1uZXh0OiBudWxsO1xuICAvLyBWYWx1ZSBmb3IgbWF4LXdpZHRoIG1lZGlhIHF1ZXJpZXNcbiAgJGJwLW1pbjogbnVsbDtcbiAgLy8gVmFsdWUgZm9yIG1pbi13aWR0aCBtZWRpYSBxdWVyaWVzXG4gICRicC1tYXg6IG51bGw7XG4gIC8vIERpcmVjdGlvbiBvZiBtZWRpYSBxdWVyeSAodXAsIGRvd24sIG9yIG9ubHkpXG4gICRkaXI6IGlmKGxlbmd0aCgkdmFsKSA+IDEsIG50aCgkdmFsLCAyKSwgdXApO1xuICAvLyBJZiBuYW1lZCwgbmFtZSBvZiB0aGUgYnJlYWtwb2ludFxuICAkbmFtZTogbnVsbDtcbiAgLy8gSWYgdGhlIGJyZWFrcG9pbnQgaXMgYSBIaURQSSBicmVha3BvaW50XG4gICRoaWRwaTogZmFsc2U7XG5cbiAgLy8gT3JpZW50YXRpb24gbWVkaWEgcXVlcmllcyBoYXZlIGEgdW5pcXVlIHN5bnRheFxuICBAaWYgJGJwID09ICdsYW5kc2NhcGUnIG9yICRicCA9PSAncG9ydHJhaXQnIHtcbiAgICBAcmV0dXJuICcob3JpZW50YXRpb246ICN7JGJwfSknO1xuICB9XG5cbiAgLy8gSWYgYSBicmVha3BvaW50IG5hbWUgaXMgZ2l2ZW4sIGdldCBpdHMgdmFsdWUgZnJvbSB0aGUgJGJyZWFrcG9pbnRzLyRicmVha3BvaW50cy1oaWRwaSBtYXAuXG4gIEBpZiB0eXBlLW9mKCRicCkgPT0gJ3N0cmluZycge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICRicCkge1xuICAgICAgJG5hbWU6ICRicDtcbiAgICAgICRicDogbWFwLWdldCgkYnJlYWtwb2ludHMsICRuYW1lKTtcbiAgICAgICRicC1uZXh0OiAtemYtbWFwLW5leHQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XG4gICAgfVxuICAgIEBlbHNlIGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cy1oaWRwaSwgJGJwKSB7XG4gICAgICAkbmFtZTogJGJwO1xuICAgICAgJGJwOiBtYXAtZ2V0KCRicmVha3BvaW50cy1oaWRwaSwgJG5hbWUpO1xuICAgICAgJGJwLW5leHQ6IC16Zi1tYXAtbmV4dC1udW1iZXIoJGJyZWFrcG9pbnRzLWhpZHBpLCAkYnApO1xuICAgICAgJGhpZHBpOiB0cnVlO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkYnA6IDA7XG4gICAgICBAd2FybiAnYnJlYWtwb2ludCgpOiBcIiN7JHZhbH1cIiBpcyBub3QgZGVmaW5lZCBpbiB5b3VyIGAkYnJlYWtwb2ludHNgIG9yIGAkYnJlYWtwb2ludHMtaGlkcGlgIHNldHRpbmcuJztcbiAgICB9XG4gIH1cblxuICBAaWYgbm90ICRuYW1lIGFuZCAkZGlyID09ICdvbmx5JyB7XG4gICAgQHdhcm4gJ2JyZWFrcG9pbnQoKTogT25seSBuYW1lZCBtZWRpYSBxdWVyaWVzIGNhbiBoYXZlIGFuIGBvbmx5YCByYW5nZS4nO1xuICAgIEByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8vIE9ubHkgJ29ubHknIGFuZCAndXAnIGhhdmUgYSBtaW4gbGltaXQuXG4gIEBpZiAkZGlyID09ICdvbmx5JyBvciAkZGlyID09ICd1cCcge1xuICAgICRicC1taW46IGlmKCRoaWRwaSwgc3RyaXAtdW5pdCgkYnApLCAtemYtYnAtdG8tZW0oJGJwKSk7XG4gIH1cbiAgLy8gT25seSAnb25seScgYW5kICdkb3duJyBoYXZlIGEgbWF4IGxpbWl0LlxuICBAaWYgJGRpciA9PSAnb25seScgb3IgJGRpciA9PSAnZG93bicge1xuICAgIC8vIElmIHRoZSBicmVha3BvaW50IGlzIGEgdmFsdWUsIHVzZSBpdCBhcyBtYXggbGltaXQuXG4gICAgQGlmIG5vdCAkbmFtZSB7XG4gICAgICAkYnAtbWF4OiBpZigkaGlkcGksIHN0cmlwLXVuaXQoJGJwKSwgLXpmLWJwLXRvLWVtKCRicCkpO1xuICAgIH1cbiAgICAvLyBJZiB0aGUgYnJlYWtwb2ludCBpcyBuYW1lZCwgdGhlIG1heCBsaW1pdCBpcyB0aGUgZm9sbG93aW5nIGJyZWFrcG9pbnQgLSAxcHguXG4gICAgQGVsc2UgaWYgJGJwLW5leHQge1xuICAgICAgLy8gTWF4IHZhbHVlIGlzIDAuMnB4IHVuZGVyIHRoZSBuZXh0IGJyZWFrcG9pbnQgKDAuMDIgLyAxNiA9IDAuMDAxMjUpLlxuICAgICAgLy8gVXNlIGEgcHJlY2lzaW9uIHVuZGVyIDFweCB0byBzdXBwb3J0IGJyb3dzZXIgem9vbSwgYnV0IG5vdCB0byBsb3cgdG8gYXZvaWQgcm91bmRpbmcuXG4gICAgICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2ZvdW5kYXRpb24vZm91bmRhdGlvbi1zaXRlcy9pc3N1ZXMvMTEzMTNcbiAgICAgICRicC1tYXg6IGlmKCRoaWRwaSwgJGJwLW5leHQgLSAoMS8kc3RkLXdlYi1kcGkpLCAtemYtYnAtdG8tZW0oJGJwLW5leHQpIC0gMC4wMDEyNSk7XG4gICAgfVxuICB9XG5cbiAgLy8gR2VuZXJhdGUgdGhlIG1lZGlhIHF1ZXJ5IHN0cmluZyBmcm9tIG1pbiBhbmQgbWF4IGxpbWl0cy5cbiAgQGlmICRoaWRwaSB7XG4gICAgLy8gR2VuZXJhdGUgdmFsdWVzIGluIERQSSBpbnN0ZWFkIG9mIERQUFggZm9yIGFuIElFOS0xMS9PcGVyYSBtaW5pIGNvbXBhdGliaWxpdHkuXG4gICAgLy8gU2VlIGh0dHBzOi8vY2FuaXVzZS5jb20vI2ZlYXQ9Y3NzLW1lZGlhLXJlc29sdXRpb25cbiAgICAkYnAtbWluLWRwaTogaWYoJGJwLW1pbiwgJGJwLW1pbiAqICRzdGQtd2ViLWRwaSAqIDFkcGksICRicC1taW4pO1xuICAgICRicC1tYXgtZHBpOiBpZigkYnAtbWF4LCAkYnAtbWF4ICogJHN0ZC13ZWItZHBpICogMWRwaSwgJGJwLW1heCk7XG4gICAgQHJldHVybiB6Zi1zdHItam9pbihcbiAgICAgIC16Zi1icC1qb2luKCRicC1taW4sICRicC1tYXgsICctd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW8nLCAnLXdlYmtpdC1tYXgtZGV2aWNlLXBpeGVsLXJhdGlvJyksXG4gICAgICAtemYtYnAtam9pbigkYnAtbWluLWRwaSwgJGJwLW1heC1kcGksICdtaW4tcmVzb2x1dGlvbicsICdtYXgtcmVzb2x1dGlvbicpLFxuICAgICAgJywgJyk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gLXpmLWJwLWpvaW4oJGJwLW1pbiwgJGJwLW1heCk7XG4gIH1cbn1cblxuLy8vIFdyYXBzIGEgbWVkaWEgcXVlcnkgYXJvdW5kIHRoZSBjb250ZW50IHlvdSBwdXQgaW5zaWRlIHRoZSBtaXhpbi4gVGhpcyBtaXhpbiBhY2NlcHRzIGEgbnVtYmVyIG9mIHZhbHVlczpcbi8vLyAgLSBJZiBhIHN0cmluZyBpcyBwYXNzZWQsIHRoZSBtaXhpbiB3aWxsIGxvb2sgZm9yIGl0IGluIHRoZSBgJGJyZWFrcG9pbnRzYCBhbmQgYCRicmVha3BvaW50cy1oaWRwaWAgbWFwcywgYW5kIHVzZSBhIG1lZGlhIHF1ZXJ5IHRoZXJlLlxuLy8vICAtIElmIGEgcGl4ZWwgdmFsdWUgaXMgcGFzc2VkLCBpdCB3aWxsIGJlIGNvbnZlcnRlZCB0byBhbiBlbSB2YWx1ZSB1c2luZyBgJGdsb2JhbC1mb250LXNpemVgIGFzIHRoZSBiYXNlLlxuLy8vICAtIElmIGEgcmVtIHZhbHVlIGlzIHBhc3NlZCwgdGhlIHVuaXQgd2lsbCBiZSBjaGFuZ2VkIHRvIGVtLlxuLy8vICAtIElmIGFuIGVtIHZhbHVlIGlzIHBhc3NlZCwgdGhlIHZhbHVlIHdpbGwgYmUgdXNlZCBhcy1pcy5cbi8vL1xuLy8vIElmIG11bHRpcGxlIHZhbHVlcyBhcmUgcGFzc2VkLCB0aGUgbWl4aW4gd2lsbCBnZW5lcmF0ZSBhIG1lZGlhIHF1ZXJ5IGZvciBlYWNoIG9mIHRoZW0gYXMgZGVzY3JpYmVkIGFib3ZlLlxuLy8vIFNpbmNlIHRoZSBjb250ZW50IGlzIGR1cGxpY2F0ZWQgZm9yIGVhY2ggYnJlYWtwb2ludCwgdGhpcyBtaXhpbiBzaG91bGQgb25seSBiZSB1c2VkIHdpdGggcHJvcGVydGllcyB0aGF0XG4vLy8gY2hhbmdlIGFjcm9zcyBicmVha3BvaW50cy5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICR2YWx1ZXMuLi4gLSBCcmVha3BvaW50IG5hbWUgb3IgcHgvcmVtL2VtIHZhbHVlIHRvIHByb2Nlc3MuXG4vLy9cbi8vLyBAb3V0cHV0IElmIHRoZSBicmVha3BvaW50IGlzIFwiMHB4IGFuZCBsYXJnZXJcIiwgb3V0cHV0cyB0aGUgY29udGVudCBhcy1pcy4gT3RoZXJ3aXNlLCBvdXRwdXRzIHRoZSBjb250ZW50IHdyYXBwZWQgaW4gYSBtZWRpYSBxdWVyeS5cbkBtaXhpbiBicmVha3BvaW50KCR2YWx1ZXMuLi4pIHtcbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCBsZW5ndGgoJHZhbHVlcykge1xuICAgICR2YWx1ZTogbnRoKCR2YWx1ZXMsICRpKTtcbiAgICAkc3RyOiBicmVha3BvaW50KCR2YWx1ZSk7XG4gICAgJGJwOiBpbmRleCgkLXpmLWJyZWFrcG9pbnRzLWtleXMsIG50aCgkdmFsdWUsIDEpKTtcbiAgICAkcGJwOiBpbmRleCgkLXpmLWJyZWFrcG9pbnRzLWtleXMsICRwcmludC1icmVha3BvaW50KTtcbiAgICAvLyBEaXJlY3Rpb24gb2YgbWVkaWEgcXVlcnkgKHVwLCBkb3duLCBvciBvbmx5KVxuICAgICRkaXI6IGlmKGxlbmd0aCgkdmFsdWUpID4gMSwgbnRoKCR2YWx1ZSwgMiksIHVwKTtcblxuICAgICRvbGQtemYtc2l6ZTogbnVsbDtcblxuICAgIC8vIE1ha2UgYnJlYWtwb2ludCBzaXplIGF2YWlsYWJsZSBhcyBhIHZhcmlhYmxlXG4gICAgQGlmIGdsb2JhbC12YXJpYWJsZS1leGlzdHMoLXpmLXNpemUpIHtcbiAgICAgICRvbGQtemYtc2l6ZTogJC16Zi1zaXplO1xuICAgIH1cbiAgICAkLXpmLXNpemU6IG50aCgkdmFsdWUsIDEpICFnbG9iYWw7IC8vIGdldCB0aGUgZmlyc3QgdmFsdWUgdG8gYWNjb3VudCBmb3IgYG9ubHlgIGFuZCBgZG93bmAga2V5d29yZHNcblxuICAgIC8vIElmICRzdHIgaXMgc3RpbGwgYW4gZW1wdHkgc3RyaW5nLCBubyBtZWRpYSBxdWVyeSBpcyBuZWVkZWRcbiAgICBAaWYgJHN0ciA9PSAnJyB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG5cbiAgICAvLyBPdGhlcndpc2UsIHdyYXAgdGhlIGNvbnRlbnQgaW4gYSBtZWRpYSBxdWVyeVxuICAgIEBlbHNlIHtcbiAgICAgIC8vIEZvciBuYW1lZCBicmVha3BvaW50cyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJHByaW50LWJyZWFrcG9pbnQsIGFkZCBwcmludCB0byB0aGUgbWVkaWEgdHlwZXNcbiAgICAgIC8vIGdlbmVyYXRlIHByaW50IGlmIHRoZSBicmVha3BvaW50IGFmZmVjdHMgdGhlIHByaW50LWJyZWFrcG9pbnQgKG9yIHNtYWxsZXIpLlxuICAgICAgLy8gVGhpcyBtZWFucyB0aGUgY3VycmVudCBjb25kaXRpb24gb25seSBuZWVkcyB0byBiZSBleHRlbmRlZCBzbyAnZG93bicgYWx3YXlzIGdlbmVyYXRlcyBwcmludC5cbiAgICAgIEBpZiAkYnAgIT0gbnVsbCBhbmQgKCRicCA8PSAkcGJwIG9yICRkaXIgPT0gZG93bikge1xuICAgICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgI3skc3RyfSB7XG4gICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgI3skc3RyfSB7XG4gICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAkLXpmLXNpemU6ICRvbGQtemYtc2l6ZSAhZ2xvYmFsO1xuICB9XG59XG5cbi8vLyBDb252ZXJ0cyB0aGUgYnJlYWtwb2ludHMgbWFwIHRvIGEgVVJMLWVuY29kZWQgc3RyaW5nLCBsaWtlIHRoaXM6IGBrZXkxPXZhbHVlMSZrZXkyPXZhbHVlMmAuIFRoZSB2YWx1ZSBpcyB0aGVuIGRyb3BwZWQgaW50byB0aGUgQ1NTIGZvciBhIHNwZWNpYWwgYDxtZXRhPmAgdGFnLCB3aGljaCBpcyByZWFkIGJ5IHRoZSBGb3VuZGF0aW9uIEphdmFTY3JpcHQuIFRoaXMgaXMgaG93IHdlIHRyYW5zZmVyIHZhbHVlcyBmcm9tIFNhc3MgdG8gSmF2YVNjcmlwdCwgc28gdGhleSBjYW4gYmUgZGVmaW5lZCBpbiBvbmUgcGxhY2UuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIE1hcCB0byBjb252ZXJ0LlxuLy8vXG4vLy8gQHJldHVybnMge1N0cmluZ30gQSBzdHJpbmcgY29udGFpbmluZyB0aGUgbWFwJ3MgY29udGVudHMuXG5AZnVuY3Rpb24gLXpmLWJwLXNlcmlhbGl6ZSgkbWFwKSB7XG4gICRzdHI6ICcnO1xuICBAZWFjaCAka2V5LCAkdmFsdWUgaW4gJG1hcCB7XG4gICAgJHN0cjogJHN0ciArICRrZXkgKyAnPScgKyAtemYtYnAtdG8tZW0oJHZhbHVlKSArICcmJztcbiAgfVxuICAkc3RyOiBzdHItc2xpY2UoJHN0ciwgMSwgLTIpO1xuXG4gIEByZXR1cm4gJHN0cjtcbn1cblxuLy8vIEZpbmQgdGhlIG5leHQga2V5IGluIGEgbWFwLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXAgLSBNYXAgdG8gdHJhdmVyc2UuXG4vLy8gQHBhcmFtIHtNaXhlZH0gJGtleSAtIEtleSB0byB1c2UgYXMgYSBzdGFydGluZyBwb2ludC5cbi8vL1xuLy8vIEByZXR1cm5zIHtNaXhlZH0gVGhlIHZhbHVlIGZvciB0aGUga2V5IGFmdGVyIGAka2V5YCwgaWYgYCRrZXlgIHdhcyBmb3VuZC4gSWYgYCRrZXlgIHdhcyBub3QgZm91bmQsIG9yIGAka2V5YCB3YXMgdGhlIGxhc3QgdmFsdWUgaW4gdGhlIG1hcCwgcmV0dXJucyBgbnVsbGAuXG5AZnVuY3Rpb24gLXpmLW1hcC1uZXh0KCRtYXAsICRrZXkpIHtcblxuICAvLyBTdG9yZSB0aGUga2V5cyBvZiB0aGUgbWFwIGFzIGEgbGlzdFxuICAkdmFsdWVzOiBtYXAta2V5cygkbWFwKTtcblxuICAkaTogMDtcblxuICAvLyBJZiB0aGUgS2V5IEV4aXN0cywgR2V0IHRoZSBpbmRleCBvZiB0aGUga2V5IHdpdGhpbiB0aGUgbWFwIGFuZCBhZGQgMSB0byBpdCBmb3IgdGhlIG5leHQgYnJlYWtwb2ludCBpbiB0aGUgbWFwXG4gIEBpZiAobWFwLWhhcy1rZXkoJG1hcCwgJGtleSkpIHtcbiAgICAkaTogaW5kZXgoJHZhbHVlcywgJGtleSkgKyAxO1xuICB9XG5cbiAgLy8gSWYgdGhlIGtleSBkb2Vzbid0IGV4aXN0LCBvciBpdCdzIHRoZSBsYXN0IGtleSBpbiB0aGUgbWFwLCByZXR1cm4gbnVsbFxuICBAaWYgKCRpID4gbGVuZ3RoKCRtYXApIG9yICRpID09IDApIHtcbiAgICBAcmV0dXJuIG51bGw7XG4gIH1cbiAgLy8gT3RoZXJ3aXNlLCByZXR1cm4gdGhlIHZhbHVlXG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1hcCwgbnRoKCR2YWx1ZXMsICRpKSk7XG4gIH1cblxufVxuXG4vLy8gRmluZCB0aGUgbmV4dCBudW1iZXIgaW4gYSBtYXAuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIE1hcCB0byB0cmF2ZXJzZS5cbi8vLyBAcGFyYW0ge01peGVkfSAkbnVtYmVyIC0gTnVtYmVyIHRvIHVzZSBhcyBhIHN0YXJ0aW5nIHBvaW50LlxuLy8vXG4vLy8gQHJldHVybnMge01peGVkfSBUaGUgbnVtYmVyIGZvbGxvd2luZyBgJG51bWJlcmAsIGlmIGAkbnVtYmVyYCB3YXMgZm91bmQuIElmIGAkbnVtYmVyYCB3YXMgbm90IGZvdW5kLCBvciBgJG51bWJlcmAgd2FzIHRoZSBiaWdnZXN0IG51bWJlciBpbiB0aGUgbWFwLCByZXR1cm5zIGBudWxsYC5cbkBmdW5jdGlvbiAtemYtbWFwLW5leHQtbnVtYmVyKCRtYXAsICRudW1iZXIpIHtcblxuICAkbmV4dF9udW1iZXI6IG51bGw7XG5cbiAgQGVhY2ggJGssICR2IGluICRtYXAge1xuICAgIEBpZiB0eXBlLW9mKCR2KSA9PSAnbnVtYmVyJyBhbmQgJHYgPiAkbnVtYmVyIGFuZCAoJG5leHRfbnVtYmVyID09IG51bGwgb3IgJHYgPCAkbmV4dF9udW1iZXIpIHtcbiAgICAgICRuZXh0X251bWJlcjogJHY7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkbmV4dF9udW1iZXI7XG59XG5cbi8vLyBSZXR1cm4gYSBsaXN0IG9mIG91ciBuYW1lZCBicmVha3BvaW50cyBsZXNzIHRoYW4gJGtleS4gVXNlZnVsIGZvciBkZWFsaW5nIHdpdGhcbi8vLyByZXNwb25zaXZlIGd1dHRlcnMgZm9yIHRoZSBncmlkLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRrZXkgLSBLZXkgdG8gdXNlIGFzIGxhc3QgYnJlYWtwb2ludC5cbi8vL1xuLy8vIEByZXR1cm5zIHtBcnJheX0gVGhlIGxpc3Qgb2YgYnJlYWtwb2ludHMgdXAgdG8gYW5kLiBJZiAka2V5IGlzIGF1dG8sIHJldHVybnMgYnJlYWtwb2ludHMgYWJvdmUgdGhlIHplcm9cbkBmdW5jdGlvbiAtemYtYnJlYWtwb2ludHMtbGVzcy10aGFuKCRrZXkpIHtcbiAgJGxpc3Q6ICgpO1xuICAkZm91bmRfa2V5OiBmYWxzZTtcblxuICBAZWFjaCAkbmFtZSBpbiAkLXpmLWJyZWFrcG9pbnRzLWtleXMge1xuICAgIEBpZiAoJG5hbWUgPT0gJGtleSkge1xuICAgICAgJGZvdW5kX2tleTogdHJ1ZTtcbiAgICB9XG4gICAgQGlmIG5vdCAkZm91bmRfa2V5IHtcbiAgICAgICRsaXN0OiBhcHBlbmQoJGxpc3QsICRuYW1lKTtcbiAgICB9XG4gIH1cbiAgQHJldHVybiAkbGlzdDtcbn1cblxuLy8vIFJldHVybiBhIGxpc3Qgb2Ygb3VyIG5hbWVkIGJyZWFrcG9pbnRzIGxlc3MgdGhhbiAka2V5LiBVc2VmdWwgZm9yIGRlYWxpbmcgd2l0aFxuLy8vIHJlc3BvbnNpdmUgZ3V0dGVycyBmb3IgdGhlIGdyaWQuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGJyZWFrcG9pbnQgLSBhIG5hbWVkIG9yIG5vbi1uYW1lZCBicmVha3BvaW50LlxuLy8vXG4vLy8gQHJldHVybnMge0FycmF5fSBUaGUgbGlzdCBvZiBicmVha3BvaW50cyB1cCB0byBhbmQuIElmICRrZXkgaXMgYXV0bywgcmV0dXJucyBicmVha3BvaW50cyBhYm92ZSB0aGUgemVyb1xuQGZ1bmN0aW9uIC16Zi1jbG9zZXN0LW5hbWVkLWJyZWFrcG9pbnQoJGJyZWFrcG9pbnQpIHtcbiAgJGxhc3Q6ICQtemYtemVyby1icmVha3BvaW50O1xuICAkZm91bmQ6IGZhbHNlO1xuXG4gICR2YWx1ZTogdW5pdGxlc3MtY2FsYygkYnJlYWtwb2ludCwgMXB4KTtcbiAgQGVhY2ggJGtleSwgJHZhbCBpbiAkYnJlYWtwb2ludHMge1xuICAgIEBpZiBub3QgJGZvdW5kIHtcbiAgICAgIEBpZiB1bml0bGVzcy1jYWxjKCR2YWwpID4gJHZhbHVlIHtcbiAgICAgICAgJGZvdW5kOiB0cnVlO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICRsYXN0OiAka2V5O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJGxhc3Q7XG59XG5cbi8vLyBHZXQgYSB2YWx1ZSBmb3IgYSBicmVha3BvaW50IGZyb20gYSByZXNwb25zaXZlIGNvbmZpZyBtYXAgb3Igc2luZ2xlIHZhbHVlLlxuLy8vIC0gSWYgdGhlIGNvbmZpZyBpcyBhIHNpbmdsZSB2YWx1ZSwgcmV0dXJuIGl0IHJlZ2FyZGxlc3Mgb2YgYCR2YWx1ZWAuXG4vLy8gLSBJZiB0aGUgY29uZmlnIGlzIGEgbWFwIGFuZCBoYXMgdGhlIGtleSBgJHZhbHVlYCwgdGhlIGV4YWN0IGJyZWFrcG9pbnQgdmFsdWUgaXMgcmV0dXJuZWQuXG4vLy8gLSBJZiB0aGUgY29uZmlnIGlzIGEgbWFwIGFuZCBkb2VzICpub3QqIGhhdmUgdGhlIGJyZWFrcG9pbnQsIHRoZSB2YWx1ZSBtYXRjaGluZyB0aGUgbmV4dCBsb3dlc3QgYnJlYWtwb2ludCBpbiB0aGUgY29uZmlnIG1hcCBpcyByZXR1cm5lZC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJG1hcCAtIFJlc3BvbnNpdmUgY29uZmlnIG1hcCBvciBzaW5nbGUgdmFsdWUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkdmFsdWUgLSBCcmVha3BvaW50IG5hbWUgdG8gdXNlLlxuLy8vXG4vLy8gQHJldHVybiB7TWl4ZWR9IFRoZSBjb3JyZXNwb25kaW5nIGJyZWFrcG9pbnQgdmFsdWUuXG5AZnVuY3Rpb24gLXpmLWdldC1icC12YWwoJG1hcCwgJHZhbHVlKSB7XG4gIC8vIElmIHRoZSBnaXZlbiBtYXAgaXMgYSBzaW5nbGUgdmFsdWUsIHJldHVybiBpdFxuICBAaWYgdHlwZS1vZigkbWFwKSA9PSAnbnVtYmVyJyB7XG4gICAgQHJldHVybiAkbWFwO1xuICB9XG5cblxuICAvLyBDaGVjayBpZiB0aGUgYnJlYWtwb2ludCBuYW1lIGV4aXN0cyBnbG9iYWxseVxuICBAaWYgbm90IG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJHZhbHVlKSB7XG4gICAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSAnbnVtYmVyJyB7XG4gICAgICAkdmFsdWU6IC16Zi1jbG9zZXN0LW5hbWVkLWJyZWFrcG9pbnQoJHZhbHVlKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIEByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cbiAgLy8gQ2hlY2sgaWYgdGhlIGJyZWFrcG9pbnQgbmFtZSBleGlzdHMgaW4gdGhlIGxvY2FsIGNvbmZpZyBtYXBcbiAgQGVsc2UgaWYgbWFwLWhhcy1rZXkoJG1hcCwgJHZhbHVlKSB7XG4gICAgLy8gSWYgaXQgZG9lcywganVzdCByZXR1cm4gdGhlIHZhbHVlXG4gICAgQHJldHVybiBtYXAtZ2V0KCRtYXAsICR2YWx1ZSk7XG4gIH1cbiAgLy8gT3RoZXJ3aXNlLCBmaW5kIHRoZSBuZXh0IGxvd2VzdCBicmVha3BvaW50IGFuZCByZXR1cm4gdGhhdCB2YWx1ZVxuICBAZWxzZSB7XG4gICAgJGFuY2hvcjogbnVsbDtcbiAgICAkZm91bmQ6IGZhbHNlO1xuXG4gICAgQGVhY2ggJGtleSwgJHZhbCBpbiAkYnJlYWtwb2ludHMge1xuICAgICAgQGlmIG5vdCAkZm91bmQge1xuICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJG1hcCwgJGtleSkge1xuICAgICAgICAgICRhbmNob3I6ICRrZXk7XG4gICAgICAgIH1cbiAgICAgICAgQGlmICRrZXkgPT0gJHZhbHVlIHtcbiAgICAgICAgICAkZm91bmQ6IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1hcCwgJGFuY2hvcik7XG4gIH1cbn1cblxuLy8vIFJldHVybiB0aGUgYmVzdCBicmVha3BvaW50IHRvIHVzZSBhY2NvcmRpbmcgdG8gdGhlIGNhbGxpbmcgY29udGV4dC4gSXQgcmV0dXJucyBpbiBvcmRlcjpcbi8vLyAxLiB0aGUgZ2l2ZW4gYCR2YWx1ZWAgYXJndW1lbnQgaWYgaXQgaXMgbm90IG51bGwuXG4vLy8gMi4gdGhlIGdsb2JhbCBicmVha3BvaW50IGNvbnRleHQgYCQtemYtc2l6ZWAgaWYgaXQgaXMgbm90IG51bGwgKGxpa2UgaWYgY2FsbGVkIGluc2lkZSB0aGVuIGBicmVha3BvaW50KClgIG1peGluKVxuLy8vIDMuIHRoZSBnaXZlbiBgJGRlZmF1bHRgIGFyZ3VtZW50LlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkdmFsdWUgW251bGxdIC0gQnJlYWtwb2ludCB0byB1c2UgaW4gcHJpb3JpdHkgaWYgbm9uLW51bGwuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZGVmYXVsdCBbbnVsbF0gLSBCcmVha3BvaW50IHRvIHVzZSBieSBkZWZhdWx0IGlmIG5vIG90aGVyIHZhbHVlIGNhbiBiZSB1c2VkLlxuLy8vXG4vLy8gQHJldHVybiB7S2V5d29yZH0gVGhlIHJlc29sdmVkIGJyZWFrcG9pbnQuXG5AZnVuY3Rpb24gLXpmLWN1cnJlbnQtYnJlYWtwb2ludCgkdmFsdWU6IG51bGwsICRkZWZhdWx0OiBudWxsKSB7XG4gIEBpZiAoJHZhbHVlICE9IG51bGwpIHtcbiAgICBAcmV0dXJuICR2YWx1ZTtcbiAgfVxuICBAZWxzZSBpZiAodmFyaWFibGUtZXhpc3RzKC16Zi1zaXplKSBhbmQgdHlwZS1vZigkLXpmLXNpemUpICE9ICdudW1iZXInKSBhbmQgJC16Zi1zaXplICE9IG51bGwge1xuICAgIEByZXR1cm4gJC16Zi1zaXplO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuICRkZWZhdWx0O1xuICB9XG59XG5cbi8vLyBSZXR1cm4gbWVkaWEgcXVlcnkgc3RyaW5nIGZyb20gdGhlIGdpdmVuIG1pbiBhbmQvb3IgbWF4IGxpbWl0cy5cbi8vLyBJZiBhIGxpbWl0IGlzIGVxdWFsIHRvIGBudWxsYCBvciBgMGAsIGl0IGlzIGlnbm9yZWQuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJG1pbiBbMF0gLSBNaW4gbWVkaWEgcXVlcnkgbGltaXQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRtYXggWzBdIC0gTWF4IG1lZGlhIHF1ZXJ5IGxpbWl0LlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWluLW5hbWUgWydtaW4td2lkdGgnXSAtIE5hbWUgb2YgdGhlIG1pbiBtZWRpYSBxdWVyeSBsaW1pdC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGRlbGltaXRlciBbJ21heC13aWR0aCddIC0gTmFtZSBvZiB0aGUgbWF4IG1lZGlhIHF1ZXJ5IGxpbWl0LlxuLy8vXG4vLy8gQHJldHVybnMge1N0cmluZ30gTWVkaWEgUXVlcnkgc3RyaW5nLlxuQGZ1bmN0aW9uIC16Zi1icC1qb2luKFxuICAkbWluOiAwLFxuICAkbWF4OiAwLFxuICAkbWluLW5hbWU6ICdtaW4td2lkdGgnLFxuICAkbWF4LW5hbWU6ICdtYXgtd2lkdGgnXG4pIHtcbiAgQHJldHVybiB6Zi1zdHItam9pbihcbiAgICBpZigkbWluIGFuZCAkbWluID4gMCwgJygjeyRtaW4tbmFtZX06ICN7JG1pbn0pJywgbnVsbCksXG4gICAgaWYoJG1heCBhbmQgJG1heCA+IDAsICcoI3skbWF4LW5hbWV9OiAjeyRtYXh9KScsIG51bGwpLFxuICAgICcgYW5kICcpO1xufVxuXG4kc21hbGwtdXA6ICcnO1xuJHNtYWxsLW9ubHk6ICcnO1xuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCBzbWFsbCkge1xuICAkc21hbGwtdXA6IHNjcmVlbjtcbiAgJHNtYWxsLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHNtYWxsIG9ubHkpfScpO1xufVxuXG4kbWVkaXVtLXVwOiAnJztcbiRtZWRpdW0tb25seTogJyc7XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIG1lZGl1bSkge1xuICAkbWVkaXVtLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChtZWRpdW0pfScpO1xuICAkbWVkaXVtLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KG1lZGl1bSBvbmx5KX0nKTtcbn1cblxuJGxhcmdlLXVwOiAnJztcbiRsYXJnZS1vbmx5OiAnJztcblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgbGFyZ2UpIHtcbiAgJGxhcmdlLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChsYXJnZSl9Jyk7XG4gICRsYXJnZS1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChsYXJnZSBvbmx5KX0nKTtcbn1cblxuJHhsYXJnZS11cDogJyc7XG4keGxhcmdlLW9ubHk6ICcnO1xuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCB4bGFyZ2UpIHtcbiAgJHhsYXJnZS11cDogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoeGxhcmdlKX0nKTtcbiAgJHhsYXJnZS1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludCh4bGFyZ2Ugb25seSl9Jyk7XG59XG5cbiR4eGxhcmdlLXVwOiAnJztcblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgeHhsYXJnZSkge1xuICAkeHhsYXJnZS11cDogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoeHhsYXJnZSl9Jyk7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgeHktZ3JpZFxuLy8vL1xuXG4vLy8gUmV0dXJucyB0aGUgYXBwcm9wcmlhdGUgQ1NTIGZsZXggdmFsdWUgZm9yIGEgY2VsbCBiYXNlLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSBbZnVsbF0gLSBUaGUgc2l6ZSBvZiB5b3VyIGNlbGwuIEFjY2VwdHMgYGZ1bGxgLCBgYXV0b2AsIGBzaHJpbmtgLCBgZ3Jvd2AsIG9yIGFueSBvdGhlciB2YWx1ZSByZXByZXNlbnRpbmcgYSBjZWxsIHNpemUgKGl0IHdpbGwgYmUgdHJlYXRlZCBhcyBgc2hyaW5rYCkuXG4vLy9cbi8vLyBAcmV0dXJucyB7TGlzdH0gVGhlIGNlbGwgZmxleCBwcm9wZXJ0eSB2YWx1ZS5cbkBmdW5jdGlvbiB4eS1jZWxsLWJhc2UoJHNpemU6IGZ1bGwpIHtcbiAgQGlmICgkc2l6ZSA9PSAnYXV0bycpIHtcbiAgICBAcmV0dXJuIDEgMSAwcHg7XG4gIH1cbiAgQGVsc2UgaWYgKCRzaXplID09ICdncm93Jykge1xuICAgIEByZXR1cm4gMSAwIGF1dG87XG4gIH1cbiAgQGVsc2UgaWYgKCRzaXplID09ICdzaHJpbmsnIG9yICRzaXplID09ICdmdWxsJyBvciB6Zi1pcy1mcmFjdGlvbigkc2l6ZSwgJGFsbG93LW5vLWRlbm9taW5hdG9yOiB0cnVlKSkge1xuICAgIEByZXR1cm4gMCAwIGF1dG87XG4gIH1cbiAgQHJldHVybiBudWxsO1xufVxuXG4vLy8gQ2FsY3VsYXRlIHRoZSBzaXplIG9mIGEgY2VsbCBndXR0ZXJzLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtbWFyZ2luLWd1dHRlcnNdIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSBmb3IgZ3V0dGVycy5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGJyZWFrcG9pbnQgW251bGxdIC0gVGhlIG5hbWUgb2YgdGhlIGJyZWFrcG9pbnQgc2l6ZSBpbiB5b3VyIGd1dHRlcnMgbWFwIHRvIGdldCB0aGUgc2l6ZSBmcm9tLiBJZiBgYXV0b2AsIHJldHVybnMgdGhlIHJlc3BvbnNpdmUgZ3V0dGVycyBtYXAgYCRndXR0ZXJzYC4gSWYgdXNpbmcgd2l0aCB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdGhpcyB3aWxsIGJlIHNldCBhdXRvbWF0aWNhbGx5IHVubGVzcyBtYW51YWxseSBlbnRlcmVkLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcnxNYXB9IFRoZSBjZWxsIGd1dHRlciBzaXplIG9yIHRoZSByZXNwb25zaXZlIGd1dHRlcnMgbWFwLlxuQGZ1bmN0aW9uIHh5LWNlbGwtZ3V0dGVycyhcbiAgJGd1dHRlcnM6ICRncmlkLW1hcmdpbi1ndXR0ZXJzLFxuICAkYnJlYWtwb2ludDogbnVsbFxuKSB7XG4gIC8vIEZvciBgYXV0b2AsIHJldHVybnMgdGhlIHJlc3BvbnNpdmUgbWFwIGAkZ3V0dGVyc2AuXG4gIEBpZiAoJGJyZWFrcG9pbnQgPT0gJ2F1dG8nKSB7XG4gICAgQHJldHVybiAkZ3V0dGVycztcbiAgfVxuXG4gIC8vIFVzZSB0aGUgY29udGV4dHVhbCBicmVha3BvaW50IGJ5IGRlZmF1bHQuXG4gICRicmVha3BvaW50OiAtemYtY3VycmVudC1icmVha3BvaW50KCRicmVha3BvaW50KTtcblxuICBAaWYgKCRicmVha3BvaW50KSB7XG4gICAgQHJldHVybiAtemYtZ2V0LWJwLXZhbCgkZ3V0dGVycywgJGJyZWFrcG9pbnQpO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIC16Zi1nZXQtYnAtdmFsKCRndXR0ZXJzLCAkLXpmLXplcm8tYnJlYWtwb2ludCkgb3IgMDtcbiAgfVxufVxuXG4vLy8gUmV0dXJucyB0aGUgcGVyY2VudGFnZSBzaXplIG9mIGEgY2VsbC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICRzaXplIFskZ3JpZC1jb2x1bW5zXSAtIFNpemUgdG8gbWFrZSB0aGUgY2VsbC4gWW91IGNhbiBwYXNzIGEgdmFsdWUgaW4gbXVsdGlwbGUgZm9ybWF0cywgc3VjaCBhcyBgNmAsIGA1MCVgLCBgMSBvZiAyYCBvciBgMS8zYC5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IFNpemUgb2YgdGhlIGNlbGwgKGluIHBlcmNlbnQpLlxuQGZ1bmN0aW9uIHh5LWNlbGwtc2l6ZShcbiAgJHNpemU6ICRncmlkLWNvbHVtbnNcbikge1xuICBAcmV0dXJuIGZyYWN0aW9uLXRvLXBlcmNlbnRhZ2UoJHNpemUsICRkZW5vbWluYXRvcjogJGdyaWQtY29sdW1ucyk7XG59XG5cbi8vLyBSZXR1cm5zIHRoZSBhcHByb3ByaWF0ZSBDU1MgdmFsdWUgZm9yIGEgY2VsbCBzaXplLlxuLy8vXG4vLy8gR3V0dGVycy1yZWxhdGVkIGFyZ3VtZW50cyBhcmUgcmVxdWlyZWQgZm9yIGNlbGxzIHdpdGggbWFyZ2luIGd1dHRlcnMgKGJ5IGRlZmF1bHQpIGFzIHRoZSBndXR0ZXIgaXMgaW5jbHVkZWQgaW4gdGhlIHdpZHRoLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHNpemUgW2Z1bGxdIC0gVGhlIHNpemUgb2YgeW91ciBjZWxsLiBDYW4gYmUgYGZ1bGxgLCBgYXV0b2AsIGBzaHJpbmtgIG9yIGFueSBmcmFjdGlvbiBsaWtlIGA2YCwgYDUwJWAsIGAxIG9mIDJgIG9yIGAxLzJgLlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLW1hcmdpbi1ndXR0ZXJzXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgZm9yIGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZ3V0dGVyLXR5cGUgW21hcmdpbl0gLSBUeXBlIG9mIGd1dHRlciB0byBvdXRwdXQuIEFjY2VwdHMgYG1hcmdpbmAsIGBwYWRkaW5nYCBvciBgbm9uZWAuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRicmVha3BvaW50IFtudWxsXSAtIFRoZSBuYW1lIG9mIHRoZSBicmVha3BvaW50IHNpemUgaW4geW91ciBndXR0ZXJzIG1hcCB0byBnZXQgdGhlIHNpemUgZnJvbS4gSWYgYGF1dG9gLCByZXR1cm5zIGEgbWFwIG9mIHNpemVzIGFkYXB0ZWQgdG8gcmVzcG9uc2l2ZSBndXR0ZXJzLiBJZiB1c2luZyB3aXRoIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0aGlzIHdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkgdW5sZXNzIG1hbnVhbGx5IGVudGVyZWQuXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfFN0cmluZ3xNYXB9IFRoZSBjZWxsIHNpemluZyBwcm9wZXJ0eSB2YWx1ZSwgb3IgYSByZXNwb25zaXZlIG1hcCBvZiB0aGVtLlxuQGZ1bmN0aW9uIHh5LWNlbGwtc2l6ZS1jc3MoXG4gICRzaXplOiBmdWxsLFxuICAkZ3V0dGVyczogJGdyaWQtbWFyZ2luLWd1dHRlcnMsXG4gICRndXR0ZXItdHlwZTogbWFyZ2luLFxuICAkYnJlYWtwb2ludDogbnVsbFxuKSB7XG4gICRtYXJnaW4tZ3V0dGVyOiAwO1xuXG4gIEBpZiAoJHNpemUgPT0gJ2F1dG8nIG9yICRzaXplID09ICdzaHJpbmsnKSB7XG4gICAgQHJldHVybiBhdXRvO1xuICB9XG5cbiAgLy8gRm9yIGNlbGxzIHdpdGggbWFyZ2luIGd1dHRlcnMsIHRoZSBndXR0ZXIgaXMgaW5jbHVkZWQgaW4gdGhlIHdpZHRoLlxuICBAaWYgKCRndXR0ZXItdHlwZSA9PSAnbWFyZ2luJykge1xuICAgICRtYXJnaW4tZ3V0dGVyOiB4eS1jZWxsLWd1dHRlcnMoJGd1dHRlcnMsICRicmVha3BvaW50KTtcbiAgICBAaWYgKCRtYXJnaW4tZ3V0dGVyID09IG51bGwpIHtcbiAgICAgIEBlcnJvciAneHktY2VsbC1zaXplOiBubyBndXR0ZXJzIHdlcmUgZm91bmQgaW4gYCRndXR0ZXJzYCBmb3IgXCIkYnJlYWtwb2ludDogI3skYnJlYWtwb2ludH1cIic7XG4gICAgfVxuICB9XG5cbiAgLy8gQ2FsY3VsYXRlIHRoZSBjZWxsIHNpemUgKG51bWJlcilcbiAgJHNpemUtcmF3OiBpZigkc2l6ZSA9PSAnZnVsbCcsIDEwMCUsIHh5LWNlbGwtc2l6ZSgkc2l6ZSkpO1xuXG4gIC8vIENhbGN1bGF0ZSB0aGUgY2VsbCBDU1Mgc2l6ZSBpbmNsdWRpbmcgZ3V0dGVycyAoc3RyaW5nKVxuICAvLyBJZiB0aGUgY2VsbCBoYXMgcmVzcG9uc2l2ZSBtYXJnaW4gZ3V0dGVycywgcmV0dXJuIGEgcmVzcG9uc2l2ZSBtYXAgb2Ygc2l6ZXMuXG4gIEBpZiB0eXBlLW9mKCRtYXJnaW4tZ3V0dGVyKSA9PSAnbWFwJyB7XG4gICAgJHJlc3BvbnNpdmUtY3NzLXNpemVzOiAoKTtcblxuICAgIEBlYWNoICRicCwgJG1nIGluICRtYXJnaW4tZ3V0dGVyIHtcbiAgICAgICRzaXplLWNzczogaWYoJG1nID09IDAsICRzaXplLXJhdywgY2FsYygjeyRzaXplLXJhd30gLSAje3JlbS1jYWxjKCRtZyl9KSk7XG4gICAgICAkcmVzcG9uc2l2ZS1jc3Mtc2l6ZXM6IG1hcC1tZXJnZSgkcmVzcG9uc2l2ZS1jc3Mtc2l6ZXMsICgkYnA6ICRzaXplLWNzcykpO1xuICAgIH1cblxuICAgIEByZXR1cm4gJHJlc3BvbnNpdmUtY3NzLXNpemVzO1xuICB9XG4gIC8vIE90aGVyd2lzZSwgcmV0dXJuIGEgc2luZ2xlIENTUyBzaXplLlxuICBAZWxzZSB7XG4gICAgJGNzcy1zaXplOiBpZigkbWFyZ2luLWd1dHRlciA9PSAwLCAkc2l6ZS1yYXcsIGNhbGMoI3skc2l6ZS1yYXd9IC0gI3tyZW0tY2FsYygkbWFyZ2luLWd1dHRlcil9KSk7XG4gICAgQHJldHVybiAkY3NzLXNpemU7XG4gIH1cbn1cblxuLy8vIFNldHMgYmFzZSBmbGV4IHByb3BlcnRpZXMgZm9yIGNlbGxzLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSBbZnVsbF0gLSBUaGUgc2l6ZSBvZiB5b3VyIGNlbGwuIEFjY2VwdHMgYGZ1bGxgLCBgYXV0b2AsIGBzaHJpbmtgLCBgZ3Jvd2AsIG9yIGFueSBvdGhlciB2YWx1ZSByZXByZXNlbnRpbmcgYSBjZWxsIHNpemUgKGl0IHdpbGwgYmUgdHJlYXRlZCBhcyBgc2hyaW5rYCkuXG5AbWl4aW4geHktY2VsbC1iYXNlKCRzaXplOiBmdWxsKSB7XG4gICRiYXNlOiB4eS1jZWxsLWJhc2UoJHNpemUpO1xuXG4gIGZsZXg6ICN7JGJhc2V9O1xuXG4gIC8vIFNldCBiYXNlIHN0eWxlcyBmb3IgXCJmdWxsXCIgb25seVxuICBAaWYoJHNpemUgPT0gJ2Z1bGwnKSB7XG4gICAgbWluLWhlaWdodDogMHB4O1xuICAgIG1pbi13aWR0aDogMHB4O1xuICB9XG59XG5cbi8vLyBSZXNldHMgYSBjZWxscyB3aWR0aCAob3IgaGVpZ2h0IGlmIHZlcnRpY2FsIGlzIHRydWUpIGFzIHdlbGwgYXMgc3RyaXBzIGl0cyBndXR0ZXJzLlxuLy8vXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkdmVydGljYWwgW2ZhbHNlXSAtIFNldCB0byB0cnVlIHRvIG91dHB1dCB2ZXJ0aWNhbCAoaGVpZ2h0KSBzdHlsZXMgcmF0aGVyIHRoYW4gd2lkdGhzLlxuQG1peGluIHh5LWNlbGwtcmVzZXQoJHZlcnRpY2FsOiB0cnVlKSB7XG4gICRkaXJlY3Rpb246IGlmKCR2ZXJ0aWNhbCA9PSB0cnVlLCBoZWlnaHQsIHdpZHRoKTtcbiAgI3skZGlyZWN0aW9ufTogYXV0bztcbiAgbWF4LSN7JGRpcmVjdGlvbn06IG5vbmU7XG59XG5cbi8vLyBTZXRzIHNpemluZyBwcm9wZXJ0aWVzIGZvciBjZWxscy5cbi8vL1xuLy8vIEd1dHRlcnMtcmVsYXRlZCBhcmd1bWVudHMgYXJlIHJlcXVpcmVkIGZvciBjZWxscyB3aXRoIG1hcmdpbiBndXR0ZXJzIChieSBkZWZhdWx0KSBhcyB0aGUgZ3V0dGVyIGlzIGluY2x1ZGVkIGluIHRoZSB3aWR0aC5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICRzaXplIFtmdWxsXSAtIFRoZSBzaXplIG9mIHlvdXIgY2VsbC4gQ2FuIGJlIGBmdWxsYCAoMTAwJSB3aWR0aCksIGBhdXRvYCAodXNlIGFsbCBhdmFpbGFibGUgc3BhY2UpLCBgc2hyaW5rYCAodXNlIG9ubHkgdGhlIHJlcXVpcmVkIHNwYWNlKSBvciBhbnkgZnJhY3Rpb24gKGA2YCwgYDUwJWAsIGAxIG9mIDJgIG9yIGAxLzJgLi4uKS5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1tYXJnaW4tZ3V0dGVyc10gLSBNYXAgb3Igc2luZ2xlIHZhbHVlIGZvciBndXR0ZXJzLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGd1dHRlci10eXBlIFttYXJnaW5dIC0gVHlwZSBvZiBndXR0ZXIgdG8gb3V0cHV0LiBBY2NlcHRzIGBtYXJnaW5gLCBgcGFkZGluZ2Agb3IgYG5vbmVgLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkYnJlYWtwb2ludCBbbnVsbF0gLSBUaGUgbmFtZSBvZiB0aGUgYnJlYWtwb2ludCBzaXplIGluIHlvdXIgZ3V0dGVycyBtYXAgdG8gZ2V0IHRoZSBzaXplIGZyb20uIElmIGBhdXRvYCwgZ2VuZXJhdGVzIHNpemVzIGFkYXB0ZWQgZm9yIHJlc3BvbnNpdmUgZ3V0dGVycy4gSWYgdXNpbmcgd2l0aCB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdGhpcyB3aWxsIGJlIHNldCBhdXRvbWF0aWNhbGx5IHVubGVzcyBtYW51YWxseSBlbnRlcmVkLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHZlcnRpY2FsIFtmYWxzZV0gLSBTZXQgdG8gdHJ1ZSB0byBvdXRwdXQgdmVydGljYWwgKGhlaWdodCkgc3R5bGVzIHJhdGhlciB0aGFuIHdpZHRocy5cbkBtaXhpbiB4eS1jZWxsLXNpemUoXG4gICRzaXplOiBmdWxsLFxuICAkZ3V0dGVyczogJGdyaWQtbWFyZ2luLWd1dHRlcnMsXG4gICRndXR0ZXItdHlwZTogbWFyZ2luLFxuICAkYnJlYWtwb2ludDogbnVsbCxcbiAgJHZlcnRpY2FsOiBmYWxzZVxuKSB7XG4gICRzaXplczogeHktY2VsbC1zaXplLWNzcygkc2l6ZSwgJGd1dHRlcnMsICRndXR0ZXItdHlwZSwgJGJyZWFrcG9pbnQpO1xuICAkZGlyZWN0aW9uOiBpZigkdmVydGljYWwgPT0gdHJ1ZSwgaGVpZ2h0LCB3aWR0aCk7XG5cbiAgQGlmICh0eXBlLW9mKCRzaXplcykgPT0gJ21hcCcpIHtcbiAgICBAaW5jbHVkZSAtemYtYnJlYWtwb2ludC12YWx1ZShhdXRvLCAkc2l6ZXMpIHtcbiAgICAgICN7JGRpcmVjdGlvbn06ICQtemYtYnAtdmFsdWU7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAjeyRkaXJlY3Rpb259OiAkc2l6ZXM7XG4gIH1cbn1cblxuLy8vIFNldHMgZ3V0dGVycyBwcm9wZXJ0aWVzIGZvciBjZWxscy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLW1hcmdpbi1ndXR0ZXJzXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgZm9yIGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZ3V0dGVyLXR5cGUgW21hcmdpbl0gLSBUeXBlIG9mIGd1dHRlciB0byBvdXRwdXQuIEFjY2VwdHMgYG1hcmdpbmAsIGBwYWRkaW5nYCBvciBgbm9uZWAuXG4vLy8gQHBhcmFtIHtMaXN0fSAkZ3V0dGVyLXBvc2l0aW9uIFtudWxsXSAtIFRoZSBwb3NpdGlvbiB0byBhcHBseSBndXR0ZXJzIHRvLiBBY2NlcHRzIGB0b3BgLCBgYm90dG9tYCwgYGxlZnRgLCBgcmlnaHRgIGluIGFueSBjb21iaW5hdGlvbi4gQnkgZGVmYXVsdCBgcmlnaHQgbGVmdGAgZm9yIGhvcml6b250YWwgY2VsbHMgYW5kIGB0b3AgYm90dG9tYCBmb3IgdmVydGljYWwgY2VsbHMuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRicmVha3BvaW50IFtudWxsXSAtIFRoZSBuYW1lIG9mIHRoZSBicmVha3BvaW50IHNpemUgaW4geW91ciBndXR0ZXJzIG1hcCB0byBnZXQgdGhlIHNpemUgZnJvbS4gSWYgYGF1dG9gLCBnZW5lcmF0ZXMgcmVzcG9uc2l2ZSBndXR0ZXJzLiBJZiB1c2luZyB3aXRoIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0aGlzIHdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkgdW5sZXNzIG1hbnVhbGx5IGVudGVyZWQuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkdmVydGljYWwgW2ZhbHNlXSAtIERpcmVjdGlvbiBvZiB0aGUgZ3V0dGVycyB0byBvdXRwdXQuIFNlZSBgJGd1dHRlci1wb3NpdGlvbmAuXG5AbWl4aW4geHktY2VsbC1ndXR0ZXJzKFxuICAkZ3V0dGVyczogJGdyaWQtbWFyZ2luLWd1dHRlcnMsXG4gICRndXR0ZXItdHlwZTogbWFyZ2luLFxuICAkZ3V0dGVyLXBvc2l0aW9uOiBudWxsLFxuICAkYnJlYWtwb2ludDogbnVsbCxcbiAgJHZlcnRpY2FsOiBmYWxzZVxuKSB7XG4gIC8vIEdldCB0aGUgZGVmYXVsdCBndXR0ZXIgcG9zaXRpb24gYWNjb3JkaW5nIHRvIGNlbGwgZGlyZWN0aW9uXG4gIEBpZigkZ3V0dGVyLXBvc2l0aW9uID09IG51bGwpIHtcbiAgICAkZ3V0dGVyLXBvc2l0aW9uOiBpZigkdmVydGljYWwgPT0gdHJ1ZSwgdG9wIGJvdHRvbSwgbGVmdCByaWdodCk7XG4gIH1cblxuICAvLyBHZXQgdGhlIGd1dHRlciB3aWR0aCBmb3IgdGhpcyBicmVha3BvaW50XG4gICRndXR0ZXItd2lkdGg6IHh5LWNlbGwtZ3V0dGVycygkZ3V0dGVycywgJGJyZWFrcG9pbnQpO1xuICBAaWYgKCRndXR0ZXItd2lkdGggPT0gbnVsbCkge1xuICAgIEBlcnJvciAneHktY2VsbC1ndXR0ZXJzOiBubyBndXR0ZXJzIHdlcmUgZm91bmQgaW4gYCRndXR0ZXJzYCBmb3IgXCIkYnJlYWtwb2ludDogI3skYnJlYWtwb2ludH1cIic7XG4gIH1cblxuICBAaWYgKCRndXR0ZXItdHlwZSBhbmQgJGd1dHRlci10eXBlICE9IG5vbmUpIHtcbiAgICBAaW5jbHVkZSB4eS1ndXR0ZXJzKCRndXR0ZXItd2lkdGgsICRndXR0ZXItdHlwZSwgJGd1dHRlci1wb3NpdGlvbik7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBjZWxsIGZvciB5b3VyIGdyaWQuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkc2l6ZSBbZnVsbF0gLSBUaGUgc2l6ZSBvZiB5b3VyIGNlbGwuIENhbiBiZSBgZnVsbGAgKDEwMCUgd2lkdGgpLCBgYXV0b2AgKHVzZSBhbGwgYXZhaWxhYmxlIHNwYWNlKSwgYHNocmlua2AgKHVzZSBvbmx5IHRoZSByZXF1aXJlZCBzcGFjZSkgb3IgYW55IGZyYWN0aW9uIChgNmAsIGA1MCVgLCBgMSBvZiAyYCBvciBgMS8yYC4uLikuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZ3V0dGVyLW91dHB1dCBbbnVsbF0gLSBbREVQUkVDQVRFRF0gV2hldGhlciBvciBub3QgdG8gb3V0cHV0IGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtbWFyZ2luLWd1dHRlcnNdIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSBmb3IgZ3V0dGVycy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRndXR0ZXItdHlwZSBbbWFyZ2luXSAtIFR5cGUgb2YgZ3V0dGVyIHRvIG91dHB1dC4gQWNjZXB0cyBgbWFyZ2luYCwgYHBhZGRpbmdgIG9yIGBub25lYC5cbi8vLyBAcGFyYW0ge0xpc3R9ICRndXR0ZXItcG9zaXRpb24gW251bGxdIC0gVGhlIHBvc2l0aW9uIHRvIGFwcGx5IGd1dHRlcnMgdG8uIEFjY2VwdHMgYHRvcGAsIGBib3R0b21gLCBgbGVmdGAsIGByaWdodGAgaW4gYW55IGNvbWJpbmF0aW9uLiBCeSBkZWZhdWx0IGByaWdodCBsZWZ0YCBmb3IgaG9yaXpvbnRhbCBjZWxscyBhbmQgYHRvcCBib3R0b21gIGZvciB2ZXJ0aWNhbCBjZWxscy5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGJyZWFrcG9pbnQgW251bGxdIC0gVGhlIG5hbWUgb2YgdGhlIGJyZWFrcG9pbnQgc2l6ZSBpbiB5b3VyIGd1dHRlcnMgbWFwIHRvIGdldCB0aGUgc2l6ZSBmcm9tLiBJZiBgYXV0b2AsIGdlbmVyYXRlcyByZXNwb25zaXZlIGd1dHRlcnMuIElmIHVzaW5nIHdpdGggdGhlIGBicmVha3BvaW50KClgIG1peGluIHRoaXMgd2lsbCBiZSBzZXQgYXV0b21hdGljYWxseSB1bmxlc3MgbWFudWFsbHkgZW50ZXJlZC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICR2ZXJ0aWNhbCBbZmFsc2VdIC0gU2V0IHRvIHRydWUgdG8gb3V0cHV0IHZlcnRpY2FsIChoZWlnaHQpIHN0eWxlcyByYXRoZXIgdGhhbiB3aWR0aHMuXG4vLy8gQHBhcmFtIHtMaXN0fSAkb3V0cHV0IFsoYmFzZSBzaXplIGd1dHRlcnMpXSAtIENlbGwgcGFydHMgdG8gb3V0cHV0LiBZb3Ugd2lsbCBuZWVkIHRvIGdlbmVyYXRlIG90aGVycyBwYXJ0cyBvZiB0aGUgY2VsbCBzZXBlcmF0ZWx5LCBpdCBtYXkgbm90IHdvcmsgcHJvcGVybHkgb3RoZXJ3aXNlLlxuQG1peGluIHh5LWNlbGwoXG4gICRzaXplOiBmdWxsLFxuICAkZ3V0dGVyLW91dHB1dDogbnVsbCxcbiAgJGd1dHRlcnM6ICRncmlkLW1hcmdpbi1ndXR0ZXJzLFxuICAkZ3V0dGVyLXR5cGU6IG1hcmdpbixcbiAgJGd1dHRlci1wb3NpdGlvbjogbnVsbCxcbiAgJGJyZWFrcG9pbnQ6IG51bGwsXG4gICR2ZXJ0aWNhbDogZmFsc2UsXG4gICRvdXRwdXQ6IChiYXNlIHNpemUgZ3V0dGVycylcbikge1xuICAvLyBEZWZhdWx0IGZvciAkZ3V0dGVyLW91dHB1dFxuICBAaWYgKCRndXR0ZXItb3V0cHV0ICE9IG51bGwpIHtcbiAgICBAd2FybiAneHktY2VsbDogJGd1dHRlci1vdXRwdXQgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkLiBTZWUgbWlncmF0aW9uIG5vdGVzIGF0IGh0dHBzOi8vZ2l0LmlvL2ZvdW5kYXRpb24tNi02LTAnO1xuICAgIEBpZiAoJGd1dHRlci1vdXRwdXQgPT0gZmFsc2UpIHtcbiAgICAgICRvdXRwdXQ6IHNsLXJlbW92ZSgkb3V0cHV0LCBndXR0ZXJzKTtcbiAgICB9XG4gIH1cblxuICBAaWYgKGluZGV4KCRvdXRwdXQsIGJhc2UpKSB7XG4gICAgQGluY2x1ZGUgeHktY2VsbC1iYXNlKCRzaXplKTtcbiAgfVxuICBAaWYgKGluZGV4KCRvdXRwdXQsIHNpemUpKSB7XG4gICAgQGluY2x1ZGUgeHktY2VsbC1zaXplKCRzaXplLCAkZ3V0dGVycywgJGd1dHRlci10eXBlLCAkYnJlYWtwb2ludCwgJHZlcnRpY2FsKTtcbiAgfVxuICBAaWYgKGluZGV4KCRvdXRwdXQsIGd1dHRlcnMpKSB7XG4gICAgQGluY2x1ZGUgeHktY2VsbC1ndXR0ZXJzKCRndXR0ZXJzLCAkZ3V0dGVyLXR5cGUsICRndXR0ZXItcG9zaXRpb24sICRicmVha3BvaW50LCAkdmVydGljYWwpO1xuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgc2luZ2xlIGJyZWFrcG9pbnQgc2l6ZWQgZ3JpZC4gVXNlZCB0byBnZW5lcmF0ZSBvdXIgZ3JpZCBjbGFzc2VzLlxuLy8vXG4vLy8gYHh5LWNlbGwtc3RhdGljKClgIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZC5cbi8vLyBVc2UgYHh5LWNlbGwoKWAgaW5zdGVhZCB3aXRoIGAkb3V0cHV0OiAoc2l6ZSBndXR0ZXJzKWAgdG8gbm90IGdlbmVyYXRlIHRoZSBjZWxsIGJhc2UuXG4vLy8gU2VlIG1pZ3JhdGlvbiBub3RlcyBhdCBodHRwczovL2dpdC5pby9mb3VuZGF0aW9uLTYtNi0wXG4vLy9cbi8vLyBAZGVwcmVjYXRlZCB2Ni42LjBcbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICRzaXplIFtmdWxsXSAtIFRoZSBzaXplIG9mIHlvdXIgY2VsbC4gQ2FuIGJlIGBmdWxsYCAoMTAwJSB3aWR0aCksIGBhdXRvYCAodXNlIGFsbCBhdmFpbGFibGUgc3BhY2UpLCBgc2hyaW5rYCAodXNlIG9ubHkgdGhlIHJlcXVpcmVkIHNwYWNlKSBvciBhbnkgZnJhY3Rpb24gKGA2YCwgYDUwJWAsIGAxIG9mIDJgIG9yIGAxLzJgLi4uKS5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRndXR0ZXItb3V0cHV0IFt0cnVlXSAtIFdoZXRoZXIgb3Igbm90IHRvIG91dHB1dCBndXR0ZXJzLiBBbHdheXMgYHRydWVgIGZvciBtYXJnaW4gZ3V0dGVycy5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1tYXJnaW4tZ3V0dGVyc10gLSBNYXAgb3Igc2luZ2xlIHZhbHVlIGZvciBndXR0ZXJzLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGd1dHRlci10eXBlIFttYXJnaW5dIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSBmb3IgZ3V0dGVycy5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGJyZWFrcG9pbnQgW251bGxdIC0gVGhlIG5hbWUgb2YgdGhlIGJyZWFrcG9pbnQgc2l6ZSBpbiB5b3VyIGd1dHRlcnMgbWFwIHRvIGdldCB0aGUgc2l6ZSBmcm9tLiBJZiB1c2luZyB3aXRoIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0aGlzIHdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkgdW5sZXNzIG1hbnVhbGx5IGVudGVyZWQuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkdmVydGljYWwgW2ZhbHNlXSAtIFNldCB0byB0cnVlIHRvIG91dHB1dCB2ZXJ0aWNhbCAoaGVpZ2h0KSBzdHlsZXMgcmF0aGVyIHRoYW4gd2lkdGhzLlxuQG1peGluIHh5LWNlbGwtc3RhdGljKFxuICAkc2l6ZTogZnVsbCxcbiAgJGd1dHRlci1vdXRwdXQ6IHRydWUsXG4gICRndXR0ZXJzOiAkZ3JpZC1tYXJnaW4tZ3V0dGVycyxcbiAgJGd1dHRlci10eXBlOiBtYXJnaW4sXG4gICRicmVha3BvaW50OiAkLXpmLXplcm8tYnJlYWtwb2ludCxcbiAgJHZlcnRpY2FsOiBmYWxzZVxuKSB7XG4gIEB3YXJuICd4eS1jZWxsLXN0YXRpYygpIG1peGluIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4gVXNlIFwieHktY2VsbCgpXCIgaW5zdGVhZC4gU2VlIG1pZ3JhdGlvbiBub3RlcyBhdCBodHRwczovL2dpdC5pby9mb3VuZGF0aW9uLTYtNi0wJztcblxuICAkZ3V0dGVyOiAtemYtZ2V0LWJwLXZhbCgkZ3V0dGVycywgJGJyZWFrcG9pbnQpO1xuICAkZ3V0dGVyLXBvc2l0aW9uOiBpZigkdmVydGljYWwgPT0gdHJ1ZSwgdG9wIGJvdHRvbSwgbGVmdCByaWdodCk7XG5cbiAgJC1ndXR0ZXItb3V0cHV0OiBpZigkZ3V0dGVyLXR5cGUgPT0gJ21hcmdpbicsIHRydWUsICRndXR0ZXItb3V0cHV0KTtcbiAgJC1ndXR0ZXItbWFyZ2luOiBpZigkZ3V0dGVyLXR5cGUgPT0gJ21hcmdpbicsICRndXR0ZXIsIDApO1xuXG4gIEBpbmNsdWRlIC14eS1jZWxsLXByb3BlcnRpZXMoJHNpemUsICQtZ3V0dGVyLW1hcmdpbiwgJHZlcnRpY2FsKTtcbiAgQGlmICgkLWd1dHRlci1vdXRwdXQpIHtcbiAgICBAaW5jbHVkZSB4eS1ndXR0ZXJzKCRndXR0ZXIsICRndXR0ZXItdHlwZSwgJGd1dHRlci1wb3NpdGlvbik7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmdW5jdGlvbnNcbi8vLy9cblxuLy8vIEZpbmRzIHRoZSBncmVhdGVzdCBjb21tb24gZGl2aXNvciBvZiB0d28gaW50ZWdlcnMuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJGEgLSBGaXJzdCBudW1iZXIgdG8gY29tcGFyZS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGIgLSBTZWNvbmQgbnVtYmVyIHRvIGNvbXBhcmUuXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBUaGUgZ3JlYXRlc3QgY29tbW9uIGRpdmlzb3IuXG5AZnVuY3Rpb24gZ2NkKCRhLCAkYikge1xuICAvLyBGcm9tOiBodHRwOi8vcm9zZXR0YWNvZGUub3JnL3dpa2kvR3JlYXRlc3RfY29tbW9uX2Rpdmlzb3IjSmF2YVNjcmlwdFxuICBAaWYgKCRiICE9IDApIHtcbiAgICBAcmV0dXJuIGdjZCgkYiwgJGEgJSAkYik7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gYWJzKCRhKTtcbiAgfVxufVxuXG4vLy8gSGFuZGxlcyBkZWNpbWFsIGV4cG9uZW50cyBieSB0cnlpbmcgdG8gY29udmVydCB0aGVtIGludG8gYSBmcmFjdGlvbiBhbmQgdGhlbiB1c2UgYSBudGgtcm9vdC1hbGdvcml0aG0gZm9yIHBhcnRzIG9mIHRoZSBjYWxjdWxhdGlvblxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlIC0gVGhlIGJhc2UgbnVtYmVyLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZXhwb25lbnQgLSBUaGUgZXhwb25lbnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBUaGUgcHJvZHVjdCBvZiB0aGUgZXhwb25lbnRpYXRpb24uXG5AZnVuY3Rpb24gcG93KCRiYXNlLCAkZXhwb25lbnQsICRwcmVjOiAxNikge1xuICBAaWYgKGZsb29yKCRleHBvbmVudCkgIT0gJGV4cG9uZW50KSB7XG4gICAgJHByZWMyIDogcG93KDEwLCAkcHJlYyk7XG4gICAgJGV4cG9uZW50OiByb3VuZCgkZXhwb25lbnQgKiAkcHJlYzIpO1xuICAgICRkZW5vbWluYXRvcjogZ2NkKCRleHBvbmVudCwgJHByZWMyKTtcbiAgICBAcmV0dXJuIG50aC1yb290KHBvdygkYmFzZSwgJGV4cG9uZW50IC8gJGRlbm9taW5hdG9yKSwgJHByZWMyIC8gJGRlbm9taW5hdG9yLCAkcHJlYyk7XG4gIH1cblxuICAkdmFsdWU6ICRiYXNlO1xuICBAaWYgJGV4cG9uZW50ID4gMSB7XG4gICAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkZXhwb25lbnQge1xuICAgICAgJHZhbHVlOiAkdmFsdWUgKiAkYmFzZTtcbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGV4cG9uZW50IDwgMSB7XG4gICAgQGZvciAkaSBmcm9tIDAgdGhyb3VnaCAtJGV4cG9uZW50IHtcbiAgICAgICR2YWx1ZTogJHZhbHVlIC8gJGJhc2U7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkdmFsdWU7XG59XG5cbkBmdW5jdGlvbiBudGgtcm9vdCgkbnVtLCAkbjogMiwgJHByZWM6IDEyKSB7XG4gIC8vIEZyb206IGh0dHA6Ly9yb3NldHRhY29kZS5vcmcvd2lraS9OdGhfcm9vdCNKYXZhU2NyaXB0XG4gICR4OiAxO1xuXG4gIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggJHByZWMge1xuICAgICR4OiAxIC8gJG4gKiAoKCRuIC0gMSkgKiAkeCArICgkbnVtIC8gcG93KCR4LCAkbiAtIDEpKSk7XG4gIH1cblxuICBAcmV0dXJuICR4O1xufVxuXG4vLy8gQ2FsY3VsYXRlcyB0aGUgaGVpZ2h0IGFzIGEgcGVyY2VudGFnZSBvZiB0aGUgd2lkdGggZm9yIGEgZ2l2ZW4gcmF0aW8uXG4vLy8gQHBhcmFtIHtMaXN0fSAkcmF0aW8gLSBSYXRpbyB0byB1c2UgdG8gY2FsY3VsYXRlIHRoZSBoZWlnaHQsIGZvcm1hdHRlZCBhcyBgeCBieSB5YC5cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IEEgcGVyY2VudGFnZSB2YWx1ZSBmb3IgdGhlIGhlaWdodCByZWxhdGl2ZSB0byB0aGUgd2lkdGggb2YgYSByZXNwb25zaXZlIGNvbnRhaW5lci5cbkBmdW5jdGlvbiByYXRpby10by1wZXJjZW50YWdlKCRyYXRpbykge1xuICAkdzogbnRoKCRyYXRpbywgMSk7XG4gICRoOiBudGgoJHJhdGlvLCAzKTtcbiAgQHJldHVybiAkaCAvICR3ICogMTAwJTtcbn1cblxuLy8vIFBhcnNlIHRoZSBnaXZlbiBgJGZyYWN0aW9uYCB0byBudW1lcmF0b3JzIGFuZCBkZW51bWVyYXRvcnMuXG4vLy9cbi8vLyBAcGFyYW0geyp9ICRmcmFjdGlvbiAtIFZhbHVlIHJlcHJlc2VudGluZyBhIGZyYWN0aW9uIHRvIHBhcnNlLiBJdCBjYW4gYmUgZm9ybWF0dGVkIGFzIGA1MCVgLCBgMSBvZiAyYCwgYDEvMmAgb3IgYDUwYCAobm8gZGVub21pbmF0b3Igd291bGQgYmUgcmV0dXJuZWQpLlxuLy8vXG4vLy8gQHJldHVybiB7TGlzdH0gTGlzdCBvZiBwYXJzZWQgdmFsdWVzIHdpdGggbnVtZXJhdG9yIGF0IGZpcnN0IHBvc2l0aW9uIGFuZCBkZW51bWVyYXRvciBhcyBzZWNvbmQuIFRoZXNlIHZhbHVlcyBtYXkgYmUgbnVsbC5cbkBmdW5jdGlvbiB6Zi1wYXJzZS1mcmFjdGlvbigkZnJhY3Rpb24pIHtcblxuICBAaWYgdHlwZS1vZigkZnJhY3Rpb24pID09ICdudW1iZXInIHtcbiAgICAvLyBcIjUwJVwiXG4gICAgQGlmIHVuaXQoJGZyYWN0aW9uKSA9PSAnJScge1xuICAgICAgQHJldHVybiAoc3RyaXAtdW5pdCgkZnJhY3Rpb24pLCAxMDApO1xuICAgIH1cbiAgICBAZWxzZSBpZiAodW5pdCgkZnJhY3Rpb24pID09ICcnKSB7XG4gICAgICAvLyBcIjAuNVwiXG4gICAgICBAaWYgJGZyYWN0aW9uIDwgMSB7XG4gICAgICAgIEByZXR1cm4gKCRmcmFjdGlvbiAqIDEwMCwgMTAwKTtcbiAgICAgIH1cbiAgICAgIC8vIFwiNTBcIlxuICAgICAgQGVsc2Uge1xuICAgICAgICBAcmV0dXJuICgkZnJhY3Rpb24sIG51bGwpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBlbHNlIGlmIHR5cGUtb2YoJGZyYWN0aW9uKSA9PSAnbGlzdCcge1xuICAgIC8vIFwiNTAgb2YgMTAwXCIsIFwiNTAvMTAwXCIuLi5cbiAgICBAaWYgbGVuZ3RoKCRmcmFjdGlvbikgPT0gM1xuICAgICAgYW5kIHR5cGUtb2YobnRoKCRmcmFjdGlvbiwgMSkgPT0gJ251bWJlcicpXG4gICAgICBhbmQgdHlwZS1vZihudGgoJGZyYWN0aW9uLCAzKSA9PSAnbnVtYmVyJykge1xuICAgICAgQHJldHVybiAobnRoKCRmcmFjdGlvbiwgMSksIG50aCgkZnJhY3Rpb24sIDMpKTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIChudWxsLCBudWxsKTtcbn1cblxuLy8vIFJldHVybnMgd2hldGhlciB0aGUgZ2l2ZW4gYCR2YWx1ZWAgcmVwcmVzZW50cyBhIGZyYWN0aW9uLiBTdXBwb3J0cyBmb3JtYXRzIGxpa2UgYDUwJWAsIGAxIG9mIDJgLCBgMSBwZXIgMmAgb3IgYDEvMmAuXG4vLy9cbi8vLyBAcGFyYW0geyp9ICR2YWx1ZSAtIFZhbHVlIHRvIHRlc3QuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkYWxsb3ctbm8tZGVub21pbmF0b3IgW2ZhbHNlXSAtIElmIGB0cnVlYCwgc2ltcGxlIG51bWJlcnMgd2l0aG91dCBkZW5vbWluYXRvcnMgbGlrZSBgNTBgIGFyZSBzdXBwb3J0ZWQuXG4vLy9cbi8vLyBAcmV0dXJuIHtCb29sZWFufSBgdHJ1ZWAgaWYgYCR2YWx1ZWAgcmVwcmVzZW50cyBhIGZyYWN0aW9uLCBgZmFsc2VgIG90aGVyd2lzZS5cbkBmdW5jdGlvbiB6Zi1pcy1mcmFjdGlvbigkdmFsdWUsICRhbGxvdy1uby1kZW5vbWluYXRvcjogZmFsc2UpIHtcbiAgJHBhcnNlZDogemYtcGFyc2UtZnJhY3Rpb24oJHZhbHVlKTtcbiAgQHJldHVybiBub3QobnRoKCRwYXJzZWQsIDEpID09IG51bGxcbiAgICBvciAobnRoKCRwYXJzZWQsIDIpID09IG51bGwgYW5kICRhbGxvdy1uby1kZW5vbWluYXRvciA9PSBmYWxzZSkpO1xufVxuXG4vLy8gQ2FsY3VsYXRlIGEgcGVyY2VudGFnZSBmcm9tIGEgZ2l2ZW4gZnJhY3Rpb24uXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkZnJhY3Rpb24gLSBWYWx1ZSByZXByZXNlbnRpbmcgYSBmcmFjdGlvbiB0byB1c2UgdG8gY2FsY3VsYXRlIHRoZSBwZXJjZW50YWdlLCBmb3JtYXR0ZWQgYXMgYDUwYCAocmVsYXRpdmUgdG8gYCRkZW5vbWluYXRvcmApLCBgNTAlYCwgYDEgb2YgMmAgb3IgYDEvMmAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJGRlbm9taW5hdG9yIC0gRGVmYXVsdCB2YWx1ZSB0byB1c2UgYXMgZGVub21pbmF0b3Igd2hlbiBgJGZyYWN0aW9uYCByZXByZXNlbnRzIGFuIGFic29sdXRlIHZhbHVlLlxuQGZ1bmN0aW9uIGZyYWN0aW9uLXRvLXBlcmNlbnRhZ2UoXG4gICRmcmFjdGlvbixcbiAgJGRlbm9taW5hdG9yOiBudWxsXG4pIHtcbiAgJHBhcnNlZDogemYtcGFyc2UtZnJhY3Rpb24oJGZyYWN0aW9uKTtcbiAgJHBhcnNlZC1ub21pbmF0b3I6IG50aCgkcGFyc2VkLCAxKTtcbiAgJHBhcnNlZC1kZW5vbWluYXRvcjogbnRoKCRwYXJzZWQsIDIpO1xuXG4gIEBpZiAkcGFyc2VkLW5vbWluYXRvciA9PSBudWxsIHtcbiAgICBAZXJyb3IgJ1dyb25nIHN5bnRheCBmb3IgXCJmcmFjdGlvbi10by1wZXJjZW50YWdlKClcIi4gVXNlIGEgbnVtYmVyLCBkZWNpbWFsLCBwZXJjZW50YWdlLCBvciBcIm4gb2YgblwiIC8gXCJuL25cIi4nO1xuICB9XG4gIEBpZiAkcGFyc2VkLWRlbm9taW5hdG9yID09IG51bGwge1xuICAgIEBpZiB0eXBlLW9mKCRkZW5vbWluYXRvcikgPT0gJ251bWJlcicge1xuICAgICAgJHBhcnNlZC1kZW5vbWluYXRvcjogJGRlbm9taW5hdG9yO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAZXJyb3IgJ0Vycm9yIHdpdGggXCJmcmFjdGlvbi10by1wZXJjZW50YWdlKClcIi4gQSBkZWZhdWx0IFwiJGRlbm9taW5hdG9yXCIgaXMgcmVxdWlyZWQgdG8gc3VwcG9ydCBhYnNvbHV0ZSB2YWx1ZXMnO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gcGVyY2VudGFnZSgkcGFyc2VkLW5vbWluYXRvciAvICRwYXJzZWQtZGVub21pbmF0b3IpO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHh5LWdyaWRcbi8vLy9cblxuLy8vIFNpemVzIGNoaWxkIGVsZW1lbnRzIHNvIHRoYXQgYCRuYCBudW1iZXIgb2YgaXRlbXMgYXBwZWFyIG9uIGVhY2ggcm93LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRuIC0gTnVtYmVyIG9mIGVsZW1lbnRzIHRvIGRpc3BsYXkgcGVyIHJvdy5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNlbGVjdG9yIFsnLmNlbGwnXSAtIFNlbGVjdG9yKHMpIHRvIHVzZSBmb3IgY2hpbGQgZWxlbWVudHMuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZ3V0dGVyLW91dHB1dCBbbnVsbF0gLSBbREVQUkVDQVRFRF0gV2hldGhlciBvciBub3QgdG8gb3V0cHV0IGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtbWFyZ2luLWd1dHRlcnNdIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSBmb3IgZ3V0dGVycy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRndXR0ZXItdHlwZSBbbWFyZ2luXSAtIFR5cGUgb2YgZ3V0dGVyIHRvIG91dHB1dC4gQWNjZXB0cyBgbWFyZ2luYCwgYHBhZGRpbmdgIG9yIGBub25lYC5cbi8vLyBAcGFyYW0ge0xpc3R9ICRndXR0ZXItcG9zaXRpb24gW251bGxdIC0gVGhlIHBvc2l0aW9uIHRvIGFwcGx5IGd1dHRlcnMgdG8uIEFjY2VwdHMgYHRvcGAsIGBib3R0b21gLCBgbGVmdGAsIGByaWdodGAgaW4gYW55IGNvbWJpbmF0aW9uLiBCeSBkZWZhdWx0IGByaWdodCBsZWZ0YCBmb3IgaG9yaXpvbnRhbCBjZWxscyBhbmQgYHRvcCBib3R0b21gIGZvciB2ZXJ0aWNhbCBjZWxscy5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGJyZWFrcG9pbnQgW251bGxdIC0gVGhlIGJyZWFrcG9pbnQgdG8gdXNlIGZvciB0aGUgY2VsbCBnZW5lcmF0aW9uLiBJZiB1c2luZyB3aXRoIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0aGlzIHdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkgdW5sZXNzIG1hbnVhbGx5IGVudGVyZWQuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkdmVydGljYWwgW2ZhbHNlXSAtIFNldCB0byB0cnVlIHRvIG91dHB1dCB2ZXJ0aWNhbCAoaGVpZ2h0KSBzdHlsZXMgcmF0aGVyIHRoYW4gd2lkdGhzLlxuLy8vIEBwYXJhbSB7TGlzdH0gJG91dHB1dCBbKGJhc2Ugc2l6ZSBndXR0ZXJzKV0gLSBDZWxsIHBhcnRzIHRvIG91dHB1dC4gWW91IHdpbGwgbmVlZCB0byBnZW5lcmF0ZSBvdGhlcnMgcGFydHMgb2YgdGhlIGNlbGwgc2VwZXJhdGVseSwgaXQgbWF5IG5vdCB3b3JrIGNvcnJlY3RseSBvdGhlcndpc2UuXG5AbWl4aW4geHktZ3JpZC1sYXlvdXQoXG4gICRuLFxuICAkc2VsZWN0b3I6ICcuY2VsbCcsXG4gICRndXR0ZXItb3V0cHV0OiBudWxsLFxuICAkZ3V0dGVyczogJGdyaWQtbWFyZ2luLWd1dHRlcnMsXG4gICRndXR0ZXItdHlwZTogbWFyZ2luLFxuICAkZ3V0dGVyLXBvc2l0aW9uOiBudWxsLFxuICAkYnJlYWtwb2ludDogbnVsbCxcbiAgJHZlcnRpY2FsOiBmYWxzZSxcbiAgJG91dHB1dDogKGJhc2Ugc2l6ZSBndXR0ZXJzKVxuKSB7XG4gICRzaXplOiBwZXJjZW50YWdlKDEvJG4pO1xuXG4gICYgPiAjeyRzZWxlY3Rvcn0ge1xuICAgIEBpbmNsdWRlIHh5LWNlbGwoJHNpemUsICRndXR0ZXItb3V0cHV0LCAkZ3V0dGVycywgJGd1dHRlci10eXBlLCAkZ3V0dGVyLXBvc2l0aW9uLCAkYnJlYWtwb2ludCwgJHZlcnRpY2FsLCAkb3V0cHV0KTtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHh5LWdyaWRcbi8vLy9cblxuLy8vIENvbGxhcHNlcyB0aGUgZ3JpZCBhIGNlbGxzIHdpdGhpbiBpdC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc2VsZWN0b3IgWy5jZWxsXSAtIFRoZSBjaGlsZCBlbGVtZW50IHRvIHJlbW92ZSB0aGUgZ3V0dGVyIGZyb20uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZ3V0dGVyLXR5cGUgW21hcmdpbl0gLSBUaGUgdHlwZSBvZiBndXR0ZXIgdG8gcmVtb3ZlLlxuLy8vIEBwYXJhbSB7TGlzdH0gJGd1dHRlci1wb3NpdGlvbiBbcmlnaHQgbGVmdF0gLSBUaGUgcG9zaXRpb25zIHRvIHJlbW92ZSBndXR0ZXJzIGZyb20uIEFjY2VwdHMgYHRvcGAsIGBib3R0b21gLCBgbGVmdGAsIGByaWdodGAgaW4gYW55IGNvbWJpbmF0aW9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJG1pbi1icmVha3BvaW50IFskLXpmLXplcm8tYnJlYWtwb2ludF0gLSBNaW5pbXVtIGJyZWFrcG9pbnQgaW4gYCRicmVha3BvaW50LWNsYXNzZXNgIGZvciB3aGljaCB0byBjb2xsYXBzZSB0aGUgZ3V0dGVyLlxuQG1peGluIHh5LWdyaWQtY29sbGFwc2UoXG4gICRzZWxlY3RvcjogJy5jZWxsJyxcbiAgJGd1dHRlci10eXBlOiBtYXJnaW4sXG4gICRndXR0ZXItcG9zaXRpb246IHJpZ2h0IGxlZnQsXG4gICRtaW4tYnJlYWtwb2ludDogJC16Zi16ZXJvLWJyZWFrcG9pbnRcbikge1xuICAvLyBGaXJzdCwgbGV0cyBuZWdhdGUgYW55IG1hcmdpbnMgb24gdGhlIHRvcCBsZXZlbFxuICBAaWYgKCRndXR0ZXItdHlwZSA9PSAnbWFyZ2luJykge1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWluLWJyZWFrcG9pbnQpIHtcbiAgICAgIEBlYWNoICR2YWx1ZSBpbiAkZ3V0dGVyLXBvc2l0aW9uIHtcbiAgICAgICAgbWFyZ2luLSN7JHZhbHVlfTogMDtcbiAgICAgIH1cblxuICAgICAgPiAjeyRzZWxlY3Rvcn0ge1xuICAgICAgICBAZWFjaCAkdmFsdWUgaW4gJGd1dHRlci1wb3NpdGlvbiB7XG4gICAgICAgICAgbWFyZ2luLSN7JHZhbHVlfTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICRleGNsdWRlZC1icHM6IC16Zi1icmVha3BvaW50cy1sZXNzLXRoYW4oJG1pbi1icmVha3BvaW50KTtcblxuICAgIC8vIE91dHB1dCBuZXcgd2lkdGhzIHRvIG5vdCBpbmNsdWRlIGd1dHRlcnNcbiAgICBAZWFjaCAkYnAgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaWYoc2wtY29udGFpbigkZXhjbHVkZWQtYnBzLCAkYnApKSB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1pbi1icmVha3BvaW50KSB7XG4gICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2x1bW5zIHtcbiAgICAgICAgICAgIC8vIFNpemluZyAocGVyY2VudGFnZSlcbiAgICAgICAgICAgID4gLiN7JGJwfS0jeyRpfSB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIHh5LWNlbGwtc2l6ZSgkaSwgJGd1dHRlci10eXBlOiBub25lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRicCkge1xuICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sdW1ucyB7XG4gICAgICAgICAgICAvLyBTaXppbmcgKHBlcmNlbnRhZ2UpXG4gICAgICAgICAgICA+IC4jeyRicH0tI3skaX0ge1xuICAgICAgICAgICAgICBAaW5jbHVkZSB4eS1jZWxsLXNpemUoJGksICRndXR0ZXItdHlwZTogbm9uZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1pbi1icmVha3BvaW50KSB7XG4gICAgICBAZWFjaCAkdmFsdWUgaW4gJGd1dHRlci1wb3NpdGlvbiB7XG4gICAgICAgIG1hcmdpbi0jeyR2YWx1ZX06IDA7XG4gICAgICB9XG5cbiAgICAgID4gI3skc2VsZWN0b3J9IHtcbiAgICAgICAgQGVhY2ggJHZhbHVlIGluICRndXR0ZXItcG9zaXRpb24ge1xuICAgICAgICAgIHBhZGRpbmctI3skdmFsdWV9OiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgeHktZ3JpZFxuLy8vL1xuXG4vLy8gUmV0dXJucyB0aGUgYXBwcm9wcmlhdGUgQ1NTIHZhbHVlIHRvIG9mZnNldCBhIGNlbGwuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkbiAtIFNpemUgdG8gb2Zmc2V0IGJ5LiBZb3UgY2FuIHBhc3MgaW4gYW55IHZhbHVlIGFjY2VwdGVkIGJ5IHRoZSBgeHktY2VsbCgpYCBtaXhpbiwgc3VjaCBhcyBgNmAsIGA1MCVgLCBvciBgMSBvZiAyYC5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1tYXJnaW4tZ3V0dGVyc10gTWFwIG9mIGd1dHRlcnMgb3Igc2luZ2xlIHZhbHVlIHRvIHVzZSBmb3IgcmVzcG9uc2l2ZSBndXR0ZXJzLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGd1dHRlci10eXBlIFttYXJnaW5dIFRoZSB0eXBlIG9mIGd1dHRlciB0byB1c2UuIENhbiBiZSBgbWFyZ2luYCBvciBgcGFkZGluZ2Bcbi8vLyBAcGFyYW0ge1N0cmluZ30gJGJyZWFrcG9pbnQgW251bGxdIC0gVGhlIG5hbWUgb2YgdGhlIGJyZWFrcG9pbnQgc2l6ZSBpbiB5b3VyIGd1dHRlcnMgbWFwIHRvIGdldCB0aGUgc2l6ZSBmcm9tLiBJZiB1c2luZyB3aXRoIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0aGlzIHdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkgdW5sZXNzIG1hbnVhbGx5IGVudGVyZWQuXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfFN0cmluZ30gVGhlIGNlbGwgb2Zmc2V0IHByb3BlcnR5IHZhbHVlLlxuQGZ1bmN0aW9uIHh5LWNlbGwtb2Zmc2V0KFxuICAkbixcbiAgJGd1dHRlcnM6ICRncmlkLW1hcmdpbi1ndXR0ZXJzLFxuICAkZ3V0dGVyLXR5cGU6IG1hcmdpbixcbiAgJGJyZWFrcG9pbnQ6IG51bGxcbikge1xuICAkYnJlYWtwb2ludDogLXpmLWN1cnJlbnQtYnJlYWtwb2ludCgkYnJlYWtwb2ludCwgJGRlZmF1bHQ6ICQtemYtemVyby1icmVha3BvaW50KTtcbiAgJHNpemU6IHh5LWNlbGwtc2l6ZSgkbik7XG5cbiAgJG9mZnNldDogJHNpemU7XG4gIEBpZiAoJGd1dHRlci10eXBlID09ICdtYXJnaW4nKSB7XG4gICAgJGd1dHRlcjogcmVtLWNhbGMoeHktY2VsbC1ndXR0ZXJzKCRndXR0ZXJzLCAkYnJlYWtwb2ludCkgLyAyKTtcbiAgICAkb2Zmc2V0OiBpZigkZ3V0dGVyID09IDAsICRzaXplLCBjYWxjKCN7JHNpemV9ICsgI3skZ3V0dGVyfSkpO1xuICB9XG4gIEByZXR1cm4gJG9mZnNldDtcbn1cblxuLy8vIE9mZnNldHMgYSBjb2x1bW4gdG8gdGhlIHJpZ2h0L2JvdHRvbSBieSBgJG5gIGNvbHVtbnMuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkbiAtIFNpemUgdG8gb2Zmc2V0IGJ5LiBZb3UgY2FuIHBhc3MgaW4gYW55IHZhbHVlIGFjY2VwdGVkIGJ5IHRoZSBgeHktY2VsbCgpYCBtaXhpbiwgc3VjaCBhcyBgNmAsIGA1MCVgLCBvciBgMSBvZiAyYC5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1tYXJnaW4tZ3V0dGVyc10gTWFwIG9mIGd1dHRlcnMgb3Igc2luZ2xlIHZhbHVlIHRvIHVzZSBmb3IgcmVzcG9uc2l2ZSBndXR0ZXJzLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGd1dHRlci10eXBlIFttYXJnaW5dIFRoZSB0eXBlIG9mIGd1dHRlciB0byB1c2UuIENhbiBiZSBgbWFyZ2luYCBvciBgcGFkZGluZ2Bcbi8vLyBAcGFyYW0ge051bWJlcnxBcnJheXxLZXl3b3JkfSAkYnJlYWtwb2ludCBbbnVsbF0gLSBCcmVha3BvaW50IHRvIHVzZSBmb3IgYCRndXR0ZXJzYC4gSXQgY2FuIGJlIGEgYnJlYWtwb2ludCBuYW1lLCBsaXN0IG9mIGJyZWFrcG9pbnRzIG9yIGBhdXRvYCBmb3IgYWxsIGJyZWFrcG9pbnRzLiBJZiBhIGxpc3QgaXMgZ2l2ZW4sIG1lZGlhLXF1ZXJpZXMgd2lsbCBiZSBnZW5lcmF0ZWQuIElmIHVzaW5nIHdpdGggdGhlIGBicmVha3BvaW50KClgIG1peGluIHRoaXMgd2lsbCBiZSBzZXQgYXV0b21hdGljYWxseSB1bmxlc3MgbWFudWFsbHkgZW50ZXJlZC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICR2ZXJ0aWNhbCBbZmFsc2VdIFNldHMgdGhlIGRpcmVjdGlvbiBvZiB0aGUgb2Zmc2V0LiBJZiBzZXQgdG8gdHJ1ZSB3aWxsIGFwcGx5IG1hcmdpbi10b3AgaW5zdGVhZC5cbkBtaXhpbiB4eS1jZWxsLW9mZnNldChcbiAkbixcbiAkZ3V0dGVyczogJGdyaWQtbWFyZ2luLWd1dHRlcnMsXG4gJGd1dHRlci10eXBlOiBtYXJnaW4sXG4gJGJyZWFrcG9pbnQ6IG51bGwsXG4gJHZlcnRpY2FsOiBmYWxzZVxuKSB7XG4gICRicmVha3BvaW50OiAtemYtY3VycmVudC1icmVha3BvaW50KCRicmVha3BvaW50LCAkZGVmYXVsdDogJC16Zi16ZXJvLWJyZWFrcG9pbnQpO1xuICAkZGlyZWN0aW9uOiBpZigkdmVydGljYWwsICd0b3AnLCAkZ2xvYmFsLWxlZnQpO1xuXG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQtaW4oJGJyZWFrcG9pbnQsICRtZWRpYS1xdWVyaWVzOiAnZm9yLWxpc3RzJykge1xuICAgICRvZmZzZXQ6IHh5LWNlbGwtb2Zmc2V0KCRuLCAkZ3V0dGVycywgJGd1dHRlci10eXBlKTtcbiAgICBtYXJnaW4tI3skZGlyZWN0aW9ufTogI3skb2Zmc2V0fTtcbiAgfVxufVxuIiwiLy8vIE1vZGlmaWVzIGEgZ3JpZCB0byBnaXZlIGl0IFwiZnJhbWVcIiBiZWhhdmlvciAobm8gb3ZlcmZsb3csIG5vIHdyYXAsIHN0cmV0Y2ggYmVoYXZpb3IpXG4vLy9cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICR2ZXJ0aWNhbCBbZmFsc2VdIC0gSXMgZ3JpZCB2ZXJ0aWNhbCBvciBob3Jpem9udGFsLiBTaG91bGQgbWF0Y2ggZ3JpZC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRuZXN0ZWQgW2ZhbHNlXSAtIElzIGdyaWQgbmVzdGVkIG9yIG5vdC4gSWYgbmVzdGVkIGlzIHRydWUgdGhpcyBzZXRzIHRoZSBmcmFtZSB0byAxMDAlIGhlaWdodCwgb3RoZXJ3aXNlIHdpbGwgYmUgMTAwdmguXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbbnVsbF0gLSBNYXAgb3Igc2luZ2xlIHZhbHVlIGZvciBndXR0ZXJzLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkYnJlYWtwb2ludCBbbnVsbF0gLSBUaGUgbmFtZSBvZiB0aGUgYnJlYWtwb2ludCBzaXplIGluIHlvdXIgZ3V0dGVycyBtYXAgdG8gZ2V0IHRoZSBzaXplIGZyb20uXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkaW5jbHVkZS1iYXNlIFt0cnVlXSAtIEluY2x1ZGUgdGhlIGJhc2Ugc3R5bGVzIHRoYXQgZG9uJ3QgdmFyeSBwZXIgYnJlYWtwb2ludC5cbkBtaXhpbiB4eS1ncmlkLWZyYW1lKFxuICAkdmVydGljYWw6IGZhbHNlLFxuICAkbmVzdGVkOiBmYWxzZSxcbiAgJGd1dHRlcnM6IG51bGwsXG4gICRicmVha3BvaW50OiBudWxsLFxuICAkaW5jbHVkZS1iYXNlOiB0cnVlXG4pIHtcblxuICBAaWYgJGluY2x1ZGUtYmFzZSB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIH1cblxuICBAaWYgJGJyZWFrcG9pbnQgPT0gbnVsbCBhbmQgdHlwZS1vZigkZ3V0dGVycykgPT0gJ21hcCcge1xuICAgIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQoKSB7XG4gICAgICBAaW5jbHVkZSB4eS1ncmlkLWZyYW1lKCR2ZXJ0aWNhbCwgJG5lc3RlZCwgJGd1dHRlcnMsICQtemYtc2l6ZSwgZmFsc2UpO1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgLy8gR2V0IG91ciBndXR0ZXJzIGlmIGFwcGxpY2FibGVcbiAgICAkZ3V0dGVyOiAtemYtZ2V0LWJwLXZhbCgkZ3V0dGVycywgJGJyZWFrcG9pbnQpO1xuXG4gICAgLy8gSWYgd2UgaGF2ZSBhIGd1dHRlciwgYWRkIGl0IHRvIHRoZSB3aWR0aC9oZWlnaHRcbiAgICBAaWYgJGd1dHRlciB7XG4gICAgICBAaWYgJHZlcnRpY2FsID09IHRydWUge1xuICAgICAgICAkdW5pdDogaWYoJG5lc3RlZCA9PSB0cnVlLCAxMDAlLCAxMDB2aCk7XG4gICAgICAgICRndXR0ZXI6IHJlbS1jYWxjKCRndXR0ZXIpO1xuICAgICAgICBoZWlnaHQ6IGNhbGMoI3skdW5pdH0gKyAjeyRndXR0ZXJ9KTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAkdW5pdDogaWYoJG5lc3RlZCA9PSB0cnVlLCAxMDAlLCAxMDB2dyk7XG4gICAgICAgICRndXR0ZXI6IHJlbS1jYWxjKCRndXR0ZXIpO1xuICAgICAgICB3aWR0aDogY2FsYygjeyR1bml0fSArICN7JGd1dHRlcn0pO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAaWYgJHZlcnRpY2FsID09IHRydWUge1xuICAgICAgICBoZWlnaHQ6IGlmKCRuZXN0ZWQgPT0gdHJ1ZSwgMTAwJSwgMTAwdmgpO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIHdpZHRoOiBpZigkbmVzdGVkID09IHRydWUsIDEwMCUsIDEwMHZ3KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIE1vZGlmaWVzIGEgY2VsbCB0byBnaXZlIGl0IFwiYmxvY2tcIiBiZWhhdmlvciAob3ZlcmZsb3cgYXV0bywgaW5lcnRpYWwgc2Nyb2xsaW5nKVxuLy8vXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkdmVydGljYWwgW2ZhbHNlXSAtIElzIGdyaWQgdmVydGljYWwgb3IgaG9yaXpvbnRhbC4gU2hvdWxkIG1hdGNoIGdyaWQuXG5AbWl4aW4geHktY2VsbC1ibG9jayhcbiAgJHZlcnRpY2FsOiBmYWxzZVxuKSB7XG4gICRwcm9wZXJ0eTogaWYoJHZlcnRpY2FsID09IHRydWUsICdvdmVyZmxvdy15JywgJ292ZXJmbG93LXgnKTtcblxuICBAaWYgJHZlcnRpY2FsID09IHRydWUge1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiAxMDAlO1xuICB9IEBlbHNlIHtcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxuXG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgLW1zLW92ZXJmbG93LXN0eWxlOiAtbXMtYXV0b2hpZGluZy1zY3JvbGxiYXI7XG59XG5cbi8vLyBDb250YWluZXIgZm9yIGluc2lkZSBhIGdyaWQgZnJhbWUgY29udGFpbmluZyBtdWx0aXBsZSBibG9ja3MuIFR5cGljYWxseSB1c2VkXG4vLy8gYXMgYSBtb2RpZmllciBmb3IgYSBgLmNlbGxgIHRvIGFsbG93IHRoZSBjZWxsIHRvIHBhc3MgYWxvbmcgZmxleCBzaXppbmdcbi8vLyBjb25zdHJhaW50cyAvIGZyb20gcGFyZW50cyB0byBjaGlsZHJlbi5cbkBtaXhpbiB4eS1jZWxsLWJsb2NrLWNvbnRhaW5lcigpIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgbWF4LWhlaWdodDogMTAwJTtcblxuICA+IC5ncmlkLXgge1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBGbGV4Ym94IFV0aWxpdGllc1xuLy8vL1xuLy9cbi8vLyBEZWZhdWx0IHZhbHVlIGZvciB0aGUgY291bnQgb2Ygc291cmNlIG9yZGVyaW5nYFxuLy8vIEB0eXBlIE51bWJlclxuJGZsZXgtc291cmNlLW9yZGVyaW5nLWNvdW50OiA2ICFkZWZhdWx0O1xuXG4vLy8gUXVpY2tseSBkaXNhYmxlL2VuYWJsZSBSZXNwb25zaXZlIGJyZWFrcG9pbnRzIGZvciBWYW5pbGxhIEZsZXggSGVscGVycy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kZmxleGJveC1yZXNwb25zaXZlLWJyZWFrcG9pbnRzOiB0cnVlICFkZWZhdWx0O1xuXG5AbWl4aW4gZmxleC1oZWxwZXJzIHtcbiAgLmZsZXgtY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBmbGV4O1xuICB9XG5cbiAgLmZsZXgtY2hpbGQtYXV0byB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gIH1cblxuICAuZmxleC1jaGlsZC1ncm93IHtcbiAgICBmbGV4OiAxIDAgYXV0bztcbiAgfVxuXG4gIC5mbGV4LWNoaWxkLXNocmluayB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gIH1cblxuICBAZWFjaCAkZGlyLCAkcHJvcCBpbiAkLXpmLWZsZXgtZGlyZWN0aW9uIHtcbiAgICAuZmxleC1kaXItI3skZGlyfSB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbigkcHJvcCk7XG4gICAgfVxuICB9XG5cbiAgQGlmICgkZmxleGJveC1yZXNwb25zaXZlLWJyZWFrcG9pbnRzKSB7XG4gICAgLy8gTG9vcCB0aHJvdWdoIFJlc3BvbnNpdmUgQnJlYWtwb2ludHNcbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAuI3skc2l6ZX0tZmxleC1jb250YWluZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgZmxleDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAuI3skc2l6ZX0tZmxleC1jaGlsZC1hdXRvIHtcbiAgICAgICAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC4jeyRzaXplfS1mbGV4LWNoaWxkLWdyb3cge1xuICAgICAgICAgICAgZmxleDogMSAwIGF1dG87XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLiN7JHNpemV9LWZsZXgtY2hpbGQtc2hyaW5rIHtcbiAgICAgICAgICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIEBlYWNoICRkaXIsICRwcm9wIGluICQtemYtZmxleC1kaXJlY3Rpb24ge1xuICAgICAgICAgICAgLiN7JHNpemV9LWZsZXgtZGlyLSN7JGRpcn0ge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbigkcHJvcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZsZXgtY2xhc3NlcyB7XG4gIC8vIEhvcml6b250YWwgYWxpZ25tZW50IHVzaW5nIGp1c3RpZnktY29udGVudFxuICBAZWFjaCAkaGRpciwgJHByb3AgaW4gJC16Zi1mbGV4LWp1c3RpZnkge1xuICAgIC5hbGlnbi0jeyRoZGlyfSB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWFsaWduKCR4OiAkaGRpcik7XG4gICAgfVxuICB9XG4gIFxuICAvLyBIb3Jpem9udGFsIGFsaWdubWVudCBTcGVjaWZpY2FsbHkgZm9yIFZlcnRpY2FsIE1lbnVcbiAgQGVhY2ggJGhkaXIsICRwcm9wIGluIG1hcC1yZW1vdmUoJC16Zi1mbGV4LWp1c3RpZnksICdqdXN0aWZ5JywgJ3NwYWNlZCcpIHtcbiAgICAuYWxpZ24tI3skaGRpcn0ge1xuICAgICAgJi52ZXJ0aWNhbCB7XG4gICAgICAgICYubWVudSA+IGxpID4gYSB7XG4gICAgICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbigkeDogJGhkaXIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gVmVydGljYWwgYWxpZ25tZW50IHVzaW5nIGFsaWduLWl0ZW1zIGFuZCBhbGlnbi1zZWxmXG4gIEBlYWNoICR2ZGlyLCAkcHJvcCBpbiAkLXpmLWZsZXgtYWxpZ24ge1xuICAgIC5hbGlnbi0jeyR2ZGlyfSB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWFsaWduKCR5OiAkdmRpcik7XG4gICAgfVxuXG4gICAgLmFsaWduLXNlbGYtI3skdmRpcn0ge1xuICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1zZWxmKCR5OiAkdmRpcik7XG4gICAgfVxuICB9XG5cbiAgLy8gQ2VudHJhbCBhbGlnbm1lbnQgb2YgY29udGVudFxuICAuYWxpZ24tY2VudGVyLW1pZGRsZSB7XG4gICAgQGluY2x1ZGUgZmxleC1hbGlnbigkeDogY2VudGVyLCAkeTogbWlkZGxlKTtcbiAgICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XG4gIH1cblxuICAvLyBTb3VyY2Ugb3JkZXJpbmdcbiAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCB7XG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZmxleC1zb3VyY2Utb3JkZXJpbmctY291bnQge1xuICAgICAgLiN7JC16Zi1zaXplfS1vcmRlci0jeyRpfSB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtb3JkZXIoJGkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFZhbmlsbGEgRmxleGJveCBIZWxwZXJzXG4gIEBpbmNsdWRlIGZsZXgtaGVscGVycztcbn1cbiIsIkBmdW5jdGlvbiAtemYtZmxleC1qdXN0aWZ5KCR0ZXh0LWRpcmVjdGlvbil7XG4gICQtemYtZmxleC1qdXN0aWZ5OiAoXG4gICAgJ2xlZnQnOiBpZigkdGV4dC1kaXJlY3Rpb24gPT0gcnRsLCBmbGV4LWVuZCwgZmxleC1zdGFydCksXG4gICAgJ3JpZ2h0JzogaWYoJHRleHQtZGlyZWN0aW9uID09IHJ0bCwgZmxleC1zdGFydCwgZmxleC1lbmQpLFxuICAgICdjZW50ZXInOiBjZW50ZXIsXG4gICAgJ2p1c3RpZnknOiBzcGFjZS1iZXR3ZWVuLFxuICAgICdzcGFjZWQnOiBzcGFjZS1hcm91bmQsXG4gICk7XG5cbiAgQHJldHVybiAkLXpmLWZsZXgtanVzdGlmeTtcbn1cblxuXG4kLXpmLWZsZXgtYWxpZ246IChcbiAgJ3RvcCc6IGZsZXgtc3RhcnQsXG4gICdib3R0b20nOiBmbGV4LWVuZCxcbiAgJ21pZGRsZSc6IGNlbnRlcixcbiAgJ3N0cmV0Y2gnOiBzdHJldGNoLFxuKTtcblxuJC16Zi1mbGV4LWRpcmVjdGlvbjogKFxuICAncm93Jzogcm93LFxuICAncm93LXJldmVyc2UnOiByb3ctcmV2ZXJzZSxcbiAgJ2NvbHVtbic6IGNvbHVtbixcbiAgJ2NvbHVtbi1yZXZlcnNlJzogY29sdW1uLXJldmVyc2UsXG4pO1xuXG4vLy8gRW5hYmxlcyBmbGV4Ym94IGJ5IGFkZGluZyBgZGlzcGxheTogZmxleGAgdG8gdGhlIGVsZW1lbnQuXG5AbWl4aW4gZmxleCB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbi8vLyBIb3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBhbGlnbnMgdGhlIGl0ZW1zIHdpdGhpbiBhIGZsZXggY29udGFpbmVyLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkeCBbbnVsbF0gLSBIb3Jpem9udGFsIGFsaWdubWVudCB0byB1c2UuIENhbiBiZSBgbGVmdGAsIGByaWdodGAsIGBjZW50ZXJgLCBganVzdGlmeWAsIG9yIGBzcGFjZWRgLiBPciwgc2V0IGl0IHRvIGBudWxsYCAodGhlIGRlZmF1bHQpIHRvIG5vdCBzZXQgaG9yaXpvbnRhbCBhbGlnbm1lbnQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkeSBbbnVsbF0gLSBWZXJ0aWNhbCBhbGlnbm1lbnQgdG8gdXNlLiBDYW4gYmUgYHRvcGAsIGBib3R0b21gLCBgbWlkZGxlYCwgb3IgYHN0cmV0Y2hgLiBPciwgc2V0IGl0IHRvIGBudWxsYCAodGhlIGRlZmF1bHQpIHRvIG5vdCBzZXQgdmVydGljYWwgYWxpZ25tZW50LlxuQG1peGluIGZsZXgtYWxpZ24oJHg6IG51bGwsICR5OiBudWxsKSB7XG4gIEBpZiAkeCB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCQtemYtZmxleC1qdXN0aWZ5LCAkeCkge1xuICAgICAgJHg6IG1hcC1nZXQoJC16Zi1mbGV4LWp1c3RpZnksICR4KTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQHdhcm4gJ2ZsZXgtZ3JpZC1yb3ctYWxpZ24oKTogI3skeH0gaXMgbm90IGEgdmFsaWQgdmFsdWUgZm9yIGhvcml6b250YWwgYWxpZ25tZW50LiBVc2UgbGVmdCwgcmlnaHQsIGNlbnRlciwganVzdGlmeSwgb3Igc3BhY2VkLic7XG4gICAgfVxuICB9XG5cbiAgQGlmICR5IHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJC16Zi1mbGV4LWFsaWduLCAkeSkge1xuICAgICAgJHk6IG1hcC1nZXQoJC16Zi1mbGV4LWFsaWduLCAkeSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEB3YXJuICdmbGV4LWdyaWQtcm93LWFsaWduKCk6ICN7JHl9IGlzIG5vdCBhIHZhbGlkIHZhbHVlIGZvciB2ZXJ0aWNhbCBhbGlnbm1lbnQuIFVzZSB0b3AsIGJvdHRvbSwgbWlkZGxlLCBvciBzdHJldGNoLic7XG4gICAgfVxuICB9XG5cbiAganVzdGlmeS1jb250ZW50OiAkeDtcbiAgYWxpZ24taXRlbXM6ICR5O1xufVxuXG4vLy8gVmVydGljYWxseSBhbGlnbiBhIHNpbmdsZSBjb2x1bW4gd2l0aGluIGEgZmxleCByb3cuIEFwcGx5IHRoaXMgbWl4aW4gdG8gYSBmbGV4IGNvbHVtbi5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHkgW251bGxdIC0gVmVydGljYWwgYWxpZ25tZW50IHRvIHVzZS4gQ2FuIGJlIGB0b3BgLCBgYm90dG9tYCwgYG1pZGRsZWAsIG9yIGBzdHJldGNoYC4gT3IsIHNldCBpdCB0byBgbnVsbGAgKHRoZSBkZWZhdWx0KSB0byBub3Qgc2V0IHZlcnRpY2FsIGFsaWdubWVudC5cbkBtaXhpbiBmbGV4LWFsaWduLXNlbGYoJHk6IG51bGwpIHtcbiAgQGlmICR5IHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJC16Zi1mbGV4LWFsaWduLCAkeSkge1xuICAgICAgJHk6IG1hcC1nZXQoJC16Zi1mbGV4LWFsaWduLCAkeSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEB3YXJuICdmbGV4LWdyaWQtY29sdW1uLWFsaWduKCk6ICN7JHl9IGlzIG5vdCBhIHZhbGlkIHZhbHVlIGZvciBhbGlnbm1lbnQuIFVzZSB0b3AsIGJvdHRvbSwgbWlkZGxlLCBvciBzdHJldGNoLic7XG4gICAgfVxuICB9XG5cbiAgYWxpZ24tc2VsZjogJHk7XG59XG5cbi8vLyBDaGFuZ2VzIHRoZSBzb3VyY2Ugb3JkZXIgb2YgYSBmbGV4IGNoaWxkLiBDaGlsZHJlbiB3aXRoIGxvd2VyIG51bWJlcnMgYXBwZWFyIGZpcnN0IGluIHRoZSBsYXlvdXQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRvcmRlciBbMF0gLSBPcmRlciBudW1iZXIgdG8gYXBwbHkuXG5AbWl4aW4gZmxleC1vcmRlcigkb3JkZXI6IDApIHtcbiAgb3JkZXI6ICRvcmRlcjtcbn1cblxuLy8vIENoYW5nZSBmbGV4LWRpcmVjdGlvblxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpcmVjdGlvbiBbcm93XSAtIEZsZXggZGlyZWN0aW9uIHRvIHVzZS4gQ2FuIGJlXG4vLy8gICAtIHJvdyAoZGVmYXVsdCk6IHNhbWUgYXMgdGV4dCBkaXJlY3Rpb25cbi8vLyAgIC0gcm93LXJldmVyc2U6IG9wcG9zaXRlIHRvIHRleHQgZGlyZWN0aW9uXG4vLy8gICAtIGNvbHVtbjogc2FtZSBhcyByb3cgYnV0IHRvcCB0byBib3R0b21cbi8vLyAgIC0gY29sdW1uLXJldmVyc2U6IHNhbWUgYXMgcm93LXJldmVyc2UgdG9wIHRvIGJvdHRvbVxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCRkaXJlY3Rpb246IHJvdykge1xuICBmbGV4LWRpcmVjdGlvbjogJGRpcmVjdGlvbjtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vIEhpZGUgYW4gZWxlbWVudCBieSBkZWZhdWx0LCBvbmx5IGRpc3BsYXlpbmcgaXQgYWJvdmUgYSBjZXJ0YWluIHNjcmVlbiBzaXplLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBCcmVha3BvaW50IHRvIHVzZS4gKipNdXN0IGJlIGEgYnJlYWtwb2ludCBkZWZpbmVkIGluIGAkYnJlYWtwb2ludHNgLioqXG5AbWl4aW4gc2hvdy1mb3IoJHNpemUpIHtcbiAgJHNpemU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkc2l6ZSk7XG4gIC8vIE1heCB2YWx1ZSBpcyAwLjJweCB1bmRlciB0aGUgbmV4dCBicmVha3BvaW50ICgwLjAyIC8gMTYgPSAwLjAwMTI1KS5cbiAgLy8gVXNlIGEgcHJlY2lzaW9uIHVuZGVyIDFweCB0byBzdXBwb3J0IGJyb3dzZXIgem9vbSwgYnV0IG5vdCB0byBsb3cgdG8gYXZvaWQgcm91bmRpbmcuXG4gIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vZm91bmRhdGlvbi9mb3VuZGF0aW9uLXNpdGVzL2lzc3Vlcy8xMTMxM1xuICAkc2l6ZTogLXpmLWJwLXRvLWVtKCRzaXplKSAtIC4wMDEyNTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplIGRvd24pIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLy8vIEhpZGUgYW4gZWxlbWVudCBieSBkZWZhdWx0LCBvbmx5IGRpc3BsYXlpbmcgaXQgd2l0aGluIGEgY2VydGFpbiBicmVha3BvaW50LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBCcmVha3BvaW50IHRvIHVzZS4gKipNdXN0IGJlIGEgYnJlYWtwb2ludCBkZWZpbmVkIGluIGAkYnJlYWtwb2ludHNgLioqXG5AbWl4aW4gc2hvdy1mb3Itb25seSgkc2l6ZSkge1xuICAkbG93ZXItYm91bmQtc2l6ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICRzaXplKTtcbiAgJHVwcGVyLWJvdW5kLXNpemU6IC16Zi1tYXAtbmV4dCgkYnJlYWtwb2ludHMsICRzaXplKTtcblxuICAvLyBtb3JlIG9mdGVuIHRoYW4gbm90IHRoaXMgd2lsbCBiZSBjb3JyZWN0LCBqdXN0IG9uZSB0aW1lIHJvdW5kIHRoZSBsb29wIGl0IHdvbid0IHNvIHNldCBpbiBzY29wZSBoZXJlXG4gICRsb3dlci1ib3VuZDogLXpmLWJwLXRvLWVtKCRsb3dlci1ib3VuZC1zaXplKSAtIC4wMDEyNTtcbiAgLy8gdGVzdCBhY3R1YWwgbG93ZXItYm91bmQtc2l6ZSwgaWYgMCBzZXQgaXQgdG8gMGVtXG4gIEBpZiBzdHJpcC11bml0KCRsb3dlci1ib3VuZC1zaXplKSA9PSAwIHtcbiAgICAkbG93ZXItYm91bmQ6IC16Zi1icC10by1lbSgkbG93ZXItYm91bmQtc2l6ZSk7XG4gIH1cblxuICBAaWYgJHVwcGVyLWJvdW5kLXNpemUgPT0gbnVsbCB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGxvd2VyLWJvdW5kKSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAkdXBwZXItYm91bmQ6IC16Zi1icC10by1lbSgkdXBwZXItYm91bmQtc2l6ZSk7XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbG93ZXItYm91bmQpLCBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICR1cHBlci1ib3VuZCkge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vLyBTaG93IGFuIGVsZW1lbnQgYnkgZGVmYXVsdCwgYW5kIGhpZGUgaXQgYWJvdmUgYSBjZXJ0YWluIHNjcmVlbiBzaXplLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBCcmVha3BvaW50IHRvIHVzZS4gKipNdXN0IGJlIGEgYnJlYWtwb2ludCBkZWZpbmVkIGluIGAkYnJlYWtwb2ludHNgLioqXG5AbWl4aW4gaGlkZS1mb3IoJHNpemUpIHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vLy8gU2hvdyBhbiBlbGVtZW50IGJ5IGRlZmF1bHQsIGFuZCBoaWRlIGl0IGFib3ZlIGEgY2VydGFpbiBzY3JlZW4gc2l6ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gQnJlYWtwb2ludCB0byB1c2UuICoqTXVzdCBiZSBhIGJyZWFrcG9pbnQgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnRzYC4qKlxuQG1peGluIGhpZGUtZm9yLW9ubHkoJHNpemUpIHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSBvbmx5KSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXZpc2liaWxpdHktY2xhc3NlcyB7XG4gIC8vIEJhc2ljIGhpZGluZyBjbGFzc2VzXG4gIC5oaWRlIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuaW52aXNpYmxlIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIH1cblxuICAvLyBSZXNwb25zaXZlIHZpc2liaWxpdHkgY2xhc3Nlc1xuICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgLmhpZGUtZm9yLSN7JHNpemV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGlkZS1mb3IoJHNpemUpO1xuICAgICAgfVxuXG4gICAgICAuc2hvdy1mb3ItI3skc2l6ZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG93LWZvcigkc2l6ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmhpZGUtZm9yLSN7JHNpemV9LW9ubHkge1xuICAgICAgQGluY2x1ZGUgaGlkZS1mb3Itb25seSgkc2l6ZSk7XG4gICAgfVxuXG4gICAgLnNob3ctZm9yLSN7JHNpemV9LW9ubHkge1xuICAgICAgQGluY2x1ZGUgc2hvdy1mb3Itb25seSgkc2l6ZSk7XG4gICAgfVxuICB9XG5cbiAgLy8gU2NyZWVuIHJlYWRlciB2aXNpYmlsaXR5IGNsYXNzZXNcbiAgLy8gTmVlZCBhIFwiaGlkZS1mb3Itc3JcIiBjbGFzcz8gQWRkIGFyaWEtaGlkZGVuPSd0cnVlJyB0byB0aGUgZWxlbWVudFxuICAuc2hvdy1mb3Itc3IsXG4gIC5zaG93LW9uLWZvY3VzIHtcbiAgICBAaW5jbHVkZSBlbGVtZW50LWludmlzaWJsZTtcbiAgfVxuXG4gIC8vIE9ubHkgZGlzcGxheSB0aGUgZWxlbWVudCB3aGVuIGl0J3MgZm9jdXNlZFxuICAuc2hvdy1vbi1mb2N1cyB7XG4gICAgJjphY3RpdmUsXG4gICAgJjpmb2N1cyB7XG4gICAgICBAaW5jbHVkZSBlbGVtZW50LWludmlzaWJsZS1vZmY7XG4gICAgfVxuICB9XG5cbiAgLy8gTGFuZHNjYXBlIGFuZCBwb3J0cmFpdCB2aXNpYmlsaXR5XG4gIC5zaG93LWZvci1sYW5kc2NhcGUsXG4gIC5oaWRlLWZvci1wb3J0cmFpdCB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFuZHNjYXBlKSB7XG4gICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQocG9ydHJhaXQpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICAuaGlkZS1mb3ItbGFuZHNjYXBlLFxuICAuc2hvdy1mb3ItcG9ydHJhaXQge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFuZHNjYXBlKSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChwb3J0cmFpdCkge1xuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmdW5jdGlvbnNcbi8vLy9cblxuLy8vIENyZWF0ZXMgYW4gaW5uZXIgYm94LXNoYWRvdyBmb3Igb25seSBvbmUgc2lkZVxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2lkZSAtIFNpZGUgdGhlIHNoYWRvdyBpcyBzdXBwb3NlZCB0byBhcHBlYXIuIENhbiBiZSBgdG9wYCwgYGxlZnRgLCBgcmlnaHRgIG9yIGBib3R0b21gLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc2l6ZSAtIFdpZHRoIGZvciB0aGUgdGFyZ2V0IHNpZGUuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIC0gQ29sb3Igb2YgdGhlIHNoYWRvdy5cbkBtaXhpbiBpbm5lci1zaWRlLXNoYWRvdyhcbiAgJHNpZGU6IGJvdHRvbSxcbiAgJHNpemU6IDIwcHgsXG4gICRjb2xvcjogcmdiYSgkYmxhY2ssIDAuMjUpXG4pIHtcblxuICAkaGVscGVyOiByb3VuZCgkc2l6ZSAqIDAuNjUpO1xuXG4gIEBpZiAoJHNpZGUgPT0gdG9wKSB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAkaGVscGVyICRzaXplICgtMSkqJGhlbHBlciAkY29sb3I7XG4gIH0gQGVsc2UgaWYgKCRzaWRlID09IGxlZnQpIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAkaGVscGVyIDAgJHNpemUgKC0xKSokaGVscGVyICRjb2xvcjtcbiAgfSBAZWxzZSBpZiAoJHNpZGUgPT0gcmlnaHQpIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAoLTEpKiRoZWxwZXIgMCAkc2l6ZSAoLTEpKiRoZWxwZXIgJGNvbG9yO1xuICB9IEBlbHNlIGlmICgkc2lkZSA9PSBib3R0b20pIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwICgtMSkqJGhlbHBlciAkc2l6ZSAoLTEpKiRoZWxwZXIgJGNvbG9yO1xuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgQ1NTIHRyaWFuZ2xlLCB3aGljaCBjYW4gYmUgdXNlZCBmb3IgZHJvcGRvd24gYXJyb3dzLCBkcm9wZG93biBwaXBzLCBhbmQgbW9yZS4gVXNlIHRoaXMgbWl4aW4gaW5zaWRlIGEgYCY6OmJlZm9yZWAgb3IgYCY6OmFmdGVyYCBzZWxlY3RvciwgdG8gYXR0YWNoIHRoZSB0cmlhbmdsZSB0byBhbiBleGlzdGluZyBlbGVtZW50LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR0cmlhbmdsZS1zaXplIC0gV2lkdGggb2YgdGhlIHRyaWFuZ2xlLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICR0cmlhbmdsZS1jb2xvciAtIENvbG9yIG9mIHRoZSB0cmlhbmdsZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR0cmlhbmdsZS1kaXJlY3Rpb24gLSBEaXJlY3Rpb24gdGhlIHRyaWFuZ2xlIHBvaW50cy4gQ2FuIGJlIGB1cGAsIGByaWdodGAsIGBkb3duYCwgb3IgYGxlZnRgLlxuQG1peGluIGNzcy10cmlhbmdsZShcbiAgJHRyaWFuZ2xlLXNpemUsXG4gICR0cmlhbmdsZS1jb2xvcixcbiAgJHRyaWFuZ2xlLWRpcmVjdGlvblxuKSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuXG4gIGJvcmRlcjogaW5zZXQgJHRyaWFuZ2xlLXNpemU7XG5cbiAgY29udGVudDogJyc7XG5cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IGRvd24pIHtcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICAgIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogJHRyaWFuZ2xlLWNvbG9yIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICB9XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSB1cCkge1xuICAgIGJvcmRlci10b3Atd2lkdGg6IDA7XG4gICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAkdHJpYW5nbGUtY29sb3I7XG4gIH1cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IHJpZ2h0KSB7XG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICR0cmlhbmdsZS1jb2xvcjtcbiAgfVxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gbGVmdCkge1xuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAkdHJpYW5nbGUtY29sb3IgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBtZW51IGljb24gd2l0aCBhIHNldCB3aWR0aCwgaGVpZ2h0LCBudW1iZXIgb2YgYmFycywgYW5kIGNvbG9ycy4gVGhlIG1peGluIHVzZXMgdGhlIGhlaWdodCBvZiB0aGUgaWNvbiBhbmQgdGhlIHdlaWdodCBvZiB0aGUgYmFycyB0byBkZXRlcm1pbmUgc3BhY2luZy4gPGRpdiBjbGFzcz1cImRvY3MtZXhhbXBsZS1idXJnZXJcIj48L2Rpdj5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJsYWNrXSAtIENvbG9yIHRvIHVzZSBmb3IgdGhlIGljb24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yLWhvdmVyIFskZGFyay1ncmF5XSAtIENvbG9yIHRvIHVzZSB3aGVuIHRoZSBpY29uIGlzIGhvdmVyZWQgb3Zlci5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIFsyMHB4XSAtIFdpZHRoIG9mIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkaGVpZ2h0IFsxNnB4XSAtIEhlaWdodCBvZiB0aGUgaWNvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdlaWdodCBbMnB4XSAtIEhlaWdodCBvZiBpbmRpdmlkdWFsIGJhcnMgaW4gdGhlIGljb24uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXJzIFszXSAtIE51bWJlciBvZiBiYXJzIGluIHRoZSBpY29uLlxuQG1peGluIGhhbWJ1cmdlcihcbiAgJGNvbG9yOiAkYmxhY2ssXG4gICRjb2xvci1ob3ZlcjogJGRhcmstZ3JheSxcbiAgJHdpZHRoOiAyMHB4LFxuICAkaGVpZ2h0OiAxNnB4LFxuICAkd2VpZ2h0OiAycHgsXG4gICRiYXJzOiAzXG4pIHtcbiAgLy8gYm94LXNoYWRvdyBDU1Mgb3V0cHV0XG4gICRzaGFkb3c6ICgpO1xuICAkaG92ZXItc2hhZG93OiAoKTtcblxuICAvLyBTcGFjaW5nIGJldHdlZW4gYmFycyBpcyBjYWxjdWxhdGVkIGJhc2VkIG9uIHRoZSB0b3RhbCBoZWlnaHQgb2YgdGhlIGljb24gYW5kIHRoZSB3ZWlnaHQgb2YgZWFjaCBiYXJcbiAgJHNwYWNpbmc6ICgkaGVpZ2h0IC0gKCR3ZWlnaHQgKiAkYmFycykpIC8gKCRiYXJzIC0gMSk7XG5cbiAgQGlmIHVuaXQoJHNwYWNpbmcpID09ICdweCcge1xuICAgICRzcGFjaW5nOiBmbG9vcigkc3BhY2luZyk7XG4gIH1cblxuICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRiYXJzIHtcbiAgICAkb2Zmc2V0OiAoJHdlaWdodCArICRzcGFjaW5nKSAqICgkaSAtIDEpO1xuICAgICRzaGFkb3c6IGFwcGVuZCgkc2hhZG93LCAwICRvZmZzZXQgMCAkY29sb3IsIGNvbW1hKTtcbiAgfVxuXG4gIC8vIEljb24gY29udGFpbmVyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB3aWR0aDogJHdpZHRoO1xuICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcblxuICAvLyBJY29uIGJhcnNcbiAgJjo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcblxuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogJHdlaWdodDtcblxuICAgIGJhY2tncm91bmQ6ICRjb2xvcjtcbiAgICBib3gtc2hhZG93OiAkc2hhZG93O1xuXG4gICAgY29udGVudDogJyc7XG4gIH1cblxuICAvLyBIb3ZlciBzdGF0ZVxuICBAaWYgJGNvbG9yLWhvdmVyIHtcbiAgICAvLyBHZW5lcmF0ZSBDU1NcbiAgICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRiYXJzIHtcbiAgICAgICRvZmZzZXQ6ICgkd2VpZ2h0ICsgJHNwYWNpbmcpICogKCRpIC0gMSk7XG4gICAgICAkaG92ZXItc2hhZG93OiBhcHBlbmQoJGhvdmVyLXNoYWRvdywgMCAkb2Zmc2V0IDAgJGNvbG9yLWhvdmVyLCBjb21tYSk7XG4gICAgfVxuXG4gICAgJjpob3Zlcjo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZDogJGNvbG9yLWhvdmVyO1xuICAgICAgYm94LXNoYWRvdzogJGhvdmVyLXNoYWRvdztcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgYSBkb3dud2FyZC1mYWNpbmcgdHJpYW5nbGUgYXMgYSBiYWNrZ3JvdW5kIGltYWdlIHRvIGFuIGVsZW1lbnQuIFRoZSBpbWFnZSBpcyBmb3JtYXR0ZWQgYXMgYW4gU1ZHLCBtYWtpbmcgaXQgZWFzeSB0byBjaGFuZ2UgdGhlIGNvbG9yLiBCZWNhdXNlIEludGVybmV0IEV4cGxvcmVyIGRvZXNuJ3Qgc3VwcG9ydCBlbmNvZGVkIFNWR3MgYXMgYmFja2dyb3VuZCBpbWFnZXMsIGEgUE5HIGZhbGxiYWNrIGlzIGFsc28gaW5jbHVkZWQuXG4vLy8gVGhlcmUgYXJlIHR3byBQTkcgZmFsbGJhY2tzOiBhIGJsYWNrIHRyaWFuZ2xlIGFuZCBhIHdoaXRlIHRyaWFuZ2xlLiBUaGUgb25lIHVzZWQgZGVwZW5kcyBvbiB0aGUgbGlnaHRuZXNzIG9mIHRoZSBpbnB1dCBjb2xvci5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJsYWNrXSAtIENvbG9yIHRvIHVzZSBmb3IgdGhlIHRyaWFuZ2xlLlxuQG1peGluIGJhY2tncm91bmQtdHJpYW5nbGUoJGNvbG9yOiAkYmxhY2spIHtcbiAgJHJnYjogJ3JnYiUyOCN7cm91bmQocmVkKCRjb2xvcikpfSwgI3tyb3VuZChncmVlbigkY29sb3IpKX0sICN7cm91bmQoYmx1ZSgkY29sb3IpKX0lMjknO1xuXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnIHdpZHRoPSczMicgaGVpZ2h0PScyNCcgdmlld0JveD0nMCAwIDMyIDI0Jz48cG9seWdvbiBwb2ludHM9JzAsMCAzMiwwIDE2LDI0JyBzdHlsZT0nZmlsbDogI3skcmdifSc+PC9wb2x5Z29uPjwvc3ZnPlwiKTtcblxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjBcXDApIHtcbiAgICBAaWYgbGlnaHRuZXNzKCRjb2xvcikgPCA2MCUge1xuICAgICAgLy8gV2hpdGUgdHJpYW5nbGVcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDQUFBQUFZQ0FZQUFBQ2JVLzgwQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUFJcEpSRUZVZU5yRWtja05nREFNQkJmUmtFdDBPYlJCQmRzR1hVRGdtUWZLNFhoSDJtOGN6UUFBeTI3UjN0c3c0UWZlMng4dU9PNm9ZTGI2R2xPb3IzR0Yrc3dVUkFPbVVKK1J3dEVKczlXdlRHRVl4QlhxSTFNUUFaaENmVVFLUnpETVZqK1R3ckFJVjZqdlNVRWtZQXIxTFNrY3lUQmIvVitLWWZYN3hBZXVzcTNzTER0R0gza0VHQUNQV0lmbE5aZmhSUUFBQUFCSlJVNUVya0pnZ2c9PScpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAvLyBCbGFjayB0cmlhbmdsZVxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUNBQUFBQVlDQVlBQUFDYlUvODBBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQU1CSlJFRlVlTnJFbGxzT2hDQU1SVnN6QzlJbHpVN0tDbVZIVEpzb01XWU1VdHB5djlCZ2J1WFFCNVpTZGdCWVlZNHljZ0Jpdms4S1lGc1FNZk1pVFRCUDRvM25VekNLek9hYkxKYkx5Mi9nMzFldkdrQWdpblI0L1plZ0tINXFYM2JKQ3NjQTN0MHgza2dPNXRRRnloaEZmNTB4UnFGTGJ5TVVOSlF6Z3lqR1Mvd2dDcHZLcWtSQnB1V3JFNFY5ZCsxRTRkUFVYcUlnMTA3U1FPRS8yRFJReE13VER5Z0lJblZERVQ5VDNsQ29qLzZqL1ZDbUdqWk9sMmxLcFo4QUF3RFFQN3pJaW1ER0ZRQUFBQUJKUlU1RXJrSmdnZz09Jyk7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBcHBsaWVzIHRoZSBtaWNybyBjbGVhcmZpeCBoYWNrIHBvcHVsYXJpemVkIGJ5IE5pY29sYXMgR2FsbGFnaGVyLiBJbmNsdWRlIHRoaXMgbWl4aW4gb24gYSBjb250YWluZXIgaWYgaXRzIGNoaWxkcmVuIGFyZSBhbGwgZmxvYXRlZCwgdG8gZ2l2ZSB0aGUgY29udGFpbmVyIGEgcHJvcGVyIGhlaWdodC5cbi8vLyBUaGUgY2xlYXJmaXggaXMgYXVnbWVudGVkIHdpdGggc3BlY2lmaWMgc3R5bGVzIHRvIHByZXZlbnQgYm9yZGVycyBpbiBmbGV4Ym94IGVudmlyb25tZW50c1xuLy8vIEBsaW5rIGh0dHA6Ly9uaWNvbGFzZ2FsbGFnaGVyLmNvbS9taWNyby1jbGVhcmZpeC1oYWNrLyBNaWNybyBDbGVhcmZpeCBIYWNrXG4vLy8gQGxpbmsgaHR0cDovL2RhbmlzYWRlc2lnbmVyLmNvbS9ibG9nL2ZsZXhib3gtY2xlYXItZml4LXBzZXVkby1lbGVtZW50cy8gRmxleGJveCBmaXhcbkBtaXhpbiBjbGVhcmZpeCB7XG4gICY6OmJlZm9yZSxcbiAgJjo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNvbnRlbnQ6ICcgJztcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgIG9yZGVyOiAxO1xuICAgIH1cbiAgfVxuXG4gICY6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgfVxufVxuXG4vLy8gQWRkcyBDU1MgZm9yIGEgXCJxdWFudGl0eSBxdWVyeVwiIHNlbGVjdG9yIHRoYXQgYXV0b21hdGljYWxseSBzaXplcyBlbGVtZW50cyBiYXNlZCBvbiBob3cgbWFueSB0aGVyZSBhcmUgaW5zaWRlIGEgY29udGFpbmVyLlxuLy8vIEBsaW5rIGh0dHA6Ly9hbGlzdGFwYXJ0LmNvbS9hcnRpY2xlL3F1YW50aXR5LXF1ZXJpZXMtZm9yLWNzcyBRdWFudGl0eSBRdWVyaWVzIGZvciBDU1Ncbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbWF4IC0gTWF4aW11bSBudW1iZXIgb2YgaXRlbXMgdG8gZGV0ZWN0LiBUaGUgaGlnaGVyIHRoaXMgbnVtYmVyIGlzLCB0aGUgbW9yZSBDU1MgdGhhdCdzIHJlcXVpcmVkIHRvIGNvdmVyIGVhY2ggbnVtYmVyIG9mIGl0ZW1zLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGVsZW0gW2xpXSAtIFRhZyB0byB1c2UgZm9yIHNpYmxpbmcgc2VsZWN0b3JzLlxuQG1peGluIGF1dG8td2lkdGgoJG1heCwgJGVsZW06IGxpKSB7XG4gIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggJG1heCB7XG4gICAgJjpudGgtbGFzdC1jaGlsZCgjeyRpfSk6Zmlyc3QtY2hpbGQsXG4gICAgJjpudGgtbGFzdC1jaGlsZCgjeyRpfSk6Zmlyc3QtY2hpbGQgfiAjeyRlbGVtfSB7XG4gICAgICB3aWR0aDogcGVyY2VudGFnZSgxIC8gJGkpO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gUmVtb3ZlcyB0aGUgZm9jdXMgcmluZyBhcm91bmQgYW4gZWxlbWVudCB3aGVuIGEgbW91c2UgaW5wdXQgaXMgZGV0ZWN0ZWQuXG5AbWl4aW4gZGlzYWJsZS1tb3VzZS1vdXRsaW5lIHtcbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddICYge1xuICAgIG91dGxpbmU6IDA7XG4gIH1cbn1cblxuLy8vIE1ha2VzIGFuIGVsZW1lbnQgdmlzdWFsbHkgaGlkZGVuLCBidXQgc3RpbGwgYWNjZXNzaWJsZSB0byBrZXlib2FyZHMgYW5kIGFzc2lzdGl2ZSBkZXZpY2VzLlxuLy8vIEBsaW5rIGh0dHA6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHkgSGlkaW5nIENvbnRlbnQgZm9yIEFjY2Vzc2liaWxpdHlcbi8vLyBAbGluayBodHRwOi8vaHVnb2dpcmF1ZGVsLmNvbS8yMDE2LzEwLzEzL2Nzcy1oaWRlLWFuZC1zZWVrL1xuLy8vXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZW5mb3JjZSAtIElmIGB0cnVlYCwgdXNlIGAhaW1wb3J0YW50YCBvbiBhcHBsaWVkIHByb3BlcnRpZXNcbkBtaXhpbiBlbGVtZW50LWludmlzaWJsZShcbiAgJGVuZm9yY2U6IHRydWVcbikge1xuICAkaW1wb3J0YW50OiBpZigkZW5mb3JjZSwgJyFpbXBvcnRhbnQnLCBudWxsKTtcblxuICBwb3NpdGlvbjogYWJzb2x1dGUgI3skaW1wb3J0YW50fTtcbiAgd2lkdGg6IDFweCAjeyRpbXBvcnRhbnR9O1xuICBoZWlnaHQ6IDFweCAjeyRpbXBvcnRhbnR9O1xuICBwYWRkaW5nOiAwICN7JGltcG9ydGFudH07XG4gIG92ZXJmbG93OiBoaWRkZW4gI3skaW1wb3J0YW50fTtcbiAgY2xpcDogcmVjdCgwLDAsMCwwKSAjeyRpbXBvcnRhbnR9O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwICN7JGltcG9ydGFudH07XG4gIGJvcmRlcjogMCAjeyRpbXBvcnRhbnR9O1xufVxuXG4vLy8gUmV2ZXJzZXMgdGhlIENTUyBvdXRwdXQgY3JlYXRlZCBieSB0aGUgYGVsZW1lbnQtaW52aXNpYmxlKClgIG1peGluLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGVuZm9yY2UgLSBJZiBgdHJ1ZWAsIHVzZSBgIWltcG9ydGFudGAgb24gYXBwbGllZCBwcm9wZXJ0aWVzXG5AbWl4aW4gZWxlbWVudC1pbnZpc2libGUtb2ZmKFxuICAkZW5mb3JjZTogdHJ1ZVxuKSB7XG4gICRpbXBvcnRhbnQ6IGlmKCRlbmZvcmNlLCAnIWltcG9ydGFudCcsIG51bGwpO1xuXG4gIHBvc2l0aW9uOiBzdGF0aWMgI3skaW1wb3J0YW50fTtcbiAgd2lkdGg6IGF1dG8gI3skaW1wb3J0YW50fTtcbiAgaGVpZ2h0OiBhdXRvICN7JGltcG9ydGFudH07XG4gIG92ZXJmbG93OiB2aXNpYmxlICN7JGltcG9ydGFudH07XG4gIGNsaXA6IGF1dG8gI3skaW1wb3J0YW50fTtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbCAjeyRpbXBvcnRhbnR9O1xufVxuXG4vLy8gVmVydGljYWxseSBjZW50ZXJzIHRoZSBlbGVtZW50IGluc2lkZSBvZiBpdHMgZmlyc3Qgbm9uLXN0YXRpYyBwYXJlbnQsXG4vLy8gQGxpbmsgaHR0cDovL3d3dy5zaXRlcG9pbnQuY29tL2NlbnRlcmluZy13aXRoLXNhc3MvIENlbnRlcmluZyBXaXRoIFNhc3NcbkBtaXhpbiB2ZXJ0aWNhbC1jZW50ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG59XG5cbi8vLyBIb3Jpem9udGFsbHkgY2VudGVycyB0aGUgZWxlbWVudCBpbnNpZGUgb2YgaXRzIGZpcnN0IG5vbi1zdGF0aWMgcGFyZW50LFxuLy8vIEBsaW5rIGh0dHA6Ly93d3cuc2l0ZXBvaW50LmNvbS9jZW50ZXJpbmctd2l0aC1zYXNzLyBDZW50ZXJpbmcgV2l0aCBTYXNzXG5AbWl4aW4gaG9yaXpvbnRhbC1jZW50ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xufVxuXG4vLy8gQWJzb2x1dGVseSBjZW50ZXJzIHRoZSBlbGVtZW50IGluc2lkZSBvZiBpdHMgZmlyc3Qgbm9uLXN0YXRpYyBwYXJlbnQsXG4vLy8gQGxpbmsgaHR0cDovL3d3dy5zaXRlcG9pbnQuY29tL2NlbnRlcmluZy13aXRoLXNhc3MvIENlbnRlcmluZyBXaXRoIFNhc3NcbkBtaXhpbiBhYnNvbHV0ZS1jZW50ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xufVxuXG4vLy8gSXRlcmF0ZXMgdGhyb3VnaCBicmVha3BvaW50cyBkZWZpbmVkIGluIGAkYnJlYWtwb2ludC1jbGFzc2VzYCBhbmQgcHJpbnRzIHRoZSBDU1MgaW5zaWRlIHRoZSBtaXhpbiBhdCBlYWNoIGJyZWFrcG9pbnQncyBtZWRpYSBxdWVyeS4gVXNlIHRoaXMgd2l0aCB0aGUgZ3JpZCwgb3IgYW55IG90aGVyIGNvbXBvbmVudCB0aGF0IGhhcyByZXNwb25zaXZlIGNsYXNzZXMuXG4vLy9cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRzbWFsbCBbdHJ1ZV0gLSBJZiBgZmFsc2VgLCB0aGUgbWl4aW4gd2lsbCBza2lwIHRoZSBgc21hbGxgIGJyZWFrcG9pbnQuIFVzZSB0aGlzIHdpdGggY29tcG9uZW50cyB0aGF0IGRvbid0IHByZWZpeCBjbGFzc2VzIHdpdGggYHNtYWxsLWAsIG9ubHkgYG1lZGl1bS1gIGFuZCB1cC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRhdXRvLWluc2VydC1icmVha3BvaW50cyBbdHJ1ZV0gLSBJZiBgZmFsc2VgLCB0aGUgbWl4aW4gd2lsbCBpdGVyYXRlIG92ZXIgYnJlYWtwb2ludHMgd2l0aG91dCBkb2luZyB0aGUgbWVkaWEgcXVlcnkgaXRzZWxmLiBVc2VmdWwgZm9yIG1vcmUgY29tcGxleCBtZWRpYSBxdWVyeSBnZW5lcmF0aW9uIGFzIGluIHRoZSBtYXJnaW4gZ3JpZC5cbkBtaXhpbiAtemYtZWFjaC1icmVha3BvaW50KFxuICAkc21hbGw6IHRydWUsXG4gICRhdXRvLWluc2VydC1icmVha3BvaW50czogdHJ1ZVxuKSB7XG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQtaW4oYXV0bywgLXpmLWJvb2woJHNtYWxsKSwgLXpmLWJvb2woJGF1dG8taW5zZXJ0LWJyZWFrcG9pbnRzKSkge1xuICAgIEBjb250ZW50XG4gIH07XG59XG5cbi8vLyBJdGVyYXRlcyB3aXRoIGBAY29udGVudGAgdGhyb3VnaCB0aGUgZ2l2ZW4gbGlzdCBvZiBicmVha3BvaW50cyBgJGJyZWFrcG9pbnRzYC5cbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfExpc3R9ICRicmVha3BvaW50cyBbYXV0b10gLSBCcmVha3BvaW50cyB0byBpdGVyYXRlcyBvbi4gSXQgY2FuIGJlIGEgYnJlYWtwb2ludCBuYW1lLCBsaXN0IG9mIGJyZWFrcG9pbnRzIG9yIGBhdXRvYCBmb3IgYWxsIGJyZWFrcG9pbnRzLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbnxOdWxsfSAkemVyby1icmVha3BvaW50IFtudWxsXSAtIFdoZXRoZXIgdGhlIHplcm8tYnJlYWtwb2ludCAob2Z0ZW4gYHNtYWxsYCkgbXVzdCBiZSBpbmNsdWRlZC4gSWYgYHRydWVgLCBpdCB3aWxsIGFsd2F5cyBiZSBhZGRlZCB0byB0aGUgbGlzdCBpZiBub3QgYWxyZWFkeSB0aGVyZS4gSWYgYGZhbHNlYCwgaXQgd2lsbCBhbHdheXMgYmUgcmVtb3ZlZC4gRG9lcyBub3RoaW5nIGJ5IGRlZmF1bHQuXG4vLy8gQHBhcmFtIHtCb29sZWFufEtleXdvcmR9ICRtZWRpYS1xdWVyaWVzIFt0cnVlXSAtIFdoZXRoZXIgbWVkaWEtcXVlcmllcyBtdXN0IGJlIGdlbmVyYXRlZC4gSWYgYGZvci1saXN0c2AsIG9ubHkgZ2VuZXJhdGUgbWVkaWEtcXVlcmllcyB3aGVuIGAkYnJlYWtwb2ludHNgIGlzIGEgbGlzdC5cbkBtaXhpbiAtemYtZWFjaC1icmVha3BvaW50LWluKFxuICAkYnJlYWtwb2ludHM6IGF1dG8sXG4gICR6ZXJvLWJyZWFrcG9pbnQ6IG51bGwsXG4gICRtZWRpYS1xdWVyaWVzOiB0cnVlXG4pIHtcbiAgJC1saXN0OiAoKTtcbiAgJC1icmVha3BvaW50cy1pcy1hLWxpc3Q6IHRydWU7XG5cbiAgLy8gUmV0cmlldmUgdGhlIGxpc3Qgb2YgYnJlYWtwb2ludChzKSB0byBpdGVyYXRlIG9uLlxuICBAaWYgJGJyZWFrcG9pbnRzID09IGF1dG8ge1xuICAgICQtbGlzdDogJGJyZWFrcG9pbnQtY2xhc3NlcztcbiAgfVxuICBAZWxzZSBpZiB0eXBlLW9mKCRicmVha3BvaW50cykgPT0gJ2xpc3QnIHtcbiAgICAkLWxpc3Q6ICRicmVha3BvaW50cztcbiAgfVxuICBAZWxzZSBpZiB0eXBlLW9mKCRicmVha3BvaW50cykgPT0gJ3N0cmluZycge1xuICAgICQtbGlzdDogKCRicmVha3BvaW50cyk7XG4gICAgJC1icmVha3BvaW50cy1pcy1hLWxpc3Q6IGZhbHNlO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAZXJyb3IgJ1dyb25nIHN5bnRheCBmb3IgXCIkYnJlYWtwb2ludHNcIiBpbiBcIi16Zi1lYWNoLWJyZWFrcG9pbnQtaW4oKVwiLiBHb3QgXCIjeyRicmVha3BvaW50c31cIiAoI3t0eXBlLW9mKCRicmVha3BvaW50cyl9KS4gRXhwZWN0ZWQgYSBicmVha3BvaW50IG5hbWUsIGEgbGlzdCBvZiBicmVha3BvaW50cyBvciBcImF1dG9cIic7XG4gIH1cblxuICAvLyBBZGQgb3IgcmVtb3ZlIHRoZSB6ZXJvIGJyZWFrcG9pbnQgYWNjb3JkaW5nIHRvIGAkemVyby1icmVha3BvaW50YFxuICBAaWYgJHplcm8tYnJlYWtwb2ludCA9PSB0cnVlIHtcbiAgICAkLWxpc3Q6IGpvaW4oKCQtemYtemVyby1icmVha3BvaW50KSwgc2wtcmVtb3ZlKCQtbGlzdCwgJC16Zi16ZXJvLWJyZWFrcG9pbnQpKTtcbiAgfVxuICBAZWxzZSBpZiAkemVyby1icmVha3BvaW50ID09IGZhbHNlIHtcbiAgICAkLWxpc3Q6IHNsLXJlbW92ZSgkLWxpc3QsICQtemYtemVyby1icmVha3BvaW50KTtcbiAgfVxuXG4gIC8vIEl0ZXJhdGUgb24gYnJlYWtwb2ludChzKVxuICBAZWFjaCAkYnAgaW4gJC1saXN0IHtcbiAgICAkb2xkLXpmLXNpemU6IG51bGw7XG4gICAgQGlmIGdsb2JhbC12YXJpYWJsZS1leGlzdHMoLXpmLXNpemUpIHtcbiAgICAgICRvbGQtemYtc2l6ZTogJC16Zi1zaXplO1xuICAgIH1cbiAgICAkLXpmLXNpemU6ICRicCAhZ2xvYmFsO1xuXG4gICAgQGlmICgkbWVkaWEtcXVlcmllcyA9PSB0cnVlXG4gICAgICBvciAoJG1lZGlhLXF1ZXJpZXMgPT0gJ2Zvci1saXN0cycgYW5kICQtYnJlYWtwb2ludHMtaXMtYS1saXN0KSkge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkYnApIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cblxuICAgICQtemYtc2l6ZTogJG9sZC16Zi1zaXplICFnbG9iYWw7XG4gIH1cbn1cblxuLy8vIEdlbmVyYXRlIHRoZSBgQGNvbnRlbnRgIHBhc3NlZCB0byB0aGUgbWl4aW4gd2l0aCBhIHZhbHVlIGAkLXpmLWJwLXZhbHVlYCByZWxhdGVkIHRvIGEgYnJlYWtwb2ludCwgZGVwZW5kaW5nIG9uIHRoZSBgJG5hbWVgIHBhcmFtZXRlcjpcbi8vLyAtIEZvciBhIHNpbmdsZSB2YWx1ZSwgYCQtemYtYnAtdmFsdWVgIGlzIHRoaXMgdmFsdWUuXG4vLy8gLSBGb3IgYSBicmVha3BvaW50IG5hbWUsIGAkLXpmLWJwLXZhbHVlYCBpcyB0aGUgY29ycmVzcG9uZGluZyBicmVha3BvaW50IHZhbHVlIGluIGAkbWFwYC5cbi8vLyAtIEZvciBcImF1dG9cIiwgYCQtemYtYnAtdmFsdWVgIGlzIHRoZSBjb3JyZXNwb25kaW5nIGJyZWFrcG9pbnQgdmFsdWUgaW4gYCRtYXBgIGFuZCBpcyBwYXNzZWQgdG8gYEBjb250ZW50YCwgd2hpY2ggaXMgbWFkZSByZXNwb25zaXZlIGZvciBlYWNoIGJyZWFrcG9pbnQgb2YgYCRtYXBgLlxuLy8vIEBwYXJhbSB7TnVtYmVyfEFycmF5fEtleXdvcmR9ICRuYW1lIFthdXRvXSAtIFNpbmdsZSB2YWx1ZSwgYnJlYWtwb2ludCBuYW1lLCBvciBsaXN0IG9mIGJyZWFrcG9pbnQgbmFtZXMgdG8gdXNlLiBcImF1dG9cIiBieSBkZWZhdWx0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJG1hcCAtIE1hcCBvZiBicmVha3BvaW50cyBhbmQgdmFsdWVzIG9yIHNpbmdsZSB2YWx1ZSB0byB1c2UuXG5AbWl4aW4gLXpmLWJyZWFrcG9pbnQtdmFsdWUoXG4gICRuYW1lOiBhdXRvLFxuICAkbWFwOiBudWxsXG4pIHtcbiAgQGlmICRuYW1lID09IGF1dG8gYW5kIHR5cGUtb2YoJG1hcCkgPT0gJ21hcCcge1xuICAgIC8vIFwiYXV0b1wiXG4gICAgQGVhY2ggJGssICR2IGluICRtYXAge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkaykge1xuICAgICAgICBAaW5jbHVkZSAtemYtYnJlYWtwb2ludC12YWx1ZSgkdiwgJG1hcCkge1xuICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAvLyBicmVha3BvaW50IG5hbWVcbiAgICBAaWYgdHlwZS1vZigkbmFtZSkgPT0gJ3N0cmluZycge1xuICAgICAgJGJwLXZhbHVlOiAtemYtZ2V0LWJwLXZhbCgkbWFwLCAkbmFtZSk7XG4gICAgICBAaWYgJGJwLXZhbHVlICE9IG51bGwge1xuICAgICAgICAkbmFtZTogJGJwLXZhbHVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGJyZWFrcG9pbnQgdmFsdWVcbiAgICAkLXpmLWJwLXZhbHVlOiAkbmFtZSAhZ2xvYmFsO1xuICAgIEBjb250ZW50O1xuICB9XG59XG4iLCIuaGVhZGluZyB7XG4gIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktc2Fucy1zZXJpZiwgJGZvbnQtZmFtaWx5LXN5c3RlbS1zYW5zLXNlcmlmO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gICYtLWxhcmdlLXRpdGxlIHtcbiAgICBjb2xvcjogJGdyYXBlO1xuICAgIGZvbnQtc2l6ZTogMy42cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDEyOTlweCkge1xuICAgICAgZm9udC1zaXplOiAzLjE1cmVtO1xuICAgIH1cblxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAxMDkycHgpIHtcbiAgICAgIGZvbnQtc2l6ZTogMi43cmVtO1xuICAgIH1cblxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgZm9udC1zaXplOiAyLjI1cmVtO1xuICAgIH1cbiAgfVxuXG4gICYtLW1lZGl1bS10aXRsZSB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gIH1cblxuICAmLS1sYXJnZS10aXRsZS1kYXJrIHtcbiAgICBjb2xvcjogJGdyYXBlO1xuICAgIGZvbnQtc2l6ZTogMy42cmVtO1xuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICBmb250LXNpemU6IDIuMjVyZW07XG4gICAgfVxuICB9XG5cbiAgJi0tc2VjdGlvbi10aXRsZS1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuXG4gICYtLXNlY3Rpb24tdGl0bGUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1tb25vO1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKSB0cmFuc2xhdGUoLTEwMCUsIDApO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgdG9wO1xuICAgIG1hcmdpbi10b3A6IDEycHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDJweDtcblxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgcG9zaXRpb246IHVuc2V0O1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgIHRyYW5zZm9ybTogdW5zZXQ7XG4gICAgfVxuICB9XG59XG5cbi5zbWFsbC1oZWFkaW5nIHtcbiAgY29sb3I6ICNmZmY7XG4gIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktbW9ubztcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDEuOTVweDtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4udGV4dCB7XG4gIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktc2Fucy1zZXJpZiwgJGZvbnQtZmFtaWx5LXN5c3RlbS1zYW5zLXNlcmlmO1xuICBjb2xvcjogI2ZmZjtcbiAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgZm9udC13ZWlnaHQ6IDgwMDtcblxuICBhIHtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uO1xuICAgIGNvbG9yOiAjZmZmO1xuXG4gICAgJi5kYXJrIHtcbiAgICAgIGNvbG9yOiAkZ3JhcGU7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogJGJyaWNrO1xuICAgIH1cbiAgfVxuXG4gICYtLXNtYWxsIHtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxNi44cHg7XG4gICAgZm9udC13ZWlnaHQ6IGxpZ2h0ZXI7XG5cbiAgICAmLmRhcmsge1xuICAgICAgY29sb3I6ICRncmFwZTtcbiAgICB9XG4gIH1cblxuICAmLS1ub3JtYWwge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuM3JlbTtcbiAgICBmb250LXdlaWdodDogbGlnaHRlcjtcblxuICAgICYuZGFyayB7XG4gICAgICBjb2xvcjogJGdyYXBlO1xuICAgIH1cbiAgfVxuXG4gICYtLW1lZGl1bSB7XG4gICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcblxuICAgICYuZGFyayB7XG4gICAgICBjb2xvcjogJGdyYXBlO1xuICAgIH1cbiAgfVxuXG4gICYtLW1lZGl1bS1kYXJrIHtcbiAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgIGNvbG9yOiAkZ3JhcGU7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDJyZW07XG5cbiAgICAmLmRhcmsge1xuICAgICAgY29sb3I6ICRncmFwZTtcbiAgICB9XG4gIH1cblxuICAmLS1sYXJnZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogM3JlbTtcblxuICAgICYuZGFyayB7XG4gICAgICBjb2xvcjogJGdyYXBlO1xuICAgIH1cblxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICBsaW5lLWhlaWdodDogMS41cmVtO1xuICAgIH1cbiAgfVxufVxuXG4ubWV0YS10ZXh0IHtcbiAgY29sb3I6ICNmZmY7XG4gIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktbW9ubztcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBsZXR0ZXItc3BhY2luZzogMS45NXB4O1xuICBmb250LXNpemU6IDlweDtcbiAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICBkaXNwbGF5OiBpbmxpbmU7XG59XG5cbi5saW5rIHtcbiAgQGluY2x1ZGUgdHJhbnNpdGlvbjtcbiAgY29sb3I6ICNmZmY7XG4gIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktbW9ubztcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGxldHRlci1zcGFjaW5nOiAycHg7XG5cbiAgLy8gJjpob3ZlciB7XG4gIC8vICAgY29sb3I6ICRoaWdobGlnaHRHcmVlbjtcbiAgLy8gfVxuXG4gICYtLWRhcmsge1xuICAgIGNvbG9yOiAkZ3JhcGU7XG4gIH1cbn1cblxuLy8gc2VjdGlvbiB0aXRsZXNcblxuLnNvY2lhbF9fbGluayB7XG4gIEBpbmNsdWRlIG91dGxpbmVkO1xuICBAaW5jbHVkZSB0cmFuc2l0aW9uO1xuICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LXNhbnMtc2VyaWYsICRmb250LWZhbWlseS1zeXN0ZW0tc2Fucy1zZXJpZjtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMWVtO1xuICBmb250LXNpemU6IDIuN3JlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICBAbWVkaWEgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gICAgZm9udC1zaXplOiAycmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAycmVtO1xuICB9XG5cbiAgJjpob3ZlciB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC13ZWlnaHQ6IGxpZ2h0ZXI7XG4gIH1cbn1cblxuLnBvc3QtY29udGVudC10aXRsZSB7XG4gIEBpbmNsdWRlIG91dGxpbmVkU21hbGxCZWlnZTtcbiAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1zYW5zLXNlcmlmLCAkZm9udC1mYW1pbHktc3lzdGVtLXNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogM3JlbTtcbiAgbGluZS1oZWlnaHQ6IDNyZW07XG5cbiAgJjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IHVybCgvd3AtY29udGVudC90aGVtZXMveW91bmdibG9vZHMvZGlzdC9pbWcvZG90LXBvaW50LnN2Zyk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJvdHRvbTogNnB4O1xuICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgfVxufVxuIiwiLy8gb3V0bGluZWQgdGV4dFxuQG1peGluIG91dGxpbmVkKCRjb2xvcjogdHJhbnNwYXJlbnQsICRzdHJva2U6ICNmZmYpIHtcbiAgLy8gZGVmYXVsdHNcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtc2hhZG93OiAtMnB4IC0ycHggMCAkc3Ryb2tlLCAycHggLTJweCAwICRzdHJva2UsIC0ycHggMnB4IDAgJHN0cm9rZSxcbiAgICAycHggMnB4IDAgJHN0cm9rZSwgLTJweCAwcHggMCAkc3Ryb2tlLCAycHggMHB4IDAgJHN0cm9rZSwgMHB4IDJweCAwICRzdHJva2UsXG4gICAgMHB4IC0ycHggMCAkc3Ryb2tlLCAwcHggMHB4IDAgJHN0cm9rZTtcblxuICBAc3VwcG9ydHMgKFxuICAgIChcbiAgICAgICgtd2Via2l0LXRleHQtc3Ryb2tlLWNvbG9yOiAkc3Ryb2tlKSBvciAoLW1vei10ZXh0LXN0cm9rZS1jb2xvcjogJHN0cm9rZSlcbiAgICAgICAgb3IgKHRleHQtc3Ryb2tlLWNvbG9yOiAkc3Ryb2tlKVxuICAgIClcbiAgKSB7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICB0ZXh0LXNoYWRvdzogbm9uZTtcblxuICAgIC1tb3otdGV4dC1zdHJva2UtY29sb3I6ICRzdHJva2U7XG4gICAgLXdlYmtpdC10ZXh0LXN0cm9rZS1jb2xvcjogJHN0cm9rZTtcbiAgICB0ZXh0LXN0cm9rZS1jb2xvcjogJHN0cm9rZTtcbiAgICAtbW96LXRleHQtc3Ryb2tlLXdpZHRoOiAycHg7XG4gICAgLXdlYmtpdC10ZXh0LXN0cm9rZS13aWR0aDogMnB4O1xuICAgIHRleHQtc3Ryb2tlLXdpZHRoOiAycHg7XG4gIH1cbn1cblxuLy8gb3V0bGluZWQgdGV4dFxuQG1peGluIG91dGxpbmVkU21hbGwoJGNvbG9yOiB0cmFuc3BhcmVudCwgJHN0cm9rZTogI2ZmZikge1xuICAvLyBkZWZhdWx0c1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1zaGFkb3c6IC0xcHggLTFweCAwICRzdHJva2UsIDFweCAtMXB4IDAgJHN0cm9rZSwgLTFweCAxcHggMCAkc3Ryb2tlLFxuICAgIDFweCAxcHggMCAkc3Ryb2tlLCAtMXB4IDBweCAwICRzdHJva2UsIDFweCAwcHggMCAkc3Ryb2tlLCAwcHggMXB4IDAgJHN0cm9rZSxcbiAgICAwcHggLTFweCAwICRzdHJva2UsIDBweCAwcHggMCAkc3Ryb2tlO1xuXG4gIEBzdXBwb3J0cyAoXG4gICAgKFxuICAgICAgKC13ZWJraXQtdGV4dC1zdHJva2UtY29sb3I6ICRzdHJva2UpIG9yICgtbW96LXRleHQtc3Ryb2tlLWNvbG9yOiAkc3Ryb2tlKVxuICAgICAgICBvciAodGV4dC1zdHJva2UtY29sb3I6ICRzdHJva2UpXG4gICAgKVxuICApIHtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIHRleHQtc2hhZG93OiBub25lO1xuXG4gICAgLW1vei10ZXh0LXN0cm9rZS1jb2xvcjogJHN0cm9rZTtcbiAgICAtd2Via2l0LXRleHQtc3Ryb2tlLWNvbG9yOiAkc3Ryb2tlO1xuICAgIHRleHQtc3Ryb2tlLWNvbG9yOiAkc3Ryb2tlO1xuICAgIC1tb3otdGV4dC1zdHJva2Utd2lkdGg6IDFweDtcbiAgICAtd2Via2l0LXRleHQtc3Ryb2tlLXdpZHRoOiAxcHg7XG4gICAgdGV4dC1zdHJva2Utd2lkdGg6IDFweDtcbiAgfVxufVxuXG4vLyBvdXRsaW5lZCB0ZXh0XG5AbWl4aW4gb3V0bGluZWRTbWFsbEJlaWdlKCRjb2xvcjogdHJhbnNwYXJlbnQsICRzdHJva2U6ICRoaWdobGlnaHRHcmVlbikge1xuICAvLyBkZWZhdWx0c1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1zaGFkb3c6IC0xcHggLTFweCAwICRzdHJva2UsIDFweCAtMXB4IDAgJHN0cm9rZSwgLTFweCAxcHggMCAkc3Ryb2tlLFxuICAgIDFweCAxcHggMCAkc3Ryb2tlLCAtMXB4IDBweCAwICRzdHJva2UsIDFweCAwcHggMCAkc3Ryb2tlLCAwcHggMXB4IDAgJHN0cm9rZSxcbiAgICAwcHggLTFweCAwICRzdHJva2UsIDBweCAwcHggMCAkc3Ryb2tlO1xuXG4gIEBzdXBwb3J0cyAoXG4gICAgKFxuICAgICAgKC13ZWJraXQtdGV4dC1zdHJva2UtY29sb3I6ICRzdHJva2UpIG9yICgtbW96LXRleHQtc3Ryb2tlLWNvbG9yOiAkc3Ryb2tlKVxuICAgICAgICBvciAodGV4dC1zdHJva2UtY29sb3I6ICRzdHJva2UpXG4gICAgKVxuICApIHtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIHRleHQtc2hhZG93OiBub25lO1xuXG4gICAgLW1vei10ZXh0LXN0cm9rZS1jb2xvcjogJHN0cm9rZTtcbiAgICAtd2Via2l0LXRleHQtc3Ryb2tlLWNvbG9yOiAkc3Ryb2tlO1xuICAgIHRleHQtc3Ryb2tlLWNvbG9yOiAkc3Ryb2tlO1xuICAgIC1tb3otdGV4dC1zdHJva2Utd2lkdGg6IDFweDtcbiAgICAtd2Via2l0LXRleHQtc3Ryb2tlLXdpZHRoOiAxcHg7XG4gICAgdGV4dC1zdHJva2Utd2lkdGg6IDFweDtcbiAgfVxufVxuXG4vLyB0cmFuc2l0aW9uXG5AbWl4aW4gdHJhbnNpdGlvbigkcHJvcGVydHk6IGFsbCwgJHRpbWU6IDAuM3MsICRlYXNpbmc6IGVhc2Utb3V0KSB7XG4gIHRyYW5zaXRpb246ICRwcm9wZXJ0eSAkdGltZSAkZWFzaW5nIDBzO1xufVxuIiwiLmludHJvIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDEwMHZoO1xuICAvLyBDcmVhdGVzIHNxdWFyZSBpbnRybyBmb3IgcG9ydHJhaXQgZGV2aWNlc1xuICAvLyBtYXgtaGVpZ2h0OiAxMDB2dztcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAmLnNlY29uZGFyeS1wYWdlIHtcbiAgICAvLyBoZWlnaHQ6IDc1dmg7XG4gIH1cblxuICAmX19jb250ZW50LXdyYXAge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgfVxuXG4gICZfX2NvbnRlbnQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgaGVpZ2h0OiA5JTtcblxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICAgIGhlaWdodDogNC41JTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmX19jb250ZW50LWJhY2tncm91bmQtd3JhcCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIH1cblxuICAmX19jb250ZW50LWJhY2tncm91bmQge1xuICAgIGhlaWdodDogMjc3cHg7XG4gICAgYmFja2dyb3VuZDogJHN0b25lO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuXG4gICAgJi5kYXJrIHtcbiAgICAgIGJhY2tncm91bmQ6ICRncmFwZTtcblxuICAgICAgLmhlYWRpbmctLWxhcmdlLXRpdGxlIHtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9fcmVwZWF0LWxvZ28tY29udGFpbmVyIHtcbiAgICBoZWlnaHQ6IDI3N3B4O1xuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC5oZWFkaW5nLS1sYXJnZS10aXRsZSB7XG4gICAgcGFkZGluZzogMXJlbTtcbiAgfVxufVxuXG4uaW50cm8tLXNtYWxsZXIge1xuICAuYmFja2dyb3VuZCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGhlaWdodDogNTB2aDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICAvLyBDcmVhdGVzIHNxdWFyZSBpbnRybyBmb3IgcG9ydHJhaXQgZGV2aWNlc1xuICAgIG1heC1oZWlnaHQ6IDEwMHZ3O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgfVxufVxuXG4uYmFja2dyb3VuZCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogJHotaW5kZXgtYmVoaW5kO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xuXG4gICYuYWRsYW5kcyB7XG4gICAgb2JqZWN0LXBvc2l0aW9uOiBsZWZ0O1xuICB9XG59XG5cbi5ncmlkX19pdGVtIHtcbiAgJi13cmFwIHtcbiAgICBwYWRkaW5nOiAxcmVtO1xuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICBwYWRkaW5nOiAxcmVtIDA7XG4gICAgfVxuICB9XG5cbiAgJi1pbWcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDE0NDBweCkge1xuICAgICAgbWFyZ2luLWxlZnQ6IDJyZW07XG4gICAgfVxuICB9XG5cbiAgJi1pbmZvIHtcbiAgICBiYWNrZ3JvdW5kOiAkZ3JhcGU7XG4gICAgcGFkZGluZzogMXJlbTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3gtc2hhZG93OiAwcHggMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gICAgbWluLWhlaWdodDogMTcwcHg7XG5cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogMTQ0MHB4KSB7XG4gICAgICBtYXJnaW4tbGVmdDogMnJlbTtcbiAgICAgIHdpZHRoOiA2NSU7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTIuN3JlbSk7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9XG5cbiAgICBhOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAkaGlnaGxpZ2h0R3JlZW4gIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuLmJ1dHRvbiB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1zYW5zLXNlcmlmLCAkZm9udC1mYW1pbHktc3lzdGVtLXNhbnMtc2VyaWY7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2ZmZjtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gIHBhZGRpbmc6IDhweCAxNnB4O1xufVxuXG4ub3JkZXJlZF9fbGlzdCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktc2Fucy1zZXJpZiwgJGZvbnQtZmFtaWx5LXN5c3RlbS1zYW5zLXNlcmlmO1xuICBjb3VudGVyLXJlc2V0OiB5b3VuZ2Jsb29kcy1jb3VudGVyO1xuICBwYWRkaW5nOiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuXG4gICYtLWl0ZW0ge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGNvdW50ZXItaW5jcmVtZW50OiB5b3VuZ2Jsb29kcy1jb3VudGVyO1xuICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiA1cmVtO1xuICAgIGZsZXgtYmFzaXM6IDUwJTtcblxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgIH1cblxuICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgJi10aXRsZSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGxpbmUtaGVpZ2h0OiAycmVtO1xuXG4gICAgICAmOjpiZWZvcmUge1xuICAgICAgICBjb2xvcjogJGhpZ2hsaWdodEdyZWVuO1xuICAgICAgICBjb250ZW50OiBcIjBcIiBjb3VudGVyKHlvdW5nYmxvb2RzLWNvdW50ZXIpO1xuICAgICAgICBmb250LXNpemU6IDRyZW07XG4gICAgICAgIGhlaWdodDogNHJlbTtcbiAgICAgICAgcGFkZGluZzogMCAxcmVtIDAgMDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgICAgICAgICBmb250LXNpemU6IDNyZW07XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmLS1saW5rIHtcbiAgICBAaW5jbHVkZSBvdXRsaW5lZFNtYWxsO1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb247XG4gICAgbWFyZ2luLXRvcDogLTFyZW07XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgZm9udC13ZWlnaHQ6IGxpZ2h0ZXI7XG4gICAgfVxuICB9XG59XG5cbi5xdW90ZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDgwJTtcbiAgZm9udC1zaXplOiAycmVtO1xuICBsaW5lLWhlaWdodDogMnJlbTtcbiAgY29sb3I6ICRoaWdobGlnaHRHcmVlbjtcbiAgbWFyZ2luLWxlZnQ6IDE1JTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW46IDFyZW0gMTAlO1xuXG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjVyZW07XG4gIH1cbn1cblxuLnNlY3Rpb25fX2xpc3Qge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LXNhbnMtc2VyaWYsICRmb250LWZhbWlseS1zeXN0ZW0tc2Fucy1zZXJpZjtcbiAgY291bnRlci1yZXNldDogc2VjdGlvbi1saXN0LWNvdW50ZXI7XG4gIHBhZGRpbmc6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY29sb3I6ICNmZmY7XG4gIHBhZGRpbmctbGVmdDogM3JlbTtcblxuICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gIH1cblxuICB1bCB7XG4gICAgcGFkZGluZy1sZWZ0OiAxcmVtO1xuICB9XG5cbiAgJi0taXRlbSB7XG4gICAgY29sb3I6ICRoaWdobGlnaHRHcmVlbjtcbiAgICBjb3VudGVyLWluY3JlbWVudDogc2VjdGlvbi1saXN0LWNvdW50ZXI7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgZmxleC1iYXNpczogNTAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSBvdXRsaW5lZFNtYWxsQmVpZ2U7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGNvbnRlbnQ6IGNvdW50ZXIoc2VjdGlvbi1saXN0LWNvdW50ZXIpO1xuICAgICAgZm9udC1zaXplOiAzcmVtO1xuICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgbWFyZ2luLWxlZnQ6IC0yLjVyZW07XG4gICAgfVxuICB9XG5cbiAgJi0tdGV4dCB7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjJyZW07XG4gICAgZm9udC13ZWlnaHQ6IGxpZ2h0ZXI7XG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgfVxufVxuXG4udW5vcmRlcmVkX19saXN0IHtcbiAgcGFkZGluZzogMCAwIDAgMTlweDtcbiAgbWFyZ2luLXRvcDogMnJlbTtcblxuICAmLS1pdGVtIHtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKCk7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjJyZW07XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgIH1cbiAgfVxufVxuXG4ucG9zdC1jb250ZW50IHtcbiAgY29sb3I6ICNmZmY7XG4gIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktc2Fucy1zZXJpZiwgJGZvbnQtZmFtaWx5LXN5c3RlbS1zYW5zLXNlcmlmO1xuICBwYWRkaW5nOiAwIDAgN3JlbTtcblxuICAuYnV0dG9uIHtcbiAgICBtYXJnaW4tdG9wOiAycmVtO1xuICB9XG5cbiAgLnBvc3QtaW1nIHtcbiAgICBtYXJnaW4tYm90dG9tOiAzcmVtO1xuICB9XG5cbiAgLmludHJvX19jb250ZW50LWJhY2tncm91bmQtd3JhcCB7XG4gICAgbWFyZ2luLXRvcDogLTEzOC41cHg7XG4gIH1cblxuICAuaW50cm9fX2NvbnRlbnQtYmFja2dyb3VuZCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gIH1cblxuICAuaW50cm9fX3JlcGVhdC1sb2dvLWNvbnRhaW5lciBpbWcge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cblxuICAuY2hhcHRlci1pbnRybyB7XG4gICAgbWFyZ2luLXRvcDogMy41cmVtO1xuICB9XG5cbiAgLnBvc3QtaW50cm8ge1xuICAgIG1hcmdpbjogMy41cmVtIDA7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1tb25vO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDEuOTVweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gIH1cblxuICAuaGVhZGluZy0tbGFyZ2UtdGl0bGUge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAxcmVtO1xuICB9XG5cbiAgLnBvc3QtY29udGVudC10aXRsZSB7XG4gICAgbWFyZ2luOiAkc2VjdGlvbi10aXRsZS1tYXJnaW5zO1xuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICBmb250LXNpemU6IDJyZW07XG4gICAgICBsaW5lLWhlaWdodDogMnJlbTtcbiAgICB9XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgYm90dG9tOiAycHg7XG4gICAgfVxuICB9XG5cbiAgLnNlY3Rpb25fX2xpc3Qge1xuICAgIG1hcmdpbjogJHBhZ2UtdGl0bGUtbWFyZ2lucztcblxuICAgICYtLWl0ZW0ge1xuICAgICAgbGluZS1oZWlnaHQ6IDEuNXJlbTtcbiAgICB9XG4gIH1cblxuICAudGV4dC5zZWN0aW9uX19saXN0LS10ZXh0IHAge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cblxuICBpbWcge1xuICAgIG1hcmdpbjogM3JlbSAwIDA7XG4gIH1cblxuICB1bCB7XG4gICAgcGFkZGluZy1sZWZ0OiAxcmVtO1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktc2Fucy1zZXJpZiwgJGZvbnQtZmFtaWx5LXN5c3RlbS1zYW5zLXNlcmlmO1xuICB9XG5cbiAgYSB7XG4gICAgY29sb3I6ICNmZmY7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb247XG4gICAgICBjb2xvcjogJGJyaWNrO1xuICAgIH1cbiAgfVxufVxuIiwiaHRtbCB7XG4gIGJhY2tncm91bmQ6ICRncmFwZTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgZm9udC1zaXplOiAxOHB4O1xuICB0ZXh0LXJlbmRlcmluZzogZ2VvbWV0cmljUHJlY2lzaW9uO1xufVxuXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xufVxuXG4qLFxuKjpiZWZvcmUsXG4qOmFmdGVyIHtcbiAgYm94LXNpemluZzogaW5oZXJpdDtcbn1cblxuaW1nIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbmgxLFxuaDIsXG5oMyxcbmg0LFxuaDUsXG5oNiB7XG4gIG1hcmdpbjogMDtcbn1cblxuYSB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuaHIge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2ZmZjtcbn1cbiIsIi5uYXYge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHdpZHRoOiAxMDAlO1xuXHRtYXJnaW4tdG9wOiAycmVtO1xuXHR6LWluZGV4OiAkei1pbmRleC1tZW51O1xuXG5cdCZfX2xvZ28ge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHR6LWluZGV4OiAzMDA7XG5cdH1cblxuXHQmX19tb2JpbGUtbWVudS10b2dnbGUtd3JhcCB7XG5cdFx0ei1pbmRleDogMzAwO1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0fVxuXG5cdCZfX21lbnUge1xuXHRcdGxpc3Qtc3R5bGU6IG5vbmU7XG5cdFx0cGFkZGluZzogMCAycmVtO1xuXHRcdG1hcmdpbjogMDtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuXG5cdFx0QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyM3B4KSB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cblxuXHRcdCYtaXRlbSB7XG5cblx0XHRcdCY6Zmlyc3Qtb2YtdHlwZSB7XG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiAwO1xuXHRcdFx0fVxuXG5cdFx0XHRhIHtcblx0XHRcdFx0Zm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1tb25vO1xuXHRcdFx0XHRjb2xvcjogd2hpdGU7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMC43NXJlbTtcblx0XHRcdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQmX19zb2NpYWwtd3JhcCB7XG5cdFx0QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyM3B4KSB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cblx0fVxuXG5cdCZfX3NvY2lhbC1saW5rIHtcblx0XHRtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcblxuXHRcdCY6bGFzdC1vZi10eXBlIHtcblx0XHRcdG1hcmdpbi1yaWdodDogMDtcblx0XHR9XG5cdH1cbn1cblxuLyoqXG4qIE1vYmlsZSBuYXYgdG9nZ2xlXG4qL1xuI21vYmlsZS1uYXYtdG9nZ2xlIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDA7XG5cdHJpZ2h0OiAwO1xuXHRwYWRkaW5nOiAwO1xuXG5cdGkge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHdpZHRoOiAyM3B4O1xuXHRcdGhlaWdodDogMThweDtcblx0XHR0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcblx0XHR0cmFuc2l0aW9uOiAuNXMgZWFzZS1pbi1vdXQ7XG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xuXG5cdFx0c3BhbiB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdGhlaWdodDogMnB4O1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRiYWNrZ3JvdW5kOiAjZmZmO1xuXHRcdFx0b3BhY2l0eTogMTtcblx0XHRcdGxlZnQ6IDA7XG5cdFx0XHR0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcblx0XHRcdHRyYW5zaXRpb246IC4yNXMgZWFzZS1pbi1vdXQ7XG5cblx0XHRcdCY6bnRoLWNoaWxkKDEpIHtcblx0XHRcdFx0dG9wOiAwcHg7XG5cdFx0XHR9XG5cblx0XHRcdCY6bnRoLWNoaWxkKDIpLFxuXHRcdFx0JjpudGgtY2hpbGQoMykge1xuXHRcdFx0XHR0b3A6IDdweDtcblx0XHRcdH1cblxuXHRcdFx0JjpudGgtY2hpbGQoNCkge1xuXHRcdFx0XHR0b3A6IDE0cHg7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gYWN0aXZlXG5cdFx0Ym9keS5tb2JpbGUtbmF2LWFjdGl2ZSAmIHtcblx0XHRcdHNwYW46bnRoLWNoaWxkKDEpIHtcblx0XHRcdFx0dG9wOiAxOHB4O1xuXHRcdFx0XHR3aWR0aDogMCU7XG5cdFx0XHRcdGxlZnQ6IDUwJTtcblx0XHRcdH1cblxuXHRcdFx0c3BhbjpudGgtY2hpbGQoMikge1xuXHRcdFx0XHQtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcblx0XHRcdFx0LW1vei10cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG5cdFx0XHRcdC1vLXRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcblx0XHRcdFx0dHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuXHRcdFx0fVxuXG5cdFx0XHRzcGFuOm50aC1jaGlsZCgzKSB7XG5cdFx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcblx0XHRcdFx0LW1vei10cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuXHRcdFx0XHQtby10cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuXHRcdFx0XHR0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuXHRcdFx0fVxuXG5cdFx0XHRzcGFuOm50aC1jaGlsZCg0KSB7XG5cdFx0XHRcdHRvcDogMThweDtcblx0XHRcdFx0d2lkdGg6IDAlO1xuXHRcdFx0XHRsZWZ0OiA1MCU7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbiNtb2JpbGUtbWVudSB7XG5cdEBpbmNsdWRlIHRyYW5zaXRpb247XG5cdGRpc3BsYXk6IGZsZXg7XG5cdHZpc2liaWxpdHk6IGhpZGRlbjtcblx0b3BhY2l0eTogMDtcblx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdHRyYW5zZm9ybTogc2NhbGUoLjMpO1xuXHRwb3NpdGlvbjogZml4ZWQ7XG5cdHRvcDogMDtcblx0bGVmdDogMDtcblx0cmlnaHQ6IDA7XG5cdGJvdHRvbTogMDtcblx0ei1pbmRleDogMjAwO1xuXHRiYWNrZ3JvdW5kOiAkZ3JhcGU7XG5cdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xuXG5cdHVsIHtcblx0XHRtYXJnaW46IDA7XG5cdFx0cGFkZGluZzogMDtcblx0XHRsaXN0LXN0eWxlOiBub25lO1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cdFx0bWluLWhlaWdodDogNTB2aDtcblxuXHRcdGxpIHtcblx0XHRcdGZvbnQtc2l6ZTogMnJlbTtcblx0XHRcdGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktc2Fucy1zZXJpZjtcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblxuXHRcdFx0YSB7XG5cdFx0XHRcdEBpbmNsdWRlIHRyYW5zaXRpb247XG5cdFx0XHRcdGNvbG9yOiAjZmZmO1xuXG5cdFx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRcdGNvbG9yOiAkYnJpY2s7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLy8gbWVudSBhY3RpdmF0aW9uXG5ib2R5Lm1vYmlsZS1uYXYtYWN0aXZlIHtcblx0Ly8gZGlzYWJsZSBzY3JvbGxpbmcgb2YgYmFja2dyb3VuZCBjb250ZW50XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cblx0Ly8gc2hvdyBuYXZcblx0I21vYmlsZS1tZW51IHtcblx0XHR0cmFuc2Zvcm06IHNjYWxlKDEpO1xuXHRcdHZpc2liaWxpdHk6IHZpc2libGU7XG5cdFx0b3BhY2l0eTogMTtcblx0XHRwb2ludGVyLWV2ZW50czogYXV0bztcblx0fVxufSIsIi5zcG9uc29ycyB7XG4gIHBhZGRpbmc6ICRzZWN0aW9uLXBhZGRpbmctc21hbGw7XG4gIGJhY2tncm91bmQ6ICRlZ2dwbGFudDtcblxuICBociB7XG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgfVxuXG4gICZfX2dyaWQtd3JhcHBlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuXG4gICAgaW1nIHtcbiAgICAgIHdpZHRoOiAxNzZweDtcbiAgICB9XG4gIH1cblxuICAmX19ncmlkLWl0ZW0ge1xuICAgIGZsZXgtYmFzaXM6IDI1JTtcbiAgfVxufVxuXG4uZm9vdGVyIHtcbiAgcGFkZGluZzogJHNlY3Rpb24tcGFkZGluZy1sYXJnZTtcbiAgYmFja2dyb3VuZDogJGVnZ3BsYW50O1xuXG4gICYuYWx0IHtcbiAgICBiYWNrZ3JvdW5kOiAkZWdncGxhbnQ7XG4gIH1cblxuICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICBwYWRkaW5nOiAzLjVyZW0gMDtcbiAgICAvLyBiYWNrZ3JvdW5kOiAkZ3JhcGU7XG4gIH1cblxuICAueWItbG9nbyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICB3aWR0aDogNjAlO1xuICAgIH1cbiAgfVxuXG4gIC5jb21tcy1jb3VuY2lsLWxvZ28ge1xuICAgIHdpZHRoOiAzNyU7XG5cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgIHdpZHRoOiA0MCU7XG4gICAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICAgIH1cbiAgfVxuXG4gIC5zbWFsbC1oZWFkaW5nIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICB9XG5cbiAgLmhlYWRpbmctLW1lZGl1bS10aXRsZSB7XG4gICAgbWFyZ2luOiAwIDAgMXJlbTtcbiAgICBmb250LXNpemU6IDFyZW07XG4gIH1cblxuICAmX19uYXYtbWVudSB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcblxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgICB9XG5cbiAgICAmLWl0ZW0ge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAmIGEge1xuICAgICAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LXNhbnMtc2VyaWY7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICBmb250LXdlaWdodDogbGlnaHRlcjtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuI21haWxjaGltcC1mb3JtLFxuI21jLWVtYmVkZGVkLXN1YnNjcmliZS1mb3JtIHtcbiAgbGFiZWwge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgaW5wdXQ6bm90KFt0eXBlPVwic3VibWl0XCJdKSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNmZmY7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcblxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgc3Bhbi50aXRsZSB7XG4gICAgICBAaW5jbHVkZSBvdXRsaW5lZFNtYWxsO1xuICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbjtcbiAgICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktc2Fucy1zZXJpZjtcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMWVtO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogLTE7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgdHJhbnNmb3JtLW9yaWdpbjogYm90dG9tIGxlZnQ7XG4gICAgfVxuXG4gICAgaW5wdXQjbWNlLUVNQUlMIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgfVxuXG4gICAgJi5hY3RpdmF0ZWQge1xuICAgICAgc3Bhbi50aXRsZSB7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC43KSB0cmFuc2xhdGVZKC0zN3B4KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmludmFsaWQge1xuICAgICAgaW5wdXQge1xuICAgICAgICBib3JkZXItY29sb3I6IHJlZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi5ob21lLWFib3V0LXVzIHtcbiAgcGFkZGluZzogJHNlY3Rpb24tcGFkZGluZy1sYXJnZTtcblxuICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAuaGVhZGluZy0tc2VjdGlvbi10aXRsZS1jb250YWluZXIge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICBwYWRkaW5nOiAzLjVyZW0gMDtcbiAgfVxuXG4gIC5ncmlkLWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgLnRleHQtLWxhcmdlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAzcmVtO1xuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG4gICAgfVxuICB9XG5cbiAgLnRleHQtLW5vcm1hbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuICB9XG59XG5cbi5ob21lLWJsb2cge1xuICBwYWRkaW5nOiA3cmVtIDAgNXJlbTtcbiAgYmFja2dyb3VuZDogJHN0b25lO1xuXG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgfVxuXG4gIC5oZWFkaW5nLS1zZWN0aW9uLXRpdGxlLFxuICAubGluayB7XG4gICAgY29sb3I6ICRncmFwZTtcbiAgfVxuXG4gIC5saW5rOmhvdmVyIC5ncmlkLWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgLnRleHQtLW1lZGl1bSB7XG4gICAgcGFkZGluZy1ib3R0b206IDEycHg7XG4gIH1cblxuICAubGluayB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgIH1cbiAgfVxufVxuXG4uaG9tZS1hZGxhbmQge1xuICBwYWRkaW5nOiAkc2VjdGlvbi1wYWRkaW5nLWxhcmdlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMTAwdmg7XG4gIC8vIENyZWF0ZXMgc3F1YXJlIGludHJvIGZvciBwb3J0cmFpdCBkZXZpY2VzXG4gIC8vIG1heC1oZWlnaHQ6IDEwMHZ3O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICBwYWRkaW5nOiAzcmVtIDA7XG4gIH1cblxuICAmX19jb250ZW50LXdyYXAge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAuaGVhZGluZy0tc2VjdGlvbi10aXRsZSB7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcblxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZfX2NvbnRlbnQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogZml0LWNvbnRlbnQ7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICB9XG5cbiAgJl9fY29udGVudC1iYWNrZ3JvdW5kLXdyYXAge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIH1cblxuICAmX19jb250ZW50LWJhY2tncm91bmQge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KTtcbiAgICBwYWRkaW5nOiAxLjc1cmVtO1xuICAgIG1hcmdpbjogMCAxcmVtO1xuICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbiAgfVxuXG4gIC5oZWFkaW5nLS1sYXJnZS10aXRsZS1kYXJrIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjc1cmVtO1xuICB9XG5cbiAgLnRleHQtLW1lZGl1bS1kYXJrIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDEuNzVyZW07XG4gICAgbWF4LXdpZHRoOiA4NyU7XG5cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxcmVtO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgIG1heC13aWR0aDogOTAlO1xuICAgIH1cbiAgfVxufVxuXG4uc29jaWFsIHtcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgcGFkZGluZzogMnJlbSAwIDA7XG4gIH1cblxuICAuaGVhZGluZy0tc2VjdGlvbi10aXRsZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC5oZWFkaW5nLS1sYXJnZS10aXRsZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICBsaW5lLWhlaWdodDogMnJlbTtcbiAgICBwb3NpdGlvbjogdW5zZXQ7XG4gIH1cblxuICAmX19tZW51LXdyYXBwZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmbGV4LWJhc2lzOiA1MCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWZsb3c6IGNvbHVtbiB3cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAuaGVhZGluZy0tbGFyZ2UtdGl0bGUge1xuICAgICAgcG9zaXRpb246IHVuc2V0O1xuICAgIH1cbiAgfVxuXG4gICZfX2ZlZWQtd3JhcHBlciB7XG4gICAgd2lkdGg6IDUwdnc7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICBtYXJnaW4tbGVmdDogLTEuMDYyNXJlbTtcbiAgICAgIHdpZHRoOiAxMDB2dztcbiAgICB9XG4gIH1cblxuICAmX19mZWVkLWltYWdlIHtcbiAgICBmbGV4LWJhc2lzOiAzMy4zMyU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgJl9fbWVudSB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcblxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgICB9XG4gIH1cblxuICAmX19jb250ZW50LXdyYXAge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxuXG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgIC5tZWRpdW0tNi5zb2NpYWxfX2NvbnRlbnQtd3JhcCB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cbn1cbiIsIi5hZGxhbmQtd2VsY29tZSB7XG4gIHBhZGRpbmc6ICRzZWN0aW9uLXBhZGRpbmctbGFyZ2U7XG4gIGJhY2tncm91bmQ6ICRzdG9uZTtcblxuICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICBwYWRkaW5nOiAzLjVyZW0gMDtcbiAgfVxuXG4gIC50ZXh0LS1sYXJnZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogM3JlbTtcbiAgfVxuXG4gIC5oZWFkaW5nLS1zZWN0aW9uLXRpdGxlIHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBjb2xvcjogJGdyYXBlO1xuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAudGV4dC0tbm9ybWFsIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAycmVtO1xuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgIH1cbiAgfVxufVxuXG4uYWRsYW5kLWd1aWRlLXRvLWd1aWRlIHtcbiAgcGFkZGluZzogJHNlY3Rpb24tcGFkZGluZy1sYXJnZTtcbiAgYmFja2dyb3VuZDogJGdyYXBlO1xuXG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgIHBhZGRpbmc6IDMuNXJlbSAwO1xuICB9XG5cbiAgLmhlYWRpbmctLXNlY3Rpb24tdGl0bGUge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAgICAgcG9zaXRpb246IHVuc2V0O1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgIHRyYW5zZm9ybTogdW5zZXQ7XG4gICAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB9XG4gIH1cblxuICAub3JkZXJlZF9fbGlzdC0taXRlbSB7XG4gICAgcGFkZGluZy1yaWdodDogM3JlbTtcblxuICAgIHAge1xuICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2NzhweCkge1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGZsZXgtYmFzaXM6IDEwMCU7XG4gICAgfVxuICB9XG5cbiAgLm9yZGVyZWRfX2xpc3QtLWl0ZW0tdGl0bGUge1xuICAgIG1heC13aWR0aDogMzE4cHg7XG4gIH1cblxuICAudW5vcmRlcmVkX19saXN0LS1pdGVtIHtcbiAgICBtYXgtd2lkdGg6IDQwMHB4O1xuICB9XG59XG4iLCIuYmxvZyB7XG4gIHBhZGRpbmc6ICRzZWN0aW9uLXBhZGRpbmctbGFyZ2U7XG4gIGJhY2tncm91bmQ6ICRzdG9uZTtcblxuICAuaGVhZGluZy0tc2VjdGlvbi10aXRsZSB7XG4gICAgY29sb3I6ICRncmFwZTtcbiAgfVxuXG4gIC5idXR0b24ge1xuICAgIGNvbG9yOiAkZ3JhcGU7XG4gICAgYm9yZGVyLWNvbG9yOiAkZ3JhcGU7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAkZ3JhcGU7XG4gICAgfVxuICB9XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgcGFkZGluZzogMy41cmVtIDA7XG4gIH1cblxuICAuZ3JpZC1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuXG4gIC5oZWFkaW5nLS1zZWN0aW9uLXRpdGxlIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC5ncmlkX19pdGVtLXdyYXAge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICAgIH1cbiAgfVxuXG4gIC50ZXh0LS1tZWRpdW0ge1xuICAgIHBhZGRpbmctYm90dG9tOiAxMnB4O1xuICB9XG5cbiAgLnRleHQgYSB7XG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogJGdyYXBlO1xuICAgIH1cbiAgfVxuXG4gICZfX2NhdGVnb3J5LXdyYXAge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICB9XG5cbiAgJl9fY2F0ZWdvcnktbGluayB7XG4gICAgbWFyZ2luOiAwIDFyZW0gMXJlbSAwO1xuICB9XG59XG4iLCIuYWJvdXQtdXMge1xuICBwYWRkaW5nOiAkc2VjdGlvbi1wYWRkaW5nLWxhcmdlO1xuICBiYWNrZ3JvdW5kOiAkZ3JhcGU7XG5cbiAgLy8gLnRleHQsXG4gIC8vIC5oZWFkaW5nLS1zZWN0aW9uLXRpdGxlIHtcbiAgLy8gICBjb2xvcjogJGdyYXBlO1xuICAvLyB9XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgcGFkZGluZzogMy41cmVtIDA7XG4gIH1cblxuICBpbWcge1xuICAgIG1hcmdpbi1ib3R0b206IDRyZW07XG4gIH1cblxuICAudGV4dC0tbGFyZ2Uge1xuICAgIG1hcmdpbi1ib3R0b206IDNyZW07XG4gIH1cblxuICAuaGVhZGluZy0tc2VjdGlvbi10aXRsZSB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG5cbiAgICBAbWVkaWEgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC50ZXh0LS1ub3JtYWwge1xuICAgIHBhZGRpbmctcmlnaHQ6IDRyZW07XG5cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuICB9XG59XG4iLCIuZ2V0LWluLXRvdWNoIHtcbiAgcGFkZGluZzogJHNlY3Rpb24tcGFkZGluZy1sYXJnZTtcbiAgY29sb3I6ICNmZmY7XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgcGFkZGluZzogMy41cmVtIDA7XG4gIH1cblxuICBAbWVkaWEgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gICAgLmhlYWRpbmctLXNlY3Rpb24tdGl0bGUge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAudGV4dC0tbGFyZ2Uge1xuICAgIG1hcmdpbi1ib3R0b206IDNyZW07XG4gICAgZm9udC13ZWlnaHQ6IGxpZ2h0ZXI7XG4gIH1cblxuICAud3BjZjctZm9ybSB7XG4gICAgcGFkZGluZy1ib3R0b206IDQwcHg7XG5cbiAgICAuY2VsbCB7XG4gICAgICBwYWRkaW5nLXRvcDogMjBweDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAyMHB4O1xuICAgIH1cblxuICAgIGJyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLndwY2Y3LWZvcm0tY29udHJvbC13cmFwIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIGxhYmVsIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICBpbnB1dDpub3QoW3R5cGU9XCJzdWJtaXRcIl0pOm5vdChbdHlwZT1cInJhZGlvXCJdKSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2ZmZjtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgfVxuXG4gICAgICAvLyBiYWNrZ3JvdW5kXG4gICAgICAud3BjZjctZm9ybS1jb250cm9sLXdyYXAubWVzc2FnZSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uO1xuICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgIGJhY2tncm91bmQ6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAwZGVnLFxuICAgICAgICAgICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAxKSxcbiAgICAgICAgICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMSkgMXB4LFxuICAgICAgICAgICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSAxcHgsXG4gICAgICAgICAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDApIDQwcHhcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHRleHRhcmVhIHtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogMztcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgfVxuXG4gICAgICBzcGFuLnRpdGxlIHtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbjtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1zYW5zLXNlcmlmO1xuICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAtMTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogYm90dG9tIGxlZnQ7XG5cbiAgICAgICAgc3VwIHtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogNXB4O1xuICAgICAgICAgIGZvbnQtc2l6ZTogMC43NWVtO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYuYWN0aXZhdGVkIHtcbiAgICAgICAgc3Bhbi50aXRsZSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjcpIHRyYW5zbGF0ZVkoLTM3cHgpO1xuICAgICAgICB9XG5cbiAgICAgICAgLndwY2Y3LWZvcm0tY29udHJvbC13cmFwLm1lc3NhZ2U6OmJlZm9yZSB7XG4gICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgfVxuICAgICAgICB0ZXh0YXJlYSB7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiAjZmZmO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYuaW52YWxpZCB7XG4gICAgICAgIGlucHV0IHtcbiAgICAgICAgICBib3JkZXItY29sb3I6ICRicmljaztcbiAgICAgICAgfVxuXG4gICAgICAgIHRleHRhcmVhIHtcbiAgICAgICAgICBib3JkZXItY29sb3I6ICRicmljaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIHZhbGlkYXRpb25cbiAgICBzcGFuLndwY2Y3LW5vdC12YWxpZC10aXAge1xuICAgICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1zYW5zLXNlcmlmO1xuICAgICAgY29sb3I6ICRicmljaztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICBwYWRkaW5nLXRvcDogM3B4O1xuICAgIH1cblxuICAgIC8vIHJlc3BvbnNlXG4gICAgLndwY2Y3LXJlc3BvbnNlLW91dHB1dCB7XG4gICAgICBwYWRkaW5nOiAxMHB4O1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1zYW5zLXNlcmlmO1xuXG4gICAgICAmLndwY2Y3LXZhbGlkYXRpb24tZXJyb3JzIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkYnJpY2s7XG4gICAgICAgIGNvbG9yOiAkYnJpY2s7XG4gICAgICB9XG5cbiAgICAgICYud3BjZjctbWFpbC1zZW50LW9rIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjZmZmO1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgfVxuICAgIH1cblxuICAgIC5idXR0b24ge1xuICAgICAgbWFyZ2luLXRvcDogNDBweDtcbiAgICB9XG4gIH1cbn1cbiJdfQ== */
