/**
 *
 * All animations must live in their own file
 * in the animations directory and be included
 * here.
 *
 */
/**
 * Styles shared by multiple animations
 */
/**
 * Dots
 */
@-webkit-keyframes scale {
  0% {
    -webkit-transform: scale(1);
            transform: scale(1);
    opacity: 1; }
  45% {
    -webkit-transform: scale(0.1);
            transform: scale(0.1);
    opacity: 0.7; }
  80% {
    -webkit-transform: scale(1);
            transform: scale(1);
    opacity: 1; } }
@keyframes scale {
  0% {
    -webkit-transform: scale(1);
            transform: scale(1);
    opacity: 1; }
  45% {
    -webkit-transform: scale(0.1);
            transform: scale(0.1);
    opacity: 0.7; }
  80% {
    -webkit-transform: scale(1);
            transform: scale(1);
    opacity: 1; } }

.ball-pulse > div:nth-child(0) {
  -webkit-animation: scale 0.75s -0.36s infinite cubic-bezier(0.2, 0.68, 0.18, 1.08);
          animation: scale 0.75s -0.36s infinite cubic-bezier(0.2, 0.68, 0.18, 1.08); }

.ball-pulse > div:nth-child(1) {
  -webkit-animation: scale 0.75s -0.24s infinite cubic-bezier(0.2, 0.68, 0.18, 1.08);
          animation: scale 0.75s -0.24s infinite cubic-bezier(0.2, 0.68, 0.18, 1.08); }

.ball-pulse > div:nth-child(2) {
  -webkit-animation: scale 0.75s -0.12s infinite cubic-bezier(0.2, 0.68, 0.18, 1.08);
          animation: scale 0.75s -0.12s infinite cubic-bezier(0.2, 0.68, 0.18, 1.08); }

.ball-pulse > div:nth-child(3) {
  -webkit-animation: scale 0.75s 0s infinite cubic-bezier(0.2, 0.68, 0.18, 1.08);
          animation: scale 0.75s 0s infinite cubic-bezier(0.2, 0.68, 0.18, 1.08); }

.ball-pulse > div {
  background-color: #6366c5;
  width: 15px;
  height: 15px;
  border-radius: 100%;
  margin: 2px;
  -webkit-animation-fill-mode: both;
          animation-fill-mode: both;
  display: inline-block; }

@-webkit-keyframes ball-pulse-sync {
  33% {
    -webkit-transform: translateY(10px);
            transform: translateY(10px); }
  66% {
    -webkit-transform: translateY(-10px);
            transform: translateY(-10px); }
  100% {
    -webkit-transform: translateY(0);
            transform: translateY(0); } }

@keyframes ball-pulse-sync {
  33% {
    -webkit-transform: translateY(10px);
            transform: translateY(10px); }
  66% {
    -webkit-transform: translateY(-10px);
            transform: translateY(-10px); }
  100% {
    -webkit-transform: translateY(0);
            transform: translateY(0); } }

.ball-pulse-sync > div:nth-child(0) {
  -webkit-animation: ball-pulse-sync 0.6s -0.21s infinite ease-in-out;
          animation: ball-pulse-sync 0.6s -0.21s infinite ease-in-out; }

.ball-pulse-sync > div:nth-child(1) {
  -webkit-animation: ball-pulse-sync 0.6s -0.14s infinite ease-in-out;
          animation: ball-pulse-sync 0.6s -0.14s infinite ease-in-out; }

.ball-pulse-sync > div:nth-child(2) {
  -webkit-animation: ball-pulse-sync 0.6s -0.07s infinite ease-in-out;
          animation: ball-pulse-sync 0.6s -0.07s infinite ease-in-out; }

.ball-pulse-sync > div:nth-child(3) {
  -webkit-animation: ball-pulse-sync 0.6s 0s infinite ease-in-out;
          animation: ball-pulse-sync 0.6s 0s infinite ease-in-out; }

.ball-pulse-sync > div {
  background-color: #6366c5;
  width: 15px;
  height: 15px;
  border-radius: 100%;
  margin: 2px;
  -webkit-animation-fill-mode: both;
          animation-fill-mode: both;
  display: inline-block; }

@-webkit-keyframes ball-scale {
  0% {
    -webkit-transform: scale(0);
            transform: scale(0); }
  100% {
    -webkit-transform: scale(1);
            transform: scale(1);
    opacity: 0; } }

@keyframes ball-scale {
  0% {
    -webkit-transform: scale(0);
            transform: scale(0); }
  100% {
    -webkit-transform: scale(1);
            transform: scale(1);
    opacity: 0; } }

.ball-scale > div {
  background-color: #6366c5;
  width: 15px;
  height: 15px;
  border-radius: 100%;
  margin: 2px;
  -webkit-animation-fill-mode: both;
          animation-fill-mode: both;
  display: inline-block;
  height: 60px;
  width: 60px;
  -webkit-animation: ball-scale 1s 0s ease-in-out infinite;
          animation: ball-scale 1s 0s ease-in-out infinite; }

@keyframes ball-scale {
  0% {
    -webkit-transform: scale(0);
            transform: scale(0); }
  100% {
    -webkit-transform: scale(1);
            transform: scale(1);
    opacity: 0; } }

.ball-scale > div {
  background-color: #6366c5;
  width: 15px;
  height: 15px;
  border-radius: 100%;
  margin: 2px;
  -webkit-animation-fill-mode: both;
          animation-fill-mode: both;
  display: inline-block;
  height: 60px;
  width: 60px;
  -webkit-animation: ball-scale 1s 0s ease-in-out infinite;
          animation: ball-scale 1s 0s ease-in-out infinite; }

.ball-scale-random {
  width: 37px;
  height: 40px; }
  .ball-scale-random > div {
    background-color: #6366c5;
    width: 15px;
    height: 15px;
    border-radius: 100%;
    margin: 2px;
    -webkit-animation-fill-mode: both;
            animation-fill-mode: both;
    position: absolute;
    display: inline-block;
    height: 30px;
    width: 30px;
    -webkit-animation: ball-scale 1s 0s ease-in-out infinite;
            animation: ball-scale 1s 0s ease-in-out infinite; }
    .ball-scale-random > div:nth-child(1) {
      margin-left: -7px;
      -webkit-animation: ball-scale 1s 0.2s ease-in-out infinite;
              animation: ball-scale 1s 0.2s ease-in-out infinite; }
    .ball-scale-random > div:nth-child(3) {
      margin-left: -2px;
      margin-top: 9px;
      -webkit-animation: ball-scale 1s 0.5s ease-in-out infinite;
              animation: ball-scale 1s 0.5s ease-in-out infinite; }

@-webkit-keyframes rotate {
  0% {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg); }
  50% {
    -webkit-transform: rotate(180deg);
            transform: rotate(180deg); }
  100% {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg); } }

@keyframes rotate {
  0% {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg); }
  50% {
    -webkit-transform: rotate(180deg);
            transform: rotate(180deg); }
  100% {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg); } }

.ball-rotate {
  position: relative; }
  .ball-rotate > div {
    background-color: #6366c5;
    width: 15px;
    height: 15px;
    border-radius: 100%;
    margin: 2px;
    -webkit-animation-fill-mode: both;
            animation-fill-mode: both;
    position: relative; }
    .ball-rotate > div:first-child {
      -webkit-animation: rotate 1s 0s cubic-bezier(0.7, -0.13, 0.22, 0.86) infinite;
              animation: rotate 1s 0s cubic-bezier(0.7, -0.13, 0.22, 0.86) infinite; }
    .ball-rotate > div:before, .ball-rotate > div:after {
      background-color: #6366c5;
      width: 15px;
      height: 15px;
      border-radius: 100%;
      margin: 2px;
      content: "";
      position: absolute;
      opacity: 0.8; }
    .ball-rotate > div:before {
      top: 0px;
      left: -28px; }
    .ball-rotate > div:after {
      top: 0px;
      left: 25px; }

@keyframes rotate {
  0% {
    -webkit-transform: rotate(0deg) scale(1);
            transform: rotate(0deg) scale(1); }
  50% {
    -webkit-transform: rotate(180deg) scale(0.6);
            transform: rotate(180deg) scale(0.6); }
  100% {
    -webkit-transform: rotate(360deg) scale(1);
            transform: rotate(360deg) scale(1); } }

.ball-clip-rotate > div {
  background-color: #6366c5;
  width: 15px;
  height: 15px;
  border-radius: 100%;
  margin: 2px;
  -webkit-animation-fill-mode: both;
          animation-fill-mode: both;
  border: 2px solid #6366c5;
  border-bottom-color: transparent;
  height: 25px;
  width: 25px;
  background: transparent !important;
  display: inline-block;
  -webkit-animation: rotate 0.75s 0s linear infinite;
          animation: rotate 0.75s 0s linear infinite; }

@keyframes rotate {
  0% {
    -webkit-transform: rotate(0deg) scale(1);
            transform: rotate(0deg) scale(1); }
  50% {
    -webkit-transform: rotate(180deg) scale(0.6);
            transform: rotate(180deg) scale(0.6); }
  100% {
    -webkit-transform: rotate(360deg) scale(1);
            transform: rotate(360deg) scale(1); } }

@keyframes scale {
  30% {
    -webkit-transform: scale(0.3);
            transform: scale(0.3); }
  100% {
    -webkit-transform: scale(1);
            transform: scale(1); } }

.ball-clip-rotate-pulse {
  position: relative;
  -webkit-transform: translateY(-15px);
          transform: translateY(-15px); }
  .ball-clip-rotate-pulse > div {
    -webkit-animation-fill-mode: both;
            animation-fill-mode: both;
    position: absolute;
    top: 0px;
    left: 0px;
    border-radius: 100%; }
    .ball-clip-rotate-pulse > div:first-child {
      background: #6366c5;
      height: 16px;
      width: 16px;
      top: 7px;
      left: -7px;
      -webkit-animation: scale 1s 0s cubic-bezier(0.09, 0.57, 0.49, 0.9) infinite;
              animation: scale 1s 0s cubic-bezier(0.09, 0.57, 0.49, 0.9) infinite; }
    .ball-clip-rotate-pulse > div:last-child {
      position: absolute;
      border: 2px solid #6366c5;
      width: 30px;
      height: 30px;
      left: -16px;
      top: -2px;
      background: transparent;
      border: 2px solid;
      border-color: #6366c5 transparent #6366c5 transparent;
      -webkit-animation: rotate 1s 0s cubic-bezier(0.09, 0.57, 0.49, 0.9) infinite;
              animation: rotate 1s 0s cubic-bezier(0.09, 0.57, 0.49, 0.9) infinite;
      -webkit-animation-duration: 1s;
              animation-duration: 1s; }

@keyframes rotate {
  0% {
    -webkit-transform: rotate(0deg) scale(1);
            transform: rotate(0deg) scale(1); }
  50% {
    -webkit-transform: rotate(180deg) scale(0.6);
            transform: rotate(180deg) scale(0.6); }
  100% {
    -webkit-transform: rotate(360deg) scale(1);
            transform: rotate(360deg) scale(1); } }

.ball-clip-rotate-multiple {
  position: relative; }
  .ball-clip-rotate-multiple > div {
    -webkit-animation-fill-mode: both;
            animation-fill-mode: both;
    position: absolute;
    left: -20px;
    top: -20px;
    border: 2px solid #6366c5;
    border-bottom-color: transparent;
    border-top-color: transparent;
    border-radius: 100%;
    height: 35px;
    width: 35px;
    -webkit-animation: rotate 1s 0s ease-in-out infinite;
            animation: rotate 1s 0s ease-in-out infinite; }
    .ball-clip-rotate-multiple > div:last-child {
      display: inline-block;
      top: -10px;
      left: -10px;
      width: 15px;
      height: 15px;
      -webkit-animation-duration: 0.5s;
              animation-duration: 0.5s;
      border-color: #6366c5 transparent #6366c5 transparent;
      -webkit-animation-direction: reverse;
              animation-direction: reverse; }

@-webkit-keyframes ball-scale-ripple {
  0% {
    -webkit-transform: scale(0.1);
            transform: scale(0.1);
    opacity: 1; }
  70% {
    -webkit-transform: scale(1);
            transform: scale(1);
    opacity: 0.7; }
  100% {
    opacity: 0.0; } }

@keyframes ball-scale-ripple {
  0% {
    -webkit-transform: scale(0.1);
            transform: scale(0.1);
    opacity: 1; }
  70% {
    -webkit-transform: scale(1);
            transform: scale(1);
    opacity: 0.7; }
  100% {
    opacity: 0.0; } }

.ball-scale-ripple > div {
  -webkit-animation-fill-mode: both;
          animation-fill-mode: both;
  height: 50px;
  width: 50px;
  border-radius: 100%;
  border: 2px solid #6366c5;
  -webkit-animation: ball-scale-ripple 1s 0s infinite cubic-bezier(0.21, 0.53, 0.56, 0.8);
          animation: ball-scale-ripple 1s 0s infinite cubic-bezier(0.21, 0.53, 0.56, 0.8); }

@-webkit-keyframes ball-scale-ripple-multiple {
  0% {
    -webkit-transform: scale(0.1);
            transform: scale(0.1);
    opacity: 1; }
  70% {
    -webkit-transform: scale(1);
            transform: scale(1);
    opacity: 0.7; }
  100% {
    opacity: 0.0; } }

@keyframes ball-scale-ripple-multiple {
  0% {
    -webkit-transform: scale(0.1);
            transform: scale(0.1);
    opacity: 1; }
  70% {
    -webkit-transform: scale(1);
            transform: scale(1);
    opacity: 0.7; }
  100% {
    opacity: 0.0; } }

.ball-scale-ripple-multiple {
  position: relative;
  -webkit-transform: translateY(-25px);
          transform: translateY(-25px); }
  .ball-scale-ripple-multiple > div:nth-child(0) {
    -webkit-animation-delay: -0.8s;
            animation-delay: -0.8s; }
  .ball-scale-ripple-multiple > div:nth-child(1) {
    -webkit-animation-delay: -0.6s;
            animation-delay: -0.6s; }
  .ball-scale-ripple-multiple > div:nth-child(2) {
    -webkit-animation-delay: -0.4s;
            animation-delay: -0.4s; }
  .ball-scale-ripple-multiple > div:nth-child(3) {
    -webkit-animation-delay: -0.2s;
            animation-delay: -0.2s; }
  .ball-scale-ripple-multiple > div {
    -webkit-animation-fill-mode: both;
            animation-fill-mode: both;
    position: absolute;
    top: -2px;
    left: -26px;
    width: 50px;
    height: 50px;
    border-radius: 100%;
    border: 2px solid #6366c5;
    -webkit-animation: ball-scale-ripple-multiple 1.25s 0s infinite cubic-bezier(0.21, 0.53, 0.56, 0.8);
            animation: ball-scale-ripple-multiple 1.25s 0s infinite cubic-bezier(0.21, 0.53, 0.56, 0.8); }

@-webkit-keyframes ball-beat {
  50% {
    opacity: 0.2;
    -webkit-transform: scale(0.75);
            transform: scale(0.75); }
  100% {
    opacity: 1;
    -webkit-transform: scale(1);
            transform: scale(1); } }

@keyframes ball-beat {
  50% {
    opacity: 0.2;
    -webkit-transform: scale(0.75);
            transform: scale(0.75); }
  100% {
    opacity: 1;
    -webkit-transform: scale(1);
            transform: scale(1); } }

.ball-beat > div {
  background-color: #6366c5;
  width: 15px;
  height: 15px;
  border-radius: 100%;
  margin: 2px;
  -webkit-animation-fill-mode: both;
          animation-fill-mode: both;
  display: inline-block;
  -webkit-animation: ball-beat 0.7s 0s infinite linear;
          animation: ball-beat 0.7s 0s infinite linear; }
  .ball-beat > div:nth-child(2n-1) {
    -webkit-animation-delay: -0.35s !important;
            animation-delay: -0.35s !important; }

@-webkit-keyframes ball-scale-multiple {
  0% {
    -webkit-transform: scale(0);
            transform: scale(0);
    opacity: 0; }
  5% {
    opacity: 1; }
  100% {
    -webkit-transform: scale(1);
            transform: scale(1);
    opacity: 0; } }

@keyframes ball-scale-multiple {
  0% {
    -webkit-transform: scale(0);
            transform: scale(0);
    opacity: 0; }
  5% {
    opacity: 1; }
  100% {
    -webkit-transform: scale(1);
            transform: scale(1);
    opacity: 0; } }

.ball-scale-multiple {
  position: relative;
  -webkit-transform: translateY(-30px);
          transform: translateY(-30px); }
  .ball-scale-multiple > div:nth-child(2) {
    -webkit-animation-delay: -0.4s;
            animation-delay: -0.4s; }
  .ball-scale-multiple > div:nth-child(3) {
    -webkit-animation-delay: -0.2s;
            animation-delay: -0.2s; }
  .ball-scale-multiple > div {
    background-color: #6366c5;
    width: 15px;
    height: 15px;
    border-radius: 100%;
    margin: 2px;
    -webkit-animation-fill-mode: both;
            animation-fill-mode: both;
    position: absolute;
    left: -30px;
    top: 0px;
    opacity: 0;
    margin: 0;
    width: 60px;
    height: 60px;
    -webkit-animation: ball-scale-multiple 1s 0s linear infinite;
            animation: ball-scale-multiple 1s 0s linear infinite; }

