/****************
 * Fonts
 ****************/
/****************
 * Paints
 ****************/
/****************
 * Effects
 ****************/
/****************
 * Grid Settings
 ****************/
#jquery-live-search {
  width: 100vw !important;
  margin-top: -0.375rem;
}

.block-grid-columns {
  margin-bottom: -2.5rem;
}
#abbreviations + .block-grid-columns {
  padding-top: clamp(3rem, -2.9813084112rem + 12.46105919vw, 8rem);
}

.grid-columns__column {
  margin-bottom: 2.5rem;
}
.grid-columns__column p > img {
  outline: 1px solid #000;
  aspect-ratio: 4/3;
  object-fit: cover;
}
@media (min-width: 48rem) {
  .grid-columns__column p > img {
    aspect-ratio: 16/9;
  }
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNzcy9zcmMvX19zdHlsZXMvX3ZhcmlhYmxlcy5zY3NzIiwiY3NzL3NyYy9fX3N0eWxlcy9fZWxlbWVudHMuc2NzcyIsImFjZi1ibG9ja3MvZ3JpZC1jb2x1bW5zL3NyYy9zdHlsZS5zY3NzIiwiY3NzL3NyYy92ZW5kb3IvYm9vdHN0cmFwL21peGlucy9fYnJlYWtwb2ludHMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFnREE7QUFBQTtBQUFBO0FBOEJBO0FBQUE7QUFBQTtBQ29YQTtFQUNDO0VBQ0E7OztBQ3hjRDtFQUNDOztBQUdBO0VBQ0M7OztBQUtEO0VBQ0M7O0FBRUE7RUFDQztFQUNBO0VBQ0E7O0FDMENDO0VEN0NGO0lBTUUiLCJmaWxlIjoiYWNmLWJsb2Nrcy9ncmlkLWNvbHVtbnMvZGlzdC9zdHlsZS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKioqKioqKioqKioqKioqKlxuICogRm9udHNcbiAqKioqKioqKioqKioqKioqL1xuJGZvbnQtYmFzZTogXCJVbnRpdGxlZCBTYW5zXCIsIHNhbnMtc2VyaWY7XG4kZm9udC1oZWFkbGluZXM6IFwiUHVibGljbyBCYW5uZXJcIiwgc2VyaWY7XG5cbi8qKioqKioqKioqKioqKioqXG4gKiBQYWludHNcbiAqKioqKioqKioqKioqKioqL1xuJHBhaW50czogKFxuXHRtaXN0OiAjYzFjNGNjLFxuXHRza3k6ICNhYWIzY2IsXG5cdHJhaW46ICM5ZGI0YzAsXG5cdG1pZG5pZ2h0OiAjMzUzYzUyLFxuXHRzYWdlOiAjYWFiMTk5LFxuXHRzcHJpbmc6ICNjMGQyYWIsXG5cdHNwcnVjZTogIzVmN2E3Yixcblx0Z3JvdmU6ICMyYzQ3NDgsXG5cdHNhbmQ6ICNiN2IzYTQsXG5cdHNhZmZyb246ICNmMGNkN2YsXG5cdGNsZW1lbnRpbmU6ICNlM2FmN2QsXG5cdGNsYXk6ICM5MDZkNWQsXG5cdGNsb3VkOiAjZjZmNWVmLFxuXHR3aGl0ZTogI2ZmZixcblx0YmxhY2s6ICMwMDAsXG5cdHRleHQtZGFyay1wcmltYXJ5OiAjMDAwLFxuXHR0ZXh0LWRhcmstc2Vjb25kYXJ5OiAjNWU1ZjYxLFxuXHR0ZXh0LWRhcmstdGVydGlhcnk6ICNhMGExYTMsXG5cdHRleHQtbGlnaHQtcHJpbWFyeTogI2ZmZixcblx0dGV4dC1saWdodC1zZWNvbmRhcnk6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KSxcblx0dGV4dC1saWdodC10ZXJ0aWFyeTogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpLFxuXHRib3JkZXItbGlnaHQtcHJpbWFyeTogI2ZmZixcblx0Ym9yZGVyLWxpZ2h0LXRlcnRpYXJ5OiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMiksXG5cdGJvcmRlci1kYXJrLXByaW1hcnk6ICMwMDAsXG5cdGJvcmRlci1uYXY6IHJnYmEoMCwgMCwgMCwgMC4xKSxcblx0aW50ZXJhY3Rpb246ICNmMGNkN2YsXG5cdGludGVyYWN0aW9uLWhvdmVyOiAjZjVjZjdhLFxuXHRlcnJvcjogIzllMzYyYyxcblx0d2FybmluZzogI2U1OTU0NSxcblx0c3VjY2VzczogIzQ1N2E0YSxcblx0aW5mb3JtYXRpb246ICMzMjZiYTgsXG5cdGF1dG9maWxsOiAjZjJmOGZjLFxuXHRncmV5LTUwOiAjZjVmNmY3LFxuXHRncmV5LTEwMDogI2UyZTRlOCxcblx0Z3JleS0yMDA6ICNjOWNjZDQsXG5cdGdyZXktMzAwOiAjYWRiMWJjLFxuXHRncmV5LTQwMDogIzk2OWJhOSxcblx0Z3JleS01MDA6ICM3Zjg1OTUsXG5cdGdyZXktNjAwOiAjNTY1YjY5LFxuXHRncmV5LTcwMDogIzMwMzMzYSxcblx0Z3JleS04MDA6ICMxZDFlMjMsXG5cdGdyZXktOTAwOiAjMGEwYTBjLFxuKTtcblxuLyoqKioqKioqKioqKioqKipcbiAqIEVmZmVjdHNcbiAqKioqKioqKioqKioqKioqL1xuJGVmZmVjdHM6IChcbik7XG5cbkBtaXhpbiBlbGV2YXRpb24ge1xuXHRib3gtc2hhZG93OiAwIHJlbSgxKSByZW0oMikgcmdiYSgwLCAwLCAwLCAwLjA1KTtcblxuXHRAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKHNtKSB7XG5cdFx0Ym94LXNoYWRvdzogMCByZW0oMSkgcmVtKDMpIHJnYmEoMCwgMCwgMCwgMC4xKSwgMCByZW0oMSkgcmVtKDIpIHJnYmEoMCwgMCwgMCwgMC4wNik7XG5cdH1cblxuXHRAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKG1kKSB7XG5cdFx0Ym94LXNoYWRvdzogMCByZW0oNCkgcmVtKDgpIHJlbSgtMikgcmdiYSgwLCAwLCAwLCAwLjEpLCAwIHJlbSgyKSByZW0oNCkgcmVtKC0yKSByZ2JhKDAsIDAsIDAsIDAuMDYpO1xuXHR9XG5cblx0QGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cChsZykge1xuXHRcdGJveC1zaGFkb3c6IDAgcmVtKDEyKSByZW0oMTYpIHJlbSgtNCkgcmdiYSgwLCAwLCAwLCAwLjA4KSwgMCByZW0oNCkgcmVtKDYpIHJlbSgtMikgcmdiYSgwLCAwLCAwLCAwLjAzKTtcblx0fVxuXG5cdEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoeGwpIHtcblx0XHRib3gtc2hhZG93OiAwIHJlbSgyMCkgcmVtKDI0KSByZW0oLTQpIHJnYmEoMCwgMCwgMCwgMC4wOCksIDAgcmVtKDgpIHJlbSg4KSByZW0oLTQpIHJnYmEoMCwgMCwgMCwgMC4wMyk7XG5cdH1cblxuXHRAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKHh4bCkge1xuXHRcdGJveC1zaGFkb3c6IDAgcmVtKDI0KSByZW0oNDgpIHJlbSgtMTIpIHJnYmEoMCwgMCwgMCwgMC4xOCk7XG5cdH1cbn1cblxuLyoqKioqKioqKioqKioqKipcbiAqIEdyaWQgU2V0dGluZ3NcbiAqKioqKioqKioqKioqKioqL1xuXG4kZ3JpZC1icmVha3BvaW50czogKFxuXHR4czogMCxcblx0c206IHJlbSg1NzYpLFxuXHRtZDogcmVtKDc2OCksXG5cdGxnOiByZW0oOTkyKSxcblx0bGdhbHQ6IHJlbSgxMDIwKSxcblx0eGw6IHJlbSgxMjAwKSxcblx0eHhsOiByZW0oMTQxMClcbik7XG4kY3VzdG9tLWJyZWFrcG9pbnRzOiAoXG5cdG1vYmlsZW1lbnU6IHJlbSgxMjAwKSxcblx0Y2FyZWVyc21lbnU6IHJlbSgxMzMwKVxuKTtcbiRjb250YWluZXItbWF4LXdpZHRoczogKFxuXHR4czogcmVtKDU3NiksXG5cdHNtOiByZW0oNzY4KSxcblx0bWQ6IHJlbSg5OTIpLFxuXHRsZzogcmVtKDEyMDApLFxuXHR4bDogcmVtKDE0MTApXG4pO1xuXG4kY29udGFpbmVyLXNtLXNwYWNpbmc6IHJlbSgyMCk7XG4kY29udGFpbmVyLW1kLXNwYWNpbmc6IHJlbSg0MCk7XG4kY29udGFpbmVyLWxnLXNwYWNpbmc6IHJlbSg2MCk7XG5cbiRncmlkLWd1dHRlci13aWR0aDogcmVtKDE1KTtcbiRncmlkLXNtLWd1dHRlci13aWR0aDogJGdyaWQtZ3V0dGVyLXdpZHRoO1xuJGdyaWQtbWQtZ3V0dGVyLXdpZHRoOiByZW0oMjApO1xuJGdyaWQtbGctZ3V0dGVyLXdpZHRoOiByZW0oMzApO1xuXG4vLyBUcmFuc2l0aW9uc1xuJHRyYW5zaXRpb24tc3RhbmRhcmQ6IGFsbCAwLjJzIGxpbmVhcjtcblxuLy8gQmxvY2sgdGl0bGVcbiRibG9jay10aXRsZS1tYi1zbTogcmVtKDQwKTtcbiRibG9jay10aXRsZS1tYi1tZDogcmVtKDY0KTtcblxuJG1lZGlhLW1hcmdpbjogMzBweDtcbiRtZWRpYS1tYXJnaW4tbW9iaWxlOiAyMHB4O1xuXG4vLyBPdXRsaW5lXG4kb3V0bGluZTogcmVtKDIpIHNvbGlkICM3YWFjZmU7XG4iLCIvLyBCdXR0b25zIGFuZCBMaW5rcyAtIENhdGVnb3J5IEJhZGdlXG5AbWl4aW4gcGlsbC1iYWRnZSggJGNvbG9yOiBub3JtYWwgKSB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0Ym9yZGVyLXJhZGl1czogcmVtKDMyKTtcblx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0Zm9udC13ZWlnaHQ6IDQwMDtcblx0d29yZC1icmVhazogYnJlYWstYWxsO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXG5cdEBpZiAkY29sb3IgPT0gbm9ybWFsIHtcblx0XHRib3JkZXI6IDAuNXB4IHNvbGlkIHBhaW50KGJvcmRlci1kYXJrLXByaW1hcnkpO1xuXHRcdGNvbG9yOiBwYWludCh0ZXh0LWRhcmstcHJpbWFyeSk7XG5cblx0XHQmW2hyZWZdLFxuXHRcdCZbZGF0YS1maWx0ZXJdIHtcblx0XHRcdCY6aG92ZXIsXG5cdFx0XHQmOmZvY3VzLFxuXHRcdFx0JjphY3RpdmUge1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBwYWludChzYWZmcm9uKTtcblx0XHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdFx0fVxuXHRcdH1cblx0fSBAZWxzZSB7XG5cdFx0Ym9yZGVyOiAwLjVweCBzb2xpZCBwYWludChib3JkZXItbGlnaHQtcHJpbWFyeSk7XG5cdFx0Y29sb3I6IHBhaW50KHRleHQtbGlnaHQtcHJpbWFyeSk7XG5cblx0XHQmW2hyZWZdLFxuXHRcdCZbZGF0YS1maWx0ZXJdIHtcblx0XHRcdCY6aG92ZXIsXG5cdFx0XHQmOmZvY3VzLFxuXHRcdFx0JjphY3RpdmUge1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBwYWludCh0ZXh0LWxpZ2h0LXByaW1hcnkpO1xuXHRcdFx0XHRib3JkZXItY29sb3I6IHBhaW50KGJvcmRlci1kYXJrLXByaW1hcnkpO1xuXHRcdFx0XHRjb2xvcjogcGFpbnQodGV4dC1kYXJrLXByaW1hcnkpO1xuXHRcdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbkBtaXhpbiBwaWxsLWJhZGdlLXNpemUoICRzaXplOiBtICkge1xuXHRAaWYgJHNpemUgPT0gbSB7XG5cdFx0aGVpZ2h0OiByZW0oMjQpO1xuXHRcdGZvbnQtc2l6ZTogcmVtKDE0KTtcblx0XHRsaW5lLWhlaWdodDogcmVtKDI0KTsgLy8gZG9lc24ndCBtYXRjaCBmaWdtYSB0byBjb21wZW5zZSBwZWN1bGlhciBmb250IGFuZCBrZWVwIGNlbnRlci12YWxpZ25lZFxuXHRcdHBhZGRpbmc6IDAgcmVtKDEwKTsgLy8gZG9lc24ndCBtYXRjaCBmaWdtYSB0byBjb21wZW5zZSBwZWN1bGlhciBmb250IGFuZCBrZWVwIGNlbnRlci12YWxpZ25lZFxuXG5cdFx0Jjpub3QoOmxhc3QtY2hpbGQpIHtcblx0XHRcdG1hcmdpbi1ib3R0b206IHJlbSgxMik7XG5cdFx0fVxuXHR9IEBlbHNlIGlmICRzaXplID09IHMge1xuXHRcdGhlaWdodDogcmVtKDE5KTtcblx0XHRmb250LXNpemU6IHJlbSgxMik7XG5cdFx0bGluZS1oZWlnaHQ6IHJlbSgxOSk7XG5cdFx0cGFkZGluZzogMCByZW0oOCk7XG5cblx0XHQmOm5vdCg6bGFzdC1jaGlsZCkge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogcmVtKDgpO1xuXHRcdH1cblx0fSBAZWxzZSB7XG5cdFx0aGVpZ2h0OiByZW0oMTcpO1xuXHRcdGZvbnQtc2l6ZTogcmVtKDEwKTtcblx0XHRsaW5lLWhlaWdodDogcmVtKDE3KTtcblx0XHRwYWRkaW5nOiAwIHJlbSg2KTtcblxuXHRcdCY6bm90KDpsYXN0LWNoaWxkKSB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiByZW0oNik7XG5cdFx0fVxuXHR9XG59XG5cblxuLy8gQnV0dG9ucyBhbmQgTGlua3MgLSBMaW5rIHdpdGggSWNvblxuQG1peGluIGxpbmstd2l0aC1pY29uKCAkY29sb3I6IG5vcm1hbCApIHtcblx0ZGlzcGxheTogaW5saW5lLWZsZXg7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdGZvbnQtd2VpZ2h0OiA1MDA7XG5cdGdhcDogcmVtKDIpO1xuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cblx0QGlmICRjb2xvciA9PSBub3JtYWwge1xuXHRcdGNvbG9yOiBwYWludCh0ZXh0LWRhcmstcHJpbWFyeSk7XG5cblx0XHQmW2hyZWZdIHtcblx0XHRcdCY6aG92ZXIsXG5cdFx0XHQmOmZvY3VzLFxuXHRcdFx0JjphY3RpdmUge1xuXHRcdFx0XHRjb2xvcjogcGFpbnQodGV4dC1kYXJrLXByaW1hcnkpO1xuXHRcdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cblx0XHRcdFx0c3BhbiB7XG5cdFx0XHRcdFx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH0gQGVsc2Uge1xuXHRcdGJvcmRlcjogMC41cHggc29saWQgcGFpbnQoYm9yZGVyLWxpZ2h0LXByaW1hcnkpO1xuXHRcdGNvbG9yOiBwYWludCh0ZXh0LWxpZ2h0LXByaW1hcnkpO1xuXG5cdFx0JltocmVmXSB7XG5cdFx0XHQmOmhvdmVyLFxuXHRcdFx0Jjpmb2N1cyxcblx0XHRcdCY6YWN0aXZlIHtcblx0XHRcdFx0Y29sb3I6IHBhaW50KHRleHQtbGlnaHQtcHJpbWFyeSk7XG5cdFx0XHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuXHRcdFx0XHRzcGFuIHtcblx0XHRcdFx0XHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG5AbWl4aW4gbGluay13aXRoLWljb24tc2l6ZSggJHNpemU6IG0gKSB7XG5cdEBpZiAkc2l6ZSA9PSBtIHtcblx0XHRmb250LXNpemU6IHJlbSgxNik7XG5cblx0XHQmOm5vdCg6bGFzdC1jaGlsZCkge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogcmVtKDEyKTtcblx0XHR9XG5cblx0XHQmOjpiZWZvcmUsXG5cdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0Zm9udC1zaXplOiByZW0oMjApICFpbXBvcnRhbnQ7XG5cdFx0XHRoZWlnaHQ6IHJlbSgyMCk7XG5cdFx0fVxuXG5cdFx0c3BhbiB7XG5cdFx0XHRoZWlnaHQ6IHJlbSgxNik7XG5cdFx0XHRsaW5lLWhlaWdodDogcmVtKDIwKTtcblx0XHR9XG5cdH0gQGVsc2UgaWYgJHNpemUgPT0gcyB7XG5cdFx0Zm9udC1zaXplOiByZW0oMTQpO1xuXG5cdFx0Jjpub3QoOmxhc3QtY2hpbGQpIHtcblx0XHRcdG1hcmdpbi1ib3R0b206IHJlbSg4KTtcblx0XHR9XG5cblx0XHQmOjpiZWZvcmUsXG5cdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0Zm9udC1zaXplOiByZW0oMjApICFpbXBvcnRhbnQ7XG5cdFx0XHRoZWlnaHQ6IHJlbSgyMCk7XG5cdFx0fVxuXG5cdFx0c3BhbiB7XG5cdFx0XHRoZWlnaHQ6IHJlbSgxNCk7XG5cdFx0XHRsaW5lLWhlaWdodDogcmVtKDE3KTtcblx0XHR9XG5cdH0gQGVsc2Uge1xuXHRcdGZvbnQtc2l6ZTogcmVtKDEyKTtcblxuXHRcdCY6bm90KDpsYXN0LWNoaWxkKSB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiByZW0oNik7XG5cdFx0fVxuXG5cdFx0Jjo6YmVmb3JlLFxuXHRcdCY6OmFmdGVyIHtcblx0XHRcdGZvbnQtc2l6ZTogcmVtKDE2KSAhaW1wb3J0YW50O1xuXHRcdFx0aGVpZ2h0OiByZW0oMTYpO1xuXHRcdH1cblxuXHRcdHNwYW4ge1xuXHRcdFx0aGVpZ2h0OiByZW0oMTIpO1xuXHRcdFx0bGluZS1oZWlnaHQ6IHJlbSgxNCk7XG5cdFx0fVxuXHR9XG59XG5cblxuLy8gQnV0dG9ucyBhbmQgTGlua3MgLSBMaW5rIHdpdGggQ2lyY2xlIEJ1dHRvblxuQG1peGluIGxpbmstd2l0aC3RgWlyY2xlKCAkY29sb3I6IG5vcm1hbCApIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRkaXNwbGF5OiBpbmxpbmUtZmxleDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0Zm9udC13ZWlnaHQ6IDUwMDtcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cblx0Jjo6YmVmb3JlLFxuXHQmOjphZnRlciB7XG5cdFx0dHJhbnNpdGlvbjogJHRyYW5zaXRpb24tc3RhbmRhcmQ7XG5cdFx0dHJhbnNpdGlvbi1wcm9wZXJ0eTogYm9yZGVyLWNvbG9yO1xuXHR9XG5cblx0Jjo6YmVmb3JlIHtcblx0XHRjb250ZW50OiBcIlwiO1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0Ym90dG9tOiByZW0oMSk7XG5cdFx0bGVmdDogMDtcblx0fVxuXG5cdCY6OmFmdGVyIHtcblx0XHRAaW5jbHVkZSBpY29uLWZvbnQoJGljb24tYXJyb3ctcmlnaHQsICN7cmVtKDE2KX0pO1xuXHRcdGJvcmRlci1yYWRpdXM6IDUwJTtcblx0XHRmbGV4LXNocmluazogMDtcblx0fVxuXG5cdHNwYW4ge1xuXHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cblx0XHQmOmVtcHR5IHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXHR9XG5cblx0QGlmICRjb2xvciA9PSBub3JtYWwge1xuXHRcdGNvbG9yOiBwYWludCh0ZXh0LWRhcmstcHJpbWFyeSk7XG5cblx0XHQmOjphZnRlciB7XG5cdFx0XHRib3JkZXI6IDFweCBzb2xpZCBwYWludChpbnRlcmFjdGlvbik7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBwYWludChpbnRlcmFjdGlvbik7XG5cdFx0fVxuXG5cdFx0Jjpob3Zlcixcblx0XHQmOmZvY3VzLFxuXHRcdCY6YWN0aXZlIHtcblx0XHRcdGNvbG9yOiBwYWludCh0ZXh0LWRhcmstcHJpbWFyeSk7XG5cdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cblx0XHRcdCY6OmFmdGVyLFxuXHRcdFx0Jjo6YmVmb3JlIHtcblx0XHRcdFx0Ym9yZGVyLWNvbG9yOiBwYWludCh0ZXh0LWRhcmstcHJpbWFyeSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9IEBlbHNlIHtcblx0XHRjb2xvcjogcGFpbnQodGV4dC1saWdodC1wcmltYXJ5KTtcblxuXHRcdCY6OmFmdGVyIHtcblx0XHRcdGJvcmRlcjogMXB4IHNvbGlkIHBhaW50KHRleHQtbGlnaHQtcHJpbWFyeSk7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBwYWludCh0ZXh0LWxpZ2h0LXByaW1hcnkpO1xuXHRcdFx0Y29sb3I6IHBhaW50KHRleHQtZGFyay1wcmltYXJ5KTtcblx0XHR9XG5cblx0XHQmOmhvdmVyLFxuXHRcdCY6Zm9jdXMsXG5cdFx0JjphY3RpdmUge1xuXHRcdFx0Y29sb3I6IHBhaW50KHRleHQtbGlnaHQtcHJpbWFyeSk7XG5cdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0XHRib3JkZXItY29sb3I6IHBhaW50KHRleHQtbGlnaHQtcHJpbWFyeSk7XG5cblx0XHRcdCY6OmFmdGVyLFxuXHRcdFx0Jjo6YmVmb3JlIHtcblx0XHRcdFx0Ym9yZGVyLWNvbG9yOiBwYWludCh0ZXh0LWxpZ2h0LXByaW1hcnkpO1xuXHRcdFx0XHRvcGFjaXR5OiAwLjk1O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG5AbWl4aW4gbGluay13aXRoLdGBaXJjbGUtc2l6ZSggJHNpemU6IHMgKSB7XG5cdEBpZiAkc2l6ZSA9PSBtIHtcblx0XHRmb250LXNpemU6IHJlbSgxNik7XG5cdFx0bGluZS1oZWlnaHQ6IHJlbSgyNCk7XG5cdFx0Z2FwOiByZW0oMTApO1xuXG5cdFx0Jjo6YmVmb3JlIHtcblx0XHRcdHdpZHRoOiBjYWxjKDEwMCUgLSByZW0oMzQpKTtcblx0XHR9XG5cblx0XHQmOjphZnRlciB7XG5cdFx0XHR3aWR0aDogcmVtKDIyKTtcblx0XHRcdGhlaWdodDogcmVtKDIyKTtcblx0XHRcdGxpbmUtaGVpZ2h0OiByZW0oMjApICFpbXBvcnRhbnQ7XG5cdFx0fVxuXHR9IEBlbHNlIGlmICRzaXplID09IHMge1xuXHRcdGZvbnQtc2l6ZTogcmVtKDE0KTtcblx0XHRsaW5lLWhlaWdodDogcmVtKDIwKTtcblx0XHRnYXA6IHJlbSg4KTtcblxuXHRcdCY6OmJlZm9yZSB7XG5cdFx0XHR3aWR0aDogY2FsYygxMDAlIC0gcmVtKDI2KSk7XG5cdFx0fVxuXG5cdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0d2lkdGg6IHJlbSgxOCk7XG5cdFx0XHRoZWlnaHQ6IHJlbSgxOCk7XG5cdFx0XHRsaW5lLWhlaWdodDogcmVtKDE2KSAhaW1wb3J0YW50O1xuXHRcdH1cblx0fVxufVxuXG5cbi8vIEJ1dHRvbnMgYW5kIExpbmtzIC0gQ2lyY2xlIEJ0blxuQG1peGluIGNpcmNsZS1idG4oICR0eXBlOiBzZWNvbmRhcnksICRjb2xvcjogbm9ybWFsICkge1xuXHRkaXNwbGF5OiBpbmxpbmUtZmxleDtcblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdGJvcmRlci1yYWRpdXM6IDUwJTtcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG5cdGNvbG9yOiAkYmxhY2s7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0cGFkZGluZzogMDtcblxuXHQmOmZvY3VzLFxuXHQmOmFjdGl2ZSB7XG5cdFx0b3V0bGluZTogMC41cHggc29saWQgJGJsYWNrO1xuXHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0fVxuXG5cdCY6aG92ZXIge1xuXHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuXHRcdFtjbGFzc149XCJpY29uLVwiXSxcblx0XHRbY2xhc3MqPVwiIGljb24tXCJdIHtcblx0XHRcdCY6OmJlZm9yZSB7XG5cdFx0XHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRAaWYgJHR5cGUgPT0gcHJpbWFyeSB7XG5cdFx0Ym9yZGVyOiBub25lO1xuXG5cdFx0QGlmICRjb2xvciA9PSBub3JtYWwge1xuXHRcdFx0YmFja2dyb3VuZDogcGFpbnQoaW50ZXJhY3Rpb24pO1xuXG5cdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogcGFpbnQoaW50ZXJhY3Rpb24taG92ZXIpO1xuXHRcdFx0fVxuXHRcdH0gQGVsc2Uge1xuXHRcdFx0YmFja2dyb3VuZDogcGFpbnQoYm9yZGVyLWxpZ2h0LXByaW1hcnkpO1xuXG5cdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0YmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk1KTtcblx0XHRcdH1cblxuXHRcdFx0Jjpmb2N1cyB7XG5cdFx0XHRcdGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NSk7XG5cdFx0XHRcdGJvcmRlcjogMXB4IHNvbGlkICRibGFjaztcblx0XHRcdH1cblxuXHRcdFx0JjphY3RpdmUge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9IEBlbHNlIHtcblx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblxuXHRcdEBpZiAkY29sb3IgPT0gbm9ybWFsIHtcblx0XHRcdGJvcmRlcjogMXB4IHNvbGlkICRibGFjaztcblxuXHRcdFx0Jjpob3Zlcixcblx0XHRcdCY6Zm9jdXMge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuXHRcdFx0fVxuXG5cdFx0XHQmOmFjdGl2ZSB7XG5cdFx0XHRcdGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wOCk7XG5cdFx0XHR9XG5cdFx0fSBAZWxzZSB7XG5cdFx0XHRib3JkZXI6IDFweCBzb2xpZCBwYWludChib3JkZXItbGlnaHQtcHJpbWFyeSk7XG5cdFx0XHRjb2xvcjogcGFpbnQoYm9yZGVyLWxpZ2h0LXByaW1hcnkpO1xuXG5cdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0YmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KTtcblx0XHRcdH1cblxuXHRcdFx0Jjpmb2N1cyB7XG5cdFx0XHRcdGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCk7XG5cdFx0XHRcdG91dGxpbmU6IDAuNXB4IHNvbGlkIHBhaW50KGJvcmRlci1saWdodC1wcmltYXJ5KTtcblx0XHRcdH1cblxuXHRcdFx0JjphY3RpdmUge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbkBtaXhpbiBjaXJjbGUtYnRuLXNpemUoICRzaXplOiBtICkge1xuXHRAaWYgJHNpemUgPT0geGwge1xuXHRcdHdpZHRoOiByZW0oNTYpO1xuXHRcdGhlaWdodDogcmVtKDU2KTtcblxuXHRcdFtjbGFzc149XCJpY29uLVwiXSxcblx0XHRbY2xhc3MqPVwiIGljb24tXCJdIHtcblx0XHRcdHdpZHRoOiByZW0oMjApO1xuXHRcdFx0aGVpZ2h0OiByZW0oMjApO1xuXG5cdFx0XHQmOjpiZWZvcmUge1xuXHRcdFx0XHRmb250LXNpemU6IHJlbSgyMCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9IEBlbHNlIGlmICRzaXplID09IGwge1xuXHRcdHdpZHRoOiByZW0oNDgpO1xuXHRcdGhlaWdodDogcmVtKDQ4KTtcblxuXHRcdFtjbGFzc149XCJpY29uLVwiXSxcblx0XHRbY2xhc3MqPVwiIGljb24tXCJdIHtcblx0XHRcdHdpZHRoOiByZW0oMjApO1xuXHRcdFx0aGVpZ2h0OiByZW0oMjApO1xuXG5cdFx0XHQmOjpiZWZvcmUge1xuXHRcdFx0XHRmb250LXNpemU6IHJlbSgyMCk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdH0gQGVsc2UgaWYgJHNpemUgPT0gbSB7XG5cdFx0d2lkdGg6IHJlbSg0MCk7XG5cdFx0aGVpZ2h0OiByZW0oNDApO1xuXG5cdFx0W2NsYXNzXj1cImljb24tXCJdLFxuXHRcdFtjbGFzcyo9XCIgaWNvbi1cIl0ge1xuXHRcdFx0d2lkdGg6IHJlbSgyMCk7XG5cdFx0XHRoZWlnaHQ6IHJlbSgyMCk7XG5cblx0XHRcdCY6OmJlZm9yZSB7XG5cdFx0XHRcdGZvbnQtc2l6ZTogcmVtKDIwKTtcblx0XHRcdH1cblx0XHR9XG5cdH0gQGVsc2UgaWYgJHNpemUgPT0gcyB7XG5cdFx0d2lkdGg6IHJlbSgzNik7XG5cdFx0aGVpZ2h0OiByZW0oMzYpO1xuXG5cdFx0W2NsYXNzXj1cImljb24tXCJdLFxuXHRcdFtjbGFzcyo9XCIgaWNvbi1cIl0ge1xuXHRcdFx0d2lkdGg6IHJlbSgxOCk7XG5cdFx0XHRoZWlnaHQ6IHJlbSgxOCk7XG5cblx0XHRcdCY6OmJlZm9yZSB7XG5cdFx0XHRcdGZvbnQtc2l6ZTogcmVtKDE4KTtcblx0XHRcdH1cblx0XHR9XG5cblx0fSBAZWxzZSBpZiAkc2l6ZSA9PSB4cyB7XG5cdFx0d2lkdGg6IHJlbSgzMik7XG5cdFx0aGVpZ2h0OiByZW0oMzIpO1xuXG5cdFx0W2NsYXNzXj1cImljb24tXCJdLFxuXHRcdFtjbGFzcyo9XCIgaWNvbi1cIl0ge1xuXHRcdFx0d2lkdGg6IHJlbSgxNik7XG5cdFx0XHRoZWlnaHQ6IHJlbSgxNik7XG5cblx0XHRcdCY6OmJlZm9yZSB7XG5cdFx0XHRcdGZvbnQtc2l6ZTogcmVtKDE2KTtcblx0XHRcdH1cblx0XHR9XG5cdH0gQGVsc2UgeyAvLyB4eHNcblx0XHR3aWR0aDogcmVtKDI0KTtcblx0XHRoZWlnaHQ6IHJlbSgyNCk7XG5cblx0XHRbY2xhc3NePVwiaWNvbi1cIl0sXG5cdFx0W2NsYXNzKj1cIiBpY29uLVwiXSB7XG5cdFx0XHR3aWR0aDogcmVtKDE2KTtcblx0XHRcdGhlaWdodDogcmVtKDE2KTtcblxuXHRcdFx0Jjo6YmVmb3JlIHtcblx0XHRcdFx0Zm9udC1zaXplOiByZW0oMTYpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG4janF1ZXJ5LWxpdmUtc2VhcmNoIHtcblx0d2lkdGg6IDEwMHZ3ICFpbXBvcnRhbnQ7XG5cdG1hcmdpbi10b3A6IHJlbSgtNik7XG59XG4iLCJAaW1wb3J0IFwiLi4vLi4vLi4vY3NzL3NyYy9saWIvYmFzZS1pbmNsdWRlc1wiO1xuXG4uYmxvY2stZ3JpZC1jb2x1bW5zIHtcblx0bWFyZ2luLWJvdHRvbTogcmVtKC00MCk7XG5cblx0Ly8gMS1vZmYgY2FzZSBmb3IgdGhlIC9nbG9zc2FyeS8gcGFnZVxuXHQjYWJicmV2aWF0aW9ucyArICYge1xuXHRcdHBhZGRpbmctdG9wOiBjbGFtcCgzcmVtLCAtMi45ODEzMDg0MTEycmVtICsgMTIuNDYxMDU5MTl2dywgOHJlbSk7XG5cdH1cbn1cblxuLmdyaWQtY29sdW1ucyB7XG5cdCZfX2NvbHVtbiB7XG5cdFx0bWFyZ2luLWJvdHRvbTogcmVtKDQwKTtcblxuXHRcdHAgPiBpbWcge1xuXHRcdFx0b3V0bGluZTogMXB4IHNvbGlkICRibGFjaztcblx0XHRcdGFzcGVjdC1yYXRpbzogNCAvIDM7XG5cdFx0XHRvYmplY3QtZml0OiBjb3ZlcjtcblxuXHRcdFx0QGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cChtZCkge1xuXHRcdFx0XHRhc3BlY3QtcmF0aW86IDE2IC8gOTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbiIsIi8vIEJyZWFrcG9pbnQgdmlld3BvcnQgc2l6ZXMgYW5kIG1lZGlhIHF1ZXJpZXMuXG4vL1xuLy8gQnJlYWtwb2ludHMgYXJlIGRlZmluZWQgYXMgYSBtYXAgb2YgKG5hbWU6IG1pbmltdW0gd2lkdGgpLCBvcmRlciBmcm9tIHNtYWxsIHRvIGxhcmdlOlxuLy9cbi8vICAgICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweClcbi8vXG4vLyBUaGUgbWFwIGRlZmluZWQgaW4gdGhlIGAkZ3JpZC1icmVha3BvaW50c2AgZ2xvYmFsIHZhcmlhYmxlIGlzIHVzZWQgYXMgdGhlIGAkYnJlYWtwb2ludHNgIGFyZ3VtZW50IGJ5IGRlZmF1bHQuXG5cbi8vIE5hbWUgb2YgdGhlIG5leHQgYnJlYWtwb2ludCwgb3IgbnVsbCBmb3IgdGhlIGxhc3QgYnJlYWtwb2ludC5cbi8vXG4vLyAgICA+PiBicmVha3BvaW50LW5leHQoc20pXG4vLyAgICBtZFxuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxuLy8gICAgbWRcbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSwgJGJyZWFrcG9pbnQtbmFtZXM6ICh4cyBzbSBtZCBsZyB4bCkpXG4vLyAgICBtZFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbmV4dCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cywgJGJyZWFrcG9pbnQtbmFtZXM6IG1hcC1rZXlzKCRicmVha3BvaW50cykpIHtcbiAgJG46IGluZGV4KCRicmVha3BvaW50LW5hbWVzLCAkbmFtZSk7XG4gIEByZXR1cm4gaWYoJG4gIT0gbnVsbCBhbmQgJG4gPCBsZW5ndGgoJGJyZWFrcG9pbnQtbmFtZXMpLCBudGgoJGJyZWFrcG9pbnQtbmFtZXMsICRuICsgMSksIG51bGwpO1xufVxuXG4vLyBNaW5pbXVtIGJyZWFrcG9pbnQgd2lkdGguIE51bGwgZm9yIHRoZSBzbWFsbGVzdCAoZmlyc3QpIGJyZWFrcG9pbnQuXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1taW4oc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXG4vLyAgICA1NzZweFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtaW46IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XG4gIEByZXR1cm4gaWYoJG1pbiAhPSAwLCAkbWluLCBudWxsKTtcbn1cblxuLy8gTWF4aW11bSBicmVha3BvaW50IHdpZHRoLiBOdWxsIGZvciB0aGUgbGFyZ2VzdCAobGFzdCkgYnJlYWtwb2ludC5cbi8vIFRoZSBtYXhpbXVtIHZhbHVlIGlzIGNhbGN1bGF0ZWQgYXMgdGhlIG1pbmltdW0gb2YgdGhlIG5leHQgb25lIGxlc3MgMC4wMnB4XG4vLyB0byB3b3JrIGFyb3VuZCB0aGUgbGltaXRhdGlvbnMgb2YgYG1pbi1gIGFuZCBgbWF4LWAgcHJlZml4ZXMgYW5kIHZpZXdwb3J0cyB3aXRoIGZyYWN0aW9uYWwgd2lkdGhzLlxuLy8gU2VlIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9tZWRpYXF1ZXJpZXMtNC8jbXEtbWluLW1heFxuLy8gVXNlcyAwLjAycHggcmF0aGVyIHRoYW4gMC4wMXB4IHRvIHdvcmsgYXJvdW5kIGEgY3VycmVudCByb3VuZGluZyBidWcgaW4gU2FmYXJpLlxuLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzgyNjFcbi8vXG4vLyAgICA+PiBicmVha3BvaW50LW1heChzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcbi8vICAgIDc2Ny45OHB4XG5AZnVuY3Rpb24gYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG5leHQ6IGJyZWFrcG9pbnQtbmV4dCgkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgQHJldHVybiBpZigkbmV4dCwgYnJlYWtwb2ludC1taW4oJG5leHQsICRicmVha3BvaW50cykgLSAuMDIsIG51bGwpO1xufVxuXG4vLyBSZXR1cm5zIGEgYmxhbmsgc3RyaW5nIGlmIHNtYWxsZXN0IGJyZWFrcG9pbnQsIG90aGVyd2lzZSByZXR1cm5zIHRoZSBuYW1lIHdpdGggYSBkYXNoIGluIGZyb250LlxuLy8gVXNlZnVsIGZvciBtYWtpbmcgcmVzcG9uc2l2ZSB1dGlsaXRpZXMuXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1pbmZpeCh4cywgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcbi8vICAgIFwiXCIgIChSZXR1cm5zIGEgYmxhbmsgc3RyaW5nKVxuLy8gICAgPj4gYnJlYWtwb2ludC1pbmZpeChzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcbi8vICAgIFwiLXNtXCJcbkBmdW5jdGlvbiBicmVha3BvaW50LWluZml4KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gIEByZXR1cm4gaWYoYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cykgPT0gbnVsbCwgXCJcIiwgXCItI3skbmFtZX1cIik7XG59XG5cbi8vIE1lZGlhIG9mIGF0IGxlYXN0IHRoZSBtaW5pbXVtIGJyZWFrcG9pbnQgd2lkdGguIE5vIHF1ZXJ5IGZvciB0aGUgc21hbGxlc3QgYnJlYWtwb2ludC5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSB0byB0aGUgZ2l2ZW4gYnJlYWtwb2ludCBhbmQgd2lkZXIuXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC11cCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgQGlmICRtaW4ge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIE1lZGlhIG9mIGF0IG1vc3QgdGhlIG1heGltdW0gYnJlYWtwb2ludCB3aWR0aC4gTm8gcXVlcnkgZm9yIHRoZSBsYXJnZXN0IGJyZWFrcG9pbnQuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQgYW5kIG5hcnJvd2VyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWF4OiBicmVha3BvaW50LW1heCgkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgQGlmICRtYXgge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIE1lZGlhIHRoYXQgc3BhbnMgbXVsdGlwbGUgYnJlYWtwb2ludCB3aWR0aHMuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgYmV0d2VlbiB0aGUgbWluIGFuZCBtYXggYnJlYWtwb2ludHNcbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LWJldHdlZW4oJGxvd2VyLCAkdXBwZXIsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJGxvd2VyLCAkYnJlYWtwb2ludHMpO1xuICAkbWF4OiBicmVha3BvaW50LW1heCgkdXBwZXIsICRicmVha3BvaW50cyk7XG5cbiAgQGlmICRtaW4gIT0gbnVsbCBhbmQgJG1heCAhPSBudWxsIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikgYW5kIChtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWF4ID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJGxvd2VyLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWluID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkdXBwZXIsICRicmVha3BvaW50cykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vIE1lZGlhIGJldHdlZW4gdGhlIGJyZWFrcG9pbnQncyBtaW5pbXVtIGFuZCBtYXhpbXVtIHdpZHRocy5cbi8vIE5vIG1pbmltdW0gZm9yIHRoZSBzbWFsbGVzdCBicmVha3BvaW50LCBhbmQgbm8gbWF4aW11bSBmb3IgdGhlIGxhcmdlc3Qgb25lLlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IG9ubHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQsIG5vdCB2aWV3cG9ydHMgYW55IHdpZGVyIG9yIG5hcnJvd2VyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtb25seSgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50cyk7XG5cbiAgQGlmICRtaW4gIT0gbnVsbCBhbmQgJG1heCAhPSBudWxsIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikgYW5kIChtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWF4ID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJG5hbWUsICRicmVha3BvaW50cykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICRtaW4gPT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKCRuYW1lLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuIl19 */
