@eui/styles 17.0.0-next.13 → 17.0.0-next.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/styles/eui-ecl.css.map +1 -1
- package/dist/styles/eui-icons-flags.css.map +1 -1
- package/dist/styles/eui-legacy-bootstrap-utilities.css.map +1 -1
- package/dist/styles/eui-legacy-icons-font.css.map +1 -1
- package/dist/styles/eui-print.css +1 -1
- package/dist/styles/eui-print.css.map +1 -1
- package/dist/styles/eui-showcase-all.css +1 -1
- package/dist/styles/eui-showcase-all.css.map +1 -1
- package/dist/styles/eui-theme-compact.css +1 -1
- package/dist/styles/eui-theme-compact.css.map +1 -1
- package/dist/styles/eui-theme-dark.css.map +1 -1
- package/dist/styles/eui-utilities.css +1 -1
- package/dist/styles/eui-utilities.css.map +1 -1
- package/dist/styles/eui.css +1 -1
- package/dist/styles/eui.css.map +1 -1
- package/package.json +1 -1
- package/src/styles/02-base/mixins/_eui-input.scss +1 -1
- package/src/styles/02-base/mixins/_eui-scrollbars.scss +0 -1
- package/src/styles/07-elements/directives/_eui-input-maxlength.scss +1 -1
- package/src/styles/07-elements/eui-table-default/_eui-table-default.scss +1 -1
- package/src/styles/08-themes/_module-compact.scss +0 -8
- package/src/styles/999-showcase/_prism-theme.scss +3 -2
package/dist/styles/eui.css.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../node_modules/@eui/styles-base/src/styles/00-reset/_module.scss","eui.scss","../../../../../../../node_modules/@eui/styles-base/src/styles/03-vars/_colors.vars.scss","../../../../../../../node_modules/@eui/styles-base/src/styles/03-vars/_tokens.vars.scss","../../../../../../../node_modules/@eui/styles-base/src/styles/03-vars/_other.vars.scss","02b-base-vars/_layout.vars.scss","02b-base-vars/_other.vars.scss","../../../../../../../node_modules/@eui/styles-base/src/styles/05-assets/icons-svg/_icons-generics.scss","04-vendors/libs/bootstrap/scss/_grid.scss","04-vendors/libs/bootstrap/scss/mixins/_grid.scss","04-vendors/libs/bootstrap/scss/mixins/_breakpoints.scss","../../../../../../../node_modules/@angular/material/core/ripple/_ripple.scss","../../../../../../../node_modules/@angular/cdk/a11y/_index.scss","../../../../../../../node_modules/@angular/cdk/overlay/_index.scss","../../../../../../../node_modules/@angular/cdk/text-field/_index.scss","../../../../../../../node_modules/@angular/material/core/focus-indicators/_private.scss","../../../../../../../node_modules/@angular/material/core/style/_layout-common.scss","../../../../../../../node_modules/@angular/material/core/style/_sass-utils.scss","../../../../../../../node_modules/@material/theme/_css.scss","../../../../../../../node_modules/@angular/material/datepicker/_datepicker-theme.scss","../../../../../../../node_modules/@angular/material/button/_icon-button-theme.scss","../../../../../../../node_modules/@angular/material/button/_button-theme-private.scss","05-material/overrides/_calendar.scss","05-material/overrides/_cdk-drag.scss","05-material/overrides/_cdk-global-scrollblock.scss","02-base/mixins/_eui-scrollbars.scss","../../../../../../../node_modules/@eui/styles-base/src/styles/02-base/mixins/utils/_media.scss","05-material/overrides/_cdk-overlay-container.scss","05-material/overrides/_cdk-overlay-container.mq.scss","05-material/overrides/_cdk-overlay-pane.scss","06-shared/_module.scss","../../../../../../../node_modules/@eui/styles-base/src/styles/04-elements/_html.scss","../../../../../../../node_modules/@eui/styles-base/src/styles/04-elements/_body.scss","../../../../../../../node_modules/@eui/styles-base/src/styles/04-elements/_shared.scss","07-elements/eui-table-default/_eui-table-default.scss","../../../../../../../node_modules/@eui/styles-base/src/styles/02-base/mixins/_eui-font.scss","../../../../../../../node_modules/@eui/styles-base/src/styles/02-base/mixins/_eui-font-family.scss","07-elements/directives/_eui-clearable-input.scss","../../../../../../../node_modules/@eui/styles-base/src/styles/02-base/mixins/_eui-accessibility.scss","07-elements/directives/_eui-input-maxlength.scss","10-media/_ieimgfix.scss","11-extras/_cookie-consent.scss","11-extras/_preloader.scss"],"names":[],"mappings":"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Mt+BQ,+BAEI,YAAA,CADA,aN0+BZ,CM3+BQ,+BAEI,YAAA,CADA,aN++BZ,CMh/BQ,gCAEI,YAAA,CADA,aNo/BZ,CMr/BQ,gCAEI,YAAA,CADA,aNy/BZ,CM1/BQ,gCAEI,YAAA,CADA,aN8/BZ,CM//BQ,gCAEI,YAAA,CADA,aNmgCZ,CMpgCQ,gCAEI,YAAA,CADA,aNwgCZ,CMzgCQ,+BAEI,YAAA,CADA,aN6gCZ,CM9gCQ,+BAEI,YAAA,CADA,aNkhCZ,CMnhCQ,+BAEI,YAAA,CADA,aNuhCZ,CMxhCQ,+BAEI,YAAA,CADA,aN4hCZ,CM7hCQ,8BAEI,YAAA,CADA,aNiiCZ,CMliCQ,8BAEI,YAAA,CADA,aNsiCZ,CMviCQ,8BAEI,YAAA,CADA,aN2iCZ,CM5iCQ,8BAEI,YAAA,CADA,aNgjCZ,CMjjCQ,8BAEI,YAAA,CADA,aNqjCZ,CMtjCQ,8BAEI,YAAA,CADA,aN0jCZ,CM3jCQ,8BAEI,YAAA,CADA,aN+jCZ,CMhkCQ,6BAEI,YAAA,CADA,aNokCZ,CMrkCQ,6BAEI,YAAA,CADA,aNykCZ,CM1kCQ,6BAEI,YAAA,CADA,aN8kCZ,CM/kCQ,6BAEI,YAAA,CADA,aNmlCZ,CMplCQ,4BAEI,YAAA,CADA,aNwlCZ,CMzlCQ,4BAEI,YAAA,CADA,aN6lCZ,CM9lCQ,iCAEI,YAAA,CADA,aNkmCZ,CMnmCQ,iCAEI,YAAA,CADA,aNumCZ,CMxmCQ,iCAEI,YAAA,CADA,aN4mCZ,CM7mCQ,iCAEI,YAAA,CADA,aNinCZ,CMlnCQ,iCAEI,YAAA,CADA,aNsnCZ,CMvnCQ,gCAEI,YAAA,CADA,aN2nCZ,CM5nCQ,gCAEI,YAAA,CADA,aNgoCZ,CMjoCQ,gCAEI,YAAA,CADA,aNqoCZ,CMtoCQ,gCAEI,YAAA,CADA,aN0oCZ,CM3oCQ,+BAEI,YAAA,CADA,aN+oCZ,CMhpCQ,+BAEI,YAAA,CADA,aNopCZ,CMrpCQ,iCAEI,YAAA,CADA,aNypCZ,CM1pCQ,iCAEI,YAAA,CADA,aN8pCZ,CM/pCQ,iCAEI,YAAA,CADA,aNmqCZ,CMpqCQ,iCAEI,YAAA,CADA,aNwqCZ,CMzqCQ,iCAEI,YAAA,CADA,aN6qCZ,CM9qCQ,gCAEI,YAAA,CADA,aNkrCZ,CMnrCQ,gCAEI,YAAA,CADA,aNurCZ,CMxrCQ,gCAEI,YAAA,CADA,aN4rCZ,CM7rCQ,gCAEI,YAAA,CADA,aNisCZ,CMlsCQ,+BAEI,YAAA,CADA,aNssCZ,CMvsCQ,+BAEI,YAAA,CADA,aN2sCZ,CM5sCQ,gCAEI,YAAA,CADA,aNgtCZ,CMjtCQ,gCAEI,YAAA,CADA,aNqtCZ,CMttCQ,gCAEI,YAAA,CADA,aN0tCZ,CM3tCQ,gCAEI,YAAA,CADA,aN+tCZ,CMhuCQ,gCAEI,YAAA,CADA,aNouCZ,CMruCQ,+BAEI,YAAA,CADA,aNyuCZ,CM1uCQ,+BAEI,YAAA,CADA,aN8uCZ,CM/uCQ,+BAEI,YAAA,CADA,aNmvCZ,CMpvCQ,+BAEI,YAAA,CADA,aNwvCZ,CMzvCQ,8BAEI,YAAA,CADA,aN6vCZ,CM9vCQ,8BAEI,YAAA,CADA,aNkwCZ,CM5vCI,0BAEI,YAAA,CADA,aNgwCR,CMjwCI,6BAEI,YAAA,CADA,aNqwCR,CMtwCI,4BAEI,YAAA,CADA,aN0wCR,CM3wCI,0BAEI,YAAA,CADA,aN+wCR,CMhxCI,6BAEI,YAAA,CADA,aNoxCR,CMrxCI,6BAEI,YAAA,CADA,aNyxCR,CM1xCI,4BAEI,YAAA,CADA,aN8xCR,CMzxCA,2BAEI,gCAAA,CADA,iCN6xCJ,CMzxCA,2BAEI,gCAAA,CADA,iCN6xCJ,CMzxCA,iCAEI,oBAAA,CADA,qBN6xCJ,COh0CE,KCAA,oBAAA,CACA,eAAA,CACA,YAAA,CACA,cAAA,CAIA,wCAAA,CADA,yCAAA,CADA,sCRq0CF,COv0CI,OCSF,qBAAA,CAIA,aAAA,CAKA,6BAAA,CAHA,cAAA,CAEA,wCAAA,CADA,yCAAA,CAFA,URk0CF,CQ/wCM,KACE,WRkxCR,CQ/wCM,iBApCJ,aAAA,CACA,URuzCF,CQzyCE,cACE,aAAA,CACA,UR4yCJ,CQ9yCE,cACE,aAAA,CACA,SRizCJ,CQnzCE,cACE,aAAA,CACA,oBRszCJ,CQxzCE,cACE,aAAA,CACA,SR2zCJ,CQ7zCE,cACE,aAAA,CACA,SRg0CJ,CQl0CE,cACE,aAAA,CACA,oBRq0CJ,CQtyCM,UAhDJ,aAAA,CACA,UR01CF,CQryCU,OAhEN,aAAA,CACA,iBRy2CJ,CQ1yCU,OAhEN,aAAA,CACA,kBR82CJ,CQ/yCU,OAhEN,aAAA,CACA,SRm3CJ,CQpzCU,OAhEN,aAAA,CACA,kBRw3CJ,CQzzCU,OAhEN,aAAA,CACA,kBR63CJ,CQ9zCU,OAhEN,aAAA,CACA,SRk4CJ,CQn0CU,OAhEN,aAAA,CACA,kBRu4CJ,CQx0CU,OAhEN,aAAA,CACA,kBR44CJ,CQ70CU,OAhEN,aAAA,CACA,SRi5CJ,CQl1CU,QAhEN,aAAA,CACA,kBRs5CJ,CQv1CU,QAhEN,aAAA,CACA,kBR25CJ,CQ51CU,QAhEN,aAAA,CACA,URg6CJ,CQz1CY,UAxDV,uBRq5CF,CQ71CY,UAxDV,wBRy5CF,CQj2CY,UAxDV,eR65CF,CQr2CY,UAxDV,wBRi6CF,CQz2CY,UAxDV,wBRq6CF,CQ72CY,UAxDV,eRy6CF,CQj3CY,UAxDV,wBR66CF,CQr3CY,UAxDV,wBRi7CF,CQz3CY,UAxDV,eRq7CF,CQ73CY,WAxDV,wBRy7CF,CQj4CY,WAxDV,wBR67CF,CQ13CQ,WAEE,eR63CV,CQ13CQ,WAEE,eR63CV,CQp4CQ,WAEE,qBRu4CV,CQp4CQ,WAEE,qBRu4CV,CQ94CQ,WAEE,oBRi5CV,CQ94CQ,WAEE,oBRi5CV,CQx5CQ,WAEE,kBR25CV,CQx5CQ,WAEE,kBR25CV,CQl6CQ,WAEE,oBRq6CV,CQl6CQ,WAEE,oBRq6CV,CQ56CQ,WAEE,kBR+6CV,CQ56CQ,WAEE,kBR+6CV,CSz+CI,yBDUE,QACE,WRm+CN,CQh+CI,oBApCJ,aAAA,CACA,URugDA,CQz/CA,iBACE,aAAA,CACA,UR2/CF,CQ7/CA,iBACE,aAAA,CACA,SR+/CF,CQjgDA,iBACE,aAAA,CACA,oBRmgDF,CQrgDA,iBACE,aAAA,CACA,SRugDF,CQzgDA,iBACE,aAAA,CACA,SR2gDF,CQ7gDA,iBACE,aAAA,CACA,oBR+gDF,CQh/CI,aAhDJ,aAAA,CACA,URmiDA,CQ9+CQ,UAhEN,aAAA,CACA,iBRijDF,CQl/CQ,UAhEN,aAAA,CACA,kBRqjDF,CQt/CQ,UAhEN,aAAA,CACA,SRyjDF,CQ1/CQ,UAhEN,aAAA,CACA,kBR6jDF,CQ9/CQ,UAhEN,aAAA,CACA,kBRikDF,CQlgDQ,UAhEN,aAAA,CACA,SRqkDF,CQtgDQ,UAhEN,aAAA,CACA,kBRykDF,CQ1gDQ,UAhEN,aAAA,CACA,kBR6kDF,CQ9gDQ,UAhEN,aAAA,CACA,SRilDF,CQlhDQ,WAhEN,aAAA,CACA,kBRqlDF,CQthDQ,WAhEN,aAAA,CACA,kBRylDF,CQ1hDQ,WAhEN,aAAA,CACA,UR6lDF,CQthDU,aAxDV,aRilDA,CQzhDU,aAxDV,uBRolDA,CQ5hDU,aAxDV,wBRulDA,CQ/hDU,aAxDV,eR0lDA,CQliDU,aAxDV,wBR6lDA,CQriDU,aAxDV,wBRgmDA,CQxiDU,aAxDV,eRmmDA,CQ3iDU,aAxDV,wBRsmDA,CQ9iDU,aAxDV,wBRymDA,CQjjDU,aAxDV,eR4mDA,CQpjDU,cAxDV,wBR+mDA,CQvjDU,cAxDV,wBRknDA,CQ/iDM,iBAEE,eRijDR,CQ9iDM,iBAEE,eRgjDR,CQvjDM,iBAEE,qBRyjDR,CQtjDM,iBAEE,qBRwjDR,CQ/jDM,iBAEE,oBRikDR,CQ9jDM,iBAEE,oBRgkDR,CQvkDM,iBAEE,kBRykDR,CQtkDM,iBAEE,kBRwkDR,CQ/kDM,iBAEE,oBRilDR,CQ9kDM,iBAEE,oBRglDR,CQvlDM,iBAEE,kBRylDR,CQtlDM,iBAEE,kBRwlDR,CACF,CSnpDI,yBDUE,QACE,WR4oDN,CQzoDI,oBApCJ,aAAA,CACA,URgrDA,CQlqDA,iBACE,aAAA,CACA,URoqDF,CQtqDA,iBACE,aAAA,CACA,SRwqDF,CQ1qDA,iBACE,aAAA,CACA,oBR4qDF,CQ9qDA,iBACE,aAAA,CACA,SRgrDF,CQlrDA,iBACE,aAAA,CACA,SRorDF,CQtrDA,iBACE,aAAA,CACA,oBRwrDF,CQzpDI,aAhDJ,aAAA,CACA,UR4sDA,CQvpDQ,UAhEN,aAAA,CACA,iBR0tDF,CQ3pDQ,UAhEN,aAAA,CACA,kBR8tDF,CQ/pDQ,UAhEN,aAAA,CACA,SRkuDF,CQnqDQ,UAhEN,aAAA,CACA,kBRsuDF,CQvqDQ,UAhEN,aAAA,CACA,kBR0uDF,CQ3qDQ,UAhEN,aAAA,CACA,SR8uDF,CQ/qDQ,UAhEN,aAAA,CACA,kBRkvDF,CQnrDQ,UAhEN,aAAA,CACA,kBRsvDF,CQvrDQ,UAhEN,aAAA,CACA,SR0vDF,CQ3rDQ,WAhEN,aAAA,CACA,kBR8vDF,CQ/rDQ,WAhEN,aAAA,CACA,kBRkwDF,CQnsDQ,WAhEN,aAAA,CACA,URswDF,CQ/rDU,aAxDV,aR0vDA,CQlsDU,aAxDV,uBR6vDA,CQrsDU,aAxDV,wBRgwDA,CQxsDU,aAxDV,eRmwDA,CQ3sDU,aAxDV,wBRswDA,CQ9sDU,aAxDV,wBRywDA,CQjtDU,aAxDV,eR4wDA,CQptDU,aAxDV,wBR+wDA,CQvtDU,aAxDV,wBRkxDA,CQ1tDU,aAxDV,eRqxDA,CQ7tDU,cAxDV,wBRwxDA,CQhuDU,cAxDV,wBR2xDA,CQxtDM,iBAEE,eR0tDR,CQvtDM,iBAEE,eRytDR,CQhuDM,iBAEE,qBRkuDR,CQ/tDM,iBAEE,qBRiuDR,CQxuDM,iBAEE,oBR0uDR,CQvuDM,iBAEE,oBRyuDR,CQhvDM,iBAEE,kBRkvDR,CQ/uDM,iBAEE,kBRivDR,CQxvDM,iBAEE,oBR0vDR,CQvvDM,iBAEE,oBRyvDR,CQhwDM,iBAEE,kBRkwDR,CQ/vDM,iBAEE,kBRiwDR,CACF,CS5zDI,yBDUE,QACE,WRqzDN,CQlzDI,oBApCJ,aAAA,CACA,URy1DA,CQ30DA,iBACE,aAAA,CACA,UR60DF,CQ/0DA,iBACE,aAAA,CACA,SRi1DF,CQn1DA,iBACE,aAAA,CACA,oBRq1DF,CQv1DA,iBACE,aAAA,CACA,SRy1DF,CQ31DA,iBACE,aAAA,CACA,SR61DF,CQ/1DA,iBACE,aAAA,CACA,oBRi2DF,CQl0DI,aAhDJ,aAAA,CACA,URq3DA,CQh0DQ,UAhEN,aAAA,CACA,iBRm4DF,CQp0DQ,UAhEN,aAAA,CACA,kBRu4DF,CQx0DQ,UAhEN,aAAA,CACA,SR24DF,CQ50DQ,UAhEN,aAAA,CACA,kBR+4DF,CQh1DQ,UAhEN,aAAA,CACA,kBRm5DF,CQp1DQ,UAhEN,aAAA,CACA,SRu5DF,CQx1DQ,UAhEN,aAAA,CACA,kBR25DF,CQ51DQ,UAhEN,aAAA,CACA,kBR+5DF,CQh2DQ,UAhEN,aAAA,CACA,SRm6DF,CQp2DQ,WAhEN,aAAA,CACA,kBRu6DF,CQx2DQ,WAhEN,aAAA,CACA,kBR26DF,CQ52DQ,WAhEN,aAAA,CACA,UR+6DF,CQx2DU,aAxDV,aRm6DA,CQ32DU,aAxDV,uBRs6DA,CQ92DU,aAxDV,wBRy6DA,CQj3DU,aAxDV,eR46DA,CQp3DU,aAxDV,wBR+6DA,CQv3DU,aAxDV,wBRk7DA,CQ13DU,aAxDV,eRq7DA,CQ73DU,aAxDV,wBRw7DA,CQh4DU,aAxDV,wBR27DA,CQn4DU,aAxDV,eR87DA,CQt4DU,cAxDV,wBRi8DA,CQz4DU,cAxDV,wBRo8DA,CQj4DM,iBAEE,eRm4DR,CQh4DM,iBAEE,eRk4DR,CQz4DM,iBAEE,qBR24DR,CQx4DM,iBAEE,qBR04DR,CQj5DM,iBAEE,oBRm5DR,CQh5DM,iBAEE,oBRk5DR,CQz5DM,iBAEE,kBR25DR,CQx5DM,iBAEE,kBR05DR,CQj6DM,iBAEE,oBRm6DR,CQh6DM,iBAEE,oBRk6DR,CQz6DM,iBAEE,kBR26DR,CQx6DM,iBAEE,kBR06DR,CACF,CSr+DI,0BDUE,QACE,WR89DN,CQ39DI,oBApCJ,aAAA,CACA,URkgEA,CQp/DA,iBACE,aAAA,CACA,URs/DF,CQx/DA,iBACE,aAAA,CACA,SR0/DF,CQ5/DA,iBACE,aAAA,CACA,oBR8/DF,CQhgEA,iBACE,aAAA,CACA,SRkgEF,CQpgEA,iBACE,aAAA,CACA,SRsgEF,CQxgEA,iBACE,aAAA,CACA,oBR0gEF,CQ3+DI,aAhDJ,aAAA,CACA,UR8hEA,CQz+DQ,UAhEN,aAAA,CACA,iBR4iEF,CQ7+DQ,UAhEN,aAAA,CACA,kBRgjEF,CQj/DQ,UAhEN,aAAA,CACA,SRojEF,CQr/DQ,UAhEN,aAAA,CACA,kBRwjEF,CQz/DQ,UAhEN,aAAA,CACA,kBR4jEF,CQ7/DQ,UAhEN,aAAA,CACA,SRgkEF,CQjgEQ,UAhEN,aAAA,CACA,kBRokEF,CQrgEQ,UAhEN,aAAA,CACA,kBRwkEF,CQzgEQ,UAhEN,aAAA,CACA,SR4kEF,CQ7gEQ,WAhEN,aAAA,CACA,kBRglEF,CQjhEQ,WAhEN,aAAA,CACA,kBRolEF,CQrhEQ,WAhEN,aAAA,CACA,URwlEF,CQjhEU,aAxDV,aR4kEA,CQphEU,aAxDV,uBR+kEA,CQvhEU,aAxDV,wBRklEA,CQ1hEU,aAxDV,eRqlEA,CQ7hEU,aAxDV,wBRwlEA,CQhiEU,aAxDV,wBR2lEA,CQniEU,aAxDV,eR8lEA,CQtiEU,aAxDV,wBRimEA,CQziEU,aAxDV,wBRomEA,CQ5iEU,aAxDV,eRumEA,CQ/iEU,cAxDV,wBR0mEA,CQljEU,cAxDV,wBR6mEA,CQ1iEM,iBAEE,eR4iER,CQziEM,iBAEE,eR2iER,CQljEM,iBAEE,qBRojER,CQjjEM,iBAEE,qBRmjER,CQ1jEM,iBAEE,oBR4jER,CQzjEM,iBAEE,oBR2jER,CQlkEM,iBAEE,kBRokER,CQjkEM,iBAEE,kBRmkER,CQ1kEM,iBAEE,oBR4kER,CQzkEM,iBAEE,oBR2kER,CQllEM,iBAEE,kBRolER,CQjlEM,iBAEE,kBRmlER,CACF,CS9oEI,0BDUE,SACE,WRuoEN,CQpoEI,qBApCJ,aAAA,CACA,UR2qEA,CQ7pEA,kBACE,aAAA,CACA,UR+pEF,CQjqEA,kBACE,aAAA,CACA,SRmqEF,CQrqEA,kBACE,aAAA,CACA,oBRuqEF,CQzqEA,kBACE,aAAA,CACA,SR2qEF,CQ7qEA,kBACE,aAAA,CACA,SR+qEF,CQjrEA,kBACE,aAAA,CACA,oBRmrEF,CQppEI,cAhDJ,aAAA,CACA,URusEA,CQlpEQ,WAhEN,aAAA,CACA,iBRqtEF,CQtpEQ,WAhEN,aAAA,CACA,kBRytEF,CQ1pEQ,WAhEN,aAAA,CACA,SR6tEF,CQ9pEQ,WAhEN,aAAA,CACA,kBRiuEF,CQlqEQ,WAhEN,aAAA,CACA,kBRquEF,CQtqEQ,WAhEN,aAAA,CACA,SRyuEF,CQ1qEQ,WAhEN,aAAA,CACA,kBR6uEF,CQ9qEQ,WAhEN,aAAA,CACA,kBRivEF,CQlrEQ,WAhEN,aAAA,CACA,SRqvEF,CQtrEQ,YAhEN,aAAA,CACA,kBRyvEF,CQ1rEQ,YAhEN,aAAA,CACA,kBR6vEF,CQ9rEQ,YAhEN,aAAA,CACA,URiwEF,CQ1rEU,cAxDV,aRqvEA,CQ7rEU,cAxDV,uBRwvEA,CQhsEU,cAxDV,wBR2vEA,CQnsEU,cAxDV,eR8vEA,CQtsEU,cAxDV,wBRiwEA,CQzsEU,cAxDV,wBRowEA,CQ5sEU,cAxDV,eRuwEA,CQ/sEU,cAxDV,wBR0wEA,CQltEU,cAxDV,wBR6wEA,CQrtEU,cAxDV,eRgxEA,CQxtEU,eAxDV,wBRmxEA,CQ3tEU,eAxDV,wBRsxEA,CQntEM,mBAEE,eRqtER,CQltEM,mBAEE,eRotER,CQ3tEM,mBAEE,qBR6tER,CQ1tEM,mBAEE,qBR4tER,CQnuEM,mBAEE,oBRquER,CQluEM,mBAEE,oBRouER,CQ3uEM,mBAEE,kBR6uER,CQ1uEM,mBAEE,kBR4uER,CQnvEM,mBAEE,oBRqvER,CQlvEM,mBAEE,oBRovER,CQ3vEM,mBAEE,kBR6vER,CQ1vEM,mBAEE,kBR4vER,CACF,CSvzEI,0BDUE,UACE,WRgzEN,CQ7yEI,sBApCJ,aAAA,CACA,URo1EA,CQt0EA,mBACE,aAAA,CACA,URw0EF,CQ10EA,mBACE,aAAA,CACA,SR40EF,CQ90EA,mBACE,aAAA,CACA,oBRg1EF,CQl1EA,mBACE,aAAA,CACA,SRo1EF,CQt1EA,mBACE,aAAA,CACA,SRw1EF,CQ11EA,mBACE,aAAA,CACA,oBR41EF,CQ7zEI,eAhDJ,aAAA,CACA,URg3EA,CQ3zEQ,YAhEN,aAAA,CACA,iBR83EF,CQ/zEQ,YAhEN,aAAA,CACA,kBRk4EF,CQn0EQ,YAhEN,aAAA,CACA,SRs4EF,CQv0EQ,YAhEN,aAAA,CACA,kBR04EF,CQ30EQ,YAhEN,aAAA,CACA,kBR84EF,CQ/0EQ,YAhEN,aAAA,CACA,SRk5EF,CQn1EQ,YAhEN,aAAA,CACA,kBRs5EF,CQv1EQ,YAhEN,aAAA,CACA,kBR05EF,CQ31EQ,YAhEN,aAAA,CACA,SR85EF,CQ/1EQ,aAhEN,aAAA,CACA,kBRk6EF,CQn2EQ,aAhEN,aAAA,CACA,kBRs6EF,CQv2EQ,aAhEN,aAAA,CACA,UR06E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","file":"eui.css","sourcesContent":["/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\n html {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n }\n\n /* Sections\n ========================================================================== */\n\n /**\n * Remove the margin in all browsers.\n */\n\n body {\n margin: 0;\n }\n\n /**\n * Render the `main` element consistently in IE.\n */\n\n main {\n display: block;\n }\n\n /**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\n h1 {\n font-size: 2em;\n margin: 0.67em 0;\n }\n\n /* Grouping content\n ========================================================================== */\n\n /**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\n hr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n }\n\n /**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\n pre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n }\n\n /* Text-level semantics\n ========================================================================== */\n\n /**\n * Remove the gray background on active links in IE 10.\n */\n\n a {\n background-color: transparent;\n }\n\n /**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\n abbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n text-decoration: underline dotted; /* 2 */\n }\n\n /**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\n b,\n strong {\n font-weight: bolder;\n }\n\n /**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\n code,\n kbd,\n samp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n }\n\n /**\n * Add the correct font size in all browsers.\n */\n\n small {\n font-size: 80%;\n }\n\n /**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\n sub,\n sup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n }\n\n sub {\n bottom: -0.25em;\n }\n\n sup {\n top: -0.5em;\n }\n\n /* Embedded content\n ========================================================================== */\n\n /**\n * Remove the border on images inside links in IE 10.\n */\n\n img {\n border-style: none;\n }\n\n /* Forms\n ========================================================================== */\n\n /**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\n button,\n input,\n optgroup,\n select,\n textarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n }\n\n /**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\n button,\n input { /* 1 */\n overflow: visible;\n }\n\n /**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\n button,\n select { /* 1 */\n text-transform: none;\n }\n\n /**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\n button,\n [type=\"button\"],\n [type=\"reset\"],\n [type=\"submit\"] {\n -webkit-appearance: button;\n }\n\n /**\n * Remove the inner border and padding in Firefox.\n */\n\n button::-moz-focus-inner,\n [type=\"button\"]::-moz-focus-inner,\n [type=\"reset\"]::-moz-focus-inner,\n [type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n }\n\n /**\n * Restore the focus styles unset by the previous rule.\n */\n\n button:-moz-focusring,\n [type=\"button\"]:-moz-focusring,\n [type=\"reset\"]:-moz-focusring,\n [type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n }\n\n /**\n * Correct the padding in Firefox.\n */\n\n fieldset {\n padding: 0.35em 0.75em 0.625em;\n }\n\n /**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\n legend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n }\n\n /**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\n progress {\n vertical-align: baseline;\n }\n\n /**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\n textarea {\n overflow: auto;\n }\n\n /**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n [type=\"checkbox\"],\n [type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n }\n\n /**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n [type=\"number\"]::-webkit-inner-spin-button,\n [type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n }\n\n /**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n [type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n }\n\n /**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n [type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n\n /**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n ::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n }\n\n /* Interactive\n ========================================================================== */\n\n /*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\n details {\n display: block;\n }\n\n /*\n * Add the correct display in all browsers.\n */\n\n summary {\n display: list-item;\n }\n\n /* Misc\n ========================================================================== */\n\n /**\n * Add the correct display in IE 10+.\n */\n\n template {\n display: none;\n }\n\n /**\n * Add the correct display in IE 10.\n */\n\n [hidden] {\n display: none;\n }\n","/**\n * ECL color variants formula\n * Applies tint or shade of base color provided\n *\n * @param color: base color, has variant of 100\n * @param variant: number in range between 0 - 200\n * 100 - neutral variant, no changes\n * 0 - 99: brightens base color by mixing in white color, the lower, the brighter\n * 99 - 200: darkens base color by mixing in black color, the bigger, the darker\n *\n * @return color variant of provided base color\n *\n * @examples\n *\n * // provides 30% darker pink color\n * background-color: eui-color-variant(pink, 130);\n *\n * // provides 95% lighter pink color\n * background-color: eui-color-variant(pink, 5);\n */\n/** Common weight name mapping\n @See the OpenType specification:\n https://docs.microsoft.com/en-us/typography/opentype/spec/os2#usweightclass\n The numerical values 100 to 900 roughly correspond to the following common weight names:\n 100 Thin (Hairline)\n 200\t Extra Light (Ultra Light)\n 300\t Light\n 400\t Normal\n 500\t Medium\n 600\t Semi Bold (Demi Bold)\n 700\t Bold\n 800\t Extra Bold (Ultra Bold)\n 900\t Black (Heavy)\n**/\n/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n/* Document\n ========================================================================== */\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n/**\n * Remove the margin in all browsers.\n */\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n/**\n * Remove the gray background on active links in IE 10.\n */\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n/**\n * Remove the border on images inside links in IE 10.\n */\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\nbutton,\ninput { /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\nbutton,\nselect { /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\nbutton,\n[type=button],\n[type=reset],\n[type=submit] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\nbutton::-moz-focus-inner,\n[type=button]::-moz-focus-inner,\n[type=reset]::-moz-focus-inner,\n[type=submit]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\nbutton:-moz-focusring,\n[type=button]:-moz-focusring,\n[type=reset]:-moz-focusring,\n[type=submit]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n[type=checkbox],\n[type=radio] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n[type=number]::-webkit-inner-spin-button,\n[type=number]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n[type=search] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n[type=search]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n/**\n * Add the correct display in IE 10+.\n */\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n[hidden] {\n display: none;\n}\n\n:root {\n --eui-base-color-grey-110: #3a3a3a;\n --eui-base-color-grey-110-rgb: rgb(58, 58, 58);\n --eui-base-color-grey-110-contrast: white;\n --eui-base-color-grey-110-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-grey-100: #404040;\n --eui-base-color-grey-100-rgb: rgb(64, 64, 64);\n --eui-base-color-grey-100-contrast: white;\n --eui-base-color-grey-100-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-grey-90: #535353;\n --eui-base-color-grey-90-rgb: rgb(83, 83, 83);\n --eui-base-color-grey-90-contrast: white;\n --eui-base-color-grey-90-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-grey-80: #666666;\n --eui-base-color-grey-80-rgb: rgb(102, 102, 102);\n --eui-base-color-grey-80-contrast: white;\n --eui-base-color-grey-80-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-grey-75: #707070;\n --eui-base-color-grey-75-rgb: rgb(112, 112, 112);\n --eui-base-color-grey-75-contrast: white;\n --eui-base-color-grey-75-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-grey-50: #a0a0a0;\n --eui-base-color-grey-50-rgb: rgb(160, 160, 160);\n --eui-base-color-grey-50-contrast: #404040;\n --eui-base-color-grey-50-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-grey-35: #bcbcbc;\n --eui-base-color-grey-35-rgb: rgb(188, 188, 188);\n --eui-base-color-grey-35-contrast: #404040;\n --eui-base-color-grey-35-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-grey-25: #cfcfcf;\n --eui-base-color-grey-25-rgb: rgb(207, 207, 207);\n --eui-base-color-grey-25-contrast: #404040;\n --eui-base-color-grey-25-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-grey-20: #d9d9d9;\n --eui-base-color-grey-20-rgb: rgb(217, 217, 217);\n --eui-base-color-grey-20-contrast: #404040;\n --eui-base-color-grey-20-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-grey-15: #e2e2e2;\n --eui-base-color-grey-15-rgb: rgb(226, 226, 226);\n --eui-base-color-grey-15-contrast: #404040;\n --eui-base-color-grey-15-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-grey-10: #ececec;\n --eui-base-color-grey-10-rgb: rgb(236, 236, 236);\n --eui-base-color-grey-10-contrast: #404040;\n --eui-base-color-grey-10-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-grey-5: whitesmoke;\n --eui-base-color-grey-5-rgb: rgb(245, 245, 245);\n --eui-base-color-grey-5-contrast: #404040;\n --eui-base-color-grey-5-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-grey-2: #f9fafb;\n --eui-base-color-grey-2-rgb: rgb(249, 250, 251);\n --eui-base-color-grey-2-contrast: #404040;\n --eui-base-color-grey-2-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-grey-0: white;\n --eui-base-color-grey-0-rgb: rgb(255, 255, 255);\n --eui-base-color-grey-0-contrast: #404040;\n --eui-base-color-grey-0-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-primary-140: #002959;\n --eui-base-color-primary-140-rgb: rgb(0, 41, 89);\n --eui-base-color-primary-140-contrast: white;\n --eui-base-color-primary-140-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-primary-130: #003068;\n --eui-base-color-primary-130-rgb: rgb(0, 48, 104);\n --eui-base-color-primary-130-contrast: white;\n --eui-base-color-primary-130-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-primary-120: #003676;\n --eui-base-color-primary-120-rgb: rgb(0, 54, 118);\n --eui-base-color-primary-120-contrast: white;\n --eui-base-color-primary-120-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-primary-110: #003d85;\n --eui-base-color-primary-110-rgb: rgb(0, 61, 133);\n --eui-base-color-primary-110-contrast: white;\n --eui-base-color-primary-110-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-primary-100: #004494;\n --eui-base-color-primary-100-rgb: rgb(0, 68, 148);\n --eui-base-color-primary-100-contrast: white;\n --eui-base-color-primary-100-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-primary-75: #4073af;\n --eui-base-color-primary-75-rgb: rgb(64, 115, 175);\n --eui-base-color-primary-75-contrast: white;\n --eui-base-color-primary-75-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-primary-50: #80a2ca;\n --eui-base-color-primary-50-rgb: rgb(128, 162, 202);\n --eui-base-color-primary-50-contrast: #404040;\n --eui-base-color-primary-50-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-primary-25: #bfd0e4;\n --eui-base-color-primary-25-rgb: rgb(191, 208, 228);\n --eui-base-color-primary-25-contrast: #404040;\n --eui-base-color-primary-25-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-primary-10: #e6ecf4;\n --eui-base-color-primary-10-rgb: rgb(230, 236, 244);\n --eui-base-color-primary-10-contrast: #404040;\n --eui-base-color-primary-10-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-primary-5: #f2f6fa;\n --eui-base-color-primary-5-rgb: rgb(242, 246, 250);\n --eui-base-color-primary-5-contrast: #404040;\n --eui-base-color-primary-5-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-primary-2: #fafbfd;\n --eui-base-color-primary-2-rgb: rgb(250, 251, 253);\n --eui-base-color-primary-2-contrast: #404040;\n --eui-base-color-primary-2-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-accent-140: #99800e;\n --eui-base-color-accent-140-rgb: rgb(153, 128, 14);\n --eui-base-color-accent-140-contrast: #404040;\n --eui-base-color-accent-140-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-accent-130: #b39610;\n --eui-base-color-accent-130-rgb: rgb(179, 150, 16);\n --eui-base-color-accent-130-contrast: #404040;\n --eui-base-color-accent-130-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-accent-120: #f8ae21;\n --eui-base-color-accent-120-rgb: rgb(248, 174, 33);\n --eui-base-color-accent-120-contrast: #404040;\n --eui-base-color-accent-120-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-accent-110: #fbc11d;\n --eui-base-color-accent-110-rgb: rgb(251, 193, 29);\n --eui-base-color-accent-110-contrast: #404040;\n --eui-base-color-accent-110-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-accent-100: #ffd617;\n --eui-base-color-accent-100-rgb: rgb(255, 214, 23);\n --eui-base-color-accent-100-contrast: #404040;\n --eui-base-color-accent-100-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-accent-75: #ffde39;\n --eui-base-color-accent-75-rgb: rgb(255, 222, 57);\n --eui-base-color-accent-75-contrast: #404040;\n --eui-base-color-accent-75-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-accent-50: #ffe879;\n --eui-base-color-accent-50-rgb: rgb(255, 232, 121);\n --eui-base-color-accent-50-contrast: #404040;\n --eui-base-color-accent-50-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-accent-25: #fff4bb;\n --eui-base-color-accent-25-rgb: rgb(255, 244, 187);\n --eui-base-color-accent-25-contrast: #404040;\n --eui-base-color-accent-25-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-accent-10: #fffbe8;\n --eui-base-color-accent-10-rgb: rgb(255, 251, 232);\n --eui-base-color-accent-10-contrast: #404040;\n --eui-base-color-accent-10-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-accent-5: #fffdf3;\n --eui-base-color-accent-5-rgb: rgb(255, 253, 243);\n --eui-base-color-accent-5-contrast: #404040;\n --eui-base-color-accent-5-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-accent-2: #fffefa;\n --eui-base-color-accent-2-rgb: rgb(255, 254, 250);\n --eui-base-color-accent-2-contrast: #404040;\n --eui-base-color-accent-2-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-info-140: #00436c;\n --eui-base-color-info-140-rgb: rgb(0, 67, 108);\n --eui-base-color-info-140-contrast: white;\n --eui-base-color-info-140-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-info-130: #004e7e;\n --eui-base-color-info-130-rgb: rgb(0, 78, 126);\n --eui-base-color-info-130-contrast: white;\n --eui-base-color-info-130-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-info-120: #005990;\n --eui-base-color-info-120-rgb: rgb(0, 89, 144);\n --eui-base-color-info-120-contrast: white;\n --eui-base-color-info-120-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-info-110: #0064a2;\n --eui-base-color-info-110-rgb: rgb(0, 100, 162);\n --eui-base-color-info-110-contrast: white;\n --eui-base-color-info-110-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-info-100: #006fb4;\n --eui-base-color-info-100-rgb: rgb(0, 111, 180);\n --eui-base-color-info-100-contrast: white;\n --eui-base-color-info-100-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-info-75: #4093c7;\n --eui-base-color-info-75-rgb: rgb(64, 147, 199);\n --eui-base-color-info-75-contrast: white;\n --eui-base-color-info-75-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-info-50: #80b7da;\n --eui-base-color-info-50-rgb: rgb(128, 183, 218);\n --eui-base-color-info-50-contrast: #404040;\n --eui-base-color-info-50-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-info-25: #bfdbec;\n --eui-base-color-info-25-rgb: rgb(191, 219, 236);\n --eui-base-color-info-25-contrast: #404040;\n --eui-base-color-info-25-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-info-10: #e6f1f8;\n --eui-base-color-info-10-rgb: rgb(230, 241, 248);\n --eui-base-color-info-10-contrast: #404040;\n --eui-base-color-info-10-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-info-5: #f2f8fb;\n --eui-base-color-info-5-rgb: rgb(242, 248, 251);\n --eui-base-color-info-5-contrast: #404040;\n --eui-base-color-info-5-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-info-2: #fafcfe;\n --eui-base-color-info-2-rgb: rgb(250, 252, 254);\n --eui-base-color-info-2-contrast: #404040;\n --eui-base-color-info-2-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-success-140: #2a4922;\n --eui-base-color-success-140-rgb: rgb(42, 73, 34);\n --eui-base-color-success-140-contrast: white;\n --eui-base-color-success-140-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-success-130: #315528;\n --eui-base-color-success-130-rgb: rgb(49, 85, 40);\n --eui-base-color-success-130-contrast: white;\n --eui-base-color-success-130-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-success-120: #38622e;\n --eui-base-color-success-120-rgb: rgb(56, 98, 46);\n --eui-base-color-success-120-contrast: white;\n --eui-base-color-success-120-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-success-110: #3f6e33;\n --eui-base-color-success-110-rgb: rgb(63, 110, 51);\n --eui-base-color-success-110-contrast: white;\n --eui-base-color-success-110-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-success-100: #467a39;\n --eui-base-color-success-100-rgb: rgb(70, 122, 57);\n --eui-base-color-success-100-contrast: white;\n --eui-base-color-success-100-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-success-75: #749b6b;\n --eui-base-color-success-75-rgb: rgb(116, 155, 107);\n --eui-base-color-success-75-contrast: #404040;\n --eui-base-color-success-75-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-success-50: #a3bd9c;\n --eui-base-color-success-50-rgb: rgb(163, 189, 156);\n --eui-base-color-success-50-contrast: #404040;\n --eui-base-color-success-50-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-success-25: #d1dece;\n --eui-base-color-success-25-rgb: rgb(209, 222, 206);\n --eui-base-color-success-25-contrast: #404040;\n --eui-base-color-success-25-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-success-10: #edf2eb;\n --eui-base-color-success-10-rgb: rgb(237, 242, 235);\n --eui-base-color-success-10-contrast: #404040;\n --eui-base-color-success-10-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-success-5: #f6f8f5;\n --eui-base-color-success-5-rgb: rgb(246, 248, 245);\n --eui-base-color-success-5-contrast: #404040;\n --eui-base-color-success-5-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-success-2: #fbfcfb;\n --eui-base-color-success-2-rgb: rgb(251, 252, 251);\n --eui-base-color-success-2-contrast: #404040;\n --eui-base-color-success-2-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-warning-140: #915917;\n --eui-base-color-warning-140-rgb: rgb(145, 89, 23);\n --eui-base-color-warning-140-contrast: white;\n --eui-base-color-warning-140-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-warning-130: #a9681b;\n --eui-base-color-warning-130-rgb: rgb(169, 104, 27);\n --eui-base-color-warning-130-contrast: white;\n --eui-base-color-warning-130-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-warning-120: #c2771f;\n --eui-base-color-warning-120-rgb: rgb(194, 119, 31);\n --eui-base-color-warning-120-contrast: #404040;\n --eui-base-color-warning-120-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-warning-110: #da8623;\n --eui-base-color-warning-110-rgb: rgb(218, 134, 35);\n --eui-base-color-warning-110-contrast: #404040;\n --eui-base-color-warning-110-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-warning-100: #f29527;\n --eui-base-color-warning-100-rgb: rgb(242, 149, 39);\n --eui-base-color-warning-100-contrast: #404040;\n --eui-base-color-warning-100-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-warning-75: #f5b05d;\n --eui-base-color-warning-75-rgb: rgb(245, 176, 93);\n --eui-base-color-warning-75-contrast: #404040;\n --eui-base-color-warning-75-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-warning-50: #f9ca93;\n --eui-base-color-warning-50-rgb: rgb(249, 202, 147);\n --eui-base-color-warning-50-contrast: #404040;\n --eui-base-color-warning-50-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-warning-25: #fce5c9;\n --eui-base-color-warning-25-rgb: rgb(252, 229, 201);\n --eui-base-color-warning-25-contrast: #404040;\n --eui-base-color-warning-25-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-warning-10: #fef4e9;\n --eui-base-color-warning-10-rgb: rgb(254, 244, 233);\n --eui-base-color-warning-10-contrast: #404040;\n --eui-base-color-warning-10-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-warning-5: #fefaf4;\n --eui-base-color-warning-5-rgb: rgb(254, 250, 244);\n --eui-base-color-warning-5-contrast: #404040;\n --eui-base-color-warning-5-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-warning-2: #fffdfb;\n --eui-base-color-warning-2-rgb: rgb(255, 253, 251);\n --eui-base-color-warning-2-contrast: #404040;\n --eui-base-color-warning-2-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-danger-140: #83141d;\n --eui-base-color-danger-140-rgb: rgb(131, 20, 29);\n --eui-base-color-danger-140-contrast: white;\n --eui-base-color-danger-140-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-danger-130: #991722;\n --eui-base-color-danger-130-rgb: rgb(153, 23, 34);\n --eui-base-color-danger-130-contrast: white;\n --eui-base-color-danger-130-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-danger-120: #ae1a27;\n --eui-base-color-danger-120-rgb: rgb(174, 26, 39);\n --eui-base-color-danger-120-contrast: white;\n --eui-base-color-danger-120-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-danger-110: #c41e2c;\n --eui-base-color-danger-110-rgb: rgb(196, 30, 44);\n --eui-base-color-danger-110-contrast: white;\n --eui-base-color-danger-110-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-danger-100: #da2131;\n --eui-base-color-danger-100-rgb: rgb(218, 33, 49);\n --eui-base-color-danger-100-contrast: white;\n --eui-base-color-danger-100-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-danger-75: #e35965;\n --eui-base-color-danger-75-rgb: rgb(227, 89, 101);\n --eui-base-color-danger-75-contrast: #404040;\n --eui-base-color-danger-75-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-danger-50: #ed9098;\n --eui-base-color-danger-50-rgb: rgb(237, 144, 152);\n --eui-base-color-danger-50-contrast: #404040;\n --eui-base-color-danger-50-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-danger-25: #f6c8cc;\n --eui-base-color-danger-25-rgb: rgb(246, 200, 204);\n --eui-base-color-danger-25-contrast: #404040;\n --eui-base-color-danger-25-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-danger-10: #fbe9ea;\n --eui-base-color-danger-10-rgb: rgb(251, 233, 234);\n --eui-base-color-danger-10-contrast: #404040;\n --eui-base-color-danger-10-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-danger-5: #fdf4f5;\n --eui-base-color-danger-5-rgb: rgb(253, 244, 245);\n --eui-base-color-danger-5-contrast: #404040;\n --eui-base-color-danger-5-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-danger-2: #fefbfb;\n --eui-base-color-danger-2-rgb: rgb(254, 251, 251);\n --eui-base-color-danger-2-contrast: #404040;\n --eui-base-color-danger-2-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-grey: #a0a0a0;\n --eui-base-color-primary: #004494;\n --eui-base-color-accent: #ffd617;\n --eui-base-color-info: #006fb4;\n --eui-base-color-success: #467a39;\n --eui-base-color-warning: #f29527;\n --eui-base-color-danger: #da2131;\n --eui-base-color-text: var(--eui-base-color-grey-100);\n --eui-base-color-link: var(--eui-base-color-primary-100);\n --eui-base-color-black: var(--eui-base-color-grey-100);\n --eui-base-color-white: var(--eui-base-color-grey-0);\n}\n\n:root {\n --eui-base-font-family: Arial, \"Helvetica Neue\", Helvetica, sans-serif;\n --eui-base-font-family-icons: \"eui-icons\", sans-serif;\n --eui-base-font-family-monospace: \"Consolas\", \"Liberation Mono\", \"Courier New\", monospace;\n --eui-base-font-size: 16px;\n --eui-base-font-size-6xl: 2.625rem;\n --eui-base-font-size-5xl: 2.25rem;\n --eui-base-font-size-4xl: 2rem;\n --eui-base-font-size-3xl: 1.75rem;\n --eui-base-font-size-2xl: 1.5rem;\n --eui-base-font-size-xl: 1.25rem;\n --eui-base-font-size-l: 1.125rem;\n --eui-base-font-size-m: 1rem;\n --eui-base-font-size-s: 0.875rem;\n --eui-base-font-size-xs: 0.75rem;\n --eui-base-font-size-2xs: 0.625rem;\n --eui-base-icon-size: 1.5rem;\n --eui-base-icon-size-2xs: 0.75rem;\n --eui-base-icon-size-xs: 1rem;\n --eui-base-icon-size-s: 1.25rem;\n --eui-base-icon-size-m: 1.5rem;\n --eui-base-icon-size-l: 2rem;\n --eui-base-icon-size-xl: 2.5rem;\n --eui-base-icon-size-2xl: 3rem;\n --eui-base-icon-size-3xl: 3.5rem;\n --eui-base-icon-size-4xl: 4rem;\n --eui-base-font-6xl: normal normal 400 2.625rem/3.25rem var(--eui-base-font-family);\n --eui-base-font-5xl: normal normal 400 2.25rem/2.75rem var(--eui-base-font-family);\n --eui-base-font-4xl: normal normal 400 2rem/2.5rem var(--eui-base-font-family);\n --eui-base-font-3xl: normal normal 400 1.75rem/2rem var(--eui-base-font-family);\n --eui-base-font-2xl: normal normal 400 1.5rem/1.75rem var(--eui-base-font-family);\n --eui-base-font-xl: normal normal 400 1.25rem/1.5rem var(--eui-base-font-family);\n --eui-base-font-l: normal normal 400 1.125rem/1.5rem var(--eui-base-font-family);\n --eui-base-font-m: normal normal 400 1rem/1.25rem var(--eui-base-font-family);\n --eui-base-font-s: normal normal 400 0.875rem/1rem var(--eui-base-font-family);\n --eui-base-font-xs: normal normal 400 0.75rem/1rem var(--eui-base-font-family);\n --eui-base-font-2xs: normal normal 400 0.625rem/1rem var(--eui-base-font-family);\n --eui-base-font-prolonged-xl: normal normal 400 1.25rem/1.75rem var(--eui-base-font-family);\n --eui-base-font-prolonged-l: normal normal 400 1.125rem/1.75rem var(--eui-base-font-family);\n --eui-base-font-prolonged-m: normal normal 400 1rem/1.5rem var(--eui-base-font-family);\n --eui-base-font-prolonged-s: normal normal 400 0.875rem/1.25rem var(--eui-base-font-family);\n --eui-base-font-prolonged-xs: normal normal 400 0.75rem/1.25rem var(--eui-base-font-family);\n --eui-base-spacing-none: 0;\n --eui-base-spacing-2xs: 0.25rem;\n --eui-base-spacing-xs: 0.5rem;\n --eui-base-spacing-s: 0.75rem;\n --eui-base-spacing-m: 1rem;\n --eui-base-spacing-l: 1.5rem;\n --eui-base-spacing-xl: 2rem;\n --eui-base-spacing-2xl: 2.5rem;\n --eui-base-spacing-3xl: 3rem;\n --eui-base-spacing-4xl: 4rem;\n --eui-base-shadow-1: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12);\n --eui-base-shadow-2: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\n --eui-base-shadow-3: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 3px 4px 0 rgba(0, 0, 0, 0.14), 0 1px 8px 0 rgba(0, 0, 0, 0.12);\n --eui-base-shadow-4: 0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12);\n --eui-base-shadow-6: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\n --eui-base-shadow-8: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);\n --eui-base-shadow-9: 0px 5px 6px -3px rgba(0, 0, 0, 0.2), 0px 9px 12px 1px rgba(0, 0, 0, 0.14), 0px 3px 16px 2px rgba(0, 0, 0, 0.12);\n --eui-base-shadow-12: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);\n --eui-base-shadow-16: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\n --eui-base-shadow-24: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);\n --eui-base-shadow-z-depth-0: 0 1px 0 rgba(0, 0, 0, 0.08), 0 1px 1px rgba(0, 0, 0, 0.08);\n --eui-base-shadow-z-depth-1: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);\n --eui-base-shadow-z-depth-2: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23);\n --eui-base-shadow-z-depth-3: 0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(0, 0, 0, 0.23);\n --eui-base-shadow-z-depth-4: 0 14px 28px rgba(0, 0, 0, 0.25), 0 10px 10px rgba(0, 0, 0, 0.22);\n --eui-base-shadow-z-depth-5: 0 19px 38px rgba(0, 0, 0, 0.3), 0 15px 12px rgba(0, 0, 0, 0.22);\n --eui-base-z-index-auto: auto;\n --eui-base-z-index-zero: 0;\n --eui-base-z-index-root: 1;\n --eui-base-z-index-input-maxlength: 2;\n --eui-base-z-index-clearable-icon: 3;\n --eui-base-z-index-header: 5;\n --eui-base-z-index-top-message: 8;\n --eui-base-z-index-nav: 10;\n --eui-base-z-index-loading-indicator: 20;\n --eui-base-z-index-cdk-overlay-pane: 999;\n --eui-base-z-index-logo: 1000;\n --eui-base-z-index-sticky: 1040;\n --eui-base-z-index-sidebar: 1044;\n --eui-base-z-index-overlay: 1045;\n --eui-base-z-index-btn-floating: 1046;\n --eui-base-z-index-highlighted: 1047;\n --eui-base-z-index-footer-action-bar: 1048;\n --eui-base-z-index-modal-backdrop: 1049;\n --eui-base-z-index-modal: 1050;\n --eui-base-z-index-menu: 1060;\n --eui-base-z-index-tooltip: 1070;\n --eui-base-z-index-max: 9999;\n --eui-base-z-index-cdk-overlay-container: 10000;\n --eui-base-z-index-block-document: 10010;\n --eui-base-z-index-growl-message: 99999;\n}\n\n:root {\n --eui-base-line-height: 1.15;\n --eui-base-scale-factor: 1;\n --eui-base-disabled-opacity: 0.45;\n --eui-base-border-radius: 3px;\n --eui-base-border: 1px solid var(--eui-color-grey-lighter);\n --eui-base-border-light: 1px solid var(--eui-color-grey-light);\n --eui-base-border-lighter: 1px solid var(--eui-color-grey-lighter);\n --eui-base-border-lightest: 1px solid var(--eui-color-grey-lightest);\n --eui-base-animation-linear-out-slow-in-timing-function: cubic-bezier(0, 0, 0.2, 1);\n --eui-base-animation-fast-out-slow-in-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n --eui-base-animation-fast-out-linear-in-timing-function: cubic-bezier(0.4, 0, 1, 1);\n --eui-base-animation-ease-timing-function: cubic-bezier(0.25, 0.1, 0.25, 1);\n --eui-base-animation-ease-in-out-timing-function: ease-in-out;\n --eui-base-animation-duration-fast: 0.25s;\n --eui-base-animation-duration-medium: 0.5s;\n --eui-base-animation-duration-slow: 1s;\n --eui-base-animation-duration-base: 500ms;\n --eui-base-animation-duration: var(--eui-base-animation-duration-base);\n --eui-base-animation-transition-base: all 0.2s var(--eui-base-animation-linear-out-slow-in-timing-function);\n --eui-base-animation-transition-ease: all 0.2s var(--eui-base-animation-ease-timing-function);\n --eui-base-animation-transition-ease-in-out: all 0.2s var(--eui-base-animation-ease-in-out-timing-function);\n --eui-base-animation-transition-ease-in-out-1s: all 1s var(--eui-base-animation-ease-in-out-timing-function);\n --eui-base-animation-delay: 0s;\n --eui-base-animation-direction: normal;\n --eui-base-animation-fill-mode: forwards;\n --eui-base-animation-background-color: var(--eui-base-color-primary-50);\n --eui-base-color-accessible-focus: var(--eui-base-color-accent-110);\n}\n\n:root {\n --eui-app-header-height-default: 0px;\n --eui-app-header-height: 0px;\n --eui-app-header-height-active: 90px;\n --eui-app-header-height-shrink: 0px;\n --eui-app-breadcrumb-height-default: 0px;\n --eui-app-breadcrumb-height: 0px;\n --eui-app-breadcrumb-height-active: 20px;\n --eui-app-top-message-height-default: 0px;\n --eui-app-top-message-height: 0px;\n --eui-app-top-message-height-active: 42px;\n --eui-app-toolbar-height-default: 0px;\n --eui-app-toolbar-height: 0px;\n --eui-app-toolbar-height-active: 55px;\n --eui-app-sidebar-width-default: 0px;\n --eui-app-sidebar-width: 0px;\n --eui-app-sidebar-width-active: 300px;\n --eui-app-sidebar-width-close-default: 0px;\n --eui-app-sidebar-width-close: 0px;\n --eui-app-sidebar-width-close-active: 64px;\n --eui-app-sidebar-header-height: 0px;\n --eui-app-sidebar-header-height-default: 0px;\n --eui-app-sidebar-header-height-active: 48px;\n --eui-app-sidebar-footer-height: 0px;\n --eui-app-sidebar-footer-height-default: 0px;\n --eui-app-sidebar-footer-height-active: 24px;\n --eui-page-header-with-subtitle-height: 4rem;\n --eui-page-header-without-subtitle-height: 2rem;\n --eui-page-column--size-s: 50px;\n --eui-page-column--size-m: 150px;\n --eui-page-column--size-l: 200px;\n --eui-page-column--size-xl: 250px;\n --eui-page-column--size-xxl: 300px;\n --eui-page-column--size-xxxl: 350px;\n --eui-page-column-footer-height: 3.5rem;\n}\n\n.xs, .sm {\n --eui-app-header-height: 0px;\n}\n\n:root {\n --eui-app-box-shadow: none;\n}\n\n.eui-icon-svg {\n fill: currentColor;\n margin: 0;\n transform: scaleX(1) scaleY(1) rotateZ(0deg);\n transition: transform 300ms ease-in-out;\n display: inline-flex;\n align-items: center;\n}\n\n.eui-icon-svg--size-2xs {\n height: 0.75rem;\n width: 0.75rem;\n}\n\n.eui-icon-svg--size-xs {\n height: 1rem;\n width: 1rem;\n}\n\n.eui-icon-svg--size-s {\n height: 1.25rem;\n width: 1.25rem;\n}\n\n.eui-icon-svg--size-m {\n height: 1.5rem;\n width: 1.5rem;\n}\n\n.eui-icon-svg--size-l {\n height: 2rem;\n width: 2rem;\n}\n\n.eui-icon-svg--size-xl {\n height: 2.5rem;\n width: 2.5rem;\n}\n\n.eui-icon-svg--size-2xl {\n height: 3rem;\n width: 3rem;\n}\n\n.eui-icon-svg--size-3xl {\n height: 3.5rem;\n width: 3.5rem;\n}\n\n.eui-icon-svg--size-4xl {\n height: 4rem;\n width: 4rem;\n}\n\n.eui-icon-svg--color-grey-110 {\n color: #3a3a3a;\n fill: #3a3a3a;\n}\n\n.eui-icon-svg--color-grey-100 {\n color: #404040;\n fill: #404040;\n}\n\n.eui-icon-svg--color-grey-90 {\n color: #535353;\n fill: #535353;\n}\n\n.eui-icon-svg--color-grey-80 {\n color: #666666;\n fill: #666666;\n}\n\n.eui-icon-svg--color-grey-75 {\n color: #707070;\n fill: #707070;\n}\n\n.eui-icon-svg--color-grey-50 {\n color: #a0a0a0;\n fill: #a0a0a0;\n}\n\n.eui-icon-svg--color-grey-35 {\n color: #bcbcbc;\n fill: #bcbcbc;\n}\n\n.eui-icon-svg--color-grey-25 {\n color: #cfcfcf;\n fill: #cfcfcf;\n}\n\n.eui-icon-svg--color-grey-20 {\n color: #d9d9d9;\n fill: #d9d9d9;\n}\n\n.eui-icon-svg--color-grey-15 {\n color: #e2e2e2;\n fill: #e2e2e2;\n}\n\n.eui-icon-svg--color-grey-10 {\n color: #ececec;\n fill: #ececec;\n}\n\n.eui-icon-svg--color-grey-5 {\n color: whitesmoke;\n fill: whitesmoke;\n}\n\n.eui-icon-svg--color-grey-2 {\n color: #f9fafb;\n fill: #f9fafb;\n}\n\n.eui-icon-svg--color-grey-0 {\n color: white;\n fill: white;\n}\n\n.eui-icon-svg--color-primary-140 {\n color: #002959;\n fill: #002959;\n}\n\n.eui-icon-svg--color-primary-130 {\n color: #003068;\n fill: #003068;\n}\n\n.eui-icon-svg--color-primary-120 {\n color: #003676;\n fill: #003676;\n}\n\n.eui-icon-svg--color-primary-110 {\n color: #003d85;\n fill: #003d85;\n}\n\n.eui-icon-svg--color-primary-100 {\n color: #004494;\n fill: #004494;\n}\n\n.eui-icon-svg--color-primary-75 {\n color: #4073af;\n fill: #4073af;\n}\n\n.eui-icon-svg--color-primary-50 {\n color: #80a2ca;\n fill: #80a2ca;\n}\n\n.eui-icon-svg--color-primary-25 {\n color: #bfd0e4;\n fill: #bfd0e4;\n}\n\n.eui-icon-svg--color-primary-10 {\n color: #e6ecf4;\n fill: #e6ecf4;\n}\n\n.eui-icon-svg--color-primary-5 {\n color: #f2f6fa;\n fill: #f2f6fa;\n}\n\n.eui-icon-svg--color-primary-2 {\n color: #fafbfd;\n fill: #fafbfd;\n}\n\n.eui-icon-svg--color-accent-140 {\n color: #99800e;\n fill: #99800e;\n}\n\n.eui-icon-svg--color-accent-130 {\n color: #b39610;\n fill: #b39610;\n}\n\n.eui-icon-svg--color-accent-120 {\n color: #f8ae21;\n fill: #f8ae21;\n}\n\n.eui-icon-svg--color-accent-110 {\n color: #fbc11d;\n fill: #fbc11d;\n}\n\n.eui-icon-svg--color-accent-100 {\n color: #ffd617;\n fill: #ffd617;\n}\n\n.eui-icon-svg--color-accent-75 {\n color: #ffde39;\n fill: #ffde39;\n}\n\n.eui-icon-svg--color-accent-50 {\n color: #ffe879;\n fill: #ffe879;\n}\n\n.eui-icon-svg--color-accent-25 {\n color: #fff4bb;\n fill: #fff4bb;\n}\n\n.eui-icon-svg--color-accent-10 {\n color: #fffbe8;\n fill: #fffbe8;\n}\n\n.eui-icon-svg--color-accent-5 {\n color: #fffdf3;\n fill: #fffdf3;\n}\n\n.eui-icon-svg--color-accent-2 {\n color: #fffefa;\n fill: #fffefa;\n}\n\n.eui-icon-svg--color-info-140 {\n color: #00436c;\n fill: #00436c;\n}\n\n.eui-icon-svg--color-info-130 {\n color: #004e7e;\n fill: #004e7e;\n}\n\n.eui-icon-svg--color-info-120 {\n color: #005990;\n fill: #005990;\n}\n\n.eui-icon-svg--color-info-110 {\n color: #0064a2;\n fill: #0064a2;\n}\n\n.eui-icon-svg--color-info-100 {\n color: #006fb4;\n fill: #006fb4;\n}\n\n.eui-icon-svg--color-info-75 {\n color: #4093c7;\n fill: #4093c7;\n}\n\n.eui-icon-svg--color-info-50 {\n color: #80b7da;\n fill: #80b7da;\n}\n\n.eui-icon-svg--color-info-25 {\n color: #bfdbec;\n fill: #bfdbec;\n}\n\n.eui-icon-svg--color-info-10 {\n color: #e6f1f8;\n fill: #e6f1f8;\n}\n\n.eui-icon-svg--color-info-5 {\n color: #f2f8fb;\n fill: #f2f8fb;\n}\n\n.eui-icon-svg--color-info-2 {\n color: #fafcfe;\n fill: #fafcfe;\n}\n\n.eui-icon-svg--color-success-140 {\n color: #2a4922;\n fill: #2a4922;\n}\n\n.eui-icon-svg--color-success-130 {\n color: #315528;\n fill: #315528;\n}\n\n.eui-icon-svg--color-success-120 {\n color: #38622e;\n fill: #38622e;\n}\n\n.eui-icon-svg--color-success-110 {\n color: #3f6e33;\n fill: #3f6e33;\n}\n\n.eui-icon-svg--color-success-100 {\n color: #467a39;\n fill: #467a39;\n}\n\n.eui-icon-svg--color-success-75 {\n color: #749b6b;\n fill: #749b6b;\n}\n\n.eui-icon-svg--color-success-50 {\n color: #a3bd9c;\n fill: #a3bd9c;\n}\n\n.eui-icon-svg--color-success-25 {\n color: #d1dece;\n fill: #d1dece;\n}\n\n.eui-icon-svg--color-success-10 {\n color: #edf2eb;\n fill: #edf2eb;\n}\n\n.eui-icon-svg--color-success-5 {\n color: #f6f8f5;\n fill: #f6f8f5;\n}\n\n.eui-icon-svg--color-success-2 {\n color: #fbfcfb;\n fill: #fbfcfb;\n}\n\n.eui-icon-svg--color-warning-140 {\n color: #915917;\n fill: #915917;\n}\n\n.eui-icon-svg--color-warning-130 {\n color: #a9681b;\n fill: #a9681b;\n}\n\n.eui-icon-svg--color-warning-120 {\n color: #c2771f;\n fill: #c2771f;\n}\n\n.eui-icon-svg--color-warning-110 {\n color: #da8623;\n fill: #da8623;\n}\n\n.eui-icon-svg--color-warning-100 {\n color: #f29527;\n fill: #f29527;\n}\n\n.eui-icon-svg--color-warning-75 {\n color: #f5b05d;\n fill: #f5b05d;\n}\n\n.eui-icon-svg--color-warning-50 {\n color: #f9ca93;\n fill: #f9ca93;\n}\n\n.eui-icon-svg--color-warning-25 {\n color: #fce5c9;\n fill: #fce5c9;\n}\n\n.eui-icon-svg--color-warning-10 {\n color: #fef4e9;\n fill: #fef4e9;\n}\n\n.eui-icon-svg--color-warning-5 {\n color: #fefaf4;\n fill: #fefaf4;\n}\n\n.eui-icon-svg--color-warning-2 {\n color: #fffdfb;\n fill: #fffdfb;\n}\n\n.eui-icon-svg--color-danger-140 {\n color: #83141d;\n fill: #83141d;\n}\n\n.eui-icon-svg--color-danger-130 {\n color: #991722;\n fill: #991722;\n}\n\n.eui-icon-svg--color-danger-120 {\n color: #ae1a27;\n fill: #ae1a27;\n}\n\n.eui-icon-svg--color-danger-110 {\n color: #c41e2c;\n fill: #c41e2c;\n}\n\n.eui-icon-svg--color-danger-100 {\n color: #da2131;\n fill: #da2131;\n}\n\n.eui-icon-svg--color-danger-75 {\n color: #e35965;\n fill: #e35965;\n}\n\n.eui-icon-svg--color-danger-50 {\n color: #ed9098;\n fill: #ed9098;\n}\n\n.eui-icon-svg--color-danger-25 {\n color: #f6c8cc;\n fill: #f6c8cc;\n}\n\n.eui-icon-svg--color-danger-10 {\n color: #fbe9ea;\n fill: #fbe9ea;\n}\n\n.eui-icon-svg--color-danger-5 {\n color: #fdf4f5;\n fill: #fdf4f5;\n}\n\n.eui-icon-svg--color-danger-2 {\n color: #fefbfb;\n fill: #fefbfb;\n}\n\n.eui-icon-svg--color-grey {\n color: #a0a0a0;\n fill: #a0a0a0;\n}\n\n.eui-icon-svg--color-primary {\n color: #004494;\n fill: #004494;\n}\n\n.eui-icon-svg--color-accent {\n color: #ffd617;\n fill: #ffd617;\n}\n\n.eui-icon-svg--color-info {\n color: #006fb4;\n fill: #006fb4;\n}\n\n.eui-icon-svg--color-success {\n color: #467a39;\n fill: #467a39;\n}\n\n.eui-icon-svg--color-warning {\n color: #f29527;\n fill: #f29527;\n}\n\n.eui-icon-svg--color-danger {\n color: #da2131;\n fill: #da2131;\n}\n\n.eui-icon-svg--color-white {\n color: var(--eui-base-color-white);\n fill: var(--eui-base-color-white);\n}\n\n.eui-icon-svg--color-black {\n color: var(--eui-base-color-black);\n fill: var(--eui-base-color-black);\n}\n\n.eui-icon-svg--color-transparent {\n color: transparent !important;\n fill: transparent !important;\n}\n\n.row {\n --bs-gutter-x: 1.5rem;\n --bs-gutter-y: 0;\n display: flex;\n flex-wrap: wrap;\n margin-top: calc(-1 * var(--bs-gutter-y));\n margin-right: calc(-0.5 * var(--bs-gutter-x));\n margin-left: calc(-0.5 * var(--bs-gutter-x));\n}\n.row > * {\n box-sizing: border-box;\n flex-shrink: 0;\n width: 100%;\n max-width: 100%;\n padding-right: calc(var(--bs-gutter-x) * 0.5);\n padding-left: calc(var(--bs-gutter-x) * 0.5);\n margin-top: var(--bs-gutter-y);\n}\n\n.col {\n flex: 1 0 0%;\n}\n\n.row-cols-auto > * {\n flex: 0 0 auto;\n width: auto;\n}\n\n.row-cols-1 > * {\n flex: 0 0 auto;\n width: 100%;\n}\n\n.row-cols-2 > * {\n flex: 0 0 auto;\n width: 50%;\n}\n\n.row-cols-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n}\n\n.row-cols-4 > * {\n flex: 0 0 auto;\n width: 25%;\n}\n\n.row-cols-5 > * {\n flex: 0 0 auto;\n width: 20%;\n}\n\n.row-cols-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n}\n\n.col-auto {\n flex: 0 0 auto;\n width: auto;\n}\n\n.col-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n}\n\n.col-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n}\n\n.col-3 {\n flex: 0 0 auto;\n width: 25%;\n}\n\n.col-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n}\n\n.col-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n}\n\n.col-6 {\n flex: 0 0 auto;\n width: 50%;\n}\n\n.col-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n}\n\n.col-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n}\n\n.col-9 {\n flex: 0 0 auto;\n width: 75%;\n}\n\n.col-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n}\n\n.col-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n}\n\n.col-12 {\n flex: 0 0 auto;\n width: 100%;\n}\n\n.offset-1 {\n margin-left: 8.33333333%;\n}\n\n.offset-2 {\n margin-left: 16.66666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.33333333%;\n}\n\n.offset-5 {\n margin-left: 41.66666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.33333333%;\n}\n\n.offset-8 {\n margin-left: 66.66666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.33333333%;\n}\n\n.offset-11 {\n margin-left: 91.66666667%;\n}\n\n.g-0,\n.gx-0 {\n --bs-gutter-x: 0;\n}\n\n.g-0,\n.gy-0 {\n --bs-gutter-y: 0;\n}\n\n.g-1,\n.gx-1 {\n --bs-gutter-x: 0.25rem;\n}\n\n.g-1,\n.gy-1 {\n --bs-gutter-y: 0.25rem;\n}\n\n.g-2,\n.gx-2 {\n --bs-gutter-x: 0.5rem;\n}\n\n.g-2,\n.gy-2 {\n --bs-gutter-y: 0.5rem;\n}\n\n.g-3,\n.gx-3 {\n --bs-gutter-x: 1rem;\n}\n\n.g-3,\n.gy-3 {\n --bs-gutter-y: 1rem;\n}\n\n.g-4,\n.gx-4 {\n --bs-gutter-x: 1.5rem;\n}\n\n.g-4,\n.gy-4 {\n --bs-gutter-y: 1.5rem;\n}\n\n.g-5,\n.gx-5 {\n --bs-gutter-x: 3rem;\n}\n\n.g-5,\n.gy-5 {\n --bs-gutter-y: 3rem;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n flex: 1 0 0%;\n }\n .row-cols-sm-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-sm-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-sm-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-sm-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .row-cols-sm-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-sm-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-sm-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-sm-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-sm-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-sm-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-sm-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-sm-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-sm-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-sm-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-sm-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-sm-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-sm-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-sm-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-sm-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-sm-0 {\n margin-left: 0;\n }\n .offset-sm-1 {\n margin-left: 8.33333333%;\n }\n .offset-sm-2 {\n margin-left: 16.66666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.33333333%;\n }\n .offset-sm-5 {\n margin-left: 41.66666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.33333333%;\n }\n .offset-sm-8 {\n margin-left: 66.66666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.33333333%;\n }\n .offset-sm-11 {\n margin-left: 91.66666667%;\n }\n .g-sm-0,\n .gx-sm-0 {\n --bs-gutter-x: 0;\n }\n .g-sm-0,\n .gy-sm-0 {\n --bs-gutter-y: 0;\n }\n .g-sm-1,\n .gx-sm-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-sm-1,\n .gy-sm-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-sm-2,\n .gx-sm-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-sm-2,\n .gy-sm-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-sm-3,\n .gx-sm-3 {\n --bs-gutter-x: 1rem;\n }\n .g-sm-3,\n .gy-sm-3 {\n --bs-gutter-y: 1rem;\n }\n .g-sm-4,\n .gx-sm-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-sm-4,\n .gy-sm-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-sm-5,\n .gx-sm-5 {\n --bs-gutter-x: 3rem;\n }\n .g-sm-5,\n .gy-sm-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 768px) {\n .col-md {\n flex: 1 0 0%;\n }\n .row-cols-md-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-md-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-md-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-md-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .row-cols-md-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-md-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-md-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-md-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-md-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-md-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-md-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-md-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-md-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-md-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-md-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-md-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-md-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-md-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-md-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-md-0 {\n margin-left: 0;\n }\n .offset-md-1 {\n margin-left: 8.33333333%;\n }\n .offset-md-2 {\n margin-left: 16.66666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.33333333%;\n }\n .offset-md-5 {\n margin-left: 41.66666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.33333333%;\n }\n .offset-md-8 {\n margin-left: 66.66666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.33333333%;\n }\n .offset-md-11 {\n margin-left: 91.66666667%;\n }\n .g-md-0,\n .gx-md-0 {\n --bs-gutter-x: 0;\n }\n .g-md-0,\n .gy-md-0 {\n --bs-gutter-y: 0;\n }\n .g-md-1,\n .gx-md-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-md-1,\n .gy-md-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-md-2,\n .gx-md-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-md-2,\n .gy-md-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-md-3,\n .gx-md-3 {\n --bs-gutter-x: 1rem;\n }\n .g-md-3,\n .gy-md-3 {\n --bs-gutter-y: 1rem;\n }\n .g-md-4,\n .gx-md-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-md-4,\n .gy-md-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-md-5,\n .gx-md-5 {\n --bs-gutter-x: 3rem;\n }\n .g-md-5,\n .gy-md-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 992px) {\n .col-lg {\n flex: 1 0 0%;\n }\n .row-cols-lg-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-lg-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-lg-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-lg-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .row-cols-lg-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-lg-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-lg-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-lg-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-lg-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-lg-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-lg-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-lg-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-lg-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-lg-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-lg-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-lg-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-lg-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-lg-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-lg-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-lg-0 {\n margin-left: 0;\n }\n .offset-lg-1 {\n margin-left: 8.33333333%;\n }\n .offset-lg-2 {\n margin-left: 16.66666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.33333333%;\n }\n .offset-lg-5 {\n margin-left: 41.66666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.33333333%;\n }\n .offset-lg-8 {\n margin-left: 66.66666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.33333333%;\n }\n .offset-lg-11 {\n margin-left: 91.66666667%;\n }\n .g-lg-0,\n .gx-lg-0 {\n --bs-gutter-x: 0;\n }\n .g-lg-0,\n .gy-lg-0 {\n --bs-gutter-y: 0;\n }\n .g-lg-1,\n .gx-lg-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-lg-1,\n .gy-lg-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-lg-2,\n .gx-lg-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-lg-2,\n .gy-lg-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-lg-3,\n .gx-lg-3 {\n --bs-gutter-x: 1rem;\n }\n .g-lg-3,\n .gy-lg-3 {\n --bs-gutter-y: 1rem;\n }\n .g-lg-4,\n .gx-lg-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-lg-4,\n .gy-lg-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-lg-5,\n .gx-lg-5 {\n --bs-gutter-x: 3rem;\n }\n .g-lg-5,\n .gy-lg-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 1200px) {\n .col-xl {\n flex: 1 0 0%;\n }\n .row-cols-xl-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-xl-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-xl-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-xl-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .row-cols-xl-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-xl-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-xl-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-xl-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-xl-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-xl-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-xl-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-xl-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-xl-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-xl-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-xl-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-xl-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-xl-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-xl-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-xl-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-xl-0 {\n margin-left: 0;\n }\n .offset-xl-1 {\n margin-left: 8.33333333%;\n }\n .offset-xl-2 {\n margin-left: 16.66666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.33333333%;\n }\n .offset-xl-5 {\n margin-left: 41.66666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.33333333%;\n }\n .offset-xl-8 {\n margin-left: 66.66666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.33333333%;\n }\n .offset-xl-11 {\n margin-left: 91.66666667%;\n }\n .g-xl-0,\n .gx-xl-0 {\n --bs-gutter-x: 0;\n }\n .g-xl-0,\n .gy-xl-0 {\n --bs-gutter-y: 0;\n }\n .g-xl-1,\n .gx-xl-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-xl-1,\n .gy-xl-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-xl-2,\n .gx-xl-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-xl-2,\n .gy-xl-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-xl-3,\n .gx-xl-3 {\n --bs-gutter-x: 1rem;\n }\n .g-xl-3,\n .gy-xl-3 {\n --bs-gutter-y: 1rem;\n }\n .g-xl-4,\n .gx-xl-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-xl-4,\n .gy-xl-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-xl-5,\n .gx-xl-5 {\n --bs-gutter-x: 3rem;\n }\n .g-xl-5,\n .gy-xl-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 1400px) {\n .col-xxl {\n flex: 1 0 0%;\n }\n .row-cols-xxl-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-xxl-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-xxl-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-xxl-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .row-cols-xxl-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-xxl-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-xxl-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .col-xxl-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-xxl-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-xxl-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-xxl-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-xxl-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-xxl-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-xxl-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-xxl-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-xxl-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-xxl-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-xxl-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-xxl-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-xxl-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-xxl-0 {\n margin-left: 0;\n }\n .offset-xxl-1 {\n margin-left: 8.33333333%;\n }\n .offset-xxl-2 {\n margin-left: 16.66666667%;\n }\n .offset-xxl-3 {\n margin-left: 25%;\n }\n .offset-xxl-4 {\n margin-left: 33.33333333%;\n }\n .offset-xxl-5 {\n margin-left: 41.66666667%;\n }\n .offset-xxl-6 {\n margin-left: 50%;\n }\n .offset-xxl-7 {\n margin-left: 58.33333333%;\n }\n .offset-xxl-8 {\n margin-left: 66.66666667%;\n }\n .offset-xxl-9 {\n margin-left: 75%;\n }\n .offset-xxl-10 {\n margin-left: 83.33333333%;\n }\n .offset-xxl-11 {\n margin-left: 91.66666667%;\n }\n .g-xxl-0,\n .gx-xxl-0 {\n --bs-gutter-x: 0;\n }\n .g-xxl-0,\n .gy-xxl-0 {\n --bs-gutter-y: 0;\n }\n .g-xxl-1,\n .gx-xxl-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-xxl-1,\n .gy-xxl-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-xxl-2,\n .gx-xxl-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-xxl-2,\n .gy-xxl-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-xxl-3,\n .gx-xxl-3 {\n --bs-gutter-x: 1rem;\n }\n .g-xxl-3,\n .gy-xxl-3 {\n --bs-gutter-y: 1rem;\n }\n .g-xxl-4,\n .gx-xxl-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-xxl-4,\n .gy-xxl-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-xxl-5,\n .gx-xxl-5 {\n --bs-gutter-x: 3rem;\n }\n .g-xxl-5,\n .gy-xxl-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 1900px) {\n .col-xxxl {\n flex: 1 0 0%;\n }\n .row-cols-xxxl-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-xxxl-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-xxxl-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-xxxl-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .row-cols-xxxl-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-xxxl-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-xxxl-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .col-xxxl-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-xxxl-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-xxxl-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-xxxl-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-xxxl-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-xxxl-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-xxxl-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-xxxl-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-xxxl-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-xxxl-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-xxxl-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-xxxl-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-xxxl-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-xxxl-0 {\n margin-left: 0;\n }\n .offset-xxxl-1 {\n margin-left: 8.33333333%;\n }\n .offset-xxxl-2 {\n margin-left: 16.66666667%;\n }\n .offset-xxxl-3 {\n margin-left: 25%;\n }\n .offset-xxxl-4 {\n margin-left: 33.33333333%;\n }\n .offset-xxxl-5 {\n margin-left: 41.66666667%;\n }\n .offset-xxxl-6 {\n margin-left: 50%;\n }\n .offset-xxxl-7 {\n margin-left: 58.33333333%;\n }\n .offset-xxxl-8 {\n margin-left: 66.66666667%;\n }\n .offset-xxxl-9 {\n margin-left: 75%;\n }\n .offset-xxxl-10 {\n margin-left: 83.33333333%;\n }\n .offset-xxxl-11 {\n margin-left: 91.66666667%;\n }\n .g-xxxl-0,\n .gx-xxxl-0 {\n --bs-gutter-x: 0;\n }\n .g-xxxl-0,\n .gy-xxxl-0 {\n --bs-gutter-y: 0;\n }\n .g-xxxl-1,\n .gx-xxxl-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-xxxl-1,\n .gy-xxxl-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-xxxl-2,\n .gx-xxxl-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-xxxl-2,\n .gy-xxxl-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-xxxl-3,\n .gx-xxxl-3 {\n --bs-gutter-x: 1rem;\n }\n .g-xxxl-3,\n .gy-xxxl-3 {\n --bs-gutter-y: 1rem;\n }\n .g-xxxl-4,\n .gx-xxxl-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-xxxl-4,\n .gy-xxxl-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-xxxl-5,\n .gx-xxxl-5 {\n --bs-gutter-x: 3rem;\n }\n .g-xxxl-5,\n .gy-xxxl-5 {\n --bs-gutter-y: 3rem;\n }\n}\n.mat-ripple {\n overflow: hidden;\n position: relative;\n}\n.mat-ripple:not(:empty) {\n transform: translateZ(0);\n}\n\n.mat-ripple.mat-ripple-unbounded {\n overflow: visible;\n}\n\n.mat-ripple-element {\n position: absolute;\n border-radius: 50%;\n pointer-events: none;\n transition: opacity, transform 0ms cubic-bezier(0, 0, 0.2, 1);\n transform: scale3d(0, 0, 0);\n}\n.cdk-high-contrast-active .mat-ripple-element {\n display: none;\n}\n\n.cdk-visually-hidden {\n border: 0;\n clip: rect(0 0 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n white-space: nowrap;\n outline: 0;\n -webkit-appearance: none;\n -moz-appearance: none;\n left: 0;\n}\n[dir=rtl] .cdk-visually-hidden {\n left: auto;\n right: 0;\n}\n\n.cdk-overlay-container, .cdk-global-overlay-wrapper {\n pointer-events: none;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n}\n\n.cdk-overlay-container {\n position: fixed;\n z-index: 1000;\n}\n.cdk-overlay-container:empty {\n display: none;\n}\n\n.cdk-global-overlay-wrapper {\n display: flex;\n position: absolute;\n z-index: 1000;\n}\n\n.cdk-overlay-pane {\n position: absolute;\n pointer-events: auto;\n box-sizing: border-box;\n z-index: 1000;\n display: flex;\n max-width: 100%;\n max-height: 100%;\n}\n\n.cdk-overlay-backdrop {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n z-index: 1000;\n pointer-events: auto;\n -webkit-tap-highlight-color: transparent;\n transition: opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);\n opacity: 0;\n}\n.cdk-overlay-backdrop.cdk-overlay-backdrop-showing {\n opacity: 1;\n}\n.cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showing {\n opacity: 0.6;\n}\n\n.cdk-overlay-dark-backdrop {\n background: rgba(0, 0, 0, 0.32);\n}\n\n.cdk-overlay-transparent-backdrop {\n transition: visibility 1ms linear, opacity 1ms linear;\n visibility: hidden;\n opacity: 1;\n}\n.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing {\n opacity: 0;\n visibility: visible;\n}\n\n.cdk-overlay-backdrop-noop-animation {\n transition: none;\n}\n\n.cdk-overlay-connected-position-bounding-box {\n position: absolute;\n z-index: 1000;\n display: flex;\n flex-direction: column;\n min-width: 1px;\n min-height: 1px;\n}\n\n.cdk-global-scrollblock {\n position: fixed;\n width: 100%;\n overflow-y: scroll;\n}\n\ntextarea.cdk-textarea-autosize {\n resize: none;\n}\n\ntextarea.cdk-textarea-autosize-measuring {\n padding: 2px 0 !important;\n box-sizing: content-box !important;\n height: auto !important;\n overflow: hidden !important;\n}\n\ntextarea.cdk-textarea-autosize-measuring-firefox {\n padding: 2px 0 !important;\n box-sizing: content-box !important;\n height: 0 !important;\n}\n\n@keyframes cdk-text-field-autofill-start { /*!*/ }\n@keyframes cdk-text-field-autofill-end { /*!*/ }\n.cdk-text-field-autofill-monitored:-webkit-autofill {\n animation: cdk-text-field-autofill-start 0s 1ms;\n}\n\n.cdk-text-field-autofill-monitored:not(:-webkit-autofill) {\n animation: cdk-text-field-autofill-end 0s 1ms;\n}\n\n.mat-focus-indicator {\n position: relative;\n}\n.mat-focus-indicator::before {\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n position: absolute;\n box-sizing: border-box;\n pointer-events: none;\n display: var(--mat-focus-indicator-display, none);\n border: var(--mat-focus-indicator-border-width, 3px) var(--mat-focus-indicator-border-style, solid) var(--mat-focus-indicator-border-color, transparent);\n border-radius: var(--mat-focus-indicator-border-radius, 4px);\n}\n.mat-focus-indicator:focus::before {\n content: \"\";\n}\n\n.cdk-high-contrast-active {\n --mat-focus-indicator-display: block;\n}\n\n.mat-mdc-focus-indicator {\n position: relative;\n}\n.mat-mdc-focus-indicator::before {\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n position: absolute;\n box-sizing: border-box;\n pointer-events: none;\n display: var(--mat-mdc-focus-indicator-display, none);\n border: var(--mat-mdc-focus-indicator-border-width, 3px) var(--mat-mdc-focus-indicator-border-style, solid) var(--mat-mdc-focus-indicator-border-color, transparent);\n border-radius: var(--mat-mdc-focus-indicator-border-radius, 4px);\n}\n.mat-mdc-focus-indicator:focus::before {\n content: \"\";\n}\n\n.cdk-high-contrast-active {\n --mat-mdc-focus-indicator-display: block;\n}\n\nhtml {\n --mat-datepicker-calendar-date-selected-state-text-color: white;\n --mat-datepicker-calendar-date-selected-state-background-color: #004494;\n --mat-datepicker-calendar-date-selected-disabled-state-background-color: rgba(0, 68, 148, 0.4);\n --mat-datepicker-calendar-date-today-selected-state-outline-color: white;\n --mat-datepicker-calendar-date-focus-state-background-color: rgba(0, 68, 148, 0.3);\n --mat-datepicker-calendar-date-hover-state-background-color: rgba(0, 68, 148, 0.3);\n --mat-datepicker-toggle-active-state-icon-color: #004494;\n --mat-datepicker-calendar-date-in-range-state-background-color: rgba(0, 68, 148, 0.2);\n --mat-datepicker-calendar-date-in-comparison-range-state-background-color: rgba(249, 171, 0, 0.2);\n --mat-datepicker-calendar-date-in-overlap-range-state-background-color: #a8dab5;\n --mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color: #46a35e;\n --mat-datepicker-toggle-icon-color: rgba(0, 0, 0, 0.54);\n --mat-datepicker-calendar-body-label-text-color: rgba(0, 0, 0, 0.54);\n --mat-datepicker-calendar-period-button-icon-color: rgba(0, 0, 0, 0.54);\n --mat-datepicker-calendar-navigation-button-icon-color: rgba(0, 0, 0, 0.54);\n --mat-datepicker-calendar-header-divider-color: rgba(0, 0, 0, 0.12);\n --mat-datepicker-calendar-header-text-color: rgba(0, 0, 0, 0.54);\n --mat-datepicker-calendar-date-today-outline-color: rgba(0, 0, 0, 0.38);\n --mat-datepicker-calendar-date-today-disabled-state-outline-color: rgba(0, 0, 0, 0.18);\n --mat-datepicker-calendar-date-text-color: rgba(0, 0, 0, 0.87);\n --mat-datepicker-calendar-date-outline-color: transparent;\n --mat-datepicker-calendar-date-disabled-state-text-color: rgba(0, 0, 0, 0.38);\n --mat-datepicker-calendar-date-preview-state-outline-color: rgba(0, 0, 0, 0.24);\n --mat-datepicker-range-input-separator-color: rgba(0, 0, 0, 0.87);\n --mat-datepicker-range-input-disabled-state-separator-color: rgba(0, 0, 0, 0.38);\n --mat-datepicker-range-input-disabled-state-text-color: rgba(0, 0, 0, 0.38);\n --mat-datepicker-calendar-container-background-color: white;\n --mat-datepicker-calendar-container-text-color: rgba(0, 0, 0, 0.87);\n}\n\n.mat-datepicker-content.mat-accent {\n --mat-datepicker-calendar-date-selected-state-text-color: #999999;\n --mat-datepicker-calendar-date-selected-state-background-color: #fffcf4;\n --mat-datepicker-calendar-date-selected-disabled-state-background-color: rgba(255, 252, 244, 0.4);\n --mat-datepicker-calendar-date-today-selected-state-outline-color: #999999;\n --mat-datepicker-calendar-date-focus-state-background-color: rgba(255, 252, 244, 0.3);\n --mat-datepicker-calendar-date-hover-state-background-color: rgba(255, 252, 244, 0.3);\n --mat-datepicker-calendar-date-in-range-state-background-color: rgba(255, 252, 244, 0.2);\n --mat-datepicker-calendar-date-in-comparison-range-state-background-color: rgba(249, 171, 0, 0.2);\n --mat-datepicker-calendar-date-in-overlap-range-state-background-color: #a8dab5;\n --mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color: #46a35e;\n}\n.mat-datepicker-content.mat-warn {\n --mat-datepicker-calendar-date-selected-state-text-color: white;\n --mat-datepicker-calendar-date-selected-state-background-color: #f44336;\n --mat-datepicker-calendar-date-selected-disabled-state-background-color: rgba(244, 67, 54, 0.4);\n --mat-datepicker-calendar-date-today-selected-state-outline-color: white;\n --mat-datepicker-calendar-date-focus-state-background-color: rgba(244, 67, 54, 0.3);\n --mat-datepicker-calendar-date-hover-state-background-color: rgba(244, 67, 54, 0.3);\n --mat-datepicker-calendar-date-in-range-state-background-color: rgba(244, 67, 54, 0.2);\n --mat-datepicker-calendar-date-in-comparison-range-state-background-color: rgba(249, 171, 0, 0.2);\n --mat-datepicker-calendar-date-in-overlap-range-state-background-color: #a8dab5;\n --mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color: #46a35e;\n}\n\n.mat-datepicker-toggle-active.mat-accent {\n --mat-datepicker-toggle-active-state-icon-color: #fffcf4;\n}\n.mat-datepicker-toggle-active.mat-warn {\n --mat-datepicker-toggle-active-state-icon-color: #f44336;\n}\n\n.mat-calendar-controls .mat-mdc-icon-button.mat-mdc-button-base {\n --mdc-icon-button-state-layer-size: 40px;\n width: var(--mdc-icon-button-state-layer-size);\n height: var(--mdc-icon-button-state-layer-size);\n padding: 8px;\n}\n.mat-calendar-controls .mat-mdc-icon-button.mat-mdc-button-base .mat-mdc-button-touch-target {\n display: none;\n}\n\n.mat-calendar {\n font-size: small !important;\n font-family: var(--eui-base-font-family) !important;\n}\n.mat-calendar.mat-calendar-year .mat-calendar-period-button {\n display: none;\n}\n\n.cdk-drag-handle {\n cursor: move !important;\n}\n\n.cdk-drop-list {\n display: flex;\n min-width: 100%;\n}\n.cdk-drop-list:not(.cdk-drop-list-disabled) {\n min-height: var(--eui-base-spacing-xl);\n}\n\n.cdk-drop-list-dragging .cdk-drag {\n transition: transform 250ms cubic-bezier(0, 0, 0.2, 1);\n}\n\n.cdk-drag-animating {\n transition: transform 300ms cubic-bezier(0, 0, 0.2, 1);\n}\n\n.cdk-drag-preview {\n background-color: transparent;\n box-shadow: none;\n cursor: grab !important;\n display: table;\n margin: 0 !important;\n opacity: 1;\n position: relative;\n}\n\n.cdk-drag-dragging {\n opacity: 1;\n}\n\n.cdk-drag-placeholder {\n background-color: transparent;\n opacity: 0.35;\n}\n.cdk-drag-placeholder:hover {\n outline: 2px dashed var(--eui-base-color-grey-35);\n outline-offset: 2px;\n}\n\n.cdk-global-scrollblock {\n position: fixed;\n overflow-y: visible;\n width: 100%;\n left: 0 !important;\n}\n.cdk-global-scrollblock::-webkit-scrollbar {\n display: inherit;\n height: 8px;\n width: 8px;\n background-color: var(--eui-base-color-grey-5);\n}\n.cdk-global-scrollblock::-webkit-scrollbar-thumb {\n background-color: var(--eui-base-color-grey-20);\n border-radius: 5rem;\n}\n.cdk-global-scrollblock::-webkit-scrollbar-thumb:hover {\n background-color: var(--eui-base-color-grey-35);\n}\n.cdk-global-scrollblock::-webkit-scrollbar-track {\n background-color: var(--eui-base-color-grey-5);\n border-radius: 0;\n}\n\n@media screen and (max-width: 767px) {\n .cdk-global-scrollblock {\n height: 100%;\n overflow: auto;\n position: fixed;\n width: 100%;\n }\n .cdk-global-scrollblock::-webkit-scrollbar {\n display: inherit;\n height: 8px;\n width: 8px;\n background-color: var(--eui-base-color-grey-5);\n }\n .cdk-global-scrollblock::-webkit-scrollbar-thumb {\n background-color: var(--eui-base-color-grey-20);\n border-radius: 5rem;\n }\n .cdk-global-scrollblock::-webkit-scrollbar-thumb:hover {\n background-color: var(--eui-base-color-grey-35);\n }\n .cdk-global-scrollblock::-webkit-scrollbar-track {\n background-color: var(--eui-base-color-grey-5);\n border-radius: 0;\n }\n}\n.cdk-overlay-container {\n z-index: var(--eui-base-z-index-cdk-overlay-container);\n}\n.cdk-overlay-container .mat-menu-panel {\n max-width: inherit;\n min-height: var(--eui-base-spacing-l);\n}\n.cdk-overlay-container .mat-menu-panel::-webkit-scrollbar {\n display: inherit;\n height: 8px;\n width: 8px;\n background-color: var(--eui-base-color-grey-5);\n}\n.cdk-overlay-container .mat-menu-panel::-webkit-scrollbar-thumb {\n background-color: var(--eui-base-color-grey-20);\n border-radius: 5rem;\n}\n.cdk-overlay-container .mat-menu-panel::-webkit-scrollbar-thumb:hover {\n background-color: var(--eui-base-color-grey-35);\n}\n.cdk-overlay-container .mat-menu-panel::-webkit-scrollbar-track {\n background-color: var(--eui-base-color-grey-5);\n border-radius: 0;\n}\n.cdk-overlay-container .mat-autocomplete-panel::-webkit-scrollbar {\n display: inherit;\n height: 8px;\n width: 8px;\n background-color: var(--eui-base-color-grey-5);\n}\n.cdk-overlay-container .mat-autocomplete-panel::-webkit-scrollbar-thumb {\n background-color: var(--eui-base-color-grey-20);\n border-radius: 5rem;\n}\n.cdk-overlay-container .mat-autocomplete-panel::-webkit-scrollbar-thumb:hover {\n background-color: var(--eui-base-color-grey-35);\n}\n.cdk-overlay-container .mat-autocomplete-panel::-webkit-scrollbar-track {\n background-color: var(--eui-base-color-grey-5);\n border-radius: 0;\n}\n\n@media screen and (max-width: 767px) {\n .cdk-overlay-container {\n height: 100vh;\n height: calc(var(--eui-app-vh, 1vh) * 100);\n left: 0;\n position: fixed;\n top: 0;\n width: 100vw;\n }\n}\n.cdk-overlay-pane {\n background-color: var(--eui-base-color-white);\n z-index: var(--eui-base-z-index-cdk-overlay-pane);\n}\n\n:focus,\n:focus-visible {\n outline: none;\n}\n\nhtml {\n display: block;\n height: 100%;\n font-size: var(--eui-base-font-size);\n line-height: var(--eui-base-line-height);\n}\n\nbody {\n background-color: var(--eui-base-color-grey-2);\n color: var(--eui-base-color-grey-100);\n font-family: var(--eui-base-font-family);\n font-feature-settings: \"liga\";\n font-size: var(--eui-base-font-size);\n -moz-font-smoothing: antialiased;\n -webkit-font-smoothing: antialiased;\n font-style: normal;\n font-weight: normal;\n height: 100%;\n line-height: var(--eui-base-line-height);\n margin: 0;\n text-align: left;\n text-rendering: optimizeLegibility;\n}\n\n@-ms-viewport {\n width: device-width;\n}\n/* ==========================================================================\n #BOX-SIZING\n ========================================================================== */\n/**\n * More sensible default box-sizing:\n * css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice\n */\nhtml {\n box-sizing: border-box;\n}\n\n*::before, *::after, * {\n box-sizing: inherit;\n}\n\na,\narea,\nbutton,\n[role=button],\ninput,\nlabel,\nselect,\nsummary,\ntextarea {\n touch-action: manipulation;\n}\n\n[tabindex=\"-1\"]:focus {\n outline: none !important;\n}\n\n[hidden] {\n display: none !important;\n}\n\np,\nlabel,\nblockquote,\nabbr,\nmark,\ndel {\n font-size: var(--eui-base-font-size);\n}\n\nb, strong {\n font-weight: bold;\n}\n\ntable.eui-table-default {\n background-color: transparent;\n border-collapse: collapse;\n border-spacing: 0;\n color: var(--eui-base-color-font);\n max-width: 100%;\n overflow: auto;\n position: relative;\n}\ntable.eui-table-default thead > tr > th,\ntable.eui-table-default tbody > tr > td,\ntable.eui-table-default tfoot > tr > td {\n vertical-align: top;\n}\ntable.eui-table-default tr > th,\ntable.eui-table-default tr > td {\n padding: var(--eui-base-spacing-s);\n}\ntable.eui-table-default thead th {\n border-bottom: 1px solid var(--eui-base-color-grey-10);\n color: var(--eui-base-color-grey-75);\n font-size: var(--eui-base-font-size);\n padding: var(--eui-base-spacing-m) var(--eui-base-spacing-s);\n vertical-align: middle;\n font: normal normal 400 1rem/1.25rem var(--eui-base-font-family);\n font-weight: 700;\n}\ntable.eui-table-default thead tr {\n background: var(--eui-base-color-grey-10);\n border-top: 0;\n}\ntable.eui-table-default tbody {\n -webkit-overflow-scrolling: touch;\n}\ntable.eui-table-default tbody tr:nth-of-type(odd) {\n background-color: var(--eui-base-color-grey-2);\n}\ntable.eui-table-default tbody tr:nth-of-type(odd):hover {\n background-color: var(--eui-base-color-grey-10);\n}\ntable.eui-table-default tbody tr:nth-of-type(even) {\n background-color: var(--eui-base-color-grey-5);\n}\ntable.eui-table-default tbody tr:nth-of-type(even):hover {\n background-color: var(--eui-base-color-grey-10);\n}\ntable.eui-table-default tr {\n border-bottom: 1px solid var(--eui-base-color-grey-20);\n display: table-row;\n}\ntable.eui-table-default--compact thead th {\n padding: var(--eui-base-spacing-xs) var(--eui-base-spacing-s);\n}\ntable.eui-table-default--compact tr > td {\n padding: var(--eui-base-spacing-2xs) var(--eui-base-spacing-s);\n}\ntable.eui-table-default--responsive {\n display: table;\n width: 100%;\n}\ntable.eui-table-default--responsive--bordered {\n border: 0;\n}\ntable.eui-table-default--bordered th,\ntable.eui-table-default--bordered td {\n border: 1px solid var(--eui-base-color-grey-20);\n}\ntable.eui-table-default--shadowed {\n box-shadow: var(--eui-base-shadow-1);\n}\ntable.eui-table-default--nowrap {\n white-space: nowrap;\n}\ntable.eui-table-default--nowrap thead > tr > th,\ntable.eui-table-default--nowrap tbody > tr > td,\ntable.eui-table-default--nowrap tfoot > tr > td {\n white-space: nowrap;\n}\ntable.eui-table-default--centered {\n display: table;\n margin: 0 auto;\n width: auto;\n}\ntable.eui-table-default--align-middle thead > tr > th,\ntable.eui-table-default--align-middle tbody > tr > td,\ntable.eui-table-default--align-middle tfoot > tr > td {\n vertical-align: middle;\n}\n\n.eui-clearable-wrapper {\n align-items: center;\n display: flex;\n position: relative;\n width: 100%;\n}\n.eui-clearable-wrapper .eui-input-text--clearable-icon {\n bottom: calc(var(--eui-base-spacing-s) - 2px);\n cursor: pointer;\n position: absolute;\n right: var(--eui-base-spacing-s);\n user-select: none;\n visibility: visible;\n z-index: var(--eui-base-z-index-clearable-icon);\n}\n.eui-clearable-wrapper .eui-input-text--clearable-icon:active:not([readonly]), .eui-clearable-wrapper .eui-input-text--clearable-icon:focus:not([readonly]) {\n outline: 2px solid var(--eui-base-color-accessible-focus);\n outline-offset: -2px;\n transition: none;\n}\n.eui-clearable-wrapper .eui-input-text--clearable-icon [tabindex=\"0\"]:active:not([readonly]), .eui-clearable-wrapper .eui-input-text--clearable-icon [tabindex=\"0\"]:focus:not([readonly]) {\n outline: 2px solid var(--eui-base-color-accessible-focus);\n outline-offset: -2px;\n transition: none;\n}\n.eui-clearable-wrapper .eui-input-text--clearable-icon > svg {\n fill: var(--eui-base-color-grey-35);\n}\n.eui-clearable-wrapper .eui-input-text--clearable-icon > svg:hover {\n fill: var(--eui-base-color-danger-100);\n}\n\n.eui-input-maxlength-wrapper {\n position: relative;\n width: 100%;\n}\n.eui-input-maxlength-wrapper .eui-input-maxlength {\n font: normal normal 400 0.75rem/1rem var(--eui-base-font-family);\n background-color: var(--eui-base-color-grey-10);\n border: 1px solid var(--eui-base-color-grey-50);\n border-radius: var(--eui-base-border-radius);\n color: var(--eui-base-color-grey-100);\n padding: 0 var(--eui-base-spacing-2xs);\n position: absolute;\n right: calc(-1 * var(--eui-base-spacing-xs));\n top: calc(-1 * var(--eui-base-spacing-xs));\n z-index: var(--eui-base-z-index-input-maxlength);\n}\n.eui-input-maxlength-wrapper .eui-input-maxlength--invalid {\n background-color: var(--eui-base-color-warning-100);\n border-color: var(--eui-base-color-warning-100);\n color: var(--eui-base-color-white);\n}\n\n@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {\n img[src$=\".svg\"] {\n width: 100%;\n }\n}\n@media screen {\n img {\n background-repeat: no-repeat;\n background-size: 100%;\n -ms-interpolation-mode: bicubic;\n }\n}\n.cookie-consent-banner {\n display: block !important;\n min-width: 50% !important;\n position: absolute !important;\n right: 50% !important;\n top: var(--eui-base-spacing-m) !important;\n transform: translateX(50%) !important;\n z-index: var(--eui-base-z-index-max) !important;\n box-shadow: var(--eui-base-shadow-24) !important;\n background: var(--eui-base-color-primary) !important;\n color: var(eui-base-color-white) !important;\n}\n\n#loader-wrapper {\n height: 100%;\n left: 0;\n position: fixed;\n top: 0;\n width: 100%;\n z-index: 1000;\n}\n#loader-wrapper #loader {\n -webkit-animation: spin 2s linear infinite; /* Chrome, Opera 15+, Safari 5+ */\n animation: spin 2s linear infinite; /* Chrome, Firefox 16+, IE 10+, Opera */\n animation: hourglass 5s linear infinite;\n border: 10px solid transparent;\n border-radius: 50%;\n border-top-color: var(--eui-base-color-warning-100);\n display: block;\n height: 200px;\n left: 50%;\n margin: -100px 0 0 -100px;\n position: relative;\n top: 50%;\n width: 200px;\n}\n#loader-wrapper #loader::before {\n -webkit-animation: spin 2s linear infinite; /* Chrome, Opera 15+, Safari 5+ */\n animation: spin 2s linear infinite; /* Chrome, Firefox 16+, IE 10+, Opera */\n animation: hourglass 4s linear infinite;\n border: 10px solid transparent;\n border-radius: 50%;\n border-top-color: var(--eui-base-color-danger-100);\n bottom: 5px;\n content: \"\";\n left: 5px;\n position: absolute;\n right: 5px;\n top: 5px;\n}\n#loader-wrapper #loader::after {\n -webkit-animation: spin 1s linear infinite; /* Chrome, Opera 15+, Safari 5+ */\n animation: spin 1s linear infinite; /* Chrome, Firefox 16+, IE 10+, Opera */\n animation: hourglass 3s linear infinite;\n border: 10px solid transparent;\n border-radius: 50%;\n border-top-color: var(--eui-base-color-primary-100);\n bottom: 20px;\n content: \"\";\n left: 20px;\n position: absolute;\n right: 20px;\n top: 20px;\n}\n\n/* stylelint-enable */\n@-webkit-keyframes spin {\n 0% {\n -webkit-transform: rotate(0deg);\n -ms-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n -ms-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n@keyframes spin {\n 0% {\n -webkit-transform: rotate(0deg);\n -ms-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n -ms-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n@-webkit-keyframes hourglass {\n 0% {\n transform: rotate(0);\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n 50% {\n transform: rotate(900deg);\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n 100% {\n transform: rotate(1800deg);\n }\n}\n@keyframes hourglass {\n 0% {\n transform: rotate(0);\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n 50% {\n transform: rotate(900deg);\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n 100% {\n transform: rotate(1800deg);\n }\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGV1aS9zdHlsZXMtYmFzZS9zcmMvc3R5bGVzLzAyLWJhc2UvZnVuY3Rpb25zL19tb2R1bGUuc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AZXVpL3N0eWxlcy1iYXNlL3NyYy9zdHlsZXMvMDItYmFzZS9taXhpbnMvX2V1aS1mb250LWZhbWlseS5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BldWkvc3R5bGVzLWJhc2Uvc3JjL3N0eWxlcy8wMC1yZXNldC9fbW9kdWxlLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGV1aS9zdHlsZXMtYmFzZS9zcmMvc3R5bGVzLzAzLXZhcnMvX2NvbG9ycy52YXJzLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGV1aS9zdHlsZXMtYmFzZS9zcmMvc3R5bGVzLzAzLXZhcnMvX3Rva2Vucy52YXJzLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGV1aS9zdHlsZXMtYmFzZS9zcmMvc3R5bGVzLzAzLXZhcnMvX290aGVyLnZhcnMuc2NzcyIsIjAyYi1iYXNlLXZhcnMvX2xheW91dC52YXJzLnNjc3MiLCIwMmItYmFzZS12YXJzL19vdGhlci52YXJzLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGV1aS9zdHlsZXMtYmFzZS9zcmMvc3R5bGVzLzA1LWFzc2V0cy9pY29ucy1zdmcvX2ljb25zLWdlbmVyaWNzLnNjc3MiLCIwNC12ZW5kb3JzL2xpYnMvYm9vdHN0cmFwL3Njc3MvX2dyaWQuc2NzcyIsIjA0LXZlbmRvcnMvbGlicy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX2dyaWQuc2NzcyIsIjA0LXZlbmRvcnMvbGlicy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX2JyZWFrcG9pbnRzLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZS9yaXBwbGUvX3JpcHBsZS5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhbmd1bGFyL2Nkay9hMTF5L19pbmRleC5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhbmd1bGFyL2Nkay9vdmVybGF5L19pbmRleC5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhbmd1bGFyL2Nkay90ZXh0LWZpZWxkL19pbmRleC5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUvZm9jdXMtaW5kaWNhdG9ycy9fcHJpdmF0ZS5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUvc3R5bGUvX2xheW91dC1jb21tb24uc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYW5ndWxhci9tYXRlcmlhbC9jb3JlL3N0eWxlL19zYXNzLXV0aWxzLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQG1hdGVyaWFsL3RoZW1lL19jc3Muc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyL19kYXRlcGlja2VyLXRoZW1lLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uL19pY29uLWJ1dHRvbi10aGVtZS5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbi9fYnV0dG9uLXRoZW1lLXByaXZhdGUuc2NzcyIsIjA1LW1hdGVyaWFsL292ZXJyaWRlcy9fY2FsZW5kYXIuc2NzcyIsIjA1LW1hdGVyaWFsL292ZXJyaWRlcy9fY2RrLWRyYWcuc2NzcyIsIjA1LW1hdGVyaWFsL292ZXJyaWRlcy9fY2RrLWdsb2JhbC1zY3JvbGxibG9jay5zY3NzIiwiMDItYmFzZS9taXhpbnMvX2V1aS1zY3JvbGxiYXJzLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGV1aS9zdHlsZXMtYmFzZS9zcmMvc3R5bGVzLzAyLWJhc2UvbWl4aW5zL3V0aWxzL19tZWRpYS5zY3NzIiwiMDUtbWF0ZXJpYWwvb3ZlcnJpZGVzL19jZGstb3ZlcmxheS1jb250YWluZXIuc2NzcyIsIjA1LW1hdGVyaWFsL292ZXJyaWRlcy9fY2RrLW92ZXJsYXktY29udGFpbmVyLm1xLnNjc3MiLCIwNS1tYXRlcmlhbC9vdmVycmlkZXMvX2Nkay1vdmVybGF5LXBhbmUuc2NzcyIsIjA2LXNoYXJlZC9fbW9kdWxlLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGV1aS9zdHlsZXMtYmFzZS9zcmMvc3R5bGVzLzA0LWVsZW1lbnRzL19odG1sLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGV1aS9zdHlsZXMtYmFzZS9zcmMvc3R5bGVzLzA0LWVsZW1lbnRzL19ib2R5LnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGV1aS9zdHlsZXMtYmFzZS9zcmMvc3R5bGVzLzA0LWVsZW1lbnRzL19zaGFyZWQuc2NzcyIsIjA3LWVsZW1lbnRzL2V1aS10YWJsZS1kZWZhdWx0L19ldWktdGFibGUtZGVmYXVsdC5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BldWkvc3R5bGVzLWJhc2Uvc3JjL3N0eWxlcy8wMi1iYXNlL21peGlucy9fZXVpLWZvbnQuc2NzcyIsIjA3LWVsZW1lbnRzL2RpcmVjdGl2ZXMvX2V1aS1jbGVhcmFibGUtaW5wdXQuc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AZXVpL3N0eWxlcy1iYXNlL3NyYy9zdHlsZXMvMDItYmFzZS9taXhpbnMvX2V1aS1hY2Nlc3NpYmlsaXR5LnNjc3MiLCIwNy1lbGVtZW50cy9kaXJlY3RpdmVzL19ldWktaW5wdXQtbWF4bGVuZ3RoLnNjc3MiLCIxMC1tZWRpYS9faWVpbWdmaXguc2NzcyIsIjExLWV4dHJhcy9fY29va2llLWNvbnNlbnQuc2NzcyIsIjExLWV4dHJhcy9fcHJlbG9hZGVyLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBOEJBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUM5QkE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQ0FBO0FBRUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBS0M7RUFDRztFQUNBOzs7QUFHRjtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBSUE7RUFDRTs7O0FBR0Y7QUFBQTtBQUFBO0FBSUE7RUFDRTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUNFO0VBQ0E7OztBQUdGO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQ0U7RUFDQTs7O0FBR0Y7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUlBO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUlBO0FBQUE7RUFFRTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7RUFHRTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFJQTtFQUNFOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7RUFFRTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUlBO0VBQ0U7OztBQUdGO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFLRTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBLFFBQ1E7RUFDTjs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBLFNBQ1M7RUFDUDs7O0FBR0Y7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7RUFJRTs7O0FBR0Y7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7RUFJRTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtFQUlFOzs7QUFHRjtBQUFBO0FBQUE7QUFJQTtFQUNFOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBSUE7RUFDRTs7O0FBR0Y7QUFBQTtBQUFBO0FBSUE7RUFDRTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0VBRUU7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBSUE7QUFBQTtFQUVFOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQ0U7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBSUE7RUFDRTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUNFO0VBQ0E7OztBQUdGO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFJQTtFQUNFOzs7QUFHRjtBQUFBO0FBQUE7QUFJQTtFQUNFOzs7QUFHRjtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBSUE7RUFDRTs7O0FBR0Y7QUFBQTtBQUFBO0FBSUE7RUFDRTs7O0FDM1ZKO0VBSVk7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQU1KO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBSUo7RUFDQTtFQUNBO0VBQ0E7OztBQ3BCSjtFQUVJO0VBR0E7RUFDQTtFQUdBO0VBRUk7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUlKO0VBRUk7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBVUk7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFNSjtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUtBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBS0E7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7OztBQzNDUjtFQUNJO0VBQ0E7RUFDQTtFQUVBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFHQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFHQTs7O0FDcENKO0VBRUk7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFHQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7OztBQzlDSjtFQUNJOzs7QUNESjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0E7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBS0E7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUtSO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBSVI7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTs7O0FDcENGO0VDQUE7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7O0FESkU7RUNTRjtFQUlBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBK0NJO0VBQ0U7OztBQUdGO0VBcENKO0VBQ0E7OztBQWNBO0VBQ0U7RUFDQTs7O0FBRkY7RUFDRTtFQUNBOzs7QUFGRjtFQUNFO0VBQ0E7OztBQUZGO0VBQ0U7RUFDQTs7O0FBRkY7RUFDRTtFQUNBOzs7QUFGRjtFQUNFO0VBQ0E7OztBQStCRTtFQWhESjtFQUNBOzs7QUFxRFE7RUFoRU47RUFDQTs7O0FBK0RNO0VBaEVOO0VBQ0E7OztBQStETTtFQWhFTjtFQUNBOzs7QUErRE07RUFoRU47RUFDQTs7O0FBK0RNO0VBaEVOO0VBQ0E7OztBQStETTtFQWhFTjtFQUNBOzs7QUErRE07RUFoRU47RUFDQTs7O0FBK0RNO0VBaEVOO0VBQ0E7OztBQStETTtFQWhFTjtFQUNBOzs7QUErRE07RUFoRU47RUFDQTs7O0FBK0RNO0VBaEVOO0VBQ0E7OztBQStETTtFQWhFTjtFQUNBOzs7QUF1RVE7RUF4RFY7OztBQXdEVTtFQXhEVjs7O0FBd0RVO0VBeERWOzs7QUF3RFU7RUF4RFY7OztBQXdEVTtFQXhEVjs7O0FBd0RVO0VBeERWOzs7QUF3RFU7RUF4RFY7OztBQXdEVTtFQXhEVjs7O0FBd0RVO0VBeERWOzs7QUF3RFU7RUF4RFY7OztBQXdEVTtFQXhEVjs7O0FBbUVNO0FBQUE7RUFFRTs7O0FBR0Y7QUFBQTtFQUVFOzs7QUFQRjtBQUFBO0VBRUU7OztBQUdGO0FBQUE7RUFFRTs7O0FBUEY7QUFBQTtFQUVFOzs7QUFHRjtBQUFBO0VBRUU7OztBQVBGO0FBQUE7RUFFRTs7O0FBR0Y7QUFBQTtFQUVFOzs7QUFQRjtBQUFBO0VBRUU7OztBQUdGO0FBQUE7RUFFRTs7O0FBUEY7QUFBQTtFQUVFOzs7QUFHRjtBQUFBO0VBRUU7OztBQzFETjtFRFVFO0lBQ0U7O0VBR0Y7SUFwQ0o7SUFDQTs7RUFjQTtJQUNFO0lBQ0E7O0VBRkY7SUFDRTtJQUNBOztFQUZGO0lBQ0U7SUFDQTs7RUFGRjtJQUNFO0lBQ0E7O0VBRkY7SUFDRTtJQUNBOztFQUZGO0lBQ0U7SUFDQTs7RUErQkU7SUFoREo7SUFDQTs7RUFxRFE7SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUF1RVE7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUFtRU07QUFBQTtJQUVFOztFQUdGO0FBQUE7SUFFRTs7RUFQRjtBQUFBO0lBRUU7O0VBR0Y7QUFBQTtJQUVFOztFQVBGO0FBQUE7SUFFRTs7RUFHRjtBQUFBO0lBRUU7O0VBUEY7QUFBQTtJQUVFOztFQUdGO0FBQUE7SUFFRTs7RUFQRjtBQUFBO0lBRUU7O0VBR0Y7QUFBQTtJQUVFOztFQVBGO0FBQUE7SUFFRTs7RUFHRjtBQUFBO0lBRUU7OztBQzFETjtFRFVFO0lBQ0U7O0VBR0Y7SUFwQ0o7SUFDQTs7RUFjQTtJQUNFO0lBQ0E7O0VBRkY7SUFDRTtJQUNBOztFQUZGO0lBQ0U7SUFDQTs7RUFGRjtJQUNFO0lBQ0E7O0VBRkY7SUFDRTtJQUNBOztFQUZGO0lBQ0U7SUFDQTs7RUErQkU7SUFoREo7SUFDQTs7RUFxRFE7SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUF1RVE7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUFtRU07QUFBQTtJQUVFOztFQUdGO0FBQUE7SUFFRTs7RUFQRjtBQUFBO0lBRUU7O0VBR0Y7QUFBQTtJQUVFOztFQVBGO0FBQUE7SUFFRTs7RUFHRjtBQUFBO0lBRUU7O0VBUEY7QUFBQTtJQUVFOztFQUdGO0FBQUE7SUFFRTs7RUFQRjtBQUFBO0lBRUU7O0VBR0Y7QUFBQTtJQUVFOztFQVBGO0FBQUE7SUFFRTs7RUFHRjtBQUFBO0lBRUU7OztBQzFETjtFRFVFO0lBQ0U7O0VBR0Y7SUFwQ0o7SUFDQTs7RUFjQTtJQUNFO0lBQ0E7O0VBRkY7SUFDRTtJQUNBOztFQUZGO0lBQ0U7SUFDQTs7RUFGRjtJQUNFO0lBQ0E7O0VBRkY7SUFDRTtJQUNBOztFQUZGO0lBQ0U7SUFDQTs7RUErQkU7SUFoREo7SUFDQTs7RUFxRFE7SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUF1RVE7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUFtRU07QUFBQTtJQUVFOztFQUdGO0FBQUE7SUFFRTs7RUFQRjtBQUFBO0lBRUU7O0VBR0Y7QUFBQTtJQUVFOztFQVBGO0FBQUE7SUFFRTs7RUFHRjtBQUFBO0lBRUU7O0VBUEY7QUFBQTtJQUVFOztFQUdGO0FBQUE7SUFFRTs7RUFQRjtBQUFBO0lBRUU7O0VBR0Y7QUFBQTtJQUVFOztFQVBGO0FBQUE7SUFFRTs7RUFHRjtBQUFBO0lBRUU7OztBQzFETjtFRFVFO0lBQ0U7O0VBR0Y7SUFwQ0o7SUFDQTs7RUFjQTtJQUNFO0lBQ0E7O0VBRkY7SUFDRTtJQUNBOztFQUZGO0lBQ0U7SUFDQTs7RUFGRjtJQUNFO0lBQ0E7O0VBRkY7SUFDRTtJQUNBOztFQUZGO0lBQ0U7SUFDQTs7RUErQkU7SUFoREo7SUFDQTs7RUFxRFE7SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUF1RVE7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUFtRU07QUFBQTtJQUVFOztFQUdGO0FBQUE7SUFFRTs7RUFQRjtBQUFBO0lBRUU7O0VBR0Y7QUFBQTtJQUVFOztFQVBGO0FBQUE7SUFFRTs7RUFHRjtBQUFBO0lBRUU7O0VBUEY7QUFBQTtJQUVFOztFQUdGO0FBQUE7SUFFRTs7RUFQRjtBQUFBO0lBRUU7O0VBR0Y7QUFBQTtJQUVFOztFQVBGO0FBQUE7SUFFRTs7RUFHRjtBQUFBO0lBRUU7OztBQzFETjtFRFVFO0lBQ0U7O0VBR0Y7SUFwQ0o7SUFDQTs7RUFjQTtJQUNFO0lBQ0E7O0VBRkY7SUFDRTtJQUNBOztFQUZGO0lBQ0U7SUFDQTs7RUFGRjtJQUNFO0lBQ0E7O0VBRkY7SUFDRTtJQUNBOztFQUZGO0lBQ0U7SUFDQTs7RUErQkU7SUFoREo7SUFDQTs7RUFxRFE7SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUF1RVE7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUFtRU07QUFBQTtJQUVFOztFQUdGO0FBQUE7SUFFRTs7RUFQRjtBQUFBO0lBRUU7O0VBR0Y7QUFBQTtJQUVFOztFQVBGO0FBQUE7SUFFRTs7RUFHRjtBQUFBO0lBRUU7O0VBUEY7QUFBQTtJQUVFOztFQUdGO0FBQUE7SUFFRTs7RUFQRjtBQUFBO0lBRUU7O0VBR0Y7QUFBQTtJQUVFOztFQVBGO0FBQUE7SUFFRTs7RUFHRjtBQUFBO0lBRUU7OztBQzFETjtFRFVFO0lBQ0U7O0VBR0Y7SUFwQ0o7SUFDQTs7RUFjQTtJQUNFO0lBQ0E7O0VBRkY7SUFDRTtJQUNBOztFQUZGO0lBQ0U7SUFDQTs7RUFGRjtJQUNFO0lBQ0E7O0VBRkY7SUFDRTtJQUNBOztFQUZGO0lBQ0U7SUFDQTs7RUErQkU7SUFoREo7SUFDQTs7RUFxRFE7SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUF1RVE7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RV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QUNJO0lBQ0E7O0VBRUo7SUFDSTs7O0FBR1I7RUFDSTtJQUNJO0lBQ0E7O0VBRUo7SUFDSTtJQUNBOztFQUVKO0lBQ0kiLCJmaWxlIjoiZXVpLnRlbXAuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQHVzZSBcInNhc3M6bWF0aFwiO1xuQGZ1bmN0aW9uIHYoJHZhciwgJGZhbGxiYWNrOiBudWxsKSB7XG4gICAgQGlmICgkZmFsbGJhY2spIHtcbiAgICAgICAgQHJldHVybiB2YXIoLS0jeyR2YXJ9LCAjeyRmYWxsYmFja30pO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAgIEByZXR1cm4gdmFyKC0tI3skdmFyfSk7XG4gICAgfVxufVxuQGZ1bmN0aW9uIG1hcC1kZWVwLWdldCgkbWFwLCAka2V5cy4uLikge1xuICAgIEBlYWNoICRrZXkgaW4gJGtleXMge1xuICAgICAgICBAZGVidWcgI3skbWFwfTtcbiAgICAgICAgJG1hcDogbWFwLWdldCgkbWFwLCAka2V5KTtcbiAgICB9XG4gICAgQHJldHVybiAkbWFwO1xufVxuQGZ1bmN0aW9uIHRvUkdCKCRjb2xvcikge1xuICAgIEByZXR1cm4gXCJyZ2IoXCIgKyByZWQoJGNvbG9yKSArIFwiLCBcIiArIGdyZWVuKCRjb2xvcikgKyBcIiwgXCIgKyBibHVlKCRjb2xvcikrIFwiKVwiO1xufVxuQGZ1bmN0aW9uIGdldENvbnRyYXN0KCRjb2xvcikge1xuICAgICRjb2xvci1icmlnaHRuZXNzOiByb3VuZCgocmVkKCRjb2xvcikgKiAyOTkpICsgKGdyZWVuKCRjb2xvcikgKiA1ODcpICsgbWF0aC5kaXYoKGJsdWUoJGNvbG9yKSAqIDExNCksIDEwMDApKTtcbiAgICAkbGlnaHQtY29sb3I6IHJvdW5kKChyZWQoI2ZmZikgKiAyOTkpICsgKGdyZWVuKCNmZmYpICogNTg3KSArIG1hdGguZGl2KChibHVlKCNmZmYpICogMTE0KSwgMTAwMCkpO1xuICAgIEBpZiBhYnMoJGNvbG9yLWJyaWdodG5lc3MpIDwgbWF0aC5kaXYoJGxpZ2h0LWNvbG9yLCAyKSB7XG4gICAgICAgIEByZXR1cm4gd2hpdGU7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICAgQHJldHVybiBtYXAtZ2V0KCRlY2wtYmFzZS1jb2xvcnMsICdncmV5LTEwMCcpO1xuICAgIH1cbn1cblxuLyoqXG4gICAqIEVDTCBjb2xvciB2YXJpYW50cyBmb3JtdWxhXG4gICAqIEFwcGxpZXMgdGludCBvciBzaGFkZSBvZiBiYXNlIGNvbG9yIHByb3ZpZGVkXG4gICAqXG4gICAqIEBwYXJhbSBjb2xvcjogYmFzZSBjb2xvciwgaGFzIHZhcmlhbnQgb2YgMTAwXG4gICAqIEBwYXJhbSB2YXJpYW50OiBudW1iZXIgaW4gcmFuZ2UgYmV0d2VlbiAwIC0gMjAwXG4gICAqICAgICAgICAgICAgICAgICAxMDAgLSBuZXV0cmFsIHZhcmlhbnQsIG5vIGNoYW5nZXNcbiAgICogICAgICAgICAgICAgICAgIDAgLSA5OTogYnJpZ2h0ZW5zIGJhc2UgY29sb3IgYnkgbWl4aW5nIGluIHdoaXRlIGNvbG9yLCB0aGUgbG93ZXIsIHRoZSBicmlnaHRlclxuICAgKiAgICAgICAgICAgICAgICAgOTkgLSAyMDA6IGRhcmtlbnMgYmFzZSBjb2xvciBieSBtaXhpbmcgaW4gYmxhY2sgY29sb3IsIHRoZSBiaWdnZXIsIHRoZSBkYXJrZXJcbiAgICpcbiAgICogQHJldHVybiBjb2xvciB2YXJpYW50IG9mIHByb3ZpZGVkIGJhc2UgY29sb3JcbiAgICpcbiAgICogQGV4YW1wbGVzXG4gICAqXG4gICAqIC8vIHByb3ZpZGVzIDMwJSBkYXJrZXIgcGluayBjb2xvclxuICAgKiBiYWNrZ3JvdW5kLWNvbG9yOiBldWktY29sb3ItdmFyaWFudChwaW5rLCAxMzApO1xuICAgKlxuICAgKiAvLyBwcm92aWRlcyA5NSUgbGlnaHRlciBwaW5rIGNvbG9yXG4gICAqIGJhY2tncm91bmQtY29sb3I6IGV1aS1jb2xvci12YXJpYW50KHBpbmssIDUpO1xuICAgKi9cbkBmdW5jdGlvbiBldWktY29sb3ItdmFyaWFudCgkY29sb3IsICR2YXJpYW50OiAxMDApIHtcbiAgICBAaWYgKCR2YXJpYW50IDwgMTAwKSB7XG4gICAgICAgIEByZXR1cm4gbWl4KCNmZmZmZmYsICRjb2xvciwgKDEwMCAtICR2YXJpYW50KSAqIDElKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgICBAcmV0dXJuIG1peCgjMDAwMDAwLCAkY29sb3IsICgkdmFyaWFudCAtIDEwMCkgKiAxJSk7XG4gICAgfVxufVxuQGZ1bmN0aW9uIG5ldy1icmVha3BvaW50KCRxdWVyeTogJGZlYXR1cmUgJHZhbHVlKSB7XG4gICAgQGlmIGxlbmd0aCgkcXVlcnkpID09IDEge1xuICAgICAgICAkcXVlcnk6ICRkZWZhdWx0LWZlYXR1cmUgbnRoKCRxdWVyeSwgMSk7XG4gICAgfVxuICAgIEBlbHNlIGlmIGlzLWV2ZW4obGVuZ3RoKCRxdWVyeSkpIHtcbiAgICAgICAgJHF1ZXJ5OiBhcHBlbmQoJHF1ZXJ5LCAxMik7XG4gICAgfVxuICAgIEByZXR1cm4gJHF1ZXJ5O1xufVxuQGZ1bmN0aW9uIHN0cmlwLXVuaXRzKCR2YWx1ZSkge1xuICAgIEByZXR1cm4gbWF0aC5kaXYoJHZhbHVlLCAkdmFsdWUgKiAwICsgMSk7XG59XG5AZnVuY3Rpb24gdG8tcmVtKCRweHZhbCkge1xuICAgIEBpZiBub3QgdW5pdGxlc3MoJHB4dmFsKSB7XG4gICAgICAgICRweHZhbDogc3RyaXAtdW5pdHMoJHB4dmFsKTtcbiAgICB9XG4gICAgJGJhc2U6IDE2cHg7XG4gICAgQGlmIG5vdCB1bml0bGVzcygkYmFzZSkge1xuICAgICAgICAkYmFzZTogc3RyaXAtdW5pdHMoJGJhc2UpO1xuICAgIH1cbiAgICBAcmV0dXJuIG1hdGguZGl2KCRweHZhbCwgJGJhc2UpICogMXJlbTtcbn1cbiIsIi8qKiBDb21tb24gd2VpZ2h0IG5hbWUgbWFwcGluZ1xuICAgIEBTZWUgdGhlIE9wZW5UeXBlIHNwZWNpZmljYXRpb246XG4gICAgaHR0cHM6Ly9kb2NzLm1pY3Jvc29mdC5jb20vZW4tdXMvdHlwb2dyYXBoeS9vcGVudHlwZS9zcGVjL29zMiN1c3dlaWdodGNsYXNzXG4gICAgVGhlIG51bWVyaWNhbCB2YWx1ZXMgMTAwIHRvIDkwMCByb3VnaGx5IGNvcnJlc3BvbmQgdG8gdGhlIGZvbGxvd2luZyBjb21tb24gd2VpZ2h0IG5hbWVzOlxuICAgIDEwMCAgICAgVGhpbiAoSGFpcmxpbmUpXG4gICAgMjAwXHQgICAgRXh0cmEgTGlnaHQgKFVsdHJhIExpZ2h0KVxuICAgIDMwMFx0ICAgIExpZ2h0XG4gICAgNDAwXHQgICAgTm9ybWFsXG4gICAgNTAwXHQgICAgTWVkaXVtXG4gICAgNjAwXHQgICAgU2VtaSBCb2xkIChEZW1pIEJvbGQpXG4gICAgNzAwXHQgICAgQm9sZFxuICAgIDgwMFx0ICAgIEV4dHJhIEJvbGQgKFVsdHJhIEJvbGQpXG4gICAgOTAwXHQgICAgQmxhY2sgKEhlYXZ5KVxuKiovXG5AbWl4aW4gZXVpLWZvbnQtZmFtaWx5KCkge1xuICAgIEBpbmNsdWRlIGV1aS1mb250KG0sIHVpKTtcbn1cbkBtaXhpbiBldWktZm9udC1mYW1pbHktbm9ybWFsKCkge1xuICAgIEBpbmNsdWRlIGV1aS1mb250KG0sIHVpKTtcbn1cbkBtaXhpbiBldWktZm9udC1mYW1pbHktcygpIHtcbiAgICBAaW5jbHVkZSBldWktZm9udChzLCB1aSk7XG59XG5AbWl4aW4gZXVpLWZvbnQtZmFtaWx5LXhzKCkge1xuICAgIEBpbmNsdWRlIGV1aS1mb250KHhzLCB1aSk7XG59XG5AbWl4aW4gZXVpLWZvbnQtZmFtaWx5LWwoKSB7XG4gICAgQGluY2x1ZGUgZXVpLWZvbnQobCwgdWkpO1xufVxuQG1peGluIGV1aS1mb250LWZhbWlseS14bCgpIHtcbiAgICBAaW5jbHVkZSBldWktZm9udCh4bCwgdWkpO1xufVxuXG4vLyBib2xkXG5AbWl4aW4gZXVpLWZvbnQtZmFtaWx5LWJvbGQoKSB7XG4gICAgQGluY2x1ZGUgZXVpLWZvbnQobSwgdWkpO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5AbWl4aW4gZXVpLWZvbnQtZmFtaWx5LWJvbGQteHMoKSB7XG4gICAgQGluY2x1ZGUgZXVpLWZvbnQoeHMsIHVpKTtcbiAgICBmb250LXdlaWdodDogNzAwO1xufVxuQG1peGluIGV1aS1mb250LWZhbWlseS1ib2xkLXMoKSB7XG4gICAgQGluY2x1ZGUgZXVpLWZvbnQocywgdWkpO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5AbWl4aW4gZXVpLWZvbnQtZmFtaWx5LWJvbGQtbCgpIHtcbiAgICBAaW5jbHVkZSBldWktZm9udChsLCB1aSk7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cbkBtaXhpbiBldWktZm9udC1mYW1pbHktYm9sZC14bCgpIHtcbiAgICBAaW5jbHVkZSBldWktZm9udCh4bCwgdWkpO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbi8vIGxpZ2h0XG5AbWl4aW4gZXVpLWZvbnQtZmFtaWx5LWxpZ2h0KCkge1xuICAgIEBpbmNsdWRlIGV1aS1mb250KG0sIHVpKTtcbiAgICBmb250LXdlaWdodDogMzAwO1xufVxuXG4vLyBpdGFsaWNcbkBtaXhpbiBldWktZm9udC1mYW1pbHktaXRhbGljKCkge1xuICAgIEBpbmNsdWRlIGV1aS1mb250KG0sIHVpKTtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5AbWl4aW4gZXVpLWZvbnQtZmFtaWx5LWJvbGQoKSB7XG4gICAgQGluY2x1ZGUgZXVpLWZvbnQobSwgdWkpO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbi8vIGJvbGQgaXRhbGljXG5AbWl4aW4gZXVpLWZvbnQtZmFtaWx5LWJvbGQtaXRhbGljKCkge1xuICAgIEBpbmNsdWRlIGV1aS1mb250KG0sIHVpKTtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuLy8gbW9ub3NwYWNlXG5AbWl4aW4gZXVpLWZvbnQtZmFtaWx5LW1vbm9zcGFjZSgpIHtcbiAgICBmb250LWZhbWlseTogdihldWktYmFzZS1mb250LWZhbWlseS1tb25vc3BhY2UpO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXdlaWdodDogNDAwO1xufVxuIiwiLyohIG5vcm1hbGl6ZS5jc3MgdjguMC4xIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xuXG4vKiBEb2N1bWVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluIGlPUy5cbiAqL1xuXG4gaHRtbCB7XG4gICAgbGluZS1oZWlnaHQ6IDEuMTU7IC8qIDEgKi9cbiAgICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbiAgfVxuXG4gIC8qIFNlY3Rpb25zXG4gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgLyoqXG4gICAqIFJlbW92ZSB0aGUgbWFyZ2luIGluIGFsbCBicm93c2Vycy5cbiAgICovXG5cbiAgYm9keSB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbmRlciB0aGUgYG1haW5gIGVsZW1lbnQgY29uc2lzdGVudGx5IGluIElFLlxuICAgKi9cblxuICBtYWluIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIC8qKlxuICAgKiBDb3JyZWN0IHRoZSBmb250IHNpemUgYW5kIG1hcmdpbiBvbiBgaDFgIGVsZW1lbnRzIHdpdGhpbiBgc2VjdGlvbmAgYW5kXG4gICAqIGBhcnRpY2xlYCBjb250ZXh0cyBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBTYWZhcmkuXG4gICAqL1xuXG4gIGgxIHtcbiAgICBmb250LXNpemU6IDJlbTtcbiAgICBtYXJnaW46IDAuNjdlbSAwO1xuICB9XG5cbiAgLyogR3JvdXBpbmcgY29udGVudFxuICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gIC8qKlxuICAgKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBGaXJlZm94LlxuICAgKiAyLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlIGFuZCBJRS5cbiAgICovXG5cbiAgaHIge1xuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvKiAxICovXG4gICAgaGVpZ2h0OiAwOyAvKiAxICovXG4gICAgb3ZlcmZsb3c6IHZpc2libGU7IC8qIDIgKi9cbiAgfVxuXG4gIC8qKlxuICAgKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICAgKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gICAqL1xuXG4gIHByZSB7XG4gICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvKiAxICovXG4gICAgZm9udC1zaXplOiAxZW07IC8qIDIgKi9cbiAgfVxuXG4gIC8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgLyoqXG4gICAqIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIG9uIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAgICovXG5cbiAgYSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cblxuICAvKipcbiAgICogMS4gUmVtb3ZlIHRoZSBib3R0b20gYm9yZGVyIGluIENocm9tZSA1Ny1cbiAgICogMi4gQWRkIHRoZSBjb3JyZWN0IHRleHQgZGVjb3JhdGlvbiBpbiBDaHJvbWUsIEVkZ2UsIElFLCBPcGVyYSwgYW5kIFNhZmFyaS5cbiAgICovXG5cbiAgYWJiclt0aXRsZV0ge1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7IC8qIDEgKi9cbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgLyogMiAqL1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDsgLyogMiAqL1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG4gICAqL1xuXG4gIGIsXG4gIHN0cm9uZyB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICAgKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gICAqL1xuXG4gIGNvZGUsXG4gIGtiZCxcbiAgc2FtcCB7XG4gICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvKiAxICovXG4gICAgZm9udC1zaXplOiAxZW07IC8qIDIgKi9cbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAgICovXG5cbiAgc21hbGwge1xuICAgIGZvbnQtc2l6ZTogODAlO1xuICB9XG5cbiAgLyoqXG4gICAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGVsZW1lbnRzIGZyb20gYWZmZWN0aW5nIHRoZSBsaW5lIGhlaWdodCBpblxuICAgKiBhbGwgYnJvd3NlcnMuXG4gICAqL1xuXG4gIHN1YixcbiAgc3VwIHtcbiAgICBmb250LXNpemU6IDc1JTtcbiAgICBsaW5lLWhlaWdodDogMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICB9XG5cbiAgc3ViIHtcbiAgICBib3R0b206IC0wLjI1ZW07XG4gIH1cblxuICBzdXAge1xuICAgIHRvcDogLTAuNWVtO1xuICB9XG5cbiAgLyogRW1iZWRkZWQgY29udGVudFxuICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gIC8qKlxuICAgKiBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgaW5zaWRlIGxpbmtzIGluIElFIDEwLlxuICAgKi9cblxuICBpbWcge1xuICAgIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgfVxuXG4gIC8qIEZvcm1zXG4gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgLyoqXG4gICAqIDEuIENoYW5nZSB0aGUgZm9udCBzdHlsZXMgaW4gYWxsIGJyb3dzZXJzLlxuICAgKiAyLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXG4gICAqL1xuXG4gIGJ1dHRvbixcbiAgaW5wdXQsXG4gIG9wdGdyb3VwLFxuICBzZWxlY3QsXG4gIHRleHRhcmVhIHtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDsgLyogMSAqL1xuICAgIGZvbnQtc2l6ZTogMTAwJTsgLyogMSAqL1xuICAgIGxpbmUtaGVpZ2h0OiAxLjE1OyAvKiAxICovXG4gICAgbWFyZ2luOiAwOyAvKiAyICovXG4gIH1cblxuICAvKipcbiAgICogU2hvdyB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gICAqIDEuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UuXG4gICAqL1xuXG4gIGJ1dHRvbixcbiAgaW5wdXQgeyAvKiAxICovXG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXG4gICAqIDEuIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRmlyZWZveC5cbiAgICovXG5cbiAgYnV0dG9uLFxuICBzZWxlY3QgeyAvKiAxICovXG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIH1cblxuICAvKipcbiAgICogQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAgICovXG5cbiAgYnV0dG9uLFxuICBbdHlwZT1cImJ1dHRvblwiXSxcbiAgW3R5cGU9XCJyZXNldFwiXSxcbiAgW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSB0aGUgaW5uZXIgYm9yZGVyIGFuZCBwYWRkaW5nIGluIEZpcmVmb3guXG4gICAqL1xuXG4gIGJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcbiAgW3R5cGU9XCJidXR0b25cIl06Oi1tb3otZm9jdXMtaW5uZXIsXG4gIFt0eXBlPVwicmVzZXRcIl06Oi1tb3otZm9jdXMtaW5uZXIsXG4gIFt0eXBlPVwic3VibWl0XCJdOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICBib3JkZXItc3R5bGU6IG5vbmU7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXN0b3JlIHRoZSBmb2N1cyBzdHlsZXMgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXG4gICAqL1xuXG4gIGJ1dHRvbjotbW96LWZvY3VzcmluZyxcbiAgW3R5cGU9XCJidXR0b25cIl06LW1vei1mb2N1c3JpbmcsXG4gIFt0eXBlPVwicmVzZXRcIl06LW1vei1mb2N1c3JpbmcsXG4gIFt0eXBlPVwic3VibWl0XCJdOi1tb3otZm9jdXNyaW5nIHtcbiAgICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7XG4gIH1cblxuICAvKipcbiAgICogQ29ycmVjdCB0aGUgcGFkZGluZyBpbiBGaXJlZm94LlxuICAgKi9cblxuICBmaWVsZHNldCB7XG4gICAgcGFkZGluZzogMC4zNWVtIDAuNzVlbSAwLjYyNWVtO1xuICB9XG5cbiAgLyoqXG4gICAqIDEuIENvcnJlY3QgdGhlIHRleHQgd3JhcHBpbmcgaW4gRWRnZSBhbmQgSUUuXG4gICAqIDIuIENvcnJlY3QgdGhlIGNvbG9yIGluaGVyaXRhbmNlIGZyb20gYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBJRS5cbiAgICogMy4gUmVtb3ZlIHRoZSBwYWRkaW5nIHNvIGRldmVsb3BlcnMgYXJlIG5vdCBjYXVnaHQgb3V0IHdoZW4gdGhleSB6ZXJvIG91dFxuICAgKiAgICBgZmllbGRzZXRgIGVsZW1lbnRzIGluIGFsbCBicm93c2Vycy5cbiAgICovXG5cbiAgbGVnZW5kIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gICAgY29sb3I6IGluaGVyaXQ7IC8qIDIgKi9cbiAgICBkaXNwbGF5OiB0YWJsZTsgLyogMSAqL1xuICAgIG1heC13aWR0aDogMTAwJTsgLyogMSAqL1xuICAgIHBhZGRpbmc6IDA7IC8qIDMgKi9cbiAgICB3aGl0ZS1zcGFjZTogbm9ybWFsOyAvKiAxICovXG4gIH1cblxuICAvKipcbiAgICogQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAgICovXG5cbiAgcHJvZ3Jlc3Mge1xuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgdGhlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDEwKy5cbiAgICovXG5cbiAgdGV4dGFyZWEge1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICB9XG5cbiAgLyoqXG4gICAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIElFIDEwLlxuICAgKiAyLiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAuXG4gICAqL1xuXG4gIFt0eXBlPVwiY2hlY2tib3hcIl0sXG4gIFt0eXBlPVwicmFkaW9cIl0ge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgICBwYWRkaW5nOiAwOyAvKiAyICovXG4gIH1cblxuICAvKipcbiAgICogQ29ycmVjdCB0aGUgY3Vyc29yIHN0eWxlIG9mIGluY3JlbWVudCBhbmQgZGVjcmVtZW50IGJ1dHRvbnMgaW4gQ2hyb21lLlxuICAgKi9cblxuICBbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbiAgW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxuXG4gIC8qKlxuICAgKiAxLiBDb3JyZWN0IHRoZSBvZGQgYXBwZWFyYW5jZSBpbiBDaHJvbWUgYW5kIFNhZmFyaS5cbiAgICogMi4gQ29ycmVjdCB0aGUgb3V0bGluZSBzdHlsZSBpbiBTYWZhcmkuXG4gICAqL1xuXG4gIFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLyogMSAqL1xuICAgIG91dGxpbmUtb2Zmc2V0OiAtMnB4OyAvKiAyICovXG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIHRoZSBpbm5lciBwYWRkaW5nIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIG1hY09TLlxuICAgKi9cblxuICBbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICB9XG5cbiAgLyoqXG4gICAqIDEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gICAqIDIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIFNhZmFyaS5cbiAgICovXG5cbiAgOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDEgKi9cbiAgICBmb250OiBpbmhlcml0OyAvKiAyICovXG4gIH1cblxuICAvKiBJbnRlcmFjdGl2ZVxuICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gIC8qXG4gICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIEVkZ2UsIElFIDEwKywgYW5kIEZpcmVmb3guXG4gICAqL1xuXG4gIGRldGFpbHMge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgLypcbiAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gYWxsIGJyb3dzZXJzLlxuICAgKi9cblxuICBzdW1tYXJ5IHtcbiAgICBkaXNwbGF5OiBsaXN0LWl0ZW07XG4gIH1cblxuICAvKiBNaXNjXG4gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgLyoqXG4gICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwKy5cbiAgICovXG5cbiAgdGVtcGxhdGUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAvKipcbiAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTAuXG4gICAqL1xuXG4gIFtoaWRkZW5dIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4iLCI6cm9vdCB7XG4gICAgLy8gQ09MT1IgU0hBREVTXG4gICAgQGVhY2ggJGNvbG9yLCAkc2hhZGVzIGluICRldWktYmFzZS10b2tlbnMtY29sb3JzIHtcbiAgICAgICAgQGVhY2ggJHNoYWRlLCAkdmFsdWUgaW4gJHNoYWRlcyB7XG4gICAgICAgICAgICAtLWV1aS1iYXNlLWNvbG9yLSN7JGNvbG9yICsgJy0nICsgJHNoYWRlfTogI3skdmFsdWV9O1xuICAgICAgICAgICAgLS1ldWktYmFzZS1jb2xvci0jeyRjb2xvciArICctJyArICRzaGFkZX0tcmdiOiAje3RvUkdCKCR2YWx1ZSl9O1xuICAgICAgICAgICAgLS1ldWktYmFzZS1jb2xvci0jeyRjb2xvciArICctJyArICRzaGFkZX0tY29udHJhc3Q6ICN7Z2V0Q29udHJhc3QoJHZhbHVlKX07XG4gICAgICAgICAgICAtLWV1aS1iYXNlLWNvbG9yLSN7JGNvbG9yICsgJy0nICsgJHNoYWRlfS1jb250cmFzdC1yZ2I6ICN7dG9SR0IoZ2V0Q29udHJhc3QoJHZhbHVlKSl9O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gREVGQVVMVFMgMTAwc1xuICAgIEBlYWNoICRjb2xvciwgJHZhbHVlIGluICRldWktYmFzZS10b2tlbnMtY29sb3JzLTEwMHMge1xuICAgICAgICAtLWV1aS1iYXNlLWNvbG9yLSN7JycgKyAkY29sb3J9OiAjeyR2YWx1ZX07XG4gICAgfVxuXG4gICAgLy8gUkFXIENPTE9SU1xuICAgIC0tZXVpLWJhc2UtY29sb3ItdGV4dDogdmFyKC0tZXVpLWJhc2UtY29sb3ItZ3JleS0xMDApO1xuICAgIC0tZXVpLWJhc2UtY29sb3ItbGluazogdmFyKC0tZXVpLWJhc2UtY29sb3ItcHJpbWFyeS0xMDApO1xuICAgIC0tZXVpLWJhc2UtY29sb3ItYmxhY2s6IHZhcigtLWV1aS1iYXNlLWNvbG9yLWdyZXktMTAwKTtcbiAgICAtLWV1aS1iYXNlLWNvbG9yLXdoaXRlOiB2YXIoLS1ldWktYmFzZS1jb2xvci1ncmV5LTApO1xufVxuIiwiOnJvb3Qge1xuICAgIC8vIC8vIEZPTlRTXG4gICAgLS1ldWktYmFzZS1mb250LWZhbWlseTogQXJpYWwsICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgICAvLyAtLWV1aS1iYXNlLWZvbnQtZmFtaWx5OiAnU291cmNlIFNhbnMgUHJvJywgc2Fucy1zZXJpZjsgIDxsaW5rIGhyZWY9XCJodHRwczovL2ZvbnRzLmNkbmZvbnRzLmNvbS9jc3Mvc291cmNlLXNhbnMtcHJvXCIgcmVsPVwic3R5bGVzaGVldFwiPlxuICAgIC8vIC0tZXVpLWJhc2UtZm9udC1mYW1pbHk6ICdSb2JvdG8nLCBzYW5zLXNlcmlmOyAgPGxpbmsgaHJlZj1cImh0dHBzOi8vZm9udHMuY2RuZm9udHMuY29tL2Nzcy9yb2JvdG9cIiByZWw9XCJzdHlsZXNoZWV0XCI+XG4gICAgLS1ldWktYmFzZS1mb250LWZhbWlseS1pY29uczogJ2V1aS1pY29ucycsIHNhbnMtc2VyaWY7XG4gICAgLS1ldWktYmFzZS1mb250LWZhbWlseS1tb25vc3BhY2U6ICdDb25zb2xhcycsICdMaWJlcmF0aW9uIE1vbm8nLCAnQ291cmllciBOZXcnLCBtb25vc3BhY2U7XG5cbiAgICAvLyBGT05ULVNJWkVTXG4gICAgLS1ldWktYmFzZS1mb250LXNpemU6IDE2cHg7XG4gICAgQGVhY2ggJGZvbnQtc2l6ZSwgJHZhbHVlIGluICRldWktYmFzZS10b2tlbnMtZm9udC1zaXplcyB7XG4gICAgICAgIC0tZXVpLWJhc2UtZm9udC1zaXplLSN7JGZvbnQtc2l6ZX06ICN7JHZhbHVlfTtcbiAgICB9XG5cbiAgICAvLyBJQ09OLVNJWkVTXG4gICAgLS1ldWktYmFzZS1pY29uLXNpemU6IDEuNXJlbTtcbiAgICBAZWFjaCAkaWNvbi1zaXplLCAkdmFsdWUgaW4gJGV1aS1iYXNlLXRva2Vucy1pY29uLXNpemVzIHtcbiAgICAgICAgLS1ldWktYmFzZS1pY29uLXNpemUtI3skaWNvbi1zaXplfTogI3skdmFsdWV9O1xuICAgIH1cblxuICAgIEBlYWNoICRmYW1pbHksICRzaXplcyBpbiAkZXVpLWJhc2UtdG9rZW5zLWZvbnRzIHtcbiAgICAgICAgJGZhbWlseS10eXBlOiAkZmFtaWx5ICsgJy0nO1xuICAgICAgICBAaWYoJGZhbWlseSA9PSB1aSkge1xuICAgICAgICAgICAgJGZhbWlseS10eXBlOiAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRzaXplLCAkZGVmaW5pdGlvbiBpbiAkc2l6ZXMge1xuICAgICAgICAgICAgLS1ldWktYmFzZS1mb250LSN7JGZhbWlseS10eXBlfSN7JHNpemV9OiAjeyRkZWZpbml0aW9ufTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNQQUNJTkdTXG4gICAgQGVhY2ggJHNwYWNpbmcsICR2YWx1ZSBpbiAkZXVpLWJhc2UtdG9rZW5zLXNwYWNpbmdzIHtcbiAgICAgICAgLS1ldWktYmFzZS1zcGFjaW5nLSN7JHNwYWNpbmd9OiAjeyR2YWx1ZX07XG4gICAgfVxuXG4gICAgLy8gU0hBRE9XU1xuICAgIEBlYWNoICRzaGFkb3csICR2YWx1ZSBpbiAkZXVpLWJhc2UtdG9rZW5zLXNoYWRvd3Mge1xuICAgICAgICAtLWV1aS1iYXNlLXNoYWRvdy0jeyRzaGFkb3d9OiAjeyR2YWx1ZX07XG4gICAgfVxuXG4gICAgLy8gWi1JTkRFWEVTXG4gICAgQGVhY2ggJGlkeCwgJHZhbHVlIGluICRldWktYmFzZS10b2tlbnMtei1pbmRleGVzIHtcbiAgICAgICAgLS1ldWktYmFzZS16LWluZGV4LSN7JGlkeH06ICN7JHZhbHVlfTtcbiAgICB9XG59XG4iLCI6cm9vdCB7XG4gICAgLS1ldWktYmFzZS1saW5lLWhlaWdodDogMS4xNTtcbiAgICAtLWV1aS1iYXNlLXNjYWxlLWZhY3RvcjogMTtcbiAgICAtLWV1aS1iYXNlLWRpc2FibGVkLW9wYWNpdHk6IDAuNDU7XG5cbiAgICAtLWV1aS1iYXNlLWJvcmRlci1yYWRpdXM6IDNweDtcblxuICAgIC0tZXVpLWJhc2UtYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZXVpLWNvbG9yLWdyZXktbGlnaHRlcik7XG4gICAgLS1ldWktYmFzZS1ib3JkZXItbGlnaHQ6IDFweCBzb2xpZCB2YXIoLS1ldWktY29sb3ItZ3JleS1saWdodCk7XG4gICAgLS1ldWktYmFzZS1ib3JkZXItbGlnaHRlcjogMXB4IHNvbGlkIHZhcigtLWV1aS1jb2xvci1ncmV5LWxpZ2h0ZXIpO1xuICAgIC0tZXVpLWJhc2UtYm9yZGVyLWxpZ2h0ZXN0OiAxcHggc29saWQgdmFyKC0tZXVpLWNvbG9yLWdyZXktbGlnaHRlc3QpO1xuXG4gICAgLy8gQW5pbWF0aW9ucyByZWxhdGVkXG4gICAgLS1ldWktYmFzZS1hbmltYXRpb24tbGluZWFyLW91dC1zbG93LWluLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7XG4gICAgLS1ldWktYmFzZS1hbmltYXRpb24tZmFzdC1vdXQtc2xvdy1pbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gICAgLS1ldWktYmFzZS1hbmltYXRpb24tZmFzdC1vdXQtbGluZWFyLWluLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMSwgMSk7XG4gICAgLS1ldWktYmFzZS1hbmltYXRpb24tZWFzZS10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjI1LCAwLjEsIDAuMjUsIDEpOyAgICAvLyBlYXNlXG4gICAgLS1ldWktYmFzZS1hbmltYXRpb24tZWFzZS1pbi1vdXQtdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcblxuICAgIC0tZXVpLWJhc2UtYW5pbWF0aW9uLWR1cmF0aW9uLWZhc3Q6IDAuMjVzO1xuICAgIC0tZXVpLWJhc2UtYW5pbWF0aW9uLWR1cmF0aW9uLW1lZGl1bTogMC41cztcbiAgICAtLWV1aS1iYXNlLWFuaW1hdGlvbi1kdXJhdGlvbi1zbG93OiAxcztcbiAgICAtLWV1aS1iYXNlLWFuaW1hdGlvbi1kdXJhdGlvbi1iYXNlOiA1MDBtcztcbiAgICAtLWV1aS1iYXNlLWFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKC0tZXVpLWJhc2UtYW5pbWF0aW9uLWR1cmF0aW9uLWJhc2UpO1xuXG4gICAgLS1ldWktYmFzZS1hbmltYXRpb24tdHJhbnNpdGlvbi1iYXNlOiBhbGwgMC4ycyAje3ZhcigtLWV1aS1iYXNlLWFuaW1hdGlvbi1saW5lYXItb3V0LXNsb3ctaW4tdGltaW5nLWZ1bmN0aW9uKX07XG4gICAgLS1ldWktYmFzZS1hbmltYXRpb24tdHJhbnNpdGlvbi1lYXNlOiBhbGwgMC4ycyAje3ZhcigtLWV1aS1iYXNlLWFuaW1hdGlvbi1lYXNlLXRpbWluZy1mdW5jdGlvbil9O1xuICAgIC0tZXVpLWJhc2UtYW5pbWF0aW9uLXRyYW5zaXRpb24tZWFzZS1pbi1vdXQ6IGFsbCAwLjJzICN7dmFyKC0tZXVpLWJhc2UtYW5pbWF0aW9uLWVhc2UtaW4tb3V0LXRpbWluZy1mdW5jdGlvbil9O1xuICAgIC0tZXVpLWJhc2UtYW5pbWF0aW9uLXRyYW5zaXRpb24tZWFzZS1pbi1vdXQtMXM6IGFsbCAxcyAje3ZhcigtLWV1aS1iYXNlLWFuaW1hdGlvbi1lYXNlLWluLW91dC10aW1pbmctZnVuY3Rpb24pfTtcblxuICAgIC0tZXVpLWJhc2UtYW5pbWF0aW9uLWRlbGF5OiAwcztcbiAgICAtLWV1aS1iYXNlLWFuaW1hdGlvbi1kaXJlY3Rpb246IG5vcm1hbDtcbiAgICAtLWV1aS1iYXNlLWFuaW1hdGlvbi1maWxsLW1vZGU6IGZvcndhcmRzOyAgICAvLyB0aGlzIHByZXZlbnRzIHRoZSBhbmltYXRpb24gZnJvbSByZXN0YXJ0aW5nXG4gICAgLS1ldWktYmFzZS1hbmltYXRpb24tYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZXVpLWJhc2UtY29sb3ItcHJpbWFyeS01MCk7ICAvLyAjY2ZjZmRmO1xuXG4gICAgLy8gRXh0cmEgY29sb3JzXG4gICAgLS1ldWktYmFzZS1jb2xvci1hY2Nlc3NpYmxlLWZvY3VzOiB2YXIoLS1ldWktYmFzZS1jb2xvci1hY2NlbnQtMTEwKTsgICAgLy8gQ2FyYm9uIGJsdWU6ICMwZjYyZmU7XG59XG4iLCI6cm9vdCB7XG4gICAgLy8gZVVJIEFQUFxuICAgIC0tZXVpLWFwcC1oZWFkZXItaGVpZ2h0LWRlZmF1bHQ6IDBweDtcbiAgICAtLWV1aS1hcHAtaGVhZGVyLWhlaWdodDogMHB4O1xuICAgIC0tZXVpLWFwcC1oZWFkZXItaGVpZ2h0LWFjdGl2ZTogOTBweDtcbiAgICAtLWV1aS1hcHAtaGVhZGVyLWhlaWdodC1zaHJpbms6IDBweDtcblxuICAgIC0tZXVpLWFwcC1icmVhZGNydW1iLWhlaWdodC1kZWZhdWx0OiAwcHg7XG4gICAgLS1ldWktYXBwLWJyZWFkY3J1bWItaGVpZ2h0OiAwcHg7XG4gICAgLS1ldWktYXBwLWJyZWFkY3J1bWItaGVpZ2h0LWFjdGl2ZTogMjBweDtcblxuICAgIC0tZXVpLWFwcC10b3AtbWVzc2FnZS1oZWlnaHQtZGVmYXVsdDogMHB4O1xuICAgIC0tZXVpLWFwcC10b3AtbWVzc2FnZS1oZWlnaHQ6IDBweDtcbiAgICAtLWV1aS1hcHAtdG9wLW1lc3NhZ2UtaGVpZ2h0LWFjdGl2ZTogNDJweDtcblxuICAgIC0tZXVpLWFwcC10b29sYmFyLWhlaWdodC1kZWZhdWx0OiAwcHg7XG4gICAgLS1ldWktYXBwLXRvb2xiYXItaGVpZ2h0OiAwcHg7XG4gICAgLS1ldWktYXBwLXRvb2xiYXItaGVpZ2h0LWFjdGl2ZTogNTVweDtcblxuICAgIC0tZXVpLWFwcC1zaWRlYmFyLXdpZHRoLWRlZmF1bHQ6IDBweDtcbiAgICAtLWV1aS1hcHAtc2lkZWJhci13aWR0aDogMHB4O1xuICAgIC0tZXVpLWFwcC1zaWRlYmFyLXdpZHRoLWFjdGl2ZTogMzAwcHg7XG4gICAgLS1ldWktYXBwLXNpZGViYXItd2lkdGgtY2xvc2UtZGVmYXVsdDogMHB4O1xuICAgIC0tZXVpLWFwcC1zaWRlYmFyLXdpZHRoLWNsb3NlOiAwcHg7XG4gICAgLS1ldWktYXBwLXNpZGViYXItd2lkdGgtY2xvc2UtYWN0aXZlOiA2NHB4O1xuICAgIC0tZXVpLWFwcC1zaWRlYmFyLWhlYWRlci1oZWlnaHQ6IDBweDtcbiAgICAtLWV1aS1hcHAtc2lkZWJhci1oZWFkZXItaGVpZ2h0LWRlZmF1bHQ6IDBweDtcbiAgICAtLWV1aS1hcHAtc2lkZWJhci1oZWFkZXItaGVpZ2h0LWFjdGl2ZTogNDhweDtcbiAgICAtLWV1aS1hcHAtc2lkZWJhci1mb290ZXItaGVpZ2h0OiAwcHg7XG4gICAgLS1ldWktYXBwLXNpZGViYXItZm9vdGVyLWhlaWdodC1kZWZhdWx0OiAwcHg7XG4gICAgLS1ldWktYXBwLXNpZGViYXItZm9vdGVyLWhlaWdodC1hY3RpdmU6IDI0cHg7XG5cbiAgICAvLyBQYWdlIExheW91dFxuICAgIC0tZXVpLXBhZ2UtaGVhZGVyLXdpdGgtc3VidGl0bGUtaGVpZ2h0OiA0cmVtO1xuICAgIC0tZXVpLXBhZ2UtaGVhZGVyLXdpdGhvdXQtc3VidGl0bGUtaGVpZ2h0OiAycmVtO1xuXG4gICAgLS1ldWktcGFnZS1jb2x1bW4tLXNpemUtczogNTBweDtcbiAgICAtLWV1aS1wYWdlLWNvbHVtbi0tc2l6ZS1tOiAxNTBweDtcbiAgICAtLWV1aS1wYWdlLWNvbHVtbi0tc2l6ZS1sOiAyMDBweDtcbiAgICAtLWV1aS1wYWdlLWNvbHVtbi0tc2l6ZS14bDogMjUwcHg7XG4gICAgLS1ldWktcGFnZS1jb2x1bW4tLXNpemUteHhsOiAzMDBweDtcbiAgICAtLWV1aS1wYWdlLWNvbHVtbi0tc2l6ZS14eHhsOiAzNTBweDtcbiAgICAtLWV1aS1wYWdlLWNvbHVtbi1mb290ZXItaGVpZ2h0OiAzLjVyZW07XG59XG5cbi54cywgLnNtIHtcbiAgICAtLWV1aS1hcHAtaGVhZGVyLWhlaWdodDogMHB4O1xufVxuIiwiOnJvb3Qge1xuICAgIC0tZXVpLWFwcC1ib3gtc2hhZG93OiBub25lOyAvLyB2YXIoLS1ldWktYmFzZS1zaGFkb3ctei1kZXB0aC0wKTtcbn1cbiIsIi5ldWktaWNvbi1zdmcge1xuICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICBtYXJnaW46IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMSkgc2NhbGVZKDEpIHJvdGF0ZVooMGRlZyk7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDMwMG1zIGVhc2UtaW4tb3V0O1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5AZWFjaCAkc2l6ZSwgJHZhbHVlIGluICRldWktYmFzZS10b2tlbnMtaWNvbi1zaXplcyB7XG4gICAgLmV1aS1pY29uLXN2Zy0tc2l6ZS0jeyRzaXplfSB7XG4gICAgICAgIGhlaWdodDogI3skdmFsdWV9O1xuICAgICAgICB3aWR0aDogI3skdmFsdWV9O1xuICAgIH07XG59XG5AZWFjaCAkY29sb3IsICRzaGFkZXMgaW4gJGV1aS1iYXNlLXRva2Vucy1jb2xvcnMge1xuICAgIEBlYWNoICRzaGFkZSwgJHZhbHVlIGluICRzaGFkZXMge1xuICAgICAgICAuZXVpLWljb24tc3ZnLS1jb2xvci0jeyRjb2xvciArICctJyArICRzaGFkZX0ge1xuICAgICAgICAgICAgY29sb3I6ICN7JHZhbHVlfTtcbiAgICAgICAgICAgIGZpbGw6ICN7JHZhbHVlfTtcbiAgICAgICAgfTtcbiAgICB9XG59XG5AZWFjaCAkY29sb3IsICR2YWx1ZSBpbiAkZXVpLWJhc2UtdG9rZW5zLWNvbG9ycy0xMDBzIHtcbiAgICAuZXVpLWljb24tc3ZnLS1jb2xvci0jeycnICsgJGNvbG9yfSB7XG4gICAgICAgIGNvbG9yOiAjeyR2YWx1ZX07XG4gICAgICAgIGZpbGw6ICN7JHZhbHVlfTtcbiAgICB9O1xufVxuXG4uZXVpLWljb24tc3ZnLS1jb2xvci13aGl0ZSB7XG4gICAgY29sb3I6IHZhcigtLWV1aS1iYXNlLWNvbG9yLXdoaXRlKTtcbiAgICBmaWxsOiB2YXIoLS1ldWktYmFzZS1jb2xvci13aGl0ZSk7XG59XG5cbi5ldWktaWNvbi1zdmctLWNvbG9yLWJsYWNrIHtcbiAgICBjb2xvcjogdmFyKC0tZXVpLWJhc2UtY29sb3ItYmxhY2spO1xuICAgIGZpbGw6IHZhcigtLWV1aS1iYXNlLWNvbG9yLWJsYWNrKTtcbn1cblxuLmV1aS1pY29uLXN2Zy0tY29sb3ItdHJhbnNwYXJlbnQge1xuICAgIGNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50OyAgLy8gaW1wb3J0YW50IGZvciBpc0xvYWRpbmdcbiAgICBmaWxsOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuIiwiLy8gUm93XG4vL1xuLy8gUm93cyBjb250YWluIHlvdXIgY29sdW1ucy5cblxuQGlmICRlbmFibGUtZ3JpZC1jbGFzc2VzIHtcbiAgLnJvdyB7XG4gICAgQGluY2x1ZGUgbWFrZS1yb3coKTtcblxuICAgID4gKiB7XG4gICAgICBAaW5jbHVkZSBtYWtlLWNvbC1yZWFkeSgpO1xuICAgIH1cbiAgfVxufVxuXG5AaWYgJGVuYWJsZS1jc3NncmlkIHtcbiAgLmdyaWQge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiByZXBlYXQodmFyKC0tI3skdmFyaWFibGUtcHJlZml4fXJvd3MsIDEpLCAxZnIpO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KHZhcigtLSN7JHZhcmlhYmxlLXByZWZpeH1jb2x1bW5zLCAjeyRncmlkLWNvbHVtbnN9KSwgMWZyKTtcbiAgICBnYXA6IHZhcigtLSN7JHZhcmlhYmxlLXByZWZpeH1nYXAsICN7JGdyaWQtZ3V0dGVyLXdpZHRofSk7XG5cbiAgICBAaW5jbHVkZSBtYWtlLWNzc2dyaWQoKTtcbiAgfVxufVxuXG5cbi8vIENvbHVtbnNcbi8vXG4vLyBDb21tb24gc3R5bGVzIGZvciBzbWFsbCBhbmQgbGFyZ2UgZ3JpZCBjb2x1bW5zXG5cbkBpZiAkZW5hYmxlLWdyaWQtY2xhc3NlcyB7XG4gIEBpbmNsdWRlIG1ha2UtZ3JpZC1jb2x1bW5zKCk7XG59XG4iLCIvLyBHcmlkIHN5c3RlbVxuLy9cbi8vIEdlbmVyYXRlIHNlbWFudGljIGdyaWQgY29sdW1ucyB3aXRoIHRoZXNlIG1peGlucy5cblxuQG1peGluIG1ha2Utcm93KCRndXR0ZXI6ICRncmlkLWd1dHRlci13aWR0aCkge1xuICAtLSN7JHZhcmlhYmxlLXByZWZpeH1ndXR0ZXIteDogI3skZ3V0dGVyfTtcbiAgLS0jeyR2YXJpYWJsZS1wcmVmaXh9Z3V0dGVyLXk6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgLy8gVE9ETzogUmV2aXNpdCBjYWxjIG9yZGVyIGFmdGVyIGh0dHBzOi8vZ2l0aHViLmNvbS9yZWFjdC1ib290c3RyYXAvcmVhY3QtYm9vdHN0cmFwL2lzc3Vlcy82MDM5IGlzIGZpeGVkXG4gIG1hcmdpbi10b3A6IGNhbGMoLTEgKiB2YXIoLS0jeyR2YXJpYWJsZS1wcmVmaXh9Z3V0dGVyLXkpKTsgLy8gc3R5bGVsaW50LWRpc2FibGUtbGluZSBmdW5jdGlvbi1kaXNhbGxvd2VkLWxpc3RcbiAgbWFyZ2luLXJpZ2h0OiBjYWxjKC0uNSAqIHZhcigtLSN7JHZhcmlhYmxlLXByZWZpeH1ndXR0ZXIteCkpOyAvLyBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIGZ1bmN0aW9uLWRpc2FsbG93ZWQtbGlzdFxuICBtYXJnaW4tbGVmdDogY2FsYygtLjUgKiB2YXIoLS0jeyR2YXJpYWJsZS1wcmVmaXh9Z3V0dGVyLXgpKTsgLy8gc3R5bGVsaW50LWRpc2FibGUtbGluZSBmdW5jdGlvbi1kaXNhbGxvd2VkLWxpc3Rcbn1cblxuQG1peGluIG1ha2UtY29sLXJlYWR5KCRndXR0ZXI6ICRncmlkLWd1dHRlci13aWR0aCkge1xuICAvLyBBZGQgYm94IHNpemluZyBpZiBvbmx5IHRoZSBncmlkIGlzIGxvYWRlZFxuICBib3gtc2l6aW5nOiBpZih2YXJpYWJsZS1leGlzdHMoaW5jbHVkZS1jb2x1bW4tYm94LXNpemluZykgYW5kICRpbmNsdWRlLWNvbHVtbi1ib3gtc2l6aW5nLCBib3JkZXItYm94LCBudWxsKTtcbiAgLy8gUHJldmVudCBjb2x1bW5zIGZyb20gYmVjb21pbmcgdG9vIG5hcnJvdyB3aGVuIGF0IHNtYWxsZXIgZ3JpZCB0aWVycyBieVxuICAvLyBhbHdheXMgc2V0dGluZyBgd2lkdGg6IDEwMCU7YC4gVGhpcyB3b3JrcyBiZWNhdXNlIHdlIHNldCB0aGUgd2lkdGhcbiAgLy8gbGF0ZXIgb24gdG8gb3ZlcnJpZGUgdGhpcyBpbml0aWFsIHdpZHRoLlxuICBmbGV4LXNocmluazogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTsgLy8gUHJldmVudCBgLmNvbC1hdXRvYCwgYC5jb2xgICgmIHJlc3BvbnNpdmUgdmFyaWFudHMpIGZyb20gYnJlYWtpbmcgb3V0IHRoZSBncmlkXG4gIHBhZGRpbmctcmlnaHQ6IGNhbGModmFyKC0tI3skdmFyaWFibGUtcHJlZml4fWd1dHRlci14KSAqIC41KTsgLy8gc3R5bGVsaW50LWRpc2FibGUtbGluZSBmdW5jdGlvbi1kaXNhbGxvd2VkLWxpc3RcbiAgcGFkZGluZy1sZWZ0OiBjYWxjKHZhcigtLSN7JHZhcmlhYmxlLXByZWZpeH1ndXR0ZXIteCkgKiAuNSk7IC8vIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgZnVuY3Rpb24tZGlzYWxsb3dlZC1saXN0XG4gIG1hcmdpbi10b3A6IHZhcigtLSN7JHZhcmlhYmxlLXByZWZpeH1ndXR0ZXIteSk7XG59XG5cbkBtaXhpbiBtYWtlLWNvbCgkc2l6ZTogZmFsc2UsICRjb2x1bW5zOiAkZ3JpZC1jb2x1bW5zKSB7XG4gIEBpZiAkc2l6ZSB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IHBlcmNlbnRhZ2UoZGl2aWRlKCRzaXplLCAkY29sdW1ucykpO1xuXG4gIH0gQGVsc2Uge1xuICAgIGZsZXg6IDEgMSAwO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxufVxuXG5AbWl4aW4gbWFrZS1jb2wtYXV0bygpIHtcbiAgZmxleDogMCAwIGF1dG87XG4gIHdpZHRoOiBhdXRvO1xufVxuXG5AbWl4aW4gbWFrZS1jb2wtb2Zmc2V0KCRzaXplLCAkY29sdW1uczogJGdyaWQtY29sdW1ucykge1xuICAkbnVtOiBkaXZpZGUoJHNpemUsICRjb2x1bW5zKTtcbiAgbWFyZ2luLWxlZnQ6IGlmKCRudW0gPT0gMCwgMCwgcGVyY2VudGFnZSgkbnVtKSk7XG59XG5cbi8vIFJvdyBjb2x1bW5zXG4vL1xuLy8gU3BlY2lmeSBvbiBhIHBhcmVudCBlbGVtZW50KGUuZy4sIC5yb3cpIHRvIGZvcmNlIGltbWVkaWF0ZSBjaGlsZHJlbiBpbnRvIE5OXG4vLyBudW1iZXJvZiBjb2x1bW5zLiBTdXBwb3J0cyB3cmFwcGluZyB0byBuZXcgbGluZXMsIGJ1dCBkb2VzIG5vdCBkbyBhIE1hc29ucnlcbi8vIHN0eWxlIGdyaWQuXG5AbWl4aW4gcm93LWNvbHMoJGNvdW50KSB7XG4gID4gKiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IGRpdmlkZSgxMDAlLCAkY291bnQpO1xuICB9XG59XG5cbi8vIEZyYW1ld29yayBncmlkIGdlbmVyYXRpb25cbi8vXG4vLyBVc2VkIG9ubHkgYnkgQm9vdHN0cmFwIHRvIGdlbmVyYXRlIHRoZSBjb3JyZWN0IG51bWJlciBvZiBncmlkIGNsYXNzZXMgZ2l2ZW5cbi8vIGFueSB2YWx1ZSBvZiBgJGdyaWQtY29sdW1uc2AuXG5cbkBtaXhpbiBtYWtlLWdyaWQtY29sdW1ucygkY29sdW1uczogJGdyaWQtY29sdW1ucywgJGd1dHRlcjogJGdyaWQtZ3V0dGVyLXdpZHRoLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gIEBlYWNoICRicmVha3BvaW50IGluIG1hcC1rZXlzKCRicmVha3BvaW50cykge1xuICAgICRpbmZpeDogYnJlYWtwb2ludC1pbmZpeCgkYnJlYWtwb2ludCwgJGJyZWFrcG9pbnRzKTtcblxuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJGJyZWFrcG9pbnQsICRicmVha3BvaW50cykge1xuICAgICAgLy8gUHJvdmlkZSBiYXNpYyBgLmNvbC17YnB9YCBjbGFzc2VzIGZvciBlcXVhbC13aWR0aCBmbGV4Ym94IGNvbHVtbnNcbiAgICAgIC5jb2wjeyRpbmZpeH0ge1xuICAgICAgICBmbGV4OiAxIDAgMCU7IC8vIEZsZXhidWdzICM0OiBodHRwczovL2dpdGh1Yi5jb20vcGhpbGlwd2FsdG9uL2ZsZXhidWdzI2ZsZXhidWctNFxuICAgICAgfVxuXG4gICAgICAucm93LWNvbHMjeyRpbmZpeH0tYXV0byA+ICoge1xuICAgICAgICBAaW5jbHVkZSBtYWtlLWNvbC1hdXRvKCk7XG4gICAgICB9XG5cbiAgICAgIEBpZiAkZ3JpZC1yb3ctY29sdW1ucyA+IDAge1xuICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRncmlkLXJvdy1jb2x1bW5zIHtcbiAgICAgICAgICAucm93LWNvbHMjeyRpbmZpeH0tI3skaX0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgcm93LWNvbHMoJGkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuY29sI3skaW5maXh9LWF1dG8ge1xuICAgICAgICBAaW5jbHVkZSBtYWtlLWNvbC1hdXRvKCk7XG4gICAgICB9XG5cbiAgICAgIEBpZiAkY29sdW1ucyA+IDAge1xuICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRjb2x1bW5zIHtcbiAgICAgICAgICAuY29sI3skaW5maXh9LSN7JGl9IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1ha2UtY29sKCRpLCAkY29sdW1ucyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gYCRjb2x1bW5zIC0gMWAgYmVjYXVzZSBvZmZzZXR0aW5nIGJ5IHRoZSB3aWR0aCBvZiBhbiBlbnRpcmUgcm93IGlzbid0IHBvc3NpYmxlXG4gICAgICAgIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggKCRjb2x1bW5zIC0gMSkge1xuICAgICAgICAgIEBpZiBub3QgKCRpbmZpeCA9PSBcIlwiIGFuZCAkaSA9PSAwKSB7IC8vIEF2b2lkIGVtaXR0aW5nIHVzZWxlc3MgLm9mZnNldC0wXG4gICAgICAgICAgICAub2Zmc2V0I3skaW5maXh9LSN7JGl9IHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgbWFrZS1jb2wtb2Zmc2V0KCRpLCAkY29sdW1ucyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIEd1dHRlcnNcbiAgICAgIC8vXG4gICAgICAvLyBNYWtlIHVzZSBvZiBgLmctKmAsIGAuZ3gtKmAgb3IgYC5neS0qYCB1dGlsaXRpZXMgdG8gY2hhbmdlIHNwYWNpbmcgYmV0d2VlbiB0aGUgY29sdW1ucy5cbiAgICAgIEBlYWNoICRrZXksICR2YWx1ZSBpbiAkZ3V0dGVycyB7XG4gICAgICAgIC5nI3skaW5maXh9LSN7JGtleX0sXG4gICAgICAgIC5neCN7JGluZml4fS0jeyRrZXl9IHtcbiAgICAgICAgICAtLSN7JHZhcmlhYmxlLXByZWZpeH1ndXR0ZXIteDogI3skdmFsdWV9O1xuICAgICAgICB9XG5cbiAgICAgICAgLmcjeyRpbmZpeH0tI3ska2V5fSxcbiAgICAgICAgLmd5I3skaW5maXh9LSN7JGtleX0ge1xuICAgICAgICAgIC0tI3skdmFyaWFibGUtcHJlZml4fWd1dHRlci15OiAjeyR2YWx1ZX07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1ha2UtY3NzZ3JpZCgkY29sdW1uczogJGdyaWQtY29sdW1ucywgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICBAZWFjaCAkYnJlYWtwb2ludCBpbiBtYXAta2V5cygkYnJlYWtwb2ludHMpIHtcbiAgICAkaW5maXg6IGJyZWFrcG9pbnQtaW5maXgoJGJyZWFrcG9pbnQsICRicmVha3BvaW50cyk7XG5cbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRicmVha3BvaW50LCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBpZiAkY29sdW1ucyA+IDAge1xuICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRjb2x1bW5zIHtcbiAgICAgICAgICAuZy1jb2wjeyRpbmZpeH0tI3skaX0ge1xuICAgICAgICAgICAgZ3JpZC1jb2x1bW46IGF1dG8gLyBzcGFuICRpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFN0YXJ0IHdpdGggYDFgIGJlY2F1c2UgYDBgIGlzIGFuZCBpbnZhbGlkIHZhbHVlLlxuICAgICAgICAvLyBFbmRzIHdpdGggYCRjb2x1bW5zIC0gMWAgYmVjYXVzZSBvZmZzZXR0aW5nIGJ5IHRoZSB3aWR0aCBvZiBhbiBlbnRpcmUgcm93IGlzbid0IHBvc3NpYmxlLlxuICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICgkY29sdW1ucyAtIDEpIHtcbiAgICAgICAgICAuZy1zdGFydCN7JGluZml4fS0jeyRpfSB7XG4gICAgICAgICAgICBncmlkLWNvbHVtbi1zdGFydDogJGk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBCcmVha3BvaW50IHZpZXdwb3J0IHNpemVzIGFuZCBtZWRpYSBxdWVyaWVzLlxuLy9cbi8vIEJyZWFrcG9pbnRzIGFyZSBkZWZpbmVkIGFzIGEgbWFwIG9mIChuYW1lOiBtaW5pbXVtIHdpZHRoKSwgb3JkZXIgZnJvbSBzbWFsbCB0byBsYXJnZTpcbi8vXG4vLyAgICAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpXG4vL1xuLy8gVGhlIG1hcCBkZWZpbmVkIGluIHRoZSBgJGdyaWQtYnJlYWtwb2ludHNgIGdsb2JhbCB2YXJpYWJsZSBpcyB1c2VkIGFzIHRoZSBgJGJyZWFrcG9pbnRzYCBhcmd1bWVudCBieSBkZWZhdWx0LlxuXG4vLyBOYW1lIG9mIHRoZSBuZXh0IGJyZWFrcG9pbnQsIG9yIG51bGwgZm9yIHRoZSBsYXN0IGJyZWFrcG9pbnQuXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtKVxuLy8gICAgbWRcbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcbi8vICAgIG1kXG4vLyAgICA+PiBicmVha3BvaW50LW5leHQoc20sICRicmVha3BvaW50LW5hbWVzOiAoeHMgc20gbWQgbGcgeGwpKVxuLy8gICAgbWRcbkBmdW5jdGlvbiBicmVha3BvaW50LW5leHQoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMsICRicmVha3BvaW50LW5hbWVzOiBtYXAta2V5cygkYnJlYWtwb2ludHMpKSB7XG4gICRuOiBpbmRleCgkYnJlYWtwb2ludC1uYW1lcywgJG5hbWUpO1xuICBAaWYgbm90ICRuIHtcbiAgICBAZXJyb3IgXCJicmVha3BvaW50IGAjeyRuYW1lfWAgbm90IGZvdW5kIGluIGAjeyRicmVha3BvaW50c31gXCI7XG4gIH1cbiAgQHJldHVybiBpZigkbiA8IGxlbmd0aCgkYnJlYWtwb2ludC1uYW1lcyksIG50aCgkYnJlYWtwb2ludC1uYW1lcywgJG4gKyAxKSwgbnVsbCk7XG59XG5cbi8vIE1pbmltdW0gYnJlYWtwb2ludCB3aWR0aC4gTnVsbCBmb3IgdGhlIHNtYWxsZXN0IChmaXJzdCkgYnJlYWtwb2ludC5cbi8vXG4vLyAgICA+PiBicmVha3BvaW50LW1pbihzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcbi8vICAgIDU3NnB4XG5AZnVuY3Rpb24gYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogbWFwLWdldCgkYnJlYWtwb2ludHMsICRuYW1lKTtcbiAgQHJldHVybiBpZigkbWluICE9IDAsICRtaW4sIG51bGwpO1xufVxuXG4vLyBNYXhpbXVtIGJyZWFrcG9pbnQgd2lkdGguXG4vLyBUaGUgbWF4aW11bSB2YWx1ZSBpcyByZWR1Y2VkIGJ5IDAuMDJweCB0byB3b3JrIGFyb3VuZCB0aGUgbGltaXRhdGlvbnMgb2Zcbi8vIGBtaW4tYCBhbmQgYG1heC1gIHByZWZpeGVzIGFuZCB2aWV3cG9ydHMgd2l0aCBmcmFjdGlvbmFsIHdpZHRocy5cbi8vIFNlZSBodHRwczovL3d3dy53My5vcmcvVFIvbWVkaWFxdWVyaWVzLTQvI21xLW1pbi1tYXhcbi8vIFVzZXMgMC4wMnB4IHJhdGhlciB0aGFuIDAuMDFweCB0byB3b3JrIGFyb3VuZCBhIGN1cnJlbnQgcm91bmRpbmcgYnVnIGluIFNhZmFyaS5cbi8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4MjYxXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1tYXgobWQsICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXG4vLyAgICA3NjcuOThweFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbWF4KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtYXg6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XG4gIEByZXR1cm4gaWYoJG1heCBhbmQgJG1heCA+IDAsICRtYXggLSAuMDIsIG51bGwpO1xufVxuXG4vLyBSZXR1cm5zIGEgYmxhbmsgc3RyaW5nIGlmIHNtYWxsZXN0IGJyZWFrcG9pbnQsIG90aGVyd2lzZSByZXR1cm5zIHRoZSBuYW1lIHdpdGggYSBkYXNoIGluIGZyb250LlxuLy8gVXNlZnVsIGZvciBtYWtpbmcgcmVzcG9uc2l2ZSB1dGlsaXRpZXMuXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1pbmZpeCh4cywgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcbi8vICAgIFwiXCIgIChSZXR1cm5zIGEgYmxhbmsgc3RyaW5nKVxuLy8gICAgPj4gYnJlYWtwb2ludC1pbmZpeChzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcbi8vICAgIFwiLXNtXCJcbkBmdW5jdGlvbiBicmVha3BvaW50LWluZml4KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gIEByZXR1cm4gaWYoYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cykgPT0gbnVsbCwgXCJcIiwgXCItI3skbmFtZX1cIik7XG59XG5cbi8vIE1lZGlhIG9mIGF0IGxlYXN0IHRoZSBtaW5pbXVtIGJyZWFrcG9pbnQgd2lkdGguIE5vIHF1ZXJ5IGZvciB0aGUgc21hbGxlc3QgYnJlYWtwb2ludC5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSB0byB0aGUgZ2l2ZW4gYnJlYWtwb2ludCBhbmQgd2lkZXIuXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC11cCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgQGlmICRtaW4ge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIE1lZGlhIG9mIGF0IG1vc3QgdGhlIG1heGltdW0gYnJlYWtwb2ludCB3aWR0aC4gTm8gcXVlcnkgZm9yIHRoZSBsYXJnZXN0IGJyZWFrcG9pbnQuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQgYW5kIG5hcnJvd2VyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWF4OiBicmVha3BvaW50LW1heCgkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgQGlmICRtYXgge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIE1lZGlhIHRoYXQgc3BhbnMgbXVsdGlwbGUgYnJlYWtwb2ludCB3aWR0aHMuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgYmV0d2VlbiB0aGUgbWluIGFuZCBtYXggYnJlYWtwb2ludHNcbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LWJldHdlZW4oJGxvd2VyLCAkdXBwZXIsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJGxvd2VyLCAkYnJlYWtwb2ludHMpO1xuICAkbWF4OiBicmVha3BvaW50LW1heCgkdXBwZXIsICRicmVha3BvaW50cyk7XG5cbiAgQGlmICRtaW4gIT0gbnVsbCBhbmQgJG1heCAhPSBudWxsIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikgYW5kIChtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWF4ID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJGxvd2VyLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWluID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkdXBwZXIsICRicmVha3BvaW50cykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vIE1lZGlhIGJldHdlZW4gdGhlIGJyZWFrcG9pbnQncyBtaW5pbXVtIGFuZCBtYXhpbXVtIHdpZHRocy5cbi8vIE5vIG1pbmltdW0gZm9yIHRoZSBzbWFsbGVzdCBicmVha3BvaW50LCBhbmQgbm8gbWF4aW11bSBmb3IgdGhlIGxhcmdlc3Qgb25lLlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IG9ubHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQsIG5vdCB2aWV3cG9ydHMgYW55IHdpZGVyIG9yIG5hcnJvd2VyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtb25seSgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiAgYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cyk7XG4gICRuZXh0OiBicmVha3BvaW50LW5leHQoJG5hbWUsICRicmVha3BvaW50cyk7XG4gICRtYXg6ICBicmVha3BvaW50LW1heCgkbmV4dCk7XG5cbiAgQGlmICRtaW4gIT0gbnVsbCBhbmQgJG1heCAhPSBudWxsIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikgYW5kIChtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWF4ID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJG5hbWUsICRicmVha3BvaW50cykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICRtaW4gPT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKCRuZXh0LCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuIiwiQHVzZSAnQGFuZ3VsYXIvY2RrJztcblxuQG1peGluIHJpcHBsZSgpIHtcbiAgLy8gVGhlIGhvc3QgZWxlbWVudCBvZiBhbiBtYXQtcmlwcGxlIGRpcmVjdGl2ZSBzaG91bGQgYWx3YXlzIGhhdmUgYSBwb3NpdGlvbiBvZiBcImFic29sdXRlXCIgb3JcbiAgLy8gXCJyZWxhdGl2ZVwiIHNvIHRoYXQgdGhlIHJpcHBsZXMgaW5zaWRlIGFyZSBjb3JyZWN0bHkgcG9zaXRpb25lZCByZWxhdGl2ZWx5IHRvIHRoZSBjb250YWluZXIuXG4gIC5tYXQtcmlwcGxlIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgLy8gQnkgZGVmYXVsdCwgZXZlcnkgcmlwcGxlIGNvbnRhaW5lciBzaG91bGQgaGF2ZSBwb3NpdGlvbjogcmVsYXRpdmUgaW4gZmF2b3Igb2YgY3JlYXRpbmcgYW5cbiAgICAvLyBlYXN5IEFQSSBmb3IgZGV2ZWxvcGVycyB1c2luZyB0aGUgTWF0UmlwcGxlIGRpcmVjdGl2ZS5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAvLyBQcm9tb3RlIGNvbnRhaW5lcnMgdGhhdCBoYXZlIHJpcHBsZXMgdG8gYSBuZXcgbGF5ZXIuIFdlIHdhbnQgdG8gdGFyZ2V0IGA6bm90KDplbXB0eSlgLFxuICAgIC8vIGJlY2F1c2Ugd2UgZG9uJ3Qgd2FudCBhbGwgcmlwcGxlIGNvbnRhaW5lcnMgdG8gaGF2ZSB0aGVpciBvd24gbGF5ZXIgc2luY2UgdGhleSdyZSB1c2VkIGluIGFcbiAgICAvLyBsb3Qgb2YgcGxhY2VzIGFuZCB0aGUgbGF5ZXIgaXMgb25seSByZWxldmFudCB3aGlsZSBhbmltYXRpbmcuIE5vdGUgdGhhdCBpZGVhbGx5IHdlJ2QgdXNlXG4gICAgLy8gdGhlIGBjb250YWluYCBwcm9wZXJ0eSBoZXJlIChzZWUgIzEzMTc1KSwgYmVjYXVzZSBgOmVtcHR5YCBjYW4gYmUgYnJva2VuIGJ5IGhhdmluZyBleHRyYVxuICAgIC8vIHRleHQgaW5zaWRlIHRoZSBlbGVtZW50LCBidXQgaXQgaXNuJ3QgdmVyeSB3ZWxsIHN1cHBvcnRlZCB5ZXQuXG4gICAgJjpub3QoOmVtcHR5KSB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1yaXBwbGUubWF0LXJpcHBsZS11bmJvdW5kZWQge1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICB9XG5cbiAgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgIHRyYW5zaXRpb246IG9wYWNpdHksIHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7XG5cbiAgICAvLyBXZSB1c2UgYSAzZCB0cmFuc2Zvcm0gaGVyZSBpbiBvcmRlciB0byBhdm9pZCBhbiBpc3N1ZSBpbiBTYWZhcmkgd2hlcmVcbiAgICAvLyB0aGUgcmlwcGxlcyBhcmVuJ3QgY2xpcHBlZCB3aGVuIGluc2lkZSB0aGUgc2hhZG93IERPTSAoc2VlICMyNDAyOCkuXG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDAsIDAsIDApO1xuXG4gICAgLy8gSW4gaGlnaCBjb250cmFzdCBtb2RlIHRoZSByaXBwbGUgaXMgb3BhcXVlLCBjYXVzaW5nIGl0IHRvIG9ic3RydWN0IHRoZSBjb250ZW50LlxuICAgIEBpbmNsdWRlIGNkay5oaWdoLWNvbnRyYXN0KGFjdGl2ZSwgb2ZmKSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxufVxuIiwiLy8vIEVtaXRzIGEgQ1NTIGNsYXNzLCBgLmNkay12aXN1YWxseS1oaWRkZW5gLiBUaGlzIGNsYXNzIGNhbiBiZSBhcHBsaWVkIHRvIGFuIGVsZW1lbnRcbi8vLyB0byBtYWtlIHRoYXQgZWxlbWVudCB2aXN1YWxseSBoaWRkZW4gd2hpbGUgcmVtYWluaW5nIGF2YWlsYWJsZSB0byBhc3Npc3RpdmUgdGVjaG5vbG9neS5cbkBtaXhpbiBhMTF5LXZpc3VhbGx5LWhpZGRlbigpIHtcbiAgLmNkay12aXN1YWxseS1oaWRkZW4ge1xuICAgIGJvcmRlcjogMDtcbiAgICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICAgIGhlaWdodDogMXB4O1xuICAgIG1hcmdpbjogLTFweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxcHg7XG5cbiAgICAvLyBUaGlzIHdvcmtzIGFyb3VuZCBhIENocm9tZSBidWcgdGhhdCBjYW4gY2F1c2UgdGhlIHRhYiB0byBjcmFzaCB3aGVuIGxhcmdlIGFtb3VudHMgb2ZcbiAgICAvLyBub24tRW5nbGlzaCB0ZXh0IGdldCB3cmFwcGVkOiBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvY2hyb21pdW0vaXNzdWVzL2RldGFpbD9pZD0xMjAxNDQ0XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgIC8vIEF2b2lkIGJyb3dzZXJzIHJlbmRlcmluZyB0aGUgZm9jdXMgcmluZyBpbiBzb21lIGNhc2VzLlxuICAgIG91dGxpbmU6IDA7XG5cbiAgICAvLyBBdm9pZCBzb21lIGNhc2VzIHdoZXJlIHRoZSBicm93c2VyIHdpbGwgc3RpbGwgcmVuZGVyIHRoZSBuYXRpdmUgY29udHJvbHMgKHNlZSAjOTA0OSkuXG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcblxuICAgIC8vIFdlIG5lZWQgYXQgbGVhc3Qgb25lIG9mIHRvcC9ib3R0b20vbGVmdC9yaWdodCBpbiBvcmRlciB0byBwcmV2ZW50IGNhc2VzIHdoZXJlIHRoZVxuICAgIC8vIGFic29sdXRlLXBvc2l0aW9uZWQgZWxlbWVudCBpcyBwdXNoZWQgZG93biBhbmQgY2FuIGFmZmVjdCBzY3JvbGxpbmcgKHNlZSAjMjQ1OTcpLlxuICAgIC8vIGBsZWZ0YCB3YXMgY2hvc2VuIGhlcmUsIGJlY2F1c2UgaXQncyB0aGUgbGVhc3QgbGlrZWx5IHRvIGJyZWFrIG92ZXJyaWRlcyB3aGVyZSB0aGVcbiAgICAvLyBlbGVtZW50IG1pZ2h0IGhhdmUgYmVlbiBwb3NpdGlvbmVkIChlLmcuIGBtYXQtY2hlY2tib3hgKS5cbiAgICBsZWZ0OiAwO1xuXG4gICAgW2Rpcj0ncnRsJ10gJiB7XG4gICAgICBsZWZ0OiBhdXRvO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgfVxuICB9XG59XG5cbi8vLyBAZGVwcmVjYXRlZCBVc2UgYGExMXktdmlzdWFsbHktaGlkZGVuYC5cbkBtaXhpbiBhMTF5KCkge1xuICBAaW5jbHVkZSBhMTF5LXZpc3VhbGx5LWhpZGRlbjtcbn1cblxuLy8vIEVtaXRzIHRoZSBtaXhpbidzIGNvbnRlbnQgbmVzdGVkIHVuZGVyIGAkc2VsZWN0b3ItY29udGV4dGAgaWYgYCRzZWxlY3Rvci1jb250ZXh0YFxuLy8vIGlzIG5vbi1lbXB0eS5cbi8vLyBAcGFyYW0ge1N0cmluZ30gc2VsZWN0b3ItY29udGV4dCBUaGUgc2VsZWN0b3IgdW5kZXIgd2hpY2ggdG8gbmVzdCB0aGUgbWl4aW4ncyBjb250ZW50LlxuQG1peGluIF9vcHRpb25hbGx5LW5lc3QtY29udGVudCgkc2VsZWN0b3ItY29udGV4dCkge1xuICBAaWYgKCRzZWxlY3Rvci1jb250ZXh0ID09ICcnKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbiAgQGVsc2Uge1xuICAgICN7JHNlbGVjdG9yLWNvbnRleHR9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQXBwbGllcyBzdHlsZXMgZm9yIHVzZXJzIGluIGhpZ2ggY29udHJhc3QgbW9kZS4gTm90ZSB0aGF0IHRoaXMgb25seSBhcHBsaWVzXG4vLy8gdG8gTWljcm9zb2Z0IGJyb3dzZXJzLiBDaHJvbWUgY2FuIGJlIGluY2x1ZGVkIGJ5IGNoZWNraW5nIGZvciB0aGUgYGh0bWxbaGNdYFxuLy8vIGF0dHJpYnV0ZSwgaG93ZXZlciBDaHJvbWUgaGFuZGxlcyBoaWdoIGNvbnRyYXN0IGRpZmZlcmVudGx5LlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9IHRhcmdldCBUeXBlIG9mIGhpZ2ggY29udHJhc3Qgc2V0dGluZyB0byB0YXJnZXQuIERlZmF1bHRzIHRvIGBhY3RpdmVgLCBjYW4gYmVcbi8vLyAgICAgYHdoaXRlLW9uLWJsYWNrYCBvciBgYmxhY2stb24td2hpdGVgLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSBlbmNhcHN1bGF0aW9uIFdoZXRoZXIgdG8gZW1pdCBzdHlsZXMgZm9yIHZpZXcgZW5jYXBzdWxhdGlvbi4gVmFsdWVzIGFyZTpcbi8vLyAgICAgKiBgb25gIC0gd29ya3MgZm9yIGBFbXVsYXRlZGAsIGBOYXRpdmVgLCBhbmQgYFNoYWRvd0RvbWBcbi8vLyAgICAgKiBgb2ZmYCAtIHdvcmtzIGZvciBgTm9uZWBcbi8vLyAgICAgKiBgYW55YCAtIHdvcmtzIGZvciBhbGwgZW5jYXBzdWxhdGlvbiBtb2RlcyBieSBlbWl0dGluZyB0aGUgQ1NTIHR3aWNlIChkZWZhdWx0KS5cbkBtaXhpbiBoaWdoLWNvbnRyYXN0KCR0YXJnZXQ6IGFjdGl2ZSwgJGVuY2Fwc3VsYXRpb246ICdhbnknKSB7XG4gIEBpZiAoJHRhcmdldCAhPSAnYWN0aXZlJyBhbmQgJHRhcmdldCAhPSAnYmxhY2stb24td2hpdGUnIGFuZCAkdGFyZ2V0ICE9ICd3aGl0ZS1vbi1ibGFjaycpIHtcbiAgICBAZXJyb3IgJ1Vua25vd24gY2RrLWhpZ2gtY29udHJhc3QgdmFsdWUgXCIjeyR0YXJnZXR9XCIgcHJvdmlkZWQuICcgK1xuICAgICAgICAgICAnQWxsb3dlZCB2YWx1ZXMgYXJlIFwiYWN0aXZlXCIsIFwiYmxhY2stb24td2hpdGVcIiwgYW5kIFwid2hpdGUtb24tYmxhY2tcIic7XG4gIH1cblxuICBAaWYgKCRlbmNhcHN1bGF0aW9uICE9ICdvbicgYW5kICRlbmNhcHN1bGF0aW9uICE9ICdvZmYnIGFuZCAkZW5jYXBzdWxhdGlvbiAhPSAnYW55Jykge1xuICAgIEBlcnJvciAnVW5rbm93biBjZGstaGlnaC1jb250cmFzdCBlbmNhcHN1bGF0aW9uIFwiI3skZW5jYXBzdWxhdGlvbn1cIiBwcm92aWRlZC4gJyArXG4gICAgICAgICAgICdBbGxvd2VkIHZhbHVlcyBhcmUgXCJvblwiLCBcIm9mZlwiLCBhbmQgXCJhbnlcIic7XG4gIH1cblxuICAvLyBJZiB0aGUgc2VsZWN0b3IgY29udGV4dCBoYXMgbXVsdGlwbGUgcGFydHMsIHN1Y2ggYXMgYC5zZWN0aW9uLCAucmVnaW9uYCwganVzdCBkb2luZ1xuICAvLyBgLmNkay1oaWdoLWNvbnRyYXN0LXh4eCAjeyZ9YCB3aWxsIG9ubHkgYXBwbHkgdGhlIHBhcmVudCBzZWxlY3RvciB0byB0aGUgZmlyc3QgcGFydCBvZiB0aGVcbiAgLy8gY29udGV4dC4gV2UgYWRkcmVzcyB0aGlzIGJ5IG5lc3RpbmcgdGhlIHNlbGVjdG9yIGNvbnRleHQgdW5kZXIgLmNkay1oaWdoLWNvbnRyYXN0LlxuICBAYXQtcm9vdCB7XG4gICAgJHNlbGVjdG9yLWNvbnRleHQ6ICN7Jn07XG5cbiAgICBAaWYgKCRlbmNhcHN1bGF0aW9uICE9ICdvbicpIHtcbiAgICAgIC8vIE5vdGUgdGhhdCBpZiB0aGlzIHNlbGVjdG9yIGlzIHVwZGF0ZWQsIHRoZSBzYW1lIGNoYW5nZSBoYXMgdG8gYmUgbWFkZSBpbnNpZGVcbiAgICAgIC8vIGBfb3ZlcmxheS5zY3NzYCB3aGljaCBjYW4ndCBkZXBlbmQgb24gdGhpcyBtaXhpbiBkdWUgdG8gc29tZSBpbmZyYXN0cnVjdHVyZSBsaW1pdGF0aW9ucy5cbiAgICAgIC5jZGstaGlnaC1jb250cmFzdC0jeyR0YXJnZXR9IHtcbiAgICAgICAgQGluY2x1ZGUgX29wdGlvbmFsbHktbmVzdC1jb250ZW50KCRzZWxlY3Rvci1jb250ZXh0KSB7XG4gICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgKCRlbmNhcHN1bGF0aW9uICE9ICdvZmYnKSB7XG4gICAgICAuY2RrLWhpZ2gtY29udHJhc3QtI3skdGFyZ2V0fSA6aG9zdCB7XG4gICAgICAgIEBpbmNsdWRlIF9vcHRpb25hbGx5LW5lc3QtY29udGVudCgkc2VsZWN0b3ItY29udGV4dCkge1xuICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBXZSB3YW50IG92ZXJsYXlzIHRvIGFsd2F5cyBhcHBlYXIgb3ZlciB1c2VyIGNvbnRlbnQsIHNvIHNldCBhIGJhc2VsaW5lXG4vLyB2ZXJ5IGhpZ2ggei1pbmRleCBmb3IgdGhlIG92ZXJsYXkgY29udGFpbmVyLCB3aGljaCBpcyB3aGVyZSB3ZSBjcmVhdGUgdGhlIG5ld1xuLy8gc3RhY2tpbmcgY29udGV4dCBmb3IgYWxsIG92ZXJsYXlzLlxuJG92ZXJsYXktY29udGFpbmVyLXotaW5kZXg6IDEwMDAgIWRlZmF1bHQ7XG4kb3ZlcmxheS16LWluZGV4OiAxMDAwICFkZWZhdWx0O1xuJG92ZXJsYXktYmFja2Ryb3Atei1pbmRleDogMTAwMCAhZGVmYXVsdDtcblxuLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgYWxsIG9mIHRoZSBiYWNrZHJvcHNcbiRvdmVybGF5LWJhY2tkcm9wLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzIpICFkZWZhdWx0O1xuXG4vLyBEZWZhdWx0IGJhY2tkcm9wIGFuaW1hdGlvbiBpcyBiYXNlZCBvbiB0aGUgTWF0ZXJpYWwgRGVzaWduIHN3aWZ0LWVhc2Utb3V0LlxuJGJhY2tkcm9wLWFuaW1hdGlvbi1kdXJhdGlvbjogNDAwbXMgIWRlZmF1bHQ7XG4kYmFja2Ryb3AtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSkgIWRlZmF1bHQ7XG5cbi8vLyBFbWl0cyBzdHJ1Y3R1cmFsIHN0eWxlcyByZXF1aXJlZCBmb3IgY2RrL292ZXJsYXkgdG8gZnVuY3Rpb24uXG5AbWl4aW4gb3ZlcmxheSgpIHtcbiAgLmNkay1vdmVybGF5LWNvbnRhaW5lciwgLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyIHtcbiAgICAvLyBEaXNhYmxlIGV2ZW50cyBmcm9tIGJlaW5nIGNhcHR1cmVkIG9uIHRoZSBvdmVybGF5IGNvbnRhaW5lci5cbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgIC8vIFRoZSBjb250YWluZXIgc2hvdWxkIGJlIHRoZSBzaXplIG9mIHRoZSB2aWV3cG9ydC5cbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICAvLyBUaGUgb3ZlcmxheS1jb250YWluZXIgaXMgYW4gaW52aXNpYmxlIGVsZW1lbnQgd2hpY2ggY29udGFpbnMgYWxsIGluZGl2aWR1YWwgb3ZlcmxheXMuXG4gIC5jZGstb3ZlcmxheS1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB6LWluZGV4OiAkb3ZlcmxheS1jb250YWluZXItei1pbmRleDtcblxuICAgICY6ZW1wdHkge1xuICAgICAgLy8gSGlkZSB0aGUgZWxlbWVudCB3aGVuIGl0IGRvZXNuJ3QgaGF2ZSBhbnkgY2hpbGQgbm9kZXMuIFRoaXMgZG9lc24ndFxuICAgICAgLy8gaW5jbHVkZSBvdmVybGF5cyB0aGF0IGhhdmUgYmVlbiBkZXRhY2hlZCwgcmF0aGVyIHRoYW4gZGlzcG9zZWQuXG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC8vIFdlIHVzZSBhbiBleHRyYSB3cmFwcGVyIGVsZW1lbnQgaW4gb3JkZXIgdG8gdXNlIG1ha2UgdGhlIG92ZXJsYXkgaXRzZWxmIGEgZmxleCBpdGVtLlxuICAvLyBUaGlzIG1ha2VzIGNlbnRlcmluZyB0aGUgb3ZlcmxheSBlYXN5IHdpdGhvdXQgcnVubmluZyBpbnRvIHRoZSBzdWJwaXhlbCByZW5kZXJpbmdcbiAgLy8gcHJvYmxlbXMgdGllZCB0byB1c2luZyBgdHJhbnNmb3JtYCBhbmQgd2l0aG91dCBpbnRlcmZlcmluZyB3aXRoIHRoZSBvdGhlciBwb3NpdGlvblxuICAvLyBzdHJhdGVnaWVzLlxuICAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6ICRvdmVybGF5LXotaW5kZXg7XG4gIH1cblxuICAvLyBBIHNpbmdsZSBvdmVybGF5IHBhbmUuXG4gIC5jZGstb3ZlcmxheS1wYW5lIHtcbiAgICAvLyBOb3RlOiBpdCdzIGltcG9ydGFudCBmb3IgdGhpcyBvbmUgdG8gc3RhcnQgb2ZmIGBhYnNvbHV0ZWAsXG4gICAgLy8gaW4gb3JkZXIgZm9yIHVzIHRvIGJlIGFibGUgdG8gbWVhc3VyZSBpdCBjb3JyZWN0bHkuXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgei1pbmRleDogJG92ZXJsYXktei1pbmRleDtcblxuICAgIC8vIEZvciBjb25uZWN0ZWQtcG9zaXRpb24gb3ZlcmxheXMsIHdlIHNldCBgZGlzcGxheTogZmxleGAgaW5cbiAgICAvLyBvcmRlciB0byBmb3JjZSBgbWF4LXdpZHRoYCBhbmQgYG1heC1oZWlnaHRgIHRvIHRha2UgZWZmZWN0LlxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gIH1cblxuICAuY2RrLW92ZXJsYXktYmFja2Ryb3Age1xuICAgIC8vIFRPRE8oamVsYm91cm4pOiByZXVzZSBzaWRlbmF2IGZ1bGxzY3JlZW4gbWl4aW4uXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcblxuICAgIHotaW5kZXg6ICRvdmVybGF5LWJhY2tkcm9wLXotaW5kZXg7XG4gICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5ICRiYWNrZHJvcC1hbmltYXRpb24tZHVyYXRpb24gJGJhY2tkcm9wLWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb247XG4gICAgb3BhY2l0eTogMDtcblxuICAgICYuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZyB7XG4gICAgICBvcGFjaXR5OiAxO1xuXG4gICAgICAvLyBOb3RlIHRoYXQgd2UgY2FuJ3QgaW1wb3J0IGFuZCB1c2UgdGhlIGBoaWdoLWNvbnRyYXN0YCBtaXhpbiBmcm9tIGBfYTExeS5zY3NzYCwgYmVjYXVzZVxuICAgICAgLy8gdGhpcyBmaWxlIHdpbGwgYmUgY29waWVkIHRvIHRoZSB0b3AtbGV2ZWwgYGNka2AgcGFja2FnZSB3aGVuIHB1dHRpbmcgdG9nZXRoZXIgdGhlIGZpbGVzXG4gICAgICAvLyBmb3IgbnBtLiBBbnkgcmVsYXRpdmUgaW1wb3J0IHBhdGhzIHdlIHVzZSBoZXJlIHdpbGwgYmVjb21lIGludmFsaWQgb25jZSB0aGUgZmlsZSBpcyBjb3BpZWQuXG4gICAgICAuY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlICYge1xuICAgICAgICAvLyBJbiBoaWdoIGNvbnRyYXN0IG1vZGUgdGhlIHJnYmEgYmFja2dyb3VuZCB3aWxsIGJlY29tZSBzb2xpZFxuICAgICAgICAvLyBzbyB3ZSBuZWVkIHRvIGZhbGwgYmFjayB0byBtYWtpbmcgaXQgb3BhcXVlIHVzaW5nIGBvcGFjaXR5YC5cbiAgICAgICAgb3BhY2l0eTogMC42O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wIHtcbiAgICBiYWNrZ3JvdW5kOiAkb3ZlcmxheS1iYWNrZHJvcC1jb2xvcjtcbiAgfVxuXG4gIC5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcCB7XG4gICAgLy8gRGVmaW5lIGEgdHJhbnNpdGlvbiBvbiB0aGUgdmlzaWJpbGl0eSBzbyB0aGF0IHRoZSBgdHJhbnNpdGlvbmVuZGAgZXZlbnQgY2FuIGZpcmUgaW1tZWRpYXRlbHkuXG4gICAgdHJhbnNpdGlvbjogdmlzaWJpbGl0eSAxbXMgbGluZWFyLCBvcGFjaXR5IDFtcyBsaW5lYXI7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIG9wYWNpdHk6IDE7XG5cbiAgICAvLyBOb3RlOiBhcyBvZiBGaXJlZm94IDU3LCBoYXZpbmcgdGhlIGJhY2tkcm9wIGJlIGBiYWNrZ3JvdW5kOiBub25lYCB3aWxsIHByZXZlbnQgaXQgZnJvbVxuICAgIC8vIGNhcHR1cmluZyB0aGUgdXNlcidzIG1vdXNlIHNjcm9sbCBldmVudHMuIFNpbmNlIHdlIGFsc28gY2FuJ3QgdXNlIHNvbWV0aGluZyBsaWtlXG4gICAgLy8gYHJnYmEoMCwgMCwgMCwgMClgLCB3ZSB3b3JrIGFyb3VuZCB0aGUgaW5jb25zaXN0ZW5jeSBieSBub3Qgc2V0dGluZyB0aGUgYmFja2dyb3VuZCBhdFxuICAgIC8vIGFsbCBhbmQgdXNpbmcgYG9wYWNpdHlgIHRvIG1ha2UgdGhlIGVsZW1lbnQgdHJhbnNwYXJlbnQuXG4gICAgJi5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nIHtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIH1cbiAgfVxuXG4gIC5jZGstb3ZlcmxheS1iYWNrZHJvcC1ub29wLWFuaW1hdGlvbiB7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgfVxuXG4gIC8vIE92ZXJsYXkgcGFyZW50IGVsZW1lbnQgdXNlZCB3aXRoIHRoZSBjb25uZWN0ZWQgcG9zaXRpb24gc3RyYXRlZ3kuIFVzZWQgdG8gY29uc3RyYWluIHRoZVxuICAvLyBvdmVybGF5IGVsZW1lbnQncyBzaXplIHRvIGZpdCB3aXRoaW4gdGhlIHZpZXdwb3J0LlxuICAuY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6ICRvdmVybGF5LXotaW5kZXg7XG5cbiAgICAvLyBXZSB1c2UgYGRpc3BsYXk6IGZsZXhgIG9uIHRoaXMgZWxlbWVudCBleGNsdXNpdmVseSBmb3IgY2VudGVyaW5nIGNvbm5lY3RlZCBvdmVybGF5cy5cbiAgICAvLyBXaGVuICpub3QqIGNlbnRlcmluZywgYSB0b3AvbGVmdC9ib3R0b20vcmlnaHQgd2lsbCBiZSBzZXQgd2hpY2ggb3ZlcnJpZGVzIHRoZSBub3JtYWxcbiAgICAvLyBmbGV4IGxheW91dC5cbiAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgLy8gV2UgdXNlIHRoZSBgY29sdW1uYCBkaXJlY3Rpb24gaGVyZSB0byBhdm9pZCBzb21lIGZsZXhib3ggaXNzdWVzIGluIEVkZ2VcbiAgICAvLyB3aGVuIHVzaW5nIHRoZSBcImdyb3cgYWZ0ZXIgb3BlblwiIG9wdGlvbnMuXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgIC8vIEFkZCBzb21lIGRpbWVuc2lvbnMgc28gdGhlIGVsZW1lbnQgaGFzIGFuIGBpbm5lclRleHRgIHdoaWNoIHNvbWUgcGVvcGxlIGRlcGVuZCBvbiBpbiB0ZXN0cy5cbiAgICBtaW4td2lkdGg6IDFweDtcbiAgICBtaW4taGVpZ2h0OiAxcHg7XG4gIH1cblxuICAvLyBVc2VkIHdoZW4gZGlzYWJsaW5nIGdsb2JhbCBzY3JvbGxpbmcuXG4gIC5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG5cbiAgICAvLyBOZWNlc3NhcnkgZm9yIHRoZSBjb250ZW50IG5vdCB0byBsb3NlIGl0cyB3aWR0aC4gTm90ZSB0aGF0IHdlJ3JlIHVzaW5nIDEwMCUsIGluc3RlYWQgb2ZcbiAgICAvLyAxMDB2dywgYmVjYXVzZSAxMDB2dyBpbmNsdWRlcyB0aGUgd2lkdGggcGx1cyB0aGUgc2Nyb2xsYmFyLCB3aGVyZWFzIDEwMCUgaXMgdGhlIHdpZHRoXG4gICAgLy8gdGhhdCB0aGUgZWxlbWVudCBoYWQgYmVmb3JlIHdlIG1hZGUgaXQgYGZpeGVkYC5cbiAgICB3aWR0aDogMTAwJTtcblxuICAgIC8vIE5vdGU6IHRoaXMgd2lsbCBhbHdheXMgYWRkIGEgc2Nyb2xsYmFyIHRvIHdoYXRldmVyIGVsZW1lbnQgaXQgaXMgb24sIHdoaWNoIGNhblxuICAgIC8vIHBvdGVudGlhbGx5IHJlc3VsdCBpbiBkb3VibGUgc2Nyb2xsYmFycy4gSXQgc2hvdWxkbid0IGJlIGFuIGlzc3VlLCBiZWNhdXNlIHdlIHdvbid0XG4gICAgLy8gYmxvY2sgc2Nyb2xsaW5nIG9uIGEgcGFnZSB0aGF0IGRvZXNuJ3QgaGF2ZSBhIHNjcm9sbGJhciBpbiB0aGUgZmlyc3QgcGxhY2UuXG4gICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICB9XG59XG4iLCIvLyBTdHJ1Y3R1cmFsIHN0eWxlcyBmb3IgdGhlIGF1dG9zaXplIHRleHQgZmllbGRzLlxuQG1peGluIHRleHQtZmllbGQtYXV0b3NpemUoKSB7XG4gIC8vIFJlbW92ZSB0aGUgcmVzaXplIGhhbmRsZSBvbiBhdXRvc2l6aW5nIHRleHRhcmVhcywgYmVjYXVzZSB3aGF0ZXZlciBoZWlnaHRcbiAgLy8gdGhlIHVzZXIgcmVzaXplZCB0byB3aWxsIGJlIG92ZXJ3cml0dGVuIG9uY2UgdGhleSBzdGFydCB0eXBpbmcgYWdhaW4uXG4gIHRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZSB7XG4gICAgcmVzaXplOiBub25lO1xuICB9XG5cbiAgLy8gVGhpcyBjbGFzcyBpcyB0ZW1wb3JhcmlseSBhcHBsaWVkIHRvIHRoZSB0ZXh0YXJlYSB3aGVuIGl0IGlzIGJlaW5nIG1lYXN1cmVkLiBJdCBpcyBpbW1lZGlhdGVseVxuICAvLyByZW1vdmVkIHdoZW4gbWVhc3VyaW5nIGlzIGNvbXBsZXRlLiBXZSB1c2UgYCFpbXBvcnRhbnRgIHJ1bGVzIGhlcmUgdG8gbWFrZSBzdXJlIHVzZXItc3BlY2lmaWVkXG4gIC8vIHJ1bGVzIGRvIG5vdCBpbnRlcmZlcmUgd2l0aCB0aGUgbWVhc3VyZW1lbnQuXG4gIHRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmcge1xuICAgIEBpbmNsdWRlIF9hdXRvc2l6ZS1tZWFzdXJpbmctYmFzZTtcbiAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG4gIH1cblxuICAvLyBTaW1pbGFyIHRvIHRoZSBgY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZ2AgY2xhc3MsIGJ1dCBvbmx5IGFwcGxpZWQgb24gRmlyZWZveC4gV2UgbmVlZFxuICAvLyB0byB1c2UgdGhpcyBjbGFzcywgYmVjYXVzZSBGaXJlZm94IGhhcyBhIGJ1ZyB3aGVyZSBjaGFuZ2luZyB0aGUgYG92ZXJmbG93YCBicmVha3MgdGhlIHVzZXInc1xuICAvLyBhYmlsaXR5IHRvIHVuZG8vcmVkbyB3aGF0IHRoZXkgd2VyZSB0eXBpbmcgKHNlZSAjMTY2MjkpLiBUaGlzIGNsYXNzIGlzIG9ubHkgc2NvcGVkIHRvIEZpcmVmb3gsXG4gIC8vIGJlY2F1c2UgdGhlIG1lYXN1cmVtZW50cyB0aGVyZSBkb24ndCBzZWVtIHRvIGJlIGFmZmVjdGVkIGJ5IHRoZSBgaGVpZ2h0OiAwYCwgd2hlcmVhcyBvbiBvdGhlclxuICAvLyBicm93c2VycyB0aGV5IGFyZSwgZS5nLiBDaHJvbWUgZGV0ZWN0cyBsb25nZXIgdGV4dCBhbmQgSUUgZG9lcyd0IHJlc2l6ZSBiYWNrIHRvIG5vcm1hbC5cbiAgLy8gSWRlbnRpY2FsIGlzc3VlIHJlcG9ydDogaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQ4Nzg0XG4gIHRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmctZmlyZWZveCB7XG4gICAgQGluY2x1ZGUgX2F1dG9zaXplLW1lYXN1cmluZy1iYXNlO1xuICAgIGhlaWdodDogMCAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8vIENvcmUgc3R5bGVzIHRoYXQgZW5hYmxlIG1vbml0b3JpbmcgYXV0b2ZpbGwgc3RhdGUgb2YgdGV4dCBmaWVsZHMuXG5AbWl4aW4gdGV4dC1maWVsZC1hdXRvZmlsbCgpIHtcbiAgLy8gS2V5ZnJhbWVzIHRoYXQgYXBwbHkgbm8gc3R5bGVzLCBidXQgYWxsb3cgdXMgdG8gbW9uaXRvciB3aGVuIGFuIHRleHQgZmllbGQgYmVjb21lcyBhdXRvZmlsbGVkXG4gIC8vIGJ5IHdhdGNoaW5nIGZvciB0aGUgYW5pbWF0aW9uIGV2ZW50cyB0aGF0IGFyZSBmaXJlZCB3aGVuIHRoZXkgc3RhcnQuIE5vdGU6IHRoZSAvKiEqLyBjb21tZW50IGlzXG4gIC8vIG5lZWRlZCB0byBwcmV2ZW50IExpYlNhc3MgZnJvbSBzdHJpcHBpbmcgdGhlIGtleWZyYW1lcyBvdXQuXG4gIC8vIEJhc2VkIG9uOiBodHRwczovL21lZGl1bS5jb20vQGJydW5uL2RldGVjdGluZy1hdXRvZmlsbGVkLWZpZWxkcy1pbi1qYXZhc2NyaXB0LWFlZDU5OGQyNWRhN1xuICBAa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IHsvKiEqL31cbiAgQGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQgey8qISovfVxuXG4gIC5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWQ6LXdlYmtpdC1hdXRvZmlsbCB7XG4gICAgLy8gU2luY2UgQ2hyb21lIDgwIHdlIG5lZWQgYSAxbXMgZGVsYXksIG9yIHRoZSBhbmltYXRpb25zdGFydCBldmVudCB3b24ndCBmaXJlLlxuICAgIGFuaW1hdGlvbjogY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQgMHMgMW1zO1xuICB9XG5cbiAgLmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZDpub3QoOi13ZWJraXQtYXV0b2ZpbGwpIHtcbiAgICAvLyBTaW5jZSBDaHJvbWUgODAgd2UgbmVlZCBhIDFtcyBkZWxheSwgb3IgdGhlIGFuaW1hdGlvbnN0YXJ0IGV2ZW50IHdvbid0IGZpcmUuXG4gICAgYW5pbWF0aW9uOiBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQgMHMgMW1zO1xuICB9XG59XG5cbkBtaXhpbiBfYXV0b3NpemUtbWVhc3VyaW5nLWJhc2Uge1xuICAvLyBIYXZpbmcgMnB4IHRvcCBhbmQgYm90dG9tIHBhZGRpbmcgc2VlbXMgdG8gZml4IGEgYnVnIHdoZXJlIENocm9tZSBnZXRzIGFuIGluY29ycmVjdFxuICAvLyBtZWFzdXJlbWVudC4gV2UganVzdCBoYXZlIHRvIGFjY291bnQgZm9yIGl0IGxhdGVyIGFuZCBzdWJ0cmFjdCBpdCBvZmYgdGhlIGZpbmFsIHJlc3VsdC5cbiAgcGFkZGluZzogMnB4IDAgIWltcG9ydGFudDtcbiAgYm94LXNpemluZzogY29udGVudC1ib3ggIWltcG9ydGFudDtcbn1cblxuLy8gVXNlZCB0byBnZW5lcmF0ZSBVSURzIGZvciBrZXlmcmFtZXMgdXNlZCB0byBjaGFuZ2UgdGhlIHRleHQgZmllbGQgYXV0b2ZpbGwgc3R5bGVzLlxuJGF1dG9maWxsLWNvbG9yLWZyYW1lLWNvdW50OiAwO1xuXG4vLyBNaXhpbiB1c2VkIHRvIGFwcGx5IGN1c3RvbSBiYWNrZ3JvdW5kIGFuZCBmb3JlZ3JvdW5kIGNvbG9ycyB0byBhbiBhdXRvZmlsbGVkIHRleHQgZmllbGQuXG4vLyBCYXNlZCBvbjogaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMjc4MTU0OS9cbi8vIHJlbW92aW5nLWlucHV0LWJhY2tncm91bmQtY29sb3VyLWZvci1jaHJvbWUtYXV0b2NvbXBsZXRlI2Fuc3dlci0zNzQzMjI2MFxuQG1peGluIHRleHQtZmllbGQtYXV0b2ZpbGwtY29sb3IoJGJhY2tncm91bmQsICRmb3JlZ3JvdW5kOicnKSB7XG4gIEBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtY29sb3ItI3skYXV0b2ZpbGwtY29sb3ItZnJhbWUtY291bnR9IHtcbiAgICB0byB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICAgIEBpZiAkZm9yZWdyb3VuZCAhPSAnJyB7IGNvbG9yOiAkZm9yZWdyb3VuZDsgfVxuICAgIH1cbiAgfVxuXG4gICY6LXdlYmtpdC1hdXRvZmlsbCB7XG4gICAgYW5pbWF0aW9uOiBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1jb2xvci0jeyRhdXRvZmlsbC1jb2xvci1mcmFtZS1jb3VudH0gYm90aDtcbiAgfVxuXG4gICYuY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkOi13ZWJraXQtYXV0b2ZpbGwge1xuICAgIC8vIFNpbmNlIENocm9tZSA4MCB3ZSBuZWVkIGEgMW1zIGRlbGF5IGZvciBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCwgb3IgdGhlIGFuaW1hdGlvbnN0YXJ0XG4gICAgLy8gZXZlbnQgd29uJ3QgZmlyZS5cbiAgICBhbmltYXRpb246IGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtcyxcbiAgICAgICAgICAgICAgIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yLSN7JGF1dG9maWxsLWNvbG9yLWZyYW1lLWNvdW50fSBib3RoO1xuICB9XG5cbiAgJGF1dG9maWxsLWNvbG9yLWZyYW1lLWNvdW50OiAkYXV0b2ZpbGwtY29sb3ItZnJhbWUtY291bnQgKyAxICFnbG9iYWw7XG59XG5cbi8vIEBkZXByZWNhdGVkIFVzZSBgYXV0b3NpemVgIGFuZCBgYXV0b2ZpbGxgIGluc3RlYWQuXG5AbWl4aW4gdGV4dC1maWVsZCB7XG4gIEBpbmNsdWRlIHRleHQtZmllbGQtYXV0b3NpemUoKTtcbiAgQGluY2x1ZGUgdGV4dC1maWVsZC1hdXRvZmlsbCgpO1xufVxuIiwiQHVzZSAnc2FzczptYXAnO1xuQHVzZSAnc2FzczptZXRhJztcbkB1c2UgJ0Bhbmd1bGFyL2Nkayc7XG5AdXNlICcuLi9zdHlsZS9sYXlvdXQtY29tbW9uJztcbkB1c2UgJy4uL3RoZW1pbmcvdGhlbWluZyc7XG5AdXNlICcuLi90aGVtaW5nL2luc3BlY3Rpb24nO1xuXG4vLyBQcml2YXRlIHNhc3MgdmFyaWFibGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIHJlZmVyZW5jZSB0aHJvdWdob3V0IGNvbXBvbmVudCBzdHlsZXNoZWV0cy5cbiRkZWZhdWx0LWJvcmRlci13aWR0aDogM3B4O1xuJGRlZmF1bHQtYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiRkZWZhdWx0LWJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4kZGVmYXVsdC1ib3JkZXItcmFkaXVzOiA0cHg7XG5cbi8vIE1peGluIHRoYXQgcmVuZGVycyB0aGUgZm9jdXMgaW5kaWNhdG9yIHN0cnVjdHVyYWwgc3R5bGVzLlxuQG1peGluIHN0cnVjdHVyYWwtc3R5bGluZygkcHJlZml4KSB7XG4gIC4jeyRwcmVmaXh9LWZvY3VzLWluZGljYXRvciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIEBpbmNsdWRlIGxheW91dC1jb21tb24uZmlsbCgpO1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgZGlzcGxheTogdmFyKC0tI3skcHJlZml4fS1mb2N1cy1pbmRpY2F0b3ItZGlzcGxheSwgbm9uZSk7IC8vIEhpZGUgdGhlIGluZGljYXRvciBieSBkZWZhdWx0LlxuICAgICAgYm9yZGVyOiB2YXIoXG4gICAgICAgICAgLS0jeyRwcmVmaXh9LWZvY3VzLWluZGljYXRvci1ib3JkZXItd2lkdGgsXG4gICAgICAgICAgI3skZGVmYXVsdC1ib3JkZXItd2lkdGh9XG4gICAgICAgIClcbiAgICAgICAgdmFyKFxuICAgICAgICAgIC0tI3skcHJlZml4fS1mb2N1cy1pbmRpY2F0b3ItYm9yZGVyLXN0eWxlLFxuICAgICAgICAgICN7JGRlZmF1bHQtYm9yZGVyLXN0eWxlfVxuICAgICAgICApXG4gICAgICAgIHZhcihcbiAgICAgICAgICAtLSN7JHByZWZpeH0tZm9jdXMtaW5kaWNhdG9yLWJvcmRlci1jb2xvcixcbiAgICAgICAgICAjeyRkZWZhdWx0LWJvcmRlci1jb2xvcn1cbiAgICAgICAgKTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IHZhcihcbiAgICAgICAgLS0jeyRwcmVmaXh9LWZvY3VzLWluZGljYXRvci1ib3JkZXItcmFkaXVzLFxuICAgICAgICAjeyRkZWZhdWx0LWJvcmRlci1yYWRpdXN9XG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIEJ5IGRlZmF1bHQsIHJlbmRlciB0aGUgZm9jdXMgaW5kaWNhdG9yIHdoZW4gdGhlIGZvY3VzIGluZGljYXRvciBob3N0IGVsZW1lbnQgdGFrZXMgZm9jdXMuXG4gICAgLy8gRGVmaW5pbmcgYSBwc2V1ZG8gZWxlbWVudCdzIGNvbnRlbnQgd2lsbCBjYXVzZSBpdCB0byByZW5kZXIuXG4gICAgJjpmb2N1czo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgIH1cbiAgfVxuXG4gIC8vIEVuYWJsZSB0aGUgaW5kaWNhdG9yIGluIGhpZ2ggY29udHJhc3QgbW9kZS5cbiAgQGluY2x1ZGUgY2RrLmhpZ2gtY29udHJhc3QoYWN0aXZlLCBvZmYpIHtcbiAgICBAaW5jbHVkZSBjdXN0b21pemUtZm9jdXMtaW5kaWNhdG9ycygoZGlzcGxheTogYmxvY2spLCAkcHJlZml4KTtcbiAgfVxufVxuXG4vLyBHZW5lcmF0ZXMgQ1NTIHZhcmlhYmxlIGRlY2xhcmF0aW9ucyBmcm9tIGEgbWFwLlxuQG1peGluIF9vdXRwdXQtdmFyaWFibGVzKCRtYXApIHtcbiAgQGVhY2ggJGtleSwgJHZhbHVlIGluICRtYXAge1xuICAgIEBpZiAoJHZhbHVlKSB7XG4gICAgICAtLSN7JGtleX06ICN7JHZhbHVlfTtcbiAgICB9XG4gIH1cbn1cblxuLy8gTWl4aW4gdGhhdCBkZWR1cHMgQ1NTIHZhcmlhYmxlcyBmb3IgdGhlIHN0cm9uZy1mb2N1cy1pbmRpY2F0b3JzIG1peGluLlxuQG1peGluIGN1c3RvbWl6ZS1mb2N1cy1pbmRpY2F0b3JzKCRjb25maWcsICRwcmVmaXgpIHtcbiAgJGJvcmRlci1zdHlsZTogbWFwLmdldCgkY29uZmlnLCBib3JkZXItc3R5bGUpO1xuICAkYm9yZGVyLXdpZHRoOiBtYXAuZ2V0KCRjb25maWcsIGJvcmRlci13aWR0aCk7XG4gICRib3JkZXItcmFkaXVzOiBtYXAuZ2V0KCRjb25maWcsIGJvcmRlci1yYWRpdXMpO1xuICAkYm9yZGVyLWNvbG9yOiBtYXAuZ2V0KCRjb25maWcsIGJvcmRlci1jb2xvcik7XG4gICRkaXNwbGF5OiBtYXAuZ2V0KCRjb25maWcsIGRpc3BsYXkpO1xuICAkbWFwOiAoXG4gICAgJyN7JHByZWZpeH0tZm9jdXMtaW5kaWNhdG9yLWJvcmRlci1zdHlsZSc6ICRib3JkZXItc3R5bGUsXG4gICAgJyN7JHByZWZpeH0tZm9jdXMtaW5kaWNhdG9yLWJvcmRlci13aWR0aCc6ICRib3JkZXItd2lkdGgsXG4gICAgJyN7JHByZWZpeH0tZm9jdXMtaW5kaWNhdG9yLWJvcmRlci1yYWRpdXMnOiAkYm9yZGVyLXJhZGl1cyxcbiAgICAnI3skcHJlZml4fS1mb2N1cy1pbmRpY2F0b3ItYm9yZGVyLWNvbG9yJzogJGJvcmRlci1jb2xvcixcbiAgICAnI3skcHJlZml4fS1mb2N1cy1pbmRpY2F0b3ItZGlzcGxheSc6ICRkaXNwbGF5LFxuICApO1xuXG4gIEBpZiAoJikge1xuICAgIEBpbmNsdWRlIF9vdXRwdXQtdmFyaWFibGVzKCRtYXApO1xuICB9XG4gIEBlbHNlIHtcbiAgICAvLyBXZSB1c2UgYGh0bWxgIGhlcmUgaW5zdGVhZCBvZiBgOnJvb3RgLCBiZWNhdXNlIHRoZVxuICAgIC8vIGxhdHRlciBjYXVzZXMgc29tZSBpc3N1ZXMgd2l0aCBpbnRlcm5hbCB0b29saW5nLlxuICAgIGh0bWwge1xuICAgICAgQGluY2x1ZGUgX291dHB1dC12YXJpYWJsZXMoJG1hcCk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBzdHJvbmctZm9jdXMtaW5kaWNhdG9ycygkY29uZmlnOiAoKSkge1xuICAvLyBEZWZhdWx0IGZvY3VzIGluZGljYXRvciBjb25maWcuXG4gICRkZWZhdWx0LWNvbmZpZzogKFxuICAgICAgYm9yZGVyLWNvbG9yOiBibGFjayxcbiAgICAgIGRpc3BsYXk6IGJsb2NrLFxuICApO1xuXG4gIC8vIE1lcmdlIGRlZmF1bHQgY29uZmlnIHdpdGggdXNlciBjb25maWcuXG4gICRjb25maWc6IG1hcC5tZXJnZSgkZGVmYXVsdC1jb25maWcsICRjb25maWcpO1xuXG4gIEBpbmNsdWRlIGN1c3RvbWl6ZS1mb2N1cy1pbmRpY2F0b3JzKCRjb25maWcsICdtYXQnKTtcbn1cblxuQG1peGluIG1kYy1zdHJvbmctZm9jdXMtaW5kaWNhdG9ycygkY29uZmlnOiAoKSkge1xuICAvLyBEZWZhdWx0IGZvY3VzIGluZGljYXRvciBjb25maWcuXG4gICRkZWZhdWx0LWNvbmZpZzogKFxuICAgICAgYm9yZGVyLWNvbG9yOiBibGFjayxcbiAgICAgIGRpc3BsYXk6IGJsb2NrLFxuICApO1xuXG4gIC8vIE1lcmdlIGRlZmF1bHQgY29uZmlnIHdpdGggdXNlciBjb25maWcuXG4gICRjb25maWc6IG1hcC5tZXJnZSgkZGVmYXVsdC1jb25maWcsICRjb25maWcpO1xuXG4gIEBpbmNsdWRlIGN1c3RvbWl6ZS1mb2N1cy1pbmRpY2F0b3JzKCRjb25maWcsICdtYXQtbWRjJyk7XG59XG5cbkBtaXhpbiBzdHJvbmctZm9jdXMtaW5kaWNhdG9ycy1jb2xvcigkdGhlbWUtb3ItY29sb3IpIHtcbiAgQGlmIG1ldGEudHlwZS1vZigkdGhlbWUtb3ItY29sb3IpID09ICdjb2xvcicge1xuICAgIEBpbmNsdWRlIGN1c3RvbWl6ZS1mb2N1cy1pbmRpY2F0b3JzKChcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkdGhlbWUtb3ItY29sb3JcbiAgICApLCAnbWF0Jyk7XG4gIH1cbiAgQGVsc2Uge1xuICAgICRib3JkZXItY29sb3I6IGluc3BlY3Rpb24uZ2V0LXRoZW1lLWNvbG9yKCR0aGVtZS1vci1jb2xvciwgcHJpbWFyeSk7XG4gICAgQGluY2x1ZGUgY3VzdG9taXplLWZvY3VzLWluZGljYXRvcnMoKFxuICAgICAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3JcbiAgICApLCAnbWF0Jyk7XG4gIH1cbn1cblxuQG1peGluIHN0cm9uZy1mb2N1cy1pbmRpY2F0b3JzLXRoZW1lKCR0aGVtZS1vci1jb2xvcikge1xuICBAaWYgbWV0YS50eXBlLW9mKCR0aGVtZS1vci1jb2xvcikgPT0gJ2NvbG9yJyB7XG4gICAgQGluY2x1ZGUgY3VzdG9taXplLWZvY3VzLWluZGljYXRvcnMoKFxuICAgICAgICBib3JkZXItY29sb3I6ICR0aGVtZS1vci1jb2xvclxuICAgICksICdtYXQnKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGluY2x1ZGUgdGhlbWluZy5wcml2YXRlLWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLW9yLWNvbG9yLCAnbWF0LWZvY3VzLWluZGljYXRvcnMnKSB7XG4gICAgICBAaWYgaW5zcGVjdGlvbi50aGVtZS1oYXMoJHRoZW1lLW9yLWNvbG9yLCBjb2xvcikge1xuICAgICAgICBAaW5jbHVkZSBzdHJvbmctZm9jdXMtaW5kaWNhdG9ycy1jb2xvcigkdGhlbWUtb3ItY29sb3IpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWRjLXN0cm9uZy1mb2N1cy1pbmRpY2F0b3JzLWNvbG9yKCR0aGVtZS1vci1jb2xvcikge1xuICBAaWYgbWV0YS50eXBlLW9mKCR0aGVtZS1vci1jb2xvcikgPT0gJ2NvbG9yJyB7XG4gICAgQGluY2x1ZGUgY3VzdG9taXplLWZvY3VzLWluZGljYXRvcnMoKFxuICAgICAgICBib3JkZXItY29sb3I6ICR0aGVtZS1vci1jb2xvclxuICAgICksICdtYXQtbWRjJyk7XG4gIH1cbiAgQGVsc2Uge1xuICAgICRib3JkZXItY29sb3I6IGluc3BlY3Rpb24uZ2V0LXRoZW1lLWNvbG9yKCR0aGVtZS1vci1jb2xvciwgcHJpbWFyeSk7XG4gICAgQGluY2x1ZGUgY3VzdG9taXplLWZvY3VzLWluZGljYXRvcnMoKFxuICAgICAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3JcbiAgICApLCAnbWF0LW1kYycpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtc3Ryb25nLWZvY3VzLWluZGljYXRvcnMtdGhlbWUoJHRoZW1lLW9yLWNvbG9yKSB7XG4gIEBpZiBtZXRhLnR5cGUtb2YoJHRoZW1lLW9yLWNvbG9yKSA9PSAnY29sb3InIHtcbiAgICBAaW5jbHVkZSBjdXN0b21pemUtZm9jdXMtaW5kaWNhdG9ycygoXG4gICAgICAgIGJvcmRlci1jb2xvcjogJHRoZW1lLW9yLWNvbG9yXG4gICAgKSwgJ21hdC1tZGMnKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGluY2x1ZGUgdGhlbWluZy5wcml2YXRlLWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoXG4gICAgICAgICR0aGVtZS1vci1jb2xvciwgJ21hdC1tZGMtZm9jdXMtaW5kaWNhdG9ycycpIHtcbiAgICAgIEBpZiBpbnNwZWN0aW9uLnRoZW1lLWhhcygkdGhlbWUtb3ItY29sb3IsIGNvbG9yKSB7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1zdHJvbmctZm9jdXMtaW5kaWNhdG9ycy1jb2xvcigkdGhlbWUtb3ItY29sb3IpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gVGhpcyBtaXhpbiBlbnN1cmVzIGFuIGVsZW1lbnQgc3BhbnMgdG8gZmlsbCB0aGUgbmVhcmVzdCBhbmNlc3RvciB3aXRoIGRlZmluZWQgcG9zaXRpb25pbmcuXG5AbWl4aW4gZmlsbCB7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xufVxuIiwiQHVzZSAnc2Fzczpjb2xvcic7XG5AdXNlICdzYXNzOm1hcCc7XG5AdXNlICdzYXNzOm1ldGEnO1xuXG4vLy8gSW5jbHVkZSBjb250ZW50IHVuZGVyIHRoZSBjdXJyZW50IHNlbGVjdG9yICgmKSBvciB0aGUgZG9jdW1lbnQgcm9vdCBpZiB0aGVyZSBpcyBubyBjdXJyZW50XG4vLy8gc2VsZWN0b3IuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRyb290IFtodG1sXSBUaGUgZGVmYXVsdCByb290IHNlbGVjdG9yIHRvIHVzZSB3aGVuIHRoZXJlIGlzIG5vIGN1cnJlbnQgc2VsZWN0b3IuXG4vLy8gQG91dHB1dCBUaGUgZ2l2ZW4gY29udGVudCB1bmRlciB0aGUgY3VycmVudCBzZWxlY3Rvciwgb3Igcm9vdCBzZWxlY3RvciBpZiB0aGVyZSBpcyBubyBjdXJyZW50XG4vLy8gICAgIHNlbGVjdG9yLlxuLy8vIEBjb250ZW50IENvbnRlbnQgdG8gb3V0cHV0IHVuZGVyIHRoZSBjdXJyZW50IHNlbGVjdG9yLCBvciByb290IHNlbGVjdG9yIGlmIHRoZXJlIGlzIG5vIGN1cnJlbnRcbi8vLyAgICAgc2VsZWN0b3IuXG5AbWl4aW4gY3VycmVudC1zZWxlY3Rvci1vci1yb290KCRyb290OiBodG1sKSB7XG4gIEBpZiAmIHtcbiAgICBAY29udGVudDtcbiAgfVxuICBAZWxzZSB7XG4gICAgI3skcm9vdH0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBIHZlcnNpb24gb2YgdGhlIHN0YW5kYXJkIGBtYXAubWVyZ2VgIGZ1bmN0aW9uIHRoYXQgdGFrZXMgYSB2YXJpYWJsZSBudW1iZXIgb2YgYXJndW1lbnRzLlxuLy8vIEVhY2ggYXJndW1lbnQgaXMgbWVyZ2VkIGludG8gdGhlIGZpbmFsIHJlc3VsdCBmcm9tIGxlZnQgdG8gcmlnaHQuXG4vLy8gQHBhcmFtIHtMaXN0fSAkbWFwcyBUaGUgbWFwcyB0byBjb21iaW5lIHdpdGggbWFwLm1lcmdlXG4vLy8gQHJldHVybiB7TWFwfSBUaGUgY29tYmluZWQgcmVzdWx0IG9mIHN1Y2Nlc3NpdmVseSBjYWxsaW5nIG1hcC5tZXJnZSB3aXRoIGVhY2ggcGFyYW1ldGVyLlxuQGZ1bmN0aW9uIG1lcmdlLWFsbCgkbWFwcy4uLikge1xuICAkcmVzdWx0OiAoKTtcbiAgQGVhY2ggJG1hcCBpbiAkbWFwcyB7XG4gICAgJHJlc3VsdDogbWFwLm1lcmdlKCRyZXN1bHQsICRtYXApO1xuICB9XG4gIEByZXR1cm4gJHJlc3VsdDtcbn1cblxuLy8vIEEgdmVyc2lvbiBvZiB0aGUgc3RhbmRhcmQgYG1hcC5kZWVwLW1lcmdlYCBmdW5jdGlvbiB0aGF0IHRha2VzIGEgdmFyaWFibGUgbnVtYmVyIG9mIGFyZ3VtZW50cy5cbi8vLyBFYWNoIGFyZ3VtZW50IGlzIGRlZXAtbWVyZ2VkIGludG8gdGhlIGZpbmFsIHJlc3VsdCBmcm9tIGxlZnQgdG8gcmlnaHQuXG4vLy8gQHBhcmFtIHtMaXN0fSAkbWFwcyBUaGUgbWFwcyB0byBjb21iaW5lIHdpdGggbWFwLmRlZXAtbWVyZ2Vcbi8vLyBAcmV0dXJuIHtNYXB9IFRoZSBjb21iaW5lZCByZXN1bHQgb2Ygc3VjY2Vzc2l2ZWx5IGNhbGxpbmcgbWFwLmRlZXAtbWVyZ2Ugd2l0aCBlYWNoIHBhcmFtZXRlci5cbkBmdW5jdGlvbiBkZWVwLW1lcmdlLWFsbCgkbWFwcy4uLikge1xuICAkcmVzdWx0OiAoKTtcbiAgQGVhY2ggJG1hcCBpbiAkbWFwcyB7XG4gICAgJHJlc3VsdDogbWFwLmRlZXAtbWVyZ2UoJHJlc3VsdCwgJG1hcCk7XG4gIH1cbiAgQHJldHVybiAkcmVzdWx0O1xufVxuXG4vLy8gQ29lcmNlcyB0aGUgZ2l2ZW4gdmFsdWUgdG8gYSBsaXN0LCBieSBjb252ZXJ0aW5nIGFueSBub24tbGlzdCB2YWx1ZSBpbnRvIGEgc2luZ2xlLWl0ZW0gbGlzdC5cbi8vLyBUaGlzIHNob3VsZCBiZSB1c2VkIHdoZW4gZGVhbGluZyB3aXRoIHVzZXItcGFzc2VkIGxpc3RzIG9mIGFyZ3MgdG8gYXZvaWQgY29uZnVzaW5nIGVycm9ycyxcbi8vLyBzaW5jZSBTYXNzIHRyZWF0cyBgKCR4KWAgYXMgZXF1aXZhbGVudCB0byBgJHhgLlxuLy8vIEBwYXJhbSB7QW55fSAkdmFsdWUgVGhlIHZhbHVlIHRvIGNvZXJjZSB0byBhIGxpc3QuXG4vLy8gQHJldHVybiB7TGlzdH0gVGhlIG9yaWdpbmFsICR2YWx1ZSBpZiBpdCB3YXMgYSBsaXN0LCBvdGhlcndpc2UgYSBzaW5nbGUtaXRlbSBsaXN0IGNvbnRhaW5pbmdcbi8vLyAgICAgJHZhbHVlLlxuQGZ1bmN0aW9uIGNvZXJjZS10by1saXN0KCR2YWx1ZSkge1xuICBAcmV0dXJuIGlmKG1ldGEudHlwZS1vZigkdmFsdWUpICE9ICdsaXN0JywgKCR2YWx1ZSwpLCAkdmFsdWUpO1xufVxuXG4vLy8gQSB2ZXJzaW9uIG9mIHRoZSBTYXNzIGBjb2xvci5jaGFuZ2VgIGZ1bmN0aW9uIHRoYXQgaXMgc2FmZSBvdCB1c2Ugd2l0aCBDU1MgdmFyaWFibGVzLlxuQGZ1bmN0aW9uIHNhZmUtY29sb3ItY2hhbmdlKCRjb2xvciwgJGFyZ3MuLi4pIHtcbiAgJGFyZ3M6IG1ldGEua2V5d29yZHMoJGFyZ3MpO1xuICBAcmV0dXJuIGlmKG1ldGEudHlwZS1vZigkY29sb3IpID09ICdjb2xvcicsIGNvbG9yLmNoYW5nZSgkY29sb3IsICRhcmdzLi4uKSwgJGNvbG9yKTtcbn1cbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAyMCBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5AdXNlICdzYXNzOmxpc3QnO1xuQHVzZSAnc2FzczptYXAnO1xuQHVzZSAnc2FzczptZXRhJztcbkB1c2UgJy4vZ3NzJztcblxuLy8vIFdoZW4gdHJ1ZSwgYWRkIGFuIGFkZGl0aW9uYWwgcHJvcGVydHkvdmFsdWUgZGVjbGFyYXRpb24gYmVmb3JlIGRlY2xhcmF0aW9uc1xuLy8vIHRoYXQgdXNlIGFkdmFuY2VkIGZlYXR1cmVzIHN1Y2ggYXMgY3VzdG9tIHByb3BlcnRpZXMgb3IgQ1NTIGZ1bmN0aW9ucy4gVGhpc1xuLy8vIGFkZHMgZmFsbGJhY2sgc3VwcG9ydCBmb3Igb2xkZXIgYnJvd3NlcnMgc3VjaCBhcyBJRTExIHRoYXQgZG8gbm90IHN1cHBvcnRcbi8vLyB0aGVzZSBmZWF0dXJlcyBhdCB0aGUgY29zdCBvZiBhZGRpdGlvbmFsIENTUy4gU2V0IHRoaXMgdmFyaWFibGUgdG8gZmFsc2UgdG9cbi8vLyBkaXNhYmxlIGdlbmVyYXRpbmcgZmFsbGJhY2sgZGVjbGFyYXRpb25zLlxuJGVuYWJsZS1mYWxsYmFjay1kZWNsYXJhdGlvbnM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBXcml0ZXMgYSBDU1MgcHJvcGVydHkvdmFsdWUgZGVjbGFyYXRpb24uIFRoaXMgbWl4aW4gaXMgdXNlZCB0aHJvdWdob3V0IHRoZVxuLy8vIHRoZW1lIHBhY2thZ2UgZm9yIGNvbnNpc3RlbmN5IGZvciBkeW5hbWljYWxseSBzZXR0aW5nIENTUyBwcm9wZXJ0eSB2YWx1ZXMuXG4vLy9cbi8vLyBUaGlzIG1peGluIG1heSBvcHRpb25hbGx5IHRha2UgYSBmYWxsYmFjayB2YWx1ZS4gRm9yIGFkdmFuY2VkIGZlYXR1cmVzIHN1Y2hcbi8vLyBhcyBjdXN0b20gcHJvcGVydGllcyBvciBDU1MgZnVuY3Rpb25zIGxpa2UgbWluIGFuZCBtYXgsIGEgZmFsbGJhY2sgdmFsdWUgaXNcbi8vLyByZWNvbW1lbmRlZCB0byBzdXBwb3J0IG9sZGVyIGJyb3dzZXJzLlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRwcm9wZXJ0eSAtIFRoZSBDU1MgcHJvcGVydHkgb2YgdGhlIGRlY2xhcmF0aW9uLlxuLy8vIEBwYXJhbSB7Kn0gJHZhbHVlIC0gVGhlIHZhbHVlIG9mIHRoZSBDU1MgZGVjbGFyYXRpb24uIFRoZSB2YWx1ZSBzaG91bGQgYmVcbi8vLyAgICAgcmVzb2x2ZWQgYnkgb3RoZXIgdGhlbWUgZnVuY3Rpb25zIGZpcnN0IChpLmUuIGN1c3RvbSBwcm9wZXJ0eSBNYXBzIGFuZFxuLy8vICAgICBNYXRlcmlhbCB0aGVtZSBrZXlzIGFyZSBub3Qgc3VwcG9ydGVkIGluIHRoaXMgbWl4aW4pLiBJZiB0aGUgdmFsdWUgaXNcbi8vLyAgICAgbnVsbCwgbm8gZGVjbGFyYXRpb25zIHdpbGwgYmUgZW1pdHRlZC5cbi8vLyBAcGFyYW0geyp9ICRmYWxsYmFjayAtIEFuIG9wdGlvbmFsIGZhbGxiYWNrIHZhbHVlIGZvciBvbGRlciBicm93c2Vycy4gSWZcbi8vLyAgICAgcHJvdmlkZWQsIGEgc2Vjb25kIHByb3BlcnR5L3ZhbHVlIGRlY2xhcmF0aW9uIHdpbGwgYmUgYWRkZWQgYmVmb3JlIHRoZVxuLy8vICAgICBtYWluIHByb3BlcnR5L3ZhbHVlIGRlY2xhcmF0aW9uLlxuLy8vIEBwYXJhbSB7TWFwfSAkZ3NzIC0gQW4gb3B0aW9uYWwgTWFwIG9mIEdTUyBhbm5vdGF0aW9ucyB0byBhZGQuXG4vLy8gQHBhcmFtIHtCb29sfSAkaW1wb3J0YW50IC0gSWYgdHJ1ZSwgYWRkIGAhaW1wb3J0YW50YCB0byB0aGUgZGVjbGFyYXRpb24uXG5AbWl4aW4gZGVjbGFyYXRpb24oXG4gICRwcm9wZXJ0eSxcbiAgJHZhbHVlLFxuICAkZmFsbGJhY2stdmFsdWU6IG51bGwsXG4gICRnc3M6ICgpLFxuICAkaW1wb3J0YW50OiBmYWxzZVxuKSB7XG4gIC8vIE5vcm1hbGx5IHNldHRpbmcgYSBudWxsIHZhbHVlIHRvIGEgcHJvcGVydHkgd2lsbCBub3QgZW1pdCBDU1MsIHNvIG1peGluc1xuICAvLyB3b3VsZG4ndCBuZWVkIHRvIGNoZWNrIHRoaXMuIEhvd2V2ZXIsIFNhc3Mgd2lsbCB0aHJvdyBhbiBlcnJvciBpZiB0aGVcbiAgLy8gaW50ZXJwb2xhdGVkIHByb3BlcnR5IGlzIGEgY3VzdG9tIHByb3BlcnR5LlxuICBAaWYgJHZhbHVlICE9IG51bGwge1xuICAgICRpbXBvcnRhbnQtcnVsZTogaWYoJGltcG9ydGFudCwgJyAhaW1wb3J0YW50JywgJycpO1xuXG4gICAgQGlmICRmYWxsYmFjay12YWx1ZSBhbmQgJGVuYWJsZS1mYWxsYmFjay1kZWNsYXJhdGlvbnMge1xuICAgICAgQGluY2x1ZGUgZ3NzLmFubm90YXRlKCRnc3MpO1xuICAgICAgI3skcHJvcGVydHl9OiAjeyRmYWxsYmFjay12YWx1ZX0gI3skaW1wb3J0YW50LXJ1bGV9O1xuXG4gICAgICAvLyBBZGQgQGFsdGVybmF0ZSB0byBhbm5vdGF0aW9ucy5cbiAgICAgICRnc3M6IG1hcC5tZXJnZShcbiAgICAgICAgJGdzcyxcbiAgICAgICAgKFxuICAgICAgICAgIGFsdGVybmF0ZTogdHJ1ZSxcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBnc3MuYW5ub3RhdGUoJGdzcyk7XG4gICAgI3skcHJvcGVydHl9OiAjeyR2YWx1ZX0jeyRpbXBvcnRhbnQtcnVsZX07XG4gIH1cbn1cblxuLy8vIFVucGFja3Mgc2hvcnRoYW5kIHZhbHVlcyBmb3IgQ1NTIHByb3BlcnRpZXMgKGkuZS4gbGlzdHMgb2YgMS0zIHZhbHVlcykuXG4vLy8gSWYgYSBsaXN0IG9mIDQgdmFsdWVzIGlzIGdpdmVuLCBpdCBpcyByZXR1cm5lZCBhcy1pcy5cbi8vL1xuLy8vIEV4YW1wbGVzOlxuLy8vXG4vLy8gdW5wYWNrLXZhbHVlKDRweCkgPT4gNHB4IDRweCA0cHggNHB4XG4vLy8gdW5wYWNrLXZhbHVlKDRweCAycHgpID0+IDRweCAycHggNHB4IDJweFxuLy8vIHVucGFjay12YWx1ZSg0cHggMnB4IDJweCkgPT4gNHB4IDJweCAycHggMnB4XG4vLy8gdW5wYWNrLXZhbHVlKDRweCAycHggMCAycHgpID0+IDRweCAycHggMCAycHhcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyIHwgTWFwIHwgTGlzdH0gJHZhbHVlIC0gTGlzdCBvZiAxIHRvIDQgdmFsdWUgbnVtYmVycy5cbi8vLyBAcmV0dXJuIHtMaXN0fSBhIExpc3Qgb2YgNCB2YWx1ZSBudW1iZXJzLlxuQGZ1bmN0aW9uIHVucGFjay12YWx1ZSgkdmFsdWUpIHtcbiAgQGlmIG1ldGEudHlwZS1vZigkdmFsdWUpID09ICdtYXAnIG9yIGxpc3QubGVuZ3RoKCR2YWx1ZSkgPT0gMSB7XG4gICAgQHJldHVybiAkdmFsdWUgJHZhbHVlICR2YWx1ZSAkdmFsdWU7XG4gIH0gQGVsc2UgaWYgbGlzdC5sZW5ndGgoJHZhbHVlKSA9PSA0IHtcbiAgICBAcmV0dXJuICR2YWx1ZTtcbiAgfSBAZWxzZSBpZiBsaXN0Lmxlbmd0aCgkdmFsdWUpID09IDMge1xuICAgIEByZXR1cm4gbGlzdC5udGgoJHZhbHVlLCAxKSBsaXN0Lm50aCgkdmFsdWUsIDIpIGxpc3QubnRoKCR2YWx1ZSwgMylcbiAgICAgIGxpc3QubnRoKCR2YWx1ZSwgMik7XG4gIH0gQGVsc2UgaWYgbGlzdC5sZW5ndGgoJHZhbHVlKSA9PSAyIHtcbiAgICBAcmV0dXJuIGxpc3QubnRoKCR2YWx1ZSwgMSkgbGlzdC5udGgoJHZhbHVlLCAyKSBsaXN0Lm50aCgkdmFsdWUsIDEpXG4gICAgICBsaXN0Lm50aCgkdmFsdWUsIDIpO1xuICB9XG5cbiAgQGVycm9yIFwiSW52YWxpZCBDU1MgcHJvcGVydHkgdmFsdWU6ICcjeyR2YWx1ZX0nIGlzIG1vcmUgdGhhbiA0IHZhbHVlc1wiO1xufVxuIiwiQHVzZSAnc2Fzczpjb2xvcic7XG5AdXNlICdzYXNzOm1hcCc7XG5AdXNlICcuLi9jb3JlL3Rva2Vucy9tMi9tYXQvZGF0ZXBpY2tlcicgYXMgdG9rZW5zLW1hdC1kYXRlcGlja2VyO1xuQHVzZSAnLi4vY29yZS90aGVtaW5nL3RoZW1pbmcnO1xuQHVzZSAnLi4vY29yZS90aGVtaW5nL2luc3BlY3Rpb24nO1xuQHVzZSAnLi4vY29yZS90b2tlbnMvdG9rZW4tdXRpbHMnO1xuQHVzZSAnLi4vY29yZS9zdHlsZS9zYXNzLXV0aWxzJztcbkB1c2UgJy4uL2NvcmUvdHlwb2dyYXBoeS90eXBvZ3JhcGh5JztcbkB1c2UgJy4uL2J1dHRvbi9pY29uLWJ1dHRvbi10aGVtZSc7XG5cbi8vIFRPRE8oY3Jpc2JldG8pOiB0aGVzZSB2YXJpYWJsZXMgYXJlbid0IHVzZWQgYW55bW9yZSBhbmQgc2hvdWxkIGJlIHJlbW92ZWQuXG4kc2VsZWN0ZWQtdG9kYXktYm94LXNoYWRvdy13aWR0aDogMXB4O1xuJHNlbGVjdGVkLWZhZGUtYW1vdW50OiAwLjY7XG4kcmFuZ2UtZmFkZS1hbW91bnQ6IDAuMjtcbiR0b2RheS1mYWRlLWFtb3VudDogMC4yO1xuJGNhbGVuZGFyLWJvZHktZm9udC1zaXplOiAxM3B4ICFkZWZhdWx0O1xuJGNhbGVuZGFyLXdlZWtkYXktdGFibGUtZm9udC1zaXplOiAxMXB4ICFkZWZhdWx0O1xuXG5AbWl4aW4gX2NhbGVuZGFyLWNvbG9yKCR0aGVtZSwgJHBhbGV0dGUtbmFtZSkge1xuICAkcGFsZXR0ZS1jb2xvcjogaW5zcGVjdGlvbi5nZXQtdGhlbWUtY29sb3IoJHRoZW1lLCAkcGFsZXR0ZS1uYW1lKTtcbiAgJHJhbmdlLWNvbG9yOiB0b2tlbnMtbWF0LWRhdGVwaWNrZXIucHJpdmF0ZS1nZXQtcmFuZ2UtYmFja2dyb3VuZC1jb2xvcigkcGFsZXR0ZS1jb2xvcik7XG4gICRyYW5nZS10b2tlbnM6IHRva2Vucy1tYXQtZGF0ZXBpY2tlci5nZXQtcmFuZ2UtY29sb3ItdG9rZW5zKCRyYW5nZS1jb2xvcik7XG4gICRjYWxlbmRhci10b2tlbnM6XG4gICAgdG9rZW5zLW1hdC1kYXRlcGlja2VyLnByaXZhdGUtZ2V0LWNhbGVuZGFyLWNvbG9yLXBhbGV0dGUtY29sb3ItdG9rZW5zKCR0aGVtZSwgJHBhbGV0dGUtbmFtZSk7XG5cbiAgQGluY2x1ZGUgdG9rZW4tdXRpbHMuY3JlYXRlLXRva2VuLXZhbHVlcyh0b2tlbnMtbWF0LWRhdGVwaWNrZXIuJHByZWZpeCxcbiAgICBtYXAubWVyZ2UoJGNhbGVuZGFyLXRva2VucywgJHJhbmdlLXRva2VucykpO1xufVxuXG5AbWl4aW4gYmFzZSgkdGhlbWUpIHt9XG5cbkBtaXhpbiBjb2xvcigkdGhlbWUpIHtcbiAgQGluY2x1ZGUgc2Fzcy11dGlscy5jdXJyZW50LXNlbGVjdG9yLW9yLXJvb3QoKSB7XG4gICAgQGluY2x1ZGUgdG9rZW4tdXRpbHMuY3JlYXRlLXRva2VuLXZhbHVlcyh0b2tlbnMtbWF0LWRhdGVwaWNrZXIuJHByZWZpeCxcbiAgICAgIHRva2Vucy1tYXQtZGF0ZXBpY2tlci5nZXQtY29sb3ItdG9rZW5zKCR0aGVtZSkpO1xuICB9XG5cbiAgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQge1xuICAgICYubWF0LWFjY2VudCB7XG4gICAgICBAaW5jbHVkZSBfY2FsZW5kYXItY29sb3IoJHRoZW1lLCBhY2NlbnQpO1xuICAgIH1cblxuICAgICYubWF0LXdhcm4ge1xuICAgICAgQGluY2x1ZGUgX2NhbGVuZGFyLWNvbG9yKCR0aGVtZSwgd2Fybik7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1kYXRlcGlja2VyLXRvZ2dsZS1hY3RpdmUge1xuICAgICYubWF0LWFjY2VudCB7XG4gICAgICAkYWNjZW50LXRva2VuczpcbiAgICAgICAgdG9rZW5zLW1hdC1kYXRlcGlja2VyLnByaXZhdGUtZ2V0LXRvZ2dsZS1jb2xvci1wYWxldHRlLWNvbG9yLXRva2VucygkdGhlbWUsIGFjY2VudCk7XG4gICAgICBAaW5jbHVkZSB0b2tlbi11dGlscy5jcmVhdGUtdG9rZW4tdmFsdWVzKHRva2Vucy1tYXQtZGF0ZXBpY2tlci4kcHJlZml4LCAkYWNjZW50LXRva2Vucyk7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiB7XG4gICAgICAkd2Fybi10b2tlbnM6XG4gICAgICAgIHRva2Vucy1tYXQtZGF0ZXBpY2tlci5wcml2YXRlLWdldC10b2dnbGUtY29sb3ItcGFsZXR0ZS1jb2xvci10b2tlbnMoJHRoZW1lLCB3YXJuKTtcbiAgICAgIEBpbmNsdWRlIHRva2VuLXV0aWxzLmNyZWF0ZS10b2tlbi12YWx1ZXModG9rZW5zLW1hdC1kYXRlcGlja2VyLiRwcmVmaXgsICR3YXJuLXRva2Vucyk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiB0eXBvZ3JhcGh5KCR0aGVtZSkge1xuICBAaW5jbHVkZSBzYXNzLXV0aWxzLmN1cnJlbnQtc2VsZWN0b3Itb3Itcm9vdCgpIHtcbiAgICBAaW5jbHVkZSB0b2tlbi11dGlscy5jcmVhdGUtdG9rZW4tdmFsdWVzKHRva2Vucy1tYXQtZGF0ZXBpY2tlci4kcHJlZml4LFxuICAgICAgdG9rZW5zLW1hdC1kYXRlcGlja2VyLmdldC10eXBvZ3JhcGh5LXRva2VucygkdGhlbWUpKTtcbiAgfVxufVxuXG5AbWl4aW4gZGF0ZS1yYW5nZS1jb2xvcnMoXG4gICRyYW5nZS1jb2xvcixcbiAgJGNvbXBhcmlzb24tY29sb3I6IHRva2Vucy1tYXQtZGF0ZXBpY2tlci4kcHJpdmF0ZS1kZWZhdWx0LWNvbXBhcmlzb24tY29sb3IsXG4gICRvdmVybGFwLWNvbG9yOiB0b2tlbnMtbWF0LWRhdGVwaWNrZXIuJHByaXZhdGUtZGVmYXVsdC1vdmVybGFwLWNvbG9yLFxuICAkb3ZlcmxhcC1zZWxlY3RlZC1jb2xvcjpcbiAgICB0b2tlbnMtbWF0LWRhdGVwaWNrZXIucHJpdmF0ZS1nZXQtZGVmYXVsdC1vdmVybGFwLXNlbGVjdGVkLWNvbG9yKCRvdmVybGFwLWNvbG9yKSkge1xuICAkdG9rZW5zOiB0b2tlbnMtbWF0LWRhdGVwaWNrZXIuZ2V0LXJhbmdlLWNvbG9yLXRva2VucyhcbiAgICAkcmFuZ2UtY29sb3I6ICRyYW5nZS1jb2xvcixcbiAgICAkY29tcGFyaXNvbi1jb2xvcjogJGNvbXBhcmlzb24tY29sb3IsXG4gICAgJG92ZXJsYXAtY29sb3I6ICRvdmVybGFwLWNvbG9yLFxuICAgICRvdmVybGFwLXNlbGVjdGVkLWNvbG9yOiAkb3ZlcmxhcC1zZWxlY3RlZC1jb2xvcixcbiAgKTtcblxuICBAaW5jbHVkZSBzYXNzLXV0aWxzLmN1cnJlbnQtc2VsZWN0b3Itb3Itcm9vdCgpIHtcbiAgICBAaW5jbHVkZSB0b2tlbi11dGlscy5jcmVhdGUtdG9rZW4tdmFsdWVzKHRva2Vucy1tYXQtZGF0ZXBpY2tlci4kcHJlZml4LCAkdG9rZW5zKTtcbiAgfVxufVxuXG5AbWl4aW4gZGVuc2l0eSgkdGhlbWUpIHtcbiAgLy8gVE9ETyhjcmlzYmV0byk6IG1vdmUgdGhpcyBpbnRvIHRoZSBzdHJ1Y3R1cmFsIHN0eWxlc1xuICAvLyBvbmNlIHRoZSBpY29uIGJ1dHRvbiBkZW5zaXR5IGlzIHN3aXRjaGVkIHRvIHRva2Vucy5cblxuICAvLyBSZWdhcmRsZXNzIG9mIHRoZSB1c2VyLXBhc3NlZCBkZW5zaXR5LCB3ZSB3YW50IHRoZSBjYWxlbmRhclxuICAvLyBwcmV2aW91cy9uZXh0IGJ1dHRvbnMgdG8gcmVtYWluIGF0IGRlbnNpdHkgLTJcbiAgLm1hdC1jYWxlbmRhci1jb250cm9scyB7XG4gICAgQGluY2x1ZGUgaWNvbi1idXR0b24tdGhlbWUuZGVuc2l0eSgtMik7XG4gIH1cbn1cblxuQG1peGluIHRoZW1lKCR0aGVtZSkge1xuICBAaW5jbHVkZSB0aGVtaW5nLnByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtZGF0ZXBpY2tlcicpIHtcbiAgICBAaW5jbHVkZSBiYXNlKCR0aGVtZSk7XG4gICAgQGlmIGluc3BlY3Rpb24udGhlbWUtaGFzKCR0aGVtZSwgY29sb3IpIHtcbiAgICAgIEBpbmNsdWRlIGNvbG9yKCR0aGVtZSk7XG4gICAgfVxuICAgIEBpZiBpbnNwZWN0aW9uLnRoZW1lLWhhcygkdGhlbWUsIGRlbnNpdHkpIHtcbiAgICAgIEBpbmNsdWRlIGRlbnNpdHkoJHRoZW1lKTtcbiAgICB9XG4gICAgQGlmIGluc3BlY3Rpb24udGhlbWUtaGFzKCR0aGVtZSwgdHlwb2dyYXBoeSkge1xuICAgICAgQGluY2x1ZGUgdHlwb2dyYXBoeSgkdGhlbWUpO1xuICAgIH1cbiAgfVxufVxuIiwiQHVzZSAnc2FzczptYXRoJztcbkB1c2UgJ0BtYXRlcmlhbC9kZW5zaXR5L2Z1bmN0aW9ucycgYXMgbWRjLWRlbnNpdHktZnVuY3Rpb25zO1xuQHVzZSAnQG1hdGVyaWFsL2ljb24tYnV0dG9uL2ljb24tYnV0dG9uLXRoZW1lJyBhcyBtZGMtaWNvbi1idXR0b24tdGhlbWU7XG5AdXNlICcuLi9jb3JlL3Rva2Vucy9tMi9tZGMvaWNvbi1idXR0b24nIGFzIHRva2Vucy1tZGMtaWNvbi1idXR0b247XG5cbkB1c2UgJy4vYnV0dG9uLXRoZW1lLXByaXZhdGUnO1xuQHVzZSAnLi4vY29yZS90aGVtaW5nL3RoZW1pbmcnO1xuQHVzZSAnLi4vY29yZS90aGVtaW5nL2luc3BlY3Rpb24nO1xuXG4kX2ljb24tc2l6ZTogMjRweDtcblxuLy8gVE9ETyhjcmlzYmV0byk6IG1vdmUgdGhlc2UgaW50byB0b2tlbnNcbkBtaXhpbiBfcmlwcGxlLWNvbG9yKCRjb2xvcikge1xuICAtLW1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlLWNvbG9yOiAjeyRjb2xvcn07XG4gIC0tbWF0LW1kYy1idXR0b24tcmlwcGxlLWNvbG9yOiAje3JnYmEoJGNvbG9yLCAwLjEpfTtcbn1cblxuQG1peGluIGJhc2UoJHRoZW1lKSB7XG4gIC8vIFRPRE8obW1hbGVyYmEpOiBNb3ZlIGljb24gYnV0dG9uIGJhc2UgdG9rZW5zIGhlcmVcbn1cblxuQG1peGluIGNvbG9yKCR0aGVtZSkge1xuICAkY29sb3ItdG9rZW5zOiB0b2tlbnMtbWRjLWljb24tYnV0dG9uLmdldC1jb2xvci10b2tlbnMoJHRoZW1lKTtcbiAgJGlzLWRhcms6IGluc3BlY3Rpb24uZ2V0LXRoZW1lLXR5cGUoJHRoZW1lKSA9PSBkYXJrO1xuXG4gIC5tYXQtbWRjLWljb24tYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBidXR0b24tdGhlbWUtcHJpdmF0ZS5yaXBwbGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgZmFsc2UpO1xuICAgIEBpbmNsdWRlIG1kYy1pY29uLWJ1dHRvbi10aGVtZS50aGVtZSgkY29sb3ItdG9rZW5zKTtcbiAgICBAaW5jbHVkZSBfcmlwcGxlLWNvbG9yKGlmKCRpcy1kYXJrLCAjZmZmLCAjMDAwKSk7XG5cbiAgICAmLm1hdC1wcmltYXJ5IHtcbiAgICAgIEBpbmNsdWRlIF9yaXBwbGUtY29sb3IoaW5zcGVjdGlvbi5nZXQtdGhlbWUtY29sb3IoJHRoZW1lLCBwcmltYXJ5KSk7XG4gICAgICBAaW5jbHVkZSBtZGMtaWNvbi1idXR0b24tdGhlbWUudGhlbWUoXG4gICAgICAgIHRva2Vucy1tZGMtaWNvbi1idXR0b24ucHJpdmF0ZS1nZXQtY29sb3ItcGFsZXR0ZS1jb2xvci10b2tlbnMoJHRoZW1lLCBwcmltYXJ5KSk7XG4gICAgfVxuXG4gICAgJi5tYXQtYWNjZW50IHtcbiAgICAgIEBpbmNsdWRlIF9yaXBwbGUtY29sb3IoaW5zcGVjdGlvbi5nZXQtdGhlbWUtY29sb3IoJHRoZW1lLCBhY2NlbnQpKTtcbiAgICAgIEBpbmNsdWRlIG1kYy1pY29uLWJ1dHRvbi10aGVtZS50aGVtZShcbiAgICAgICAgdG9rZW5zLW1kYy1pY29uLWJ1dHRvbi5wcml2YXRlLWdldC1jb2xvci1wYWxldHRlLWNvbG9yLXRva2VucygkdGhlbWUsIGFjY2VudCkpO1xuICAgIH1cblxuICAgICYubWF0LXdhcm4ge1xuICAgICAgQGluY2x1ZGUgX3JpcHBsZS1jb2xvcihpbnNwZWN0aW9uLmdldC10aGVtZS1jb2xvcigkdGhlbWUsIHdhcm4pKTtcbiAgICAgIEBpbmNsdWRlIG1kYy1pY29uLWJ1dHRvbi10aGVtZS50aGVtZShcbiAgICAgICAgdG9rZW5zLW1kYy1pY29uLWJ1dHRvbi5wcml2YXRlLWdldC1jb2xvci1wYWxldHRlLWNvbG9yLXRva2VucygkdGhlbWUsIHdhcm4pKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHR5cG9ncmFwaHkoJHRoZW1lKSB7fVxuXG5AbWl4aW4gZGVuc2l0eSgkdGhlbWUpIHtcbiAgJGRlbnNpdHktc2NhbGU6IGluc3BlY3Rpb24uZ2V0LXRoZW1lLWRlbnNpdHkoJHRoZW1lKTtcbiAgLy8gTWFudWFsbHkgYXBwbHkgdGhlIGV4cGVjdGVkIGRlbnNpdHkgdGhlbWluZywgYW5kIGluY2x1ZGUgdGhlIHBhZGRpbmdcbiAgLy8gYXMgaXQgd2FzIGFwcGxpZWQgYmVmb3JlXG4gICRjYWxjdWxhdGVkLXNpemU6IG1kYy1kZW5zaXR5LWZ1bmN0aW9ucy5wcm9wLXZhbHVlKFxuICAgICRkZW5zaXR5LWNvbmZpZzogKFxuICAgICAgc2l6ZTogKFxuICAgICAgICBkZWZhdWx0OiA0OHB4LFxuICAgICAgICBtYXhpbXVtOiA0OHB4LFxuICAgICAgICBtaW5pbXVtOiAyOHB4LFxuICAgICAgKSxcbiAgICApLFxuICAgICRkZW5zaXR5LXNjYWxlOiAkZGVuc2l0eS1zY2FsZSxcbiAgICAkcHJvcGVydHktbmFtZTogc2l6ZSxcbiAgKTtcblxuICAvLyBVc2UgYG1hdC1tZGMtYnV0dG9uLWJhc2VgIHRvIGluY3JlYXNlIHRoZSBzcGVjaWZpY2l0eSBvdmVyIHRoZSBidXR0b24ncyBzdHJ1Y3R1cmFsIHN0eWxlcy5cbiAgLm1hdC1tZGMtaWNvbi1idXR0b24ubWF0LW1kYy1idXR0b24tYmFzZSB7XG4gICAgLy8gTWF0Y2ggdGhlIHN0eWxlcyB0aGF0IHVzZWQgdG8gYmUgcHJlc2VudC4gVGhpcyBpcyBuZWNlc3NhcnkgZm9yIGJhY2t3YXJkc1xuICAgIC8vIGNvbXBhdCB0byBtYXRjaCB0aGUgcHJldmlvdXMgaW1wbGVtZW50YXRpb25zIHNlbGVjdG9yIGNvdW50ICh0d28gY2xhc3NlcykuXG4gICAgQGluY2x1ZGUgbWRjLWljb24tYnV0dG9uLXRoZW1lLnRoZW1lKChcbiAgICAgIHN0YXRlLWxheWVyLXNpemU6ICRjYWxjdWxhdGVkLXNpemUsXG4gICAgKSk7XG5cbiAgICAvLyBUT0RPOiBTd2l0Y2ggY2FsY3VsYXRlZC1zaXplIHRvIFwidmFyKC0tbWRjLWljb24tYnV0dG9uLXN0YXRlLWxheWVyLXNpemUpXCJcbiAgICAvLyBDdXJyZW50bHkgZmFpbHMgdmFsaWRhdGlvbiBiZWNhdXNlIHRoZSB2YXJpYWJsZSBpcyBcInVuZGVmaW5lZFwiXG4gICAgLy8gaW4gdGhlIHNhc3Mgc3RhY2suXG4gICAgLy8gVE9ETzogU3dpdGNoIGljb24tc2l6ZSB0byBcInZhcigtLW1kYy1pY29uLWJ1dHRvbi1pY29uLXNpemUpXCIuIEN1cnJlbnRseVxuICAgIC8vIGZhaWxzIHZhbGlkYXRpb24gYmVjYXVzZSB0aGUgdmFyaWFibGUgaXMgXCJ1bmRlZmluZWRcIiBpbiB0aGUgc2FzcyBzdGFjay5cbiAgICB3aWR0aDogdmFyKC0tbWRjLWljb24tYnV0dG9uLXN0YXRlLWxheWVyLXNpemUpO1xuICAgIGhlaWdodDogdmFyKC0tbWRjLWljb24tYnV0dG9uLXN0YXRlLWxheWVyLXNpemUpO1xuICAgIHBhZGRpbmc6IG1hdGguZGl2KCRjYWxjdWxhdGVkLXNpemUgLSAkX2ljb24tc2l6ZSwgMik7XG5cbiAgICBAaW5jbHVkZSBidXR0b24tdGhlbWUtcHJpdmF0ZS50b3VjaC10YXJnZXQtZGVuc2l0eSgkZGVuc2l0eS1zY2FsZSk7XG4gIH1cbn1cblxuQG1peGluIHRoZW1lKCR0aGVtZSkge1xuICBAaW5jbHVkZSB0aGVtaW5nLnByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtaWNvbi1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgYmFzZSgkdGhlbWUpO1xuICAgIEBpZiBpbnNwZWN0aW9uLnRoZW1lLWhhcygkdGhlbWUsIGNvbG9yKSB7XG4gICAgICBAaW5jbHVkZSBjb2xvcigkdGhlbWUpO1xuICAgIH1cbiAgICBAaWYgaW5zcGVjdGlvbi50aGVtZS1oYXMoJHRoZW1lLCBkZW5zaXR5KSB7XG4gICAgICBAaW5jbHVkZSBkZW5zaXR5KCR0aGVtZSk7XG4gICAgfVxuICAgIEBpZiBpbnNwZWN0aW9uLnRoZW1lLWhhcygkdGhlbWUsIHR5cG9ncmFwaHkpIHtcbiAgICAgIEBpbmNsdWRlIHR5cG9ncmFwaHkoJHRoZW1lKTtcbiAgICB9XG4gIH1cbn1cbiIsIkB1c2UgJ3Nhc3M6bWFwJztcbkB1c2UgJ0BtYXRlcmlhbC9yaXBwbGUvcmlwcGxlLXRoZW1lJyBhcyBtZGMtcmlwcGxlLXRoZW1lO1xuQHVzZSAnQG1hdGVyaWFsL3RoZW1lL3RoZW1lLWNvbG9yJyBhcyBtZGMtdGhlbWUtY29sb3I7XG5cbkB1c2UgJy4uL2NvcmUvbWRjLWhlbHBlcnMvbWRjLWhlbHBlcnMnO1xuQHVzZSAnLi4vY29yZS90aGVtaW5nL2luc3BlY3Rpb24nO1xuXG5AbWl4aW4gX3JpcHBsZS1jb2xvcigkY29sb3IpIHtcbiAgLS1tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZS1jb2xvcjogI3skY29sb3J9O1xuICAtLW1hdC1tZGMtYnV0dG9uLXJpcHBsZS1jb2xvcjogI3tyZ2JhKCRjb2xvciwgMC4xKX07XG59XG5cbkBtaXhpbiByaXBwbGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJGlzLWZpbGxlZCkge1xuICAkb3BhY2l0aWVzOiBpZihpbnNwZWN0aW9uLmdldC10aGVtZS10eXBlKCR0aGVtZSkgPT0gZGFyayxcbiAgICBtZGMtcmlwcGxlLXRoZW1lLiRsaWdodC1pbmstb3BhY2l0aWVzLCBtZGMtcmlwcGxlLXRoZW1lLiRkYXJrLWluay1vcGFjaXRpZXMpO1xuXG4gIC8vIElkZWFsbHkgdGhlc2Ugc3R5bGVzIHdvdWxkIGJlIHN0cnVjdHVyYWwsIGJ1dCBNREMgYmFzZXMgc29tZSBvZiB0aGUgb3BhY2l0aWVzIG9uIHRoZSB0aGVtZS5cbiAgJjpob3ZlciAubWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGU6OmJlZm9yZSB7XG4gICAgb3BhY2l0eTogbWFwLmdldCgkb3BhY2l0aWVzLCBob3Zlcik7XG4gIH1cblxuICAmLmNkay1wcm9ncmFtLWZvY3VzZWQsXG4gICYuY2RrLWtleWJvYXJkLWZvY3VzZWQge1xuICAgIC5tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZTo6YmVmb3JlIHtcbiAgICAgIG9wYWNpdHk6IG1hcC5nZXQoJG9wYWNpdGllcywgZm9jdXMpO1xuICAgIH1cbiAgfVxuXG4gICY6YWN0aXZlIC5tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZTo6YmVmb3JlIHtcbiAgICBvcGFjaXR5OiBtYXAuZ2V0KCRvcGFjaXRpZXMsIHByZXNzKTtcbiAgfVxuXG4gIEBpbmNsdWRlIF9yaXBwbGUtY29sb3IobWRjLXRoZW1lLWNvbG9yLnByb3AtdmFsdWUob24tc3VyZmFjZSkpO1xuXG4gICYubWF0LXByaW1hcnkge1xuICAgIEBpbmNsdWRlIF9yaXBwbGUtY29sb3IobWRjLXRoZW1lLWNvbG9yLnByb3AtdmFsdWUoaWYoJGlzLWZpbGxlZCwgb24tcHJpbWFyeSwgcHJpbWFyeSkpKTtcbiAgfVxuXG4gICYubWF0LWFjY2VudCB7XG4gICAgQGluY2x1ZGUgX3JpcHBsZS1jb2xvcihtZGMtdGhlbWUtY29sb3IucHJvcC12YWx1ZShpZigkaXMtZmlsbGVkLCBvbi1zZWNvbmRhcnksIHNlY29uZGFyeSkpKTtcbiAgfVxuXG4gICYubWF0LXdhcm4ge1xuICAgIEBpbmNsdWRlIF9yaXBwbGUtY29sb3IobWRjLXRoZW1lLWNvbG9yLnByb3AtdmFsdWUoaWYoJGlzLWZpbGxlZCwgb24tZXJyb3IsIGVycm9yKSkpO1xuICB9XG59XG5cbi8vIFdyYXBzIHRoZSBjb250ZW50IHN0eWxlIGluIGEgc2VsZWN0b3IgZm9yIHRoZSBkaXNhYmxlZCBzdGF0ZS5cbi8vIE1EQyBhZGRzIHRoZW1lIGNvbG9yIGJ5IHVzaW5nIDpub3QoOmRpc2FibGVkKSwgc28ganVzdCB1c2luZyBbZGlzYWJsZWRdIG9uY2Ugd2lsbCBub3Rcbi8vIG92ZXJyaWRlIHRoaXMsIG5laXRoZXIgd2lsbCBpdCBhcHBseSB0byBhbmNob3IgdGFncy4gVGhpcyBuZWVkcyB0byBvdmVycmlkZSB0aGVcbi8vIHByZXZpb3VzbHkgc2V0IHRoZW1lIGNvbG9yLCBzbyBpdCBtdXN0IGJlIG9yZGVyZWQgYWZ0ZXIgdGhlIHRoZW1lIHN0eWxlcy5cbi8vIFRPRE8oYW5kcmV3c2VndWluKTogRGlzY3VzcyB3aXRoIHRoZSBNREMgdGVhbSB0byBzZWUgaWYgd2UgY2FuIGF2b2lkIHRoZSA6bm90KDpkaXNhYmxlZCkgYnlcbi8vIG1hbnVhbGx5IHN0eWxpbmcgZGlzYWJsZWQgYnV0dG9ucyB3aXRoIGEgW2Rpc2FibGVkXSBzZWxlY3Rvci5cbkBtaXhpbiBhcHBseS1kaXNhYmxlZC1zdHlsZSgpIHtcbiAgJltkaXNhYmxlZF1bZGlzYWJsZWRdIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBIaWRlcyB0aGUgdG91Y2ggdGFyZ2V0IG9uIGxvd2VyIGRlbnNpdGllcy5cbkBtaXhpbiB0b3VjaC10YXJnZXQtZGVuc2l0eSgkc2NhbGUpIHtcbiAgQGluY2x1ZGUgbWRjLWhlbHBlcnMuaWYtdG91Y2gtdGFyZ2V0cy11bnN1cHBvcnRlZCgkc2NhbGUpIHtcbiAgICAubWF0LW1kYy1idXR0b24tdG91Y2gtdGFyZ2V0IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG4iLCIubWF0LWNhbGVuZGFyIHtcbiAgICBmb250LXNpemU6IHNtYWxsICFpbXBvcnRhbnQ7XG4gICAgZm9udC1mYW1pbHk6IHYoZXVpLWJhc2UtZm9udC1mYW1pbHkpICFpbXBvcnRhbnQ7XG5cbiAgICAmLm1hdC1jYWxlbmRhci15ZWFyIHtcbiAgICAgICAgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvLyBNQVRFUklBTCBEcmFnICYgRHJvcCBvdmVycmlkZXNcbi5jZGstZHJhZy1oYW5kbGUge1xuICAgIGN1cnNvcjogbW92ZSAhaW1wb3J0YW50O1xufVxuXG4uY2RrLWRyb3AtbGlzdCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtaW4td2lkdGg6IDEwMCU7XG5cbiAgICAmOm5vdCguY2RrLWRyb3AtbGlzdC1kaXNhYmxlZCkge1xuICAgICAgICBtaW4taGVpZ2h0OiB2KGV1aS1iYXNlLXNwYWNpbmcteGwpO1xuICAgIH1cbn1cblxuLy8gQW5pbWF0ZSBpdGVtcyBhcyB0aGV5J3JlIGJlaW5nIHNvcnRlZFxuLmNkay1kcm9wLWxpc3QtZHJhZ2dpbmcgLmNkay1kcmFnIHtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjUwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7XG59XG5cbi8vIEFuaW1hdGUgYW4gaXRlbSB0aGF0IGhhcyBiZWVuIGRyb3BwZWRcbi5jZGstZHJhZy1hbmltYXRpbmcge1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAzMDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTtcbn1cblxuLy8gR3JhYmJlZCBlbGVtZW50XG4uY2RrLWRyYWctcHJldmlldyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7ICAvLyB2KGV1aS1iYXNlLWNvbG9yLXdoaXRlKTtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGN1cnNvcjogZ3JhYiAhaW1wb3J0YW50O1xuICAgIGRpc3BsYXk6IHRhYmxlOyAgICAgLy8gdHJpY2sgdG8gZ2V0IHRoZSBmdWxsIHJvdyB3aWR0aFxuICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICAgIG9wYWNpdHk6IDE7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uY2RrLWRyYWctZHJhZ2dpbmcge1xuICAgIG9wYWNpdHk6IDE7XG59XG5cbi5jZGstZHJhZy1wbGFjZWhvbGRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgb3BhY2l0eTogMC4zNTtcblxuICAgICY6aG92ZXIge1xuICAgICAgICBvdXRsaW5lOiAycHggZGFzaGVkIHYoZXVpLWJhc2UtY29sb3ItZ3JleS0zNSk7XG4gICAgICAgIG91dGxpbmUtb2Zmc2V0OiAycHg7XG4gICAgfVxufVxuIiwiLy8gRGlzYWJsZSBnbG9iYWwgc2Nyb2xsYmFycyAodXNlZCBpbiBmdWxsIHNjcmVlbiBldWktZGlhbG9nIGZvciBleGFtcGxlKVxuLmNkay1nbG9iYWwtc2Nyb2xsYmxvY2sge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBvdmVyZmxvdy15OiB2aXNpYmxlOyAgICAgLy8gTWF0ZXJpYWwgZGVmYXVsdDogc2Nyb2xsXG4gICAgd2lkdGg6IDEwMCU7XG4gICAgQGluY2x1ZGUgZXVpLXNjcm9sbGJhcnM7XG4gICAgbGVmdDogMCAhaW1wb3J0YW50O1xufVxuQGluY2x1ZGUgbWVkaWEoJGV1aS1ia3AtbW9iaWxlKSB7XG4gICAgLmNkay1nbG9iYWwtc2Nyb2xsYmxvY2sge1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBAaW5jbHVkZSBldWktc2Nyb2xsYmFycztcbiAgICB9XG59XG4iLCJAbWl4aW4gZXVpLXNjcm9sbGJhcnMoICRzaXplOiA4cHgsICRmb3JlZ3JvdW5kLWNvbG9yOiB2KGV1aS1iYXNlLWNvbG9yLWdyZXktMjApLCAkYmFja2dyb3VuZC1jb2xvcjogdihldWktYmFzZS1jb2xvci1ncmV5LTUpLCAkYm9yZGVyLXJhZGl1czogNXJlbSwgJHN0YXRlOiBhY3RpdmUgKSB7XG4gICAgJjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgICAgICBkaXNwbGF5OiBpbmhlcml0O1xuICAgICAgICBoZWlnaHQ6ICRzaXplOyAgICAgIC8vIGhvcml6b250YWwgc2Nyb2xsXG4gICAgICAgIHdpZHRoOiAkc2l6ZTsgICAgICAgLy8gdmVydGljYWwgc2Nyb2xsXG4gICAgICAgIC8vIHotaW5kZXg6IHYoZXVpLWJhc2Utei1pbmRleC1oaWdobGlnaHRlZCk7ICAgICAgICAvLyBzaG91bGQgYmUgd2hlbiBpbiBlZGl0aW9uIG1vZGVcbiAgICAgICAgQGlmICgkc3RhdGUgPT0gYWN0aXZlKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgICAgfVxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRoaXMgaXMgdGhlIHNjcm9sbGluZyBiYXJcbiAgICAmOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gICAgICAgIEBpZiAoJHN0YXRlID09IGFjdGl2ZSkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGZvcmVncm91bmQtY29sb3I7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdihldWktYmFzZS1jb2xvci1ncmV5LTM1KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRoaXMgaXMgdGhlIHNjcm9sbCBjb250YWluZXJcbiAgICAmOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gICAgICAgIEBpZiAoJHN0YXRlID09IGFjdGl2ZSkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtY29sb3I7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICB9XG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICB9XG4gICAgfVxufVxuQG1peGluIGV1aS1zY3JvbGxiYXJzLWluYWN0aXZlKCRzaXplOiA4cHgpIHtcbiAgICAmOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBkaXNwbGF5OiBpbmhlcml0O1xuICAgICAgICBoZWlnaHQ6ICRzaXplOyAgICAgIC8vIGhvcml6b250YWwgc2Nyb2xsXG4gICAgICAgIHdpZHRoOiAkc2l6ZTsgICAgICAgLy8gdmVydGljYWwgc2Nyb2xsXG4gICAgfVxuXG4gICAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB9XG5cbiAgICAmOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIH1cbn1cbiIsIiRkZWZhdWx0LWZlYXR1cmU6IFwibWluLXdpZHRoXCI7XG5AbWl4aW4gbWVkaWEoJHF1ZXJ5OiAkZmVhdHVyZSAkdmFsdWUgJGNvbHVtbnMpIHtcbiAgICBAaWYgbGVuZ3RoKCRxdWVyeSkgPT0gMSB7XG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kICgkZGVmYXVsdC1mZWF0dXJlOiBudGgoJHF1ZXJ5LCAxKSkge1xuICAgICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgICAkbG9vcC10bzogbGVuZ3RoKCRxdWVyeSk7XG4gICAgICAgICRtZWRpYS1xdWVyeTogXCJzY3JlZW4gYW5kIFwiO1xuICAgICAgICBAaWYgaXMtbm90KGlzLWV2ZW4obGVuZ3RoKCRxdWVyeSkpKSB7XG4gICAgICAgICAgICAkbG9vcC10bzogJGxvb3AtdG8gLSAxO1xuICAgICAgICB9XG4gICAgICAgICRpOiAxO1xuICAgICAgICBAd2hpbGUgJGkgPD0kbG9vcC10byB7XG4gICAgICAgICAgICAkbWVkaWEtcXVlcnk6ICRtZWRpYS1xdWVyeSArIFwiKFwiICsgbnRoKCRxdWVyeSwgJGkpICsgXCI6IFwiICsgbnRoKCRxdWVyeSwgJGkgKyAxKSArIFwiKSBcIjtcbiAgICAgICAgICAgIEBpZiAoJGkgKyAxKSAhPSAkbG9vcC10byB7XG4gICAgICAgICAgICAgICAgJG1lZGlhLXF1ZXJ5OiAkbWVkaWEtcXVlcnkgKyBcImFuZCBcIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICRpOiAkaSsyO1xuICAgICAgICB9XG4gICAgICAgIEBtZWRpYSAjeyRtZWRpYS1xdWVyeX0ge1xuICAgICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIuY2RrLW92ZXJsYXktY29udGFpbmVyIHtcbiAgICB6LWluZGV4OiB2KGV1aS1iYXNlLXotaW5kZXgtY2RrLW92ZXJsYXktY29udGFpbmVyKTsgICAvLyBNRDogMTAwMFxuXG4gICAgLm1hdC1tZW51LXBhbmVsIHtcbiAgICAgICAgbWF4LXdpZHRoOiBpbmhlcml0O1xuICAgICAgICBtaW4taGVpZ2h0OiB2KGV1aS1iYXNlLXNwYWNpbmctbCk7XG4gICAgICAgIEBpbmNsdWRlIGV1aS1zY3JvbGxiYXJzO1xuICAgIH1cblxuICAgIC5tYXQtYXV0b2NvbXBsZXRlLXBhbmVsIHtcbiAgICAgICAgQGluY2x1ZGUgZXVpLXNjcm9sbGJhcnM7XG4gICAgfVxufVxuIiwiQGluY2x1ZGUgbWVkaWEoJGV1aS1ia3AtbW9iaWxlKSB7XG4gICAgLmNkay1vdmVybGF5LWNvbnRhaW5lciB7XG4gICAgICAgIGhlaWdodDogMTAwdmg7ICAvLyBGYWxsYmFja1xuICAgICAgICBoZWlnaHQ6IGNhbGModmFyKC0tZXVpLWFwcC12aCwgMXZoKSAqIDEwMCk7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICB3aWR0aDogMTAwdnc7XG4gICAgfVxufVxuIiwiLmNkay1vdmVybGF5LXBhbmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHYoZXVpLWJhc2UtY29sb3Itd2hpdGUpO1xuICAgIHotaW5kZXg6IHYoZXVpLWJhc2Utei1pbmRleC1jZGstb3ZlcmxheS1wYW5lKTsgIC8vIER5bmFtaWNhbGx5IGNoYW5nZXMgYmFzZWQgb24gQ0RLIGNvbnRleHRcbn1cbiIsIi8vIEhpZGUgYnJvd3NlciBhZ2VudCBkZWZhdWx0IChibGFjaykgY29sb3Jcbjpmb2N1cyxcbjpmb2N1cy12aXNpYmxlIHtcbiAgICBvdXRsaW5lOiBub25lO1xufVxuIiwiaHRtbCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZXVpLWJhc2UtZm9udC1zaXplKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tZXVpLWJhc2UtbGluZS1oZWlnaHQpO1xufVxuIiwiYm9keSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZXVpLWJhc2UtY29sb3ItZ3JleS0yKTtcbiAgICBjb2xvcjogdmFyKC0tZXVpLWJhc2UtY29sb3ItZ3JleS0xMDApO1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1ldWktYmFzZS1mb250LWZhbWlseSk7XG4gICAgZm9udC1mZWF0dXJlLXNldHRpbmdzOiAnbGlnYSc7XG4gICAgZm9udC1zaXplOiB2YXIoLS1ldWktYmFzZS1mb250LXNpemUpO1xuICAgIC1tb3otZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tZXVpLWJhc2UtbGluZS1oZWlnaHQpO1xuICAgIG1hcmdpbjogMDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG59XG4iLCIvLyBNYWtlIHZpZXdwb3J0IHJlc3BvbnNpdmVcbi8vXG4vLyBAdmlld3BvcnQgaXMgbmVlZGVkIGJlY2F1c2UgSUUgMTArIGRvZXNuJ3QgaG9ub3IgPG1ldGEgbmFtZT1cInZpZXdwb3J0XCI+IGluXG4vLyBzb21lIGNhc2VzLiBTZWUgaHR0cHM6Ly90aW1rYWRsZWMuY29tLzIwMTIvMTAvaWUxMC1zbmFwLW1vZGUtYW5kLXJlc3BvbnNpdmUtZGVzaWduLy5cbi8vIEV2ZW50dWFsbHkgQHZpZXdwb3J0IHdpbGwgcmVwbGFjZSA8bWV0YSBuYW1lPVwidmlld3BvcnRcIj4uXG4vL1xuLy8gSG93ZXZlciwgYGRldmljZS13aWR0aGAgaXMgYnJva2VuIG9uIElFIDEwIG9uIFdpbmRvd3MgKFBob25lKSA4LFxuLy8gKHNlZSBodHRwczovL3RpbWthZGxlYy5jb20vMjAxMy8wMS93aW5kb3dzLXBob25lLTgtYW5kLWRldmljZS13aWR0aC8gYW5kIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9pc3N1ZXMvMTA0OTcpXG4vLyBhbmQgdGhlIGZpeCBmb3IgdGhhdCBpbnZvbHZlcyBhIHNuaXBwZXQgb2YgSmF2YVNjcmlwdCB0byBzbmlmZiB0aGUgdXNlciBhZ2VudFxuLy8gYW5kIGFwcGx5IHNvbWUgY29uZGl0aW9uYWwgQ1NTLlxuLy9cbi8vIFNlZSBodHRwczovL2dldGJvb3RzdHJhcC5jb20vZ2V0dGluZy1zdGFydGVkLyNzdXBwb3J0LWllMTAtd2lkdGggZm9yIHRoZSByZWxldmFudCBoYWNrLlxuLy9cbi8vIFdyYXAgYEB2aWV3cG9ydGAgd2l0aCBgQGF0LXJvb3RgIGZvciB3aGVuIGZvbGtzIGRvIGEgbmVzdGVkIGltcG9ydCAoZS5nLixcbi8vIGAuY2xhc3MtbmFtZSB7IEBpbXBvcnQgXCJib290c3RyYXBcIjsgfWApLlxuQGF0LXJvb3Qge1xuICAgIEAtbXMtdmlld3BvcnQge1xuICAgICAgICB3aWR0aDogZGV2aWNlLXdpZHRoO1xuICAgIH1cbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICNCT1gtU0laSU5HXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIE1vcmUgc2Vuc2libGUgZGVmYXVsdCBib3gtc2l6aW5nOlxuICogY3NzLXRyaWNrcy5jb20vaW5oZXJpdGluZy1ib3gtc2l6aW5nLXByb2JhYmx5LXNsaWdodGx5LWJldHRlci1iZXN0LXByYWN0aWNlXG4gKi9cblxuaHRtbCB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuKiB7XG4gICAgJjo6YmVmb3JlLFxuICAgICY6OmFmdGVyLFxuICAgICYge1xuICAgICAgICBib3gtc2l6aW5nOiBpbmhlcml0O1xuICAgIH1cbn1cblxuLy8gQXZvaWQgMzAwbXMgY2xpY2sgZGVsYXkgb24gdG91Y2ggZGV2aWNlcyB0aGF0IHN1cHBvcnQgdGhlIGB0b3VjaC1hY3Rpb25gIENTUyBwcm9wZXJ0eS5cbi8vXG4vLyBJbiBwYXJ0aWN1bGFyLCB1bmxpa2UgbW9zdCBvdGhlciBicm93c2VycywgSUUxMStFZGdlIG9uIFdpbmRvd3MgMTAgb24gdG91Y2ggZGV2aWNlcyBhbmQgSUUgTW9iaWxlIDEwLTExXG4vLyBET04nVCByZW1vdmUgdGhlIGNsaWNrIGRlbGF5IHdoZW4gYDxtZXRhIG5hbWU9XCJ2aWV3cG9ydFwiIGNvbnRlbnQ9XCJ3aWR0aD1kZXZpY2Utd2lkdGhcIj5gIGlzIHByZXNlbnQuXG4vLyBIb3dldmVyLCB0aGV5IERPIHN1cHBvcnQgcmVtb3ZpbmcgdGhlIGNsaWNrIGRlbGF5IHZpYSBgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb25gLlxuLy8gU2VlOlxuLy8gKiBodHRwczovL3Y0LWFscGhhLmdldGJvb3RzdHJhcC5jb20vY29udGVudC9yZWJvb3QvI2NsaWNrLWRlbGF5LW9wdGltaXphdGlvbi1mb3ItdG91Y2hcbi8vICogaHR0cDovL2Nhbml1c2UuY29tLyNmZWF0PWNzcy10b3VjaC1hY3Rpb25cbi8vICogaHR0cHM6Ly9wYXRyaWNraGxhdWtlLmdpdGh1Yi5pby90b3VjaC90ZXN0cy9yZXN1bHRzLyNzdXBwcmVzc2luZy0zMDBtcy1kZWxheVxuXG5hLFxuYXJlYSxcbmJ1dHRvbixcbltyb2xlPVwiYnV0dG9uXCJdLFxuaW5wdXQsXG5sYWJlbCxcbnNlbGVjdCxcbnN1bW1hcnksXG50ZXh0YXJlYSB7XG4gICAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG59XG5cbi8vIFN1cHByZXNzIHRoZSBmb2N1cyBvdXRsaW5lIG9uIGVsZW1lbnRzIHRoYXQgY2Fubm90IGJlIGFjY2Vzc2VkIHZpYSBrZXlib2FyZC5cbi8vIFRoaXMgcHJldmVudHMgYW4gdW53YW50ZWQgZm9jdXMgb3V0bGluZSBmcm9tIGFwcGVhcmluZyBhcm91bmQgZWxlbWVudHMgdGhhdFxuLy8gbWlnaHQgc3RpbGwgcmVzcG9uZCB0byBwb2ludGVyIGV2ZW50cy5cbi8vXG4vLyBDcmVkaXQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9zdWl0Y3NzL2Jhc2Vcblt0YWJpbmRleD1cIi0xXCJdOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi8vIEFsd2F5cyBoaWRlIGFuIGVsZW1lbnQgd2l0aCB0aGUgYGhpZGRlbmAgSFRNTCBhdHRyaWJ1dGUgKGZyb20gUHVyZUNTUykuXG5baGlkZGVuXSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4vLyBOT1JNQUxJWkUgcmVzZXQgYWxpZ25lbWVudHMgKHNlZSAwMC1yZXNldClcbnAsXG5sYWJlbCxcbmJsb2NrcXVvdGUsXG5hYmJyLFxubWFyayxcbmRlbCB7XG4gICAgZm9udC1zaXplOiB2KGV1aS1iYXNlLWZvbnQtc2l6ZSk7XG59XG5cbmIsIHN0cm9uZyB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4iLCJ0YWJsZS5ldWktdGFibGUtZGVmYXVsdCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgICBib3JkZXItc3BhY2luZzogMDtcbiAgICBjb2xvcjogdihldWktYmFzZS1jb2xvci1mb250KTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgLy8gT3ZlcmFsbCBzZXR0aW5ncyAoZGVmYXVsdClcbiAgICB0aGVhZCA+IHRyID4gdGgsXG4gICAgdGJvZHkgPiB0ciA+IHRkLFxuICAgIHRmb290ID4gdHIgPiB0ZCB7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgfVxuXG4gICAgdHIgPiB0aCxcbiAgICB0ciA+IHRkIHtcbiAgICAgICAgcGFkZGluZzogdihldWktYmFzZS1zcGFjaW5nLXMpO1xuICAgIH1cblxuICAgIHRoZWFkIHtcbiAgICAgICAgdGgge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHYoZXVpLWJhc2UtY29sb3ItZ3JleS0xMCk7XG4gICAgICAgICAgICBjb2xvcjogdihldWktYmFzZS1jb2xvci1ncmV5LTc1KTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogdihldWktYmFzZS1mb250LXNpemUpO1xuICAgICAgICAgICAgcGFkZGluZzogdihldWktYmFzZS1zcGFjaW5nLW0pIHYoZXVpLWJhc2Utc3BhY2luZy1zKTtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBldWktZm9udC1mYW1pbHktYm9sZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHYoZXVpLWJhc2UtY29sb3ItZ3JleS0xMCk7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gU3RyaXBlZCAmIGhvdmVyZWQgdGFibGVzIGJ5IGRlZmF1bHQgKFVYKVxuICAgIHRib2R5IHtcbiAgICAgICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoOyAgLy8gb3B0aW9uYWwgLSBlbmFibGUgaU9TIG1vbWVudHVtIHNjcm9sbGluZ1xuXG4gICAgICAgIHRyOm50aC1vZi10eXBlKG9kZCkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdihldWktYmFzZS1jb2xvci1ncmV5LTIpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2KGV1aS1iYXNlLWNvbG9yLWdyZXktMTApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdHI6bnRoLW9mLXR5cGUoZXZlbikge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdihldWktYmFzZS1jb2xvci1ncmV5LTUpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2KGV1aS1iYXNlLWNvbG9yLWdyZXktMTApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgdHIge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdihldWktYmFzZS1jb2xvci1ncmV5LTIwKTtcbiAgICAgICAgZGlzcGxheTogdGFibGUtcm93O1xuICAgIH1cblxuICAgIC8vIENvbXBhY3QgdGFibGVcbiAgICAmLS1jb21wYWN0IHtcbiAgICAgICAgdGhlYWQge1xuICAgICAgICAgICAgdGgge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IHYoZXVpLWJhc2Utc3BhY2luZy14cykgdihldWktYmFzZS1zcGFjaW5nLXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdHIgPiB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiB2KGV1aS1iYXNlLXNwYWNpbmctMnhzKSB2KGV1aS1iYXNlLXNwYWNpbmctcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSZXNwb25zaXZlIHRhYmxlXG4gICAgJi0tcmVzcG9uc2l2ZSB7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmLS1ib3JkZXJlZCB7XG4gICAgICAgICAgICBib3JkZXI6IDA7ICAvLyBQcmV2ZW50IGRvdWJsZSBib3JkZXIgb24gaG9yaXpvbnRhbCBzY3JvbGwgZHVlIHRvIHVzZSBvZiBgZGlzcGxheTogYmxvY2s7YFxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gQm9yZGVyZWQgdGFibGVcbiAgICAmLS1ib3JkZXJlZCB7XG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2KGV1aS1iYXNlLWNvbG9yLWdyZXktMjApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2hhZG93ZWQgdGFibGVcbiAgICAmLS1zaGFkb3dlZCB7XG4gICAgICAgIGJveC1zaGFkb3c6IHYoZXVpLWJhc2Utc2hhZG93LTEpO1xuICAgIH1cblxuICAgIC8vIE5vV3JhcCB0YWJsZSBjb250ZW50IChhbHNvIGRpc2FibGVzIGVsbGlwc2lzKVxuICAgICYtLW5vd3JhcCB7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICAgICAgdGhlYWQgPiB0ciA+IHRoLFxuICAgICAgICB0Ym9keSA+IHRyID4gdGQsXG4gICAgICAgIHRmb290ID4gdHIgPiB0ZCB7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gQ2VudGVyZWQgdGFibGVcbiAgICAmLS1jZW50ZXJlZCB7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxuXG4gICAgLy8gTWlkZGxlIGFsaWduZWQgY2VsbHMgY29udGVudFxuICAgICYtLWFsaWduLW1pZGRsZSB7XG4gICAgICAgIHRoZWFkID4gdHIgPiB0aCxcbiAgICAgICAgdGJvZHkgPiB0ciA+IHRkLFxuICAgICAgICB0Zm9vdCA+IHRyID4gdGQge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBtaXhpbiBldWktZm9udCgkc2l6ZTogbSwgJGZhbWlseTogdWkpIHtcbiAgICAkc2VsZWN0ZWQtZmFtaWx5OiBtYXAtZ2V0KCRldWktYmFzZS10b2tlbnMtZm9udHMsICRmYW1pbHkpO1xuICAgICRzZWxlY3RlZC1mb250LWRlZmluaXRpb246IG1hcC1nZXQoJHNlbGVjdGVkLWZhbWlseSwgJHNpemUpO1xuXG4gICAgZm9udDogJHNlbGVjdGVkLWZvbnQtZGVmaW5pdGlvbjtcbn1cbiIsIi8vIFNldHMgdGhlIGxheW91dCBvZiB0aGUgZXVpQ2xlYXJhYmxlIGRpcmVjdGl2ZVxuLmV1aS1jbGVhcmFibGUtd3JhcHBlciB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIC5ldWktaW5wdXQtdGV4dC0tY2xlYXJhYmxlLWljb24ge1xuICAgICAgICBib3R0b206IGNhbGMoI3t2KGV1aS1iYXNlLXNwYWNpbmctcyl9IC0gMnB4KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiB2KGV1aS1iYXNlLXNwYWNpbmctcyk7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICB6LWluZGV4OiB2KGV1aS1iYXNlLXotaW5kZXgtY2xlYXJhYmxlLWljb24pO1xuICAgICAgICBAaW5jbHVkZSBldWktYWNjZXNzaWJsZS1mb2N1cygpO1xuXG4gICAgICAgID4gc3ZnIHtcbiAgICAgICAgICAgIGZpbGw6IHYoZXVpLWJhc2UtY29sb3ItZ3JleS0zNSk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGZpbGw6IHYoZXVpLWJhc2UtY29sb3ItZGFuZ2VyLTEwMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIkb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG4kb3V0bGluZS1zaXplOiAycHg7XG5cbi8vIENhbGwgdGhpcyBtaXhpbiB0byBlbmZvcmNlIHRoZSBhY2Nlc3NpYmlsaXR5IHZpc3VhbHMgd2hlbiBvbiBmb2N1cy9hY3RpdmVcbkBtaXhpbiBldWktYWNjZXNzaWJsZS1mb2N1cygkb2Zmc2V0OiAkb3V0bGluZS1vZmZzZXQsICRzaXplOiAkb3V0bGluZS1zaXplKSB7XG4gICAgJjphY3RpdmU6bm90KFtyZWFkb25seV0pLFxuICAgICY6Zm9jdXM6bm90KFtyZWFkb25seV0pIHtcbiAgICAgICAgb3V0bGluZTogJHNpemUgc29saWQgdihldWktYmFzZS1jb2xvci1hY2Nlc3NpYmxlLWZvY3VzKTtcbiAgICAgICAgb3V0bGluZS1vZmZzZXQ6ICRvZmZzZXQ7XG4gICAgICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgfVxuXG4gICAgLy8gJjpmb2N1cy12aXNpYmxlOm5vdChbcmVhZG9ubHldKSB7XG4gICAgLy8gICAgIG91dGxpbmU6ICRzaXplIHNvbGlkIHYoZXVpLWJhc2UtY29sb3ItYWNjZXNzaWJsZS1mb2N1cyk7XG4gICAgLy8gICAgIG91dGxpbmUtb2Zmc2V0OiAkb2Zmc2V0O1xuICAgIC8vICAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIC8vIH1cblxuICAgIC8vIEZvcmNlZCBmb2N1c2FibGUgZWxlbWVudFxuICAgIFt0YWJpbmRleD1cIjBcIl0ge1xuICAgICAgICAmOmFjdGl2ZTpub3QoW3JlYWRvbmx5XSksXG4gICAgICAgICY6Zm9jdXM6bm90KFtyZWFkb25seV0pIHtcbiAgICAgICAgICAgIG91dGxpbmU6ICRzaXplIHNvbGlkIHYoZXVpLWJhc2UtY29sb3ItYWNjZXNzaWJsZS1mb2N1cyk7XG4gICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogJG9mZnNldDtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIuZXVpLWlucHV0LW1heGxlbmd0aC13cmFwcGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICAuZXVpLWlucHV0LW1heGxlbmd0aCB7XG4gICAgICAgIEBpbmNsdWRlIGV1aS1mb250KHhzLCB1aSk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHYoZXVpLWJhc2UtY29sb3ItZ3JleS0xMCk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHYoZXVpLWJhc2UtY29sb3ItZ3JleS01MCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHYoZXVpLWJhc2UtYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgIGNvbG9yOiB2KGV1aS1iYXNlLWNvbG9yLWdyZXktMTAwKTtcbiAgICAgICAgcGFkZGluZzogMCB2KGV1aS1iYXNlLXNwYWNpbmctMnhzKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogY2FsYygtMSAqICN7dihldWktYmFzZS1zcGFjaW5nLXhzKX0pO1xuICAgICAgICB0b3A6IGNhbGMoLTEgKiAje3YoZXVpLWJhc2Utc3BhY2luZy14cyl9KTtcbiAgICAgICAgei1pbmRleDogdihldWktYmFzZS16LWluZGV4LWlucHV0LW1heGxlbmd0aCk7XG5cbiAgICAgICAgJi0taW52YWxpZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2KGV1aS1iYXNlLWNvbG9yLXdhcm5pbmctMTAwKTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdihldWktYmFzZS1jb2xvci13YXJuaW5nLTEwMCk7XG4gICAgICAgICAgICBjb2xvcjogdihldWktYmFzZS1jb2xvci13aGl0ZSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvLyBJRTEwKyBTVkcncyBhc3BlY3QgcmF0aW9zIGFuZCBzaXplcyBmaXhcbkBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSwgKC1tcy1oaWdoLWNvbnRyYXN0OiBub25lKSB7XG4gICAgaW1nW3NyYyQ9XCIuc3ZnXCJdIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxufVxuQG1lZGlhIHNjcmVlbiB7XG4gICAgLy8gSUUgRml4OiBCaWN1YmljIFNjYWxpbmcgZm9yIEltYWdlcyAmIGZ1bGwgd2lkdGggYmFja2dyb3VuZCAoRUMgbG9nbylcbiAgICBpbWcge1xuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDEwMCU7XG4gICAgICAgIC1tcy1pbnRlcnBvbGF0aW9uLW1vZGU6IGJpY3ViaWM7XG4gICAgfVxufVxuIiwiLy8gQ09PS0lFIENPTlNFTlRcbi5jb29raWUtY29uc2VudC1iYW5uZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgbWluLXdpZHRoOiA1MCUgIWltcG9ydGFudDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgICByaWdodDogNTAlICFpbXBvcnRhbnQ7XG4gICAgdG9wOiB2KGV1aS1iYXNlLXNwYWNpbmctbSkgIWltcG9ydGFudDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNTAlKSAhaW1wb3J0YW50O1xuICAgIHotaW5kZXg6IHYoZXVpLWJhc2Utei1pbmRleC1tYXgpICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogdihldWktYmFzZS1zaGFkb3ctMjQpICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZDogdihldWktYmFzZS1jb2xvci1wcmltYXJ5KSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiB2YXIoZXVpLWJhc2UtY29sb3Itd2hpdGUpICFpbXBvcnRhbnQ7XG59XG4iLCIjbG9hZGVyLXdyYXBwZXIge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBsZWZ0OiAwO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgei1pbmRleDogMTAwMDtcblxuICAgICNsb2FkZXIge1xuICAgICAgICAtd2Via2l0LWFuaW1hdGlvbjogc3BpbiAycyBsaW5lYXIgaW5maW5pdGU7IC8qIENocm9tZSwgT3BlcmEgMTUrLCBTYWZhcmkgNSsgKi9cbiAgICAgICAgYW5pbWF0aW9uOiBzcGluIDJzIGxpbmVhciBpbmZpbml0ZTsgLyogQ2hyb21lLCBGaXJlZm94IDE2KywgSUUgMTArLCBPcGVyYSAqL1xuICAgICAgICBhbmltYXRpb246IGhvdXJnbGFzcyA1cyBsaW5lYXIgaW5maW5pdGU7XG4gICAgICAgIGJvcmRlcjogMTBweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB2KGV1aS1iYXNlLWNvbG9yLXdhcm5pbmctMTAwKTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMjAwcHg7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgbWFyZ2luOiAtMTAwcHggMCAwIC0xMDBweDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgd2lkdGg6IDIwMHB4O1xuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAtd2Via2l0LWFuaW1hdGlvbjogc3BpbiAycyBsaW5lYXIgaW5maW5pdGU7IC8qIENocm9tZSwgT3BlcmEgMTUrLCBTYWZhcmkgNSsgKi9cbiAgICAgICAgICAgIGFuaW1hdGlvbjogc3BpbiAycyBsaW5lYXIgaW5maW5pdGU7IC8qIENocm9tZSwgRmlyZWZveCAxNissIElFIDEwKywgT3BlcmEgKi9cbiAgICAgICAgICAgIGFuaW1hdGlvbjogaG91cmdsYXNzIDRzIGxpbmVhciBpbmZpbml0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMTBweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHYoZXVpLWJhc2UtY29sb3ItZGFuZ2VyLTEwMCk7XG4gICAgICAgICAgICBib3R0b206IDVweDtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICBsZWZ0OiA1cHg7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICByaWdodDogNXB4O1xuICAgICAgICAgICAgdG9wOiA1cHg7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAtd2Via2l0LWFuaW1hdGlvbjogc3BpbiAxcyBsaW5lYXIgaW5maW5pdGU7IC8qIENocm9tZSwgT3BlcmEgMTUrLCBTYWZhcmkgNSsgKi9cbiAgICAgICAgICAgIGFuaW1hdGlvbjogc3BpbiAxcyBsaW5lYXIgaW5maW5pdGU7IC8qIENocm9tZSwgRmlyZWZveCAxNissIElFIDEwKywgT3BlcmEgKi9cbiAgICAgICAgICAgIGFuaW1hdGlvbjogaG91cmdsYXNzIDNzIGxpbmVhciBpbmZpbml0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMTBweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHYoZXVpLWJhc2UtY29sb3ItcHJpbWFyeS0xMDApO1xuICAgICAgICAgICAgYm90dG9tOiAyMHB4O1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIGxlZnQ6IDIwcHg7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICByaWdodDogMjBweDtcbiAgICAgICAgICAgIHRvcDogMjBweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuQC13ZWJraXQta2V5ZnJhbWVzIHNwaW4ge1xuICAgIDAlIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICAgICAgLW1zLXRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICB9XG5cbiAgICAxMDAlIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgICAgICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICB9XG59XG5Aa2V5ZnJhbWVzIHNwaW4ge1xuICAgIDAlIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICAgICAgLW1zLXRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICB9XG5cbiAgICAxMDAlIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgICAgICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICB9XG59XG5ALXdlYmtpdC1rZXlmcmFtZXMgaG91cmdsYXNzICB7XG4gICAgMCUge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUsIDAuMDU1LCAwLjY3NSwgMC4xOSk7XG4gICAgfVxuICAgIDUwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDkwMGRlZyk7XG4gICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpO1xuICAgIH1cbiAgICAxMDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwMGRlZyk7XG4gICAgfVxufVxuQGtleWZyYW1lcyBob3VyZ2xhc3Mge1xuICAgIDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1LCAwLjA1NSwgMC42NzUsIDAuMTkpO1xuICAgIH1cbiAgICA1MCUge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MDBkZWcpO1xuICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEsIDAuMzU1LCAxKTtcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MDBkZWcpO1xuICAgIH1cbn1cbiJdfQ== */",":root {\n // COLOR SHADES\n @each $color, $shades in $eui-base-tokens-colors {\n @each $shade, $value in $shades {\n --eui-base-color-#{$color + '-' + $shade}: #{$value};\n --eui-base-color-#{$color + '-' + $shade}-rgb: #{toRGB($value)};\n --eui-base-color-#{$color + '-' + $shade}-contrast: #{getContrast($value)};\n --eui-base-color-#{$color + '-' + $shade}-contrast-rgb: #{toRGB(getContrast($value))};\n }\n }\n\n // DEFAULTS 100s\n @each $color, $value in $eui-base-tokens-colors-100s {\n --eui-base-color-#{'' + $color}: #{$value};\n }\n\n // RAW COLORS\n --eui-base-color-text: var(--eui-base-color-grey-100);\n --eui-base-color-link: var(--eui-base-color-primary-100);\n --eui-base-color-black: var(--eui-base-color-grey-100);\n --eui-base-color-white: var(--eui-base-color-grey-0);\n}\n",":root {\n // // FONTS\n --eui-base-font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif;\n // --eui-base-font-family: 'Source Sans Pro', sans-serif; <link href=\"https://fonts.cdnfonts.com/css/source-sans-pro\" rel=\"stylesheet\">\n // --eui-base-font-family: 'Roboto', sans-serif; <link href=\"https://fonts.cdnfonts.com/css/roboto\" rel=\"stylesheet\">\n --eui-base-font-family-icons: 'eui-icons', sans-serif;\n --eui-base-font-family-monospace: 'Consolas', 'Liberation Mono', 'Courier New', monospace;\n\n // FONT-SIZES\n --eui-base-font-size: 16px;\n @each $font-size, $value in $eui-base-tokens-font-sizes {\n --eui-base-font-size-#{$font-size}: #{$value};\n }\n\n // ICON-SIZES\n --eui-base-icon-size: 1.5rem;\n @each $icon-size, $value in $eui-base-tokens-icon-sizes {\n --eui-base-icon-size-#{$icon-size}: #{$value};\n }\n\n @each $family, $sizes in $eui-base-tokens-fonts {\n $family-type: $family + '-';\n @if($family == ui) {\n $family-type: '';\n }\n\n @each $size, $definition in $sizes {\n --eui-base-font-#{$family-type}#{$size}: #{$definition};\n }\n }\n\n // SPACINGS\n @each $spacing, $value in $eui-base-tokens-spacings {\n --eui-base-spacing-#{$spacing}: #{$value};\n }\n\n // SHADOWS\n @each $shadow, $value in $eui-base-tokens-shadows {\n --eui-base-shadow-#{$shadow}: #{$value};\n }\n\n // Z-INDEXES\n @each $idx, $value in $eui-base-tokens-z-indexes {\n --eui-base-z-index-#{$idx}: #{$value};\n }\n}\n",":root {\n --eui-base-line-height: 1.15;\n --eui-base-scale-factor: 1;\n --eui-base-disabled-opacity: 0.45;\n\n --eui-base-border-radius: 3px;\n\n --eui-base-border: 1px solid var(--eui-color-grey-lighter);\n --eui-base-border-light: 1px solid var(--eui-color-grey-light);\n --eui-base-border-lighter: 1px solid var(--eui-color-grey-lighter);\n --eui-base-border-lightest: 1px solid var(--eui-color-grey-lightest);\n\n // Animations related\n --eui-base-animation-linear-out-slow-in-timing-function: cubic-bezier(0, 0, 0.2, 1);\n --eui-base-animation-fast-out-slow-in-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n --eui-base-animation-fast-out-linear-in-timing-function: cubic-bezier(0.4, 0, 1, 1);\n --eui-base-animation-ease-timing-function: cubic-bezier(0.25, 0.1, 0.25, 1); // ease\n --eui-base-animation-ease-in-out-timing-function: ease-in-out;\n\n --eui-base-animation-duration-fast: 0.25s;\n --eui-base-animation-duration-medium: 0.5s;\n --eui-base-animation-duration-slow: 1s;\n --eui-base-animation-duration-base: 500ms;\n --eui-base-animation-duration: var(--eui-base-animation-duration-base);\n\n --eui-base-animation-transition-base: all 0.2s #{var(--eui-base-animation-linear-out-slow-in-timing-function)};\n --eui-base-animation-transition-ease: all 0.2s #{var(--eui-base-animation-ease-timing-function)};\n --eui-base-animation-transition-ease-in-out: all 0.2s #{var(--eui-base-animation-ease-in-out-timing-function)};\n --eui-base-animation-transition-ease-in-out-1s: all 1s #{var(--eui-base-animation-ease-in-out-timing-function)};\n\n --eui-base-animation-delay: 0s;\n --eui-base-animation-direction: normal;\n --eui-base-animation-fill-mode: forwards; // this prevents the animation from restarting\n --eui-base-animation-background-color: var(--eui-base-color-primary-50); // #cfcfdf;\n\n // Extra colors\n --eui-base-color-accessible-focus: var(--eui-base-color-accent-110); // Carbon blue: #0f62fe;\n}\n",":root {\n // eUI APP\n --eui-app-header-height-default: 0px;\n --eui-app-header-height: 0px;\n --eui-app-header-height-active: 90px;\n --eui-app-header-height-shrink: 0px;\n\n --eui-app-breadcrumb-height-default: 0px;\n --eui-app-breadcrumb-height: 0px;\n --eui-app-breadcrumb-height-active: 20px;\n\n --eui-app-top-message-height-default: 0px;\n --eui-app-top-message-height: 0px;\n --eui-app-top-message-height-active: 42px;\n\n --eui-app-toolbar-height-default: 0px;\n --eui-app-toolbar-height: 0px;\n --eui-app-toolbar-height-active: 55px;\n\n --eui-app-sidebar-width-default: 0px;\n --eui-app-sidebar-width: 0px;\n --eui-app-sidebar-width-active: 300px;\n --eui-app-sidebar-width-close-default: 0px;\n --eui-app-sidebar-width-close: 0px;\n --eui-app-sidebar-width-close-active: 64px;\n --eui-app-sidebar-header-height: 0px;\n --eui-app-sidebar-header-height-default: 0px;\n --eui-app-sidebar-header-height-active: 48px;\n --eui-app-sidebar-footer-height: 0px;\n --eui-app-sidebar-footer-height-default: 0px;\n --eui-app-sidebar-footer-height-active: 24px;\n\n // Page Layout\n --eui-page-header-with-subtitle-height: 4rem;\n --eui-page-header-without-subtitle-height: 2rem;\n\n --eui-page-column--size-s: 50px;\n --eui-page-column--size-m: 150px;\n --eui-page-column--size-l: 200px;\n --eui-page-column--size-xl: 250px;\n --eui-page-column--size-xxl: 300px;\n --eui-page-column--size-xxxl: 350px;\n --eui-page-column-footer-height: 3.5rem;\n}\n\n.xs, .sm {\n --eui-app-header-height: 0px;\n}\n",":root {\n --eui-app-box-shadow: none; // var(--eui-base-shadow-z-depth-0);\n}\n",".eui-icon-svg {\n fill: currentColor;\n margin: 0;\n transform: scaleX(1) scaleY(1) rotateZ(0deg);\n transition: transform 300ms ease-in-out;\n display: inline-flex;\n align-items: center;\n}\n@each $size, $value in $eui-base-tokens-icon-sizes {\n .eui-icon-svg--size-#{$size} {\n height: #{$value};\n width: #{$value};\n };\n}\n@each $color, $shades in $eui-base-tokens-colors {\n @each $shade, $value in $shades {\n .eui-icon-svg--color-#{$color + '-' + $shade} {\n color: #{$value};\n fill: #{$value};\n };\n }\n}\n@each $color, $value in $eui-base-tokens-colors-100s {\n .eui-icon-svg--color-#{'' + $color} {\n color: #{$value};\n fill: #{$value};\n };\n}\n\n.eui-icon-svg--color-white {\n color: var(--eui-base-color-white);\n fill: var(--eui-base-color-white);\n}\n\n.eui-icon-svg--color-black {\n color: var(--eui-base-color-black);\n fill: var(--eui-base-color-black);\n}\n\n.eui-icon-svg--color-transparent {\n color: transparent !important; // important for isLoading\n fill: transparent !important;\n}\n","// Row\n//\n// Rows contain your columns.\n\n@if $enable-grid-classes {\n .row {\n @include make-row();\n\n > * {\n @include make-col-ready();\n }\n }\n}\n\n@if $enable-cssgrid {\n .grid {\n display: grid;\n grid-template-rows: repeat(var(--#{$variable-prefix}rows, 1), 1fr);\n grid-template-columns: repeat(var(--#{$variable-prefix}columns, #{$grid-columns}), 1fr);\n gap: var(--#{$variable-prefix}gap, #{$grid-gutter-width});\n\n @include make-cssgrid();\n }\n}\n\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n@if $enable-grid-classes {\n @include make-grid-columns();\n}\n","// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-row($gutter: $grid-gutter-width) {\n --#{$variable-prefix}gutter-x: #{$gutter};\n --#{$variable-prefix}gutter-y: 0;\n display: flex;\n flex-wrap: wrap;\n // TODO: Revisit calc order after https://github.com/react-bootstrap/react-bootstrap/issues/6039 is fixed\n margin-top: calc(-1 * var(--#{$variable-prefix}gutter-y)); // stylelint-disable-line function-disallowed-list\n margin-right: calc(-.5 * var(--#{$variable-prefix}gutter-x)); // stylelint-disable-line function-disallowed-list\n margin-left: calc(-.5 * var(--#{$variable-prefix}gutter-x)); // stylelint-disable-line function-disallowed-list\n}\n\n@mixin make-col-ready($gutter: $grid-gutter-width) {\n // Add box sizing if only the grid is loaded\n box-sizing: if(variable-exists(include-column-box-sizing) and $include-column-box-sizing, border-box, null);\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we set the width\n // later on to override this initial width.\n flex-shrink: 0;\n width: 100%;\n max-width: 100%; // Prevent `.col-auto`, `.col` (& responsive variants) from breaking out the grid\n padding-right: calc(var(--#{$variable-prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list\n padding-left: calc(var(--#{$variable-prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list\n margin-top: var(--#{$variable-prefix}gutter-y);\n}\n\n@mixin make-col($size: false, $columns: $grid-columns) {\n @if $size {\n flex: 0 0 auto;\n width: percentage(divide($size, $columns));\n\n } @else {\n flex: 1 1 0;\n max-width: 100%;\n }\n}\n\n@mixin make-col-auto() {\n flex: 0 0 auto;\n width: auto;\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n $num: divide($size, $columns);\n margin-left: if($num == 0, 0, percentage($num));\n}\n\n// Row columns\n//\n// Specify on a parent element(e.g., .row) to force immediate children into NN\n// numberof columns. Supports wrapping to new lines, but does not do a Masonry\n// style grid.\n@mixin row-cols($count) {\n > * {\n flex: 0 0 auto;\n width: divide(100%, $count);\n }\n}\n\n// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n .col#{$infix} {\n flex: 1 0 0%; // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4\n }\n\n .row-cols#{$infix}-auto > * {\n @include make-col-auto();\n }\n\n @if $grid-row-columns > 0 {\n @for $i from 1 through $grid-row-columns {\n .row-cols#{$infix}-#{$i} {\n @include row-cols($i);\n }\n }\n }\n\n .col#{$infix}-auto {\n @include make-col-auto();\n }\n\n @if $columns > 0 {\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @include make-col($i, $columns);\n }\n }\n\n // `$columns - 1` because offsetting by the width of an entire row isn't possible\n @for $i from 0 through ($columns - 1) {\n @if not ($infix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n .offset#{$infix}-#{$i} {\n @include make-col-offset($i, $columns);\n }\n }\n }\n }\n\n // Gutters\n //\n // Make use of `.g-*`, `.gx-*` or `.gy-*` utilities to change spacing between the columns.\n @each $key, $value in $gutters {\n .g#{$infix}-#{$key},\n .gx#{$infix}-#{$key} {\n --#{$variable-prefix}gutter-x: #{$value};\n }\n\n .g#{$infix}-#{$key},\n .gy#{$infix}-#{$key} {\n --#{$variable-prefix}gutter-y: #{$value};\n }\n }\n }\n }\n}\n\n@mixin make-cssgrid($columns: $grid-columns, $breakpoints: $grid-breakpoints) {\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n @if $columns > 0 {\n @for $i from 1 through $columns {\n .g-col#{$infix}-#{$i} {\n grid-column: auto / span $i;\n }\n }\n\n // Start with `1` because `0` is and invalid value.\n // Ends with `$columns - 1` because offsetting by the width of an entire row isn't possible.\n @for $i from 1 through ($columns - 1) {\n .g-start#{$infix}-#{$i} {\n grid-column-start: $i;\n }\n }\n }\n }\n }\n}\n","// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n// md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n $n: index($breakpoint-names, $name);\n @if not $n {\n @error \"breakpoint `#{$name}` not found in `#{$breakpoints}`\";\n }\n @return if($n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n $min: map-get($breakpoints, $name);\n @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width.\n// The maximum value is reduced by 0.02px to work around the limitations of\n// `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n// >> breakpoint-max(md, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n $max: map-get($breakpoints, $name);\n @return if($max and $max > 0, $max - .02, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.\n// Useful for making responsive utilities.\n//\n// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"\" (Returns a blank string)\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (min-width: $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (max-width: $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $next: breakpoint-next($name, $breakpoints);\n $max: breakpoint-max($next);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($next, $breakpoints) {\n @content;\n }\n }\n}\n","@use '@angular/cdk';\n\n@mixin ripple() {\n // The host element of an mat-ripple directive should always have a position of \"absolute\" or\n // \"relative\" so that the ripples inside are correctly positioned relatively to the container.\n .mat-ripple {\n overflow: hidden;\n\n // By default, every ripple container should have position: relative in favor of creating an\n // easy API for developers using the MatRipple directive.\n position: relative;\n\n // Promote containers that have ripples to a new layer. We want to target `:not(:empty)`,\n // because we don't want all ripple containers to have their own layer since they're used in a\n // lot of places and the layer is only relevant while animating. Note that ideally we'd use\n // the `contain` property here (see #13175), because `:empty` can be broken by having extra\n // text inside the element, but it isn't very well supported yet.\n &:not(:empty) {\n transform: translateZ(0);\n }\n }\n\n .mat-ripple.mat-ripple-unbounded {\n overflow: visible;\n }\n\n .mat-ripple-element {\n position: absolute;\n border-radius: 50%;\n pointer-events: none;\n\n transition: opacity, transform 0ms cubic-bezier(0, 0, 0.2, 1);\n\n // We use a 3d transform here in order to avoid an issue in Safari where\n // the ripples aren't clipped when inside the shadow DOM (see #24028).\n transform: scale3d(0, 0, 0);\n\n // In high contrast mode the ripple is opaque, causing it to obstruct the content.\n @include cdk.high-contrast(active, off) {\n display: none;\n }\n }\n}\n","/// Emits a CSS class, `.cdk-visually-hidden`. This class can be applied to an element\n/// to make that element visually hidden while remaining available to assistive technology.\n@mixin a11y-visually-hidden() {\n .cdk-visually-hidden {\n border: 0;\n clip: rect(0 0 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n\n // This works around a Chrome bug that can cause the tab to crash when large amounts of\n // non-English text get wrapped: https://bugs.chromium.org/p/chromium/issues/detail?id=1201444\n white-space: nowrap;\n\n // Avoid browsers rendering the focus ring in some cases.\n outline: 0;\n\n // Avoid some cases where the browser will still render the native controls (see #9049).\n -webkit-appearance: none;\n -moz-appearance: none;\n\n // We need at least one of top/bottom/left/right in order to prevent cases where the\n // absolute-positioned element is pushed down and can affect scrolling (see #24597).\n // `left` was chosen here, because it's the least likely to break overrides where the\n // element might have been positioned (e.g. `mat-checkbox`).\n left: 0;\n\n [dir='rtl'] & {\n left: auto;\n right: 0;\n }\n }\n}\n\n/// @deprecated Use `a11y-visually-hidden`.\n@mixin a11y() {\n @include a11y-visually-hidden;\n}\n\n/// Emits the mixin's content nested under `$selector-context` if `$selector-context`\n/// is non-empty.\n/// @param {String} selector-context The selector under which to nest the mixin's content.\n@mixin _optionally-nest-content($selector-context) {\n @if ($selector-context == '') {\n @content;\n }\n @else {\n #{$selector-context} {\n @content;\n }\n }\n}\n\n/// Applies styles for users in high contrast mode. Note that this only applies\n/// to Microsoft browsers. Chrome can be included by checking for the `html[hc]`\n/// attribute, however Chrome handles high contrast differently.\n///\n/// @param {String} target Type of high contrast setting to target. Defaults to `active`, can be\n/// `white-on-black` or `black-on-white`.\n/// @param {String} encapsulation Whether to emit styles for view encapsulation. Values are:\n/// * `on` - works for `Emulated`, `Native`, and `ShadowDom`\n/// * `off` - works for `None`\n/// * `any` - works for all encapsulation modes by emitting the CSS twice (default).\n@mixin high-contrast($target: active, $encapsulation: 'any') {\n @if ($target != 'active' and $target != 'black-on-white' and $target != 'white-on-black') {\n @error 'Unknown cdk-high-contrast value \"#{$target}\" provided. ' +\n 'Allowed values are \"active\", \"black-on-white\", and \"white-on-black\"';\n }\n\n @if ($encapsulation != 'on' and $encapsulation != 'off' and $encapsulation != 'any') {\n @error 'Unknown cdk-high-contrast encapsulation \"#{$encapsulation}\" provided. ' +\n 'Allowed values are \"on\", \"off\", and \"any\"';\n }\n\n // If the selector context has multiple parts, such as `.section, .region`, just doing\n // `.cdk-high-contrast-xxx #{&}` will only apply the parent selector to the first part of the\n // context. We address this by nesting the selector context under .cdk-high-contrast.\n @at-root {\n $selector-context: #{&};\n\n @if ($encapsulation != 'on') {\n // Note that if this selector is updated, the same change has to be made inside\n // `_overlay.scss` which can't depend on this mixin due to some infrastructure limitations.\n .cdk-high-contrast-#{$target} {\n @include _optionally-nest-content($selector-context) {\n @content;\n }\n }\n }\n\n @if ($encapsulation != 'off') {\n .cdk-high-contrast-#{$target} :host {\n @include _optionally-nest-content($selector-context) {\n @content;\n }\n }\n }\n }\n}\n","// We want overlays to always appear over user content, so set a baseline\n// very high z-index for the overlay container, which is where we create the new\n// stacking context for all overlays.\n$overlay-container-z-index: 1000 !default;\n$overlay-z-index: 1000 !default;\n$overlay-backdrop-z-index: 1000 !default;\n\n// Background color for all of the backdrops\n$overlay-backdrop-color: rgba(0, 0, 0, 0.32) !default;\n\n// Default backdrop animation is based on the Material Design swift-ease-out.\n$backdrop-animation-duration: 400ms !default;\n$backdrop-animation-timing-function: cubic-bezier(0.25, 0.8, 0.25, 1) !default;\n\n/// Emits structural styles required for cdk/overlay to function.\n@mixin overlay() {\n .cdk-overlay-container, .cdk-global-overlay-wrapper {\n // Disable events from being captured on the overlay container.\n pointer-events: none;\n\n // The container should be the size of the viewport.\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n }\n\n // The overlay-container is an invisible element which contains all individual overlays.\n .cdk-overlay-container {\n position: fixed;\n z-index: $overlay-container-z-index;\n\n &:empty {\n // Hide the element when it doesn't have any child nodes. This doesn't\n // include overlays that have been detached, rather than disposed.\n display: none;\n }\n }\n\n // We use an extra wrapper element in order to use make the overlay itself a flex item.\n // This makes centering the overlay easy without running into the subpixel rendering\n // problems tied to using `transform` and without interfering with the other position\n // strategies.\n .cdk-global-overlay-wrapper {\n display: flex;\n position: absolute;\n z-index: $overlay-z-index;\n }\n\n // A single overlay pane.\n .cdk-overlay-pane {\n // Note: it's important for this one to start off `absolute`,\n // in order for us to be able to measure it correctly.\n position: absolute;\n pointer-events: auto;\n box-sizing: border-box;\n z-index: $overlay-z-index;\n\n // For connected-position overlays, we set `display: flex` in\n // order to force `max-width` and `max-height` to take effect.\n display: flex;\n max-width: 100%;\n max-height: 100%;\n }\n\n .cdk-overlay-backdrop {\n // TODO(jelbourn): reuse sidenav fullscreen mixin.\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n\n z-index: $overlay-backdrop-z-index;\n pointer-events: auto;\n -webkit-tap-highlight-color: transparent;\n transition: opacity $backdrop-animation-duration $backdrop-animation-timing-function;\n opacity: 0;\n\n &.cdk-overlay-backdrop-showing {\n opacity: 1;\n\n // Note that we can't import and use the `high-contrast` mixin from `_a11y.scss`, because\n // this file will be copied to the top-level `cdk` package when putting together the files\n // for npm. Any relative import paths we use here will become invalid once the file is copied.\n .cdk-high-contrast-active & {\n // In high contrast mode the rgba background will become solid\n // so we need to fall back to making it opaque using `opacity`.\n opacity: 0.6;\n }\n }\n }\n\n .cdk-overlay-dark-backdrop {\n background: $overlay-backdrop-color;\n }\n\n .cdk-overlay-transparent-backdrop {\n // Define a transition on the visibility so that the `transitionend` event can fire immediately.\n transition: visibility 1ms linear, opacity 1ms linear;\n visibility: hidden;\n opacity: 1;\n\n // Note: as of Firefox 57, having the backdrop be `background: none` will prevent it from\n // capturing the user's mouse scroll events. Since we also can't use something like\n // `rgba(0, 0, 0, 0)`, we work around the inconsistency by not setting the background at\n // all and using `opacity` to make the element transparent.\n &.cdk-overlay-backdrop-showing {\n opacity: 0;\n visibility: visible;\n }\n }\n\n .cdk-overlay-backdrop-noop-animation {\n transition: none;\n }\n\n // Overlay parent element used with the connected position strategy. Used to constrain the\n // overlay element's size to fit within the viewport.\n .cdk-overlay-connected-position-bounding-box {\n position: absolute;\n z-index: $overlay-z-index;\n\n // We use `display: flex` on this element exclusively for centering connected overlays.\n // When *not* centering, a top/left/bottom/right will be set which overrides the normal\n // flex layout.\n display: flex;\n\n // We use the `column` direction here to avoid some flexbox issues in Edge\n // when using the \"grow after open\" options.\n flex-direction: column;\n\n // Add some dimensions so the element has an `innerText` which some people depend on in tests.\n min-width: 1px;\n min-height: 1px;\n }\n\n // Used when disabling global scrolling.\n .cdk-global-scrollblock {\n position: fixed;\n\n // Necessary for the content not to lose its width. Note that we're using 100%, instead of\n // 100vw, because 100vw includes the width plus the scrollbar, whereas 100% is the width\n // that the element had before we made it `fixed`.\n width: 100%;\n\n // Note: this will always add a scrollbar to whatever element it is on, which can\n // potentially result in double scrollbars. It shouldn't be an issue, because we won't\n // block scrolling on a page that doesn't have a scrollbar in the first place.\n overflow-y: scroll;\n }\n}\n","// Structural styles for the autosize text fields.\n@mixin text-field-autosize() {\n // Remove the resize handle on autosizing textareas, because whatever height\n // the user resized to will be overwritten once they start typing again.\n textarea.cdk-textarea-autosize {\n resize: none;\n }\n\n // This class is temporarily applied to the textarea when it is being measured. It is immediately\n // removed when measuring is complete. We use `!important` rules here to make sure user-specified\n // rules do not interfere with the measurement.\n textarea.cdk-textarea-autosize-measuring {\n @include _autosize-measuring-base;\n height: auto !important;\n overflow: hidden !important;\n }\n\n // Similar to the `cdk-textarea-autosize-measuring` class, but only applied on Firefox. We need\n // to use this class, because Firefox has a bug where changing the `overflow` breaks the user's\n // ability to undo/redo what they were typing (see #16629). This class is only scoped to Firefox,\n // because the measurements there don't seem to be affected by the `height: 0`, whereas on other\n // browsers they are, e.g. Chrome detects longer text and IE does't resize back to normal.\n // Identical issue report: https://bugzilla.mozilla.org/show_bug.cgi?id=448784\n textarea.cdk-textarea-autosize-measuring-firefox {\n @include _autosize-measuring-base;\n height: 0 !important;\n }\n}\n\n// Core styles that enable monitoring autofill state of text fields.\n@mixin text-field-autofill() {\n // Keyframes that apply no styles, but allow us to monitor when an text field becomes autofilled\n // by watching for the animation events that are fired when they start. Note: the /*!*/ comment is\n // needed to prevent LibSass from stripping the keyframes out.\n // Based on: https://medium.com/@brunn/detecting-autofilled-fields-in-javascript-aed598d25da7\n @keyframes cdk-text-field-autofill-start {/*!*/}\n @keyframes cdk-text-field-autofill-end {/*!*/}\n\n .cdk-text-field-autofill-monitored:-webkit-autofill {\n // Since Chrome 80 we need a 1ms delay, or the animationstart event won't fire.\n animation: cdk-text-field-autofill-start 0s 1ms;\n }\n\n .cdk-text-field-autofill-monitored:not(:-webkit-autofill) {\n // Since Chrome 80 we need a 1ms delay, or the animationstart event won't fire.\n animation: cdk-text-field-autofill-end 0s 1ms;\n }\n}\n\n@mixin _autosize-measuring-base {\n // Having 2px top and bottom padding seems to fix a bug where Chrome gets an incorrect\n // measurement. We just have to account for it later and subtract it off the final result.\n padding: 2px 0 !important;\n box-sizing: content-box !important;\n}\n\n// Used to generate UIDs for keyframes used to change the text field autofill styles.\n$autofill-color-frame-count: 0;\n\n// Mixin used to apply custom background and foreground colors to an autofilled text field.\n// Based on: https://stackoverflow.com/questions/2781549/\n// removing-input-background-colour-for-chrome-autocomplete#answer-37432260\n@mixin text-field-autofill-color($background, $foreground:'') {\n @keyframes cdk-text-field-autofill-color-#{$autofill-color-frame-count} {\n to {\n background: $background;\n @if $foreground != '' { color: $foreground; }\n }\n }\n\n &:-webkit-autofill {\n animation: cdk-text-field-autofill-color-#{$autofill-color-frame-count} both;\n }\n\n &.cdk-text-field-autofill-monitored:-webkit-autofill {\n // Since Chrome 80 we need a 1ms delay for cdk-text-field-autofill-start, or the animationstart\n // event won't fire.\n animation: cdk-text-field-autofill-start 0s 1ms,\n cdk-text-field-autofill-color-#{$autofill-color-frame-count} both;\n }\n\n $autofill-color-frame-count: $autofill-color-frame-count + 1 !global;\n}\n\n// @deprecated Use `autosize` and `autofill` instead.\n@mixin text-field {\n @include text-field-autosize();\n @include text-field-autofill();\n}\n","@use 'sass:map';\n@use 'sass:meta';\n@use '@angular/cdk';\n@use '../style/layout-common';\n@use '../theming/theming';\n@use '../theming/inspection';\n\n// Private sass variables that will be used as reference throughout component stylesheets.\n$default-border-width: 3px;\n$default-border-style: solid;\n$default-border-color: transparent;\n$default-border-radius: 4px;\n\n// Mixin that renders the focus indicator structural styles.\n@mixin structural-styling($prefix) {\n .#{$prefix}-focus-indicator {\n position: relative;\n\n &::before {\n @include layout-common.fill();\n box-sizing: border-box;\n pointer-events: none;\n display: var(--#{$prefix}-focus-indicator-display, none); // Hide the indicator by default.\n border: var(\n --#{$prefix}-focus-indicator-border-width,\n #{$default-border-width}\n )\n var(\n --#{$prefix}-focus-indicator-border-style,\n #{$default-border-style}\n )\n var(\n --#{$prefix}-focus-indicator-border-color,\n #{$default-border-color}\n );\n border-radius: var(\n --#{$prefix}-focus-indicator-border-radius,\n #{$default-border-radius}\n );\n }\n\n // By default, render the focus indicator when the focus indicator host element takes focus.\n // Defining a pseudo element's content will cause it to render.\n &:focus::before {\n content: '';\n }\n }\n\n // Enable the indicator in high contrast mode.\n @include cdk.high-contrast(active, off) {\n @include customize-focus-indicators((display: block), $prefix);\n }\n}\n\n// Generates CSS variable declarations from a map.\n@mixin _output-variables($map) {\n @each $key, $value in $map {\n @if ($value) {\n --#{$key}: #{$value};\n }\n }\n}\n\n// Mixin that dedups CSS variables for the strong-focus-indicators mixin.\n@mixin customize-focus-indicators($config, $prefix) {\n $border-style: map.get($config, border-style);\n $border-width: map.get($config, border-width);\n $border-radius: map.get($config, border-radius);\n $border-color: map.get($config, border-color);\n $display: map.get($config, display);\n $map: (\n '#{$prefix}-focus-indicator-border-style': $border-style,\n '#{$prefix}-focus-indicator-border-width': $border-width,\n '#{$prefix}-focus-indicator-border-radius': $border-radius,\n '#{$prefix}-focus-indicator-border-color': $border-color,\n '#{$prefix}-focus-indicator-display': $display,\n );\n\n @if (&) {\n @include _output-variables($map);\n }\n @else {\n // We use `html` here instead of `:root`, because the\n // latter causes some issues with internal tooling.\n html {\n @include _output-variables($map);\n }\n }\n}\n\n@mixin strong-focus-indicators($config: ()) {\n // Default focus indicator config.\n $default-config: (\n border-color: black,\n display: block,\n );\n\n // Merge default config with user config.\n $config: map.merge($default-config, $config);\n\n @include customize-focus-indicators($config, 'mat');\n}\n\n@mixin mdc-strong-focus-indicators($config: ()) {\n // Default focus indicator config.\n $default-config: (\n border-color: black,\n display: block,\n );\n\n // Merge default config with user config.\n $config: map.merge($default-config, $config);\n\n @include customize-focus-indicators($config, 'mat-mdc');\n}\n\n@mixin strong-focus-indicators-color($theme-or-color) {\n @if meta.type-of($theme-or-color) == 'color' {\n @include customize-focus-indicators((\n border-color: $theme-or-color\n ), 'mat');\n }\n @else {\n $border-color: inspection.get-theme-color($theme-or-color, primary);\n @include customize-focus-indicators((\n border-color: $border-color\n ), 'mat');\n }\n}\n\n@mixin strong-focus-indicators-theme($theme-or-color) {\n @if meta.type-of($theme-or-color) == 'color' {\n @include customize-focus-indicators((\n border-color: $theme-or-color\n ), 'mat');\n }\n @else {\n @include theming.private-check-duplicate-theme-styles($theme-or-color, 'mat-focus-indicators') {\n @if inspection.theme-has($theme-or-color, color) {\n @include strong-focus-indicators-color($theme-or-color);\n }\n }\n }\n}\n\n@mixin mdc-strong-focus-indicators-color($theme-or-color) {\n @if meta.type-of($theme-or-color) == 'color' {\n @include customize-focus-indicators((\n border-color: $theme-or-color\n ), 'mat-mdc');\n }\n @else {\n $border-color: inspection.get-theme-color($theme-or-color, primary);\n @include customize-focus-indicators((\n border-color: $border-color\n ), 'mat-mdc');\n }\n}\n\n@mixin mdc-strong-focus-indicators-theme($theme-or-color) {\n @if meta.type-of($theme-or-color) == 'color' {\n @include customize-focus-indicators((\n border-color: $theme-or-color\n ), 'mat-mdc');\n }\n @else {\n @include theming.private-check-duplicate-theme-styles(\n $theme-or-color, 'mat-mdc-focus-indicators') {\n @if inspection.theme-has($theme-or-color, color) {\n @include mdc-strong-focus-indicators-color($theme-or-color);\n }\n }\n }\n}\n","// This mixin ensures an element spans to fill the nearest ancestor with defined positioning.\n@mixin fill {\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n position: absolute;\n}\n","@use 'sass:color';\n@use 'sass:map';\n@use 'sass:meta';\n\n/// Include content under the current selector (&) or the document root if there is no current\n/// selector.\n/// @param {String} $root [html] The default root selector to use when there is no current selector.\n/// @output The given content under the current selector, or root selector if there is no current\n/// selector.\n/// @content Content to output under the current selector, or root selector if there is no current\n/// selector.\n@mixin current-selector-or-root($root: html) {\n @if & {\n @content;\n }\n @else {\n #{$root} {\n @content;\n }\n }\n}\n\n/// A version of the standard `map.merge` function that takes a variable number of arguments.\n/// Each argument is merged into the final result from left to right.\n/// @param {List} $maps The maps to combine with map.merge\n/// @return {Map} The combined result of successively calling map.merge with each parameter.\n@function merge-all($maps...) {\n $result: ();\n @each $map in $maps {\n $result: map.merge($result, $map);\n }\n @return $result;\n}\n\n/// A version of the standard `map.deep-merge` function that takes a variable number of arguments.\n/// Each argument is deep-merged into the final result from left to right.\n/// @param {List} $maps The maps to combine with map.deep-merge\n/// @return {Map} The combined result of successively calling map.deep-merge with each parameter.\n@function deep-merge-all($maps...) {\n $result: ();\n @each $map in $maps {\n $result: map.deep-merge($result, $map);\n }\n @return $result;\n}\n\n/// Coerces the given value to a list, by converting any non-list value into a single-item list.\n/// This should be used when dealing with user-passed lists of args to avoid confusing errors,\n/// since Sass treats `($x)` as equivalent to `$x`.\n/// @param {Any} $value The value to coerce to a list.\n/// @return {List} The original $value if it was a list, otherwise a single-item list containing\n/// $value.\n@function coerce-to-list($value) {\n @return if(meta.type-of($value) != 'list', ($value,), $value);\n}\n\n/// A version of the Sass `color.change` function that is safe ot use with CSS variables.\n@function safe-color-change($color, $args...) {\n $args: meta.keywords($args);\n @return if(meta.type-of($color) == 'color', color.change($color, $args...), $color);\n}\n","//\n// Copyright 2020 Google Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n//\n\n@use 'sass:list';\n@use 'sass:map';\n@use 'sass:meta';\n@use './gss';\n\n/// When true, add an additional property/value declaration before declarations\n/// that use advanced features such as custom properties or CSS functions. This\n/// adds fallback support for older browsers such as IE11 that do not support\n/// these features at the cost of additional CSS. Set this variable to false to\n/// disable generating fallback declarations.\n$enable-fallback-declarations: true !default;\n\n/// Writes a CSS property/value declaration. This mixin is used throughout the\n/// theme package for consistency for dynamically setting CSS property values.\n///\n/// This mixin may optionally take a fallback value. For advanced features such\n/// as custom properties or CSS functions like min and max, a fallback value is\n/// recommended to support older browsers.\n///\n/// @param {String} $property - The CSS property of the declaration.\n/// @param {*} $value - The value of the CSS declaration. The value should be\n/// resolved by other theme functions first (i.e. custom property Maps and\n/// Material theme keys are not supported in this mixin). If the value is\n/// null, no declarations will be emitted.\n/// @param {*} $fallback - An optional fallback value for older browsers. If\n/// provided, a second property/value declaration will be added before the\n/// main property/value declaration.\n/// @param {Map} $gss - An optional Map of GSS annotations to add.\n/// @param {Bool} $important - If true, add `!important` to the declaration.\n@mixin declaration(\n $property,\n $value,\n $fallback-value: null,\n $gss: (),\n $important: false\n) {\n // Normally setting a null value to a property will not emit CSS, so mixins\n // wouldn't need to check this. However, Sass will throw an error if the\n // interpolated property is a custom property.\n @if $value != null {\n $important-rule: if($important, ' !important', '');\n\n @if $fallback-value and $enable-fallback-declarations {\n @include gss.annotate($gss);\n #{$property}: #{$fallback-value} #{$important-rule};\n\n // Add @alternate to annotations.\n $gss: map.merge(\n $gss,\n (\n alternate: true,\n )\n );\n }\n\n @include gss.annotate($gss);\n #{$property}: #{$value}#{$important-rule};\n }\n}\n\n/// Unpacks shorthand values for CSS properties (i.e. lists of 1-3 values).\n/// If a list of 4 values is given, it is returned as-is.\n///\n/// Examples:\n///\n/// unpack-value(4px) => 4px 4px 4px 4px\n/// unpack-value(4px 2px) => 4px 2px 4px 2px\n/// unpack-value(4px 2px 2px) => 4px 2px 2px 2px\n/// unpack-value(4px 2px 0 2px) => 4px 2px 0 2px\n///\n/// @param {Number | Map | List} $value - List of 1 to 4 value numbers.\n/// @return {List} a List of 4 value numbers.\n@function unpack-value($value) {\n @if meta.type-of($value) == 'map' or list.length($value) == 1 {\n @return $value $value $value $value;\n } @else if list.length($value) == 4 {\n @return $value;\n } @else if list.length($value) == 3 {\n @return list.nth($value, 1) list.nth($value, 2) list.nth($value, 3)\n list.nth($value, 2);\n } @else if list.length($value) == 2 {\n @return list.nth($value, 1) list.nth($value, 2) list.nth($value, 1)\n list.nth($value, 2);\n }\n\n @error \"Invalid CSS property value: '#{$value}' is more than 4 values\";\n}\n","@use 'sass:color';\n@use 'sass:map';\n@use '../core/tokens/m2/mat/datepicker' as tokens-mat-datepicker;\n@use '../core/theming/theming';\n@use '../core/theming/inspection';\n@use '../core/tokens/token-utils';\n@use '../core/style/sass-utils';\n@use '../core/typography/typography';\n@use '../button/icon-button-theme';\n\n// TODO(crisbeto): these variables aren't used anymore and should be removed.\n$selected-today-box-shadow-width: 1px;\n$selected-fade-amount: 0.6;\n$range-fade-amount: 0.2;\n$today-fade-amount: 0.2;\n$calendar-body-font-size: 13px !default;\n$calendar-weekday-table-font-size: 11px !default;\n\n@mixin _calendar-color($theme, $palette-name) {\n $palette-color: inspection.get-theme-color($theme, $palette-name);\n $range-color: tokens-mat-datepicker.private-get-range-background-color($palette-color);\n $range-tokens: tokens-mat-datepicker.get-range-color-tokens($range-color);\n $calendar-tokens:\n tokens-mat-datepicker.private-get-calendar-color-palette-color-tokens($theme, $palette-name);\n\n @include token-utils.create-token-values(tokens-mat-datepicker.$prefix,\n map.merge($calendar-tokens, $range-tokens));\n}\n\n@mixin base($theme) {}\n\n@mixin color($theme) {\n @include sass-utils.current-selector-or-root() {\n @include token-utils.create-token-values(tokens-mat-datepicker.$prefix,\n tokens-mat-datepicker.get-color-tokens($theme));\n }\n\n .mat-datepicker-content {\n &.mat-accent {\n @include _calendar-color($theme, accent);\n }\n\n &.mat-warn {\n @include _calendar-color($theme, warn);\n }\n }\n\n .mat-datepicker-toggle-active {\n &.mat-accent {\n $accent-tokens:\n tokens-mat-datepicker.private-get-toggle-color-palette-color-tokens($theme, accent);\n @include token-utils.create-token-values(tokens-mat-datepicker.$prefix, $accent-tokens);\n }\n\n &.mat-warn {\n $warn-tokens:\n tokens-mat-datepicker.private-get-toggle-color-palette-color-tokens($theme, warn);\n @include token-utils.create-token-values(tokens-mat-datepicker.$prefix, $warn-tokens);\n }\n }\n}\n\n@mixin typography($theme) {\n @include sass-utils.current-selector-or-root() {\n @include token-utils.create-token-values(tokens-mat-datepicker.$prefix,\n tokens-mat-datepicker.get-typography-tokens($theme));\n }\n}\n\n@mixin date-range-colors(\n $range-color,\n $comparison-color: tokens-mat-datepicker.$private-default-comparison-color,\n $overlap-color: tokens-mat-datepicker.$private-default-overlap-color,\n $overlap-selected-color:\n tokens-mat-datepicker.private-get-default-overlap-selected-color($overlap-color)) {\n $tokens: tokens-mat-datepicker.get-range-color-tokens(\n $range-color: $range-color,\n $comparison-color: $comparison-color,\n $overlap-color: $overlap-color,\n $overlap-selected-color: $overlap-selected-color,\n );\n\n @include sass-utils.current-selector-or-root() {\n @include token-utils.create-token-values(tokens-mat-datepicker.$prefix, $tokens);\n }\n}\n\n@mixin density($theme) {\n // TODO(crisbeto): move this into the structural styles\n // once the icon button density is switched to tokens.\n\n // Regardless of the user-passed density, we want the calendar\n // previous/next buttons to remain at density -2\n .mat-calendar-controls {\n @include icon-button-theme.density(-2);\n }\n}\n\n@mixin theme($theme) {\n @include theming.private-check-duplicate-theme-styles($theme, 'mat-datepicker') {\n @include base($theme);\n @if inspection.theme-has($theme, color) {\n @include color($theme);\n }\n @if inspection.theme-has($theme, density) {\n @include density($theme);\n }\n @if inspection.theme-has($theme, typography) {\n @include typography($theme);\n }\n }\n}\n","@use 'sass:math';\n@use '@material/density/functions' as mdc-density-functions;\n@use '@material/icon-button/icon-button-theme' as mdc-icon-button-theme;\n@use '../core/tokens/m2/mdc/icon-button' as tokens-mdc-icon-button;\n\n@use './button-theme-private';\n@use '../core/theming/theming';\n@use '../core/theming/inspection';\n\n$_icon-size: 24px;\n\n// TODO(crisbeto): move these into tokens\n@mixin _ripple-color($color) {\n --mat-mdc-button-persistent-ripple-color: #{$color};\n --mat-mdc-button-ripple-color: #{rgba($color, 0.1)};\n}\n\n@mixin base($theme) {\n // TODO(mmalerba): Move icon button base tokens here\n}\n\n@mixin color($theme) {\n $color-tokens: tokens-mdc-icon-button.get-color-tokens($theme);\n $is-dark: inspection.get-theme-type($theme) == dark;\n\n .mat-mdc-icon-button {\n @include button-theme-private.ripple-theme-styles($theme, false);\n @include mdc-icon-button-theme.theme($color-tokens);\n @include _ripple-color(if($is-dark, #fff, #000));\n\n &.mat-primary {\n @include _ripple-color(inspection.get-theme-color($theme, primary));\n @include mdc-icon-button-theme.theme(\n tokens-mdc-icon-button.private-get-color-palette-color-tokens($theme, primary));\n }\n\n &.mat-accent {\n @include _ripple-color(inspection.get-theme-color($theme, accent));\n @include mdc-icon-button-theme.theme(\n tokens-mdc-icon-button.private-get-color-palette-color-tokens($theme, accent));\n }\n\n &.mat-warn {\n @include _ripple-color(inspection.get-theme-color($theme, warn));\n @include mdc-icon-button-theme.theme(\n tokens-mdc-icon-button.private-get-color-palette-color-tokens($theme, warn));\n }\n }\n}\n\n@mixin typography($theme) {}\n\n@mixin density($theme) {\n $density-scale: inspection.get-theme-density($theme);\n // Manually apply the expected density theming, and include the padding\n // as it was applied before\n $calculated-size: mdc-density-functions.prop-value(\n $density-config: (\n size: (\n default: 48px,\n maximum: 48px,\n minimum: 28px,\n ),\n ),\n $density-scale: $density-scale,\n $property-name: size,\n );\n\n // Use `mat-mdc-button-base` to increase the specificity over the button's structural styles.\n .mat-mdc-icon-button.mat-mdc-button-base {\n // Match the styles that used to be present. This is necessary for backwards\n // compat to match the previous implementations selector count (two classes).\n @include mdc-icon-button-theme.theme((\n state-layer-size: $calculated-size,\n ));\n\n // TODO: Switch calculated-size to \"var(--mdc-icon-button-state-layer-size)\"\n // Currently fails validation because the variable is \"undefined\"\n // in the sass stack.\n // TODO: Switch icon-size to \"var(--mdc-icon-button-icon-size)\". Currently\n // fails validation because the variable is \"undefined\" in the sass stack.\n width: var(--mdc-icon-button-state-layer-size);\n height: var(--mdc-icon-button-state-layer-size);\n padding: math.div($calculated-size - $_icon-size, 2);\n\n @include button-theme-private.touch-target-density($density-scale);\n }\n}\n\n@mixin theme($theme) {\n @include theming.private-check-duplicate-theme-styles($theme, 'mat-icon-button') {\n @include base($theme);\n @if inspection.theme-has($theme, color) {\n @include color($theme);\n }\n @if inspection.theme-has($theme, density) {\n @include density($theme);\n }\n @if inspection.theme-has($theme, typography) {\n @include typography($theme);\n }\n }\n}\n","@use 'sass:map';\n@use '@material/ripple/ripple-theme' as mdc-ripple-theme;\n@use '@material/theme/theme-color' as mdc-theme-color;\n\n@use '../core/mdc-helpers/mdc-helpers';\n@use '../core/theming/inspection';\n\n@mixin _ripple-color($color) {\n --mat-mdc-button-persistent-ripple-color: #{$color};\n --mat-mdc-button-ripple-color: #{rgba($color, 0.1)};\n}\n\n@mixin ripple-theme-styles($theme, $is-filled) {\n $opacities: if(inspection.get-theme-type($theme) == dark,\n mdc-ripple-theme.$light-ink-opacities, mdc-ripple-theme.$dark-ink-opacities);\n\n // Ideally these styles would be structural, but MDC bases some of the opacities on the theme.\n &:hover .mat-mdc-button-persistent-ripple::before {\n opacity: map.get($opacities, hover);\n }\n\n &.cdk-program-focused,\n &.cdk-keyboard-focused {\n .mat-mdc-button-persistent-ripple::before {\n opacity: map.get($opacities, focus);\n }\n }\n\n &:active .mat-mdc-button-persistent-ripple::before {\n opacity: map.get($opacities, press);\n }\n\n @include _ripple-color(mdc-theme-color.prop-value(on-surface));\n\n &.mat-primary {\n @include _ripple-color(mdc-theme-color.prop-value(if($is-filled, on-primary, primary)));\n }\n\n &.mat-accent {\n @include _ripple-color(mdc-theme-color.prop-value(if($is-filled, on-secondary, secondary)));\n }\n\n &.mat-warn {\n @include _ripple-color(mdc-theme-color.prop-value(if($is-filled, on-error, error)));\n }\n}\n\n// Wraps the content style in a selector for the disabled state.\n// MDC adds theme color by using :not(:disabled), so just using [disabled] once will not\n// override this, neither will it apply to anchor tags. This needs to override the\n// previously set theme color, so it must be ordered after the theme styles.\n// TODO(andrewseguin): Discuss with the MDC team to see if we can avoid the :not(:disabled) by\n// manually styling disabled buttons with a [disabled] selector.\n@mixin apply-disabled-style() {\n &[disabled][disabled] {\n @content;\n }\n}\n\n// Hides the touch target on lower densities.\n@mixin touch-target-density($scale) {\n @include mdc-helpers.if-touch-targets-unsupported($scale) {\n .mat-mdc-button-touch-target {\n display: none;\n }\n }\n}\n",".mat-calendar {\n font-size: small !important;\n font-family: v(eui-base-font-family) !important;\n\n &.mat-calendar-year {\n .mat-calendar-period-button {\n display: none;\n }\n }\n}\n","// MATERIAL Drag & Drop overrides\n.cdk-drag-handle {\n cursor: move !important;\n}\n\n.cdk-drop-list {\n display: flex;\n min-width: 100%;\n\n &:not(.cdk-drop-list-disabled) {\n min-height: v(eui-base-spacing-xl);\n }\n}\n\n// Animate items as they're being sorted\n.cdk-drop-list-dragging .cdk-drag {\n transition: transform 250ms cubic-bezier(0, 0, 0.2, 1);\n}\n\n// Animate an item that has been dropped\n.cdk-drag-animating {\n transition: transform 300ms cubic-bezier(0, 0, 0.2, 1);\n}\n\n// Grabbed element\n.cdk-drag-preview {\n background-color: transparent; // v(eui-base-color-white);\n box-shadow: none;\n cursor: grab !important;\n display: table; // trick to get the full row width\n margin: 0 !important;\n opacity: 1;\n position: relative;\n}\n\n.cdk-drag-dragging {\n opacity: 1;\n}\n\n.cdk-drag-placeholder {\n background-color: transparent;\n opacity: 0.35;\n\n &:hover {\n outline: 2px dashed v(eui-base-color-grey-35);\n outline-offset: 2px;\n }\n}\n","// Disable global scrollbars (used in full screen eui-dialog for example)\n.cdk-global-scrollblock {\n position: fixed;\n overflow-y: visible; // Material default: scroll\n width: 100%;\n @include eui-scrollbars;\n left: 0 !important;\n}\n@include media($eui-bkp-mobile) {\n .cdk-global-scrollblock {\n height: 100%;\n overflow: auto;\n position: fixed;\n width: 100%;\n @include eui-scrollbars;\n }\n}\n","@mixin eui-scrollbars( $size: 8px, $foreground-color: v(eui-base-color-grey-20), $background-color: v(eui-base-color-grey-5), $border-radius: 5rem, $state: active ) {\n &::-webkit-scrollbar {\n display: inherit;\n height: $size; // horizontal scroll\n width: $size; // vertical scroll\n // z-index: v(eui-base-z-index-highlighted); // should be when in edition mode\n @if ($state == active) {\n background-color: $background-color;\n }\n @else {\n background-color: transparent;\n }\n }\n\n // This is the scrolling bar\n &::-webkit-scrollbar-thumb {\n @if ($state == active) {\n background-color: $foreground-color;\n border-radius: $border-radius;\n\n &:hover {\n background-color: v(eui-base-color-grey-35);\n }\n }\n @else {\n background-color: transparent;\n }\n }\n\n // This is the scroll container\n &::-webkit-scrollbar-track {\n @if ($state == active) {\n background-color: $background-color;\n border-radius: 0;\n }\n @else {\n background-color: transparent;\n }\n }\n}\n@mixin eui-scrollbars-inactive($size: 8px) {\n &::-webkit-scrollbar {\n background-color: transparent;\n display: inherit;\n height: $size; // horizontal scroll\n width: $size; // vertical scroll\n }\n\n &::-webkit-scrollbar-thumb {\n background-color: transparent;\n }\n\n &::-webkit-scrollbar-track {\n background-color: transparent;\n }\n}\n","$default-feature: \"min-width\";\n@mixin media($query: $feature $value $columns) {\n @if length($query) == 1 {\n @media screen and ($default-feature: nth($query, 1)) {\n @content;\n }\n }\n @else {\n $loop-to: length($query);\n $media-query: \"screen and \";\n @if is-not(is-even(length($query))) {\n $loop-to: $loop-to - 1;\n }\n $i: 1;\n @while $i <=$loop-to {\n $media-query: $media-query + \"(\" + nth($query, $i) + \": \" + nth($query, $i + 1) + \") \";\n @if ($i + 1) != $loop-to {\n $media-query: $media-query + \"and \";\n }\n $i: $i+2;\n }\n @media #{$media-query} {\n @content;\n }\n }\n}\n",".cdk-overlay-container {\n z-index: v(eui-base-z-index-cdk-overlay-container); // MD: 1000\n\n .mat-menu-panel {\n max-width: inherit;\n min-height: v(eui-base-spacing-l);\n @include eui-scrollbars;\n }\n\n .mat-autocomplete-panel {\n @include eui-scrollbars;\n }\n}\n","@include media($eui-bkp-mobile) {\n .cdk-overlay-container {\n height: 100vh; // Fallback\n height: calc(var(--eui-app-vh, 1vh) * 100);\n left: 0;\n position: fixed;\n top: 0;\n width: 100vw;\n }\n}\n",".cdk-overlay-pane {\n background-color: v(eui-base-color-white);\n z-index: v(eui-base-z-index-cdk-overlay-pane); // Dynamically changes based on CDK context\n}\n","// Hide browser agent default (black) color\n:focus,\n:focus-visible {\n outline: none;\n}\n","html {\n display: block;\n height: 100%;\n font-size: var(--eui-base-font-size);\n line-height: var(--eui-base-line-height);\n}\n","body {\n background-color: var(--eui-base-color-grey-2);\n color: var(--eui-base-color-grey-100);\n font-family: var(--eui-base-font-family);\n font-feature-settings: 'liga';\n font-size: var(--eui-base-font-size);\n -moz-font-smoothing: antialiased;\n -webkit-font-smoothing: antialiased;\n font-style: normal;\n font-weight: normal;\n height: 100%;\n line-height: var(--eui-base-line-height);\n margin: 0;\n text-align: left;\n text-rendering: optimizeLegibility;\n}\n","// Make viewport responsive\n//\n// @viewport is needed because IE 10+ doesn't honor <meta name=\"viewport\"> in\n// some cases. See https://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/.\n// Eventually @viewport will replace <meta name=\"viewport\">.\n//\n// However, `device-width` is broken on IE 10 on Windows (Phone) 8,\n// (see https://timkadlec.com/2013/01/windows-phone-8-and-device-width/ and https://github.com/twbs/bootstrap/issues/10497)\n// and the fix for that involves a snippet of JavaScript to sniff the user agent\n// and apply some conditional CSS.\n//\n// See https://getbootstrap.com/getting-started/#support-ie10-width for the relevant hack.\n//\n// Wrap `@viewport` with `@at-root` for when folks do a nested import (e.g.,\n// `.class-name { @import \"bootstrap\"; }`).\n@at-root {\n @-ms-viewport {\n width: device-width;\n }\n}\n\n/* ==========================================================================\n #BOX-SIZING\n ========================================================================== */\n\n/**\n * More sensible default box-sizing:\n * css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice\n */\n\nhtml {\n box-sizing: border-box;\n}\n\n* {\n &::before,\n &::after,\n & {\n box-sizing: inherit;\n }\n}\n\n// Avoid 300ms click delay on touch devices that support the `touch-action` CSS property.\n//\n// In particular, unlike most other browsers, IE11+Edge on Windows 10 on touch devices and IE Mobile 10-11\n// DON'T remove the click delay when `<meta name=\"viewport\" content=\"width=device-width\">` is present.\n// However, they DO support removing the click delay via `touch-action: manipulation`.\n// See:\n// * https://v4-alpha.getbootstrap.com/content/reboot/#click-delay-optimization-for-touch\n// * http://caniuse.com/#feat=css-touch-action\n// * https://patrickhlauke.github.io/touch/tests/results/#suppressing-300ms-delay\n\na,\narea,\nbutton,\n[role=\"button\"],\ninput,\nlabel,\nselect,\nsummary,\ntextarea {\n touch-action: manipulation;\n}\n\n// Suppress the focus outline on elements that cannot be accessed via keyboard.\n// This prevents an unwanted focus outline from appearing around elements that\n// might still respond to pointer events.\n//\n// Credit: https://github.com/suitcss/base\n[tabindex=\"-1\"]:focus {\n outline: none !important;\n}\n\n// Always hide an element with the `hidden` HTML attribute (from PureCSS).\n[hidden] {\n display: none !important;\n}\n\n// NORMALIZE reset alignements (see 00-reset)\np,\nlabel,\nblockquote,\nabbr,\nmark,\ndel {\n font-size: v(eui-base-font-size);\n}\n\nb, strong {\n font-weight: bold;\n}\n","table.eui-table-default {\n background-color: transparent;\n border-collapse: collapse;\n border-spacing: 0;\n color: v(eui-base-color-font);\n max-width: 100%;\n overflow: auto;\n position: relative;\n\n // Overall settings (default)\n thead > tr > th,\n tbody > tr > td,\n tfoot > tr > td {\n vertical-align: top;\n }\n\n tr > th,\n tr > td {\n padding: v(eui-base-spacing-s);\n }\n\n thead {\n th {\n border-bottom: 1px solid v(eui-base-color-grey-10);\n color: v(eui-base-color-grey-75);\n font-size: v(eui-base-font-size);\n padding: v(eui-base-spacing-m) v(eui-base-spacing-s);\n vertical-align: middle;\n @include eui-font-family-bold;\n }\n\n tr {\n background: v(eui-base-color-grey-10);\n border-top: 0;\n }\n }\n\n // Striped & hovered tables by default (UX)\n tbody {\n -webkit-overflow-scrolling: touch; // optional - enable iOS momentum scrolling\n\n tr:nth-of-type(odd) {\n background-color: v(eui-base-color-grey-2);\n\n &:hover {\n background-color: v(eui-base-color-grey-10);\n }\n }\n\n tr:nth-of-type(even) {\n background-color: v(eui-base-color-grey-5);\n\n &:hover {\n background-color: v(eui-base-color-grey-10);\n }\n }\n }\n\n tr {\n border-bottom: 1px solid v(eui-base-color-grey-20);\n display: table-row;\n }\n\n // Compact table\n &--compact {\n thead {\n th {\n padding: v(eui-base-spacing-xs) v(eui-base-spacing-s);\n }\n }\n\n tr > td {\n padding: v(eui-base-spacing-2xs) v(eui-base-spacing-s);\n }\n }\n\n // Responsive table\n &--responsive {\n display: table;\n width: 100%;\n\n &--bordered {\n border: 0; // Prevent double border on horizontal scroll due to use of `display: block;`\n }\n }\n\n // Bordered table\n &--bordered {\n th,\n td {\n border: 1px solid v(eui-base-color-grey-20);\n }\n }\n\n // Shadowed table\n &--shadowed {\n box-shadow: v(eui-base-shadow-1);\n }\n\n // NoWrap table content (also disables ellipsis)\n &--nowrap {\n white-space: nowrap;\n\n thead > tr > th,\n tbody > tr > td,\n tfoot > tr > td {\n white-space: nowrap;\n }\n }\n\n // Centered table\n &--centered {\n display: table;\n margin: 0 auto;\n width: auto;\n }\n\n // Middle aligned cells content\n &--align-middle {\n thead > tr > th,\n tbody > tr > td,\n tfoot > tr > td {\n vertical-align: middle;\n }\n }\n}\n","@mixin eui-font($size: m, $family: ui) {\n $selected-family: map-get($eui-base-tokens-fonts, $family);\n $selected-font-definition: map-get($selected-family, $size);\n\n font: $selected-font-definition;\n}\n","/** Common weight name mapping\n @See the OpenType specification:\n https://docs.microsoft.com/en-us/typography/opentype/spec/os2#usweightclass\n The numerical values 100 to 900 roughly correspond to the following common weight names:\n 100 Thin (Hairline)\n 200\t Extra Light (Ultra Light)\n 300\t Light\n 400\t Normal\n 500\t Medium\n 600\t Semi Bold (Demi Bold)\n 700\t Bold\n 800\t Extra Bold (Ultra Bold)\n 900\t Black (Heavy)\n**/\n@mixin eui-font-family() {\n @include eui-font(m, ui);\n}\n@mixin eui-font-family-normal() {\n @include eui-font(m, ui);\n}\n@mixin eui-font-family-s() {\n @include eui-font(s, ui);\n}\n@mixin eui-font-family-xs() {\n @include eui-font(xs, ui);\n}\n@mixin eui-font-family-l() {\n @include eui-font(l, ui);\n}\n@mixin eui-font-family-xl() {\n @include eui-font(xl, ui);\n}\n\n// bold\n@mixin eui-font-family-bold() {\n @include eui-font(m, ui);\n font-weight: 700;\n}\n@mixin eui-font-family-bold-xs() {\n @include eui-font(xs, ui);\n font-weight: 700;\n}\n@mixin eui-font-family-bold-s() {\n @include eui-font(s, ui);\n font-weight: 700;\n}\n@mixin eui-font-family-bold-l() {\n @include eui-font(l, ui);\n font-weight: 700;\n}\n@mixin eui-font-family-bold-xl() {\n @include eui-font(xl, ui);\n font-weight: 700;\n}\n\n// light\n@mixin eui-font-family-light() {\n @include eui-font(m, ui);\n font-weight: 300;\n}\n\n// italic\n@mixin eui-font-family-italic() {\n @include eui-font(m, ui);\n font-style: italic;\n}\n@mixin eui-font-family-bold() {\n @include eui-font(m, ui);\n font-weight: 700;\n}\n\n// bold italic\n@mixin eui-font-family-bold-italic() {\n @include eui-font(m, ui);\n font-style: italic;\n font-weight: 700;\n}\n\n// monospace\n@mixin eui-font-family-monospace() {\n font-family: v(eui-base-font-family-monospace);\n font-style: normal;\n font-weight: 400;\n}\n","// Sets the layout of the euiClearable directive\n.eui-clearable-wrapper {\n align-items: center;\n display: flex;\n position: relative;\n width: 100%;\n\n .eui-input-text--clearable-icon {\n bottom: calc(#{v(eui-base-spacing-s)} - 2px);\n cursor: pointer;\n position: absolute;\n right: v(eui-base-spacing-s);\n user-select: none;\n visibility: visible;\n z-index: v(eui-base-z-index-clearable-icon);\n @include eui-accessible-focus();\n\n > svg {\n fill: v(eui-base-color-grey-35);\n\n &:hover {\n fill: v(eui-base-color-danger-100);\n }\n }\n }\n}\n","$outline-offset: -2px;\n$outline-size: 2px;\n\n// Call this mixin to enforce the accessibility visuals when on focus/active\n@mixin eui-accessible-focus($offset: $outline-offset, $size: $outline-size) {\n &:active:not([readonly]),\n &:focus:not([readonly]) {\n outline: $size solid v(eui-base-color-accessible-focus);\n outline-offset: $offset;\n transition: none;\n }\n\n // &:focus-visible:not([readonly]) {\n // outline: $size solid v(eui-base-color-accessible-focus);\n // outline-offset: $offset;\n // transition: none;\n // }\n\n // Forced focusable element\n [tabindex=\"0\"] {\n &:active:not([readonly]),\n &:focus:not([readonly]) {\n outline: $size solid v(eui-base-color-accessible-focus);\n outline-offset: $offset;\n transition: none;\n }\n }\n}\n",".eui-input-maxlength-wrapper {\n position: relative;\n width: 100%;\n\n .eui-input-maxlength {\n @include eui-font(xs, ui);\n background-color: v(eui-base-color-grey-10);\n border: 1px solid v(eui-base-color-grey-50);\n border-radius: v(eui-base-border-radius);\n color: v(eui-base-color-grey-100);\n padding: 0 v(eui-base-spacing-2xs);\n position: absolute;\n right: calc(-1 * #{v(eui-base-spacing-xs)});\n top: calc(-1 * #{v(eui-base-spacing-xs)});\n z-index: v(eui-base-z-index-input-maxlength);\n\n &--invalid {\n background-color: v(eui-base-color-warning-100);\n border-color: v(eui-base-color-warning-100);\n color: v(eui-base-color-white);\n }\n }\n}\n","// IE10+ SVG's aspect ratios and sizes fix\n@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {\n img[src$=\".svg\"] {\n width: 100%;\n }\n}\n@media screen {\n // IE Fix: Bicubic Scaling for Images & full width background (EC logo)\n img {\n background-repeat: no-repeat;\n background-size: 100%;\n -ms-interpolation-mode: bicubic;\n }\n}\n","// COOKIE CONSENT\n.cookie-consent-banner {\n display: block !important;\n min-width: 50% !important;\n position: absolute !important;\n right: 50% !important;\n top: v(eui-base-spacing-m) !important;\n transform: translateX(50%) !important;\n z-index: v(eui-base-z-index-max) !important;\n box-shadow: v(eui-base-shadow-24) !important;\n background: v(eui-base-color-primary) !important;\n color: var(eui-base-color-white) !important;\n}\n","#loader-wrapper {\n height: 100%;\n left: 0;\n position: fixed;\n top: 0;\n width: 100%;\n z-index: 1000;\n\n #loader {\n -webkit-animation: spin 2s linear infinite; /* Chrome, Opera 15+, Safari 5+ */\n animation: spin 2s linear infinite; /* Chrome, Firefox 16+, IE 10+, Opera */\n animation: hourglass 5s linear infinite;\n border: 10px solid transparent;\n border-radius: 50%;\n border-top-color: v(eui-base-color-warning-100);\n display: block;\n height: 200px;\n left: 50%;\n margin: -100px 0 0 -100px;\n position: relative;\n top: 50%;\n width: 200px;\n\n &::before {\n -webkit-animation: spin 2s linear infinite; /* Chrome, Opera 15+, Safari 5+ */\n animation: spin 2s linear infinite; /* Chrome, Firefox 16+, IE 10+, Opera */\n animation: hourglass 4s linear infinite;\n border: 10px solid transparent;\n border-radius: 50%;\n border-top-color: v(eui-base-color-danger-100);\n bottom: 5px;\n content: \"\";\n left: 5px;\n position: absolute;\n right: 5px;\n top: 5px;\n }\n\n &::after {\n -webkit-animation: spin 1s linear infinite; /* Chrome, Opera 15+, Safari 5+ */\n animation: spin 1s linear infinite; /* Chrome, Firefox 16+, IE 10+, Opera */\n animation: hourglass 3s linear infinite;\n border: 10px solid transparent;\n border-radius: 50%;\n border-top-color: v(eui-base-color-primary-100);\n bottom: 20px;\n content: \"\";\n left: 20px;\n position: absolute;\n right: 20px;\n top: 20px;\n }\n }\n}\n\n/* stylelint-enable */\n@-webkit-keyframes spin {\n 0% {\n -webkit-transform: rotate(0deg);\n -ms-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n\n 100% {\n -webkit-transform: rotate(360deg);\n -ms-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n@keyframes spin {\n 0% {\n -webkit-transform: rotate(0deg);\n -ms-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n\n 100% {\n -webkit-transform: rotate(360deg);\n -ms-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n@-webkit-keyframes hourglass {\n 0% {\n transform: rotate(0);\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n 50% {\n transform: rotate(900deg);\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n 100% {\n transform: rotate(1800deg);\n }\n}\n@keyframes hourglass {\n 0% {\n transform: rotate(0);\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n 50% {\n transform: rotate(900deg);\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n 100% {\n transform: rotate(1800deg);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../../../../../node_modules/@eui/styles-base/src/styles/00-reset/_module.scss","eui.scss","../../../../../../../node_modules/@eui/styles-base/src/styles/03-vars/_colors.vars.scss","../../../../../../../node_modules/@eui/styles-base/src/styles/03-vars/_tokens.vars.scss","../../../../../../../node_modules/@eui/styles-base/src/styles/03-vars/_other.vars.scss","02b-base-vars/_layout.vars.scss","02b-base-vars/_other.vars.scss","../../../../../../../node_modules/@eui/styles-base/src/styles/05-assets/icons-svg/_icons-generics.scss","04-vendors/libs/bootstrap/scss/_grid.scss","04-vendors/libs/bootstrap/scss/mixins/_grid.scss","04-vendors/libs/bootstrap/scss/mixins/_breakpoints.scss","../../../../../../../node_modules/@angular/material/core/ripple/_ripple.scss","../../../../../../../node_modules/@angular/cdk/a11y/_index.scss","../../../../../../../node_modules/@angular/cdk/overlay/_index.scss","../../../../../../../node_modules/@angular/cdk/text-field/_index.scss","../../../../../../../node_modules/@angular/material/core/focus-indicators/_private.scss","../../../../../../../node_modules/@angular/material/core/style/_layout-common.scss","../../../../../../../node_modules/@angular/material/core/style/_sass-utils.scss","../../../../../../../node_modules/@material/theme/_css.scss","../../../../../../../node_modules/@angular/material/datepicker/_datepicker-theme.scss","../../../../../../../node_modules/@angular/material/button/_icon-button-theme.scss","../../../../../../../node_modules/@angular/material/button/_button-theme-private.scss","05-material/overrides/_calendar.scss","05-material/overrides/_cdk-drag.scss","05-material/overrides/_cdk-global-scrollblock.scss","02-base/mixins/_eui-scrollbars.scss","../../../../../../../node_modules/@eui/styles-base/src/styles/02-base/mixins/utils/_media.scss","05-material/overrides/_cdk-overlay-container.scss","05-material/overrides/_cdk-overlay-container.mq.scss","05-material/overrides/_cdk-overlay-pane.scss","06-shared/_module.scss","../../../../../../../node_modules/@eui/styles-base/src/styles/04-elements/_html.scss","../../../../../../../node_modules/@eui/styles-base/src/styles/04-elements/_body.scss","../../../../../../../node_modules/@eui/styles-base/src/styles/04-elements/_shared.scss","07-elements/eui-table-default/_eui-table-default.scss","../../../../../../../node_modules/@eui/styles-base/src/styles/02-base/mixins/_eui-font-family.scss","07-elements/directives/_eui-clearable-input.scss","../../../../../../../node_modules/@eui/styles-base/src/styles/02-base/mixins/_eui-accessibility.scss","07-elements/directives/_eui-input-maxlength.scss","10-media/_ieimgfix.scss","11-extras/_cookie-consent.scss","11-extras/_preloader.scss"],"names":[],"mappings":"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CAEI,YAAA,CADA,aN++BZ,CMh/BQ,gCAEI,YAAA,CADA,aNo/BZ,CMr/BQ,gCAEI,YAAA,CADA,aNy/BZ,CM1/BQ,gCAEI,YAAA,CADA,aN8/BZ,CM//BQ,gCAEI,YAAA,CADA,aNmgCZ,CMpgCQ,+BAEI,YAAA,CADA,aNwgCZ,CMzgCQ,+BAEI,YAAA,CADA,aN6gCZ,CM9gCQ,+BAEI,YAAA,CADA,aNkhCZ,CMnhCQ,+BAEI,YAAA,CADA,aNuhCZ,CMxhCQ,8BAEI,YAAA,CADA,aN4hCZ,CM7hCQ,8BAEI,YAAA,CADA,aNiiCZ,CMliCQ,8BAEI,YAAA,CADA,aNsiCZ,CMviCQ,8BAEI,YAAA,CADA,aN2iCZ,CM5iCQ,8BAEI,YAAA,CADA,aNgjCZ,CMjjCQ,8BAEI,YAAA,CADA,aNqjCZ,CMtjCQ,8BAEI,YAAA,CADA,aN0jCZ,CM3jCQ,6BAEI,YAAA,CADA,aN+jCZ,CMhkCQ,6BAEI,YAAA,CADA,aNokCZ,CMrkCQ,6BAEI,YAAA,CADA,aNykCZ,CM1kCQ,6BAEI,YAAA,CADA,aN8kCZ,CM/kCQ,4BAEI,YAAA,CADA,aNmlCZ,CMplCQ,4BAEI,YAAA,CADA,aNwlCZ,CMzlCQ,iCAEI,YAAA,CADA,aN6lCZ,CM9lCQ,iCAEI,YAAA,CADA,aNkmCZ,CMnmCQ,iCAEI,YAAA,CADA,aNumCZ,CMxmCQ,iCAEI,YAAA,CADA,aN4mCZ,CM7mCQ,iCAEI,YAAA,CADA,aNinCZ,CMlnCQ,gCAEI,YAAA,CADA,aNsnCZ,CMvnCQ,gCAEI,YAAA,CADA,aN2nCZ,CM5nCQ,gCAEI,YAAA,CADA,aNgoCZ,CMjoCQ,gCAEI,YAAA,CADA,aNqoCZ,CMtoCQ,+BAEI,YAAA,CADA,aN0oCZ,CM3oCQ,+BAEI,YAAA,CADA,aN+oCZ,CMhpCQ,iCAEI,YAAA,CADA,aNopCZ,CMrpCQ,iCAEI,YAAA,CADA,aNypCZ,CM1pCQ,iCAEI,YAAA,CADA,aN8pCZ,CM/pCQ,iCAEI,YAAA,CADA,aNmqCZ,CMpqCQ,iCAEI,YAAA,CADA,aNwqCZ,CMzqCQ,gCAEI,YAAA,CADA,aN6qCZ,CM9qCQ,gCAEI,YAAA,CADA,aNkrCZ,CMnrCQ,gCAEI,YAAA,CADA,aNurCZ,CMxrCQ,gCAEI,YAAA,CADA,aN4rCZ,CM7rCQ,+BAEI,YAAA,CADA,aNisCZ,CMlsCQ,+BAEI,YAAA,CADA,aNssCZ,CMvsCQ,gCAEI,YAAA,CADA,aN2sCZ,CM5sCQ,gCAEI,YAAA,CADA,aNgtCZ,CMjtCQ,gCAEI,YAAA,CADA,aNqtCZ,CMttCQ,gCAEI,YAAA,CADA,aN0tCZ,CM3tCQ,gCAEI,YAAA,CADA,aN+tCZ,CMhuCQ,+BAEI,YAAA,CADA,aNouCZ,CMruCQ,+BAEI,YAAA,CADA,aNyuCZ,CM1uCQ,+BAEI,YAAA,CADA,aN8uCZ,CM/uCQ,+BAEI,YAAA,CADA,aNmvCZ,CMpvCQ,8BAEI,YAAA,CADA,aNwvCZ,CMzvCQ,8BAEI,YAAA,CADA,aN6vCZ,CMvvCI,0BAEI,YAAA,CADA,aN2vCR,CM5vCI,6BAEI,YAAA,CADA,aNgwCR,CMjwCI,4BAEI,YAAA,CADA,aNqwCR,CMtwCI,0BAEI,YAAA,CADA,aN0wCR,CM3wCI,6BAEI,YAAA,CADA,aN+wCR,CMhxCI,6BAEI,YAAA,CADA,aNoxCR,CMrxCI,4BAEI,YAAA,CADA,aNyxCR,CMpxCA,2BAEI,gCAAA,CADA,iCNwxCJ,CMpxCA,2BAEI,gCAAA,CADA,iCNwxCJ,CMpxCA,iCAEI,oBAAA,CADA,qBNwxCJ,CO3zCE,KCAA,oBAAA,CACA,eAAA,CACA,YAAA,CACA,cAAA,CAIA,wCAAA,CADA,yCAAA,CADA,sCRg0CF,COl0CI,OCSF,qBAAA,CAIA,aAAA,CAKA,6BAAA,CAHA,cAAA,CAEA,wCAAA,CADA,yCAAA,CAFA,UR6zCF,CQ1wCM,KACE,WR6wCR,CQ1wCM,iBApCJ,aAAA,CACA,URkzCF,CQpyCE,cACE,aAAA,CACA,URuyCJ,CQzyCE,cACE,aAAA,CACA,SR4yCJ,CQ9yCE,cACE,aAAA,CACA,oBRizCJ,CQnzCE,cACE,aAAA,CACA,SRszCJ,CQxzCE,cACE,aAAA,CACA,SR2zCJ,CQ7zCE,cACE,aAAA,CACA,oBRg0CJ,CQjyCM,UAhDJ,aAAA,CACA,URq1CF,CQhyCU,OAhEN,aAAA,CACA,iBRo2CJ,CQryCU,OAhEN,aAAA,CACA,kBRy2CJ,CQ1yCU,OAhEN,aAAA,CACA,SR82CJ,CQ/yCU,OAhEN,aAAA,CACA,kBRm3CJ,CQpzCU,OAhEN,aAAA,CACA,kBRw3CJ,CQzzCU,OAhEN,aAAA,CACA,SR63CJ,CQ9zCU,OAhEN,aAAA,CACA,kBRk4CJ,CQn0CU,OAhEN,aAAA,CACA,kBRu4CJ,CQx0CU,OAhEN,aAAA,CACA,SR44CJ,CQ70CU,QAhEN,aAAA,CACA,kBRi5CJ,CQl1CU,QAhEN,aAAA,CACA,kBRs5CJ,CQv1CU,QAhEN,aAAA,CACA,UR25CJ,CQp1CY,UAxDV,uBRg5CF,CQx1CY,UAxDV,wBRo5CF,CQ51CY,UAxDV,eRw5CF,CQh2CY,UAxDV,wBR45CF,CQp2CY,UAxDV,wBRg6CF,CQx2CY,UAxDV,eRo6CF,CQ52CY,UAxDV,wBRw6CF,CQh3CY,UAxDV,wBR46CF,CQp3CY,UAxDV,eRg7CF,CQx3CY,WAxDV,wBRo7CF,CQ53CY,WAxDV,wBRw7CF,CQr3CQ,WAEE,eRw3CV,CQr3CQ,WAEE,eRw3CV,CQ/3CQ,WAEE,qBRk4CV,CQ/3CQ,WAEE,qBRk4CV,CQz4CQ,WAEE,oBR44CV,CQz4CQ,WAEE,oBR44CV,CQn5CQ,WAEE,kBRs5CV,CQn5CQ,WAEE,kBRs5CV,CQ75CQ,WAEE,oBRg6CV,CQ75CQ,WAEE,oBRg6CV,CQv6CQ,WAEE,kBR06CV,CQv6CQ,WAEE,kBR06CV,CSp+CI,yBDUE,QACE,WR89CN,CQ39CI,oBApCJ,aAAA,CACA,URkgDA,CQp/CA,iBACE,aAAA,CACA,URs/CF,CQx/CA,iBACE,aAAA,CACA,SR0/CF,CQ5/CA,iBACE,aAAA,CACA,oBR8/CF,CQhgDA,iBACE,aAAA,CACA,SRkgDF,CQpgDA,iBACE,aAAA,CACA,SRsgDF,CQxgDA,iBACE,aAAA,CACA,oBR0gDF,CQ3+CI,aAhDJ,aAAA,CACA,UR8hDA,CQz+CQ,UAhEN,aAAA,CACA,iBR4iDF,CQ7+CQ,UAhEN,aAAA,CACA,kBRgjDF,CQj/CQ,UAhEN,aAAA,CACA,SRojDF,CQr/CQ,UAhEN,aAAA,CACA,kBRwjDF,CQz/CQ,UAhEN,aAAA,CACA,kBR4jDF,CQ7/CQ,UAhEN,aAAA,CACA,SRgkDF,CQjgDQ,UAhEN,aAAA,CACA,kBRokDF,CQrgDQ,UAhEN,aAAA,CACA,kBRwkDF,CQzgDQ,UAhEN,aAAA,CACA,SR4kDF,CQ7gDQ,WAhEN,aAAA,CACA,kBRglDF,CQjhDQ,WAhEN,aAAA,CACA,kBRolDF,CQrhDQ,WAhEN,aAAA,CACA,URwlDF,CQjhDU,aAxDV,aR4kDA,CQphDU,aAxDV,uBR+kDA,CQvhDU,aAxDV,wBRklDA,CQ1hDU,aAxDV,eRqlDA,CQ7hDU,aAxDV,wBRwlDA,CQhiDU,aAxDV,wBR2lDA,CQniDU,aAxDV,eR8lDA,CQtiDU,aAxDV,wBRimDA,CQziDU,aAxDV,wBRomDA,CQ5iDU,aAxDV,eRumDA,CQ/iDU,cAxDV,wBR0mDA,CQljDU,cAxDV,wBR6mDA,CQ1iDM,iBAEE,eR4iDR,CQziDM,iBAEE,eR2iDR,CQljDM,iBAEE,qBRojDR,CQjjDM,iBAEE,qBRmjDR,CQ1jDM,iBAEE,oBR4jDR,CQzjDM,iBAEE,oBR2jDR,CQlkDM,iBAEE,kBRokDR,CQjkDM,iBAEE,kBRmkDR,CQ1kDM,iBAEE,oBR4kDR,CQzkDM,iBAEE,oBR2kDR,CQllDM,iBAEE,kBRolDR,CQjlDM,iBAEE,kBRmlDR,CACF,CS9oDI,yBDUE,QACE,WRuoDN,CQpoDI,oBApCJ,aAAA,CACA,UR2qDA,CQ7pDA,iBACE,aAAA,CACA,UR+pDF,CQjqDA,iBACE,aAAA,CACA,SRmqDF,CQrqDA,iBACE,aAAA,CACA,oBRuqDF,CQzqDA,iBACE,aAAA,CACA,SR2qDF,CQ7qDA,iBACE,aAAA,CACA,SR+qDF,CQjrDA,iBACE,aAAA,CACA,oBRmrDF,CQppDI,aAhDJ,aAAA,CACA,URusDA,CQlpDQ,UAhEN,aAAA,CACA,iBRqtDF,CQtpDQ,UAhEN,aAAA,CACA,kBRytDF,CQ1pDQ,UAhEN,aAAA,CACA,SR6tDF,CQ9pDQ,UAhEN,aAAA,CACA,kBRiuDF,CQlqDQ,UAhEN,aAAA,CACA,kBRquDF,CQtqDQ,UAhEN,aAAA,CACA,SRyuDF,CQ1qDQ,UAhEN,aAAA,CACA,kBR6uDF,CQ9qDQ,UAhEN,aAAA,CACA,kBRivDF,CQlrDQ,UAhEN,aAAA,CACA,SRqvDF,CQtrDQ,WAhEN,aAAA,CACA,kBRyvDF,CQ1rDQ,WAhEN,aAAA,CACA,kBR6vDF,CQ9rDQ,WAhEN,aAAA,CACA,URiwDF,CQ1rDU,aAxDV,aRqvDA,CQ7rDU,aAxDV,uBRwvDA,CQhsDU,aAxDV,wBR2vDA,CQnsDU,aAxDV,eR8vDA,CQtsDU,aAxDV,wBRiwDA,CQzsDU,aAxDV,wBRowDA,CQ5sDU,aAxDV,eRuwDA,CQ/sDU,aAxDV,wBR0wDA,CQltDU,aAxDV,wBR6wDA,CQrtDU,aAxDV,eRgxDA,CQxtDU,cAxDV,wBRmxDA,CQ3tDU,cAxDV,wBRsxDA,CQntDM,iBAEE,eRqtDR,CQltDM,iBAEE,eRotDR,CQ3tDM,iBAEE,qBR6tDR,CQ1tDM,iBAEE,qBR4tDR,CQnuDM,iBAEE,oBRquDR,CQluDM,iBAEE,oBRouDR,CQ3uDM,iBAEE,kBR6uDR,CQ1uDM,iBAEE,kBR4uDR,CQnvDM,iBAEE,oBRqvDR,CQlvDM,iBAEE,oBRovDR,CQ3vDM,iBAEE,kBR6vDR,CQ1vDM,iBAEE,kBR4vDR,CACF,CSvzDI,yBDUE,QACE,WRgzDN,CQ7yDI,oBApCJ,aAAA,CACA,URo1DA,CQt0DA,iBACE,aAAA,CACA,URw0DF,CQ10DA,iBACE,aAAA,CACA,SR40DF,CQ90DA,iBACE,aAAA,CACA,oBRg1DF,CQl1DA,iBACE,aAAA,CACA,SRo1DF,CQt1DA,iBACE,aAAA,CACA,SRw1DF,CQ11DA,iBACE,aAAA,CACA,oBR41DF,CQ7zDI,aAhDJ,aAAA,CACA,URg3DA,CQ3zDQ,UAhEN,aAAA,CACA,iBR83DF,CQ/zDQ,UAhEN,aAAA,CACA,kBRk4DF,CQn0DQ,UAhEN,aAAA,CACA,SRs4DF,CQv0DQ,UAhEN,aAAA,CACA,kBR04DF,CQ30DQ,UAhEN,aAAA,CACA,kBR84DF,CQ/0DQ,UAhEN,aAAA,CACA,SRk5DF,CQn1DQ,UAhEN,aAAA,CACA,kBRs5DF,CQv1DQ,UAhEN,aAAA,CACA,kBR05DF,CQ31DQ,UAhEN,aAAA,CACA,SR85DF,CQ/1DQ,WAhEN,aAAA,CACA,kBRk6DF,CQn2DQ,WAhEN,aAAA,CACA,kBRs6DF,CQv2DQ,WAhEN,aAAA,CACA,UR06DF,CQn2DU,aAxDV,aR85DA,CQt2DU,aAxDV,uBRi6DA,CQz2DU,aAxDV,wBRo6DA,CQ52DU,aAxDV,eRu6DA,CQ/2DU,aAxDV,wBR06DA,CQl3DU,aAxDV,wBR66DA,CQr3DU,aAxDV,eRg7DA,CQx3DU,aAxDV,wBRm7DA,CQ33DU,aAxDV,wBRs7DA,CQ93DU,aAxDV,eRy7DA,CQj4DU,cAxDV,wBR47DA,CQp4DU,cAxDV,wBR+7DA,CQ53DM,iBAEE,eR83DR,CQ33DM,iBAEE,eR63DR,CQp4DM,iBAEE,qBRs4DR,CQn4DM,iBAEE,qBRq4DR,CQ54DM,iBAEE,oBR84DR,CQ34DM,iBAEE,oBR64DR,CQp5DM,iBAEE,kBRs5DR,CQn5DM,iBAEE,kBRq5DR,CQ55DM,iBAEE,oBR85DR,CQ35DM,iBAEE,oBR65DR,CQp6DM,iBAEE,kBRs6DR,CQn6DM,iBAEE,kBRq6DR,CACF,CSh+DI,0BDUE,QACE,WRy9DN,CQt9DI,oBApCJ,aAAA,CACA,UR6/DA,CQ/+DA,iBACE,aAAA,CACA,URi/DF,CQn/DA,iBACE,aAAA,CACA,SRq/DF,CQv/DA,iBACE,aAAA,CACA,oBRy/DF,CQ3/DA,iBACE,aAAA,CACA,SR6/DF,CQ//DA,iBACE,aAAA,CACA,SRigEF,CQngEA,iBACE,aAAA,CACA,oBRqgEF,CQt+DI,aAhDJ,aAAA,CACA,URyhEA,CQp+DQ,UAhEN,aAAA,CACA,iBRuiEF,CQx+DQ,UAhEN,aAAA,CACA,kBR2iEF,CQ5+DQ,UAhEN,aAAA,CACA,SR+iEF,CQh/DQ,UAhEN,aAAA,CACA,kBRmjEF,CQp/DQ,UAhEN,aAAA,CACA,kBRujEF,CQx/DQ,UAhEN,aAAA,CACA,SR2jEF,CQ5/DQ,UAhEN,aAAA,CACA,kBR+jEF,CQhgEQ,UAhEN,aAAA,CACA,kBRmkEF,CQpgEQ,UAhEN,aAAA,CACA,SRukEF,CQxgEQ,WAhEN,aAAA,CACA,kBR2kEF,CQ5gEQ,WAhEN,aAAA,CACA,kBR+kEF,CQhhEQ,WAhEN,aAAA,CACA,URmlEF,CQ5gEU,aAxDV,aRukEA,CQ/gEU,aAxDV,uBR0kEA,CQlhEU,aAxDV,wBR6kEA,CQrhEU,aAxDV,eRglEA,CQxhEU,aAxDV,wBRmlEA,CQ3hEU,aAxDV,wBRslEA,CQ9hEU,aAxDV,eRylEA,CQjiEU,aAxDV,wBR4lEA,CQpiEU,aAxDV,wBR+lEA,CQviEU,aAxDV,eRkmEA,CQ1iEU,cAxDV,wBRqmEA,CQ7iEU,cAxDV,wBRwmEA,CQriEM,iBAEE,eRuiER,CQpiEM,iBAEE,eRsiER,CQ7iEM,iBAEE,qBR+iER,CQ5iEM,iBAEE,qBR8iER,CQrjEM,iBAEE,oBRujER,CQpjEM,iBAEE,oBRsjER,CQ7jEM,iBAEE,kBR+jER,CQ5jEM,iBAEE,kBR8jER,CQrkEM,iBAEE,oBRukER,CQpkEM,iBAEE,oBRskER,CQ7kEM,iBAEE,kBR+kER,CQ5kEM,iBAEE,kBR8kER,CACF,CSzoEI,0BDUE,SACE,WRkoEN,CQ/nEI,qBApCJ,aAAA,CACA,URsqEA,CQxpEA,kBACE,aAAA,CACA,UR0pEF,CQ5pEA,kBACE,aAAA,CACA,SR8pEF,CQhqEA,kBACE,aAAA,CACA,oBRkqEF,CQpqEA,kBACE,aAAA,CACA,SRsqEF,CQxqEA,kBACE,aAAA,CACA,SR0qEF,CQ5qEA,kBACE,aAAA,CACA,oBR8qEF,CQ/oEI,cAhDJ,aAAA,CACA,URksEA,CQ7oEQ,WAhEN,aAAA,CACA,iBRgtEF,CQjpEQ,WAhEN,aAAA,CACA,kBRotEF,CQrpEQ,WAhEN,aAAA,CACA,SRwtEF,CQzpEQ,WAhEN,aAAA,CACA,kBR4tEF,CQ7pEQ,WAhEN,aAAA,CACA,kBRguEF,CQjqEQ,WAhEN,aAAA,CACA,SRouEF,CQrqEQ,WAhEN,aAAA,CACA,kBRwuEF,CQzqEQ,WAhEN,aAAA,CACA,kBR4uEF,CQ7qEQ,WAhEN,aAAA,CACA,SRgvEF,CQjrEQ,YAhEN,aAAA,CACA,kBRovEF,CQrrEQ,YAhEN,aAAA,CACA,kBRwvEF,CQzrEQ,YAhEN,aAAA,CACA,UR4vEF,CQrrEU,cAxDV,aRgvEA,CQxrEU,cAxDV,uBRmvEA,CQ3rEU,cAxDV,wBRsvEA,CQ9rEU,cAxDV,eRyvEA,CQjsEU,cAxDV,wBR4vEA,CQpsEU,cAxDV,wBR+vEA,CQvsEU,cAxDV,eRkwEA,CQ1sEU,cAxDV,wBRqwEA,CQ7sEU,cAxDV,wBRwwEA,CQhtEU,cAxDV,eR2wEA,CQntEU,eAxDV,wBR8wEA,CQttEU,eAxDV,wBRixEA,CQ9sEM,mBAEE,eRgtER,CQ7sEM,mBAEE,eR+sER,CQttEM,mBAEE,qBRwtER,CQrtEM,mBAEE,qBRutER,CQ9tEM,mBAEE,oBRguER,CQ7tEM,mBAEE,oBR+tER,CQtuEM,mBAEE,kBRwuER,CQruEM,mBAEE,kBRuuER,CQ9uEM,mBAEE,oBRgvER,CQ7uEM,mBAEE,oBR+uER,CQtvEM,mBAEE,kBRwvER,CQrvEM,mBAEE,kBRuvER,CACF,CSlzEI,0BDUE,UACE,WR2yEN,CQxyEI,sBApCJ,aAAA,CACA,UR+0EA,CQj0EA,mBACE,aAAA,CACA,URm0EF,CQr0EA,mBACE,aAAA,CACA,SRu0EF,CQz0EA,mBACE,aAAA,CACA,oBR20EF,CQ70EA,mBACE,aAAA,CACA,SR+0EF,CQj1EA,mBACE,aAAA,CACA,SRm1EF,CQr1EA,mBACE,aAAA,CACA,oBRu1EF,CQxzEI,eAhDJ,aAAA,CACA,UR22EA,CQtzEQ,YAhEN,aAAA,CACA,iBRy3EF,CQ1zEQ,YAhEN,aAAA,CACA,kBR63EF,CQ9zEQ,YAhEN,aAAA,CACA,SRi4EF,CQl0EQ,YAhEN,aAAA,CACA,kBRq4EF,CQt0EQ,YAhEN,aAAA,CACA,kBRy4EF,CQ10EQ,YAhEN,aAAA,CACA,SR64EF,CQ90EQ,YAhEN,aAAA,CACA,kBRi5EF,CQl1EQ,YAhEN,aAAA,CACA,kBRq5EF,CQt1EQ,YAhEN,aAAA,CACA,SRy5EF,CQ11EQ,aAhEN,aAAA,CACA,kBR65EF,CQ91EQ,aAhEN,aAAA,CACA,kBRi6EF,CQl2EQ,aAhEN,aAAA,CACA,URq6EF,CQ91EU,eAxDV,aRy5EA,CQj2EU,eAxDV,uBR45EA,CQp2EU,eAxDV,wBR+5EA,CQv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","file":"eui.css","sourcesContent":["/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\n html {\n line-height: var(--eui-base-line-height); /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n }\n\n /* Sections\n ========================================================================== */\n\n /**\n * Remove the margin in all browsers.\n */\n\n body {\n margin: 0;\n }\n\n /**\n * Render the `main` element consistently in IE.\n */\n\n main {\n display: block;\n }\n\n /**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\n h1 {\n font-size: 2em;\n margin: 0.67em 0;\n }\n\n /* Grouping content\n ========================================================================== */\n\n /**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\n hr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n }\n\n /**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\n pre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n }\n\n /* Text-level semantics\n ========================================================================== */\n\n /**\n * Remove the gray background on active links in IE 10.\n */\n\n a {\n background-color: transparent;\n }\n\n /**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\n abbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n text-decoration: underline dotted; /* 2 */\n }\n\n /**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\n b,\n strong {\n font-weight: bolder;\n }\n\n /**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\n code,\n kbd,\n samp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n }\n\n /**\n * Add the correct font size in all browsers.\n */\n\n small {\n font-size: 80%;\n }\n\n /**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\n sub,\n sup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n }\n\n sub {\n bottom: -0.25em;\n }\n\n sup {\n top: -0.5em;\n }\n\n /* Embedded content\n ========================================================================== */\n\n /**\n * Remove the border on images inside links in IE 10.\n */\n\n img {\n border-style: none;\n }\n\n /* Forms\n ========================================================================== */\n\n /**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\n button,\n input,\n optgroup,\n select,\n textarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1; /* 1 */ // eUI adapations forced to \"1\"\n margin: 0; /* 2 */\n }\n\n /**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\n button,\n input { /* 1 */\n overflow: visible;\n }\n\n /**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\n button,\n select { /* 1 */\n text-transform: none;\n }\n\n /**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\n button,\n [type=\"button\"],\n [type=\"reset\"],\n [type=\"submit\"] {\n -webkit-appearance: button;\n }\n\n /**\n * Remove the inner border and padding in Firefox.\n */\n\n button::-moz-focus-inner,\n [type=\"button\"]::-moz-focus-inner,\n [type=\"reset\"]::-moz-focus-inner,\n [type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n }\n\n /**\n * Restore the focus styles unset by the previous rule.\n */\n\n button:-moz-focusring,\n [type=\"button\"]:-moz-focusring,\n [type=\"reset\"]:-moz-focusring,\n [type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n }\n\n /**\n * Correct the padding in Firefox.\n */\n\n fieldset {\n padding: 0.35em 0.75em 0.625em;\n }\n\n /**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\n legend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n }\n\n /**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\n progress {\n vertical-align: baseline;\n }\n\n /**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\n textarea {\n overflow: auto;\n }\n\n /**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n [type=\"checkbox\"],\n [type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n }\n\n /**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n [type=\"number\"]::-webkit-inner-spin-button,\n [type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n }\n\n /**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n [type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n }\n\n /**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n [type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n\n /**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n ::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n }\n\n /* Interactive\n ========================================================================== */\n\n /*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\n details {\n display: block;\n }\n\n /*\n * Add the correct display in all browsers.\n */\n\n summary {\n display: list-item;\n }\n\n /* Misc\n ========================================================================== */\n\n /**\n * Add the correct display in IE 10+.\n */\n\n template {\n display: none;\n }\n\n /**\n * Add the correct display in IE 10.\n */\n\n [hidden] {\n display: none;\n }\n","/**\n * ECL color variants formula\n * Applies tint or shade of base color provided\n *\n * @param color: base color, has variant of 100\n * @param variant: number in range between 0 - 200\n * 100 - neutral variant, no changes\n * 0 - 99: brightens base color by mixing in white color, the lower, the brighter\n * 99 - 200: darkens base color by mixing in black color, the bigger, the darker\n *\n * @return color variant of provided base color\n *\n * @examples\n *\n * // provides 30% darker pink color\n * background-color: eui-color-variant(pink, 130);\n *\n * // provides 95% lighter pink color\n * background-color: eui-color-variant(pink, 5);\n */\n/** Common weight name mapping\n @See the OpenType specification:\n https://docs.microsoft.com/en-us/typography/opentype/spec/os2#usweightclass\n The numerical values 100 to 900 roughly correspond to the following common weight names:\n 100 Thin (Hairline)\n 200\t Extra Light (Ultra Light)\n 300\t Light\n 400\t Normal\n 500\t Medium\n 600\t Semi Bold (Demi Bold)\n 700\t Bold\n 800\t Extra Bold (Ultra Bold)\n 900\t Black (Heavy)\n**/\n/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n/* Document\n ========================================================================== */\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\nhtml {\n line-height: var(--eui-base-line-height); /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n/**\n * Remove the margin in all browsers.\n */\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n/**\n * Remove the gray background on active links in IE 10.\n */\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n/**\n * Remove the border on images inside links in IE 10.\n */\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\nbutton,\ninput { /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\nbutton,\nselect { /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\nbutton,\n[type=button],\n[type=reset],\n[type=submit] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\nbutton::-moz-focus-inner,\n[type=button]::-moz-focus-inner,\n[type=reset]::-moz-focus-inner,\n[type=submit]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\nbutton:-moz-focusring,\n[type=button]:-moz-focusring,\n[type=reset]:-moz-focusring,\n[type=submit]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n[type=checkbox],\n[type=radio] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n[type=number]::-webkit-inner-spin-button,\n[type=number]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n[type=search] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n[type=search]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n/**\n * Add the correct display in IE 10+.\n */\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n[hidden] {\n display: none;\n}\n\n:root {\n --eui-base-color-grey-110: #3a3a3a;\n --eui-base-color-grey-110-rgb: rgb(58, 58, 58);\n --eui-base-color-grey-110-contrast: white;\n --eui-base-color-grey-110-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-grey-100: #404040;\n --eui-base-color-grey-100-rgb: rgb(64, 64, 64);\n --eui-base-color-grey-100-contrast: white;\n --eui-base-color-grey-100-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-grey-90: #535353;\n --eui-base-color-grey-90-rgb: rgb(83, 83, 83);\n --eui-base-color-grey-90-contrast: white;\n --eui-base-color-grey-90-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-grey-80: #666666;\n --eui-base-color-grey-80-rgb: rgb(102, 102, 102);\n --eui-base-color-grey-80-contrast: white;\n --eui-base-color-grey-80-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-grey-75: #707070;\n --eui-base-color-grey-75-rgb: rgb(112, 112, 112);\n --eui-base-color-grey-75-contrast: white;\n --eui-base-color-grey-75-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-grey-50: #a0a0a0;\n --eui-base-color-grey-50-rgb: rgb(160, 160, 160);\n --eui-base-color-grey-50-contrast: #404040;\n --eui-base-color-grey-50-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-grey-35: #bcbcbc;\n --eui-base-color-grey-35-rgb: rgb(188, 188, 188);\n --eui-base-color-grey-35-contrast: #404040;\n --eui-base-color-grey-35-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-grey-25: #cfcfcf;\n --eui-base-color-grey-25-rgb: rgb(207, 207, 207);\n --eui-base-color-grey-25-contrast: #404040;\n --eui-base-color-grey-25-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-grey-20: #d9d9d9;\n --eui-base-color-grey-20-rgb: rgb(217, 217, 217);\n --eui-base-color-grey-20-contrast: #404040;\n --eui-base-color-grey-20-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-grey-15: #e2e2e2;\n --eui-base-color-grey-15-rgb: rgb(226, 226, 226);\n --eui-base-color-grey-15-contrast: #404040;\n --eui-base-color-grey-15-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-grey-10: #ececec;\n --eui-base-color-grey-10-rgb: rgb(236, 236, 236);\n --eui-base-color-grey-10-contrast: #404040;\n --eui-base-color-grey-10-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-grey-5: whitesmoke;\n --eui-base-color-grey-5-rgb: rgb(245, 245, 245);\n --eui-base-color-grey-5-contrast: #404040;\n --eui-base-color-grey-5-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-grey-2: #f9fafb;\n --eui-base-color-grey-2-rgb: rgb(249, 250, 251);\n --eui-base-color-grey-2-contrast: #404040;\n --eui-base-color-grey-2-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-grey-0: white;\n --eui-base-color-grey-0-rgb: rgb(255, 255, 255);\n --eui-base-color-grey-0-contrast: #404040;\n --eui-base-color-grey-0-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-primary-140: #002959;\n --eui-base-color-primary-140-rgb: rgb(0, 41, 89);\n --eui-base-color-primary-140-contrast: white;\n --eui-base-color-primary-140-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-primary-130: #003068;\n --eui-base-color-primary-130-rgb: rgb(0, 48, 104);\n --eui-base-color-primary-130-contrast: white;\n --eui-base-color-primary-130-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-primary-120: #003676;\n --eui-base-color-primary-120-rgb: rgb(0, 54, 118);\n --eui-base-color-primary-120-contrast: white;\n --eui-base-color-primary-120-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-primary-110: #003d85;\n --eui-base-color-primary-110-rgb: rgb(0, 61, 133);\n --eui-base-color-primary-110-contrast: white;\n --eui-base-color-primary-110-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-primary-100: #004494;\n --eui-base-color-primary-100-rgb: rgb(0, 68, 148);\n --eui-base-color-primary-100-contrast: white;\n --eui-base-color-primary-100-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-primary-75: #4073af;\n --eui-base-color-primary-75-rgb: rgb(64, 115, 175);\n --eui-base-color-primary-75-contrast: white;\n --eui-base-color-primary-75-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-primary-50: #80a2ca;\n --eui-base-color-primary-50-rgb: rgb(128, 162, 202);\n --eui-base-color-primary-50-contrast: #404040;\n --eui-base-color-primary-50-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-primary-25: #bfd0e4;\n --eui-base-color-primary-25-rgb: rgb(191, 208, 228);\n --eui-base-color-primary-25-contrast: #404040;\n --eui-base-color-primary-25-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-primary-10: #e6ecf4;\n --eui-base-color-primary-10-rgb: rgb(230, 236, 244);\n --eui-base-color-primary-10-contrast: #404040;\n --eui-base-color-primary-10-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-primary-5: #f2f6fa;\n --eui-base-color-primary-5-rgb: rgb(242, 246, 250);\n --eui-base-color-primary-5-contrast: #404040;\n --eui-base-color-primary-5-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-primary-2: #fafbfd;\n --eui-base-color-primary-2-rgb: rgb(250, 251, 253);\n --eui-base-color-primary-2-contrast: #404040;\n --eui-base-color-primary-2-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-accent-140: #99800e;\n --eui-base-color-accent-140-rgb: rgb(153, 128, 14);\n --eui-base-color-accent-140-contrast: #404040;\n --eui-base-color-accent-140-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-accent-130: #b39610;\n --eui-base-color-accent-130-rgb: rgb(179, 150, 16);\n --eui-base-color-accent-130-contrast: #404040;\n --eui-base-color-accent-130-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-accent-120: #f8ae21;\n --eui-base-color-accent-120-rgb: rgb(248, 174, 33);\n --eui-base-color-accent-120-contrast: #404040;\n --eui-base-color-accent-120-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-accent-110: #fbc11d;\n --eui-base-color-accent-110-rgb: rgb(251, 193, 29);\n --eui-base-color-accent-110-contrast: #404040;\n --eui-base-color-accent-110-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-accent-100: #ffd617;\n --eui-base-color-accent-100-rgb: rgb(255, 214, 23);\n --eui-base-color-accent-100-contrast: #404040;\n --eui-base-color-accent-100-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-accent-75: #ffde39;\n --eui-base-color-accent-75-rgb: rgb(255, 222, 57);\n --eui-base-color-accent-75-contrast: #404040;\n --eui-base-color-accent-75-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-accent-50: #ffe879;\n --eui-base-color-accent-50-rgb: rgb(255, 232, 121);\n --eui-base-color-accent-50-contrast: #404040;\n --eui-base-color-accent-50-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-accent-25: #fff4bb;\n --eui-base-color-accent-25-rgb: rgb(255, 244, 187);\n --eui-base-color-accent-25-contrast: #404040;\n --eui-base-color-accent-25-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-accent-10: #fffbe8;\n --eui-base-color-accent-10-rgb: rgb(255, 251, 232);\n --eui-base-color-accent-10-contrast: #404040;\n --eui-base-color-accent-10-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-accent-5: #fffdf3;\n --eui-base-color-accent-5-rgb: rgb(255, 253, 243);\n --eui-base-color-accent-5-contrast: #404040;\n --eui-base-color-accent-5-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-accent-2: #fffefa;\n --eui-base-color-accent-2-rgb: rgb(255, 254, 250);\n --eui-base-color-accent-2-contrast: #404040;\n --eui-base-color-accent-2-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-info-140: #00436c;\n --eui-base-color-info-140-rgb: rgb(0, 67, 108);\n --eui-base-color-info-140-contrast: white;\n --eui-base-color-info-140-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-info-130: #004e7e;\n --eui-base-color-info-130-rgb: rgb(0, 78, 126);\n --eui-base-color-info-130-contrast: white;\n --eui-base-color-info-130-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-info-120: #005990;\n --eui-base-color-info-120-rgb: rgb(0, 89, 144);\n --eui-base-color-info-120-contrast: white;\n --eui-base-color-info-120-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-info-110: #0064a2;\n --eui-base-color-info-110-rgb: rgb(0, 100, 162);\n --eui-base-color-info-110-contrast: white;\n --eui-base-color-info-110-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-info-100: #006fb4;\n --eui-base-color-info-100-rgb: rgb(0, 111, 180);\n --eui-base-color-info-100-contrast: white;\n --eui-base-color-info-100-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-info-75: #4093c7;\n --eui-base-color-info-75-rgb: rgb(64, 147, 199);\n --eui-base-color-info-75-contrast: white;\n --eui-base-color-info-75-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-info-50: #80b7da;\n --eui-base-color-info-50-rgb: rgb(128, 183, 218);\n --eui-base-color-info-50-contrast: #404040;\n --eui-base-color-info-50-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-info-25: #bfdbec;\n --eui-base-color-info-25-rgb: rgb(191, 219, 236);\n --eui-base-color-info-25-contrast: #404040;\n --eui-base-color-info-25-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-info-10: #e6f1f8;\n --eui-base-color-info-10-rgb: rgb(230, 241, 248);\n --eui-base-color-info-10-contrast: #404040;\n --eui-base-color-info-10-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-info-5: #f2f8fb;\n --eui-base-color-info-5-rgb: rgb(242, 248, 251);\n --eui-base-color-info-5-contrast: #404040;\n --eui-base-color-info-5-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-info-2: #fafcfe;\n --eui-base-color-info-2-rgb: rgb(250, 252, 254);\n --eui-base-color-info-2-contrast: #404040;\n --eui-base-color-info-2-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-success-140: #2a4922;\n --eui-base-color-success-140-rgb: rgb(42, 73, 34);\n --eui-base-color-success-140-contrast: white;\n --eui-base-color-success-140-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-success-130: #315528;\n --eui-base-color-success-130-rgb: rgb(49, 85, 40);\n --eui-base-color-success-130-contrast: white;\n --eui-base-color-success-130-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-success-120: #38622e;\n --eui-base-color-success-120-rgb: rgb(56, 98, 46);\n --eui-base-color-success-120-contrast: white;\n --eui-base-color-success-120-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-success-110: #3f6e33;\n --eui-base-color-success-110-rgb: rgb(63, 110, 51);\n --eui-base-color-success-110-contrast: white;\n --eui-base-color-success-110-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-success-100: #467a39;\n --eui-base-color-success-100-rgb: rgb(70, 122, 57);\n --eui-base-color-success-100-contrast: white;\n --eui-base-color-success-100-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-success-75: #749b6b;\n --eui-base-color-success-75-rgb: rgb(116, 155, 107);\n --eui-base-color-success-75-contrast: #404040;\n --eui-base-color-success-75-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-success-50: #a3bd9c;\n --eui-base-color-success-50-rgb: rgb(163, 189, 156);\n --eui-base-color-success-50-contrast: #404040;\n --eui-base-color-success-50-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-success-25: #d1dece;\n --eui-base-color-success-25-rgb: rgb(209, 222, 206);\n --eui-base-color-success-25-contrast: #404040;\n --eui-base-color-success-25-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-success-10: #edf2eb;\n --eui-base-color-success-10-rgb: rgb(237, 242, 235);\n --eui-base-color-success-10-contrast: #404040;\n --eui-base-color-success-10-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-success-5: #f6f8f5;\n --eui-base-color-success-5-rgb: rgb(246, 248, 245);\n --eui-base-color-success-5-contrast: #404040;\n --eui-base-color-success-5-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-success-2: #fbfcfb;\n --eui-base-color-success-2-rgb: rgb(251, 252, 251);\n --eui-base-color-success-2-contrast: #404040;\n --eui-base-color-success-2-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-warning-140: #915917;\n --eui-base-color-warning-140-rgb: rgb(145, 89, 23);\n --eui-base-color-warning-140-contrast: white;\n --eui-base-color-warning-140-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-warning-130: #a9681b;\n --eui-base-color-warning-130-rgb: rgb(169, 104, 27);\n --eui-base-color-warning-130-contrast: white;\n --eui-base-color-warning-130-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-warning-120: #c2771f;\n --eui-base-color-warning-120-rgb: rgb(194, 119, 31);\n --eui-base-color-warning-120-contrast: #404040;\n --eui-base-color-warning-120-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-warning-110: #da8623;\n --eui-base-color-warning-110-rgb: rgb(218, 134, 35);\n --eui-base-color-warning-110-contrast: #404040;\n --eui-base-color-warning-110-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-warning-100: #f29527;\n --eui-base-color-warning-100-rgb: rgb(242, 149, 39);\n --eui-base-color-warning-100-contrast: #404040;\n --eui-base-color-warning-100-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-warning-75: #f5b05d;\n --eui-base-color-warning-75-rgb: rgb(245, 176, 93);\n --eui-base-color-warning-75-contrast: #404040;\n --eui-base-color-warning-75-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-warning-50: #f9ca93;\n --eui-base-color-warning-50-rgb: rgb(249, 202, 147);\n --eui-base-color-warning-50-contrast: #404040;\n --eui-base-color-warning-50-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-warning-25: #fce5c9;\n --eui-base-color-warning-25-rgb: rgb(252, 229, 201);\n --eui-base-color-warning-25-contrast: #404040;\n --eui-base-color-warning-25-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-warning-10: #fef4e9;\n --eui-base-color-warning-10-rgb: rgb(254, 244, 233);\n --eui-base-color-warning-10-contrast: #404040;\n --eui-base-color-warning-10-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-warning-5: #fefaf4;\n --eui-base-color-warning-5-rgb: rgb(254, 250, 244);\n --eui-base-color-warning-5-contrast: #404040;\n --eui-base-color-warning-5-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-warning-2: #fffdfb;\n --eui-base-color-warning-2-rgb: rgb(255, 253, 251);\n --eui-base-color-warning-2-contrast: #404040;\n --eui-base-color-warning-2-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-danger-140: #83141d;\n --eui-base-color-danger-140-rgb: rgb(131, 20, 29);\n --eui-base-color-danger-140-contrast: white;\n --eui-base-color-danger-140-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-danger-130: #991722;\n --eui-base-color-danger-130-rgb: rgb(153, 23, 34);\n --eui-base-color-danger-130-contrast: white;\n --eui-base-color-danger-130-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-danger-120: #ae1a27;\n --eui-base-color-danger-120-rgb: rgb(174, 26, 39);\n --eui-base-color-danger-120-contrast: white;\n --eui-base-color-danger-120-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-danger-110: #c41e2c;\n --eui-base-color-danger-110-rgb: rgb(196, 30, 44);\n --eui-base-color-danger-110-contrast: white;\n --eui-base-color-danger-110-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-danger-100: #da2131;\n --eui-base-color-danger-100-rgb: rgb(218, 33, 49);\n --eui-base-color-danger-100-contrast: white;\n --eui-base-color-danger-100-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-danger-75: #e35965;\n --eui-base-color-danger-75-rgb: rgb(227, 89, 101);\n --eui-base-color-danger-75-contrast: #404040;\n --eui-base-color-danger-75-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-danger-50: #ed9098;\n --eui-base-color-danger-50-rgb: rgb(237, 144, 152);\n --eui-base-color-danger-50-contrast: #404040;\n --eui-base-color-danger-50-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-danger-25: #f6c8cc;\n --eui-base-color-danger-25-rgb: rgb(246, 200, 204);\n --eui-base-color-danger-25-contrast: #404040;\n --eui-base-color-danger-25-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-danger-10: #fbe9ea;\n --eui-base-color-danger-10-rgb: rgb(251, 233, 234);\n --eui-base-color-danger-10-contrast: #404040;\n --eui-base-color-danger-10-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-danger-5: #fdf4f5;\n --eui-base-color-danger-5-rgb: rgb(253, 244, 245);\n --eui-base-color-danger-5-contrast: #404040;\n --eui-base-color-danger-5-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-danger-2: #fefbfb;\n --eui-base-color-danger-2-rgb: rgb(254, 251, 251);\n --eui-base-color-danger-2-contrast: #404040;\n --eui-base-color-danger-2-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-grey: #a0a0a0;\n --eui-base-color-primary: #004494;\n --eui-base-color-accent: #ffd617;\n --eui-base-color-info: #006fb4;\n --eui-base-color-success: #467a39;\n --eui-base-color-warning: #f29527;\n --eui-base-color-danger: #da2131;\n --eui-base-color-text: var(--eui-base-color-grey-100);\n --eui-base-color-link: var(--eui-base-color-primary-100);\n --eui-base-color-black: var(--eui-base-color-grey-100);\n --eui-base-color-white: var(--eui-base-color-grey-0);\n}\n\n:root {\n --eui-base-font-family: Arial, \"Helvetica Neue\", Helvetica, sans-serif;\n --eui-base-font-family-icons: \"eui-icons\", sans-serif;\n --eui-base-font-family-monospace: \"Consolas\", \"Liberation Mono\", \"Courier New\", monospace;\n --eui-base-font-size: 16px;\n --eui-base-font-size-6xl: 2.625rem;\n --eui-base-font-size-5xl: 2.25rem;\n --eui-base-font-size-4xl: 2rem;\n --eui-base-font-size-3xl: 1.75rem;\n --eui-base-font-size-2xl: 1.5rem;\n --eui-base-font-size-xl: 1.25rem;\n --eui-base-font-size-l: 1.125rem;\n --eui-base-font-size-m: 1rem;\n --eui-base-font-size-s: 0.875rem;\n --eui-base-font-size-xs: 0.75rem;\n --eui-base-font-size-2xs: 0.625rem;\n --eui-base-icon-size: 1.5rem;\n --eui-base-icon-size-2xs: 0.75rem;\n --eui-base-icon-size-xs: 1rem;\n --eui-base-icon-size-s: 1.25rem;\n --eui-base-icon-size-m: 1.5rem;\n --eui-base-icon-size-l: 2rem;\n --eui-base-icon-size-xl: 2.5rem;\n --eui-base-icon-size-2xl: 3rem;\n --eui-base-icon-size-3xl: 3.5rem;\n --eui-base-icon-size-4xl: 4rem;\n --eui-base-font-6xl: normal normal 400 2.625rem/3.25rem var(--eui-base-font-family);\n --eui-base-font-5xl: normal normal 400 2.25rem/2.75rem var(--eui-base-font-family);\n --eui-base-font-4xl: normal normal 400 2rem/2.5rem var(--eui-base-font-family);\n --eui-base-font-3xl: normal normal 400 1.75rem/2rem var(--eui-base-font-family);\n --eui-base-font-2xl: normal normal 400 1.5rem/1.75rem var(--eui-base-font-family);\n --eui-base-font-xl: normal normal 400 1.25rem/1.5rem var(--eui-base-font-family);\n --eui-base-font-l: normal normal 400 1.125rem/1.5rem var(--eui-base-font-family);\n --eui-base-font-m: normal normal 400 1rem/1.25rem var(--eui-base-font-family);\n --eui-base-font-s: normal normal 400 0.875rem/1rem var(--eui-base-font-family);\n --eui-base-font-xs: normal normal 400 0.75rem/1rem var(--eui-base-font-family);\n --eui-base-font-2xs: normal normal 400 0.625rem/1rem var(--eui-base-font-family);\n --eui-base-spacing-none: 0;\n --eui-base-spacing-2xs: 0.25rem;\n --eui-base-spacing-xs: 0.5rem;\n --eui-base-spacing-s: 0.75rem;\n --eui-base-spacing-m: 1rem;\n --eui-base-spacing-l: 1.5rem;\n --eui-base-spacing-xl: 2rem;\n --eui-base-spacing-2xl: 2.5rem;\n --eui-base-spacing-3xl: 3rem;\n --eui-base-spacing-4xl: 4rem;\n --eui-base-shadow-1: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12);\n --eui-base-shadow-2: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\n --eui-base-shadow-3: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 3px 4px 0 rgba(0, 0, 0, 0.14), 0 1px 8px 0 rgba(0, 0, 0, 0.12);\n --eui-base-shadow-4: 0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12);\n --eui-base-shadow-6: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\n --eui-base-shadow-8: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);\n --eui-base-shadow-9: 0px 5px 6px -3px rgba(0, 0, 0, 0.2), 0px 9px 12px 1px rgba(0, 0, 0, 0.14), 0px 3px 16px 2px rgba(0, 0, 0, 0.12);\n --eui-base-shadow-12: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);\n --eui-base-shadow-16: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\n --eui-base-shadow-24: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);\n --eui-base-shadow-z-depth-0: 0 1px 0 rgba(0, 0, 0, 0.08), 0 1px 1px rgba(0, 0, 0, 0.08);\n --eui-base-shadow-z-depth-1: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);\n --eui-base-shadow-z-depth-2: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23);\n --eui-base-shadow-z-depth-3: 0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(0, 0, 0, 0.23);\n --eui-base-shadow-z-depth-4: 0 14px 28px rgba(0, 0, 0, 0.25), 0 10px 10px rgba(0, 0, 0, 0.22);\n --eui-base-shadow-z-depth-5: 0 19px 38px rgba(0, 0, 0, 0.3), 0 15px 12px rgba(0, 0, 0, 0.22);\n --eui-base-z-index-auto: auto;\n --eui-base-z-index-zero: 0;\n --eui-base-z-index-root: 1;\n --eui-base-z-index-input-maxlength: 2;\n --eui-base-z-index-clearable-icon: 3;\n --eui-base-z-index-header: 5;\n --eui-base-z-index-top-message: 8;\n --eui-base-z-index-nav: 10;\n --eui-base-z-index-loading-indicator: 20;\n --eui-base-z-index-cdk-overlay-pane: 999;\n --eui-base-z-index-logo: 1000;\n --eui-base-z-index-sticky: 1040;\n --eui-base-z-index-sidebar: 1044;\n --eui-base-z-index-overlay: 1045;\n --eui-base-z-index-btn-floating: 1046;\n --eui-base-z-index-highlighted: 1047;\n --eui-base-z-index-footer-action-bar: 1048;\n --eui-base-z-index-modal-backdrop: 1049;\n --eui-base-z-index-modal: 1050;\n --eui-base-z-index-menu: 1060;\n --eui-base-z-index-tooltip: 1070;\n --eui-base-z-index-max: 9999;\n --eui-base-z-index-cdk-overlay-container: 10000;\n --eui-base-z-index-block-document: 10010;\n --eui-base-z-index-growl-message: 99999;\n}\n\n:root {\n --eui-base-line-height: 1.5;\n --eui-base-scale-factor: 1;\n --eui-base-disabled-opacity: 0.45;\n --eui-base-border-radius: 3px;\n --eui-base-border: 1px solid var(--eui-color-grey-lighter);\n --eui-base-border-light: 1px solid var(--eui-color-grey-light);\n --eui-base-border-lighter: 1px solid var(--eui-color-grey-lighter);\n --eui-base-border-lightest: 1px solid var(--eui-color-grey-lightest);\n --eui-base-animation-linear-out-slow-in-timing-function: cubic-bezier(0, 0, 0.2, 1);\n --eui-base-animation-fast-out-slow-in-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n --eui-base-animation-fast-out-linear-in-timing-function: cubic-bezier(0.4, 0, 1, 1);\n --eui-base-animation-ease-timing-function: cubic-bezier(0.25, 0.1, 0.25, 1);\n --eui-base-animation-ease-in-out-timing-function: ease-in-out;\n --eui-base-animation-duration-fast: 0.25s;\n --eui-base-animation-duration-medium: 0.5s;\n --eui-base-animation-duration-slow: 1s;\n --eui-base-animation-duration-base: 500ms;\n --eui-base-animation-duration: var(--eui-base-animation-duration-base);\n --eui-base-animation-transition-base: all 0.2s var(--eui-base-animation-linear-out-slow-in-timing-function);\n --eui-base-animation-transition-ease: all 0.2s var(--eui-base-animation-ease-timing-function);\n --eui-base-animation-transition-ease-in-out: all 0.2s var(--eui-base-animation-ease-in-out-timing-function);\n --eui-base-animation-transition-ease-in-out-1s: all 1s var(--eui-base-animation-ease-in-out-timing-function);\n --eui-base-animation-delay: 0s;\n --eui-base-animation-direction: normal;\n --eui-base-animation-fill-mode: forwards;\n --eui-base-animation-background-color: var(--eui-base-color-primary-50);\n --eui-base-color-accessible-focus: var(--eui-base-color-accent-110);\n}\n\n:root {\n --eui-app-header-height-default: 0px;\n --eui-app-header-height: 0px;\n --eui-app-header-height-active: 90px;\n --eui-app-header-height-shrink: 0px;\n --eui-app-breadcrumb-height-default: 0px;\n --eui-app-breadcrumb-height: 0px;\n --eui-app-breadcrumb-height-active: 20px;\n --eui-app-top-message-height-default: 0px;\n --eui-app-top-message-height: 0px;\n --eui-app-top-message-height-active: 42px;\n --eui-app-toolbar-height-default: 0px;\n --eui-app-toolbar-height: 0px;\n --eui-app-toolbar-height-active: 55px;\n --eui-app-sidebar-width-default: 0px;\n --eui-app-sidebar-width: 0px;\n --eui-app-sidebar-width-active: 300px;\n --eui-app-sidebar-width-close-default: 0px;\n --eui-app-sidebar-width-close: 0px;\n --eui-app-sidebar-width-close-active: 64px;\n --eui-app-sidebar-header-height: 0px;\n --eui-app-sidebar-header-height-default: 0px;\n --eui-app-sidebar-header-height-active: 48px;\n --eui-app-sidebar-footer-height: 0px;\n --eui-app-sidebar-footer-height-default: 0px;\n --eui-app-sidebar-footer-height-active: 24px;\n --eui-page-header-with-subtitle-height: 4rem;\n --eui-page-header-without-subtitle-height: 2rem;\n --eui-page-column--size-s: 50px;\n --eui-page-column--size-m: 150px;\n --eui-page-column--size-l: 200px;\n --eui-page-column--size-xl: 250px;\n --eui-page-column--size-xxl: 300px;\n --eui-page-column--size-xxxl: 350px;\n --eui-page-column-footer-height: 3.5rem;\n}\n\n.xs, .sm {\n --eui-app-header-height: 0px;\n}\n\n:root {\n --eui-app-box-shadow: none;\n}\n\n.eui-icon-svg {\n fill: currentColor;\n margin: 0;\n transform: scaleX(1) scaleY(1) rotateZ(0deg);\n transition: transform 300ms ease-in-out;\n display: inline-flex;\n align-items: center;\n}\n\n.eui-icon-svg--size-2xs {\n height: 0.75rem;\n width: 0.75rem;\n}\n\n.eui-icon-svg--size-xs {\n height: 1rem;\n width: 1rem;\n}\n\n.eui-icon-svg--size-s {\n height: 1.25rem;\n width: 1.25rem;\n}\n\n.eui-icon-svg--size-m {\n height: 1.5rem;\n width: 1.5rem;\n}\n\n.eui-icon-svg--size-l {\n height: 2rem;\n width: 2rem;\n}\n\n.eui-icon-svg--size-xl {\n height: 2.5rem;\n width: 2.5rem;\n}\n\n.eui-icon-svg--size-2xl {\n height: 3rem;\n width: 3rem;\n}\n\n.eui-icon-svg--size-3xl {\n height: 3.5rem;\n width: 3.5rem;\n}\n\n.eui-icon-svg--size-4xl {\n height: 4rem;\n width: 4rem;\n}\n\n.eui-icon-svg--color-grey-110 {\n color: #3a3a3a;\n fill: #3a3a3a;\n}\n\n.eui-icon-svg--color-grey-100 {\n color: #404040;\n fill: #404040;\n}\n\n.eui-icon-svg--color-grey-90 {\n color: #535353;\n fill: #535353;\n}\n\n.eui-icon-svg--color-grey-80 {\n color: #666666;\n fill: #666666;\n}\n\n.eui-icon-svg--color-grey-75 {\n color: #707070;\n fill: #707070;\n}\n\n.eui-icon-svg--color-grey-50 {\n color: #a0a0a0;\n fill: #a0a0a0;\n}\n\n.eui-icon-svg--color-grey-35 {\n color: #bcbcbc;\n fill: #bcbcbc;\n}\n\n.eui-icon-svg--color-grey-25 {\n color: #cfcfcf;\n fill: #cfcfcf;\n}\n\n.eui-icon-svg--color-grey-20 {\n color: #d9d9d9;\n fill: #d9d9d9;\n}\n\n.eui-icon-svg--color-grey-15 {\n color: #e2e2e2;\n fill: #e2e2e2;\n}\n\n.eui-icon-svg--color-grey-10 {\n color: #ececec;\n fill: #ececec;\n}\n\n.eui-icon-svg--color-grey-5 {\n color: whitesmoke;\n fill: whitesmoke;\n}\n\n.eui-icon-svg--color-grey-2 {\n color: #f9fafb;\n fill: #f9fafb;\n}\n\n.eui-icon-svg--color-grey-0 {\n color: white;\n fill: white;\n}\n\n.eui-icon-svg--color-primary-140 {\n color: #002959;\n fill: #002959;\n}\n\n.eui-icon-svg--color-primary-130 {\n color: #003068;\n fill: #003068;\n}\n\n.eui-icon-svg--color-primary-120 {\n color: #003676;\n fill: #003676;\n}\n\n.eui-icon-svg--color-primary-110 {\n color: #003d85;\n fill: #003d85;\n}\n\n.eui-icon-svg--color-primary-100 {\n color: #004494;\n fill: #004494;\n}\n\n.eui-icon-svg--color-primary-75 {\n color: #4073af;\n fill: #4073af;\n}\n\n.eui-icon-svg--color-primary-50 {\n color: #80a2ca;\n fill: #80a2ca;\n}\n\n.eui-icon-svg--color-primary-25 {\n color: #bfd0e4;\n fill: #bfd0e4;\n}\n\n.eui-icon-svg--color-primary-10 {\n color: #e6ecf4;\n fill: #e6ecf4;\n}\n\n.eui-icon-svg--color-primary-5 {\n color: #f2f6fa;\n fill: #f2f6fa;\n}\n\n.eui-icon-svg--color-primary-2 {\n color: #fafbfd;\n fill: #fafbfd;\n}\n\n.eui-icon-svg--color-accent-140 {\n color: #99800e;\n fill: #99800e;\n}\n\n.eui-icon-svg--color-accent-130 {\n color: #b39610;\n fill: #b39610;\n}\n\n.eui-icon-svg--color-accent-120 {\n color: #f8ae21;\n fill: #f8ae21;\n}\n\n.eui-icon-svg--color-accent-110 {\n color: #fbc11d;\n fill: #fbc11d;\n}\n\n.eui-icon-svg--color-accent-100 {\n color: #ffd617;\n fill: #ffd617;\n}\n\n.eui-icon-svg--color-accent-75 {\n color: #ffde39;\n fill: #ffde39;\n}\n\n.eui-icon-svg--color-accent-50 {\n color: #ffe879;\n fill: #ffe879;\n}\n\n.eui-icon-svg--color-accent-25 {\n color: #fff4bb;\n fill: #fff4bb;\n}\n\n.eui-icon-svg--color-accent-10 {\n color: #fffbe8;\n fill: #fffbe8;\n}\n\n.eui-icon-svg--color-accent-5 {\n color: #fffdf3;\n fill: #fffdf3;\n}\n\n.eui-icon-svg--color-accent-2 {\n color: #fffefa;\n fill: #fffefa;\n}\n\n.eui-icon-svg--color-info-140 {\n color: #00436c;\n fill: #00436c;\n}\n\n.eui-icon-svg--color-info-130 {\n color: #004e7e;\n fill: #004e7e;\n}\n\n.eui-icon-svg--color-info-120 {\n color: #005990;\n fill: #005990;\n}\n\n.eui-icon-svg--color-info-110 {\n color: #0064a2;\n fill: #0064a2;\n}\n\n.eui-icon-svg--color-info-100 {\n color: #006fb4;\n fill: #006fb4;\n}\n\n.eui-icon-svg--color-info-75 {\n color: #4093c7;\n fill: #4093c7;\n}\n\n.eui-icon-svg--color-info-50 {\n color: #80b7da;\n fill: #80b7da;\n}\n\n.eui-icon-svg--color-info-25 {\n color: #bfdbec;\n fill: #bfdbec;\n}\n\n.eui-icon-svg--color-info-10 {\n color: #e6f1f8;\n fill: #e6f1f8;\n}\n\n.eui-icon-svg--color-info-5 {\n color: #f2f8fb;\n fill: #f2f8fb;\n}\n\n.eui-icon-svg--color-info-2 {\n color: #fafcfe;\n fill: #fafcfe;\n}\n\n.eui-icon-svg--color-success-140 {\n color: #2a4922;\n fill: #2a4922;\n}\n\n.eui-icon-svg--color-success-130 {\n color: #315528;\n fill: #315528;\n}\n\n.eui-icon-svg--color-success-120 {\n color: #38622e;\n fill: #38622e;\n}\n\n.eui-icon-svg--color-success-110 {\n color: #3f6e33;\n fill: #3f6e33;\n}\n\n.eui-icon-svg--color-success-100 {\n color: #467a39;\n fill: #467a39;\n}\n\n.eui-icon-svg--color-success-75 {\n color: #749b6b;\n fill: #749b6b;\n}\n\n.eui-icon-svg--color-success-50 {\n color: #a3bd9c;\n fill: #a3bd9c;\n}\n\n.eui-icon-svg--color-success-25 {\n color: #d1dece;\n fill: #d1dece;\n}\n\n.eui-icon-svg--color-success-10 {\n color: #edf2eb;\n fill: #edf2eb;\n}\n\n.eui-icon-svg--color-success-5 {\n color: #f6f8f5;\n fill: #f6f8f5;\n}\n\n.eui-icon-svg--color-success-2 {\n color: #fbfcfb;\n fill: #fbfcfb;\n}\n\n.eui-icon-svg--color-warning-140 {\n color: #915917;\n fill: #915917;\n}\n\n.eui-icon-svg--color-warning-130 {\n color: #a9681b;\n fill: #a9681b;\n}\n\n.eui-icon-svg--color-warning-120 {\n color: #c2771f;\n fill: #c2771f;\n}\n\n.eui-icon-svg--color-warning-110 {\n color: #da8623;\n fill: #da8623;\n}\n\n.eui-icon-svg--color-warning-100 {\n color: #f29527;\n fill: #f29527;\n}\n\n.eui-icon-svg--color-warning-75 {\n color: #f5b05d;\n fill: #f5b05d;\n}\n\n.eui-icon-svg--color-warning-50 {\n color: #f9ca93;\n fill: #f9ca93;\n}\n\n.eui-icon-svg--color-warning-25 {\n color: #fce5c9;\n fill: #fce5c9;\n}\n\n.eui-icon-svg--color-warning-10 {\n color: #fef4e9;\n fill: #fef4e9;\n}\n\n.eui-icon-svg--color-warning-5 {\n color: #fefaf4;\n fill: #fefaf4;\n}\n\n.eui-icon-svg--color-warning-2 {\n color: #fffdfb;\n fill: #fffdfb;\n}\n\n.eui-icon-svg--color-danger-140 {\n color: #83141d;\n fill: #83141d;\n}\n\n.eui-icon-svg--color-danger-130 {\n color: #991722;\n fill: #991722;\n}\n\n.eui-icon-svg--color-danger-120 {\n color: #ae1a27;\n fill: #ae1a27;\n}\n\n.eui-icon-svg--color-danger-110 {\n color: #c41e2c;\n fill: #c41e2c;\n}\n\n.eui-icon-svg--color-danger-100 {\n color: #da2131;\n fill: #da2131;\n}\n\n.eui-icon-svg--color-danger-75 {\n color: #e35965;\n fill: #e35965;\n}\n\n.eui-icon-svg--color-danger-50 {\n color: #ed9098;\n fill: #ed9098;\n}\n\n.eui-icon-svg--color-danger-25 {\n color: #f6c8cc;\n fill: #f6c8cc;\n}\n\n.eui-icon-svg--color-danger-10 {\n color: #fbe9ea;\n fill: #fbe9ea;\n}\n\n.eui-icon-svg--color-danger-5 {\n color: #fdf4f5;\n fill: #fdf4f5;\n}\n\n.eui-icon-svg--color-danger-2 {\n color: #fefbfb;\n fill: #fefbfb;\n}\n\n.eui-icon-svg--color-grey {\n color: #a0a0a0;\n fill: #a0a0a0;\n}\n\n.eui-icon-svg--color-primary {\n color: #004494;\n fill: #004494;\n}\n\n.eui-icon-svg--color-accent {\n color: #ffd617;\n fill: #ffd617;\n}\n\n.eui-icon-svg--color-info {\n color: #006fb4;\n fill: #006fb4;\n}\n\n.eui-icon-svg--color-success {\n color: #467a39;\n fill: #467a39;\n}\n\n.eui-icon-svg--color-warning {\n color: #f29527;\n fill: #f29527;\n}\n\n.eui-icon-svg--color-danger {\n color: #da2131;\n fill: #da2131;\n}\n\n.eui-icon-svg--color-white {\n color: var(--eui-base-color-white);\n fill: var(--eui-base-color-white);\n}\n\n.eui-icon-svg--color-black {\n color: var(--eui-base-color-black);\n fill: var(--eui-base-color-black);\n}\n\n.eui-icon-svg--color-transparent {\n color: transparent !important;\n fill: transparent !important;\n}\n\n.row {\n --bs-gutter-x: 1.5rem;\n --bs-gutter-y: 0;\n display: flex;\n flex-wrap: wrap;\n margin-top: calc(-1 * var(--bs-gutter-y));\n margin-right: calc(-0.5 * var(--bs-gutter-x));\n margin-left: calc(-0.5 * var(--bs-gutter-x));\n}\n.row > * {\n box-sizing: border-box;\n flex-shrink: 0;\n width: 100%;\n max-width: 100%;\n padding-right: calc(var(--bs-gutter-x) * 0.5);\n padding-left: calc(var(--bs-gutter-x) * 0.5);\n margin-top: var(--bs-gutter-y);\n}\n\n.col {\n flex: 1 0 0%;\n}\n\n.row-cols-auto > * {\n flex: 0 0 auto;\n width: auto;\n}\n\n.row-cols-1 > * {\n flex: 0 0 auto;\n width: 100%;\n}\n\n.row-cols-2 > * {\n flex: 0 0 auto;\n width: 50%;\n}\n\n.row-cols-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n}\n\n.row-cols-4 > * {\n flex: 0 0 auto;\n width: 25%;\n}\n\n.row-cols-5 > * {\n flex: 0 0 auto;\n width: 20%;\n}\n\n.row-cols-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n}\n\n.col-auto {\n flex: 0 0 auto;\n width: auto;\n}\n\n.col-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n}\n\n.col-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n}\n\n.col-3 {\n flex: 0 0 auto;\n width: 25%;\n}\n\n.col-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n}\n\n.col-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n}\n\n.col-6 {\n flex: 0 0 auto;\n width: 50%;\n}\n\n.col-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n}\n\n.col-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n}\n\n.col-9 {\n flex: 0 0 auto;\n width: 75%;\n}\n\n.col-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n}\n\n.col-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n}\n\n.col-12 {\n flex: 0 0 auto;\n width: 100%;\n}\n\n.offset-1 {\n margin-left: 8.33333333%;\n}\n\n.offset-2 {\n margin-left: 16.66666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.33333333%;\n}\n\n.offset-5 {\n margin-left: 41.66666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.33333333%;\n}\n\n.offset-8 {\n margin-left: 66.66666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.33333333%;\n}\n\n.offset-11 {\n margin-left: 91.66666667%;\n}\n\n.g-0,\n.gx-0 {\n --bs-gutter-x: 0;\n}\n\n.g-0,\n.gy-0 {\n --bs-gutter-y: 0;\n}\n\n.g-1,\n.gx-1 {\n --bs-gutter-x: 0.25rem;\n}\n\n.g-1,\n.gy-1 {\n --bs-gutter-y: 0.25rem;\n}\n\n.g-2,\n.gx-2 {\n --bs-gutter-x: 0.5rem;\n}\n\n.g-2,\n.gy-2 {\n --bs-gutter-y: 0.5rem;\n}\n\n.g-3,\n.gx-3 {\n --bs-gutter-x: 1rem;\n}\n\n.g-3,\n.gy-3 {\n --bs-gutter-y: 1rem;\n}\n\n.g-4,\n.gx-4 {\n --bs-gutter-x: 1.5rem;\n}\n\n.g-4,\n.gy-4 {\n --bs-gutter-y: 1.5rem;\n}\n\n.g-5,\n.gx-5 {\n --bs-gutter-x: 3rem;\n}\n\n.g-5,\n.gy-5 {\n --bs-gutter-y: 3rem;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n flex: 1 0 0%;\n }\n .row-cols-sm-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-sm-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-sm-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-sm-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .row-cols-sm-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-sm-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-sm-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-sm-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-sm-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-sm-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-sm-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-sm-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-sm-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-sm-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-sm-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-sm-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-sm-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-sm-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-sm-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-sm-0 {\n margin-left: 0;\n }\n .offset-sm-1 {\n margin-left: 8.33333333%;\n }\n .offset-sm-2 {\n margin-left: 16.66666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.33333333%;\n }\n .offset-sm-5 {\n margin-left: 41.66666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.33333333%;\n }\n .offset-sm-8 {\n margin-left: 66.66666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.33333333%;\n }\n .offset-sm-11 {\n margin-left: 91.66666667%;\n }\n .g-sm-0,\n .gx-sm-0 {\n --bs-gutter-x: 0;\n }\n .g-sm-0,\n .gy-sm-0 {\n --bs-gutter-y: 0;\n }\n .g-sm-1,\n .gx-sm-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-sm-1,\n .gy-sm-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-sm-2,\n .gx-sm-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-sm-2,\n .gy-sm-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-sm-3,\n .gx-sm-3 {\n --bs-gutter-x: 1rem;\n }\n .g-sm-3,\n .gy-sm-3 {\n --bs-gutter-y: 1rem;\n }\n .g-sm-4,\n .gx-sm-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-sm-4,\n .gy-sm-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-sm-5,\n .gx-sm-5 {\n --bs-gutter-x: 3rem;\n }\n .g-sm-5,\n .gy-sm-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 768px) {\n .col-md {\n flex: 1 0 0%;\n }\n .row-cols-md-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-md-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-md-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-md-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .row-cols-md-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-md-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-md-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-md-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-md-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-md-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-md-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-md-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-md-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-md-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-md-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-md-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-md-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-md-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-md-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-md-0 {\n margin-left: 0;\n }\n .offset-md-1 {\n margin-left: 8.33333333%;\n }\n .offset-md-2 {\n margin-left: 16.66666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.33333333%;\n }\n .offset-md-5 {\n margin-left: 41.66666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.33333333%;\n }\n .offset-md-8 {\n margin-left: 66.66666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.33333333%;\n }\n .offset-md-11 {\n margin-left: 91.66666667%;\n }\n .g-md-0,\n .gx-md-0 {\n --bs-gutter-x: 0;\n }\n .g-md-0,\n .gy-md-0 {\n --bs-gutter-y: 0;\n }\n .g-md-1,\n .gx-md-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-md-1,\n .gy-md-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-md-2,\n .gx-md-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-md-2,\n .gy-md-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-md-3,\n .gx-md-3 {\n --bs-gutter-x: 1rem;\n }\n .g-md-3,\n .gy-md-3 {\n --bs-gutter-y: 1rem;\n }\n .g-md-4,\n .gx-md-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-md-4,\n .gy-md-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-md-5,\n .gx-md-5 {\n --bs-gutter-x: 3rem;\n }\n .g-md-5,\n .gy-md-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 992px) {\n .col-lg {\n flex: 1 0 0%;\n }\n .row-cols-lg-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-lg-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-lg-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-lg-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .row-cols-lg-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-lg-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-lg-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-lg-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-lg-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-lg-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-lg-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-lg-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-lg-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-lg-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-lg-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-lg-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-lg-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-lg-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-lg-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-lg-0 {\n margin-left: 0;\n }\n .offset-lg-1 {\n margin-left: 8.33333333%;\n }\n .offset-lg-2 {\n margin-left: 16.66666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.33333333%;\n }\n .offset-lg-5 {\n margin-left: 41.66666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.33333333%;\n }\n .offset-lg-8 {\n margin-left: 66.66666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.33333333%;\n }\n .offset-lg-11 {\n margin-left: 91.66666667%;\n }\n .g-lg-0,\n .gx-lg-0 {\n --bs-gutter-x: 0;\n }\n .g-lg-0,\n .gy-lg-0 {\n --bs-gutter-y: 0;\n }\n .g-lg-1,\n .gx-lg-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-lg-1,\n .gy-lg-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-lg-2,\n .gx-lg-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-lg-2,\n .gy-lg-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-lg-3,\n .gx-lg-3 {\n --bs-gutter-x: 1rem;\n }\n .g-lg-3,\n .gy-lg-3 {\n --bs-gutter-y: 1rem;\n }\n .g-lg-4,\n .gx-lg-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-lg-4,\n .gy-lg-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-lg-5,\n .gx-lg-5 {\n --bs-gutter-x: 3rem;\n }\n .g-lg-5,\n .gy-lg-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 1200px) {\n .col-xl {\n flex: 1 0 0%;\n }\n .row-cols-xl-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-xl-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-xl-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-xl-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .row-cols-xl-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-xl-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-xl-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-xl-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-xl-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-xl-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-xl-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-xl-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-xl-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-xl-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-xl-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-xl-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-xl-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-xl-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-xl-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-xl-0 {\n margin-left: 0;\n }\n .offset-xl-1 {\n margin-left: 8.33333333%;\n }\n .offset-xl-2 {\n margin-left: 16.66666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.33333333%;\n }\n .offset-xl-5 {\n margin-left: 41.66666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.33333333%;\n }\n .offset-xl-8 {\n margin-left: 66.66666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.33333333%;\n }\n .offset-xl-11 {\n margin-left: 91.66666667%;\n }\n .g-xl-0,\n .gx-xl-0 {\n --bs-gutter-x: 0;\n }\n .g-xl-0,\n .gy-xl-0 {\n --bs-gutter-y: 0;\n }\n .g-xl-1,\n .gx-xl-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-xl-1,\n .gy-xl-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-xl-2,\n .gx-xl-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-xl-2,\n .gy-xl-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-xl-3,\n .gx-xl-3 {\n --bs-gutter-x: 1rem;\n }\n .g-xl-3,\n .gy-xl-3 {\n --bs-gutter-y: 1rem;\n }\n .g-xl-4,\n .gx-xl-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-xl-4,\n .gy-xl-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-xl-5,\n .gx-xl-5 {\n --bs-gutter-x: 3rem;\n }\n .g-xl-5,\n .gy-xl-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 1400px) {\n .col-xxl {\n flex: 1 0 0%;\n }\n .row-cols-xxl-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-xxl-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-xxl-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-xxl-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .row-cols-xxl-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-xxl-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-xxl-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .col-xxl-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-xxl-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-xxl-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-xxl-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-xxl-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-xxl-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-xxl-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-xxl-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-xxl-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-xxl-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-xxl-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-xxl-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-xxl-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-xxl-0 {\n margin-left: 0;\n }\n .offset-xxl-1 {\n margin-left: 8.33333333%;\n }\n .offset-xxl-2 {\n margin-left: 16.66666667%;\n }\n .offset-xxl-3 {\n margin-left: 25%;\n }\n .offset-xxl-4 {\n margin-left: 33.33333333%;\n }\n .offset-xxl-5 {\n margin-left: 41.66666667%;\n }\n .offset-xxl-6 {\n margin-left: 50%;\n }\n .offset-xxl-7 {\n margin-left: 58.33333333%;\n }\n .offset-xxl-8 {\n margin-left: 66.66666667%;\n }\n .offset-xxl-9 {\n margin-left: 75%;\n }\n .offset-xxl-10 {\n margin-left: 83.33333333%;\n }\n .offset-xxl-11 {\n margin-left: 91.66666667%;\n }\n .g-xxl-0,\n .gx-xxl-0 {\n --bs-gutter-x: 0;\n }\n .g-xxl-0,\n .gy-xxl-0 {\n --bs-gutter-y: 0;\n }\n .g-xxl-1,\n .gx-xxl-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-xxl-1,\n .gy-xxl-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-xxl-2,\n .gx-xxl-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-xxl-2,\n .gy-xxl-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-xxl-3,\n .gx-xxl-3 {\n --bs-gutter-x: 1rem;\n }\n .g-xxl-3,\n .gy-xxl-3 {\n --bs-gutter-y: 1rem;\n }\n .g-xxl-4,\n .gx-xxl-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-xxl-4,\n .gy-xxl-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-xxl-5,\n .gx-xxl-5 {\n --bs-gutter-x: 3rem;\n }\n .g-xxl-5,\n .gy-xxl-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 1900px) {\n .col-xxxl {\n flex: 1 0 0%;\n }\n .row-cols-xxxl-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-xxxl-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-xxxl-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-xxxl-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .row-cols-xxxl-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-xxxl-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-xxxl-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .col-xxxl-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-xxxl-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-xxxl-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-xxxl-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-xxxl-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-xxxl-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-xxxl-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-xxxl-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-xxxl-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-xxxl-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-xxxl-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-xxxl-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-xxxl-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-xxxl-0 {\n margin-left: 0;\n }\n .offset-xxxl-1 {\n margin-left: 8.33333333%;\n }\n .offset-xxxl-2 {\n margin-left: 16.66666667%;\n }\n .offset-xxxl-3 {\n margin-left: 25%;\n }\n .offset-xxxl-4 {\n margin-left: 33.33333333%;\n }\n .offset-xxxl-5 {\n margin-left: 41.66666667%;\n }\n .offset-xxxl-6 {\n margin-left: 50%;\n }\n .offset-xxxl-7 {\n margin-left: 58.33333333%;\n }\n .offset-xxxl-8 {\n margin-left: 66.66666667%;\n }\n .offset-xxxl-9 {\n margin-left: 75%;\n }\n .offset-xxxl-10 {\n margin-left: 83.33333333%;\n }\n .offset-xxxl-11 {\n margin-left: 91.66666667%;\n }\n .g-xxxl-0,\n .gx-xxxl-0 {\n --bs-gutter-x: 0;\n }\n .g-xxxl-0,\n .gy-xxxl-0 {\n --bs-gutter-y: 0;\n }\n .g-xxxl-1,\n .gx-xxxl-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-xxxl-1,\n .gy-xxxl-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-xxxl-2,\n .gx-xxxl-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-xxxl-2,\n .gy-xxxl-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-xxxl-3,\n .gx-xxxl-3 {\n --bs-gutter-x: 1rem;\n }\n .g-xxxl-3,\n .gy-xxxl-3 {\n --bs-gutter-y: 1rem;\n }\n .g-xxxl-4,\n .gx-xxxl-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-xxxl-4,\n .gy-xxxl-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-xxxl-5,\n .gx-xxxl-5 {\n --bs-gutter-x: 3rem;\n }\n .g-xxxl-5,\n .gy-xxxl-5 {\n --bs-gutter-y: 3rem;\n }\n}\n.mat-ripple {\n overflow: hidden;\n position: relative;\n}\n.mat-ripple:not(:empty) {\n transform: translateZ(0);\n}\n\n.mat-ripple.mat-ripple-unbounded {\n overflow: visible;\n}\n\n.mat-ripple-element {\n position: absolute;\n border-radius: 50%;\n pointer-events: none;\n transition: opacity, transform 0ms cubic-bezier(0, 0, 0.2, 1);\n transform: scale3d(0, 0, 0);\n}\n.cdk-high-contrast-active .mat-ripple-element {\n display: none;\n}\n\n.cdk-visually-hidden {\n border: 0;\n clip: rect(0 0 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n white-space: nowrap;\n outline: 0;\n -webkit-appearance: none;\n -moz-appearance: none;\n left: 0;\n}\n[dir=rtl] .cdk-visually-hidden {\n left: auto;\n right: 0;\n}\n\n.cdk-overlay-container, .cdk-global-overlay-wrapper {\n pointer-events: none;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n}\n\n.cdk-overlay-container {\n position: fixed;\n z-index: 1000;\n}\n.cdk-overlay-container:empty {\n display: none;\n}\n\n.cdk-global-overlay-wrapper {\n display: flex;\n position: absolute;\n z-index: 1000;\n}\n\n.cdk-overlay-pane {\n position: absolute;\n pointer-events: auto;\n box-sizing: border-box;\n z-index: 1000;\n display: flex;\n max-width: 100%;\n max-height: 100%;\n}\n\n.cdk-overlay-backdrop {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n z-index: 1000;\n pointer-events: auto;\n -webkit-tap-highlight-color: transparent;\n transition: opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);\n opacity: 0;\n}\n.cdk-overlay-backdrop.cdk-overlay-backdrop-showing {\n opacity: 1;\n}\n.cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showing {\n opacity: 0.6;\n}\n\n.cdk-overlay-dark-backdrop {\n background: rgba(0, 0, 0, 0.32);\n}\n\n.cdk-overlay-transparent-backdrop {\n transition: visibility 1ms linear, opacity 1ms linear;\n visibility: hidden;\n opacity: 1;\n}\n.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing {\n opacity: 0;\n visibility: visible;\n}\n\n.cdk-overlay-backdrop-noop-animation {\n transition: none;\n}\n\n.cdk-overlay-connected-position-bounding-box {\n position: absolute;\n z-index: 1000;\n display: flex;\n flex-direction: column;\n min-width: 1px;\n min-height: 1px;\n}\n\n.cdk-global-scrollblock {\n position: fixed;\n width: 100%;\n overflow-y: scroll;\n}\n\ntextarea.cdk-textarea-autosize {\n resize: none;\n}\n\ntextarea.cdk-textarea-autosize-measuring {\n padding: 2px 0 !important;\n box-sizing: content-box !important;\n height: auto !important;\n overflow: hidden !important;\n}\n\ntextarea.cdk-textarea-autosize-measuring-firefox {\n padding: 2px 0 !important;\n box-sizing: content-box !important;\n height: 0 !important;\n}\n\n@keyframes cdk-text-field-autofill-start { /*!*/ }\n@keyframes cdk-text-field-autofill-end { /*!*/ }\n.cdk-text-field-autofill-monitored:-webkit-autofill {\n animation: cdk-text-field-autofill-start 0s 1ms;\n}\n\n.cdk-text-field-autofill-monitored:not(:-webkit-autofill) {\n animation: cdk-text-field-autofill-end 0s 1ms;\n}\n\n.mat-focus-indicator {\n position: relative;\n}\n.mat-focus-indicator::before {\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n position: absolute;\n box-sizing: border-box;\n pointer-events: none;\n display: var(--mat-focus-indicator-display, none);\n border: var(--mat-focus-indicator-border-width, 3px) var(--mat-focus-indicator-border-style, solid) var(--mat-focus-indicator-border-color, transparent);\n border-radius: var(--mat-focus-indicator-border-radius, 4px);\n}\n.mat-focus-indicator:focus::before {\n content: \"\";\n}\n\n.cdk-high-contrast-active {\n --mat-focus-indicator-display: block;\n}\n\n.mat-mdc-focus-indicator {\n position: relative;\n}\n.mat-mdc-focus-indicator::before {\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n position: absolute;\n box-sizing: border-box;\n pointer-events: none;\n display: var(--mat-mdc-focus-indicator-display, none);\n border: var(--mat-mdc-focus-indicator-border-width, 3px) var(--mat-mdc-focus-indicator-border-style, solid) var(--mat-mdc-focus-indicator-border-color, transparent);\n border-radius: var(--mat-mdc-focus-indicator-border-radius, 4px);\n}\n.mat-mdc-focus-indicator:focus::before {\n content: \"\";\n}\n\n.cdk-high-contrast-active {\n --mat-mdc-focus-indicator-display: block;\n}\n\nhtml {\n --mat-datepicker-calendar-date-selected-state-text-color: white;\n --mat-datepicker-calendar-date-selected-state-background-color: #004494;\n --mat-datepicker-calendar-date-selected-disabled-state-background-color: rgba(0, 68, 148, 0.4);\n --mat-datepicker-calendar-date-today-selected-state-outline-color: white;\n --mat-datepicker-calendar-date-focus-state-background-color: rgba(0, 68, 148, 0.3);\n --mat-datepicker-calendar-date-hover-state-background-color: rgba(0, 68, 148, 0.3);\n --mat-datepicker-toggle-active-state-icon-color: #004494;\n --mat-datepicker-calendar-date-in-range-state-background-color: rgba(0, 68, 148, 0.2);\n --mat-datepicker-calendar-date-in-comparison-range-state-background-color: rgba(249, 171, 0, 0.2);\n --mat-datepicker-calendar-date-in-overlap-range-state-background-color: #a8dab5;\n --mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color: #46a35e;\n --mat-datepicker-toggle-icon-color: rgba(0, 0, 0, 0.54);\n --mat-datepicker-calendar-body-label-text-color: rgba(0, 0, 0, 0.54);\n --mat-datepicker-calendar-period-button-icon-color: rgba(0, 0, 0, 0.54);\n --mat-datepicker-calendar-navigation-button-icon-color: rgba(0, 0, 0, 0.54);\n --mat-datepicker-calendar-header-divider-color: rgba(0, 0, 0, 0.12);\n --mat-datepicker-calendar-header-text-color: rgba(0, 0, 0, 0.54);\n --mat-datepicker-calendar-date-today-outline-color: rgba(0, 0, 0, 0.38);\n --mat-datepicker-calendar-date-today-disabled-state-outline-color: rgba(0, 0, 0, 0.18);\n --mat-datepicker-calendar-date-text-color: rgba(0, 0, 0, 0.87);\n --mat-datepicker-calendar-date-outline-color: transparent;\n --mat-datepicker-calendar-date-disabled-state-text-color: rgba(0, 0, 0, 0.38);\n --mat-datepicker-calendar-date-preview-state-outline-color: rgba(0, 0, 0, 0.24);\n --mat-datepicker-range-input-separator-color: rgba(0, 0, 0, 0.87);\n --mat-datepicker-range-input-disabled-state-separator-color: rgba(0, 0, 0, 0.38);\n --mat-datepicker-range-input-disabled-state-text-color: rgba(0, 0, 0, 0.38);\n --mat-datepicker-calendar-container-background-color: white;\n --mat-datepicker-calendar-container-text-color: rgba(0, 0, 0, 0.87);\n}\n\n.mat-datepicker-content.mat-accent {\n --mat-datepicker-calendar-date-selected-state-text-color: #999999;\n --mat-datepicker-calendar-date-selected-state-background-color: #fffcf4;\n --mat-datepicker-calendar-date-selected-disabled-state-background-color: rgba(255, 252, 244, 0.4);\n --mat-datepicker-calendar-date-today-selected-state-outline-color: #999999;\n --mat-datepicker-calendar-date-focus-state-background-color: rgba(255, 252, 244, 0.3);\n --mat-datepicker-calendar-date-hover-state-background-color: rgba(255, 252, 244, 0.3);\n --mat-datepicker-calendar-date-in-range-state-background-color: rgba(255, 252, 244, 0.2);\n --mat-datepicker-calendar-date-in-comparison-range-state-background-color: rgba(249, 171, 0, 0.2);\n --mat-datepicker-calendar-date-in-overlap-range-state-background-color: #a8dab5;\n --mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color: #46a35e;\n}\n.mat-datepicker-content.mat-warn {\n --mat-datepicker-calendar-date-selected-state-text-color: white;\n --mat-datepicker-calendar-date-selected-state-background-color: #f44336;\n --mat-datepicker-calendar-date-selected-disabled-state-background-color: rgba(244, 67, 54, 0.4);\n --mat-datepicker-calendar-date-today-selected-state-outline-color: white;\n --mat-datepicker-calendar-date-focus-state-background-color: rgba(244, 67, 54, 0.3);\n --mat-datepicker-calendar-date-hover-state-background-color: rgba(244, 67, 54, 0.3);\n --mat-datepicker-calendar-date-in-range-state-background-color: rgba(244, 67, 54, 0.2);\n --mat-datepicker-calendar-date-in-comparison-range-state-background-color: rgba(249, 171, 0, 0.2);\n --mat-datepicker-calendar-date-in-overlap-range-state-background-color: #a8dab5;\n --mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color: #46a35e;\n}\n\n.mat-datepicker-toggle-active.mat-accent {\n --mat-datepicker-toggle-active-state-icon-color: #fffcf4;\n}\n.mat-datepicker-toggle-active.mat-warn {\n --mat-datepicker-toggle-active-state-icon-color: #f44336;\n}\n\n.mat-calendar-controls .mat-mdc-icon-button.mat-mdc-button-base {\n --mdc-icon-button-state-layer-size: 40px;\n width: var(--mdc-icon-button-state-layer-size);\n height: var(--mdc-icon-button-state-layer-size);\n padding: 8px;\n}\n.mat-calendar-controls .mat-mdc-icon-button.mat-mdc-button-base .mat-mdc-button-touch-target {\n display: none;\n}\n\n.mat-calendar {\n font-size: small !important;\n font-family: var(--eui-base-font-family) !important;\n}\n.mat-calendar.mat-calendar-year .mat-calendar-period-button {\n display: none;\n}\n\n.cdk-drag-handle {\n cursor: move !important;\n}\n\n.cdk-drop-list {\n display: flex;\n min-width: 100%;\n}\n.cdk-drop-list:not(.cdk-drop-list-disabled) {\n min-height: var(--eui-base-spacing-xl);\n}\n\n.cdk-drop-list-dragging .cdk-drag {\n transition: transform 250ms cubic-bezier(0, 0, 0.2, 1);\n}\n\n.cdk-drag-animating {\n transition: transform 300ms cubic-bezier(0, 0, 0.2, 1);\n}\n\n.cdk-drag-preview {\n background-color: transparent;\n box-shadow: none;\n cursor: grab !important;\n display: table;\n margin: 0 !important;\n opacity: 1;\n position: relative;\n}\n\n.cdk-drag-dragging {\n opacity: 1;\n}\n\n.cdk-drag-placeholder {\n background-color: transparent;\n opacity: 0.35;\n}\n.cdk-drag-placeholder:hover {\n outline: 2px dashed var(--eui-base-color-grey-35);\n outline-offset: 2px;\n}\n\n.cdk-global-scrollblock {\n position: fixed;\n overflow-y: visible;\n width: 100%;\n left: 0 !important;\n}\n.cdk-global-scrollblock::-webkit-scrollbar {\n display: inherit;\n height: 8px;\n width: 8px;\n background-color: var(--eui-base-color-grey-5);\n}\n.cdk-global-scrollblock::-webkit-scrollbar-thumb {\n background-color: var(--eui-base-color-grey-20);\n border-radius: 5rem;\n}\n.cdk-global-scrollblock::-webkit-scrollbar-thumb:hover {\n background-color: var(--eui-base-color-grey-35);\n}\n.cdk-global-scrollblock::-webkit-scrollbar-track {\n background-color: var(--eui-base-color-grey-5);\n border-radius: 0;\n}\n\n@media screen and (max-width: 767px) {\n .cdk-global-scrollblock {\n height: 100%;\n overflow: auto;\n position: fixed;\n width: 100%;\n }\n .cdk-global-scrollblock::-webkit-scrollbar {\n display: inherit;\n height: 8px;\n width: 8px;\n background-color: var(--eui-base-color-grey-5);\n }\n .cdk-global-scrollblock::-webkit-scrollbar-thumb {\n background-color: var(--eui-base-color-grey-20);\n border-radius: 5rem;\n }\n .cdk-global-scrollblock::-webkit-scrollbar-thumb:hover {\n background-color: var(--eui-base-color-grey-35);\n }\n .cdk-global-scrollblock::-webkit-scrollbar-track {\n background-color: var(--eui-base-color-grey-5);\n border-radius: 0;\n }\n}\n.cdk-overlay-container {\n z-index: var(--eui-base-z-index-cdk-overlay-container);\n}\n.cdk-overlay-container .mat-menu-panel {\n max-width: inherit;\n min-height: var(--eui-base-spacing-l);\n}\n.cdk-overlay-container .mat-menu-panel::-webkit-scrollbar {\n display: inherit;\n height: 8px;\n width: 8px;\n background-color: var(--eui-base-color-grey-5);\n}\n.cdk-overlay-container .mat-menu-panel::-webkit-scrollbar-thumb {\n background-color: var(--eui-base-color-grey-20);\n border-radius: 5rem;\n}\n.cdk-overlay-container .mat-menu-panel::-webkit-scrollbar-thumb:hover {\n background-color: var(--eui-base-color-grey-35);\n}\n.cdk-overlay-container .mat-menu-panel::-webkit-scrollbar-track {\n background-color: var(--eui-base-color-grey-5);\n border-radius: 0;\n}\n.cdk-overlay-container .mat-autocomplete-panel::-webkit-scrollbar {\n display: inherit;\n height: 8px;\n width: 8px;\n background-color: var(--eui-base-color-grey-5);\n}\n.cdk-overlay-container .mat-autocomplete-panel::-webkit-scrollbar-thumb {\n background-color: var(--eui-base-color-grey-20);\n border-radius: 5rem;\n}\n.cdk-overlay-container .mat-autocomplete-panel::-webkit-scrollbar-thumb:hover {\n background-color: var(--eui-base-color-grey-35);\n}\n.cdk-overlay-container .mat-autocomplete-panel::-webkit-scrollbar-track {\n background-color: var(--eui-base-color-grey-5);\n border-radius: 0;\n}\n\n@media screen and (max-width: 767px) {\n .cdk-overlay-container {\n height: 100vh;\n height: calc(var(--eui-app-vh, 1vh) * 100);\n left: 0;\n position: fixed;\n top: 0;\n width: 100vw;\n }\n}\n.cdk-overlay-pane {\n background-color: var(--eui-base-color-white);\n z-index: var(--eui-base-z-index-cdk-overlay-pane);\n}\n\n:focus,\n:focus-visible {\n outline: none;\n}\n\nhtml {\n display: block;\n height: 100%;\n font-size: var(--eui-base-font-size);\n line-height: var(--eui-base-line-height);\n}\n\nbody {\n background-color: var(--eui-base-color-grey-2);\n color: var(--eui-base-color-grey-100);\n font-family: var(--eui-base-font-family);\n font-feature-settings: \"liga\";\n font-size: var(--eui-base-font-size);\n -moz-font-smoothing: antialiased;\n -webkit-font-smoothing: antialiased;\n font-style: normal;\n font-weight: normal;\n height: 100%;\n line-height: var(--eui-base-line-height);\n margin: 0;\n text-align: left;\n text-rendering: optimizeLegibility;\n}\n\n@-ms-viewport {\n width: device-width;\n}\n/* ==========================================================================\n #BOX-SIZING\n ========================================================================== */\n/**\n * More sensible default box-sizing:\n * css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice\n */\nhtml {\n box-sizing: border-box;\n}\n\n*::before, *::after, * {\n box-sizing: inherit;\n}\n\na,\narea,\nbutton,\n[role=button],\ninput,\nlabel,\nselect,\nsummary,\ntextarea {\n touch-action: manipulation;\n}\n\n[tabindex=\"-1\"]:focus {\n outline: none !important;\n}\n\n[hidden] {\n display: none !important;\n}\n\np,\nlabel,\nblockquote,\nabbr,\nmark,\ndel {\n font-size: var(--eui-base-font-size);\n}\n\nb, strong {\n font-weight: bold;\n}\n\ntable.eui-table-default {\n background-color: transparent;\n border-collapse: collapse;\n border-spacing: 0;\n color: var(--eui-base-color-font);\n max-width: 100%;\n overflow: auto;\n position: relative;\n}\ntable.eui-table-default thead > tr > th,\ntable.eui-table-default tbody > tr > td,\ntable.eui-table-default tfoot > tr > td {\n vertical-align: top;\n}\ntable.eui-table-default tr > th,\ntable.eui-table-default tr > td {\n padding: var(--eui-base-spacing-s);\n}\ntable.eui-table-default thead th {\n border-bottom: 1px solid var(--eui-base-color-grey-10);\n color: var(--eui-base-color-grey-100);\n font-size: var(--eui-base-font-size);\n padding: var(--eui-base-spacing-m) var(--eui-base-spacing-s);\n vertical-align: middle;\n font: normal normal 400 1rem/1.25rem var(--eui-base-font-family);\n font-weight: 700;\n}\ntable.eui-table-default thead tr {\n background: var(--eui-base-color-grey-10);\n border-top: 0;\n}\ntable.eui-table-default tbody {\n -webkit-overflow-scrolling: touch;\n}\ntable.eui-table-default tbody tr:nth-of-type(odd) {\n background-color: var(--eui-base-color-grey-2);\n}\ntable.eui-table-default tbody tr:nth-of-type(odd):hover {\n background-color: var(--eui-base-color-grey-10);\n}\ntable.eui-table-default tbody tr:nth-of-type(even) {\n background-color: var(--eui-base-color-grey-5);\n}\ntable.eui-table-default tbody tr:nth-of-type(even):hover {\n background-color: var(--eui-base-color-grey-10);\n}\ntable.eui-table-default tr {\n border-bottom: 1px solid var(--eui-base-color-grey-20);\n display: table-row;\n}\ntable.eui-table-default--compact thead th {\n padding: var(--eui-base-spacing-xs) var(--eui-base-spacing-s);\n}\ntable.eui-table-default--compact tr > td {\n padding: var(--eui-base-spacing-2xs) var(--eui-base-spacing-s);\n}\ntable.eui-table-default--responsive {\n display: table;\n width: 100%;\n}\ntable.eui-table-default--responsive--bordered {\n border: 0;\n}\ntable.eui-table-default--bordered th,\ntable.eui-table-default--bordered td {\n border: 1px solid var(--eui-base-color-grey-20);\n}\ntable.eui-table-default--shadowed {\n box-shadow: var(--eui-base-shadow-1);\n}\ntable.eui-table-default--nowrap {\n white-space: nowrap;\n}\ntable.eui-table-default--nowrap thead > tr > th,\ntable.eui-table-default--nowrap tbody > tr > td,\ntable.eui-table-default--nowrap tfoot > tr > td {\n white-space: nowrap;\n}\ntable.eui-table-default--centered {\n display: table;\n margin: 0 auto;\n width: auto;\n}\ntable.eui-table-default--align-middle thead > tr > th,\ntable.eui-table-default--align-middle tbody > tr > td,\ntable.eui-table-default--align-middle tfoot > tr > td {\n vertical-align: middle;\n}\n\n.eui-clearable-wrapper {\n align-items: center;\n display: flex;\n position: relative;\n width: 100%;\n}\n.eui-clearable-wrapper .eui-input-text--clearable-icon {\n bottom: calc(var(--eui-base-spacing-s) - 2px);\n cursor: pointer;\n position: absolute;\n right: var(--eui-base-spacing-s);\n user-select: none;\n visibility: visible;\n z-index: var(--eui-base-z-index-clearable-icon);\n}\n.eui-clearable-wrapper .eui-input-text--clearable-icon:active:not([readonly]), .eui-clearable-wrapper .eui-input-text--clearable-icon:focus:not([readonly]) {\n outline: 2px solid var(--eui-base-color-accessible-focus);\n outline-offset: -2px;\n transition: none;\n}\n.eui-clearable-wrapper .eui-input-text--clearable-icon [tabindex=\"0\"]:active:not([readonly]), .eui-clearable-wrapper .eui-input-text--clearable-icon [tabindex=\"0\"]:focus:not([readonly]) {\n outline: 2px solid var(--eui-base-color-accessible-focus);\n outline-offset: -2px;\n transition: none;\n}\n.eui-clearable-wrapper .eui-input-text--clearable-icon > svg {\n fill: var(--eui-base-color-grey-35);\n}\n.eui-clearable-wrapper .eui-input-text--clearable-icon > svg:hover {\n fill: var(--eui-base-color-danger-100);\n}\n\n.eui-input-maxlength-wrapper {\n position: relative;\n width: 100%;\n}\n.eui-input-maxlength-wrapper .eui-input-maxlength {\n font: normal normal 400 0.75rem/1rem var(--eui-base-font-family);\n background-color: var(--eui-base-color-grey-10);\n border: 1px solid var(--eui-base-color-grey-50);\n border-radius: var(--eui-base-border-radius);\n color: var(--eui-base-color-grey-100);\n padding: 0 var(--eui-base-spacing-2xs);\n position: absolute;\n right: calc(-1 * var(--eui-base-spacing-xs));\n top: calc(-1 * var(--eui-base-spacing-xs));\n z-index: var(--eui-base-z-index-input-maxlength);\n}\n.eui-input-maxlength-wrapper .eui-input-maxlength--invalid {\n background-color: var(--eui-base-color-warning-100);\n border-color: var(--eui-base-color-warning-100);\n color: var(--eui-base-color-white);\n}\n\n@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {\n img[src$=\".svg\"] {\n width: 100%;\n }\n}\n@media screen {\n img {\n background-repeat: no-repeat;\n background-size: 100%;\n -ms-interpolation-mode: bicubic;\n }\n}\n.cookie-consent-banner {\n display: block !important;\n min-width: 50% !important;\n position: absolute !important;\n right: 50% !important;\n top: var(--eui-base-spacing-m) !important;\n transform: translateX(50%) !important;\n z-index: var(--eui-base-z-index-max) !important;\n box-shadow: var(--eui-base-shadow-24) !important;\n background: var(--eui-base-color-primary) !important;\n color: var(eui-base-color-white) !important;\n}\n\n#loader-wrapper {\n height: 100%;\n left: 0;\n position: fixed;\n top: 0;\n width: 100%;\n z-index: 1000;\n}\n#loader-wrapper #loader {\n -webkit-animation: spin 2s linear infinite; /* Chrome, Opera 15+, Safari 5+ */\n animation: spin 2s linear infinite; /* Chrome, Firefox 16+, IE 10+, Opera */\n animation: hourglass 5s linear infinite;\n border: 10px solid transparent;\n border-radius: 50%;\n border-top-color: var(--eui-base-color-warning-100);\n display: block;\n height: 200px;\n left: 50%;\n margin: -100px 0 0 -100px;\n position: relative;\n top: 50%;\n width: 200px;\n}\n#loader-wrapper #loader::before {\n -webkit-animation: spin 2s linear infinite; /* Chrome, Opera 15+, Safari 5+ */\n animation: spin 2s linear infinite; /* Chrome, Firefox 16+, IE 10+, Opera */\n animation: hourglass 4s linear infinite;\n border: 10px solid transparent;\n border-radius: 50%;\n border-top-color: var(--eui-base-color-danger-100);\n bottom: 5px;\n content: \"\";\n left: 5px;\n position: absolute;\n right: 5px;\n top: 5px;\n}\n#loader-wrapper #loader::after {\n -webkit-animation: spin 1s linear infinite; /* Chrome, Opera 15+, Safari 5+ */\n animation: spin 1s linear infinite; /* Chrome, Firefox 16+, IE 10+, Opera */\n animation: hourglass 3s linear infinite;\n border: 10px solid transparent;\n border-radius: 50%;\n border-top-color: var(--eui-base-color-primary-100);\n bottom: 20px;\n content: \"\";\n left: 20px;\n position: absolute;\n right: 20px;\n top: 20px;\n}\n\n/* stylelint-enable */\n@-webkit-keyframes spin {\n 0% {\n -webkit-transform: rotate(0deg);\n -ms-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n -ms-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n@keyframes spin {\n 0% {\n -webkit-transform: rotate(0deg);\n -ms-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n -ms-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n@-webkit-keyframes hourglass {\n 0% {\n transform: rotate(0);\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n 50% {\n transform: rotate(900deg);\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n 100% {\n transform: rotate(1800deg);\n }\n}\n@keyframes hourglass {\n 0% {\n transform: rotate(0);\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n 50% {\n transform: rotate(900deg);\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n 100% {\n transform: rotate(1800deg);\n }\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGV1aS9zdHlsZXMtYmFzZS9zcmMvc3R5bGVzLzAyLWJhc2UvZnVuY3Rpb25zL19tb2R1bGUuc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AZXVpL3N0eWxlcy1iYXNlL3NyYy9zdHlsZXMvMDItYmFzZS9taXhpbnMvX2V1aS1mb250LWZhbWlseS5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BldWkvc3R5bGVzLWJhc2Uvc3JjL3N0eWxlcy8wMC1yZXNldC9fbW9kdWxlLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGV1aS9zdHlsZXMtYmFzZS9zcmMvc3R5bGVzLzAzLXZhcnMvX2NvbG9ycy52YXJzLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGV1aS9zdHlsZXMtYmFzZS9zcmMvc3R5bGVzLzAzLXZhcnMvX3Rva2Vucy52YXJzLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGV1aS9zdHlsZXMtYmFzZS9zcmMvc3R5bGVzLzAzLXZhcnMvX290aGVyLnZhcnMuc2NzcyIsIjAyYi1iYXNlLXZhcnMvX2xheW91dC52YXJzLnNjc3MiLCIwMmItYmFzZS12YXJzL19vdGhlci52YXJzLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGV1aS9zdHlsZXMtYmFzZS9zcmMvc3R5bGVzLzA1LWFzc2V0cy9pY29ucy1zdmcvX2ljb25zLWdlbmVyaWNzLnNjc3MiLCIwNC12ZW5kb3JzL2xpYnMvYm9vdHN0cmFwL3Njc3MvX2dyaWQuc2NzcyIsIjA0LXZlbmRvcnMvbGlicy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX2dyaWQuc2NzcyIsIjA0LXZlbmRvcnMvbGlicy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX2JyZWFrcG9pbnRzLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZS9yaXBwbGUvX3JpcHBsZS5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhbmd1bGFyL2Nkay9hMTF5L19pbmRleC5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhbmd1bGFyL2Nkay9vdmVybGF5L19pbmRleC5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhbmd1bGFyL2Nkay90ZXh0LWZpZWxkL19pbmRleC5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUvZm9jdXMtaW5kaWNhdG9ycy9fcHJpdmF0ZS5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUvc3R5bGUvX2xheW91dC1jb21tb24uc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYW5ndWxhci9tYXRlcmlhbC9jb3JlL3N0eWxlL19zYXNzLXV0aWxzLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQG1hdGVyaWFsL3RoZW1lL19jc3Muc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyL19kYXRlcGlja2VyLXRoZW1lLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uL19pY29uLWJ1dHRvbi10aGVtZS5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbi9fYnV0dG9uLXRoZW1lLXByaXZhdGUuc2NzcyIsIjA1LW1hdGVyaWFsL292ZXJyaWRlcy9fY2FsZW5kYXIuc2NzcyIsIjA1LW1hdGVyaWFsL292ZXJyaWRlcy9fY2RrLWRyYWcuc2NzcyIsIjA1LW1hdGVyaWFsL292ZXJyaWRlcy9fY2RrLWdsb2JhbC1zY3JvbGxibG9jay5zY3NzIiwiMDItYmFzZS9taXhpbnMvX2V1aS1zY3JvbGxiYXJzLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGV1aS9zdHlsZXMtYmFzZS9zcmMvc3R5bGVzLzAyLWJhc2UvbWl4aW5zL3V0aWxzL19tZWRpYS5zY3NzIiwiMDUtbWF0ZXJpYWwvb3ZlcnJpZGVzL19jZGstb3ZlcmxheS1jb250YWluZXIuc2NzcyIsIjA1LW1hdGVyaWFsL292ZXJyaWRlcy9fY2RrLW92ZXJsYXktY29udGFpbmVyLm1xLnNjc3MiLCIwNS1tYXRlcmlhbC9vdmVycmlkZXMvX2Nkay1vdmVybGF5LXBhbmUuc2NzcyIsIjA2LXNoYXJlZC9fbW9kdWxlLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGV1aS9zdHlsZXMtYmFzZS9zcmMvc3R5bGVzLzA0LWVsZW1lbnRzL19odG1sLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGV1aS9zdHlsZXMtYmFzZS9zcmMvc3R5bGVzLzA0LWVsZW1lbnRzL19ib2R5LnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGV1aS9zdHlsZXMtYmFzZS9zcmMvc3R5bGVzLzA0LWVsZW1lbnRzL19zaGFyZWQuc2NzcyIsIjA3LWVsZW1lbnRzL2V1aS10YWJsZS1kZWZhdWx0L19ldWktdGFibGUtZGVmYXVsdC5zY3NzIiwiMDctZWxlbWVudHMvZGlyZWN0aXZlcy9fZXVpLWNsZWFyYWJsZS1pbnB1dC5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BldWkvc3R5bGVzLWJhc2Uvc3JjL3N0eWxlcy8wMi1iYXNlL21peGlucy9fZXVpLWFjY2Vzc2liaWxpdHkuc2NzcyIsIjA3LWVsZW1lbnRzL2RpcmVjdGl2ZXMvX2V1aS1pbnB1dC1tYXhsZW5ndGguc2NzcyIsIjEwLW1lZGlhL19pZWltZ2ZpeC5zY3NzIiwiMTEtZXh0cmFzL19jb29raWUtY29uc2VudC5zY3NzIiwiMTEtZXh0cmFzL19wcmVsb2FkZXIuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE4QkE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQzlCQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FDQUE7QUFFQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFLQztFQUNHO0VBQ0E7OztBQUdGO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFJQTtFQUNFOzs7QUFHRjtBQUFBO0FBQUE7QUFJQTtFQUNFOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQ0U7RUFDQTs7O0FBR0Y7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFDRTtFQUNBOzs7QUFHRjtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBSUE7RUFDRTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBSUE7QUFBQTtFQUVFOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtFQUdFO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUlBO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtFQUVFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBSUE7RUFDRTs7O0FBR0Y7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQUtFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUEsUUFDUTtFQUNOOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUEsU0FDUztFQUNQOzs7QUFHRjtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtFQUlFOzs7QUFHRjtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtFQUlFO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0VBSUU7OztBQUdGO0FBQUE7QUFBQTtBQUlBO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFJQTtFQUNFOzs7QUFHRjtBQUFBO0FBQUE7QUFJQTtFQUNFOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7RUFFRTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFJQTtBQUFBO0VBRUU7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFDRTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFJQTtFQUNFOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQ0U7RUFDQTs7O0FBR0Y7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUlBO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUlBO0VBQ0U7OztBQUdGO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFJQTtFQUNFOzs7QUFHRjtBQUFBO0FBQUE7QUFJQTtFQUNFOzs7QUMzVko7RUFJWTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBTUo7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFJSjtFQUNBO0VBQ0E7RUFDQTs7O0FDcEJKO0VBRUk7RUFHQTtFQUNBO0VBR0E7RUFFSTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBSUo7RUFFSTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFJQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBS0E7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFLQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUtBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBOzs7QUNwQ1I7RUFDSTtFQUNBO0VBQ0E7RUFFQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBR0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBR0E7OztBQ3BDSjtFQUVJO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBR0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJOzs7QUM5Q0o7RUFDSTs7O0FDREo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdBO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUtBO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFLUjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUlSO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7OztBQ3BDRjtFQ0FBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBOztBREpFO0VDU0Y7RUFJQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQStDSTtFQUNFOzs7QUFHRjtFQXBDSjtFQUNBOzs7QUFjQTtFQUNFO0VBQ0E7OztBQUZGO0VBQ0U7RUFDQTs7O0FBRkY7RUFDRTtFQUNBOzs7QUFGRjtFQUNFO0VBQ0E7OztBQUZGO0VBQ0U7RUFDQTs7O0FBRkY7RUFDRTtFQUNBOzs7QUErQkU7RUFoREo7RUFDQTs7O0FBcURRO0VBaEVOO0VBQ0E7OztBQStETTtFQWhFTjtFQUNBOzs7QUErRE07RUFoRU47RUFDQTs7O0FBK0RNO0VBaEVOO0VBQ0E7OztBQStETTtFQWhFTjtFQUNBOzs7QUErRE07RUFoRU47RUFDQTs7O0FBK0RNO0VBaEVOO0VBQ0E7OztBQStETTtFQWhFTjtFQUNBOzs7QUErRE07RUFoRU47RUFDQTs7O0FBK0RNO0VBaEVOO0VBQ0E7OztBQStETTtFQWhFTjtFQUNBOzs7QUErRE07RUFoRU47RUFDQTs7O0FBdUVRO0VBeERWOzs7QUF3RFU7RUF4RFY7OztBQXdEVTtFQXhEVjs7O0FBd0RVO0VBeERWOzs7QUF3RFU7RUF4RFY7OztBQXdEVTtFQXhEVjs7O0FBd0RVO0VBeERWOzs7QUF3RFU7RUF4RFY7OztBQXdEVTtFQXhEVjs7O0FBd0RVO0VBeERWOzs7QUF3RFU7RUF4RFY7OztBQW1FTTtBQUFBO0VBRUU7OztBQUdGO0FBQUE7RUFFRTs7O0FBUEY7QUFBQTtFQUVFOzs7QUFHRjtBQUFBO0VBRUU7OztBQVBGO0FBQUE7RUFFRTs7O0FBR0Y7QUFBQTtFQUVFOzs7QUFQRjtBQUFBO0VBRUU7OztBQUdGO0FBQUE7RUFFRTs7O0FBUEY7QUFBQTtFQUVFOzs7QUFHRjtBQUFBO0VBRUU7OztBQVBGO0FBQUE7RUFFRTs7O0FBR0Y7QUFBQTtFQUVFOzs7QUMxRE47RURVRTtJQUNFOztFQUdGO0lBcENKO0lBQ0E7O0VBY0E7SUFDRTtJQUNBOztFQUZGO0lBQ0U7SUFDQTs7RUFGRjtJQUNFO0lBQ0E7O0VBRkY7SUFDRTtJQUNBOztFQUZGO0lBQ0U7SUFDQTs7RUFGRjtJQUNFO0lBQ0E7O0VBK0JFO0lBaERKO0lBQ0E7O0VBcURRO0lBaEVOO0lBQ0E7O0VBK0RNO0lBaEVOO0lBQ0E7O0VBK0RNO0lBaEVOO0lBQ0E7O0VBK0RNO0lBaEVOO0lBQ0E7O0VBK0RNO0lBaEVOO0lBQ0E7O0VBK0RNO0lBaEVOO0lBQ0E7O0VBK0RNO0lBaEVOO0lBQ0E7O0VBK0RNO0lBaEVOO0lBQ0E7O0VBK0RNO0lBaEVOO0lBQ0E7O0VBK0RNO0lBaEVOO0lBQ0E7O0VBK0RNO0lBaEVOO0lBQ0E7O0VBK0RNO0lBaEVOO0lBQ0E7O0VBdUVRO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBbUVNO0FBQUE7SUFFRTs7RUFHRjtBQUFBO0lBRUU7O0VBUEY7QUFBQTtJQUVFOztFQUdGO0FBQUE7SUFFRTs7RUFQRjtBQUFBO0lBRUU7O0VBR0Y7QUFBQTtJQUVFOztFQVBGO0FBQUE7SUFFRTs7RUFHRjtBQUFBO0lBRUU7O0VBUEY7QUFBQTtJQUVFOztFQUdGO0FBQUE7SUFFRTs7RUFQRjtBQUFBO0lBRUU7O0VBR0Y7QUFBQTtJQUVFOzs7QUMxRE47RURVRTtJQUNFOztFQUdGO0lBcENKO0lBQ0E7O0VBY0E7SUFDRTtJQUNBOztFQUZGO0lBQ0U7SUFDQTs7RUFGRjtJQUNFO0lBQ0E7O0VBRkY7SUFDRTtJQUNBOztFQUZGO0lBQ0U7SUFDQTs7RUFGRjtJQUNFO0lBQ0E7O0VBK0JFO0lBaERKO0lBQ0E7O0VBcURRO0lBaEVOO0lBQ0E7O0VBK0RNO0lBaEVOO0lBQ0E7O0VBK0RNO0lBaEVOO0lBQ0E7O0VBK0RNO0lBaEVOO0lBQ0E7O0VBK0RNO0lBaEVOO0lBQ0E7O0VBK0RNO0lBaEVOO0lBQ0E7O0VBK0RNO0lBaEVOO0lBQ0E7O0VBK0RNO0lBaEVOO0lBQ0E7O0VBK0RNO0lBaEVOO0lBQ0E7O0VBK0RNO0lBaEVOO0lBQ0E7O0VBK0RNO0lBaEVOO0lBQ0E7O0VBK0RNO0lBaEVOO0lBQ0E7O0VBdUVRO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBbUVNO0FBQUE7SUFFRTs7RUFHRjtBQUFBO0lBRUU7O0VBUEY7QUFBQTtJQUVFOztFQUdGO0FBQUE7SUFFRTs7RUFQRjtBQUFBO0lBRUU7O0VBR0Y7QUFBQTtJQUVFOztFQVBGO0FBQUE7SUFFRTs7RUFHRjtBQUFBO0lBRUU7O0VBUEY7QUFBQTtJQUVFOztFQUdGO0FBQUE7SUFFRTs7RUFQRjtBQUFBO0lBRUU7O0VBR0Y7QUFBQTtJQUVFOzs7QUMxRE47RURVRTtJQUNFOztFQUdGO0lBcENKO0lBQ0E7O0VBY0E7SUFDRTtJQUNBOztFQUZGO0lBQ0U7SUFDQTs7RUFGRjtJQUNFO0lBQ0E7O0VBRkY7SUFDRTtJQUNBOztFQUZGO0lBQ0U7SUFDQTs7RUFGRjtJQUNFO0lBQ0E7O0VBK0JFO0lBaERKO0lBQ0E7O0VBcURRO0lBaEVOO0lBQ0E7O0VBK0RNO0lBaEVOO0lBQ0E7O0VBK0RNO0lBaEVOO0lBQ0E7O0VBK0RNO0lBaEVOO0lBQ0E7O0VBK0RNO0lBaEVOO0lBQ0E7O0VBK0RNO0lBaEVOO0lBQ0E7O0VBK0RNO0lBaEVOO0lBQ0E7O0VBK0RNO0lBaEVOO0lBQ0E7O0VBK0RNO0lBaEVOO0lBQ0E7O0VBK0RNO0lBaEVOO0lBQ0E7O0VBK0RNO0lBaEVOO0lBQ0E7O0VBK0RNO0lBaEVOO0lBQ0E7O0VBdUVRO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBbUVNO0FBQUE7SUFFRTs7RUFHRjtBQUFBO0lBRUU7O0VBUEY7QUFBQTtJQUVFOztFQUdGO0FBQUE7SUFFRTs7RUFQRjtBQUFBO0lBRUU7O0VBR0Y7QUFBQTtJQUVFOztFQVBGO0FBQUE7SUFFRTs7RUFHRjtBQUFBO0lBRUU7O0VBUEY7QUFBQTtJQUVFOztFQUdGO0FBQUE7SUFFRTs7RUFQRjtBQUFBO0lBRUU7O0VBR0Y7QUFBQTtJQUVFOzs7QUMxRE47RURVRTtJQUNFOztFQUdGO0lBcENKO0lBQ0E7O0VBY0E7SUFDRTtJQUNBOztFQUZGO0lBQ0U7SUFDQTs7RUFGRjtJQUNFO0lBQ0E7O0VBRkY7SUFDRTtJQUNBOztFQUZGO0lBQ0U7SUFDQTs7RUFGRjtJQUNFO0lBQ0E7O0VBK0JFO0lBaERKO0lBQ0E7O0VBcURRO0lBaEVOO0lBQ0E7O0VBK0RNO0lBaEVOO0lBQ0E7O0VBK0RNO0lBaEVOO0lBQ0E7O0VBK0RNO0lBaEVOO0lBQ0E7O0VBK0RNO0lBaEVOO0lBQ0E7O0VBK0RNO0lBaEVOO0lBQ0E7O0VBK0RNO0lBaEVOO0lBQ0E7O0VBK0RNO0lBaEVOO0lBQ0E7O0VBK0RNO0lBaEVOO0lBQ0E7O0VBK0RNO0lBaEVOO0lBQ0E7O0VBK0RNO0lBaEVOO0lBQ0E7O0VBK0RNO0lBaEVOO0lBQ0E7O0VBdUVRO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBbUVNO0FBQUE7SUFFRTs7RUFHRjtBQUFBO0lBRUU7O0VBUEY7QUFBQTtJQUVFOztFQUdGO0FBQUE7SUFFRTs7RUFQRjtBQUFBO0lBRUU7O0VBR0Y7QUFBQTtJQUVFOztFQVBGO0FBQUE7SUFFRTs7RUFHRjtBQUFBO0lBRUU7O0VBUEY7QUFBQTtJQUVFOztFQUdGO0FBQUE7SUFFRTs7RUFQRjtBQUFBO0lBRUU7O0VBR0Y7QUFBQTtJQUVFOzs7QUMxRE47RURVRTtJQUNFOztFQUdGO0lBcENKO0lBQ0E7O0VBY0E7SUFDRTtJQUNBOztFQUZGO0lBQ0U7SUFDQTs7RUFGRjtJQUNFO0lBQ0E7O0VBRkY7SUFDRTtJQUNBOztFQUZGO0lBQ0U7SUFDQTs7RUFGRjtJQUNFO0lBQ0E7O0VBK0JFO0lBaERKO0lBQ0E7O0VBcURRO0lBaEVOO0lBQ0E7O0VBK0RNO0lBaEVOO0lBQ0E7O0VBK0RNO0lBaEVOO0lBQ0E7O0VBK0RNO0lBaEVOO0lBQ0E7O0VBK0RNO0lBaEVOO0lBQ0E7O0VBK0RNO0lBaEVOO0lBQ0E7O0VBK0RNO0lBaEVOO0lBQ0E7O0VBK0RNO0lBaEVOO0lBQ0E7O0VBK0RNO0lBaEVOO0lBQ0E7O0VBK0RNO0lBaEVOO0lBQ0E7O0VBK0RNO0lBaEVOO0lBQ0E7O0VBK0RNO0lBaEVOO0lBQ0E7O0VBdUVRO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBbUVNO0FBQUE7SUFFRTs7RUFHRjtBQUFBO0lBRUU7O0VBUEY7QUFBQTtJQUVFOztFQUdGO0FBQUE7SUFFRTs7RUFQRjtBQUFBO0lBRUU7O0VBR0Y7QUFBQTtJQUVFOztFQVBGO0FBQUE7SUFFRTs7RUFHRjtBQUFBO0lBRUU7O0VBUEY7QUFBQTtJQUVFOztFQUdGO0FBQUE7SUFFRTs7RUFQRjtBQUFBO0lBRUU7O0VBR0Y7QUFBQTtJQUVFOzs7QUMxRE47RURVRTtJQUNFOztFQUdGO0lBcENKO0lBQ0E7O0VBY0E7SUFDRTtJQUNBOztFQUZGO0lBQ0U7SUFDQTs7RUFGRjtJQUNFO0lBQ0E7O0VBRkY7SUFDRTtJQUNBOztFQUZGO0lBQ0U7SUFDQTs7RUFGRjtJQUNFO0lBQ0E7O0VBK0JFO0lBaERKO0lBQ0E7O0VBcURRO0lBaEVOO0lBQ0E7O0VBK0RNO0lBaEVOO0lBQ0E7O0VBK0RNO0lBaEVOO0lBQ0E7O0VBK0RNO0lBaEVOO0lBQ0E7O0VBK0RNO0lBaEVOO0lBQ0E7O0VBK0RNO0lBaEVOO0lBQ0E7O0VBK0RNO0lBaEVOO0lBQ0E7O0VBK0RNO0lBaEVOO0lBQ0E7O0VBK0RNO0lBaEVOO0lBQ0E7O0VBK0RNO0lBaEVOO0lBQ0E7O0VBK0RNO0lBaEVOO0lBQ0E7O0VBK0RNO0lBaEVOO0lBQ0E7O0VBdUVRO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBbUVNO0FBQUE7SUFFRTs7RUFHRjtBQUFBO0lBRUU7O0VBUEY7QUFBQTtJQUVFOztFQUdGO0FBQUE7SUFFRTs7RUFQRjtBQUFBO0lBRUU7O0VBR0Y7QUFBQTtJQUVFOztF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QGZ1bmN0aW9uIHYoJHZhciwgJGZhbGxiYWNrOiBudWxsKSB7XG4gICAgQGlmICgkZmFsbGJhY2spIHtcbiAgICAgICAgQHJldHVybiB2YXIoLS0jeyR2YXJ9LCAjeyRmYWxsYmFja30pO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAgIEByZXR1cm4gdmFyKC0tI3skdmFyfSk7XG4gICAgfVxufVxuQGZ1bmN0aW9uIG1hcC1kZWVwLWdldCgkbWFwLCAka2V5cy4uLikge1xuICAgIEBlYWNoICRrZXkgaW4gJGtleXMge1xuICAgICAgICBAZGVidWcgI3skbWFwfTtcbiAgICAgICAgJG1hcDogbWFwLWdldCgkbWFwLCAka2V5KTtcbiAgICB9XG4gICAgQHJldHVybiAkbWFwO1xufVxuQGZ1bmN0aW9uIHRvUkdCKCRjb2xvcikge1xuICAgIEByZXR1cm4gXCJyZ2IoXCIgKyByZWQoJGNvbG9yKSArIFwiLCBcIiArIGdyZWVuKCRjb2xvcikgKyBcIiwgXCIgKyBibHVlKCRjb2xvcikrIFwiKVwiO1xufVxuQGZ1bmN0aW9uIGdldENvbnRyYXN0KCRjb2xvcikge1xuICAgICRjb2xvci1icmlnaHRuZXNzOiByb3VuZCgocmVkKCRjb2xvcikgKiAyOTkpICsgKGdyZWVuKCRjb2xvcikgKiA1ODcpICsgbWF0aC5kaXYoKGJsdWUoJGNvbG9yKSAqIDExNCksIDEwMDApKTtcbiAgICAkbGlnaHQtY29sb3I6IHJvdW5kKChyZWQoI2ZmZikgKiAyOTkpICsgKGdyZWVuKCNmZmYpICogNTg3KSArIG1hdGguZGl2KChibHVlKCNmZmYpICogMTE0KSwgMTAwMCkpO1xuICAgIEBpZiBhYnMoJGNvbG9yLWJyaWdodG5lc3MpIDwgbWF0aC5kaXYoJGxpZ2h0LWNvbG9yLCAyKSB7XG4gICAgICAgIEByZXR1cm4gd2hpdGU7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICAgQHJldHVybiBtYXAtZ2V0KCRlY2wtYmFzZS1jb2xvcnMsICdncmV5LTEwMCcpO1xuICAgIH1cbn1cblxuLyoqXG4gICAqIEVDTCBjb2xvciB2YXJpYW50cyBmb3JtdWxhXG4gICAqIEFwcGxpZXMgdGludCBvciBzaGFkZSBvZiBiYXNlIGNvbG9yIHByb3ZpZGVkXG4gICAqXG4gICAqIEBwYXJhbSBjb2xvcjogYmFzZSBjb2xvciwgaGFzIHZhcmlhbnQgb2YgMTAwXG4gICAqIEBwYXJhbSB2YXJpYW50OiBudW1iZXIgaW4gcmFuZ2UgYmV0d2VlbiAwIC0gMjAwXG4gICAqICAgICAgICAgICAgICAgICAxMDAgLSBuZXV0cmFsIHZhcmlhbnQsIG5vIGNoYW5nZXNcbiAgICogICAgICAgICAgICAgICAgIDAgLSA5OTogYnJpZ2h0ZW5zIGJhc2UgY29sb3IgYnkgbWl4aW5nIGluIHdoaXRlIGNvbG9yLCB0aGUgbG93ZXIsIHRoZSBicmlnaHRlclxuICAgKiAgICAgICAgICAgICAgICAgOTkgLSAyMDA6IGRhcmtlbnMgYmFzZSBjb2xvciBieSBtaXhpbmcgaW4gYmxhY2sgY29sb3IsIHRoZSBiaWdnZXIsIHRoZSBkYXJrZXJcbiAgICpcbiAgICogQHJldHVybiBjb2xvciB2YXJpYW50IG9mIHByb3ZpZGVkIGJhc2UgY29sb3JcbiAgICpcbiAgICogQGV4YW1wbGVzXG4gICAqXG4gICAqIC8vIHByb3ZpZGVzIDMwJSBkYXJrZXIgcGluayBjb2xvclxuICAgKiBiYWNrZ3JvdW5kLWNvbG9yOiBldWktY29sb3ItdmFyaWFudChwaW5rLCAxMzApO1xuICAgKlxuICAgKiAvLyBwcm92aWRlcyA5NSUgbGlnaHRlciBwaW5rIGNvbG9yXG4gICAqIGJhY2tncm91bmQtY29sb3I6IGV1aS1jb2xvci12YXJpYW50KHBpbmssIDUpO1xuICAgKi9cbkBmdW5jdGlvbiBldWktY29sb3ItdmFyaWFudCgkY29sb3IsICR2YXJpYW50OiAxMDApIHtcbiAgICBAaWYgKCR2YXJpYW50IDwgMTAwKSB7XG4gICAgICAgIEByZXR1cm4gbWl4KCNmZmZmZmYsICRjb2xvciwgKDEwMCAtICR2YXJpYW50KSAqIDElKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgICBAcmV0dXJuIG1peCgjMDAwMDAwLCAkY29sb3IsICgkdmFyaWFudCAtIDEwMCkgKiAxJSk7XG4gICAgfVxufVxuQGZ1bmN0aW9uIG5ldy1icmVha3BvaW50KCRxdWVyeTogJGZlYXR1cmUgJHZhbHVlKSB7XG4gICAgQGlmIGxlbmd0aCgkcXVlcnkpID09IDEge1xuICAgICAgICAkcXVlcnk6ICRkZWZhdWx0LWZlYXR1cmUgbnRoKCRxdWVyeSwgMSk7XG4gICAgfVxuICAgIEBlbHNlIGlmIGlzLWV2ZW4obGVuZ3RoKCRxdWVyeSkpIHtcbiAgICAgICAgJHF1ZXJ5OiBhcHBlbmQoJHF1ZXJ5LCAxMik7XG4gICAgfVxuICAgIEByZXR1cm4gJHF1ZXJ5O1xufVxuQGZ1bmN0aW9uIHN0cmlwLXVuaXRzKCR2YWx1ZSkge1xuICAgIEByZXR1cm4gbWF0aC5kaXYoJHZhbHVlLCAkdmFsdWUgKiAwICsgMSk7XG59XG5AZnVuY3Rpb24gdG8tcmVtKCRweHZhbCkge1xuICAgIEBpZiBub3QgdW5pdGxlc3MoJHB4dmFsKSB7XG4gICAgICAgICRweHZhbDogc3RyaXAtdW5pdHMoJHB4dmFsKTtcbiAgICB9XG4gICAgJGJhc2U6IDE2cHg7XG4gICAgQGlmIG5vdCB1bml0bGVzcygkYmFzZSkge1xuICAgICAgICAkYmFzZTogc3RyaXAtdW5pdHMoJGJhc2UpO1xuICAgIH1cbiAgICBAcmV0dXJuIG1hdGguZGl2KCRweHZhbCwgJGJhc2UpICogMXJlbTtcbn1cbiIsIi8qKiBDb21tb24gd2VpZ2h0IG5hbWUgbWFwcGluZ1xuICAgIEBTZWUgdGhlIE9wZW5UeXBlIHNwZWNpZmljYXRpb246XG4gICAgaHR0cHM6Ly9kb2NzLm1pY3Jvc29mdC5jb20vZW4tdXMvdHlwb2dyYXBoeS9vcGVudHlwZS9zcGVjL29zMiN1c3dlaWdodGNsYXNzXG4gICAgVGhlIG51bWVyaWNhbCB2YWx1ZXMgMTAwIHRvIDkwMCByb3VnaGx5IGNvcnJlc3BvbmQgdG8gdGhlIGZvbGxvd2luZyBjb21tb24gd2VpZ2h0IG5hbWVzOlxuICAgIDEwMCAgICAgVGhpbiAoSGFpcmxpbmUpXG4gICAgMjAwXHQgICAgRXh0cmEgTGlnaHQgKFVsdHJhIExpZ2h0KVxuICAgIDMwMFx0ICAgIExpZ2h0XG4gICAgNDAwXHQgICAgTm9ybWFsXG4gICAgNTAwXHQgICAgTWVkaXVtXG4gICAgNjAwXHQgICAgU2VtaSBCb2xkIChEZW1pIEJvbGQpXG4gICAgNzAwXHQgICAgQm9sZFxuICAgIDgwMFx0ICAgIEV4dHJhIEJvbGQgKFVsdHJhIEJvbGQpXG4gICAgOTAwXHQgICAgQmxhY2sgKEhlYXZ5KVxuKiovXG5cbi8vIGNlbnRyYWwgbWl4aW5nIGZvciBnZXR0aW5nIGRlZmluaXRpb24gb3ZlciBFQ0wgdG9rZW5zXG5AbWl4aW4gZXVpLWZvbnQoJHNpemU6IG0pIHtcbiAgICBmb250OiBtYXAtZ2V0KCRldWktYmFzZS10b2tlbnMtZm9udHMsICRzaXplKTtcbn1cblxuLy8gc2hvcnRjdXQgZm9yIGZvbnQtZmFtaWxpZXNcbkBtaXhpbiBldWktZm9udC1mYW1pbHkoKSB7XG4gICAgQGluY2x1ZGUgZXVpLWZvbnQobSk7XG59XG5AbWl4aW4gZXVpLWZvbnQtZmFtaWx5LW5vcm1hbCgpIHtcbiAgICBAaW5jbHVkZSBldWktZm9udChtKTtcbn1cbkBtaXhpbiBldWktZm9udC1mYW1pbHktcygpIHtcbiAgICBAaW5jbHVkZSBldWktZm9udChzKTtcbn1cbkBtaXhpbiBldWktZm9udC1mYW1pbHkteHMoKSB7XG4gICAgQGluY2x1ZGUgZXVpLWZvbnQoeHMpO1xufVxuQG1peGluIGV1aS1mb250LWZhbWlseS1sKCkge1xuICAgIEBpbmNsdWRlIGV1aS1mb250KGwpO1xufVxuQG1peGluIGV1aS1mb250LWZhbWlseS14bCgpIHtcbiAgICBAaW5jbHVkZSBldWktZm9udCh4bCk7XG59XG5AbWl4aW4gZXVpLWZvbnQtZmFtaWx5LTJ4bCgpIHtcbiAgICBAaW5jbHVkZSBldWktZm9udCgyeGwpO1xufVxuQG1peGluIGV1aS1mb250LWZhbWlseS0zeGwoKSB7XG4gICAgQGluY2x1ZGUgZXVpLWZvbnQoM3hsKTtcbn1cbkBtaXhpbiBldWktZm9udC1mYW1pbHktNHhsKCkge1xuICAgIEBpbmNsdWRlIGV1aS1mb250KDR4bCk7XG59XG5cbi8vIGJvbGRcbkBtaXhpbiBldWktZm9udC1mYW1pbHktYm9sZCgpIHtcbiAgICBAaW5jbHVkZSBldWktZm9udChtKTtcbiAgICBmb250LXdlaWdodDogNzAwO1xufVxuQG1peGluIGV1aS1mb250LWZhbWlseS1ib2xkLXhzKCkge1xuICAgIEBpbmNsdWRlIGV1aS1mb250KHhzKTtcbiAgICBmb250LXdlaWdodDogNzAwO1xufVxuQG1peGluIGV1aS1mb250LWZhbWlseS1ib2xkLXMoKSB7XG4gICAgQGluY2x1ZGUgZXVpLWZvbnQocyk7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cbkBtaXhpbiBldWktZm9udC1mYW1pbHktYm9sZC1sKCkge1xuICAgIEBpbmNsdWRlIGV1aS1mb250KGwpO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5AbWl4aW4gZXVpLWZvbnQtZmFtaWx5LWJvbGQteGwoKSB7XG4gICAgQGluY2x1ZGUgZXVpLWZvbnQoeGwpO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5AbWl4aW4gZXVpLWZvbnQtZmFtaWx5LWJvbGQtMnhsKCkge1xuICAgIEBpbmNsdWRlIGV1aS1mb250KDJ4bCk7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cbkBtaXhpbiBldWktZm9udC1mYW1pbHktYm9sZC0zeGwoKSB7XG4gICAgQGluY2x1ZGUgZXVpLWZvbnQoM3hsKTtcbiAgICBmb250LXdlaWdodDogNzAwO1xufVxuQG1peGluIGV1aS1mb250LWZhbWlseS1ib2xkLTR4bCgpIHtcbiAgICBAaW5jbHVkZSBldWktZm9udCg0eGwpO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbi8vIGxpZ2h0XG5AbWl4aW4gZXVpLWZvbnQtZmFtaWx5LWxpZ2h0KCkge1xuICAgIEBpbmNsdWRlIGV1aS1mb250KG0pO1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG59XG5cbi8vIGl0YWxpY1xuQG1peGluIGV1aS1mb250LWZhbWlseS1pdGFsaWMoKSB7XG4gICAgQGluY2x1ZGUgZXVpLWZvbnQobSk7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuQG1peGluIGV1aS1mb250LWZhbWlseS1ib2xkKCkge1xuICAgIEBpbmNsdWRlIGV1aS1mb250KG0pO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbi8vIGJvbGQgaXRhbGljXG5AbWl4aW4gZXVpLWZvbnQtZmFtaWx5LWJvbGQtaXRhbGljKCkge1xuICAgIEBpbmNsdWRlIGV1aS1mb250KG0pO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBmb250LXdlaWdodDogNzAwO1xufVxuXG4vLyBtb25vc3BhY2VcbkBtaXhpbiBldWktZm9udC1mYW1pbHktbW9ub3NwYWNlKCkge1xuICAgIGZvbnQtZmFtaWx5OiB2KGV1aS1iYXNlLWZvbnQtZmFtaWx5LW1vbm9zcGFjZSk7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG4iLCIvKiEgbm9ybWFsaXplLmNzcyB2OC4wLjEgfCBNSVQgTGljZW5zZSB8IGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzICovXG5cbi8qIERvY3VtZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGxpbmUgaGVpZ2h0IGluIGFsbCBicm93c2Vycy5cbiAqIDIuIFByZXZlbnQgYWRqdXN0bWVudHMgb2YgZm9udCBzaXplIGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZXMgaW4gaU9TLlxuICovXG5cbiBodG1sIHtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tZXVpLWJhc2UtbGluZS1oZWlnaHQpOyAvKiAxICovXG4gICAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG4gIH1cblxuICAvKiBTZWN0aW9uc1xuICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gIC8qKlxuICAgKiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBhbGwgYnJvd3NlcnMuXG4gICAqL1xuXG4gIGJvZHkge1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5kZXIgdGhlIGBtYWluYCBlbGVtZW50IGNvbnNpc3RlbnRseSBpbiBJRS5cbiAgICovXG5cbiAgbWFpbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAvKipcbiAgICogQ29ycmVjdCB0aGUgZm9udCBzaXplIGFuZCBtYXJnaW4gb24gYGgxYCBlbGVtZW50cyB3aXRoaW4gYHNlY3Rpb25gIGFuZFxuICAgKiBgYXJ0aWNsZWAgY29udGV4dHMgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgU2FmYXJpLlxuICAgKi9cblxuICBoMSB7XG4gICAgZm9udC1zaXplOiAyZW07XG4gICAgbWFyZ2luOiAwLjY3ZW0gMDtcbiAgfVxuXG4gIC8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAvKipcbiAgICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gRmlyZWZveC5cbiAgICogMi4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZSBhbmQgSUUuXG4gICAqL1xuXG4gIGhyIHtcbiAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLyogMSAqL1xuICAgIGhlaWdodDogMDsgLyogMSAqL1xuICAgIG92ZXJmbG93OiB2aXNpYmxlOyAvKiAyICovXG4gIH1cblxuICAvKipcbiAgICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAgICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICAgKi9cblxuICBwcmUge1xuICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuICAgIGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXG4gIH1cblxuICAvKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gIC8qKlxuICAgKiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBvbiBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gICAqL1xuXG4gIGEge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG5cbiAgLyoqXG4gICAqIDEuIFJlbW92ZSB0aGUgYm90dG9tIGJvcmRlciBpbiBDaHJvbWUgNTctXG4gICAqIDIuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBJRSwgT3BlcmEsIGFuZCBTYWZhcmkuXG4gICAqL1xuXG4gIGFiYnJbdGl0bGVdIHtcbiAgICBib3JkZXItYm90dG9tOiBub25lOyAvKiAxICovXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IC8qIDIgKi9cbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7IC8qIDIgKi9cbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgdGhlIGNvcnJlY3QgZm9udCB3ZWlnaHQgaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxuICAgKi9cblxuICBiLFxuICBzdHJvbmcge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG4gIH1cblxuICAvKipcbiAgICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAgICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICAgKi9cblxuICBjb2RlLFxuICBrYmQsXG4gIHNhbXAge1xuICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuICAgIGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXG4gIH1cblxuICAvKipcbiAgICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gICAqL1xuXG4gIHNtYWxsIHtcbiAgICBmb250LXNpemU6IDgwJTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBlbGVtZW50cyBmcm9tIGFmZmVjdGluZyB0aGUgbGluZSBoZWlnaHQgaW5cbiAgICogYWxsIGJyb3dzZXJzLlxuICAgKi9cblxuICBzdWIsXG4gIHN1cCB7XG4gICAgZm9udC1zaXplOiA3NSU7XG4gICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgfVxuXG4gIHN1YiB7XG4gICAgYm90dG9tOiAtMC4yNWVtO1xuICB9XG5cbiAgc3VwIHtcbiAgICB0b3A6IC0wLjVlbTtcbiAgfVxuXG4gIC8qIEVtYmVkZGVkIGNvbnRlbnRcbiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAvKipcbiAgICogUmVtb3ZlIHRoZSBib3JkZXIgb24gaW1hZ2VzIGluc2lkZSBsaW5rcyBpbiBJRSAxMC5cbiAgICovXG5cbiAgaW1nIHtcbiAgICBib3JkZXItc3R5bGU6IG5vbmU7XG4gIH1cblxuICAvKiBGb3Jtc1xuICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gIC8qKlxuICAgKiAxLiBDaGFuZ2UgdGhlIGZvbnQgc3R5bGVzIGluIGFsbCBicm93c2Vycy5cbiAgICogMi4gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gRmlyZWZveCBhbmQgU2FmYXJpLlxuICAgKi9cblxuICBidXR0b24sXG4gIGlucHV0LFxuICBvcHRncm91cCxcbiAgc2VsZWN0LFxuICB0ZXh0YXJlYSB7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7IC8qIDEgKi9cbiAgICBmb250LXNpemU6IDEwMCU7IC8qIDEgKi9cbiAgICBsaW5lLWhlaWdodDogMTsgLyogMSAqLyAgIC8vIGVVSSBhZGFwYXRpb25zIGZvcmNlZCB0byBcIjFcIlxuICAgIG1hcmdpbjogMDsgLyogMiAqL1xuICB9XG5cbiAgLyoqXG4gICAqIFNob3cgdGhlIG92ZXJmbG93IGluIElFLlxuICAgKiAxLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlLlxuICAgKi9cblxuICBidXR0b24sXG4gIGlucHV0IHsgLyogMSAqL1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRWRnZSwgRmlyZWZveCwgYW5kIElFLlxuICAgKiAxLiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEZpcmVmb3guXG4gICAqL1xuXG4gIGJ1dHRvbixcbiAgc2VsZWN0IHsgLyogMSAqL1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICB9XG5cbiAgLyoqXG4gICAqIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gICAqL1xuXG4gIGJ1dHRvbixcbiAgW3R5cGU9XCJidXR0b25cIl0sXG4gIFt0eXBlPVwicmVzZXRcIl0sXG4gIFt0eXBlPVwic3VibWl0XCJdIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgdGhlIGlubmVyIGJvcmRlciBhbmQgcGFkZGluZyBpbiBGaXJlZm94LlxuICAgKi9cblxuICBidXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG4gIFt0eXBlPVwiYnV0dG9uXCJdOjotbW96LWZvY3VzLWlubmVyLFxuICBbdHlwZT1cInJlc2V0XCJdOjotbW96LWZvY3VzLWlubmVyLFxuICBbdHlwZT1cInN1Ym1pdFwiXTo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgYm9yZGVyLXN0eWxlOiBub25lO1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICAvKipcbiAgICogUmVzdG9yZSB0aGUgZm9jdXMgc3R5bGVzIHVuc2V0IGJ5IHRoZSBwcmV2aW91cyBydWxlLlxuICAgKi9cblxuICBidXR0b246LW1vei1mb2N1c3JpbmcsXG4gIFt0eXBlPVwiYnV0dG9uXCJdOi1tb3otZm9jdXNyaW5nLFxuICBbdHlwZT1cInJlc2V0XCJdOi1tb3otZm9jdXNyaW5nLFxuICBbdHlwZT1cInN1Ym1pdFwiXTotbW96LWZvY3VzcmluZyB7XG4gICAgb3V0bGluZTogMXB4IGRvdHRlZCBCdXR0b25UZXh0O1xuICB9XG5cbiAgLyoqXG4gICAqIENvcnJlY3QgdGhlIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAgICovXG5cbiAgZmllbGRzZXQge1xuICAgIHBhZGRpbmc6IDAuMzVlbSAwLjc1ZW0gMC42MjVlbTtcbiAgfVxuXG4gIC8qKlxuICAgKiAxLiBDb3JyZWN0IHRoZSB0ZXh0IHdyYXBwaW5nIGluIEVkZ2UgYW5kIElFLlxuICAgKiAyLiBDb3JyZWN0IHRoZSBjb2xvciBpbmhlcml0YW5jZSBmcm9tIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gSUUuXG4gICAqIDMuIFJlbW92ZSB0aGUgcGFkZGluZyBzbyBkZXZlbG9wZXJzIGFyZSBub3QgY2F1Z2h0IG91dCB3aGVuIHRoZXkgemVybyBvdXRcbiAgICogICAgYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBhbGwgYnJvd3NlcnMuXG4gICAqL1xuXG4gIGxlZ2VuZCB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICAgIGNvbG9yOiBpbmhlcml0OyAvKiAyICovXG4gICAgZGlzcGxheTogdGFibGU7IC8qIDEgKi9cbiAgICBtYXgtd2lkdGg6IDEwMCU7IC8qIDEgKi9cbiAgICBwYWRkaW5nOiAwOyAvKiAzICovXG4gICAgd2hpdGUtc3BhY2U6IG5vcm1hbDsgLyogMSAqL1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCB0aGUgY29ycmVjdCB2ZXJ0aWNhbCBhbGlnbm1lbnQgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4gICAqL1xuXG4gIHByb2dyZXNzIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIHRoZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSAxMCsuXG4gICAqL1xuXG4gIHRleHRhcmVhIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgfVxuXG4gIC8qKlxuICAgKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBJRSAxMC5cbiAgICogMi4gUmVtb3ZlIHRoZSBwYWRkaW5nIGluIElFIDEwLlxuICAgKi9cblxuICBbdHlwZT1cImNoZWNrYm94XCJdLFxuICBbdHlwZT1cInJhZGlvXCJdIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gICAgcGFkZGluZzogMDsgLyogMiAqL1xuICB9XG5cbiAgLyoqXG4gICAqIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cbiAgICovXG5cbiAgW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG4gIFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cblxuICAvKipcbiAgICogMS4gQ29ycmVjdCB0aGUgb2RkIGFwcGVhcmFuY2UgaW4gQ2hyb21lIGFuZCBTYWZhcmkuXG4gICAqIDIuIENvcnJlY3QgdGhlIG91dGxpbmUgc3R5bGUgaW4gU2FmYXJpLlxuICAgKi9cblxuICBbdHlwZT1cInNlYXJjaFwiXSB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8qIDEgKi9cbiAgICBvdXRsaW5lLW9mZnNldDogLTJweDsgLyogMiAqL1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBtYWNPUy5cbiAgICovXG5cbiAgW3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgfVxuXG4gIC8qKlxuICAgKiAxLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICAgKiAyLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBTYWZhcmkuXG4gICAqL1xuXG4gIDo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAxICovXG4gICAgZm9udDogaW5oZXJpdDsgLyogMiAqL1xuICB9XG5cbiAgLyogSW50ZXJhY3RpdmVcbiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAvKlxuICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBFZGdlLCBJRSAxMCssIGFuZCBGaXJlZm94LlxuICAgKi9cblxuICBkZXRhaWxzIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIC8qXG4gICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGFsbCBicm93c2Vycy5cbiAgICovXG5cbiAgc3VtbWFyeSB7XG4gICAgZGlzcGxheTogbGlzdC1pdGVtO1xuICB9XG5cbiAgLyogTWlzY1xuICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gIC8qKlxuICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMCsuXG4gICAqL1xuXG4gIHRlbXBsYXRlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwLlxuICAgKi9cblxuICBbaGlkZGVuXSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuIiwiOnJvb3Qge1xuICAgIC8vIENPTE9SIFNIQURFU1xuICAgIEBlYWNoICRjb2xvciwgJHNoYWRlcyBpbiAkZXVpLWJhc2UtdG9rZW5zLWNvbG9ycyB7XG4gICAgICAgIEBlYWNoICRzaGFkZSwgJHZhbHVlIGluICRzaGFkZXMge1xuICAgICAgICAgICAgLS1ldWktYmFzZS1jb2xvci0jeyRjb2xvciArICctJyArICRzaGFkZX06ICN7JHZhbHVlfTtcbiAgICAgICAgICAgIC0tZXVpLWJhc2UtY29sb3ItI3skY29sb3IgKyAnLScgKyAkc2hhZGV9LXJnYjogI3t0b1JHQigkdmFsdWUpfTtcbiAgICAgICAgICAgIC0tZXVpLWJhc2UtY29sb3ItI3skY29sb3IgKyAnLScgKyAkc2hhZGV9LWNvbnRyYXN0OiAje2dldENvbnRyYXN0KCR2YWx1ZSl9O1xuICAgICAgICAgICAgLS1ldWktYmFzZS1jb2xvci0jeyRjb2xvciArICctJyArICRzaGFkZX0tY29udHJhc3QtcmdiOiAje3RvUkdCKGdldENvbnRyYXN0KCR2YWx1ZSkpfTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIERFRkFVTFRTIDEwMHNcbiAgICBAZWFjaCAkY29sb3IsICR2YWx1ZSBpbiAkZXVpLWJhc2UtdG9rZW5zLWNvbG9ycy0xMDBzIHtcbiAgICAgICAgLS1ldWktYmFzZS1jb2xvci0jeycnICsgJGNvbG9yfTogI3skdmFsdWV9O1xuICAgIH1cblxuICAgIC8vIFJBVyBDT0xPUlNcbiAgICAtLWV1aS1iYXNlLWNvbG9yLXRleHQ6IHZhcigtLWV1aS1iYXNlLWNvbG9yLWdyZXktMTAwKTtcbiAgICAtLWV1aS1iYXNlLWNvbG9yLWxpbms6IHZhcigtLWV1aS1iYXNlLWNvbG9yLXByaW1hcnktMTAwKTtcbiAgICAtLWV1aS1iYXNlLWNvbG9yLWJsYWNrOiB2YXIoLS1ldWktYmFzZS1jb2xvci1ncmV5LTEwMCk7XG4gICAgLS1ldWktYmFzZS1jb2xvci13aGl0ZTogdmFyKC0tZXVpLWJhc2UtY29sb3ItZ3JleS0wKTtcbn1cbiIsIjpyb290IHtcbiAgICAvLyAvLyBGT05UU1xuICAgIC0tZXVpLWJhc2UtZm9udC1mYW1pbHk6IEFyaWFsLCAnSGVsdmV0aWNhIE5ldWUnLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4gICAgLy8gLS1ldWktYmFzZS1mb250LWZhbWlseTogJ1NvdXJjZSBTYW5zIFBybycsIHNhbnMtc2VyaWY7ICA8bGluayBocmVmPVwiaHR0cHM6Ly9mb250cy5jZG5mb250cy5jb20vY3NzL3NvdXJjZS1zYW5zLXByb1wiIHJlbD1cInN0eWxlc2hlZXRcIj5cbiAgICAvLyAtLWV1aS1iYXNlLWZvbnQtZmFtaWx5OiAnUm9ib3RvJywgc2Fucy1zZXJpZjsgIDxsaW5rIGhyZWY9XCJodHRwczovL2ZvbnRzLmNkbmZvbnRzLmNvbS9jc3Mvcm9ib3RvXCIgcmVsPVwic3R5bGVzaGVldFwiPlxuICAgIC0tZXVpLWJhc2UtZm9udC1mYW1pbHktaWNvbnM6ICdldWktaWNvbnMnLCBzYW5zLXNlcmlmO1xuICAgIC0tZXVpLWJhc2UtZm9udC1mYW1pbHktbW9ub3NwYWNlOiAnQ29uc29sYXMnLCAnTGliZXJhdGlvbiBNb25vJywgJ0NvdXJpZXIgTmV3JywgbW9ub3NwYWNlO1xuXG4gICAgLy8gRk9OVC1TSVpFU1xuICAgIC0tZXVpLWJhc2UtZm9udC1zaXplOiAxNnB4O1xuICAgIEBlYWNoICRmb250LXNpemUsICR2YWx1ZSBpbiAkZXVpLWJhc2UtdG9rZW5zLWZvbnQtc2l6ZXMge1xuICAgICAgICAtLWV1aS1iYXNlLWZvbnQtc2l6ZS0jeyRmb250LXNpemV9OiAjeyR2YWx1ZX07XG4gICAgfVxuXG4gICAgLy8gSUNPTi1TSVpFU1xuICAgIC0tZXVpLWJhc2UtaWNvbi1zaXplOiAxLjVyZW07XG4gICAgQGVhY2ggJGljb24tc2l6ZSwgJHZhbHVlIGluICRldWktYmFzZS10b2tlbnMtaWNvbi1zaXplcyB7XG4gICAgICAgIC0tZXVpLWJhc2UtaWNvbi1zaXplLSN7JGljb24tc2l6ZX06ICN7JHZhbHVlfTtcbiAgICB9XG5cbiAgICBAZWFjaCAkc2l6ZSwgJGRlZiBpbiAkZXVpLWJhc2UtdG9rZW5zLWZvbnRzIHtcbiAgICAgICAgLS1ldWktYmFzZS1mb250LSN7JHNpemV9OiAjeyRkZWZ9O1xuICAgIH1cblxuICAgIC8vIFNQQUNJTkdTXG4gICAgQGVhY2ggJHNwYWNpbmcsICR2YWx1ZSBpbiAkZXVpLWJhc2UtdG9rZW5zLXNwYWNpbmdzIHtcbiAgICAgICAgLS1ldWktYmFzZS1zcGFjaW5nLSN7JHNwYWNpbmd9OiAjeyR2YWx1ZX07XG4gICAgfVxuXG4gICAgLy8gU0hBRE9XU1xuICAgIEBlYWNoICRzaGFkb3csICR2YWx1ZSBpbiAkZXVpLWJhc2UtdG9rZW5zLXNoYWRvd3Mge1xuICAgICAgICAtLWV1aS1iYXNlLXNoYWRvdy0jeyRzaGFkb3d9OiAjeyR2YWx1ZX07XG4gICAgfVxuXG4gICAgLy8gWi1JTkRFWEVTXG4gICAgQGVhY2ggJGlkeCwgJHZhbHVlIGluICRldWktYmFzZS10b2tlbnMtei1pbmRleGVzIHtcbiAgICAgICAgLS1ldWktYmFzZS16LWluZGV4LSN7JGlkeH06ICN7JHZhbHVlfTtcbiAgICB9XG59XG4iLCI6cm9vdCB7XG4gICAgLS1ldWktYmFzZS1saW5lLWhlaWdodDogMS41O1xuICAgIC0tZXVpLWJhc2Utc2NhbGUtZmFjdG9yOiAxO1xuICAgIC0tZXVpLWJhc2UtZGlzYWJsZWQtb3BhY2l0eTogMC40NTtcblxuICAgIC0tZXVpLWJhc2UtYm9yZGVyLXJhZGl1czogM3B4O1xuXG4gICAgLS1ldWktYmFzZS1ib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ldWktY29sb3ItZ3JleS1saWdodGVyKTtcbiAgICAtLWV1aS1iYXNlLWJvcmRlci1saWdodDogMXB4IHNvbGlkIHZhcigtLWV1aS1jb2xvci1ncmV5LWxpZ2h0KTtcbiAgICAtLWV1aS1iYXNlLWJvcmRlci1saWdodGVyOiAxcHggc29saWQgdmFyKC0tZXVpLWNvbG9yLWdyZXktbGlnaHRlcik7XG4gICAgLS1ldWktYmFzZS1ib3JkZXItbGlnaHRlc3Q6IDFweCBzb2xpZCB2YXIoLS1ldWktY29sb3ItZ3JleS1saWdodGVzdCk7XG5cbiAgICAvLyBBbmltYXRpb25zIHJlbGF0ZWRcbiAgICAtLWV1aS1iYXNlLWFuaW1hdGlvbi1saW5lYXItb3V0LXNsb3ctaW4tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTtcbiAgICAtLWV1aS1iYXNlLWFuaW1hdGlvbi1mYXN0LW91dC1zbG93LWluLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbiAgICAtLWV1aS1iYXNlLWFuaW1hdGlvbi1mYXN0LW91dC1saW5lYXItaW4tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAxLCAxKTtcbiAgICAtLWV1aS1iYXNlLWFuaW1hdGlvbi1lYXNlLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjUsIDAuMSwgMC4yNSwgMSk7ICAgIC8vIGVhc2VcbiAgICAtLWV1aS1iYXNlLWFuaW1hdGlvbi1lYXNlLWluLW91dC10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuXG4gICAgLS1ldWktYmFzZS1hbmltYXRpb24tZHVyYXRpb24tZmFzdDogMC4yNXM7XG4gICAgLS1ldWktYmFzZS1hbmltYXRpb24tZHVyYXRpb24tbWVkaXVtOiAwLjVzO1xuICAgIC0tZXVpLWJhc2UtYW5pbWF0aW9uLWR1cmF0aW9uLXNsb3c6IDFzO1xuICAgIC0tZXVpLWJhc2UtYW5pbWF0aW9uLWR1cmF0aW9uLWJhc2U6IDUwMG1zO1xuICAgIC0tZXVpLWJhc2UtYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1ldWktYmFzZS1hbmltYXRpb24tZHVyYXRpb24tYmFzZSk7XG5cbiAgICAtLWV1aS1iYXNlLWFuaW1hdGlvbi10cmFuc2l0aW9uLWJhc2U6IGFsbCAwLjJzICN7dmFyKC0tZXVpLWJhc2UtYW5pbWF0aW9uLWxpbmVhci1vdXQtc2xvdy1pbi10aW1pbmctZnVuY3Rpb24pfTtcbiAgICAtLWV1aS1iYXNlLWFuaW1hdGlvbi10cmFuc2l0aW9uLWVhc2U6IGFsbCAwLjJzICN7dmFyKC0tZXVpLWJhc2UtYW5pbWF0aW9uLWVhc2UtdGltaW5nLWZ1bmN0aW9uKX07XG4gICAgLS1ldWktYmFzZS1hbmltYXRpb24tdHJhbnNpdGlvbi1lYXNlLWluLW91dDogYWxsIDAuMnMgI3t2YXIoLS1ldWktYmFzZS1hbmltYXRpb24tZWFzZS1pbi1vdXQtdGltaW5nLWZ1bmN0aW9uKX07XG4gICAgLS1ldWktYmFzZS1hbmltYXRpb24tdHJhbnNpdGlvbi1lYXNlLWluLW91dC0xczogYWxsIDFzICN7dmFyKC0tZXVpLWJhc2UtYW5pbWF0aW9uLWVhc2UtaW4tb3V0LXRpbWluZy1mdW5jdGlvbil9O1xuXG4gICAgLS1ldWktYmFzZS1hbmltYXRpb24tZGVsYXk6IDBzO1xuICAgIC0tZXVpLWJhc2UtYW5pbWF0aW9uLWRpcmVjdGlvbjogbm9ybWFsO1xuICAgIC0tZXVpLWJhc2UtYW5pbWF0aW9uLWZpbGwtbW9kZTogZm9yd2FyZHM7ICAgIC8vIHRoaXMgcHJldmVudHMgdGhlIGFuaW1hdGlvbiBmcm9tIHJlc3RhcnRpbmdcbiAgICAtLWV1aS1iYXNlLWFuaW1hdGlvbi1iYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ldWktYmFzZS1jb2xvci1wcmltYXJ5LTUwKTsgIC8vICNjZmNmZGY7XG5cbiAgICAvLyBFeHRyYSBjb2xvcnNcbiAgICAtLWV1aS1iYXNlLWNvbG9yLWFjY2Vzc2libGUtZm9jdXM6IHZhcigtLWV1aS1iYXNlLWNvbG9yLWFjY2VudC0xMTApOyAgICAvLyBDYXJib24gYmx1ZTogIzBmNjJmZTtcbn1cbiIsIjpyb290IHtcbiAgICAvLyBlVUkgQVBQXG4gICAgLS1ldWktYXBwLWhlYWRlci1oZWlnaHQtZGVmYXVsdDogMHB4O1xuICAgIC0tZXVpLWFwcC1oZWFkZXItaGVpZ2h0OiAwcHg7XG4gICAgLS1ldWktYXBwLWhlYWRlci1oZWlnaHQtYWN0aXZlOiA5MHB4O1xuICAgIC0tZXVpLWFwcC1oZWFkZXItaGVpZ2h0LXNocmluazogMHB4O1xuXG4gICAgLS1ldWktYXBwLWJyZWFkY3J1bWItaGVpZ2h0LWRlZmF1bHQ6IDBweDtcbiAgICAtLWV1aS1hcHAtYnJlYWRjcnVtYi1oZWlnaHQ6IDBweDtcbiAgICAtLWV1aS1hcHAtYnJlYWRjcnVtYi1oZWlnaHQtYWN0aXZlOiAyMHB4O1xuXG4gICAgLS1ldWktYXBwLXRvcC1tZXNzYWdlLWhlaWdodC1kZWZhdWx0OiAwcHg7XG4gICAgLS1ldWktYXBwLXRvcC1tZXNzYWdlLWhlaWdodDogMHB4O1xuICAgIC0tZXVpLWFwcC10b3AtbWVzc2FnZS1oZWlnaHQtYWN0aXZlOiA0MnB4O1xuXG4gICAgLS1ldWktYXBwLXRvb2xiYXItaGVpZ2h0LWRlZmF1bHQ6IDBweDtcbiAgICAtLWV1aS1hcHAtdG9vbGJhci1oZWlnaHQ6IDBweDtcbiAgICAtLWV1aS1hcHAtdG9vbGJhci1oZWlnaHQtYWN0aXZlOiA1NXB4O1xuXG4gICAgLS1ldWktYXBwLXNpZGViYXItd2lkdGgtZGVmYXVsdDogMHB4O1xuICAgIC0tZXVpLWFwcC1zaWRlYmFyLXdpZHRoOiAwcHg7XG4gICAgLS1ldWktYXBwLXNpZGViYXItd2lkdGgtYWN0aXZlOiAzMDBweDtcbiAgICAtLWV1aS1hcHAtc2lkZWJhci13aWR0aC1jbG9zZS1kZWZhdWx0OiAwcHg7XG4gICAgLS1ldWktYXBwLXNpZGViYXItd2lkdGgtY2xvc2U6IDBweDtcbiAgICAtLWV1aS1hcHAtc2lkZWJhci13aWR0aC1jbG9zZS1hY3RpdmU6IDY0cHg7XG4gICAgLS1ldWktYXBwLXNpZGViYXItaGVhZGVyLWhlaWdodDogMHB4O1xuICAgIC0tZXVpLWFwcC1zaWRlYmFyLWhlYWRlci1oZWlnaHQtZGVmYXVsdDogMHB4O1xuICAgIC0tZXVpLWFwcC1zaWRlYmFyLWhlYWRlci1oZWlnaHQtYWN0aXZlOiA0OHB4O1xuICAgIC0tZXVpLWFwcC1zaWRlYmFyLWZvb3Rlci1oZWlnaHQ6IDBweDtcbiAgICAtLWV1aS1hcHAtc2lkZWJhci1mb290ZXItaGVpZ2h0LWRlZmF1bHQ6IDBweDtcbiAgICAtLWV1aS1hcHAtc2lkZWJhci1mb290ZXItaGVpZ2h0LWFjdGl2ZTogMjRweDtcblxuICAgIC8vIFBhZ2UgTGF5b3V0XG4gICAgLS1ldWktcGFnZS1oZWFkZXItd2l0aC1zdWJ0aXRsZS1oZWlnaHQ6IDRyZW07XG4gICAgLS1ldWktcGFnZS1oZWFkZXItd2l0aG91dC1zdWJ0aXRsZS1oZWlnaHQ6IDJyZW07XG5cbiAgICAtLWV1aS1wYWdlLWNvbHVtbi0tc2l6ZS1zOiA1MHB4O1xuICAgIC0tZXVpLXBhZ2UtY29sdW1uLS1zaXplLW06IDE1MHB4O1xuICAgIC0tZXVpLXBhZ2UtY29sdW1uLS1zaXplLWw6IDIwMHB4O1xuICAgIC0tZXVpLXBhZ2UtY29sdW1uLS1zaXplLXhsOiAyNTBweDtcbiAgICAtLWV1aS1wYWdlLWNvbHVtbi0tc2l6ZS14eGw6IDMwMHB4O1xuICAgIC0tZXVpLXBhZ2UtY29sdW1uLS1zaXplLXh4eGw6IDM1MHB4O1xuICAgIC0tZXVpLXBhZ2UtY29sdW1uLWZvb3Rlci1oZWlnaHQ6IDMuNXJlbTtcbn1cblxuLnhzLCAuc20ge1xuICAgIC0tZXVpLWFwcC1oZWFkZXItaGVpZ2h0OiAwcHg7XG59XG4iLCI6cm9vdCB7XG4gICAgLS1ldWktYXBwLWJveC1zaGFkb3c6IG5vbmU7IC8vIHZhcigtLWV1aS1iYXNlLXNoYWRvdy16LWRlcHRoLTApO1xufVxuIiwiLmV1aS1pY29uLXN2ZyB7XG4gICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgIG1hcmdpbjogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgxKSBzY2FsZVkoMSkgcm90YXRlWigwZGVnKTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMzAwbXMgZWFzZS1pbi1vdXQ7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbkBlYWNoICRzaXplLCAkdmFsdWUgaW4gJGV1aS1iYXNlLXRva2Vucy1pY29uLXNpemVzIHtcbiAgICAuZXVpLWljb24tc3ZnLS1zaXplLSN7JHNpemV9IHtcbiAgICAgICAgaGVpZ2h0OiAjeyR2YWx1ZX07XG4gICAgICAgIHdpZHRoOiAjeyR2YWx1ZX07XG4gICAgfTtcbn1cbkBlYWNoICRjb2xvciwgJHNoYWRlcyBpbiAkZXVpLWJhc2UtdG9rZW5zLWNvbG9ycyB7XG4gICAgQGVhY2ggJHNoYWRlLCAkdmFsdWUgaW4gJHNoYWRlcyB7XG4gICAgICAgIC5ldWktaWNvbi1zdmctLWNvbG9yLSN7JGNvbG9yICsgJy0nICsgJHNoYWRlfSB7XG4gICAgICAgICAgICBjb2xvcjogI3skdmFsdWV9O1xuICAgICAgICAgICAgZmlsbDogI3skdmFsdWV9O1xuICAgICAgICB9O1xuICAgIH1cbn1cbkBlYWNoICRjb2xvciwgJHZhbHVlIGluICRldWktYmFzZS10b2tlbnMtY29sb3JzLTEwMHMge1xuICAgIC5ldWktaWNvbi1zdmctLWNvbG9yLSN7JycgKyAkY29sb3J9IHtcbiAgICAgICAgY29sb3I6ICN7JHZhbHVlfTtcbiAgICAgICAgZmlsbDogI3skdmFsdWV9O1xuICAgIH07XG59XG5cbi5ldWktaWNvbi1zdmctLWNvbG9yLXdoaXRlIHtcbiAgICBjb2xvcjogdmFyKC0tZXVpLWJhc2UtY29sb3Itd2hpdGUpO1xuICAgIGZpbGw6IHZhcigtLWV1aS1iYXNlLWNvbG9yLXdoaXRlKTtcbn1cblxuLmV1aS1pY29uLXN2Zy0tY29sb3ItYmxhY2sge1xuICAgIGNvbG9yOiB2YXIoLS1ldWktYmFzZS1jb2xvci1ibGFjayk7XG4gICAgZmlsbDogdmFyKC0tZXVpLWJhc2UtY29sb3ItYmxhY2spO1xufVxuXG4uZXVpLWljb24tc3ZnLS1jb2xvci10cmFuc3BhcmVudCB7XG4gICAgY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7ICAvLyBpbXBvcnRhbnQgZm9yIGlzTG9hZGluZ1xuICAgIGZpbGw6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG4iLCIvLyBSb3dcbi8vXG4vLyBSb3dzIGNvbnRhaW4geW91ciBjb2x1bW5zLlxuXG5AaWYgJGVuYWJsZS1ncmlkLWNsYXNzZXMge1xuICAucm93IHtcbiAgICBAaW5jbHVkZSBtYWtlLXJvdygpO1xuXG4gICAgPiAqIHtcbiAgICAgIEBpbmNsdWRlIG1ha2UtY29sLXJlYWR5KCk7XG4gICAgfVxuICB9XG59XG5cbkBpZiAkZW5hYmxlLWNzc2dyaWQge1xuICAuZ3JpZCB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLXJvd3M6IHJlcGVhdCh2YXIoLS0jeyR2YXJpYWJsZS1wcmVmaXh9cm93cywgMSksIDFmcik7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQodmFyKC0tI3skdmFyaWFibGUtcHJlZml4fWNvbHVtbnMsICN7JGdyaWQtY29sdW1uc30pLCAxZnIpO1xuICAgIGdhcDogdmFyKC0tI3skdmFyaWFibGUtcHJlZml4fWdhcCwgI3skZ3JpZC1ndXR0ZXItd2lkdGh9KTtcblxuICAgIEBpbmNsdWRlIG1ha2UtY3NzZ3JpZCgpO1xuICB9XG59XG5cblxuLy8gQ29sdW1uc1xuLy9cbi8vIENvbW1vbiBzdHlsZXMgZm9yIHNtYWxsIGFuZCBsYXJnZSBncmlkIGNvbHVtbnNcblxuQGlmICRlbmFibGUtZ3JpZC1jbGFzc2VzIHtcbiAgQGluY2x1ZGUgbWFrZS1ncmlkLWNvbHVtbnMoKTtcbn1cbiIsIi8vIEdyaWQgc3lzdGVtXG4vL1xuLy8gR2VuZXJhdGUgc2VtYW50aWMgZ3JpZCBjb2x1bW5zIHdpdGggdGhlc2UgbWl4aW5zLlxuXG5AbWl4aW4gbWFrZS1yb3coJGd1dHRlcjogJGdyaWQtZ3V0dGVyLXdpZHRoKSB7XG4gIC0tI3skdmFyaWFibGUtcHJlZml4fWd1dHRlci14OiAjeyRndXR0ZXJ9O1xuICAtLSN7JHZhcmlhYmxlLXByZWZpeH1ndXR0ZXIteTogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICAvLyBUT0RPOiBSZXZpc2l0IGNhbGMgb3JkZXIgYWZ0ZXIgaHR0cHM6Ly9naXRodWIuY29tL3JlYWN0LWJvb3RzdHJhcC9yZWFjdC1ib290c3RyYXAvaXNzdWVzLzYwMzkgaXMgZml4ZWRcbiAgbWFyZ2luLXRvcDogY2FsYygtMSAqIHZhcigtLSN7JHZhcmlhYmxlLXByZWZpeH1ndXR0ZXIteSkpOyAvLyBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIGZ1bmN0aW9uLWRpc2FsbG93ZWQtbGlzdFxuICBtYXJnaW4tcmlnaHQ6IGNhbGMoLS41ICogdmFyKC0tI3skdmFyaWFibGUtcHJlZml4fWd1dHRlci14KSk7IC8vIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgZnVuY3Rpb24tZGlzYWxsb3dlZC1saXN0XG4gIG1hcmdpbi1sZWZ0OiBjYWxjKC0uNSAqIHZhcigtLSN7JHZhcmlhYmxlLXByZWZpeH1ndXR0ZXIteCkpOyAvLyBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIGZ1bmN0aW9uLWRpc2FsbG93ZWQtbGlzdFxufVxuXG5AbWl4aW4gbWFrZS1jb2wtcmVhZHkoJGd1dHRlcjogJGdyaWQtZ3V0dGVyLXdpZHRoKSB7XG4gIC8vIEFkZCBib3ggc2l6aW5nIGlmIG9ubHkgdGhlIGdyaWQgaXMgbG9hZGVkXG4gIGJveC1zaXppbmc6IGlmKHZhcmlhYmxlLWV4aXN0cyhpbmNsdWRlLWNvbHVtbi1ib3gtc2l6aW5nKSBhbmQgJGluY2x1ZGUtY29sdW1uLWJveC1zaXppbmcsIGJvcmRlci1ib3gsIG51bGwpO1xuICAvLyBQcmV2ZW50IGNvbHVtbnMgZnJvbSBiZWNvbWluZyB0b28gbmFycm93IHdoZW4gYXQgc21hbGxlciBncmlkIHRpZXJzIGJ5XG4gIC8vIGFsd2F5cyBzZXR0aW5nIGB3aWR0aDogMTAwJTtgLiBUaGlzIHdvcmtzIGJlY2F1c2Ugd2Ugc2V0IHRoZSB3aWR0aFxuICAvLyBsYXRlciBvbiB0byBvdmVycmlkZSB0aGlzIGluaXRpYWwgd2lkdGguXG4gIGZsZXgtc2hyaW5rOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlOyAvLyBQcmV2ZW50IGAuY29sLWF1dG9gLCBgLmNvbGAgKCYgcmVzcG9uc2l2ZSB2YXJpYW50cykgZnJvbSBicmVha2luZyBvdXQgdGhlIGdyaWRcbiAgcGFkZGluZy1yaWdodDogY2FsYyh2YXIoLS0jeyR2YXJpYWJsZS1wcmVmaXh9Z3V0dGVyLXgpICogLjUpOyAvLyBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIGZ1bmN0aW9uLWRpc2FsbG93ZWQtbGlzdFxuICBwYWRkaW5nLWxlZnQ6IGNhbGModmFyKC0tI3skdmFyaWFibGUtcHJlZml4fWd1dHRlci14KSAqIC41KTsgLy8gc3R5bGVsaW50LWRpc2FibGUtbGluZSBmdW5jdGlvbi1kaXNhbGxvd2VkLWxpc3RcbiAgbWFyZ2luLXRvcDogdmFyKC0tI3skdmFyaWFibGUtcHJlZml4fWd1dHRlci15KTtcbn1cblxuQG1peGluIG1ha2UtY29sKCRzaXplOiBmYWxzZSwgJGNvbHVtbnM6ICRncmlkLWNvbHVtbnMpIHtcbiAgQGlmICRzaXplIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogcGVyY2VudGFnZShkaXZpZGUoJHNpemUsICRjb2x1bW5zKSk7XG5cbiAgfSBAZWxzZSB7XG4gICAgZmxleDogMSAxIDA7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG59XG5cbkBtaXhpbiBtYWtlLWNvbC1hdXRvKCkge1xuICBmbGV4OiAwIDAgYXV0bztcbiAgd2lkdGg6IGF1dG87XG59XG5cbkBtaXhpbiBtYWtlLWNvbC1vZmZzZXQoJHNpemUsICRjb2x1bW5zOiAkZ3JpZC1jb2x1bW5zKSB7XG4gICRudW06IGRpdmlkZSgkc2l6ZSwgJGNvbHVtbnMpO1xuICBtYXJnaW4tbGVmdDogaWYoJG51bSA9PSAwLCAwLCBwZXJjZW50YWdlKCRudW0pKTtcbn1cblxuLy8gUm93IGNvbHVtbnNcbi8vXG4vLyBTcGVjaWZ5IG9uIGEgcGFyZW50IGVsZW1lbnQoZS5nLiwgLnJvdykgdG8gZm9yY2UgaW1tZWRpYXRlIGNoaWxkcmVuIGludG8gTk5cbi8vIG51bWJlcm9mIGNvbHVtbnMuIFN1cHBvcnRzIHdyYXBwaW5nIHRvIG5ldyBsaW5lcywgYnV0IGRvZXMgbm90IGRvIGEgTWFzb25yeVxuLy8gc3R5bGUgZ3JpZC5cbkBtaXhpbiByb3ctY29scygkY291bnQpIHtcbiAgPiAqIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogZGl2aWRlKDEwMCUsICRjb3VudCk7XG4gIH1cbn1cblxuLy8gRnJhbWV3b3JrIGdyaWQgZ2VuZXJhdGlvblxuLy9cbi8vIFVzZWQgb25seSBieSBCb290c3RyYXAgdG8gZ2VuZXJhdGUgdGhlIGNvcnJlY3QgbnVtYmVyIG9mIGdyaWQgY2xhc3NlcyBnaXZlblxuLy8gYW55IHZhbHVlIG9mIGAkZ3JpZC1jb2x1bW5zYC5cblxuQG1peGluIG1ha2UtZ3JpZC1jb2x1bW5zKCRjb2x1bW5zOiAkZ3JpZC1jb2x1bW5zLCAkZ3V0dGVyOiAkZ3JpZC1ndXR0ZXItd2lkdGgsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgQGVhY2ggJGJyZWFrcG9pbnQgaW4gbWFwLWtleXMoJGJyZWFrcG9pbnRzKSB7XG4gICAgJGluZml4OiBicmVha3BvaW50LWluZml4KCRicmVha3BvaW50LCAkYnJlYWtwb2ludHMpO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkYnJlYWtwb2ludCwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICAvLyBQcm92aWRlIGJhc2ljIGAuY29sLXticH1gIGNsYXNzZXMgZm9yIGVxdWFsLXdpZHRoIGZsZXhib3ggY29sdW1uc1xuICAgICAgLmNvbCN7JGluZml4fSB7XG4gICAgICAgIGZsZXg6IDEgMCAwJTsgLy8gRmxleGJ1Z3MgIzQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9waGlsaXB3YWx0b24vZmxleGJ1Z3MjZmxleGJ1Zy00XG4gICAgICB9XG5cbiAgICAgIC5yb3ctY29scyN7JGluZml4fS1hdXRvID4gKiB7XG4gICAgICAgIEBpbmNsdWRlIG1ha2UtY29sLWF1dG8oKTtcbiAgICAgIH1cblxuICAgICAgQGlmICRncmlkLXJvdy1jb2x1bW5zID4gMCB7XG4gICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtcm93LWNvbHVtbnMge1xuICAgICAgICAgIC5yb3ctY29scyN7JGluZml4fS0jeyRpfSB7XG4gICAgICAgICAgICBAaW5jbHVkZSByb3ctY29scygkaSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5jb2wjeyRpbmZpeH0tYXV0byB7XG4gICAgICAgIEBpbmNsdWRlIG1ha2UtY29sLWF1dG8oKTtcbiAgICAgIH1cblxuICAgICAgQGlmICRjb2x1bW5zID4gMCB7XG4gICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGNvbHVtbnMge1xuICAgICAgICAgIC5jb2wjeyRpbmZpeH0tI3skaX0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWFrZS1jb2woJGksICRjb2x1bW5zKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBgJGNvbHVtbnMgLSAxYCBiZWNhdXNlIG9mZnNldHRpbmcgYnkgdGhlIHdpZHRoIG9mIGFuIGVudGlyZSByb3cgaXNuJ3QgcG9zc2libGVcbiAgICAgICAgQGZvciAkaSBmcm9tIDAgdGhyb3VnaCAoJGNvbHVtbnMgLSAxKSB7XG4gICAgICAgICAgQGlmIG5vdCAoJGluZml4ID09IFwiXCIgYW5kICRpID09IDApIHsgLy8gQXZvaWQgZW1pdHRpbmcgdXNlbGVzcyAub2Zmc2V0LTBcbiAgICAgICAgICAgIC5vZmZzZXQjeyRpbmZpeH0tI3skaX0ge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBtYWtlLWNvbC1vZmZzZXQoJGksICRjb2x1bW5zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gR3V0dGVyc1xuICAgICAgLy9cbiAgICAgIC8vIE1ha2UgdXNlIG9mIGAuZy0qYCwgYC5neC0qYCBvciBgLmd5LSpgIHV0aWxpdGllcyB0byBjaGFuZ2Ugc3BhY2luZyBiZXR3ZWVuIHRoZSBjb2x1bW5zLlxuICAgICAgQGVhY2ggJGtleSwgJHZhbHVlIGluICRndXR0ZXJzIHtcbiAgICAgICAgLmcjeyRpbmZpeH0tI3ska2V5fSxcbiAgICAgICAgLmd4I3skaW5maXh9LSN7JGtleX0ge1xuICAgICAgICAgIC0tI3skdmFyaWFibGUtcHJlZml4fWd1dHRlci14OiAjeyR2YWx1ZX07XG4gICAgICAgIH1cblxuICAgICAgICAuZyN7JGluZml4fS0jeyRrZXl9LFxuICAgICAgICAuZ3kjeyRpbmZpeH0tI3ska2V5fSB7XG4gICAgICAgICAgLS0jeyR2YXJpYWJsZS1wcmVmaXh9Z3V0dGVyLXk6ICN7JHZhbHVlfTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWFrZS1jc3NncmlkKCRjb2x1bW5zOiAkZ3JpZC1jb2x1bW5zLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gIEBlYWNoICRicmVha3BvaW50IGluIG1hcC1rZXlzKCRicmVha3BvaW50cykge1xuICAgICRpbmZpeDogYnJlYWtwb2ludC1pbmZpeCgkYnJlYWtwb2ludCwgJGJyZWFrcG9pbnRzKTtcblxuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJGJyZWFrcG9pbnQsICRicmVha3BvaW50cykge1xuICAgICAgQGlmICRjb2x1bW5zID4gMCB7XG4gICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGNvbHVtbnMge1xuICAgICAgICAgIC5nLWNvbCN7JGluZml4fS0jeyRpfSB7XG4gICAgICAgICAgICBncmlkLWNvbHVtbjogYXV0byAvIHNwYW4gJGk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gU3RhcnQgd2l0aCBgMWAgYmVjYXVzZSBgMGAgaXMgYW5kIGludmFsaWQgdmFsdWUuXG4gICAgICAgIC8vIEVuZHMgd2l0aCBgJGNvbHVtbnMgLSAxYCBiZWNhdXNlIG9mZnNldHRpbmcgYnkgdGhlIHdpZHRoIG9mIGFuIGVudGlyZSByb3cgaXNuJ3QgcG9zc2libGUuXG4gICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggKCRjb2x1bW5zIC0gMSkge1xuICAgICAgICAgIC5nLXN0YXJ0I3skaW5maXh9LSN7JGl9IHtcbiAgICAgICAgICAgIGdyaWQtY29sdW1uLXN0YXJ0OiAkaTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEJyZWFrcG9pbnQgdmlld3BvcnQgc2l6ZXMgYW5kIG1lZGlhIHF1ZXJpZXMuXG4vL1xuLy8gQnJlYWtwb2ludHMgYXJlIGRlZmluZWQgYXMgYSBtYXAgb2YgKG5hbWU6IG1pbmltdW0gd2lkdGgpLCBvcmRlciBmcm9tIHNtYWxsIHRvIGxhcmdlOlxuLy9cbi8vICAgICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweClcbi8vXG4vLyBUaGUgbWFwIGRlZmluZWQgaW4gdGhlIGAkZ3JpZC1icmVha3BvaW50c2AgZ2xvYmFsIHZhcmlhYmxlIGlzIHVzZWQgYXMgdGhlIGAkYnJlYWtwb2ludHNgIGFyZ3VtZW50IGJ5IGRlZmF1bHQuXG5cbi8vIE5hbWUgb2YgdGhlIG5leHQgYnJlYWtwb2ludCwgb3IgbnVsbCBmb3IgdGhlIGxhc3QgYnJlYWtwb2ludC5cbi8vXG4vLyAgICA+PiBicmVha3BvaW50LW5leHQoc20pXG4vLyAgICBtZFxuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxuLy8gICAgbWRcbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSwgJGJyZWFrcG9pbnQtbmFtZXM6ICh4cyBzbSBtZCBsZyB4bCkpXG4vLyAgICBtZFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbmV4dCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cywgJGJyZWFrcG9pbnQtbmFtZXM6IG1hcC1rZXlzKCRicmVha3BvaW50cykpIHtcbiAgJG46IGluZGV4KCRicmVha3BvaW50LW5hbWVzLCAkbmFtZSk7XG4gIEBpZiBub3QgJG4ge1xuICAgIEBlcnJvciBcImJyZWFrcG9pbnQgYCN7JG5hbWV9YCBub3QgZm91bmQgaW4gYCN7JGJyZWFrcG9pbnRzfWBcIjtcbiAgfVxuICBAcmV0dXJuIGlmKCRuIDwgbGVuZ3RoKCRicmVha3BvaW50LW5hbWVzKSwgbnRoKCRicmVha3BvaW50LW5hbWVzLCAkbiArIDEpLCBudWxsKTtcbn1cblxuLy8gTWluaW11bSBicmVha3BvaW50IHdpZHRoLiBOdWxsIGZvciB0aGUgc21hbGxlc3QgKGZpcnN0KSBicmVha3BvaW50LlxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtbWluKHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxuLy8gICAgNTc2cHhcbkBmdW5jdGlvbiBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJG5hbWUpO1xuICBAcmV0dXJuIGlmKCRtaW4gIT0gMCwgJG1pbiwgbnVsbCk7XG59XG5cbi8vIE1heGltdW0gYnJlYWtwb2ludCB3aWR0aC5cbi8vIFRoZSBtYXhpbXVtIHZhbHVlIGlzIHJlZHVjZWQgYnkgMC4wMnB4IHRvIHdvcmsgYXJvdW5kIHRoZSBsaW1pdGF0aW9ucyBvZlxuLy8gYG1pbi1gIGFuZCBgbWF4LWAgcHJlZml4ZXMgYW5kIHZpZXdwb3J0cyB3aXRoIGZyYWN0aW9uYWwgd2lkdGhzLlxuLy8gU2VlIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9tZWRpYXF1ZXJpZXMtNC8jbXEtbWluLW1heFxuLy8gVXNlcyAwLjAycHggcmF0aGVyIHRoYW4gMC4wMXB4IHRvIHdvcmsgYXJvdW5kIGEgY3VycmVudCByb3VuZGluZyBidWcgaW4gU2FmYXJpLlxuLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzgyNjFcbi8vXG4vLyAgICA+PiBicmVha3BvaW50LW1heChtZCwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcbi8vICAgIDc2Ny45OHB4XG5AZnVuY3Rpb24gYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1heDogbWFwLWdldCgkYnJlYWtwb2ludHMsICRuYW1lKTtcbiAgQHJldHVybiBpZigkbWF4IGFuZCAkbWF4ID4gMCwgJG1heCAtIC4wMiwgbnVsbCk7XG59XG5cbi8vIFJldHVybnMgYSBibGFuayBzdHJpbmcgaWYgc21hbGxlc3QgYnJlYWtwb2ludCwgb3RoZXJ3aXNlIHJldHVybnMgdGhlIG5hbWUgd2l0aCBhIGRhc2ggaW4gZnJvbnQuXG4vLyBVc2VmdWwgZm9yIG1ha2luZyByZXNwb25zaXZlIHV0aWxpdGllcy5cbi8vXG4vLyAgICA+PiBicmVha3BvaW50LWluZml4KHhzLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxuLy8gICAgXCJcIiAgKFJldHVybnMgYSBibGFuayBzdHJpbmcpXG4vLyAgICA+PiBicmVha3BvaW50LWluZml4KHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxuLy8gICAgXCItc21cIlxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtaW5maXgoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgQHJldHVybiBpZihicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzKSA9PSBudWxsLCBcIlwiLCBcIi0jeyRuYW1lfVwiKTtcbn1cblxuLy8gTWVkaWEgb2YgYXQgbGVhc3QgdGhlIG1pbmltdW0gYnJlYWtwb2ludCB3aWR0aC4gTm8gcXVlcnkgZm9yIHRoZSBzbWFsbGVzdCBicmVha3BvaW50LlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50IGFuZCB3aWRlci5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LXVwKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtaW46IGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuICBAaWYgJG1pbiB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gTWVkaWEgb2YgYXQgbW9zdCB0aGUgbWF4aW11bSBicmVha3BvaW50IHdpZHRoLiBObyBxdWVyeSBmb3IgdGhlIGxhcmdlc3QgYnJlYWtwb2ludC5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSB0byB0aGUgZ2l2ZW4gYnJlYWtwb2ludCBhbmQgbmFycm93ZXIuXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC1kb3duKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtYXg6IGJyZWFrcG9pbnQtbWF4KCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuICBAaWYgJG1heCB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gTWVkaWEgdGhhdCBzcGFucyBtdWx0aXBsZSBicmVha3BvaW50IHdpZHRocy5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSBiZXR3ZWVuIHRoZSBtaW4gYW5kIG1heCBicmVha3BvaW50c1xuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtYmV0d2VlbigkbG93ZXIsICR1cHBlciwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiBicmVha3BvaW50LW1pbigkbG93ZXIsICRicmVha3BvaW50cyk7XG4gICRtYXg6IGJyZWFrcG9pbnQtbWF4KCR1cHBlciwgJGJyZWFrcG9pbnRzKTtcblxuICBAaWYgJG1pbiAhPSBudWxsIGFuZCAkbWF4ICE9IG51bGwge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSBhbmQgKG1heC13aWR0aDogJG1heCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICRtYXggPT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkbG93ZXIsICRicmVha3BvaW50cykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICRtaW4gPT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKCR1cHBlciwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8gTWVkaWEgYmV0d2VlbiB0aGUgYnJlYWtwb2ludCdzIG1pbmltdW0gYW5kIG1heGltdW0gd2lkdGhzLlxuLy8gTm8gbWluaW11bSBmb3IgdGhlIHNtYWxsZXN0IGJyZWFrcG9pbnQsIGFuZCBubyBtYXhpbXVtIGZvciB0aGUgbGFyZ2VzdCBvbmUuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgb25seSB0byB0aGUgZ2l2ZW4gYnJlYWtwb2ludCwgbm90IHZpZXdwb3J0cyBhbnkgd2lkZXIgb3IgbmFycm93ZXIuXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC1vbmx5KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtaW46ICBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgJG5leHQ6IGJyZWFrcG9pbnQtbmV4dCgkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgJG1heDogIGJyZWFrcG9pbnQtbWF4KCRuZXh0KTtcblxuICBAaWYgJG1pbiAhPSBudWxsIGFuZCAkbWF4ICE9IG51bGwge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSBhbmQgKG1heC13aWR0aDogJG1heCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICRtYXggPT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkbmFtZSwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1pbiA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oJG5leHQsICRicmVha3BvaW50cykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG4iLCJAdXNlICdAYW5ndWxhci9jZGsnO1xuXG5AbWl4aW4gcmlwcGxlKCkge1xuICAvLyBUaGUgaG9zdCBlbGVtZW50IG9mIGFuIG1hdC1yaXBwbGUgZGlyZWN0aXZlIHNob3VsZCBhbHdheXMgaGF2ZSBhIHBvc2l0aW9uIG9mIFwiYWJzb2x1dGVcIiBvclxuICAvLyBcInJlbGF0aXZlXCIgc28gdGhhdCB0aGUgcmlwcGxlcyBpbnNpZGUgYXJlIGNvcnJlY3RseSBwb3NpdGlvbmVkIHJlbGF0aXZlbHkgdG8gdGhlIGNvbnRhaW5lci5cbiAgLm1hdC1yaXBwbGUge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAvLyBCeSBkZWZhdWx0LCBldmVyeSByaXBwbGUgY29udGFpbmVyIHNob3VsZCBoYXZlIHBvc2l0aW9uOiByZWxhdGl2ZSBpbiBmYXZvciBvZiBjcmVhdGluZyBhblxuICAgIC8vIGVhc3kgQVBJIGZvciBkZXZlbG9wZXJzIHVzaW5nIHRoZSBNYXRSaXBwbGUgZGlyZWN0aXZlLlxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIC8vIFByb21vdGUgY29udGFpbmVycyB0aGF0IGhhdmUgcmlwcGxlcyB0byBhIG5ldyBsYXllci4gV2Ugd2FudCB0byB0YXJnZXQgYDpub3QoOmVtcHR5KWAsXG4gICAgLy8gYmVjYXVzZSB3ZSBkb24ndCB3YW50IGFsbCByaXBwbGUgY29udGFpbmVycyB0byBoYXZlIHRoZWlyIG93biBsYXllciBzaW5jZSB0aGV5J3JlIHVzZWQgaW4gYVxuICAgIC8vIGxvdCBvZiBwbGFjZXMgYW5kIHRoZSBsYXllciBpcyBvbmx5IHJlbGV2YW50IHdoaWxlIGFuaW1hdGluZy4gTm90ZSB0aGF0IGlkZWFsbHkgd2UnZCB1c2VcbiAgICAvLyB0aGUgYGNvbnRhaW5gIHByb3BlcnR5IGhlcmUgKHNlZSAjMTMxNzUpLCBiZWNhdXNlIGA6ZW1wdHlgIGNhbiBiZSBicm9rZW4gYnkgaGF2aW5nIGV4dHJhXG4gICAgLy8gdGV4dCBpbnNpZGUgdGhlIGVsZW1lbnQsIGJ1dCBpdCBpc24ndCB2ZXJ5IHdlbGwgc3VwcG9ydGVkIHlldC5cbiAgICAmOm5vdCg6ZW1wdHkpIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcbiAgICB9XG4gIH1cblxuICAubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZCB7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIH1cblxuICAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSwgdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTtcblxuICAgIC8vIFdlIHVzZSBhIDNkIHRyYW5zZm9ybSBoZXJlIGluIG9yZGVyIHRvIGF2b2lkIGFuIGlzc3VlIGluIFNhZmFyaSB3aGVyZVxuICAgIC8vIHRoZSByaXBwbGVzIGFyZW4ndCBjbGlwcGVkIHdoZW4gaW5zaWRlIHRoZSBzaGFkb3cgRE9NIChzZWUgIzI0MDI4KS5cbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMCwgMCwgMCk7XG5cbiAgICAvLyBJbiBoaWdoIGNvbnRyYXN0IG1vZGUgdGhlIHJpcHBsZSBpcyBvcGFxdWUsIGNhdXNpbmcgaXQgdG8gb2JzdHJ1Y3QgdGhlIGNvbnRlbnQuXG4gICAgQGluY2x1ZGUgY2RrLmhpZ2gtY29udHJhc3QoYWN0aXZlLCBvZmYpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG4iLCIvLy8gRW1pdHMgYSBDU1MgY2xhc3MsIGAuY2RrLXZpc3VhbGx5LWhpZGRlbmAuIFRoaXMgY2xhc3MgY2FuIGJlIGFwcGxpZWQgdG8gYW4gZWxlbWVudFxuLy8vIHRvIG1ha2UgdGhhdCBlbGVtZW50IHZpc3VhbGx5IGhpZGRlbiB3aGlsZSByZW1haW5pbmcgYXZhaWxhYmxlIHRvIGFzc2lzdGl2ZSB0ZWNobm9sb2d5LlxuQG1peGluIGExMXktdmlzdWFsbHktaGlkZGVuKCkge1xuICAuY2RrLXZpc3VhbGx5LWhpZGRlbiB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgbWFyZ2luOiAtMXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDFweDtcblxuICAgIC8vIFRoaXMgd29ya3MgYXJvdW5kIGEgQ2hyb21lIGJ1ZyB0aGF0IGNhbiBjYXVzZSB0aGUgdGFiIHRvIGNyYXNoIHdoZW4gbGFyZ2UgYW1vdW50cyBvZlxuICAgIC8vIG5vbi1FbmdsaXNoIHRleHQgZ2V0IHdyYXBwZWQ6IGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC9jaHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTEyMDE0NDRcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgLy8gQXZvaWQgYnJvd3NlcnMgcmVuZGVyaW5nIHRoZSBmb2N1cyByaW5nIGluIHNvbWUgY2FzZXMuXG4gICAgb3V0bGluZTogMDtcblxuICAgIC8vIEF2b2lkIHNvbWUgY2FzZXMgd2hlcmUgdGhlIGJyb3dzZXIgd2lsbCBzdGlsbCByZW5kZXIgdGhlIG5hdGl2ZSBjb250cm9scyAoc2VlICM5MDQ5KS5cbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuXG4gICAgLy8gV2UgbmVlZCBhdCBsZWFzdCBvbmUgb2YgdG9wL2JvdHRvbS9sZWZ0L3JpZ2h0IGluIG9yZGVyIHRvIHByZXZlbnQgY2FzZXMgd2hlcmUgdGhlXG4gICAgLy8gYWJzb2x1dGUtcG9zaXRpb25lZCBlbGVtZW50IGlzIHB1c2hlZCBkb3duIGFuZCBjYW4gYWZmZWN0IHNjcm9sbGluZyAoc2VlICMyNDU5NykuXG4gICAgLy8gYGxlZnRgIHdhcyBjaG9zZW4gaGVyZSwgYmVjYXVzZSBpdCdzIHRoZSBsZWFzdCBsaWtlbHkgdG8gYnJlYWsgb3ZlcnJpZGVzIHdoZXJlIHRoZVxuICAgIC8vIGVsZW1lbnQgbWlnaHQgaGF2ZSBiZWVuIHBvc2l0aW9uZWQgKGUuZy4gYG1hdC1jaGVja2JveGApLlxuICAgIGxlZnQ6IDA7XG5cbiAgICBbZGlyPSdydGwnXSAmIHtcbiAgICAgIGxlZnQ6IGF1dG87XG4gICAgICByaWdodDogMDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEBkZXByZWNhdGVkIFVzZSBgYTExeS12aXN1YWxseS1oaWRkZW5gLlxuQG1peGluIGExMXkoKSB7XG4gIEBpbmNsdWRlIGExMXktdmlzdWFsbHktaGlkZGVuO1xufVxuXG4vLy8gRW1pdHMgdGhlIG1peGluJ3MgY29udGVudCBuZXN0ZWQgdW5kZXIgYCRzZWxlY3Rvci1jb250ZXh0YCBpZiBgJHNlbGVjdG9yLWNvbnRleHRgXG4vLy8gaXMgbm9uLWVtcHR5LlxuLy8vIEBwYXJhbSB7U3RyaW5nfSBzZWxlY3Rvci1jb250ZXh0IFRoZSBzZWxlY3RvciB1bmRlciB3aGljaCB0byBuZXN0IHRoZSBtaXhpbidzIGNvbnRlbnQuXG5AbWl4aW4gX29wdGlvbmFsbHktbmVzdC1jb250ZW50KCRzZWxlY3Rvci1jb250ZXh0KSB7XG4gIEBpZiAoJHNlbGVjdG9yLWNvbnRleHQgPT0gJycpIHtcbiAgICBAY29udGVudDtcbiAgfVxuICBAZWxzZSB7XG4gICAgI3skc2VsZWN0b3ItY29udGV4dH0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBcHBsaWVzIHN0eWxlcyBmb3IgdXNlcnMgaW4gaGlnaCBjb250cmFzdCBtb2RlLiBOb3RlIHRoYXQgdGhpcyBvbmx5IGFwcGxpZXNcbi8vLyB0byBNaWNyb3NvZnQgYnJvd3NlcnMuIENocm9tZSBjYW4gYmUgaW5jbHVkZWQgYnkgY2hlY2tpbmcgZm9yIHRoZSBgaHRtbFtoY11gXG4vLy8gYXR0cmlidXRlLCBob3dldmVyIENocm9tZSBoYW5kbGVzIGhpZ2ggY29udHJhc3QgZGlmZmVyZW50bHkuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gdGFyZ2V0IFR5cGUgb2YgaGlnaCBjb250cmFzdCBzZXR0aW5nIHRvIHRhcmdldC4gRGVmYXVsdHMgdG8gYGFjdGl2ZWAsIGNhbiBiZVxuLy8vICAgICBgd2hpdGUtb24tYmxhY2tgIG9yIGBibGFjay1vbi13aGl0ZWAuXG4vLy8gQHBhcmFtIHtTdHJpbmd9IGVuY2Fwc3VsYXRpb24gV2hldGhlciB0byBlbWl0IHN0eWxlcyBmb3IgdmlldyBlbmNhcHN1bGF0aW9uLiBWYWx1ZXMgYXJlOlxuLy8vICAgICAqIGBvbmAgLSB3b3JrcyBmb3IgYEVtdWxhdGVkYCwgYE5hdGl2ZWAsIGFuZCBgU2hhZG93RG9tYFxuLy8vICAgICAqIGBvZmZgIC0gd29ya3MgZm9yIGBOb25lYFxuLy8vICAgICAqIGBhbnlgIC0gd29ya3MgZm9yIGFsbCBlbmNhcHN1bGF0aW9uIG1vZGVzIGJ5IGVtaXR0aW5nIHRoZSBDU1MgdHdpY2UgKGRlZmF1bHQpLlxuQG1peGluIGhpZ2gtY29udHJhc3QoJHRhcmdldDogYWN0aXZlLCAkZW5jYXBzdWxhdGlvbjogJ2FueScpIHtcbiAgQGlmICgkdGFyZ2V0ICE9ICdhY3RpdmUnIGFuZCAkdGFyZ2V0ICE9ICdibGFjay1vbi13aGl0ZScgYW5kICR0YXJnZXQgIT0gJ3doaXRlLW9uLWJsYWNrJykge1xuICAgIEBlcnJvciAnVW5rbm93biBjZGstaGlnaC1jb250cmFzdCB2YWx1ZSBcIiN7JHRhcmdldH1cIiBwcm92aWRlZC4gJyArXG4gICAgICAgICAgICdBbGxvd2VkIHZhbHVlcyBhcmUgXCJhY3RpdmVcIiwgXCJibGFjay1vbi13aGl0ZVwiLCBhbmQgXCJ3aGl0ZS1vbi1ibGFja1wiJztcbiAgfVxuXG4gIEBpZiAoJGVuY2Fwc3VsYXRpb24gIT0gJ29uJyBhbmQgJGVuY2Fwc3VsYXRpb24gIT0gJ29mZicgYW5kICRlbmNhcHN1bGF0aW9uICE9ICdhbnknKSB7XG4gICAgQGVycm9yICdVbmtub3duIGNkay1oaWdoLWNvbnRyYXN0IGVuY2Fwc3VsYXRpb24gXCIjeyRlbmNhcHN1bGF0aW9ufVwiIHByb3ZpZGVkLiAnICtcbiAgICAgICAgICAgJ0FsbG93ZWQgdmFsdWVzIGFyZSBcIm9uXCIsIFwib2ZmXCIsIGFuZCBcImFueVwiJztcbiAgfVxuXG4gIC8vIElmIHRoZSBzZWxlY3RvciBjb250ZXh0IGhhcyBtdWx0aXBsZSBwYXJ0cywgc3VjaCBhcyBgLnNlY3Rpb24sIC5yZWdpb25gLCBqdXN0IGRvaW5nXG4gIC8vIGAuY2RrLWhpZ2gtY29udHJhc3QteHh4ICN7Jn1gIHdpbGwgb25seSBhcHBseSB0aGUgcGFyZW50IHNlbGVjdG9yIHRvIHRoZSBmaXJzdCBwYXJ0IG9mIHRoZVxuICAvLyBjb250ZXh0LiBXZSBhZGRyZXNzIHRoaXMgYnkgbmVzdGluZyB0aGUgc2VsZWN0b3IgY29udGV4dCB1bmRlciAuY2RrLWhpZ2gtY29udHJhc3QuXG4gIEBhdC1yb290IHtcbiAgICAkc2VsZWN0b3ItY29udGV4dDogI3smfTtcblxuICAgIEBpZiAoJGVuY2Fwc3VsYXRpb24gIT0gJ29uJykge1xuICAgICAgLy8gTm90ZSB0aGF0IGlmIHRoaXMgc2VsZWN0b3IgaXMgdXBkYXRlZCwgdGhlIHNhbWUgY2hhbmdlIGhhcyB0byBiZSBtYWRlIGluc2lkZVxuICAgICAgLy8gYF9vdmVybGF5LnNjc3NgIHdoaWNoIGNhbid0IGRlcGVuZCBvbiB0aGlzIG1peGluIGR1ZSB0byBzb21lIGluZnJhc3RydWN0dXJlIGxpbWl0YXRpb25zLlxuICAgICAgLmNkay1oaWdoLWNvbnRyYXN0LSN7JHRhcmdldH0ge1xuICAgICAgICBAaW5jbHVkZSBfb3B0aW9uYWxseS1uZXN0LWNvbnRlbnQoJHNlbGVjdG9yLWNvbnRleHQpIHtcbiAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAoJGVuY2Fwc3VsYXRpb24gIT0gJ29mZicpIHtcbiAgICAgIC5jZGstaGlnaC1jb250cmFzdC0jeyR0YXJnZXR9IDpob3N0IHtcbiAgICAgICAgQGluY2x1ZGUgX29wdGlvbmFsbHktbmVzdC1jb250ZW50KCRzZWxlY3Rvci1jb250ZXh0KSB7XG4gICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIFdlIHdhbnQgb3ZlcmxheXMgdG8gYWx3YXlzIGFwcGVhciBvdmVyIHVzZXIgY29udGVudCwgc28gc2V0IGEgYmFzZWxpbmVcbi8vIHZlcnkgaGlnaCB6LWluZGV4IGZvciB0aGUgb3ZlcmxheSBjb250YWluZXIsIHdoaWNoIGlzIHdoZXJlIHdlIGNyZWF0ZSB0aGUgbmV3XG4vLyBzdGFja2luZyBjb250ZXh0IGZvciBhbGwgb3ZlcmxheXMuXG4kb3ZlcmxheS1jb250YWluZXItei1pbmRleDogMTAwMCAhZGVmYXVsdDtcbiRvdmVybGF5LXotaW5kZXg6IDEwMDAgIWRlZmF1bHQ7XG4kb3ZlcmxheS1iYWNrZHJvcC16LWluZGV4OiAxMDAwICFkZWZhdWx0O1xuXG4vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciBhbGwgb2YgdGhlIGJhY2tkcm9wc1xuJG92ZXJsYXktYmFja2Ryb3AtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zMikgIWRlZmF1bHQ7XG5cbi8vIERlZmF1bHQgYmFja2Ryb3AgYW5pbWF0aW9uIGlzIGJhc2VkIG9uIHRoZSBNYXRlcmlhbCBEZXNpZ24gc3dpZnQtZWFzZS1vdXQuXG4kYmFja2Ryb3AtYW5pbWF0aW9uLWR1cmF0aW9uOiA0MDBtcyAhZGVmYXVsdDtcbiRiYWNrZHJvcC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKSAhZGVmYXVsdDtcblxuLy8vIEVtaXRzIHN0cnVjdHVyYWwgc3R5bGVzIHJlcXVpcmVkIGZvciBjZGsvb3ZlcmxheSB0byBmdW5jdGlvbi5cbkBtaXhpbiBvdmVybGF5KCkge1xuICAuY2RrLW92ZXJsYXktY29udGFpbmVyLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXIge1xuICAgIC8vIERpc2FibGUgZXZlbnRzIGZyb20gYmVpbmcgY2FwdHVyZWQgb24gdGhlIG92ZXJsYXkgY29udGFpbmVyLlxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgLy8gVGhlIGNvbnRhaW5lciBzaG91bGQgYmUgdGhlIHNpemUgb2YgdGhlIHZpZXdwb3J0LlxuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIC8vIFRoZSBvdmVybGF5LWNvbnRhaW5lciBpcyBhbiBpbnZpc2libGUgZWxlbWVudCB3aGljaCBjb250YWlucyBhbGwgaW5kaXZpZHVhbCBvdmVybGF5cy5cbiAgLmNkay1vdmVybGF5LWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHotaW5kZXg6ICRvdmVybGF5LWNvbnRhaW5lci16LWluZGV4O1xuXG4gICAgJjplbXB0eSB7XG4gICAgICAvLyBIaWRlIHRoZSBlbGVtZW50IHdoZW4gaXQgZG9lc24ndCBoYXZlIGFueSBjaGlsZCBub2Rlcy4gVGhpcyBkb2Vzbid0XG4gICAgICAvLyBpbmNsdWRlIG92ZXJsYXlzIHRoYXQgaGF2ZSBiZWVuIGRldGFjaGVkLCByYXRoZXIgdGhhbiBkaXNwb3NlZC5cbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLy8gV2UgdXNlIGFuIGV4dHJhIHdyYXBwZXIgZWxlbWVudCBpbiBvcmRlciB0byB1c2UgbWFrZSB0aGUgb3ZlcmxheSBpdHNlbGYgYSBmbGV4IGl0ZW0uXG4gIC8vIFRoaXMgbWFrZXMgY2VudGVyaW5nIHRoZSBvdmVybGF5IGVhc3kgd2l0aG91dCBydW5uaW5nIGludG8gdGhlIHN1YnBpeGVsIHJlbmRlcmluZ1xuICAvLyBwcm9ibGVtcyB0aWVkIHRvIHVzaW5nIGB0cmFuc2Zvcm1gIGFuZCB3aXRob3V0IGludGVyZmVyaW5nIHdpdGggdGhlIG90aGVyIHBvc2l0aW9uXG4gIC8vIHN0cmF0ZWdpZXMuXG4gIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogJG92ZXJsYXktei1pbmRleDtcbiAgfVxuXG4gIC8vIEEgc2luZ2xlIG92ZXJsYXkgcGFuZS5cbiAgLmNkay1vdmVybGF5LXBhbmUge1xuICAgIC8vIE5vdGU6IGl0J3MgaW1wb3J0YW50IGZvciB0aGlzIG9uZSB0byBzdGFydCBvZmYgYGFic29sdXRlYCxcbiAgICAvLyBpbiBvcmRlciBmb3IgdXMgdG8gYmUgYWJsZSB0byBtZWFzdXJlIGl0IGNvcnJlY3RseS5cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB6LWluZGV4OiAkb3ZlcmxheS16LWluZGV4O1xuXG4gICAgLy8gRm9yIGNvbm5lY3RlZC1wb3NpdGlvbiBvdmVybGF5cywgd2Ugc2V0IGBkaXNwbGF5OiBmbGV4YCBpblxuICAgIC8vIG9yZGVyIHRvIGZvcmNlIGBtYXgtd2lkdGhgIGFuZCBgbWF4LWhlaWdodGAgdG8gdGFrZSBlZmZlY3QuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbiAgfVxuXG4gIC5jZGstb3ZlcmxheS1iYWNrZHJvcCB7XG4gICAgLy8gVE9ETyhqZWxib3Vybik6IHJldXNlIHNpZGVuYXYgZnVsbHNjcmVlbiBtaXhpbi5cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuXG4gICAgei1pbmRleDogJG92ZXJsYXktYmFja2Ryb3Atei1pbmRleDtcbiAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgJGJhY2tkcm9wLWFuaW1hdGlvbi1kdXJhdGlvbiAkYmFja2Ryb3AtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjtcbiAgICBvcGFjaXR5OiAwO1xuXG4gICAgJi5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nIHtcbiAgICAgIG9wYWNpdHk6IDE7XG5cbiAgICAgIC8vIE5vdGUgdGhhdCB3ZSBjYW4ndCBpbXBvcnQgYW5kIHVzZSB0aGUgYGhpZ2gtY29udHJhc3RgIG1peGluIGZyb20gYF9hMTF5LnNjc3NgLCBiZWNhdXNlXG4gICAgICAvLyB0aGlzIGZpbGUgd2lsbCBiZSBjb3BpZWQgdG8gdGhlIHRvcC1sZXZlbCBgY2RrYCBwYWNrYWdlIHdoZW4gcHV0dGluZyB0b2dldGhlciB0aGUgZmlsZXNcbiAgICAgIC8vIGZvciBucG0uIEFueSByZWxhdGl2ZSBpbXBvcnQgcGF0aHMgd2UgdXNlIGhlcmUgd2lsbCBiZWNvbWUgaW52YWxpZCBvbmNlIHRoZSBmaWxlIGlzIGNvcGllZC5cbiAgICAgIC5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgJiB7XG4gICAgICAgIC8vIEluIGhpZ2ggY29udHJhc3QgbW9kZSB0aGUgcmdiYSBiYWNrZ3JvdW5kIHdpbGwgYmVjb21lIHNvbGlkXG4gICAgICAgIC8vIHNvIHdlIG5lZWQgdG8gZmFsbCBiYWNrIHRvIG1ha2luZyBpdCBvcGFxdWUgdXNpbmcgYG9wYWNpdHlgLlxuICAgICAgICBvcGFjaXR5OiAwLjY7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmNkay1vdmVybGF5LWRhcmstYmFja2Ryb3Age1xuICAgIGJhY2tncm91bmQ6ICRvdmVybGF5LWJhY2tkcm9wLWNvbG9yO1xuICB9XG5cbiAgLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wIHtcbiAgICAvLyBEZWZpbmUgYSB0cmFuc2l0aW9uIG9uIHRoZSB2aXNpYmlsaXR5IHNvIHRoYXQgdGhlIGB0cmFuc2l0aW9uZW5kYCBldmVudCBjYW4gZmlyZSBpbW1lZGlhdGVseS5cbiAgICB0cmFuc2l0aW9uOiB2aXNpYmlsaXR5IDFtcyBsaW5lYXIsIG9wYWNpdHkgMW1zIGxpbmVhcjtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgb3BhY2l0eTogMTtcblxuICAgIC8vIE5vdGU6IGFzIG9mIEZpcmVmb3ggNTcsIGhhdmluZyB0aGUgYmFja2Ryb3AgYmUgYGJhY2tncm91bmQ6IG5vbmVgIHdpbGwgcHJldmVudCBpdCBmcm9tXG4gICAgLy8gY2FwdHVyaW5nIHRoZSB1c2VyJ3MgbW91c2Ugc2Nyb2xsIGV2ZW50cy4gU2luY2Ugd2UgYWxzbyBjYW4ndCB1c2Ugc29tZXRoaW5nIGxpa2VcbiAgICAvLyBgcmdiYSgwLCAwLCAwLCAwKWAsIHdlIHdvcmsgYXJvdW5kIHRoZSBpbmNvbnNpc3RlbmN5IGJ5IG5vdCBzZXR0aW5nIHRoZSBiYWNrZ3JvdW5kIGF0XG4gICAgLy8gYWxsIGFuZCB1c2luZyBgb3BhY2l0eWAgdG8gbWFrZSB0aGUgZWxlbWVudCB0cmFuc3BhcmVudC5cbiAgICAmLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmcge1xuICAgICAgb3BhY2l0eTogMDtcbiAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgfVxuICB9XG5cbiAgLmNkay1vdmVybGF5LWJhY2tkcm9wLW5vb3AtYW5pbWF0aW9uIHtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICB9XG5cbiAgLy8gT3ZlcmxheSBwYXJlbnQgZWxlbWVudCB1c2VkIHdpdGggdGhlIGNvbm5lY3RlZCBwb3NpdGlvbiBzdHJhdGVneS4gVXNlZCB0byBjb25zdHJhaW4gdGhlXG4gIC8vIG92ZXJsYXkgZWxlbWVudCdzIHNpemUgdG8gZml0IHdpdGhpbiB0aGUgdmlld3BvcnQuXG4gIC5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogJG92ZXJsYXktei1pbmRleDtcblxuICAgIC8vIFdlIHVzZSBgZGlzcGxheTogZmxleGAgb24gdGhpcyBlbGVtZW50IGV4Y2x1c2l2ZWx5IGZvciBjZW50ZXJpbmcgY29ubmVjdGVkIG92ZXJsYXlzLlxuICAgIC8vIFdoZW4gKm5vdCogY2VudGVyaW5nLCBhIHRvcC9sZWZ0L2JvdHRvbS9yaWdodCB3aWxsIGJlIHNldCB3aGljaCBvdmVycmlkZXMgdGhlIG5vcm1hbFxuICAgIC8vIGZsZXggbGF5b3V0LlxuICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAvLyBXZSB1c2UgdGhlIGBjb2x1bW5gIGRpcmVjdGlvbiBoZXJlIHRvIGF2b2lkIHNvbWUgZmxleGJveCBpc3N1ZXMgaW4gRWRnZVxuICAgIC8vIHdoZW4gdXNpbmcgdGhlIFwiZ3JvdyBhZnRlciBvcGVuXCIgb3B0aW9ucy5cbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgLy8gQWRkIHNvbWUgZGltZW5zaW9ucyBzbyB0aGUgZWxlbWVudCBoYXMgYW4gYGlubmVyVGV4dGAgd2hpY2ggc29tZSBwZW9wbGUgZGVwZW5kIG9uIGluIHRlc3RzLlxuICAgIG1pbi13aWR0aDogMXB4O1xuICAgIG1pbi1oZWlnaHQ6IDFweDtcbiAgfVxuXG4gIC8vIFVzZWQgd2hlbiBkaXNhYmxpbmcgZ2xvYmFsIHNjcm9sbGluZy5cbiAgLmNkay1nbG9iYWwtc2Nyb2xsYmxvY2sge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcblxuICAgIC8vIE5lY2Vzc2FyeSBmb3IgdGhlIGNvbnRlbnQgbm90IHRvIGxvc2UgaXRzIHdpZHRoLiBOb3RlIHRoYXQgd2UncmUgdXNpbmcgMTAwJSwgaW5zdGVhZCBvZlxuICAgIC8vIDEwMHZ3LCBiZWNhdXNlIDEwMHZ3IGluY2x1ZGVzIHRoZSB3aWR0aCBwbHVzIHRoZSBzY3JvbGxiYXIsIHdoZXJlYXMgMTAwJSBpcyB0aGUgd2lkdGhcbiAgICAvLyB0aGF0IHRoZSBlbGVtZW50IGhhZCBiZWZvcmUgd2UgbWFkZSBpdCBgZml4ZWRgLlxuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgLy8gTm90ZTogdGhpcyB3aWxsIGFsd2F5cyBhZGQgYSBzY3JvbGxiYXIgdG8gd2hhdGV2ZXIgZWxlbWVudCBpdCBpcyBvbiwgd2hpY2ggY2FuXG4gICAgLy8gcG90ZW50aWFsbHkgcmVzdWx0IGluIGRvdWJsZSBzY3JvbGxiYXJzLiBJdCBzaG91bGRuJ3QgYmUgYW4gaXNzdWUsIGJlY2F1c2Ugd2Ugd29uJ3RcbiAgICAvLyBibG9jayBzY3JvbGxpbmcgb24gYSBwYWdlIHRoYXQgZG9lc24ndCBoYXZlIGEgc2Nyb2xsYmFyIGluIHRoZSBmaXJzdCBwbGFjZS5cbiAgICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gIH1cbn1cbiIsIi8vIFN0cnVjdHVyYWwgc3R5bGVzIGZvciB0aGUgYXV0b3NpemUgdGV4dCBmaWVsZHMuXG5AbWl4aW4gdGV4dC1maWVsZC1hdXRvc2l6ZSgpIHtcbiAgLy8gUmVtb3ZlIHRoZSByZXNpemUgaGFuZGxlIG9uIGF1dG9zaXppbmcgdGV4dGFyZWFzLCBiZWNhdXNlIHdoYXRldmVyIGhlaWdodFxuICAvLyB0aGUgdXNlciByZXNpemVkIHRvIHdpbGwgYmUgb3ZlcndyaXR0ZW4gb25jZSB0aGV5IHN0YXJ0IHR5cGluZyBhZ2Fpbi5cbiAgdGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplIHtcbiAgICByZXNpemU6IG5vbmU7XG4gIH1cblxuICAvLyBUaGlzIGNsYXNzIGlzIHRlbXBvcmFyaWx5IGFwcGxpZWQgdG8gdGhlIHRleHRhcmVhIHdoZW4gaXQgaXMgYmVpbmcgbWVhc3VyZWQuIEl0IGlzIGltbWVkaWF0ZWx5XG4gIC8vIHJlbW92ZWQgd2hlbiBtZWFzdXJpbmcgaXMgY29tcGxldGUuIFdlIHVzZSBgIWltcG9ydGFudGAgcnVsZXMgaGVyZSB0byBtYWtlIHN1cmUgdXNlci1zcGVjaWZpZWRcbiAgLy8gcnVsZXMgZG8gbm90IGludGVyZmVyZSB3aXRoIHRoZSBtZWFzdXJlbWVudC5cbiAgdGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZyB7XG4gICAgQGluY2x1ZGUgX2F1dG9zaXplLW1lYXN1cmluZy1iYXNlO1xuICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgfVxuXG4gIC8vIFNpbWlsYXIgdG8gdGhlIGBjZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nYCBjbGFzcywgYnV0IG9ubHkgYXBwbGllZCBvbiBGaXJlZm94LiBXZSBuZWVkXG4gIC8vIHRvIHVzZSB0aGlzIGNsYXNzLCBiZWNhdXNlIEZpcmVmb3ggaGFzIGEgYnVnIHdoZXJlIGNoYW5naW5nIHRoZSBgb3ZlcmZsb3dgIGJyZWFrcyB0aGUgdXNlcidzXG4gIC8vIGFiaWxpdHkgdG8gdW5kby9yZWRvIHdoYXQgdGhleSB3ZXJlIHR5cGluZyAoc2VlICMxNjYyOSkuIFRoaXMgY2xhc3MgaXMgb25seSBzY29wZWQgdG8gRmlyZWZveCxcbiAgLy8gYmVjYXVzZSB0aGUgbWVhc3VyZW1lbnRzIHRoZXJlIGRvbid0IHNlZW0gdG8gYmUgYWZmZWN0ZWQgYnkgdGhlIGBoZWlnaHQ6IDBgLCB3aGVyZWFzIG9uIG90aGVyXG4gIC8vIGJyb3dzZXJzIHRoZXkgYXJlLCBlLmcuIENocm9tZSBkZXRlY3RzIGxvbmdlciB0ZXh0IGFuZCBJRSBkb2VzJ3QgcmVzaXplIGJhY2sgdG8gbm9ybWFsLlxuICAvLyBJZGVudGljYWwgaXNzdWUgcmVwb3J0OiBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD00NDg3ODRcbiAgdGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZy1maXJlZm94IHtcbiAgICBAaW5jbHVkZSBfYXV0b3NpemUtbWVhc3VyaW5nLWJhc2U7XG4gICAgaGVpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLy8gQ29yZSBzdHlsZXMgdGhhdCBlbmFibGUgbW9uaXRvcmluZyBhdXRvZmlsbCBzdGF0ZSBvZiB0ZXh0IGZpZWxkcy5cbkBtaXhpbiB0ZXh0LWZpZWxkLWF1dG9maWxsKCkge1xuICAvLyBLZXlmcmFtZXMgdGhhdCBhcHBseSBubyBzdHlsZXMsIGJ1dCBhbGxvdyB1cyB0byBtb25pdG9yIHdoZW4gYW4gdGV4dCBmaWVsZCBiZWNvbWVzIGF1dG9maWxsZWRcbiAgLy8gYnkgd2F0Y2hpbmcgZm9yIHRoZSBhbmltYXRpb24gZXZlbnRzIHRoYXQgYXJlIGZpcmVkIHdoZW4gdGhleSBzdGFydC4gTm90ZTogdGhlIC8qISovIGNvbW1lbnQgaXNcbiAgLy8gbmVlZGVkIHRvIHByZXZlbnQgTGliU2FzcyBmcm9tIHN0cmlwcGluZyB0aGUga2V5ZnJhbWVzIG91dC5cbiAgLy8gQmFzZWQgb246IGh0dHBzOi8vbWVkaXVtLmNvbS9AYnJ1bm4vZGV0ZWN0aW5nLWF1dG9maWxsZWQtZmllbGRzLWluLWphdmFzY3JpcHQtYWVkNTk4ZDI1ZGE3XG4gIEBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQgey8qISovfVxuICBAa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCB7LyohKi99XG5cbiAgLmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZDotd2Via2l0LWF1dG9maWxsIHtcbiAgICAvLyBTaW5jZSBDaHJvbWUgODAgd2UgbmVlZCBhIDFtcyBkZWxheSwgb3IgdGhlIGFuaW1hdGlvbnN0YXJ0IGV2ZW50IHdvbid0IGZpcmUuXG4gICAgYW5pbWF0aW9uOiBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCAwcyAxbXM7XG4gIH1cblxuICAuY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCkge1xuICAgIC8vIFNpbmNlIENocm9tZSA4MCB3ZSBuZWVkIGEgMW1zIGRlbGF5LCBvciB0aGUgYW5pbWF0aW9uc3RhcnQgZXZlbnQgd29uJ3QgZmlyZS5cbiAgICBhbmltYXRpb246IGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCAwcyAxbXM7XG4gIH1cbn1cblxuQG1peGluIF9hdXRvc2l6ZS1tZWFzdXJpbmctYmFzZSB7XG4gIC8vIEhhdmluZyAycHggdG9wIGFuZCBib3R0b20gcGFkZGluZyBzZWVtcyB0byBmaXggYSBidWcgd2hlcmUgQ2hyb21lIGdldHMgYW4gaW5jb3JyZWN0XG4gIC8vIG1lYXN1cmVtZW50LiBXZSBqdXN0IGhhdmUgdG8gYWNjb3VudCBmb3IgaXQgbGF0ZXIgYW5kIHN1YnRyYWN0IGl0IG9mZiB0aGUgZmluYWwgcmVzdWx0LlxuICBwYWRkaW5nOiAycHggMCAhaW1wb3J0YW50O1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveCAhaW1wb3J0YW50O1xufVxuXG4vLyBVc2VkIHRvIGdlbmVyYXRlIFVJRHMgZm9yIGtleWZyYW1lcyB1c2VkIHRvIGNoYW5nZSB0aGUgdGV4dCBmaWVsZCBhdXRvZmlsbCBzdHlsZXMuXG4kYXV0b2ZpbGwtY29sb3ItZnJhbWUtY291bnQ6IDA7XG5cbi8vIE1peGluIHVzZWQgdG8gYXBwbHkgY3VzdG9tIGJhY2tncm91bmQgYW5kIGZvcmVncm91bmQgY29sb3JzIHRvIGFuIGF1dG9maWxsZWQgdGV4dCBmaWVsZC5cbi8vIEJhc2VkIG9uOiBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8yNzgxNTQ5L1xuLy8gcmVtb3ZpbmctaW5wdXQtYmFja2dyb3VuZC1jb2xvdXItZm9yLWNocm9tZS1hdXRvY29tcGxldGUjYW5zd2VyLTM3NDMyMjYwXG5AbWl4aW4gdGV4dC1maWVsZC1hdXRvZmlsbC1jb2xvcigkYmFja2dyb3VuZCwgJGZvcmVncm91bmQ6JycpIHtcbiAgQGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1jb2xvci0jeyRhdXRvZmlsbC1jb2xvci1mcmFtZS1jb3VudH0ge1xuICAgIHRvIHtcbiAgICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgICAgQGlmICRmb3JlZ3JvdW5kICE9ICcnIHsgY29sb3I6ICRmb3JlZ3JvdW5kOyB9XG4gICAgfVxuICB9XG5cbiAgJjotd2Via2l0LWF1dG9maWxsIHtcbiAgICBhbmltYXRpb246IGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yLSN7JGF1dG9maWxsLWNvbG9yLWZyYW1lLWNvdW50fSBib3RoO1xuICB9XG5cbiAgJi5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWQ6LXdlYmtpdC1hdXRvZmlsbCB7XG4gICAgLy8gU2luY2UgQ2hyb21lIDgwIHdlIG5lZWQgYSAxbXMgZGVsYXkgZm9yIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0LCBvciB0aGUgYW5pbWF0aW9uc3RhcnRcbiAgICAvLyBldmVudCB3b24ndCBmaXJlLlxuICAgIGFuaW1hdGlvbjogY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQgMHMgMW1zLFxuICAgICAgICAgICAgICAgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtY29sb3ItI3skYXV0b2ZpbGwtY29sb3ItZnJhbWUtY291bnR9IGJvdGg7XG4gIH1cblxuICAkYXV0b2ZpbGwtY29sb3ItZnJhbWUtY291bnQ6ICRhdXRvZmlsbC1jb2xvci1mcmFtZS1jb3VudCArIDEgIWdsb2JhbDtcbn1cblxuLy8gQGRlcHJlY2F0ZWQgVXNlIGBhdXRvc2l6ZWAgYW5kIGBhdXRvZmlsbGAgaW5zdGVhZC5cbkBtaXhpbiB0ZXh0LWZpZWxkIHtcbiAgQGluY2x1ZGUgdGV4dC1maWVsZC1hdXRvc2l6ZSgpO1xuICBAaW5jbHVkZSB0ZXh0LWZpZWxkLWF1dG9maWxsKCk7XG59XG4iLCJAdXNlICdzYXNzOm1hcCc7XG5AdXNlICdzYXNzOm1ldGEnO1xuQHVzZSAnQGFuZ3VsYXIvY2RrJztcbkB1c2UgJy4uL3N0eWxlL2xheW91dC1jb21tb24nO1xuQHVzZSAnLi4vdGhlbWluZy90aGVtaW5nJztcbkB1c2UgJy4uL3RoZW1pbmcvaW5zcGVjdGlvbic7XG5cbi8vIFByaXZhdGUgc2FzcyB2YXJpYWJsZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgcmVmZXJlbmNlIHRocm91Z2hvdXQgY29tcG9uZW50IHN0eWxlc2hlZXRzLlxuJGRlZmF1bHQtYm9yZGVyLXdpZHRoOiAzcHg7XG4kZGVmYXVsdC1ib3JkZXItc3R5bGU6IHNvbGlkO1xuJGRlZmF1bHQtYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiRkZWZhdWx0LWJvcmRlci1yYWRpdXM6IDRweDtcblxuLy8gTWl4aW4gdGhhdCByZW5kZXJzIHRoZSBmb2N1cyBpbmRpY2F0b3Igc3RydWN0dXJhbCBzdHlsZXMuXG5AbWl4aW4gc3RydWN0dXJhbC1zdHlsaW5nKCRwcmVmaXgpIHtcbiAgLiN7JHByZWZpeH0tZm9jdXMtaW5kaWNhdG9yIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgQGluY2x1ZGUgbGF5b3V0LWNvbW1vbi5maWxsKCk7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICBkaXNwbGF5OiB2YXIoLS0jeyRwcmVmaXh9LWZvY3VzLWluZGljYXRvci1kaXNwbGF5LCBub25lKTsgLy8gSGlkZSB0aGUgaW5kaWNhdG9yIGJ5IGRlZmF1bHQuXG4gICAgICBib3JkZXI6IHZhcihcbiAgICAgICAgICAtLSN7JHByZWZpeH0tZm9jdXMtaW5kaWNhdG9yLWJvcmRlci13aWR0aCxcbiAgICAgICAgICAjeyRkZWZhdWx0LWJvcmRlci13aWR0aH1cbiAgICAgICAgKVxuICAgICAgICB2YXIoXG4gICAgICAgICAgLS0jeyRwcmVmaXh9LWZvY3VzLWluZGljYXRvci1ib3JkZXItc3R5bGUsXG4gICAgICAgICAgI3skZGVmYXVsdC1ib3JkZXItc3R5bGV9XG4gICAgICAgIClcbiAgICAgICAgdmFyKFxuICAgICAgICAgIC0tI3skcHJlZml4fS1mb2N1cy1pbmRpY2F0b3ItYm9yZGVyLWNvbG9yLFxuICAgICAgICAgICN7JGRlZmF1bHQtYm9yZGVyLWNvbG9yfVxuICAgICAgICApO1xuICAgICAgYm9yZGVyLXJhZGl1czogdmFyKFxuICAgICAgICAtLSN7JHByZWZpeH0tZm9jdXMtaW5kaWNhdG9yLWJvcmRlci1yYWRpdXMsXG4gICAgICAgICN7JGRlZmF1bHQtYm9yZGVyLXJhZGl1c31cbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gQnkgZGVmYXVsdCwgcmVuZGVyIHRoZSBmb2N1cyBpbmRpY2F0b3Igd2hlbiB0aGUgZm9jdXMgaW5kaWNhdG9yIGhvc3QgZWxlbWVudCB0YWtlcyBmb2N1cy5cbiAgICAvLyBEZWZpbmluZyBhIHBzZXVkbyBlbGVtZW50J3MgY29udGVudCB3aWxsIGNhdXNlIGl0IHRvIHJlbmRlci5cbiAgICAmOmZvY3VzOjpiZWZvcmUge1xuICAgICAgY29udGVudDogJyc7XG4gICAgfVxuICB9XG5cbiAgLy8gRW5hYmxlIHRoZSBpbmRpY2F0b3IgaW4gaGlnaCBjb250cmFzdCBtb2RlLlxuICBAaW5jbHVkZSBjZGsuaGlnaC1jb250cmFzdChhY3RpdmUsIG9mZikge1xuICAgIEBpbmNsdWRlIGN1c3RvbWl6ZS1mb2N1cy1pbmRpY2F0b3JzKChkaXNwbGF5OiBibG9jayksICRwcmVmaXgpO1xuICB9XG59XG5cbi8vIEdlbmVyYXRlcyBDU1MgdmFyaWFibGUgZGVjbGFyYXRpb25zIGZyb20gYSBtYXAuXG5AbWl4aW4gX291dHB1dC12YXJpYWJsZXMoJG1hcCkge1xuICBAZWFjaCAka2V5LCAkdmFsdWUgaW4gJG1hcCB7XG4gICAgQGlmICgkdmFsdWUpIHtcbiAgICAgIC0tI3ska2V5fTogI3skdmFsdWV9O1xuICAgIH1cbiAgfVxufVxuXG4vLyBNaXhpbiB0aGF0IGRlZHVwcyBDU1MgdmFyaWFibGVzIGZvciB0aGUgc3Ryb25nLWZvY3VzLWluZGljYXRvcnMgbWl4aW4uXG5AbWl4aW4gY3VzdG9taXplLWZvY3VzLWluZGljYXRvcnMoJGNvbmZpZywgJHByZWZpeCkge1xuICAkYm9yZGVyLXN0eWxlOiBtYXAuZ2V0KCRjb25maWcsIGJvcmRlci1zdHlsZSk7XG4gICRib3JkZXItd2lkdGg6IG1hcC5nZXQoJGNvbmZpZywgYm9yZGVyLXdpZHRoKTtcbiAgJGJvcmRlci1yYWRpdXM6IG1hcC5nZXQoJGNvbmZpZywgYm9yZGVyLXJhZGl1cyk7XG4gICRib3JkZXItY29sb3I6IG1hcC5nZXQoJGNvbmZpZywgYm9yZGVyLWNvbG9yKTtcbiAgJGRpc3BsYXk6IG1hcC5nZXQoJGNvbmZpZywgZGlzcGxheSk7XG4gICRtYXA6IChcbiAgICAnI3skcHJlZml4fS1mb2N1cy1pbmRpY2F0b3ItYm9yZGVyLXN0eWxlJzogJGJvcmRlci1zdHlsZSxcbiAgICAnI3skcHJlZml4fS1mb2N1cy1pbmRpY2F0b3ItYm9yZGVyLXdpZHRoJzogJGJvcmRlci13aWR0aCxcbiAgICAnI3skcHJlZml4fS1mb2N1cy1pbmRpY2F0b3ItYm9yZGVyLXJhZGl1cyc6ICRib3JkZXItcmFkaXVzLFxuICAgICcjeyRwcmVmaXh9LWZvY3VzLWluZGljYXRvci1ib3JkZXItY29sb3InOiAkYm9yZGVyLWNvbG9yLFxuICAgICcjeyRwcmVmaXh9LWZvY3VzLWluZGljYXRvci1kaXNwbGF5JzogJGRpc3BsYXksXG4gICk7XG5cbiAgQGlmICgmKSB7XG4gICAgQGluY2x1ZGUgX291dHB1dC12YXJpYWJsZXMoJG1hcCk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIC8vIFdlIHVzZSBgaHRtbGAgaGVyZSBpbnN0ZWFkIG9mIGA6cm9vdGAsIGJlY2F1c2UgdGhlXG4gICAgLy8gbGF0dGVyIGNhdXNlcyBzb21lIGlzc3VlcyB3aXRoIGludGVybmFsIHRvb2xpbmcuXG4gICAgaHRtbCB7XG4gICAgICBAaW5jbHVkZSBfb3V0cHV0LXZhcmlhYmxlcygkbWFwKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHN0cm9uZy1mb2N1cy1pbmRpY2F0b3JzKCRjb25maWc6ICgpKSB7XG4gIC8vIERlZmF1bHQgZm9jdXMgaW5kaWNhdG9yIGNvbmZpZy5cbiAgJGRlZmF1bHQtY29uZmlnOiAoXG4gICAgICBib3JkZXItY29sb3I6IGJsYWNrLFxuICAgICAgZGlzcGxheTogYmxvY2ssXG4gICk7XG5cbiAgLy8gTWVyZ2UgZGVmYXVsdCBjb25maWcgd2l0aCB1c2VyIGNvbmZpZy5cbiAgJGNvbmZpZzogbWFwLm1lcmdlKCRkZWZhdWx0LWNvbmZpZywgJGNvbmZpZyk7XG5cbiAgQGluY2x1ZGUgY3VzdG9taXplLWZvY3VzLWluZGljYXRvcnMoJGNvbmZpZywgJ21hdCcpO1xufVxuXG5AbWl4aW4gbWRjLXN0cm9uZy1mb2N1cy1pbmRpY2F0b3JzKCRjb25maWc6ICgpKSB7XG4gIC8vIERlZmF1bHQgZm9jdXMgaW5kaWNhdG9yIGNvbmZpZy5cbiAgJGRlZmF1bHQtY29uZmlnOiAoXG4gICAgICBib3JkZXItY29sb3I6IGJsYWNrLFxuICAgICAgZGlzcGxheTogYmxvY2ssXG4gICk7XG5cbiAgLy8gTWVyZ2UgZGVmYXVsdCBjb25maWcgd2l0aCB1c2VyIGNvbmZpZy5cbiAgJGNvbmZpZzogbWFwLm1lcmdlKCRkZWZhdWx0LWNvbmZpZywgJGNvbmZpZyk7XG5cbiAgQGluY2x1ZGUgY3VzdG9taXplLWZvY3VzLWluZGljYXRvcnMoJGNvbmZpZywgJ21hdC1tZGMnKTtcbn1cblxuQG1peGluIHN0cm9uZy1mb2N1cy1pbmRpY2F0b3JzLWNvbG9yKCR0aGVtZS1vci1jb2xvcikge1xuICBAaWYgbWV0YS50eXBlLW9mKCR0aGVtZS1vci1jb2xvcikgPT0gJ2NvbG9yJyB7XG4gICAgQGluY2x1ZGUgY3VzdG9taXplLWZvY3VzLWluZGljYXRvcnMoKFxuICAgICAgICBib3JkZXItY29sb3I6ICR0aGVtZS1vci1jb2xvclxuICAgICksICdtYXQnKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgJGJvcmRlci1jb2xvcjogaW5zcGVjdGlvbi5nZXQtdGhlbWUtY29sb3IoJHRoZW1lLW9yLWNvbG9yLCBwcmltYXJ5KTtcbiAgICBAaW5jbHVkZSBjdXN0b21pemUtZm9jdXMtaW5kaWNhdG9ycygoXG4gICAgICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvclxuICAgICksICdtYXQnKTtcbiAgfVxufVxuXG5AbWl4aW4gc3Ryb25nLWZvY3VzLWluZGljYXRvcnMtdGhlbWUoJHRoZW1lLW9yLWNvbG9yKSB7XG4gIEBpZiBtZXRhLnR5cGUtb2YoJHRoZW1lLW9yLWNvbG9yKSA9PSAnY29sb3InIHtcbiAgICBAaW5jbHVkZSBjdXN0b21pemUtZm9jdXMtaW5kaWNhdG9ycygoXG4gICAgICAgIGJvcmRlci1jb2xvcjogJHRoZW1lLW9yLWNvbG9yXG4gICAgKSwgJ21hdCcpO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAaW5jbHVkZSB0aGVtaW5nLnByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUtb3ItY29sb3IsICdtYXQtZm9jdXMtaW5kaWNhdG9ycycpIHtcbiAgICAgIEBpZiBpbnNwZWN0aW9uLnRoZW1lLWhhcygkdGhlbWUtb3ItY29sb3IsIGNvbG9yKSB7XG4gICAgICAgIEBpbmNsdWRlIHN0cm9uZy1mb2N1cy1pbmRpY2F0b3JzLWNvbG9yKCR0aGVtZS1vci1jb2xvcik7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZGMtc3Ryb25nLWZvY3VzLWluZGljYXRvcnMtY29sb3IoJHRoZW1lLW9yLWNvbG9yKSB7XG4gIEBpZiBtZXRhLnR5cGUtb2YoJHRoZW1lLW9yLWNvbG9yKSA9PSAnY29sb3InIHtcbiAgICBAaW5jbHVkZSBjdXN0b21pemUtZm9jdXMtaW5kaWNhdG9ycygoXG4gICAgICAgIGJvcmRlci1jb2xvcjogJHRoZW1lLW9yLWNvbG9yXG4gICAgKSwgJ21hdC1tZGMnKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgJGJvcmRlci1jb2xvcjogaW5zcGVjdGlvbi5nZXQtdGhlbWUtY29sb3IoJHRoZW1lLW9yLWNvbG9yLCBwcmltYXJ5KTtcbiAgICBAaW5jbHVkZSBjdXN0b21pemUtZm9jdXMtaW5kaWNhdG9ycygoXG4gICAgICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvclxuICAgICksICdtYXQtbWRjJyk7XG4gIH1cbn1cblxuQG1peGluIG1kYy1zdHJvbmctZm9jdXMtaW5kaWNhdG9ycy10aGVtZSgkdGhlbWUtb3ItY29sb3IpIHtcbiAgQGlmIG1ldGEudHlwZS1vZigkdGhlbWUtb3ItY29sb3IpID09ICdjb2xvcicge1xuICAgIEBpbmNsdWRlIGN1c3RvbWl6ZS1mb2N1cy1pbmRpY2F0b3JzKChcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkdGhlbWUtb3ItY29sb3JcbiAgICApLCAnbWF0LW1kYycpO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAaW5jbHVkZSB0aGVtaW5nLnByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcyhcbiAgICAgICAgJHRoZW1lLW9yLWNvbG9yLCAnbWF0LW1kYy1mb2N1cy1pbmRpY2F0b3JzJykge1xuICAgICAgQGlmIGluc3BlY3Rpb24udGhlbWUtaGFzKCR0aGVtZS1vci1jb2xvciwgY29sb3IpIHtcbiAgICAgICAgQGluY2x1ZGUgbWRjLXN0cm9uZy1mb2N1cy1pbmRpY2F0b3JzLWNvbG9yKCR0aGVtZS1vci1jb2xvcik7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBUaGlzIG1peGluIGVuc3VyZXMgYW4gZWxlbWVudCBzcGFucyB0byBmaWxsIHRoZSBuZWFyZXN0IGFuY2VzdG9yIHdpdGggZGVmaW5lZCBwb3NpdGlvbmluZy5cbkBtaXhpbiBmaWxsIHtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG4iLCJAdXNlICdzYXNzOmNvbG9yJztcbkB1c2UgJ3Nhc3M6bWFwJztcbkB1c2UgJ3Nhc3M6bWV0YSc7XG5cbi8vLyBJbmNsdWRlIGNvbnRlbnQgdW5kZXIgdGhlIGN1cnJlbnQgc2VsZWN0b3IgKCYpIG9yIHRoZSBkb2N1bWVudCByb290IGlmIHRoZXJlIGlzIG5vIGN1cnJlbnRcbi8vLyBzZWxlY3Rvci5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHJvb3QgW2h0bWxdIFRoZSBkZWZhdWx0IHJvb3Qgc2VsZWN0b3IgdG8gdXNlIHdoZW4gdGhlcmUgaXMgbm8gY3VycmVudCBzZWxlY3Rvci5cbi8vLyBAb3V0cHV0IFRoZSBnaXZlbiBjb250ZW50IHVuZGVyIHRoZSBjdXJyZW50IHNlbGVjdG9yLCBvciByb290IHNlbGVjdG9yIGlmIHRoZXJlIGlzIG5vIGN1cnJlbnRcbi8vLyAgICAgc2VsZWN0b3IuXG4vLy8gQGNvbnRlbnQgQ29udGVudCB0byBvdXRwdXQgdW5kZXIgdGhlIGN1cnJlbnQgc2VsZWN0b3IsIG9yIHJvb3Qgc2VsZWN0b3IgaWYgdGhlcmUgaXMgbm8gY3VycmVudFxuLy8vICAgICBzZWxlY3Rvci5cbkBtaXhpbiBjdXJyZW50LXNlbGVjdG9yLW9yLXJvb3QoJHJvb3Q6IGh0bWwpIHtcbiAgQGlmICYge1xuICAgIEBjb250ZW50O1xuICB9XG4gIEBlbHNlIHtcbiAgICAjeyRyb290fSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEEgdmVyc2lvbiBvZiB0aGUgc3RhbmRhcmQgYG1hcC5tZXJnZWAgZnVuY3Rpb24gdGhhdCB0YWtlcyBhIHZhcmlhYmxlIG51bWJlciBvZiBhcmd1bWVudHMuXG4vLy8gRWFjaCBhcmd1bWVudCBpcyBtZXJnZWQgaW50byB0aGUgZmluYWwgcmVzdWx0IGZyb20gbGVmdCB0byByaWdodC5cbi8vLyBAcGFyYW0ge0xpc3R9ICRtYXBzIFRoZSBtYXBzIHRvIGNvbWJpbmUgd2l0aCBtYXAubWVyZ2Vcbi8vLyBAcmV0dXJuIHtNYXB9IFRoZSBjb21iaW5lZCByZXN1bHQgb2Ygc3VjY2Vzc2l2ZWx5IGNhbGxpbmcgbWFwLm1lcmdlIHdpdGggZWFjaCBwYXJhbWV0ZXIuXG5AZnVuY3Rpb24gbWVyZ2UtYWxsKCRtYXBzLi4uKSB7XG4gICRyZXN1bHQ6ICgpO1xuICBAZWFjaCAkbWFwIGluICRtYXBzIHtcbiAgICAkcmVzdWx0OiBtYXAubWVyZ2UoJHJlc3VsdCwgJG1hcCk7XG4gIH1cbiAgQHJldHVybiAkcmVzdWx0O1xufVxuXG4vLy8gQSB2ZXJzaW9uIG9mIHRoZSBzdGFuZGFyZCBgbWFwLmRlZXAtbWVyZ2VgIGZ1bmN0aW9uIHRoYXQgdGFrZXMgYSB2YXJpYWJsZSBudW1iZXIgb2YgYXJndW1lbnRzLlxuLy8vIEVhY2ggYXJndW1lbnQgaXMgZGVlcC1tZXJnZWQgaW50byB0aGUgZmluYWwgcmVzdWx0IGZyb20gbGVmdCB0byByaWdodC5cbi8vLyBAcGFyYW0ge0xpc3R9ICRtYXBzIFRoZSBtYXBzIHRvIGNvbWJpbmUgd2l0aCBtYXAuZGVlcC1tZXJnZVxuLy8vIEByZXR1cm4ge01hcH0gVGhlIGNvbWJpbmVkIHJlc3VsdCBvZiBzdWNjZXNzaXZlbHkgY2FsbGluZyBtYXAuZGVlcC1tZXJnZSB3aXRoIGVhY2ggcGFyYW1ldGVyLlxuQGZ1bmN0aW9uIGRlZXAtbWVyZ2UtYWxsKCRtYXBzLi4uKSB7XG4gICRyZXN1bHQ6ICgpO1xuICBAZWFjaCAkbWFwIGluICRtYXBzIHtcbiAgICAkcmVzdWx0OiBtYXAuZGVlcC1tZXJnZSgkcmVzdWx0LCAkbWFwKTtcbiAgfVxuICBAcmV0dXJuICRyZXN1bHQ7XG59XG5cbi8vLyBDb2VyY2VzIHRoZSBnaXZlbiB2YWx1ZSB0byBhIGxpc3QsIGJ5IGNvbnZlcnRpbmcgYW55IG5vbi1saXN0IHZhbHVlIGludG8gYSBzaW5nbGUtaXRlbSBsaXN0LlxuLy8vIFRoaXMgc2hvdWxkIGJlIHVzZWQgd2hlbiBkZWFsaW5nIHdpdGggdXNlci1wYXNzZWQgbGlzdHMgb2YgYXJncyB0byBhdm9pZCBjb25mdXNpbmcgZXJyb3JzLFxuLy8vIHNpbmNlIFNhc3MgdHJlYXRzIGAoJHgpYCBhcyBlcXVpdmFsZW50IHRvIGAkeGAuXG4vLy8gQHBhcmFtIHtBbnl9ICR2YWx1ZSBUaGUgdmFsdWUgdG8gY29lcmNlIHRvIGEgbGlzdC5cbi8vLyBAcmV0dXJuIHtMaXN0fSBUaGUgb3JpZ2luYWwgJHZhbHVlIGlmIGl0IHdhcyBhIGxpc3QsIG90aGVyd2lzZSBhIHNpbmdsZS1pdGVtIGxpc3QgY29udGFpbmluZ1xuLy8vICAgICAkdmFsdWUuXG5AZnVuY3Rpb24gY29lcmNlLXRvLWxpc3QoJHZhbHVlKSB7XG4gIEByZXR1cm4gaWYobWV0YS50eXBlLW9mKCR2YWx1ZSkgIT0gJ2xpc3QnLCAoJHZhbHVlLCksICR2YWx1ZSk7XG59XG5cbi8vLyBBIHZlcnNpb24gb2YgdGhlIFNhc3MgYGNvbG9yLmNoYW5nZWAgZnVuY3Rpb24gdGhhdCBpcyBzYWZlIG90IHVzZSB3aXRoIENTUyB2YXJpYWJsZXMuXG5AZnVuY3Rpb24gc2FmZS1jb2xvci1jaGFuZ2UoJGNvbG9yLCAkYXJncy4uLikge1xuICAkYXJnczogbWV0YS5rZXl3b3JkcygkYXJncyk7XG4gIEByZXR1cm4gaWYobWV0YS50eXBlLW9mKCRjb2xvcikgPT0gJ2NvbG9yJywgY29sb3IuY2hhbmdlKCRjb2xvciwgJGFyZ3MuLi4pLCAkY29sb3IpO1xufVxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDIwIEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkB1c2UgJ3Nhc3M6bGlzdCc7XG5AdXNlICdzYXNzOm1hcCc7XG5AdXNlICdzYXNzOm1ldGEnO1xuQHVzZSAnLi9nc3MnO1xuXG4vLy8gV2hlbiB0cnVlLCBhZGQgYW4gYWRkaXRpb25hbCBwcm9wZXJ0eS92YWx1ZSBkZWNsYXJhdGlvbiBiZWZvcmUgZGVjbGFyYXRpb25zXG4vLy8gdGhhdCB1c2UgYWR2YW5jZWQgZmVhdHVyZXMgc3VjaCBhcyBjdXN0b20gcHJvcGVydGllcyBvciBDU1MgZnVuY3Rpb25zLiBUaGlzXG4vLy8gYWRkcyBmYWxsYmFjayBzdXBwb3J0IGZvciBvbGRlciBicm93c2VycyBzdWNoIGFzIElFMTEgdGhhdCBkbyBub3Qgc3VwcG9ydFxuLy8vIHRoZXNlIGZlYXR1cmVzIGF0IHRoZSBjb3N0IG9mIGFkZGl0aW9uYWwgQ1NTLiBTZXQgdGhpcyB2YXJpYWJsZSB0byBmYWxzZSB0b1xuLy8vIGRpc2FibGUgZ2VuZXJhdGluZyBmYWxsYmFjayBkZWNsYXJhdGlvbnMuXG4kZW5hYmxlLWZhbGxiYWNrLWRlY2xhcmF0aW9uczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFdyaXRlcyBhIENTUyBwcm9wZXJ0eS92YWx1ZSBkZWNsYXJhdGlvbi4gVGhpcyBtaXhpbiBpcyB1c2VkIHRocm91Z2hvdXQgdGhlXG4vLy8gdGhlbWUgcGFja2FnZSBmb3IgY29uc2lzdGVuY3kgZm9yIGR5bmFtaWNhbGx5IHNldHRpbmcgQ1NTIHByb3BlcnR5IHZhbHVlcy5cbi8vL1xuLy8vIFRoaXMgbWl4aW4gbWF5IG9wdGlvbmFsbHkgdGFrZSBhIGZhbGxiYWNrIHZhbHVlLiBGb3IgYWR2YW5jZWQgZmVhdHVyZXMgc3VjaFxuLy8vIGFzIGN1c3RvbSBwcm9wZXJ0aWVzIG9yIENTUyBmdW5jdGlvbnMgbGlrZSBtaW4gYW5kIG1heCwgYSBmYWxsYmFjayB2YWx1ZSBpc1xuLy8vIHJlY29tbWVuZGVkIHRvIHN1cHBvcnQgb2xkZXIgYnJvd3NlcnMuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHByb3BlcnR5IC0gVGhlIENTUyBwcm9wZXJ0eSBvZiB0aGUgZGVjbGFyYXRpb24uXG4vLy8gQHBhcmFtIHsqfSAkdmFsdWUgLSBUaGUgdmFsdWUgb2YgdGhlIENTUyBkZWNsYXJhdGlvbi4gVGhlIHZhbHVlIHNob3VsZCBiZVxuLy8vICAgICByZXNvbHZlZCBieSBvdGhlciB0aGVtZSBmdW5jdGlvbnMgZmlyc3QgKGkuZS4gY3VzdG9tIHByb3BlcnR5IE1hcHMgYW5kXG4vLy8gICAgIE1hdGVyaWFsIHRoZW1lIGtleXMgYXJlIG5vdCBzdXBwb3J0ZWQgaW4gdGhpcyBtaXhpbikuIElmIHRoZSB2YWx1ZSBpc1xuLy8vICAgICBudWxsLCBubyBkZWNsYXJhdGlvbnMgd2lsbCBiZSBlbWl0dGVkLlxuLy8vIEBwYXJhbSB7Kn0gJGZhbGxiYWNrIC0gQW4gb3B0aW9uYWwgZmFsbGJhY2sgdmFsdWUgZm9yIG9sZGVyIGJyb3dzZXJzLiBJZlxuLy8vICAgICBwcm92aWRlZCwgYSBzZWNvbmQgcHJvcGVydHkvdmFsdWUgZGVjbGFyYXRpb24gd2lsbCBiZSBhZGRlZCBiZWZvcmUgdGhlXG4vLy8gICAgIG1haW4gcHJvcGVydHkvdmFsdWUgZGVjbGFyYXRpb24uXG4vLy8gQHBhcmFtIHtNYXB9ICRnc3MgLSBBbiBvcHRpb25hbCBNYXAgb2YgR1NTIGFubm90YXRpb25zIHRvIGFkZC5cbi8vLyBAcGFyYW0ge0Jvb2x9ICRpbXBvcnRhbnQgLSBJZiB0cnVlLCBhZGQgYCFpbXBvcnRhbnRgIHRvIHRoZSBkZWNsYXJhdGlvbi5cbkBtaXhpbiBkZWNsYXJhdGlvbihcbiAgJHByb3BlcnR5LFxuICAkdmFsdWUsXG4gICRmYWxsYmFjay12YWx1ZTogbnVsbCxcbiAgJGdzczogKCksXG4gICRpbXBvcnRhbnQ6IGZhbHNlXG4pIHtcbiAgLy8gTm9ybWFsbHkgc2V0dGluZyBhIG51bGwgdmFsdWUgdG8gYSBwcm9wZXJ0eSB3aWxsIG5vdCBlbWl0IENTUywgc28gbWl4aW5zXG4gIC8vIHdvdWxkbid0IG5lZWQgdG8gY2hlY2sgdGhpcy4gSG93ZXZlciwgU2FzcyB3aWxsIHRocm93IGFuIGVycm9yIGlmIHRoZVxuICAvLyBpbnRlcnBvbGF0ZWQgcHJvcGVydHkgaXMgYSBjdXN0b20gcHJvcGVydHkuXG4gIEBpZiAkdmFsdWUgIT0gbnVsbCB7XG4gICAgJGltcG9ydGFudC1ydWxlOiBpZigkaW1wb3J0YW50LCAnICFpbXBvcnRhbnQnLCAnJyk7XG5cbiAgICBAaWYgJGZhbGxiYWNrLXZhbHVlIGFuZCAkZW5hYmxlLWZhbGxiYWNrLWRlY2xhcmF0aW9ucyB7XG4gICAgICBAaW5jbHVkZSBnc3MuYW5ub3RhdGUoJGdzcyk7XG4gICAgICAjeyRwcm9wZXJ0eX06ICN7JGZhbGxiYWNrLXZhbHVlfSAjeyRpbXBvcnRhbnQtcnVsZX07XG5cbiAgICAgIC8vIEFkZCBAYWx0ZXJuYXRlIHRvIGFubm90YXRpb25zLlxuICAgICAgJGdzczogbWFwLm1lcmdlKFxuICAgICAgICAkZ3NzLFxuICAgICAgICAoXG4gICAgICAgICAgYWx0ZXJuYXRlOiB0cnVlLFxuICAgICAgICApXG4gICAgICApO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGdzcy5hbm5vdGF0ZSgkZ3NzKTtcbiAgICAjeyRwcm9wZXJ0eX06ICN7JHZhbHVlfSN7JGltcG9ydGFudC1ydWxlfTtcbiAgfVxufVxuXG4vLy8gVW5wYWNrcyBzaG9ydGhhbmQgdmFsdWVzIGZvciBDU1MgcHJvcGVydGllcyAoaS5lLiBsaXN0cyBvZiAxLTMgdmFsdWVzKS5cbi8vLyBJZiBhIGxpc3Qgb2YgNCB2YWx1ZXMgaXMgZ2l2ZW4sIGl0IGlzIHJldHVybmVkIGFzLWlzLlxuLy8vXG4vLy8gRXhhbXBsZXM6XG4vLy9cbi8vLyB1bnBhY2stdmFsdWUoNHB4KSA9PiA0cHggNHB4IDRweCA0cHhcbi8vLyB1bnBhY2stdmFsdWUoNHB4IDJweCkgPT4gNHB4IDJweCA0cHggMnB4XG4vLy8gdW5wYWNrLXZhbHVlKDRweCAycHggMnB4KSA9PiA0cHggMnB4IDJweCAycHhcbi8vLyB1bnBhY2stdmFsdWUoNHB4IDJweCAwIDJweCkgPT4gNHB4IDJweCAwIDJweFxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXIgfCBNYXAgfCBMaXN0fSAkdmFsdWUgLSBMaXN0IG9mIDEgdG8gNCB2YWx1ZSBudW1iZXJzLlxuLy8vIEByZXR1cm4ge0xpc3R9IGEgTGlzdCBvZiA0IHZhbHVlIG51bWJlcnMuXG5AZnVuY3Rpb24gdW5wYWNrLXZhbHVlKCR2YWx1ZSkge1xuICBAaWYgbWV0YS50eXBlLW9mKCR2YWx1ZSkgPT0gJ21hcCcgb3IgbGlzdC5sZW5ndGgoJHZhbHVlKSA9PSAxIHtcbiAgICBAcmV0dXJuICR2YWx1ZSAkdmFsdWUgJHZhbHVlICR2YWx1ZTtcbiAgfSBAZWxzZSBpZiBsaXN0Lmxlbmd0aCgkdmFsdWUpID09IDQge1xuICAgIEByZXR1cm4gJHZhbHVlO1xuICB9IEBlbHNlIGlmIGxpc3QubGVuZ3RoKCR2YWx1ZSkgPT0gMyB7XG4gICAgQHJldHVybiBsaXN0Lm50aCgkdmFsdWUsIDEpIGxpc3QubnRoKCR2YWx1ZSwgMikgbGlzdC5udGgoJHZhbHVlLCAzKVxuICAgICAgbGlzdC5udGgoJHZhbHVlLCAyKTtcbiAgfSBAZWxzZSBpZiBsaXN0Lmxlbmd0aCgkdmFsdWUpID09IDIge1xuICAgIEByZXR1cm4gbGlzdC5udGgoJHZhbHVlLCAxKSBsaXN0Lm50aCgkdmFsdWUsIDIpIGxpc3QubnRoKCR2YWx1ZSwgMSlcbiAgICAgIGxpc3QubnRoKCR2YWx1ZSwgMik7XG4gIH1cblxuICBAZXJyb3IgXCJJbnZhbGlkIENTUyBwcm9wZXJ0eSB2YWx1ZTogJyN7JHZhbHVlfScgaXMgbW9yZSB0aGFuIDQgdmFsdWVzXCI7XG59XG4iLCJAdXNlICdzYXNzOmNvbG9yJztcbkB1c2UgJ3Nhc3M6bWFwJztcbkB1c2UgJy4uL2NvcmUvdG9rZW5zL20yL21hdC9kYXRlcGlja2VyJyBhcyB0b2tlbnMtbWF0LWRhdGVwaWNrZXI7XG5AdXNlICcuLi9jb3JlL3RoZW1pbmcvdGhlbWluZyc7XG5AdXNlICcuLi9jb3JlL3RoZW1pbmcvaW5zcGVjdGlvbic7XG5AdXNlICcuLi9jb3JlL3Rva2Vucy90b2tlbi11dGlscyc7XG5AdXNlICcuLi9jb3JlL3N0eWxlL3Nhc3MtdXRpbHMnO1xuQHVzZSAnLi4vY29yZS90eXBvZ3JhcGh5L3R5cG9ncmFwaHknO1xuQHVzZSAnLi4vYnV0dG9uL2ljb24tYnV0dG9uLXRoZW1lJztcblxuLy8gVE9ETyhjcmlzYmV0byk6IHRoZXNlIHZhcmlhYmxlcyBhcmVuJ3QgdXNlZCBhbnltb3JlIGFuZCBzaG91bGQgYmUgcmVtb3ZlZC5cbiRzZWxlY3RlZC10b2RheS1ib3gtc2hhZG93LXdpZHRoOiAxcHg7XG4kc2VsZWN0ZWQtZmFkZS1hbW91bnQ6IDAuNjtcbiRyYW5nZS1mYWRlLWFtb3VudDogMC4yO1xuJHRvZGF5LWZhZGUtYW1vdW50OiAwLjI7XG4kY2FsZW5kYXItYm9keS1mb250LXNpemU6IDEzcHggIWRlZmF1bHQ7XG4kY2FsZW5kYXItd2Vla2RheS10YWJsZS1mb250LXNpemU6IDExcHggIWRlZmF1bHQ7XG5cbkBtaXhpbiBfY2FsZW5kYXItY29sb3IoJHRoZW1lLCAkcGFsZXR0ZS1uYW1lKSB7XG4gICRwYWxldHRlLWNvbG9yOiBpbnNwZWN0aW9uLmdldC10aGVtZS1jb2xvcigkdGhlbWUsICRwYWxldHRlLW5hbWUpO1xuICAkcmFuZ2UtY29sb3I6IHRva2Vucy1tYXQtZGF0ZXBpY2tlci5wcml2YXRlLWdldC1yYW5nZS1iYWNrZ3JvdW5kLWNvbG9yKCRwYWxldHRlLWNvbG9yKTtcbiAgJHJhbmdlLXRva2VuczogdG9rZW5zLW1hdC1kYXRlcGlja2VyLmdldC1yYW5nZS1jb2xvci10b2tlbnMoJHJhbmdlLWNvbG9yKTtcbiAgJGNhbGVuZGFyLXRva2VuczpcbiAgICB0b2tlbnMtbWF0LWRhdGVwaWNrZXIucHJpdmF0ZS1nZXQtY2FsZW5kYXItY29sb3ItcGFsZXR0ZS1jb2xvci10b2tlbnMoJHRoZW1lLCAkcGFsZXR0ZS1uYW1lKTtcblxuICBAaW5jbHVkZSB0b2tlbi11dGlscy5jcmVhdGUtdG9rZW4tdmFsdWVzKHRva2Vucy1tYXQtZGF0ZXBpY2tlci4kcHJlZml4LFxuICAgIG1hcC5tZXJnZSgkY2FsZW5kYXItdG9rZW5zLCAkcmFuZ2UtdG9rZW5zKSk7XG59XG5cbkBtaXhpbiBiYXNlKCR0aGVtZSkge31cblxuQG1peGluIGNvbG9yKCR0aGVtZSkge1xuICBAaW5jbHVkZSBzYXNzLXV0aWxzLmN1cnJlbnQtc2VsZWN0b3Itb3Itcm9vdCgpIHtcbiAgICBAaW5jbHVkZSB0b2tlbi11dGlscy5jcmVhdGUtdG9rZW4tdmFsdWVzKHRva2Vucy1tYXQtZGF0ZXBpY2tlci4kcHJlZml4LFxuICAgICAgdG9rZW5zLW1hdC1kYXRlcGlja2VyLmdldC1jb2xvci10b2tlbnMoJHRoZW1lKSk7XG4gIH1cblxuICAubWF0LWRhdGVwaWNrZXItY29udGVudCB7XG4gICAgJi5tYXQtYWNjZW50IHtcbiAgICAgIEBpbmNsdWRlIF9jYWxlbmRhci1jb2xvcigkdGhlbWUsIGFjY2VudCk7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiB7XG4gICAgICBAaW5jbHVkZSBfY2FsZW5kYXItY29sb3IoJHRoZW1lLCB3YXJuKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWRhdGVwaWNrZXItdG9nZ2xlLWFjdGl2ZSB7XG4gICAgJi5tYXQtYWNjZW50IHtcbiAgICAgICRhY2NlbnQtdG9rZW5zOlxuICAgICAgICB0b2tlbnMtbWF0LWRhdGVwaWNrZXIucHJpdmF0ZS1nZXQtdG9nZ2xlLWNvbG9yLXBhbGV0dGUtY29sb3ItdG9rZW5zKCR0aGVtZSwgYWNjZW50KTtcbiAgICAgIEBpbmNsdWRlIHRva2VuLXV0aWxzLmNyZWF0ZS10b2tlbi12YWx1ZXModG9rZW5zLW1hdC1kYXRlcGlja2VyLiRwcmVmaXgsICRhY2NlbnQtdG9rZW5zKTtcbiAgICB9XG5cbiAgICAmLm1hdC13YXJuIHtcbiAgICAgICR3YXJuLXRva2VuczpcbiAgICAgICAgdG9rZW5zLW1hdC1kYXRlcGlja2VyLnByaXZhdGUtZ2V0LXRvZ2dsZS1jb2xvci1wYWxldHRlLWNvbG9yLXRva2VucygkdGhlbWUsIHdhcm4pO1xuICAgICAgQGluY2x1ZGUgdG9rZW4tdXRpbHMuY3JlYXRlLXRva2VuLXZhbHVlcyh0b2tlbnMtbWF0LWRhdGVwaWNrZXIuJHByZWZpeCwgJHdhcm4tdG9rZW5zKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHR5cG9ncmFwaHkoJHRoZW1lKSB7XG4gIEBpbmNsdWRlIHNhc3MtdXRpbHMuY3VycmVudC1zZWxlY3Rvci1vci1yb290KCkge1xuICAgIEBpbmNsdWRlIHRva2VuLXV0aWxzLmNyZWF0ZS10b2tlbi12YWx1ZXModG9rZW5zLW1hdC1kYXRlcGlja2VyLiRwcmVmaXgsXG4gICAgICB0b2tlbnMtbWF0LWRhdGVwaWNrZXIuZ2V0LXR5cG9ncmFwaHktdG9rZW5zKCR0aGVtZSkpO1xuICB9XG59XG5cbkBtaXhpbiBkYXRlLXJhbmdlLWNvbG9ycyhcbiAgJHJhbmdlLWNvbG9yLFxuICAkY29tcGFyaXNvbi1jb2xvcjogdG9rZW5zLW1hdC1kYXRlcGlja2VyLiRwcml2YXRlLWRlZmF1bHQtY29tcGFyaXNvbi1jb2xvcixcbiAgJG92ZXJsYXAtY29sb3I6IHRva2Vucy1tYXQtZGF0ZXBpY2tlci4kcHJpdmF0ZS1kZWZhdWx0LW92ZXJsYXAtY29sb3IsXG4gICRvdmVybGFwLXNlbGVjdGVkLWNvbG9yOlxuICAgIHRva2Vucy1tYXQtZGF0ZXBpY2tlci5wcml2YXRlLWdldC1kZWZhdWx0LW92ZXJsYXAtc2VsZWN0ZWQtY29sb3IoJG92ZXJsYXAtY29sb3IpKSB7XG4gICR0b2tlbnM6IHRva2Vucy1tYXQtZGF0ZXBpY2tlci5nZXQtcmFuZ2UtY29sb3ItdG9rZW5zKFxuICAgICRyYW5nZS1jb2xvcjogJHJhbmdlLWNvbG9yLFxuICAgICRjb21wYXJpc29uLWNvbG9yOiAkY29tcGFyaXNvbi1jb2xvcixcbiAgICAkb3ZlcmxhcC1jb2xvcjogJG92ZXJsYXAtY29sb3IsXG4gICAgJG92ZXJsYXAtc2VsZWN0ZWQtY29sb3I6ICRvdmVybGFwLXNlbGVjdGVkLWNvbG9yLFxuICApO1xuXG4gIEBpbmNsdWRlIHNhc3MtdXRpbHMuY3VycmVudC1zZWxlY3Rvci1vci1yb290KCkge1xuICAgIEBpbmNsdWRlIHRva2VuLXV0aWxzLmNyZWF0ZS10b2tlbi12YWx1ZXModG9rZW5zLW1hdC1kYXRlcGlja2VyLiRwcmVmaXgsICR0b2tlbnMpO1xuICB9XG59XG5cbkBtaXhpbiBkZW5zaXR5KCR0aGVtZSkge1xuICAvLyBUT0RPKGNyaXNiZXRvKTogbW92ZSB0aGlzIGludG8gdGhlIHN0cnVjdHVyYWwgc3R5bGVzXG4gIC8vIG9uY2UgdGhlIGljb24gYnV0dG9uIGRlbnNpdHkgaXMgc3dpdGNoZWQgdG8gdG9rZW5zLlxuXG4gIC8vIFJlZ2FyZGxlc3Mgb2YgdGhlIHVzZXItcGFzc2VkIGRlbnNpdHksIHdlIHdhbnQgdGhlIGNhbGVuZGFyXG4gIC8vIHByZXZpb3VzL25leHQgYnV0dG9ucyB0byByZW1haW4gYXQgZGVuc2l0eSAtMlxuICAubWF0LWNhbGVuZGFyLWNvbnRyb2xzIHtcbiAgICBAaW5jbHVkZSBpY29uLWJ1dHRvbi10aGVtZS5kZW5zaXR5KC0yKTtcbiAgfVxufVxuXG5AbWl4aW4gdGhlbWUoJHRoZW1lKSB7XG4gIEBpbmNsdWRlIHRoZW1pbmcucHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1kYXRlcGlja2VyJykge1xuICAgIEBpbmNsdWRlIGJhc2UoJHRoZW1lKTtcbiAgICBAaWYgaW5zcGVjdGlvbi50aGVtZS1oYXMoJHRoZW1lLCBjb2xvcikge1xuICAgICAgQGluY2x1ZGUgY29sb3IoJHRoZW1lKTtcbiAgICB9XG4gICAgQGlmIGluc3BlY3Rpb24udGhlbWUtaGFzKCR0aGVtZSwgZGVuc2l0eSkge1xuICAgICAgQGluY2x1ZGUgZGVuc2l0eSgkdGhlbWUpO1xuICAgIH1cbiAgICBAaWYgaW5zcGVjdGlvbi50aGVtZS1oYXMoJHRoZW1lLCB0eXBvZ3JhcGh5KSB7XG4gICAgICBAaW5jbHVkZSB0eXBvZ3JhcGh5KCR0aGVtZSk7XG4gICAgfVxuICB9XG59XG4iLCJAdXNlICdzYXNzOm1hdGgnO1xuQHVzZSAnQG1hdGVyaWFsL2RlbnNpdHkvZnVuY3Rpb25zJyBhcyBtZGMtZGVuc2l0eS1mdW5jdGlvbnM7XG5AdXNlICdAbWF0ZXJpYWwvaWNvbi1idXR0b24vaWNvbi1idXR0b24tdGhlbWUnIGFzIG1kYy1pY29uLWJ1dHRvbi10aGVtZTtcbkB1c2UgJy4uL2NvcmUvdG9rZW5zL20yL21kYy9pY29uLWJ1dHRvbicgYXMgdG9rZW5zLW1kYy1pY29uLWJ1dHRvbjtcblxuQHVzZSAnLi9idXR0b24tdGhlbWUtcHJpdmF0ZSc7XG5AdXNlICcuLi9jb3JlL3RoZW1pbmcvdGhlbWluZyc7XG5AdXNlICcuLi9jb3JlL3RoZW1pbmcvaW5zcGVjdGlvbic7XG5cbiRfaWNvbi1zaXplOiAyNHB4O1xuXG4vLyBUT0RPKGNyaXNiZXRvKTogbW92ZSB0aGVzZSBpbnRvIHRva2Vuc1xuQG1peGluIF9yaXBwbGUtY29sb3IoJGNvbG9yKSB7XG4gIC0tbWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGUtY29sb3I6ICN7JGNvbG9yfTtcbiAgLS1tYXQtbWRjLWJ1dHRvbi1yaXBwbGUtY29sb3I6ICN7cmdiYSgkY29sb3IsIDAuMSl9O1xufVxuXG5AbWl4aW4gYmFzZSgkdGhlbWUpIHtcbiAgLy8gVE9ETyhtbWFsZXJiYSk6IE1vdmUgaWNvbiBidXR0b24gYmFzZSB0b2tlbnMgaGVyZVxufVxuXG5AbWl4aW4gY29sb3IoJHRoZW1lKSB7XG4gICRjb2xvci10b2tlbnM6IHRva2Vucy1tZGMtaWNvbi1idXR0b24uZ2V0LWNvbG9yLXRva2VucygkdGhlbWUpO1xuICAkaXMtZGFyazogaW5zcGVjdGlvbi5nZXQtdGhlbWUtdHlwZSgkdGhlbWUpID09IGRhcms7XG5cbiAgLm1hdC1tZGMtaWNvbi1idXR0b24ge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi10aGVtZS1wcml2YXRlLnJpcHBsZS10aGVtZS1zdHlsZXMoJHRoZW1lLCBmYWxzZSk7XG4gICAgQGluY2x1ZGUgbWRjLWljb24tYnV0dG9uLXRoZW1lLnRoZW1lKCRjb2xvci10b2tlbnMpO1xuICAgIEBpbmNsdWRlIF9yaXBwbGUtY29sb3IoaWYoJGlzLWRhcmssICNmZmYsICMwMDApKTtcblxuICAgICYubWF0LXByaW1hcnkge1xuICAgICAgQGluY2x1ZGUgX3JpcHBsZS1jb2xvcihpbnNwZWN0aW9uLmdldC10aGVtZS1jb2xvcigkdGhlbWUsIHByaW1hcnkpKTtcbiAgICAgIEBpbmNsdWRlIG1kYy1pY29uLWJ1dHRvbi10aGVtZS50aGVtZShcbiAgICAgICAgdG9rZW5zLW1kYy1pY29uLWJ1dHRvbi5wcml2YXRlLWdldC1jb2xvci1wYWxldHRlLWNvbG9yLXRva2VucygkdGhlbWUsIHByaW1hcnkpKTtcbiAgICB9XG5cbiAgICAmLm1hdC1hY2NlbnQge1xuICAgICAgQGluY2x1ZGUgX3JpcHBsZS1jb2xvcihpbnNwZWN0aW9uLmdldC10aGVtZS1jb2xvcigkdGhlbWUsIGFjY2VudCkpO1xuICAgICAgQGluY2x1ZGUgbWRjLWljb24tYnV0dG9uLXRoZW1lLnRoZW1lKFxuICAgICAgICB0b2tlbnMtbWRjLWljb24tYnV0dG9uLnByaXZhdGUtZ2V0LWNvbG9yLXBhbGV0dGUtY29sb3ItdG9rZW5zKCR0aGVtZSwgYWNjZW50KSk7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiB7XG4gICAgICBAaW5jbHVkZSBfcmlwcGxlLWNvbG9yKGluc3BlY3Rpb24uZ2V0LXRoZW1lLWNvbG9yKCR0aGVtZSwgd2FybikpO1xuICAgICAgQGluY2x1ZGUgbWRjLWljb24tYnV0dG9uLXRoZW1lLnRoZW1lKFxuICAgICAgICB0b2tlbnMtbWRjLWljb24tYnV0dG9uLnByaXZhdGUtZ2V0LWNvbG9yLXBhbGV0dGUtY29sb3ItdG9rZW5zKCR0aGVtZSwgd2FybikpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gdHlwb2dyYXBoeSgkdGhlbWUpIHt9XG5cbkBtaXhpbiBkZW5zaXR5KCR0aGVtZSkge1xuICAkZGVuc2l0eS1zY2FsZTogaW5zcGVjdGlvbi5nZXQtdGhlbWUtZGVuc2l0eSgkdGhlbWUpO1xuICAvLyBNYW51YWxseSBhcHBseSB0aGUgZXhwZWN0ZWQgZGVuc2l0eSB0aGVtaW5nLCBhbmQgaW5jbHVkZSB0aGUgcGFkZGluZ1xuICAvLyBhcyBpdCB3YXMgYXBwbGllZCBiZWZvcmVcbiAgJGNhbGN1bGF0ZWQtc2l6ZTogbWRjLWRlbnNpdHktZnVuY3Rpb25zLnByb3AtdmFsdWUoXG4gICAgJGRlbnNpdHktY29uZmlnOiAoXG4gICAgICBzaXplOiAoXG4gICAgICAgIGRlZmF1bHQ6IDQ4cHgsXG4gICAgICAgIG1heGltdW06IDQ4cHgsXG4gICAgICAgIG1pbmltdW06IDI4cHgsXG4gICAgICApLFxuICAgICksXG4gICAgJGRlbnNpdHktc2NhbGU6ICRkZW5zaXR5LXNjYWxlLFxuICAgICRwcm9wZXJ0eS1uYW1lOiBzaXplLFxuICApO1xuXG4gIC8vIFVzZSBgbWF0LW1kYy1idXR0b24tYmFzZWAgdG8gaW5jcmVhc2UgdGhlIHNwZWNpZmljaXR5IG92ZXIgdGhlIGJ1dHRvbidzIHN0cnVjdHVyYWwgc3R5bGVzLlxuICAubWF0LW1kYy1pY29uLWJ1dHRvbi5tYXQtbWRjLWJ1dHRvbi1iYXNlIHtcbiAgICAvLyBNYXRjaCB0aGUgc3R5bGVzIHRoYXQgdXNlZCB0byBiZSBwcmVzZW50LiBUaGlzIGlzIG5lY2Vzc2FyeSBmb3IgYmFja3dhcmRzXG4gICAgLy8gY29tcGF0IHRvIG1hdGNoIHRoZSBwcmV2aW91cyBpbXBsZW1lbnRhdGlvbnMgc2VsZWN0b3IgY291bnQgKHR3byBjbGFzc2VzKS5cbiAgICBAaW5jbHVkZSBtZGMtaWNvbi1idXR0b24tdGhlbWUudGhlbWUoKFxuICAgICAgc3RhdGUtbGF5ZXItc2l6ZTogJGNhbGN1bGF0ZWQtc2l6ZSxcbiAgICApKTtcblxuICAgIC8vIFRPRE86IFN3aXRjaCBjYWxjdWxhdGVkLXNpemUgdG8gXCJ2YXIoLS1tZGMtaWNvbi1idXR0b24tc3RhdGUtbGF5ZXItc2l6ZSlcIlxuICAgIC8vIEN1cnJlbnRseSBmYWlscyB2YWxpZGF0aW9uIGJlY2F1c2UgdGhlIHZhcmlhYmxlIGlzIFwidW5kZWZpbmVkXCJcbiAgICAvLyBpbiB0aGUgc2FzcyBzdGFjay5cbiAgICAvLyBUT0RPOiBTd2l0Y2ggaWNvbi1zaXplIHRvIFwidmFyKC0tbWRjLWljb24tYnV0dG9uLWljb24tc2l6ZSlcIi4gQ3VycmVudGx5XG4gICAgLy8gZmFpbHMgdmFsaWRhdGlvbiBiZWNhdXNlIHRoZSB2YXJpYWJsZSBpcyBcInVuZGVmaW5lZFwiIGluIHRoZSBzYXNzIHN0YWNrLlxuICAgIHdpZHRoOiB2YXIoLS1tZGMtaWNvbi1idXR0b24tc3RhdGUtbGF5ZXItc2l6ZSk7XG4gICAgaGVpZ2h0OiB2YXIoLS1tZGMtaWNvbi1idXR0b24tc3RhdGUtbGF5ZXItc2l6ZSk7XG4gICAgcGFkZGluZzogbWF0aC5kaXYoJGNhbGN1bGF0ZWQtc2l6ZSAtICRfaWNvbi1zaXplLCAyKTtcblxuICAgIEBpbmNsdWRlIGJ1dHRvbi10aGVtZS1wcml2YXRlLnRvdWNoLXRhcmdldC1kZW5zaXR5KCRkZW5zaXR5LXNjYWxlKTtcbiAgfVxufVxuXG5AbWl4aW4gdGhlbWUoJHRoZW1lKSB7XG4gIEBpbmNsdWRlIHRoZW1pbmcucHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1pY29uLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBiYXNlKCR0aGVtZSk7XG4gICAgQGlmIGluc3BlY3Rpb24udGhlbWUtaGFzKCR0aGVtZSwgY29sb3IpIHtcbiAgICAgIEBpbmNsdWRlIGNvbG9yKCR0aGVtZSk7XG4gICAgfVxuICAgIEBpZiBpbnNwZWN0aW9uLnRoZW1lLWhhcygkdGhlbWUsIGRlbnNpdHkpIHtcbiAgICAgIEBpbmNsdWRlIGRlbnNpdHkoJHRoZW1lKTtcbiAgICB9XG4gICAgQGlmIGluc3BlY3Rpb24udGhlbWUtaGFzKCR0aGVtZSwgdHlwb2dyYXBoeSkge1xuICAgICAgQGluY2x1ZGUgdHlwb2dyYXBoeSgkdGhlbWUpO1xuICAgIH1cbiAgfVxufVxuIiwiQHVzZSAnc2FzczptYXAnO1xuQHVzZSAnQG1hdGVyaWFsL3JpcHBsZS9yaXBwbGUtdGhlbWUnIGFzIG1kYy1yaXBwbGUtdGhlbWU7XG5AdXNlICdAbWF0ZXJpYWwvdGhlbWUvdGhlbWUtY29sb3InIGFzIG1kYy10aGVtZS1jb2xvcjtcblxuQHVzZSAnLi4vY29yZS9tZGMtaGVscGVycy9tZGMtaGVscGVycyc7XG5AdXNlICcuLi9jb3JlL3RoZW1pbmcvaW5zcGVjdGlvbic7XG5cbkBtaXhpbiBfcmlwcGxlLWNvbG9yKCRjb2xvcikge1xuICAtLW1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlLWNvbG9yOiAjeyRjb2xvcn07XG4gIC0tbWF0LW1kYy1idXR0b24tcmlwcGxlLWNvbG9yOiAje3JnYmEoJGNvbG9yLCAwLjEpfTtcbn1cblxuQG1peGluIHJpcHBsZS10aGVtZS1zdHlsZXMoJHRoZW1lLCAkaXMtZmlsbGVkKSB7XG4gICRvcGFjaXRpZXM6IGlmKGluc3BlY3Rpb24uZ2V0LXRoZW1lLXR5cGUoJHRoZW1lKSA9PSBkYXJrLFxuICAgIG1kYy1yaXBwbGUtdGhlbWUuJGxpZ2h0LWluay1vcGFjaXRpZXMsIG1kYy1yaXBwbGUtdGhlbWUuJGRhcmstaW5rLW9wYWNpdGllcyk7XG5cbiAgLy8gSWRlYWxseSB0aGVzZSBzdHlsZXMgd291bGQgYmUgc3RydWN0dXJhbCwgYnV0IE1EQyBiYXNlcyBzb21lIG9mIHRoZSBvcGFjaXRpZXMgb24gdGhlIHRoZW1lLlxuICAmOmhvdmVyIC5tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZTo6YmVmb3JlIHtcbiAgICBvcGFjaXR5OiBtYXAuZ2V0KCRvcGFjaXRpZXMsIGhvdmVyKTtcbiAgfVxuXG4gICYuY2RrLXByb2dyYW0tZm9jdXNlZCxcbiAgJi5jZGsta2V5Ym9hcmQtZm9jdXNlZCB7XG4gICAgLm1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlOjpiZWZvcmUge1xuICAgICAgb3BhY2l0eTogbWFwLmdldCgkb3BhY2l0aWVzLCBmb2N1cyk7XG4gICAgfVxuICB9XG5cbiAgJjphY3RpdmUgLm1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlOjpiZWZvcmUge1xuICAgIG9wYWNpdHk6IG1hcC5nZXQoJG9wYWNpdGllcywgcHJlc3MpO1xuICB9XG5cbiAgQGluY2x1ZGUgX3JpcHBsZS1jb2xvcihtZGMtdGhlbWUtY29sb3IucHJvcC12YWx1ZShvbi1zdXJmYWNlKSk7XG5cbiAgJi5tYXQtcHJpbWFyeSB7XG4gICAgQGluY2x1ZGUgX3JpcHBsZS1jb2xvcihtZGMtdGhlbWUtY29sb3IucHJvcC12YWx1ZShpZigkaXMtZmlsbGVkLCBvbi1wcmltYXJ5LCBwcmltYXJ5KSkpO1xuICB9XG5cbiAgJi5tYXQtYWNjZW50IHtcbiAgICBAaW5jbHVkZSBfcmlwcGxlLWNvbG9yKG1kYy10aGVtZS1jb2xvci5wcm9wLXZhbHVlKGlmKCRpcy1maWxsZWQsIG9uLXNlY29uZGFyeSwgc2Vjb25kYXJ5KSkpO1xuICB9XG5cbiAgJi5tYXQtd2FybiB7XG4gICAgQGluY2x1ZGUgX3JpcHBsZS1jb2xvcihtZGMtdGhlbWUtY29sb3IucHJvcC12YWx1ZShpZigkaXMtZmlsbGVkLCBvbi1lcnJvciwgZXJyb3IpKSk7XG4gIH1cbn1cblxuLy8gV3JhcHMgdGhlIGNvbnRlbnQgc3R5bGUgaW4gYSBzZWxlY3RvciBmb3IgdGhlIGRpc2FibGVkIHN0YXRlLlxuLy8gTURDIGFkZHMgdGhlbWUgY29sb3IgYnkgdXNpbmcgOm5vdCg6ZGlzYWJsZWQpLCBzbyBqdXN0IHVzaW5nIFtkaXNhYmxlZF0gb25jZSB3aWxsIG5vdFxuLy8gb3ZlcnJpZGUgdGhpcywgbmVpdGhlciB3aWxsIGl0IGFwcGx5IHRvIGFuY2hvciB0YWdzLiBUaGlzIG5lZWRzIHRvIG92ZXJyaWRlIHRoZVxuLy8gcHJldmlvdXNseSBzZXQgdGhlbWUgY29sb3IsIHNvIGl0IG11c3QgYmUgb3JkZXJlZCBhZnRlciB0aGUgdGhlbWUgc3R5bGVzLlxuLy8gVE9ETyhhbmRyZXdzZWd1aW4pOiBEaXNjdXNzIHdpdGggdGhlIE1EQyB0ZWFtIHRvIHNlZSBpZiB3ZSBjYW4gYXZvaWQgdGhlIDpub3QoOmRpc2FibGVkKSBieVxuLy8gbWFudWFsbHkgc3R5bGluZyBkaXNhYmxlZCBidXR0b25zIHdpdGggYSBbZGlzYWJsZWRdIHNlbGVjdG9yLlxuQG1peGluIGFwcGx5LWRpc2FibGVkLXN0eWxlKCkge1xuICAmW2Rpc2FibGVkXVtkaXNhYmxlZF0ge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIEhpZGVzIHRoZSB0b3VjaCB0YXJnZXQgb24gbG93ZXIgZGVuc2l0aWVzLlxuQG1peGluIHRvdWNoLXRhcmdldC1kZW5zaXR5KCRzY2FsZSkge1xuICBAaW5jbHVkZSBtZGMtaGVscGVycy5pZi10b3VjaC10YXJnZXRzLXVuc3VwcG9ydGVkKCRzY2FsZSkge1xuICAgIC5tYXQtbWRjLWJ1dHRvbi10b3VjaC10YXJnZXQge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbn1cbiIsIi5tYXQtY2FsZW5kYXIge1xuICAgIGZvbnQtc2l6ZTogc21hbGwgIWltcG9ydGFudDtcbiAgICBmb250LWZhbWlseTogdihldWktYmFzZS1mb250LWZhbWlseSkgIWltcG9ydGFudDtcblxuICAgICYubWF0LWNhbGVuZGFyLXllYXIge1xuICAgICAgICAubWF0LWNhbGVuZGFyLXBlcmlvZC1idXR0b24ge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8vIE1BVEVSSUFMIERyYWcgJiBEcm9wIG92ZXJyaWRlc1xuLmNkay1kcmFnLWhhbmRsZSB7XG4gICAgY3Vyc29yOiBtb3ZlICFpbXBvcnRhbnQ7XG59XG5cbi5jZGstZHJvcC1saXN0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG1pbi13aWR0aDogMTAwJTtcblxuICAgICY6bm90KC5jZGstZHJvcC1saXN0LWRpc2FibGVkKSB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IHYoZXVpLWJhc2Utc3BhY2luZy14bCk7XG4gICAgfVxufVxuXG4vLyBBbmltYXRlIGl0ZW1zIGFzIHRoZXkncmUgYmVpbmcgc29ydGVkXG4uY2RrLWRyb3AtbGlzdC1kcmFnZ2luZyAuY2RrLWRyYWcge1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAyNTBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTtcbn1cblxuLy8gQW5pbWF0ZSBhbiBpdGVtIHRoYXQgaGFzIGJlZW4gZHJvcHBlZFxuLmNkay1kcmFnLWFuaW1hdGluZyB7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDMwMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO1xufVxuXG4vLyBHcmFiYmVkIGVsZW1lbnRcbi5jZGstZHJhZy1wcmV2aWV3IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgIC8vIHYoZXVpLWJhc2UtY29sb3Itd2hpdGUpO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgY3Vyc29yOiBncmFiICFpbXBvcnRhbnQ7XG4gICAgZGlzcGxheTogdGFibGU7ICAgICAvLyB0cmljayB0byBnZXQgdGhlIGZ1bGwgcm93IHdpZHRoXG4gICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgb3BhY2l0eTogMTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5jZGstZHJhZy1kcmFnZ2luZyB7XG4gICAgb3BhY2l0eTogMTtcbn1cblxuLmNkay1kcmFnLXBsYWNlaG9sZGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBvcGFjaXR5OiAwLjM1O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIG91dGxpbmU6IDJweCBkYXNoZWQgdihldWktYmFzZS1jb2xvci1ncmV5LTM1KTtcbiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDJweDtcbiAgICB9XG59XG4iLCIvLyBEaXNhYmxlIGdsb2JhbCBzY3JvbGxiYXJzICh1c2VkIGluIGZ1bGwgc2NyZWVuIGV1aS1kaWFsb2cgZm9yIGV4YW1wbGUpXG4uY2RrLWdsb2JhbC1zY3JvbGxibG9jayB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIG92ZXJmbG93LXk6IHZpc2libGU7ICAgICAvLyBNYXRlcmlhbCBkZWZhdWx0OiBzY3JvbGxcbiAgICB3aWR0aDogMTAwJTtcbiAgICBAaW5jbHVkZSBldWktc2Nyb2xsYmFycztcbiAgICBsZWZ0OiAwICFpbXBvcnRhbnQ7XG59XG5AaW5jbHVkZSBtZWRpYSgkZXVpLWJrcC1tb2JpbGUpIHtcbiAgICAuY2RrLWdsb2JhbC1zY3JvbGxibG9jayB7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIEBpbmNsdWRlIGV1aS1zY3JvbGxiYXJzO1xuICAgIH1cbn1cbiIsIkBtaXhpbiBldWktc2Nyb2xsYmFycyggJHNpemU6IDhweCwgJGZvcmVncm91bmQtY29sb3I6IHYoZXVpLWJhc2UtY29sb3ItZ3JleS0yMCksICRiYWNrZ3JvdW5kLWNvbG9yOiB2KGV1aS1iYXNlLWNvbG9yLWdyZXktNSksICRib3JkZXItcmFkaXVzOiA1cmVtLCAkc3RhdGU6IGFjdGl2ZSApIHtcbiAgICAmOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgICAgIGRpc3BsYXk6IGluaGVyaXQ7XG4gICAgICAgIGhlaWdodDogJHNpemU7ICAgICAgLy8gaG9yaXpvbnRhbCBzY3JvbGxcbiAgICAgICAgd2lkdGg6ICRzaXplOyAgICAgICAvLyB2ZXJ0aWNhbCBzY3JvbGxcbiAgICAgICAgQGlmICgkc3RhdGUgPT0gYWN0aXZlKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgICAgfVxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRoaXMgaXMgdGhlIHNjcm9sbGluZyBiYXJcbiAgICAmOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gICAgICAgIEBpZiAoJHN0YXRlID09IGFjdGl2ZSkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGZvcmVncm91bmQtY29sb3I7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdihldWktYmFzZS1jb2xvci1ncmV5LTM1KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRoaXMgaXMgdGhlIHNjcm9sbCBjb250YWluZXJcbiAgICAmOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gICAgICAgIEBpZiAoJHN0YXRlID09IGFjdGl2ZSkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtY29sb3I7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICB9XG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICB9XG4gICAgfVxufVxuQG1peGluIGV1aS1zY3JvbGxiYXJzLWluYWN0aXZlKCRzaXplOiA4cHgpIHtcbiAgICAmOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBkaXNwbGF5OiBpbmhlcml0O1xuICAgICAgICBoZWlnaHQ6ICRzaXplOyAgICAgIC8vIGhvcml6b250YWwgc2Nyb2xsXG4gICAgICAgIHdpZHRoOiAkc2l6ZTsgICAgICAgLy8gdmVydGljYWwgc2Nyb2xsXG4gICAgfVxuXG4gICAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB9XG5cbiAgICAmOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIH1cbn1cbiIsIiRkZWZhdWx0LWZlYXR1cmU6IFwibWluLXdpZHRoXCI7XG5AbWl4aW4gbWVkaWEoJHF1ZXJ5OiAkZmVhdHVyZSAkdmFsdWUgJGNvbHVtbnMpIHtcbiAgICBAaWYgbGVuZ3RoKCRxdWVyeSkgPT0gMSB7XG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kICgkZGVmYXVsdC1mZWF0dXJlOiBudGgoJHF1ZXJ5LCAxKSkge1xuICAgICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgICAkbG9vcC10bzogbGVuZ3RoKCRxdWVyeSk7XG4gICAgICAgICRtZWRpYS1xdWVyeTogXCJzY3JlZW4gYW5kIFwiO1xuICAgICAgICBAaWYgaXMtbm90KGlzLWV2ZW4obGVuZ3RoKCRxdWVyeSkpKSB7XG4gICAgICAgICAgICAkbG9vcC10bzogJGxvb3AtdG8gLSAxO1xuICAgICAgICB9XG4gICAgICAgICRpOiAxO1xuICAgICAgICBAd2hpbGUgJGkgPD0kbG9vcC10byB7XG4gICAgICAgICAgICAkbWVkaWEtcXVlcnk6ICRtZWRpYS1xdWVyeSArIFwiKFwiICsgbnRoKCRxdWVyeSwgJGkpICsgXCI6IFwiICsgbnRoKCRxdWVyeSwgJGkgKyAxKSArIFwiKSBcIjtcbiAgICAgICAgICAgIEBpZiAoJGkgKyAxKSAhPSAkbG9vcC10byB7XG4gICAgICAgICAgICAgICAgJG1lZGlhLXF1ZXJ5OiAkbWVkaWEtcXVlcnkgKyBcImFuZCBcIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICRpOiAkaSsyO1xuICAgICAgICB9XG4gICAgICAgIEBtZWRpYSAjeyRtZWRpYS1xdWVyeX0ge1xuICAgICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIuY2RrLW92ZXJsYXktY29udGFpbmVyIHtcbiAgICB6LWluZGV4OiB2KGV1aS1iYXNlLXotaW5kZXgtY2RrLW92ZXJsYXktY29udGFpbmVyKTsgICAvLyBNRDogMTAwMFxuXG4gICAgLm1hdC1tZW51LXBhbmVsIHtcbiAgICAgICAgbWF4LXdpZHRoOiBpbmhlcml0O1xuICAgICAgICBtaW4taGVpZ2h0OiB2KGV1aS1iYXNlLXNwYWNpbmctbCk7XG4gICAgICAgIEBpbmNsdWRlIGV1aS1zY3JvbGxiYXJzO1xuICAgIH1cblxuICAgIC5tYXQtYXV0b2NvbXBsZXRlLXBhbmVsIHtcbiAgICAgICAgQGluY2x1ZGUgZXVpLXNjcm9sbGJhcnM7XG4gICAgfVxufVxuIiwiQGluY2x1ZGUgbWVkaWEoJGV1aS1ia3AtbW9iaWxlKSB7XG4gICAgLmNkay1vdmVybGF5LWNvbnRhaW5lciB7XG4gICAgICAgIGhlaWdodDogMTAwdmg7ICAvLyBGYWxsYmFja1xuICAgICAgICBoZWlnaHQ6IGNhbGModmFyKC0tZXVpLWFwcC12aCwgMXZoKSAqIDEwMCk7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICB3aWR0aDogMTAwdnc7XG4gICAgfVxufVxuIiwiLmNkay1vdmVybGF5LXBhbmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHYoZXVpLWJhc2UtY29sb3Itd2hpdGUpO1xuICAgIHotaW5kZXg6IHYoZXVpLWJhc2Utei1pbmRleC1jZGstb3ZlcmxheS1wYW5lKTsgIC8vIER5bmFtaWNhbGx5IGNoYW5nZXMgYmFzZWQgb24gQ0RLIGNvbnRleHRcbn1cbiIsIi8vIEhpZGUgYnJvd3NlciBhZ2VudCBkZWZhdWx0IChibGFjaykgY29sb3Jcbjpmb2N1cyxcbjpmb2N1cy12aXNpYmxlIHtcbiAgICBvdXRsaW5lOiBub25lO1xufVxuIiwiaHRtbCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZXVpLWJhc2UtZm9udC1zaXplKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tZXVpLWJhc2UtbGluZS1oZWlnaHQpO1xufVxuIiwiYm9keSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZXVpLWJhc2UtY29sb3ItZ3JleS0yKTtcbiAgICBjb2xvcjogdmFyKC0tZXVpLWJhc2UtY29sb3ItZ3JleS0xMDApO1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1ldWktYmFzZS1mb250LWZhbWlseSk7XG4gICAgZm9udC1mZWF0dXJlLXNldHRpbmdzOiAnbGlnYSc7XG4gICAgZm9udC1zaXplOiB2YXIoLS1ldWktYmFzZS1mb250LXNpemUpO1xuICAgIC1tb3otZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tZXVpLWJhc2UtbGluZS1oZWlnaHQpO1xuICAgIG1hcmdpbjogMDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG59XG4iLCIvLyBNYWtlIHZpZXdwb3J0IHJlc3BvbnNpdmVcbi8vXG4vLyBAdmlld3BvcnQgaXMgbmVlZGVkIGJlY2F1c2UgSUUgMTArIGRvZXNuJ3QgaG9ub3IgPG1ldGEgbmFtZT1cInZpZXdwb3J0XCI+IGluXG4vLyBzb21lIGNhc2VzLiBTZWUgaHR0cHM6Ly90aW1rYWRsZWMuY29tLzIwMTIvMTAvaWUxMC1zbmFwLW1vZGUtYW5kLXJlc3BvbnNpdmUtZGVzaWduLy5cbi8vIEV2ZW50dWFsbHkgQHZpZXdwb3J0IHdpbGwgcmVwbGFjZSA8bWV0YSBuYW1lPVwidmlld3BvcnRcIj4uXG4vL1xuLy8gSG93ZXZlciwgYGRldmljZS13aWR0aGAgaXMgYnJva2VuIG9uIElFIDEwIG9uIFdpbmRvd3MgKFBob25lKSA4LFxuLy8gKHNlZSBodHRwczovL3RpbWthZGxlYy5jb20vMjAxMy8wMS93aW5kb3dzLXBob25lLTgtYW5kLWRldmljZS13aWR0aC8gYW5kIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9pc3N1ZXMvMTA0OTcpXG4vLyBhbmQgdGhlIGZpeCBmb3IgdGhhdCBpbnZvbHZlcyBhIHNuaXBwZXQgb2YgSmF2YVNjcmlwdCB0byBzbmlmZiB0aGUgdXNlciBhZ2VudFxuLy8gYW5kIGFwcGx5IHNvbWUgY29uZGl0aW9uYWwgQ1NTLlxuLy9cbi8vIFNlZSBodHRwczovL2dldGJvb3RzdHJhcC5jb20vZ2V0dGluZy1zdGFydGVkLyNzdXBwb3J0LWllMTAtd2lkdGggZm9yIHRoZSByZWxldmFudCBoYWNrLlxuLy9cbi8vIFdyYXAgYEB2aWV3cG9ydGAgd2l0aCBgQGF0LXJvb3RgIGZvciB3aGVuIGZvbGtzIGRvIGEgbmVzdGVkIGltcG9ydCAoZS5nLixcbi8vIGAuY2xhc3MtbmFtZSB7IEBpbXBvcnQgXCJib290c3RyYXBcIjsgfWApLlxuQGF0LXJvb3Qge1xuICAgIEAtbXMtdmlld3BvcnQge1xuICAgICAgICB3aWR0aDogZGV2aWNlLXdpZHRoO1xuICAgIH1cbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICNCT1gtU0laSU5HXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIE1vcmUgc2Vuc2libGUgZGVmYXVsdCBib3gtc2l6aW5nOlxuICogY3NzLXRyaWNrcy5jb20vaW5oZXJpdGluZy1ib3gtc2l6aW5nLXByb2JhYmx5LXNsaWdodGx5LWJldHRlci1iZXN0LXByYWN0aWNlXG4gKi9cblxuaHRtbCB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuKiB7XG4gICAgJjo6YmVmb3JlLFxuICAgICY6OmFmdGVyLFxuICAgICYge1xuICAgICAgICBib3gtc2l6aW5nOiBpbmhlcml0O1xuICAgIH1cbn1cblxuLy8gQXZvaWQgMzAwbXMgY2xpY2sgZGVsYXkgb24gdG91Y2ggZGV2aWNlcyB0aGF0IHN1cHBvcnQgdGhlIGB0b3VjaC1hY3Rpb25gIENTUyBwcm9wZXJ0eS5cbi8vXG4vLyBJbiBwYXJ0aWN1bGFyLCB1bmxpa2UgbW9zdCBvdGhlciBicm93c2VycywgSUUxMStFZGdlIG9uIFdpbmRvd3MgMTAgb24gdG91Y2ggZGV2aWNlcyBhbmQgSUUgTW9iaWxlIDEwLTExXG4vLyBET04nVCByZW1vdmUgdGhlIGNsaWNrIGRlbGF5IHdoZW4gYDxtZXRhIG5hbWU9XCJ2aWV3cG9ydFwiIGNvbnRlbnQ9XCJ3aWR0aD1kZXZpY2Utd2lkdGhcIj5gIGlzIHByZXNlbnQuXG4vLyBIb3dldmVyLCB0aGV5IERPIHN1cHBvcnQgcmVtb3ZpbmcgdGhlIGNsaWNrIGRlbGF5IHZpYSBgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb25gLlxuLy8gU2VlOlxuLy8gKiBodHRwczovL3Y0LWFscGhhLmdldGJvb3RzdHJhcC5jb20vY29udGVudC9yZWJvb3QvI2NsaWNrLWRlbGF5LW9wdGltaXphdGlvbi1mb3ItdG91Y2hcbi8vICogaHR0cDovL2Nhbml1c2UuY29tLyNmZWF0PWNzcy10b3VjaC1hY3Rpb25cbi8vICogaHR0cHM6Ly9wYXRyaWNraGxhdWtlLmdpdGh1Yi5pby90b3VjaC90ZXN0cy9yZXN1bHRzLyNzdXBwcmVzc2luZy0zMDBtcy1kZWxheVxuXG5hLFxuYXJlYSxcbmJ1dHRvbixcbltyb2xlPVwiYnV0dG9uXCJdLFxuaW5wdXQsXG5sYWJlbCxcbnNlbGVjdCxcbnN1bW1hcnksXG50ZXh0YXJlYSB7XG4gICAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG59XG5cbi8vIFN1cHByZXNzIHRoZSBmb2N1cyBvdXRsaW5lIG9uIGVsZW1lbnRzIHRoYXQgY2Fubm90IGJlIGFjY2Vzc2VkIHZpYSBrZXlib2FyZC5cbi8vIFRoaXMgcHJldmVudHMgYW4gdW53YW50ZWQgZm9jdXMgb3V0bGluZSBmcm9tIGFwcGVhcmluZyBhcm91bmQgZWxlbWVudHMgdGhhdFxuLy8gbWlnaHQgc3RpbGwgcmVzcG9uZCB0byBwb2ludGVyIGV2ZW50cy5cbi8vXG4vLyBDcmVkaXQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9zdWl0Y3NzL2Jhc2Vcblt0YWJpbmRleD1cIi0xXCJdOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi8vIEFsd2F5cyBoaWRlIGFuIGVsZW1lbnQgd2l0aCB0aGUgYGhpZGRlbmAgSFRNTCBhdHRyaWJ1dGUgKGZyb20gUHVyZUNTUykuXG5baGlkZGVuXSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4vLyBOT1JNQUxJWkUgcmVzZXQgYWxpZ25lbWVudHMgKHNlZSAwMC1yZXNldClcbnAsXG5sYWJlbCxcbmJsb2NrcXVvdGUsXG5hYmJyLFxubWFyayxcbmRlbCB7XG4gICAgZm9udC1zaXplOiB2KGV1aS1iYXNlLWZvbnQtc2l6ZSk7XG59XG5cbmIsIHN0cm9uZyB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4iLCJ0YWJsZS5ldWktdGFibGUtZGVmYXVsdCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgICBib3JkZXItc3BhY2luZzogMDtcbiAgICBjb2xvcjogdihldWktYmFzZS1jb2xvci1mb250KTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgLy8gT3ZlcmFsbCBzZXR0aW5ncyAoZGVmYXVsdClcbiAgICB0aGVhZCA+IHRyID4gdGgsXG4gICAgdGJvZHkgPiB0ciA+IHRkLFxuICAgIHRmb290ID4gdHIgPiB0ZCB7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgfVxuXG4gICAgdHIgPiB0aCxcbiAgICB0ciA+IHRkIHtcbiAgICAgICAgcGFkZGluZzogdihldWktYmFzZS1zcGFjaW5nLXMpO1xuICAgIH1cblxuICAgIHRoZWFkIHtcbiAgICAgICAgdGgge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHYoZXVpLWJhc2UtY29sb3ItZ3JleS0xMCk7XG4gICAgICAgICAgICBjb2xvcjogdihldWktYmFzZS1jb2xvci1ncmV5LTEwMCk7XG4gICAgICAgICAgICBmb250LXNpemU6IHYoZXVpLWJhc2UtZm9udC1zaXplKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IHYoZXVpLWJhc2Utc3BhY2luZy1tKSB2KGV1aS1iYXNlLXNwYWNpbmctcyk7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgZXVpLWZvbnQtZmFtaWx5LWJvbGQ7XG4gICAgICAgIH1cblxuICAgICAgICB0ciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2KGV1aS1iYXNlLWNvbG9yLWdyZXktMTApO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFN0cmlwZWQgJiBob3ZlcmVkIHRhYmxlcyBieSBkZWZhdWx0IChVWClcbiAgICB0Ym9keSB7XG4gICAgICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDsgIC8vIG9wdGlvbmFsIC0gZW5hYmxlIGlPUyBtb21lbnR1bSBzY3JvbGxpbmdcblxuICAgICAgICB0cjpudGgtb2YtdHlwZShvZGQpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHYoZXVpLWJhc2UtY29sb3ItZ3JleS0yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdihldWktYmFzZS1jb2xvci1ncmV5LTEwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRyOm50aC1vZi10eXBlKGV2ZW4pIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHYoZXVpLWJhc2UtY29sb3ItZ3JleS01KTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdihldWktYmFzZS1jb2xvci1ncmV5LTEwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHRyIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHYoZXVpLWJhc2UtY29sb3ItZ3JleS0yMCk7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlLXJvdztcbiAgICB9XG5cbiAgICAvLyBDb21wYWN0IHRhYmxlXG4gICAgJi0tY29tcGFjdCB7XG4gICAgICAgIHRoZWFkIHtcbiAgICAgICAgICAgIHRoIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiB2KGV1aS1iYXNlLXNwYWNpbmcteHMpIHYoZXVpLWJhc2Utc3BhY2luZy1zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRyID4gdGQge1xuICAgICAgICAgICAgcGFkZGluZzogdihldWktYmFzZS1zcGFjaW5nLTJ4cykgdihldWktYmFzZS1zcGFjaW5nLXMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmVzcG9uc2l2ZSB0YWJsZVxuICAgICYtLXJlc3BvbnNpdmUge1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJi0tYm9yZGVyZWQge1xuICAgICAgICAgICAgYm9yZGVyOiAwOyAgLy8gUHJldmVudCBkb3VibGUgYm9yZGVyIG9uIGhvcml6b250YWwgc2Nyb2xsIGR1ZSB0byB1c2Ugb2YgYGRpc3BsYXk6IGJsb2NrO2BcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIEJvcmRlcmVkIHRhYmxlXG4gICAgJi0tYm9yZGVyZWQge1xuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdihldWktYmFzZS1jb2xvci1ncmV5LTIwKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNoYWRvd2VkIHRhYmxlXG4gICAgJi0tc2hhZG93ZWQge1xuICAgICAgICBib3gtc2hhZG93OiB2KGV1aS1iYXNlLXNoYWRvdy0xKTtcbiAgICB9XG5cbiAgICAvLyBOb1dyYXAgdGFibGUgY29udGVudCAoYWxzbyBkaXNhYmxlcyBlbGxpcHNpcylcbiAgICAmLS1ub3dyYXAge1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgICAgIHRoZWFkID4gdHIgPiB0aCxcbiAgICAgICAgdGJvZHkgPiB0ciA+IHRkLFxuICAgICAgICB0Zm9vdCA+IHRyID4gdGQge1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIENlbnRlcmVkIHRhYmxlXG4gICAgJi0tY2VudGVyZWQge1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cblxuICAgIC8vIE1pZGRsZSBhbGlnbmVkIGNlbGxzIGNvbnRlbnRcbiAgICAmLS1hbGlnbi1taWRkbGUge1xuICAgICAgICB0aGVhZCA+IHRyID4gdGgsXG4gICAgICAgIHRib2R5ID4gdHIgPiB0ZCxcbiAgICAgICAgdGZvb3QgPiB0ciA+IHRkIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvLyBTZXRzIHRoZSBsYXlvdXQgb2YgdGhlIGV1aUNsZWFyYWJsZSBkaXJlY3RpdmVcbi5ldWktY2xlYXJhYmxlLXdyYXBwZXIge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICAuZXVpLWlucHV0LXRleHQtLWNsZWFyYWJsZS1pY29uIHtcbiAgICAgICAgYm90dG9tOiBjYWxjKCN7dihldWktYmFzZS1zcGFjaW5nLXMpfSAtIDJweCk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogdihldWktYmFzZS1zcGFjaW5nLXMpO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgICAgei1pbmRleDogdihldWktYmFzZS16LWluZGV4LWNsZWFyYWJsZS1pY29uKTtcbiAgICAgICAgQGluY2x1ZGUgZXVpLWFjY2Vzc2libGUtZm9jdXMoKTtcblxuICAgICAgICA+IHN2ZyB7XG4gICAgICAgICAgICBmaWxsOiB2KGV1aS1iYXNlLWNvbG9yLWdyZXktMzUpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBmaWxsOiB2KGV1aS1iYXNlLWNvbG9yLWRhbmdlci0xMDApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiJG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xuJG91dGxpbmUtc2l6ZTogMnB4O1xuXG4vLyBDYWxsIHRoaXMgbWl4aW4gdG8gZW5mb3JjZSB0aGUgYWNjZXNzaWJpbGl0eSB2aXN1YWxzIHdoZW4gb24gZm9jdXMvYWN0aXZlXG5AbWl4aW4gZXVpLWFjY2Vzc2libGUtZm9jdXMoJG9mZnNldDogJG91dGxpbmUtb2Zmc2V0LCAkc2l6ZTogJG91dGxpbmUtc2l6ZSkge1xuICAgICY6YWN0aXZlOm5vdChbcmVhZG9ubHldKSxcbiAgICAmOmZvY3VzOm5vdChbcmVhZG9ubHldKSB7XG4gICAgICAgIG91dGxpbmU6ICRzaXplIHNvbGlkIHYoZXVpLWJhc2UtY29sb3ItYWNjZXNzaWJsZS1mb2N1cyk7XG4gICAgICAgIG91dGxpbmUtb2Zmc2V0OiAkb2Zmc2V0O1xuICAgICAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIH1cblxuICAgIC8vICY6Zm9jdXMtdmlzaWJsZTpub3QoW3JlYWRvbmx5XSkge1xuICAgIC8vICAgICBvdXRsaW5lOiAkc2l6ZSBzb2xpZCB2KGV1aS1iYXNlLWNvbG9yLWFjY2Vzc2libGUtZm9jdXMpO1xuICAgIC8vICAgICBvdXRsaW5lLW9mZnNldDogJG9mZnNldDtcbiAgICAvLyAgICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICAvLyB9XG5cbiAgICAvLyBGb3JjZWQgZm9jdXNhYmxlIGVsZW1lbnRcbiAgICBbdGFiaW5kZXg9XCIwXCJdIHtcbiAgICAgICAgJjphY3RpdmU6bm90KFtyZWFkb25seV0pLFxuICAgICAgICAmOmZvY3VzOm5vdChbcmVhZG9ubHldKSB7XG4gICAgICAgICAgICBvdXRsaW5lOiAkc2l6ZSBzb2xpZCB2KGV1aS1iYXNlLWNvbG9yLWFjY2Vzc2libGUtZm9jdXMpO1xuICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6ICRvZmZzZXQ7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLmV1aS1pbnB1dC1tYXhsZW5ndGgtd3JhcHBlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgLmV1aS1pbnB1dC1tYXhsZW5ndGgge1xuICAgICAgICBAaW5jbHVkZSBldWktZm9udC1mYW1pbHkteHMoKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdihldWktYmFzZS1jb2xvci1ncmV5LTEwKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdihldWktYmFzZS1jb2xvci1ncmV5LTUwKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdihldWktYmFzZS1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgY29sb3I6IHYoZXVpLWJhc2UtY29sb3ItZ3JleS0xMDApO1xuICAgICAgICBwYWRkaW5nOiAwIHYoZXVpLWJhc2Utc3BhY2luZy0yeHMpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiBjYWxjKC0xICogI3t2KGV1aS1iYXNlLXNwYWNpbmcteHMpfSk7XG4gICAgICAgIHRvcDogY2FsYygtMSAqICN7dihldWktYmFzZS1zcGFjaW5nLXhzKX0pO1xuICAgICAgICB6LWluZGV4OiB2KGV1aS1iYXNlLXotaW5kZXgtaW5wdXQtbWF4bGVuZ3RoKTtcblxuICAgICAgICAmLS1pbnZhbGlkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHYoZXVpLWJhc2UtY29sb3Itd2FybmluZy0xMDApO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2KGV1aS1iYXNlLWNvbG9yLXdhcm5pbmctMTAwKTtcbiAgICAgICAgICAgIGNvbG9yOiB2KGV1aS1iYXNlLWNvbG9yLXdoaXRlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8vIElFMTArIFNWRydzIGFzcGVjdCByYXRpb3MgYW5kIHNpemVzIGZpeFxuQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpLCAoLW1zLWhpZ2gtY29udHJhc3Q6IG5vbmUpIHtcbiAgICBpbWdbc3JjJD1cIi5zdmdcIl0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG59XG5AbWVkaWEgc2NyZWVuIHtcbiAgICAvLyBJRSBGaXg6IEJpY3ViaWMgU2NhbGluZyBmb3IgSW1hZ2VzICYgZnVsbCB3aWR0aCBiYWNrZ3JvdW5kIChFQyBsb2dvKVxuICAgIGltZyB7XG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJTtcbiAgICAgICAgLW1zLWludGVycG9sYXRpb24tbW9kZTogYmljdWJpYztcbiAgICB9XG59XG4iLCIvLyBDT09LSUUgQ09OU0VOVFxuLmNvb2tpZS1jb25zZW50LWJhbm5lciB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICBtaW4td2lkdGg6IDUwJSAhaW1wb3J0YW50O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICAgIHJpZ2h0OiA1MCUgIWltcG9ydGFudDtcbiAgICB0b3A6IHYoZXVpLWJhc2Utc3BhY2luZy1tKSAhaW1wb3J0YW50O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg1MCUpICFpbXBvcnRhbnQ7XG4gICAgei1pbmRleDogdihldWktYmFzZS16LWluZGV4LW1heCkgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiB2KGV1aS1iYXNlLXNoYWRvdy0yNCkgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kOiB2KGV1aS1iYXNlLWNvbG9yLXByaW1hcnkpICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6IHZhcihldWktYmFzZS1jb2xvci13aGl0ZSkgIWltcG9ydGFudDtcbn1cbiIsIiNsb2FkZXItd3JhcHBlciB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGxlZnQ6IDA7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB6LWluZGV4OiAxMDAwO1xuXG4gICAgI2xvYWRlciB7XG4gICAgICAgIC13ZWJraXQtYW5pbWF0aW9uOiBzcGluIDJzIGxpbmVhciBpbmZpbml0ZTsgLyogQ2hyb21lLCBPcGVyYSAxNSssIFNhZmFyaSA1KyAqL1xuICAgICAgICBhbmltYXRpb246IHNwaW4gMnMgbGluZWFyIGluZmluaXRlOyAvKiBDaHJvbWUsIEZpcmVmb3ggMTYrLCBJRSAxMCssIE9wZXJhICovXG4gICAgICAgIGFuaW1hdGlvbjogaG91cmdsYXNzIDVzIGxpbmVhciBpbmZpbml0ZTtcbiAgICAgICAgYm9yZGVyOiAxMHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIGJvcmRlci10b3AtY29sb3I6IHYoZXVpLWJhc2UtY29sb3Itd2FybmluZy0xMDApO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAyMDBweDtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICBtYXJnaW46IC0xMDBweCAwIDAgLTEwMHB4O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB3aWR0aDogMjAwcHg7XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIC13ZWJraXQtYW5pbWF0aW9uOiBzcGluIDJzIGxpbmVhciBpbmZpbml0ZTsgLyogQ2hyb21lLCBPcGVyYSAxNSssIFNhZmFyaSA1KyAqL1xuICAgICAgICAgICAgYW5pbWF0aW9uOiBzcGluIDJzIGxpbmVhciBpbmZpbml0ZTsgLyogQ2hyb21lLCBGaXJlZm94IDE2KywgSUUgMTArLCBPcGVyYSAqL1xuICAgICAgICAgICAgYW5pbWF0aW9uOiBob3VyZ2xhc3MgNHMgbGluZWFyIGluZmluaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxMHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdihldWktYmFzZS1jb2xvci1kYW5nZXItMTAwKTtcbiAgICAgICAgICAgIGJvdHRvbTogNXB4O1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIGxlZnQ6IDVweDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHJpZ2h0OiA1cHg7XG4gICAgICAgICAgICB0b3A6IDVweDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIC13ZWJraXQtYW5pbWF0aW9uOiBzcGluIDFzIGxpbmVhciBpbmZpbml0ZTsgLyogQ2hyb21lLCBPcGVyYSAxNSssIFNhZmFyaSA1KyAqL1xuICAgICAgICAgICAgYW5pbWF0aW9uOiBzcGluIDFzIGxpbmVhciBpbmZpbml0ZTsgLyogQ2hyb21lLCBGaXJlZm94IDE2KywgSUUgMTArLCBPcGVyYSAqL1xuICAgICAgICAgICAgYW5pbWF0aW9uOiBob3VyZ2xhc3MgM3MgbGluZWFyIGluZmluaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxMHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdihldWktYmFzZS1jb2xvci1wcmltYXJ5LTEwMCk7XG4gICAgICAgICAgICBib3R0b206IDIwcHg7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgbGVmdDogMjBweDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHJpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgdG9wOiAyMHB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG5ALXdlYmtpdC1rZXlmcmFtZXMgc3BpbiB7XG4gICAgMCUge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgICAgICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgIH1cblxuICAgIDEwMCUge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgICAgIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgIH1cbn1cbkBrZXlmcmFtZXMgc3BpbiB7XG4gICAgMCUge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgICAgICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgIH1cblxuICAgIDEwMCUge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgICAgIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgIH1cbn1cbkAtd2Via2l0LWtleWZyYW1lcyBob3VyZ2xhc3MgIHtcbiAgICAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDApO1xuICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NSwgMC4wNTUsIDAuNjc1LCAwLjE5KTtcbiAgICB9XG4gICAgNTAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoOTAwZGVnKTtcbiAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxLCAwLjM1NSwgMSk7XG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODAwZGVnKTtcbiAgICB9XG59XG5Aa2V5ZnJhbWVzIGhvdXJnbGFzcyB7XG4gICAgMCUge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUsIDAuMDU1LCAwLjY3NSwgMC4xOSk7XG4gICAgfVxuICAgIDUwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDkwMGRlZyk7XG4gICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpO1xuICAgIH1cbiAgICAxMDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwMGRlZyk7XG4gICAgfVxufVxuIl19 */",":root {\n // COLOR SHADES\n @each $color, $shades in $eui-base-tokens-colors {\n @each $shade, $value in $shades {\n --eui-base-color-#{$color + '-' + $shade}: #{$value};\n --eui-base-color-#{$color + '-' + $shade}-rgb: #{toRGB($value)};\n --eui-base-color-#{$color + '-' + $shade}-contrast: #{getContrast($value)};\n --eui-base-color-#{$color + '-' + $shade}-contrast-rgb: #{toRGB(getContrast($value))};\n }\n }\n\n // DEFAULTS 100s\n @each $color, $value in $eui-base-tokens-colors-100s {\n --eui-base-color-#{'' + $color}: #{$value};\n }\n\n // RAW COLORS\n --eui-base-color-text: var(--eui-base-color-grey-100);\n --eui-base-color-link: var(--eui-base-color-primary-100);\n --eui-base-color-black: var(--eui-base-color-grey-100);\n --eui-base-color-white: var(--eui-base-color-grey-0);\n}\n",":root {\n // // FONTS\n --eui-base-font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif;\n // --eui-base-font-family: 'Source Sans Pro', sans-serif; <link href=\"https://fonts.cdnfonts.com/css/source-sans-pro\" rel=\"stylesheet\">\n // --eui-base-font-family: 'Roboto', sans-serif; <link href=\"https://fonts.cdnfonts.com/css/roboto\" rel=\"stylesheet\">\n --eui-base-font-family-icons: 'eui-icons', sans-serif;\n --eui-base-font-family-monospace: 'Consolas', 'Liberation Mono', 'Courier New', monospace;\n\n // FONT-SIZES\n --eui-base-font-size: 16px;\n @each $font-size, $value in $eui-base-tokens-font-sizes {\n --eui-base-font-size-#{$font-size}: #{$value};\n }\n\n // ICON-SIZES\n --eui-base-icon-size: 1.5rem;\n @each $icon-size, $value in $eui-base-tokens-icon-sizes {\n --eui-base-icon-size-#{$icon-size}: #{$value};\n }\n\n @each $size, $def in $eui-base-tokens-fonts {\n --eui-base-font-#{$size}: #{$def};\n }\n\n // SPACINGS\n @each $spacing, $value in $eui-base-tokens-spacings {\n --eui-base-spacing-#{$spacing}: #{$value};\n }\n\n // SHADOWS\n @each $shadow, $value in $eui-base-tokens-shadows {\n --eui-base-shadow-#{$shadow}: #{$value};\n }\n\n // Z-INDEXES\n @each $idx, $value in $eui-base-tokens-z-indexes {\n --eui-base-z-index-#{$idx}: #{$value};\n }\n}\n",":root {\n --eui-base-line-height: 1.5;\n --eui-base-scale-factor: 1;\n --eui-base-disabled-opacity: 0.45;\n\n --eui-base-border-radius: 3px;\n\n --eui-base-border: 1px solid var(--eui-color-grey-lighter);\n --eui-base-border-light: 1px solid var(--eui-color-grey-light);\n --eui-base-border-lighter: 1px solid var(--eui-color-grey-lighter);\n --eui-base-border-lightest: 1px solid var(--eui-color-grey-lightest);\n\n // Animations related\n --eui-base-animation-linear-out-slow-in-timing-function: cubic-bezier(0, 0, 0.2, 1);\n --eui-base-animation-fast-out-slow-in-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n --eui-base-animation-fast-out-linear-in-timing-function: cubic-bezier(0.4, 0, 1, 1);\n --eui-base-animation-ease-timing-function: cubic-bezier(0.25, 0.1, 0.25, 1); // ease\n --eui-base-animation-ease-in-out-timing-function: ease-in-out;\n\n --eui-base-animation-duration-fast: 0.25s;\n --eui-base-animation-duration-medium: 0.5s;\n --eui-base-animation-duration-slow: 1s;\n --eui-base-animation-duration-base: 500ms;\n --eui-base-animation-duration: var(--eui-base-animation-duration-base);\n\n --eui-base-animation-transition-base: all 0.2s #{var(--eui-base-animation-linear-out-slow-in-timing-function)};\n --eui-base-animation-transition-ease: all 0.2s #{var(--eui-base-animation-ease-timing-function)};\n --eui-base-animation-transition-ease-in-out: all 0.2s #{var(--eui-base-animation-ease-in-out-timing-function)};\n --eui-base-animation-transition-ease-in-out-1s: all 1s #{var(--eui-base-animation-ease-in-out-timing-function)};\n\n --eui-base-animation-delay: 0s;\n --eui-base-animation-direction: normal;\n --eui-base-animation-fill-mode: forwards; // this prevents the animation from restarting\n --eui-base-animation-background-color: var(--eui-base-color-primary-50); // #cfcfdf;\n\n // Extra colors\n --eui-base-color-accessible-focus: var(--eui-base-color-accent-110); // Carbon blue: #0f62fe;\n}\n",":root {\n // eUI APP\n --eui-app-header-height-default: 0px;\n --eui-app-header-height: 0px;\n --eui-app-header-height-active: 90px;\n --eui-app-header-height-shrink: 0px;\n\n --eui-app-breadcrumb-height-default: 0px;\n --eui-app-breadcrumb-height: 0px;\n --eui-app-breadcrumb-height-active: 20px;\n\n --eui-app-top-message-height-default: 0px;\n --eui-app-top-message-height: 0px;\n --eui-app-top-message-height-active: 42px;\n\n --eui-app-toolbar-height-default: 0px;\n --eui-app-toolbar-height: 0px;\n --eui-app-toolbar-height-active: 55px;\n\n --eui-app-sidebar-width-default: 0px;\n --eui-app-sidebar-width: 0px;\n --eui-app-sidebar-width-active: 300px;\n --eui-app-sidebar-width-close-default: 0px;\n --eui-app-sidebar-width-close: 0px;\n --eui-app-sidebar-width-close-active: 64px;\n --eui-app-sidebar-header-height: 0px;\n --eui-app-sidebar-header-height-default: 0px;\n --eui-app-sidebar-header-height-active: 48px;\n --eui-app-sidebar-footer-height: 0px;\n --eui-app-sidebar-footer-height-default: 0px;\n --eui-app-sidebar-footer-height-active: 24px;\n\n // Page Layout\n --eui-page-header-with-subtitle-height: 4rem;\n --eui-page-header-without-subtitle-height: 2rem;\n\n --eui-page-column--size-s: 50px;\n --eui-page-column--size-m: 150px;\n --eui-page-column--size-l: 200px;\n --eui-page-column--size-xl: 250px;\n --eui-page-column--size-xxl: 300px;\n --eui-page-column--size-xxxl: 350px;\n --eui-page-column-footer-height: 3.5rem;\n}\n\n.xs, .sm {\n --eui-app-header-height: 0px;\n}\n",":root {\n --eui-app-box-shadow: none; // var(--eui-base-shadow-z-depth-0);\n}\n",".eui-icon-svg {\n fill: currentColor;\n margin: 0;\n transform: scaleX(1) scaleY(1) rotateZ(0deg);\n transition: transform 300ms ease-in-out;\n display: inline-flex;\n align-items: center;\n}\n@each $size, $value in $eui-base-tokens-icon-sizes {\n .eui-icon-svg--size-#{$size} {\n height: #{$value};\n width: #{$value};\n };\n}\n@each $color, $shades in $eui-base-tokens-colors {\n @each $shade, $value in $shades {\n .eui-icon-svg--color-#{$color + '-' + $shade} {\n color: #{$value};\n fill: #{$value};\n };\n }\n}\n@each $color, $value in $eui-base-tokens-colors-100s {\n .eui-icon-svg--color-#{'' + $color} {\n color: #{$value};\n fill: #{$value};\n };\n}\n\n.eui-icon-svg--color-white {\n color: var(--eui-base-color-white);\n fill: var(--eui-base-color-white);\n}\n\n.eui-icon-svg--color-black {\n color: var(--eui-base-color-black);\n fill: var(--eui-base-color-black);\n}\n\n.eui-icon-svg--color-transparent {\n color: transparent !important; // important for isLoading\n fill: transparent !important;\n}\n","// Row\n//\n// Rows contain your columns.\n\n@if $enable-grid-classes {\n .row {\n @include make-row();\n\n > * {\n @include make-col-ready();\n }\n }\n}\n\n@if $enable-cssgrid {\n .grid {\n display: grid;\n grid-template-rows: repeat(var(--#{$variable-prefix}rows, 1), 1fr);\n grid-template-columns: repeat(var(--#{$variable-prefix}columns, #{$grid-columns}), 1fr);\n gap: var(--#{$variable-prefix}gap, #{$grid-gutter-width});\n\n @include make-cssgrid();\n }\n}\n\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n@if $enable-grid-classes {\n @include make-grid-columns();\n}\n","// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-row($gutter: $grid-gutter-width) {\n --#{$variable-prefix}gutter-x: #{$gutter};\n --#{$variable-prefix}gutter-y: 0;\n display: flex;\n flex-wrap: wrap;\n // TODO: Revisit calc order after https://github.com/react-bootstrap/react-bootstrap/issues/6039 is fixed\n margin-top: calc(-1 * var(--#{$variable-prefix}gutter-y)); // stylelint-disable-line function-disallowed-list\n margin-right: calc(-.5 * var(--#{$variable-prefix}gutter-x)); // stylelint-disable-line function-disallowed-list\n margin-left: calc(-.5 * var(--#{$variable-prefix}gutter-x)); // stylelint-disable-line function-disallowed-list\n}\n\n@mixin make-col-ready($gutter: $grid-gutter-width) {\n // Add box sizing if only the grid is loaded\n box-sizing: if(variable-exists(include-column-box-sizing) and $include-column-box-sizing, border-box, null);\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we set the width\n // later on to override this initial width.\n flex-shrink: 0;\n width: 100%;\n max-width: 100%; // Prevent `.col-auto`, `.col` (& responsive variants) from breaking out the grid\n padding-right: calc(var(--#{$variable-prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list\n padding-left: calc(var(--#{$variable-prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list\n margin-top: var(--#{$variable-prefix}gutter-y);\n}\n\n@mixin make-col($size: false, $columns: $grid-columns) {\n @if $size {\n flex: 0 0 auto;\n width: percentage(divide($size, $columns));\n\n } @else {\n flex: 1 1 0;\n max-width: 100%;\n }\n}\n\n@mixin make-col-auto() {\n flex: 0 0 auto;\n width: auto;\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n $num: divide($size, $columns);\n margin-left: if($num == 0, 0, percentage($num));\n}\n\n// Row columns\n//\n// Specify on a parent element(e.g., .row) to force immediate children into NN\n// numberof columns. Supports wrapping to new lines, but does not do a Masonry\n// style grid.\n@mixin row-cols($count) {\n > * {\n flex: 0 0 auto;\n width: divide(100%, $count);\n }\n}\n\n// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n .col#{$infix} {\n flex: 1 0 0%; // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4\n }\n\n .row-cols#{$infix}-auto > * {\n @include make-col-auto();\n }\n\n @if $grid-row-columns > 0 {\n @for $i from 1 through $grid-row-columns {\n .row-cols#{$infix}-#{$i} {\n @include row-cols($i);\n }\n }\n }\n\n .col#{$infix}-auto {\n @include make-col-auto();\n }\n\n @if $columns > 0 {\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @include make-col($i, $columns);\n }\n }\n\n // `$columns - 1` because offsetting by the width of an entire row isn't possible\n @for $i from 0 through ($columns - 1) {\n @if not ($infix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n .offset#{$infix}-#{$i} {\n @include make-col-offset($i, $columns);\n }\n }\n }\n }\n\n // Gutters\n //\n // Make use of `.g-*`, `.gx-*` or `.gy-*` utilities to change spacing between the columns.\n @each $key, $value in $gutters {\n .g#{$infix}-#{$key},\n .gx#{$infix}-#{$key} {\n --#{$variable-prefix}gutter-x: #{$value};\n }\n\n .g#{$infix}-#{$key},\n .gy#{$infix}-#{$key} {\n --#{$variable-prefix}gutter-y: #{$value};\n }\n }\n }\n }\n}\n\n@mixin make-cssgrid($columns: $grid-columns, $breakpoints: $grid-breakpoints) {\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n @if $columns > 0 {\n @for $i from 1 through $columns {\n .g-col#{$infix}-#{$i} {\n grid-column: auto / span $i;\n }\n }\n\n // Start with `1` because `0` is and invalid value.\n // Ends with `$columns - 1` because offsetting by the width of an entire row isn't possible.\n @for $i from 1 through ($columns - 1) {\n .g-start#{$infix}-#{$i} {\n grid-column-start: $i;\n }\n }\n }\n }\n }\n}\n","// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n// md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n $n: index($breakpoint-names, $name);\n @if not $n {\n @error \"breakpoint `#{$name}` not found in `#{$breakpoints}`\";\n }\n @return if($n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n $min: map-get($breakpoints, $name);\n @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width.\n// The maximum value is reduced by 0.02px to work around the limitations of\n// `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n// >> breakpoint-max(md, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n $max: map-get($breakpoints, $name);\n @return if($max and $max > 0, $max - .02, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.\n// Useful for making responsive utilities.\n//\n// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"\" (Returns a blank string)\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (min-width: $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (max-width: $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $next: breakpoint-next($name, $breakpoints);\n $max: breakpoint-max($next);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($next, $breakpoints) {\n @content;\n }\n }\n}\n","@use '@angular/cdk';\n\n@mixin ripple() {\n // The host element of an mat-ripple directive should always have a position of \"absolute\" or\n // \"relative\" so that the ripples inside are correctly positioned relatively to the container.\n .mat-ripple {\n overflow: hidden;\n\n // By default, every ripple container should have position: relative in favor of creating an\n // easy API for developers using the MatRipple directive.\n position: relative;\n\n // Promote containers that have ripples to a new layer. We want to target `:not(:empty)`,\n // because we don't want all ripple containers to have their own layer since they're used in a\n // lot of places and the layer is only relevant while animating. Note that ideally we'd use\n // the `contain` property here (see #13175), because `:empty` can be broken by having extra\n // text inside the element, but it isn't very well supported yet.\n &:not(:empty) {\n transform: translateZ(0);\n }\n }\n\n .mat-ripple.mat-ripple-unbounded {\n overflow: visible;\n }\n\n .mat-ripple-element {\n position: absolute;\n border-radius: 50%;\n pointer-events: none;\n\n transition: opacity, transform 0ms cubic-bezier(0, 0, 0.2, 1);\n\n // We use a 3d transform here in order to avoid an issue in Safari where\n // the ripples aren't clipped when inside the shadow DOM (see #24028).\n transform: scale3d(0, 0, 0);\n\n // In high contrast mode the ripple is opaque, causing it to obstruct the content.\n @include cdk.high-contrast(active, off) {\n display: none;\n }\n }\n}\n","/// Emits a CSS class, `.cdk-visually-hidden`. This class can be applied to an element\n/// to make that element visually hidden while remaining available to assistive technology.\n@mixin a11y-visually-hidden() {\n .cdk-visually-hidden {\n border: 0;\n clip: rect(0 0 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n\n // This works around a Chrome bug that can cause the tab to crash when large amounts of\n // non-English text get wrapped: https://bugs.chromium.org/p/chromium/issues/detail?id=1201444\n white-space: nowrap;\n\n // Avoid browsers rendering the focus ring in some cases.\n outline: 0;\n\n // Avoid some cases where the browser will still render the native controls (see #9049).\n -webkit-appearance: none;\n -moz-appearance: none;\n\n // We need at least one of top/bottom/left/right in order to prevent cases where the\n // absolute-positioned element is pushed down and can affect scrolling (see #24597).\n // `left` was chosen here, because it's the least likely to break overrides where the\n // element might have been positioned (e.g. `mat-checkbox`).\n left: 0;\n\n [dir='rtl'] & {\n left: auto;\n right: 0;\n }\n }\n}\n\n/// @deprecated Use `a11y-visually-hidden`.\n@mixin a11y() {\n @include a11y-visually-hidden;\n}\n\n/// Emits the mixin's content nested under `$selector-context` if `$selector-context`\n/// is non-empty.\n/// @param {String} selector-context The selector under which to nest the mixin's content.\n@mixin _optionally-nest-content($selector-context) {\n @if ($selector-context == '') {\n @content;\n }\n @else {\n #{$selector-context} {\n @content;\n }\n }\n}\n\n/// Applies styles for users in high contrast mode. Note that this only applies\n/// to Microsoft browsers. Chrome can be included by checking for the `html[hc]`\n/// attribute, however Chrome handles high contrast differently.\n///\n/// @param {String} target Type of high contrast setting to target. Defaults to `active`, can be\n/// `white-on-black` or `black-on-white`.\n/// @param {String} encapsulation Whether to emit styles for view encapsulation. Values are:\n/// * `on` - works for `Emulated`, `Native`, and `ShadowDom`\n/// * `off` - works for `None`\n/// * `any` - works for all encapsulation modes by emitting the CSS twice (default).\n@mixin high-contrast($target: active, $encapsulation: 'any') {\n @if ($target != 'active' and $target != 'black-on-white' and $target != 'white-on-black') {\n @error 'Unknown cdk-high-contrast value \"#{$target}\" provided. ' +\n 'Allowed values are \"active\", \"black-on-white\", and \"white-on-black\"';\n }\n\n @if ($encapsulation != 'on' and $encapsulation != 'off' and $encapsulation != 'any') {\n @error 'Unknown cdk-high-contrast encapsulation \"#{$encapsulation}\" provided. ' +\n 'Allowed values are \"on\", \"off\", and \"any\"';\n }\n\n // If the selector context has multiple parts, such as `.section, .region`, just doing\n // `.cdk-high-contrast-xxx #{&}` will only apply the parent selector to the first part of the\n // context. We address this by nesting the selector context under .cdk-high-contrast.\n @at-root {\n $selector-context: #{&};\n\n @if ($encapsulation != 'on') {\n // Note that if this selector is updated, the same change has to be made inside\n // `_overlay.scss` which can't depend on this mixin due to some infrastructure limitations.\n .cdk-high-contrast-#{$target} {\n @include _optionally-nest-content($selector-context) {\n @content;\n }\n }\n }\n\n @if ($encapsulation != 'off') {\n .cdk-high-contrast-#{$target} :host {\n @include _optionally-nest-content($selector-context) {\n @content;\n }\n }\n }\n }\n}\n","// We want overlays to always appear over user content, so set a baseline\n// very high z-index for the overlay container, which is where we create the new\n// stacking context for all overlays.\n$overlay-container-z-index: 1000 !default;\n$overlay-z-index: 1000 !default;\n$overlay-backdrop-z-index: 1000 !default;\n\n// Background color for all of the backdrops\n$overlay-backdrop-color: rgba(0, 0, 0, 0.32) !default;\n\n// Default backdrop animation is based on the Material Design swift-ease-out.\n$backdrop-animation-duration: 400ms !default;\n$backdrop-animation-timing-function: cubic-bezier(0.25, 0.8, 0.25, 1) !default;\n\n/// Emits structural styles required for cdk/overlay to function.\n@mixin overlay() {\n .cdk-overlay-container, .cdk-global-overlay-wrapper {\n // Disable events from being captured on the overlay container.\n pointer-events: none;\n\n // The container should be the size of the viewport.\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n }\n\n // The overlay-container is an invisible element which contains all individual overlays.\n .cdk-overlay-container {\n position: fixed;\n z-index: $overlay-container-z-index;\n\n &:empty {\n // Hide the element when it doesn't have any child nodes. This doesn't\n // include overlays that have been detached, rather than disposed.\n display: none;\n }\n }\n\n // We use an extra wrapper element in order to use make the overlay itself a flex item.\n // This makes centering the overlay easy without running into the subpixel rendering\n // problems tied to using `transform` and without interfering with the other position\n // strategies.\n .cdk-global-overlay-wrapper {\n display: flex;\n position: absolute;\n z-index: $overlay-z-index;\n }\n\n // A single overlay pane.\n .cdk-overlay-pane {\n // Note: it's important for this one to start off `absolute`,\n // in order for us to be able to measure it correctly.\n position: absolute;\n pointer-events: auto;\n box-sizing: border-box;\n z-index: $overlay-z-index;\n\n // For connected-position overlays, we set `display: flex` in\n // order to force `max-width` and `max-height` to take effect.\n display: flex;\n max-width: 100%;\n max-height: 100%;\n }\n\n .cdk-overlay-backdrop {\n // TODO(jelbourn): reuse sidenav fullscreen mixin.\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n\n z-index: $overlay-backdrop-z-index;\n pointer-events: auto;\n -webkit-tap-highlight-color: transparent;\n transition: opacity $backdrop-animation-duration $backdrop-animation-timing-function;\n opacity: 0;\n\n &.cdk-overlay-backdrop-showing {\n opacity: 1;\n\n // Note that we can't import and use the `high-contrast` mixin from `_a11y.scss`, because\n // this file will be copied to the top-level `cdk` package when putting together the files\n // for npm. Any relative import paths we use here will become invalid once the file is copied.\n .cdk-high-contrast-active & {\n // In high contrast mode the rgba background will become solid\n // so we need to fall back to making it opaque using `opacity`.\n opacity: 0.6;\n }\n }\n }\n\n .cdk-overlay-dark-backdrop {\n background: $overlay-backdrop-color;\n }\n\n .cdk-overlay-transparent-backdrop {\n // Define a transition on the visibility so that the `transitionend` event can fire immediately.\n transition: visibility 1ms linear, opacity 1ms linear;\n visibility: hidden;\n opacity: 1;\n\n // Note: as of Firefox 57, having the backdrop be `background: none` will prevent it from\n // capturing the user's mouse scroll events. Since we also can't use something like\n // `rgba(0, 0, 0, 0)`, we work around the inconsistency by not setting the background at\n // all and using `opacity` to make the element transparent.\n &.cdk-overlay-backdrop-showing {\n opacity: 0;\n visibility: visible;\n }\n }\n\n .cdk-overlay-backdrop-noop-animation {\n transition: none;\n }\n\n // Overlay parent element used with the connected position strategy. Used to constrain the\n // overlay element's size to fit within the viewport.\n .cdk-overlay-connected-position-bounding-box {\n position: absolute;\n z-index: $overlay-z-index;\n\n // We use `display: flex` on this element exclusively for centering connected overlays.\n // When *not* centering, a top/left/bottom/right will be set which overrides the normal\n // flex layout.\n display: flex;\n\n // We use the `column` direction here to avoid some flexbox issues in Edge\n // when using the \"grow after open\" options.\n flex-direction: column;\n\n // Add some dimensions so the element has an `innerText` which some people depend on in tests.\n min-width: 1px;\n min-height: 1px;\n }\n\n // Used when disabling global scrolling.\n .cdk-global-scrollblock {\n position: fixed;\n\n // Necessary for the content not to lose its width. Note that we're using 100%, instead of\n // 100vw, because 100vw includes the width plus the scrollbar, whereas 100% is the width\n // that the element had before we made it `fixed`.\n width: 100%;\n\n // Note: this will always add a scrollbar to whatever element it is on, which can\n // potentially result in double scrollbars. It shouldn't be an issue, because we won't\n // block scrolling on a page that doesn't have a scrollbar in the first place.\n overflow-y: scroll;\n }\n}\n","// Structural styles for the autosize text fields.\n@mixin text-field-autosize() {\n // Remove the resize handle on autosizing textareas, because whatever height\n // the user resized to will be overwritten once they start typing again.\n textarea.cdk-textarea-autosize {\n resize: none;\n }\n\n // This class is temporarily applied to the textarea when it is being measured. It is immediately\n // removed when measuring is complete. We use `!important` rules here to make sure user-specified\n // rules do not interfere with the measurement.\n textarea.cdk-textarea-autosize-measuring {\n @include _autosize-measuring-base;\n height: auto !important;\n overflow: hidden !important;\n }\n\n // Similar to the `cdk-textarea-autosize-measuring` class, but only applied on Firefox. We need\n // to use this class, because Firefox has a bug where changing the `overflow` breaks the user's\n // ability to undo/redo what they were typing (see #16629). This class is only scoped to Firefox,\n // because the measurements there don't seem to be affected by the `height: 0`, whereas on other\n // browsers they are, e.g. Chrome detects longer text and IE does't resize back to normal.\n // Identical issue report: https://bugzilla.mozilla.org/show_bug.cgi?id=448784\n textarea.cdk-textarea-autosize-measuring-firefox {\n @include _autosize-measuring-base;\n height: 0 !important;\n }\n}\n\n// Core styles that enable monitoring autofill state of text fields.\n@mixin text-field-autofill() {\n // Keyframes that apply no styles, but allow us to monitor when an text field becomes autofilled\n // by watching for the animation events that are fired when they start. Note: the /*!*/ comment is\n // needed to prevent LibSass from stripping the keyframes out.\n // Based on: https://medium.com/@brunn/detecting-autofilled-fields-in-javascript-aed598d25da7\n @keyframes cdk-text-field-autofill-start {/*!*/}\n @keyframes cdk-text-field-autofill-end {/*!*/}\n\n .cdk-text-field-autofill-monitored:-webkit-autofill {\n // Since Chrome 80 we need a 1ms delay, or the animationstart event won't fire.\n animation: cdk-text-field-autofill-start 0s 1ms;\n }\n\n .cdk-text-field-autofill-monitored:not(:-webkit-autofill) {\n // Since Chrome 80 we need a 1ms delay, or the animationstart event won't fire.\n animation: cdk-text-field-autofill-end 0s 1ms;\n }\n}\n\n@mixin _autosize-measuring-base {\n // Having 2px top and bottom padding seems to fix a bug where Chrome gets an incorrect\n // measurement. We just have to account for it later and subtract it off the final result.\n padding: 2px 0 !important;\n box-sizing: content-box !important;\n}\n\n// Used to generate UIDs for keyframes used to change the text field autofill styles.\n$autofill-color-frame-count: 0;\n\n// Mixin used to apply custom background and foreground colors to an autofilled text field.\n// Based on: https://stackoverflow.com/questions/2781549/\n// removing-input-background-colour-for-chrome-autocomplete#answer-37432260\n@mixin text-field-autofill-color($background, $foreground:'') {\n @keyframes cdk-text-field-autofill-color-#{$autofill-color-frame-count} {\n to {\n background: $background;\n @if $foreground != '' { color: $foreground; }\n }\n }\n\n &:-webkit-autofill {\n animation: cdk-text-field-autofill-color-#{$autofill-color-frame-count} both;\n }\n\n &.cdk-text-field-autofill-monitored:-webkit-autofill {\n // Since Chrome 80 we need a 1ms delay for cdk-text-field-autofill-start, or the animationstart\n // event won't fire.\n animation: cdk-text-field-autofill-start 0s 1ms,\n cdk-text-field-autofill-color-#{$autofill-color-frame-count} both;\n }\n\n $autofill-color-frame-count: $autofill-color-frame-count + 1 !global;\n}\n\n// @deprecated Use `autosize` and `autofill` instead.\n@mixin text-field {\n @include text-field-autosize();\n @include text-field-autofill();\n}\n","@use 'sass:map';\n@use 'sass:meta';\n@use '@angular/cdk';\n@use '../style/layout-common';\n@use '../theming/theming';\n@use '../theming/inspection';\n\n// Private sass variables that will be used as reference throughout component stylesheets.\n$default-border-width: 3px;\n$default-border-style: solid;\n$default-border-color: transparent;\n$default-border-radius: 4px;\n\n// Mixin that renders the focus indicator structural styles.\n@mixin structural-styling($prefix) {\n .#{$prefix}-focus-indicator {\n position: relative;\n\n &::before {\n @include layout-common.fill();\n box-sizing: border-box;\n pointer-events: none;\n display: var(--#{$prefix}-focus-indicator-display, none); // Hide the indicator by default.\n border: var(\n --#{$prefix}-focus-indicator-border-width,\n #{$default-border-width}\n )\n var(\n --#{$prefix}-focus-indicator-border-style,\n #{$default-border-style}\n )\n var(\n --#{$prefix}-focus-indicator-border-color,\n #{$default-border-color}\n );\n border-radius: var(\n --#{$prefix}-focus-indicator-border-radius,\n #{$default-border-radius}\n );\n }\n\n // By default, render the focus indicator when the focus indicator host element takes focus.\n // Defining a pseudo element's content will cause it to render.\n &:focus::before {\n content: '';\n }\n }\n\n // Enable the indicator in high contrast mode.\n @include cdk.high-contrast(active, off) {\n @include customize-focus-indicators((display: block), $prefix);\n }\n}\n\n// Generates CSS variable declarations from a map.\n@mixin _output-variables($map) {\n @each $key, $value in $map {\n @if ($value) {\n --#{$key}: #{$value};\n }\n }\n}\n\n// Mixin that dedups CSS variables for the strong-focus-indicators mixin.\n@mixin customize-focus-indicators($config, $prefix) {\n $border-style: map.get($config, border-style);\n $border-width: map.get($config, border-width);\n $border-radius: map.get($config, border-radius);\n $border-color: map.get($config, border-color);\n $display: map.get($config, display);\n $map: (\n '#{$prefix}-focus-indicator-border-style': $border-style,\n '#{$prefix}-focus-indicator-border-width': $border-width,\n '#{$prefix}-focus-indicator-border-radius': $border-radius,\n '#{$prefix}-focus-indicator-border-color': $border-color,\n '#{$prefix}-focus-indicator-display': $display,\n );\n\n @if (&) {\n @include _output-variables($map);\n }\n @else {\n // We use `html` here instead of `:root`, because the\n // latter causes some issues with internal tooling.\n html {\n @include _output-variables($map);\n }\n }\n}\n\n@mixin strong-focus-indicators($config: ()) {\n // Default focus indicator config.\n $default-config: (\n border-color: black,\n display: block,\n );\n\n // Merge default config with user config.\n $config: map.merge($default-config, $config);\n\n @include customize-focus-indicators($config, 'mat');\n}\n\n@mixin mdc-strong-focus-indicators($config: ()) {\n // Default focus indicator config.\n $default-config: (\n border-color: black,\n display: block,\n );\n\n // Merge default config with user config.\n $config: map.merge($default-config, $config);\n\n @include customize-focus-indicators($config, 'mat-mdc');\n}\n\n@mixin strong-focus-indicators-color($theme-or-color) {\n @if meta.type-of($theme-or-color) == 'color' {\n @include customize-focus-indicators((\n border-color: $theme-or-color\n ), 'mat');\n }\n @else {\n $border-color: inspection.get-theme-color($theme-or-color, primary);\n @include customize-focus-indicators((\n border-color: $border-color\n ), 'mat');\n }\n}\n\n@mixin strong-focus-indicators-theme($theme-or-color) {\n @if meta.type-of($theme-or-color) == 'color' {\n @include customize-focus-indicators((\n border-color: $theme-or-color\n ), 'mat');\n }\n @else {\n @include theming.private-check-duplicate-theme-styles($theme-or-color, 'mat-focus-indicators') {\n @if inspection.theme-has($theme-or-color, color) {\n @include strong-focus-indicators-color($theme-or-color);\n }\n }\n }\n}\n\n@mixin mdc-strong-focus-indicators-color($theme-or-color) {\n @if meta.type-of($theme-or-color) == 'color' {\n @include customize-focus-indicators((\n border-color: $theme-or-color\n ), 'mat-mdc');\n }\n @else {\n $border-color: inspection.get-theme-color($theme-or-color, primary);\n @include customize-focus-indicators((\n border-color: $border-color\n ), 'mat-mdc');\n }\n}\n\n@mixin mdc-strong-focus-indicators-theme($theme-or-color) {\n @if meta.type-of($theme-or-color) == 'color' {\n @include customize-focus-indicators((\n border-color: $theme-or-color\n ), 'mat-mdc');\n }\n @else {\n @include theming.private-check-duplicate-theme-styles(\n $theme-or-color, 'mat-mdc-focus-indicators') {\n @if inspection.theme-has($theme-or-color, color) {\n @include mdc-strong-focus-indicators-color($theme-or-color);\n }\n }\n }\n}\n","// This mixin ensures an element spans to fill the nearest ancestor with defined positioning.\n@mixin fill {\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n position: absolute;\n}\n","@use 'sass:color';\n@use 'sass:map';\n@use 'sass:meta';\n\n/// Include content under the current selector (&) or the document root if there is no current\n/// selector.\n/// @param {String} $root [html] The default root selector to use when there is no current selector.\n/// @output The given content under the current selector, or root selector if there is no current\n/// selector.\n/// @content Content to output under the current selector, or root selector if there is no current\n/// selector.\n@mixin current-selector-or-root($root: html) {\n @if & {\n @content;\n }\n @else {\n #{$root} {\n @content;\n }\n }\n}\n\n/// A version of the standard `map.merge` function that takes a variable number of arguments.\n/// Each argument is merged into the final result from left to right.\n/// @param {List} $maps The maps to combine with map.merge\n/// @return {Map} The combined result of successively calling map.merge with each parameter.\n@function merge-all($maps...) {\n $result: ();\n @each $map in $maps {\n $result: map.merge($result, $map);\n }\n @return $result;\n}\n\n/// A version of the standard `map.deep-merge` function that takes a variable number of arguments.\n/// Each argument is deep-merged into the final result from left to right.\n/// @param {List} $maps The maps to combine with map.deep-merge\n/// @return {Map} The combined result of successively calling map.deep-merge with each parameter.\n@function deep-merge-all($maps...) {\n $result: ();\n @each $map in $maps {\n $result: map.deep-merge($result, $map);\n }\n @return $result;\n}\n\n/// Coerces the given value to a list, by converting any non-list value into a single-item list.\n/// This should be used when dealing with user-passed lists of args to avoid confusing errors,\n/// since Sass treats `($x)` as equivalent to `$x`.\n/// @param {Any} $value The value to coerce to a list.\n/// @return {List} The original $value if it was a list, otherwise a single-item list containing\n/// $value.\n@function coerce-to-list($value) {\n @return if(meta.type-of($value) != 'list', ($value,), $value);\n}\n\n/// A version of the Sass `color.change` function that is safe ot use with CSS variables.\n@function safe-color-change($color, $args...) {\n $args: meta.keywords($args);\n @return if(meta.type-of($color) == 'color', color.change($color, $args...), $color);\n}\n","//\n// Copyright 2020 Google Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n//\n\n@use 'sass:list';\n@use 'sass:map';\n@use 'sass:meta';\n@use './gss';\n\n/// When true, add an additional property/value declaration before declarations\n/// that use advanced features such as custom properties or CSS functions. This\n/// adds fallback support for older browsers such as IE11 that do not support\n/// these features at the cost of additional CSS. Set this variable to false to\n/// disable generating fallback declarations.\n$enable-fallback-declarations: true !default;\n\n/// Writes a CSS property/value declaration. This mixin is used throughout the\n/// theme package for consistency for dynamically setting CSS property values.\n///\n/// This mixin may optionally take a fallback value. For advanced features such\n/// as custom properties or CSS functions like min and max, a fallback value is\n/// recommended to support older browsers.\n///\n/// @param {String} $property - The CSS property of the declaration.\n/// @param {*} $value - The value of the CSS declaration. The value should be\n/// resolved by other theme functions first (i.e. custom property Maps and\n/// Material theme keys are not supported in this mixin). If the value is\n/// null, no declarations will be emitted.\n/// @param {*} $fallback - An optional fallback value for older browsers. If\n/// provided, a second property/value declaration will be added before the\n/// main property/value declaration.\n/// @param {Map} $gss - An optional Map of GSS annotations to add.\n/// @param {Bool} $important - If true, add `!important` to the declaration.\n@mixin declaration(\n $property,\n $value,\n $fallback-value: null,\n $gss: (),\n $important: false\n) {\n // Normally setting a null value to a property will not emit CSS, so mixins\n // wouldn't need to check this. However, Sass will throw an error if the\n // interpolated property is a custom property.\n @if $value != null {\n $important-rule: if($important, ' !important', '');\n\n @if $fallback-value and $enable-fallback-declarations {\n @include gss.annotate($gss);\n #{$property}: #{$fallback-value} #{$important-rule};\n\n // Add @alternate to annotations.\n $gss: map.merge(\n $gss,\n (\n alternate: true,\n )\n );\n }\n\n @include gss.annotate($gss);\n #{$property}: #{$value}#{$important-rule};\n }\n}\n\n/// Unpacks shorthand values for CSS properties (i.e. lists of 1-3 values).\n/// If a list of 4 values is given, it is returned as-is.\n///\n/// Examples:\n///\n/// unpack-value(4px) => 4px 4px 4px 4px\n/// unpack-value(4px 2px) => 4px 2px 4px 2px\n/// unpack-value(4px 2px 2px) => 4px 2px 2px 2px\n/// unpack-value(4px 2px 0 2px) => 4px 2px 0 2px\n///\n/// @param {Number | Map | List} $value - List of 1 to 4 value numbers.\n/// @return {List} a List of 4 value numbers.\n@function unpack-value($value) {\n @if meta.type-of($value) == 'map' or list.length($value) == 1 {\n @return $value $value $value $value;\n } @else if list.length($value) == 4 {\n @return $value;\n } @else if list.length($value) == 3 {\n @return list.nth($value, 1) list.nth($value, 2) list.nth($value, 3)\n list.nth($value, 2);\n } @else if list.length($value) == 2 {\n @return list.nth($value, 1) list.nth($value, 2) list.nth($value, 1)\n list.nth($value, 2);\n }\n\n @error \"Invalid CSS property value: '#{$value}' is more than 4 values\";\n}\n","@use 'sass:color';\n@use 'sass:map';\n@use '../core/tokens/m2/mat/datepicker' as tokens-mat-datepicker;\n@use '../core/theming/theming';\n@use '../core/theming/inspection';\n@use '../core/tokens/token-utils';\n@use '../core/style/sass-utils';\n@use '../core/typography/typography';\n@use '../button/icon-button-theme';\n\n// TODO(crisbeto): these variables aren't used anymore and should be removed.\n$selected-today-box-shadow-width: 1px;\n$selected-fade-amount: 0.6;\n$range-fade-amount: 0.2;\n$today-fade-amount: 0.2;\n$calendar-body-font-size: 13px !default;\n$calendar-weekday-table-font-size: 11px !default;\n\n@mixin _calendar-color($theme, $palette-name) {\n $palette-color: inspection.get-theme-color($theme, $palette-name);\n $range-color: tokens-mat-datepicker.private-get-range-background-color($palette-color);\n $range-tokens: tokens-mat-datepicker.get-range-color-tokens($range-color);\n $calendar-tokens:\n tokens-mat-datepicker.private-get-calendar-color-palette-color-tokens($theme, $palette-name);\n\n @include token-utils.create-token-values(tokens-mat-datepicker.$prefix,\n map.merge($calendar-tokens, $range-tokens));\n}\n\n@mixin base($theme) {}\n\n@mixin color($theme) {\n @include sass-utils.current-selector-or-root() {\n @include token-utils.create-token-values(tokens-mat-datepicker.$prefix,\n tokens-mat-datepicker.get-color-tokens($theme));\n }\n\n .mat-datepicker-content {\n &.mat-accent {\n @include _calendar-color($theme, accent);\n }\n\n &.mat-warn {\n @include _calendar-color($theme, warn);\n }\n }\n\n .mat-datepicker-toggle-active {\n &.mat-accent {\n $accent-tokens:\n tokens-mat-datepicker.private-get-toggle-color-palette-color-tokens($theme, accent);\n @include token-utils.create-token-values(tokens-mat-datepicker.$prefix, $accent-tokens);\n }\n\n &.mat-warn {\n $warn-tokens:\n tokens-mat-datepicker.private-get-toggle-color-palette-color-tokens($theme, warn);\n @include token-utils.create-token-values(tokens-mat-datepicker.$prefix, $warn-tokens);\n }\n }\n}\n\n@mixin typography($theme) {\n @include sass-utils.current-selector-or-root() {\n @include token-utils.create-token-values(tokens-mat-datepicker.$prefix,\n tokens-mat-datepicker.get-typography-tokens($theme));\n }\n}\n\n@mixin date-range-colors(\n $range-color,\n $comparison-color: tokens-mat-datepicker.$private-default-comparison-color,\n $overlap-color: tokens-mat-datepicker.$private-default-overlap-color,\n $overlap-selected-color:\n tokens-mat-datepicker.private-get-default-overlap-selected-color($overlap-color)) {\n $tokens: tokens-mat-datepicker.get-range-color-tokens(\n $range-color: $range-color,\n $comparison-color: $comparison-color,\n $overlap-color: $overlap-color,\n $overlap-selected-color: $overlap-selected-color,\n );\n\n @include sass-utils.current-selector-or-root() {\n @include token-utils.create-token-values(tokens-mat-datepicker.$prefix, $tokens);\n }\n}\n\n@mixin density($theme) {\n // TODO(crisbeto): move this into the structural styles\n // once the icon button density is switched to tokens.\n\n // Regardless of the user-passed density, we want the calendar\n // previous/next buttons to remain at density -2\n .mat-calendar-controls {\n @include icon-button-theme.density(-2);\n }\n}\n\n@mixin theme($theme) {\n @include theming.private-check-duplicate-theme-styles($theme, 'mat-datepicker') {\n @include base($theme);\n @if inspection.theme-has($theme, color) {\n @include color($theme);\n }\n @if inspection.theme-has($theme, density) {\n @include density($theme);\n }\n @if inspection.theme-has($theme, typography) {\n @include typography($theme);\n }\n }\n}\n","@use 'sass:math';\n@use '@material/density/functions' as mdc-density-functions;\n@use '@material/icon-button/icon-button-theme' as mdc-icon-button-theme;\n@use '../core/tokens/m2/mdc/icon-button' as tokens-mdc-icon-button;\n\n@use './button-theme-private';\n@use '../core/theming/theming';\n@use '../core/theming/inspection';\n\n$_icon-size: 24px;\n\n// TODO(crisbeto): move these into tokens\n@mixin _ripple-color($color) {\n --mat-mdc-button-persistent-ripple-color: #{$color};\n --mat-mdc-button-ripple-color: #{rgba($color, 0.1)};\n}\n\n@mixin base($theme) {\n // TODO(mmalerba): Move icon button base tokens here\n}\n\n@mixin color($theme) {\n $color-tokens: tokens-mdc-icon-button.get-color-tokens($theme);\n $is-dark: inspection.get-theme-type($theme) == dark;\n\n .mat-mdc-icon-button {\n @include button-theme-private.ripple-theme-styles($theme, false);\n @include mdc-icon-button-theme.theme($color-tokens);\n @include _ripple-color(if($is-dark, #fff, #000));\n\n &.mat-primary {\n @include _ripple-color(inspection.get-theme-color($theme, primary));\n @include mdc-icon-button-theme.theme(\n tokens-mdc-icon-button.private-get-color-palette-color-tokens($theme, primary));\n }\n\n &.mat-accent {\n @include _ripple-color(inspection.get-theme-color($theme, accent));\n @include mdc-icon-button-theme.theme(\n tokens-mdc-icon-button.private-get-color-palette-color-tokens($theme, accent));\n }\n\n &.mat-warn {\n @include _ripple-color(inspection.get-theme-color($theme, warn));\n @include mdc-icon-button-theme.theme(\n tokens-mdc-icon-button.private-get-color-palette-color-tokens($theme, warn));\n }\n }\n}\n\n@mixin typography($theme) {}\n\n@mixin density($theme) {\n $density-scale: inspection.get-theme-density($theme);\n // Manually apply the expected density theming, and include the padding\n // as it was applied before\n $calculated-size: mdc-density-functions.prop-value(\n $density-config: (\n size: (\n default: 48px,\n maximum: 48px,\n minimum: 28px,\n ),\n ),\n $density-scale: $density-scale,\n $property-name: size,\n );\n\n // Use `mat-mdc-button-base` to increase the specificity over the button's structural styles.\n .mat-mdc-icon-button.mat-mdc-button-base {\n // Match the styles that used to be present. This is necessary for backwards\n // compat to match the previous implementations selector count (two classes).\n @include mdc-icon-button-theme.theme((\n state-layer-size: $calculated-size,\n ));\n\n // TODO: Switch calculated-size to \"var(--mdc-icon-button-state-layer-size)\"\n // Currently fails validation because the variable is \"undefined\"\n // in the sass stack.\n // TODO: Switch icon-size to \"var(--mdc-icon-button-icon-size)\". Currently\n // fails validation because the variable is \"undefined\" in the sass stack.\n width: var(--mdc-icon-button-state-layer-size);\n height: var(--mdc-icon-button-state-layer-size);\n padding: math.div($calculated-size - $_icon-size, 2);\n\n @include button-theme-private.touch-target-density($density-scale);\n }\n}\n\n@mixin theme($theme) {\n @include theming.private-check-duplicate-theme-styles($theme, 'mat-icon-button') {\n @include base($theme);\n @if inspection.theme-has($theme, color) {\n @include color($theme);\n }\n @if inspection.theme-has($theme, density) {\n @include density($theme);\n }\n @if inspection.theme-has($theme, typography) {\n @include typography($theme);\n }\n }\n}\n","@use 'sass:map';\n@use '@material/ripple/ripple-theme' as mdc-ripple-theme;\n@use '@material/theme/theme-color' as mdc-theme-color;\n\n@use '../core/mdc-helpers/mdc-helpers';\n@use '../core/theming/inspection';\n\n@mixin _ripple-color($color) {\n --mat-mdc-button-persistent-ripple-color: #{$color};\n --mat-mdc-button-ripple-color: #{rgba($color, 0.1)};\n}\n\n@mixin ripple-theme-styles($theme, $is-filled) {\n $opacities: if(inspection.get-theme-type($theme) == dark,\n mdc-ripple-theme.$light-ink-opacities, mdc-ripple-theme.$dark-ink-opacities);\n\n // Ideally these styles would be structural, but MDC bases some of the opacities on the theme.\n &:hover .mat-mdc-button-persistent-ripple::before {\n opacity: map.get($opacities, hover);\n }\n\n &.cdk-program-focused,\n &.cdk-keyboard-focused {\n .mat-mdc-button-persistent-ripple::before {\n opacity: map.get($opacities, focus);\n }\n }\n\n &:active .mat-mdc-button-persistent-ripple::before {\n opacity: map.get($opacities, press);\n }\n\n @include _ripple-color(mdc-theme-color.prop-value(on-surface));\n\n &.mat-primary {\n @include _ripple-color(mdc-theme-color.prop-value(if($is-filled, on-primary, primary)));\n }\n\n &.mat-accent {\n @include _ripple-color(mdc-theme-color.prop-value(if($is-filled, on-secondary, secondary)));\n }\n\n &.mat-warn {\n @include _ripple-color(mdc-theme-color.prop-value(if($is-filled, on-error, error)));\n }\n}\n\n// Wraps the content style in a selector for the disabled state.\n// MDC adds theme color by using :not(:disabled), so just using [disabled] once will not\n// override this, neither will it apply to anchor tags. This needs to override the\n// previously set theme color, so it must be ordered after the theme styles.\n// TODO(andrewseguin): Discuss with the MDC team to see if we can avoid the :not(:disabled) by\n// manually styling disabled buttons with a [disabled] selector.\n@mixin apply-disabled-style() {\n &[disabled][disabled] {\n @content;\n }\n}\n\n// Hides the touch target on lower densities.\n@mixin touch-target-density($scale) {\n @include mdc-helpers.if-touch-targets-unsupported($scale) {\n .mat-mdc-button-touch-target {\n display: none;\n }\n }\n}\n",".mat-calendar {\n font-size: small !important;\n font-family: v(eui-base-font-family) !important;\n\n &.mat-calendar-year {\n .mat-calendar-period-button {\n display: none;\n }\n }\n}\n","// MATERIAL Drag & Drop overrides\n.cdk-drag-handle {\n cursor: move !important;\n}\n\n.cdk-drop-list {\n display: flex;\n min-width: 100%;\n\n &:not(.cdk-drop-list-disabled) {\n min-height: v(eui-base-spacing-xl);\n }\n}\n\n// Animate items as they're being sorted\n.cdk-drop-list-dragging .cdk-drag {\n transition: transform 250ms cubic-bezier(0, 0, 0.2, 1);\n}\n\n// Animate an item that has been dropped\n.cdk-drag-animating {\n transition: transform 300ms cubic-bezier(0, 0, 0.2, 1);\n}\n\n// Grabbed element\n.cdk-drag-preview {\n background-color: transparent; // v(eui-base-color-white);\n box-shadow: none;\n cursor: grab !important;\n display: table; // trick to get the full row width\n margin: 0 !important;\n opacity: 1;\n position: relative;\n}\n\n.cdk-drag-dragging {\n opacity: 1;\n}\n\n.cdk-drag-placeholder {\n background-color: transparent;\n opacity: 0.35;\n\n &:hover {\n outline: 2px dashed v(eui-base-color-grey-35);\n outline-offset: 2px;\n }\n}\n","// Disable global scrollbars (used in full screen eui-dialog for example)\n.cdk-global-scrollblock {\n position: fixed;\n overflow-y: visible; // Material default: scroll\n width: 100%;\n @include eui-scrollbars;\n left: 0 !important;\n}\n@include media($eui-bkp-mobile) {\n .cdk-global-scrollblock {\n height: 100%;\n overflow: auto;\n position: fixed;\n width: 100%;\n @include eui-scrollbars;\n }\n}\n","@mixin eui-scrollbars( $size: 8px, $foreground-color: v(eui-base-color-grey-20), $background-color: v(eui-base-color-grey-5), $border-radius: 5rem, $state: active ) {\n &::-webkit-scrollbar {\n display: inherit;\n height: $size; // horizontal scroll\n width: $size; // vertical scroll\n @if ($state == active) {\n background-color: $background-color;\n }\n @else {\n background-color: transparent;\n }\n }\n\n // This is the scrolling bar\n &::-webkit-scrollbar-thumb {\n @if ($state == active) {\n background-color: $foreground-color;\n border-radius: $border-radius;\n\n &:hover {\n background-color: v(eui-base-color-grey-35);\n }\n }\n @else {\n background-color: transparent;\n }\n }\n\n // This is the scroll container\n &::-webkit-scrollbar-track {\n @if ($state == active) {\n background-color: $background-color;\n border-radius: 0;\n }\n @else {\n background-color: transparent;\n }\n }\n}\n@mixin eui-scrollbars-inactive($size: 8px) {\n &::-webkit-scrollbar {\n background-color: transparent;\n display: inherit;\n height: $size; // horizontal scroll\n width: $size; // vertical scroll\n }\n\n &::-webkit-scrollbar-thumb {\n background-color: transparent;\n }\n\n &::-webkit-scrollbar-track {\n background-color: transparent;\n }\n}\n","$default-feature: \"min-width\";\n@mixin media($query: $feature $value $columns) {\n @if length($query) == 1 {\n @media screen and ($default-feature: nth($query, 1)) {\n @content;\n }\n }\n @else {\n $loop-to: length($query);\n $media-query: \"screen and \";\n @if is-not(is-even(length($query))) {\n $loop-to: $loop-to - 1;\n }\n $i: 1;\n @while $i <=$loop-to {\n $media-query: $media-query + \"(\" + nth($query, $i) + \": \" + nth($query, $i + 1) + \") \";\n @if ($i + 1) != $loop-to {\n $media-query: $media-query + \"and \";\n }\n $i: $i+2;\n }\n @media #{$media-query} {\n @content;\n }\n }\n}\n",".cdk-overlay-container {\n z-index: v(eui-base-z-index-cdk-overlay-container); // MD: 1000\n\n .mat-menu-panel {\n max-width: inherit;\n min-height: v(eui-base-spacing-l);\n @include eui-scrollbars;\n }\n\n .mat-autocomplete-panel {\n @include eui-scrollbars;\n }\n}\n","@include media($eui-bkp-mobile) {\n .cdk-overlay-container {\n height: 100vh; // Fallback\n height: calc(var(--eui-app-vh, 1vh) * 100);\n left: 0;\n position: fixed;\n top: 0;\n width: 100vw;\n }\n}\n",".cdk-overlay-pane {\n background-color: v(eui-base-color-white);\n z-index: v(eui-base-z-index-cdk-overlay-pane); // Dynamically changes based on CDK context\n}\n","// Hide browser agent default (black) color\n:focus,\n:focus-visible {\n outline: none;\n}\n","html {\n display: block;\n height: 100%;\n font-size: var(--eui-base-font-size);\n line-height: var(--eui-base-line-height);\n}\n","body {\n background-color: var(--eui-base-color-grey-2);\n color: var(--eui-base-color-grey-100);\n font-family: var(--eui-base-font-family);\n font-feature-settings: 'liga';\n font-size: var(--eui-base-font-size);\n -moz-font-smoothing: antialiased;\n -webkit-font-smoothing: antialiased;\n font-style: normal;\n font-weight: normal;\n height: 100%;\n line-height: var(--eui-base-line-height);\n margin: 0;\n text-align: left;\n text-rendering: optimizeLegibility;\n}\n","// Make viewport responsive\n//\n// @viewport is needed because IE 10+ doesn't honor <meta name=\"viewport\"> in\n// some cases. See https://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/.\n// Eventually @viewport will replace <meta name=\"viewport\">.\n//\n// However, `device-width` is broken on IE 10 on Windows (Phone) 8,\n// (see https://timkadlec.com/2013/01/windows-phone-8-and-device-width/ and https://github.com/twbs/bootstrap/issues/10497)\n// and the fix for that involves a snippet of JavaScript to sniff the user agent\n// and apply some conditional CSS.\n//\n// See https://getbootstrap.com/getting-started/#support-ie10-width for the relevant hack.\n//\n// Wrap `@viewport` with `@at-root` for when folks do a nested import (e.g.,\n// `.class-name { @import \"bootstrap\"; }`).\n@at-root {\n @-ms-viewport {\n width: device-width;\n }\n}\n\n/* ==========================================================================\n #BOX-SIZING\n ========================================================================== */\n\n/**\n * More sensible default box-sizing:\n * css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice\n */\n\nhtml {\n box-sizing: border-box;\n}\n\n* {\n &::before,\n &::after,\n & {\n box-sizing: inherit;\n }\n}\n\n// Avoid 300ms click delay on touch devices that support the `touch-action` CSS property.\n//\n// In particular, unlike most other browsers, IE11+Edge on Windows 10 on touch devices and IE Mobile 10-11\n// DON'T remove the click delay when `<meta name=\"viewport\" content=\"width=device-width\">` is present.\n// However, they DO support removing the click delay via `touch-action: manipulation`.\n// See:\n// * https://v4-alpha.getbootstrap.com/content/reboot/#click-delay-optimization-for-touch\n// * http://caniuse.com/#feat=css-touch-action\n// * https://patrickhlauke.github.io/touch/tests/results/#suppressing-300ms-delay\n\na,\narea,\nbutton,\n[role=\"button\"],\ninput,\nlabel,\nselect,\nsummary,\ntextarea {\n touch-action: manipulation;\n}\n\n// Suppress the focus outline on elements that cannot be accessed via keyboard.\n// This prevents an unwanted focus outline from appearing around elements that\n// might still respond to pointer events.\n//\n// Credit: https://github.com/suitcss/base\n[tabindex=\"-1\"]:focus {\n outline: none !important;\n}\n\n// Always hide an element with the `hidden` HTML attribute (from PureCSS).\n[hidden] {\n display: none !important;\n}\n\n// NORMALIZE reset alignements (see 00-reset)\np,\nlabel,\nblockquote,\nabbr,\nmark,\ndel {\n font-size: v(eui-base-font-size);\n}\n\nb, strong {\n font-weight: bold;\n}\n","table.eui-table-default {\n background-color: transparent;\n border-collapse: collapse;\n border-spacing: 0;\n color: v(eui-base-color-font);\n max-width: 100%;\n overflow: auto;\n position: relative;\n\n // Overall settings (default)\n thead > tr > th,\n tbody > tr > td,\n tfoot > tr > td {\n vertical-align: top;\n }\n\n tr > th,\n tr > td {\n padding: v(eui-base-spacing-s);\n }\n\n thead {\n th {\n border-bottom: 1px solid v(eui-base-color-grey-10);\n color: v(eui-base-color-grey-100);\n font-size: v(eui-base-font-size);\n padding: v(eui-base-spacing-m) v(eui-base-spacing-s);\n vertical-align: middle;\n @include eui-font-family-bold;\n }\n\n tr {\n background: v(eui-base-color-grey-10);\n border-top: 0;\n }\n }\n\n // Striped & hovered tables by default (UX)\n tbody {\n -webkit-overflow-scrolling: touch; // optional - enable iOS momentum scrolling\n\n tr:nth-of-type(odd) {\n background-color: v(eui-base-color-grey-2);\n\n &:hover {\n background-color: v(eui-base-color-grey-10);\n }\n }\n\n tr:nth-of-type(even) {\n background-color: v(eui-base-color-grey-5);\n\n &:hover {\n background-color: v(eui-base-color-grey-10);\n }\n }\n }\n\n tr {\n border-bottom: 1px solid v(eui-base-color-grey-20);\n display: table-row;\n }\n\n // Compact table\n &--compact {\n thead {\n th {\n padding: v(eui-base-spacing-xs) v(eui-base-spacing-s);\n }\n }\n\n tr > td {\n padding: v(eui-base-spacing-2xs) v(eui-base-spacing-s);\n }\n }\n\n // Responsive table\n &--responsive {\n display: table;\n width: 100%;\n\n &--bordered {\n border: 0; // Prevent double border on horizontal scroll due to use of `display: block;`\n }\n }\n\n // Bordered table\n &--bordered {\n th,\n td {\n border: 1px solid v(eui-base-color-grey-20);\n }\n }\n\n // Shadowed table\n &--shadowed {\n box-shadow: v(eui-base-shadow-1);\n }\n\n // NoWrap table content (also disables ellipsis)\n &--nowrap {\n white-space: nowrap;\n\n thead > tr > th,\n tbody > tr > td,\n tfoot > tr > td {\n white-space: nowrap;\n }\n }\n\n // Centered table\n &--centered {\n display: table;\n margin: 0 auto;\n width: auto;\n }\n\n // Middle aligned cells content\n &--align-middle {\n thead > tr > th,\n tbody > tr > td,\n tfoot > tr > td {\n vertical-align: middle;\n }\n }\n}\n","/** Common weight name mapping\n @See the OpenType specification:\n https://docs.microsoft.com/en-us/typography/opentype/spec/os2#usweightclass\n The numerical values 100 to 900 roughly correspond to the following common weight names:\n 100 Thin (Hairline)\n 200\t Extra Light (Ultra Light)\n 300\t Light\n 400\t Normal\n 500\t Medium\n 600\t Semi Bold (Demi Bold)\n 700\t Bold\n 800\t Extra Bold (Ultra Bold)\n 900\t Black (Heavy)\n**/\n\n// central mixing for getting definition over ECL tokens\n@mixin eui-font($size: m) {\n font: map-get($eui-base-tokens-fonts, $size);\n}\n\n// shortcut for font-families\n@mixin eui-font-family() {\n @include eui-font(m);\n}\n@mixin eui-font-family-normal() {\n @include eui-font(m);\n}\n@mixin eui-font-family-s() {\n @include eui-font(s);\n}\n@mixin eui-font-family-xs() {\n @include eui-font(xs);\n}\n@mixin eui-font-family-l() {\n @include eui-font(l);\n}\n@mixin eui-font-family-xl() {\n @include eui-font(xl);\n}\n@mixin eui-font-family-2xl() {\n @include eui-font(2xl);\n}\n@mixin eui-font-family-3xl() {\n @include eui-font(3xl);\n}\n@mixin eui-font-family-4xl() {\n @include eui-font(4xl);\n}\n\n// bold\n@mixin eui-font-family-bold() {\n @include eui-font(m);\n font-weight: 700;\n}\n@mixin eui-font-family-bold-xs() {\n @include eui-font(xs);\n font-weight: 700;\n}\n@mixin eui-font-family-bold-s() {\n @include eui-font(s);\n font-weight: 700;\n}\n@mixin eui-font-family-bold-l() {\n @include eui-font(l);\n font-weight: 700;\n}\n@mixin eui-font-family-bold-xl() {\n @include eui-font(xl);\n font-weight: 700;\n}\n@mixin eui-font-family-bold-2xl() {\n @include eui-font(2xl);\n font-weight: 700;\n}\n@mixin eui-font-family-bold-3xl() {\n @include eui-font(3xl);\n font-weight: 700;\n}\n@mixin eui-font-family-bold-4xl() {\n @include eui-font(4xl);\n font-weight: 700;\n}\n\n// light\n@mixin eui-font-family-light() {\n @include eui-font(m);\n font-weight: 300;\n}\n\n// italic\n@mixin eui-font-family-italic() {\n @include eui-font(m);\n font-style: italic;\n}\n@mixin eui-font-family-bold() {\n @include eui-font(m);\n font-weight: 700;\n}\n\n// bold italic\n@mixin eui-font-family-bold-italic() {\n @include eui-font(m);\n font-style: italic;\n font-weight: 700;\n}\n\n// monospace\n@mixin eui-font-family-monospace() {\n font-family: v(eui-base-font-family-monospace);\n font-style: normal;\n font-weight: 400;\n}\n","// Sets the layout of the euiClearable directive\n.eui-clearable-wrapper {\n align-items: center;\n display: flex;\n position: relative;\n width: 100%;\n\n .eui-input-text--clearable-icon {\n bottom: calc(#{v(eui-base-spacing-s)} - 2px);\n cursor: pointer;\n position: absolute;\n right: v(eui-base-spacing-s);\n user-select: none;\n visibility: visible;\n z-index: v(eui-base-z-index-clearable-icon);\n @include eui-accessible-focus();\n\n > svg {\n fill: v(eui-base-color-grey-35);\n\n &:hover {\n fill: v(eui-base-color-danger-100);\n }\n }\n }\n}\n","$outline-offset: -2px;\n$outline-size: 2px;\n\n// Call this mixin to enforce the accessibility visuals when on focus/active\n@mixin eui-accessible-focus($offset: $outline-offset, $size: $outline-size) {\n &:active:not([readonly]),\n &:focus:not([readonly]) {\n outline: $size solid v(eui-base-color-accessible-focus);\n outline-offset: $offset;\n transition: none;\n }\n\n // &:focus-visible:not([readonly]) {\n // outline: $size solid v(eui-base-color-accessible-focus);\n // outline-offset: $offset;\n // transition: none;\n // }\n\n // Forced focusable element\n [tabindex=\"0\"] {\n &:active:not([readonly]),\n &:focus:not([readonly]) {\n outline: $size solid v(eui-base-color-accessible-focus);\n outline-offset: $offset;\n transition: none;\n }\n }\n}\n",".eui-input-maxlength-wrapper {\n position: relative;\n width: 100%;\n\n .eui-input-maxlength {\n @include eui-font-family-xs();\n background-color: v(eui-base-color-grey-10);\n border: 1px solid v(eui-base-color-grey-50);\n border-radius: v(eui-base-border-radius);\n color: v(eui-base-color-grey-100);\n padding: 0 v(eui-base-spacing-2xs);\n position: absolute;\n right: calc(-1 * #{v(eui-base-spacing-xs)});\n top: calc(-1 * #{v(eui-base-spacing-xs)});\n z-index: v(eui-base-z-index-input-maxlength);\n\n &--invalid {\n background-color: v(eui-base-color-warning-100);\n border-color: v(eui-base-color-warning-100);\n color: v(eui-base-color-white);\n }\n }\n}\n","// IE10+ SVG's aspect ratios and sizes fix\n@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {\n img[src$=\".svg\"] {\n width: 100%;\n }\n}\n@media screen {\n // IE Fix: Bicubic Scaling for Images & full width background (EC logo)\n img {\n background-repeat: no-repeat;\n background-size: 100%;\n -ms-interpolation-mode: bicubic;\n }\n}\n","// COOKIE CONSENT\n.cookie-consent-banner {\n display: block !important;\n min-width: 50% !important;\n position: absolute !important;\n right: 50% !important;\n top: v(eui-base-spacing-m) !important;\n transform: translateX(50%) !important;\n z-index: v(eui-base-z-index-max) !important;\n box-shadow: v(eui-base-shadow-24) !important;\n background: v(eui-base-color-primary) !important;\n color: var(eui-base-color-white) !important;\n}\n","#loader-wrapper {\n height: 100%;\n left: 0;\n position: fixed;\n top: 0;\n width: 100%;\n z-index: 1000;\n\n #loader {\n -webkit-animation: spin 2s linear infinite; /* Chrome, Opera 15+, Safari 5+ */\n animation: spin 2s linear infinite; /* Chrome, Firefox 16+, IE 10+, Opera */\n animation: hourglass 5s linear infinite;\n border: 10px solid transparent;\n border-radius: 50%;\n border-top-color: v(eui-base-color-warning-100);\n display: block;\n height: 200px;\n left: 50%;\n margin: -100px 0 0 -100px;\n position: relative;\n top: 50%;\n width: 200px;\n\n &::before {\n -webkit-animation: spin 2s linear infinite; /* Chrome, Opera 15+, Safari 5+ */\n animation: spin 2s linear infinite; /* Chrome, Firefox 16+, IE 10+, Opera */\n animation: hourglass 4s linear infinite;\n border: 10px solid transparent;\n border-radius: 50%;\n border-top-color: v(eui-base-color-danger-100);\n bottom: 5px;\n content: \"\";\n left: 5px;\n position: absolute;\n right: 5px;\n top: 5px;\n }\n\n &::after {\n -webkit-animation: spin 1s linear infinite; /* Chrome, Opera 15+, Safari 5+ */\n animation: spin 1s linear infinite; /* Chrome, Firefox 16+, IE 10+, Opera */\n animation: hourglass 3s linear infinite;\n border: 10px solid transparent;\n border-radius: 50%;\n border-top-color: v(eui-base-color-primary-100);\n bottom: 20px;\n content: \"\";\n left: 20px;\n position: absolute;\n right: 20px;\n top: 20px;\n }\n }\n}\n\n/* stylelint-enable */\n@-webkit-keyframes spin {\n 0% {\n -webkit-transform: rotate(0deg);\n -ms-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n\n 100% {\n -webkit-transform: rotate(360deg);\n -ms-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n@keyframes spin {\n 0% {\n -webkit-transform: rotate(0deg);\n -ms-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n\n 100% {\n -webkit-transform: rotate(360deg);\n -ms-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n@-webkit-keyframes hourglass {\n 0% {\n transform: rotate(0);\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n 50% {\n transform: rotate(900deg);\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n 100% {\n transform: rotate(1800deg);\n }\n}\n@keyframes hourglass {\n 0% {\n transform: rotate(0);\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n 50% {\n transform: rotate(900deg);\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n 100% {\n transform: rotate(1800deg);\n }\n}\n"]}
|