/* z-indexes are large due to the fact that things might change
 * in the future. In order to account for scalability, this gives
 * room to make changes and not break the entire site, meaning 
 * we won't have to go in and refactor a lot of our code.
 */
/*  ----------------------------------------------------
    INPUTS
  ----------------------------------------------------- */
/*  ----------------------------------------------------
    CONTAINERS
  ----------------------------------------------------- */
/* -------------------
	Base result styles
-------------------- */
/* -------------------
	Variations
-------------------- */
/* -----------------------------------------------------
  Base styling
----------------------------------------------------- */
/* -----------------------------------------------------
  With secondary section
----------------------------------------------------- */
/* -----------------------------------------------------
  Checkbox tags
----------------------------------------------------- */
/* -----------------------------------------------------
  States
----------------------------------------------------- */
tabbed-content {
  --mobile-breakpoint: 680px;
  --block-padding-y: 3rem;
  --block-padding-x: 3rem;
  display: block;
}
tabbed-content .tab-bar {
  display: flex;
  flex-wrap: nowrap;
}
tabbed-content .tab-bar button {
  position: relative;
  width: 100%;
  padding: 2rem;
  min-width: -webkit-min-content;
  min-width: -moz-min-content;
  min-width: min-content;
  text-transform: uppercase;
  color: var(--heading-colour);
  transition: color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
  overflow: hidden;
}
tabbed-content .tab-bar button[aria-selected=true] {
  background: #e9e9e9;
  font-weight: 600;
}
tabbed-content details summary {
  display: none;
}
tabbed-content details .tab-content {
  background: #e9e9e9;
  padding: var(--block-padding-y) var(--block-padding-x);
}
tabbed-content details .tab-content .tabpanel-image {
  display: block;
  height: 200px;
}
tabbed-content details .tab-content .tabpanel-image img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
tabbed-content.small {
  --tab-colour: #FFFFFF;
  --active-colour: #DF3035;
}
tabbed-content.small .tab-bar {
  display: flex;
  width: 100%;
}
tabbed-content.small .tab-bar .tab {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  padding-bottom: calc(var(--gap) * 0.5);
  color: var(--tab-colour);
  text-transform: uppercase;
  border-bottom: 3px solid rgba(255, 255, 255, 0);
  transition: border-color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
  font-weight: 600;
}
tabbed-content.small .tab-bar .tab:not(:first-child) {
  margin-left: calc(var(--gap) * 2);
}
tabbed-content.small .tab-bar .tab:not([aria-selected=true]):hover {
  border-color: var(--active-colour);
}
tabbed-content.small .tab-bar .tab[aria-selected=true] {
  border-color: var(--active-colour);
}
tabbed-content.small .tabpanel {
  margin-top: 2px;
}
tabbed-content.break {
  display: grid;
  grid-gap: calc(var(--gap) * 2);
}
tabbed-content.break .tab-bar {
  display: none;
}
tabbed-content.break details[hidden] {
  display: block;
}
tabbed-content.break details {
  display: block;
  overflow: hidden;
}
tabbed-content.break details summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border: 1px solid #B1B1B1;
  background-color: #dcdcdc;
  padding: calc(var(--block-padding-y) / 2) var(--block-padding-x);
  color: var(--heading-colour);
  transition: var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
