@import url("https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,600,600i,700,700i,800,800i");
@import url("/static/css/linearicons.css");
@import url("/static/css/cookieBubble.min.css");
body {
  margin: 0;
  padding: 0;
  background-color: #111;
  color: whitesmoke;
  background-size: cover;
  background-attachment: fixed;
  font-family: 'Open Sans', sans-serif;
  font-display: auto; }

@media only screen and (max-width: 600px) {
  .container {
    width: 100%;
    margin: initial; }
  .navbar {
    background: rgba(0, 0, 0, 0.5) !important; } }

.error {
  color: white;
  background: #e74c3c;
  padding: 5px;
  border-radius: 3px; }

.bodyContent {
  padding: 20px;
  padding-top: 70px; }
  @media only screen and (max-width: 600px) {
    .bodyContent {
      padding-top: 20px;
      margin-top: 50px; } }

.footer {
  margin: 10px; }
  .footer .container {
    border-top: solid 1px silver;
    padding: 15px;
    padding-left: 20px;
    padding-right: 20px;
    font-size: 11pt;
    color: whiteSmoke; }

.bottom_footer {
  position: absolute;
  bottom: 0;
  width: 100%;
  background: rgba(11, 11, 11, 0.5);
  padding: 8px;
  font-size: 10pt;
  color: white; }
  @media only screen and (max-width: 600px) {
    .bottom_footer {
      text-align: center;
      font-size: 8pt;
      position: fixed; }
      .bottom_footer .pull-right {
        float: initial;
        margin-top: 5px; } }

.container {
  max-width: 1200px;
  margin: 0 auto; }

.pageHeader {
  font-size: 20pt; }

.pageSubHeader {
  font-size: 12pt;
  color: #9c9c9c;
  font-style: italic; }

.cookieBubble {
  bottom: 44px; }

#masthead {
  width: 100vw;
  height: 100vh;
  display: block;
  background: #111;
  background-size: cover;
  background-image: url(/static/img/global/hands_on_dark.webp);
  overflow: hidden;
  padding-bottom: 50px;
  overflow-y: auto; }
  @media only screen and (max-width: 600px) {
    #masthead {
      padding-top: 128px;
      height: auto;
      min-height: 100vh; } }

.testimonial {
  display: flex;
  margin-bottom: 10px;
  flex-direction: column;
  opacity: 0;
  animation: show .2s linear 1 forwards; }

@keyframes show {
  0% {
    opacity: 0; }
  100% {
    opacity: 1; } }
  .testimonial .avatar {
    width: auto;
    word-wrap: break-word;
    text-align: left; }
    .testimonial .avatar img {
      display: none;
      width: 64px;
      height: 64px;
      border-radius: 100%; }
    .testimonial .avatar .name {
      padding: 5px;
      background: rgba(0, 0, 0, 0.5);
      padding-left: 10px;
      padding-right: 10px;
      display: inline-block;
      margin-left: 10px;
      border-top-left-radius: 5px;
      border-top-right-radius: 5px;
      font-size: 8pt; }
  .testimonial .content {
    background-color: rgba(255, 255, 255, 0.8);
    color: #111;
    padding: 10px;
    border-radius: 3px;
    text-align: left; }
    .testimonial .content .subject {
      margin-bottom: 5px;
      font-size: 12pt;
      display: none; }
      .testimonial .content .subject:empty, .testimonial .content .subject:blank {
        display: none; }
    .testimonial .content .message {
      font-size: 10pt;
      white-space: pre-line; }

label, .label {
  font-weight: 200;
  font-size: 13pt;
  display: inline-block;
  padding-bottom: 5px; }

.pull-right {
  float: right; }

* {
  box-sizing: border-box; }

nav {
  display: inline; }

a {
  color: #ff4343;
  text-decoration: none; }

input, textarea {
  padding: 5px;
  border-radius: 3px;
  font-family: inherit;
  border: solid 1px silver;
  width: 100%;
  outline: none; }
  input:active, input:focus, textarea:active, textarea:focus {
    border: solid 1px #c82626; }

button, .btn {
  color: black;
  font-family: inherit;
  padding: 5px;
  border-radius: 2px;
  padding-left: 10px;
  padding-right: 10px;
  border: none;
  background: white;
  border: solid 1px transparent;
  transition: border linear .2s;
  display: inline-block; }
  button:hover, .btn:hover {
    border-color: grey;
    transition: border linear .2s;
    cursor: pointer; }
  button.btn-red, .btn.btn-red {
    color: white;
    background: #c82626; }
    button.btn-red:hover, .btn.btn-red:hover {
      border-color: #8f1616; }
  button.btn-green, .btn.btn-green {
    color: white;
    background: #5AC041; }
    button.btn-green:hover, .btn.btn-green:hover {
      border-color: #459432; }

::-webkit-scrollbar {
  width: 12px; }

/* Handle */
::-webkit-scrollbar-thumb {
  border-radius: 2px;
  background-color: rgba(255, 255, 255, 0.3);
  transition: background-color .2s linear; }
  @media only screen and (max-width: 600px) {
    ::-webkit-scrollbar-thumb {
      background-color: rgba(255, 255, 255, 0.5); } }
  ::-webkit-scrollbar-thumb:hover {
    background-color: rgba(255, 255, 255, 0.7);
    transition: background-color .2s linear; }

::-webkit-scrollbar-thumb:window-inactive {
  background: silver; }

.navbar {
  position: fixed;
  left: 0;
  top: 0;
  width: 100vw;
  background-color: rgba(0, 0, 0, 0.5);
  background: linear-gradient(rgba(0, 0, 0, 0.65), transparent);
  color: white;
  padding: 15px;
  box-sizing: border-box;
  z-index: 20; }
  .navbar.solid {
    background: rgba(0, 0, 0, 0.6); }
  .navbar .logo {
    width: 150px;
    height: 35px;
    display: inline-block; }
    .navbar .logo img {
      height: 100%; }
    @media only screen and (max-width: 600px) {
      .navbar .logo {
        margin-bottom: 15px;
        width: 100%;
        text-align: center; } }
  .navbar .menu {
    display: block;
    float: right;
    color: white;
    margin: 0;
    font-size: 10pt;
    list-style: none;
    padding: 0; }
    @media only screen and (max-width: 600px) {
      .navbar .menu {
        width: 100%;
        text-align: center; } }
    .navbar .menu li {
      display: inline-block; }
    .navbar .menu a.item {
      display: inline-block;
      color: inherit;
      padding: 10px;
      padding-left: 15px;
      padding-right: 15px;
      border-bottom: solid 2px transparent; }
      .navbar .menu a.item:hover {
        transition: border .2s linear;
        border-bottom-color: white; }

#livechat {
  display: block;
  position: fixed;
  right: 60px;
  bottom: 55px;
  width: 80px;
  height: 80px; }
  #livechat .chatBubble {
    position: absolute;
    left: -130px;
    top: 25px;
    background: rgba(0, 0, 0, 0.5);
    width: 110px;
    padding: 5px;
    color: white;
    text-align: center;
    border-radius: 5px;
    animation: float ease-in-out 2s infinite; }

@keyframes float {
  0% {
    left: -135px; }
  50% {
    left: -130px; }
  100% {
    left: -135px; } }
  #livechat .button {
    box-shadow: 0 0 10px rgba(255, 0, 0, 0.5);
    border-radius: 100%;
    overflow: hidden;
    height: 80px; }
    #livechat .button img {
      height: 100%; }
    #livechat .button:hover {
      cursor: pointer; }

#home, #phone {
  background: #111; }
  #home .pageHeader, #phone .pageHeader {
    margin-top: 30px;
    margin-bottom: 15px; }
  #home .banner, #phone .banner {
    height: 100vh;
    overflow: hidden;
    position: relative;
    border-radius: 3px;
    background-size: cover;
    background-position: center;
    transition: background-image linear .2s; }
    #home .banner.background_1, #phone .banner.background_1 {
      background-image: url(/static/img/home/laptop_notepad.webp);
      transition: background-image linear .2s; }
    #home .banner.background_2, #phone .banner.background_2 {
      background-image: url(/static/img/home/business_laptop.webp);
      transition: background-image linear .2s; }
    #home .banner.background_3, #phone .banner.background_3 {
      background-image: url(/static/img/home/wordpress_laptop.webp);
      transition: background-image linear .2s; }
    #home .banner.background_4, #phone .banner.background_4 {
      background-image: url(/static/img/home/pingpong_laptop.webp);
      transition: background-image linear .2s; }
    #home .banner .homeContent, #phone .banner .homeContent {
      position: absolute;
      bottom: 50%;
      transform: translateY(50%);
      text-align: center;
      width: 100%;
      padding: 30px;
      background: rgba(0, 0, 0, 0.5);
      animation-delay: 1s;
      animation: linear homeContentFadeIn .5s forwards;
      opacity: 0; }
      #home .banner .homeContent .header, #phone .banner .homeContent .header {
        font-size: 20pt; }

