/**
 * AT&T About Us Global Navigation & Footer for AEM
 * by FleishmanHillard, c. 2018
 *
 * NOTE: ATTN DEVS!
 * Please use this stylesheet for importing SASS partials only. Do not author any SASS or CSS directly in this file.
 * Also, please first refer to the _abstracts partials to review the existing global style settings and utilities before creating new ones.
 *
 * For style guidelines and coding conventions for this project,
 * please consult the README.md in the root of the project.
 */
/*==========
  NAVIGATION
  ==========*/
/*=========
  Abstracts
  =========*/
/*=========
  VARIABLES
  =========*/
/*===========
  Breakpoints
  ===========*/
/* we switch from mobile to tablet here */
/* we switch from tablet to desktop here */
/* max width of standard 15" laptop viewport */
/*============
  Global Sizes
  ============*/
/* Margin/Paddings */
/* Misc */
/*==================
  Responsive Columns
  ==================*/
/*
   * The following column sizing map is used to determine how different sized columns will adjust their widths at different breakpoints.
   * For each column size (12, 9, 8, 6, 4, 3, 2), the subsequent responsive widths are listed in parentheses, going in order from mobile, to tablet, to small desktop, to full desktop.
   * ex: colSize:(mobileWidth, tabletWidth, smDesktopWidth, lgDesktopWidth), where the width values refer to the number of parts-per-12 that the column should occupy at each screen size.
   * Note that all column widths are 12-based, so a 12 represents a full-width appearance.
   * Since all column sizes should appear full-width at mobile viewport size, the first number in each sequence is 12.
   * The settings from this map get applied by the columnSizer loop statement found in the "Columns" section of the _layout partial (see the styles under ".col").
   */
/*=============
  Color Palette
  =============*/
/* Global Colors */
/* Specific Use Colors */
/* call-to-action elements (links, buttons) */
/* call-to-action hover state */
/* transparent header link highlight */
/* standard links inside of text blocks */
/* general page body copy */
/* Color Maps */
/* Category Themes - theme names below are based on theme-- category classes that get applied to the body element by AEM */
/*

  Communications: ("blue", $attBlue),
  company: ("silver", "silver")

  */
/*=============
  Font Families
  =============*/
/* Aleck Sans - Base Font Variants */
@font-face {
  font-family: 'Aleck Sans';
  /* Aleck Sans */
  src: url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_Rg.eot");
  src: url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_Rg.eot?#iefix") format("embedded-opentype"), url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_Rg.woff") format("woff"), url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_Rg.ttf") format("truetype"), url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_Rg.svg#webfont") format("svg");
  font-weight: 400;
  font-style: normal; }

@font-face {
  font-family: 'Aleck Sans';
  /* Aleck Sans Italic */
  src: url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_It.eot");
  src: url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_It.eot?#iefix") format("embedded-opentype"), url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_It.woff") format("woff"), url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_It.ttf") format("truetype"), url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_It.svg#webfont") format("svg");
  font-weight: 400;
  font-style: italic; }

@font-face {
  font-family: 'Aleck Sans';
  /* Aleck Sans Light */
  src: url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_Lt.eot");
  src: url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_Lt.eot?#iefix") format("embedded-opentype"), url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_Lt.woff") format("woff"), url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_Lt.ttf") format("truetype"), url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_Lt.svg#webfont") format("svg");
  font-weight: 300;
  font-style: normal; }

@font-face {
  font-family: 'Aleck Sans';
  /* Aleck Sans Light Italic */
  src: url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_LtIt.eot");
  src: url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_LtIt.eot?#iefix") format("embedded-opentype"), url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_LtIt.woff") format("woff"), url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_LtIt.ttf") format("truetype"), url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_LtIt.svg#webfont") format("svg");
  font-weight: 300;
  font-style: italic; }

@font-face {
  font-family: 'Aleck Sans';
  /* Aleck Sans Bold */
  src: url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_Bd.eot");
  src: url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_Bd.eot?#iefix") format("embedded-opentype"), url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_Bd.woff") format("woff"), url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_Bd.ttf") format("truetype"), url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_Bd.svg#webfont") format("svg");
  font-weight: 700;
  font-style: normal; }

@font-face {
  font-family: 'Aleck Sans';
  /* Aleck Sans Bold Italic */
  src: url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_BdIt.eot");
  src: url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_BdIt.eot?#iefix") format("embedded-opentype"), url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_BdIt.woff") format("woff"), url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_BdIt.ttf") format("truetype"), url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_BdIt.svg#webfont") format("svg");
  font-weight: 700;
  font-style: italic; }

/* Aleck Sans - Additional Font Variants */
@font-face {
  font-family: 'Aleck Sans Medium';
  /* Aleck Sans Medium */
  src: url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_Md.eot");
  src: url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_Md.eot?#iefix") format("embedded-opentype"), url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_Md.woff") format("woff"), url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_Md.ttf") format("truetype"), url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_Md.svg#webfont") format("svg");
  font-weight: 400;
  font-style: normal; }

@font-face {
  font-family: 'Aleck Sans Medium';
  /* Aleck Sans Medium Italic */
  src: url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_MdIt.eot");
  src: url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_MdIt.eot?#iefix") format("embedded-opentype"), url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_MdIt.woff") format("woff"), url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_MdIt.ttf") format("truetype"), url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_MdIt.svg#webfont") format("svg");
  font-weight: 400;
  font-style: italic; }

@font-face {
  font-family: 'Aleck Sans Black';
  /* Aleck Sans Black */
  src: url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_Blk.eot");
  src: url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_Blk.eot?#iefix") format("embedded-opentype"), url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_Blk.woff") format("woff"), url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_Blk.ttf") format("truetype"), url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_Blk.svg#webfont") format("svg");
  font-weight: 400;
  font-style: normal; }

@font-face {
  font-family: 'Aleck Sans Black';
  /* Aleck Sans Black Italic */
  src: url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_BlkIt.eot");
  src: url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_BlkIt.eot?#iefix") format("embedded-opentype"), url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_BlkIt.woff") format("woff"), url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_BlkIt.ttf") format("truetype"), url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_BlkIt.svg#webfont") format("svg");
  font-weight: 400;
  font-style: italic; }

/* Aleck Slab */
@font-face {
  font-family: 'Aleck Slab';
  /* Aleck Slab */
  src: url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSlab_W_Rg.eot");
  src: url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSlab_W_Rg.eot?#iefix") format("embedded-opentype"), url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSlab_W_Rg.woff") format("woff"), url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSlab_W_Rg.ttf") format("truetype"), url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSlab_W_Rg.svg#webfont") format("svg");
  font-weight: 400;
  font-style: normal; }

@font-face {
  font-family: 'Aleck Slab';
  /* Aleck Slab Italic */
  src: url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSlab_W_It.eot");
  src: url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSlab_W_It.eot?#iefix") format("embedded-opentype"), url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSlab_W_It.woff") format("woff"), url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSlab_W_It.ttf") format("truetype"), url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSlab_W_It.svg#webfont") format("svg");
  font-weight: 400;
  font-style: italic; }

/* AT&T Icon Font */
@font-face {
  font-family: 'ATT_Icons';
  /* AT&T Icon Font */
  src: url("/ui/corpcomm_internet_attus/1.0.0/fonts/ATT_Icons/att-icons.eot");
  src: url("/ui/corpcomm_internet_attus/1.0.0/fonts/ATT_Icons/att-icons.eot?#iefix") format("embedded-opentype"), url("/ui/corpcomm_internet_attus/1.0.0/fonts/ATT_Icons/att-icons.woff") format("woff"), url("/ui/corpcomm_internet_attus/1.0.0/fonts/ATT_Icons/att-icons.ttf") format("truetype"), url("/ui/corpcomm_internet_attus/1.0.0/fonts/ATT_Icons/att-icons.svg#webfont") format("svg");
  font-weight: 400;
  font-style: normal; }

/*==============
  Font Variables
  ==============*/
/* AT&T Icon Font Maps */
/*================
  Nav Highlighting
  ================*/
/*
   * The following map sets the nav highlighting default for different body classes
   * ex: bodyClassName: "nav-item-class-name"
   * Note that if a nav item with class of "nav-company" exists and you're on a page with a body class of "nav-company", that will highlight as well
   */
/*======
  MIXINS
  ======*/
/*=======
  Accents
  =======*/
/*==========
  Animations
  ==========*/
/*=================
  Container Queries
  =================*/
/*===========
  Positioning
  ===========*/
/*====
  Misc
  ====*/
/* Silver style */
/* Default button style for white, gray or black backgrounds */
/* Horizontal/Vertical Rules */
/*==========
  Typography
  ==========*/
/*======
  Layout
  ======*/
/*======
  HEADER
  ======*/
body > .wrapper {
  width: 100%;
  overflow: hidden;
  position: relative; }

body > .wrapper .canvas {
  -webkit-transition: all 300ms ease;
  -o-transition: all 300ms ease;
  transition: all 300ms ease;
  position: relative;
  width: 100%;
  min-height: 100vh; }
  @media (max-width: 767px) {
    body > .wrapper .canvas {
      -webkit-transform: translateX(0);
          -ms-transform: translateX(0);
              transform: translateX(0);
      -webkit-backface-visibility: hidden;
              backface-visibility: hidden; }
      body > .wrapper .canvas.canvas--on {
        -webkit-transform: translateX(-80%);
            -ms-transform: translateX(-80%);
                transform: translateX(-80%); } }
    @media (max-width: 767px) and (min-width: 360px) {
      body > .wrapper .canvas.canvas--on {
        -webkit-transform: translateX(-320px);
            -ms-transform: translateX(-320px);
                transform: translateX(-320px); } }
    @media (max-width: 767px) and (min-width: 768px) {
      body > .wrapper .canvas.canvas--on {
        -webkit-transform: translateX(-400px);
            -ms-transform: translateX(-400px);
                transform: translateX(-400px); } }
  @media (min-width: 768px) {
    body > .wrapper .canvas {
      overflow: auto; } }

/* Skip Navigation */
.skip-navigation {
  background-color: #414141; }
  @media (min-width: 768px) {
    .skip-navigation {
      background-color: #000; } }

.skip-navigation a {
  border: 0;
  clip: rect(1px, 1px, 1px, 1px);
  -webkit-clip-path: inset(50%);
          clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute !important;
  width: 1px;
  word-wrap: normal !important;
  color: transparent;
  width: calc(100vw - 10px);
  padding: 5px;
  top: 5px; }
  .skip-navigation a:focus {
    clip: auto !important;
    -webkit-clip-path: none;
            clip-path: none;
    z-index: 100000; }
  @media (min-width: 768px) {
    .skip-navigation a {
      top: -30px; } }
  .skip-navigation a:focus {
    -webkit-transition: all 300ms ease;
    -o-transition: all 300ms ease;
    transition: all 300ms ease;
    font-size: 12px;
    display: block;
    position: relative !important;
    text-decoration: underline;
    text-align: center;
    padding: 5px 5px 10px;
    height: auto;
    margin: 0 auto;
    top: 5px;
    -webkit-clip-path: none;
            clip-path: none;
    clip: initial;
    color: #C9C9C9;
    z-index: 9999999999; }
    @media (min-width: 768px) {
      .skip-navigation a:focus {
        position: absolute !important;
        padding-bottom: 5px;
        width: auto;
        text-align: left;
        left: 5px; } }

/* Standard and Microsite Headers */
#att-about-header > div,
#att-microsite-header .microsite-nav {
  background-color: #000;
  border-bottom: 1px solid #5A5A5A; }

@media (min-width: 1220px) {
  #att-about-header.header--transparent > div,
  #att-microsite-header.header--transparent .microsite-nav {
    background-color: rgba(0, 0, 0, 0.65); } }

@media (min-width: 1220px) {
  #att-about-header.header--fixed > div,
  #att-microsite-header.header--fixed .microsite-nav {
    background-color: #000; } }

header {
  -webkit-box-sizing: border-box;
          box-sizing: border-box; }
  header *,
  header *:before,
  header *:after {
    -webkit-box-sizing: inherit;
            box-sizing: inherit; }
  .touch header,
  .touchevents header {
    cursor: pointer; }

@media (min-width: 768px) {
  .header--secondary + * {
    margin-top: 105px; } }

@media (min-width: 768px) {
  .header--secondary.active + * {
    margin-top: 72px; } }

@media (min-width: 1440px) {
  .header--secondary.active + * {
    margin-top: 105px; } }

@media (min-width: 1440px) {
  .header--secondary.active--wGlobal + * {
    margin-top: 155px; } }

@media (min-width: 768px) {
  .header + *,
  .header + .header--secondary + * {
    margin-top: 105px;
    top: 0; } }

@media (min-width: 768px) {
  .header.header--transparent + * {
    margin-top: 105px; } }

@media (min-width: 1220px) {
  .header.header--transparent + * {
    margin-top: 0;
    min-height: auto; } }

@media (min-width: 1220px) {
  .header.header--transparent + .header--secondary.header--transparent + * {
    margin-top: 0;
    z-index: 0; } }

@media (min-width: 1220px) {
  .header--secondary.header--transparent {
    position: fixed;
    width: 100%;
    top: 0; } }

@media (min-width: 1220px) {
  .header--secondary.header--transparent + * {
    margin-top: 0; } }

@media (min-width: 1220px) {
  .header--secondary.header--transparent.active--wGlobal + * {
    margin-top: 50px; } }

.att-about-header__wrap {
  z-index: 10; }
  @media (min-width: 768px) {
    .att-about-header__wrap {
      -webkit-transition: all 450ms ease;
      -o-transition: all 450ms ease;
      transition: all 450ms ease;
      position: fixed;
      height: 105px;
      width: 100%;
      margin-top: 0; }
      #att-about-header.header--fixed .att-about-header__wrap {
        height: 72px; } }

.header--secondary > * {
  z-index: 10; }
  @media (min-width: 768px) {
    .header--secondary > * {
      -webkit-transition: all 450ms ease;
      -o-transition: all 450ms ease;
      transition: all 450ms ease;
      position: fixed;
      width: 100%;
      margin-top: 0;
      top: 0; } }

@media (min-width: 1220px) {
  #att-about-header {
    position: relative;
    z-index: 999999999; } }

#att-microsite-header {
  z-index: 5; }
  #att-microsite-header .component {
    margin-bottom: 0; }
  #att-microsite-header .microsite-nav {
    -webkit-transition: all 450ms ease;
    -o-transition: all 450ms ease;
    transition: all 450ms ease;
    margin: 0;
    padding: 0; }
    @media (min-width: 1440px) {
      #att-microsite-header .microsite-nav {
        height: 105px; } }
  @media (min-width: 1440px) {
    #att-microsite-header .microsite-nav.microsite-nav--plusGlobal {
      height: 155px; } }
  @media (min-width: 1440px) {
    #att-microsite-header.header--fixed .microsite-nav {
      height: 72px; } }
  @media (min-width: 1440px) {
    #att-microsite-header.header--fixed .microsite-nav.microsite-nav--plusGlobal {
      height: calc(155px - 40px); } }

/* Author Instance Display Fixes */
.aem-AuthorLayer-Edit #att-about-header {
  min-height: 72px; }
  @media (min-width: 768px) {
    .aem-AuthorLayer-Edit #att-about-header {
      min-height: 105px; } }

.aem-AuthorLayer-Edit #att-about-header + *,
.aem-AuthorLayer-Edit #att-about-header + .header--secondary + *,
.aem-AuthorLayer-Edit #att-microsite-header + * {
  margin-top: 0; }

.aem-AuthorLayer-Edit #att-microsite-header.active + *,
.aem-AuthorLayer-Edit #att-microsite-header.active--wGlobal + * {
  min-height: 100px; }

.aem-AuthorLayer-Edit #att-microsite-header.active + * {
  margin-top: 130px; }

