/*
 * http://meyerweb.com/eric/tools/css/reset/
 * v2.0 | 20110126
 * License: none (public domain)
 */
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
}

/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
  display: block;
}

body {
  line-height: 1;
}

ol, ul {
  list-style: none;
}

blockquote, q {
  quotes: none;
}

blockquote:before, blockquote:after,
q:before, q:after {
  content: '';
  content: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

/****************************************************************************
    *** GLOBALS CSS FILE
    ***
    *** Author: Matthias Toscanelli
    *** Copyright: Code-Source
    ***
*****************************************************************************/
/**********************************************************
    *****  Importations
**********************************************************/
/****************************************************************************
    *** GENERAL CONSTANT FILE
    ***
    *** This file contains all constants for SCSS generation
    ***
    *** Author: Matthias Toscanelli
    *** Copyright: Code-Source
    ***
*****************************************************************************/
/**********************************************************
    *****  Fonts
**********************************************************/
/**********************************************************
    *****  Colors & Backgrounds
**********************************************************/
/****************************************************************************
    *** GENERAL MIXINS FILE
    ***
    *** This file contains all mixins for SCSS generation
    ***
    *** Author: Matthias Toscanelli
    *** Copyright: Code-Source
    ***
*****************************************************************************/
/****************************************************************************
    *** GENERAL CONSTANT FILE
    ***
    *** This file contains all constants for SCSS generation
    ***
    *** Author: Matthias Toscanelli
    *** Copyright: Code-Source
    ***
*****************************************************************************/
/**********************************************************
    *****  Fonts
**********************************************************/
/**********************************************************
    *****  Colors & Backgrounds
**********************************************************/
/******************************************************************************
    *** RTE
******************************************************************************/
/******************************************************************************
    *** CLEAR FIX
******************************************************************************/
/******************************************************************************
    *** TRANSITION
******************************************************************************/
/******************************************************************************
    *** PLACEHOLDER
******************************************************************************/
/******************************************************************************
    *** BORDER RADIUS
******************************************************************************/
/******************************************************************************
    *** PLACEHOLDER
******************************************************************************/
/******************************************************************************
    *** PREFIX
    *** @author Hugo Giraudel

        Usage:
        @include prefix((
          column-count: 3,
          column-gap: 1.5em,
          column-rule: 2px solid hotpink
        ), webkit moz);
******************************************************************************/
/******************************************************************************
    *** TRIANGLE FOR DIALOG BOX
******************************************************************************/
/******************************************************************************
    *** BUTTON SMALL
******************************************************************************/
/******************************************************************************
    *** Activity button
******************************************************************************/
/******************************************************************************
    *** Filter menu
******************************************************************************/
/******************************************************************************
    *** Footer actions
******************************************************************************/
/******************************************************************************
    *** Hide scrollbar
******************************************************************************/
/**********************************************************
    *****  BASE Definitions
**********************************************************/
html {
  font-size: 16px;
}

body {
  background: #ffffff;
  color: #000000;
  font-family: "Open Sans", sans-serif;
  font-weight: 300;
}

* {
  box-sizing: border-box;
  outline: none;
  -webkit-overflow-scrolling: touch;
}

table, textarea, input, button {
  font-family: "Open Sans", sans-serif;
  font-size: 1em;
}

h1, h2, h3, h4, h5, h6 {
  font-family: "Open Sans", sans-serif;
  font-weight: bold;
  line-height: 1em;
  margin: 0 0 0.5em 0;
}

h1 a, h2 a, h3 a, h4 a, h5 a, h6 a {
  font-weight: inherit;
}

h1 {
  font-size: 2em;
}

h2 {
  font-size: 1.8em;
}

h3 {
  font-size: 1.6em;
}

h4 {
  font-size: 1.4em;
}

h5 {
  font-size: 1.2em;
}

h6 {
  font-size: 1em;
}

p {
  margin: 0 0 0.4em 0;
}

p img {
  margin: 0;
}

em, i {
  font-style: italic;
}

strong, b {
  font-weight: bold;
}

small {
  font-size: 0.8em;
}

sub {
  font-size: 0.8em;
  vertical-align: sub;
}

sup {
  font-size: 0.8em;
  vertical-align: super;
}

.ucfirst {
  text-transform: capitalize;
}

.tolower {
  text-transform: lowercase;
}

.toupper {
  text-transform: uppercase;
}

.indent {
  padding-left: 1em;
}

.normal {
  font-weight: normal;
}

.strong {
  font-weight: bold;
}

.italic {
  font-style: italic;
}

a.clear {
  text-decoration: none;
}

ul.clear {
  list-style: none;
  margin: 0;
  padding: 0;
}

ul.clear li {
  list-style: none;
}

.clearfix {
  line-height: 0;
  width: 100%;
}

.clearfix:after {
  clear: both;
  content: '';
  display: table;
}

/*  Author: Rafal Bromirski
 *  www: http://rafalbromirski.com/
 *  github: http://github.com/paranoida/sass-mediaqueries
 *
 *  Licensed under a MIT License
 *
 *  Version:
 *  1.6.1
 * --- generator ---------------------------------------------------------------
 */
/****************************************************************************
    *** GENERAL CONSTANT FILE
    ***
    *** This file contains all constants for SCSS generation
    ***
    *** Author: Matthias Toscanelli
    *** Copyright: Code-Source
    ***
*****************************************************************************/
/**********************************************************
    *****  Fonts
**********************************************************/
/**********************************************************
    *****  Colors & Backgrounds
**********************************************************/
/****************************************************************************
    *** GENERAL CONSTANT FILE
    ***
    *** This file contains all constants for SCSS generation
    ***
    *** Author: Matthias Toscanelli
    *** Copyright: Code-Source
    ***
*****************************************************************************/
/**********************************************************
    *****  Fonts
**********************************************************/
/**********************************************************
    *****  Colors & Backgrounds
**********************************************************/
/****************************************************************************
    *** GENERAL MIXINS FILE
    ***
    *** This file contains all mixins for SCSS generation
    ***
    *** Author: Matthias Toscanelli
    *** Copyright: Code-Source
    ***
*****************************************************************************/
/****************************************************************************
    *** GENERAL CONSTANT FILE
    ***
    *** This file contains all constants for SCSS generation
    ***
    *** Author: Matthias Toscanelli
    *** Copyright: Code-Source
    ***
*****************************************************************************/
/**********************************************************
    *****  Fonts
**********************************************************/
/**********************************************************
    *****  Colors & Backgrounds
**********************************************************/
/******************************************************************************
    *** RTE
******************************************************************************/
/******************************************************************************
    *** CLEAR FIX
******************************************************************************/
/******************************************************************************
    *** TRANSITION
******************************************************************************/
/******************************************************************************
    *** PLACEHOLDER
******************************************************************************/
/******************************************************************************
    *** BORDER RADIUS
******************************************************************************/
/******************************************************************************
    *** PLACEHOLDER
******************************************************************************/
/******************************************************************************
    *** PREFIX
    *** @author Hugo Giraudel

        Usage:
        @include prefix((
          column-count: 3,
          column-gap: 1.5em,
          column-rule: 2px solid hotpink
        ), webkit moz);
******************************************************************************/
/******************************************************************************
    *** TRIANGLE FOR DIALOG BOX
******************************************************************************/
/******************************************************************************
    *** BUTTON SMALL
******************************************************************************/
/******************************************************************************
    *** Activity button
******************************************************************************/
/******************************************************************************
    *** Filter menu
******************************************************************************/
/******************************************************************************
    *** Footer actions
******************************************************************************/
/******************************************************************************
    *** Hide scrollbar
******************************************************************************/
/****************************************************************************
    *** GENERAL CONSTANT FILE
    ***
    *** This file contains all constants for SCSS generation
    ***
    *** Author: Matthias Toscanelli
    *** Copyright: Code-Source
    ***
*****************************************************************************/
/**********************************************************
    *****  Fonts
**********************************************************/
/**********************************************************
    *****  Colors & Backgrounds
**********************************************************/
/****************************************************************************
    *** GENERAL MIXINS FILE
    ***
    *** This file contains all mixins for SCSS generation
    ***
    *** Author: Matthias Toscanelli
    *** Copyright: Code-Source
    ***
*****************************************************************************/
/****************************************************************************
    *** GENERAL CONSTANT FILE
    ***
    *** This file contains all constants for SCSS generation
    ***
    *** Author: Matthias Toscanelli
    *** Copyright: Code-Source
    ***
*****************************************************************************/
/**********************************************************
    *****  Fonts
**********************************************************/
/**********************************************************
    *****  Colors & Backgrounds
**********************************************************/
/******************************************************************************
    *** RTE
******************************************************************************/
/******************************************************************************
    *** CLEAR FIX
******************************************************************************/
/******************************************************************************
    *** TRANSITION
******************************************************************************/
/******************************************************************************
    *** PLACEHOLDER
******************************************************************************/
/******************************************************************************
    *** BORDER RADIUS
******************************************************************************/
/******************************************************************************
    *** PLACEHOLDER
******************************************************************************/
/******************************************************************************
    *** PREFIX
    *** @author Hugo Giraudel

        Usage:
        @include prefix((
          column-count: 3,
          column-gap: 1.5em,
          column-rule: 2px solid hotpink
        ), webkit moz);
******************************************************************************/
/******************************************************************************
    *** TRIANGLE FOR DIALOG BOX
******************************************************************************/
/******************************************************************************
    *** BUTTON SMALL
******************************************************************************/
/******************************************************************************
    *** Activity button
******************************************************************************/
/******************************************************************************
    *** Filter menu
******************************************************************************/
/******************************************************************************
    *** Footer actions
******************************************************************************/
/******************************************************************************
    *** Hide scrollbar
******************************************************************************/
/****************************************************************************
    *** GENERAL CONSTANT FILE
    ***
    *** This file contains all constants for SCSS generation
    ***
    *** Author: Matthias Toscanelli
    *** Copyright: Code-Source
    ***
*****************************************************************************/
/**********************************************************
    *****  Fonts
**********************************************************/
/**********************************************************
    *****  Colors & Backgrounds
**********************************************************/
/****************************************************************************
    *** GENERAL MIXINS FILE
    ***
    *** This file contains all mixins for SCSS generation
    ***
    *** Author: Matthias Toscanelli
    *** Copyright: Code-Source
    ***
*****************************************************************************/
/****************************************************************************
    *** GENERAL CONSTANT FILE
    ***
    *** This file contains all constants for SCSS generation
    ***
    *** Author: Matthias Toscanelli
    *** Copyright: Code-Source
    ***
*****************************************************************************/
/**********************************************************
    *****  Fonts
**********************************************************/
/**********************************************************
    *****  Colors & Backgrounds
**********************************************************/
/******************************************************************************
    *** RTE
******************************************************************************/
/******************************************************************************
    *** CLEAR FIX
******************************************************************************/
/******************************************************************************
    *** TRANSITION
******************************************************************************/
/******************************************************************************
    *** PLACEHOLDER
******************************************************************************/
/******************************************************************************
    *** BORDER RADIUS
******************************************************************************/
/******************************************************************************
    *** PLACEHOLDER
******************************************************************************/
/******************************************************************************
    *** PREFIX
    *** @author Hugo Giraudel

        Usage:
        @include prefix((
          column-count: 3,
          column-gap: 1.5em,
          column-rule: 2px solid hotpink
        ), webkit moz);
******************************************************************************/
/******************************************************************************
    *** TRIANGLE FOR DIALOG BOX
******************************************************************************/
/******************************************************************************
    *** BUTTON SMALL
******************************************************************************/
/******************************************************************************
    *** Activity button
******************************************************************************/
/******************************************************************************
    *** Filter menu
******************************************************************************/
/******************************************************************************
    *** Footer actions
******************************************************************************/
/******************************************************************************
    *** Hide scrollbar
******************************************************************************/
html,
body {
  font-size: 16px;
  height: 100%;
  overflow: hidden;
  overscroll-behavior: none;
  position: relative;
  width: 100%;
}

.lg-download {
  display: none;
}

.toggle {
  cursor: pointer;
}

.outside {
  height: 100%;
  left: -200%;
  position: fixed;
  top: 100%;
  width: 100%;
  z-index: -1;
}

#page {
  display: -webkit-box;
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-align-content: stretch;
  -moz-align-content: stretch;
  -ms-flex-line-pack: stretch;
  align-content: stretch;
  -webkit-box-align: stretch;
  -ms-flex-align: stretch;
  -webkit-align-items: stretch;
  -moz-align-items: stretch;
  align-items: stretch;
  -webkit-box-direction: normal;
  -webkit-box-orient: vertical;
  -webkit-flex-direction: column;
  -moz-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
  -webkit-box-pack: stretch;
  -ms-flex-pack: stretch;
  -webkit-justify-content: stretch;
  -moz-justify-content: stretch;
  justify-content: stretch;
  bottom: 0;
  left: 0;
  height: 100%;
  overflow: hidden;
  position: fixed;
  right: 0;
  top: 0;
  width: 100%;
}

@media only screen and (min-width: 1024px) and (max-width: 1024px) and (orientation: portrait) {
  #page form[name="search_form"] {
    display: -webkit-box;
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flexbox;
    display: flex;
    padding: 10px;
  }
  #page form[name="search_form"] > div {
    height: 30px;
    line-height: 30px;
    padding: 10px;
  }
  #page form[name="search_form"] > div > label {
    padding-right: 20px;
  }
  #page .verbs .verb {
    border-top: 2px solid black;
    margin-top: 20px;
    padding: 20px;
  }
  #page .verbs .verb .metadata {
    display: -webkit-box;
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    -webkit-justify-content: space-between;
    -moz-justify-content: space-between;
    justify-content: space-between;
    margin-top: 10px;
    padding: 10px;
  }
  #page .verbs .verb .metadata div {
    border: 1px solid #cccccc;
    padding: 5px;
  }
  #page .verbs .verb .metadata div label {
    font-weight: 700;
  }
  #page .verbs .verb .conjugation {
    margin-top: 10px;
  }
  #page .verbs .verb .conjugation:after {
    clear: both;
    content: '';
    display: table;
  }
  #page .verbs .verb .conjugation .mod {
    display: -webkit-box;
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    -webkit-justify-content: space-between;
    -moz-justify-content: space-between;
    justify-content: space-between;
    -webkit-flex-wrap: wrap;
    -moz-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    float: left;
  }
  #page .verbs .verb .conjugation .mod h3 {
    background: #cccccc;
    font-size: 20px;
    margin: 10px;
    padding: 10px;
    text-align: center;
    width: 100%;
  }
  #page .verbs .verb .conjugation .mod .time {
    border: 1px solid #cccccc;
    margin: 10px;
    padding: 20px;
    width: calc(33.33% - 20px);
  }
  #page .verbs .verb .conjugation .mod .time h4 {
    font-size: 16px;
  }
  #page .verbs .verb .conjugation .mod .time .declination {
    border-top: 1px solid #cccccc;
    margin-top: 10px;
    padding-top: 10px;
  }
  #page .verbs .verb .conjugation .mod .time .declination:nth-of-type(1) {
    border-top: none;
    margin-top: 0;
    padding-top: 0;
  }
  #page .verbs .verb .conjugation .mod[data-count="1"] .time {
    width: calc(100% - 20px);
  }
  #page .verbs .verb .conjugation .mod[data-count="2"] .time {
    width: calc(50% - 20px);
  }
  #page #content {
    height: 100%;
    overflow: auto;
  }
  #page [data-media*="h-desktop"],
  #page .h-desktop,
  #page .s-tablet,
  #page .s-smartphone {
    display: none !important;
  }
}