@keyframes homeContentFadeIn {
  0% {
    opacity: 0; }
  100% {
    opacity: 1; } }
    #home .banner .phoneCallout, #phone .banner .phoneCallout {
      position: absolute;
      left: 50px;
      bottom: 50px;
      border: solid 1px red;
      box-shadow: 0px 0px 5px rgba(255, 0, 0, 0.5);
      border-radius: 5px;
      overflow: hidden; }
      @media only screen and (max-width: 600px) {
        #home .banner .phoneCallout, #phone .banner .phoneCallout {
          right: 50px; } }
      @media only screen and (max-height: 400px) {
        #home .banner .phoneCallout, #phone .banner .phoneCallout {
          left: 10px;
          bottom: 10px; } }
      #home .banner .phoneCallout a, #phone .banner .phoneCallout a {
        display: flex; }
      #home .banner .phoneCallout .image, #phone .banner .phoneCallout .image {
        overflow: hidden;
        width: 80px;
        height: 80px;
        background-color: rgba(0, 0, 0, 0.15);
        background-image: url(/static/img/home/phone_repair_callout.webp);
        background-size: cover;
        background-position: center; }
      #home .banner .phoneCallout .content, #phone .banner .phoneCallout .content {
        padding: 15px;
        background-color: rgba(0, 0, 0, 0.5);
        font-size: 10pt;
        color: white !important; }
        #home .banner .phoneCallout .content .title, #phone .banner .phoneCallout .content .title {
          font-size: 15pt; }
        @media only screen and (max-width: 600px) {
          #home .banner .phoneCallout .content, #phone .banner .phoneCallout .content {
            flex: 1; } }
    #home .banner img, #phone .banner img {
      position: absolute;
      bottom: 50%;
      transform: translateY(50%); }
  #home .contactDetails, #phone .contactDetails {
    padding: 10px; }
    #home .contactDetails div, #phone .contactDetails div {
      flex: 1;
      font-weight: 200;
      font-size: 13pt;
      margin: 10px; }
      @media only screen and (max-width: 600px) {
        #home .contactDetails div, #phone .contactDetails div {
          padding-top: 7px;
          padding-bottom: 7px; } }
      #home .contactDetails div .icon, #phone .contactDetails div .icon {
        background: #C82626;
        padding: 5px;
        border-radius: 3px; }
  #home .section, #phone .section {
    padding-bottom: 50px;
    padding-top: 50px;
    background-color: #1E1E1E; }
    @media only screen and (max-width: 600px) {
      #home .section, #phone .section {
        padding: 30px; } }
    @media only screen and (max-height: 400px) {
      #home .section, #phone .section {
        padding: 30px; } }
    #home .section.repair, #phone .section.repair {
      background-image: url(/static/img/home/section_repair.png);
      z-index: 10;
      position: relative;
      animation: ease-in-out 2s popup; }
      @media only screen and (max-width: 600px) {
        #home .section.repair, #phone .section.repair {
          animation: none; } }

@keyframes popup {
  0% {
    margin-top: 0px; }
  50% {
    margin-top: -100px; }
  100% {
    margin-top: 0px; } }
    #home .section.full-view, #phone .section.full-view {
      min-height: 100vh;
      padding-top: 70px; }
      @media only screen and (max-width: 600px) {
        #home .section.full-view, #phone .section.full-view {
          padding: 10px; } }
    #home .section .sectionTop, #phone .section .sectionTop {
      text-align: center;
      margin-bottom: 10px; }
      @media only screen and (max-width: 600px) {
        #home .section .sectionTop, #phone .section .sectionTop {
          padding: 30px; } }
    #home .section .sectionHeader, #phone .section .sectionHeader {
      font-size: 20pt;
      margin-bottom: 5px;
      font-weight: 300; }
      @media only screen and (max-width: 600px) {
        #home .section .sectionHeader, #phone .section .sectionHeader {
          text-align: center;
          margin-bottom: 15px; } }
  #home .section.services, #phone .section.services {
    background-image: url(/static/img/global/104a_dark.webp);
    background-position: 50% 50%;
    background-size: cover;
    display: flex;
    align-items: center; }
    #home .section.services .service, #phone .section.services .service {
      margin: 10px;
      background: rgba(17, 17, 17, 0.7);
      border-radius: 3px;
      padding: 10px;
      display: inline-block;
      width: 31%; }
      @media only screen and (max-width: 600px) {
        #home .section.services .service, #phone .section.services .service {
          width: auto;
          display: block; } }
      @media only screen and (max-height: 400px) {
        #home .section.services .service, #phone .section.services .service {
          width: 45%; } }
      #home .section.services .service .serviceIcon, #phone .section.services .service .serviceIcon {
        display: inline-block;
        color: white;
        width: 64px;
        height: 64px;
        background: linear-gradient(#d6201d, #840503);
        border: solid 2px #a8110e;
        text-align: center;
        line-height: 64px;
        border-radius: 100%;
        font-size: 23pt;
        transition: border-color ease-in .1s; }
      #home .section.services .service .details, #phone .section.services .service .details {
        display: inline-block;
        margin-left: 10px; }
        #home .section.services .service .details .serviceName, #home .section.services .service .details .serviceInfo, #phone .section.services .service .details .serviceName, #phone .section.services .service .details .serviceInfo {
          color: white; }
        #home .section.services .service .details .serviceInfo, #phone .section.services .service .details .serviceInfo {
          font-size: 9pt; }
    #home .section.services .service:hover, #phone .section.services .service:hover {
      background: rgba(27, 27, 27, 0.7); }
      #home .section.services .service:hover .serviceIcon, #phone .section.services .service:hover .serviceIcon {
        cursor: pointer;
        border-color: #E31D1A;
        transition: border-color linear .1s; }
  #home .section.testimonials, #phone .section.testimonials {
    background-image: url(/static/img/global/section_feedback.png); }
    #home .section.testimonials .feedback, #phone .section.testimonials .feedback {
      padding: 15px;
      background: rgba(17, 17, 17, 0.7);
      border-radius: 3px;
      display: flex;
      color: white; }
      #home .section.testimonials .feedback .avatar, #phone .section.testimonials .feedback .avatar {
        padding-right: 5px; }
        #home .section.testimonials .feedback .avatar img, #phone .section.testimonials .feedback .avatar img {
          width: 64px;
          height: 64px;
          border-radius: 100%; }
      #home .section.testimonials .feedback .content, #phone .section.testimonials .feedback .content {
        flex: 1;
        padding: 5px; }
        #home .section.testimonials .feedback .content .name, #phone .section.testimonials .feedback .content .name {
          font-size: 11pt;
          color: #e74b4b; }
        #home .section.testimonials .feedback .content .message, #phone .section.testimonials .feedback .content .message {
          font-size: 10pt; }
  #home .section.contact, #phone .section.contact {
    background: url(/static/img/global/map.webp);
    position: relative; }
    #home .section.contact .contactContent, #phone .section.contact .contactContent {
      position: absolute;
      right: 50%;
      bottom: 50%;
      transform: translate(50%, 50%);
      color: white;
      background: rgba(20, 20, 20, 0.75);
      padding: 25px;
      border-radius: 3px;
      display: flex;
      flex-direction: row; }
      #home .section.contact .contactContent .pageHeader, #phone .section.contact .contactContent .pageHeader {
        padding-bottom: 5px;
        margin-bottom: 5px;
        border-bottom: solid 1px silver; }
      @media only screen and (max-width: 600px) {
        #home .section.contact .contactContent, #phone .section.contact .contactContent {
          width: initial;
          position: relative;
          right: auto;
          bottom: auto;
          transform: none;
          flex-direction: column;
          min-width: initial;
          max-width: initial;
          margin: 20px; } }
      @media only screen and (max-height: 400px) {
        #home .section.contact .contactContent, #phone .section.contact .contactContent {
          width: initial;
          position: relative;
          right: auto;
          bottom: auto;
          transform: none;
          flex-direction: column;
          min-width: initial;
          max-width: initial;
          margin: 20px; } }
      #home .section.contact .contactContent .leftPane .contactHeader, #home .section.contact .contactContent .rightPane .contactHeader, #phone .section.contact .contactContent .leftPane .contactHeader, #phone .section.contact .contactContent .rightPane .contactHeader {
        font-size: 18pt;
        font-weight: 200;
        margin-bottom: 5px; }
        @media only screen and (max-width: 600px) {
          #home .section.contact .contactContent .leftPane .contactHeader, #home .section.contact .contactContent .rightPane .contactHeader, #phone .section.contact .contactContent .leftPane .contactHeader, #phone .section.contact .contactContent .rightPane .contactHeader {
            text-align: center; } }
      #home .section.contact .contactContent .leftPane, #phone .section.contact .contactContent .leftPane {
        flex: 1;
        padding-right: 25px;
        border-right: solid 1px #c9c9c9; }
        @media only screen and (max-width: 600px) {
          #home .section.contact .contactContent .leftPane, #phone .section.contact .contactContent .leftPane {
            border-right: none;
            border-bottom: solid 1px #c9c9c9;
            padding-right: 0;
            padding-bottom: 25px; } }
        @media only screen and (max-height: 400px) {
          #home .section.contact .contactContent .leftPane, #phone .section.contact .contactContent .leftPane {
            border-right: none;
            border-bottom: solid 1px #c9c9c9;
            padding-right: 0;
            padding-bottom: 25px; } }
      #home .section.contact .contactContent .rightPane, #phone .section.contact .contactContent .rightPane {
        width: 280px;
        padding-left: 25px; }
        @media only screen and (max-width: 600px) {
          #home .section.contact .contactContent .rightPane, #phone .section.contact .contactContent .rightPane {
            width: auto;
            padding-top: 25px;
            padding-left: 0; } }

body.homepage .bottom_footer {
  position: relative; }