.aem-AuthorLayer-Edit #att-microsite-header.active--wGlobal + * {
  margin-top: 180px; }

/*======
  FOOTER
  ======*/
#att-about-footer {
  background-color: #191919; }

#att-about-footer .footer__wrap {
  font-family: "Arial", "Helvetica", sans-serif;
  font-size: 11px;
  line-height: 1;
  max-width: 1220px;
  margin: 0 auto;
  padding: 20px;
  color: #959595; }
  @media (min-width: 768px) and (max-width: 1439px) {
    #att-about-footer .footer__wrap {
      padding-left: 55px;
      padding-right: 55px; } }
  @media (min-width: 1024px) {
    #att-about-footer .footer__wrap {
      padding-bottom: 50px; } }
  @media (min-width: 1440px) {
    #att-about-footer .footer__wrap {
      padding-right: 0;
      padding-left: 0; } }
  #att-about-footer .footer__wrap a {
    color: inherit; }

#att-about-footer .footer__menu {
  margin: 10px 0 20px;
  padding: 0; }
  #att-about-footer .footer__menu li {
    display: inline-block;
    margin-right: 16px;
    margin-bottom: .5rem; }
  #att-about-footer .footer__menu a {
    font-weight: 300;
    text-decoration: none; }
    #att-about-footer .footer__menu a:hover {
      text-decoration: underline; }

#att-about-footer .footer__copyright {
  margin: 20px 0; }
  #att-about-footer .footer__copyright p {
    margin: 0; }
  #att-about-footer .footer__copyright a {
    text-decoration: underline; }

/*==========
  Components
  ==========*/
/*===
  NAV
  ===*/
/* Nav-specific settings */
/* Helper mixins */
/*=====================*/
#att-about-header .nav {
  max-width: 1220px;
  margin: 0 auto;
  height: 100%;
  -webkit-font-smoothing: subpixel-antialiased; }
  #att-about-header .nav:after {
    content: "";
    display: table;
    clear: both; }

#att-about-header .nav__utils {
  position: relative;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  padding: 0 20px;
  height: 72px; }
  #att-about-header .nav__utils:after {
    content: "";
    display: table;
    clear: both; }
  @media (min-width: 768px) {
    #att-about-header .nav__utils {
      padding: 0 55px;
      float: left;
      width: 15%; } }
  @media (min-width: 1440px) {
    #att-about-header .nav__utils {
      padding: 0; } }

/* Nav Logo */
.nav__logo {
  position: relative;
  -webkit-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
          transform: translateY(-50%);
  top: 50%;
  display: block;
  float: left; }
  .nav__logo .logo__icon {
    -webkit-transition: all 300ms ease;
    -o-transition: all 300ms ease;
    transition: all 300ms ease;
    height: 38px;
    min-width: 95px;
    background-repeat: no-repeat;
    background-position: 0 0;
    background-size: 100%;
    display: block;
    /* NOTE: Logo color can vary based on the theme. Default treatment is silver. */
    background-image: url("/ui/corpcomm_internet_attus/1.0.0/images/logo_att-white-text.png"); }
    @media (min-width: 1220px) {
      .nav__logo .logo__icon {
        height: 50px;
        min-width: 125px; }
        .header--fixed .nav__logo .logo__icon {
          height: 38px;
          min-width: 95px; } }

/* Hamburger Toggle */
#att-about-header .nav__toggle,
.microsite-nav--plusGlobal .nav__toggle {
  height: 24px;
  width: 24px;
  background-color: transparent;
  padding: 0;
  border: 0; }
  #att-about-header .nav__toggle:focus,
  .microsite-nav--plusGlobal .nav__toggle:focus {
    outline: 0; }
  @media (min-width: 768px) {
    #att-about-header .nav__toggle,
    .microsite-nav--plusGlobal .nav__toggle {
      display: none; } }

#att-about-header .nav__toggle .bar,
.microsite-nav--plusGlobal .nav__toggle .bar {
  -webkit-transition: all 300ms ease;
  -o-transition: all 300ms ease;
  transition: all 300ms ease;
  display: block;
  background: #FFF;
  width: 100%;
  height: 3px;
  margin-bottom: 4px; }

.nav__toggle--open {
  position: relative;
  -webkit-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
          transform: translateY(-50%);
  top: 50%;
  float: right; }
  .nav--open .nav__toggle--open {
    display: none; }

.nav__toggle--close {
  display: none; }
  .nav--open .nav__toggle--close {
    display: block;
    position: absolute;
    top: 22px;
    right: 20px; }
    @media (min-width: 768px) {
      .nav--open .nav__toggle--close {
        display: none; } }
  .nav--open .nav__toggle--close .bar {
    position: absolute;
    background: none;
    top: 8px; }
    .nav--open .nav__toggle--close .bar:first-child, .nav--open .nav__toggle--close .bar:last-child {
      background: #FFF; }
    .nav--open .nav__toggle--close .bar:first-child {
      -webkit-transform: rotate(-45deg);
          -ms-transform: rotate(-45deg);
              transform: rotate(-45deg); }
    .nav--open .nav__toggle--close .bar:last-child {
      -webkit-transform: rotate(45deg);
          -ms-transform: rotate(45deg);
              transform: rotate(45deg); }

@media (min-width: 768px) {
  #att-about-header .nav__utils,
  #att-about-header .nav__menu--primary {
    height: 100%; } }