@-webkit-keyframes ball-triangle-path-1 {
  33% {
    -webkit-transform: translate(25px, -50px);
            transform: translate(25px, -50px); }
  66% {
    -webkit-transform: translate(50px, 0px);
            transform: translate(50px, 0px); }
  100% {
    -webkit-transform: translate(0px, 0px);
            transform: translate(0px, 0px); } }

@keyframes ball-triangle-path-1 {
  33% {
    -webkit-transform: translate(25px, -50px);
            transform: translate(25px, -50px); }
  66% {
    -webkit-transform: translate(50px, 0px);
            transform: translate(50px, 0px); }
  100% {
    -webkit-transform: translate(0px, 0px);
            transform: translate(0px, 0px); } }

@-webkit-keyframes ball-triangle-path-2 {
  33% {
    -webkit-transform: translate(25px, 50px);
            transform: translate(25px, 50px); }
  66% {
    -webkit-transform: translate(-25px, 50px);
            transform: translate(-25px, 50px); }
  100% {
    -webkit-transform: translate(0px, 0px);
            transform: translate(0px, 0px); } }

@keyframes ball-triangle-path-2 {
  33% {
    -webkit-transform: translate(25px, 50px);
            transform: translate(25px, 50px); }
  66% {
    -webkit-transform: translate(-25px, 50px);
            transform: translate(-25px, 50px); }
  100% {
    -webkit-transform: translate(0px, 0px);
            transform: translate(0px, 0px); } }

@-webkit-keyframes ball-triangle-path-3 {
  33% {
    -webkit-transform: translate(-50px, 0px);
            transform: translate(-50px, 0px); }
  66% {
    -webkit-transform: translate(-25px, -50px);
            transform: translate(-25px, -50px); }
  100% {
    -webkit-transform: translate(0px, 0px);
            transform: translate(0px, 0px); } }

@keyframes ball-triangle-path-3 {
  33% {
    -webkit-transform: translate(-50px, 0px);
            transform: translate(-50px, 0px); }
  66% {
    -webkit-transform: translate(-25px, -50px);
            transform: translate(-25px, -50px); }
  100% {
    -webkit-transform: translate(0px, 0px);
            transform: translate(0px, 0px); } }

