@-moz-keyframes turn-to-tablet {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(90deg);
  }
}
@-webkit-keyframes turn-to-tablet {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(90deg);
  }
}
@-o-keyframes turn-to-tablet {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(90deg);
  }
}
@keyframes turn-to-tablet {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(90deg);
  }
}
@-moz-keyframes turn-to-laptop {
  0% {
    margin-top: 100px;
  }
  100% {
    margin-top: -17px;
  }
}
@-webkit-keyframes turn-to-laptop {
  0% {
    margin-top: 100px;
  }
  100% {
    margin-top: -17px;
  }
}
@-o-keyframes turn-to-laptop {
  0% {
    margin-top: 100px;
  }
  100% {
    margin-top: -17px;
  }
}
@keyframes turn-to-laptop {
  0% {
    margin-top: 100px;
  }
  100% {
    margin-top: -17px;
  }
}
@-moz-keyframes bounce {
  0% {
    margin-top: 0px;
    width: 110px;
  }
  60% {
    margin-top: -60px;
    width: 90px;
    margin-bottom: 60px;
  }
  80% {
    margin-top: 50px;
    width: 60px;
    margin-bottom: -50px;
  }
  88% {
    margin-top: -10px;
    width: 100px;
    margin-bottom: 10px;
  }
  100% {
    margin-top: 0;
    width: 110px;
  }
}
@-webkit-keyframes bounce {
  0% {
    margin-top: 0px;
    width: 110px;
  }
  60% {
    margin-top: -60px;
    width: 90px;
    margin-bottom: 60px;
  }
  80% {
    margin-top: 50px;
    width: 60px;
    margin-bottom: -50px;
  }
  88% {
    margin-top: -10px;
    width: 100px;
    margin-bottom: 10px;
  }
  100% {
    margin-top: 0;
    width: 110px;
  }
}
@-o-keyframes bounce {
  0% {
    margin-top: 0px;
    width: 110px;
  }
  60% {
    margin-top: -60px;
    width: 90px;
    margin-bottom: 60px;
  }
  80% {
    margin-top: 50px;
    width: 60px;
    margin-bottom: -50px;
  }
  88% {
    margin-top: -10px;
    width: 100px;
    margin-bottom: 10px;
  }
  100% {
    margin-top: 0;
    width: 110px;
  }
}
@keyframes bounce {
  0% {
    margin-top: 0px;
    width: 110px;
  }
  60% {
    margin-top: -60px;
    width: 90px;
    margin-bottom: 60px;
  }
  80% {
    margin-top: 50px;
    width: 60px;
    margin-bottom: -50px;
  }
  88% {
    margin-top: -10px;
    width: 100px;
    margin-bottom: 10px;
  }
  100% {
    margin-top: 0;
    width: 110px;
  }
}
@-moz-keyframes bubble-with-top {
  0% {
    width: 1px;
    height: 1px;
    border-left: solid 20px #00a389;
    border-top: solid 20px #00a389;
    background: #00a389;
  }
  100% {
    width: 30px;
    height: 30px;
    border-left: solid 5px #00a389;
    border-top: solid 5px #00a389;
    background: #fff;
  }
}
@-webkit-keyframes bubble-with-top {
  0% {
    width: 1px;
    height: 1px;
    border-left: solid 20px #00a389;
    border-top: solid 20px #00a389;
    background: #00a389;
  }
  100% {
    width: 30px;
    height: 30px;
    border-left: solid 5px #00a389;
    border-top: solid 5px #00a389;
    background: #fff;
  }
}
@-o-keyframes bubble-with-top {
  0% {
    width: 1px;
    height: 1px;
    border-left: solid 20px #00a389;
    border-top: solid 20px #00a389;
    background: #00a389;
  }
  100% {
    width: 30px;
    height: 30px;
    border-left: solid 5px #00a389;
    border-top: solid 5px #00a389;
    background: #fff;
  }
}
@keyframes bubble-with-top {
  0% {
    width: 1px;
    height: 1px;
    border-left: solid 20px #00a389;
    border-top: solid 20px #00a389;
    background: #00a389;
  }
  100% {
    width: 30px;
    height: 30px;
    border-left: solid 5px #00a389;
    border-top: solid 5px #00a389;
    background: #fff;
  }
}
@-moz-keyframes bubble-no-top {
  0% {
    width: 1px;
    height: 1px;
    border-left: solid 20px #00a389;
    background: #00a389;
  }
  100% {
    width: 30px;
    height: 30px;
    border-left: solid 5px #fff;
    background: #fff;
  }
}
@-webkit-keyframes bubble-no-top {
  0% {
    width: 1px;
    height: 1px;
    border-left: solid 20px #00a389;
    background: #00a389;
  }
  100% {
    width: 30px;
    height: 30px;
    border-left: solid 5px #fff;
    background: #fff;
  }
}
@-o-keyframes bubble-no-top {
  0% {
    width: 1px;
    height: 1px;
    border-left: solid 20px #00a389;
    background: #00a389;
  }
  100% {
    width: 30px;
    height: 30px;
    border-left: solid 5px #fff;
    background: #fff;
  }
}
@keyframes bubble-no-top {
  0% {
    width: 1px;
    height: 1px;
    border-left: solid 20px #00a389;
    background: #00a389;
  }
  100% {
    width: 30px;
    height: 30px;
    border-left: solid 5px #fff;
    background: #fff;
  }
}
@-moz-keyframes bubble-first-child {
  0% {
    width: 1px;
    height: 1px;
    border-left: solid 20px #00a389;
    background: #00a389;
  }
  100% {
    width: 30px;
    height: 30px;
    border-left: solid 5px #00a389;
    background: #fff;
  }
}
@-webkit-keyframes bubble-first-child {
  0% {
    width: 1px;
    height: 1px;
    border-left: solid 20px #00a389;
    background: #00a389;
  }
  100% {
    width: 30px;
    height: 30px;
    border-left: solid 5px #00a389;
    background: #fff;
  }
}
@-o-keyframes bubble-first-child {
  0% {
    width: 1px;
    height: 1px;
    border-left: solid 20px #00a389;
    background: #00a389;
  }
  100% {
    width: 30px;
    height: 30px;
    border-left: solid 5px #00a389;
    background: #fff;
  }
}
@keyframes bubble-first-child {
  0% {
    width: 1px;
    height: 1px;
    border-left: solid 20px #00a389;
    background: #00a389;
  }
  100% {
    width: 30px;
    height: 30px;
    border-left: solid 5px #00a389;
    background: #fff;
  }
}
@-moz-keyframes spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(720deg);
  }
}
@-webkit-keyframes spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(720deg);
  }
}
@-o-keyframes spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(720deg);
  }
}
@keyframes spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(720deg);
  }
}
@-moz-keyframes hover-anim {
  25% {
    transform: scale(1.2);
  }
  40% {
    transform: scale(1.8);
  }
  60% {
    transform: scale(1.4);
  }
  80% {
    transform: scale(1.6);
  }
  100% {
    transform: scale(1.5);
  }
}
@-webkit-keyframes hover-anim {
  25% {
    transform: scale(1.2);
  }
  40% {
    transform: scale(1.8);
  }
  60% {
    transform: scale(1.4);
  }
  80% {
    transform: scale(1.6);
  }
  100% {
    transform: scale(1.5);
  }
}
@-o-keyframes hover-anim {
  25% {
    transform: scale(1.2);
  }
  40% {
    transform: scale(1.8);
  }
  60% {
    transform: scale(1.4);
  }
  80% {
    transform: scale(1.6);
  }
  100% {
    transform: scale(1.5);
  }
}
@keyframes hover-anim {
  25% {
    transform: scale(1.2);
  }
  40% {
    transform: scale(1.8);
  }
  60% {
    transform: scale(1.4);
  }
  80% {
    transform: scale(1.6);
  }
  100% {
    transform: scale(1.5);
  }
}
@-moz-keyframes hover-anim-small {
  25% {
    transform: scale(1.1);
  }
  40% {
    transform: scale(1.4);
  }
  60% {
    transform: scale(1.25);
  }
  80% {
    transform: scale(1.4);
  }
  100% {
    transform: scale(1.3);
  }
}
@-webkit-keyframes hover-anim-small {
  25% {
    transform: scale(1.1);
  }
  40% {
    transform: scale(1.4);
  }
  60% {
    transform: scale(1.25);
  }
  80% {
    transform: scale(1.4);
  }
  100% {
    transform: scale(1.3);
  }
}
@-o-keyframes hover-anim-small {
  25% {
    transform: scale(1.1);
  }
  40% {
    transform: scale(1.4);
  }
  60% {
    transform: scale(1.25);
  }
  80% {
    transform: scale(1.4);
  }
  100% {
    transform: scale(1.3);
  }
}
@keyframes hover-anim-small {
  25% {
    transform: scale(1.1);
  }
  40% {
    transform: scale(1.4);
  }
  60% {
    transform: scale(1.25);
  }
  80% {
    transform: scale(1.4);
  }
  100% {
    transform: scale(1.3);
  }
}
@-moz-keyframes hover-anim-subtle {
  25% {
    transform: scale(1.05);
  }
  40% {
    transform: scale(1.2);
  }
  60% {
    transform: scale(1.125);
  }
  80% {
    transform: scale(1.2);
  }
  100% {
    transform: scale(1.15);
  }
}
@-webkit-keyframes hover-anim-subtle {
  25% {
    transform: scale(1.05);
  }
  40% {
    transform: scale(1.2);
  }
  60% {
    transform: scale(1.125);
  }
  80% {
    transform: scale(1.2);
  }
  100% {
    transform: scale(1.15);
  }
}
@-o-keyframes hover-anim-subtle {
  25% {
    transform: scale(1.05);
  }
  40% {
    transform: scale(1.2);
  }
  60% {
    transform: scale(1.125);
  }
  80% {
    transform: scale(1.2);
  }
  100% {
    transform: scale(1.15);
  }
}
@keyframes hover-anim-subtle {
  25% {
    transform: scale(1.05);
  }
  40% {
    transform: scale(1.2);
  }
  60% {
    transform: scale(1.125);
  }
  80% {
    transform: scale(1.2);
  }
  100% {
    transform: scale(1.15);
  }
}
@-moz-keyframes loading {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
@-webkit-keyframes loading {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
@-o-keyframes loading {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
@keyframes loading {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
@-moz-keyframes heading-anim {
  20% {
    width: 1%;
    height: 3.5rem;
  }
  100% {
    width: 100%;
    height: 3.5rem;
  }
}
@-webkit-keyframes heading-anim {
  20% {
    width: 1%;
    height: 3.5rem;
  }
  100% {
    width: 100%;
    height: 3.5rem;
  }
}
@-o-keyframes heading-anim {
  20% {
    width: 1%;
    height: 3.5rem;
  }
  100% {
    width: 100%;
    height: 3.5rem;
  }
}
@keyframes heading-anim {
  20% {
    width: 1%;
    height: 3.5rem;
  }
  100% {
    width: 100%;
    height: 3.5rem;
  }
}
@-moz-keyframes click-anim {
  0% {
    transform: scale(2);
    border-radius: 0;
    font-size: 1px;
  }
  25% {
    transform: scale(0.8);
    color: rgba(255,255,255,0);
    width: 50px;
    height: 50px;
    border-radius: 25px;
  }
  40% {
    transform: scale(0.8);
    color: rgba(255,255,255,0);
    width: 50px;
    height: 50px;
    border-radius: 25px;
  }
  60% {
    transform: scale(1.8);
    color: rgba(255,255,255,0);
    width: 80px;
    height: 80px;
    border-radius: 100%;
  }
  80% {
    transform: scale(1.4);
  }
  90% {
    transform: scale(1.7);
  }
  100% {
    transform: scale(1.5);
    color: rgba(255,255,255,0);
    width: 80px;
    height: 80px;
    border-radius: 100%;
  }
}
@-webkit-keyframes click-anim {
  0% {
    transform: scale(2);
    border-radius: 0;
    font-size: 1px;
  }
  25% {
    transform: scale(0.8);
    color: rgba(255,255,255,0);
    width: 50px;
    height: 50px;
    border-radius: 25px;
  }
  40% {
    transform: scale(0.8);
    color: rgba(255,255,255,0);
    width: 50px;
    height: 50px;
    border-radius: 25px;
  }
  60% {
    transform: scale(1.8);
    color: rgba(255,255,255,0);
    width: 80px;
    height: 80px;
    border-radius: 100%;
  }
  80% {
    transform: scale(1.4);
  }
  90% {
    transform: scale(1.7);
  }
  100% {
    transform: scale(1.5);
    color: rgba(255,255,255,0);
    width: 80px;
    height: 80px;
    border-radius: 100%;
  }
}
@-o-keyframes click-anim {
  0% {
    transform: scale(2);
    border-radius: 0;
    font-size: 1px;
  }
  25% {
    transform: scale(0.8);
    color: rgba(255,255,255,0);
    width: 50px;
    height: 50px;
    border-radius: 25px;
  }
  40% {
    transform: scale(0.8);
    color: rgba(255,255,255,0);
    width: 50px;
    height: 50px;
    border-radius: 25px;
  }
  60% {
    transform: scale(1.8);
    color: rgba(255,255,255,0);
    width: 80px;
    height: 80px;
    border-radius: 100%;
  }
  80% {
    transform: scale(1.4);
  }
  90% {
    transform: scale(1.7);
  }
  100% {
    transform: scale(1.5);
    color: rgba(255,255,255,0);
    width: 80px;
    height: 80px;
    border-radius: 100%;
  }
}
@keyframes click-anim {
  0% {
    transform: scale(2);
    border-radius: 0;
    font-size: 1px;
  }
  25% {
    transform: scale(0.8);
    color: rgba(255,255,255,0);
    width: 50px;
    height: 50px;
    border-radius: 25px;
  }
  40% {
    transform: scale(0.8);
    color: rgba(255,255,255,0);
    width: 50px;
    height: 50px;
    border-radius: 25px;
  }
  60% {
    transform: scale(1.8);
    color: rgba(255,255,255,0);
    width: 80px;
    height: 80px;
    border-radius: 100%;
  }
  80% {
    transform: scale(1.4);
  }
  90% {
    transform: scale(1.7);
  }
  100% {
    transform: scale(1.5);
    color: rgba(255,255,255,0);
    width: 80px;
    height: 80px;
    border-radius: 100%;
  }
}
* {
  box-sizing: border-box;
}
html {
  font-size: 12px;
}
body {
  font-family: 'Source Sans Pro', Helvetica, Arial, sans-serif;
  background: #f2f2f2;
  padding: 0;
  margin: 0;
  display: block;
  width: 100%;
  float: left;
}
ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
header {
  background: #fff;
  display: block;
  width: 100%;
  float: left;
}
a {
  text-decoration: none;
}
nav {
  text-align: center;
  padding-bottom: 1rem;
}
nav a {
  font-family: 'Raleway', Helvetica, Arial, sans-serif;
  padding: 1rem 0.25rem;
  color: #333;
  display: inline-block;
}
nav a:hover {
  background: #f2f2f2;
}
nav a.selected {
  color: #f04f22;
}
nav a + a {
  margin-left: 1rem;
}
h1,
h2,
h3 {
  font-family: 'Source Sans Pro', Helvetica, Arial, sans-serif;
  font-weight: 200;
  margin: 0;
}
h1 {
  color: #333;
  font-size: 3rem;
  line-height: 2.5rem;
  margin-bottom: 1rem;
  display: block;
  width: 100%;
  float: left;
}
h2 {
  color: #fff;
  background: #00a389;
  padding: 0.5rem 2rem;
  font-size: 2rem;
  float: left;
}
h3 {
  font-weight: 500;
  font-size: 1.5rem;
  color: #00a389;
  display: block;
  width: 100%;
  float: left;
}
.clearfix {
  clear: both;
}
.logo {
  position: relative;
  height: 200px;
}
.logo-svg {
  width: 200px;
  left: 0;
  right: 0;
  margin: auto;
  position: absolute;
}
.logo-svg #rotor {
  -webkit-animation: loading 1s 0 linear forwards;
  -webkit-animation-iteration-count: infinite;
  -moz-animation: loading 1s 0 linear forwards;
  -moz-animation-iteration-count: infinite;
  -o-animation: loading 1s 0 linear forwards;
  -o-animation-iteration-count: infinite;
  animation: loading 1s 0 linear forwards;
  animation-iteration-count: infinite;
  transform-origin: 50%;
}
#About .interests {
  margin-top: 2rem;
  display: block;
  width: 100%;
  float: left;
}
.bio {
  float: left;
}
.bio .bio-pic,
.bio .bio-location {
  width: 22%;
  float: left;
}
.bio .bio-pic {
  padding-right: 50px;
x
}
@media (max-width: 500px) {
  .bio .bio-pic {
    width: 100%;
    padding: 0;
    float: right;
  }
}
@media (max-width: 767px) {
  .bio .bio-pic {
    width: 60%;
    padding: 0;
    float: right;
    margin: 0 20%;
  }
}
@media (max-width: 767px) {
  .bio .bio-location {
    display: none;
  }
}
.bio .bio-content {
  width: 56%;
  float: left;
}
@media (max-width: 767px) {
  .bio .bio-content {
    width: 100%;
    margin-top: 2rem;
  }
}
.bio .bio-content blockquote {
  margin: 0;
}
.skills-list {
  clear: both;
  display: block;
  width: 100%;
  float: left;
  padding-top: 2rem;
}
.skills-list li {
  display: block;
  overflow: hidden;
  width: 8%;
  background-repeat: no-repeat;
  background-size: cover;
  cursor: pointer;
  float: left;
}
@media (max-width: 767px) {
  .skills-list li {
    width: 18%;
  }
}
.skills-list li#Javascript {
  padding: 1% 0;
}
.skills-list li#jQuery {
  width: 25%;
  padding: 1.25% 0;
  margin-left: 1%;
}
@media (max-width: 767px) {
  .skills-list li#jQuery {
    width: 50%;
    margin-left: 2%;
  }
}
.skills-list li#Stylus {
  width: 17%;
  margin-left: 1%;
}
@media (max-width: 767px) {
  .skills-list li#Stylus {
    width: 34%;
    margin-left: 2%;
  }
}
.skills-list li#Sass {
  width: 14%;
  margin-left: 4%;
}
@media (max-width: 767px) {
  .skills-list li#Sass {
    width: 28%;
    margin-left: 0;
  }
}
.skills-list li#Illustrator,
.skills-list li#Sketch,
.skills-list li#Photoshop {
  width: 10%;
  padding: 2% 1%;
  margin-left: 2%;
}
@media (max-width: 767px) {
  .skills-list li#Illustrator,
  .skills-list li#Sketch,
  .skills-list li#Photoshop {
    width: 20%;
    margin-left: 4%;
  }
}
.skills-list li#Sketch {
  margin-left: 0;
}
.skills-list li + li {
  margin-left: 3%;
}
.skills-list li:hover {
  -webkit-animation: hover-anim-small 500ms 0 ease-in forwards;
  -webkit-animation-iteration-count: 1;
  -o-animation: hover-anim-small 500ms 0 ease-in forwards;
  -o-animation-iteration-count: 1;
  -moz-animation: hover-anim-small 500ms 0 ease-in forwards;
  -moz-animation-iteration-count: 1;
  animation: hover-anim-small 500ms 0 ease-in forwards;
  animation-iteration-count: 1;
  border-radius: 3px;
}
.skills-list li:hover:after {
  display: block;
}
#More .inner-container {
  background: #fff;
  padding: 3rem;
}
#More .inner-container .interests {
  display: block;
  width: 100%;
  float: left;
}
#More .inner-container .interests svg {
  display: inline-block;
  width: 18%;
}
#More .inner-container .interests svg:first-of-type {
  clear: both;
}
#More .inner-container .interests svg + svg {
  margin-left: 2%;
}
section {
  display: block;
  width: 100%;
  float: left;
}
@media (max-width: 767px) {
  section {
    padding: 0 2rem;
  }
}
@media (min-width: 768px) {
  section {
    padding: 0 2rem;
  }
}
@media (min-width: 1200px) {
  section {
    padding: 0;
  }
}
section:first-child .inner-container {
  background: #fff;
  padding: 3rem;
}
section.what-i-do {
  background: #00a389;
  min-height: 500px;
  position: relative;
}
section.what-i-do canvas {
  position: absolute;
  top: 0;
  left: 0;
}
section.what-i-do .responsive {
  width: 60%;
}
section.what-i-do .interface {
  width: 40%;
}
section.what-i-do .deving,
section.what-i-do .interaction {
  width: 50%;
}
section.what-i-do .what-i-do-left,
section.what-i-do .what-i-do-right {
  width: 50%;
  float: left;
}
@media (max-width: 767px) {
  section.what-i-do .what-i-do-left,
  section.what-i-do .what-i-do-right {
    width: 100%;
  }
}
section.what-i-do .what-i-do-heading {
  display: inline-block;
  opacity: 0;
  padding: 1rem 0;
  color: #fff;
  text-align: center;
  margin-top: 2rem;
}
section.what-i-do .what-i-do-heading.responsive {
  transition: opacity 100ms 1s ease;
}
section.what-i-do .what-i-do-heading.interface {
  transition: opacity 100ms 5.5s ease;
}
section.what-i-do .what-i-do-heading.deving {
  transition: opacity 100ms 7s ease;
}
section.what-i-do .what-i-do-heading.interaction {
  transition: opacity 100ms 12s ease;
}
section.what-i-do .what-i-do-heading span {
  padding: 1rem;
  border: solid thin #fff;
  background: #00a389;
}
section.what-i-do .inner-container {
  padding: 3rem;
  border: solid thin #fff;
}
section.what-i-do h2 {
  background: #fff;
  color: #00a389;
}
section.what-i-do .container-box {
  overflow: hidden;
  height: 200px;
  float: left;
}
section.what-i-do .container-box.responsive {
  text-align: center;
}
section.what-i-do .container-box.interface {
  text-align: center;
  padding-top: 3rem;
}
section.what-i-do .container-box.deving {
  transition: opacity 100ms 7s ease;
  padding-top: 3rem;
}
section.what-i-do .container-box:first-of-type {
  clear: both;
}
section .inner-container {
  position: relative;
  z-index: 200;
  overflow: hidden;
  margin: 5% auto;
}
@media (min-width: 992px) {
  section .inner-container {
    width: 100%;
  }
}
@media (min-width: 1200px) {
  section .inner-container {
    min-width: 865px;
    width: 60%;
  }
}
section#Contact {
  background: #333;
}
section#Contact .inner-container {
  overflow: visible;
}
@media (max-width: 767px) {
  .split-sm {
    clear: both;
  }
}
.heading-container {
  padding-bottom: 1rem;
  display: block;
  float: left;
  width: 100%;
}
.heading-anim-container {
  height: 11rem;
}
.heading-anim {
  width: 10px;
  height: 0rem;
  overflow: hidden;
}
.responsive {
  opacity: 0;
  transition: opacity 200ms 1s ease;
}
.responsive .screen-outer {
  width: 55px;
  height: 100px;
  background: #fff;
  border-radius: 6px;
  padding: 9px 4px;
  position: relative;
  transform-origin: 87px 121px;
  box-sizing: content-box;
}
.responsive .speaker {
  background: #b0b0af;
  width: 16px;
  height: 2px;
  position: absolute;
  top: 4px;
  left: 0;
  right: 0;
  margin: auto;
}
.responsive .screen-inner {
  background: #f2f2f2;
  overflow: hidden;
  width: 100%;
  height: 100%;
}
.responsive .button {
  position: absolute;
  left: 0;
  right: 0;
  width: 5px;
  height: 5px;
  background: #b0b0af;
  border-radius: 100%;
  bottom: 3px;
  margin: auto;
}
.responsive .laptop {
  display: block;
  position: relative;
  width: 240px;
  height: 12px;
  background: #fff;
  border-radius: 0 0 10px 10px;
  margin-top: 150px;
}
.responsive .laptop:before {
  content: '';
  width: 45px;
  height: 5px;
  background: #b0b0af;
  top: 0;
  left: 0;
  right: 0;
  margin: auto;
  display: block;
  border-radius: 0 0 5px 5px;
}
.responsive .content {
  width: 100%;
  height: 200%;
  transition: margin 500ms 1.5s ease;
  position: relative;
}
.responsive .content-item {
  width: 100%;
  height: 33.33%;
  background: #333;
}
.responsive .content-item:nth-child(2) > span {
  background: #00a389;
  width: 50%;
  height: 50%;
  display: block;
  float: left;
  transition: margin 300ms 3s ease-out, width 300ms 3s ease-out, height 300ms 3s ease-out;
}
.responsive .top-menu-half {
  color: #00a389;
  width: 100%;
  height: 45%;
  margin-left: -100px;
  display: block;
  transition: margin 500ms 2s ease-out;
  font-size: 34px;
  font-weight: bold;
}
.responsive .device-container {
  overflow: hidden;
  position: relative;
  display: inline-block;
  transform: scale(0.7);
}
.spacer {
  height: 3.5rem;
  line-height: 3.5rem;
}
.interface-blocks {
  margin: auto;
  overflow: hidden;
  display: inline-block;
  margin-left: -5px;
}
.interface-blocks > li {
  display: block;
  float: left;
  width: 1px;
  height: 1px;
  width: 1px;
  height: 1px;
  border: 0 solid rgba(0,0,0,0);
  position: relative;
  box-sizing: content-box;
}
.interface-blocks > li:first-child {
  z-index: 30;
}
.interface-blocks > li:nth-child(2) {
  z-index: 20;
}
.interface-blocks > li:nth-child(3) {
  z-index: 10;
}
.interface-blocks > li:nth-child(3n+4) {
  clear: both;
}
.interaction {
  position: relative;
}
.interaction button {
  cursor: pointer;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  display: block;
  z-index: 0;
  border: none;
  background: #333;
  color: #fff;
  text-transform: uppercase;
  padding: 10px 20px;
  font-size: 15px;
  width: 102px;
  height: 37px;
  opacity: 0;
  transform: translate3d(0, 0, 0);
  transition: opacity 100ms 12s ease;
}
.interaction button:focus {
  outline: none;
}
.interaction button img {
  display: none;
}
.if-statement {
  padding-left: 1rem;
}
.if-statement > li {
  font-family: 'Courier New', 'Courier', monospace;
  display: inline-block;
  width: 0;
  height: 1rem;
  color: #fff;
  font-weight: 400;
  margin-bottom: 1rem;
  overflow: hidden;
  background: #00a389;
}
.if-statement > li:nth-child(1) {
  transition: width 700ms 7s linear;
}
.if-statement > li:nth-child(2) {
  transition: width 700ms 7.95s linear;
}
.if-statement > li:nth-child(3) {
  transition: width 700ms 8.7s linear;
}
.if-statement > li:nth-child(4) {
  transition: width 700ms 9.45s linear;
}
.if-statement > li:nth-child(5) {
  transition: width 700ms 10.2s linear;
}
.if-statement > li .orange {
  color: #f3c53d;
}
.if-statement > li .pink {
  color: #d64057;
}
.if-statement > li .indented {
  padding-left: 2rem;
}
.start .heading-anim {
  -webkit-animation: heading-anim 1.5s 0s linear forwards;
  -webkit-animation-iteration-count: 1;
  -o-animation: heading-anim 1.5s 0s linear forwards;
  -o-animation-iteration-count: 1;
  -moz-animation: heading-anim 1.5s 0s linear forwards;
  -moz-animation-iteration-count: 1;
  animation: heading-anim 1.5s 0s linear forwards;
  animation-iteration-count: 1;
}
.start .responsive {
  opacity: 1;
}
.start .responsive .screen-outer {
  transition: width 500ms 3s cubic-bezier(1, -0.27, 0.66, 1.22), height 500ms 3s cubic-bezier(1, -0.27, 0.66, 1.22), border-radius 500ms 3s cubic-bezier(1, -0.27, 0.66, 1.22), padding 500ms 3s cubic-bezier(1, -0.27, 0.66, 1.22);
  width: 110px;
  height: 160px;
  border-radius: 10px;
  padding: 9px 8px;
  animation: turn-to-tablet 500ms 3.5s cubic-bezier(1, -0.27, 0.66, 1.22) forwards, bounce 1s 4.7s ease forwards;
}
.start .responsive .content {
  margin-top: -104px;
}
.start .responsive .laptop {
  -webkit-animation: turn-to-laptop 750ms 4.25s cubic-bezier(0.73, 0.04, 0.41, 1.6) forwards;
  -webkit-animation-iteration-count: 1;
  -o-animation: turn-to-laptop 750ms 4.25s cubic-bezier(0.73, 0.04, 0.41, 1.6) forwards;
  -o-animation-iteration-count: 1;
  -moz-animation: turn-to-laptop 750ms 4.25s cubic-bezier(0.73, 0.04, 0.41, 1.6) forwards;
  -moz-animation-iteration-count: 1;
  animation: turn-to-laptop 750ms 4.25s cubic-bezier(0.73, 0.04, 0.41, 1.6) forwards;
  animation-iteration-count: 1;
}
.start .responsive .content-item:nth-child(2) > span {
  width: 47%;
  height: 48%;
  width: 47%;
  margin-left: 2%;
}
.start .responsive .content-item:nth-child(2) > span:nth-child(1n+3) {
  margin-top: 2%;
}
.start .responsive .top-menu-half {
  margin-left: 0px;
}
.start .interface .interface-blocks > li:first-child {
  -webkit-animation: bubble-first-child 400ms 5.5s cubic-bezier(0.58, 0.55, 0.52, 1.41) forwards;
  -webkit-animation-iteration-count: 1;
  -o-animation: bubble-first-child 400ms 5.5s cubic-bezier(0.58, 0.55, 0.52, 1.41) forwards;
  -o-animation-iteration-count: 1;
  -moz-animation: bubble-first-child 400ms 5.5s cubic-bezier(0.58, 0.55, 0.52, 1.41) forwards;
  -moz-animation-iteration-count: 1;
  animation: bubble-first-child 400ms 5.5s cubic-bezier(0.58, 0.55, 0.52, 1.41) forwards;
  animation-iteration-count: 1;
}
.start .interface .interface-blocks > li:nth-child(2) {
  -webkit-animation: bubble-no-top 400ms 5.55s cubic-bezier(0.58, 0.55, 0.52, 1.41) forwards;
  -webkit-animation-iteration-count: 1;
  -o-animation: bubble-no-top 400ms 5.55s cubic-bezier(0.58, 0.55, 0.52, 1.41) forwards;
  -o-animation-iteration-count: 1;
  -moz-animation: bubble-no-top 400ms 5.55s cubic-bezier(0.58, 0.55, 0.52, 1.41) forwards;
  -moz-animation-iteration-count: 1;
  animation: bubble-no-top 400ms 5.55s cubic-bezier(0.58, 0.55, 0.52, 1.41) forwards;
  animation-iteration-count: 1;
}
.start .interface .interface-blocks > li:nth-child(3) {
  -webkit-animation: bubble-no-top 400ms 5.6s cubic-bezier(0.58, 0.55, 0.52, 1.41) forwards;
  -webkit-animation-iteration-count: 1;
  -o-animation: bubble-no-top 400ms 5.6s cubic-bezier(0.58, 0.55, 0.52, 1.41) forwards;
  -o-animation-iteration-count: 1;
  -moz-animation: bubble-no-top 400ms 5.6s cubic-bezier(0.58, 0.55, 0.52, 1.41) forwards;
  -moz-animation-iteration-count: 1;
  animation: bubble-no-top 400ms 5.6s cubic-bezier(0.58, 0.55, 0.52, 1.41) forwards;
  animation-iteration-count: 1;
}
.start .interface .interface-blocks > li:nth-child(4) {
  -webkit-animation: bubble-with-top 400ms 5.55s cubic-bezier(0.58, 0.55, 0.52, 1.41) forwards;
  -webkit-animation-iteration-count: 1;
  -o-animation: bubble-with-top 400ms 5.55s cubic-bezier(0.58, 0.55, 0.52, 1.41) forwards;
  -o-animation-iteration-count: 1;
  -moz-animation: bubble-with-top 400ms 5.55s cubic-bezier(0.58, 0.55, 0.52, 1.41) forwards;
  -moz-animation-iteration-count: 1;
  animation: bubble-with-top 400ms 5.55s cubic-bezier(0.58, 0.55, 0.52, 1.41) forwards;
  animation-iteration-count: 1;
  margin-left: 0;
}
.start .interface .interface-blocks > li:nth-child(5),
.start .interface .interface-blocks > li:nth-child(7) {
  -webkit-animation: bubble-with-top 400ms 5.6s cubic-bezier(0.58, 0.55, 0.52, 1.41) forwards;
  -webkit-animation-iteration-count: 1;
  -o-animation: bubble-with-top 400ms 5.6s cubic-bezier(0.58, 0.55, 0.52, 1.41) forwards;
  -o-animation-iteration-count: 1;
  -moz-animation: bubble-with-top 400ms 5.6s cubic-bezier(0.58, 0.55, 0.52, 1.41) forwards;
  -moz-animation-iteration-count: 1;
  animation: bubble-with-top 400ms 5.6s cubic-bezier(0.58, 0.55, 0.52, 1.41) forwards;
  animation-iteration-count: 1;
}
.start .interface .interface-blocks > li:nth-child(6),
.start .interface .interface-blocks > li:nth-child(8) {
  -webkit-animation: bubble-with-top 400ms 5.65s cubic-bezier(0.58, 0.55, 0.52, 1.41) forwards;
  -webkit-animation-iteration-count: 1;
  -o-animation: bubble-with-top 400ms 5.65s cubic-bezier(0.58, 0.55, 0.52, 1.41) forwards;
  -o-animation-iteration-count: 1;
  -moz-animation: bubble-with-top 400ms 5.65s cubic-bezier(0.58, 0.55, 0.52, 1.41) forwards;
  -moz-animation-iteration-count: 1;
  animation: bubble-with-top 400ms 5.65s cubic-bezier(0.58, 0.55, 0.52, 1.41) forwards;
  animation-iteration-count: 1;
}
.start .interface .interface-blocks > li:last-child {
  -webkit-animation: bubble-with-top 400ms 5.7s cubic-bezier(0.58, 0.55, 0.52, 1.41) forwards;
  -webkit-animation-iteration-count: 1;
  -o-animation: bubble-with-top 400ms 5.7s cubic-bezier(0.58, 0.55, 0.52, 1.41) forwards;
  -o-animation-iteration-count: 1;
  -moz-animation: bubble-with-top 400ms 5.7s cubic-bezier(0.58, 0.55, 0.52, 1.41) forwards;
  -moz-animation-iteration-count: 1;
  animation: bubble-with-top 400ms 5.7s cubic-bezier(0.58, 0.55, 0.52, 1.41) forwards;
  animation-iteration-count: 1;
}
.start .interface .interface-blocks > li:nth-child(2),
.start .interface .interface-blocks > li:nth-child(3) {
  transition: border 200ms 1s ease, margin 200ms 1s ease;
}
.start .interaction button {
  opacity: 1;
}
.start .interaction button:hover:not(.clicked) {
  -webkit-animation: hover-anim 500ms 0 ease-in forwards;
  -webkit-animation-iteration-count: 1;
  -o-animation: hover-anim 500ms 0 ease-in forwards;
  -o-animation-iteration-count: 1;
  -moz-animation: hover-anim 500ms 0 ease-in forwards;
  -moz-animation-iteration-count: 1;
  animation: hover-anim 500ms 0 ease-in forwards;
  animation-iteration-count: 1;
}
.start .interaction button.clicked {
  -webkit-animation: click-anim 500ms 0 ease-in forwards;
  -webkit-animation-iteration-count: 1;
  -o-animation: click-anim 500ms 0 ease-in forwards;
  -o-animation-iteration-count: 1;
  -moz-animation: click-anim 500ms 0 ease-in forwards;
  -moz-animation-iteration-count: 1;
  animation: click-anim 500ms 0 ease-in forwards;
  animation-iteration-count: 1;
}
.start .interaction button.clicked img {
  display: inline-block;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
}
.start .deving .if-statement > li {
  width: 100%;
}
.start.what-i-do .what-i-do-heading {
  opacity: 1;
}
.twitter-timeline {
  width: 55% !important;
}
@media (max-width: 767px) {
  .twitter-timeline {
    display: none !important;
  }
}
a.twitter-timeline {
  color: #333;
}
.contact-form {
  width: 45%;
  vertical-align: top;
  display: inline-block;
  padding: 0 1.5rem 0 0;
}
@media (max-width: 767px) {
  .contact-form {
    width: 100%;
    padding: 0;
    margin-bottom: 2rem;
  }
}
.contact-form input,
.contact-form textarea {
  display: block;
  width: 100%;
  padding: 1rem;
  background: #fff;
  border-radius: 3px;
  border: solid thin #f2f2f2;
  margin-bottom: 1rem;
}
.contact-form button {
  width: 100%;
  background: #00a389;
  padding: 2rem;
  border-radius: 3px;
  border: none;
  color: #fff;
  font-size: 2rem;
  font-weight: 100;
  letter-spacing: 2px;
  margin-top: 1rem;
  cursor: pointer;
}
.contact-form button:hover {
  -webkit-animation: hover-anim-subtle 500ms 0 ease-in forwards;
  -webkit-animation-iteration-count: 1;
  -o-animation: hover-anim-subtle 500ms 0 ease-in forwards;
  -o-animation-iteration-count: 1;
  -moz-animation: hover-anim-subtle 500ms 0 ease-in forwards;
  -moz-animation-iteration-count: 1;
  animation: hover-anim-subtle 500ms 0 ease-in forwards;
  animation-iteration-count: 1;
}
.contact-form button img {
  display: none;
}
.contact-form button.loading img {
  display: inline-block;
  position: relative;
  margin: auto;
  max-height: 2rem;
  max-width: 2rem;
  width: 100%;
  -webkit-animation: spin 1500ms 300ms ease forwards;
  -webkit-animation-iteration-count: infinite;
  -moz-animation: spin 1500ms 300ms ease forwards;
  -moz-animation-iteration-count: infinite;
  -o-animation: spin 1500ms 300ms ease forwards;
  -o-animation-iteration-count: infinite;
  animation: spin 1500ms 300ms ease forwards;
  animation-iteration-count: infinite;
}
.contact-form button.sent {
  background: #f2f2f2;
}
.contact-form button.oops {
  background: #f04f22;
}
@media (min-width: 1200px) {
  .show-lg {
    display: block !important;
  }
}
@media (min-width: 1200px) {
  .hide-lg {
    display: none !important;
  }
}
@media (min-width: 992px) {
  .show-md {
    display: block !important;
  }
}
@media (min-width: 992px) {
  .hide-md {
    display: none !important;
  }
}
@media (min-width: 768px) {
  .show-sm {
    display: block !important;
  }
}
@media (min-width: 768px) {
  .hide-sm {
    display: none !important;
  }
}
@media (max-width: 767px) {
  .show-xs {
    display: block !important;
  }
}
@media (max-width: 767px) {
  .hide-xs {
    display: none !important;
  }
}
@media (max-width: 500px) {
  .show-xxs {
    display: block !important;
  }
}
@media (max-width: 500px) {
  .hide-xxs {
    display: none !important;
  }
}
/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hbmltYXRpb25zLnN0eWwiLCIuLi8uLi8uLi9zcmMvc3R5bGUuc3R5bCIsIi4uLy4uLy4uL3NyYy9taXhpbnMuc3R5bCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDeUI7QUFDdEI7SUFDRSxXQUFzQixhQUF0Qjs7QUFFSDtJQUNHLFdBQXVCLGNBQXZCOzs7QUFMb0I7QUFDdEI7SUFDRSxXQUFzQixhQUF0Qjs7QUFFSDtJQUNHLFdBQXVCLGNBQXZCOzs7QUFMb0I7QUFDdEI7SUFDRSxXQUFzQixhQUF0Qjs7QUFFSDtJQUNHLFdBQXVCLGNBQXZCOzs7QUFMb0I7QUFDdEI7SUFDRSxXQUFzQixhQUF0Qjs7QUFFSDtJQUNHLFdBQXVCLGNBQXZCOzs7QUFJb0I7QUFDdEI7SUFDRSxZQUFZLE1BQVo7O0FBRUg7SUFDRyxZQUFZLE1BQVo7OztBQUxvQjtBQUN0QjtJQUNFLFlBQVksTUFBWjs7QUFFSDtJQUNHLFlBQVksTUFBWjs7O0FBTG9CO0FBQ3RCO0lBQ0UsWUFBWSxNQUFaOztBQUVIO0lBQ0csWUFBWSxNQUFaOzs7QUFMb0I7QUFDdEI7SUFDRSxZQUFZLE1BQVo7O0FBRUg7SUFDRyxZQUFZLE1BQVo7OztBQUlZO0FBQ2Q7SUFDRSxZQUFZLElBQVo7SUFDQSxPQUFPLE1BQVA7O0FBRUg7SUFDRyxZQUFZLE1BQVo7SUFDQSxPQUFPLEtBQVA7SUFDQSxlQUFlLEtBQWY7O0FBR0Y7SUFDRSxZQUFZLEtBQVo7SUFDQSxPQUFPLEtBQVA7SUFDQSxlQUFlLE1BQWY7O0FBR0Y7SUFDQSxZQUFZLE1BQVo7SUFDRSxPQUFPLE1BQVA7SUFDQSxlQUFlLEtBQWY7O0FBR0g7SUFDRSxZQUFZLEVBQVo7SUFDQyxPQUFPLE1BQVA7OztBQXpCWTtBQUNkO0lBQ0UsWUFBWSxJQUFaO0lBQ0EsT0FBTyxNQUFQOztBQUVIO0lBQ0csWUFBWSxNQUFaO0lBQ0EsT0FBTyxLQUFQO0lBQ0EsZUFBZSxLQUFmOztBQUdGO0lBQ0UsWUFBWSxLQUFaO0lBQ0EsT0FB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Q0FBbkI7RUFDTSw4QkFBOEIsRUFBOUI7RUFDTixnQkFBbUIsMkNBQW5CO0VBQ00sZ0NBQWdDLEVBQWhDO0VBQ04sV0FBbUIsMkNBQW5CO0VBQ00sMkJBQTJCLEVBQTNCOztBRGswQko7RUFDQyxTQUFTLEtBQVQ7O0FBR0Q7RUFDQyxTQUFTLGFBQVQ7RUFDRyxVQUFVLFNBQVY7RUFDSCxRQUFRLEtBQVI7RUFDQSxZQUFZLEtBQVo7RUFDQSxXQUFXLEtBQVg7RUFDQSxPQUFPLEtBQVA7RUMxMEJILG1CQUFtQixnQ0FBbkI7RUFDTSxtQ0FBbUMsU0FBbkM7RUFDTixnQkFBbUIsZ0NBQW5CO0VBQ00sZ0NBQWdDLFNBQWhDO0VBQ04sY0FBbUIsZ0NBQW5CO0VBQ00sOEJBQThCLFNBQTlCO0VBQ04sV0FBbUIsZ0NBQW5CO0VBQ00sMkJBQTJCLFNBQTNCOztBRHUwQko7RUFDQyxZQUFZLFFBQVo7O0FBR0Q7RUFDQyxZQUFZLFFBQVo7O0FDN3hCcUI7QUFBQTtJRHl5QnJCLFNBQVMsaUJBQVQ7OztBQ3p5QnFCO0FBQUE7SURpekJyQixTQUFTLGdCQUFUOzs7QUN0ekJvQjtBQUFBO0lEOHlCcEIsU0FBUyxpQkFBVDs7O0FDOXlCb0I7QUFBQTtJRHN6QnBCLFNBQVMsZ0JBQVQ7OztBQzF6Qm9CO0FBQUE7SURrekJwQixTQUFTLGlCQUFUOzs7QUNsekJvQjtBQUFBO0lEMHpCcEIsU0FBUyxnQkFBVDs7O0FDL3pCb0I7QUFBQTtJRHV6QnBCLFNBQVMsaUJBQVQ7OztBQ3Z6Qm9CO0FBQUE7SUQrekJwQixTQUFTLGdCQUFUOzs7QUNuMEJ1QjtBQUFBO0lEMnpCdkIsU0FBUyxpQkFBVDs7O0FDM3pCdUI7QUFBQTtJRG0wQnZCLFNBQVMsZ0JBQVQiLCJmaWxlIjoic3R5bGUuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbkBrZXlmcmFtZXMgdHVybi10by10YWJsZXQge1xyXG4gIFx0MCUge1xyXG4gICBcdFx0dHJhbnNmb3JtOiByb3RhdGUoMGRlZylcclxuICBcdH1cclxuIFx0MTAwJSB7XHJcbiAgXHQgXHR0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZylcclxuICBcdH1cclxufVxyXG5cclxuQGtleWZyYW1lcyB0dXJuLXRvLWxhcHRvcCB7XHJcbiAgXHQwJSB7XHJcbiAgIFx0XHRtYXJnaW4tdG9wOiAxMDBweFxyXG4gIFx0fVxyXG4gXHQxMDAlIHtcclxuICBcdCBcdG1hcmdpbi10b3A6IC0xN3B4XHJcbiAgXHR9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgYm91bmNlIHtcclxuICBcdDAlIHtcclxuICAgXHRcdG1hcmdpbi10b3A6IDBweFxyXG4gIFx0IFx0d2lkdGg6IDExMHB4XHJcbiAgXHR9XHJcbiBcdDYwJSB7XHJcbiAgXHQgXHRtYXJnaW4tdG9wOiAtNjBweFxyXG4gIFx0IFx0d2lkdGg6IDkwcHhcclxuICBcdCBcdG1hcmdpbi1ib3R0b206IDYwcHhcclxuICBcdH1cclxuXHJcbiAgXHQ4MCUge1xyXG4gIFx0IFx0bWFyZ2luLXRvcDogNTBweFxyXG4gIFx0IFx0d2lkdGg6IDYwcHhcclxuICBcdCBcdG1hcmdpbi1ib3R0b206IC01MHB4XHJcbiAgXHR9XHJcblxyXG4gIFx0ODglIHtcclxuXHQgXHRtYXJnaW4tdG9wOiAtMTBweFxyXG4gIFx0IFx0d2lkdGg6IDEwMHB4XHJcbiAgXHQgXHRtYXJnaW4tYm90dG9tOiAxMHB4XHJcbiAgXHR9XHJcblxyXG4gXHQxMDAlIHtcclxuXHQgIFx0bWFyZ2luLXRvcDogMFxyXG4gIFx0IFx0d2lkdGg6IDExMHB4XHJcbiAgXHR9XHJcbn1cclxuXHJcblxyXG5Aa2V5ZnJhbWVzIGJ1YmJsZS13aXRoLXRvcCB7XHJcblx0MCUge1xyXG5cdFx0d2lkdGg6IDFweFxyXG5cdFx0aGVpZ2h0OiAxcHhcclxuXHRcdGJvcmRlci1sZWZ0OiBzb2xpZCAyMHB4ICRncmVlblxyXG5cdFx0Ym9yZGVyLXRvcDogc29saWQgMjBweCAkZ3JlZW5cclxuXHRcdGJhY2tncm91bmQ6ICRncmVlblxyXG5cdH1cclxuXHQxMDAle1xyXG5cdFx0d2lkdGg6IDMwcHhcclxuXHRcdGhlaWdodDogMzBweFxyXG5cdFx0Ym9yZGVyLWxlZnQ6IHNvbGlkIDVweCAkZ3JlZW5cclxuXHRcdGJvcmRlci10b3A6IHNvbGlkIDVweCAkZ3JlZW5cclxuXHRcdGJhY2tncm91bmQ6ICR3aGl0ZVxyXG5cdH1cclxufVxyXG5cclxuQGtleWZyYW1lcyBidWJibGUtbm8tdG9wIHtcclxuXHQwJSB7XHJcblx0XHR3aWR0aDogMXB4XHJcblx0XHRoZWlnaHQ6IDFweFxyXG5cdFx0Ym9yZGVyLWxlZnQ6IHNvbGlkIDIwcHggJGdyZWVuXHJcblx0XHRiYWNrZ3JvdW5kOiAkZ3JlZW5cclxuXHR9XHJcblx0MTAwJXtcclxuXHRcdHdpZHRoOiAzMHB4XHJcblx0XHRoZWlnaHQ6IDMwcHhcclxuXHRcdGJvcmRlci1sZWZ0OiBzb2xpZCA1cHggJHdoaXRlXHJcblx0XHRiYWNrZ3JvdW5kOiAkd2hpdGVcclxuXHR9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgYnViYmxlLWZpcnN0LWNoaWxkIHtcclxuXHQwJSB7XHJcblx0XHR3aWR0aDogMXB4XHJcblx0XHRoZWlnaHQ6IDFweFxyXG5cdFx0Ym9yZGVyLWxlZnQ6IHNvbGlkIDIwcHggJGdyZWVuXHJcblx0XHRiYWNrZ3JvdW5kOiAkZ3JlZW5cclxuXHR9XHJcblx0MTAwJSB7XHJcblx0XHR3aWR0aDogMzBweFxyXG5cdFx0aGVpZ2h0OiAzMHB4XHJcblx0XHRib3JkZXItbGVmdDogc29saWQgNXB4ICRncmVlblxyXG5cdFx0YmFja2dyb3VuZDogJHdoaXRlXHJcblx0fVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIHNwaW4ge1xyXG5cdDAle1xyXG5cdFx0dHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XHJcblx0fVxyXG5cdDEwMCV7XHJcblx0XHR0cmFuc2Zvcm06IHJvdGF0ZSg3MjBkZWcpO1xyXG5cdH1cclxufVxyXG5cclxuQGtleWZyYW1lcyBob3Zlci1hbmltIHtcclxuXHQwJSB7XHJcblx0fVxyXG5cclxuXHQyNSUge1xyXG5cdFx0dHJhbnNmb3JtOiBzY2FsZSgxLjIpXHJcblx0fVxyXG5cclxuXHQ0MCUge1xyXG5cdFx0dHJhbnNmb3JtOiBzY2FsZSgxLjgpXHJcblx0fVxyXG5cclxuXHQ2MCUge1xyXG5cdFx0dHJhbnNmb3JtOiBzY2FsZSgxLjQpXHJcblx0fVxyXG5cclxuXHQ4MCUge1xyXG5cdFx0dHJhbnNmb3JtOiBzY2FsZSgxLjYpXHJcblx0fVxyXG5cclxuXHQxMDAlIHtcclxuXHRcdHRyYW5zZm9ybTogc2NhbGUoMS41KVxyXG5cdH1cclxufVxyXG5cclxuXHJcblxyXG5Aa2V5ZnJhbWVzIGhvdmVyLWFuaW0tc21hbGwge1xyXG5cdDAlIHtcclxuXHR9XHJcblxyXG5cdDI1JSB7XHJcblx0XHR0cmFuc2Zvcm06IHNjYWxlKDEuMSlcclxuXHR9XHJcblxyXG5cdDQwJSB7XHJcblx0XHR0cmFuc2Zvcm06IHNjYWxlKDEuNClcclxuXHR9XHJcblxyXG5cdDYwJSB7XHJcblx0XHR0cmFuc2Zvcm06IHNjYWxlKDEuMjUpXHJcblx0fVxyXG5cclxuXHQ4MCUge1xyXG5cdFx0dHJhbnNmb3JtOiBzY2FsZSgxLjQpXHJcblx0fVxyXG5cclxuXHQxMDAlIHtcclxuXHRcdHRyYW5zZm9ybTogc2NhbGUoMS4zKVxyXG5cdH1cclxufVxyXG5cclxuQGtleWZyYW1lcyBob3Zlci1hbmltLXN1YnRsZSB7XHJcblx0MCUge1xyXG5cdH1cclxuXHJcblx0MjUlIHtcclxuXHRcdHRyYW5zZm9ybTogc2NhbGUoMS4wNSlcclxuXHR9XHJcblxyXG5cdDQwJSB7XHJcblx0XHR0cmFuc2Zvcm06IHNjYWxlKDEuMilcclxuXHR9XHJcblxyXG5cdDYwJSB7XHJcblx0XHR0cmFuc2Zvcm06IHNjYWxlKDEuMTI1KVxyXG5cdH1cclxuXHJcblx0ODAlIHtcclxuXHRcdHRyYW5zZm9ybTogc2NhbGUoMS4yKVxyXG5cdH1cclxuXHJcblx0MTAwJSB7XHJcblx0XHR0cmFuc2Zvcm06IHNjYWxlKDEuMTUpXHJcblx0fVxyXG59XHJcblxyXG5cclxuQGtleWZyYW1lcyBsb2FkaW5nIHtcclxuXHQwJSB7XHJcblx0XHR0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKVxyXG5cdH1cclxuXHJcblx0MTAwJSB7XHJcblx0XHR0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpXHJcblx0fVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGhlYWRpbmctYW5pbSB7XHJcblx0MjAlIHtcclxuXHRcdHdpZHRoOiAxJVxyXG5cdFx0aGVpZ2h0OiAzLjVyZW1cclxuXHR9XHJcblx0XHJcblx0MTAwJSB7XHJcblx0XHR3aWR0aDogMTAwJVxyXG5cdFx0aGVpZ2h0OiAzLjVyZW1cclxuXHR9XHJcbn1cclxuXHJcblxyXG5Aa2V5ZnJhbWVzIGNsaWNrLWFuaW0ge1xyXG5cdDAlIHtcclxuXHRcdHRyYW5zZm9ybTogc2NhbGUoMilcclxuXHRcdGJvcmRlci1yYWRpdXM6IDBcclxuICAgICAgICBmb250LXNpemU6IDFweFxyXG5cdH1cclxuXHJcblx0MjUlIHtcclxuXHRcdHRyYW5zZm9ybTogc2NhbGUoMC44KVxyXG5cdFx0Y29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMClcclxuICAgICAgICB3aWR0aDogNTBweFxyXG5cdFx0aGVpZ2h0OiA1MHB4XHJcblx0XHRib3JkZXItcmFkaXVzOiAyNXB4XHJcblx0fVxyXG5cclxuXHJcblx0NDAlIHtcclxuXHRcdHRyYW5zZm9ybTogc2NhbGUoMC44KVxyXG5cdFx0Y29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMClcclxuICAgICAgICB3aWR0aDogNTBweFxyXG5cdFx0aGVpZ2h0OiA1MHB4XHJcblx0XHRib3JkZXItcmFkaXVzOiAyNXB4XHJcblx0fVxyXG5cclxuXHJcblx0NjAlIHtcclxuXHRcdHRyYW5zZm9ybTogc2NhbGUoMS44KVxyXG5cdFx0Y29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMClcclxuXHQgXHR3aWR0aDogODBweFxyXG5cdFx0aGVpZ2h0OiA4MHB4XHJcblx0XHRib3JkZXItcmFkaXVzOiAxMDAlXHJcblx0fVxyXG5cclxuXHQ4MCUge1xyXG5cdFx0dHJhbnNmb3JtOiBzY2FsZSgxLjQpXHJcblx0fVxyXG5cclxuXHQ5MCUge1xyXG5cdFx0dHJhbnNmb3JtOiBzY2FsZSgxLjcpXHJcblx0fVxyXG5cclxuXHQxMDAlIHtcclxuXHRcdHRyYW5zZm9ybTogc2NhbGUoMS41KVxyXG5cdFx0Y29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMClcclxuXHQgXHR3aWR0aDogODBweFxyXG5cdFx0aGVpZ2h0OiA4MHB4XHJcblx0XHRib3JkZXItcmFkaXVzOiAxMDAlXHJcblx0fVxyXG59XHJcblxyXG4iLCJAaW1wb3J0ICBcInZhcmlhYmxlcy5zdHlsXCI7XHJcbkBpbXBvcnQgIFwiYW5pbWF0aW9ucy5zdHlsXCI7XHJcbkBpbXBvcnQgIFwibWl4aW5zLnN0eWxcIjtcclxuLy8gQGltcG9ydCAgdXJsKGJyZWFrcG9pbnRzLnN0eWwpO1xyXG5cclxuKiB7XHJcblx0Ym9yZGVyYm94KClcclxufVxyXG5cclxuaHRtbCB7XHJcblx0Zm9udC1zaXplOiAxMnB4XHJcbn1cclxuXHJcbmJvZHkge1xyXG5cdGZvbnQtZmFtaWx5OiAkc291cmNlU2Fuc1xyXG5cdGJhY2tncm91bmQ6ICRsaWdodEdyZXlcclxuXHRwYWRkaW5nOiAwXHJcblx0bm9tYXJnaW4oKVxyXG5cdGZsb2F0LWZ1bGwoKVxyXG59XHJcblxyXG51bCB7XHJcblx0bGlzdC1zdHlsZTogbm9uZVxyXG5cdHBhZGRpbmc6IDBcclxuXHRub21hcmdpbigpXHJcbn1cclxuXHJcbmhlYWRlciB7XHJcblx0YmFja2dyb3VuZDogJHdoaXRlXHJcblx0ZmxvYXQtZnVsbCgpXHJcbn1cclxuXHJcbmEge1xyXG5cdHRleHQtZGVjb3JhdGlvbjogbm9uZVxyXG59XHJcblxyXG5uYXYge1xyXG5cdFxyXG5cdHRleHQtYWxpZ246IGNlbnRlclxyXG4gICAgcGFkZGluZy1ib3R0b206IDFyZW1cclxuXHRcclxuXHQmIGEge1xyXG5cdFx0XHJcblx0XHRmb250LWZhbWlseTogJHJhbGV3YXlcclxuXHRcdHBhZGRpbmc6IDFyZW0gMC4yNXJlbVxyXG5cdFx0Y29sb3I6ICRkYXJrR3JleVxyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9ja1xyXG5cdFx0XHJcblx0XHQmOmhvdmVyIHtcclxuXHRcdFx0YmFja2dyb3VuZDogJGxpZ2h0R3JleTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Ji5zZWxlY3RlZCB7XHJcblx0XHRcdGNvbG9yOiAkb3JhbmdlXHJcblx0XHR9XHJcblx0XHRcclxuXHR9XHJcblx0XHJcblx0JiBhICsgYSB7XHJcblx0XHRtYXJnaW4tbGVmdDogMXJlbVxyXG5cdH1cclxuXHRcclxufVxyXG5cclxuaDEsIGgyLCBoMyB7XHJcblx0Zm9udC1mYW1pbHk6ICRzb3VyY2VTYW5zXHJcblx0Zm9udC13ZWlnaHQ6IDIwMFxyXG5cdG5vbWFyZ2luKClcclxufVxyXG5cclxuaDEge1xyXG5cdGNvbG9yOiAkZGFya0dyZXlcclxuXHRmb250LXNpemU6IDNyZW1cclxuICAgIGxpbmUtaGVpZ2h0OiAyLjVyZW07XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtXHJcblx0ZmxvYXQtZnVsbCgpXHJcbn1cclxuXHJcbmgyIHtcclxuXHRjb2xvcjogJHdoaXRlXHJcblx0YmFja2dyb3VuZDogJGdyZWVuXHJcblx0cGFkZGluZzogMC41cmVtIDJyZW0gXHJcblx0Zm9udC1zaXplOiAycmVtXHJcblx0ZmxvYXQoKVxyXG59XHJcblxyXG5oMyB7XHJcbiAgICBmb250LXdlaWdodDogNTAwXHJcblx0Zm9udC1zaXplOiAxLjVyZW1cclxuXHRjb2xvcjogJGdyZWVuXHJcblx0ZmxvYXQtZnVsbCgpXHJcbn1cclxuXHJcblxyXG4uY2xlYXJmaXgge1xyXG5cdGNsZWFyIGJvdGhcclxufVxyXG5cclxuLmxvZ28ge1xyXG5cdHBvc2l0aW9uOiByZWxhdGl2ZVxyXG5cdGhlaWdodDogJGxvZ29TaXplXHJcbn1cclxuXHJcbi5sb2dvLXN2ZyB7XHJcblx0XHJcblx0d2lkdGg6ICRsb2dvU2l6ZVxyXG4gICAgbGVmdDogMFxyXG4gICAgcmlnaHQ6IDBcclxuICAgIG1hcmdpbjogYXV0b1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlXHJcbiAgICBcclxuICAgICYgI3JvdG9yIHtcclxuICAgIFx0YW5pbWF0ZShsb2FkaW5nLDFzLDAsbGluZWFyLHRydWUsIGZhbHNlKVxyXG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJVxyXG4gICAgfVxyXG4gICAgXHJcbn1cclxuXHJcbiNBYm91dCB7XHJcblx0JiAuaW50ZXJlc3RzIHtcclxuXHRcdG1hcmdpbi10b3AgMnJlbVxyXG5cdFx0ZmxvYXQtZnVsbCgpXHJcblx0fVxyXG59XHJcblxyXG4uYmlvIHtcclxuXHRcclxuXHRmbG9hdCgpXHJcblx0XHJcblx0LmJpby1waWMsIC5iaW8tbG9jYXRpb24ge1xyXG5cdFx0d2lkdGg6IDIyJVxyXG5cdFx0ZmxvYXQoKVxyXG5cdH1cclxuXHRcclxuXHQuYmlvLXBpYyB7XHJcblx0XHRcclxuXHRwYWRkaW5nLXJpZ2h0OiA1MHB4O1xyXG5cclxuXHRcdCticmVha3BvaW50KHh4cykge1xyXG5cdFx0ICAgIHdpZHRoOiAxMDAlO1xyXG5cdFx0ICAgIHBhZGRpbmc6IDA7XHJcblx0XHQgICAgZmxvYXQ6IG5vbmU7XHJcblx0XHR9XHRcdFxyXG5cdFx0XHRcclxuXHRcdCticmVha3BvaW50KHhzKSB7XHJcblx0XHQgICAgd2lkdGg6IDYwJTtcclxuXHRcdCAgICBwYWRkaW5nOiAwO1xyXG5cdFx0ICAgIGZsb2F0OiBub25lO1xyXG5cdFx0ICAgIG1hcmdpbjogMCAyMCU7XHJcblx0XHR9eFxyXG5cdFx0XHJcblx0fVxyXG5cdFxyXG5cdC5iaW8tbG9jYXRpb24ge1xyXG5cdFx0K2JyZWFrcG9pbnQoeHMpIHtcclxuXHRcdFx0ZGlzcGxheTogbm9uZTtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmJpby1jb250ZW50IHtcclxuXHRcdHdpZHRoOiA1NiVcclxuXHRcdGZsb2F0KClcclxuXHRcdFxyXG5cdFx0K2JyZWFrcG9pbnQoeHMpIHtcclxuXHRcdCAgICB3aWR0aDogMTAwJTtcclxuXHRcdCAgICBtYXJnaW4tdG9wOiAycmVtO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHRibG9ja3F1b3RlIHtcclxuXHQgICAgICAgIG1hcmdpbjogMDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcbn1cclxuXHJcblxyXG4uc2tpbGxzLWxpc3Qge1xyXG5cdFxyXG5cdGNsZWFyKClcclxuXHRmbG9hdC1mdWxsKClcclxuXHRwYWRkaW5nLXRvcDogMnJlbVxyXG5cdFxyXG5cdCYgbGkge1xyXG5cdFx0XHJcblx0XHRkaXNwbGF5OiBibG9ja1xyXG5cdFx0b3ZlcmZsb3c6IGhpZGRlblxyXG5cdFx0d2lkdGg6IDglXHJcblx0XHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0XHJcblx0XHRiYWNrZ3JvdW5kLXNpemU6IGNvdmVyXHJcblx0XHRjdXJzb3I6IHBvaW50ZXJcclxuXHRcdGZsb2F0KClcclxuXHJcblx0XHQrYnJlYWtwb2ludCh4cykge1xyXG5cdFx0XHR3aWR0aDogMTglO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHRcclxuXHRcdCYjSmF2YXNjcmlwdCB7XHJcblx0XHRcdHBhZGRpbmc6IDElIDBcdFxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmI2pRdWVyeSB7XHJcblx0XHRcdHdpZHRoOiAyNSVcclxuXHRcdFx0cGFkZGluZzogMS4yNSUgMFxyXG5cdFx0XHRtYXJnaW4tbGVmdDogMSVcclxuXHJcblx0XHRcdCticmVha3BvaW50KHhzKSB7XHJcblx0XHRcdFx0d2lkdGg6IDUwJTtcclxuXHRcdFx0XHRtYXJnaW4tbGVmdDogMiVcclxuXHRcdFx0fVxyXG5cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0JiNTdHlsdXMge1xyXG5cdFx0XHR3aWR0aDogMTclXHJcblx0XHRcdG1hcmdpbi1sZWZ0OiAxJVxyXG5cdFx0XHRcclxuXHRcdFx0K2JyZWFrcG9pbnQoeHMpIHtcclxuXHRcdFx0XHR3aWR0aDogMzQlO1xyXG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiAyJVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcdFx0XHJcblx0XHQmI1Nhc3Mge1xyXG5cdFx0XHR3aWR0aDogMTQlXHJcblx0XHRcdG1hcmdpbi1sZWZ0OiA0JVxyXG5cdFx0XHRcclxuXHRcdFx0K2JyZWFrcG9pbnQoeHMpIHtcclxuXHRcdFx0XHR3aWR0aDogMjglO1xyXG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiAwO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdFxyXG5cdFx0JiNJbGx1c3RyYXRvcixcclxuXHRcdCYjU2tldGNoLFxyXG5cdFx0JiNQaG90b3Nob3Age1xyXG5cdCAgICAgICAgd2lkdGg6IDEwJVxyXG5cdCAgICAgICAgcGFkZGluZzogMiUgMSVcclxuXHQgICAgICAgIG1hcmdpbi1sZWZ0OiAyJVxyXG5cdCAgICAgICAgXHJcblx0XHRcdCticmVha3BvaW50KHhzKSB7XHJcblx0XHRcdFx0d2lkdGg6IDIwJTtcclxuXHRcdFx0XHRtYXJnaW4tbGVmdDogNCVcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmI1NrZXRjaCB7XHJcblx0XHRcdG1hcmdpbi1sZWZ0OiAwO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmICsgbGkge1xyXG5cdFx0XHRtYXJnaW4tbGVmdDogMyVcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Jjpob3ZlciB7XHJcblx0XHRcdGFuaW1hdGUoIGhvdmVyLWFuaW0tc21hbGwsIDUwMG1zLCAwLCBlYXNlLWluLCB0cnVlLCB0cnVlIClcclxuXHRcdFx0Ly8gYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUyKVxyXG5cdFx0XHRib3JkZXItcmFkaXVzOiAzcHhcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Jjpob3ZlcjphZnRlciB7XHJcblx0XHRcdGRpc3BsYXk6IGJsb2NrXHJcblx0XHR9XHJcblxyXG5cdFx0XHJcblx0fVxyXG5cdFxyXG59IFxyXG5cclxuXHJcbiNNb3JlIC5pbm5lci1jb250YWluZXJ7XHJcblx0XHJcblx0YmFja2dyb3VuZCAkd2hpdGVcclxuXHRwYWRkaW5nIDNyZW1cclxuXHRcclxuXHQuaW50ZXJlc3RzIHtcclxuXHRcdFxyXG5cdFx0ZmxvYXQtZnVsbCgpXHJcblx0XHRcclxuXHRcdCYgc3ZnIHtcclxuXHRcdFx0XHJcblx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrXHJcblx0XHRcdHdpZHRoOiAxOCVcclxuXHRcdFx0XHJcblx0XHRcdCY6Zmlyc3Qtb2YtdHlwZSB7XHJcblx0XHRcdFx0Y2xlYXI6IGJvdGhcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmIHN2ZyArIHN2ZyB7XHJcblx0XHRcdG1hcmdpbi1sZWZ0OiAyJTtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcblxyXG5cclxuc2VjdGlvbiB7XHJcblx0XHJcblx0ZmxvYXQtZnVsbCgpXHJcblx0XHJcblx0K2JyZWFrcG9pbnQoeHMpIHtcclxuXHRcdHBhZGRpbmc6IDAgMnJlbTtcclxuXHR9XHRcclxuXHRcclxuXHQrYnJlYWtwb2ludChzbSkge1xyXG5cdFx0cGFkZGluZzogMCAycmVtO1xyXG5cdH1cclxuXHQrYnJlYWtwb2ludChsZykge1xyXG5cdFx0cGFkZGluZzogMDtcclxuXHR9XHJcblxyXG5cdCY6Zmlyc3QtY2hpbGQge1xyXG5cdFx0XHJcblx0XHQmIC5pbm5lci1jb250YWluZXIge1xyXG5cdFx0XHRiYWNrZ3JvdW5kOiAkd2hpdGVcclxuXHQgICAgICAgIHBhZGRpbmc6IDNyZW1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdCYud2hhdC1pLWRvIHtcclxuXHRcdFxyXG5cdFx0YmFja2dyb3VuZDogJGdyZWVuIFxyXG5cdFx0bWluLWhlaWdodDogNTAwcHhcclxuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZVxyXG5cdFx0XHJcblx0XHQmIGNhbnZhcyB7XHJcblx0ICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGVcclxuXHQgICAgICAgIHRvcDogMFxyXG5cdCAgICAgICAgbGVmdDogMFxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmIC5yZXNwb25zaXZlIHtcclxuXHQgICAgXHR3aWR0aCA2MCU7XHJcblx0XHR9XHJcblxyXG5cdFx0JiAuaW50ZXJmYWNlIHtcclxuXHQgICAgXHR3aWR0aCA0MCU7XHJcblx0XHR9XHJcblxyXG5cdFx0JiAuZGV2aW5nLFxyXG5cdFx0JiAuaW50ZXJhY3Rpb24ge1xyXG5cdFx0XHR3aWR0aDogNTAlO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmIC53aGF0LWktZG8tbGVmdCxcclxuXHRcdCYgLndoYXQtaS1kby1yaWdodCB7XHJcblx0XHRcdHdpZHRoOiA1MCU7XHJcblx0ICAgIFx0ZmxvYXQ6IGxlZnQ7XHJcblx0ICAgIFx0XHJcblx0XHRcdCticmVha3BvaW50KHhzKSB7XHJcblx0XHQgICAgXHR3aWR0aDogMTAwJTtcclxuXHRcdFx0fVx0XHJcblx0XHRcdFxyXG5cdFx0fVxyXG5cclxuXHRcdCYgLndoYXQtaS1kby1oZWFkaW5nIHtcclxuXHRcdFx0XHJcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9ja1xyXG5cdFx0XHRvcGFjaXR5OiAwXHJcblx0XHRcdHBhZGRpbmc6IDFyZW0gMFxyXG5cdFx0XHRjb2xvcjogJHdoaXRlIFxyXG5cdFx0XHR0ZXh0LWFsaWduIGNlbnRlclxyXG5cdFx0XHRtYXJnaW4tdG9wOiAycmVtO1xyXG5cdFx0XHRcclxuXHRcdFx0Ji5yZXNwb25zaXZlIHtcclxuXHRcdFx0XHR0cmFuc2l0aW9uOiBvcGFjaXR5IDEwMG1zIDFzIGVhc2U7XHJcblx0XHRcdH1cclxuXHRcdFx0Ji5pbnRlcmZhY2Uge1xyXG5cdFx0XHRcdHRyYW5zaXRpb246IG9wYWNpdHkgMTAwbXMgJGFuaW1Ud29XYWl0IGVhc2U7XHJcblx0XHRcdH1cclxuXHRcdFx0Ji5kZXZpbmcge1xyXG5cdFx0XHRcdHRyYW5zaXRpb246IG9wYWNpdHkgMTAwbXMgJGFuaW1UaHJlZVdhaXQgZWFzZTtcclxuXHRcdFx0fVxyXG5cdFx0XHQmLmludGVyYWN0aW9uIHtcclxuXHRcdFx0XHR0cmFuc2l0aW9uOiBvcGFjaXR5IDEwMG1zICRhbmltRm91cldhaXQgZWFzZTtcclxuXHRcdFx0fVxyXG5cdFx0XHQmIHNwYW4ge1xyXG5cdFx0XHRcdHBhZGRpbmc6IDFyZW1cclxuXHRcdFx0XHRib3JkZXIgc29saWQgdGhpbiAkd2hpdGVcclxuXHRcdFx0XHRiYWNrZ3JvdW5kICRncmVlbjtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmIC5pbm5lci1jb250YWluZXIge1xyXG5cdFx0XHRwYWRkaW5nOiAzcmVtXHJcblx0XHRcdGJvcmRlcjogc29saWQgdGhpbiAkd2hpdGVcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0JiBoMiB7XHJcblx0XHRcdGJhY2tncm91bmQ6ICR3aGl0ZVxyXG5cdFx0XHRjb2xvcjogJGdyZWVuXHJcblx0XHR9XHRcdFx0XHJcblx0XHRcclxuXHRcdCYgLmNvbnRhaW5lci1ib3gge1xyXG5cdFx0XHRvdmVyZmxvdyBoaWRkZW5cclxuXHRcdCAgICBoZWlnaHQgMjAwcHhcclxuXHRcdCAgICBmbG9hdCgpXHJcblx0XHQgICAgXHJcblx0XHQgICAgJi5yZXNwb25zaXZlIHtcclxuXHRcdCAgICBcdHRleHQtYWxpZ24gY2VudGVyXHJcblx0XHQgICAgfVxyXG5cdFx0ICAgIFxyXG5cdFx0ICAgICYuaW50ZXJmYWNlIHtcclxuXHRcdCAgICBcdHRleHQtYWxpZ24gY2VudGVyXHJcblx0XHQgICAgXHRwYWRkaW5nLXRvcCAzcmVtXHJcblx0XHQgICAgfVxyXG5cdFx0ICAgICYuZGV2aW5nIHtcclxuXHRcdFx0XHR0cmFuc2l0aW9uOiBvcGFjaXR5IDEwMG1zICRhbmltVGhyZWVXYWl0IGVhc2VcclxuXHRcdCAgICBcdHBhZGRpbmctdG9wOiAzcmVtO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0fVxyXG5cdFx0XHRcclxuXHRcdCYgLmNvbnRhaW5lci1ib3g6Zmlyc3Qtb2YtdHlwZSB7XHJcblx0XHRcdFx0Y2xlYXI6IGJvdGhcclxuXHRcdH1cclxuXHRcdFxyXG5cdH1cclxuXHRcclxuXHQmIC5pbm5lci1jb250YWluZXIge1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZVxyXG4gICAgICAgIHotaW5kZXg6IDIwMFxyXG5cdFx0b3ZlcmZsb3c6IGhpZGRlblx0XHRcclxuXHQgICAgbWFyZ2luOiA1JSBhdXRvXHJcblx0fVx0XHJcblx0XHJcblx0K2JyZWFrcG9pbnQobWQpIHtcclxuXHRcdFxyXG5cdFx0JiAuaW5uZXItY29udGFpbmVyIHtcclxuXHRcdFx0d2lkdGg6IDEwMCVcclxuXHRcdH1cclxuXHRcdFxyXG5cdH1cclxuXHRcclxuXHQrYnJlYWtwb2ludChsZykge1xyXG5cdFx0XHJcblx0XHQmIC5pbm5lci1jb250YWluZXIge1xyXG5cdFx0XHRtaW4td2lkdGg6IDg2NXB4XHJcblx0XHRcdHdpZHRoOiA2MCU7XHJcblx0XHR9XHJcblx0XHRcclxuXHR9XHJcblxyXG5cdCYjQ29udGFjdCB7XHJcblx0XHRiYWNrZ3JvdW5kICRkYXJrR3JleTtcclxuXHRcdCYgLmlubmVyLWNvbnRhaW5lciB7XHJcblx0XHRcdG92ZXJmbG93OiB2aXNpYmxlO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0fVxyXG5cdFxyXG59XHJcblxyXG4uc3BsaXQtc20ge1xyXG5cdFxyXG5cdCticmVha3BvaW50KHhzKSB7XHJcblx0XHRjbGVhcjogYm90aDtcclxuXHR9XHJcblxyXG59XHJcblxyXG5cclxuLmhlYWRpbmctY29udGFpbmVyIHtcclxuXHRwYWRkaW5nLWJvdHRvbTogMXJlbVxyXG5cdGRpc3BsYXk6IGJsb2NrXHJcblx0ZmxvYXQ6IGxlZnRcclxuXHR3aWR0aDogMTAwJTtcclxufVxyXG5cclxuLmhlYWRpbmctYW5pbS1jb250YWluZXIge1xyXG5cdGhlaWdodCAxMXJlbTtcclxufVxyXG5cclxuIC5oZWFkaW5nLWFuaW0ge1xyXG5cdHdpZHRoIDEwcHhcclxuXHRoZWlnaHQgMHJlbVxyXG5cdG92ZXJmbG93IGhpZGRlblxyXG59XHJcblxyXG5cclxuXHJcbi5yZXNwb25zaXZlIHtcclxuXHRcclxuXHRvcGFjaXR5OiAwO1xyXG5cdHRyYW5zaXRpb246IG9wYWNpdHkgMjAwbXMgMXMgZWFzZTtcclxuXHJcblx0JiAuc2NyZWVuLW91dGVyIHtcclxuXHRcdHdpZHRoOiA1NXB4O1xyXG5cdFx0aGVpZ2h0OiAxMDBweDtcclxuXHRcdGJhY2tncm91bmQ6ICR3aGl0ZTtcclxuXHRcdGJvcmRlci1yYWRpdXM6IDZweDtcclxuXHRcdHBhZGRpbmc6IDlweCA0cHg7XHJcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHRcclxuXHRcdHRyYW5zZm9ybS1vcmlnaW46IDg3cHggMTIxcHg7XHJcblx0XHRib3gtc2l6aW5nOiBjb250ZW50LWJveDtcclxuXHR9XHJcblxyXG5cdCYgLnNwZWFrZXIge1xyXG5cdFx0YmFja2dyb3VuZDogJG1lZGl1bUdyZXk7XHJcblx0XHR3aWR0aDogMTZweDtcclxuXHRcdGhlaWdodDogMnB4O1xyXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0dG9wOiA0cHg7XHJcblx0XHRsZWZ0OjA7XHJcblx0XHRyaWdodDowO1xyXG5cdFx0bWFyZ2luOiBhdXRvO1xyXG5cdH1cclxuXHJcblx0JiAuc2NyZWVuLWlubmVyIHtcclxuXHRcdGJhY2tncm91bmQ6ICRsaWdodEdyZXk7XHJcblx0ICBcdG92ZXJmbG93OiBoaWRkZW47XHJcblx0XHRmaWxsLXBhcmVudCgpXHJcblx0fVxyXG5cclxuXHQmIC5idXR0b24ge1xyXG5cdFx0cG9zaXRpb246IGFic29sdXRlXHJcblx0XHRsZWZ0OjBcclxuXHRcdHJpZ2h0OjBcclxuXHRcdHdpZHRoOiA1cHhcclxuXHRcdGhlaWdodDogNXB4XHJcblx0XHRiYWNrZ3JvdW5kOiAkbWVkaXVtR3JleVxyXG5cdFx0Ym9yZGVyLXJhZGl1czogMTAwJTtcclxuXHRcdGJvdHRvbTogM3B4XHJcblx0XHRtYXJnaW46IGF1dG87XHJcblx0fVxyXG5cclxuXHQmIC5sYXB0b3Age1xyXG5cdFx0XHJcblx0XHRkaXNwbGF5OiBibG9ja1xyXG5cdFx0Ly8gZmxvYXQoKVxyXG5cdFx0cG9zaXRpb246IHJlbGF0aXZlXHJcblx0XHR3aWR0aDogMjQwcHhcclxuXHRcdGhlaWdodDogMTJweFxyXG5cdFx0YmFja2dyb3VuZDogJHdoaXRlXHJcblx0ICAgIGJvcmRlci1yYWRpdXM6IDAgMCAxMHB4IDEwcHhcclxuXHQgICAgbWFyZ2luLXRvcDogMTUwcHhcclxuXHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdGNvbnRlbnQ6ICcnO1xyXG5cdFx0XHR3aWR0aDogNDVweDtcclxuXHRcdFx0aGVpZ2h0OiA1cHg7XHJcblx0XHRcdGJhY2tncm91bmQ6ICRtZWRpdW1HcmV5O1xyXG5cdFx0XHR0b3A6MDtcclxuXHRcdFx0bGVmdDowO1xyXG5cdFx0XHRyaWdodDowO1xyXG5cdFx0XHRtYXJnaW46IGF1dG87XHJcblx0XHQgICAgZGlzcGxheTogYmxvY2s7XHJcblx0XHQgICAgYm9yZGVyLXJhZGl1czogMCAwIDVweCA1cHg7XHJcblx0XHR9XHJcblxyXG5cdH1cclxuXHJcblx0JiAuY29udGVudCB7XHJcblx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0aGVpZ2h0OiAyMDAlO1xyXG5cdFx0dHJhbnNpdGlvbjogbWFyZ2luIDUwMG1zIDEuNXMgZWFzZTtcclxuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHR9XHJcblxyXG5cdCYgLmNvbnRlbnQtaXRlbSB7XHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHRcdGhlaWdodDogMzMuMzMlO1xyXG5cdFx0YmFja2dyb3VuZDogJGRhcmtHcmV5O1xyXG5cdH1cclxuXHJcblx0JiAuY29udGVudC1pdGVtOm50aC1jaGlsZCgyKSA+IHNwYW4ge1xyXG5cdFx0YmFja2dyb3VuZDogJGdyZWVuO1xyXG5cdFx0d2lkdGg6IDUwJTtcclxuXHRcdGhlaWdodDogNTAlO1xyXG5cdFx0ZGlzcGxheTogYmxvY2s7XHJcblx0XHRmbG9hdDogbGVmdDtcclxuXHRcdHRyYW5zaXRpb246IG1hcmdpbiAzMDBtcyAzcyBlYXNlLW91dCwgd2lkdGggMzAwbXMgM3MgZWFzZS1vdXQsIGhlaWdodCAzMDBtcyAzcyBlYXNlLW91dDtcclxuXHR9XHJcblx0XHJcblx0JiAudG9wLW1lbnUtaGFsZiB7XHJcblx0XHRjb2xvcjogJGdyZWVuXHJcblx0XHR3aWR0aDogMTAwJVxyXG5cdFx0aGVpZ2h0OiA0NSVcclxuXHRcdG1hcmdpbi1sZWZ0OiAtMTAwcHhcclxuXHRcdGRpc3BsYXk6IGJsb2NrXHJcblx0XHR0cmFuc2l0aW9uOiBtYXJnaW4gNTAwbXMgMnMgZWFzZS1vdXRcclxuXHQgICAgZm9udC1zaXplOiAzNHB4XHJcblx0ICAgIGZvbnQtd2VpZ2h0OiBib2xkXHJcblx0fVxyXG5cdCYgLmRldmljZS1jb250YWluZXIge1xyXG5cdCAgICBvdmVyZmxvdzogaGlkZGVuXHJcblx0ICAgIHBvc2l0aW9uOiByZWxhdGl2ZVxyXG5cdCAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2tcclxuXHQgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjcpO1xyXG5cdH1cclxuXHRcclxufVxyXG5cclxuLnNwYWNlciB7XHJcblx0aGVpZ2h0OiAzLjVyZW07XHJcblx0bGluZS1oZWlnaHQ6IDMuNXJlbTtcclxuXHJcbn1cclxuXHJcbi5pbnRlcmZhY2UtYmxvY2tzIHtcclxuXHRcclxuICAgIG1hcmdpbjogYXV0b1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlblxyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrXHJcbiAgICBtYXJnaW4tbGVmdDogLTVweFxyXG4gICAgLy8gd2lkdGg6IDEwNXB4XHJcbiAgICBcclxuXHQmID4gbGkge1xyXG5cdFx0XHJcblx0XHRkaXNwbGF5OiBibG9ja1xyXG5cdFx0ZmxvYXQ6IGxlZnRcclxuXHRcdHdpZHRoOiAxcHhcclxuXHRcdGhlaWdodDogMXB4XHJcblx0XHR3aWR0aDogMXB4XHJcblx0XHRoZWlnaHQ6IDFweFxyXG5cdFx0Ym9yZGVyOiAwIHNvbGlkIHJnYmEoMCwwLDAsMClcclxuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZVxyXG5cdFx0Y29udGVudGJveCgpXHJcblx0XHRcclxuXHRcdCY6Zmlyc3QtY2hpbGQgeyBcclxuXHRcdFx0ei1pbmRleDogMzBcclxuXHRcdH1cclxuXHRcdCY6bnRoLWNoaWxkKDIpIHsgXHJcblx0XHRcdHotaW5kZXg6IDIwXHJcblx0XHR9XHRcdFxyXG5cdFx0JjpudGgtY2hpbGQoMykgeyBcclxuXHRcdFx0ei1pbmRleDogMTBcclxuXHRcdH1cclxuXHRcdCY6bnRoLWNoaWxkKDNuKzQpIHsgXHJcblx0XHRcdGNsZWFyOiBib3RoXHJcblx0XHR9XHJcblx0XHRcclxuXHR9XHJcbn1cclxuXHJcbi5pbnRlcmFjdGlvbiB7XHJcblx0XHJcblx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuXHQmIGJ1dHRvbiB7XHJcblx0XHRjdXJzb3I6IHBvaW50ZXJcclxuXHRcdGFic29sdXRlbHkoKVxyXG5cdFx0ZGlzcGxheTogYmxvY2tcclxuXHRcdHotaW5kZXg6IDBcclxuXHRcdGJvcmRlcjogbm9uZVxyXG5cdFx0YmFja2dyb3VuZDogJGRhcmtHcmV5XHJcblx0XHRjb2xvcjogJHdoaXRlXHJcblx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlXHJcblx0ICAgIHBhZGRpbmc6IDEwcHggMjBweFxyXG5cdCAgICBmb250LXNpemU6IDE1cHhcclxuXHQgICAgd2lkdGg6IDEwMnB4XHJcblx0XHRoZWlnaHQ6IDM3cHhcclxuXHRcdG9wYWNpdHk6IDA7XHJcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApXHJcblx0XHR0cmFuc2l0aW9uOiBvcGFjaXR5IDEwMG1zICRhbmltRm91cldhaXQgZWFzZTtcclxuXHJcblx0XHQmOmZvY3VzIHtcclxuXHRcdFx0b3V0bGluZTogbm9uZVxyXG5cdFx0fVxyXG5cdFx0aW1nIHtcclxuXHRcdFx0ZGlzcGxheTogbm9uZVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0fVxyXG5cdFxyXG59XHJcblxyXG4uaWYtc3RhdGVtZW50IHsgXHJcblxyXG5cdHBhZGRpbmctbGVmdDogMXJlbTtcclxuXHJcblx0JiA+IGxpIHtcclxuXHRcdFxyXG5cdFx0Zm9udC1mYW1pbHk6ICRtb25vXHJcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2tcclxuXHRcdHdpZHRoOiAwXHJcblx0XHRoZWlnaHQ6IDFyZW1cclxuXHRcdGNvbG9yOiAkd2hpdGVcclxuXHRcdGZvbnQtd2VpZ2h0OiA0MDBcclxuXHRcdG1hcmdpbi1ib3R0b206IDFyZW1cclxuXHRcdG92ZXJmbG93OiBoaWRkZW5cclxuXHRcdGJhY2tncm91bmQgJGdyZWVuXHJcblxyXG5cdFx0JjpudGgtY2hpbGQoMSkge1xyXG5cdFx0XHR0cmFuc2l0aW9uOiB3aWR0aCA3MDBtcyAkYW5pbVRocmVlV2FpdCBsaW5lYXI7XHJcblx0XHR9XHJcblxyXG5cdFx0JjpudGgtY2hpbGQoMikge1xyXG5cdFx0XHR0cmFuc2l0aW9uOiB3aWR0aCA3MDBtcyAoJGFuaW1UaHJlZVdhaXQgKyA5NTBtcykgbGluZWFyO1xyXG5cdFx0fVxyXG5cclxuXHRcdCY6bnRoLWNoaWxkKDMpIHtcclxuXHRcdFx0dHJhbnNpdGlvbjogd2lkdGggNzAwbXMgKCRhbmltVGhyZWVXYWl0ICsgMTcwMG1zKSBsaW5lYXI7XHJcblx0XHR9XHJcblxyXG5cdFx0JjpudGgtY2hpbGQoNCkge1xyXG5cdFx0XHR0cmFuc2l0aW9uOiB3aWR0aCA3MDBtcyAoJGFuaW1UaHJlZVdhaXQgKyAyNDUwbXMpIGxpbmVhcjtcclxuXHRcdH1cclxuXHJcblx0XHQmOm50aC1jaGlsZCg1KSB7XHJcblx0XHRcdHRyYW5zaXRpb246IHdpZHRoIDcwMG1zICgkYW5pbVRocmVlV2FpdCArIDMyMDBtcykgbGluZWFyO1xyXG5cdFx0fVxyXG5cdFxyXG5cdFx0JiAub3JhbmdlIHtcclxuXHRcdFx0Y29sb3I6ICNGM0M1M0Q7XHJcblx0XHR9XHJcblxyXG5cdFx0JiAucGluayB7XHJcblx0XHRcdGNvbG9yOiAjRDY0MDU3O1xyXG5cdFx0fVxyXG5cclxuXHRcdCYgLmluZGVudGVkIHtcclxuXHRcdFx0cGFkZGluZy1sZWZ0OiAycmVtO1xyXG5cdFx0fVxyXG5cdFxyXG5cdH1cclxuXHJcbn1cclxuXHJcbi5zdGFydCB7XHJcblxyXG5cdCYgLmhlYWRpbmctYW5pbSB7XHJcblx0XHRhbmltYXRlKGhlYWRpbmctYW5pbSwgMS41cywgMHMsIGxpbmVhciwgdHJ1ZSwgdHJ1ZSlcclxuXHR9XHJcblxyXG5cdCYgLnJlc3BvbnNpdmUge1xyXG5cdFxyXG5cdFx0b3BhY2l0eSAxXHJcblxyXG5cdFx0JiAuc2NyZWVuLW91dGVyIHtcclxuXHRcdFx0dHJhbnNpdGlvbjogd2lkdGggNTAwbXMgJGFuaW1PbmVXYWl0ICRjYk9uZSwgaGVpZ2h0IDUwMG1zICRhbmltT25lV2FpdCAkY2JPbmUsIGJvcmRlci1yYWRpdXMgNTAwbXMgJGFuaW1PbmVXYWl0ICRjYk9uZSwgcGFkZGluZyA1MDBtcyAkYW5pbU9uZVdhaXQgJGNiT25lO1xyXG5cdFx0XHR3aWR0aDogMTEwcHhcclxuXHRcdFx0aGVpZ2h0OiAxNjBweFxyXG5cdFx0XHRib3JkZXItcmFkaXVzOiAxMHB4XHJcblx0XHRcdHBhZGRpbmc6IDlweCA4cHhcclxuXHRcdFx0YW5pbWF0aW9uOiB0dXJuLXRvLXRhYmxldCA1MDBtcyAoJGFuaW1PbmVXYWl0KzAuNXMpICRjYk9uZSBmb3J3YXJkcywgYm91bmNlIDFzICgkYW5pbU9uZVdhaXQrMS43cykgZWFzZSBmb3J3YXJkc1xyXG5cdFx0fVxyXG5cclxuXHRcdCYgLmNvbnRlbnQge1xyXG5cdFx0XHRtYXJnaW4tdG9wOiAtMTA0cHhcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0JiAubGFwdG9wIHtcclxuXHRcdFx0YW5pbWF0ZSh0dXJuLXRvLWxhcHRvcCwgNzUwbXMsICgkYW5pbU9uZVdhaXQrMS4yNXMpcywgJGNiVHdvLCB0cnVlLCB0cnVlKVxyXG5cdFx0fVxyXG5cclxuXHRcdCYgLmNvbnRlbnQtaXRlbTpudGgtY2hpbGQoMikgPiBzcGFuIHtcclxuXHRcdFx0d2lkdGg6IDQ3JVxyXG5cdFx0XHRoZWlnaHQ6IDQ4JVxyXG5cdFx0ICAgIHdpZHRoOiA0NyU7XHJcblx0XHQgICAgbWFyZ2luLWxlZnQ6IDIlO1xyXG5cdFx0ICAgIFxyXG5cdFx0XHQmOm50aC1jaGlsZCgxbiszKSB7XHJcblx0XHRcdFx0bWFyZ2luLXRvcDogMiVcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHRcclxuXHRcdCYgLnRvcC1tZW51LWhhbGYgIHtcclxuXHRcdFx0bWFyZ2luLWxlZnQ6IDBweDtcclxuXHRcdH1cclxuXHJcblx0fVxyXG5cdFxyXG5cdCYgLmludGVyZmFjZSB7XHJcblxyXG5cdFx0JiAuaW50ZXJmYWNlLWJsb2NrcyA+IGxpIHtcclxuXHJcblx0XHRcdCY6Zmlyc3QtY2hpbGQge1xyXG5cdFx0XHRcdGFuaW1hdGUoYnViYmxlLWZpcnN0LWNoaWxkLCA0MDBtcywgKCRhbmltVHdvV2FpdCArIDBzKSwgJGNiVGhyZWUsIHRydWUsIHRydWUpXHJcblx0XHRcdH1cclxuXHJcblx0XHRcdCY6bnRoLWNoaWxkKDIpIHtcclxuXHRcdFx0XHRhbmltYXRlKGJ1YmJsZS1uby10b3AsIDQwMG1zLCAoJGFuaW1Ud29XYWl0ICsgNTBtcyksICRjYlRocmVlLCB0cnVlLCB0cnVlKVxyXG5cdFx0XHR9XHJcblxyXG5cclxuXHRcdFx0JjpudGgtY2hpbGQoMyl7XHJcblx0XHRcdFx0YW5pbWF0ZShidWJibGUtbm8tdG9wLCA0MDBtcywgKCRhbmltVHdvV2FpdCArIDEwMG1zKSwgJGNiVGhyZWUsIHRydWUsIHRydWUpXHJcblx0XHRcdH1cclxuXHJcblx0XHRcdCY6bnRoLWNoaWxkKDQpIHtcclxuXHRcdFx0XHRhbmltYXRlKGJ1YmJsZS13aXRoLXRvcCwgNDAwbXMsICgkYW5pbVR3b1dhaXQgKyA1MG1zKSwgJGNiVGhyZWUsIHRydWUsIHRydWUpXHJcblx0XHRcdFx0bWFyZ2luLWxlZnQ6MDtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0JjpudGgtY2hpbGQoNSksXHJcblx0XHRcdCY6bnRoLWNoaWxkKDcpIHtcclxuXHRcdFx0XHRhbmltYXRlKGJ1YmJsZS13aXRoLXRvcCwgNDAwbXMsICgkYW5pbVR3b1dhaXQgKyAxMDBtcyksICRjYlRocmVlLCB0cnVlLCB0cnVlKVxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQmOm50aC1jaGlsZCg2KSxcclxuXHRcdFx0JjpudGgtY2hpbGQoOCkge1xyXG5cdFx0XHRcdGFuaW1hdGUoYnViYmxlLXdpdGgtdG9wLCA0MDBtcywgKCRhbmltVHdvV2FpdCArIDE1MG1zKSwgJGNiVGhyZWUsIHRydWUsIHRydWUpXHJcblx0XHRcdH1cclxuXHJcblx0XHRcdCY6bGFzdC1jaGlsZCB7XHJcblx0XHRcdFx0YW5pbWF0ZShidWJibGUtd2l0aC10b3AsIDQwMG1zLCAoJGFuaW1Ud29XYWl0ICsgMjAwbXMpLCAkY2JUaHJlZSwgdHJ1ZSwgdHJ1ZSlcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0JjpudGgtY2hpbGQoMiksXHJcblx0XHRcdCY6bnRoLWNoaWxkKDMpIHtcclxuXHRcdFx0XHR0cmFuc2l0aW9uOiBcdGJvcmRlciAyMDBtcyAxcyBlYXNlLCBtYXJnaW4gMjAwbXMgMXMgZWFzZVxyXG5cdFx0XHR9XHJcblxyXG5cdFx0fVxyXG5cdFx0XHJcblx0fVxyXG5cdFxyXG5cdCYgLmludGVyYWN0aW9uIGJ1dHRvbiB7XHJcblx0XHRvcGFjaXR5OiAxO1xyXG5cdFx0XHJcblx0XHQmOmhvdmVyOm5vdCguY2xpY2tlZCkge1xyXG5cdFx0XHRhbmltYXRlKGhvdmVyLWFuaW0sIDUwMG1zLCAwLCBlYXNlLWluLCB0cnVlLCB0cnVlICk7XHJcblx0XHR9IFxyXG5cdFx0Ji5jbGlja2VkICB7XHJcblx0XHRcdGFuaW1hdGUoY2xpY2stYW5pbSwgNTAwbXMsIDAsIGVhc2UtaW4sIHRydWUsIHRydWUgKTtcclxuXHRcdFx0aW1nIHtcclxuXHRcdFx0ICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdFx0XHRhYnNvbHV0ZWx5KClcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmIC5kZXZpbmcge1xyXG5cdFx0XHJcblx0XHQmIC5pZi1zdGF0ZW1lbnQgPiBsaSB7XHJcblx0XHRcdHdpZHRoIDEwMCVcclxuXHRcdH1cclxuXHJcblx0fVxyXG5cclxuXHJcblx0Ji53aGF0LWktZG8ge1xyXG5cdFx0XHJcblx0XHQmIC53aGF0LWktZG8taGVhZGluZyB7XHJcblx0XHRcdFxyXG5cdFx0XHRvcGFjaXR5OiAxXHJcblx0XHRcdFxyXG5cdFx0fVxyXG5cdH1cclxuXHJcbn1cclxuXHJcblx0XHRcclxuLnR3aXR0ZXItdGltZWxpbmUge1xyXG5cdHdpZHRoOiA1NSUgIWltcG9ydGFudDtcclxuXHJcblx0K2JyZWFrcG9pbnQoeHMpIHtcclxuXHRcdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcclxuXHR9XHJcbn1cclxuXHJcbmEudHdpdHRlci10aW1lbGluZSB7XHJcblx0Y29sb3I6ICRkYXJrR3JleTtcclxufVxyXG5cclxuXHJcblxyXG4uY29udGFjdC1mb3JtIHtcclxuXHR3aWR0aDogNDUlO1xyXG5cdHZlcnRpY2FsLWFsaWduOiB0b3A7XHJcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdHBhZGRpbmc6IDAgMS41cmVtIDAgMDtcclxuXHRcclxuXHQrYnJlYWtwb2ludCh4cykge1xyXG5cdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRwYWRkaW5nOiAwO1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogMnJlbTtcclxuXHR9XHJcblx0XHJcblx0JiBpbnB1dCwgXHJcblx0JiB0ZXh0YXJlYSB7XHJcblx0XHRkaXNwbGF5OiBibG9jaztcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0cGFkZGluZyAxcmVtO1xyXG5cdFx0YmFja2dyb3VuZDogJHdoaXRlO1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogM3B4O1xyXG5cdFx0Ym9yZGVyOiBzb2xpZCB0aGluICRsaWdodEdyZXk7XHJcblx0XHRtYXJnaW4tYm90dG9tOiAxcmVtO1xyXG5cdH1cclxuXHQmIGJ1dHRvbiB7XHJcblx0XHR3aWR0aDogMTAwJVxyXG5cdFx0YmFja2dyb3VuZDogJGdyZWVuXHJcblx0XHRwYWRkaW5nOiAycmVtXHJcblx0XHRib3JkZXItcmFkaXVzOiAzcHhcclxuXHRcdGJvcmRlcjogbm9uZVxyXG5cdFx0Y29sb3I6ICR3aGl0ZVxyXG5cdFx0Zm9udC1zaXplOiAycmVtO1xyXG5cdCAgICBmb250LXdlaWdodDogMTAwO1xyXG5cdCAgICBsZXR0ZXItc3BhY2luZzogMnB4O1xyXG5cdFx0bWFyZ2luLXRvcDogMXJlbTtcclxuXHQgICAgY3Vyc29yOiBwb2ludGVyO1xyXG5cdFx0XHJcblx0XHQmOmhvdmVyIHtcclxuXHRcdFx0YW5pbWF0ZSggaG92ZXItYW5pbS1zdWJ0bGUsIDUwMG1zLCAwLCBlYXNlLWluLCB0cnVlLCB0cnVlIClcclxuXHRcdH1cdFxyXG5cdFx0XHJcblx0ICAgIFxyXG5cdCAgICBpbWcge1xyXG5cdCAgICBcdGRpc3BsYXk6IG5vbmU7XHJcblx0ICAgIH1cclxuXHQgICAgXHJcblx0ICAgICYubG9hZGluZyBpbWcge1xyXG5cdFx0ICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIFx0ICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRcdCAgICBtYXJnaW46IGF1dG87XHJcblx0XHQgICAgbWF4LWhlaWdodDogMnJlbTtcclxuXHRcdCAgICBtYXgtd2lkdGg6IDJyZW07XHJcblx0XHQgICAgd2lkdGg6IDEwMCU7XHJcblx0XHRcdGFuaW1hdGUoIHNwaW4sIDE1MDBtcywgMzAwbXMsIGVhc2UsIHRydWUsIGZhbHNlICk7XHJcblx0ICAgIH1cclxuXHQgICAgXHJcblx0ICAgICYuc2VudCB7XHJcblx0ICAgIFx0YmFja2dyb3VuZDogJGxpZ2h0R3JleTtcclxuXHQgICAgfVxyXG5cdCAgICBcclxuXHQgICAgJi5vb3BzIHtcclxuXHQgICAgXHRiYWNrZ3JvdW5kOiAkb3JhbmdlO1xyXG5cdCAgICB9XHJcblx0fVxyXG59XHJcblxyXG5cclxuXHJcbmZvciBicmVhayBpbiBsZyBtZCBzbSB4cyB4eHMge1xyXG4gXHRcclxuICAgIC5zaG93LXticmVha30ge1xyXG5cdFx0XHJcblx0XHQrYnJlYWtwb2ludChicmVhaykge1xyXG5cdCAgICBcdGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XHJcblx0XHR9XHRcclxuXHRcdFxyXG4gICAgfVxyXG5cclxuICAgIC5oaWRlLXticmVha30ge1xyXG5cdFx0XHJcblx0XHQrYnJlYWtwb2ludChicmVhaykge1xyXG5cdCAgICBcdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdH1cclxuICAgIFxyXG59XHJcblxyXG5cclxuLy8gLmV4YW1wbGVzLWxpc3Qge1xyXG5cdFxyXG4vLyBcdGZsb2F0LWZ1bGwoKVxyXG5cdFxyXG4vLyBcdCAmIGxpIHtcclxuLy8gXHRcdGRpc3BsYXk6IGlubGluZS1ibG9ja1xyXG4vLyBcdFx0d2lkdGg6IDMwJTtcclxuLy8gXHRcdG1hcmdpbi1ib3R0b206IDNyZW1cclxuLy8gXHRcdGZsb2F0KClcclxuXHRcdFxyXG5cdFx0XHJcbi8vIFx0XHQmICsgbGkge1xyXG4vLyBcdFx0XHRtYXJnaW4tbGVmdDogNSVcclxuLy8gXHRcdH1cclxuXHRcdFxyXG4vLyBcdFx0JjpudGgtY2hpbGQoM24rNCkge1xyXG4vLyBcdFx0XHRtYXJnaW4tbGVmdDogMFxyXG4vLyBcdFx0fVxyXG5cdFx0XHJcbi8vIFx0XHQmIGZpZ3VyZSB7XHJcbi8vIFx0XHRcdHdpZHRoOiAxMDAlXHJcbi8vIFx0XHRcdGJhY2tncm91bmQ6ICRkYXJrR3JleVxyXG4vLyBcdFx0XHRub21hcmdpbigpXHJcblx0XHRcdFxyXG4vLyBcdFx0XHQmIGltZyB7XHJcbi8vIFx0XHRcdFx0d2lkdGg6IDEwMCVcclxuLy8gXHRcdFx0XHRncmF5U2NhbGUoKTtcclxuXHRcdFx0XHRcclxuLy8gXHRcdFx0XHQmOmhvdmVyIHtcclxuLy8gXHRcdFx0XHRcdG5vR3JheVNjYWxlKClcclxuLy8gXHRcdFx0XHR9XHJcbi8vIFx0XHRcdH1cclxuLy8gXHRcdH1cclxuXHRcdFxyXG4vLyBcdFx0JiBmaWdjYXB0aW9uIHtcclxuLy8gXHRcdFx0d2lkdGg6IDEwMCVcclxuLy8gXHRcdFx0aGVpZ2h0OiAxMDBweFxyXG4vLyBcdFx0XHRiYWNrZ3JvdW5kOiAkd2hpdGVcclxuLy8gXHRcdFx0bm9tYXJnaW4oKVxyXG5cdFx0XHRcclxuLy8gXHRcdFx0JiBoNCB7XHJcbi8vIFx0XHRcdFx0bm9tYXJnaW4oKVxyXG4vLyBcdFx0XHR9XHJcbi8vIFx0XHR9XHJcbi8vIFx0fVxyXG4vLyB9XHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuIiwiZmxvYXQtZnVsbChkaXI9bGVmdCkge1xyXG5cdGRpc3BsYXk6IGJsb2NrXHJcblx0d2lkdGggMTAwJVxyXG5cdGZsb2F0OiBkaXJcclxufVxyXG5cclxuZmxvYXQoZGlyPWxlZnQpIHtcclxuXHRpZiBkaXI9PWxlZnQge1xyXG5cdFx0ZmxvYXQ6bGVmdFxyXG5cdH1cclxuXHRlbHNlIHtcclxuXHRcdGZsb2F0OnJpZ2h0XHJcblx0fVxyXG59XHJcblxyXG5jbGVhcigpIHtcclxuXHRjbGVhcjogYm90aDtcclxufVxyXG5cclxubm9tYXJnaW4oKSB7XHJcblx0bWFyZ2luOiAwXHJcbn1cclxuXHJcbmZpbGwtcGFyZW50KCkge1xyXG5cdHdpZHRoOiAxMDAlO1xyXG5cdGhlaWdodDogMTAwJTtcclxufVxyXG5cclxuY29udGVudGJveCgpe1xyXG5cdGJveC1zaXppbmc6IGNvbnRlbnQtYm94XHJcbn1cclxuXHJcbmJvcmRlcmJveCgpe1xyXG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3hcclxufVxyXG5cclxuZ3JheVNjYWxlKCkge1xyXG5cdC13ZWJraXQtZmlsdGVyOiBncmF5c2NhbGUoMSlcclxuXHRmaWx0ZXI6IGdyYXlzY2FsZSgxKTtcclxufVxyXG5cclxubm9HcmF5U2NhbGUoKSB7XHJcblx0LXdlYmtpdC1maWx0ZXI6IG5vbmVcclxuXHRmaWx0ZXI6IG5vbmVcclxufVxyXG5cclxuYWJzb2x1dGVseSgpIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogMDtcclxuICAgIGJvdHRvbTogMDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICByaWdodDogMDtcclxuICAgIG1hcmdpbjogYXV0bztcclxufVxyXG5cclxuYW5pbWF0ZShuYW1lLGR1cmF0aW9uLGRlbGF5PTAsZWFzaW5nLCBub3JldHVybiwgb25jZSl7XHJcblx0XHJcblx0aWYgbm9yZXR1cm4gPT0gdHJ1ZSB7XHJcblx0XHRpZiBvbmNlID09IHRydWUge1xyXG5cdFx0XHQtd2Via2l0LWFuaW1hdGlvbjogbmFtZSBkdXJhdGlvbiBkZWxheSBlYXNpbmcgZm9yd2FyZHNcclxuXHQgICAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMVxyXG5cdFx0XHQtby1hbmltYXRpb246ICAgICAgbmFtZSBkdXJhdGlvbiBkZWxheSBlYXNpbmcgZm9yd2FyZHNcclxuXHQgICAgICAgIC1vLWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IDFcclxuXHRcdFx0LW1vei1hbmltYXRpb246ICAgIG5hbWUgZHVyYXRpb24gZGVsYXkgZWFzaW5nIGZvcndhcmRzXHJcblx0ICAgICAgICAtbW96LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IDFcclxuXHRcdFx0YW5pbWF0aW9uOiAgICAgICAgIG5hbWUgZHVyYXRpb24gZGVsYXkgZWFzaW5nIGZvcndhcmRzXHJcblx0ICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAxXHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHQtd2Via2l0LWFuaW1hdGlvbjogbmFtZSBkdXJhdGlvbiBkZWxheSBlYXNpbmcgZm9yd2FyZHNcclxuXHQgICAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGVcclxuXHRcdFx0LW1vei1hbmltYXRpb246ICAgIG5hbWUgZHVyYXRpb24gZGVsYXkgZWFzaW5nIGZvcndhcmRzXHJcblx0ICAgICAgICAtbW96LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlXHJcblx0XHRcdC1vLWFuaW1hdGlvbjogICAgICBuYW1lIGR1cmF0aW9uIGRlbGF5IGVhc2luZyBmb3J3YXJkc1xyXG5cdCAgICAgICAgLW8tYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGVcclxuXHRcdFx0YW5pbWF0aW9uOiAgICAgICAgIG5hbWUgZHVyYXRpb24gZGVsYXkgZWFzaW5nIGZvcndhcmRzXHJcblx0ICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZVxyXG5cdFx0fVxyXG5cdH0gZWxzZSB7XHJcblx0XHRpZiBvbmNlID09IHRydWUge1xyXG5cdFx0XHQtd2Via2l0LWFuaW1hdGlvbjogbmFtZSBkdXJhdGlvbiBkZWxheSBlYXNpbmdcclxuXHQgICAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMVxyXG5cdFx0XHQtbW96LWFuaW1hdGlvbjogICAgbmFtZSBkdXJhdGlvbiBkZWxheSBlYXNpbmdcclxuXHQgICAgICAgIC1tb3otYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMVxyXG5cdFx0XHQtby1hbmltYXRpb246ICAgICAgbmFtZSBkdXJhdGlvbiBkZWxheSBlYXNpbmdcclxuXHQgICAgICAgIC1vLWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IDFcclxuXHRcdFx0YW5pbWF0aW9uOiAgICAgICAgIG5hbWUgZHVyYXRpb24gZGVsYXkgZWFzaW5nXHJcblx0ICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAxXHJcblx0XHRcdFxyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0LXdlYmtpdC1hbmltYXRpb246IG5hbWUgZHVyYXRpb24gZGVsYXkgZWFzaW5nXHJcblx0ICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlXHJcblx0XHRcdC1tb3otYW5pbWF0aW9uOiAgICBuYW1lIGR1cmF0aW9uIGRlbGF5IGVhc2luZ1xyXG5cdCAgICAgICAgLW1vei1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZVxyXG5cdFx0XHQtby1hbmltYXRpb246ICAgICAgbmFtZSBkdXJhdGlvbiBkZWxheSBlYXNpbmdcclxuXHQgICAgICAgIC1vLWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlXHJcblx0XHRcdGFuaW1hdGlvbjogICAgICAgICBuYW1lIGR1cmF0aW9uIGRlbGF5IGVhc2luZ1xyXG5cdCAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGVcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcblxyXG5icmVha3BvaW50KGNsYXNzKSB7XHJcblx0aWYgY2xhc3MgPT0geHhzIHtcclxuICAgIFx0QG1lZGlhIChtYXgtd2lkdGg6IDUwMHB4KSB7ICBibG9jayB9XHJcbiAgXHRcclxuICBcdH0gXHJcbiAgXHRpZiBjbGFzcyA9PSB4cyB7XHJcblx0XHRAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHsgIGJsb2NrIH1cclxuXHRcclxuXHR9IFxyXG5cdGlmIGNsYXNzID09IHNtIHtcclxuXHJcblx0XHRAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHsgIGJsb2NrIH1cclxuXHR9XHJcblx0aWYgY2xhc3MgPT0gbWQge1xyXG5cclxuXHRcdEBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkgeyAgYmxvY2sgfVxyXG5cdH1cclxuXHRcclxuXHRpZiBjbGFzcyA9PSBsZyB7XHJcblxyXG5cdFx0QG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkgeyAgYmxvY2sgfVxyXG5cdFxyXG5cdH1cclxuXHJcbn0iXX0= */