@media only screen and (min-width: 1025px) {
  #page form[name="search_form"] {
    display: -webkit-box;
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flexbox;
    display: flex;
    padding: 10px;
  }
  #page form[name="search_form"] > div {
    height: 30px;
    line-height: 30px;
    padding: 10px;
  }
  #page form[name="search_form"] > div > label {
    padding-right: 20px;
  }
  #page .verbs .verb {
    border-top: 2px solid black;
    margin-top: 20px;
    padding: 20px;
  }
  #page .verbs .verb .metadata {
    display: -webkit-box;
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    -webkit-justify-content: space-between;
    -moz-justify-content: space-between;
    justify-content: space-between;
    margin-top: 10px;
    padding: 10px;
  }
  #page .verbs .verb .metadata div {
    border: 1px solid #cccccc;
    padding: 5px;
  }
  #page .verbs .verb .metadata div label {
    font-weight: 700;
  }
  #page .verbs .verb .conjugation {
    margin-top: 10px;
  }
  #page .verbs .verb .conjugation:after {
    clear: both;
    content: '';
    display: table;
  }
  #page .verbs .verb .conjugation .mod {
    display: -webkit-box;
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    -webkit-justify-content: space-between;
    -moz-justify-content: space-between;
    justify-content: space-between;
    -webkit-flex-wrap: wrap;
    -moz-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    float: left;
  }
  #page .verbs .verb .conjugation .mod h3 {
    background: #cccccc;
    font-size: 20px;
    margin: 10px;
    padding: 10px;
    text-align: center;
    width: 100%;
  }
  #page .verbs .verb .conjugation .mod .time {
    border: 1px solid #cccccc;
    margin: 10px;
    padding: 20px;
    width: calc(33.33% - 20px);
  }
  #page .verbs .verb .conjugation .mod .time h4 {
    font-size: 16px;
  }
  #page .verbs .verb .conjugation .mod .time .declination {
    border-top: 1px solid #cccccc;
    margin-top: 10px;
    padding-top: 10px;
  }
  #page .verbs .verb .conjugation .mod .time .declination:nth-of-type(1) {
    border-top: none;
    margin-top: 0;
    padding-top: 0;
  }
  #page .verbs .verb .conjugation .mod[data-count="1"] .time {
    width: calc(100% - 20px);
  }
  #page .verbs .verb .conjugation .mod[data-count="2"] .time {
    width: calc(50% - 20px);
  }
  #page #content {
    height: 100%;
    overflow: auto;
  }
  #page [data-media*="h-desktop"],
  #page .h-desktop,
  #page .s-tablet,
  #page .s-smartphone {
    display: none !important;
  }
}

@media only screen and (min-width: 1023px) and (max-width: 1024px) and (orientation: landscape) {
  #page form[name="search_form"] {
    display: -webkit-box;
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flexbox;
    display: flex;
    padding: 10px;
  }
  #page form[name="search_form"] > div {
    height: 30px;
    line-height: 30px;
    padding: 10px;
  }
  #page form[name="search_form"] > div > label {
    padding-right: 20px;
  }
  #page .verbs .verb {
    border-top: 2px solid black;
    margin-top: 20px;
    padding: 20px;
  }
  #page .verbs .verb .metadata {
    display: -webkit-box;
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    -webkit-justify-content: space-between;
    -moz-justify-content: space-between;
    justify-content: space-between;
    margin-top: 10px;
    padding: 10px;
  }
  #page .verbs .verb .metadata div {
    border: 1px solid #cccccc;
    padding: 5px;
  }
  #page .verbs .verb .metadata div label {
    font-weight: 700;
  }
  #page .verbs .verb .conjugation {
    margin-top: 10px;
  }
  #page .verbs .verb .conjugation:after {
    clear: both;
    content: '';
    display: table;
  }
  #page .verbs .verb .conjugation .mod {
    display: -webkit-box;
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    -webkit-justify-content: space-between;
    -moz-justify-content: space-between;
    justify-content: space-between;
    -webkit-flex-wrap: wrap;
    -moz-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    float: left;
  }
  #page .verbs .verb .conjugation .mod h3 {
    background: #cccccc;
    font-size: 20px;
    margin: 10px;
    padding: 10px;
    text-align: center;
    width: 100%;
  }
  #page .verbs .verb .conjugation .mod .time {
    border: 1px solid #cccccc;
    margin: 10px;
    padding: 20px;
    width: calc(33.33% - 20px);
  }
  #page .verbs .verb .conjugation .mod .time h4 {
    font-size: 16px;
  }
  #page .verbs .verb .conjugation .mod .time .declination {
    border-top: 1px solid #cccccc;
    margin-top: 10px;
    padding-top: 10px;
  }
  #page .verbs .verb .conjugation .mod .time .declination:nth-of-type(1) {
    border-top: none;
    margin-top: 0;
    padding-top: 0;
  }
  #page .verbs .verb .conjugation .mod[data-count="1"] .time {
    width: calc(100% - 20px);
  }
  #page .verbs .verb .conjugation .mod[data-count="2"] .time {
    width: calc(50% - 20px);
  }
  #page #content {
    height: 100%;
    overflow: auto;
  }
  #page [data-media*="h-tablet"],
  #page .h-tablet,
  #page .s-desktop,
  #page .s-smartphone {
    display: none !important;
  }
}

@media only screen and (min-width: 601px) and (max-width: 1023px) {
  #page form[name="search_form"] {
    display: -webkit-box;
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flexbox;
    display: flex;
    padding: 10px;
  }
  #page form[name="search_form"] > div {
    height: 30px;
    line-height: 30px;
    padding: 10px;
  }
  #page form[name="search_form"] > div > label {
    padding-right: 20px;
  }
  #page .verbs .verb {
    border-top: 2px solid black;
    margin-top: 20px;
    padding: 20px;
  }
  #page .verbs .verb .metadata {
    display: -webkit-box;
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    -webkit-justify-content: space-between;
    -moz-justify-content: space-between;
    justify-content: space-between;
    margin-top: 10px;
    padding: 10px;
  }
  #page .verbs .verb .metadata div {
    border: 1px solid #cccccc;
    padding: 5px;
  }
  #page .verbs .verb .metadata div label {
    font-weight: 700;
  }
  #page .verbs .verb .conjugation {
    margin-top: 10px;
  }
  #page .verbs .verb .conjugation:after {
    clear: both;
    content: '';
    display: table;
  }
  #page .verbs .verb .conjugation .mod {
    display: -webkit-box;
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    -webkit-justify-content: space-between;
    -moz-justify-content: space-between;
    justify-content: space-between;
    -webkit-flex-wrap: wrap;
    -moz-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    float: left;
  }
  #page .verbs .verb .conjugation .mod h3 {
    background: #cccccc;
    font-size: 20px;
    margin: 10px;
    padding: 10px;
    text-align: center;
    width: 100%;
  }
  #page .verbs .verb .conjugation .mod .time {
    border: 1px solid #cccccc;
    margin: 10px;
    padding: 20px;
    width: calc(33.33% - 20px);
  }
  #page .verbs .verb .conjugation .mod .time h4 {
    font-size: 16px;
  }
  #page .verbs .verb .conjugation .mod .time .declination {
    border-top: 1px solid #cccccc;
    margin-top: 10px;
    padding-top: 10px;
  }
  #page .verbs .verb .conjugation .mod .time .declination:nth-of-type(1) {
    border-top: none;
    margin-top: 0;
    padding-top: 0;
  }
  #page .verbs .verb .conjugation .mod[data-count="1"] .time {
    width: calc(100% - 20px);
  }
  #page .verbs .verb .conjugation .mod[data-count="2"] .time {
    width: calc(50% - 20px);
  }
  #page #content {
    height: 100%;
    overflow: auto;
  }
  #page [data-media*="h-tablet"],
  #page .h-tablet,
  #page .s-desktop,
  #page .s-smartphone {
    display: none !important;
  }
}

@media only screen and (min-width: 600px) and (max-width: 600px) and (orientation: portrait) {
  #page form[name="search_form"] {
    display: -webkit-box;
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flexbox;
    display: flex;
    padding: 10px;
  }
  #page form[name="search_form"] > div {
    height: 30px;
    line-height: 30px;
    padding: 10px;
  }
  #page form[name="search_form"] > div > label {
    padding-right: 20px;
  }
  #page .verbs .verb {
    border-top: 2px solid black;
    margin-top: 20px;
    padding: 20px;
  }
  #page .verbs .verb .metadata {
    display: -webkit-box;
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    -webkit-justify-content: space-between;
    -moz-justify-content: space-between;
    justify-content: space-between;
    margin-top: 10px;
    padding: 10px;
  }
  #page .verbs .verb .metadata div {
    border: 1px solid #cccccc;
    padding: 5px;
  }
  #page .verbs .verb .metadata div label {
    font-weight: 700;
  }
  #page .verbs .verb .conjugation {
    margin-top: 10px;
  }
  #page .verbs .verb .conjugation:after {
    clear: both;
    content: '';
    display: table;
  }
  #page .verbs .verb .conjugation .mod {
    display: -webkit-box;
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    -webkit-justify-content: space-between;
    -moz-justify-content: space-between;
    justify-content: space-between;
    -webkit-flex-wrap: wrap;
    -moz-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    float: left;
  }
  #page .verbs .verb .conjugation .mod h3 {
    background: #cccccc;
    font-size: 20px;
    margin: 10px;
    padding: 10px;
    text-align: center;
    width: 100%;
  }
  #page .verbs .verb .conjugation .mod .time {
    border: 1px solid #cccccc;
    margin: 10px;
    padding: 20px;
    width: calc(33.33% - 20px);
  }
  #page .verbs .verb .conjugation .mod .time h4 {
    font-size: 16px;
  }
  #page .verbs .verb .conjugation .mod .time .declination {
    border-top: 1px solid #cccccc;
    margin-top: 10px;
    padding-top: 10px;
  }
  #page .verbs .verb .conjugation .mod .time .declination:nth-of-type(1) {
    border-top: none;
    margin-top: 0;
    padding-top: 0;
  }
  #page .verbs .verb .conjugation .mod[data-count="1"] .time {
    width: calc(100% - 20px);
  }
  #page .verbs .verb .conjugation .mod[data-count="2"] .time {
    width: calc(50% - 20px);
  }
  #page #content {
    height: 100%;
    overflow: auto;
  }
  #page [data-media*="h-tablet"],
  #page .h-tablet,
  #page .s-desktop,
  #page .s-smartphone {
    display: none !important;
  }
}

@media only screen and (min-width: 600px) and (max-width: 600px) and (orientation: landscape) {
  #page form[name="search_form"] {
    display: -webkit-box;
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flexbox;
    display: flex;
    padding: 10px;
  }
  #page form[name="search_form"] > div {
    height: 30px;
    line-height: 30px;
    padding: 10px;
  }
  #page form[name="search_form"] > div > label {
    padding-right: 20px;
  }
  #page .verbs .verb {
    border-top: 2px solid black;
    margin-top: 20px;
    padding: 20px;
  }
  #page .verbs .verb .metadata {
    display: -webkit-box;
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    -webkit-justify-content: space-between;
    -moz-justify-content: space-between;
    justify-content: space-between;
    margin-top: 10px;
    padding: 10px;
  }
  #page .verbs .verb .metadata div {
    border: 1px solid #cccccc;
    padding: 5px;
  }
  #page .verbs .verb .metadata div label {
    font-weight: 700;
  }
  #page .verbs .verb .conjugation {
    margin-top: 10px;
  }
  #page .verbs .verb .conjugation:after {
    clear: both;
    content: '';
    display: table;
  }
  #page .verbs .verb .conjugation .mod {
    display: -webkit-box;
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    -webkit-justify-content: space-between;
    -moz-justify-content: space-between;
    justify-content: space-between;
    -webkit-flex-wrap: wrap;
    -moz-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    float: left;
  }
  #page .verbs .verb .conjugation .mod h3 {
    background: #cccccc;
    font-size: 20px;
    margin: 10px;
    padding: 10px;
    text-align: center;
    width: 100%;
  }
  #page .verbs .verb .conjugation .mod .time {
    border: 1px solid #cccccc;
    margin: 10px;
    padding: 20px;
    width: calc(33.33% - 20px);
  }
  #page .verbs .verb .conjugation .mod .time h4 {
    font-size: 16px;
  }
  #page .verbs .verb .conjugation .mod .time .declination {
    border-top: 1px solid #cccccc;
    margin-top: 10px;
    padding-top: 10px;
  }
  #page .verbs .verb .conjugation .mod .time .declination:nth-of-type(1) {
    border-top: none;
    margin-top: 0;
    padding-top: 0;
  }
  #page .verbs .verb .conjugation .mod[data-count="1"] .time {
    width: calc(100% - 20px);
  }
  #page .verbs .verb .conjugation .mod[data-count="2"] .time {
    width: calc(50% - 20px);
  }
  #page #content {
    height: 100%;
    overflow: auto;
  }
  #page [data-media*="h-smartphone"],
  #page .h-smartphone,
  #page .s-desktop,
  #page .s-tablet {
    display: none !important;
  }
}

@media only screen and (max-width: 599px) {
  #page form[name="search_form"] {
    display: -webkit-box;
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flexbox;
    display: flex;
    padding: 10px;
  }
  #page form[name="search_form"] > div {
    height: 30px;
    line-height: 30px;
    padding: 10px;
  }
  #page form[name="search_form"] > div > label {
    padding-right: 20px;
  }
  #page .verbs .verb {
    border-top: 2px solid black;
    margin-top: 20px;
    padding: 20px;
  }
  #page .verbs .verb .metadata {
    display: -webkit-box;
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    -webkit-justify-content: space-between;
    -moz-justify-content: space-between;
    justify-content: space-between;
    margin-top: 10px;
    padding: 10px;
  }
  #page .verbs .verb .metadata div {
    border: 1px solid #cccccc;
    padding: 5px;
  }
  #page .verbs .verb .metadata div label {
    font-weight: 700;
  }
  #page .verbs .verb .conjugation {
    margin-top: 10px;
  }
  #page .verbs .verb .conjugation:after {
    clear: both;
    content: '';
    display: table;
  }
  #page .verbs .verb .conjugation .mod {
    display: -webkit-box;
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    -webkit-justify-content: space-between;
    -moz-justify-content: space-between;
    justify-content: space-between;
    -webkit-flex-wrap: wrap;
    -moz-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    float: left;
  }
  #page .verbs .verb .conjugation .mod h3 {
    background: #cccccc;
    font-size: 20px;
    margin: 10px;
    padding: 10px;
    text-align: center;
    width: 100%;
  }
  #page .verbs .verb .conjugation .mod .time {
    border: 1px solid #cccccc;
    margin: 10px;
    padding: 20px;
    width: calc(33.33% - 20px);
  }
  #page .verbs .verb .conjugation .mod .time h4 {
    font-size: 16px;
  }
  #page .verbs .verb .conjugation .mod .time .declination {
    border-top: 1px solid #cccccc;
    margin-top: 10px;
    padding-top: 10px;
  }
  #page .verbs .verb .conjugation .mod .time .declination:nth-of-type(1) {
    border-top: none;
    margin-top: 0;
    padding-top: 0;
  }
  #page .verbs .verb .conjugation .mod[data-count="1"] .time {
    width: calc(100% - 20px);
  }
  #page .verbs .verb .conjugation .mod[data-count="2"] .time {
    width: calc(50% - 20px);
  }
  #page #content {
    height: 100%;
    overflow: auto;
  }
  #page [data-media*="h-smartphone"],
  #page .h-smartphone,
  #page .s-desktop,
  #page .s-tablet {
    display: none !important;
  }
}