.ball-triangle-path {
  position: relative;
  -webkit-transform: translate(-29.9940011998px, -37.5093773443px);
          transform: translate(-29.9940011998px, -37.5093773443px); }
  .ball-triangle-path > div:nth-child(1) {
    -webkit-animation-name: ball-triangle-path-1;
            animation-name: ball-triangle-path-1;
    -webkit-animation-delay: 0;
            animation-delay: 0;
    -webkit-animation-duration: 2s;
            animation-duration: 2s;
    -webkit-animation-timing-function: ease-in-out;
            animation-timing-function: ease-in-out;
    -webkit-animation-iteration-count: infinite;
            animation-iteration-count: infinite; }
  .ball-triangle-path > div:nth-child(2) {
    -webkit-animation-name: ball-triangle-path-2;
            animation-name: ball-triangle-path-2;
    -webkit-animation-delay: 0;
            animation-delay: 0;
    -webkit-animation-duration: 2s;
            animation-duration: 2s;
    -webkit-animation-timing-function: ease-in-out;
            animation-timing-function: ease-in-out;
    -webkit-animation-iteration-count: infinite;
            animation-iteration-count: infinite; }
  .ball-triangle-path > div:nth-child(3) {
    -webkit-animation-name: ball-triangle-path-3;
            animation-name: ball-triangle-path-3;
    -webkit-animation-delay: 0;
            animation-delay: 0;
    -webkit-animation-duration: 2s;
            animation-duration: 2s;
    -webkit-animation-timing-function: ease-in-out;
            animation-timing-function: ease-in-out;
    -webkit-animation-iteration-count: infinite;
            animation-iteration-count: infinite; }
  .ball-triangle-path > div {
    -webkit-animation-fill-mode: both;
            animation-fill-mode: both;
    position: absolute;
    width: 10px;
    height: 10px;
    border-radius: 100%;
    border: 1px solid #6366c5; }
    .ball-triangle-path > div:nth-of-type(1) {
      top: 50px; }
    .ball-triangle-path > div:nth-of-type(2) {
      left: 25px; }
    .ball-triangle-path > div:nth-of-type(3) {
      top: 50px;
      left: 50px; }

@-webkit-keyframes ball-pulse-rise-even {
  0% {
    -webkit-transform: scale(1.1);
            transform: scale(1.1); }
  25% {
    -webkit-transform: translateY(-30px);
            transform: translateY(-30px); }
  50% {
    -webkit-transform: scale(0.4);
            transform: scale(0.4); }
  75% {
    -webkit-transform: translateY(30px);
            transform: translateY(30px); }
  100% {
    -webkit-transform: translateY(0);
            transform: translateY(0);
    -webkit-transform: scale(1);
            transform: scale(1); } }

@keyframes ball-pulse-rise-even {
  0% {
    -webkit-transform: scale(1.1);
            transform: scale(1.1); }
  25% {
    -webkit-transform: translateY(-30px);
            transform: translateY(-30px); }
  50% {
    -webkit-transform: scale(0.4);
            transform: scale(0.4); }
  75% {
    -webkit-transform: translateY(30px);
            transform: translateY(30px); }
  100% {
    -webkit-transform: translateY(0);
            transform: translateY(0);
    -webkit-transform: scale(1);
            transform: scale(1); } }

@-webkit-keyframes ball-pulse-rise-odd {
  0% {
    -webkit-transform: scale(0.4);
            transform: scale(0.4); }
  25% {
    -webkit-transform: translateY(30px);
            transform: translateY(30px); }
  50% {
    -webkit-transform: scale(1.1);
            transform: scale(1.1); }
  75% {
    -webkit-transform: translateY(-30px);
            transform: translateY(-30px); }
  100% {
    -webkit-transform: translateY(0);
            transform: translateY(0);
    -webkit-transform: scale(0.75);
            transform: scale(0.75); } }

@keyframes ball-pulse-rise-odd {
  0% {
    -webkit-transform: scale(0.4);
            transform: scale(0.4); }
  25% {
    -webkit-transform: translateY(30px);
            transform: translateY(30px); }
  50% {
    -webkit-transform: scale(1.1);
            transform: scale(1.1); }
  75% {
    -webkit-transform: translateY(-30px);
            transform: translateY(-30px); }
  100% {
    -webkit-transform: translateY(0);
            transform: translateY(0);
    -webkit-transform: scale(0.75);
            transform: scale(0.75); } }

.ball-pulse-rise > div {
  background-color: #6366c5;
  width: 15px;
  height: 15px;
  border-radius: 100%;
  margin: 2px;
  -webkit-animation-fill-mode: both;
          animation-fill-mode: both;
  display: inline-block;
  -webkit-animation-duration: 1s;
          animation-duration: 1s;
  -webkit-animation-timing-function: cubic-bezier(0.15, 0.46, 0.9, 0.6);
          animation-timing-function: cubic-bezier(0.15, 0.46, 0.9, 0.6);
  -webkit-animation-iteration-count: infinite;
          animation-iteration-count: infinite;
  -webkit-animation-delay: 0;
          animation-delay: 0; }
  .ball-pulse-rise > div:nth-child(2n) {
    -webkit-animation-name: ball-pulse-rise-even;
            animation-name: ball-pulse-rise-even; }
  .ball-pulse-rise > div:nth-child(2n-1) {
    -webkit-animation-name: ball-pulse-rise-odd;
            animation-name: ball-pulse-rise-odd; }

@-webkit-keyframes ball-grid-beat {
  50% {
    opacity: 0.7; }
  100% {
    opacity: 1; } }

@keyframes ball-grid-beat {
  50% {
    opacity: 0.7; }
  100% {
    opacity: 1; } }

.ball-grid-beat {
  width: 57px; }
  .ball-grid-beat > div:nth-child(1) {
    -webkit-animation-delay: 0.54s;
            animation-delay: 0.54s;
    -webkit-animation-duration: 0.74s;
            animation-duration: 0.74s; }
  .ball-grid-beat > div:nth-child(2) {
    -webkit-animation-delay: 0.2s;
            animation-delay: 0.2s;
    -webkit-animation-duration: 1.23s;
            animation-duration: 1.23s; }
  .ball-grid-beat > div:nth-child(3) {
    -webkit-animation-delay: -0.02s;
            animation-delay: -0.02s;
    -webkit-animation-duration: 0.68s;
            animation-duration: 0.68s; }
  .ball-grid-beat > div:nth-child(4) {
    -webkit-animation-delay: 0.63s;
            animation-delay: 0.63s;
    -webkit-animation-duration: 1.1s;
            animation-duration: 1.1s; }
  .ball-grid-beat > div:nth-child(5) {
    -webkit-animation-delay: 0.54s;
            animation-delay: 0.54s;
    -webkit-animation-duration: 1.2s;
            animation-duration: 1.2s; }
  .ball-grid-beat > div:nth-child(6) {
    -webkit-animation-delay: 0.14s;
            animation-delay: 0.14s;
    -webkit-animation-duration: 0.87s;
            animation-duration: 0.87s; }
  .ball-grid-beat > div:nth-child(7) {
    -webkit-animation-delay: 0.44s;
            animation-delay: 0.44s;
    -webkit-animation-duration: 1.37s;
            animation-duration: 1.37s; }
  .ball-grid-beat > div:nth-child(8) {
    -webkit-animation-delay: -0.07s;
            animation-delay: -0.07s;
    -webkit-animation-duration: 1.03s;
            animation-duration: 1.03s; }
  .ball-grid-beat > div:nth-child(9) {
    -webkit-animation-delay: 0.41s;
            animation-delay: 0.41s;
    -webkit-animation-duration: 0.69s;
            animation-duration: 0.69s; }
  .ball-grid-beat > div {
    background-color: #6366c5;
    width: 15px;
    height: 15px;
    border-radius: 100%;
    margin: 2px;
    -webkit-animation-fill-mode: both;
            animation-fill-mode: both;
    display: inline-block;
    float: left;
    -webkit-animation-name: ball-grid-beat;
            animation-name: ball-grid-beat;
    -webkit-animation-iteration-count: infinite;
            animation-iteration-count: infinite;
    -webkit-animation-delay: 0;
            animation-delay: 0; }

@-webkit-keyframes ball-grid-pulse {
  0% {
    -webkit-transform: scale(1);
            transform: scale(1); }
  50% {
    -webkit-transform: scale(0.5);
            transform: scale(0.5);
    opacity: 0.7; }
  100% {
    -webkit-transform: scale(1);
            transform: scale(1);
    opacity: 1; } }

@keyframes ball-grid-pulse {
  0% {
    -webkit-transform: scale(1);
            transform: scale(1); }
  50% {
    -webkit-transform: scale(0.5);
            transform: scale(0.5);
    opacity: 0.7; }
  100% {
    -webkit-transform: scale(1);
            transform: scale(1);
    opacity: 1; } }

.ball-grid-pulse {
  width: 57px; }
  .ball-grid-pulse > div:nth-child(1) {
    -webkit-animation-delay: 0.13s;
            animation-delay: 0.13s;
    -webkit-animation-duration: 1.52s;
            animation-duration: 1.52s; }
  .ball-grid-pulse > div:nth-child(2) {
    -webkit-animation-delay: 0.62s;
            animation-delay: 0.62s;
    -webkit-animation-duration: 0.87s;
            animation-duration: 0.87s; }
  .ball-grid-pulse > div:nth-child(3) {
    -webkit-animation-delay: 0.15s;
            animation-delay: 0.15s;
    -webkit-animation-duration: 0.84s;
            animation-duration: 0.84s; }
  .ball-grid-pulse > div:nth-child(4) {
    -webkit-animation-delay: 0.45s;
            animation-delay: 0.45s;
    -webkit-animation-duration: 0.73s;
            animation-duration: 0.73s; }
  .ball-grid-pulse > div:nth-child(5) {
    -webkit-animation-delay: 0.08s;
            animation-delay: 0.08s;
    -webkit-animation-duration: 1.02s;
            animation-duration: 1.02s; }
  .ball-grid-pulse > div:nth-child(6) {
    -webkit-animation-delay: 0.41s;
            animation-delay: 0.41s;
    -webkit-animation-duration: 1.41s;
            animation-duration: 1.41s; }
  .ball-grid-pulse > div:nth-child(7) {
    -webkit-animation-delay: 0.79s;
            animation-delay: 0.79s;
    -webkit-animation-duration: 1.6s;
            animation-duration: 1.6s; }
  .ball-grid-pulse > div:nth-child(8) {
    -webkit-animation-delay: 0.59s;
            animation-delay: 0.59s;
    -webkit-animation-duration: 1.03s;
            animation-duration: 1.03s; }
  .ball-grid-pulse > div:nth-child(9) {
    -webkit-animation-delay: 0s;
            animation-delay: 0s;
    -webkit-animation-duration: 0.84s;
            animation-duration: 0.84s; }
  .ball-grid-pulse > div {
    background-color: #6366c5;
    width: 15px;
    height: 15px;
    border-radius: 100%;
    margin: 2px;
    -webkit-animation-fill-mode: both;
            animation-fill-mode: both;
    display: inline-block;
    float: left;
    -webkit-animation-name: ball-grid-pulse;
            animation-name: ball-grid-pulse;
    -webkit-animation-iteration-count: infinite;
            animation-iteration-count: infinite;
    -webkit-animation-delay: 0;
            animation-delay: 0; }

@-webkit-keyframes ball-spin-fade-loader {
  50% {
    opacity: 0.3;
    -webkit-transform: scale(0.4);
            transform: scale(0.4); }
  100% {
    opacity: 1;
    -webkit-transform: scale(1);
            transform: scale(1); } }

@keyframes ball-spin-fade-loader {
  50% {
    opacity: 0.3;
    -webkit-transform: scale(0.4);
            transform: scale(0.4); }
  100% {
    opacity: 1;
    -webkit-transform: scale(1);
            transform: scale(1); } }

.ball-spin-fade-loader {
  position: relative;
  top: -10px;
  left: -10px; }
  .ball-spin-fade-loader > div:nth-child(1) {
    top: 25px;
    left: 0;
    -webkit-animation: ball-spin-fade-loader 1s -0.96s infinite linear;
            animation: ball-spin-fade-loader 1s -0.96s infinite linear; }
  .ball-spin-fade-loader > div:nth-child(2) {
    top: 17.0454545455px;
    left: 17.0454545455px;
    -webkit-animation: ball-spin-fade-loader 1s -0.84s infinite linear;
            animation: ball-spin-fade-loader 1s -0.84s infinite linear; }
  .ball-spin-fade-loader > div:nth-child(3) {
    top: 0;
    left: 25px;
    -webkit-animation: ball-spin-fade-loader 1s -0.72s infinite linear;
            animation: ball-spin-fade-loader 1s -0.72s infinite linear; }
  .ball-spin-fade-loader > div:nth-child(4) {
    top: -17.0454545455px;
    left: 17.0454545455px;
    -webkit-animation: ball-spin-fade-loader 1s -0.6s infinite linear;
            animation: ball-spin-fade-loader 1s -0.6s infinite linear; }
  .ball-spin-fade-loader > div:nth-child(5) {
    top: -25px;
    left: 0;
    -webkit-animation: ball-spin-fade-loader 1s -0.48s infinite linear;
            animation: ball-spin-fade-loader 1s -0.48s infinite linear; }
  .ball-spin-fade-loader > div:nth-child(6) {
    top: -17.0454545455px;
    left: -17.0454545455px;
    -webkit-animation: ball-spin-fade-loader 1s -0.36s infinite linear;
            animation: ball-spin-fade-loader 1s -0.36s infinite linear; }
  .ball-spin-fade-loader > div:nth-child(7) {
    top: 0;
    left: -25px;
    -webkit-animation: ball-spin-fade-loader 1s -0.24s infinite linear;
            animation: ball-spin-fade-loader 1s -0.24s infinite linear; }
  .ball-spin-fade-loader > div:nth-child(8) {
    top: 17.0454545455px;
    left: -17.0454545455px;
    -webkit-animation: ball-spin-fade-loader 1s -0.12s infinite linear;
            animation: ball-spin-fade-loader 1s -0.12s infinite linear; }
  .ball-spin-fade-loader > div {
    background-color: #6366c5;
    width: 15px;
    height: 15px;
    border-radius: 100%;
    margin: 2px;
    -webkit-animation-fill-mode: both;
            animation-fill-mode: both;
    position: absolute; }

@-webkit-keyframes ball-spin-loader {
  75% {
    opacity: 0.2; }
  100% {
    opacity: 1; } }

@keyframes ball-spin-loader {
  75% {
    opacity: 0.2; }
  100% {
    opacity: 1; } }

.ball-spin-loader {
  position: relative; }
  .ball-spin-loader > span:nth-child(1) {
    top: 45px;
    left: 0;
    -webkit-animation: ball-spin-loader 2s 0.9s infinite linear;
            animation: ball-spin-loader 2s 0.9s infinite linear; }
  .ball-spin-loader > span:nth-child(2) {
    top: 30.6818181818px;
    left: 30.6818181818px;
    -webkit-animation: ball-spin-loader 2s 1.8s infinite linear;
            animation: ball-spin-loader 2s 1.8s infinite linear; }
  .ball-spin-loader > span:nth-child(3) {
    top: 0;
    left: 45px;
    -webkit-animation: ball-spin-loader 2s 2.7s infinite linear;
            animation: ball-spin-loader 2s 2.7s infinite linear; }
  .ball-spin-loader > span:nth-child(4) {
    top: -30.6818181818px;
    left: 30.6818181818px;
    -webkit-animation: ball-spin-loader 2s 3.6s infinite linear;
            animation: ball-spin-loader 2s 3.6s infinite linear; }
  .ball-spin-loader > span:nth-child(5) {
    top: -45px;
    left: 0;
    -webkit-animation: ball-spin-loader 2s 4.5s infinite linear;
            animation: ball-spin-loader 2s 4.5s infinite linear; }
  .ball-spin-loader > span:nth-child(6) {
    top: -30.6818181818px;
    left: -30.6818181818px;
    -webkit-animation: ball-spin-loader 2s 5.4s infinite linear;
            animation: ball-spin-loader 2s 5.4s infinite linear; }
  .ball-spin-loader > span:nth-child(7) {
    top: 0;
    left: -45px;
    -webkit-animation: ball-spin-loader 2s 6.3s infinite linear;
            animation: ball-spin-loader 2s 6.3s infinite linear; }
  .ball-spin-loader > span:nth-child(8) {
    top: 30.6818181818px;
    left: -30.6818181818px;
    -webkit-animation: ball-spin-loader 2s 7.2s infinite linear;
            animation: ball-spin-loader 2s 7.2s infinite linear; }
  .ball-spin-loader > div {
    -webkit-animation-fill-mode: both;
            animation-fill-mode: both;
    position: absolute;
    width: 15px;
    height: 15px;
    border-radius: 100%;
    background: green; }

@-webkit-keyframes ball-zig {
  33% {
    -webkit-transform: translate(-15px, -30px);
            transform: translate(-15px, -30px); }
  66% {
    -webkit-transform: translate(15px, -30px);
            transform: translate(15px, -30px); }
  100% {
    -webkit-transform: translate(0, 0);
            transform: translate(0, 0); } }

@keyframes ball-zig {
  33% {
    -webkit-transform: translate(-15px, -30px);
            transform: translate(-15px, -30px); }
  66% {
    -webkit-transform: translate(15px, -30px);
            transform: translate(15px, -30px); }
  100% {
    -webkit-transform: translate(0, 0);
            transform: translate(0, 0); } }

@-webkit-keyframes ball-zag {
  33% {
    -webkit-transform: translate(15px, 30px);
            transform: translate(15px, 30px); }
  66% {
    -webkit-transform: translate(-15px, 30px);
            transform: translate(-15px, 30px); }
  100% {
    -webkit-transform: translate(0, 0);
            transform: translate(0, 0); } }

@keyframes ball-zag {
  33% {
    -webkit-transform: translate(15px, 30px);
            transform: translate(15px, 30px); }
  66% {
    -webkit-transform: translate(-15px, 30px);
            transform: translate(-15px, 30px); }
  100% {
    -webkit-transform: translate(0, 0);
            transform: translate(0, 0); } }

.ball-zig-zag {
  position: relative;
  -webkit-transform: translate(-15px, -15px);
          transform: translate(-15px, -15px); }
  .ball-zig-zag > div {
    background-color: #6366c5;
    width: 15px;
    height: 15px;
    border-radius: 100%;
    margin: 2px;
    -webkit-animation-fill-mode: both;
            animation-fill-mode: both;
    position: absolute;
    margin-left: 15px;
    top: 4px;
    left: -7px; }
    .ball-zig-zag > div:first-child {
      -webkit-animation: ball-zig 0.7s 0s infinite linear;
              animation: ball-zig 0.7s 0s infinite linear; }
    .ball-zig-zag > div:last-child {
      -webkit-animation: ball-zag 0.7s 0s infinite linear;
              animation: ball-zag 0.7s 0s infinite linear; }

@-webkit-keyframes ball-zig-deflect {
  17% {
    -webkit-transform: translate(-15px, -30px);
            transform: translate(-15px, -30px); }
  34% {
    -webkit-transform: translate(15px, -30px);
            transform: translate(15px, -30px); }
  50% {
    -webkit-transform: translate(0, 0);
            transform: translate(0, 0); }
  67% {
    -webkit-transform: translate(15px, -30px);
            transform: translate(15px, -30px); }
  84% {
    -webkit-transform: translate(-15px, -30px);
            transform: translate(-15px, -30px); }
  100% {
    -webkit-transform: translate(0, 0);
            transform: translate(0, 0); } }

@keyframes ball-zig-deflect {
  17% {
    -webkit-transform: translate(-15px, -30px);
            transform: translate(-15px, -30px); }
  34% {
    -webkit-transform: translate(15px, -30px);
            transform: translate(15px, -30px); }
  50% {
    -webkit-transform: translate(0, 0);
            transform: translate(0, 0); }
  67% {
    -webkit-transform: translate(15px, -30px);
            transform: translate(15px, -30px); }
  84% {
    -webkit-transform: translate(-15px, -30px);
            transform: translate(-15px, -30px); }
  100% {
    -webkit-transform: translate(0, 0);
            transform: translate(0, 0); } }

@-webkit-keyframes ball-zag-deflect {
  17% {
    -webkit-transform: translate(15px, 30px);
            transform: translate(15px, 30px); }
  34% {
    -webkit-transform: translate(-15px, 30px);
            transform: translate(-15px, 30px); }
  50% {
    -webkit-transform: translate(0, 0);
            transform: translate(0, 0); }
  67% {
    -webkit-transform: translate(-15px, 30px);
            transform: translate(-15px, 30px); }
  84% {
    -webkit-transform: translate(15px, 30px);
            transform: translate(15px, 30px); }
  100% {
    -webkit-transform: translate(0, 0);
            transform: translate(0, 0); } }

@keyframes ball-zag-deflect {
  17% {
    -webkit-transform: translate(15px, 30px);
            transform: translate(15px, 30px); }
  34% {
    -webkit-transform: translate(-15px, 30px);
            transform: translate(-15px, 30px); }
  50% {
    -webkit-transform: translate(0, 0);
            transform: translate(0, 0); }
  67% {
    -webkit-transform: translate(-15px, 30px);
            transform: translate(-15px, 30px); }
  84% {
    -webkit-transform: translate(15px, 30px);
            transform: translate(15px, 30px); }
  100% {
    -webkit-transform: translate(0, 0);
            transform: translate(0, 0); } }

.ball-zig-zag-deflect {
  position: relative;
  -webkit-transform: translate(-15px, -15px);
          transform: translate(-15px, -15px); }
  .ball-zig-zag-deflect > div {
    background-color: #6366c5;
    width: 15px;
    height: 15px;
    border-radius: 100%;
    margin: 2px;
    -webkit-animation-fill-mode: both;
            animation-fill-mode: both;
    position: absolute;
    margin-left: 15px;
    top: 4px;
    left: -7px; }
    .ball-zig-zag-deflect > div:first-child {
      -webkit-animation: ball-zig-deflect 1.5s 0s infinite linear;
              animation: ball-zig-deflect 1.5s 0s infinite linear; }
    .ball-zig-zag-deflect > div:last-child {
      -webkit-animation: ball-zag-deflect 1.5s 0s infinite linear;
              animation: ball-zag-deflect 1.5s 0s infinite linear; }

/**
 * Lines
 */
@-webkit-keyframes line-scale {
  0% {
    -webkit-transform: scaley(1);
            transform: scaley(1); }
  50% {
    -webkit-transform: scaley(0.4);
            transform: scaley(0.4); }
  100% {
    -webkit-transform: scaley(1);
            transform: scaley(1); } }
@keyframes line-scale {
  0% {
    -webkit-transform: scaley(1);
            transform: scaley(1); }
  50% {
    -webkit-transform: scaley(0.4);
            transform: scaley(0.4); }
  100% {
    -webkit-transform: scaley(1);
            transform: scaley(1); } }

.line-scale > div:nth-child(1) {
  -webkit-animation: line-scale 1s -0.4s infinite cubic-bezier(0.2, 0.68, 0.18, 1.08);
          animation: line-scale 1s -0.4s infinite cubic-bezier(0.2, 0.68, 0.18, 1.08); }

.line-scale > div:nth-child(2) {
  -webkit-animation: line-scale 1s -0.3s infinite cubic-bezier(0.2, 0.68, 0.18, 1.08);
          animation: line-scale 1s -0.3s infinite cubic-bezier(0.2, 0.68, 0.18, 1.08); }

.line-scale > div:nth-child(3) {
  -webkit-animation: line-scale 1s -0.2s infinite cubic-bezier(0.2, 0.68, 0.18, 1.08);
          animation: line-scale 1s -0.2s infinite cubic-bezier(0.2, 0.68, 0.18, 1.08); }

.line-scale > div:nth-child(4) {
  -webkit-animation: line-scale 1s -0.1s infinite cubic-bezier(0.2, 0.68, 0.18, 1.08);
          animation: line-scale 1s -0.1s infinite cubic-bezier(0.2, 0.68, 0.18, 1.08); }

.line-scale > div:nth-child(5) {
  -webkit-animation: line-scale 1s 0s infinite cubic-bezier(0.2, 0.68, 0.18, 1.08);
          animation: line-scale 1s 0s infinite cubic-bezier(0.2, 0.68, 0.18, 1.08); }

.line-scale > div {
  background-color: #6366c5;
  width: 4px;
  height: 35px;
  border-radius: 2px;
  margin: 2px;
  -webkit-animation-fill-mode: both;
          animation-fill-mode: both;
  display: inline-block; }

@-webkit-keyframes line-scale-party {
  0% {
    -webkit-transform: scale(1);
            transform: scale(1); }
  50% {
    -webkit-transform: scale(0.5);
            transform: scale(0.5); }
  100% {
    -webkit-transform: scale(1);
            transform: scale(1); } }

@keyframes line-scale-party {
  0% {
    -webkit-transform: scale(1);
            transform: scale(1); }
  50% {
    -webkit-transform: scale(0.5);
            transform: scale(0.5); }
  100% {
    -webkit-transform: scale(1);
            transform: scale(1); } }

.line-scale-party > div:nth-child(1) {
  -webkit-animation-delay: 0.78s;
          animation-delay: 0.78s;
  -webkit-animation-duration: 1.3s;
          animation-duration: 1.3s; }

.line-scale-party > div:nth-child(2) {
  -webkit-animation-delay: 0.73s;
          animation-delay: 0.73s;
  -webkit-animation-duration: 0.88s;
          animation-duration: 0.88s; }

.line-scale-party > div:nth-child(3) {
  -webkit-animation-delay: 0.54s;
          animation-delay: 0.54s;
  -webkit-animation-duration: 0.78s;
          animation-duration: 0.78s; }

.line-scale-party > div:nth-child(4) {
  -webkit-animation-delay: 0.27s;
          animation-delay: 0.27s;
  -webkit-animation-duration: 0.96s;
          animation-duration: 0.96s; }

.line-scale-party > div {
  background-color: #6366c5;
  width: 4px;
  height: 35px;
  border-radius: 2px;
  margin: 2px;
  -webkit-animation-fill-mode: both;
          animation-fill-mode: both;
  display: inline-block;
  -webkit-animation-name: line-scale-party;
          animation-name: line-scale-party;
  -webkit-animation-iteration-count: infinite;
          animation-iteration-count: infinite;
  -webkit-animation-delay: 0;
          animation-delay: 0; }

@-webkit-keyframes line-scale-pulse-out {
  0% {
    -webkit-transform: scaley(1);
            transform: scaley(1); }
  50% {
    -webkit-transform: scaley(0.4);
            transform: scaley(0.4); }
  100% {
    -webkit-transform: scaley(1);
            transform: scaley(1); } }

@keyframes line-scale-pulse-out {
  0% {
    -webkit-transform: scaley(1);
            transform: scaley(1); }
  50% {
    -webkit-transform: scaley(0.4);
            transform: scaley(0.4); }
  100% {
    -webkit-transform: scaley(1);
            transform: scaley(1); } }

.line-scale-pulse-out > div {
  background-color: #6366c5;
  width: 4px;
  height: 35px;
  border-radius: 2px;
  margin: 2px;
  -webkit-animation-fill-mode: both;
          animation-fill-mode: both;
  display: inline-block;
  -webkit-animation: line-scale-pulse-out 0.9s -0.6s infinite cubic-bezier(0.85, 0.25, 0.37, 0.85);
          animation: line-scale-pulse-out 0.9s -0.6s infinite cubic-bezier(0.85, 0.25, 0.37, 0.85); }
  .line-scale-pulse-out > div:nth-child(2), .line-scale-pulse-out > div:nth-child(4) {
    -webkit-animation-delay: -0.4s !important;
            animation-delay: -0.4s !important; }
  .line-scale-pulse-out > div:nth-child(1), .line-scale-pulse-out > div:nth-child(5) {
    -webkit-animation-delay: -0.2s !important;
            animation-delay: -0.2s !important; }

@-webkit-keyframes line-scale-pulse-out-rapid {
  0% {
    -webkit-transform: scaley(1);
            transform: scaley(1); }
  80% {
    -webkit-transform: scaley(0.3);
            transform: scaley(0.3); }
  90% {
    -webkit-transform: scaley(1);
            transform: scaley(1); } }

@keyframes line-scale-pulse-out-rapid {
  0% {
    -webkit-transform: scaley(1);
            transform: scaley(1); }
  80% {
    -webkit-transform: scaley(0.3);
            transform: scaley(0.3); }
  90% {
    -webkit-transform: scaley(1);
            transform: scaley(1); } }

.line-scale-pulse-out-rapid > div {
  background-color: #6366c5;
  width: 4px;
  height: 35px;
  border-radius: 2px;
  margin: 2px;
  -webkit-animation-fill-mode: both;
          animation-fill-mode: both;
  display: inline-block;
  vertical-align: middle;
  -webkit-animation: line-scale-pulse-out-rapid 0.9s -0.5s infinite cubic-bezier(0.11, 0.49, 0.38, 0.78);
          animation: line-scale-pulse-out-rapid 0.9s -0.5s infinite cubic-bezier(0.11, 0.49, 0.38, 0.78); }
  .line-scale-pulse-out-rapid > div:nth-child(2), .line-scale-pulse-out-rapid > div:nth-child(4) {
    -webkit-animation-delay: -0.25s !important;
            animation-delay: -0.25s !important; }
  .line-scale-pulse-out-rapid > div:nth-child(1), .line-scale-pulse-out-rapid > div:nth-child(5) {
    -webkit-animation-delay: 0s !important;
            animation-delay: 0s !important; }

@-webkit-keyframes line-spin-fade-loader {
  50% {
    opacity: 0.3; }
  100% {
    opacity: 1; } }

@keyframes line-spin-fade-loader {
  50% {
    opacity: 0.3; }
  100% {
    opacity: 1; } }

.line-spin-fade-loader {
  position: relative;
  top: -10px;
  left: -4px; }
  .line-spin-fade-loader > div:nth-child(1) {
    top: 20px;
    left: 0;
    -webkit-animation: line-spin-fade-loader 1.2s -0.84s infinite ease-in-out;
            animation: line-spin-fade-loader 1.2s -0.84s infinite ease-in-out; }
  .line-spin-fade-loader > div:nth-child(2) {
    top: 13.6363636364px;
    left: 13.6363636364px;
    -webkit-transform: rotate(-45deg);
            transform: rotate(-45deg);
    -webkit-animation: line-spin-fade-loader 1.2s -0.72s infinite ease-in-out;
            animation: line-spin-fade-loader 1.2s -0.72s infinite ease-in-out; }
  .line-spin-fade-loader > div:nth-child(3) {
    top: 0;
    left: 20px;
    -webkit-transform: rotate(90deg);
            transform: rotate(90deg);
    -webkit-animation: line-spin-fade-loader 1.2s -0.6s infinite ease-in-out;
            animation: line-spin-fade-loader 1.2s -0.6s infinite ease-in-out; }
  .line-spin-fade-loader > div:nth-child(4) {
    top: -13.6363636364px;
    left: 13.6363636364px;
    -webkit-transform: rotate(45deg);
            transform: rotate(45deg);
    -webkit-animation: line-spin-fade-loader 1.2s -0.48s infinite ease-in-out;
            animation: line-spin-fade-loader 1.2s -0.48s infinite ease-in-out; }
  .line-spin-fade-loader > div:nth-child(5) {
    top: -20px;
    left: 0;
    -webkit-animation: line-spin-fade-loader 1.2s -0.36s infinite ease-in-out;
            animation: line-spin-fade-loader 1.2s -0.36s infinite ease-in-out; }
  .line-spin-fade-loader > div:nth-child(6) {
    top: -13.6363636364px;
    left: -13.6363636364px;
    -webkit-transform: rotate(-45deg);
            transform: rotate(-45deg);
    -webkit-animation: line-spin-fade-loader 1.2s -0.24s infinite ease-in-out;
            animation: line-spin-fade-loader 1.2s -0.24s infinite ease-in-out; }
  .line-spin-fade-loader > div:nth-child(7) {
    top: 0;
    left: -20px;
    -webkit-transform: rotate(90deg);
            transform: rotate(90deg);
    -webkit-animation: line-spin-fade-loader 1.2s -0.12s infinite ease-in-out;
            animation: line-spin-fade-loader 1.2s -0.12s infinite ease-in-out; }
  .line-spin-fade-loader > div:nth-child(8) {
    top: 13.6363636364px;
    left: -13.6363636364px;
    -webkit-transform: rotate(45deg);
            transform: rotate(45deg);
    -webkit-animation: line-spin-fade-loader 1.2s 0s infinite ease-in-out;
            animation: line-spin-fade-loader 1.2s 0s infinite ease-in-out; }
  .line-spin-fade-loader > div {
    background-color: #6366c5;
    width: 4px;
    height: 35px;
    border-radius: 2px;
    margin: 2px;
    -webkit-animation-fill-mode: both;
            animation-fill-mode: both;
    position: absolute;
    width: 5px;
    height: 15px; }

/**
 * Misc
 */
@-webkit-keyframes triangle-skew-spin {
  25% {
    -webkit-transform: perspective(100px) rotateX(180deg) rotateY(0);
            transform: perspective(100px) rotateX(180deg) rotateY(0); }
  50% {
    -webkit-transform: perspective(100px) rotateX(180deg) rotateY(180deg);
            transform: perspective(100px) rotateX(180deg) rotateY(180deg); }
  75% {
    -webkit-transform: perspective(100px) rotateX(0) rotateY(180deg);
            transform: perspective(100px) rotateX(0) rotateY(180deg); }
  100% {
    -webkit-transform: perspective(100px) rotateX(0) rotateY(0);
            transform: perspective(100px) rotateX(0) rotateY(0); } }
@keyframes triangle-skew-spin {
  25% {
    -webkit-transform: perspective(100px) rotateX(180deg) rotateY(0);
            transform: perspective(100px) rotateX(180deg) rotateY(0); }
  50% {
    -webkit-transform: perspective(100px) rotateX(180deg) rotateY(180deg);
            transform: perspective(100px) rotateX(180deg) rotateY(180deg); }
  75% {
    -webkit-transform: perspective(100px) rotateX(0) rotateY(180deg);
            transform: perspective(100px) rotateX(0) rotateY(180deg); }
  100% {
    -webkit-transform: perspective(100px) rotateX(0) rotateY(0);
            transform: perspective(100px) rotateX(0) rotateY(0); } }

.triangle-skew-spin > div {
  -webkit-animation-fill-mode: both;
          animation-fill-mode: both;
  width: 0;
  height: 0;
  border-left: 20px solid transparent;
  border-right: 20px solid transparent;
  border-bottom: 20px solid #6366c5;
  -webkit-animation: triangle-skew-spin 3s 0s cubic-bezier(0.09, 0.57, 0.49, 0.9) infinite;
          animation: triangle-skew-spin 3s 0s cubic-bezier(0.09, 0.57, 0.49, 0.9) infinite; }

@-webkit-keyframes square-spin {
  25% {
    -webkit-transform: perspective(100px) rotateX(180deg) rotateY(0);
            transform: perspective(100px) rotateX(180deg) rotateY(0); }
  50% {
    -webkit-transform: perspective(100px) rotateX(180deg) rotateY(180deg);
            transform: perspective(100px) rotateX(180deg) rotateY(180deg); }
  75% {
    -webkit-transform: perspective(100px) rotateX(0) rotateY(180deg);
            transform: perspective(100px) rotateX(0) rotateY(180deg); }
  100% {
    -webkit-transform: perspective(100px) rotateX(0) rotateY(0);
            transform: perspective(100px) rotateX(0) rotateY(0); } }

@keyframes square-spin {
  25% {
    -webkit-transform: perspective(100px) rotateX(180deg) rotateY(0);
            transform: perspective(100px) rotateX(180deg) rotateY(0); }
  50% {
    -webkit-transform: perspective(100px) rotateX(180deg) rotateY(180deg);
            transform: perspective(100px) rotateX(180deg) rotateY(180deg); }
  75% {
    -webkit-transform: perspective(100px) rotateX(0) rotateY(180deg);
            transform: perspective(100px) rotateX(0) rotateY(180deg); }
  100% {
    -webkit-transform: perspective(100px) rotateX(0) rotateY(0);
            transform: perspective(100px) rotateX(0) rotateY(0); } }

.square-spin > div {
  -webkit-animation-fill-mode: both;
          animation-fill-mode: both;
  width: 50px;
  height: 50px;
  background: #6366c5;
  -webkit-animation: square-spin 3s 0s cubic-bezier(0.09, 0.57, 0.49, 0.9) infinite;
          animation: square-spin 3s 0s cubic-bezier(0.09, 0.57, 0.49, 0.9) infinite; }

@-webkit-keyframes rotate_pacman_half_up {
  0% {
    -webkit-transform: rotate(270deg);
            transform: rotate(270deg); }
  50% {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg); }
  100% {
    -webkit-transform: rotate(270deg);
            transform: rotate(270deg); } }

