/****************
 * Fonts
 ****************/
/****************
 * Paints
 ****************/
/****************
 * Effects
 ****************/
/****************
 * Grid Settings
 ****************/
/**************
 * Buttons
 **************/
/*
Secondary button border is determined by the text color when inactive,
and bg when hovered.
*/
/****************
 * Blocks
 ****************/
.block-logos {
  text-align: center;
  overflow: hidden;
  margin: clamp(5rem, 2.6923076923rem + 6.4102564103vw, 7.5rem) 0;
}
.block-logos--grey {
  background-color: #f5f6f8;
  margin: 0;
  padding: clamp(5rem, 2.6923076923rem + 6.4102564103vw, 7.5rem) 0;
}
.block-logos__title {
  margin-bottom: clamp(1rem, 0.5384615385rem + 1.2820512821vw, 1.5rem);
}
.block-logos__logos {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  margin: 0 clamp(-2.625rem, 1.4615384615rem + -5.4487179487vw, -0.5rem);
}
@media (min-width: 62.5rem) {
  .block-logos__logos a {
    flex-basis: 20%;
    padding: clamp(0.5rem, -1.4615384615rem + 5.4487179487vw, 2.625rem);
  }
}
.block-logos a::before, .block-logos a::after {
  display: none;
}
.block-logos__logo {
  margin: 0 clamp(0.5rem, -1.4615384615rem + 5.4487179487vw, 2.625rem);
  max-width: clamp(8.25rem, 4.9038461538rem + 9.2948717949vw, 11.875rem);
  height: auto;
}
@media (min-width: 62.5rem) {
  .block-logos__logo {
    margin: 0;
    width: 100%;
  }
}
.block-logos__button {
  margin-top: clamp(1.5rem, 2.4615384615rem + -1.2820512821vw, 2rem);
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNzcy9zcmMvX19zdHlsZXMvX3ZhcmlhYmxlcy5zY3NzIiwiYWNmLWJsb2Nrcy9sb2dvcy9zcmMvc3R5bGUuc2NzcyIsImNzcy9zcmMvdmVuZG9yL2Jvb3RzdHJhcC9taXhpbnMvX2JyZWFrcG9pbnRzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBa0NBO0FBQUE7QUFBQTtBQVVBO0FBQUE7QUFBQTtBQWtEQTtBQUFBO0FBQUE7QUFjQTtBQUFBO0FBQUE7QUFBQTtBQTJCQTtBQUFBO0FBQUE7QUMxSUE7RUFDQztFQUNBO0VBQ0E7O0FBRUE7RUFDQztFQUNBO0VBQ0E7O0FBR0Q7RUFDQzs7QUFHRDtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUNxQ0U7RURqQ0Q7SUFFQztJQUNBOzs7QUFPRjtFQUVDOztBQUtGO0VBQ0M7RUFDQTtFQUNBOztBQ2FFO0VEaEJIO0lBTUU7SUFDQTs7O0FBSUY7RUFDQyIsImZpbGUiOiJhY2YtYmxvY2tzL2xvZ29zL2Rpc3Qvc3R5bGUuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqKioqKioqKioqKioqKipcbiAqIEZvbnRzXG4gKioqKioqKioqKioqKioqKi9cbiRmb250LWJhc2U6IFwiUm9ib3RvXCIsIHNhbnMtc2VyaWY7XG5cbi8qKioqKioqKioqKioqKioqXG4gKiBQYWludHNcbiAqKioqKioqKioqKioqKioqL1xuXG4vLyBUT0RPOiBVcGRhdGUgYXZhaWxhYmxlIGJyYW5kIGNvbG9ycyBpbiAvaW5jbHVkZXMvYWNmLWpzLWFwaS9hY2YtanMtYXBpLmpzXG5cbiR3aGl0ZTogI2ZmZjtcbiRibGFjazogIzAwMDtcblxuJHBhaW50czogKFxuXHRhY2NlbnQ6ICMwMDc4YjcsXG5cdGFjY2VudC12YXJpYW50OiAjMDA2NDk5LFxuXHRiZy1kYXJrOiAjMDcxZDQ5LFxuXHRiZy1saWdodDogI2ZmZixcblx0cG1zLTMxMi1jOiAjMDBhOWNlLFxuXHRncmFkaWVudDogbGluZWFyLWdyYWRpZW50KDE2MWRlZywgIzAwYTljZSwgIzAwODJjYyksXG5cdGJnLWRhcmstZ3JhZGllbnQ6IGxpbmVhci1ncmFkaWVudCg4Ni42MmRlZywgIzA3MUQ0OSAwJSwgIzBCMkM3MCA5OC43NCUpLFxuXHRiZy1kYXJrLXRvLWxpZ2h0LWdyYWRpZW50OiBsaW5lYXItZ3JhZGllbnQoODIuNjNkZWcsICMwNzFkNDkgMCUsICMwNDYxOGEgNzYuMyUsICMwMGE5Y2UgMTAwJSksXG5cdHRleHQtZGFyazogIzAzMGUyNSxcblx0dGV4dC1saWdodDogI2ZmZixcblx0Z3JlZW46ICM2N2U0Y2UsXG5cdG5ldXRyYWwtMzA6ICM0MTQ4NTcsXG5cdG5ldXRyYWwtNDU6ICM2MTZkODQsXG5cdG5ldXRyYWwtNzA6ICNhN2FlYmQsXG5cdG5ldXRyYWwtODg6ICNkYWRmZTcsXG5cdG5ldXRyYWwtOTQ6ICNlZGVmZjMsXG5cdG5ldXRyYWwtOTc6ICNmNWY2ZjgsXG5cdGVycm9yOiAjYjAwMDIwLFxuXHR3YXJuaW5nOiAjZjlhNTEzLFxuXHRzdWNjZXNzOiAjMDA4NzM3LFxuXHRpbmZvcm1hdGlvbjogIzAwNmJiMixcblx0YXV0b2ZpbGw6ICNlNmYwZjcsXG4pO1xuXG4vKioqKioqKioqKioqKioqKlxuICogRWZmZWN0c1xuICoqKioqKioqKioqKioqKiovXG5cbiRlZmZlY3RzOiAoXG5cdGRyb3BzaGFkb3c6IDAgNnB4IDEwcHggcmdiYSgwLCAwLCAwLCAwLjEpLFxuXHRidXR0b24tZHJvcC1zaGFkb3ctZGVmYXVsdDogMCA0cHggMTBweCByZ2JhKDcsIDI5LCA3MywgMC4xOCksXG5cdGJ1dHRvbi1kcm9wLXNoYWRvdy1ob3ZlcjogMCA0cHggMThweCByZ2JhKDcsIDI5LCA3MywgMC4xOCksXG4pO1xuXG4vKioqKioqKioqKioqKioqKlxuICogR3JpZCBTZXR0aW5nc1xuICoqKioqKioqKioqKioqKiovXG4kZ3JpZC1icmVha3BvaW50czogKFxuXHR4czogMCxcblx0c206IHJlbSg1NzYpLFxuXHRtZDogcmVtKDc2OCksXG5cdGxnOiByZW0oOTkyKSxcblx0bWVudTogcmVtKDEwMDApLFxuXHR4bDogcmVtKDEyMDApLFxuXHR4eGw6IHJlbSgxNDEwKVxuKTtcbiRjdXN0b20tYnJlYWtwb2ludHM6IChcblx0bW9iaWxlbWVudTogcmVtKDEyMDApXG4pO1xuJGNvbnRhaW5lci1tYXgtd2lkdGhzOiAoXG5cdHhzOiByZW0oNTc2KSxcblx0c206IHJlbSg3NjgpLFxuXHRtZDogcmVtKDk5MiksXG5cdGxnOiByZW0oMTIwMCksXG5cdHhsOiByZW0oMTQxMClcbik7XG4kY29udGFpbmVyLXNtLXNwYWNpbmc6IHJlbSgyMCk7XG4kY29udGFpbmVyLW1kLXNwYWNpbmc6IHJlbSg0MCk7XG4kY29udGFpbmVyLWxnLXNwYWNpbmc6IHJlbSg2MCk7XG5cbiRncmlkLWd1dHRlci13aWR0aDogcmVtKDMwKTtcblxuLy8gRm9ybXNcbiRpbnB1dC10ZXh0OiBwYWludCh0ZXh0LWRhcmspO1xuJGlucHV0LXRleHQtcGxhY2Vob2xkZXI6IHBhaW50KG5ldXRyYWwtNDUpO1xuXG4vLyBUcmFuc2l0aW9uc1xuJHRyYW5zaXRpb24tc3RhbmRhcmQ6IGFsbCAwLjJzIGxpbmVhcjtcblxuLy8gVHlwb2dyYXBoeS5cbiRoci1jb2xvcjogcGFpbnQobmV1dHJhbC00NSk7XG4kbGluay1ob3Zlci1kZWNvcmF0aW9uOiBub25lO1xuXG4vLyBCbG9jayB0aXRsZVxuJGJsb2NrLXRpdGxlLW1iLXNtOiByZW0oNDApO1xuJGJsb2NrLXRpdGxlLW1iLW1kOiByZW0oNjQpO1xuXG4vLyBMaW5rc1xuJGxpbms6IHBhaW50KGFjY2VudCk7XG4kbGluay1ob3ZlcjogcGFpbnQoYWNjZW50LXZhcmlhbnQpO1xuXG4vLyBQYWdlIGhlcm9cbiRwYWdlLWhlcm8tYmc6IHBhaW50KG5ldXRyYWwtOTQpO1xuXG4vKioqKioqKioqKioqKipcbiAqIEJ1dHRvbnNcbiAqKioqKioqKioqKioqKi9cblxuLy8gUHJpbWFyeVxuJGJ1dHRvbi1wcmltYXJ5LWJnOiBwYWludChhY2NlbnQpO1xuJGJ1dHRvbi1wcmltYXJ5LXRleHQ6IHBhaW50KHRleHQtbGlnaHQpO1xuJGJ1dHRvbi1wcmltYXJ5LWhvdmVyLWJnOiBwYWludChhY2NlbnQtdmFyaWFudCk7XG4kYnV0dG9uLXByaW1hcnktaG92ZXItdGV4dDogcGFpbnQodGV4dC1saWdodCk7XG4kZGFyay1idXR0b24tcHJpbWFyeS1iZzogcGFpbnQoYmctbGlnaHQpO1xuJGRhcmstYnV0dG9uLXByaW1hcnktdGV4dDogcGFpbnQoYWNjZW50KTtcbiRkYXJrLWJ1dHRvbi1wcmltYXJ5LWhvdmVyLWJnOiBwYWludChiZy1saWdodCk7XG4kZGFyay1idXR0b24tcHJpbWFyeS1ob3Zlci10ZXh0OiBwYWludChhY2NlbnQtdmFyaWFudCk7XG5cbi8qXG5TZWNvbmRhcnkgYnV0dG9uIGJvcmRlciBpcyBkZXRlcm1pbmVkIGJ5IHRoZSB0ZXh0IGNvbG9yIHdoZW4gaW5hY3RpdmUsXG5hbmQgYmcgd2hlbiBob3ZlcmVkLlxuKi9cbiRidXR0b24tc2Vjb25kYXJ5LWJnOiB0cmFuc3BhcmVudDtcbiRidXR0b24tc2Vjb25kYXJ5LXRleHQ6IHBhaW50KGFjY2VudCk7XG4kYnV0dG9uLXNlY29uZGFyeS1ob3Zlci1iZzogcGFpbnQoYWNjZW50LXZhcmlhbnQpO1xuJGJ1dHRvbi1zZWNvbmRhcnktaG92ZXItdGV4dDogcGFpbnQodGV4dC1saWdodCk7XG4kZGFyay1idXR0b24tc2Vjb25kYXJ5LWJnOiB0cmFuc3BhcmVudDtcbiRkYXJrLWJ1dHRvbi1zZWNvbmRhcnktdGV4dDogcGFpbnQodGV4dC1saWdodCk7XG4kZGFyay1idXR0b24tc2Vjb25kYXJ5LWhvdmVyLWJnOiBwYWludChiZy1saWdodCk7XG4kZGFyay1idXR0b24tc2Vjb25kYXJ5LWhvdmVyLXRleHQ6IHBhaW50KGFjY2VudC12YXJpYW50KTtcblxuLy8gVGVydGlhcnlcbiRidXR0b24tdGVydGlhcnktdGV4dDogcGFpbnQoYWNjZW50KTtcbiRidXR0b24tdGVydGlhcnktaG92ZXItdGV4dDogcGFpbnQoYWNjZW50LXZhcmlhbnQpO1xuJGRhcmstYnV0dG9uLXRlcnRpYXJ5LXRleHQ6IHBhaW50KHRleHQtbGlnaHQpO1xuJGRhcmstYnV0dG9uLXRlcnRpYXJ5LWhvdmVyLXRleHQ6IHBhaW50KG5ldXRyYWwtNzApO1xuXG4vLyBBY2NvcmRpb25zXG4kYWNjb3JkaW9uLWJvcmRlcjogcGFpbnQobmV1dHJhbC04OCk7XG4kYWNjb3JkaW9uLWhlYWRlci10ZXh0OiBwYWludCh0ZXh0LWRhcmspO1xuJGFjY29yZGlvbi1oZWFkZXItYmc6IG5vbmU7XG4kYWNjb3JkaW9uLWhlYWRlci1ob3Zlci10ZXh0OiBwYWludChhY2NlbnQpO1xuJGFjY29yZGlvbi1oZWFkZXItaG92ZXItYmc6IHRyYW5zcGFyZW50O1xuJGFjY29yZGlvbi10ZXh0OiBwYWludCh0ZXh0LWRhcmspO1xuXG4vKioqKioqKioqKioqKioqKlxuICogQmxvY2tzXG4gKioqKioqKioqKioqKioqKi9cblxuLy8gSW1hZ2UgJiBUZXh0IExpbmtzXG4kaW1hZ2UtdGV4dC1saW5rcy10ZXh0OiAkbGluaztcbiRpbWFnZS10ZXh0LWxpbmtzLWhvdmVyLXRleHQ6ICRsaW5rLWhvdmVyO1xuJGltYWdlLXRleHQtbGlua3MtaG92ZXItYmc6IHBhaW50KG5ldXRyYWwtOTQpO1xuJGltYWdlLXRleHQtbGlua3MtYm9yZGVyOiBwYWludChuZXV0cmFsLTg4KTtcblxuLy8gU2xpZGVyc1xuJHNsaWRlci1idG4tYmc6IHBhaW50KGJnLWxpZ2h0KTtcbiRzbGlkZXItYnRuLWhvdmVyLWJnOiBwYWludCh0ZXh0LWxpZ2h0KTtcbiRzbGlkZXItYnRuLXRleHQ6IHBhaW50KGFjY2VudCk7XG4kc2xpZGVyLWJ0bi1ob3Zlci10ZXh0OiBwYWludChhY2NlbnQtdmFyaWFudCk7XG4kc2xpZGVyLWxpZ2h0Ym94LWJnOiAkYmxhY2s7XG4kc2xpZGVyLWxpZ2h0Ym94LXRleHQ6IHBhaW50KGJnLWxpZ2h0KTtcblxuLy8gUG9zdCBCbG9ja3MuXG4kcmVsYXRlZC1wb3N0cy1saW5rOiAkbGluaztcbiRyZWxhdGVkLXBvc3RzLWxpbmstaG92ZXI6ICRsaW5rLWhvdmVyO1xuJHJlbGF0ZWQtcG9zdHMtdGl0bGU6ICRibGFjaztcbiRyZWxhdGVkLXBvc3RzLXRpdGxlLWhvdmVyOiBwYWludChhY2NlbnQpO1xuJHJlbGF0ZWQtcG9zdHMtdGl0bGUtY2F0ZWdvcnk6ICRibGFjaztcbiRyZWxhdGVkLXBvc3RzLWJhY2tncm91bmQtZ3JleTogcGFpbnQobmV1dHJhbC04OCk7XG4kcmVsYXRlZC1wb3N0cy1jYXRlZ29yeTogJGJsYWNrO1xuXG4vLyBDVEFcbiRjdGEtYmc6IHBhaW50KG5ldXRyYWwtODgpO1xuJGN0YS10ZXh0OiBwYWludCh0ZXh0LWRhcmspO1xuJGN0YS1iZy1kYXJrOiBwYWludChiZy1kYXJrLWdyYWRpZW50KTtcbiRjdGEtdGV4dC1kYXJrOiBwYWludCh0ZXh0LWxpZ2h0KTtcblxuLy8gVGVzdGltb25pYWwgU2xpZGVyXG4kdGVzdGltb25pYWwtc2xpZGVyLWJnOiBwYWludChuZXV0cmFsLTg4KTtcblxuLy8gMi4gV09SRFBSRVNTXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJG1lZGlhLW1hcmdpbjogMzBweDtcbiRtZWRpYS1tYXJnaW4tbW9iaWxlOiAyMHB4O1xuXG4vLyBPdXRsaW5lXG4kb3V0bGluZTogcmVtKDIpIHNvbGlkICM3YWFjZmU7XG4iLCJAaW1wb3J0IFwiLi4vLi4vLi4vY3NzL3NyYy9saWIvYmFzZS1pbmNsdWRlc1wiO1xuXG4uYmxvY2stbG9nb3Mge1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdG1hcmdpbjogcmVzcG9uc2l2ZS12YWx1ZXMoODAsIDEyMCkgMDtcblxuXHQmLS1ncmV5IHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBwYWludChuZXV0cmFsLTk3KTtcblx0XHRtYXJnaW46IDA7XG5cdFx0cGFkZGluZzogcmVzcG9uc2l2ZS12YWx1ZXMoODAsIDEyMCkgMDtcblx0fVxuXG5cdCZfX3RpdGxlIHtcblx0XHRtYXJnaW4tYm90dG9tOiByZXNwb25zaXZlLXZhbHVlcygxNiwgMjQpO1xuXHR9XG5cblx0Jl9fbG9nb3Mge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0XHRmbGV4LXdyYXA6IHdyYXA7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0XHRtYXJnaW46IDAgcmVzcG9uc2l2ZS12YWx1ZXMoLTgsIC00Mik7XG5cblx0XHRAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKG1lbnUpIHtcblxuXHRcdFx0YSB7XG5cblx0XHRcdFx0ZmxleC1iYXNpczogMjAlO1xuXHRcdFx0XHRwYWRkaW5nOiByZXNwb25zaXZlLXZhbHVlcyg4LCA0Mik7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0YSB7XG5cblx0XHQmOjpiZWZvcmUsXG5cdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cblx0fVxuXG5cdCZfX2xvZ28ge1xuXHRcdG1hcmdpbjogMCByZXNwb25zaXZlLXZhbHVlcyg4LCA0Mik7XG5cdFx0bWF4LXdpZHRoOiByZXNwb25zaXZlLXZhbHVlcygxMzIsIDE5MCk7XG5cdFx0aGVpZ2h0OiBhdXRvO1xuXG5cdFx0QGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cChtZW51KSB7XG5cdFx0XHRtYXJnaW46IDA7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHR9XG5cdH1cblxuXHQmX19idXR0b24ge1xuXHRcdG1hcmdpbi10b3A6IHJlc3BvbnNpdmUtdmFsdWVzKDMyLCAyNCk7XG5cdH1cbn1cbiIsIi8vIEJyZWFrcG9pbnQgdmlld3BvcnQgc2l6ZXMgYW5kIG1lZGlhIHF1ZXJpZXMuXG4vL1xuLy8gQnJlYWtwb2ludHMgYXJlIGRlZmluZWQgYXMgYSBtYXAgb2YgKG5hbWU6IG1pbmltdW0gd2lkdGgpLCBvcmRlciBmcm9tIHNtYWxsIHRvIGxhcmdlOlxuLy9cbi8vICAgICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweClcbi8vXG4vLyBUaGUgbWFwIGRlZmluZWQgaW4gdGhlIGAkZ3JpZC1icmVha3BvaW50c2AgZ2xvYmFsIHZhcmlhYmxlIGlzIHVzZWQgYXMgdGhlIGAkYnJlYWtwb2ludHNgIGFyZ3VtZW50IGJ5IGRlZmF1bHQuXG5cbi8vIE5hbWUgb2YgdGhlIG5leHQgYnJlYWtwb2ludCwgb3IgbnVsbCBmb3IgdGhlIGxhc3QgYnJlYWtwb2ludC5cbi8vXG4vLyAgICA+PiBicmVha3BvaW50LW5leHQoc20pXG4vLyAgICBtZFxuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxuLy8gICAgbWRcbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSwgJGJyZWFrcG9pbnQtbmFtZXM6ICh4cyBzbSBtZCBsZyB4bCkpXG4vLyAgICBtZFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbmV4dCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cywgJGJyZWFrcG9pbnQtbmFtZXM6IG1hcC1rZXlzKCRicmVha3BvaW50cykpIHtcbiAgJG46IGluZGV4KCRicmVha3BvaW50LW5hbWVzLCAkbmFtZSk7XG4gIEByZXR1cm4gaWYoJG4gIT0gbnVsbCBhbmQgJG4gPCBsZW5ndGgoJGJyZWFrcG9pbnQtbmFtZXMpLCBudGgoJGJyZWFrcG9pbnQtbmFtZXMsICRuICsgMSksIG51bGwpO1xufVxuXG4vLyBNaW5pbXVtIGJyZWFrcG9pbnQgd2lkdGguIE51bGwgZm9yIHRoZSBzbWFsbGVzdCAoZmlyc3QpIGJyZWFrcG9pbnQuXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1taW4oc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXG4vLyAgICA1NzZweFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtaW46IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XG4gIEByZXR1cm4gaWYoJG1pbiAhPSAwLCAkbWluLCBudWxsKTtcbn1cblxuLy8gTWF4aW11bSBicmVha3BvaW50IHdpZHRoLiBOdWxsIGZvciB0aGUgbGFyZ2VzdCAobGFzdCkgYnJlYWtwb2ludC5cbi8vIFRoZSBtYXhpbXVtIHZhbHVlIGlzIGNhbGN1bGF0ZWQgYXMgdGhlIG1pbmltdW0gb2YgdGhlIG5leHQgb25lIGxlc3MgMC4wMnB4XG4vLyB0byB3b3JrIGFyb3VuZCB0aGUgbGltaXRhdGlvbnMgb2YgYG1pbi1gIGFuZCBgbWF4LWAgcHJlZml4ZXMgYW5kIHZpZXdwb3J0cyB3aXRoIGZyYWN0aW9uYWwgd2lkdGhzLlxuLy8gU2VlIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9tZWRpYXF1ZXJpZXMtNC8jbXEtbWluLW1heFxuLy8gVXNlcyAwLjAycHggcmF0aGVyIHRoYW4gMC4wMXB4IHRvIHdvcmsgYXJvdW5kIGEgY3VycmVudCByb3VuZGluZyBidWcgaW4gU2FmYXJpLlxuLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzgyNjFcbi8vXG4vLyAgICA+PiBicmVha3BvaW50LW1heChzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcbi8vICAgIDc2Ny45OHB4XG5AZnVuY3Rpb24gYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG5leHQ6IGJyZWFrcG9pbnQtbmV4dCgkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgQHJldHVybiBpZigkbmV4dCwgYnJlYWtwb2ludC1taW4oJG5leHQsICRicmVha3BvaW50cykgLSAuMDIsIG51bGwpO1xufVxuXG4vLyBSZXR1cm5zIGEgYmxhbmsgc3RyaW5nIGlmIHNtYWxsZXN0IGJyZWFrcG9pbnQsIG90aGVyd2lzZSByZXR1cm5zIHRoZSBuYW1lIHdpdGggYSBkYXNoIGluIGZyb250LlxuLy8gVXNlZnVsIGZvciBtYWtpbmcgcmVzcG9uc2l2ZSB1dGlsaXRpZXMuXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1pbmZpeCh4cywgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcbi8vICAgIFwiXCIgIChSZXR1cm5zIGEgYmxhbmsgc3RyaW5nKVxuLy8gICAgPj4gYnJlYWtwb2ludC1pbmZpeChzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcbi8vICAgIFwiLXNtXCJcbkBmdW5jdGlvbiBicmVha3BvaW50LWluZml4KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gIEByZXR1cm4gaWYoYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cykgPT0gbnVsbCwgXCJcIiwgXCItI3skbmFtZX1cIik7XG59XG5cbi8vIE1lZGlhIG9mIGF0IGxlYXN0IHRoZSBtaW5pbXVtIGJyZWFrcG9pbnQgd2lkdGguIE5vIHF1ZXJ5IGZvciB0aGUgc21hbGxlc3QgYnJlYWtwb2ludC5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSB0byB0aGUgZ2l2ZW4gYnJlYWtwb2ludCBhbmQgd2lkZXIuXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC11cCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgQGlmICRtaW4ge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIE1lZGlhIG9mIGF0IG1vc3QgdGhlIG1heGltdW0gYnJlYWtwb2ludCB3aWR0aC4gTm8gcXVlcnkgZm9yIHRoZSBsYXJnZXN0IGJyZWFrcG9pbnQuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQgYW5kIG5hcnJvd2VyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWF4OiBicmVha3BvaW50LW1heCgkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgQGlmICRtYXgge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIE1lZGlhIHRoYXQgc3BhbnMgbXVsdGlwbGUgYnJlYWtwb2ludCB3aWR0aHMuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgYmV0d2VlbiB0aGUgbWluIGFuZCBtYXggYnJlYWtwb2ludHNcbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LWJldHdlZW4oJGxvd2VyLCAkdXBwZXIsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJGxvd2VyLCAkYnJlYWtwb2ludHMpO1xuICAkbWF4OiBicmVha3BvaW50LW1heCgkdXBwZXIsICRicmVha3BvaW50cyk7XG5cbiAgQGlmICRtaW4gIT0gbnVsbCBhbmQgJG1heCAhPSBudWxsIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikgYW5kIChtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWF4ID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJGxvd2VyLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWluID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkdXBwZXIsICRicmVha3BvaW50cykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vIE1lZGlhIGJldHdlZW4gdGhlIGJyZWFrcG9pbnQncyBtaW5pbXVtIGFuZCBtYXhpbXVtIHdpZHRocy5cbi8vIE5vIG1pbmltdW0gZm9yIHRoZSBzbWFsbGVzdCBicmVha3BvaW50LCBhbmQgbm8gbWF4aW11bSBmb3IgdGhlIGxhcmdlc3Qgb25lLlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IG9ubHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQsIG5vdCB2aWV3cG9ydHMgYW55IHdpZGVyIG9yIG5hcnJvd2VyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtb25seSgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50cyk7XG5cbiAgQGlmICRtaW4gIT0gbnVsbCBhbmQgJG1heCAhPSBudWxsIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikgYW5kIChtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWF4ID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJG5hbWUsICRicmVha3BvaW50cykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICRtaW4gPT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKCRuYW1lLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuIl19 */