/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vSGVscGVycy9fcmVzZXQuc2NzcyIsIndlYnBhY2s6Ly8vc3R5bGVzLnNjc3MiLCJ3ZWJwYWNrOi8vL0dlbmVyYWwvX2Jhc2Uuc2NzcyIsIndlYnBhY2s6Ly8vX2NvbnN0YW50cy5zY3NzIiwid2VicGFjazovLy9IZWxwZXJzL19taXhpbnMuc2NzcyIsIndlYnBhY2s6Ly8vSGVscGVycy9fbWVkaWEtcXVlcmllcy5zY3NzIiwid2VicGFjazovLy9IZWxwZXJzL19mbGV4LnNjc3MiLCJ3ZWJwYWNrOi8vL0V4dGVuc2lvbnMvX3ZlcmIuc2NzcyIsIndlYnBhY2s6Ly8vUGFydGlhbHMvX21haW4uc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztFQ0lFO0FEQ0Y7Ozs7Ozs7Ozs7Ozs7RUFhRSxTQUFTO0VBQ1QsVUFBVTtFQUNWLFNBQVM7RUFDVCxlQUFlO0VBQ2YsYUFBYTtFQUNiLHdCQUF3QjtBQ0MxQjs7QURDQTtBQUNBOztFQUVFLGNBQWM7QUNFaEI7O0FEQUE7RUFDRSxjQUFjO0FDR2hCOztBRERBO0VBQ0UsZ0JBQWdCO0FDSWxCOztBREZBO0VBQ0UsWUFBWTtBQ0tkOztBREhBOztFQUVFLFdBQVc7RUFDWCxhQUFhO0FDTWY7O0FESkE7RUFDRSx5QkFBeUI7RUFDekIsaUJBQWlCO0FDT25COztBQ3JEQTs7Ozs7OzZFRDZENkU7QUNyRDdFOzswRER3RDBEO0FFaEUxRDs7Ozs7Ozs7NkVGeUU2RTtBRS9EN0U7OzBERmtFMEQ7QUU3RDFEOzswREZnRTBEO0FHL0UxRDs7Ozs7Ozs7NkVId0Y2RTtBRXhGN0U7Ozs7Ozs7OzZFRmlHNkU7QUV2RjdFOzswREYwRjBEO0FFckYxRDs7MERGd0YwRDtBRzFGMUQ7OzhFSDZGOEU7QUdsRjlFOzs4RUhxRjhFO0FHMUU5RTs7OEVINkU4RTtBR2pFOUU7OzhFSG9FOEU7QUdsRDlFOzs4RUhxRDhFO0FHQTlFOzs4RUhHOEU7QUdlOUU7Ozs7Ozs7Ozs7OEVISjhFO0FHd0I5RTs7OEVIckI4RTtBRzJIOUU7OzhFSHhIOEU7QUdnSjlFOzs4RUg3SThFO0FHb0w5RTs7OEVIakw4RTtBR2tPOUU7OzhFSC9OOEU7QUcyUzlFOzs4RUh4UzhFO0FDdkk5RTs7MEREMEkwRDtBQ3ZJMUQ7RUFDRSxlQUFlO0FEeUlqQjs7QUN0SUE7RUFDRSxtQkFBbUI7RUFDbkIsY0NGcUI7RURHckIsb0NDWm1DO0VEYW5DLGdCQUFnQjtBRHlJbEI7O0FDdElBO0VBQ0Usc0JBQXNCO0VBQ3RCLGFBQWE7RUFDYixpQ0FBaUM7QUR5SW5DOztBQ3RJQTtFQUNFLG9DQ3ZCbUM7RUR3Qm5DLGNBQWM7QUR5SWhCOztBQ3RJQTtFQUNFLG9DQzVCbUM7RUQ2Qm5DLGlCQUFpQjtFQUNqQixnQkFBZ0I7RUFDaEIsbUJBQW1CO0FEeUlyQjs7QUN0SUE7RUFDRSxvQkFBb0I7QUR5SXRCOztBQ3ZJQTtFQUNFLGNBQWM7QUQwSWhCOztBQ3hJQTtFQUNFLGdCQUFnQjtBRDJJbEI7O0FDeklBO0VBQ0UsZ0JBQWdCO0FENElsQjs7QUMxSUE7RUFDRSxnQkFBZ0I7QUQ2SWxCOztBQzNJQTtFQUNFLGdCQUFnQjtBRDhJbEI7O0FDNUlBO0VBQ0UsY0FBYztBRCtJaEI7O0FDNUlBO0VBQ0UsbUJBQW1CO0FEK0lyQjs7QUM1SUE7RUFDRSxTQUFTO0FEK0lYOztBQzVJQTtFQUNFLGtCQUFrQjtBRCtJcEI7O0FDNUlBO0VBQ0UsaUJBQWlCO0FEK0luQjs7QUM1SUE7RUFDRSxnQkFBZ0I7QUQrSWxCOztBQzVJQTtFQUNFLGdCQUFnQjtFQUNoQixtQkFBbUI7QUQrSXJCOztBQzVJQTtFQUNFLGdCQUFnQjtFQUNoQixxQkFBcUI7QUQrSXZCOztBQzVJQTtFQUNFLDBCQUEwQjtBRCtJNUI7O0FDNUlBO0VBQ0UseUJBQXlCO0FEK0kzQjs7QUM1SUE7RUFDRSx5QkFBeUI7QUQrSTNCOztBQzVJQTtFQUNFLGlCQUFpQjtBRCtJbkI7O0FDNUlBO0VBQ0UsbUJBQW1CO0FEK0lyQjs7QUM1SUE7RUFDRSxpQkFBaUI7QUQrSW5COztBQzVJQTtFQUNFLGtCQUFrQjtBRCtJcEI7O0FDNUlBO0VBQ0UscUJBQXFCO0FEK0l2Qjs7QUM1SUE7RUFDRSxnQkFBZ0I7RUFDaEIsU0FBUztFQUNULFVBQVU7QUQrSVo7O0FDbEpBO0VBS0ksZ0JBQWdCO0FEaUpwQjs7QUM3SUE7RUFFRSxjQUFjO0VBQ2QsV0FBVztBRCtJYjs7QUNsSkE7RUUvR0ksV0FBVztFQUNYLFdBQVc7RUFDWCxjQUFjO0FIcVFsQjs7QUlwU0E7Ozs7Ozs7OztFSitTRTtBRS9TRjs7Ozs7Ozs7NkVGd1Q2RTtBRTlTN0U7OzBERmlUMEQ7QUU1UzFEOzswREYrUzBEO0FFOVQxRDs7Ozs7Ozs7NkVGdVU2RTtBRTdUN0U7OzBERmdVMEQ7QUUzVDFEOzswREY4VDBEO0FHN1UxRDs7Ozs7Ozs7NkVIc1Y2RTtBRXRWN0U7Ozs7Ozs7OzZFRitWNkU7QUVyVjdFOzswREZ3VjBEO0FFblYxRDs7MERGc1YwRDtBR3hWMUQ7OzhFSDJWOEU7QUdoVjlFOzs4RUhtVjhFO0FHeFU5RTs7OEVIMlU4RTtBRy9UOUU7OzhFSGtVOEU7QUdoVDlFOzs4RUhtVDhFO0FHOVA5RTs7OEVIaVE4RTtBRy9POUU7Ozs7Ozs7Ozs7OEVIMFA4RTtBR3RPOUU7OzhFSHlPOEU7QUduSTlFOzs4RUhzSThFO0FHOUc5RTs7OEVIaUg4RTtBRzFFOUU7OzhFSDZFOEU7QUc1QjlFOzs4RUgrQjhFO0FHNkM5RTs7OEVIMUM4RTtBRXBaOUU7Ozs7Ozs7OzZFRjZaNkU7QUVuWjdFOzswREZzWjBEO0FFaloxRDs7MERGb1owRDtBR25hMUQ7Ozs7Ozs7OzZFSDRhNkU7QUU1YTdFOzs7Ozs7Ozs2RUZxYjZFO0FFM2E3RTs7MERGOGEwRDtBRXphMUQ7OzBERjRhMEQ7QUc5YTFEOzs4RUhpYjhFO0FHdGE5RTs7OEVIeWE4RTtBRzlaOUU7OzhFSGlhOEU7QUdyWjlFOzs4RUh3WjhFO0FHdFk5RTs7OEVIeVk4RTtBR3BWOUU7OzhFSHVWOEU7QUdyVTlFOzs7Ozs7Ozs7OzhFSGdWOEU7QUc1VDlFOzs4RUgrVDhFO0FHek45RTs7OEVINE44RTtBR3BNOUU7OzhFSHVNOEU7QUdoSzlFOzs4RUhtSzhFO0FHbEg5RTs7OEVIcUg4RTtBR3pDOUU7OzhFSDRDOEU7QUUxZTlFOzs7Ozs7Ozs2RUZtZjZFO0FFemU3RTs7MERGNGUwRDtBRXZlMUQ7OzBERjBlMEQ7QUd6ZjFEOzs7Ozs7Ozs2RUhrZ0I2RTtBRWxnQjdFOzs7Ozs7Ozs2RUYyZ0I2RTtBRWpnQjdFOzswREZvZ0IwRDtBRS9mMUQ7OzBERmtnQjBEO0FHcGdCMUQ7OzhFSHVnQjhFO0FHNWY5RTs7OEVIK2Y4RTtBR3BmOUU7OzhFSHVmOEU7QUczZTlFOzs4RUg4ZThFO0FHNWQ5RTs7OEVIK2Q4RTtBRzFhOUU7OzhFSDZhOEU7QUczWjlFOzs7Ozs7Ozs7OzhFSHNhOEU7QUdsWjlFOzs4RUhxWjhFO0FHL1M5RTs7OEVIa1Q4RTtBRzFSOUU7OzhFSDZSOEU7QUd0UDlFOzs4RUh5UDhFO0FHeE05RTs7OEVIMk04RTtBRy9IOUU7OzhFSGtJOEU7QUFwakI5RTs7RUFFRSxlQUFlO0VBQ2YsWUFBWTtFQUNaLGdCQUFnQjtFQUNoQix5QkFBeUI7RUFDekIsa0JBQWtCO0VBQ2xCLFdBQVc7QUFzakJiOztBQW5qQkE7RUFDRSxhQUFhO0FBc2pCZjs7QUFuakJBO0VBQ0UsZUFBZTtBQXNqQmpCOztBQW5qQkE7RUFDRSxZQUFZO0VBQ1osV0FBVztFQUNYLGVBQWU7RUFDZixTQUFTO0VBQ1QsV0FBVztFQUNYLFdBQVc7QUFzakJiOztBQW5qQkE7RUt1QkUsb0JBQW9CO0VBQ3BCLHFCQUFxQjtFQUNyQixrQkFBa0I7RUFDbEIsb0JBQW9CO0VBQ3BCLGFBQWE7RUE2VGIsOEJMdFY4QjtFS3VWOUIsMkJMdlY4QjtFSzZWNUIsMkJMN1Y0QjtFSytWOUIsc0JML1Y4QjtFS3lTNUIsMEJMeFMwQjtFS3lTMUIsdUJMelMwQjtFSzJTNUIsNEJMM1M0QjtFSzRTNUIseUJMNVM0QjtFSzZTNUIsb0JMN1M0QjtFSzJEMUIsNkJBQTZCO0VBQzdCLDRCQUE0QjtFQVE5Qiw4QkxuRThCO0VLb0U5QiwyQkxwRThCO0VLcUU5QiwwQkxyRThCO0VLc0U5QixzQkx0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QUF3QjtFTjZ6Q3BDO0VBaDJDRjtJTXdDYyx1QkFBdUI7RU4yekNuQztFQW4yQ0Y7SU9yQ0ksWUFBWTtJQUNaLGNBQWM7RVAyNENoQjtFQXYyQ0Y7Ozs7SUFzRE0sd0JBQXdCO0VBdXpDNUI7QUFDRiIsImZpbGUiOiJjc3MvY29uanVnYXRpb24uYmE0Y2JjMzkzMmMzMDQ1YzhlNDcuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIGh0dHA6Ly9tZXllcndlYi5jb20vZXJpYy90b29scy9jc3MvcmVzZXQvXG4gKiB2Mi4wIHwgMjAxMTAxMjZcbiAqIExpY2Vuc2U6IG5vbmUgKHB1YmxpYyBkb21haW4pXG4gKi9cbmh0bWwsIGJvZHksIGRpdiwgc3BhbiwgYXBwbGV0LCBvYmplY3QsIGlmcmFtZSxcbmgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsIHAsIGJsb2NrcXVvdGUsIHByZSxcbmEsIGFiYnIsIGFjcm9ueW0sIGFkZHJlc3MsIGJpZywgY2l0ZSwgY29kZSxcbmRlbCwgZGZuLCBlbSwgaW1nLCBpbnMsIGtiZCwgcSwgcywgc2FtcCxcbnNtYWxsLCBzdHJpa2UsIHN0cm9uZywgc3ViLCBzdXAsIHR0LCB2YXIsXG5iLCB1LCBpLCBjZW50ZXIsXG5kbCwgZHQsIGRkLCBvbCwgdWwsIGxpLFxuZmllbGRzZXQsIGZvcm0sIGxhYmVsLCBsZWdlbmQsXG50YWJsZSwgY2FwdGlvbiwgdGJvZHksIHRmb290LCB0aGVhZCwgdHIsIHRoLCB0ZCxcbmFydGljbGUsIGFzaWRlLCBjYW52YXMsIGRldGFpbHMsIGVtYmVkLFxuZmlndXJlLCBmaWdjYXB0aW9uLCBmb290ZXIsIGhlYWRlciwgaGdyb3VwLFxubWVudSwgbmF2LCBvdXRwdXQsIHJ1YnksIHNlY3Rpb24sIHN1bW1hcnksXG50aW1lLCBtYXJrLCBhdWRpbywgdmlkZW8ge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMDtcbiAgZm9udC1zaXplOiAxMDAlO1xuICBmb250OiBpbmhlcml0O1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG4vKiBIVE1MNSBkaXNwbGF5LXJvbGUgcmVzZXQgZm9yIG9sZGVyIGJyb3dzZXJzICovXG5hcnRpY2xlLCBhc2lkZSwgZGV0YWlscywgZmlnY2FwdGlvbiwgZmlndXJlLFxuZm9vdGVyLCBoZWFkZXIsIGhncm91cCwgbWVudSwgbmF2LCBzZWN0aW9uIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5ib2R5IHtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG5vbCwgdWwge1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxuYmxvY2txdW90ZSwgcSB7XG4gIHF1b3Rlczogbm9uZTtcbn1cbmJsb2NrcXVvdGU6YmVmb3JlLCBibG9ja3F1b3RlOmFmdGVyLFxucTpiZWZvcmUsIHE6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgY29udGVudDogbm9uZTtcbn1cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7XG59IiwiQGltcG9ydCBcIkhlbHBlcnMvcmVzZXRcIjtcbkBpbXBvcnQgXCJHZW5lcmFsL2Jhc2VcIjtcbkBpbXBvcnQgXCJIZWxwZXJzL2ZsZXhcIjtcbkBpbXBvcnQgXCJIZWxwZXJzL21lZGlhLXF1ZXJpZXNcIjtcblxuQGltcG9ydCBcIlBhcnRpYWxzL2Zvb3RlclwiO1xuQGltcG9ydCBcIlBhcnRpYWxzL2hlYWRlclwiO1xuQGltcG9ydCBcIlBhcnRpYWxzL21haW5cIjtcbkBpbXBvcnQgXCJQYXJ0aWFscy9tZW51XCI7XG5cbkBpbXBvcnQgXCJFeHRlbnNpb25zL3ZlcmJcIjtcblxuaHRtbCxcbmJvZHkge1xuICBmb250LXNpemU6IDE2cHg7XG4gIGhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogbm9uZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmxnLWRvd25sb2Fke1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4udG9nZ2xle1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5vdXRzaWRle1xuICBoZWlnaHQ6IDEwMCU7XG4gIGxlZnQ6IC0yMDAlO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIHotaW5kZXg6IC0xO1xufVxuXG4jcGFnZSB7XG4gIEBpbmNsdWRlIGZsZXhib3g7XG4gIEBpbmNsdWRlIGFsaWduLWNvbnRlbnQoc3RyZXRjaCk7XG4gIEBpbmNsdWRlIGFsaWduLWl0ZW1zKHN0cmV0Y2gpO1xuICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihjb2x1bW4pO1xuICBAaW5jbHVkZSBqdXN0aWZ5LWNvbnRlbnQoc3RyZXRjaCk7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHJpZ2h0OiAwO1xuICB0b3A6IDA7XG4gIHdpZHRoOiAxMDAlO1xuXG4gIEBpbmNsdWRlIHNjcmVlbi1kZXNrdG9wIHtcbiAgICBAaW5jbHVkZSBoZWFkZXItZGVza3RvcDtcbiAgICBAaW5jbHVkZSBtZW51LWRlc2t0b3A7XG4gICAgQGluY2x1ZGUgZXh0LXZlcmItZGVza3RvcDtcbiAgICBAaW5jbHVkZSBtYWluLWRlc2t0b3Age1xuICAgIH1cbiAgICBAaW5jbHVkZSBmb290ZXItZGVza3RvcDtcbiAgICBbZGF0YS1tZWRpYSo9XCJoLWRlc2t0b3BcIl0sXG4gICAgLmgtZGVza3RvcCxcbiAgICAucy10YWJsZXQsXG4gICAgLnMtc21hcnRwaG9uZSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG4gIEBpbmNsdWRlIHNjcmVlbi10YWJsZXQge1xuICAgIEBpbmNsdWRlIGhlYWRlci10YWJsZXQ7XG4gICAgQGluY2x1ZGUgbWVudS10YWJsZXQ7XG4gICAgQGluY2x1ZGUgZXh0LXZlcmItdGFibGV0O1xuICAgIEBpbmNsdWRlIG1haW4tdGFibGV0IHtcbiAgICB9XG4gICAgQGluY2x1ZGUgZm9vdGVyLXRhYmxldDtcbiAgICBbZGF0YS1tZWRpYSo9XCJoLXRhYmxldFwiXSxcbiAgICAuaC10YWJsZXQsXG4gICAgLnMtZGVza3RvcCxcbiAgICAucy1zbWFydHBob25lIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbiAgQGluY2x1ZGUgc2NyZWVuLXNtYXJ0cGhvbmUge1xuICAgIEBpbmNsdWRlIGhlYWRlci1zbWFydHBob25lO1xuICAgIEBpbmNsdWRlIG1lbnUtc21hcnRwaG9uZTtcbiAgICBAaW5jbHVkZSBleHQtdmVyYi1zbWFydHBob25lO1xuICAgIEBpbmNsdWRlIG1haW4tc21hcnRwaG9uZSB7XG4gICAgfVxuICAgIEBpbmNsdWRlIGZvb3Rlci1zbWFydHBob25lO1xuICAgIFtkYXRhLW1lZGlhKj1cImgtc21hcnRwaG9uZVwiXSxcbiAgICAuaC1zbWFydHBob25lLFxuICAgIC5zLWRlc2t0b3AsXG4gICAgLnMtdGFibGV0IHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn0iLCIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICoqKiBHTE9CQUxTIENTUyBGSUxFXG4gICAgKioqXG4gICAgKioqIEF1dGhvcjogTWF0dGhpYXMgVG9zY2FuZWxsaVxuICAgICoqKiBDb3B5cmlnaHQ6IENvZGUtU291cmNlXG4gICAgKioqXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAqKioqKiAgSW1wb3J0YXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuQGltcG9ydCBcIi4uL2NvbnN0YW50c1wiO1xuQGltcG9ydCBcIi4uL0hlbHBlcnMvbWl4aW5zXCI7XG5cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAqKioqKiAgQkFTRSBEZWZpbml0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbmh0bWwge1xuICBmb250LXNpemU6IDE2cHg7XG59XG5cbmJvZHkge1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICBjb2xvcjogJGRlZmF1bHQtY29sb3I7XG4gIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHk7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG59XG5cbioge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBvdXRsaW5lOiBub25lO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG59XG5cbnRhYmxlLCB0ZXh0YXJlYSwgaW5wdXQsIGJ1dHRvbntcbiAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseTtcbiAgZm9udC1zaXplOiAxZW07XG59XG5cbmgxLCBoMiwgaDMsIGg0LCBoNSwgaDYge1xuICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGluZS1oZWlnaHQ6IDFlbTtcbiAgbWFyZ2luOiAwIDAgMC41ZW0gMDtcbn1cblxuaDEgYSwgaDIgYSwgaDMgYSwgaDQgYSwgaDUgYSwgaDYgYSB7XG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xufVxuaDF7XG4gIGZvbnQtc2l6ZTogMmVtO1xufVxuaDJ7XG4gIGZvbnQtc2l6ZTogMS44ZW07XG59XG5oM3tcbiAgZm9udC1zaXplOiAxLjZlbTtcbn1cbmg0e1xuICBmb250LXNpemU6IDEuNGVtO1xufVxuaDV7XG4gIGZvbnQtc2l6ZTogMS4yZW07XG59XG5oNntcbiAgZm9udC1zaXplOiAxZW07XG59XG5cbnAge1xuICBtYXJnaW46IDAgMCAwLjRlbSAwO1xufVxuXG5wIGltZyB7XG4gIG1hcmdpbjogMDtcbn1cblxuZW0sIGkge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbnN0cm9uZywgYiB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogMC44ZW07XG59XG5cbnN1YiB7XG4gIGZvbnQtc2l6ZTogMC44ZW07XG4gIHZlcnRpY2FsLWFsaWduOiBzdWI7XG59XG5cbnN1cCB7XG4gIGZvbnQtc2l6ZTogMC44ZW07XG4gIHZlcnRpY2FsLWFsaWduOiBzdXBlcjtcbn1cblxuLnVjZmlyc3Qge1xuICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbn1cblxuLnRvbG93ZXIge1xuICB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlO1xufVxuXG4udG91cHBlciB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cbi5pbmRlbnQge1xuICBwYWRkaW5nLWxlZnQ6IDFlbTtcbn1cblxuLm5vcm1hbCB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG5cbi5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLml0YWxpYyB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuYS5jbGVhciB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxudWwuY2xlYXIge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGxpIHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICB9XG59XG5cbi5jbGVhcmZpeCB7XG4gIEBpbmNsdWRlIGNsZWFyZml4KCk7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICB3aWR0aDogMTAwJTtcbn0iLCIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICoqKiBHRU5FUkFMIENPTlNUQU5UIEZJTEVcbiAgICAqKipcbiAgICAqKiogVGhpcyBmaWxlIGNvbnRhaW5zIGFsbCBjb25zdGFudHMgZm9yIFNDU1MgZ2VuZXJhdGlvblxuICAgICoqKlxuICAgICoqKiBBdXRob3I6IE1hdHRoaWFzIFRvc2NhbmVsbGlcbiAgICAqKiogQ29weXJpZ2h0OiBDb2RlLVNvdXJjZVxuICAgICoqKlxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgKioqKiogIEZvbnRzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuJGZvbnQtZmFtaWx5OiAnT3BlbiBTYW5zJywgc2Fucy1zZXJpZjtcblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAqKioqKiAgQ29sb3JzICYgQmFja2dyb3VuZHNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiRhLWNvbG9yOiBibHVlO1xuJGEtY29sb3ItaG92ZXI6IGJsdWU7XG5cbiRkZWZhdWx0LWNvbG9yOiAjMDAwMDAwO1xuXG4iLCIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICoqKiBHRU5FUkFMIE1JWElOUyBGSUxFXG4gICAgKioqXG4gICAgKioqIFRoaXMgZmlsZSBjb250YWlucyBhbGwgbWl4aW5zIGZvciBTQ1NTIGdlbmVyYXRpb25cbiAgICAqKipcbiAgICAqKiogQXV0aG9yOiBNYXR0aGlhcyBUb3NjYW5lbGxpXG4gICAgKioqIENvcHlyaWdodDogQ29kZS1Tb3VyY2VcbiAgICAqKipcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5AaW1wb3J0IFwiLi4vY29uc3RhbnRzXCI7XG5cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICoqKiBSVEVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbkBtaXhpbiBydGUge1xuICAucnRlLFxuICAuY2UtYm9keXRleHQsXG4gIC5odG1sYXJlYS1jb250ZW50LWJvZHkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAqKiogQ0xFQVIgRklYXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5AbWl4aW4gY2xlYXJmaXgge1xuICAmOmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgfVxufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgKioqIFRSQU5TSVRJT05cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbkBtaXhpbiB0cmFuc2l0aW9uKCRwcm9wLCAkZGVsYXk6MC41cywgJGVmZmVjdDplYXNlKSB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogJHByb3AgJGRlbGF5ICRlZmZlY3Q7XG4gIC1tb3otdHJhbnNpdGlvbjogJHByb3AgJGRlbGF5ICRlZmZlY3Q7XG4gIC1tcy10cmFuc2l0aW9uOiAkcHJvcCAkZGVsYXkgJGVmZmVjdDtcbiAgLW8tdHJhbnNpdGlvbjogJHByb3AgJGRlbGF5ICRlZmZlY3Q7XG4gIHRyYW5zaXRpb246ICRwcm9wICRkZWxheSAkZWZmZWN0O1xufVxuXG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAqKiogUExBQ0VIT0xERVJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbkBtaXhpbiBwbGFjZWhvbGRlciB7XG4gICY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgIEBjb250ZW50XG4gIH1cbiAgJjotbW96LXBsYWNlaG9sZGVyIHtcbiAgICBAY29udGVudFxuICB9XG4gICY6Oi1tb3otcGxhY2Vob2xkZXIge1xuICAgIEBjb250ZW50XG4gIH1cbiAgJjotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgIEBjb250ZW50XG4gIH1cbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICoqKiBCT1JERVIgUkFESVVTXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5AbWl4aW4gYm9yZGVyLXJhZGl1cygkcmFkaXVzKSB7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogJHJhZGl1cztcbiAgYm9yZGVyLXJhZGl1czogJHJhZGl1cztcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDsgLyogc3RvcHMgYmcgY29sb3IgZnJvbSBsZWFraW5nIG91dHNpZGUgdGhlIGJvcmRlcjogKi9cbn1cblxuQG1peGluIGJvcmRlci10b3AtcmFkaXVzKCRyYWRpdXMpIHtcbiAgLXdlYmtpdC1ib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJHJhZGl1cztcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRyYWRpdXM7XG4gIC13ZWJraXQtYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJHJhZGl1cztcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJHJhZGl1cztcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbn1cblxuQG1peGluIGJvcmRlci1yaWdodC1yYWRpdXMoJHJhZGl1cykge1xuICAtd2Via2l0LWJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkcmFkaXVzO1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJHJhZGl1cztcbiAgLXdlYmtpdC1ib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJHJhZGl1cztcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRyYWRpdXM7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG59XG5cbkBtaXhpbiBib3JkZXItYm90dG9tLXJhZGl1cygkcmFkaXVzKSB7XG4gIC13ZWJraXQtYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRyYWRpdXM7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkcmFkaXVzO1xuICAtd2Via2l0LWJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRyYWRpdXM7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRyYWRpdXM7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG59XG5cbkBtaXhpbiBib3JkZXItbGVmdC1yYWRpdXMoJHJhZGl1cykge1xuICAtd2Via2l0LWJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRyYWRpdXM7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRyYWRpdXM7XG4gIC13ZWJraXQtYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJHJhZGl1cztcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJHJhZGl1cztcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbn1cblxuQG1peGluIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXMoJHJhZGl1cykge1xuICAtd2Via2l0LWJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRyYWRpdXM7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRyYWRpdXM7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG59XG5cbkBtaXhpbiBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1cygkcmFkaXVzKSB7XG4gIC13ZWJraXQtYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRyYWRpdXM7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkcmFkaXVzO1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgKioqIFBMQUNFSE9MREVSXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5AbWl4aW4gcGxhY2Vob2xkZXIge1xuICAmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICBAY29udGVudFxuICB9XG4gICY6LW1vei1wbGFjZWhvbGRlciB7XG4gICAgQGNvbnRlbnRcbiAgfVxuICAmOjotbW96LXBsYWNlaG9sZGVyIHtcbiAgICBAY29udGVudFxuICB9XG4gICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICBAY29udGVudFxuICB9XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAqKiogUFJFRklYXG4gICAgKioqIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxuXG4gICAgICAgIFVzYWdlOlxuICAgICAgICBAaW5jbHVkZSBwcmVmaXgoKFxuICAgICAgICAgIGNvbHVtbi1jb3VudDogMyxcbiAgICAgICAgICBjb2x1bW4tZ2FwOiAxLjVlbSxcbiAgICAgICAgICBjb2x1bW4tcnVsZTogMnB4IHNvbGlkIGhvdHBpbmtcbiAgICAgICAgKSwgd2Via2l0IG1veik7XG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5AbWl4aW4gcHJlZml4KCRkZWNsYXJhdGlvbnMsICRwcmVmaXhlczogKCkpIHtcbiAgQGVhY2ggJHByb3BlcnR5LCAkdmFsdWUgaW4gJGRlY2xhcmF0aW9ucyB7XG4gICAgQGVhY2ggJHByZWZpeCBpbiAkcHJlZml4ZXMge1xuICAgICAgI3snLScgKyAkcHJlZml4ICsgJy0nICsgJHByb3BlcnR5fTogJHZhbHVlO1xuICAgIH1cbiAgICAjeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgfVxufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgKioqIFRSSUFOR0xFIEZPUiBESUFMT0cgQk9YXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5AbWl4aW4gYm94LXRyaWFuZ2xlKCRib3gtZWRnZSAgICAgICAgIDogYm90dG9tLFxuICAgICAgICAgICAgICAgICAkZWRnZS1zaWRlICAgICAgICA6IGNlbnRlcixcbiAgICAgICAgICAgICAgICAgJGFycm93LXNpemUgICAgICAgOiAxMHB4LFxuICAgICAgICAgICAgICAgICAkZWRnZS1zaWRlLW9mZnNldCA6IDAsXG4gICAgICAgICAgICAgICAgICRmaWxsLWNvbG9yICAgICAgIDogYmxhY2ssXG4gICAgICAgICAgICAgICAgICRib3JkZXItY29sb3IgICAgIDogbm9uZSxcbiAgICAgICAgICAgICAgICAgJGJvcmRlci1zdHlsZSAgICAgOiBib3JkZXIpIHtcblxuICAvLyBpbml0aWF0ZSBpbnRlcm5hbCB2YXJpYWJsZXNcbiAgJGJveC1lZGdlLWludmVyc2U6IGJvdHRvbTtcbiAgJGVkZ2Utc2lkZS1pbnZlcnNlOiByaWdodDtcbiAgJGVkZ2Utc2lkZS1wb3M6ICRlZGdlLXNpZGU7XG4gICRlZGdlLXNpZGUtcG9zLXZhbHVlOiAwO1xuXG4gIC8vIGVzdGFibGlzaCBpbnZlcnNlIHZhcmlhYmxlc1xuICBAaWYgJGJveC1lZGdlID09IHRvcCB7XG4gICAgJGJveC1lZGdlLWludmVyc2U6IGJvdHRvbTtcbiAgfSBAZWxzZSBpZiAkYm94LWVkZ2UgPT0gcmlnaHQge1xuICAgICRib3gtZWRnZS1pbnZlcnNlOiBsZWZ0O1xuICB9IEBlbHNlIGlmICRib3gtZWRnZSA9PSBib3R0b20ge1xuICAgICRib3gtZWRnZS1pbnZlcnNlOiB0b3A7XG4gIH0gQGVsc2UgaWYgJGJveC1lZGdlID09IGxlZnQge1xuICAgICRib3gtZWRnZS1pbnZlcnNlOiByaWdodDtcbiAgfVxuXG4gIC8vIGNhbGN1bGF0ZSByZW1haW5pbmcgaW50ZXJuYWwgdmFyaWFibGVzXG4gIEBpZiAoJGJveC1lZGdlID09ICd0b3AnIG9yXG4gICAgICAgJGJveC1lZGdlID09ICdib3R0b20nKSB7XG4gICAgQGlmICRlZGdlLXNpZGUgPT0gY2VudGVyIHtcbiAgICAgICRlZGdlLXNpZGUtcG9zOiBsZWZ0O1xuICAgICAgJGVkZ2Utc2lkZS1pbnZlcnNlOiByaWdodDtcbiAgICAgICRlZGdlLXNpZGUtcG9zLXZhbHVlOiA1MCU7XG4gICAgICAkZWRnZS1zaWRlLW9mZnNldDogKC0kYXJyb3ctc2l6ZSk7XG4gICAgfSBAZWxzZSBpZiAkZWRnZS1zaWRlID09ICdsZWZ0JyB7XG4gICAgICAkZWRnZS1zaWRlLWludmVyc2U6IHJpZ2h0O1xuICAgIH0gQGVsc2UgaWYgJGVkZ2Utc2lkZSA9PSAncmlnaHQnIHtcbiAgICAgICRlZGdlLXNpZGUtaW52ZXJzZTogbGVmdDtcbiAgICB9XG4gIH1cbiAgQGlmICgkYm94LWVkZ2UgPT0gJ2xlZnQnIG9yXG4gICAgICAgJGJveC1lZGdlID09ICdyaWdodCcpIHtcbiAgICBAaWYgJGVkZ2Utc2lkZSA9PSBjZW50ZXIge1xuICAgICAgJGVkZ2Utc2lkZS1wb3M6IHRvcDtcbiAgICAgICRlZGdlLXNpZGUtaW52ZXJzZTogYm90dG9tO1xuICAgICAgJGVkZ2Utc2lkZS1wb3MtdmFsdWU6IDUwJTtcbiAgICAgICRlZGdlLXNpZGUtb2Zmc2V0OiAoLSRhcnJvdy1zaXplKTtcbiAgICB9IEBlbHNlIGlmICRlZGdlLXNpZGUgPT0gJ3RvcCcge1xuICAgICAgJGVkZ2Utc2lkZS1pbnZlcnNlOiBib3R0b207XG4gICAgfSBAZWxzZSBpZiAkZWRnZS1zaWRlID09ICdib3R0b20nIHtcbiAgICAgICRlZGdlLXNpZGUtaW52ZXJzZTogdG9wO1xuICAgIH1cbiAgfVxuXG4gICY6YWZ0ZXIsICY6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIiBcIjtcbiAgICBoZWlnaHQ6IDA7XG4gICAgd2lkdGg6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIGJvcmRlcjogc29saWQgcmdiYSgjZmZmLCAwKTtcbiAgfVxuXG4gICY6YWZ0ZXIge1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgjZmZmLCAwKTtcbiAgICBib3JkZXItd2lkdGg6ICRhcnJvdy1zaXplIC0gMTtcbiAgICAjeyRib3gtZWRnZX06ICgtJGFycm93LXNpemUpIC0gJGFycm93LXNpemUgKyAyO1xuICAgIGJvcmRlci0jeyRib3gtZWRnZS1pbnZlcnNlfS1jb2xvcjogJGZpbGwtY29sb3I7XG4gICAgI3skYm94LWVkZ2UtaW52ZXJzZX06IGF1dG87XG4gICAgI3skZWRnZS1zaWRlLWludmVyc2V9OiBhdXRvO1xuICAgICN7JGVkZ2Utc2lkZS1wb3N9OiAkZWRnZS1zaWRlLXBvcy12YWx1ZTtcbiAgICBtYXJnaW4tI3skZWRnZS1zaWRlLXBvc306ICRlZGdlLXNpZGUtb2Zmc2V0ICsgMTtcbiAgfVxuXG4gIEBpZiAkYm9yZGVyLXN0eWxlID09IGZsYWcge1xuICAgIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoMnB4KTtcbiAgICAmOmJlZm9yZSB7XG4gICAgICBib3JkZXItY29sb3I6IHJnYmEoI2ZmZiwgMCk7XG4gICAgICBib3JkZXItd2lkdGg6ICRhcnJvdy1zaXplIC0gMTtcbiAgICAgICN7JGJveC1lZGdlfTogKC0kYXJyb3ctc2l6ZSkgLSAkYXJyb3ctc2l6ZSArIDI7XG4gICAgICBib3JkZXItI3skYm94LWVkZ2UtaW52ZXJzZX0tY29sb3I6ICRib3JkZXItY29sb3I7XG4gICAgICAjeyRib3gtZWRnZS1pbnZlcnNlfTogYXV0bztcbiAgICAgICN7JGVkZ2Utc2lkZS1pbnZlcnNlfTogYXV0bztcbiAgICAgICN7JGVkZ2Utc2lkZS1wb3N9OiAkZWRnZS1zaWRlLXBvcy12YWx1ZTtcbiAgICAgIG1hcmdpbi0jeyRlZGdlLXNpZGUtcG9zfTogJGVkZ2Utc2lkZS1vZmZzZXQgKyAyO1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKCNmZmYsIDApO1xuICAgICAgYm9yZGVyLXdpZHRoOiAkYXJyb3ctc2l6ZTtcbiAgICAgICN7JGJveC1lZGdlfTogKC0kYXJyb3ctc2l6ZSkgLSAkYXJyb3ctc2l6ZTtcbiAgICAgIGJvcmRlci0jeyRib3gtZWRnZS1pbnZlcnNlfS1jb2xvcjogJGJvcmRlci1jb2xvcjtcbiAgICAgICN7JGJveC1lZGdlLWludmVyc2V9OiBhdXRvO1xuICAgICAgI3skZWRnZS1zaWRlLWludmVyc2V9OiBhdXRvO1xuICAgICAgI3skZWRnZS1zaWRlLXBvc306ICRlZGdlLXNpZGUtcG9zLXZhbHVlO1xuICAgICAgbWFyZ2luLSN7JGVkZ2Utc2lkZS1wb3N9OiAkZWRnZS1zaWRlLW9mZnNldDtcbiAgICB9XG4gIH1cbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICoqKiBCVVRUT04gU01BTExcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbkBtaXhpbiBzbWFsbC1idXR0b24ge1xuICBiYWNrZ3JvdW5kOiAkY29sb3ItMTtcbiAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLTE7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogZW0tc2l6ZSgxOCk7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGhlaWdodDogZW0tc2l6ZSgzMCwgMTgpO1xuICBsaW5lLWhlaWdodDogZW0tc2l6ZSgzMCwgMTgpO1xuICBtYXJnaW46IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmc6IDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAqKiogQWN0aXZpdHkgYnV0dG9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5AbWl4aW4gYWN0aXZpdHktYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCA4cHggMCByZ2JhKDAsIDAsIDAsIDAuOCk7XG4gIC1tb3otYm94LXNoYWRvdzogMCAwIDhweCAwIHJnYmEoMCwgMCwgMCwgMC44KTtcbiAgYm94LXNoYWRvdzogMCAwIDhweCAwIHJnYmEoMCwgMCwgMCwgMC44KTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogM2VtO1xuICBtYXgtaGVpZ2h0OiA4MHB4O1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmctdG9wOiA5NC4xMyU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHdpZHRoOiA4NXB4O1xuXG4gID4gaSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbGVmdDogMDtcbiAgICBtYXJnaW4tdG9wOiAtMC41ZW07XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gICYubGVhcm4ge1xuICAgIGNvbG9yOiAkY29sb3ItNTtcbiAgfVxuICAmLnRyYWluIHtcbiAgICBjb2xvcjogJGNvbG9yLTQ7XG4gIH1cbiAgJi5wbGF5IHtcbiAgICBjb2xvcjogJGNvbG9yLTY7XG4gIH1cbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICoqKiBGaWx0ZXIgbWVudVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuQG1peGluIGZpbHRlci1tZW51IHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gID4gdWwge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24obWF4LWhlaWdodCk7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgOHB4IDAgcmdiYSgwLCAwLCAwLCAwLjYpO1xuICAgIC1tb3otYm94LXNoYWRvdzogMCAwIDhweCAwIHJnYmEoMCwgMCwgMCwgMC42KTtcbiAgICBib3gtc2hhZG93OiAwIDAgOHB4IDAgcmdiYSgwLCAwLCAwLCAwLjYpO1xuICAgIGNvbG9yOiAkY29sb3ItOTtcbiAgICBtYXgtaGVpZ2h0OiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogMCAyMHB4IDAgMTBweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IC0xNXB4O1xuICAgIHRvcDogNXB4O1xuICAgIHotaW5kZXg6IDA7XG5cbiAgICA+IGxpIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGhlaWdodDogMzVweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAzNXB4O1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICA+IGEge1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgfVxuXG4gICAgICAmOm50aC1vZi10eXBlKDEpIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjb2xvci05O1xuICAgICAgICBwYWRkaW5nOiAwIDIwcHggMCAxMHB4O1xuICAgICAgICBtYXJnaW46IDAgLTIwcHggMCAtMTBweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgJi50b2dnbGVkIHtcbiAgICA+IHVsIHtcbiAgICAgIG1heC1oZWlnaHQ6IDIwMHB4O1xuICAgICAgcGFkZGluZzogMCAyMHB4IDVweCAxMHB4O1xuICAgIH1cbiAgfVxufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgKioqIEZvb3RlciBhY3Rpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5AbWl4aW4gZm9vdGVyLWFjdGlvbnMge1xuICBsZWZ0OiA1cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgdG9wOiAwO1xuXG4gID4gLnRvZ2dsZSB7XG4gICAgY29sb3I6ICRjb2xvci05O1xuICAgIGZvbnQtc2l6ZTogMjZweDtcbiAgICBoZWlnaHQ6IDUwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDUwcHg7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgd2lkdGg6IDUwcHg7XG4gIH1cblxuICA+IC5idXR0b25zIHtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKG1heC1oZWlnaHQpO1xuICAgIGJvdHRvbTogNDBweDtcbiAgICBtYXgtaGVpZ2h0OiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IDI7XG5cbiAgICA+IC5saW5rcyB7XG4gICAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgICAgcGFkZGluZzogNXB4O1xuXG4gICAgICA+IGRpdixcbiAgICAgID4gYSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3ItOTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgPiBzcGFuIHtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMTVweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgID4gLmFycm93IHtcbiAgICAgIEBpbmNsdWRlIGJveC10cmlhbmdsZShib3R0b20sIGxlZnQsIDE1cHgsIDVweCwgI2ZmZmZmZik7XG4gICAgICBoZWlnaHQ6IDE1cHg7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB0b3A6IC0xNXB4O1xuICAgIH1cbiAgfVxuXG4gICYucmlnaHQge1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IDVweDtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcblxuICAgID4gLnRvZ2dsZSB7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICB9XG5cbiAgICA+IC5idXR0b25zIHtcbiAgICAgIHJpZ2h0OiAwO1xuXG4gICAgICA+IC5hcnJvdyB7XG4gICAgICAgIEBpbmNsdWRlIGJveC10cmlhbmdsZShib3R0b20sIHJpZ2h0LCAxNXB4LCA4cHgsICNmZmZmZmYpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYudG9nZ2xlZCB7XG4gICAgPiAuYnV0dG9ucyB7XG4gICAgICBtYXgtaGVpZ2h0OiAyMDBweDtcbiAgICB9XG4gIH1cbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICoqKiBIaWRlIHNjcm9sbGJhclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuQG1peGluIGhpZGUtc2Nyb2xsYmFye1xuICBvdmVyZmxvdy15OiAtbW96LXNjcm9sbGJhcnMtbm9uZSAhaW1wb3J0YW50O1xuICBvdmVyZmxvdy15OiBzY3JvbGwgIWltcG9ydGFudDtcbiAgc2Nyb2xsYmFyLXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gIC1tcy1vdmVyZmxvdy1zdHlsZTogbm9uZTtcblxuICAmOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgd2lkdGg6IDAgIWltcG9ydGFudDtcbiAgfVxufSIsIi8qICBBdXRob3I6IFJhZmFsIEJyb21pcnNraVxuICogIHd3dzogaHR0cDovL3JhZmFsYnJvbWlyc2tpLmNvbS9cbiAqICBnaXRodWI6IGh0dHA6Ly9naXRodWIuY29tL3BhcmFub2lkYS9zYXNzLW1lZGlhcXVlcmllc1xuICpcbiAqICBMaWNlbnNlZCB1bmRlciBhIE1JVCBMaWNlbnNlXG4gKlxuICogIFZlcnNpb246XG4gKiAgMS42LjFcbiAqIC0tLSBnZW5lcmF0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuQG1peGluIG1xKCRhcmdzLi4uKSB7XG4gICRtZWRpYS10eXBlOiAnb25seSBzY3JlZW4nO1xuICAkbWVkaWEtdHlwZS1rZXk6ICdtZWRpYS10eXBlJztcbiAgJGFyZ3M6IGtleXdvcmRzKCRhcmdzKTtcbiAgJGV4cHI6ICcnO1xuXG4gIEBpZiBtYXAtaGFzLWtleSgkYXJncywgJG1lZGlhLXR5cGUta2V5KSB7XG4gICAgJG1lZGlhLXR5cGU6IG1hcC1nZXQoJGFyZ3MsICRtZWRpYS10eXBlLWtleSk7XG4gICAgJGFyZ3M6IG1hcC1yZW1vdmUoJGFyZ3MsICRtZWRpYS10eXBlLWtleSk7XG4gIH1cblxuICBAZWFjaCAka2V5LCAkdmFsdWUgaW4gJGFyZ3Mge1xuICAgIEBpZiAkdmFsdWUge1xuICAgICAgJGV4cHI6IFwiI3skZXhwcn0gYW5kICgjeyRrZXl9OiAjeyR2YWx1ZX0pXCI7XG4gICAgfVxuICB9XG5cbiAgQG1lZGlhICN7JG1lZGlhLXR5cGV9ICN7JGV4cHJ9IHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyAtLS0gc2NyZWVuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AbWl4aW4gc2NyZWVuKCRtaW4sICRtYXgsICRvcmllbnRhdGlvbjogZmFsc2UpIHtcbiAgQGluY2x1ZGUgbXEoJG1pbi13aWR0aDogJG1pbiwgJG1heC13aWR0aDogJG1heCwgJG9yaWVudGF0aW9uOiAkb3JpZW50YXRpb24pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gbWF4LXNjcmVlbigkbWF4KSB7XG4gIEBpbmNsdWRlIG1xKCRtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gbWluLXNjcmVlbigkbWluKSB7XG4gIEBpbmNsdWRlIG1xKCRtaW4td2lkdGg6ICRtaW4pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gc2NyZWVuLWhlaWdodCgkbWluLCAkbWF4LCAkb3JpZW50YXRpb246IGZhbHNlKSB7XG4gIEBpbmNsdWRlIG1xKCRtaW4taGVpZ2h0OiAkbWluLCAkbWF4LWhlaWdodDogJG1heCwgJG9yaWVudGF0aW9uOiAkb3JpZW50YXRpb24pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gbWF4LXNjcmVlbi1oZWlnaHQoJG1heCkge1xuICBAaW5jbHVkZSBtcSgkbWF4LWhlaWdodDogJG1heCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBtaW4tc2NyZWVuLWhlaWdodCgkbWluKSB7XG4gIEBpbmNsdWRlIG1xKCRtaW4taGVpZ2h0OiAkbWluKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gLS0tIGhkcGkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQG1peGluIGhkcGkoJHJhdGlvOiAxLjMpIHtcbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAkcmF0aW8pLFxuICBvbmx5IHNjcmVlbiBhbmQgKG1pbi1yZXNvbHV0aW9uOiAje3JvdW5kKCRyYXRpbyo5Nil9ZHBpKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gLS0tIGhkdHYgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQG1peGluIGhkdHYoJHN0YW5kYXJkOiAnMTA4MCcpIHtcbiAgJG1pbi13aWR0aDogZmFsc2U7XG4gICRtaW4taGVpZ2h0OiBmYWxzZTtcblxuICAkc3RhbmRhcmRzOiAoJzcyMHAnLCAxMjgwcHgsIDcyMHB4KVxuICAgICAgICAgICgnMTA4MCcsIDE5MjBweCwgMTA4MHB4KVxuICAgICAgICAgICgnMksnLCAyMDQ4cHgsIDEwODBweClcbiAgICAgICAgICAoJzRLJywgNDA5NnB4LCAyMTYwcHgpO1xuXG4gIEBlYWNoICRzIGluICRzdGFuZGFyZHMge1xuICAgIEBpZiAkc3RhbmRhcmQgPT0gbnRoKCRzLCAxKSB7XG4gICAgICAkbWluLXdpZHRoOiBudGgoJHMsIDIpO1xuICAgICAgJG1pbi1oZWlnaHQ6IG50aCgkcywgMyk7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgbXEoXG4gICAgICAgICAgJG1pbi1kZXZpY2Utd2lkdGg6ICRtaW4td2lkdGgsXG4gICAgICAgICAgJG1pbi1kZXZpY2UtaGVpZ2h0OiAkbWluLWhlaWdodCxcbiAgICAgICAgICAkbWluLXdpZHRoOiAkbWluLXdpZHRoLFxuICAgICAgICAgICRtaW4taGVpZ2h0OiAkbWluLWhlaWdodFxuICApIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyAtLS0gaXBob25lNCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AbWl4aW4gaXBob25lNCgkb3JpZW50YXRpb246IGZhbHNlKSB7XG4gICRtaW46IDMyMHB4O1xuICAkbWF4OiA0ODBweDtcbiAgJHBpeGVsLXJhdGlvOiAyO1xuICAkYXNwZWN0LXJhdGlvOiAnMi8zJztcblxuICBAaW5jbHVkZSBtcShcbiAgICAgICAgICAkbWluLWRldmljZS13aWR0aDogJG1pbixcbiAgICAgICAgICAkbWF4LWRldmljZS13aWR0aDogJG1heCxcbiAgICAgICAgICAkb3JpZW50YXRpb246ICRvcmllbnRhdGlvbixcbiAgICAgICAgICAkZGV2aWNlLWFzcGVjdC1yYXRpbzogJGFzcGVjdC1yYXRpbyxcbiAgICAgICAgICAkLXdlYmtpdC1kZXZpY2UtcGl4ZWwtcmF0aW86ICRwaXhlbC1yYXRpb1xuICApIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyAtLS0gaXBob25lNSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AbWl4aW4gaXBob25lNSgkb3JpZW50YXRpb246IGZhbHNlKSB7XG4gICRtaW46IDMyMHB4O1xuICAkbWF4OiA1NjhweDtcbiAgJHBpeGVsLXJhdGlvOiAyO1xuICAkYXNwZWN0LXJhdGlvOiAnNDAvNzEnO1xuXG4gIEBpbmNsdWRlIG1xKFxuICAgICAgICAgICRtaW4tZGV2aWNlLXdpZHRoOiAkbWluLFxuICAgICAgICAgICRtYXgtZGV2aWNlLXdpZHRoOiAkbWF4LFxuICAgICAgICAgICRvcmllbnRhdGlvbjogJG9yaWVudGF0aW9uLFxuICAgICAgICAgICRkZXZpY2UtYXNwZWN0LXJhdGlvOiAkYXNwZWN0LXJhdGlvLFxuICAgICAgICAgICQtd2Via2l0LWRldmljZS1waXhlbC1yYXRpbzogJHBpeGVsLXJhdGlvXG4gICkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIC0tLSBpcGhvbmU2IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBtaXhpbiBpcGhvbmU2KCRvcmllbnRhdGlvbjogZmFsc2UpIHtcbiAgJG1pbjogMzc1cHg7XG4gICRtYXg6IDY2N3B4O1xuICAkcGl4ZWwtcmF0aW86IDI7XG5cbiAgQGluY2x1ZGUgbXEoXG4gICAgICAgICAgJG1pbi1kZXZpY2Utd2lkdGg6ICRtaW4sXG4gICAgICAgICAgJG1heC1kZXZpY2Utd2lkdGg6ICRtYXgsXG4gICAgICAgICAgJG9yaWVudGF0aW9uOiAkb3JpZW50YXRpb24sXG4gICAgICAgICAgJC13ZWJraXQtZGV2aWNlLXBpeGVsLXJhdGlvOiAkcGl4ZWwtcmF0aW9cbiAgKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gLS0tIGlwaG9uZTYgcGx1cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQG1peGluIGlwaG9uZTYtcGx1cygkb3JpZW50YXRpb246IGZhbHNlKSB7XG4gICRtaW46IDQxNHB4O1xuICAkbWF4OiA3MzZweDtcbiAgJHBpeGVsLXJhdGlvOiAzO1xuXG4gIEBpbmNsdWRlIG1xKFxuICAgICAgICAgICRtaW4tZGV2aWNlLXdpZHRoOiAkbWluLFxuICAgICAgICAgICRtYXgtZGV2aWNlLXdpZHRoOiAkbWF4LFxuICAgICAgICAgICRvcmllbnRhdGlvbjogJG9yaWVudGF0aW9uLFxuICAgICAgICAgICQtd2Via2l0LWRldmljZS1waXhlbC1yYXRpbzogJHBpeGVsLXJhdGlvXG4gICkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIC0tLSBpcGFkIChhbGwpIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBtaXhpbiBpcGFkKCRvcmllbnRhdGlvbjogZmFsc2UpIHtcbiAgJG1pbjogNzY4cHg7XG4gICRtYXg6IDEwMjRweDtcblxuICBAaW5jbHVkZSBtcShcbiAgICAgICAgICAkbWluLWRldmljZS13aWR0aDogJG1pbixcbiAgICAgICAgICAkbWF4LWRldmljZS13aWR0aDogJG1heCxcbiAgICAgICAgICAkb3JpZW50YXRpb246ICRvcmllbnRhdGlvblxuICApIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyAtLS0gaXBhZC1yZXRpbmEgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AbWl4aW4gaXBhZC1yZXRpbmEoJG9yaWVudGF0aW9uOiBmYWxzZSkge1xuICAkbWluOiA3NjhweDtcbiAgJG1heDogMTAyNHB4O1xuICAkcGl4ZWwtcmF0aW86IDI7XG5cbiAgQGluY2x1ZGUgbXEoXG4gICAgICAgICAgJG1pbi1kZXZpY2Utd2lkdGg6ICRtaW4sXG4gICAgICAgICAgJG1heC1kZXZpY2Utd2lkdGg6ICRtYXgsXG4gICAgICAgICAgJG9yaWVudGF0aW9uOiAkb3JpZW50YXRpb24sXG4gICAgICAgICAgJC13ZWJraXQtZGV2aWNlLXBpeGVsLXJhdGlvOiAkcGl4ZWwtcmF0aW9cbiAgKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gLS0tIG9yaWVudGF0aW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQG1peGluIGxhbmRzY2FwZSgpIHtcbiAgQGluY2x1ZGUgbXEoJG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gcG9ydHJhaXQoKSB7XG4gIEBpbmNsdWRlIG1xKCRvcmllbnRhdGlvbjogcG9ydHJhaXQpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyAtLS0gY3VzdG9tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQG1peGluIHNjcmVlbi1kZXNrdG9we1xuICBAaW5jbHVkZSBzY3JlZW4oJG1pbjogMTAyNHB4LCAkbWF4OiAxMDI0cHgsICRvcmllbnRhdGlvbjogcG9ydHJhaXQpIHtcbiAgICBAY29udGVudDtcbiAgfVxuICBAaW5jbHVkZSBtaW4tc2NyZWVuKDEwMjVweCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBzY3JlZW4tdGFibGV0e1xuICBAaW5jbHVkZSBzY3JlZW4oJG1pbjogMTAyM3B4LCAkbWF4OiAxMDI0cHgsICRvcmllbnRhdGlvbjogbGFuZHNjYXBlKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbiAgQGluY2x1ZGUgc2NyZWVuKCRtaW46IDYwMXB4LCAkbWF4OiAxMDIzcHgpIHtcbiAgICBAY29udGVudDtcbiAgfVxuICBAaW5jbHVkZSBzY3JlZW4oJG1pbjogNjAwcHgsICRtYXg6IDYwMHB4LCAkb3JpZW50YXRpb246IHBvcnRyYWl0KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIHNjcmVlbi1zbWFydHBob25le1xuICBAaW5jbHVkZSBzY3JlZW4oJG1pbjogNjAwcHgsICRtYXg6IDYwMHB4LCAkb3JpZW50YXRpb246IGxhbmRzY2FwZSkge1xuICAgIEBjb250ZW50O1xuICB9XG4gIEBpbmNsdWRlIG1heC1zY3JlZW4oNTk5cHgpIHtcbiAgICBAY29udGVudDtcbiAgfVxufSIsIi8vIEZsZXhib3ggTWl4aW5zXG4vLyBodHRwOi8vcGhpbGlwd2FsdG9uLmdpdGh1Yi5pby9zb2x2ZWQtYnktZmxleGJveC9cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9waGlsaXB3YWx0b24vc29sdmVkLWJ5LWZsZXhib3hcbi8vXG4vLyBDb3B5cmlnaHQgKGMpIDIwMTMgQnJpYW4gRnJhbmNvXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGFcbi8vIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGVcbi8vIFwiU29mdHdhcmVcIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZ1xuLy8gd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLFxuLy8gZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvXG4vLyBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG9cbi8vIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkXG4vLyBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1Ncbi8vIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0Zcbi8vIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC5cbi8vIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZXG4vLyBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULFxuLy8gVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEVcbi8vIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLlxuLy9cbi8vIFRoaXMgaXMgYSBzZXQgb2YgbWl4aW5zIGZvciB0aG9zZSB3aG8gd2FudCB0byBtZXNzIGFyb3VuZCB3aXRoIGZsZXhib3hcbi8vIHVzaW5nIHRoZSBuYXRpdmUgc3VwcG9ydCBvZiBjdXJyZW50IGJyb3dzZXJzLiBGb3IgZnVsbCBzdXBwb3J0IHRhYmxlXG4vLyBjaGVjazogaHR0cDovL2Nhbml1c2UuY29tL2ZsZXhib3hcbi8vXG4vLyBCYXNpY2FsbHkgdGhpcyB3aWxsIHVzZTpcbi8vXG4vLyAqIEZhbGxiYWNrLCBvbGQgc3ludGF4IChJRTEwLCBtb2JpbGUgd2Via2l0IGJyb3dzZXJzIC0gbm8gd3JhcHBpbmcpXG4vLyAqIEZpbmFsIHN0YW5kYXJkcyBzeW50YXggKEZGLCBTYWZhcmksIENocm9tZSwgSUUxMSwgT3BlcmEpXG4vL1xuLy8gVGhpcyB3YXMgaW5zcGlyZWQgYnk6XG4vL1xuLy8gKiBodHRwOi8vZGV2Lm9wZXJhLmNvbS9hcnRpY2xlcy92aWV3L2FkdmFuY2VkLWNyb3NzLWJyb3dzZXItZmxleGJveC9cbi8vXG4vLyBXaXRoIGhlbHAgZnJvbTpcbi8vXG4vLyAqIGh0dHA6Ly93My5vcmcvdHIvY3NzMy1mbGV4Ym94L1xuLy8gKiBodHRwOi8vdGhlLWVjaG9wbGV4Lm5ldC9mbGV4eWJveGVzL1xuLy8gKiBodHRwOi8vbXNkbi5taWNyb3NvZnQuY29tL2VuLXVzL2xpYnJhcnkvaWUvaGg3NzIwNjkodj12cy44NSkuYXNweFxuLy8gKiBodHRwOi8vY3NzLXRyaWNrcy5jb20vdXNpbmctZmxleGJveC9cbi8vICogaHR0cDovL2Rldi5vcGVyYS5jb20vYXJ0aWNsZXMvdmlldy9hZHZhbmNlZC1jcm9zcy1icm93c2VyLWZsZXhib3gvXG4vLyAqIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLXVzL2RvY3Mvd2ViL2d1aWRlL2Nzcy9mbGV4aWJsZV9ib3hlc1xuXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gRmxleGJveCBDb250YWluZXJzXG4vL1xuLy8gVGhlICdmbGV4JyB2YWx1ZSBjYXVzZXMgYW4gZWxlbWVudCB0byBnZW5lcmF0ZSBhIGJsb2NrLWxldmVsIGZsZXhcbi8vIGNvbnRhaW5lciBib3guXG4vL1xuLy8gVGhlICdpbmxpbmUtZmxleCcgdmFsdWUgY2F1c2VzIGFuIGVsZW1lbnQgdG8gZ2VuZXJhdGUgYSBpbmxpbmUtbGV2ZWxcbi8vIGZsZXggY29udGFpbmVyIGJveC5cbi8vXG4vLyBkaXNwbGF5OiBmbGV4IHwgaW5saW5lLWZsZXhcbi8vXG4vLyBodHRwOi8vdzMub3JnL3RyL2NzczMtZmxleGJveC8jZmxleC1jb250YWluZXJzXG4vL1xuLy8gKFBsYWNlaG9sZGVyIHNlbGVjdG9ycyBmb3IgZWFjaCB0eXBlLCBmb3IgdGhvc2Ugd2hvIHJhdGhlciBAZXh0ZW5kKVxuXG5AbWl4aW4gZmxleGJveCB7XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gIGRpc3BsYXk6IC1tb3otZmxleDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbiVmbGV4Ym94IHsgQGluY2x1ZGUgZmxleGJveDsgfVxuXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQG1peGluIGlubGluZS1mbGV4IHtcbiAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtYm94O1xuICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1mbGV4O1xuICBkaXNwbGF5OiAtbW96LWlubGluZS1mbGV4O1xuICBkaXNwbGF5OiAtbXMtaW5saW5lLWZsZXhib3g7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xufVxuXG4laW5saW5lLWZsZXggeyBAaW5jbHVkZSBpbmxpbmUtZmxleDsgfVxuXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gRmxleGJveCBEaXJlY3Rpb25cbi8vXG4vLyBUaGUgJ2ZsZXgtZGlyZWN0aW9uJyBwcm9wZXJ0eSBzcGVjaWZpZXMgaG93IGZsZXggaXRlbXMgYXJlIHBsYWNlZCBpblxuLy8gdGhlIGZsZXggY29udGFpbmVyLCBieSBzZXR0aW5nIHRoZSBkaXJlY3Rpb24gb2YgdGhlIGZsZXggY29udGFpbmVyJ3Ncbi8vIG1haW4gYXhpcy4gVGhpcyBkZXRlcm1pbmVzIHRoZSBkaXJlY3Rpb24gdGhhdCBmbGV4IGl0ZW1zIGFyZSBsYWlkIG91dCBpbi5cbi8vXG4vLyBWYWx1ZXM6IHJvdyB8IHJvdy1yZXZlcnNlIHwgY29sdW1uIHwgY29sdW1uLXJldmVyc2Vcbi8vIERlZmF1bHQ6IHJvd1xuLy9cbi8vIGh0dHA6Ly93My5vcmcvdHIvY3NzMy1mbGV4Ym94LyNmbGV4LWRpcmVjdGlvbi1wcm9wZXJ0eVxuXG5AbWl4aW4gZmxleC1kaXJlY3Rpb24oJHZhbHVlOiByb3cpIHtcbiAgQGlmICR2YWx1ZSA9PSByb3ctcmV2ZXJzZSB7XG4gICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiByZXZlcnNlO1xuICAgIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gY29sdW1uIHtcbiAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcbiAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBjb2x1bW4tcmV2ZXJzZSB7XG4gICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiByZXZlcnNlO1xuICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gIH0gQGVsc2Uge1xuICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsO1xuICAgIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDtcbiAgfVxuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG4gIC1tb3otZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG4gIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG59XG4vLyBTaG9ydGVyIHZlcnNpb246XG5AbWl4aW4gZmxleC1kaXIoJGFyZ3MuLi4pIHsgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oJGFyZ3MuLi4pOyB9XG5cbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBGbGV4Ym94IFdyYXBcbi8vXG4vLyBUaGUgJ2ZsZXgtd3JhcCcgcHJvcGVydHkgY29udHJvbHMgd2hldGhlciB0aGUgZmxleCBjb250YWluZXIgaXMgc2luZ2xlLWxpbmVcbi8vIG9yIG11bHRpLWxpbmUsIGFuZCB0aGUgZGlyZWN0aW9uIG9mIHRoZSBjcm9zcy1heGlzLCB3aGljaCBkZXRlcm1pbmVzXG4vLyB0aGUgZGlyZWN0aW9uIG5ldyBsaW5lcyBhcmUgc3RhY2tlZCBpbi5cbi8vXG4vLyBWYWx1ZXM6IG5vd3JhcCB8IHdyYXAgfCB3cmFwLXJldmVyc2Vcbi8vIERlZmF1bHQ6IG5vd3JhcFxuLy9cbi8vIGh0dHA6Ly93My5vcmcvdHIvY3NzMy1mbGV4Ym94LyNmbGV4LXdyYXAtcHJvcGVydHlcblxuQG1peGluIGZsZXgtd3JhcCgkdmFsdWU6IG5vd3JhcCkge1xuICAvLyBObyBXZWJraXQgQm94IGZhbGxiYWNrLlxuICAtd2Via2l0LWZsZXgtd3JhcDogJHZhbHVlO1xuICAtbW96LWZsZXgtd3JhcDogJHZhbHVlO1xuICBAaWYgJHZhbHVlID09IG5vd3JhcCB7XG4gICAgLW1zLWZsZXgtd3JhcDogbm9uZTtcbiAgfSBAZWxzZSB7XG4gICAgLW1zLWZsZXgtd3JhcDogJHZhbHVlO1xuICB9XG4gIGZsZXgtd3JhcDogJHZhbHVlO1xufVxuXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gRmxleGJveCBGbG93IChzaG9ydGhhbmQpXG4vL1xuLy8gVGhlICdmbGV4LWZsb3cnIHByb3BlcnR5IGlzIGEgc2hvcnRoYW5kIGZvciBzZXR0aW5nIHRoZSAnZmxleC1kaXJlY3Rpb24nXG4vLyBhbmQgJ2ZsZXgtd3JhcCcgcHJvcGVydGllcywgd2hpY2ggdG9nZXRoZXIgZGVmaW5lIHRoZSBmbGV4IGNvbnRhaW5lcidzXG4vLyBtYWluIGFuZCBjcm9zcyBheGVzLlxuLy9cbi8vIFZhbHVlczogPGZsZXgtZGlyZWN0aW9uPiB8IDxmbGV4LXdyYXA+XG4vLyBEZWZhdWx0OiByb3cgbm93cmFwXG4vL1xuLy8gaHR0cDovL3czLm9yZy90ci9jc3MzLWZsZXhib3gvI2ZsZXgtZmxvdy1wcm9wZXJ0eVxuXG5AbWl4aW4gZmxleC1mbG93KCR2YWx1ZXM6IChyb3cgbm93cmFwKSkge1xuICAvLyBObyBXZWJraXQgQm94IGZhbGxiYWNrLlxuICAtd2Via2l0LWZsZXgtZmxvdzogJHZhbHVlcztcbiAgLW1vei1mbGV4LWZsb3c6ICR2YWx1ZXM7XG4gIC1tcy1mbGV4LWZsb3c6ICR2YWx1ZXM7XG4gIGZsZXgtZmxvdzogJHZhbHVlcztcbn1cblxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIEZsZXhib3ggT3JkZXJcbi8vXG4vLyBUaGUgJ29yZGVyJyBwcm9wZXJ0eSBjb250cm9scyB0aGUgb3JkZXIgaW4gd2hpY2ggZmxleCBpdGVtcyBhcHBlYXIgd2l0aGluXG4vLyB0aGVpciBmbGV4IGNvbnRhaW5lciwgYnkgYXNzaWduaW5nIHRoZW0gdG8gb3JkaW5hbCBncm91cHMuXG4vL1xuLy8gRGVmYXVsdDogMFxuLy9cbi8vIGh0dHA6Ly93My5vcmcvdHIvY3NzMy1mbGV4Ym94LyNvcmRlci1wcm9wZXJ0eVxuXG5AbWl4aW4gb3JkZXIoJGludDogMCkge1xuICAtd2Via2l0LWJveC1vcmRpbmFsLWdyb3VwOiAkaW50ICsgMTtcbiAgLXdlYmtpdC1vcmRlcjogJGludDtcbiAgLW1vei1vcmRlcjogJGludDtcbiAgLW1zLWZsZXgtb3JkZXI6ICRpbnQ7XG4gIG9yZGVyOiAkaW50O1xufVxuXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gRmxleGJveCBHcm93XG4vL1xuLy8gVGhlICdmbGV4LWdyb3cnIHByb3BlcnR5IHNldHMgdGhlIGZsZXggZ3JvdyBmYWN0b3IuIE5lZ2F0aXZlIG51bWJlcnNcbi8vIGFyZSBpbnZhbGlkLlxuLy9cbi8vIERlZmF1bHQ6IDBcbi8vXG4vLyBodHRwOi8vdzMub3JnL3RyL2NzczMtZmxleGJveC8jZmxleC1ncm93LXByb3BlcnR5XG5cbkBtaXhpbiBmbGV4LWdyb3coJGludDogMCkge1xuICAtd2Via2l0LWJveC1mbGV4OiAkaW50O1xuICAtd2Via2l0LWZsZXgtZ3JvdzogJGludDtcbiAgLW1vei1mbGV4LWdyb3c6ICRpbnQ7XG4gIC1tcy1mbGV4LXBvc2l0aXZlOiAkaW50O1xuICBmbGV4LWdyb3c6ICRpbnQ7XG59XG5cbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBGbGV4Ym94IFNocmlua1xuLy9cbi8vIFRoZSAnZmxleC1zaHJpbmsnIHByb3BlcnR5IHNldHMgdGhlIGZsZXggc2hyaW5rIGZhY3Rvci4gTmVnYXRpdmUgbnVtYmVyc1xuLy8gYXJlIGludmFsaWQuXG4vL1xuLy8gRGVmYXVsdDogMVxuLy9cbi8vIGh0dHA6Ly93My5vcmcvdHIvY3NzMy1mbGV4Ym94LyNmbGV4LXNocmluay1wcm9wZXJ0eVxuXG5AbWl4aW4gZmxleC1zaHJpbmsoJGludDogMSkge1xuICAtd2Via2l0LWZsZXgtc2hyaW5rOiAkaW50O1xuICAtbW96LWZsZXgtc2hyaW5rOiAkaW50O1xuICAtbXMtZmxleC1uZWdhdGl2ZTogJGludDtcbiAgZmxleC1zaHJpbms6ICRpbnQ7XG59XG5cbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBGbGV4Ym94IEJhc2lzXG4vL1xuLy8gVGhlICdmbGV4LWJhc2lzJyBwcm9wZXJ0eSBzZXRzIHRoZSBmbGV4IGJhc2lzLiBOZWdhdGl2ZSBsZW5ndGhzIGFyZSBpbnZhbGlkLlxuLy9cbi8vIFZhbHVlczogTGlrZSBcIndpZHRoXCJcbi8vIERlZmF1bHQ6IGF1dG9cbi8vXG4vLyBodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLWZsZXhib3gvI2ZsZXgtYmFzaXMtcHJvcGVydHlcblxuQG1peGluIGZsZXgtYmFzaXMoJHZhbHVlOiBhdXRvKSB7XG4gIC13ZWJraXQtZmxleC1iYXNpczogJHZhbHVlO1xuICAtbW96LWZsZXgtYmFzaXM6ICR2YWx1ZTtcbiAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6ICR2YWx1ZTtcbiAgZmxleC1iYXNpczogJHZhbHVlO1xufVxuXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gRmxleGJveCBcIkZsZXhcIiAoc2hvcnRoYW5kKVxuLy9cbi8vIFRoZSAnZmxleCcgcHJvcGVydHkgc3BlY2lmaWVzIHRoZSBjb21wb25lbnRzIG9mIGEgZmxleGlibGUgbGVuZ3RoOiB0aGVcbi8vIGZsZXggZ3JvdyBmYWN0b3IgYW5kIGZsZXggc2hyaW5rIGZhY3RvciwgYW5kIHRoZSBmbGV4IGJhc2lzLiBXaGVuIGFuXG4vLyBlbGVtZW50IGlzIGEgZmxleCBpdGVtLCAnZmxleCcgaXMgY29uc3VsdGVkIGluc3RlYWQgb2YgdGhlIG1haW4gc2l6ZVxuLy8gcHJvcGVydHkgdG8gZGV0ZXJtaW5lIHRoZSBtYWluIHNpemUgb2YgdGhlIGVsZW1lbnQuIElmIGFuIGVsZW1lbnQgaXNcbi8vIG5vdCBhIGZsZXggaXRlbSwgJ2ZsZXgnIGhhcyBubyBlZmZlY3QuXG4vL1xuLy8gVmFsdWVzOiBub25lIHwgPGZsZXgtZ3Jvdz4gPGZsZXgtc2hyaW5rPiB8fCA8ZmxleC1iYXNpcz5cbi8vIERlZmF1bHQ6IFNlZSBpbmRpdmlkdWFsIHByb3BlcnRpZXMgKDEgMSAwKS5cbi8vXG4vLyBodHRwOi8vdzMub3JnL3RyL2NzczMtZmxleGJveC8jZmxleC1wcm9wZXJ0eVxuXG5AbWl4aW4gZmxleCgkZmc6IDEsICRmczogbnVsbCwgJGZiOiBudWxsKSB7XG5cbiAgLy8gU2V0IGEgdmFyaWFibGUgdG8gYmUgdXNlZCBieSBib3gtZmxleCBwcm9wZXJ0aWVzXG4gICRmZy1ib3hmbGV4OiAkZmc7XG5cbiAgLy8gQm94LUZsZXggb25seSBzdXBwb3J0cyBhIGZsZXgtZ3JvdyB2YWx1ZSBzbyBsZXQncyBncmFiIHRoZVxuICAvLyBmaXJzdCBpdGVtIGluIHRoZSBsaXN0IGFuZCBqdXN0IHJldHVybiB0aGF0LlxuICBAaWYgdHlwZS1vZigkZmcpID09ICdsaXN0JyB7XG4gICAgJGZnLWJveGZsZXg6IG50aCgkZmcsIDEpO1xuICB9XG5cbiAgLXdlYmtpdC1ib3gtZmxleDogJGZnLWJveGZsZXg7XG4gIC13ZWJraXQtZmxleDogJGZnICRmcyAkZmI7XG4gIC1tb3otYm94LWZsZXg6ICRmZy1ib3hmbGV4O1xuICAtbW96LWZsZXg6ICRmZyAkZnMgJGZiO1xuICAtbXMtZmxleDogJGZnICRmcyAkZmI7XG4gIGZsZXg6ICRmZyAkZnMgJGZiO1xufVxuXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gRmxleGJveCBKdXN0aWZ5IENvbnRlbnRcbi8vXG4vLyBUaGUgJ2p1c3RpZnktY29udGVudCcgcHJvcGVydHkgYWxpZ25zIGZsZXggaXRlbXMgYWxvbmcgdGhlIG1haW4gYXhpc1xuLy8gb2YgdGhlIGN1cnJlbnQgbGluZSBvZiB0aGUgZmxleCBjb250YWluZXIuIFRoaXMgaXMgZG9uZSBhZnRlciBhbnkgZmxleGlibGVcbi8vIGxlbmd0aHMgYW5kIGFueSBhdXRvIG1hcmdpbnMgaGF2ZSBiZWVuIHJlc29sdmVkLiBUeXBpY2FsbHkgaXQgaGVscHMgZGlzdHJpYnV0ZVxuLy8gZXh0cmEgZnJlZSBzcGFjZSBsZWZ0b3ZlciB3aGVuIGVpdGhlciBhbGwgdGhlIGZsZXggaXRlbXMgb24gYSBsaW5lIGFyZVxuLy8gaW5mbGV4aWJsZSwgb3IgYXJlIGZsZXhpYmxlIGJ1dCBoYXZlIHJlYWNoZWQgdGhlaXIgbWF4aW11bSBzaXplLiBJdCBhbHNvXG4vLyBleGVydHMgc29tZSBjb250cm9sIG92ZXIgdGhlIGFsaWdubWVudCBvZiBpdGVtcyB3aGVuIHRoZXkgb3ZlcmZsb3cgdGhlIGxpbmUuXG4vL1xuLy8gTm90ZTogJ3NwYWNlLSonIHZhbHVlcyBub3Qgc3VwcG9ydGVkIGluIG9sZGVyIHN5bnRheGVzLlxuLy9cbi8vIFZhbHVlczogZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgc3BhY2UtYmV0d2VlbiB8IHNwYWNlLWFyb3VuZFxuLy8gRGVmYXVsdDogZmxleC1zdGFydFxuLy9cbi8vIGh0dHA6Ly93My5vcmcvdHIvY3NzMy1mbGV4Ym94LyNqdXN0aWZ5LWNvbnRlbnQtcHJvcGVydHlcblxuQG1peGluIGp1c3RpZnktY29udGVudCgkdmFsdWU6IGZsZXgtc3RhcnQpIHtcbiAgQGlmICR2YWx1ZSA9PSBmbGV4LXN0YXJ0IHtcbiAgICAtd2Via2l0LWJveC1wYWNrOiBzdGFydDtcbiAgICAtbXMtZmxleC1wYWNrOiBzdGFydDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gZmxleC1lbmQge1xuICAgIC13ZWJraXQtYm94LXBhY2s6IGVuZDtcbiAgICAtbXMtZmxleC1wYWNrOiBlbmQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IHNwYWNlLWJldHdlZW4ge1xuICAgIC13ZWJraXQtYm94LXBhY2s6IGp1c3RpZnk7XG4gICAgLW1zLWZsZXgtcGFjazoganVzdGlmeTtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gc3BhY2UtYXJvdW5kIHtcbiAgICAtbXMtZmxleC1wYWNrOiBkaXN0cmlidXRlO1xuICB9IEBlbHNlIHtcbiAgICAtd2Via2l0LWJveC1wYWNrOiAkdmFsdWU7XG4gICAgLW1zLWZsZXgtcGFjazogJHZhbHVlO1xuICB9XG4gIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG4gIC1tb3otanVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG4gIGp1c3RpZnktY29udGVudDogJHZhbHVlO1xufVxuLy8gU2hvcnRlciB2ZXJzaW9uOlxuQG1peGluIGZsZXgtanVzdCgkYXJncy4uLikgeyBAaW5jbHVkZSBqdXN0aWZ5LWNvbnRlbnQoJGFyZ3MuLi4pOyB9XG5cbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBGbGV4Ym94IEFsaWduIEl0ZW1zXG4vL1xuLy8gRmxleCBpdGVtcyBjYW4gYmUgYWxpZ25lZCBpbiB0aGUgY3Jvc3MgYXhpcyBvZiB0aGUgY3VycmVudCBsaW5lIG9mIHRoZVxuLy8gZmxleCBjb250YWluZXIsIHNpbWlsYXIgdG8gJ2p1c3RpZnktY29udGVudCcgYnV0IGluIHRoZSBwZXJwZW5kaWN1bGFyXG4vLyBkaXJlY3Rpb24uICdhbGlnbi1pdGVtcycgc2V0cyB0aGUgZGVmYXVsdCBhbGlnbm1lbnQgZm9yIGFsbCBvZiB0aGUgZmxleFxuLy8gY29udGFpbmVyJ3MgaXRlbXMsIGluY2x1ZGluZyBhbm9ueW1vdXMgZmxleCBpdGVtcy4gJ2FsaWduLXNlbGYnIGFsbG93c1xuLy8gdGhpcyBkZWZhdWx0IGFsaWdubWVudCB0byBiZSBvdmVycmlkZGVuIGZvciBpbmRpdmlkdWFsIGZsZXggaXRlbXMuIChGb3Jcbi8vIGFub255bW91cyBmbGV4IGl0ZW1zLCAnYWxpZ24tc2VsZicgYWx3YXlzIG1hdGNoZXMgdGhlIHZhbHVlIG9mICdhbGlnbi1pdGVtcydcbi8vIG9uIHRoZWlyIGFzc29jaWF0ZWQgZmxleCBjb250YWluZXIuKVxuLy9cbi8vIFZhbHVlczogZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoXG4vLyBEZWZhdWx0OiBzdHJldGNoXG4vL1xuLy8gaHR0cDovL3czLm9yZy90ci9jc3MzLWZsZXhib3gvI2FsaWduLWl0ZW1zLXByb3BlcnR5XG5cbkBtaXhpbiBhbGlnbi1pdGVtcygkdmFsdWU6IHN0cmV0Y2gpIHtcbiAgQGlmICR2YWx1ZSA9PSBmbGV4LXN0YXJ0IHtcbiAgICAtd2Via2l0LWJveC1hbGlnbjogc3RhcnQ7XG4gICAgLW1zLWZsZXgtYWxpZ246IHN0YXJ0O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBmbGV4LWVuZCB7XG4gICAgLXdlYmtpdC1ib3gtYWxpZ246IGVuZDtcbiAgICAtbXMtZmxleC1hbGlnbjogZW5kO1xuICB9IEBlbHNlIHtcbiAgICAtd2Via2l0LWJveC1hbGlnbjogJHZhbHVlO1xuICAgIC1tcy1mbGV4LWFsaWduOiAkdmFsdWU7XG4gIH1cbiAgLXdlYmtpdC1hbGlnbi1pdGVtczogJHZhbHVlO1xuICAtbW96LWFsaWduLWl0ZW1zOiAkdmFsdWU7XG4gIGFsaWduLWl0ZW1zOiAkdmFsdWU7XG59XG5cbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBGbGV4Ym94IEFsaWduIFNlbGZcbi8vXG4vLyBWYWx1ZXM6IGF1dG8gfCBmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2hcbi8vIERlZmF1bHQ6IGF1dG9cblxuQG1peGluIGFsaWduLXNlbGYoJHZhbHVlOiBhdXRvKSB7XG4gIC8vIE5vIFdlYmtpdCBCb3ggRmFsbGJhY2suXG4gIC13ZWJraXQtYWxpZ24tc2VsZjogJHZhbHVlO1xuICAtbW96LWFsaWduLXNlbGY6ICR2YWx1ZTtcbiAgQGlmICR2YWx1ZSA9PSBmbGV4LXN0YXJ0IHtcbiAgICAtbXMtZmxleC1pdGVtLWFsaWduOiBzdGFydDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gZmxleC1lbmQge1xuICAgIC1tcy1mbGV4LWl0ZW0tYWxpZ246IGVuZDtcbiAgfSBAZWxzZSB7XG4gICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogJHZhbHVlO1xuICB9XG4gIGFsaWduLXNlbGY6ICR2YWx1ZTtcbn1cblxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIEZsZXhib3ggQWxpZ24gQ29udGVudFxuLy9cbi8vIFRoZSAnYWxpZ24tY29udGVudCcgcHJvcGVydHkgYWxpZ25zIGEgZmxleCBjb250YWluZXIncyBsaW5lcyB3aXRoaW4gdGhlXG4vLyBmbGV4IGNvbnRhaW5lciB3aGVuIHRoZXJlIGlzIGV4dHJhIHNwYWNlIGluIHRoZSBjcm9zcy1heGlzLCBzaW1pbGFyIHRvXG4vLyBob3cgJ2p1c3RpZnktY29udGVudCcgYWxpZ25zIGluZGl2aWR1YWwgaXRlbXMgd2l0aGluIHRoZSBtYWluLWF4aXMuIE5vdGUsXG4vLyB0aGlzIHByb3BlcnR5IGhhcyBubyBlZmZlY3Qgd2hlbiB0aGUgZmxleGJveCBoYXMgb25seSBhIHNpbmdsZSBsaW5lLlxuLy9cbi8vIFZhbHVlczogZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgc3BhY2UtYmV0d2VlbiB8IHNwYWNlLWFyb3VuZCB8IHN0cmV0Y2hcbi8vIERlZmF1bHQ6IHN0cmV0Y2hcbi8vXG4vLyBodHRwOi8vdzMub3JnL3RyL2NzczMtZmxleGJveC8jYWxpZ24tY29udGVudC1wcm9wZXJ0eVxuXG5AbWl4aW4gYWxpZ24tY29udGVudCgkdmFsdWU6IHN0cmV0Y2gpIHtcbiAgLy8gTm8gV2Via2l0IEJveCBGYWxsYmFjay5cbiAgLXdlYmtpdC1hbGlnbi1jb250ZW50OiAkdmFsdWU7XG4gIC1tb3otYWxpZ24tY29udGVudDogJHZhbHVlO1xuICBAaWYgJHZhbHVlID09IGZsZXgtc3RhcnQge1xuICAgIC1tcy1mbGV4LWxpbmUtcGFjazogc3RhcnQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IGZsZXgtZW5kIHtcbiAgICAtbXMtZmxleC1saW5lLXBhY2s6IGVuZDtcbiAgfSBAZWxzZSB7XG4gICAgLW1zLWZsZXgtbGluZS1wYWNrOiAkdmFsdWU7XG4gIH1cbiAgYWxpZ24tY29udGVudDogJHZhbHVlO1xufVxuIiwiQGltcG9ydCBcIi4uL2NvbnN0YW50c1wiO1xuQGltcG9ydCBcIi4uL0hlbHBlcnMvZmxleFwiO1xuQGltcG9ydCBcIi4uL0hlbHBlcnMvbWl4aW5zXCI7XG5cbkBtaXhpbiBleHQtdmVyYi1iYXNlIHtcbiAgZm9ybVtuYW1lPVwic2VhcmNoX2Zvcm1cIl17XG4gICAgQGluY2x1ZGUgZmxleGJveDtcbiAgICBwYWRkaW5nOiAxMHB4O1xuICAgID4gZGl2e1xuICAgICAgaGVpZ2h0OiAzMHB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gICAgICBwYWRkaW5nOiAxMHB4O1xuICAgICAgPiBsYWJlbHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMjBweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLnZlcmJze1xuICAgIC52ZXJie1xuICAgICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIGJsYWNrO1xuICAgICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICAgIHBhZGRpbmc6IDIwcHg7XG4gICAgICAubWV0YWRhdGF7XG4gICAgICAgIEBpbmNsdWRlIGZsZXhib3g7XG4gICAgICAgIEBpbmNsdWRlIGp1c3RpZnktY29udGVudChzcGFjZS1iZXR3ZWVuKTtcbiAgICAgICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICAgICAgcGFkZGluZzogMTBweDtcbiAgICAgICAgZGl2IHtcbiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjY2NjO1xuICAgICAgICAgIHBhZGRpbmc6IDVweDtcbiAgICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLmNvbmp1Z2F0aW9ue1xuICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICAgICAgLm1vZHtcbiAgICAgICAgICBAaW5jbHVkZSBmbGV4Ym94O1xuICAgICAgICAgIEBpbmNsdWRlIGp1c3RpZnktY29udGVudChzcGFjZS1iZXR3ZWVuKTtcbiAgICAgICAgICBAaW5jbHVkZSBmbGV4LXdyYXAod3JhcCk7XG4gICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgaDN7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjY2NjY2NjO1xuICAgICAgICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgICAgICAgbWFyZ2luOiAxMHB4O1xuICAgICAgICAgICAgcGFkZGluZzogMTBweDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIH1cbiAgICAgICAgICAudGltZXtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2NjY2M7XG4gICAgICAgICAgICBtYXJnaW46IDEwcHg7XG4gICAgICAgICAgICBwYWRkaW5nOiAyMHB4O1xuICAgICAgICAgICAgd2lkdGg6IGNhbGMoMzMuMzMlIC0gMjBweCk7XG5cbiAgICAgICAgICAgIGg0e1xuICAgICAgICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuZGVjbGluYXRpb257XG4gICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjY2NjY2NjO1xuICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMTBweDtcbiAgICAgICAgICAgICAgJjpudGgtb2YtdHlwZSgxKXtcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiBub25lO1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmW2RhdGEtY291bnQ9XCIxXCJde1xuICAgICAgICAgICAgLnRpbWV7XG4gICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAyMHB4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgJltkYXRhLWNvdW50PVwiMlwiXXtcbiAgICAgICAgICAgIC50aW1le1xuICAgICAgICAgICAgICB3aWR0aDogY2FsYyg1MCUgLSAyMHB4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGV4dC12ZXJiLWRlc2t0b3Age1xuICBAaW5jbHVkZSBleHQtdmVyYi1iYXNlO1xufVxuXG5AbWl4aW4gZXh0LXZlcmItdGFibGV0IHtcbiAgQGluY2x1ZGUgZXh0LXZlcmItYmFzZTtcbn1cblxuQG1peGluIGV4dC12ZXJiLXNtYXJ0cGhvbmUge1xuICBAaW5jbHVkZSBleHQtdmVyYi1iYXNlO1xufSIsIkBtaXhpbiBtYWluLWJhc2Uge1xuICAjY29udGVudHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gIH1cbn1cblxuQG1peGluIG1haW4tZGVza3RvcCB7XG4gIEBpbmNsdWRlIG1haW4tYmFzZTtcbiAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBtYWluLXRhYmxldCB7XG4gIEBpbmNsdWRlIG1haW4tYmFzZTtcbiAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBtYWluLXNtYXJ0cGhvbmUge1xuICBAaW5jbHVkZSBtYWluLWJhc2U7XG4gIEBjb250ZW50O1xufSJdLCJzb3VyY2VSb290IjoiIn0=*/