@keyframes rotate_pacman_half_up {
  0% {
    -webkit-transform: rotate(270deg);
            transform: rotate(270deg); }
  50% {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg); }
  100% {
    -webkit-transform: rotate(270deg);
            transform: rotate(270deg); } }

@-webkit-keyframes rotate_pacman_half_down {
  0% {
    -webkit-transform: rotate(90deg);
            transform: rotate(90deg); }
  50% {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg); }
  100% {
    -webkit-transform: rotate(90deg);
            transform: rotate(90deg); } }

@keyframes rotate_pacman_half_down {
  0% {
    -webkit-transform: rotate(90deg);
            transform: rotate(90deg); }
  50% {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg); }
  100% {
    -webkit-transform: rotate(90deg);
            transform: rotate(90deg); } }

@-webkit-keyframes pacman-balls {
  75% {
    opacity: 0.7; }
  100% {
    -webkit-transform: translate(-100px, -6.25px);
            transform: translate(-100px, -6.25px); } }

@keyframes pacman-balls {
  75% {
    opacity: 0.7; }
  100% {
    -webkit-transform: translate(-100px, -6.25px);
            transform: translate(-100px, -6.25px); } }

.pacman {
  position: relative; }
  .pacman > div:nth-child(2) {
    -webkit-animation: pacman-balls 1s -0.99s infinite linear;
            animation: pacman-balls 1s -0.99s infinite linear; }
  .pacman > div:nth-child(3) {
    -webkit-animation: pacman-balls 1s -0.66s infinite linear;
            animation: pacman-balls 1s -0.66s infinite linear; }
  .pacman > div:nth-child(4) {
    -webkit-animation: pacman-balls 1s -0.33s infinite linear;
            animation: pacman-balls 1s -0.33s infinite linear; }
  .pacman > div:nth-child(5) {
    -webkit-animation: pacman-balls 1s 0s infinite linear;
            animation: pacman-balls 1s 0s infinite linear; }
  .pacman > div:first-of-type {
    width: 0px;
    height: 0px;
    border-right: 25px solid transparent;
    border-top: 25px solid #6366c5;
    border-left: 25px solid #6366c5;
    border-bottom: 25px solid #6366c5;
    border-radius: 25px;
    -webkit-animation: rotate_pacman_half_up 0.5s 0s infinite;
            animation: rotate_pacman_half_up 0.5s 0s infinite;
    position: relative;
    left: -30px; }
  .pacman > div:nth-child(2) {
    width: 0px;
    height: 0px;
    border-right: 25px solid transparent;
    border-top: 25px solid #6366c5;
    border-left: 25px solid #6366c5;
    border-bottom: 25px solid #6366c5;
    border-radius: 25px;
    -webkit-animation: rotate_pacman_half_down 0.5s 0s infinite;
            animation: rotate_pacman_half_down 0.5s 0s infinite;
    margin-top: -50px;
    position: relative;
    left: -30px; }
  .pacman > div:nth-child(3),
  .pacman > div:nth-child(4),
  .pacman > div:nth-child(5),
  .pacman > div:nth-child(6) {
    background-color: #6366c5;
    width: 15px;
    height: 15px;
    border-radius: 100%;
    margin: 2px;
    width: 10px;
    height: 10px;
    position: absolute;
    -webkit-transform: translate(0, -6.25px);
            transform: translate(0, -6.25px);
    top: 25px;
    left: 70px; }

@-webkit-keyframes cube-transition {
  25% {
    -webkit-transform: translateX(50px) scale(0.5) rotate(-90deg);
            transform: translateX(50px) scale(0.5) rotate(-90deg); }
  50% {
    -webkit-transform: translate(50px, 50px) rotate(-180deg);
            transform: translate(50px, 50px) rotate(-180deg); }
  75% {
    -webkit-transform: translateY(50px) scale(0.5) rotate(-270deg);
            transform: translateY(50px) scale(0.5) rotate(-270deg); }
  100% {
    -webkit-transform: rotate(-360deg);
            transform: rotate(-360deg); } }

@keyframes cube-transition {
  25% {
    -webkit-transform: translateX(50px) scale(0.5) rotate(-90deg);
            transform: translateX(50px) scale(0.5) rotate(-90deg); }
  50% {
    -webkit-transform: translate(50px, 50px) rotate(-180deg);
            transform: translate(50px, 50px) rotate(-180deg); }
  75% {
    -webkit-transform: translateY(50px) scale(0.5) rotate(-270deg);
            transform: translateY(50px) scale(0.5) rotate(-270deg); }
  100% {
    -webkit-transform: rotate(-360deg);
            transform: rotate(-360deg); } }

.cube-transition {
  position: relative;
  -webkit-transform: translate(-25px, -25px);
          transform: translate(-25px, -25px); }
  .cube-transition > div {
    -webkit-animation-fill-mode: both;
            animation-fill-mode: both;
    width: 10px;
    height: 10px;
    position: absolute;
    top: -5px;
    left: -5px;
    background-color: #6366c5;
    -webkit-animation: cube-transition 1.6s 0s infinite ease-in-out;
            animation: cube-transition 1.6s 0s infinite ease-in-out; }
    .cube-transition > div:last-child {
      -webkit-animation-delay: -0.8s;
              animation-delay: -0.8s; }

@-webkit-keyframes spin-rotate {
  0% {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg); }
  50% {
    -webkit-transform: rotate(180deg);
            transform: rotate(180deg); }
  100% {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg); } }

@keyframes spin-rotate {
  0% {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg); }
  50% {
    -webkit-transform: rotate(180deg);
            transform: rotate(180deg); }
  100% {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg); } }