tabbed-content.break details summary svg {
  width: 1em;
  height: 1em;
}
tabbed-content.break details .tab-content {
  border: 1px solid #B1B1B1;
  border-top: none;
  max-height: 0px;
}
tabbed-content.break details .tab-content img {
  width: 100%;
}
tabbed-content.break details[open] .tab-content {
  max-height: var(--accordion-max-height);
}
tabbed-content.break details[open] summary {
  font-weight: 600;
}
tabbed-content.break details summary:hover {
  border-color: #df3035;
}
/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIl92YXJpYWJsZXMvei1pbmRleC5zY3NzIiwiX2VsZW1lbnRzL2Zvcm0uc2NzcyIsIl9lbGVtZW50cy9yZXN1bHQtaXRlbS5zY3NzIiwiX2VsZW1lbnRzL3RhZy5zY3NzIiwiY29tcG9uZW50cy9jb250ZW50LWJsb2Nrcy90YWJiZWQtY29udGVudC5zY3NzIiwiY29tcG9uZW50cy9jb250ZW50LWJsb2Nrcy90YWJiZWQtY29udGVudC5jc3MiLCJfdmFyaWFibGVzL2NvbG91cnMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9AZG9nZ2lzdHlsZS9zYXNzL2xpYnJhcnkvc3JjL2NyZWF0ZS9fdW5pdHMuc2NzcyIsIl92YXJpYWJsZXMvdHJhbnNpdGlvbi5zY3NzIiwiX2hlbHBlcnMvbWlzYy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0VBQUE7QUNhQTs7eURBQUE7QUFtREE7O3lEQUFBO0FDNURBOztzQkFBQTtBQXNFQTs7c0JBQUE7QUN6REE7O3VEQUFBO0FBK0JBOzt1REFBQTtBQXlCQTs7dURBQUE7QUEyQkE7O3VEQUFBO0FDekZBO0VBQ0UsMEJBQUE7RUFDQSx1QkFBQTtFQUNBLHVCQUFBO0VBRUEsY0FBQTtBQ2tCRjtBRGhCRTtFQUNFLGFBQUE7RUFDQSxpQkFBQTtBQ2tCSjtBRGhCSTtFQUNFLGtCQUFBO0VBQ0EsV0FBQTtFQUNBLGFBQUE7RUFDQSw4QkFBQTtFQUFBLDJCQUFBO0VBQUEsc0JBQUE7RUFDQSx5QkFBQTtFQUNBLDRCQUFBO0VBQ0EsbUlBQUE7RUFDQSxnQkFBQTtBQ2tCTjtBRGhCTTtFQUNFLG1CRURZO0VGRVosZ0JBQUE7QUNrQlI7QURUSTtFQUFVLGFBQUE7QUNZZDtBRFZJO0VBQ0UsbUJFZGM7RUZlZCxzREFBQTtBQ1lOO0FEVk07RUFDRSxjQUFBO0VBQ0EsYUFBQTtBQ1lSO0FEVlE7RUFDRSxXQUFBO0VBQ0EsWUFBQTtFQUNBLG9CQUFBO0tBQUEsaUJBQUE7QUNZVjtBRE5FO0VBQ0UscUJBQUE7RUFDQSx3QkFBQTtBQ1FKO0FETkk7RUFDRSxhQUFBO0VBQ0EsV0FBQTtBQ1FOO0FETk07RUFDRSwwQkFBQTtFQUFBLHVCQUFBO0VBQUEsa0JBQUE7RUFDQSxzQ0d0QkE7RUh1QkEsd0JBQUE7RUFDQSx5QkFBQTtFQUNBLCtDQUFBO0VBQ0EsMElBQUE7RUFDQSxnQkFBQTtBQ1FSO0FETlE7RUFDRSxpQ0c1QkY7QUZvQ1I7QURMUTtFQUNFLGtDQUFBO0FDT1Y7QURKUTtFQUNFLGtDQUFBO0FDTVY7QURESTtFQUNFLGVBQUE7QUNHTjtBRENFO0VBRUUsYUFBQTtFQUNBLDhCR2pESTtBRmlEUjtBREZJO0VBQVcsYUFBQTtBQ0tmO0FEREk7RUFBa0IsY0FBQTtBQ0l0QjtBREZJO0VBQ0UsY0FBQTtFQUNBLGdCQUFBO0FDSU47QURGTTtFQUNFLGFBQUE7RUFDQSw4QkFBQTtFQUNBLG1CQUFBO0VBQ0EseUJBQUE7RUFDQSx5QkVyRlk7RUZzRlosZ0VBQUE7RUFDQSw0QkFBQTtFQUNBLDZISTNHTTtBSCtHZDtBREhRO0VLOUdQLFVMOEc2QjtFSzdHN0IsV0w2RzZCO0FDTzlCO0FESk07RUFDRSx5QkFBQTtFQUNBLGdCQUFBO0VBQ0EsZUFBQTtBQ01SO0FESlE7RUFDRSxXQUFBO0FDTVY7QUREUTtFQUFlLHVDQUFBO0FDSXZCO0FESFE7RUFDRSxnQkFBQTtBQ0tWO0FEQU07RUFuSUoscUJBQUE7QUNzSUYiLCJmaWxlIjoiY29tcG9uZW50cy9jb250ZW50LWJsb2Nrcy90YWJiZWQtY29udGVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKiB6LWluZGV4ZXMgYXJlIGxhcmdlIGR1ZSB0byB0aGUgZmFjdCB0aGF0IHRoaW5ncyBtaWdodCBjaGFuZ2VcbiAqIGluIHRoZSBmdXR1cmUuIEluIG9yZGVyIHRvIGFjY291bnQgZm9yIHNjYWxhYmlsaXR5LCB0aGlzIGdpdmVzXG4gKiByb29tIHRvIG1ha2UgY2hhbmdlcyBhbmQgbm90IGJyZWFrIHRoZSBlbnRpcmUgc2l0ZSwgbWVhbmluZyBcbiAqIHdlIHdvbid0IGhhdmUgdG8gZ28gaW4gYW5kIHJlZmFjdG9yIGEgbG90IG9mIG91ciBjb2RlLlxuICovXG5cbiRwYWdlLWJhY2tncm91bmQgICAgICAgICAgOiA1MDA7XG5cbiRuYXZpZ2F0aW9uLWJhciAgICAgICAgICAgOiAxNTAwO1xuJG5hdmlnYXRpb24tYmFyLWNvbnRhaW5lciA6ICRuYXZpZ2F0aW9uLWJhcjtcbiRnbG9iYWwtc2VhcmNoLW1vYmlsZSAgICAgOiAtMTtcblxuJHNjcm9sbC1iYXIgICAgICAgICAgICAgICA6IDExMDA7XG5cbiRtYWluICAgICAgICAgICAgICAgICAgICAgOiAxMDAwO1xuJGhlYWRlciAgICAgICAgICAgICAgICAgICA6IDEwMDA7XG4kc2lkZS1iYXIgICAgICAgICAgICAgICAgIDogMTc1MDtcblxuJG1vZGFsICAgICAgICAgICAgICAgICAgICA6IDEwMDAwOyIsIkB1c2UgJy4uL192YXJpYWJsZXMnIGFzICo7XG5AdXNlICdtb2R1bGVzL2NvbG91ci9lbmNvZGUnIGFzIGNvbG91cjtcbkB1c2UgXCJmb250XCI7XG5AdXNlICcuLi9faGVscGVycy9taXNjLnNjc3MnIGFzICo7XG5cbiRiYXNlLWlucHV0LXBhZGRpbmc6ICRnYXA7XG5cblxuQG1peGluIGFycm93LWRvd24taW1hZ2UoJHN0cm9rZSA6IHZhcigtLWZvbnQtY29sb3VyKSkge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzE3LjQnIGhlaWdodD0nMTAuMSclM0UlM0NwYXRoIGQ9J00xNi43LjdsLTggOC04LTgnIGZpbGw9J25vbmUnIHN0cm9rZT0nXCIrY29sb3VyLmVuY29kZSgkc3Ryb2tlKStcIicgc3Ryb2tlLXdpZHRoPScyJyBzdHJva2UtbWl0ZXJsaW1pdD0nMTAnLyUzRSUzQy9zdmclM0VcIik7XG59XG5cblxuLyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBJTlBVVFNcbiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuQG1peGluIGNoYXJhY3Rlci1pbnB1dHMoKSB7XG4gIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLCBpbnB1dFt0eXBlPVwiZW1haWxcIl0sIGlucHV0W3R5cGU9XCJudW1iZXJcIl0sIGlucHV0W3R5cGU9XCJzZWFyY2hcIl0sIHNlbGVjdCwgdGV4dGFyZWEge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBhbGwtaW5wdXRzKCkge1xuICBpbnB1dFt0eXBlPVwidGV4dFwiXSxcbiAgaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxuICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdLFxuICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdLFxuICBzZWxlY3QsXG4gIHRleHRhcmVhIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gY2hhcmFjdGVyLWlucHV0KCkge1xuICAtLWZvbnQtY29sb3VyICAgICAgIDogI3skZm9udC1jb2xvdXJ9O1xuICAtLWJhY2tncm91bmQtY29sb3VyIDogI3skd2hpdGV9O1xuICAtLXBhZGRpbmcgICAgICAgICAgIDogY2FsYygjeyRiYXNlLWlucHV0LXBhZGRpbmd9IC8gMS41KSAjeyRiYXNlLWlucHV0LXBhZGRpbmd9O1xuICAtLWJvcmRlci1jb2xvdXIgICAgIDogI3skZ3JleTd9O1xuICAtLWJvcmRlci1yYWRpdXMgICAgIDogMDtcblxuICBvdXRsaW5lOiAwO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzOyAgLyogT3BlcmEgMTAuNSwgSUUgOSwgU2FmYXJpIDUsIENocm9tZSwgRmlyZWZveCA0LCBpT1MgNCwgQW5kcm9pZCAyLjErICovXG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMDsgIC8qIFNhZmFyaSAzLTQsIGlPUyAxLTMuMiwgQW5kcm9pZCAxLjYtICovICAgIFxuICAtbW96LWJvcmRlci1yYWRpdXM6IDA7ICAvKiBGaXJlZm94IDEtMy42ICovICAgICBcblxuICBjb2xvcjogdmFyKC0tZm9udC1jb2xvdXIpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cik7XG4gIHBhZGRpbmc6IHZhcigtLXBhZGRpbmcpO1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93ICR0cmFuc2l0aW9uO1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAwcHggdHJhbnNwYXJlbnQ7XG5cbiAgJjo6cGxhY2Vob2xkZXIgeyB0cmFuc2l0aW9uOiBjb2xvciAkdHJhbnNpdGlvbiB9XG5cbiAgLy8gJjpub3QoOmVtcHR5KSB7XG4gIC8vICAgJjo6cGxhY2Vob2xkZXIgeyBjb2xvcjogJHRyYW5zcGFyZW50IH1cbiAgLy8gfVxufVxuXG5cbi8qICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQ09OVEFJTkVSU1xuICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5AbWl4aW4gY29udGFpbmVyKCkge1xuICAtLWxhYmVsLWNvbG91ciAgICAgICAgOiB2YXIoLS1mb250LWNvbG91cik7XG4gIC0tbGFiZWwtYWN0aXZlLWNvbG91ciA6IHZhcigtLXRoZW1lLWFjY2VudCk7XG5cbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC1nYXA6IDFyZW07XG5cbiAgbGFiZWwge1xuICAgIGNvbG9yOiB2YXIoLS1sYWJlbC1jb2xvdXIpO1xuICAgIHRyYW5zaXRpb246IGNvbG9yICR0cmFuc2l0aW9uO1xuICB9XG59XG5cbkBtaXhpbiB0ZXh0LWNvbnRhaW5lcigpIHtcbiAgQGluY2x1ZGUgY29udGFpbmVyKCk7XG4gIGdyaWQtYXV0by1mbG93OiByb3c7XG59XG5cblxuQG1peGluIHJhZGlvLWNoZWNrYm94LWNvbnRhaW5lcigpIHtcbiAgQGluY2x1ZGUgY29udGFpbmVyKCk7XG4gIGdyaWQtYXV0by1mbG93OiBjb2x1bW47XG5cbiAgLS1pbnB1dC13aWR0aDogMS4yZW07XG4gIC0taW5wdXQtYm9yZGVyLXRoaWNrbmVzczogMXB4O1xuICAtLWlucHV0LWFjdGl2ZS1jb2xvdXI6ICN7JHJlZH07XG5cbiAgbGFiZWwge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC1hdXRvLWZsb3c6IGNvbHVtbjtcbiAgICBncmlkLWdhcDogJGdhcDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHdpZHRoOiBmaXQtY29udGVudDtcblxuICAgICY6OmJlZm9yZSwgJjo6YWZ0ZXIge1xuICAgICAgZ3JpZC1yb3c6IDE7XG4gICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIEBpbmNsdWRlIHNxdWFyZSh2YXIoLS1pbnB1dC13aWR0aCkpO1xuICAgICAgYmFja2dyb3VuZDogJHdoaXRlO1xuICAgICAgYm9yZGVyOiB2YXIoLS1pbnB1dC1ib3JkZXItdGhpY2tuZXNzLCAxcHgpIHNvbGlkICRncmV5O1xuICAgICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yICR0cmFuc2l0aW9uO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgICY6OmFmdGVyIHtcbiAgICAgIEBpbmNsdWRlIHNxdWFyZShjYWxjKHZhcigtLWlucHV0LXdpZHRoKSAtIHZhcigtLWlucHV0LWJvcmRlci10aGlja25lc3MpICogNikpO1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0taW5wdXQtYWN0aXZlLWNvbG91cik7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgbGVmdDogLTEwcHg7XG4gICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5ICR0cmFuc2l0aW9uLCB0cmFuc2Zvcm0gJHRyYW5zaXRpb247XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIGp1c3RpZnktc2VsZjogY2VudGVyO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgLS1sYWJlbC1jb2xvdXI6IHZhcigtLWxhYmVsLWFjdGl2ZS1jb2xvdXIpO1xuXG4gICAgICAmOjpiZWZvcmUge1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWlucHV0LWFjdGl2ZS1jb2xvdXIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlucHV0IHtcbiAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgJjpjaGVja2VkIHtcbiAgICAgICsgbGFiZWwge1xuICAgICAgICBjb2xvcjogdmFyKC0tbGFiZWwtYWN0aXZlLWNvbG91cik7XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwcHgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiByYWRpby1jb250YWluZXIoKSB7XG4gIGxhYmVsIHtcbiAgICAmOjpiZWZvcmUsICY6OmFmdGVyIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG11bHRpLWlucHV0KCkge1xuICAtLWlucHV0LXNwYWNpbmc6IDA7XG4gIFxuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IHZhcigtLWlucHV0LXNwYWNpbmcpO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogZml0LWNvbnRlbnQ7XG5cbiAgQGluY2x1ZGUgY2hhcmFjdGVyLWlucHV0cygpIHtcbiAgICAmOm5vdChzZWxlY3QpIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgIH1cbiAgfVxuXG4gID4gKjpub3Qoc2VsZWN0LCBidXR0b24sIGEpIHtcbiAgICBmbGV4OiAxO1xuICB9XG4gIFxuICBzZWxlY3QsIGJ1dHRvbiwgYSB7XG4gICAgLS1mb250LWNvbG91cjogI3skd2hpdGV9O1xuICAgIC0tYmFja2dyb3VuZC1jb2xvdXI6ICN7JHJlZH07XG5cbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpO1xuICAgIGNvbG9yOiB2YXIoLS1mb250LWNvbG91cik7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgfVxuXG4gIHNlbGVjdCB7IEBpbmNsdWRlIGFycm93LWRvd24taW1hZ2UoJHdoaXRlKSB9O1xufVxuXG5AbWl4aW4gYmFzZS1yZXF1aXJlZCgpIHtcbiAgcmVxdWlyZWQtbm90aWNlIHtcbiAgICAtLW5vdGljZS1jb2xvdXI6ICN7JHJlZH07XG5cbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAxMHB4O1xuICAgIGNvbG9yOiB2YXIoLS1ub3RpY2UtY29sb3VyKTtcbiAgICBmb250LXNpemU6IDEuNWVtO1xuXG4gICAgc3BhbiB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICByaWdodDogLTEwMCU7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICBmb250LXNpemU6ICRmb250LXNpemU7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gcmFkaW8tdGFicygpIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiBub3dyYXA7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcblxuICByYWRpby10YWIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgcGFkZGluZy1ib3R0b206ICRnYXAwO1xuICAgIFxuICAgIGlucHV0IHsgXG4gICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAmOmNoZWNrZWQgKyBsYWJlbCB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXRoZW1lLWFjY2VudCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJjpub3QoOmNoZWNrZWQpIHtcbiAgICAgICAgKyBsYWJlbDpob3Zlcjo6YWZ0ZXIge1xuICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXRoZW1lLWFjY2VudCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBsYWJlbCB7XG4gICAgICBjb2xvcjogdmFyKC0tZm9udC1jb2xvdXIpO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogM3B4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAkdHJhbnNwYXJlbnQ7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgJHRyYW5zaXRpb247XG4gICAgICB9XG4gICAgICBcblxuICAgIH1cblxuICB9XG59XG5cblxuQG1peGluIGlucHV0LWZvY3VzKCkge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDFweCAxcHggcmdiYSgkcmVkLCAwLjMpO1xufSIsIkB1c2UgJy4uL192YXJpYWJsZXMvJyBhcyAqO1xuQHVzZSAnLi4vX2hlbHBlcnMvJyBhcyAqO1xuXG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS1cblx0QmFzZSByZXN1bHQgc3R5bGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cbkBtaXhpbiBiYXNlKCkge1xuXG4gIC0taGVhZGluZy1jb2xvdXIgICAgOiAjeyRibHVlfTtcblxuICAtLWJvcmRlci10aGlja25lc3MgIDogMXB4O1xuICAtLWJvcmRlci1yYWRpdXMgICAgIDogMHB4O1xuICAtLWJhY2tncm91bmQtY29sb3VyIDogd2hpdGU7XG5cbiAgLS1wYWRkaW5nICAgICAgICAgICA6IDJyZW07XG5cbiAgLS1wYWRkaW5nLWxlZnQgICAgICA6IHZhcigtLXBhZGRpbmcpO1xuICAtLXBhZGRpbmctcmlnaHQgICAgIDogdmFyKC0tcGFkZGluZyk7XG4gIC0tcGFkZGluZy10b3AgICAgICAgOiB2YXIoLS1wYWRkaW5nKTtcbiAgLS1wYWRkaW5nLWJvdHRvbSAgICA6IHZhcigtLXBhZGRpbmcpO1xuXG4gIC0taW1hZ2Utd2lkdGggICAgICAgOiAxMDBweDtcbiAgLS1pbWFnZS1oZWlnaHQgICAgICA6IDEwMHB4O1xuXG4gIC0tZ3JpZC1nYXAgICAgICAgICAgOiAjeyRnYXB9O1xuXG5cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiB2YXIoLS1wYWRkaW5nLXRvcCkgdmFyKC0tcGFkZGluZy1yaWdodCkgdmFyKC0tcGFkZGluZy1ib3R0b20pIHZhcigtLXBhZGRpbmctbGVmdCk7XG4gIGJvcmRlcjogdmFyKC0tYm9yZGVyLXRoaWNrbmVzcykgc29saWQgJHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpO1xuICAvLyBib3gtc2hhZG93OiAwcHggMHB4IDVweCAxcHggcmdiYSgkZ3JleSwgMC4xKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICB0cmFuc2l0aW9uOiBib3JkZXIgJHRyYW5zaXRpb247XG5cbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC1nYXA6IHZhcigtLWdyaWQtZ2FwKSB2YXIoLS1ncmlkLWdhcCk7XG4gIC8vIHBsYWNlLWNvbnRlbnQ6IHN0YXJ0O1xuXG4gIC5yZXN1bHQtaW1hZ2Uge1xuICAgIGdyaWQtYXJlYTogaW1hZ2U7XG4gICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICBwaWN0dXJlIHtcbiAgICAgIGhlaWdodDogdmFyKC0taW1hZ2UtaGVpZ2h0KTtcbiAgICAgIFxuICAgICAgaW1nIHtcbiAgICAgICAgd2lkdGg6IHZhcigtLWltYWdlLWhlaWdodCk7XG4gICAgICAgIGhlaWdodDogdmFyKC0taW1hZ2Utd2lkdGgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5yZXN1bHQtdGl0bGUge1xuICAgIGdyaWQtYXJlYTogdGl0bGU7XG4gICAgY29sb3I6IHZhcigtLWhlYWRpbmctY29sb3VyKTtcbiAgICBhIHsgY29sb3I6IHZhcigtLWhlYWRpbmctY29sb3VyKSB9XG4gIH1cblxuICAucmVzdWx0LXN1YnRpdGxlIHsgZ3JpZC1hcmVhOiBzdWJ0aXRsZSB9XG4gIC5yZXN1bHQtYm9keSAgICAgeyBncmlkLWFyZWE6IGJvZHkgfVxuXG4gICYuYmxvZyAgICB7IEBpbmNsdWRlIGJsb2coKSB9XG4gICYubWFya2V0LXNlY3RvciAgICB7IEBpbmNsdWRlIG1hcmtldC1zZWN0b3IoKSB9XG4gICYucHJvZHVjdCB7IEBpbmNsdWRlIHByb2R1Y3QoKSB9XG4gICYucGFnZSAgICB7IEBpbmNsdWRlIHBhZ2UoKSB9XG59XG5cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHRWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cbkBtaXhpbiBtYXJrZXQtc2VjdG9yKCkge1xuXG4gIC0tYmFja2dyb3VuZC1jb2xvdXI6dHJhbnNwYXJlbnQ7IFxuICAtLWZvbnQtY29sb3VyOndoaXRlOyBcbiAgLS1oZWFkaW5nLWNvbG91ciA6IHdoaXRlOyBcblxuICBpc29sYXRpb246IGlzb2xhdGU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHBhZGRpbmc6MCAwICRndXR0ZXIwIDAgOyBcbiAgYm9yZGVyLWJvdHRvbToxcHggc29saWQgdmFyKC0tcmVzdWx0LWl0ZW0tYm9yZGVyLWJvdHRvbSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpKTtcblxuICAucmVzdWx0LWltYWdlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGNsYW1wKDE0MHB4LCA0MHZ3LCAxODBweCk7XG4gICAgb3V0bGluZTogMXB4IHNvbGlkIHZhcigtLWltYWdlLW91dGxpbmUtY29sb3VyLCB0cmFuc3BhcmVudCk7XG4gICAgb3V0bGluZS1vZmZzZXQ6IHZhcigtLWltYWdlLW91dGxpbmUtb2Zmc2V0LCAwLjFlbSk7IFxuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBvdXRsaW5lLWNvbG9yICR0cmFuc2l0aW9uLCBvdXRsaW5lLW9mZnNldCAkdHJhbnNpdGlvbjtcbiAgICBpbWcge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICB9XG5cbiAgfVxuXG4gICY6aG92ZXIgeyBcbiAgICAtLWltYWdlLW91dGxpbmUtY29sb3VyIDogI3tyZ2JhKHdoaXRlLCAwLjIpfTtcbiAgICAtLWltYWdlLW91dGxpbmUtb2Zmc2V0IDogMC4zZW07XG4gICAgLnJlc3VsdC10aXRsZSBhIHsgY29sb3I6JHJlZDsgfVxuICB9XG5cbiAgLnJlc3VsdC10aXRsZSB7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuXG4gICAgYSB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICY6OmFmdGVyIHsgXG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgICAgICAgaW5zZXQ6MDsgXG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgei1pbmRleDoxOyBcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAYXQtcm9vdCBib2R5W2RhdGEtdGhlbWU9J3doaXRlJ10gJiB7XG4gICAgLS1yZXN1bHQtaXRlbS1ib3JkZXItYm90dG9tIDogI3tyZ2JhKCRibHVlLCAwLjIpfTtcbiAgICAtLWZvbnQtY29sb3VyOiN7JGJsdWV9OyBcbiAgICAtLWhlYWRpbmctY29sb3VyIDogI3skYmx1ZX07IFxuICAgICY6aG92ZXIgeyBcbiAgICAgIC0taW1hZ2Utb3V0bGluZS1jb2xvdXIgOiAje3JnYmEoJGJsdWUsIDAuMil9O1xuICAgIH1cbiAgfVxuXG4gIEBhdC1yb290IGJvZHkjbWFya2V0LXNlY3RvcnMge1xuICAgICYge1xuICAgICAgLy8gaXNvbGF0aW9uOiBpbml0aWFsO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgY29udGFpbmVyLXR5cGU6IGlubGluZS1zaXplO1xuICAgICAgY29udGFpbmVyLW5hbWUgOiBtYXJrZXQtc2VjdG9yO1xuICAgICAgLnJlc3VsdC1pdGVtIHtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAkdHJhbnNpdGlvbjtcbiAgICAgICAgYS5kZXRhaWxzOmhvdmVyIHtcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDsgXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICY6aG92ZXIgLnJlc3VsdC1pbWFnZSB7XG4gICAgICAgIC0taW1hZ2Utb3V0bGluZS1jb2xvdXIgOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgICAtLWltYWdlLW91dGxpbmUtb2Zmc2V0IDowICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgICAuZGV0YWlscyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRibHVlLWRhcms7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgei1pbmRleDogMTsgXG4gICAgICAgIHBhZGRpbmc6MDsgXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDIyMHB4O1xuICAgICAgICB3aWR0aDp2YXIoLS1tYXJrZXQtc2VjdG9yLWFydGljbGUtd2lkdGgsIGNhbGMoMjAwJSArICN7JGd1dHRlcn0pKTtcbiAgICAgICAgXG4gICAgICAgIC8vIERpc2NyZXRlIGFuaW1hdGlvbiBzZXR1cFxuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0cmFuc2l0aW9uOiBcbiAgICAgICAgICBvcGFjaXR5ICR0cmFuc2l0aW9uLFxuICAgICAgICAgIGRpc3BsYXkgJHRyYW5zaXRpb24gYWxsb3ctZGlzY3JldGU7IFxuICAgICAgICAuZGV0YWlscy10ZXh0IHtcbiAgICAgICAgICBwYWRkaW5nOiRndXR0ZXI7IFxuICAgICAgICB9XG4gICAgICAgIC5kZXRhaWxzLWhlYWRpbmcgeyBcbiAgICAgICAgICBjb2xvcjokcmVkO1xuICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgQGluY2x1ZGUgaGVhZGluZy1oMjtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOjFlbTtcbiAgICAgICAgfVxuICAgICAgICAuZGV0YWlscy1pbWFnZSB7XG4gICAgICAgICAgY2xpcC1wYXRoOiBwb2x5Z29uKDAlIDEwMCUsIDM1JSAwJSwgMTAwJSAwJSwgMTAwJSAxMDAlKTtcbiAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6MTAwJTsgXG4gICAgICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgICAgICB9XG4gICAgICAgICAgLmRldGFpbHMtbGluayB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLmRldGFpbHMtbGluayB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIGJvdHRvbTowOyBcbiAgICAgICAgICByaWdodDowOyBcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLmRldGFpbHMge1xuICAgICAgICBAY29udGFpbmVyIG1hcmtldC1zZWN0b3IgKCB3aWR0aCA8IDQyMHB4KSB7XG4gICAgICAgICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgLmRldGFpbHMtaW1hZ2Uge1xuICAgICAgICAgICAgY2xpcC1wYXRoOiBpbml0aWFsO1xuICAgICAgICAgICAgaGVpZ2h0OjEwMHB4OyBcbiAgICAgICAgICAgIC5kZXRhaWxzLWxpbmsge1xuICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBAbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICAgICAgJiAucmVzdWx0LWl0ZW06aXMoOmhvdmVyLCA6Zm9jdXMtdmlzaWJsZSkge1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICAuZGV0YWlscyB7XG4gICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgIFxuICAgICAgICAgIEBzdGFydGluZy1zdHlsZSB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuXG4gICAgYXJ0aWNsZS1ncmlkOmhhcygucmVzdWx0LWl0ZW06aXMoOmhvdmVyLCA6Zm9jdXMtdmlzaWJsZSkpIHtcbiAgICAgIC5yZXN1bHQtaXRlbTpub3QoOmlzKDpob3ZlciwgOmZvY3VzLXZpc2libGUpKSB7IG9wYWNpdHk6IDAuNSAhaW1wb3J0YW50O31cbiAgICB9XG5cbiAgICBAY29udGFpbmVyIG1haW4gKCB3aWR0aCA8IDY2MHB4KSB7XG4gICAgICBhcnRpY2xlLWdyaWQge1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAhaW1wb3J0YW50O1xuICAgICAgICAtLW1hcmtldC1zZWN0b3ItYXJ0aWNsZS13aWR0aCA6IDEwMCU7IFxuICAgICAgfVxuICAgIH1cblxuICAgIGFydGljbGUtZ3JpZCB7XG4gICAgICBAY29udGFpbmVyIG1haW4gKDY2MHB4IDwgd2lkdGggPCA5NjRweCkgIHtcbiAgICAgICAgLnJlc3VsdC1pdGVtOm50aC1jaGlsZCgybikgLmRldGFpbHMgeyBcbiAgICAgICAgICAgIGxlZnQ6IGluaXRpYWw7IFxuICAgICAgICAgICAgcmlnaHQ6MDsgXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBjb250YWluZXIgbWFpbiAoIHdpZHRoID4gOTY0cHgpICB7XG4gICAgICAgIC5yZXN1bHQtaXRlbTpudGgtY2hpbGQoM24pIC5kZXRhaWxzIHsgXG4gICAgICAgICAgICBsZWZ0OiBpbml0aWFsOyBcbiAgICAgICAgICAgIHJpZ2h0OjA7IFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBcblxuICB9XG5cblxufVxuQG1peGluIGJsb2coKSB7XG4gIC0tcGFkZGluZyAgICAgICAgICA6IDRyZW07XG4gIC0tYm9yZGVyLXRoaWNrbmVzcyA6IDA7XG4gIC0tYm9yZGVyLXJhZGl1cyAgICA6IDA7XG4gIC8vIC0tYmFja2dyb3VuZC1jb2xvdXIgOiB0cmFuc3BhcmVudDtcblxuICBncmlkLXRlbXBsYXRlLWFyZWFzOlxuICAgIFwic3VidGl0bGVcIlxuICAgIFwidGl0bGVcIlxuICAgIFwiYm9keVwiO1xuXG4gIC5yZXN1bHQtaW1hZ2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgaW1nIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgfVxuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEyMGRlZywgcmdiYSh3aGl0ZSwgMSkgNDUlLCB0cmFuc3BhcmVudCAxMjAlKTtcbiAgICB9XG4gIH1cblxuICAucmVzdWx0LXRpdGxlLCAucmVzdWx0LXN1YnRpdGxlIHsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSB9XG5cbiAgLnJlc3VsdC10aXRsZSB7ICAgICBcbiAgICBAaW5jbHVkZSBoZWFkaW5nLWgyO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gIH1cblxuICAucmVzdWx0LXN1YnRpdGxlIHtcbiAgICAtLWhlYWRpbmctY29sb3VyOiAjeyRyZWR9O1xuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgaDQsIHRpbWUge1xuICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgIHRpbWUge1xuICAgICAgY29sb3I6ICRncmV5O1xuICAgIH1cbiAgfVxuXG4gIC5yZXN1bHQtYm9keSB7IC0tZm9udC1jb2xvdXI6ICN7JGJsYWNrfTsgfVxuXG4gICYuZmVhdHVyZWQge1xuICAgIC0tcGFkZGluZy1yaWdodDogNXJlbTtcblxuICAgIGdyaWQtY29sdW1uOiAxIC8gc3BhbiAyO1xuXG4gICAgLnJlc3VsdC10aXRsZSB7XG4gICAgICBmb250LXdlaWdodDogODAwO1xuICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLWgyO1xuICAgIH1cblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnRkVBVFVSRUQnO1xuICAgICAgQGluY2x1ZGUgZmVhdHVyZWQtYmFkZ2UoKTtcbiAgICAgIGxlZnQ6IDEwMCU7XG4gICAgICB6LWluZGV4OiAxO1xuICAgIH1cbiAgfVxuXG4gIC5yZXN1bHQtdGl0bGUsIC5yZXN1bHQtc3VidGl0bGUsIC5yZXN1bHQtYm9keSB7XG4gICAgei1pbmRleDogMjtcbiAgfVxufVxuXG5cblxuQG1peGluIHBhZ2UoKSB7XG4gIGdyaWQtdGVtcGxhdGUtYXJlYXM6XG4gIFwiaW1hZ2UgdGl0bGVcIlxuICBcImltYWdlIGJvZHlcIlxuICBcImltYWdlIGJvZHlcIlxuICBcImltYWdlIGJvZHlcIjtcblxuICAucmVzdWx0LWltYWdlIHtcbiAgICBpbWcge1xuICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgfVxuICB9XG59XG5cblxuXG5AbWl4aW4gcHJvZHVjdCgpIHtcbiAgLS1iYWRnZS1zcGFjaW5nIDogM3JlbTtcblxuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHZhcigtLWltYWdlLXdpZHRoKSBhdXRvO1xuXG4gIGdyaWQtdGVtcGxhdGUtYXJlYXM6XG4gICAgXCJpbWFnZSB0aXRsZVwiXG4gICAgXCJpbWFnZSB0aXRsZVwiXG4gICAgXCJpbWFnZSBkYXRhXCJcbiAgICBcImltYWdlIGRhdGFcIjtcblxuICAvLyAucmVzdWx0LXRpdGxlIHtcbiAgLy8gICBtYXJnaW4tdG9wOiAkZ2FwO1xuICAvLyB9XG5cbiAgLnJlc3VsdC10aXRsZSwgLnJlc3VsdC1ib2R5IHtcbiAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKHZhcigtLWJhZGdlLXNwYWNpbmcpICogMik7XG4gIH1cblxuICAucHJvZHVjdC1kYXRhIHtcbiAgICBncmlkLWFyZWE6IGRhdGE7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBncmlkLWdhcDogY2FsYygkZ2FwIC8gMikgJGdhcDtcbiAgfVxuXG4gIC5yZXN1bHQtaW1hZ2Uge1xuICAgIGltZyB7XG4gICAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgIH1cbiAgfVxuXG5cbiAgQGluY2x1ZGUgYnJlYWstaW4oNDUwKSB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1hcmVhczpcbiAgICBcImltYWdlIFwiXG4gICAgXCJ0aXRsZVwiXG4gICAgXCJkYXRhXCI7XG5cbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHVuc2V0O1xuXG4gICAgLnByb2R1Y3QtZGF0YSB7XG4gICAgICAvLyBtYXJnaW4tdG9wOiAkZ2FwLTtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgfVxuXG4gICAgLy8gZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIDFmcjtcblxuICAgIC5yZXN1bHQtdGl0bGUsIC5yZXN1bHQtYm9keSB7IHBhZGRpbmctcmlnaHQ6IDAgfVxuICAgIC8vIC5yZXN1bHQtdGl0bGUgeyBhbGlnbi1zZWxmOiBjZW50ZXIgfVxuICB9XG5cblxuICAmLmluLXN0b2NrOjpiZWZvcmUge1xuICAgIC0tcGFkZGluZy15IDogMC4yZW07XG4gICAgLS1wYWRkaW5nLXggOiAxMGVtO1xuXG4gICAgY29udGVudDogJ2luIHN0b2NrJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiBjYWxjKDFlbSArIHZhcigtLXBhZGRpbmcteSkpO1xuICAgIHJpZ2h0OiBjYWxjKC0xICogdmFyKC0tcGFkZGluZy14KSk7XG4gICAgcGFkZGluZzogMC41ZW0gdmFyKC0tcGFkZGluZy14KTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmx1ZTtcbiAgICBjb2xvcjogJHdoaXRlO1xuICB9XG59IiwiQHVzZSAnLi4vX3ZhcmlhYmxlcycgYXMgKjtcbkB1c2UgJy4uL19oZWxwZXJzL21pc2Muc2NzcycgYXMgKjtcblxuQG1peGluIHRhZygpIHtcbiAgJltkaXNhYmxlZF0geyBAaW5jbHVkZSBkaXNhYmxlZCgpIH1cbiAgJi5jYXRlZ29yeSB7XG4gICAgQGluY2x1ZGUgdGFnLWJhc2UoKTtcbiAgICAtLWJvcmRlci1jb2xvdXI6ICN7JHJlZH07XG4gICAgQGluY2x1ZGUgdGFnLXdpdGgtc2Vjb25kYXJ5KCk7XG4gICAgLnRhZy1zZWNvbmRhcnk6aG92ZXIgeyBAaW5jbHVkZSBzZWNvbmRhcnktaG92ZXIoKSB9XG4gIH1cblxuICAmLmNoZWNrYm94IHtcbiAgICBAaW5jbHVkZSB0YWctY2hlY2tib3goKTtcbiAgfVxufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBCYXNlIHN0eWxpbmdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5AbWl4aW4gdGFnLWJhc2UoKSB7XG4gIC0tYm9yZGVyLXJhZGl1cyAgICAgICA6IDBweDtcbiAgLS1mb250LWNvbG91ciAgICAgICAgIDogI3skcmVkfTtcbiAgLS1iZy1jb2xvdXIgICAgICAgICAgIDogd2hpdGU7XG4gIC0tc2Vjb25kYXJ5LXdpZHRoICAgICA6IDNjaDtcbiAgLS1zZWNvbmRhcnktcGFkZGluZy14IDogM3B4O1xuICAtLWJvcmRlci1jb2xvdXIgICAgICAgOiB0cmFuc3BhcmVudDtcblxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtYXV0by1mbG93OiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHdpZHRoOiBmaXQtY29udGVudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpO1xuICBjb2xvcjogdmFyKC0tZm9udC1jb2xvdXIpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZy1jb2xvdXIpO1xuICB0cmFuc2l0aW9uOiAkdHJhbnNpdGlvbjtcbiAgZm9udC1zaXplOiAxM3B4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcblxuICAudGFnLWxhYmVsIHtcbiAgICBwYWRkaW5nOiAzcHggJGdhcCAzcHggJGdhcDtcbiAgfVxufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBXaXRoIHNlY29uZGFyeSBzZWN0aW9uXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuQG1peGluIHRhZy13aXRoLXNlY29uZGFyeSgpIHtcbiAgLS1zeW1ib2wtY29sb3VyIDogI3skcmVkfTtcblxuICAudGFnLXNlY29uZGFyeSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHBhZGRpbmc6IDAgdmFyKC0tc2Vjb25kYXJ5LXBhZGRpbmcteCk7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRncmV5NDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdpZHRoOiAzY2g7XG4gICAgdHJhbnNpdGlvbjogJHRyYW5zaXRpb247XG5cbiAgICBzdmcge1xuICAgICAgd2lkdGg6IDUwJTtcbiAgICAgIHRyYW5zaXRpb246ICR0cmFuc2l0aW9uO1xuICAgIH1cbiAgfVxufVxuXG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIENoZWNrYm94IHRhZ3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5AbWl4aW4gdGFnLWNoZWNrYm94KCkge1xuICBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAmIH4gbGFiZWwge1xuICAgICAgQGluY2x1ZGUgdGFnLWJhc2UoKTtcbiAgICAgIEBpbmNsdWRlIHRhZy13aXRoLXNlY29uZGFyeSgpO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgLS1ib3JkZXItY29sb3VyOiAjeyRyZWR9O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpjaGVja2VkIH4gbGFiZWwge1xuICAgICAgLS1mb250LWNvbG91cjogd2hpdGU7XG4gICAgICAtLWJnLWNvbG91cjogI3skcmVkfTtcblxuICAgICAgLnRhZy1zZWNvbmRhcnkgeyBAaW5jbHVkZSBzZWNvbmRhcnktaG92ZXIocmdiYSh3aGl0ZSwgMC4zKSkgfVxuICAgIH1cbiAgfVxufVxuXG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIFN0YXRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbkBtaXhpbiBzZWNvbmRhcnktaG92ZXIoJGNvbG91ciA6ICRyZWQpIHtcbiAgLS1zeW1ib2wtY29sb3VyOiB3aGl0ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG91cjtcbn0iLCJAdXNlICdfbW9kdWxlcycgYXMgKjtcblxuXG4kbW9iaWxlLWJyZWFrcG9pbnQ6IDY4MHB4O1xuXG5AbWl4aW4gdGFiLWhvdmVyLWRlc2t0b3AoKSB7XG59XG5AbWl4aW4gdGFiLWhvdmVyLW1vYmlsZSgpIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKCRyZWQsIDEpO1xufVxuXG50YWJiZWQtY29udGVudCB7XG4gIC0tbW9iaWxlLWJyZWFrcG9pbnQ6ICN7JG1vYmlsZS1icmVha3BvaW50fTtcbiAgLS1ibG9jay1wYWRkaW5nLXk6IDNyZW07XG4gIC0tYmxvY2stcGFkZGluZy14OiAzcmVtO1xuXG4gIGRpc3BsYXk6IGJsb2NrO1xuXG4gIC50YWItYmFyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuXG4gICAgYnV0dG9uIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgcGFkZGluZzogMnJlbTtcbiAgICAgIG1pbi13aWR0aDogbWluLWNvbnRlbnQ7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgY29sb3I6IHZhcigtLWhlYWRpbmctY29sb3VyKTtcbiAgICAgIHRyYW5zaXRpb246IGNvbG9yICR0cmFuc2l0aW9uO1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgJlthcmlhLXNlbGVjdGVkPVwidHJ1ZVwiXSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRncmV5NztcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgLy8gQGluY2x1ZGUgdGFiLWhvdmVyLWRlc2t0b3AoKTtcbiAgICAgIH1cblxuICAgICAgJjpub3QoW2FyaWEtc2VsZWN0ZWQ9XCJ0cnVlXCJdKTpob3ZlciB7IEBpbmNsdWRlIHRhYi1ob3Zlci1kZXNrdG9wKCkgfVxuICAgIH1cbiAgfVxuXG4gIGRldGFpbHMge1xuICAgIHN1bW1hcnkgeyBkaXNwbGF5OiBub25lIH1cbiAgICBcbiAgICAudGFiLWNvbnRlbnQge1xuICAgICAgYmFja2dyb3VuZDogJGdyZXk3O1xuICAgICAgcGFkZGluZzogdmFyKC0tYmxvY2stcGFkZGluZy15KSB2YXIoLS1ibG9jay1wYWRkaW5nLXgpO1xuXG4gICAgICAudGFicGFuZWwtaW1hZ2Uge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAyMDBweDtcblxuICAgICAgICBpbWcge1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYuc21hbGwge1xuICAgIC0tdGFiLWNvbG91ciAgICA6ICN7JHdoaXRlfTtcbiAgICAtLWFjdGl2ZS1jb2xvdXIgOiAjeyRyZWR9O1xuXG4gICAgLnRhYi1iYXIge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAudGFiIHtcbiAgICAgICAgd2lkdGg6IGZpdC1jb250ZW50O1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogJGdhcDA7XG4gICAgICAgIGNvbG9yOiB2YXIoLS10YWItY29sb3VyKTtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogM3B4IHNvbGlkICR0cmFuc3BhcmVudDtcbiAgICAgICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yICR0cmFuc2l0aW9uO1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuXG4gICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkZ2FwMjtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bm90KFthcmlhLXNlbGVjdGVkPVwidHJ1ZVwiXSk6aG92ZXIge1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYWN0aXZlLWNvbG91cik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2FyaWEtc2VsZWN0ZWQ9XCJ0cnVlXCJdIHtcbiAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWFjdGl2ZS1jb2xvdXIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnRhYnBhbmVsIHtcbiAgICAgIG1hcmdpbi10b3A6IDJweDtcbiAgICB9XG4gIH1cblxuICAmLmJyZWFrIHtcbiAgICAudGFiLWJhciB7IGRpc3BsYXk6IG5vbmUgfVxuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC1nYXA6ICRnYXAyO1xuXG4gICAgZGV0YWlsc1toaWRkZW5dIHsgZGlzcGxheTogYmxvY2sgfVxuXG4gICAgZGV0YWlscyAge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICBzdW1tYXJ5IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkZ3JleTU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRncmV5NDtcbiAgICAgICAgcGFkZGluZzogY2FsYyh2YXIoLS1ibG9jay1wYWRkaW5nLXkpIC8gMikgdmFyKC0tYmxvY2stcGFkZGluZy14KTtcbiAgICAgICAgY29sb3I6IHZhcigtLWhlYWRpbmctY29sb3VyKTtcbiAgICAgICAgdHJhbnNpdGlvbjogJHRyYW5zaXRpb247XG4gICAgICAgIHN2ZyB7IEBpbmNsdWRlIHNxdWFyZSgxZW0pIH1cbiAgICAgIH1cblxuICAgICAgLnRhYi1jb250ZW50IHsgXG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRncmV5NTtcbiAgICAgICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICAgICAgbWF4LWhlaWdodDogMHB4O1xuXG4gICAgICAgIGltZyB7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJltvcGVuXSB7XG4gICAgICAgIC50YWItY29udGVudCB7IG1heC1oZWlnaHQ6IHZhcigtLWFjY29yZGlvbi1tYXgtaGVpZ2h0KSB9XG4gICAgICAgIHN1bW1hcnkge1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgICAgLy8gQGluY2x1ZGUgdGFiLWhvdmVyLW1vYmlsZSgpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHN1bW1hcnk6aG92ZXIgeyBAaW5jbHVkZSB0YWItaG92ZXItbW9iaWxlKCkgfVxuICAgIH1cbiAgfVxufSIsIi8qIHotaW5kZXhlcyBhcmUgbGFyZ2UgZHVlIHRvIHRoZSBmYWN0IHRoYXQgdGhpbmdzIG1pZ2h0IGNoYW5nZVxuICogaW4gdGhlIGZ1dHVyZS4gSW4gb3JkZXIgdG8gYWNjb3VudCBmb3Igc2NhbGFiaWxpdHksIHRoaXMgZ2l2ZXNcbiAqIHJvb20gdG8gbWFrZSBjaGFuZ2VzIGFuZCBub3QgYnJlYWsgdGhlIGVudGlyZSBzaXRlLCBtZWFuaW5nIFxuICogd2Ugd29uJ3QgaGF2ZSB0byBnbyBpbiBhbmQgcmVmYWN0b3IgYSBsb3Qgb2Ygb3VyIGNvZGUuXG4gKi9cbi8qICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgSU5QVVRTXG4gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIENPTlRBSU5FUlNcbiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS1cblx0QmFzZSByZXN1bHQgc3R5bGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHRWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgQmFzZSBzdHlsaW5nXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgV2l0aCBzZWNvbmRhcnkgc2VjdGlvblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIENoZWNrYm94IHRhZ3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBTdGF0ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG50YWJiZWQtY29udGVudCB7XG4gIC0tbW9iaWxlLWJyZWFrcG9pbnQ6IDY4MHB4O1xuICAtLWJsb2NrLXBhZGRpbmcteTogM3JlbTtcbiAgLS1ibG9jay1wYWRkaW5nLXg6IDNyZW07XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxudGFiYmVkLWNvbnRlbnQgLnRhYi1iYXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbn1cbnRhYmJlZC1jb250ZW50IC50YWItYmFyIGJ1dHRvbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDJyZW07XG4gIG1pbi13aWR0aDogbWluLWNvbnRlbnQ7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiB2YXIoLS1oZWFkaW5nLWNvbG91cik7XG4gIHRyYW5zaXRpb246IGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxudGFiYmVkLWNvbnRlbnQgLnRhYi1iYXIgYnV0dG9uW2FyaWEtc2VsZWN0ZWQ9dHJ1ZV0ge1xuICBiYWNrZ3JvdW5kOiAjZTllOWU5O1xuICBmb250LXdlaWdodDogNjAwO1xufVxudGFiYmVkLWNvbnRlbnQgZGV0YWlscyBzdW1tYXJ5IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbnRhYmJlZC1jb250ZW50IGRldGFpbHMgLnRhYi1jb250ZW50IHtcbiAgYmFja2dyb3VuZDogI2U5ZTllOTtcbiAgcGFkZGluZzogdmFyKC0tYmxvY2stcGFkZGluZy15KSB2YXIoLS1ibG9jay1wYWRkaW5nLXgpO1xufVxudGFiYmVkLWNvbnRlbnQgZGV0YWlscyAudGFiLWNvbnRlbnQgLnRhYnBhbmVsLWltYWdlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogMjAwcHg7XG59XG50YWJiZWQtY29udGVudCBkZXRhaWxzIC50YWItY29udGVudCAudGFicGFuZWwtaW1hZ2UgaW1nIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG59XG50YWJiZWQtY29udGVudC5zbWFsbCB7XG4gIC0tdGFiLWNvbG91cjogI0ZGRkZGRjtcbiAgLS1hY3RpdmUtY29sb3VyOiAjREYzMDM1O1xufVxudGFiYmVkLWNvbnRlbnQuc21hbGwgLnRhYi1iYXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMTAwJTtcbn1cbnRhYmJlZC1jb250ZW50LnNtYWxsIC50YWItYmFyIC50YWIge1xuICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gIHBhZGRpbmctYm90dG9tOiBjYWxjKHZhcigtLWdhcCkgKiAwLjUpO1xuICBjb2xvcjogdmFyKC0tdGFiLWNvbG91cik7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGJvcmRlci1ib3R0b206IDNweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDApO1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICk7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG50YWJiZWQtY29udGVudC5zbWFsbCAudGFiLWJhciAudGFiOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgbWFyZ2luLWxlZnQ6IGNhbGModmFyKC0tZ2FwKSAqIDIpO1xufVxudGFiYmVkLWNvbnRlbnQuc21hbGwgLnRhYi1iYXIgLnRhYjpub3QoW2FyaWEtc2VsZWN0ZWQ9dHJ1ZV0pOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1hY3RpdmUtY29sb3VyKTtcbn1cbnRhYmJlZC1jb250ZW50LnNtYWxsIC50YWItYmFyIC50YWJbYXJpYS1zZWxlY3RlZD10cnVlXSB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYWN0aXZlLWNvbG91cik7XG59XG50YWJiZWQtY29udGVudC5zbWFsbCAudGFicGFuZWwge1xuICBtYXJnaW4tdG9wOiAycHg7XG59XG50YWJiZWQtY29udGVudC5icmVhayB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtZ2FwOiBjYWxjKHZhcigtLWdhcCkgKiAyKTtcbn1cbnRhYmJlZC1jb250ZW50LmJyZWFrIC50YWItYmFyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbnRhYmJlZC1jb250ZW50LmJyZWFrIGRldGFpbHNbaGlkZGVuXSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxudGFiYmVkLWNvbnRlbnQuYnJlYWsgZGV0YWlscyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxudGFiYmVkLWNvbnRlbnQuYnJlYWsgZGV0YWlscyBzdW1tYXJ5IHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBib3JkZXI6IDFweCBzb2xpZCAjQjFCMUIxO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGNkY2RjO1xuICBwYWRkaW5nOiBjYWxjKHZhcigtLWJsb2NrLXBhZGRpbmcteSkgLyAyKSB2YXIoLS1ibG9jay1wYWRkaW5nLXgpO1xuICBjb2xvcjogdmFyKC0taGVhZGluZy1jb2xvdXIpO1xuICB0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKTtcbn1cbnRhYmJlZC1jb250ZW50LmJyZWFrIGRldGFpbHMgc3VtbWFyeSBzdmcge1xuICB3aWR0aDogMWVtO1xuICBoZWlnaHQ6IDFlbTtcbn1cbnRhYmJlZC1jb250ZW50LmJyZWFrIGRldGFpbHMgLnRhYi1jb250ZW50IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI0IxQjFCMTtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbiAgbWF4LWhlaWdodDogMHB4O1xufVxudGFiYmVkLWNvbnRlbnQuYnJlYWsgZGV0YWlscyAudGFiLWNvbnRlbnQgaW1nIHtcbiAgd2lkdGg6IDEwMCU7XG59XG50YWJiZWQtY29udGVudC5icmVhayBkZXRhaWxzW29wZW5dIC50YWItY29udGVudCB7XG4gIG1heC1oZWlnaHQ6IHZhcigtLWFjY29yZGlvbi1tYXgtaGVpZ2h0KTtcbn1cbnRhYmJlZC1jb250ZW50LmJyZWFrIGRldGFpbHNbb3Blbl0gc3VtbWFyeSB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG50YWJiZWQtY29udGVudC5icmVhayBkZXRhaWxzIHN1bW1hcnk6aG92ZXIge1xuICBib3JkZXItY29sb3I6ICNkZjMwMzU7XG59IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIENvbG91cnNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbi8vLyBFeHBsaWNpdCBDb2xvdXJzID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLy8gRXhwbGljaXQgY29sb3VycyBhcmUgYSB3aGF0IHRoZXkgYXJlLiBHcmVlbiBpcyBncmVlbiwgYmx1ZSBpcyBibHVlLi4uIG5vIG9ic2N1cml0eS5cbi8vLyBXZSBzdWZmaXggbnVtYmVycyB0byBkZWZpbmUgdmFyaWF0aW9ucyBvZiBjb2xvdXJzIGluIG5vIHBhcnRpY3VsYXIgb3JkZXIgb2Ygc2hhZGUuIFxuLy8vIEV4YW1wbGU6IGdyZWVuMSwgZ3JlZW4yLCBncmVlbjMsIGdyZWVuNC4gVGhpcyBpcyBzbyB3ZSBjYW4gaW1taWRpYXRlbHkgc2VlIGhvdyBcbi8vLyBtYW55IG9wdGlvbnMgd2UgaGF2ZSBmb3IgYSBzaW5nbGUgY29sb3VyIGF0IGEgZ2xhbmNlLiBJZiB5b3Ugc2VlICRncmVlbjQsIHlvdSBrbm93IHRoaXNcbi8vLyBwcm9qZWN0IGlzIHVzaW5nIGZvdXIgdmFyaWF0aW9ucyBvZiBncmVlbi4gVGhpcyBpcyBhbHNvIG9mdGVuIHVzZWZ1bCBiZWNhdXNlIG1hbnkgZGV2ZWxvcG1lbnQgXG4vLy8gdG9vbHMgd2lsbCBhdXRvLXN1Z2dlc3QgY29sb3VycyB3aXRoIGFjdHVhbCBleGFtcGxlcyBvZiB0aGUgY29sb3VyLiBcbi8vLyBUaGUgUGFsbGV0ZXMgbW9kdWxlIChhdCB0aGUgYm90dG9tIG9mIHRoaXMgZmlsZSkgd2lsbCBvdXRwdXQgc2hhZGVkIG5hbWVkIHZhcmlhdGlvbnMsIFxuLy8vLyA8Y29sb3VyPi1kYXJrIGFuZCA8Y29sb3VyPi1saWdodC4gSWYgeW91IG5lZWQgYWRkaXRpb25hbCBzaGFkZXMgcGxlYXNlIHJlZnJhaW0gZnJvbSBnb2luZyBkb3duIFxuLy8vIHRoZSAnbGlnaHRlcicsICdsaWdodGVzdCcsICdkYXJrZXInLCAnZGFya2VzdCcgY29udmVudGlvbi4gVGhlc2UgYXJlIG5vdCBwYXJ0aWN1YXJseSBsZWdpYWJsZSBcbi8vLyBhbmQgdGhleSBhcmUgbGltaXRlZCBieSBob3cgY3JlYXRpdmUgKGNvbmZ1c2luZykgeW91ciB3b3JkaW5nIGNhbiBiZS4gXG4vLy8gSXQgaXMgYmV0dGVyIHRvIGRlZmluZSBhIG5ldyBleHBsY2l0IGNvbG91ciBlbnRpcmVseS4gXG4vLy8gQHNlZSBodHRwczovL2Nzcy10cmlja3MuY29tL3doYXQtZG8teW91LW5hbWUtY29sb3ItdmFyaWFibGVzL1xuXG4kYmx1ZSAgICAgICAgICAgICA6ICMxMzFmNmI7IC8vIFByaW1hcnlcbiRibHVlMiAgICAgICAgICAgIDogIzI5MkI2ODsgLy8gTmFrZWQgTGlua1xuJGJsdWUzICAgICAgICAgICAgOiAjM2QzZjdmOyAvLyBMaWdudCBHcmFkaWVudFxuJGJsdWU0ICAgICAgICAgICAgOiAjMTAxMjRkOyAvLyBEYXJrIEdyYWRpZW50XG4kYmx1ZTUgICAgICAgICAgICA6ICMwMDk1RkY7IC8vIE5hdmlnYXRpb24gbGluayBob3ZlciBcblxuJHJlZCAgICAgICAgICAgICAgOiAjREYzMDM1OyAvLyBTZWNvbmRhcnkgLSBUaGlzIHBhc3NlcyB0aGUgY29udHJhc3QgcmF0aW8gYWNjZXNzaWJpbGl0eSB0ZXN0IGluIEdvb2dsZXMgTGlnaHRob3VzZSBcblxuJGdyZXkgICAgICAgICAgICAgOiAjOTY5Njk1O1xuJGdyZXkyICAgICAgICAgICAgOiAjNkE2QTZBOyAvLyBGb250XG4kZ3JleTMgICAgICAgICAgICA6ICNGNEY0RjQ7IC8vIExpZ2h0ZXIgR3JleSBCYWNrZ3JvdW5kXG4kZ3JleTQgICAgICAgICAgICA6ICNkY2RjZGM7XG4kZ3JleTUgICAgICAgICAgICA6ICNCMUIxQjE7IC8vIFNwYWNlcnMgPGhyPlxuJGdyZXk2ICAgICAgICAgICAgOiAjMzMzMjM2OyAvLyBOYXZpZ2F0aW9uIGxpbmsgaG92ZXIgIFxuJGdyZXk3ICAgICAgICAgICAgOiAjZTllOWU5O1xuJGdyZWVuICAgICAgICAgICAgOiAjNTBCQzA4O1xuJHllbGxvdyAgICAgICAgICAgOiAjRjZGNERCOyAvLyBEaXNjbGFpbWVyIEJhY2tncm91bmRcbiR5ZWxsb3cyICAgICAgICAgIDogI0ZDQjAwMjtcbiRibGFjayAgICAgICAgICAgIDogIzFFMUExQTtcbiR3aGl0ZSAgICAgICAgICAgIDogI0ZGRkZGRjtcblxuJG9yYW5nZSAgICAgICAgICAgOiAjZWQ2MjI0O1xuXG5cbiR0cmFuc3BhcmVudCAgICAgIDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwKTtcbiRtYXJrICAgICAgICAgICAgIDogJGJsdWU1OyAvLyBiYWNrZ3JvdW5kIGNvbG91ciBmb3IgPG1hcms+IHRhZ3NcblxuJGRlZmF1bHQtZ3JhZGllbnQgOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tIHJpZ2h0LCAkYmx1ZSA1JSwgJGJsYWNrIDY2JSk7XG4kcmV2ZXJzZS1ncmFkaWVudCA6IGxpbmVhci1ncmFkaWVudCgxMjBkZWcsICMxMDEyNGQgMCUsICRibHVlIDgwJSk7XG4kbGlnaHQtZ3JhZGllbnQgICA6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgYm90dG9tLCAjMTAxMjRkIDU1JSwgIzE3MjU4MiAxMDAlKTtcblxuXG4vLy9cbiRwcmltYXJ5OiAkYmx1ZTtcbi8vL1xuXG5cblxuXG4vLy8gVGhlbWVzICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4kdGhlbWUtZGVmYXVsdC1wYWdlLWJhY2tncm91bmQgICAgOiAkZGVmYXVsdC1ncmFkaWVudDtcbiR0aGVtZS1kZWZhdWx0LWNvbnRlbnQtYmFja2dyb3VuZCA6ICR0cmFuc3BhcmVudDtcbiR0aGVtZS1kZWZhdWx0LW5hdi1iYWNrZ3JvdW5kICAgICA6ICR0cmFuc3BhcmVudDtcbiR0aGVtZS1kZWZhdWx0LW5hdi1iYWNrZ3JvdW5kLW1vYiA6ICR3aGl0ZTtcbiR0aGVtZS1kZWZhdWx0LW5hdi1mb250ICAgICAgICAgICA6ICR3aGl0ZTtcbiR0aGVtZS1kZWZhdWx0LW5hdi1mb250LW1vYiAgICAgICA6ICRibHVlO1xuJHRoZW1lLWRlZmF1bHQtbmF2LXNwYWNpbmctY29sb3VyIDogcmdiYSgkYmx1ZSwgMC4zKTtcbiR0aGVtZS1kZWZhdWx0LWZvbnQgICAgICAgICAgICAgICA6ICR3aGl0ZTtcbiR0aGVtZS1kZWZhdWx0LWhlYWRpbmcgICAgICAgICAgICA6ICR3aGl0ZTtcbiR0aGVtZS1kZWZhdWx0LWFjY2VudFx0XHRcdFx0XHQgICAgOiAkcmVkO1xuJHRoZW1lLWRlZmF1bHQtbG9nbyAgICAgICAgICAgICAgIDogJHdoaXRlO1xuXG4kdGhlbWUtd2hpdGUtcGFnZS1iYWNrZ3JvdW5kICAgICAgOiAkbGlnaHQtZ3JhZGllbnQ7XG4kdGhlbWUtd2hpdGUtY29udGVudC1iYWNrZ3JvdW5kICAgOiAjZjhmOGY4O1xuJHRoZW1lLXdoaXRlLW5hdi1iYWNrZ3JvdW5kICAgICAgIDogJHRyYW5zcGFyZW50O1xuJHRoZW1lLXdoaXRlLW5hdi1iYWNrZ3JvdW5kLW1vYiAgIDogJGJsdWU7XG4kdGhlbWUtd2hpdGUtbmF2LWZvbnQgICAgICAgICAgICAgOiAkd2hpdGU7XG4kdGhlbWUtd2hpdGUtbmF2LWZvbnQtbW9iICAgICAgICAgOiAkd2hpdGU7XG4kdGhlbWUtd2hpdGUtbmF2LXNwYWNpbmctY29sb3VyICAgOiByZ2JhKCR3aGl0ZSwgMC4zKTtcbiR0aGVtZS13aGl0ZS1mb250ICAgICAgICAgICAgICAgICA6ICRibGFjaztcbiR0aGVtZS13aGl0ZS1oZWFkaW5nICAgICAgICAgICAgICA6ICRibHVlO1xuJHRoZW1lLXdoaXRlLWFjY2VudFx0XHRcdFx0XHQgICAgICA6ICR0aGVtZS1kZWZhdWx0LWFjY2VudDtcbiR0aGVtZS13aGl0ZS1sb2dvICAgICAgICAgICAgICAgICA6ICR3aGl0ZTtcblxuJHRoZW1lLWJsYWNrLXBhZ2UtYmFja2dyb3VuZCAgICAgIDogJGRlZmF1bHQtZ3JhZGllbnQ7XG4kdGhlbWUtYmxhY2stY29udGVudC1iYWNrZ3JvdW5kICAgOiAkYmxhY2s7XG4kdGhlbWUtYmxhY2stbmF2LWJhY2tncm91bmQgICAgICAgOiAkd2hpdGU7XG4kdGhlbWUtYmxhY2stbmF2LWJhY2tncm91bmQtbW9iICAgOiAkd2hpdGU7XG4kdGhlbWUtYmxhY2stbmF2LWZvbnQgICAgICAgICAgICAgOiAkYmx1ZTtcbiR0aGVtZS1ibGFjay1uYXYtZm9udC1tb2IgICAgICAgICA6ICRibHVlO1xuJHRoZW1lLWJsYWNrLW5hdi1zcGFjaW5nLWNvbG91ciAgIDogcmdiYSgkYmx1ZSwgMC4zKTtcbiR0aGVtZS1ibGFjay1mb250ICAgICAgICAgICAgICAgICA6ICR3aGl0ZTtcbiR0aGVtZS1ibGFjay1oZWFkaW5nICAgICAgICAgICAgICA6ICR3aGl0ZTtcbiR0aGVtZS1ibGFjay1hY2NlbnRcdFx0XHRcdFx0ICAgICAgOiAkdGhlbWUtZGVmYXVsdC1hY2NlbnQ7XG4kdGhlbWUtYmxhY2stbG9nbyAgICAgICAgICAgICAgICAgOiAkYmx1ZTtcblxuLy8vIFBhbGV0dGUgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vLyBCeSBsb2FkaW5nIGNvbmZpZ3VyYXRpb25zIGludG8gdGhpcyAncGFsbGV0ZScgbW9kdWxlLCB3ZSB3aWxsIGJlIGFibGVcbi8vLyB0byBkZWNsYXJlIHZhcmlhbnRzIG9mIGEgZmV3IGNvbW1vbiBjb2xvdXJzLiBZb3UgY2FuIGFsc28gYWRqdXN0IHRoZSBsaWdodG5lc3Ncbi8vLyBvciBkYXJrbmVzcyBvZiBlYWNoIHZhcmlhbnQgYnkgcGFzc2luZyBpbiB0aGUgcmVsZXZhbnQgcHJpdmF0ZSBydWxlcy4gXG4vLy8gUGFsZXR0ZSB3aWxsIGFsc28gZXhwb3NlIHBvcHVsYXIgc29jaWFsIG1lZGlhIGNvbG91cnMgYW5kIHRoZSBZZWxsbyBicmFuZCBjb2xvdXIuXG4vLy8gQHNlZSBodHRwczovL3Nhc3MtbGFuZy5jb20vZG9jdW1lbnRhdGlvbi9hdC1ydWxlcy9mb3J3YXJkI2NvbmZpZ3VyaW5nLW1vZHVsZXNcbi8vLyBAb3V0cHV0ICRncmVlbiA6ICMwMjkyOUE7ICRncmVlbi1kYXJrIDogIzI1NjU2OTsgJGdyZWVuLWxpZ2h0OiAjMDRiOWM0O1xuXG5AZm9yd2FyZCAnY3JlYXRlL3BhbGV0dGUnd2l0aCAoJGJsdWUgOiAkYmx1ZSxcblx0JHJlZCA6ICRyZWQsXG5cdCRncmV5IDogJGdyZXksXG5cdCR5ZWxsb3cgOiAkeWVsbG93LFxuXHQkZ3JlZW4gOiAkZ3JlZW4sXG5cdCRibGFjayA6ICRibGFjayk7XG5cbiRjb21wb25lbnQtdGhlbWVzIDogKFwicmVkXCI6ICRyZWQsIFwiYmx1ZVwiOiAkYmx1ZSwgXCJncmV5XCI6ICRncmV5MywgXCJ3aGl0ZVwiIDogJHdoaXRlKTsiLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gVW5pdHNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkB1c2UgXCJzYXNzOm1hdGhcIjtcbkB1c2UgJ3Nhc3M6c3RyaW5nJztcbkB1c2UgJ3Nhc3M6bWV0YSc7XG5cbi8vIFRoaXMgdW5pdHMgY3JlYXRvciB3aWxsIHJlbmRlciBzaXggcG9zaXRpdmUgYW5kIHNpeCBuZWdhdGl2ZSBzYXNzIHZhcmlhYmxlcyBmb3IgXG4vLyBnYXBzLCBzcGFjZXJzLCBhbmQgZ3V0dGVycyByZWxhdGl2ZSB0byB0aGUgYmFzZXYgdmFsdWVzIGRlZmluZWQgYmVsb3cuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQmFzZSBWYWx1ZXMgXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLy8gQHNlZSBodHRwczovL2NvZGVwZW4uaW8vbWFya25vdHRvbi9wZW4vRXhQYk5HZVxuXG4vLyBUaGVzZSB0aHJlZSB2YWx1ZXMgd2lsbCBhY3QgYSBjb25zdGFudCBiYXNlbGluZSBmb3IgYWxsIGZvbGxvd2luZyB1bml0IGRlbGNhcmF0aW9ucy5cblxuLy8gR2FwcyBtdXN0IHVzZSBhbiBhYnNvbHV0ZSBhbmQgc3RhdGljICdweCcgdW5pdC4gSXQgc2hvdWxkIG5vdCBiZSByZWxhdGl2ZSB0byBhbnlcbi8vIHBhcmVudCBjb250YWluZXIgYW5kIGlzIG5vdCBpbnRlbmRlZCBmb3IgZm9udCBzaXplcywgc28geW91IHNob3VsZCBub3QgdXNlICdyZW0nIG9yICdlbScuIFxuJGdhcCA6IDE2cHggIWRlZmF1bHQ7XG4kYmFzZS1nYXAgOiAkZ2FwO1xuXG4vLyBTcGFjZXJzIG11c3QgdXNlIGEgJ3ZoJyB1bml0IHNvIHRoZXkgYXJlIHJlbGF0aXZlIHRvIHRoZSB1c2VycyB2aWV3cG9ydCBoZWlnaHQtd2lzZS5cbi8vIFRoZXkgc2hvdWxkIHByaW1hcmlseSBiZSB1c2VkIGZvciB0aGUgdG9wIGFuZCBib3R0b20gbWFyZ2lucyBvbiBhIGNvbXBvbmVudCBsZXZlbC5cbiRzcGFjZXIgOiA0dmggIWRlZmF1bHQ7IFxuJGJhc2Utc3BhY2VyIDogJHNwYWNlcjsgXG5cbi8vIEd1dHRlcnMgbXVzdCB1c2UgYSAndncnIHVuaXQgc28gdGhleSBhcmUgcmVsYXRpdmUgdG8gdGhlIHVzZXJzIHZpZXdwb3J0IHdpZHRoLXdpc2UuIFxuLy8gVGhleSBzaG91bGQgcHJpbWFyaWx5IGJlIHVzZWQgZm9yIHRoZSBsZWZ0IGFuZCByaWdodCBwYWRkaW5nIG9yIG1hcmdpbiBvbiBhIHBhcmVudCBsZXZlbC5cbi8vIEFzIGEgc3VnZ2VzdGlvbiwgdGhpcyBndXR0ZXIgY29uc3RhbnQgc2hvdWxkIGJlIGhhbGYgdGhlIHNpemUgb2YgdGhlIHNwYWNlciB2YWx1ZS5cbiRndXR0ZXIgOiAzdncgIWRlZmF1bHQ7XG4kYmFzZS1ndXR0ZXIgOiAkZ3V0dGVyOyBcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEFzYm9sdXRlIFVuaXRzIFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gR2FwcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEdhcHMgYXJlIGFuIGFic29sdXRlIHVuaXQgKHB4KSBpbnRlbmRlZCB0byBiZSB1c2VkIG9uIGluZGl2aWR1YWwgZWxlbWVudHMgd2l0aGluIGEgY29tcG9uZW50ZWQuIFxuLy8gVGhlIGFpbSBpcyB0byByZXRhaW4gY29uc2lzdGFudCBzcGFjaW5nIGFtb25nc3QgYmxvY2ssIGlubGluZSwgdGFibGUgYW5kIGdyb3VwIGh0bWwgZWxlbWVudHMuXG5cbkBmdW5jdGlvbiBnYXAoJGFtb3VudCA6IDEpIHtcbiAgQGlmICggJGFtb3VudCA9PSAxICkgeyBcbiAgICBAcmV0dXJuIHZhcigtLWdhcCk7IFxuICB9IEBlbHNlIHsgXG4gICAgQHJldHVybiBjYWxjKHZhcigtLWdhcCkgKiAjeyRhbW91bnR9KTsgXG4gIH1cbn1cblxuJGdhcDAgOiBnYXAoMC41KTsgJGdhcDAtIDogZ2FwKC0wLjUpO1xuJGdhcCAgOiBnYXAoMSk7ICAgJGdhcC0gIDogZ2FwKC0xKTtcbiRnYXAyIDogZ2FwKDIpOyAgICRnYXAyLSA6IGdhcCgtMik7XG4kZ2FwMyA6IGdhcCgzKTsgICAkZ2FwMy0gOiBnYXAoLTMpO1xuJGdhcDQgOiBnYXAoNCk7ICAgJGdhcDQtIDogZ2FwKC00KTtcbiRnYXA1IDogZ2FwKDUpOyAgICRnYXA1LSA6IGdhcCgtNSk7XG4kZ2FwNiA6IGdhcCg2KTsgICAkZ2FwNi0gOiBnYXAoLTYpO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gUmVsYXRpdmUgVW5pdHMgXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AZnVuY3Rpb24gX2R5bmFtaWMtdW5pdCgkY3VzdG9tLXByb3BlcnR5LCAkYW1vdW50LCAkbWluLCAkbWF4LCAkdXNlLW5lZ2F0aXZlIDogZmFsc2UsICR1c2UtY2xhbXAgOiB0cnVlKSB7XG5cbiAgLy8gQ2FsYyBNZXRob2RcbiAgJHJlc3VsdCA6IGNhbGMoKCN7JGN1c3RvbS1wcm9wZXJ0eX0gKiAjeyRhbW91bnR9KSArICN7aWYoJG1pbiA9PSAwLCAwcHgsICRtaW4pfSk7XG4gIFxuICAvLyBDbGFtcCBNZXRob2RcbiAgQGlmICggJHVzZS1jbGFtcCApIHtcbiAgICBAaWYgKCAkYW1vdW50ID09IDAgKSB7XG4gICAgICAkcmVzdWx0IDogY2xhbXAoI3ttYXRoLmRpdigkbWluLCAyKX0sICN7JGN1c3RvbS1wcm9wZXJ0eX0gKiAwLjUsICN7JG1heH0pO1xuICAgIH0gQGVsc2UgaWYgKCAkYW1vdW50ID09IDEgKSB7XG4gICAgICAkcmVzdWx0IDogY2xhbXAoI3skbWlufSwgI3skY3VzdG9tLXByb3BlcnR5fSwgI3skbWF4fSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkcmVzdWx0IDogY2xhbXAoI3skbWlufSwgI3skY3VzdG9tLXByb3BlcnR5fSAqICN7JGFtb3VudH0sICN7JG1heH0pO1xuICAgIH1cbiAgfSBcblxuICBAaWYgKCAkdXNlLW5lZ2F0aXZlICkge1xuICAgICRyZXN1bHQgOiBjYWxjKC0xICogI3skcmVzdWx0fSk7XG4gIH1cblxuICBAcmV0dXJuICRyZXN1bHQ7XG5cbn0gXG5cbi8vIFNwYWNlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBTcGFjZXJzIGFyZSBhIHJlbGF0aXZlIHZpZXdwb3J0IGhlaWdodCAodmgpIHVuaXQgaW50ZW5kZWQgdG8gYmUgdXNlZCBvbiBhIGNvbXBvbmVudGVkIGxldmVsLlxuLy8gVGhlIGFpbSBpcyB0byByZXRhaW4gY29uc2lzdGFudCB0b3AgYW5kIGJvdHRvbSBzcGFjaW5nIGFtb25nc3QgJ3NlY3Rpb24nIGFuZCAnY3VzdG9tJyBlbGVtZW50cy5cbi8vIFNwYWNlcnMgd2lsbCBlcXVhdGUgdG8gc29tZXRoaW5nIGxpa2U6IGAoJHNwYWNlciAqIHgpICsgJGdhcGAuIFxuLy8gVGhlICckZ2FwJyBpcyBhZGRlZCBzbyB0aGF0IHZoIHNwYWNpbmcgd2lsbCBuZXZlciBzY2FsZSB0b28gY2xvc2UgdG8gMHB4LiBcblxuQGZ1bmN0aW9uIHNwYWNlcigkYW1vdW50IDogMSwgJG1pbiA6ICRiYXNlLWdhcCwgJG1heCA6IG51bGwsICR1c2UtbmVnYXRpdmUgOiBmYWxzZSwgJHVzZS1jbGFtcCA6IHRydWUpIHtcbiAgQGlmICggJGFtb3VudCA9PSAwKSB7ICRhbW91bnQgOiAwLjU7ICRtaW4gOiBtYXRoLmRpdigkbWluLCAyKTsgfVxuICBAaWYgKCBtZXRhLnR5cGUtb2YoJG1heCkgPT0gJ251bGwnICkgeyBcbiAgICBAaWYgKCBtZXRhLnR5cGUtb2YoJG1pbikgPT0gJ3N0cmluZycgYW5kIHN0cmluZy5pbmRleCgkbWluLCAndmFyJykgKSB7XG4gICAgICAkbWF4IDogY2FsYygjeyRtaW59ICogI3skYW1vdW50ICsgMX0pOyBcbiAgICB9IEBlbHNlIHtcbiAgICAgICRtYXggOiAjeyRtaW4gKiAoJGFtb3VudCArIDEpfTsgXG4gICAgfVxuICB9XG4gIEByZXR1cm4gX2R5bmFtaWMtdW5pdCh2YXIoLS1zcGFjZXIpLCAkYW1vdW50LCAkbWluLCAkbWF4LCAkdXNlLW5lZ2F0aXZlLCAkdXNlLWNsYW1wKTtcbn1cblxuJHNwYWNlcjAgOiB2YXIoLS1zcGFjZXIwKTsgJHNwYWNlcjAtIDogdmFyKC0tc3BhY2VyMC0pO1xuJHNwYWNlciAgOiB2YXIoLS1zcGFjZXIxKTsgJHNwYWNlci0gIDogdmFyKC0tc3BhY2VyMS0pO1xuJHNwYWNlcjIgOiB2YXIoLS1zcGFjZXIyKTsgJHNwYWNlcjItIDogdmFyKC0tc3BhY2VyMi0pO1xuJHNwYWNlcjMgOiB2YXIoLS1zcGFjZXIzKTsgJHNwYWNlcjMtIDogdmFyKC0tc3BhY2VyMy0pO1xuJHNwYWNlcjQgOiB2YXIoLS1zcGFjZXI0KTsgJHNwYWNlcjQtIDogdmFyKC0tc3BhY2VyNC0pO1xuJHNwYWNlcjUgOiB2YXIoLS1zcGFjZXI1KTsgJHNwYWNlcjUtIDogdmFyKC0tc3BhY2VyNS0pO1xuJHNwYWNlcjYgOiB2YXIoLS1zcGFjZXI2KTsgJHNwYWNlcjYtIDogdmFyKC0tc3BhY2VyNi0pO1xuXG4vLyBHdXR0ZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gR3V0dGVycyBhcmUgYSByZWxhdGl2ZSB2aWV3cG9ydCB3aWR0aCAodncpIHVuaXQgaW50ZW5kZWQgdG8gYmUgdXNlZCBvbiBhIHBhcmVudCBsZXZlbDtcbi8vIGZvciBleGFtcGxlLCBhIHdyYXBwZXIgY29udGFpbmVyIG9yIGJvZHkgd2l0aCBuZXN0ZWQgY29tcG9uZW50cy4gXG4vLyBUaGUgYWltIGlzIHRvIHJldGFpbiBjb25zaXN0YW50IGxlZnQgYW5kIHJpZ2h0IHNwYWNpbmcgYW1vbmdzdCAnc2VjdGlvbicgYW5kICdjdXN0b20nIGVsZW1lbnRzLlxuLy8gR3V0dGVycyB3aWxsIGVxdWF0ZSB0byBzb21ldGhpbmcgbGlrZTogYCgkZ3V0dGVyICogeCkgKyAkZ2FwYC4gXG4vLyBUaGUgJyRnYXAnIGlzIGFkZGVkIHNvIHRoYXQgdncgc3BhY2luZyB3aWxsIG5ldmVyIHNjYWxlIHRvbyBjbG9zZSB0byAwcHguIFxuXG5AZnVuY3Rpb24gZ3V0dGVyKCRhbW91bnQgOiAxLCAkbWluIDogJGJhc2UtZ2FwLCAkbWF4IDogbnVsbCwgJHVzZS1uZWdhdGl2ZSA6IGZhbHNlLCAkdXNlLWNsYW1wIDogdHJ1ZSkge1xuICBAaWYgKCAkYW1vdW50ID09IDApIHsgJGFtb3VudCA6IDAuNTsgJG1pbiA6IG1hdGguZGl2KCRtaW4sIDIpOyB9XG4gIEBpZiAoIG1ldGEudHlwZS1vZigkbWF4KSA9PSAnbnVsbCcgKSB7IFxuICAgIEBpZiAoIG1ldGEudHlwZS1vZigkbWluKSA9PSAnc3RyaW5nJyBhbmQgc3RyaW5nLmluZGV4KCRtaW4sICd2YXInKSApIHtcbiAgICAgICRtYXggOiBjYWxjKCN7JG1pbn0gKiAjeyRhbW91bnQgKyAxfSk7IFxuICAgIH0gQGVsc2Uge1xuICAgICAgJG1heCA6ICN7JG1pbiAqICgkYW1vdW50ICsgMSl9OyBcbiAgICB9XG4gIH1cbiAgQHJldHVybiBfZHluYW1pYy11bml0KHZhcigtLWd1dHRlciksICRhbW91bnQsICRtaW4sICRtYXgsICR1c2UtbmVnYXRpdmUsICR1c2UtY2xhbXApO1xufVxuXG4kZ3V0dGVyMCA6IHZhcigtLWd1dHRlcjApOyAkZ3V0dGVyMC0gOiB2YXIoLS1ndXR0ZXIwLSk7XG4kZ3V0dGVyICA6IHZhcigtLWd1dHRlcjEpOyAkZ3V0dGVyLSAgOiB2YXIoLS1ndXR0ZXIxLSk7XG4kZ3V0dGVyMiA6IHZhcigtLWd1dHRlcjIpOyAkZ3V0dGVyMi0gOiB2YXIoLS1ndXR0ZXIyLSk7XG4kZ3V0dGVyMyA6IHZhcigtLWd1dHRlcjMpOyAkZ3V0dGVyMy0gOiB2YXIoLS1ndXR0ZXIzLSk7XG4kZ3V0dGVyNCA6IHZhcigtLWd1dHRlcjQpOyAkZ3V0dGVyNC0gOiB2YXIoLS1ndXR0ZXI0LSk7XG4kZ3V0dGVyNSA6IHZhcigtLWd1dHRlcjUpOyAkZ3V0dGVyNS0gOiB2YXIoLS1ndXR0ZXI1LSk7XG4kZ3V0dGVyNiA6IHZhcigtLWd1dHRlcjYpOyAkZ3V0dGVyNi0gOiB2YXIoLS1ndXR0ZXI2LSk7XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gVHJhbnNpdGlvbnNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkB1c2UgXCJoZWxwZXJzL2Vhc2VcIjtcblxuJGR1cmF0aW9uIDogMC4ycztcbiRlYXNlICAgICA6IGVhc2UuJGluLW91dDtcbiRkZWxheSAgICA6IG51bGw7XG5cbiR0cmFuc2l0aW9uIDogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgJGR1cmF0aW9uKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsICRlYXNlKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCAkZGVsYXkpO1xuXG4kc2lkZWJhci1vcGVuOiAwLjdzIGVhc2UuJG91dC1xdWFydDtcbiRzZWFyY2gtb3BlbjogMC40cyBlYXNlLiRvdXQtY3ViaWM7XG4kbmF2LWJhY2tncm91bmQ6IDAuM3MgZWFzZS4kb3V0LXF1YXJ0OyIsIkB1c2UgJy4uL192YXJpYWJsZXMnIGFzICo7XG5cblxuQG1peGluIGFuZ2xlZC1jbGlwKCkge1xuXHRjbGlwLXBhdGg6IHBvbHlnb24oMCUgMTAwJSwgMTVweCAwJSwgMTAwJSAwJSwgMTAwJSAxMDAlKTtcbn1cblxuQG1peGluIHNxdWFyZSgkbGVuZ3RoKSB7XG5cdHdpZHRoOiAkbGVuZ3RoO1xuXHRoZWlnaHQ6ICRsZW5ndGg7XG59XG5cbkBtaXhpbiBmZWF0dXJlZC1iYWRnZSgkY29sb3VyIDogJG9yYW5nZSkge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogMDtcblx0cGFkZGluZzogMC43cmVtIDJyZW0gMC43cmVtIDNyZW07XG5cdC8vIEZpeGVkIGhlaWdodCBzbGlnaHRseSBmaXhlcyBibHVycnkgdGV4dCBpc3N1ZSBpbiBjaHJvbWVcblx0aGVpZ2h0OiAzOXB4O1xuXHRiYWNrZ3JvdW5kOiAkY29sb3VyO1xuXHRjb2xvcjogJHdoaXRlO1xuXHQvLyAtMC41cHggc2xpZ2h0bHkgZml4ZXMgYmx1cnJ5IHRleHQgaXNzdWUgaW4gY2hyb21lXG5cdHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0wLjVweCkgdHJhbnNsYXRlWCgtMTAwJSkgdHJhbnNsYXRlWSgtMTAwJSkgcm90YXRlKC05MGRlZyk7XG5cdHRyYW5zZm9ybS1vcmlnaW46IGJvdHRvbSByaWdodDtcblx0QGluY2x1ZGUgYW5nbGVkLWNsaXAoKTtcbn1cblxuQG1peGluIGRpc2FibGVkKCRvcGFjaXR5IDogMC40KSB7XG4gIG9wYWNpdHk6ICRvcGFjaXR5O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuQG1peGluIHRleHQtZWxsaXBzaXMoKSB7XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufSJdfQ== */