#masthead.contact {
  background-image: url(/static/img/global/map.webp); }
  #masthead.contact .contactContent {
    position: absolute;
    right: 50%;
    bottom: 50%;
    transform: translate(50%, 50%);
    color: white;
    background: rgba(20, 20, 20, 0.75);
    max-width: 1200px;
    min-width: 840px;
    padding: 25px;
    border-radius: 3px;
    display: flex;
    flex-direction: row; }
    #masthead.contact .contactContent .pageHeader {
      padding-bottom: 5px;
      margin-bottom: 5px;
      border-bottom: solid 1px silver; }
    @media only screen and (max-width: 600px) {
      #masthead.contact .contactContent {
        width: initial;
        position: relative;
        right: auto;
        bottom: auto;
        transform: none;
        flex-direction: column;
        min-width: initial;
        max-width: initial;
        margin: 20px; } }
    @media only screen and (max-height: 400px) {
      #masthead.contact .contactContent {
        width: initial;
        position: relative;
        right: auto;
        bottom: auto;
        transform: none;
        flex-direction: column;
        min-width: initial;
        max-width: initial;
        margin: 20px; } }
    #masthead.contact .contactContent .leftPane .contactHeader, #masthead.contact .contactContent .rightPane .contactHeader {
      font-size: 18pt;
      font-weight: 200;
      margin-bottom: 5px; }
    #masthead.contact .contactContent .leftPane {
      flex: 1;
      padding-right: 25px;
      border-right: solid 1px #c9c9c9; }
      @media only screen and (max-width: 600px) {
        #masthead.contact .contactContent .leftPane {
          border-right: none;
          border-bottom: solid 1px #c9c9c9;
          padding-right: 0;
          padding-bottom: 25px; } }
    #masthead.contact .contactContent .rightPane {
      width: 280px;
      padding-left: 25px; }
      @media only screen and (max-width: 600px) {
        #masthead.contact .contactContent .rightPane {
          width: auto;
          padding-top: 25px;
          padding-left: 0; } }

.noticeContent {
  position: absolute;
  right: 50%;
  bottom: 50%;
  transform: translate(50%, 50%);
  width: 600px;
  background: rgba(20, 20, 20, 0.25);
  color: whiteSmoke;
  padding: 25px;
  border-radius: 3px; }
  .noticeContent .pageHeader {
    padding-bottom: 5px;
    margin-bottom: 5px;
    border-bottom: solid 1px #cfcfcf; }

#masthead.services {
  background-image: url(/static/img/global/104a_dark.webp);
  text-align: center;
  color: white;
  font-weight: 200; }
  #masthead.services .pageHeader {
    margin-bottom: 30px;
    flex: 100%; }
    @media only screen and (max-width: 600px) {
      #masthead.services .pageHeader {
        font-size: 15pt; } }
  #masthead.services .container {
    display: flex;
    justify-content: center;
    align-content: center;
    max-width: 1000px;
    flex-wrap: wrap; }
  #masthead.services .qualityGuaranteed {
    padding: 10px;
    width: 100%;
    background: rgba(0, 0, 0, 0.5);
    font-weight: 500;
    color: white;
    border-radius: 3px; }
    @media only screen and (max-width: 600px) {
      #masthead.services .qualityGuaranteed {
        background: none; } }
  #masthead.services .service {
    padding: 10px;
    background-color: #C82626;
    background: linear-gradient(rgba(255, 84, 84, 0.75), rgba(200, 38, 38, 0.75));
    border-radius: 5px;
    display: inline-block;
    margin: 10px;
    width: 180px;
    height: 180px;
    color: white;
    overflow: hidden;
    cursor: pointer;
    background-repeat: no-repeat;
    background-size: cover;
    border: solid 2px transparent;
    transition: border linear .75s;
    transform: scale(0, 0);
    animation: appear .1s 1;
    animation-fill-mode: forwards; }
    @media only screen and (max-width: 600px) {
      #masthead.services .service {
        width: 100px;
        height: 100px;
        margin: 0;
        padding: 5px; } }

@keyframes appear {
  0% {
    transform: scale(0, 0); }
  100% {
    transform: scale(1, 1); } }
    #masthead.services .service:hover {
      border-color: white;
      transition: border linear .2s; }
    #masthead.services .service .serviceIcon {
      font-size: 70px;
      align-content: center;
      text-align: center;
      flex: 1;
      padding-top: 5px; }
      @media only screen and (max-width: 600px) {
        #masthead.services .service .serviceIcon {
          font-size: 32px; } }
    #masthead.services .service .serviceName {
      flex: 1;
      text-align: center;
      padding-top: 10px;
      font-size: 12pt; }
      @media only screen and (max-width: 600px) {
        #masthead.services .service .serviceName {
          font-size: 9pt;
          padding-top: 5px; } }
    #masthead.services .service .serviceInfo {
      flex: 1;
      text-align: center;
      padding: 5px;
      font-weight: 200;
      font-size: 8pt; }
      @media only screen and (max-width: 600px) {
        #masthead.services .service .serviceInfo {
          display: none; } }

#masthead.serviceInfo .serviceContent {
  position: absolute;
  right: 50%;
  bottom: 50%;
  transform: translate(50%, 50%);
  display: flex;
  min-width: 900px;
  flex-direction: column; }
  @media only screen and (max-width: 600px) {
    #masthead.serviceInfo .serviceContent {
      position: relative;
      right: initial;
      bottom: initial;
      transform: none;
      min-width: 200px; } }
  #masthead.serviceInfo .serviceContent .row.contentRow {
    display: flex;
    margin-top: 10px;
    margin-bottom: 10px; }
    @media only screen and (max-width: 600px) {
      #masthead.serviceInfo .serviceContent .row.contentRow {
        flex-direction: column; } }
  #masthead.serviceInfo .serviceContent .row .panelHeader {
    font-size: 22pt; }
  #masthead.serviceInfo .serviceContent .row .panelSubHeader {
    font-size: 12pt;
    font-weight: 200; }
    @media only screen and (max-width: 600px) {
      #masthead.serviceInfo .serviceContent .row .panelSubHeader {
        font-size: 11pt; } }
  #masthead.serviceInfo .serviceContent .row .leftPanel {
    width: 260px; }
    @media only screen and (max-width: 600px) {
      #masthead.serviceInfo .serviceContent .row .leftPanel {
        width: auto; } }
    #masthead.serviceInfo .serviceContent .row .leftPanel .serviceImage {
      width: 250px;
      height: 250px;
      overflow: hidden;
      border-radius: 3px;
      background: rgba(0, 0, 0, 0.5); }
      #masthead.serviceInfo .serviceContent .row .leftPanel .serviceImage img {
        height: 100%;
        position: relative;
        left: 50%;
        transform: translateX(-50%); }
      @media only screen and (max-width: 600px) {
        #masthead.serviceInfo .serviceContent .row .leftPanel .serviceImage {
          width: auto;
          margin-bottom: 10px; } }
  #masthead.serviceInfo .serviceContent .row .rightPanel {
    display: flex;
    flex-direction: column;
    flex: 1; }
    #masthead.serviceInfo .serviceContent .row .rightPanel .panelContent {
      padding: 10px;
      background: rgba(20, 20, 20, 0.4);
      flex: 1;
      border-radius: 3px;
      font-size: 11pt;
      font-weight: 200;
      height: 250px; }
      #masthead.serviceInfo .serviceContent .row .rightPanel .panelContent a {
        display: inline-block; }
      @media only screen and (max-width: 600px) {
        #masthead.serviceInfo .serviceContent .row .rightPanel .panelContent {
          height: auto; } }
  #masthead.serviceInfo .serviceContent .row .btn {
    margin-left: 10px; }

#masthead.testimonials {
  background-image: url(/static/img/testimonials/store.webp);
  text-align: center;
  color: white; }
  #masthead.testimonials .pageHeader {
    margin-bottom: 5px;
    font-size: 20pt; }
  #masthead.testimonials .pageSubHeader {
    margin-bottom: 20px;
    color: whiteSmoke; }
  #masthead.testimonials .columns {
    display: flex;
    overflow-y: auto;
    max-height: 80vh; }
    @media only screen and (max-width: 600px) {
      #masthead.testimonials .columns {
        flex-direction: column;
        overflow: initial;
        max-height: none; } }
    #masthead.testimonials .columns .column {
      flex: 1;
      margin-bottom: 20px;
      display: flex;
      flex-direction: column; }
      @media only screen and (max-width: 600px) {
        #masthead.testimonials .columns .column {
          display: block;
          padding: 5px; } }
      #masthead.testimonials .columns .column:first-child {
        margin-right: 20px; }
        @media only screen and (max-width: 600px) {
          #masthead.testimonials .columns .column:first-child {
            margin-right: 0; } }
      #masthead.testimonials .columns .column:last-child {
        margin-left: 20px; }
        @media only screen and (max-width: 600px) {
          #masthead.testimonials .columns .column:last-child {
            margin-left: 0;
            margin-bottom: 0; } }

#masthead.privacyPolicy {
  background: linear-gradient(#313131, black); }

#phone .banner.background_1 {
  background-image: url(/static/img/fixmyphone/background_1.webp);
  transition: background-image linear .2s; }

#phone .banner.background_2 {
  background-image: url(/static/img/fixmyphone/background_2.webp);
  transition: background-image linear .2s; }

#phone .banner.background_3 {
  background-image: url(/static/img/fixmyphone/background_3.webp);
  transition: background-image linear .2s; }