.semi-circle-spin {
  position: relative;
  width: 35px;
  height: 35px;
  overflow: hidden; }
  .semi-circle-spin > div {
    position: absolute;
    border-width: 0px;
    border-radius: 100%;
    -webkit-animation: spin-rotate 0.6s 0s infinite linear;
            animation: spin-rotate 0.6s 0s infinite linear;
    background-image: -webkit-linear-gradient(transparent 0%, transparent 70%, #6366c5 30%, #6366c5 100%);
    background-image: linear-gradient(transparent 0%, transparent 70%, #6366c5 30%, #6366c5 100%);
    width: 100%;
    height: 100%; }

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxvYWRlcnMuc2NzcyIsIi4uLy4uL3ZlbmRvci9sb2FkZXJzLmNzcy9zcmMvYW5pbWF0aW9ucy9iYWxsLXB1bHNlLnNjc3MiLCIuLi8uLi92ZW5kb3IvbG9hZGVycy5jc3Mvc3JjL19taXhpbnMuc2NzcyIsIi4uLy4uL3ZlbmRvci9sb2FkZXJzLmNzcy9zcmMvYW5pbWF0aW9ucy9iYWxsLXB1bHNlLXN5bmMuc2NzcyIsIi4uLy4uL3ZlbmRvci9sb2FkZXJzLmNzcy9zcmMvYW5pbWF0aW9ucy9iYWxsLXNjYWxlLnNjc3MiLCIuLi8uLi92ZW5kb3IvbG9hZGVycy5jc3Mvc3JjL2FuaW1hdGlvbnMvYmFsbC1zY2FsZS1yYW5kb20uc2NzcyIsIi4uLy4uL3ZlbmRvci9sb2FkZXJzLmNzcy9zcmMvYW5pbWF0aW9ucy9iYWxsLXJvdGF0ZS5zY3NzIiwiLi4vLi4vdmVuZG9yL2xvYWRlcnMuY3NzL3NyYy9hbmltYXRpb25zL2JhbGwtY2xpcC1yb3RhdGUuc2NzcyIsIi4uLy4uL3ZlbmRvci9sb2FkZXJzLmNzcy9zcmMvYW5pbWF0aW9ucy9iYWxsLWNsaXAtcm90YXRlLXB1bHNlLnNjc3MiLCIuLi8uLi92ZW5kb3IvbG9hZGVycy5jc3Mvc3JjL2FuaW1hdGlvbnMvYmFsbC1jbGlwLXJvdGF0ZS1tdWx0aXBsZS5zY3NzIiwiLi4vLi4vdmVuZG9yL2xvYWRlcnMuY3NzL3NyYy9hbmltYXRpb25zL2JhbGwtc2NhbGUtcmlwcGxlLnNjc3MiLCIuLi8uLi92ZW5kb3IvbG9hZGVycy5jc3Mvc3JjL2FuaW1hdGlvbnMvYmFsbC1zY2FsZS1yaXBwbGUtbXVsdGlwbGUuc2NzcyIsIi4uLy4uL3ZlbmRvci9sb2FkZXJzLmNzcy9zcmMvX2Z1bmN0aW9ucy5zY3NzIiwiLi4vLi4vdmVuZG9yL2xvYWRlcnMuY3NzL3NyYy9hbmltYXRpb25zL2JhbGwtYmVhdC5zY3NzIiwiLi4vLi4vdmVuZG9yL2xvYWRlcnMuY3NzL3NyYy9hbmltYXRpb25zL2JhbGwtc2NhbGUtbXVsdGlwbGUuc2NzcyIsIi4uLy4uL3ZlbmRvci9sb2FkZXJzLmNzcy9zcmMvYW5pbWF0aW9ucy9iYWxsLXRyaWFuZ2xlLXRyYWNlLnNjc3MiLCIuLi8uLi92ZW5kb3IvbG9hZGVycy5jc3Mvc3JjL2FuaW1hdGlvbnMvYmFsbC1wdWxzZS1yaXNlLnNjc3MiLCIuLi8uLi92ZW5kb3IvbG9hZGVycy5jc3Mvc3JjL2FuaW1hdGlvbnMvYmFsbC1ncmlkLWJlYXQuc2NzcyIsIi4uLy4uL3ZlbmRvci9sb2FkZXJzLmNzcy9zcmMvYW5pbWF0aW9ucy9iYWxsLWdyaWQtcHVsc2Uuc2NzcyIsIi4uLy4uL3ZlbmRvci9sb2FkZXJzLmNzcy9zcmMvYW5pbWF0aW9ucy9iYWxsLXNwaW4tZmFkZS1sb2FkZXIuc2NzcyIsIi4uLy4uL3ZlbmRvci9sb2FkZXJzLmNzcy9zcmMvYW5pbWF0aW9ucy9iYWxsLXNwaW4tbG9hZGVyLnNjc3MiLCIuLi8uLi92ZW5kb3IvbG9hZGVycy5jc3Mvc3JjL2FuaW1hdGlvbnMvYmFsbC16aWctemFnLnNjc3MiLCIuLi8uLi92ZW5kb3IvbG9hZGVycy5jc3Mvc3JjL2FuaW1hdGlvbnMvYmFsbC16aWctemFnLWRlZmxlY3Quc2NzcyIsIi4uLy4uL3ZlbmRvci9sb2FkZXJzLmNzcy9zcmMvYW5pbWF0aW9ucy9saW5lLXNjYWxlLnNjc3MiLCIuLi8uLi92ZW5kb3IvbG9hZGVycy5jc3Mvc3JjL2FuaW1hdGlvbnMvbGluZS1zY2FsZS1yYW5kb20uc2NzcyIsIi4uLy4uL3ZlbmRvci9sb2FkZXJzLmNzcy9zcmMvYW5pbWF0aW9ucy9saW5lLXNjYWxlLXB1bHNlLW91dC5zY3NzIiwiLi4vLi4vdmVuZG9yL2xvYWRlcnMuY3NzL3NyYy9hbmltYXRpb25zL2xpbmUtc2NhbGUtcHVsc2Utb3V0LXJhcGlkLnNjc3MiLCIuLi8uLi92ZW5kb3IvbG9hZGVycy5jc3Mvc3JjL2FuaW1hdGlvbnMvbGluZS1zcGluLWZhZGUtbG9hZGVyLnNjc3MiLCIuLi8uLi92ZW5kb3IvbG9hZGVycy5jc3Mvc3JjL2FuaW1hdGlvbnMvdHJpYW5nbGUtc2tldy1zcGluLnNjc3MiLCIuLi8uLi92ZW5kb3IvbG9hZGVycy5jc3Mvc3JjL2FuaW1hdGlvbnMvc3F1YXJlLXNwaW4uc2NzcyIsIi4uLy4uL3ZlbmRvci9sb2FkZXJzLmNzcy9zcmMvYW5pbWF0aW9ucy9wYWNtYW4uc2NzcyIsIi4uLy4uL3ZlbmRvci9sb2FkZXJzLmNzcy9zcmMvYW5pbWF0aW9ucy9jdWJlLXRyYW5zaXRpb24uc2NzcyIsIi4uLy4uL3ZlbmRvci9sb2FkZXJzLmNzcy9zcmMvYW5pbWF0aW9ucy9zZW1pLWNpcmNsZS1zcGluLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBR0g7O0dBRUc7QUFTSDs7R0FFRztBQ2xCSDtFQUNFO0lBQ0UsNEJBQWdCO1lBQWhCLG9CQUFnQjtJQUNoQixXQUFXLEVBQUE7RUFFYjtJQUNFLDhCQUFnQjtZQUFoQixzQkFBZ0I7SUFDaEIsYUFBYSxFQUFBO0VBRWY7SUFDRSw0QkFBZ0I7WUFBaEIsb0JBQWdCO0lBQ2hCLFdBQVcsRUFBQSxFQUFBO0FBWGY7RUFDRTtJQUNFLDRCQUFnQjtZQUFoQixvQkFBZ0I7SUFDaEIsV0FBVyxFQUFBO0VBRWI7SUFDRSw4QkFBZ0I7WUFBaEIsc0JBQWdCO0lBQ2hCLGFBQWEsRUFBQTtFQUVmO0lBQ0UsNEJBQWdCO1lBQWhCLG9CQUFnQjtJQUNoQixXQUFXLEVBQUEsRUFBQTs7QUFPTTtFQUNmLG1GQUFpRTtVQUFqRSwyRUFBaUUsRUFDbEU7O0FBRmdCO0VBQ2YsbUZBQWlFO1VBQWpFLDJFQUFpRSxFQUNsRTs7QUFGZ0I7RUFDZixtRkFBaUU7VUFBakUsMkVBQWlFLEVBQ2xFOztBQUZnQjtFQUNmLCtFQUFpRTtVQUFqRSx1RUFBaUUsRUFDbEU7O0FBSUw7RUMzQkUsMEJGWWlCO0VFRmpCLFlGR2M7RUVGZCxhRkVjO0VFRGQsb0JBQW9CO0VBQ3BCLFlGQ1U7RUVWVixrQ0FBMEI7VUFBMUIsMEJBQTBCO0VEOEJ4QixzQkFBc0IsRUFDdkI7O0FFOUJIO0VBQ0U7SUFDRSxvQ0FBcUI7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d0RBQXdELEVBS3pEO0lBbEJIO01BZ0JNLCtCQUNEO2NBREMsdUJBQ0QsRUFBQzs7QUNoQ047RUFDRTtJQUNFLGdDQUFpQjtZQUFqQix3QkFBaUIsRUFBQTtFQUVuQjtJQUNFLGtDQUFpQjtZQUFqQiwwQkFBaUIsRUFBQTtFQUVuQjtJQUNFLGtDQUFpQjtZQUFqQiwwQkFBaUIsRUFBQSxFQUFBOztBQVJyQjtFQUNFO0lBQ0UsZ0NBQWlCO1lBQWpCLHdCQUFpQixFQUFBO0VBRW5CO0lBQ0Usa0NBQWlCO1lBQWpCLDBCQUFpQixFQUFBO0VBRW5CO0lBQ0Usa0NBQWlCO1lBQWpCLDBCQUFpQixFQUFBLEVBQUE7O0FBSXJCO0VBQ0UsbUJBQW1CO0VBQ25CLFlBakJTO0VBa0JULGFBbEJTO0VBbUJULGlCQUFpQixFQVdsQjtFQWZEO0lBT0ksbUJBQW1CO0lBQ25CLGtCQUFrQjtJQUNsQixvQkFBb0I7SUFDcEIsdURBQStDO1lBQS9DLCtDQUErQztJQUMvQyxzR0FBaUM7SUFBakMsOEZBQWlDO0lBQ2pDLFlBQVk7SUFDWixhQUFhLEVBQ2QiLCJmaWxlIjoibG9hZGVycy5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqXG4gKiBBbGwgYW5pbWF0aW9ucyBtdXN0IGxpdmUgaW4gdGhlaXIgb3duIGZpbGVcbiAqIGluIHRoZSBhbmltYXRpb25zIGRpcmVjdG9yeSBhbmQgYmUgaW5jbHVkZWRcbiAqIGhlcmUuXG4gKlxuICovXG5cblxuLyoqXG4gKiBTdHlsZXMgc2hhcmVkIGJ5IG11bHRpcGxlIGFuaW1hdGlvbnNcbiAqL1xuXG4kcHJpbWFyeS1jb2xvcjogcmdiKDk5LCAxMDIsIDE5NykgIWRlZmF1bHQ7XG4kYmFsbC1zaXplOiAxNXB4ICFkZWZhdWx0O1xuJG1hcmdpbjogMnB4ICFkZWZhdWx0O1xuJGxpbmUtaGVpZ2h0OiAzNXB4ICFkZWZhdWx0O1xuJGxpbmUtd2lkdGg6IDRweCAhZGVmYXVsdDtcbkBpbXBvcnQgJy4uLy4uL3ZlbmRvci9sb2FkZXJzLmNzcy9zcmMvbWl4aW5zJztcblxuLyoqXG4gKiBEb3RzXG4gKi9cblxuQGltcG9ydCAnLi4vLi4vdmVuZG9yL2xvYWRlcnMuY3NzL3NyYy9hbmltYXRpb25zL2JhbGwtcHVsc2UnO1xuQGltcG9ydCAnLi4vLi4vdmVuZG9yL2xvYWRlcnMuY3NzL3NyYy9hbmltYXRpb25zL2JhbGwtcHVsc2Utc3luYyc7XG5AaW1wb3J0ICcuLi8uLi92ZW5kb3IvbG9hZGVycy5jc3Mvc3JjL2FuaW1hdGlvbnMvYmFsbC1zY2FsZSc7XG5AaW1wb3J0ICcuLi8uLi92ZW5kb3IvbG9hZGVycy5jc3Mvc3JjL2FuaW1hdGlvbnMvYmFsbC1zY2FsZS1yYW5kb20nO1xuQGltcG9ydCAnLi4vLi4vdmVuZG9yL2xvYWRlcnMuY3NzL3NyYy9hbmltYXRpb25zL2JhbGwtcm90YXRlJztcbkBpbXBvcnQgJy4uLy4uL3ZlbmRvci9sb2FkZXJzLmNzcy9zcmMvYW5pbWF0aW9ucy9iYWxsLWNsaXAtcm90YXRlJztcbkBpbXBvcnQgJy4uLy4uL3ZlbmRvci9sb2FkZXJzLmNzcy9zcmMvYW5pbWF0aW9ucy9iYWxsLWNsaXAtcm90YXRlLXB1bHNlJztcbkBpbXBvcnQgJy4uLy4uL3ZlbmRvci9sb2FkZXJzLmNzcy9zcmMvYW5pbWF0aW9ucy9iYWxsLWNsaXAtcm90YXRlLW11bHRpcGxlJztcbkBpbXBvcnQgJy4uLy4uL3ZlbmRvci9sb2FkZXJzLmNzcy9zcmMvYW5pbWF0aW9ucy9iYWxsLXNjYWxlLXJpcHBsZSc7XG5AaW1wb3J0ICcuLi8uLi92ZW5kb3IvbG9hZGVycy5jc3Mvc3JjL2FuaW1hdGlvbnMvYmFsbC1zY2FsZS1yaXBwbGUtbXVsdGlwbGUnO1xuQGltcG9ydCAnLi4vLi4vdmVuZG9yL2xvYWRlcnMuY3NzL3NyYy9hbmltYXRpb25zL2JhbGwtYmVhdCc7XG5AaW1wb3J0ICcuLi8uLi92ZW5kb3IvbG9hZGVycy5jc3Mvc3JjL2FuaW1hdGlvbnMvYmFsbC1zY2FsZS1tdWx0aXBsZSc7XG5AaW1wb3J0ICcuLi8uLi92ZW5kb3IvbG9hZGVycy5jc3Mvc3JjL2FuaW1hdGlvbnMvYmFsbC10cmlhbmdsZS10cmFjZSc7XG5AaW1wb3J0ICcuLi8uLi92ZW5kb3IvbG9hZGVycy5jc3Mvc3JjL2FuaW1hdGlvbnMvYmFsbC1wdWxzZS1yaXNlJztcbkBpbXBvcnQgJy4uLy4uL3ZlbmRvci9sb2FkZXJzLmNzcy9zcmMvYW5pbWF0aW9ucy9iYWxsLWdyaWQtYmVhdCc7XG5AaW1wb3J0ICcuLi8uLi92ZW5kb3IvbG9hZGVycy5jc3Mvc3JjL2FuaW1hdGlvbnMvYmFsbC1ncmlkLXB1bHNlJztcbkBpbXBvcnQgJy4uLy4uL3ZlbmRvci9sb2FkZXJzLmNzcy9zcmMvYW5pbWF0aW9ucy9iYWxsLXNwaW4tZmFkZS1sb2FkZXInO1xuQGltcG9ydCAnLi4vLi4vdmVuZG9yL2xvYWRlcnMuY3NzL3NyYy9hbmltYXRpb25zL2JhbGwtc3Bpbi1sb2FkZXInO1xuQGltcG9ydCAnLi4vLi4vdmVuZG9yL2xvYWRlcnMuY3NzL3NyYy9hbmltYXRpb25zL2JhbGwtemlnLXphZyc7XG5AaW1wb3J0ICcuLi8uLi92ZW5kb3IvbG9hZGVycy5jc3Mvc3JjL2FuaW1hdGlvbnMvYmFsbC16aWctemFnLWRlZmxlY3QnO1xuXG4vKipcbiAqIExpbmVzXG4gKi9cblxuQGltcG9ydCAnLi4vLi4vdmVuZG9yL2xvYWRlcnMuY3NzL3NyYy9hbmltYXRpb25zL2xpbmUtc2NhbGUnO1xuQGltcG9ydCAnLi4vLi4vdmVuZG9yL2xvYWRlcnMuY3NzL3NyYy9hbmltYXRpb25zL2xpbmUtc2NhbGUtcmFuZG9tJztcbkBpbXBvcnQgJy4uLy4uL3ZlbmRvci9sb2FkZXJzLmNzcy9zcmMvYW5pbWF0aW9ucy9saW5lLXNjYWxlLXB1bHNlLW91dCc7XG5AaW1wb3J0ICcuLi8uLi92ZW5kb3IvbG9hZGVycy5jc3Mvc3JjL2FuaW1hdGlvbnMvbGluZS1zY2FsZS1wdWxzZS1vdXQtcmFwaWQnO1xuQGltcG9ydCAnLi4vLi4vdmVuZG9yL2xvYWRlcnMuY3NzL3NyYy9hbmltYXRpb25zL2xpbmUtc3Bpbi1mYWRlLWxvYWRlcic7XG5cbi8qKlxuICogTWlzY1xuICovXG5cbkBpbXBvcnQgJy4uLy4uL3ZlbmRvci9sb2FkZXJzLmNzcy9zcmMvYW5pbWF0aW9ucy90cmlhbmdsZS1za2V3LXNwaW4nO1xuQGltcG9ydCAnLi4vLi4vdmVuZG9yL2xvYWRlcnMuY3NzL3NyYy9hbmltYXRpb25zL3NxdWFyZS1zcGluJztcbkBpbXBvcnQgJy4uLy4uL3ZlbmRvci9sb2FkZXJzLmNzcy9zcmMvYW5pbWF0aW9ucy9wYWNtYW4nO1xuQGltcG9ydCAnLi4vLi4vdmVuZG9yL2xvYWRlcnMuY3NzL3NyYy9hbmltYXRpb25zL2N1YmUtdHJhbnNpdGlvbic7XG5AaW1wb3J0ICcuLi8uLi92ZW5kb3IvbG9hZGVycy5jc3Mvc3JjL2FuaW1hdGlvbnMvc2VtaS1jaXJjbGUtc3Bpbic7XG4iLCJAaW1wb3J0ICcuLi92YXJpYWJsZXMnO1xuQGltcG9ydCAnLi4vbWl4aW5zJztcbkBpbXBvcnQgJy4uL2Z1bmN0aW9ucyc7XG5cbkBrZXlmcmFtZXMgc2NhbGUge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIDQ1JSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjEpO1xuICAgIG9wYWNpdHk6IDAuNztcbiAgfVxuICA4MCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG4vLyBtaXhpbnMgc2hvdWxkIGJlIHNlcGFyYXRlZCBvdXRcbkBtaXhpbiBiYWxsLXB1bHNlKCRuOjMsICRzdGFydDowKSB7XG4gIEBmb3IgJGkgZnJvbSAkc3RhcnQgdGhyb3VnaCAkbiB7XG4gICAgPiBkaXY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICBhbmltYXRpb246IHNjYWxlIDAuNzVzIGRlbGF5KDAuMTJzLCAkbiwgJGkpIGluZmluaXRlIGN1YmljLWJlemllciguMiwuNjgsLjE4LDEuMDgpO1xuICAgIH1cbiAgfVxufVxuXG4uYmFsbC1wdWxzZSB7XG4gIEBpbmNsdWRlIGJhbGwtcHVsc2UoKTtcblxuICA+IGRpdiB7XG4gICAgQGluY2x1ZGUgYmFsbHMoKTtcbiAgICBAaW5jbHVkZSBnbG9iYWwtYW5pbWF0aW9uKCk7XG5cbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIH1cbn1cbiIsIkBtaXhpbiBnbG9iYWwtYmcoKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xufVxuXG5AbWl4aW4gZ2xvYmFsLWFuaW1hdGlvbigpIHtcbiAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcbn1cblxuQG1peGluIGJhbGxzKCkge1xuICBAaW5jbHVkZSBnbG9iYWwtYmcoKTtcblxuICB3aWR0aDogJGJhbGwtc2l6ZTtcbiAgaGVpZ2h0OiAkYmFsbC1zaXplO1xuICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICBtYXJnaW46ICRtYXJnaW47XG59XG5cbkBtaXhpbiBsaW5lcygpIHtcbiAgQGluY2x1ZGUgZ2xvYmFsLWJnKCk7XG5cbiAgd2lkdGg6ICRsaW5lLXdpZHRoO1xuICBoZWlnaHQ6ICRsaW5lLWhlaWdodDtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBtYXJnaW46ICRtYXJnaW47XG59XG4iLCJAaW1wb3J0ICcuLi92YXJpYWJsZXMnO1xuQGltcG9ydCAnLi4vbWl4aW5zJztcbkBpbXBvcnQgJy4uL2Z1bmN0aW9ucyc7XG5cbiRhbW91bnQ6IDEwcHg7XG5cbkBrZXlmcmFtZXMgYmFsbC1wdWxzZS1zeW5jIHtcbiAgMzMlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoJGFtb3VudCk7XG4gIH1cbiAgNjYlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLSRhbW91bnQpO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgfVxufVxuXG5AbWl4aW4gYmFsbC1wdWxzZS1zeW5jKCRuOjMsICRzdGFydDowKSB7XG4gIEBmb3IgJGkgZnJvbSAkc3RhcnQgdGhyb3VnaCAkbiB7XG4gICAgPiBkaXY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICBhbmltYXRpb246IGJhbGwtcHVsc2Utc3luYyAwLjZzIGRlbGF5KDAuMDdzLCAkbiwgJGkpIGluZmluaXRlIGVhc2UtaW4tb3V0O1xuICAgIH1cbiAgfVxufVxuXG4uYmFsbC1wdWxzZS1zeW5jIHtcbiAgQGluY2x1ZGUgYmFsbC1wdWxzZS1zeW5jKCk7XG5cbiAgPiBkaXYge1xuICAgIEBpbmNsdWRlIGJhbGxzKCk7XG4gICAgQGluY2x1ZGUgZ2xvYmFsLWFuaW1hdGlvbigpO1xuXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG59XG4iLCJAaW1wb3J0ICcuLi92YXJpYWJsZXMnO1xuQGltcG9ydCAnLi4vbWl4aW5zJztcblxuQGtleWZyYW1lcyBiYWxsLXNjYWxlIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC4wKTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMCk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG4uYmFsbC1zY2FsZSB7XG5cbiAgPiBkaXYge1xuICAgIEBpbmNsdWRlIGJhbGxzKCk7XG4gICAgQGluY2x1ZGUgZ2xvYmFsLWFuaW1hdGlvbigpO1xuXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGhlaWdodDogNjBweDtcbiAgICB3aWR0aDogNjBweDtcbiAgICBhbmltYXRpb246IGJhbGwtc2NhbGUgMXMgMHMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG4gIH1cbn1cbiIsIkBpbXBvcnQgXCJiYWxsLXNjYWxlXCI7XG5cbi5iYWxsLXNjYWxlLXJhbmRvbSB7XG4gIHdpZHRoOiAzN3B4O1xuICBoZWlnaHQ6IDQwcHg7XG5cbiAgPiBkaXYge1xuICAgIEBpbmNsdWRlIGJhbGxzKCk7XG4gICAgQGluY2x1ZGUgZ2xvYmFsLWFuaW1hdGlvbigpO1xuICAgIFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgaGVpZ2h0OiAzMHB4O1xuICAgIHdpZHRoOiAzMHB4O1xuICAgIGFuaW1hdGlvbjogYmFsbC1zY2FsZSAxcyAwcyBlYXNlLWluLW91dCBpbmZpbml0ZTtcblxuICAgICY6bnRoLWNoaWxkKDEpIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtN3B4O1xuICAgICAgYW5pbWF0aW9uOiBiYWxsLXNjYWxlIDFzIDAuMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG4gICAgfVxuXG4gICAgJjpudGgtY2hpbGQoMykge1xuICAgICAgbWFyZ2luLWxlZnQ6IC0ycHg7XG4gICAgICBtYXJnaW4tdG9wOiA5cHg7XG4gICAgICBhbmltYXRpb246IGJhbGwtc2NhbGUgMXMgMC41cyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbiAgICB9XG4gIH1cbn1cbiIsIkBpbXBvcnQgJy4uL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICcuLi9taXhpbnMnO1xuXG5Aa2V5ZnJhbWVzIHJvdGF0ZSB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgfVxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiB9XG59XG5cbi5iYWxsLXJvdGF0ZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICA+IGRpdiB7XG4gICAgQGluY2x1ZGUgYmFsbHMoKTtcbiAgICBAaW5jbHVkZSBnbG9iYWwtYW5pbWF0aW9uKCk7XG5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIGFuaW1hdGlvbjogcm90YXRlIDFzIDBzIGN1YmljLWJlemllciguNywtLjEzLC4yMiwuODYpIGluZmluaXRlO1xuICAgIH1cblxuICAgICY6YmVmb3JlLCAmOmFmdGVyIHtcbiAgICAgIEBpbmNsdWRlIGJhbGxzKCk7XG5cbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBvcGFjaXR5OiAwLjg7XG4gICAgfVxuXG4gICAgJjpiZWZvcmUge1xuICAgICAgdG9wOiAwcHg7XG4gICAgICBsZWZ0OiAtMjhweDtcbiAgICB9XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgIHRvcDogMHB4O1xuICAgICAgbGVmdDogMjVweDtcbiAgICB9XG4gIH1cbn1cbiIsIkBpbXBvcnQgJy4uL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICcuLi9taXhpbnMnO1xuXG5Aa2V5ZnJhbWVzIHJvdGF0ZSB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKSBzY2FsZSgxKTtcbiAgfVxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZykgc2NhbGUoMC42KTtcbiAgfVxuICAxMDAlIHtcbiAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZykgc2NhbGUoMSk7XG4gfVxufVxuXG4uYmFsbC1jbGlwLXJvdGF0ZSB7XG5cbiAgPiBkaXYge1xuICAgIEBpbmNsdWRlIGJhbGxzKCk7XG4gICAgQGluY2x1ZGUgZ2xvYmFsLWFuaW1hdGlvbigpO1xuXG4gICAgYm9yZGVyOiAycHggc29saWQgJHByaW1hcnktY29sb3I7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgaGVpZ2h0OiAyNXB4O1xuICAgIHdpZHRoOiAyNXB4O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGFuaW1hdGlvbjogcm90YXRlIDAuNzVzIDBzIGxpbmVhciBpbmZpbml0ZTtcbiAgfVxufVxuIiwiQGltcG9ydCAnLi4vdmFyaWFibGVzJztcbkBpbXBvcnQgJy4uL21peGlucyc7XG5cbkBrZXlmcmFtZXMgcm90YXRlIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpIHNjYWxlKDEpO1xuICB9XG4gIDUwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKSBzY2FsZSgwLjYpO1xuICB9XG4gIDEwMCUge1xuICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKSBzY2FsZSgxKTtcbiB9XG59XG5cbkBrZXlmcmFtZXMgc2NhbGUge1xuICAzMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC4zKTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB9XG59XG5cbi5iYWxsLWNsaXAtcm90YXRlLXB1bHNlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTE1cHgpO1xuXG4gID4gZGl2IHtcbiAgICBAaW5jbHVkZSBnbG9iYWwtYW5pbWF0aW9uKCk7XG5cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwcHg7XG4gICAgbGVmdDogMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG5cbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICB0b3A6IDdweDtcbiAgICAgIGxlZnQ6IC03cHg7XG4gICAgICBhbmltYXRpb246IHNjYWxlIDFzIDBzIGN1YmljLWJlemllciguMDksLjU3LC40OSwuOSkgaW5maW5pdGU7XG4gICAgfVxuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkICRwcmltYXJ5LWNvbG9yO1xuICAgICAgd2lkdGg6IDMwcHg7XG4gICAgICBoZWlnaHQ6IDMwcHg7ICBcbiAgICAgIGxlZnQ6IC0xNnB4O1xuICAgICAgdG9wOiAtMnB4O1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXI6IDJweCBzb2xpZDtcbiAgICAgIGJvcmRlci1jb2xvcjogJHByaW1hcnktY29sb3IgdHJhbnNwYXJlbnQgJHByaW1hcnktY29sb3IgdHJhbnNwYXJlbnQ7XG4gICAgICBhbmltYXRpb246IHJvdGF0ZSAxcyAwcyBjdWJpYy1iZXppZXIoLjA5LC41NywuNDksLjkpIGluZmluaXRlO1xuICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICB9XG4gIH1cbn1cbiIsIkBpbXBvcnQgJy4uL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICcuLi9taXhpbnMnO1xuXG5Aa2V5ZnJhbWVzIHJvdGF0ZSB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKSBzY2FsZSgxKTtcbiAgfVxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZykgc2NhbGUoMC42KTtcbiAgfVxuICAxMDAlIHtcbiAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZykgc2NhbGUoMSk7XG4gfVxufVxuXG4uYmFsbC1jbGlwLXJvdGF0ZS1tdWx0aXBsZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICA+IGRpdiB7XG4gICAgQGluY2x1ZGUgZ2xvYmFsLWFuaW1hdGlvbigpO1xuXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IC0yMHB4O1xuICAgIHRvcDogLTIwcHg7XG4gICAgYm9yZGVyOiAycHggc29saWQgJHByaW1hcnktY29sb3I7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICBoZWlnaHQ6IDM1cHg7XG4gICAgd2lkdGg6IDM1cHg7XG4gICAgYW5pbWF0aW9uOiByb3RhdGUgMXMgMHMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgdG9wOiAtMTBweDtcbiAgICAgIGxlZnQ6IC0xMHB4O1xuICAgICAgd2lkdGg6IDE1cHg7XG4gICAgICBoZWlnaHQ6IDE1cHg7XG4gICAgICBhbmltYXRpb24tZHVyYXRpb246IDAuNXM7XG4gICAgICBib3JkZXItY29sb3I6ICRwcmltYXJ5LWNvbG9yIHRyYW5zcGFyZW50ICRwcmltYXJ5LWNvbG9yIHRyYW5zcGFyZW50O1xuICAgICAgYW5pbWF0aW9uLWRpcmVjdGlvbjogcmV2ZXJzZTtcbiAgICB9XG4gIH1cbn1cbiIsIkBpbXBvcnQgJy4uL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICcuLi9taXhpbnMnO1xuXG5Aa2V5ZnJhbWVzIGJhbGwtc2NhbGUtcmlwcGxlIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC4xKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIDcwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICBvcGFjaXR5OiAwLjc7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMC4wO1xuICB9XG59XG5cbi5iYWxsLXNjYWxlLXJpcHBsZSB7XG5cbiAgPiBkaXYge1xuICAgIEBpbmNsdWRlIGdsb2JhbC1hbmltYXRpb24oKTtcblxuICAgIGhlaWdodDogNTBweDtcbiAgICB3aWR0aDogNTBweDtcbiAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICRwcmltYXJ5LWNvbG9yOztcbiAgICBhbmltYXRpb246IGJhbGwtc2NhbGUtcmlwcGxlIDFzIDBzIGluZmluaXRlIGN1YmljLWJlemllciguMjEsLjUzLC41NiwuOCk7XG4gIH1cbn1cbiIsIkBpbXBvcnQgJy4uL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICcuLi9taXhpbnMnO1xuQGltcG9ydCAnLi4vZnVuY3Rpb25zJztcblxuJHNpemU6IDUwcHg7XG5cbkBrZXlmcmFtZXMgYmFsbC1zY2FsZS1yaXBwbGUtbXVsdGlwbGUge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjEpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgNzAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIG9wYWNpdHk6IDAuNztcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwLjA7XG4gIH1cbn1cblxuQG1peGluIGJhbGwtc2NhbGUtcmlwcGxlLW11bHRpcGxlICgkbjozLCAkc3RhcnQ6MCkge1xuICBAZm9yICRpIGZyb20gJHN0YXJ0IHRocm91Z2ggJG4ge1xuICAgID4gZGl2Om50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgYW5pbWF0aW9uLWRlbGF5OiBkZWxheSgwLjJzLCAkbiwgJGkgLSAxKTtcbiAgICB9XG4gIH1cbn1cblxuLmJhbGwtc2NhbGUtcmlwcGxlLW11bHRpcGxlIHtcbiAgQGluY2x1ZGUgYmFsbC1zY2FsZS1yaXBwbGUtbXVsdGlwbGUoKTtcblxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtJHNpemUgLyAyKTtcblxuICA+IGRpdiB7XG4gICAgQGluY2x1ZGUgZ2xvYmFsLWFuaW1hdGlvbigpO1xuXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogLTJweDtcbiAgICBsZWZ0OiAtMjZweDtcbiAgICB3aWR0aDogJHNpemU7XG4gICAgaGVpZ2h0OiAkc2l6ZTtcbiAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICRwcmltYXJ5LWNvbG9yO1xuICAgIGFuaW1hdGlvbjogYmFsbC1zY2FsZS1yaXBwbGUtbXVsdGlwbGUgMS4yNXMgMHMgaW5maW5pdGUgY3ViaWMtYmV6aWVyKC4yMSwuNTMsLjU2LC44KTtcbiAgfVxufVxuIiwiQGZ1bmN0aW9uIGRlbGF5KCRpbnRlcnZhbCwgJGNvdW50LCAkaW5kZXgpIHtcbiAgQHJldHVybiAoJGluZGV4ICogJGludGVydmFsKSAtICgkaW50ZXJ2YWwgKiAkY291bnQpO1xufVxuIiwiQGltcG9ydCAnLi4vdmFyaWFibGVzJztcbkBpbXBvcnQgJy4uL21peGlucyc7XG5cbkBrZXlmcmFtZXMgYmFsbC1iZWF0IHtcbiAgNTAlIHtcbiAgICBvcGFjaXR5OiAwLjI7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjc1KTtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIH1cbn1cblxuLmJhbGwtYmVhdCB7XG5cbiAgPiBkaXYge1xuICAgIEBpbmNsdWRlIGJhbGxzKCk7XG4gICAgQGluY2x1ZGUgZ2xvYmFsLWFuaW1hdGlvbigpO1xuXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGFuaW1hdGlvbjogYmFsbC1iZWF0IDAuN3MgMHMgaW5maW5pdGUgbGluZWFyO1xuXG4gICAgJjpudGgtY2hpbGQoMm4tMSkge1xuICAgICAgYW5pbWF0aW9uLWRlbGF5OiAtMC4zNXMgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cbiIsIkBpbXBvcnQgJy4uL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICcuLi9taXhpbnMnO1xuQGltcG9ydCAnLi4vZnVuY3Rpb25zJztcblxuJHNpemU6IDYwcHg7XG5cbkBrZXlmcmFtZXMgYmFsbC1zY2FsZS1tdWx0aXBsZSB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuMCk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICA1JSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMCk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG5AbWl4aW4gYmFsbC1zY2FsZS1tdWx0aXBsZSAoJG46MywgJHN0YXJ0OjApIHtcbiAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkbiB7XG4gICAgPiBkaXY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICBhbmltYXRpb24tZGVsYXk6IGRlbGF5KDAuMnMsICRuLCAkaSAtIDEpO1xuICAgIH1cbiAgfVxufVxuXG4uYmFsbC1zY2FsZS1tdWx0aXBsZSB7XG4gIEBpbmNsdWRlIGJhbGwtc2NhbGUtbXVsdGlwbGUoKTtcblxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtJHNpemUgLyAyKTtcblxuICA+IGRpdiB7XG4gICAgQGluY2x1ZGUgYmFsbHMoKTtcbiAgICBAaW5jbHVkZSBnbG9iYWwtYW5pbWF0aW9uKCk7XG5cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogLTMwcHg7XG4gICAgdG9wOiAwcHg7XG4gICAgb3BhY2l0eTogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgd2lkdGg6ICRzaXplO1xuICAgIGhlaWdodDogJHNpemU7XG4gICAgYW5pbWF0aW9uOiBiYWxsLXNjYWxlLW11bHRpcGxlIDFzIDBzIGxpbmVhciBpbmZpbml0ZTtcbiAgfVxufVxuIiwiQGltcG9ydCAnLi4vdmFyaWFibGVzJztcbkBpbXBvcnQgJy4uL21peGlucyc7XG5cbiRhbW91bnQ6IDUwcHg7XG5cbkBrZXlmcmFtZXMgYmFsbC10cmlhbmdsZS1wYXRoLTEge1xuICAzMyUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKCRhbW91bnQgLyAyLCAtJGFtb3VudCk7XG4gIH1cbiAgNjYlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgkYW1vdW50LCAwcHgpO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDBweCwgMHB4KTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGJhbGwtdHJpYW5nbGUtcGF0aC0yIHtcbiAgMzMlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgkYW1vdW50IC8gMiwgJGFtb3VudCk7XG4gIH1cbiAgNjYlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtICRhbW91bnQgLyAyLCAkYW1vdW50KTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwcHgsIDBweCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBiYWxsLXRyaWFuZ2xlLXBhdGgtMyB7XG4gIDMzJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLSRhbW91bnQsIDBweCk7XG4gIH1cbiAgNjYlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtICRhbW91bnQgLyAyLCAtJGFtb3VudCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAwcHgpO1xuICB9XG59XG5cbkBtaXhpbiBiYWxsLXRyaWFuZ2xlLXBhdGgoJG46Mykge1xuICAkYW5pbWF0aW9uczogYmFsbC10cmlhbmdsZS1wYXRoLTEgYmFsbC10cmlhbmdsZS1wYXRoLTIgYmFsbC10cmlhbmdsZS1wYXRoLTM7XG5cbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbiB7XG4gICAgPiBkaXY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICBhbmltYXRpb24tbmFtZTogbnRoKCRhbmltYXRpb25zLCAkaSk7XG4gICAgICBhbmltYXRpb24tZGVsYXk6IDA7XG4gICAgICBhbmltYXRpb24tZHVyYXRpb246IDJzO1xuICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICB9XG4gIH1cbn1cblxuLmJhbGwtdHJpYW5nbGUtcGF0aCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgQGluY2x1ZGUgYmFsbC10cmlhbmdsZS1wYXRoKCk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0kYW1vdW50IC8gMS42NjcsIC0kYW1vdW50IC8gMS4zMzMpO1xuXG4gID4gZGl2IHtcbiAgICBAaW5jbHVkZSBnbG9iYWwtYW5pbWF0aW9uKCk7XG5cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDEwcHg7XG4gICAgaGVpZ2h0OiAxMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHByaW1hcnktY29sb3I7XG5cbiAgICAmOm50aC1vZi10eXBlKDEpIHtcbiAgICAgIHRvcDogJGFtb3VudDtcbiAgICB9XG5cbiAgICAmOm50aC1vZi10eXBlKDIpIHtcbiAgICAgIGxlZnQ6ICRhbW91bnQgLyAyO1xuICAgIH1cblxuICAgICY6bnRoLW9mLXR5cGUoMykge1xuICAgICAgdG9wOiAkYW1vdW50O1xuICAgICAgbGVmdDogJGFtb3VudDtcbiAgICB9XG4gIH1cbn1cbiIsIkBpbXBvcnQgJy4uL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICcuLi9taXhpbnMnO1xuXG4kcmlzZS1hbW91bnQ6IDMwcHg7XG5cbkBrZXlmcmFtZXMgYmFsbC1wdWxzZS1yaXNlLWV2ZW4ge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICB9XG4gIDI1JSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kcmlzZS1hbW91bnQpO1xuICB9XG4gIDUwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjQpO1xuICB9XG4gIDc1JSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCRyaXNlLWFtb3VudCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGJhbGwtcHVsc2UtcmlzZS1vZGQge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjQpO1xuICB9XG4gIDI1JSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCRyaXNlLWFtb3VudCk7XG4gIH1cbiAgNTAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG4gIH1cbiAgNzUlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLSRyaXNlLWFtb3VudCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC43NSk7XG4gIH1cbn1cblxuLmJhbGwtcHVsc2UtcmlzZSB7XG5cbiAgPiBkaXYge1xuICAgIEBpbmNsdWRlIGJhbGxzKCk7XG4gICAgQGluY2x1ZGUgZ2xvYmFsLWFuaW1hdGlvbigpO1xuXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKC4xNSwuNDYsLjksLjYpO1xuICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgIGFuaW1hdGlvbi1kZWxheTogMDtcblxuICAgICY6bnRoLWNoaWxkKDJuKSB7XG4gICAgICBhbmltYXRpb24tbmFtZTogYmFsbC1wdWxzZS1yaXNlLWV2ZW47XG4gICAgfVxuXG4gICAgJjpudGgtY2hpbGQoMm4tMSkge1xuICAgICAgYW5pbWF0aW9uLW5hbWU6IGJhbGwtcHVsc2UtcmlzZS1vZGQ7XG4gICAgfVxuICB9XG59XG4iLCJAaW1wb3J0ICcuLi92YXJpYWJsZXMnO1xuQGltcG9ydCAnLi4vbWl4aW5zJztcblxuQGtleWZyYW1lcyBiYWxsLWdyaWQtYmVhdCB7XG4gIDUwJSB7XG4gICAgb3BhY2l0eTogMC43O1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuQG1peGluIGJhbGwtZ3JpZC1iZWF0KCRuOjkpIHtcbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbiB7XG4gICAgPiBkaXY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICBhbmltYXRpb24tZGVsYXk6ICgocmFuZG9tKDEwMCkgLyAxMDApIC0gMC4yKSArIHM7XG4gICAgICBhbmltYXRpb24tZHVyYXRpb246ICgocmFuZG9tKDEwMCkgLyAxMDApICsgMC42KSArIHM7XG4gICAgfVxuICB9XG5cbn1cblxuLmJhbGwtZ3JpZC1iZWF0IHtcbiAgQGluY2x1ZGUgYmFsbC1ncmlkLWJlYXQoKTtcbiAgd2lkdGg6ICgkYmFsbC1zaXplICogMykgKyAkbWFyZ2luICogNjtcblxuICA+IGRpdiB7XG4gICAgQGluY2x1ZGUgYmFsbHMoKTtcbiAgICBAaW5jbHVkZSBnbG9iYWwtYW5pbWF0aW9uKCk7XG5cbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgYW5pbWF0aW9uLW5hbWU6IGJhbGwtZ3JpZC1iZWF0O1xuICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgIGFuaW1hdGlvbi1kZWxheTogMDtcbiAgfVxufVxuIiwiQGltcG9ydCAnLi4vdmFyaWFibGVzJztcbkBpbXBvcnQgJy4uL21peGlucyc7XG5cbkBrZXlmcmFtZXMgYmFsbC1ncmlkLXB1bHNlIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIH1cbiAgNTAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNSk7XG4gICAgb3BhY2l0eTogMC43O1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG5AbWl4aW4gYmFsbC1ncmlkLXB1bHNlKCRuOjkpIHtcbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbiB7XG4gICAgPiBkaXY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICBhbmltYXRpb24tZGVsYXk6ICgocmFuZG9tKDEwMCkgLyAxMDApIC0gMC4yKSArIHM7XG4gICAgICBhbmltYXRpb24tZHVyYXRpb246ICgocmFuZG9tKDEwMCkgLyAxMDApICsgMC42KSArIHM7XG4gICAgfVxuICB9XG5cbn1cblxuLmJhbGwtZ3JpZC1wdWxzZSB7XG4gIEBpbmNsdWRlIGJhbGwtZ3JpZC1wdWxzZSgpO1xuICB3aWR0aDogKCRiYWxsLXNpemUgKiAzKSArICRtYXJnaW4gKiA2O1xuXG4gID4gZGl2IHtcbiAgICBAaW5jbHVkZSBiYWxscygpO1xuICAgIEBpbmNsdWRlIGdsb2JhbC1hbmltYXRpb24oKTtcblxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmbG9hdDogbGVmdDtcbiAgICBhbmltYXRpb24tbmFtZTogYmFsbC1ncmlkLXB1bHNlO1xuICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgIGFuaW1hdGlvbi1kZWxheTogMDtcbiAgfVxufVxuIiwiQGltcG9ydCAnLi4vdmFyaWFibGVzJztcbkBpbXBvcnQgJy4uL21peGlucyc7XG5AaW1wb3J0ICcuLi9mdW5jdGlvbnMnO1xuXG4kcmFkaXVzOiAyNXB4O1xuXG5Aa2V5ZnJhbWVzIGJhbGwtc3Bpbi1mYWRlLWxvYWRlciB7XG4gIDUwJSB7XG4gICAgb3BhY2l0eTogMC4zO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC40KTtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIH1cbn1cblxuQG1peGluIGJhbGwtc3Bpbi1mYWRlLWxvYWRlcigkbjo4LCAkc3RhcnQ6MSkge1xuICBAZm9yICRpIGZyb20gJHN0YXJ0IHRocm91Z2ggJG4ge1xuICAgID4gZGl2Om50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgJGl0ZXI6IDM2MCAvICRuO1xuICAgICAgJHF1YXJ0ZXI6ICgkcmFkaXVzIC8gMikgKyAoJHJhZGl1cyAvIDUuNSk7XG5cbiAgICAgIEBpZiAkaSA9PSAxIHtcbiAgICAgICAgdG9wOiAkcmFkaXVzO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgfSBAZWxzZSBpZiAkaSA9PSAyIHtcbiAgICAgICAgdG9wOiAkcXVhcnRlcjtcbiAgICAgICAgbGVmdDogJHF1YXJ0ZXI7XG4gICAgICB9IEBlbHNlIGlmICRpID09IDMge1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6ICRyYWRpdXM7XG4gICAgICB9IEBlbHNlIGlmICRpID09IDQge1xuICAgICAgICB0b3A6IC0kcXVhcnRlcjtcbiAgICAgICAgbGVmdDogJHF1YXJ0ZXI7XG4gICAgICB9IEBlbHNlIGlmICRpID09IDUge1xuICAgICAgICB0b3A6IC0kcmFkaXVzO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgfSBAZWxzZSBpZiAkaSA9PSA2IHtcbiAgICAgICAgdG9wOiAtJHF1YXJ0ZXI7XG4gICAgICAgIGxlZnQ6IC0kcXVhcnRlcjtcbiAgICAgIH0gQGVsc2UgaWYgJGkgPT0gNyB7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogLSRyYWRpdXM7XG4gICAgICB9IEBlbHNlIGlmICRpID09IDgge1xuICAgICAgICB0b3A6ICRxdWFydGVyO1xuICAgICAgICBsZWZ0OiAtJHF1YXJ0ZXI7XG4gICAgICB9XG5cbiAgICAgIGFuaW1hdGlvbjogYmFsbC1zcGluLWZhZGUtbG9hZGVyIDFzIGRlbGF5KDAuMTJzLCAkbiwgJGkgLSAxKSBpbmZpbml0ZSBsaW5lYXI7XG4gICAgfVxuICB9XG59XG5cbi5iYWxsLXNwaW4tZmFkZS1sb2FkZXIge1xuICBAaW5jbHVkZSBiYWxsLXNwaW4tZmFkZS1sb2FkZXIoKTtcblxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogLTEwcHg7XG4gIGxlZnQ6IC0xMHB4O1xuXG4gID4gZGl2IHtcbiAgICBAaW5jbHVkZSBiYWxscygpO1xuICAgIEBpbmNsdWRlIGdsb2JhbC1hbmltYXRpb24oKTtcblxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgfVxufVxuIiwiQGltcG9ydCAnLi4vdmFyaWFibGVzJztcbkBpbXBvcnQgJy4uL21peGlucyc7XG5cbiRyYWRpdXM6IDQ1cHg7XG5cbkBrZXlmcmFtZXMgYmFsbC1zcGluLWxvYWRlciB7XG4gIDc1JSB7XG4gICAgb3BhY2l0eTogMC4yO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuQG1peGluIGJhbGwtc3Bpbi1sb2FkZXIoJG46OCwgJHN0YXJ0OjEpIHtcbiAgQGZvciAkaSBmcm9tICRzdGFydCB0aHJvdWdoICRuIHtcbiAgICA+IHNwYW46bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAkaXRlcjogMzYwIC8gJG47XG4gICAgICAkcXVhcnRlcjogKCRyYWRpdXMgLyAyKSArICgkcmFkaXVzIC8gNS41KTtcblxuICAgICAgQGlmICRpID09IDEge1xuICAgICAgICB0b3A6ICRyYWRpdXM7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICB9IEBlbHNlIGlmICRpID09IDIge1xuICAgICAgICB0b3A6ICRxdWFydGVyO1xuICAgICAgICBsZWZ0OiAkcXVhcnRlcjtcbiAgICAgIH0gQGVsc2UgaWYgJGkgPT0gMyB7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogJHJhZGl1cztcbiAgICAgIH0gQGVsc2UgaWYgJGkgPT0gNCB7XG4gICAgICAgIHRvcDogLSRxdWFydGVyO1xuICAgICAgICBsZWZ0OiAkcXVhcnRlcjtcbiAgICAgIH0gQGVsc2UgaWYgJGkgPT0gNSB7XG4gICAgICAgIHRvcDogLSRyYWRpdXM7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICB9IEBlbHNlIGlmICRpID09IDYge1xuICAgICAgICB0b3A6IC0kcXVhcnRlcjtcbiAgICAgICAgbGVmdDogLSRxdWFydGVyO1xuICAgICAgfSBAZWxzZSBpZiAkaSA9PSA3IHtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAtJHJhZGl1cztcbiAgICAgIH0gQGVsc2UgaWYgJGkgPT0gOCB7XG4gICAgICAgIHRvcDogJHF1YXJ0ZXI7XG4gICAgICAgIGxlZnQ6IC0kcXVhcnRlcjtcbiAgICAgIH1cblxuICAgICAgYW5pbWF0aW9uOiBiYWxsLXNwaW4tbG9hZGVyIDJzICgkaSAqIDAuOXMpIGluZmluaXRlIGxpbmVhcjtcbiAgICB9XG4gIH1cbn1cblxuLmJhbGwtc3Bpbi1sb2FkZXIge1xuICBAaW5jbHVkZSBiYWxsLXNwaW4tbG9hZGVyKCk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICA+IGRpdiB7XG4gICAgQGluY2x1ZGUgZ2xvYmFsLWFuaW1hdGlvbigpO1xuXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxNXB4O1xuICAgIGhlaWdodDogMTVweDtcbiAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgIGJhY2tncm91bmQ6IGdyZWVuO1xuICB9XG59XG4iLCJAaW1wb3J0ICcuLi92YXJpYWJsZXMnO1xuQGltcG9ydCAnLi4vbWl4aW5zJztcblxuJGFtb3VudDogMzBweDtcblxuQGtleWZyYW1lcyBiYWxsLXppZyB7XG4gIDMzJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLSRhbW91bnQvMiwgLSRhbW91bnQpO1xuICB9XG4gIDY2JSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoJGFtb3VudC8yLCAtJGFtb3VudCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBiYWxsLXphZyB7XG4gIDMzJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoJGFtb3VudC8yLCAkYW1vdW50KTtcbiAgfVxuICA2NiUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0kYW1vdW50LzIsICRhbW91bnQpO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuICB9XG59XG5cbi5iYWxsLXppZy16YWcge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0kYW1vdW50IC8gMiwgLSRhbW91bnQgLyAyKTtcblxuICA+IGRpdiB7XG4gICAgQGluY2x1ZGUgYmFsbHMoKTtcbiAgICBAaW5jbHVkZSBnbG9iYWwtYW5pbWF0aW9uKCk7XG5cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbWFyZ2luLWxlZnQ6ICRhbW91bnQgLyAyO1xuICAgIHRvcDogNHB4O1xuICAgIGxlZnQ6IC03cHg7XG5cbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIGFuaW1hdGlvbjogYmFsbC16aWcgMC43cyAwcyBpbmZpbml0ZSBsaW5lYXI7XG4gICAgfVxuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIGFuaW1hdGlvbjogYmFsbC16YWcgMC43cyAwcyBpbmZpbml0ZSBsaW5lYXI7XG4gICAgfVxuICB9XG59XG4iLCJAaW1wb3J0ICcuLi92YXJpYWJsZXMnO1xuQGltcG9ydCAnLi4vbWl4aW5zJztcblxuJGFtb3VudDogMzBweDtcblxuQGtleWZyYW1lcyBiYWxsLXppZy1kZWZsZWN0IHtcbiAgMTclIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtJGFtb3VudC8yLCAtJGFtb3VudCk7XG4gIH1cbiAgMzQlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgkYW1vdW50LzIsIC0kYW1vdW50KTtcbiAgfVxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuICB9XG4gIDY3JSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoJGFtb3VudC8yLCAtJGFtb3VudCk7XG4gIH1cbiAgODQlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtJGFtb3VudC8yLCAtJGFtb3VudCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBiYWxsLXphZy1kZWZsZWN0IHtcbiAgMTclIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgkYW1vdW50LzIsICRhbW91bnQpO1xuICB9XG4gIDM0JSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLSRhbW91bnQvMiwgJGFtb3VudCk7XG4gIH1cbiAgNTAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgfVxuICA2NyUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0kYW1vdW50LzIsICRhbW91bnQpO1xuICB9XG4gIDg0JSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoJGFtb3VudC8yLCAkYW1vdW50KTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgfVxufVxuXG4uYmFsbC16aWctemFnLWRlZmxlY3Qge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0kYW1vdW50IC8gMiwgLSRhbW91bnQgLyAyKTtcblxuICA+IGRpdiB7XG4gICAgQGluY2x1ZGUgYmFsbHMoKTtcbiAgICBAaW5jbHVkZSBnbG9iYWwtYW5pbWF0aW9uKCk7XG5cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbWFyZ2luLWxlZnQ6ICRhbW91bnQgLyAyO1xuICAgIHRvcDogNHB4O1xuICAgIGxlZnQ6IC03cHg7XG5cbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIGFuaW1hdGlvbjogYmFsbC16aWctZGVmbGVjdCAxLjVzIDBzIGluZmluaXRlIGxpbmVhcjtcbiAgICB9XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgYW5pbWF0aW9uOiBiYWxsLXphZy1kZWZsZWN0IDEuNXMgMHMgaW5maW5pdGUgbGluZWFyO1xuICAgIH1cbiAgfVxufVxuXG4iLCJAaW1wb3J0ICcuLi92YXJpYWJsZXMnO1xuQGltcG9ydCAnLi4vbWl4aW5zJztcbkBpbXBvcnQgJy4uL2Z1bmN0aW9ucyc7XG5cbkBrZXlmcmFtZXMgbGluZS1zY2FsZSB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxleSgxLjApO1xuICB9XG4gIDUwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZXkoMC40KTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxleSgxLjApO1xuICB9XG59XG5cbkBtaXhpbiBsaW5lLXNjYWxlKCRuOjUpIHtcbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbiB7XG4gICAgPiBkaXY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICBhbmltYXRpb246IGxpbmUtc2NhbGUgMXMgZGVsYXkoMC4xcywgJG4sICRpKSBpbmZpbml0ZSBjdWJpYy1iZXppZXIoLjIsLjY4LC4xOCwxLjA4KTtcbiAgICB9XG4gIH1cbn1cblxuLmxpbmUtc2NhbGUge1xuICBAaW5jbHVkZSBsaW5lLXNjYWxlKCk7XG5cbiAgPiBkaXYge1xuICAgIEBpbmNsdWRlIGxpbmVzKCk7XG4gICAgQGluY2x1ZGUgZ2xvYmFsLWFuaW1hdGlvbigpO1xuXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG59XG4iLCJAaW1wb3J0ICcuLi92YXJpYWJsZXMnO1xuQGltcG9ydCAnLi4vbWl4aW5zJztcblxuQGtleWZyYW1lcyBsaW5lLXNjYWxlLXBhcnR5IHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIH1cbiAgNTAlIHtcbiAgICAkcmFuZG9tOiAwLjU7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgkcmFuZG9tKTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB9XG59XG5cbkBtaXhpbiBsaW5lLXNjYWxlLXBhcnR5KCRuOjQpIHtcbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbiB7XG4gICAgPiBkaXY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICBhbmltYXRpb24tZGVsYXk6ICgocmFuZG9tKDEwMCkgLyAxMDApIC0gMC4yKSArIHM7XG4gICAgICBhbmltYXRpb24tZHVyYXRpb246ICgocmFuZG9tKDEwMCkgLyAxMDApICsgMC4zKSArIHM7XG4gICAgfVxuICB9XG59XG5cbi5saW5lLXNjYWxlLXBhcnR5IHtcbiAgQGluY2x1ZGUgbGluZS1zY2FsZS1wYXJ0eSgpO1xuXG4gID4gZGl2IHtcbiAgICBAaW5jbHVkZSBsaW5lcygpO1xuICAgIEBpbmNsdWRlIGdsb2JhbC1hbmltYXRpb24oKTtcblxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBhbmltYXRpb24tbmFtZTogbGluZS1zY2FsZS1wYXJ0eTtcbiAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICBhbmltYXRpb24tZGVsYXk6IDA7XG4gIH1cbn1cbiIsIkBpbXBvcnQgJy4uL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICcuLi9taXhpbnMnO1xuQGltcG9ydCAnLi4vZnVuY3Rpb25zJztcblxuQGtleWZyYW1lcyBsaW5lLXNjYWxlLXB1bHNlLW91dCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxleSgxLjApO1xuICB9XG4gIDUwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZXkoMC40KTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxleSgxLjApO1xuICB9XG59XG5cbi5saW5lLXNjYWxlLXB1bHNlLW91dCB7XG5cbiAgPiBkaXYge1xuICAgIEBpbmNsdWRlIGxpbmVzKCk7XG4gICAgQGluY2x1ZGUgZ2xvYmFsLWFuaW1hdGlvbigpO1xuXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGFuaW1hdGlvbjogbGluZS1zY2FsZS1wdWxzZS1vdXQgMC45cyBkZWxheSgwLjJzLCAzLCAwKSBpbmZpbml0ZSBjdWJpYy1iZXppZXIoLjg1LC4yNSwuMzcsLjg1KTtcblxuICAgICY6bnRoLWNoaWxkKDIpLCAmOm50aC1jaGlsZCg0KSB7XG4gICAgICBhbmltYXRpb24tZGVsYXk6IGRlbGF5KDAuMnMsIDMsIDEpICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgJjpudGgtY2hpbGQoMSksICY6bnRoLWNoaWxkKDUpIHtcbiAgICAgIGFuaW1hdGlvbi1kZWxheTogZGVsYXkoMC4ycywgMywgMikgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgfVxufVxuIiwiQGltcG9ydCAnLi4vdmFyaWFibGVzJztcbkBpbXBvcnQgJy4uL21peGlucyc7XG5cbkBrZXlmcmFtZXMgbGluZS1zY2FsZS1wdWxzZS1vdXQtcmFwaWQge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZXkoMS4wKTtcbiAgfVxuICA4MCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGV5KDAuMyk7XG4gIH1cbiAgOTAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxleSgxLjApO1xuICB9XG59XG5cbi5saW5lLXNjYWxlLXB1bHNlLW91dC1yYXBpZCB7XG5cbiAgPiBkaXYge1xuICAgIEBpbmNsdWRlIGxpbmVzKCk7XG4gICAgQGluY2x1ZGUgZ2xvYmFsLWFuaW1hdGlvbigpO1xuXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgYW5pbWF0aW9uOiBsaW5lLXNjYWxlLXB1bHNlLW91dC1yYXBpZCAwLjlzIC0wLjVzIGluZmluaXRlIGN1YmljLWJlemllciguMTEsLjQ5LC4zOCwuNzgpO1xuXG4gICAgJjpudGgtY2hpbGQoMiksICY6bnRoLWNoaWxkKDQpIHtcbiAgICAgIGFuaW1hdGlvbi1kZWxheTogLTAuMjVzICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgJjpudGgtY2hpbGQoMSksICY6bnRoLWNoaWxkKDUpIHtcbiAgICAgIGFuaW1hdGlvbi1kZWxheTogMHMgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cbiIsIkBpbXBvcnQgJy4uL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICcuLi9taXhpbnMnO1xuQGltcG9ydCAnLi4vZnVuY3Rpb25zJztcblxuJHJhZGl1czogMjBweDtcblxuQGtleWZyYW1lcyBsaW5lLXNwaW4tZmFkZS1sb2FkZXIge1xuICA1MCUge1xuICAgIG9wYWNpdHk6IDAuMztcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbkBtaXhpbiBsaW5lLXNwaW4tZmFkZS1sb2FkZXIoJG46OCwgJHN0YXJ0OjEpIHtcbiAgQGZvciAkaSBmcm9tICRzdGFydCB0aHJvdWdoICRuIHtcbiAgICA+IGRpdjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICRpdGVyOiAzNjAgLyAkbjtcbiAgICAgICRxdWFydGVyOiAoJHJhZGl1cyAvIDIpICsgKCRyYWRpdXMgLyA1LjUpO1xuXG4gICAgICBAaWYgJGkgPT0gMSB7XG4gICAgICAgIHRvcDogJHJhZGl1cztcbiAgICAgICAgbGVmdDogMDtcbiAgICAgIH0gQGVsc2UgaWYgJGkgPT0gMiB7XG4gICAgICAgIHRvcDogJHF1YXJ0ZXI7XG4gICAgICAgIGxlZnQ6ICRxdWFydGVyO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgfSBAZWxzZSBpZiAkaSA9PSAzIHtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAkcmFkaXVzO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gICAgICB9IEBlbHNlIGlmICRpID09IDQge1xuICAgICAgICB0b3A6IC0kcXVhcnRlcjtcbiAgICAgICAgbGVmdDogJHF1YXJ0ZXI7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgIH0gQGVsc2UgaWYgJGkgPT0gNSB7XG4gICAgICAgIHRvcDogLSRyYWRpdXM7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICB9IEBlbHNlIGlmICRpID09IDYge1xuICAgICAgICB0b3A6IC0kcXVhcnRlcjtcbiAgICAgICAgbGVmdDogLSRxdWFydGVyO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgfSBAZWxzZSBpZiAkaSA9PSA3IHtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAtJHJhZGl1cztcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuICAgICAgfSBAZWxzZSBpZiAkaSA9PSA4IHtcbiAgICAgICAgdG9wOiAkcXVhcnRlcjtcbiAgICAgICAgbGVmdDogLSRxdWFydGVyO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICB9XG5cbiAgICAgIGFuaW1hdGlvbjogbGluZS1zcGluLWZhZGUtbG9hZGVyIDEuMnMgZGVsYXkoMC4xMnMsICRuLCAkaSkgaW5maW5pdGUgZWFzZS1pbi1vdXQ7XG4gICAgfVxuICB9XG59XG5cbi5saW5lLXNwaW4tZmFkZS1sb2FkZXIge1xuICBAaW5jbHVkZSBsaW5lLXNwaW4tZmFkZS1sb2FkZXIoKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IC0xMHB4O1xuICBsZWZ0OiAtNHB4O1xuXG4gID4gZGl2IHtcbiAgICBAaW5jbHVkZSBsaW5lcygpO1xuICAgIEBpbmNsdWRlIGdsb2JhbC1hbmltYXRpb24oKTtcblxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogNXB4O1xuICAgIGhlaWdodDogMTVweDtcbiAgfVxufVxuIiwiQGltcG9ydCAnLi4vdmFyaWFibGVzJztcbkBpbXBvcnQgJy4uL21peGlucyc7XG5cbiRzaXplOiAyMHB4O1xuXG5Aa2V5ZnJhbWVzIHRyaWFuZ2xlLXNrZXctc3BpbiB7XG4gIDI1JSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxMDBweCkgcm90YXRlWCgxODBkZWcpIHJvdGF0ZVkoMCk7XG4gIH1cbiAgNTAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDEwMHB4KSByb3RhdGVYKDE4MGRlZykgcm90YXRlWSgxODBkZWcpO1xuICB9XG4gIDc1JSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxMDBweCkgcm90YXRlWCgwKSByb3RhdGVZKDE4MGRlZyk7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxMDBweCkgcm90YXRlWCgwKSByb3RhdGVZKDApO1xuICB9XG59XG5cbi50cmlhbmdsZS1za2V3LXNwaW4ge1xuXG4gID4gZGl2IHtcbiAgICBAaW5jbHVkZSBnbG9iYWwtYW5pbWF0aW9uKCk7XG5cbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyLWxlZnQ6ICRzaXplIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1yaWdodDogJHNpemUgc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWJvdHRvbTogJHNpemUgc29saWQgJHByaW1hcnktY29sb3I7XG4gICAgYW5pbWF0aW9uOiB0cmlhbmdsZS1za2V3LXNwaW4gM3MgMHMgY3ViaWMtYmV6aWVyKC4wOSwuNTcsLjQ5LC45KSBpbmZpbml0ZTtcbiAgfVxufVxuIiwiQGltcG9ydCAnLi4vdmFyaWFibGVzJztcbkBpbXBvcnQgJy4uL21peGlucyc7XG5cbkBrZXlmcmFtZXMgc3F1YXJlLXNwaW4ge1xuICAyNSUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMTAwcHgpIHJvdGF0ZVgoMTgwZGVnKSByb3RhdGVZKDApO1xuICB9XG4gIDUwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxMDBweCkgcm90YXRlWCgxODBkZWcpIHJvdGF0ZVkoMTgwZGVnKTtcbiAgfVxuICA3NSUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMTAwcHgpIHJvdGF0ZVgoMCkgcm90YXRlWSgxODBkZWcpO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMTAwcHgpIHJvdGF0ZVgoMCkgcm90YXRlWSgwKTtcbiAgfVxufVxuXG4uc3F1YXJlLXNwaW4ge1xuXG4gID4gZGl2IHtcbiAgICBAaW5jbHVkZSBnbG9iYWwtYW5pbWF0aW9uKCk7XG5cbiAgICB3aWR0aDogNTBweDtcbiAgICBoZWlnaHQ6IDUwcHg7XG4gICAgYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4gICAgYW5pbWF0aW9uOiBzcXVhcmUtc3BpbiAzcyAwcyBjdWJpYy1iZXppZXIoLjA5LC41NywuNDksLjkpIGluZmluaXRlO1xuICB9XG59XG4iLCJAaW1wb3J0ICcuLi92YXJpYWJsZXMnO1xuQGltcG9ydCAnLi4vbWl4aW5zJztcbkBpbXBvcnQgJy4uL2Z1bmN0aW9ucyc7XG5cbiRzaXplOiAyNXB4O1xuXG5Aa2V5ZnJhbWVzIHJvdGF0ZV9wYWNtYW5faGFsZl91cCAge1xuICAgIDAlIHtcbiAgICAgICAgIHRyYW5zZm9ybTpyb3RhdGUoMjcwZGVnKTtcbiAgICB9XG4gICAgNTAlIHtcbiAgICAgICAgIHRyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKTtcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICAgICB0cmFuc2Zvcm06cm90YXRlKDI3MGRlZyk7XG4gICAgfVxufVxuXG5Aa2V5ZnJhbWVzIHJvdGF0ZV9wYWNtYW5faGFsZl9kb3duICB7XG4gICAgMCUge1xuICAgICAgICAgdHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyk7XG4gICAgfVxuICAgIDUwJSB7XG4gICAgICAgICB0cmFuc2Zvcm06cm90YXRlKDBkZWcpO1xuICAgIH1cbiAgICAxMDAlIHtcbiAgICAgICAgIHRyYW5zZm9ybTpyb3RhdGUoOTBkZWcpO1xuICAgIH1cbn1cblxuQG1peGluIHBhY21hbl9kZXNpZ24oKXtcbiAgICB3aWR0aDogMHB4O1xuICAgIGhlaWdodDogMHB4O1xuICAgIGJvcmRlci1yaWdodDogJHNpemUgc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXRvcDogJHNpemUgc29saWQgJHByaW1hcnktY29sb3I7XG4gICAgYm9yZGVyLWxlZnQ6ICRzaXplIHNvbGlkICRwcmltYXJ5LWNvbG9yO1xuICAgIGJvcmRlci1ib3R0b206ICRzaXplIHNvbGlkICRwcmltYXJ5LWNvbG9yO1xuICAgIGJvcmRlci1yYWRpdXM6ICRzaXplO1xufVxuXG5Aa2V5ZnJhbWVzIHBhY21hbi1iYWxscyB7XG4gIDc1JSB7XG4gICAgb3BhY2l0eTogMC43O1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC00ICogJHNpemUsIC0kc2l6ZSAvIDQpO1xuICB9XG59XG5cbkBtaXhpbiBiYWxsLXBsYWNlbWVudCgkbjozLCAkc3RhcnQ6MCkge1xuICBAZm9yICRpIGZyb20gJHN0YXJ0IHRocm91Z2ggJG4ge1xuICAgID4gZGl2Om50aC1jaGlsZCgjeyRpICsgMn0pIHtcbiAgICAgIGFuaW1hdGlvbjogcGFjbWFuLWJhbGxzIDFzIGRlbGF5KC4zM3MsICRuLCAkaSkgaW5maW5pdGUgbGluZWFyO1xuICAgIH1cbiAgfVxufVxuXG4ucGFjbWFuIHtcbiAgQGluY2x1ZGUgYmFsbC1wbGFjZW1lbnQoKTtcblxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgPiBkaXY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgQGluY2x1ZGUgcGFjbWFuX2Rlc2lnbigpO1xuICAgIGFuaW1hdGlvbjogcm90YXRlX3BhY21hbl9oYWxmX3VwIDAuNXMgMHMgaW5maW5pdGU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC0zMHB4O1xuICB9XG5cbiAgPiBkaXY6bnRoLWNoaWxkKDIpIHtcbiAgICBAaW5jbHVkZSBwYWNtYW5fZGVzaWduKCk7XG4gICAgYW5pbWF0aW9uOiByb3RhdGVfcGFjbWFuX2hhbGZfZG93biAwLjVzIDBzIGluZmluaXRlO1xuICAgIG1hcmdpbi10b3A6IC0yICogJHNpemU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC0zMHB4O1xuICB9XG5cbiAgPiBkaXY6bnRoLWNoaWxkKDMpLFxuICA+IGRpdjpudGgtY2hpbGQoNCksXG4gID4gZGl2Om50aC1jaGlsZCg1KSxcbiAgPiBkaXY6bnRoLWNoaWxkKDYpIHtcbiAgICBAaW5jbHVkZSBiYWxscygpO1xuXG4gICAgd2lkdGg6IDEwcHg7XG4gICAgaGVpZ2h0OiAxMHB4O1xuXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0kc2l6ZSAvIDQpO1xuICAgIHRvcDogMjVweDtcbiAgICBsZWZ0OiA3MHB4O1xuICB9XG59IiwiQGltcG9ydCAnLi4vdmFyaWFibGVzJztcbkBpbXBvcnQgJy4uL21peGlucyc7XG5cbiRhbW91bnQ6IDUwcHg7XG4kc2l6ZTogMTBweDtcblxuQGtleWZyYW1lcyBjdWJlLXRyYW5zaXRpb24ge1xuICAyNSUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgkYW1vdW50KSBzY2FsZSgwLjUpIHJvdGF0ZSgtOTBkZWcpO1xuICB9XG4gIDUwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoJGFtb3VudCwgJGFtb3VudCkgcm90YXRlKC0xODBkZWcpO1xuICB9XG4gIDc1JSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCRhbW91bnQpIHNjYWxlKDAuNSkgcm90YXRlKC0yNzBkZWcpO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC0zNjBkZWcpO1xuICB9XG59XG5cbi5jdWJlLXRyYW5zaXRpb24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0kYW1vdW50IC8gMiwgLSRhbW91bnQgLyAyKTtcblxuICA+IGRpdiB7XG4gICAgQGluY2x1ZGUgZ2xvYmFsLWFuaW1hdGlvbigpO1xuXG4gICAgd2lkdGg6ICRzaXplO1xuICAgIGhlaWdodDogJHNpemU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogLTVweDtcbiAgICBsZWZ0OiAtNXB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgIGFuaW1hdGlvbjogY3ViZS10cmFuc2l0aW9uIDEuNnMgMHMgaW5maW5pdGUgZWFzZS1pbi1vdXQ7XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgYW5pbWF0aW9uLWRlbGF5OiAtMC44c1xuICAgIH1cbiAgfVxufVxuIiwiQGltcG9ydCAnLi4vdmFyaWFibGVzJztcbkBpbXBvcnQgJy4uL21peGlucyc7XG5cbiRzaXplOiAzNXB4O1xuJHBvczogMzAlO1xuXG5Aa2V5ZnJhbWVzIHNwaW4tcm90YXRlIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICB9XG4gIDUwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuIH1cbn1cblxuLnNlbWktY2lyY2xlLXNwaW4ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAkc2l6ZTtcbiAgaGVpZ2h0OiAkc2l6ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICA+IGRpdiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvcmRlci13aWR0aDogMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgYW5pbWF0aW9uOiBzcGluLXJvdGF0ZSAwLjZzIDBzIGluZmluaXRlIGxpbmVhcjtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodHJhbnNwYXJlbnQgMCUsIHRyYW5zcGFyZW50ICgxMDAlIC0gJHBvcyksICRwcmltYXJ5LWNvbG9yICRwb3MsICRwcmltYXJ5LWNvbG9yIDEwMCUpO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgfVxufSJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ== */
