@media screen and (max-width: 767px) {
}
@media (min-width: 768px) {
}
@media (min-width: 768px) {
}
@media (max-width: 767px) {
}
@media (min-width: 768px) {
}
@media (min-width: 768px) {
}
@media (max-width: 767px) {
}
@media (max-width: 767px) {
}
/*
blue links colors
*/
/*
gray links color
*/
/*
pink colors
*/
/*
black colors
*/
/*
green colors
*/
/*
yellow color
*/
/*
red colors
*/
.font-tahoma {
  font-family: Tahoma, Verdana, Segoe, sans-serif;
}
.font-pt-sans {
  font-family: 'PT Sans', sans-serif;
}
.badge.badge-elite {
  background: url("../images/badges/badge-elite.png") left top no-repeat;
  border-radius: 0;
  width: 64px;
  height: 17px;
  display: inline-block;
  margin-right: 5px;
}
.badge.badge-platinum {
  background: url("../images/badges/badge-platinum.png") left top no-repeat;
  border-radius: 0;
  width: 89px;
  height: 17px;
  display: inline-block;
  margin-right: 5px;
}
.badge.badge-gold {
  background: url("../images/badges/badge-gold.png") left top no-repeat;
  border-radius: 0;
  width: 65px;
  height: 17px;
  display: inline-block;
  margin-right: 5px;
}
.badge.badge-mobile {
  background: url("../images/badges/badge-mobile.png") left top no-repeat;
  border-radius: 0;
  width: 132px;
  height: 17px;
  display: inline-block;
  margin-right: 5px;
}
.badge.badge-ag-text,
.badge.badge-au-text,
.badge.badge-brnz-text {
  font-family: Tahoma, Verdana, Segoe, sans-serif;
  color: #292929;
  font-size: 13px;
  border-radius: 4px;
  font-weight: normal;
  padding-top: 2px;
  padding-bottom: 2px;
}
.badge.badge-ag-text {
  /* Permalink - use to edit and share this gradient: http://colorzilla.com/gradient-editor/#dadada+0,f7f7f7+39,cbcbcb+73,e1e1e1+100 */
  background: #dadada;
  /* Old browsers */
  /* IE9 SVG, needs conditional override of 'filter' to 'none' */
  background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIxMDAlIiB5Mj0iMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2RhZGFkYSIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjM5JSIgc3RvcC1jb2xvcj0iI2Y3ZjdmNyIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjczJSIgc3RvcC1jb2xvcj0iI2NiY2JjYiIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNlMWUxZTEiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
  /* FF3.6+ */
  background: -webkit-gradient(linear, left top, right top, color-stop(0%, #dadada), color-stop(39%, #f7f7f7), color-stop(73%, #cbcbcb), color-stop(100%, #e1e1e1));
  /* Chrome,Safari4+ */
  background: -webkit-linear-gradient(left, #dadada 0%, #f7f7f7 39%, #cbcbcb 73%, #e1e1e1 100%);
  /* Chrome10+,Safari5.1+ */
  background: -o-linear-gradient(left, #dadada 0%, #f7f7f7 39%, #cbcbcb 73%, #e1e1e1 100%);
  /* Opera 11.10+ */
  /* IE10+ */
  background: -webkit-gradient(linear, left top, right top, from(#dadada), color-stop(39%, #f7f7f7), color-stop(73%, #cbcbcb), to(#e1e1e1));
  background: linear-gradient(to right, #dadada 0%, #f7f7f7 39%, #cbcbcb 73%, #e1e1e1 100%);
  /* W3C */
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#dadada', endColorstr='#e1e1e1', GradientType=1);
  /* IE6-8 */
}
.badge.badge-au-text {
  /* Permalink - use to edit and share this gradient: http://colorzilla.com/gradient-editor/#d9a849+0,ffefa6+30,faf37e+50,e0c95e+77,ffdb31+100 */
  background: #d9a849;
  /* Old browsers */
  /* IE9 SVG, needs conditional override of 'filter' to 'none' */
  background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIxMDAlIiB5Mj0iMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2Q5YTg0OSIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjMwJSIgc3RvcC1jb2xvcj0iI2ZmZWZhNiIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjUwJSIgc3RvcC1jb2xvcj0iI2ZhZjM3ZSIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9Ijc3JSIgc3RvcC1jb2xvcj0iI2UwYzk1ZSIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNmZmRiMzEiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
  /* FF3.6+ */
  background: -webkit-gradient(linear, left top, right top, color-stop(0%, #d9a849), color-stop(30%, #ffefa6), color-stop(50%, #faf37e), color-stop(77%, #e0c95e), color-stop(100%, #ffdb31));
  /* Chrome,Safari4+ */
  background: -webkit-linear-gradient(left, #d9a849 0%, #ffefa6 30%, #faf37e 50%, #e0c95e 77%, #ffdb31 100%);
  /* Chrome10+,Safari5.1+ */
  background: -o-linear-gradient(left, #d9a849 0%, #ffefa6 30%, #faf37e 50%, #e0c95e 77%, #ffdb31 100%);
  /* Opera 11.10+ */
  /* IE10+ */
  background: -webkit-gradient(linear, left top, right top, from(#d9a849), color-stop(30%, #ffefa6), color-stop(50%, #faf37e), color-stop(77%, #e0c95e), to(#ffdb31));
  background: linear-gradient(to right, #d9a849 0%, #ffefa6 30%, #faf37e 50%, #e0c95e 77%, #ffdb31 100%);
  /* W3C */
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#d9a849', endColorstr='#ffdb31', GradientType=1);
  /* IE6-8 */
}
.badge.badge-brnz-text {
  /* Permalink - use to edit and share this gradient: http://colorzilla.com/gradient-editor/#e1a797+0,fce9d3+39,de936e+73,c67559+100 */
  background: #e1a797;
  /* Old browsers */
  /* IE9 SVG, needs conditional override of 'filter' to 'none' */
  background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIxMDAlIiB5Mj0iMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2UxYTc5NyIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjM5JSIgc3RvcC1jb2xvcj0iI2ZjZTlkMyIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjczJSIgc3RvcC1jb2xvcj0iI2RlOTM2ZSIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNjNjc1NTkiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
  /* FF3.6+ */
  background: -webkit-gradient(linear, left top, right top, color-stop(0%, #e1a797), color-stop(39%, #fce9d3), color-stop(73%, #de936e), color-stop(100%, #c67559));
  /* Chrome,Safari4+ */
  background: -webkit-linear-gradient(left, #e1a797 0%, #fce9d3 39%, #de936e 73%, #c67559 100%);
  /* Chrome10+,Safari5.1+ */
  background: -o-linear-gradient(left, #e1a797 0%, #fce9d3 39%, #de936e 73%, #c67559 100%);
  /* Opera 11.10+ */
  /* IE10+ */
  background: -webkit-gradient(linear, left top, right top, from(#e1a797), color-stop(39%, #fce9d3), color-stop(73%, #de936e), to(#c67559));
  background: linear-gradient(to right, #e1a797 0%, #fce9d3 39%, #de936e 73%, #c67559 100%);
  /* W3C */
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#e1a797', endColorstr='#c67559', GradientType=1);
  /* IE6-8 */
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3ZlbmRvci9ib3dlci9ib290c3RyYXAvbGVzcy90YWJsZXMubGVzcyIsIl9wYXJ0aWFscy9iYWRnZXMuY3NzIiwiLi4vLi4vLi4vLi4vLi4vdmVuZG9yL2Jvd2VyL2Jvb3RzdHJhcC9sZXNzL2Zvcm1zLmxlc3MiLCIuLi8uLi8uLi8uLi8uLi92ZW5kb3IvYm93ZXIvYm9vdHN0cmFwL2xlc3MvbmF2YmFyLmxlc3MiLCJfcGFydGlhbHMvZm9udHMubGVzcyIsIl9wYXJ0aWFscy9iYWRnZXMubGVzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE4S0U7Q0M3S0Q7QUMyZEM7Q0R6ZEQ7QUUyREM7Q0Z6REQ7QUUyT0M7Q0Z6T0Q7QUNxZEM7Q0RuZEQ7QUU4U0M7Q0Y1U0Q7QUV3Y0c7Q0Z0Y0g7QUU0a0JHO0NGMWtCSDtBQUNEOztFQUVFO0FBQ0Y7O0VBRUU7QUFDRjs7RUFFRTtBQUNGOztFQUVFO0FBQ0Y7O0VBRUU7QUFDRjs7RUFFRTtBQUNGOztFQUVFO0FHcENGO0VBQ0UsZ0RBQUE7Q0hzQ0Q7QUduQ0Q7RUFDRSxtQ0FBQTtDSHFDRDtBSWxDQztFQUNFLHVFQUFBO0VBQ0EsaUJBQUE7RUFDQSxZQUFBO0VBQ0EsYUFBQTtFQUNBLHNCQUFBO0VBQ0Esa0JBQUE7Q0pvQ0g7QUlsQ0M7RUFDRSwwRUFBQTtFQUNBLGlCQUFBO0VBQ0EsWUFBQTtFQUNBLGFBQUE7RUFDQSxzQkFBQTtFQUNBLGtCQUFBO0NKb0NIO0FJbENDO0VBQ0Usc0VBQUE7RUFDQSxpQkFBQTtFQUNBLFlBQUE7RUFDQSxhQUFBO0VBQ0Esc0JBQUE7RUFDQSxrQkFBQTtDSm9DSDtBSWxDQztFQUNFLHdFQUFBO0VBQ0EsaUJBQUE7RUFDQSxhQUFBO0VBQ0EsYUFBQTtFQUNBLHNCQUFBO0VBQ0Esa0JBQUE7Q0pvQ0g7QUlsQ0M7OztFRHZDQSxnREFBQTtFQzJDRSxlQUFBO0VBQ0EsZ0JBQUE7RUFDQSxtQkFBQTtFQUNBLG9CQUFBO0VBQ0EsaUJBQUE7RUFDQSxvQkFBQTtDSm9DSDtBSWpDQztFSm1DQSxxSUFBcUk7RUlqQ25JLG9CQUFBO0VKbUNGLGtCQUFrQjtFQUNsQiwrREFBK0Q7RUlsQzdELDQwQkFBQTtFSnFDRixZQUFZO0VJbkNWLGtLQUFBO0VKcUNGLHFCQUFxQjtFSXBDbkIsOEZBQUE7RUpzQ0YsMEJBQTBCO0VJckN4Qix5RkFBQTtFSnVDRixrQkFBa0I7RUFFbEIsV0FBVztFSXZDVCwwSUFBQTtFQUFBLDBGQUFBO0VKeUNGLFNBQVM7RUl4Q1AsbUhBQUE7RUowQ0YsV0FBVztDQUNaO0FJekNDO0VKMkNBLCtJQUErSTtFSXpDN0ksb0JBQUE7RUoyQ0Ysa0JBQWtCO0VBQ2xCLCtEQUErRDtFSTFDN0QsZzZCQUFBO0VKNkNGLFlBQVk7RUkzQ1YsNExBQUE7RUo2Q0YscUJBQXFCO0VJNUNuQiwyR0FBQTtFSjhDRiwwQkFBMEI7RUk3Q3hCLHNHQUFBO0VKK0NGLGtCQUFrQjtFQUVsQixXQUFXO0VJL0NULG9LQUFBO0VBQUEsdUdBQUE7RUppREYsU0FBUztFSWhEUCxtSEFBQTtFSmtERixXQUFXO0NBQ1o7QUloREM7RUprREEscUlBQXFJO0VJaERuSSxvQkFBQTtFSmtERixrQkFBa0I7RUFDbEIsK0RBQStEO0VJakQ3RCw0MEJBQUE7RUpvREYsWUFBWTtFSWxEVixrS0FBQTtFSm9ERixxQkFBcUI7RUluRG5CLDhGQUFBO0VKcURGLDBCQUEwQjtFSXBEeEIseUZBQUE7RUpzREYsa0JBQWtCO0VBRWxCLFdBQVc7RUl0RFQsMElBQUE7RUFBQSwwRkFBQTtFSndERixTQUFTO0VJdkRQLG1IQUFBO0VKeURGLFdBQVc7Q0FDWiIsImZpbGUiOiJfcGFydGlhbHMvYmFkZ2VzLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8vXHJcbi8vIFRhYmxlc1xyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuXHJcbnRhYmxlIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiBAdGFibGUtYmc7XHJcbn1cclxuY2FwdGlvbiB7XHJcbiAgcGFkZGluZy10b3A6IEB0YWJsZS1jZWxsLXBhZGRpbmc7XHJcbiAgcGFkZGluZy1ib3R0b206IEB0YWJsZS1jZWxsLXBhZGRpbmc7XHJcbiAgY29sb3I6IEB0ZXh0LW11dGVkO1xyXG4gIHRleHQtYWxpZ246IGxlZnQ7XHJcbn1cclxudGgge1xyXG4gIHRleHQtYWxpZ246IGxlZnQ7XHJcbn1cclxuXHJcblxyXG4vLyBCYXNlbGluZSBzdHlsZXNcclxuXHJcbi50YWJsZSB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gIG1hcmdpbi1ib3R0b206IEBsaW5lLWhlaWdodC1jb21wdXRlZDtcclxuICAvLyBDZWxsc1xyXG4gID4gdGhlYWQsXHJcbiAgPiB0Ym9keSxcclxuICA+IHRmb290IHtcclxuICAgID4gdHIge1xyXG4gICAgICA+IHRoLFxyXG4gICAgICA+IHRkIHtcclxuICAgICAgICBwYWRkaW5nOiBAdGFibGUtY2VsbC1wYWRkaW5nO1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiBAbGluZS1oZWlnaHQtYmFzZTtcclxuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xyXG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCBAdGFibGUtYm9yZGVyLWNvbG9yO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8vIEJvdHRvbSBhbGlnbiBmb3IgY29sdW1uIGhlYWRpbmdzXHJcbiAgPiB0aGVhZCA+IHRyID4gdGgge1xyXG4gICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcclxuICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCBAdGFibGUtYm9yZGVyLWNvbG9yO1xyXG4gIH1cclxuICAvLyBSZW1vdmUgdG9wIGJvcmRlciBmcm9tIHRoZWFkIGJ5IGRlZmF1bHRcclxuICA+IGNhcHRpb24gKyB0aGVhZCxcclxuICA+IGNvbGdyb3VwICsgdGhlYWQsXHJcbiAgPiB0aGVhZDpmaXJzdC1jaGlsZCB7XHJcbiAgICA+IHRyOmZpcnN0LWNoaWxkIHtcclxuICAgICAgPiB0aCxcclxuICAgICAgPiB0ZCB7XHJcbiAgICAgICAgYm9yZGVyLXRvcDogMDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICAvLyBBY2NvdW50IGZvciBtdWx0aXBsZSB0Ym9keSBpbnN0YW5jZXNcclxuICA+IHRib2R5ICsgdGJvZHkge1xyXG4gICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIEB0YWJsZS1ib3JkZXItY29sb3I7XHJcbiAgfVxyXG5cclxuICAvLyBOZXN0aW5nXHJcbiAgLnRhYmxlIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IEBib2R5LWJnO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbi8vIENvbmRlbnNlZCB0YWJsZSB3LyBoYWxmIHBhZGRpbmdcclxuXHJcbi50YWJsZS1jb25kZW5zZWQge1xyXG4gID4gdGhlYWQsXHJcbiAgPiB0Ym9keSxcclxuICA+IHRmb290IHtcclxuICAgID4gdHIge1xyXG4gICAgICA+IHRoLFxyXG4gICAgICA+IHRkIHtcclxuICAgICAgICBwYWRkaW5nOiBAdGFibGUtY29uZGVuc2VkLWNlbGwtcGFkZGluZztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuXHJcbi8vIEJvcmRlcmVkIHZlcnNpb25cclxuLy9cclxuLy8gQWRkIGJvcmRlcnMgYWxsIGFyb3VuZCB0aGUgdGFibGUgYW5kIGJldHdlZW4gYWxsIHRoZSBjb2x1bW5zLlxyXG5cclxuLnRhYmxlLWJvcmRlcmVkIHtcclxuICBib3JkZXI6IDFweCBzb2xpZCBAdGFibGUtYm9yZGVyLWNvbG9yO1xyXG4gID4gdGhlYWQsXHJcbiAgPiB0Ym9keSxcclxuICA+IHRmb290IHtcclxuICAgID4gdHIge1xyXG4gICAgICA+IHRoLFxyXG4gICAgICA+IHRkIHtcclxuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBAdGFibGUtYm9yZGVyLWNvbG9yO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gID4gdGhlYWQgPiB0ciB7XHJcbiAgICA+IHRoLFxyXG4gICAgPiB0ZCB7XHJcbiAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDJweDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcblxyXG4vLyBaZWJyYS1zdHJpcGluZ1xyXG4vL1xyXG4vLyBEZWZhdWx0IHplYnJhLXN0cmlwZSBzdHlsZXMgKGFsdGVybmF0aW5nIGdyYXkgYW5kIHRyYW5zcGFyZW50IGJhY2tncm91bmRzKVxyXG5cclxuLnRhYmxlLXN0cmlwZWQge1xyXG4gID4gdGJvZHkgPiB0cjpudGgtb2YtdHlwZShvZGQpIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IEB0YWJsZS1iZy1hY2NlbnQ7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLy8gSG92ZXIgZWZmZWN0XHJcbi8vXHJcbi8vIFBsYWNlZCBoZXJlIHNpbmNlIGl0IGhhcyB0byBjb21lIGFmdGVyIHRoZSBwb3RlbnRpYWwgemVicmEgc3RyaXBpbmdcclxuXHJcbi50YWJsZS1ob3ZlciB7XHJcbiAgPiB0Ym9keSA+IHRyOmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IEB0YWJsZS1iZy1ob3ZlcjtcclxuICB9XHJcbn1cclxuXHJcblxyXG4vLyBUYWJsZSBjZWxsIHNpemluZ1xyXG4vL1xyXG4vLyBSZXNldCBkZWZhdWx0IHRhYmxlIGJlaGF2aW9yXHJcblxyXG50YWJsZSBjb2xbY2xhc3MqPVwiY29sLVwiXSB7XHJcbiAgcG9zaXRpb246IHN0YXRpYzsgLy8gUHJldmVudCBib3JkZXIgaGlkaW5nIGluIEZpcmVmb3ggYW5kIElFOS0xMSAoc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9pc3N1ZXMvMTE2MjMpXHJcbiAgZmxvYXQ6IG5vbmU7XHJcbiAgZGlzcGxheTogdGFibGUtY29sdW1uO1xyXG59XHJcbnRhYmxlIHtcclxuICB0ZCxcclxuICB0aCB7XHJcbiAgICAmW2NsYXNzKj1cImNvbC1cIl0ge1xyXG4gICAgICBwb3NpdGlvbjogc3RhdGljOyAvLyBQcmV2ZW50IGJvcmRlciBoaWRpbmcgaW4gRmlyZWZveCBhbmQgSUU5LTExIChzZWUgaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2lzc3Vlcy8xMTYyMylcclxuICAgICAgZmxvYXQ6IG5vbmU7XHJcbiAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLy8gVGFibGUgYmFja2dyb3VuZHNcclxuLy9cclxuLy8gRXhhY3Qgc2VsZWN0b3JzIGJlbG93IHJlcXVpcmVkIHRvIG92ZXJyaWRlIGAudGFibGUtc3RyaXBlZGAgYW5kIHByZXZlbnRcclxuLy8gaW5oZXJpdGFuY2UgdG8gbmVzdGVkIHRhYmxlcy5cclxuXHJcbi8vIEdlbmVyYXRlIHRoZSBjb250ZXh0dWFsIHZhcmlhbnRzXHJcbi50YWJsZS1yb3ctdmFyaWFudChhY3RpdmU7IEB0YWJsZS1iZy1hY3RpdmUpO1xyXG4udGFibGUtcm93LXZhcmlhbnQoc3VjY2VzczsgQHN0YXRlLXN1Y2Nlc3MtYmcpO1xyXG4udGFibGUtcm93LXZhcmlhbnQoaW5mbzsgQHN0YXRlLWluZm8tYmcpO1xyXG4udGFibGUtcm93LXZhcmlhbnQod2FybmluZzsgQHN0YXRlLXdhcm5pbmctYmcpO1xyXG4udGFibGUtcm93LXZhcmlhbnQoZGFuZ2VyOyBAc3RhdGUtZGFuZ2VyLWJnKTtcclxuXHJcblxyXG4vLyBSZXNwb25zaXZlIHRhYmxlc1xyXG4vL1xyXG4vLyBXcmFwIHlvdXIgdGFibGVzIGluIGAudGFibGUtcmVzcG9uc2l2ZWAgYW5kIHdlJ2xsIG1ha2UgdGhlbSBtb2JpbGUgZnJpZW5kbHlcclxuLy8gYnkgZW5hYmxpbmcgaG9yaXpvbnRhbCBzY3JvbGxpbmcuIE9ubHkgYXBwbGllcyA8NzY4cHguIEV2ZXJ5dGhpbmcgYWJvdmUgdGhhdFxyXG4vLyB3aWxsIGRpc3BsYXkgbm9ybWFsbHkuXHJcblxyXG4udGFibGUtcmVzcG9uc2l2ZSB7XHJcbiAgb3ZlcmZsb3cteDogYXV0bztcclxuICBtaW4taGVpZ2h0OiAwLjAxJTsgLy8gV29ya2Fyb3VuZCBmb3IgSUU5IGJ1ZyAoc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9pc3N1ZXMvMTQ4MzcpXHJcblxyXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IEBzY3JlZW4teHMtbWF4KSB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1hcmdpbi1ib3R0b206IChAbGluZS1oZWlnaHQtY29tcHV0ZWQgKiAwLjc1KTtcclxuICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcclxuICAgIC1tcy1vdmVyZmxvdy1zdHlsZTogLW1zLWF1dG9oaWRpbmctc2Nyb2xsYmFyO1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgQHRhYmxlLWJvcmRlci1jb2xvcjtcclxuXHJcbiAgICAvLyBUaWdodGVuIHVwIHNwYWNpbmdcclxuICAgID4gLnRhYmxlIHtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuXHJcbiAgICAgIC8vIEVuc3VyZSB0aGUgY29udGVudCBkb2Vzbid0IHdyYXBcclxuICAgICAgPiB0aGVhZCxcclxuICAgICAgPiB0Ym9keSxcclxuICAgICAgPiB0Zm9vdCB7XHJcbiAgICAgICAgPiB0ciB7XHJcbiAgICAgICAgICA+IHRoLFxyXG4gICAgICAgICAgPiB0ZCB7XHJcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gU3BlY2lhbCBvdmVycmlkZXMgZm9yIHRoZSBib3JkZXJlZCB0YWJsZXNcclxuICAgID4gLnRhYmxlLWJvcmRlcmVkIHtcclxuICAgICAgYm9yZGVyOiAwO1xyXG5cclxuICAgICAgLy8gTnVrZSB0aGUgYXBwcm9wcmlhdGUgYm9yZGVycyBzbyB0aGF0IHRoZSBwYXJlbnQgY2FuIGhhbmRsZSB0aGVtXHJcbiAgICAgID4gdGhlYWQsXHJcbiAgICAgID4gdGJvZHksXHJcbiAgICAgID4gdGZvb3Qge1xyXG4gICAgICAgID4gdHIge1xyXG4gICAgICAgICAgPiB0aDpmaXJzdC1jaGlsZCxcclxuICAgICAgICAgID4gdGQ6Zmlyc3QtY2hpbGQge1xyXG4gICAgICAgICAgICBib3JkZXItbGVmdDogMDtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgID4gdGg6bGFzdC1jaGlsZCxcclxuICAgICAgICAgID4gdGQ6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogMDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIE9ubHkgbnVrZSB0aGUgbGFzdCByb3cncyBib3R0b20tYm9yZGVyIGluIGB0Ym9keWAgYW5kIGB0Zm9vdGAgc2luY2VcclxuICAgICAgLy8gY2hhbmNlcyBhcmUgdGhlcmUgd2lsbCBiZSBvbmx5IG9uZSBgdHJgIGluIGEgYHRoZWFkYCBhbmQgdGhhdCB3b3VsZFxyXG4gICAgICAvLyByZW1vdmUgdGhlIGJvcmRlciBhbHRvZ2V0aGVyLlxyXG4gICAgICA+IHRib2R5LFxyXG4gICAgICA+IHRmb290IHtcclxuICAgICAgICA+IHRyOmxhc3QtY2hpbGQge1xyXG4gICAgICAgICAgPiB0aCxcclxuICAgICAgICAgID4gdGQge1xyXG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xufVxuLypcbmJsdWUgbGlua3MgY29sb3JzXG4qL1xuLypcbmdyYXkgbGlua3MgY29sb3JcbiovXG4vKlxucGluayBjb2xvcnNcbiovXG4vKlxuYmxhY2sgY29sb3JzXG4qL1xuLypcbmdyZWVuIGNvbG9yc1xuKi9cbi8qXG55ZWxsb3cgY29sb3JcbiovXG4vKlxucmVkIGNvbG9yc1xuKi9cbi5mb250LXRhaG9tYSB7XG4gIGZvbnQtZmFtaWx5OiBUYWhvbWEsIFZlcmRhbmEsIFNlZ29lLCBzYW5zLXNlcmlmO1xufVxuLmZvbnQtcHQtc2FucyB7XG4gIGZvbnQtZmFtaWx5OiAnUFQgU2FucycsIHNhbnMtc2VyaWY7XG59XG4uYmFkZ2UuYmFkZ2UtZWxpdGUge1xuICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWFnZXMvYmFkZ2VzL2JhZGdlLWVsaXRlLnBuZ1wiKSBsZWZ0IHRvcCBuby1yZXBlYXQ7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIHdpZHRoOiA2NHB4O1xuICBoZWlnaHQ6IDE3cHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLXJpZ2h0OiA1cHg7XG59XG4uYmFkZ2UuYmFkZ2UtcGxhdGludW0ge1xuICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWFnZXMvYmFkZ2VzL2JhZGdlLXBsYXRpbnVtLnBuZ1wiKSBsZWZ0IHRvcCBuby1yZXBlYXQ7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIHdpZHRoOiA4OXB4O1xuICBoZWlnaHQ6IDE3cHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLXJpZ2h0OiA1cHg7XG59XG4uYmFkZ2UuYmFkZ2UtZ29sZCB7XG4gIGJhY2tncm91bmQ6IHVybChcIi4uL2ltYWdlcy9iYWRnZXMvYmFkZ2UtZ29sZC5wbmdcIikgbGVmdCB0b3Agbm8tcmVwZWF0O1xuICBib3JkZXItcmFkaXVzOiAwO1xuICB3aWR0aDogNjVweDtcbiAgaGVpZ2h0OiAxN3B4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1yaWdodDogNXB4O1xufVxuLmJhZGdlLmJhZGdlLW1vYmlsZSB7XG4gIGJhY2tncm91bmQ6IHVybChcIi4uL2ltYWdlcy9iYWRnZXMvYmFkZ2UtbW9iaWxlLnBuZ1wiKSBsZWZ0IHRvcCBuby1yZXBlYXQ7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIHdpZHRoOiAxMzJweDtcbiAgaGVpZ2h0OiAxN3B4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1yaWdodDogNXB4O1xufVxuLmJhZGdlLmJhZGdlLWFnLXRleHQsXG4uYmFkZ2UuYmFkZ2UtYXUtdGV4dCxcbi5iYWRnZS5iYWRnZS1icm56LXRleHQge1xuICBmb250LWZhbWlseTogVGFob21hLCBWZXJkYW5hLCBTZWdvZSwgc2Fucy1zZXJpZjtcbiAgY29sb3I6ICMyOTI5Mjk7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nLXRvcDogMnB4O1xuICBwYWRkaW5nLWJvdHRvbTogMnB4O1xufVxuLmJhZGdlLmJhZGdlLWFnLXRleHQge1xuICAvKiBQZXJtYWxpbmsgLSB1c2UgdG8gZWRpdCBhbmQgc2hhcmUgdGhpcyBncmFkaWVudDogaHR0cDovL2NvbG9yemlsbGEuY29tL2dyYWRpZW50LWVkaXRvci8jZGFkYWRhKzAsZjdmN2Y3KzM5LGNiY2JjYis3MyxlMWUxZTErMTAwICovXG4gIGJhY2tncm91bmQ6ICNkYWRhZGE7XG4gIC8qIE9sZCBicm93c2VycyAqL1xuICAvKiBJRTkgU1ZHLCBuZWVkcyBjb25kaXRpb25hbCBvdmVycmlkZSBvZiAnZmlsdGVyJyB0byAnbm9uZScgKi9cbiAgYmFja2dyb3VuZDogdXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWlBL1BnbzhjM1puSUhodGJHNXpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBd0wzTjJaeUlnZDJsa2RHZzlJakV3TUNVaUlHaGxhV2RvZEQwaU1UQXdKU0lnZG1sbGQwSnZlRDBpTUNBd0lERWdNU0lnY0hKbGMyVnlkbVZCYzNCbFkzUlNZWFJwYnowaWJtOXVaU0krQ2lBZ1BHeHBibVZoY2tkeVlXUnBaVzUwSUdsa1BTSm5jbUZrTFhWaloyY3RaMlZ1WlhKaGRHVmtJaUJuY21Ga2FXVnVkRlZ1YVhSelBTSjFjMlZ5VTNCaFkyVlBibFZ6WlNJZ2VERTlJakFsSWlCNU1UMGlNQ1VpSUhneVBTSXhNREFsSWlCNU1qMGlNQ1VpUGdvZ0lDQWdQSE4wYjNBZ2IyWm1jMlYwUFNJd0pTSWdjM1J2Y0MxamIyeHZjajBpSTJSaFpHRmtZU0lnYzNSdmNDMXZjR0ZqYVhSNVBTSXhJaTgrQ2lBZ0lDQThjM1J2Y0NCdlptWnpaWFE5SWpNNUpTSWdjM1J2Y0MxamIyeHZjajBpSTJZM1pqZG1OeUlnYzNSdmNDMXZjR0ZqYVhSNVBTSXhJaTgrQ2lBZ0lDQThjM1J2Y0NCdlptWnpaWFE5SWpjekpTSWdjM1J2Y0MxamIyeHZjajBpSTJOaVkySmpZaUlnYzNSdmNDMXZjR0ZqYVhSNVBTSXhJaTgrQ2lBZ0lDQThjM1J2Y0NCdlptWnpaWFE5SWpFd01DVWlJSE4wYjNBdFkyOXNiM0k5SWlObE1XVXhaVEVpSUhOMGIzQXRiM0JoWTJsMGVUMGlNU0l2UGdvZ0lEd3ZiR2x1WldGeVIzSmhaR2xsYm5RK0NpQWdQSEpsWTNRZ2VEMGlNQ0lnZVQwaU1DSWdkMmxrZEdnOUlqRWlJR2hsYVdkb2REMGlNU0lnWm1sc2JEMGlkWEpzS0NObmNtRmtMWFZqWjJjdFoyVnVaWEpoZEdWa0tTSWdMejRLUEM5emRtYyspO1xuICBiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudChsZWZ0LCAjZGFkYWRhIDAlLCAjZjdmN2Y3IDM5JSwgI2NiY2JjYiA3MyUsICNlMWUxZTEgMTAwJSk7XG4gIC8qIEZGMy42KyAqL1xuICBiYWNrZ3JvdW5kOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIHJpZ2h0IHRvcCwgY29sb3Itc3RvcCgwJSwgI2RhZGFkYSksIGNvbG9yLXN0b3AoMzklLCAjZjdmN2Y3KSwgY29sb3Itc3RvcCg3MyUsICNjYmNiY2IpLCBjb2xvci1zdG9wKDEwMCUsICNlMWUxZTEpKTtcbiAgLyogQ2hyb21lLFNhZmFyaTQrICovXG4gIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZnQsICNkYWRhZGEgMCUsICNmN2Y3ZjcgMzklLCAjY2JjYmNiIDczJSwgI2UxZTFlMSAxMDAlKTtcbiAgLyogQ2hyb21lMTArLFNhZmFyaTUuMSsgKi9cbiAgYmFja2dyb3VuZDogLW8tbGluZWFyLWdyYWRpZW50KGxlZnQsICNkYWRhZGEgMCUsICNmN2Y3ZjcgMzklLCAjY2JjYmNiIDczJSwgI2UxZTFlMSAxMDAlKTtcbiAgLyogT3BlcmEgMTEuMTArICovXG4gIGJhY2tncm91bmQ6IC1tcy1saW5lYXItZ3JhZGllbnQobGVmdCwgI2RhZGFkYSAwJSwgI2Y3ZjdmNyAzOSUsICNjYmNiY2IgNzMlLCAjZTFlMWUxIDEwMCUpO1xuICAvKiBJRTEwKyAqL1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICNkYWRhZGEgMCUsICNmN2Y3ZjcgMzklLCAjY2JjYmNiIDczJSwgI2UxZTFlMSAxMDAlKTtcbiAgLyogVzNDICovXG4gIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyNkYWRhZGEnLCBlbmRDb2xvcnN0cj0nI2UxZTFlMScsIEdyYWRpZW50VHlwZT0xKTtcbiAgLyogSUU2LTggKi9cbn1cbi5iYWRnZS5iYWRnZS1hdS10ZXh0IHtcbiAgLyogUGVybWFsaW5rIC0gdXNlIHRvIGVkaXQgYW5kIHNoYXJlIHRoaXMgZ3JhZGllbnQ6IGh0dHA6Ly9jb2xvcnppbGxhLmNvbS9ncmFkaWVudC1lZGl0b3IvI2Q5YTg0OSswLGZmZWZhNiszMCxmYWYzN2UrNTAsZTBjOTVlKzc3LGZmZGIzMSsxMDAgKi9cbiAgYmFja2dyb3VuZDogI2Q5YTg0OTtcbiAgLyogT2xkIGJyb3dzZXJzICovXG4gIC8qIElFOSBTVkcsIG5lZWRzIGNvbmRpdGlvbmFsIG92ZXJyaWRlIG9mICdmaWx0ZXInIHRvICdub25lJyAqL1xuICBiYWNrZ3JvdW5kOiB1cmwoZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQRDk0Yld3Z2RtVnljMmx2YmowaU1TNHdJaUEvUGdvOGMzWm5JSGh0Ykc1elBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHlNREF3TDNOMlp5SWdkMmxrZEdnOUlqRXdNQ1VpSUdobGFXZG9kRDBpTVRBd0pTSWdkbWxsZDBKdmVEMGlNQ0F3SURFZ01TSWdjSEpsYzJWeWRtVkJjM0JsWTNSU1lYUnBiejBpYm05dVpTSStDaUFnUEd4cGJtVmhja2R5WVdScFpXNTBJR2xrUFNKbmNtRmtMWFZqWjJjdFoyVnVaWEpoZEdWa0lpQm5jbUZrYVdWdWRGVnVhWFJ6UFNKMWMyVnlVM0JoWTJWUGJsVnpaU0lnZURFOUlqQWxJaUI1TVQwaU1DVWlJSGd5UFNJeE1EQWxJaUI1TWowaU1DVWlQZ29nSUNBZ1BITjBiM0FnYjJabWMyVjBQU0l3SlNJZ2MzUnZjQzFqYjJ4dmNqMGlJMlE1WVRnME9TSWdjM1J2Y0MxdmNHRmphWFI1UFNJeElpOCtDaUFnSUNBOGMzUnZjQ0J2Wm1aelpYUTlJak13SlNJZ2MzUnZjQzFqYjJ4dmNqMGlJMlptWldaaE5pSWdjM1J2Y0MxdmNHRmphWFI1UFNJeElpOCtDaUFnSUNBOGMzUnZjQ0J2Wm1aelpYUTlJalV3SlNJZ2MzUnZjQzFqYjJ4dmNqMGlJMlpoWmpNM1pTSWdjM1J2Y0MxdmNHRmphWFI1UFNJeElpOCtDaUFnSUNBOGMzUnZjQ0J2Wm1aelpYUTlJamMzSlNJZ2MzUnZjQzFqYjJ4dmNqMGlJMlV3WXprMVpTSWdjM1J2Y0MxdmNHRmphWFI1UFNJeElpOCtDaUFnSUNBOGMzUnZjQ0J2Wm1aelpYUTlJakV3TUNVaUlITjBiM0F0WTI5c2IzSTlJaU5tWm1SaU16RWlJSE4wYjNBdGIzQmhZMmwwZVQwaU1TSXZQZ29nSUR3dmJHbHVaV0Z5UjNKaFpHbGxiblErQ2lBZ1BISmxZM1FnZUQwaU1DSWdlVDBpTUNJZ2QybGtkR2c5SWpFaUlHaGxhV2RvZEQwaU1TSWdabWxzYkQwaWRYSnNLQ05uY21Ga0xYVmpaMmN0WjJWdVpYSmhkR1ZrS1NJZ0x6NEtQQzl6ZG1jKyk7XG4gIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KGxlZnQsICNkOWE4NDkgMCUsICNmZmVmYTYgMzAlLCAjZmFmMzdlIDUwJSwgI2UwYzk1ZSA3NyUsICNmZmRiMzEgMTAwJSk7XG4gIC8qIEZGMy42KyAqL1xuICBiYWNrZ3JvdW5kOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIHJpZ2h0IHRvcCwgY29sb3Itc3RvcCgwJSwgI2Q5YTg0OSksIGNvbG9yLXN0b3AoMzAlLCAjZmZlZmE2KSwgY29sb3Itc3RvcCg1MCUsICNmYWYzN2UpLCBjb2xvci1zdG9wKDc3JSwgI2UwYzk1ZSksIGNvbG9yLXN0b3AoMTAwJSwgI2ZmZGIzMSkpO1xuICAvKiBDaHJvbWUsU2FmYXJpNCsgKi9cbiAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQobGVmdCwgI2Q5YTg0OSAwJSwgI2ZmZWZhNiAzMCUsICNmYWYzN2UgNTAlLCAjZTBjOTVlIDc3JSwgI2ZmZGIzMSAxMDAlKTtcbiAgLyogQ2hyb21lMTArLFNhZmFyaTUuMSsgKi9cbiAgYmFja2dyb3VuZDogLW8tbGluZWFyLWdyYWRpZW50KGxlZnQsICNkOWE4NDkgMCUsICNmZmVmYTYgMzAlLCAjZmFmMzdlIDUwJSwgI2UwYzk1ZSA3NyUsICNmZmRiMzEgMTAwJSk7XG4gIC8qIE9wZXJhIDExLjEwKyAqL1xuICBiYWNrZ3JvdW5kOiAtbXMtbGluZWFyLWdyYWRpZW50KGxlZnQsICNkOWE4NDkgMCUsICNmZmVmYTYgMzAlLCAjZmFmMzdlIDUwJSwgI2UwYzk1ZSA3NyUsICNmZmRiMzEgMTAwJSk7XG4gIC8qIElFMTArICovXG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgI2Q5YTg0OSAwJSwgI2ZmZWZhNiAzMCUsICNmYWYzN2UgNTAlLCAjZTBjOTVlIDc3JSwgI2ZmZGIzMSAxMDAlKTtcbiAgLyogVzNDICovXG4gIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyNkOWE4NDknLCBlbmRDb2xvcnN0cj0nI2ZmZGIzMScsIEdyYWRpZW50VHlwZT0xKTtcbiAgLyogSUU2LTggKi9cbn1cbi5iYWRnZS5iYWRnZS1icm56LXRleHQge1xuICAvKiBQZXJtYWxpbmsgLSB1c2UgdG8gZWRpdCBhbmQgc2hhcmUgdGhpcyBncmFkaWVudDogaHR0cDovL2NvbG9yemlsbGEuY29tL2dyYWRpZW50LWVkaXRvci8jZTFhNzk3KzAsZmNlOWQzKzM5LGRlOTM2ZSs3MyxjNjc1NTkrMTAwICovXG4gIGJhY2tncm91bmQ6ICNlMWE3OTc7XG4gIC8qIE9sZCBicm93c2VycyAqL1xuICAvKiBJRTkgU1ZHLCBuZWVkcyBjb25kaXRpb25hbCBvdmVycmlkZSBvZiAnZmlsdGVyJyB0byAnbm9uZScgKi9cbiAgYmFja2dyb3VuZDogdXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWlBL1BnbzhjM1puSUhodGJHNXpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBd0wzTjJaeUlnZDJsa2RHZzlJakV3TUNVaUlHaGxhV2RvZEQwaU1UQXdKU0lnZG1sbGQwSnZlRDBpTUNBd0lERWdNU0lnY0hKbGMyVnlkbVZCYzNCbFkzUlNZWFJwYnowaWJtOXVaU0krQ2lBZ1BHeHBibVZoY2tkeVlXUnBaVzUwSUdsa1BTSm5jbUZrTFhWaloyY3RaMlZ1WlhKaGRHVmtJaUJuY21Ga2FXVnVkRlZ1YVhSelBTSjFjMlZ5VTNCaFkyVlBibFZ6WlNJZ2VERTlJakFsSWlCNU1UMGlNQ1VpSUhneVBTSXhNREFsSWlCNU1qMGlNQ1VpUGdvZ0lDQWdQSE4wYjNBZ2IyWm1jMlYwUFNJd0pTSWdjM1J2Y0MxamIyeHZjajBpSTJVeFlUYzVOeUlnYzNSdmNDMXZjR0ZqYVhSNVBTSXhJaTgrQ2lBZ0lDQThjM1J2Y0NCdlptWnpaWFE5SWpNNUpTSWdjM1J2Y0MxamIyeHZjajBpSTJaalpUbGtNeUlnYzNSdmNDMXZjR0ZqYVhSNVBTSXhJaTgrQ2lBZ0lDQThjM1J2Y0NCdlptWnpaWFE5SWpjekpTSWdjM1J2Y0MxamIyeHZjajBpSTJSbE9UTTJaU0lnYzNSdmNDMXZjR0ZqYVhSNVBTSXhJaTgrQ2lBZ0lDQThjM1J2Y0NCdlptWnpaWFE5SWpFd01DVWlJSE4wYjNBdFkyOXNiM0k5SWlOak5qYzFOVGtpSUhOMGIzQXRiM0JoWTJsMGVUMGlNU0l2UGdvZ0lEd3ZiR2x1WldGeVIzSmhaR2xsYm5RK0NpQWdQSEpsWTNRZ2VEMGlNQ0lnZVQwaU1DSWdkMmxrZEdnOUlqRWlJR2hsYVdkb2REMGlNU0lnWm1sc2JEMGlkWEpzS0NObmNtRmtMWFZqWjJjdFoyVnVaWEpoZEdWa0tTSWdMejRLUEM5emRtYyspO1xuICBiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudChsZWZ0LCAjZTFhNzk3IDAlLCAjZmNlOWQzIDM5JSwgI2RlOTM2ZSA3MyUsICNjNjc1NTkgMTAwJSk7XG4gIC8qIEZGMy42KyAqL1xuICBiYWNrZ3JvdW5kOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIHJpZ2h0IHRvcCwgY29sb3Itc3RvcCgwJSwgI2UxYTc5NyksIGNvbG9yLXN0b3AoMzklLCAjZmNlOWQzKSwgY29sb3Itc3RvcCg3MyUsICNkZTkzNmUpLCBjb2xvci1zdG9wKDEwMCUsICNjNjc1NTkpKTtcbiAgLyogQ2hyb21lLFNhZmFyaTQrICovXG4gIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZnQsICNlMWE3OTcgMCUsICNmY2U5ZDMgMzklLCAjZGU5MzZlIDczJSwgI2M2NzU1OSAxMDAlKTtcbiAgLyogQ2hyb21lMTArLFNhZmFyaTUuMSsgKi9cbiAgYmFja2dyb3VuZDogLW8tbGluZWFyLWdyYWRpZW50KGxlZnQsICNlMWE3OTcgMCUsICNmY2U5ZDMgMzklLCAjZGU5MzZlIDczJSwgI2M2NzU1OSAxMDAlKTtcbiAgLyogT3BlcmEgMTEuMTArICovXG4gIGJhY2tncm91bmQ6IC1tcy1saW5lYXItZ3JhZGllbnQobGVmdCwgI2UxYTc5NyAwJSwgI2ZjZTlkMyAzOSUsICNkZTkzNmUgNzMlLCAjYzY3NTU5IDEwMCUpO1xuICAvKiBJRTEwKyAqL1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICNlMWE3OTcgMCUsICNmY2U5ZDMgMzklLCAjZGU5MzZlIDczJSwgI2M2NzU1OSAxMDAlKTtcbiAgLyogVzNDICovXG4gIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyNlMWE3OTcnLCBlbmRDb2xvcnN0cj0nI2M2NzU1OScsIEdyYWRpZW50VHlwZT0xKTtcbiAgLyogSUU2LTggKi9cbn1cbiIsIi8vXHJcbi8vIEZvcm1zXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG5cclxuLy8gTm9ybWFsaXplIG5vbi1jb250cm9sc1xyXG4vL1xyXG4vLyBSZXN0eWxlIGFuZCBiYXNlbGluZSBub24tY29udHJvbCBmb3JtIGVsZW1lbnRzLlxyXG5cclxuZmllbGRzZXQge1xyXG4gIHBhZGRpbmc6IDA7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIGJvcmRlcjogMDtcclxuICAvLyBDaHJvbWUgYW5kIEZpcmVmb3ggc2V0IGEgYG1pbi13aWR0aDogbWluLWNvbnRlbnQ7YCBvbiBmaWVsZHNldHMsXHJcbiAgLy8gc28gd2UgcmVzZXQgdGhhdCB0byBlbnN1cmUgaXQgYmVoYXZlcyBtb3JlIGxpa2UgYSBzdGFuZGFyZCBibG9jayBlbGVtZW50LlxyXG4gIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvaXNzdWVzLzEyMzU5LlxyXG4gIG1pbi13aWR0aDogMDtcclxufVxyXG5cclxubGVnZW5kIHtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICB3aWR0aDogMTAwJTtcclxuICBwYWRkaW5nOiAwO1xyXG4gIG1hcmdpbi1ib3R0b206IEBsaW5lLWhlaWdodC1jb21wdXRlZDtcclxuICBmb250LXNpemU6IChAZm9udC1zaXplLWJhc2UgKiAxLjUpO1xyXG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xyXG4gIGNvbG9yOiBAbGVnZW5kLWNvbG9yO1xyXG4gIGJvcmRlcjogMDtcclxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgQGxlZ2VuZC1ib3JkZXItY29sb3I7XHJcbn1cclxuXHJcbmxhYmVsIHtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgbWF4LXdpZHRoOiAxMDAlOyAvLyBGb3JjZSBJRTggdG8gd3JhcCBsb25nIGNvbnRlbnQgKHNlZSBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvaXNzdWVzLzEzMTQxKVxyXG4gIG1hcmdpbi1ib3R0b206IDVweDtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxufVxyXG5cclxuXHJcbi8vIE5vcm1hbGl6ZSBmb3JtIGNvbnRyb2xzXHJcbi8vXHJcbi8vIFdoaWxlIG1vc3Qgb2Ygb3VyIGZvcm0gc3R5bGVzIHJlcXVpcmUgZXh0cmEgY2xhc3Nlcywgc29tZSBiYXNpYyBub3JtYWxpemF0aW9uXHJcbi8vIGlzIHJlcXVpcmVkIHRvIGVuc3VyZSBvcHRpbXVtIGRpc3BsYXkgd2l0aCBvciB3aXRob3V0IHRob3NlIGNsYXNzZXMgdG8gYmV0dGVyXHJcbi8vIGFkZHJlc3MgYnJvd3NlciBpbmNvbnNpc3RlbmNpZXMuXHJcblxyXG4vLyBPdmVycmlkZSBjb250ZW50LWJveCBpbiBOb3JtYWxpemUgKCogaXNuJ3Qgc3BlY2lmaWMgZW5vdWdoKVxyXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcclxuICAuYm94LXNpemluZyhib3JkZXItYm94KTtcclxufVxyXG5cclxuLy8gUG9zaXRpb24gcmFkaW9zIGFuZCBjaGVja2JveGVzIGJldHRlclxyXG5pbnB1dFt0eXBlPVwicmFkaW9cIl0sXHJcbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XHJcbiAgbWFyZ2luOiA0cHggMCAwO1xyXG4gIG1hcmdpbi10b3A6IDFweCBcXDk7IC8vIElFOC05XHJcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcclxufVxyXG5cclxuaW5wdXRbdHlwZT1cImZpbGVcIl0ge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG59XHJcblxyXG4vLyBNYWtlIHJhbmdlIGlucHV0cyBiZWhhdmUgbGlrZSB0ZXh0dWFsIGZvcm0gY29udHJvbHNcclxuaW5wdXRbdHlwZT1cInJhbmdlXCJdIHtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICB3aWR0aDogMTAwJTtcclxufVxyXG5cclxuLy8gTWFrZSBtdWx0aXBsZSBzZWxlY3QgZWxlbWVudHMgaGVpZ2h0IG5vdCBmaXhlZFxyXG5zZWxlY3RbbXVsdGlwbGVdLFxyXG5zZWxlY3Rbc2l6ZV0ge1xyXG4gIGhlaWdodDogYXV0bztcclxufVxyXG5cclxuLy8gRm9jdXMgZm9yIGZpbGUsIHJhZGlvLCBhbmQgY2hlY2tib3hcclxuaW5wdXRbdHlwZT1cImZpbGVcIl06Zm9jdXMsXHJcbmlucHV0W3R5cGU9XCJyYWRpb1wiXTpmb2N1cyxcclxuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdOmZvY3VzIHtcclxuICAudGFiLWZvY3VzKCk7XHJcbn1cclxuXHJcbi8vIEFkanVzdCBvdXRwdXQgZWxlbWVudFxyXG5vdXRwdXQge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIHBhZGRpbmctdG9wOiAoQHBhZGRpbmctYmFzZS12ZXJ0aWNhbCArIDEpO1xyXG4gIGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS1iYXNlO1xyXG4gIGxpbmUtaGVpZ2h0OiBAbGluZS1oZWlnaHQtYmFzZTtcclxuICBjb2xvcjogQGlucHV0LWNvbG9yO1xyXG59XHJcblxyXG5cclxuLy8gQ29tbW9uIGZvcm0gY29udHJvbHNcclxuLy9cclxuLy8gU2hhcmVkIHNpemUgYW5kIHR5cGUgcmVzZXRzIGZvciBmb3JtIGNvbnRyb2xzLiBBcHBseSBgLmZvcm0tY29udHJvbGAgdG8gYW55XHJcbi8vIG9mIHRoZSBmb2xsb3dpbmcgZm9ybSBjb250cm9sczpcclxuLy9cclxuLy8gc2VsZWN0XHJcbi8vIHRleHRhcmVhXHJcbi8vIGlucHV0W3R5cGU9XCJ0ZXh0XCJdXHJcbi8vIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXVxyXG4vLyBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl1cclxuLy8gaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdXHJcbi8vIGlucHV0W3R5cGU9XCJkYXRlXCJdXHJcbi8vIGlucHV0W3R5cGU9XCJtb250aFwiXVxyXG4vLyBpbnB1dFt0eXBlPVwidGltZVwiXVxyXG4vLyBpbnB1dFt0eXBlPVwid2Vla1wiXVxyXG4vLyBpbnB1dFt0eXBlPVwibnVtYmVyXCJdXHJcbi8vIGlucHV0W3R5cGU9XCJlbWFpbFwiXVxyXG4vLyBpbnB1dFt0eXBlPVwidXJsXCJdXHJcbi8vIGlucHV0W3R5cGU9XCJzZWFyY2hcIl1cclxuLy8gaW5wdXRbdHlwZT1cInRlbFwiXVxyXG4vLyBpbnB1dFt0eXBlPVwiY29sb3JcIl1cclxuXHJcbi5mb3JtLWNvbnRyb2wge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogQGlucHV0LWhlaWdodC1iYXNlOyAvLyBNYWtlIGlucHV0cyBhdCBsZWFzdCB0aGUgaGVpZ2h0IG9mIHRoZWlyIGJ1dHRvbiBjb3VudGVycGFydCAoYmFzZSBsaW5lLWhlaWdodCArIHBhZGRpbmcgKyBib3JkZXIpXHJcbiAgcGFkZGluZzogQHBhZGRpbmctYmFzZS12ZXJ0aWNhbCBAcGFkZGluZy1iYXNlLWhvcml6b250YWw7XHJcbiAgZm9udC1zaXplOiBAZm9udC1zaXplLWJhc2U7XHJcbiAgbGluZS1oZWlnaHQ6IEBsaW5lLWhlaWdodC1iYXNlO1xyXG4gIGNvbG9yOiBAaW5wdXQtY29sb3I7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogQGlucHV0LWJnO1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7IC8vIFJlc2V0IHVudXN1YWwgRmlyZWZveC1vbi1BbmRyb2lkIGRlZmF1bHQgc3R5bGU7IHNlZSBodHRwczovL2dpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzL2lzc3Vlcy8yMTRcclxuICBib3JkZXI6IDFweCBzb2xpZCBAaW5wdXQtYm9yZGVyO1xyXG4gIGJvcmRlci1yYWRpdXM6IEBpbnB1dC1ib3JkZXItcmFkaXVzOyAvLyBOb3RlOiBUaGlzIGhhcyBubyBlZmZlY3Qgb24gPHNlbGVjdD5zIGluIHNvbWUgYnJvd3NlcnMsIGR1ZSB0byB0aGUgbGltaXRlZCBzdHlsYWJpbGl0eSBvZiA8c2VsZWN0PnMgaW4gQ1NTLlxyXG4gIC5ib3gtc2hhZG93KGluc2V0IDAgMXB4IDFweCByZ2JhKDAsMCwwLC4wNzUpKTtcclxuICAudHJhbnNpdGlvbih+XCJib3JkZXItY29sb3IgZWFzZS1pbi1vdXQgLjE1cywgYm94LXNoYWRvdyBlYXNlLWluLW91dCAuMTVzXCIpO1xyXG5cclxuICAvLyBDdXN0b21pemUgdGhlIGA6Zm9jdXNgIHN0YXRlIHRvIGltaXRhdGUgbmF0aXZlIFdlYktpdCBzdHlsZXMuXHJcbiAgLmZvcm0tY29udHJvbC1mb2N1cygpO1xyXG5cclxuICAvLyBQbGFjZWhvbGRlclxyXG4gIC5wbGFjZWhvbGRlcigpO1xyXG5cclxuICAvLyBVbnN0eWxlIHRoZSBjYXJldCBvbiBgPHNlbGVjdD5gcyBpbiBJRTEwKy5cclxuICAmOjotbXMtZXhwYW5kIHtcclxuICAgIGJvcmRlcjogMDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gIH1cclxuXHJcbiAgLy8gRGlzYWJsZWQgYW5kIHJlYWQtb25seSBpbnB1dHNcclxuICAvL1xyXG4gIC8vIEhUTUw1IHNheXMgdGhhdCBjb250cm9scyB1bmRlciBhIGZpZWxkc2V0ID4gbGVnZW5kOmZpcnN0LWNoaWxkIHdvbid0IGJlXHJcbiAgLy8gZGlzYWJsZWQgaWYgdGhlIGZpZWxkc2V0IGlzIGRpc2FibGVkLiBEdWUgdG8gaW1wbGVtZW50YXRpb24gZGlmZmljdWx0eSwgd2VcclxuICAvLyBkb24ndCBob25vciB0aGF0IGVkZ2UgY2FzZTsgd2Ugc3R5bGUgdGhlbSBhcyBkaXNhYmxlZCBhbnl3YXkuXHJcbiAgJltkaXNhYmxlZF0sXHJcbiAgJltyZWFkb25seV0sXHJcbiAgZmllbGRzZXRbZGlzYWJsZWRdICYge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGlucHV0LWJnLWRpc2FibGVkO1xyXG4gICAgb3BhY2l0eTogMTsgLy8gaU9TIGZpeCBmb3IgdW5yZWFkYWJsZSBkaXNhYmxlZCBjb250ZW50OyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2lzc3Vlcy8xMTY1NVxyXG4gIH1cclxuXHJcbiAgJltkaXNhYmxlZF0sXHJcbiAgZmllbGRzZXRbZGlzYWJsZWRdICYge1xyXG4gICAgY3Vyc29yOiBAY3Vyc29yLWRpc2FibGVkO1xyXG4gIH1cclxuXHJcbiAgLy8gUmVzZXQgaGVpZ2h0IGZvciBgdGV4dGFyZWFgc1xyXG4gIHRleHRhcmVhJiB7XHJcbiAgICBoZWlnaHQ6IGF1dG87XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLy8gU2VhcmNoIGlucHV0cyBpbiBpT1NcclxuLy9cclxuLy8gVGhpcyBvdmVycmlkZXMgdGhlIGV4dHJhIHJvdW5kZWQgY29ybmVycyBvbiBzZWFyY2ggaW5wdXRzIGluIGlPUyBzbyB0aGF0IG91clxyXG4vLyBgLmZvcm0tY29udHJvbGAgY2xhc3MgY2FuIHByb3Blcmx5IHN0eWxlIHRoZW0uIE5vdGUgdGhhdCB0aGlzIGNhbm5vdCBzaW1wbHlcclxuLy8gYmUgYWRkZWQgdG8gYC5mb3JtLWNvbnRyb2xgIGFzIGl0J3Mgbm90IHNwZWNpZmljIGVub3VnaC4gRm9yIGRldGFpbHMsIHNlZVxyXG4vLyBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvaXNzdWVzLzExNTg2LlxyXG5cclxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XHJcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xyXG59XHJcblxyXG5cclxuLy8gU3BlY2lhbCBzdHlsZXMgZm9yIGlPUyB0ZW1wb3JhbCBpbnB1dHNcclxuLy9cclxuLy8gSW4gTW9iaWxlIFNhZmFyaSwgc2V0dGluZyBgZGlzcGxheTogYmxvY2tgIG9uIHRlbXBvcmFsIGlucHV0cyBjYXVzZXMgdGhlXHJcbi8vIHRleHQgd2l0aGluIHRoZSBpbnB1dCB0byBiZWNvbWUgdmVydGljYWxseSBtaXNhbGlnbmVkLiBBcyBhIHdvcmthcm91bmQsIHdlXHJcbi8vIHNldCBhIHBpeGVsIGxpbmUtaGVpZ2h0IHRoYXQgbWF0Y2hlcyB0aGUgZ2l2ZW4gaGVpZ2h0IG9mIHRoZSBpbnB1dCwgYnV0IG9ubHlcclxuLy8gZm9yIFNhZmFyaS4gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk4NDhcclxuLy9cclxuLy8gTm90ZSB0aGF0IGFzIG9mIDkuMywgaU9TIGRvZXNuJ3Qgc3VwcG9ydCBgd2Vla2AuXHJcblxyXG5AbWVkaWEgc2NyZWVuIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAwKSB7XHJcbiAgaW5wdXRbdHlwZT1cImRhdGVcIl0sXHJcbiAgaW5wdXRbdHlwZT1cInRpbWVcIl0sXHJcbiAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLFxyXG4gIGlucHV0W3R5cGU9XCJtb250aFwiXSB7XHJcbiAgICAmLmZvcm0tY29udHJvbCB7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiBAaW5wdXQtaGVpZ2h0LWJhc2U7XHJcbiAgICB9XHJcblxyXG4gICAgJi5pbnB1dC1zbSxcclxuICAgIC5pbnB1dC1ncm91cC1zbSAmIHtcclxuICAgICAgbGluZS1oZWlnaHQ6IEBpbnB1dC1oZWlnaHQtc21hbGw7XHJcbiAgICB9XHJcblxyXG4gICAgJi5pbnB1dC1sZyxcclxuICAgIC5pbnB1dC1ncm91cC1sZyAmIHtcclxuICAgICAgbGluZS1oZWlnaHQ6IEBpbnB1dC1oZWlnaHQtbGFyZ2U7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLy8gRm9ybSBncm91cHNcclxuLy9cclxuLy8gRGVzaWduZWQgdG8gaGVscCB3aXRoIHRoZSBvcmdhbml6YXRpb24gYW5kIHNwYWNpbmcgb2YgdmVydGljYWwgZm9ybXMuIEZvclxyXG4vLyBob3Jpem9udGFsIGZvcm1zLCB1c2UgdGhlIHByZWRlZmluZWQgZ3JpZCBjbGFzc2VzLlxyXG5cclxuLmZvcm0tZ3JvdXAge1xyXG4gIG1hcmdpbi1ib3R0b206IEBmb3JtLWdyb3VwLW1hcmdpbi1ib3R0b207XHJcbn1cclxuXHJcblxyXG4vLyBDaGVja2JveGVzIGFuZCByYWRpb3NcclxuLy9cclxuLy8gSW5kZW50IHRoZSBsYWJlbHMgdG8gcG9zaXRpb24gcmFkaW9zL2NoZWNrYm94ZXMgYXMgaGFuZ2luZyBjb250cm9scy5cclxuXHJcbi5yYWRpbyxcclxuLmNoZWNrYm94IHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgbWFyZ2luLXRvcDogMTBweDtcclxuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG5cclxuICBsYWJlbCB7XHJcbiAgICBtaW4taGVpZ2h0OiBAbGluZS1oZWlnaHQtY29tcHV0ZWQ7IC8vIEVuc3VyZSB0aGUgaW5wdXQgZG9lc24ndCBqdW1wIHdoZW4gdGhlcmUgaXMgbm8gdGV4dFxyXG4gICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgfVxyXG59XHJcbi5yYWRpbyBpbnB1dFt0eXBlPVwicmFkaW9cIl0sXHJcbi5yYWRpby1pbmxpbmUgaW5wdXRbdHlwZT1cInJhZGlvXCJdLFxyXG4uY2hlY2tib3ggaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxyXG4uY2hlY2tib3gtaW5saW5lIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIG1hcmdpbi1sZWZ0OiAtMjBweDtcclxuICBtYXJnaW4tdG9wOiA0cHggXFw5O1xyXG59XHJcblxyXG4ucmFkaW8gKyAucmFkaW8sXHJcbi5jaGVja2JveCArIC5jaGVja2JveCB7XHJcbiAgbWFyZ2luLXRvcDogLTVweDsgLy8gTW92ZSB1cCBzaWJsaW5nIHJhZGlvcyBvciBjaGVja2JveGVzIGZvciB0aWdodGVyIHNwYWNpbmdcclxufVxyXG5cclxuLy8gUmFkaW9zIGFuZCBjaGVja2JveGVzIG9uIHNhbWUgbGluZVxyXG4ucmFkaW8taW5saW5lLFxyXG4uY2hlY2tib3gtaW5saW5lIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIHBhZGRpbmctbGVmdDogMjBweDtcclxuICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbn1cclxuLnJhZGlvLWlubGluZSArIC5yYWRpby1pbmxpbmUsXHJcbi5jaGVja2JveC1pbmxpbmUgKyAuY2hlY2tib3gtaW5saW5lIHtcclxuICBtYXJnaW4tdG9wOiAwO1xyXG4gIG1hcmdpbi1sZWZ0OiAxMHB4OyAvLyBzcGFjZSBvdXQgY29uc2VjdXRpdmUgaW5saW5lIGNvbnRyb2xzXHJcbn1cclxuXHJcbi8vIEFwcGx5IHNhbWUgZGlzYWJsZWQgY3Vyc29yIHR3ZWFrIGFzIGZvciBpbnB1dHNcclxuLy8gU29tZSBzcGVjaWFsIGNhcmUgaXMgbmVlZGVkIGJlY2F1c2UgPGxhYmVsPnMgZG9uJ3QgaW5oZXJpdCB0aGVpciBwYXJlbnQncyBgY3Vyc29yYC5cclxuLy9cclxuLy8gTm90ZTogTmVpdGhlciByYWRpb3Mgbm9yIGNoZWNrYm94ZXMgY2FuIGJlIHJlYWRvbmx5LlxyXG5pbnB1dFt0eXBlPVwicmFkaW9cIl0sXHJcbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XHJcbiAgJltkaXNhYmxlZF0sXHJcbiAgJi5kaXNhYmxlZCxcclxuICBmaWVsZHNldFtkaXNhYmxlZF0gJiB7XHJcbiAgICBjdXJzb3I6IEBjdXJzb3ItZGlzYWJsZWQ7XHJcbiAgfVxyXG59XHJcbi8vIFRoZXNlIGNsYXNzZXMgYXJlIHVzZWQgZGlyZWN0bHkgb24gPGxhYmVsPnNcclxuLnJhZGlvLWlubGluZSxcclxuLmNoZWNrYm94LWlubGluZSB7XHJcbiAgJi5kaXNhYmxlZCxcclxuICBmaWVsZHNldFtkaXNhYmxlZF0gJiB7XHJcbiAgICBjdXJzb3I6IEBjdXJzb3ItZGlzYWJsZWQ7XHJcbiAgfVxyXG59XHJcbi8vIFRoZXNlIGNsYXNzZXMgYXJlIHVzZWQgb24gZWxlbWVudHMgd2l0aCA8bGFiZWw+IGRlc2NlbmRhbnRzXHJcbi5yYWRpbyxcclxuLmNoZWNrYm94IHtcclxuICAmLmRpc2FibGVkLFxyXG4gIGZpZWxkc2V0W2Rpc2FibGVkXSAmIHtcclxuICAgIGxhYmVsIHtcclxuICAgICAgY3Vyc29yOiBAY3Vyc29yLWRpc2FibGVkO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuXHJcbi8vIFN0YXRpYyBmb3JtIGNvbnRyb2wgdGV4dFxyXG4vL1xyXG4vLyBBcHBseSBjbGFzcyB0byBhIGBwYCBlbGVtZW50IHRvIG1ha2UgYW55IHN0cmluZyBvZiB0ZXh0IGFsaWduIHdpdGggbGFiZWxzIGluXHJcbi8vIGEgaG9yaXpvbnRhbCBmb3JtIGxheW91dC5cclxuXHJcbi5mb3JtLWNvbnRyb2wtc3RhdGljIHtcclxuICAvLyBTaXplIGl0IGFwcHJvcHJpYXRlbHkgbmV4dCB0byByZWFsIGZvcm0gY29udHJvbHNcclxuICBwYWRkaW5nLXRvcDogKEBwYWRkaW5nLWJhc2UtdmVydGljYWwgKyAxKTtcclxuICBwYWRkaW5nLWJvdHRvbTogKEBwYWRkaW5nLWJhc2UtdmVydGljYWwgKyAxKTtcclxuICAvLyBSZW1vdmUgZGVmYXVsdCBtYXJnaW4gZnJvbSBgcGBcclxuICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gIG1pbi1oZWlnaHQ6IChAbGluZS1oZWlnaHQtY29tcHV0ZWQgKyBAZm9udC1zaXplLWJhc2UpO1xyXG5cclxuICAmLmlucHV0LWxnLFxyXG4gICYuaW5wdXQtc20ge1xyXG4gICAgcGFkZGluZy1sZWZ0OiAwO1xyXG4gICAgcGFkZGluZy1yaWdodDogMDtcclxuICB9XHJcbn1cclxuXHJcblxyXG4vLyBGb3JtIGNvbnRyb2wgc2l6aW5nXHJcbi8vXHJcbi8vIEJ1aWxkIG9uIGAuZm9ybS1jb250cm9sYCB3aXRoIG1vZGlmaWVyIGNsYXNzZXMgdG8gZGVjcmVhc2Ugb3IgaW5jcmVhc2UgdGhlXHJcbi8vIGhlaWdodCBhbmQgZm9udC1zaXplIG9mIGZvcm0gY29udHJvbHMuXHJcbi8vXHJcbi8vIFRoZSBgLmZvcm0tZ3JvdXAtKiBmb3JtLWNvbnRyb2xgIHZhcmlhdGlvbnMgYXJlIHNhZGx5IGR1cGxpY2F0ZWQgdG8gYXZvaWQgdGhlXHJcbi8vIGlzc3VlIGRvY3VtZW50ZWQgaW4gaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2lzc3Vlcy8xNTA3NC5cclxuXHJcbi5pbnB1dC1zbSB7XHJcbiAgLmlucHV0LXNpemUoQGlucHV0LWhlaWdodC1zbWFsbDsgQHBhZGRpbmctc21hbGwtdmVydGljYWw7IEBwYWRkaW5nLXNtYWxsLWhvcml6b250YWw7IEBmb250LXNpemUtc21hbGw7IEBsaW5lLWhlaWdodC1zbWFsbDsgQGlucHV0LWJvcmRlci1yYWRpdXMtc21hbGwpO1xyXG59XHJcbi5mb3JtLWdyb3VwLXNtIHtcclxuICAuZm9ybS1jb250cm9sIHtcclxuICAgIGhlaWdodDogQGlucHV0LWhlaWdodC1zbWFsbDtcclxuICAgIHBhZGRpbmc6IEBwYWRkaW5nLXNtYWxsLXZlcnRpY2FsIEBwYWRkaW5nLXNtYWxsLWhvcml6b250YWw7XHJcbiAgICBmb250LXNpemU6IEBmb250LXNpemUtc21hbGw7XHJcbiAgICBsaW5lLWhlaWdodDogQGxpbmUtaGVpZ2h0LXNtYWxsO1xyXG4gICAgYm9yZGVyLXJhZGl1czogQGlucHV0LWJvcmRlci1yYWRpdXMtc21hbGw7XHJcbiAgfVxyXG4gIHNlbGVjdC5mb3JtLWNvbnRyb2wge1xyXG4gICAgaGVpZ2h0OiBAaW5wdXQtaGVpZ2h0LXNtYWxsO1xyXG4gICAgbGluZS1oZWlnaHQ6IEBpbnB1dC1oZWlnaHQtc21hbGw7XHJcbiAgfVxyXG4gIHRleHRhcmVhLmZvcm0tY29udHJvbCxcclxuICBzZWxlY3RbbXVsdGlwbGVdLmZvcm0tY29udHJvbCB7XHJcbiAgICBoZWlnaHQ6IGF1dG87XHJcbiAgfVxyXG4gIC5mb3JtLWNvbnRyb2wtc3RhdGljIHtcclxuICAgIGhlaWdodDogQGlucHV0LWhlaWdodC1zbWFsbDtcclxuICAgIG1pbi1oZWlnaHQ6IChAbGluZS1oZWlnaHQtY29tcHV0ZWQgKyBAZm9udC1zaXplLXNtYWxsKTtcclxuICAgIHBhZGRpbmc6IChAcGFkZGluZy1zbWFsbC12ZXJ0aWNhbCArIDEpIEBwYWRkaW5nLXNtYWxsLWhvcml6b250YWw7XHJcbiAgICBmb250LXNpemU6IEBmb250LXNpemUtc21hbGw7XHJcbiAgICBsaW5lLWhlaWdodDogQGxpbmUtaGVpZ2h0LXNtYWxsO1xyXG4gIH1cclxufVxyXG5cclxuLmlucHV0LWxnIHtcclxuICAuaW5wdXQtc2l6ZShAaW5wdXQtaGVpZ2h0LWxhcmdlOyBAcGFkZGluZy1sYXJnZS12ZXJ0aWNhbDsgQHBhZGRpbmctbGFyZ2UtaG9yaXpvbnRhbDsgQGZvbnQtc2l6ZS1sYXJnZTsgQGxpbmUtaGVpZ2h0LWxhcmdlOyBAaW5wdXQtYm9yZGVyLXJhZGl1cy1sYXJnZSk7XHJcbn1cclxuLmZvcm0tZ3JvdXAtbGcge1xyXG4gIC5mb3JtLWNvbnRyb2wge1xyXG4gICAgaGVpZ2h0OiBAaW5wdXQtaGVpZ2h0LWxhcmdlO1xyXG4gICAgcGFkZGluZzogQHBhZGRpbmctbGFyZ2UtdmVydGljYWwgQHBhZGRpbmctbGFyZ2UtaG9yaXpvbnRhbDtcclxuICAgIGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS1sYXJnZTtcclxuICAgIGxpbmUtaGVpZ2h0OiBAbGluZS1oZWlnaHQtbGFyZ2U7XHJcbiAgICBib3JkZXItcmFkaXVzOiBAaW5wdXQtYm9yZGVyLXJhZGl1cy1sYXJnZTtcclxuICB9XHJcbiAgc2VsZWN0LmZvcm0tY29udHJvbCB7XHJcbiAgICBoZWlnaHQ6IEBpbnB1dC1oZWlnaHQtbGFyZ2U7XHJcbiAgICBsaW5lLWhlaWdodDogQGlucHV0LWhlaWdodC1sYXJnZTtcclxuICB9XHJcbiAgdGV4dGFyZWEuZm9ybS1jb250cm9sLFxyXG4gIHNlbGVjdFttdWx0aXBsZV0uZm9ybS1jb250cm9sIHtcclxuICAgIGhlaWdodDogYXV0bztcclxuICB9XHJcbiAgLmZvcm0tY29udHJvbC1zdGF0aWMge1xyXG4gICAgaGVpZ2h0OiBAaW5wdXQtaGVpZ2h0LWxhcmdlO1xyXG4gICAgbWluLWhlaWdodDogKEBsaW5lLWhlaWdodC1jb21wdXRlZCArIEBmb250LXNpemUtbGFyZ2UpO1xyXG4gICAgcGFkZGluZzogKEBwYWRkaW5nLWxhcmdlLXZlcnRpY2FsICsgMSkgQHBhZGRpbmctbGFyZ2UtaG9yaXpvbnRhbDtcclxuICAgIGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS1sYXJnZTtcclxuICAgIGxpbmUtaGVpZ2h0OiBAbGluZS1oZWlnaHQtbGFyZ2U7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLy8gRm9ybSBjb250cm9sIGZlZWRiYWNrIHN0YXRlc1xyXG4vL1xyXG4vLyBBcHBseSBjb250ZXh0dWFsIGFuZCBzZW1hbnRpYyBzdGF0ZXMgdG8gaW5kaXZpZHVhbCBmb3JtIGNvbnRyb2xzLlxyXG5cclxuLmhhcy1mZWVkYmFjayB7XHJcbiAgLy8gRW5hYmxlIGFic29sdXRlIHBvc2l0aW9uaW5nXHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuICAvLyBFbnN1cmUgaWNvbnMgZG9uJ3Qgb3ZlcmxhcCB0ZXh0XHJcbiAgLmZvcm0tY29udHJvbCB7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiAoQGlucHV0LWhlaWdodC1iYXNlICogMS4yNSk7XHJcbiAgfVxyXG59XHJcbi8vIEZlZWRiYWNrIGljb24gKHJlcXVpcmVzIC5nbHlwaGljb24gY2xhc3NlcylcclxuLmZvcm0tY29udHJvbC1mZWVkYmFjayB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogMDtcclxuICByaWdodDogMDtcclxuICB6LWluZGV4OiAyOyAvLyBFbnN1cmUgaWNvbiBpcyBhYm92ZSBpbnB1dCBncm91cHNcclxuICBkaXNwbGF5OiBibG9jaztcclxuICB3aWR0aDogQGlucHV0LWhlaWdodC1iYXNlO1xyXG4gIGhlaWdodDogQGlucHV0LWhlaWdodC1iYXNlO1xyXG4gIGxpbmUtaGVpZ2h0OiBAaW5wdXQtaGVpZ2h0LWJhc2U7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG59XHJcbi5pbnB1dC1sZyArIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2ssXHJcbi5pbnB1dC1ncm91cC1sZyArIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2ssXHJcbi5mb3JtLWdyb3VwLWxnIC5mb3JtLWNvbnRyb2wgKyAuZm9ybS1jb250cm9sLWZlZWRiYWNrIHtcclxuICB3aWR0aDogQGlucHV0LWhlaWdodC1sYXJnZTtcclxuICBoZWlnaHQ6IEBpbnB1dC1oZWlnaHQtbGFyZ2U7XHJcbiAgbGluZS1oZWlnaHQ6IEBpbnB1dC1oZWlnaHQtbGFyZ2U7XHJcbn1cclxuLmlucHV0LXNtICsgLmZvcm0tY29udHJvbC1mZWVkYmFjayxcclxuLmlucHV0LWdyb3VwLXNtICsgLmZvcm0tY29udHJvbC1mZWVkYmFjayxcclxuLmZvcm0tZ3JvdXAtc20gLmZvcm0tY29udHJvbCArIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2sge1xyXG4gIHdpZHRoOiBAaW5wdXQtaGVpZ2h0LXNtYWxsO1xyXG4gIGhlaWdodDogQGlucHV0LWhlaWdodC1zbWFsbDtcclxuICBsaW5lLWhlaWdodDogQGlucHV0LWhlaWdodC1zbWFsbDtcclxufVxyXG5cclxuLy8gRmVlZGJhY2sgc3RhdGVzXHJcbi5oYXMtc3VjY2VzcyB7XHJcbiAgLmZvcm0tY29udHJvbC12YWxpZGF0aW9uKEBzdGF0ZS1zdWNjZXNzLXRleHQ7IEBzdGF0ZS1zdWNjZXNzLXRleHQ7IEBzdGF0ZS1zdWNjZXNzLWJnKTtcclxufVxyXG4uaGFzLXdhcm5pbmcge1xyXG4gIC5mb3JtLWNvbnRyb2wtdmFsaWRhdGlvbihAc3RhdGUtd2FybmluZy10ZXh0OyBAc3RhdGUtd2FybmluZy10ZXh0OyBAc3RhdGUtd2FybmluZy1iZyk7XHJcbn1cclxuLmhhcy1lcnJvciB7XHJcbiAgLmZvcm0tY29udHJvbC12YWxpZGF0aW9uKEBzdGF0ZS1kYW5nZXItdGV4dDsgQHN0YXRlLWRhbmdlci10ZXh0OyBAc3RhdGUtZGFuZ2VyLWJnKTtcclxufVxyXG5cclxuLy8gUmVwb3NpdGlvbiBmZWVkYmFjayBpY29uIGlmIGlucHV0IGhhcyB2aXNpYmxlIGxhYmVsIGFib3ZlXHJcbi5oYXMtZmVlZGJhY2sgbGFiZWwge1xyXG5cclxuICAmIH4gLmZvcm0tY29udHJvbC1mZWVkYmFjayB7XHJcbiAgICB0b3A6IChAbGluZS1oZWlnaHQtY29tcHV0ZWQgKyA1KTsgLy8gSGVpZ2h0IG9mIHRoZSBgbGFiZWxgIGFuZCBpdHMgbWFyZ2luXHJcbiAgfVxyXG4gICYuc3Itb25seSB+IC5mb3JtLWNvbnRyb2wtZmVlZGJhY2sge1xyXG4gICAgdG9wOiAwO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbi8vIEhlbHAgdGV4dFxyXG4vL1xyXG4vLyBBcHBseSB0byBhbnkgZWxlbWVudCB5b3Ugd2lzaCB0byBjcmVhdGUgbGlnaHQgdGV4dCBmb3IgcGxhY2VtZW50IGltbWVkaWF0ZWx5XHJcbi8vIGJlbG93IGEgZm9ybSBjb250cm9sLiBVc2UgZm9yIGdlbmVyYWwgaGVscCwgZm9ybWF0dGluZywgb3IgaW5zdHJ1Y3Rpb25hbCB0ZXh0LlxyXG5cclxuLmhlbHAtYmxvY2sge1xyXG4gIGRpc3BsYXk6IGJsb2NrOyAvLyBhY2NvdW50IGZvciBhbnkgZWxlbWVudCB1c2luZyBoZWxwLWJsb2NrXHJcbiAgbWFyZ2luLXRvcDogNXB4O1xyXG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XHJcbiAgY29sb3I6IGxpZ2h0ZW4oQHRleHQtY29sb3IsIDI1JSk7IC8vIGxpZ2h0ZW4gdGhlIHRleHQgc29tZSBmb3IgY29udHJhc3RcclxufVxyXG5cclxuXHJcbi8vIElubGluZSBmb3Jtc1xyXG4vL1xyXG4vLyBNYWtlIGZvcm1zIGFwcGVhciBpbmxpbmUoLWJsb2NrKSBieSBhZGRpbmcgdGhlIGAuZm9ybS1pbmxpbmVgIGNsYXNzLiBJbmxpbmVcclxuLy8gZm9ybXMgYmVnaW4gc3RhY2tlZCBvbiBleHRyYSBzbWFsbCAobW9iaWxlKSBkZXZpY2VzIGFuZCB0aGVuIGdvIGlubGluZSB3aGVuXHJcbi8vIHZpZXdwb3J0cyByZWFjaCA8NzY4cHguXHJcbi8vXHJcbi8vIFJlcXVpcmVzIHdyYXBwaW5nIGlucHV0cyBhbmQgbGFiZWxzIHdpdGggYC5mb3JtLWdyb3VwYCBmb3IgcHJvcGVyIGRpc3BsYXkgb2ZcclxuLy8gZGVmYXVsdCBIVE1MIGZvcm0gY29udHJvbHMgYW5kIG91ciBjdXN0b20gZm9ybSBjb250cm9scyAoZS5nLiwgaW5wdXQgZ3JvdXBzKS5cclxuLy9cclxuLy8gSGVhZHMgdXAhIFRoaXMgaXMgbWl4aW4tZWQgaW50byBgLm5hdmJhci1mb3JtYCBpbiBuYXZiYXJzLmxlc3MuXHJcblxyXG4uZm9ybS1pbmxpbmUge1xyXG5cclxuICAvLyBLaWNrIGluIHRoZSBpbmxpbmVcclxuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1zbS1taW4pIHtcclxuICAgIC8vIElubGluZS1ibG9jayBhbGwgdGhlIHRoaW5ncyBmb3IgXCJpbmxpbmVcIlxyXG4gICAgLmZvcm0tZ3JvdXAge1xyXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gSW4gbmF2YmFyLWZvcm0sIGFsbG93IGZvbGtzIHRvICpub3QqIHVzZSBgLmZvcm0tZ3JvdXBgXHJcbiAgICAuZm9ybS1jb250cm9sIHtcclxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICB3aWR0aDogYXV0bzsgLy8gUHJldmVudCBsYWJlbHMgZnJvbSBzdGFja2luZyBhYm92ZSBpbnB1dHMgaW4gYC5mb3JtLWdyb3VwYFxyXG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIE1ha2Ugc3RhdGljIGNvbnRyb2xzIGJlaGF2ZSBsaWtlIHJlZ3VsYXIgb25lc1xyXG4gICAgLmZvcm0tY29udHJvbC1zdGF0aWMge1xyXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICB9XHJcblxyXG4gICAgLmlucHV0LWdyb3VwIHtcclxuICAgICAgZGlzcGxheTogaW5saW5lLXRhYmxlO1xyXG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG5cclxuICAgICAgLmlucHV0LWdyb3VwLWFkZG9uLFxyXG4gICAgICAuaW5wdXQtZ3JvdXAtYnRuLFxyXG4gICAgICAuZm9ybS1jb250cm9sIHtcclxuICAgICAgICB3aWR0aDogYXV0bztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIElucHV0IGdyb3VwcyBuZWVkIHRoYXQgMTAwJSB3aWR0aCB0aG91Z2hcclxuICAgIC5pbnB1dC1ncm91cCA+IC5mb3JtLWNvbnRyb2wge1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgIH1cclxuXHJcbiAgICAuY29udHJvbC1sYWJlbCB7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gUmVtb3ZlIGRlZmF1bHQgbWFyZ2luIG9uIHJhZGlvcy9jaGVja2JveGVzIHRoYXQgd2VyZSB1c2VkIGZvciBzdGFja2luZywgYW5kXHJcbiAgICAvLyB0aGVuIHVuZG8gdGhlIGZsb2F0aW5nIG9mIHJhZGlvcyBhbmQgY2hlY2tib3hlcyB0byBtYXRjaC5cclxuICAgIC5yYWRpbyxcclxuICAgIC5jaGVja2JveCB7XHJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgbWFyZ2luLXRvcDogMDtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuXHJcbiAgICAgIGxhYmVsIHtcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIC5yYWRpbyBpbnB1dFt0eXBlPVwicmFkaW9cIl0sXHJcbiAgICAuY2hlY2tib3ggaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICBtYXJnaW4tbGVmdDogMDtcclxuICAgIH1cclxuXHJcbiAgICAvLyBSZS1vdmVycmlkZSB0aGUgZmVlZGJhY2sgaWNvbi5cclxuICAgIC5oYXMtZmVlZGJhY2sgLmZvcm0tY29udHJvbC1mZWVkYmFjayB7XHJcbiAgICAgIHRvcDogMDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcblxyXG4vLyBIb3Jpem9udGFsIGZvcm1zXHJcbi8vXHJcbi8vIEhvcml6b250YWwgZm9ybXMgYXJlIGJ1aWx0IG9uIGdyaWQgY2xhc3NlcyBhbmQgYWxsb3cgeW91IHRvIGNyZWF0ZSBmb3JtcyB3aXRoXHJcbi8vIGxhYmVscyBvbiB0aGUgbGVmdCBhbmQgaW5wdXRzIG9uIHRoZSByaWdodC5cclxuXHJcbi5mb3JtLWhvcml6b250YWwge1xyXG5cclxuICAvLyBDb25zaXN0ZW50IHZlcnRpY2FsIGFsaWdubWVudCBvZiByYWRpb3MgYW5kIGNoZWNrYm94ZXNcclxuICAvL1xyXG4gIC8vIExhYmVscyBhbHNvIGdldCBzb21lIHJlc2V0IHN0eWxlcywgYnV0IHRoYXQgaXMgc2NvcGVkIHRvIGEgbWVkaWEgcXVlcnkgYmVsb3cuXHJcbiAgLnJhZGlvLFxyXG4gIC5jaGVja2JveCxcclxuICAucmFkaW8taW5saW5lLFxyXG4gIC5jaGVja2JveC1pbmxpbmUge1xyXG4gICAgbWFyZ2luLXRvcDogMDtcclxuICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICBwYWRkaW5nLXRvcDogKEBwYWRkaW5nLWJhc2UtdmVydGljYWwgKyAxKTsgLy8gRGVmYXVsdCBwYWRkaW5nIHBsdXMgYSBib3JkZXJcclxuICB9XHJcbiAgLy8gQWNjb3VudCBmb3IgcGFkZGluZyB3ZSdyZSBhZGRpbmcgdG8gZW5zdXJlIHRoZSBhbGlnbm1lbnQgYW5kIG9mIGhlbHAgdGV4dFxyXG4gIC8vIGFuZCBvdGhlciBjb250ZW50IGJlbG93IGl0ZW1zXHJcbiAgLnJhZGlvLFxyXG4gIC5jaGVja2JveCB7XHJcbiAgICBtaW4taGVpZ2h0OiAoQGxpbmUtaGVpZ2h0LWNvbXB1dGVkICsgKEBwYWRkaW5nLWJhc2UtdmVydGljYWwgKyAxKSk7XHJcbiAgfVxyXG5cclxuICAvLyBNYWtlIGZvcm0gZ3JvdXBzIGJlaGF2ZSBsaWtlIHJvd3NcclxuICAuZm9ybS1ncm91cCB7XHJcbiAgICAubWFrZS1yb3coKTtcclxuICB9XHJcblxyXG4gIC8vIFJlc2V0IHNwYWNpbmcgYW5kIHJpZ2h0IGFsaWduIGxhYmVscywgYnV0IHNjb3BlIHRvIG1lZGlhIHF1ZXJpZXMgc28gdGhhdFxyXG4gIC8vIGxhYmVscyBvbiBuYXJyb3cgdmlld3BvcnRzIHN0YWNrIHRoZSBzYW1lIGFzIGEgZGVmYXVsdCBmb3JtIGV4YW1wbGUuXHJcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tc20tbWluKSB7XHJcbiAgICAuY29udHJvbC1sYWJlbCB7XHJcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgICBwYWRkaW5nLXRvcDogKEBwYWRkaW5nLWJhc2UtdmVydGljYWwgKyAxKTsgLy8gRGVmYXVsdCBwYWRkaW5nIHBsdXMgYSBib3JkZXJcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIFZhbGlkYXRpb24gc3RhdGVzXHJcbiAgLy9cclxuICAvLyBSZXBvc2l0aW9uIHRoZSBpY29uIGJlY2F1c2UgaXQncyBub3cgd2l0aGluIGEgZ3JpZCBjb2x1bW4gYW5kIGNvbHVtbnMgaGF2ZVxyXG4gIC8vIGBwb3NpdGlvbjogcmVsYXRpdmU7YCBvbiB0aGVtLiBBbHNvIGFjY291bnRzIGZvciB0aGUgZ3JpZCBndXR0ZXIgcGFkZGluZy5cclxuICAuaGFzLWZlZWRiYWNrIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2sge1xyXG4gICAgcmlnaHQ6IGZsb29yKChAZ3JpZC1ndXR0ZXItd2lkdGggLyAyKSk7XHJcbiAgfVxyXG5cclxuICAvLyBGb3JtIGdyb3VwIHNpemVzXHJcbiAgLy9cclxuICAvLyBRdWljayB1dGlsaXR5IGNsYXNzIGZvciBhcHBseWluZyBgLmlucHV0LWxnYCBhbmQgYC5pbnB1dC1zbWAgc3R5bGVzIHRvIHRoZVxyXG4gIC8vIGlucHV0cyBhbmQgbGFiZWxzIHdpdGhpbiBhIGAuZm9ybS1ncm91cGAuXHJcbiAgLmZvcm0tZ3JvdXAtbGcge1xyXG4gICAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tc20tbWluKSB7XHJcbiAgICAgIC5jb250cm9sLWxhYmVsIHtcclxuICAgICAgICBwYWRkaW5nLXRvcDogKEBwYWRkaW5nLWxhcmdlLXZlcnRpY2FsICsgMSk7XHJcbiAgICAgICAgZm9udC1zaXplOiBAZm9udC1zaXplLWxhcmdlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIC5mb3JtLWdyb3VwLXNtIHtcclxuICAgIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLXNtLW1pbikge1xyXG4gICAgICAuY29udHJvbC1sYWJlbCB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IChAcGFkZGluZy1zbWFsbC12ZXJ0aWNhbCArIDEpO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS1zbWFsbDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIvL1xyXG4vLyBOYXZiYXJzXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG5cclxuLy8gV3JhcHBlciBhbmQgYmFzZSBjbGFzc1xyXG4vL1xyXG4vLyBQcm92aWRlIGEgc3RhdGljIG5hdmJhciBmcm9tIHdoaWNoIHdlIGV4cGFuZCB0byBjcmVhdGUgZnVsbC13aWR0aCwgZml4ZWQsIGFuZFxyXG4vLyBvdGhlciBuYXZiYXIgdmFyaWF0aW9ucy5cclxuXHJcbi5uYXZiYXIge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBtaW4taGVpZ2h0OiBAbmF2YmFyLWhlaWdodDsgLy8gRW5zdXJlIGEgbmF2YmFyIGFsd2F5cyBzaG93cyAoZS5nLiwgd2l0aG91dCBhIC5uYXZiYXItYnJhbmQgaW4gY29sbGFwc2VkIG1vZGUpXHJcbiAgbWFyZ2luLWJvdHRvbTogQG5hdmJhci1tYXJnaW4tYm90dG9tO1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xyXG5cclxuICAvLyBQcmV2ZW50IGZsb2F0cyBmcm9tIGJyZWFraW5nIHRoZSBuYXZiYXJcclxuICAmOmV4dGVuZCguY2xlYXJmaXggYWxsKTtcclxuXHJcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBncmlkLWZsb2F0LWJyZWFrcG9pbnQpIHtcclxuICAgIGJvcmRlci1yYWRpdXM6IEBuYXZiYXItYm9yZGVyLXJhZGl1cztcclxuICB9XHJcbn1cclxuXHJcblxyXG4vLyBOYXZiYXIgaGVhZGluZ1xyXG4vL1xyXG4vLyBHcm91cHMgYC5uYXZiYXItYnJhbmRgIGFuZCBgLm5hdmJhci10b2dnbGVgIGludG8gYSBzaW5nbGUgY29tcG9uZW50IGZvciBlYXN5XHJcbi8vIHN0eWxpbmcgb2YgcmVzcG9uc2l2ZSBhc3BlY3RzLlxyXG5cclxuLm5hdmJhci1oZWFkZXIge1xyXG4gICY6ZXh0ZW5kKC5jbGVhcmZpeCBhbGwpO1xyXG5cclxuICBAbWVkaWEgKG1pbi13aWR0aDogQGdyaWQtZmxvYXQtYnJlYWtwb2ludCkge1xyXG4gICAgZmxvYXQ6IGxlZnQ7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLy8gTmF2YmFyIGNvbGxhcHNlIChib2R5KVxyXG4vL1xyXG4vLyBHcm91cCB5b3VyIG5hdmJhciBjb250ZW50IGludG8gdGhpcyBmb3IgZWFzeSBjb2xsYXBzaW5nIGFuZCBleHBhbmRpbmcgYWNyb3NzXHJcbi8vIHZhcmlvdXMgZGV2aWNlIHNpemVzLiBCeSBkZWZhdWx0LCB0aGlzIGNvbnRlbnQgaXMgY29sbGFwc2VkIHdoZW4gPDc2OHB4LCBidXRcclxuLy8gd2lsbCBleHBhbmQgcGFzdCB0aGF0IGZvciBhIGhvcml6b250YWwgZGlzcGxheS5cclxuLy9cclxuLy8gVG8gc3RhcnQgKG9uIG1vYmlsZSBkZXZpY2VzKSB0aGUgbmF2YmFyIGxpbmtzLCBmb3JtcywgYW5kIGJ1dHRvbnMgYXJlIHN0YWNrZWRcclxuLy8gdmVydGljYWxseSBhbmQgaW5jbHVkZSBhIGBtYXgtaGVpZ2h0YCB0byBvdmVyZmxvdyBpbiBjYXNlIHlvdSBoYXZlIHRvbyBtdWNoXHJcbi8vIGNvbnRlbnQgZm9yIHRoZSB1c2VyJ3Mgdmlld3BvcnQuXHJcblxyXG4ubmF2YmFyLWNvbGxhcHNlIHtcclxuICBvdmVyZmxvdy14OiB2aXNpYmxlO1xyXG4gIHBhZGRpbmctcmlnaHQ6IEBuYXZiYXItcGFkZGluZy1ob3Jpem9udGFsO1xyXG4gIHBhZGRpbmctbGVmdDogIEBuYXZiYXItcGFkZGluZy1ob3Jpem9udGFsO1xyXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcclxuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIHJnYmEoMjU1LDI1NSwyNTUsLjEpO1xyXG4gICY6ZXh0ZW5kKC5jbGVhcmZpeCBhbGwpO1xyXG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcclxuXHJcbiAgJi5pbiB7XHJcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xyXG4gIH1cclxuXHJcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBncmlkLWZsb2F0LWJyZWFrcG9pbnQpIHtcclxuICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgYm9yZGVyLXRvcDogMDtcclxuICAgIGJveC1zaGFkb3c6IG5vbmU7XHJcblxyXG4gICAgJi5jb2xsYXBzZSB7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XHJcbiAgICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xyXG4gICAgICBwYWRkaW5nLWJvdHRvbTogMDsgLy8gT3ZlcnJpZGUgZGVmYXVsdCBzZXR0aW5nXHJcbiAgICAgIG92ZXJmbG93OiB2aXNpYmxlICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgJi5pbiB7XHJcbiAgICAgIG92ZXJmbG93LXk6IHZpc2libGU7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gVW5kbyB0aGUgY29sbGFwc2Ugc2lkZSBwYWRkaW5nIGZvciBuYXZiYXJzIHdpdGggY29udGFpbmVycyB0byBlbnN1cmVcclxuICAgIC8vIGFsaWdubWVudCBvZiByaWdodC1hbGlnbmVkIGNvbnRlbnRzLlxyXG4gICAgLm5hdmJhci1maXhlZC10b3AgJixcclxuICAgIC5uYXZiYXItc3RhdGljLXRvcCAmLFxyXG4gICAgLm5hdmJhci1maXhlZC1ib3R0b20gJiB7XHJcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcclxuICAgICAgcGFkZGluZy1yaWdodDogMDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5uYXZiYXItZml4ZWQtdG9wLFxyXG4ubmF2YmFyLWZpeGVkLWJvdHRvbSB7XHJcbiAgLm5hdmJhci1jb2xsYXBzZSB7XHJcbiAgICBtYXgtaGVpZ2h0OiBAbmF2YmFyLWNvbGxhcHNlLW1heC1oZWlnaHQ7XHJcblxyXG4gICAgQG1lZGlhIChtYXgtZGV2aWNlLXdpZHRoOiBAc2NyZWVuLXhzLW1pbikgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSB7XHJcbiAgICAgIG1heC1oZWlnaHQ6IDIwMHB4O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuXHJcbi8vIEJvdGggbmF2YmFyIGhlYWRlciBhbmQgY29sbGFwc2VcclxuLy9cclxuLy8gV2hlbiBhIGNvbnRhaW5lciBpcyBwcmVzZW50LCBjaGFuZ2UgdGhlIGJlaGF2aW9yIG9mIHRoZSBoZWFkZXIgYW5kIGNvbGxhcHNlLlxyXG5cclxuLmNvbnRhaW5lcixcclxuLmNvbnRhaW5lci1mbHVpZCB7XHJcbiAgPiAubmF2YmFyLWhlYWRlcixcclxuICA+IC5uYXZiYXItY29sbGFwc2Uge1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAtQG5hdmJhci1wYWRkaW5nLWhvcml6b250YWw7XHJcbiAgICBtYXJnaW4tbGVmdDogIC1AbmF2YmFyLXBhZGRpbmctaG9yaXpvbnRhbDtcclxuXHJcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogQGdyaWQtZmxvYXQtYnJlYWtwb2ludCkge1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAgMDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcblxyXG4vL1xyXG4vLyBOYXZiYXIgYWxpZ25tZW50IG9wdGlvbnNcclxuLy9cclxuLy8gRGlzcGxheSB0aGUgbmF2YmFyIGFjcm9zcyB0aGUgZW50aXJldHkgb2YgdGhlIHBhZ2Ugb3IgZml4ZWQgaXQgdG8gdGhlIHRvcCBvclxyXG4vLyBib3R0b20gb2YgdGhlIHBhZ2UuXHJcblxyXG4vLyBTdGF0aWMgdG9wICh1bmZpeGVkLCBidXQgMTAwJSB3aWRlKSBuYXZiYXJcclxuLm5hdmJhci1zdGF0aWMtdG9wIHtcclxuICB6LWluZGV4OiBAemluZGV4LW5hdmJhcjtcclxuICBib3JkZXItd2lkdGg6IDAgMCAxcHg7XHJcblxyXG4gIEBtZWRpYSAobWluLXdpZHRoOiBAZ3JpZC1mbG9hdC1icmVha3BvaW50KSB7XHJcbiAgICBib3JkZXItcmFkaXVzOiAwO1xyXG4gIH1cclxufVxyXG5cclxuLy8gRml4IHRoZSB0b3AvYm90dG9tIG5hdmJhcnMgd2hlbiBzY3JlZW4gcmVhbCBlc3RhdGUgc3VwcG9ydHMgaXRcclxuLm5hdmJhci1maXhlZC10b3AsXHJcbi5uYXZiYXItZml4ZWQtYm90dG9tIHtcclxuICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgbGVmdDogMDtcclxuICB6LWluZGV4OiBAemluZGV4LW5hdmJhci1maXhlZDtcclxuXHJcbiAgLy8gVW5kbyB0aGUgcm91bmRlZCBjb3JuZXJzXHJcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBncmlkLWZsb2F0LWJyZWFrcG9pbnQpIHtcclxuICAgIGJvcmRlci1yYWRpdXM6IDA7XHJcbiAgfVxyXG59XHJcbi5uYXZiYXItZml4ZWQtdG9wIHtcclxuICB0b3A6IDA7XHJcbiAgYm9yZGVyLXdpZHRoOiAwIDAgMXB4O1xyXG59XHJcbi5uYXZiYXItZml4ZWQtYm90dG9tIHtcclxuICBib3R0b206IDA7XHJcbiAgbWFyZ2luLWJvdHRvbTogMDsgLy8gb3ZlcnJpZGUgLm5hdmJhciBkZWZhdWx0c1xyXG4gIGJvcmRlci13aWR0aDogMXB4IDAgMDtcclxufVxyXG5cclxuXHJcbi8vIEJyYW5kL3Byb2plY3QgbmFtZVxyXG5cclxuLm5hdmJhci1icmFuZCB7XHJcbiAgZmxvYXQ6IGxlZnQ7XHJcbiAgcGFkZGluZzogQG5hdmJhci1wYWRkaW5nLXZlcnRpY2FsIEBuYXZiYXItcGFkZGluZy1ob3Jpem9udGFsO1xyXG4gIGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS1sYXJnZTtcclxuICBsaW5lLWhlaWdodDogQGxpbmUtaGVpZ2h0LWNvbXB1dGVkO1xyXG4gIGhlaWdodDogQG5hdmJhci1oZWlnaHQ7XHJcblxyXG4gICY6aG92ZXIsXHJcbiAgJjpmb2N1cyB7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgfVxyXG5cclxuICA+IGltZyB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICB9XHJcblxyXG4gIEBtZWRpYSAobWluLXdpZHRoOiBAZ3JpZC1mbG9hdC1icmVha3BvaW50KSB7XHJcbiAgICAubmF2YmFyID4gLmNvbnRhaW5lciAmLFxyXG4gICAgLm5hdmJhciA+IC5jb250YWluZXItZmx1aWQgJiB7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAtQG5hdmJhci1wYWRkaW5nLWhvcml6b250YWw7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLy8gTmF2YmFyIHRvZ2dsZVxyXG4vL1xyXG4vLyBDdXN0b20gYnV0dG9uIGZvciB0b2dnbGluZyB0aGUgYC5uYXZiYXItY29sbGFwc2VgLCBwb3dlcmVkIGJ5IHRoZSBjb2xsYXBzZVxyXG4vLyBKYXZhU2NyaXB0IHBsdWdpbi5cclxuXHJcbi5uYXZiYXItdG9nZ2xlIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgZmxvYXQ6IHJpZ2h0O1xyXG4gIG1hcmdpbi1yaWdodDogQG5hdmJhci1wYWRkaW5nLWhvcml6b250YWw7XHJcbiAgcGFkZGluZzogOXB4IDEwcHg7XHJcbiAgLm5hdmJhci12ZXJ0aWNhbC1hbGlnbigzNHB4KTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lOyAvLyBSZXNldCB1bnVzdWFsIEZpcmVmb3gtb24tQW5kcm9pZCBkZWZhdWx0IHN0eWxlOyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcy9pc3N1ZXMvMjE0XHJcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XHJcbiAgYm9yZGVyLXJhZGl1czogQGJvcmRlci1yYWRpdXMtYmFzZTtcclxuXHJcbiAgLy8gV2UgcmVtb3ZlIHRoZSBgb3V0bGluZWAgaGVyZSwgYnV0IGxhdGVyIGNvbXBlbnNhdGUgYnkgYXR0YWNoaW5nIGA6aG92ZXJgXHJcbiAgLy8gc3R5bGVzIHRvIGA6Zm9jdXNgLlxyXG4gICY6Zm9jdXMge1xyXG4gICAgb3V0bGluZTogMDtcclxuICB9XHJcblxyXG4gIC8vIEJhcnNcclxuICAuaWNvbi1iYXIge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB3aWR0aDogMjJweDtcclxuICAgIGhlaWdodDogMnB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogMXB4O1xyXG4gIH1cclxuICAuaWNvbi1iYXIgKyAuaWNvbi1iYXIge1xyXG4gICAgbWFyZ2luLXRvcDogNHB4O1xyXG4gIH1cclxuXHJcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBncmlkLWZsb2F0LWJyZWFrcG9pbnQpIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLy8gTmF2YmFyIG5hdiBsaW5rc1xyXG4vL1xyXG4vLyBCdWlsZHMgb24gdG9wIG9mIHRoZSBgLm5hdmAgY29tcG9uZW50cyB3aXRoIGl0cyBvd24gbW9kaWZpZXIgY2xhc3MgdG8gbWFrZVxyXG4vLyB0aGUgbmF2IHRoZSBmdWxsIGhlaWdodCBvZiB0aGUgaG9yaXpvbnRhbCBuYXYgKGFib3ZlIDc2OHB4KS5cclxuXHJcbi5uYXZiYXItbmF2IHtcclxuICBtYXJnaW46IChAbmF2YmFyLXBhZGRpbmctdmVydGljYWwgLyAyKSAtQG5hdmJhci1wYWRkaW5nLWhvcml6b250YWw7XHJcblxyXG4gID4gbGkgPiBhIHtcclxuICAgIHBhZGRpbmctdG9wOiAgICAxMHB4O1xyXG4gICAgcGFkZGluZy1ib3R0b206IDEwcHg7XHJcbiAgICBsaW5lLWhlaWdodDogQGxpbmUtaGVpZ2h0LWNvbXB1dGVkO1xyXG4gIH1cclxuXHJcbiAgQG1lZGlhIChtYXgtd2lkdGg6IEBncmlkLWZsb2F0LWJyZWFrcG9pbnQtbWF4KSB7XHJcbiAgICAvLyBEcm9wZG93bnMgZ2V0IGN1c3RvbSBkaXNwbGF5IHdoZW4gY29sbGFwc2VkXHJcbiAgICAub3BlbiAuZHJvcGRvd24tbWVudSB7XHJcbiAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XHJcbiAgICAgIGZsb2F0OiBub25lO1xyXG4gICAgICB3aWR0aDogYXV0bztcclxuICAgICAgbWFyZ2luLXRvcDogMDtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICAgIGJvcmRlcjogMDtcclxuICAgICAgYm94LXNoYWRvdzogbm9uZTtcclxuICAgICAgPiBsaSA+IGEsXHJcbiAgICAgIC5kcm9wZG93bi1oZWFkZXIge1xyXG4gICAgICAgIHBhZGRpbmc6IDVweCAxNXB4IDVweCAyNXB4O1xyXG4gICAgICB9XHJcbiAgICAgID4gbGkgPiBhIHtcclxuICAgICAgICBsaW5lLWhlaWdodDogQGxpbmUtaGVpZ2h0LWNvbXB1dGVkO1xyXG4gICAgICAgICY6aG92ZXIsXHJcbiAgICAgICAgJjpmb2N1cyB7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gVW5jb2xsYXBzZSB0aGUgbmF2XHJcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBncmlkLWZsb2F0LWJyZWFrcG9pbnQpIHtcclxuICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgbWFyZ2luOiAwO1xyXG5cclxuICAgID4gbGkge1xyXG4gICAgICBmbG9hdDogbGVmdDtcclxuICAgICAgPiBhIHtcclxuICAgICAgICBwYWRkaW5nLXRvcDogICAgQG5hdmJhci1wYWRkaW5nLXZlcnRpY2FsO1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBAbmF2YmFyLXBhZGRpbmctdmVydGljYWw7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcblxyXG4vLyBOYXZiYXIgZm9ybVxyXG4vL1xyXG4vLyBFeHRlbnNpb24gb2YgdGhlIGAuZm9ybS1pbmxpbmVgIHdpdGggc29tZSBleHRyYSBmbGF2b3IgZm9yIG9wdGltdW0gZGlzcGxheSBpblxyXG4vLyBvdXIgbmF2YmFycy5cclxuXHJcbi5uYXZiYXItZm9ybSB7XHJcbiAgbWFyZ2luLWxlZnQ6IC1AbmF2YmFyLXBhZGRpbmctaG9yaXpvbnRhbDtcclxuICBtYXJnaW4tcmlnaHQ6IC1AbmF2YmFyLXBhZGRpbmctaG9yaXpvbnRhbDtcclxuICBwYWRkaW5nOiAxMHB4IEBuYXZiYXItcGFkZGluZy1ob3Jpem9udGFsO1xyXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcclxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XHJcbiAgQHNoYWRvdzogaW5zZXQgMCAxcHggMCByZ2JhKDI1NSwyNTUsMjU1LC4xKSwgMCAxcHggMCByZ2JhKDI1NSwyNTUsMjU1LC4xKTtcclxuICAuYm94LXNoYWRvdyhAc2hhZG93KTtcclxuXHJcbiAgLy8gTWl4aW4gYmVoYXZpb3IgZm9yIG9wdGltdW0gZGlzcGxheVxyXG4gIC5mb3JtLWlubGluZSgpO1xyXG5cclxuICAuZm9ybS1ncm91cCB7XHJcbiAgICBAbWVkaWEgKG1heC13aWR0aDogQGdyaWQtZmxvYXQtYnJlYWtwb2ludC1tYXgpIHtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG5cclxuICAgICAgJjpsYXN0LWNoaWxkIHtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBWZXJ0aWNhbGx5IGNlbnRlciBpbiBleHBhbmRlZCwgaG9yaXpvbnRhbCBuYXZiYXJcclxuICAubmF2YmFyLXZlcnRpY2FsLWFsaWduKEBpbnB1dC1oZWlnaHQtYmFzZSk7XHJcblxyXG4gIC8vIFVuZG8gMTAwJSB3aWR0aCBmb3IgcHVsbCBjbGFzc2VzXHJcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBncmlkLWZsb2F0LWJyZWFrcG9pbnQpIHtcclxuICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgYm9yZGVyOiAwO1xyXG4gICAgbWFyZ2luLWxlZnQ6IDA7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XHJcbiAgICBwYWRkaW5nLXRvcDogMDtcclxuICAgIHBhZGRpbmctYm90dG9tOiAwO1xyXG4gICAgLmJveC1zaGFkb3cobm9uZSk7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLy8gRHJvcGRvd24gbWVudXNcclxuXHJcbi8vIE1lbnUgcG9zaXRpb24gYW5kIG1lbnUgY2FyZXRzXHJcbi5uYXZiYXItbmF2ID4gbGkgPiAuZHJvcGRvd24tbWVudSB7XHJcbiAgbWFyZ2luLXRvcDogMDtcclxuICAuYm9yZGVyLXRvcC1yYWRpdXMoMCk7XHJcbn1cclxuLy8gTWVudSBwb3NpdGlvbiBhbmQgbWVudSBjYXJldCBzdXBwb3J0IGZvciBkcm9wdXBzIHZpYSBleHRyYSBkcm9wdXAgY2xhc3NcclxuLm5hdmJhci1maXhlZC1ib3R0b20gLm5hdmJhci1uYXYgPiBsaSA+IC5kcm9wZG93bi1tZW51IHtcclxuICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gIC5ib3JkZXItdG9wLXJhZGl1cyhAbmF2YmFyLWJvcmRlci1yYWRpdXMpO1xyXG4gIC5ib3JkZXItYm90dG9tLXJhZGl1cygwKTtcclxufVxyXG5cclxuXHJcbi8vIEJ1dHRvbnMgaW4gbmF2YmFyc1xyXG4vL1xyXG4vLyBWZXJ0aWNhbGx5IGNlbnRlciBhIGJ1dHRvbiB3aXRoaW4gYSBuYXZiYXIgKHdoZW4gKm5vdCogaW4gYSBmb3JtKS5cclxuXHJcbi5uYXZiYXItYnRuIHtcclxuICAubmF2YmFyLXZlcnRpY2FsLWFsaWduKEBpbnB1dC1oZWlnaHQtYmFzZSk7XHJcblxyXG4gICYuYnRuLXNtIHtcclxuICAgIC5uYXZiYXItdmVydGljYWwtYWxpZ24oQGlucHV0LWhlaWdodC1zbWFsbCk7XHJcbiAgfVxyXG4gICYuYnRuLXhzIHtcclxuICAgIC5uYXZiYXItdmVydGljYWwtYWxpZ24oMjIpO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbi8vIFRleHQgaW4gbmF2YmFyc1xyXG4vL1xyXG4vLyBBZGQgYSBjbGFzcyB0byBtYWtlIGFueSBlbGVtZW50IHByb3Blcmx5IGFsaWduIGl0c2VsZiB2ZXJ0aWNhbGx5IHdpdGhpbiB0aGUgbmF2YmFycy5cclxuXHJcbi5uYXZiYXItdGV4dCB7XHJcbiAgLm5hdmJhci12ZXJ0aWNhbC1hbGlnbihAbGluZS1oZWlnaHQtY29tcHV0ZWQpO1xyXG5cclxuICBAbWVkaWEgKG1pbi13aWR0aDogQGdyaWQtZmxvYXQtYnJlYWtwb2ludCkge1xyXG4gICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICBtYXJnaW4tbGVmdDogQG5hdmJhci1wYWRkaW5nLWhvcml6b250YWw7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IEBuYXZiYXItcGFkZGluZy1ob3Jpem9udGFsO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbi8vIENvbXBvbmVudCBhbGlnbm1lbnRcclxuLy9cclxuLy8gUmVwdXJwb3NlIHRoZSBwdWxsIHV0aWxpdGllcyBhcyB0aGVpciBvd24gbmF2YmFyIHV0aWxpdGllcyB0byBhdm9pZCBzcGVjaWZpY2l0eVxyXG4vLyBpc3N1ZXMgd2l0aCBwYXJlbnRzIGFuZCBjaGFpbmluZy4gT25seSBkbyB0aGlzIHdoZW4gdGhlIG5hdmJhciBpcyB1bmNvbGxhcHNlZFxyXG4vLyB0aG91Z2ggc28gdGhhdCBuYXZiYXIgY29udGVudHMgcHJvcGVybHkgc3RhY2sgYW5kIGFsaWduIGluIG1vYmlsZS5cclxuLy9cclxuLy8gRGVjbGFyZWQgYWZ0ZXIgdGhlIG5hdmJhciBjb21wb25lbnRzIHRvIGVuc3VyZSBtb3JlIHNwZWNpZmljaXR5IG9uIHRoZSBtYXJnaW5zLlxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IEBncmlkLWZsb2F0LWJyZWFrcG9pbnQpIHtcclxuICAubmF2YmFyLWxlZnQgIHsgLnB1bGwtbGVmdCgpOyB9XHJcbiAgLm5hdmJhci1yaWdodCB7XHJcbiAgICAucHVsbC1yaWdodCgpO1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAtQG5hdmJhci1wYWRkaW5nLWhvcml6b250YWw7XHJcblxyXG4gICAgfiAubmF2YmFyLXJpZ2h0IHtcclxuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuXHJcbi8vIEFsdGVybmF0ZSBuYXZiYXJzXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4vLyBEZWZhdWx0IG5hdmJhclxyXG4ubmF2YmFyLWRlZmF1bHQge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IEBuYXZiYXItZGVmYXVsdC1iZztcclxuICBib3JkZXItY29sb3I6IEBuYXZiYXItZGVmYXVsdC1ib3JkZXI7XHJcblxyXG4gIC5uYXZiYXItYnJhbmQge1xyXG4gICAgY29sb3I6IEBuYXZiYXItZGVmYXVsdC1icmFuZC1jb2xvcjtcclxuICAgICY6aG92ZXIsXHJcbiAgICAmOmZvY3VzIHtcclxuICAgICAgY29sb3I6IEBuYXZiYXItZGVmYXVsdC1icmFuZC1ob3Zlci1jb2xvcjtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogQG5hdmJhci1kZWZhdWx0LWJyYW5kLWhvdmVyLWJnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLm5hdmJhci10ZXh0IHtcclxuICAgIGNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtY29sb3I7XHJcbiAgfVxyXG5cclxuICAubmF2YmFyLW5hdiB7XHJcbiAgICA+IGxpID4gYSB7XHJcbiAgICAgIGNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtbGluay1jb2xvcjtcclxuXHJcbiAgICAgICY6aG92ZXIsXHJcbiAgICAgICY6Zm9jdXMge1xyXG4gICAgICAgIGNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtbGluay1ob3Zlci1jb2xvcjtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtbGluay1ob3Zlci1iZztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgPiAuYWN0aXZlID4gYSB7XHJcbiAgICAgICYsXHJcbiAgICAgICY6aG92ZXIsXHJcbiAgICAgICY6Zm9jdXMge1xyXG4gICAgICAgIGNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtbGluay1hY3RpdmUtY29sb3I7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQG5hdmJhci1kZWZhdWx0LWxpbmstYWN0aXZlLWJnO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICA+IC5kaXNhYmxlZCA+IGEge1xyXG4gICAgICAmLFxyXG4gICAgICAmOmhvdmVyLFxyXG4gICAgICAmOmZvY3VzIHtcclxuICAgICAgICBjb2xvcjogQG5hdmJhci1kZWZhdWx0LWxpbmstZGlzYWJsZWQtY29sb3I7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQG5hdmJhci1kZWZhdWx0LWxpbmstZGlzYWJsZWQtYmc7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5uYXZiYXItdG9nZ2xlIHtcclxuICAgIGJvcmRlci1jb2xvcjogQG5hdmJhci1kZWZhdWx0LXRvZ2dsZS1ib3JkZXItY29sb3I7XHJcbiAgICAmOmhvdmVyLFxyXG4gICAgJjpmb2N1cyB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IEBuYXZiYXItZGVmYXVsdC10b2dnbGUtaG92ZXItYmc7XHJcbiAgICB9XHJcbiAgICAuaWNvbi1iYXIge1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtdG9nZ2xlLWljb24tYmFyLWJnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLm5hdmJhci1jb2xsYXBzZSxcclxuICAubmF2YmFyLWZvcm0ge1xyXG4gICAgYm9yZGVyLWNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtYm9yZGVyO1xyXG4gIH1cclxuXHJcbiAgLy8gRHJvcGRvd24gbWVudSBpdGVtc1xyXG4gIC5uYXZiYXItbmF2IHtcclxuICAgIC8vIFJlbW92ZSBiYWNrZ3JvdW5kIGNvbG9yIGZyb20gb3BlbiBkcm9wZG93blxyXG4gICAgPiAub3BlbiA+IGEge1xyXG4gICAgICAmLFxyXG4gICAgICAmOmhvdmVyLFxyXG4gICAgICAmOmZvY3VzIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtbGluay1hY3RpdmUtYmc7XHJcbiAgICAgICAgY29sb3I6IEBuYXZiYXItZGVmYXVsdC1saW5rLWFjdGl2ZS1jb2xvcjtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiBAZ3JpZC1mbG9hdC1icmVha3BvaW50LW1heCkge1xyXG4gICAgICAvLyBEcm9wZG93bnMgZ2V0IGN1c3RvbSBkaXNwbGF5IHdoZW4gY29sbGFwc2VkXHJcbiAgICAgIC5vcGVuIC5kcm9wZG93bi1tZW51IHtcclxuICAgICAgICA+IGxpID4gYSB7XHJcbiAgICAgICAgICBjb2xvcjogQG5hdmJhci1kZWZhdWx0LWxpbmstY29sb3I7XHJcbiAgICAgICAgICAmOmhvdmVyLFxyXG4gICAgICAgICAgJjpmb2N1cyB7XHJcbiAgICAgICAgICAgIGNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtbGluay1ob3Zlci1jb2xvcjtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQG5hdmJhci1kZWZhdWx0LWxpbmstaG92ZXItYmc7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgID4gLmFjdGl2ZSA+IGEge1xyXG4gICAgICAgICAgJixcclxuICAgICAgICAgICY6aG92ZXIsXHJcbiAgICAgICAgICAmOmZvY3VzIHtcclxuICAgICAgICAgICAgY29sb3I6IEBuYXZiYXItZGVmYXVsdC1saW5rLWFjdGl2ZS1jb2xvcjtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQG5hdmJhci1kZWZhdWx0LWxpbmstYWN0aXZlLWJnO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICA+IC5kaXNhYmxlZCA+IGEge1xyXG4gICAgICAgICAgJixcclxuICAgICAgICAgICY6aG92ZXIsXHJcbiAgICAgICAgICAmOmZvY3VzIHtcclxuICAgICAgICAgICAgY29sb3I6IEBuYXZiYXItZGVmYXVsdC1saW5rLWRpc2FibGVkLWNvbG9yO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtbGluay1kaXNhYmxlZC1iZztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICAvLyBMaW5rcyBpbiBuYXZiYXJzXHJcbiAgLy9cclxuICAvLyBBZGQgYSBjbGFzcyB0byBlbnN1cmUgbGlua3Mgb3V0c2lkZSB0aGUgbmF2YmFyIG5hdiBhcmUgY29sb3JlZCBjb3JyZWN0bHkuXHJcblxyXG4gIC5uYXZiYXItbGluayB7XHJcbiAgICBjb2xvcjogQG5hdmJhci1kZWZhdWx0LWxpbmstY29sb3I7XHJcbiAgICAmOmhvdmVyIHtcclxuICAgICAgY29sb3I6IEBuYXZiYXItZGVmYXVsdC1saW5rLWhvdmVyLWNvbG9yO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmJ0bi1saW5rIHtcclxuICAgIGNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtbGluay1jb2xvcjtcclxuICAgICY6aG92ZXIsXHJcbiAgICAmOmZvY3VzIHtcclxuICAgICAgY29sb3I6IEBuYXZiYXItZGVmYXVsdC1saW5rLWhvdmVyLWNvbG9yO1xyXG4gICAgfVxyXG4gICAgJltkaXNhYmxlZF0sXHJcbiAgICBmaWVsZHNldFtkaXNhYmxlZF0gJiB7XHJcbiAgICAgICY6aG92ZXIsXHJcbiAgICAgICY6Zm9jdXMge1xyXG4gICAgICAgIGNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtbGluay1kaXNhYmxlZC1jb2xvcjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLy8gSW52ZXJzZSBuYXZiYXJcclxuXHJcbi5uYXZiYXItaW52ZXJzZSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogQG5hdmJhci1pbnZlcnNlLWJnO1xyXG4gIGJvcmRlci1jb2xvcjogQG5hdmJhci1pbnZlcnNlLWJvcmRlcjtcclxuXHJcbiAgLm5hdmJhci1icmFuZCB7XHJcbiAgICBjb2xvcjogQG5hdmJhci1pbnZlcnNlLWJyYW5kLWNvbG9yO1xyXG4gICAgJjpob3ZlcixcclxuICAgICY6Zm9jdXMge1xyXG4gICAgICBjb2xvcjogQG5hdmJhci1pbnZlcnNlLWJyYW5kLWhvdmVyLWNvbG9yO1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmF2YmFyLWludmVyc2UtYnJhbmQtaG92ZXItYmc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAubmF2YmFyLXRleHQge1xyXG4gICAgY29sb3I6IEBuYXZiYXItaW52ZXJzZS1jb2xvcjtcclxuICB9XHJcblxyXG4gIC5uYXZiYXItbmF2IHtcclxuICAgID4gbGkgPiBhIHtcclxuICAgICAgY29sb3I6IEBuYXZiYXItaW52ZXJzZS1saW5rLWNvbG9yO1xyXG5cclxuICAgICAgJjpob3ZlcixcclxuICAgICAgJjpmb2N1cyB7XHJcbiAgICAgICAgY29sb3I6IEBuYXZiYXItaW52ZXJzZS1saW5rLWhvdmVyLWNvbG9yO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBuYXZiYXItaW52ZXJzZS1saW5rLWhvdmVyLWJnO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICA+IC5hY3RpdmUgPiBhIHtcclxuICAgICAgJixcclxuICAgICAgJjpob3ZlcixcclxuICAgICAgJjpmb2N1cyB7XHJcbiAgICAgICAgY29sb3I6IEBuYXZiYXItaW52ZXJzZS1saW5rLWFjdGl2ZS1jb2xvcjtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmF2YmFyLWludmVyc2UtbGluay1hY3RpdmUtYmc7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgID4gLmRpc2FibGVkID4gYSB7XHJcbiAgICAgICYsXHJcbiAgICAgICY6aG92ZXIsXHJcbiAgICAgICY6Zm9jdXMge1xyXG4gICAgICAgIGNvbG9yOiBAbmF2YmFyLWludmVyc2UtbGluay1kaXNhYmxlZC1jb2xvcjtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmF2YmFyLWludmVyc2UtbGluay1kaXNhYmxlZC1iZztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gRGFya2VuIHRoZSByZXNwb25zaXZlIG5hdiB0b2dnbGVcclxuICAubmF2YmFyLXRvZ2dsZSB7XHJcbiAgICBib3JkZXItY29sb3I6IEBuYXZiYXItaW52ZXJzZS10b2dnbGUtYm9yZGVyLWNvbG9yO1xyXG4gICAgJjpob3ZlcixcclxuICAgICY6Zm9jdXMge1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmF2YmFyLWludmVyc2UtdG9nZ2xlLWhvdmVyLWJnO1xyXG4gICAgfVxyXG4gICAgLmljb24tYmFyIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogQG5hdmJhci1pbnZlcnNlLXRvZ2dsZS1pY29uLWJhci1iZztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5uYXZiYXItY29sbGFwc2UsXHJcbiAgLm5hdmJhci1mb3JtIHtcclxuICAgIGJvcmRlci1jb2xvcjogZGFya2VuKEBuYXZiYXItaW52ZXJzZS1iZywgNyUpO1xyXG4gIH1cclxuXHJcbiAgLy8gRHJvcGRvd25zXHJcbiAgLm5hdmJhci1uYXYge1xyXG4gICAgPiAub3BlbiA+IGEge1xyXG4gICAgICAmLFxyXG4gICAgICAmOmhvdmVyLFxyXG4gICAgICAmOmZvY3VzIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmF2YmFyLWludmVyc2UtbGluay1hY3RpdmUtYmc7XHJcbiAgICAgICAgY29sb3I6IEBuYXZiYXItaW52ZXJzZS1saW5rLWFjdGl2ZS1jb2xvcjtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiBAZ3JpZC1mbG9hdC1icmVha3BvaW50LW1heCkge1xyXG4gICAgICAvLyBEcm9wZG93bnMgZ2V0IGN1c3RvbSBkaXNwbGF5XHJcbiAgICAgIC5vcGVuIC5kcm9wZG93bi1tZW51IHtcclxuICAgICAgICA+IC5kcm9wZG93bi1oZWFkZXIge1xyXG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiBAbmF2YmFyLWludmVyc2UtYm9yZGVyO1xyXG4gICAgICAgIH1cclxuICAgICAgICAuZGl2aWRlciB7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmF2YmFyLWludmVyc2UtYm9yZGVyO1xyXG4gICAgICAgIH1cclxuICAgICAgICA+IGxpID4gYSB7XHJcbiAgICAgICAgICBjb2xvcjogQG5hdmJhci1pbnZlcnNlLWxpbmstY29sb3I7XHJcbiAgICAgICAgICAmOmhvdmVyLFxyXG4gICAgICAgICAgJjpmb2N1cyB7XHJcbiAgICAgICAgICAgIGNvbG9yOiBAbmF2YmFyLWludmVyc2UtbGluay1ob3Zlci1jb2xvcjtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQG5hdmJhci1pbnZlcnNlLWxpbmstaG92ZXItYmc7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgID4gLmFjdGl2ZSA+IGEge1xyXG4gICAgICAgICAgJixcclxuICAgICAgICAgICY6aG92ZXIsXHJcbiAgICAgICAgICAmOmZvY3VzIHtcclxuICAgICAgICAgICAgY29sb3I6IEBuYXZiYXItaW52ZXJzZS1saW5rLWFjdGl2ZS1jb2xvcjtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQG5hdmJhci1pbnZlcnNlLWxpbmstYWN0aXZlLWJnO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICA+IC5kaXNhYmxlZCA+IGEge1xyXG4gICAgICAgICAgJixcclxuICAgICAgICAgICY6aG92ZXIsXHJcbiAgICAgICAgICAmOmZvY3VzIHtcclxuICAgICAgICAgICAgY29sb3I6IEBuYXZiYXItaW52ZXJzZS1saW5rLWRpc2FibGVkLWNvbG9yO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmF2YmFyLWludmVyc2UtbGluay1kaXNhYmxlZC1iZztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5uYXZiYXItbGluayB7XHJcbiAgICBjb2xvcjogQG5hdmJhci1pbnZlcnNlLWxpbmstY29sb3I7XHJcbiAgICAmOmhvdmVyIHtcclxuICAgICAgY29sb3I6IEBuYXZiYXItaW52ZXJzZS1saW5rLWhvdmVyLWNvbG9yO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmJ0bi1saW5rIHtcclxuICAgIGNvbG9yOiBAbmF2YmFyLWludmVyc2UtbGluay1jb2xvcjtcclxuICAgICY6aG92ZXIsXHJcbiAgICAmOmZvY3VzIHtcclxuICAgICAgY29sb3I6IEBuYXZiYXItaW52ZXJzZS1saW5rLWhvdmVyLWNvbG9yO1xyXG4gICAgfVxyXG4gICAgJltkaXNhYmxlZF0sXHJcbiAgICBmaWVsZHNldFtkaXNhYmxlZF0gJiB7XHJcbiAgICAgICY6aG92ZXIsXHJcbiAgICAgICY6Zm9jdXMge1xyXG4gICAgICAgIGNvbG9yOiBAbmF2YmFyLWludmVyc2UtbGluay1kaXNhYmxlZC1jb2xvcjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIuZm9udC10YWhvbWEge1xyXG4gIGZvbnQtZmFtaWx5OiBUYWhvbWEsVmVyZGFuYSxTZWdvZSxzYW5zLXNlcmlmO1xyXG59XHJcblxyXG4uZm9udC1wdC1zYW5zIHtcclxuICBmb250LWZhbWlseTogJ1BUIFNhbnMnLCBzYW5zLXNlcmlmO1xyXG59IiwiQGltcG9ydCBcInZhcmlhYmxlc1wiO1xyXG5AaW1wb3J0IFwiZm9udHNcIjtcclxuXHJcbkBiYWRnZS1hZy10ZXh0LWNvbG9yOiBAY29sb3ItYmxhY2sxMTtcclxuQGJhZGdlLWF1LXRleHQtY29sb3I6IEBjb2xvci1ibGFjazExO1xyXG5AYmFkZ2UtYnJ6bi10ZXh0LWNvbG9yOiBAY29sb3ItYmxhY2sxMTtcclxuXHJcbi5iYWRnZSB7XHJcbiAgJi5iYWRnZS1lbGl0ZSB7XHJcbiAgICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWFnZXMvYmFkZ2VzL2JhZGdlLWVsaXRlLnBuZ1wiKSBsZWZ0IHRvcCBuby1yZXBlYXQ7XHJcbiAgICBib3JkZXItcmFkaXVzOiAwO1xyXG4gICAgd2lkdGg6IDY0cHg7XHJcbiAgICBoZWlnaHQ6IDE3cHg7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcclxuICB9XHJcbiAgJi5iYWRnZS1wbGF0aW51bSB7XHJcbiAgICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWFnZXMvYmFkZ2VzL2JhZGdlLXBsYXRpbnVtLnBuZ1wiKSBsZWZ0IHRvcCBuby1yZXBlYXQ7XHJcbiAgICBib3JkZXItcmFkaXVzOiAwO1xyXG4gICAgd2lkdGg6IDg5cHg7XHJcbiAgICBoZWlnaHQ6IDE3cHg7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcclxuICB9XHJcbiAgJi5iYWRnZS1nb2xkIHtcclxuICAgIGJhY2tncm91bmQ6IHVybChcIi4uL2ltYWdlcy9iYWRnZXMvYmFkZ2UtZ29sZC5wbmdcIikgbGVmdCB0b3Agbm8tcmVwZWF0O1xyXG4gICAgYm9yZGVyLXJhZGl1czogMDtcclxuICAgIHdpZHRoOiA2NXB4O1xyXG4gICAgaGVpZ2h0OiAxN3B4O1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7XHJcbiAgfVxyXG4gICYuYmFkZ2UtbW9iaWxlIHtcclxuICAgIGJhY2tncm91bmQ6IHVybChcIi4uL2ltYWdlcy9iYWRnZXMvYmFkZ2UtbW9iaWxlLnBuZ1wiKSBsZWZ0IHRvcCBuby1yZXBlYXQ7XHJcbiAgICBib3JkZXItcmFkaXVzOiAwO1xyXG4gICAgd2lkdGg6IDEzMnB4O1xyXG4gICAgaGVpZ2h0OiAxN3B4O1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7XHJcbiAgfVxyXG4gICYuYmFkZ2UtYWctdGV4dCxcclxuICAmLmJhZGdlLWF1LXRleHQsXHJcbiAgJi5iYWRnZS1icm56LXRleHQge1xyXG4gICAgLmZvbnQtdGFob21hKCk7XHJcbiAgICBjb2xvcjogQGJhZGdlLWFnLXRleHQtY29sb3I7XHJcbiAgICBmb250LXNpemU6IDEzcHg7XHJcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XHJcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gICAgcGFkZGluZy10b3A6IDJweDtcclxuICAgIHBhZGRpbmctYm90dG9tOiAycHg7XHJcbiAgfVxyXG4gIFxyXG4gICYuYmFkZ2UtYWctdGV4dCB7XHJcbiAgICAvKiBQZXJtYWxpbmsgLSB1c2UgdG8gZWRpdCBhbmQgc2hhcmUgdGhpcyBncmFkaWVudDogaHR0cDovL2NvbG9yemlsbGEuY29tL2dyYWRpZW50LWVkaXRvci8jZGFkYWRhKzAsZjdmN2Y3KzM5LGNiY2JjYis3MyxlMWUxZTErMTAwICovXHJcbiAgICBiYWNrZ3JvdW5kOiAjZGFkYWRhOyAvKiBPbGQgYnJvd3NlcnMgKi9cclxuICAgIC8qIElFOSBTVkcsIG5lZWRzIGNvbmRpdGlvbmFsIG92ZXJyaWRlIG9mICdmaWx0ZXInIHRvICdub25lJyAqL1xyXG4gICAgYmFja2dyb3VuZDogdXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWlBL1BnbzhjM1puSUhodGJHNXpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBd0wzTjJaeUlnZDJsa2RHZzlJakV3TUNVaUlHaGxhV2RvZEQwaU1UQXdKU0lnZG1sbGQwSnZlRDBpTUNBd0lERWdNU0lnY0hKbGMyVnlkbVZCYzNCbFkzUlNZWFJwYnowaWJtOXVaU0krQ2lBZ1BHeHBibVZoY2tkeVlXUnBaVzUwSUdsa1BTSm5jbUZrTFhWaloyY3RaMlZ1WlhKaGRHVmtJaUJuY21Ga2FXVnVkRlZ1YVhSelBTSjFjMlZ5VTNCaFkyVlBibFZ6WlNJZ2VERTlJakFsSWlCNU1UMGlNQ1VpSUhneVBTSXhNREFsSWlCNU1qMGlNQ1VpUGdvZ0lDQWdQSE4wYjNBZ2IyWm1jMlYwUFNJd0pTSWdjM1J2Y0MxamIyeHZjajBpSTJSaFpHRmtZU0lnYzNSdmNDMXZjR0ZqYVhSNVBTSXhJaTgrQ2lBZ0lDQThjM1J2Y0NCdlptWnpaWFE5SWpNNUpTSWdjM1J2Y0MxamIyeHZjajBpSTJZM1pqZG1OeUlnYzNSdmNDMXZjR0ZqYVhSNVBTSXhJaTgrQ2lBZ0lDQThjM1J2Y0NCdlptWnpaWFE5SWpjekpTSWdjM1J2Y0MxamIyeHZjajBpSTJOaVkySmpZaUlnYzNSdmNDMXZjR0ZqYVhSNVBTSXhJaTgrQ2lBZ0lDQThjM1J2Y0NCdlptWnpaWFE5SWpFd01DVWlJSE4wYjNBdFkyOXNiM0k5SWlObE1XVXhaVEVpSUhOMGIzQXRiM0JoWTJsMGVUMGlNU0l2UGdvZ0lEd3ZiR2x1WldGeVIzSmhaR2xsYm5RK0NpQWdQSEpsWTNRZ2VEMGlNQ0lnZVQwaU1DSWdkMmxrZEdnOUlqRWlJR2hsYVdkb2REMGlNU0lnWm1sc2JEMGlkWEpzS0NObmNtRmtMWFZqWjJjdFoyVnVaWEpoZEdWa0tTSWdMejRLUEM5emRtYyspO1xyXG4gICAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQobGVmdCwgICNkYWRhZGEgMCUsICNmN2Y3ZjcgMzklLCAjY2JjYmNiIDczJSwgI2UxZTFlMSAxMDAlKTsgLyogRkYzLjYrICovXHJcbiAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIHJpZ2h0IHRvcCwgY29sb3Itc3RvcCgwJSwjZGFkYWRhKSwgY29sb3Itc3RvcCgzOSUsI2Y3ZjdmNyksIGNvbG9yLXN0b3AoNzMlLCNjYmNiY2IpLCBjb2xvci1zdG9wKDEwMCUsI2UxZTFlMSkpOyAvKiBDaHJvbWUsU2FmYXJpNCsgKi9cclxuICAgIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZnQsICAjZGFkYWRhIDAlLCNmN2Y3ZjcgMzklLCNjYmNiY2IgNzMlLCNlMWUxZTEgMTAwJSk7IC8qIENocm9tZTEwKyxTYWZhcmk1LjErICovXHJcbiAgICBiYWNrZ3JvdW5kOiAtby1saW5lYXItZ3JhZGllbnQobGVmdCwgICNkYWRhZGEgMCUsI2Y3ZjdmNyAzOSUsI2NiY2JjYiA3MyUsI2UxZTFlMSAxMDAlKTsgLyogT3BlcmEgMTEuMTArICovXHJcbiAgICBiYWNrZ3JvdW5kOiAtbXMtbGluZWFyLWdyYWRpZW50KGxlZnQsICAjZGFkYWRhIDAlLCNmN2Y3ZjcgMzklLCNjYmNiY2IgNzMlLCNlMWUxZTEgMTAwJSk7IC8qIElFMTArICovXHJcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICAjZGFkYWRhIDAlLCNmN2Y3ZjcgMzklLCNjYmNiY2IgNzMlLCNlMWUxZTEgMTAwJSk7IC8qIFczQyAqL1xyXG4gICAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoIHN0YXJ0Q29sb3JzdHI9JyNkYWRhZGEnLCBlbmRDb2xvcnN0cj0nI2UxZTFlMScsR3JhZGllbnRUeXBlPTEgKTsgLyogSUU2LTggKi9cclxuICB9XHJcbiAgJi5iYWRnZS1hdS10ZXh0IHtcclxuICAgIC8qIFBlcm1hbGluayAtIHVzZSB0byBlZGl0IGFuZCBzaGFyZSB0aGlzIGdyYWRpZW50OiBodHRwOi8vY29sb3J6aWxsYS5jb20vZ3JhZGllbnQtZWRpdG9yLyNkOWE4NDkrMCxmZmVmYTYrMzAsZmFmMzdlKzUwLGUwYzk1ZSs3NyxmZmRiMzErMTAwICovXHJcbiAgICBiYWNrZ3JvdW5kOiAjZDlhODQ5OyAvKiBPbGQgYnJvd3NlcnMgKi9cclxuICAgIC8qIElFOSBTVkcsIG5lZWRzIGNvbmRpdGlvbmFsIG92ZXJyaWRlIG9mICdmaWx0ZXInIHRvICdub25lJyAqL1xyXG4gICAgYmFja2dyb3VuZDogdXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWlBL1BnbzhjM1puSUhodGJHNXpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBd0wzTjJaeUlnZDJsa2RHZzlJakV3TUNVaUlHaGxhV2RvZEQwaU1UQXdKU0lnZG1sbGQwSnZlRDBpTUNBd0lERWdNU0lnY0hKbGMyVnlkbVZCYzNCbFkzUlNZWFJwYnowaWJtOXVaU0krQ2lBZ1BHeHBibVZoY2tkeVlXUnBaVzUwSUdsa1BTSm5jbUZrTFhWaloyY3RaMlZ1WlhKaGRHVmtJaUJuY21Ga2FXVnVkRlZ1YVhSelBTSjFjMlZ5VTNCaFkyVlBibFZ6WlNJZ2VERTlJakFsSWlCNU1UMGlNQ1VpSUhneVBTSXhNREFsSWlCNU1qMGlNQ1VpUGdvZ0lDQWdQSE4wYjNBZ2IyWm1jMlYwUFNJd0pTSWdjM1J2Y0MxamIyeHZjajBpSTJRNVlUZzBPU0lnYzNSdmNDMXZjR0ZqYVhSNVBTSXhJaTgrQ2lBZ0lDQThjM1J2Y0NCdlptWnpaWFE5SWpNd0pTSWdjM1J2Y0MxamIyeHZjajBpSTJabVpXWmhOaUlnYzNSdmNDMXZjR0ZqYVhSNVBTSXhJaTgrQ2lBZ0lDQThjM1J2Y0NCdlptWnpaWFE5SWpVd0pTSWdjM1J2Y0MxamIyeHZjajBpSTJaaFpqTTNaU0lnYzNSdmNDMXZjR0ZqYVhSNVBTSXhJaTgrQ2lBZ0lDQThjM1J2Y0NCdlptWnpaWFE5SWpjM0pTSWdjM1J2Y0MxamIyeHZjajBpSTJVd1l6azFaU0lnYzNSdmNDMXZjR0ZqYVhSNVBTSXhJaTgrQ2lBZ0lDQThjM1J2Y0NCdlptWnpaWFE5SWpFd01DVWlJSE4wYjNBdFkyOXNiM0k5SWlObVptUmlNekVpSUhOMGIzQXRiM0JoWTJsMGVUMGlNU0l2UGdvZ0lEd3ZiR2x1WldGeVIzSmhaR2xsYm5RK0NpQWdQSEpsWTNRZ2VEMGlNQ0lnZVQwaU1DSWdkMmxrZEdnOUlqRWlJR2hsYVdkb2REMGlNU0lnWm1sc2JEMGlkWEpzS0NObmNtRmtMWFZqWjJjdFoyVnVaWEpoZEdWa0tTSWdMejRLUEM5emRtYyspO1xyXG4gICAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQobGVmdCwgICNkOWE4NDkgMCUsICNmZmVmYTYgMzAlLCAjZmFmMzdlIDUwJSwgI2UwYzk1ZSA3NyUsICNmZmRiMzEgMTAwJSk7IC8qIEZGMy42KyAqL1xyXG4gICAgYmFja2dyb3VuZDogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCByaWdodCB0b3AsIGNvbG9yLXN0b3AoMCUsI2Q5YTg0OSksIGNvbG9yLXN0b3AoMzAlLCNmZmVmYTYpLCBjb2xvci1zdG9wKDUwJSwjZmFmMzdlKSwgY29sb3Itc3RvcCg3NyUsI2UwYzk1ZSksIGNvbG9yLXN0b3AoMTAwJSwjZmZkYjMxKSk7IC8qIENocm9tZSxTYWZhcmk0KyAqL1xyXG4gICAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQobGVmdCwgICNkOWE4NDkgMCUsI2ZmZWZhNiAzMCUsI2ZhZjM3ZSA1MCUsI2UwYzk1ZSA3NyUsI2ZmZGIzMSAxMDAlKTsgLyogQ2hyb21lMTArLFNhZmFyaTUuMSsgKi9cclxuICAgIGJhY2tncm91bmQ6IC1vLWxpbmVhci1ncmFkaWVudChsZWZ0LCAgI2Q5YTg0OSAwJSwjZmZlZmE2IDMwJSwjZmFmMzdlIDUwJSwjZTBjOTVlIDc3JSwjZmZkYjMxIDEwMCUpOyAvKiBPcGVyYSAxMS4xMCsgKi9cclxuICAgIGJhY2tncm91bmQ6IC1tcy1saW5lYXItZ3JhZGllbnQobGVmdCwgICNkOWE4NDkgMCUsI2ZmZWZhNiAzMCUsI2ZhZjM3ZSA1MCUsI2UwYzk1ZSA3NyUsI2ZmZGIzMSAxMDAlKTsgLyogSUUxMCsgKi9cclxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgICNkOWE4NDkgMCUsI2ZmZWZhNiAzMCUsI2ZhZjM3ZSA1MCUsI2UwYzk1ZSA3NyUsI2ZmZGIzMSAxMDAlKTsgLyogVzNDICovXHJcbiAgICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudCggc3RhcnRDb2xvcnN0cj0nI2Q5YTg0OScsIGVuZENvbG9yc3RyPScjZmZkYjMxJyxHcmFkaWVudFR5cGU9MSApOyAvKiBJRTYtOCAqL1xyXG4gIH1cclxuICBcclxuICAmLmJhZGdlLWJybnotdGV4dCB7XHJcbiAgICAvKiBQZXJtYWxpbmsgLSB1c2UgdG8gZWRpdCBhbmQgc2hhcmUgdGhpcyBncmFkaWVudDogaHR0cDovL2NvbG9yemlsbGEuY29tL2dyYWRpZW50LWVkaXRvci8jZTFhNzk3KzAsZmNlOWQzKzM5LGRlOTM2ZSs3MyxjNjc1NTkrMTAwICovXHJcbiAgICBiYWNrZ3JvdW5kOiAjZTFhNzk3OyAvKiBPbGQgYnJvd3NlcnMgKi9cclxuICAgIC8qIElFOSBTVkcsIG5lZWRzIGNvbmRpdGlvbmFsIG92ZXJyaWRlIG9mICdmaWx0ZXInIHRvICdub25lJyAqL1xyXG4gICAgYmFja2dyb3VuZDogdXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWlBL1BnbzhjM1puSUhodGJHNXpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBd0wzTjJaeUlnZDJsa2RHZzlJakV3TUNVaUlHaGxhV2RvZEQwaU1UQXdKU0lnZG1sbGQwSnZlRDBpTUNBd0lERWdNU0lnY0hKbGMyVnlkbVZCYzNCbFkzUlNZWFJwYnowaWJtOXVaU0krQ2lBZ1BHeHBibVZoY2tkeVlXUnBaVzUwSUdsa1BTSm5jbUZrTFhWaloyY3RaMlZ1WlhKaGRHVmtJaUJuY21Ga2FXVnVkRlZ1YVhSelBTSjFjMlZ5VTNCaFkyVlBibFZ6WlNJZ2VERTlJakFsSWlCNU1UMGlNQ1VpSUhneVBTSXhNREFsSWlCNU1qMGlNQ1VpUGdvZ0lDQWdQSE4wYjNBZ2IyWm1jMlYwUFNJd0pTSWdjM1J2Y0MxamIyeHZjajBpSTJVeFlUYzVOeUlnYzNSdmNDMXZjR0ZqYVhSNVBTSXhJaTgrQ2lBZ0lDQThjM1J2Y0NCdlptWnpaWFE5SWpNNUpTSWdjM1J2Y0MxamIyeHZjajBpSTJaalpUbGtNeUlnYzNSdmNDMXZjR0ZqYVhSNVBTSXhJaTgrQ2lBZ0lDQThjM1J2Y0NCdlptWnpaWFE5SWpjekpTSWdjM1J2Y0MxamIyeHZjajBpSTJSbE9UTTJaU0lnYzNSdmNDMXZjR0ZqYVhSNVBTSXhJaTgrQ2lBZ0lDQThjM1J2Y0NCdlptWnpaWFE5SWpFd01DVWlJSE4wYjNBdFkyOXNiM0k5SWlOak5qYzFOVGtpSUhOMGIzQXRiM0JoWTJsMGVUMGlNU0l2UGdvZ0lEd3ZiR2x1WldGeVIzSmhaR2xsYm5RK0NpQWdQSEpsWTNRZ2VEMGlNQ0lnZVQwaU1DSWdkMmxrZEdnOUlqRWlJR2hsYVdkb2REMGlNU0lnWm1sc2JEMGlkWEpzS0NObmNtRmtMWFZqWjJjdFoyVnVaWEpoZEdWa0tTSWdMejRLUEM5emRtYyspO1xyXG4gICAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQobGVmdCwgICNlMWE3OTcgMCUsICNmY2U5ZDMgMzklLCAjZGU5MzZlIDczJSwgI2M2NzU1OSAxMDAlKTsgLyogRkYzLjYrICovXHJcbiAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIHJpZ2h0IHRvcCwgY29sb3Itc3RvcCgwJSwjZTFhNzk3KSwgY29sb3Itc3RvcCgzOSUsI2ZjZTlkMyksIGNvbG9yLXN0b3AoNzMlLCNkZTkzNmUpLCBjb2xvci1zdG9wKDEwMCUsI2M2NzU1OSkpOyAvKiBDaHJvbWUsU2FmYXJpNCsgKi9cclxuICAgIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZnQsICAjZTFhNzk3IDAlLCNmY2U5ZDMgMzklLCNkZTkzNmUgNzMlLCNjNjc1NTkgMTAwJSk7IC8qIENocm9tZTEwKyxTYWZhcmk1LjErICovXHJcbiAgICBiYWNrZ3JvdW5kOiAtby1saW5lYXItZ3JhZGllbnQobGVmdCwgICNlMWE3OTcgMCUsI2ZjZTlkMyAzOSUsI2RlOTM2ZSA3MyUsI2M2NzU1OSAxMDAlKTsgLyogT3BlcmEgMTEuMTArICovXHJcbiAgICBiYWNrZ3JvdW5kOiAtbXMtbGluZWFyLWdyYWRpZW50KGxlZnQsICAjZTFhNzk3IDAlLCNmY2U5ZDMgMzklLCNkZTkzNmUgNzMlLCNjNjc1NTkgMTAwJSk7IC8qIElFMTArICovXHJcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICAjZTFhNzk3IDAlLCNmY2U5ZDMgMzklLCNkZTkzNmUgNzMlLCNjNjc1NTkgMTAwJSk7IC8qIFczQyAqL1xyXG4gICAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoIHN0YXJ0Q29sb3JzdHI9JyNlMWE3OTcnLCBlbmRDb2xvcnN0cj0nI2M2NzU1OScsR3JhZGllbnRUeXBlPTEgKTsgLyogSUU2LTggKi9cclxuXHJcbiAgfVxyXG59Il19 */