#phone .banner.background_4 {
  background-image: url(/static/img/fixmyphone/background_1.webp);
  transition: background-image linear .2s; }

#phone .section.services {
  background-image: url(/static/img/fixmyphone/background_3_dark.webp); }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGUuY3NzIiwic291cmNlcyI6WyJzdHlsZS5zY3NzIiwicGFydGlhbHMvZm9udHMuc2NzcyIsImJhc2Uuc2NzcyIsInBhcnRpYWxzL2VsZW1lbnRzLnNjc3MiLCJwYXJ0aWFscy9uYXZiYXIuc2NzcyIsInBhcnRpYWxzL2xpdmVjaGF0LnNjc3MiLCJwYWdlcy9ob21lLnNjc3MiLCJwYWdlcy9jb250YWN0LnNjc3MiLCJwYWdlcy9ub3RpY2Uuc2NzcyIsInBhZ2VzL3NlcnZpY2VzLnNjc3MiLCJwYWdlcy90ZXN0aW1vbmlhbHMuc2NzcyIsInBhZ2VzL3ByaXZhY3ktcG9saWN5LnNjc3MiLCJwYWdlcy9waG9uZS5zY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIlxuLy8gRm9udHMgJiBJY29uc1xuQGltcG9ydCAncGFydGlhbHMvZm9udHMnO1xuXG4vLyBCYXNlIFN0eWxpbmdcbkBpbXBvcnQgJ2Jhc2UnO1xuXG4vLyBVSSBFbGVtZW50c1xuQGltcG9ydCAncGFydGlhbHMvZWxlbWVudHMnO1xuQGltcG9ydCAncGFydGlhbHMvbmF2YmFyJztcbkBpbXBvcnQgJ3BhcnRpYWxzL2xpdmVjaGF0JztcblxuLy8gUGFnZXNcbkBpbXBvcnQgJ3BhZ2VzL2hvbWUnO1xuQGltcG9ydCAncGFnZXMvY29udGFjdCc7XG5AaW1wb3J0ICdwYWdlcy9ub3RpY2UnO1xuQGltcG9ydCAncGFnZXMvc2VydmljZXMnO1xuQGltcG9ydCAncGFnZXMvdGVzdGltb25pYWxzJztcbkBpbXBvcnQgJ3BhZ2VzL3ByaXZhY3ktcG9saWN5JztcbkBpbXBvcnQgJ3BhZ2VzL3Bob25lJzsiLCJAaW1wb3J0IHVybCgnaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PU9wZW4rU2FuczozMDAsMzAwaSw0MDAsNDAwaSw2MDAsNjAwaSw3MDAsNzAwaSw4MDAsODAwaScpO1xuQGltcG9ydCB1cmwoJy9zdGF0aWMvY3NzL2xpbmVhcmljb25zLmNzcycpO1xuQGltcG9ydCB1cmwoJy9zdGF0aWMvY3NzL2Nvb2tpZUJ1YmJsZS5taW4uY3NzJyk7IiwiYm9keSB7XG4gICAgbWFyZ2luOjA7XG4gICAgcGFkZGluZzowO1xuICAgIGJhY2tncm91bmQtY29sb3I6IzExMTtcbiAgICBjb2xvcjp3aGl0ZXNtb2tlO1xuICAgIGJhY2tncm91bmQtc2l6ZTpjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGZpeGVkO1xuICAgIGZvbnQtZmFtaWx5OiAnT3BlbiBTYW5zJywgc2Fucy1zZXJpZjtcbiAgICBmb250LWRpc3BsYXk6IGF1dG87XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gICAgLmNvbnRhaW5lciB7XG4gICAgICAgIHdpZHRoOjEwMCU7XG4gICAgICAgIG1hcmdpbjppbml0aWFsO1xuICAgIH1cbiAgICAubmF2YmFyIHtcbiAgICAgICAgYmFja2dyb3VuZDpyZ2JhKDAsMCwwLC41KSAhaW1wb3J0YW50O1xuICAgIH1cbn1cbi5lcnJvciB7XG4gICAgY29sb3I6d2hpdGU7XG4gICAgYmFja2dyb3VuZDpyZ2IoMjMxLDc2LDYwKTtcbiAgICBwYWRkaW5nOjVweDtcbiAgICBib3JkZXItcmFkaXVzOjNweDtcbn0iLCIuYm9keUNvbnRlbnQgeyAgXG4gICAgcGFkZGluZzoyMHB4O1xuICAgIHBhZGRpbmctdG9wOjcwcHg7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuICAgICAgICBwYWRkaW5nLXRvcDoyMHB4O1xuICAgICAgICBtYXJnaW4tdG9wOiA1MHB4O1xuICAgIH1cbn1cbi5mb290ZXIge1xuICAgIG1hcmdpbjoxMHB4O1xuICAgIC5jb250YWluZXIge1xuICAgICAgICBib3JkZXItdG9wOnNvbGlkIDFweCBzaWx2ZXI7XG4gICAgICAgIHBhZGRpbmc6MTVweDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OjIwcHg7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6MjBweDtcbiAgICAgICAgZm9udC1zaXplOjExcHQ7XG4gICAgICAgIGNvbG9yOndoaXRlU21va2U7XG4gICAgfVxufVxuLmJvdHRvbV9mb290ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206MDtcbiAgICB3aWR0aDoxMDAlO1xuICAgIGJhY2tncm91bmQ6cmdiYSgxMSwxMSwxMSwuNSk7XG4gICAgcGFkZGluZzogOHB4O1xuICAgIGZvbnQtc2l6ZTogMTBwdDtcbiAgICBjb2xvcjp3aGl0ZTtcblxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgICAgICAgdGV4dC1hbGlnbjpjZW50ZXI7XG4gICAgICAgIGZvbnQtc2l6ZTo4cHQ7XG4gICAgICAgIHBvc2l0aW9uOmZpeGVkO1xuICAgICAgICAucHVsbC1yaWdodCB7XG4gICAgICAgICAgICBmbG9hdDppbml0aWFsO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDo1cHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5jb250YWluZXIge1xuICAgIG1heC13aWR0aDoxMjAwcHg7XG4gICAgbWFyZ2luOjAgYXV0bztcbn1cbi5wYWdlSGVhZGVyIHtcbiAgICBmb250LXNpemU6MjBwdDtcbn1cbi5wYWdlU3ViSGVhZGVyIHtcbiAgICBmb250LXNpemU6MTJwdDtcbiAgICBjb2xvcjpyZ2IoMTU2LCAxNTYsIDE1Nik7XG4gICAgZm9udC1zdHlsZTppdGFsaWM7XG59XG4uY29va2llQnViYmxlIHtcbiAgICBib3R0b206IDQ0cHg7XG59XG4jbWFzdGhlYWQge1xuICAgIHdpZHRoOjEwMHZ3O1xuICAgIGhlaWdodDoxMDB2aDtcbiAgICBkaXNwbGF5OmJsb2NrO1xuICAgIGJhY2tncm91bmQ6IzExMTtcbiAgICBcbiAgICBiYWNrZ3JvdW5kLXNpemU6Y292ZXI7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC9zdGF0aWMvaW1nL2dsb2JhbC9oYW5kc19vbl9kYXJrLndlYnApO1xuXG4gICAgb3ZlcmZsb3c6aGlkZGVuO1xuXG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuICAgICAgICBwYWRkaW5nLXRvcDoxMjhweDtcbiAgICAgICAgaGVpZ2h0OmF1dG87XG4gICAgICAgIG1pbi1oZWlnaHQ6MTAwdmg7XG4gICAgfVxuICAgIFxuICAgIHBhZGRpbmctYm90dG9tOjUwcHg7XG4gICAgb3ZlcmZsb3cteTphdXRvO1xuXG59XG5cbi50ZXN0aW1vbmlhbCB7XG4gICAgZGlzcGxheTpmbGV4O1xuICAgIG1hcmdpbi1ib3R0b206MTBweDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgb3BhY2l0eTowO1xuICAgIEBrZXlmcmFtZXMgc2hvdyB7XG4gICAgICAgIDAlIHsgb3BhY2l0eTowOyB9XG4gICAgICAgIDEwMCUgeyBvcGFjaXR5OiAxOyB9XG4gICAgfVxuICAgIGFuaW1hdGlvbjogc2hvdyAuMnMgbGluZWFyIDEgZm9yd2FyZHM7XG5cbiAgICAuYXZhdGFyIHtcbiAgICAgICAgd2lkdGg6YXV0bztcbiAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBpbWcge1xuICAgICAgICAgICAgZGlzcGxheTpub25lO1xuICAgICAgICAgICAgd2lkdGg6NjRweDtcbiAgICAgICAgICAgIGhlaWdodDo2NHB4O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czoxMDAlO1xuICAgICAgICB9XG4gICAgICAgIC5uYW1lIHtcbiAgICAgICAgICAgIHBhZGRpbmc6NXB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZDpyZ2JhKDAsMCwwLC41KTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDoxMHB4O1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDoxMHB4O1xuICAgICAgICAgICAgZGlzcGxheTppbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDoxMHB4O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNXB4O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDVweDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogOHB0O1xuICAgICAgICB9XG4gICAgfVxuICAgIC5jb250ZW50IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC44KTtcbiAgICAgICAgY29sb3I6IzExMTtcbiAgICAgICAgcGFkZGluZzoxMHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOjNweDtcbiAgICAgICAgdGV4dC1hbGlnbjpsZWZ0O1xuXG5cbiAgICAgICAgLnN1YmplY3Qge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTo1cHg7XG4gICAgICAgICAgICBmb250LXNpemU6MTJwdDtcblxuICAgICAgICAgICAgZGlzcGxheTpub25lOyAvLyBXZSBkb24ndCBuZWVkIHRvIHNlZSBpdCBmb3Igbm93XG5cbiAgICAgICAgICAgICY6ZW1wdHksICY6Ymxhbmsge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6bm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAubWVzc2FnZSB7XG4gICAgICAgICAgICBmb250LXNpemU6MTBwdDtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtbGluZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxubGFiZWwsIC5sYWJlbCB7XG4gICAgZm9udC13ZWlnaHQ6MjAwO1xuICAgIGZvbnQtc2l6ZToxM3B0O1xuICAgIGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuICAgIHBhZGRpbmctYm90dG9tOjVweDtcbn1cblxuLnB1bGwtcmlnaHQge1xuICAgIGZsb2F0OnJpZ2h0O1xufVxuXG4qIHtcbiAgICBib3gtc2l6aW5nOmJvcmRlci1ib3g7XG59XG5uYXYge1xuICAgIGRpc3BsYXk6aW5saW5lO1xufVxuYSB7XG4gICAgY29sb3I6cmdiKDI1NSwgNjcsIDY3KTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5pbnB1dCwgdGV4dGFyZWEge1xuICAgIHBhZGRpbmc6NXB4O1xuICAgIGJvcmRlci1yYWRpdXM6M3B4O1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgIGJvcmRlcjpzb2xpZCAxcHggc2lsdmVyO1xuICAgIHdpZHRoOjEwMCU7XG4gICAgb3V0bGluZTpub25lO1xuICAgICY6YWN0aXZlLCAmOmZvY3VzIHtcbiAgICAgICAgYm9yZGVyOnNvbGlkIDFweCByZ2IoMjAwLCAzOCwgMzgpO1xuICAgIH1cbn1cbmJ1dHRvbiwgLmJ0biB7XG4gICAgY29sb3I6YmxhY2s7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgcGFkZGluZzo1cHg7XG4gICAgYm9yZGVyLXJhZGl1czoycHg7XG4gICAgcGFkZGluZy1sZWZ0OjEwcHg7XG4gICAgcGFkZGluZy1yaWdodDoxMHB4O1xuICAgIGJvcmRlcjpub25lO1xuICAgIGJhY2tncm91bmQ6d2hpdGU7XG4gICAgYm9yZGVyOnNvbGlkIDFweCB0cmFuc3BhcmVudDtcbiAgICB0cmFuc2l0aW9uOmJvcmRlciBsaW5lYXIgLjJzO1xuICAgIGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuICAgICY6aG92ZXIge1xuICAgICAgICBib3JkZXItY29sb3I6Z3JleTtcbiAgICAgICAgdHJhbnNpdGlvbjpib3JkZXIgbGluZWFyIC4ycztcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgICYuYnRuLXJlZCB7XG4gICAgICAgIGNvbG9yOndoaXRlO1xuICAgICAgICBiYWNrZ3JvdW5kOnJnYigyMDAsIDM4LCAzOCk7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOnJnYigxNDMsIDIyLCAyMik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLmJ0bi1ncmVlbiB7XG4gICAgICAgIGNvbG9yOndoaXRlO1xuICAgICAgICBiYWNrZ3JvdW5kOiM1QUMwNDE7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOnJnYig2OSwgMTQ4LCA1MCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgIHdpZHRoOiAxMnB4O1xufVxuXG4vKiBIYW5kbGUgKi9cbjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LC4zKTtcbiAgICB0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjJzIGxpbmVhcjtcblxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwuNSk7XG4gICAgfVxuICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpO1xuICAgICAgICB0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjJzIGxpbmVhcjtcbiAgICB9XG59XG46Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOndpbmRvdy1pbmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZDogc2lsdmVyOyBcbn0iLCIubmF2YmFyIHtcbiAgICBwb3NpdGlvbjpmaXhlZDtcbiAgICBsZWZ0OjA7XG4gICAgdG9wOjA7XG4gICAgd2lkdGg6MTAwdnc7XG4gICAgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsIDAsIDAsIC41KTtcbiAgICBiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCggcmdiYSgwLDAsMCwuNjUpLCB0cmFuc3BhcmVudCk7XG4gICAgY29sb3I6d2hpdGU7XG4gICAgcGFkZGluZzoxNXB4O1xuICAgIGJveC1zaXppbmc6Ym9yZGVyLWJveDtcbiAgICB6LWluZGV4OjIwO1xuXG4gICAgJi5zb2xpZCB7XG4gICAgICAgIGJhY2tncm91bmQ6cmdiYSgwLDAsMCwuNik7XG4gICAgfVxuXG4gICAgLmxvZ28ge1xuICAgICAgICAvLyA6RFxuICAgICAgICB3aWR0aDoxNTBweDtcbiAgICAgICAgaGVpZ2h0OjM1cHg7XG4gICAgICAgIGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuICAgICAgICBpbWcge1xuICAgICAgICAgICAgaGVpZ2h0OjEwMCU7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206MTVweDtcbiAgICAgICAgICAgIHdpZHRoOjEwMCU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOmNlbnRlcjtcbiAgICAgICAgfVxuICAgIH1cbiAgICBcbiAgICAubWVudSB7XG4gICAgICAgIGRpc3BsYXk6YmxvY2s7XG4gICAgICAgIGZsb2F0OnJpZ2h0O1xuICAgICAgICBjb2xvcjp3aGl0ZTtcbiAgICAgICAgbWFyZ2luOjA7XG4gICAgICAgIGZvbnQtc2l6ZToxMHB0O1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICBwYWRkaW5nOjA7XG5cbiAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuICAgICAgICAgICAgd2lkdGg6MTAwJTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuXG4gICAgICAgIH1cbiAgICAgICAgYS5pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGNvbG9yOmluaGVyaXQ7XG4gICAgICAgICAgICBwYWRkaW5nOjEwcHg7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6MTVweDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6MTVweDtcblxuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTpzb2xpZCAycHggdHJhbnNwYXJlbnQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246Ym9yZGVyIC4ycyBsaW5lYXI7XG5cbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn0iLCIjbGl2ZWNoYXQge1xuICAgIGRpc3BsYXk6YmxvY2s7XG5cbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgcmlnaHQ6NjBweDtcbiAgICBib3R0b206NTVweDtcbiAgICBcbiAgICB3aWR0aDo4MHB4O1xuICAgIGhlaWdodDo4MHB4O1xuXG4gICAgLmNoYXRCdWJibGUge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6LTEzMHB4O1xuICAgICAgICB0b3A6MjVweDtcbiAgICAgICAgYmFja2dyb3VuZDpyZ2JhKDAsMCwwLC41KTtcbiAgICAgICAgd2lkdGg6MTEwcHg7XG4gICAgICAgIHBhZGRpbmc6NXB4O1xuICAgICAgICBjb2xvcjp3aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOjVweDtcblxuICAgICAgICBhbmltYXRpb246IGZsb2F0IGVhc2UtaW4tb3V0IDJzIGluZmluaXRlO1xuXG4gICAgICAgIEBrZXlmcmFtZXMgZmxvYXQge1xuICAgICAgICAgICAgMCUgeyBsZWZ0OiAtMTM1cHg7IH1cbiAgICAgICAgICAgIDUwJSB7IGxlZnQ6IC0xMzBweDsgfVxuICAgICAgICAgICAgMTAwJSB7IGxlZnQ6IC0xMzVweDsgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC5idXR0b24ge1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMTBweCByZ2JhKDI1NSwwLDAsLjUpO1xuICAgICAgICBib3JkZXItcmFkaXVzOjEwMCU7XG4gICAgICAgIG92ZXJmbG93OmhpZGRlbjtcbiAgICAgICAgaGVpZ2h0OjgwcHg7XG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICBoZWlnaHQ6MTAwJTtcbiAgICAgICAgfVxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGN1cnNvcjpwb2ludGVyO1xuICAgICAgICB9XG4gICAgfVxuICAgIFxufSIsIiNob21lLCAjcGhvbmUge1xuICAgIGJhY2tncm91bmQ6IzExMTtcbiAgICAucGFnZUhlYWRlciB7XG4gICAgICAgIG1hcmdpbi10b3A6MzBweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbToxNXB4O1xuICAgIH1cblxuICAgIC5iYW5uZXIge1xuICAgICAgICBoZWlnaHQ6MTAwdmg7XG4gICAgICAgIG92ZXJmbG93OmhpZGRlbjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBib3JkZXItcmFkaXVzOjNweDtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICB0cmFuc2l0aW9uOmJhY2tncm91bmQtaW1hZ2UgbGluZWFyIC4ycztcblxuICAgICAgICAmLmJhY2tncm91bmRfMSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOnVybCgvc3RhdGljL2ltZy9ob21lL2xhcHRvcF9ub3RlcGFkLndlYnApO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWltYWdlIGxpbmVhciAuMnM7XG4gICAgICAgIH1cbiAgICAgICAgJi5iYWNrZ3JvdW5kXzIge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTp1cmwoL3N0YXRpYy9pbWcvaG9tZS9idXNpbmVzc19sYXB0b3Aud2VicCk7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOmJhY2tncm91bmQtaW1hZ2UgbGluZWFyIC4ycztcbiAgICAgICAgfVxuICAgICAgICAmLmJhY2tncm91bmRfMyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOnVybCgvc3RhdGljL2ltZy9ob21lL3dvcmRwcmVzc19sYXB0b3Aud2VicCk7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOmJhY2tncm91bmQtaW1hZ2UgbGluZWFyIC4ycztcbiAgICAgICAgfVxuICAgICAgICAmLmJhY2tncm91bmRfNCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOnVybCgvc3RhdGljL2ltZy9ob21lL3Bpbmdwb25nX2xhcHRvcC53ZWJwKTtcbiAgICAgICAgICAgIHRyYW5zaXRpb246YmFja2dyb3VuZC1pbWFnZSBsaW5lYXIgLjJzO1xuICAgICAgICB9XG5cbiAgICAgICAgLmhvbWVDb250ZW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTo1MCU7XG4gICAgICAgICAgICB0cmFuc2Zvcm06dHJhbnNsYXRlWSg1MCUpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6MTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmc6MzBweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6cmdiYSgwLCAwLCAwLCAuNSk7XG4gICAgICAgICAgICAuaGVhZGVyIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6MjBwdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbjogbGluZWFyIGhvbWVDb250ZW50RmFkZUluIC41cyBmb3J3YXJkcztcbiAgICAgICAgICAgIG9wYWNpdHk6MDtcbiAgICAgICAgICAgIEBrZXlmcmFtZXMgaG9tZUNvbnRlbnRGYWRlSW4ge1xuICAgICAgICAgICAgICAgIDAlIHsgb3BhY2l0eTowOyB9XG4gICAgICAgICAgICAgICAgMTAwJSB7IG9wYWNpdHk6MSB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLnBob25lQ2FsbG91dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OjUwcHg7XG4gICAgICAgICAgICBib3R0b206NTBweDtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgYm9yZGVyOnNvbGlkIDFweCByZWQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OjBweCAwcHggNXB4IHJnYmEoMjU1LCAwLCAwLCAuNSk7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOjVweDtcbiAgICAgICAgICAgIG92ZXJmbG93OmhpZGRlbjtcblxuICAgICAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuICAgICAgICAgICAgICAgIHJpZ2h0OjUwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtaGVpZ2h0OiA0MDBweCkge1xuICAgICAgICAgICAgICAgIGxlZnQ6MTBweDtcbiAgICAgICAgICAgICAgICBib3R0b206MTBweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTpmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLmltYWdlIHtcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzpoaWRkZW47XG4gICAgICAgICAgICAgICAgd2lkdGg6ODBweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6ODBweDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwgMCwgMCwgLjE1KTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOnVybCgvc3RhdGljL2ltZy9ob21lL3Bob25lX3JlcGFpcl9jYWxsb3V0LndlYnApO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTpjb3ZlcjtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzoxNXB4O1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6cmdiYSgwLCAwLCAwLCAuNSk7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOjEwcHQ7XG4gICAgICAgICAgICAgICAgY29sb3I6d2hpdGUgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAudGl0bGUge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6MTVwdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuICAgICAgICAgICAgICAgICAgICBmbGV4OjE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206NTAlO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDUwJSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY29udGFjdERldGFpbHMge1xuICAgICAgICAgICAgXG4gICAgICAgIHBhZGRpbmc6MTBweDtcblxuICAgICAgICBkaXYge1xuICAgICAgICAgICAgZmxleDoxO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDIwMDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZToxM3B0O1xuICAgICAgICAgICAgbWFyZ2luOjEwcHg7XG4gICAgICAgICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6N3B4O1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOjdweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5pY29uIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiNDODI2MjY7XG4gICAgICAgICAgICAgICAgcGFkZGluZzo1cHg7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czozcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc2VjdGlvbiB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOjUwcHg7XG4gICAgICAgIHBhZGRpbmctdG9wOjUwcHg7XG5cbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjojMUUxRTFFO1xuXG4gICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6MzBweDtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LWhlaWdodDogNDAwcHgpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6MzBweDtcbiAgICAgICAgfVxuXG4gICAgICAgICYucmVwYWlyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6dXJsKC9zdGF0aWMvaW1nL2hvbWUvc2VjdGlvbl9yZXBhaXIucG5nKTtcbiAgICAgICAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICBhbmltYXRpb246ZWFzZS1pbi1vdXQgMnMgcG9wdXA7XG5cbiAgICAgICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246bm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGtleWZyYW1lcyBwb3B1cCB7XG4gICAgICAgICAgICAgICAgMCUgeyBtYXJnaW4tdG9wOiAwcHg7IH1cbiAgICAgICAgICAgICAgICA1MCUgeyBtYXJnaW4tdG9wOiAtMTAwcHg7IH1cbiAgICAgICAgICAgICAgICAxMDAlIHsgbWFyZ2luLXRvcDogMHB4OyB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLmZ1bGwtdmlldyB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OjEwMHZoO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6NzBweDtcbiAgICAgICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOjEwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuc2VjdGlvblRvcCB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOmNlbnRlcjtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206MTBweDtcbiAgICAgICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOjMwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLnNlY3Rpb25IZWFkZXIge1xuICAgICAgICAgICAgZm9udC1zaXplOjIwcHQ7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOjVweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OjMwMDtcbiAgICAgICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbToxNXB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnNlY3Rpb24uc2VydmljZXMge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoL3N0YXRpYy9pbWcvZ2xvYmFsLzEwNGFfZGFyay53ZWJwKTtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjo1MCUgNTAlO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6Y292ZXI7XG5cbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgICAuc2VydmljZSB7XG4gICAgICAgICAgICBtYXJnaW46MTBweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6cmdiYSgxNywgMTcsIDE3LCAwLjcpO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czozcHg7XG4gICAgICAgICAgICBwYWRkaW5nOjEwcHg7XG4gICAgICAgICAgICBkaXNwbGF5OmlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOjMxJTtcblxuICAgICAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOmF1dG87XG4gICAgICAgICAgICAgICAgZGlzcGxheTpibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC1oZWlnaHQ6IDQwMHB4KSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6NDUlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuc2VydmljZUljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAgICAgICAgIGNvbG9yOndoaXRlO1xuICAgICAgICAgICAgICAgIHdpZHRoOjY0cHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OjY0cHg7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KCNkNjIwMWQsICM4NDA1MDMpO1xuICAgICAgICAgICAgICAgIGJvcmRlcjpzb2xpZCAycHggI2E4MTEwZTtcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6NjRweDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOjIzcHQ7XG5cbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOmJvcmRlci1jb2xvciBlYXNlLWluIC4xcztcblxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLmRldGFpbHMge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OjEwcHg7XG5cbiAgICAgICAgICAgICAgICAuc2VydmljZU5hbWUsIC5zZXJ2aWNlSW5mbyB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOndoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAuc2VydmljZUluZm8ge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6OXB0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAuc2VydmljZTpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOnJnYmEoMjcsIDI3LCAyNywgMC43KTtcbiAgICAgICAgICAgIC5zZXJ2aWNlSWNvbiB7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjojRTMxRDFBO1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246Ym9yZGVyLWNvbG9yIGxpbmVhciAuMXM7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc2VjdGlvbi50ZXN0aW1vbmlhbHMge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOnVybCgvc3RhdGljL2ltZy9nbG9iYWwvc2VjdGlvbl9mZWVkYmFjay5wbmcpO1xuICAgICAgICAuZmVlZGJhY2sge1xuICAgICAgICAgICAgcGFkZGluZzoxNXB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZDpyZ2JhKDE3LCAxNywgMTcsIDAuNyk7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOjNweDtcbiAgICAgICAgICAgIGRpc3BsYXk6ZmxleDtcbiAgICAgICAgICAgIGNvbG9yOndoaXRlO1xuXG4gICAgICAgICAgICAuYXZhdGFyIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiA1cHg7XG4gICAgICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6NjRweDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OjY0cHg7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6MTAwJTtcbiAgICAgICAgICAgICAgICAgICAgLy9ib3JkZXI6c29saWQgMnB4ICNDODI2MjY7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLmNvbnRlbnQge1xuICAgICAgICAgICAgICAgIGZsZXg6MTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOjVweDtcbiAgICAgICAgICAgICAgICAubmFtZSB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZToxMXB0O1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjpyZ2IoMjMxLCA3NSwgNzUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAubWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZToxMHB0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5zZWN0aW9uLmNvbnRhY3Qge1xuICAgICAgICBiYWNrZ3JvdW5kOnVybCgvc3RhdGljL2ltZy9nbG9iYWwvbWFwLndlYnApO1xuICAgICAgICBwb3NpdGlvbjpyZWxhdGl2ZTtcblxuICAgICAgICAuY29udGFjdENvbnRlbnQge1xuXG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICByaWdodDo1MCU7XG4gICAgICAgICAgICBib3R0b206NTAlO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoNTAlLCA1MCUpO1xuICAgIFxuXG4gICAgICAgICAgICBjb2xvcjp3aGl0ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6cmdiYSgyMCwgMjAsIDIwLCAuNzUpO1xuICAgIFxuICAgIFxuICAgICAgICAgICAgLy9ib3gtc2hhZG93OjJweCAycHggMTBweCByZ2JhKDAsMCwwLC4yNSk7XG4gICAgICAgICAgICBwYWRkaW5nOjI1cHg7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOjNweDtcbiAgICAgICAgICAgIC5wYWdlSGVhZGVyIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTo1cHg7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTo1cHg7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTpzb2xpZCAxcHggc2lsdmVyO1xuICAgICAgICAgICAgfVxuICAgIFxuICAgICAgICAgICAgZGlzcGxheTpmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBcbiAgICAgICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDppbml0aWFsO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICByaWdodDphdXRvO1xuICAgICAgICAgICAgICAgIGJvdHRvbTphdXRvO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTpub25lO1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgXG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOmluaXRpYWw7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOmluaXRpYWw7XG4gICAgXG4gICAgICAgICAgICAgICAgbWFyZ2luOjIwcHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC1oZWlnaHQ6IDQwMHB4KSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6aW5pdGlhbDtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6YXV0bztcbiAgICAgICAgICAgICAgICBib3R0b206YXV0bztcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06bm9uZTtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIFxuICAgICAgICAgICAgICAgIG1pbi13aWR0aDppbml0aWFsO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDppbml0aWFsO1xuICAgIFxuICAgICAgICAgICAgICAgIG1hcmdpbjoyMHB4O1xuICAgICAgICAgICAgfVxuICAgIFxuICAgICAgICAgICAgLmxlZnRQYW5lLCAucmlnaHRQYW5lIHtcbiAgICAgICAgICAgICAgICBcbiAgICBcbiAgICAgICAgICAgICAgICAuY29udGFjdEhlYWRlciB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZToxOHB0O1xuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDoyMDA7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206NXB4O1xuICAgICAgICAgICAgICAgICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAubGVmdFBhbmUge1xuICAgICAgICAgICAgICAgIGZsZXg6MTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OjI1cHg7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OnNvbGlkIDFweCByZ2IoMjAxLCAyMDEsIDIwMSk7XG4gICAgXG4gICAgICAgICAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6bm9uZTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTpzb2xpZCAxcHggcmdiKDIwMSwgMjAxLCAyMDEpO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OjA7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOjI1cHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC1oZWlnaHQ6IDQwMHB4KSB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodDpub25lO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOnNvbGlkIDFweCByZ2IoMjAxLCAyMDEsIDIwMSk7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6MDtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206MjVweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAucmlnaHRQYW5lIHtcbiAgICAgICAgICAgICAgICB3aWR0aDoyODBweDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6MjVweDtcbiAgICBcbiAgICAgICAgICAgICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOmF1dG87XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOjI1cHg7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDowO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbmJvZHkuaG9tZXBhZ2Uge1xuICAgIC5ib3R0b21fZm9vdGVyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cbn0iLCIjbWFzdGhlYWQuY29udGFjdCB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC9zdGF0aWMvaW1nL2dsb2JhbC9tYXAud2VicCk7XG4gICAgXG4gICAgLmNvbnRhY3RDb250ZW50IHtcblxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIC8vIFN3YXBwaW5nIHN0dWZmIGZvciB0aGUgc2FrZSBvZiBJRS9FZGdlIGJ1Z1xuICAgICAgICByaWdodDo1MCU7XG4gICAgICAgIGJvdHRvbTo1MCU7XG4gICAgICAgIHRyYW5zZm9ybTp0cmFuc2xhdGUoNTAlLCA1MCUpO1xuXG4gICAgICAgIGNvbG9yOndoaXRlO1xuICAgICAgICBiYWNrZ3JvdW5kOnJnYmEoMjAsIDIwLCAyMCwgLjc1KTtcblxuICAgICAgICBtYXgtd2lkdGg6MTIwMHB4O1xuICAgICAgICBtaW4td2lkdGg6IDg0MHB4O1xuXG4gICAgICAgIC8vYm94LXNoYWRvdzoycHggMnB4IDEwcHggcmdiYSgwLDAsMCwuMjUpO1xuICAgICAgICBwYWRkaW5nOjI1cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6M3B4O1xuICAgICAgICAucGFnZUhlYWRlciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTo1cHg7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOjVweDtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206c29saWQgMXB4IHNpbHZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIGRpc3BsYXk6ZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gICAgICAgICAgICB3aWR0aDppbml0aWFsO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcmlnaHQ6YXV0bztcbiAgICAgICAgICAgIGJvdHRvbTphdXRvO1xuICAgICAgICAgICAgdHJhbnNmb3JtOm5vbmU7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICAgICBtaW4td2lkdGg6aW5pdGlhbDtcbiAgICAgICAgICAgIG1heC13aWR0aDppbml0aWFsO1xuXG4gICAgICAgICAgICBtYXJnaW46MjBweDtcbiAgICAgICAgfVxuICAgICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtaGVpZ2h0OiA0MDBweCkge1xuICAgICAgICAgICAgd2lkdGg6aW5pdGlhbDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHJpZ2h0OmF1dG87XG4gICAgICAgICAgICBib3R0b206YXV0bztcbiAgICAgICAgICAgIHRyYW5zZm9ybTpub25lO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAgICAgbWluLXdpZHRoOmluaXRpYWw7XG4gICAgICAgICAgICBtYXgtd2lkdGg6aW5pdGlhbDtcblxuICAgICAgICAgICAgbWFyZ2luOjIwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAubGVmdFBhbmUsIC5yaWdodFBhbmUge1xuICAgICAgICAgICAgXG5cbiAgICAgICAgICAgIC5jb250YWN0SGVhZGVyIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6MThwdDtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDoyMDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTo1cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLmxlZnRQYW5lIHtcbiAgICAgICAgICAgIGZsZXg6MTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6MjVweDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDpzb2xpZCAxcHggcmdiKDIwMSwgMjAxLCAyMDEpO1xuXG4gICAgICAgICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0Om5vbmU7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTpzb2xpZCAxcHggcmdiKDIwMSwgMjAxLCAyMDEpO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6MDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbToyNXB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5yaWdodFBhbmUge1xuICAgICAgICAgICAgd2lkdGg6MjgwcHg7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6MjVweDtcblxuICAgICAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOmF1dG87XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6MjVweDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6MDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn0iLCIubm90aWNlQ29udGVudCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OjUwJTtcbiAgICBib3R0b206NTAlO1xuICAgIHRyYW5zZm9ybTp0cmFuc2xhdGUoNTAlLCA1MCUpO1xuXG5cbiAgICB3aWR0aDo2MDBweDtcbiAgICBiYWNrZ3JvdW5kOnJnYmEoMjAsIDIwLCAyMCwgLjI1KTtcbiAgICBjb2xvcjp3aGl0ZVNtb2tlO1xuICAgIHBhZGRpbmc6MjVweDtcbiAgICBib3JkZXItcmFkaXVzOjNweDtcbiAgICAucGFnZUhlYWRlciB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOjVweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTo1cHg7XG4gICAgICAgIGJvcmRlci1ib3R0b206c29saWQgMXB4IHJnYigyMDcsIDIwNywgMjA3KTtcbiAgICB9XG59IiwiI21hc3RoZWFkLnNlcnZpY2VzIHtcbiAgICBcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoL3N0YXRpYy9pbWcvZ2xvYmFsLzEwNGFfZGFyay53ZWJwKTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgY29sb3I6d2hpdGU7XG4gICAgZm9udC13ZWlnaHQ6MjAwO1xuXG4gICAgLnBhZ2VIZWFkZXIge1xuICAgICAgICBtYXJnaW4tYm90dG9tOjMwcHg7XG4gICAgICAgIGZsZXg6IDEwMCU7XG4gICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTVwdDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jb250YWluZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24tY29udGVudDogY2VudGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMDBweDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgIH1cblxuICAgIC5xdWFsaXR5R3VhcmFudGVlZCB7XG4gICAgICAgIHBhZGRpbmc6MTBweDtcbiAgICAgICAgd2lkdGg6MTAwJTtcbiAgICAgICAgYmFja2dyb3VuZDpyZ2JhKDAsMCwwLC41KTtcbiAgICAgICAgZm9udC13ZWlnaHQ6NTAwO1xuICAgICAgICBjb2xvcjp3aGl0ZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czozcHg7XG5cbiAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuICAgICAgICAgICAgYmFja2dyb3VuZDpub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnNlcnZpY2Uge1xuICAgICAgICBwYWRkaW5nOjEwcHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6I0M4MjYyNjtcbiAgICAgICAgYmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQocmdiYSgyNTUsIDg0LCA4NCwgMC43NSkscmdiYSgyMDAsIDM4LCAzOCwgMC43NSkpO1xuICAgICAgICBib3JkZXItcmFkaXVzOjVweDtcbiAgICAgICAgZGlzcGxheTppbmxpbmUtYmxvY2s7XG4gICAgICAgIG1hcmdpbjoxMHB4O1xuICAgICAgICB3aWR0aDoxODBweDtcbiAgICAgICAgaGVpZ2h0OjE4MHB4O1xuICAgICAgICBjb2xvcjp3aGl0ZTtcbiAgICAgICAgb3ZlcmZsb3c6aGlkZGVuO1xuICAgICAgICBjdXJzb3I6cG9pbnRlcjtcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOmNvdmVyO1xuXG4gICAgICAgIGJvcmRlcjpzb2xpZCAycHggdHJhbnNwYXJlbnQ7XG4gICAgICAgIHRyYW5zaXRpb246Ym9yZGVyIGxpbmVhciAuNzVzO1xuXG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMCwwKTtcbiAgICAgICAgYW5pbWF0aW9uOiBhcHBlYXIgLjFzIDE7XG4gICAgICAgIGFuaW1hdGlvbi1maWxsLW1vZGU6IGZvcndhcmRzO1xuXG4gICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgICAgICAgICAgIHdpZHRoOjEwMHB4O1xuICAgICAgICAgICAgaGVpZ2h0OjEwMHB4O1xuICAgICAgICAgICAgbWFyZ2luOjA7XG4gICAgICAgICAgICBwYWRkaW5nOjVweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBrZXlmcmFtZXMgYXBwZWFyIHtcbiAgICAgICAgICAgIDAlIHsgdHJhbnNmb3JtOnNjYWxlKDAsMCk7IH1cbiAgICAgICAgICAgIDEwMCUgeyB0cmFuc2Zvcm06c2NhbGUoMSwxKTsgfVxuICAgICAgICB9XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOndoaXRlO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjpib3JkZXIgbGluZWFyIC4ycztcbiAgICAgICAgfVxuXG4gICAgICAgIC5zZXJ2aWNlSWNvbiB7XG4gICAgICAgICAgICBmb250LXNpemU6IDcwcHg7XG4gICAgICAgICAgICBhbGlnbi1jb250ZW50OmNlbnRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246Y2VudGVyO1xuICAgICAgICAgICAgZmxleDoxO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6NXB4O1xuICAgICAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTozMnB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5zZXJ2aWNlTmFtZSB7XG4gICAgICAgICAgICBmbGV4OjE7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOmNlbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOjEwcHg7XG4gICAgICAgICAgICBmb250LXNpemU6MTJwdDtcbiAgICAgICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHsgXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOjlwdDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDo1cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLnNlcnZpY2VJbmZvIHtcbiAgICAgICAgICAgIGZsZXg6MTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246Y2VudGVyO1xuICAgICAgICAgICAgcGFkZGluZzo1cHg7XG4gICAgICAgICAgICBmb250LXdlaWdodDoyMDA7XG4gICAgICAgICAgICBmb250LXNpemU6OHB0O1xuICAgICAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4jbWFzdGhlYWQuc2VydmljZUluZm8ge1xuICAgIC5zZXJ2aWNlQ29udGVudCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6NTAlO1xuICAgICAgICBib3R0b206NTAlO1xuXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDUwJSwgNTAlKTtcblxuICAgICAgICBkaXNwbGF5OmZsZXg7XG5cbiAgICAgICAgbWluLXdpZHRoOjkwMHB4O1xuXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcmlnaHQ6aW5pdGlhbDtcbiAgICAgICAgICAgIGJvdHRvbTogaW5pdGlhbDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDoyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5yb3cge1xuXG4gICAgICAgICAgICAmLmNvbnRlbnRSb3cge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6ZmxleDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOjEwcHg7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbToxMHB4O1xuXG4gICAgICAgICAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjpjb2x1bW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAucGFuZWxIZWFkZXIge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZToyMnB0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLnBhbmVsU3ViSGVhZGVyIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6MTJwdDtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDoyMDA7XG4gICAgICAgICAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6MTFwdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5sZWZ0UGFuZWwge1xuICAgICAgICAgICAgICAgIHdpZHRoOjI2MHB4O1xuXG4gICAgICAgICAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDphdXRvO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAuc2VydmljZUltYWdlIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6MjUwcHg7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDoyNTBweDsgXG4gICAgICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOjNweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDpyZ2JhKDAsMCwwLC41KTtcbiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6MTAwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6NTAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6YXV0bztcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206MTBweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5yaWdodFBhbmVsIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OmZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBmbGV4OjE7XG4gICAgICAgICAgICAgICAgLnBhbmVsQ29udGVudCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6MTBweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDpyZ2JhKDIwLCAyMCwgMjAsIC40KTtcbiAgICAgICAgICAgICAgICAgICAgZmxleDoxO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOjNweDtcblxuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6MTFwdDtcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6MjAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6MjUwcHg7XG5cbiAgICAgICAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6YXV0bztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5idG4ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OjEwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59IiwiI21hc3RoZWFkLnRlc3RpbW9uaWFscyB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC9zdGF0aWMvaW1nL3Rlc3RpbW9uaWFscy9zdG9yZS53ZWJwKTtcbiAgICB0ZXh0LWFsaWduOmNlbnRlcjtcbiAgICBjb2xvcjp3aGl0ZTtcbiAgICAucGFnZUhlYWRlciB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206NXB4O1xuICAgICAgICBmb250LXNpemU6MjBwdDtcbiAgICB9XG4gICAgLnBhZ2VTdWJIZWFkZXIge1xuICAgICAgICBtYXJnaW4tYm90dG9tOjIwcHg7XG4gICAgICAgIGNvbG9yOndoaXRlU21va2U7XG4gICAgfVxuICAgIC5jb2x1bW5zIHtcbiAgICAgICAgZGlzcGxheTpmbGV4O1xuICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICBtYXgtaGVpZ2h0Ojgwdmg7XG5cbiAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIG92ZXJmbG93OiBpbml0aWFsO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jb2x1bW4ge1xuICAgICAgICAgICAgZmxleDoxO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbToyMHB4O1xuICAgICAgICAgICAgZGlzcGxheTpmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246Y29sdW1uO1xuXG4gICAgICAgICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgcGFkZGluZzo1cHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDoyMHB4O1xuXG4gICAgICAgICAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6MDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OjIwcHg7XG5cbiAgICAgICAgICAgICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OjA7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIFRlc3RpbW9udWFscyBoYXZlIG1vdmVkIGludG8gdGhlIG1haW4gZWxlbWVudHMgZmlsZVxuICAgIH1cbn0iLCIjbWFzdGhlYWQucHJpdmFjeVBvbGljeSB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHJnYig0OSwgNDksIDQ5KSwgYmxhY2spO1xufSIsIi8vIFVTRSBIT01FLlNDU1MgSU5TVEVBRFxuI3Bob25lIHtcbiAgICAuYmFubmVyIHtcbiAgICAgICAgJi5iYWNrZ3JvdW5kXzEge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTp1cmwoL3N0YXRpYy9pbWcvZml4bXlwaG9uZS9iYWNrZ3JvdW5kXzEud2VicCk7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOmJhY2tncm91bmQtaW1hZ2UgbGluZWFyIC4ycztcbiAgICAgICAgfVxuICAgICAgICAmLmJhY2tncm91bmRfMiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOnVybCgvc3RhdGljL2ltZy9maXhteXBob25lL2JhY2tncm91bmRfMi53ZWJwKTtcbiAgICAgICAgICAgIHRyYW5zaXRpb246YmFja2dyb3VuZC1pbWFnZSBsaW5lYXIgLjJzO1xuICAgICAgICB9XG4gICAgICAgICYuYmFja2dyb3VuZF8zIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6dXJsKC9zdGF0aWMvaW1nL2ZpeG15cGhvbmUvYmFja2dyb3VuZF8zLndlYnApO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWltYWdlIGxpbmVhciAuMnM7XG4gICAgICAgIH1cbiAgICAgICAgJi5iYWNrZ3JvdW5kXzQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTp1cmwoL3N0YXRpYy9pbWcvZml4bXlwaG9uZS9iYWNrZ3JvdW5kXzEud2VicCk7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOmJhY2tncm91bmQtaW1hZ2UgbGluZWFyIC4ycztcbiAgICAgICAgfVxuICAgIH1cbiAgICBcbiAgICAuc2VjdGlvbi5zZXJ2aWNlcyB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgvc3RhdGljL2ltZy9maXhteXBob25lL2JhY2tncm91bmRfM19kYXJrLndlYnApO1xuICAgIH1cbn0iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFDQUEsT0FBTyxDQUFDLHFHQUFJO0FBQ1osT0FBTyxDQUFDLGtDQUFJO0FBQ1osT0FBTyxDQUFDLHVDQUFJO0FDRlosQUFBQSxJQUFJLENBQUM7RUFDRCxNQUFNLEVBQUMsQ0FBQztFQUNSLE9BQU8sRUFBQyxDQUFDO0VBQ1QsZ0JBQWdCLEVBQUMsSUFBSTtFQUNyQixLQUFLLEVBQUMsVUFBVTtFQUNoQixlQUFlLEVBQUMsS0FBSztFQUNyQixxQkFBcUIsRUFBRSxLQUFLO0VBQzVCLFdBQVcsRUFBRSx1QkFBdUI7RUFDcEMsWUFBWSxFQUFFLElBQUksR0FDckI7O0FBQ0QsTUFBTSxNQUFNLE1BQU0sTUFBTSxTQUFTLEVBQUUsS0FBSztFQUNwQyxBQUFBLFVBQVUsQ0FBQztJQUNQLEtBQUssRUFBQyxJQUFJO0lBQ1YsTUFBTSxFQUFDLE9BQU8sR0FDakI7RUFDRCxBQUFBLE9BQU8sQ0FBQztJQUNKLFVBQVUsRUFBQyxrQkFBYyxDQUFDLFVBQVUsR0FDdkM7O0FBRUwsQUFBQSxNQUFNLENBQUM7RUFDSCxLQUFLLEVBQUMsS0FBSztFQUNYLFVBQVUsRUFBQyxPQUFjO0VBQ3pCLE9BQU8s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 */
