/**
 * 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
  ============*/
/* Component Margin/Paddings */
/* Section Margin/Paddings */
/* Line Height */
/* 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 */
/* 2019 New Brand Secondary 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-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;
  width: 1px;
  position: absolute !important;
  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;
    outline: 0; }
  @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: 768px) {
  .header--secondary.active--wGlobal + * {
    margin-top: 122px; } }

@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; } }

@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: 1024px) {
      #att-microsite-header .microsite-nav {
        height: 105px; } }
  @media (min-width: 1024px) {
    #att-microsite-header.header--fixed .microsite-nav {
      height: 72px; } }
  @media (min-width: 1024px) {
    #att-microsite-header .microsite-nav.microsite-nav--plusGlobal {
      height: 122px; } }
  @media (min-width: 1440px) {
    #att-microsite-header .microsite-nav.microsite-nav--plusGlobal {
      height: 155px; } }
  @media (min-width: 1024px) {
    #att-microsite-header.header--fixed .microsite-nav.microsite-nav--plusGlobal {
      height: 122px; } }

/* 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: 51px;
        min-width: 127px; }
        .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 20px; }
        .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: 850px) {
      .nav__menu--primary > li {
        margin-left: 35px; } }
    @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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImdsb2JhbF9uYXYuc2NzcyIsIl9hYnN0cmFjdHMvX3ZhcmlhYmxlcy5zY3NzIiwiX2Fic3RyYWN0cy9fbWl4aW5zLnNjc3MiLCJfbGF5b3V0L19oZWFkZXIuc2NzcyIsIl9sYXlvdXQvX2Zvb3Rlci5zY3NzIiwiX2NvbXBvbmVudHMvX25hdi5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7O0dBVUc7QUFFSDs7Y0FFYztBQUlkOzthQUVhO0FDcEJiOzthQUVhO0FBRWI7O2VBRWU7QUFHZSwwQ0FBMEM7QUFDM0MsMkNBQTJDO0FBR3pDLCtDQUErQztBQUc5RTs7Z0JBRWdCO0FBY2QsK0JBQStCO0FBUS9CLDZCQUE2QjtBQVU3QixpQkFBaUI7QUFTakIsVUFBVTtBQUtaOztzQkFFc0I7QUFFcEI7Ozs7Ozs7S0FPRztBQVlMOztpQkFFaUI7QUFFZixtQkFBbUI7QUFnQm5CLHFDQUFxQztBQVNyQyx5QkFBeUI7QUFFRiw4Q0FBOEM7QUFDNUIsZ0NBQWdDO0FBQzVCLHVDQUF1QztBQUN6RCwwQ0FBMEM7QUFDckMsNEJBQTRCO0FBSTVELGdCQUFnQjtBQStCaEIsMkhBQTJIO0FBTzNIOzs7OztJQUtFO0FBRUo7O2lCQUVpQjtBQUVmLHFDQUFxQztBQUVyQztFQUNDLDBCQUF5QjtFQUFFLGdCQUFnQjtFQUMzQywrQ0FBOEM7RUFDOUMsNFFBR29FO0VBQ25FLGlCQUFnQjtFQUNoQixtQkFBa0IsRUFBQTs7QUFFcEI7RUFDQywwQkFBeUI7RUFBRSx1QkFBdUI7RUFDbEQsK0NBQThDO0VBQzlDLDRRQUdvRTtFQUNuRSxpQkFBZ0I7RUFDaEIsbUJBQWtCLEVBQUE7O0FBRXBCO0VBQ0MsMEJBQXlCO0VBQUUsc0JBQXNCO0VBQ2pELCtDQUE4QztFQUM5Qyw0UUFHb0U7RUFDbkUsaUJBQWdCO0VBQ2hCLG1CQUFrQixFQUFBOztBQUVwQjtFQUNDLDBCQUF5QjtFQUFFLDZCQUE2QjtFQUN4RCxpREFBZ0Q7RUFDaEQsb1JBR3NFO0VBQ3JFLGlCQUFnQjtFQUNoQixtQkFBa0IsRUFBQTs7QUFFcEI7RUFDQywwQkFBeUI7RUFBRSxxQkFBcUI7RUFDaEQsK0NBQThDO0VBQzlDLDRRQUdvRTtFQUNuRSxpQkFBZ0I7RUFDaEIsbUJBQWtCLEVBQUE7O0FBRXBCO0VBQ0MsMEJBQXlCO0VBQUUsNEJBQTRCO0VBQ3ZELGlEQUFnRDtFQUNoRCxvUkFHc0U7RUFDckUsaUJBQWdCO0VBQ2hCLG1CQUFrQixFQUFBOztBQUdwQiwyQ0FBMkM7QUFFM0M7RUFDQyxpQ0FBZ0M7RUFBRSx1QkFBdUI7RUFDekQsK0NBQThDO0VBQzlDLDRRQUdvRTtFQUNuRSxpQkFBZ0I7RUFDaEIsbUJBQWtCLEVBQUE7O0FBRXBCO0VBQ0MsaUNBQWdDO0VBQUUsOEJBQThCO0VBQ2hFLGlEQUFnRDtFQUNoRCxvUkFHc0U7RUFDckUsaUJBQWdCO0VBQ2hCLG1CQUFrQixFQUFBOztBQUVwQjtFQUNDLGdDQUErQjtFQUFFLHNCQUFzQjtFQUN2RCxnREFBK0M7RUFDL0MsZ1JBR3FFO0VBQ3BFLGlCQUFnQjtFQUNoQixtQkFBa0IsRUFBQTs7QUFFcEI7RUFDQyxnQ0FBK0I7RUFBRSw2QkFBNkI7RUFDOUQsa0RBQWlEO0VBQ2pELHdSQUd1RTtFQUN0RSxpQkFBZ0I7RUFDaEIsbUJBQWtCLEVBQUE7O0FBR3BCLGdCQUFnQjtBQUVoQjtFQUNDLDBCQUF5QjtFQUFFLGdCQUFnQjtFQUMzQywrQ0FBOEM7RUFDOUMsNFFBR29FO0VBQ25FLGlCQUFnQjtFQUNoQixtQkFBa0IsRUFBQTs7QUFFcEI7RUFDQywwQkFBeUI7RUFBRSx1QkFBdUI7RUFDbEQsK0NBQThDO0VBQzlDLDRRQUdvRTtFQUNuRSxpQkFBZ0I7RUFDaEIsbUJBQWtCLEVBQUE7O0FBSXBCLG9CQUFvQjtBQUVwQjtFQUNDLHlCQUF3QjtFQUFFLG9CQUFvQjtFQUM5QywyQ0FBMEM7RUFDMUMsNFBBR2dFO0VBQy9ELGlCQUFnQjtFQUNoQixtQkFBa0IsRUFBQTs7QUFHdEI7O2tCQUVrQjtBQVNoQix5QkFBeUI7QUEyQjNCOztvQkFFb0I7QUFFbEI7Ozs7S0FJRztBQzVXTDs7VUFFVTtBQUVWOztXQUVXO0FBMklYOztjQUVjO0FBTWQ7O3FCQUVxQjtBQXlIckI7O2VBRWU7QUFpRWY7O1FBRVE7QUFFUixrQkFBa0I7QUFxRGxCLCtEQUErRDtBQXFEL0QsK0JBQStCO0FBdUMvQjs7Y0FFYztBRnJkZDs7VUFFVTtBRzNCVjs7VUFFVTtBQUVSO0VBQ0UsWUFBVztFQUNYLGlCQUFnQjtFQUNoQixtQkFBa0IsRUFDbkI7O0FBRUQ7RUQ0SUEsbUNBQTJCO0VBQTNCLDhCQUEyQjtFQUEzQiwyQkFBMkI7RUMxSXpCLG1CQUFrQjtFQUNsQixZQUFXO0VBQ1gsa0JBQWlCLEVBb0JsQjtFQWxCQztJQU5GO01BUUksb0NBQTJCO2NBQTNCLDRCQUEyQixFQWdCOUI7TUF4QkQ7UUFXTSxvQ0FBMkI7WUFBM0IsZ0NBQTJCO2dCQUEzQiw0QkFBMkIsRUFPNUIsRUFBQTtJQU5DO01BWk47UUFhUSxzQ0FBMkM7WUFBM0Msa0NBQTJDO2dCQUEzQyw4QkFBMkMsRUFLOUMsRUFBQTtJQUhDO01BZk47UUFnQlEsc0NBQTJDO1lBQTNDLGtDQUEyQztnQkFBM0MsOEJBQTJDLEVBRTlDLEVBQUE7RUFHSDtJQXJCRjtNQXNCSSxlQUFjLEVBRWpCLEVBQUE7O0FBRUQscUJBQXFCO0FBRXJCO0VBQ0UsMEJBQXVDLEVBS3hDO0VBSEM7SUFIRjtNQUlJLHVCRitEUSxFRTdEWCxFQUFBOztBQUNEO0VEdVJBLFVBQVM7RUFDVCwrQkFBOEI7RUFDOUIsOEJBQXFCO1VBQXJCLHNCQUFxQjtFQUNyQixZQUFXO0VBQ1gsYUFBWTtFQUNaLGlCQUFnQjtFQUNoQixXQUFVO0VBQ1YsV0FBVTtFQUNWLDhCQUE2QjtFQUM3Qiw2QkFBNEI7RUM5UjFCLG1CQUFrQjtFQUNsQiwwQkFBeUI7RUFDekIsYUFBWTtFQUNaLFNBQVEsRUE4QlQ7RUQrUEQ7SUFDRSxzQkFBcUI7SUFDckIsd0JBQWU7WUFBZixnQkFBZTtJQUNmLGdCQUFlO0lBQ2YsV0FBVSxFQUNYO0VDaFNDO0lBUEY7TUFRSSxXQUFVLEVBMkJiLEVBQUE7RUFuQ0Q7SUR5R0EsbUNBQTJCO0lBQTNCLDhCQUEyQjtJQUEzQiwyQkFBMkI7SUM1RnZCLGdCQUFlO0lBQ2YsZUFBYztJQUNkLDhCQUE2QjtJQUM3QiwyQkFBMEI7SUFDMUIsbUJBQWtCO0lBQ2xCLHNCQUFxQjtJQUNyQixhQUFZO0lBQ1osZUFBYztJQUNkLFNBQVE7SUFDUix3QkFBZTtZQUFmLGdCQUFlO0lBQ2YsY0FBYTtJQUNiLGVGZ0NhO0lFL0JiLG9CQUFtQixFQVNwQjtJQVBDO01BM0JKO1FBNEJNLDhCQUE2QjtRQUM3QixvQkFBbUI7UUFDbkIsWUFBVztRQUNYLGlCQUFnQjtRQUNoQixVQUFTLEVBRVosRUFBQTs7QUFHSCxvQ0FBb0M7QUFFcEM7O0VBRUUsdUJGbUJVO0VFbEJWLGlDRmdCZSxFRWZoQjs7QUFJQztFQUZGOztJQUdJLHNDRllRLEVFVlgsRUFBQTs7QUFJQztFQUZGOztJQUdJLHVCRktRLEVFSFgsRUFBQTs7QUFFRDtFQUNFLCtCQUFzQjtVQUF0Qix1QkFBc0IsRUFZdkI7RUFiRDs7O0lBTUksNEJBQW1CO1lBQW5CLG9CQUFtQixFQUNwQjtFQUVEOztJQUVFLGdCQUFlLEVBQ2hCOztBQU1EO0VBREY7SUFFSSxrQkZsR2lCLEVFb0dwQixFQUFBOztBQUtDO0VBREY7SUFFSSxpQkYzR2UsRUVnSGxCLEVBQUE7O0FBSEM7RUFKRjtJQUtJLGtCRjdHaUIsRUUrR3BCLEVBQUE7O0FBS0M7RUFERjtJQUVJLGtCQUF3RCxFQUszRCxFQUFBOztBQUhDO0VBSkY7SUFLSSxrQkFBeUQsRUFFNUQsRUFBQTs7QUFJQztFQUZGOztJQUdJLGtCRi9IaUI7SUVnSWpCLE9BQU0sRUFFVCxFQUFBOztBQUdDO0VBREY7SUFFSSxrQkZ0SWlCLEVFNklwQixFQUFBOztBQUpDO0VBTEY7SUFNSSxjQUFhO0lBQ2IsaUJBQWdCLEVBRW5CLEVBQUE7O0FBSUM7RUFERjtJQUVJLGNBQWEsRUFHaEIsRUFBQTs7QUFHQztFQURGO0lBRUksZ0JBQWU7SUFDZixZQUFXO0lBQ1gsT0FBTSxFQUVULEVBQUE7O0FBR0M7RUFERjtJQUVJLGNBQWEsRUFFaEIsRUFBQTs7QUFHQztFQURGO0lBRUksaUJGdEs4QixFRXdLakMsRUFBQTs7QUFFRDtFQUNFLFlBQVcsRUFhWjtFQVhDO0lBSEY7TUQ5Q0EsbUNBQTJCO01BQTNCLDhCQUEyQjtNQUEzQiwyQkFBMkI7TUNtRHZCLGdCQUFlO01BQ2YsY0ZqTGlCO01Fa0xqQixZQUFXO01BQ1gsY0FBYSxFQU1oQjtNQUpHO1FBQ0UsYUZ2TGEsRUV3TGQsRUFBQTs7QUFJTDtFQUNFLFlBQVcsRUFjWjtFQVpDO0lBSEY7TUQ5REEsbUNBQTJCO01BQTNCLDhCQUEyQjtNQUEzQiwyQkFBMkI7TUNtRXZCLGdCQUFlO01BRWYsWUFBVztNQUNYLGNBQWE7TUFDYixPQUFNLEVBTVQsRUFBQTs7QUFHQztFQURGO0lBRUksbUJBQWtCO0lBQ2xCLG1CQUFrQixFQUVyQixFQUFBOztBQUVEO0VBQ0UsV0FBVSxFQXFDWDtFQXRDRDtJQUlJLGlCQUFnQixFQUNqQjtFQUxIO0lEdEZBLG1DQUEyQjtJQUEzQiw4QkFBMkI7SUFBM0IsMkJBQTJCO0lDK0Z2QixVQUFTO0lBQ1QsV0FBVSxFQUtYO0lBSEM7TUFaSjtRQWFNLGNGaE9lLEVFa09sQixFQUFBO0VBR0M7SUFsQko7TUFtQk0sYUZ2T2EsRUV5T2hCLEVBQUE7RUFHQztJQXhCSjtNQXlCTSxjQUFvRCxFQUt2RCxFQUFBO0VBSEM7SUEzQko7TUE0Qk0sY0FBcUQsRUFFeEQsRUFBQTtFQUdDO0lBakNKO01Ba0NNLGNBQW9ELEVBR3ZELEVBQUE7O0FBR0gsbUNBQW1DO0FBRW5DO0VBQ0UsaUJGL1BpQixFRW1RbEI7RUFIQztJQUZGO01BR0ksa0JGaFFpQixFRWtRcEIsRUFBQTs7QUFFRDs7O0VBR0UsY0FBYSxFQUNkOztBQVFEOztFQUVFLGtCQUFpQixFQUNsQjs7QUFFRDtFQUNFLGtCQUFpQixFQUNsQjs7QUFDRDtFQUNFLGtCQUFpQixFQUNsQjs7QUNuVEg7O1VBRVU7QUFFUjtFQUNFLDBCSG1HdUIsRUdsR3hCOztBQUVEO0VBQ0UsOENBQTZDO0VBQzdDLGdCQUFlO0VBQ2YsZUFBYztFQUNkLGtCSFNzQjtFR1J0QixlQUFjO0VBQ2QsY0hvQmdCO0VHbkJoQixlSHVGZSxFR3BFaEI7RUFqQkM7SUFURjtNQVVJLG1CSDZCZ0I7TUc1QmhCLG9CSDRCZ0IsRUdibkIsRUFBQTtFQVpDO0lBZEY7TUFlSSxxQkFBb0IsRUFXdkIsRUFBQTtFQVJDO0lBbEJGO01BbUJJLGlCQUFnQjtNQUNoQixnQkFBZSxFQU1sQixFQUFBO0VBMUJEO0lBd0JJLGVBQWMsRUFDZjs7QUFHSDtFQUNFLG9CQUFtQjtFQUNuQixXQUFVLEVBZ0JYO0VBbEJEO0lBS0ksc0JBQXFCO0lBQ3JCLG1CQUFrQjtJQUNsQixxQkFBb0IsRUFDckI7RUFSSDtJQVdJLGlCQUFnQjtJQUNoQixzQkFBcUIsRUFLdEI7SUFqQkg7TUFlTSwyQkFBMEIsRUFDM0I7O0FBSUw7RUFDRSxlQUFjLEVBU2Y7RUFWRDtJQUlJLFVBQVMsRUFDVjtFQUxIO0lBUUksMkJBQTBCLEVBQzNCOztBSmpDTDs7Y0FFYztBS2xDZDs7T0FFTztBQUVMLDJCQUEyQjtBQVEzQixtQkFBbUI7QUFxRHJCLHlCQUF5QjtBQUV2QjtFQUVFLGtCSmhEc0I7RUlpRHRCLGVBQWM7RUFDZCxhQUFZO0VBQ1osNkNBQTRDLEVBQzdDO0VIZ05EO0lBQ0UsWUFBVztJQUNYLGVBQWM7SUFDZCxZQUFXLEVBQ1o7O0FHbE5EO0VBRUUsbUJBQWtCO0VBQ2xCLCtCQUFzQjtVQUF0Qix1QkFBc0I7RUFDdEIsZ0JKN0NnQjtFSThDaEIsYUp4RGlCLEVJbUVsQjtFSDhMRDtJQUNFLFlBQVc7SUFDWCxlQUFjO0lBQ2QsWUFBVyxFQUNaO0VHM01DO0lBUEY7TUFRSSxnQkpwQ2dCO01JcUNoQixZQUFXO01BQ1gsV0FBVSxFQU1iLEVBQUE7RUFIQztJQWJGO01BY0ksV0FBVSxFQUViLEVBQUE7O0FBRUQsY0FBYztBQUVkO0VId01BLG1CQUFrQjtFQUNsQixvQ0FBMkI7TUFBM0IsZ0NBQTJCO1VBQTNCLDRCQUEyQjtFQUMzQixTQUFRO0VHeE1OLGVBQWM7RUFDZCxZQUFXLEVBaUNaO0VBcENEO0lIdURBLG1DQUEyQjtJQUEzQiw4QkFBMkI7SUFBM0IsMkJBQTJCO0lHdkl6QixhQU5lO0lBOEZiLGdCQUFlO0lBQ2YsNkJBQTRCO0lBQzVCLHlCQUF3QjtJQUN4QixzQkFBcUI7SUFDckIsZUFBYztJQUVkLGdGQUFnRjtJQUVoRix3REFBdUQsRUFtQnhEO0lBVEM7TUExQko7UUFoRkUsYUFMZ0I7UUFpSFosaUJBQWdCLEVBT25CO1FBTEc7VUE5R0osYUFOZTtVQXNIVCxnQkFBZSxFQUNoQixFQUFBOztBQUtQLHNCQUFzQjtBQUV0Qjs7RUFFRSxhQW5JVztFQW9JWCxZQXBJVztFQXFJWCw4QkFBNkI7RUFDN0IsV0FBVTtFQUNWLFVBQVMsRUFTVjtFQWZEOztJQVNJLFdBQVUsRUFDWDtFQUVEO0lBWkY7O01BYUksY0FBYSxFQUVoQixFQUFBOztBQUVEOztFSEZBLG1DQUEyQjtFQUEzQiw4QkFBMkI7RUFBM0IsMkJBQTJCO0VHS3pCLGVBQWM7RUFDZCxpQkp6RFU7RUkwRFYsWUFBVztFQUNYLFlBdkpxQjtFQXdKckIsbUJBQTZCLEVBQzlCOztBQUVEO0VIcUlBLG1CQUFrQjtFQUNsQixvQ0FBMkI7TUFBM0IsZ0NBQTJCO1VBQTNCLDRCQUEyQjtFQUMzQixTQUFRO0VHcklOLGFBQVksRUFLYjtFQUhDO0lBQ0UsY0FBYSxFQUNkOztBQUdIO0VBQ0UsY0FBYSxFQStCZDtFQTdCQztJQUNFLGVBQWM7SUFDZCxtQkFBa0I7SUFDbEIsVUFBUztJQUVULFlBQVcsRUFLWjtJQUhDO01BUEY7UUFRSSxjQUFhLEVBRWhCLEVBQUE7RUFDRDtJQUNFLG1CQUFrQjtJQUNsQixpQkFBZ0I7SUFDaEIsU0FBUSxFQWNUO0lBakJEO01BT0ksaUJKN0ZNLEVJOEZQO0lBUkg7TUFXSSxrQ0FBeUI7VUFBekIsOEJBQXlCO2NBQXpCLDBCQUF5QixFQUMxQjtJQVpIO01BZUksaUNBQXdCO1VBQXhCLDZCQUF3QjtjQUF4Qix5QkFBd0IsRUFDekI7O0FBTUg7RUFGRjs7SUFHSSxhQUFZLEVBRWYsRUFBQTs7QUFFRCxlQUFlO0FBRWY7RUFDRSxtQkFBa0I7RUFDbEIsK0JBQXNCO1VBQXRCLHVCQUFzQjtFQUN0Qix1QkpoSFUsRUlxTFg7RUFuRUM7SUFMRjtNQU1JLG9CSjdLZ0IsRUkrT25CLEVBQUE7RUEvREM7SUFURjtNQVVJLG9CSmpMZ0IsRUkrT25CLEVBQUE7RUF4RUQ7SUFjSSxtQkFBa0I7SUFDbEIsc0JBQXFCO0lBQ3JCLFVBQVM7SUFDVCxZQUFXO0lBQ1gsaUJBQWdCLEVBS2pCO0lBek1EO01BQ0UsWUFBVztNQUNYLHVCSjZEUTtNSTVEUixXQUFVO01BQ1YsWUFBVztNQUNYLFlBQVc7TUFDWCxVQUFTO01BQ1QsV0FBVSxFQUNYO0VBMEtIO0lBMEJJLHNCQUFxQjtJQUNyQiwrQkFBc0I7WUFBdEIsdUJBQXNCO0lBQ3RCLG1CQUFrQjtJQUNsQixhQUFZO0lBQ1osWUFBVztJQUNYLDRESjZFa0Q7SUk1RWxELGlCQUFnQjtJQUNoQixnQkFBZTtJQUNmLGtCQUFpQjtJQUNqQixzQkFBcUI7SUFDckIsWUp2SlEsRUlxS1Q7SUFaQztNQXRDSjtRQXVDTSxnQkFBZSxFQVdsQixFQUFBO0lBbERIO01BMkNNLHNCQUFxQjtNQUNyQixtQkFBa0IsRUFLbkI7TUFIQztRQTlDTjtVQStDUSxnQkFBZSxFQUVsQixFQUFBO0VBakRMO0lBc0RJLG1CQUFrQjtJQUNsQixlQUFjO0lBQ2QsYUFBWTtJQUNaLFlBQVc7SUFDWCxnQkFBZTtJQUNmLFNBQVE7SUFDUixPQUFNO0lBQ04sZUFBYztJQUNkLHNCQUFxQixFQVN0QjtJQTFRRDtNQUNFLGFBQVk7TUFDWixzQkFBcUI7TUFDckIsbUJBQWtCO01BQ2xCLFlBQVc7TUFDWCxTQUFRO01BQ1IsYUFBWTtNQUNaLGFBQVk7TUFDWixZSndFUTtNSXZFUiw0REpzU2tEO01JclNsRCxnQkFBZTtNQUNmLGlCQUFnQjtNQUNoQixnQkFBZSxFQUNoQjtJQXNQQztNQWhFSjtRQWlFTSxhQUFZLEVBTWYsRUFBQTtJQXZFSDtNQXFFTSxzQkFBcUIsRUFDdEI7O0FBSUwsbUJBQW1CO0FBRW5CO0VBQ0UsYUp2UW9CO0VJd1FwQixnQkFBZTtFQUNmLFVBQVMsRUE0S1Y7RUExS0M7SUFMRjtNQU1JLGFKM1FrQixFSW9ickI7TUEvS0Q7UUFRTSxjQUFhLEVBQ2QsRUFBQTtFQUdIO0lBWkY7TUFhSSxxQ0FBNEI7TUFBNUIsZ0NBQTRCO01BQTVCLDZCQUE0QjtNQUM1QixlQUFjO01BQ2QsV0FBVTtNQUNWLE9BQU07TUFDTixhQUFZO01BQ1osa0JKNVJlO01JNlJmLCtCSjlNYSxFSTBXaEIsRUFBQTtFQTFKRztJQXJCSjtNQXNCTSxnQkFBZSxFQXlKcEIsRUFBQTtFQXJKQztJQTFCRjtNQTJCSSxtQkFBa0I7TUFDbEIsYUFBWTtNQUNaLFdBQVU7TUFDViw4QkFBNkI7TUFDN0Isa0JBQWlCLEVBZ0pwQixFQUFBO0VBN0lDO0lBbENGO01BbUNJLGlCQUFnQixFQTRJbkIsRUFBQTtFQS9LRDtJQXdDSSx5RUFBeUUsRUFzSTFFO0lBaGFEOztNQUNFLGVKK0NhLEVJeENkO01BTEM7UUFDRTs7VUFDRSxXQUFVLEVBQ1gsRUFBQTtJQU1MOztNQUNFLDZDQUEyQyxFQUM1QztJQWREOztNQUNFLGVKK0NhLEVJeENkO01BTEM7UUFDRTs7VUFDRSxXQUFVLEVBQ1gsRUFBQTtJQU1MOztNQUNFLDZDQUEyQyxFQUM1QztJQWREOztNQUNFLGVKK0NhLEVJeENkO01BTEM7UUFDRTs7VUFDRSxXQUFVLEVBQ1gsRUFBQTtJQU1MOztNQUNFLDZDQUEyQyxFQUM1QztJQWREOztNQUNFLGVKK0NhLEVJeENkO01BTEM7UUFDRTs7VUFDRSxXQUFVLEVBQ1gsRUFBQTtJQU1MOztNQUNFLDZDQUEyQyxFQUM1QztJQWREOztNQUNFLGVKK0NhLEVJeENkO01BTEM7UUFDRTs7VUFDRSxXQUFVLEVBQ1gsRUFBQTtJQU1MOztNQUNFLDZDQUEyQyxFQUM1QztJQWREOztNQUNFLGVKK0NhLEVJeENkO01BTEM7UUFDRTs7VUFDRSxXQUFVLEVBQ1gsRUFBQTtJQU1MOztNQUNFLDZDQUEyQyxFQUM1QztJQWREO01BQ0UsZUorQ2EsRUl4Q2Q7TUFMQztRQUNFO1VBQ0UsV0FBVSxFQUNYLEVBQUE7SUFNTDtNQUNFLDZDQUEyQyxFQUM1QztJQWtTQztNQTlESjtRQStETSxpQ0oxUFcsRUl5V2Q7UUE5S0g7VUFvRVUsc0RBQTZDO2NBQTdDLGtEQUE2QztrQkFBN0MsOENBQTZDLEVBQzlDO1FBckVUO1VBd0VZLGlDSjFRSztVSTJRTCxvQkFBbUIsRUFDdEIsRUFBQTtJQUlMO01BOUVKO1FBK0VNLHNCQUFxQjtRQUNyQixhQUFZO1FBQ1osbUJBQWtCLEVBNkZyQjtRQTlLSDtVQW9GUSxlQUFjLEVBQ2Y7UUFyRlA7VUF3RlEsU0FBUSxFQUNUO1FBekZQOztVQThGVSxXQUFVLEVBQ1g7UUEvRlQ7O1VBa0dVLHNEQUE2QztjQUE3QyxrREFBNkM7a0JBQTdDLDhDQUE2QyxFQUU5QyxFQUFBO0lBSUw7TUF4R0o7UUF5R00sa0JBQWlCLEVBcUVwQixFQUFBO0lBbEVDO01BNUdKO1FBNkdNLGtCQUFpQixFQWlFcEIsRUFBQTtJQTlEQztNQWhISjtRQWlITSxrQkFBaUIsRUE2RHBCLEVBQUE7SUExREM7TUFwSEo7UUFzSFEsaUJBQWdCO1FBQ2hCLGdCQUFlLEVBQ2hCLEVBQUE7SUFHSDtNQTNISjtRQTZIUSxZQUFXLEVBQ1o7TUE5SFA7UUFpSVEsU0FBUSxFQUNULEVBQUE7SUFJRDtNQXRJTjtRQXVJUSwwQkFBeUI7UUFDekIsMEJBQXlCLEVBbUI1QixFQUFBO0lBaEJDO01BM0lOO1FBNklRLDBCQUF5QjtRQUN6QixpQkFBZ0IsRUFhbkI7UUhqV0w7VUEwREEsbUNBQTJCO1VBQTNCLDhCQUEyQjtVQUEzQiwyQkFBMkI7VUF4RHpCLFlBQVc7VUFDWCxlQUFjO1VBQ2QsbUJBQWtCO1VBQ2xCLGFBQVk7VUFDWixZRHBDZ0I7VUNxQ2hCLFlBQVc7VUFDWCwwQkRKZTtVQ0tmLFdBQVUsRUFDWDtRRzRMRDtVQWdKVSxXQUFVLEVBQ1gsRUFBQTtJQUlEO01BckpSO1FBc0pVLGVBQWM7UUFDZCxTQUFRO1FBQ1Isc0NBQTZCO1lBQTdCLGtDQUE2QjtnQkFBN0IsOEJBQTZCLEVBRWhDLEVBQUE7SUFJRDtNQTlKTjtRQStKUSxVQUFTO1FBQ1QsU0FBUTtRQUNSLFdBQVUsRUFNYjtRQXZLTDtVQW9LVSxjQUFhLEVBQ2QsRUFBQTtJQUtIO01BMUtOO1FBMktRLGNBQWEsRUFFaEIsRUFBQTs7QUFJTCxhQUFhO0FBRWI7O0VBRUUsY0FBYTtFQUNiLG1CQUFrQixFQWtFbkI7RUFoRUM7SUFMRjs7TUFNSSxtQkFBa0I7TUFDbEIsYUFBWTtNQUNaLGdCQUFlO01BQ2YsZ0JBQWUsRUE0RGxCO01BckVEOztRQVlNLG1CQUFrQjtRQUNsQix1Qkp6WE07UUkwWE4sY0FBYTtRQUNiLGtCQUFpQixFQUNsQixFQUFBO0VBR0g7SUFuQkY7O01Bb0JJLGFBQVksRUFpRGYsRUFBQTtFQTlDQztJQXZCRjs7TUF3QkksYUFBWSxFQTZDZixFQUFBO0VBekNHO0lBNUJKOztNQTZCTSxpQ0ozWVcsRUk2WmQsRUFBQTtFQWRHO0lBakNOOztNQWtDUSwwQkpoWlMsRUlrWlosRUFBQTtFQUdDO0lBdkNOOztNQXdDUSwwQkFBdUMsRUFFMUMsRUFBQTtFQTFDTDs7SUE2Q00saUJBQWdCLEVBQ2pCO0VBOUNMOztJQWtESSwwQkFBeUI7SUFDekIsdUJBQXNCLEVBaUJ2QjtJQWZDO01BckRKOztRQXNETSxtQkFBa0I7UUFDbEIseUJBQXdCLEVBYTNCLEVBQUE7SUFURztNQTNETjs7UUE0RFEsMEJKMWFTLEVJNGFaLEVBQUE7SUE5REw7O01BaUVNLFlBQVc7TUFDWCxvQkFBbUIsRUFDcEI7O0FBSUwsdUJBQXVCO0FBRXZCO0VBV0Usc0dBQXNHLEVBT3ZHO0VBaEJDO0lBRkY7TUFHSSxtQkFBa0I7TUFFbEIsOEZBQThGLEVBYWpHO01BWkc7UUFDRSxlQUFjLEVBQ2YsRUFBQTtFQUlIO0lBQ0U7O01BRUUsZUFBYyxFQUNmLEVBQUE7O0FBSUwsc0JBQXNCO0FBRXRCO0VBbUJFLG9GQUFvRixFQUlyRjtFQXJCQztJQUZGO01BR0ksbUJBQWtCLEVBb0JyQixFQUFBO0VBakJDO0lBTkY7TUFPSSxtQkFBa0I7TUFDbEIsdUJKbmRRO01Jb2RSLGNBQWE7TUFDYixrQkFBaUIsRUFhcEIsRUFBQTtFQVRHO0lBZEo7TUFlTSxtQkFBa0IsRUFFckIsRUFBQTtFQUdEO0lBQ0UsZUFBYyxFQUNmIiwiZmlsZSI6Imdsb2JhbF9uYXYuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBBVCZUIEFib3V0IFVzIEdsb2JhbCBOYXZpZ2F0aW9uICYgRm9vdGVyIGZvciBBRU1cbiAqIGJ5IEZsZWlzaG1hbkhpbGxhcmQsIGMuIDIwMThcbiAqXG4gKiBOT1RFOiBBVFROIERFVlMhXG4gKiBQbGVhc2UgdXNlIHRoaXMgc3R5bGVzaGVldCBmb3IgaW1wb3J0aW5nIFNBU1MgcGFydGlhbHMgb25seS4gRG8gbm90IGF1dGhvciBhbnkgU0FTUyBvciBDU1MgZGlyZWN0bHkgaW4gdGhpcyBmaWxlLlxuICogQWxzbywgcGxlYXNlIGZpcnN0IHJlZmVyIHRvIHRoZSBfYWJzdHJhY3RzIHBhcnRpYWxzIHRvIHJldmlldyB0aGUgZXhpc3RpbmcgZ2xvYmFsIHN0eWxlIHNldHRpbmdzIGFuZCB1dGlsaXRpZXMgYmVmb3JlIGNyZWF0aW5nIG5ldyBvbmVzLlxuICpcbiAqIEZvciBzdHlsZSBndWlkZWxpbmVzIGFuZCBjb2RpbmcgY29udmVudGlvbnMgZm9yIHRoaXMgcHJvamVjdCxcbiAqIHBsZWFzZSBjb25zdWx0IHRoZSBSRUFETUUubWQgaW4gdGhlIHJvb3Qgb2YgdGhlIHByb2plY3QuXG4gKi9cblxuLyo9PT09PT09PT09XG4gIE5BVklHQVRJT05cbiAgPT09PT09PT09PSovXG5cbiAgQGNoYXJzZXQgJ3V0Zi04JztcblxuLyo9PT09PT09PT1cbiAgQWJzdHJhY3RzXG4gID09PT09PT09PSovXG5cbiAgQGltcG9ydCAnX2Fic3RyYWN0cy92YXJpYWJsZXMnO1xuICBAaW1wb3J0ICdfYWJzdHJhY3RzL21peGlucyc7XG5cbi8qPT09PT09XG4gIExheW91dFxuICA9PT09PT0qL1xuXG4gIEBpbXBvcnQgJ19sYXlvdXQvaGVhZGVyJztcbiAgQGltcG9ydCAnX2xheW91dC9mb290ZXInO1xuXG4vKj09PT09PT09PT1cbiAgQ29tcG9uZW50c1xuICA9PT09PT09PT09Ki9cblxuICBAaW1wb3J0ICdfY29tcG9uZW50cy9uYXYnO1xuIiwiLyo9PT09PT09PT1cbiAgVkFSSUFCTEVTXG4gID09PT09PT09PSovXG5cbi8qPT09PT09PT09PT1cbiAgQnJlYWtwb2ludHNcbiAgPT09PT09PT09PT0qL1xuXG4gICRicmVha3BvaW50LS14eFNtYWxsOiA0ODBweDtcbiAgJGJyZWFrcG9pbnQtLXhTbWFsbDogNjQwcHg7IC8qIHdlIHN3aXRjaCBmcm9tIG1vYmlsZSB0byB0YWJsZXQgaGVyZSAqL1xuICAkYnJlYWtwb2ludC0tc21hbGw6IDc2OHB4OyAvKiB3ZSBzd2l0Y2ggZnJvbSB0YWJsZXQgdG8gZGVza3RvcCBoZXJlICovXG4gICRicmVha3BvaW50LS1tZWRpdW06IDEwMjRweDtcbiAgJGJyZWFrcG9pbnQtLWxhcmdlOiAxMjIwcHg7XG4gICRicmVha3BvaW50LS14TGFyZ2U6IDE0NDBweDsgLyogbWF4IHdpZHRoIG9mIHN0YW5kYXJkIDE1XCIgbGFwdG9wIHZpZXdwb3J0ICovXG4gICRicmVha3BvaW50LS14eExhcmdlOiAxNjAwcHg7XG5cbi8qPT09PT09PT09PT09XG4gIEdsb2JhbCBTaXplc1xuICA9PT09PT09PT09PT0qL1xuXG4gICRtYXhQYWdlV2lkdGg6IDE2MDBweDtcbiAgJG1heENvbnRlbnRXaWR0aDogMTIyMHB4O1xuICAkbWF4Um93V2lkdGg6ICRtYXhDb250ZW50V2lkdGg7XG5cbiAgJG1vYmlsZU5hdkhndDogNzJweDtcbiAgJGRlc2t0b3BOYXZIZ3Q6IDEwNXB4O1xuICAkbWljcm9zaXRlQ29sbGFwc2VkR2xvYmFsTmF2OiA1MHB4O1xuXG4gICRuYXZXaWR0aE1vYmlsZTogMzIwcHg7XG4gICRuYXZXaWR0aFRhYmxldDogNDAwcHg7XG4gICRicmVha3BvaW50LS1kZXNrdG9wTmF2OiAkYnJlYWtwb2ludC0tc21hbGw7XG5cbiAgLyogQ29tcG9uZW50IE1hcmdpbi9QYWRkaW5ncyAqL1xuXG4gICRhaXItLXhTbWFsbDogMjBweDtcbiAgJGFpci0tc21hbGw6IDQwcHg7XG4gICRhaXItLWxhcmdlOiA2MHB4O1xuICAkYWlyLS14TGFyZ2U6IDgwcHg7XG4gICRhaXItLXh4TGFyZ2U6IDEwMHB4O1xuXG4gIC8qIFNlY3Rpb24gTWFyZ2luL1BhZGRpbmdzICovXG4gICRzZWN0aW9uU3BhY2luZzogKFxuICAgICAgeGw6ICg0MHB4LCAxMDBweCwgMTUwcHgpLFxuICAgICAgbGc6ICgzNXB4LCA4MHB4LCAxMjBweCksXG4gICAgICBzbTogKDI1cHgsIDMwcHgsIDUwcHgpXG4gICk7XG5cbiAgJGd1dHRlci0tc21hbGw6IDU1cHg7XG4gICRndXR0ZXItLWxhcmdlOiAxMDVweDtcblxuICAvKiBMaW5lIEhlaWdodCAqL1xuXG4gICRsaW5lSGVpZ2h0LS14U21hbGw6IDEuMzU7XG4gICRsaW5lSGVpZ2h0LS1zbWFsbDogMS40NTtcbiAgJGxpbmVIZWlnaHQtLWxhcmdlOiAxLjY7XG5cbiAgJGJhbm5lci1saW5lSGVpZ2h0LS1zbWFsbDogMS4xNTtcbiAgJGJhbm5lci1saW5lSGVpZ2h0LS1sYXJnZTogMS41O1xuXG4gIC8qIE1pc2MgKi9cblxuICAkbGlnaHRib3hPcGFjaXR5OiAuODU7XG4gICRoaWdobGlnaHRCYXI6IDVweDtcblxuLyo9PT09PT09PT09PT09PT09PT1cbiAgUmVzcG9uc2l2ZSBDb2x1bW5zXG4gID09PT09PT09PT09PT09PT09PSovXG5cbiAgLypcbiAgICogVGhlIGZvbGxvd2luZyBjb2x1bW4gc2l6aW5nIG1hcCBpcyB1c2VkIHRvIGRldGVybWluZSBob3cgZGlmZmVyZW50IHNpemVkIGNvbHVtbnMgd2lsbCBhZGp1c3QgdGhlaXIgd2lkdGhzIGF0IGRpZmZlcmVudCBicmVha3BvaW50cy5cbiAgICogRm9yIGVhY2ggY29sdW1uIHNpemUgKDEyLCA5LCA4LCA2LCA0LCAzLCAyKSwgdGhlIHN1YnNlcXVlbnQgcmVzcG9uc2l2ZSB3aWR0aHMgYXJlIGxpc3RlZCBpbiBwYXJlbnRoZXNlcywgZ29pbmcgaW4gb3JkZXIgZnJvbSBtb2JpbGUsIHRvIHRhYmxldCwgdG8gc21hbGwgZGVza3RvcCwgdG8gZnVsbCBkZXNrdG9wLlxuICAgKiBleDogY29sU2l6ZToobW9iaWxlV2lkdGgsIHRhYmxldFdpZHRoLCBzbURlc2t0b3BXaWR0aCwgbGdEZXNrdG9wV2lkdGgpLCB3aGVyZSB0aGUgd2lkdGggdmFsdWVzIHJlZmVyIHRvIHRoZSBudW1iZXIgb2YgcGFydHMtcGVyLTEyIHRoYXQgdGhlIGNvbHVtbiBzaG91bGQgb2NjdXB5IGF0IGVhY2ggc2NyZWVuIHNpemUuXG4gICAqIE5vdGUgdGhhdCBhbGwgY29sdW1uIHdpZHRocyBhcmUgMTItYmFzZWQsIHNvIGEgMTIgcmVwcmVzZW50cyBhIGZ1bGwtd2lkdGggYXBwZWFyYW5jZS5cbiAgICogU2luY2UgYWxsIGNvbHVtbiBzaXplcyBzaG91bGQgYXBwZWFyIGZ1bGwtd2lkdGggYXQgbW9iaWxlIHZpZXdwb3J0IHNpemUsIHRoZSBmaXJzdCBudW1iZXIgaW4gZWFjaCBzZXF1ZW5jZSBpcyAxMi5cbiAgICogVGhlIHNldHRpbmdzIGZyb20gdGhpcyBtYXAgZ2V0IGFwcGxpZWQgYnkgdGhlIGNvbHVtblNpemVyIGxvb3Agc3RhdGVtZW50IGZvdW5kIGluIHRoZSBcIkNvbHVtbnNcIiBzZWN0aW9uIG9mIHRoZSBfbGF5b3V0IHBhcnRpYWwgKHNlZSB0aGUgc3R5bGVzIHVuZGVyIFwiLmNvbFwiKS5cbiAgICovXG5cbiAgJGNvbHVtblNpemVyOiAoXG4gICAgMTI6KDEyLCAxMiwgMTIsIDEyKSwgLy8gZnVsbC13aWR0aCBjb2x1bW47IDEyLzEyID0gMSAoMTAwJSlcbiAgICA5OiAoMTIsIDYsIDksIDkpLCAvLyB0aHJlZS1mb3VydGhzIHdpZHRoIGNvbHVtbjsgOS8xMiA9IDAuNzUgKDc1JSlcbiAgICA4OiAoMTIsIDgsIDgsIDgpLCAvLyB0d28tdGhpcmRzIHdpZHRoIGNvbHVtbjsgOC8xMiA9IDAuNjYgKDY2JSlcbiAgICA2OiAoMTIsIDYsIDYsIDYpLCAvLyBoYWxmLXdpZHRoIGNvbHVtbiAoNi8xMiA9IDAuNSBvciA1MCUpXG4gICAgNDogKDEyLCA0LCA0LCA0KSwgLy8gb25lLXRoaXJkIHdpZHRoIGNvbHVtbiAoNC8xMiA9IDAuMzMgb3IgMzMlKVxuICAgIDM6ICgxMiwgNiwgMywgMyksIC8vIG9uZS1mb3VydGggd2lkdGggY29sdW1uICgzLzEyID0gMC4yNSBvciAyNSUpXG4gICAgMjogKDEyLCA0LCAyLjQsIDIpIC8vIG9uZS1maWZ0aCB3aWR0aCBjb2x1bW4gKDIuNC8xMiA9IDAuMiBvciAyMCUpXG4gICk7XG5cbi8qPT09PT09PT09PT09PVxuICBDb2xvciBQYWxldHRlXG4gID09PT09PT09PT09PT0qL1xuXG4gIC8qIEdsb2JhbCBDb2xvcnMgKi9cblxuICAkYXR0WWVsbG93OiAjRkZCODFDO1xuICAkYXR0T3JhbmdlOiAjRUE3NDAwO1xuICAkYXR0TGd0Qmx1ZTogIzcxQzVFODtcbiAgJGF0dEJsdWU6ICMwMDlGREI7XG4gICRhdHREcmtCbHVlOiAjMDU2OEFFO1xuICAkYXR0Q29iYWx0OiAjMDA1N2I4O1xuICAkd2hpdGU6ICNGRkY7XG4gICRsZ3RHcmF5OiAjRjJGMkYyO1xuICAkcmVnR3JheTogI0M5QzlDOTtcbiAgJG1lZEdyYXk6ICM5NTk1OTU7XG4gICRkcmtHcmF5OiAjNUE1QTVBO1xuICAkZnVuY3Rpb25hbEJsYWNrOiAjMTkxOTE5O1xuICAkYmxhY2s6ICMwMDA7XG5cbiAgLyogMjAxOSBOZXcgQnJhbmQgU2Vjb25kYXJ5IENvbG9ycyAqL1xuICBcbiAgJGNvYmFsdDogIzAwNTdCODtcbiAgJHB1cnBsZTogI0FGMjlCQjtcbiAgJGJlcnJ5OiAjRkY1ODVEO1xuICAkdGFuZ2VyaW5lOiAjRkZCMDAwO1xuICAkbGltZTogIzkxREMwMDtcbiAgJG1pbnQ6ICM0OUVFREM7XG5cbiAgLyogU3BlY2lmaWMgVXNlIENvbG9ycyAqL1xuXG4gICRjb2xvci0tY3RhOiAkYXR0Qmx1ZTsgLyogY2FsbC10by1hY3Rpb24gZWxlbWVudHMgKGxpbmtzLCBidXR0b25zKSAqL1xuICAkY29sb3ItLWN0YS1ob3ZlcjogZGFya2VuKCRhdHRCbHVlLCA0JSk7IC8qIGNhbGwtdG8tYWN0aW9uIGhvdmVyIHN0YXRlICovXG4gICRjb2xvci0tY3RhLWNvbnRyYXN0OiBsaWdodGVuKCRhdHRCbHVlLCA3JSk7IC8qIHRyYW5zcGFyZW50IGhlYWRlciBsaW5rIGhpZ2hsaWdodCAqL1xuICAkY29sb3ItLWxpbms6ICRhdHREcmtCbHVlOyAvKiBzdGFuZGFyZCBsaW5rcyBpbnNpZGUgb2YgdGV4dCBibG9ja3MgKi9cbiAgJGNvbG9yLS1jb3B5OiAkZnVuY3Rpb25hbEJsYWNrOyAvKiBnZW5lcmFsIHBhZ2UgYm9keSBjb3B5ICovXG4gICRjb2xvci0tc2VhcmNoLWJvcmRlcjogZGFya2VuKCRsZ3RHcmF5LCAzJSk7XG4gICRjb2xvci0tbG9nby1kZWZhdWx0OiBcIndoaXRlXCI7XG5cbiAgLyogQ29sb3IgTWFwcyAqL1xuXG4gICRiYWNrZ3JvdW5kQ29sb3JzOiAoXG4gICAgLy9WYXJpYWJsZSAxIGlzIGJhY2tncm91bmQsIFZhcmlhYmxlIDIgaXMgdGV4dCBjb2xvclxuICAgIC8vTGVnYWN5XG4gICAgYmx1ZTogKCRhdHRCbHVlLCAkZnVuY3Rpb25hbEJsYWNrKSxcbiAgICBkYXJrLWJsdWU6ICgkYXR0RHJrQmx1ZSwgJHdoaXRlKSxcbiAgICBuZWFyLWJsYWNrOiAoJGZ1bmN0aW9uYWxCbGFjaywgJHdoaXRlKSxcbiAgICBcbiAgICAvLzIwMTlcbiAgICB3aGl0ZTogKCR3aGl0ZSwgJGZ1bmN0aW9uYWxCbGFjayksXG4gICAgYmxhY2s6ICgkYmxhY2ssICR3aGl0ZSksXG4gICAgZ3JheTogKCRsZ3RHcmF5LCAkZnVuY3Rpb25hbEJsYWNrKSxcbiAgICBibHVlLS13aC10ZXh0OiAoJGF0dEJsdWUsICR3aGl0ZSksXG4gICAgYmx1ZS0tYmwtdGV4dDogKCRhdHRCbHVlLCAkZnVuY3Rpb25hbEJsYWNrKSxcbiAgICAvL0NvbW11bmljYXRpb25zIFNlY29uZGFyeSBDb2xvcnNcbiAgICBjb21tcy1jb2JhbHQ6ICgkY29iYWx0LCAkd2hpdGUpLFxuICAgIGNvbW1zLXB1cnBsZTogKCRwdXJwbGUsICR3aGl0ZSksXG4gICAgY29tbXMtYmVycnk6ICgkYmVycnksICRmdW5jdGlvbmFsQmxhY2spLFxuICAgIGNvbW1zLXRhbmdlcmluZTogKCR0YW5nZXJpbmUsICRmdW5jdGlvbmFsQmxhY2spLFxuICAgIGNvbW1zLWxpbWU6ICgkbGltZSwgJGZ1bmN0aW9uYWxCbGFjayksXG4gICAgY29tbXMtbWludDogKCRtaW50LCAkZnVuY3Rpb25hbEJsYWNrKSwgXG4gICAgLy9Db21tdW5pY2F0aW9ucyBTZWNvbmRhcnkgQ29sb3JzIC0gR3JhZGllbnRzIFxuICAgIC8vVmFyIDEgaXMgbGVmdCBiYWNrZ3JvdW5kLCBWYXIgMiBpcyB0ZXh0IGNvbG9yIFZhciAzIGlzIHJpZ2h0IGJhY2tncm91bmRcbiAgICBibHVlLWdyYWRpZW50LS13aC10ZXh0OiAoJGF0dENvYmFsdCwgJHdoaXRlLCAkYXR0Qmx1ZSksXG4gICAgYmx1ZS1ncmFkaWVudC0tYmwtdGV4dDogKCRhdHRDb2JhbHQsICRmdW5jdGlvbmFsQmxhY2ssICRhdHRCbHVlKSxcbiAgICBjb21tcy1jb2JhbHQtcHVycGxlOigkY29iYWx0LCAkd2hpdGUsICRwdXJwbGUpLFxuICAgIGNvbW1zLWJlcnJ5LXRhbmdlcmluZTooJGJlcnJ5LCAkZnVuY3Rpb25hbEJsYWNrLCAkdGFuZ2VyaW5lKSxcbiAgICBjb21tcy1saW1lLW1pbnQ6KCRsaW1lLCAkZnVuY3Rpb25hbEJsYWNrLCAkbWludClcbiAgKTtcblxuICAvKiBDYXRlZ29yeSBUaGVtZXMgLSB0aGVtZSBuYW1lcyBiZWxvdyBhcmUgYmFzZWQgb24gdGhlbWUtLSBjYXRlZ29yeSBjbGFzc2VzIHRoYXQgZ2V0IGFwcGxpZWQgdG8gdGhlIGJvZHkgZWxlbWVudCBieSBBRU0gKi9cblxuICAkdGhlbWVDb2xvcnM6IChcbiAgICAvLyBDb21tdW5pY2F0aW9uczogKFwid2hpdGVcIiwgJHdoaXRlKSxcbiAgICAvLyBjb21wYW55OiAoXCJ3aGl0ZVwiLCAkd2hpdGUpXG4gICk7XG5cbiAgLypcblxuICBDb21tdW5pY2F0aW9uczogKFwiYmx1ZVwiLCAkYXR0Qmx1ZSksXG4gIGNvbXBhbnk6IChcInNpbHZlclwiLCBcInNpbHZlclwiKVxuXG4gICovXG5cbi8qPT09PT09PT09PT09PVxuICBGb250IEZhbWlsaWVzXG4gID09PT09PT09PT09PT0qL1xuXG4gIC8qIEFsZWNrIFNhbnMgLSBCYXNlIEZvbnQgVmFyaWFudHMgKi9cblxuICBAZm9udC1mYWNle1xuICBcdGZvbnQtZmFtaWx5OiAnQWxlY2sgU2Fucyc7IC8qIEFsZWNrIFNhbnMgKi9cbiAgXHRzcmM6IHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2Fuc19XX1JnLmVvdCcpO1xuICBcdHNyYzogdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTYW5zX1dfUmcuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbiAgXHQgICAgIHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2Fuc19XX1JnLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgXHQgICAgIHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2Fuc19XX1JnLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSxcbiAgXHQgICAgIHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2Fuc19XX1JnLnN2ZyN3ZWJmb250JykgZm9ybWF0KCdzdmcnKTtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgfVxuICBAZm9udC1mYWNle1xuICBcdGZvbnQtZmFtaWx5OiAnQWxlY2sgU2Fucyc7IC8qIEFsZWNrIFNhbnMgSXRhbGljICovXG4gIFx0c3JjOiB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NhbnNfV19JdC5lb3QnKTtcbiAgXHRzcmM6IHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2Fuc19XX0l0LmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gIFx0ICAgICB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NhbnNfV19JdC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksXG4gIFx0ICAgICB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NhbnNfV19JdC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksXG4gIFx0ICAgICB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NhbnNfV19JdC5zdmcjd2ViZm9udCcpIGZvcm1hdCgnc3ZnJyk7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIH1cbiAgQGZvbnQtZmFjZXtcbiAgXHRmb250LWZhbWlseTogJ0FsZWNrIFNhbnMnOyAvKiBBbGVjayBTYW5zIExpZ2h0ICovXG4gIFx0c3JjOiB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NhbnNfV19MdC5lb3QnKTtcbiAgXHRzcmM6IHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2Fuc19XX0x0LmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gIFx0ICAgICB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NhbnNfV19MdC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksXG4gIFx0ICAgICB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NhbnNfV19MdC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksXG4gIFx0ICAgICB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NhbnNfV19MdC5zdmcjd2ViZm9udCcpIGZvcm1hdCgnc3ZnJyk7XG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gIH1cbiAgQGZvbnQtZmFjZXtcbiAgXHRmb250LWZhbWlseTogJ0FsZWNrIFNhbnMnOyAvKiBBbGVjayBTYW5zIExpZ2h0IEl0YWxpYyAqL1xuICBcdHNyYzogdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTYW5zX1dfTHRJdC5lb3QnKTtcbiAgXHRzcmM6IHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2Fuc19XX0x0SXQuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbiAgXHQgICAgIHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2Fuc19XX0x0SXQud29mZicpIGZvcm1hdCgnd29mZicpLFxuICBcdCAgICAgdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTYW5zX1dfTHRJdC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksXG4gIFx0ICAgICB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NhbnNfV19MdEl0LnN2ZyN3ZWJmb250JykgZm9ybWF0KCdzdmcnKTtcbiAgICBmb250LXdlaWdodDogMzAwO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgfVxuICBAZm9udC1mYWNle1xuICBcdGZvbnQtZmFtaWx5OiAnQWxlY2sgU2Fucyc7IC8qIEFsZWNrIFNhbnMgQm9sZCAqL1xuICBcdHNyYzogdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTYW5zX1dfQmQuZW90Jyk7XG4gIFx0c3JjOiB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NhbnNfV19CZC5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICBcdCAgICAgdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTYW5zX1dfQmQud29mZicpIGZvcm1hdCgnd29mZicpLFxuICBcdCAgICAgdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTYW5zX1dfQmQudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLFxuICBcdCAgICAgdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTYW5zX1dfQmQuc3ZnI3dlYmZvbnQnKSBmb3JtYXQoJ3N2ZycpO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICB9XG4gIEBmb250LWZhY2V7XG4gIFx0Zm9udC1mYW1pbHk6ICdBbGVjayBTYW5zJzsgLyogQWxlY2sgU2FucyBCb2xkIEl0YWxpYyAqL1xuICBcdHNyYzogdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTYW5zX1dfQmRJdC5lb3QnKTtcbiAgXHRzcmM6IHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2Fuc19XX0JkSXQuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbiAgXHQgICAgIHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2Fuc19XX0JkSXQud29mZicpIGZvcm1hdCgnd29mZicpLFxuICBcdCAgICAgdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTYW5zX1dfQmRJdC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksXG4gIFx0ICAgICB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NhbnNfV19CZEl0LnN2ZyN3ZWJmb250JykgZm9ybWF0KCdzdmcnKTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgfVxuXG4gIC8qIEFsZWNrIFNhbnMgLSBBZGRpdGlvbmFsIEZvbnQgVmFyaWFudHMgKi9cblxuICBAZm9udC1mYWNle1xuICBcdGZvbnQtZmFtaWx5OiAnQWxlY2sgU2FucyBNZWRpdW0nOyAvKiBBbGVjayBTYW5zIE1lZGl1bSAqL1xuICBcdHNyYzogdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTYW5zX1dfTWQuZW90Jyk7XG4gIFx0c3JjOiB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NhbnNfV19NZC5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICBcdCAgICAgdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTYW5zX1dfTWQud29mZicpIGZvcm1hdCgnd29mZicpLFxuICBcdCAgICAgdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTYW5zX1dfTWQudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLFxuICBcdCAgICAgdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTYW5zX1dfTWQuc3ZnI3dlYmZvbnQnKSBmb3JtYXQoJ3N2ZycpO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICB9XG4gIEBmb250LWZhY2V7XG4gIFx0Zm9udC1mYW1pbHk6ICdBbGVjayBTYW5zIE1lZGl1bSc7IC8qIEFsZWNrIFNhbnMgTWVkaXVtIEl0YWxpYyAqL1xuICBcdHNyYzogdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTYW5zX1dfTWRJdC5lb3QnKTtcbiAgXHRzcmM6IHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2Fuc19XX01kSXQuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbiAgXHQgICAgIHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2Fuc19XX01kSXQud29mZicpIGZvcm1hdCgnd29mZicpLFxuICBcdCAgICAgdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTYW5zX1dfTWRJdC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksXG4gIFx0ICAgICB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NhbnNfV19NZEl0LnN2ZyN3ZWJmb250JykgZm9ybWF0KCdzdmcnKTtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgfVxuICBAZm9udC1mYWNle1xuICBcdGZvbnQtZmFtaWx5OiAnQWxlY2sgU2FucyBCbGFjayc7IC8qIEFsZWNrIFNhbnMgQmxhY2sgKi9cbiAgXHRzcmM6IHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2Fuc19XX0Jsay5lb3QnKTtcbiAgXHRzcmM6IHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2Fuc19XX0Jsay5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICBcdCAgICAgdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTYW5zX1dfQmxrLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgXHQgICAgIHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2Fuc19XX0Jsay50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksXG4gIFx0ICAgICB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NhbnNfV19CbGsuc3ZnI3dlYmZvbnQnKSBmb3JtYXQoJ3N2ZycpO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICB9XG4gIEBmb250LWZhY2V7XG4gIFx0Zm9udC1mYW1pbHk6ICdBbGVjayBTYW5zIEJsYWNrJzsgLyogQWxlY2sgU2FucyBCbGFjayBJdGFsaWMgKi9cbiAgXHRzcmM6IHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2Fuc19XX0Jsa0l0LmVvdCcpO1xuICBcdHNyYzogdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTYW5zX1dfQmxrSXQuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbiAgXHQgICAgIHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2Fuc19XX0Jsa0l0LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgXHQgICAgIHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2Fuc19XX0Jsa0l0LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSxcbiAgXHQgICAgIHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2Fuc19XX0Jsa0l0LnN2ZyN3ZWJmb250JykgZm9ybWF0KCdzdmcnKTtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgfVxuXG4gIC8qIEFsZWNrIFNsYWIgKi9cblxuICBAZm9udC1mYWNle1xuICBcdGZvbnQtZmFtaWx5OiAnQWxlY2sgU2xhYic7IC8qIEFsZWNrIFNsYWIgKi9cbiAgXHRzcmM6IHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2xhYl9XX1JnLmVvdCcpO1xuICBcdHNyYzogdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTbGFiX1dfUmcuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbiAgXHQgICAgIHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2xhYl9XX1JnLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgXHQgICAgIHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2xhYl9XX1JnLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSxcbiAgXHQgICAgIHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2xhYl9XX1JnLnN2ZyN3ZWJmb250JykgZm9ybWF0KCdzdmcnKTtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgfVxuICBAZm9udC1mYWNle1xuICBcdGZvbnQtZmFtaWx5OiAnQWxlY2sgU2xhYic7IC8qIEFsZWNrIFNsYWIgSXRhbGljICovXG4gIFx0c3JjOiB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NsYWJfV19JdC5lb3QnKTtcbiAgXHRzcmM6IHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2xhYl9XX0l0LmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gIFx0ICAgICB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NsYWJfV19JdC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksXG4gIFx0ICAgICB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NsYWJfV19JdC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksXG4gIFx0ICAgICB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NsYWJfV19JdC5zdmcjd2ViZm9udCcpIGZvcm1hdCgnc3ZnJyk7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIH1cblxuXG4gIC8qIEFUJlQgSWNvbiBGb250ICovXG5cbiAgQGZvbnQtZmFjZXtcbiAgXHRmb250LWZhbWlseTogJ0FUVF9JY29ucyc7IC8qIEFUJlQgSWNvbiBGb250ICovXG4gIFx0c3JjOiB1cmwoJ19mb250cy9BVFRfSWNvbnMvYXR0LWljb25zLmVvdCcpO1xuICBcdHNyYzogdXJsKCdfZm9udHMvQVRUX0ljb25zL2F0dC1pY29ucy5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICBcdCAgICAgdXJsKCdfZm9udHMvQVRUX0ljb25zL2F0dC1pY29ucy53b2ZmJykgZm9ybWF0KCd3b2ZmJyksXG4gIFx0ICAgICB1cmwoJ19mb250cy9BVFRfSWNvbnMvYXR0LWljb25zLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSxcbiAgXHQgICAgIHVybCgnX2ZvbnRzL0FUVF9JY29ucy9hdHQtaWNvbnMuc3ZnI3dlYmZvbnQnKSBmb3JtYXQoJ3N2ZycpO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICB9XG5cbi8qPT09PT09PT09PT09PT1cbiAgRm9udCBWYXJpYWJsZXNcbiAgPT09PT09PT09PT09PT0qL1xuXG4gICRhbGVjazogXCJBbGVjayBTYW5zXCIsIFwiQXJpYWxcIiwgXCJIZWx2ZXRpY2FcIiwgc2Fucy1zZXJpZjtcbiAgJGFsZWNrTWVkaXVtOiBcIkFsZWNrIFNhbnMgTWVkaXVtXCIsIFwiQWxlY2sgU2Fuc1wiLCBcIkFyaWFsXCIsIFwiSGVsdmV0aWNhXCIsIHNhbnMtc2VyaWY7XG4gICRhbGVja0JsYWNrOiBcIkFsZWNrIFNhbnMgQmxhY2tcIiwgXCJBbGVjayBTYW5zIE1lZGl1bVwiLCBcIkFsZWNrIFNhbnNcIiwgXCJBcmlhbFwiLCBcIkhlbHZldGljYVwiLCBzYW5zLXNlcmlmO1xuICAkYWxlY2tTbGFiOiBcIkFsZWNrIFNsYWJcIiwgXCJBbGVjayBTYW5zXCIsIFwiQXJpYWxcIiwgXCJIZWx2ZXRpY2FcIiwgc2Fucy1zZXJpZjtcbiAgJGFyaWFsOiBcIkFyaWFsXCIsIFwiSGVsdmV0aWNhXCIsIHNhbnMtc2VyaWY7XG4gICRhdHQtaWNvbnM6IFwiQVRUX0ljb25zXCIsXCJBcmlhbFwiLCBcIkhlbHZldGljYVwiLCBzYW5zLXNlcmlmO1xuXG4gIC8qIEFUJlQgSWNvbiBGb250IE1hcHMgKi9cblxuICAkYXR0SWNvbnM6IChcbiAgICBhbGVydDogXCJcXGU5MDBcIixcbiAgICBhdHQtbG9nbzogXCJcXGU5MDFcIixcbiAgICBhdHQtbG9nby10ZXh0OiBcIlxcZTkwZVwiLFxuICAgIGNvbW1lbnQ6IFwiXFxlOTAyXCIsXG4gICAgZG93bmxvYWQ6IFwiXFxlOTAzXCIsXG4gICAgZW1haWw6IFwiXFxlOTA0XCIsXG4gICAgZmFjZWJvb2s6IFwiXFxlOTA1XCIsXG4gICAgZmFxOiBcIlxcZTkwNlwiLFxuICAgIGZpbGU6IFwiXFxlOTA3XCIsXG4gICAgaW5mbzogXCJcXGU5MDhcIixcbiAgICBpbmZvMjogXCJcXGU5MDlcIixcbiAgICBpbnN0YWdyYW06IFwiXFxlOTBhXCIsXG4gICAgbGluazogXCJcXGU5MGJcIixcbiAgICBsaW5rZWRpbjogXCJcXGU5MGNcIixcbiAgICBub3RpZmljYXRpb246IFwiXFxlOTBmXCIsXG4gICAgbWludXM6IFwiXFxlOTBkXCIsXG4gICAgcGxheTogXCJcXGU5MTBcIixcbiAgICBwbHVzOiBcIlxcZTkxMVwiLFxuICAgIHF1b3RlOiBcIlxcZTkxMlwiLFxuICAgIHNlYXJjaDogXCJcXGU5MTNcIixcbiAgICB0d2l0dGVyOiBcIlxcZTkxNFwiLFxuICAgIHlvdXR1YmU6IFwiXFxlOTE1XCJcbiAgKTtcblxuLyo9PT09PT09PT09PT09PT09XG4gIE5hdiBIaWdobGlnaHRpbmdcbiAgPT09PT09PT09PT09PT09PSovXG5cbiAgLypcbiAgICogVGhlIGZvbGxvd2luZyBtYXAgc2V0cyB0aGUgbmF2IGhpZ2hsaWdodGluZyBkZWZhdWx0IGZvciBkaWZmZXJlbnQgYm9keSBjbGFzc2VzXG4gICAqIGV4OiBib2R5Q2xhc3NOYW1lOiBcIm5hdi1pdGVtLWNsYXNzLW5hbWVcIlxuICAgKiBOb3RlIHRoYXQgaWYgYSBuYXYgaXRlbSB3aXRoIGNsYXNzIG9mIFwibmF2LWNvbXBhbnlcIiBleGlzdHMgYW5kIHlvdSdyZSBvbiBhIHBhZ2Ugd2l0aCBhIGJvZHkgY2xhc3Mgb2YgXCJuYXYtY29tcGFueVwiLCB0aGF0IHdpbGwgaGlnaGxpZ2h0IGFzIHdlbGxcbiAgICovXG5cbiAgJG5hdkhpZ2hsaWdodHM6IChcbiAgICBzdG9yeTogXCJuYXYtbmV3c1wiLFxuICAgIGJsb2c6IFwibmF2LW5ld3NcIixcbiAgICBhbGwtcG9zdHM6IFwibmF2LW5ld3NcIixcbiAgICBtZWRpYS1nYWxsZXJ5OiBcIm5hdi1uZXdzXCIsXG4gICAgbWVkaWEta2l0OiBcIm5hdi1uZXdzXCIsXG4gICAgbWVkaWEta2l0LWxhbmRpbmc6IFwibmF2LW5ld3NcIlxuICApO1xuIiwiLyo9PT09PT1cbiAgTUlYSU5TXG4gID09PT09PSovXG5cbi8qPT09PT09PVxuICBBY2NlbnRzXG4gID09PT09PT0qL1xuXG5AbWl4aW4gYWNjZW50LWFycm93KCRkaXJlY3Rpb24pIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICY6YWZ0ZXIge1xuICAgIEBpZiAkZGlyZWN0aW9uPT1cInVwXCIge1xuICAgICAgY29udGVudDogXCIgXFwyMTkxXCI7XG4gICAgfVxuXG4gICAgQGVsc2UgaWYgJGRpcmVjdGlvbj09XCJkb3duXCIge1xuICAgICAgY29udGVudDogXCIgXFwyMTkzXCI7XG4gICAgfVxuXG4gICAgQGVsc2UgaWYgJGRpcmVjdGlvbj09XCJsZWZ0XCIge1xuICAgICAgY29udGVudDogXCIgXFwyMTkwXCI7XG4gICAgfVxuXG4gICAgQGVsc2UgaWYgJGRpcmVjdGlvbj09XCJyaWdodFwiIHtcbiAgICAgIGNvbnRlbnQ6IFwiIFxcMjE5MlwiO1xuICAgIH1cblxuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIH1cbn1cblxuQG1peGluIHNwZWNpYWwtYm9sZCgkY29sb3IpIHtcbiAgQGluY2x1ZGUgZm9udC1zaXplKDI0KTtcbiAgZm9udC1mYW1pbHk6ICRhbGVjaztcbiAgZm9udC13ZWlnaHQ6IDMwMDtcblxuICBiLFxuICBzdHJvbmcge1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgY29sb3I6ICRjb2xvcjtcblxuICAgIC5yZWdpb24tLWJsdWUgJiB7XG4gICAgICBjb2xvcjogJGJsYWNrO1xuICAgIH1cblxuICAgIC5yZWdpb24tLWRhcmstYmx1ZSAmLFxuICAgIC5yZWdpb25bY2xhc3MqPVwiLWJsYWNrXCJdICYge1xuICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGdyYWRpZW50LW92ZXJsYXkoJHN0YXJ0UG9zaXRpb24sICRvcGFjaXR5KSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAmOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQodG9wLCByZ2JhKDAsIDAsIDAsIDApIDAlLCByZ2JhKDAsIDAsIDAsIDApICRzdGFydFBvc2l0aW9uLCByZ2JhKDAsIDAsIDAsICRvcGFjaXR5KSAxMDAlKTtcbiAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsIHJnYmEoMCwgMCwgMCwgMCkgMCUsIHJnYmEoMCwgMCwgMCwgMCkgJHN0YXJ0UG9zaXRpb24sIHJnYmEoMCwgMCwgMCwgJG9wYWNpdHkpIDEwMCUpO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHJnYmEoMCwgMCwgMCwgMCkgMCUsIHJnYmEoMCwgMCwgMCwgMCkgJHN0YXJ0UG9zaXRpb24sIHJnYmEoMCwgMCwgMCwgJG9wYWNpdHkpIDEwMCUpO1xuXG4gICAgLm5vLWNzc2dyYWRpZW50cyAmIHtcbiAgICAgIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyMzMzAwMDAnLCBlbmRDb2xvcnN0cj0nIzAwMDAwMCcsIEdyYWRpZW50VHlwZT0xKTtcbiAgICAgIC1tcy1maWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPScjMzMwMDAwJywgZW5kQ29sb3JzdHI9JyMwMDAwMDAnLCBHcmFkaWVudFR5cGU9MSk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBzb2xpZC1vdmVybGF5KCRvcGFjaXR5KSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAmOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAkb3BhY2l0eSk7XG4gIH1cbn1cblxuQG1peGluIGhpZ2hsaWdodC1iYXIoJGhlaWdodCkge1xuICAmOmJlZm9yZSB7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbkFsbCgzMDBtcyk7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAtMXB4O1xuICAgIGhlaWdodDogJGhlaWdodDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItLWN0YTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbkBtaXhpbiBpY29uLW92ZXJsYXkoJGljb24pIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICY6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IG1hcC1nZXQoJGF0dEljb25zLCAkaWNvbik7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0b3A6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICBmb250LWZhbWlseTogJGF0dC1pY29ucztcbiAgICBmb250LXNpemU6IDEwcmVtO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBjb2xvcjogJHdoaXRlO1xuICAgIG9wYWNpdHk6IDAuODU7XG5cbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJyZWFrcG9pbnQtLXh4U21hbGwpIHtcbiAgICAgIGZvbnQtc2l6ZTogOHJlbTtcbiAgICB9XG5cbiAgICAuY29sLTIgJiB7XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLXNtYWxsKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogOHJlbTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuY29sLTMgJiB7XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLW1lZGl1bSkge1xuICAgICAgICBmb250LXNpemU6IDhyZW07XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmNvbC00ICYge1xuICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1zbWFsbCkgYW5kIChtYXgtd2lkdGg6ICRicmVha3BvaW50LS1tZWRpdW0gLSAxKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogOHJlbTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLyo9PT09PT09PT09XG4gIEFuaW1hdGlvbnNcbiAgPT09PT09PT09PSovXG5cbkBtaXhpbiB0cmFuc2l0aW9uQWxsKCRzcGVlZCkge1xuICB0cmFuc2l0aW9uOiBhbGwgJHNwZWVkIGVhc2U7XG59XG5cbi8qPT09PT09PT09PT09PT09PT1cbiAgQ29udGFpbmVyIFF1ZXJpZXNcbiAgPT09PT09PT09PT09PT09PT0qL1xuXG5AbWl4aW4gcmVzcG9uZC10by1jb250ZXh0KCRzaXplcy4uLikge1xuICAvKlxuICAgICAqIEF2YWlsYWJsZSBjb21wb25lbnQgZm9ybWF0cyBhcmUgeHNtYWxsLCBzbWFsbCwgbWVkaXVtIG9yIGxhcmdlLlxuICAgICAqIFRoaXMgbWl4aW4gbG9vcHMgb3ZlciB0aGUgY29udGV4dHMgcHJvdmlkZWQgKGNvbHVtbiBzaXplcykgYW5kIGRldGVybWluZXMgd2hlbiB0byBhcHBseSB0aGUgY29udGFpbmVkIHN0eWxlcyBmb3IgdGhvc2UgY29udGV4dHMsXG4gICAgICogYW5kIGFzc2lnbnMgZWFjaCBvZiB0aG9zZSBwb3RlbnRpYWwgY29sdW1uIHNpemVzIHRvIGEgY29ycmVzcG9uZGluZyBjb21wb25lbnQgZm9ybWF0ICh4c21hbGwsIHNtYWxsLCBtZWRpdW0gb3IgbGFyZ2UpLlxuICAgICAqIFRoZSA6bm90KC5jb2wpIHBhcmVudCBmaWx0ZXIgaXMgYWx3YXlzIGluY2x1ZGVkIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZXNlIHN0eWxlcyBhbHNvIGdldCBhcHBsaWVkIGZvciBjb21wb25lbnRzIHRoYXQgYXJlIGJlaW5nIHVzZWQgb3V0c2lkZSBvZiBjb2x1bW5zIHN5c3RlbVxuICAgICAqL1xuXG4gIEBlYWNoICRzaXplIGluICRzaXplcyB7XG4gICAgQGlmICRzaXplPT1cInNtYWxsXCIge1xuXG4gICAgICAvKiBBdCBtb2JpbGUgdmlld3BvcnRzLCBldmVyeSBjb21wb25lbnQgaW4gZXZlcnkgY29sdW1uIHN0YXJ0cyBvdXQgYWRoZXJpbmcgdG8gaXRzIHNtYWxsIGZvcm1hdCAqL1xuICAgICAgLy8gLnJlZ2lvbiA6bm90KC5jb2wpICYsXG4gICAgICAuY29sLTIgJixcbiAgICAgIC5jb2wtMyAmLFxuICAgICAgLmNvbC00ICYsXG4gICAgICAuY29sLTYgJixcbiAgICAgIC5jb2wtOCAmLFxuICAgICAgLmNvbC05ICYsXG4gICAgICAuY29sLTEyICYge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cblxuICAgIH1cblxuICAgIEBlbHNlaWYgJHNpemU9PVwibWVkaXVtXCIge1xuXG4gICAgICAvKiBUaGVuLCBhdCB0YWJsZXQgdmlld3BvcnRzLi4uICovXG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLXNtYWxsKSB7XG5cbiAgICAgICAgLyogLi4ub25seSBjb21wb25lbnRzIGluc2lkZSBvZiB0aGUgd2lkZXN0IGNvbHVtbnMgc2hvdWxkIGFkaGVyZSB0byB0aGVpciBtZWRpdW0gZm9ybWF0cyAqL1xuICAgICAgICAvLyAucmVnaW9uIDpub3QoLmNvbCkgJixcbiAgICAgICAgLmNvbC04ICYsXG4gICAgICAgIC5jb2wtOSAmLFxuICAgICAgICAuY29sLTEyICYge1xuICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG5cbiAgICAgIH1cblxuICAgICAgLyogVGhlbiwgYXQgc21hbGxlciBkZXNrdG9wIHZpZXdwb3J0cy4uLiAqL1xuICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1tZWRpdW0pIHtcblxuICAgICAgICAvKiAuLi5jb21wb25lbnRzIGluc2lkZSBvZiBsYXJnZXIgbWlkLXNpemUgY29sdW1ucyBjYW4gc3RhcnQgdG8gYWRoZXJlIHRvIHRoZWlyIG1lZGl1bSBmb3JtYXRzICovXG4gICAgICAgIC8vIC5yZWdpb24gOm5vdCguY29sKSAmLFxuICAgICAgICAuY29sLTYgJiB7XG4gICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cblxuICAgICAgfVxuXG4gICAgICAvKiBUaGVuLCBhdCBsYXJnZXIgZGVza3RvcCB2aWV3cG9ydHMuLi4gKi9cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tbGFyZ2UpIHtcblxuICAgICAgICAvKiAuLi5jb21wb25lbnRzIGluc2lkZSBvZiBzbWFsbGVyIG1pZC1zaXplIGNvbHVtbnMgY2FuIHN0YXJ0IHRvIGFkaGVyZSB0byB0aGVpciBtZWRpdW0gZm9ybWF0cyBpZiB0aGV5IGFyZSBpbiBob3Jpem9udGFsbHkgZmx1c2ggcm93cyAqL1xuICAgICAgICAvLyAucmVnaW9uIDpub3QoLmNvbCkgJixcbiAgICAgICAgLnJvdy0tZmx1c2gtaG9yaXpvbnRhbCAuY29sLTQgJiB7XG4gICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cblxuICAgICAgfVxuXG4gICAgfVxuXG4gICAgQGVsc2VpZiAkc2l6ZT09XCJsYXJnZVwiIHtcblxuICAgICAgLyogVGhlbiwgYXQgdGFibGV0IHZpZXdwb3J0cy4uLiAqL1xuICAgICAgLy8gQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1zbWFsbCkge1xuICAgICAgLy9cbiAgICAgIC8vICAgLyogLi4ub25seSBjb21wb25lbnRzIGluc2lkZSBvZiB0aGUgd2lkZXN0IGNvbHVtbiBzaG91bGQgYWRoZXJlIHRvIHRoZWlyIGxhcmdlIGZvcm1hdHMgKi9cbiAgICAgIC8vICAgLmNvbC0xMiAmIHtcbiAgICAgIC8vICAgICBAY29udGVudDtcbiAgICAgIC8vICAgfVxuICAgICAgLy9cbiAgICAgIC8vIH1cblxuICAgICAgLyogVGhlbiwgYXQgc21hbGxlciBkZXNrdG9wIHZpZXdwb3J0cy4uLiAqL1xuICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1tZWRpdW0pIHtcblxuICAgICAgICAvKiAuLi5vbmx5IGNvbXBvbmVudHMgaW5zaWRlIG9mIHRoZSB3aWRlc3QgY29sdW1ucyBjYW4gc3RhcnQgdG8gYWRoZXJlIHRvIHRoZWlyIGxhcmdlIGZvcm1hdHMgKi9cbiAgICAgICAgLy8gLnJlZ2lvbiA6bm90KC5jb2wpICYsXG4gICAgICAgIC5jb2wtOCAmLFxuICAgICAgICAuY29sLTkgJixcbiAgICAgICAgLmNvbC0xMiAmIHtcbiAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuXG4gICAgICB9XG5cbiAgICAgIC8qIFRoZW4sIGF0IGxhcmdlciBkZXNrdG9wIHZpZXdwb3J0cyAuLi4gKi9cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tbGFyZ2UpIHtcblxuICAgICAgICAvKiAuLi5jb21wb25lbnRzIGluc2lkZSBvZiBsYXJnZXIgbWlkLXNpemUgY29sdW1ucyBjYW4gc3RhcnQgdG8gYWRoZXJlIHRvIHRoZWlyIGxhcmdlIGZvcm1hdHMgKi9cbiAgICAgICAgLy8gLnJlZ2lvbiA6bm90KC5jb2wpICYsXG4gICAgICAgIC5jb2wtNiAmIHtcbiAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuXG4gICAgICB9XG5cbiAgICB9XG5cbiAgICBAZWxzZWlmICRzaXplPT1cInhzbWFsbFwiIHtcblxuICAgICAgLyogVGhlbiwgYXQgbGFyZ2VyIGRlc2t0b3Agdmlld3BvcnRzLi4uICovXG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLWxhcmdlKSB7XG5cbiAgICAgICAgLyogLi4ub25seSBjb21wb25lbnRzIGluc2lkZSBvZiB0aGUgdGluaWVzdCBjb2x1bW5zIHNob3VsZCBhZGhlcmUgdG8gdGhlaXIgeHNtYWxsIGZvcm1hdHMgKi9cbiAgICAgICAgLy8gLnJlZ2lvbiA6bm90KC5jb2wpICYsXG4gICAgICAgIC5jb2wtMiAmIHtcbiAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuXG4gICAgICB9XG5cbiAgICB9XG4gIH1cbn1cblxuLyo9PT09PT09PT09PVxuICBQb3NpdGlvbmluZ1xuICA9PT09PT09PT09PSovXG5cbkBtaXhpbiBjbGVhcmZpeCB7XG4gICY6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY2xlYXI6IGJvdGg7XG4gIH1cbn1cblxuQG1peGluIGNlbnRlckhvcml6b250YWxseSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICBsZWZ0OiA1MCU7XG59XG5cbkBtaXhpbiBjZW50ZXJWZXJ0aWNhbGx5IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIHRvcDogNTAlO1xufVxuXG5AbWl4aW4gcm93KCR3aWR0aDogJGNvbnRhaW5lcikge1xuICAkY29udGFpbmVyOiAkd2lkdGg7XG5cbiAgbWF4LXdpZHRoOiAkY29udGFpbmVyO1xufVxuXG5AbWl4aW4gY29sdW1uKCRudW1Db2xzKSB7XG4gICRncmlkQmFzZTogMTI7XG5cbiAgLy8gLy8gR3V0dGVyIHN0dWZmXG4gIC8vICRndXR0ZXJCYXNlOiAyMDtcbiAgLy8gQGlmICRudW1Db2xzID09IDUge1xuICAvLyAgICRndXR0ZXJCYXNlOiA3MjtcbiAgLy8gfVxuICAvLyAkbnVtR3V0dGVyczogJGdyaWRCYXNlIC8gKCRudW1Db2xzIC0gMSk7XG4gIC8vICRndXR0ZXJXaWR0aDogKCRndXR0ZXJCYXNlIC8gJGdyaWRCYXNlKSAqIDElO1xuXG4gICRjb2x1bW5XaWR0aDogKCRudW1Db2xzIC8gJGdyaWRCYXNlKSAqIDEwMCU7XG5cbiAgbWF4LXdpZHRoOiAkY29sdW1uV2lkdGg7XG4gIGZsZXgtYmFzaXM6ICRjb2x1bW5XaWR0aDtcbn1cblxuQG1peGluIGhpZGRlbi1zcG9rZW4ge1xuICBib3JkZXI6IDA7XG4gIGNsaXA6IHJlY3QoMXB4LCAxcHgsIDFweCwgMXB4KTtcbiAgY2xpcC1wYXRoOiBpbnNldCg1MCUpO1xuICBoZWlnaHQ6IDFweDtcbiAgbWFyZ2luOiAtMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nOiAwO1xuICB3aWR0aDogMXB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgd29yZC13cmFwOiBub3JtYWwgIWltcG9ydGFudDtcblxuICAmOmZvY3VzIHtcbiAgICBjbGlwOiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgY2xpcC1wYXRoOiBub25lO1xuICAgIHotaW5kZXg6IDEwMDAwMDtcbiAgICBvdXRsaW5lOiAwO1xuICB9XG59XG5cbi8qPT09PVxuICBNaXNjXG4gID09PT0qL1xuXG4vKiBTaWx2ZXIgc3R5bGUgKi9cblxuQG1peGluIGJrZy1zaWx2ZXIge1xuICBiYWNrZ3JvdW5kOiAjRURFQ0VDO1xuICBiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudChsZWZ0LCByZ2JhKDIzNywgMjM2LCAyMzYsIDEpIDAlLCByZ2JhKDI0OSwgMjQ5LCAyNDksIDEpIDEwMCUpO1xuICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChsZWZ0LCByZ2JhKDIzNywgMjM2LCAyMzYsIDEpIDAlLCByZ2JhKDI0OSwgMjQ5LCAyNDksIDEpIDEwMCUpO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMjM3LCAyMzYsIDIzNiwgMSkgMCUsIHJnYmEoMjQ5LCAyNDksIDI0OSwgMSkgMTAwJSk7XG4gIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyNFREVDRUMnLCBlbmRDb2xvcnN0cj0nI0Y5RjlGOScsIEdyYWRpZW50VHlwZT0xKTtcblxuICAubm8tY3NzZ3JhZGllbnRzICYge1xuICAgIGZpbHRlcjogbm9uZTtcbiAgfVxuXG4gIC5jdGEtLWxpbmsge1xuICAgIGNvbG9yOiAkYXR0RHJrQmx1ZTtcbiAgfVxufVxuQG1peGluIGdyYWRpZW50QmtnZCgkY29sb3IsICRkaXJlY3Rpb24sICR0ZXh0Q29sb3I6ICRibGFjaykge1xuICAvL1RPRE8gLSBjb25maXJtIHRoYXQgdGhpcyB0aGUgY29ycmVjdCB1c2Ugb2YgZmlsdGVyc1xuICAuY3NzZ3JhZGllbnRzICYge1xuICAgIGZpbHRlcjogbm9uZTtcbiAgfVxuICBAaWYgJGNvbG9yPT1cImJsdWVcIiB7XG4gICAgYmFja2dyb3VuZDokYXR0Qmx1ZTtcbiAgICBiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh0byAkZGlyZWN0aW9uLCAjMDA3OWIxIDAlLCAjMDBDOUZGIDEwMCUpO1xuICAgIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyMwMDc5YjEnLCBlbmRDb2xvcnN0cj0nIzAwQzlGRicsIEdyYWRpZW50VHlwZT0xKTtcbiAgICBAaWYgJHRleHRDb2xvcj09XCJ3aGl0ZVwiIHtcbiAgICAgIGNvbG9yOiR3aGl0ZTtcbiAgICB9XG4gIH1cblxuICBAZWxzZWlmICRjb2xvcj09XCJjb2xiYWx0LXB1cnBsZVwiIHtcbiAgICBiYWNrZ3JvdW5kOiRjb2xiYWx0O1xuICAgIGJhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvICRkaXJlY3Rpb24sICRjb2xiYWx0IDAlLCAkcHVycGxlIDEwMCUpO1xuICAgIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyN7JGNvbGJhbHR9JywgZW5kQ29sb3JzdHI9JyN7JHB1cnBsZX0nLCBHcmFkaWVudFR5cGU9MSk7XG4gICAgY29sb3I6JHdoaXRlO1xuICB9XG5cbiAgQGVsc2VpZiAkY29sb3I9PVwiYmVycnktdGFuZ2VyaW5lXCIge1xuICAgIGJhY2tncm91bmQ6JGJlcnJ5O1xuICAgIGJhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvICRkaXJlY3Rpb24sICRiZXJyeSAwJSwgJHRhbmdlcmluZSAxMDAlKTtcbiAgICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPScjeyRiZXJyeX0nLCBlbmRDb2xvcnN0cj0nI3skdGFuZ2VyaW5lfScsIEdyYWRpZW50VHlwZT0xKTtcbiAgICBjb2xvcjokYmxhY2s7XG4gIH1cblxuICBAZWxzZWlmICRjb2xvcj09XCJsaW1lLW1pbnRcIiB7XG4gICAgYmFja2dyb3VuZDokbGltZTtcbiAgICBiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh0byAkZGlyZWN0aW9uLCAkbGltZSAwJSwgJG1pbnQgMTAwJSk7XG4gICAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nI3skbGltZX0nLCBlbmRDb2xvcnN0cj0nI3skbWludH0nLCBHcmFkaWVudFR5cGU9MSk7XG4gICAgY29sb3I6JGJsYWNrO1xuICB9XG59XG5cbi8qIERlZmF1bHQgYnV0dG9uIHN0eWxlIGZvciB3aGl0ZSwgZ3JheSBvciBibGFjayBiYWNrZ3JvdW5kcyAqL1xuXG5AbWl4aW4gY3RhKCRia2dDb2xvcikge1xuICBAaWYgJGJrZ0NvbG9yPT1cImJsdWVcIiB7XG4gICAgYm9yZGVyOjA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLS1jdGE7XG4gICAgY29sb3I6ICR3aGl0ZTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci0tY3RhLWhvdmVyO1xuICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICB9XG5cbiAgfVxuXG4gIEBlbHNlaWYgJGJrZ0NvbG9yPT1cImJsYWNrXCIge1xuICAgIGJvcmRlcjowO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRibGFjaztcbiAgICBjb2xvcjogJHdoaXRlO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICAgICAgY29sb3I6ICRibGFjaztcbiAgICB9XG4gIH1cblxuICBAZWxzZWlmICRia2dDb2xvcj09XCJ3aGl0ZVwiIHtcbiAgICBib3JkZXI6IDJweCBzb2xpZCAkd2hpdGU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICAgIGNvbG9yOiAkYmxhY2s7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBjdGEtbmV3KCRjb2xvciwgJGhvdmVyVGV4dENvbG9yKSB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICBjb2xvcjogJGhvdmVyVGV4dENvbG9yO1xuICAgIH1cbn1cblxuLyogSG9yaXpvbnRhbC9WZXJ0aWNhbCBSdWxlcyAqL1xuXG5AbWl4aW4gcnVsZSgkZGlyZWN0aW9uKSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJhY2tncm91bmQtY29sb3I6ICRhdHRCbHVlO1xuICBib3JkZXItcmFkaXVzOiAzMHB4O1xuICB6LWluZGV4OiAyO1xuXG4gIEBpZiAkZGlyZWN0aW9uPT1cImhvcml6b250YWxcIiB7XG4gICAgbWF4LXdpZHRoOiAzMDBweDtcbiAgICB3aWR0aDogNjAlO1xuICAgIGhlaWdodDogNHB4O1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIGJvdHRvbTogLTJweDtcbiAgICByaWdodDogMDtcbiAgICBsZWZ0OiAwO1xuICB9XG5cbiAgQGVsc2Uge1xuICAgIG1heC1oZWlnaHQ6IDMwMHB4O1xuICAgIGhlaWdodDogNjAlO1xuICAgIHdpZHRoOiA0cHg7XG4gICAgbWFyZ2luOiBhdXRvIDA7XG4gICAgbGVmdDogLTJweDtcbiAgICBib3R0b206IDA7XG4gICAgdG9wOiAwO1xuICB9XG5cbiAgLnJlZ2lvbi0tYmx1ZSAmIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmxhY2s7XG4gIH1cblxuICAucmVnaW9uLS1kYXJrLWJsdWUgJiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICB9XG59XG5cbi8qPT09PT09PT09PVxuICBUeXBvZ3JhcGh5XG4gID09PT09PT09PT0qL1xuXG5AbWl4aW4gZm9udC1zaXplKCRwaXhlbHM6IDEuNCkge1xuICBmb250LXNpemU6ICRwaXhlbHMgKyBweDtcbiAgZm9udC1zaXplOiAoJHBpeGVscyAvIDEwKSArIHJlbTtcbn1cblxuQG1peGluIGZvbnQtc21vb3RoaW5nIHtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG59XG5cbkBtaXhpbiBuby1mb250LXNtb290aGluZyB7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGF1dG87XG59IiwiLyo9PT09PT1cbiAgSEVBREVSXG4gID09PT09PSovXG5cbiAgYm9keSA+IC53cmFwcGVyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuXG4gIGJvZHkgPiAud3JhcHBlciAuY2FudmFzIHtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uQWxsKDMwMG1zKTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWluLWhlaWdodDogMTAwdmg7XG5cbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJyZWFrcG9pbnQtLWRlc2t0b3BOYXYgLSAxKSB7XG4gICAgICAvL3RyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcblxuICAgICAgJi5jYW52YXMtLW9uIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC04MCUpO1xuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogMzYwcHgpIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLSN7JG5hdldpZHRoTW9iaWxlfSk7XG4gICAgICAgIH1cbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1zbWFsbCkge1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtI3skbmF2V2lkdGhUYWJsZXR9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tZGVza3RvcE5hdikge1xuICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgfVxuICB9XG5cbiAgLyogU2tpcCBOYXZpZ2F0aW9uICovXG5cbiAgLnNraXAtbmF2aWdhdGlvbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRkcmtHcmF5LCAxMCUpO1xuXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1zbWFsbCkge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrO1xuICAgIH1cbiAgfVxuICAuc2tpcC1uYXZpZ2F0aW9uIGEge1xuICAgIEBpbmNsdWRlIGhpZGRlbi1zcG9rZW47XG4gICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIHdpZHRoOiBjYWxjKDEwMHZ3IC0gMTBweCk7XG4gICAgcGFkZGluZzogNXB4O1xuICAgIHRvcDogNXB4O1xuXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1zbWFsbCkge1xuICAgICAgdG9wOiAtMzBweDtcbiAgICB9XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb25BbGwoMzAwbXMpO1xuICAgICAgZm9udC1zaXplOiAxMnB4OyAvLyBkb24ndCB1c2UgcmVtcyBoZXJlXG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBwYWRkaW5nOiA1cHggNXB4IDEwcHg7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIHRvcDogNXB4O1xuICAgICAgY2xpcC1wYXRoOiBub25lO1xuICAgICAgY2xpcDogaW5pdGlhbDtcbiAgICAgIGNvbG9yOiAkcmVnR3JheTtcbiAgICAgIHotaW5kZXg6IDk5OTk5OTk5OTk7XG5cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tc21hbGwpIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBsZWZ0OiA1cHg7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyogU3RhbmRhcmQgYW5kIE1pY3Jvc2l0ZSBIZWFkZXJzICovXG5cbiAgI2F0dC1hYm91dC1oZWFkZXIgPiBkaXYsXG4gICNhdHQtbWljcm9zaXRlLWhlYWRlciAubWljcm9zaXRlLW5hdiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkZHJrR3JheTtcbiAgfVxuXG4gICNhdHQtYWJvdXQtaGVhZGVyLmhlYWRlci0tdHJhbnNwYXJlbnQgPiBkaXYsXG4gICNhdHQtbWljcm9zaXRlLWhlYWRlci5oZWFkZXItLXRyYW5zcGFyZW50IC5taWNyb3NpdGUtbmF2IHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLWxhcmdlKSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRibGFjaywgLjY1KTtcbiAgICB9XG4gIH1cblxuICAjYXR0LWFib3V0LWhlYWRlci5oZWFkZXItLWZpeGVkID4gZGl2LFxuICAjYXR0LW1pY3Jvc2l0ZS1oZWFkZXIuaGVhZGVyLS1maXhlZCAubWljcm9zaXRlLW5hdiB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1sYXJnZSkge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrO1xuICAgIH1cbiAgfVxuXG4gIGhlYWRlciB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgICosXG4gICAgKjpiZWZvcmUsXG4gICAgKjphZnRlciB7XG4gICAgICBib3gtc2l6aW5nOiBpbmhlcml0O1xuICAgIH1cblxuICAgIC50b3VjaCAmLFxuICAgIC50b3VjaGV2ZW50cyAmIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gIH1cblxuICAvLyBBbnkgaW1tZWRpYXRlIHNpYmxpbmcgb2YgdGhlIHNlY29uZGFyeSBoZWFkZXJcblxuICAuaGVhZGVyLS1zZWNvbmRhcnkgKyAqIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLWRlc2t0b3BOYXYpIHsgXG4gICAgICBtYXJnaW4tdG9wOiAkZGVza3RvcE5hdkhndDtcbiAgICB9XG4gIH1cblxuICAvLyBBbnkgaW1tZWRpYXRlIHNpYmxpbmcgb2YgdGhlIHNlY29uZGFyeSBoZWFkZXIsIElGIHRoZSBzZWNvbmRhcnkgaGVhZGVyIGlzIGluIHVzZVxuXG4gIC5oZWFkZXItLXNlY29uZGFyeS5hY3RpdmUgKyAqIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLWRlc2t0b3BOYXYpIHtcbiAgICAgIG1hcmdpbi10b3A6ICRtb2JpbGVOYXZIZ3Q7XG4gICAgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0teExhcmdlKSB7XG4gICAgICBtYXJnaW4tdG9wOiAkZGVza3RvcE5hdkhndDtcbiAgICB9XG4gIH1cblxuICAvLyBBbnkgaW1tZWRpYXRlIHNpYmxpbmcgb2YgdGhlIHNlY29uZGFyeSBoZWFkZXIsIElGIHRoZSBzZWNvbmRhcnkgaGVhZGVyIGlzIGluIHVzZSBhbmQgY29udGFpbnMgY29uZGVuc2VkIGdsb2JhbCBuYXZcblxuICAuaGVhZGVyLS1zZWNvbmRhcnkuYWN0aXZlLS13R2xvYmFsICsgKiB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1kZXNrdG9wTmF2KSB7XG4gICAgICBtYXJnaW4tdG9wOiAkbW9iaWxlTmF2SGd0ICsgJG1pY3Jvc2l0ZUNvbGxhcHNlZEdsb2JhbE5hdjtcbiAgICB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS14TGFyZ2UpIHtcbiAgICAgIG1hcmdpbi10b3A6ICRkZXNrdG9wTmF2SGd0ICsgJG1pY3Jvc2l0ZUNvbGxhcHNlZEdsb2JhbE5hdjtcbiAgICB9XG4gIH1cblxuICAuaGVhZGVyICsgKixcbiAgLmhlYWRlciArIC5oZWFkZXItLXNlY29uZGFyeSArICoge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tZGVza3RvcE5hdikge1xuICAgICAgbWFyZ2luLXRvcDogJGRlc2t0b3BOYXZIZ3Q7XG4gICAgICB0b3A6IDA7XG4gICAgfVxuICB9XG5cbiAgLmhlYWRlci5oZWFkZXItLXRyYW5zcGFyZW50ICsgKiB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1kZXNrdG9wTmF2KSB7XG4gICAgICBtYXJnaW4tdG9wOiAkZGVza3RvcE5hdkhndDtcbiAgICB9XG5cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLWxhcmdlKSB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgbWluLWhlaWdodDogYXV0bztcbiAgICB9XG4gIH1cbiAgXG4gIC8vUmVtb3ZlZCB6LWluZGV4IGJlY2F1c2UgaXQgYWZmZWN0cyB0aGUgUlNTIEZlZWQgbW9kYWxcbiAgLmhlYWRlci5oZWFkZXItLXRyYW5zcGFyZW50ICsgLmhlYWRlci0tc2Vjb25kYXJ5LmhlYWRlci0tdHJhbnNwYXJlbnQgKyAqIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLWxhcmdlKSB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgLy96LWluZGV4OiAwO1xuICAgIH1cbiAgfVxuXG4gIC5oZWFkZXItLXNlY29uZGFyeS5oZWFkZXItLXRyYW5zcGFyZW50IHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLWxhcmdlKSB7XG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHRvcDogMDtcbiAgICB9XG4gIH1cblxuICAuaGVhZGVyLS1zZWNvbmRhcnkuaGVhZGVyLS10cmFuc3BhcmVudCArICoge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tbGFyZ2UpIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuICB9XG5cbiAgLmhlYWRlci0tc2Vjb25kYXJ5LmhlYWRlci0tdHJhbnNwYXJlbnQuYWN0aXZlLS13R2xvYmFsICsgKiB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1sYXJnZSkge1xuICAgICAgbWFyZ2luLXRvcDogJG1pY3Jvc2l0ZUNvbGxhcHNlZEdsb2JhbE5hdjtcbiAgICB9XG4gIH1cblxuICAuYXR0LWFib3V0LWhlYWRlcl9fd3JhcCB7XG4gICAgei1pbmRleDogMTA7XG5cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLWRlc2t0b3BOYXYpIHtcbiAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb25BbGwoNDUwbXMpO1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgaGVpZ2h0OiAkZGVza3RvcE5hdkhndDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWFyZ2luLXRvcDogMDtcblxuICAgICAgI2F0dC1hYm91dC1oZWFkZXIuaGVhZGVyLS1maXhlZCAmIHtcbiAgICAgICAgaGVpZ2h0OiAkbW9iaWxlTmF2SGd0O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5oZWFkZXItLXNlY29uZGFyeSA+ICoge1xuICAgIHotaW5kZXg6IDEwO1xuXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1kZXNrdG9wTmF2KSB7XG4gICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uQWxsKDQ1MG1zKTtcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgIC8vIGhlaWdodDogJGRlc2t0b3BOYXZIZ3Q7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICB0b3A6IDA7XG5cbiAgICAgIC8vICNhdHQtYWJvdXQtaGVhZGVyLmhlYWRlci0tZml4ZWQgJiB7XG4gICAgICAvLyAgIGhlaWdodDogJG1vYmlsZU5hdkhndDtcbiAgICAgIC8vIH1cbiAgICB9XG4gIH1cblxuICAjYXR0LWFib3V0LWhlYWRlciB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1sYXJnZSkge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgei1pbmRleDogOTk5OTk5OTk5O1xuICAgIH1cbiAgfVxuXG4gICNhdHQtbWljcm9zaXRlLWhlYWRlciB7XG4gICAgei1pbmRleDogNTtcblxuICAgICYgLmNvbXBvbmVudCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgICYgLm1pY3Jvc2l0ZS1uYXYge1xuICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbkFsbCg0NTBtcyk7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLW1lZGl1bSkge1xuICAgICAgICBoZWlnaHQ6ICRkZXNrdG9wTmF2SGd0O1xuICAgICAgfVxuICAgIH1cblxuICAgICYuaGVhZGVyLS1maXhlZCAubWljcm9zaXRlLW5hdiB7XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLW1lZGl1bSkge1xuICAgICAgICBoZWlnaHQ6ICRtb2JpbGVOYXZIZ3Q7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJiAubWljcm9zaXRlLW5hdi5taWNyb3NpdGUtbmF2LS1wbHVzR2xvYmFsIHtcbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tbWVkaXVtKSB7XG4gICAgICAgIGhlaWdodDogJG1vYmlsZU5hdkhndCArICRtaWNyb3NpdGVDb2xsYXBzZWRHbG9iYWxOYXY7XG4gICAgICB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLXhMYXJnZSkge1xuICAgICAgICBoZWlnaHQ6ICRkZXNrdG9wTmF2SGd0ICsgJG1pY3Jvc2l0ZUNvbGxhcHNlZEdsb2JhbE5hdjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmhlYWRlci0tZml4ZWQgLm1pY3Jvc2l0ZS1uYXYubWljcm9zaXRlLW5hdi0tcGx1c0dsb2JhbCB7XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLW1lZGl1bSkge1xuICAgICAgICBoZWlnaHQ6ICRtb2JpbGVOYXZIZ3QgKyAkbWljcm9zaXRlQ29sbGFwc2VkR2xvYmFsTmF2O1xuICAgICAgfVxuICAgICBcbiAgICB9XG4gIH1cblxuICAvKiBBdXRob3IgSW5zdGFuY2UgRGlzcGxheSBGaXhlcyAqL1xuXG4gIC5hZW0tQXV0aG9yTGF5ZXItRWRpdCAjYXR0LWFib3V0LWhlYWRlciB7XG4gICAgbWluLWhlaWdodDogJG1vYmlsZU5hdkhndDtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLWRlc2t0b3BOYXYpIHtcbiAgICAgIG1pbi1oZWlnaHQ6ICRkZXNrdG9wTmF2SGd0O1xuICAgIH1cbiAgfVxuXG4gIC5hZW0tQXV0aG9yTGF5ZXItRWRpdCAjYXR0LWFib3V0LWhlYWRlciArICosXG4gIC5hZW0tQXV0aG9yTGF5ZXItRWRpdCAjYXR0LWFib3V0LWhlYWRlciArIC5oZWFkZXItLXNlY29uZGFyeSArICosXG4gIC5hZW0tQXV0aG9yTGF5ZXItRWRpdCAjYXR0LW1pY3Jvc2l0ZS1oZWFkZXIgKyAqIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG5cbiAgLy8gLmFlbS1BdXRob3JMYXllci1FZGl0ICNhdHQtYWJvdXQtaGVhZGVyLmhlYWRlci0tdHJhbnNwYXJlbnQgKyAqLFxuICAvLyAuYWVtLUF1dGhvckxheWVyLUVkaXQgI2F0dC1hYm91dC1oZWFkZXIuaGVhZGVyLS10cmFuc3BhcmVudCArIC5oZWFkZXItLXNlY29uZGFyeSArICosXG4gIC8vIC5hZW0tQXV0aG9yTGF5ZXItRWRpdCAjYXR0LW1pY3Jvc2l0ZS1oZWFkZXIuaGVhZGVyLS10cmFuc3BhcmVudCArICoge1xuICAvLyAgIG1hcmdpbi10b3A6IDEwMHB4O1xuICAvLyB9XG5cbiAgLmFlbS1BdXRob3JMYXllci1FZGl0ICNhdHQtbWljcm9zaXRlLWhlYWRlci5hY3RpdmUgKyAqLFxuICAuYWVtLUF1dGhvckxheWVyLUVkaXQgI2F0dC1taWNyb3NpdGUtaGVhZGVyLmFjdGl2ZS0td0dsb2JhbCArICoge1xuICAgIG1pbi1oZWlnaHQ6IDEwMHB4O1xuICB9XG5cbiAgLmFlbS1BdXRob3JMYXllci1FZGl0ICNhdHQtbWljcm9zaXRlLWhlYWRlci5hY3RpdmUgKyAqIHtcbiAgICBtYXJnaW4tdG9wOiAxMzBweDtcbiAgfVxuICAuYWVtLUF1dGhvckxheWVyLUVkaXQgI2F0dC1taWNyb3NpdGUtaGVhZGVyLmFjdGl2ZS0td0dsb2JhbCArICoge1xuICAgIG1hcmdpbi10b3A6IDE4MHB4O1xuICB9XG4iLCIvKj09PT09PVxuICBGT09URVJcbiAgPT09PT09Ki9cblxuICAjYXR0LWFib3V0LWZvb3RlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGZ1bmN0aW9uYWxCbGFjaztcbiAgfVxuXG4gICNhdHQtYWJvdXQtZm9vdGVyIC5mb290ZXJfX3dyYXAge1xuICAgIGZvbnQtZmFtaWx5OiBcIkFyaWFsXCIsIFwiSGVsdmV0aWNhXCIsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIG1heC13aWR0aDogJG1heENvbnRlbnRXaWR0aDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBwYWRkaW5nOiAkYWlyLS14U21hbGw7XG4gICAgY29sb3I6ICRtZWRHcmF5O1xuXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1zbWFsbCkgYW5kIChtYXgtd2lkdGg6ICRicmVha3BvaW50LS14TGFyZ2UgLSAxKSB7XG4gICAgICBwYWRkaW5nLWxlZnQ6ICRndXR0ZXItLXNtYWxsO1xuICAgICAgcGFkZGluZy1yaWdodDogJGd1dHRlci0tc21hbGw7XG4gICAgfVxuXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1tZWRpdW0pIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiA1MHB4O1xuICAgIH1cblxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0teExhcmdlKSB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIH1cblxuICAgIGEge1xuICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgfVxuICB9XG5cbiAgI2F0dC1hYm91dC1mb290ZXIgLmZvb3Rlcl9fbWVudSB7XG4gICAgbWFyZ2luOiAxMHB4IDAgMjBweDtcbiAgICBwYWRkaW5nOiAwO1xuXG4gICAgbGkge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuICAgICAgbWFyZ2luLWJvdHRvbTogLjVyZW07XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgI2F0dC1hYm91dC1mb290ZXIgLmZvb3Rlcl9fY29weXJpZ2h0IHtcbiAgICBtYXJnaW46IDIwcHggMDtcblxuICAgIHAge1xuICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgIGEge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgfVxuICB9XG4iLCIvKj09PVxuICBOQVZcbiAgPT09Ki9cblxuICAvKiBOYXYtc3BlY2lmaWMgc2V0dGluZ3MgKi9cblxuICAkYnVyZ2VyOiAyNHB4O1xuICAkYnVyZ2VyQmFyOiAkYnVyZ2VyIC8gODtcblxuICAkbW9iaWxlTG9nbzogMzhweDtcbiAgJGRlc2t0b3BMb2dvOiA1MXB4O1xuXG4gIC8qIEhlbHBlciBtaXhpbnMgKi9cblxuICBAbWl4aW4gbmF2TG9nbygkc2l6ZSl7XG4gICAgaGVpZ2h0OiAkc2l6ZTtcbiAgfVxuXG4gIEBtaXhpbiBuYXZBbmNob3Ige1xuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogJysnO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgcmlnaHQ6IDEwcHg7XG4gICAgICB0b3A6IDEwJTtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgIHBhZGRpbmc6IDNweDtcbiAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICBmb250LWZhbWlseTogJGFsZWNrO1xuICAgICAgZm9udC1zaXplOiAyNXB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gIH1cblxuICBAbWl4aW4gbmF2QW5jaG9yLWV4cGFuZGVkIHtcbiAgICAmOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGhlaWdodDogMnB4O1xuICAgICAgd2lkdGg6IDEycHg7XG4gICAgICB0b3A6IDE5cHg7XG4gICAgICBsZWZ0OiAxNHB4O1xuICAgIH1cbiAgfVxuXG4gIEBtaXhpbiBhY3RpdmVJdGVtIHtcbiAgICAmID4gLm5hdl9fbWVudS1pdGVtIHtcbiAgICAgIGNvbG9yOiAkY29sb3ItLWN0YTtcblxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1kZXNrdG9wTmF2KSB7XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQG1peGluIGFjdGl2ZUl0ZW0tZGFya2VuZWQge1xuICAgICYgPiAubmF2X19tZW51LWl0ZW0ge1xuICAgICAgdGV4dC1zaGFkb3c6IDBweCAwcHggMzBweCByZ2JhKDAsIDAsIDAsIC41KTtcbiAgICB9XG4gIH1cblxuLyo9PT09PT09PT09PT09PT09PT09PT0qL1xuXG4gICNhdHQtYWJvdXQtaGVhZGVyIC5uYXYge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgIG1heC13aWR0aDogJG1heENvbnRlbnRXaWR0aDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogc3VicGl4ZWwtYW50aWFsaWFzZWQ7XG4gIH1cblxuICAjYXR0LWFib3V0LWhlYWRlciAubmF2X191dGlscyB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgcGFkZGluZzogMCAkYWlyLS14U21hbGw7XG4gICAgaGVpZ2h0OiAkbW9iaWxlTmF2SGd0O1xuXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1kZXNrdG9wTmF2KSB7XG4gICAgICBwYWRkaW5nOiAwICRndXR0ZXItLXNtYWxsO1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICB3aWR0aDogMTUlO1xuICAgIH1cblxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0teExhcmdlKSB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgIH1cbiAgfVxuXG4gIC8qIE5hdiBMb2dvICovXG5cbiAgLm5hdl9fbG9nbyB7XG4gICAgQGluY2x1ZGUgY2VudGVyVmVydGljYWxseTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbG9hdDogbGVmdDtcblxuICAgIC5sb2dvX19pY29uIHtcbiAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb25BbGwoMzAwbXMpO1xuICAgICAgQGluY2x1ZGUgbmF2TG9nbygkbW9iaWxlTG9nbyk7XG4gICAgICBtaW4td2lkdGg6IDk1cHg7XG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwO1xuICAgICAgYmFja2dyb3VuZC1zaXplOiAxMDAlO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgIC8qIE5PVEU6IExvZ28gY29sb3IgY2FuIHZhcnkgYmFzZWQgb24gdGhlIHRoZW1lLiBEZWZhdWx0IHRyZWF0bWVudCBpcyBzaWx2ZXIuICovXG5cbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1nL2xvZ29fYXR0LXdoaXRlLXRleHQucG5nJyk7XG5cbiAgICAgIC8vIEBlYWNoICR0aGVtZSwgJGNvbG9yIGluICR0aGVtZUNvbG9ycyB7XG4gICAgICAvLyAgICRjb2xvck5hbWU6IG50aCgkY29sb3IsIDEpO1xuICAgICAgLy9cbiAgICAgIC8vICAgLnRoZW1lLS0jeyR0aGVtZX0gJiB7XG4gICAgICAvLyAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWcvbG9nb19hdHQtI3skY29sb3JOYW1lfS5wbmcnKTtcbiAgICAgIC8vICAgfVxuICAgICAgLy8gfVxuXG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLWxhcmdlKSB7XG4gICAgICAgIEBpbmNsdWRlIG5hdkxvZ28oJGRlc2t0b3BMb2dvKTtcbiAgICAgICAgbWluLXdpZHRoOiAxMjdweDtcblxuICAgICAgICAuaGVhZGVyLS1maXhlZCAmIHtcbiAgICAgICAgICBAaW5jbHVkZSBuYXZMb2dvKCRtb2JpbGVMb2dvKTtcbiAgICAgICAgICBtaW4td2lkdGg6IDk1cHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKiBIYW1idXJnZXIgVG9nZ2xlICovXG5cbiAgI2F0dC1hYm91dC1oZWFkZXIgLm5hdl9fdG9nZ2xlLFxuICAubWljcm9zaXRlLW5hdi0tcGx1c0dsb2JhbCAubmF2X190b2dnbGUge1xuICAgIGhlaWdodDogJGJ1cmdlcjtcbiAgICB3aWR0aDogJGJ1cmdlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogMDtcblxuICAgICY6Zm9jdXMge1xuICAgICAgb3V0bGluZTogMDtcbiAgICB9XG5cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLWRlc2t0b3BOYXYpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgI2F0dC1hYm91dC1oZWFkZXIgLm5hdl9fdG9nZ2xlIC5iYXIsXG4gIC5taWNyb3NpdGUtbmF2LS1wbHVzR2xvYmFsIC5uYXZfX3RvZ2dsZSAuYmFyIHtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uQWxsKDMwMG1zKTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAkYnVyZ2VyQmFyO1xuICAgIG1hcmdpbi1ib3R0b206ICRidXJnZXJCYXIgKyAxO1xuICB9XG5cbiAgLm5hdl9fdG9nZ2xlLS1vcGVuIHtcbiAgICBAaW5jbHVkZSBjZW50ZXJWZXJ0aWNhbGx5O1xuICAgIGZsb2F0OiByaWdodDtcblxuICAgIC5uYXYtLW9wZW4gJiB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC5uYXZfX3RvZ2dsZS0tY2xvc2Uge1xuICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAubmF2LS1vcGVuICYge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDIycHg7XG4gICAgICAvLyBsZWZ0OiAtNDBweDtcbiAgICAgIHJpZ2h0OiAyMHB4O1xuXG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLWRlc2t0b3BOYXYpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gICAgLm5hdi0tb3BlbiAmIC5iYXIge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgIHRvcDogOHB4O1xuXG4gICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHdoaXRlO1xuICAgICAgfVxuXG4gICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgIH1cblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICNhdHQtYWJvdXQtaGVhZGVyIC5uYXZfX3V0aWxzLFxuICAjYXR0LWFib3V0LWhlYWRlciAubmF2X19tZW51LS1wcmltYXJ5IHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLWRlc2t0b3BOYXYpIHtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG4gIH1cblxuICAvKiBOYXYgTWVudXMgKi9cblxuICAubmF2X19tZW51IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmxhY2s7XG5cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLWRlc2t0b3BOYXYpIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6ICRndXR0ZXItLXNtYWxsO1xuICAgIH1cblxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tbGFyZ2UpIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6ICRndXR0ZXItLXNtYWxsO1xuICAgIH1cblxuICAgIGxpIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcblxuICAgICAgJi5leHBhbmRlZCA+IC5uYXZfX21lbnUtcGFyZW50IHtcbiAgICAgICAgQGluY2x1ZGUgbmF2QW5jaG9yLWV4cGFuZGVkO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5uYXZfX21lbnUtaXRlbSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBmb250LWZhbWlseTogJGFsZWNrO1xuICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgIGZvbnQtc2l6ZTogMTZweDsgLy8gZG9uJ3QgdXNlIHJlbXMgaGVyZVxuICAgICAgbGluZS1oZWlnaHQ6IDEuMjU7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBjb2xvcjogJHdoaXRlO1xuXG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLWRlc2t0b3BOYXYpIHtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4OyAvLyBkb24ndCB1c2UgcmVtcyBoZXJlXG4gICAgICB9XG5cbiAgICAgIHNwYW4ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogMzYwcHgpIHtcbiAgICAgICAgICBmb250LXNpemU6IDE0cHg7IC8vIGRvbid0IHVzZSByZW1zIGhlcmVcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5uYXZfX21lbnUtcGFyZW50IHtcbiAgICAgIEBpbmNsdWRlIG5hdkFuY2hvcjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICBwYWRkaW5nOiAxMHB4IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLWRlc2t0b3BOYXYpIHtcbiAgICAgICAgaGVpZ2h0OiAzN3B4O1xuICAgICAgfVxuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qIFByaW1hcnkgTWVudXMgKi9cblxuICAubmF2X19tZW51LS1wcmltYXJ5IHtcbiAgICB3aWR0aDogJG5hdldpZHRoTW9iaWxlO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBtYXJnaW46IDA7XG5cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLXNtYWxsKSB7XG4gICAgICB3aWR0aDogJG5hdldpZHRoVGFibGV0O1xuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicmVha3BvaW50LS1kZXNrdG9wTmF2IC0gMSkge1xuICAgICAgdHJhbnNpdGlvbjogd2lkdGggMzAwbXMgZWFzZTtcbiAgICAgIG1heC13aWR0aDogODAlO1xuICAgICAgbGVmdDogMTAwJTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIHBhZGRpbmctdG9wOiAkbW9iaWxlTmF2SGd0O1xuICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAkZHJrR3JheTtcblxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDM2MHB4KSB7XG4gICAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLWRlc2t0b3BOYXYpIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgIHdpZHRoOiA4NSU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIH1cblxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0teExhcmdlKSB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIH1cblxuICAgICYgPiBsaSB7XG5cbiAgICAgIC8qIE5PVEU6IEFwcGx5IGhpZ2hsaWdodGluZyB0byBuYXYgaXRlbXMgYmFzZWQgb24gdGhlIGJvZHkgY2xhc3MgbmFtZS4gKi9cblxuICAgICAgQGVhY2ggJGJvZHlDbGFzcywgJG5hdkl0ZW1DbGFzcyBpbiAkbmF2SGlnaGxpZ2h0cyB7XG4gICAgICAgIC4jeyRib2R5Q2xhc3N9Om5vdChbY2xhc3MqPVwibmF2LVwiXSkgJi4jeyRuYXZJdGVtQ2xhc3N9LFxuICAgICAgICAuI3skbmF2SXRlbUNsYXNzfSAmLiN7JG5hdkl0ZW1DbGFzc30ge1xuICAgICAgICAgIEBpbmNsdWRlIGFjdGl2ZUl0ZW07XG4gICAgICAgIH1cblxuICAgICAgICAuI3skYm9keUNsYXNzfTpub3QoW2NsYXNzKj1cIm5hdi1cIl0pIC5oZWFkZXItLXRyYW5zcGFyZW50ICYuI3skbmF2SXRlbUNsYXNzfSxcbiAgICAgICAgLiN7JG5hdkl0ZW1DbGFzc30gLmhlYWRlci0tdHJhbnNwYXJlbnQgJi4jeyRuYXZJdGVtQ2xhc3N9IHtcbiAgICAgICAgICBAaW5jbHVkZSBhY3RpdmVJdGVtLWRhcmtlbmVkO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgQGluY2x1ZGUgYWN0aXZlSXRlbTtcbiAgICAgIH1cblxuICAgICAgLmhlYWRlci0tdHJhbnNwYXJlbnQgJi5hY3RpdmUge1xuICAgICAgICBAaW5jbHVkZSBhY3RpdmVJdGVtLWRhcmtlbmVkO1xuICAgICAgfVxuXG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogJGJyZWFrcG9pbnQtLWRlc2t0b3BOYXYgLSAxKSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkZHJrR3JheTtcblxuICAgICAgICAmLmV4cGFuZGVkID4gLm5hdl9fbWVudS1pdGVtIHtcblxuICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMXB4LCAtMnB4KSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAkY29sb3ItLWN0YTtcbiAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDlweDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1kZXNrdG9wTmF2KSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBtYXJnaW46IDAgMCAwIDIwcHg7XG5cbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmOm50aC1sYXN0LWNoaWxkKC1uKzIpID4gLm5hdl9fbWVudS0tbmVzdGVkIHtcbiAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIgPiAubmF2X19tZW51LWl0ZW0sXG4gICAgICAgICYuZXhwYW5kZWQgPiAubmF2X19tZW51LWl0ZW0ge1xuICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxcHgsIC0ycHgpIHJvdGF0ZSg0NWRlZyk7XG5cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDg1MHB4KSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAzNXB4O1xuICAgICAgfVxuXG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLW1lZGl1bSkge1xuICAgICAgICBtYXJnaW4tbGVmdDogNjVweDtcbiAgICAgIH1cblxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1sYXJnZSkge1xuICAgICAgICBtYXJnaW4tbGVmdDogODBweDtcbiAgICAgIH1cblxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS14TGFyZ2UpIHtcbiAgICAgICAgJi5sYXN0LWl0ZW0ge1xuICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0teHhMYXJnZSkge1xuICAgICAgICAmOm50aC1sYXN0LWNoaWxkKC1uKzIpID4gLm5hdl9fbWVudS0tbmVzdGVkIHtcbiAgICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICY6bGFzdC1jaGlsZCA+IC5uYXZfX21lbnUtLW5lc3RlZCB7XG4gICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJiA+IC5uYXZfX21lbnUtaXRlbSB7XG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnJlYWtwb2ludC0tZGVza3RvcE5hdiAtIDEpIHtcbiAgICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gMTAwcHgpO1xuICAgICAgICAgIHBhZGRpbmc6IDEwcHggMCAxMHB4IDIwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLWRlc2t0b3BOYXYpIHtcbiAgICAgICAgICBAaW5jbHVkZSBoaWdobGlnaHQtYmFyKCRoaWdobGlnaHRCYXIpO1xuICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgICAmOmZvY3VzOmJlZm9yZSB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tZGVza3RvcE5hdikge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC01MCUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmID4gLm5hdl9fbWVudS1wYXJlbnQge1xuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLWRlc2t0b3BOYXYpIHtcbiAgICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgICAgcGFkZGluZzogMDtcblxuICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogbm9uZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5leHBhbmRlZCA+IC5uYXZfX21lbnUtcGFyZW50OmFmdGVyIHtcbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1kZXNrdG9wTmF2KSB7XG4gICAgICAgICAgY29udGVudDogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qIFN1Ym5hdnMgKi9cblxuICAubmF2X19tZW51LS1zZWNvbmRhcnksXG4gIC5uYXZfX21lbnUtLXRlcnRpYXJ5IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tZGVza3RvcE5hdikge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgd2lkdGg6IDI2MHB4O1xuICAgICAgbWFyZ2luLXRvcDogMXB4O1xuICAgICAgcGFkZGluZzogMTBweCAwO1xuXG4gICAgICAubmF2X19tZW51LS1uZXN0ZWQge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRibGFjaztcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgcGFkZGluZzogNXB4IDEwcHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1sYXJnZSkge1xuICAgICAgd2lkdGg6IDMwMHB4O1xuICAgIH1cblxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0teExhcmdlKSB7XG4gICAgICB3aWR0aDogMzQwcHg7XG4gICAgfVxuXG4gICAgbGkge1xuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicmVha3BvaW50LS1kZXNrdG9wTmF2IC0gMSkge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGRya0dyYXk7XG4gICAgICB9XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLWRlc2t0b3BOYXYpIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZHJrR3JheTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmOmhvdmVyIC5uYXZfX21lbnUtcGFyZW50IHtcbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1kZXNrdG9wTmF2KSB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbigkZHJrR3JheSwgNSUpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm5hdl9fbWVudS1pdGVtIHtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxMDBweCk7XG4gICAgICBwYWRkaW5nOiAxMHB4IDAgMTBweCAwO1xuXG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLWRlc2t0b3BOYXYpIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gNDBweCk7XG4gICAgICB9XG5cbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLWRlc2t0b3BOYXYpIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZHJrR3JheTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMjBweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKiBTZWNvbmRhcnkgU3VibmF2cyAqL1xuXG4gIC5uYXZfX21lbnUtLXNlY29uZGFyeSB7XG5cbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJyZWFrcG9pbnQtLWRlc2t0b3BOYXYgLSAxKSB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDQwcHg7XG5cbiAgICAgIC8qIFdoZW4gaW4gbW9iaWxlLCByZWx5IG9uIHRoZSAuZXhwYW5kZWQgY2xhc3Mgb2YgdGhlIHBhcmVudCBlbGVtZW50IHRvIHNob3cgc2Vjb25kYXJ5IG5hdnMgKi9cbiAgICAgIC5leHBhbmRlZCA+IC5uYXZfX21lbnUtcGFyZW50ICsgJiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qIFdoZW4gaW4gZGVza3RvcCwgcmVseSBvbiB0aGUgaG92ZXIgb3IgZm9jdXNlZCBzdGF0ZSBvZiB0aGUgcGFyZW50IGVsZW1lbnQgdG8gc2hvdyBzZWNvbmRhcnkgbmF2cyAqL1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tZGVza3RvcE5hdikge1xuICAgICAgLm5hdl9fbWVudS0tcHJpbWFyeSA+IGxpOmhvdmVyID4gLm5hdl9fbWVudS1wYXJlbnQgKyAmLFxuICAgICAgLm5hdl9fbWVudS0tcHJpbWFyeSA+IGxpLmV4cGFuZGVkID4gLm5hdl9fbWVudS1wYXJlbnQgKyAmIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyogVGVydGlhcnkgU3VibmF2cyAqL1xuXG4gIC5uYXZfX21lbnUtLXRlcnRpYXJ5IHtcblxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnJlYWtwb2ludC0tZGVza3RvcE5hdiAtIDEpIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMjVweDtcbiAgICB9XG5cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLWRlc2t0b3BOYXYpIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRibGFjaztcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICBwYWRkaW5nOiA1cHggMTBweDtcbiAgICB9XG5cbiAgICBsaSAubmF2X19tZW51LWl0ZW0ge1xuICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1kZXNrdG9wTmF2KSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMzBweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBBbHdheXMgcmVseSBvbiB0aGUgLmV4cGFuZGVkIGNsYXNzIG9mIHRoZSBwYXJlbnQgZWxlbWVudCB0byBzaG93IHRlcnRpYXJ5IG5hdnMgKi9cbiAgICAuZXhwYW5kZWQgPiAubmF2X19tZW51LXBhcmVudCArICYge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG4iXX0= */
