body {
    background-color: lightgray;
}


.btn[data-v-172e25f9] {
    border-radius: 0;
    display: block;
    height: 30px;
    width: 100%;
    background-color: transparent;
    position: relative;
    padding: inherit;
    z-index: 1;
    align-items: flex-start;
    box-sizing: border-box;
    outline: none;
    border: 0px solid #1e282d;
    border-bottom-width: 1px;
    font-size: 11px;
    color: inherit;
    text-decoration: none;
    text-align: center;
    vertical-align: middle;
    font-family: inherit;
    font-family: 'Alata', sans-serif;
    text-transform: uppercase;
    letter-spacing: 0.7px;
    transition-duration: 0.4s;
    cursor: pointer;
    overflow: visible;
}
.last[data-v-172e25f9]{
  background-color: rgb(165 42 42 / 80%);
}
.btn[data-v-172e25f9]:hover:not(.active) {
    border-color: #f0e6d2;
    border-bottom-width: 4px;
    text-shadow: 0px 0px 2px white, 0 0 25px #f0e6d2;
    transition-duration: 0.2s;
}
.active[data-v-172e25f9] {
    background-color: rgba(0, 108, 125,0.5);
}
.btn[data-v-172e25f9]:focus-visible,
.btn[data-v-172e25f9]:focus {
    outline: 0;
    box-shadow: none;
}
@media screen and (max-width: 850px){
.btn[data-v-172e25f9] {
    height:100%;
    font-size: 1.5em;
    background-color: #010a13;
}
.active[data-v-172e25f9] {
    background-color: rgba(0, 108, 125,1);
}
}


ul[data-v-7d2d4638] {
    width: 100%;
    border: none;
    font-family: 'MedievalSharp', cursive;
    color: inherit;
    list-style-image: none;
    list-style: none;
    display: grid;
    grid-template-columns: repeat(6,1fr);
    margin-block-start: 0em;
    margin-block-end: 0em;
    padding-inline-start: 0px;
}
Tabs[data-v-7d2d4638]:focus {
    outline: 0;
}
/* Sidenav menu */
#closeBtn[data-v-7d2d4638],
#openBtn[data-v-7d2d4638] {
    display:none;
}
.hidden[data-v-7d2d4638]{
    display:block;
}
@media screen and (max-width: 850px){
#TheTabs[data-v-7d2d4638],
  #mySidenav[data-v-7d2d4638]{
    
    position: fixed;
    width: 100%;
    max-height: calc(100vh - 5em);
    overflow-y: auto;
    z-index:100;
}
#TheTabs.reduit[data-v-7d2d4638]{
    width: 20%;
    overflow: hidden;
}
#mySidenav[data-v-7d2d4638]:not(.hidden)
  {
    height: calc(100vh - 5em);
}
ul[data-v-7d2d4638] {
    grid-template-columns: 1fr;
    grid-template-rows: repeat(6,1fr);
    height: 100%;
    transition-duration: 0.4s;
}

    /* Sidenav menu */
#closeBtn[data-v-7d2d4638],
  #openBtn[data-v-7d2d4638] {
    display:block;
    font-size: 3.5em;
    padding: 8px 15px;
    text-align: left;
    float: left;
    overflow-x: hidden;
}
#openBtn svg[data-v-7d2d4638]{
    overflow-x: hidden;
}
.hidden[data-v-7d2d4638]{
    display:none !important;
}
}


.view[data-v-e3eff19c]{
  width:50px;
  height:50px;
  margin:1px;
  perspective:600px;
}
.dice3D[data-v-e3eff19c]{
  font-size: 4rem;
  position: relative;
  transform-style:preserve-3d;
  transition: transform 1s;
  transform: rotateY(360deg);
  line-height: 0;
  width: 50px;
  height: 50px;
}
.one[data-v-e3eff19c]{
  transform: rotateY(0deg);
}
.two[data-v-e3eff19c]{
  transform: rotatex(90deg);
}
.three[data-v-e3eff19c]{
  transform: rotateY(-90deg);
}
.four[data-v-e3eff19c]{
  transform: rotateY(90deg);
}
.five[data-v-e3eff19c]{
  transform: rotatex(-90deg);
}
.six[data-v-e3eff19c]{
  transform: rotateY(180deg);
}
svg[data-v-e3eff19c]{
  width: 50px;
  height: 50px;
}
.dice3D > div[data-v-e3eff19c]{
  position: absolute;
  backface-visibility: hidden;
  height: 50px;
  width: 50px;
  color: #f0e6d2;
  background-color: #282828;
}
.dice3D > div[data-v-e3eff19c]:nth-of-type(1){
transform: rotateY(0deg) translateZ(25px);
color:brown;
}
.dice3D > div[data-v-e3eff19c]:nth-of-type(2){
transform: rotateX(-90deg) translateZ(25px);
}
.dice3D > div[data-v-e3eff19c]:nth-of-type(3){
transform: rotateY(90deg) translateZ(25px);
}
.dice3D > div[data-v-e3eff19c]:nth-of-type(4){
transform: rotateY(270deg) translateZ(25px);
}
.dice3D > div[data-v-e3eff19c]:nth-of-type(5){
transform: rotateX(90deg) translateZ(25px);
}
.dice3D > div[data-v-e3eff19c]:nth-of-type(6){
transform: rotateY(180deg) translateZ(25px);
}
@media screen and (max-width: 850px){}
@media screen and (max-width: 850px) and (orientation:portrait){}


.mainscreen[data-v-73e8f1a1] {
    top: 30px;
    width: 80%;
    /* margin: auto; */
    /* left: 10%; */
    /* right: 10%; */
    /* bottom: 30px; */
    /* position: fixed; */
    background-color: transparent;
    overflow: auto;
    z-index: 0;
    margin-top: 20px;
    padding: 2%;
    padding-top: 0px;
    border-left-style: solid;
    border-right-style: solid;
    border-width: 0px;
    border-color: #ccc3a7;
    margin-left: auto;
    margin-right: auto;
}
.h2[data-v-73e8f1a1], h2[data-v-73e8f1a1] {
    font-size: 6rem;
    text-transform: uppercase;
    letter-spacing: 0.2em;
}
article[data-v-73e8f1a1] {
  margin-bottom: 20vh;
}
section[data-v-73e8f1a1]{
  display: block;
  position: relative;
}
.intro p[data-v-73e8f1a1] {
    font-size: 1.6vw;
}
.intro p + p[data-v-73e8f1a1] {
    margin-top: 5vh;
}
.intro p span[data-v-73e8f1a1]{
    color: brown;
}
.lore-post h1[data-v-73e8f1a1]{
  margin-top: 2em;
  font-size: 8em;
  text-transform: uppercase;
}
.lore-post h1+div[data-v-73e8f1a1]{
  text-transform: uppercase;
  margin-bottom: 15vh;
}
.factions[data-v-73e8f1a1] {
    list-style: none;
    margin-block-start: 0;
    margin-block-end: 0;
    padding-inline-start: 0;
    display: flex;
    flex-direction: row;
    justify-content: stretch;
}
.factions li[data-v-73e8f1a1] {
    display: flex;
    flex-grow: 1;
    margin: 1px;
    max-height: 50vh;
    overflow: hidden;
}
.factions li > div[data-v-73e8f1a1]:first-of-type {
    align-content: end;
    display: grid;
    grid-template-rows: 3fr 1fr 20px;
    border: 1px solid #1e282d;
    background-position: center;
    background-size: cover;
    pointer-events: all;
    flex-grow: 1;
    justify-content: center;
    position:relative;
    cursor: pointer;
    flex-basis:1;
    min-height: 50vh;
    transition-duration: 0.4s;
}
.factions li > div[data-v-73e8f1a1]:first-of-type:hover {
    border-color: #ccc3a7;
}
.factions li > div:first-of-type h4[data-v-73e8f1a1] {
    grid-row-start: 2;
    text-align:center;
    transition-duration: 0.4s;
    z-index:2;
}
.factions li > div[data-v-73e8f1a1]:last-of-type {
    padding: 20px 0;
    /*display:none;*/
    max-width:0;
    flex-grow: 4;
    flex-basis:4;
    background-color: #010a13;
    transition-duration: 0.4s;
    overflow:hidden;
}
.factions p[data-v-73e8f1a1] {
    padding: 0;
    margin: 0;
    margin-block-end: 0;
    margin-block-start: 0;
    margin-inline-end: 0;
    margin-inline-start: 0;
    width: 18vw;
    text-align:justify;
}
.factions li > div.active[data-v-73e8f1a1]{
  padding: 20px 10px;
  display:block !important;
  max-width:20vw;
}
.gradient[data-v-73e8f1a1] {
    position: absolute;
    width: 100%;
    height: 100%;
    z-index:1;
    background: rgba(0,0,0,0);
    background: linear-gradient(0deg, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0.35) 50%, rgba(255,255,255,0) 100%);
}
.active p[data-v-73e8f1a1] {
    display: block !important;
}
aside[data-v-73e8f1a1] {
    display: grid;
    grid-template-columns: repeat(4,1fr);
    width: 100%;
    position: sticky;
    z-index: 80;
    text-align: center;
    background-color: rgba(0,0,0,0.75);
}
.background[data-v-73e8f1a1] {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    height: 100%;
    background: #28050D;
    background: linear-gradient(0deg, rgba(30, 6, 12, 0.5) 0%, rgba(40, 5, 13, 0) 25%);
    z-index: 0;
}
.background[data-v-73e8f1a1]::after {
    content: "";
    display: block;
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    height: 100%;
    background: #28050D;
    background: linear-gradient(0deg,rgba(40, 5, 13, 1) 0%, rgba(40, 5, 13, 0) 15%);
    z-index: 2;
    animation: brasier-data-v-73e8f1a1 3s ease 0s infinite normal forwards;
}
.spark[data-v-73e8f1a1] {
    display: block;
    position: relative;
    height: 6px;
    width: 1px;
    border-radius: 50%;
    z-index: 1;
    animation: spark-data-v-73e8f1a1 5s linear 0s infinite normal forwards;
    left: 0;
    bottom: -100%;
    background-color: rgb(255 154 154 / 46%);
    opacity: 0.7;
    box-shadow: 1px 1px 3px 3px rgb(176 49 67);
}
@keyframes spark-data-v-73e8f1a1{
0%{
    transform: rotate(30deg) translateX(0vw) translateY(-0vh);
}
100%{
      transform: rotate(-5deg) translateX(64vw) translateY(-100vh);
      opacity: 0;
}
}
@keyframes brasier-data-v-73e8f1a1 {
0%,
  75% {
    opacity: 1;
}
25%,
  100% {
    opacity: 0.95;
}
50% {
    opacity: 0.92;
}
12%,
  77%
  {
		opacity: 0.7;
}
37%
  {
		opacity: 0.75;
}
52% {
		opacity: 0.8;
}
}
@media screen and (max-width: 850px){
.mainscreen[data-v-73e8f1a1] {
      padding-top: 60px;
      top: 0;
      width: 100%;
      left: 0%;
      right: 0%;
      bottom: 0;
      margin: 0;
}
.intro p[data-v-73e8f1a1] {
      font-size: 5.2vw;
}
.lore-post h1[data-v-73e8f1a1]{
    font-size: 2.5em;
}
aside[data-v-73e8f1a1]{
  display:grid;
  grid-template-columns:1fr;
  grid-template-rows:repeat(4,1fr);
}
.factions[data-v-73e8f1a1] {
    flex-direction: column;
}
.factions p[data-v-73e8f1a1]{
    min-width: calc(100vw - 40px);
    min-height: 15vh;
}
.factions li[data-v-73e8f1a1]{
      flex-direction: column;
      max-height: unset;
}
.factions li > div[data-v-73e8f1a1]:first-of-type {
    grid-template-rows: 1fr;
    grid-template-columns: 1fr;
    background-position: 50% 65%;
    min-height: 15vh;
}
.factions li > div:first-of-type[title="Vidieu"][data-v-73e8f1a1] {
    background-position-y: 50%;
}
.factions li > div:first-of-type[title="Servenatifs"][data-v-73e8f1a1] {
    background-position-y: 5%;
}
.factions li > div:first-of-type[title="Mesaives"][data-v-73e8f1a1] {
    background-position-y: 40%;
}
.factions li > div[data-v-73e8f1a1]:last-of-type {
    padding: 0px 10px;
    max-width:100vw;
    flex-grow: 4;
    flex-basis:4;
    background-color: rgba(7,10,11,1);
    max-height: 0vh;
}
.factions li > div.active[data-v-73e8f1a1] {
    padding: 20px 10px;
    display: block !important;
    max-height: 100vh;
}
.h2[data-v-73e8f1a1], h2[data-v-73e8f1a1] {
    font-size: 2.5rem;
    text-transform: uppercase;
    letter-spacing: 0.35em;
}
}


@media screen and (max-width: 850px){
}


.double[data-v-52fda430]{
    display: flex;
    flex-wrap: nowrap;
    flex-direction: row;
    margin: 5px auto;
    width: 20vw;
    height: 33vw;
    max-width: 255px;
    max-height: 423px;
    position: relative;
    transition-duration: 0.2s;
    background-color: transparent;/*#a09d99;*/
    /* box-shadow: 0px 0px 23px -30px rgba(0,0,0,0.01); */
    filter: drop-shadow(rgba(0, 0, 0, 0.6) 0px 3px 3px);
    cursor: pointer;
    font-family: 'Alata', sans-serif;
    letter-spacing: 0.05em;
    border-radius: 5px;
    color: black;
}
.detailed[data-v-52fda430]
  {
    cursor: default;
}
.double[data-v-52fda430]:not(.detailed):hover{
    transform: scale3d(1.08,1.08,1.08);
    border-radius: 5px;
    z-index: 2;
    filter: drop-shadow(rgba(255, 255, 255, 0.8) 0px 0px 4px);
}
.double >div[data-v-52fda430]:not(.details){
    width: 100%;
    height: 100%;
    top:0;
    right: 0;
    position: absolute;
    border: solid 0px transparent;
    display: grid;
    grid-template-rows: 5fr 1.5fr 1.5fr;
    grid-template-columns: 1fr;
    padding: 20px 10px;
    border-radius: 5px;
    animation-name: a_cards-data-v-52fda430;
    animation-duration: 1s;
    animation-timing-function:cubic-bezier(0.455, 0.03, 0.515, 0.955);
    animation-iteration-count: 1;
    animation-play-state:paused
}
.double h1[data-v-52fda430] {
    padding-top: 1.0rem;
    font-family: 'MedievalSharp', cursive;
    font-size: 1.2rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    display: block;
    color: black;
    text-shadow: -1px -1px 0 white, 1px -1px 0 white, -1px 1px 0 white, 1px 1px 0 white;
    font-weight: bolder;
    text-align: center;
}
h1+span[data-v-52fda430]{
    text-align: center;
    color: white;
    text-shadow: -1px -1px 0 brown, 1px -1px 0 brown, -1px 1px 0 brown, 1px 1px 0 brown;
}
.carteF[data-v-52fda430]{
    justify-content: space-between;
    animation-fill-mode: forwards;
    animation-direction: alternate;
    /*background-position-x: 20%;
    background-size: 340%;
    background-position-y: 1%;*/
    background-size: cover;
    background-position: center;
    background-color: transparent;
    background-image: url(/build/images/bg.da3ba154.png);
    position: relative;
}
.illu[data-v-52fda430] {
    width: calc(100% - 12px);
    height: calc(100% - 20px);
    position: absolute;
    top: 9px;
    left: 9px;
    /*mix-blend-mode: multiply;
    background-position-x: 20%;
    background-size: 340%;
    background-position-y: 1%;*/
    background-size: cover;
    background-position: center;
    z-index: -1;
    grid-column-start: unset !important;
    margin: 0 !important;
}
.carteF > div[data-v-52fda430]:not(.illu) {
    display: flex;
    flex-flow: column;
    justify-content: space-between;
    z-index: 5;
}
.illu+div[data-v-52fda430]{
    display:block;
    background-size: cover;
    background-position: center;
    background-color: transparent;
    background-image: url(/build/images/border.7631cc46.png);
    position: absolute;
    z-index:3;
    width:100%;
    height:100%;
    pointer-events:none;
}
ul[data-v-52fda430]{
      list-style: none;
      margin-bottom: 0;
      padding-inline-start: 0;
      background-color: #a52a2ac7;
      color: white;
}
ul + ul[data-v-52fda430]{
      padding-left: 10px;
      z-index: 4;
}
.stats[data-v-52fda430] {
        display: grid;
        grid-template-columns: repeat(3,1fr);
        text-align: center;
        z-index: 4;
}
.stats > li > span[data-v-52fda430] {
        display: block;
        border: 1px solid white;
        border-left-width: 0;
        margin-bottom: 0;
        height: 50%;
        /*padding: 5px;*/
        font-size: 1.55em;
}
.stats > li > span[data-v-52fda430]:first-of-type {
        border-bottom-width: 0;
        grid-row-start: 3;
        grid-row-end: 3;
}
.stats > li:last-of-type span[data-v-52fda430] {
    border-right-width: 0;
}
.stats > li > span[data-v-52fda430]:last-of-type {
      padding: 0px 0 4px 0;
}
.stats > li > span:last-of-type > svg[data-v-52fda430] {
    transform: rotateZ(45deg);
}
.small-font[data-v-52fda430]{
      font-size: 0.8rem;
}
.details[data-v-52fda430] {
        display: none;
        background-color: #10100f;
        width: 11vw;
        top: 2%;
        right: -90%;
        height: fit-content;
        position: absolute;
        padding: 10px;
        z-index: 3;
        font-size: 0.7rem;
        border-radius: 5px;
        color: white;
}
.details span[data-v-52fda430] {
    color: brown;
    font-size: 1.02rem;
}
.detailed .details[data-v-52fda430]{
      display: block;
}
@keyframes a_cards-data-v-52fda430 {
0% {
		transform: rotateY(0deg);
}
50% {
		transform: rotateY(90deg);
}
100% {
		transform: rotateY(90deg);
}
}
@media screen and (max-width: 850px){
.double[data-v-52fda430]{
        font-size: 0.65rem;
        width: 25vw;
        height: 40vw;
}
.double h1[data-v-52fda430]{
      padding-top: 0rem;
}
.details[data-v-52fda430] {
    width: 20vw;
    font-size: 0.6rem;
    top: 5%;
    right: -85%;
}
.carteF[data-v-52fda430]{
    background-image: url(/build/images/mobile_bg.d36383c1.png);
}
.illu[data-v-52fda430]{
    width: calc(100% - 12px);
    height: 100%;
    top: 0;
    left: 7px;
    background-position-y: 20%;
    z-index: 2 !important;
}
}
.mobile-only[data-v-52fda430]{
    display: none !important;
}
.desktop-only[data-v-52fda430]{
    display: block !important;
}
@media screen and (max-width: 850px) and (orientation:portrait){
.double[data-v-52fda430]{
        font-size: .8rem;
        width: 64vw;
        height: 40vw;
        min-height: 150px;
        min-width: 240px;
}
.double > div[data-v-52fda430],
    .double >div[data-v-52fda430]:not(.details){
    grid-template-rows: 4fr 1fr;
    grid-template-columns: 1fr 4fr;
    padding: 10px;
}
.carteF[data-v-52fda430] {
    background-position-y: 20%;
}
.carteF > div[data-v-52fda430]:not(.illu),
  .carteF > div[data-v-52fda430] {
    grid-column-start: 2;
    margin: 10px 0;
    margin-bottom: 0;
    justify-content: flex-end;
    z-index: 4;
}
.stats[data-v-52fda430]{
    grid-column-start: 1;
    grid-column-end: 2;
    grid-row-start: 1;
    grid-row-end: 3;
    grid-template-columns: unset;
    grid-template-rows: repeat(3,1fr);
    border: 0px solid white;
    border-bottom-width: 0;
    height: 100%;
}
ul.stats[data-v-52fda430] {
    background-color: transparent;
    margin-left: 6px;
    z-index: 4;
}
.stats + ul[data-v-52fda430] {
    margin: 5px;
    z-index: 4;
}
.stats > li[data-v-52fda430] {
      display: flex;
      justify-content: space-between;
      height: 100%;
      border-bottom: 0px solid white;
}
.stats > li[data-v-52fda430]:first-of-type {
      border-left-width: 0;
}
.stats > li > span[data-v-52fda430]:first-of-type {
      margin: auto 4px auto;
}
.stats > li:first-of-type span[data-v-52fda430]:first-of-type{
  font-size: 1.5rem;
  margin-top: 5px;
}
.stats > li:nth-of-type(2) span[data-v-52fda430]:first-of-type{
  font-size: 1.08rem;
}
.stats > li:last-of-type span[data-v-52fda430]:first-of-type{
  font-size: 1.2rem;
  margin-top: 9px;
}
.stats > li span[data-v-52fda430]:last-of-type{
  font-size: 1.15rem;
  padding: unset;
}
.stats > li > span[data-v-52fda430] {
        width: 100%;
        margin: auto;
        border:unset;
        color: white;
        text-shadow: -1px -1px 0 brown, 1px -1px 0 brown, -1px 1px 0 brown, 1px 1px 0 brown;
}
.double h1[data-v-52fda430] {
    font-size: 1.1rem;
    margin-bottom: -4px;
}
h1+span[data-v-52fda430]{
    text-align: center;
}
ul + ul[data-v-52fda430]{
    padding-left: 0;
    background-color: transparent;
    color: white;
}
.mobile-only[data-v-52fda430]{
    display: block !important;
}
.desktop-only[data-v-52fda430]{
    display: none !important;
}
h1.small-font[data-v-52fda430]{
      font-size: 0.9rem;
}
h1.super-small-font[data-v-52fda430]{
    font-size: 0.7rem;
}
.details[data-v-52fda430] {
    width: 64vw;
    top: -100%;
    right: 0;
}
.double:first-of-type .details[data-v-52fda430] {
    top: 100%;
}
.illu+div[data-v-52fda430]{
    background-image: url(/build/images/mobile_border.78e96cf8.png);
    grid-column-start: unset !important;
    margin: unset !important;
    margin-bottom: unset !important;
    justify-content: unset !important;
    z-index: 3 !important;
}
}
  

ul[data-v-29411a58] {
    padding-inline-start: 0;
    list-style: none;
    display: flex;
    font-size: 4rem;
    margin: auto;
    justify-content: center;
    align-items: center;
}
.red[data-v-29411a58]{
    color:brown;
}
.unusedDice[data-v-29411a58]{
    color:rgb(40,40,40);
}
.not-relevant[data-v-29411a58]{
    opacity: .5;
}
li[data-v-29411a58]{
    margin: 2px 5px;
    height: 50px;
    line-height: 0;
    width: 50px;
}
.btn.btn-success[data-v-29411a58] {
	margin: auto;
  background: transparent;
  border-color: #4c4c4c;
  border-radius: 5px;
  border-image: linear-gradient(90deg, rgba(131,128,150,0), #4c4c4c, #4c4c4c, rgba(131,128,150,0)) 27;
  border-image-repeat: stretch;
  border-image-width: 1px 0;
  padding: 4px 15px 4px;
  font-size: 1.5rem;
  color: #979797;
  letter-spacing: 2px;
  font-family: 'MedievalSharp', cursive;
}
.btn.btn-success[data-v-29411a58]:focus {
  box-shadow: 0 0 0 0.2rem rgba(40,167,69,.0);
  border-color: brown;
  border-radius: 0;
  border-image: linear-gradient(90deg, rgba(131,128,150,0), brown, brown, rgba(131,128,150,0)) 27;
}
.btn-success[data-v-29411a58]:not(:disabled):hover{
  color: #f0e6d2;
  text-shadow: 0px 0px 2px white, 0 0 25px #f0e6d2;
  border-image: linear-gradient(90deg, rgba(131,128,150,0), #4c4c4c, #4c4c4c, rgba(131,128,150,0)) 27;
}
.btn-success[data-v-29411a58]:not(:disabled):active,
.show>.btn-success.dropdown-toggle[data-v-29411a58] {
    color: #f0e6d2;
    border-color: #f0e6d2;
    border-image: linear-gradient(90deg, rgba(131,128,150,0), #f0e6d2, #f0e6d2, rgba(131,128,150,0)) 27;
    background: radial-gradient(circle, rgba(255,255,255,0.25) 0%, rgba(131,128,150,0.02) 100%);
}
button[data-v-29411a58], select[data-v-29411a58] {
    margin-top: 15px;
}
select[data-v-29411a58]{
  border: 1px solid transparent;
  padding: 0.375rem 0.75rem;
  font-size: 1rem;
  line-height: 1.5;
}
select[data-v-29411a58]:first-of-type{
  border-radius: 5px 0 0 5px;
}
@media screen and (max-width: 850px){
ul[data-v-29411a58] {
      font-size: 3rem;
}
.btn.btn-success[data-v-29411a58] {
      margin-top: 15px;
}
}
@media screen and (max-width: 850px) and (orientation:portrait){}
  

div[data-v-413c1148] {
  padding: 20px;
  background-color: #282828;
  border-radius: 5px;
  width: 100%;
  height: 90%;
  margin: 20px;
}
span[data-v-413c1148]{
  display: block;
  margin: 2px;
}
span[data-v-413c1148]:first-of-type,
span[data-v-413c1148]:nth-of-type(2){
  font-size: 1rem;
}
span[data-v-413c1148]:nth-of-type(2){
  margin-right: 15px;
}
.red[data-v-413c1148]{
  color:brown;
}
.not-relevant[data-v-413c1148]{
  opacity: .5;
}
ul[data-v-413c1148] {
  padding-inline-start: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  font-size: 2rem;
  margin: auto;
  justify-content: center;
}
li[data-v-413c1148]{
  margin: 1px;
  display: flex;
  flex-direction: row;
  justify-content: flex-start;
  align-items: baseline;
}
@media screen and (max-width: 850px){
}
@media screen and (max-width: 850px) and (orientation:portrait){
span[data-v-413c1148]:first-of-type,
  span[data-v-413c1148]:nth-of-type(2){
    font-size: 0.75rem;
}
span[data-v-413c1148]:nth-of-type(2){
    margin-right: 10px;
}
ul[data-v-413c1148] {
    font-size: 2rem;
}
}


table[data-v-5557e8e3]{
  margin: 10px;
  width: 80%;
}
tr[data-v-5557e8e3]{

  border-width: 1px;
  border-right-width: 0;
  border-style: solid;
  border-image: linear-gradient(90deg, #515151, #515151, rgba(131,128,150,0)) 27;
  border-image-repeat: stretch;
  border-image-width: 1px 0 0 1px;
  min-height: 56px;
  min-width: 167px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
tr[data-v-5557e8e3]:last-of-type{
  border-image-width: 1px 0 1px 1px;
}
td input[data-v-5557e8e3]{
  display: none;
}
th[data-v-5557e8e3]{
  font-size: 1em;
  text-align: left;
}
input[type="checkbox"] + span[data-v-5557e8e3]{
  display: block;
  font-size: 2.5em;
}
.blanc[data-v-5557e8e3]{
  color: white;
}
.gris[data-v-5557e8e3]{
  color: grey;
}
.noir[data-v-5557e8e3]{
  color:white;
  background-color: #200756;
  background: rgb(32,7,86);
  background: linear-gradient(82deg, rgba(32,7,86,1) 50%, rgba(131,128,150,0) 100%);
}
label[data-v-5557e8e3]{
  margin-left: 1rem;
  cursor: pointer;
}
@media screen and (max-width: 850px){
}
@media screen and (max-width: 850px) and (orientation:portrait){
}


.characterSheet[data-v-363b4063]{
  width: 100%;
  height: calc(100% - 0px);
  background-color: black; /* #010a13;*/
  margin: 0;
  display: grid;
  grid-template-rows: 30px 110px 130px 1fr 50px 50px;
  grid-template-columns: repeat(3,1fr);
  justify-content: space-around;
  overflow: hidden;
  align-items: center;
}
.characterSheet > div[data-v-363b4063]:last-of-type{
  justify-content: space-evenly;
  display: flex;
  align-items: center;
}
.characterSheet > div[data-v-363b4063]:first-of-type {
    text-align: center;
    margin: 10px 0;
    grid-column-start: 1;
    grid-column-end: 4;
    grid-row-start: 2;
}
.characterCard[data-v-363b4063]
{
    grid-column-start: 2;
    grid-column-end: 2;
    grid-row-start: 2;
    grid-row-end: 5;
}
h1[data-v-363b4063]{
  font-family: 'MedievalSharp', cursive;
  background: -webkit-linear-gradient(#ffe4af, #62543a);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  font-size: 3.5rem;
  border-style: solid;
  border-color: #cdbd91;
  border-image: linear-gradient(90deg, rgba(131,128,150,0), #515151, #515151, rgba(131,128,150,0)) 27;
  border-image-repeat: stretch;
  border-image-width: 0 0 1px 0;
  border-width: 1px;
  margin: auto;
  width: fit-content;
  padding-right: 120px;
  padding-left: 120px;
}
.diceLine[data-v-363b4063]
{
    grid-column-start: 3;
    grid-column-end: 3;
    grid-row-start: 3;
    grid-row-end: 3;
}
.stat[data-v-363b4063]{
  grid-column-start: 1;
  grid-column-end: 1;
  grid-row-start: 3;
  grid-row-end: 5;
}
.changeCharacter[data-v-363b4063]{
  grid-column-start: 2;
  grid-column-end: 2;
  grid-row-start: 5;
  grid-row-end: 5;
}
.history[data-v-363b4063]{
  grid-column-start: 3;
  grid-column-end: 3;
  grid-row-start: 4;
  grid-row-end: 5;
  height: 100%;
  width: 90%;
}
.characterSheet > div:first-of-type input[data-v-363b4063] {
  background-color: brown;
    color: white;
    border: 0px solid white;
    border-bottom-width: 1px;
    text-align: center;
    font-size: 1.5em;
    width: 10vw;
    font-family: 'MedievalSharp', cursive;
    letter-spacing: 0.10em;
    background: linear-gradient(0deg, rgba(0,0,0,.5) 0%, rgba(11,20,27,0) 100%);
}
input[data-v-363b4063]:focus-visible {
    outline: none;
    border-color: brown !important;
}
.genreSelect[data-v-363b4063]{
  display: grid;
  margin: 10px auto;
  width: 40px;
  height: 40px;
}
.genreSelect input[data-v-363b4063]{
  display: none;
}
.genreSelect label[data-v-363b4063]{
  display: block;
  width: 100%;
  border: 1px solid white;
  background-color: white;
}
.genreSelect label[data-v-363b4063]:first-of-type{
  border-radius: 50%;
}
label span[data-v-363b4063] {
    display: block;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    margin: 1px;
    font-size: 1.6em;
    padding: 4px;
    border: 0px solid brown;
    background-color: brown;
}
input[type="radio"]:checked+label span[data-v-363b4063]{
  background-color: brown;
}
.genreSelect label[data-v-363b4063]:last-of-type{
  border-radius: 50%;
}
.shuffle[data-v-363b4063]{
  animation-iteration-count: 1;
  animation-name: slide_in-data-v-363b4063;
  animation-duration: 1.5s;
  animation-timing-function: ease-in-out;
}
.btn.btn-success[data-v-363b4063] {
	margin: auto;
	background-color: brown;
  background: transparent;
  border-color: brown;
  border-radius: 5px;
  border-image: linear-gradient(90deg, rgba(131,128,150,0), brown, brown, rgba(131,128,150,0)) 27;
  border-image-repeat: stretch;
  border-image-width: 1px 0;
  padding: 4px 15px 4px;
  font-size: 1.5rem;
  color: brown;
  letter-spacing: 2px;
  font-family: 'MedievalSharp', cursive;
  box-shadow: none;
}
.btn.btn-success[data-v-363b4063]:focus {
  border-image: linear-gradient(90deg, rgba(131,128,150,0), white, white, rgba(131,128,150,0)) 27;
  box-shadow: none;
}
.btn-success.focus[data-v-363b4063], .btn-success[data-v-363b4063]:focus{
  box-shadow: none;
}
.btn-success[data-v-363b4063]:not(:disabled):hover{
  color: #f0e6d2;
  text-shadow: 0px 0px 2px white, 0 0 25px #f0e6d2;
  border-image: linear-gradient(90deg, rgba(131,128,150,0), brown, brown, rgba(131,128,150,0)) 27;
}
.btn-success[data-v-363b4063]:not(:disabled):active, 
.show>.btn-success.dropdown-toggle[data-v-363b4063] {
    color: #f0e6d2;
    border-color: #f0e6d2;
    border-image: linear-gradient(90deg, rgba(131,128,150,0), #f0e6d2, #f0e6d2, rgba(131,128,150,0)) 27;
    background: radial-gradient(circle, rgba(255,255,255,0.25) 0%, rgba(131,128,150,0.02) 100%);
}
@keyframes slide_in-data-v-363b4063{
0%{
    transform: translate(-10vw,100vh) rotate3d(5, 1, 1, 41deg);
}
100% {
    transform: translateX(0);
}
}
@media screen and (max-width: 850px){
.characterSheet[data-v-363b4063]{
    height: 100vh;
    align-items: center;
    overflow: auto;
    display: flex;
    flex-direction: column;
}
.characterSheet > div:first-of-type input[data-v-363b4063] {
    width: 30vw;
}
}
@media screen and (max-width: 850px) and (orientation:portrait){
.characterSheet[data-v-363b4063] {
    justify-content: flex-start;
}
.characterSheet > div[data-v-363b4063]:first-of-type {
    margin: 110px 0 30px 0;
}
.characterSheet > div[data-v-363b4063]:last-of-type{
    flex-direction: column;
}
.characterSheet > div:first-of-type input[data-v-363b4063] {
    width: 50vw;
}
.h1[data-v-363b4063], h1[data-v-363b4063] {
    font-size: 1.8rem;
    padding-right: 0px;
    padding-left: 0px;
}
.changeCharacter[data-v-363b4063]{
    margin-bottom: 40px;
}
.stat[data-v-363b4063]{
    order:2;
    width: calc(100% - 32px);
}
.btn.btn-success[data-v-363b4063]:last-of-type{
    order:3;
    margin: 15px 0 25px 0;
}
}
@media screen and (max-width: 850px) and (max-height: 100px){
.characterSheet > div[data-v-363b4063]:last-of-type{
    display: none;
}
}
@media screen and (max-width: 850px) and (max-height: 400px) and (orientation:portrait){
.characterSheet > div[data-v-363b4063]:last-of-type{
    display: none;
}
}


.board[data-v-12e93555]{
  width: 99vw;
  height: calc(99vh - 30px);
  background-color: #010a13;
  margin: auto;
  display: flex;
  flex-direction: column;
  justify-content: space-around;
  overflow: hidden;
}
.board > div[data-v-12e93555]:last-of-type{
  justify-content: space-evenly;
  display: flex;
  align-items: center;
}
.board > div[data-v-12e93555]:first-of-type {
    text-align: center;
    margin: 10px 0;
}
.board > div:first-of-type input[data-v-12e93555] {
  background-color: black;
    color: white;
    border: 0px solid white;
    border-bottom-width: 1px;
    text-align: center;
    font-size: 1.5em;
    width: 10vw;
    font-family: 'MedievalSharp', cursive;
    letter-spacing: 0.10em;
    background: linear-gradient(0deg, rgb(155 153 153 / 20%) 0%, rgba(11,20,27,0) 100%)
}
input[data-v-12e93555]:focus-visible {
    outline: none;
    border-color: brown !important;
}
.genreSelect[data-v-12e93555]{
  display: grid;
  margin: 10px auto;
  grid-template-columns: repeat(2,1fr);
  width: 80px;
  height: 40px;
}
.genreSelect input[data-v-12e93555]{
  display: none;
}
.genreSelect label[data-v-12e93555]{
  display: block;
  width: 100%;
  border: 1px solid white;
  background-color: white;
  cursor: pointer;
}
.genreSelect label[data-v-12e93555]:first-of-type{
  border-radius: 50% 0 0 50%;
}
label span[data-v-12e93555] {
    display: block;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    margin: 1px;
    font-size: 1.6em;
    padding: 4px;
    border: 0px solid brown;
    background-color: black;
}
input[type="radio"]:checked+label span[data-v-12e93555]{
  background-color: brown;
}
.genreSelect label[data-v-12e93555]:last-of-type{
  border-radius: 0 50% 50% 0;
}
.shuffle[data-v-12e93555]{
  animation-iteration-count: 1;
  animation-name: slide_in-data-v-12e93555;
  animation-duration: 1.5s;
  animation-timing-function: ease-in-out;
}
@keyframes slide_in-data-v-12e93555{
0%{
    transform: translate(-10vw,100vh) rotate3d(5, 1, 1, 41deg);
}
100% {
    transform: translateX(0);
}
}
@media screen and (max-width: 850px){
.board[data-v-12e93555]{
  height: 100vh;
  align-items: center;
  overflow: auto;
}
.board > div:first-of-type input[data-v-12e93555] {
    width: 30vw;
}
}
@media screen and (max-width: 850px) and (orientation:portrait){
.board[data-v-12e93555] {
    justify-content: center;
}
.board > div[data-v-12e93555]:first-of-type {
    margin: 10px 0 30px 0;
}
.board > div[data-v-12e93555]:last-of-type{
    flex-direction: column;
}
.board > div:first-of-type input[data-v-12e93555] {
    width: 50vw;
}
}
@media screen and (max-width: 850px) and (max-height: 100px){
.board > div[data-v-12e93555]:last-of-type{
    display: none;
}
}
@media screen and (max-width: 850px) and (max-height: 400px) and (orientation:portrait){
.board > div[data-v-12e93555]:last-of-type{
    display: none;
}
}


.board[data-v-091d44e9]{
  width: 100%;
  height: calc(100vh - 30px);
  background-color: #010a13;
  margin: auto;
  display: flex;
  flex-direction: column;
  justify-content: space-around;
  overflow: hidden;
  background-image: url(https://www.vagabonds-jdr.fr/assets/images/illustration/page/character-selec/background/tavern.png);
  background-size: cover;
}
.board > div[data-v-091d44e9]:last-of-type{
  justify-content: space-evenly;
  display: flex;
  align-items: center;
}
.board > div[data-v-091d44e9]:first-of-type {
    text-align: center;
    height: 100%;
}
.board > div:first-of-type input[data-v-091d44e9] {
  background-color: black;
    color: white;
    border: 0px solid white;
    border-bottom-width: 1px;
    text-align: center;
    font-size: 1.5em;
    width: 10vw;
    font-family: 'MedievalSharp', cursive;
    letter-spacing: 0.10em;
    background: linear-gradient(0deg, rgba(0,0,0,.5) 0%, rgba(11,20,27,0) 100%);
}
input[data-v-091d44e9]:focus-visible {
    outline: none;
    border-color: brown !important;
}
.genreSelect[data-v-091d44e9]{
  display: grid;
  margin: 10px auto;
  grid-template-columns: repeat(2,1fr);
  width: 80px;
  height: 40px;
}
.genreSelect input[data-v-091d44e9]{
  display: none;
}
.genreSelect label[data-v-091d44e9]{
  display: block;
  width: 100%;
  border: 1px solid white;
  background-color: white;
}
.genreSelect label[data-v-091d44e9]:first-of-type{
  border-radius: 50% 0 0 50%;
}
label span[data-v-091d44e9] {
    display: block;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    margin: 1px;
    font-size: 1.6em;
    padding: 4px;
    border: 0px solid brown;
    background-color: black;
}
input[type="radio"]:checked+label span[data-v-091d44e9]{
  background-color: brown;
}
.genreSelect label[data-v-091d44e9]:last-of-type{
  border-radius: 0 50% 50% 0;
}
.shuffle[data-v-091d44e9]{
  animation-iteration-count: 1;
  animation-name: slide_in-data-v-091d44e9;
  animation-duration: 1.5s;
  animation-timing-function: ease-in-out;
}
@keyframes slide_in-data-v-091d44e9{
0%{
    transform: translate(-10vw,100vh) rotate3d(5, 1, 1, 41deg);
}
100% {
    transform: translateX(0);
}
}
@media screen and (max-width: 850px){
.board[data-v-091d44e9]{
  height: 100vh;
  align-items: center;
  overflow: auto;
}
.board > div:first-of-type input[data-v-091d44e9] {
    width: 30vw;
}
}
@media screen and (max-width: 850px) and (orientation:portrait){
.board[data-v-091d44e9] {
    justify-content: center;
}
.board > div[data-v-091d44e9]:first-of-type {
    margin: 10px 0 30px 0;
}
.board > div[data-v-091d44e9]:last-of-type{
    flex-direction: column;
}
.board > div:first-of-type input[data-v-091d44e9] {
    width: 50vw;
}
}
@media screen and (max-width: 850px) and (max-height: 100px){
.board > div[data-v-091d44e9]:last-of-type{
    display: none;
}
}
@media screen and (max-width: 850px) and (max-height: 400px) and (orientation:portrait){
.board > div[data-v-091d44e9]:last-of-type{
    display: none;
}
}


.mainscreen[data-v-306c7a65] {
    margin: 0 15%;
    background-color: transparent;
    overflow: auto;
    z-index: 1;
    padding: 2%;
    padding-top: 0px;
    border-left-style: solid;
    border-right-style: solid;
    border-width: 0px;
    border-color: #ccc3a7;
    padding-bottom: 30px;
    display: block;
    position: relative;
    overflow-x: hidden;
}
article[data-v-306c7a65] {
    border: 1px solid #1e282d;
    margin: 30px 10px;
    padding: 10px;
    background-color: #010a13;
}
.h2[data-v-306c7a65], h2[data-v-306c7a65] {
    font-size: 1rem;
    text-transform: capitalize;
    letter-spacing: 0.25em;
}
.landscape[data-v-306c7a65]{
    width: 100%;
    height: 95vh;
    position: relative;
    pointer-events: none;
    margin-top: -30px;
}
.landscape div[data-v-306c7a65]:first-of-type{
    background: rgba(0,0,0,0);
    background: linear-gradient(0deg, rgba(0,0,0,1) 0%, rgba(0,0,0,0.5) 30%, rgba(255,255,255,0) 100%);
    height: 110%;
    width: 100%;
    position: absolute;
    z-index: 1;
}
.landscape div + div[data-v-306c7a65] {
    background-image: url('https://www.vagabonds-jdr.fr/assets/images/illustration/cover/home4up.jpg');
    position: relative;
    height: 110%;
    z-index: 0;
    background-size: cover;
    background-position-x: center;
    background-position-y: 80%;
}
.titre[data-v-306c7a65]{
    width: 100%;
    z-index: 1;
    display: block;
    position: relative;
    margin-top: calc(-30vh + 30px);
    margin-bottom: 2.5vh;
}
.titre h1[data-v-306c7a65] {
    display: block;
    margin: auto;
    width: fit-content;
    letter-spacing: 5px;
    font-family: 'MedievalSharp', cursive;
    text-transform: uppercase;
    font-size: 5rem;
    line-height: .6em;
}
.titre h1 span[data-v-306c7a65]{
    font-size: 1rem;
}
.titre h1 + span[data-v-306c7a65] {
    font-size: 1.55rem;
    display: block;
    margin: auto;
    width: fit-content;
    margin-top: 13vh;
    text-transform: uppercase;
}
h3[data-v-306c7a65]{
  text-align:center;
}
.welcome[data-v-306c7a65]{
  display:grid;
}
.affiche[data-v-306c7a65] {
    display: grid;
    grid-template-rows: 50px 250px;
    align-items: stretch;
    justify-items: stretch;
    overflow-x: auto;
    margin: 0px -40px 15px;
    padding: 35px 40px 0;
    border: 0px solid #1e282d;
    border-bottom-width: 1px;
    background: rgba(0,0,0,0);
    background: linear-gradient(0deg, rgba(7,10,11,1) 0%, rgba(11,20,27,0) 100%);
}
.affiche > div[data-v-306c7a65] {
    overflow-x: hidden;
}
.affiche > div > div[data-v-306c7a65]
{
  display: grid;
  grid-template-columns: repeat(3,1fr);
  grid-template-rows: 1fr;
  overflow-x: auto;
}
.affiche article[data-v-306c7a65] {
    display: grid;
    grid-template-columns: 1fr 3fr;
    font-size: 12px;
    height: calc(100% - 30px);
    padding: 0;
    text-align: left;
    margin-top: 0;
    background-color: rgba(1,10,19,100);
    transition-duration: 0.2s;
    transition-timing-function: ease;
}
.affiche article[data-v-306c7a65]:hover {
    border: solid 1px #ccc3a7;
    background: rgba(1,10,19,100);
    /*background: linear-gradient(6deg, rgba(53,57,57,1) 0%, rgba(26,33,38,1) 50%, rgba(1,10,19,1) 100%);*/
    transition-duration: 0.2s;
}
.affiche article h3[data-v-306c7a65] {
    margin-top: 10px;
    font-size: 18px;
    font-weight: bold;
    letter-spacing: 0.03em;
    text-align: left;
}
.affiche article > div[data-v-306c7a65]:first-of-type {
    grid-column-start: 1;
    grid-column-end: 2;
    background-position: center;
    background-size: cover;
    min-width: 150px;
}
.affiche article > div[data-v-306c7a65]:last-of-type {
    padding: 10px;
    min-width: 220px;
    overflow-y: hidden;
    height: 200px;
}
.affiche article > div:last-of-type > div[data-v-306c7a65] {
    color: brown;
    font-weight: bold;
}
.news[data-v-306c7a65]{
  display:grid;
}
.news article[data-v-306c7a65] {
    display: grid;
    grid-template-columns: 1fr 2fr;
    border-left-width: 0;
    border-right-width: 0;
    border-bottom-color: transparent;
    margin: 0px;
    padding: 20px 10px;
    color: #a4a095;
    background-color: transparent;
    padding-right: 30px;
}
.news a:hover article[data-v-306c7a65] {
    padding-left: 30px;
    padding-right: 0px;
    border-left-width: 1px;
    border-right-width: 1px;
    border-bottom-width: 1px;
    transition-duration: 0.2s;
    transition-timing-function: ease;
    border-color:#ccc3a7;
}
.news article > div[data-v-306c7a65] {
    margin-top: auto;
    margin-bottom: auto;
    padding-top: 10px;
    padding-bottom: 10px;
    padding-left: 10px;
}
.news article > div > div[data-v-306c7a65] {
  margin-bottom: 0.8em;
  color: brown;
  font-weight: bold;
}
.news article > img[data-v-306c7a65] {
    margin: auto;
    max-width: 26.25rem;
}
.news article h3[data-v-306c7a65] {
    text-align: left;
    color: #f0e6d2;
}
@media screen and (max-width: 850px){
.titre[data-v-306c7a65]{
      margin-top: -30vh;
      margin-bottom: 2.5vh;
}
.titre h1[data-v-306c7a65] {
      letter-spacing: -2px;
      font-size: 3.5rem;
      line-height: .6em;
}
.titre h1 span[data-v-306c7a65]{
        font-size: 1rem;
}
.titre h1 + span[data-v-306c7a65] {
        font-size: 1.05rem;
        margin-top: 6vh;
        text-align:center;
}
.mainscreen[data-v-306c7a65] {
        padding-top: 0px;
        top: 0;
        width: 100%;
        left: 0%;
        right: 0%;
        bottom: 0;
        margin: 0;
}
.affiche article h3[data-v-306c7a65] {
    margin-top: 0.4375rem;
    font-size: 0.8125rem;
}
.affiche article[data-v-306c7a65] {
      grid-template-columns: 1fr 2fr;
}
.news article[data-v-306c7a65] {
      display: flex;
      flex-direction: column;
      max-width: 400px;
      margin: 15px auto;
}
.news a:hover article[data-v-306c7a65] {
      padding: 20px 10px;
}
.news article > div[data-v-306c7a65] {
      padding-left: 0;
}
.news article > img[data-v-306c7a65] {
      max-width: 100%;
}
}


.mainscreen[data-v-a7cecd9c] {
    margin: 0 15%;
    background-color: #010a13;
    overflow: auto;
    z-index: 0;
    padding: 2%;
    padding-top: 0px;
    border-left-style: solid;
    border-right-style: solid;
    border-width: 0px;
    border-color: #ccc3a7;
    padding-bottom: 30px;
    display: block;
    position: relative;
}
article[data-v-a7cecd9c] {
    padding-left: 5px;
    padding-right: 5px;
    text-align: center;
}
h3[data-v-a7cecd9c]{
  text-align:center;
}
.mainscreen>article>table[data-v-a7cecd9c] {
    margin-top: 50PX;
}
table[data-v-a7cecd9c] {
    border-collapse: collapse;
}
tbody[data-v-a7cecd9c] {
    display: table-row-group;
    vertical-align: middle;
    border-color: inherit;
}
th[data-v-a7cecd9c] {
    background-color: #f0e6d2;
    color: #010a13;
    font-size: 13px;
}
tr[data-v-a7cecd9c] {
    display: table-row;
    vertical-align: inherit;
    border-color: inherit;
}
td[data-v-a7cecd9c] {
    background-color: inherit;
    border: 1px solid #1e282d;
    text-align: center;
    font-size: 14px;
    /* text-align: justify; */
}
@media screen and (max-width: 850px){
.mainscreen[data-v-a7cecd9c] {
        padding-top: 50px;
        top: 0;
        width: 100%;
        left: 0%;
        right: 0%;
        bottom: 0;
        margin: 0;
}
}


.side-bar-show[data-v-b4d17904] {
    right: 0;
    bottom: 0;
    display: flex;
    position: absolute;
    background-color: #010a13;
    align-content: center;
    border: 1px solid #1e282d;
    border-top-width: 0;
    text-align: center;
    /* transition-duration: 0.4s; */
    transition: all 0.20s;
    transition-timing-function: ease-in;
    z-index: 2;
    flex-direction: column;
    overflow-y:auto;
    padding-top:20px;
    filter: drop-shadow(0 0 3px rgba(0, 0, 0, 0.5));
}
.side-bar-show div[data-v-b4d17904] {
    margin: 6.6px 26.6px;
    text-align: justify;
    padding: 2%;
    overflow-x: auto;
    overflow-y: hidden;
    background-position: 50% 50%;
    background-repeat: no-repeat;
    background-size: cover;
    color: #cdbd91;
    flex-grow: 0;
    flex-shrink: 0;
    z-index: 2;
    position: relative;
}
div.location-desc[data-v-b4d17904]{
  z-index: 3;
  overflow: unset;
}
.location-desc > p[data-v-b4d17904]:first-of-type{
  margin-top:140px;
}
.backgroundHex[data-v-b4d17904]{
  position: absolute;
  width: calc(100% - 40px);
  height: 400px;
  background-image: url("https://www.vagabonds-jdr.fr/assets/images/illustration/hex/Oceans1.jpg");
  background-size: cover;
  background-position: center;
  margin-top: -20px;
  right: 0;
}
.backgroundHex span[data-v-b4d17904]{
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  z-index: 1;
}
.backgroundHex span[data-v-b4d17904]:first-of-type
{
  background: linear-gradient(90deg, rgba(1,10,19,1) 0%, rgba(1,10,19,0.25) 30%, rgba(1,10,19,0.25) 100%);
}
.backgroundHex span[data-v-b4d17904]:nth-of-type(2)
{
  background: linear-gradient(0deg, rgba(1,10,19,1) 0%, rgba(1,10,19,.5) 40%, rgba(1,10,19,0.25) 50%, rgba(1,10,19,0.25) 100%);
}
.GM-part div[data-v-b4d17904] {
	margin-left: 0;
	margin-right: 0;
}
h3[data-v-b4d17904]{
  text-align: center;
  text-transform: uppercase;
  color: #f0e6d2;
  letter-spacing: 0.05em;
}
.topTitle[data-v-b4d17904]{
  padding-left: 15px;
}
.subTitle[data-v-b4d17904]{
  text-transform: capitalize;
  opacity: 0.75;
  font-weight: normal;
  margin-top: -0.85rem;
  padding-left: 15px;
}
.gm-desc[data-v-b4d17904]{
  margin-bottom: 0;
}
.gm-desc[data-v-b4d17904] a {
    font-weight: bolder;
}
.quest[data-v-b4d17904] {
    border: solid 1px #010a13;
    line-height: 1.8;
    font-size: 0.8em;
    cursor: pointer;
    transition-duration: 0.2s;
    transition-timing-function: ease;
    color: #cdbd91;
    padding: 0 8% 0 0;
    margin: 0;
    height: 130px;
}
.quest[data-v-b4d17904]:focus-visible {
    outline: 1px white solid;
}
.quest h3[data-v-b4d17904] {
    line-height: 100%;
    font-weight: bold;
    line-height: 100%;
    font-size: 1.1em;
    padding: 8% 0 0 0;
    margin-top: 10px;
}
.side-bar-show .create-event[data-v-b4d17904] {
    text-align: center;
    font-size: 5em;
    background: #000000;
    background: linear-gradient(0deg, rgba(0, 0, 0, 0.25) 0%, rgba(0, 0, 0, 0) 100%);
    color: #373737;
    border: 1px solid #373737;
}
.quest[data-v-b4d17904]:hover {
    border: solid 1px #ccc3a7;
}
.side-bar-show .create-event[data-v-b4d17904]:hover {
    color: #ccc3a7;
}
h4[data-v-b4d17904]{
    font-size: 16px;
    font-family: 'Spartan', sans-serif;
    color: #f0e6d2;
    text-align:center;
    font-weight:bold;
    margin-top:14px;
    margin-bottom:14px;
    display:block;
}
span.toggleBtn[data-v-b4d17904] {
    position: absolute;
    left: 16px;
    top: 30px;
    transform: rotateZ(45deg);
    background-color: #010a13;
    height: 30px;
    width: 30px;
    border: 1px solid red;
    filter: drop-shadow(0 0 3px rgba(0, 0, 0, 0.5));
    transition: all 0.2s;
    z-index: 10;
}
span.toggleBtn[data-v-b4d17904]:hover {
	transform: rotateZ(405deg) !important;
}
span.toggleBtn:hover button[data-v-b4d17904] {
	transform: rotateZ(-405deg) !important;
}
.toggleBtn > button[data-v-b4d17904] {
    background-color: transparent;
    color: red;
    transform: rotateZ(-45deg);
    border: 0px solid;
    margin: auto;
    width: 30px;
    height: 30px;
    cursor:pointer;
    outline:none;
    text-decoration: none;
    transition: all 0.2s;
}
.open-ai[data-v-b4d17904] {
    margin: 13px 10px 10px 10px;
    text-align: center;
    width: calc(100% - 20px);
    background: linear-gradient(0deg, #613908, #977413);
    border: 1px solid #cdbd91;
    color: #cdbd91;
    font-weight: bolder;
    padding: 8px 3px;
    filter: drop-shadow(0 0 3px rgba(0, 0, 0, 0.5));
    text-transform: uppercase;
    font-size: 0.8rem;
}
.gm-desc[data-v-b4d17904] .reminder > span:first-of-type{
  font-weight: bolder;
  cursor: pointer;
}
.gm-desc[data-v-b4d17904] .reminder > span:nth-of-type(2){
  display: none;
  font-style: italic;
  background-color: black;
  border: 1px solid #6c757d;
  padding: 10px 15px;
  position: absolute;
}
.gm-desc[data-v-b4d17904] .reminder:hover > span:nth-of-type(2){
  display: block;
}
.gm-desc[data-v-b4d17904] .reminder:hover span:nth-of-type(2).character,
.gm-desc[data-v-b4d17904] .reminder:hover span:nth-of-type(2).monster{
    display: flex;
    flex-direction: row;
    align-items: center;
    padding: 8px 10px;
    filter: drop-shadow(-2px 0px 0px #000) drop-shadow(2px 0px 0px #000) drop-shadow(0px -2px 0px #000) drop-shadow(0px 2px 0px #000) drop-shadow(0 0 10px rgba(0, 0, 0, 0.8));
}
.gm-desc[data-v-b4d17904] .reminder:hover span:nth-of-type(2).character{
  padding: 0;
}
.gm-desc[data-v-b4d17904] .reminder:hover span:nth-of-type(2).character p,
.gm-desc[data-v-b4d17904] .reminder:hover span:nth-of-type(2).monster p {
    display: block;
    text-align: left;
    align-self: self-start;
    margin-bottom: 0;
    margin-left: 8px;
}
.gm-desc[data-v-b4d17904] .reminder:hover span:nth-of-type(2).character p{
  margin-top: 6px;
  font-style: normal;
}
.gm-desc[data-v-b4d17904] hr::before,
.gm-desc[data-v-b4d17904] hr::after{
    content: '';
    width: 12px;
    height: 12px;
    transform: rotateZ(45deg);
    background-color: transparent;
    border: 1px solid #6c757d;
    display: block;
    position: absolute;
    top: -6px;
}
.gm-desc[data-v-b4d17904] hr::before{
    left: -14px;
}
.gm-desc[data-v-b4d17904] hr::after{
    right: -14px;
}
.gm-desc[data-v-b4d17904] hr{
    border-top: 1px solid #6c757d;
    position: relative;
    width: calc(70% - 28px);
    margin-top: 1.5rem;
    margin-bottom: 1.5rem;
    opacity: .6;
}
.gm-desc[data-v-b4d17904] a {
    color: #0595a9;
}
@media screen and (min-width: 850px){
.side-bar-show[data-v-b4d17904] {
    width: 400px;
    height: calc(100% - 30px);
}
.masquee[data-v-b4d17904] {
    right: -400px;
}
}
@media screen and (max-width: 850px){
.side-bar-show[data-v-b4d17904] {
    max-height: 100%;
    padding-top:70px;
    width: 100%;
    border-left-width: 0px;
}
.player-mode .topTitle[data-v-b4d17904]{
  padding-left: 0;
  padding-right: 20px;
}
.player-mode[data-v-b4d17904]{
  padding-top:5px;
  border-top-width: 1px;
}
.masquee[data-v-b4d17904] {
    bottom: -100%;
}
span.toggleBtn[data-v-b4d17904] {
    top:25px;
    right: 26px;
    left: unset;
}
.player-mode span.toggleBtn[data-v-b4d17904] {
    height: 25px;
    width: 25px;
}
.player-mode .toggleBtn > button[data-v-b4d17904] {
    width: 25px;
    height: 25px;
    font-size: 0.9rem;
}
.player-mode span.toggleBtn[data-v-b4d17904] {
    top:20px;
}
.backgroundHex[data-v-b4d17904]{
  margin-top: -70px;
}
}


.select[data-v-3fe8225c]{
    position: relative;
    display: inline-block;
    width: 250px;
}
.selected[data-v-3fe8225c]{
    color: #ffffff;
    padding: 8px 16px;
    border: 1px solid #cdbd91;
    cursor: pointer;
    user-select: none;
    display: block;
    background-color: rgba(3, 12, 21, 0.9);
    width: 100%;
    display: flex;
    flex-direction: row;
    align-items: center;
}
.open[data-v-3fe8225c]{
    display: block;
    position: absolute;
    background-color: rgba(3, 12, 21, 0.9);
    border: 1px solid #cdbd91;
    border-color: rgba(0, 0, 0, 0.1) #cdbd91 #cdbd91 #cdbd91;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 99;
    padding-inline-start:0;
    width: 100%;
    max-height: 500px;
    overflow-y: auto;
}
.open li[data-v-3fe8225c],
.closed li[data-v-3fe8225c]{
    color: #ffffff;
    padding: 8px 16px;
    border: 1px solid transparent;
    border-color: transparent transparent rgba(0, 0, 0, 0.1) transparent;
    cursor: pointer;
    user-select: none;
    list-style: none;
    display: flex;
    flex-direction: row;
    align-items: center;
}
.selected img[data-v-3fe8225c],
li img[data-v-3fe8225c]{
    margin-right: 5px;
}
.same-as-selected[data-v-3fe8225c]{
    background-color: blue;
}
.closed[data-v-3fe8225c]{
    display: none;
}
@media screen and (max-width: 850px){
}


.edit-menu[data-v-535fe2b0]{
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
}
input[type="radio"] + label[data-v-535fe2b0]{
    width: 20%;
    border: 1px solid #cdbd91;
    padding: 2px 5px;
}
input[type="radio"]:checked + label[data-v-535fe2b0]{
    border-color: #cdbd91c2;
    background-color: rgba(0, 108, 125,0.5);
    color: rgb(240, 230, 210);
}
.tab[data-v-535fe2b0]{
    display: none;
}
input[type="radio"][data-v-535fe2b0]{
    display: none;
}
input[type="radio"]:checked + label + .tab[data-v-535fe2b0]{
    display: block;
    order: 4;
}
textarea[data-v-535fe2b0]{
    overflow: auto;
    resize: vertical;
    width: 100%;
    min-height: 500px;
    margin-top: 5px;
}
@media screen and (max-width: 850px){
}


.modal-backdrop[data-v-0d2183cc] {
    background-color: rgba(3, 12, 21, 0.85);
}
.modal-dialog[data-v-0d2183cc]{
    border-style: solid;
    border-color: #cdbd91;
    border-image: linear-gradient(rgba(131,128,150,0), #cdbd91,rgba(131,128,150,0)) 27;
    border-image-repeat: stretch;
    border-image-width: 0 1px;
    border-width: 1px;
    margin: 10% 20%;
    max-width:100%;
    color: #cdbd91c2;
    filter: drop-shadow(0 0 3px rgba(0, 0, 0, 0.5));
}
.modal-content[data-v-0d2183cc]{
    background-color:unset;
    border-radius: unset;
    border:unset;
}
header[data-v-0d2183cc]{
    display: block;
    width: 100%;
    background-position: 50% 50%;
    background-repeat: no-repeat;
    background-size: cover;
    border-bottom: solid 1px #cdbd91;
    position: relative;
}
header h3[data-v-0d2183cc],
header h1[data-v-0d2183cc],
.edit-h1[data-v-0d2183cc] {
    text-align: center;
    position: relative;
    color: #f0e6d2;
}
h1[data-v-0d2183cc],
.edit-h1[data-v-0d2183cc] {
    margin: 0;
    position: fixed;
    padding-left: 85%;
    padding-bottom: 30px;
    letter-spacing: 0.7px;
    text-align: right;
    font-family: 'MedievalSharp', cursive;
    text-transform: uppercase;
}
.private-event[data-v-0d2183cc] {
    position: absolute;
    bottom: 15px;
    right: 15px;
    background-color: rgba(0, 0, 0, 0.7);
    color: #cdbd91;
    padding: 5px 15px;
    border-radius: 5px;
    display: block;
    font-size: 1.25em;
    z-index: 1;
    cursor: default;
}
article[data-v-0d2183cc] h3{
    font-size:1.17em;
    font-weight:bold;
}
article[data-v-0d2183cc] h3 a{
    text-transform: capitalize;
    text-decoration: underline;
}
header h1[data-v-0d2183cc],
.edit-h1[data-v-0d2183cc] {
    padding: 8% 10% 0 10%;
}
header input[data-v-0d2183cc]{
    position: relative;
    display: block;
    background-color: transparent;
    z-index: 1;
    margin: auto;
    color: #cdbd91;
    border-width: 0;
    border-bottom-width: 1px;
    width: 52em;
    max-width: 80%;
    padding: 2% 0 5px 0;
    margin-bottom: calc(8% - 5px);
}
.edit-h1[data-v-0d2183cc] {
    position: relative;
    margin-block-start: 0.67em;
    margin-block-end: 0.67em;
    margin-inline-start: 0px;
    margin-inline-end: 0px;
    unicode-bidi: isolate;
    font-weight: 500;
    line-height: 1.2;
    font-size: 2.5rem;
    margin: auto;
    text-align: center;
    width: 15em;
    padding-left: 0;
    padding-right: 0;
}
header input[data-v-0d2183cc]:focus-visible {
        outline: none;
        border-color: brown !important;
}
header h3[data-v-0d2183cc] {
    padding: 2% 10% 8% 10%;
}
article[data-v-0d2183cc] {
    background-color: rgba(3, 12, 21, 0.9);
    padding-bottom: 7em !important;
}
.edit[data-v-0d2183cc],
.save[data-v-0d2183cc]{
    width: fit-content;
    padding: 2px 8px;
    background: transparent;
    color: #cdbd91c2;
    border: 1px solid wheat;
    border-color: #cdbd91;
    float: right;
}
.btn-bar[data-v-0d2183cc]{
    display: flex;
    justify-content: flex-end;
}
.btn-bar > button[data-v-0d2183cc]{
    margin-left: 4px;
}
article[data-v-0d2183cc],
article[data-v-0d2183cc] p {
    margin: 0;
    padding: 1em 10%;
}
article[data-v-0d2183cc] p {
    text-align: justify;
}
table[data-v-0d2183cc] {
    border-collapse: collapse;
}
article[data-v-0d2183cc] table th {
    background-color: #f0e6d2;
    color: #010a13;
    font-size: 12px;
    padding: 2px 8px;
    text-align: left;
    width: 30%;
}
article[data-v-0d2183cc] table td {
	background-color: inherit;
	border: 1px solid #1e282d;
	text-align: center;
	font-size: 12px;
    padding: 2px 8px;
}
article[data-v-0d2183cc] .narratation {
  background: rgb(17, 27, 38);
  padding: 10px 10px 15px;
  margin-bottom: 10px;
}
article[data-v-0d2183cc] .reminder > span:first-of-type,
div[data-v-0d2183cc] .reminder > span:first-of-type,
p[data-v-0d2183cc] .reminder > span:first-of-type{
  font-weight: bolder;
  cursor: pointer;
  text-decoration: underline;
  text-decoration-style: dashed;
  color: #cdbd91;
}
article[data-v-0d2183cc] .reminder > span:nth-of-type(2),
div[data-v-0d2183cc] .reminder > span:nth-of-type(2),
p[data-v-0d2183cc] .reminder > span:nth-of-type(2){
  display: none;
  font-style: italic;
  background-color: black;
  border: 1px solid #6c757d;
  padding: 10px 15px;
  position: absolute;
  right: 110px;
  left: 110px;
}
article[data-v-0d2183cc] .reminder:hover > span:nth-of-type(2),
div[data-v-0d2183cc] .reminder:hover > span:nth-of-type(2),
p[data-v-0d2183cc] .reminder:hover > span:nth-of-type(2),
p[data-v-0d2183cc] .reminder:hover > span:nth-of-type(2){
  display: flex;
}
article[data-v-0d2183cc] .character,
article[data-v-0d2183cc] .monster,
article[data-v-0d2183cc] .item{
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    border-top: 1px solid #6c757d33;
    padding-top: 15px;
}
article[data-v-0d2183cc] div:first-of-type.character,
article[data-v-0d2183cc] div:first-of-type.monster,
article[data-v-0d2183cc] div:first-of-type.item{
    border-color: transparent;
}
article[data-v-0d2183cc] .replaced-picture{
    position: relative;
    margin-bottom: 2em;
}
article[data-v-0d2183cc] .replaced-picture > img{
    width: 100%;
}
article[data-v-0d2183cc] .replaced-picture > .zoom-btn{
    font-size: 1.5rem;
    position: absolute;
    display: block;
    bottom: 5px;
    right: 5px;
    padding: 3px 3px;
    background-color: #00000063;
    border: 1px solid #6c757d87;
    min-width: 40px;
    min-height: 40px;
    text-align: center;
}
article[data-v-0d2183cc] .replaced-picture > .zoom-btn:hover{
    color: #cdbd91;
}
article[data-v-0d2183cc] .character > p,
article[data-v-0d2183cc] .character > img,
article[data-v-0d2183cc] .monster > p,
article[data-v-0d2183cc] .monster > img,
article[data-v-0d2183cc] .item > p,
article[data-v-0d2183cc] .item > img
{
    display: block;
}
article[data-v-0d2183cc] .character > img,
article[data-v-0d2183cc] .monster > img
{
    padding-top: 5px;
    padding-bottom: 20px;
    width: unset;
}
article[data-v-0d2183cc] .item > img
{
    width: 100px;
    height: 100px;
    padding-top: 0;
    padding-bottom: 0;
}
article[data-v-0d2183cc] .reminder:hover > span:nth-of-type(2) > img,
div[data-v-0d2183cc] .reminder:hover > span:nth-of-type(2) > img,
p[data-v-0d2183cc] .reminder:hover > span:nth-of-type(2) > img{
    padding-top: 0;
    padding-bottom: 0;
}
article[data-v-0d2183cc] .reminder:hover p,
div[data-v-0d2183cc] .reminder:hover p,
p[data-v-0d2183cc] .reminder:hover p{
    align-self: center;
}
article[data-v-0d2183cc] .item p:first-letter,
div[data-v-0d2183cc] .item p:first-letter,
p[data-v-0d2183cc] .item p:first-letter,
article[data-v-0d2183cc] .item div:first-letter,
div[data-v-0d2183cc] .item div:first-letter,
p[data-v-0d2183cc] .item div:first-letter{
    text-transform: uppercase;
}
article[data-v-0d2183cc] .character p,
article[data-v-0d2183cc] .monster p,
article[data-v-0d2183cc] .item p {
    display: block;
    padding: 0px 20px 10px !important;
    align-self: self-start;
}
article[data-v-0d2183cc] .character strong,
article[data-v-0d2183cc] .monster strong,
article[data-v-0d2183cc] .item strong {
    color: #cdbd91;
}
article[data-v-0d2183cc] .character table,
article[data-v-0d2183cc] .monster table,
article[data-v-0d2183cc] .item table {
    margin: 5px 20px;
    width: 100%;
}
article[data-v-0d2183cc] .character > div,
article[data-v-0d2183cc] .monster > div {
    display: flex;
    flex-direction: column;
    align-items: self-start;
    width: 100%;
}
article[data-v-0d2183cc] .item > div {
    display: block;
    width: 100%;
    padding-left: 15px;
}
article[data-v-0d2183cc] hr::before,
article[data-v-0d2183cc] hr::after{
    content: '';
    width: 12px;
    height: 12px;
    transform: rotateZ(45deg);
    background-color: transparent;
    border: 1px solid #6c757d;
    display: block;
    position: absolute;
    top: -6px;
}
article[data-v-0d2183cc] hr::before{
    left: -14px;
}
article[data-v-0d2183cc] hr::after{
    right: -14px;
}
article[data-v-0d2183cc] hr{
    border-top: 1px solid #6c757d;
    position: relative;
    width: calc(70% - 28px);
    margin-top: 1.5rem;
    margin-bottom: 1.5rem;
    opacity: .6;
}
article[data-v-0d2183cc] .read-it {
    background-color: #00000063;
    display: inline-block;
    padding: 7px 10px;
}
article[data-v-0d2183cc] h1,
article[data-v-0d2183cc] h2,
article[data-v-0d2183cc] h3,
article[data-v-0d2183cc] h4,
article[data-v-0d2183cc] h5{
    color: #cdbd91;
}
article[data-v-0d2183cc] .youtube{
    margin: 30px auto;
    display: block;
    max-width: 94%;
}
article[data-v-0d2183cc] .youtube-captions{
    text-align: center;
    margin-top: -30px;
    font-style: italic;
}
@media screen and (max-width: 850px){
.modal-dialog[data-v-0d2183cc]{
        margin: 10px 20px;
}
article[data-v-0d2183cc],
    article[data-v-0d2183cc] p {
        margin: 0;
        padding: 1em 3%;
}
.modal-content[data-v-0d2183cc] {
        /*margin-bottom: 12em;*/
        margin-top: 2.5em;
}
.modal.show .modal-dialog[data-v-0d2183cc] {
        margin-bottom: 12em;
}
article[data-v-0d2183cc] .character,
    article[data-v-0d2183cc] .monster{
        flex-direction: column;
        align-items: center;
}
article[data-v-0d2183cc] .character p,
    article[data-v-0d2183cc] .monster p {
    padding: 10px 20px 10px !important;
}
}


.mapContainer[data-v-09ddd990] {
    height: calc(100vh - 30px);
    overflow: scroll;
    position: relative;
}
.worldMap[data-v-09ddd990]
{
  width: 2477px;
  height: 2929px;
  background-image: url('https://www.vagabonds-jdr.fr/assets/images/illustration/map/map03.png');
  background-position: cover;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-content: flex-start;
  padding-left: 50px;
}
.viewModeOn[data-v-09ddd990],
.viewModeOff[data-v-09ddd990]{
  padding-top: 0;
  position :absolute;
  top:60px;
  left:20px;
  z-index:5;
  height: 32px;
  width: 90px;
  overflow: hidden;
  border-radius: 16px;
  border: 1px solid brown;
  cursor: pointer;
}
.viewModeOff div[data-v-09ddd990],
.viewModeOn div[data-v-09ddd990]{
  width: 180px;
  display: flex;
  flex-wrap: nowrap;
  transition: all .5s;
  position: relative;
}
.viewModeOff span[data-v-09ddd990],
.viewModeOn span[data-v-09ddd990]{
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background-color: white;
  border:1px solid transparent;
  z-index: 3;
  filter: drop-shadow(0 0 3px rgba(0, 0, 0, 0.5));
}
.viewModeOff div[data-v-09ddd990]{
  margin-left: -60px;
}
.viewModeOn label[data-v-09ddd990],
.viewModeOff label[data-v-09ddd990] {
	width: 90px;
	height: 32px;
  text-align: center;
	background-color: white;
  color: brown;
  margin-bottom: 0;
  margin-left: -15px;
  margin-right: 0;
  cursor: pointer;
}
.viewModeOn label p[data-v-09ddd990],
.viewModeOff label p[data-v-09ddd990]{
  margin: 7px auto;
  width: calc(100% - 40px);
  font-size: 0.85em;
}
.viewModeOn label[data-v-09ddd990]:first-of-type,
.viewModeOff label[data-v-09ddd990]:first-of-type {
	background-color: brown;
  color: white;
  margin-right: -15px;
}
.viewModeOn label:first-of-type p[data-v-09ddd990],
.viewModeOff label:first-of-type p[data-v-09ddd990]{
  margin-right: 15px;
}
.viewModeOn input[data-v-09ddd990],
.viewModeOff input[data-v-09ddd990] {
	display: none;
}
img[data-v-09ddd990]{
  width: 500px;
}
.hex-col[data-v-09ddd990] {
    margin-top: 22.5px;
}
.hex-col[data-v-09ddd990]:nth-of-type(2n+1) {
    padding-top: 61.75px;
}
.hexagone[data-v-09ddd990] {
    width: 71px;
    height: 123.5px;
    z-index: 2;
    color: white;
    text-align: center;
    background-color: rgba(255,0,0,0);
    border:0px solid red;
    position: relative;
    margin: 1px 18px;
    padding-top: 2px;
}
.shinrai[data-v-09ddd990]{
  background-color: rgba(255, 238, 0, 0.1);
}
.seniaux[data-v-09ddd990]{
  background-color: rgba(106, 6, 145, 0.4);
}
.vidieu[data-v-09ddd990]{
  background-color: rgba(255, 187, 0, 0.1);
}
.servenatif[data-v-09ddd990]{
  background-color: rgba(0, 4, 255, 0.1);
}
.mesaives[data-v-09ddd990]{
  background-color: rgba(16, 147, 57, 0.4);
}
.hexagone > span[data-v-09ddd990]{
  position: absolute;
}
.hexagone > span[data-v-09ddd990]:first-of-type {
    font-size: 22px;
    top: 2px;
    left: 0;
    width: 71px;
    font-weight: lighter;
}
.player[data-v-09ddd990] {
    left: 0;
    font-size: 5em;
    color: brown;
    width: 100%;
    top: 6px;
}
.cityName1[data-v-09ddd990],
.cityName2[data-v-09ddd990],
.cityName3[data-v-09ddd990]
 {
	z-index: 3;
  color:white;
	bottom: 45%;
	margin-bottom: 0;
	padding-bottom: 0;
	text-align: center;
  filter: drop-shadow(0 0 2px rgba(0, 0, 0, 0.8));
  letter-spacing: -1px;
	left: -113px;
}

/*.hexagone-select .cityName1,
.hexagone-select .cityName2,
.hexagone-select .cityName3{
  color:white;
}*/
.cityName1[data-v-09ddd990] {
	font-size: 2em;
	text-transform: uppercase;
	width: 300px;
  font-weight: bolder;
  font-family: 'MedievalSharp', cursive;
}
.cityName2[data-v-09ddd990] {
	font-size: 1.8em;
	text-transform: capitalize;
	width: 300px;
  font-weight: bolder;
}
.cityName3[data-v-09ddd990] {
	font-size: 1.4em;
	text-transform: capitalize;
	width: 300px;
}
.hexagone[data-v-09ddd990]:hover{
  background-color: rgba(255,0,0,.3);
  /*color: black;*/
}
.hexagone[data-v-09ddd990]::before,
.hexagone[data-v-09ddd990]::after {
    width: 0;
    height: 123.5px;
    content: "";
    display: inline-block;
    position: absolute;
    border: 34px solid transparent;
    border-top-width: 61.75px;
    border-bottom-width: 61.75px;
    top:0;
}
.shinrai[data-v-09ddd990]::before{
  right: 100%;
  border-right-color: rgba(255, 238, 0, 0.1);
  pointer-events: none;
}
.shinrai[data-v-09ddd990]::after{
  left: 100%;
  border-left-color: rgba(255, 238, 0, 0.1);
  pointer-events: none;
}
.seniaux[data-v-09ddd990]::before{
  right: 100%;
  border-right-color: rgba(106, 6, 145, 0.4);
  pointer-events: none;
}
.seniaux[data-v-09ddd990]::after{
  left: 100%;
  border-left-color: rgba(106, 6, 145, 0.4);
  pointer-events: none;
}
.vidieu[data-v-09ddd990]::before{
  right: 100%;
  border-right-color: rgba(255, 187, 0, 0.1);
  pointer-events: none;
}
.vidieu[data-v-09ddd990]::after{
  left: 100%;
  border-left-color: rgba(255, 187, 0, 0.1);
  pointer-events: none;
}
.servenatif[data-v-09ddd990]::before{
  right: 100%;
  border-right-color: rgba(0, 4, 255, 0.1);
  pointer-events: none;
}
.servenatif[data-v-09ddd990]::after{
  left: 100%;
  border-left-color: rgba(0, 4, 255, 0.1);
  pointer-events: none;
}
.mesaives[data-v-09ddd990]::before{
  right: 100%;
  border-right-color: rgba(16, 147, 57, 0.4);
  pointer-events: none;
}
.mesaives[data-v-09ddd990]::after{
  left: 100%;
  border-left-color: rgba(16, 147, 57, 0.4);
  pointer-events: none;
}
.hexagone[data-v-09ddd990]:hover::before{
  right: 100%;
  border-right-color: rgba(255,0,0,.3);
}
.hexagone[data-v-09ddd990]:hover::after{
  left: 100%;
  border-left-color: rgba(255,0,0,.3);
}
.hexagone-select[data-v-09ddd990],
.hexagone-select[data-v-09ddd990]:hover{
  background-color: rgba(255,0,0,.73);
  /*color: black;*/
}
.hexagone-select[data-v-09ddd990]::before,
.hexagone-select[data-v-09ddd990]:hover::before
{
  right: 100%;
  border-right-color: rgba(255,0,0,.73);
}
.hexagone-select[data-v-09ddd990]::after,
.hexagone-select[data-v-09ddd990]:hover::after{
  left: 100%;
  border-left-color: rgba(255,0,0,.73);
}
.displayOnHover[data-v-09ddd990] {
    display: none;
}
.hexagone-select .displayOnHover[data-v-09ddd990],
.hexagone:hover .displayOnHover[data-v-09ddd990] {
    display: block;
}
@media screen and (max-width: 850px){
.mapContainer[data-v-09ddd990] {
    height: 100vh;
}
.viewModeOn[data-v-09ddd990],
  .viewModeOff[data-v-09ddd990]{
    left:unset;
    top:25px;
    right:calc(50% - 45px);
    height: 34px;
}
.viewModeOn label p[data-v-09ddd990],
  .viewModeOff label p[data-v-09ddd990]{
    width: calc(100% - 30px);
}
}


.mainscreen[data-v-3fa7c049] {
    margin: 0 8% 0 15%;
    background-color: #010a13;
    overflow: auto;
    z-index: 0;
    padding: 2% 0 2% 2%;
    padding-top: 0px;
    border-left-style: solid;
    border-right-style: solid;
    border-width: 0px;
    border-color: #ccc3a7;
    padding-bottom: 0px;
    display: block;
    position: relative;
}
article[data-v-3fa7c049] {
    padding-left: 5px;
    padding-right: 5px;
    text-align: center;
    display: grid;
    grid-template-columns: 1fr 380px;
    padding-top: 0px;
}
.details[data-v-3fa7c049]{
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  border:1px black solid;
  background-size: cover;
  background-position: center;
  padding: 160px 5px 30px;
}
h1[data-v-3fa7c049]{
  margin-top: 50px;
}
h3[data-v-3fa7c049]{
  text-align:center;
}
ul[data-v-3fa7c049]{
  list-style: none;
  padding-block-start: 0;
  padding-inline-start: 0;
  margin-bottom: 0 ;
}
ul[data-v-3fa7c049]:not(:first-of-type){
  border:1px white solid;
  min-height: 500px;
}
li[data-v-3fa7c049]{
  display: grid;
  grid-template-rows: 1fr;
  grid-template-columns: 1fr 250px 180px 40px;
  text-align: center;
  padding: 2px 7px;
  padding-right: 15px;
}
ul:not(:first-of-type)>li[data-v-3fa7c049]{
  cursor: pointer;
}
li>span[data-v-3fa7c049]:first-of-type{
  text-align: left;
}
.player-line[data-v-3fa7c049]{
  background: linear-gradient(82deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.75) 10%, rgba(0,0,0,.75) 90%, rgba(0,0,0,0) 100%);
  margin: 1px;
  display: grid;
  width: 100%;
  padding: 5px;
  grid-template-columns: 36px 1fr;
  align-items: center;
  height: 46px;
  position: relative;
}
br+.player-line[data-v-3fa7c049]{
  margin-top: 20px;
}
.player-line > a[data-v-3fa7c049]{
  width: 36px;
  height: 36px;
  border: 1px solid black;
  background: radial-gradient(circle, rgb(27, 27, 27) 0%, rgb(27, 27, 27) 5%, rgb(10, 10, 10) 100%);
  background-position: 50% 50%;
  background-repeat: no-repeat;
  background-size: cover;
  display: block;
}
a.img-player[data-v-3fa7c049]{
  border-color: #f0e6d2;
  background-image: url(https://vagabonds-jdr.github.io/images/events/placeholder.jpg);
}
.player-line > span[data-v-3fa7c049]:first-of-type{
  text-align: left;
  padding-left: 10px;
  padding-top: .4em;
}
.player-details[data-v-3fa7c049]{
  width: 132px;
  height: 70px;
  display: none;
  position: absolute;
  background-color: black;
  left: -147px;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  background-image: url(https://vagabonds-jdr.github.io/images/events/placeholder.jpg);
  border: 1px solid #1e282d;
  border-right-width: 0;
  border-left-width: 0;
}
.player-details[data-v-3fa7c049]::after{
  width: 25px;
  height: 25px;
  display: block;
  position: absolute;
  border: 12.5px solid transparent;
  border-left-color: black;
  left: 132px;
  content: '';
  z-index: 2;
  top: 22.5px;
}
.player-details>div[data-v-3fa7c049]{
  width: 100%;
  height: 100%;
  position: absolute;
  background: linear-gradient(-45deg, rgba(0,0,0,1) 19%, rgba(0,0,0,0.8) 40%, rgba(0,0,0,0) 100%);
  z-index: 0;
  top: 0;
}
.player-details>p[data-v-3fa7c049]{
  z-index: 1;
  position: relative;
  text-transform: capitalize;
  margin-top: 30px;
  font-size: 1.1em;
}
.player-line:hover > .player-details[data-v-3fa7c049]{
display: block;
}
.selected[data-v-3fa7c049]{
  background-color: darkblue;
}
.btn-game[data-v-3fa7c049]{
  padding: 15px 15px 30px;
}
/*.btn-game button{
  border:solid 1px #f0e6d2;
  color: #f0e6d2;
  background-color: brown;
  font-size: 1.5rem;
  padding: 4px 15px 4px;
}*/
.btn.btn-success[data-v-3fa7c049] {
    background-color: brown;
    background: linear-gradient(82deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.75) 20%, rgba(0,0,0,.75) 80%, rgba(0,0,0,0) 100%);
    border-color: brown;
    border-radius: 5px;
    border-image: linear-gradient(90deg, rgba(131,128,150,0), #a51f1f, #a51f1f, rgba(131,128,150,0)) 27;
    border-image-repeat: stretch;
    border-image-width: 1px 0;
    padding: 4px 15px 4px;
    font-size: 1.5rem;
    color: #ff0f0f;
    letter-spacing: 2px;
    font-family: 'MedievalSharp', cursive;
    outline:none;
    box-shadow: none;
}
.btn-success[data-v-3fa7c049]:not(:disabled):hover,
.btn-success[data-v-3fa7c049]:not(:disabled):focus,
.btn-success[data-v-3fa7c049]:not(:disabled):focus-visible{
  color: #f0e6d2;
  text-shadow: 0px 0px 2px white, 0 0 25px #f0e6d2;
  border-image: linear-gradient(90deg, rgba(131,128,150,0), brown, brown, rgba(131,128,150,0)) 27;
}
.btn-success[data-v-3fa7c049]:not(:disabled):active,
.show>.btn-success.dropdown-toggle[data-v-3fa7c049] {
    color: #f0e6d2;
    border-color: #f0e6d2;
    border-image: linear-gradient(90deg, rgba(131,128,150,0), #f0e6d2, #f0e6d2, rgba(131,128,150,0)) 27;
    background: radial-gradient(circle, rgba(255,255,255,0.25) 0%, rgba(131,128,150,0.02) 100%);
}
@media screen and (max-width: 850px){
.mainscreen[data-v-3fa7c049] {
        padding-top: 50px;
        top: 0;
        width: 100%;
        left: 0%;
        right: 0%;
        bottom: 0;
        margin: 0;
}
}


.me span[data-v-744711ac]{
    color: yellow !important;
}
.mainscreen[data-v-744711ac] {
    margin: 0 8% 0 15%;
    background-color: #010a13;
    overflow: auto;
    z-index: 0;
    padding: 2% 0 2% 2%;
    padding-top: 0px;
    border-left-style: solid;
    border-right-style: solid;
    border-width: 0px;
    border-color: #ccc3a7;
    padding-bottom: 0px;
    display: block;
    position: relative;
}
article[data-v-744711ac] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    padding: 15px 10%;
    grid-template-rows: 2em 6em 1fr 50px;
    height: calc(100vh - 30px);
}
.details[data-v-744711ac]{
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  border:1px black solid;
  background-size: cover;
  background-position: center;
  padding: 160px 5px 30px;
}
h1[data-v-744711ac] {
    margin-top: 50px;
    grid-column-start: 1;
    grid-column-end: 3;
    display: block;
}
h3[data-v-744711ac]{
  text-align:center;
}
ul[data-v-744711ac] {
  list-style: none;
  padding-block-start: 0;
  padding-inline-start: 0;
  margin-bottom: 0 ;
}
.left-panel[data-v-744711ac], .right-panel[data-v-744711ac] {
  padding: 17px 5px;
}
.left-panel[data-v-744711ac] {
  grid-row-start: 3;
}
.right-panel[data-v-744711ac]{
  grid-row-start: 3;
  grid-column-start: 2;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
ul[data-v-744711ac]:not(:first-of-type){
  border:1px white solid;
  min-height: 500px;
}
li[data-v-744711ac]{
  display: grid;
  grid-template-rows: 1fr;
  grid-template-columns: 1fr 250px 180px 40px;
  text-align: center;
  padding: 2px 7px;
  padding-right: 15px;
}
.right-panel li[data-v-744711ac]{
  grid-template-columns: 1fr 50px;
}
ul:not(:first-of-type)>li[data-v-744711ac]{
  cursor: pointer;
}
li>span[data-v-744711ac]:first-of-type{
  text-align: left;
}
.player-line[data-v-744711ac]{
  background: linear-gradient(82deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.75) 10%, rgba(0,0,0,.75) 90%, rgba(0,0,0,0) 100%);
  margin: 1px;
  display: grid;
  width: 100%;
  padding: 5px;
  padding-right: 25px;
  grid-template-columns: 36px 1fr 30px;
  align-items: center;
  height: 46px;
  position: relative;
}
br+.player-line[data-v-744711ac]{
  margin-top: 20px;
}
.player-line > a[data-v-744711ac]{
  width: 36px;
  height: 36px;
  border: 1px solid black;
  background: radial-gradient(circle, rgb(27, 27, 27) 0%, rgb(27, 27, 27) 5%, rgb(10, 10, 10) 100%);
  background-position: 50% 50%;
  background-repeat: no-repeat;
  background-size: cover;
  display: block;
}
a.img-player[data-v-744711ac]{
  border-color: #f0e6d2;
  background-image: url(https://vagabonds-jdr.github.io/images/events/placeholder.jpg);
}
.player-line > span[data-v-744711ac]:first-of-type{
  text-align: left;
  padding-left: 10px;
  padding-top: .4em;
}
.player-details[data-v-744711ac]{
  width: 132px;
  height: 70px;
  display: none;
  position: absolute;
  background-color: black;
  left: -147px;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  background-image: url(https://vagabonds-jdr.github.io/images/events/placeholder.jpg);
  border: 1px solid #1e282d;
  border-right-width: 0;
  border-left-width: 0;
}
.player-details[data-v-744711ac]::after{
  width: 25px;
  height: 25px;
  display: block;
  position: absolute;
  border: 12.5px solid transparent;
  border-left-color: black;
  left: 132px;
  content: '';
  z-index: 2;
  top: 22.5px;
}
.player-details>div[data-v-744711ac]{
  width: 100%;
  height: 100%;
  position: absolute;
  background: linear-gradient(-45deg, rgba(0,0,0,1) 19%, rgba(0,0,0,0.8) 40%, rgba(0,0,0,0) 100%);
  z-index: 0;
  top: 0;
}
.player-details>p[data-v-744711ac]{
  z-index: 1;
  position: relative;
  text-transform: capitalize;
  margin-top: 30px;
  font-size: 1.1em;
}
.player-line:hover > .player-details[data-v-744711ac]{
display: block;
}
.selected[data-v-744711ac]{
  background-color: darkblue;
}
.btn-game[data-v-744711ac]{
  padding: 15px 15px 30px;
}
/*.btn-game button{
  border:solid 1px #f0e6d2;
  color: #f0e6d2;
  background-color: brown;
  font-size: 1.5rem;
  padding: 4px 15px 4px;
}*/
.btn.btn-success[data-v-744711ac] {
    background-color: brown;
    background: linear-gradient(82deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.75) 20%, rgba(0,0,0,.75) 80%, rgba(0,0,0,0) 100%);
    border-color: brown;
    border-radius: 5px;
    border-image: linear-gradient(90deg, rgba(131,128,150,0), #a51f1f, #a51f1f, rgba(131,128,150,0)) 27;
    border-image-repeat: stretch;
    border-image-width: 1px 0;
    padding: 4px 15px 4px;
    font-size: 1.5rem;
    color: #ff0f0f;
    letter-spacing: 2px;
    font-family: 'MedievalSharp', cursive;
    outline:none;
    box-shadow: none;
}
.btn-success[data-v-744711ac]:not(:disabled):hover,
.btn-success[data-v-744711ac]:not(:disabled):focus,
.btn-success[data-v-744711ac]:not(:disabled):focus-visible{
  color: #f0e6d2;
  text-shadow: 0px 0px 2px white, 0 0 25px #f0e6d2;
  border-image: linear-gradient(90deg, rgba(131,128,150,0), brown, brown, rgba(131,128,150,0)) 27;
}
.btn-success[data-v-744711ac]:not(:disabled):active,
.show>.btn-success.dropdown-toggle[data-v-744711ac] {
    color: #f0e6d2;
    border-color: #f0e6d2;
    border-image: linear-gradient(90deg, rgba(131,128,150,0), #f0e6d2, #f0e6d2, rgba(131,128,150,0)) 27;
    background: radial-gradient(circle, rgba(255,255,255,0.25) 0%, rgba(131,128,150,0.02) 100%);
}
@media screen and (max-width: 850px){
.mainscreen[data-v-744711ac] {
        padding-top: 50px;
        top: 0;
        width: 100%;
        left: 0%;
        right: 0%;
        bottom: 0;
        margin: 0;
}
}


.modal-content[data-v-77cef5c7] {
	background-color: transparent;
    border-width: 0;
}
.modal-footer[data-v-77cef5c7] {
	border-width: 0;
}
.btn.btn-success[data-v-77cef5c7] {
    margin: auto;
	background-color: brown;
    background: linear-gradient(82deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.75) 20%, rgba(0,0,0,.75) 80%, rgba(0,0,0,0) 100%);
  border-color: brown;
  border-radius: 5px;
  border-image: linear-gradient(90deg, rgba(131,128,150,0), #a51f1f, #a51f1f, rgba(131,128,150,0)) 27;
  border-image-repeat: stretch;
  border-image-width: 1px 0;
  padding: 4px 15px 4px;
  font-size: 1.5rem;
  color: #ff0f0f;
  letter-spacing: 2px;
  font-family: 'MedievalSharp', cursive;
  outline:none;
  box-shadow: none;
}
.btn-success[data-v-77cef5c7]:not(:disabled):hover,
.btn-success[data-v-77cef5c7]:not(:disabled):focus,
.btn-success[data-v-77cef5c7]:not(:disabled):focus-visible{
  color: #f0e6d2;
  text-shadow: 0px 0px 2px white, 0 0 25px #f0e6d2;
  border-image: linear-gradient(90deg, rgba(131,128,150,0), brown, brown, rgba(131,128,150,0)) 27;
}
.btn-success[data-v-77cef5c7]:not(:disabled):active, 
.show>.btn-success.dropdown-toggle[data-v-77cef5c7] {
    color: #f0e6d2;
    border-color: #f0e6d2;
    border-image: linear-gradient(90deg, rgba(131,128,150,0), #f0e6d2, #f0e6d2, rgba(131,128,150,0)) 27;
    background: radial-gradient(circle, rgba(255,255,255,0.25) 0%, rgba(131,128,150,0.02) 100%);
}
.chose-option[data-v-77cef5c7]{
    height: 90%;
}
.chose-option .modal-content[data-v-77cef5c7]
{
    height: 100%;
    justify-content: space-around;
}
.chose-option .modal-body[data-v-77cef5c7]
{
    flex: unset;
}
@media screen and (max-width: 850px){
.chose-option[data-v-77cef5c7]{
    height: 60%;
    margin-top: 18%;
    margin-bottom: 18%;
}
.chose-option .modal-content[data-v-77cef5c7]
    {
        justify-content: space-between;
}
}
@media screen and (max-width: 850px) and (max-height: 700px){
.chose-option[data-v-77cef5c7]{
    height: 80%;
}
}


form[data-v-2216acb0]{
    text-align: center;
}
input[type="text"][data-v-2216acb0] {
      background-color: black;
        color: white;
        border: 0px solid white;
        border-bottom-width: 1px;
        text-align: center;
        font-size: 1.5em;
        width: 10vw;
        font-family: 'MedievalSharp', cursive;
        letter-spacing: 0.10em;
        background: linear-gradient(0deg, rgb(155 153 153 / 20%) 0%, rgba(11,20,27,0) 100%)
}
.modal-content[data-v-2216acb0]{
    background-color: #010a13;
    overflow: auto;
    padding-top: 0px;
    border-left-style: solid;
    border-right-style: solid;
    border-width: 0px;
    border-color: #ccc3a7;
}
.btn.btn-success[data-v-2216acb0] {
    background-color: brown;
    background: linear-gradient(82deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.75) 20%, rgba(0,0,0,.75) 80%, rgba(0,0,0,0) 100%);
    border-color: brown;
    border-radius: 5px;
    border-image: linear-gradient(90deg, rgba(131,128,150,0), #a51f1f, #a51f1f, rgba(131,128,150,0)) 27;
    border-image-repeat: stretch;
    border-image-width: 1px 0;
    padding: 4px 15px 4px;
    font-size: 1.5rem;
    color: #ff0f0f;
    letter-spacing: 2px;
    font-family: 'MedievalSharp', cursive;
    outline:none;
    box-shadow: none;
}
.btn-success[data-v-2216acb0]:not(:disabled):hover,
.btn-success[data-v-2216acb0]:not(:disabled):focus,
.btn-success[data-v-2216acb0]:not(:disabled):focus-visible{
  color: #f0e6d2;
  text-shadow: 0px 0px 2px white, 0 0 25px #f0e6d2;
  border-image: linear-gradient(90deg, rgba(131,128,150,0), brown, brown, rgba(131,128,150,0)) 27;
}
.btn-success[data-v-2216acb0]:not(:disabled):active,
.show>.btn-success.dropdown-toggle[data-v-2216acb0] {
    color: #f0e6d2;
    border-color: #f0e6d2;
    border-image: linear-gradient(90deg, rgba(131,128,150,0), #f0e6d2, #f0e6d2, rgba(131,128,150,0)) 27;
    background: radial-gradient(circle, rgba(255,255,255,0.25) 0%, rgba(131,128,150,0.02) 100%);
}
.publicSelect[data-v-2216acb0]{
    display: grid;
    margin: 10px auto;
    grid-template-columns: repeat(2,1fr);
    width: 80px;
    height: 40px;
}
.publicSelect input[data-v-2216acb0]{
    display: none;
}
.publicSelect label[data-v-2216acb0]{
    display: block;
    width: 100%;
    border: 1px solid white;
    background-color: white;
}
.publicSelect label[data-v-2216acb0]:first-of-type{
    border-radius: 50% 0 0 50%;
}
label span[data-v-2216acb0] {
    display: block;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    margin: 1px;
    font-size: 1.6em;
    padding: 4px;
    border: 0px solid brown;
    background-color: black;
}
input[type="radio"]:checked+label span[data-v-2216acb0]{
    background-color: brown;
}
.publicSelect label[data-v-2216acb0]:last-of-type{
    border-radius: 0 50% 50% 0;
}


form[data-v-2206bfb6]{
    text-align: center;
}
input[type="text"][data-v-2206bfb6] {
      background-color: black;
        color: white;
        border: 0px solid white;
        border-bottom-width: 1px;
        text-align: center;
        font-size: 1.5em;
        width: 10vw;
        font-family: 'MedievalSharp', cursive;
        letter-spacing: 0.10em;
        background: linear-gradient(0deg, rgb(155 153 153 / 20%) 0%, rgba(11,20,27,0) 100%)
}
.modal-content[data-v-2206bfb6]{
    background-color: #010a13;
    overflow: auto;
    padding-top: 0px;
    border-left-style: solid;
    border-right-style: solid;
    border-width: 0px;
    border-color: #ccc3a7;
}
.btn.btn-success[data-v-2206bfb6] {
    background-color: brown;
    background: linear-gradient(82deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.75) 20%, rgba(0,0,0,.75) 80%, rgba(0,0,0,0) 100%);
    border-color: brown;
    border-radius: 5px;
    border-image: linear-gradient(90deg, rgba(131,128,150,0), #a51f1f, #a51f1f, rgba(131,128,150,0)) 27;
    border-image-repeat: stretch;
    border-image-width: 1px 0;
    padding: 4px 15px 4px;
    font-size: 1.5rem;
    color: #ff0f0f;
    letter-spacing: 2px;
    font-family: 'MedievalSharp', cursive;
    outline:none;
    box-shadow: none;
}
.btn-success[data-v-2206bfb6]:not(:disabled):hover,
.btn-success[data-v-2206bfb6]:not(:disabled):focus,
.btn-success[data-v-2206bfb6]:not(:disabled):focus-visible{
  color: #f0e6d2;
  text-shadow: 0px 0px 2px white, 0 0 25px #f0e6d2;
  border-image: linear-gradient(90deg, rgba(131,128,150,0), brown, brown, rgba(131,128,150,0)) 27;
}
.btn-success[data-v-2206bfb6]:not(:disabled):active,
.show>.btn-success.dropdown-toggle[data-v-2206bfb6] {
    color: #f0e6d2;
    border-color: #f0e6d2;
    border-image: linear-gradient(90deg, rgba(131,128,150,0), #f0e6d2, #f0e6d2, rgba(131,128,150,0)) 27;
    background: radial-gradient(circle, rgba(255,255,255,0.25) 0%, rgba(131,128,150,0.02) 100%);
}
.publicSelect[data-v-2206bfb6]{
    display: grid;
    margin: 10px auto;
    grid-template-columns: repeat(2,1fr);
    width: 80px;
    height: 40px;
}
.publicSelect input[data-v-2206bfb6]{
    display: none;
}
.publicSelect label[data-v-2206bfb6]{
    display: block;
    width: 100%;
    border: 1px solid white;
    background-color: white;
}
.publicSelect label[data-v-2206bfb6]:first-of-type{
    border-radius: 50% 0 0 50%;
}
label span[data-v-2206bfb6] {
    display: block;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    margin: 1px;
    font-size: 1.6em;
    padding: 4px;
    border: 0px solid brown;
    background-color: black;
}
input[type="radio"]:checked+label span[data-v-2206bfb6]{
    background-color: brown;
}
.publicSelect label[data-v-2206bfb6]:last-of-type{
    border-radius: 0 50% 50% 0;
}


#app[data-v-5bcdaf03]{
  min-height: calc(100% - 30px);
  overflow-y: auto;
}
@media screen and (max-width: 850px){
#app[data-v-5bcdaf03]{
    min-height:calc(100vh - 5em);
}
}


/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmNzcyIsIm1hcHBpbmdzIjoiQUFBQTtJQUNJLDJCQUEyQjtBQUMvQjs7O0FDa0NBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBO0VBQ0E7QUFDQTtBQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBO0lBQ0E7QUFDQTtBQUVBOztJQUVBO0lBQ0E7QUFDQTtBQUVBO0FBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBO0lBQ0E7QUFDQTtBQUNBOzs7QUMvQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFFQTtJQUNBO0FBQ0E7QUFDQTtBQUNBOztJQUVBO0FBQ0E7QUFFQTtJQUNBO0FBQ0E7QUFDQTtBQUNBOzs7SUFHQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBRUE7QUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBOztJQUVBO0FBQ0E7QUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7O0lBRUE7QUFDQTs7SUFFQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBO0lBQ0E7QUFDQTtBQUNBO0lBQ0E7QUFDQTtBQUNBOzs7QUNyQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7OztBQzhEQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFFQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBRUE7RUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0FBQ0E7QUFDQTtJQUNBO0FBQ0E7QUFFQTtJQUNBO0FBRUE7QUFFQTtJQUNBO0FBQ0E7QUFFQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFHQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFFQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUVBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUVBO0FBRUE7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFFQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFFQTtBQUNBO0VBQ0E7RUFDQTtFQUNBO0FBRUE7QUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFFQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBRUE7QUFDQTtJQUNBO0FBQ0E7QUFDQTtNQUNBO01BQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7SUFFQTtBQUNBO0FBQ0E7O0lBRUE7QUFDQTtBQUVBO0lBQ0E7QUFDQTtBQUVBOzs7RUFHQTtBQUNBO0FBQ0E7O0VBRUE7QUFDQTtBQUNBO0VBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO0FBQ0E7QUFFQTtNQUNBO0FBQ0E7QUFDQTtJQUNBO0FBQ0E7QUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFDQTtNQUNBO01BQ0E7QUFFQTtBQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUVBO0lBQ0E7QUFDQTtBQUNBO0lBQ0E7QUFDQTtBQUVBO0lBQ0E7QUFDQTtBQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBRUE7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBOzs7QUN2ZUE7QUFFQTs7O0FDMERBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFDQTs7SUFFQTtBQUNBO0FBRUE7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUVBO0FBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBRUE7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFFQTtBQUVBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7OytCQUVBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBRUE7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7OzsrQkFHQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtBQUNBO0FBQ0E7TUFDQTtNQUNBO0FBQ0E7QUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO0FBQ0E7QUFFQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO0FBQ0E7QUFDQTtRQUNBO1FBQ0E7UUFDQTtBQUNBO0FBQ0E7SUFDQTtBQUNBO0FBRUE7TUFDQTtBQUNBO0FBRUE7SUFDQTtBQUNBO0FBRUE7TUFDQTtBQUNBO0FBRUE7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7QUFDQTtBQUVBO0lBQ0E7SUFDQTtBQUNBO0FBR0E7TUFDQTtBQUNBO0FBRUE7QUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7UUFDQTtRQUNBO1FBQ0E7QUFDQTtBQUNBO01BQ0E7QUFDQTtBQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUdBO0lBQ0E7QUFDQTtBQUVBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFDQTtBQUNBO0lBQ0E7QUFDQTtBQUNBO0lBQ0E7QUFDQTtBQUNBO0FBRUE7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO0FBQ0E7QUFFQTs7SUFFQTtJQUNBO0lBQ0E7QUFDQTtBQUNBO0lBQ0E7QUFDQTtBQUNBOztJQUVBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUVBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBRUE7SUFDQTtJQUNBO0FBQ0E7QUFFQTtNQUNBO01BQ0E7TUFDQTtNQUNBO0FBQ0E7QUFFQTtNQUNBO0FBQ0E7QUFFQTtNQUNBO0FBQ0E7QUFFQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0FBQ0E7QUFFQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7QUFDQTtBQUVBO0lBQ0E7SUFDQTtBQUNBO0FBRUE7SUFDQTtBQUNBO0FBRUE7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBO0lBQ0E7QUFDQTtBQUNBO0lBQ0E7QUFDQTtBQUVBO01BQ0E7QUFDQTtBQUVBO0lBQ0E7QUFDQTtBQUdBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFDQTtJQUNBO0FBQ0E7QUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7OztBQy9WQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFDQTtJQUNBO0FBQ0E7QUFFQTtJQUNBO0FBQ0E7QUFDQTtJQUNBO0FBQ0E7QUFFQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFDQTtDQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0VBQ0E7QUFFQTtBQUNBOztJQUVBO0lBQ0E7SUFDQTtJQUNBO0FBRUE7QUFDQTtJQUNBO0FBQ0E7QUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0FBQ0E7QUFDQTtBQUNBO01BQ0E7QUFDQTtBQUNBO01BQ0E7QUFDQTtBQUNBO0FBRUE7OztBQ3ZJQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0FBQ0E7QUFFQTs7RUFFQTtBQUNBO0FBQ0E7RUFDQTtBQUNBO0FBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFHQTtBQUVBO0FBRUE7QUFDQTs7SUFFQTtBQUNBO0FBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQTtBQUNBO0FBQ0E7OztBQ25GQTtFQUNBO0VBQ0E7QUFDQTtBQUVBOztFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUNBO0VBQ0E7QUFFQTtBQUNBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0FBRUE7QUFFQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUNBOzs7QUM3Q0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7O0lBRUE7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFDQTs7SUFFQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUVBO0lBQ0E7SUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtBQUNBO0FBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBQ0E7RUFDQTtBQUNBO0FBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUVBO0VBQ0E7QUFDQTtBQUNBO0VBQ0E7QUFDQTtBQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUNBO0NBQ0E7Q0FDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0VBQ0E7RUFDQTtBQUVBO0FBQ0E7O0lBRUE7SUFDQTtJQUNBO0lBQ0E7QUFFQTtBQUNBO0FBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBRUE7SUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0lBQ0E7QUFDQTtBQUVBO0lBQ0E7QUFDQTtBQUVBO0lBQ0E7QUFDQTtBQUNBO0lBQ0E7QUFDQTtBQUVBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFDQTtJQUNBO0FBQ0E7QUFFQTtJQUNBO0lBQ0E7QUFDQTtBQUVBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0lBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtJQUNBO0FBQ0E7QUFFQTs7O0FDck5BO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0lBQ0E7SUFDQTtBQUNBO0FBRUE7RUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBRUE7SUFDQTtJQUNBO0FBQ0E7QUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7QUFDQTtBQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBQ0E7RUFDQTtBQUNBO0FBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUVBO0VBQ0E7QUFDQTtBQUNBO0VBQ0E7QUFDQTtBQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0FBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFFQTtJQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7SUFDQTtBQUNBO0FBRUE7SUFDQTtBQUNBO0FBRUE7SUFDQTtBQUNBO0FBQ0E7SUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0lBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtJQUNBO0FBQ0E7QUFFQTs7O0FDcExBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFFQTtJQUNBO0lBQ0E7QUFDQTtBQUVBO0VBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUVBO0lBQ0E7SUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0FBQ0E7QUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFDQTtFQUNBO0FBQ0E7QUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBRUE7RUFDQTtBQUNBO0FBQ0E7RUFDQTtBQUNBO0FBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7QUFDQTtJQUNBO0FBQ0E7QUFDQTtJQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0lBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtJQUNBO0FBQ0E7QUFFQTtJQUNBO0FBQ0E7QUFFQTtJQUNBO0FBQ0E7QUFDQTtJQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7SUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0lBQ0E7QUFDQTtBQUVBOzs7QUNqRkE7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFFQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBRUE7QUFFQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBRUE7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFFQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBRUE7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBRUE7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUVBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBRUE7SUFDQTtBQUNBO0FBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUVBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7QUFDQTtBQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQTtBQUNBO0FBQ0E7O0VBRUE7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUVBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUVBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFFQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFFQTtJQUNBO0lBQ0E7QUFDQTtBQUVBO0VBQ0E7QUFDQTtBQUVBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUVBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBRUE7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFFQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7SUFDQTtJQUNBO0FBRUE7QUFFQTtJQUNBO0lBQ0E7QUFDQTtBQUNBO0FBQ0E7TUFDQTtNQUNBO0FBQ0E7QUFFQTtNQUNBO01BQ0E7TUFDQTtBQUNBO0FBRUE7UUFDQTtBQUNBO0FBRUE7UUFDQTtRQUNBO1FBQ0E7QUFDQTtBQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7QUFDQTtBQUVBO0lBQ0E7SUFDQTtBQUNBO0FBRUE7TUFDQTtBQUNBO0FBRUE7TUFDQTtNQUNBO01BQ0E7TUFDQTtBQUNBO0FBRUE7TUFDQTtBQUNBO0FBQ0E7TUFDQTtBQUNBO0FBQ0E7TUFDQTtBQUNBO0FBQ0E7OztBQzNTQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFFQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBRUE7RUFDQTtBQUNBO0FBRUE7SUFDQTtBQUNBO0FBRUE7SUFDQTtBQUNBO0FBRUE7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUVBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFFQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBRUE7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFFQTtBQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7QUFDQTtBQUNBOzs7QUNvSkE7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFHQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUNBO0VBQ0E7QUFDQTtBQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFFQTs7RUFFQTtBQUNBO0FBRUE7O0VBRUE7QUFDQTtBQUNBO0NBQ0E7Q0FDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtBQUNBO0FBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0FBQ0E7QUFFQTtJQUNBO0FBQ0E7QUFFQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFFQTtJQUNBO0FBQ0E7QUFFQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBRUE7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUVBO0lBQ0E7QUFDQTtBQUNBO0lBQ0E7QUFDQTtBQUVBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBRUE7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFFQTtDQUNBO0FBQ0E7QUFFQTtDQUNBO0FBQ0E7QUFFQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUVBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0FBQ0E7QUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBQ0E7RUFDQTtBQUNBO0FBQ0E7O0lBRUE7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7RUFDQTtBQUNBO0FBRUE7O0lBRUE7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFFQTs7SUFFQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBO0lBQ0E7QUFDQTtBQUNBO0lBQ0E7QUFDQTtBQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFDQTtJQUNBO0FBQ0E7QUFDQTtBQUNBO0lBQ0E7SUFDQTtBQUNBO0FBRUE7SUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUVBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0FBQ0E7QUFDQTtJQUNBO0FBQ0E7QUFFQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQTtBQUNBO0FBQ0E7RUFDQTtBQUNBO0FBRUE7OztBQ3hpQkE7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7O0lBRUE7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBOztJQUVBO0FBQ0E7QUFDQTtJQUNBO0FBQ0E7QUFDQTtJQUNBO0FBQ0E7QUFFQTtBQUdBOzs7QUMwR0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUVBO0FBR0E7OztBQzVKQTtJQUNBO0FBQ0E7QUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBRUE7OztJQUdBO0lBQ0E7SUFDQTtBQUNBO0FBRUE7O0lBRUE7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBRUE7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFFQTtJQUNBO0lBQ0E7QUFDQTtBQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7O0lBRUE7QUFDQTtBQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBO1FBQ0E7UUFDQTtBQUNBO0FBQ0E7SUFDQTtBQUNBO0FBRUE7SUFDQTtJQUNBO0FBQ0E7QUFDQTs7SUFFQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFDQTtJQUNBO0FBQ0E7QUFDQTs7SUFFQTtJQUNBO0FBQ0E7QUFDQTtJQUNBO0FBQ0E7QUFDQTtJQUNBO0FBQ0E7QUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBRUE7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtJQUNBO0FBQ0E7QUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBQ0E7OztFQUdBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUNBOzs7RUFHQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFDQTs7OztFQUlBO0FBQ0E7QUFFQTs7O0lBR0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7OztJQUdBO0FBQ0E7QUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBO0lBQ0E7QUFDQTtBQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7SUFPQTtBQUNBO0FBQ0E7OztJQUdBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7O0lBRUE7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBOzs7SUFHQTtJQUNBO0FBQ0E7QUFFQTs7O0lBR0E7QUFDQTtBQUNBOzs7Ozs7SUFNQTtBQUNBO0FBQ0E7OztJQUdBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7OztJQUdBO0FBQ0E7QUFDQTs7O0lBR0E7SUFDQTtBQUNBO0FBQ0E7O0lBRUE7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUVBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFFQTs7SUFFQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBO0lBQ0E7QUFDQTtBQUNBO0lBQ0E7QUFDQTtBQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7Ozs7O0lBS0E7QUFDQTtBQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBRUE7QUFDQTtRQUNBO0FBQ0E7QUFFQTs7UUFFQTtRQUNBO0FBQ0E7QUFFQTtRQUNBO1FBQ0E7QUFDQTtBQUNBO1FBQ0E7QUFDQTtBQUVBOztRQUVBO1FBQ0E7QUFDQTtBQUNBOztJQUVBO0FBQ0E7QUFFQTs7O0FDcldBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFDQTs7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFDQTs7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFFQTs7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFFQTs7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtBQUNBO0FBRUE7O0NBRUE7Q0FDQTtFQUNBO0NBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBRUE7QUFFQTs7RUFFQTtFQUNBO0VBQ0E7QUFDQTtBQUVBOztDQUVBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7O0VBRUE7QUFDQTtBQUVBOztDQUVBO0FBQ0E7QUFDQTtFQUNBO0FBQ0E7QUFDQTtJQUNBO0FBQ0E7QUFDQTtJQUNBO0FBQ0E7QUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFDQTtFQUNBO0FBQ0E7QUFDQTtFQUNBO0FBQ0E7QUFDQTtFQUNBO0FBQ0E7QUFDQTtFQUNBO0FBQ0E7QUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0FBQ0E7QUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBRUE7Ozs7Q0FJQTtFQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7RUFDQTtFQUNBO0NBQ0E7QUFHQTs7QUFFQTs7OztFQUlBO0FBQ0E7Q0FDQTtDQUNBO0NBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFFQTtDQUNBO0NBQ0E7Q0FDQTtFQUNBO0FBRUE7QUFFQTtDQUNBO0NBQ0E7Q0FDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0FBQ0E7QUFFQTs7SUFFQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0VBQ0E7QUFDQTtBQUNBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7O0VBRUE7RUFDQTtBQUNBO0FBRUE7OztFQUdBO0VBQ0E7QUFDQTtBQUNBOztFQUVBO0VBQ0E7QUFDQTtBQUNBO0lBQ0E7QUFDQTtBQUNBOztJQUVBO0FBQ0E7QUFDQTtBQUNBO0lBQ0E7QUFDQTtBQUVBOztJQUVBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFDQTs7SUFFQTtBQUNBO0FBQ0E7OztBQ3hVQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFFQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFDQTtFQUNBO0FBQ0E7QUFDQTtFQUNBO0FBQ0E7QUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0FBQ0E7QUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBQ0E7RUFDQTtBQUNBO0FBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNBO0FBQ0E7QUFDQTtFQUNBO0FBQ0E7QUFDQTs7Ozs7O0VBTUE7QUFHQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUVBOzs7RUFHQTtFQUNBO0VBQ0E7QUFFQTtBQUNBOztJQUVBO0lBQ0E7SUFDQTtJQUNBO0FBRUE7QUFDQTtBQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7QUFDQTtBQUNBOzs7QUNuTUE7SUFDQTtBQUNBO0FBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBRUE7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBO0VBQ0E7QUFDQTtBQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUNBO0VBQ0E7QUFDQTtBQUNBO0VBQ0E7QUFDQTtBQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBQ0E7RUFDQTtBQUNBO0FBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtBQUNBO0FBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBQ0E7RUFDQTtBQUNBO0FBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNBO0FBQ0E7QUFDQTtFQUNBO0FBQ0E7QUFDQTs7Ozs7O0VBTUE7QUFHQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUVBOzs7RUFHQTtFQUNBO0VBQ0E7QUFFQTtBQUNBOztJQUVBO0lBQ0E7SUFDQTtJQUNBO0FBRUE7QUFDQTtBQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7QUFDQTtBQUNBOzs7QUMxU0E7Q0FDQTtJQUNBO0FBQ0E7QUFDQTtDQUNBO0FBQ0E7QUFDQTtJQUNBO0NBQ0E7SUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7OztFQUdBO0VBQ0E7RUFDQTtBQUVBO0FBQ0E7O0lBRUE7SUFDQTtJQUNBO0lBQ0E7QUFFQTtBQUVBO0lBQ0E7QUFDQTtBQUNBOztJQUVBO0lBQ0E7QUFDQTtBQUVBOztJQUVBO0FBQ0E7QUFFQTtBQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFDQTs7UUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0lBQ0E7QUFDQTtBQUNBOzs7QUN6REE7SUFDQTtBQUNBO0FBQ0E7TUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtBQUNBO0FBRUE7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFFQTs7O0VBR0E7RUFDQTtFQUNBO0FBRUE7QUFDQTs7SUFFQTtJQUNBO0lBQ0E7SUFDQTtBQUVBO0FBRUE7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFFQTtJQUNBO0FBQ0E7QUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFDQTtJQUNBO0FBQ0E7QUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBRUE7SUFDQTtBQUNBO0FBQ0E7SUFDQTtBQUNBOzs7QUN0SEE7SUFDQTtBQUNBO0FBQ0E7TUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtBQUNBO0FBRUE7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFFQTs7O0VBR0E7RUFDQTtFQUNBO0FBRUE7QUFDQTs7SUFFQTtJQUNBO0lBQ0E7SUFDQTtBQUVBO0FBRUE7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFFQTtJQUNBO0FBQ0E7QUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFDQTtJQUNBO0FBQ0E7QUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBRUE7SUFDQTtBQUNBO0FBQ0E7SUFDQTtBQUNBOzs7QUMrUEE7RUFDQTtFQUNBO0FBQ0E7QUFDQTtBQUNBO0lBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3N0eWxlcy9hcHAuY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy9jb21wb25lbnRzL1RhYnMudnVlIiwid2VicGFjazovLy8uL2Fzc2V0cy9jb21wb25lbnRzL1RoZVRhYnMudnVlIiwid2VicGFjazovLy8uL2Fzc2V0cy9jb21wb25lbnRzL290aGVyL0RpY2UzRC52dWUiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL2NvbXBvbmVudHMvcGFnZXMvZG9jdW1lbnQudnVlIiwid2VicGFjazovLy8uL2Fzc2V0cy9jb21wb25lbnRzL3BhZ2VzL2RyaXZlLnZ1ZSIsIndlYnBhY2s6Ly8vLi9hc3NldHMvY29tcG9uZW50cy9jaGFyYWN0ZXJDcmVhdG9yL0FyY2hldHlwZUNhcmQudnVlIiwid2VicGFjazovLy8uL2Fzc2V0cy9jb21wb25lbnRzL2NoYXJhY3RlckNyZWF0b3IvRGljZU1vZHVsZS52dWUiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL2NvbXBvbmVudHMvY2hhcmFjdGVyQ3JlYXRvci9EaWNlSGlzdG9yeS52dWUiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL2NvbXBvbmVudHMvY2hhcmFjdGVyQ3JlYXRvci9TdGF0ZXMudnVlIiwid2VicGFjazovLy8uL2Fzc2V0cy9jb21wb25lbnRzL3BhZ2VzL2NoYXJhY3RlclRhYi9jaGFyYWN0ZXJTaGVldC52dWUiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL2NvbXBvbmVudHMvcGFnZXMvY2hhcmFjdGVyVGFiL2Nob29zZUFyY2hldHlwZS52dWUiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL2NvbXBvbmVudHMvcGFnZXMvZ3JvdXAudnVlIiwid2VicGFjazovLy8uL2Fzc2V0cy9jb21wb25lbnRzL3BhZ2VzL2hvbWUudnVlIiwid2VicGFjazovLy8uL2Fzc2V0cy9jb21wb25lbnRzL3BhZ2VzL25hbWVzLnZ1ZSIsIndlYnBhY2s6Ly8vLi9hc3NldHMvY29tcG9uZW50cy9tYXAvc2lkZUJhci52dWUiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL2NvbXBvbmVudHMvb3RoZXIvY3VzdG9tRHJvcGRvd24udnVlIiwid2VicGFjazovLy8uL2Fzc2V0cy9jb21wb25lbnRzL21hcC90ZXh0RWRpdG9yLnZ1ZSIsIndlYnBhY2s6Ly8vLi9hc3NldHMvY29tcG9uZW50cy9tYXAvbWFwRXZlbnQudnVlIiwid2VicGFjazovLy8uL2Fzc2V0cy9jb21wb25lbnRzL3BhZ2VzL3dvcmxkbWFwLnZ1ZSIsIndlYnBhY2s6Ly8vLi9hc3NldHMvY29tcG9uZW50cy9wYWdlcy9nYW1lc2xpc3QudnVlIiwid2VicGFjazovLy8uL2Fzc2V0cy9jb21wb25lbnRzL3BhZ2VzL2dhbWVEYXNoYm9hcmQudnVlIiwid2VicGFjazovLy8uL2Fzc2V0cy9jb21wb25lbnRzL0RldGFpbHNDYXJkLnZ1ZSIsIndlYnBhY2s6Ly8vLi9hc3NldHMvY29tcG9uZW50cy9wYWdlcy9tb2RhbC9tb2RhbF9uZXdHYW1lLnZ1ZSIsIndlYnBhY2s6Ly8vLi9hc3NldHMvY29tcG9uZW50cy9wYWdlcy9tb2RhbC9tb2RhbF9jb25maXJtLnZ1ZSIsIndlYnBhY2s6Ly8vLi9hc3NldHMvQXBwLnZ1ZSJdLCJzb3VyY2VzQ29udGVudCI6WyJib2R5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGdyYXk7XG59XG4iLCI8dGVtcGxhdGU+XG4gIDxidXR0b24gOmNsYXNzPVwiYGJ0biAke2dldEFjdGl2ZVRhYigpPT10YWIuY29tcG9uZW50ID8nYWN0aXZlJzonJ30gJHtsYXN0ID8gJ2xhc3QnOicnfWBcIiBAY2xpY2s9XCJ0YWIudXJsID09ICcnID8gc3dpdGNoVGFiKCk6b3BlblVybCgpXCI+XG4gICAgICAgIHt7dGFiLmxpYn19XG4gIDwvYnV0dG9uPlxuPC90ZW1wbGF0ZT5cbjxzY3JpcHQ+XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgLy9Ob20gZGUgbGEgdnVlXG4gIG5hbWU6IFwiVGFic1wiLFxuICBpbmplY3Q6WydnZXRBY3RpdmVUYWInLCAnc2V0QWN0aXZlVGFiJywnZ2V0T3JpZ2luJ10sXG4gIHByb3BzOiB7XG4gICAgdGFiOnt9LFxuICAgIGxhc3Q6e1xuICAgICAgVHlwZTpCb29sZWFuLFxuICAgICAgZGVmYXVsdDpmYWxzZSxcbiAgICB9LFxuICB9LFxuXG4gIG1ldGhvZHM6IHtcbiAgICBzd2l0Y2hUYWIoKVxuICAgIHtcbiAgICAgIHRoaXMuc2V0QWN0aXZlVGFiKHRoaXMudGFiLmNvbXBvbmVudCk7XG4gICAgICB3aW5kb3cuaGlzdG9yeS5wdXNoU3RhdGUobnVsbCwgYGAsIGAke3RoaXMuZ2V0T3JpZ2lufS8/dGFiPSR7dGhpcy50YWIuY29tcG9uZW50fWApO1xuICAgICAgd2luZG93Lmhpc3RvcnkucmVwbGFjZVN0YXRlKG51bGwsIGBgLCBgJHt0aGlzLmdldE9yaWdpbn0vP3RhYj0ke3RoaXMudGFiLmNvbXBvbmVudH1gKTtcbiAgICAgIHRoaXMuJGVtaXQoJ2Nsb3NlVGFiJyx0cnVlKTtcbiAgICB9LFxuICAgIG9wZW5VcmwoKVxuICAgIHtcbiAgICAgIHdpbmRvdy5vcGVuKHRoaXMudGFiLnVybCwgJ19zZWxmJykuZm9jdXMoKTtcbiAgICB9XG4gIH0sXG59O1xuPC9zY3JpcHQ+XG5cbjxzdHlsZSBzY29wZWQ+XG4uYnRuIHtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMzBweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogaW5oZXJpdDtcbiAgICB6LWluZGV4OiAxO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBib3JkZXI6IDBweCBzb2xpZCAjMWUyODJkO1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDFweDtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgIGZvbnQtZmFtaWx5OiAnQWxhdGEnLCBzYW5zLXNlcmlmO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuN3B4O1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuNHM7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuLmxhc3R7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxNjUgNDIgNDIgLyA4MCUpO1xufVxuLmJ0bjpob3Zlcjpub3QoLmFjdGl2ZSkge1xuICAgIGJvcmRlci1jb2xvcjogI2YwZTZkMjtcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiA0cHg7XG4gICAgdGV4dC1zaGFkb3c6IDBweCAwcHggMnB4IHdoaXRlLCAwIDAgMjVweCAjZjBlNmQyO1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMnM7XG59XG4uYWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDEwOCwgMTI1LDAuNSk7XG59XG5cbi5idG46Zm9jdXMtdmlzaWJsZSxcbi5idG46Zm9jdXMge1xuICAgIG91dGxpbmU6IDA7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogODUwcHgpe1xuICAuYnRuIHtcbiAgICBoZWlnaHQ6MTAwJTtcbiAgICBmb250LXNpemU6IDEuNWVtO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMTBhMTM7XG4gIH1cbiAgLmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAxMDgsIDEyNSwxKTtcbn1cbn1cbjwvc3R5bGU+XG4iLCI8dGVtcGxhdGU+XG48ZGl2IGlkPVwiVGhlVGFic1wiIDpjbGFzcz1cImhpZGRlbj8ncmVkdWl0JzonJ1wiPlxuICA8ZGl2IGlkPVwibXlTaWRlbmF2XCIgOmNsYXNzPVwiaGlkZGVuPydoaWRkZW4nOicnXCI+XG4gICAgPGEgaWQ9XCJjbG9zZUJ0blwiIGNsYXNzPVwiY2xvc2VcIiBAY2xpY2s9XCJoaWRkZW49dHJ1ZVwiID48Zm9udC1hd2Vzb21lLWljb24gOmljb249XCJbJ2ZhcycsICd0aW1lcyddXCIgLz48L2E+XG4gICAgICA8dWw+XG4gICAgICAgIDxsaSB2LWZvcj1cIih0YWIsaW5kZXgpIGluIHRhYnNcIiA6a2V5PVwiaW5kZXhcIj5cbiAgICAgICAgICA8VGFicyA6dGFiPVwidGFiXCIgQGNsb3NlVGFiPVwiaGlkZGVuPXRydWVcIiA6bGFzdD1cImluZGV4ID09ICh0YWJzLmxlbmd0aCAtIDEpXCIvPlxuICAgICAgICA8L2xpPlxuICAgICAgPC91bD5cbiAgPC9kaXY+XG4gIDxhIGlkPVwib3BlbkJ0blwiIEBjbGljaz1cImhpZGRlbj1mYWxzZVwiIDpjbGFzcz1cIiFoaWRkZW4/J2hpZGRlbic6JydcIj5cbiAgICAgIDxmb250LWF3ZXNvbWUtaWNvbiA6aWNvbj1cIlsnZmFzJywgJ2JhcnMnXVwiIC8+XG4gIDwvYT5cbjwvZGl2PlxuPC90ZW1wbGF0ZT5cbjxzY3JpcHQ+XG5pbXBvcnQgVGFicyBmcm9tICcuL1RhYnMnO1xuaW1wb3J0IHsgbGlicmFyeSB9IGZyb20gXCJAZm9ydGF3ZXNvbWUvZm9udGF3ZXNvbWUtc3ZnLWNvcmVcIjtcbmltcG9ydCB7IGZhQmFycyxmYVRpbWVzfSBmcm9tIFwiQGZvcnRhd2Vzb21lL2ZyZWUtc29saWQtc3ZnLWljb25zXCI7XG5cbmxpYnJhcnkuYWRkKGZhQmFycyxmYVRpbWVzKTtcblxuZXhwb3J0IGRlZmF1bHQge1xuICAvL05vbSBkZSBsYSB2dWVcbiAgbmFtZTogXCJUaGVUYWJzXCIsXG4gIGluamVjdDpbJ2dldEFjdGl2ZVRhYiddLFxuICAvL29uIHByZWNpc2UgbGVzIHZ1ZXMgcXVpIHZvbnQgw6p0cmUgY29tbXVuaXF1w6llIMOgIGxhIHBhZ2VcbiAgY29tcG9uZW50czoge1RhYnN9LFxuICBwcm9wczoge1xuICAgIHRhYnM6e30sXG4gIH0sXG5cbiAgZGF0YSgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgaGlkZGVuOnRydWUsXG4gICAgfTtcbiAgfSxcbiAgcHJvdmlkZSgpIHtcbiAgICByZXR1cm4ge307XG4gIH0sXG59O1xuPC9zY3JpcHQ+XG5cbjxzdHlsZSBzY29wZWQ+XG51bCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGZvbnQtZmFtaWx5OiAnTWVkaWV2YWxTaGFycCcsIGN1cnNpdmU7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgbGlzdC1zdHlsZS1pbWFnZTogbm9uZTtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNiwxZnIpO1xuICAgIG1hcmdpbi1ibG9jay1zdGFydDogMGVtO1xuICAgIG1hcmdpbi1ibG9jay1lbmQ6IDBlbTtcbiAgICBwYWRkaW5nLWlubGluZS1zdGFydDogMHB4O1xufVxuXG5UYWJzOmZvY3VzIHtcbiAgICBvdXRsaW5lOiAwO1xufVxuLyogU2lkZW5hdiBtZW51ICovXG4jY2xvc2VCdG4sXG4jb3BlbkJ0biB7XG4gICAgZGlzcGxheTpub25lO1xufVxuXG4gIC5oaWRkZW57XG4gICAgZGlzcGxheTpibG9jaztcbiAgfVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogODUwcHgpe1xuICAjVGhlVGFicyxcbiAgI215U2lkZW5hdntcbiAgICBcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDVlbSk7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICB6LWluZGV4OjEwMDtcblxuICB9XG4gICNUaGVUYWJzLnJlZHVpdHtcbiAgICB3aWR0aDogMjAlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cbiAgI215U2lkZW5hdjpub3QoLmhpZGRlbilcbiAge1xuICAgIGhlaWdodDogY2FsYygxMDB2aCAtIDVlbSk7XG4gIH1cbiAgdWwge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgIGdyaWQtdGVtcGxhdGUtcm93czogcmVwZWF0KDYsMWZyKTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC40cztcbiAgfVxuXG4gICAgLyogU2lkZW5hdiBtZW51ICovXG4gICNjbG9zZUJ0bixcbiAgI29wZW5CdG4ge1xuICAgIGRpc3BsYXk6YmxvY2s7XG4gICAgZm9udC1zaXplOiAzLjVlbTtcbiAgICBwYWRkaW5nOiA4cHggMTVweDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgfVxuICAjb3BlbkJ0biBzdmd7XG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICB9XG4gIC5oaWRkZW57XG4gICAgZGlzcGxheTpub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbjwvc3R5bGU+XG4iLCI8dGVtcGxhdGU+XG4gIDxkaXYgY2xhc3M9XCJ2aWV3XCI+XG4gICAgPGRpdiA6Y2xhc3M9XCJkaWNlQ2xhc3MoKVwiPlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxmb250LWF3ZXNvbWUtaWNvbiA6aWNvbj1cIlsnZmFzJywgJ2RpY2Utb25lJ11cIiAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8Zm9udC1hd2Vzb21lLWljb24gOmljb249XCJbJ2ZhcycsICdkaWNlLXR3byddXCIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPGZvbnQtYXdlc29tZS1pY29uIDppY29uPVwiWydmYXMnLCAnZGljZS10aHJlZSddXCIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPGZvbnQtYXdlc29tZS1pY29uIDppY29uPVwiWydmYXMnLCAnZGljZS1mb3VyJ11cIiAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8Zm9udC1hd2Vzb21lLWljb24gOmljb249XCJbJ2ZhcycsICdkaWNlLWZpdmUnXVwiIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxmb250LWF3ZXNvbWUtaWNvbiA6aWNvbj1cIlsnZmFzJywgJ2RpY2Utc2l4J11cIiAvPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbjwvdGVtcGxhdGU+XG4gIDxzY3JpcHQ+XG5pbXBvcnQgeyBsaWJyYXJ5IH0gZnJvbSBcIkBmb3J0YXdlc29tZS9mb250YXdlc29tZS1zdmctY29yZVwiO1xuaW1wb3J0IHsgZmFEaWNlT25lLGZhRGljZVR3byxmYURpY2VUaHJlZSxmYURpY2VGb3VyLGZhRGljZUZpdmUsZmFEaWNlU2l4fSBmcm9tIFwiQGZvcnRhd2Vzb21lL2ZyZWUtc29saWQtc3ZnLWljb25zXCI7XG5cbmxpYnJhcnkuYWRkKGZhRGljZU9uZSxmYURpY2VUd28sZmFEaWNlVGhyZWUsZmFEaWNlRm91cixmYURpY2VGaXZlLGZhRGljZVNpeCk7XG4gIGV4cG9ydCBkZWZhdWx0IHtcbiAgICAvL05vbSBkZSBsYSB2dWVcbiAgICBuYW1lOiBcIkRpY2UzRFwiLFxuICAgIGRhdGEoKSB7XG4gICAgcmV0dXJuIHt9O1xuICB9LFxuICBwcm9wczp7XG4gICAgdmFsdWU6e30sXG4gIH0sXG4gIG1ldGhvZHM6IHtcbiAgICBkaWNlQ2xhc3MoKXtcbiAgICAgIGxldCBjbGFzc2UgPScnO1xuICAgICAgc3dpdGNoKHRoaXMudmFsdWUpXG4gICAgICB7XG4gICAgICAgIGNhc2UgMTpcbiAgICAgICAgICBjbGFzc2UgPSAnb25lJztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAyOlxuICAgICAgICAgIGNsYXNzZSA9ICd0d28nO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgY2xhc3NlID0gJ3RocmVlJztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA0OlxuICAgICAgICAgIGNsYXNzZSA9ICdmb3VyJztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA1OlxuICAgICAgICAgIGNsYXNzZSA9ICdmaXZlJztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA2OlxuICAgICAgICAgIGNsYXNzZSA9ICdzaXgnO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGNsYXNzZSArICcgZGljZTNEJztcbiAgICB9XG4gIH0sXG4gIHdhdGNoOntcbiAgICB2YWx1ZSgpe1xuICAgICAgdGhpcy4kZm9yY2VVcGRhdGUoKTtcbiAgICB9XG4gIH1cbiAgfTtcbiAgPC9zY3JpcHQ+XG4gIFxuICA8c3R5bGUgc2NvcGVkPlxuICAudmlld3tcbiAgICB3aWR0aDo1MHB4O1xuICAgIGhlaWdodDo1MHB4O1xuICAgIG1hcmdpbjoxcHg7XG4gICAgcGVyc3BlY3RpdmU6NjAwcHg7XG4gIH1cbiAgLmRpY2UzRHtcbiAgICBmb250LXNpemU6IDRyZW07XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRyYW5zZm9ybS1zdHlsZTpwcmVzZXJ2ZS0zZDtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMXM7XG4gICAgdHJhbnNmb3JtOiByb3RhdGVZKDM2MGRlZyk7XG4gICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgd2lkdGg6IDUwcHg7XG4gICAgaGVpZ2h0OiA1MHB4O1xuICB9XG5cbiAgLm9uZXtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoMGRlZyk7XG4gIH1cblxuICAudHdve1xuICAgIHRyYW5zZm9ybTogcm90YXRleCg5MGRlZyk7XG4gIH1cblxuICAudGhyZWV7XG4gICAgdHJhbnNmb3JtOiByb3RhdGVZKC05MGRlZyk7XG4gIH1cblxuICAuZm91cntcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoOTBkZWcpO1xuICB9XG5cbiAgLmZpdmV7XG4gICAgdHJhbnNmb3JtOiByb3RhdGV4KC05MGRlZyk7XG4gIH1cblxuICAuc2l4e1xuICAgIHRyYW5zZm9ybTogcm90YXRlWSgxODBkZWcpO1xuICB9XG5cbiAgc3Zne1xuICAgIHdpZHRoOiA1MHB4O1xuICAgIGhlaWdodDogNTBweDtcbiAgfVxuXG4gIC5kaWNlM0QgPiBkaXZ7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICBoZWlnaHQ6IDUwcHg7XG4gICAgd2lkdGg6IDUwcHg7XG4gICAgY29sb3I6ICNmMGU2ZDI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzI4MjgyODtcbiAgfVxuXG4gIC5kaWNlM0QgPiBkaXY6bnRoLW9mLXR5cGUoMSl7XG4gIHRyYW5zZm9ybTogcm90YXRlWSgwZGVnKSB0cmFuc2xhdGVaKDI1cHgpO1xuICBjb2xvcjpicm93bjtcbiAgfVxuXG4gIC5kaWNlM0QgPiBkaXY6bnRoLW9mLXR5cGUoMil7XG4gIHRyYW5zZm9ybTogcm90YXRlWCgtOTBkZWcpIHRyYW5zbGF0ZVooMjVweCk7XG4gIH1cblxuICAuZGljZTNEID4gZGl2Om50aC1vZi10eXBlKDMpe1xuICB0cmFuc2Zvcm06IHJvdGF0ZVkoOTBkZWcpIHRyYW5zbGF0ZVooMjVweCk7XG4gIH1cblxuICAuZGljZTNEID4gZGl2Om50aC1vZi10eXBlKDQpe1xuICB0cmFuc2Zvcm06IHJvdGF0ZVkoMjcwZGVnKSB0cmFuc2xhdGVaKDI1cHgpO1xuICB9XG5cbiAgLmRpY2UzRCA+IGRpdjpudGgtb2YtdHlwZSg1KXtcbiAgdHJhbnNmb3JtOiByb3RhdGVYKDkwZGVnKSB0cmFuc2xhdGVaKDI1cHgpO1xuICB9XG5cbiAgLmRpY2UzRCA+IGRpdjpudGgtb2YtdHlwZSg2KXtcbiAgdHJhbnNmb3JtOiByb3RhdGVZKDE4MGRlZykgdHJhbnNsYXRlWigyNXB4KTtcbiAgfVxuXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg1MHB4KXt9XG5cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogODUwcHgpIGFuZCAob3JpZW50YXRpb246cG9ydHJhaXQpe31cbiAgPC9zdHlsZT5cbiAgIiwiPHRlbXBsYXRlPlxuXHQ8ZGl2PlxuXHRcdDxhc2lkZSBjbGFzcz1cImxvcmUtbmF2XCI+XG5cdFx0XHQ8ZGl2PlxuICAgICAgICA8YSBocmVmPVwiI2NvbnRleHRlXCI+IENvbnRleHRlIDwvYT5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdj5cbiAgICAgICAgPGEgaHJlZj1cIiNmYWN0aW9uc1wiPiBMZXMgZmFjdGlvbnM8L2E+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxhIGhyZWY9XCIjcGpcIj5DcsOpYXRpb24gZGUgcGVyc29ubmFnZSA8L2E+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxhIGhyZWY9XCIjc3lzdGVtZVwiPiBVdGlsaXNlciBsZSBTeXN0w6htZSA8L2E+XG4gICAgICA8L2Rpdj5cblx0XHQ8L2FzaWRlPlxuICA8ZGl2IGNsYXNzPVwiYmFja2dyb3VuZFwiPlxuICAgIDxkaXYgdi1mb3I9XCJpIGluIDIwXCIgOmtleT1cImlcIiBjbGFzcz1cInNwYXJrXCIgOnN0eWxlPVwiZ2V0U3R5bGVSYW5kb20oKVwiPjwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBpZD1cIkxvcmVUYWJcIiBjbGFzcz1cIm1haW5zY3JlZW5cIj5cblx0XHQ8c2VjdGlvbiBjbGFzcz1cImxvcmUtcG9zdFwiPlxuXHRcdFx0PGgxPkxlcyB2YWdhYm9uZHM8L2gxPlxuICAgICAgPGRpdj5MZSBkw6lidXQgZGUgbGEgZmluLjwvZGl2PlxuICAgICAgPGFydGljbGU+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbnRyb1wiIGlkPVwiY29udGV4dGVcIj5cbiAgICAgICAgICA8cD5cbiAgICAgICAgICAgIDxzcGFuPlJhZGllIDEzMDc8L3NwYW4+LCB1biBoaXZlciBwYXJ0aWN1bGnDqHJlbWVudCBydWRlIHZpZW50IGRlIHNlIHRlcm1pbmVyLlxuICAgICAgICAgICAgTGEgcGx1cGFydCBkdSBwYXlzLCA8c3Bhbj5hZmZhbcOpPC9zcGFuPiwgYSBkw7sgZW52b3llciBzZXMgcsOpc2VydmVzIGRlIG5vdXJyaXR1cmUgZGUgbCdhdXRyZSBjw7R0w6kgZGUgbGEgbWVyLCBkJ2/DuSBsJ2FybcOpZSByw6lndWxpw6hyZSBxdWkgYSBwb3J0w6kgbGEgY3JvaXNhZGUsIHJldmllbnQgPHNwYW4+cGVyZGFudGU8L3NwYW4+LlxuICAgICAgICAgICAgTGUgcHJpbnRlbXBzIHRhbnQgYXR0ZW5kdSBuJ29mZnJlIGRlIHF1ZSBkZSBtYWlncmVzIHLDqWNvbHRlcywgaWwgZXN0IHRlcm5lIGV0IGZyb2lkLlxuICAgICAgICAgIDwvcD5cbiAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgTGVzIGNvbmRpdGlvbnMgZGUgdmllIHByw6ljYWlyZXMgb250IHByb3ZvcXXDqSBkZXMgPHNwYW4+w6lwaWTDqW1pZXM8L3NwYW4+IGF1eCBxdWF0cmVzIGNvaW5zIGR1IHBheXMuXG4gICAgICAgICAgPC9wPlxuICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICBMZSBzaG9ndW5hdCBzJ2VzdCByZXBsacOpIHN1ciBsdWktbcOqbWUsIGFmZmFpYmxpdCBwYXIgbGVzIG5vbWJyZXVzZXMgPHNwYW4+csOpdm9sdGVzPC9zcGFuPiBkZSB2aWxsYWdlb2lzIGFmZmFtw6lzIHF1aSBvbnQgYWNoZXbDqSBsZXMgZGVybmnDqHJlcyBwb2NoZXMgZCdhdXRvcml0w6lzIGVuIGRlaG9ycyBkZSBsYSBjYXBpdGFsZS4gQWluc2kgbGUgc2hvZ3VuYXQsIDxzcGFuPnBhcmFub8OvYXF1ZTwvc3Bhbj4sIGdhcmRlIHNlcyBkZXJuacOocmVzIGZvcmNlcyBwb3VyIHZlcnJvdWlsbGVyIHNhIHBsYWNlIGZvcnRlLlxuICAgICAgICAgICAgICBEZXMgdmlsbGFnZXMgc29udCBtaXMgw6Agc2FjIHVuIHBldSBwYXJ0b3V0IGZvcsOnYW50IGxlcyBwb3B1bGF0aW9ucyBsb2NhbGVzIMOgIGZ1aXIgbGV1ciBtYWlzb24uXG4gICAgICAgICAgPC9wPlxuXG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9hcnRpY2xlPlxuICAgICAgPGFydGljbGU+XG4gICAgICAgIDxoMyBpZD1cImZhY3Rpb25zXCI+TGVzIGZhY3Rpb25zPC9oMz5cbiAgICAgICAgPHVsIGNsYXNzPVwiZmFjdGlvbnNcIj5cbiAgICAgICAgICA8bGkgdi1mb3I9XCIoZmFjdGlvbixpbmRleCkgaW4gZmFjdGlvbnNcIiA6a2V5PVwiaW5kZXhcIj5cbiAgICAgICAgICAgIDxkaXYgQGNsaWNrPVwidG9nZ2xlRGlzcGxheUNsYW4oaW5kZXgpXCIgOnN0eWxlPVwiYGJhY2tncm91bmQtaW1hZ2U6IHVybCgke2ZhY3Rpb24uaW1nfSk7YFwiIDp0aXRsZT1cImZhY3Rpb24ubm9tXCI+XG4gICAgICAgICAgICAgIDxoND57e2ZhY3Rpb24ubm9tfX08L2g0PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JhZGllbnRcIj48L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiA6Y2xhc3M9XCIoZGlzcGxheUNsYW4gPT09IGluZGV4KT8nYWN0aXZlJzonJ1wiPlxuICAgICAgICAgICAgICA8aDM+e3tmYWN0aW9uLm5vbX19PC9oMz5cbiAgICAgICAgICAgICAgPHAgdi1odG1sPVwiZmFjdGlvbi5EZXNjcmlwdGlvblwiPjwvcD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvbGk+XG4gICAgICAgIDwvdWw+XG4gICAgICA8L2FydGljbGU+XG4gICAgICAgIDxoMj5Sw6hnbGVzPC9oMj5cblx0XHRcdFx0PGRldGFpbHM+XG5cdFx0XHRcdFx0PHN1bW1hcnkgaWQ9XCJwalwiPkNyw6lhdGlvbiBkZSBwZXJzb25uYWdlPC9zdW1tYXJ5PlxuXHRcdFx0XHRcdDxoMz5DcsOpYXRpb24gZGUgbGEgZmljaGU8L2gzPlxuXHRcdFx0XHRcdDxwPkxlIGpvdWV1ciByw6lwYXJ0aXQgNSBwb2ludHMgZW50cmUgbGVzIDMgc3RhdHMgKENvcnBzLCBlc3ByaXQgZXQgc29jaWFsKSBwcsOpc2VudGVzIHN1ciBsYSBmaWNoZSAoZW50cmUgMyBldCAxKVxuXHRcdFx0XHRcdFx0PGJyIC8+XG5cdFx0XHRcdFx0XHRJbCBjaG9pc2l0IGRldXggY29tcMOpdGVuY2VzIGFpbnNpIHF1J3VuZSBzcMOpY2lhbGl0w6kuXG5cdFx0XHRcdFx0XHRJbCBjb21tZW5jZSBhdmVjIHVuZSBhcm1lIGV0IHVuZSBhcm11cmUgZCd1bmUgY2xhc3NlIMOpZ2FsZSBvdSBpbmbDqXJpZXVyIMOgIHNhIHZhbGV1ciBkZSBjb3Jwc1xuXHRcdFx0XHRcdFx0PGJyIC8+XG5cdFx0XHRcdFx0XHQ8ZW0+U2kgamFtYWlzIGxlcyBqb3VldXJzIG1hbnF1ZW50IGQnaWTDqWVzLCB2b3VzIHBvdXZleiBsYW5jZXogdW4gRDgwIG91IGFsbGVyIHN1ciBsJ29uZ2xldCBcImNyw6lhdGlvbiBkZSBncm91cGVcIiBwb3VyIG9idGVuaXIgdW4gcGVyc29ubmFnZSBzdXIgbGEgdGFibGUgZGVzIGFyY2jDqXR5cGVzLiwgZGVzIGNhcnRlcyBleHBsaWNhdGl2ZXMgc29udCBmb3VybmllcyBlbiBmaW4gZCdvdXZyYWdlLjwvZW0+IDwvcD5cblx0XHRcdFx0XHQ8ZGV0YWlscz5cblx0XHRcdFx0XHRcdDxzdW1tYXJ5PlRhYmxlIGRlcyByw7RsZXM8L3N1bW1hcnk+XG5cdFx0XHRcdFx0XHQ8dGFibGU+XG5cdFx0XHRcdFx0XHRcdDxjYXB0aW9uPjxidXR0b24gY2xhc3M9XCJmYXYtYnV0dG9uXCIgQGNsaWNrPVwidG9nZ2xlRGlzcGxheSgncm9sZScpXCI+PGkgY2xhc3M9XCJmYXIgZmEtc3RhclwiIGlkPVwiZmF2LXJvbGVcIiBzdHlsZT1cImZvbnQtc2l6ZToyMHB4O1wiPjwvaT48L2J1dHRvbj5Bam91dGVyIC8gU3VwcHJpbWVyIGNldHRlIHRhYmxlIGRlcyBmYXZvcmlzPC9jYXB0aW9uPlxuXHRcdFx0XHRcdFx0XHQ8dHI+XG5cdFx0XHRcdFx0XHRcdFx0PHRoPjJENjwvdGg+XG5cdFx0XHRcdFx0XHRcdFx0PHRoPlLDtGxlPC90aD5cblx0XHRcdFx0XHRcdFx0XHQ8dGg+QnV0PC90aD5cblx0XHRcdFx0XHRcdFx0PC90cj5cbiAgICAgICAgICAgICAgPHRyIHYtZm9yPVwicm9sZSBpbiByb2xlc1wiIDprZXk9XCJyb2xlLmlkXCI+XG4gICAgICAgICAgICAgICAgPHRkPnt7cm9sZS5qZXR9fTwvdGQ+XG4gICAgICAgICAgICAgICAgPHRkPnt7cm9sZS5yb2xlfX08L3RkPlxuICAgICAgICAgICAgICAgIDx0ZD57e3JvbGUuYnV0fX08L3RkPlxuICAgICAgICAgICAgICA8L3RyPlxuXHRcdFx0XHRcdFx0PC90YWJsZT5cblxuXHRcdFx0XHRcdDwvZGV0YWlscz5cblx0XHRcdFx0PC9kZXRhaWxzPlxuXHRcdFx0PC9hcnRpY2xlPlxuXHRcdFx0PGFydGljbGU+XG5cdFx0XHRcdDxkZXRhaWxzPlxuXHRcdFx0XHRcdDxzdW1tYXJ5IGlkPVwic3lzdGVtZVwiPlV0aWxpc2VyIGxlIFN5c3TDqG1lPC9zdW1tYXJ5PlxuXHRcdFx0XHRcdDxwPkxlIGpvdWV1ciBjb21tZW5jZSBhdmVjIHVuIDxzdHJvbmc+c3RvY2sgZGUgM0Q2PC9zdHJvbmc+IHF1J2lsIHV0aWxpc2UgdG91dCBhdSBsb25nIGRlIGxhIHBhcnRpZS48YnIgLz5cblx0XHRcdFx0XHRcdExvcnMgZGVzIHRlc3Qgb24gbGFuY2UgbGUgbm9tYnJlIGRlIGTDqXMgw6lnYWxlIMOgIGxhIHZhbGV1ciBkYW5zIGxhIGNvbXDDqXRlbmNlIGVuIHF1ZXN0aW9uIGV0IGxlIGpvdWV1ciBjaG9pc2kgbGUgZMOpIHF1J2lsIHByw6lmw6hyZS48YnIgLz5cblx0XHRcdFx0XHRcdFVuIGpvdWV1ciBuZSBwZXV0IHV0aWxpc2VyIHF1ZSBsZXMgZMOpcyBwcsOpc2VudHMgZGFucyBzb24gc3RvY2suXG5cdFx0XHRcdFx0PC9wPlxuXHRcdFx0XHRcdDx0YWJsZSBjbGFzcz1cImJpZ1wiPlxuXHRcdFx0XHRcdFx0PGNhcHRpb24+PGJ1dHRvbiBjbGFzcz1cImZhdi1idXR0b25cIiBAY2xpY2s9XCJ0b2dnbGVEaXNwbGF5KCd0ZXN0JylcIj48aSBzdHlsZT1cImZvbnQtc2l6ZToyMHB4O1wiIGNsYXNzPVwiZmFyIGZhLXN0YXJcIiBpZD1cImZhdi10ZXN0XCI+PC9pPjwvYnV0dG9uPiBBam91dGVyIC8gU3VwcHJpbWVyIGNldHRlIHRhYmxlIGRlcyBmYXZvcmlzPC9jYXB0aW9uPlxuXHRcdFx0XHRcdFx0PHRyPlxuXHRcdFx0XHRcdFx0XHQ8dGg+RGlmZmljdWx0w6kgZHUgdGVzdDwvdGg+XG5cdFx0XHRcdFx0XHRcdDx0aCBjbGFzcz1cImJpZy10aFwiPlLDqXN1bHRhdHMgYXR0ZW5kdXM8L3RoPlxuXHRcdFx0XHRcdFx0PC90cj5cblx0XHRcdFx0XHRcdDx0cj5cblx0XHRcdFx0XHRcdFx0PHRkPlRyw6hzIER1cjwvdGQ+XG5cdFx0XHRcdFx0XHRcdDx0ZD42PC90ZD5cblx0XHRcdFx0XHRcdDwvdHI+XG5cdFx0XHRcdFx0XHQ8dHI+XG5cdFx0XHRcdFx0XHRcdDx0ZD5Bc3NleiBEdXI8L3RkPlxuXHRcdFx0XHRcdFx0XHQ8dGQ+NSs8L3RkPlxuXHRcdFx0XHRcdFx0PC90cj5cblx0XHRcdFx0XHRcdDx0cj5cblx0XHRcdFx0XHRcdFx0PHRkPk1veWVuPC90ZD5cblx0XHRcdFx0XHRcdFx0PHRkPjQrPC90ZD5cblx0XHRcdFx0XHRcdDwvdHI+XG5cdFx0XHRcdFx0XHQ8dHI+XG5cdFx0XHRcdFx0XHRcdDx0ZD5GYWNpbGU8L3RkPlxuXHRcdFx0XHRcdFx0XHQ8dGQ+Mys8L3RkPlxuXHRcdFx0XHRcdFx0PC90cj5cblxuXHRcdFx0XHRcdDwvdGFibGU+XG5cblx0XHRcdFx0XHQ8cD48c3Ryb25nPkxhIHNww6ljaWFsaXTDqSBkdSBwZXJzb25uYWdlPC9zdHJvbmc+IGx1aSBwZXJtZXQgZGUgYmFpc3NlciBkJ3VuIGNyYW4gbGEgZGlmZmljdWx0w6kgZGVzIHRlc3Qgw6AgZmFpcmUgZGFucyBjZSBkb21haW5lLjwvcD5cblx0XHRcdFx0XHQ8ZGV0YWlscz5cblx0XHRcdFx0XHRcdDxzdW1tYXJ5PkxlcyBtZW5hY2VzPC9zdW1tYXJ5PlxuXHRcdFx0XHRcdFx0PHA+TG9yc3F1J3VuIGpvdWV1ciBzdWJpdCB1bmUgYWx0w6lyYXRpb24gZCfDqXRhdCwgaWwgcGxhY2UgdW4gZMOpIGRlIHNvbiBzdG9jayBzdXIgbGEgY2FzZSBjb3JyZXNwb25kYW50ZSwgY2UgZMOpIG4nZXN0IHBsdXMgdXRpbGlzYWJsZSB0YW50IHF1ZSBsJ8OpdGF0IG4nZXN0IHBhcyBzb2lnbsOpLjxiciAvPlxuXHRcdFx0XHRcdFx0XHRMZXMgam91ZXVycyBuZSBwZXV2ZW50IHBhcyBmYWlyZSBkZSByw6l1c3NpdGUgY3JpdGlxdWVzLCBjZXBlbmRhbnQgaWxzIHBldXZlbnQgZmFpcmUgZGVzIDxzdHJvbmc+w6ljaGVjcyBjcml0aXF1ZXM8L3N0cm9uZz4gKGxlIHLDqXN1bHRhdCBmaW5hbCBkJ3VuIHRlc3QgZXN0IMOpZ2FsIMOgIDxzdHJvbmc+MTwvc3Ryb25nPikgY2UgcXVpIGVzdCBzb3V2ZW50IHN5bm9ueW1lIGRlIDxzdHJvbmc+bW9ydDwvc3Ryb25nPiBwb3VyIGxlIHBlcnNvbm5hZ2UuPC9wPlxuXG5cdFx0XHRcdFx0XHQ8cD5Mb3JzcXUndW4gcGVyc29ubmFnZSBuJ2FzIDxzdHJvbmc+cGx1cyBkw6lzPC9zdHJvbmc+IGRhbnMgc29uIHN0b2NrLCBpbCA8c3Ryb25nPm1ldXJ0PC9zdHJvbmc+LjxiciAvPlxuXHRcdFx0XHRcdFx0XHRMb3JzcXUndW4gcGVyc29ubmFnZSBzdWJpdCB1bmUgPHN0cm9uZz5ibGVzc3VyZTwvc3Ryb25nPiBhbG9ycyBxdSdpbCBlc3QgYWZmZWN0w6kgcGFyIHVuIDxzdHJvbmc+w6l0YXQgZ3Jpczwvc3Ryb25nPiwgaWwgPHN0cm9uZz5tZXVydDwvc3Ryb25nPi48YnIgLz5cblx0XHRcdFx0XHRcdFx0TG9yc3F1J3VuIHBlcnNvbm5hZ2UgZXN0IGFmZmVjdMOpIHBhciB1biA8c3Ryb25nPsOpdGF0IG5vaXI8L3N0cm9uZz4sIGlsIDxzdHJvbmc+bWV1cnQ8L3N0cm9uZz4uXG5cdFx0XHRcdFx0XHQ8L3A+XG5cdFx0XHRcdFx0PC9kZXRhaWxzPlxuXHRcdFx0XHRcdDxkZXRhaWxzPlxuXHRcdFx0XHRcdFx0PHN1bW1hcnk+TW9kdWxlciBsYSBkaWZmaWN1bHTDqTwvc3VtbWFyeT5cblx0XHRcdFx0XHRcdDxwPkNlcnRhaW5zIMOpY2hlY3MgY3JpdGlxdWVzIG5lIHNvbnQgcGFzIGzDqXRhdXgsIGNlcGVuZGFudCBpbCBwZXV2ZW50IGVudHJhw65uZXIgdW4gaGFuZGljYXAgaW1tw6lkaWF0IGV0IHBvbmN0dWVsLCBvbiBhcHBlbGxlIMOnYSB1biA8c3Ryb25nPmTDqXNhdmFudGFnZTwvc3Ryb25nPi48YnIgLz5cblx0XHRcdFx0XHRcdFx0PHN0cm9uZz5Ew6lzYXZhbnRhZ2U8L3N0cm9uZz4gOiBsZSBtZW5ldXIgYXMgdW4gRDYgcXVpIHBldXQgdXRpbGlzZXIgbG9ycyBkJ3VuIHRlc3QuIExvcnNxdWUgbGUgam91ZXVyIGEgY2hvaXNpIGxlIGTDqSBmaW5hbCBkZSBzb24gdGVzdCwgbGUgbWVuZXVyIHBldXQgbGFuY2VyIGxlIEQ2IGRlIGTDqXNhdmFudGFnZSBldCBjaG9pc2lyIHVuIG5vdXZlYXUgZMOpIGZpbmFsIGVudHJlIHNvbiByw6lzdWx0YXQgZXQgY2VsdWkgZHUgam91ZXVyLjwvcD5cblxuXHRcdFx0XHRcdFx0PHA+RGFucyBkJ2F1dHJlcyBjYXMsIGxlIGhhbmRpY2FwIHBldXQgw6p0cmUgPHN0cm9uZz5wbHVzIGxvbmcgZXQgdHLDqHMgbG91cmQ8L3N0cm9uZz4uIGNldCBoYW5kaWNhcCBwZXV0IMOqdHJlIGNhdXPDqSBwYXIgdW5lIHRyw6hzIDxzdHJvbmc+Z3JhdmUgbWFsYWRpZTwvc3Ryb25nPiBvdSB1bmUgPHN0cm9uZz5pdnJlc3NlIGF2YW5jw6k8L3N0cm9uZz4uPGJyIC8+XG5cdFx0XHRcdFx0XHRcdERhbnMgY2UgY2FzIG9uIHBldXQgYW5ub25jZXIgcXVlIHRvdXMgbGVzIHLDqXN1bHRhdHMgZHUgam91ZXVyIDxzdHJvbmc+aW1wYWlyczwvc3Ryb25nPiBzb250IGRlcyA8c3Ryb25nPsOpY2hlY3MgYXV0b21hdGlxdWVzPC9zdHJvbmc+LiBPbiBwZXV0IGZhaXJlIGxhIG3Dqm1lIGNob3NlIHBvdXIgbGVzIHLDqXN1bHRhdHMgPHN0cm9uZz5wYWlyczwvc3Ryb25nPiBtYWlzIGNlIGRlcm5pZXIgY2FzIGVzdCBiZWF1Y291cCBwbHVzIGdyYXZlICwgMSDDqXRhbnQgZMOpasOgIGltcGFpciBsZXMgZMOpcyBvbnQgMiBjaGFuY2VzIHN1ciAzIGRlIGZhaXJlIHVuIGVjaGVjIGNyaXRpcXVlLjwvcD5cblxuXHRcdFx0XHRcdFx0PHA+QmllbiBzdXIgaWwgZXN0IHBvc3NpYmxlIGRlIGZhaXJlIGwnaW52ZXJzZSBwb3VyIGFpZGVyIGxlcyBqb3VldXJzIG1haXMgY2VsYSByZW50cmUgbW9pbnMgYmllbiBkYW5zIGwnb3B0aXF1ZSBkZSBjZSBqZXUsIHRvdXQgZMOpcGVuZHMgZGVzIGpvdWV1cnMgcXVlIHZvdXMgYXZleiDDoCB2b3RyZSB0YWJsZS48L3A+XG5cdFx0XHRcdFx0PC9kZXRhaWxzPlxuXHRcdFx0XHRcdDxkZXRhaWxzPlxuXHRcdFx0XHRcdFx0PHN1bW1hcnk+Q29tcMOpdGVuY2VzIHBvc3NpYmxlczwvc3VtbWFyeT5cbiAgICAgICAgICAgIDxkbD5cbiAgICAgICAgICAgICAgPGRpdiB2LWZvcj1cImlkIGluIE9iamVjdC5rZXlzKHNraWxscylcIiA6a2V5PVwiaWRcIj5cbiAgICAgICAgICAgICAgICA8ZHQ+e3tza2lsbHNbaWRdLm5vbX19PC9kdD5cbiAgICAgICAgICAgICAgICA8ZGQ+e3tza2lsbHNbaWRdLkRlc2NyaXB0aW9ufX08L2RkPlxuICAgICAgICAgICAgICA8L2Rpdj5cblx0XHRcdFx0XHQgIDwvZGw+XG5cdFx0XHRcdFx0PC9kZXRhaWxzPlxuXHRcdFx0XHRcdDxkZXRhaWxzPlxuXHRcdFx0XHRcdFx0PHN1bW1hcnk+RXRhdHM8L3N1bW1hcnk+XG5cdFx0XHRcdFx0XHQ8cD5Mb3JzcXUndW4gam91ZXVyIGVzdCBhZmZlY3TDqSBwYXIgdW4gw6l0YXQsIGNlIGRlcm5pZXIgZGlzcG9zZSB1biBENiBkZSBzYSByw6lzZXJ2ZSBkZXNzdXMsIGNlcGVuZGFudCBpbCBkb2l0IG1ldHRyZSBsZSBjaGlmZnJlIDEgYmllbiB2aXNpYmxlIGV0IGFpbnNpIGZhaXJlIGF1Z21lbnRlciBsZSBub21icmUgY2hhcXVlIGpvdXJzLiBEZSBjZXR0ZSBtYW5pw6hyZSwgdG91dCBsZSBtb25kZSBwZXV0IGNvbm5hw650cmUgbCdhdmFuY2VtZW50IGRlIHNvbiDDqXRhdC48L3A+XG5cblx0XHRcdFx0XHRcdDxwPlNpIHVuIHBlcnNvbm5hZ2UgY29tbWVuY2UgYXZlYyB1bmUgYWx0w6lyYXRpb24gZCfDqXRhdDo8L3A+XG5cdFx0XHRcdFx0XHQ8dWw+XG5cdFx0XHRcdFx0XHRcdDxsaT4gcydpbCBkb2l0IGxhIGNob2lzaXIgaWwgbGUgZmFpdDwvbGk+XG5cdFx0XHRcdFx0XHRcdDxsaT4gSWwgbGFuY2UgbGUgRDYgZXQgZ2FyZGUgbGUgcsOpc3VsdGF0IGFpbnNpIG9idGVudS48L2xpPlxuXHRcdFx0XHRcdFx0PC91bD5cblx0XHRcdFx0XHRcdDx0YWJsZT48L3RhYmxlPlxuXHRcdFx0XHRcdDwvZGV0YWlscz5cblx0XHRcdFx0XHQ8ZGV0YWlscz5cblx0XHRcdFx0XHRcdDxzdW1tYXJ5PkNsYXNzZXMgZCdhcm1lcyBldCBkJ2FybXVyZXMgZXQgY29tYmF0PC9zdW1tYXJ5PlxuXHRcdFx0XHRcdFx0PHRhYmxlPjwvdGFibGU+XG5cdFx0XHRcdFx0XHQ8c3Ryb25nPkxlcyBwZXJzb25uYWdlcyBuZSBwZXV2ZW50IHBhcyBwb3J0ZXIgdW5lIGFybXVyZSBvdSB1bmUgYXJtZSBkJ3VuZSBjbGFzc2UgcGx1cyDDqWxldsOpZSBxdWUgbGV1ciBzY29yZSBkZSBjb3JwcyAhPC9zdHJvbmc+PGJyIC8+XG5cdFx0XHRcdFx0XHQ8cD5Mb3JzcXVlIGRldXggcGVyc29ubmFnZXMgc2UgYmF0dGVudCwgY2hhY3VuIG1ldCBkZSBjw7R0w6kgdW4gbm9tYnJlIGRlIGTDqXMgZGUgc3RvY2sgw6lnYWwgYXUgcG9pZCBkZSBzb24gYXJtZSBwdWlzIGZhaXQgc29uIHRlc3QuIEVuIHN1aXRlIGlsIGFqb3V0ZS4gw6Agc29uIHLDqXN1bHRhdCB1biBub21icmUgZGUgcG9pbnRzIMOpZ2FsIMOgIGxhIHNvbW1lIGRlIHNhIGNsYXNzZSBkJ2FybWUgZXQgZGUgc2EgY2xhc3NlIGQnYXJtdXJlLiBPbiBjb21wYXJlIGxlcyByw6lzdWx0YXQgOiBjZWx1aSBheWFudCBmYWl0IGxlIHBsdXMgaGF1dCBzY29yZSBnYWduZSBldCBsZSBwZXJkYW50IHByZW5kcyB1bmUgYmxlc3N1cmVzIHBhciBwb2ludHMgZCfDqWNhcnQuIEVuIGNhcyBkJ8OpZ2FsaXTDqSwgbGVzIGRldXggcGVyc29ubmFnZXMgcHJlbm5lbnQgdW5lIGJsZXNzdXJlLjwvcD5cblx0XHRcdFx0XHQ8L2RldGFpbHM+XG5cdFx0XHRcdDwvZGV0YWlscz5cblx0XHRcdDwvYXJ0aWNsZT5cblxuXHRcdDwvc2VjdGlvbj5cblx0PC9kaXY+XG48L2Rpdj5cbjwvdGVtcGxhdGU+XG48c2NyaXB0PlxuaW1wb3J0IERpY2UzRCBmcm9tIFwiLi4vb3RoZXIvRGljZTNELnZ1ZVwiXG5leHBvcnQgZGVmYXVsdCB7XG4gIC8vTm9tIGRlIGxhIHZ1ZVxuICBuYW1lOiBcImRvY3VtZW50XCIsXG4gIC8vb24gcHJlY2lzZSBsZXMgdnVlcyBxdWkgdm9udCDDqnRyZSBjb21tdW5pcXXDqWUgw6AgbGEgcGFnZVxuICBjb21wb25lbnRzOiB7XG4gICAgRGljZTNELFxuICB9LFxuICBwcm9wczoge1xuICAgIGZhY3Rpb25zOnt9LFxuICAgIHNraWxsczp7fSxcbiAgICByb2xlczp7fSxcbiAgfSxcblxuICBkYXRhKCkge1xuICAgIHJldHVybiB7ZGlzcGxheUNsYW46ZmFsc2V9O1xuICB9LFxuICBwcm92aWRlKCkge1xuICAgIHJldHVybiB7fTtcbiAgfSxcblxuICBtZXRob2RzOiB7XG4gICAgdG9nZ2xlRGlzcGxheSh2YWx1ZSlcbiAgICB7XG4gICAgICBjb25zb2xlLmxvZyh2YWx1ZSk7XG4gICAgfSxcbiAgICB0b2dnbGVEaXNwbGF5Q2xhbih2YWx1ZSlcbiAgICB7XG4gICAgICB0aGlzLmRpc3BsYXlDbGFuID0gKHRoaXMuZGlzcGxheUNsYW4gIT09IHZhbHVlKSA/IHZhbHVlIDogZmFsc2U7XG4gICAgICB0aGlzLiRmb3JjZVVwZGF0ZSgpO1xuICAgIH0sXG4gICAgZ2V0U3R5bGVSYW5kb20oKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBsZWZ0OiBgJHsoTWF0aC5yYW5kb20oKSAqIDEzMCktMzB9dndgLFxuICAgICAgICBvcGFjaXR5OiAwLjMrKE1hdGgucmFuZG9tKCkqMC43KSxcbiAgICAgICAgJ2FuaW1hdGlvbi1kZWxheSc6IGAke01hdGgucmFuZG9tKCkgKiA1fXNgLFxuICAgICAgICBoZWlnaHQ6IGAke01hdGgucmFuZG9tKCkgKiA1ICsgMn1weGAsXG4gICAgICAgICdhbmltYXRpb24tZHVyYXRpb24nOiBgJHsoTWF0aC5yYW5kb20oKSAqIDUgKyAyKS50b0ZpeGVkKDEpfXNgLFxuICAgICAgfTtcbiAgICB9LFxuICB9LFxuXG4gIG1vdW50ZWQoKSB7fSxcbiAgd2F0Y2g6IHt9LFxufTtcbjwvc2NyaXB0PlxuXG48c3R5bGUgc2NvcGVkPlxuLm1haW5zY3JlZW4ge1xuICAgIHRvcDogMzBweDtcbiAgICB3aWR0aDogODAlO1xuICAgIC8qIG1hcmdpbjogYXV0bzsgKi9cbiAgICAvKiBsZWZ0OiAxMCU7ICovXG4gICAgLyogcmlnaHQ6IDEwJTsgKi9cbiAgICAvKiBib3R0b206IDMwcHg7ICovXG4gICAgLyogcG9zaXRpb246IGZpeGVkOyAqL1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIHotaW5kZXg6IDA7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICBwYWRkaW5nOiAyJTtcbiAgICBwYWRkaW5nLXRvcDogMHB4O1xuICAgIGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogMHB4O1xuICAgIGJvcmRlci1jb2xvcjogI2NjYzNhNztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG5cbi5oMiwgaDIge1xuICAgIGZvbnQtc2l6ZTogNnJlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjJlbTtcbn1cblxuYXJ0aWNsZSB7XG4gIG1hcmdpbi1ib3R0b206IDIwdmg7XG59XG5cbnNlY3Rpb257XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uaW50cm8gcCB7XG4gICAgZm9udC1zaXplOiAxLjZ2dztcbn1cblxuLmludHJvIHAgKyBwIHtcbiAgICBtYXJnaW4tdG9wOiA1dmg7XG5cbn1cblxuLmludHJvIHAgc3BhbntcbiAgICBjb2xvcjogYnJvd247XG59XG5cbi5sb3JlLXBvc3QgaDF7XG4gIG1hcmdpbi10b3A6IDJlbTtcbiAgZm9udC1zaXplOiA4ZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG4ubG9yZS1wb3N0IGgxK2RpdntcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbWFyZ2luLWJvdHRvbTogMTV2aDtcbn1cblxuXG4uZmFjdGlvbnMge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgbWFyZ2luLWJsb2NrLXN0YXJ0OiAwO1xuICAgIG1hcmdpbi1ibG9jay1lbmQ6IDA7XG4gICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGp1c3RpZnktY29udGVudDogc3RyZXRjaDtcbn1cblxuLmZhY3Rpb25zIGxpIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBtYXJnaW46IDFweDtcbiAgICBtYXgtaGVpZ2h0OiA1MHZoO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5mYWN0aW9ucyBsaSA+IGRpdjpmaXJzdC1vZi10eXBlIHtcbiAgICBhbGlnbi1jb250ZW50OiBlbmQ7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDNmciAxZnIgMjBweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMWUyODJkO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG4gICAgZmxleC1ncm93OiAxO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHBvc2l0aW9uOnJlbGF0aXZlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBmbGV4LWJhc2lzOjE7XG4gICAgbWluLWhlaWdodDogNTB2aDtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjRzO1xufVxuLmZhY3Rpb25zIGxpID4gZGl2OmZpcnN0LW9mLXR5cGU6aG92ZXIge1xuICAgIGJvcmRlci1jb2xvcjogI2NjYzNhNztcbn1cbi5mYWN0aW9ucyBsaSA+IGRpdjpmaXJzdC1vZi10eXBlIGg0IHtcbiAgICBncmlkLXJvdy1zdGFydDogMjtcbiAgICB0ZXh0LWFsaWduOmNlbnRlcjtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjRzO1xuICAgIHotaW5kZXg6MjtcblxufVxuXG4uZmFjdGlvbnMgbGkgPiBkaXY6bGFzdC1vZi10eXBlIHtcbiAgICBwYWRkaW5nOiAyMHB4IDA7XG4gICAgLypkaXNwbGF5Om5vbmU7Ki9cbiAgICBtYXgtd2lkdGg6MDtcbiAgICBmbGV4LWdyb3c6IDQ7XG4gICAgZmxleC1iYXNpczo0O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMTBhMTM7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC40cztcbiAgICBvdmVyZmxvdzpoaWRkZW47XG59XG5cbi5mYWN0aW9ucyBwIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXJnaW4tYmxvY2stZW5kOiAwO1xuICAgIG1hcmdpbi1ibG9jay1zdGFydDogMDtcbiAgICBtYXJnaW4taW5saW5lLWVuZDogMDtcbiAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAwO1xuICAgIHdpZHRoOiAxOHZ3O1xuICAgIHRleHQtYWxpZ246anVzdGlmeTtcblxufVxuLmZhY3Rpb25zIGxpID4gZGl2LmFjdGl2ZXtcbiAgcGFkZGluZzogMjBweCAxMHB4O1xuICBkaXNwbGF5OmJsb2NrICFpbXBvcnRhbnQ7XG4gIG1heC13aWR0aDoyMHZ3O1xuXG59XG4uZ3JhZGllbnQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgei1pbmRleDoxO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMCk7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDBkZWcsIHJnYmEoMCwwLDAsMC43KSAwJSwgcmdiYSgwLDAsMCwwLjM1KSA1MCUsIHJnYmEoMjU1LDI1NSwyNTUsMCkgMTAwJSk7XG59XG4uYWN0aXZlIHAge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG59XG5hc2lkZSB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0LDFmcik7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcG9zaXRpb246IHN0aWNreTtcbiAgICB6LWluZGV4OiA4MDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwwLjc1KTtcbn1cbi5iYWNrZ3JvdW5kIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJhY2tncm91bmQ6ICMyODA1MEQ7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDBkZWcsIHJnYmEoMzAsIDYsIDEyLCAwLjUpIDAlLCByZ2JhKDQwLCA1LCAxMywgMCkgMjUlKTtcbiAgICB6LWluZGV4OiAwO1xufVxuLmJhY2tncm91bmQ6OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZDogIzI4MDUwRDtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMGRlZyxyZ2JhKDQwLCA1LCAxMywgMSkgMCUsIHJnYmEoNDAsIDUsIDEzLCAwKSAxNSUpO1xuICAgIHotaW5kZXg6IDI7XG4gICAgYW5pbWF0aW9uOiBicmFzaWVyIDNzIGVhc2UgMHMgaW5maW5pdGUgbm9ybWFsIGZvcndhcmRzO1xufVxuXG4uc3Bhcmsge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBoZWlnaHQ6IDZweDtcbiAgICB3aWR0aDogMXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICB6LWluZGV4OiAxO1xuICAgIGFuaW1hdGlvbjogc3BhcmsgNXMgbGluZWFyIDBzIGluZmluaXRlIG5vcm1hbCBmb3J3YXJkcztcbiAgICBsZWZ0OiAwO1xuICAgIGJvdHRvbTogLTEwMCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSAxNTQgMTU0IC8gNDYlKTtcbiAgICBvcGFjaXR5OiAwLjc7XG4gICAgYm94LXNoYWRvdzogMXB4IDFweCAzcHggM3B4IHJnYigxNzYgNDkgNjcpOztcbn1cblxuQGtleWZyYW1lcyBzcGFya3tcbiAgMCV7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpIHRyYW5zbGF0ZVgoMHZ3KSB0cmFuc2xhdGVZKC0wdmgpO1xuICB9XG4gIDEwMCV7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNWRlZykgdHJhbnNsYXRlWCg2NHZ3KSB0cmFuc2xhdGVZKC0xMDB2aCk7XG4gICAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5Aa2V5ZnJhbWVzIGJyYXNpZXIge1xuXHQwJSxcbiAgNzUlIHtcbiAgICBvcGFjaXR5OiAxO1xuXHR9XG4gIDI1JSxcbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMC45NTtcblx0fVxuXG5cdDUwJSB7XG4gICAgb3BhY2l0eTogMC45Mjtcblx0fVxuXG5cdDEyJSxcbiAgNzclXG4gIHtcblx0XHRvcGFjaXR5OiAwLjc7XG5cdH1cbiAgMzclXG4gIHtcblx0XHRvcGFjaXR5OiAwLjc1O1xuXHR9XG5cdDUyJSB7XG5cdFx0b3BhY2l0eTogMC44O1xuXHR9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4NTBweCl7XG4gIC5tYWluc2NyZWVuIHtcbiAgICAgIHBhZGRpbmctdG9wOiA2MHB4O1xuICAgICAgdG9wOiAwO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBsZWZ0OiAwJTtcbiAgICAgIHJpZ2h0OiAwJTtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIC5pbnRybyBwIHtcbiAgICAgIGZvbnQtc2l6ZTogNS4ydnc7XG4gIH1cbiAgLmxvcmUtcG9zdCBoMXtcbiAgICBmb250LXNpemU6IDIuNWVtO1xuICB9XG4gIGFzaWRle1xuICBkaXNwbGF5OmdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczoxZnI7XG4gIGdyaWQtdGVtcGxhdGUtcm93czpyZXBlYXQoNCwxZnIpO1xuICB9XG4gIC5mYWN0aW9ucyB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgfVxuICAuZmFjdGlvbnMgcHtcbiAgICBtaW4td2lkdGg6IGNhbGMoMTAwdncgLSA0MHB4KTtcbiAgICBtaW4taGVpZ2h0OiAxNXZoO1xuICB9XG4gIC5mYWN0aW9ucyBsaXtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBtYXgtaGVpZ2h0OiB1bnNldDtcblxuICB9XG4gIC5mYWN0aW9ucyBsaSA+IGRpdjpmaXJzdC1vZi10eXBlIHtcbiAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmcjtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgNjUlO1xuICAgIG1pbi1oZWlnaHQ6IDE1dmg7XG4gIH1cblxuICAuZmFjdGlvbnMgbGkgPiBkaXY6Zmlyc3Qtb2YtdHlwZVt0aXRsZT1cIlZpZGlldVwiXSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbi15OiA1MCU7XG4gIH1cbiAgLmZhY3Rpb25zIGxpID4gZGl2OmZpcnN0LW9mLXR5cGVbdGl0bGU9XCJTZXJ2ZW5hdGlmc1wiXSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbi15OiA1JTtcbiAgfVxuXG4gIC5mYWN0aW9ucyBsaSA+IGRpdjpmaXJzdC1vZi10eXBlW3RpdGxlPVwiTWVzYWl2ZXNcIl0ge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb24teTogNDAlO1xuICB9XG4gIC5mYWN0aW9ucyBsaSA+IGRpdjpsYXN0LW9mLXR5cGUge1xuICAgIHBhZGRpbmc6IDBweCAxMHB4O1xuICAgIG1heC13aWR0aDoxMDB2dztcbiAgICBmbGV4LWdyb3c6IDQ7XG4gICAgZmxleC1iYXNpczo0O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNywxMCwxMSwxKTtcbiAgICBtYXgtaGVpZ2h0OiAwdmg7XG4gIH1cbiAgLmZhY3Rpb25zIGxpID4gZGl2LmFjdGl2ZSB7XG4gICAgcGFkZGluZzogMjBweCAxMHB4O1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgbWF4LWhlaWdodDogMTAwdmg7XG4gIH1cblxuICAuaDIsIGgyIHtcbiAgICBmb250LXNpemU6IDIuNXJlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjM1ZW07XG4gIH1cbn1cbjwvc3R5bGU+XG4iLCI8dGVtcGxhdGU+XG48ZGl2PlxuICAgIERyaXZlXG48L2Rpdj5cbjwvdGVtcGxhdGU+XG48c2NyaXB0PlxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIC8vTm9tIGRlIGxhIHZ1ZVxuICBuYW1lOiBcImRyaXZlXCIsXG4gIC8vb24gcHJlY2lzZSBsZXMgdnVlcyBxdWkgdm9udCDDqnRyZSBjb21tdW5pcXXDqWUgw6AgbGEgcGFnZVxuICBjb21wb25lbnRzOiB7XG4gIH0sXG4gIHByb3BzOiB7XG4gIH0sXG5cbiAgZGF0YSgpIHtcbiAgICByZXR1cm4ge307XG4gIH0sXG4gIHByb3ZpZGUoKSB7XG4gICAgcmV0dXJuIHt9O1xuICB9LFxuXG4gIG1ldGhvZHM6IHtcbiAgfSxcblxuICBtb3VudGVkKCkge30sXG4gIHdhdGNoOiB7fSxcbn07XG48L3NjcmlwdD5cblxuPHN0eWxlIHNjb3BlZD5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg1MHB4KXtcblxufVxuPC9zdHlsZT5cbiIsIjx0ZW1wbGF0ZT5cbjxkaXYgOmNsYXNzPVwiKGRldGFpbGVkKT8nZG91YmxlIGRldGFpbGVkJzonZG91YmxlJ1wiIEBjbGljaz1cImNob29zZShhcmNoZXR5cGUuaWQpXCI+XG4gICAgPGRpdiBjbGFzcz1cImNhcnRlRlwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlsbHVcIiA6c3R5bGU9XCJgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4vYXNzZXRzL2ltYWdlcy9jYXJkcy8ke2FyY2hldHlwZS5pbWcgfHwgJ3BsYWNlaG9sZGVyLnBuZyd9KWBcIj48L2Rpdj5cbiAgICAgICAgICAgIDxkaXY+PC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgIDxoMVxuICAgICAgICAgICAgICA6Y2xhc3M9XCIoYXJjaGV0eXBlLm5vbS5sZW5ndGggPiAxNCk/XG4gICAgICAgICAgICAgICgoYXJjaGV0eXBlLm5vbS5sZW5ndGggPiAxNyk/J3N1cGVyLXNtYWxsLWZvbnQnXG4gICAgICAgICAgICAgIDonc21hbGwtZm9udCcpOicnXCI+XG4gICAgICAgICAgICAgIHt7KGdlbnJlPT1cImhvbW1lXCIpP2FyY2hldHlwZS5ub206YXJjaGV0eXBlLm5vbUZ9fVxuICAgICAgICAgICAgICA8L2gxPlxuICAgICAgICAgICAgICA8c3BhbiA6Y2xhc3M9XCIoYXJjaGV0eXBlLlNwZWNpYWxpdGUubGVuZ3RoID4gMTgpPydzbWFsbC1mb250JzonJ1wiPlNww6ljaWFsaXTDqSA6IHt7YXJjaGV0eXBlLlNwZWNpYWxpdGV9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPHVsIGNsYXNzPVwic3RhdHNcIj5cbiAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICA8c3Bhbj48Zm9udC1hd2Vzb21lLWljb24gOmljb249XCJbJ2ZhcycsICdmaXN0LXJhaXNlZCddXCIgLz48L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1vYmlsZS1vbmx5XCI+e3thcmNoZXR5cGUuY29ycHN9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGVza3RvcC1vbmx5XCI+PGZvbnQtYXdlc29tZS1pY29uIHYtZm9yPVwibiBpbiBhcmNoZXR5cGUuY29ycHNcIiA6a2V5PVwiblwiIDppY29uPVwiWydmYXMnLCAnZGljZS1maXZlJ11cIiAvPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgIDxzcGFuPjxmb250LWF3ZXNvbWUtaWNvbiA6aWNvbj1cIlsnZmFzJywgJ2JyYWluJ11cIiAvPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibW9iaWxlLW9ubHlcIj57e2FyY2hldHlwZS5pbnRlbGxpZ2VuY2V9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGVza3RvcC1vbmx5XCI+PGZvbnQtYXdlc29tZS1pY29uIHYtZm9yPVwibiBpbiBhcmNoZXR5cGUuaW50ZWxsaWdlbmNlXCIgOmtleT1cIm5cIiA6aWNvbj1cIlsnZmFzJywgJ2RpY2UtZml2ZSddXCIgLz48L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICA8c3Bhbj48Zm9udC1hd2Vzb21lLWljb24gOmljb249XCJbJ2ZhcycsICd1c2VycyddXCIgLz48L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1vYmlsZS1vbmx5XCI+e3thcmNoZXR5cGUuc29jaWFsfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRlc2t0b3Atb25seVwiPjxmb250LWF3ZXNvbWUtaWNvbiB2LWZvcj1cIm4gaW4gYXJjaGV0eXBlLnNvY2lhbFwiIDprZXk9XCJuXCIgOmljb249XCJbJ2ZhcycsICdkaWNlLWZpdmUnXVwiIC8+PC9zcGFuPlxuXG4gICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICA8dWw+XG4gICAgICAgICAgICAgICAgPGxpPnt7c2tpbGxzW2FyY2hldHlwZS5za2lsbDFdLm5vbX19PC9saT5cbiAgICAgICAgICAgICAgICA8bGk+e3tza2lsbHNbYXJjaGV0eXBlLnNraWxsMl0ubm9tfX08L2xpPlxuICAgICAgICAgICAgPC91bD5cblxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJkZXRhaWxzXCI+XG4gICAgICA8ZGl2PlxuICAgICAgICAgICAgPHNwYW4+e3tza2lsbHNbYXJjaGV0eXBlLnNraWxsMV0ubm9tfX08L3NwYW4+XG4gICAgICAgICAgICA8cD57e3NraWxsc1thcmNoZXR5cGUuc2tpbGwxXS5EZXNjcmlwdGlvbn19PC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxzcGFuPnt7c2tpbGxzW2FyY2hldHlwZS5za2lsbDJdLm5vbX19PC9zcGFuPlxuICAgICAgICAgICAgPHAgdi1odG1sPVwic2tpbGxzW2FyY2hldHlwZS5za2lsbDJdLkRlc2NyaXB0aW9uXCI+PC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuPC90ZW1wbGF0ZT5cbiAgPHNjcmlwdD5cbmltcG9ydCB7IGxpYnJhcnkgfSBmcm9tIFwiQGZvcnRhd2Vzb21lL2ZvbnRhd2Vzb21lLXN2Zy1jb3JlXCI7XG5pbXBvcnQgeyBmYUZpc3RSYWlzZWQsIGZhQnJhaW4sIGZhVXNlcnMsZmFEaWNlRml2ZX0gZnJvbSBcIkBmb3J0YXdlc29tZS9mcmVlLXNvbGlkLXN2Zy1pY29uc1wiO1xuaW1wb3J0IGF1ZGlvRWZmZWN0cyBmcm9tIFwiLi4vLi4vb3V0aWxzL2F1ZGlvRWZmZWN0c1wiO1xuXG5saWJyYXJ5LmFkZCggZmFGaXN0UmFpc2VkLCBmYUJyYWluLCBmYVVzZXJzLGZhRGljZUZpdmUpO1xuICBleHBvcnQgZGVmYXVsdCB7XG4gICAgLy9Ob20gZGUgbGEgdnVlXG4gICAgbmFtZTogXCJBcmNoZXR5cGVDYXJkXCIsXG4gICAgaW5qZWN0OlsnZ2V0U2tpbGxzJ10sXG4gICAgcHJvcHM6IHtcbiAgICAgIGFyY2hldHlwZTp7fSxcbiAgICAgIGRldGFpbGVkOmZhbHNlLFxuICAgICAgZ2VucmU6e30sXG4gICAgfSxcblxuICAgIG1ldGhvZHM6IHtcbiAgICAgIGNob29zZShpZClcbiAgICAgIHtcbiAgICAgICAgdGhpcy4kZW1pdCgnY2hvb3NlJyxpZCk7XG4gICAgICAgIHRoaXMuZGV0YWlsc1NvdW5kcygpO1xuICAgICAgfSxcbiAgICAgIGRldGFpbHNTb3VuZHMoKXtcbiAgICAgICAgYXVkaW9FZmZlY3RzLnBsYXlTRlgoXCIvYXNzZXRzL3NmeC9jb2xsZWN0aW9uX21hbmFnZXJfY2FyZF9tb3VzZV9vdmVyLm9nZ1wiLCAwLjMpO1xuICAgICAgfVxuICAgIH0sXG4gICAgY29tcHV0ZWQ6e1xuICAgICAgc2tpbGxzOmZ1bmN0aW9uKClcbiAgICAgIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U2tpbGxzKClcbiAgICAgIH1cbiAgICB9LFxuICAgIG1vdW50ZWQoKSB7XG4gICAgICAgICAgLypsZXQgbXlBdWRpbyA9IG5ldyBBdWRpbyhcIi9hc3NldHMvc2Z4L2NyZWRpdHNfY2FyZF9lbnRlcl8xLm9nZ1wiKTtcbiAgICAgICAgICBteUF1ZGlvLnBsYXkoKTsqL1xuICAgICAgICB9LFxuICB9O1xuICA8L3NjcmlwdD5cblxuICA8c3R5bGUgc2NvcGVkPlxuXG4gIC5kb3VibGV7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIG1hcmdpbjogNXB4IGF1dG87XG4gICAgd2lkdGg6IDIwdnc7XG4gICAgaGVpZ2h0OiAzM3Z3O1xuICAgIG1heC13aWR0aDogMjU1cHg7XG4gICAgbWF4LWhlaWdodDogNDIzcHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMnM7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7LyojYTA5ZDk5OyovXG4gICAgLyogYm94LXNoYWRvdzogMHB4IDBweCAyM3B4IC0zMHB4IHJnYmEoMCwwLDAsMC4wMSk7ICovXG4gICAgZmlsdGVyOiBkcm9wLXNoYWRvdyhyZ2JhKDAsIDAsIDAsIDAuNikgMHB4IDNweCAzcHgpO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBmb250LWZhbWlseTogJ0FsYXRhJywgc2Fucy1zZXJpZjtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wNWVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBjb2xvcjogYmxhY2s7XG4gIH1cbiAgLmRldGFpbGVkXG4gIHtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gIH1cblxuICAuZG91YmxlOm5vdCguZGV0YWlsZWQpOmhvdmVye1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjA4LDEuMDgsMS4wOCk7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIHotaW5kZXg6IDI7XG4gICAgZmlsdGVyOiBkcm9wLXNoYWRvdyhyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCkgMHB4IDBweCA0cHgpO1xuXG4gIH1cbiAgLmRvdWJsZSA+ZGl2Om5vdCguZGV0YWlscyl7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHRvcDowO1xuICAgIHJpZ2h0OiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3JkZXI6IHNvbGlkIDBweCB0cmFuc3BhcmVudDtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtcm93czogNWZyIDEuNWZyIDEuNWZyO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgIHBhZGRpbmc6IDIwcHggMTBweDtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgYW5pbWF0aW9uLW5hbWU6IGFfY2FyZHM7XG4gICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllcigwLjQ1NSwgMC4wMywgMC41MTUsIDAuOTU1KTtcbiAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAxO1xuICAgIGFuaW1hdGlvbi1wbGF5LXN0YXRlOnBhdXNlZFxuICB9XG5cbiAgLmRvdWJsZSBoMSB7XG4gICAgcGFkZGluZy10b3A6IDEuMHJlbTtcbiAgICBmb250LWZhbWlseTogJ01lZGlldmFsU2hhcnAnLCBjdXJzaXZlO1xuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjE1ZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBjb2xvcjogYmxhY2s7XG4gICAgdGV4dC1zaGFkb3c6IC0xcHggLTFweCAwIHdoaXRlLCAxcHggLTFweCAwIHdoaXRlLCAtMXB4IDFweCAwIHdoaXRlLCAxcHggMXB4IDAgd2hpdGU7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4gIGgxK3NwYW57XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICB0ZXh0LXNoYWRvdzogLTFweCAtMXB4IDAgYnJvd24sIDFweCAtMXB4IDAgYnJvd24sIC0xcHggMXB4IDAgYnJvd24sIDFweCAxcHggMCBicm93bjtcblxuICB9XG5cbiAgLmNhcnRlRntcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogZm9yd2FyZHM7XG4gICAgYW5pbWF0aW9uLWRpcmVjdGlvbjogYWx0ZXJuYXRlO1xuICAgIC8qYmFja2dyb3VuZC1wb3NpdGlvbi14OiAyMCU7XG4gICAgYmFja2dyb3VuZC1zaXplOiAzNDAlO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb24teTogMSU7Ki9cbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uLy4uLy4uL3B1YmxpYy9hc3NldHMvaW1hZ2VzL2NhcmRzL2JnLnBuZycpO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuXG4gIC5pbGx1IHtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMTJweCk7XG4gICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAyMHB4KTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA5cHg7XG4gICAgbGVmdDogOXB4O1xuICAgIC8qbWl4LWJsZW5kLW1vZGU6IG11bHRpcGx5O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb24teDogMjAlO1xuICAgIGJhY2tncm91bmQtc2l6ZTogMzQwJTtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uLXk6IDElOyovXG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgei1pbmRleDogLTE7XG4gICAgZ3JpZC1jb2x1bW4tc3RhcnQ6IHVuc2V0ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG59XG4gIC5jYXJ0ZUYgPiBkaXY6bm90KC5pbGx1KSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWZsb3c6IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgei1pbmRleDogNTtcbiAgfVxuICAuaWxsdStkaXZ7XG4gICAgZGlzcGxheTpibG9jaztcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uLy4uLy4uL3B1YmxpYy9hc3NldHMvaW1hZ2VzL2NhcmRzL2JvcmRlci5wbmcnKTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDozO1xuICAgIHdpZHRoOjEwMCU7XG4gICAgaGVpZ2h0OjEwMCU7XG4gICAgcG9pbnRlci1ldmVudHM6bm9uZTtcbiAgfVxuICAgIHVse1xuICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogMDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNhNTJhMmFjNztcbiAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICB9XG4gICAgdWwgKyB1bHtcbiAgICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICAgIHotaW5kZXg6IDQ7XG4gICAgfVxuICAuc3RhdHMge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLDFmcik7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgei1pbmRleDogNDtcbiAgICB9XG5cbiAgICAuc3RhdHMgPiBsaSA+IHNwYW4ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgd2hpdGU7XG4gICAgICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICBoZWlnaHQ6IDUwJTtcbiAgICAgICAgLypwYWRkaW5nOiA1cHg7Ki9cbiAgICAgICAgZm9udC1zaXplOiAxLjU1ZW07XG4gICAgfVxuICAgIC5zdGF0cyA+IGxpID4gc3BhbjpmaXJzdC1vZi10eXBlIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICAgICAgZ3JpZC1yb3ctc3RhcnQ6IDM7XG4gICAgICAgIGdyaWQtcm93LWVuZDogMztcbiAgICB9XG4gICAgLnN0YXRzID4gbGk6bGFzdC1vZi10eXBlIHNwYW4ge1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICB9XG5cbiAgICAuc3RhdHMgPiBsaSA+IHNwYW46bGFzdC1vZi10eXBlIHtcbiAgICAgIHBhZGRpbmc6IDBweCAwIDRweCAwO1xuICAgIH1cblxuICAgIC5zdGF0cyA+IGxpID4gc3BhbjpsYXN0LW9mLXR5cGUgPiBzdmcge1xuICAgIHRyYW5zZm9ybTogcm90YXRlWig0NWRlZyk7XG4gICAgfVxuXG4gICAgLnNtYWxsLWZvbnR7XG4gICAgICBmb250LXNpemU6IDAuOHJlbTtcbiAgICB9XG5cbiAgICAuZGV0YWlscyB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxMDEwMGY7XG4gICAgICAgIHdpZHRoOiAxMXZ3O1xuICAgICAgICB0b3A6IDIlO1xuICAgICAgICByaWdodDogLTkwJTtcbiAgICAgICAgaGVpZ2h0OiBmaXQtY29udGVudDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBwYWRkaW5nOiAxMHB4O1xuICAgICAgICB6LWluZGV4OiAzO1xuICAgICAgICBmb250LXNpemU6IDAuN3JlbTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgfVxuXG4gICAgLmRldGFpbHMgc3BhbiB7XG4gICAgY29sb3I6IGJyb3duO1xuICAgIGZvbnQtc2l6ZTogMS4wMnJlbTtcbn1cblxuXG4gICAgLmRldGFpbGVkIC5kZXRhaWxze1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgQGtleWZyYW1lcyBhX2NhcmRzIHtcblx0MCUge1xuXHRcdHRyYW5zZm9ybTogcm90YXRlWSgwZGVnKTtcblx0fVxuXG5cdDUwJSB7XG5cdFx0dHJhbnNmb3JtOiByb3RhdGVZKDkwZGVnKTtcblx0fVxuXG4gICAgMTAwJSB7XG5cdFx0dHJhbnNmb3JtOiByb3RhdGVZKDkwZGVnKTtcblx0fVxufVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4NTBweCl7XG4gICAgLmRvdWJsZXtcbiAgICAgICAgZm9udC1zaXplOiAwLjY1cmVtO1xuICAgICAgICB3aWR0aDogMjV2dztcbiAgICAgICAgaGVpZ2h0OiA0MHZ3O1xuICAgIH1cbiAgICAuZG91YmxlIGgxe1xuICAgICAgcGFkZGluZy10b3A6IDByZW07XG4gICAgfVxuICAgIC5kZXRhaWxzIHtcbiAgICB3aWR0aDogMjB2dztcbiAgICBmb250LXNpemU6IDAuNnJlbTtcbiAgICB0b3A6IDUlO1xuICAgIHJpZ2h0OiAtODUlO1xuICAgIH1cblxuXG4gIC5jYXJ0ZUZ7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi8uLi8uLi9wdWJsaWMvYXNzZXRzL2ltYWdlcy9jYXJkcy9tb2JpbGVfYmcucG5nJyk7XG4gIH1cblxuICAuaWxsdXtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMTJweCk7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiA3cHg7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbi15OiAyMCU7XG4gICAgei1pbmRleDogMiAhaW1wb3J0YW50O1xuICB9XG59XG4gIC5tb2JpbGUtb25seXtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmRlc2t0b3Atb25seXtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg1MHB4KSBhbmQgKG9yaWVudGF0aW9uOnBvcnRyYWl0KXtcblxuICAgIC5kb3VibGV7XG4gICAgICAgIGZvbnQtc2l6ZTogLjhyZW07XG4gICAgICAgIHdpZHRoOiA2NHZ3O1xuICAgICAgICBoZWlnaHQ6IDQwdnc7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDE1MHB4O1xuICAgICAgICBtaW4td2lkdGg6IDI0MHB4O1xuICAgIH1cblxuICAgIC5kb3VibGUgPiBkaXYsXG4gICAgLmRvdWJsZSA+ZGl2Om5vdCguZGV0YWlscyl7XG4gICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiA0ZnIgMWZyO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDRmcjtcbiAgICBwYWRkaW5nOiAxMHB4O1xuICB9XG4gIC5jYXJ0ZUYge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb24teTogMjAlO1xuICB9XG4gIC5jYXJ0ZUYgPiBkaXY6bm90KC5pbGx1KSxcbiAgLmNhcnRlRiA+IGRpdiB7XG4gICAgZ3JpZC1jb2x1bW4tc3RhcnQ6IDI7XG4gICAgbWFyZ2luOiAxMHB4IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIHotaW5kZXg6IDQ7XG4gIH1cblxuICAuc3RhdHN7XG4gICAgZ3JpZC1jb2x1bW4tc3RhcnQ6IDE7XG4gICAgZ3JpZC1jb2x1bW4tZW5kOiAyO1xuICAgIGdyaWQtcm93LXN0YXJ0OiAxO1xuICAgIGdyaWQtcm93LWVuZDogMztcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHVuc2V0O1xuICAgIGdyaWQtdGVtcGxhdGUtcm93czogcmVwZWF0KDMsMWZyKTtcbiAgICBib3JkZXI6IDBweCBzb2xpZCB3aGl0ZTtcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICAgIGhlaWdodDogMTAwJTtcbiAgfVxuICB1bC5zdGF0cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgbWFyZ2luLWxlZnQ6IDZweDtcbiAgICB6LWluZGV4OiA0O1xuICB9XG5cbiAgLnN0YXRzICsgdWwge1xuICAgIG1hcmdpbjogNXB4O1xuICAgIHotaW5kZXg6IDQ7XG4gIH1cblxuICAuc3RhdHMgPiBsaSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMHB4IHNvbGlkIHdoaXRlO1xuICB9XG5cbiAgLnN0YXRzID4gbGk6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgICB9XG5cbiAgICAuc3RhdHMgPiBsaSA+IHNwYW46Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICBtYXJnaW46IGF1dG8gNHB4IGF1dG87XG4gICAgfVxuXG4gIC5zdGF0cyA+IGxpOmZpcnN0LW9mLXR5cGUgc3BhbjpmaXJzdC1vZi10eXBle1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgbWFyZ2luLXRvcDogNXB4O1xuICB9XG5cbiAgLnN0YXRzID4gbGk6bnRoLW9mLXR5cGUoMikgc3BhbjpmaXJzdC1vZi10eXBle1xuICBmb250LXNpemU6IDEuMDhyZW07XG4gIH1cblxuICAuc3RhdHMgPiBsaTpsYXN0LW9mLXR5cGUgc3BhbjpmaXJzdC1vZi10eXBle1xuICBmb250LXNpemU6IDEuMnJlbTtcbiAgbWFyZ2luLXRvcDogOXB4O1xuICB9XG5cbiAgLnN0YXRzID4gbGkgc3BhbjpsYXN0LW9mLXR5cGV7XG4gIGZvbnQtc2l6ZTogMS4xNXJlbTtcbiAgcGFkZGluZzogdW5zZXQ7XG4gIH1cblxuICAuc3RhdHMgPiBsaSA+IHNwYW4ge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICBib3JkZXI6dW5zZXQ7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgdGV4dC1zaGFkb3c6IC0xcHggLTFweCAwIGJyb3duLCAxcHggLTFweCAwIGJyb3duLCAtMXB4IDFweCAwIGJyb3duLCAxcHggMXB4IDAgYnJvd247XG4gICAgfVxuXG4gIC5kb3VibGUgaDEge1xuICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgIG1hcmdpbi1ib3R0b206IC00cHg7XG4gIH1cblxuICBoMStzcGFue1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gIHVsICsgdWx7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgfVxuICAubW9iaWxlLW9ubHl7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxuICAuZGVza3RvcC1vbmx5e1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuXG4gIGgxLnNtYWxsLWZvbnR7XG4gICAgICBmb250LXNpemU6IDAuOXJlbTtcbiAgICB9XG5cbiAgaDEuc3VwZXItc21hbGwtZm9udHtcbiAgICBmb250LXNpemU6IDAuN3JlbTtcbiAgfVxuXG5cbiAgLmRldGFpbHMge1xuICAgIHdpZHRoOiA2NHZ3O1xuICAgIHRvcDogLTEwMCU7XG4gICAgcmlnaHQ6IDA7XG4gIH1cbiAgLmRvdWJsZTpmaXJzdC1vZi10eXBlIC5kZXRhaWxzIHtcbiAgICB0b3A6IDEwMCU7XG4gIH1cbiAgLmlsbHUrZGl2e1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vLi4vLi4vcHVibGljL2Fzc2V0cy9pbWFnZXMvY2FyZHMvbW9iaWxlX2JvcmRlci5wbmcnKTtcbiAgICBncmlkLWNvbHVtbi1zdGFydDogdW5zZXQgIWltcG9ydGFudDtcbiAgICBtYXJnaW46IHVuc2V0ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogdW5zZXQgIWltcG9ydGFudDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHVuc2V0ICFpbXBvcnRhbnQ7XG4gICAgei1pbmRleDogMyAhaW1wb3J0YW50O1xuICB9XG59XG4gIDwvc3R5bGU+XG4iLCI8dGVtcGxhdGU+XG48ZGl2PlxuICA8dWw+XG4gICAgPGxpIHYtZm9yPVwiZGljZSBpbiBkaWNlVG9TaG93bi5yb2xsXCIgOmNsYXNzPVwiZGljZUNsYXNzKGRpY2UsZGljZVRvU2hvd24uZGlmZmljdWx0eSlcIj5cbiAgICAgIDxEaWNlM0QgOnZhbHVlPVwiZGljZVwiLz5cbiAgICA8L2xpPlxuICAgIDxsaSB2LWZvcj1cIm4gaW4gdW51c2VkRGljZVwiIGNsYXNzPVwidW51c2VkRGljZVwiPlxuICAgICAgPGZvbnQtYXdlc29tZS1pY29uIDppY29uPVwiWydmYXMnLCAnZGljZS10aHJlZSddXCIgLz5cbiAgICA8L2xpPlxuICA8L3VsPlxuICA8c2VsZWN0IHYtbW9kZWw9XCJzdGF0XCI+XG4gICAgPG9wdGlvbiB2YWx1ZT1cImNvcnBzXCI+Q29ycHM8L29wdGlvbj5cbiAgICA8b3B0aW9uIHZhbHVlPVwiaW50ZWxsaWdlbmNlXCI+RXNwcml0PC9vcHRpb24+XG4gICAgPG9wdGlvbiB2YWx1ZT1cInNvY2lhbFwiPlNvY2lhbDwvb3B0aW9uPlxuICAgIDxvcHRpb24gdmFsdWU9XCJkZXJuaWVyZSBjaGFuY2VcIiB2LWlmPVwiKGNoYXJhY3Rlci5hcmNoZXR5cGUuc2tpbGwxID09IDE2IHx8IGNoYXJhY3Rlci5hcmNoZXR5cGUuc2tpbGwyID09IDE2KVwiPkRlcm5pw6hyZSBDaGFuY2U8L29wdGlvbj5cbiAgPC9zZWxlY3Q+XG4gIDxzZWxlY3Qgdi1tb2RlbD1cImRpZmZcIj5cbiAgICA8b3B0aW9uIHZhbHVlPVwiM1wiPkZhY2lsZTwvb3B0aW9uPlxuICAgIDxvcHRpb24gdmFsdWU9XCI0XCI+TW95ZW48L29wdGlvbj5cbiAgICA8b3B0aW9uIHZhbHVlPVwiNVwiPkFzc2V6IER1cjwvb3B0aW9uPlxuICAgIDxvcHRpb24gdmFsdWU9XCI2XCI+VHLDqHMgRHVyPC9vcHRpb24+XG4gICAgPG9wdGlvbiB2YWx1ZT1cIjBcIj5TcGVjaWFsPC9vcHRpb24+XG4gIDwvc2VsZWN0PlxuICA8YnV0dG9uIEBjbGljaz1cInJvbGwoZGlmZilcIiBjbGFzcz1cImJ0biBidG4tc3VjY2Vzc1wiID5MYW5jZXI8L2J1dHRvbj5cblxuPC9kaXY+XG48L3RlbXBsYXRlPlxuICA8c2NyaXB0PlxuaW1wb3J0IHsgbGlicmFyeSB9IGZyb20gXCJAZm9ydGF3ZXNvbWUvZm9udGF3ZXNvbWUtc3ZnLWNvcmVcIjtcbmltcG9ydCB7IGZhRGljZU9uZSxmYURpY2VUd28sZmFEaWNlVGhyZWUsZmFEaWNlRm91cixmYURpY2VGaXZlLGZhRGljZVNpeH0gZnJvbSBcIkBmb3J0YXdlc29tZS9mcmVlLXNvbGlkLXN2Zy1pY29uc1wiO1xuaW1wb3J0IERpY2UzRCBmcm9tIFwiLi4vb3RoZXIvRGljZTNELnZ1ZVwiXG5pbXBvcnQgYXVkaW9FZmZlY3RzIGZyb20gXCIuLi8uLi9vdXRpbHMvYXVkaW9FZmZlY3RzXCI7XG5cbmxpYnJhcnkuYWRkKGZhRGljZU9uZSxmYURpY2VUd28sZmFEaWNlVGhyZWUsZmFEaWNlRm91cixmYURpY2VGaXZlLGZhRGljZVNpeCk7XG4gIGV4cG9ydCBkZWZhdWx0IHtcbiAgICAvL05vbSBkZSBsYSB2dWVcbiAgICBuYW1lOiBcIkRpY2VNb2R1bGVcIixcbiAgICBpbmplY3Q6WydnZXRQcm9ncmVzcycsJ2luc2VydFJvbGwnLCdnZXRDaGFyYWN0ZXInXSxcbiAgICBwcm9wczoge30sXG4gICAgY29tcG9uZW50czp7XG4gICAgICBEaWNlM0QsXG4gICAgfSxcbiAgICBkYXRhKCkge1xuICAgIHJldHVybiB7XG4gICAgICBkaWZmOjMsXG4gICAgICBzdGF0Oidjb3JwcycsXG4gICAgfTtcbiAgfSxcbiAgICBtZXRob2RzOiB7XG4gICAgICByb2xsKGRpZmYpXG4gICAgICB7XG4gICAgICAgIGlmKHRoaXMuc3RhdCA9PSAnZGVybmllcmUgY2hhbmNlJykgcmV0dXJuIHRoaXMuaW5zZXJ0Um9sbChbTWF0aC5jZWlsKE1hdGgucmFuZG9tKCkgKiA2KV0scGFyc2VJbnQoZGlmZiksdGhpcy5zdGF0KTtcblxuICAgICAgICBsZXQgcm9sbHMgPSBbXTtcbiAgICAgICAgLy9Qb3J0ZXVyIHNhaW5cbiAgICAgICAgbGV0IGRpY2VMb2NrZWQgPSAoKHRoaXMuY2hhcmFjdGVyLmFyY2hldHlwZS5za2lsbDEgPT0gMjIgfHwgdGhpcy5jaGFyYWN0ZXIuYXJjaGV0eXBlLnNraWxsMiA9PSAyMikgJiYgKHRoaXMuc3RhdCAhPSAnc29jaWFsJykpP1xuICAgICAgICAgICAodGhpcy5nZXRQcm9ncmVzcygpLnN0YXRlc1s1XS5jdXJyZW50VGltZSA+IDAgPyAxIDogMCkgOiB0aGlzLmRpY2VMb2NrZWQ7XG5cbiAgICAgICAgLy9jYWxjdWwgZHUgbm9tYnJlIGTDqXMgw6AgbGFuY2VyXG4gICAgICAgIGxldCBkaWNlcyA9ICh0aGlzLmRpY2VOdW1iZXIgLSBkaWNlTG9ja2VkKSA+IHRoaXMuY2hhcmFjdGVyLmFyY2hldHlwZVt0aGlzLnN0YXRdID8gdGhpcy5jaGFyYWN0ZXIuYXJjaGV0eXBlW3RoaXMuc3RhdF0gOiAodGhpcy5kaWNlTnVtYmVyIC0gZGljZUxvY2tlZCk7XG5cblxuICAgICAgICAvL0R1ciDDoCBjdWlyXG4gICAgICAgIGlmKHRoaXMuc3RhdCA9PSAnY29ycHMnICYmICh0aGlzLmNoYXJhY3Rlci5hcmNoZXR5cGUuc2tpbGwxID09IDE3IHx8IHRoaXMuY2hhcmFjdGVyLmFyY2hldHlwZS5za2lsbDIgPT0gMTcpKXtcbiAgICAgICAgICBsZXQgc3RhdGVzID0gdGhpcy5nZXRQcm9ncmVzcygpLnN0YXRlcztcbiAgICAgICAgICBsZXQgYm9udXNEaWNlcyA9IDA7XG4gICAgICAgICAgZm9yKGxldCBzPTA7IHMgPCBzdGF0ZXMubGVuZ3RoO3MrKykgeyBpZihzdGF0ZXNbc10uc3RhdHVzQ29sb3IgPT0gJ2JsYW5jJyAmJiBzdGF0ZXNbc10uY3VycmVudFRpbWUgPiAwKSBib251c0RpY2VzKys7fVxuICAgICAgICAgICBkaWNlcyArPSBib251c0RpY2VzO1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdkdXIgw6AgY3VpcicsYm9udXNEaWNlcyk7XG4gICAgICAgIH1cbiAgICAgICAgLy9jaG9peCBkZXMgZMOpc1xuICAgICAgICBmb3IobGV0IHI9MDsgciA8IGRpY2VzO3IrKykgeyByb2xscy5wdXNoKCBNYXRoLmNlaWwoTWF0aC5yYW5kb20oKSAqIDYpKTsgfVxuICAgICAgICB0aGlzLnJvbGxTb3VuZHMoKTtcbiAgICAgICAgdGhpcy5pbnNlcnRSb2xsKHJvbGxzLHBhcnNlSW50KGRpZmYpLHRoaXMuc3RhdCk7XG4gICAgICB9LFxuICAgICAgZGljZUNsYXNzKHZhbHVlLGRpZmYpXG4gICAgICB7XG4gICAgICAgIGlmKGRpZmYgPT0gMCkgcmV0dXJuICcnO1xuICAgICAgICBpZih2YWx1ZSA9PSAxKSByZXR1cm4gJ3JlZCc7XG4gICAgICAgIGlmKHZhbHVlIDwgZGlmZikgcmV0dXJuICdub3QtcmVsZXZhbnQnO1xuICAgICAgICByZXR1cm4gJyc7XG4gICAgICB9LFxuICAgICAgcm9sbFNvdW5kcygpe1xuICAgICAgICBhdWRpb0VmZmVjdHMucGxheVNGWChcIi9hc3NldHMvc2Z4L2RpY2Vfcm9sbF8zYi53YXZcIiwgMC44KTtcbiAgICAgIH1cbiAgICB9LFxuICAgIGNvbXB1dGVkOntcbiAgICAgIHVudXNlZERpY2U6IGZ1bmN0aW9uKCl7XG4gICAgICAgIGxldCByZXMgPSB0aGlzLmRpY2VOdW1iZXIgLSB0aGlzLmRpY2VMb2NrZWQgLSB0aGlzLmRpY2VUb1Nob3duLnJvbGwubGVuZ3RoO1xuICAgICAgICByZXR1cm4gKHJlcyA8IDApPyAwIDogcmVzO1xuICAgICAgfSxcbiAgICAgIGRpY2VOdW1iZXI6ZnVuY3Rpb24oKVxuICAgICAge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRQcm9ncmVzcygpLmRpY2VzO1xuICAgICAgfSxcbiAgICAgIGhpc3Rvcnk6ZnVuY3Rpb24oKVxuICAgICAge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRQcm9ncmVzcygpLmhpc3Rvcnk7XG4gICAgICB9LFxuICAgICAgZGljZUxvY2tlZDogZnVuY3Rpb24oKXtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0UHJvZ3Jlc3MoKS5kaWNlTG9ja2VkO1xuICAgICAgfSxcbiAgICAgIGRpY2VUb1Nob3duOmZ1bmN0aW9uKClcbiAgICAgIHtcbiAgICAgICAgaWYodGhpcy5oaXN0b3J5Lmxlbmd0aCA+IDApIHJldHVybiB0aGlzLmhpc3RvcnlbdGhpcy5oaXN0b3J5Lmxlbmd0aC0xXTtcbiAgICAgICAgbGV0IGRpY2VzID0gW107XG4gICAgICAgIGZvcihsZXQgZD0wOyBkIDwgdGhpcy5kaWNlTnVtYmVyOyBkKyspIHsgZGljZXMucHVzaCg2KTsgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcm9sbDpkaWNlcyxcbiAgICAgICAgICAgIGRpZmZpY3VsdHk6MyxcbiAgICAgICAgICAgIGRhdGU6bnVsbCxcbiAgICAgICAgICB9O1xuICAgICAgfSxcbiAgICAgIGNoYXJhY3RlcigpIHtyZXR1cm4gdGhpcy5nZXRDaGFyYWN0ZXIoKTt9LFxuICAgIH1cbiAgfTtcbiAgPC9zY3JpcHQ+XG5cbiAgPHN0eWxlIHNjb3BlZD5cbiAgdWwge1xuICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmb250LXNpemU6IDRyZW07XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cbiAgLnJlZHtcbiAgICBjb2xvcjpicm93bjtcbiAgfVxuXG4gIC51bnVzZWREaWNle1xuICAgIGNvbG9yOnJnYig0MCw0MCw0MCk7XG4gIH1cbiAgLm5vdC1yZWxldmFudHtcbiAgICBvcGFjaXR5OiAuNTtcbiAgfVxuXG4gIGxpe1xuICAgIG1hcmdpbjogMnB4IDVweDtcbiAgICBoZWlnaHQ6IDUwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgd2lkdGg6IDUwcHg7XG4gIH1cbiAgLmJ0bi5idG4tc3VjY2VzcyB7XG5cdG1hcmdpbjogYXV0bztcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1jb2xvcjogIzRjNGM0YztcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBib3JkZXItaW1hZ2U6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSgxMzEsMTI4LDE1MCwwKSwgIzRjNGM0YywgIzRjNGM0YywgcmdiYSgxMzEsMTI4LDE1MCwwKSkgMjc7XG4gIGJvcmRlci1pbWFnZS1yZXBlYXQ6IHN0cmV0Y2g7XG4gIGJvcmRlci1pbWFnZS13aWR0aDogMXB4IDA7XG4gIHBhZGRpbmc6IDRweCAxNXB4IDRweDtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGNvbG9yOiAjOTc5Nzk3O1xuICBsZXR0ZXItc3BhY2luZzogMnB4O1xuICBmb250LWZhbWlseTogJ01lZGlldmFsU2hhcnAnLCBjdXJzaXZlO1xufVxuLmJ0bi5idG4tc3VjY2Vzczpmb2N1cyB7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDAuMnJlbSByZ2JhKDQwLDE2Nyw2OSwuMCk7XG4gIGJvcmRlci1jb2xvcjogYnJvd247XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJvcmRlci1pbWFnZTogbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKDEzMSwxMjgsMTUwLDApLCBicm93biwgYnJvd24sIHJnYmEoMTMxLDEyOCwxNTAsMCkpIDI3O1xufVxuXG4uYnRuLXN1Y2Nlc3M6bm90KDpkaXNhYmxlZCk6aG92ZXJ7XG4gIGNvbG9yOiAjZjBlNmQyO1xuICB0ZXh0LXNoYWRvdzogMHB4IDBweCAycHggd2hpdGUsIDAgMCAyNXB4ICNmMGU2ZDI7XG4gIGJvcmRlci1pbWFnZTogbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKDEzMSwxMjgsMTUwLDApLCAjNGM0YzRjLCAjNGM0YzRjLCByZ2JhKDEzMSwxMjgsMTUwLDApKSAyNztcblxufVxuLmJ0bi1zdWNjZXNzOm5vdCg6ZGlzYWJsZWQpOmFjdGl2ZSxcbi5zaG93Pi5idG4tc3VjY2Vzcy5kcm9wZG93bi10b2dnbGUge1xuICAgIGNvbG9yOiAjZjBlNmQyO1xuICAgIGJvcmRlci1jb2xvcjogI2YwZTZkMjtcbiAgICBib3JkZXItaW1hZ2U6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSgxMzEsMTI4LDE1MCwwKSwgI2YwZTZkMiwgI2YwZTZkMiwgcmdiYSgxMzEsMTI4LDE1MCwwKSkgMjc7XG4gICAgYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgcmdiYSgyNTUsMjU1LDI1NSwwLjI1KSAwJSwgcmdiYSgxMzEsMTI4LDE1MCwwLjAyKSAxMDAlKTtcblxufVxuYnV0dG9uLCBzZWxlY3Qge1xuICAgIG1hcmdpbi10b3A6IDE1cHg7XG59XG5zZWxlY3R7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBwYWRkaW5nOiAwLjM3NXJlbSAwLjc1cmVtO1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG5cbnNlbGVjdDpmaXJzdC1vZi10eXBle1xuICBib3JkZXItcmFkaXVzOiA1cHggMCAwIDVweDtcbn1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogODUwcHgpe1xuICAgICAgdWwge1xuICAgICAgZm9udC1zaXplOiAzcmVtO1xuICAgIH1cbiAgICAuYnRuLmJ0bi1zdWNjZXNzIHtcbiAgICAgIG1hcmdpbi10b3A6IDE1cHg7XG4gICAgfVxuICB9XG5cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogODUwcHgpIGFuZCAob3JpZW50YXRpb246cG9ydHJhaXQpe31cbiAgPC9zdHlsZT5cbiIsIjx0ZW1wbGF0ZT5cbjxkaXY+XG4gIDx1bD5cbiAgICA8bGkgdi1mb3I9XCJsaW5lIGluIGhpc3RvcnlcIj5cbiAgICAgIDxzcGFuPnt7ZGF0ZShsaW5lLnRpbWUpfX08L3NwYW4+XG4gICAgICA8c3Bhbj4oe3tkaWZmVG9UZXh0KGxpbmUuc3RhdCl9fSB7e2RpZmZUb1RleHQobGluZS5kaWZmaWN1bHR5KX19KSA6PC9zcGFuPlxuICAgICAgPHNwYW4gdi1mb3I9XCJkaWNlIGluIGxpbmUucm9sbFwiIDpjbGFzcz1cImRpY2VDbGFzcyhkaWNlLGxpbmUuZGlmZmljdWx0eSlcIj5cbiAgICAgICAgPGZvbnQtYXdlc29tZS1pY29uIHYtaWY9XCJkaWNlID09IDFcIiA6aWNvbj1cIlsnZmFzJywgJ2RpY2Utb25lJ11cIiAvPlxuICAgICAgICA8Zm9udC1hd2Vzb21lLWljb24gdi1pZj1cImRpY2UgPT0gMlwiIDppY29uPVwiWydmYXMnLCAnZGljZS10d28nXVwiIC8+XG4gICAgICAgIDxmb250LWF3ZXNvbWUtaWNvbiB2LWlmPVwiZGljZSA9PSAzXCIgOmljb249XCJbJ2ZhcycsICdkaWNlLXRocmVlJ11cIiAvPlxuICAgICAgICA8Zm9udC1hd2Vzb21lLWljb24gdi1pZj1cImRpY2UgPT0gNFwiIDppY29uPVwiWydmYXMnLCAnZGljZS1mb3VyJ11cIiAvPlxuICAgICAgICA8Zm9udC1hd2Vzb21lLWljb24gdi1pZj1cImRpY2UgPT0gNVwiIDppY29uPVwiWydmYXMnLCAnZGljZS1maXZlJ11cIiAvPlxuICAgICAgICA8Zm9udC1hd2Vzb21lLWljb24gdi1pZj1cImRpY2UgPT0gNlwiIDppY29uPVwiWydmYXMnLCAnZGljZS1zaXgnXVwiIC8+XG4gICAgICA8L3NwYW4+XG4gICAgPC9saT5cbiAgPC91bD5cbjwvZGl2PlxuPC90ZW1wbGF0ZT5cbiAgPHNjcmlwdD5cbmltcG9ydCB7IGxpYnJhcnkgfSBmcm9tIFwiQGZvcnRhd2Vzb21lL2ZvbnRhd2Vzb21lLXN2Zy1jb3JlXCI7XG5pbXBvcnQgeyBmYURpY2VPbmUsZmFEaWNlVHdvLGZhRGljZVRocmVlLGZhRGljZUZvdXIsZmFEaWNlRml2ZSxmYURpY2VTaXh9IGZyb20gXCJAZm9ydGF3ZXNvbWUvZnJlZS1zb2xpZC1zdmctaWNvbnNcIjtcbmltcG9ydCB0aW1lU3RhbXBDb252ZXJ0ZXIgZnJvbSBcIi4uLy4uL291dGlscy90aW1lU3RhbXBUb0RhdGVcIjtcbmxpYnJhcnkuYWRkKGZhRGljZU9uZSxmYURpY2VUd28sZmFEaWNlVGhyZWUsZmFEaWNlRm91cixmYURpY2VGaXZlLGZhRGljZVNpeCk7XG4gIGV4cG9ydCBkZWZhdWx0IHtcbiAgICAvL05vbSBkZSBsYSB2dWVcbiAgICBuYW1lOiBcIkRpY2VIaXN0b3J5XCIsXG4gICAgaW5qZWN0OlsnZ2V0UHJvZ3Jlc3MnXSxcbiAgICBwcm9wczoge30sXG4gICAgbWV0aG9kczoge1xuICAgICAgZGF0ZSh0aW1lKVxuICAgICAge1xuICAgICAgICByZXR1cm4gdGltZVN0YW1wQ29udmVydGVyLkRhdGV0aW1lVG9EYXRlSG91cnModGltZSk7XG4gICAgICB9LFxuICAgICAgZGljZUNsYXNzKHZhbHVlLGRpZmYpXG4gICAgICB7XG4gICAgICAgIGlmKHZhbHVlID09IDEpIHJldHVybiAncmVkJztcbiAgICAgICAgaWYodmFsdWUgPCBkaWZmKSByZXR1cm4gJ25vdC1yZWxldmFudCc7XG4gICAgICAgIHJldHVybiAnJztcbiAgICAgIH0sXG4gICAgICBkaWZmVG9UZXh0KHZhbHVlKVxuICAgICAge1xuICAgICAgICBzd2l0Y2gocGFyc2VJbnQodmFsdWUpKXtcbiAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICByZXR1cm4gJ1Nww6ljaWFsJztcbiAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICByZXR1cm4gJ0ZhY2lsZSc7XG4gICAgICAgICAgY2FzZSA0OlxuICAgICAgICAgICAgcmV0dXJuICdNb3llbic7XG4gICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgcmV0dXJuICdBc3NleiBEdXInO1xuICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgIHJldHVybiAnVHLDqHMgRHVyJztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBjb21wdXRlZDp7XG4gICAgICBoaXN0b3J5OmZ1bmN0aW9uKClcbiAgICAgIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0UHJvZ3Jlc3MoKS5oaXN0b3J5XG4gICAgICB9LFxuICAgIH1cbiAgfTtcbiAgPC9zY3JpcHQ+XG4gIFxuICA8c3R5bGUgc2NvcGVkPlxuICBkaXYge1xuICAgIHBhZGRpbmc6IDIwcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzI4MjgyODtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiA5MCU7XG4gICAgbWFyZ2luOiAyMHB4O1xuICB9XG5cbiAgc3BhbntcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDJweDtcbiAgfVxuXG4gIHNwYW46Zmlyc3Qtb2YtdHlwZSxcbiAgc3BhbjpudGgtb2YtdHlwZSgyKXtcbiAgICBmb250LXNpemU6IDFyZW07XG4gIH1cbiAgc3BhbjpudGgtb2YtdHlwZSgyKXtcbiAgICBtYXJnaW4tcmlnaHQ6IDE1cHg7XG4gIH1cbiAgLnJlZHtcbiAgICBjb2xvcjpicm93bjtcbiAgfVxuXG4gIC5ub3QtcmVsZXZhbnR7XG4gICAgb3BhY2l0eTogLjU7XG4gIH1cblxuICB1bCB7XG4gICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZm9udC1zaXplOiAycmVtO1xuICAgIG1hcmdpbjogYXV0bztcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgfVxuICBsaXtcbiAgICBtYXJnaW46IDFweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAgfVxuXG5cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogODUwcHgpe1xuXG4gIH1cblxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4NTBweCkgYW5kIChvcmllbnRhdGlvbjpwb3J0cmFpdCl7XG4gICAgc3BhbjpmaXJzdC1vZi10eXBlLFxuICAgIHNwYW46bnRoLW9mLXR5cGUoMil7XG4gICAgICBmb250LXNpemU6IDAuNzVyZW07XG4gICAgfSAgICAgIFxuICAgIHNwYW46bnRoLW9mLXR5cGUoMil7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgfVxuICAgIHVsIHtcbiAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICB9XG4gIH1cbiAgPC9zdHlsZT5cbiAgIiwiPHRlbXBsYXRlPlxuICA8dGFibGU+XG4gICAgPHRyIHYtZm9yPVwiKHN0YXRlLGluZGV4KSBpbiBzdGF0ZXNcIiA6Y2xhc3M9XCJzdGF0ZS5zdGF0dXNDb2xvclwiIDprZXk9XCJpbmRleFwiIDp0aXRsZT1cInN0YXRlLmRlc2NyaXB0aW9uXCI+XG4gICAgICA8dGg+XG4gICAgICAgIDxsYWJlbCA6Zm9yPVwic3RhdGUubGliZWxcIj57e3N0YXRlLmxpYmVsfX08L2xhYmVsPlxuICAgICAgPC90aD5cbiAgICAgIDx0ZD5cbiAgICAgICAgPGlucHV0IDppZD1cInN0YXRlLmxpYmVsXCIgdHlwZT1cImNoZWNrYm94XCIgQGNoYW5nZT1cInRvZ2dsZVN0YXRlKHN0YXRlLmxpYmVsKVwiIDp0aXRsZT1cInN0YXRlLmRlc2NyaXB0aW9uXCIvPlxuICAgICAgICA8c3BhbiB2LWlmPVwic3RhdGUuY3VycmVudFRpbWUgPCBzdGF0ZS50aW1lTGltaXQgfHwgIXN0YXRlLmRlYXRoIHx8IHN0YXRlLmN1cnJlbnRUaW1lID09IDBcIj5cbiAgICAgICAgICA8Zm9udC1hd2Vzb21lLWljb24gdi1pZj1cInN0YXRlLmN1cnJlbnRUaW1lID09IDFcIiA6aWNvbj1cIlsnZmFzJywgJ2RpY2Utb25lJ11cIiAvPlxuICAgICAgICAgIDxmb250LWF3ZXNvbWUtaWNvbiB2LWlmPVwic3RhdGUuY3VycmVudFRpbWUgPT0gMlwiIDppY29uPVwiWydmYXMnLCAnZGljZS10d28nXVwiIC8+XG4gICAgICAgICAgPGZvbnQtYXdlc29tZS1pY29uIHYtaWY9XCJzdGF0ZS5jdXJyZW50VGltZSA9PSAzXCIgOmljb249XCJbJ2ZhcycsICdkaWNlLXRocmVlJ11cIiAvPlxuICAgICAgICAgIDxmb250LWF3ZXNvbWUtaWNvbiB2LWlmPVwic3RhdGUuY3VycmVudFRpbWUgPT0gNFwiIDppY29uPVwiWydmYXMnLCAnZGljZS1mb3VyJ11cIiAvPlxuICAgICAgICAgIDxmb250LWF3ZXNvbWUtaWNvbiB2LWlmPVwic3RhdGUuY3VycmVudFRpbWUgPT0gNVwiIDppY29uPVwiWydmYXMnLCAnZGljZS1maXZlJ11cIiAvPlxuICAgICAgICAgIDxmb250LWF3ZXNvbWUtaWNvbiB2LWlmPVwic3RhdGUuY3VycmVudFRpbWUgPT0gNlwiIDppY29uPVwiWydmYXMnLCAnZGljZS1zaXgnXVwiIC8+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPHNwYW4gdi1lbHNlPlxuICAgICAgICAgIDxmb250LWF3ZXNvbWUtaWNvbiA6aWNvbj1cIlsnZmFzJywgJ3NrdWxsJ11cIiAvPlxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L3RkPlxuICAgIDwvdHI+XG4gIDwvdGFibGU+XG48L3RlbXBsYXRlPlxuICA8c2NyaXB0PlxuaW1wb3J0IHsgbGlicmFyeSB9IGZyb20gXCJAZm9ydGF3ZXNvbWUvZm9udGF3ZXNvbWUtc3ZnLWNvcmVcIjtcbmltcG9ydCB7IGZhRGljZU9uZSxmYURpY2VUd28sZmFEaWNlVGhyZWUsZmFEaWNlRm91cixmYURpY2VGaXZlLGZhRGljZVNpeCwgZmFTa3VsbH0gZnJvbSBcIkBmb3J0YXdlc29tZS9mcmVlLXNvbGlkLXN2Zy1pY29uc1wiO1xubGlicmFyeS5hZGQoZmFEaWNlT25lLGZhRGljZVR3byxmYURpY2VUaHJlZSxmYURpY2VGb3VyLGZhRGljZUZpdmUsZmFEaWNlU2l4LCBmYVNrdWxsKTtcbiAgZXhwb3J0IGRlZmF1bHQge1xuICAgIC8vTm9tIGRlIGxhIHZ1ZVxuICAgIG5hbWU6IFwiRGljZVN0YXRzXCIsXG4gICAgaW5qZWN0OlsnZ2V0UHJvZ3Jlc3MnLCd0b2dnbGVTdGF0ZSddLFxuICAgIGRhdGEoKSB7XG4gICAgcmV0dXJuIHt9XG4gIH0sXG4gICAgcHJvcHM6IHt9LFxuICAgIG1ldGhvZHM6IHtcbiAgICB9LFxuICAgIGNvbXB1dGVkOntcbiAgICAgIHN0YXRlcygpe1xuICAgICAgIHJldHVybiB0aGlzLmdldFByb2dyZXNzKCkuc3RhdGVzO1xuICAgICAgfVxuICAgIH1cbiAgfTtcbiAgPC9zY3JpcHQ+XG5cbiAgPHN0eWxlIHNjb3BlZD5cbiAgdGFibGV7XG4gICAgbWFyZ2luOiAxMHB4O1xuICAgIHdpZHRoOiA4MCU7XG4gIH1cblxuICB0cntcblxuICAgIGJvcmRlci13aWR0aDogMXB4O1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1pbWFnZTogbGluZWFyLWdyYWRpZW50KDkwZGVnLCAjNTE1MTUxLCAjNTE1MTUxLCByZ2JhKDEzMSwxMjgsMTUwLDApKSAyNztcbiAgICBib3JkZXItaW1hZ2UtcmVwZWF0OiBzdHJldGNoO1xuICAgIGJvcmRlci1pbWFnZS13aWR0aDogMXB4IDAgMCAxcHg7XG4gICAgbWluLWhlaWdodDogNTZweDtcbiAgICBtaW4td2lkdGg6IDE2N3B4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cbiAgdHI6bGFzdC1vZi10eXBle1xuICAgIGJvcmRlci1pbWFnZS13aWR0aDogMXB4IDAgMXB4IDFweDtcblxuICB9XG4gIHRkIGlucHV0e1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICB0aHtcbiAgICBmb250LXNpemU6IDFlbTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB9XG5cbiAgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdICsgc3BhbntcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6IDIuNWVtO1xuXG4gICAgfVxuXG4gIC5ibGFuY3tcbiAgICBjb2xvcjogd2hpdGU7XG4gIH1cblxuICAuZ3Jpc3tcbiAgICBjb2xvcjogZ3JleTtcbiAgfVxuXG4gIC5ub2lye1xuICAgIGNvbG9yOndoaXRlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMyMDA3NTY7XG4gICAgYmFja2dyb3VuZDogcmdiKDMyLDcsODYpO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg4MmRlZywgcmdiYSgzMiw3LDg2LDEpIDUwJSwgcmdiYSgxMzEsMTI4LDE1MCwwKSAxMDAlKTtcbiAgfVxuICBsYWJlbHtcbiAgICBtYXJnaW4tbGVmdDogMXJlbTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogODUwcHgpe1xuXG4gIH1cblxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4NTBweCkgYW5kIChvcmllbnRhdGlvbjpwb3J0cmFpdCl7XG4gIH1cbiAgPC9zdHlsZT5cbiIsIjx0ZW1wbGF0ZT5cbjxkaXYgY2xhc3M9XCJjaGFyYWN0ZXJTaGVldFwiPlxuICA8ZGl2PlxuICAgIDxoMT57e2NoYXJhY3Rlci5uYW1lfX08L2gxPiAgICBcbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJjaGFyYWN0ZXJDYXJkXCI+XG4gICAgPEFyY2hldHlwZUNhcmQgZGF0YS10b2dnbGU9XCJtb2RhbFwiIGRhdGEtdGFyZ2V0PVwiI21vZGFsQ2hvb3NlQXJjaGV0eXBlXCIgOmFyY2hldHlwZT1cImNoYXJhY3Rlci5hcmNoZXR5cGVcIiA6Z2VucmU9XCJjaGFyYWN0ZXIuZ2VucmVcIi8+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwic3RhdFwiPlxuICAgIDxTdGF0ZXMvPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImRpY2VMaW5lXCI+XG4gICAgPERpY2VNb2R1bGUvPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImhpc3RvcnlcIj5cbiAgICA8RGljZUhpc3RvcnkvPlxuICA8L2Rpdj5cbiAgPGJ1dHRvbiBjbGFzcz1cImNoYW5nZUNoYXJhY3RlciBidG4gYnRuLXN1Y2Nlc3NcIiBAY2xpY2s9XCJzZXRMb2NrZWRDaGFyYWN0ZXIoZmFsc2UpXCI+Q2hhbmdlciBkZSBwZXJzb25uYWdlPC9idXR0b24+XG48L2Rpdj5cbjwvdGVtcGxhdGU+XG48c2NyaXB0PlxuaW1wb3J0IEFyY2hldHlwZUNhcmQgZnJvbSAnLi4vLi4vY2hhcmFjdGVyQ3JlYXRvci9BcmNoZXR5cGVDYXJkLnZ1ZSc7XG5pbXBvcnQgeyBsaWJyYXJ5IH0gZnJvbSBcIkBmb3J0YXdlc29tZS9mb250YXdlc29tZS1zdmctY29yZVwiO1xuaW1wb3J0IHsgZmFNYXJzLCBmYVZlbnVzfSBmcm9tIFwiQGZvcnRhd2Vzb21lL2ZyZWUtc29saWQtc3ZnLWljb25zXCI7XG5pbXBvcnQgRGljZU1vZHVsZSBmcm9tIFwiLi4vLi4vY2hhcmFjdGVyQ3JlYXRvci9EaWNlTW9kdWxlLnZ1ZVwiO1xuaW1wb3J0IERpY2VIaXN0b3J5IGZyb20gXCIuLi8uLi9jaGFyYWN0ZXJDcmVhdG9yL0RpY2VIaXN0b3J5LnZ1ZVwiXG5pbXBvcnQgU3RhdGVzIGZyb20gXCIuLi8uLi9jaGFyYWN0ZXJDcmVhdG9yL1N0YXRlcy52dWVcIlxuXG5saWJyYXJ5LmFkZCggZmFNYXJzLCBmYVZlbnVzKTtcbmV4cG9ydCBkZWZhdWx0IHtcbiAgLy9Ob20gZGUgbGEgdnVlXG4gIG5hbWU6IFwiY2hhcmFjdGVyU2hlZXRcIixcbiAgaW5qZWN0OlsnZ2V0Q2hhcmFjdGVyJywnc2V0TG9ja2VkQ2hhcmFjdGVyJ10sXG4gIC8vb24gcHJlY2lzZSBsZXMgdnVlcyBxdWkgdm9udCDDqnRyZSBjb21tdW5pcXXDqWUgw6AgbGEgcGFnZVxuICBjb21wb25lbnRzOiB7XG4gICAgQXJjaGV0eXBlQ2FyZCxcbiAgICBEaWNlTW9kdWxlLFxuICAgIERpY2VIaXN0b3J5LFxuICAgIFN0YXRlcyxcbiAgfSxcbiAgcHJvcHM6IHtcbiAgfSxcblxuICBkYXRhKCkge1xuICAgIHJldHVybiB7fVxuICB9LFxuICBjb21wdXRlZDp7XG4gICAgY2hhcmFjdGVyKCkge3JldHVybiB0aGlzLmdldENoYXJhY3RlcigpO30sXG5cbiAgfSxcblxuICBtZXRob2RzOiB7XG4gIH0sXG5cbiAgbW91bnRlZCgpIHtcbiAgfSxcbiAgd2F0Y2g6IHtcbiAgfSxcbn07XG48L3NjcmlwdD5cblxuPHN0eWxlIHNjb3BlZD5cbi5jaGFyYWN0ZXJTaGVldHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogY2FsYygxMDAlIC0gMHB4KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7IC8qICMwMTBhMTM7Ki9cbiAgbWFyZ2luOiAwO1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLXJvd3M6IDMwcHggMTEwcHggMTMwcHggMWZyIDUwcHggNTBweDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywxZnIpO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi5jaGFyYWN0ZXJTaGVldCA+IGRpdjpsYXN0LW9mLXR5cGV7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtZXZlbmx5O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4uY2hhcmFjdGVyU2hlZXQgPiBkaXY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbjogMTBweCAwO1xuICAgIGdyaWQtY29sdW1uLXN0YXJ0OiAxO1xuICAgIGdyaWQtY29sdW1uLWVuZDogNDtcbiAgICBncmlkLXJvdy1zdGFydDogMjtcbn1cbi5jaGFyYWN0ZXJDYXJkXG57XG4gICAgZ3JpZC1jb2x1bW4tc3RhcnQ6IDI7XG4gICAgZ3JpZC1jb2x1bW4tZW5kOiAyO1xuICAgIGdyaWQtcm93LXN0YXJ0OiAyO1xuICAgIGdyaWQtcm93LWVuZDogNTtcbn1cblxuaDF7XG4gIGZvbnQtZmFtaWx5OiAnTWVkaWV2YWxTaGFycCcsIGN1cnNpdmU7XG4gIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KCNmZmU0YWYsICM2MjU0M2EpO1xuICAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogdGV4dDtcbiAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IHRyYW5zcGFyZW50O1xuICBmb250LXNpemU6IDMuNXJlbTtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWNvbG9yOiAjY2RiZDkxO1xuICBib3JkZXItaW1hZ2U6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSgxMzEsMTI4LDE1MCwwKSwgIzUxNTE1MSwgIzUxNTE1MSwgcmdiYSgxMzEsMTI4LDE1MCwwKSkgMjc7XG4gIGJvcmRlci1pbWFnZS1yZXBlYXQ6IHN0cmV0Y2g7XG4gIGJvcmRlci1pbWFnZS13aWR0aDogMCAwIDFweCAwO1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgbWFyZ2luOiBhdXRvO1xuICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gIHBhZGRpbmctcmlnaHQ6IDEyMHB4O1xuICBwYWRkaW5nLWxlZnQ6IDEyMHB4O1xufVxuLmRpY2VMaW5lXG57XG4gICAgZ3JpZC1jb2x1bW4tc3RhcnQ6IDM7XG4gICAgZ3JpZC1jb2x1bW4tZW5kOiAzO1xuICAgIGdyaWQtcm93LXN0YXJ0OiAzO1xuICAgIGdyaWQtcm93LWVuZDogMztcbn1cblxuLnN0YXR7XG4gIGdyaWQtY29sdW1uLXN0YXJ0OiAxO1xuICBncmlkLWNvbHVtbi1lbmQ6IDE7XG4gIGdyaWQtcm93LXN0YXJ0OiAzO1xuICBncmlkLXJvdy1lbmQ6IDU7XG59XG5cbi5jaGFuZ2VDaGFyYWN0ZXJ7XG4gIGdyaWQtY29sdW1uLXN0YXJ0OiAyO1xuICBncmlkLWNvbHVtbi1lbmQ6IDI7XG4gIGdyaWQtcm93LXN0YXJ0OiA1O1xuICBncmlkLXJvdy1lbmQ6IDU7XG59XG5cbi5oaXN0b3J5e1xuICBncmlkLWNvbHVtbi1zdGFydDogMztcbiAgZ3JpZC1jb2x1bW4tZW5kOiAzO1xuICBncmlkLXJvdy1zdGFydDogNDtcbiAgZ3JpZC1yb3ctZW5kOiA1O1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiA5MCU7XG59XG5cbi5jaGFyYWN0ZXJTaGVldCA+IGRpdjpmaXJzdC1vZi10eXBlIGlucHV0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogYnJvd247XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIGJvcmRlcjogMHB4IHNvbGlkIHdoaXRlO1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDFweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAxLjVlbTtcbiAgICB3aWR0aDogMTB2dztcbiAgICBmb250LWZhbWlseTogJ01lZGlldmFsU2hhcnAnLCBjdXJzaXZlO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjEwZW07XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDBkZWcsIHJnYmEoMCwwLDAsLjUpIDAlLCByZ2JhKDExLDIwLDI3LDApIDEwMCUpO1xufVxuXG5pbnB1dDpmb2N1cy12aXNpYmxlIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJvcmRlci1jb2xvcjogYnJvd24gIWltcG9ydGFudDtcbn1cblxuLmdlbnJlU2VsZWN0e1xuICBkaXNwbGF5OiBncmlkO1xuICBtYXJnaW46IDEwcHggYXV0bztcbiAgd2lkdGg6IDQwcHg7XG4gIGhlaWdodDogNDBweDtcbn1cblxuLmdlbnJlU2VsZWN0IGlucHV0e1xuICBkaXNwbGF5OiBub25lO1xufVxuLmdlbnJlU2VsZWN0IGxhYmVse1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHdoaXRlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5nZW5yZVNlbGVjdCBsYWJlbDpmaXJzdC1vZi10eXBle1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG59XG5sYWJlbCBzcGFuIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMzhweDtcbiAgICBoZWlnaHQ6IDM4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIG1hcmdpbjogMXB4O1xuICAgIGZvbnQtc2l6ZTogMS42ZW07XG4gICAgcGFkZGluZzogNHB4O1xuICAgIGJvcmRlcjogMHB4IHNvbGlkIGJyb3duO1xuICAgIGJhY2tncm91bmQtY29sb3I6IGJyb3duO1xufVxuXG5pbnB1dFt0eXBlPVwicmFkaW9cIl06Y2hlY2tlZCtsYWJlbCBzcGFue1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBicm93bjtcbn1cbi5nZW5yZVNlbGVjdCBsYWJlbDpsYXN0LW9mLXR5cGV7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbn1cbi5zaHVmZmxle1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAxO1xuICBhbmltYXRpb24tbmFtZTogc2xpZGVfaW47XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMS41cztcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG59XG4uYnRuLmJ0bi1zdWNjZXNzIHtcblx0bWFyZ2luOiBhdXRvO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiBicm93bjtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1jb2xvcjogYnJvd247XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYm9yZGVyLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMTMxLDEyOCwxNTAsMCksIGJyb3duLCBicm93biwgcmdiYSgxMzEsMTI4LDE1MCwwKSkgMjc7XG4gIGJvcmRlci1pbWFnZS1yZXBlYXQ6IHN0cmV0Y2g7XG4gIGJvcmRlci1pbWFnZS13aWR0aDogMXB4IDA7XG4gIHBhZGRpbmc6IDRweCAxNXB4IDRweDtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGNvbG9yOiBicm93bjtcbiAgbGV0dGVyLXNwYWNpbmc6IDJweDtcbiAgZm9udC1mYW1pbHk6ICdNZWRpZXZhbFNoYXJwJywgY3Vyc2l2ZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi5idG4uYnRuLXN1Y2Nlc3M6Zm9jdXMge1xuICBib3JkZXItaW1hZ2U6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSgxMzEsMTI4LDE1MCwwKSwgd2hpdGUsIHdoaXRlLCByZ2JhKDEzMSwxMjgsMTUwLDApKSAyNztcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi5idG4tc3VjY2Vzcy5mb2N1cywgLmJ0bi1zdWNjZXNzOmZvY3Vze1xuICBib3gtc2hhZG93OiBub25lO1xufVxuXG4uYnRuLXN1Y2Nlc3M6bm90KDpkaXNhYmxlZCk6aG92ZXJ7XG4gIGNvbG9yOiAjZjBlNmQyO1xuICB0ZXh0LXNoYWRvdzogMHB4IDBweCAycHggd2hpdGUsIDAgMCAyNXB4ICNmMGU2ZDI7XG4gIGJvcmRlci1pbWFnZTogbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKDEzMSwxMjgsMTUwLDApLCBicm93biwgYnJvd24sIHJnYmEoMTMxLDEyOCwxNTAsMCkpIDI3O1xuXG59IFxuLmJ0bi1zdWNjZXNzOm5vdCg6ZGlzYWJsZWQpOmFjdGl2ZSwgXG4uc2hvdz4uYnRuLXN1Y2Nlc3MuZHJvcGRvd24tdG9nZ2xlIHtcbiAgICBjb2xvcjogI2YwZTZkMjtcbiAgICBib3JkZXItY29sb3I6ICNmMGU2ZDI7XG4gICAgYm9yZGVyLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMTMxLDEyOCwxNTAsMCksICNmMGU2ZDIsICNmMGU2ZDIsIHJnYmEoMTMxLDEyOCwxNTAsMCkpIDI3O1xuICAgIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUsIHJnYmEoMjU1LDI1NSwyNTUsMC4yNSkgMCUsIHJnYmEoMTMxLDEyOCwxNTAsMC4wMikgMTAwJSk7XG5cbn1cbkBrZXlmcmFtZXMgc2xpZGVfaW57XG4gIDAle1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xMHZ3LDEwMHZoKSByb3RhdGUzZCg1LCAxLCAxLCA0MWRlZyk7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4NTBweCl7XG4gIC5jaGFyYWN0ZXJTaGVldHtcbiAgICBoZWlnaHQ6IDEwMHZoO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG5cbiAgLmNoYXJhY3RlclNoZWV0ID4gZGl2OmZpcnN0LW9mLXR5cGUgaW5wdXQge1xuICAgIHdpZHRoOiAzMHZ3O1xufVxufVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4NTBweCkgYW5kIChvcmllbnRhdGlvbjpwb3J0cmFpdCl7XG4gICAgLmNoYXJhY3RlclNoZWV0IHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIH1cblxuICAuY2hhcmFjdGVyU2hlZXQgPiBkaXY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgbWFyZ2luOiAxMTBweCAwIDMwcHggMDtcbiAgfVxuICBcbiAgLmNoYXJhY3RlclNoZWV0ID4gZGl2Omxhc3Qtb2YtdHlwZXtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG4gIC5jaGFyYWN0ZXJTaGVldCA+IGRpdjpmaXJzdC1vZi10eXBlIGlucHV0IHtcbiAgICB3aWR0aDogNTB2dztcbiAgfVxuXG4gIC5oMSwgaDEge1xuICAgIGZvbnQtc2l6ZTogMS44cmVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDBweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDBweDtcbiAgfVxuICAuY2hhbmdlQ2hhcmFjdGVye1xuICAgIG1hcmdpbi1ib3R0b206IDQwcHg7XG4gIH1cblxuICAuc3RhdHtcbiAgICBvcmRlcjoyO1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAzMnB4KTtcbiAgfVxuXG4gIC5idG4uYnRuLXN1Y2Nlc3M6bGFzdC1vZi10eXBle1xuICAgIG9yZGVyOjM7XG4gICAgbWFyZ2luOiAxNXB4IDAgMjVweCAwO1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4NTBweCkgYW5kIChtYXgtaGVpZ2h0OiAxMDBweCl7XG4gICAgLmNoYXJhY3RlclNoZWV0ID4gZGl2Omxhc3Qtb2YtdHlwZXtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cblxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogODUwcHgpIGFuZCAobWF4LWhlaWdodDogNDAwcHgpIGFuZCAob3JpZW50YXRpb246cG9ydHJhaXQpe1xuICAuY2hhcmFjdGVyU2hlZXQgPiBkaXY6bGFzdC1vZi10eXBle1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgXG59XG48L3N0eWxlPlxuIiwiPHRlbXBsYXRlPlxuICAgIDxkaXYgY2xhc3M9XCJib2FyZFwiPlxuICAgICAgPGRpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImdlbnJlU2VsZWN0XCIgPlxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwicmFkaW9cIiBuYW1lPVwiZ2VucmVcIiB2YWx1ZT1cImhvbW1lXCIgaWQ9XCJIb21cIiB2LW1vZGVsPVwiZ2VucmVcIj5cbiAgICAgICAgICA8bGFiZWwgZm9yPVwiSG9tXCI+PHNwYW4+PGZvbnQtYXdlc29tZS1pY29uIDppY29uPVwiWydmYXMnLCAnbWFycyddXCIgLz48L3NwYW4+PC9sYWJlbD5cbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInJhZGlvXCIgbmFtZT1cImdlbnJlXCIgdmFsdWU9XCJmZW1tZVwiIGlkPVwiRmVtXCIgdi1tb2RlbD1cImdlbnJlXCI+XG4gICAgICAgICAgPGxhYmVsIGZvcj1cIkZlbVwiPjxzcGFuPjxmb250LWF3ZXNvbWUtaWNvbiA6aWNvbj1cIlsnZmFzJywgJ3ZlbnVzJ11cIiAvPjwvc3Bhbj48L2xhYmVsPiAgICAgIFxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgdi1tb2RlbD1cIm5hbWVcIi8+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxBcmNoZXR5cGVDYXJkIHYtZm9yPVwiKGlkLGluZGV4KSBpbiBzZWxlY3RlZENhcmRzXCIgXG4gICAgICAgIEBjaG9vc2U9XCJjaG9vc2UoaWQpXCIgICAgIFxuICAgICAgICBkYXRhLXRvZ2dsZT1cIm1vZGFsXCJcbiAgICAgICAgZGF0YS10YXJnZXQ9XCIjbW9kYWxDaG9vc2VBcmNoZXR5cGVcIlxuICAgICAgICA6a2V5PVwiaWRcIiA6YXJjaGV0eXBlPVwiYXJjaGV0eXBlW2lkXVwiXG4gICAgICAgIDpnZW5yZT1cImdlbnJlXCJcbiAgICAgICAgIGNsYXNzPVwic2h1ZmZsZVwiIDpzdHlsZT1cImBhbmltYXRpb24tZHVyYXRpb246ICR7KDAuOCooaW5kZXgrMSkpfXM7YFwiXG4gICAgICAgICAvPlxuICAgIFxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPC90ZW1wbGF0ZT5cbiAgICA8c2NyaXB0PlxuICAgIGltcG9ydCBBcmNoZXR5cGVDYXJkIGZyb20gJy4uLy4uL2NoYXJhY3RlckNyZWF0b3IvQXJjaGV0eXBlQ2FyZC52dWUnO1xuICAgIGltcG9ydCB7IGxpYnJhcnkgfSBmcm9tIFwiQGZvcnRhd2Vzb21lL2ZvbnRhd2Vzb21lLXN2Zy1jb3JlXCI7XG4gICAgaW1wb3J0IHsgZmFNYXJzLCBmYVZlbnVzfSBmcm9tIFwiQGZvcnRhd2Vzb21lL2ZyZWUtc29saWQtc3ZnLWljb25zXCI7XG4gICAgXG4gICAgbGlicmFyeS5hZGQoIGZhTWFycywgZmFWZW51cyk7XG4gICAgZXhwb3J0IGRlZmF1bHQge1xuICAgICAgLy9Ob20gZGUgbGEgdnVlXG4gICAgICBuYW1lOiBcImNob29zZUFyY2hldHlwZVwiLFxuICAgICAgaW5qZWN0Olsnc2V0Q2hhcmFjdGVyJ10sXG4gICAgICAvL29uIHByZWNpc2UgbGVzIHZ1ZXMgcXVpIHZvbnQgw6p0cmUgY29tbXVuaXF1w6llIMOgIGxhIHBhZ2VcbiAgICAgIGNvbXBvbmVudHM6IHtcbiAgICAgICAgQXJjaGV0eXBlQ2FyZFxuICAgICAgfSxcbiAgICAgIHByb3BzOiB7XG4gICAgICAgIGFyY2hldHlwZTp7fSxcbiAgICAgICAgbm9tczp7fSxcbiAgICAgIH0sXG4gICAgXG4gICAgICBkYXRhKCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHNlbGVjdGVkQ2FyZHM6IFtdLFxuICAgICAgICAgIG5hbWU6J29rJyxcbiAgICAgICAgICBnZW5yZTonaG9tbWUnLFxuICAgICAgICAgIGNob3NlbjpmYWxzZSxcbiAgICAgICAgfTtcbiAgICAgIH0sXG4gICAgICBjb21wdXRlZDp7XG4gICAgICAgIGNoYXJhY3RlcigpXG4gICAgICAgIHtcbiAgICAgICAgICBpZighdGhpcy5jaG9zZW4pIHJldHVybiBmYWxzZTtcbiAgICAgICAgICBsZXQgdGl0cmUgPSAodGhpcy5nZW5yZSA9PSBcImhvbW1lXCIpPydub20nOidub21GJztcbiAgICAgICAgICBsZXQgY2hhcmFjdGVyID0ge1xuICAgICAgICAgICAgbmFtZTp0aGlzLm5hbWUgKyAnLCAnK3RoaXMuYXJjaGV0eXBlW3RoaXMuY2hvc2VuXVt0aXRyZV0sXG4gICAgICAgICAgICBnZW5yZTp0aGlzLmdlbnJlLFxuICAgICAgICAgICAgYXJjaGV0eXBlOkpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5hcmNoZXR5cGVbdGhpcy5jaG9zZW5dKSksXG4gICAgICAgICAgfTtcbiAgICAgICAgICByZXR1cm4gY2hhcmFjdGVyOyBcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgXG4gICAgICBtZXRob2RzOiB7XG4gICAgICAgIHJhbmROYW1lKClcbiAgICAgICAge1xuICAgICAgICAgIGxldCByYW5kID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogdGhpcy5ub21zW3RoaXMuZ2VucmVdLmxlbmd0aCk7XG4gICAgICAgICAgcmV0dXJuIHRoaXMubm9tc1t0aGlzLmdlbnJlXVtyYW5kXTtcbiAgICAgICAgfSxcbiAgICAgICAgY2hvb3NlKGlkKVxuICAgICAgICB7XG4gICAgICAgICAgdGhpcy5jaG9zZW4gPSBpZDtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICBcbiAgICAgIG1vdW50ZWQoKSB7XG4gICAgICAgIHdoaWxlKHRoaXMuc2VsZWN0ZWRDYXJkcy5sZW5ndGg8MyApXG4gICAgICAgIHtcbiAgICAgICAgICBsZXQgcmFuZCA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIHRoaXMuYXJjaGV0eXBlLmxlbmd0aCk7XG4gICAgICAgICAgaWYoIXRoaXMuc2VsZWN0ZWRDYXJkcy5pbmNsdWRlcyhyYW5kKSkgdGhpcy5zZWxlY3RlZENhcmRzLnB1c2gocmFuZCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5uYW1lID0gdGhpcy5yYW5kTmFtZSgpO1xuICAgICAgfSxcbiAgICAgIHdhdGNoOiB7XG4gICAgICAgIGdlbnJlKCl7XG4gICAgICAgIHRoaXMubmFtZSA9IHRoaXMucmFuZE5hbWUoKTtcbiAgICAgICAgfSxcbiAgICAgICAgY2hhcmFjdGVyKCl7XG4gICAgICAgICAgdGhpcy5zZXRDaGFyYWN0ZXIoSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmNoYXJhY3RlcikpKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9O1xuICAgIDwvc2NyaXB0PlxuICAgIFxuICAgIDxzdHlsZSBzY29wZWQ+XG4gICAgLmJvYXJke1xuICAgICAgd2lkdGg6IDk5dnc7XG4gICAgICBoZWlnaHQ6IGNhbGMoOTl2aCAtIDMwcHgpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAxMGExMztcbiAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cbiAgICAuYm9hcmQgPiBkaXY6bGFzdC1vZi10eXBle1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1ldmVubHk7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG4gICAgXG4gICAgLmJvYXJkID4gZGl2OmZpcnN0LW9mLXR5cGUge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogMTBweCAwO1xuICAgIH1cbiAgICBcbiAgICAuYm9hcmQgPiBkaXY6Zmlyc3Qtb2YtdHlwZSBpbnB1dCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICBib3JkZXI6IDBweCBzb2xpZCB3aGl0ZTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGZvbnQtc2l6ZTogMS41ZW07XG4gICAgICAgIHdpZHRoOiAxMHZ3O1xuICAgICAgICBmb250LWZhbWlseTogJ01lZGlldmFsU2hhcnAnLCBjdXJzaXZlO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4xMGVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMGRlZywgcmdiKDE1NSAxNTMgMTUzIC8gMjAlKSAwJSwgcmdiYSgxMSwyMCwyNywwKSAxMDAlKVxuICAgIH1cbiAgICBcbiAgICBpbnB1dDpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiBicm93biAhaW1wb3J0YW50O1xuICAgIH1cbiAgICBcbiAgICAuZ2VucmVTZWxlY3R7XG4gICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgbWFyZ2luOiAxMHB4IGF1dG87XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLDFmcik7XG4gICAgICB3aWR0aDogODBweDtcbiAgICAgIGhlaWdodDogNDBweDtcbiAgICB9XG4gICAgXG4gICAgLmdlbnJlU2VsZWN0IGlucHV0e1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gICAgLmdlbnJlU2VsZWN0IGxhYmVse1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHdoaXRlO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuICAgIC5nZW5yZVNlbGVjdCBsYWJlbDpmaXJzdC1vZi10eXBle1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlIDAgMCA1MCU7XG4gICAgfVxuICAgIGxhYmVsIHNwYW4ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDM4cHg7XG4gICAgICAgIGhlaWdodDogMzhweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBtYXJnaW46IDFweDtcbiAgICAgICAgZm9udC1zaXplOiAxLjZlbTtcbiAgICAgICAgcGFkZGluZzogNHB4O1xuICAgICAgICBib3JkZXI6IDBweCBzb2xpZCBicm93bjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG4gICAgfVxuICAgIFxuICAgIGlucHV0W3R5cGU9XCJyYWRpb1wiXTpjaGVja2VkK2xhYmVsIHNwYW57XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBicm93bjtcbiAgICB9XG4gICAgLmdlbnJlU2VsZWN0IGxhYmVsOmxhc3Qtb2YtdHlwZXtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDAgNTAlIDUwJSAwO1xuICAgIH1cbiAgICAuc2h1ZmZsZXtcbiAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IDE7XG4gICAgICBhbmltYXRpb24tbmFtZTogc2xpZGVfaW47XG4gICAgICBhbmltYXRpb24tZHVyYXRpb246IDEuNXM7XG4gICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgICB9XG4gICAgXG4gICAgQGtleWZyYW1lcyBzbGlkZV9pbntcbiAgICAgIDAle1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTB2dywxMDB2aCkgcm90YXRlM2QoNSwgMSwgMSwgNDFkZWcpO1xuICAgICAgfVxuICAgICAgMTAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgICAgIH1cbiAgICB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogODUwcHgpe1xuICAgICAgLmJvYXJke1xuICAgICAgaGVpZ2h0OiAxMDB2aDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgIH1cbiAgICBcbiAgICAgIC5ib2FyZCA+IGRpdjpmaXJzdC1vZi10eXBlIGlucHV0IHtcbiAgICAgICAgd2lkdGg6IDMwdnc7XG4gICAgfVxuICAgIH1cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg1MHB4KSBhbmQgKG9yaWVudGF0aW9uOnBvcnRyYWl0KXtcbiAgICAgICAgLmJvYXJkIHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICB9XG4gICAgXG4gICAgICAuYm9hcmQgPiBkaXY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgIG1hcmdpbjogMTBweCAwIDMwcHggMDtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLmJvYXJkID4gZGl2Omxhc3Qtb2YtdHlwZXtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIH1cbiAgICAgIC5ib2FyZCA+IGRpdjpmaXJzdC1vZi10eXBlIGlucHV0IHtcbiAgICAgICAgd2lkdGg6IDUwdnc7XG4gICAgICB9XG4gICAgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg1MHB4KSBhbmQgKG1heC1oZWlnaHQ6IDEwMHB4KXtcbiAgICAgICAgLmJvYXJkID4gZGl2Omxhc3Qtb2YtdHlwZXtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogODUwcHgpIGFuZCAobWF4LWhlaWdodDogNDAwcHgpIGFuZCAob3JpZW50YXRpb246cG9ydHJhaXQpe1xuICAgICAgICAuYm9hcmQgPiBkaXY6bGFzdC1vZi10eXBle1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgICAgXG4gICAgfVxuICAgIDwvc3R5bGU+XG4gICAgIiwiPHRlbXBsYXRlPlxuPGRpdiBjbGFzcz1cImJvYXJkXCI+XG4gIDxkaXYgdi1pZj1cIiFsb2NrZWRDaGFyYWN0ZXJcIj5cbiAgICA8Q2hvb3NlQXJjaGV0eXBlIDphcmNoZXR5cGU9XCJhcmNoZXR5cGVcIiA6bm9tcz1cIm5vbXNcIi8+XG4gIDwvZGl2PlxuICA8ZGl2IHYtZWxzZT5cbiAgICA8Q2hhcmFjdGVyU2hlZXQvPlxuICA8L2Rpdj5cbjwvZGl2PlxuPC90ZW1wbGF0ZT5cbjxzY3JpcHQ+XG5pbXBvcnQgQ2hhcmFjdGVyU2hlZXQgZnJvbSBcIi4vY2hhcmFjdGVyVGFiL2NoYXJhY3RlclNoZWV0LnZ1ZVwiXG5pbXBvcnQgQ2hvb3NlQXJjaGV0eXBlIGZyb20gXCIuL2NoYXJhY3RlclRhYi9jaG9vc2VBcmNoZXR5cGUudnVlXCI7XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgLy9Ob20gZGUgbGEgdnVlXG4gIG5hbWU6IFwiZ3JvdXBcIixcbiAgaW5qZWN0OlsnZ2V0Q2hhcmFjdGVyTG9ja2VkJ10sXG4gIC8vb24gcHJlY2lzZSBsZXMgdnVlcyBxdWkgdm9udCDDqnRyZSBjb21tdW5pcXXDqWUgw6AgbGEgcGFnZVxuICBjb21wb25lbnRzOiB7XG4gICAgQ2hhcmFjdGVyU2hlZXQsXG4gICAgQ2hvb3NlQXJjaGV0eXBlLFxuICB9LFxuICBwcm9wczoge1xuICAgIGFyY2hldHlwZTp7fSxcbiAgICBub21zOnt9LFxuICB9LFxuXG4gIGRhdGEoKSB7XG4gICAgcmV0dXJuIHt9XG4gIH0sXG4gIGNvbXB1dGVkOntcbiAgICBsb2NrZWRDaGFyYWN0ZXIoKXtcbiAgICAgIHJldHVybiB0aGlzLmdldENoYXJhY3RlckxvY2tlZCgpO1xuICAgIH0sXG4gIH0sXG5cbiAgbWV0aG9kczoge1xuICB9LFxuXG4gIG1vdW50ZWQoKSB7XG4gIH0sXG4gIHdhdGNoOiB7fSxcbn07XG48L3NjcmlwdD5cblxuPHN0eWxlIHNjb3BlZD5cbi5ib2FyZHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogY2FsYygxMDB2aCAtIDMwcHgpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDEwYTEzO1xuICBtYXJnaW46IGF1dG87XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cHM6Ly93d3cudmFnYWJvbmRzLWpkci5mci9hc3NldHMvaW1hZ2VzL2lsbHVzdHJhdGlvbi9wYWdlL2NoYXJhY3Rlci1zZWxlYy9iYWNrZ3JvdW5kL3RhdmVybi5wbmcpO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xufVxuXG4uYm9hcmQgPiBkaXY6bGFzdC1vZi10eXBle1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWV2ZW5seTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLmJvYXJkID4gZGl2OmZpcnN0LW9mLXR5cGUge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5ib2FyZCA+IGRpdjpmaXJzdC1vZi10eXBlIGlucHV0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIGJvcmRlcjogMHB4IHNvbGlkIHdoaXRlO1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDFweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAxLjVlbTtcbiAgICB3aWR0aDogMTB2dztcbiAgICBmb250LWZhbWlseTogJ01lZGlldmFsU2hhcnAnLCBjdXJzaXZlO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjEwZW07XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDBkZWcsIHJnYmEoMCwwLDAsLjUpIDAlLCByZ2JhKDExLDIwLDI3LDApIDEwMCUpO1xufVxuXG5pbnB1dDpmb2N1cy12aXNpYmxlIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJvcmRlci1jb2xvcjogYnJvd24gIWltcG9ydGFudDtcbn1cblxuLmdlbnJlU2VsZWN0e1xuICBkaXNwbGF5OiBncmlkO1xuICBtYXJnaW46IDEwcHggYXV0bztcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwxZnIpO1xuICB3aWR0aDogODBweDtcbiAgaGVpZ2h0OiA0MHB4O1xufVxuXG4uZ2VucmVTZWxlY3QgaW5wdXR7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uZ2VucmVTZWxlY3QgbGFiZWx7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyOiAxcHggc29saWQgd2hpdGU7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLmdlbnJlU2VsZWN0IGxhYmVsOmZpcnN0LW9mLXR5cGV7XG4gIGJvcmRlci1yYWRpdXM6IDUwJSAwIDAgNTAlO1xufVxubGFiZWwgc3BhbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDM4cHg7XG4gICAgaGVpZ2h0OiAzOHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBtYXJnaW46IDFweDtcbiAgICBmb250LXNpemU6IDEuNmVtO1xuICAgIHBhZGRpbmc6IDRweDtcbiAgICBib3JkZXI6IDBweCBzb2xpZCBicm93bjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbn1cblxuaW5wdXRbdHlwZT1cInJhZGlvXCJdOmNoZWNrZWQrbGFiZWwgc3BhbntcbiAgYmFja2dyb3VuZC1jb2xvcjogYnJvd247XG59XG4uZ2VucmVTZWxlY3QgbGFiZWw6bGFzdC1vZi10eXBle1xuICBib3JkZXItcmFkaXVzOiAwIDUwJSA1MCUgMDtcbn1cbi5zaHVmZmxle1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAxO1xuICBhbmltYXRpb24tbmFtZTogc2xpZGVfaW47XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMS41cztcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG59XG5cbkBrZXlmcmFtZXMgc2xpZGVfaW57XG4gIDAle1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xMHZ3LDEwMHZoKSByb3RhdGUzZCg1LCAxLCAxLCA0MWRlZyk7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4NTBweCl7XG4gIC5ib2FyZHtcbiAgaGVpZ2h0OiAxMDB2aDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIH1cblxuICAuYm9hcmQgPiBkaXY6Zmlyc3Qtb2YtdHlwZSBpbnB1dCB7XG4gICAgd2lkdGg6IDMwdnc7XG59XG59XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg1MHB4KSBhbmQgKG9yaWVudGF0aW9uOnBvcnRyYWl0KXtcbiAgICAuYm9hcmQge1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB9XG5cbiAgLmJvYXJkID4gZGl2OmZpcnN0LW9mLXR5cGUge1xuICAgIG1hcmdpbjogMTBweCAwIDMwcHggMDtcbiAgfVxuICBcbiAgLmJvYXJkID4gZGl2Omxhc3Qtb2YtdHlwZXtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG4gIC5ib2FyZCA+IGRpdjpmaXJzdC1vZi10eXBlIGlucHV0IHtcbiAgICB3aWR0aDogNTB2dztcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogODUwcHgpIGFuZCAobWF4LWhlaWdodDogMTAwcHgpe1xuICAgIC5ib2FyZCA+IGRpdjpsYXN0LW9mLXR5cGV7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogODUwcHgpIGFuZCAobWF4LWhlaWdodDogNDAwcHgpIGFuZCAob3JpZW50YXRpb246cG9ydHJhaXQpe1xuICAgIC5ib2FyZCA+IGRpdjpsYXN0LW9mLXR5cGV7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICBcbn1cbjwvc3R5bGU+XG4iLCI8dGVtcGxhdGU+XG48ZGl2PlxuICA8ZGl2IGNsYXNzPVwibGFuZHNjYXBlXCI+XG4gICAgPGRpdj48L2Rpdj5cbiAgICA8ZGl2PjwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInRpdHJlXCI+XG4gICAgPGgxPjxzcGFuPkxlczwvc3Bhbj48YnIvPnZhZ2Fib25kczwvaDE+XG4gICAgPHNwYW4+R3JhdHVpdCAtIEpEUiBkaWUgYW5kIHJldHJ5IGTigJlleHBsb3JhdGlvbiA8L3NwYW4+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwibWFpbnNjcmVlblwiPlxuICAgIDxzZWN0aW9uIGNsYXNzPVwiYWZmaWNoZVwiPlxuICAgICAgPGgyPkEgTCdhZmZpY2hlPC9oMj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPGEgdi1mb3I9XCJpZCBpbiBbMCwxLDJdXCIgOmtleT1cImlkXCIgOmhyZWY9XCInL2luZGV4LnBocC9hcnRpY2xlLycrYXJ0aWNsZXNbaWRdLmlkXCI+XG4gICAgICAgICAgICA8YXJ0aWNsZT5cbiAgICAgICAgICAgICAgPGRpdiA6c3R5bGU9XCJgYmFja2dyb3VuZC1pbWFnZTogdXJsKCR7YXJ0aWNsZXNbaWRdLmltZ0FmZmljaGV9KTtgXCI+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgIDxkaXY+e3thcnRpY2xlc1tpZF0uY2F0ZWdvcmllfX08L2Rpdj5cbiAgICAgICAgICAgICAgICA8aDM+e3thcnRpY2xlc1tpZF0udGl0bGV9fTwvaDM+XG4gICAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgICB7e2FydGljbGVzW2lkXS5kZXNjcmlwdGlvbn19XG4gICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvYXJ0aWNsZT5cbiAgICAgICAgICA8L2E+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9zZWN0aW9uPlxuXG4gICAgPHNlY3Rpb24gY2xhc3M9XCJ3ZWxjb21lXCI+XG4gICAgICA8YXJ0aWNsZT5cbiAgICAgICAgPGgzPkJpZW52ZW51ZTwvaDM+XG4gICAgICAgIDxwPkJpZW52ZW51ZSBzdXIgbGUgc2l0ZSBjb21wYWdub24gZGUgPGVtPlZhZ2Fib25kczwvZW0+LCBsZSBqZXUgZGUgcsO0bGUuPC9wPlxuICAgICAgICA8cD5DZSBzaXRlIGVzdCBkZXN0aW7DqSBhdXggcGVyc29ubmVzIHF1aSBzb3VoYWl0YW50IGZhaXJlIHVuZSBwYXJ0aWUgZGUgPGVtPlZhZ2Fib25kczwvZW0+LjwvcD5cbiAgICAgIDwvYXJ0aWNsZT5cbiAgICAgIDxhcnRpY2xlPlxuICAgICAgICA8aDM+Vm9pY2kgY2UgcXVlIHZvdXMgcG91dmV6IHRyb3V2ZXIgc3VyIGNlIHNpdGUgOjwvaDM+XG4gICAgICAgIDxwPkwnb25nbGV0IFwiQ2FydGUgZHUgbW9uZGVcIjwvcD5cbiAgICAgICAgPHA+TCdvbmdsZXQgXCJEb2N1bWVudGF0aW9uXCIgZGlmZsOpcmVudGVzIGluZm9ybWF0aW9ucyBzdXIgbCd1bml2ZXJzIGR1IGpldS48L3A+XG4gICAgICAgIDxwPklsIHkgYSBhdXNzaSB1bmUgYmFucXVlIGRlIG5vbXMgZGFucyBsJ29uZ2xldCBjb3JyZXNwb25kYW50LiBWb3VzIHBvdXJyZXogYWluc2kgZmFjaWxlbWVudCBpbXByb3Zpc2VyIGRlcyBwZXJzb25uYWdlcyBldCBwcm9wb3NlciDDoCB2b3Mgam91ZXVycyBsZXMgbW9pbnMgaW5zcGlyw6lzIGRlcyBub21zIGNvaMOpcmVudHMgZXQgcXVpIGxldXIgcGxhaXQ8L3A+XG4gICAgICA8L2FydGljbGU+XG4gICAgPC9zZWN0aW9uPlxuXG4gICAgPHNlY3Rpb24gY2xhc3M9XCJuZXdzXCI+XG4gICAgICA8aDI+RGVybmnDqHJlcyBhY3R1czwvaDI+XG4gICAgICA8YSB2LWZvcj1cImFydGljbGUgaW4gYXJ0aWNsZXNcIiA6a2V5PVwiYXJ0aWNsZS5pZFwiIDpocmVmPVwiJy9pbmRleC5waHAvYXJ0aWNsZS8nK2FydGljbGUuaWRcIiA+XG4gICAgICAgIDxhcnRpY2xlPlxuICAgICAgICAgIDxpbWcgOnNyYz1cImFydGljbGUuaW1nXCIvPlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8ZGl2Pnt7YXJ0aWNsZS5jYXRlZ29yaWV9fTwvZGl2PlxuICAgICAgICAgICAgPGgzPnt7YXJ0aWNsZS50aXRsZX19PC9oMz5cbiAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICB7e2FydGljbGUuZGVzY3JpcHRpb259fVxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgPHRpbWU+e3t0b0RhdGUoYXJ0aWNsZS5kYXRlLnRpbWVzdGFtcCl9fTwvdGltZT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9hcnRpY2xlPlxuICAgICAgPC9hPlxuICAgIDwvc2VjdGlvbj5cblxuICA8L2Rpdj5cbjwvZGl2PlxuPC90ZW1wbGF0ZT5cbjxzY3JpcHQ+XG5pbXBvcnQgdGltZVN0YW1wQ29udmVydGVyIGZyb20gXCIuLi8uLi9vdXRpbHMvdGltZVN0YW1wVG9EYXRlXCI7XG5leHBvcnQgZGVmYXVsdCB7XG4gIC8vTm9tIGRlIGxhIHZ1ZVxuICBuYW1lOiBcImhvbWVcIixcbiAgLy9vbiBwcmVjaXNlIGxlcyB2dWVzIHF1aSB2b250IMOqdHJlIGNvbW11bmlxdcOpZSDDoCBsYSBwYWdlXG4gIGNvbXBvbmVudHM6IHtcbiAgfSxcbiAgcHJvcHM6IHtcbiAgICBhcnRpY2xlczp7fSxcbiAgfSxcblxuICBkYXRhKCkge1xuICAgIHJldHVybiB7fTtcbiAgfSxcbiAgcHJvdmlkZSgpIHtcbiAgICByZXR1cm4ge307XG4gIH0sXG5cbiAgbWV0aG9kczoge1xuICAgIHRvRGF0ZShUaW1lc3RhbXApXG4gICAge1xuICAgICAgcmV0dXJuIHRpbWVTdGFtcENvbnZlcnRlci50aW1lc3RhbXBUb0RhdGUoVGltZXN0YW1wKTtcbiAgICB9XG4gIH0sXG5cbiAgbW91bnRlZCgpIHt9LFxuICB3YXRjaDoge30sXG59O1xuPC9zY3JpcHQ+XG5cbjxzdHlsZSBzY29wZWQ+XG4ubWFpbnNjcmVlbiB7XG4gICAgbWFyZ2luOiAwIDE1JTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICB6LWluZGV4OiAxO1xuICAgIHBhZGRpbmc6IDIlO1xuICAgIHBhZGRpbmctdG9wOiAwcHg7XG4gICAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAwcHg7XG4gICAgYm9yZGVyLWNvbG9yOiAjY2NjM2E3O1xuICAgIHBhZGRpbmctYm90dG9tOiAzMHB4O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XG59XG5cbmFydGljbGUge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICMxZTI4MmQ7XG4gICAgbWFyZ2luOiAzMHB4IDEwcHg7XG4gICAgcGFkZGluZzogMTBweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDEwYTEzO1xuXG59XG5cbi5oMiwgaDIge1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4yNWVtO1xufVxuXG4ubGFuZHNjYXBle1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogOTV2aDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgbWFyZ2luLXRvcDogLTMwcHg7XG59XG5cbi5sYW5kc2NhcGUgZGl2OmZpcnN0LW9mLXR5cGV7XG4gICAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwKTtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMGRlZywgcmdiYSgwLDAsMCwxKSAwJSwgcmdiYSgwLDAsMCwwLjUpIDMwJSwgcmdiYSgyNTUsMjU1LDI1NSwwKSAxMDAlKTtcbiAgICBoZWlnaHQ6IDExMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IDE7XG59XG5cbi5sYW5kc2NhcGUgZGl2ICsgZGl2IHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vd3d3LnZhZ2Fib25kcy1qZHIuZnIvYXNzZXRzL2ltYWdlcy9pbGx1c3RyYXRpb24vY292ZXIvaG9tZTR1cC5qcGcnKTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiAxMTAlO1xuICAgIHotaW5kZXg6IDA7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uLXg6IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uLXk6IDgwJTtcbn1cblxuLnRpdHJle1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHotaW5kZXg6IDE7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi10b3A6IGNhbGMoLTMwdmggKyAzMHB4KTtcbiAgICBtYXJnaW4tYm90dG9tOiAyLjV2aDtcbn1cblxuLnRpdHJlIGgxIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IGF1dG87XG4gICAgd2lkdGg6IGZpdC1jb250ZW50O1xuICAgIGxldHRlci1zcGFjaW5nOiA1cHg7XG4gICAgZm9udC1mYW1pbHk6ICdNZWRpZXZhbFNoYXJwJywgY3Vyc2l2ZTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtc2l6ZTogNXJlbTtcbiAgICBsaW5lLWhlaWdodDogLjZlbTtcbn1cblxuLnRpdHJlIGgxIHNwYW57XG4gICAgZm9udC1zaXplOiAxcmVtO1xufVxuLnRpdHJlIGgxICsgc3BhbiB7XG4gICAgZm9udC1zaXplOiAxLjU1cmVtO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogYXV0bztcbiAgICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gICAgbWFyZ2luLXRvcDogMTN2aDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG5oM3tcbiAgdGV4dC1hbGlnbjpjZW50ZXI7XG59XG5cbi53ZWxjb21le1xuICBkaXNwbGF5OmdyaWQ7XG59XG4uYWZmaWNoZSB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDUwcHggMjUwcHg7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAganVzdGlmeS1pdGVtczogc3RyZXRjaDtcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgIG1hcmdpbjogMHB4IC00MHB4IDE1cHg7XG4gICAgcGFkZGluZzogMzVweCA0MHB4IDA7XG4gICAgYm9yZGVyOiAwcHggc29saWQgIzFlMjgyZDtcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7XG4gICAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwKTtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMGRlZywgcmdiYSg3LDEwLDExLDEpIDAlLCByZ2JhKDExLDIwLDI3LDApIDEwMCUpO1xufVxuLmFmZmljaGUgPiBkaXYge1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbn1cbi5hZmZpY2hlID4gZGl2ID4gZGl2XG57XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsMWZyKTtcbiAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAxZnI7XG4gIG92ZXJmbG93LXg6IGF1dG87XG59XG5cbi5hZmZpY2hlIGFydGljbGUge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgM2ZyO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDMwcHgpO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMSwxMCwxOSwxMDApO1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMnM7XG4gICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2U7XG59XG5cbi5hZmZpY2hlIGFydGljbGU6aG92ZXIge1xuICAgIGJvcmRlcjogc29saWQgMXB4ICNjY2MzYTc7XG4gICAgYmFja2dyb3VuZDogcmdiYSgxLDEwLDE5LDEwMCk7XG4gICAgLypiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoNmRlZywgcmdiYSg1Myw1Nyw1NywxKSAwJSwgcmdiYSgyNiwzMywzOCwxKSA1MCUsIHJnYmEoMSwxMCwxOSwxKSAxMDAlKTsqL1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMnM7XG59XG5cbi5hZmZpY2hlIGFydGljbGUgaDMge1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjAzZW07XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi5hZmZpY2hlIGFydGljbGUgPiBkaXY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgZ3JpZC1jb2x1bW4tc3RhcnQ6IDE7XG4gICAgZ3JpZC1jb2x1bW4tZW5kOiAyO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIG1pbi13aWR0aDogMTUwcHg7XG59XG5cbi5hZmZpY2hlIGFydGljbGUgPiBkaXY6bGFzdC1vZi10eXBlIHtcbiAgICBwYWRkaW5nOiAxMHB4O1xuICAgIG1pbi13aWR0aDogMjIwcHg7XG4gICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICAgIGhlaWdodDogMjAwcHg7XG59XG5cbi5hZmZpY2hlIGFydGljbGUgPiBkaXY6bGFzdC1vZi10eXBlID4gZGl2IHtcbiAgICBjb2xvcjogYnJvd247XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5uZXdze1xuICBkaXNwbGF5OmdyaWQ7XG59XG5cbi5uZXdzIGFydGljbGUge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMmZyO1xuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBtYXJnaW46IDBweDtcbiAgICBwYWRkaW5nOiAyMHB4IDEwcHg7XG4gICAgY29sb3I6ICNhNGEwOTU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgcGFkZGluZy1yaWdodDogMzBweDtcbn1cblxuLm5ld3MgYTpob3ZlciBhcnRpY2xlIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDMwcHg7XG4gICAgcGFkZGluZy1yaWdodDogMHB4O1xuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4O1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMnM7XG4gICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2U7XG4gICAgYm9yZGVyLWNvbG9yOiNjY2MzYTc7XG59XG5cbi5uZXdzIGFydGljbGUgPiBkaXYge1xuICAgIG1hcmdpbi10b3A6IGF1dG87XG4gICAgbWFyZ2luLWJvdHRvbTogYXV0bztcbiAgICBwYWRkaW5nLXRvcDogMTBweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG59XG5cbi5uZXdzIGFydGljbGUgPiBkaXYgPiBkaXYge1xuICBtYXJnaW4tYm90dG9tOiAwLjhlbTtcbiAgY29sb3I6IGJyb3duO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLm5ld3MgYXJ0aWNsZSA+IGltZyB7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIG1heC13aWR0aDogMjYuMjVyZW07XG5cbn1cblxuLm5ld3MgYXJ0aWNsZSBoMyB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBjb2xvcjogI2YwZTZkMjtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg1MHB4KXtcbiAgICAudGl0cmV7XG4gICAgICBtYXJnaW4tdG9wOiAtMzB2aDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDIuNXZoO1xuICAgIH1cblxuICAgIC50aXRyZSBoMSB7XG4gICAgICBsZXR0ZXItc3BhY2luZzogLTJweDtcbiAgICAgIGZvbnQtc2l6ZTogMy41cmVtO1xuICAgICAgbGluZS1oZWlnaHQ6IC42ZW07XG4gICAgfVxuXG4gICAgLnRpdHJlIGgxIHNwYW57XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICB9XG5cbiAgICAudGl0cmUgaDEgKyBzcGFuIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjA1cmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiA2dmg7XG4gICAgICAgIHRleHQtYWxpZ246Y2VudGVyO1xuICAgIH1cbiAgICAubWFpbnNjcmVlbiB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwcHg7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGxlZnQ6IDAlO1xuICAgICAgICByaWdodDogMCU7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgIC5hZmZpY2hlIGFydGljbGUgaDMge1xuICAgIG1hcmdpbi10b3A6IDAuNDM3NXJlbTtcbiAgICBmb250LXNpemU6IDAuODEyNXJlbTtcbiAgICB9XG5cbiAgICAuYWZmaWNoZSBhcnRpY2xlIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDJmcjtcbiAgICB9XG5cbiAgICAubmV3cyBhcnRpY2xlIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgbWF4LXdpZHRoOiA0MDBweDtcbiAgICAgIG1hcmdpbjogMTVweCBhdXRvO1xuICAgIH1cblxuICAgIC5uZXdzIGE6aG92ZXIgYXJ0aWNsZSB7XG4gICAgICBwYWRkaW5nOiAyMHB4IDEwcHg7XG4gICAgfVxuICAgIC5uZXdzIGFydGljbGUgPiBkaXYge1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIH1cbiAgICAubmV3cyBhcnRpY2xlID4gaW1nIHtcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB9XG59XG48L3N0eWxlPlxuIiwiPHRlbXBsYXRlPlxuPGRpdiBjbGFzcz1cIm1haW5zY3JlZW5cIj5cbiAgICA8YXJ0aWNsZT5cbiAgICA8dGFibGU+XG4gICAgICA8dGJvZHk+XG4gICAgICAgIDx0ciB2LWZvcj1cImxldHRlciBpbiBhbHBoYWJldFwiIDprZXk9XCJsZXR0ZXJcIj5cbiAgICAgICAgICA8dGg+e3tsZXR0ZXJ9fTwvdGg+XG4gICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICA8ZGl2IHYtaWY9XCJPYmplY3Qua2V5cyhhbHBoYXMuaG9tbWUpLmluY2x1ZGVzKGxldHRlcilcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiB2LWZvcj1cIihuYW1lLGluZGV4KSBpbiBhbHBoYXMuaG9tbWVbbGV0dGVyXVwiIDprZXk9XCJpbmRleFwiPlxuICAgICAgICAgICAgICAgICAge3tuYW1lfX0sIFxuICAgICAgICAgICAgICAgIDwvc3Bhbj4gICAgICAgIFxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiB2LWVsc2U+XG4gICAgICAgICAgICAgIC1cbiAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8L3RkPlxuICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgICAgPGRpdiB2LWlmPVwiT2JqZWN0LmtleXMoYWxwaGFzLmZlbW1lKS5pbmNsdWRlcyhsZXR0ZXIpXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gdi1mb3I9XCIobmFtZSxpbmRleCkgaW4gYWxwaGFzLmZlbW1lW2xldHRlcl1cIiA6a2V5PVwiaW5kZXhcIj5cbiAgICAgICAgICAgICAgICAgIHt7bmFtZX19LCBcbiAgICAgICAgICAgICAgICA8L3NwYW4+ICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgdi1lbHNlPlxuICAgICAgICAgICAgICAtXG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICA8L3Rib2R5PlxuICAgIDwvdGFibGU+XG4gICAgPC9hcnRpY2xlPlxuPC9kaXY+XG48L3RlbXBsYXRlPlxuPHNjcmlwdD5cbmltcG9ydCBBbHBoYWJldCBmcm9tIFwiLi4vLi4vb3V0aWxzL2FscGhhYmV0XCI7XG5leHBvcnQgZGVmYXVsdCB7XG4gIC8vTm9tIGRlIGxhIHZ1ZVxuICBuYW1lOiBcIm5hbWVzXCIsXG4gIC8vb24gcHJlY2lzZSBsZXMgdnVlcyBxdWkgdm9udCDDqnRyZSBjb21tdW5pcXXDqWUgw6AgbGEgcGFnZVxuICBwcm9wczoge1xuICAgIG5vbXM6e30sXG4gIH0sXG4gIGRhdGEoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFscGhhYmV0OltdLFxuXG4gICAgfTtcbiAgfSxcbiAgY29tcHV0ZWQ6e1xuICAgIGFscGhhczpmdW5jdGlvbigpXG4gICAge1xuICAgICAgbGV0IG5ld0RhdGEgPSB7XG4gICAgICAgICdob21tZSc6e30sXG4gICAgICAgICdmZW1tZSc6e30sXG4gICAgICB9O1xuXG4gICAgICAvL3RyaSBkZXMgaG9tbWVzXG4gICAgICBuZXdEYXRhLmhvbW1lID0gQWxwaGFiZXQuZ3JvdXBCeUZpcnN0TGV0dGVyKHRoaXMubm9tcy5ob21tZSk7XG4gICAgICAvL3RyaSBkZXMgZmVtbWVzXG4gICAgICBuZXdEYXRhLmZlbW1lID0gQWxwaGFiZXQuZ3JvdXBCeUZpcnN0TGV0dGVyKHRoaXMubm9tcy5mZW1tZSk7XG5cbiAgICAgIHJldHVybiBuZXdEYXRhO1xuICAgIH1cbiAgfSxcbiAgbW91bnRlZCgpXG4gIHtcbiAgICBjb25zdCBhbHBoYSA9IEFycmF5LmZyb20oQXJyYXkoMjYpKS5tYXAoKGUsIGkpID0+IGkgKyA2NSk7XG4gICAgdGhpcy5hbHBoYWJldCA9IGFscGhhLm1hcCgoeCkgPT4gU3RyaW5nLmZyb21DaGFyQ29kZSh4KSk7XG4gICAgY29uc29sZS5sb2codGhpcy5hbHBoYWJldCk7XG4gIH1cbn07XG48L3NjcmlwdD5cblxuPHN0eWxlIHNjb3BlZD5cbi5tYWluc2NyZWVuIHtcbiAgICBtYXJnaW46IDAgMTUlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMTBhMTM7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgei1pbmRleDogMDtcbiAgICBwYWRkaW5nOiAyJTtcbiAgICBwYWRkaW5nLXRvcDogMHB4O1xuICAgIGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogMHB4O1xuICAgIGJvcmRlci1jb2xvcjogI2NjYzNhNztcbiAgICBwYWRkaW5nLWJvdHRvbTogMzBweDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbmFydGljbGUge1xuICAgIHBhZGRpbmctbGVmdDogNXB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDVweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbmgze1xuICB0ZXh0LWFsaWduOmNlbnRlcjtcbn1cblxuLm1haW5zY3JlZW4+YXJ0aWNsZT50YWJsZSB7XG4gICAgbWFyZ2luLXRvcDogNTBQWDtcbn1cblxudGFibGUge1xuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG59XG5cbnRib2R5IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1yb3ctZ3JvdXA7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBib3JkZXItY29sb3I6IGluaGVyaXQ7XG59XG5cbnRoIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBlNmQyO1xuICAgIGNvbG9yOiAjMDEwYTEzO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbn1cblxudHIge1xuICAgIGRpc3BsYXk6IHRhYmxlLXJvdztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogaW5oZXJpdDtcbiAgICBib3JkZXItY29sb3I6IGluaGVyaXQ7XG59XG5cbnRkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICMxZTI4MmQ7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAvKiB0ZXh0LWFsaWduOiBqdXN0aWZ5OyAqL1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4NTBweCl7XG4gICAgLm1haW5zY3JlZW4ge1xuICAgICAgICBwYWRkaW5nLXRvcDogNTBweDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbGVmdDogMCU7XG4gICAgICAgIHJpZ2h0OiAwJTtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICB9XG59XG48L3N0eWxlPlxuIiwiPHRlbXBsYXRlPlxuICA8ZGl2IDpjbGFzcz1cIigoc2VsZWN0ZWRIZXgpID8gJ3NpZGUtYmFyLXNob3cnIDogJ3NpZGUtYmFyLXNob3cgbWFzcXVlZScpKycgJysoKGdtTW9kZSkgPyAnJyA6ICdwbGF5ZXItbW9kZScpXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJiYWNrZ3JvdW5kSGV4XCIgOnN0eWxlPVwiJ2JhY2tncm91bmQtaW1hZ2U6IHVybCgnK2Rpc3BsYXkuaW1nKycpJ1wiPlxuICAgICAgPHNwYW4+PC9zcGFuPlxuICAgICAgPHNwYW4+PC9zcGFuPlxuICAgIDwvc3Bhbj5cbiAgICA8c3BhbiBjbGFzcz1cInRvZ2dsZUJ0blwiPjxidXR0b24gQGNsaWNrPVwidG9nZ2xlT2ZmKClcIj5YPC9idXR0b24+PC9zcGFuPlxuICAgIDxkaXYgY2xhc3M9XCJsb2NhdGlvbi1kZXNjXCI+XG4gICAgICA8aDMgY2xhc3M9XCJ0b3BUaXRsZVwiPnt7ZGlzcGxheS5ub219fTwvaDM+XG4gICAgICA8aDQgY2xhc3M9XCJzdWJUaXRsZVwiIHYtaWY9XCJmYWN0aW9uXCI+e3tmYWN0aW9ufX08L2g0PlxuICAgICAgPHA+PGVtIHYtaHRtbD1cImRpc3BsYXkuZGVzY3JpcHRpb25cIj48L2VtPjwvcD5cbiAgICAgIDxici8+XG4gICAgICA8cCB2LWh0bWw9XCJUZXh0UmVwbGFjZXIucmVwbGFjZU5QQyhUZXh0UmVwbGFjZXIucmVwbGFjZU1vbnN0ZXIoVGV4dFJlcGxhY2VyLnJlcGxhY2VLZXlXb3JkcyhUZXh0UmVwbGFjZXIucmVwbGFjZUl0ZW0oZGlzcGxheS5kZXNjcmlwdGlvbkdNKSksdHJ1ZSksdHJ1ZSlcIiB2LWlmPVwiZ21Nb2RlICYmIGRpc3BsYXkuZGVzY3JpcHRpb25HTVwiIGNsYXNzPVwiZ20tZGVzY1wiPjwvcD5cbiAgICAgIDxwIHYtZWxzZS1pZj1cImdtTW9kZVwiPkNldHRlIFpvbmUgbmUgY29udGllbnQgcGFzIGRlIHByw6ljaXNpb25zIHBvdXIgbGUgbWFpdHJlIGR1IGpldS48L3A+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIkdNLXBhcnRcIiB2LWlmPVwiZ21Nb2RlXCI+XG5cbiAgICAgIDxoND5TY8OpbmFyaW9zIGxvY2F1eDwvaDQ+XG5cbiAgICAgIDxkaXYgdi1pZj1cIiEoZGlzcGxheS5sb2NhbC5sZW5ndGggPiAwKVwiPlxuICAgICAgICA8cD5JbCBzZW1ibGVyYWl0IHF1ZSBjZXR0ZSB6b25lIG5lIHBvc3PDqGRlIHBhcyBkZSBzY8OpbmFyaW8gbG9jYWwuPC9wPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgdi1mb3I9XCJzY2VuYXJpbyBpbiBkaXNwbGF5LmxvY2FsXCIgOmtleT1cInNjZW5hcmlvLmlkXCJcbiAgICAgIGNsYXNzPVwicXVlc3RcIiA6c3R5bGU9XCInYmFja2dyb3VuZC1pbWFnZTogdXJsKCcrc2NlbmFyaW8uaW1nKycpJ1wiXG4gICAgICBAY2xpY2s9XCJvcGVuRXZlbnQoc2NlbmFyaW8pXCJcbiAgICAgIGRhdGEtdG9nZ2xlPVwibW9kYWxcIlxuICAgICAgZGF0YS10YXJnZXQ9XCIjbW9kYWxNYXBFdmVudFwiXG4gICAgICA6aWQ9XCJgZXZlbnQke3NjZW5hcmlvLmlkfWBcIlxuICAgICAgPlxuICAgICAgICA8aDM+e3tzY2VuYXJpby5ub219fTwvaDM+XG4gICAgICAgIDxwIHYtaHRtbD1cInNjZW5hcmlvLnNob3J0XCI+PC9wPlxuICAgICAgPC9kaXY+XG4gICAgICA8IS0tIEJvdXRvbiBwb3VyIGNyw6llciB1biBub3V2ZWwgw6l2w6huZW1lbnQgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwicXVlc3QgY3JlYXRlLWV2ZW50XCJcbiAgICAgIEBjbGljaz1cIm9wZW5FdmVudCgpXCJcbiAgICAgIGRhdGEtdG9nZ2xlPVwibW9kYWxcIlxuICAgICAgZGF0YS10YXJnZXQ9XCIjbW9kYWxNYXBFdmVudFwiXG4gICAgICB2LWlmPVwidXNlcl9pbmZvcyAmJiB1c2VyX2luZm9zLmlkXCJcbiAgICAgID5cbiAgICAgICAgPGZvbnQtYXdlc29tZS1pY29uIDppY29uPVwiWydmYXMnLCAncGx1cyddXCIgdGl0bGU9XCJDcsOpZXIgdW4gbm91dmVsIGV2w6huZW1lbnRcIi8+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGg0PlNjw6luYXJpb3MgZ8OpbsOpcmlxdWVzPC9oND5cblxuICAgICAgPGRpdiB2LWZvcj1cInNjZW5hcmlvIGluIGdlbmVyaWNFdmVudFwiIDprZXk9XCJzY2VuYXJpby5pZFwiXG4gICAgICBjbGFzcz1cInF1ZXN0XCIgOnN0eWxlPVwiJ2JhY2tncm91bmQtaW1hZ2U6IHVybCgnK3NjZW5hcmlvLmltZysnKSdcIlxuICAgICAgQGNsaWNrPVwib3BlbkV2ZW50KHNjZW5hcmlvKVwiXG4gICAgICBkYXRhLXRvZ2dsZT1cIm1vZGFsXCJcbiAgICAgIGRhdGEtdGFyZ2V0PVwiI21vZGFsTWFwRXZlbnRcIlxuICAgICAgOmlkPVwiYGV2ZW50JHtzY2VuYXJpby5pZH1gXCJcbiAgICAgID5cbiAgICAgICAgPGgzPnt7c2NlbmFyaW8ubm9tfX08L2gzPlxuICAgICAgICA8cCB2LWh0bWw9XCJzY2VuYXJpby5zaG9ydFwiPjwvcD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGJ1dHRvbiB2LWlmPVwiIWFpRXZlbnQuaWQgJiYgQnRuQWlcIiBjbGFzcz1cIm9wZW4tYWlcIiBAY2xpY2s9XCJjYWxsT3BlbkFpKClcIj5Hw6luw6lyZXIgdW4gw6l2w6huZW1lbnQgc3VwcGzDqW1lbnRhaXJlPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG48L3RlbXBsYXRlPlxuPHNjcmlwdD5cbmltcG9ydCBhcGlPcGVuQUkgZnJvbSAnLi4vLi4vYXBpL2FwaU9wZW5BSS5qcyc7XG5pbXBvcnQgeyBsaWJyYXJ5IH0gZnJvbSBcIkBmb3J0YXdlc29tZS9mb250YXdlc29tZS1zdmctY29yZVwiO1xuaW1wb3J0IHsgZmFQbHVzIH0gZnJvbSBcIkBmb3J0YXdlc29tZS9mcmVlLXNvbGlkLXN2Zy1pY29uc1wiO1xubGlicmFyeS5hZGQoZmFQbHVzKTtcblxuZXhwb3J0IGRlZmF1bHQge1xuICAvL05vbSBkZSBsYSB2dWVcbiAgbmFtZTogXCJzaWRlLWJhclwiLFxuICBpbmplY3Q6WydnZXRDb250ZW50JywnZ2V0R2VuZXJpY0V2ZW50JywnZ2V0VGVycml0b3J5JywnZ2V0T3JpZ2luJywndGV4dFJlcGxhY2VyJywnZ2V0VXNlckluZm9zJ10sXG4gIC8vb24gcHJlY2lzZSBsZXMgdnVlcyBxdWkgdm9udCDDqnRyZSBjb21tdW5pcXXDqWUgw6AgbGEgcGFnZVxuICBjb21wb25lbnRzOiB7XG4gIH0sXG4gIHByb3BzOiB7XG4gICAgc2VsZWN0ZWRIZXg6e30sXG4gICAgZ21Nb2RlOnt9LFxuICB9LFxuXG4gIGRhdGEoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIERlZmF1bHQ6e1xuICAgICAgICBub206J1pvbmUgSW5leHBsb3LDqWUnLFxuICAgICAgICBkZXNjcmlwdGlvbjonQ2V0dGUgcGFydGllIGR1IG1vbmRlIG5cXCdlc3QgcGFzIGVuY29yZSBkw6ljcml0ZS4gTlxcJ2jDqXNpdGV6IHBhcyDDoCBwcm9wb3NlciBkZXMgY2hvc2VzLicsXG4gICAgICAgIGRlc2NyaXB0aW9uR00gOiAnJyxcbiAgICAgICAgbG9jYWw6W10sXG4gICAgICAgIGltZzonaHR0cHM6Ly93d3cudmFnYWJvbmRzLWpkci5mci9hc3NldHMvaW1hZ2VzL2lsbHVzdHJhdGlvbi9oZXgvUGxhaW5zMS5qcGcnXG4gICAgICB9LFxuICAgICAgYWlFdmVudDp7XG4gICAgICAgIGF1dGV1cjp7XG4gICAgICAgICAgaWQ6MSxcbiAgICAgICAgICBpZGVudGlmaWFudDpcIk9wZW5BSVwiLFxuICAgICAgICB9LFxuICAgICAgICBkZXNjOlwiRW4gYXR0ZW50ZSBkZSBkb25uw6llcy4uLlwiLFxuICAgICAgICBpZDpmYWxzZSxcbiAgICAgICAgaW1nOlwiaHR0cHM6Ly92YWdhYm9uZHMtamRyLmdpdGh1Yi5pby9pbWFnZXMvZXZlbnRzL3poaWh1aS1zdS0yLmpwZ1wiLFxuICAgICAgICBub206XCI/XCIsXG4gICAgICAgIHNob3J0OlwiLi4uXCIsXG4gICAgICB9LFxuICAgICAgQnRuQWk6ZmFsc2UsXG4gICAgfTtcbiAgfSxcbiAgcHJvdmlkZSgpIHtcbiAgICByZXR1cm4ge307XG4gIH0sXG5cbiAgY29tcHV0ZWQ6IHtcbiAgICBkaXNwbGF5KCl7XG4gICAgICBsZXQgZGlzcGxheSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5EZWZhdWx0KSk7XG5cbiAgICAgIGlmKCF0aGlzLnNlbGVjdGVkSGV4IHx8ICF0aGlzLmNvbnRlbnQgfHwgIXRoaXMuY29udGVudFt0aGlzLnNlbGVjdGVkSGV4XSkgcmV0dXJuIGRpc3BsYXk7XG5cbiAgICAgIGxldCBjb250ZW50U2NvcGVkID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmNvbnRlbnRbdGhpcy5zZWxlY3RlZEhleF0pKTtcbiAgICAgIGlmKGNvbnRlbnRTY29wZWQubm9tKSBkaXNwbGF5Lm5vbSA9IGNvbnRlbnRTY29wZWQubm9tO1xuICAgICAgaWYoY29udGVudFNjb3BlZC5kZXNjcmlwdGlvbikgZGlzcGxheS5kZXNjcmlwdGlvbiA9IGNvbnRlbnRTY29wZWQuZGVzY3JpcHRpb247XG4gICAgICBpZihjb250ZW50U2NvcGVkLmRlc2NyaXB0aW9uR00pIGRpc3BsYXkuZGVzY3JpcHRpb25HTSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoY29udGVudFNjb3BlZC5kZXNjcmlwdGlvbkdNKSk7XG4gICAgICBpZihjb250ZW50U2NvcGVkLmxvY2FsKSBkaXNwbGF5LmxvY2FsID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShjb250ZW50U2NvcGVkLmxvY2FsKSk7XG4gICAgICBpZihjb250ZW50U2NvcGVkLmltZykgZGlzcGxheS5pbWcgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGNvbnRlbnRTY29wZWQuaW1nKSk7XG5cbiAgICAgIHJldHVybiBkaXNwbGF5O1xuICAgIH0sXG4gICAgY29udGVudCgpe1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0Q29udGVudCgpO1xuICAgIH0sXG4gICAgZ2VuZXJpY0V2ZW50KCl7XG4gICAgICBsZXQgZ2VuID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmdldEdlbmVyaWNFdmVudCgpKSk7XG4gICAgICBpZih0aGlzLmFpRXZlbnQuaWQgIT09IGZhbHNlKXtcbiAgICAgICAgZ2VuLnB1c2goSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmFpRXZlbnQpKSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZ2VuO1xuICAgIH0sXG4gICAgQUlvcHRpb25zKCl7XG4gICAgICBsZXQgb3B0aW9ucyA9IHtcbiAgICAgICAgICBjaGFyYWN0ZXJzOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIG5vbTonbWljaGVsLCBsZSBzYW11cmFpJ1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBub206J1Rla2tlbiwgbGUgZ2FyZGUtY8O0dGVzJ1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBub206J1l2ZXMsIGwgXFwnw6lydWRpdCdcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIGxpZXU6SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmRpc3BsYXkpKSxcbiAgICAgIH07XG4gICAgICByZXR1cm4gb3B0aW9ucztcbiAgICB9LFxuICAgIGZhY3Rpb24oKXtcbiAgICAgIGxldCBjb250ZW50ID0gdGhpcy5nZXRUZXJyaXRvcnkoKTtcbiAgICAgIGxldCBjZWxsTmFtZSA9IHRoaXMuc2VsZWN0ZWRIZXg7XG4gICAgICBsZXQgcmV0ID0gJyc7XG4gICAgICBmb3IobGV0IGM9MDsgYyA8IE9iamVjdC5rZXlzKGNvbnRlbnQpLmxlbmd0aDsgYysrKVxuICAgICAge1xuICAgICAgICBpZihjb250ZW50W09iamVjdC5rZXlzKGNvbnRlbnQpW2NdXS5pbmNsdWRlcyhwYXJzZUludChjZWxsTmFtZSkpKSByZXQgKz0gKChyZXQgPT09ICcnKT8gKE9iamVjdC5rZXlzKGNvbnRlbnQpW2NdKSA6ICgnLCAnK09iamVjdC5rZXlzKGNvbnRlbnQpW2NdKSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmV0O1xuICAgIH0sXG4gICAgVGV4dFJlcGxhY2VyKCl7XG4gICAgICByZXR1cm4gdGhpcy50ZXh0UmVwbGFjZXIoKTtcbiAgICB9LFxuICAgIHVzZXJfaW5mb3M6IGZ1bmN0aW9uKCl7XG4gICAgICByZXR1cm4gdGhpcy5nZXRVc2VySW5mb3MoKTtcbiAgICB9LFxuICB9LFxuICBtZXRob2RzOntcbiAgICB0b2dnbGVPZmYoKXt0aGlzLiRlbWl0KCd1bnNlbGVjdEhleCcsdHJ1ZSk7fSxcbiAgICBvcGVuRXZlbnQodmFsdWUpe1xuICAgICAgaWYoIXZhbHVlKXtcbiAgICAgICAgdmFsdWUgPSB7XG4gICAgICAgICAgbm9tOiAnTm91dmVsIMOpdsOobmVtZW50JyxcbiAgICAgICAgICBkZXNjOiBgPGgzPkV4cGxpY2F0aW9uIGF1IG1hw650cmUgZHUgamV1PC9oMz5cbkTDqWNyaXZleiBicmnDqGZlbWVudCB2b3RyZSBzY8OpbmFyaW8gcG91ciBsZSBtYWl0cmUgZHUgamV1Ljxici8+XG48YnIvPlxuPGgzPkludHJvZHVjdGlvbjwvaDM+XG48ZW0gY2xhc3M9XCJyZWFkLWl0XCI+XG5Ew6ljcml2ZXogbCdpbnRyb2R1Y3Rpb24gZGUgdm90cmUgw6l2w6huZW1lbnQsIGNlIHF1ZSBsZXMgam91ZXVycyB2b2llbnQgbG9yc3F1J2lscyBhcnJpdmVudCBzdXIgbGEgc2PDqG5lLlxuPC9lbT48YnIvPlxuPGJyLz5cbjxoMz5BY3Rpb25zIHBvc3NpYmxlczwvaDM+XG5EZWNyaXZleiBkZXMgYWN0aW9ucyBwb3NzaWJsZXMgZXQgbGVzIHRlc3RzIGFzc29jacOpcy5cbiAgICAgICAgICAgICAgICBgLFxuICAgICAgICAgIGltZzogJ2h0dHBzOi8vdmFnYWJvbmRzLWpkci5naXRodWIuaW8vaW1hZ2VzL2V2ZW50cy9hcnRlbS1kZW11cmEtYmFiYS12LWxvZGtlNi5qcGcnLFxuICAgICAgICAgIHNob3J0OiAnRMOpY3JpdmV6IGxcXCdhY2Nyb2NoZSBkZSB2b3RyZSDDqXbDqG5lbWVudC4nLFxuICAgICAgICAgIGF1dGV1cjoge1xuICAgICAgICAgICAgaWQ6IHRoaXMudXNlcl9pbmZvcy5pZCxcbiAgICAgICAgICAgIGlkZW50aWZpYW50OiB0aGlzLnVzZXJfaW5mb3MuaWRlbnRpZmlhbnQsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBpZDogMCxcbiAgICAgICAgICBoZXg6IHRoaXMuc2VsZWN0ZWRIZXgsXG4gICAgICAgICAgcHVibGljOiBmYWxzZSxcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZWxzZXtcbiAgICAgICAgd2luZG93Lmhpc3RvcnkucHVzaFN0YXRlKG51bGwsIGBgLCBgJHt0aGlzLmdldE9yaWdpbn0vP3RhYj13b3JsZG1hcCZoZXg9JHt0aGlzLnNlbGVjdGVkSGV4fSZnbT10JmV2ZW50PSR7dmFsdWUuaWR9YCk7XG4gICAgICAgIHdpbmRvdy5oaXN0b3J5LnJlcGxhY2VTdGF0ZShudWxsLCBgYCwgYCR7dGhpcy5nZXRPcmlnaW59Lz90YWI9d29ybGRtYXAmaGV4PSR7dGhpcy5zZWxlY3RlZEhleH0mZ209dCZldmVudD0ke3ZhbHVlLmlkfWApO1xuICAgICAgfVxuXG4gICAgICB0aGlzLiRlbWl0KCdvcGVuRXZlbnQnLEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodmFsdWUpKSk7XG4gICAgICB9LFxuICAgIG5ld0FJU2NlbmFyaW86IGFzeW5jIGZ1bmN0aW9uKCl7XG4gICAgICAvL3N0cnVjdHVyZSBkZSBiYXNlIGRlIGwnZXZlbnRcbiAgICAgIGxldCBuZXdBaSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5haUV2ZW50KSk7XG5cbiAgICAgIC8vcmVxdWV0YWdlIGR1IGNvbnRlbnUgZXQgaW5qZWN0aW9uIGRhbnMgbCdldmVudFxuICAgICAgY29uc3QgcmVxID0gYXdhaXQgYXBpT3BlbkFJXG4gICAgICAuZ2V0U2NlbmFyaW9BaSh0aGlzLkFJb3B0aW9ucylcbiAgICAgIC50aGVuKChyZXN1bHQpPT57XG4gICAgICAgIGxldCBjb250ZW50ID0gcmVzdWx0LmNob2ljZXNbMF0ubWVzc2FnZS5jb250ZW50O1xuXG4gICAgICAgIC8vUGFyc2VyIHF1aSByw6ljdXDDqHJlIGxlcyAzIHBhcmFncmFwaGVzIGxhIHByZW1pw6hyZSB2ZXJzaW9uIHRyYWl0ZSBsZSBjYXMgb3UgbCdhaSByZXBvbmQgbGlnbmUgcGFyIGxpZ25lIHRhbmRpcyBxdWUgbGUgcmVzdGUgZXN0IHRyYWl0w6kgYXUgZ3JvdXBlIGRlIHBhcmFncmFwaGVzLlxuICAgICAgICBjb25zdCBncmFiUGFydHMgPSAoY29udGVudC5pbmNsdWRlcygnOicpKT8vXi4qXFw6XFxuPygoLnxcXG4pKileLipcXDpcXG4/KCgufFxcbikqKV4uKlxcOlxcbj8oKC58XFxuKSopL20gOiAvKC4rKVxcbj8vZ207XG4gICAgICAgIGxldCBsaW5lcyA9IGNvbnRlbnQubWF0Y2goZ3JhYlBhcnRzKTtcbiAgICAgICAgbGV0IG5ld2xpbmVzID0gW107XG4gICAgICAgIGZvcihsZXQgbD0wOyBsIDwgbGluZXMubGVuZ3RoOyBsKyspXG4gICAgICAgIHtcbiAgICAgICAgICAvL0onZWxpbWluZSBsZXMgY2FwdHVyZXMgZGUgcmVzaWR1c1xuICAgICAgICAgIGlmKGxpbmVzW2xdLmxlbmd0aCA8PSAzIHx8IGxpbmVzW2xdLmxlbmd0aCA9PSBjb250ZW50Lmxlbmd0aCkgY29udGludWU7XG5cbiAgICAgICAgICAvL2plIHN0b2NrIGxlcyBsaWduZXMgdmFsaWRlc1xuICAgICAgICAgIG5ld2xpbmVzLnB1c2gobGluZXNbbF0ucmVwbGFjZSgvXlxccyt8XFxzKyQvZywgJycpKTtcbiAgICAgICAgfVxuICAgICAgICBsaW5lcyA9IG5ld2xpbmVzO1xuICAgICAgICAvL2plIHNhdXZlZ2FyZGUgbGUgZGVybmllciBlbGVtZW50IGVuIHRhbnQgcXVlIHRpdHJlIHNhbnMgbCdham91dGVyIMOgIGxpbmVzXG4gICAgICAgIGxldCB0aXRyZSA9IGxpbmVzLnNwbGljZSgtMSlbMF07XG5cbiAgICAgICAgbmV3QWkuZGVzYyA9IGA8aDQ+SW50cm9kdWN0aW9uPC9oND4gJHtsaW5lcy5qb2luKGA8YnI+PGJyPmApfWA7XG4gICAgICAgIG5ld0FpLmlkID0gMDtcbiAgICAgICAgLy9Tb2l0IG9uIHByZW5kIGxlIGNvbnRlbnUgZW50cmUgbGVzIFwiIHNvaXQgb24gcHJlbmRzIHRvdXQgc2F1ZiBsZSAuXG4gICAgICAgIG5ld0FpLm5vbSA9ICh0aXRyZS5pbmNsdWRlcygnXCInKSk/IHRpdHJlLm1hdGNoKC9cXFwiKC4qKVwiLylbMV0gOiB0aXRyZS5zdWJzdHJpbmcoMCwgdGl0cmUubGVuZ3RoIC0gMSk7XG5cbiAgICAgICAgLy9PbiByw6ljdXDDqHJlIGxlIGRlYnV0IGRlIGwnZWxlbWVudCBwZXJ0dXJiYXRldXIgcG91ciBsYSBjb3VydGUgZGVzY3JpcHRpb24uXG4gICAgICAgIG5ld0FpLnNob3J0ID0gKGxpbmVzWzFdLmxlbmd0aCA+IDQzKSA/IGxpbmVzWzFdLnN1YnN0cmluZygwLDQyKSArJy4uLicgOiBsaW5lc1sxXTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIG5ld0FpO1xuXG4gICAgfSxcbiAgICByZXNldEFpU2NlbmFyaW8oKXtcbiAgICAgIHRoaXMuYWlFdmVudCA9IHtcbiAgICAgICAgYXV0ZXVyOntcbiAgICAgICAgICBpZDoxLFxuICAgICAgICAgIGlkZW50aWZpYW50OlwiT3BlbkFJXCIsXG4gICAgICAgIH0sXG4gICAgICAgIGRlc2M6XCJFbiBhdHRlbnRlIGRlIGRvbm7DqWVzLi4uXCIsXG4gICAgICAgIGlkOmZhbHNlLFxuICAgICAgICBpbWc6XCJodHRwczovL3ZhZ2Fib25kcy1qZHIuZ2l0aHViLmlvL2ltYWdlcy9ldmVudHMvemhpaHVpLXN1LTIuanBnXCIsXG4gICAgICAgIG5vbTpcIj9cIixcbiAgICAgICAgc2hvcnQ6XCIuLi5cIixcbiAgICAgIH07XG4gICAgfSxcbiAgICBjYWxsT3BlbkFpOiBhc3luYyBmdW5jdGlvbigpe1xuICAgICAgdGhpcy5yZXNldEFpU2NlbmFyaW8oKTtcbiAgICAgIHRoaXMuQnRuQWkgPSBmYWxzZTtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMubmV3QUlTY2VuYXJpbygpXG4gICAgICAudGhlbigobmV3QWkpPT57XG4gICAgICAgIHRoaXMuYWlFdmVudCA9IG5ld0FpO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0sXG4gICAgcm91dGVJbmZvcygpe1xuICAgICAgICAgIC8vUsOpY3Vww6lyYXRpb24gZGVzIHBhcmFtw6h0cmVzIGR1IGdldFxuICAgICAgICAgIGxldCByb3V0ZSA9IHt9O1xuICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gucmVwbGFjZSgnPycsICcnKS5zcGxpdCgnJicpLmZvckVhY2goKGVsKT0+IHJvdXRlW2VsLnNwbGl0KCc9JylbMF1dID0gZWwuc3BsaXQoJz0nKVsxXSk7XG4gICAgICAgICAgLy9hZmZlY3RhdGlvbiBzaSBiZXNvaW5cbiAgICAgICAgICBpZihyb3V0ZS5ldmVudCl7XG4gICAgICAgICAgICB0aGlzLmdlbmVyaWNFdmVudC5mb3JFYWNoKChldmVudCk9PiB7XG4gICAgICAgICAgICAgIGlmKHJvdXRlLmV2ZW50ID09IGV2ZW50LmlkKSB0aGlzLm9wZW5FdmVudChldmVudClcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cblxuICAgIH0sXG4gIH0sXG5cbiAgbW91bnRlZCgpIHt0aGlzLnJvdXRlSW5mb3MoKTt9LFxuICB3YXRjaDoge1xuICAgIHNlbGVjdGVkSGV4OiBhc3luYyBmdW5jdGlvbigpe1xuICAgICAgdGhpcy5yZXNldEFpU2NlbmFyaW8oKTtcblxuICAgICAgLy9vbiBhZmZpY2hlIHBhcyBwb3VyIGxlIG1qXG4gICAgICBpZighdGhpcy5nbU1vZGUpIHJldHVybiBudWxsO1xuXG4gICAgICAvL1LDqWN1cMOpcmF0aW9uIGRlcyBwYXJhbcOodHJlcyBkdSBnZXRcbiAgICAgIGxldCByb3V0ZSA9IHt9O1xuICAgICAgd2luZG93LmxvY2F0aW9uLnNlYXJjaC5yZXBsYWNlKCc/JywgJycpLnNwbGl0KCcmJykuZm9yRWFjaCgoZWwpPT4gcm91dGVbZWwuc3BsaXQoJz0nKVswXV0gPSBlbC5zcGxpdCgnPScpWzFdKTtcbiAgICAgIC8vYWZmZWN0YXRpb24gc2kgYmVzb2luXG4gICAgICBpZihyb3V0ZS5ldmVudCl7XG4gICAgICAgIHRoaXMuZGlzcGxheS5sb2NhbC5mb3JFYWNoKChldmVudCk9PiBjb25zb2xlLmxvZygnaWRMJyxldmVudC5pZCkpO1xuICAgICAgfVxuICAgIH0sXG4gIH0sXG59O1xuPC9zY3JpcHQ+XG5cbjxzdHlsZSBzY29wZWQ+XG4uc2lkZS1iYXItc2hvdyB7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMTBhMTM7XG4gICAgYWxpZ24tY29udGVudDogY2VudGVyO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICMxZTI4MmQ7XG4gICAgYm9yZGVyLXRvcC13aWR0aDogMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgLyogdHJhbnNpdGlvbi1kdXJhdGlvbjogMC40czsgKi9cbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4yMHM7XG4gICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gICAgei1pbmRleDogMjtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIG92ZXJmbG93LXk6YXV0bztcbiAgICBwYWRkaW5nLXRvcDoyMHB4O1xuICAgIGZpbHRlcjogZHJvcC1zaGFkb3coMCAwIDNweCByZ2JhKDAsIDAsIDAsIDAuNSkpO1xufVxuXG5cbi5zaWRlLWJhci1zaG93IGRpdiB7XG4gICAgbWFyZ2luOiA2LjZweCAyNi42cHg7XG4gICAgdGV4dC1hbGlnbjoganVzdGlmeTtcbiAgICBwYWRkaW5nOiAyJTtcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgNTAlO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBjb2xvcjogI2NkYmQ5MTtcbiAgICBmbGV4LWdyb3c6IDA7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgei1pbmRleDogMjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5kaXYubG9jYXRpb24tZGVzY3tcbiAgei1pbmRleDogMztcbiAgb3ZlcmZsb3c6IHVuc2V0O1xufVxuLmxvY2F0aW9uLWRlc2MgPiBwOmZpcnN0LW9mLXR5cGV7XG4gIG1hcmdpbi10b3A6MTQwcHg7XG59XG4uYmFja2dyb3VuZEhleHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogY2FsYygxMDAlIC0gNDBweCk7XG4gIGhlaWdodDogNDAwcHg7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImh0dHBzOi8vd3d3LnZhZ2Fib25kcy1qZHIuZnIvYXNzZXRzL2ltYWdlcy9pbGx1c3RyYXRpb24vaGV4L09jZWFuczEuanBnXCIpO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gIG1hcmdpbi10b3A6IC0yMHB4O1xuICByaWdodDogMDtcbn1cblxuLmJhY2tncm91bmRIZXggc3BhbntcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAxO1xufVxuXG4uYmFja2dyb3VuZEhleCBzcGFuOmZpcnN0LW9mLXR5cGVcbntcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKDEsMTAsMTksMSkgMCUsIHJnYmEoMSwxMCwxOSwwLjI1KSAzMCUsIHJnYmEoMSwxMCwxOSwwLjI1KSAxMDAlKTtcbn1cblxuLmJhY2tncm91bmRIZXggc3BhbjpudGgtb2YtdHlwZSgyKVxue1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMGRlZywgcmdiYSgxLDEwLDE5LDEpIDAlLCByZ2JhKDEsMTAsMTksLjUpIDQwJSwgcmdiYSgxLDEwLDE5LDAuMjUpIDUwJSwgcmdiYSgxLDEwLDE5LDAuMjUpIDEwMCUpO1xufVxuLkdNLXBhcnQgZGl2IHtcblx0bWFyZ2luLWxlZnQ6IDA7XG5cdG1hcmdpbi1yaWdodDogMDtcbn1cblxuaDN7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY29sb3I6ICNmMGU2ZDI7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07XG59XG5cbi50b3BUaXRsZXtcbiAgcGFkZGluZy1sZWZ0OiAxNXB4O1xufVxuLnN1YlRpdGxle1xuICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbiAgb3BhY2l0eTogMC43NTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbWFyZ2luLXRvcDogLTAuODVyZW07XG4gIHBhZGRpbmctbGVmdDogMTVweDtcbn1cblxuLmdtLWRlc2N7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5nbS1kZXNjID4+PiBhIHtcbiAgICBmb250LXdlaWdodDogYm9sZGVyO1xufVxuXG4ucXVlc3Qge1xuICAgIGJvcmRlcjogc29saWQgMXB4ICMwMTBhMTM7XG4gICAgbGluZS1oZWlnaHQ6IDEuODtcbiAgICBmb250LXNpemU6IDAuOGVtO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjJzO1xuICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlO1xuICAgIGNvbG9yOiAjY2RiZDkxO1xuICAgIHBhZGRpbmc6IDAgOCUgMCAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBoZWlnaHQ6IDEzMHB4O1xufVxuXG4ucXVlc3Q6Zm9jdXMtdmlzaWJsZSB7XG4gICAgb3V0bGluZTogMXB4IHdoaXRlIHNvbGlkO1xufVxuXG4ucXVlc3QgaDMge1xuICAgIGxpbmUtaGVpZ2h0OiAxMDAlO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGxpbmUtaGVpZ2h0OiAxMDAlO1xuICAgIGZvbnQtc2l6ZTogMS4xZW07XG4gICAgcGFkZGluZzogOCUgMCAwIDA7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbn1cblxuLnNpZGUtYmFyLXNob3cgLmNyZWF0ZS1ldmVudCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogNWVtO1xuICAgIGJhY2tncm91bmQ6ICMwMDAwMDA7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDBkZWcsIHJnYmEoMCwgMCwgMCwgMC4yNSkgMCUsIHJnYmEoMCwgMCwgMCwgMCkgMTAwJSk7XG4gICAgY29sb3I6ICMzNzM3Mzc7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzM3MzczNztcbn1cblxuLnF1ZXN0OmhvdmVyIHtcbiAgICBib3JkZXI6IHNvbGlkIDFweCAjY2NjM2E3O1xufVxuLnNpZGUtYmFyLXNob3cgLmNyZWF0ZS1ldmVudDpob3ZlciB7XG4gICAgY29sb3I6ICNjY2MzYTc7XG59XG5cbmg0e1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBmb250LWZhbWlseTogJ1NwYXJ0YW4nLCBzYW5zLXNlcmlmO1xuICAgIGNvbG9yOiAjZjBlNmQyO1xuICAgIHRleHQtYWxpZ246Y2VudGVyO1xuICAgIGZvbnQtd2VpZ2h0OmJvbGQ7XG4gICAgbWFyZ2luLXRvcDoxNHB4O1xuICAgIG1hcmdpbi1ib3R0b206MTRweDtcbiAgICBkaXNwbGF5OmJsb2NrO1xufVxuXG5zcGFuLnRvZ2dsZUJ0biB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDE2cHg7XG4gICAgdG9wOiAzMHB4O1xuICAgIHRyYW5zZm9ybTogcm90YXRlWig0NWRlZyk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAxMGExMztcbiAgICBoZWlnaHQ6IDMwcHg7XG4gICAgd2lkdGg6IDMwcHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmVkO1xuICAgIGZpbHRlcjogZHJvcC1zaGFkb3coMCAwIDNweCByZ2JhKDAsIDAsIDAsIDAuNSkpO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjJzO1xuICAgIHotaW5kZXg6IDEwO1xufVxuXG5zcGFuLnRvZ2dsZUJ0bjpob3ZlciB7XG5cdHRyYW5zZm9ybTogcm90YXRlWig0MDVkZWcpICFpbXBvcnRhbnQ7XG59XG5cbnNwYW4udG9nZ2xlQnRuOmhvdmVyIGJ1dHRvbiB7XG5cdHRyYW5zZm9ybTogcm90YXRlWigtNDA1ZGVnKSAhaW1wb3J0YW50O1xufVxuXG4udG9nZ2xlQnRuID4gYnV0dG9uIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogcmVkO1xuICAgIHRyYW5zZm9ybTogcm90YXRlWigtNDVkZWcpO1xuICAgIGJvcmRlcjogMHB4IHNvbGlkO1xuICAgIG1hcmdpbjogYXV0bztcbiAgICB3aWR0aDogMzBweDtcbiAgICBoZWlnaHQ6IDMwcHg7XG4gICAgY3Vyc29yOnBvaW50ZXI7XG4gICAgb3V0bGluZTpub25lO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcbn1cblxuLm9wZW4tYWkge1xuICAgIG1hcmdpbjogMTNweCAxMHB4IDEwcHggMTBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgwZGVnLCAjNjEzOTA4LCAjOTc3NDEzKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjY2RiZDkxO1xuICAgIGNvbG9yOiAjY2RiZDkxO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG4gICAgcGFkZGluZzogOHB4IDNweDtcbiAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgMCAzcHggcmdiYSgwLCAwLCAwLCAwLjUpKTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtc2l6ZTogMC44cmVtO1xufVxuXG4uZ20tZGVzYyA+Pj4gLnJlbWluZGVyID4gc3BhbjpmaXJzdC1vZi10eXBle1xuICBmb250LXdlaWdodDogYm9sZGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uZ20tZGVzYyA+Pj4gLnJlbWluZGVyID4gc3BhbjpudGgtb2YtdHlwZSgyKXtcbiAgZGlzcGxheTogbm9uZTtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbiAgYm9yZGVyOiAxcHggc29saWQgIzZjNzU3ZDtcbiAgcGFkZGluZzogMTBweCAxNXB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG4uZ20tZGVzYyA+Pj4gLnJlbWluZGVyOmhvdmVyID4gc3BhbjpudGgtb2YtdHlwZSgyKXtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4uZ20tZGVzYyA+Pj4gLnJlbWluZGVyOmhvdmVyIHNwYW46bnRoLW9mLXR5cGUoMikuY2hhcmFjdGVyLFxuLmdtLWRlc2MgPj4+IC5yZW1pbmRlcjpob3ZlciBzcGFuOm50aC1vZi10eXBlKDIpLm1vbnN0ZXJ7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcGFkZGluZzogOHB4IDEwcHg7XG4gICAgZmlsdGVyOiBkcm9wLXNoYWRvdygtMnB4IDBweCAwcHggIzAwMCkgZHJvcC1zaGFkb3coMnB4IDBweCAwcHggIzAwMCkgZHJvcC1zaGFkb3coMHB4IC0ycHggMHB4ICMwMDApIGRyb3Atc2hhZG93KDBweCAycHggMHB4ICMwMDApIGRyb3Atc2hhZG93KDAgMCAxMHB4IHJnYmEoMCwgMCwgMCwgMC44KSk7XG59XG4uZ20tZGVzYyA+Pj4gLnJlbWluZGVyOmhvdmVyIHNwYW46bnRoLW9mLXR5cGUoMikuY2hhcmFjdGVye1xuICBwYWRkaW5nOiAwO1xufVxuXG4uZ20tZGVzYyA+Pj4gLnJlbWluZGVyOmhvdmVyIHNwYW46bnRoLW9mLXR5cGUoMikuY2hhcmFjdGVyIHAsXG4uZ20tZGVzYyA+Pj4gLnJlbWluZGVyOmhvdmVyIHNwYW46bnRoLW9mLXR5cGUoMikubW9uc3RlciBwIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGFsaWduLXNlbGY6IHNlbGYtc3RhcnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBtYXJnaW4tbGVmdDogOHB4O1xufVxuLmdtLWRlc2MgPj4+IC5yZW1pbmRlcjpob3ZlciBzcGFuOm50aC1vZi10eXBlKDIpLmNoYXJhY3RlciBwe1xuICBtYXJnaW4tdG9wOiA2cHg7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuLmdtLWRlc2MgPj4+IGhyOjpiZWZvcmUsXG4uZ20tZGVzYyA+Pj4gaHI6OmFmdGVye1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHdpZHRoOiAxMnB4O1xuICAgIGhlaWdodDogMTJweDtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVooNDVkZWcpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICM2Yzc1N2Q7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogLTZweDtcbn1cbi5nbS1kZXNjID4+PiBocjo6YmVmb3Jle1xuICAgIGxlZnQ6IC0xNHB4O1xufVxuLmdtLWRlc2MgPj4+IGhyOjphZnRlcntcbiAgICByaWdodDogLTE0cHg7XG59XG4uZ20tZGVzYyA+Pj4gaHJ7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICM2Yzc1N2Q7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiBjYWxjKDcwJSAtIDI4cHgpO1xuICAgIG1hcmdpbi10b3A6IDEuNXJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG4gICAgb3BhY2l0eTogLjY7XG59XG4uZ20tZGVzYyA+Pj4gYSB7XG4gICAgY29sb3I6ICMwNTk1YTk7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA4NTBweCl7XG4gIC5zaWRlLWJhci1zaG93IHtcbiAgICB3aWR0aDogNDAwcHg7XG4gICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAzMHB4KTtcbiAgfVxuXG4gIC5tYXNxdWVlIHtcbiAgICByaWdodDogLTQwMHB4O1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg1MHB4KXtcbiAgLnNpZGUtYmFyLXNob3cge1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgcGFkZGluZy10b3A6NzBweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXItbGVmdC13aWR0aDogMHB4O1xufVxuXG4ucGxheWVyLW1vZGUgLnRvcFRpdGxle1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIHBhZGRpbmctcmlnaHQ6IDIwcHg7XG59XG5cbi5wbGF5ZXItbW9kZXtcbiAgcGFkZGluZy10b3A6NXB4O1xuICBib3JkZXItdG9wLXdpZHRoOiAxcHg7XG59XG4ubWFzcXVlZSB7XG4gICAgYm90dG9tOiAtMTAwJTtcbiAgfVxuXG5zcGFuLnRvZ2dsZUJ0biB7XG4gICAgdG9wOjI1cHg7XG4gICAgcmlnaHQ6IDI2cHg7XG4gICAgbGVmdDogdW5zZXQ7XG59XG4ucGxheWVyLW1vZGUgc3Bhbi50b2dnbGVCdG4ge1xuICAgIGhlaWdodDogMjVweDtcbiAgICB3aWR0aDogMjVweDtcbn1cbi5wbGF5ZXItbW9kZSAudG9nZ2xlQnRuID4gYnV0dG9uIHtcbiAgICB3aWR0aDogMjVweDtcbiAgICBoZWlnaHQ6IDI1cHg7XG4gICAgZm9udC1zaXplOiAwLjlyZW07XG59XG4ucGxheWVyLW1vZGUgc3Bhbi50b2dnbGVCdG4ge1xuICAgIHRvcDoyMHB4O1xufVxuLmJhY2tncm91bmRIZXh7XG4gIG1hcmdpbi10b3A6IC03MHB4O1xufVxuXG59XG48L3N0eWxlPlxuIiwiPHRlbXBsYXRlPlxuICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGVkXCIgQGNsaWNrPVwib3BlbiA9ICFvcGVuXCI+XG4gICAgICAgICAgICA8aW1nIDpzcmM9XCJzZWxlY3RlZFtpbWdfYXR0cmlidXRlc11cIiB3aWR0aD1cIjUwXCI+IDxzcGFuPnt7IHNlbGVjdGVkW2xhYmVsX2F0dHJpYnV0ZXNdIH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHVsIDpjbGFzcz1cIm9wZW4gPyAnb3Blbic6ICdjbG9zZWQnXCI+XG4gICAgICAgICAgICA8bGkgdi1mb3I9XCJsaW5lIGluIHNvcnRlZF9hcnJheVwiIEBjbGljaz1cInNlbGVjdChsaW5lKVwiIDpjbGFzcz1cImxpbmUuaWQgPT0gc2VsZWN0ZWQuaWQgPyAnc2FtZS1hcy1zZWxlY3RlZCc6ICcnXCI+XG4gICAgICAgICAgICAgICAgPGltZyA6c3JjPVwibGluZVtpbWdfYXR0cmlidXRlc11cIiB3aWR0aD1cIjUwXCI+PHNwYW4+e3sgbGluZVtsYWJlbF9hdHRyaWJ1dGVzXSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgIDwvdWw+XG4gICAgPC9kaXY+XG48L3RlbXBsYXRlPlxuPHNjcmlwdD5cblxuICAgIGV4cG9ydCBkZWZhdWx0IHtcbiAgICAgICAgbmFtZTogXCJjdXN0b21Ecm9wZG93blwiLFxuICAgICAgICBkYXRhKCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgc2VsZWN0ZWQ6e30sXG4gICAgICAgICAgICBvcGVuOmZhbHNlLFxuICAgICAgICB9O1xuICAgICAgICB9LFxuICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgYXJyYXk6e1xuICAgICAgICAgICAgICAgIFR5cGU6QXJyYXksXG4gICAgICAgICAgICAgICAgZGVmYXVsdDpbXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBhcnJheV9zZWxlY3RlZDonJyxcbiAgICAgICAgICAgIGxhYmVsX2F0dHJpYnV0ZXM6e1xuICAgICAgICAgICAgICAgIFR5cGU6U3RyaW5nLFxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6J25hbWUnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGltZ19hdHRyaWJ1dGVzOntcbiAgICAgICAgICAgICAgICBUeXBlOlN0cmluZyxcbiAgICAgICAgICAgICAgICBkZWZhdWx0OidpbWcnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGZpbHRlcjonJyxcbiAgICAgICAgfSxcbiAgICAgICAgbWV0aG9kczoge1xuICAgICAgICAgICAgc2VsZWN0KGxpbmUpe1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWQgPSBsaW5lOyBcbiAgICAgICAgICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLiRlbWl0KCdvbkNoYW5nZScsbGluZVt0aGlzLmxhYmVsX2F0dHJpYnV0ZXNdKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHdhdGNoOntcbiAgICAgICAgICAgIGFycmF5X3NlbGVjdGVkKCl7XG4gICAgICAgICAgICAgICAgdGhpcy5hcnJheS5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZihlbGVtZW50W3RoaXMubGFiZWxfYXR0cmlidXRlc10gPT0gdGhpcy5hcnJheV9zZWxlY3RlZCl7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkID0gZWxlbWVudDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGZpbHRlcigpe1xuICAgICAgICAgICAgICAgIHRoaXMuJGVtaXQoJ29uQ2hhbmdlJyx0aGlzLnNvcnRlZF9hcnJheVswXVt0aGlzLmxhYmVsX2F0dHJpYnV0ZXNdKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIGNvbXB1dGVkOntcbiAgICAgICAgICAgIHNvcnRlZF9hcnJheSgpe1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmFycmF5LmZpbHRlcigoYSkgPT4gYSA/IGFbdGhpcy5sYWJlbF9hdHRyaWJ1dGVzXS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHRoaXMuZmlsdGVyLnRvTG93ZXJDYXNlKCkpIDogYSApLnNvcnQoKGEsYikgPT4gYVt0aGlzLmxhYmVsX2F0dHJpYnV0ZXNdLmxvY2FsZUNvbXBhcmUoYlt0aGlzLmxhYmVsX2F0dHJpYnV0ZXNdKSlcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIG1vdW50ZWQoKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkID0gdGhpcy5hcnJheVswXTtcbiAgICAgICAgfSxcbiAgICB9O1xuPC9zY3JpcHQ+XG48c3R5bGUgc2NvcGVkPlxuLnNlbGVjdHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAyNTBweDtcbn1cbi5zZWxlY3RlZHtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICBwYWRkaW5nOiA4cHggMTZweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjY2RiZDkxO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDMsIDEyLCAyMSwgMC45KTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi5vcGVue1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDMsIDEyLCAyMSwgMC45KTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjY2RiZDkxO1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEpICNjZGJkOTEgI2NkYmQ5MSAjY2RiZDkxO1xuICAgIHRvcDogMTAwJTtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIHotaW5kZXg6IDk5O1xuICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OjA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LWhlaWdodDogNTAwcHg7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbn1cbi5vcGVuIGxpLFxuLmNsb3NlZCBsaXtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICBwYWRkaW5nOiA4cHggMTZweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHJnYmEoMCwgMCwgMCwgMC4xKSB0cmFuc3BhcmVudDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi5zZWxlY3RlZCBpbWcsXG5saSBpbWd7XG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG59XG4uc2FtZS1hcy1zZWxlY3RlZHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlO1xufVxuLmNsb3NlZHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4NTBweCl7XG5cblxufVxuPC9zdHlsZT4iLCI8dGVtcGxhdGU+XG4gICAgPGRpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImVkaXQtbWVudVwiPlxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJyYWRpb1wiIGlkPVwidGFiMVwiIG5hbWU9XCJjdXJyZW50VGFiXCIgdmFsdWU9XCIxXCIgY2hlY2tlZD5cbiAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJ0YWIxXCI+XG4gICAgICAgICAgICAgICAgPGZvbnQtYXdlc29tZS1pY29uIDppY29uPVwiWydmYXMnLCAnYWxpZ24tanVzdGlmeSddXCIgLz5cbiAgICAgICAgICAgICAgICBGb3JtYXRcbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFiXCI+XG4gICAgICAgICAgICAgICAgPHNlbGVjdCB2LW1vZGVsPVwiaGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIzXCI+VGl0cmUgZGUgc2VjdGlvbjwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiNFwiPlNvdXMtdGl0cmUgZGUgc2VjdGlvbjwvb3B0aW9uPlxuICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICAgICAgICAgIDxidXR0b24gQGNsaWNrPVwibWFrZUhlYWRlcigpXCIgdGl0bGU9XCJUaXRyZSBkZSBzZWN0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgIDxmb250LWF3ZXNvbWUtaWNvbiA6aWNvbj1cIlsnZmFzJywgJ2hlYWRpbmcnXVwiIC8+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBAY2xpY2s9XCJtYWtlQm9sZCgpXCIgdGl0bGU9XCJHcmFzXCI+XG4gICAgICAgICAgICAgICAgICAgIDxmb250LWF3ZXNvbWUtaWNvbiA6aWNvbj1cIlsnZmFzJywgJ2JvbGQnXVwiIC8+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBAY2xpY2s9XCJtYWtlSXRhbGljKClcIiB0aXRsZT1cIkl0YWxpcXVlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxmb250LWF3ZXNvbWUtaWNvbiA6aWNvbj1cIlsnZmFzJywgJ2l0YWxpYyddXCIgLz5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIEBjbGljaz1cIm1ha2VBTGlzdCgpXCIgdGl0bGU9XCJMaXN0ZSDDoCBwdWNlc1wiPlxuICAgICAgICAgICAgICAgICAgICA8Zm9udC1hd2Vzb21lLWljb24gOmljb249XCJbJ2ZhcycsICdsaXN0J11cIiAvPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b24gQGNsaWNrPVwibWFrZUFSZWFkVGV4dCgpXCIgdGl0bGU9XCJUZXh0ZSDDoCBsaXJlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxmb250LWF3ZXNvbWUtaWNvbiA6aWNvbj1cIlsnZmFzJywgJ2Jvb2snXVwiIC8+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBAY2xpY2s9XCJtYWtlc0JyZWFrc0F0RW5kT2ZMaW5lcygpXCIgdGl0bGU9XCJTYXV0cyBkZSBsaWduZVwiPlxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj5BdXRvIHNhdXRzIGRlIGxpZ25lPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8aW5wdXQgdHlwZT1cInJhZGlvXCIgaWQ9XCJ0YWIyXCIgbmFtZT1cImN1cnJlbnRUYWJcIiB2YWx1ZT1cIjJcIj5cbiAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJ0YWIyXCI+XG4gICAgICAgICAgICAgICAgPGZvbnQtYXdlc29tZS1pY29uIDppY29uPVwiWydmYXMnLCAnY2hpbGQnXVwiIC8+XG4gICAgICAgICAgICAgICAgUE5KXG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYlwiPlxuICAgICAgICAgICAgICAgIDxzcGFuPkZpbHRyZTo8L3NwYW4+XG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgdi1tb2RlbD1cIm5wY19maWx0ZXJcIj48YnI+XG4gICAgICAgICAgICAgICAgPGN1c3RvbURyb3Bkb3duIDphcnJheT1cIm5wY19pbmZvc1wiIDphcnJheV9zZWxlY3RlZD1cIm5wY19zZWxlY3RlZFwiIEBvbkNoYW5nZT1cIm5wY19zZWxlY3RlZCA9ICRldmVudFwiIDpmaWx0ZXI9XCJucGNfZmlsdGVyXCIvPlxuICAgICAgICAgICAgICAgIDxidXR0b24gQGNsaWNrPVwiaW5zZXJ0KG5wY19zZWxlY3RlZClcIj5JbnPDqXJlciBQTko8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJyYWRpb1wiIGlkPVwidGFiM1wiIG5hbWU9XCJjdXJyZW50VGFiXCIgdmFsdWU9XCIzXCI+XG4gICAgICAgICAgICA8bGFiZWwgZm9yPVwidGFiM1wiPlxuICAgICAgICAgICAgICAgIDxmb250LWF3ZXNvbWUtaWNvbiA6aWNvbj1cIlsnZmFzJywgJ3Bhc3RhZmFyaWFuaXNtJ11cIiAvPlxuICAgICAgICAgICAgICAgIE1vbnN0cmVcbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFiXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4+RmlsdHJlOjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiB2LW1vZGVsPVwibW9uc3Rlcl9maWx0ZXJcIj48YnI+XG4gICAgICAgICAgICAgICAgPGN1c3RvbURyb3Bkb3duIDphcnJheT1cIm1vbnN0ZXJfaW5mb3NcIiA6YXJyYXlfc2VsZWN0ZWQ9XCJtb25zdGVyX3NlbGVjdGVkXCIgQG9uQ2hhbmdlPVwibW9uc3Rlcl9zZWxlY3RlZCA9ICRldmVudFwiIDpmaWx0ZXI9XCJtb25zdGVyX2ZpbHRlclwiLz5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIEBjbGljaz1cImluc2VydChtb25zdGVyX3NlbGVjdGVkKVwiPkluc8OpcmVyIE1vbnN0cmU8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJyYWRpb1wiIGlkPVwidGFiNFwiIG5hbWU9XCJjdXJyZW50VGFiXCIgdmFsdWU9XCI0XCI+XG4gICAgICAgICAgICA8bGFiZWwgZm9yPVwidGFiNFwiPlxuICAgICAgICAgICAgICAgIDxmb250LWF3ZXNvbWUtaWNvbiA6aWNvbj1cIlsnZmFzJywgJ3JpbmcnXVwiIC8+XG4gICAgICAgICAgICAgICAgT2JqZXRzXG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYlwiPlxuICAgICAgICAgICAgICAgIDxzcGFuPkZpbHRyZTo8L3NwYW4+XG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgdi1tb2RlbD1cIml0ZW1zX2ZpbHRlclwiPjxicj5cbiAgICAgICAgICAgICAgICA8Y3VzdG9tRHJvcGRvd24gOmFycmF5PVwiaXRlbXNfaW5mb3NcIiA6YXJyYXlfc2VsZWN0ZWQ9XCJpdGVtc19zZWxlY3RlZFwiIEBvbkNoYW5nZT1cIml0ZW1zX3NlbGVjdGVkID0gJGV2ZW50XCIgOmZpbHRlcj1cIml0ZW1zX2ZpbHRlclwiLz5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIEBjbGljaz1cImluc2VydChpdGVtc19zZWxlY3RlZClcIj5JbnPDqXJlciBvYmpldDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8aW5wdXQgdHlwZT1cInJhZGlvXCIgaWQ9XCJ0YWI1XCIgbmFtZT1cImN1cnJlbnRUYWJcIiB2YWx1ZT1cIjVcIj5cbiAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJ0YWI1XCI+XG4gICAgICAgICAgICAgICAgPGZvbnQtYXdlc29tZS1pY29uIDppY29uPVwiWydmYXMnLCAndmlkZW8nXVwiIC8+XG4gICAgICAgICAgICAgICAgTWVkaWFzXG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYlwiPlxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHYtbW9kZWw9XCJsaW5rXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBAY2xpY2s9XCJpbnNlcnRZb3V0dWJlKGxpbmspXCIgOmRpc2FibGVkPVwiIWxpbmtJc1ZhbGlkWW91dHViZVwiIHRpdGxlPVwiSW5zw6lyZXIgeW91dHViZVwiPjxpIGNsYXNzPVwiZmFiIGZhLXlvdXR1YmVcIiBhbHQ9XCJJbnPDqXJlciB5b3V0dWJlXCI+PC9pPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b24gQGNsaWNrPVwiaW5zZXJ0UGljdHVyZShsaW5rKVwiIDpkaXNhYmxlZD1cIiFsaW5rSXNWYWxpZEltZ1wiIHRpdGxlPVwiSW5zw6lyZXIgSW1hZ2VcIj48aSBjbGFzcz1cImZhcyBmYS1pbWFnZVwiIGFsdD1cIkluc8OpcmVyIEltYWdlXCI+PC9pPjwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8dGV4dGFyZWEgdi1tb2RlbD1cInRleHRcIiByZWY9XCJ0ZXh0YXJlYVwiIEBjaGFuZ2U9XCJ1cGRhdGVUZXh0KClcIj48L3RleHRhcmVhPlxuICAgIDwvZGl2PlxuPC90ZW1wbGF0ZT5cbjxzY3JpcHQ+XG5cbmltcG9ydCBjdXN0b21Ecm9wZG93biBmcm9tICcuLi9vdGhlci9jdXN0b21Ecm9wZG93bi52dWUnO1xuaW1wb3J0IHsgbGlicmFyeSB9IGZyb20gXCJAZm9ydGF3ZXNvbWUvZm9udGF3ZXNvbWUtc3ZnLWNvcmVcIjtcbmltcG9ydCB7IGZhQWxpZ25KdXN0aWZ5LCBmYUJvbGQsIGZhQm9vaywgZmFDaGlsZCwgZmFIZWFkaW5nLCBmYUl0YWxpYywgZmFMaXN0LCBmYVBhc3RhZmFyaWFuaXNtLCBmYVJpbmcsIGZhVmlkZW8sIGZhSW1hZ2UgfSBmcm9tIFwiQGZvcnRhd2Vzb21lL2ZyZWUtc29saWQtc3ZnLWljb25zXCI7XG5saWJyYXJ5LmFkZChmYUxpc3QsIGZhQm9vaywgZmFCb2xkLCBmYUl0YWxpYywgZmFQYXN0YWZhcmlhbmlzbSwgZmFSaW5nLCBmYVZpZGVvLCBmYUNoaWxkLCBmYUFsaWduSnVzdGlmeSwgZmFIZWFkaW5nLCBmYUltYWdlLCk7XG4gICAgZXhwb3J0IGRlZmF1bHQge1xuICAgICAgICBuYW1lOiBcInRleHRFZGl0b3JcIixcbiAgICAgICAgaW5qZWN0OlsnZ2V0TnBjJywnZ2V0SXRlbXMnLCdnZXRNb25zdGVyJywnc2V0Q29udGVudCddLFxuICAgICAgICBjb21wb25lbnRzOntcbiAgICAgICAgICAgIGN1c3RvbURyb3Bkb3duLFxuICAgICAgICB9LFxuICAgICAgICBkYXRhKCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbnBjX2ZpbHRlcjonJyxcbiAgICAgICAgICAgIG5wY19zZWxlY3RlZDpudWxsLFxuICAgICAgICAgICAgbW9uc3Rlcl9maWx0ZXI6JycsXG4gICAgICAgICAgICBtb25zdGVyX3NlbGVjdGVkOm51bGwsXG4gICAgICAgICAgICBpdGVtc19maWx0ZXI6JycsXG4gICAgICAgICAgICBpdGVtc19zZWxlY3RlZDpudWxsLFxuICAgICAgICAgICAgbGluazonbGllbiB5b3V0dWJlJyxcbiAgICAgICAgICAgIGhlYWRlcjozLFxuICAgICAgICB9O1xuICAgICAgICB9LFxuICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgdGV4dDp7fSxcbiAgICAgICAgfSxcbiAgICAgICAgbWV0aG9kczoge1xuICAgICAgICAgICAgaW5zZXJ0KGluc2VydCl7XG4gICAgICAgICAgICAgICAgbGV0IGlucHV0ID0gdGhpcy4kcmVmcy50ZXh0YXJlYTtcbiAgICAgICAgICAgICAgICBpbnB1dC5zZXRSYW5nZVRleHQoYFske2luc2VydH1dYCwgaW5wdXQuc2VsZWN0aW9uU3RhcnQsIGlucHV0LnNlbGVjdGlvbkVuZCwgXCJlbmRcIik7XG4gICAgICAgICAgICAgICAgdGhpcy50ZXh0ID0gaW5wdXQudmFsdWU7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVUZXh0KCk7XG4gICAgICAgICAgICAgICAgaW5wdXQuZm9jdXMoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBpbnNlcnRZb3V0dWJlKGluc2VydCl7XG4gICAgICAgICAgICAgICAgbGV0IGlucHV0ID0gdGhpcy4kcmVmcy50ZXh0YXJlYTtcbiAgICAgICAgICAgICAgICBpbnB1dC5zZXRSYW5nZVRleHQoYFt5dGI9XFxcIiR7aW5zZXJ0fVxcXCIgdz00MDAgaD0yMjBdYCwgaW5wdXQuc2VsZWN0aW9uU3RhcnQsIGlucHV0LnNlbGVjdGlvbkVuZCwgXCJlbmRcIik7XG4gICAgICAgICAgICAgICAgdGhpcy50ZXh0ID0gaW5wdXQudmFsdWU7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVUZXh0KCk7XG4gICAgICAgICAgICAgICAgaW5wdXQuZm9jdXMoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBpbnNlcnRQaWN0dXJlKGluc2VydCl7XG4gICAgICAgICAgICAgICAgbGV0IGlucHV0ID0gdGhpcy4kcmVmcy50ZXh0YXJlYTtcbiAgICAgICAgICAgICAgICBpbnB1dC5zZXRSYW5nZVRleHQoYFtpbWc9XFxcIiR7aW5zZXJ0fVxcXCJdYCwgaW5wdXQuc2VsZWN0aW9uU3RhcnQsIGlucHV0LnNlbGVjdGlvbkVuZCwgXCJlbmRcIik7XG4gICAgICAgICAgICAgICAgdGhpcy50ZXh0ID0gaW5wdXQudmFsdWU7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVUZXh0KCk7XG4gICAgICAgICAgICAgICAgaW5wdXQuZm9jdXMoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBtYWtlSGVhZGVyKCl7XG4gICAgICAgICAgICAgICAgbGV0IGlucHV0ID0gdGhpcy4kcmVmcy50ZXh0YXJlYTtcbiAgICAgICAgICAgICAgICBpZiAoaW5wdXQuc2VsZWN0aW9uU3RhcnQgPT0gaW5wdXQuc2VsZWN0aW9uRW5kKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjsgLy8gbm90aGluZyBpcyBzZWxlY3RlZFxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGxldCBzZWxlY3RlZCA9IGlucHV0LnZhbHVlLnNsaWNlKGlucHV0LnNlbGVjdGlvblN0YXJ0LCBpbnB1dC5zZWxlY3Rpb25FbmQpO1xuICAgICAgICAgICAgICAgIGlucHV0LnNldFJhbmdlVGV4dChgPGgke3RoaXMuaGVhZGVyfT4ke3NlbGVjdGVkfTwvaCR7dGhpcy5oZWFkZXJ9PmApO1xuICAgICAgICAgICAgICAgIHRoaXMudGV4dCA9IGlucHV0LnZhbHVlO1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlVGV4dCgpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG1ha2VBTGlzdCgpe1xuICAgICAgICAgICAgICAgIGxldCBpbnB1dCA9IHRoaXMuJHJlZnMudGV4dGFyZWE7XG4gICAgICAgICAgICAgICAgaWYgKGlucHV0LnNlbGVjdGlvblN0YXJ0ID09IGlucHV0LnNlbGVjdGlvbkVuZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47IC8vIG5vdGhpbmcgaXMgc2VsZWN0ZWRcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBsZXQgc2VsZWN0ZWQgPSBpbnB1dC52YWx1ZS5zbGljZShpbnB1dC5zZWxlY3Rpb25TdGFydCwgaW5wdXQuc2VsZWN0aW9uRW5kKTtcbiAgICAgICAgICAgICAgICBpbnB1dC5zZXRSYW5nZVRleHQodGhpcy5tYWtlU3RyaW5nSHRtbExpc3Qoc2VsZWN0ZWQpKTtcbiAgICAgICAgICAgICAgICB0aGlzLnRleHQgPSBpbnB1dC52YWx1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVRleHQoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBtYWtlQVJlYWRUZXh0KCl7XG4gICAgICAgICAgICAgICAgbGV0IGlucHV0ID0gdGhpcy4kcmVmcy50ZXh0YXJlYTtcbiAgICAgICAgICAgICAgICBpZiAoaW5wdXQuc2VsZWN0aW9uU3RhcnQgPT0gaW5wdXQuc2VsZWN0aW9uRW5kKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjsgLy8gbm90aGluZyBpcyBzZWxlY3RlZFxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGxldCBzZWxlY3RlZCA9IGlucHV0LnZhbHVlLnNsaWNlKGlucHV0LnNlbGVjdGlvblN0YXJ0LCBpbnB1dC5zZWxlY3Rpb25FbmQpO1xuICAgICAgICAgICAgICAgIGlucHV0LnNldFJhbmdlVGV4dChgPGVtIGNsYXNzPVwicmVhZC1pdFwiPiAke3NlbGVjdGVkfSA8L2VtPmApO1xuICAgICAgICAgICAgICAgIHRoaXMudGV4dCA9IGlucHV0LnZhbHVlO1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlVGV4dCgpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG1ha2VzQnJlYWtzQXRFbmRPZkxpbmVzKCl7XG4gICAgICAgICAgICAgICAgbGV0IGlucHV0ID0gdGhpcy4kcmVmcy50ZXh0YXJlYTtcbiAgICAgICAgICAgICAgICBpZiAoaW5wdXQuc2VsZWN0aW9uU3RhcnQgPT0gaW5wdXQuc2VsZWN0aW9uRW5kKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjsgLy8gbm90aGluZyBpcyBzZWxlY3RlZFxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGxldCBzZWxlY3RlZCA9IGlucHV0LnZhbHVlLnNsaWNlKGlucHV0LnNlbGVjdGlvblN0YXJ0LCBpbnB1dC5zZWxlY3Rpb25FbmQpO1xuICAgICAgICAgICAgICAgIGlucHV0LnNldFJhbmdlVGV4dChzZWxlY3RlZC5yZXBsYWNlKC9cXG4vZywgJzxici8+XFxuJykpO1xuICAgICAgICAgICAgICAgIHRoaXMudGV4dCA9IGlucHV0LnZhbHVlO1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlVGV4dCgpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG1ha2VCb2xkKCl7XG4gICAgICAgICAgICAgICAgbGV0IGlucHV0ID0gdGhpcy4kcmVmcy50ZXh0YXJlYTtcbiAgICAgICAgICAgICAgICBpZiAoaW5wdXQuc2VsZWN0aW9uU3RhcnQgPT0gaW5wdXQuc2VsZWN0aW9uRW5kKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjsgLy8gbm90aGluZyBpcyBzZWxlY3RlZFxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGxldCBzZWxlY3RlZCA9IGlucHV0LnZhbHVlLnNsaWNlKGlucHV0LnNlbGVjdGlvblN0YXJ0LCBpbnB1dC5zZWxlY3Rpb25FbmQpO1xuICAgICAgICAgICAgICAgIGlucHV0LnNldFJhbmdlVGV4dChgPHN0cm9uZz4ke3NlbGVjdGVkfTwvc3Ryb25nPmApO1xuICAgICAgICAgICAgICAgIHRoaXMudGV4dCA9IGlucHV0LnZhbHVlO1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlVGV4dCgpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG1ha2VJdGFsaWMoKXtcbiAgICAgICAgICAgICAgICBsZXQgaW5wdXQgPSB0aGlzLiRyZWZzLnRleHRhcmVhO1xuICAgICAgICAgICAgICAgIGlmIChpbnB1dC5zZWxlY3Rpb25TdGFydCA9PSBpbnB1dC5zZWxlY3Rpb25FbmQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuOyAvLyBub3RoaW5nIGlzIHNlbGVjdGVkXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgbGV0IHNlbGVjdGVkID0gaW5wdXQudmFsdWUuc2xpY2UoaW5wdXQuc2VsZWN0aW9uU3RhcnQsIGlucHV0LnNlbGVjdGlvbkVuZCk7XG4gICAgICAgICAgICAgICAgaW5wdXQuc2V0UmFuZ2VUZXh0KGA8ZW0+JHtzZWxlY3RlZH08L2VtPmApO1xuICAgICAgICAgICAgICAgIHRoaXMudGV4dCA9IGlucHV0LnZhbHVlO1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlVGV4dCgpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG1ha2VTdHJpbmdIdG1sTGlzdChzdHJpbmcpe1xuICAgICAgICAgICAgICAgIGxldCBsaW5lcyA9IHN0cmluZy5zcGxpdCgnXFxuJyk7XG4gICAgICAgICAgICAgICAgbGV0IGh0bWwgPSAnJztcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBsaW5lIG9mIGxpbmVzKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChsaW5lLnRyaW0oKSAhPT0gJycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGh0bWwgKz0gYCAgIDxsaT4ke2xpbmV9PC9saT5cXG5gO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBgPHVsPlxcbiR7aHRtbH08L3VsPlxcbmA7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdXBkYXRlVGV4dCgpe1xuICAgICAgICAgICAgICAgIHRoaXMuJGVtaXQoJ3VwZGF0ZScsIHRoaXMudGV4dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG1vdW50ZWQoKSB7XG4gICAgICAgICAgICB0aGlzLm5wY19zZWxlY3RlZCA9IHRoaXMubnBjX2luZm9zWzBdLm5hbWU7XG4gICAgICAgICAgICB0aGlzLm1vbnN0ZXJfc2VsZWN0ZWQgPSB0aGlzLm1vbnN0ZXJfaW5mb3NbMF0ubmFtZTtcbiAgICAgICAgICAgIHRoaXMuaXRlbXNfc2VsZWN0ZWQgPSB0aGlzLml0ZW1zX2luZm9zWzBdLm5hbWU7XG5cbiAgICAgICAgfSxcbiAgICAgICAgY29tcHV0ZWQ6e1xuICAgICAgICAgICAgbnBjX2luZm9zOiBmdW5jdGlvbigpe1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmdldE5wYygpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG1vbnN0ZXJfaW5mb3M6IGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0TW9uc3RlcigpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGl0ZW1zX2luZm9zOiBmdW5jdGlvbigpe1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmdldEl0ZW1zKCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbGlua0lzVmFsaWRZb3V0dWJlKCl7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubGluay5tYXRjaCgvaHR0cHM6XFwvXFwvd3d3XFwueW91dHViZVxcUysvKSAhPT0gbnVsbDtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsaW5rSXNWYWxpZEltZygpe1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmxpbmsubWF0Y2goL2h0dHBzOlxcL1xcL1xcUysvKSAhPT0gbnVsbDtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgfTtcbjwvc2NyaXB0PlxuPHN0eWxlIHNjb3BlZD5cbi5lZGl0LW1lbnV7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbn1cbmlucHV0W3R5cGU9XCJyYWRpb1wiXSArIGxhYmVse1xuICAgIHdpZHRoOiAyMCU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2NkYmQ5MTtcbiAgICBwYWRkaW5nOiAycHggNXB4O1xufVxuaW5wdXRbdHlwZT1cInJhZGlvXCJdOmNoZWNrZWQgKyBsYWJlbHtcbiAgICBib3JkZXItY29sb3I6ICNjZGJkOTFjMjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDEwOCwgMTI1LDAuNSk7XG4gICAgY29sb3I6IHJnYigyNDAsIDIzMCwgMjEwKTtcbn1cbi50YWJ7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cbmlucHV0W3R5cGU9XCJyYWRpb1wiXXtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuaW5wdXRbdHlwZT1cInJhZGlvXCJdOmNoZWNrZWQgKyBsYWJlbCArIC50YWJ7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgb3JkZXI6IDQ7XG59XG50ZXh0YXJlYXtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICByZXNpemU6IHZlcnRpY2FsO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDUwMHB4O1xuICAgIG1hcmdpbi10b3A6IDVweDtcbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogODUwcHgpe1xuXG5cbn1cbjwvc3R5bGU+IiwiPHRlbXBsYXRlPlxuICAgIDxkaXYgaWQ9XCJNYXBFdmVudFwiIHJlZj1cIk1hcEV2ZW50XCIgPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cIm1vZGFsIGZhZGVcIlxuICAgICAgICAgICAgaWQ9XCJtb2RhbE1hcEV2ZW50XCJcbiAgICAgICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICAgICAgcm9sZT1cImRpYWxvZ1wiXG4gICAgICAgICAgICBhcmlhLWxhYmVsbGVkYnk9XCJtb2RhbE1hcEV2ZW50TGFiZWxcIlxuICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgIHJlZj1cIm1vZGFsTWFwRXZlbnRcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPSdtb2RhbC1kaWFsb2cnIHJvbGU9XCJkb2N1bWVudFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgICAgIDxoZWFkZXIgOnN0eWxlPVwiJ2JhY2tncm91bmQtaW1hZ2U6IHVybCgnK2V2ZW50LmltZysnKSdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIHYtaWY9XCJldmVudC5wdWJsaWMgPT0gZmFsc2VcIiBjbGFzcz1cInByaXZhdGUtZXZlbnRcIiB0aXRsZT1cIkNlIHNjw6luYXJpbyBlc3QgcHJpdsOpLCBpbCBlc3QgdmlzaWJsZSB1bmlxdWVtZW50IHBhciB2b3VzIGV0IGxlcyBhZG1pbmlzdHRhdGV1cnNcIj5Qcml2w6k8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdi1pZj1cImVkaXRfbW9kZVwiIHR5cGU9XCJ0ZXh0XCIgdi1tb2RlbD1cImV2ZW50Lm5vbVwiIGNsYXNzPVwiZWRpdC1oMVwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxoMSB2LWVsc2U+e3tldmVudC5ub219fTwvaDE+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdi1pZj1cImVkaXRfbW9kZVwiIHR5cGU9XCJ0ZXh0XCIgdi1tb2RlbD1cImV2ZW50LnNob3J0XCIgbWF4bGVuZ3RoPVwiMTM1XCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGgzIHYtZWxzZT5QYXIgPGEgOmhyZWY9XCIoZXZlbnQuYXV0ZXVyLmlkICE9PSAwKT8nL3VzZXIvJytldmVudC5hdXRldXIuaWQ6J2h0dHBzOi8vcGxhdGZvcm0ub3BlbmFpLmNvbS8nXCI+e3tldmVudC5hdXRldXIuaWRlbnRpZmlhbnR9fTwvYT48L2gzPlxuICAgICAgICAgICAgICAgICAgICA8L2hlYWRlcj5cblxuICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJlZGl0XCIgdi1pZj1cImVkaXRfcnVsZXMgJiYgIWVkaXRfbW9kZVwiIHRpdGxlPVwiRWRpdGVyXCIgQGNsaWNrPVwiZWRpdE1vZGUodHJ1ZSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9udC1hd2Vzb21lLWljb24gOmljb249XCJbJ2ZhcycsICdwZW4nXVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwIHYtaHRtbD1cInJlcGxhY2VyKGV2ZW50LmRlc2MpXCI+PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiB2LWlmPVwiZWRpdF9tb2RlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRleHRFZGl0b3IgOnRleHQ9XCJldmVudC5kZXNjXCIgQHVwZGF0ZT1cImV2ZW50LmRlc2MgPSAkZXZlbnRcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ0bi1iYXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInNhdmVcIiB2LWlmPVwiZWRpdF9ydWxlc1wiIHRpdGxlPVwiQW5udWxlclwiIEBjbGljaz1cImVkaXRNb2RlKGZhbHNlKVwiPjxmb250LWF3ZXNvbWUtaWNvbiA6aWNvbj1cIlsnZmFzJywgJ2JhbiddXCIgLz5Bbm51bGVyPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJzYXZlXCIgdi1pZj1cImVkaXRfcnVsZXNcIiB0aXRsZT1cIlNhdXZlZ2FyZGVyXCIgQGNsaWNrPVwic2F2ZSgpXCI+PGZvbnQtYXdlc29tZS1pY29uIDppY29uPVwiWydmYXMnLCAnc2F2ZSddXCIgLz5TYXV2ZWdhcmRlcjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvYXJ0aWNsZT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvdGVtcGxhdGU+XG48c2NyaXB0PlxuaW1wb3J0IHsgbGlicmFyeSB9IGZyb20gXCJAZm9ydGF3ZXNvbWUvZm9udGF3ZXNvbWUtc3ZnLWNvcmVcIjtcbmltcG9ydCB7IGZhQmFuLCBmYVBlbiwgZmFTYXZlLCBmYUV4dGVybmFsTGlua0FsdH0gZnJvbSBcIkBmb3J0YXdlc29tZS9mcmVlLXNvbGlkLXN2Zy1pY29uc1wiO1xuaW1wb3J0IGFwaU1hcEV2ZW50IGZyb20gJy4uLy4uL2FwaS9hcGlNYXBFdmVudCc7XG5pbXBvcnQgdGV4dEVkaXRvciBmcm9tIFwiLi90ZXh0RWRpdG9yLnZ1ZVwiO1xuXG5saWJyYXJ5LmFkZChmYVBlbiwgZmFTYXZlLCBmYUJhbiwgZmFFeHRlcm5hbExpbmtBbHQpO1xuICAgIGV4cG9ydCBkZWZhdWx0IHtcbiAgICAgICAgbmFtZTogXCJNYXBFdmVudFwiLFxuICAgICAgICBpbmplY3Q6Wyd0ZXh0UmVwbGFjZXInLCdnZXRVc2VySW5mb3MnXSxcbiAgICAgICAgY29tcG9uZW50czoge1xuICAgICAgICAgICAgdGV4dEVkaXRvclxuICAgICAgICB9LFxuICAgICAgICBkYXRhKCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZWRpdF9tb2RlOmZhbHNlLFxuICAgICAgICAgICAgZXZlbnRCYWNrdXAgOiB7fSxcbiAgICAgICAgfTtcbiAgICAgICAgfSxcbiAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgIGV2ZW50Ont9LFxuICAgICAgICAgICAgdmlzaWJsZTp7XG4gICAgICAgICAgICAgICAgVHlwZTpCb29sZWFuLFxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6ZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBtZXRob2RzOiB7XG4gICAgICAgICAgICBzYXZlKCl7XG4gICAgICAgICAgICAgICAgdGhpcy5lZGl0X21vZGU9ZmFsc2U7XG4gICAgICAgICAgICAgICAgYXBpTWFwRXZlbnQudXBkYXRlTWFwRXZlbnQodGhpcy5ldmVudClcbiAgICAgICAgICAgICAgICAgICAgLnRoZW4oKHJlc3VsdCk9PiB7IHRoaXMuc2V0Q29udGVudChyZXN1bHQucmVzdWx0KTt9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlZGl0TW9kZSh2YWx1ZSl7XG4gICAgICAgICAgICAgICAgdGhpcy5lZGl0X21vZGUgPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICBpZighdmFsdWUpIHRoaXMuZXZlbnQgPSBzdHJ1Y3R1cmVkQ2xvbmUodGhpcy5ldmVudEJhY2t1cCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVwbGFjZXIodGV4dCl7XG4gICAgICAgICAgICAgICAgdGV4dCA9IHRoaXMudGV4dFJlcGxhY2VyKCkucmVwbGFjZUl0ZW0odGV4dCk7XG4gICAgICAgICAgICAgICAgdGV4dCA9IHRoaXMudGV4dFJlcGxhY2VyKCkucmVwbGFjZUtleVdvcmRzKHRleHQpO1xuICAgICAgICAgICAgICAgIHRleHQgPSB0aGlzLnRleHRSZXBsYWNlcigpLnJlcGxhY2VNb25zdGVyKHRleHQpO1xuICAgICAgICAgICAgICAgIHRleHQgPSB0aGlzLnRleHRSZXBsYWNlcigpLnJlcGxhY2VOUEModGV4dCk7XG4gICAgICAgICAgICAgICAgdGV4dCA9IHRoaXMudGV4dFJlcGxhY2VyKCkucmVwbGFjZVlvdXR1YmUodGV4dCk7XG4gICAgICAgICAgICAgICAgdGV4dCA9IHRoaXMudGV4dFJlcGxhY2VyKCkucmVwbGFjZVBpY3R1cmUodGV4dCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRleHQ7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBjb21wdXRlZDp7XG4gICAgICAgICAgICBUZXh0UmVwbGFjZXIoKXtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy50ZXh0UmVwbGFjZXIoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB1c2VyX2luZm9zOiBmdW5jdGlvbigpe1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmdldFVzZXJJbmZvcygpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIC8vYXV0b3Jpc2UgbCdlZGl0aW9uIHNpIGwndXNlciBlc3QgbCdhdXRldXIgb3UgcXUnaWwgZXN0IGFkbWluXG4gICAgICAgICAgICBlZGl0X3J1bGVzKCl7XG4gICAgICAgICAgICAgICAgaWYoIXRoaXMudXNlcl9pbmZvcykgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIGlmKCF0aGlzLnVzZXJfaW5mb3MuaWQpIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLnVzZXJfaW5mb3MuaWQgPT0gdGhpcy5ldmVudC5hdXRldXIuaWQpIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIGlmKCF0aGlzLnVzZXJfaW5mb3Mucm9sZXMpIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy51c2VyX2luZm9zLnJvbGVzLmluY2x1ZGVzKCdST0xFX0FETUlOJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHdhdGNoOntcbiAgICAgICAgICAgIGV2ZW50KCl7XG4gICAgICAgICAgICAgICAgdGhpcy5lZGl0X21vZGUgPSB0aGlzLmV2ZW50LmlkID8gZmFsc2UgOiB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuZXZlbnRCYWNrdXAgPSBzdHJ1Y3R1cmVkQ2xvbmUodGhpcy5ldmVudCk7XG4gICAgICAgICAgICAgICAgbGV0IGJhY2tkcm9wID0gIGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoXCJtb2RhbC1iYWNrZHJvcCBmYWRlIHNob3dcIik7XG4gICAgICAgICAgICAgICAgYmFja2Ryb3AgJiYgYmFja2Ryb3AuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKT0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ2JhY2tkcm9wY2xpY2snKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfSxcbiAgICAgICAgfVxuICAgIH07XG48L3NjcmlwdD5cbjxzdHlsZSBzY29wZWQ+XG4ubW9kYWwtYmFja2Ryb3Age1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMywgMTIsIDIxLCAwLjg1KTtcbn1cbi5tb2RhbC1kaWFsb2d7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6ICNjZGJkOTE7XG4gICAgYm9yZGVyLWltYWdlOiBsaW5lYXItZ3JhZGllbnQocmdiYSgxMzEsMTI4LDE1MCwwKSwgI2NkYmQ5MSxyZ2JhKDEzMSwxMjgsMTUwLDApKSAyNztcbiAgICBib3JkZXItaW1hZ2UtcmVwZWF0OiBzdHJldGNoO1xuICAgIGJvcmRlci1pbWFnZS13aWR0aDogMCAxcHg7XG4gICAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gICAgbWFyZ2luOiAxMCUgMjAlO1xuICAgIG1heC13aWR0aDoxMDAlO1xuICAgIGNvbG9yOiAjY2RiZDkxYzI7XG4gICAgZmlsdGVyOiBkcm9wLXNoYWRvdygwIDAgM3B4IHJnYmEoMCwgMCwgMCwgMC41KSk7XG59XG4gLm1vZGFsLWNvbnRlbnR7XG4gICAgYmFja2dyb3VuZC1jb2xvcjp1bnNldDtcbiAgICBib3JkZXItcmFkaXVzOiB1bnNldDtcbiAgICBib3JkZXI6dW5zZXQ7XG4gfVxuaGVhZGVye1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCAjY2RiZDkxO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuaGVhZGVyIGgzLFxuaGVhZGVyIGgxLFxuLmVkaXQtaDEge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgY29sb3I6ICNmMGU2ZDI7XG59XG5cbmgxLFxuLmVkaXQtaDEge1xuICAgIG1hcmdpbjogMDtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgcGFkZGluZy1sZWZ0OiA4NSU7XG4gICAgcGFkZGluZy1ib3R0b206IDMwcHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuN3B4O1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIGZvbnQtZmFtaWx5OiAnTWVkaWV2YWxTaGFycCcsIGN1cnNpdmU7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuLnByaXZhdGUtZXZlbnQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDE1cHg7XG4gICAgcmlnaHQ6IDE1cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjcpO1xuICAgIGNvbG9yOiAjY2RiZDkxO1xuICAgIHBhZGRpbmc6IDVweCAxNXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6IDEuMjVlbTtcbiAgICB6LWluZGV4OiAxO1xuICAgIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuYXJ0aWNsZSA+Pj4gaDN7XG4gICAgZm9udC1zaXplOjEuMTdlbTtcbiAgICBmb250LXdlaWdodDpib2xkO1xufVxuYXJ0aWNsZSA+Pj4gaDMgYXtcbiAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbmhlYWRlciBoMSxcbi5lZGl0LWgxIHtcbiAgICBwYWRkaW5nOiA4JSAxMCUgMCAxMCU7XG59XG5oZWFkZXIgaW5wdXR7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIHotaW5kZXg6IDE7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIGNvbG9yOiAjY2RiZDkxO1xuICAgIGJvcmRlci13aWR0aDogMDtcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7XG4gICAgd2lkdGg6IDUyZW07XG4gICAgbWF4LXdpZHRoOiA4MCU7XG4gICAgcGFkZGluZzogMiUgMCA1cHggMDtcbiAgICBtYXJnaW4tYm90dG9tOiBjYWxjKDglIC0gNXB4KTtcbn1cbi5lZGl0LWgxIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luLWJsb2NrLXN0YXJ0OiAwLjY3ZW07XG4gICAgbWFyZ2luLWJsb2NrLWVuZDogMC42N2VtO1xuICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDBweDtcbiAgICBtYXJnaW4taW5saW5lLWVuZDogMHB4O1xuICAgIHVuaWNvZGUtYmlkaTogaXNvbGF0ZTtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgZm9udC1zaXplOiAyLjVyZW07XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB3aWR0aDogMTVlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbn1cbmhlYWRlciBpbnB1dDpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiBicm93biAhaW1wb3J0YW50O1xuICAgIH1cbmhlYWRlciBoMyB7XG4gICAgcGFkZGluZzogMiUgMTAlIDglIDEwJTtcbn1cblxuYXJ0aWNsZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgzLCAxMiwgMjEsIDAuOSk7XG4gICAgcGFkZGluZy1ib3R0b206IDdlbSAhaW1wb3J0YW50O1xufVxuLmVkaXQsXG4uc2F2ZXtcbiAgICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gICAgcGFkZGluZzogMnB4IDhweDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogI2NkYmQ5MWMyO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHdoZWF0O1xuICAgIGJvcmRlci1jb2xvcjogI2NkYmQ5MTtcbiAgICBmbG9hdDogcmlnaHQ7XG59XG4uYnRuLWJhcntcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG59XG4uYnRuLWJhciA+IGJ1dHRvbntcbiAgICBtYXJnaW4tbGVmdDogNHB4O1xufVxuYXJ0aWNsZSxcbmFydGljbGUgPj4+IHAge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAxZW0gMTAlO1xufVxuYXJ0aWNsZSA+Pj4gcCB7XG4gICAgdGV4dC1hbGlnbjoganVzdGlmeTtcbn1cbnRhYmxlIHtcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xufVxuYXJ0aWNsZSA+Pj4gdGFibGUgdGgge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmMGU2ZDI7XG4gICAgY29sb3I6ICMwMTBhMTM7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIHBhZGRpbmc6IDJweCA4cHg7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB3aWR0aDogMzAlO1xufVxuXG5hcnRpY2xlID4+PiB0YWJsZSB0ZCB7XG5cdGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG5cdGJvcmRlcjogMXB4IHNvbGlkICMxZTI4MmQ7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0Zm9udC1zaXplOiAxMnB4O1xuICAgIHBhZGRpbmc6IDJweCA4cHg7XG59XG5hcnRpY2xlID4+PiAubmFycmF0YXRpb24ge1xuICBiYWNrZ3JvdW5kOiByZ2IoMTcsIDI3LCAzOCk7XG4gIHBhZGRpbmc6IDEwcHggMTBweCAxNXB4O1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuYXJ0aWNsZSA+Pj4gLnJlbWluZGVyID4gc3BhbjpmaXJzdC1vZi10eXBlLFxuZGl2ID4+PiAucmVtaW5kZXIgPiBzcGFuOmZpcnN0LW9mLXR5cGUsXG5wID4+PiAucmVtaW5kZXIgPiBzcGFuOmZpcnN0LW9mLXR5cGV7XG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIHRleHQtZGVjb3JhdGlvbi1zdHlsZTogZGFzaGVkO1xuICBjb2xvcjogI2NkYmQ5MTtcbn1cbmFydGljbGUgPj4+IC5yZW1pbmRlciA+IHNwYW46bnRoLW9mLXR5cGUoMiksXG5kaXYgPj4+IC5yZW1pbmRlciA+IHNwYW46bnRoLW9mLXR5cGUoMiksXG5wID4+PiAucmVtaW5kZXIgPiBzcGFuOm50aC1vZi10eXBlKDIpe1xuICBkaXNwbGF5OiBub25lO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xuICBib3JkZXI6IDFweCBzb2xpZCAjNmM3NTdkO1xuICBwYWRkaW5nOiAxMHB4IDE1cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDExMHB4O1xuICBsZWZ0OiAxMTBweDtcbn1cbmFydGljbGUgPj4+IC5yZW1pbmRlcjpob3ZlciA+IHNwYW46bnRoLW9mLXR5cGUoMiksXG5kaXYgPj4+IC5yZW1pbmRlcjpob3ZlciA+IHNwYW46bnRoLW9mLXR5cGUoMiksXG5wID4+PiAucmVtaW5kZXI6aG92ZXIgPiBzcGFuOm50aC1vZi10eXBlKDIpLFxucCA+Pj4gLnJlbWluZGVyOmhvdmVyID4gc3BhbjpudGgtb2YtdHlwZSgyKXtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuYXJ0aWNsZSA+Pj4gLmNoYXJhY3RlcixcbmFydGljbGUgPj4+IC5tb25zdGVyLFxuYXJ0aWNsZSA+Pj4gLml0ZW17XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjNmM3NTdkMzM7XG4gICAgcGFkZGluZy10b3A6IDE1cHg7XG59XG5hcnRpY2xlID4+PiBkaXY6Zmlyc3Qtb2YtdHlwZS5jaGFyYWN0ZXIsXG5hcnRpY2xlID4+PiBkaXY6Zmlyc3Qtb2YtdHlwZS5tb25zdGVyLFxuYXJ0aWNsZSA+Pj4gZGl2OmZpcnN0LW9mLXR5cGUuaXRlbXtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xufVxuYXJ0aWNsZSA+Pj4gLnJlcGxhY2VkLXBpY3R1cmV7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi1ib3R0b206IDJlbTtcbn1cbmFydGljbGUgPj4+IC5yZXBsYWNlZC1waWN0dXJlID4gaW1ne1xuICAgIHdpZHRoOiAxMDAlO1xufVxuYXJ0aWNsZSA+Pj4gLnJlcGxhY2VkLXBpY3R1cmUgPiAuem9vbS1idG57XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJvdHRvbTogNXB4O1xuICAgIHJpZ2h0OiA1cHg7XG4gICAgcGFkZGluZzogM3B4IDNweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwNjM7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzZjNzU3ZDg3O1xuICAgIG1pbi13aWR0aDogNDBweDtcbiAgICBtaW4taGVpZ2h0OiA0MHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbmFydGljbGUgPj4+IC5yZXBsYWNlZC1waWN0dXJlID4gLnpvb20tYnRuOmhvdmVye1xuICAgIGNvbG9yOiAjY2RiZDkxO1xufVxuYXJ0aWNsZSA+Pj4gLmNoYXJhY3RlciA+IHAsXG5hcnRpY2xlID4+PiAuY2hhcmFjdGVyID4gaW1nLFxuYXJ0aWNsZSA+Pj4gLm1vbnN0ZXIgPiBwLFxuYXJ0aWNsZSA+Pj4gLm1vbnN0ZXIgPiBpbWcsXG5hcnRpY2xlID4+PiAuaXRlbSA+IHAsXG5hcnRpY2xlID4+PiAuaXRlbSA+IGltZ1xue1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuYXJ0aWNsZSA+Pj4gLmNoYXJhY3RlciA+IGltZyxcbmFydGljbGUgPj4+IC5tb25zdGVyID4gaW1nXG57XG4gICAgcGFkZGluZy10b3A6IDVweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMjBweDtcbiAgICB3aWR0aDogdW5zZXQ7XG59XG5hcnRpY2xlID4+PiAuaXRlbSA+IGltZ1xue1xuICAgIHdpZHRoOiAxMDBweDtcbiAgICBoZWlnaHQ6IDEwMHB4O1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xufVxuYXJ0aWNsZSA+Pj4gLnJlbWluZGVyOmhvdmVyID4gc3BhbjpudGgtb2YtdHlwZSgyKSA+IGltZyxcbmRpdiA+Pj4gLnJlbWluZGVyOmhvdmVyID4gc3BhbjpudGgtb2YtdHlwZSgyKSA+IGltZyxcbnAgPj4+IC5yZW1pbmRlcjpob3ZlciA+IHNwYW46bnRoLW9mLXR5cGUoMikgPiBpbWd7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG59XG5cbmFydGljbGUgPj4+IC5yZW1pbmRlcjpob3ZlciBwLFxuZGl2ID4+PiAucmVtaW5kZXI6aG92ZXIgcCxcbnAgPj4+IC5yZW1pbmRlcjpob3ZlciBwe1xuICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbn1cbmFydGljbGUgPj4+IC5pdGVtIHA6Zmlyc3QtbGV0dGVyLFxuZGl2ID4+PiAuaXRlbSBwOmZpcnN0LWxldHRlcixcbnAgPj4+IC5pdGVtIHA6Zmlyc3QtbGV0dGVyLFxuYXJ0aWNsZSA+Pj4gLml0ZW0gZGl2OmZpcnN0LWxldHRlcixcbmRpdiA+Pj4gLml0ZW0gZGl2OmZpcnN0LWxldHRlcixcbnAgPj4+IC5pdGVtIGRpdjpmaXJzdC1sZXR0ZXJ7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cbmFydGljbGUgPj4+IC5jaGFyYWN0ZXIgcCxcbmFydGljbGUgPj4+IC5tb25zdGVyIHAsXG5hcnRpY2xlID4+PiAuaXRlbSBwIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAwcHggMjBweCAxMHB4ICFpbXBvcnRhbnQ7XG4gICAgYWxpZ24tc2VsZjogc2VsZi1zdGFydDtcbn1cbmFydGljbGUgPj4+IC5jaGFyYWN0ZXIgc3Ryb25nLFxuYXJ0aWNsZSA+Pj4gLm1vbnN0ZXIgc3Ryb25nLFxuYXJ0aWNsZSA+Pj4gLml0ZW0gc3Ryb25nIHtcbiAgICBjb2xvcjogI2NkYmQ5MTtcbn1cbmFydGljbGUgPj4+IC5jaGFyYWN0ZXIgdGFibGUsXG5hcnRpY2xlID4+PiAubW9uc3RlciB0YWJsZSxcbmFydGljbGUgPj4+IC5pdGVtIHRhYmxlIHtcbiAgICBtYXJnaW46IDVweCAyMHB4O1xuICAgIHdpZHRoOiAxMDAlO1xufVxuYXJ0aWNsZSA+Pj4gLmNoYXJhY3RlciA+IGRpdixcbmFydGljbGUgPj4+IC5tb25zdGVyID4gZGl2IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IHNlbGYtc3RhcnQ7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbmFydGljbGUgPj4+IC5pdGVtID4gZGl2IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nLWxlZnQ6IDE1cHg7XG59XG5cbmFydGljbGUgPj4+IGhyOjpiZWZvcmUsXG5hcnRpY2xlID4+PiBocjo6YWZ0ZXJ7XG4gICAgY29udGVudDogJyc7XG4gICAgd2lkdGg6IDEycHg7XG4gICAgaGVpZ2h0OiAxMnB4O1xuICAgIHRyYW5zZm9ybTogcm90YXRlWig0NWRlZyk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzZjNzU3ZDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAtNnB4O1xufVxuYXJ0aWNsZSA+Pj4gaHI6OmJlZm9yZXtcbiAgICBsZWZ0OiAtMTRweDtcbn1cbmFydGljbGUgPj4+IGhyOjphZnRlcntcbiAgICByaWdodDogLTE0cHg7XG59XG5hcnRpY2xlID4+PiBocntcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgIzZjNzU3ZDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IGNhbGMoNzAlIC0gMjhweCk7XG4gICAgbWFyZ2luLXRvcDogMS41cmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbiAgICBvcGFjaXR5OiAuNjtcbn1cbmFydGljbGUgPj4+IC5yZWFkLWl0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwNjM7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBhZGRpbmc6IDdweCAxMHB4O1xufVxuYXJ0aWNsZSA+Pj4gaDEsXG5hcnRpY2xlID4+PiBoMixcbmFydGljbGUgPj4+IGgzLFxuYXJ0aWNsZSA+Pj4gaDQsXG5hcnRpY2xlID4+PiBoNXtcbiAgICBjb2xvcjogI2NkYmQ5MTtcbn1cbmFydGljbGUgPj4+IC55b3V0dWJle1xuICAgIG1hcmdpbjogMzBweCBhdXRvO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1heC13aWR0aDogOTQlO1xufVxuYXJ0aWNsZSA+Pj4gLnlvdXR1YmUtY2FwdGlvbnN7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi10b3A6IC0zMHB4O1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogODUwcHgpe1xuICAgIC5tb2RhbC1kaWFsb2d7XG4gICAgICAgIG1hcmdpbjogMTBweCAyMHB4O1xuICAgIH1cblxuICAgIGFydGljbGUsXG4gICAgYXJ0aWNsZSA+Pj4gcCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMWVtIDMlO1xuICAgIH1cblxuICAgIC5tb2RhbC1jb250ZW50IHtcbiAgICAgICAgLyptYXJnaW4tYm90dG9tOiAxMmVtOyovXG4gICAgICAgIG1hcmdpbi10b3A6IDIuNWVtO1xuICAgIH1cbiAgICAubW9kYWwuc2hvdyAubW9kYWwtZGlhbG9nIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJlbTtcbiAgICB9XG5cbiAgICBhcnRpY2xlID4+PiAuY2hhcmFjdGVyLFxuICAgIGFydGljbGUgPj4+IC5tb25zdGVye1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cbiAgICBhcnRpY2xlID4+PiAuY2hhcmFjdGVyIHAsXG4gICAgYXJ0aWNsZSA+Pj4gLm1vbnN0ZXIgcCB7XG4gICAgcGFkZGluZzogMTBweCAyMHB4IDEwcHggIWltcG9ydGFudDtcbiAgICB9XG5cbn1cbjwvc3R5bGU+IiwiPHRlbXBsYXRlPlxuICA8ZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJtYXBDb250YWluZXJcIiBpZD1cInRoZVdvcmxkTWFwXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwid29ybGRNYXBcIj5cbiAgICAgICAgPGRpdiB2LWZvcj1cImMgaW4gMjJcIiA6a2V5PVwiY1wiIGNsYXNzPVwiaGV4LWNvbFwiPlxuICAgICAgICAgIDxkaXYgdi1mb3I9XCJuIGluIDIzXCIgOmtleT1cIihjKyctJytuKVwiIDpjbGFzcz1cImNlbGxOYW1lKGMsbikgIT0gc2VsZWN0ZWRIZXggPyBnZXREZWZhdWx0Q2xhc3MoY2VsbE5hbWUoYyxuKSk6J2hleGFnb25lIGhleGFnb25lLXNlbGVjdCdcIiA6aWQ9XCJjZWxsTmFtZShjLG4pXCIgQG1vdXNldXA9XCJzZWxlY3RIZXgoY2VsbE5hbWUoYyxuKSlcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGlzcGxheU9uSG92ZXJcIj5cbiAgICAgICAgICAgICAge3tjZWxsTmFtZShjLG4pfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIHYtaWY9XCJjaXRpZXNbY2VsbE5hbWUoYyxuKV0gJiYgZ21Nb2RlXCIgOmNsYXNzPVwiJ2NpdHlOYW1lJytjaXRpZXNbY2VsbE5hbWUoYyxuKV0ubml2ZWF1XCI+XG4gICAgICAgICAgICAgIHt7Y2l0aWVzW2NlbGxOYW1lKGMsbildLm5vbX19XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiB2LWlmPVwicGxheWVyUG9zaXRpb24gPT09IGNlbGxOYW1lKGMsbilcIiBjbGFzcz1cInBsYXllclwiPlxuICAgICAgICAgICAgICA8Zm9udC1hd2Vzb21lLWljb24gOmljb249XCJbJ2ZhcycsICdjaGVzcy1wYXduJ11cIiAvPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxTaWRlQmFyIDpzZWxlY3RlZEhleD1cInNlbGVjdGVkSGV4XCIgQHVuc2VsZWN0SGV4PVwic2VsZWN0ZWRIZXggPSBmYWxzZVwiIEBvcGVuRXZlbnQ9XCJvcGVuRXZlbnQoJGV2ZW50KVwiIDpnbU1vZGU9XCJnbU1vZGVcIi8+XG4gICAgPE1hcEV2ZW50IDpldmVudD1cImRpc3BsYXlcIiA6dmlzaWJsZT1cInNob3dNYXBFdmVudFwiLz5cbiAgICA8ZGl2IDpjbGFzcz1cIihnbU1vZGUpPyd2aWV3TW9kZU9uJzondmlld01vZGVPZmYnXCI+XG4gICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgaWQ9XCJnbU1vZGVcIiBuYW1lPVwiZ21Nb2RlXCIgdi1tb2RlbD1cImdtTW9kZVwiPlxuICAgICAgPGRpdj5cbiAgICAgICAgPGxhYmVsIGZvcj1cImdtTW9kZVwiPjxwPkdNPC9wPjwvbGFiZWw+XG4gICAgICAgIDxzcGFuPjwvc3Bhbj5cbiAgICAgICAgPGxhYmVsIGZvcj1cImdtTW9kZVwiPjxwPkpvdWV1cjwvcD48L2xhYmVsPlxuICAgICAgPC9kaXY+XG5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cblxuPC90ZW1wbGF0ZT5cbjxzY3JpcHQ+XG5pbXBvcnQgU2lkZUJhciBmcm9tIFwiLi4vbWFwL3NpZGVCYXIudnVlXCI7XG5pbXBvcnQgTWFwRXZlbnQgZnJvbSBcIi4uL21hcC9tYXBFdmVudC52dWVcIjtcbmltcG9ydCB7IGxpYnJhcnkgfSBmcm9tIFwiQGZvcnRhd2Vzb21lL2ZvbnRhd2Vzb21lLXN2Zy1jb3JlXCI7XG5pbXBvcnQge2ZhQ2hlc3NQYXdufSBmcm9tIFwiQGZvcnRhd2Vzb21lL2ZyZWUtc29saWQtc3ZnLWljb25zXCI7XG5pbXBvcnQgYXVkaW9FZmZlY3RzIGZyb20gXCIuLi8uLi9vdXRpbHMvYXVkaW9FZmZlY3RzXCI7XG5cbmxpYnJhcnkuYWRkKGZhQ2hlc3NQYXduKTtcbmV4cG9ydCBkZWZhdWx0IHtcbiAgLy9Ob20gZGUgbGEgdnVlXG4gIG5hbWU6IFwid29ybGRtYXBcIixcbiAgaW5qZWN0OlsnZ2V0Q2l0aWVzJywgJ2dldFRlcnJpdG9yeScsJ2dldFJvdXRlJywnZ2V0T3JpZ2luJ10sXG4gIC8vb24gcHJlY2lzZSBsZXMgdnVlcyBxdWkgdm9udCDDqnRyZSBjb21tdW5pcXXDqWUgw6AgbGEgcGFnZVxuICBjb21wb25lbnRzOiB7XG4gICAgU2lkZUJhcixcbiAgICBNYXBFdmVudCxcbiAgfSxcbiAgcHJvcHM6IHtcbiAgfSxcblxuICBkYXRhKCkge1xuICAgIHJldHVybiB7XG4gICAgICBzZWxlY3RlZEhleDogZmFsc2UsXG4gICAgICBkaXNwbGF5OmZhbHNlLFxuICAgICAgcGxheWVyUG9zaXRpb246ZmFsc2UsXG4gICAgICBnbU1vZGU6ZmFsc2UsXG4gICAgICByb3V0ZTp7fSxcbiAgICAgIHNob3dNYXBFdmVudCA6IGZhbHNlLFxuICAgIH07XG4gIH0sXG4gIHByb3ZpZGUoKSB7XG4gICAgcmV0dXJuIHt9O1xuICB9LFxuXG4gIG1ldGhvZHM6IHtcbiAgICBjZWxsTmFtZShjb2wsbnVtKXtcbiAgICAgIGxldCBjb2x1bW4gPSBjb2wgKyAxMDA7XG4gICAgICBsZXQgbGluZSA9IG51bSArIDgzO1xuICAgICAgcmV0dXJuIGNvbHVtbi50b0ZpeGVkKDApLnNsaWNlKC0yKSsnJytsaW5lLnRvRml4ZWQoMCkuc2xpY2UoLTIpO1xuICAgIH0sXG4gICAgZ2V0RGVmYXVsdENsYXNzKGNlbGxOYW1lKXtcbiAgICAgIGxldCBiYXNlID0gJ2hleGFnb25lJztcbiAgICAgIGlmKCF0aGlzLmdtTW9kZSkgcmV0dXJuIGJhc2U7XG5cbiAgICAgIGxldCBjb250ZW50ID0gdGhpcy5nZXRUZXJyaXRvcnkoKTtcblxuICAgICAgaWYoY29udGVudFsnc2hpbnJhaSddLmluY2x1ZGVzKHBhcnNlSW50KGNlbGxOYW1lKSkpIHJldHVybiBiYXNlICsgJyBzaGlucmFpJztcbiAgICAgIGlmKGNvbnRlbnRbJ3NlbmlhdXgnXS5pbmNsdWRlcyhwYXJzZUludChjZWxsTmFtZSkpKSByZXR1cm4gYmFzZSArICcgc2VuaWF1eCc7XG4gICAgICBpZihjb250ZW50Wyd2aWRpZXUnXS5pbmNsdWRlcyhwYXJzZUludChjZWxsTmFtZSkpKSByZXR1cm4gYmFzZSArICcgdmlkaWV1JztcbiAgICAgIGlmKGNvbnRlbnRbJ3NlcnZlbmF0aWYnXS5pbmNsdWRlcyhwYXJzZUludChjZWxsTmFtZSkpKSByZXR1cm4gYmFzZSArICcgc2VydmVuYXRpZic7XG4gICAgICBpZihjb250ZW50WydtZXNhaXZlcyddLmluY2x1ZGVzKHBhcnNlSW50KGNlbGxOYW1lKSkpIHJldHVybiBiYXNlICsgJyBtZXNhaXZlcyc7XG4gICAgICByZXR1cm4gYmFzZTtcbiAgICB9LFxuICAgIHJvdXRlSW5mb3MoKXtcbiAgICAgIC8vUsOpY3Vww6lyYXRpb24gZGVzIHBhcmFtw6h0cmVzIGR1IGdldFxuICAgICAgbGV0IHJvdXRlID0gdGhpcy5nZXRSb3V0ZTtcbiAgICAgIGNvbnNvbGUubG9nKCd3bScscm91dGUpO1xuXG4gICAgICAvL2NvbnN0aXR1dGlvbiBkZSBsYSBsaXN0ZSBkZXMgb25nbGV0cyB2YWxpZGVzXG4gICAgICBsZXQgaWRIZXhMaXN0ID0gW107XG4gICAgICBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKFwiaGV4YWdvbmVcIikuZm9yRWFjaCgoZWwpPT5pZEhleExpc3QucHVzaChlbC5pZCkpO1xuXG4gICAgICAvL2FmZmVjdGF0aW9uIHNpIGJlc29pblxuICAgICAgaWYocm91dGUuaGV4ICYmIGlkSGV4TGlzdC5pbmNsdWRlcyhyb3V0ZS5oZXgpKSB0aGlzLnNlbGVjdGVkSGV4ID0gcm91dGUuaGV4O1xuICAgICAgaWYocm91dGUuZ20gJiYgWyd0JywnZiddLmluY2x1ZGVzKHJvdXRlLmdtKSkgdGhpcy5nbU1vZGUgPSAocm91dGUuZ20gPT09ICd0Jyk7XG4gICAgICBpZihyb3V0ZS5ldmVudCkgdGhpcy5zaG93TWFwRXZlbnQgPSB0cnVlO1xuXG4gICAgfSxcbiAgICBzZWxlY3RIZXgobmV3U2VsZWN0ZWQpe1xuICAgICAgdGhpcy5zZWxlY3RlZEhleCA9IChuZXdTZWxlY3RlZCB8fCBuZXdTZWxlY3RlZCA9PT0gZmFsc2UpID8gbmV3U2VsZWN0ZWQgOiB0aGlzLmdldFJvdXRlKCkuaGV4O1xuICAgICAgd2luZG93Lmhpc3RvcnkucHVzaFN0YXRlKG51bGwsICcnLCBgJHt0aGlzLmdldE9yaWdpbn0vP3RhYj13b3JsZG1hcCZoZXg9JHt0aGlzLnNlbGVjdGVkSGV4fWApO1xuICAgICAgd2luZG93Lmhpc3RvcnkucmVwbGFjZVN0YXRlKG51bGwsICcnLCBgJHt0aGlzLmdldE9yaWdpbn0vP3RhYj13b3JsZG1hcCZoZXg9JHt0aGlzLnNlbGVjdGVkSGV4fWApO1xuICAgICAgYXVkaW9FZmZlY3RzLnBsYXlTRlgoXCIvYXNzZXRzL3NmeC9vcGVuSGVhdnkud2F2XCIsIDAuMyk7XG4gICAgfSxcbiAgICBvcGVuRXZlbnQoZXZlbnQpe1xuICAgICAgdGhpcy5kaXNwbGF5ID0gZXZlbnQ7XG4gICAgfSxcbiAgfSxcbiAgY29tcHV0ZWQ6IHtcbiAgICBjaXRpZXMoKXtcbiAgICAgIHJldHVybiB0aGlzLmdldENpdGllcygpO1xuICAgIH0sXG4gIH0sXG5cbiAgbW91bnRlZCgpIHtcbiAgICBsZXQgbWFwID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIiN0aGVXb3JsZE1hcFwiKTtcbiAgICBpZiAod2luZG93Lm1hdGNoTWVkaWEoXCIobWF4LXdpZHRoOiA4NTBweClcIikubWF0Y2hlcykge1xuICAgICAgbWFwLnNjcm9sbFRvcCA9IDE0NTA7XG4gICAgICBtYXAuc2Nyb2xsTGVmdCA9IDEyMDA7XG4gICAgfSBlbHNlIHtcbiAgICAgIG1hcC5zY3JvbGxUb3AgPSAxMzUwO1xuICAgICAgbWFwLnNjcm9sbExlZnQgPSAzMDA7XG4gICAgfVxuICAgIHRoaXMucm91dGVJbmZvcygpO1xuXG4gIH0sXG4gIHdhdGNoOiB7XG4gICAgc2hvd01hcEV2ZW50OmZ1bmN0aW9uKCl7XG4gICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbW9kYWxNYXBFdmVudCcpLm1vZGFsKHRoaXMuc2hvd01hcEV2ZW50ID8gJ3Nob3cnOiAnaGlkZScpO1xuICAgIH0sXG4gICAgZ21Nb2RlOmZ1bmN0aW9uKCl7XG4gICAgICBhdWRpb0VmZmVjdHMuY2xpY2tTb3VuZHMoKTtcbiAgICB9LFxuICB9LFxufTtcbjwvc2NyaXB0PlxuXG48c3R5bGUgc2NvcGVkPlxuLm1hcENvbnRhaW5lciB7XG4gICAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMzBweCk7XG4gICAgb3ZlcmZsb3c6IHNjcm9sbDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4ud29ybGRNYXBcbntcbiAgd2lkdGg6IDI0NzdweDtcbiAgaGVpZ2h0OiAyOTI5cHg7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnaHR0cHM6Ly93d3cudmFnYWJvbmRzLWpkci5mci9hc3NldHMvaW1hZ2VzL2lsbHVzdHJhdGlvbi9tYXAvbWFwMDMucG5nJyk7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNvdmVyO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgYWxpZ24tY29udGVudDogZmxleC1zdGFydDtcbiAgcGFkZGluZy1sZWZ0OiA1MHB4O1xufVxuLnZpZXdNb2RlT24sXG4udmlld01vZGVPZmZ7XG4gIHBhZGRpbmctdG9wOiAwO1xuICBwb3NpdGlvbiA6YWJzb2x1dGU7XG4gIHRvcDo2MHB4O1xuICBsZWZ0OjIwcHg7XG4gIHotaW5kZXg6NTtcbiAgaGVpZ2h0OiAzMnB4O1xuICB3aWR0aDogOTBweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgYm9yZGVyOiAxcHggc29saWQgYnJvd247XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLnZpZXdNb2RlT2ZmIGRpdixcbi52aWV3TW9kZU9uIGRpdntcbiAgd2lkdGg6IDE4MHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgdHJhbnNpdGlvbjogYWxsIC41cztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4udmlld01vZGVPZmYgc3Bhbixcbi52aWV3TW9kZU9uIHNwYW57XG4gIHdpZHRoOiAzMnB4O1xuICBoZWlnaHQ6IDMycHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGJvcmRlcjoxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIHotaW5kZXg6IDM7XG4gIGZpbHRlcjogZHJvcC1zaGFkb3coMCAwIDNweCByZ2JhKDAsIDAsIDAsIDAuNSkpO1xufVxuXG4udmlld01vZGVPZmYgZGl2e1xuICBtYXJnaW4tbGVmdDogLTYwcHg7XG59XG5cbi52aWV3TW9kZU9uIGxhYmVsLFxuLnZpZXdNb2RlT2ZmIGxhYmVsIHtcblx0d2lkdGg6IDkwcHg7XG5cdGhlaWdodDogMzJweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgY29sb3I6IGJyb3duO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBtYXJnaW4tbGVmdDogLTE1cHg7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuXG59XG5cbi52aWV3TW9kZU9uIGxhYmVsIHAsXG4udmlld01vZGVPZmYgbGFiZWwgcHtcbiAgbWFyZ2luOiA3cHggYXV0bztcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIDQwcHgpO1xuICBmb250LXNpemU6IDAuODVlbTtcbn1cblxuLnZpZXdNb2RlT24gbGFiZWw6Zmlyc3Qtb2YtdHlwZSxcbi52aWV3TW9kZU9mZiBsYWJlbDpmaXJzdC1vZi10eXBlIHtcblx0YmFja2dyb3VuZC1jb2xvcjogYnJvd247XG4gIGNvbG9yOiB3aGl0ZTtcbiAgbWFyZ2luLXJpZ2h0OiAtMTVweDtcbn1cblxuLnZpZXdNb2RlT24gbGFiZWw6Zmlyc3Qtb2YtdHlwZSBwLFxuLnZpZXdNb2RlT2ZmIGxhYmVsOmZpcnN0LW9mLXR5cGUgcHtcbiAgbWFyZ2luLXJpZ2h0OiAxNXB4O1xufVxuXG4udmlld01vZGVPbiBpbnB1dCxcbi52aWV3TW9kZU9mZiBpbnB1dCB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5pbWd7XG4gIHdpZHRoOiA1MDBweDtcbn1cbi5oZXgtY29sIHtcbiAgICBtYXJnaW4tdG9wOiAyMi41cHg7XG59XG4uaGV4LWNvbDpudGgtb2YtdHlwZSgybisxKSB7XG4gICAgcGFkZGluZy10b3A6IDYxLjc1cHg7XG59XG4uaGV4YWdvbmUge1xuICAgIHdpZHRoOiA3MXB4O1xuICAgIGhlaWdodDogMTIzLjVweDtcbiAgICB6LWluZGV4OiAyO1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsMCwwLDApO1xuICAgIGJvcmRlcjowcHggc29saWQgcmVkO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW46IDFweCAxOHB4O1xuICAgIHBhZGRpbmctdG9wOiAycHg7XG59XG4uc2hpbnJhaXtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDIzOCwgMCwgMC4xKTtcbn1cbi5zZW5pYXV4e1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEwNiwgNiwgMTQ1LCAwLjQpO1xufVxuLnZpZGlldXtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDE4NywgMCwgMC4xKTtcbn1cbi5zZXJ2ZW5hdGlme1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDQsIDI1NSwgMC4xKTtcbn1cbi5tZXNhaXZlc3tcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxNiwgMTQ3LCA1NywgMC40KTtcbn1cblxuLmhleGFnb25lID4gc3BhbntcbiAgcG9zaXRpb246IGFic29sdXRlO1xufVxuLmhleGFnb25lID4gc3BhbjpmaXJzdC1vZi10eXBlIHtcbiAgICBmb250LXNpemU6IDIycHg7XG4gICAgdG9wOiAycHg7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogNzFweDtcbiAgICBmb250LXdlaWdodDogbGlnaHRlcjtcbn1cbi5wbGF5ZXIge1xuICAgIGxlZnQ6IDA7XG4gICAgZm9udC1zaXplOiA1ZW07XG4gICAgY29sb3I6IGJyb3duO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRvcDogNnB4O1xufVxuXG4uY2l0eU5hbWUxLFxuLmNpdHlOYW1lMixcbi5jaXR5TmFtZTNcbiB7XG5cdHotaW5kZXg6IDM7XG4gIGNvbG9yOndoaXRlO1xuXHRib3R0b206IDQ1JTtcblx0bWFyZ2luLWJvdHRvbTogMDtcblx0cGFkZGluZy1ib3R0b206IDA7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZmlsdGVyOiBkcm9wLXNoYWRvdygwIDAgMnB4IHJnYmEoMCwgMCwgMCwgMC44KSk7XG4gIGxldHRlci1zcGFjaW5nOiAtMXB4O1xuXHRsZWZ0OiAtMTEzcHg7XG5cblxufVxuXG4vKi5oZXhhZ29uZS1zZWxlY3QgLmNpdHlOYW1lMSxcbi5oZXhhZ29uZS1zZWxlY3QgLmNpdHlOYW1lMixcbi5oZXhhZ29uZS1zZWxlY3QgLmNpdHlOYW1lM3tcbiAgY29sb3I6d2hpdGU7XG59Ki9cbi5jaXR5TmFtZTEge1xuXHRmb250LXNpemU6IDJlbTtcblx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0d2lkdGg6IDMwMHB4O1xuICBmb250LXdlaWdodDogYm9sZGVyO1xuICBmb250LWZhbWlseTogJ01lZGlldmFsU2hhcnAnLCBjdXJzaXZlO1xufVxuXG4uY2l0eU5hbWUyIHtcblx0Zm9udC1zaXplOiAxLjhlbTtcblx0dGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG5cdHdpZHRoOiAzMDBweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcblxufVxuXG4uY2l0eU5hbWUzIHtcblx0Zm9udC1zaXplOiAxLjRlbTtcblx0dGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG5cdHdpZHRoOiAzMDBweDtcbn1cblxuLmhleGFnb25lOmhvdmVye1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwwLDAsLjMpO1xuICAvKmNvbG9yOiBibGFjazsqL1xufVxuXG4uaGV4YWdvbmU6OmJlZm9yZSxcbi5oZXhhZ29uZTo6YWZ0ZXIge1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMTIzLjVweDtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm9yZGVyOiAzNHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci10b3Atd2lkdGg6IDYxLjc1cHg7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogNjEuNzVweDtcbiAgICB0b3A6MDtcbn1cbi5zaGlucmFpOjpiZWZvcmV7XG4gIHJpZ2h0OiAxMDAlO1xuICBib3JkZXItcmlnaHQtY29sb3I6IHJnYmEoMjU1LCAyMzgsIDAsIDAuMSk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLnNoaW5yYWk6OmFmdGVye1xuICBsZWZ0OiAxMDAlO1xuICBib3JkZXItbGVmdC1jb2xvcjogcmdiYSgyNTUsIDIzOCwgMCwgMC4xKTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5zZW5pYXV4OjpiZWZvcmV7XG4gIHJpZ2h0OiAxMDAlO1xuICBib3JkZXItcmlnaHQtY29sb3I6IHJnYmEoMTA2LCA2LCAxNDUsIDAuNCk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLnNlbmlhdXg6OmFmdGVye1xuICBsZWZ0OiAxMDAlO1xuICBib3JkZXItbGVmdC1jb2xvcjogcmdiYSgxMDYsIDYsIDE0NSwgMC40KTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi52aWRpZXU6OmJlZm9yZXtcbiAgcmlnaHQ6IDEwMCU7XG4gIGJvcmRlci1yaWdodC1jb2xvcjogcmdiYSgyNTUsIDE4NywgMCwgMC4xKTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4udmlkaWV1OjphZnRlcntcbiAgbGVmdDogMTAwJTtcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHJnYmEoMjU1LCAxODcsIDAsIDAuMSk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4uc2VydmVuYXRpZjo6YmVmb3Jle1xuICByaWdodDogMTAwJTtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiByZ2JhKDAsIDQsIDI1NSwgMC4xKTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4uc2VydmVuYXRpZjo6YWZ0ZXJ7XG4gIGxlZnQ6IDEwMCU7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiByZ2JhKDAsIDQsIDI1NSwgMC4xKTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5tZXNhaXZlczo6YmVmb3Jle1xuICByaWdodDogMTAwJTtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiByZ2JhKDE2LCAxNDcsIDU3LCAwLjQpO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5tZXNhaXZlczo6YWZ0ZXJ7XG4gIGxlZnQ6IDEwMCU7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiByZ2JhKDE2LCAxNDcsIDU3LCAwLjQpO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLmhleGFnb25lOmhvdmVyOjpiZWZvcmV7XG4gIHJpZ2h0OiAxMDAlO1xuICBib3JkZXItcmlnaHQtY29sb3I6IHJnYmEoMjU1LDAsMCwuMyk7XG59XG4uaGV4YWdvbmU6aG92ZXI6OmFmdGVye1xuICBsZWZ0OiAxMDAlO1xuICBib3JkZXItbGVmdC1jb2xvcjogcmdiYSgyNTUsMCwwLC4zKTtcbn1cblxuLmhleGFnb25lLXNlbGVjdCxcbi5oZXhhZ29uZS1zZWxlY3Q6aG92ZXJ7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LDAsMCwuNzMpO1xuICAvKmNvbG9yOiBibGFjazsqL1xufVxuXG4uaGV4YWdvbmUtc2VsZWN0OjpiZWZvcmUsXG4uaGV4YWdvbmUtc2VsZWN0OmhvdmVyOjpiZWZvcmVcbntcbiAgcmlnaHQ6IDEwMCU7XG4gIGJvcmRlci1yaWdodC1jb2xvcjogcmdiYSgyNTUsMCwwLC43Myk7XG59XG4uaGV4YWdvbmUtc2VsZWN0OjphZnRlcixcbi5oZXhhZ29uZS1zZWxlY3Q6aG92ZXI6OmFmdGVye1xuICBsZWZ0OiAxMDAlO1xuICBib3JkZXItbGVmdC1jb2xvcjogcmdiYSgyNTUsMCwwLC43Myk7XG59XG4uZGlzcGxheU9uSG92ZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG4uaGV4YWdvbmUtc2VsZWN0IC5kaXNwbGF5T25Ib3Zlcixcbi5oZXhhZ29uZTpob3ZlciAuZGlzcGxheU9uSG92ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogODUwcHgpe1xuICAubWFwQ29udGFpbmVyIHtcbiAgICBoZWlnaHQ6IDEwMHZoO1xufVxuXG4gIC52aWV3TW9kZU9uLFxuICAudmlld01vZGVPZmZ7XG4gICAgbGVmdDp1bnNldDtcbiAgICB0b3A6MjVweDtcbiAgICByaWdodDpjYWxjKDUwJSAtIDQ1cHgpO1xuICAgIGhlaWdodDogMzRweDtcbiAgfVxuICAudmlld01vZGVPbiBsYWJlbCBwLFxuICAudmlld01vZGVPZmYgbGFiZWwgcHtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMzBweCk7XG4gIH1cbn1cbjwvc3R5bGU+XG4iLCI8dGVtcGxhdGU+XG48ZGl2IGNsYXNzPVwibWFpbnNjcmVlblwiPlxuICAgIDxhcnRpY2xlPlxuICAgICAgPGRpdj5cbiAgICAgICAgPGgxPlJlam9pbmRyZSB1bmUgcGFydGllPC9oMT5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInJhZGlvXCIgaWQ9XCJhbGxcIiBuYW1lPVwiZmlsdGVyXCIgdmFsdWU9XCJhbGxcIiB2LW1vZGVsPVwiZGlzcGxheWVkR2FtZXNcIiBAY2hhbmdlPVwiZGlzcGxheWVkR2FtZXNDaGFuZ2UoKVwiPlxuICAgICAgICAgIDxsYWJlbCBmb3I9XCJhbGxcIj5QYXJ0aWVzIHB1YmxpcXVlczwvbGFiZWw+XG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJyYWRpb1wiIGlkPVwic2VsZlwiIG5hbWU9XCJmaWx0ZXJcIiB2YWx1ZT1cInNlbGZcIiB2LW1vZGVsPVwiZGlzcGxheWVkR2FtZXNcIiBAY2hhbmdlPVwiZGlzcGxheWVkR2FtZXNDaGFuZ2UoKVwiPlxuICAgICAgICAgIDxsYWJlbCBmb3I9XCJzZWxmXCI+TWVzIFBhcnRpZXM8L2xhYmVsPlxuXG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8dWw+XG4gICAgICAgICAgPGxpPlxuICAgICAgICAgICAgPHNwYW4+UGFydGllPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4+TWHDrnRyZSBkdSBqZXU8L3NwYW4+XG4gICAgICAgICAgICA8c3Bhbj5EYXRlIGRlIGNyw6lhdGlvbjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuPlBsYWNlczwvc3Bhbj5cbiAgICAgICAgICA8L2xpPlxuICAgICAgICA8L3VsPlxuICAgICAgICA8dWw+XG4gICAgICAgICAgPGxpIHYtZm9yPVwicGFydGllIGluIHBhcnRpZXNcIiA6a2V5PVwicGFydGllLmlkXCIgQGNsaWNrPVwic2VsZWN0ZWRHYW1lID0gcGFydGllXCIgOmNsYXNzPVwiKHBhcnRpZS5pZCA9PSBzZWxlY3RlZEdhbWUuaWQpPydzZWxlY3RlZCc6JydcIj5cbiAgICAgICAgICAgIDxzcGFuPnt7cGFydGllLm5vbX19PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4+e3twYXJ0aWUubm9tVXNlckdtfX08L3NwYW4+XG4gICAgICAgICAgICA8c3Bhbj57e2RhdGUocGFydGllLmNyZWF0ZURhdGUudGltZXN0YW1wKX19PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4+e3twYXJ0aWUucGxheWVycy5sZW5ndGh9fS97e3BhcnRpZS5wbGFjZXN9fTwvc3Bhbj5cbiAgICAgICAgICA8L2xpPlxuICAgICAgICA8L3VsPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYnRuLWdhbWVcIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tc3VjY2Vzc1wiIGRhdGEtdG9nZ2xlPVwibW9kYWxcIiBkYXRhLXRhcmdldD1cIiNNb2RhbGVOZXdHYW1lXCIgPk5vdXZlbGxlIFBhcnRpZTwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgdi1pZj1cInNlbGVjdGVkR2FtZS5ub21cIiBjbGFzcz1cImRldGFpbHNcIiA6c3R5bGU9XCJgYmFja2dyb3VuZC1pbWFnZTogdXJsKCR7ZGlzcGxheS5pbWd9KWBcIj5cbiAgICAgICAgPGgzIHYtaWY9XCJzZWxlY3RlZEdhbWUuaWRVc2VyR20gPT0gdXNlcl9pbmZvcy5pZFwiPk1hw650cmUgZHUgamV1PC9oMz5cbiAgICAgICAgPGgzIHYtZWxzZT5Kb3VldXI8L2gzPlxuICAgICAgICA8c3Bhbj57e3NlbGVjdGVkR2FtZS5ub20gfHwgJy0nfX08L3NwYW4+XG4gICAgICAgIDxzcGFuPnt7c2VsZWN0ZWRHYW1lLm5vbVVzZXJHbSB8fCAnLSd9fTwvc3Bhbj5cbiAgICAgICAgPHNwYW4+e3tkYXRlKHNlbGVjdGVkR2FtZS5jcmVhdGVEYXRlLnRpbWVzdGFtcCwgdHJ1ZSl9fTwvc3Bhbj5cbiAgICAgICAgPHNwYW4+Sm91ZXVycyAoe3tzZWxlY3RlZEdhbWUucGxheWVycy5sZW5ndGh9fS97e3NlbGVjdGVkR2FtZS5wbGFjZXMgfHwgJzAnfX0pIDwvc3Bhbj5cbiAgICAgICAgPGJyLz5cbiAgICAgICAgPHNwYW4gdi1mb3I9XCJwbGF5ZXIgaW4gc2VsZWN0ZWRHYW1lLnBsYXllcnNcIiA6a2V5PVwicGxheWVyLmlkVXNlclwiIGNsYXNzPVwicGxheWVyLWxpbmVcIj5cbiAgICAgICAgICA8YSBjbGFzcz1cImltZy1wbGF5ZXJcIiA6dGl0bGU9XCJwbGF5ZXIuaWRlbnRpZmlhbnRcIiA6aHJlZj1cImAvaW5kZXgucGhwL3VzZXIvJHtwbGF5ZXIuaWR9YFwiIDpzdHlsZT1cInBsYXllci5pbWcgPyBgYmFja2dyb3VuZC1pbWFnZTogdXJsKCR7cGxheWVyLmltZ30pYCA6IGBgXCI+PC9hPlxuICAgICAgICAgIDxzcGFuPnt7cGxheWVyLnBlcnNvbm5hZ2VzLmNoYXJhY3RlcnNbcGxheWVyLnBlcnNvbm5hZ2VzLmNoYXJhY3RlcnMubGVuZ3RoLTFdLm5hbWV9fTwvc3Bhbj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicGxheWVyLWRldGFpbHNcIiA6c3R5bGU9XCJwbGF5ZXIuaW1nID8gYGJhY2tncm91bmQtaW1hZ2U6IHVybCgke3BsYXllci5pbWd9KWAgOiBgYFwiPlxuICAgICAgICAgICAgPHA+e3twbGF5ZXIuaWRlbnRpZmlhbnR9fTwvcD5cbiAgICAgICAgICAgIDxkaXY+PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPHNwYW4gdi1mb3I9XCJuIGluIHNlbGVjdGVkR2FtZS5wbGFjZXMgLSBzZWxlY3RlZEdhbWUucGxheWVycy5sZW5ndGhcIiBjbGFzcz1cInBsYXllci1saW5lXCI+PGE+PC9hPjxzcGFuPkVtcGxhY2VtZW50IGxpYnJlPC9zcGFuPjwvc3Bhbj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tc3VjY2Vzc1wiIHN0eWxlPVwibWFyZ2luLXRvcDogYXV0bztcIiBAY2xpY2s9XCJzZWxlY3RHYW1lKEpTT04uc3RyaW5naWZ5KHNlbGVjdGVkR2FtZSkpXCI+U8OpbGVjdGlvbm5leiBjZXR0ZSBwYXJ0aWU8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiB2LWVsc2UgY2xhc3M9XCJkZXRhaWxzXCI+XG4gICAgICAgIDxzcGFuPlPDqWxlY3Rpb25uZXogdW5lIHBhcnRpZTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvYXJ0aWNsZT5cblxuPC9kaXY+XG48L3RlbXBsYXRlPlxuPHNjcmlwdD5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgLy9Ob20gZGUgbGEgdnVlXG4gIG5hbWU6IFwiZ2FtZXNMaXN0XCIsXG4gIGluamVjdDpbJ2dldFVzZXJJbmZvcycsJ2dldENvbnRlbnQnLCdnZXRPcGVuR2FtZScsJ3JlZnJlc2hHYW1lc0J5VXNlciddLFxuICBwcm9wczoge1xuICAgIHBhcnRpZXM6e30sXG4gIH0sXG4gIGRhdGEoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNlbGVjdGVkR2FtZTp7fSxcbiAgICAgIERlZmF1bHQ6e1xuICAgICAgICBub206J1pvbmUgSW5leHBsb3LDqWUnLFxuICAgICAgICBkZXNjcmlwdGlvbjonQ2V0dGUgcGFydGllIGR1IG1vbmRlIG5cXCdlc3QgcGFzIGVuY29yZSBkw6ljcml0ZS4gTlxcJ2jDqXNpdGV6IHBhcyDDoCBwcm9wb3NlciBkZXMgY2hvc2VzLicsXG4gICAgICAgIGRlc2NyaXB0aW9uR00gOiAnJyxcbiAgICAgICAgbG9jYWw6W10sXG4gICAgICAgIGltZzonaHR0cHM6Ly93d3cudmFnYWJvbmRzLWpkci5mci9hc3NldHMvaW1hZ2VzL2lsbHVzdHJhdGlvbi9oZXgvUGxhaW5zMS5qcGcnXG4gICAgICB9LFxuICAgICAgZGlzcGxheWVkR2FtZXM6XCJzZWxmXCIsXG4gICAgfTtcbiAgfSxcbiAgY29tcHV0ZWQ6e1xuICAgIHVzZXJfaW5mb3M6IGZ1bmN0aW9uKCl7XG4gICAgICByZXR1cm4gdGhpcy5nZXRVc2VySW5mb3MoKTtcbiAgICB9LFxuICAgIGNvbnRlbnQoKXtcbiAgICAgIHJldHVybiB0aGlzLmdldENvbnRlbnQoKTtcbiAgICB9LFxuICAgIGRpc3BsYXkoKXtcbiAgICAgIGxldCBkaXNwbGF5ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLkRlZmF1bHQpKTtcblxuICAgICAgaWYoIXRoaXMuc2VsZWN0ZWRHYW1lLnBvc2l0aW9uR3JvdXBlIHx8ICF0aGlzLmNvbnRlbnQgfHwgIXRoaXMuY29udGVudFt0aGlzLnNlbGVjdGVkR2FtZS5wb3NpdGlvbkdyb3VwZV0pIHJldHVybiBkaXNwbGF5O1xuXG4gICAgICBsZXQgY29udGVudFNjb3BlZCA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5jb250ZW50W3RoaXMuc2VsZWN0ZWRHYW1lLnBvc2l0aW9uR3JvdXBlXSkpO1xuICAgICAgaWYoY29udGVudFNjb3BlZC5ub20pIGRpc3BsYXkubm9tID0gY29udGVudFNjb3BlZC5ub207XG4gICAgICBpZihjb250ZW50U2NvcGVkLmRlc2NyaXB0aW9uKSBkaXNwbGF5LmRlc2NyaXB0aW9uID0gY29udGVudFNjb3BlZC5kZXNjcmlwdGlvbjtcbiAgICAgIGlmKGNvbnRlbnRTY29wZWQuZGVzY3JpcHRpb25HTSkgZGlzcGxheS5kZXNjcmlwdGlvbkdNID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShjb250ZW50U2NvcGVkLmRlc2NyaXB0aW9uR00pKTtcbiAgICAgIGlmKGNvbnRlbnRTY29wZWQubG9jYWwpIGRpc3BsYXkubG9jYWwgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGNvbnRlbnRTY29wZWQubG9jYWwpKTtcbiAgICAgIGlmKGNvbnRlbnRTY29wZWQuaW1nKSBkaXNwbGF5LmltZyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoY29udGVudFNjb3BlZC5pbWcpKTtcblxuICAgICAgcmV0dXJuIGRpc3BsYXk7XG4gICAgfSxcbiAgfSxcbiAgbWV0aG9kczp7XG4gICAgZGF0ZTpmdW5jdGlvbih0aW1lc3RhbXAsIGZ1bGwgPSBmYWxzZSl7XG4gICAgICBsZXQgZGF0ZSA9IG5ldyBEYXRlKHRpbWVzdGFtcCoxMDAwKTtcbiAgICAgIGxldCBub3cgPSBuZXcgRGF0ZSgpO1xuICAgICAgaWYoZnVsbCkgcmV0dXJuIGAke2RhdGUuZ2V0RGF0ZSgpPDEwID8gJzAnIDogJyd9JHtkYXRlLmdldERhdGUoKX0vJHtkYXRlLmdldE1vbnRoKCk8MTAgPyAnMCcgOiAnJ30ke2RhdGUuZ2V0TW9udGgoKSsxfS8ke2RhdGUuZ2V0RnVsbFllYXIoKX0gJHtkYXRlLmdldEhvdXJzKCl9OiR7ZGF0ZS5nZXRNaW51dGVzKCk8MTAgPyAnMCcgOiAnJ30ke2RhdGUuZ2V0TWludXRlcygpfWA7XG4gICAgICAvL3NpICsgZCd1biBhblxuICAgICAgaWYoZGF0ZS5nZXRGdWxsWWVhcigpICE9PSBub3cuZ2V0RnVsbFllYXIoKSkgcmV0dXJuIGAke2RhdGUuZ2V0TW9udGgoKSsxPDEwID8gMCA6ICcnfSR7ZGF0ZS5nZXRNb250aCgpKzF9LyR7ZGF0ZS5nZXRGdWxsWWVhcigpfWA7XG4gICAgICAvL3NpIHBsdXMgZCd1bmUgam91cm7DqWVcbiAgICAgIGlmKGRhdGUuZ2V0TW9udGgoKSAhPT0gbm93LmdldE1vbnRoKCkgfHwgZGF0ZS5nZXREYXRlKCkgIT09IG5vdy5nZXREYXRlKCkgKSByZXR1cm4gYCR7ZGF0ZS5nZXREYXRlKCk8MTAgPyAnMCcgOiAnJ30ke2RhdGUuZ2V0RGF0ZSgpfS8ke2RhdGUuZ2V0TW9udGgoKTwxMCA/ICcwJyA6ICcnfSR7ZGF0ZS5nZXRNb250aCgpKzF9YDtcbiAgICAgIC8vc2lub25cbiAgICAgIHJldHVybiBgJHtkYXRlLmdldEhvdXJzKCk8MTAgPyAnMCcgOiAnJ30ke2RhdGUuZ2V0SG91cnMoKX06JHtkYXRlLmdldE1pbnV0ZXMoKTwxMCA/ICcwJyA6ICcnfSR7ZGF0ZS5nZXRNaW51dGVzKCl9YDtcblxuICAgIH0sXG4gICAgc2VsZWN0R2FtZShqc29uUGFydGllKXtcbiAgICAgIHRoaXMuZ2V0T3BlbkdhbWUoanNvblBhcnRpZSlcbiAgICB9LFxuICAgIGRpc3BsYXllZEdhbWVzQ2hhbmdlKCl7XG4gICAgICB0aGlzLnJlZnJlc2hHYW1lc0J5VXNlcih0aGlzLmRpc3BsYXllZEdhbWVzID09PSAnc2VsZicgPyB0aGlzLnVzZXJfaW5mb3MuaWQgOiBudWxsKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRHYW1lID0ge307XG4gICAgfVxuICB9LFxuICBtb3VudGVkKClcbiAge1xuICB9XG59O1xuPC9zY3JpcHQ+XG5cbjxzdHlsZSBzY29wZWQ+XG4ubWFpbnNjcmVlbiB7XG4gICAgbWFyZ2luOiAwIDglIDAgMTUlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMTBhMTM7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgei1pbmRleDogMDtcbiAgICBwYWRkaW5nOiAyJSAwIDIlIDIlO1xuICAgIHBhZGRpbmctdG9wOiAwcHg7XG4gICAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAwcHg7XG4gICAgYm9yZGVyLWNvbG9yOiAjY2NjM2E3O1xuICAgIHBhZGRpbmctYm90dG9tOiAwcHg7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG5hcnRpY2xlIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiA1cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMzgwcHg7XG4gICAgcGFkZGluZy10b3A6IDBweDtcbn1cbi5kZXRhaWxze1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYm9yZGVyOjFweCBibGFjayBzb2xpZDtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBwYWRkaW5nOiAxNjBweCA1cHggMzBweDtcbn1cbmgxe1xuICBtYXJnaW4tdG9wOiA1MHB4O1xufVxuaDN7XG4gIHRleHQtYWxpZ246Y2VudGVyO1xufVxudWx7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmctYmxvY2stc3RhcnQ6IDA7XG4gIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAwO1xuICBtYXJnaW4tYm90dG9tOiAwIDtcbn1cbnVsOm5vdCg6Zmlyc3Qtb2YtdHlwZSl7XG4gIGJvcmRlcjoxcHggd2hpdGUgc29saWQ7XG4gIG1pbi1oZWlnaHQ6IDUwMHB4O1xufVxubGl7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtcm93czogMWZyO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAyNTBweCAxODBweCA0MHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDJweCA3cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG59XG51bDpub3QoOmZpcnN0LW9mLXR5cGUpPmxpe1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbmxpPnNwYW46Zmlyc3Qtb2YtdHlwZXtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi5wbGF5ZXItbGluZXtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDgyZGVnLCByZ2JhKDAsMCwwLDApIDAlLCByZ2JhKDAsMCwwLC43NSkgMTAlLCByZ2JhKDAsMCwwLC43NSkgOTAlLCByZ2JhKDAsMCwwLDApIDEwMCUpO1xuICBtYXJnaW46IDFweDtcbiAgZGlzcGxheTogZ3JpZDtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDVweDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAzNnB4IDFmcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgaGVpZ2h0OiA0NnB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5icisucGxheWVyLWxpbmV7XG4gIG1hcmdpbi10b3A6IDIwcHg7XG59XG4ucGxheWVyLWxpbmUgPiBhe1xuICB3aWR0aDogMzZweDtcbiAgaGVpZ2h0OiAzNnB4O1xuICBib3JkZXI6IDFweCBzb2xpZCBibGFjaztcbiAgYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgcmdiKDI3LCAyNywgMjcpIDAlLCByZ2IoMjcsIDI3LCAyNykgNSUsIHJnYigxMCwgMTAsIDEwKSAxMDAlKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDUwJTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4gYS5pbWctcGxheWVye1xuICBib3JkZXItY29sb3I6ICNmMGU2ZDI7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwczovL3ZhZ2Fib25kcy1qZHIuZ2l0aHViLmlvL2ltYWdlcy9ldmVudHMvcGxhY2Vob2xkZXIuanBnKTtcbn1cbi5wbGF5ZXItbGluZSA+IHNwYW46Zmlyc3Qtb2YtdHlwZXtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICBwYWRkaW5nLXRvcDogLjRlbTtcbn1cbi5wbGF5ZXItZGV0YWlsc3tcbiAgd2lkdGg6IDEzMnB4O1xuICBoZWlnaHQ6IDcwcHg7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG4gIGxlZnQ6IC0xNDdweDtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cHM6Ly92YWdhYm9uZHMtamRyLmdpdGh1Yi5pby9pbWFnZXMvZXZlbnRzL3BsYWNlaG9sZGVyLmpwZyk7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMxZTI4MmQ7XG4gIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG59XG4ucGxheWVyLWRldGFpbHM6OmFmdGVye1xuICB3aWR0aDogMjVweDtcbiAgaGVpZ2h0OiAyNXB4O1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3JkZXI6IDEyLjVweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWxlZnQtY29sb3I6IGJsYWNrO1xuICBsZWZ0OiAxMzJweDtcbiAgY29udGVudDogJyc7XG4gIHotaW5kZXg6IDI7XG4gIHRvcDogMjIuNXB4O1xufVxuLnBsYXllci1kZXRhaWxzPmRpdntcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoLTQ1ZGVnLCByZ2JhKDAsMCwwLDEpIDE5JSwgcmdiYSgwLDAsMCwwLjgpIDQwJSwgcmdiYSgwLDAsMCwwKSAxMDAlKTtcbiAgei1pbmRleDogMDtcbiAgdG9wOiAwO1xufVxuLnBsYXllci1kZXRhaWxzPnB7XG4gIHotaW5kZXg6IDE7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG4gIG1hcmdpbi10b3A6IDMwcHg7XG4gIGZvbnQtc2l6ZTogMS4xZW07XG59XG4ucGxheWVyLWxpbmU6aG92ZXIgPiAucGxheWVyLWRldGFpbHN7XG5kaXNwbGF5OiBibG9jaztcbn1cbi5zZWxlY3RlZHtcbiAgYmFja2dyb3VuZC1jb2xvcjogZGFya2JsdWU7XG59XG4uYnRuLWdhbWV7XG4gIHBhZGRpbmc6IDE1cHggMTVweCAzMHB4O1xufVxuLyouYnRuLWdhbWUgYnV0dG9ue1xuICBib3JkZXI6c29saWQgMXB4ICNmMGU2ZDI7XG4gIGNvbG9yOiAjZjBlNmQyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBicm93bjtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIHBhZGRpbmc6IDRweCAxNXB4IDRweDtcbn0qL1xuXG5cbi5idG4uYnRuLXN1Y2Nlc3Mge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGJyb3duO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg4MmRlZywgcmdiYSgwLDAsMCwwKSAwJSwgcmdiYSgwLDAsMCwuNzUpIDIwJSwgcmdiYSgwLDAsMCwuNzUpIDgwJSwgcmdiYSgwLDAsMCwwKSAxMDAlKTtcbiAgICBib3JkZXItY29sb3I6IGJyb3duO1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBib3JkZXItaW1hZ2U6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSgxMzEsMTI4LDE1MCwwKSwgI2E1MWYxZiwgI2E1MWYxZiwgcmdiYSgxMzEsMTI4LDE1MCwwKSkgMjc7XG4gICAgYm9yZGVyLWltYWdlLXJlcGVhdDogc3RyZXRjaDtcbiAgICBib3JkZXItaW1hZ2Utd2lkdGg6IDFweCAwO1xuICAgIHBhZGRpbmc6IDRweCAxNXB4IDRweDtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICBjb2xvcjogI2ZmMGYwZjtcbiAgICBsZXR0ZXItc3BhY2luZzogMnB4O1xuICAgIGZvbnQtZmFtaWx5OiAnTWVkaWV2YWxTaGFycCcsIGN1cnNpdmU7XG4gICAgb3V0bGluZTpub25lO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG59XG5cbi5idG4tc3VjY2Vzczpub3QoOmRpc2FibGVkKTpob3Zlcixcbi5idG4tc3VjY2Vzczpub3QoOmRpc2FibGVkKTpmb2N1cyxcbi5idG4tc3VjY2Vzczpub3QoOmRpc2FibGVkKTpmb2N1cy12aXNpYmxle1xuICBjb2xvcjogI2YwZTZkMjtcbiAgdGV4dC1zaGFkb3c6IDBweCAwcHggMnB4IHdoaXRlLCAwIDAgMjVweCAjZjBlNmQyO1xuICBib3JkZXItaW1hZ2U6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSgxMzEsMTI4LDE1MCwwKSwgYnJvd24sIGJyb3duLCByZ2JhKDEzMSwxMjgsMTUwLDApKSAyNztcblxufVxuLmJ0bi1zdWNjZXNzOm5vdCg6ZGlzYWJsZWQpOmFjdGl2ZSxcbi5zaG93Pi5idG4tc3VjY2Vzcy5kcm9wZG93bi10b2dnbGUge1xuICAgIGNvbG9yOiAjZjBlNmQyO1xuICAgIGJvcmRlci1jb2xvcjogI2YwZTZkMjtcbiAgICBib3JkZXItaW1hZ2U6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSgxMzEsMTI4LDE1MCwwKSwgI2YwZTZkMiwgI2YwZTZkMiwgcmdiYSgxMzEsMTI4LDE1MCwwKSkgMjc7XG4gICAgYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgcmdiYSgyNTUsMjU1LDI1NSwwLjI1KSAwJSwgcmdiYSgxMzEsMTI4LDE1MCwwLjAyKSAxMDAlKTtcblxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogODUwcHgpe1xuICAgIC5tYWluc2NyZWVuIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDUwcHg7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGxlZnQ6IDAlO1xuICAgICAgICByaWdodDogMCU7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgfVxufVxuPC9zdHlsZT5cbiIsIjx0ZW1wbGF0ZT5cbjxkaXYgY2xhc3M9XCJtYWluc2NyZWVuXCI+XG4gICAgPGFydGljbGU+XG4gICAgICA8YnV0dG9uIEBjbGljaz1cImdldE9wZW5HYW1lKG51bGwpXCI+IDwgTGlzdGUgZGVzIHBhcnRpZXM8L2J1dHRvbj5cbiAgICAgIDxoMT57eyBnYW1lX2RhdGFzLm5vbSB9fTwvaDE+XG4gICAgICA8ZGl2IGNsYXNzPVwibGVmdC1wYW5lbFwiPlxuICAgICAgPGJ1dHRvbiB2LWlmPVwidXNlcl9pc19nbVwiIGRhdGEtdG9nZ2xlPVwibW9kYWxcIiBkYXRhLXRhcmdldD1cIiNjb25maXJtTW9kYWxcIiBAY2xpY2s9XCJpbnZpdGVQbGF5ZXIoKVwiPkludml0ZXIgdW4gam91ZXVyPC9idXR0b24+XG4gICAgICAgIDx1bD5cbiAgICAgICAgICA8bGkgOmNsYXNzPVwiYHBsYXllci1saW5lICR7Z2FtZV9kYXRhcy5pZFVzZXJHbSA9PSB1c2VyX2luZm9zLmlkID8gJ21lJzonJ31gXCI+XG4gICAgICAgICAgICA8YSBjbGFzcz1cImltZy1wbGF5ZXJcIiA6aHJlZj1cImAvaW5kZXgucGhwL3VzZXIvJHtnYW1lX2RhdGFzLmlkVXNlckdtfWBcIiA6c3R5bGU9XCJgYmFja2dyb3VuZC1pbWFnZTogdXJsKCR7Z2FtZV9kYXRhcy5pbWdVc2VyR20gfHwgJ2h0dHBzOi8vdmFnYWJvbmRzLWpkci5naXRodWIuaW8vaW1hZ2VzL2V2ZW50cy9wbGFjZWhvbGRlci5qcGcnfSlgXCI+PC9hPlxuICAgICAgICAgICAgPHNwYW4+TWHDrnRyZSBkZSBqZXUgOiB7eyBnYW1lX2RhdGFzLm5vbVVzZXJHbX19PC9zcGFuPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBsYXllci1kZXRhaWxzXCIgOnN0eWxlPVwiZ2FtZV9kYXRhcy5pbWdVc2VyR20gPyBgYmFja2dyb3VuZC1pbWFnZTogdXJsKCR7Z2FtZV9kYXRhcy5pbWdVc2VyR219KWAgOiBgYFwiPlxuICAgICAgICAgICAgICA8cD57e2dhbWVfZGF0YXMubm9tVXNlckdtfX08L3A+XG4gICAgICAgICAgICAgIDxkaXY+PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2xpPlxuICAgICAgICAgIDxsaSB2LWZvcj1cIihwbGF5ZXIsIGluZGV4KSBpbiBnYW1lX2RhdGFzLnBsYXllcnNcIiA6a2V5PVwiaW5kZXhcIiA6Y2xhc3M9XCJgcGxheWVyLWxpbmUgJHtwbGF5ZXIuaWQgPT0gdXNlcl9pbmZvcy5pZCA/ICdtZSc6Jyd9YFwiPlxuICAgICAgICAgICAgPGEgY2xhc3M9XCJpbWctcGxheWVyXCIgOmhyZWY9XCJgL2luZGV4LnBocC91c2VyLyR7cGxheWVyLmlkfWBcIiA6c3R5bGU9XCJgYmFja2dyb3VuZC1pbWFnZTogdXJsKCR7cGxheWVyLmltZyB8fCAnaHR0cHM6Ly92YWdhYm9uZHMtamRyLmdpdGh1Yi5pby9pbWFnZXMvZXZlbnRzL3BsYWNlaG9sZGVyLmpwZyd9KWBcIj48L2E+XG4gICAgICAgICAgICA8c3Bhbj57eyBwbGF5ZXIuaWRlbnRpZmlhbnQgfX0gLSB7eyBwbGF5ZXIucGVyc29ubmFnZXMuY2hhcmFjdGVyc1swXS5uYW1lIHx8ICdwYXMgZGUgcGVyc29ubmFnZSd9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxidXR0b24gdi1pZj1cInVzZXJfaXNfZ21cIlxuICAgICAgICAgICAgICB0aXRsZT1cImV4Y2x1cmUgbGUgam91ZXVyXCJcbiAgICAgICAgICAgICAgZGF0YS10b2dnbGU9XCJtb2RhbFwiIGRhdGEtdGFyZ2V0PVwiI2NvbmZpcm1Nb2RhbFwiIEBjbGljaz1cImJhbihwbGF5ZXIpXCJcbiAgICAgICAgICAgID5YPC9idXR0b24+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGxheWVyLWRldGFpbHNcIiA6c3R5bGU9XCJwbGF5ZXIuaW1nID8gYGJhY2tncm91bmQtaW1hZ2U6IHVybCgke3BsYXllci5pbWd9KWAgOiBgYFwiPlxuICAgICAgICAgICAgICA8cD57e3BsYXllci5pZGVudGlmaWFudH19PC9wPlxuICAgICAgICAgICAgICA8ZGl2PjwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8L2xpPlxuICAgICAgICAgIDxsaSB2LWZvcj1cIm4gaW4gZ2FtZV9kYXRhcy5wbGFjZXMgLSBnYW1lX2RhdGFzLnBsYXllcnMubGVuZ3RoXCIgOmtleT1cIm5cIiBjbGFzcz1cInBsYXllci1saW5lXCI+XG4gICAgICAgICAgICA8YT48L2E+PHNwYW4+RW1wbGFjZW1lbnQgbGlicmU8L3NwYW4+XG4gICAgICAgICAgPC9saT5cbiAgICAgICAgPC91bD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInJpZ2h0LXBhbmVsXCI+XG4gICAgICAgIDxoMz5Sw6lnbGFnZXMgZGUgbGEgcGFydGllPC9oMz5cbiAgICAgICAgPGJ1dHRvbiB2LWlmPVwidXNlcl9pc19nbVwiPk1vZGlmaWVyIGxlcyBSw6lnbGFnZXM8L2J1dHRvbj5cbiAgICAgICAgPHVsPlxuICAgICAgICAgIDxsaT48c3Bhbj5WaXNpYmlsaXTDqSA6PC9zcGFuPiB7eyBnYW1lX2RhdGFzLnB1YmxpYyA/ICdwdWJsaXF1ZScgOiAncHJpdsOpZScgfX08L2xpPlxuICAgICAgICAgIDxsaT48c3Bhbj5Ob21icmUgZGUgam91ZXVycyBtYXhpbXVtOjwvc3Bhbj4ge3sgZ2FtZV9kYXRhcy5wbGFjZXMgfX08L2xpPlxuICAgICAgICA8L3VsPlxuICAgICAgICA8YnV0dG9uIHYtaWY9XCJ1c2VyX2lzX2dtXCI+Qm91dG9uIGR1IE1KPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gdi1lbHNlLWlmPVwidXNlcl9pc19wbGF5ZXIgPj0gMFwiIGNsYXNzPVwiYnRuIGJ0bi1zdWNjZXNzXCIgZGF0YS10b2dnbGU9XCJtb2RhbFwiIGRhdGEtdGFyZ2V0PVwiI2NvbmZpcm1Nb2RhbFwiIEBjbGljaz1cImxlYXZlR2FtZSgpXCI+UXVpdHRlciBsYSBwYXJ0aWU8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiB2LWVsc2UgY2xhc3M9XCJidG4gYnRuLXN1Y2Nlc3NcIiBkYXRhLXRvZ2dsZT1cIm1vZGFsXCIgZGF0YS10YXJnZXQ9XCIjY29uZmlybU1vZGFsXCIgQGNsaWNrPVwiam9pbkdhbWUoKVwiPkRldmVuaXIgam91ZXVyPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2FydGljbGU+XG48L2Rpdj5cbjwvdGVtcGxhdGU+XG48c2NyaXB0PlxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIC8vTm9tIGRlIGxhIHZ1ZVxuICBuYW1lOiBcImdhbWVEYXNoYm9hcmRcIixcbiAgaW5qZWN0OltcbiAgJ2dldFVzZXJJbmZvcycsXG4gICdnZXRDb250ZW50JyxcbiAgJ2dldEdhbWVEYXRhcycsXG4gICdzZXRDb25maXJtTW9kYWxEYXRhcycsXG4gICdnZXRPcGVuR2FtZSdcbiAgXSxcbiAgcHJvcHM6IHtcbiAgICBwYXJ0aWVzOnt9LFxuICB9LFxuICBkYXRhKCkge1xuICAgIHJldHVybiB7XG4gICAgICBzZWxlY3RlZEdhbWU6e30sXG4gICAgfTtcbiAgfSxcbiAgY29tcHV0ZWQ6e1xuICAgIHVzZXJfaW5mb3M6IGZ1bmN0aW9uKCl7XG4gICAgICByZXR1cm4gdGhpcy5nZXRVc2VySW5mb3MoKTtcbiAgICB9LFxuICAgIGNvbnRlbnQoKXtcbiAgICAgIHJldHVybiB0aGlzLmdldENvbnRlbnQoKTtcbiAgICB9LFxuICAgIGdhbWVfZGF0YXMoKXtcbiAgICAgIHJldHVybiB0aGlzLmdldEdhbWVEYXRhcygpO1xuICAgIH0sXG4gICAgdXNlcl9pc19nbSgpe1xuICAgICAgcmV0dXJuIHRoaXMuZ2FtZV9kYXRhcy5pZFVzZXJHbSA9PSB0aGlzLnVzZXJfaW5mb3MuaWQ7XG4gICAgfSxcbiAgICB1c2VyX2lzX3BsYXllcigpe1xuICAgICAgLy9pZiBwbGF5ZXIgcmV0dXJuIGluZGV4IG9mIHBsYXllciwgb3RoZXJ3aXNlIHJldHVybiAtMVxuICAgICAgcmV0dXJuIHRoaXMuZ2FtZV9kYXRhcy5wbGF5ZXJzLmZpbmRJbmRleChwbGF5ZXIgPT4gcGxheWVyLmlkID09IHRoaXMudXNlcl9pbmZvcy5pZCk7XG4gICAgfSxcbiAgICBjb25maXJtTW9kYWxEYXRhcygpe1xuICAgICAgcmV0dXJuIHRoaXMuc2V0Q29uZmlybU1vZGFsRGF0YXMoKTtcbiAgICB9XG4gIH0sXG4gIG1ldGhvZHM6e1xuICAgIGJhbihwbGF5ZXIpe1xuICAgICAgaWYoIXRoaXMudXNlcl9pc19nbSkgcmV0dXJuO1xuICAgICAgLy9yZW1vdmUgcGxheWVyIGZyb20gZ2FtZVxuICAgICAgdGhpcy5jb25maXJtTW9kYWxEYXRhcyhcbiAgICAgICAgJ2NvbmZpcm1Nb2RhbCcsXG4gICAgICAgICdCYW5uaXIgdW4gam91ZXVyJyxcbiAgICAgICAgYMOKdGVzLXZvdXMgc8O7ciBkZSB2b3Vsb2lyIGJhbm5pciAke3BsYXllci5pZGVudGlmaWFudH0gPyBTYSBwcm9ncmVzc2lvbiBzZXJhIHBlcmR1ZS5gLFxuICAgICAgICAocGxheWVySWQpID0+IGNvbnNvbGUubG9nKGBCYW5uaW5nIHBsYXllciB3aXRoIGlkOiAke3BsYXllci5pZH1gKVxuICAgICAgKTtcbiAgICB9LFxuICAgIGludml0ZVBsYXllcigpe1xuICAgICAgaWYoIXRoaXMudXNlcl9pc19nbSkgcmV0dXJuO1xuICAgICAgLy9vcGVuIG1vZGFsIHRvIGludml0ZSBwbGF5ZXJcbiAgICAgIHRoaXMuY29uZmlybU1vZGFsRGF0YXMoXG4gICAgICAgICdjb25maXJtTW9kYWwnLFxuICAgICAgICAnSW52aXRlciB1biBqb3VldXInLFxuICAgICAgICAnw4p0ZXMtdm91cyBzw7tyIGRlIHZvdWxvaXIgaW52aXRlciBjZSBqb3VldXIgPycsXG4gICAgICAgICgpID0+IGNvbnNvbGUubG9nKCdPcGVuaW5nIG1vZGFsIHRvIGludml0ZSBwbGF5ZXInKVxuICAgICAgKTtcbiAgICB9LFxuICAgIGxlYXZlR2FtZSgpe1xuICAgICAgLy9yZW1vdmUgcGxheWVyIGZyb20gZ2FtZVxuICAgICAgdGhpcy5jb25maXJtTW9kYWxEYXRhcyhcbiAgICAgICAgJ2NvbmZpcm1Nb2RhbCcsXG4gICAgICAgICdRdWl0dGVyIGxhIHBhcnRpZScsXG4gICAgICAgICfDinRlcy12b3VzIHPDu3IgZGUgdm91bG9pciBxdWl0dGVyIGNldHRlIHBhcnRpZSA/IFZvdHJlIHByb2dyZXNzaW9uIHNlcmEgcGVyZHVlLicsXG4gICAgICAgICgpID0+IGNvbnNvbGUubG9nKGBMZWF2aW5nIGdhbWUgYXMgcGxheWVyIHdpdGggaWRgKVxuICAgICAgKTtcbiAgICB9LFxuICAgIGpvaW5HYW1lKCl7XG4gICAgICAvL2FkZCBwbGF5ZXIgdG8gZ2FtZVxuICAgICAgdGhpcy5jb25maXJtTW9kYWxEYXRhcyhcbiAgICAgICAgJ2NvbmZpcm1Nb2RhbCcsXG4gICAgICAgICdSZWpvaW5kcmUgbGEgcGFydGllJyxcbiAgICAgICAgJ8OKdGVzLXZvdXMgc8O7ciBkZSB2b3Vsb2lyIHJlam9pbmRyZSBjZXR0ZSBwYXJ0aWUgPycsXG4gICAgICAgICgpID0+IGNvbnNvbGUubG9nKGBKb2luaW5nIGdhbWUgYXMgcGxheWVyIHdpdGggaWRgKVxuICAgICAgKTtcbiAgICB9XG4gIH0sXG4gIG1vdW50ZWQoKVxuICB7fVxufTtcbjwvc2NyaXB0PlxuXG48c3R5bGUgc2NvcGVkPlxuLm1lIHNwYW57XG4gICAgY29sb3I6IHllbGxvdyAhaW1wb3J0YW50O1xufVxuLm1haW5zY3JlZW4ge1xuICAgIG1hcmdpbjogMCA4JSAwIDE1JTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDEwYTEzO1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIHotaW5kZXg6IDA7XG4gICAgcGFkZGluZzogMiUgMCAyJSAyJTtcbiAgICBwYWRkaW5nLXRvcDogMHB4O1xuICAgIGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogMHB4O1xuICAgIGJvcmRlci1jb2xvcjogI2NjYzNhNztcbiAgICBwYWRkaW5nLWJvdHRvbTogMHB4O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuYXJ0aWNsZSB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG4gICAgcGFkZGluZzogMTVweCAxMCU7XG4gICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAyZW0gNmVtIDFmciA1MHB4O1xuICAgIGhlaWdodDogY2FsYygxMDB2aCAtIDMwcHgpO1xufVxuLmRldGFpbHN7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBib3JkZXI6MXB4IGJsYWNrIHNvbGlkO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDE2MHB4IDVweCAzMHB4O1xufVxuaDEge1xuICAgIG1hcmdpbi10b3A6IDUwcHg7XG4gICAgZ3JpZC1jb2x1bW4tc3RhcnQ6IDE7XG4gICAgZ3JpZC1jb2x1bW4tZW5kOiAzO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuaDN7XG4gIHRleHQtYWxpZ246Y2VudGVyO1xufVxudWwge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBwYWRkaW5nLWJsb2NrLXN0YXJ0OiAwO1xuICBwYWRkaW5nLWlubGluZS1zdGFydDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMCA7XG59XG4ubGVmdC1wYW5lbCwgLnJpZ2h0LXBhbmVsIHtcbiAgcGFkZGluZzogMTdweCA1cHg7XG59XG4ubGVmdC1wYW5lbCB7XG4gIGdyaWQtcm93LXN0YXJ0OiAzO1xufVxuLnJpZ2h0LXBhbmVse1xuICBncmlkLXJvdy1zdGFydDogMztcbiAgZ3JpZC1jb2x1bW4tc3RhcnQ6IDI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xufVxudWw6bm90KDpmaXJzdC1vZi10eXBlKXtcbiAgYm9yZGVyOjFweCB3aGl0ZSBzb2xpZDtcbiAgbWluLWhlaWdodDogNTAwcHg7XG59XG5saXtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAxZnI7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDI1MHB4IDE4MHB4IDQwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZzogMnB4IDdweDtcbiAgcGFkZGluZy1yaWdodDogMTVweDtcbn1cbi5yaWdodC1wYW5lbCBsaXtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgNTBweDtcbn1cbnVsOm5vdCg6Zmlyc3Qtb2YtdHlwZSk+bGl7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxubGk+c3BhbjpmaXJzdC1vZi10eXBle1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLnBsYXllci1saW5le1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoODJkZWcsIHJnYmEoMCwwLDAsMCkgMCUsIHJnYmEoMCwwLDAsLjc1KSAxMCUsIHJnYmEoMCwwLDAsLjc1KSA5MCUsIHJnYmEoMCwwLDAsMCkgMTAwJSk7XG4gIG1hcmdpbjogMXB4O1xuICBkaXNwbGF5OiBncmlkO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogNXB4O1xuICBwYWRkaW5nLXJpZ2h0OiAyNXB4O1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDM2cHggMWZyIDMwcHg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGhlaWdodDogNDZweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuYnIrLnBsYXllci1saW5le1xuICBtYXJnaW4tdG9wOiAyMHB4O1xufVxuLnBsYXllci1saW5lID4gYXtcbiAgd2lkdGg6IDM2cHg7XG4gIGhlaWdodDogMzZweDtcbiAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7XG4gIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUsIHJnYigyNywgMjcsIDI3KSAwJSwgcmdiKDI3LCAyNywgMjcpIDUlLCByZ2IoMTAsIDEwLCAxMCkgMTAwJSk7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuIGEuaW1nLXBsYXllcntcbiAgYm9yZGVyLWNvbG9yOiAjZjBlNmQyO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cHM6Ly92YWdhYm9uZHMtamRyLmdpdGh1Yi5pby9pbWFnZXMvZXZlbnRzL3BsYWNlaG9sZGVyLmpwZyk7XG59XG4ucGxheWVyLWxpbmUgPiBzcGFuOmZpcnN0LW9mLXR5cGV7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHBhZGRpbmctbGVmdDogMTBweDtcbiAgcGFkZGluZy10b3A6IC40ZW07XG59XG4ucGxheWVyLWRldGFpbHN7XG4gIHdpZHRoOiAxMzJweDtcbiAgaGVpZ2h0OiA3MHB4O1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xuICBsZWZ0OiAtMTQ3cHg7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHBzOi8vdmFnYWJvbmRzLWpkci5naXRodWIuaW8vaW1hZ2VzL2V2ZW50cy9wbGFjZWhvbGRlci5qcGcpO1xuICBib3JkZXI6IDFweCBzb2xpZCAjMWUyODJkO1xuICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xufVxuLnBsYXllci1kZXRhaWxzOjphZnRlcntcbiAgd2lkdGg6IDI1cHg7XG4gIGhlaWdodDogMjVweDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm9yZGVyOiAxMi41cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiBibGFjaztcbiAgbGVmdDogMTMycHg7XG4gIGNvbnRlbnQ6ICcnO1xuICB6LWluZGV4OiAyO1xuICB0b3A6IDIyLjVweDtcbn1cbi5wbGF5ZXItZGV0YWlscz5kaXZ7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KC00NWRlZywgcmdiYSgwLDAsMCwxKSAxOSUsIHJnYmEoMCwwLDAsMC44KSA0MCUsIHJnYmEoMCwwLDAsMCkgMTAwJSk7XG4gIHotaW5kZXg6IDA7XG4gIHRvcDogMDtcbn1cbi5wbGF5ZXItZGV0YWlscz5we1xuICB6LWluZGV4OiAxO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuICBtYXJnaW4tdG9wOiAzMHB4O1xuICBmb250LXNpemU6IDEuMWVtO1xufVxuLnBsYXllci1saW5lOmhvdmVyID4gLnBsYXllci1kZXRhaWxze1xuZGlzcGxheTogYmxvY2s7XG59XG4uc2VsZWN0ZWR7XG4gIGJhY2tncm91bmQtY29sb3I6IGRhcmtibHVlO1xufVxuLmJ0bi1nYW1le1xuICBwYWRkaW5nOiAxNXB4IDE1cHggMzBweDtcbn1cbi8qLmJ0bi1nYW1lIGJ1dHRvbntcbiAgYm9yZGVyOnNvbGlkIDFweCAjZjBlNmQyO1xuICBjb2xvcjogI2YwZTZkMjtcbiAgYmFja2dyb3VuZC1jb2xvcjogYnJvd247XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBwYWRkaW5nOiA0cHggMTVweCA0cHg7XG59Ki9cblxuXG4uYnRuLmJ0bi1zdWNjZXNzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBicm93bjtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoODJkZWcsIHJnYmEoMCwwLDAsMCkgMCUsIHJnYmEoMCwwLDAsLjc1KSAyMCUsIHJnYmEoMCwwLDAsLjc1KSA4MCUsIHJnYmEoMCwwLDAsMCkgMTAwJSk7XG4gICAgYm9yZGVyLWNvbG9yOiBicm93bjtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgYm9yZGVyLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMTMxLDEyOCwxNTAsMCksICNhNTFmMWYsICNhNTFmMWYsIHJnYmEoMTMxLDEyOCwxNTAsMCkpIDI3O1xuICAgIGJvcmRlci1pbWFnZS1yZXBlYXQ6IHN0cmV0Y2g7XG4gICAgYm9yZGVyLWltYWdlLXdpZHRoOiAxcHggMDtcbiAgICBwYWRkaW5nOiA0cHggMTVweCA0cHg7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgY29sb3I6ICNmZjBmMGY7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDJweDtcbiAgICBmb250LWZhbWlseTogJ01lZGlldmFsU2hhcnAnLCBjdXJzaXZlO1xuICAgIG91dGxpbmU6bm9uZTtcbiAgICBib3gtc2hhZG93OiBub25lO1xufVxuXG4uYnRuLXN1Y2Nlc3M6bm90KDpkaXNhYmxlZCk6aG92ZXIsXG4uYnRuLXN1Y2Nlc3M6bm90KDpkaXNhYmxlZCk6Zm9jdXMsXG4uYnRuLXN1Y2Nlc3M6bm90KDpkaXNhYmxlZCk6Zm9jdXMtdmlzaWJsZXtcbiAgY29sb3I6ICNmMGU2ZDI7XG4gIHRleHQtc2hhZG93OiAwcHggMHB4IDJweCB3aGl0ZSwgMCAwIDI1cHggI2YwZTZkMjtcbiAgYm9yZGVyLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMTMxLDEyOCwxNTAsMCksIGJyb3duLCBicm93biwgcmdiYSgxMzEsMTI4LDE1MCwwKSkgMjc7XG5cbn1cbi5idG4tc3VjY2Vzczpub3QoOmRpc2FibGVkKTphY3RpdmUsXG4uc2hvdz4uYnRuLXN1Y2Nlc3MuZHJvcGRvd24tdG9nZ2xlIHtcbiAgICBjb2xvcjogI2YwZTZkMjtcbiAgICBib3JkZXItY29sb3I6ICNmMGU2ZDI7XG4gICAgYm9yZGVyLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMTMxLDEyOCwxNTAsMCksICNmMGU2ZDIsICNmMGU2ZDIsIHJnYmEoMTMxLDEyOCwxNTAsMCkpIDI3O1xuICAgIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUsIHJnYmEoMjU1LDI1NSwyNTUsMC4yNSkgMCUsIHJnYmEoMTMxLDEyOCwxNTAsMC4wMikgMTAwJSk7XG5cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg1MHB4KXtcbiAgICAubWFpbnNjcmVlbiB7XG4gICAgICAgIHBhZGRpbmctdG9wOiA1MHB4O1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBsZWZ0OiAwJTtcbiAgICAgICAgcmlnaHQ6IDAlO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgIH1cbn1cbjwvc3R5bGU+XG4iLCI8dGVtcGxhdGU+XG4gICAgPGRpdiBpZD1cIkNob29zZUFyY2hldHlwZVwiPlxuICAgIDwhLS0gTW9kYWwgaW5mb3JtYXRpb25zIEFDQyAtLT5cbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwibW9kYWwgZmFkZVwiXG4gICAgICAgIGlkPVwibW9kYWxDaG9vc2VBcmNoZXR5cGVcIlxuICAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgcm9sZT1cImRpYWxvZ1wiXG4gICAgICAgIGFyaWEtbGFiZWxsZWRieT1cIm1vZGFsQ2hvb3NlQXJjaGV0eXBlTGFiZWxcIlxuICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz0nbW9kYWwtZGlhbG9nIGNob3NlLW9wdGlvbicgcm9sZT1cImRvY3VtZW50XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1jb250ZW50XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keVwiPlxuICAgICAgICAgICAgICAgIDxBcmNoZXR5cGVDYXJkIDphcmNoZXR5cGU9XCJjaGFyYWN0ZXIuYXJjaGV0eXBlXCIgOmdlbnJlPVwiY2hhcmFjdGVyLmdlbnJlXCIgOmRldGFpbGVkPVwidHJ1ZVwiLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWZvb3RlclwiPlxuICAgICAgICAgICAgPGJ1dHRvbiB2LWlmPVwiIWxvY2tlZENoYXJhY3RlclwiIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tc3VjY2Vzc1wiIGRhdGEtZGlzbWlzcz1cIm1vZGFsXCIgIEBjbGljaz1cImxvY2tDaGFyYWN0ZXIoKVwiID5cbiAgICAgICAgICAgICAgICBDaG9pc2lyIGNlIHBlcnNvbm5hZ2VcbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8IS0tIEZpbiBkZSBtb2RhbGUgLS0+XG4gICAgPC9kaXY+XG48L3RlbXBsYXRlPlxuPHNjcmlwdD5cblxuaW1wb3J0IEFyY2hldHlwZUNhcmQgZnJvbSAnLi9jaGFyYWN0ZXJDcmVhdG9yL0FyY2hldHlwZUNhcmQudnVlJztcblxuICAgIGV4cG9ydCBkZWZhdWx0IHtcbiAgICAgICAgbmFtZTogXCJEZXRhaWxzQ2FyZFwiLFxuICAgICAgICBpbmplY3Q6IFsnZ2V0Q2hhcmFjdGVyJywnZ2V0Q2hhcmFjdGVyTG9ja2VkJywnc2V0TG9ja2VkQ2hhcmFjdGVyJywncmVzZXRIaXN0b3J5J10sXG4gICAgICAgIGNvbXBvbmVudHM6e0FyY2hldHlwZUNhcmR9LFxuICAgICAgICBkYXRhKCkge1xuICAgICAgICByZXR1cm4ge307XG4gICAgICAgIH0sXG5cbiAgICAgICAgbWV0aG9kczoge1xuICAgICAgICAgICAgbG9ja0NoYXJhY3Rlcigpe1xuICAgICAgICAgICAgICAgIGNvbnN0IG15VGltZW91dCA9IHNldFRpbWVvdXQoKCk9PntcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRMb2NrZWRDaGFyYWN0ZXIodHJ1ZSk7IFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlc2V0SGlzdG9yeSgpXG4gICAgICAgICAgICAgICAgfSwgMjUwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgY29tcHV0ZWQ6e1xuICAgICAgICAgICAgY2hhcmFjdGVyOmZ1bmN0aW9uKClcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRDaGFyYWN0ZXIoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsb2NrZWRDaGFyYWN0ZXIoKXtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRDaGFyYWN0ZXJMb2NrZWQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbW91bnRlZCgpIHt9LFxuICAgIH07XG48L3NjcmlwdD5cbjxzdHlsZSBzY29wZWQ+XG4ubW9kYWwtY29udGVudCB7XG5cdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci13aWR0aDogMDtcbn1cbi5tb2RhbC1mb290ZXIge1xuXHRib3JkZXItd2lkdGg6IDA7XG59XG4uYnRuLmJ0bi1zdWNjZXNzIHtcbiAgICBtYXJnaW46IGF1dG87XG5cdGJhY2tncm91bmQtY29sb3I6IGJyb3duO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg4MmRlZywgcmdiYSgwLDAsMCwwKSAwJSwgcmdiYSgwLDAsMCwuNzUpIDIwJSwgcmdiYSgwLDAsMCwuNzUpIDgwJSwgcmdiYSgwLDAsMCwwKSAxMDAlKTtcbiAgYm9yZGVyLWNvbG9yOiBicm93bjtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBib3JkZXItaW1hZ2U6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSgxMzEsMTI4LDE1MCwwKSwgI2E1MWYxZiwgI2E1MWYxZiwgcmdiYSgxMzEsMTI4LDE1MCwwKSkgMjc7XG4gIGJvcmRlci1pbWFnZS1yZXBlYXQ6IHN0cmV0Y2g7XG4gIGJvcmRlci1pbWFnZS13aWR0aDogMXB4IDA7XG4gIHBhZGRpbmc6IDRweCAxNXB4IDRweDtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGNvbG9yOiAjZmYwZjBmO1xuICBsZXR0ZXItc3BhY2luZzogMnB4O1xuICBmb250LWZhbWlseTogJ01lZGlldmFsU2hhcnAnLCBjdXJzaXZlO1xuICBvdXRsaW5lOm5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG5cbi5idG4tc3VjY2Vzczpub3QoOmRpc2FibGVkKTpob3Zlcixcbi5idG4tc3VjY2Vzczpub3QoOmRpc2FibGVkKTpmb2N1cyxcbi5idG4tc3VjY2Vzczpub3QoOmRpc2FibGVkKTpmb2N1cy12aXNpYmxle1xuICBjb2xvcjogI2YwZTZkMjtcbiAgdGV4dC1zaGFkb3c6IDBweCAwcHggMnB4IHdoaXRlLCAwIDAgMjVweCAjZjBlNmQyO1xuICBib3JkZXItaW1hZ2U6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSgxMzEsMTI4LDE1MCwwKSwgYnJvd24sIGJyb3duLCByZ2JhKDEzMSwxMjgsMTUwLDApKSAyNztcblxufSBcbi5idG4tc3VjY2Vzczpub3QoOmRpc2FibGVkKTphY3RpdmUsIFxuLnNob3c+LmJ0bi1zdWNjZXNzLmRyb3Bkb3duLXRvZ2dsZSB7XG4gICAgY29sb3I6ICNmMGU2ZDI7XG4gICAgYm9yZGVyLWNvbG9yOiAjZjBlNmQyO1xuICAgIGJvcmRlci1pbWFnZTogbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKDEzMSwxMjgsMTUwLDApLCAjZjBlNmQyLCAjZjBlNmQyLCByZ2JhKDEzMSwxMjgsMTUwLDApKSAyNztcbiAgICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCByZ2JhKDI1NSwyNTUsMjU1LDAuMjUpIDAlLCByZ2JhKDEzMSwxMjgsMTUwLDAuMDIpIDEwMCUpO1xuXG59XG5cbi5jaG9zZS1vcHRpb257XG4gICAgaGVpZ2h0OiA5MCU7XG59XG4uY2hvc2Utb3B0aW9uIC5tb2RhbC1jb250ZW50XG57XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xufVxuXG4uY2hvc2Utb3B0aW9uIC5tb2RhbC1ib2R5XG57XG4gICAgZmxleDogdW5zZXQ7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg1MHB4KXtcbiAgICAuY2hvc2Utb3B0aW9ue1xuICAgIGhlaWdodDogNjAlO1xuICAgIG1hcmdpbi10b3A6IDE4JTtcbiAgICBtYXJnaW4tYm90dG9tOiAxOCU7XG4gICAgfVxuICAgIC5jaG9zZS1vcHRpb24gLm1vZGFsLWNvbnRlbnRcbiAgICB7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg1MHB4KSBhbmQgKG1heC1oZWlnaHQ6IDcwMHB4KXtcbiAgICAuY2hvc2Utb3B0aW9ue1xuICAgIGhlaWdodDogODAlO1xuICAgIH1cbn1cbjwvc3R5bGU+IiwiPHRlbXBsYXRlPlxuICAgIDxkaXYgaWQ9XCJuZXdHYW1lXCI+XG4gICAgICAgIDwhLS1Nb2RhbCBkZSBzYXV2ZWdhcmRlIGQndW4gbm91dmVhdSBwcm9qZXQgZGFucyBsZSBwYXJjb3VycyBBQ0MsIHBlcm1ldCBkZSBzZWxlY3Rpb25uZXIgbCdvcmdhbmlzYXRpb24gY2hvaXNpZSBldCBkZSByYXBwZWxlciBsJ3V0aWxpc2F0aW9uIG91IG5vbiBkJ3VuIGNyZWRpdC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwgZmFkZVwiIGlkPVwiTW9kYWxlTmV3R2FtZVwiIHRhYmluZGV4PVwiLTFcIiByb2xlPVwiZGlhbG9nXCIgYXJpYS1sYWJlbGxlZGJ5PVwibmV3R2FtZUxhYmVsXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtZGlhbG9nXCIgcm9sZT1cImRvY3VtZW50XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGg1IGNsYXNzPVwibW9kYWwtdGl0bGVcIiBpZD1cIm5ld0dhbWVMYWJlbFwiPkNyw6llciB1bmUgbm91dmVsbGUgcGFydGllPC9oNT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY2xvc2VcIiBkYXRhLWRpc21pc3M9XCJtb2RhbFwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPiZ0aW1lczs8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGZvcm0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiTmFtZVwiPk5vbSBkZSBsYSBQYXJ0aWU8L2xhYmVsPjxici8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBuYW1lPVwiTmFtZVwiIHYtbW9kZWw9XCJuYW1lXCIgc2l6ZT1cIjI3XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIlBsYWNlc1wiPk5vbWJyZSBkZSBqb3VldXJzIG1heGltdW08L2xhYmVsPjxici8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cIm51bWJlclwiIG5hbWU9XCJQbGFjZXNcIiB2LW1vZGVsPVwicGxhY2VzXCIgbWluPVwiMVwiIG1heD1cIjZcIiBzaXplPVwiMVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJyLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwdWJsaWNTZWxlY3RcIiA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJyYWRpb1wiIG5hbWU9XCJQdWJsaWNcIiB2YWx1ZT1cInRydWVcIiBpZD1cIlRcIiB2LW1vZGVsPVwicHVibGlxdWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiVFwiPjxzcGFuPjxmb250LWF3ZXNvbWUtaWNvbiA6aWNvbj1cIlsnZmFzJywgJ2V5ZSddXCIgLz48L3NwYW4+PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInJhZGlvXCIgbmFtZT1cIlB1YmxpY1wiIHZhbHVlPVwiZmFsc2VcIiBpZD1cIkZcIiB2LW1vZGVsPVwicHVibGlxdWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiRlwiPjxzcGFuPjxmb250LWF3ZXNvbWUtaWNvbiA6aWNvbj1cIlsnZmFzJywgJ2V5ZS1zbGFzaCddXCIgLz48L3NwYW4+PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPHAgdi1pZj1cInB1YmxpcXVlID09ICd0cnVlJ1wiPlBhcnRpZSBwdWJsaXF1ZTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwIHYtZWxzZT5QYXJ0aWUgcHJpdsOpZTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtZm9vdGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnlcIiBkYXRhLWRpc21pc3M9XCJtb2RhbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICBBbm51bGVyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXN1Y2Nlc3NcIiAgIGRhdGEtZGlzbWlzcz1cIm1vZGFsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIEBjbGljaz1cImNyZWF0ZUdhbWUoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICBDcsOpZXIgbGEgcGFydGllXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDwhLS1GaW4gbW9kYWwgLS0+XG4gICAgPC9kaXY+XG48L3RlbXBsYXRlPlxuXG48c2NyaXB0PlxuaW1wb3J0IHsgbGlicmFyeSB9IGZyb20gXCJAZm9ydGF3ZXNvbWUvZm9udGF3ZXNvbWUtc3ZnLWNvcmVcIjtcbmltcG9ydCB7IGZhRXllLCBmYUV5ZVNsYXNofSBmcm9tIFwiQGZvcnRhd2Vzb21lL2ZyZWUtc29saWQtc3ZnLWljb25zXCI7XG5cbmxpYnJhcnkuYWRkKCBmYUV5ZSwgZmFFeWVTbGFzaCk7XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgICBuYW1lOiBcIk5ld0dhbWVcIixcbiAgICBpbmplY3Q6W1wiZ2V0TmV3R2FtZVwiXSxcbiAgICBjb21wb25lbnRzOiB7fSxcblxuICAgIGRhdGEoKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgbmFtZTonTm91dmVsbGUgUGFydGllJyxcbiAgICAgICAgICBwdWJsaXF1ZTogZmFsc2UsXG4gICAgICAgICAgcGxhY2VzOjQsXG4gICAgICAgIH07XG4gICAgfSxcbiAgICBjb21wdXRlZDp7fSxcbiAgICBtZXRob2RzOntcbiAgICAgICAgY3JlYXRlR2FtZSgpe1xuICAgICAgICAgICB0aGlzLmdldE5ld0dhbWUodGhpcy5uYW1lLHRoaXMucGxhY2VzLHRoaXMucHVibGlxdWUpO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBtb3VudGVkKCl7fVxufVxuPC9zY3JpcHQ+XG5cbjxzdHlsZSBzY29wZWQ+XG5mb3Jte1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbmlucHV0W3R5cGU9XCJ0ZXh0XCJdIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xuICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMHB4IHNvbGlkIHdoaXRlO1xuICAgICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgZm9udC1zaXplOiAxLjVlbTtcbiAgICAgICAgd2lkdGg6IDEwdnc7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAnTWVkaWV2YWxTaGFycCcsIGN1cnNpdmU7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjEwZW07XG4gICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgwZGVnLCByZ2IoMTU1IDE1MyAxNTMgLyAyMCUpIDAlLCByZ2JhKDExLDIwLDI3LDApIDEwMCUpXG59XG5cbi5tb2RhbC1jb250ZW50e1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMTBhMTM7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgcGFkZGluZy10b3A6IDBweDtcbiAgICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6IDBweDtcbiAgICBib3JkZXItY29sb3I6ICNjY2MzYTc7XG59XG4uYnRuLmJ0bi1zdWNjZXNzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBicm93bjtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoODJkZWcsIHJnYmEoMCwwLDAsMCkgMCUsIHJnYmEoMCwwLDAsLjc1KSAyMCUsIHJnYmEoMCwwLDAsLjc1KSA4MCUsIHJnYmEoMCwwLDAsMCkgMTAwJSk7XG4gICAgYm9yZGVyLWNvbG9yOiBicm93bjtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgYm9yZGVyLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMTMxLDEyOCwxNTAsMCksICNhNTFmMWYsICNhNTFmMWYsIHJnYmEoMTMxLDEyOCwxNTAsMCkpIDI3O1xuICAgIGJvcmRlci1pbWFnZS1yZXBlYXQ6IHN0cmV0Y2g7XG4gICAgYm9yZGVyLWltYWdlLXdpZHRoOiAxcHggMDtcbiAgICBwYWRkaW5nOiA0cHggMTVweCA0cHg7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgY29sb3I6ICNmZjBmMGY7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDJweDtcbiAgICBmb250LWZhbWlseTogJ01lZGlldmFsU2hhcnAnLCBjdXJzaXZlO1xuICAgIG91dGxpbmU6bm9uZTtcbiAgICBib3gtc2hhZG93OiBub25lO1xufVxuXG4uYnRuLXN1Y2Nlc3M6bm90KDpkaXNhYmxlZCk6aG92ZXIsXG4uYnRuLXN1Y2Nlc3M6bm90KDpkaXNhYmxlZCk6Zm9jdXMsXG4uYnRuLXN1Y2Nlc3M6bm90KDpkaXNhYmxlZCk6Zm9jdXMtdmlzaWJsZXtcbiAgY29sb3I6ICNmMGU2ZDI7XG4gIHRleHQtc2hhZG93OiAwcHggMHB4IDJweCB3aGl0ZSwgMCAwIDI1cHggI2YwZTZkMjtcbiAgYm9yZGVyLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMTMxLDEyOCwxNTAsMCksIGJyb3duLCBicm93biwgcmdiYSgxMzEsMTI4LDE1MCwwKSkgMjc7XG5cbn1cbi5idG4tc3VjY2Vzczpub3QoOmRpc2FibGVkKTphY3RpdmUsXG4uc2hvdz4uYnRuLXN1Y2Nlc3MuZHJvcGRvd24tdG9nZ2xlIHtcbiAgICBjb2xvcjogI2YwZTZkMjtcbiAgICBib3JkZXItY29sb3I6ICNmMGU2ZDI7XG4gICAgYm9yZGVyLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMTMxLDEyOCwxNTAsMCksICNmMGU2ZDIsICNmMGU2ZDIsIHJnYmEoMTMxLDEyOCwxNTAsMCkpIDI3O1xuICAgIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUsIHJnYmEoMjU1LDI1NSwyNTUsMC4yNSkgMCUsIHJnYmEoMTMxLDEyOCwxNTAsMC4wMikgMTAwJSk7XG5cbn1cblxuLnB1YmxpY1NlbGVjdHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIG1hcmdpbjogMTBweCBhdXRvO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsMWZyKTtcbiAgICB3aWR0aDogODBweDtcbiAgICBoZWlnaHQ6IDQwcHg7XG59XG5cbi5wdWJsaWNTZWxlY3QgaW5wdXR7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cbi5wdWJsaWNTZWxlY3QgbGFiZWx7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgd2hpdGU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4ucHVibGljU2VsZWN0IGxhYmVsOmZpcnN0LW9mLXR5cGV7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlIDAgMCA1MCU7XG59XG5sYWJlbCBzcGFuIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMzhweDtcbiAgICBoZWlnaHQ6IDM4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIG1hcmdpbjogMXB4O1xuICAgIGZvbnQtc2l6ZTogMS42ZW07XG4gICAgcGFkZGluZzogNHB4O1xuICAgIGJvcmRlcjogMHB4IHNvbGlkIGJyb3duO1xuICAgIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xufVxuXG5pbnB1dFt0eXBlPVwicmFkaW9cIl06Y2hlY2tlZCtsYWJlbCBzcGFue1xuICAgIGJhY2tncm91bmQtY29sb3I6IGJyb3duO1xufVxuLnB1YmxpY1NlbGVjdCBsYWJlbDpsYXN0LW9mLXR5cGV7XG4gICAgYm9yZGVyLXJhZGl1czogMCA1MCUgNTAlIDA7XG59XG48L3N0eWxlPiIsIjx0ZW1wbGF0ZT5cbiAgICA8ZGl2IGlkPVwibmV3R2FtZVwiPlxuICAgICAgICA8IS0tTW9kYWwgZGUgc2F1dmVnYXJkZSBkJ3VuIG5vdXZlYXUgcHJvamV0IGRhbnMgbGUgcGFyY291cnMgQUNDLCBwZXJtZXQgZGUgc2VsZWN0aW9ubmVyIGwnb3JnYW5pc2F0aW9uIGNob2lzaWUgZXQgZGUgcmFwcGVsZXIgbCd1dGlsaXNhdGlvbiBvdSBub24gZCd1biBjcmVkaXQtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsIGZhZGVcIiA6aWQ9XCJjb25maXJtTW9kYWxEYXRhcy5pZFwiIHRhYmluZGV4PVwiLTFcIiByb2xlPVwiZGlhbG9nXCIgOmFyaWEtbGFiZWxsZWRieT1cImAke2NvbmZpcm1Nb2RhbERhdGFzLmlkfUxhYmVsYFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWRpYWxvZ1wiIHJvbGU9XCJkb2N1bWVudFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxoNSBjbGFzcz1cIm1vZGFsLXRpdGxlXCIgaWQ9XCJuZXdHYW1lTGFiZWxcIj57eyBjb25maXJtTW9kYWxEYXRhcy50aXRsZSB9fTwvaDU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNsb3NlXCIgZGF0YS1kaXNtaXNzPVwibW9kYWxcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj4mdGltZXM7PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgY29uZmlybU1vZGFsRGF0YXMucXVlc3Rpb24gfX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1mb290ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiIGRhdGEtZGlzbWlzcz1cIm1vZGFsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIEFubnVsZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tc3VjY2Vzc1wiICAgZGF0YS1kaXNtaXNzPVwibW9kYWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPVwiY2FsbGJhY2soKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICBDb25maXJtZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPCEtLUZpbiBtb2RhbCAtLT5cbiAgICA8L2Rpdj5cbjwvdGVtcGxhdGU+XG5cbjxzY3JpcHQ+XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgICBuYW1lOiBcIkNvbmZpcm1Nb2RhbFwiLFxuICAgIGluamVjdDogW1wiZ2V0Q29uZmlybU1vZGFsRGF0YXNcIl0sXG4gICAgY29tcG9uZW50czoge30sXG5cbiAgICBkYXRhKCkge1xuICAgICAgICByZXR1cm4ge307XG4gICAgfSxcbiAgICBjb21wdXRlZDoge1xuICAgICAgICBjb25maXJtTW9kYWxEYXRhcygpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldENvbmZpcm1Nb2RhbERhdGFzKCk7XG4gICAgICAgIH0sXG4gICAgICAgIGNhbGxiYWNrKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlybU1vZGFsRGF0YXMuY2FsbGJhY2sgfHwgKCgpID0+IHt9KTtcbiAgICAgICAgfVxuICAgIH0sXG59XG48L3NjcmlwdD5cblxuPHN0eWxlIHNjb3BlZD5cbmZvcm17XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuaW5wdXRbdHlwZT1cInRleHRcIl0ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAwcHggc29saWQgd2hpdGU7XG4gICAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDFweDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBmb250LXNpemU6IDEuNWVtO1xuICAgICAgICB3aWR0aDogMTB2dztcbiAgICAgICAgZm9udC1mYW1pbHk6ICdNZWRpZXZhbFNoYXJwJywgY3Vyc2l2ZTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMTBlbTtcbiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDBkZWcsIHJnYigxNTUgMTUzIDE1MyAvIDIwJSkgMCUsIHJnYmEoMTEsMjAsMjcsMCkgMTAwJSlcbn1cblxuLm1vZGFsLWNvbnRlbnR7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAxMGExMztcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICBwYWRkaW5nLXRvcDogMHB4O1xuICAgIGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogMHB4O1xuICAgIGJvcmRlci1jb2xvcjogI2NjYzNhNztcbn1cbi5idG4uYnRuLXN1Y2Nlc3Mge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGJyb3duO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg4MmRlZywgcmdiYSgwLDAsMCwwKSAwJSwgcmdiYSgwLDAsMCwuNzUpIDIwJSwgcmdiYSgwLDAsMCwuNzUpIDgwJSwgcmdiYSgwLDAsMCwwKSAxMDAlKTtcbiAgICBib3JkZXItY29sb3I6IGJyb3duO1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBib3JkZXItaW1hZ2U6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSgxMzEsMTI4LDE1MCwwKSwgI2E1MWYxZiwgI2E1MWYxZiwgcmdiYSgxMzEsMTI4LDE1MCwwKSkgMjc7XG4gICAgYm9yZGVyLWltYWdlLXJlcGVhdDogc3RyZXRjaDtcbiAgICBib3JkZXItaW1hZ2Utd2lkdGg6IDFweCAwO1xuICAgIHBhZGRpbmc6IDRweCAxNXB4IDRweDtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICBjb2xvcjogI2ZmMGYwZjtcbiAgICBsZXR0ZXItc3BhY2luZzogMnB4O1xuICAgIGZvbnQtZmFtaWx5OiAnTWVkaWV2YWxTaGFycCcsIGN1cnNpdmU7XG4gICAgb3V0bGluZTpub25lO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG59XG5cbi5idG4tc3VjY2Vzczpub3QoOmRpc2FibGVkKTpob3Zlcixcbi5idG4tc3VjY2Vzczpub3QoOmRpc2FibGVkKTpmb2N1cyxcbi5idG4tc3VjY2Vzczpub3QoOmRpc2FibGVkKTpmb2N1cy12aXNpYmxle1xuICBjb2xvcjogI2YwZTZkMjtcbiAgdGV4dC1zaGFkb3c6IDBweCAwcHggMnB4IHdoaXRlLCAwIDAgMjVweCAjZjBlNmQyO1xuICBib3JkZXItaW1hZ2U6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSgxMzEsMTI4LDE1MCwwKSwgYnJvd24sIGJyb3duLCByZ2JhKDEzMSwxMjgsMTUwLDApKSAyNztcblxufVxuLmJ0bi1zdWNjZXNzOm5vdCg6ZGlzYWJsZWQpOmFjdGl2ZSxcbi5zaG93Pi5idG4tc3VjY2Vzcy5kcm9wZG93bi10b2dnbGUge1xuICAgIGNvbG9yOiAjZjBlNmQyO1xuICAgIGJvcmRlci1jb2xvcjogI2YwZTZkMjtcbiAgICBib3JkZXItaW1hZ2U6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSgxMzEsMTI4LDE1MCwwKSwgI2YwZTZkMiwgI2YwZTZkMiwgcmdiYSgxMzEsMTI4LDE1MCwwKSkgMjc7XG4gICAgYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgcmdiYSgyNTUsMjU1LDI1NSwwLjI1KSAwJSwgcmdiYSgxMzEsMTI4LDE1MCwwLjAyKSAxMDAlKTtcblxufVxuXG4ucHVibGljU2VsZWN0e1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgbWFyZ2luOiAxMHB4IGF1dG87XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwxZnIpO1xuICAgIHdpZHRoOiA4MHB4O1xuICAgIGhlaWdodDogNDBweDtcbn1cblxuLnB1YmxpY1NlbGVjdCBpbnB1dHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuLnB1YmxpY1NlbGVjdCBsYWJlbHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB3aGl0ZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5wdWJsaWNTZWxlY3QgbGFiZWw6Zmlyc3Qtb2YtdHlwZXtcbiAgICBib3JkZXItcmFkaXVzOiA1MCUgMCAwIDUwJTtcbn1cbmxhYmVsIHNwYW4ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAzOHB4O1xuICAgIGhlaWdodDogMzhweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgbWFyZ2luOiAxcHg7XG4gICAgZm9udC1zaXplOiAxLjZlbTtcbiAgICBwYWRkaW5nOiA0cHg7XG4gICAgYm9yZGVyOiAwcHggc29saWQgYnJvd247XG4gICAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG59XG5cbmlucHV0W3R5cGU9XCJyYWRpb1wiXTpjaGVja2VkK2xhYmVsIHNwYW57XG4gICAgYmFja2dyb3VuZC1jb2xvcjogYnJvd247XG59XG4ucHVibGljU2VsZWN0IGxhYmVsOmxhc3Qtb2YtdHlwZXtcbiAgICBib3JkZXItcmFkaXVzOiAwIDUwJSA1MCUgMDtcbn1cbjwvc3R5bGU+IiwiPHRlbXBsYXRlPlxuICA8ZGl2IGlkPVwiYXBwXCI+XG4gICAgPG1vZGFsSGFuZGxlci8+XG4gICAgPFRoZVRhYnMgOnRhYnM9XCJ0YWJzXCIvPlxuICAgIDxrZWVwLWFsaXZlPlxuICAgICAgPGNvbXBvbmVudCB2LWJpbmQ6aXM9XCJhY3RpdmVUYWJcIiA6YXJ0aWNsZXM9XCJhcnRpY2xlc1wiIDpub21zPVwibm9tc1wiIDpmYWN0aW9ucz1cImZhY3Rpb25zXCIgOnNraWxscz1cInNraWxsc1wiIDpyb2xlcz1cInJvbGVzXCIgOmFyY2hldHlwZT1cImFyY2hldHlwZVwiIDpwYXJ0aWVzPVwicGFydGllc1wiLz5cbiAgICA8L2tlZXAtYWxpdmU+XG4gICAgPERldGFpbHNDYXJkIEBsb2NrQ2hhcmFjdGVyPVwiY2hhcmFjdGVyTG9ja2VkID0gJGV2ZW50XCIgOmFyY2hldHlwZT1cImFyY2hldHlwZVwiLz5cbiAgPC9kaXY+XG48L3RlbXBsYXRlPlxuPHNjcmlwdD5cblxuaW1wb3J0IFRoZVRhYnMgZnJvbSAnLi9jb21wb25lbnRzL1RoZVRhYnMnO1xuaW1wb3J0IGRvY3VtZW50IGZyb20gXCIuL2NvbXBvbmVudHMvcGFnZXMvZG9jdW1lbnRcIjtcbmltcG9ydCBkcml2ZSBmcm9tIFwiLi9jb21wb25lbnRzL3BhZ2VzL2RyaXZlXCI7XG5pbXBvcnQgZ3JvdXAgZnJvbSBcIi4vY29tcG9uZW50cy9wYWdlcy9ncm91cFwiO1xuaW1wb3J0IGhvbWUgZnJvbSBcIi4vY29tcG9uZW50cy9wYWdlcy9ob21lXCI7XG5pbXBvcnQgbmFtZXMgZnJvbSBcIi4vY29tcG9uZW50cy9wYWdlcy9uYW1lc1wiO1xuaW1wb3J0IHdvcmxkbWFwIGZyb20gXCIuL2NvbXBvbmVudHMvcGFnZXMvd29ybGRtYXBcIjtcbmltcG9ydCBnYW1lc2xpc3QgZnJvbSAnLi9jb21wb25lbnRzL3BhZ2VzL2dhbWVzbGlzdC52dWUnO1xuaW1wb3J0IGdhbWVEYXNoYm9hcmQgZnJvbSAnLi9jb21wb25lbnRzL3BhZ2VzL2dhbWVEYXNoYm9hcmQudnVlJztcbmltcG9ydCBHcm91cEJ5SWQgZnJvbSBcIi4vb3V0aWxzL2dyb3VwQnlJRFwiO1xuaW1wb3J0IERldGFpbHNDYXJkIGZyb20gJy4vY29tcG9uZW50cy9EZXRhaWxzQ2FyZC52dWUnO1xuaW1wb3J0IHRleHRSZXBsYWNlciBmcm9tICcuL291dGlscy90ZXh0UmVwbGFjZXInO1xuaW1wb3J0IG1vZGFsSGFuZGxlciBmcm9tICcuL2NvbXBvbmVudHMvb3RoZXIvbW9kYWxIYW5kbGVyLnZ1ZSc7XG5pbXBvcnQgYXBpR2FtZSBmcm9tICcuL2FwaS9hcGlHYW1lJztcblxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIC8vTm9tIGRlIGxhIHZ1ZVxuICBuYW1lOiBcIkFwcFwiLFxuICAvL29uIHByZWNpc2UgbGVzIHZ1ZXMgcXVpIHZvbnQgw6p0cmUgY29tbXVuaXF1w6llIMOgIGxhIHBhZ2VcbiAgY29tcG9uZW50czoge1xuICAgIFRoZVRhYnMsXG4gICAgZG9jdW1lbnQsXG4gICAgZHJpdmUsXG4gICAgZ3JvdXAsXG4gICAgaG9tZSxcbiAgICBuYW1lcyxcbiAgICB3b3JsZG1hcCxcbiAgICBnYW1lc2xpc3QsXG4gICAgZ2FtZURhc2hib2FyZCxcbiAgICBEZXRhaWxzQ2FyZCxcbiAgICBtb2RhbEhhbmRsZXIsXG4gIH0sXG4gIHByb3BzOiB7XG4gICAgb25nbGV0czp7fSxcbiAgICBqc29uX2FydGljbGVzOnt9LFxuICAgIGpzb25fbm9tczp7fSxcbiAgICBqc29uX2tleXdvcmRzOiB7fSxcbiAgICBqc29uX2l0ZW1zOiB7fSxcbiAgICBqc29uX25wYzoge30sXG4gICAganNvbl9tb25zdGVyOnt9LFxuICAgIGpzb25fZmFjdGlvbnM6e30sXG4gICAganNvbl9za2lsbHM6e30sXG4gICAganNvbl9yb2xlczp7fSxcbiAgICBqc29uX2FyY2hldHlwZTp7fSxcbiAgICBqc29uX2dlbmVyaWNfZXZlbnQ6e30sXG4gICAganNvbl9jb250ZW50Ont9LFxuICAgIGpzb25fY2l0aWVzOnt9LFxuICAgIGpzb25fdXNlcnM6e30sXG4gICAganNvbl91c2VyX2luZm9zOnt9LFxuICAgIGpzb25fcGFydGllczp7fSxcbiAgfSxcblxuICBjb21wdXRlZDoge1xuICAgIHRhYnM6IGZ1bmN0aW9uKClcbiAgICB7XG4gICAgICBsZXQgdGFicyA9IEpTT04ucGFyc2UodGhpcy5vbmdsZXRzKTtcbiAgICAgIGxldCBnYW1lRGFzaGJvYXJkVGFiID0ge1xuICAgICAgICBsaWI6J1BhcnRpZScsXG4gICAgICAgIGNvbXBvbmVudDonZ2FtZURhc2hib2FyZCcsXG4gICAgICAgIHVybDonJyxcbiAgICAgIH1cbiAgICAgIHRhYnMuZm9yRWFjaCgoZWxlbWVudCxpbmRleCkgPT4geyB0YWJzW2luZGV4XSA9ICh0aGlzLmdhbWVEYXRhcyAmJiBpbmRleCA9PSB0YWJzLmxlbmd0aC0yKSA/IGdhbWVEYXNoYm9hcmRUYWIgOiBlbGVtZW50fSk7XG4gICAgICByZXR1cm4gdGFicztcbiAgICB9LFxuICAgIGFydGljbGVzOiBmdW5jdGlvbigpXG4gICAge1xuICAgICAgcmV0dXJuIEpTT04ucGFyc2UodGhpcy5qc29uX2FydGljbGVzKTtcbiAgICB9LFxuICAgIG5vbXM6IGZ1bmN0aW9uKClcbiAgICB7XG4gICAgICByZXR1cm4gSlNPTi5wYXJzZSh0aGlzLmpzb25fbm9tcyk7XG4gICAgfSxcbiAgICBrZXl3b3JkczogZnVuY3Rpb24oKVxuICAgIHtcbiAgICAgIHJldHVybiBKU09OLnBhcnNlKHRoaXMuanNvbl9rZXl3b3Jkcyk7XG4gICAgfSxcbiAgICBpdGVtczogZnVuY3Rpb24oKVxuICAgIHtcbiAgICAgIHJldHVybiBKU09OLnBhcnNlKHRoaXMuanNvbl9pdGVtcyk7XG4gICAgfSxcbiAgICBucGM6IGZ1bmN0aW9uKClcbiAgICB7XG4gICAgICByZXR1cm4gSlNPTi5wYXJzZSh0aGlzLmpzb25fbnBjKTtcbiAgICB9LFxuICAgIG1vbnN0ZXI6IGZ1bmN0aW9uKClcbiAgICB7XG4gICAgICByZXR1cm4gSlNPTi5wYXJzZSh0aGlzLmpzb25fbW9uc3Rlcik7XG4gICAgfSxcbiAgICBwYXJ0aWVzOiBmdW5jdGlvbigpXG4gICAge1xuICAgICAgcmV0dXJuIHRoaXMucGFydGllc1JlZnJlc2hlZCA/IHRoaXMucGFydGllc1JlZnJlc2hlZCA6IEpTT04ucGFyc2UodGhpcy5qc29uX3BhcnRpZXMpO1xuICAgIH0sXG4gICAgZmFjdGlvbnM6IGZ1bmN0aW9uKClcbiAgICB7XG4gICAgICByZXR1cm4gSlNPTi5wYXJzZSh0aGlzLmpzb25fZmFjdGlvbnMpO1xuICAgIH0sXG4gICAgc2tpbGxzOiBmdW5jdGlvbigpXG4gICAge1xuICAgICAgcmV0dXJuIEdyb3VwQnlJZC5ncm91cEJ5SWQoSlNPTi5wYXJzZSh0aGlzLmpzb25fc2tpbGxzKSk7XG4gICAgfSxcbiAgICByb2xlczogZnVuY3Rpb24oKVxuICAgIHtcbiAgICAgIHJldHVybiBKU09OLnBhcnNlKHRoaXMuanNvbl9yb2xlcyk7XG4gICAgfSxcbiAgICBhcmNoZXR5cGU6IGZ1bmN0aW9uKClcbiAgICB7XG4gICAgICByZXR1cm4gSlNPTi5wYXJzZSh0aGlzLmpzb25fYXJjaGV0eXBlKTtcbiAgICB9LFxuICAgIGdlbmVyaWNFdmVudDogZnVuY3Rpb24oKVxuICAgIHtcbiAgICAgIHJldHVybiBKU09OLnBhcnNlKHRoaXMuanNvbl9nZW5lcmljX2V2ZW50KTtcbiAgICB9LFxuICAgIGNvbnRlbnQ6IGZ1bmN0aW9uKClcbiAgICB7XG4gICAgICByZXR1cm4gSlNPTi5wYXJzZSggdGhpcy5hcGlfY29udGVudCA/IHRoaXMuYXBpX2NvbnRlbnQgOiB0aGlzLmpzb25fY29udGVudCk7XG4gICAgfSxcbiAgICBjaXRpZXM6IGZ1bmN0aW9uKClcbiAgICB7XG4gICAgICByZXR1cm4gSlNPTi5wYXJzZSh0aGlzLmpzb25fY2l0aWVzKTtcbiAgICB9LFxuICAgIHVzZXJzOiBmdW5jdGlvbigpXG4gICAge1xuICAgICAgcmV0dXJuIEpTT04ucGFyc2UodGhpcy5qc29uX3VzZXJzKTtcbiAgICB9LFxuICAgIHVzZXJfaW5mb3M6IGZ1bmN0aW9uKClcbiAgICB7XG4gICAgICByZXR1cm4gSlNPTi5wYXJzZSh0aGlzLmpzb25fdXNlcl9pbmZvcyk7XG4gICAgfSxcbiAgfSxcblxuICBkYXRhKCkge1xuICAgIHJldHVybiB7XG4gICAgICBhY3RpdmVUYWI6ZmFsc2UsXG4gICAgICBUZXh0UmVwbGFjZXIgOiBudWxsLFxuICAgICAgY2hhcmFjdGVyOlxuICAgICAge1xuICAgICAgICBuYW1lOlwiQXJtYW5kLCBMZSBzb2xkYXRcIixcbiAgICAgICAgZ2VucmU6XCJob21tZVwiLFxuICAgICAgICBhcmNoZXR5cGU6e1wiaWRcIjozMSxcIm5vbVwiOlwiTGUgc29sZGF0XCIsXCJTcGVjaWFsaXRlXCI6XCJEaXNjaXBsaW5lXCIsXCJjb3Jwc1wiOjIsXCJpbnRlbGxpZ2VuY2VcIjoyLFwic29jaWFsXCI6MSxcInNraWxsMVwiOjE2LFwic2tpbGwyXCI6MjQsXCJpbWdcIjpcIlwifVxuICAgICAgfSxcbiAgICAgIHByb2dyZXNzOntcbiAgICAgICAgc3RhdGVzOltcbiAgICAgICAge1xuICAgICAgICAgIGxpYmVsOidTb25uw6knLFxuICAgICAgICAgIHN0YXR1c0NvbG9yOidibGFuYycsXG4gICAgICAgICAgY29tYmF0OnRydWUsXG4gICAgICAgICAgZGVzY3JpcHRpb246J0xlIHBlcnNvbm5hZ2UgYSBwcmlzIHVuIHZpb2xlbnQgY291cCBzdXIgbGEgdMOqdGUuIElsIGVzdCBkaW1pbnXDqSBwZW5kYW50IHVuZSBqb3VybsOpZS4nLFxuICAgICAgICAgIHRpbWVMaW1pdDoxLFxuICAgICAgICAgIGRlYXRoOmZhbHNlLFxuICAgICAgICAgIGN1cnJlbnRUaW1lOjAsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBsaWJlbDonQmxlc3N1cmUgTMOpZ8OocmUnLFxuICAgICAgICAgIHN0YXR1c0NvbG9yOidibGFuYycsXG4gICAgICAgICAgY29tYmF0OnRydWUsXG4gICAgICAgICAgZGVzY3JpcHRpb246J0xlIHBlcnNvbm5hZ2UgYSBzdWJpdCBkZXMgYmxlc3N1cmVzIHF1aSBuZSBtZXR0ZW50IHBhcyBlbiBkYW5nZXIgc2EgdmllLiBJbCBlc3QgY2VwZW5kYW50IGZyYWdpbGUgZXQgZGV2cmEgcmVjZXZvaXIgZGVzIHNvaW5zLicsXG4gICAgICAgICAgdGltZUxpbWl0OjQsXG4gICAgICAgICAgZGVhdGg6ZmFsc2UsXG4gICAgICAgICAgY3VycmVudFRpbWU6MCxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGxpYmVsOidCbGVzc3VyZSBHcmF2ZScsXG4gICAgICAgICAgc3RhdHVzQ29sb3I6J2dyaXMnLFxuICAgICAgICAgIGNvbWJhdDp0cnVlLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOidMZSBwZXJzb25uYWdlIGVzdCBlbiBkYW5nZXIuIElsIGRvaXQgw6p0cmUgcmFwaWRlbWVudCBwcmlzIGVuIGNoYXJnZSBhdSByaXNxdWUgZGUgcGVyZHJlIGxhIHZpZS4nLFxuICAgICAgICAgIHRpbWVMaW1pdDo1LFxuICAgICAgICAgIGRlYXRoOnRydWUsXG4gICAgICAgICAgY3VycmVudFRpbWU6MCxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGxpYmVsOidBZmZhbcOpJyxcbiAgICAgICAgICBzdGF0dXNDb2xvcjonYmxhbmMnLFxuICAgICAgICAgIGNvbWJhdDpmYWxzZSxcbiAgICAgICAgICBkZXNjcmlwdGlvbjonTGUgcGVyc29ubmFnZSBlc3Qgc291cy1hbGltZW50w6kuIElsIG5lIHJldHJvdXZlcmEgcGFzIHVuIMOpdGF0IGNvbnZlbmFibGUgc1xcJ2V0cmUgbm91cnJpdCBjb3JyZWN0ZW1lbnQgcGVuZGFudCBhdSBtb2lucyAyIGpvdXJzIGNvbnPDqWN1dGlmcy4nLFxuICAgICAgICAgIHRpbWVMaW1pdDo2LFxuICAgICAgICAgIGRlYXRoOnRydWUsXG4gICAgICAgICAgY3VycmVudFRpbWU6MCxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGxpYmVsOidNYWxhZGUnLFxuICAgICAgICAgIHN0YXR1c0NvbG9yOidncmlzJyxcbiAgICAgICAgICBjb21iYXQ6ZmFsc2UsXG4gICAgICAgICAgZGVzY3JpcHRpb246J0xlIHBlcnNvbm5hZ2UgYSBjb250cmFjdMOpIHVuZSBtYWxhZGllLiBJbCBuZSBwZXV4IMOqdHJlIHNvaWduw6kgcXVcXCdlbiBwYXNzYW50IHVuIHPDqWpvdXIgZGFucyB1biDDqXRhYmxpc3NlbWVudCBhdmVjIGRlcyBtw6lkZWNpbnMgZXQgZGVzIG1lZGljYW1lbnRzLicsXG4gICAgICAgICAgdGltZUxpbWl0OjQsXG4gICAgICAgICAgZGVhdGg6dHJ1ZSxcbiAgICAgICAgICBjdXJyZW50VGltZTowLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbGliZWw6J01hdWRpdCcsXG4gICAgICAgICAgc3RhdHVzQ29sb3I6J25vaXInLFxuICAgICAgICAgIGNvbWJhdDpmYWxzZSxcbiAgICAgICAgICBkZXNjcmlwdGlvbjonTGUgcGVyc29ubmFnZSBlc3QgZnJhcHDDqSBwYXIgbGEgY29ycnVwdGlvbi4gU2F1ZiBleGNlcHRpb24sIGlsIHBlcmRzIGxhIHJhaXNvbiBldCBuZSByZXZpZW5kcmFzIGphbWFpcyDDoCBzYSB2aWUgaHVtYWluZS4nLFxuICAgICAgICAgIHRpbWVMaW1pdDowLFxuICAgICAgICAgIGRlYXRoOnRydWUsXG4gICAgICAgICAgY3VycmVudFRpbWU6MSxcbiAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgZGljZXM6MyxcbiAgICAgICAgZGljZUxvY2tlZDowLFxuICAgICAgICBoaXN0b3J5OltdLFxuICAgICAgICBzdHVmZjp7XG4gICAgICAgICAgYXJtb3I6MyxcbiAgICAgICAgICB3ZWFwb246MyxcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGNoYXJhY3RlckxvY2tlZDpmYWxzZSxcbiAgICAgIGhpc3RvcnlNYXhMZW5ndGg6OSxcbiAgICAgIHRlcnJpdG9yeToge1xuICAgICAgICBzaGlucmFpOls4OTEsODkyLDg5Myw4OTQsOTkxLDk5MiwxMDkyLDc5MSw3OTIsNzkzLDc5NCw2OTIsNjkzLDY5NCw1OTIsNTkzLDY5MV0sXG4gICAgICAgIHNlbmlhdXg6WzQwMl0sXG4gICAgICAgIHZpZGlldTpbMTAwMl0sXG4gICAgICAgIHNlcnZlbmF0aWY6W10sXG4gICAgICAgIG1lc2FpdmVzOls5MDIsMTAwMywxMTAyLDExMDFdLFxuICAgICAgICByb3lhbDpbMTAwMiwxMjk5LDEyMDAsMTM5OV0sXG4gICAgICB9LFxuICAgICAgcGFydGllc1JlZnJlc2hlZDpmYWxzZSxcbiAgICAgIGFwaV9jb250ZW50Om51bGwsXG4gICAgICBnYW1lRGF0YXM6bnVsbCxcbiAgICAgIGNvbmZpcm1Nb2RhbERhdGFzOiB7XG4gICAgICAgIGlkOiAnY29uZmlybU1vZGFsJyxcbiAgICAgICAgdGl0bGU6ICdDb25maXJtYXRpb24nLFxuICAgICAgICBxdWVzdGlvbjogJ8OKdGVzLXZvdXMgc8O7ciBkZSB2b3Vsb2lyIGNvbnRpbnVlciA/JyxcbiAgICAgICAgY2FsbGJhY2s6ICgpID0+IHt9LFxuICAgICAgfSxcbiAgICB9O1xuICB9LFxuICBwcm92aWRlKCkge1xuICAgIHJldHVybiB7XG4gICAgICBnZXRBY3RpdmVUYWI6ICgpID0+IHRoaXMuYWN0aXZlVGFiLFxuICAgICAgc2V0QWN0aXZlVGFiOiB0aGlzLnNldEFjdGl2ZVRhYixcbiAgICAgIGdldENoYXJhY3RlcjogKCkgPT4gdGhpcy5jaGFyYWN0ZXIsXG4gICAgICBzZXRDaGFyYWN0ZXI6IHRoaXMuc2V0Q2hhcmFjdGVyLFxuICAgICAgZ2V0U2tpbGxzOiAoKSA9PiB0aGlzLnNraWxscyxcbiAgICAgIGdldENoYXJhY3RlckxvY2tlZDogKCkgPT4gdGhpcy5jaGFyYWN0ZXJMb2NrZWQsXG4gICAgICBzZXRMb2NrZWRDaGFyYWN0ZXI6ICh2YWx1ZSkgPT4ge3RoaXMuY2hhcmFjdGVyTG9ja2VkID0gdmFsdWU7fSxcbiAgICAgIGdldFByb2dyZXNzOiAoKSA9PiB0aGlzLnByb2dyZXNzLFxuICAgICAgaW5zZXJ0Um9sbDogdGhpcy5pbnNlcnRSb2xsLFxuICAgICAgcmVzZXRIaXN0b3J5OiB0aGlzLnJlc2V0SGlzdG9yeSxcbiAgICAgIHRvZ2dsZVN0YXRlOiB0aGlzLnRvZ2dsZVN0YXRlLFxuICAgICAgZ2V0Q29udGVudDogKCkgPT4gdGhpcy5jb250ZW50LFxuICAgICAgc2V0Q29udGVudDogKHZhbHVlKSA9PiB7dGhpcy5hcGlfY29udGVudCA9IHZhbHVlO30sXG4gICAgICBnZXRHZW5lcmljRXZlbnQ6ICgpID0+IHRoaXMuZ2VuZXJpY0V2ZW50LFxuICAgICAgZ2V0Q2l0aWVzOiAoKSA9PiB0aGlzLmNpdGllcyxcbiAgICAgIGdldFRlcnJpdG9yeTooKSA9PiB0aGlzLnRlcnJpdG9yeSxcbiAgICAgIGdldFJvdXRlOiB0aGlzLmdldFJvdXRlKCksXG4gICAgICBnZXRPcmlnaW46IHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4sXG4gICAgICBnZXRVc2VySW5mb3M6ICgpID0+IHRoaXMudXNlcl9pbmZvcyxcbiAgICAgIHRleHRSZXBsYWNlcjogKCkgPT4gdGhpcy5UZXh0UmVwbGFjZXIsXG4gICAgICBnZXROZXdHYW1lOiB0aGlzLm5ld0dhbWUsXG4gICAgICBnZXRPcGVuR2FtZTogdGhpcy5vcGVuR2FtZSxcbiAgICAgIGdldE5wYzogKCkgPT4gdGhpcy5ucGMsXG4gICAgICBnZXRNb25zdGVyOiAoKSA9PiB0aGlzLm1vbnN0ZXIsXG4gICAgICBnZXRJdGVtczogKCkgPT4gdGhpcy5pdGVtcyxcbiAgICAgIGdldEdhbWVEYXRhczogKCkgPT4gdGhpcy5nYW1lRGF0YXMsXG4gICAgICByZWZyZXNoR2FtZXNCeVVzZXI6ICh2YWx1ZSkgPT4gdGhpcy5yZWZyZXNoR2FtZXNCeVVzZXIodmFsdWUpLFxuICAgICAgZ2V0Q29uZmlybU1vZGFsRGF0YXM6ICgpID0+IHRoaXMuY29uZmlybU1vZGFsRGF0YXMsXG4gICAgICBzZXRDb25maXJtTW9kYWxEYXRhczogKCkgPT4gdGhpcy5zZXR0ZXJDb25maXJtTW9kYWxEYXRhcyxcbiAgICB9O1xuICB9LFxuXG4gIG1ldGhvZHM6IHtcbiAgICBzZXRBY3RpdmVUYWI6IGZ1bmN0aW9uKG5ld1ZhbCkge1xuICAgICAgdGhpcy5hY3RpdmVUYWIgPSBuZXdWYWw7XG4gICAgICB9LFxuICAgIHNldENoYXJhY3RlcjogZnVuY3Rpb24oY2hhcmFjdGVyKSB7XG4gICAgICB0aGlzLmNoYXJhY3RlciA9IGNoYXJhY3RlcjtcbiAgICAgIH0sXG4gICAgaW5zZXJ0Um9sbDogZnVuY3Rpb24ocm9sbCxkaWZmLHN0YXQpXG4gICAge1xuICAgICAgbGV0IG5ld1Byb2dyZXNzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLnByb2dyZXNzKSk7XG4gICAgICBsZXQgc3RhdE5hbWUgPSAnJztcbiAgICAgIHN3aXRjaChzdGF0KXtcbiAgICAgICAgY2FzZSdjb3Jwcyc6XG4gICAgICAgICAgc3RhdE5hbWUgPSBcIkNvcnBzXCI7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UnaW50ZWxsaWdlbmNlJzpcbiAgICAgICAgICBzdGF0TmFtZSA9IFwiRXNwcml0XCI7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2Unc29jaWFsJzpcbiAgICAgICAgICBzdGF0TmFtZSA9IFwiU29jaWFsXCI7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgc3RhdE5hbWUgPSBzdGF0O1xuICAgICAgfVxuICAgICAgbmV3UHJvZ3Jlc3MuaGlzdG9yeS5wdXNoKHtcbiAgICAgICAgcm9sbDpyb2xsLFxuICAgICAgICB0aW1lOkRhdGUubm93KCksXG4gICAgICAgIGRpZmZpY3VsdHk6ZGlmZixcbiAgICAgICAgc3RhdDpzdGF0TmFtZSxcbiAgICAgIH0pO1xuICAgICAgbmV3UHJvZ3Jlc3MuaGlzdG9yeSA9IG5ld1Byb2dyZXNzLmhpc3Rvcnkuc2xpY2UoLTEqdGhpcy5oaXN0b3J5TWF4TGVuZ3RoKTtcbiAgICAgIHRoaXMucHJvZ3Jlc3MgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KG5ld1Byb2dyZXNzKSk7XG4gICAgfSxcbiAgICByZXNldEhpc3RvcnkoKVxuICAgIHtcbiAgICAgIGxldCBuZXdQcm9ncmVzcyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5wcm9ncmVzcykpO1xuICAgICAgbmV3UHJvZ3Jlc3MuaGlzdG9yeSA9IFtdO1xuICAgICAgdGhpcy5wcm9ncmVzcyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkobmV3UHJvZ3Jlc3MpKTtcbiAgICB9LFxuICAgIHRvZ2dsZVN0YXRlKG5hbWUpe1xuICAgICAgbGV0IG5ld1Byb2dyZXNzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLnByb2dyZXNzKSk7XG4gICAgICBuZXdQcm9ncmVzcy5kaWNlTG9ja2VkID0gMDtcbiAgICAgIGZvcihsZXQgcz0wOyBzIDwgbmV3UHJvZ3Jlc3Muc3RhdGVzLmxlbmd0aDsgcysrKVxuICAgICAge1xuICAgICAgICBpZihuZXdQcm9ncmVzcy5zdGF0ZXNbc10ubGliZWwgPT0gbmFtZSkgbmV3UHJvZ3Jlc3Muc3RhdGVzW3NdLmN1cnJlbnRUaW1lID0gKG5ld1Byb2dyZXNzLnN0YXRlc1tzXS5jdXJyZW50VGltZSkgPyAwIDogMTtcbiAgICAgICAgaWYobmV3UHJvZ3Jlc3Muc3RhdGVzW3NdLmN1cnJlbnRUaW1lKSBuZXdQcm9ncmVzcy5kaWNlTG9ja2VkKys7XG4gICAgICB9XG4gICAgICB0aGlzLnByb2dyZXNzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShuZXdQcm9ncmVzcykpO1xuICAgIH0sXG4gICAgZ2V0Um91dGUoKXtcbiAgICAgIGxldCByb3V0ZSA9IHt9O1xuICAgICAgd2luZG93LmxvY2F0aW9uLnNlYXJjaC5yZXBsYWNlKCc/JywgJycpLnNwbGl0KCcmJykuZm9yRWFjaCgoZWwpPT4gcm91dGVbZWwuc3BsaXQoJz0nKVswXV0gPSBlbC5zcGxpdCgnPScpWzFdKTtcblxuICAgICAgcmV0dXJuIHJvdXRlO1xuICAgIH0sXG4gICAgcm91dGVJbmZvcygpe1xuICAgICAgLy9Sw6ljdXDDqXJhdGlvbiBkZXMgcGFyYW3DqHRyZXMgZHUgZ2V0XG4gICAgICBsZXQgcm91dGUgPSB0aGlzLmdldFJvdXRlKCk7XG4gICAgICAvL2NvbnN0aXR1dGlvbiBkZSBsYSBsaXN0ZSBkZXMgb25nbGV0cyB2YWxpZGVzXG4gICAgICBsZXQgdGFibGlzdCA9IFtdO1xuICAgICAgdGhpcy50YWJzLmZvckVhY2goKGVsKT0+dGFibGlzdC5wdXNoKGVsLmNvbXBvbmVudCkpO1xuICAgICAgLy9hZmZlY3RhdGlvbiBzaSBiZXNvaW5cbiAgICAgIGlmKHJvdXRlLnRhYiAmJiB0YWJsaXN0LmluY2x1ZGVzKHJvdXRlLnRhYikpIHRoaXMuYWN0aXZlVGFiID0gcm91dGUudGFiO1xuICAgIH0sXG4gICAgbmV3R2FtZShub20scGxhY2VzLHB1YmxpcXVlKXtcbiAgICAgIGFwaUdhbWUuY3JlYXRlR2FtZShwbGFjZXMscHVibGlxdWUsIG5vbSlcbiAgICAgIC50aGVuKChyZXN1bHQpPT5cbiAgICAgIHsgY29uc29sZS5sb2cocmVzdWx0LnJlc3VsdCk7XG4gICAgICAgIGlmKHJlc3VsdC5yZXN1bHQgPT09IGZhbHNlKSB0aGlzLndyb25nVG9rZW4gPSB0cnVlO1xuICAgICAgICB0aGlzLnBhcnRpZXNSZWZyZXNoZWQgPSBKU09OLnBhcnNlKHJlc3VsdC5yZXN1bHQpO1xuICAgICAgfSk7XG4gICAgfSxcbiAgICBvcGVuR2FtZShqc29uR2FtZURhdGFzKXtcbiAgICAgIHdpbmRvdy5hbGVydCgnRm9uY3Rpb25uYWxpdMOpIGVuIGNvdXJzIGRlIGRldmVsb3BwZW1lbnQnKTtcbiAgICAgIGxldCBnYW1lRGF0YXMgPSBKU09OLnBhcnNlKGpzb25HYW1lRGF0YXMpO1xuICAgICAgdGhpcy5nYW1lRGF0YXMgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGdhbWVEYXRhcykpO1xuICAgICAgdGhpcy5hY3RpdmVUYWIgPSB0aGlzLnRhYnNbdGhpcy50YWJzLmxlbmd0aC0yXS5jb21wb25lbnQ7XG4gICAgfSxcbiAgICBhc3luYyByZWZyZXNoR2FtZXNCeVVzZXIoaWRVc2VyKSB7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBhcGlHYW1lLmdldEFsbEdhbWVzKGlkVXNlcik7XG4gICAgICB0aGlzLnBhcnRpZXNSZWZyZXNoZWQgPSByZXN1bHQ7XG4gICAgfSxcbiAgICBzZXR0ZXJDb25maXJtTW9kYWxEYXRhcyhpZCwgdGl0bGUsIHF1ZXN0aW9uLCBjYWxsYmFjaykge1xuICAgICAgY29uc29sZS5sb2coYFNldHRpbmcgY29uZmlybSBtb2RhbCB3aXRoIGlkOiAke2lkfSwgdGl0bGU6ICR7dGl0bGV9LCBxdWVzdGlvbjogJHtxdWVzdGlvbn1gKTtcbiAgICAgIC8vIFNldCB0aGUgY29uZmlybSBtb2RhbCBkYXRhXG4gICAgICB0aGlzLmNvbmZpcm1Nb2RhbERhdGFzID0ge2lkOiBpZCxcbiAgICAgICAgdGl0bGU6IHRpdGxlLFxuICAgICAgICBxdWVzdGlvbjogcXVlc3Rpb24sXG4gICAgICAgIGNhbGxiYWNrOiBjYWxsYmFjayB8fCAoKCkgPT4ge30pXG4gICAgICB9O1xuICAgIH0sXG4gIH0sXG5cblxuICBtb3VudGVkKCkge1xuICAgIHRoaXMuVGV4dFJlcGxhY2VyID0gbmV3IHRleHRSZXBsYWNlcih0aGlzLmtleXdvcmRzLHRoaXMuaXRlbXMsdGhpcy5ucGMsdGhpcy5tb25zdGVyLHRoaXMuc2tpbGxzKVxuICAgIHRoaXMuYWN0aXZlVGFiID0gdGhpcy50YWJzWzBdLmNvbXBvbmVudDtcbiAgICBpZih3aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJteUNoYXJhY3RlclwiKSkgdGhpcy5jaGFyYWN0ZXIgPSBKU09OLnBhcnNlKHdpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShcIm15Q2hhcmFjdGVyXCIpKTtcbiAgICBpZih3aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJjaGFyYWN0ZXJMb2NrZWRcIikpIHRoaXMuY2hhcmFjdGVyTG9ja2VkID0gKHdpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImNoYXJhY3RlckxvY2tlZFwiKSA9PT0gJ2ZhbHNlJyk/IGZhbHNlIDogdHJ1ZTtcbiAgICBpZih3aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJwcm9ncmVzc1wiKSkgdGhpcy5wcm9ncmVzcyA9IEpTT04ucGFyc2Uod2luZG93LmxvY2FsU3RvcmFnZS5nZXRJdGVtKFwicHJvZ3Jlc3NcIikpO1xuXG4gICAgdGhpcy5yb3V0ZUluZm9zKCk7XG5cbiAgICBjb25zb2xlLmxvZyh0aGlzLmNoYXJhY3Rlcik7XG4gIH0sXG4gIHdhdGNoOiB7XG4gICAgY2hhcmFjdGVyKCl7XG4gICAgICB3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0oJ215Q2hhcmFjdGVyJywgSlNPTi5zdHJpbmdpZnkodGhpcy5jaGFyYWN0ZXIpKTtcblxuICAgICAgbGV0IG5ld1Byb2dyZXNzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLnByb2dyZXNzKSk7XG4gICAgICBuZXdQcm9ncmVzcy5kaWNlcyA9ICh0aGlzLmNoYXJhY3Rlci5hcmNoZXR5cGUuc2tpbGwxID09IDI2IHx8IHRoaXMuY2hhcmFjdGVyLmFyY2hldHlwZS5za2lsbDIgPT0gMjYpPzQ6MztcbiAgICAgIC8vbmV3UHJvZ3Jlc3MuaGlzdG9yeSA9IFtdO1xuICAgICAgbmV3UHJvZ3Jlc3Muc3R1ZmYuYXJtb3IgPSB0aGlzLmNoYXJhY3Rlci5hcmNoZXR5cGUuY29ycHM7XG4gICAgICBuZXdQcm9ncmVzcy5zdHVmZi53ZWFwb24gPSB0aGlzLmNoYXJhY3Rlci5hcmNoZXR5cGUuY29ycHM7XG5cbiAgICAgIHRoaXMucHJvZ3Jlc3MgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KG5ld1Byb2dyZXNzKSk7XG4gICAgfSxcbiAgICBjaGFyYWN0ZXJMb2NrZWQoKXtcbiAgICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnY2hhcmFjdGVyTG9ja2VkJywgdGhpcy5jaGFyYWN0ZXJMb2NrZWQpO1xuICAgIH0sXG4gICAgcHJvZ3Jlc3MoKXtcbiAgICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbSgncHJvZ3Jlc3MnLCBKU09OLnN0cmluZ2lmeSh0aGlzLnByb2dyZXNzKSk7XG4gICAgfSxcbiAgICBhY3RpdmVUYWIoKXtcbiAgICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnYWN0aXZlVGFiJywgdGhpcy5hY3RpdmVUYWIpO1xuICAgIH1cbiAgfSxcbn07XG48L3NjcmlwdD5cblxuPHN0eWxlIHNjb3BlZD5cbiNhcHB7XG4gIG1pbi1oZWlnaHQ6IGNhbGMoMTAwJSAtIDMwcHgpO1xuICBvdmVyZmxvdy15OiBhdXRvO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogODUwcHgpe1xuICAjYXBwe1xuICAgIG1pbi1oZWlnaHQ6Y2FsYygxMDB2aCAtIDVlbSk7XG4gIH1cbn1cbjwvc3R5bGU+XG5cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==*/