/* Nav Menus */
.nav__menu {
  position: absolute;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  background-color: #000; }
  @media (min-width: 768px) {
    .nav__menu {
      padding-right: 55px; } }
  @media (min-width: 1220px) {
    .nav__menu {
      padding-right: 55px; } }
  .nav__menu li {
    position: relative;
    list-style-type: none;
    margin: 0;
    z-index: 10;
    text-align: left; }
    .nav__menu li.expanded > .nav__menu-parent:after {
      content: '';
      background-color: #FFF;
      padding: 0;
      height: 2px;
      width: 12px;
      top: 19px;
      left: 14px; }
  .nav__menu .nav__menu-item {
    display: inline-block;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    position: relative;
    height: 100%;
    width: 100%;
    font-family: "Aleck Sans", "Arial", "Helvetica", sans-serif;
    font-weight: 300;
    font-size: 16px;
    line-height: 1.25;
    text-decoration: none;
    color: #FFF; }
    @media (min-width: 768px) {
      .nav__menu .nav__menu-item {
        font-size: 14px; } }
    .nav__menu .nav__menu-item span {
      display: inline-block;
      position: relative; }
      @media (max-width: 360px) {
        .nav__menu .nav__menu-item span {
          font-size: 14px; } }
  .nav__menu .nav__menu-parent {
    position: absolute;
    display: block;
    height: 40px;
    width: 40px;
    padding: 10px 0;
    right: 0;
    top: 0;
    line-height: 1;
    text-decoration: none; }
    .nav__menu .nav__menu-parent:after {
      content: '+';
      display: inline-block;
      position: absolute;
      right: 10px;
      top: 10%;
      float: right;
      padding: 3px;
      color: #FFF;
      font-family: "Aleck Sans", "Arial", "Helvetica", sans-serif;
      font-size: 25px;
      font-weight: 300;
      cursor: pointer; }
    @media (min-width: 768px) {
      .nav__menu .nav__menu-parent {
        height: 37px; } }
    .nav__menu .nav__menu-parent:hover {
      text-decoration: none; }

/* Primary Menus */
.nav__menu--primary {
  width: 320px;
  padding-left: 0;
  margin: 0; }
  @media (min-width: 768px) {
    .nav__menu--primary {
      width: 400px; }
      .nav__menu--primary:focus {
        outline: none; } }
  @media (max-width: 767px) {
    .nav__menu--primary {
      -webkit-transition: width 300ms ease;
      -o-transition: width 300ms ease;
      transition: width 300ms ease;
      max-width: 80%;
      left: 100%;
      top: 0;
      height: 100%;
      padding-top: 72px;
      border-left: 1px solid #5A5A5A; } }
  @media (max-width: 767px) and (min-width: 360px) {
    .nav__menu--primary {
      max-width: none; } }
  @media (min-width: 768px) {
    .nav__menu--primary {
      position: relative;
      float: right;
      width: 85%;
      background-color: transparent;
      text-align: right; } }
  @media (min-width: 1440px) {
    .nav__menu--primary {
      padding-right: 0; } }
  .nav__menu--primary > li {
    /* NOTE: Apply highlighting to nav items based on the body class name. */ }
    .story:not([class*="nav-"]) .nav__menu--primary > li.nav-news > .nav__menu-item,
    .nav-news .nav__menu--primary > li.nav-news > .nav__menu-item {
      color: #009FDB; }
      @media (min-width: 768px) {
        .story:not([class*="nav-"]) .nav__menu--primary > li.nav-news > .nav__menu-item:before,
        .nav-news .nav__menu--primary > li.nav-news > .nav__menu-item:before {
          opacity: 1; } }
    .story:not([class*="nav-"]) .header--transparent .nav__menu--primary > li.nav-news > .nav__menu-item,
    .nav-news .header--transparent .nav__menu--primary > li.nav-news > .nav__menu-item {
      text-shadow: 0px 0px 30px rgba(0, 0, 0, 0.5); }
    .blog:not([class*="nav-"]) .nav__menu--primary > li.nav-news > .nav__menu-item,
    .nav-news .nav__menu--primary > li.nav-news > .nav__menu-item {
      color: #009FDB; }
      @media (min-width: 768px) {
        .blog:not([class*="nav-"]) .nav__menu--primary > li.nav-news > .nav__menu-item:before,
        .nav-news .nav__menu--primary > li.nav-news > .nav__menu-item:before {
          opacity: 1; } }
    .blog:not([class*="nav-"]) .header--transparent .nav__menu--primary > li.nav-news > .nav__menu-item,
    .nav-news .header--transparent .nav__menu--primary > li.nav-news > .nav__menu-item {
      text-shadow: 0px 0px 30px rgba(0, 0, 0, 0.5); }
    .all-posts:not([class*="nav-"]) .nav__menu--primary > li.nav-news > .nav__menu-item,
    .nav-news .nav__menu--primary > li.nav-news > .nav__menu-item {
      color: #009FDB; }
      @media (min-width: 768px) {
        .all-posts:not([class*="nav-"]) .nav__menu--primary > li.nav-news > .nav__menu-item:before,
        .nav-news .nav__menu--primary > li.nav-news > .nav__menu-item:before {
          opacity: 1; } }
    .all-posts:not([class*="nav-"]) .header--transparent .nav__menu--primary > li.nav-news > .nav__menu-item,
    .nav-news .header--transparent .nav__menu--primary > li.nav-news > .nav__menu-item {
      text-shadow: 0px 0px 30px rgba(0, 0, 0, 0.5); }
    .media-gallery:not([class*="nav-"]) .nav__menu--primary > li.nav-news > .nav__menu-item,
    .nav-news .nav__menu--primary > li.nav-news > .nav__menu-item {
      color: #009FDB; }
      @media (min-width: 768px) {
        .media-gallery:not([class*="nav-"]) .nav__menu--primary > li.nav-news > .nav__menu-item:before,
        .nav-news .nav__menu--primary > li.nav-news > .nav__menu-item:before {
          opacity: 1; } }
    .media-gallery:not([class*="nav-"]) .header--transparent .nav__menu--primary > li.nav-news > .nav__menu-item,
    .nav-news .header--transparent .nav__menu--primary > li.nav-news > .nav__menu-item {
      text-shadow: 0px 0px 30px rgba(0, 0, 0, 0.5); }
    .media-kit:not([class*="nav-"]) .nav__menu--primary > li.nav-news > .nav__menu-item,
    .nav-news .nav__menu--primary > li.nav-news > .nav__menu-item {
      color: #009FDB; }
      @media (min-width: 768px) {
        .media-kit:not([class*="nav-"]) .nav__menu--primary > li.nav-news > .nav__menu-item:before,
        .nav-news .nav__menu--primary > li.nav-news > .nav__menu-item:before {
          opacity: 1; } }
    .media-kit:not([class*="nav-"]) .header--transparent .nav__menu--primary > li.nav-news > .nav__menu-item,
    .nav-news .header--transparent .nav__menu--primary > li.nav-news > .nav__menu-item {
      text-shadow: 0px 0px 30px rgba(0, 0, 0, 0.5); }
    .media-kit-landing:not([class*="nav-"]) .nav__menu--primary > li.nav-news > .nav__menu-item,
    .nav-news .nav__menu--primary > li.nav-news > .nav__menu-item {
      color: #009FDB; }
      @media (min-width: 768px) {
        .media-kit-landing:not([class*="nav-"]) .nav__menu--primary > li.nav-news > .nav__menu-item:before,
        .nav-news .nav__menu--primary > li.nav-news > .nav__menu-item:before {
          opacity: 1; } }
    .media-kit-landing:not([class*="nav-"]) .header--transparent .nav__menu--primary > li.nav-news > .nav__menu-item,
    .nav-news .header--transparent .nav__menu--primary > li.nav-news > .nav__menu-item {
      text-shadow: 0px 0px 30px rgba(0, 0, 0, 0.5); }
    .nav__menu--primary > li.active > .nav__menu-item {
      color: #009FDB; }
      @media (min-width: 768px) {
        .nav__menu--primary > li.active > .nav__menu-item:before {
          opacity: 1; } }
    .header--transparent .nav__menu--primary > li.active > .nav__menu-item {
      text-shadow: 0px 0px 30px rgba(0, 0, 0, 0.5); }
    @media (max-width: 767px) {
      .nav__menu--primary > li {
        border-bottom: 1px solid #5A5A5A; }
        .nav__menu--primary > li.expanded > .nav__menu-item:after {
          -webkit-transform: translate(1px, -2px) rotate(45deg);
              -ms-transform: translate(1px, -2px) rotate(45deg);
                  transform: translate(1px, -2px) rotate(45deg); }
        .nav__menu--primary > li.expanded > .nav__menu-item span {
          border-bottom: 2px solid #009FDB;
          padding-bottom: 9px; } }
    @media (min-width: 768px) {
      .nav__menu--primary > li {
        display: inline-block;
        height: 100%;
        margin: 0 0 0 40px; }
        .nav__menu--primary > li:first-child {
          margin-left: 0; }
        .nav__menu--primary > li:nth-last-child(-n+2) > .nav__menu--nested {
          right: 0; }
        .nav__menu--primary > li:hover > .nav__menu-item:before,
        .nav__menu--primary > li.expanded > .nav__menu-item:before {
          opacity: 1; }
        .nav__menu--primary > li:hover > .nav__menu-item:after,
        .nav__menu--primary > li.expanded > .nav__menu-item:after {
          -webkit-transform: translate(1px, -2px) rotate(45deg);
              -ms-transform: translate(1px, -2px) rotate(45deg);
                  transform: translate(1px, -2px) rotate(45deg); } }
    @media (min-width: 1024px) {
      .nav__menu--primary > li {
        margin-left: 65px; } }
    @media (min-width: 1220px) {
      .nav__menu--primary > li {
        margin-left: 80px; } }
    @media (min-width: 1440px) {
      .nav__menu--primary > li.last-item {
        padding-right: 0;
        margin-right: 0; } }
    @media (min-width: 1600px) {
      .nav__menu--primary > li:nth-last-child(-n+2) > .nav__menu--nested {
        right: auto; }
      .nav__menu--primary > li:last-child > .nav__menu--nested {
        right: 0; } }
    @media (max-width: 767px) {
      .nav__menu--primary > li > .nav__menu-item {
        width: calc(100% - 100px);
        padding: 10px 0 10px 20px; } }
    @media (min-width: 768px) {
      .nav__menu--primary > li > .nav__menu-item {
        text-transform: uppercase;
        font-weight: 400; }
        .nav__menu--primary > li > .nav__menu-item:before {
          -webkit-transition: all 300ms ease;
          -o-transition: all 300ms ease;
          transition: all 300ms ease;
          content: "";
          display: block;
          position: absolute;
          bottom: -1px;
          height: 5px;
          width: 100%;
          background-color: #009FDB;
          opacity: 0; }
        .nav__menu--primary > li > .nav__menu-item:focus:before {
          opacity: 1; } }
    @media (min-width: 768px) {
      .nav__menu--primary > li > .nav__menu-item span {
        display: block;
        top: 50%;
        -webkit-transform: translate(0, -50%);
            -ms-transform: translate(0, -50%);
                transform: translate(0, -50%); } }
    @media (min-width: 768px) {
      .nav__menu--primary > li > .nav__menu-parent {
        height: 0;
        width: 0;
        padding: 0; }
        .nav__menu--primary > li > .nav__menu-parent:after {
          content: none; } }
    @media (min-width: 768px) {
      .nav__menu--primary > li.expanded > .nav__menu-parent:after {
        content: none; } }

/* Subnavs */
.nav__menu--secondary,
.nav__menu--tertiary {
  display: none;
  position: relative; }
  @media (min-width: 768px) {
    .nav__menu--secondary,
    .nav__menu--tertiary {
      position: absolute;
      width: 260px;
      margin-top: 1px;
      padding: 10px 0; }
      .nav__menu--secondary .nav__menu--nested,
      .nav__menu--tertiary .nav__menu--nested {
        position: relative;
        background-color: #000;
        margin-top: 0;
        padding: 5px 10px; } }
  @media (min-width: 1220px) {
    .nav__menu--secondary,
    .nav__menu--tertiary {
      width: 300px; } }
  @media (min-width: 1440px) {
    .nav__menu--secondary,
    .nav__menu--tertiary {
      width: 340px; } }
  @media (max-width: 767px) {
    .nav__menu--secondary li,
    .nav__menu--tertiary li {
      border-bottom: 1px solid #5A5A5A; } }
  @media (min-width: 768px) {
    .nav__menu--secondary li:hover,
    .nav__menu--tertiary li:hover {
      background-color: #5A5A5A; } }
  @media (min-width: 768px) {
    .nav__menu--secondary li:hover .nav__menu-parent,
    .nav__menu--tertiary li:hover .nav__menu-parent {
      background-color: #676767; } }
  .nav__menu--secondary li:last-child,
  .nav__menu--tertiary li:last-child {
    border-bottom: 0; }
  .nav__menu--secondary .nav__menu-item,
  .nav__menu--tertiary .nav__menu-item {
    width: calc(100% - 100px);
    padding: 10px 0 10px 0; }
    @media (min-width: 768px) {
      .nav__menu--secondary .nav__menu-item,
      .nav__menu--tertiary .nav__menu-item {
        padding-left: 20px;
        width: calc(100% - 40px); } }
    @media (min-width: 768px) {
      .nav__menu--secondary .nav__menu-item:focus,
      .nav__menu--tertiary .nav__menu-item:focus {
        background-color: #5A5A5A; } }
    .nav__menu--secondary .nav__menu-item:last-child,
    .nav__menu--tertiary .nav__menu-item:last-child {
      width: 100%;
      padding-right: 20px; }

/* Secondary Subnavs */
.nav__menu--secondary {
  /* When in desktop, rely on the hover or focused state of the parent element to show secondary navs */ }
  @media (max-width: 767px) {
    .nav__menu--secondary {
      padding-left: 40px;
      /* When in mobile, rely on the .expanded class of the parent element to show secondary navs */ }
      .expanded > .nav__menu-parent + .nav__menu--secondary {
        display: block; } }
  @media (min-width: 768px) {
    .nav__menu--primary > li:hover > .nav__menu-parent + .nav__menu--secondary,
    .nav__menu--primary > li.expanded > .nav__menu-parent + .nav__menu--secondary {
      display: block; } }

/* Tertiary Subnavs */
.nav__menu--tertiary {
  /* Always rely on the .expanded class of the parent element to show tertiary navs */ }
  @media (max-width: 767px) {
    .nav__menu--tertiary {
      padding-left: 25px; } }
  @media (min-width: 768px) {
    .nav__menu--tertiary {
      position: relative;
      background-color: #000;
      margin-top: 0;
      padding: 5px 10px; } }
  @media (min-width: 768px) {
    .nav__menu--tertiary li .nav__menu-item {
      padding-left: 30px; } }
  .expanded > .nav__menu-parent + .nav__menu--tertiary {
    display: block; }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImdsb2JhbF9uYXYuc2NzcyIsIl9hYnN0cmFjdHMvX3ZhcmlhYmxlcy5zY3NzIiwiX2Fic3RyYWN0cy9fbWl4aW5zLnNjc3MiLCJfbGF5b3V0L19oZWFkZXIuc2NzcyIsIl9sYXlvdXQvX2Zvb3Rlci5zY3NzIiwiX2NvbXBvbmVudHMvX25hdi5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7O0dBVUc7QUFFSDs7Y0FFYztBQUlkOzthQUVhO0FDcEJiOzthQUVhO0FBRWI7O2VBRWU7QUFHZSwwQ0FBMEM7QUFDM0MsMkNBQTJDO0FBR3pDLCtDQUErQztBQUc5RTs7Z0JBRWdCO0FBZWQscUJBQXFCO0FBa0JyQixVQUFVO0FBS1o7O3NCQUVzQjtBQUVwQjs7Ozs7OztLQU9HO0FBWUw7O2lCQUVpQjtBQUVmLG1CQUFtQjtBQWVuQix5QkFBeUI7QUFFRiw4Q0FBOEM7QUFDNUIsZ0NBQWdDO0FBQzVCLHVDQUF1QztBQUN6RCwwQ0FBMEM7QUFDckMsNEJBQTRCO0FBSTVELGdCQUFnQjtBQVdoQiwySEFBMkg7QUFPM0g7Ozs7O0lBS0U7QUFFSjs7aUJBRWlCO0FBRWYscUNBQXFDO0FBRXJDO0VBQ0MsMEJBQXlCO0VBQUUsZ0JBQWdCO0VBQzNDLCtDQUE4QztFQUM5Qyw0UUFHb0U7RUFDbkUsaUJBQWdCO0VBQ2hCLG1CQUFrQixFQUFBOztBQUVwQjtFQUNDLDBCQUF5QjtFQUFFLHVCQUF1QjtFQUNsRCwrQ0FBOEM7RUFDOUMsNFFBR29FO0VBQ25FLGlCQUFnQjtFQUNoQixtQkFBa0IsRUFBQTs7QUFFcEI7RUFDQywwQkFBeUI7RUFBRSxzQkFBc0I7RUFDakQsK0NBQThDO0VBQzlDLDRRQUdvRTtFQUNuRSxpQkFBZ0I7RUFDaEIsbUJBQWtCLEVBQUE7O0FBRXBCO0VBQ0MsMEJBQXlCO0VBQUUsNkJBQTZCO0VBQ3hELGlEQUFnRDtFQUNoRCxvUkFHc0U7RUFDckUsaUJBQWdCO0VBQ2hCLG1CQUFrQixFQUFBOztBQUVwQjtFQUNDLDBCQUF5QjtF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X25hdi5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEFUJlQgQWJvdXQgVXMgR2xvYmFsIE5hdmlnYXRpb24gJiBGb290ZXIgZm9yIEFFTVxuICogYnkgRmxlaXNobWFuSGlsbGFyZCwgYy4gMjAxOFxuICpcbiAqIE5PVEU6IEFUVE4gREVWUyFcbiAqIFBsZWFzZSB1c2UgdGhpcyBzdHlsZXNoZWV0IGZvciBpbXBvcnRpbmcgU0FTUyBwYXJ0aWFscyBvbmx5LiBEbyBub3QgYXV0aG9yIGFueSBTQVNTIG9yIENTUyBkaXJlY3RseSBpbiB0aGlzIGZpbGUuXG4gKiBBbHNvLCBwbGVhc2UgZmlyc3QgcmVmZXIgdG8gdGhlIF9hYnN0cmFjdHMgcGFydGlhbHMgdG8gcmV2aWV3IHRoZSBleGlzdGluZyBnbG9iYWwgc3R5bGUgc2V0dGluZ3MgYW5kIHV0aWxpdGllcyBiZWZvcmUgY3JlYXRpbmcgbmV3IG9uZXMuXG4gKlxuICogRm9yIHN0eWxlIGd1aWRlbGluZXMgYW5kIGNvZGluZyBjb252ZW50aW9ucyBmb3IgdGhpcyBwcm9qZWN0LFxuICogcGxlYXNlIGNvbnN1bHQgdGhlIFJFQURNRS5tZCBpbiB0aGUgcm9vdCBvZiB0aGUgcHJvamVjdC5cbiAqL1xuXG4vKj09PT09PT09PT1cbiAgTkFWSUdBVElPTlxuICA9PT09PT09PT09Ki9cblxuICBAY2hhcnNldCAndXRmLTgnO1xuXG4vKj09PT09PT09PVxuICBBYnN0cmFjdHNcbiAgPT09PT09PT09Ki9cblxuICBAaW1wb3J0ICdfYWJzdHJhY3RzL3ZhcmlhYmxlcyc7XG4gIEBpbXBvcnQgJ19hYnN0cmFjdHMvbWl4aW5zJztcblxuLyo9PT09PT1cbiAgTGF5b3V0XG4gID09PT09PSovXG5cbiAgQGltcG9ydCAnX2xheW91dC9oZWFkZXInO1xuICBAaW1wb3J0ICdfbGF5b3V0L2Zvb3Rlcic7XG5cbi8qPT09PT09PT09PVxuICBDb21wb25lbnRzXG4gID09PT09PT09PT0qL1xuXG4gIEBpbXBvcnQgJ19jb21wb25lbnRzL25hdic7XG4iLCIvKj09PT09PT09PVxuICBWQVJJQUJMRVNcbiAgPT09PT09PT09Ki9cblxuLyo9PT09PT09PT09PVxuICBCcmVha3BvaW50c1xuICA9PT09PT09PT09PSovXG5cbiAgJGJyZWFrcG9pbnQtLXh4U21hbGw6IDQ4MHB4O1xuICAkYnJlYWtwb2ludC0teFNtYWxsOiA2NDBweDsgLyogd2Ugc3dpdGNoIGZyb20gbW9iaWxlIHRvIHRhYmxldCBoZXJlICovXG4gICRicmVha3BvaW50LS1zbWFsbDogNzY4cHg7IC8qIHdlIHN3aXRjaCBmcm9tIHRhYmxldCB0byBkZXNrdG9wIGhlcmUgKi9cbiAgJGJyZWFrcG9pbnQtLW1lZGl1bTogMTAyNHB4O1xuICAkYnJlYWtwb2ludC0tbGFyZ2U6IDEyMjBweDtcbiAgJGJyZWFrcG9pbnQtLXhMYXJnZTogMTQ0MHB4OyAvKiBtYXggd2lkdGggb2Ygc3RhbmRhcmQgMTVcIiBsYXB0b3Agdmlld3BvcnQgKi9cbiAgJGJyZWFrcG9pbnQtLXh4TGFyZ2U6IDE2MDBweDtcblxuLyo9PT09PT09PT09PT1cbiAgR2xvYmFsIFNpemVzXG4gID09PT09PT09PT09PSovXG5cbiAgJG1heFBhZ2VXaWR0aDogMTYwMHB4O1xuICAkbWF4Q29udGVudFdpZHRoOiAxMjIwcHg7XG4gICRtYXhSb3dXaWR0aDogJG1heENvbnRlbnRXaWR0aDtcblxuICAkbW9iaWxlTmF2SGd0OiA3MnB4O1xuICAkZGVza3RvcE5hdkhndDogMTA1cHg7XG4gICRtaWNyb3NpdGVHbG9iYWxOYXZIZ3Q6IDUwcHg7XG4gICRtaWNyb3NpdGVOYXZIZ3Q6ICRkZXNrdG9wTmF2SGd0ICsgJG1pY3Jvc2l0ZUdsb2JhbE5hdkhndDtcblxuICAkbmF2V2lkdGhNb2JpbGU6IDMyMHB4O1xuICAkbmF2V2lkdGhUYWJsZXQ6IDQwMHB4O1xuICAkYnJlYWtwb2ludC0tZGVza3RvcE5hdjogJGJyZWFrcG9pbnQtLXNtYWxsO1xuXG4gIC8qIE1hcmdpbi9QYWRkaW5ncyAqL1xuXG4gICRhaXItLXhTbWFsbDogMjBweDtcbiAgJGFpci0tc21hbGw6IDQwcHg7XG4gICRhaXItLWxhcmdlOiA2MHB4O1xuICAkYWlyLS14TGFyZ2U6IDgwcHg7XG4gICRhaXItLXh4TGFyZ2U6IDEwMHB4O1xuXG4gICRndXR0ZXItLXNtYWxsOiA1NXB4O1xuICAkZ3V0dGVyLS1sYXJnZTogMTA1cHg7XG5cbiAgJGxpbmVIZWlnaHQtLXhTbWFsbDogMS4zNTtcbiAgJGxpbmVIZWlnaHQtLXNtYWxsOiAxLjQ1O1xuICAkbGluZUhlaWdodC0tbGFyZ2U6IDEuNjtcblxuICAkYmFubmVyLWxpbmVIZWlnaHQtLXNtYWxsOiAxLjE1O1xuICAkYmFubmVyLWxpbmVIZWlnaHQtLWxhcmdlOiAxLjU7XG5cbiAgLyogTWlzYyAqL1xuXG4gICRsaWdodGJveE9wYWNpdHk6IC44NTtcbiAgJGhpZ2hsaWdodEJhcjogNXB4O1xuXG4vKj09PT09PT09PT09PT09PT09PVxuICBSZXNwb25zaXZlIENvbHVtbnNcbiAgPT09PT09PT09PT09PT09PT09Ki9cblxuICAvKlxuICAgKiBUaGUgZm9sbG93aW5nIGNvbHVtbiBzaXppbmcgbWFwIGlzIHVzZWQgdG8gZGV0ZXJtaW5lIGhvdyBkaWZmZXJlbnQgc2l6ZWQgY29sdW1ucyB3aWxsIGFkanVzdCB0aGVpciB3aWR0aHMgYXQgZGlmZmVyZW50IGJyZWFrcG9pbnRzLlxuICAgKiBGb3IgZWFjaCBjb2x1bW4gc2l6ZSAoMTIsIDksIDgsIDYsIDQsIDMsIDIpLCB0aGUgc3Vic2VxdWVudCByZXNwb25zaXZlIHdpZHRocyBhcmUgbGlzdGVkIGluIHBhcmVudGhlc2VzLCBnb2luZyBpbiBvcmRlciBmcm9tIG1vYmlsZSwgdG8gdGFibGV0LCB0byBzbWFsbCBkZXNrdG9wLCB0byBmdWxsIGRlc2t0b3AuXG4gICAqIGV4OiBjb2xTaXplOihtb2JpbGVXaWR0aCwgdGFibGV0V2lkdGgsIHNtRGVza3RvcFdpZHRoLCBsZ0Rlc2t0b3BXaWR0aCksIHdoZXJlIHRoZSB3aWR0aCB2YWx1ZXMgcmVmZXIgdG8gdGhlIG51bWJlciBvZiBwYXJ0cy1wZXItMTIgdGhhdCB0aGUgY29sdW1uIHNob3VsZCBvY2N1cHkgYXQgZWFjaCBzY3JlZW4gc2l6ZS5cbiAgICogTm90ZSB0aGF0IGFsbCBjb2x1bW4gd2lkdGhzIGFyZSAxMi1iYXNlZCwgc28gYSAxMiByZXByZXNlbnRzIGEgZnVsbC13aWR0aCBhcHBlYXJhbmNlLlxuICAgKiBTaW5jZSBhbGwgY29sdW1uIHNpemVzIHNob3VsZCBhcHBlYXIgZnVsbC13aWR0aCBhdCBtb2JpbGUgdmlld3BvcnQgc2l6ZSwgdGhlIGZpcnN0IG51bWJlciBpbiBlYWNoIHNlcXVlbmNlIGlzIDEyLlxuICAgKiBUaGUgc2V0dGluZ3MgZnJvbSB0aGlzIG1hcCBnZXQgYXBwbGllZCBieSB0aGUgY29sdW1uU2l6ZXIgbG9vcCBzdGF0ZW1lbnQgZm91bmQgaW4gdGhlIFwiQ29sdW1uc1wiIHNlY3Rpb24gb2YgdGhlIF9sYXlvdXQgcGFydGlhbCAoc2VlIHRoZSBzdHlsZXMgdW5kZXIgXCIuY29sXCIpLlxuICAgKi9cblxuICAkY29sdW1uU2l6ZXI6IChcbiAgICAxMjooMTIsIDEyLCAxMiwgMTIpLCAvLyBmdWxsLXdpZHRoIGNvbHVtbjsgMTIvMTIgPSAxICgxMDAlKVxuICAgIDk6ICgxMiwgNiwgOSwgOSksIC8vIHRocmVlLWZvdXJ0aHMgd2lkdGggY29sdW1uOyA5LzEyID0gMC43NSAoNzUlKVxuICAgIDg6ICgxMiwgOCwgOCwgOCksIC8vIHR3by10aGlyZHMgd2lkdGggY29sdW1uOyA4LzEyID0gMC42NiAoNjYlKVxuICAgIDY6ICgxMiwgNiwgNiwgNiksIC8vIGhhbGYtd2lkdGggY29sdW1uICg2LzEyID0gMC41IG9yIDUwJSlcbiAgICA0OiAoMTIsIDQsIDQsIDQpLCAvLyBvbmUtdGhpcmQgd2lkdGggY29sdW1uICg0LzEyID0gMC4zMyBvciAzMyUpXG4gICAgMzogKDEyLCA2LCAzLCAzKSwgLy8gb25lLWZvdXJ0aCB3aWR0aCBjb2x1bW4gKDMvMTIgPSAwLjI1IG9yIDI1JSlcbiAgICAyOiAoMTIsIDQsIDIuNCwgMikgLy8gb25lLWZpZnRoIHdpZHRoIGNvbHVtbiAoMi40LzEyID0gMC4yIG9yIDIwJSlcbiAgKTtcblxuLyo9PT09PT09PT09PT09XG4gIENvbG9yIFBhbGV0dGVcbiAgPT09PT09PT09PT09PSovXG5cbiAgLyogR2xvYmFsIENvbG9ycyAqL1xuXG4gICRhdHRZZWxsb3c6ICNGRkI4MUM7XG4gICRhdHRPcmFuZ2U6ICNFQTc0MDA7XG4gICRhdHRMZ3RCbHVlOiAjNzFDNUU4O1xuICAkYXR0Qmx1ZTogIzAwOUZEQjtcbiAgJGF0dERya0JsdWU6ICMwNTY4QUU7XG4gICR3aGl0ZTogI0ZGRjtcbiAgJGxndEdyYXk6ICNGMkYyRjI7XG4gICRyZWdHcmF5OiAjQzlDOUM5O1xuICAkbWVkR3JheTogIzk1OTU5NTtcbiAgJGRya0dyYXk6ICM1QTVBNUE7XG4gICRmdW5jdGlvbmFsQmxhY2s6ICMxOTE5MTk7XG4gICRibGFjazogIzAwMDtcblxuICAvKiBTcGVjaWZpYyBVc2UgQ29sb3JzICovXG5cbiAgJGNvbG9yLS1jdGE6ICRhdHRCbHVlOyAvKiBjYWxsLXRvLWFjdGlvbiBlbGVtZW50cyAobGlua3MsIGJ1dHRvbnMpICovXG4gICRjb2xvci0tY3RhLWhvdmVyOiBkYXJrZW4oJGF0dEJsdWUsIDQlKTsgLyogY2FsbC10by1hY3Rpb24gaG92ZXIgc3RhdGUgKi9cbiAgJGNvbG9yLS1jdGEtY29udHJhc3Q6IGxpZ2h0ZW4oJGF0dEJsdWUsIDclKTsgLyogdHJhbnNwYXJlbnQgaGVhZGVyIGxpbmsgaGlnaGxpZ2h0ICovXG4gICRjb2xvci0tbGluazogJGF0dERya0JsdWU7IC8qIHN0YW5kYXJkIGxpbmtzIGluc2lkZSBvZiB0ZXh0IGJsb2NrcyAqL1xuICAkY29sb3ItLWNvcHk6ICRmdW5jdGlvbmFsQmxhY2s7IC8qIGdlbmVyYWwgcGFnZSBib2R5IGNvcHkgKi9cbiAgJGNvbG9yLS1zZWFyY2gtYm9yZGVyOiBkYXJrZW4oJGxndEdyYXksIDMlKTtcbiAgJGNvbG9yLS1sb2dvLWRlZmF1bHQ6IFwid2hpdGVcIjtcblxuICAvKiBDb2xvciBNYXBzICovXG5cbiAgJGJhY2tncm91bmRDb2xvcnM6IChcbiAgICBibHVlOiAkYXR0Qmx1ZSxcbiAgICBkYXJrLWJsdWU6ICRhdHREcmtCbHVlLFxuICAgIGdyYXk6ICRsZ3RHcmF5LFxuICAgIG5lYXItYmxhY2s6ICRmdW5jdGlvbmFsQmxhY2ssXG4gICAgYmxhY2s6ICRibGFjayxcbiAgICB3aGl0ZTogJHdoaXRlXG4gICk7XG5cbiAgLyogQ2F0ZWdvcnkgVGhlbWVzIC0gdGhlbWUgbmFtZXMgYmVsb3cgYXJlIGJhc2VkIG9uIHRoZW1lLS0gY2F0ZWdvcnkgY2xhc3NlcyB0aGF0IGdldCBhcHBsaWVkIHRvIHRoZSBib2R5IGVsZW1lbnQgYnkgQUVNICovXG5cbiAgJHRoZW1lQ29sb3JzOiAoXG4gICAgLy8gQ29tbXVuaWNhdGlvbnM6IChcIndoaXRlXCIsICR3aGl0ZSksXG4gICAgLy8gY29tcGFueTogKFwid2hpdGVcIiwgJHdoaXRlKVxuICApO1xuXG4gIC8qXG5cbiAgQ29tbXVuaWNhdGlvbnM6IChcImJsdWVcIiwgJGF0dEJsdWUpLFxuICBjb21wYW55OiAoXCJzaWx2ZXJcIiwgXCJzaWx2ZXJcIilcblxuICAqL1xuXG4vKj09PT09PT09PT09PT1cbiAgRm9udCBGYW1pbGllc1xuICA9PT09PT09PT09PT09Ki9cblxuICAvKiBBbGVjayBTYW5zIC0gQmFzZSBGb250IFZhcmlhbnRzICovXG5cbiAgQGZvbnQtZmFjZXtcbiAgXHRmb250LWZhbWlseTogJ0FsZWNrIFNhbnMnOyAvKiBBbGVjayBTYW5zICovXG4gIFx0c3JjOiB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NhbnNfV19SZy5lb3QnKTtcbiAgXHRzcmM6IHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2Fuc19XX1JnLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gIFx0ICAgICB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NhbnNfV19SZy53b2ZmJykgZm9ybWF0KCd3b2ZmJyksXG4gIFx0ICAgICB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NhbnNfV19SZy50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksXG4gIFx0ICAgICB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NhbnNfV19SZy5zdmcjd2ViZm9udCcpIGZvcm1hdCgnc3ZnJyk7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gIH1cbiAgQGZvbnQtZmFjZXtcbiAgXHRmb250LWZhbWlseTogJ0FsZWNrIFNhbnMnOyAvKiBBbGVjayBTYW5zIEl0YWxpYyAqL1xuICBcdHNyYzogdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTYW5zX1dfSXQuZW90Jyk7XG4gIFx0c3JjOiB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NhbnNfV19JdC5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICBcdCAgICAgdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTYW5zX1dfSXQud29mZicpIGZvcm1hdCgnd29mZicpLFxuICBcdCAgICAgdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTYW5zX1dfSXQudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLFxuICBcdCAgICAgdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTYW5zX1dfSXQuc3ZnI3dlYmZvbnQnKSBmb3JtYXQoJ3N2ZycpO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICB9XG4gIEBmb250LWZhY2V7XG4gIFx0Zm9udC1mYW1pbHk6ICdBbGVjayBTYW5zJzsgLyogQWxlY2sgU2FucyBMaWdodCAqL1xuICBcdHNyYzogdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTYW5zX1dfTHQuZW90Jyk7XG4gIFx0c3JjOiB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NhbnNfV19MdC5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICBcdCAgICAgdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTYW5zX1dfTHQud29mZicpIGZvcm1hdCgnd29mZicpLFxuICBcdCAgICAgdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTYW5zX1dfTHQudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLFxuICBcdCAgICAgdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTYW5zX1dfTHQuc3ZnI3dlYmZvbnQnKSBmb3JtYXQoJ3N2ZycpO1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICB9XG4gIEBmb250LWZhY2V7XG4gIFx0Zm9udC1mYW1pbHk6ICdBbGVjayBTYW5zJzsgLyogQWxlY2sgU2FucyBMaWdodCBJdGFsaWMgKi9cbiAgXHRzcmM6IHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2Fuc19XX0x0SXQuZW90Jyk7XG4gIFx0c3JjOiB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NhbnNfV19MdEl0LmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gIFx0ICAgICB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NhbnNfV19MdEl0LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgXHQgICAgIHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2Fuc19XX0x0SXQudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLFxuICBcdCAgICAgdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTYW5zX1dfTHRJdC5zdmcjd2ViZm9udCcpIGZvcm1hdCgnc3ZnJyk7XG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIH1cbiAgQGZvbnQtZmFjZXtcbiAgXHRmb250LWZhbWlseTogJ0FsZWNrIFNhbnMnOyAvKiBBbGVjayBTYW5zIEJvbGQgKi9cbiAgXHRzcmM6IHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2Fuc19XX0JkLmVvdCcpO1xuICBcdHNyYzogdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTYW5zX1dfQmQuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbiAgXHQgICAgIHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2Fuc19XX0JkLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgXHQgICAgIHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2Fuc19XX0JkLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSxcbiAgXHQgICAgIHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2Fuc19XX0JkLnN2ZyN3ZWJmb250JykgZm9ybWF0KCdzdmcnKTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgfVxuICBAZm9udC1mYWNle1xuICBcdGZvbnQtZmFtaWx5OiAnQWxlY2sgU2Fucyc7IC8qIEFsZWNrIFNhbnMgQm9sZCBJdGFsaWMgKi9cbiAgXHRzcmM6IHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2Fuc19XX0JkSXQuZW90Jyk7XG4gIFx0c3JjOiB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NhbnNfV19CZEl0LmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gIFx0ICAgICB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NhbnNfV19CZEl0LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgXHQgICAgIHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2Fuc19XX0JkSXQudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLFxuICBcdCAgICAgdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTYW5zX1dfQmRJdC5zdmcjd2ViZm9udCcpIGZvcm1hdCgnc3ZnJyk7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIH1cblxuICAvKiBBbGVjayBTYW5zIC0gQWRkaXRpb25hbCBGb250IFZhcmlhbnRzICovXG5cbiAgQGZvbnQtZmFjZXtcbiAgXHRmb250LWZhbWlseTogJ0FsZWNrIFNhbnMgTWVkaXVtJzsgLyogQWxlY2sgU2FucyBNZWRpdW0gKi9cbiAgXHRzcmM6IHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2Fuc19XX01kLmVvdCcpO1xuICBcdHNyYzogdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTYW5zX1dfTWQuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbiAgXHQgICAgIHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2Fuc19XX01kLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgXHQgICAgIHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2Fuc19XX01kLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSxcbiAgXHQgICAgIHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2Fuc19XX01kLnN2ZyN3ZWJmb250JykgZm9ybWF0KCdzdmcnKTtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgfVxuICBAZm9udC1mYWNle1xuICBcdGZvbnQtZmFtaWx5OiAnQWxlY2sgU2FucyBNZWRpdW0nOyAvKiBBbGVjayBTYW5zIE1lZGl1bSBJdGFsaWMgKi9cbiAgXHRzcmM6IHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2Fuc19XX01kSXQuZW90Jyk7XG4gIFx0c3JjOiB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NhbnNfV19NZEl0LmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gIFx0ICAgICB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NhbnNfV19NZEl0LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgXHQgICAgIHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2Fuc19XX01kSXQudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLFxuICBcdCAgICAgdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTYW5zX1dfTWRJdC5zdmcjd2ViZm9udCcpIGZvcm1hdCgnc3ZnJyk7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIH1cbiAgQGZvbnQtZmFjZXtcbiAgXHRmb250LWZhbWlseTogJ0FsZWNrIFNhbnMgQmxhY2snOyAvKiBBbGVjayBTYW5zIEJsYWNrICovXG4gIFx0c3JjOiB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NhbnNfV19CbGsuZW90Jyk7XG4gIFx0c3JjOiB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NhbnNfV19CbGsuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbiAgXHQgICAgIHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2Fuc19XX0Jsay53b2ZmJykgZm9ybWF0KCd3b2ZmJyksXG4gIFx0ICAgICB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NhbnNfV19CbGsudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLFxuICBcdCAgICAgdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTYW5zX1dfQmxrLnN2ZyN3ZWJmb250JykgZm9ybWF0KCdzdmcnKTtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgfVxuICBAZm9udC1mYWNle1xuICBcdGZvbnQtZmFtaWx5OiAnQWxlY2sgU2FucyBCbGFjayc7IC8qIEFsZWNrIFNhbnMgQmxhY2sgSXRhbGljICovXG4gIFx0c3JjOiB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NhbnNfV19CbGtJdC5lb3QnKTtcbiAgXHRzcmM6IHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2Fuc19XX0Jsa0l0LmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gIFx0ICAgICB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NhbnNfV19CbGtJdC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksXG4gIFx0ICAgICB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NhbnNfV19CbGtJdC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksXG4gIFx0ICAgICB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NhbnNfV19CbGtJdC5zdmcjd2ViZm9udCcpIGZvcm1hdCgnc3ZnJyk7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIH1cblxuICAvKiBBbGVjayBTbGFiICovXG5cbiAgQGZvbnQtZmFjZXtcbiAgXHRmb250LWZhbWlseTogJ0FsZWNrIFNsYWInOyAvKiBBbGVjayBTbGFiICovXG4gIFx0c3JjOiB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NsYWJfV19SZy5lb3QnKTtcbiAgXHRzcmM6IHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2xhYl9XX1JnLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gIFx0ICAgICB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NsYWJfV19SZy53b2ZmJykgZm9ybWF0KCd3b2ZmJyksXG4gIFx0ICAgICB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NsYWJfV19SZy50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksXG4gIFx0ICAgICB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NsYWJfV19SZy5zdmcjd2ViZm9udCcpIGZvcm1hdCgnc3ZnJyk7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gIH1cbiAgQGZvbnQtZmFjZXtcbiAgXHRmb250LWZhbWlseTogJ0FsZWNrIFNsYWInOyAvKiBBbGVjayBTbGFiIEl0YWxpYyAqL1xuICBcdHNyYzogdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTbGFiX1dfSXQuZW90Jyk7XG4gIFx0c3JjOiB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NsYWJfV19JdC5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICBcdCAgICAgdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTbGFiX1dfSXQud29mZicpIGZvcm1hdCgnd29mZicpLFxuICBcdCAgICAgdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTbGFiX1dfSXQudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLFxuICBcdCAgICAgdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTbGFiX1dfSXQuc3ZnI3dlYmZvbnQnKSBmb3JtYXQoJ3N2ZycpO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICB9XG5cblxuICAvKiBBVCZUIEljb24gRm9udCAqL1xuXG4gIEBmb250LWZhY2V7XG4gIFx0Zm9udC1mYW1pbHk6ICdBVFRfSWNvbnMnOyAvKiBBVCZUIEljb24gRm9udCAqL1xuICBcdHNyYzogdXJsKCdfZm9udHMvQVRUX0ljb25zL2F0dC1pY29ucy5lb3QnKTtcbiAgXHRzcmM6IHVybCgnX2ZvbnRzL0FUVF9JY29ucy9hdHQtaWNvbnMuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbiAgXHQgICAgIHVybCgnX2ZvbnRzL0FUVF9JY29ucy9hdHQtaWNvbnMud29mZicpIGZvcm1hdCgnd29mZicpLFxuICBcdCAgICAgdXJsKCdfZm9udHMvQVRUX0ljb25zL2F0dC1pY29ucy50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksXG4gIFx0ICAgICB1cmwoJ19mb250cy9BVFRfSWNvbnMvYXR0LWljb25zLnN2ZyN3ZWJmb250JykgZm9ybWF0KCdzdmcnKTtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgfVxuXG4vKj09PT09PT09PT09PT09XG4gIEZvbnQgVmFyaWFibGVzXG4gID09PT09PT09PT09PT09Ki9cblxuICAkYWxlY2s6IFwiQWxlY2sgU2Fuc1wiLCBcIkFyaWFsXCIsIFwiSGVsdmV0aWNhXCIsIHNhbnMtc2VyaWY7XG4gICRhbGVja01lZGl1bTogXCJBbGVjayBTYW5zIE1lZGl1bVwiLCBcIkFsZWNrIFNhbnNcIiwgXCJBcmlhbFwiLCBcIkhlbHZldGljYVwiLCBzYW5zLXNlcmlmO1xuICAkYWxlY2tCbGFjazogXCJBbGVjayBTYW5zIEJsYWNrXCIsIFwiQWxlY2sgU2FucyBNZWRpdW1cIiwgXCJBbGVjayBTYW5zXCIsIFwiQXJpYWxcIiwgXCJIZWx2ZXRpY2FcIiwgc2Fucy1zZXJpZjtcbiAgJGFsZWNrU2xhYjogXCJBbGVjayBTbGFiXCIsIFwiQWxlY2sgU2Fuc1wiLCBcIkFyaWFsXCIsIFwiSGVsdmV0aWNhXCIsIHNhbnMtc2VyaWY7XG4gICRhcmlhbDogXCJBcmlhbFwiLCBcIkhlbHZldGljYVwiLCBzYW5zLXNlcmlmO1xuICAkYXR0LWljb25zOiBcIkFUVF9JY29uc1wiLFwiQXJpYWxcIiwgXCJIZWx2ZXRpY2FcIiwgc2Fucy1zZXJpZjtcblxuICAvKiBBVCZUIEljb24gRm9udCBNYXBzICovXG5cbiAgJGF0dEljb25zOiAoXG4gICAgYWxlcnQ6IFwiXFxlOTAwXCIsXG4gICAgYXR0LWxvZ286IFwiXFxlOTAxXCIsXG4gICAgYXR0LWxvZ28tdGV4dDogXCJcXGU5MGVcIixcbiAgICBjb21tZW50OiBcIlxcZTkwMlwiLFxuICAgIGRvd25sb2FkOiBcIlxcZTkwM1wiLFxuICAgIGVtYWlsOiBcIlxcZTkwNFwiLFxuICAgIGZhY2Vib29rOiBcIlxcZTkwNVwiLFxuICAgIGZhcTogXCJcXGU5MDZcIixcbiAgICBmaWxlOiBcIlxcZTkwN1wiLFxuICAgIGluZm86IFwiXFxlOTA4XCIsXG4gICAgaW5mbzI6IFwiXFxlOTA5XCIsXG4gICAgaW5zdGFncmFtOiBcIlxcZTkwYVwiLFxuICAgIGxpbms6IFwiXFxlOTBiXCIsXG4gICAgbGlua2VkaW46IFwiXFxlOTBjXCIsXG4gICAgbm90aWZpY2F0aW9uOiBcIlxcZTkwZlwiLFxuICAgIG1pbnVzOiBcIlxcZTkwZFwiLFxuICAgIHBsYXk6IFwiXFxlOTEwXCIsXG4gICAgcGx1czogXCJcXGU5MTFcIixcbiAgICBxdW90ZTogXCJcXGU5MTJcIixcbiAgICBzZWFyY2g6IFwiXFxlOTEzXCIsXG4gICAgdHdpdHRlcjogXCJcXGU5MTRcIixcbiAgICB5b3V0dWJlOiBcIlxcZTkxNVwiXG4gICk7XG5cbi8qPT09PT09PT09PT09PT09PVxuICBOYXYgSGlnaGxpZ2h0aW5nXG4gID09PT09PT09PT09PT09PT0qL1xuXG4gIC8qXG4gICAqIFRoZSBmb2xsb3dpbmcgbWFwIHNldHMgdGhlIG5hdiBoaWdobGlnaHRpbmcgZGVmYXVsdCBmb3IgZGlmZmVyZW50IGJvZHkgY2xhc3Nlc1xuICAgKiBleDogYm9keUNsYXNzTmFtZTogXCJuYXYtaXRlbS1jbGFzcy1uYW1lXCJcbiAgICogTm90ZSB0aGF0IGlmIGEgbmF2IGl0ZW0gd2l0aCBjbGFzcyBvZiBcIm5hdi1jb21wYW55XCIgZXhpc3RzIGFuZCB5b3UncmUgb24gYSBwYWdlIHdpdGggYSBib2R5IGNsYXNzIG9mIFwibmF2LWNvbXBhbnlcIiwgdGhhdCB3aWxsIGhpZ2hsaWdodCBhcyB3ZWxsXG4gICAqL1xuXG4gICRuYXZIaWdobGlnaHRzOiAoXG4gICAgc3Rvcnk6IFwibmF2LW5ld3NcIixcbiAgICBibG9nOiBcIm5hdi1uZXdzXCIsXG4gICAgYWxsLXBvc3RzOiBcIm5hdi1uZXdzXCIsXG4gICAgbWVkaWEtZ2FsbGVyeTogXCJuYXYtbmV3c1wiLFxuICAgIG1lZGlhLWtpdDogXCJuYXYtbmV3c1wiLFxuICAgIG1lZGlhLWtpdC1sYW5kaW5nOiBcIm5hdi1uZXdzXCJcbiAgKTtcbiIsIi8qPT09PT09XG4gIE1JWElOU1xuICA9PT09PT0qL1xuXG4vKj09PT09PT1cbiAgQWNjZW50c1xuICA9PT09PT09Ki9cblxuICBAbWl4aW4gYWNjZW50LWFycm93KCRkaXJlY3Rpb24pIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgIEBpZiAkZGlyZWN0aW9uID09IFwidXBcIiB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXFwyMTkxXCI7XG4gICAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gXCJkb3duXCIge1xuICAgICAgICBjb250ZW50OiBcIlxcMjE5M1wiO1xuICAgICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IFwibGVmdFwiIHtcbiAgICAgICAgY29udGVudDogXCJcXDIxOTBcIjtcbiAgICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBcInJpZ2h0XCIge1xuICAgICAgICBjb250ZW50OiBcIlxcMjE5MlwiO1xuICAgICAgfVxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICBsZWZ0OiAxMDUlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTUwJSk7XG4gICAgfVxuICB9XG5cbiAgQG1peGluIHNwZWNpYWwtYm9sZCgkY29sb3IpIHtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoMjQpO1xuICAgIGZvbnQtZmFtaWx5OiAkYWxlY2s7XG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcblxuICAgIGIsXG4gICAgc3Ryb25nIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAucmVnaW9uLS1ibHVlICYge1xuICAgICAgICBjb2xvcjogJGJsYWNrO1xuICAgICAgfVxuXG4gICAgICAucmVnaW9uLS1kYXJrLWJsdWUgJixcbiAgICAgIC5yZWdpb25bY2xhc3MqPVwiLWJsYWNrXCJdICYge1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBtaXhpbiBncmFkaWVudC1vdmVybGF5KCRzdGFydFBvc2l0aW9uLCAkb3BhY2l0eSkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQodG9wLCByZ2JhKDAsMCwwLDApIDAlLCByZ2JhKDAsMCwwLDApICRzdGFydFBvc2l0aW9uLCByZ2JhKDAsMCwwLCRvcGFjaXR5KSAxMDAlKTtcbiAgICAgIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgcmdiYSgwLDAsMCwwKSAwJSxyZ2JhKDAsMCwwLDApICRzdGFydFBvc2l0aW9uLHJnYmEoMCwwLDAsJG9wYWNpdHkpIDEwMCUpO1xuICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgcmdiYSgwLDAsMCwwKSAwJSxyZ2JhKDAsMCwwLDApICRzdGFydFBvc2l0aW9uLHJnYmEoMCwwLDAsJG9wYWNpdHkpIDEwMCUpO1xuXG4gICAgICAubm8tY3NzZ3JhZGllbnRzICYge1xuICAgICAgICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudCggc3RhcnRDb2xvcnN0cj0nIzMzMDAwMCcsIGVuZENvbG9yc3RyPScjMDAwMDAwJyxHcmFkaWVudFR5cGU9MSApO1xuICAgICAgICAtbXMtZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoIHN0YXJ0Q29sb3JzdHI9JyMzMzAwMDAnLCBlbmRDb2xvcnN0cj0nIzAwMDAwMCcsR3JhZGllbnRUeXBlPTEgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAbWl4aW4gc29saWQtb3ZlcmxheSgkb3BhY2l0eSkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAkb3BhY2l0eSk7XG4gICAgfVxuICB9XG5cbiAgQG1peGluIGhpZ2hsaWdodC1iYXIoJGhlaWdodCkge1xuICAgICY6YmVmb3JlIHtcbiAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb25BbGwoMzAwbXMpO1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgaGVpZ2h0OiAkaGVpZ2h0O1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItLWN0YTtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuICB9XG5cbiAgQG1peGluIGljb24tb3ZlcmxheSgkaWNvbikge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogbWFwLWdldCgkYXR0SWNvbnMsICRpY29uKTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbGVmdDogNTAlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgIGZvbnQtZmFtaWx5OiAkYXR0LWljb25zO1xuICAgICAgZm9udC1zaXplOiAxMHJlbTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICBvcGFjaXR5OiAwLjg1O1xuXG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogJGJyZWFrcG9pbnQtLXh4U21hbGwpIHtcbiAgICAgICAgZm9udC1zaXplOiA4cmVtO1xuICAgICAgfVxuXG4gICAgICAuY29sLTIgJiB7XG4gICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tc21hbGwpIHtcbiAgICAgICAgICBmb250LXNpemU6IDhyZW07XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmNvbC0zICYge1xuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLW1lZGl1bSkge1xuICAgICAgICAgIGZvbnQtc2l6ZTogOHJlbTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuY29sLTQgJiB7XG4gICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tc21hbGwpIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtwb2ludC0tbWVkaXVtIC0gMSkge1xuICAgICAgICAgIGZvbnQtc2l6ZTogOHJlbTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4vKj09PT09PT09PT1cbiAgQW5pbWF0aW9uc1xuICA9PT09PT09PT09Ki9cblxuICBAbWl4aW4gdHJhbnNpdGlvbkFsbCgkc3BlZWQpIHtcbiAgICB0cmFuc2l0aW9uOiBhbGwgJHNwZWVkIGVhc2U7XG4gIH1cblxuLyo9PT09PT09PT09PT09PT09PVxuICBDb250YWluZXIgUXVlcmllc1xuICA9PT09PT09PT09PT09PT09PSovXG5cbiAgQG1peGluIHJlc3BvbmQtdG8tY29udGV4dCgkc2l6ZXMuLi4pe1xuICAgIC8qXG4gICAgICogQXZhaWxhYmxlIGNvbXBvbmVudCBmb3JtYXRzIGFyZSB4c21hbGwsIHNtYWxsLCBtZWRpdW0gb3IgbGFyZ2UuXG4gICAgICogVGhpcyBtaXhpbiBsb29wcyBvdmVyIHRoZSBjb250ZXh0cyBwcm92aWRlZCAoY29sdW1uIHNpemVzKSBhbmQgZGV0ZXJtaW5lcyB3aGVuIHRvIGFwcGx5IHRoZSBjb250YWluZWQgc3R5bGVzIGZvciB0aG9zZSBjb250ZXh0cyxcbiAgICAgKiBhbmQgYXNzaWducyBlYWNoIG9mIHRob3NlIHBvdGVudGlhbCBjb2x1bW4gc2l6ZXMgdG8gYSBjb3JyZXNwb25kaW5nIGNvbXBvbmVudCBmb3JtYXQgKHhzbWFsbCwgc21hbGwsIG1lZGl1bSBvciBsYXJnZSkuXG4gICAgICogVGhlIDpub3QoLmNvbCkgcGFyZW50IGZpbHRlciBpcyBhbHdheXMgaW5jbHVkZWQgdG8gbWFrZSBzdXJlIHRoYXQgdGhlc2Ugc3R5bGVzIGFsc28gZ2V0IGFwcGxpZWQgZm9yIGNvbXBvbmVudHMgdGhhdCBhcmUgYmVpbmcgdXNlZCBvdXRzaWRlIG9mIGNvbHVtbnMgc3lzdGVtXG4gICAgICovXG5cbiAgICAgQGVhY2ggJHNpemUgaW4gJHNpemVzIHtcbiAgICAgICBAaWYgJHNpemUgPT0gXCJzbWFsbFwiIHtcblxuICAgICAgICAgLyogQXQgbW9iaWxlIHZpZXdwb3J0cywgZXZlcnkgY29tcG9uZW50IGluIGV2ZXJ5IGNvbHVtbiBzdGFydHMgb3V0IGFkaGVyaW5nIHRvIGl0cyBzbWFsbCBmb3JtYXQgKi9cbiAgICAgICAgIC8vIC5yZWdpb24gOm5vdCguY29sKSAmLFxuICAgICAgICAgLmNvbC0yICYsXG4gICAgICAgICAuY29sLTMgJixcbiAgICAgICAgIC5jb2wtNCAmLFxuICAgICAgICAgLmNvbC02ICYsXG4gICAgICAgICAuY29sLTggJixcbiAgICAgICAgIC5jb2wtOSAmLFxuICAgICAgICAgLmNvbC0xMiAmIHtcbiAgICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgICB9XG5cbiAgICAgICB9IEBlbHNlaWYgJHNpemUgPT0gXCJtZWRpdW1cIiB7XG5cbiAgICAgICAgIC8qIFRoZW4sIGF0IHRhYmxldCB2aWV3cG9ydHMuLi4gKi9cbiAgICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tc21hbGwpIHtcblxuICAgICAgICAgICAvKiAuLi5vbmx5IGNvbXBvbmVudHMgaW5zaWRlIG9mIHRoZSB3aWRlc3QgY29sdW1ucyBzaG91bGQgYWRoZXJlIHRvIHRoZWlyIG1lZGl1bSBmb3JtYXRzICovXG4gICAgICAgICAgIC8vIC5yZWdpb24gOm5vdCguY29sKSAmLFxuICAgICAgICAgICAuY29sLTggJixcbiAgICAgICAgICAgLmNvbC05ICYsXG4gICAgICAgICAgIC5jb2wtMTIgJiB7XG4gICAgICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgICAgIH1cblxuICAgICAgICAgfVxuXG4gICAgICAgICAvKiBUaGVuLCBhdCBzbWFsbGVyIGRlc2t0b3Agdmlld3BvcnRzLi4uICovXG4gICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLW1lZGl1bSkge1xuXG4gICAgICAgICAgIC8qIC4uLmNvbXBvbmVudHMgaW5zaWRlIG9mIGxhcmdlciBtaWQtc2l6ZSBjb2x1bW5zIGNhbiBzdGFydCB0byBhZGhlcmUgdG8gdGhlaXIgbWVkaXVtIGZvcm1hdHMgKi9cbiAgICAgICAgICAgLy8gLnJlZ2lvbiA6bm90KC5jb2wpICYsXG4gICAgICAgICAgIC5jb2wtNiAmIHtcbiAgICAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgICAgfVxuXG4gICAgICAgICB9XG5cbiAgICAgICAgIC8qIFRoZW4sIGF0IGxhcmdlciBkZXNrdG9wIHZpZXdwb3J0cy4uLiAqL1xuICAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1sYXJnZSkge1xuXG4gICAgICAgICAgIC8qIC4uLmNvbXBvbmVudHMgaW5zaWRlIG9mIHNtYWxsZXIgbWlkLXNpemUgY29sdW1ucyBjYW4gc3RhcnQgdG8gYWRoZXJlIHRvIHRoZWlyIG1lZGl1bSBmb3JtYXRzIGlmIHRoZXkgYXJlIGluIGhvcml6b250YWxseSBmbHVzaCByb3dzICovXG4gICAgICAgICAgIC8vIC5yZWdpb24gOm5vdCguY29sKSAmLFxuICAgICAgICAgICAucm93LS1mbHVzaC1ob3Jpem9udGFsIC5jb2wtNCAmIHtcbiAgICAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgICAgfVxuXG4gICAgICAgICB9XG5cbiAgICAgICB9IEBlbHNlaWYgJHNpemUgPT0gXCJsYXJnZVwiIHtcblxuICAgICAgICAgLyogVGhlbiwgYXQgdGFibGV0IHZpZXdwb3J0cy4uLiAqL1xuICAgICAgICAgLy8gQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1zbWFsbCkge1xuICAgICAgICAgLy9cbiAgICAgICAgIC8vICAgLyogLi4ub25seSBjb21wb25lbnRzIGluc2lkZSBvZiB0aGUgd2lkZXN0IGNvbHVtbiBzaG91bGQgYWRoZXJlIHRvIHRoZWlyIGxhcmdlIGZvcm1hdHMgKi9cbiAgICAgICAgIC8vICAgLmNvbC0xMiAmIHtcbiAgICAgICAgIC8vICAgICBAY29udGVudDtcbiAgICAgICAgIC8vICAgfVxuICAgICAgICAgLy9cbiAgICAgICAgIC8vIH1cblxuICAgICAgICAgLyogVGhlbiwgYXQgc21hbGxlciBkZXNrdG9wIHZpZXdwb3J0cy4uLiAqL1xuICAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1tZWRpdW0pIHtcblxuICAgICAgICAgICAvKiAuLi5vbmx5IGNvbXBvbmVudHMgaW5zaWRlIG9mIHRoZSB3aWRlc3QgY29sdW1ucyBjYW4gc3RhcnQgdG8gYWRoZXJlIHRvIHRoZWlyIGxhcmdlIGZvcm1hdHMgKi9cbiAgICAgICAgICAgLy8gLnJlZ2lvbiA6bm90KC5jb2wpICYsXG4gICAgICAgICAgIC5jb2wtOCAmLFxuICAgICAgICAgICAuY29sLTkgJixcbiAgICAgICAgICAgLmNvbC0xMiAmIHtcbiAgICAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgICAgfVxuXG4gICAgICAgICB9XG5cbiAgICAgICAgIC8qIFRoZW4sIGF0IGxhcmdlciBkZXNrdG9wIHZpZXdwb3J0cyAuLi4gKi9cbiAgICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tbGFyZ2UpIHtcblxuICAgICAgICAgICAvKiAuLi5jb21wb25lbnRzIGluc2lkZSBvZiBsYXJnZXIgbWlkLXNpemUgY29sdW1ucyBjYW4gc3RhcnQgdG8gYWRoZXJlIHRvIHRoZWlyIGxhcmdlIGZvcm1hdHMgKi9cbiAgICAgICAgICAgLy8gLnJlZ2lvbiA6bm90KC5jb2wpICYsXG4gICAgICAgICAgIC5jb2wtNiAmIHtcbiAgICAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgICAgfVxuXG4gICAgICAgICB9XG5cbiAgICAgICB9IEBlbHNlaWYgJHNpemUgPT0gXCJ4c21hbGxcIiB7XG5cbiAgICAgICAgIC8qIFRoZW4sIGF0IGxhcmdlciBkZXNrdG9wIHZpZXdwb3J0cy4uLiAqL1xuICAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1sYXJnZSkge1xuXG4gICAgICAgICAgIC8qIC4uLm9ubHkgY29tcG9uZW50cyBpbnNpZGUgb2YgdGhlIHRpbmllc3QgY29sdW1ucyBzaG91bGQgYWRoZXJlIHRvIHRoZWlyIHhzbWFsbCBmb3JtYXRzICovXG4gICAgICAgICAgIC8vIC5yZWdpb24gOm5vdCguY29sKSAmLFxuICAgICAgICAgICAuY29sLTIgJiB7XG4gICAgICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgICAgIH1cblxuICAgICAgICAgfVxuXG4gICAgICAgfVxuICAgICB9XG4gIH1cblxuLyo9PT09PT09PT09PVxuICBQb3NpdGlvbmluZ1xuICA9PT09PT09PT09PSovXG5cbiAgQG1peGluIGNsZWFyZml4IHtcbiAgICAmOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cbiAgfVxuXG4gIEBtaXhpbiBjZW50ZXJIb3Jpem9udGFsbHkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgbGVmdDogNTAlO1xuICB9XG5cbiAgQG1peGluIGNlbnRlclZlcnRpY2FsbHkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgdG9wOiA1MCU7XG4gIH1cblxuICBAbWl4aW4gcm93KCR3aWR0aDogJGNvbnRhaW5lcikge1xuICAgICRjb250YWluZXI6ICR3aWR0aDtcblxuICAgIG1heC13aWR0aDogJGNvbnRhaW5lcjtcbiAgfVxuXG4gIEBtaXhpbiBjb2x1bW4oJG51bUNvbHMpIHtcbiAgICAkZ3JpZEJhc2U6IDEyO1xuXG4gICAgLy8gLy8gR3V0dGVyIHN0dWZmXG4gICAgLy8gJGd1dHRlckJhc2U6IDIwO1xuICAgIC8vIEBpZiAkbnVtQ29scyA9PSA1IHtcbiAgICAvLyAgICRndXR0ZXJCYXNlOiA3MjtcbiAgICAvLyB9XG4gICAgLy8gJG51bUd1dHRlcnM6ICRncmlkQmFzZSAvICgkbnVtQ29scyAtIDEpO1xuICAgIC8vICRndXR0ZXJXaWR0aDogKCRndXR0ZXJCYXNlIC8gJGdyaWRCYXNlKSAqIDElO1xuXG4gICAgJGNvbHVtbldpZHRoOiAoJG51bUNvbHMgLyAkZ3JpZEJhc2UpICogMTAwJTtcblxuICAgIG1heC13aWR0aDogJGNvbHVtbldpZHRoO1xuICAgIGZsZXgtYmFzaXM6ICRjb2x1bW5XaWR0aDtcbiAgfVxuXG4gIEBtaXhpbiBoaWRkZW4tc3Bva2VuIHtcbiAgICBib3JkZXI6IDA7XG4gICAgY2xpcDogcmVjdCgxcHgsIDFweCwgMXB4LCAxcHgpO1xuICAgIGNsaXAtcGF0aDogaW5zZXQoNTAlKTtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBtYXJnaW46IC0xcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiAxcHg7XG4gICAgd29yZC13cmFwOiBub3JtYWwgIWltcG9ydGFudDtcblxuICAgICY6Zm9jdXMge1xuICAgICAgY2xpcDogYXV0byAhaW1wb3J0YW50O1xuICAgICAgY2xpcC1wYXRoOiBub25lO1xuICAgICAgei1pbmRleDogMTAwMDAwO1xuICAgIH1cbiAgfVxuXG4vKj09PT1cbiAgTWlzY1xuICA9PT09Ki9cblxuICAvKiBTaWx2ZXIgc3R5bGUgKi9cblxuICBAbWl4aW4gYmtnLXNpbHZlciB7XG4gICAgYmFja2dyb3VuZDogI0VERUNFQztcbiAgICBiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudChsZWZ0LCByZ2JhKDIzNywyMzYsMjM2LDEpIDAlLCByZ2JhKDI0OSwyNDksMjQ5LDEpIDEwMCUpO1xuICAgIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZnQsIHJnYmEoMjM3LDIzNiwyMzYsMSkgMCUscmdiYSgyNDksMjQ5LDI0OSwxKSAxMDAlKTtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMjM3LDIzNiwyMzYsMSkgMCUscmdiYSgyNDksMjQ5LDI0OSwxKSAxMDAlKTtcbiAgICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudCggc3RhcnRDb2xvcnN0cj0nI0VERUNFQycsIGVuZENvbG9yc3RyPScjRjlGOUY5JyxHcmFkaWVudFR5cGU9MSApO1xuICAgIC5uby1jc3NncmFkaWVudHMgJiB7XG4gICAgICBmaWx0ZXI6IG5vbmU7XG4gICAgfVxuXG4gICAgLmN0YS0tbGluayB7XG4gICAgICBjb2xvcjogJGF0dERya0JsdWU7XG4gICAgfVxuICB9XG5cbiAgLyogRGVmYXVsdCBidXR0b24gc3R5bGUgZm9yIHdoaXRlLCBncmF5IG9yIGJsYWNrIGJhY2tncm91bmRzICovXG5cbiAgQG1peGluIGN0YSgkYmtnQ29sb3IpIHtcbiAgICBAaWYgJGJrZ0NvbG9yID09IFwiYmx1ZVwiIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci0tY3RhO1xuICAgICAgY29sb3I6ICR3aGl0ZTtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci0tY3RhLWhvdmVyO1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgfVxuXG4gICAgfSBAZWxzZWlmICRia2dDb2xvciA9PSBcImJsYWNrXCIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrO1xuICAgICAgY29sb3I6ICR3aGl0ZTtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgY29sb3I6ICRibGFjaztcbiAgICAgIH1cbiAgICB9IEBlbHNlaWYgJGJrZ0NvbG9yID09IFwid2hpdGVcIiB7XG4gICAgICBib3JkZXI6IDJweCBzb2xpZCAkd2hpdGU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gICAgICBjb2xvcjogJGJsYWNrO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyogSG9yaXpvbnRhbC9WZXJ0aWNhbCBSdWxlcyAqL1xuXG4gIEBtaXhpbiBydWxlKCRkaXJlY3Rpb24pIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYXR0Qmx1ZTtcbiAgICBib3JkZXItcmFkaXVzOiAzMHB4O1xuICAgIHotaW5kZXg6IDI7XG5cbiAgICBAaWYgJGRpcmVjdGlvbiA9PSBcImhvcml6b250YWxcIiB7XG4gICAgICBtYXgtd2lkdGg6IDMwMHB4O1xuICAgICAgd2lkdGg6IDYwJTtcbiAgICAgIGhlaWdodDogNHB4O1xuICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICBib3R0b206IC0ycHg7XG4gICAgICByaWdodDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgfSBAZWxzZSB7XG4gICAgICBtYXgtaGVpZ2h0OiAzMDBweDtcbiAgICAgIGhlaWdodDogNjAlO1xuICAgICAgd2lkdGg6IDRweDtcbiAgICAgIG1hcmdpbjogYXV0byAwO1xuICAgICAgbGVmdDogLTJweDtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIHRvcDogMDtcbiAgICB9XG5cbiAgICAucmVnaW9uLS1ibHVlICYge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrO1xuICAgIH1cbiAgICAucmVnaW9uLS1kYXJrLWJsdWUgJiB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gICAgfVxuICB9XG5cbi8qPT09PT09PT09PVxuICBUeXBvZ3JhcGh5XG4gID09PT09PT09PT0qL1xuXG4gIEBtaXhpbiBmb250LXNpemUoJHBpeGVsczogMS40KXtcbiAgICBmb250LXNpemU6ICRwaXhlbHMgKyBweDtcbiAgICBmb250LXNpemU6ICgkcGl4ZWxzIC8gMTApICsgcmVtO1xuICB9XG5cbiAgQG1peGluIGZvbnQtc21vb3RoaW5nIHtcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICB9XG5cbiAgQG1peGluIG5vLWZvbnQtc21vb3RoaW5nIHtcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhdXRvO1xuICB9XG4iLCIvKj09PT09PVxuICBIRUFERVJcbiAgPT09PT09Ki9cblxuICBib2R5ID4gLndyYXBwZXIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgYm9keSA+IC53cmFwcGVyIC5jYW52YXMge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb25BbGwoMzAwbXMpO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiAxMDB2aDtcblxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnJlYWtwb2ludC0tZGVza3RvcE5hdiAtIDEpIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcblxuICAgICAgJi5jYW52YXMtLW9uIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC04MCUpO1xuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogMzYwcHgpIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLSN7JG5hdldpZHRoTW9iaWxlfSk7XG4gICAgICAgIH1cbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1zbWFsbCkge1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtI3skbmF2V2lkdGhUYWJsZXR9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tZGVza3RvcE5hdikge1xuICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgfVxuICB9XG5cbiAgLyogU2tpcCBOYXZpZ2F0aW9uICovXG5cbiAgLnNraXAtbmF2aWdhdGlvbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRkcmtHcmF5LCAxMCUpO1xuXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1zbWFsbCkge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrO1xuICAgIH1cbiAgfVxuICAuc2tpcC1uYXZpZ2F0aW9uIGEge1xuICAgIEBpbmNsdWRlIGhpZGRlbi1zcG9rZW47XG4gICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIHdpZHRoOiBjYWxjKDEwMHZ3IC0gMTBweCk7XG4gICAgcGFkZGluZzogNXB4O1xuICAgIHRvcDogNXB4O1xuXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1zbWFsbCkge1xuICAgICAgdG9wOiAtMzBweDtcbiAgICB9XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb25BbGwoMzAwbXMpO1xuICAgICAgZm9udC1zaXplOiAxMnB4OyAvLyBkb24ndCB1c2UgcmVtcyBoZXJlXG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBwYWRkaW5nOiA1cHggNXB4IDEwcHg7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIHRvcDogNXB4O1xuICAgICAgY2xpcC1wYXRoOiBub25lO1xuICAgICAgY2xpcDogaW5pdGlhbDtcbiAgICAgIGNvbG9yOiAkcmVnR3JheTtcbiAgICAgIHotaW5kZXg6IDk5OTk5OTk5OTk7XG5cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tc21hbGwpIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBsZWZ0OiA1cHg7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyogU3RhbmRhcmQgYW5kIE1pY3Jvc2l0ZSBIZWFkZXJzICovXG5cbiAgI2F0dC1hYm91dC1oZWFkZXIgPiBkaXYsXG4gICNhdHQtbWljcm9zaXRlLWhlYWRlciAubWljcm9zaXRlLW5hdiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkZHJrR3JheTtcbiAgfVxuXG4gICNhdHQtYWJvdXQtaGVhZGVyLmhlYWRlci0tdHJhbnNwYXJlbnQgPiBkaXYsXG4gICNhdHQtbWljcm9zaXRlLWhlYWRlci5oZWFkZXItLXRyYW5zcGFyZW50IC5taWNyb3NpdGUtbmF2IHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLWxhcmdlKSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRibGFjaywgLjY1KTtcbiAgICB9XG4gIH1cblxuICAjYXR0LWFib3V0LWhlYWRlci5oZWFkZXItLWZpeGVkID4gZGl2LFxuICAjYXR0LW1pY3Jvc2l0ZS1oZWFkZXIuaGVhZGVyLS1maXhlZCAubWljcm9zaXRlLW5hdiB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1sYXJnZSkge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrO1xuICAgIH1cbiAgfVxuXG4gIGhlYWRlciB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgICosXG4gICAgKjpiZWZvcmUsXG4gICAgKjphZnRlciB7XG4gICAgICBib3gtc2l6aW5nOiBpbmhlcml0O1xuICAgIH1cblxuICAgIC50b3VjaCAmLFxuICAgIC50b3VjaGV2ZW50cyAmIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gIH1cblxuICAvLyBBbnkgaW1tZWRpYXRlIHNpYmxpbmcgb2YgdGhlIHNlY29uZGFyeSBoZWFkZXJcblxuICAuaGVhZGVyLS1zZWNvbmRhcnkgKyAqIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLWRlc2t0b3BOYXYpIHtcbiAgICAgIG1hcmdpbi10b3A6ICRkZXNrdG9wTmF2SGd0O1xuICAgIH1cbiAgfVxuXG4gIC8vIEFueSBpbW1lZGlhdGUgc2libGluZyBvZiB0aGUgc2Vjb25kYXJ5IGhlYWRlciwgSUYgdGhlIHNlY29uZGFyeSBoZWFkZXIgaXMgaW4gdXNlXG5cbiAgLmhlYWRlci0tc2Vjb25kYXJ5LmFjdGl2ZSArICoge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tZGVza3RvcE5hdikge1xuICAgICAgbWFyZ2luLXRvcDogJG1vYmlsZU5hdkhndDtcbiAgICB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS14TGFyZ2UpIHtcbiAgICAgIG1hcmdpbi10b3A6ICRkZXNrdG9wTmF2SGd0O1xuICAgIH1cbiAgfVxuXG4gIC8vIEFueSBpbW1lZGlhdGUgc2libGluZyBvZiB0aGUgc2Vjb25kYXJ5IGhlYWRlciwgSUYgdGhlIHNlY29uZGFyeSBoZWFkZXIgaXMgaW4gdXNlIGFuZCBjb250YWlucyBjb25kZW5zZWQgZ2xvYmFsIG5hdlxuXG4gIC5oZWFkZXItLXNlY29uZGFyeS5hY3RpdmUtLXdHbG9iYWwgKyAqIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLXhMYXJnZSkge1xuICAgICAgbWFyZ2luLXRvcDogJG1pY3Jvc2l0ZU5hdkhndDtcbiAgICB9XG4gIH1cblxuICAuaGVhZGVyICsgKixcbiAgLmhlYWRlciArIC5oZWFkZXItLXNlY29uZGFyeSArICoge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tZGVza3RvcE5hdikge1xuICAgICAgbWFyZ2luLXRvcDogJGRlc2t0b3BOYXZIZ3Q7XG4gICAgICB0b3A6IDA7XG4gICAgfVxuICB9XG5cbiAgLmhlYWRlci5oZWFkZXItLXRyYW5zcGFyZW50ICsgKiB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1kZXNrdG9wTmF2KSB7XG4gICAgICBtYXJnaW4tdG9wOiAkZGVza3RvcE5hdkhndDtcbiAgICB9XG5cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLWxhcmdlKSB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgbWluLWhlaWdodDogYXV0bztcbiAgICB9XG4gIH1cblxuICAuaGVhZGVyLmhlYWRlci0tdHJhbnNwYXJlbnQgKyAuaGVhZGVyLS1zZWNvbmRhcnkuaGVhZGVyLS10cmFuc3BhcmVudCArICoge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tbGFyZ2UpIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICB6LWluZGV4OiAwO1xuICAgIH1cbiAgfVxuXG4gIC5oZWFkZXItLXNlY29uZGFyeS5oZWFkZXItLXRyYW5zcGFyZW50IHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLWxhcmdlKSB7XG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHRvcDogMDtcbiAgICB9XG4gIH1cblxuICAuaGVhZGVyLS1zZWNvbmRhcnkuaGVhZGVyLS10cmFuc3BhcmVudCArICoge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tbGFyZ2UpIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuICB9XG5cbiAgLmhlYWRlci0tc2Vjb25kYXJ5LmhlYWRlci0tdHJhbnNwYXJlbnQuYWN0aXZlLS13R2xvYmFsICsgKiB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1sYXJnZSkge1xuICAgICAgbWFyZ2luLXRvcDogJG1pY3Jvc2l0ZUdsb2JhbE5hdkhndDtcbiAgICB9XG4gIH1cblxuICAuYXR0LWFib3V0LWhlYWRlcl9fd3JhcCB7XG4gICAgei1pbmRleDogMTA7XG5cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLWRlc2t0b3BOYXYpIHtcbiAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb25BbGwoNDUwbXMpO1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgaGVpZ2h0OiAkZGVza3RvcE5hdkhndDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWFyZ2luLXRvcDogMDtcblxuICAgICAgI2F0dC1hYm91dC1oZWFkZXIuaGVhZGVyLS1maXhlZCAmIHtcbiAgICAgICAgaGVpZ2h0OiAkbW9iaWxlTmF2SGd0O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5oZWFkZXItLXNlY29uZGFyeSA+ICoge1xuICAgIHotaW5kZXg6IDEwO1xuXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1kZXNrdG9wTmF2KSB7XG4gICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uQWxsKDQ1MG1zKTtcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgIC8vIGhlaWdodDogJGRlc2t0b3BOYXZIZ3Q7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICB0b3A6IDA7XG5cbiAgICAgIC8vICNhdHQtYWJvdXQtaGVhZGVyLmhlYWRlci0tZml4ZWQgJiB7XG4gICAgICAvLyAgIGhlaWdodDogJG1vYmlsZU5hdkhndDtcbiAgICAgIC8vIH1cbiAgICB9XG4gIH1cblxuICAjYXR0LWFib3V0LWhlYWRlciB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1sYXJnZSkge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgei1pbmRleDogOTk5OTk5OTk5O1xuICAgIH1cbiAgfVxuXG4gICNhdHQtbWljcm9zaXRlLWhlYWRlciB7XG4gICAgei1pbmRleDogNTtcblxuICAgICYgLmNvbXBvbmVudCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgICYgLm1pY3Jvc2l0ZS1uYXYge1xuICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbkFsbCg0NTBtcyk7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLXhMYXJnZSkge1xuICAgICAgICBoZWlnaHQ6ICRkZXNrdG9wTmF2SGd0O1xuICAgICAgfVxuICAgIH1cblxuICAgICYgLm1pY3Jvc2l0ZS1uYXYubWljcm9zaXRlLW5hdi0tcGx1c0dsb2JhbCB7XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLXhMYXJnZSkge1xuICAgICAgICBoZWlnaHQ6ICRtaWNyb3NpdGVOYXZIZ3Q7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5oZWFkZXItLWZpeGVkIC5taWNyb3NpdGUtbmF2IHtcbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0teExhcmdlKSB7XG4gICAgICAgIGhlaWdodDogJG1vYmlsZU5hdkhndDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmhlYWRlci0tZml4ZWQgLm1pY3Jvc2l0ZS1uYXYubWljcm9zaXRlLW5hdi0tcGx1c0dsb2JhbCB7XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLXhMYXJnZSkge1xuICAgICAgICBoZWlnaHQ6IGNhbGMoI3skbWljcm9zaXRlTmF2SGd0fSAtIDQwcHgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qIEF1dGhvciBJbnN0YW5jZSBEaXNwbGF5IEZpeGVzICovXG5cbiAgLmFlbS1BdXRob3JMYXllci1FZGl0ICNhdHQtYWJvdXQtaGVhZGVyIHtcbiAgICBtaW4taGVpZ2h0OiAkbW9iaWxlTmF2SGd0O1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tZGVza3RvcE5hdikge1xuICAgICAgbWluLWhlaWdodDogJGRlc2t0b3BOYXZIZ3Q7XG4gICAgfVxuICB9XG5cbiAgLmFlbS1BdXRob3JMYXllci1FZGl0ICNhdHQtYWJvdXQtaGVhZGVyICsgKixcbiAgLmFlbS1BdXRob3JMYXllci1FZGl0ICNhdHQtYWJvdXQtaGVhZGVyICsgLmhlYWRlci0tc2Vjb25kYXJ5ICsgKixcbiAgLmFlbS1BdXRob3JMYXllci1FZGl0ICNhdHQtbWljcm9zaXRlLWhlYWRlciArICoge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cblxuICAvLyAuYWVtLUF1dGhvckxheWVyLUVkaXQgI2F0dC1hYm91dC1oZWFkZXIuaGVhZGVyLS10cmFuc3BhcmVudCArICosXG4gIC8vIC5hZW0tQXV0aG9yTGF5ZXItRWRpdCAjYXR0LWFib3V0LWhlYWRlci5oZWFkZXItLXRyYW5zcGFyZW50ICsgLmhlYWRlci0tc2Vjb25kYXJ5ICsgKixcbiAgLy8gLmFlbS1BdXRob3JMYXllci1FZGl0ICNhdHQtbWljcm9zaXRlLWhlYWRlci5oZWFkZXItLXRyYW5zcGFyZW50ICsgKiB7XG4gIC8vICAgbWFyZ2luLXRvcDogMTAwcHg7XG4gIC8vIH1cblxuICAuYWVtLUF1dGhvckxheWVyLUVkaXQgI2F0dC1taWNyb3NpdGUtaGVhZGVyLmFjdGl2ZSArICosXG4gIC5hZW0tQXV0aG9yTGF5ZXItRWRpdCAjYXR0LW1pY3Jvc2l0ZS1oZWFkZXIuYWN0aXZlLS13R2xvYmFsICsgKiB7XG4gICAgbWluLWhlaWdodDogMTAwcHg7XG4gIH1cblxuICAuYWVtLUF1dGhvckxheWVyLUVkaXQgI2F0dC1taWNyb3NpdGUtaGVhZGVyLmFjdGl2ZSArICoge1xuICAgIG1hcmdpbi10b3A6IDEzMHB4O1xuICB9XG4gIC5hZW0tQXV0aG9yTGF5ZXItRWRpdCAjYXR0LW1pY3Jvc2l0ZS1oZWFkZXIuYWN0aXZlLS13R2xvYmFsICsgKiB7XG4gICAgbWFyZ2luLXRvcDogMTgwcHg7XG4gIH1cbiIsIi8qPT09PT09XG4gIEZPT1RFUlxuICA9PT09PT0qL1xuXG4gICNhdHQtYWJvdXQtZm9vdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZnVuY3Rpb25hbEJsYWNrO1xuICB9XG5cbiAgI2F0dC1hYm91dC1mb290ZXIgLmZvb3Rlcl9fd3JhcCB7XG4gICAgZm9udC1mYW1pbHk6IFwiQXJpYWxcIiwgXCJIZWx2ZXRpY2FcIiwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgbWF4LXdpZHRoOiAkbWF4Q29udGVudFdpZHRoO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIHBhZGRpbmc6ICRhaXItLXhTbWFsbDtcbiAgICBjb2xvcjogJG1lZEdyYXk7XG5cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLXNtYWxsKSBhbmQgKG1heC13aWR0aDogJGJyZWFrcG9pbnQtLXhMYXJnZSAtIDEpIHtcbiAgICAgIHBhZGRpbmctbGVmdDogJGd1dHRlci0tc21hbGw7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAkZ3V0dGVyLS1zbWFsbDtcbiAgICB9XG5cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLW1lZGl1bSkge1xuICAgICAgcGFkZGluZy1ib3R0b206IDUwcHg7XG4gICAgfVxuXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS14TGFyZ2UpIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICB9XG4gIH1cblxuICAjYXR0LWFib3V0LWZvb3RlciAuZm9vdGVyX19tZW51IHtcbiAgICBtYXJnaW46IDEwcHggMCAyMHB4O1xuICAgIHBhZGRpbmc6IDA7XG5cbiAgICBsaSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDE2cHg7XG4gICAgICBtYXJnaW4tYm90dG9tOiAuNXJlbTtcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAjYXR0LWFib3V0LWZvb3RlciAuZm9vdGVyX19jb3B5cmlnaHQge1xuICAgIG1hcmdpbjogMjBweCAwO1xuXG4gICAgcCB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB9XG4gIH1cbiIsIi8qPT09XG4gIE5BVlxuICA9PT0qL1xuXG4gIC8qIE5hdi1zcGVjaWZpYyBzZXR0aW5ncyAqL1xuXG4gICRidXJnZXI6IDI0cHg7XG4gICRidXJnZXJCYXI6ICRidXJnZXIgLyA4O1xuXG4gICRtb2JpbGVMb2dvOiAzOHB4O1xuICAkZGVza3RvcExvZ286IDUwcHg7XG5cbiAgLyogSGVscGVyIG1peGlucyAqL1xuXG4gIEBtaXhpbiBuYXZMb2dvKCRzaXplKXtcbiAgICBoZWlnaHQ6ICRzaXplO1xuICB9XG5cbiAgQG1peGluIG5hdkFuY2hvciB7XG4gICAgJjphZnRlciB7XG4gICAgICBjb250ZW50OiAnKyc7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICByaWdodDogMTBweDtcbiAgICAgIHRvcDogMTAlO1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgcGFkZGluZzogM3B4O1xuICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgIGZvbnQtZmFtaWx5OiAkYWxlY2s7XG4gICAgICBmb250LXNpemU6IDI1cHg7XG4gICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cbiAgfVxuXG4gIEBtaXhpbiBuYXZBbmNob3ItZXhwYW5kZWQge1xuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICB3aWR0aDogMTJweDtcbiAgICAgIHRvcDogMTlweDtcbiAgICAgIGxlZnQ6IDE0cHg7XG4gICAgfVxuICB9XG5cbiAgQG1peGluIGFjdGl2ZUl0ZW0ge1xuICAgICYgPiAubmF2X19tZW51LWl0ZW0ge1xuICAgICAgY29sb3I6ICRjb2xvci0tY3RhO1xuXG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLWRlc2t0b3BOYXYpIHtcbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAbWl4aW4gYWN0aXZlSXRlbS1kYXJrZW5lZCB7XG4gICAgJiA+IC5uYXZfX21lbnUtaXRlbSB7XG4gICAgICB0ZXh0LXNoYWRvdzogMHB4IDBweCAzMHB4IHJnYmEoMCwgMCwgMCwgLjUpO1xuICAgIH1cbiAgfVxuXG4vKj09PT09PT09PT09PT09PT09PT09PSovXG5cbiAgI2F0dC1hYm91dC1oZWFkZXIgLm5hdiB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgbWF4LXdpZHRoOiAkbWF4Q29udGVudFdpZHRoO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBzdWJwaXhlbC1hbnRpYWxpYXNlZDtcbiAgfVxuXG4gICNhdHQtYWJvdXQtaGVhZGVyIC5uYXZfX3V0aWxzIHtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBwYWRkaW5nOiAwICRhaXItLXhTbWFsbDtcbiAgICBoZWlnaHQ6ICRtb2JpbGVOYXZIZ3Q7XG5cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLWRlc2t0b3BOYXYpIHtcbiAgICAgIHBhZGRpbmc6IDAgJGd1dHRlci0tc21hbGw7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIHdpZHRoOiAxNSU7XG4gICAgfVxuXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS14TGFyZ2UpIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuICB9XG5cbiAgLyogTmF2IExvZ28gKi9cblxuICAubmF2X19sb2dvIHtcbiAgICBAaW5jbHVkZSBjZW50ZXJWZXJ0aWNhbGx5O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZsb2F0OiBsZWZ0O1xuXG4gICAgLmxvZ29fX2ljb24ge1xuICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbkFsbCgzMDBtcyk7XG4gICAgICBAaW5jbHVkZSBuYXZMb2dvKCRtb2JpbGVMb2dvKTtcbiAgICAgIG1pbi13aWR0aDogOTVweDtcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDA7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IDEwMCU7XG4gICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgLyogTk9URTogTG9nbyBjb2xvciBjYW4gdmFyeSBiYXNlZCBvbiB0aGUgdGhlbWUuIERlZmF1bHQgdHJlYXRtZW50IGlzIHNpbHZlci4gKi9cblxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWcvbG9nb19hdHQtd2hpdGUtdGV4dC5wbmcnKTtcblxuICAgICAgLy8gQGVhY2ggJHRoZW1lLCAkY29sb3IgaW4gJHRoZW1lQ29sb3JzIHtcbiAgICAgIC8vICAgJGNvbG9yTmFtZTogbnRoKCRjb2xvciwgMSk7XG4gICAgICAvL1xuICAgICAgLy8gICAudGhlbWUtLSN7JHRoZW1lfSAmIHtcbiAgICAgIC8vICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltZy9sb2dvX2F0dC0jeyRjb2xvck5hbWV9LnBuZycpO1xuICAgICAgLy8gICB9XG4gICAgICAvLyB9XG5cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tbGFyZ2UpIHtcbiAgICAgICAgQGluY2x1ZGUgbmF2TG9nbygkZGVza3RvcExvZ28pO1xuICAgICAgICBtaW4td2lkdGg6IDEyNXB4O1xuXG4gICAgICAgIC5oZWFkZXItLWZpeGVkICYge1xuICAgICAgICAgIEBpbmNsdWRlIG5hdkxvZ28oJG1vYmlsZUxvZ28pO1xuICAgICAgICAgIG1pbi13aWR0aDogOTVweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qIEhhbWJ1cmdlciBUb2dnbGUgKi9cblxuICAjYXR0LWFib3V0LWhlYWRlciAubmF2X190b2dnbGUsXG4gIC5taWNyb3NpdGUtbmF2LS1wbHVzR2xvYmFsIC5uYXZfX3RvZ2dsZSB7XG4gICAgaGVpZ2h0OiAkYnVyZ2VyO1xuICAgIHdpZHRoOiAkYnVyZ2VyO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAwO1xuXG4gICAgJjpmb2N1cyB7XG4gICAgICBvdXRsaW5lOiAwO1xuICAgIH1cblxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tZGVza3RvcE5hdikge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAjYXR0LWFib3V0LWhlYWRlciAubmF2X190b2dnbGUgLmJhcixcbiAgLm1pY3Jvc2l0ZS1uYXYtLXBsdXNHbG9iYWwgLm5hdl9fdG9nZ2xlIC5iYXIge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb25BbGwoMzAwbXMpO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6ICRidXJnZXJCYXI7XG4gICAgbWFyZ2luLWJvdHRvbTogJGJ1cmdlckJhciArIDE7XG4gIH1cblxuICAubmF2X190b2dnbGUtLW9wZW4ge1xuICAgIEBpbmNsdWRlIGNlbnRlclZlcnRpY2FsbHk7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuXG4gICAgLm5hdi0tb3BlbiAmIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLm5hdl9fdG9nZ2xlLS1jbG9zZSB7XG4gICAgZGlzcGxheTogbm9uZTtcblxuICAgIC5uYXYtLW9wZW4gJiB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMjJweDtcbiAgICAgIC8vIGxlZnQ6IC00MHB4O1xuICAgICAgcmlnaHQ6IDIwcHg7XG5cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tZGVza3RvcE5hdikge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgICAubmF2LS1vcGVuICYgLmJhciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgdG9wOiA4cHg7XG5cbiAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XG4gICAgICB9XG5cbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgfVxuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgI2F0dC1hYm91dC1oZWFkZXIgLm5hdl9fdXRpbHMsXG4gICNhdHQtYWJvdXQtaGVhZGVyIC5uYXZfX21lbnUtLXByaW1hcnkge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tZGVza3RvcE5hdikge1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cbiAgfVxuXG4gIC8qIE5hdiBNZW51cyAqL1xuXG4gIC5uYXZfX21lbnUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRibGFjaztcblxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tZGVza3RvcE5hdikge1xuICAgICAgcGFkZGluZy1yaWdodDogJGd1dHRlci0tc21hbGw7XG4gICAgfVxuXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1sYXJnZSkge1xuICAgICAgcGFkZGluZy1yaWdodDogJGd1dHRlci0tc21hbGw7XG4gICAgfVxuXG4gICAgbGkge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgei1pbmRleDogMTA7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICAgICAmLmV4cGFuZGVkID4gLm5hdl9fbWVudS1wYXJlbnQge1xuICAgICAgICBAaW5jbHVkZSBuYXZBbmNob3ItZXhwYW5kZWQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm5hdl9fbWVudS1pdGVtIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGZvbnQtZmFtaWx5OiAkYWxlY2s7XG4gICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgZm9udC1zaXplOiAxNnB4OyAvLyBkb24ndCB1c2UgcmVtcyBoZXJlXG4gICAgICBsaW5lLWhlaWdodDogMS4yNTtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGNvbG9yOiAkd2hpdGU7XG5cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tZGVza3RvcE5hdikge1xuICAgICAgICBmb250LXNpemU6IDE0cHg7IC8vIGRvbid0IHVzZSByZW1zIGhlcmVcbiAgICAgIH1cblxuICAgICAgc3BhbiB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAzNjBweCkge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsgLy8gZG9uJ3QgdXNlIHJlbXMgaGVyZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm5hdl9fbWVudS1wYXJlbnQge1xuICAgICAgQGluY2x1ZGUgbmF2QW5jaG9yO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICB3aWR0aDogNDBweDtcbiAgICAgIHBhZGRpbmc6IDEwcHggMDtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgdG9wOiAwO1xuICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tZGVza3RvcE5hdikge1xuICAgICAgICBoZWlnaHQ6IDM3cHg7XG4gICAgICB9XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyogUHJpbWFyeSBNZW51cyAqL1xuXG4gIC5uYXZfX21lbnUtLXByaW1hcnkge1xuICAgIHdpZHRoOiAkbmF2V2lkdGhNb2JpbGU7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIG1hcmdpbjogMDtcblxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tc21hbGwpIHtcbiAgICAgIHdpZHRoOiAkbmF2V2lkdGhUYWJsZXQ7XG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJyZWFrcG9pbnQtLWRlc2t0b3BOYXYgLSAxKSB7XG4gICAgICB0cmFuc2l0aW9uOiB3aWR0aCAzMDBtcyBlYXNlO1xuICAgICAgbWF4LXdpZHRoOiA4MCU7XG4gICAgICBsZWZ0OiAxMDAlO1xuICAgICAgdG9wOiAwO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgcGFkZGluZy10b3A6ICRtb2JpbGVOYXZIZ3Q7XG4gICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICRkcmtHcmF5O1xuXG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogMzYwcHgpIHtcbiAgICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tZGVza3RvcE5hdikge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgd2lkdGg6IDg1JTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxuXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS14TGFyZ2UpIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgfVxuXG4gICAgJiA+IGxpIHtcblxuICAgICAgLyogTk9URTogQXBwbHkgaGlnaGxpZ2h0aW5nIHRvIG5hdiBpdGVtcyBiYXNlZCBvbiB0aGUgYm9keSBjbGFzcyBuYW1lLiAqL1xuXG4gICAgICBAZWFjaCAkYm9keUNsYXNzLCAkbmF2SXRlbUNsYXNzIGluICRuYXZIaWdobGlnaHRzIHtcbiAgICAgICAgLiN7JGJvZHlDbGFzc306bm90KFtjbGFzcyo9XCJuYXYtXCJdKSAmLiN7JG5hdkl0ZW1DbGFzc30sXG4gICAgICAgIC4jeyRuYXZJdGVtQ2xhc3N9ICYuI3skbmF2SXRlbUNsYXNzfSB7XG4gICAgICAgICAgQGluY2x1ZGUgYWN0aXZlSXRlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC4jeyRib2R5Q2xhc3N9Om5vdChbY2xhc3MqPVwibmF2LVwiXSkgLmhlYWRlci0tdHJhbnNwYXJlbnQgJi4jeyRuYXZJdGVtQ2xhc3N9LFxuICAgICAgICAuI3skbmF2SXRlbUNsYXNzfSAuaGVhZGVyLS10cmFuc3BhcmVudCAmLiN7JG5hdkl0ZW1DbGFzc30ge1xuICAgICAgICAgIEBpbmNsdWRlIGFjdGl2ZUl0ZW0tZGFya2VuZWQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5hY3RpdmUge1xuICAgICAgICBAaW5jbHVkZSBhY3RpdmVJdGVtO1xuICAgICAgfVxuXG4gICAgICAuaGVhZGVyLS10cmFuc3BhcmVudCAmLmFjdGl2ZSB7XG4gICAgICAgIEBpbmNsdWRlIGFjdGl2ZUl0ZW0tZGFya2VuZWQ7XG4gICAgICB9XG5cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnJlYWtwb2ludC0tZGVza3RvcE5hdiAtIDEpIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRkcmtHcmF5O1xuXG4gICAgICAgICYuZXhwYW5kZWQgPiAubmF2X19tZW51LWl0ZW0ge1xuXG4gICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxcHgsIC0ycHgpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICRjb2xvci0tY3RhO1xuICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogOXB4O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLWRlc2t0b3BOYXYpIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIG1hcmdpbjogMCAwIDAgNDBweDtcblxuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bnRoLWxhc3QtY2hpbGQoLW4rMikgPiAubmF2X19tZW51LS1uZXN0ZWQge1xuICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciA+IC5uYXZfX21lbnUtaXRlbSxcbiAgICAgICAgJi5leHBhbmRlZCA+IC5uYXZfX21lbnUtaXRlbSB7XG4gICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDFweCwgLTJweCkgcm90YXRlKDQ1ZGVnKTtcblxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLW1lZGl1bSkge1xuICAgICAgICBtYXJnaW4tbGVmdDogNjVweDtcbiAgICAgIH1cblxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1sYXJnZSkge1xuICAgICAgICBtYXJnaW4tbGVmdDogODBweDtcbiAgICAgIH1cblxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS14TGFyZ2UpIHtcbiAgICAgICAgJi5sYXN0LWl0ZW0ge1xuICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0teHhMYXJnZSkge1xuICAgICAgICAmOm50aC1sYXN0LWNoaWxkKC1uKzIpID4gLm5hdl9fbWVudS0tbmVzdGVkIHtcbiAgICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICY6bGFzdC1jaGlsZCA+IC5uYXZfX21lbnUtLW5lc3RlZCB7XG4gICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJiA+IC5uYXZfX21lbnUtaXRlbSB7XG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnJlYWtwb2ludC0tZGVza3RvcE5hdiAtIDEpIHtcbiAgICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gMTAwcHgpO1xuICAgICAgICAgIHBhZGRpbmc6IDEwcHggMCAxMHB4IDIwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLWRlc2t0b3BOYXYpIHtcbiAgICAgICAgICBAaW5jbHVkZSBoaWdobGlnaHQtYmFyKCRoaWdobGlnaHRCYXIpO1xuICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgICAmOmZvY3VzOmJlZm9yZSB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tZGVza3RvcE5hdikge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC01MCUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmID4gLm5hdl9fbWVudS1wYXJlbnQge1xuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLWRlc2t0b3BOYXYpIHtcbiAgICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgICAgcGFkZGluZzogMDtcblxuICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogbm9uZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5leHBhbmRlZCA+IC5uYXZfX21lbnUtcGFyZW50OmFmdGVyIHtcbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1kZXNrdG9wTmF2KSB7XG4gICAgICAgICAgY29udGVudDogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qIFN1Ym5hdnMgKi9cblxuICAubmF2X19tZW51LS1zZWNvbmRhcnksXG4gIC5uYXZfX21lbnUtLXRlcnRpYXJ5IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tZGVza3RvcE5hdikge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgd2lkdGg6IDI2MHB4O1xuICAgICAgbWFyZ2luLXRvcDogMXB4O1xuICAgICAgcGFkZGluZzogMTBweCAwO1xuXG4gICAgICAubmF2X19tZW51LS1uZXN0ZWQge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRibGFjaztcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgcGFkZGluZzogNXB4IDEwcHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1sYXJnZSkge1xuICAgICAgd2lkdGg6IDMwMHB4O1xuICAgIH1cblxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0teExhcmdlKSB7XG4gICAgICB3aWR0aDogMzQwcHg7XG4gICAgfVxuXG4gICAgbGkge1xuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicmVha3BvaW50LS1kZXNrdG9wTmF2IC0gMSkge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGRya0dyYXk7XG4gICAgICB9XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLWRlc2t0b3BOYXYpIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZHJrR3JheTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmOmhvdmVyIC5uYXZfX21lbnUtcGFyZW50IHtcbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1kZXNrdG9wTmF2KSB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbigkZHJrR3JheSwgNSUpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm5hdl9fbWVudS1pdGVtIHtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxMDBweCk7XG4gICAgICBwYWRkaW5nOiAxMHB4IDAgMTBweCAwO1xuXG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLWRlc2t0b3BOYXYpIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gNDBweCk7XG4gICAgICB9XG5cbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLWRlc2t0b3BOYXYpIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZHJrR3JheTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMjBweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKiBTZWNvbmRhcnkgU3VibmF2cyAqL1xuXG4gIC5uYXZfX21lbnUtLXNlY29uZGFyeSB7XG5cbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJyZWFrcG9pbnQtLWRlc2t0b3BOYXYgLSAxKSB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDQwcHg7XG5cbiAgICAgIC8qIFdoZW4gaW4gbW9iaWxlLCByZWx5IG9uIHRoZSAuZXhwYW5kZWQgY2xhc3Mgb2YgdGhlIHBhcmVudCBlbGVtZW50IHRvIHNob3cgc2Vjb25kYXJ5IG5hdnMgKi9cbiAgICAgIC5leHBhbmRlZCA+IC5uYXZfX21lbnUtcGFyZW50ICsgJiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qIFdoZW4gaW4gZGVza3RvcCwgcmVseSBvbiB0aGUgaG92ZXIgb3IgZm9jdXNlZCBzdGF0ZSBvZiB0aGUgcGFyZW50IGVsZW1lbnQgdG8gc2hvdyBzZWNvbmRhcnkgbmF2cyAqL1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tZGVza3RvcE5hdikge1xuICAgICAgLm5hdl9fbWVudS0tcHJpbWFyeSA+IGxpOmhvdmVyID4gLm5hdl9fbWVudS1wYXJlbnQgKyAmLFxuICAgICAgLm5hdl9fbWVudS0tcHJpbWFyeSA+IGxpLmV4cGFuZGVkID4gLm5hdl9fbWVudS1wYXJlbnQgKyAmIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyogVGVydGlhcnkgU3VibmF2cyAqL1xuXG4gIC5uYXZfX21lbnUtLXRlcnRpYXJ5IHtcblxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnJlYWtwb2ludC0tZGVza3RvcE5hdiAtIDEpIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMjVweDtcbiAgICB9XG5cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLWRlc2t0b3BOYXYpIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRibGFjaztcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICBwYWRkaW5nOiA1cHggMTBweDtcbiAgICB9XG5cbiAgICBsaSAubmF2X19tZW51LWl0ZW0ge1xuICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1kZXNrdG9wTmF2KSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMzBweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBBbHdheXMgcmVseSBvbiB0aGUgLmV4cGFuZGVkIGNsYXNzIG9mIHRoZSBwYXJlbnQgZWxlbWVudCB0byBzaG93IHRlcnRpYXJ5IG5hdnMgKi9cbiAgICAuZXhwYW5kZWQgPiAubmF2X19tZW51LXBhcmVudCArICYge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG4iXX0= */
