@eui/styles 17.0.0-next.7 → 17.0.0-next.9

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.
@@ -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/_tokens.vars.scss","../../../../../../../node_modules/@eui/styles-base/src/styles/03-vars/_other.vars.scss","02b-base-vars/_layout.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/_eui-input-maxlength.scss","../../../../../../../node_modules/@eui/styles-base/src/styles/02-base/mixins/_eui-font.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","08-themes/_module-compact.scss","../../../../../../../node_modules/@eui/styles-base/src/styles/02-base/mixins/theming/_compact-vars.scss","10-media/_ieimgfix.scss","11-extras/_cookie-consent.scss","11-extras/_preloader.scss"],"names":[],"mappings":"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,CIj/BQ,+BAEI,YAAA,CADA,aJq/BZ,CIt/BQ,8BAEI,YAAA,CADA,aJ0/BZ,CI3/BQ,8BAEI,YAAA,CADA,aJ+/BZ,CIhgCQ,8BAEI,YAAA,CADA,aJogCZ,CIrgCQ,8BAEI,YAAA,CADA,aJygCZ,CI1gCQ,8BAEI,YAAA,CADA,aJ8gCZ,CI/gCQ,8BAEI,YAAA,CADA,aJmhCZ,CIphCQ,6BAEI,YAAA,CADA,aJwhCZ,CIzhCQ,6BAEI,YAAA,CADA,aJ6hCZ,CI9hCQ,6BAEI,YAAA,CADA,aJkiCZ,CIniCQ,6BAEI,YAAA,CADA,aJuiCZ,CIxiCQ,4BAEI,YAAA,CADA,aJ4iCZ,CI7iCQ,iCAEI,YAAA,CADA,aJijCZ,CIljCQ,iCAEI,YAAA,CADA,aJsjCZ,CIvjCQ,iCAEI,YAAA,CADA,aJ2jCZ,CI5jCQ,iCAEI,YAAA,CADA,aJgkCZ,CIjkCQ,iCAEI,YAAA,CADA,aJqkCZ,CItkCQ,gCAEI,YAAA,CADA,aJ0kCZ,CI3kCQ,gCAEI,YAAA,CADA,aJ+kCZ,CIhlCQ,gCAEI,YAAA,CADA,aJolCZ,CIrlCQ,gCAEI,YAAA,CADA,aJylCZ,CI1lCQ,+BAEI,YAAA,CADA,aJ8lCZ,CI/lCQ,iCAEI,YAAA,CADA,aJmmCZ,CIpmCQ,iCAEI,YAAA,CADA,aJwmCZ,CIzmCQ,iCAEI,YAAA,CADA,aJ6mCZ,CI9mCQ,iCAEI,YAAA,CADA,aJknCZ,CInnCQ,iCAEI,YAAA,CADA,aJunCZ,CIxnCQ,gCAEI,YAAA,CADA,aJ4nCZ,CI7nCQ,gCAEI,YAAA,CADA,aJioCZ,CIloCQ,gCAEI,YAAA,CADA,aJsoCZ,CIvoCQ,gCAEI,YAAA,CADA,aJ2oCZ,CI5oCQ,+BAEI,YAAA,CADA,aJgpCZ,CIjpCQ,gCAEI,YAAA,CADA,aJqpCZ,CItpCQ,gCAEI,YAAA,CADA,aJ0pCZ,CI3pCQ,gCAEI,YAAA,CADA,aJ+pCZ,CIhqCQ,gCAEI,YAAA,CADA,aJoqCZ,CIrqCQ,gCAEI,YAAA,CADA,aJyqCZ,CI1qCQ,+BAEI,YAAA,CADA,aJ8qCZ,CI/qCQ,+BAEI,YAAA,CADA,aJmrCZ,CIprCQ,+BAEI,YAAA,CADA,aJwrCZ,CIzrCQ,+BAEI,YAAA,CADA,aJ6rCZ,CI9rCQ,8BAEI,YAAA,CADA,aJksCZ,CI5rCI,0BAEI,YAAA,CADA,aJgsCR,CIjsCI,6BAEI,YAAA,CADA,aJqsCR,CItsCI,4BAEI,YAAA,CADA,aJ0sCR,CI3sCI,0BAEI,YAAA,CADA,aJ+sCR,CIhtCI,6BAEI,YAAA,CADA,aJotCR,CIrtCI,6BAEI,YAAA,CADA,aJytCR,CI1tCI,4BAEI,YAAA,CADA,aJ8tCR,CIztCA,2BAEI,SAAA,CADA,UJ6tCJ,CIztCA,2BAEI,SAAA,CADA,UJ6tCJ,CIztCA,iCAEI,oBAAA,CADA,qBJ6tCJ,CKhwCE,KCAA,oBAAA,CACA,eAAA,CACA,YAAA,CACA,cAAA,CAIA,wCAAA,CADA,yCAAA,CADA,sCNqwCF,CKvwCI,OCSF,qBAAA,CAIA,aAAA,CAKA,6BAAA,CAHA,cAAA,CAEA,wCAAA,CADA,yCAAA,CAFA,UNkwCF,CM/sCM,KACE,WNktCR,CM/sCM,iBApCJ,aAAA,CACA,UNuvCF,CMzuCE,cACE,aAAA,CACA,UN4uCJ,CM9uCE,cACE,aAAA,CACA,SNivCJ,CMnvCE,cACE,aAAA,CACA,oBNsvCJ,CMxvCE,cACE,aAAA,CACA,SN2vCJ,CM7vCE,cACE,aAAA,CACA,SNgwCJ,CMlwCE,cACE,aAAA,CACA,oBNqwCJ,CMtuCM,UAhDJ,aAAA,CACA,UN0xCF,CMruCU,OAhEN,aAAA,CACA,iBNyyCJ,CM1uCU,OAhEN,aAAA,CACA,kBN8yCJ,CM/uCU,OAhEN,aAAA,CACA,SNmzCJ,CMpvCU,OAhEN,aAAA,CACA,kBNwzCJ,CMzvCU,OAhEN,aAAA,CACA,kBN6zCJ,CM9vCU,OAhEN,aAAA,CACA,SNk0CJ,CMnwCU,OAhEN,aAAA,CACA,kBNu0CJ,CMxwCU,OAhEN,aAAA,CACA,kBN40CJ,CM7wCU,OAhEN,aAAA,CACA,SNi1CJ,CMlxCU,QAhEN,aAAA,CACA,kBNs1CJ,CMvxCU,QAhEN,aAAA,CACA,kBN21CJ,CM5xCU,QAhEN,aAAA,CACA,UNg2CJ,CMzxCY,UAxDV,uBNq1CF,CM7xCY,UAxDV,wBNy1CF,CMjyCY,UAxDV,eN61CF,CMryCY,UAxDV,wBNi2CF,CMzyCY,UAxDV,wBNq2CF,CM7yCY,UAxDV,eNy2CF,CMjzCY,UAxDV,wBN62CF,CMrzCY,UAxDV,wBNi3CF,CMzzCY,UAxDV,eNq3CF,CM7zCY,WAxDV,wBNy3CF,CMj0CY,WAxDV,wBN63CF,CM1zCQ,WAEE,eN6zCV,CM1zCQ,WAEE,eN6zCV,CMp0CQ,WAEE,qBNu0CV,CMp0CQ,WAEE,qBNu0CV,CM90CQ,WAEE,oBNi1CV,CM90CQ,WAEE,oBNi1CV,CMx1CQ,WAEE,kBN21CV,CMx1CQ,WAEE,kBN21CV,CMl2CQ,WAEE,oBNq2CV,CMl2CQ,WAEE,oBNq2CV,CM52CQ,WAEE,kBN+2CV,CM52CQ,WAEE,kBN+2CV,COz6CI,yBDUE,QACE,WNm6CN,CMh6CI,oBApCJ,aAAA,CACA,UNu8CA,CMz7CA,iBACE,aAAA,CACA,UN27CF,CM77CA,iBACE,aAAA,CACA,SN+7CF,CMj8CA,iBACE,aAAA,CACA,oBNm8CF,CMr8CA,iBACE,aAAA,CACA,SNu8CF,CMz8CA,iBACE,aAAA,CACA,SN28CF,CM78CA,iBACE,aAAA,CACA,oBN+8CF,CMh7CI,aAhDJ,aAAA,CACA,UNm+CA,CM96CQ,UAhEN,aAAA,CACA,iBNi/CF,CMl7CQ,UAhEN,aAAA,CACA,kBNq/CF,CMt7CQ,UAhEN,aAAA,CACA,SNy/CF,CM17CQ,UAhEN,aAAA,CACA,kBN6/CF,CM97CQ,UAhEN,aAAA,CACA,kBNigDF,CMl8CQ,UAhEN,aAAA,CACA,SNqgDF,CMt8CQ,UAhEN,aAAA,CACA,kBNygDF,CM18CQ,UAhEN,aAAA,CACA,kBN6gDF,CM98CQ,UAhEN,aAAA,CACA,SNihDF,CMl9CQ,WAhEN,aAAA,CACA,kBNqhDF,CMt9CQ,WAhEN,aAAA,CACA,kBNyhDF,CM19CQ,WAhEN,aAAA,CACA,UN6hDF,CMt9CU,aAxDV,aNihDA,CMz9CU,aAxDV,uBNohDA,CM59CU,aAxDV,wBNuhDA,CM/9CU,aAxDV,eN0hDA,CMl+CU,aAxDV,wBN6hDA,CMr+CU,aAxDV,wBNgiDA,CMx+CU,aAxDV,eNmiDA,CM3+CU,aAxDV,wBNsiDA,CM9+CU,aAxDV,wBNyiDA,CMj/CU,aAxDV,eN4iDA,CMp/CU,cAxDV,wBN+iDA,CMv/CU,cAxDV,wBNkjDA,CM/+CM,iBAEE,eNi/CR,CM9+CM,iBAEE,eNg/CR,CMv/CM,iBAEE,qBNy/CR,CMt/CM,iBAEE,qBNw/CR,CM//CM,iBAEE,oBNigDR,CM9/CM,iBAEE,oBNggDR,CMvgDM,iBAEE,kBNygDR,CMtgDM,iBAEE,kBNwgDR,CM/gDM,iBAEE,oBNihDR,CM9gDM,iBAEE,oBNghDR,CMvhDM,iBAEE,kBNyhDR,CMthDM,iBAEE,kBNwhDR,CACF,COnlDI,yBDUE,QACE,WN4kDN,CMzkDI,oBApCJ,aAAA,CACA,UNgnDA,CMlmDA,iBACE,aAAA,CACA,UNomDF,CMtmDA,iBACE,aAAA,CACA,SNwmDF,CM1mDA,iBACE,aAAA,CACA,oBN4mDF,CM9mDA,iBACE,aAAA,CACA,SNgnDF,CMlnDA,iBACE,aAAA,CACA,SNonDF,CMtnDA,iBACE,aAAA,CACA,oBNwnDF,CMzlDI,aAhDJ,aAAA,CACA,UN4oDA,CMvlDQ,UAhEN,aAAA,CACA,iBN0pDF,CM3lDQ,UAhEN,aAAA,CACA,kBN8pDF,CM/lDQ,UAhEN,aAAA,CACA,SNkqDF,CMnmDQ,UAhEN,aAAA,CACA,kBNsqDF,CMvmDQ,UAhEN,aAAA,CACA,kBN0qDF,CM3mDQ,UAhEN,aAAA,CACA,SN8qDF,CM/mDQ,UAhEN,aAAA,CACA,kBNkrDF,CMnnDQ,UAhEN,aAAA,CACA,kBNsrDF,CMvnDQ,UAhEN,aAAA,CACA,SN0rDF,CM3nDQ,WAhEN,aAAA,CACA,kBN8rDF,CM/nDQ,WAhEN,aAAA,CACA,kBNksDF,CMnoDQ,WAhEN,aAAA,CACA,UNssDF,CM/nDU,aAxDV,aN0rDA,CMloDU,aAxDV,uBN6rDA,CMroDU,aAxDV,wBNgsDA,CMxoDU,aAxDV,eNmsDA,CM3oDU,aAxDV,wBNssDA,CM9oDU,aAxDV,wBNysDA,CMjpDU,aAxDV,eN4sDA,CMppDU,aAxDV,wBN+sDA,CMvpDU,aAxDV,wBNktDA,CM1pDU,aAxDV,eNqtDA,CM7pDU,cAxDV,wBNwtDA,CMhqDU,cAxDV,wBN2tDA,CMxpDM,iBAEE,eN0pDR,CMvpDM,iBAEE,eNypDR,CMhqDM,iBAEE,qBNkqDR,CM/pDM,iBAEE,qBNiqDR,CMxqDM,iBAEE,oBN0qDR,CMvqDM,iBAEE,oBNyqDR,CMhrDM,iBAEE,kBNkrDR,CM/qDM,iBAEE,kBNirDR,CMxrDM,iBAEE,oBN0rDR,CMvrDM,iBAEE,oBNyrDR,CMhsDM,iBAEE,kBNksDR,CM/rDM,iBAEE,kBNisDR,CACF,CO5vDI,yBDUE,QACE,WNqvDN,CMlvDI,oBApCJ,aAAA,CACA,UNyxDA,CM3wDA,iBACE,aAAA,CACA,UN6wDF,CM/wDA,iBACE,aAAA,CACA,SNixDF,CMnxDA,iBACE,aAAA,CACA,oBNqxDF,CMvxDA,iBACE,aAAA,CACA,SNyxDF,CM3xDA,iBACE,aAAA,CACA,SN6xDF,CM/xDA,iBACE,aAAA,CACA,oBNiyDF,CMlwDI,aAhDJ,aAAA,CACA,UNqzDA,CMhwDQ,UAhEN,aAAA,CACA,iBNm0DF,CMpwDQ,UAhEN,aAAA,CACA,kBNu0DF,CMxwDQ,UAhEN,aAAA,CACA,SN20DF,CM5wDQ,UAhEN,aAAA,CACA,kBN+0DF,CMhxDQ,UAhEN,aAAA,CACA,kBNm1DF,CMpxDQ,UAhEN,aAAA,CACA,SNu1DF,CMxxDQ,UAhEN,aAAA,CACA,kBN21DF,CM5xDQ,UAhEN,aAAA,CACA,kBN+1DF,CMhyDQ,UAhEN,aAAA,CACA,SNm2DF,CMpyDQ,WAhEN,aAAA,CACA,kBNu2DF,CMxyDQ,WAhEN,aAAA,CACA,kBN22DF,CM5yDQ,WAhEN,aAAA,CACA,UN+2DF,CMxyDU,aAxDV,aNm2DA,CM3yDU,aAxDV,uBNs2DA,CM9yDU,aAxDV,wBNy2DA,CMjzDU,aAxDV,eN42DA,CMpzDU,aAxDV,wBN+2DA,CMvzDU,aAxDV,wBNk3DA,CM1zDU,aAxDV,eNq3DA,CM7zDU,aAxDV,wBNw3DA,CMh0DU,aAxDV,wBN23DA,CMn0DU,aAxDV,eN83DA,CMt0DU,cAxDV,wBNi4DA,CMz0DU,cAxDV,wBNo4DA,CMj0DM,iBAEE,eNm0DR,CMh0DM,iBAEE,eNk0DR,CMz0DM,iBAEE,qBN20DR,CMx0DM,iBAEE,qBN00DR,CMj1DM,iBAEE,oBNm1DR,CMh1DM,iBAEE,oBNk1DR,CMz1DM,iBAEE,kBN21DR,CMx1DM,iBAEE,kBN01DR,CMj2DM,iBAEE,oBNm2DR,CMh2DM,iBAEE,oBNk2DR,CMz2DM,iBAEE,kBN22DR,CMx2DM,iBAEE,kBN02DR,CACF,COr6DI,0BDUE,QACE,WN85DN,CM35DI,oBApCJ,aAAA,CACA,UNk8DA,CMp7DA,iBACE,aAAA,CACA,UNs7DF,CMx7DA,iBACE,aAAA,CACA,SN07DF,CM57DA,iBACE,aAAA,CACA,oBN87DF,CMh8DA,iBACE,aAAA,CACA,SNk8DF,CMp8DA,iBACE,aAAA,CACA,SNs8DF,CMx8DA,iBACE,aAAA,CACA,oBN08DF,CM36DI,aAhDJ,aAAA,CACA,UN89DA,CMz6DQ,UAhEN,aAAA,CACA,iBN4+DF,CM76DQ,UAhEN,aAAA,CACA,kBNg/DF,CMj7DQ,UAhEN,aAAA,CACA,SNo/DF,CMr7DQ,UAhEN,aAAA,CACA,kBNw/DF,CMz7DQ,UAhEN,aAAA,CACA,kBN4/DF,CM77DQ,UAhEN,aAAA,CACA,SNggEF,CMj8DQ,UAhEN,aAAA,CACA,kBNogEF,CMr8DQ,UAhEN,aAAA,CACA,kBNwgEF,CMz8DQ,UAhEN,aAAA,CACA,SN4gEF,CM78DQ,WAhEN,aAAA,CACA,kBNghEF,CMj9DQ,WAhEN,aAAA,CACA,kBNohEF,CMr9DQ,WAhEN,aAAA,CACA,UNwhEF,CMj9DU,aAxDV,aN4gEA,CMp9DU,aAxDV,uBN+gEA,CMv9DU,aAxDV,wBNkhEA,CM19DU,aAxDV,eNqhEA,CM79DU,aAxDV,wBNwhEA,CMh+DU,aAxDV,wBN2hEA,CMn+DU,aAxDV,eN8hEA,CMt+DU,aAxDV,wBNiiEA,CMz+DU,aAxDV,wBNoiEA,CM5+DU,aAxDV,eNuiEA,CM/+DU,cAxDV,wBN0iEA,CMl/DU,cAxDV,wBN6iEA,CM1+DM,iBAEE,eN4+DR,CMz+DM,iBAEE,eN2+DR,CMl/DM,iBAEE,qBNo/DR,CMj/DM,iBAEE,qBNm/DR,CM1/DM,iBAEE,oBN4/DR,CMz/DM,iBAEE,oBN2/DR,CMlgEM,iBAEE,kBNogER,CMjgEM,iBAEE,kBNmgER,CM1gEM,iBAEE,oBN4gER,CMzgEM,iBAEE,oBN2gER,CMlhEM,iBAEE,kBNohER,CMjhEM,iBAEE,kBNmhER,CACF,CO9kEI,0BDUE,SACE,WNukEN,CMpkEI,qBApCJ,aAAA,CACA,UN2mEA,CM7lEA,kBACE,aAAA,CACA,UN+lEF,CMjmEA,kBACE,aAAA,CACA,SNmmEF,CMrmEA,kBACE,aAAA,CACA,oBNumEF,CMzmEA,kBACE,aAAA,CACA,SN2mEF,CM7mEA,kBACE,aAAA,CACA,SN+mEF,CMjnEA,kBACE,aAAA,CACA,oBNmnEF,CMplEI,cAhDJ,aAAA,CACA,UNuoEA,CMllEQ,WAhEN,aAAA,CACA,iBNqpEF,CMtlEQ,WAhEN,aAAA,CACA,kBNypEF,CM1lEQ,WAhEN,aAAA,CACA,SN6pEF,CM9lEQ,WAhEN,aAAA,CACA,kBNiqEF,CMlmEQ,WAhEN,aAAA,CACA,kBNqqEF,CMtmEQ,WAhEN,aAAA,CACA,SNyqEF,CM1mEQ,WAhEN,aAAA,CACA,kBN6qEF,CM9mEQ,WAhEN,aAAA,CACA,kBNirEF,CMlnEQ,WAhEN,aAAA,CACA,SNqrEF,CMtnEQ,YAhEN,aAAA,CACA,kBNyrEF,CM1nEQ,YAhEN,aAAA,CACA,kBN6rEF,CM9nEQ,YAhEN,aAAA,CACA,UNisEF,CM1nEU,cAxDV,aNqrEA,CM7nEU,cAxDV,uBNwrEA,CMhoEU,cAxDV,wBN2rEA,CMnoEU,cAxDV,eN8rEA,CMtoEU,cAxDV,wBNisEA,CMzoEU,cAxDV,wBNosEA,CM5oEU,cAxDV,eNusEA,CM/oEU,cAxDV,wBN0sEA,CMlpEU,cAxDV,wBN6sEA,CMrpEU,cAxDV,eNgtEA,CMxpEU,eAxDV,wBNmtEA,CM3pEU,eAxDV,wBNstEA,CMnpEM,mBAEE,eNqpER,CMlpEM,mBAEE,eNopER,CM3pEM,mBAEE,qBN6pER,CM1pEM,mBAEE,qBN4pER,CMnqEM,mBAEE,oBNqqER,CMlqEM,mBAEE,oBNoqER,CM3qEM,mBAEE,kBN6qER,CM1qEM,mBAEE,kBN4qER,CMnrEM,mBAEE,oBNqrER,CMlrEM,mBAEE,oBNorER,CM3rEM,mBAEE,kBN6rER,CM1rEM,mBAEE,kBN4rER,CACF,COvvEI,0BDUE,UACE,WNgvEN,CM7uEI,sBApCJ,aAAA,CACA,UNoxEA,CMtwEA,mBACE,aAAA,CACA,UNwwEF,CM1wEA,mBACE,aAAA,CACA,SN4wEF,CM9wEA,mBACE,aAAA,CACA,oBNgxEF,CMlxEA,mBACE,aAAA,CACA,SNoxEF,CMtxEA,mBACE,aAAA,CACA,SNwxEF,CM1xEA,mBACE,aAAA,CACA,oBN4xEF,CM7vEI,eAhDJ,aAAA,CACA,UNgzEA,CM3vEQ,YAhEN,aAAA,CACA,iBN8zEF,CM/vEQ,YAhEN,aAAA,CACA,kBNk0EF,CMnwEQ,YAhEN,aAAA,CACA,SNs0EF,CMvwEQ,YAhEN,aAAA,CACA,kBN00EF,CM3wEQ,YAhEN,aAAA,CACA,kBN80EF,CM/wEQ,YAhEN,aAAA,CACA,SNk1EF,CMnxEQ,YAhEN,aAAA,CACA,kBNs1EF,CMvxEQ,YAhEN,aAAA,CACA,kBN01EF,CM3xEQ,YAhEN,aAAA,CACA,SN81EF,CM/xEQ,aAhEN,aAAA,CACA,kBNk2EF,CMnyEQ,aAhEN,aAAA,CACA,kBNs2EF,CMvyEQ,aAhEN,aAAA,CACA,UN02EF,CMnyEU,eAxDV,aN81EA,CMtyEU,eAxDV,uBNi2EA,CMzyEU,eAxDV,wBNo2EA,CM5yEU,eAxDV,eNu2EA,CM/yEU,eAxDV,wBN02EA,CMlzEU,eAxDV,wBN62EA,CMrzEU,eAxDV,eNg3EA,CMxzEU,eAxDV,wBNm3EA,CM3zEU,eAxDV,wBNs3EA,CM9zEU,eAxDV,eNy3EA,CMj0EU,gBAxDV,wBN43EA,CMp0EU,gBAxDV,wBN+3EA,CM5zEM,qBAEE,eN8zER,CM3zEM,qBAEE,eN6zER,CMp0EM,qBAEE,qBNs0ER,CMn0EM,qBAEE,qBNq0ER,CM50EM,qBAEE,oBN80ER,CM30EM,qBAEE,oBN60ER,CMp1EM,qBAEE,kBNs1ER,CMn1EM,qBAEE,kBNq1ER,CM51EM,qBAEE,oBN81ER,CM31EM,qBAEE,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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-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-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: #fbfbfb;\n --eui-base-color-grey-2-rgb: rgb(251, 251, 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-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-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-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-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-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-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-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: black;\n --eui-base-color-white: white;\n --eui-base-color: var(--eui-base-color-grey-100);\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 --eui-border-state-width: 6px;\n --eui-app-header-bg-color: var(--eui-base-color-white);\n --eui-app-header-title-color: var(--eui-base-color-grey-100);\n --eui-app-header-subtitle-color: var(--eui-base-color-grey-75);\n --eui-app-toolbar-color: var(--eui-base-color-white);\n --eui-app-toolbar-bg-color: var(--eui-base-color-primary-100);\n --eui-app-toolbar-border-bottom-color: var(--eui-base-color-primary-25);\n --eui-app-sidebar-bg-color: var(--eui-base-color-grey-2);\n --eui-app-sidebar-border-right-color: #f2f4f9;\n --eui-app-body-bg-color: var(--eui-base-color-grey-2);\n --eui-app-main-bg-color: var(--eui-base-color-grey-2);\n --eui-app-footer-color: var(--eui-base-color-font);\n --eui-app-footer-bg-color: var(--eui-base-color-grey-2);\n --eui-app-footer-border-top-color: #e8ebf1;\n}\n\n.xs, .sm {\n --eui-app-header-height: 0px;\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-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: #fbfbfb;\n fill: #fbfbfb;\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-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-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-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-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-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-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: white;\n fill: white;\n}\n\n.eui-icon-svg--color-black {\n color: black;\n fill: 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: #da2131;\n --mat-datepicker-calendar-date-selected-disabled-state-background-color: rgba(218, 33, 49, 0.4);\n --mat-datepicker-calendar-date-today-selected-state-outline-color: white;\n --mat-datepicker-calendar-date-focus-state-background-color: rgba(218, 33, 49, 0.3);\n --mat-datepicker-calendar-date-hover-state-background-color: rgba(218, 33, 49, 0.3);\n --mat-datepicker-calendar-date-in-range-state-background-color: rgba(218, 33, 49, 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: #da2131;\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\nhtml {\n --mat-autocomplete-background-color: white;\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.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\nhtml {\n --eui-html-font-size: var(--eui-base-font-size);\n --eui-html-line-height: var(--eui-base-line-height);\n display: block;\n height: 100%;\n font-size: var(--eui-html-font-size);\n line-height: var(--eui-html-line-height);\n}\n\nbody {\n --eui-body-bg-color: var(--eui-app-body-bg-color);\n --eui-body-color: var(--eui-base-color);\n --eui-body-font-family: var(--eui-base-font-family);\n --eui-body-font-size: var(--eui-base-font-size);\n --eui-body-line-height: var(--eui-base-line-height);\n background-color: var(--eui-body-bg-color);\n color: var(--eui-body-color);\n font-family: var(--eui-body-font-family);\n font-feature-settings: \"liga\";\n font-size: var(--eui-body-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-body-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,\n.label,\nblockquote,\nabbr,\nmark,\ndel {\n font-size: var(--eui-base-font-size);\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\nhtml.eui-t-compact {\n --eui-base-font-size: 14px;\n --eui-base-line-height: 1.25;\n font-size: var(--eui-base-font-size);\n line-height: var(--eui-base-line-height);\n}\n\nform.eui-t-form-compact {\n --eui-base-font-size: 14px;\n --eui-base-line-height: 1.25;\n --eui-input-group-spacing: var(--eui-base-spacing-s);\n --eui-compact-ratio: 0.875;\n --eui-base-spacing-none: calc( var(--eui-compact-ratio) * 0 );\n --eui-base-spacing-2xs: calc( var(--eui-compact-ratio) * 0.25rem );\n --eui-base-spacing-xs: calc( var(--eui-compact-ratio) * 0.5rem );\n --eui-base-spacing-s: calc( var(--eui-compact-ratio) * 0.75rem );\n --eui-base-spacing-m: calc( var(--eui-compact-ratio) * 1rem );\n --eui-base-spacing-l: calc( var(--eui-compact-ratio) * 1.5rem );\n --eui-base-spacing-xl: calc( var(--eui-compact-ratio) * 2rem );\n --eui-base-spacing-2xl: calc( var(--eui-compact-ratio) * 2.5rem );\n --eui-base-spacing-3xl: calc( var(--eui-compact-ratio) * 3rem );\n --eui-base-spacing-4xl: calc( var(--eui-compact-ratio) * 4rem );\n --eui-compact-ratio: 0.82;\n font-size: var(--eui-base-font-size);\n line-height: var(--eui-base-line-height);\n}\nform.eui-t-form-compact .eui-input-group {\n margin-bottom: var(--eui-input-group-spacing);\n}\nform.eui-t-form-compact .eui-input-group label {\n margin-bottom: var(--eui-base-spacing-2xs);\n}\nform.eui-t-form-compact .eui-input-group-addon-item {\n min-height: calc(2.5 * var(--eui-base-spacing-m));\n min-width: calc(2.5 * var(--eui-base-spacing-m));\n padding: calc(var(--eui-base-spacing-xs) - 1px);\n}\nform.eui-t-form-compact .eui-button--icon-only {\n padding: calc(var(--eui-base-spacing-s) - 1px) var(--eui-base-spacing-xs);\n}\n\n.eui-table.eui-t-table-compact {\n --eui-base-font-size: 14px;\n --eui-base-line-height: 1.25;\n --eui-table-header-padding: var(--eui-base-spacing-s);\n --eui-table-row-padding: var(--eui-base-spacing-2xs);\n --eui-table-footer-padding: var(--eui-base-spacing-s);\n --eui-compact-ratio: 0.875;\n --eui-base-spacing-none: calc( var(--eui-compact-ratio) * 0 );\n --eui-base-spacing-2xs: calc( var(--eui-compact-ratio) * 0.25rem );\n --eui-base-spacing-xs: calc( var(--eui-compact-ratio) * 0.5rem );\n --eui-base-spacing-s: calc( var(--eui-compact-ratio) * 0.75rem );\n --eui-base-spacing-m: calc( var(--eui-compact-ratio) * 1rem );\n --eui-base-spacing-l: calc( var(--eui-compact-ratio) * 1.5rem );\n --eui-base-spacing-xl: calc( var(--eui-compact-ratio) * 2rem );\n --eui-base-spacing-2xl: calc( var(--eui-compact-ratio) * 2.5rem );\n --eui-base-spacing-3xl: calc( var(--eui-compact-ratio) * 3rem );\n --eui-base-spacing-4xl: calc( var(--eui-compact-ratio) * 4rem );\n font-size: var(--eui-base-font-size);\n line-height: var(--eui-base-line-height);\n}\n.eui-table.eui-t-table-compact thead tr {\n height: auto;\n}\n.eui-table.eui-t-table-compact thead tr th {\n padding: var(--eui-table-header-padding) var(--eui-base-spacing-s);\n}\n.eui-table.eui-t-table-compact tbody tr {\n height: auto;\n}\n.eui-table.eui-t-table-compact tbody tr td {\n padding: var(--eui-table-row-padding) var(--eui-base-spacing-s);\n}\n.eui-table.eui-t-table-compact tfoot tr {\n height: auto;\n}\n.eui-table.eui-t-table-compact tfoot tr td {\n padding: var(--eui-table-footer-padding) var(--eui-base-spacing-s);\n}\n\n.eui-card.eui-t-card-compact {\n --eui-base-font-size: 14px;\n --eui-base-line-height: 1.25;\n --eui-card-title-size: var(--eui-base-font-size-m);\n --eui-card-subtitle-size: var(--eui-base-font-size-s);\n --eui-compact-ratio: 0.875;\n --eui-base-spacing-none: calc( var(--eui-compact-ratio) * 0 );\n --eui-base-spacing-2xs: calc( var(--eui-compact-ratio) * 0.25rem );\n --eui-base-spacing-xs: calc( var(--eui-compact-ratio) * 0.5rem );\n --eui-base-spacing-s: calc( var(--eui-compact-ratio) * 0.75rem );\n --eui-base-spacing-m: calc( var(--eui-compact-ratio) * 1rem );\n --eui-base-spacing-l: calc( var(--eui-compact-ratio) * 1.5rem );\n --eui-base-spacing-xl: calc( var(--eui-compact-ratio) * 2rem );\n --eui-base-spacing-2xl: calc( var(--eui-compact-ratio) * 2.5rem );\n --eui-base-spacing-3xl: calc( var(--eui-compact-ratio) * 3rem );\n --eui-base-spacing-4xl: calc( var(--eui-compact-ratio) * 4rem );\n font-size: var(--eui-base-font-size);\n line-height: var(--eui-base-line-height);\n}\n.eui-card.eui-t-card-compact .eui-card-header__title-container-title, .eui-card.eui-t-card-compact .eui-card-header__title-container-title .eui-label {\n font-size: var(--eui-card-title-size);\n}\n.eui-card.eui-t-card-compact .eui-card-header__title-container-subtitle, .eui-card.eui-t-card-compact .eui-card-header__title-container-subtitle .eui-label {\n font-size: var(--eui-card-subtitle-size);\n}\n.eui-card.eui-t-card-compact .eui-card-header__urgent-indicator::after {\n font-size: var(--eui-base-font-size-2xl);\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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGV1aS9zdHlsZXMtYmFzZS9zcmMvc3R5bGVzLzAyLWJhc2UvZnVuY3Rpb25zL191dGlscy5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BldWkvc3R5bGVzLWJhc2Uvc3JjL3N0eWxlcy8wMi1iYXNlL21peGlucy9fZXVpLWZvbnQtZmFtaWx5LnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGV1aS9zdHlsZXMtYmFzZS9zcmMvc3R5bGVzLzAwLXJlc2V0L19tb2R1bGUuc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AZXVpL3N0eWxlcy1iYXNlL3NyYy9zdHlsZXMvMDMtdmFycy9fdG9rZW5zLnZhcnMuc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AZXVpL3N0eWxlcy1iYXNlL3NyYy9zdHlsZXMvMDMtdmFycy9fb3RoZXIudmFycy5zY3NzIiwiMDJiLWJhc2UtdmFycy9fbGF5b3V0LnZhcnMuc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AZXVpL3N0eWxlcy1iYXNlL3NyYy9zdHlsZXMvMDUtYXNzZXRzL2ljb25zLXN2Zy9faWNvbnMtZ2VuZXJpY3Muc2NzcyIsIjA0LXZlbmRvcnMvbGlicy9ib290c3RyYXAvc2Nzcy9fZ3JpZC5zY3NzIiwiMDQtdmVuZG9ycy9saWJzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fZ3JpZC5zY3NzIiwiMDQtdmVuZG9ycy9saWJzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fYnJlYWtwb2ludHMuc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYW5ndWxhci9tYXRlcmlhbC9jb3JlL3JpcHBsZS9fcmlwcGxlLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGFuZ3VsYXIvY2RrL2ExMXkvX2luZGV4LnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGFuZ3VsYXIvY2RrL292ZXJsYXkvX2luZGV4LnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGFuZ3VsYXIvY2RrL3RleHQtZmllbGQvX2luZGV4LnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZS9mb2N1cy1pbmRpY2F0b3JzL19wcml2YXRlLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZS9zdHlsZS9fbGF5b3V0LWNvbW1vbi5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUvc3R5bGUvX3Nhc3MtdXRpbHMuc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AbWF0ZXJpYWwvdGhlbWUvX2Nzcy5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXIvX2RhdGVwaWNrZXItdGhlbWUuc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYW5ndWxhci9tYXRlcmlhbC9idXR0b24vX2ljb24tYnV0dG9uLXRoZW1lLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uL19idXR0b24tdGhlbWUtcHJpdmF0ZS5zY3NzIiwiMDUtbWF0ZXJpYWwvb3ZlcnJpZGVzL19jYWxlbmRhci5zY3NzIiwiMDUtbWF0ZXJpYWwvb3ZlcnJpZGVzL19jZGstZHJhZy5zY3NzIiwiMDUtbWF0ZXJpYWwvb3ZlcnJpZGVzL19jZGstZ2xvYmFsLXNjcm9sbGJsb2NrLnNjc3MiLCIwMi1iYXNlL21peGlucy9fZXVpLXNjcm9sbGJhcnMuc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AZXVpL3N0eWxlcy1iYXNlL3NyYy9zdHlsZXMvMDItYmFzZS9taXhpbnMvdXRpbHMvX21lZGlhLnNjc3MiLCIwNS1tYXRlcmlhbC9vdmVycmlkZXMvX2Nkay1vdmVybGF5LWNvbnRhaW5lci5zY3NzIiwiMDUtbWF0ZXJpYWwvb3ZlcnJpZGVzL19jZGstb3ZlcmxheS1jb250YWluZXIubXEuc2NzcyIsIjA1LW1hdGVyaWFsL292ZXJyaWRlcy9fY2RrLW92ZXJsYXktcGFuZS5zY3NzIiwiMDYtc2hhcmVkL19ldWktaW5wdXQtbWF4bGVuZ3RoLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGV1aS9zdHlsZXMtYmFzZS9zcmMvc3R5bGVzLzAyLWJhc2UvbWl4aW5zL19ldWktZm9udC5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BldWkvc3R5bGVzLWJhc2Uvc3JjL3N0eWxlcy8wNC1lbGVtZW50cy9faHRtbC5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BldWkvc3R5bGVzLWJhc2Uvc3JjL3N0eWxlcy8wNC1lbGVtZW50cy9fYm9keS5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BldWkvc3R5bGVzLWJhc2Uvc3JjL3N0eWxlcy8wNC1lbGVtZW50cy9fc2hhcmVkLnNjc3MiLCIwNy1lbGVtZW50cy9ldWktdGFibGUtZGVmYXVsdC9fZXVpLXRhYmxlLWRlZmF1bHQuc2NzcyIsIjA4LXRoZW1lcy9fbW9kdWxlLWNvbXBhY3Quc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AZXVpL3N0eWxlcy1iYXNlL3NyYy9zdHlsZXMvMDItYmFzZS9taXhpbnMvdGhlbWluZy9fY29tcGFjdC12YXJzLnNjc3MiLCIxMC1tZWRpYS9faWVpbWdmaXguc2NzcyIsIjExLWV4dHJhcy9fY29va2llLWNvbnNlbnQuc2NzcyIsIjExLWV4dHJhcy9fcHJlbG9hZGVyLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBd0NBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUN4Q0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQ0FBO0FBRUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBS0M7RUFDRztFQUNBOzs7QUFHRjtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBSUE7RUFDRTs7O0FBR0Y7QUFBQTtBQUFBO0FBSUE7RUFDRTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUNFO0VBQ0E7OztBQUdGO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQ0U7RUFDQTs7O0FBR0Y7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUlBO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUlBO0FBQUE7RUFFRTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7RUFHRTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFJQTtFQUNFOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7RUFFRTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUlBO0VBQ0U7OztBQUdGO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFLRTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBLFFBQ1E7RUFDTjs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBLFNBQ1M7RUFDUDs7O0FBR0Y7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7RUFJRTs7O0FBR0Y7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7RUFJRTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtFQUlFOzs7QUFHRjtBQUFBO0FBQUE7QUFJQTtFQUNFOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBSUE7RUFDRTs7O0FBR0Y7QUFBQTtBQUFBO0FBSUE7RUFDRTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0VBRUU7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBSUE7QUFBQTtFQUVFOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQ0U7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBSUE7RUFDRTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUNFO0VBQ0E7OztBQUdGO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFJQTtFQUNFOzs7QUFHRjtBQUFBO0FBQUE7QUFJQTtFQUNFOzs7QUFHRjtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBSUE7RUFDRTs7O0FBR0Y7QUFBQTtBQUFBO0FBSUE7RUFDRTs7O0FDM1ZKO0VBRUk7RUFHQTtFQUNBO0VBS1E7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBTUo7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFJSjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBR0E7RUFFSTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBSUo7RUFFSTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFVSTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQU1KO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBS0E7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFLQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTs7O0FDakVSO0VBQ0k7RUFDQTtFQUNBO0VBRUE7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUdBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUdBOzs7QUNwQ0o7RUFFSTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUdBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUdBO0VBSUE7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUVBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7OztBQ3JFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0E7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBS0E7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBS1I7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFJUjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTtFQUNBOzs7QUNwQ0Y7RUNBQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTs7QURKRTtFQ1NGO0VBSUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUErQ0k7RUFDRTs7O0FBR0Y7RUFwQ0o7RUFDQTs7O0FBY0E7RUFDRTtFQUNBOzs7QUFGRjtFQUNFO0VBQ0E7OztBQUZGO0VBQ0U7RUFDQTs7O0FBRkY7RUFDRTtFQUNBOzs7QUFGRjtFQUNFO0VBQ0E7OztBQUZGO0VBQ0U7RUFDQTs7O0FBK0JFO0VBaERKO0VBQ0E7OztBQXFEUTtFQWhFTjtFQUNBOzs7QUErRE07RUFoRU47RUFDQTs7O0FBK0RNO0VBaEVOO0VBQ0E7OztBQStETTtFQWhFTjtFQUNBOzs7QUErRE07RUFoRU47RUFDQTs7O0FBK0RNO0VBaEVOO0VBQ0E7OztBQStETTtFQWhFTjtFQUNBOzs7QUErRE07RUFoRU47RUFDQTs7O0FBK0RNO0VBaEVOO0VBQ0E7OztBQStETTtFQWhFTjtFQUNBOzs7QUErRE07RUFoRU47RUFDQTs7O0FBK0RNO0VBaEVOO0VBQ0E7OztBQXVFUTtFQXhEVjs7O0FBd0RVO0VBeERWOzs7QUF3RFU7RUF4RFY7OztBQXdEVTtFQXhEVjs7O0FBd0RVO0VBeERWOzs7QUF3RFU7RUF4RFY7OztBQXdEVTtFQXhEVjs7O0FBd0RVO0VBeERWOzs7QUF3RFU7RUF4RFY7OztBQXdEVTtFQXhEVjs7O0FBd0RVO0VBeERWOzs7QUFtRU07QUFBQTtFQUVFOzs7QUFHRjtBQUFBO0VBRUU7OztBQVBGO0FBQUE7RUFFRTs7O0FBR0Y7QUFBQTtFQUVFOzs7QUFQRjtBQUFBO0VBRUU7OztBQUdGO0FBQUE7RUFFRTs7O0FBUEY7QUFBQTtFQUVFOzs7QUFHRjtBQUFBO0VBRUU7OztBQVBGO0FBQUE7RUFFRTs7O0FBR0Y7QUFBQTtFQUVFOzs7QUFQRjtBQUFBO0VBRUU7OztBQUdGO0FBQUE7RUFFRTs7O0FDMUROO0VEVUU7SUFDRTs7RUFHRjtJQXBDSjtJQUNBOztFQWNBO0lBQ0U7SUFDQTs7RUFGRjtJQUNFO0lBQ0E7O0VBRkY7SUFDRTtJQUNBOztFQUZGO0lBQ0U7SUFDQTs7RUFGRjtJQUNFO0lBQ0E7O0VBRkY7SUFDRTtJQUNBOztFQStCRTtJQWhESjtJQUNBOztFQXFEUTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQXVFUTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQW1FTTtBQUFBO0lBRUU7O0VBR0Y7QUFBQTtJQUVFOztFQVBGO0FBQUE7SUFFRTs7RUFHRjtBQUFBO0lBRUU7O0VBUEY7QUFBQTtJQUVFOztFQUdGO0FBQUE7SUFFRTs7RUFQRjtBQUFBO0lBRUU7O0VBR0Y7QUFBQTtJQUVFOztFQVBGO0FBQUE7SUFFRTs7RUFHRjtBQUFBO0lBRUU7O0VBUEY7QUFBQTtJQUVFOztFQUdGO0FBQUE7SUFFRTs7O0FDMUROO0VEVUU7SUFDRTs7RUFHRjtJQXBDSjtJQUNBOztFQWNBO0lBQ0U7SUFDQTs7RUFGRjtJQUNFO0lBQ0E7O0VBRkY7SUFDRTtJQUNBOztFQUZGO0lBQ0U7SUFDQTs7RUFGRjtJQUNFO0lBQ0E7O0VBRkY7SUFDRTtJQUNBOztFQStCRTtJQWhESjtJQUNBOztFQXFEUTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQXVFUTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQW1FTTtBQUFBO0lBRUU7O0VBR0Y7QUFBQTtJQUVFOztFQVBGO0FBQUE7SUFFRTs7RUFHRjtBQUFBO0lBRUU7O0VBUEY7QUFBQTtJQUVFOztFQUdGO0FBQUE7SUFFRTs7RUFQRjtBQUFBO0lBRUU7O0VBR0Y7QUFBQTtJQUVFOztFQVBGO0FBQUE7SUFFRTs7RUFHRjtBQUFBO0lBRUU7O0VBUEY7QUFBQTtJQUVFOztFQUdGO0FBQUE7SUFFRTs7O0FDMUROO0VEVUU7SUFDRTs7RUFHRjtJQXBDSjtJQUNBOztFQWNBO0lBQ0U7SUFDQTs7RUFGRjtJQUNFO0lBQ0E7O0VBRkY7SUFDRTtJQUNBOztFQUZGO0lBQ0U7SUFDQTs7RUFGRjtJQUNFO0lBQ0E7O0VBRkY7SUFDRTtJQUNBOztFQStCRTtJQWhESjtJQUNBOztFQXFEUTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQXVFUTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQW1FTTtBQUFBO0lBRUU7O0VBR0Y7QUFBQTtJQUVFOztFQVBGO0FBQUE7SUFFRTs7RUFHRjtBQUFBO0lBRUU7O0VBUEY7QUFBQTtJQUVFOztFQUdGO0FBQUE7SUFFRTs7RUFQRjtBQUFBO0lBRUU7O0VBR0Y7QUFBQTtJQUVFOztFQVBGO0FBQUE7SUFFRTs7RUFHRjtBQUFBO0lBRUU7O0VBUEY7QUFBQTtJQUVFOztFQUdGO0FBQUE7SUFFRTs7O0FDMUROO0VEVUU7SUFDRTs7RUFHRjtJQXBDSjtJQUNBOztFQWNBO0lBQ0U7SUFDQTs7RUFGRjtJQUNFO0lBQ0E7O0VBRkY7SUFDRTtJQUNBOztFQUZGO0lBQ0U7SUFDQTs7RUFGRjtJQUNFO0lBQ0E7O0VBRkY7SUFDRTtJQUNBOztFQStCRTtJQWhESjtJQUNBOztFQXFEUTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQXVFUTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQW1FTTtBQUFBO0lBRUU7O0VBR0Y7QUFBQTtJQUVFOztFQVBGO0FBQUE7SUFFRTs7RUFHRjtBQUFBO0lBRUU7O0VBUEY7QUFBQTtJQUVFOztFQUdGO0FBQUE7SUFFRTs7RUFQRjtBQUFBO0lBRUU7O0VBR0Y7QUFBQTtJQUVFOztFQVBGO0FBQUE7SUFFRTs7RUFHRjtBQUFBO0lBRUU7O0VBUEY7QUFBQTtJQUVFOztFQUdGO0FBQUE7SUFFRTs7O0FDMUROO0VEVUU7SUFDRTs7RUFHRjtJQXBDSjtJQUNBOztFQWNBO0lBQ0U7SUFDQTs7RUFGRjtJQUNFO0lBQ0E7O0VBRkY7SUFDRTtJQUNBOztFQUZGO0lBQ0U7SUFDQTs7RUFGRjtJQUNFO0lBQ0E7O0VBRkY7SUFDRTtJQUNBOztFQStCRTtJQWhESjtJQUNBOztFQXFEUTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQXVFUTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQW1FTTtBQUFBO0lBRUU7O0VBR0Y7QUFBQTtJQUVFOztFQVBGO0FBQUE7SUFFRTs7RUFHRjtBQUFBO0lBRUU7O0VBUEY7QUFBQTtJQUVFOztFQUdGO0FBQUE7SUFFRTs7RUFQRjtBQUFBO0lBRUU7O0VBR0Y7QUFBQTtJQUVFOztFQVBGO0FBQUE7SUFFRTs7RUFHRjtBQUFBO0lBRUU7O0VBUEY7QUFBQTtJQUVFOztFQUdGO0FBQUE7SUFFRTs7O0FDMUROO0VEVUU7SUFDRTs7RUFHRjtJQXBDSjtJQUNBOztFQWNBO0lBQ0U7SUFDQTs7RUFGRjtJQUNFO0lBQ0E7O0VBRkY7SUFDRTtJQUNBOztFQUZGO0lBQ0U7SUFDQTs7RUFGRjtJQUNFO0lBQ0E7O0VBRkY7SUFDRTtJQUNBOztFQStCRTtJQWhESjtJQUNBOztFQXFEUTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQXVFUTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQW1FTTtBQUFBO0lBRUU7O0VBR0Y7QUFBQTtJQUVFOztFQVBGO0FBQUE7SUFFRTs7RUFHRjtBQUFBO0lBRUU7O0VBUEY7QUFBQTtJQUVFOztFQUdGO0FBQUE7SUFFRTs7RUFQRjtBQUFBO0lBRUU7O0VBR0Y7QUFBQTtJQUVFOztFQVBGO0FBQUE7SUFFRTs7RUFHRjtBQUFBO0lBRUU7O0VBUEY7QUFBQTtJQUVFOztFQUdGO0FBQUE7SUFFRTs7O0FFcEhSO0VBQ0U7RUFJQTs7QUFPQTtFQUNFOzs7QUFJSjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUVBO0VBSUE7O0FDZUE7RURYRTs7O0FDcENKO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUlBO0VBR0E7RUFHQTtFQUNBO0VBTUE7O0FBRUE7RUFDRTtFQUNBOzs7QUNoQko7RUFFRTtFQUdBO0VBQ0E7RUFDQTtFQUNBOzs7QUFJRjtFQUNFO0VBQ0EsU0EzQndCOztBQTZCeEI7RUFHRTs7O0FBUUo7RUFDRTtFQUNBO0VBQ0EsU0ExQ2M7OztBQThDaEI7RUFHRTtFQUNBO0VBQ0E7RUFDQSxTQXBEYztFQXdEZDtFQUNBO0VBQ0E7OztBQUdGO0VBRUU7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBLFNBcEV1QjtFQXFFdkI7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDRTs7QUFLQTtFQUdFOzs7QUFLTjtFQUNFLFlBdEZxQjs7O0FBeUZ2QjtFQUVFO0VBQ0E7RUFDQTs7QUFNQTtFQUNFO0VBQ0E7OztBQUlKO0VBQ0U7OztBQUtGO0VBQ0U7RUFDQSxTQXJIYztFQTBIZDtFQUlBO0VBR0E7RUFDQTs7O0FBSUY7RUFDRTtFQUtBO0VBS0E7OztBQ2pKRjtFQUNFOzs7QUFNRjtFQXlDQTtFQUNBO0VBeENFO0VBQ0E7OztBQVNGO0VBNkJBO0VBQ0E7RUE1QkU7OztBQVVGO0FBQ0E7QUFFQTtFQUVFOzs7QUFHRjtFQUVFOzs7QUM5QkY7RUFDRTs7QUFFQTtFQ2hCRjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VEY0k7RUFDQTtFQUNBO0VBQ0E7RUFZQTs7QUFRRjtFQUNFOzs7QUgwQ0E7RUc1QkE7OztBQTNDSjtFQUNFOztBQUVBO0VDaEJGO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RURjSTtFQUNBO0VBQ0E7RUFDQTtFQVlBOztBQVFGO0VBQ0U7OztBSDBDQTtFRzVCQTs7O0FFOUNLO0VDa0VQO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBOzs7QUMxQ0E7RUQwQ0E7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7O0FDdENBO0VEc0NBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBOzs7QUNoQ0E7RURnQ0E7O0FDMUJBO0VEMEJBOzs7QUVNRjtFRk5FO0VFa0JBO0VBQ0E7RUFDQTs7QUNwQ0E7RUFDRTs7O0FKbkRLO0VDa0VQOzs7QUk5RUo7RUFDSTtFQUNBOztBQUdJO0VBQ0k7OztBQ0xaO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTs7QUFFQTtFQUNJOzs7QUFLUjtFQUNJOzs7QUFJSjtFQUNJOzs7QUFJSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7O0FBRUE7RUFDSTtFQUNBOzs7QUM1Q1I7RUFDSTtFQUNBO0VBQ0E7RUFFQTs7QUNMQTtFQUNJO0VBQ0EsUUFIc0I7RUFJdEIsT0FKc0I7RUFPbEIsa0JBUHdGOztBQWVoRztFQUVRLGtCQWpCMEM7RUFrQjFDLGVBbEJrSTs7QUFvQmxJO0VBQ0k7O0FBU1o7RUFFUSxrQkFoQ3dGO0VBaUN4Rjs7O0FDWko7RUZaSjtJQUNJO0lBQ0E7SUFDQTtJQUNBOztFQ1pKO0lBQ0k7SUFDQSxRQUhzQjtJQUl0QixPQUpzQjtJQU9sQixrQkFQd0Y7O0VBZWhHO0lBRVEsa0JBakIwQztJQWtCMUMsZUFsQmtJOztFQW9CbEk7SUFDSTs7RUFTWjtJQUVRLGtCQWhDd0Y7SUFpQ3hGOzs7QUVqQ1o7RUFDSTs7QUFFQTtFQUNJO0VBQ0E7O0FGSko7RUFDSTtFQUNBLFFBSHNCO0VBSXRCLE9BSnNCO0VBT2xCLGtCQVB3Rjs7QUFlaEc7RUFFUSxrQkFqQjBDO0VBa0IxQyxlQWxCa0k7O0FBb0JsSTtFQUNJOztBQVNaO0VBRVEsa0JBaEN3RjtFQWlDeEY7O0FBaENSO0VBQ0k7RUFDQSxRQUhzQjtFQUl0QixPQUpzQjtFQU9sQixrQkFQd0Y7O0FBZWhHO0VBRVEsa0JBakIwQztFQWtCMUMsZUFsQmtJOztBQW9CbEk7RUFDSTs7QUFTWjtFQUVRLGtCQWhDd0Y7RUFpQ3hGOzs7QUNaSjtFRXBCSjtJQUNJO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTs7O0FDUFI7RUFDSTtFQUNBOzs7QUNBSjtFQUNJO0VBQ0E7O0FBRUE7RUNGQSxNQUYyQjtFRE12QjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7OztBRXJCWjtFQUVJO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTs7O0FDUko7RUFFSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FDTEE7RUFDSTs7QUFJUjtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQ0k7OztBQUlBO0VBR0k7OztBQWNSO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQVNJOzs7QUFRSjtFQUNJOzs7QUFJSjtFQUNJOzs7QUFNSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQU9JOzs7QUN2Rko7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHQTtBQUFBO0FBQUE7RUFHSTs7QUFHSjtBQUFBO0VBRUk7O0FBSUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VKeEJSLE1BRjJCO0U3Qm9FM0I7O0FpQ3RDSTtFQUNJO0VBQ0E7O0FBS1I7RUFDSTs7QUFFQTtFQUNJOztBQUVBO0VBQ0k7O0FBSVI7RUFDSTs7QUFFQTtFQUNJOztBQUtaO0VBQ0k7RUFDQTs7QUFNSTtFQUNJOztBQUlSO0VBQ0k7O0FBS1I7RUFDSTtFQUNBOztBQUVBO0VBQ0k7O0FBTUo7QUFBQTtFQUVJOztBQUtSO0VBQ0k7O0FBSUo7RUFDSTs7QUFFQTtBQUFBO0FBQUE7RUFHSTs7QUFLUjtFQUNJO0VBQ0E7RUFDQTs7QUFLQTtBQUFBO0FBQUE7RUFHSTs7O0FDdkhaO0VBRUk7RUFDQTtFQUVBO0VBQ0E7OztBQUtKO0VBRUk7RUFDQTtFQUNBO0VDbEJBO0VBRUk7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RURxQko7RUFDQTtFQUNBOztBQUdBO0VBQ0k7O0FBRUE7RUFDSTs7QUFJUjtFQUNJO0VBQ0E7RUFDQTs7QUFHSjtFQUNJOzs7QUFNUjtFQUVJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUN2REE7RUFFSTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFRHlESjtFQUNBOztBQUlJO0VBQ0k7O0FBRUE7RUFDSTs7QUFNUjtFQUNJOztBQUVBO0VBQ0k7O0FBTVI7RUFDSTs7QUFFQTtFQUNJOzs7QUFRaEI7RUFFSTtFQUNBO0VBQ0E7RUFDQTtFQ3JHQTtFQUVJO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VEdUdKO0VBQ0E7O0FBTVk7RUFFSTs7QUFHSjtFQUVJOztBQUtKO0VBQ0k7OztBRTdIcEI7RUFDSTtJQUNJOzs7QUFHUjtFQUVJO0lBQ0k7SUFDQTtJQUNBOzs7QUNWUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUNYSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFLWjtBQUNBO0VBQ0k7SUFDSTtJQUNBO0lBQ0E7O0VBR0o7SUFDSTtJQUNBO0lBQ0E7OztBQUdSO0VBQ0k7SUFDSTtJQUNBO0lBQ0E7O0VBR0o7SUFDSTtJQUNBO0lBQ0E7OztBQUdSO0VBQ0k7SUFDSTtJQUNBOztFQUVKO0lBQ0k7SUFDQTs7RUFFSjtJQUNJOzs7QUFHUjtFQUNJO0lBQ0k7SUFDQTs7RUFFSjtJQUNJO0lBQ0E7O0VBRUo7SUFDSSIsImZpbGUiOiJldWkudGVtcC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlIFwic2FzczptYXRoXCI7XG5AZnVuY3Rpb24gdigkdmFyLCAkZmFsbGJhY2s6IG51bGwpIHtcbiAgICBAaWYgKCRmYWxsYmFjaykge1xuICAgICAgICBAcmV0dXJuIHZhcigtLSN7JHZhcn0sICN7JGZhbGxiYWNrfSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICAgQHJldHVybiB2YXIoLS0jeyR2YXJ9KTtcbiAgICB9XG59XG5AZnVuY3Rpb24gbWFwLWRlZXAtZ2V0KCRtYXAsICRrZXlzLi4uKSB7XG4gICAgQGVhY2ggJGtleSBpbiAka2V5cyB7XG4gICAgICAgIEBkZWJ1ZyAjeyRtYXB9O1xuICAgICAgICAkbWFwOiBtYXAtZ2V0KCRtYXAsICRrZXkpO1xuICAgIH1cbiAgICBAcmV0dXJuICRtYXA7XG59XG5AZnVuY3Rpb24gdG9SR0IoJGNvbG9yKSB7XG4gICAgQHJldHVybiBcInJnYihcIiArIHJlZCgkY29sb3IpICsgXCIsIFwiICsgZ3JlZW4oJGNvbG9yKSArIFwiLCBcIiArIGJsdWUoJGNvbG9yKSsgXCIpXCI7XG59XG5AZnVuY3Rpb24gZ2V0Q29udHJhc3QoJGNvbG9yKSB7XG4gICAgJGNvbG9yLWJyaWdodG5lc3M6IHJvdW5kKChyZWQoJGNvbG9yKSAqIDI5OSkgKyAoZ3JlZW4oJGNvbG9yKSAqIDU4NykgKyBtYXRoLmRpdigoYmx1ZSgkY29sb3IpICogMTE0KSwgMTAwMCkpO1xuICAgICRsaWdodC1jb2xvcjogcm91bmQoKHJlZCgjZmZmKSAqIDI5OSkgKyAoZ3JlZW4oI2ZmZikgKiA1ODcpICsgbWF0aC5kaXYoKGJsdWUoI2ZmZikgKiAxMTQpLCAxMDAwKSk7XG4gICAgQGlmIGFicygkY29sb3ItYnJpZ2h0bmVzcykgPCBtYXRoLmRpdigkbGlnaHQtY29sb3IsIDIpIHtcbiAgICAgICAgQHJldHVybiB3aGl0ZTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgICBAcmV0dXJuIG1hcC1nZXQoJGVjbC1iYXNlLWNvbG9ycywgJ2dyZXktMTAwJyk7XG4gICAgfVxufVxuQGZ1bmN0aW9uIGdldENvbG9yKCRzaGFkZTogcHJpbWFyeSwgJGh1ZTogMTAwKSB7XG4gICAgJHNlbGVjdGVkLXNoYWRlOiBtYXAtZ2V0KCRldWktYmFzZS10b2tlbnMtY29sb3JzLCAkc2hhZGUpO1xuICAgIEBpZiAoJHNlbGVjdGVkLXNoYWRlKSB7XG4gICAgICAgIEByZXR1cm4gbWFwLWdldCgkc2VsZWN0ZWQtc2hhZGUsICRodWUpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAgIEByZXR1cm4gYmxhY2s7XG4gICAgfVxuICAgIEByZXR1cm4gJHNlbGVjdGVkLWNvbG9yO1xufVxuXG4vKipcbiAgICogRUNMIGNvbG9yIHZhcmlhbnRzIGZvcm11bGFcbiAgICogQXBwbGllcyB0aW50IG9yIHNoYWRlIG9mIGJhc2UgY29sb3IgcHJvdmlkZWRcbiAgICpcbiAgICogQHBhcmFtIGNvbG9yOiBiYXNlIGNvbG9yLCBoYXMgdmFyaWFudCBvZiAxMDBcbiAgICogQHBhcmFtIHZhcmlhbnQ6IG51bWJlciBpbiByYW5nZSBiZXR3ZWVuIDAgLSAyMDBcbiAgICogICAgICAgICAgICAgICAgIDEwMCAtIG5ldXRyYWwgdmFyaWFudCwgbm8gY2hhbmdlc1xuICAgKiAgICAgICAgICAgICAgICAgMCAtIDk5OiBicmlnaHRlbnMgYmFzZSBjb2xvciBieSBtaXhpbmcgaW4gd2hpdGUgY29sb3IsIHRoZSBsb3dlciwgdGhlIGJyaWdodGVyXG4gICAqICAgICAgICAgICAgICAgICA5OSAtIDIwMDogZGFya2VucyBiYXNlIGNvbG9yIGJ5IG1peGluZyBpbiBibGFjayBjb2xvciwgdGhlIGJpZ2dlciwgdGhlIGRhcmtlclxuICAgKlxuICAgKiBAcmV0dXJuIGNvbG9yIHZhcmlhbnQgb2YgcHJvdmlkZWQgYmFzZSBjb2xvclxuICAgKlxuICAgKiBAZXhhbXBsZXNcbiAgICpcbiAgICogLy8gcHJvdmlkZXMgMzAlIGRhcmtlciBwaW5rIGNvbG9yXG4gICAqIGJhY2tncm91bmQtY29sb3I6IGV1aS1jb2xvci12YXJpYW50KHBpbmssIDEzMCk7XG4gICAqXG4gICAqIC8vIHByb3ZpZGVzIDk1JSBsaWdodGVyIHBpbmsgY29sb3JcbiAgICogYmFja2dyb3VuZC1jb2xvcjogZXVpLWNvbG9yLXZhcmlhbnQocGluaywgNSk7XG4gICAqL1xuQGZ1bmN0aW9uIGV1aS1jb2xvci12YXJpYW50KCRjb2xvciwgJHZhcmlhbnQ6IDEwMCkge1xuICAgIEBpZiAoJHZhcmlhbnQgPCAxMDApIHtcbiAgICAgICAgQHJldHVybiBtaXgoI2ZmZmZmZiwgJGNvbG9yLCAoMTAwIC0gJHZhcmlhbnQpICogMSUpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAgIEByZXR1cm4gbWl4KCMwMDAwMDAsICRjb2xvciwgKCR2YXJpYW50IC0gMTAwKSAqIDElKTtcbiAgICB9XG59XG5AZnVuY3Rpb24gbmV3LWJyZWFrcG9pbnQoJHF1ZXJ5OiAkZmVhdHVyZSAkdmFsdWUpIHtcbiAgICBAaWYgbGVuZ3RoKCRxdWVyeSkgPT0gMSB7XG4gICAgICAgICRxdWVyeTogJGRlZmF1bHQtZmVhdHVyZSBudGgoJHF1ZXJ5LCAxKTtcbiAgICB9XG4gICAgQGVsc2UgaWYgaXMtZXZlbihsZW5ndGgoJHF1ZXJ5KSkge1xuICAgICAgICAkcXVlcnk6IGFwcGVuZCgkcXVlcnksIDEyKTtcbiAgICB9XG4gICAgQHJldHVybiAkcXVlcnk7XG59XG5AZnVuY3Rpb24gc3RyaXAtdW5pdHMoJHZhbHVlKSB7XG4gICAgQHJldHVybiBtYXRoLmRpdigkdmFsdWUsICR2YWx1ZSAqIDAgKyAxKTtcbn1cbkBmdW5jdGlvbiB0by1yZW0oJHB4dmFsKSB7XG4gICAgQGlmIG5vdCB1bml0bGVzcygkcHh2YWwpIHtcbiAgICAgICAgJHB4dmFsOiBzdHJpcC11bml0cygkcHh2YWwpO1xuICAgIH1cbiAgICAkYmFzZTogMTZweDtcbiAgICBAaWYgbm90IHVuaXRsZXNzKCRiYXNlKSB7XG4gICAgICAgICRiYXNlOiBzdHJpcC11bml0cygkYmFzZSk7XG4gICAgfVxuICAgIEByZXR1cm4gbWF0aC5kaXYoJHB4dmFsLCAkYmFzZSkgKiAxcmVtO1xufVxuIiwiLyoqIENvbW1vbiB3ZWlnaHQgbmFtZSBtYXBwaW5nXG4gICAgQFNlZSB0aGUgT3BlblR5cGUgc3BlY2lmaWNhdGlvbjpcbiAgICBodHRwczovL2RvY3MubWljcm9zb2Z0LmNvbS9lbi11cy90eXBvZ3JhcGh5L29wZW50eXBlL3NwZWMvb3MyI3Vzd2VpZ2h0Y2xhc3NcbiAgICBUaGUgbnVtZXJpY2FsIHZhbHVlcyAxMDAgdG8gOTAwIHJvdWdobHkgY29ycmVzcG9uZCB0byB0aGUgZm9sbG93aW5nIGNvbW1vbiB3ZWlnaHQgbmFtZXM6XG4gICAgMTAwICAgICBUaGluIChIYWlybGluZSlcbiAgICAyMDBcdCAgICBFeHRyYSBMaWdodCAoVWx0cmEgTGlnaHQpXG4gICAgMzAwXHQgICAgTGlnaHRcbiAgICA0MDBcdCAgICBOb3JtYWxcbiAgICA1MDBcdCAgICBNZWRpdW1cbiAgICA2MDBcdCAgICBTZW1pIEJvbGQgKERlbWkgQm9sZClcbiAgICA3MDBcdCAgICBCb2xkXG4gICAgODAwXHQgICAgRXh0cmEgQm9sZCAoVWx0cmEgQm9sZClcbiAgICA5MDBcdCAgICBCbGFjayAoSGVhdnkpXG4qKi9cbi8vIG5vcm1hbFxuQG1peGluIGV1aS1mb250LWZhbWlseSgpIHtcbiAgICBAaW5jbHVkZSBldWktZm9udChtLCB1aSk7XG59XG4vLyB0b2JlIHJlbW92ZWRcbkBtaXhpbiBldWktZm9udC1mYW1pbHktbm9ybWFsKCkge1xuICAgIEBpbmNsdWRlIGV1aS1mb250KG0sIHVpKTtcbn1cbkBtaXhpbiBldWktZm9udC1mYW1pbHktcygpIHtcbiAgICBAaW5jbHVkZSBldWktZm9udChzLCB1aSk7XG59XG5AbWl4aW4gZXVpLWZvbnQtZmFtaWx5LXhzKCkge1xuICAgIEBpbmNsdWRlIGV1aS1mb250KHhzLCB1aSk7XG59XG5AbWl4aW4gZXVpLWZvbnQtZmFtaWx5LWwoKSB7XG4gICAgQGluY2x1ZGUgZXVpLWZvbnQobCwgdWkpO1xufVxuQG1peGluIGV1aS1mb250LWZhbWlseS14bCgpIHtcbiAgICBAaW5jbHVkZSBldWktZm9udCh4bCwgdWkpO1xufVxuXG4vLyBib2xkXG5AbWl4aW4gZXVpLWZvbnQtZmFtaWx5LWJvbGQoKSB7XG4gICAgQGluY2x1ZGUgZXVpLWZvbnQobSwgdWkpO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5AbWl4aW4gZXVpLWZvbnQtZmFtaWx5LWJvbGQteHMoKSB7XG4gICAgQGluY2x1ZGUgZXVpLWZvbnQoeHMsIHVpKTtcbiAgICBmb250LXdlaWdodDogNzAwO1xufVxuQG1peGluIGV1aS1mb250LWZhbWlseS1ib2xkLXMoKSB7XG4gICAgQGluY2x1ZGUgZXVpLWZvbnQocywgdWkpO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5AbWl4aW4gZXVpLWZvbnQtZmFtaWx5LWJvbGQtbCgpIHtcbiAgICBAaW5jbHVkZSBldWktZm9udChsLCB1aSk7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cbkBtaXhpbiBldWktZm9udC1mYW1pbHktYm9sZC14bCgpIHtcbiAgICBAaW5jbHVkZSBldWktZm9udCh4bCwgdWkpO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbi8vIGxpZ2h0XG5AbWl4aW4gZXVpLWZvbnQtZmFtaWx5LWxpZ2h0KCkge1xuICAgIEBpbmNsdWRlIGV1aS1mb250KG0sIHVpKTtcbiAgICBmb250LXdlaWdodDogMzAwO1xufVxuXG4vLyBpdGFsaWNcbkBtaXhpbiBldWktZm9udC1mYW1pbHktaXRhbGljKCkge1xuICAgIEBpbmNsdWRlIGV1aS1mb250KG0sIHVpKTtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5AbWl4aW4gZXVpLWZvbnQtZmFtaWx5LWJvbGQoKSB7XG4gICAgQGluY2x1ZGUgZXVpLWZvbnQobSwgdWkpO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbi8vIGJvbGQgaXRhbGljXG5AbWl4aW4gZXVpLWZvbnQtZmFtaWx5LWJvbGQtaXRhbGljKCkge1xuICAgIEBpbmNsdWRlIGV1aS1mb250KG0sIHVpKTtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuLy8gbW9ub3NwYWNlXG5AbWl4aW4gZXVpLWZvbnQtZmFtaWx5LW1vbm9zcGFjZSgpIHtcbiAgICBmb250LWZhbWlseTogdihldWktYmFzZS1mb250LWZhbWlseS1tb25vc3BhY2UpO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXdlaWdodDogNDAwO1xufVxuIiwiLyohIG5vcm1hbGl6ZS5jc3MgdjguMC4xIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xuXG4vKiBEb2N1bWVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluIGlPUy5cbiAqL1xuXG4gaHRtbCB7XG4gICAgbGluZS1oZWlnaHQ6IDEuMTU7IC8qIDEgKi9cbiAgICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbiAgfVxuXG4gIC8qIFNlY3Rpb25zXG4gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgLyoqXG4gICAqIFJlbW92ZSB0aGUgbWFyZ2luIGluIGFsbCBicm93c2Vycy5cbiAgICovXG5cbiAgYm9keSB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbmRlciB0aGUgYG1haW5gIGVsZW1lbnQgY29uc2lzdGVudGx5IGluIElFLlxuICAgKi9cblxuICBtYWluIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIC8qKlxuICAgKiBDb3JyZWN0IHRoZSBmb250IHNpemUgYW5kIG1hcmdpbiBvbiBgaDFgIGVsZW1lbnRzIHdpdGhpbiBgc2VjdGlvbmAgYW5kXG4gICAqIGBhcnRpY2xlYCBjb250ZXh0cyBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBTYWZhcmkuXG4gICAqL1xuXG4gIGgxIHtcbiAgICBmb250LXNpemU6IDJlbTtcbiAgICBtYXJnaW46IDAuNjdlbSAwO1xuICB9XG5cbiAgLyogR3JvdXBpbmcgY29udGVudFxuICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gIC8qKlxuICAgKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBGaXJlZm94LlxuICAgKiAyLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlIGFuZCBJRS5cbiAgICovXG5cbiAgaHIge1xuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvKiAxICovXG4gICAgaGVpZ2h0OiAwOyAvKiAxICovXG4gICAgb3ZlcmZsb3c6IHZpc2libGU7IC8qIDIgKi9cbiAgfVxuXG4gIC8qKlxuICAgKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICAgKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gICAqL1xuXG4gIHByZSB7XG4gICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvKiAxICovXG4gICAgZm9udC1zaXplOiAxZW07IC8qIDIgKi9cbiAgfVxuXG4gIC8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgLyoqXG4gICAqIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIG9uIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAgICovXG5cbiAgYSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cblxuICAvKipcbiAgICogMS4gUmVtb3ZlIHRoZSBib3R0b20gYm9yZGVyIGluIENocm9tZSA1Ny1cbiAgICogMi4gQWRkIHRoZSBjb3JyZWN0IHRleHQgZGVjb3JhdGlvbiBpbiBDaHJvbWUsIEVkZ2UsIElFLCBPcGVyYSwgYW5kIFNhZmFyaS5cbiAgICovXG5cbiAgYWJiclt0aXRsZV0ge1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7IC8qIDEgKi9cbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgLyogMiAqL1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDsgLyogMiAqL1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG4gICAqL1xuXG4gIGIsXG4gIHN0cm9uZyB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICAgKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gICAqL1xuXG4gIGNvZGUsXG4gIGtiZCxcbiAgc2FtcCB7XG4gICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvKiAxICovXG4gICAgZm9udC1zaXplOiAxZW07IC8qIDIgKi9cbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAgICovXG5cbiAgc21hbGwge1xuICAgIGZvbnQtc2l6ZTogODAlO1xuICB9XG5cbiAgLyoqXG4gICAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGVsZW1lbnRzIGZyb20gYWZmZWN0aW5nIHRoZSBsaW5lIGhlaWdodCBpblxuICAgKiBhbGwgYnJvd3NlcnMuXG4gICAqL1xuXG4gIHN1YixcbiAgc3VwIHtcbiAgICBmb250LXNpemU6IDc1JTtcbiAgICBsaW5lLWhlaWdodDogMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICB9XG5cbiAgc3ViIHtcbiAgICBib3R0b206IC0wLjI1ZW07XG4gIH1cblxuICBzdXAge1xuICAgIHRvcDogLTAuNWVtO1xuICB9XG5cbiAgLyogRW1iZWRkZWQgY29udGVudFxuICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gIC8qKlxuICAgKiBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgaW5zaWRlIGxpbmtzIGluIElFIDEwLlxuICAgKi9cblxuICBpbWcge1xuICAgIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgfVxuXG4gIC8qIEZvcm1zXG4gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgLyoqXG4gICAqIDEuIENoYW5nZSB0aGUgZm9udCBzdHlsZXMgaW4gYWxsIGJyb3dzZXJzLlxuICAgKiAyLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXG4gICAqL1xuXG4gIGJ1dHRvbixcbiAgaW5wdXQsXG4gIG9wdGdyb3VwLFxuICBzZWxlY3QsXG4gIHRleHRhcmVhIHtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDsgLyogMSAqL1xuICAgIGZvbnQtc2l6ZTogMTAwJTsgLyogMSAqL1xuICAgIGxpbmUtaGVpZ2h0OiAxLjE1OyAvKiAxICovXG4gICAgbWFyZ2luOiAwOyAvKiAyICovXG4gIH1cblxuICAvKipcbiAgICogU2hvdyB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gICAqIDEuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UuXG4gICAqL1xuXG4gIGJ1dHRvbixcbiAgaW5wdXQgeyAvKiAxICovXG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXG4gICAqIDEuIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRmlyZWZveC5cbiAgICovXG5cbiAgYnV0dG9uLFxuICBzZWxlY3QgeyAvKiAxICovXG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIH1cblxuICAvKipcbiAgICogQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAgICovXG5cbiAgYnV0dG9uLFxuICBbdHlwZT1cImJ1dHRvblwiXSxcbiAgW3R5cGU9XCJyZXNldFwiXSxcbiAgW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSB0aGUgaW5uZXIgYm9yZGVyIGFuZCBwYWRkaW5nIGluIEZpcmVmb3guXG4gICAqL1xuXG4gIGJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcbiAgW3R5cGU9XCJidXR0b25cIl06Oi1tb3otZm9jdXMtaW5uZXIsXG4gIFt0eXBlPVwicmVzZXRcIl06Oi1tb3otZm9jdXMtaW5uZXIsXG4gIFt0eXBlPVwic3VibWl0XCJdOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICBib3JkZXItc3R5bGU6IG5vbmU7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXN0b3JlIHRoZSBmb2N1cyBzdHlsZXMgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXG4gICAqL1xuXG4gIGJ1dHRvbjotbW96LWZvY3VzcmluZyxcbiAgW3R5cGU9XCJidXR0b25cIl06LW1vei1mb2N1c3JpbmcsXG4gIFt0eXBlPVwicmVzZXRcIl06LW1vei1mb2N1c3JpbmcsXG4gIFt0eXBlPVwic3VibWl0XCJdOi1tb3otZm9jdXNyaW5nIHtcbiAgICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7XG4gIH1cblxuICAvKipcbiAgICogQ29ycmVjdCB0aGUgcGFkZGluZyBpbiBGaXJlZm94LlxuICAgKi9cblxuICBmaWVsZHNldCB7XG4gICAgcGFkZGluZzogMC4zNWVtIDAuNzVlbSAwLjYyNWVtO1xuICB9XG5cbiAgLyoqXG4gICAqIDEuIENvcnJlY3QgdGhlIHRleHQgd3JhcHBpbmcgaW4gRWRnZSBhbmQgSUUuXG4gICAqIDIuIENvcnJlY3QgdGhlIGNvbG9yIGluaGVyaXRhbmNlIGZyb20gYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBJRS5cbiAgICogMy4gUmVtb3ZlIHRoZSBwYWRkaW5nIHNvIGRldmVsb3BlcnMgYXJlIG5vdCBjYXVnaHQgb3V0IHdoZW4gdGhleSB6ZXJvIG91dFxuICAgKiAgICBgZmllbGRzZXRgIGVsZW1lbnRzIGluIGFsbCBicm93c2Vycy5cbiAgICovXG5cbiAgbGVnZW5kIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gICAgY29sb3I6IGluaGVyaXQ7IC8qIDIgKi9cbiAgICBkaXNwbGF5OiB0YWJsZTsgLyogMSAqL1xuICAgIG1heC13aWR0aDogMTAwJTsgLyogMSAqL1xuICAgIHBhZGRpbmc6IDA7IC8qIDMgKi9cbiAgICB3aGl0ZS1zcGFjZTogbm9ybWFsOyAvKiAxICovXG4gIH1cblxuICAvKipcbiAgICogQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAgICovXG5cbiAgcHJvZ3Jlc3Mge1xuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgdGhlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDEwKy5cbiAgICovXG5cbiAgdGV4dGFyZWEge1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICB9XG5cbiAgLyoqXG4gICAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIElFIDEwLlxuICAgKiAyLiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAuXG4gICAqL1xuXG4gIFt0eXBlPVwiY2hlY2tib3hcIl0sXG4gIFt0eXBlPVwicmFkaW9cIl0ge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgICBwYWRkaW5nOiAwOyAvKiAyICovXG4gIH1cblxuICAvKipcbiAgICogQ29ycmVjdCB0aGUgY3Vyc29yIHN0eWxlIG9mIGluY3JlbWVudCBhbmQgZGVjcmVtZW50IGJ1dHRvbnMgaW4gQ2hyb21lLlxuICAgKi9cblxuICBbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbiAgW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxuXG4gIC8qKlxuICAgKiAxLiBDb3JyZWN0IHRoZSBvZGQgYXBwZWFyYW5jZSBpbiBDaHJvbWUgYW5kIFNhZmFyaS5cbiAgICogMi4gQ29ycmVjdCB0aGUgb3V0bGluZSBzdHlsZSBpbiBTYWZhcmkuXG4gICAqL1xuXG4gIFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLyogMSAqL1xuICAgIG91dGxpbmUtb2Zmc2V0OiAtMnB4OyAvKiAyICovXG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIHRoZSBpbm5lciBwYWRkaW5nIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIG1hY09TLlxuICAgKi9cblxuICBbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICB9XG5cbiAgLyoqXG4gICAqIDEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gICAqIDIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIFNhZmFyaS5cbiAgICovXG5cbiAgOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDEgKi9cbiAgICBmb250OiBpbmhlcml0OyAvKiAyICovXG4gIH1cblxuICAvKiBJbnRlcmFjdGl2ZVxuICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gIC8qXG4gICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIEVkZ2UsIElFIDEwKywgYW5kIEZpcmVmb3guXG4gICAqL1xuXG4gIGRldGFpbHMge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgLypcbiAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gYWxsIGJyb3dzZXJzLlxuICAgKi9cblxuICBzdW1tYXJ5IHtcbiAgICBkaXNwbGF5OiBsaXN0LWl0ZW07XG4gIH1cblxuICAvKiBNaXNjXG4gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgLyoqXG4gICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwKy5cbiAgICovXG5cbiAgdGVtcGxhdGUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAvKipcbiAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTAuXG4gICAqL1xuXG4gIFtoaWRkZW5dIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4iLCI6cm9vdCB7XG4gICAgLy8gLy8gRk9OVFNcbiAgICAtLWV1aS1iYXNlLWZvbnQtZmFtaWx5OiBBcmlhbCwgJ0hlbHZldGljYSBOZXVlJywgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuICAgIC8vIC0tZXVpLWJhc2UtZm9udC1mYW1pbHk6ICdTb3VyY2UgU2FucyBQcm8nLCBzYW5zLXNlcmlmOyAgPGxpbmsgaHJlZj1cImh0dHBzOi8vZm9udHMuY2RuZm9udHMuY29tL2Nzcy9zb3VyY2Utc2Fucy1wcm9cIiByZWw9XCJzdHlsZXNoZWV0XCI+XG4gICAgLy8gLS1ldWktYmFzZS1mb250LWZhbWlseTogJ1JvYm90bycsIHNhbnMtc2VyaWY7ICA8bGluayBocmVmPVwiaHR0cHM6Ly9mb250cy5jZG5mb250cy5jb20vY3NzL3JvYm90b1wiIHJlbD1cInN0eWxlc2hlZXRcIj5cbiAgICAtLWV1aS1iYXNlLWZvbnQtZmFtaWx5LWljb25zOiAnZXVpLWljb25zJywgc2Fucy1zZXJpZjtcbiAgICAtLWV1aS1iYXNlLWZvbnQtZmFtaWx5LW1vbm9zcGFjZTogJ0NvbnNvbGFzJywgJ0xpYmVyYXRpb24gTW9ubycsICdDb3VyaWVyIE5ldycsIG1vbm9zcGFjZTtcblxuICAgIC8vIENPTE9SU1xuICAgIEBlYWNoICRjb2xvciwgJHNoYWRlcyBpbiAkZXVpLWJhc2UtdG9rZW5zLWNvbG9ycyB7XG4gICAgICAgIEBlYWNoICRzaGFkZSwgJHZhbHVlIGluICRzaGFkZXMge1xuICAgICAgICAgICAgLS1ldWktYmFzZS1jb2xvci0jeyRjb2xvciArICctJyArICRzaGFkZX06ICN7JHZhbHVlfTtcbiAgICAgICAgICAgIC0tZXVpLWJhc2UtY29sb3ItI3skY29sb3IgKyAnLScgKyAkc2hhZGV9LXJnYjogI3t0b1JHQigkdmFsdWUpfTtcbiAgICAgICAgICAgIC0tZXVpLWJhc2UtY29sb3ItI3skY29sb3IgKyAnLScgKyAkc2hhZGV9LWNvbnRyYXN0OiAje2dldENvbnRyYXN0KCR2YWx1ZSl9O1xuICAgICAgICAgICAgLS1ldWktYmFzZS1jb2xvci0jeyRjb2xvciArICctJyArICRzaGFkZX0tY29udHJhc3QtcmdiOiAje3RvUkdCKGdldENvbnRyYXN0KCR2YWx1ZSkpfTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIERFRkFVTFRTIDEwMHNcbiAgICBAZWFjaCAkY29sb3IsICR2YWx1ZSBpbiAkZXVpLWJhc2UtdG9rZW5zLWNvbG9ycy0xMDBzIHtcbiAgICAgICAgLS1ldWktYmFzZS1jb2xvci0jeycnICsgJGNvbG9yfTogI3skdmFsdWV9O1xuICAgIH1cblxuICAgIC8vIE9USEVSIENPTE9SU1xuICAgIC0tZXVpLWJhc2UtY29sb3ItdGV4dDogdmFyKC0tZXVpLWJhc2UtY29sb3ItZ3JleS0xMDApO1xuICAgIC0tZXVpLWJhc2UtY29sb3ItbGluazogdmFyKC0tZXVpLWJhc2UtY29sb3ItcHJpbWFyeS0xMDApO1xuICAgIC0tZXVpLWJhc2UtY29sb3ItYmxhY2s6IGJsYWNrO1xuICAgIC0tZXVpLWJhc2UtY29sb3Itd2hpdGU6IHdoaXRlO1xuICAgIC0tZXVpLWJhc2UtY29sb3I6IHZhcigtLWV1aS1iYXNlLWNvbG9yLWdyZXktMTAwKTtcblxuICAgIC8vIEZPTlQtU0laRVNcbiAgICAtLWV1aS1iYXNlLWZvbnQtc2l6ZTogMTZweDtcbiAgICBAZWFjaCAkZm9udC1zaXplLCAkdmFsdWUgaW4gJGV1aS1iYXNlLXRva2Vucy1mb250LXNpemVzIHtcbiAgICAgICAgLS1ldWktYmFzZS1mb250LXNpemUtI3skZm9udC1zaXplfTogI3skdmFsdWV9O1xuICAgIH1cblxuICAgIC8vIElDT04tU0laRVNcbiAgICAtLWV1aS1iYXNlLWljb24tc2l6ZTogMS41cmVtO1xuICAgIEBlYWNoICRpY29uLXNpemUsICR2YWx1ZSBpbiAkZXVpLWJhc2UtdG9rZW5zLWljb24tc2l6ZXMge1xuICAgICAgICAtLWV1aS1iYXNlLWljb24tc2l6ZS0jeyRpY29uLXNpemV9OiAjeyR2YWx1ZX07XG4gICAgfVxuXG4gICAgQGVhY2ggJGZhbWlseSwgJHNpemVzIGluICRldWktYmFzZS10b2tlbnMtZm9udHMge1xuICAgICAgICAkZmFtaWx5LXR5cGU6ICRmYW1pbHkgKyAnLSc7XG4gICAgICAgIEBpZigkZmFtaWx5ID09IHVpKSB7XG4gICAgICAgICAgICAkZmFtaWx5LXR5cGU6ICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJHNpemUsICRkZWZpbml0aW9uIGluICRzaXplcyB7XG4gICAgICAgICAgICAtLWV1aS1iYXNlLWZvbnQtI3skZmFtaWx5LXR5cGV9I3skc2l6ZX06ICN7JGRlZmluaXRpb259O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gU1BBQ0lOR1NcbiAgICBAZWFjaCAkc3BhY2luZywgJHZhbHVlIGluICRldWktYmFzZS10b2tlbnMtc3BhY2luZ3Mge1xuICAgICAgICAtLWV1aS1iYXNlLXNwYWNpbmctI3skc3BhY2luZ306ICN7JHZhbHVlfTtcbiAgICB9XG5cbiAgICAvLyBTSEFET1dTXG4gICAgQGVhY2ggJHNoYWRvdywgJHZhbHVlIGluICRldWktYmFzZS10b2tlbnMtc2hhZG93cyB7XG4gICAgICAgIC0tZXVpLWJhc2Utc2hhZG93LSN7JHNoYWRvd306ICN7JHZhbHVlfTtcbiAgICB9XG5cbiAgICAvLyBaLUlOREVYRVNcbiAgICBAZWFjaCAkaWR4LCAkdmFsdWUgaW4gJGV1aS1iYXNlLXRva2Vucy16LWluZGV4ZXMge1xuICAgICAgICAtLWV1aS1iYXNlLXotaW5kZXgtI3skaWR4fTogI3skdmFsdWV9O1xuICAgIH1cbn1cbiIsIjpyb290IHtcbiAgICAtLWV1aS1iYXNlLWxpbmUtaGVpZ2h0OiAxLjE1O1xuICAgIC0tZXVpLWJhc2Utc2NhbGUtZmFjdG9yOiAxO1xuICAgIC0tZXVpLWJhc2UtZGlzYWJsZWQtb3BhY2l0eTogMC40NTtcblxuICAgIC0tZXVpLWJhc2UtYm9yZGVyLXJhZGl1czogM3B4O1xuXG4gICAgLS1ldWktYmFzZS1ib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ldWktY29sb3ItZ3JleS1saWdodGVyKTtcbiAgICAtLWV1aS1iYXNlLWJvcmRlci1saWdodDogMXB4IHNvbGlkIHZhcigtLWV1aS1jb2xvci1ncmV5LWxpZ2h0KTtcbiAgICAtLWV1aS1iYXNlLWJvcmRlci1saWdodGVyOiAxcHggc29saWQgdmFyKC0tZXVpLWNvbG9yLWdyZXktbGlnaHRlcik7XG4gICAgLS1ldWktYmFzZS1ib3JkZXItbGlnaHRlc3Q6IDFweCBzb2xpZCB2YXIoLS1ldWktY29sb3ItZ3JleS1saWdodGVzdCk7XG5cbiAgICAvLyBBbmltYXRpb25zIHJlbGF0ZWRcbiAgICAtLWV1aS1iYXNlLWFuaW1hdGlvbi1saW5lYXItb3V0LXNsb3ctaW4tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTtcbiAgICAtLWV1aS1iYXNlLWFuaW1hdGlvbi1mYXN0LW91dC1zbG93LWluLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbiAgICAtLWV1aS1iYXNlLWFuaW1hdGlvbi1mYXN0LW91dC1saW5lYXItaW4tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAxLCAxKTtcbiAgICAtLWV1aS1iYXNlLWFuaW1hdGlvbi1lYXNlLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjUsIDAuMSwgMC4yNSwgMSk7ICAgIC8vIGVhc2VcbiAgICAtLWV1aS1iYXNlLWFuaW1hdGlvbi1lYXNlLWluLW91dC10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuXG4gICAgLS1ldWktYmFzZS1hbmltYXRpb24tZHVyYXRpb24tZmFzdDogMC4yNXM7XG4gICAgLS1ldWktYmFzZS1hbmltYXRpb24tZHVyYXRpb24tbWVkaXVtOiAwLjVzO1xuICAgIC0tZXVpLWJhc2UtYW5pbWF0aW9uLWR1cmF0aW9uLXNsb3c6IDFzO1xuICAgIC0tZXVpLWJhc2UtYW5pbWF0aW9uLWR1cmF0aW9uLWJhc2U6IDUwMG1zO1xuICAgIC0tZXVpLWJhc2UtYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1ldWktYmFzZS1hbmltYXRpb24tZHVyYXRpb24tYmFzZSk7XG5cbiAgICAtLWV1aS1iYXNlLWFuaW1hdGlvbi10cmFuc2l0aW9uLWJhc2U6IGFsbCAwLjJzICN7dmFyKC0tZXVpLWJhc2UtYW5pbWF0aW9uLWxpbmVhci1vdXQtc2xvdy1pbi10aW1pbmctZnVuY3Rpb24pfTtcbiAgICAtLWV1aS1iYXNlLWFuaW1hdGlvbi10cmFuc2l0aW9uLWVhc2U6IGFsbCAwLjJzICN7dmFyKC0tZXVpLWJhc2UtYW5pbWF0aW9uLWVhc2UtdGltaW5nLWZ1bmN0aW9uKX07XG4gICAgLS1ldWktYmFzZS1hbmltYXRpb24tdHJhbnNpdGlvbi1lYXNlLWluLW91dDogYWxsIDAuMnMgI3t2YXIoLS1ldWktYmFzZS1hbmltYXRpb24tZWFzZS1pbi1vdXQtdGltaW5nLWZ1bmN0aW9uKX07XG4gICAgLS1ldWktYmFzZS1hbmltYXRpb24tdHJhbnNpdGlvbi1lYXNlLWluLW91dC0xczogYWxsIDFzICN7dmFyKC0tZXVpLWJhc2UtYW5pbWF0aW9uLWVhc2UtaW4tb3V0LXRpbWluZy1mdW5jdGlvbil9O1xuXG4gICAgLS1ldWktYmFzZS1hbmltYXRpb24tZGVsYXk6IDBzO1xuICAgIC0tZXVpLWJhc2UtYW5pbWF0aW9uLWRpcmVjdGlvbjogbm9ybWFsO1xuICAgIC0tZXVpLWJhc2UtYW5pbWF0aW9uLWZpbGwtbW9kZTogZm9yd2FyZHM7ICAgIC8vIHRoaXMgcHJldmVudHMgdGhlIGFuaW1hdGlvbiBmcm9tIHJlc3RhcnRpbmdcbiAgICAtLWV1aS1iYXNlLWFuaW1hdGlvbi1iYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ldWktYmFzZS1jb2xvci1wcmltYXJ5LTUwKTsgIC8vICNjZmNmZGY7XG5cbiAgICAvLyBFeHRyYSBjb2xvcnNcbiAgICAtLWV1aS1iYXNlLWNvbG9yLWFjY2Vzc2libGUtZm9jdXM6IHZhcigtLWV1aS1iYXNlLWNvbG9yLWFjY2VudC0xMTApOyAgICAvLyBDYXJib24gYmx1ZTogIzBmNjJmZTtcbn1cbiIsIjpyb290IHtcbiAgICAvLyBlVUkgQVBQXG4gICAgLS1ldWktYXBwLWhlYWRlci1oZWlnaHQtZGVmYXVsdDogMHB4O1xuICAgIC0tZXVpLWFwcC1oZWFkZXItaGVpZ2h0OiAwcHg7XG4gICAgLS1ldWktYXBwLWhlYWRlci1oZWlnaHQtYWN0aXZlOiA5MHB4O1xuICAgIC0tZXVpLWFwcC1oZWFkZXItaGVpZ2h0LXNocmluazogMHB4O1xuXG4gICAgLS1ldWktYXBwLWJyZWFkY3J1bWItaGVpZ2h0LWRlZmF1bHQ6IDBweDtcbiAgICAtLWV1aS1hcHAtYnJlYWRjcnVtYi1oZWlnaHQ6IDBweDtcbiAgICAtLWV1aS1hcHAtYnJlYWRjcnVtYi1oZWlnaHQtYWN0aXZlOiAyMHB4O1xuXG4gICAgLS1ldWktYXBwLXRvcC1tZXNzYWdlLWhlaWdodC1kZWZhdWx0OiAwcHg7XG4gICAgLS1ldWktYXBwLXRvcC1tZXNzYWdlLWhlaWdodDogMHB4O1xuICAgIC0tZXVpLWFwcC10b3AtbWVzc2FnZS1oZWlnaHQtYWN0aXZlOiA0MnB4O1xuXG4gICAgLS1ldWktYXBwLXRvb2xiYXItaGVpZ2h0LWRlZmF1bHQ6IDBweDtcbiAgICAtLWV1aS1hcHAtdG9vbGJhci1oZWlnaHQ6IDBweDtcbiAgICAtLWV1aS1hcHAtdG9vbGJhci1oZWlnaHQtYWN0aXZlOiA1NXB4O1xuXG4gICAgLS1ldWktYXBwLXNpZGViYXItd2lkdGgtZGVmYXVsdDogMHB4O1xuICAgIC0tZXVpLWFwcC1zaWRlYmFyLXdpZHRoOiAwcHg7XG4gICAgLS1ldWktYXBwLXNpZGViYXItd2lkdGgtYWN0aXZlOiAzMDBweDtcbiAgICAtLWV1aS1hcHAtc2lkZWJhci13aWR0aC1jbG9zZS1kZWZhdWx0OiAwcHg7XG4gICAgLS1ldWktYXBwLXNpZGViYXItd2lkdGgtY2xvc2U6IDBweDtcbiAgICAtLWV1aS1hcHAtc2lkZWJhci13aWR0aC1jbG9zZS1hY3RpdmU6IDY0cHg7XG4gICAgLS1ldWktYXBwLXNpZGViYXItaGVhZGVyLWhlaWdodDogMHB4O1xuICAgIC0tZXVpLWFwcC1zaWRlYmFyLWhlYWRlci1oZWlnaHQtZGVmYXVsdDogMHB4O1xuICAgIC0tZXVpLWFwcC1zaWRlYmFyLWhlYWRlci1oZWlnaHQtYWN0aXZlOiA0OHB4O1xuICAgIC0tZXVpLWFwcC1zaWRlYmFyLWZvb3Rlci1oZWlnaHQ6IDBweDtcbiAgICAtLWV1aS1hcHAtc2lkZWJhci1mb290ZXItaGVpZ2h0LWRlZmF1bHQ6IDBweDtcbiAgICAtLWV1aS1hcHAtc2lkZWJhci1mb290ZXItaGVpZ2h0LWFjdGl2ZTogMjRweDtcblxuICAgIC8vIFBhZ2UgTGF5b3V0XG4gICAgLS1ldWktcGFnZS1oZWFkZXItd2l0aC1zdWJ0aXRsZS1oZWlnaHQ6IDRyZW07XG4gICAgLS1ldWktcGFnZS1oZWFkZXItd2l0aG91dC1zdWJ0aXRsZS1oZWlnaHQ6IDJyZW07XG5cbiAgICAtLWV1aS1wYWdlLWNvbHVtbi0tc2l6ZS1zOiA1MHB4O1xuICAgIC0tZXVpLXBhZ2UtY29sdW1uLS1zaXplLW06IDE1MHB4O1xuICAgIC0tZXVpLXBhZ2UtY29sdW1uLS1zaXplLWw6IDIwMHB4O1xuICAgIC0tZXVpLXBhZ2UtY29sdW1uLS1zaXplLXhsOiAyNTBweDtcbiAgICAtLWV1aS1wYWdlLWNvbHVtbi0tc2l6ZS14eGw6IDMwMHB4O1xuICAgIC0tZXVpLXBhZ2UtY29sdW1uLS1zaXplLXh4eGw6IDM1MHB4O1xuICAgIC0tZXVpLXBhZ2UtY29sdW1uLWZvb3Rlci1oZWlnaHQ6IDMuNXJlbTtcblxuICAgIC8vIE1pc2NcbiAgICAtLWV1aS1ib3JkZXItc3RhdGUtd2lkdGg6IDZweDtcblxuICAgIC8vIENvbG9yc1xuICAgIC8vIGVVSSBBcHAgZWxlbWVudHNcbiAgICAtLWV1aS1hcHAtaGVhZGVyLWJnLWNvbG9yOiB2YXIoLS1ldWktYmFzZS1jb2xvci13aGl0ZSk7XG4gICAgLS1ldWktYXBwLWhlYWRlci10aXRsZS1jb2xvcjogdmFyKC0tZXVpLWJhc2UtY29sb3ItZ3JleS0xMDApO1xuICAgIC0tZXVpLWFwcC1oZWFkZXItc3VidGl0bGUtY29sb3I6IHZhcigtLWV1aS1iYXNlLWNvbG9yLWdyZXktNzUpO1xuXG4gICAgLS1ldWktYXBwLXRvb2xiYXItY29sb3I6IHZhcigtLWV1aS1iYXNlLWNvbG9yLXdoaXRlKTtcbiAgICAtLWV1aS1hcHAtdG9vbGJhci1iZy1jb2xvcjogdmFyKC0tZXVpLWJhc2UtY29sb3ItcHJpbWFyeS0xMDApO1xuICAgIC0tZXVpLWFwcC10b29sYmFyLWJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWV1aS1iYXNlLWNvbG9yLXByaW1hcnktMjUpO1xuXG4gICAgLS1ldWktYXBwLXNpZGViYXItYmctY29sb3I6IHZhcigtLWV1aS1iYXNlLWNvbG9yLWdyZXktMik7XG4gICAgLS1ldWktYXBwLXNpZGViYXItYm9yZGVyLXJpZ2h0LWNvbG9yOiAjZjJmNGY5O1xuXG4gICAgLS1ldWktYXBwLWJvZHktYmctY29sb3I6IHZhcigtLWV1aS1iYXNlLWNvbG9yLWdyZXktMik7XG4gICAgLS1ldWktYXBwLW1haW4tYmctY29sb3I6IHZhcigtLWV1aS1iYXNlLWNvbG9yLWdyZXktMik7XG5cbiAgICAtLWV1aS1hcHAtZm9vdGVyLWNvbG9yOiB2YXIoLS1ldWktYmFzZS1jb2xvci1mb250KTtcbiAgICAtLWV1aS1hcHAtZm9vdGVyLWJnLWNvbG9yOiB2YXIoLS1ldWktYmFzZS1jb2xvci1ncmV5LTIpO1xuICAgIC0tZXVpLWFwcC1mb290ZXItYm9yZGVyLXRvcC1jb2xvcjogI2U4ZWJmMTtcbn1cblxuLnhzLCAuc20ge1xuICAgIC0tZXVpLWFwcC1oZWFkZXItaGVpZ2h0OiAwcHg7XG59XG4iLCIuZXVpLWljb24tc3ZnIHtcbiAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgbWFyZ2luOiAwO1xuICAgIHRyYW5zZm9ybTogc2NhbGVYKDEpIHNjYWxlWSgxKSByb3RhdGVaKDBkZWcpO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAzMDBtcyBlYXNlLWluLW91dDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuQGVhY2ggJHNpemUsICR2YWx1ZSBpbiAkZXVpLWJhc2UtdG9rZW5zLWljb24tc2l6ZXMge1xuICAgIC5ldWktaWNvbi1zdmctLXNpemUtI3skc2l6ZX0ge1xuICAgICAgICBoZWlnaHQ6ICN7JHZhbHVlfTtcbiAgICAgICAgd2lkdGg6ICN7JHZhbHVlfTtcbiAgICB9O1xufVxuQGVhY2ggJGNvbG9yLCAkc2hhZGVzIGluICRldWktYmFzZS10b2tlbnMtY29sb3JzIHtcbiAgICBAZWFjaCAkc2hhZGUsICR2YWx1ZSBpbiAkc2hhZGVzIHtcbiAgICAgICAgLmV1aS1pY29uLXN2Zy0tY29sb3ItI3skY29sb3IgKyAnLScgKyAkc2hhZGV9IHtcbiAgICAgICAgICAgIGNvbG9yOiAjeyR2YWx1ZX07XG4gICAgICAgICAgICBmaWxsOiAjeyR2YWx1ZX07XG4gICAgICAgIH07XG4gICAgfVxufVxuQGVhY2ggJGNvbG9yLCAkdmFsdWUgaW4gJGV1aS1iYXNlLXRva2Vucy1jb2xvcnMtMTAwcyB7XG4gICAgLmV1aS1pY29uLXN2Zy0tY29sb3ItI3snJyArICRjb2xvcn0ge1xuICAgICAgICBjb2xvcjogI3skdmFsdWV9O1xuICAgICAgICBmaWxsOiAjeyR2YWx1ZX07XG4gICAgfTtcbn1cblxuLmV1aS1pY29uLXN2Zy0tY29sb3Itd2hpdGUge1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBmaWxsOiB3aGl0ZTtcbn1cblxuLmV1aS1pY29uLXN2Zy0tY29sb3ItYmxhY2sge1xuICAgIGNvbG9yOiBibGFjaztcbiAgICBmaWxsOiBibGFjaztcbn1cblxuLmV1aS1pY29uLXN2Zy0tY29sb3ItdHJhbnNwYXJlbnQge1xuICAgIGNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50OyAgLy8gaW1wb3J0YW50IGlzIGltcG9ydGFudCBmb3IgaXNMb2FkaW5nXG4gICAgZmlsbDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cbiIsIi8vIFJvd1xuLy9cbi8vIFJvd3MgY29udGFpbiB5b3VyIGNvbHVtbnMuXG5cbkBpZiAkZW5hYmxlLWdyaWQtY2xhc3NlcyB7XG4gIC5yb3cge1xuICAgIEBpbmNsdWRlIG1ha2Utcm93KCk7XG5cbiAgICA+ICoge1xuICAgICAgQGluY2x1ZGUgbWFrZS1jb2wtcmVhZHkoKTtcbiAgICB9XG4gIH1cbn1cblxuQGlmICRlbmFibGUtY3NzZ3JpZCB7XG4gIC5ncmlkIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtcm93czogcmVwZWF0KHZhcigtLSN7JHZhcmlhYmxlLXByZWZpeH1yb3dzLCAxKSwgMWZyKTtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCh2YXIoLS0jeyR2YXJpYWJsZS1wcmVmaXh9Y29sdW1ucywgI3skZ3JpZC1jb2x1bW5zfSksIDFmcik7XG4gICAgZ2FwOiB2YXIoLS0jeyR2YXJpYWJsZS1wcmVmaXh9Z2FwLCAjeyRncmlkLWd1dHRlci13aWR0aH0pO1xuXG4gICAgQGluY2x1ZGUgbWFrZS1jc3NncmlkKCk7XG4gIH1cbn1cblxuXG4vLyBDb2x1bW5zXG4vL1xuLy8gQ29tbW9uIHN0eWxlcyBmb3Igc21hbGwgYW5kIGxhcmdlIGdyaWQgY29sdW1uc1xuXG5AaWYgJGVuYWJsZS1ncmlkLWNsYXNzZXMge1xuICBAaW5jbHVkZSBtYWtlLWdyaWQtY29sdW1ucygpO1xufVxuIiwiLy8gR3JpZCBzeXN0ZW1cbi8vXG4vLyBHZW5lcmF0ZSBzZW1hbnRpYyBncmlkIGNvbHVtbnMgd2l0aCB0aGVzZSBtaXhpbnMuXG5cbkBtaXhpbiBtYWtlLXJvdygkZ3V0dGVyOiAkZ3JpZC1ndXR0ZXItd2lkdGgpIHtcbiAgLS0jeyR2YXJpYWJsZS1wcmVmaXh9Z3V0dGVyLXg6ICN7JGd1dHRlcn07XG4gIC0tI3skdmFyaWFibGUtcHJlZml4fWd1dHRlci15OiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIC8vIFRPRE86IFJldmlzaXQgY2FsYyBvcmRlciBhZnRlciBodHRwczovL2dpdGh1Yi5jb20vcmVhY3QtYm9vdHN0cmFwL3JlYWN0LWJvb3RzdHJhcC9pc3N1ZXMvNjAzOSBpcyBmaXhlZFxuICBtYXJnaW4tdG9wOiBjYWxjKC0xICogdmFyKC0tI3skdmFyaWFibGUtcHJlZml4fWd1dHRlci15KSk7IC8vIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgZnVuY3Rpb24tZGlzYWxsb3dlZC1saXN0XG4gIG1hcmdpbi1yaWdodDogY2FsYygtLjUgKiB2YXIoLS0jeyR2YXJpYWJsZS1wcmVmaXh9Z3V0dGVyLXgpKTsgLy8gc3R5bGVsaW50LWRpc2FibGUtbGluZSBmdW5jdGlvbi1kaXNhbGxvd2VkLWxpc3RcbiAgbWFyZ2luLWxlZnQ6IGNhbGMoLS41ICogdmFyKC0tI3skdmFyaWFibGUtcHJlZml4fWd1dHRlci14KSk7IC8vIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgZnVuY3Rpb24tZGlzYWxsb3dlZC1saXN0XG59XG5cbkBtaXhpbiBtYWtlLWNvbC1yZWFkeSgkZ3V0dGVyOiAkZ3JpZC1ndXR0ZXItd2lkdGgpIHtcbiAgLy8gQWRkIGJveCBzaXppbmcgaWYgb25seSB0aGUgZ3JpZCBpcyBsb2FkZWRcbiAgYm94LXNpemluZzogaWYodmFyaWFibGUtZXhpc3RzKGluY2x1ZGUtY29sdW1uLWJveC1zaXppbmcpIGFuZCAkaW5jbHVkZS1jb2x1bW4tYm94LXNpemluZywgYm9yZGVyLWJveCwgbnVsbCk7XG4gIC8vIFByZXZlbnQgY29sdW1ucyBmcm9tIGJlY29taW5nIHRvbyBuYXJyb3cgd2hlbiBhdCBzbWFsbGVyIGdyaWQgdGllcnMgYnlcbiAgLy8gYWx3YXlzIHNldHRpbmcgYHdpZHRoOiAxMDAlO2AuIFRoaXMgd29ya3MgYmVjYXVzZSB3ZSBzZXQgdGhlIHdpZHRoXG4gIC8vIGxhdGVyIG9uIHRvIG92ZXJyaWRlIHRoaXMgaW5pdGlhbCB3aWR0aC5cbiAgZmxleC1zaHJpbms6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMCU7IC8vIFByZXZlbnQgYC5jb2wtYXV0b2AsIGAuY29sYCAoJiByZXNwb25zaXZlIHZhcmlhbnRzKSBmcm9tIGJyZWFraW5nIG91dCB0aGUgZ3JpZFxuICBwYWRkaW5nLXJpZ2h0OiBjYWxjKHZhcigtLSN7JHZhcmlhYmxlLXByZWZpeH1ndXR0ZXIteCkgKiAuNSk7IC8vIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgZnVuY3Rpb24tZGlzYWxsb3dlZC1saXN0XG4gIHBhZGRpbmctbGVmdDogY2FsYyh2YXIoLS0jeyR2YXJpYWJsZS1wcmVmaXh9Z3V0dGVyLXgpICogLjUpOyAvLyBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIGZ1bmN0aW9uLWRpc2FsbG93ZWQtbGlzdFxuICBtYXJnaW4tdG9wOiB2YXIoLS0jeyR2YXJpYWJsZS1wcmVmaXh9Z3V0dGVyLXkpO1xufVxuXG5AbWl4aW4gbWFrZS1jb2woJHNpemU6IGZhbHNlLCAkY29sdW1uczogJGdyaWQtY29sdW1ucykge1xuICBAaWYgJHNpemUge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiBwZXJjZW50YWdlKGRpdmlkZSgkc2l6ZSwgJGNvbHVtbnMpKTtcblxuICB9IEBlbHNlIHtcbiAgICBmbGV4OiAxIDEgMDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cbn1cblxuQG1peGluIG1ha2UtY29sLWF1dG8oKSB7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICB3aWR0aDogYXV0bztcbn1cblxuQG1peGluIG1ha2UtY29sLW9mZnNldCgkc2l6ZSwgJGNvbHVtbnM6ICRncmlkLWNvbHVtbnMpIHtcbiAgJG51bTogZGl2aWRlKCRzaXplLCAkY29sdW1ucyk7XG4gIG1hcmdpbi1sZWZ0OiBpZigkbnVtID09IDAsIDAsIHBlcmNlbnRhZ2UoJG51bSkpO1xufVxuXG4vLyBSb3cgY29sdW1uc1xuLy9cbi8vIFNwZWNpZnkgb24gYSBwYXJlbnQgZWxlbWVudChlLmcuLCAucm93KSB0byBmb3JjZSBpbW1lZGlhdGUgY2hpbGRyZW4gaW50byBOTlxuLy8gbnVtYmVyb2YgY29sdW1ucy4gU3VwcG9ydHMgd3JhcHBpbmcgdG8gbmV3IGxpbmVzLCBidXQgZG9lcyBub3QgZG8gYSBNYXNvbnJ5XG4vLyBzdHlsZSBncmlkLlxuQG1peGluIHJvdy1jb2xzKCRjb3VudCkge1xuICA+ICoge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiBkaXZpZGUoMTAwJSwgJGNvdW50KTtcbiAgfVxufVxuXG4vLyBGcmFtZXdvcmsgZ3JpZCBnZW5lcmF0aW9uXG4vL1xuLy8gVXNlZCBvbmx5IGJ5IEJvb3RzdHJhcCB0byBnZW5lcmF0ZSB0aGUgY29ycmVjdCBudW1iZXIgb2YgZ3JpZCBjbGFzc2VzIGdpdmVuXG4vLyBhbnkgdmFsdWUgb2YgYCRncmlkLWNvbHVtbnNgLlxuXG5AbWl4aW4gbWFrZS1ncmlkLWNvbHVtbnMoJGNvbHVtbnM6ICRncmlkLWNvbHVtbnMsICRndXR0ZXI6ICRncmlkLWd1dHRlci13aWR0aCwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICBAZWFjaCAkYnJlYWtwb2ludCBpbiBtYXAta2V5cygkYnJlYWtwb2ludHMpIHtcbiAgICAkaW5maXg6IGJyZWFrcG9pbnQtaW5maXgoJGJyZWFrcG9pbnQsICRicmVha3BvaW50cyk7XG5cbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRicmVha3BvaW50LCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIC8vIFByb3ZpZGUgYmFzaWMgYC5jb2wte2JwfWAgY2xhc3NlcyBmb3IgZXF1YWwtd2lkdGggZmxleGJveCBjb2x1bW5zXG4gICAgICAuY29sI3skaW5maXh9IHtcbiAgICAgICAgZmxleDogMSAwIDAlOyAvLyBGbGV4YnVncyAjNDogaHR0cHM6Ly9naXRodWIuY29tL3BoaWxpcHdhbHRvbi9mbGV4YnVncyNmbGV4YnVnLTRcbiAgICAgIH1cblxuICAgICAgLnJvdy1jb2xzI3skaW5maXh9LWF1dG8gPiAqIHtcbiAgICAgICAgQGluY2x1ZGUgbWFrZS1jb2wtYXV0bygpO1xuICAgICAgfVxuXG4gICAgICBAaWYgJGdyaWQtcm93LWNvbHVtbnMgPiAwIHtcbiAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1yb3ctY29sdW1ucyB7XG4gICAgICAgICAgLnJvdy1jb2xzI3skaW5maXh9LSN7JGl9IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHJvdy1jb2xzKCRpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmNvbCN7JGluZml4fS1hdXRvIHtcbiAgICAgICAgQGluY2x1ZGUgbWFrZS1jb2wtYXV0bygpO1xuICAgICAgfVxuXG4gICAgICBAaWYgJGNvbHVtbnMgPiAwIHtcbiAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkY29sdW1ucyB7XG4gICAgICAgICAgLmNvbCN7JGluZml4fS0jeyRpfSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtYWtlLWNvbCgkaSwgJGNvbHVtbnMpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGAkY29sdW1ucyAtIDFgIGJlY2F1c2Ugb2Zmc2V0dGluZyBieSB0aGUgd2lkdGggb2YgYW4gZW50aXJlIHJvdyBpc24ndCBwb3NzaWJsZVxuICAgICAgICBAZm9yICRpIGZyb20gMCB0aHJvdWdoICgkY29sdW1ucyAtIDEpIHtcbiAgICAgICAgICBAaWYgbm90ICgkaW5maXggPT0gXCJcIiBhbmQgJGkgPT0gMCkgeyAvLyBBdm9pZCBlbWl0dGluZyB1c2VsZXNzIC5vZmZzZXQtMFxuICAgICAgICAgICAgLm9mZnNldCN7JGluZml4fS0jeyRpfSB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIG1ha2UtY29sLW9mZnNldCgkaSwgJGNvbHVtbnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBHdXR0ZXJzXG4gICAgICAvL1xuICAgICAgLy8gTWFrZSB1c2Ugb2YgYC5nLSpgLCBgLmd4LSpgIG9yIGAuZ3ktKmAgdXRpbGl0aWVzIHRvIGNoYW5nZSBzcGFjaW5nIGJldHdlZW4gdGhlIGNvbHVtbnMuXG4gICAgICBAZWFjaCAka2V5LCAkdmFsdWUgaW4gJGd1dHRlcnMge1xuICAgICAgICAuZyN7JGluZml4fS0jeyRrZXl9LFxuICAgICAgICAuZ3gjeyRpbmZpeH0tI3ska2V5fSB7XG4gICAgICAgICAgLS0jeyR2YXJpYWJsZS1wcmVmaXh9Z3V0dGVyLXg6ICN7JHZhbHVlfTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5nI3skaW5maXh9LSN7JGtleX0sXG4gICAgICAgIC5neSN7JGluZml4fS0jeyRrZXl9IHtcbiAgICAgICAgICAtLSN7JHZhcmlhYmxlLXByZWZpeH1ndXR0ZXIteTogI3skdmFsdWV9O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYWtlLWNzc2dyaWQoJGNvbHVtbnM6ICRncmlkLWNvbHVtbnMsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgQGVhY2ggJGJyZWFrcG9pbnQgaW4gbWFwLWtleXMoJGJyZWFrcG9pbnRzKSB7XG4gICAgJGluZml4OiBicmVha3BvaW50LWluZml4KCRicmVha3BvaW50LCAkYnJlYWtwb2ludHMpO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkYnJlYWtwb2ludCwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAaWYgJGNvbHVtbnMgPiAwIHtcbiAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkY29sdW1ucyB7XG4gICAgICAgICAgLmctY29sI3skaW5maXh9LSN7JGl9IHtcbiAgICAgICAgICAgIGdyaWQtY29sdW1uOiBhdXRvIC8gc3BhbiAkaTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTdGFydCB3aXRoIGAxYCBiZWNhdXNlIGAwYCBpcyBhbmQgaW52YWxpZCB2YWx1ZS5cbiAgICAgICAgLy8gRW5kcyB3aXRoIGAkY29sdW1ucyAtIDFgIGJlY2F1c2Ugb2Zmc2V0dGluZyBieSB0aGUgd2lkdGggb2YgYW4gZW50aXJlIHJvdyBpc24ndCBwb3NzaWJsZS5cbiAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAoJGNvbHVtbnMgLSAxKSB7XG4gICAgICAgICAgLmctc3RhcnQjeyRpbmZpeH0tI3skaX0ge1xuICAgICAgICAgICAgZ3JpZC1jb2x1bW4tc3RhcnQ6ICRpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gQnJlYWtwb2ludCB2aWV3cG9ydCBzaXplcyBhbmQgbWVkaWEgcXVlcmllcy5cbi8vXG4vLyBCcmVha3BvaW50cyBhcmUgZGVmaW5lZCBhcyBhIG1hcCBvZiAobmFtZTogbWluaW11bSB3aWR0aCksIG9yZGVyIGZyb20gc21hbGwgdG8gbGFyZ2U6XG4vL1xuLy8gICAgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KVxuLy9cbi8vIFRoZSBtYXAgZGVmaW5lZCBpbiB0aGUgYCRncmlkLWJyZWFrcG9pbnRzYCBnbG9iYWwgdmFyaWFibGUgaXMgdXNlZCBhcyB0aGUgYCRicmVha3BvaW50c2AgYXJndW1lbnQgYnkgZGVmYXVsdC5cblxuLy8gTmFtZSBvZiB0aGUgbmV4dCBicmVha3BvaW50LCBvciBudWxsIGZvciB0aGUgbGFzdCBicmVha3BvaW50LlxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSlcbi8vICAgIG1kXG4vLyAgICA+PiBicmVha3BvaW50LW5leHQoc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXG4vLyAgICBtZFxuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtLCAkYnJlYWtwb2ludC1uYW1lczogKHhzIHNtIG1kIGxnIHhsKSlcbi8vICAgIG1kXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1uZXh0KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludC1uYW1lczogbWFwLWtleXMoJGJyZWFrcG9pbnRzKSkge1xuICAkbjogaW5kZXgoJGJyZWFrcG9pbnQtbmFtZXMsICRuYW1lKTtcbiAgQGlmIG5vdCAkbiB7XG4gICAgQGVycm9yIFwiYnJlYWtwb2ludCBgI3skbmFtZX1gIG5vdCBmb3VuZCBpbiBgI3skYnJlYWtwb2ludHN9YFwiO1xuICB9XG4gIEByZXR1cm4gaWYoJG4gPCBsZW5ndGgoJGJyZWFrcG9pbnQtbmFtZXMpLCBudGgoJGJyZWFrcG9pbnQtbmFtZXMsICRuICsgMSksIG51bGwpO1xufVxuXG4vLyBNaW5pbXVtIGJyZWFrcG9pbnQgd2lkdGguIE51bGwgZm9yIHRoZSBzbWFsbGVzdCAoZmlyc3QpIGJyZWFrcG9pbnQuXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1taW4oc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXG4vLyAgICA1NzZweFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtaW46IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XG4gIEByZXR1cm4gaWYoJG1pbiAhPSAwLCAkbWluLCBudWxsKTtcbn1cblxuLy8gTWF4aW11bSBicmVha3BvaW50IHdpZHRoLlxuLy8gVGhlIG1heGltdW0gdmFsdWUgaXMgcmVkdWNlZCBieSAwLjAycHggdG8gd29yayBhcm91bmQgdGhlIGxpbWl0YXRpb25zIG9mXG4vLyBgbWluLWAgYW5kIGBtYXgtYCBwcmVmaXhlcyBhbmQgdmlld3BvcnRzIHdpdGggZnJhY3Rpb25hbCB3aWR0aHMuXG4vLyBTZWUgaHR0cHM6Ly93d3cudzMub3JnL1RSL21lZGlhcXVlcmllcy00LyNtcS1taW4tbWF4XG4vLyBVc2VzIDAuMDJweCByYXRoZXIgdGhhbiAwLjAxcHggdG8gd29yayBhcm91bmQgYSBjdXJyZW50IHJvdW5kaW5nIGJ1ZyBpbiBTYWZhcmkuXG4vLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODI2MVxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtbWF4KG1kLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxuLy8gICAgNzY3Ljk4cHhcbkBmdW5jdGlvbiBicmVha3BvaW50LW1heCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWF4OiBtYXAtZ2V0KCRicmVha3BvaW50cywgJG5hbWUpO1xuICBAcmV0dXJuIGlmKCRtYXggYW5kICRtYXggPiAwLCAkbWF4IC0gLjAyLCBudWxsKTtcbn1cblxuLy8gUmV0dXJucyBhIGJsYW5rIHN0cmluZyBpZiBzbWFsbGVzdCBicmVha3BvaW50LCBvdGhlcndpc2UgcmV0dXJucyB0aGUgbmFtZSB3aXRoIGEgZGFzaCBpbiBmcm9udC5cbi8vIFVzZWZ1bCBmb3IgbWFraW5nIHJlc3BvbnNpdmUgdXRpbGl0aWVzLlxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtaW5maXgoeHMsICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXG4vLyAgICBcIlwiICAoUmV0dXJucyBhIGJsYW5rIHN0cmluZylcbi8vICAgID4+IGJyZWFrcG9pbnQtaW5maXgoc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXG4vLyAgICBcIi1zbVwiXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1pbmZpeCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICBAcmV0dXJuIGlmKGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpID09IG51bGwsIFwiXCIsIFwiLSN7JG5hbWV9XCIpO1xufVxuXG4vLyBNZWRpYSBvZiBhdCBsZWFzdCB0aGUgbWluaW11bSBicmVha3BvaW50IHdpZHRoLiBObyBxdWVyeSBmb3IgdGhlIHNtYWxsZXN0IGJyZWFrcG9pbnQuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQgYW5kIHdpZGVyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtdXAoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cyk7XG4gIEBpZiAkbWluIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBNZWRpYSBvZiBhdCBtb3N0IHRoZSBtYXhpbXVtIGJyZWFrcG9pbnQgd2lkdGguIE5vIHF1ZXJ5IGZvciB0aGUgbGFyZ2VzdCBicmVha3BvaW50LlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50IGFuZCBuYXJyb3dlci5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LWRvd24oJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50cyk7XG4gIEBpZiAkbWF4IHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJG1heCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBNZWRpYSB0aGF0IHNwYW5zIG11bHRpcGxlIGJyZWFrcG9pbnQgd2lkdGhzLlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IGJldHdlZW4gdGhlIG1pbiBhbmQgbWF4IGJyZWFrcG9pbnRzXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC1iZXR3ZWVuKCRsb3dlciwgJHVwcGVyLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtaW46IGJyZWFrcG9pbnQtbWluKCRsb3dlciwgJGJyZWFrcG9pbnRzKTtcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJHVwcGVyLCAkYnJlYWtwb2ludHMpO1xuXG4gIEBpZiAkbWluICE9IG51bGwgYW5kICRtYXggIT0gbnVsbCB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIGFuZCAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1heCA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRsb3dlciwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1pbiA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oJHVwcGVyLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLyBNZWRpYSBiZXR3ZWVuIHRoZSBicmVha3BvaW50J3MgbWluaW11bSBhbmQgbWF4aW11bSB3aWR0aHMuXG4vLyBObyBtaW5pbXVtIGZvciB0aGUgc21hbGxlc3QgYnJlYWtwb2ludCwgYW5kIG5vIG1heGltdW0gZm9yIHRoZSBsYXJnZXN0IG9uZS5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSBvbmx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50LCBub3Qgdmlld3BvcnRzIGFueSB3aWRlciBvciBuYXJyb3dlci5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LW9ubHkoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogIGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuICAkbmV4dDogYnJlYWtwb2ludC1uZXh0KCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuICAkbWF4OiAgYnJlYWtwb2ludC1tYXgoJG5leHQpO1xuXG4gIEBpZiAkbWluICE9IG51bGwgYW5kICRtYXggIT0gbnVsbCB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIGFuZCAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1heCA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRuYW1lLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWluID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkbmV4dCwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cbiIsIkB1c2UgJ0Bhbmd1bGFyL2Nkayc7XG5cbkBtaXhpbiByaXBwbGUoKSB7XG4gIC8vIFRoZSBob3N0IGVsZW1lbnQgb2YgYW4gbWF0LXJpcHBsZSBkaXJlY3RpdmUgc2hvdWxkIGFsd2F5cyBoYXZlIGEgcG9zaXRpb24gb2YgXCJhYnNvbHV0ZVwiIG9yXG4gIC8vIFwicmVsYXRpdmVcIiBzbyB0aGF0IHRoZSByaXBwbGVzIGluc2lkZSBhcmUgY29ycmVjdGx5IHBvc2l0aW9uZWQgcmVsYXRpdmVseSB0byB0aGUgY29udGFpbmVyLlxuICAubWF0LXJpcHBsZSB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgIC8vIEJ5IGRlZmF1bHQsIGV2ZXJ5IHJpcHBsZSBjb250YWluZXIgc2hvdWxkIGhhdmUgcG9zaXRpb246IHJlbGF0aXZlIGluIGZhdm9yIG9mIGNyZWF0aW5nIGFuXG4gICAgLy8gZWFzeSBBUEkgZm9yIGRldmVsb3BlcnMgdXNpbmcgdGhlIE1hdFJpcHBsZSBkaXJlY3RpdmUuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgLy8gUHJvbW90ZSBjb250YWluZXJzIHRoYXQgaGF2ZSByaXBwbGVzIHRvIGEgbmV3IGxheWVyLiBXZSB3YW50IHRvIHRhcmdldCBgOm5vdCg6ZW1wdHkpYCxcbiAgICAvLyBiZWNhdXNlIHdlIGRvbid0IHdhbnQgYWxsIHJpcHBsZSBjb250YWluZXJzIHRvIGhhdmUgdGhlaXIgb3duIGxheWVyIHNpbmNlIHRoZXkncmUgdXNlZCBpbiBhXG4gICAgLy8gbG90IG9mIHBsYWNlcyBhbmQgdGhlIGxheWVyIGlzIG9ubHkgcmVsZXZhbnQgd2hpbGUgYW5pbWF0aW5nLiBOb3RlIHRoYXQgaWRlYWxseSB3ZSdkIHVzZVxuICAgIC8vIHRoZSBgY29udGFpbmAgcHJvcGVydHkgaGVyZSAoc2VlICMxMzE3NSksIGJlY2F1c2UgYDplbXB0eWAgY2FuIGJlIGJyb2tlbiBieSBoYXZpbmcgZXh0cmFcbiAgICAvLyB0ZXh0IGluc2lkZSB0aGUgZWxlbWVudCwgYnV0IGl0IGlzbid0IHZlcnkgd2VsbCBzdXBwb3J0ZWQgeWV0LlxuICAgICY6bm90KDplbXB0eSkge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtcmlwcGxlLm1hdC1yaXBwbGUtdW5ib3VuZGVkIHtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgfVxuXG4gIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5LCB0cmFuc2Zvcm0gMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO1xuXG4gICAgLy8gV2UgdXNlIGEgM2QgdHJhbnNmb3JtIGhlcmUgaW4gb3JkZXIgdG8gYXZvaWQgYW4gaXNzdWUgaW4gU2FmYXJpIHdoZXJlXG4gICAgLy8gdGhlIHJpcHBsZXMgYXJlbid0IGNsaXBwZWQgd2hlbiBpbnNpZGUgdGhlIHNoYWRvdyBET00gKHNlZSAjMjQwMjgpLlxuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgwLCAwLCAwKTtcblxuICAgIC8vIEluIGhpZ2ggY29udHJhc3QgbW9kZSB0aGUgcmlwcGxlIGlzIG9wYXF1ZSwgY2F1c2luZyBpdCB0byBvYnN0cnVjdCB0aGUgY29udGVudC5cbiAgICBAaW5jbHVkZSBjZGsuaGlnaC1jb250cmFzdChhY3RpdmUsIG9mZikge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vLyBFbWl0cyBhIENTUyBjbGFzcywgYC5jZGstdmlzdWFsbHktaGlkZGVuYC4gVGhpcyBjbGFzcyBjYW4gYmUgYXBwbGllZCB0byBhbiBlbGVtZW50XG4vLy8gdG8gbWFrZSB0aGF0IGVsZW1lbnQgdmlzdWFsbHkgaGlkZGVuIHdoaWxlIHJlbWFpbmluZyBhdmFpbGFibGUgdG8gYXNzaXN0aXZlIHRlY2hub2xvZ3kuXG5AbWl4aW4gYTExeS12aXN1YWxseS1oaWRkZW4oKSB7XG4gIC5jZGstdmlzdWFsbHktaGlkZGVuIHtcbiAgICBib3JkZXI6IDA7XG4gICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBtYXJnaW46IC0xcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMXB4O1xuXG4gICAgLy8gVGhpcyB3b3JrcyBhcm91bmQgYSBDaHJvbWUgYnVnIHRoYXQgY2FuIGNhdXNlIHRoZSB0YWIgdG8gY3Jhc2ggd2hlbiBsYXJnZSBhbW91bnRzIG9mXG4gICAgLy8gbm9uLUVuZ2xpc2ggdGV4dCBnZXQgd3JhcHBlZDogaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9MTIwMTQ0NFxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICAvLyBBdm9pZCBicm93c2VycyByZW5kZXJpbmcgdGhlIGZvY3VzIHJpbmcgaW4gc29tZSBjYXNlcy5cbiAgICBvdXRsaW5lOiAwO1xuXG4gICAgLy8gQXZvaWQgc29tZSBjYXNlcyB3aGVyZSB0aGUgYnJvd3NlciB3aWxsIHN0aWxsIHJlbmRlciB0aGUgbmF0aXZlIGNvbnRyb2xzIChzZWUgIzkwNDkpLlxuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAvLyBXZSBuZWVkIGF0IGxlYXN0IG9uZSBvZiB0b3AvYm90dG9tL2xlZnQvcmlnaHQgaW4gb3JkZXIgdG8gcHJldmVudCBjYXNlcyB3aGVyZSB0aGVcbiAgICAvLyBhYnNvbHV0ZS1wb3NpdGlvbmVkIGVsZW1lbnQgaXMgcHVzaGVkIGRvd24gYW5kIGNhbiBhZmZlY3Qgc2Nyb2xsaW5nIChzZWUgIzI0NTk3KS5cbiAgICAvLyBgbGVmdGAgd2FzIGNob3NlbiBoZXJlLCBiZWNhdXNlIGl0J3MgdGhlIGxlYXN0IGxpa2VseSB0byBicmVhayBvdmVycmlkZXMgd2hlcmUgdGhlXG4gICAgLy8gZWxlbWVudCBtaWdodCBoYXZlIGJlZW4gcG9zaXRpb25lZCAoZS5nLiBgbWF0LWNoZWNrYm94YCkuXG4gICAgbGVmdDogMDtcblxuICAgIFtkaXI9J3J0bCddICYge1xuICAgICAgbGVmdDogYXV0bztcbiAgICAgIHJpZ2h0OiAwO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQGRlcHJlY2F0ZWQgVXNlIGBhMTF5LXZpc3VhbGx5LWhpZGRlbmAuXG5AbWl4aW4gYTExeSgpIHtcbiAgQGluY2x1ZGUgYTExeS12aXN1YWxseS1oaWRkZW47XG59XG5cbi8vLyBFbWl0cyB0aGUgbWl4aW4ncyBjb250ZW50IG5lc3RlZCB1bmRlciBgJHNlbGVjdG9yLWNvbnRleHRgIGlmIGAkc2VsZWN0b3ItY29udGV4dGBcbi8vLyBpcyBub24tZW1wdHkuXG4vLy8gQHBhcmFtIHtTdHJpbmd9IHNlbGVjdG9yLWNvbnRleHQgVGhlIHNlbGVjdG9yIHVuZGVyIHdoaWNoIHRvIG5lc3QgdGhlIG1peGluJ3MgY29udGVudC5cbkBtaXhpbiBfb3B0aW9uYWxseS1uZXN0LWNvbnRlbnQoJHNlbGVjdG9yLWNvbnRleHQpIHtcbiAgQGlmICgkc2VsZWN0b3ItY29udGV4dCA9PSAnJykge1xuICAgIEBjb250ZW50O1xuICB9XG4gIEBlbHNlIHtcbiAgICAjeyRzZWxlY3Rvci1jb250ZXh0fSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFwcGxpZXMgc3R5bGVzIGZvciB1c2VycyBpbiBoaWdoIGNvbnRyYXN0IG1vZGUuIE5vdGUgdGhhdCB0aGlzIG9ubHkgYXBwbGllc1xuLy8vIHRvIE1pY3Jvc29mdCBicm93c2Vycy4gQ2hyb21lIGNhbiBiZSBpbmNsdWRlZCBieSBjaGVja2luZyBmb3IgdGhlIGBodG1sW2hjXWBcbi8vLyBhdHRyaWJ1dGUsIGhvd2V2ZXIgQ2hyb21lIGhhbmRsZXMgaGlnaCBjb250cmFzdCBkaWZmZXJlbnRseS5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSB0YXJnZXQgVHlwZSBvZiBoaWdoIGNvbnRyYXN0IHNldHRpbmcgdG8gdGFyZ2V0LiBEZWZhdWx0cyB0byBgYWN0aXZlYCwgY2FuIGJlXG4vLy8gICAgIGB3aGl0ZS1vbi1ibGFja2Agb3IgYGJsYWNrLW9uLXdoaXRlYC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gZW5jYXBzdWxhdGlvbiBXaGV0aGVyIHRvIGVtaXQgc3R5bGVzIGZvciB2aWV3IGVuY2Fwc3VsYXRpb24uIFZhbHVlcyBhcmU6XG4vLy8gICAgICogYG9uYCAtIHdvcmtzIGZvciBgRW11bGF0ZWRgLCBgTmF0aXZlYCwgYW5kIGBTaGFkb3dEb21gXG4vLy8gICAgICogYG9mZmAgLSB3b3JrcyBmb3IgYE5vbmVgXG4vLy8gICAgICogYGFueWAgLSB3b3JrcyBmb3IgYWxsIGVuY2Fwc3VsYXRpb24gbW9kZXMgYnkgZW1pdHRpbmcgdGhlIENTUyB0d2ljZSAoZGVmYXVsdCkuXG5AbWl4aW4gaGlnaC1jb250cmFzdCgkdGFyZ2V0OiBhY3RpdmUsICRlbmNhcHN1bGF0aW9uOiAnYW55Jykge1xuICBAaWYgKCR0YXJnZXQgIT0gJ2FjdGl2ZScgYW5kICR0YXJnZXQgIT0gJ2JsYWNrLW9uLXdoaXRlJyBhbmQgJHRhcmdldCAhPSAnd2hpdGUtb24tYmxhY2snKSB7XG4gICAgQGVycm9yICdVbmtub3duIGNkay1oaWdoLWNvbnRyYXN0IHZhbHVlIFwiI3skdGFyZ2V0fVwiIHByb3ZpZGVkLiAnICtcbiAgICAgICAgICAgJ0FsbG93ZWQgdmFsdWVzIGFyZSBcImFjdGl2ZVwiLCBcImJsYWNrLW9uLXdoaXRlXCIsIGFuZCBcIndoaXRlLW9uLWJsYWNrXCInO1xuICB9XG5cbiAgQGlmICgkZW5jYXBzdWxhdGlvbiAhPSAnb24nIGFuZCAkZW5jYXBzdWxhdGlvbiAhPSAnb2ZmJyBhbmQgJGVuY2Fwc3VsYXRpb24gIT0gJ2FueScpIHtcbiAgICBAZXJyb3IgJ1Vua25vd24gY2RrLWhpZ2gtY29udHJhc3QgZW5jYXBzdWxhdGlvbiBcIiN7JGVuY2Fwc3VsYXRpb259XCIgcHJvdmlkZWQuICcgK1xuICAgICAgICAgICAnQWxsb3dlZCB2YWx1ZXMgYXJlIFwib25cIiwgXCJvZmZcIiwgYW5kIFwiYW55XCInO1xuICB9XG5cbiAgLy8gSWYgdGhlIHNlbGVjdG9yIGNvbnRleHQgaGFzIG11bHRpcGxlIHBhcnRzLCBzdWNoIGFzIGAuc2VjdGlvbiwgLnJlZ2lvbmAsIGp1c3QgZG9pbmdcbiAgLy8gYC5jZGstaGlnaC1jb250cmFzdC14eHggI3smfWAgd2lsbCBvbmx5IGFwcGx5IHRoZSBwYXJlbnQgc2VsZWN0b3IgdG8gdGhlIGZpcnN0IHBhcnQgb2YgdGhlXG4gIC8vIGNvbnRleHQuIFdlIGFkZHJlc3MgdGhpcyBieSBuZXN0aW5nIHRoZSBzZWxlY3RvciBjb250ZXh0IHVuZGVyIC5jZGstaGlnaC1jb250cmFzdC5cbiAgQGF0LXJvb3Qge1xuICAgICRzZWxlY3Rvci1jb250ZXh0OiAjeyZ9O1xuXG4gICAgQGlmICgkZW5jYXBzdWxhdGlvbiAhPSAnb24nKSB7XG4gICAgICAvLyBOb3RlIHRoYXQgaWYgdGhpcyBzZWxlY3RvciBpcyB1cGRhdGVkLCB0aGUgc2FtZSBjaGFuZ2UgaGFzIHRvIGJlIG1hZGUgaW5zaWRlXG4gICAgICAvLyBgX292ZXJsYXkuc2Nzc2Agd2hpY2ggY2FuJ3QgZGVwZW5kIG9uIHRoaXMgbWl4aW4gZHVlIHRvIHNvbWUgaW5mcmFzdHJ1Y3R1cmUgbGltaXRhdGlvbnMuXG4gICAgICAuY2RrLWhpZ2gtY29udHJhc3QtI3skdGFyZ2V0fSB7XG4gICAgICAgIEBpbmNsdWRlIF9vcHRpb25hbGx5LW5lc3QtY29udGVudCgkc2VsZWN0b3ItY29udGV4dCkge1xuICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmICgkZW5jYXBzdWxhdGlvbiAhPSAnb2ZmJykge1xuICAgICAgLmNkay1oaWdoLWNvbnRyYXN0LSN7JHRhcmdldH0gOmhvc3Qge1xuICAgICAgICBAaW5jbHVkZSBfb3B0aW9uYWxseS1uZXN0LWNvbnRlbnQoJHNlbGVjdG9yLWNvbnRleHQpIHtcbiAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gV2Ugd2FudCBvdmVybGF5cyB0byBhbHdheXMgYXBwZWFyIG92ZXIgdXNlciBjb250ZW50LCBzbyBzZXQgYSBiYXNlbGluZVxuLy8gdmVyeSBoaWdoIHotaW5kZXggZm9yIHRoZSBvdmVybGF5IGNvbnRhaW5lciwgd2hpY2ggaXMgd2hlcmUgd2UgY3JlYXRlIHRoZSBuZXdcbi8vIHN0YWNraW5nIGNvbnRleHQgZm9yIGFsbCBvdmVybGF5cy5cbiRvdmVybGF5LWNvbnRhaW5lci16LWluZGV4OiAxMDAwICFkZWZhdWx0O1xuJG92ZXJsYXktei1pbmRleDogMTAwMCAhZGVmYXVsdDtcbiRvdmVybGF5LWJhY2tkcm9wLXotaW5kZXg6IDEwMDAgIWRlZmF1bHQ7XG5cbi8vIEJhY2tncm91bmQgY29sb3IgZm9yIGFsbCBvZiB0aGUgYmFja2Ryb3BzXG4kb3ZlcmxheS1iYWNrZHJvcC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjMyKSAhZGVmYXVsdDtcblxuLy8gRGVmYXVsdCBiYWNrZHJvcCBhbmltYXRpb24gaXMgYmFzZWQgb24gdGhlIE1hdGVyaWFsIERlc2lnbiBzd2lmdC1lYXNlLW91dC5cbiRiYWNrZHJvcC1hbmltYXRpb24tZHVyYXRpb246IDQwMG1zICFkZWZhdWx0O1xuJGJhY2tkcm9wLWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpICFkZWZhdWx0O1xuXG4vLy8gRW1pdHMgc3RydWN0dXJhbCBzdHlsZXMgcmVxdWlyZWQgZm9yIGNkay9vdmVybGF5IHRvIGZ1bmN0aW9uLlxuQG1peGluIG92ZXJsYXkoKSB7XG4gIC5jZGstb3ZlcmxheS1jb250YWluZXIsIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlciB7XG4gICAgLy8gRGlzYWJsZSBldmVudHMgZnJvbSBiZWluZyBjYXB0dXJlZCBvbiB0aGUgb3ZlcmxheSBjb250YWluZXIuXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAvLyBUaGUgY29udGFpbmVyIHNob3VsZCBiZSB0aGUgc2l6ZSBvZiB0aGUgdmlld3BvcnQuXG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLy8gVGhlIG92ZXJsYXktY29udGFpbmVyIGlzIGFuIGludmlzaWJsZSBlbGVtZW50IHdoaWNoIGNvbnRhaW5zIGFsbCBpbmRpdmlkdWFsIG92ZXJsYXlzLlxuICAuY2RrLW92ZXJsYXktY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgei1pbmRleDogJG92ZXJsYXktY29udGFpbmVyLXotaW5kZXg7XG5cbiAgICAmOmVtcHR5IHtcbiAgICAgIC8vIEhpZGUgdGhlIGVsZW1lbnQgd2hlbiBpdCBkb2Vzbid0IGhhdmUgYW55IGNoaWxkIG5vZGVzLiBUaGlzIGRvZXNuJ3RcbiAgICAgIC8vIGluY2x1ZGUgb3ZlcmxheXMgdGhhdCBoYXZlIGJlZW4gZGV0YWNoZWQsIHJhdGhlciB0aGFuIGRpc3Bvc2VkLlxuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAvLyBXZSB1c2UgYW4gZXh0cmEgd3JhcHBlciBlbGVtZW50IGluIG9yZGVyIHRvIHVzZSBtYWtlIHRoZSBvdmVybGF5IGl0c2VsZiBhIGZsZXggaXRlbS5cbiAgLy8gVGhpcyBtYWtlcyBjZW50ZXJpbmcgdGhlIG92ZXJsYXkgZWFzeSB3aXRob3V0IHJ1bm5pbmcgaW50byB0aGUgc3VicGl4ZWwgcmVuZGVyaW5nXG4gIC8vIHByb2JsZW1zIHRpZWQgdG8gdXNpbmcgYHRyYW5zZm9ybWAgYW5kIHdpdGhvdXQgaW50ZXJmZXJpbmcgd2l0aCB0aGUgb3RoZXIgcG9zaXRpb25cbiAgLy8gc3RyYXRlZ2llcy5cbiAgLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAkb3ZlcmxheS16LWluZGV4O1xuICB9XG5cbiAgLy8gQSBzaW5nbGUgb3ZlcmxheSBwYW5lLlxuICAuY2RrLW92ZXJsYXktcGFuZSB7XG4gICAgLy8gTm90ZTogaXQncyBpbXBvcnRhbnQgZm9yIHRoaXMgb25lIHRvIHN0YXJ0IG9mZiBgYWJzb2x1dGVgLFxuICAgIC8vIGluIG9yZGVyIGZvciB1cyB0byBiZSBhYmxlIHRvIG1lYXN1cmUgaXQgY29ycmVjdGx5LlxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHotaW5kZXg6ICRvdmVybGF5LXotaW5kZXg7XG5cbiAgICAvLyBGb3IgY29ubmVjdGVkLXBvc2l0aW9uIG92ZXJsYXlzLCB3ZSBzZXQgYGRpc3BsYXk6IGZsZXhgIGluXG4gICAgLy8gb3JkZXIgdG8gZm9yY2UgYG1heC13aWR0aGAgYW5kIGBtYXgtaGVpZ2h0YCB0byB0YWtlIGVmZmVjdC5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICB9XG5cbiAgLmNkay1vdmVybGF5LWJhY2tkcm9wIHtcbiAgICAvLyBUT0RPKGplbGJvdXJuKTogcmV1c2Ugc2lkZW5hdiBmdWxsc2NyZWVuIG1peGluLlxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG5cbiAgICB6LWluZGV4OiAkb3ZlcmxheS1iYWNrZHJvcC16LWluZGV4O1xuICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAkYmFja2Ryb3AtYW5pbWF0aW9uLWR1cmF0aW9uICRiYWNrZHJvcC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uO1xuICAgIG9wYWNpdHk6IDA7XG5cbiAgICAmLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmcge1xuICAgICAgb3BhY2l0eTogMTtcblxuICAgICAgLy8gTm90ZSB0aGF0IHdlIGNhbid0IGltcG9ydCBhbmQgdXNlIHRoZSBgaGlnaC1jb250cmFzdGAgbWl4aW4gZnJvbSBgX2ExMXkuc2Nzc2AsIGJlY2F1c2VcbiAgICAgIC8vIHRoaXMgZmlsZSB3aWxsIGJlIGNvcGllZCB0byB0aGUgdG9wLWxldmVsIGBjZGtgIHBhY2thZ2Ugd2hlbiBwdXR0aW5nIHRvZ2V0aGVyIHRoZSBmaWxlc1xuICAgICAgLy8gZm9yIG5wbS4gQW55IHJlbGF0aXZlIGltcG9ydCBwYXRocyB3ZSB1c2UgaGVyZSB3aWxsIGJlY29tZSBpbnZhbGlkIG9uY2UgdGhlIGZpbGUgaXMgY29waWVkLlxuICAgICAgLmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAmIHtcbiAgICAgICAgLy8gSW4gaGlnaCBjb250cmFzdCBtb2RlIHRoZSByZ2JhIGJhY2tncm91bmQgd2lsbCBiZWNvbWUgc29saWRcbiAgICAgICAgLy8gc28gd2UgbmVlZCB0byBmYWxsIGJhY2sgdG8gbWFraW5nIGl0IG9wYXF1ZSB1c2luZyBgb3BhY2l0eWAuXG4gICAgICAgIG9wYWNpdHk6IDAuNjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcCB7XG4gICAgYmFja2dyb3VuZDogJG92ZXJsYXktYmFja2Ryb3AtY29sb3I7XG4gIH1cblxuICAuY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3Age1xuICAgIC8vIERlZmluZSBhIHRyYW5zaXRpb24gb24gdGhlIHZpc2liaWxpdHkgc28gdGhhdCB0aGUgYHRyYW5zaXRpb25lbmRgIGV2ZW50IGNhbiBmaXJlIGltbWVkaWF0ZWx5LlxuICAgIHRyYW5zaXRpb246IHZpc2liaWxpdHkgMW1zIGxpbmVhciwgb3BhY2l0eSAxbXMgbGluZWFyO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICBvcGFjaXR5OiAxO1xuXG4gICAgLy8gTm90ZTogYXMgb2YgRmlyZWZveCA1NywgaGF2aW5nIHRoZSBiYWNrZHJvcCBiZSBgYmFja2dyb3VuZDogbm9uZWAgd2lsbCBwcmV2ZW50IGl0IGZyb21cbiAgICAvLyBjYXB0dXJpbmcgdGhlIHVzZXIncyBtb3VzZSBzY3JvbGwgZXZlbnRzLiBTaW5jZSB3ZSBhbHNvIGNhbid0IHVzZSBzb21ldGhpbmcgbGlrZVxuICAgIC8vIGByZ2JhKDAsIDAsIDAsIDApYCwgd2Ugd29yayBhcm91bmQgdGhlIGluY29uc2lzdGVuY3kgYnkgbm90IHNldHRpbmcgdGhlIGJhY2tncm91bmQgYXRcbiAgICAvLyBhbGwgYW5kIHVzaW5nIGBvcGFjaXR5YCB0byBtYWtlIHRoZSBlbGVtZW50IHRyYW5zcGFyZW50LlxuICAgICYuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZyB7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICB9XG4gIH1cblxuICAuY2RrLW92ZXJsYXktYmFja2Ryb3Atbm9vcC1hbmltYXRpb24ge1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gIH1cblxuICAvLyBPdmVybGF5IHBhcmVudCBlbGVtZW50IHVzZWQgd2l0aCB0aGUgY29ubmVjdGVkIHBvc2l0aW9uIHN0cmF0ZWd5LiBVc2VkIHRvIGNvbnN0cmFpbiB0aGVcbiAgLy8gb3ZlcmxheSBlbGVtZW50J3Mgc2l6ZSB0byBmaXQgd2l0aGluIHRoZSB2aWV3cG9ydC5cbiAgLmNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3gge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAkb3ZlcmxheS16LWluZGV4O1xuXG4gICAgLy8gV2UgdXNlIGBkaXNwbGF5OiBmbGV4YCBvbiB0aGlzIGVsZW1lbnQgZXhjbHVzaXZlbHkgZm9yIGNlbnRlcmluZyBjb25uZWN0ZWQgb3ZlcmxheXMuXG4gICAgLy8gV2hlbiAqbm90KiBjZW50ZXJpbmcsIGEgdG9wL2xlZnQvYm90dG9tL3JpZ2h0IHdpbGwgYmUgc2V0IHdoaWNoIG92ZXJyaWRlcyB0aGUgbm9ybWFsXG4gICAgLy8gZmxleCBsYXlvdXQuXG4gICAgZGlzcGxheTogZmxleDtcblxuICAgIC8vIFdlIHVzZSB0aGUgYGNvbHVtbmAgZGlyZWN0aW9uIGhlcmUgdG8gYXZvaWQgc29tZSBmbGV4Ym94IGlzc3VlcyBpbiBFZGdlXG4gICAgLy8gd2hlbiB1c2luZyB0aGUgXCJncm93IGFmdGVyIG9wZW5cIiBvcHRpb25zLlxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAvLyBBZGQgc29tZSBkaW1lbnNpb25zIHNvIHRoZSBlbGVtZW50IGhhcyBhbiBgaW5uZXJUZXh0YCB3aGljaCBzb21lIHBlb3BsZSBkZXBlbmQgb24gaW4gdGVzdHMuXG4gICAgbWluLXdpZHRoOiAxcHg7XG4gICAgbWluLWhlaWdodDogMXB4O1xuICB9XG5cbiAgLy8gVXNlZCB3aGVuIGRpc2FibGluZyBnbG9iYWwgc2Nyb2xsaW5nLlxuICAuY2RrLWdsb2JhbC1zY3JvbGxibG9jayB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuXG4gICAgLy8gTmVjZXNzYXJ5IGZvciB0aGUgY29udGVudCBub3QgdG8gbG9zZSBpdHMgd2lkdGguIE5vdGUgdGhhdCB3ZSdyZSB1c2luZyAxMDAlLCBpbnN0ZWFkIG9mXG4gICAgLy8gMTAwdncsIGJlY2F1c2UgMTAwdncgaW5jbHVkZXMgdGhlIHdpZHRoIHBsdXMgdGhlIHNjcm9sbGJhciwgd2hlcmVhcyAxMDAlIGlzIHRoZSB3aWR0aFxuICAgIC8vIHRoYXQgdGhlIGVsZW1lbnQgaGFkIGJlZm9yZSB3ZSBtYWRlIGl0IGBmaXhlZGAuXG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICAvLyBOb3RlOiB0aGlzIHdpbGwgYWx3YXlzIGFkZCBhIHNjcm9sbGJhciB0byB3aGF0ZXZlciBlbGVtZW50IGl0IGlzIG9uLCB3aGljaCBjYW5cbiAgICAvLyBwb3RlbnRpYWxseSByZXN1bHQgaW4gZG91YmxlIHNjcm9sbGJhcnMuIEl0IHNob3VsZG4ndCBiZSBhbiBpc3N1ZSwgYmVjYXVzZSB3ZSB3b24ndFxuICAgIC8vIGJsb2NrIHNjcm9sbGluZyBvbiBhIHBhZ2UgdGhhdCBkb2Vzbid0IGhhdmUgYSBzY3JvbGxiYXIgaW4gdGhlIGZpcnN0IHBsYWNlLlxuICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgfVxufVxuIiwiLy8gU3RydWN0dXJhbCBzdHlsZXMgZm9yIHRoZSBhdXRvc2l6ZSB0ZXh0IGZpZWxkcy5cbkBtaXhpbiB0ZXh0LWZpZWxkLWF1dG9zaXplKCkge1xuICAvLyBSZW1vdmUgdGhlIHJlc2l6ZSBoYW5kbGUgb24gYXV0b3NpemluZyB0ZXh0YXJlYXMsIGJlY2F1c2Ugd2hhdGV2ZXIgaGVpZ2h0XG4gIC8vIHRoZSB1c2VyIHJlc2l6ZWQgdG8gd2lsbCBiZSBvdmVyd3JpdHRlbiBvbmNlIHRoZXkgc3RhcnQgdHlwaW5nIGFnYWluLlxuICB0ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUge1xuICAgIHJlc2l6ZTogbm9uZTtcbiAgfVxuXG4gIC8vIFRoaXMgY2xhc3MgaXMgdGVtcG9yYXJpbHkgYXBwbGllZCB0byB0aGUgdGV4dGFyZWEgd2hlbiBpdCBpcyBiZWluZyBtZWFzdXJlZC4gSXQgaXMgaW1tZWRpYXRlbHlcbiAgLy8gcmVtb3ZlZCB3aGVuIG1lYXN1cmluZyBpcyBjb21wbGV0ZS4gV2UgdXNlIGAhaW1wb3J0YW50YCBydWxlcyBoZXJlIHRvIG1ha2Ugc3VyZSB1c2VyLXNwZWNpZmllZFxuICAvLyBydWxlcyBkbyBub3QgaW50ZXJmZXJlIHdpdGggdGhlIG1lYXN1cmVtZW50LlxuICB0ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nIHtcbiAgICBAaW5jbHVkZSBfYXV0b3NpemUtbWVhc3VyaW5nLWJhc2U7XG4gICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xuICB9XG5cbiAgLy8gU2ltaWxhciB0byB0aGUgYGNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmdgIGNsYXNzLCBidXQgb25seSBhcHBsaWVkIG9uIEZpcmVmb3guIFdlIG5lZWRcbiAgLy8gdG8gdXNlIHRoaXMgY2xhc3MsIGJlY2F1c2UgRmlyZWZveCBoYXMgYSBidWcgd2hlcmUgY2hhbmdpbmcgdGhlIGBvdmVyZmxvd2AgYnJlYWtzIHRoZSB1c2VyJ3NcbiAgLy8gYWJpbGl0eSB0byB1bmRvL3JlZG8gd2hhdCB0aGV5IHdlcmUgdHlwaW5nIChzZWUgIzE2NjI5KS4gVGhpcyBjbGFzcyBpcyBvbmx5IHNjb3BlZCB0byBGaXJlZm94LFxuICAvLyBiZWNhdXNlIHRoZSBtZWFzdXJlbWVudHMgdGhlcmUgZG9uJ3Qgc2VlbSB0byBiZSBhZmZlY3RlZCBieSB0aGUgYGhlaWdodDogMGAsIHdoZXJlYXMgb24gb3RoZXJcbiAgLy8gYnJvd3NlcnMgdGhleSBhcmUsIGUuZy4gQ2hyb21lIGRldGVjdHMgbG9uZ2VyIHRleHQgYW5kIElFIGRvZXMndCByZXNpemUgYmFjayB0byBub3JtYWwuXG4gIC8vIElkZW50aWNhbCBpc3N1ZSByZXBvcnQ6IGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTQ0ODc4NFxuICB0ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nLWZpcmVmb3gge1xuICAgIEBpbmNsdWRlIF9hdXRvc2l6ZS1tZWFzdXJpbmctYmFzZTtcbiAgICBoZWlnaHQ6IDAgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vLyBDb3JlIHN0eWxlcyB0aGF0IGVuYWJsZSBtb25pdG9yaW5nIGF1dG9maWxsIHN0YXRlIG9mIHRleHQgZmllbGRzLlxuQG1peGluIHRleHQtZmllbGQtYXV0b2ZpbGwoKSB7XG4gIC8vIEtleWZyYW1lcyB0aGF0IGFwcGx5IG5vIHN0eWxlcywgYnV0IGFsbG93IHVzIHRvIG1vbml0b3Igd2hlbiBhbiB0ZXh0IGZpZWxkIGJlY29tZXMgYXV0b2ZpbGxlZFxuICAvLyBieSB3YXRjaGluZyBmb3IgdGhlIGFuaW1hdGlvbiBldmVudHMgdGhhdCBhcmUgZmlyZWQgd2hlbiB0aGV5IHN0YXJ0LiBOb3RlOiB0aGUgLyohKi8gY29tbWVudCBpc1xuICAvLyBuZWVkZWQgdG8gcHJldmVudCBMaWJTYXNzIGZyb20gc3RyaXBwaW5nIHRoZSBrZXlmcmFtZXMgb3V0LlxuICAvLyBCYXNlZCBvbjogaHR0cHM6Ly9tZWRpdW0uY29tL0BicnVubi9kZXRlY3RpbmctYXV0b2ZpbGxlZC1maWVsZHMtaW4tamF2YXNjcmlwdC1hZWQ1OThkMjVkYTdcbiAgQGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCB7LyohKi99XG4gIEBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIHsvKiEqL31cblxuICAuY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkOi13ZWJraXQtYXV0b2ZpbGwge1xuICAgIC8vIFNpbmNlIENocm9tZSA4MCB3ZSBuZWVkIGEgMW1zIGRlbGF5LCBvciB0aGUgYW5pbWF0aW9uc3RhcnQgZXZlbnQgd29uJ3QgZmlyZS5cbiAgICBhbmltYXRpb246IGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtcztcbiAgfVxuXG4gIC5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWQ6bm90KDotd2Via2l0LWF1dG9maWxsKSB7XG4gICAgLy8gU2luY2UgQ2hyb21lIDgwIHdlIG5lZWQgYSAxbXMgZGVsYXksIG9yIHRoZSBhbmltYXRpb25zdGFydCBldmVudCB3b24ndCBmaXJlLlxuICAgIGFuaW1hdGlvbjogY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIDBzIDFtcztcbiAgfVxufVxuXG5AbWl4aW4gX2F1dG9zaXplLW1lYXN1cmluZy1iYXNlIHtcbiAgLy8gSGF2aW5nIDJweCB0b3AgYW5kIGJvdHRvbSBwYWRkaW5nIHNlZW1zIHRvIGZpeCBhIGJ1ZyB3aGVyZSBDaHJvbWUgZ2V0cyBhbiBpbmNvcnJlY3RcbiAgLy8gbWVhc3VyZW1lbnQuIFdlIGp1c3QgaGF2ZSB0byBhY2NvdW50IGZvciBpdCBsYXRlciBhbmQgc3VidHJhY3QgaXQgb2ZmIHRoZSBmaW5hbCByZXN1bHQuXG4gIHBhZGRpbmc6IDJweCAwICFpbXBvcnRhbnQ7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7XG59XG5cbi8vIFVzZWQgdG8gZ2VuZXJhdGUgVUlEcyBmb3Iga2V5ZnJhbWVzIHVzZWQgdG8gY2hhbmdlIHRoZSB0ZXh0IGZpZWxkIGF1dG9maWxsIHN0eWxlcy5cbiRhdXRvZmlsbC1jb2xvci1mcmFtZS1jb3VudDogMDtcblxuLy8gTWl4aW4gdXNlZCB0byBhcHBseSBjdXN0b20gYmFja2dyb3VuZCBhbmQgZm9yZWdyb3VuZCBjb2xvcnMgdG8gYW4gYXV0b2ZpbGxlZCB0ZXh0IGZpZWxkLlxuLy8gQmFzZWQgb246IGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzI3ODE1NDkvXG4vLyByZW1vdmluZy1pbnB1dC1iYWNrZ3JvdW5kLWNvbG91ci1mb3ItY2hyb21lLWF1dG9jb21wbGV0ZSNhbnN3ZXItMzc0MzIyNjBcbkBtaXhpbiB0ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yKCRiYWNrZ3JvdW5kLCAkZm9yZWdyb3VuZDonJykge1xuICBAa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yLSN7JGF1dG9maWxsLWNvbG9yLWZyYW1lLWNvdW50fSB7XG4gICAgdG8ge1xuICAgICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgICBAaWYgJGZvcmVncm91bmQgIT0gJycgeyBjb2xvcjogJGZvcmVncm91bmQ7IH1cbiAgICB9XG4gIH1cblxuICAmOi13ZWJraXQtYXV0b2ZpbGwge1xuICAgIGFuaW1hdGlvbjogY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtY29sb3ItI3skYXV0b2ZpbGwtY29sb3ItZnJhbWUtY291bnR9IGJvdGg7XG4gIH1cblxuICAmLmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZDotd2Via2l0LWF1dG9maWxsIHtcbiAgICAvLyBTaW5jZSBDaHJvbWUgODAgd2UgbmVlZCBhIDFtcyBkZWxheSBmb3IgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQsIG9yIHRoZSBhbmltYXRpb25zdGFydFxuICAgIC8vIGV2ZW50IHdvbid0IGZpcmUuXG4gICAgYW5pbWF0aW9uOiBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCAwcyAxbXMsXG4gICAgICAgICAgICAgICBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1jb2xvci0jeyRhdXRvZmlsbC1jb2xvci1mcmFtZS1jb3VudH0gYm90aDtcbiAgfVxuXG4gICRhdXRvZmlsbC1jb2xvci1mcmFtZS1jb3VudDogJGF1dG9maWxsLWNvbG9yLWZyYW1lLWNvdW50ICsgMSAhZ2xvYmFsO1xufVxuXG4vLyBAZGVwcmVjYXRlZCBVc2UgYGF1dG9zaXplYCBhbmQgYGF1dG9maWxsYCBpbnN0ZWFkLlxuQG1peGluIHRleHQtZmllbGQge1xuICBAaW5jbHVkZSB0ZXh0LWZpZWxkLWF1dG9zaXplKCk7XG4gIEBpbmNsdWRlIHRleHQtZmllbGQtYXV0b2ZpbGwoKTtcbn1cbiIsIkB1c2UgJ3Nhc3M6bWFwJztcbkB1c2UgJ3Nhc3M6bWV0YSc7XG5AdXNlICdAYW5ndWxhci9jZGsnO1xuQHVzZSAnLi4vc3R5bGUvbGF5b3V0LWNvbW1vbic7XG5AdXNlICcuLi90aGVtaW5nL3RoZW1pbmcnO1xuQHVzZSAnLi4vdGhlbWluZy9pbnNwZWN0aW9uJztcblxuLy8gUHJpdmF0ZSBzYXNzIHZhcmlhYmxlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyByZWZlcmVuY2UgdGhyb3VnaG91dCBjb21wb25lbnQgc3R5bGVzaGVldHMuXG4kZGVmYXVsdC1ib3JkZXItd2lkdGg6IDNweDtcbiRkZWZhdWx0LWJvcmRlci1zdHlsZTogc29saWQ7XG4kZGVmYXVsdC1ib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuJGRlZmF1bHQtYm9yZGVyLXJhZGl1czogNHB4O1xuXG4vLyBNaXhpbiB0aGF0IHJlbmRlcnMgdGhlIGZvY3VzIGluZGljYXRvciBzdHJ1Y3R1cmFsIHN0eWxlcy5cbkBtaXhpbiBzdHJ1Y3R1cmFsLXN0eWxpbmcoJHByZWZpeCkge1xuICAuI3skcHJlZml4fS1mb2N1cy1pbmRpY2F0b3Ige1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSBsYXlvdXQtY29tbW9uLmZpbGwoKTtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIGRpc3BsYXk6IHZhcigtLSN7JHByZWZpeH0tZm9jdXMtaW5kaWNhdG9yLWRpc3BsYXksIG5vbmUpOyAvLyBIaWRlIHRoZSBpbmRpY2F0b3IgYnkgZGVmYXVsdC5cbiAgICAgIGJvcmRlcjogdmFyKFxuICAgICAgICAgIC0tI3skcHJlZml4fS1mb2N1cy1pbmRpY2F0b3ItYm9yZGVyLXdpZHRoLFxuICAgICAgICAgICN7JGRlZmF1bHQtYm9yZGVyLXdpZHRofVxuICAgICAgICApXG4gICAgICAgIHZhcihcbiAgICAgICAgICAtLSN7JHByZWZpeH0tZm9jdXMtaW5kaWNhdG9yLWJvcmRlci1zdHlsZSxcbiAgICAgICAgICAjeyRkZWZhdWx0LWJvcmRlci1zdHlsZX1cbiAgICAgICAgKVxuICAgICAgICB2YXIoXG4gICAgICAgICAgLS0jeyRwcmVmaXh9LWZvY3VzLWluZGljYXRvci1ib3JkZXItY29sb3IsXG4gICAgICAgICAgI3skZGVmYXVsdC1ib3JkZXItY29sb3J9XG4gICAgICAgICk7XG4gICAgICBib3JkZXItcmFkaXVzOiB2YXIoXG4gICAgICAgIC0tI3skcHJlZml4fS1mb2N1cy1pbmRpY2F0b3ItYm9yZGVyLXJhZGl1cyxcbiAgICAgICAgI3skZGVmYXVsdC1ib3JkZXItcmFkaXVzfVxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBCeSBkZWZhdWx0LCByZW5kZXIgdGhlIGZvY3VzIGluZGljYXRvciB3aGVuIHRoZSBmb2N1cyBpbmRpY2F0b3IgaG9zdCBlbGVtZW50IHRha2VzIGZvY3VzLlxuICAgIC8vIERlZmluaW5nIGEgcHNldWRvIGVsZW1lbnQncyBjb250ZW50IHdpbGwgY2F1c2UgaXQgdG8gcmVuZGVyLlxuICAgICY6Zm9jdXM6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICB9XG4gIH1cblxuICAvLyBFbmFibGUgdGhlIGluZGljYXRvciBpbiBoaWdoIGNvbnRyYXN0IG1vZGUuXG4gIEBpbmNsdWRlIGNkay5oaWdoLWNvbnRyYXN0KGFjdGl2ZSwgb2ZmKSB7XG4gICAgQGluY2x1ZGUgY3VzdG9taXplLWZvY3VzLWluZGljYXRvcnMoKGRpc3BsYXk6IGJsb2NrKSwgJHByZWZpeCk7XG4gIH1cbn1cblxuLy8gR2VuZXJhdGVzIENTUyB2YXJpYWJsZSBkZWNsYXJhdGlvbnMgZnJvbSBhIG1hcC5cbkBtaXhpbiBfb3V0cHV0LXZhcmlhYmxlcygkbWFwKSB7XG4gIEBlYWNoICRrZXksICR2YWx1ZSBpbiAkbWFwIHtcbiAgICBAaWYgKCR2YWx1ZSkge1xuICAgICAgLS0jeyRrZXl9OiAjeyR2YWx1ZX07XG4gICAgfVxuICB9XG59XG5cbi8vIE1peGluIHRoYXQgZGVkdXBzIENTUyB2YXJpYWJsZXMgZm9yIHRoZSBzdHJvbmctZm9jdXMtaW5kaWNhdG9ycyBtaXhpbi5cbkBtaXhpbiBjdXN0b21pemUtZm9jdXMtaW5kaWNhdG9ycygkY29uZmlnLCAkcHJlZml4KSB7XG4gICRib3JkZXItc3R5bGU6IG1hcC5nZXQoJGNvbmZpZywgYm9yZGVyLXN0eWxlKTtcbiAgJGJvcmRlci13aWR0aDogbWFwLmdldCgkY29uZmlnLCBib3JkZXItd2lkdGgpO1xuICAkYm9yZGVyLXJhZGl1czogbWFwLmdldCgkY29uZmlnLCBib3JkZXItcmFkaXVzKTtcbiAgJGJvcmRlci1jb2xvcjogbWFwLmdldCgkY29uZmlnLCBib3JkZXItY29sb3IpO1xuICAkZGlzcGxheTogbWFwLmdldCgkY29uZmlnLCBkaXNwbGF5KTtcbiAgJG1hcDogKFxuICAgICcjeyRwcmVmaXh9LWZvY3VzLWluZGljYXRvci1ib3JkZXItc3R5bGUnOiAkYm9yZGVyLXN0eWxlLFxuICAgICcjeyRwcmVmaXh9LWZvY3VzLWluZGljYXRvci1ib3JkZXItd2lkdGgnOiAkYm9yZGVyLXdpZHRoLFxuICAgICcjeyRwcmVmaXh9LWZvY3VzLWluZGljYXRvci1ib3JkZXItcmFkaXVzJzogJGJvcmRlci1yYWRpdXMsXG4gICAgJyN7JHByZWZpeH0tZm9jdXMtaW5kaWNhdG9yLWJvcmRlci1jb2xvcic6ICRib3JkZXItY29sb3IsXG4gICAgJyN7JHByZWZpeH0tZm9jdXMtaW5kaWNhdG9yLWRpc3BsYXknOiAkZGlzcGxheSxcbiAgKTtcblxuICBAaWYgKCYpIHtcbiAgICBAaW5jbHVkZSBfb3V0cHV0LXZhcmlhYmxlcygkbWFwKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgLy8gV2UgdXNlIGBodG1sYCBoZXJlIGluc3RlYWQgb2YgYDpyb290YCwgYmVjYXVzZSB0aGVcbiAgICAvLyBsYXR0ZXIgY2F1c2VzIHNvbWUgaXNzdWVzIHdpdGggaW50ZXJuYWwgdG9vbGluZy5cbiAgICBodG1sIHtcbiAgICAgIEBpbmNsdWRlIF9vdXRwdXQtdmFyaWFibGVzKCRtYXApO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gc3Ryb25nLWZvY3VzLWluZGljYXRvcnMoJGNvbmZpZzogKCkpIHtcbiAgLy8gRGVmYXVsdCBmb2N1cyBpbmRpY2F0b3IgY29uZmlnLlxuICAkZGVmYXVsdC1jb25maWc6IChcbiAgICAgIGJvcmRlci1jb2xvcjogYmxhY2ssXG4gICAgICBkaXNwbGF5OiBibG9jayxcbiAgKTtcblxuICAvLyBNZXJnZSBkZWZhdWx0IGNvbmZpZyB3aXRoIHVzZXIgY29uZmlnLlxuICAkY29uZmlnOiBtYXAubWVyZ2UoJGRlZmF1bHQtY29uZmlnLCAkY29uZmlnKTtcblxuICBAaW5jbHVkZSBjdXN0b21pemUtZm9jdXMtaW5kaWNhdG9ycygkY29uZmlnLCAnbWF0Jyk7XG59XG5cbkBtaXhpbiBtZGMtc3Ryb25nLWZvY3VzLWluZGljYXRvcnMoJGNvbmZpZzogKCkpIHtcbiAgLy8gRGVmYXVsdCBmb2N1cyBpbmRpY2F0b3IgY29uZmlnLlxuICAkZGVmYXVsdC1jb25maWc6IChcbiAgICAgIGJvcmRlci1jb2xvcjogYmxhY2ssXG4gICAgICBkaXNwbGF5OiBibG9jayxcbiAgKTtcblxuICAvLyBNZXJnZSBkZWZhdWx0IGNvbmZpZyB3aXRoIHVzZXIgY29uZmlnLlxuICAkY29uZmlnOiBtYXAubWVyZ2UoJGRlZmF1bHQtY29uZmlnLCAkY29uZmlnKTtcblxuICBAaW5jbHVkZSBjdXN0b21pemUtZm9jdXMtaW5kaWNhdG9ycygkY29uZmlnLCAnbWF0LW1kYycpO1xufVxuXG5AbWl4aW4gc3Ryb25nLWZvY3VzLWluZGljYXRvcnMtY29sb3IoJHRoZW1lLW9yLWNvbG9yKSB7XG4gIEBpZiBtZXRhLnR5cGUtb2YoJHRoZW1lLW9yLWNvbG9yKSA9PSAnY29sb3InIHtcbiAgICBAaW5jbHVkZSBjdXN0b21pemUtZm9jdXMtaW5kaWNhdG9ycygoXG4gICAgICAgIGJvcmRlci1jb2xvcjogJHRoZW1lLW9yLWNvbG9yXG4gICAgKSwgJ21hdCcpO1xuICB9XG4gIEBlbHNlIHtcbiAgICAkYm9yZGVyLWNvbG9yOiBpbnNwZWN0aW9uLmdldC10aGVtZS1jb2xvcigkdGhlbWUtb3ItY29sb3IsIHByaW1hcnkpO1xuICAgIEBpbmNsdWRlIGN1c3RvbWl6ZS1mb2N1cy1pbmRpY2F0b3JzKChcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yXG4gICAgKSwgJ21hdCcpO1xuICB9XG59XG5cbkBtaXhpbiBzdHJvbmctZm9jdXMtaW5kaWNhdG9ycy10aGVtZSgkdGhlbWUtb3ItY29sb3IpIHtcbiAgQGlmIG1ldGEudHlwZS1vZigkdGhlbWUtb3ItY29sb3IpID09ICdjb2xvcicge1xuICAgIEBpbmNsdWRlIGN1c3RvbWl6ZS1mb2N1cy1pbmRpY2F0b3JzKChcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkdGhlbWUtb3ItY29sb3JcbiAgICApLCAnbWF0Jyk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpbmNsdWRlIHRoZW1pbmcucHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZS1vci1jb2xvciwgJ21hdC1mb2N1cy1pbmRpY2F0b3JzJykge1xuICAgICAgQGlmIGluc3BlY3Rpb24udGhlbWUtaGFzKCR0aGVtZS1vci1jb2xvciwgY29sb3IpIHtcbiAgICAgICAgQGluY2x1ZGUgc3Ryb25nLWZvY3VzLWluZGljYXRvcnMtY29sb3IoJHRoZW1lLW9yLWNvbG9yKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1kYy1zdHJvbmctZm9jdXMtaW5kaWNhdG9ycy1jb2xvcigkdGhlbWUtb3ItY29sb3IpIHtcbiAgQGlmIG1ldGEudHlwZS1vZigkdGhlbWUtb3ItY29sb3IpID09ICdjb2xvcicge1xuICAgIEBpbmNsdWRlIGN1c3RvbWl6ZS1mb2N1cy1pbmRpY2F0b3JzKChcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkdGhlbWUtb3ItY29sb3JcbiAgICApLCAnbWF0LW1kYycpO1xuICB9XG4gIEBlbHNlIHtcbiAgICAkYm9yZGVyLWNvbG9yOiBpbnNwZWN0aW9uLmdldC10aGVtZS1jb2xvcigkdGhlbWUtb3ItY29sb3IsIHByaW1hcnkpO1xuICAgIEBpbmNsdWRlIGN1c3RvbWl6ZS1mb2N1cy1pbmRpY2F0b3JzKChcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yXG4gICAgKSwgJ21hdC1tZGMnKTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLXN0cm9uZy1mb2N1cy1pbmRpY2F0b3JzLXRoZW1lKCR0aGVtZS1vci1jb2xvcikge1xuICBAaWYgbWV0YS50eXBlLW9mKCR0aGVtZS1vci1jb2xvcikgPT0gJ2NvbG9yJyB7XG4gICAgQGluY2x1ZGUgY3VzdG9taXplLWZvY3VzLWluZGljYXRvcnMoKFxuICAgICAgICBib3JkZXItY29sb3I6ICR0aGVtZS1vci1jb2xvclxuICAgICksICdtYXQtbWRjJyk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpbmNsdWRlIHRoZW1pbmcucHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKFxuICAgICAgICAkdGhlbWUtb3ItY29sb3IsICdtYXQtbWRjLWZvY3VzLWluZGljYXRvcnMnKSB7XG4gICAgICBAaWYgaW5zcGVjdGlvbi50aGVtZS1oYXMoJHRoZW1lLW9yLWNvbG9yLCBjb2xvcikge1xuICAgICAgICBAaW5jbHVkZSBtZGMtc3Ryb25nLWZvY3VzLWluZGljYXRvcnMtY29sb3IoJHRoZW1lLW9yLWNvbG9yKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIFRoaXMgbWl4aW4gZW5zdXJlcyBhbiBlbGVtZW50IHNwYW5zIHRvIGZpbGwgdGhlIG5lYXJlc3QgYW5jZXN0b3Igd2l0aCBkZWZpbmVkIHBvc2l0aW9uaW5nLlxuQG1peGluIGZpbGwge1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbiIsIkB1c2UgJ3Nhc3M6Y29sb3InO1xuQHVzZSAnc2FzczptYXAnO1xuQHVzZSAnc2FzczptZXRhJztcblxuLy8vIEluY2x1ZGUgY29udGVudCB1bmRlciB0aGUgY3VycmVudCBzZWxlY3RvciAoJikgb3IgdGhlIGRvY3VtZW50IHJvb3QgaWYgdGhlcmUgaXMgbm8gY3VycmVudFxuLy8vIHNlbGVjdG9yLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkcm9vdCBbaHRtbF0gVGhlIGRlZmF1bHQgcm9vdCBzZWxlY3RvciB0byB1c2Ugd2hlbiB0aGVyZSBpcyBubyBjdXJyZW50IHNlbGVjdG9yLlxuLy8vIEBvdXRwdXQgVGhlIGdpdmVuIGNvbnRlbnQgdW5kZXIgdGhlIGN1cnJlbnQgc2VsZWN0b3IsIG9yIHJvb3Qgc2VsZWN0b3IgaWYgdGhlcmUgaXMgbm8gY3VycmVudFxuLy8vICAgICBzZWxlY3Rvci5cbi8vLyBAY29udGVudCBDb250ZW50IHRvIG91dHB1dCB1bmRlciB0aGUgY3VycmVudCBzZWxlY3Rvciwgb3Igcm9vdCBzZWxlY3RvciBpZiB0aGVyZSBpcyBubyBjdXJyZW50XG4vLy8gICAgIHNlbGVjdG9yLlxuQG1peGluIGN1cnJlbnQtc2VsZWN0b3Itb3Itcm9vdCgkcm9vdDogaHRtbCkge1xuICBAYXQtcm9vdCAjeyYgb3IgJHJvb3R9IHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLy8gQSB2ZXJzaW9uIG9mIHRoZSBzdGFuZGFyZCBgbWFwLm1lcmdlYCBmdW5jdGlvbiB0aGF0IHRha2VzIGEgdmFyaWFibGUgbnVtYmVyIG9mIGFyZ3VtZW50cy5cbi8vLyBFYWNoIGFyZ3VtZW50IGlzIG1lcmdlZCBpbnRvIHRoZSBmaW5hbCByZXN1bHQgZnJvbSBsZWZ0IHRvIHJpZ2h0LlxuLy8vIEBwYXJhbSB7TGlzdH0gJG1hcHMgVGhlIG1hcHMgdG8gY29tYmluZSB3aXRoIG1hcC5tZXJnZVxuLy8vIEByZXR1cm4ge01hcH0gVGhlIGNvbWJpbmVkIHJlc3VsdCBvZiBzdWNjZXNzaXZlbHkgY2FsbGluZyBtYXAubWVyZ2Ugd2l0aCBlYWNoIHBhcmFtZXRlci5cbkBmdW5jdGlvbiBtZXJnZS1hbGwoJG1hcHMuLi4pIHtcbiAgJHJlc3VsdDogKCk7XG4gIEBlYWNoICRtYXAgaW4gJG1hcHMge1xuICAgICRyZXN1bHQ6IG1hcC5tZXJnZSgkcmVzdWx0LCAkbWFwKTtcbiAgfVxuICBAcmV0dXJuICRyZXN1bHQ7XG59XG5cbi8vLyBBIHZlcnNpb24gb2YgdGhlIHN0YW5kYXJkIGBtYXAuZGVlcC1tZXJnZWAgZnVuY3Rpb24gdGhhdCB0YWtlcyBhIHZhcmlhYmxlIG51bWJlciBvZiBhcmd1bWVudHMuXG4vLy8gRWFjaCBhcmd1bWVudCBpcyBkZWVwLW1lcmdlZCBpbnRvIHRoZSBmaW5hbCByZXN1bHQgZnJvbSBsZWZ0IHRvIHJpZ2h0LlxuLy8vIEBwYXJhbSB7TGlzdH0gJG1hcHMgVGhlIG1hcHMgdG8gY29tYmluZSB3aXRoIG1hcC5kZWVwLW1lcmdlXG4vLy8gQHJldHVybiB7TWFwfSBUaGUgY29tYmluZWQgcmVzdWx0IG9mIHN1Y2Nlc3NpdmVseSBjYWxsaW5nIG1hcC5kZWVwLW1lcmdlIHdpdGggZWFjaCBwYXJhbWV0ZXIuXG5AZnVuY3Rpb24gZGVlcC1tZXJnZS1hbGwoJG1hcHMuLi4pIHtcbiAgJHJlc3VsdDogKCk7XG4gIEBlYWNoICRtYXAgaW4gJG1hcHMge1xuICAgICRyZXN1bHQ6IG1hcC5kZWVwLW1lcmdlKCRyZXN1bHQsICRtYXApO1xuICB9XG4gIEByZXR1cm4gJHJlc3VsdDtcbn1cblxuLy8vIENvZXJjZXMgdGhlIGdpdmVuIHZhbHVlIHRvIGEgbGlzdCwgYnkgY29udmVydGluZyBhbnkgbm9uLWxpc3QgdmFsdWUgaW50byBhIHNpbmdsZS1pdGVtIGxpc3QuXG4vLy8gVGhpcyBzaG91bGQgYmUgdXNlZCB3aGVuIGRlYWxpbmcgd2l0aCB1c2VyLXBhc3NlZCBsaXN0cyBvZiBhcmdzIHRvIGF2b2lkIGNvbmZ1c2luZyBlcnJvcnMsXG4vLy8gc2luY2UgU2FzcyB0cmVhdHMgYCgkeClgIGFzIGVxdWl2YWxlbnQgdG8gYCR4YC5cbi8vLyBAcGFyYW0ge0FueX0gJHZhbHVlIFRoZSB2YWx1ZSB0byBjb2VyY2UgdG8gYSBsaXN0LlxuLy8vIEByZXR1cm4ge0xpc3R9IFRoZSBvcmlnaW5hbCAkdmFsdWUgaWYgaXQgd2FzIGEgbGlzdCwgb3RoZXJ3aXNlIGEgc2luZ2xlLWl0ZW0gbGlzdCBjb250YWluaW5nXG4vLy8gICAgICR2YWx1ZS5cbkBmdW5jdGlvbiBjb2VyY2UtdG8tbGlzdCgkdmFsdWUpIHtcbiAgQHJldHVybiBpZihtZXRhLnR5cGUtb2YoJHZhbHVlKSAhPSAnbGlzdCcsICgkdmFsdWUsKSwgJHZhbHVlKTtcbn1cblxuLy8vIEEgdmVyc2lvbiBvZiB0aGUgU2FzcyBgY29sb3IuY2hhbmdlYCBmdW5jdGlvbiB0aGF0IGlzIHNhZmUgb3QgdXNlIHdpdGggQ1NTIHZhcmlhYmxlcy5cbkBmdW5jdGlvbiBzYWZlLWNvbG9yLWNoYW5nZSgkY29sb3IsICRhcmdzLi4uKSB7XG4gICRhcmdzOiBtZXRhLmtleXdvcmRzKCRhcmdzKTtcbiAgQHJldHVybiBpZihtZXRhLnR5cGUtb2YoJGNvbG9yKSA9PSAnY29sb3InLCBjb2xvci5jaGFuZ2UoJGNvbG9yLCAkYXJncy4uLiksICRjb2xvcik7XG59XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMjAgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQHVzZSAnc2FzczpsaXN0JztcbkB1c2UgJ3Nhc3M6bWFwJztcbkB1c2UgJ3Nhc3M6bWV0YSc7XG5AdXNlICcuL2dzcyc7XG5cbi8vLyBXaGVuIHRydWUsIGFkZCBhbiBhZGRpdGlvbmFsIHByb3BlcnR5L3ZhbHVlIGRlY2xhcmF0aW9uIGJlZm9yZSBkZWNsYXJhdGlvbnNcbi8vLyB0aGF0IHVzZSBhZHZhbmNlZCBmZWF0dXJlcyBzdWNoIGFzIGN1c3RvbSBwcm9wZXJ0aWVzIG9yIENTUyBmdW5jdGlvbnMuIFRoaXNcbi8vLyBhZGRzIGZhbGxiYWNrIHN1cHBvcnQgZm9yIG9sZGVyIGJyb3dzZXJzIHN1Y2ggYXMgSUUxMSB0aGF0IGRvIG5vdCBzdXBwb3J0XG4vLy8gdGhlc2UgZmVhdHVyZXMgYXQgdGhlIGNvc3Qgb2YgYWRkaXRpb25hbCBDU1MuIFNldCB0aGlzIHZhcmlhYmxlIHRvIGZhbHNlIHRvXG4vLy8gZGlzYWJsZSBnZW5lcmF0aW5nIGZhbGxiYWNrIGRlY2xhcmF0aW9ucy5cbiRlbmFibGUtZmFsbGJhY2stZGVjbGFyYXRpb25zOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gV3JpdGVzIGEgQ1NTIHByb3BlcnR5L3ZhbHVlIGRlY2xhcmF0aW9uLiBUaGlzIG1peGluIGlzIHVzZWQgdGhyb3VnaG91dCB0aGVcbi8vLyB0aGVtZSBwYWNrYWdlIGZvciBjb25zaXN0ZW5jeSBmb3IgZHluYW1pY2FsbHkgc2V0dGluZyBDU1MgcHJvcGVydHkgdmFsdWVzLlxuLy8vXG4vLy8gVGhpcyBtaXhpbiBtYXkgb3B0aW9uYWxseSB0YWtlIGEgZmFsbGJhY2sgdmFsdWUuIEZvciBhZHZhbmNlZCBmZWF0dXJlcyBzdWNoXG4vLy8gYXMgY3VzdG9tIHByb3BlcnRpZXMgb3IgQ1NTIGZ1bmN0aW9ucyBsaWtlIG1pbiBhbmQgbWF4LCBhIGZhbGxiYWNrIHZhbHVlIGlzXG4vLy8gcmVjb21tZW5kZWQgdG8gc3VwcG9ydCBvbGRlciBicm93c2Vycy5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkcHJvcGVydHkgLSBUaGUgQ1NTIHByb3BlcnR5IG9mIHRoZSBkZWNsYXJhdGlvbi5cbi8vLyBAcGFyYW0geyp9ICR2YWx1ZSAtIFRoZSB2YWx1ZSBvZiB0aGUgQ1NTIGRlY2xhcmF0aW9uLiBUaGUgdmFsdWUgc2hvdWxkIGJlXG4vLy8gICAgIHJlc29sdmVkIGJ5IG90aGVyIHRoZW1lIGZ1bmN0aW9ucyBmaXJzdCAoaS5lLiBjdXN0b20gcHJvcGVydHkgTWFwcyBhbmRcbi8vLyAgICAgTWF0ZXJpYWwgdGhlbWUga2V5cyBhcmUgbm90IHN1cHBvcnRlZCBpbiB0aGlzIG1peGluKS4gSWYgdGhlIHZhbHVlIGlzXG4vLy8gICAgIG51bGwsIG5vIGRlY2xhcmF0aW9ucyB3aWxsIGJlIGVtaXR0ZWQuXG4vLy8gQHBhcmFtIHsqfSAkZmFsbGJhY2sgLSBBbiBvcHRpb25hbCBmYWxsYmFjayB2YWx1ZSBmb3Igb2xkZXIgYnJvd3NlcnMuIElmXG4vLy8gICAgIHByb3ZpZGVkLCBhIHNlY29uZCBwcm9wZXJ0eS92YWx1ZSBkZWNsYXJhdGlvbiB3aWxsIGJlIGFkZGVkIGJlZm9yZSB0aGVcbi8vLyAgICAgbWFpbiBwcm9wZXJ0eS92YWx1ZSBkZWNsYXJhdGlvbi5cbi8vLyBAcGFyYW0ge01hcH0gJGdzcyAtIEFuIG9wdGlvbmFsIE1hcCBvZiBHU1MgYW5ub3RhdGlvbnMgdG8gYWRkLlxuLy8vIEBwYXJhbSB7Qm9vbH0gJGltcG9ydGFudCAtIElmIHRydWUsIGFkZCBgIWltcG9ydGFudGAgdG8gdGhlIGRlY2xhcmF0aW9uLlxuQG1peGluIGRlY2xhcmF0aW9uKFxuICAkcHJvcGVydHksXG4gICR2YWx1ZSxcbiAgJGZhbGxiYWNrLXZhbHVlOiBudWxsLFxuICAkZ3NzOiAoKSxcbiAgJGltcG9ydGFudDogZmFsc2Vcbikge1xuICAvLyBOb3JtYWxseSBzZXR0aW5nIGEgbnVsbCB2YWx1ZSB0byBhIHByb3BlcnR5IHdpbGwgbm90IGVtaXQgQ1NTLCBzbyBtaXhpbnNcbiAgLy8gd291bGRuJ3QgbmVlZCB0byBjaGVjayB0aGlzLiBIb3dldmVyLCBTYXNzIHdpbGwgdGhyb3cgYW4gZXJyb3IgaWYgdGhlXG4gIC8vIGludGVycG9sYXRlZCBwcm9wZXJ0eSBpcyBhIGN1c3RvbSBwcm9wZXJ0eS5cbiAgQGlmICR2YWx1ZSAhPSBudWxsIHtcbiAgICAkaW1wb3J0YW50LXJ1bGU6IGlmKCRpbXBvcnRhbnQsICcgIWltcG9ydGFudCcsICcnKTtcblxuICAgIEBpZiAkZmFsbGJhY2stdmFsdWUgYW5kICRlbmFibGUtZmFsbGJhY2stZGVjbGFyYXRpb25zIHtcbiAgICAgIEBpbmNsdWRlIGdzcy5hbm5vdGF0ZSgkZ3NzKTtcbiAgICAgICN7JHByb3BlcnR5fTogI3skZmFsbGJhY2stdmFsdWV9ICN7JGltcG9ydGFudC1ydWxlfTtcblxuICAgICAgLy8gQWRkIEBhbHRlcm5hdGUgdG8gYW5ub3RhdGlvbnMuXG4gICAgICAkZ3NzOiBtYXAubWVyZ2UoXG4gICAgICAgICRnc3MsXG4gICAgICAgIChcbiAgICAgICAgICBhbHRlcm5hdGU6IHRydWUsXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZ3NzLmFubm90YXRlKCRnc3MpO1xuICAgICN7JHByb3BlcnR5fTogI3skdmFsdWV9I3skaW1wb3J0YW50LXJ1bGV9O1xuICB9XG59XG5cbi8vLyBVbnBhY2tzIHNob3J0aGFuZCB2YWx1ZXMgZm9yIENTUyBwcm9wZXJ0aWVzIChpLmUuIGxpc3RzIG9mIDEtMyB2YWx1ZXMpLlxuLy8vIElmIGEgbGlzdCBvZiA0IHZhbHVlcyBpcyBnaXZlbiwgaXQgaXMgcmV0dXJuZWQgYXMtaXMuXG4vLy9cbi8vLyBFeGFtcGxlczpcbi8vL1xuLy8vIHVucGFjay12YWx1ZSg0cHgpID0+IDRweCA0cHggNHB4IDRweFxuLy8vIHVucGFjay12YWx1ZSg0cHggMnB4KSA9PiA0cHggMnB4IDRweCAycHhcbi8vLyB1bnBhY2stdmFsdWUoNHB4IDJweCAycHgpID0+IDRweCAycHggMnB4IDJweFxuLy8vIHVucGFjay12YWx1ZSg0cHggMnB4IDAgMnB4KSA9PiA0cHggMnB4IDAgMnB4XG4vLy9cbi8vLyBAcGFyYW0ge051bWJlciB8IE1hcCB8IExpc3R9ICR2YWx1ZSAtIExpc3Qgb2YgMSB0byA0IHZhbHVlIG51bWJlcnMuXG4vLy8gQHJldHVybiB7TGlzdH0gYSBMaXN0IG9mIDQgdmFsdWUgbnVtYmVycy5cbkBmdW5jdGlvbiB1bnBhY2stdmFsdWUoJHZhbHVlKSB7XG4gIEBpZiBtZXRhLnR5cGUtb2YoJHZhbHVlKSA9PSAnbWFwJyBvciBsaXN0Lmxlbmd0aCgkdmFsdWUpID09IDEge1xuICAgIEByZXR1cm4gJHZhbHVlICR2YWx1ZSAkdmFsdWUgJHZhbHVlO1xuICB9IEBlbHNlIGlmIGxpc3QubGVuZ3RoKCR2YWx1ZSkgPT0gNCB7XG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH0gQGVsc2UgaWYgbGlzdC5sZW5ndGgoJHZhbHVlKSA9PSAzIHtcbiAgICBAcmV0dXJuIGxpc3QubnRoKCR2YWx1ZSwgMSkgbGlzdC5udGgoJHZhbHVlLCAyKSBsaXN0Lm50aCgkdmFsdWUsIDMpXG4gICAgICBsaXN0Lm50aCgkdmFsdWUsIDIpO1xuICB9IEBlbHNlIGlmIGxpc3QubGVuZ3RoKCR2YWx1ZSkgPT0gMiB7XG4gICAgQHJldHVybiBsaXN0Lm50aCgkdmFsdWUsIDEpIGxpc3QubnRoKCR2YWx1ZSwgMikgbGlzdC5udGgoJHZhbHVlLCAxKVxuICAgICAgbGlzdC5udGgoJHZhbHVlLCAyKTtcbiAgfVxuXG4gIEBlcnJvciBcIkludmFsaWQgQ1NTIHByb3BlcnR5IHZhbHVlOiAnI3skdmFsdWV9JyBpcyBtb3JlIHRoYW4gNCB2YWx1ZXNcIjtcbn1cbiIsIkB1c2UgJ3Nhc3M6Y29sb3InO1xuQHVzZSAnc2FzczptYXAnO1xuQHVzZSAnLi4vY29yZS90b2tlbnMvbTIvbWF0L2RhdGVwaWNrZXInIGFzIHRva2Vucy1tYXQtZGF0ZXBpY2tlcjtcbkB1c2UgJy4uL2NvcmUvdGhlbWluZy90aGVtaW5nJztcbkB1c2UgJy4uL2NvcmUvdGhlbWluZy9pbnNwZWN0aW9uJztcbkB1c2UgJy4uL2NvcmUvdG9rZW5zL3Rva2VuLXV0aWxzJztcbkB1c2UgJy4uL2NvcmUvc3R5bGUvc2Fzcy11dGlscyc7XG5AdXNlICcuLi9jb3JlL3R5cG9ncmFwaHkvdHlwb2dyYXBoeSc7XG5AdXNlICcuLi9idXR0b24vaWNvbi1idXR0b24tdGhlbWUnO1xuXG4vLyBUT0RPKGNyaXNiZXRvKTogdGhlc2UgdmFyaWFibGVzIGFyZW4ndCB1c2VkIGFueW1vcmUgYW5kIHNob3VsZCBiZSByZW1vdmVkLlxuJHNlbGVjdGVkLXRvZGF5LWJveC1zaGFkb3ctd2lkdGg6IDFweDtcbiRzZWxlY3RlZC1mYWRlLWFtb3VudDogMC42O1xuJHJhbmdlLWZhZGUtYW1vdW50OiAwLjI7XG4kdG9kYXktZmFkZS1hbW91bnQ6IDAuMjtcbiRjYWxlbmRhci1ib2R5LWZvbnQtc2l6ZTogMTNweCAhZGVmYXVsdDtcbiRjYWxlbmRhci13ZWVrZGF5LXRhYmxlLWZvbnQtc2l6ZTogMTFweCAhZGVmYXVsdDtcblxuQG1peGluIF9jYWxlbmRhci1jb2xvcigkdGhlbWUsICRwYWxldHRlLW5hbWUpIHtcbiAgJHBhbGV0dGUtY29sb3I6IGluc3BlY3Rpb24uZ2V0LXRoZW1lLWNvbG9yKCR0aGVtZSwgJHBhbGV0dGUtbmFtZSk7XG4gICRyYW5nZS1jb2xvcjogdG9rZW5zLW1hdC1kYXRlcGlja2VyLnByaXZhdGUtZ2V0LXJhbmdlLWJhY2tncm91bmQtY29sb3IoJHBhbGV0dGUtY29sb3IpO1xuICAkcmFuZ2UtdG9rZW5zOiB0b2tlbnMtbWF0LWRhdGVwaWNrZXIuZ2V0LXJhbmdlLWNvbG9yLXRva2VucygkcmFuZ2UtY29sb3IpO1xuICAkY2FsZW5kYXItdG9rZW5zOlxuICAgIHRva2Vucy1tYXQtZGF0ZXBpY2tlci5wcml2YXRlLWdldC1jYWxlbmRhci1jb2xvci1wYWxldHRlLWNvbG9yLXRva2VucygkdGhlbWUsICRwYWxldHRlLW5hbWUpO1xuXG4gIEBpbmNsdWRlIHRva2VuLXV0aWxzLmNyZWF0ZS10b2tlbi12YWx1ZXModG9rZW5zLW1hdC1kYXRlcGlja2VyLiRwcmVmaXgsXG4gICAgbWFwLm1lcmdlKCRjYWxlbmRhci10b2tlbnMsICRyYW5nZS10b2tlbnMpKTtcbn1cblxuQG1peGluIGNvbG9yKCR0aGVtZSkge1xuICBAaW5jbHVkZSBzYXNzLXV0aWxzLmN1cnJlbnQtc2VsZWN0b3Itb3Itcm9vdCgpIHtcbiAgICBAaW5jbHVkZSB0b2tlbi11dGlscy5jcmVhdGUtdG9rZW4tdmFsdWVzKHRva2Vucy1tYXQtZGF0ZXBpY2tlci4kcHJlZml4LFxuICAgICAgdG9rZW5zLW1hdC1kYXRlcGlja2VyLmdldC1jb2xvci10b2tlbnMoJHRoZW1lKSk7XG4gIH1cblxuICAubWF0LWRhdGVwaWNrZXItY29udGVudCB7XG4gICAgJi5tYXQtYWNjZW50IHtcbiAgICAgIEBpbmNsdWRlIF9jYWxlbmRhci1jb2xvcigkdGhlbWUsIGFjY2VudCk7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiB7XG4gICAgICBAaW5jbHVkZSBfY2FsZW5kYXItY29sb3IoJHRoZW1lLCB3YXJuKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWRhdGVwaWNrZXItdG9nZ2xlLWFjdGl2ZSB7XG4gICAgJi5tYXQtYWNjZW50IHtcbiAgICAgICRhY2NlbnQtdG9rZW5zOlxuICAgICAgICB0b2tlbnMtbWF0LWRhdGVwaWNrZXIucHJpdmF0ZS1nZXQtdG9nZ2xlLWNvbG9yLXBhbGV0dGUtY29sb3ItdG9rZW5zKCR0aGVtZSwgYWNjZW50KTtcbiAgICAgIEBpbmNsdWRlIHRva2VuLXV0aWxzLmNyZWF0ZS10b2tlbi12YWx1ZXModG9rZW5zLW1hdC1kYXRlcGlja2VyLiRwcmVmaXgsICRhY2NlbnQtdG9rZW5zKTtcbiAgICB9XG5cbiAgICAmLm1hdC13YXJuIHtcbiAgICAgICR3YXJuLXRva2VuczpcbiAgICAgICAgdG9rZW5zLW1hdC1kYXRlcGlja2VyLnByaXZhdGUtZ2V0LXRvZ2dsZS1jb2xvci1wYWxldHRlLWNvbG9yLXRva2VucygkdGhlbWUsIHdhcm4pO1xuICAgICAgQGluY2x1ZGUgdG9rZW4tdXRpbHMuY3JlYXRlLXRva2VuLXZhbHVlcyh0b2tlbnMtbWF0LWRhdGVwaWNrZXIuJHByZWZpeCwgJHdhcm4tdG9rZW5zKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHR5cG9ncmFwaHkoJHRoZW1lKSB7XG4gIEBpbmNsdWRlIHNhc3MtdXRpbHMuY3VycmVudC1zZWxlY3Rvci1vci1yb290KCkge1xuICAgIEBpbmNsdWRlIHRva2VuLXV0aWxzLmNyZWF0ZS10b2tlbi12YWx1ZXModG9rZW5zLW1hdC1kYXRlcGlja2VyLiRwcmVmaXgsXG4gICAgICB0b2tlbnMtbWF0LWRhdGVwaWNrZXIuZ2V0LXR5cG9ncmFwaHktdG9rZW5zKCR0aGVtZSkpO1xuICB9XG59XG5cbkBtaXhpbiBkYXRlLXJhbmdlLWNvbG9ycyhcbiAgJHJhbmdlLWNvbG9yLFxuICAkY29tcGFyaXNvbi1jb2xvcjogdG9rZW5zLW1hdC1kYXRlcGlja2VyLiRwcml2YXRlLWRlZmF1bHQtY29tcGFyaXNvbi1jb2xvcixcbiAgJG92ZXJsYXAtY29sb3I6IHRva2Vucy1tYXQtZGF0ZXBpY2tlci4kcHJpdmF0ZS1kZWZhdWx0LW92ZXJsYXAtY29sb3IsXG4gICRvdmVybGFwLXNlbGVjdGVkLWNvbG9yOlxuICAgIHRva2Vucy1tYXQtZGF0ZXBpY2tlci5wcml2YXRlLWdldC1kZWZhdWx0LW92ZXJsYXAtc2VsZWN0ZWQtY29sb3IoJG92ZXJsYXAtY29sb3IpKSB7XG4gICR0b2tlbnM6IHRva2Vucy1tYXQtZGF0ZXBpY2tlci5nZXQtcmFuZ2UtY29sb3ItdG9rZW5zKFxuICAgICRyYW5nZS1jb2xvcjogJHJhbmdlLWNvbG9yLFxuICAgICRjb21wYXJpc29uLWNvbG9yOiAkY29tcGFyaXNvbi1jb2xvcixcbiAgICAkb3ZlcmxhcC1jb2xvcjogJG92ZXJsYXAtY29sb3IsXG4gICAgJG92ZXJsYXAtc2VsZWN0ZWQtY29sb3I6ICRvdmVybGFwLXNlbGVjdGVkLWNvbG9yLFxuICApO1xuXG4gIEBpbmNsdWRlIHNhc3MtdXRpbHMuY3VycmVudC1zZWxlY3Rvci1vci1yb290KCkge1xuICAgIEBpbmNsdWRlIHRva2VuLXV0aWxzLmNyZWF0ZS10b2tlbi12YWx1ZXModG9rZW5zLW1hdC1kYXRlcGlja2VyLiRwcmVmaXgsICR0b2tlbnMpO1xuICB9XG59XG5cbkBtaXhpbiBkZW5zaXR5KCR0aGVtZSkge1xuICAvLyBUT0RPKGNyaXNiZXRvKTogbW92ZSB0aGlzIGludG8gdGhlIHN0cnVjdHVyYWwgc3R5bGVzXG4gIC8vIG9uY2UgdGhlIGljb24gYnV0dG9uIGRlbnNpdHkgaXMgc3dpdGNoZWQgdG8gdG9rZW5zLlxuXG4gIC8vIFJlZ2FyZGxlc3Mgb2YgdGhlIHVzZXItcGFzc2VkIGRlbnNpdHksIHdlIHdhbnQgdGhlIGNhbGVuZGFyXG4gIC8vIHByZXZpb3VzL25leHQgYnV0dG9ucyB0byByZW1haW4gYXQgZGVuc2l0eSAtMlxuICAubWF0LWNhbGVuZGFyLWNvbnRyb2xzIHtcbiAgICBAaW5jbHVkZSBpY29uLWJ1dHRvbi10aGVtZS5kZW5zaXR5KC0yKTtcbiAgfVxufVxuXG5AbWl4aW4gdGhlbWUoJHRoZW1lKSB7XG4gIEBpbmNsdWRlIHRoZW1pbmcucHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1kYXRlcGlja2VyJykge1xuICAgIEBpZiBpbnNwZWN0aW9uLnRoZW1lLWhhcygkdGhlbWUsIGNvbG9yKSB7XG4gICAgICBAaW5jbHVkZSBjb2xvcigkdGhlbWUpO1xuICAgIH1cbiAgICBAaWYgaW5zcGVjdGlvbi50aGVtZS1oYXMoJHRoZW1lLCBkZW5zaXR5KSB7XG4gICAgICBAaW5jbHVkZSBkZW5zaXR5KCR0aGVtZSk7XG4gICAgfVxuICAgIEBpZiBpbnNwZWN0aW9uLnRoZW1lLWhhcygkdGhlbWUsIHR5cG9ncmFwaHkpIHtcbiAgICAgIEBpbmNsdWRlIHR5cG9ncmFwaHkoJHRoZW1lKTtcbiAgICB9XG4gIH1cbn1cbiIsIkB1c2UgJ3Nhc3M6bWF0aCc7XG5AdXNlICdAbWF0ZXJpYWwvZGVuc2l0eS9mdW5jdGlvbnMnIGFzIG1kYy1kZW5zaXR5LWZ1bmN0aW9ucztcbkB1c2UgJ0BtYXRlcmlhbC9pY29uLWJ1dHRvbi9pY29uLWJ1dHRvbi10aGVtZScgYXMgbWRjLWljb24tYnV0dG9uLXRoZW1lO1xuQHVzZSAnQG1hdGVyaWFsL3RoZW1lL3RoZW1lLWNvbG9yJyBhcyBtZGMtdGhlbWUtY29sb3I7XG5AdXNlICcuLi9jb3JlL3Rva2Vucy9tMi9tZGMvaWNvbi1idXR0b24nIGFzIHRva2Vucy1tZGMtaWNvbi1idXR0b247XG5cbkB1c2UgJy4vYnV0dG9uLXRoZW1lLXByaXZhdGUnO1xuQHVzZSAnLi4vY29yZS90aGVtaW5nL3RoZW1pbmcnO1xuQHVzZSAnLi4vY29yZS90aGVtaW5nL2luc3BlY3Rpb24nO1xuXG4kX2ljb24tc2l6ZTogMjRweDtcblxuQG1peGluIF9yaXBwbGUtY29sb3IoJGNvbG9yKSB7XG4gIC0tbWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGUtY29sb3I6ICN7JGNvbG9yfTtcbiAgLS1tYXQtbWRjLWJ1dHRvbi1yaXBwbGUtY29sb3I6ICN7cmdiYSgkY29sb3IsIDAuMSl9O1xufVxuXG5AZnVuY3Rpb24gX3ZhcmlhYmxlLXNhZmUtY29udHJhc3QtdG9uZSgkdmFsdWUsICRpcy1kYXJrKSB7XG4gIEBpZiAoJHZhbHVlID09ICdkYXJrJyBvciAkdmFsdWUgPT0gJ2xpZ2h0JyBvciB0eXBlLW9mKCR2YWx1ZSkgPT0gJ2NvbG9yJykge1xuICAgIEByZXR1cm4gbWRjLXRoZW1lLWNvbG9yLmNvbnRyYXN0LXRvbmUoJHZhbHVlKTtcbiAgfVxuXG4gIEByZXR1cm4gaWYoJGlzLWRhcmssICdsaWdodCcsICdkYXJrJyk7XG59XG5cbkBtaXhpbiBjb2xvcigkdGhlbWUpIHtcbiAgJGNvbG9yLXRva2VuczogdG9rZW5zLW1kYy1pY29uLWJ1dHRvbi5nZXQtY29sb3ItdG9rZW5zKCR0aGVtZSk7XG4gICRzdXJmYWNlOiBpbnNwZWN0aW9uLmdldC10aGVtZS1jb2xvcigkdGhlbWUsIGJhY2tncm91bmQsIGNhcmQpO1xuICAkaXMtZGFyazogaW5zcGVjdGlvbi5nZXQtdGhlbWUtdHlwZSgkdGhlbWUpID09IGRhcms7XG4gICRvbi1zdXJmYWNlOiBpZihfdmFyaWFibGUtc2FmZS1jb250cmFzdC10b25lKCRzdXJmYWNlLCAkaXMtZGFyaykgPT0gJ2RhcmsnLCAjMDAwLCAjZmZmKTtcblxuICAubWF0LW1kYy1pY29uLWJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLXRoZW1lLXByaXZhdGUucmlwcGxlLXRoZW1lLXN0eWxlcygkdGhlbWUsIGZhbHNlKTtcbiAgICBAaW5jbHVkZSBtZGMtaWNvbi1idXR0b24tdGhlbWUudGhlbWUoJGNvbG9yLXRva2Vucyk7XG4gICAgQGluY2x1ZGUgX3JpcHBsZS1jb2xvcigkb24tc3VyZmFjZSk7XG5cbiAgICAmLm1hdC1wcmltYXJ5IHtcbiAgICAgICRjb2xvcjogaW5zcGVjdGlvbi5nZXQtdGhlbWUtY29sb3IoJHRoZW1lLCBwcmltYXJ5KTtcbiAgICAgIEBpbmNsdWRlIG1kYy1pY29uLWJ1dHRvbi10aGVtZS50aGVtZSgoaWNvbi1jb2xvcjogJGNvbG9yKSk7XG4gICAgICBAaW5jbHVkZSBfcmlwcGxlLWNvbG9yKCRjb2xvcik7XG4gICAgfVxuXG4gICAgJi5tYXQtYWNjZW50IHtcbiAgICAgICRjb2xvcjogaW5zcGVjdGlvbi5nZXQtdGhlbWUtY29sb3IoJHRoZW1lLCBhY2NlbnQpO1xuICAgICAgQGluY2x1ZGUgbWRjLWljb24tYnV0dG9uLXRoZW1lLnRoZW1lKChpY29uLWNvbG9yOiAkY29sb3IpKTtcbiAgICAgIEBpbmNsdWRlIF9yaXBwbGUtY29sb3IoJGNvbG9yKTtcbiAgICB9XG5cbiAgICAmLm1hdC13YXJuIHtcbiAgICAgICRjb2xvcjogaW5zcGVjdGlvbi5nZXQtdGhlbWUtY29sb3IoJHRoZW1lLCB3YXJuKTtcbiAgICAgIEBpbmNsdWRlIG1kYy1pY29uLWJ1dHRvbi10aGVtZS50aGVtZSgoaWNvbi1jb2xvcjogJGNvbG9yKSk7XG4gICAgICBAaW5jbHVkZSBfcmlwcGxlLWNvbG9yKCRjb2xvcik7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnV0dG9uLXRoZW1lLXByaXZhdGUuYXBwbHktZGlzYWJsZWQtc3R5bGUoKSB7XG4gICAgICAkZGlzYWJsZWQtY29sb3I6IHJnYmEoJG9uLXN1cmZhY2UsIGlmKCRpcy1kYXJrLCAwLjUsIDAuMzgpKTtcbiAgICAgIEBpbmNsdWRlIG1kYy1pY29uLWJ1dHRvbi10aGVtZS50aGVtZSgoXG4gICAgICAgIGljb24tY29sb3I6ICRkaXNhYmxlZC1jb2xvcixcbiAgICAgICAgZGlzYWJsZWQtaWNvbi1jb2xvcjogJGRpc2FibGVkLWNvbG9yLFxuICAgICAgKSk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiB0eXBvZ3JhcGh5KCR0aGVtZSkge1xufVxuXG5AbWl4aW4gZGVuc2l0eSgkdGhlbWUpIHtcbiAgJGRlbnNpdHktc2NhbGU6IGluc3BlY3Rpb24uZ2V0LXRoZW1lLWRlbnNpdHkoJHRoZW1lKTtcbiAgLy8gTWFudWFsbHkgYXBwbHkgdGhlIGV4cGVjdGVkIGRlbnNpdHkgdGhlbWluZywgYW5kIGluY2x1ZGUgdGhlIHBhZGRpbmdcbiAgLy8gYXMgaXQgd2FzIGFwcGxpZWQgYmVmb3JlXG4gICRjYWxjdWxhdGVkLXNpemU6IG1kYy1kZW5zaXR5LWZ1bmN0aW9ucy5wcm9wLXZhbHVlKFxuICAgICRkZW5zaXR5LWNvbmZpZzogKFxuICAgICAgc2l6ZTogKFxuICAgICAgICBkZWZhdWx0OiA0OHB4LFxuICAgICAgICBtYXhpbXVtOiA0OHB4LFxuICAgICAgICBtaW5pbXVtOiAyOHB4LFxuICAgICAgKSxcbiAgICApLFxuICAgICRkZW5zaXR5LXNjYWxlOiAkZGVuc2l0eS1zY2FsZSxcbiAgICAkcHJvcGVydHktbmFtZTogc2l6ZSxcbiAgKTtcblxuICAvLyBVc2UgYG1hdC1tZGMtYnV0dG9uLWJhc2VgIHRvIGluY3JlYXNlIHRoZSBzcGVjaWZpY2l0eSBvdmVyIHRoZSBidXR0b24ncyBzdHJ1Y3R1cmFsIHN0eWxlcy5cbiAgLm1hdC1tZGMtaWNvbi1idXR0b24ubWF0LW1kYy1idXR0b24tYmFzZSB7XG4gICAgLy8gTWF0Y2ggdGhlIHN0eWxlcyB0aGF0IHVzZWQgdG8gYmUgcHJlc2VudC4gVGhpcyBpcyBuZWNlc3NhcnkgZm9yIGJhY2t3YXJkc1xuICAgIC8vIGNvbXBhdCB0byBtYXRjaCB0aGUgcHJldmlvdXMgaW1wbGVtZW50YXRpb25zIHNlbGVjdG9yIGNvdW50ICh0d28gY2xhc3NlcykuXG4gICAgQGluY2x1ZGUgbWRjLWljb24tYnV0dG9uLXRoZW1lLnRoZW1lKChcbiAgICAgIHN0YXRlLWxheWVyLXNpemU6ICRjYWxjdWxhdGVkLXNpemUsXG4gICAgKSk7XG5cbiAgICAvLyBUT0RPOiBTd2l0Y2ggY2FsY3VsYXRlZC1zaXplIHRvIFwidmFyKC0tbWRjLWljb24tYnV0dG9uLXN0YXRlLWxheWVyLXNpemUpXCJcbiAgICAvLyBDdXJyZW50bHkgZmFpbHMgdmFsaWRhdGlvbiBiZWNhdXNlIHRoZSB2YXJpYWJsZSBpcyBcInVuZGVmaW5lZFwiXG4gICAgLy8gaW4gdGhlIHNhc3Mgc3RhY2suXG4gICAgLy8gVE9ETzogU3dpdGNoIGljb24tc2l6ZSB0byBcInZhcigtLW1kYy1pY29uLWJ1dHRvbi1pY29uLXNpemUpXCIuIEN1cnJlbnRseVxuICAgIC8vIGZhaWxzIHZhbGlkYXRpb24gYmVjYXVzZSB0aGUgdmFyaWFibGUgaXMgXCJ1bmRlZmluZWRcIiBpbiB0aGUgc2FzcyBzdGFjay5cbiAgICB3aWR0aDogdmFyKC0tbWRjLWljb24tYnV0dG9uLXN0YXRlLWxheWVyLXNpemUpO1xuICAgIGhlaWdodDogdmFyKC0tbWRjLWljb24tYnV0dG9uLXN0YXRlLWxheWVyLXNpemUpO1xuICAgIHBhZGRpbmc6IG1hdGguZGl2KCRjYWxjdWxhdGVkLXNpemUgLSAkX2ljb24tc2l6ZSwgMik7XG5cbiAgICBAaW5jbHVkZSBidXR0b24tdGhlbWUtcHJpdmF0ZS50b3VjaC10YXJnZXQtZGVuc2l0eSgkZGVuc2l0eS1zY2FsZSk7XG4gIH1cbn1cblxuQG1peGluIHRoZW1lKCR0aGVtZSkge1xuICBAaW5jbHVkZSB0aGVtaW5nLnByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtaWNvbi1idXR0b24nKSB7XG4gICAgQGlmIGluc3BlY3Rpb24udGhlbWUtaGFzKCR0aGVtZSwgY29sb3IpIHtcbiAgICAgIEBpbmNsdWRlIGNvbG9yKCR0aGVtZSk7XG4gICAgfVxuICAgIEBpZiBpbnNwZWN0aW9uLnRoZW1lLWhhcygkdGhlbWUsIGRlbnNpdHkpIHtcbiAgICAgIEBpbmNsdWRlIGRlbnNpdHkoJHRoZW1lKTtcbiAgICB9XG4gICAgQGlmIGluc3BlY3Rpb24udGhlbWUtaGFzKCR0aGVtZSwgdHlwb2dyYXBoeSkge1xuICAgICAgQGluY2x1ZGUgdHlwb2dyYXBoeSgkdGhlbWUpO1xuICAgIH1cbiAgfVxufVxuIiwiQHVzZSAnc2FzczptYXAnO1xuQHVzZSAnQG1hdGVyaWFsL3JpcHBsZS9yaXBwbGUtdGhlbWUnIGFzIG1kYy1yaXBwbGUtdGhlbWU7XG5AdXNlICdAbWF0ZXJpYWwvdGhlbWUvdGhlbWUtY29sb3InIGFzIG1kYy10aGVtZS1jb2xvcjtcblxuQHVzZSAnLi4vY29yZS9tZGMtaGVscGVycy9tZGMtaGVscGVycyc7XG5AdXNlICcuLi9jb3JlL3RoZW1pbmcvaW5zcGVjdGlvbic7XG5cbkBtaXhpbiBfcmlwcGxlLWNvbG9yKCRjb2xvcikge1xuICAtLW1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlLWNvbG9yOiAjeyRjb2xvcn07XG4gIC0tbWF0LW1kYy1idXR0b24tcmlwcGxlLWNvbG9yOiAje3JnYmEoJGNvbG9yLCAwLjEpfTtcbn1cblxuQG1peGluIHJpcHBsZS10aGVtZS1zdHlsZXMoJHRoZW1lLCAkaXMtZmlsbGVkKSB7XG4gICRvcGFjaXRpZXM6IGlmKGluc3BlY3Rpb24uZ2V0LXRoZW1lLXR5cGUoJHRoZW1lKSA9PSBkYXJrLFxuICAgIG1kYy1yaXBwbGUtdGhlbWUuJGxpZ2h0LWluay1vcGFjaXRpZXMsIG1kYy1yaXBwbGUtdGhlbWUuJGRhcmstaW5rLW9wYWNpdGllcyk7XG5cbiAgLy8gSWRlYWxseSB0aGVzZSBzdHlsZXMgd291bGQgYmUgc3RydWN0dXJhbCwgYnV0IE1EQyBiYXNlcyBzb21lIG9mIHRoZSBvcGFjaXRpZXMgb24gdGhlIHRoZW1lLlxuICAmOmhvdmVyIC5tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZTo6YmVmb3JlIHtcbiAgICBvcGFjaXR5OiBtYXAuZ2V0KCRvcGFjaXRpZXMsIGhvdmVyKTtcbiAgfVxuXG4gICYuY2RrLXByb2dyYW0tZm9jdXNlZCxcbiAgJi5jZGsta2V5Ym9hcmQtZm9jdXNlZCB7XG4gICAgLm1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlOjpiZWZvcmUge1xuICAgICAgb3BhY2l0eTogbWFwLmdldCgkb3BhY2l0aWVzLCBmb2N1cyk7XG4gICAgfVxuICB9XG5cbiAgJjphY3RpdmUgLm1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlOjpiZWZvcmUge1xuICAgIG9wYWNpdHk6IG1hcC5nZXQoJG9wYWNpdGllcywgcHJlc3MpO1xuICB9XG5cbiAgQGluY2x1ZGUgX3JpcHBsZS1jb2xvcihtZGMtdGhlbWUtY29sb3IucHJvcC12YWx1ZShvbi1zdXJmYWNlKSk7XG5cbiAgJi5tYXQtcHJpbWFyeSB7XG4gICAgQGluY2x1ZGUgX3JpcHBsZS1jb2xvcihtZGMtdGhlbWUtY29sb3IucHJvcC12YWx1ZShpZigkaXMtZmlsbGVkLCBvbi1wcmltYXJ5LCBwcmltYXJ5KSkpO1xuICB9XG5cbiAgJi5tYXQtYWNjZW50IHtcbiAgICBAaW5jbHVkZSBfcmlwcGxlLWNvbG9yKG1kYy10aGVtZS1jb2xvci5wcm9wLXZhbHVlKGlmKCRpcy1maWxsZWQsIG9uLXNlY29uZGFyeSwgc2Vjb25kYXJ5KSkpO1xuICB9XG5cbiAgJi5tYXQtd2FybiB7XG4gICAgQGluY2x1ZGUgX3JpcHBsZS1jb2xvcihtZGMtdGhlbWUtY29sb3IucHJvcC12YWx1ZShpZigkaXMtZmlsbGVkLCBvbi1lcnJvciwgZXJyb3IpKSk7XG4gIH1cbn1cblxuLy8gV3JhcHMgdGhlIGNvbnRlbnQgc3R5bGUgaW4gYSBzZWxlY3RvciBmb3IgdGhlIGRpc2FibGVkIHN0YXRlLlxuLy8gTURDIGFkZHMgdGhlbWUgY29sb3IgYnkgdXNpbmcgOm5vdCg6ZGlzYWJsZWQpLCBzbyBqdXN0IHVzaW5nIFtkaXNhYmxlZF0gb25jZSB3aWxsIG5vdFxuLy8gb3ZlcnJpZGUgdGhpcywgbmVpdGhlciB3aWxsIGl0IGFwcGx5IHRvIGFuY2hvciB0YWdzLiBUaGlzIG5lZWRzIHRvIG92ZXJyaWRlIHRoZVxuLy8gcHJldmlvdXNseSBzZXQgdGhlbWUgY29sb3IsIHNvIGl0IG11c3QgYmUgb3JkZXJlZCBhZnRlciB0aGUgdGhlbWUgc3R5bGVzLlxuLy8gVE9ETyhhbmRyZXdzZWd1aW4pOiBEaXNjdXNzIHdpdGggdGhlIE1EQyB0ZWFtIHRvIHNlZSBpZiB3ZSBjYW4gYXZvaWQgdGhlIDpub3QoOmRpc2FibGVkKSBieVxuLy8gbWFudWFsbHkgc3R5bGluZyBkaXNhYmxlZCBidXR0b25zIHdpdGggYSBbZGlzYWJsZWRdIHNlbGVjdG9yLlxuQG1peGluIGFwcGx5LWRpc2FibGVkLXN0eWxlKCkge1xuICAmW2Rpc2FibGVkXVtkaXNhYmxlZF0ge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIEhpZGVzIHRoZSB0b3VjaCB0YXJnZXQgb24gbG93ZXIgZGVuc2l0aWVzLlxuQG1peGluIHRvdWNoLXRhcmdldC1kZW5zaXR5KCRzY2FsZSkge1xuICBAaW5jbHVkZSBtZGMtaGVscGVycy5pZi10b3VjaC10YXJnZXRzLXVuc3VwcG9ydGVkKCRzY2FsZSkge1xuICAgIC5tYXQtbWRjLWJ1dHRvbi10b3VjaC10YXJnZXQge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbn1cbiIsIi5tYXQtY2FsZW5kYXIge1xuICAgIGZvbnQtc2l6ZTogc21hbGwgIWltcG9ydGFudDtcbiAgICBmb250LWZhbWlseTogdihldWktYmFzZS1mb250LWZhbWlseSkgIWltcG9ydGFudDtcblxuICAgICYubWF0LWNhbGVuZGFyLXllYXIge1xuICAgICAgICAubWF0LWNhbGVuZGFyLXBlcmlvZC1idXR0b24ge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8vIE1BVEVSSUFMIERyYWcgJiBEcm9wIG92ZXJyaWRlc1xuLmNkay1kcmFnLWhhbmRsZSB7XG4gICAgY3Vyc29yOiBtb3ZlICFpbXBvcnRhbnQ7XG59XG5cbi5jZGstZHJvcC1saXN0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG1pbi13aWR0aDogMTAwJTtcblxuICAgICY6bm90KC5jZGstZHJvcC1saXN0LWRpc2FibGVkKSB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IHYoZXVpLWJhc2Utc3BhY2luZy14bCk7XG4gICAgfVxufVxuXG4vLyBBbmltYXRlIGl0ZW1zIGFzIHRoZXkncmUgYmVpbmcgc29ydGVkXG4uY2RrLWRyb3AtbGlzdC1kcmFnZ2luZyAuY2RrLWRyYWcge1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAyNTBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTtcbn1cblxuLy8gQW5pbWF0ZSBhbiBpdGVtIHRoYXQgaGFzIGJlZW4gZHJvcHBlZFxuLmNkay1kcmFnLWFuaW1hdGluZyB7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDMwMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO1xufVxuXG4vLyBHcmFiYmVkIGVsZW1lbnRcbi5jZGstZHJhZy1wcmV2aWV3IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgIC8vIHYoZXVpLWJhc2UtY29sb3Itd2hpdGUpO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgY3Vyc29yOiBncmFiICFpbXBvcnRhbnQ7XG4gICAgZGlzcGxheTogdGFibGU7ICAgICAvLyB0cmljayB0byBnZXQgdGhlIGZ1bGwgcm93IHdpZHRoXG4gICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgb3BhY2l0eTogMTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5jZGstZHJhZy1kcmFnZ2luZyB7XG4gICAgb3BhY2l0eTogMTtcbn1cblxuLmNkay1kcmFnLXBsYWNlaG9sZGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBvcGFjaXR5OiAwLjM1O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIG91dGxpbmU6IDJweCBkYXNoZWQgdihldWktYmFzZS1jb2xvci1ncmV5LTM1KTtcbiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDJweDtcbiAgICB9XG59XG4iLCIvLyBEaXNhYmxlIGdsb2JhbCBzY3JvbGxiYXJzICh1c2VkIGluIGZ1bGwgc2NyZWVuIGV1aS1kaWFsb2cgZm9yIGV4YW1wbGUpXG4uY2RrLWdsb2JhbC1zY3JvbGxibG9jayB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIG92ZXJmbG93LXk6IHZpc2libGU7ICAgICAvLyBNYXRlcmlhbCBkZWZhdWx0OiBzY3JvbGxcbiAgICB3aWR0aDogMTAwJTtcbiAgICBAaW5jbHVkZSBldWktc2Nyb2xsYmFycztcbiAgICBsZWZ0OiAwICFpbXBvcnRhbnQ7XG59XG5AaW5jbHVkZSBtZWRpYSgkZXVpLWJrcC1tb2JpbGUpIHtcbiAgICAuY2RrLWdsb2JhbC1zY3JvbGxibG9jayB7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIEBpbmNsdWRlIGV1aS1zY3JvbGxiYXJzO1xuICAgIH1cbn1cbiIsIkBtaXhpbiBldWktc2Nyb2xsYmFycyggJHNpemU6IDhweCwgJGZvcmVncm91bmQtY29sb3I6IHYoZXVpLWJhc2UtY29sb3ItZ3JleS0yMCksICRiYWNrZ3JvdW5kLWNvbG9yOiB2KGV1aS1iYXNlLWNvbG9yLWdyZXktNSksICRib3JkZXItcmFkaXVzOiA1cmVtLCAkc3RhdGU6IGFjdGl2ZSApIHtcbiAgICAmOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgICAgIGRpc3BsYXk6IGluaGVyaXQ7XG4gICAgICAgIGhlaWdodDogJHNpemU7ICAgICAgLy8gaG9yaXpvbnRhbCBzY3JvbGxcbiAgICAgICAgd2lkdGg6ICRzaXplOyAgICAgICAvLyB2ZXJ0aWNhbCBzY3JvbGxcbiAgICAgICAgLy8gei1pbmRleDogdihldWktYmFzZS16LWluZGV4LWhpZ2hsaWdodGVkKTsgICAgICAgIC8vIHNob3VsZCBiZSB3aGVuIGluIGVkaXRpb24gbW9kZVxuICAgICAgICBAaWYgKCRzdGF0ZSA9PSBhY3RpdmUpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgICB9XG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gVGhpcyBpcyB0aGUgc2Nyb2xsaW5nIGJhclxuICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICAgICAgQGlmICgkc3RhdGUgPT0gYWN0aXZlKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2KGV1aS1iYXNlLWNvbG9yLWdyZXktMzUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gVGhpcyBpcyB0aGUgc2Nyb2xsIGNvbnRhaW5lclxuICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgICAgICAgQGlmICgkc3RhdGUgPT0gYWN0aXZlKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5AbWl4aW4gZXVpLXNjcm9sbGJhcnMtaW5hY3RpdmUoJHNpemU6IDhweCkge1xuICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGRpc3BsYXk6IGluaGVyaXQ7XG4gICAgICAgIGhlaWdodDogJHNpemU7ICAgICAgLy8gaG9yaXpvbnRhbCBzY3JvbGxcbiAgICAgICAgd2lkdGg6ICRzaXplOyAgICAgICAvLyB2ZXJ0aWNhbCBzY3JvbGxcbiAgICB9XG5cbiAgICAmOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIH1cblxuICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgfVxufVxuIiwiJGRlZmF1bHQtZmVhdHVyZTogXCJtaW4td2lkdGhcIjtcbkBtaXhpbiBtZWRpYSgkcXVlcnk6ICRmZWF0dXJlICR2YWx1ZSAkY29sdW1ucykge1xuICAgIEBpZiBsZW5ndGgoJHF1ZXJ5KSA9PSAxIHtcbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKCRkZWZhdWx0LWZlYXR1cmU6IG50aCgkcXVlcnksIDEpKSB7XG4gICAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAgICRsb29wLXRvOiBsZW5ndGgoJHF1ZXJ5KTtcbiAgICAgICAgJG1lZGlhLXF1ZXJ5OiBcInNjcmVlbiBhbmQgXCI7XG4gICAgICAgIEBpZiBpcy1ub3QoaXMtZXZlbihsZW5ndGgoJHF1ZXJ5KSkpIHtcbiAgICAgICAgICAgICRsb29wLXRvOiAkbG9vcC10byAtIDE7XG4gICAgICAgIH1cbiAgICAgICAgJGk6IDE7XG4gICAgICAgIEB3aGlsZSAkaSA8PSRsb29wLXRvIHtcbiAgICAgICAgICAgICRtZWRpYS1xdWVyeTogJG1lZGlhLXF1ZXJ5ICsgXCIoXCIgKyBudGgoJHF1ZXJ5LCAkaSkgKyBcIjogXCIgKyBudGgoJHF1ZXJ5LCAkaSArIDEpICsgXCIpIFwiO1xuICAgICAgICAgICAgQGlmICgkaSArIDEpICE9ICRsb29wLXRvIHtcbiAgICAgICAgICAgICAgICAkbWVkaWEtcXVlcnk6ICRtZWRpYS1xdWVyeSArIFwiYW5kIFwiO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJGk6ICRpKzI7XG4gICAgICAgIH1cbiAgICAgICAgQG1lZGlhICN7JG1lZGlhLXF1ZXJ5fSB7XG4gICAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi5jZGstb3ZlcmxheS1jb250YWluZXIge1xuICAgIHotaW5kZXg6IHYoZXVpLWJhc2Utei1pbmRleC1jZGstb3ZlcmxheS1jb250YWluZXIpOyAgIC8vIE1EOiAxMDAwXG5cbiAgICAubWF0LW1lbnUtcGFuZWwge1xuICAgICAgICBtYXgtd2lkdGg6IGluaGVyaXQ7XG4gICAgICAgIG1pbi1oZWlnaHQ6IHYoZXVpLWJhc2Utc3BhY2luZy1sKTtcbiAgICAgICAgQGluY2x1ZGUgZXVpLXNjcm9sbGJhcnM7XG4gICAgfVxuXG4gICAgLm1hdC1hdXRvY29tcGxldGUtcGFuZWwge1xuICAgICAgICBAaW5jbHVkZSBldWktc2Nyb2xsYmFycztcbiAgICB9XG59XG4iLCJAaW5jbHVkZSBtZWRpYSgkZXVpLWJrcC1tb2JpbGUpIHtcbiAgICAuY2RrLW92ZXJsYXktY29udGFpbmVyIHtcbiAgICAgICAgaGVpZ2h0OiAxMDB2aDsgIC8vIEZhbGxiYWNrXG4gICAgICAgIGhlaWdodDogY2FsYyh2YXIoLS1ldWktYXBwLXZoLCAxdmgpICogMTAwKTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHdpZHRoOiAxMDB2dztcbiAgICB9XG59XG4iLCIuY2RrLW92ZXJsYXktcGFuZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdihldWktYmFzZS1jb2xvci13aGl0ZSk7XG4gICAgei1pbmRleDogdihldWktYmFzZS16LWluZGV4LWNkay1vdmVybGF5LXBhbmUpOyAgLy8gRHluYW1pY2FsbHkgY2hhbmdlcyBiYXNlZCBvbiBDREsgY29udGV4dFxufVxuIiwiLy8gVE9ETyB2MTcgLSBleHRyYWN0IGRpcmVjdGl2ZSBib3VuZCBzdHlsaW5nIHRvIGdsb2JhbCBwYXJ0aWN1bGFyIHN0cnVjdHVyZSBoZXJlIHRvIGJlIHJlY29uZ25pemFibGUgYW5kIGtlcHRcblxuLmV1aS1pbnB1dC1tYXhsZW5ndGgtd3JhcHBlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgLmV1aS1pbnB1dC1tYXhsZW5ndGgge1xuICAgICAgICBAaW5jbHVkZSBldWktZm9udCh4cywgdWkpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2KGV1aS1iYXNlLWNvbG9yLWdyZXktMTApO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2KGV1aS1iYXNlLWNvbG9yLWdyZXktNTApO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2KGV1aS1iYXNlLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICBjb2xvcjogdihldWktYmFzZS1jb2xvci1ncmV5LTEwMCk7XG4gICAgICAgIHBhZGRpbmc6IDAgdihldWktYmFzZS1zcGFjaW5nLTJ4cyk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IGNhbGMoLTEgKiAje3YoZXVpLWJhc2Utc3BhY2luZy14cyl9KTtcbiAgICAgICAgdG9wOiBjYWxjKC0xICogI3t2KGV1aS1iYXNlLXNwYWNpbmcteHMpfSk7XG4gICAgICAgIHotaW5kZXg6IHYoZXVpLWJhc2Utei1pbmRleC1pbnB1dC1tYXhsZW5ndGgpO1xuXG4gICAgICAgICYtLWludmFsaWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdihldWktYmFzZS1jb2xvci13YXJuaW5nLTEwMCk7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHYoZXVpLWJhc2UtY29sb3Itd2FybmluZy0xMDApO1xuICAgICAgICAgICAgY29sb3I6IHYoZXVpLWJhc2UtY29sb3Itd2hpdGUpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiQG1peGluIGV1aS1mb250KCRzaXplOiBtLCAkZmFtaWx5OiB1aSkge1xuICAgICRzZWxlY3RlZC1mYW1pbHk6IG1hcC1nZXQoJGV1aS1iYXNlLXRva2Vucy1mb250cywgJGZhbWlseSk7XG4gICAgJHNlbGVjdGVkLWZvbnQtZGVmaW5pdGlvbjogbWFwLWdldCgkc2VsZWN0ZWQtZmFtaWx5LCAkc2l6ZSk7XG5cbiAgICBmb250OiAkc2VsZWN0ZWQtZm9udC1kZWZpbml0aW9uO1xufVxuIiwiaHRtbCB7XG4gICAgLy8gRXhwb3NlZCBDU1MgdmFyc1xuICAgIC0tZXVpLWh0bWwtZm9udC1zaXplOiB2YXIoLS1ldWktYmFzZS1mb250LXNpemUpO1xuICAgIC0tZXVpLWh0bWwtbGluZS1oZWlnaHQ6IHZhcigtLWV1aS1iYXNlLWxpbmUtaGVpZ2h0KTtcblxuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBmb250LXNpemU6IHYoZXVpLWh0bWwtZm9udC1zaXplKTtcbiAgICBsaW5lLWhlaWdodDogdihldWktaHRtbC1saW5lLWhlaWdodCk7XG59XG4iLCJib2R5IHtcbiAgICAvLyBFeHBvc2VkIENTUyB2YXJzXG4gICAgLS1ldWktYm9keS1iZy1jb2xvcjogdmFyKC0tZXVpLWFwcC1ib2R5LWJnLWNvbG9yKTtcbiAgICAtLWV1aS1ib2R5LWNvbG9yOiB2YXIoLS1ldWktYmFzZS1jb2xvcik7XG4gICAgLS1ldWktYm9keS1mb250LWZhbWlseTogdmFyKC0tZXVpLWJhc2UtZm9udC1mYW1pbHkpO1xuICAgIC0tZXVpLWJvZHktZm9udC1zaXplOiB2YXIoLS1ldWktYmFzZS1mb250LXNpemUpO1xuICAgIC0tZXVpLWJvZHktbGluZS1oZWlnaHQ6IHZhcigtLWV1aS1iYXNlLWxpbmUtaGVpZ2h0KTtcblxuICAgIGJhY2tncm91bmQtY29sb3I6IHYoZXVpLWJvZHktYmctY29sb3IpO1xuICAgIGNvbG9yOiB2KGV1aS1ib2R5LWNvbG9yKTtcbiAgICBmb250LWZhbWlseTogdihldWktYm9keS1mb250LWZhbWlseSk7XG4gICAgZm9udC1mZWF0dXJlLXNldHRpbmdzOiAnbGlnYSc7XG4gICAgZm9udC1zaXplOiB2KGV1aS1ib2R5LWZvbnQtc2l6ZSk7XG4gICAgLW1vei1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGxpbmUtaGVpZ2h0OiB2KGV1aS1ib2R5LWxpbmUtaGVpZ2h0KTtcbiAgICBtYXJnaW46IDA7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xufVxuIiwiLy8gTWFrZSB2aWV3cG9ydCByZXNwb25zaXZlXG4vL1xuLy8gQHZpZXdwb3J0IGlzIG5lZWRlZCBiZWNhdXNlIElFIDEwKyBkb2Vzbid0IGhvbm9yIDxtZXRhIG5hbWU9XCJ2aWV3cG9ydFwiPiBpblxuLy8gc29tZSBjYXNlcy4gU2VlIGh0dHBzOi8vdGlta2FkbGVjLmNvbS8yMDEyLzEwL2llMTAtc25hcC1tb2RlLWFuZC1yZXNwb25zaXZlLWRlc2lnbi8uXG4vLyBFdmVudHVhbGx5IEB2aWV3cG9ydCB3aWxsIHJlcGxhY2UgPG1ldGEgbmFtZT1cInZpZXdwb3J0XCI+LlxuLy9cbi8vIEhvd2V2ZXIsIGBkZXZpY2Utd2lkdGhgIGlzIGJyb2tlbiBvbiBJRSAxMCBvbiBXaW5kb3dzIChQaG9uZSkgOCxcbi8vIChzZWUgaHR0cHM6Ly90aW1rYWRsZWMuY29tLzIwMTMvMDEvd2luZG93cy1waG9uZS04LWFuZC1kZXZpY2Utd2lkdGgvIGFuZCBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvaXNzdWVzLzEwNDk3KVxuLy8gYW5kIHRoZSBmaXggZm9yIHRoYXQgaW52b2x2ZXMgYSBzbmlwcGV0IG9mIEphdmFTY3JpcHQgdG8gc25pZmYgdGhlIHVzZXIgYWdlbnRcbi8vIGFuZCBhcHBseSBzb21lIGNvbmRpdGlvbmFsIENTUy5cbi8vXG4vLyBTZWUgaHR0cHM6Ly9nZXRib290c3RyYXAuY29tL2dldHRpbmctc3RhcnRlZC8jc3VwcG9ydC1pZTEwLXdpZHRoIGZvciB0aGUgcmVsZXZhbnQgaGFjay5cbi8vXG4vLyBXcmFwIGBAdmlld3BvcnRgIHdpdGggYEBhdC1yb290YCBmb3Igd2hlbiBmb2xrcyBkbyBhIG5lc3RlZCBpbXBvcnQgKGUuZy4sXG4vLyBgLmNsYXNzLW5hbWUgeyBAaW1wb3J0IFwiYm9vdHN0cmFwXCI7IH1gKS5cbkBhdC1yb290IHtcbiAgICBALW1zLXZpZXdwb3J0IHtcbiAgICAgICAgd2lkdGg6IGRldmljZS13aWR0aDtcbiAgICB9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAjQk9YLVNJWklOR1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBNb3JlIHNlbnNpYmxlIGRlZmF1bHQgYm94LXNpemluZzpcbiAqIGNzcy10cmlja3MuY29tL2luaGVyaXRpbmctYm94LXNpemluZy1wcm9iYWJseS1zbGlnaHRseS1iZXR0ZXItYmVzdC1wcmFjdGljZVxuICovXG5cbmh0bWwge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbioge1xuICAgICY6OmJlZm9yZSwgIC8vIFRPRE8gdjE3OiBjYW4gYmUgcmVtb3ZlZCAtIGRvbid0IHJlbW92ZSBib3JkZXItYm94Li4uXG4gICAgJjo6YWZ0ZXIsICAgLy8gVE9ETyB2MTc6IGNhbiBiZSByZW1vdmVkIC0gZG9uJ3QgcmVtb3ZlIGJvcmRlci1ib3guLi5cbiAgICAmIHtcbiAgICAgICAgYm94LXNpemluZzogaW5oZXJpdDtcbiAgICB9XG59XG5cbi8vIEF2b2lkIDMwMG1zIGNsaWNrIGRlbGF5IG9uIHRvdWNoIGRldmljZXMgdGhhdCBzdXBwb3J0IHRoZSBgdG91Y2gtYWN0aW9uYCBDU1MgcHJvcGVydHkuXG4vL1xuLy8gSW4gcGFydGljdWxhciwgdW5saWtlIG1vc3Qgb3RoZXIgYnJvd3NlcnMsIElFMTErRWRnZSBvbiBXaW5kb3dzIDEwIG9uIHRvdWNoIGRldmljZXMgYW5kIElFIE1vYmlsZSAxMC0xMVxuLy8gRE9OJ1QgcmVtb3ZlIHRoZSBjbGljayBkZWxheSB3aGVuIGA8bWV0YSBuYW1lPVwidmlld3BvcnRcIiBjb250ZW50PVwid2lkdGg9ZGV2aWNlLXdpZHRoXCI+YCBpcyBwcmVzZW50LlxuLy8gSG93ZXZlciwgdGhleSBETyBzdXBwb3J0IHJlbW92aW5nIHRoZSBjbGljayBkZWxheSB2aWEgYHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uYC5cbi8vIFNlZTpcbi8vICogaHR0cHM6Ly92NC1hbHBoYS5nZXRib290c3RyYXAuY29tL2NvbnRlbnQvcmVib290LyNjbGljay1kZWxheS1vcHRpbWl6YXRpb24tZm9yLXRvdWNoXG4vLyAqIGh0dHA6Ly9jYW5pdXNlLmNvbS8jZmVhdD1jc3MtdG91Y2gtYWN0aW9uXG4vLyAqIGh0dHBzOi8vcGF0cmlja2hsYXVrZS5naXRodWIuaW8vdG91Y2gvdGVzdHMvcmVzdWx0cy8jc3VwcHJlc3NpbmctMzAwbXMtZGVsYXlcblxuYSxcbmFyZWEsXG5idXR0b24sXG5bcm9sZT1cImJ1dHRvblwiXSxcbmlucHV0LFxubGFiZWwsXG5zZWxlY3QsXG5zdW1tYXJ5LFxudGV4dGFyZWEge1xuICAgIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xufVxuXG4vLyBTdXBwcmVzcyB0aGUgZm9jdXMgb3V0bGluZSBvbiBlbGVtZW50cyB0aGF0IGNhbm5vdCBiZSBhY2Nlc3NlZCB2aWEga2V5Ym9hcmQuXG4vLyBUaGlzIHByZXZlbnRzIGFuIHVud2FudGVkIGZvY3VzIG91dGxpbmUgZnJvbSBhcHBlYXJpbmcgYXJvdW5kIGVsZW1lbnRzIHRoYXRcbi8vIG1pZ2h0IHN0aWxsIHJlc3BvbmQgdG8gcG9pbnRlciBldmVudHMuXG4vL1xuLy8gQ3JlZGl0OiBodHRwczovL2dpdGh1Yi5jb20vc3VpdGNzcy9iYXNlXG5bdGFiaW5kZXg9XCItMVwiXTpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4vLyBBbHdheXMgaGlkZSBhbiBlbGVtZW50IHdpdGggdGhlIGBoaWRkZW5gIEhUTUwgYXR0cmlidXRlIChmcm9tIFB1cmVDU1MpLlxuW2hpZGRlbl0ge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLy8gVE9ETyB2MTc6IHJlbW92ZSBhbmQgdXNlIHV0aWxpdHkgY2xhc3Nlc1xuLy8gU2VlOiBzdHlsZXMtYmFzZVxcc3JjXFxzdHlsZXNcXDk5LXV0aWxpdGllc1xcdG9rZW5zXFxfdHlwb2dyYXBoeS5zY3NzXG4vLyBUT0RPIDA4LzIzOiBjb21tZW50LCB0byBiZSBkaXNjdXNzZWRcbnAsXG5sYWJlbCxcbi5sYWJlbCxcbmJsb2NrcXVvdGUsXG5hYmJyLFxubWFyayxcbmRlbCB7XG4gICAgZm9udC1zaXplOiB2KGV1aS1iYXNlLWZvbnQtc2l6ZSk7XG59XG5cbi8vIGVtIHtcbi8vICAgICAvL2ZvbnQtZmFtaWx5OiB2KGV1aS1mb250LWZhbWlseS1pdGFsaWMpOyAvLyBkbyBOT1QgdXNlIG1peGluIGhlcmUhXG4vLyAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuLy8gfVxuXG4vLyBvcHRncm91cCxcbi8vIHN0cm9uZyxcbi8vIGIge1xuLy8gICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuXG4vLyAgICAgJiBpLFxuLy8gICAgICYgZW0ge1xuLy8gICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4vLyAgICAgfVxuLy8gfVxuXG4vLyAvLyBUT0RPIHYxNzogcmVtb3ZlIGFuZCB1c2UgdXRpbGl0eSBjbGFzc2VzXG4vLyBjb2RlLFxuLy8ga2JkLFxuLy8gcHJlLFxuLy8gc2FtcCB7XG4vLyAgICAgZm9udC1zaXplOiB2KGV1aS1iYXNlLWZvbnQtc2l6ZSk7XG4vLyAgICAgQGluY2x1ZGUgZXVpLWZvbnQtZmFtaWx5LW1vbm9zcGFjZTtcbi8vIH1cblxuLy8gLy8gVE9ETyB2MTc6IHJlbW92ZSBhbmQgdXNlIHV0aWxpdHkgY2xhc3Nlc1xuLy8gY29kZSB7XG4vLyAgICAgY29sb3I6ICNjYzM2N2I7ICAgICAvLyBXQ0FHMiBBQSBjb250cmFzdCByYXRpbyBjb21wbGlhbnQ6IDQuNTlcbi8vICAgICBmb250LXNpemU6IDk1JTtcbi8vICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4vLyB9XG5cbi8vIC8vIFRPRE8gdjE3OiByZW1vdmUgYW5kIHVzZSB1dGlsaXR5IGNsYXNzZXNcbi8vIHNtYWxsIHtcbi8vICAgICBmb250LXNpemU6IDgwJTtcbi8vIH1cblxuLy8gVE9ETyB2MTc6IHJlbW92ZSBhbmQgdXNlIHV0aWxpdHkgY2xhc3Nlc1xuLy8ga2JkIHtcbi8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2KGV1aS1iYXNlLWNvbG9yLWdyZXktNzUpOyAgICAvLyBXQ0FHMiBBQSBjb21wbGlhbnRcbi8vICAgICBib3JkZXItcmFkaXVzOiB2KGV1aS1iYXNlLWJvcmRlci1yYWRpdXMpO1xuLy8gICAgIGNvbG9yOiB2KGV1aS1iYXNlLWNvbG9yLXdoaXRlKTtcbi8vICAgICBmb250LXNpemU6IHYoZXVpLWJhc2UtZm9udC1zaXplLXMpO1xuLy8gICAgIHBhZGRpbmc6IDFweCB2KGV1aS1iYXNlLXNwYWNpbmctMnhzKTtcbi8vIH1cblxuLy8gVE9ETyB2MTc6IHJlbW92ZSBhbmQgdXNlIHV0aWxpdHkgY2xhc3Nlc1xuLy8gcHJlIHtcbi8vICAgICBjb2xvcjogdihldWktYmFzZS1jb2xvcik7XG4vLyAgICAgZGlzcGxheTogYmxvY2s7XG4vLyAgICAgZm9udC1zaXplOiA4Ny41JTtcbi8vICAgICBtYXJnaW4tYm90dG9tOiB2KGV1aS1iYXNlLXNwYWNpbmctbSk7XG4vLyAgICAgbWFyZ2luLXRvcDogMDtcbi8vICAgICBvdmVyZmxvdzogYXV0bztcbi8vIH1cblxuLy8gVE9ETyB2MTc6IHJlbW92ZSBhbmQgdXNlIHV0aWxpdHkgY2xhc3Nlc1xuLy8gYmxvY2txdW90ZSB7XG4vLyAgICAgcGFkZGluZzogdihldWktYmFzZS1zcGFjaW5nLXhzKSB2KGV1aS1iYXNlLXNwYWNpbmctbSk7XG4vLyB9XG5cbi8vIFRPRE8gdjE3OiByZW1vdmUgYW5kIHVzZSB1dGlsaXR5IGNsYXNzZXNcbi8vIG1hcmssXG4vLyAubWFyayB7XG4vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogdihldWktYmFzZS1jb2xvci1hY2NlbnQtMjUpO1xuLy8gICAgIHBhZGRpbmc6IHYoZXVpLWJhc2Utc3BhY2luZy0yeHMpO1xuLy8gfVxuIiwiLy8gc3R5bGVsaW50LWRpc2FibGUgbm8tZGVzY2VuZGluZy1zcGVjaWZpY2l0eVxudGFibGUuZXVpLXRhYmxlLWRlZmF1bHQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgYm9yZGVyLXNwYWNpbmc6IDA7XG4gICAgY29sb3I6IHYoZXVpLWJhc2UtY29sb3ItZm9udCk7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIC8vIE92ZXJhbGwgc2V0dGluZ3MgKGRlZmF1bHQpXG4gICAgdGhlYWQgPiB0ciA+IHRoLFxuICAgIHRib2R5ID4gdHIgPiB0ZCxcbiAgICB0Zm9vdCA+IHRyID4gdGQge1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIH1cblxuICAgIHRyID4gdGgsXG4gICAgdHIgPiB0ZCB7XG4gICAgICAgIHBhZGRpbmc6IHYoZXVpLWJhc2Utc3BhY2luZy1zKTtcbiAgICB9XG5cbiAgICB0aGVhZCB7XG4gICAgICAgIHRoIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2KGV1aS1iYXNlLWNvbG9yLWdyZXktMTApO1xuICAgICAgICAgICAgY29sb3I6IHYoZXVpLWJhc2UtY29sb3ItZ3JleS03NSk7XG4gICAgICAgICAgICBmb250LXNpemU6IHYoZXVpLWJhc2UtZm9udC1zaXplKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IHYoZXVpLWJhc2Utc3BhY2luZy1tKSB2KGV1aS1iYXNlLXNwYWNpbmctcyk7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgZXVpLWZvbnQtZmFtaWx5LWJvbGQ7XG4gICAgICAgIH1cblxuICAgICAgICB0ciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2KGV1aS1iYXNlLWNvbG9yLWdyZXktMTApO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFN0cmlwZWQgJiBob3ZlcmVkIHRhYmxlcyBieSBkZWZhdWx0IChVWClcbiAgICB0Ym9keSB7XG4gICAgICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDsgIC8vIG9wdGlvbmFsIC0gZW5hYmxlIGlPUyBtb21lbnR1bSBzY3JvbGxpbmdcblxuICAgICAgICB0cjpudGgtb2YtdHlwZShvZGQpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHYoZXVpLWJhc2UtY29sb3ItZ3JleS0yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdihldWktYmFzZS1jb2xvci1ncmV5LTEwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRyOm50aC1vZi10eXBlKGV2ZW4pIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHYoZXVpLWJhc2UtY29sb3ItZ3JleS01KTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdihldWktYmFzZS1jb2xvci1ncmV5LTEwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHRyIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHYoZXVpLWJhc2UtY29sb3ItZ3JleS0yMCk7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlLXJvdztcbiAgICB9XG5cbiAgICAvLyBDb21wYWN0IHRhYmxlXG4gICAgJi0tY29tcGFjdCB7XG4gICAgICAgIHRoZWFkIHtcbiAgICAgICAgICAgIHRoIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiB2KGV1aS1iYXNlLXNwYWNpbmcteHMpIHYoZXVpLWJhc2Utc3BhY2luZy1zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRyID4gdGQge1xuICAgICAgICAgICAgcGFkZGluZzogdihldWktYmFzZS1zcGFjaW5nLTJ4cykgdihldWktYmFzZS1zcGFjaW5nLXMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmVzcG9uc2l2ZSB0YWJsZVxuICAgICYtLXJlc3BvbnNpdmUge1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJi0tYm9yZGVyZWQge1xuICAgICAgICAgICAgYm9yZGVyOiAwOyAgLy8gUHJldmVudCBkb3VibGUgYm9yZGVyIG9uIGhvcml6b250YWwgc2Nyb2xsIGR1ZSB0byB1c2Ugb2YgYGRpc3BsYXk6IGJsb2NrO2BcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIEJvcmRlcmVkIHRhYmxlXG4gICAgJi0tYm9yZGVyZWQge1xuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdihldWktYmFzZS1jb2xvci1ncmV5LTIwKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNoYWRvd2VkIHRhYmxlXG4gICAgJi0tc2hhZG93ZWQge1xuICAgICAgICBib3gtc2hhZG93OiB2KGV1aS1iYXNlLXNoYWRvdy0xKTtcbiAgICB9XG5cbiAgICAvLyBOb1dyYXAgdGFibGUgY29udGVudCAoYWxzbyBkaXNhYmxlcyBlbGxpcHNpcylcbiAgICAmLS1ub3dyYXAge1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgICAgIHRoZWFkID4gdHIgPiB0aCxcbiAgICAgICAgdGJvZHkgPiB0ciA+IHRkLFxuICAgICAgICB0Zm9vdCA+IHRyID4gdGQge1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIENlbnRlcmVkIHRhYmxlXG4gICAgJi0tY2VudGVyZWQge1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cblxuICAgIC8vIE1pZGRsZSBhbGlnbmVkIGNlbGxzIGNvbnRlbnRcbiAgICAmLS1hbGlnbi1taWRkbGUge1xuICAgICAgICB0aGVhZCA+IHRyID4gdGgsXG4gICAgICAgIHRib2R5ID4gdHIgPiB0ZCxcbiAgICAgICAgdGZvb3QgPiB0ciA+IHRkIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIC8vIFJFU1BPTlNJVkUgTEFZT1VUIChQUk9UTylcbi8vIEBpbmNsdWRlIG1lZGlhKCRldWktYmtwLW1vYmlsZSkge1xuLy8gICAgIHRhYmxlLnV4LXRhYmxlIHtcbi8vICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbi8vICAgICAgICAgJi51eC10YWJsZS0tcmVzcG9uc2l2ZSB7XG4vLyAgICAgICAgICAgICBkaXNwbGF5OiBjb250ZW50cztcblxuLy8gICAgICAgICAgICAgJi51eC10YWJsZS0tYm9yZGVyZWQge1xuLy8gICAgICAgICAgICAgICAgIHRyIHtcbi8vICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdihldWktYmFzZS1jb2xvci1ncmV5LWxpZ2h0KTtcbi8vICAgICAgICAgICAgICAgICB9XG4vLyAgICAgICAgICAgICB9XG5cbi8vICAgICAgICAgICAgICYudXgtdGFibGUtLWNvbXBhY3Qge1xuLy8gICAgICAgICAgICAgICAgIHRkIHtcbi8vICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IHYoZXVpLWJhc2Utc3BhY2luZy0zeHMpO1xuLy8gICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogdihldWktYmFzZS1zcGFjaW5nLTJ4cyk7XG5cbi8vICAgICAgICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbi8vICAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogdihldWktYmFzZS1zcGFjaW5nLTJ4cyk7XG4vLyAgICAgICAgICAgICAgICAgICAgIH1cbi8vICAgICAgICAgICAgICAgICB9XG4vLyAgICAgICAgICAgICB9XG5cbi8vICAgICAgICAgICAgIC8vIEZvcmNlIHRhYmxlIHRvIGJlIGxpa2UgY2FyZHNcbi8vICAgICAgICAgICAgIHRoZWFkLFxuLy8gICAgICAgICAgICAgdGJvZHksXG4vLyAgICAgICAgICAgICB0aCxcbi8vICAgICAgICAgICAgIHRkLFxuLy8gICAgICAgICAgICAgdHIge1xuLy8gICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuLy8gICAgICAgICAgICAgfVxuXG4vLyAgICAgICAgICAgICAvLyBIaWRlIHRhYmxlIGhlYWRlcnMgYnV0IG5vdCBkaXNwbGF5OiBub25lIGZvciBhY2Nlc3NpYmlsaXR5XG4vLyAgICAgICAgICAgICB0aGVhZCB0ciB7XG4vLyAgICAgICAgICAgICAgICAgbGVmdDogLTk5OTlweDtcbi8vICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4vLyAgICAgICAgICAgICAgICAgdG9wOiAtOTk5OXB4O1xuLy8gICAgICAgICAgICAgfVxuXG4vLyAgICAgICAgICAgICB0ciB7XG4vLyAgICAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuLy8gICAgICAgICAgICAgfVxuXG4vLyAgICAgICAgICAgICB0aCxcbi8vICAgICAgICAgICAgIHRkIHtcbi8vICAgICAgICAgICAgICAgICAvLyBCZWhhdmUgbGlrZSBhIFwicm93XCJcbi8vICAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4vLyAgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHYoZXVpLWJhc2UtY29sb3ItZ3JleS1saWdodGVzdCk7XG4vLyAgICAgICAgICAgICAgICAgcGFkZGluZzogdihldWktYmFzZS1zcGFjaW5nLXhzKTtcbi8vICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDUwJTtcbi8vICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4vLyAgICAgICAgICAgICB9XG5cbi8vICAgICAgICAgICAgIHRkOjpiZWZvcmUge1xuLy8gICAgICAgICAgICAgICAgIGNvbG9yOiB2KGV1aS1iYXNlLWNvbG9yLWdyZXktZGFyayk7XG4vLyAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWNvbCk7ICAgIC8vIExpa2UgYSB0YWJsZSBoZWFkZXIgY29sdW1uXG4vLyAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4vLyAgICAgICAgICAgICAgICAgbGVmdDogdihldWktYmFzZS1zcGFjaW5nLXhzKTtcbi8vICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiB2KGV1aS1iYXNlLXNwYWNpbmcteHMpO1xuLy8gICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbi8vICAgICAgICAgICAgICAgICAvLyBNaW1pYyB0b3AgJiBsZWZ0IHBhZGRpbmdzXG4vLyAgICAgICAgICAgICAgICAgdG9wOiB2KGV1aS1iYXNlLXNwYWNpbmcteHMpO1xuLy8gICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4vLyAgICAgICAgICAgICAgICAgd2lkdGg6IDQ1JTtcbi8vICAgICAgICAgICAgIH1cbi8vICAgICAgICAgfVxuLy8gICAgIH1cbi8vIH1cbiIsIi8vIFRPRE8gdjE3IGZpbmQgYSBiZXR0ZXIgd2F5IHRvIGhhbmRsZSB0aGVtZXNcblxuLy8gR0xPQkFMIENPTVBBQ1QgVEhFTUVcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5odG1sLmV1aS10LWNvbXBhY3Qge1xuICAgIC8vIEV4cG9zZWQgQ1NTIHZhcmlhYmxlc1xuICAgIC0tZXVpLWJhc2UtZm9udC1zaXplOiAxNHB4OyAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGb250IHNpemUgYmFzZSBmb3IgY29tcGFjdCB0aGVtZVxuICAgIC0tZXVpLWJhc2UtbGluZS1oZWlnaHQ6IDEuMjU7ICAgICAgICAgICAgICAgICAgICAgICAvLyBVbml0bGVzcyBudW1iZXIgdmFsdWUgaXMgbXVsdGlwbGllZCBieSB0aGUgZWxlbWVudCdzIGZvbnQgc2l6ZVxuICAgIC8vIFNldHVwXG4gICAgZm9udC1zaXplOiB2YXIoLS1ldWktYmFzZS1mb250LXNpemUpOyAgICAgICAgICAgICAgIC8vIEFwcGxpZXMgdGhlIGRlZmluZWQgY3VzdG9tIGZvbnQgc2l6ZVxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1ldWktYmFzZS1saW5lLWhlaWdodCk7ICAgICAgICAgICAvLyBBcHBsaWVzIHRoZSBkZWZpbmVkIGN1c3RvbSBsaW5lIGhlaWdodCByYXRpb1xufVxuXG4vLyBGT1JNIEVMRU1FTlRTXG4vLy8vLy8vLy8vLy8vLy8vL1xuZm9ybS5ldWktdC1mb3JtLWNvbXBhY3Qge1xuICAgIC8vIEV4cG9zZWQgQ1NTIHZhcmlhYmxlc1xuICAgIC0tZXVpLWJhc2UtZm9udC1zaXplOiAxNHB4OyAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGb250IHNpemUgYmFzZSBmb3IgY29tcGFjdCB0aGVtZVxuICAgIC0tZXVpLWJhc2UtbGluZS1oZWlnaHQ6IDEuMjU7ICAgICAgICAgICAgICAgICAgICAgICAvLyBVbml0bGVzcyBudW1iZXIgdmFsdWUgaXMgbXVsdGlwbGllZCBieSB0aGUgZWxlbWVudCdzIGZvbnQgc2l6ZVxuICAgIC0tZXVpLWlucHV0LWdyb3VwLXNwYWNpbmc6IHZhcigtLWV1aS1iYXNlLXNwYWNpbmctcyk7ICAgLy8gU3BhY2luZyBiZXR3ZWVuIGZvcm0gZ3JvdXBzIGVsZW1lbnRzXG4gICAgLy8gSW50ZXJuYWxzXG4gICAgLy8gU2VlOiBldWktc3R5bGVzLWJhc2VcXHNyY1xcc3R5bGVzXFwwMi1iYXNlXFxtaXhpbnNcXHRoZW1pbmdcXF9jb21wYWN0LXZhcnMuc2Nzc1xuICAgIEBpbmNsdWRlIGV1aS1jb21wYWN0LWdldC10b2tlbnMoKTtcbiAgICAvLyBTZXR1cFxuICAgIC0tZXVpLWNvbXBhY3QtcmF0aW86IDAuODI7ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTZXRzIGZvcm0gaW5wdXRzL2VsZW1lbnRzIHRvIDM5cHggaGVpZ2h0IChkZWZhdWx0OiA0NHB4KVxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZXVpLWJhc2UtZm9udC1zaXplKTsgICAgICAgICAgICAgICAvLyBBcHBsaWVzIHRoZSBkZWZpbmVkIGN1c3RvbSBmb250IHNpemVcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tZXVpLWJhc2UtbGluZS1oZWlnaHQpOyAgICAgICAgICAgLy8gQXBwbGllcyB0aGUgZGVmaW5lZCBjdXN0b20gbGluZSBoZWlnaHQgcmF0aW9cblxuICAgIC8vIEludGVybmFsc1xuICAgIC5ldWktaW5wdXQtZ3JvdXAge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1ldWktaW5wdXQtZ3JvdXAtc3BhY2luZyk7XG5cbiAgICAgICAgbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tZXVpLWJhc2Utc3BhY2luZy0yeHMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmV1aS1pbnB1dC1ncm91cC1hZGRvbi1pdGVtIHtcbiAgICAgICAgbWluLWhlaWdodDogY2FsYygyLjUgKiAje3YoZXVpLWJhc2Utc3BhY2luZy1tKX0pO1xuICAgICAgICBtaW4td2lkdGg6IGNhbGMoMi41ICogI3t2KGV1aS1iYXNlLXNwYWNpbmctbSl9KTtcbiAgICAgICAgcGFkZGluZzogY2FsYygje3YoZXVpLWJhc2Utc3BhY2luZy14cyl9IC0gMXB4KTtcbiAgICB9XG5cbiAgICAuZXVpLWJ1dHRvbi0taWNvbi1vbmx5IHtcbiAgICAgICAgcGFkZGluZzogY2FsYygje3YoZXVpLWJhc2Utc3BhY2luZy1zKX0gLSAxcHgpIHYoZXVpLWJhc2Utc3BhY2luZy14cyk7XG4gICAgfVxufVxuXG4vLyBUQUJMRVxuLy8vLy8vLy8vLy8vLy8vLy9cbi5ldWktdGFibGUuZXVpLXQtdGFibGUtY29tcGFjdCB7XG4gICAgLy8gRXhwb3NlZCBDU1MgdmFyaWFibGVzXG4gICAgLS1ldWktYmFzZS1mb250LXNpemU6IDE0cHg7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRm9udCBzaXplIGJhc2UgZm9yIGNvbXBhY3QgdGhlbWVcbiAgICAtLWV1aS1iYXNlLWxpbmUtaGVpZ2h0OiAxLjI1OyAgICAgICAgICAgICAgICAgICAgICAgLy8gVW5pdGxlc3MgbnVtYmVyIHZhbHVlIGlzIG11bHRpcGxpZWQgYnkgdGhlIGVsZW1lbnQncyBmb250IHNpemVcbiAgICAtLWV1aS10YWJsZS1oZWFkZXItcGFkZGluZzogdmFyKC0tZXVpLWJhc2Utc3BhY2luZy1zKTsgICAvLyBUYWJsZSBoZWFkZXIgc3BhY2VyIHNldCB0byAwLjc1cmVtXG4gICAgLS1ldWktdGFibGUtcm93LXBhZGRpbmc6IHZhcigtLWV1aS1iYXNlLXNwYWNpbmctMnhzKTsgICAgLy8gVGFibGUgYm9keSByb3cgc3BhY2VyIHNldCB0byAwLjI1cmVtXG4gICAgLS1ldWktdGFibGUtZm9vdGVyLXBhZGRpbmc6IHZhcigtLWV1aS1iYXNlLXNwYWNpbmctcyk7ICAgLy8gVGFibGUgZm9vdGVyIHNwYWNlciBzZXQgdG8gMC43NXJlbVxuICAgIC8vIEludGVybmFsc1xuICAgIEBpbmNsdWRlIGV1aS1jb21wYWN0LWdldC10b2tlbnMoKTtcbiAgICAvLyBTZXR1cFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZXVpLWJhc2UtZm9udC1zaXplKTsgICAgICAgICAgICAgICAgICAgIC8vIEFwcGxpZXMgdGhlIGRlZmluZWQgY3VzdG9tIGZvbnQgc2l6ZVxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1ldWktYmFzZS1saW5lLWhlaWdodCk7ICAgICAgICAgICAvLyBBcHBsaWVzIHRoZSBkZWZpbmVkIGN1c3RvbSBsaW5lIGhlaWdodCByYXRpb1xuXG4gICAgLy8gSW50ZXJuYWxzXG4gICAgdGhlYWQge1xuICAgICAgICB0ciB7XG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG5cbiAgICAgICAgICAgIHRoIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1ldWktdGFibGUtaGVhZGVyLXBhZGRpbmcpICB2YXIoLS1ldWktYmFzZS1zcGFjaW5nLXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgdGJvZHkge1xuICAgICAgICB0ciB7XG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG5cbiAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1ldWktdGFibGUtcm93LXBhZGRpbmcpICB2YXIoLS1ldWktYmFzZS1zcGFjaW5nLXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgdGZvb3Qge1xuICAgICAgICB0ciB7XG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG5cbiAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1ldWktdGFibGUtZm9vdGVyLXBhZGRpbmcpICB2YXIoLS1ldWktYmFzZS1zcGFjaW5nLXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyBDQVJEXG4vLy8vLy8vLy8vLy8vLy8vL1xuLmV1aS1jYXJkLmV1aS10LWNhcmQtY29tcGFjdCB7XG4gICAgLy8gRXhwb3NlZCBDU1MgdmFyaWFibGVzXG4gICAgLS1ldWktYmFzZS1mb250LXNpemU6IDE0cHg7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRm9udCBzaXplIGJhc2UgZm9yIGNvbXBhY3QgdGhlbWVcbiAgICAtLWV1aS1iYXNlLWxpbmUtaGVpZ2h0OiAxLjI1OyAgICAgICAgICAgICAgICAgICAgICAgLy8gVW5pdGxlc3MgbnVtYmVyIHZhbHVlIGlzIG11bHRpcGxpZWQgYnkgdGhlIGVsZW1lbnQncyBmb250IHNpemVcbiAgICAtLWV1aS1jYXJkLXRpdGxlLXNpemU6IHZhcigtLWV1aS1iYXNlLWZvbnQtc2l6ZS1tKTsgICAgICAvLyBDYXJkIHRpdGxlIGZvbnQgc2l6ZVxuICAgIC0tZXVpLWNhcmQtc3VidGl0bGUtc2l6ZTogdmFyKC0tZXVpLWJhc2UtZm9udC1zaXplLXMpOyAgIC8vIENhcmQgc3VidGl0bGUgZm9udCBzaXplXG4gICAgLy8gSW50ZXJuYWxzXG4gICAgQGluY2x1ZGUgZXVpLWNvbXBhY3QtZ2V0LXRva2VucygpO1xuICAgIC8vIFNldHVwXG4gICAgZm9udC1zaXplOiB2YXIoLS1ldWktYmFzZS1mb250LXNpemUpOyAgICAgICAgICAgICAgICAgICAgLy8gQXBwbGllcyB0aGUgZGVmaW5lZCBjdXN0b20gZm9udCBzaXplXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWV1aS1iYXNlLWxpbmUtaGVpZ2h0KTsgICAgICAgICAgIC8vIEFwcGxpZXMgdGhlIGRlZmluZWQgY3VzdG9tIGxpbmUgaGVpZ2h0IHJhdGlvXG5cbiAgICAvLyBJbnRlcm5hbHNcbiAgICAuZXVpLWNhcmQge1xuICAgICAgICAmLWhlYWRlciB7XG4gICAgICAgICAgICAmX190aXRsZS1jb250YWluZXIge1xuICAgICAgICAgICAgICAgICYtdGl0bGUsXG4gICAgICAgICAgICAgICAgJi10aXRsZSAuZXVpLWxhYmVsIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1ldWktY2FyZC10aXRsZS1zaXplKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmLXN1YnRpdGxlLFxuICAgICAgICAgICAgICAgICYtc3VidGl0bGUgLmV1aS1sYWJlbCB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tZXVpLWNhcmQtc3VidGl0bGUtc2l6ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX191cmdlbnQtaW5kaWNhdG9yIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tZXVpLWJhc2UtZm9udC1zaXplLTJ4bCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiQG1peGluIGV1aS1jb21wYWN0LWdldC10b2tlbnMoJHJhdGlvOiAwLjg3NSkge1xuICAgIC0tZXVpLWNvbXBhY3QtcmF0aW86ICN7JHJhdGlvfTtcbiAgICBAZWFjaCAkc3BhY2luZywgJHZhbHVlIGluICRldWktYmFzZS10b2tlbnMtc3BhY2luZ3Mge1xuICAgICAgICAtLWV1aS1iYXNlLXNwYWNpbmctI3skc3BhY2luZ306IGNhbGMoICN7dmFyKC0tZXVpLWNvbXBhY3QtcmF0aW8pfSAqICN7JHZhbHVlfSApO1xuICAgIH1cbn1cbiIsIi8vIElFMTArIFNWRydzIGFzcGVjdCByYXRpb3MgYW5kIHNpemVzIGZpeFxuQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpLCAoLW1zLWhpZ2gtY29udHJhc3Q6IG5vbmUpIHtcbiAgICBpbWdbc3JjJD1cIi5zdmdcIl0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG59XG5AbWVkaWEgc2NyZWVuIHtcbiAgICAvLyBJRSBGaXg6IEJpY3ViaWMgU2NhbGluZyBmb3IgSW1hZ2VzICYgZnVsbCB3aWR0aCBiYWNrZ3JvdW5kIChFQyBsb2dvKVxuICAgIGltZyB7XG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJTtcbiAgICAgICAgLW1zLWludGVycG9sYXRpb24tbW9kZTogYmljdWJpYztcbiAgICB9XG59XG4iLCIvLyBDT09LSUUgQ09OU0VOVFxuLmNvb2tpZS1jb25zZW50LWJhbm5lciB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICBtaW4td2lkdGg6IDUwJSAhaW1wb3J0YW50O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICAgIHJpZ2h0OiA1MCUgIWltcG9ydGFudDtcbiAgICB0b3A6IHYoZXVpLWJhc2Utc3BhY2luZy1tKSAhaW1wb3J0YW50O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg1MCUpICFpbXBvcnRhbnQ7XG4gICAgei1pbmRleDogdihldWktYmFzZS16LWluZGV4LW1heCkgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiB2KGV1aS1iYXNlLXNoYWRvdy0yNCkgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kOiB2KGV1aS1iYXNlLWNvbG9yLXByaW1hcnkpICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6IHZhcihldWktYmFzZS1jb2xvci13aGl0ZSkgIWltcG9ydGFudDtcbn1cbiIsIiNsb2FkZXItd3JhcHBlciB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGxlZnQ6IDA7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB6LWluZGV4OiAxMDAwO1xuXG4gICAgI2xvYWRlciB7XG4gICAgICAgIC13ZWJraXQtYW5pbWF0aW9uOiBzcGluIDJzIGxpbmVhciBpbmZpbml0ZTsgLyogQ2hyb21lLCBPcGVyYSAxNSssIFNhZmFyaSA1KyAqL1xuICAgICAgICBhbmltYXRpb246IHNwaW4gMnMgbGluZWFyIGluZmluaXRlOyAvKiBDaHJvbWUsIEZpcmVmb3ggMTYrLCBJRSAxMCssIE9wZXJhICovXG4gICAgICAgIGFuaW1hdGlvbjogaG91cmdsYXNzIDVzIGxpbmVhciBpbmZpbml0ZTtcbiAgICAgICAgYm9yZGVyOiAxMHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIGJvcmRlci10b3AtY29sb3I6IHYoZXVpLWJhc2UtY29sb3Itd2FybmluZy0xMDApO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAyMDBweDtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICBtYXJnaW46IC0xMDBweCAwIDAgLTEwMHB4O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB3aWR0aDogMjAwcHg7XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIC13ZWJraXQtYW5pbWF0aW9uOiBzcGluIDJzIGxpbmVhciBpbmZpbml0ZTsgLyogQ2hyb21lLCBPcGVyYSAxNSssIFNhZmFyaSA1KyAqL1xuICAgICAgICAgICAgYW5pbWF0aW9uOiBzcGluIDJzIGxpbmVhciBpbmZpbml0ZTsgLyogQ2hyb21lLCBGaXJlZm94IDE2KywgSUUgMTArLCBPcGVyYSAqL1xuICAgICAgICAgICAgYW5pbWF0aW9uOiBob3VyZ2xhc3MgNHMgbGluZWFyIGluZmluaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxMHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdihldWktYmFzZS1jb2xvci1kYW5nZXItMTAwKTtcbiAgICAgICAgICAgIGJvdHRvbTogNXB4O1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIGxlZnQ6IDVweDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHJpZ2h0OiA1cHg7XG4gICAgICAgICAgICB0b3A6IDVweDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIC13ZWJraXQtYW5pbWF0aW9uOiBzcGluIDFzIGxpbmVhciBpbmZpbml0ZTsgLyogQ2hyb21lLCBPcGVyYSAxNSssIFNhZmFyaSA1KyAqL1xuICAgICAgICAgICAgYW5pbWF0aW9uOiBzcGluIDFzIGxpbmVhciBpbmZpbml0ZTsgLyogQ2hyb21lLCBGaXJlZm94IDE2KywgSUUgMTArLCBPcGVyYSAqL1xuICAgICAgICAgICAgYW5pbWF0aW9uOiBob3VyZ2xhc3MgM3MgbGluZWFyIGluZmluaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxMHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdihldWktYmFzZS1jb2xvci1wcmltYXJ5LTEwMCk7XG4gICAgICAgICAgICBib3R0b206IDIwcHg7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgbGVmdDogMjBweDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHJpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgdG9wOiAyMHB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG5ALXdlYmtpdC1rZXlmcmFtZXMgc3BpbiB7XG4gICAgMCUge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgICAgICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgIH1cblxuICAgIDEwMCUge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgICAgIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgIH1cbn1cbkBrZXlmcmFtZXMgc3BpbiB7XG4gICAgMCUge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgICAgICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgIH1cblxuICAgIDEwMCUge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgICAgIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgIH1cbn1cbkAtd2Via2l0LWtleWZyYW1lcyBob3VyZ2xhc3MgIHtcbiAgICAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDApO1xuICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NSwgMC4wNTUsIDAuNjc1LCAwLjE5KTtcbiAgICB9XG4gICAgNTAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoOTAwZGVnKTtcbiAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxLCAwLjM1NSwgMSk7XG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODAwZGVnKTtcbiAgICB9XG59XG5Aa2V5ZnJhbWVzIGhvdXJnbGFzcyB7XG4gICAgMCUge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUsIDAuMDU1LCAwLjY3NSwgMC4xOSk7XG4gICAgfVxuICAgIDUwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDkwMGRlZyk7XG4gICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpO1xuICAgIH1cbiAgICAxMDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwMGRlZyk7XG4gICAgfVxufVxuIl19 */",":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 // COLORS\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 // OTHER 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: black;\n --eui-base-color-white: white;\n --eui-base-color: var(--eui-base-color-grey-100);\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 // Misc\n --eui-border-state-width: 6px;\n\n // Colors\n // eUI App elements\n --eui-app-header-bg-color: var(--eui-base-color-white);\n --eui-app-header-title-color: var(--eui-base-color-grey-100);\n --eui-app-header-subtitle-color: var(--eui-base-color-grey-75);\n\n --eui-app-toolbar-color: var(--eui-base-color-white);\n --eui-app-toolbar-bg-color: var(--eui-base-color-primary-100);\n --eui-app-toolbar-border-bottom-color: var(--eui-base-color-primary-25);\n\n --eui-app-sidebar-bg-color: var(--eui-base-color-grey-2);\n --eui-app-sidebar-border-right-color: #f2f4f9;\n\n --eui-app-body-bg-color: var(--eui-base-color-grey-2);\n --eui-app-main-bg-color: var(--eui-base-color-grey-2);\n\n --eui-app-footer-color: var(--eui-base-color-font);\n --eui-app-footer-bg-color: var(--eui-base-color-grey-2);\n --eui-app-footer-border-top-color: #e8ebf1;\n}\n\n.xs, .sm {\n --eui-app-header-height: 0px;\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: white;\n fill: white;\n}\n\n.eui-icon-svg--color-black {\n color: black;\n fill: black;\n}\n\n.eui-icon-svg--color-transparent {\n color: transparent !important; // important is 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 @at-root #{& or $root} {\n @content;\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 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 @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 '@material/theme/theme-color' as mdc-theme-color;\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@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@function _variable-safe-contrast-tone($value, $is-dark) {\n @if ($value == 'dark' or $value == 'light' or type-of($value) == 'color') {\n @return mdc-theme-color.contrast-tone($value);\n }\n\n @return if($is-dark, 'light', 'dark');\n}\n\n@mixin color($theme) {\n $color-tokens: tokens-mdc-icon-button.get-color-tokens($theme);\n $surface: inspection.get-theme-color($theme, background, card);\n $is-dark: inspection.get-theme-type($theme) == dark;\n $on-surface: if(_variable-safe-contrast-tone($surface, $is-dark) == 'dark', #000, #fff);\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($on-surface);\n\n &.mat-primary {\n $color: inspection.get-theme-color($theme, primary);\n @include mdc-icon-button-theme.theme((icon-color: $color));\n @include _ripple-color($color);\n }\n\n &.mat-accent {\n $color: inspection.get-theme-color($theme, accent);\n @include mdc-icon-button-theme.theme((icon-color: $color));\n @include _ripple-color($color);\n }\n\n &.mat-warn {\n $color: inspection.get-theme-color($theme, warn);\n @include mdc-icon-button-theme.theme((icon-color: $color));\n @include _ripple-color($color);\n }\n\n @include button-theme-private.apply-disabled-style() {\n $disabled-color: rgba($on-surface, if($is-dark, 0.5, 0.38));\n @include mdc-icon-button-theme.theme((\n icon-color: $disabled-color,\n disabled-icon-color: $disabled-color,\n ));\n }\n }\n}\n\n@mixin typography($theme) {\n}\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 @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","// TODO v17 - extract directive bound styling to global particular structure here to be recongnizable and kept\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","@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","html {\n // Exposed CSS vars\n --eui-html-font-size: var(--eui-base-font-size);\n --eui-html-line-height: var(--eui-base-line-height);\n\n display: block;\n height: 100%;\n font-size: v(eui-html-font-size);\n line-height: v(eui-html-line-height);\n}\n","body {\n // Exposed CSS vars\n --eui-body-bg-color: var(--eui-app-body-bg-color);\n --eui-body-color: var(--eui-base-color);\n --eui-body-font-family: var(--eui-base-font-family);\n --eui-body-font-size: var(--eui-base-font-size);\n --eui-body-line-height: var(--eui-base-line-height);\n\n background-color: v(eui-body-bg-color);\n color: v(eui-body-color);\n font-family: v(eui-body-font-family);\n font-feature-settings: 'liga';\n font-size: v(eui-body-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: v(eui-body-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, // TODO v17: can be removed - don't remove border-box...\n &::after, // TODO v17: can be removed - don't remove border-box...\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// TODO v17: remove and use utility classes\n// See: styles-base\\src\\styles\\99-utilities\\tokens\\_typography.scss\n// TODO 08/23: comment, to be discussed\np,\nlabel,\n.label,\nblockquote,\nabbr,\nmark,\ndel {\n font-size: v(eui-base-font-size);\n}\n\n// em {\n// //font-family: v(eui-font-family-italic); // do NOT use mixin here!\n// font-style: italic;\n// }\n\n// optgroup,\n// strong,\n// b {\n// font-weight: bold;\n\n// & i,\n// & em {\n// font-style: italic;\n// }\n// }\n\n// // TODO v17: remove and use utility classes\n// code,\n// kbd,\n// pre,\n// samp {\n// font-size: v(eui-base-font-size);\n// @include eui-font-family-monospace;\n// }\n\n// // TODO v17: remove and use utility classes\n// code {\n// color: #cc367b; // WCAG2 AA contrast ratio compliant: 4.59\n// font-size: 95%;\n// word-wrap: break-word;\n// }\n\n// // TODO v17: remove and use utility classes\n// small {\n// font-size: 80%;\n// }\n\n// TODO v17: remove and use utility classes\n// kbd {\n// background-color: v(eui-base-color-grey-75); // WCAG2 AA compliant\n// border-radius: v(eui-base-border-radius);\n// color: v(eui-base-color-white);\n// font-size: v(eui-base-font-size-s);\n// padding: 1px v(eui-base-spacing-2xs);\n// }\n\n// TODO v17: remove and use utility classes\n// pre {\n// color: v(eui-base-color);\n// display: block;\n// font-size: 87.5%;\n// margin-bottom: v(eui-base-spacing-m);\n// margin-top: 0;\n// overflow: auto;\n// }\n\n// TODO v17: remove and use utility classes\n// blockquote {\n// padding: v(eui-base-spacing-xs) v(eui-base-spacing-m);\n// }\n\n// TODO v17: remove and use utility classes\n// mark,\n// .mark {\n// background-color: v(eui-base-color-accent-25);\n// padding: v(eui-base-spacing-2xs);\n// }\n","// stylelint-disable no-descending-specificity\ntable.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\n// // RESPONSIVE LAYOUT (PROTO)\n// @include media($eui-bkp-mobile) {\n// table.ux-table {\n// display: block;\n\n// &.ux-table--responsive {\n// display: contents;\n\n// &.ux-table--bordered {\n// tr {\n// border: 1px solid v(eui-base-color-grey-light);\n// }\n// }\n\n// &.ux-table--compact {\n// td {\n// padding-bottom: v(eui-base-spacing-3xs);\n// padding-top: v(eui-base-spacing-2xs);\n\n// &::before {\n// top: v(eui-base-spacing-2xs);\n// }\n// }\n// }\n\n// // Force table to be like cards\n// thead,\n// tbody,\n// th,\n// td,\n// tr {\n// display: block;\n// }\n\n// // Hide table headers but not display: none for accessibility\n// thead tr {\n// left: -9999px;\n// position: absolute;\n// top: -9999px;\n// }\n\n// tr {\n// height: auto;\n// }\n\n// th,\n// td {\n// // Behave like a \"row\"\n// border: none;\n// border-bottom: 1px solid v(eui-base-color-grey-lightest);\n// padding: v(eui-base-spacing-xs);\n// padding-left: 50%;\n// position: relative;\n// }\n\n// td::before {\n// color: v(eui-base-color-grey-dark);\n// content: attr(data-col); // Like a table header column\n// font-weight: bold;\n// left: v(eui-base-spacing-xs);\n// padding-right: v(eui-base-spacing-xs);\n// position: absolute;\n// // Mimic top & left paddings\n// top: v(eui-base-spacing-xs);\n// white-space: nowrap;\n// width: 45%;\n// }\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// normal\n@mixin eui-font-family() {\n @include eui-font(m, ui);\n}\n// tobe removed\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","// TODO v17 find a better way to handle themes\n\n// GLOBAL COMPACT THEME\n///////////////////////\nhtml.eui-t-compact {\n // Exposed CSS variables\n --eui-base-font-size: 14px; // Font size base for compact theme\n --eui-base-line-height: 1.25; // Unitless number value is multiplied by the element's font size\n // Setup\n font-size: var(--eui-base-font-size); // Applies the defined custom font size\n line-height: var(--eui-base-line-height); // Applies the defined custom line height ratio\n}\n\n// FORM ELEMENTS\n/////////////////\nform.eui-t-form-compact {\n // Exposed CSS variables\n --eui-base-font-size: 14px; // Font size base for compact theme\n --eui-base-line-height: 1.25; // Unitless number value is multiplied by the element's font size\n --eui-input-group-spacing: var(--eui-base-spacing-s); // Spacing between form groups elements\n // Internals\n // See: eui-styles-base\\src\\styles\\02-base\\mixins\\theming\\_compact-vars.scss\n @include eui-compact-get-tokens();\n // Setup\n --eui-compact-ratio: 0.82; // Sets form inputs/elements to 39px height (default: 44px)\n font-size: var(--eui-base-font-size); // Applies the defined custom font size\n line-height: var(--eui-base-line-height); // Applies the defined custom line height ratio\n\n // Internals\n .eui-input-group {\n margin-bottom: var(--eui-input-group-spacing);\n\n label {\n margin-bottom: var(--eui-base-spacing-2xs);\n }\n }\n\n .eui-input-group-addon-item {\n min-height: calc(2.5 * #{v(eui-base-spacing-m)});\n min-width: calc(2.5 * #{v(eui-base-spacing-m)});\n padding: calc(#{v(eui-base-spacing-xs)} - 1px);\n }\n\n .eui-button--icon-only {\n padding: calc(#{v(eui-base-spacing-s)} - 1px) v(eui-base-spacing-xs);\n }\n}\n\n// TABLE\n/////////////////\n.eui-table.eui-t-table-compact {\n // Exposed CSS variables\n --eui-base-font-size: 14px; // Font size base for compact theme\n --eui-base-line-height: 1.25; // Unitless number value is multiplied by the element's font size\n --eui-table-header-padding: var(--eui-base-spacing-s); // Table header spacer set to 0.75rem\n --eui-table-row-padding: var(--eui-base-spacing-2xs); // Table body row spacer set to 0.25rem\n --eui-table-footer-padding: var(--eui-base-spacing-s); // Table footer spacer set to 0.75rem\n // Internals\n @include eui-compact-get-tokens();\n // Setup\n font-size: var(--eui-base-font-size); // Applies the defined custom font size\n line-height: var(--eui-base-line-height); // Applies the defined custom line height ratio\n\n // Internals\n thead {\n tr {\n height: auto;\n\n th {\n padding: var(--eui-table-header-padding) var(--eui-base-spacing-s);\n }\n }\n }\n\n tbody {\n tr {\n height: auto;\n\n td {\n padding: var(--eui-table-row-padding) var(--eui-base-spacing-s);\n }\n }\n }\n\n tfoot {\n tr {\n height: auto;\n\n td {\n padding: var(--eui-table-footer-padding) var(--eui-base-spacing-s);\n }\n }\n }\n}\n\n// CARD\n/////////////////\n.eui-card.eui-t-card-compact {\n // Exposed CSS variables\n --eui-base-font-size: 14px; // Font size base for compact theme\n --eui-base-line-height: 1.25; // Unitless number value is multiplied by the element's font size\n --eui-card-title-size: var(--eui-base-font-size-m); // Card title font size\n --eui-card-subtitle-size: var(--eui-base-font-size-s); // Card subtitle font size\n // Internals\n @include eui-compact-get-tokens();\n // Setup\n font-size: var(--eui-base-font-size); // Applies the defined custom font size\n line-height: var(--eui-base-line-height); // Applies the defined custom line height ratio\n\n // Internals\n .eui-card {\n &-header {\n &__title-container {\n &-title,\n &-title .eui-label {\n font-size: var(--eui-card-title-size);\n }\n\n &-subtitle,\n &-subtitle .eui-label {\n font-size: var(--eui-card-subtitle-size);\n }\n }\n\n &__urgent-indicator {\n &::after {\n font-size: var(--eui-base-font-size-2xl);\n }\n }\n }\n }\n}\n","@mixin eui-compact-get-tokens($ratio: 0.875) {\n --eui-compact-ratio: #{$ratio};\n @each $spacing, $value in $eui-base-tokens-spacings {\n --eui-base-spacing-#{$spacing}: calc( #{var(--eui-compact-ratio)} * #{$value} );\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/_tokens.vars.scss","../../../../../../../node_modules/@eui/styles-base/src/styles/03-vars/_other.vars.scss","02b-base-vars/_layout.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/_eui-input-maxlength.scss","../../../../../../../node_modules/@eui/styles-base/src/styles/02-base/mixins/_eui-font.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","08-themes/_module-compact.scss","../../../../../../../node_modules/@eui/styles-base/src/styles/02-base/mixins/theming/_compact-vars.scss","10-media/_ieimgfix.scss","11-extras/_cookie-consent.scss","11-extras/_preloader.scss"],"names":[],"mappings":"AAAA,2EAAA,CAUC,KAEG,6BAAA,CADA,gBCiCJ,CDdE,KACE,aC6BJ,CDrBE,GACE,aAAA,CACA,cC4BJ,CDjBE,GACE,kBAAA,CACA,QAAA,CACA,gBC0BJ,CDlBE,IACE,+BAAA,CACA,aCyBJ,CDfE,EACE,wBCuBJ,CDfE,YACE,kBAAA,CACA,yBAAA,CACA,wCAAA,CAAA,gCCsBJ,CDfE,SAEE,kBCqBJ,CDbE,cAGE,+BAAA,CACA,aCoBJ,CDbE,MACE,aCmBJ,CDXE,QAEE,aAAA,CACA,aAAA,CACA,iBAAA,CACA,sBCkBJ,CDfE,IACE,aCkBJ,CDfE,IACE,SCkBJ,CDRE,IACE,iBCgBJ,CDLE,sCAKE,mBAAA,CACA,cAAA,CACA,gBAAA,CACA,QCcJ,CDNE,aAEE,gBCaJ,CDLE,cAEE,mBCYJ,CDLE,gDAIE,yBCWJ,CDJE,wHAIE,iBAAA,CACA,SCUJ,CDHE,4GAIE,6BCSJ,CDFE,SACE,0BCQJ,CDEE,OACE,qBAAA,CACA,aAAA,CACA,aAAA,CACA,cAAA,CACA,SAAA,CACA,kBCOJ,CDAE,SACE,sBCMJ,CDCE,SACE,aCKJ,CDGE,6BAEE,qBAAA,CACA,SCIJ,CDGE,kFAEE,WCGJ,CDKE,cACE,4BAAA,CACA,mBCEJ,CDKE,yCACE,uBCCJ,CDOE,6BACE,yBAAA,CACA,YCAJ,CDUE,QACE,aCFJ,CDSE,QACE,iBCHJ,CDqBE,kBACE,YCNJ,CCrVA,MAEI,kEAAA,CAGA,mDAAA,CACA,qFAAA,CAKQ,iCAAA,CACA,qCAAA,CACA,uCAAA,CACA,2CAAA,CAHA,gCAAA,CACA,oCAAA,CACA,sCAAA,CACA,0CAAA,CAHA,6BAAA,CACA,iCAAA,CACA,sCAAA,CACA,0CAAA,CAHA,gCAAA,CACA,oCAAA,CACA,sCAAA,CACA,0CAAA,CAHA,gCAAA,CACA,oCAAA,CACA,yCAAA,CACA,6CAAA,CAHA,gCAAA,CACA,oCAAA,CACA,yCAAA,CACA,6CAAA,CAHA,gCAAA,CACA,oCAAA,CACA,yCAAA,CACA,6CAAA,CAHA,gCAAA,CACA,oCAAA,CACA,yCAAA,CACA,6CAAA,CAHA,gCAAA,CACA,oCAAA,CACA,yCAAA,CACA,6CAAA,CAHA,gCAAA,CACA,oCAAA,CACA,yCAAA,CACA,6CAAA,CAHA,+BAAA,CACA,mCAAA,CACA,wCAAA,CACA,4CAAA,CAHA,+BAAA,CACA,mCAAA,CACA,wCAAA,CACA,4CAAA,CAHA,oCAAA,CACA,wCAAA,CACA,0CAAA,CACA,8CAAA,CAHA,oCAAA,CACA,wCAAA,CACA,0CAAA,CACA,8CAAA,CAHA,oCAAA,CACA,wCAAA,CACA,0CAAA,CACA,8CAAA,CAHA,oCAAA,CACA,wCAAA,CACA,0CAAA,CACA,8CAAA,CAHA,oCAAA,CACA,wCAAA,CACA,0CAAA,CACA,8CAAA,CAHA,mCAAA,CACA,uCAAA,CACA,yCAAA,CACA,6CAAA,CAHA,mCAAA,CACA,uCAAA,CACA,4CAAA,CACA,gDAAA,CAHA,mCAAA,CACA,uCAAA,CACA,4CAAA,CACA,gDAAA,CAHA,mCAAA,CACA,uCAAA,CACA,4CAAA,CACA,gDAAA,CAHA,kCAAA,CACA,sCAAA,CACA,2CAAA,CACA,+CAAA,CAHA,mCAAA,CACA,uCAAA,CACA,4CAAA,CACA,gDAAA,CAHA,mCAAA,CACA,uCAAA,CACA,4CAAA,CACA,gDAAA,CAHA,mCAAA,CACA,uCAAA,CACA,4CAAA,CACA,gDAAA,CAHA,mCAAA,CACA,uCAAA,CACA,4CAAA,CACA,gDAAA,CAHA,mCAAA,CACA,uCAAA,CACA,4CAAA,CACA,gDAAA,CAHA,kCAAA,CACA,sCAAA,CACA,2CAAA,CACA,+CAAA,CAHA,kCAAA,CACA,sCAAA,CACA,2CAAA,CACA,+CAAA,CAHA,kCAAA,CACA,sCAAA,CACA,2CAAA,CACA,+CAAA,CAHA,kCAAA,CACA,sCAAA,CACA,2CAAA,CACA,+CAAA,CAHA,iCAAA,CACA,qCAAA,CACA,0CAAA,CACA,8CAAA,CAHA,iCAAA,CACA,qCAAA,CACA,uCAAA,CACA,2CAAA,CAHA,iCAAA,CACA,qCAAA,CACA,uCAAA,CACA,2CAAA,CAHA,iCAAA,CACA,qCAAA,CACA,uCAAA,CACA,2CAAA,CAHA,iCAAA,CACA,qCAAA,CACA,uCAAA,CACA,2CAAA,CAHA,iCAAA,CACA,qCAAA,CACA,uCAAA,CACA,2CAAA,CAHA,gCAAA,CACA,oCAAA,CACA,sCAAA,CACA,0CAAA,CAHA,gCAAA,CACA,oCAAA,CACA,yCAAA,CACA,6CAAA,CAHA,gCAAA,CACA,oCAAA,CACA,yCAAA,CACA,6CAAA,CAHA,gCAAA,CACA,oCAAA,CACA,yCAAA,CACA,6CAAA,CAHA,+BAAA,CACA,mCAAA,CACA,wCAAA,CACA,4CAAA,CAHA,oCAAA,CACA,wCAAA,CACA,0CAAA,CACA,8CAAA,CAHA,oCAAA,CACA,wCAAA,CACA,0CAAA,CACA,8CAAA,CAHA,oCAAA,CACA,wCAAA,CACA,0CAAA,CACA,8CAAA,CAHA,oCAAA,CACA,wCAAA,CACA,0CAAA,CACA,8CAAA,CAHA,oCAAA,CACA,wCAAA,CACA,0CAAA,CACA,8CAAA,CAHA,mCAAA,CACA,uCAAA,CACA,4CAAA,CACA,gDAAA,CAHA,mCAAA,CACA,uCAAA,CACA,4CAAA,CACA,gDAAA,CAHA,mCAAA,CACA,uCAAA,CACA,4CAAA,CACA,gDAAA,CAHA,mCAAA,CACA,uCAAA,CACA,4CAAA,CACA,gDAAA,CAHA,kCAAA,CACA,sCAAA,CACA,2CAAA,CACA,+CAAA,CAHA,oCAAA,CACA,wCAAA,CACA,0CAAA,CACA,8CAAA,CAHA,oCAAA,CACA,wCAAA,CACA,0CAAA,CACA,8CAAA,CAHA,oCAAA,CACA,wCAAA,CACA,6CAAA,CACA,iDAAA,CAHA,oCAAA,CACA,wCAAA,CACA,6CAAA,CACA,iDAAA,CAHA,oCAAA,CACA,wCAAA,CACA,6CAAA,CACA,iDAAA,CAHA,mCAAA,CACA,uCAAA,CACA,4CAAA,CACA,gDAAA,CAHA,mCAAA,CACA,uCAAA,CACA,4CAAA,CACA,gDAAA,CAHA,mCAAA,CACA,uCAAA,CACA,4CAAA,CACA,gDAAA,CAHA,mCAAA,CACA,uCAAA,CACA,4CAAA,CACA,gDAAA,CAHA,kCAAA,CACA,sCAAA,CACA,2CAAA,CACA,+CAAA,CAHA,mCAAA,CACA,uCAAA,CACA,yCAAA,CACA,6CAAA,CAHA,mCAAA,CACA,uCAAA,CACA,yCAAA,CACA,6CAAA,CAHA,mCAAA,CACA,uCAAA,CACA,yCAAA,CACA,6CAAA,CAHA,mCAAA,CACA,uCAAA,CACA,yCAAA,CACA,6CAAA,CAHA,mCAAA,CACA,uCAAA,CACA,yCAAA,CACA,6CAAA,CAHA,kCAAA,CACA,sCAAA,CACA,2CAAA,CACA,+CAAA,CAHA,kCAAA,CACA,sCAAA,CACA,2CAAA,CACA,+CAAA,CAHA,kCAAA,CACA,sCAAA,CACA,2CAAA,CACA,+CAAA,CAHA,kCAAA,CACA,sCAAA,CACA,2CAAA,CACA,+CAAA,CAHA,iCAAA,CACA,qCAAA,CACA,0CAAA,CACA,8CAAA,CAMJ,6BAAA,CAAA,gCAAA,CAAA,+BAAA,CAAA,6BAAA,CAAA,gCAAA,CAAA,gCAAA,CAAA,+BAAA,CAIJ,oDAAA,CACA,uDAAA,CACA,2BAAA,CACA,2BAAA,CACA,+CAAA,CAGA,yBAAA,CAEI,iCAAA,CAAA,gCAAA,CAAA,6BAAA,CAAA,gCAAA,CAAA,+BAAA,CAAA,+BAAA,CAAA,+BAAA,CAAA,2BAAA,CAAA,+BAAA,CAAA,+BAAA,CAAA,iCAAA,CAIJ,2BAAA,CAEI,gCAAA,CAAA,4BAAA,CAAA,8BAAA,CAAA,6BAAA,CAAA,2BAAA,CAAA,8BAAA,CAAA,6BAAA,CAAA,+BAAA,CAAA,6BAAA,CAUI,kFAAA,CAAA,iFAAA,CAAA,6EAAA,CAAA,8EAAA,CAAA,gFAAA,CAAA,+EAAA,CAAA,+EAAA,CAAA,4EAAA,CAAA,6EAAA,CAAA,6EAAA,CAAA,+EAAA,CAAA,0FAAA,CAAA,0FAAA,CAAA,qFAAA,CAAA,0FAAA,CAAA,0FAAA,CAMJ,yBAAA,CAAA,8BAAA,CAAA,4BAAA,CAAA,4BAAA,CAAA,yBAAA,CAAA,2BAAA,CAAA,0BAAA,CAAA,6BAAA,CAAA,2BAAA,CAAA,2BAAA,CAKA,oFAAA,CAAA,oFAAA,CAAA,oFAAA,CAAA,qFAAA,CAAA,gGAAA,CAAA,gGAAA,CAAA,gGAAA,CAAA,kGAAA,CAAA,mGAAA,CAAA,oGAAA,CAAA,iEAAA,CAAA,mEAAA,CAAA,mEAAA,CAAA,qEAAA,CAAA,uEAAA,CAAA,uEAAA,CAKA,4BAAA,CAAA,yBAAA,CAAA,yBAAA,CAAA,oCAAA,CAAA,mCAAA,CAAA,2BAAA,CAAA,gCAAA,CAAA,yBAAA,CAAA,uCAAA,CAAA,uCAAA,CAAA,4BAAA,CAAA,8BAAA,CAAA,+BAAA,CAAA,+BAAA,CAAA,oCAAA,CAAA,mCAAA,CAAA,yCAAA,CAAA,sCAAA,CAAA,6BAAA,CAAA,4BAAA,CAAA,+BAAA,CAAA,2BAAA,CAAA,8CAAA,CAAA,uCAAA,CAAA,sCAAA,CChEJ,2BAAA,CACA,yBAAA,CACA,gCAAA,CAEA,4BAAA,CAEA,yDAAA,CACA,6DAAA,CACA,iEAAA,CACA,mEAAA,CAGA,+EAAA,CACA,+EAAA,CACA,+EAAA,CACA,uEAAA,CACA,4DAAA,CAEA,wCAAA,CACA,yCAAA,CACA,qCAAA,CACA,wCAAA,CACA,qEAAA,CAEA,0GAAA,CACA,4FAAA,CACA,0GAAA,CACA,2GAAA,CAEA,6BAAA,CACA,qCAAA,CACA,uCAAA,CACA,sEAAA,CAGA,kEAAA,CClCA,mCAAA,CACA,2BAAA,CACA,mCAAA,CACA,kCAAA,CAEA,uCAAA,CACA,+BAAA,CACA,uCAAA,CAEA,wCAAA,CACA,gCAAA,CACA,wCAAA,CAEA,oCAAA,CACA,4BAAA,CACA,oCAAA,CAEA,mCAAA,CACA,2BAAA,CACA,oCAAA,CACA,yCAAA,CACA,iCAAA,CACA,yCAAA,CACA,mCAAA,CACA,2CAAA,CACA,2CAAA,CACA,mCAAA,CACA,2CAAA,CACA,2CAAA,CAGA,2CAAA,CACA,8CAAA,CAEA,8BAAA,CACA,+BAAA,CACA,+BAAA,CACA,gCAAA,CACA,iCAAA,CACA,kCAAA,CACA,sCAAA,CAGA,4BAAA,CAIA,qDAAA,CACA,2DAAA,CACA,6DAAA,CAEA,mDAAA,CACA,4DAAA,CACA,sEAAA,CAEA,uDAAA,CACA,4CAAA,CAEA,oDAAA,CACA,oDAAA,CAEA,iDAAA,CACA,sDAAA,CACA,yCH+pBJ,CG5pBA,QACI,2BHgvBJ,CIrzBA,cACI,iBAAA,CAKA,kBAAA,CADA,mBAAA,CAHA,QAAA,CACA,0CAAA,CACA,oCJ0zBJ,CIrzBI,wBACI,aAAA,CACA,YJwzBR,CI1zBI,uBACI,WAAA,CACA,UJ6zBR,CI/zBI,sBACI,cAAA,CACA,aJk0BR,CIp0BI,sBACI,aAAA,CACA,YJu0BR,CIz0BI,sBACI,WAAA,CACA,UJ40BR,CI90BI,uBACI,aAAA,CACA,YJi1BR,CIn1BI,wBACI,WAAA,CACA,UJs1BR,CIx1BI,wBACI,aAAA,CACA,YJ21BR,CI71BI,wBACI,WAAA,CACA,UJg2BR,CI31BQ,8BAEI,YAAA,CADA,aJ+1BZ,CIh2BQ,6BAEI,YAAA,CADA,aJo2BZ,CIr2BQ,6BAEI,SAAA,CADA,UJy2BZ,CI12BQ,6BAEI,YAAA,CADA,aJ82BZ,CI/2BQ,6BAEI,YAAA,CADA,aJm3BZ,CIp3BQ,6BAEI,YAAA,CADA,aJw3BZ,CIz3BQ,6BAEI,YAAA,CADA,aJ63BZ,CI93BQ,6BAEI,YAAA,CADA,aJk4BZ,CIn4BQ,6BAEI,YAAA,CADA,aJu4BZ,CIx4BQ,6BAEI,YAAA,CADA,aJ44BZ,CI74BQ,4BAEI,YAAA,CADA,aJi5BZ,CIl5BQ,4BAEI,YAAA,CADA,aJs5BZ,CIv5BQ,iCAEI,YAAA,CADA,aJ25BZ,CI55BQ,iCAEI,YAAA,CADA,aJg6BZ,CIj6BQ,iCAEI,YAAA,CADA,aJq6BZ,CIt6BQ,iCAEI,YAAA,CADA,aJ06BZ,CI36BQ,iCAEI,YAAA,CADA,aJ+6BZ,CIh7BQ,gCAEI,YAAA,CADA,aJo7BZ,CIr7BQ,gCAEI,YAAA,CADA,aJy7BZ,CI17BQ,gCAEI,YAAA,CADA,aJ87BZ,CI/7BQ,gCAEI,YAAA,CADA,aJm8BZ,CIp8BQ,+BAEI,YAAA,CADA,aJw8BZ,CIz8BQ,gCAEI,YAAA,CADA,aJ68BZ,CI98BQ,gCAEI,YAAA,CADA,aJk9BZ,CIn9BQ,gCAEI,YAAA,CADA,aJu9BZ,CIx9BQ,gCAEI,YAAA,CADA,aJ49BZ,CI79BQ,gCAEI,YAAA,CADA,aJi+BZ,CIl+BQ,+BAEI,YAAA,CADA,aJs+BZ,CIv+BQ,+BAEI,YAAA,CADA,aJ2+BZ,CI5+BQ,+BAEI,YAAA,CADA,aJg/BZ,CIj/BQ,+BAEI,YAAA,CADA,aJq/BZ,CIt/BQ,8BAEI,YAAA,CADA,aJ0/BZ,CI3/BQ,8BAEI,YAAA,CADA,aJ+/BZ,CIhgCQ,8BAEI,YAAA,CADA,aJogCZ,CIrgCQ,8BAEI,YAAA,CADA,aJygCZ,CI1gCQ,8BAEI,YAAA,CADA,aJ8gCZ,CI/gCQ,8BAEI,YAAA,CADA,aJmhCZ,CIphCQ,6BAEI,YAAA,CADA,aJwhCZ,CIzhCQ,6BAEI,YAAA,CADA,aJ6hCZ,CI9hCQ,6BAEI,YAAA,CADA,aJkiCZ,CIniCQ,6BAEI,YAAA,CADA,aJuiCZ,CIxiCQ,4BAEI,YAAA,CADA,aJ4iCZ,CI7iCQ,iCAEI,YAAA,CADA,aJijCZ,CIljCQ,iCAEI,YAAA,CADA,aJsjCZ,CIvjCQ,iCAEI,YAAA,CADA,aJ2jCZ,CI5jCQ,iCAEI,YAAA,CADA,aJgkCZ,CIjkCQ,iCAEI,YAAA,CADA,aJqkCZ,CItkCQ,gCAEI,YAAA,CADA,aJ0kCZ,CI3kCQ,gCAEI,YAAA,CADA,aJ+kCZ,CIhlCQ,gCAEI,YAAA,CADA,aJolCZ,CIrlCQ,gCAEI,YAAA,CADA,aJylCZ,CI1lCQ,+BAEI,YAAA,CADA,aJ8lCZ,CI/lCQ,iCAEI,YAAA,CADA,aJmmCZ,CIpmCQ,iCAEI,YAAA,CADA,aJwmCZ,CIzmCQ,iCAEI,YAAA,CADA,aJ6mCZ,CI9mCQ,iCAEI,YAAA,CADA,aJknCZ,CInnCQ,iCAEI,YAAA,CADA,aJunCZ,CIxnCQ,gCAEI,YAAA,CADA,aJ4nCZ,CI7nCQ,gCAEI,YAAA,CADA,aJioCZ,CIloCQ,gCAEI,YAAA,CADA,aJsoCZ,CIvoCQ,gCAEI,YAAA,CADA,aJ2oCZ,CI5oCQ,+BAEI,YAAA,CADA,aJgpCZ,CIjpCQ,gCAEI,YAAA,CADA,aJqpCZ,CItpCQ,gCAEI,YAAA,CADA,aJ0pCZ,CI3pCQ,gCAEI,YAAA,CADA,aJ+pCZ,CIhqCQ,gCAEI,YAAA,CADA,aJoqCZ,CIrqCQ,gCAEI,YAAA,CADA,aJyqCZ,CI1qCQ,+BAEI,YAAA,CADA,aJ8qCZ,CI/qCQ,+BAEI,YAAA,CADA,aJmrCZ,CIprCQ,+BAEI,YAAA,CADA,aJwrCZ,CIzrCQ,+BAEI,YAAA,CADA,aJ6rCZ,CI9rCQ,8BAEI,YAAA,CADA,aJksCZ,CI5rCI,0BAEI,YAAA,CADA,aJgsCR,CIjsCI,6BAEI,YAAA,CADA,aJqsCR,CItsCI,4BAEI,YAAA,CADA,aJ0sCR,CI3sCI,0BAEI,YAAA,CADA,aJ+sCR,CIhtCI,6BAEI,YAAA,CADA,aJotCR,CIrtCI,6BAEI,YAAA,CADA,aJytCR,CI1tCI,4BAEI,YAAA,CADA,aJ8tCR,CIztCA,2BAEI,gCAAA,CADA,iCJ6tCJ,CIztCA,2BAEI,gCAAA,CADA,iCJ6tCJ,CIztCA,iCAEI,oBAAA,CADA,qBJ6tCJ,CKhwCE,KCAA,oBAAA,CACA,eAAA,CACA,YAAA,CACA,cAAA,CAIA,wCAAA,CADA,yCAAA,CADA,sCNqwCF,CKvwCI,OCSF,qBAAA,CAIA,aAAA,CAKA,6BAAA,CAHA,cAAA,CAEA,wCAAA,CADA,yCAAA,CAFA,UNkwCF,CM/sCM,KACE,WNktCR,CM/sCM,iBApCJ,aAAA,CACA,UNuvCF,CMzuCE,cACE,aAAA,CACA,UN4uCJ,CM9uCE,cACE,aAAA,CACA,SNivCJ,CMnvCE,cACE,aAAA,CACA,oBNsvCJ,CMxvCE,cACE,aAAA,CACA,SN2vCJ,CM7vCE,cACE,aAAA,CACA,SNgwCJ,CMlwCE,cACE,aAAA,CACA,oBNqwCJ,CMtuCM,UAhDJ,aAAA,CACA,UN0xCF,CMruCU,OAhEN,aAAA,CACA,iBNyyCJ,CM1uCU,OAhEN,aAAA,CACA,kBN8yCJ,CM/uCU,OAhEN,aAAA,CACA,SNmzCJ,CMpvCU,OAhEN,aAAA,CACA,kBNwzCJ,CMzvCU,OAhEN,aAAA,CACA,kBN6zCJ,CM9vCU,OAhEN,aAAA,CACA,SNk0CJ,CMnwCU,OAhEN,aAAA,CACA,kBNu0CJ,CMxwCU,OAhEN,aAAA,CACA,kBN40CJ,CM7wCU,OAhEN,aAAA,CACA,SNi1CJ,CMlxCU,QAhEN,aAAA,CACA,kBNs1CJ,CMvxCU,QAhEN,aAAA,CACA,kBN21CJ,CM5xCU,QAhEN,aAAA,CACA,UNg2CJ,CMzxCY,UAxDV,uBNq1CF,CM7xCY,UAxDV,wBNy1CF,CMjyCY,UAxDV,eN61CF,CMryCY,UAxDV,wBNi2CF,CMzyCY,UAxDV,wBNq2CF,CM7yCY,UAxDV,eNy2CF,CMjzCY,UAxDV,wBN62CF,CMrzCY,UAxDV,wBNi3CF,CMzzCY,UAxDV,eNq3CF,CM7zCY,WAxDV,wBNy3CF,CMj0CY,WAxDV,wBN63CF,CM1zCQ,WAEE,eN6zCV,CM1zCQ,WAEE,eN6zCV,CMp0CQ,WAEE,qBNu0CV,CMp0CQ,WAEE,qBNu0CV,CM90CQ,WAEE,oBNi1CV,CM90CQ,WAEE,oBNi1CV,CMx1CQ,WAEE,kBN21CV,CMx1CQ,WAEE,kBN21CV,CMl2CQ,WAEE,oBNq2CV,CMl2CQ,WAEE,oBNq2CV,CM52CQ,WAEE,kBN+2CV,CM52CQ,WAEE,kBN+2CV,COz6CI,yBDUE,QACE,WNm6CN,CMh6CI,oBApCJ,aAAA,CACA,UNu8CA,CMz7CA,iBACE,aAAA,CACA,UN27CF,CM77CA,iBACE,aAAA,CACA,SN+7CF,CMj8CA,iBACE,aAAA,CACA,oBNm8CF,CMr8CA,iBACE,aAAA,CACA,SNu8CF,CMz8CA,iBACE,aAAA,CACA,SN28CF,CM78CA,iBACE,aAAA,CACA,oBN+8CF,CMh7CI,aAhDJ,aAAA,CACA,UNm+CA,CM96CQ,UAhEN,aAAA,CACA,iBNi/CF,CMl7CQ,UAhEN,aAAA,CACA,kBNq/CF,CMt7CQ,UAhEN,aAAA,CACA,SNy/CF,CM17CQ,UAhEN,aAAA,CACA,kBN6/CF,CM97CQ,UAhEN,aAAA,CACA,kBNigDF,CMl8CQ,UAhEN,aAAA,CACA,SNqgDF,CMt8CQ,UAhEN,aAAA,CACA,kBNygDF,CM18CQ,UAhEN,aAAA,CACA,kBN6gDF,CM98CQ,UAhEN,aAAA,CACA,SNihDF,CMl9CQ,WAhEN,aAAA,CACA,kBNqhDF,CMt9CQ,WAhEN,aAAA,CACA,kBNyhDF,CM19CQ,WAhEN,aAAA,CACA,UN6hDF,CMt9CU,aAxDV,aNihDA,CMz9CU,aAxDV,uBNohDA,CM59CU,aAxDV,wBNuhDA,CM/9CU,aAxDV,eN0hDA,CMl+CU,aAxDV,wBN6hDA,CMr+CU,aAxDV,wBNgiDA,CMx+CU,aAxDV,eNmiDA,CM3+CU,aAxDV,wBNsiDA,CM9+CU,aAxDV,wBNyiDA,CMj/CU,aAxDV,eN4iDA,CMp/CU,cAxDV,wBN+iDA,CMv/CU,cAxDV,wBNkjDA,CM/+CM,iBAEE,eNi/CR,CM9+CM,iBAEE,eNg/CR,CMv/CM,iBAEE,qBNy/CR,CMt/CM,iBAEE,qBNw/CR,CM//CM,iBAEE,oBNigDR,CM9/CM,iBAEE,oBNggDR,CMvgDM,iBAEE,kBNygDR,CMtgDM,iBAEE,kBNwgDR,CM/gDM,iBAEE,oBNihDR,CM9gDM,iBAEE,oBNghDR,CMvhDM,iBAEE,kBNyhDR,CMthDM,iBAEE,kBNwhDR,CACF,COnlDI,yBDUE,QACE,WN4kDN,CMzkDI,oBApCJ,aAAA,CACA,UNgnDA,CMlmDA,iBACE,aAAA,CACA,UNomDF,CMtmDA,iBACE,aAAA,CACA,SNwmDF,CM1mDA,iBACE,aAAA,CACA,oBN4mDF,CM9mDA,iBACE,aAAA,CACA,SNgnDF,CMlnDA,iBACE,aAAA,CACA,SNonDF,CMtnDA,iBACE,aAAA,CACA,oBNwnDF,CMzlDI,aAhDJ,aAAA,CACA,UN4oDA,CMvlDQ,UAhEN,aAAA,CACA,iBN0pDF,CM3lDQ,UAhEN,aAAA,CACA,kBN8pDF,CM/lDQ,UAhEN,aAAA,CACA,SNkqDF,CMnmDQ,UAhEN,aAAA,CACA,kBNsqDF,CMvmDQ,UAhEN,aAAA,CACA,kBN0qDF,CM3mDQ,UAhEN,aAAA,CACA,SN8qDF,CM/mDQ,UAhEN,aAAA,CACA,kBNkrDF,CMnnDQ,UAhEN,aAAA,CACA,kBNsrDF,CMvnDQ,UAhEN,aAAA,CACA,SN0rDF,CM3nDQ,WAhEN,aAAA,CACA,kBN8rDF,CM/nDQ,WAhEN,aAAA,CACA,kBNksDF,CMnoDQ,WAhEN,aAAA,CACA,UNssDF,CM/nDU,aAxDV,aN0rDA,CMloDU,aAxDV,uBN6rDA,CMroDU,aAxDV,wBNgsDA,CMxoDU,aAxDV,eNmsDA,CM3oDU,aAxDV,wBNssDA,CM9oDU,aAxDV,wBNysDA,CMjpDU,aAxDV,eN4sDA,CMppDU,aAxDV,wBN+sDA,CMvpDU,aAxDV,wBNktDA,CM1pDU,aAxDV,eNqtDA,CM7pDU,cAxDV,wBNwtDA,CMhqDU,cAxDV,wBN2tDA,CMxpDM,iBAEE,eN0pDR,CMvpDM,iBAEE,eNypDR,CMhqDM,iBAEE,qBNkqDR,CM/pDM,iBAEE,qBNiqDR,CMxqDM,iBAEE,oBN0qDR,CMvqDM,iBAEE,oBNyqDR,CMhrDM,iBAEE,kBNkrDR,CM/qDM,iBAEE,kBNirDR,CMxrDM,iBAEE,oBN0rDR,CMvrDM,iBAEE,oBNyrDR,CMhsDM,iBAEE,kBNksDR,CM/rDM,iBAEE,kBNisDR,CACF,CO5vDI,yBDUE,QACE,WNqvDN,CMlvDI,oBApCJ,aAAA,CACA,UNyxDA,CM3wDA,iBACE,aAAA,CACA,UN6wDF,CM/wDA,iBACE,aAAA,CACA,SNixDF,CMnxDA,iBACE,aAAA,CACA,oBNqxDF,CMvxDA,iBACE,aAAA,CACA,SNyxDF,CM3xDA,iBACE,aAAA,CACA,SN6xDF,CM/xDA,iBACE,aAAA,CACA,oBNiyDF,CMlwDI,aAhDJ,aAAA,CACA,UNqzDA,CMhwDQ,UAhEN,aAAA,CACA,iBNm0DF,CMpwDQ,UAhEN,aAAA,CACA,kBNu0DF,CMxwDQ,UAhEN,aAAA,CACA,SN20DF,CM5wDQ,UAhEN,aAAA,CACA,kBN+0DF,CMhxDQ,UAhEN,aAAA,CACA,kBNm1DF,CMpxDQ,UAhEN,aAAA,CACA,SNu1DF,CMxxDQ,UAhEN,aAAA,CACA,kBN21DF,CM5xDQ,UAhEN,aAAA,CACA,kBN+1DF,CMhyDQ,UAhEN,aAAA,CACA,SNm2DF,CMpyDQ,WAhEN,aAAA,CACA,kBNu2DF,CMxyDQ,WAhEN,aAAA,CACA,kBN22DF,CM5yDQ,WAhEN,aAAA,CACA,UN+2DF,CMxyDU,aAxDV,aNm2DA,CM3yDU,aAxDV,uBNs2DA,CM9yDU,aAxDV,wBNy2DA,CMjzDU,aAxDV,eN42DA,CMpzDU,aAxDV,wBN+2DA,CMvzDU,aAxDV,wBNk3DA,CM1zDU,aAxDV,eNq3DA,CM7zDU,aAxDV,wBNw3DA,CMh0DU,aAxDV,wBN23DA,CMn0DU,aAxDV,eN83DA,CMt0DU,cAxDV,wBNi4DA,CMz0DU,cAxDV,wBNo4DA,CMj0DM,iBAEE,eNm0DR,CMh0DM,iBAEE,eNk0DR,CMz0DM,iBAEE,qBN20DR,CMx0DM,iBAEE,qBN00DR,CMj1DM,iBAEE,oBNm1DR,CMh1DM,iBAEE,oBNk1DR,CMz1DM,iBAEE,kBN21DR,CMx1DM,iBAEE,kBN01DR,CMj2DM,iBAEE,oBNm2DR,CMh2DM,iBAEE,oBNk2DR,CMz2DM,iBAEE,kBN22DR,CMx2DM,iBAEE,kBN02DR,CACF,COr6DI,0BDUE,QACE,WN85DN,CM35DI,oBApCJ,aAAA,CACA,UNk8DA,CMp7DA,iBACE,aAAA,CACA,UNs7DF,CMx7DA,iBACE,aAAA,CACA,SN07DF,CM57DA,iBACE,aAAA,CACA,oBN87DF,CMh8DA,iBACE,aAAA,CACA,SNk8DF,CMp8DA,iBACE,aAAA,CACA,SNs8DF,CMx8DA,iBACE,aAAA,CACA,oBN08DF,CM36DI,aAhDJ,aAAA,CACA,UN89DA,CMz6DQ,UAhEN,aAAA,CACA,iBN4+DF,CM76DQ,UAhEN,aAAA,CACA,kBNg/DF,CMj7DQ,UAhEN,aAAA,CACA,SNo/DF,CMr7DQ,UAhEN,aAAA,CACA,kBNw/DF,CMz7DQ,UAhEN,aAAA,CACA,kBN4/DF,CM77DQ,UAhEN,aAAA,CACA,SNggEF,CMj8DQ,UAhEN,aAAA,CACA,kBNogEF,CMr8DQ,UAhEN,aAAA,CACA,kBNwgEF,CMz8DQ,UAhEN,aAAA,CACA,SN4gEF,CM78DQ,WAhEN,aAAA,CACA,kBNghEF,CMj9DQ,WAhEN,aAAA,CACA,kBNohEF,CMr9DQ,WAhEN,aAAA,CACA,UNwhEF,CMj9DU,aAxDV,aN4gEA,CMp9DU,aAxDV,uBN+gEA,CMv9DU,aAxDV,wBNkhEA,CM19DU,aAxDV,eNqhEA,CM79DU,aAxDV,wBNwhEA,CMh+DU,aAxDV,wBN2hEA,CMn+DU,aAxDV,eN8hEA,CMt+DU,aAxDV,wBNiiEA,CMz+DU,aAxDV,wBNoiEA,CM5+DU,aAxDV,eNuiEA,CM/+DU,cAxDV,wBN0iEA,CMl/DU,cAxDV,wBN6iEA,CM1+DM,iBAEE,eN4+DR,CMz+DM,iBAEE,eN2+DR,CMl/DM,iBAEE,qBNo/DR,CMj/DM,iBAEE,qBNm/DR,CM1/DM,iBAEE,oBN4/DR,CMz/DM,iBAEE,oBN2/DR,CMlgEM,iBAEE,kBNogER,CMjgEM,iBAEE,kBNmgER,CM1gEM,iBAEE,oBN4gER,CMzgEM,iBAEE,oBN2gER,CMlhEM,iBAEE,kBNohER,CMjhEM,iBAEE,kBNmhER,CACF,CO9kEI,0BDUE,SACE,WNukEN,CMpkEI,qBApCJ,aAAA,CACA,UN2mEA,CM7lEA,kBACE,aAAA,CACA,UN+lEF,CMjmEA,kBACE,aAAA,CACA,SNmmEF,CMrmEA,kBACE,aAAA,CACA,oBNumEF,CMzmEA,kBACE,aAAA,CACA,SN2mEF,CM7mEA,kBACE,aAAA,CACA,SN+mEF,CMjnEA,kBACE,aAAA,CACA,oBNmnEF,CMplEI,cAhDJ,aAAA,CACA,UNuoEA,CMllEQ,WAhEN,aAAA,CACA,iBNqpEF,CMtlEQ,WAhEN,aAAA,CACA,kBNypEF,CM1lEQ,WAhEN,aAAA,CACA,SN6pEF,CM9lEQ,WAhEN,aAAA,CACA,kBNiqEF,CMlmEQ,WAhEN,aAAA,CACA,kBNqqEF,CMtmEQ,WAhEN,aAAA,CACA,SNyqEF,CM1mEQ,WAhEN,aAAA,CACA,kBN6qEF,CM9mEQ,WAhEN,aAAA,CACA,kBNirEF,CMlnEQ,WAhEN,aAAA,CACA,SNqrEF,CMtnEQ,YAhEN,aAAA,CACA,kBNyrEF,CM1nEQ,YAhEN,aAAA,CACA,kBN6rEF,CM9nEQ,YAhEN,aAAA,CACA,UNisEF,CM1nEU,cAxDV,aNqrEA,CM7nEU,cAxDV,uBNwrEA,CMhoEU,cAxDV,wBN2rEA,CMnoEU,cAxDV,eN8rEA,CMtoEU,cAxDV,wBNisEA,CMzoEU,cAxDV,wBNosEA,CM5oEU,cAxDV,eNusEA,CM/oEU,cAxDV,wBN0sEA,CMlpEU,cAxDV,wBN6sEA,CMrpEU,cAxDV,eNgtEA,CMxpEU,eAxDV,wBNmtEA,CM3pEU,eAxDV,wBNstEA,CMnpEM,mBAEE,eNqpER,CMlpEM,mBAEE,eNopER,CM3pEM,mBAEE,qBN6pER,CM1pEM,mBAEE,qBN4pER,CMnqEM,mBAEE,oBNqqER,CMlqEM,mBAEE,oBNoqER,CM3qEM,mBAEE,kBN6qER,CM1qEM,mBAEE,kBN4qER,CMnrEM,mBAEE,oBNqrER,CMlrEM,mBAEE,oBNorER,CM3rEM,mBAEE,kBN6rER,CM1rEM,mBAEE,kBN4rER,CACF,COvvEI,0BDUE,UACE,WNgvEN,CM7uEI,sBApCJ,aAAA,CACA,UNoxEA,CMtwEA,mBACE,aAAA,CACA,UNwwEF,CM1wEA,mBACE,aAAA,CACA,SN4wEF,CM9wEA,mBACE,aAAA,CACA,oBNgxEF,CMlxEA,mBACE,aAAA,CACA,SNoxEF,CMtxEA,mBACE,aAAA,CACA,SNwxEF,CM1xEA,mBACE,aAAA,CACA,oBN4xEF,CM7vEI,eAhDJ,aAAA,CACA,UNgzEA,CM3vEQ,YAhEN,aAAA,CACA,iBN8zEF,CM/vEQ,YAhEN,aAAA,CACA,kBNk0EF,CMnwEQ,YAhEN,aAAA,CACA,SNs0EF,CMvwEQ,YAhEN,aAAA,CACA,kBN00EF,CM3wEQ,YAhEN,aAAA,CACA,kBN80EF,CM/wEQ,YAhEN,aAAA,CACA,SNk1EF,CMnxEQ,YAhEN,aAAA,CACA,kBNs1EF,CMvxEQ,YAhEN,aAAA,CACA,kBN01EF,CM3xEQ,YAhEN,aAAA,CACA,SN81EF,CM/xEQ,aAhEN,aAAA,CACA,kBNk2EF,CMnyEQ,aAhEN,aAAA,CACA,kBNs2EF,CMvyEQ,aAhEN,aAAA,CACA,UN02EF,CMnyEU,eAxDV,aN81EA,CMtyEU,eAxDV,uBNi2EA,CMzyEU,eAxDV,wBNo2EA,CM5yEU,eAxDV,eNu2EA,CM/yEU,eAxDV,wBN02EA,CMlzEU,eAxDV,wBN62EA,CMrzEU,eAxDV,eNg3EA,CMxzEU,eAxDV,wBNm3EA,CM3zEU,eAxDV,wBNs3EA,CM9zEU,eAxDV,eNy3EA,CMj0EU,gBAxDV,wBN43EA,CMp0EU,gBAxDV,wBN+3EA,CM5zEM,qBAEE,eN8zER,CM3zEM,qBAEE,eN6zER,CMp0EM,qBAEE,qBNs0ER,CMn0EM,qBAEE,qBNq0ER,CM50EM,qBAEE,oBN80ER,CM30EM,qBAEE,oBN60ER,CMp1EM,qBAEE,kBNs1ER,CMn1EM,qBAEE,kBNq1ER,CM51EM,qBAEE,oBN81ER,CM31EM,qB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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-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-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: #fbfbfb;\n --eui-base-color-grey-2-rgb: rgb(251, 251, 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-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-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-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-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-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-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-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: black;\n --eui-base-color-white: white;\n --eui-base-color: var(--eui-base-color-grey-100);\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 --eui-border-state-width: 6px;\n --eui-app-header-bg-color: var(--eui-base-color-white);\n --eui-app-header-title-color: var(--eui-base-color-grey-100);\n --eui-app-header-subtitle-color: var(--eui-base-color-grey-75);\n --eui-app-toolbar-color: var(--eui-base-color-white);\n --eui-app-toolbar-bg-color: var(--eui-base-color-primary-100);\n --eui-app-toolbar-border-bottom-color: var(--eui-base-color-primary-25);\n --eui-app-sidebar-bg-color: var(--eui-base-color-grey-2);\n --eui-app-sidebar-border-right-color: #f2f4f9;\n --eui-app-body-bg-color: var(--eui-base-color-grey-2);\n --eui-app-main-bg-color: var(--eui-base-color-grey-2);\n --eui-app-footer-color: var(--eui-base-color-font);\n --eui-app-footer-bg-color: var(--eui-base-color-grey-2);\n --eui-app-footer-border-top-color: #e8ebf1;\n}\n\n.xs, .sm {\n --eui-app-header-height: 0px;\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-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: #fbfbfb;\n fill: #fbfbfb;\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-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-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-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-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-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-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: #da2131;\n --mat-datepicker-calendar-date-selected-disabled-state-background-color: rgba(218, 33, 49, 0.4);\n --mat-datepicker-calendar-date-today-selected-state-outline-color: white;\n --mat-datepicker-calendar-date-focus-state-background-color: rgba(218, 33, 49, 0.3);\n --mat-datepicker-calendar-date-hover-state-background-color: rgba(218, 33, 49, 0.3);\n --mat-datepicker-calendar-date-in-range-state-background-color: rgba(218, 33, 49, 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: #da2131;\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\nhtml {\n --mat-autocomplete-background-color: white;\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.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\nhtml {\n --eui-html-font-size: var(--eui-base-font-size);\n --eui-html-line-height: var(--eui-base-line-height);\n display: block;\n height: 100%;\n font-size: var(--eui-html-font-size);\n line-height: var(--eui-html-line-height);\n}\n\nbody {\n --eui-body-bg-color: var(--eui-app-body-bg-color);\n --eui-body-color: var(--eui-base-color);\n --eui-body-font-family: var(--eui-base-font-family);\n --eui-body-font-size: var(--eui-base-font-size);\n --eui-body-line-height: var(--eui-base-line-height);\n background-color: var(--eui-body-bg-color);\n color: var(--eui-body-color);\n font-family: var(--eui-body-font-family);\n font-feature-settings: \"liga\";\n font-size: var(--eui-body-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-body-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,\n.label,\nblockquote,\nabbr,\nmark,\ndel {\n font-size: var(--eui-base-font-size);\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\nhtml.eui-t-compact {\n --eui-base-font-size: 14px;\n --eui-base-line-height: 1.25;\n font-size: var(--eui-base-font-size);\n line-height: var(--eui-base-line-height);\n}\n\nform.eui-t-form-compact {\n --eui-base-font-size: 14px;\n --eui-base-line-height: 1.25;\n --eui-input-group-spacing: var(--eui-base-spacing-s);\n --eui-compact-ratio: 0.875;\n --eui-base-spacing-none: calc( var(--eui-compact-ratio) * 0 );\n --eui-base-spacing-2xs: calc( var(--eui-compact-ratio) * 0.25rem );\n --eui-base-spacing-xs: calc( var(--eui-compact-ratio) * 0.5rem );\n --eui-base-spacing-s: calc( var(--eui-compact-ratio) * 0.75rem );\n --eui-base-spacing-m: calc( var(--eui-compact-ratio) * 1rem );\n --eui-base-spacing-l: calc( var(--eui-compact-ratio) * 1.5rem );\n --eui-base-spacing-xl: calc( var(--eui-compact-ratio) * 2rem );\n --eui-base-spacing-2xl: calc( var(--eui-compact-ratio) * 2.5rem );\n --eui-base-spacing-3xl: calc( var(--eui-compact-ratio) * 3rem );\n --eui-base-spacing-4xl: calc( var(--eui-compact-ratio) * 4rem );\n --eui-compact-ratio: 0.82;\n font-size: var(--eui-base-font-size);\n line-height: var(--eui-base-line-height);\n}\nform.eui-t-form-compact .eui-input-group {\n margin-bottom: var(--eui-input-group-spacing);\n}\nform.eui-t-form-compact .eui-input-group label {\n margin-bottom: var(--eui-base-spacing-2xs);\n}\nform.eui-t-form-compact .eui-input-group-addon-item {\n min-height: calc(2.5 * var(--eui-base-spacing-m));\n min-width: calc(2.5 * var(--eui-base-spacing-m));\n padding: calc(var(--eui-base-spacing-xs) - 1px);\n}\nform.eui-t-form-compact .eui-button--icon-only {\n padding: calc(var(--eui-base-spacing-s) - 1px) var(--eui-base-spacing-xs);\n}\n\n.eui-table.eui-t-table-compact {\n --eui-base-font-size: 14px;\n --eui-base-line-height: 1.25;\n --eui-table-header-padding: var(--eui-base-spacing-s);\n --eui-table-row-padding: var(--eui-base-spacing-2xs);\n --eui-table-footer-padding: var(--eui-base-spacing-s);\n --eui-compact-ratio: 0.875;\n --eui-base-spacing-none: calc( var(--eui-compact-ratio) * 0 );\n --eui-base-spacing-2xs: calc( var(--eui-compact-ratio) * 0.25rem );\n --eui-base-spacing-xs: calc( var(--eui-compact-ratio) * 0.5rem );\n --eui-base-spacing-s: calc( var(--eui-compact-ratio) * 0.75rem );\n --eui-base-spacing-m: calc( var(--eui-compact-ratio) * 1rem );\n --eui-base-spacing-l: calc( var(--eui-compact-ratio) * 1.5rem );\n --eui-base-spacing-xl: calc( var(--eui-compact-ratio) * 2rem );\n --eui-base-spacing-2xl: calc( var(--eui-compact-ratio) * 2.5rem );\n --eui-base-spacing-3xl: calc( var(--eui-compact-ratio) * 3rem );\n --eui-base-spacing-4xl: calc( var(--eui-compact-ratio) * 4rem );\n font-size: var(--eui-base-font-size);\n line-height: var(--eui-base-line-height);\n}\n.eui-table.eui-t-table-compact thead tr {\n height: auto;\n}\n.eui-table.eui-t-table-compact thead tr th {\n padding: var(--eui-table-header-padding) var(--eui-base-spacing-s);\n}\n.eui-table.eui-t-table-compact tbody tr {\n height: auto;\n}\n.eui-table.eui-t-table-compact tbody tr td {\n padding: var(--eui-table-row-padding) var(--eui-base-spacing-s);\n}\n.eui-table.eui-t-table-compact tfoot tr {\n height: auto;\n}\n.eui-table.eui-t-table-compact tfoot tr td {\n padding: var(--eui-table-footer-padding) var(--eui-base-spacing-s);\n}\n\n.eui-card.eui-t-card-compact {\n --eui-base-font-size: 14px;\n --eui-base-line-height: 1.25;\n --eui-card-title-size: var(--eui-base-font-size-m);\n --eui-card-subtitle-size: var(--eui-base-font-size-s);\n --eui-compact-ratio: 0.875;\n --eui-base-spacing-none: calc( var(--eui-compact-ratio) * 0 );\n --eui-base-spacing-2xs: calc( var(--eui-compact-ratio) * 0.25rem );\n --eui-base-spacing-xs: calc( var(--eui-compact-ratio) * 0.5rem );\n --eui-base-spacing-s: calc( var(--eui-compact-ratio) * 0.75rem );\n --eui-base-spacing-m: calc( var(--eui-compact-ratio) * 1rem );\n --eui-base-spacing-l: calc( var(--eui-compact-ratio) * 1.5rem );\n --eui-base-spacing-xl: calc( var(--eui-compact-ratio) * 2rem );\n --eui-base-spacing-2xl: calc( var(--eui-compact-ratio) * 2.5rem );\n --eui-base-spacing-3xl: calc( var(--eui-compact-ratio) * 3rem );\n --eui-base-spacing-4xl: calc( var(--eui-compact-ratio) * 4rem );\n font-size: var(--eui-base-font-size);\n line-height: var(--eui-base-line-height);\n}\n.eui-card.eui-t-card-compact .eui-card-header__title-container-title, .eui-card.eui-t-card-compact .eui-card-header__title-container-title .eui-label {\n font-size: var(--eui-card-title-size);\n}\n.eui-card.eui-t-card-compact .eui-card-header__title-container-subtitle, .eui-card.eui-t-card-compact .eui-card-header__title-container-subtitle .eui-label {\n font-size: var(--eui-card-subtitle-size);\n}\n.eui-card.eui-t-card-compact .eui-card-header__urgent-indicator::after {\n font-size: var(--eui-base-font-size-2xl);\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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGV1aS9zdHlsZXMtYmFzZS9zcmMvc3R5bGVzLzAyLWJhc2UvZnVuY3Rpb25zL191dGlscy5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BldWkvc3R5bGVzLWJhc2Uvc3JjL3N0eWxlcy8wMi1iYXNlL21peGlucy9fZXVpLWZvbnQtZmFtaWx5LnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGV1aS9zdHlsZXMtYmFzZS9zcmMvc3R5bGVzLzAwLXJlc2V0L19tb2R1bGUuc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AZXVpL3N0eWxlcy1iYXNlL3NyYy9zdHlsZXMvMDMtdmFycy9fdG9rZW5zLnZhcnMuc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AZXVpL3N0eWxlcy1iYXNlL3NyYy9zdHlsZXMvMDMtdmFycy9fb3RoZXIudmFycy5zY3NzIiwiMDJiLWJhc2UtdmFycy9fbGF5b3V0LnZhcnMuc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AZXVpL3N0eWxlcy1iYXNlL3NyYy9zdHlsZXMvMDUtYXNzZXRzL2ljb25zLXN2Zy9faWNvbnMtZ2VuZXJpY3Muc2NzcyIsIjA0LXZlbmRvcnMvbGlicy9ib290c3RyYXAvc2Nzcy9fZ3JpZC5zY3NzIiwiMDQtdmVuZG9ycy9saWJzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fZ3JpZC5zY3NzIiwiMDQtdmVuZG9ycy9saWJzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fYnJlYWtwb2ludHMuc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYW5ndWxhci9tYXRlcmlhbC9jb3JlL3JpcHBsZS9fcmlwcGxlLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGFuZ3VsYXIvY2RrL2ExMXkvX2luZGV4LnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGFuZ3VsYXIvY2RrL292ZXJsYXkvX2luZGV4LnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGFuZ3VsYXIvY2RrL3RleHQtZmllbGQvX2luZGV4LnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZS9mb2N1cy1pbmRpY2F0b3JzL19wcml2YXRlLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZS9zdHlsZS9fbGF5b3V0LWNvbW1vbi5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUvc3R5bGUvX3Nhc3MtdXRpbHMuc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AbWF0ZXJpYWwvdGhlbWUvX2Nzcy5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXIvX2RhdGVwaWNrZXItdGhlbWUuc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYW5ndWxhci9tYXRlcmlhbC9idXR0b24vX2ljb24tYnV0dG9uLXRoZW1lLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uL19idXR0b24tdGhlbWUtcHJpdmF0ZS5zY3NzIiwiMDUtbWF0ZXJpYWwvb3ZlcnJpZGVzL19jYWxlbmRhci5zY3NzIiwiMDUtbWF0ZXJpYWwvb3ZlcnJpZGVzL19jZGstZHJhZy5zY3NzIiwiMDUtbWF0ZXJpYWwvb3ZlcnJpZGVzL19jZGstZ2xvYmFsLXNjcm9sbGJsb2NrLnNjc3MiLCIwMi1iYXNlL21peGlucy9fZXVpLXNjcm9sbGJhcnMuc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AZXVpL3N0eWxlcy1iYXNlL3NyYy9zdHlsZXMvMDItYmFzZS9taXhpbnMvdXRpbHMvX21lZGlhLnNjc3MiLCIwNS1tYXRlcmlhbC9vdmVycmlkZXMvX2Nkay1vdmVybGF5LWNvbnRhaW5lci5zY3NzIiwiMDUtbWF0ZXJpYWwvb3ZlcnJpZGVzL19jZGstb3ZlcmxheS1jb250YWluZXIubXEuc2NzcyIsIjA1LW1hdGVyaWFsL292ZXJyaWRlcy9fY2RrLW92ZXJsYXktcGFuZS5zY3NzIiwiMDYtc2hhcmVkL19ldWktaW5wdXQtbWF4bGVuZ3RoLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGV1aS9zdHlsZXMtYmFzZS9zcmMvc3R5bGVzLzAyLWJhc2UvbWl4aW5zL19ldWktZm9udC5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BldWkvc3R5bGVzLWJhc2Uvc3JjL3N0eWxlcy8wNC1lbGVtZW50cy9faHRtbC5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BldWkvc3R5bGVzLWJhc2Uvc3JjL3N0eWxlcy8wNC1lbGVtZW50cy9fYm9keS5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BldWkvc3R5bGVzLWJhc2Uvc3JjL3N0eWxlcy8wNC1lbGVtZW50cy9fc2hhcmVkLnNjc3MiLCIwNy1lbGVtZW50cy9ldWktdGFibGUtZGVmYXVsdC9fZXVpLXRhYmxlLWRlZmF1bHQuc2NzcyIsIjA4LXRoZW1lcy9fbW9kdWxlLWNvbXBhY3Quc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AZXVpL3N0eWxlcy1iYXNlL3NyYy9zdHlsZXMvMDItYmFzZS9taXhpbnMvdGhlbWluZy9fY29tcGFjdC12YXJzLnNjc3MiLCIxMC1tZWRpYS9faWVpbWdmaXguc2NzcyIsIjExLWV4dHJhcy9fY29va2llLWNvbnNlbnQuc2NzcyIsIjExLWV4dHJhcy9fcHJlbG9hZGVyLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBd0NBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUN4Q0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQ0FBO0FBRUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBS0M7RUFDRztFQUNBOzs7QUFHRjtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBSUE7RUFDRTs7O0FBR0Y7QUFBQTtBQUFBO0FBSUE7RUFDRTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUNFO0VBQ0E7OztBQUdGO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQ0U7RUFDQTs7O0FBR0Y7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUlBO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUlBO0FBQUE7RUFFRTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7RUFHRTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFJQTtFQUNFOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7RUFFRTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUlBO0VBQ0U7OztBQUdGO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFLRTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBLFFBQ1E7RUFDTjs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBLFNBQ1M7RUFDUDs7O0FBR0Y7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7RUFJRTs7O0FBR0Y7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7RUFJRTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtFQUlFOzs7QUFHRjtBQUFBO0FBQUE7QUFJQTtFQUNFOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBSUE7RUFDRTs7O0FBR0Y7QUFBQTtBQUFBO0FBSUE7RUFDRTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0VBRUU7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBSUE7QUFBQTtFQUVFOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQ0U7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBSUE7RUFDRTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUNFO0VBQ0E7OztBQUdGO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFJQTtFQUNFOzs7QUFHRjtBQUFBO0FBQUE7QUFJQTtFQUNFOzs7QUFHRjtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBSUE7RUFDRTs7O0FBR0Y7QUFBQTtBQUFBO0FBSUE7RUFDRTs7O0FDM1ZKO0VBRUk7RUFHQTtFQUNBO0VBS1E7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBTUo7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFJSjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBR0E7RUFFSTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBSUo7RUFFSTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFVSTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQU1KO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBS0E7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFLQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTs7O0FDakVSO0VBQ0k7RUFDQTtFQUNBO0VBRUE7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUdBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUdBOzs7QUNwQ0o7RUFFSTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUdBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUdBO0VBSUE7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUVBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7OztBQ3JFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0E7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBS0E7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBS1I7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFJUjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTtFQUNBOzs7QUNwQ0Y7RUNBQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTs7QURKRTtFQ1NGO0VBSUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUErQ0k7RUFDRTs7O0FBR0Y7RUFwQ0o7RUFDQTs7O0FBY0E7RUFDRTtFQUNBOzs7QUFGRjtFQUNFO0VBQ0E7OztBQUZGO0VBQ0U7RUFDQTs7O0FBRkY7RUFDRTtFQUNBOzs7QUFGRjtFQUNFO0VBQ0E7OztBQUZGO0VBQ0U7RUFDQTs7O0FBK0JFO0VBaERKO0VBQ0E7OztBQXFEUTtFQWhFTjtFQUNBOzs7QUErRE07RUFoRU47RUFDQTs7O0FBK0RNO0VBaEVOO0VBQ0E7OztBQStETTtFQWhFTjtFQUNBOzs7QUErRE07RUFoRU47RUFDQTs7O0FBK0RNO0VBaEVOO0VBQ0E7OztBQStETTtFQWhFTjtFQUNBOzs7QUErRE07RUFoRU47RUFDQTs7O0FBK0RNO0VBaEVOO0VBQ0E7OztBQStETTtFQWhFTjtFQUNBOzs7QUErRE07RUFoRU47RUFDQTs7O0FBK0RNO0VBaEVOO0VBQ0E7OztBQXVFUTtFQXhEVjs7O0FBd0RVO0VBeERWOzs7QUF3RFU7RUF4RFY7OztBQXdEVTtFQXhEVjs7O0FBd0RVO0VBeERWOzs7QUF3RFU7RUF4RFY7OztBQXdEVTtFQXhEVjs7O0FBd0RVO0VBeERWOzs7QUF3RFU7RUF4RFY7OztBQXdEVTtFQXhEVjs7O0FBd0RVO0VBeERWOzs7QUFtRU07QUFBQTtFQUVFOzs7QUFHRjtBQUFBO0VBRUU7OztBQVBGO0FBQUE7RUFFRTs7O0FBR0Y7QUFBQTtFQUVFOzs7QUFQRjtBQUFBO0VBRUU7OztBQUdGO0FBQUE7RUFFRTs7O0FBUEY7QUFBQTtFQUVFOzs7QUFHRjtBQUFBO0VBRUU7OztBQVBGO0FBQUE7RUFFRTs7O0FBR0Y7QUFBQTtFQUVFOzs7QUFQRjtBQUFBO0VBRUU7OztBQUdGO0FBQUE7RUFFRTs7O0FDMUROO0VEVUU7SUFDRTs7RUFHRjtJQXBDSjtJQUNBOztFQWNBO0lBQ0U7SUFDQTs7RUFGRjtJQUNFO0lBQ0E7O0VBRkY7SUFDRTtJQUNBOztFQUZGO0lBQ0U7SUFDQTs7RUFGRjtJQUNFO0lBQ0E7O0VBRkY7SUFDRTtJQUNBOztFQStCRTtJQWhESjtJQUNBOztFQXFEUTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQXVFUTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQW1FTTtBQUFBO0lBRUU7O0VBR0Y7QUFBQTtJQUVFOztFQVBGO0FBQUE7SUFFRTs7RUFHRjtBQUFBO0lBRUU7O0VBUEY7QUFBQTtJQUVFOztFQUdGO0FBQUE7SUFFRTs7RUFQRjtBQUFBO0lBRUU7O0VBR0Y7QUFBQTtJQUVFOztFQVBGO0FBQUE7SUFFRTs7RUFHRjtBQUFBO0lBRUU7O0VBUEY7QUFBQTtJQUVFOztFQUdGO0FBQUE7SUFFRTs7O0FDMUROO0VEVUU7SUFDRTs7RUFHRjtJQXBDSjtJQUNBOztFQWNBO0lBQ0U7SUFDQTs7RUFGRjtJQUNFO0lBQ0E7O0VBRkY7SUFDRTtJQUNBOztFQUZGO0lBQ0U7SUFDQTs7RUFGRjtJQUNFO0lBQ0E7O0VBRkY7SUFDRTtJQUNBOztFQStCRTtJQWhESjtJQUNBOztFQXFEUTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQXVFUTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQW1FTTtBQUFBO0lBRUU7O0VBR0Y7QUFBQTtJQUVFOztFQVBGO0FBQUE7SUFFRTs7RUFHRjtBQUFBO0lBRUU7O0VBUEY7QUFBQTtJQUVFOztFQUdGO0FBQUE7SUFFRTs7RUFQRjtBQUFBO0lBRUU7O0VBR0Y7QUFBQTtJQUVFOztFQVBGO0FBQUE7SUFFRTs7RUFHRjtBQUFBO0lBRUU7O0VBUEY7QUFBQTtJQUVFOztFQUdGO0FBQUE7SUFFRTs7O0FDMUROO0VEVUU7SUFDRTs7RUFHRjtJQXBDSjtJQUNBOztFQWNBO0lBQ0U7SUFDQTs7RUFGRjtJQUNFO0lBQ0E7O0VBRkY7SUFDRTtJQUNBOztFQUZGO0lBQ0U7SUFDQTs7RUFGRjtJQUNFO0lBQ0E7O0VBRkY7SUFDRTtJQUNBOztFQStCRTtJQWhESjtJQUNBOztFQXFEUTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQXVFUTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQW1FTTtBQUFBO0lBRUU7O0VBR0Y7QUFBQTtJQUVFOztFQVBGO0FBQUE7SUFFRTs7RUFHRjtBQUFBO0lBRUU7O0VBUEY7QUFBQTtJQUVFOztFQUdGO0FBQUE7SUFFRTs7RUFQRjtBQUFBO0lBRUU7O0VBR0Y7QUFBQTtJQUVFOztFQVBGO0FBQUE7SUFFRTs7RUFHRjtBQUFBO0lBRUU7O0VBUEY7QUFBQTtJQUVFOztFQUdGO0FBQUE7SUFFRTs7O0FDMUROO0VEVUU7SUFDRTs7RUFHRjtJQXBDSjtJQUNBOztFQWNBO0lBQ0U7SUFDQTs7RUFGRjtJQUNFO0lBQ0E7O0VBRkY7SUFDRTtJQUNBOztFQUZGO0lBQ0U7SUFDQTs7RUFGRjtJQUNFO0lBQ0E7O0VBRkY7SUFDRTtJQUNBOztFQStCRTtJQWhESjtJQUNBOztFQXFEUTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQXVFUTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQW1FTTtBQUFBO0lBRUU7O0VBR0Y7QUFBQTtJQUVFOztFQVBGO0FBQUE7SUFFRTs7RUFHRjtBQUFBO0lBRUU7O0VBUEY7QUFBQTtJQUVFOztFQUdGO0FBQUE7SUFFRTs7RUFQRjtBQUFBO0lBRUU7O0VBR0Y7QUFBQTtJQUVFOztFQVBGO0FBQUE7SUFFRTs7RUFHRjtBQUFBO0lBRUU7O0VBUEY7QUFBQTtJQUVFOztFQUdGO0FBQUE7SUFFRTs7O0FDMUROO0VEVUU7SUFDRTs7RUFHRjtJQXBDSjtJQUNBOztFQWNBO0lBQ0U7SUFDQTs7RUFGRjtJQUNFO0lBQ0E7O0VBRkY7SUFDRTtJQUNBOztFQUZGO0lBQ0U7SUFDQTs7RUFGRjtJQUNFO0lBQ0E7O0VBRkY7SUFDRTtJQUNBOztFQStCRTtJQWhESjtJQUNBOztFQXFEUTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQXVFUTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQW1FTTtBQUFBO0lBRUU7O0VBR0Y7QUFBQTtJQUVFOztFQVBGO0FBQUE7SUFFRTs7RUFHRjtBQUFBO0lBRUU7O0VBUEY7QUFBQTtJQUVFOztFQUdGO0FBQUE7SUFFRTs7RUFQRjtBQUFBO0lBRUU7O0VBR0Y7QUFBQTtJQUVFOztFQVBGO0FBQUE7SUFFRTs7RUFHRjtBQUFBO0lBRUU7O0VBUEY7QUFBQTtJQUVFOztFQUdGO0FBQUE7SUFFRTs7O0FDMUROO0VEVUU7SUFDRTs7RUFHRjtJQXBDSjtJQUNBOztFQWNBO0lBQ0U7SUFDQTs7RUFGRjtJQUNFO0lBQ0E7O0VBRkY7SUFDRTtJQUNBOztFQUZGO0lBQ0U7SUFDQTs7RUFGRjtJQUNFO0lBQ0E7O0VBRkY7SUFDRTtJQUNBOztFQStCRTtJQWhESjtJQUNBOztFQXFEUTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQStETTtJQWhFTjtJQUNBOztFQXVFUTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQW1FTTtBQUFBO0lBRUU7O0VBR0Y7QUFBQTtJQUVFOztFQVBGO0FBQUE7SUFFRTs7RUFHRjtBQUFBO0lBRUU7O0VBUEY7QUFBQTtJQUVFOztFQUdGO0FBQUE7SUFFRTs7RUFQRjtBQUFBO0lBRUU7O0VBR0Y7QUFBQTtJQUVFOztFQVBGO0FBQUE7SUFFRTs7RUFHRjtBQUFBO0lBRUU7O0VBUEY7QUFBQTtJQUVFOztFQUdGO0FBQUE7SUFFRTs7O0FFcEhSO0VBQ0U7RUFJQTs7QUFPQTtFQUNFOzs7QUFJSjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUVBO0VBSUE7O0FDZUE7RURYRTs7O0FDcENKO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUlBO0VBR0E7RUFHQTtFQUNBO0VBTUE7O0FBRUE7RUFDRTtFQUNBOzs7QUNoQko7RUFFRTtFQUdBO0VBQ0E7RUFDQTtFQUNB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RUFDQTtFQUNBOztBQUdBO0VBQ0k7O0FBRUE7RUFDSTs7QUFJUjtFQUNJO0VBQ0E7RUFDQTs7QUFHSjtFQUNJOzs7QUFNUjtFQUVJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUN2REE7RUFFSTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFRHlESjtFQUNBOztBQUlJO0VBQ0k7O0FBRUE7RUFDSTs7QUFNUjtFQUNJOztBQUVBO0VBQ0k7O0FBTVI7RUFDSTs7QUFFQTtFQUNJOzs7QUFRaEI7RUFFSTtFQUNBO0VBQ0E7RUFDQTtFQ3JHQTtFQUVJO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VEdUdKO0VBQ0E7O0FBTVk7RUFFSTs7QUFHSjtFQUVJOztBQUtKO0VBQ0k7OztBRTdIcEI7RUFDSTtJQUNJOzs7QUFHUjtFQUVJO0lBQ0k7SUFDQTtJQUNBOzs7QUNWUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUNYSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFLWjtBQUNBO0VBQ0k7SUFDSTtJQUNBO0lBQ0E7O0VBR0o7SUFDSTtJQUNBO0lBQ0E7OztBQUdSO0VBQ0k7SUFDSTtJQUNBO0lBQ0E7O0VBR0o7SUFDSTtJQUNBO0lBQ0E7OztBQUdSO0VBQ0k7SUFDSTtJQUNBOztFQUVKO0lBQ0k7SUFDQTs7RUFFSjtJQUNJOzs7QUFHUjtFQUNJO0lBQ0k7SUFDQTs7RUFFSjtJQUNJO0lBQ0E7O0VBRUo7SUFDSSIsImZpbGUiOiJldWkudGVtcC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlIFwic2FzczptYXRoXCI7XG5AZnVuY3Rpb24gdigkdmFyLCAkZmFsbGJhY2s6IG51bGwpIHtcbiAgICBAaWYgKCRmYWxsYmFjaykge1xuICAgICAgICBAcmV0dXJuIHZhcigtLSN7JHZhcn0sICN7JGZhbGxiYWNrfSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICAgQHJldHVybiB2YXIoLS0jeyR2YXJ9KTtcbiAgICB9XG59XG5AZnVuY3Rpb24gbWFwLWRlZXAtZ2V0KCRtYXAsICRrZXlzLi4uKSB7XG4gICAgQGVhY2ggJGtleSBpbiAka2V5cyB7XG4gICAgICAgIEBkZWJ1ZyAjeyRtYXB9O1xuICAgICAgICAkbWFwOiBtYXAtZ2V0KCRtYXAsICRrZXkpO1xuICAgIH1cbiAgICBAcmV0dXJuICRtYXA7XG59XG5AZnVuY3Rpb24gdG9SR0IoJGNvbG9yKSB7XG4gICAgQHJldHVybiBcInJnYihcIiArIHJlZCgkY29sb3IpICsgXCIsIFwiICsgZ3JlZW4oJGNvbG9yKSArIFwiLCBcIiArIGJsdWUoJGNvbG9yKSsgXCIpXCI7XG59XG5AZnVuY3Rpb24gZ2V0Q29udHJhc3QoJGNvbG9yKSB7XG4gICAgJGNvbG9yLWJyaWdodG5lc3M6IHJvdW5kKChyZWQoJGNvbG9yKSAqIDI5OSkgKyAoZ3JlZW4oJGNvbG9yKSAqIDU4NykgKyBtYXRoLmRpdigoYmx1ZSgkY29sb3IpICogMTE0KSwgMTAwMCkpO1xuICAgICRsaWdodC1jb2xvcjogcm91bmQoKHJlZCgjZmZmKSAqIDI5OSkgKyAoZ3JlZW4oI2ZmZikgKiA1ODcpICsgbWF0aC5kaXYoKGJsdWUoI2ZmZikgKiAxMTQpLCAxMDAwKSk7XG4gICAgQGlmIGFicygkY29sb3ItYnJpZ2h0bmVzcykgPCBtYXRoLmRpdigkbGlnaHQtY29sb3IsIDIpIHtcbiAgICAgICAgQHJldHVybiB3aGl0ZTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgICBAcmV0dXJuIG1hcC1nZXQoJGVjbC1iYXNlLWNvbG9ycywgJ2dyZXktMTAwJyk7XG4gICAgfVxufVxuQGZ1bmN0aW9uIGdldENvbG9yKCRzaGFkZTogcHJpbWFyeSwgJGh1ZTogMTAwKSB7XG4gICAgJHNlbGVjdGVkLXNoYWRlOiBtYXAtZ2V0KCRldWktYmFzZS10b2tlbnMtY29sb3JzLCAkc2hhZGUpO1xuICAgIEBpZiAoJHNlbGVjdGVkLXNoYWRlKSB7XG4gICAgICAgIEByZXR1cm4gbWFwLWdldCgkc2VsZWN0ZWQtc2hhZGUsICRodWUpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAgIEByZXR1cm4gYmxhY2s7XG4gICAgfVxuICAgIEByZXR1cm4gJHNlbGVjdGVkLWNvbG9yO1xufVxuXG4vKipcbiAgICogRUNMIGNvbG9yIHZhcmlhbnRzIGZvcm11bGFcbiAgICogQXBwbGllcyB0aW50IG9yIHNoYWRlIG9mIGJhc2UgY29sb3IgcHJvdmlkZWRcbiAgICpcbiAgICogQHBhcmFtIGNvbG9yOiBiYXNlIGNvbG9yLCBoYXMgdmFyaWFudCBvZiAxMDBcbiAgICogQHBhcmFtIHZhcmlhbnQ6IG51bWJlciBpbiByYW5nZSBiZXR3ZWVuIDAgLSAyMDBcbiAgICogICAgICAgICAgICAgICAgIDEwMCAtIG5ldXRyYWwgdmFyaWFudCwgbm8gY2hhbmdlc1xuICAgKiAgICAgICAgICAgICAgICAgMCAtIDk5OiBicmlnaHRlbnMgYmFzZSBjb2xvciBieSBtaXhpbmcgaW4gd2hpdGUgY29sb3IsIHRoZSBsb3dlciwgdGhlIGJyaWdodGVyXG4gICAqICAgICAgICAgICAgICAgICA5OSAtIDIwMDogZGFya2VucyBiYXNlIGNvbG9yIGJ5IG1peGluZyBpbiBibGFjayBjb2xvciwgdGhlIGJpZ2dlciwgdGhlIGRhcmtlclxuICAgKlxuICAgKiBAcmV0dXJuIGNvbG9yIHZhcmlhbnQgb2YgcHJvdmlkZWQgYmFzZSBjb2xvclxuICAgKlxuICAgKiBAZXhhbXBsZXNcbiAgICpcbiAgICogLy8gcHJvdmlkZXMgMzAlIGRhcmtlciBwaW5rIGNvbG9yXG4gICAqIGJhY2tncm91bmQtY29sb3I6IGV1aS1jb2xvci12YXJpYW50KHBpbmssIDEzMCk7XG4gICAqXG4gICAqIC8vIHByb3ZpZGVzIDk1JSBsaWdodGVyIHBpbmsgY29sb3JcbiAgICogYmFja2dyb3VuZC1jb2xvcjogZXVpLWNvbG9yLXZhcmlhbnQocGluaywgNSk7XG4gICAqL1xuQGZ1bmN0aW9uIGV1aS1jb2xvci12YXJpYW50KCRjb2xvciwgJHZhcmlhbnQ6IDEwMCkge1xuICAgIEBpZiAoJHZhcmlhbnQgPCAxMDApIHtcbiAgICAgICAgQHJldHVybiBtaXgoI2ZmZmZmZiwgJGNvbG9yLCAoMTAwIC0gJHZhcmlhbnQpICogMSUpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAgIEByZXR1cm4gbWl4KCMwMDAwMDAsICRjb2xvciwgKCR2YXJpYW50IC0gMTAwKSAqIDElKTtcbiAgICB9XG59XG5AZnVuY3Rpb24gbmV3LWJyZWFrcG9pbnQoJHF1ZXJ5OiAkZmVhdHVyZSAkdmFsdWUpIHtcbiAgICBAaWYgbGVuZ3RoKCRxdWVyeSkgPT0gMSB7XG4gICAgICAgICRxdWVyeTogJGRlZmF1bHQtZmVhdHVyZSBudGgoJHF1ZXJ5LCAxKTtcbiAgICB9XG4gICAgQGVsc2UgaWYgaXMtZXZlbihsZW5ndGgoJHF1ZXJ5KSkge1xuICAgICAgICAkcXVlcnk6IGFwcGVuZCgkcXVlcnksIDEyKTtcbiAgICB9XG4gICAgQHJldHVybiAkcXVlcnk7XG59XG5AZnVuY3Rpb24gc3RyaXAtdW5pdHMoJHZhbHVlKSB7XG4gICAgQHJldHVybiBtYXRoLmRpdigkdmFsdWUsICR2YWx1ZSAqIDAgKyAxKTtcbn1cbkBmdW5jdGlvbiB0by1yZW0oJHB4dmFsKSB7XG4gICAgQGlmIG5vdCB1bml0bGVzcygkcHh2YWwpIHtcbiAgICAgICAgJHB4dmFsOiBzdHJpcC11bml0cygkcHh2YWwpO1xuICAgIH1cbiAgICAkYmFzZTogMTZweDtcbiAgICBAaWYgbm90IHVuaXRsZXNzKCRiYXNlKSB7XG4gICAgICAgICRiYXNlOiBzdHJpcC11bml0cygkYmFzZSk7XG4gICAgfVxuICAgIEByZXR1cm4gbWF0aC5kaXYoJHB4dmFsLCAkYmFzZSkgKiAxcmVtO1xufVxuIiwiLyoqIENvbW1vbiB3ZWlnaHQgbmFtZSBtYXBwaW5nXG4gICAgQFNlZSB0aGUgT3BlblR5cGUgc3BlY2lmaWNhdGlvbjpcbiAgICBodHRwczovL2RvY3MubWljcm9zb2Z0LmNvbS9lbi11cy90eXBvZ3JhcGh5L29wZW50eXBlL3NwZWMvb3MyI3Vzd2VpZ2h0Y2xhc3NcbiAgICBUaGUgbnVtZXJpY2FsIHZhbHVlcyAxMDAgdG8gOTAwIHJvdWdobHkgY29ycmVzcG9uZCB0byB0aGUgZm9sbG93aW5nIGNvbW1vbiB3ZWlnaHQgbmFtZXM6XG4gICAgMTAwICAgICBUaGluIChIYWlybGluZSlcbiAgICAyMDBcdCAgICBFeHRyYSBMaWdodCAoVWx0cmEgTGlnaHQpXG4gICAgMzAwXHQgICAgTGlnaHRcbiAgICA0MDBcdCAgICBOb3JtYWxcbiAgICA1MDBcdCAgICBNZWRpdW1cbiAgICA2MDBcdCAgICBTZW1pIEJvbGQgKERlbWkgQm9sZClcbiAgICA3MDBcdCAgICBCb2xkXG4gICAgODAwXHQgICAgRXh0cmEgQm9sZCAoVWx0cmEgQm9sZClcbiAgICA5MDBcdCAgICBCbGFjayAoSGVhdnkpXG4qKi9cbi8vIG5vcm1hbFxuQG1peGluIGV1aS1mb250LWZhbWlseSgpIHtcbiAgICBAaW5jbHVkZSBldWktZm9udChtLCB1aSk7XG59XG4vLyB0b2JlIHJlbW92ZWRcbkBtaXhpbiBldWktZm9udC1mYW1pbHktbm9ybWFsKCkge1xuICAgIEBpbmNsdWRlIGV1aS1mb250KG0sIHVpKTtcbn1cbkBtaXhpbiBldWktZm9udC1mYW1pbHktcygpIHtcbiAgICBAaW5jbHVkZSBldWktZm9udChzLCB1aSk7XG59XG5AbWl4aW4gZXVpLWZvbnQtZmFtaWx5LXhzKCkge1xuICAgIEBpbmNsdWRlIGV1aS1mb250KHhzLCB1aSk7XG59XG5AbWl4aW4gZXVpLWZvbnQtZmFtaWx5LWwoKSB7XG4gICAgQGluY2x1ZGUgZXVpLWZvbnQobCwgdWkpO1xufVxuQG1peGluIGV1aS1mb250LWZhbWlseS14bCgpIHtcbiAgICBAaW5jbHVkZSBldWktZm9udCh4bCwgdWkpO1xufVxuXG4vLyBib2xkXG5AbWl4aW4gZXVpLWZvbnQtZmFtaWx5LWJvbGQoKSB7XG4gICAgQGluY2x1ZGUgZXVpLWZvbnQobSwgdWkpO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5AbWl4aW4gZXVpLWZvbnQtZmFtaWx5LWJvbGQteHMoKSB7XG4gICAgQGluY2x1ZGUgZXVpLWZvbnQoeHMsIHVpKTtcbiAgICBmb250LXdlaWdodDogNzAwO1xufVxuQG1peGluIGV1aS1mb250LWZhbWlseS1ib2xkLXMoKSB7XG4gICAgQGluY2x1ZGUgZXVpLWZvbnQocywgdWkpO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5AbWl4aW4gZXVpLWZvbnQtZmFtaWx5LWJvbGQtbCgpIHtcbiAgICBAaW5jbHVkZSBldWktZm9udChsLCB1aSk7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cbkBtaXhpbiBldWktZm9udC1mYW1pbHktYm9sZC14bCgpIHtcbiAgICBAaW5jbHVkZSBldWktZm9udCh4bCwgdWkpO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbi8vIGxpZ2h0XG5AbWl4aW4gZXVpLWZvbnQtZmFtaWx5LWxpZ2h0KCkge1xuICAgIEBpbmNsdWRlIGV1aS1mb250KG0sIHVpKTtcbiAgICBmb250LXdlaWdodDogMzAwO1xufVxuXG4vLyBpdGFsaWNcbkBtaXhpbiBldWktZm9udC1mYW1pbHktaXRhbGljKCkge1xuICAgIEBpbmNsdWRlIGV1aS1mb250KG0sIHVpKTtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5AbWl4aW4gZXVpLWZvbnQtZmFtaWx5LWJvbGQoKSB7XG4gICAgQGluY2x1ZGUgZXVpLWZvbnQobSwgdWkpO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbi8vIGJvbGQgaXRhbGljXG5AbWl4aW4gZXVpLWZvbnQtZmFtaWx5LWJvbGQtaXRhbGljKCkge1xuICAgIEBpbmNsdWRlIGV1aS1mb250KG0sIHVpKTtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuLy8gbW9ub3NwYWNlXG5AbWl4aW4gZXVpLWZvbnQtZmFtaWx5LW1vbm9zcGFjZSgpIHtcbiAgICBmb250LWZhbWlseTogdihldWktYmFzZS1mb250LWZhbWlseS1tb25vc3BhY2UpO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXdlaWdodDogNDAwO1xufVxuIiwiLyohIG5vcm1hbGl6ZS5jc3MgdjguMC4xIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xuXG4vKiBEb2N1bWVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluIGlPUy5cbiAqL1xuXG4gaHRtbCB7XG4gICAgbGluZS1oZWlnaHQ6IDEuMTU7IC8qIDEgKi9cbiAgICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbiAgfVxuXG4gIC8qIFNlY3Rpb25zXG4gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgLyoqXG4gICAqIFJlbW92ZSB0aGUgbWFyZ2luIGluIGFsbCBicm93c2Vycy5cbiAgICovXG5cbiAgYm9keSB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbmRlciB0aGUgYG1haW5gIGVsZW1lbnQgY29uc2lzdGVudGx5IGluIElFLlxuICAgKi9cblxuICBtYWluIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIC8qKlxuICAgKiBDb3JyZWN0IHRoZSBmb250IHNpemUgYW5kIG1hcmdpbiBvbiBgaDFgIGVsZW1lbnRzIHdpdGhpbiBgc2VjdGlvbmAgYW5kXG4gICAqIGBhcnRpY2xlYCBjb250ZXh0cyBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBTYWZhcmkuXG4gICAqL1xuXG4gIGgxIHtcbiAgICBmb250LXNpemU6IDJlbTtcbiAgICBtYXJnaW46IDAuNjdlbSAwO1xuICB9XG5cbiAgLyogR3JvdXBpbmcgY29udGVudFxuICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gIC8qKlxuICAgKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBGaXJlZm94LlxuICAgKiAyLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlIGFuZCBJRS5cbiAgICovXG5cbiAgaHIge1xuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvKiAxICovXG4gICAgaGVpZ2h0OiAwOyAvKiAxICovXG4gICAgb3ZlcmZsb3c6IHZpc2libGU7IC8qIDIgKi9cbiAgfVxuXG4gIC8qKlxuICAgKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICAgKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gICAqL1xuXG4gIHByZSB7XG4gICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvKiAxICovXG4gICAgZm9udC1zaXplOiAxZW07IC8qIDIgKi9cbiAgfVxuXG4gIC8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgLyoqXG4gICAqIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIG9uIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAgICovXG5cbiAgYSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cblxuICAvKipcbiAgICogMS4gUmVtb3ZlIHRoZSBib3R0b20gYm9yZGVyIGluIENocm9tZSA1Ny1cbiAgICogMi4gQWRkIHRoZSBjb3JyZWN0IHRleHQgZGVjb3JhdGlvbiBpbiBDaHJvbWUsIEVkZ2UsIElFLCBPcGVyYSwgYW5kIFNhZmFyaS5cbiAgICovXG5cbiAgYWJiclt0aXRsZV0ge1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7IC8qIDEgKi9cbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgLyogMiAqL1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDsgLyogMiAqL1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG4gICAqL1xuXG4gIGIsXG4gIHN0cm9uZyB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICAgKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gICAqL1xuXG4gIGNvZGUsXG4gIGtiZCxcbiAgc2FtcCB7XG4gICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvKiAxICovXG4gICAgZm9udC1zaXplOiAxZW07IC8qIDIgKi9cbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAgICovXG5cbiAgc21hbGwge1xuICAgIGZvbnQtc2l6ZTogODAlO1xuICB9XG5cbiAgLyoqXG4gICAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGVsZW1lbnRzIGZyb20gYWZmZWN0aW5nIHRoZSBsaW5lIGhlaWdodCBpblxuICAgKiBhbGwgYnJvd3NlcnMuXG4gICAqL1xuXG4gIHN1YixcbiAgc3VwIHtcbiAgICBmb250LXNpemU6IDc1JTtcbiAgICBsaW5lLWhlaWdodDogMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICB9XG5cbiAgc3ViIHtcbiAgICBib3R0b206IC0wLjI1ZW07XG4gIH1cblxuICBzdXAge1xuICAgIHRvcDogLTAuNWVtO1xuICB9XG5cbiAgLyogRW1iZWRkZWQgY29udGVudFxuICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gIC8qKlxuICAgKiBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgaW5zaWRlIGxpbmtzIGluIElFIDEwLlxuICAgKi9cblxuICBpbWcge1xuICAgIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgfVxuXG4gIC8qIEZvcm1zXG4gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgLyoqXG4gICAqIDEuIENoYW5nZSB0aGUgZm9udCBzdHlsZXMgaW4gYWxsIGJyb3dzZXJzLlxuICAgKiAyLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXG4gICAqL1xuXG4gIGJ1dHRvbixcbiAgaW5wdXQsXG4gIG9wdGdyb3VwLFxuICBzZWxlY3QsXG4gIHRleHRhcmVhIHtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDsgLyogMSAqL1xuICAgIGZvbnQtc2l6ZTogMTAwJTsgLyogMSAqL1xuICAgIGxpbmUtaGVpZ2h0OiAxLjE1OyAvKiAxICovXG4gICAgbWFyZ2luOiAwOyAvKiAyICovXG4gIH1cblxuICAvKipcbiAgICogU2hvdyB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gICAqIDEuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UuXG4gICAqL1xuXG4gIGJ1dHRvbixcbiAgaW5wdXQgeyAvKiAxICovXG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXG4gICAqIDEuIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRmlyZWZveC5cbiAgICovXG5cbiAgYnV0dG9uLFxuICBzZWxlY3QgeyAvKiAxICovXG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIH1cblxuICAvKipcbiAgICogQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAgICovXG5cbiAgYnV0dG9uLFxuICBbdHlwZT1cImJ1dHRvblwiXSxcbiAgW3R5cGU9XCJyZXNldFwiXSxcbiAgW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSB0aGUgaW5uZXIgYm9yZGVyIGFuZCBwYWRkaW5nIGluIEZpcmVmb3guXG4gICAqL1xuXG4gIGJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcbiAgW3R5cGU9XCJidXR0b25cIl06Oi1tb3otZm9jdXMtaW5uZXIsXG4gIFt0eXBlPVwicmVzZXRcIl06Oi1tb3otZm9jdXMtaW5uZXIsXG4gIFt0eXBlPVwic3VibWl0XCJdOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICBib3JkZXItc3R5bGU6IG5vbmU7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXN0b3JlIHRoZSBmb2N1cyBzdHlsZXMgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXG4gICAqL1xuXG4gIGJ1dHRvbjotbW96LWZvY3VzcmluZyxcbiAgW3R5cGU9XCJidXR0b25cIl06LW1vei1mb2N1c3JpbmcsXG4gIFt0eXBlPVwicmVzZXRcIl06LW1vei1mb2N1c3JpbmcsXG4gIFt0eXBlPVwic3VibWl0XCJdOi1tb3otZm9jdXNyaW5nIHtcbiAgICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7XG4gIH1cblxuICAvKipcbiAgICogQ29ycmVjdCB0aGUgcGFkZGluZyBpbiBGaXJlZm94LlxuICAgKi9cblxuICBmaWVsZHNldCB7XG4gICAgcGFkZGluZzogMC4zNWVtIDAuNzVlbSAwLjYyNWVtO1xuICB9XG5cbiAgLyoqXG4gICAqIDEuIENvcnJlY3QgdGhlIHRleHQgd3JhcHBpbmcgaW4gRWRnZSBhbmQgSUUuXG4gICAqIDIuIENvcnJlY3QgdGhlIGNvbG9yIGluaGVyaXRhbmNlIGZyb20gYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBJRS5cbiAgICogMy4gUmVtb3ZlIHRoZSBwYWRkaW5nIHNvIGRldmVsb3BlcnMgYXJlIG5vdCBjYXVnaHQgb3V0IHdoZW4gdGhleSB6ZXJvIG91dFxuICAgKiAgICBgZmllbGRzZXRgIGVsZW1lbnRzIGluIGFsbCBicm93c2Vycy5cbiAgICovXG5cbiAgbGVnZW5kIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gICAgY29sb3I6IGluaGVyaXQ7IC8qIDIgKi9cbiAgICBkaXNwbGF5OiB0YWJsZTsgLyogMSAqL1xuICAgIG1heC13aWR0aDogMTAwJTsgLyogMSAqL1xuICAgIHBhZGRpbmc6IDA7IC8qIDMgKi9cbiAgICB3aGl0ZS1zcGFjZTogbm9ybWFsOyAvKiAxICovXG4gIH1cblxuICAvKipcbiAgICogQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAgICovXG5cbiAgcHJvZ3Jlc3Mge1xuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgdGhlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDEwKy5cbiAgICovXG5cbiAgdGV4dGFyZWEge1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICB9XG5cbiAgLyoqXG4gICAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIElFIDEwLlxuICAgKiAyLiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAuXG4gICAqL1xuXG4gIFt0eXBlPVwiY2hlY2tib3hcIl0sXG4gIFt0eXBlPVwicmFkaW9cIl0ge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgICBwYWRkaW5nOiAwOyAvKiAyICovXG4gIH1cblxuICAvKipcbiAgICogQ29ycmVjdCB0aGUgY3Vyc29yIHN0eWxlIG9mIGluY3JlbWVudCBhbmQgZGVjcmVtZW50IGJ1dHRvbnMgaW4gQ2hyb21lLlxuICAgKi9cblxuICBbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbiAgW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxuXG4gIC8qKlxuICAgKiAxLiBDb3JyZWN0IHRoZSBvZGQgYXBwZWFyYW5jZSBpbiBDaHJvbWUgYW5kIFNhZmFyaS5cbiAgICogMi4gQ29ycmVjdCB0aGUgb3V0bGluZSBzdHlsZSBpbiBTYWZhcmkuXG4gICAqL1xuXG4gIFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLyogMSAqL1xuICAgIG91dGxpbmUtb2Zmc2V0OiAtMnB4OyAvKiAyICovXG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIHRoZSBpbm5lciBwYWRkaW5nIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIG1hY09TLlxuICAgKi9cblxuICBbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICB9XG5cbiAgLyoqXG4gICAqIDEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gICAqIDIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIFNhZmFyaS5cbiAgICovXG5cbiAgOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDEgKi9cbiAgICBmb250OiBpbmhlcml0OyAvKiAyICovXG4gIH1cblxuICAvKiBJbnRlcmFjdGl2ZVxuICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gIC8qXG4gICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIEVkZ2UsIElFIDEwKywgYW5kIEZpcmVmb3guXG4gICAqL1xuXG4gIGRldGFpbHMge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgLypcbiAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gYWxsIGJyb3dzZXJzLlxuICAgKi9cblxuICBzdW1tYXJ5IHtcbiAgICBkaXNwbGF5OiBsaXN0LWl0ZW07XG4gIH1cblxuICAvKiBNaXNjXG4gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgLyoqXG4gICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwKy5cbiAgICovXG5cbiAgdGVtcGxhdGUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAvKipcbiAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTAuXG4gICAqL1xuXG4gIFtoaWRkZW5dIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4iLCI6cm9vdCB7XG4gICAgLy8gLy8gRk9OVFNcbiAgICAtLWV1aS1iYXNlLWZvbnQtZmFtaWx5OiBBcmlhbCwgJ0hlbHZldGljYSBOZXVlJywgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuICAgIC8vIC0tZXVpLWJhc2UtZm9udC1mYW1pbHk6ICdTb3VyY2UgU2FucyBQcm8nLCBzYW5zLXNlcmlmOyAgPGxpbmsgaHJlZj1cImh0dHBzOi8vZm9udHMuY2RuZm9udHMuY29tL2Nzcy9zb3VyY2Utc2Fucy1wcm9cIiByZWw9XCJzdHlsZXNoZWV0XCI+XG4gICAgLy8gLS1ldWktYmFzZS1mb250LWZhbWlseTogJ1JvYm90bycsIHNhbnMtc2VyaWY7ICA8bGluayBocmVmPVwiaHR0cHM6Ly9mb250cy5jZG5mb250cy5jb20vY3NzL3JvYm90b1wiIHJlbD1cInN0eWxlc2hlZXRcIj5cbiAgICAtLWV1aS1iYXNlLWZvbnQtZmFtaWx5LWljb25zOiAnZXVpLWljb25zJywgc2Fucy1zZXJpZjtcbiAgICAtLWV1aS1iYXNlLWZvbnQtZmFtaWx5LW1vbm9zcGFjZTogJ0NvbnNvbGFzJywgJ0xpYmVyYXRpb24gTW9ubycsICdDb3VyaWVyIE5ldycsIG1vbm9zcGFjZTtcblxuICAgIC8vIENPTE9SU1xuICAgIEBlYWNoICRjb2xvciwgJHNoYWRlcyBpbiAkZXVpLWJhc2UtdG9rZW5zLWNvbG9ycyB7XG4gICAgICAgIEBlYWNoICRzaGFkZSwgJHZhbHVlIGluICRzaGFkZXMge1xuICAgICAgICAgICAgLS1ldWktYmFzZS1jb2xvci0jeyRjb2xvciArICctJyArICRzaGFkZX06ICN7JHZhbHVlfTtcbiAgICAgICAgICAgIC0tZXVpLWJhc2UtY29sb3ItI3skY29sb3IgKyAnLScgKyAkc2hhZGV9LXJnYjogI3t0b1JHQigkdmFsdWUpfTtcbiAgICAgICAgICAgIC0tZXVpLWJhc2UtY29sb3ItI3skY29sb3IgKyAnLScgKyAkc2hhZGV9LWNvbnRyYXN0OiAje2dldENvbnRyYXN0KCR2YWx1ZSl9O1xuICAgICAgICAgICAgLS1ldWktYmFzZS1jb2xvci0jeyRjb2xvciArICctJyArICRzaGFkZX0tY29udHJhc3QtcmdiOiAje3RvUkdCKGdldENvbnRyYXN0KCR2YWx1ZSkpfTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIERFRkFVTFRTIDEwMHNcbiAgICBAZWFjaCAkY29sb3IsICR2YWx1ZSBpbiAkZXVpLWJhc2UtdG9rZW5zLWNvbG9ycy0xMDBzIHtcbiAgICAgICAgLS1ldWktYmFzZS1jb2xvci0jeycnICsgJGNvbG9yfTogI3skdmFsdWV9O1xuICAgIH1cblxuICAgIC8vIE9USEVSIENPTE9SU1xuICAgIC0tZXVpLWJhc2UtY29sb3ItdGV4dDogdmFyKC0tZXVpLWJhc2UtY29sb3ItZ3JleS0xMDApO1xuICAgIC0tZXVpLWJhc2UtY29sb3ItbGluazogdmFyKC0tZXVpLWJhc2UtY29sb3ItcHJpbWFyeS0xMDApO1xuICAgIC0tZXVpLWJhc2UtY29sb3ItYmxhY2s6IGJsYWNrO1xuICAgIC0tZXVpLWJhc2UtY29sb3Itd2hpdGU6IHdoaXRlO1xuICAgIC0tZXVpLWJhc2UtY29sb3I6IHZhcigtLWV1aS1iYXNlLWNvbG9yLWdyZXktMTAwKTtcblxuICAgIC8vIEZPTlQtU0laRVNcbiAgICAtLWV1aS1iYXNlLWZvbnQtc2l6ZTogMTZweDtcbiAgICBAZWFjaCAkZm9udC1zaXplLCAkdmFsdWUgaW4gJGV1aS1iYXNlLXRva2Vucy1mb250LXNpemVzIHtcbiAgICAgICAgLS1ldWktYmFzZS1mb250LXNpemUtI3skZm9udC1zaXplfTogI3skdmFsdWV9O1xuICAgIH1cblxuICAgIC8vIElDT04tU0laRVNcbiAgICAtLWV1aS1iYXNlLWljb24tc2l6ZTogMS41cmVtO1xuICAgIEBlYWNoICRpY29uLXNpemUsICR2YWx1ZSBpbiAkZXVpLWJhc2UtdG9rZW5zLWljb24tc2l6ZXMge1xuICAgICAgICAtLWV1aS1iYXNlLWljb24tc2l6ZS0jeyRpY29uLXNpemV9OiAjeyR2YWx1ZX07XG4gICAgfVxuXG4gICAgQGVhY2ggJGZhbWlseSwgJHNpemVzIGluICRldWktYmFzZS10b2tlbnMtZm9udHMge1xuICAgICAgICAkZmFtaWx5LXR5cGU6ICRmYW1pbHkgKyAnLSc7XG4gICAgICAgIEBpZigkZmFtaWx5ID09IHVpKSB7XG4gICAgICAgICAgICAkZmFtaWx5LXR5cGU6ICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJHNpemUsICRkZWZpbml0aW9uIGluICRzaXplcyB7XG4gICAgICAgICAgICAtLWV1aS1iYXNlLWZvbnQtI3skZmFtaWx5LXR5cGV9I3skc2l6ZX06ICN7JGRlZmluaXRpb259O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gU1BBQ0lOR1NcbiAgICBAZWFjaCAkc3BhY2luZywgJHZhbHVlIGluICRldWktYmFzZS10b2tlbnMtc3BhY2luZ3Mge1xuICAgICAgICAtLWV1aS1iYXNlLXNwYWNpbmctI3skc3BhY2luZ306ICN7JHZhbHVlfTtcbiAgICB9XG5cbiAgICAvLyBTSEFET1dTXG4gICAgQGVhY2ggJHNoYWRvdywgJHZhbHVlIGluICRldWktYmFzZS10b2tlbnMtc2hhZG93cyB7XG4gICAgICAgIC0tZXVpLWJhc2Utc2hhZG93LSN7JHNoYWRvd306ICN7JHZhbHVlfTtcbiAgICB9XG5cbiAgICAvLyBaLUlOREVYRVNcbiAgICBAZWFjaCAkaWR4LCAkdmFsdWUgaW4gJGV1aS1iYXNlLXRva2Vucy16LWluZGV4ZXMge1xuICAgICAgICAtLWV1aS1iYXNlLXotaW5kZXgtI3skaWR4fTogI3skdmFsdWV9O1xuICAgIH1cbn1cbiIsIjpyb290IHtcbiAgICAtLWV1aS1iYXNlLWxpbmUtaGVpZ2h0OiAxLjE1O1xuICAgIC0tZXVpLWJhc2Utc2NhbGUtZmFjdG9yOiAxO1xuICAgIC0tZXVpLWJhc2UtZGlzYWJsZWQtb3BhY2l0eTogMC40NTtcblxuICAgIC0tZXVpLWJhc2UtYm9yZGVyLXJhZGl1czogM3B4O1xuXG4gICAgLS1ldWktYmFzZS1ib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ldWktY29sb3ItZ3JleS1saWdodGVyKTtcbiAgICAtLWV1aS1iYXNlLWJvcmRlci1saWdodDogMXB4IHNvbGlkIHZhcigtLWV1aS1jb2xvci1ncmV5LWxpZ2h0KTtcbiAgICAtLWV1aS1iYXNlLWJvcmRlci1saWdodGVyOiAxcHggc29saWQgdmFyKC0tZXVpLWNvbG9yLWdyZXktbGlnaHRlcik7XG4gICAgLS1ldWktYmFzZS1ib3JkZXItbGlnaHRlc3Q6IDFweCBzb2xpZCB2YXIoLS1ldWktY29sb3ItZ3JleS1saWdodGVzdCk7XG5cbiAgICAvLyBBbmltYXRpb25zIHJlbGF0ZWRcbiAgICAtLWV1aS1iYXNlLWFuaW1hdGlvbi1saW5lYXItb3V0LXNsb3ctaW4tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTtcbiAgICAtLWV1aS1iYXNlLWFuaW1hdGlvbi1mYXN0LW91dC1zbG93LWluLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbiAgICAtLWV1aS1iYXNlLWFuaW1hdGlvbi1mYXN0LW91dC1saW5lYXItaW4tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAxLCAxKTtcbiAgICAtLWV1aS1iYXNlLWFuaW1hdGlvbi1lYXNlLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjUsIDAuMSwgMC4yNSwgMSk7ICAgIC8vIGVhc2VcbiAgICAtLWV1aS1iYXNlLWFuaW1hdGlvbi1lYXNlLWluLW91dC10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuXG4gICAgLS1ldWktYmFzZS1hbmltYXRpb24tZHVyYXRpb24tZmFzdDogMC4yNXM7XG4gICAgLS1ldWktYmFzZS1hbmltYXRpb24tZHVyYXRpb24tbWVkaXVtOiAwLjVzO1xuICAgIC0tZXVpLWJhc2UtYW5pbWF0aW9uLWR1cmF0aW9uLXNsb3c6IDFzO1xuICAgIC0tZXVpLWJhc2UtYW5pbWF0aW9uLWR1cmF0aW9uLWJhc2U6IDUwMG1zO1xuICAgIC0tZXVpLWJhc2UtYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1ldWktYmFzZS1hbmltYXRpb24tZHVyYXRpb24tYmFzZSk7XG5cbiAgICAtLWV1aS1iYXNlLWFuaW1hdGlvbi10cmFuc2l0aW9uLWJhc2U6IGFsbCAwLjJzICN7dmFyKC0tZXVpLWJhc2UtYW5pbWF0aW9uLWxpbmVhci1vdXQtc2xvdy1pbi10aW1pbmctZnVuY3Rpb24pfTtcbiAgICAtLWV1aS1iYXNlLWFuaW1hdGlvbi10cmFuc2l0aW9uLWVhc2U6IGFsbCAwLjJzICN7dmFyKC0tZXVpLWJhc2UtYW5pbWF0aW9uLWVhc2UtdGltaW5nLWZ1bmN0aW9uKX07XG4gICAgLS1ldWktYmFzZS1hbmltYXRpb24tdHJhbnNpdGlvbi1lYXNlLWluLW91dDogYWxsIDAuMnMgI3t2YXIoLS1ldWktYmFzZS1hbmltYXRpb24tZWFzZS1pbi1vdXQtdGltaW5nLWZ1bmN0aW9uKX07XG4gICAgLS1ldWktYmFzZS1hbmltYXRpb24tdHJhbnNpdGlvbi1lYXNlLWluLW91dC0xczogYWxsIDFzICN7dmFyKC0tZXVpLWJhc2UtYW5pbWF0aW9uLWVhc2UtaW4tb3V0LXRpbWluZy1mdW5jdGlvbil9O1xuXG4gICAgLS1ldWktYmFzZS1hbmltYXRpb24tZGVsYXk6IDBzO1xuICAgIC0tZXVpLWJhc2UtYW5pbWF0aW9uLWRpcmVjdGlvbjogbm9ybWFsO1xuICAgIC0tZXVpLWJhc2UtYW5pbWF0aW9uLWZpbGwtbW9kZTogZm9yd2FyZHM7ICAgIC8vIHRoaXMgcHJldmVudHMgdGhlIGFuaW1hdGlvbiBmcm9tIHJlc3RhcnRpbmdcbiAgICAtLWV1aS1iYXNlLWFuaW1hdGlvbi1iYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ldWktYmFzZS1jb2xvci1wcmltYXJ5LTUwKTsgIC8vICNjZmNmZGY7XG5cbiAgICAvLyBFeHRyYSBjb2xvcnNcbiAgICAtLWV1aS1iYXNlLWNvbG9yLWFjY2Vzc2libGUtZm9jdXM6IHZhcigtLWV1aS1iYXNlLWNvbG9yLWFjY2VudC0xMTApOyAgICAvLyBDYXJib24gYmx1ZTogIzBmNjJmZTtcbn1cbiIsIjpyb290IHtcbiAgICAvLyBlVUkgQVBQXG4gICAgLS1ldWktYXBwLWhlYWRlci1oZWlnaHQtZGVmYXVsdDogMHB4O1xuICAgIC0tZXVpLWFwcC1oZWFkZXItaGVpZ2h0OiAwcHg7XG4gICAgLS1ldWktYXBwLWhlYWRlci1oZWlnaHQtYWN0aXZlOiA5MHB4O1xuICAgIC0tZXVpLWFwcC1oZWFkZXItaGVpZ2h0LXNocmluazogMHB4O1xuXG4gICAgLS1ldWktYXBwLWJyZWFkY3J1bWItaGVpZ2h0LWRlZmF1bHQ6IDBweDtcbiAgICAtLWV1aS1hcHAtYnJlYWRjcnVtYi1oZWlnaHQ6IDBweDtcbiAgICAtLWV1aS1hcHAtYnJlYWRjcnVtYi1oZWlnaHQtYWN0aXZlOiAyMHB4O1xuXG4gICAgLS1ldWktYXBwLXRvcC1tZXNzYWdlLWhlaWdodC1kZWZhdWx0OiAwcHg7XG4gICAgLS1ldWktYXBwLXRvcC1tZXNzYWdlLWhlaWdodDogMHB4O1xuICAgIC0tZXVpLWFwcC10b3AtbWVzc2FnZS1oZWlnaHQtYWN0aXZlOiA0MnB4O1xuXG4gICAgLS1ldWktYXBwLXRvb2xiYXItaGVpZ2h0LWRlZmF1bHQ6IDBweDtcbiAgICAtLWV1aS1hcHAtdG9vbGJhci1oZWlnaHQ6IDBweDtcbiAgICAtLWV1aS1hcHAtdG9vbGJhci1oZWlnaHQtYWN0aXZlOiA1NXB4O1xuXG4gICAgLS1ldWktYXBwLXNpZGViYXItd2lkdGgtZGVmYXVsdDogMHB4O1xuICAgIC0tZXVpLWFwcC1zaWRlYmFyLXdpZHRoOiAwcHg7XG4gICAgLS1ldWktYXBwLXNpZGViYXItd2lkdGgtYWN0aXZlOiAzMDBweDtcbiAgICAtLWV1aS1hcHAtc2lkZWJhci13aWR0aC1jbG9zZS1kZWZhdWx0OiAwcHg7XG4gICAgLS1ldWktYXBwLXNpZGViYXItd2lkdGgtY2xvc2U6IDBweDtcbiAgICAtLWV1aS1hcHAtc2lkZWJhci13aWR0aC1jbG9zZS1hY3RpdmU6IDY0cHg7XG4gICAgLS1ldWktYXBwLXNpZGViYXItaGVhZGVyLWhlaWdodDogMHB4O1xuICAgIC0tZXVpLWFwcC1zaWRlYmFyLWhlYWRlci1oZWlnaHQtZGVmYXVsdDogMHB4O1xuICAgIC0tZXVpLWFwcC1zaWRlYmFyLWhlYWRlci1oZWlnaHQtYWN0aXZlOiA0OHB4O1xuICAgIC0tZXVpLWFwcC1zaWRlYmFyLWZvb3Rlci1oZWlnaHQ6IDBweDtcbiAgICAtLWV1aS1hcHAtc2lkZWJhci1mb290ZXItaGVpZ2h0LWRlZmF1bHQ6IDBweDtcbiAgICAtLWV1aS1hcHAtc2lkZWJhci1mb290ZXItaGVpZ2h0LWFjdGl2ZTogMjRweDtcblxuICAgIC8vIFBhZ2UgTGF5b3V0XG4gICAgLS1ldWktcGFnZS1oZWFkZXItd2l0aC1zdWJ0aXRsZS1oZWlnaHQ6IDRyZW07XG4gICAgLS1ldWktcGFnZS1oZWFkZXItd2l0aG91dC1zdWJ0aXRsZS1oZWlnaHQ6IDJyZW07XG5cbiAgICAtLWV1aS1wYWdlLWNvbHVtbi0tc2l6ZS1zOiA1MHB4O1xuICAgIC0tZXVpLXBhZ2UtY29sdW1uLS1zaXplLW06IDE1MHB4O1xuICAgIC0tZXVpLXBhZ2UtY29sdW1uLS1zaXplLWw6IDIwMHB4O1xuICAgIC0tZXVpLXBhZ2UtY29sdW1uLS1zaXplLXhsOiAyNTBweDtcbiAgICAtLWV1aS1wYWdlLWNvbHVtbi0tc2l6ZS14eGw6IDMwMHB4O1xuICAgIC0tZXVpLXBhZ2UtY29sdW1uLS1zaXplLXh4eGw6IDM1MHB4O1xuICAgIC0tZXVpLXBhZ2UtY29sdW1uLWZvb3Rlci1oZWlnaHQ6IDMuNXJlbTtcblxuICAgIC8vIE1pc2NcbiAgICAtLWV1aS1ib3JkZXItc3RhdGUtd2lkdGg6IDZweDtcblxuICAgIC8vIENvbG9yc1xuICAgIC8vIGVVSSBBcHAgZWxlbWVudHNcbiAgICAtLWV1aS1hcHAtaGVhZGVyLWJnLWNvbG9yOiB2YXIoLS1ldWktYmFzZS1jb2xvci13aGl0ZSk7XG4gICAgLS1ldWktYXBwLWhlYWRlci10aXRsZS1jb2xvcjogdmFyKC0tZXVpLWJhc2UtY29sb3ItZ3JleS0xMDApO1xuICAgIC0tZXVpLWFwcC1oZWFkZXItc3VidGl0bGUtY29sb3I6IHZhcigtLWV1aS1iYXNlLWNvbG9yLWdyZXktNzUpO1xuXG4gICAgLS1ldWktYXBwLXRvb2xiYXItY29sb3I6IHZhcigtLWV1aS1iYXNlLWNvbG9yLXdoaXRlKTtcbiAgICAtLWV1aS1hcHAtdG9vbGJhci1iZy1jb2xvcjogdmFyKC0tZXVpLWJhc2UtY29sb3ItcHJpbWFyeS0xMDApO1xuICAgIC0tZXVpLWFwcC10b29sYmFyLWJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWV1aS1iYXNlLWNvbG9yLXByaW1hcnktMjUpO1xuXG4gICAgLS1ldWktYXBwLXNpZGViYXItYmctY29sb3I6IHZhcigtLWV1aS1iYXNlLWNvbG9yLWdyZXktMik7XG4gICAgLS1ldWktYXBwLXNpZGViYXItYm9yZGVyLXJpZ2h0LWNvbG9yOiAjZjJmNGY5O1xuXG4gICAgLS1ldWktYXBwLWJvZHktYmctY29sb3I6IHZhcigtLWV1aS1iYXNlLWNvbG9yLWdyZXktMik7XG4gICAgLS1ldWktYXBwLW1haW4tYmctY29sb3I6IHZhcigtLWV1aS1iYXNlLWNvbG9yLWdyZXktMik7XG5cbiAgICAtLWV1aS1hcHAtZm9vdGVyLWNvbG9yOiB2YXIoLS1ldWktYmFzZS1jb2xvci1mb250KTtcbiAgICAtLWV1aS1hcHAtZm9vdGVyLWJnLWNvbG9yOiB2YXIoLS1ldWktYmFzZS1jb2xvci1ncmV5LTIpO1xuICAgIC0tZXVpLWFwcC1mb290ZXItYm9yZGVyLXRvcC1jb2xvcjogI2U4ZWJmMTtcbn1cblxuLnhzLCAuc20ge1xuICAgIC0tZXVpLWFwcC1oZWFkZXItaGVpZ2h0OiAwcHg7XG59XG4iLCIuZXVpLWljb24tc3ZnIHtcbiAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgbWFyZ2luOiAwO1xuICAgIHRyYW5zZm9ybTogc2NhbGVYKDEpIHNjYWxlWSgxKSByb3RhdGVaKDBkZWcpO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAzMDBtcyBlYXNlLWluLW91dDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuQGVhY2ggJHNpemUsICR2YWx1ZSBpbiAkZXVpLWJhc2UtdG9rZW5zLWljb24tc2l6ZXMge1xuICAgIC5ldWktaWNvbi1zdmctLXNpemUtI3skc2l6ZX0ge1xuICAgICAgICBoZWlnaHQ6ICN7JHZhbHVlfTtcbiAgICAgICAgd2lkdGg6ICN7JHZhbHVlfTtcbiAgICB9O1xufVxuQGVhY2ggJGNvbG9yLCAkc2hhZGVzIGluICRldWktYmFzZS10b2tlbnMtY29sb3JzIHtcbiAgICBAZWFjaCAkc2hhZGUsICR2YWx1ZSBpbiAkc2hhZGVzIHtcbiAgICAgICAgLmV1aS1pY29uLXN2Zy0tY29sb3ItI3skY29sb3IgKyAnLScgKyAkc2hhZGV9IHtcbiAgICAgICAgICAgIGNvbG9yOiAjeyR2YWx1ZX07XG4gICAgICAgICAgICBmaWxsOiAjeyR2YWx1ZX07XG4gICAgICAgIH07XG4gICAgfVxufVxuQGVhY2ggJGNvbG9yLCAkdmFsdWUgaW4gJGV1aS1iYXNlLXRva2Vucy1jb2xvcnMtMTAwcyB7XG4gICAgLmV1aS1pY29uLXN2Zy0tY29sb3ItI3snJyArICRjb2xvcn0ge1xuICAgICAgICBjb2xvcjogI3skdmFsdWV9O1xuICAgICAgICBmaWxsOiAjeyR2YWx1ZX07XG4gICAgfTtcbn1cblxuLmV1aS1pY29uLXN2Zy0tY29sb3Itd2hpdGUge1xuICAgIGNvbG9yOiB2YXIoLS1ldWktYmFzZS1jb2xvci13aGl0ZSk7XG4gICAgZmlsbDogdmFyKC0tZXVpLWJhc2UtY29sb3Itd2hpdGUpO1xufVxuXG4uZXVpLWljb24tc3ZnLS1jb2xvci1ibGFjayB7XG4gICAgY29sb3I6IHZhcigtLWV1aS1iYXNlLWNvbG9yLWJsYWNrKTtcbiAgICBmaWxsOiB2YXIoLS1ldWktYmFzZS1jb2xvci1ibGFjayk7XG59XG5cbi5ldWktaWNvbi1zdmctLWNvbG9yLXRyYW5zcGFyZW50IHtcbiAgICBjb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDsgIC8vIGltcG9ydGFudCBmb3IgaXNMb2FkaW5nXG4gICAgZmlsbDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cbiIsIi8vIFJvd1xuLy9cbi8vIFJvd3MgY29udGFpbiB5b3VyIGNvbHVtbnMuXG5cbkBpZiAkZW5hYmxlLWdyaWQtY2xhc3NlcyB7XG4gIC5yb3cge1xuICAgIEBpbmNsdWRlIG1ha2Utcm93KCk7XG5cbiAgICA+ICoge1xuICAgICAgQGluY2x1ZGUgbWFrZS1jb2wtcmVhZHkoKTtcbiAgICB9XG4gIH1cbn1cblxuQGlmICRlbmFibGUtY3NzZ3JpZCB7XG4gIC5ncmlkIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtcm93czogcmVwZWF0KHZhcigtLSN7JHZhcmlhYmxlLXByZWZpeH1yb3dzLCAxKSwgMWZyKTtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCh2YXIoLS0jeyR2YXJpYWJsZS1wcmVmaXh9Y29sdW1ucywgI3skZ3JpZC1jb2x1bW5zfSksIDFmcik7XG4gICAgZ2FwOiB2YXIoLS0jeyR2YXJpYWJsZS1wcmVmaXh9Z2FwLCAjeyRncmlkLWd1dHRlci13aWR0aH0pO1xuXG4gICAgQGluY2x1ZGUgbWFrZS1jc3NncmlkKCk7XG4gIH1cbn1cblxuXG4vLyBDb2x1bW5zXG4vL1xuLy8gQ29tbW9uIHN0eWxlcyBmb3Igc21hbGwgYW5kIGxhcmdlIGdyaWQgY29sdW1uc1xuXG5AaWYgJGVuYWJsZS1ncmlkLWNsYXNzZXMge1xuICBAaW5jbHVkZSBtYWtlLWdyaWQtY29sdW1ucygpO1xufVxuIiwiLy8gR3JpZCBzeXN0ZW1cbi8vXG4vLyBHZW5lcmF0ZSBzZW1hbnRpYyBncmlkIGNvbHVtbnMgd2l0aCB0aGVzZSBtaXhpbnMuXG5cbkBtaXhpbiBtYWtlLXJvdygkZ3V0dGVyOiAkZ3JpZC1ndXR0ZXItd2lkdGgpIHtcbiAgLS0jeyR2YXJpYWJsZS1wcmVmaXh9Z3V0dGVyLXg6ICN7JGd1dHRlcn07XG4gIC0tI3skdmFyaWFibGUtcHJlZml4fWd1dHRlci15OiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIC8vIFRPRE86IFJldmlzaXQgY2FsYyBvcmRlciBhZnRlciBodHRwczovL2dpdGh1Yi5jb20vcmVhY3QtYm9vdHN0cmFwL3JlYWN0LWJvb3RzdHJhcC9pc3N1ZXMvNjAzOSBpcyBmaXhlZFxuICBtYXJnaW4tdG9wOiBjYWxjKC0xICogdmFyKC0tI3skdmFyaWFibGUtcHJlZml4fWd1dHRlci15KSk7IC8vIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgZnVuY3Rpb24tZGlzYWxsb3dlZC1saXN0XG4gIG1hcmdpbi1yaWdodDogY2FsYygtLjUgKiB2YXIoLS0jeyR2YXJpYWJsZS1wcmVmaXh9Z3V0dGVyLXgpKTsgLy8gc3R5bGVsaW50LWRpc2FibGUtbGluZSBmdW5jdGlvbi1kaXNhbGxvd2VkLWxpc3RcbiAgbWFyZ2luLWxlZnQ6IGNhbGMoLS41ICogdmFyKC0tI3skdmFyaWFibGUtcHJlZml4fWd1dHRlci14KSk7IC8vIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgZnVuY3Rpb24tZGlzYWxsb3dlZC1saXN0XG59XG5cbkBtaXhpbiBtYWtlLWNvbC1yZWFkeSgkZ3V0dGVyOiAkZ3JpZC1ndXR0ZXItd2lkdGgpIHtcbiAgLy8gQWRkIGJveCBzaXppbmcgaWYgb25seSB0aGUgZ3JpZCBpcyBsb2FkZWRcbiAgYm94LXNpemluZzogaWYodmFyaWFibGUtZXhpc3RzKGluY2x1ZGUtY29sdW1uLWJveC1zaXppbmcpIGFuZCAkaW5jbHVkZS1jb2x1bW4tYm94LXNpemluZywgYm9yZGVyLWJveCwgbnVsbCk7XG4gIC8vIFByZXZlbnQgY29sdW1ucyBmcm9tIGJlY29taW5nIHRvbyBuYXJyb3cgd2hlbiBhdCBzbWFsbGVyIGdyaWQgdGllcnMgYnlcbiAgLy8gYWx3YXlzIHNldHRpbmcgYHdpZHRoOiAxMDAlO2AuIFRoaXMgd29ya3MgYmVjYXVzZSB3ZSBzZXQgdGhlIHdpZHRoXG4gIC8vIGxhdGVyIG9uIHRvIG92ZXJyaWRlIHRoaXMgaW5pdGlhbCB3aWR0aC5cbiAgZmxleC1zaHJpbms6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMCU7IC8vIFByZXZlbnQgYC5jb2wtYXV0b2AsIGAuY29sYCAoJiByZXNwb25zaXZlIHZhcmlhbnRzKSBmcm9tIGJyZWFraW5nIG91dCB0aGUgZ3JpZFxuICBwYWRkaW5nLXJpZ2h0OiBjYWxjKHZhcigtLSN7JHZhcmlhYmxlLXByZWZpeH1ndXR0ZXIteCkgKiAuNSk7IC8vIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgZnVuY3Rpb24tZGlzYWxsb3dlZC1saXN0XG4gIHBhZGRpbmctbGVmdDogY2FsYyh2YXIoLS0jeyR2YXJpYWJsZS1wcmVmaXh9Z3V0dGVyLXgpICogLjUpOyAvLyBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIGZ1bmN0aW9uLWRpc2FsbG93ZWQtbGlzdFxuICBtYXJnaW4tdG9wOiB2YXIoLS0jeyR2YXJpYWJsZS1wcmVmaXh9Z3V0dGVyLXkpO1xufVxuXG5AbWl4aW4gbWFrZS1jb2woJHNpemU6IGZhbHNlLCAkY29sdW1uczogJGdyaWQtY29sdW1ucykge1xuICBAaWYgJHNpemUge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiBwZXJjZW50YWdlKGRpdmlkZSgkc2l6ZSwgJGNvbHVtbnMpKTtcblxuICB9IEBlbHNlIHtcbiAgICBmbGV4OiAxIDEgMDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cbn1cblxuQG1peGluIG1ha2UtY29sLWF1dG8oKSB7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICB3aWR0aDogYXV0bztcbn1cblxuQG1peGluIG1ha2UtY29sLW9mZnNldCgkc2l6ZSwgJGNvbHVtbnM6ICRncmlkLWNvbHVtbnMpIHtcbiAgJG51bTogZGl2aWRlKCRzaXplLCAkY29sdW1ucyk7XG4gIG1hcmdpbi1sZWZ0OiBpZigkbnVtID09IDAsIDAsIHBlcmNlbnRhZ2UoJG51bSkpO1xufVxuXG4vLyBSb3cgY29sdW1uc1xuLy9cbi8vIFNwZWNpZnkgb24gYSBwYXJlbnQgZWxlbWVudChlLmcuLCAucm93KSB0byBmb3JjZSBpbW1lZGlhdGUgY2hpbGRyZW4gaW50byBOTlxuLy8gbnVtYmVyb2YgY29sdW1ucy4gU3VwcG9ydHMgd3JhcHBpbmcgdG8gbmV3IGxpbmVzLCBidXQgZG9lcyBub3QgZG8gYSBNYXNvbnJ5XG4vLyBzdHlsZSBncmlkLlxuQG1peGluIHJvdy1jb2xzKCRjb3VudCkge1xuICA+ICoge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiBkaXZpZGUoMTAwJSwgJGNvdW50KTtcbiAgfVxufVxuXG4vLyBGcmFtZXdvcmsgZ3JpZCBnZW5lcmF0aW9uXG4vL1xuLy8gVXNlZCBvbmx5IGJ5IEJvb3RzdHJhcCB0byBnZW5lcmF0ZSB0aGUgY29ycmVjdCBudW1iZXIgb2YgZ3JpZCBjbGFzc2VzIGdpdmVuXG4vLyBhbnkgdmFsdWUgb2YgYCRncmlkLWNvbHVtbnNgLlxuXG5AbWl4aW4gbWFrZS1ncmlkLWNvbHVtbnMoJGNvbHVtbnM6ICRncmlkLWNvbHVtbnMsICRndXR0ZXI6ICRncmlkLWd1dHRlci13aWR0aCwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICBAZWFjaCAkYnJlYWtwb2ludCBpbiBtYXAta2V5cygkYnJlYWtwb2ludHMpIHtcbiAgICAkaW5maXg6IGJyZWFrcG9pbnQtaW5maXgoJGJyZWFrcG9pbnQsICRicmVha3BvaW50cyk7XG5cbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRicmVha3BvaW50LCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIC8vIFByb3ZpZGUgYmFzaWMgYC5jb2wte2JwfWAgY2xhc3NlcyBmb3IgZXF1YWwtd2lkdGggZmxleGJveCBjb2x1bW5zXG4gICAgICAuY29sI3skaW5maXh9IHtcbiAgICAgICAgZmxleDogMSAwIDAlOyAvLyBGbGV4YnVncyAjNDogaHR0cHM6Ly9naXRodWIuY29tL3BoaWxpcHdhbHRvbi9mbGV4YnVncyNmbGV4YnVnLTRcbiAgICAgIH1cblxuICAgICAgLnJvdy1jb2xzI3skaW5maXh9LWF1dG8gPiAqIHtcbiAgICAgICAgQGluY2x1ZGUgbWFrZS1jb2wtYXV0bygpO1xuICAgICAgfVxuXG4gICAgICBAaWYgJGdyaWQtcm93LWNvbHVtbnMgPiAwIHtcbiAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1yb3ctY29sdW1ucyB7XG4gICAgICAgICAgLnJvdy1jb2xzI3skaW5maXh9LSN7JGl9IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHJvdy1jb2xzKCRpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmNvbCN7JGluZml4fS1hdXRvIHtcbiAgICAgICAgQGluY2x1ZGUgbWFrZS1jb2wtYXV0bygpO1xuICAgICAgfVxuXG4gICAgICBAaWYgJGNvbHVtbnMgPiAwIHtcbiAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkY29sdW1ucyB7XG4gICAgICAgICAgLmNvbCN7JGluZml4fS0jeyRpfSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtYWtlLWNvbCgkaSwgJGNvbHVtbnMpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGAkY29sdW1ucyAtIDFgIGJlY2F1c2Ugb2Zmc2V0dGluZyBieSB0aGUgd2lkdGggb2YgYW4gZW50aXJlIHJvdyBpc24ndCBwb3NzaWJsZVxuICAgICAgICBAZm9yICRpIGZyb20gMCB0aHJvdWdoICgkY29sdW1ucyAtIDEpIHtcbiAgICAgICAgICBAaWYgbm90ICgkaW5maXggPT0gXCJcIiBhbmQgJGkgPT0gMCkgeyAvLyBBdm9pZCBlbWl0dGluZyB1c2VsZXNzIC5vZmZzZXQtMFxuICAgICAgICAgICAgLm9mZnNldCN7JGluZml4fS0jeyRpfSB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIG1ha2UtY29sLW9mZnNldCgkaSwgJGNvbHVtbnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBHdXR0ZXJzXG4gICAgICAvL1xuICAgICAgLy8gTWFrZSB1c2Ugb2YgYC5nLSpgLCBgLmd4LSpgIG9yIGAuZ3ktKmAgdXRpbGl0aWVzIHRvIGNoYW5nZSBzcGFjaW5nIGJldHdlZW4gdGhlIGNvbHVtbnMuXG4gICAgICBAZWFjaCAka2V5LCAkdmFsdWUgaW4gJGd1dHRlcnMge1xuICAgICAgICAuZyN7JGluZml4fS0jeyRrZXl9LFxuICAgICAgICAuZ3gjeyRpbmZpeH0tI3ska2V5fSB7XG4gICAgICAgICAgLS0jeyR2YXJpYWJsZS1wcmVmaXh9Z3V0dGVyLXg6ICN7JHZhbHVlfTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5nI3skaW5maXh9LSN7JGtleX0sXG4gICAgICAgIC5neSN7JGluZml4fS0jeyRrZXl9IHtcbiAgICAgICAgICAtLSN7JHZhcmlhYmxlLXByZWZpeH1ndXR0ZXIteTogI3skdmFsdWV9O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYWtlLWNzc2dyaWQoJGNvbHVtbnM6ICRncmlkLWNvbHVtbnMsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgQGVhY2ggJGJyZWFrcG9pbnQgaW4gbWFwLWtleXMoJGJyZWFrcG9pbnRzKSB7XG4gICAgJGluZml4OiBicmVha3BvaW50LWluZml4KCRicmVha3BvaW50LCAkYnJlYWtwb2ludHMpO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkYnJlYWtwb2ludCwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAaWYgJGNvbHVtbnMgPiAwIHtcbiAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkY29sdW1ucyB7XG4gICAgICAgICAgLmctY29sI3skaW5maXh9LSN7JGl9IHtcbiAgICAgICAgICAgIGdyaWQtY29sdW1uOiBhdXRvIC8gc3BhbiAkaTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTdGFydCB3aXRoIGAxYCBiZWNhdXNlIGAwYCBpcyBhbmQgaW52YWxpZCB2YWx1ZS5cbiAgICAgICAgLy8gRW5kcyB3aXRoIGAkY29sdW1ucyAtIDFgIGJlY2F1c2Ugb2Zmc2V0dGluZyBieSB0aGUgd2lkdGggb2YgYW4gZW50aXJlIHJvdyBpc24ndCBwb3NzaWJsZS5cbiAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAoJGNvbHVtbnMgLSAxKSB7XG4gICAgICAgICAgLmctc3RhcnQjeyRpbmZpeH0tI3skaX0ge1xuICAgICAgICAgICAgZ3JpZC1jb2x1bW4tc3RhcnQ6ICRpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gQnJlYWtwb2ludCB2aWV3cG9ydCBzaXplcyBhbmQgbWVkaWEgcXVlcmllcy5cbi8vXG4vLyBCcmVha3BvaW50cyBhcmUgZGVmaW5lZCBhcyBhIG1hcCBvZiAobmFtZTogbWluaW11bSB3aWR0aCksIG9yZGVyIGZyb20gc21hbGwgdG8gbGFyZ2U6XG4vL1xuLy8gICAgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KVxuLy9cbi8vIFRoZSBtYXAgZGVmaW5lZCBpbiB0aGUgYCRncmlkLWJyZWFrcG9pbnRzYCBnbG9iYWwgdmFyaWFibGUgaXMgdXNlZCBhcyB0aGUgYCRicmVha3BvaW50c2AgYXJndW1lbnQgYnkgZGVmYXVsdC5cblxuLy8gTmFtZSBvZiB0aGUgbmV4dCBicmVha3BvaW50LCBvciBudWxsIGZvciB0aGUgbGFzdCBicmVha3BvaW50LlxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSlcbi8vICAgIG1kXG4vLyAgICA+PiBicmVha3BvaW50LW5leHQoc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXG4vLyAgICBtZFxuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtLCAkYnJlYWtwb2ludC1uYW1lczogKHhzIHNtIG1kIGxnIHhsKSlcbi8vICAgIG1kXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1uZXh0KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludC1uYW1lczogbWFwLWtleXMoJGJyZWFrcG9pbnRzKSkge1xuICAkbjogaW5kZXgoJGJyZWFrcG9pbnQtbmFtZXMsICRuYW1lKTtcbiAgQGlmIG5vdCAkbiB7XG4gICAgQGVycm9yIFwiYnJlYWtwb2ludCBgI3skbmFtZX1gIG5vdCBmb3VuZCBpbiBgI3skYnJlYWtwb2ludHN9YFwiO1xuICB9XG4gIEByZXR1cm4gaWYoJG4gPCBsZW5ndGgoJGJyZWFrcG9pbnQtbmFtZXMpLCBudGgoJGJyZWFrcG9pbnQtbmFtZXMsICRuICsgMSksIG51bGwpO1xufVxuXG4vLyBNaW5pbXVtIGJyZWFrcG9pbnQgd2lkdGguIE51bGwgZm9yIHRoZSBzbWFsbGVzdCAoZmlyc3QpIGJyZWFrcG9pbnQuXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1taW4oc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXG4vLyAgICA1NzZweFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtaW46IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XG4gIEByZXR1cm4gaWYoJG1pbiAhPSAwLCAkbWluLCBudWxsKTtcbn1cblxuLy8gTWF4aW11bSBicmVha3BvaW50IHdpZHRoLlxuLy8gVGhlIG1heGltdW0gdmFsdWUgaXMgcmVkdWNlZCBieSAwLjAycHggdG8gd29yayBhcm91bmQgdGhlIGxpbWl0YXRpb25zIG9mXG4vLyBgbWluLWAgYW5kIGBtYXgtYCBwcmVmaXhlcyBhbmQgdmlld3BvcnRzIHdpdGggZnJhY3Rpb25hbCB3aWR0aHMuXG4vLyBTZWUgaHR0cHM6Ly93d3cudzMub3JnL1RSL21lZGlhcXVlcmllcy00LyNtcS1taW4tbWF4XG4vLyBVc2VzIDAuMDJweCByYXRoZXIgdGhhbiAwLjAxcHggdG8gd29yayBhcm91bmQgYSBjdXJyZW50IHJvdW5kaW5nIGJ1ZyBpbiBTYWZhcmkuXG4vLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODI2MVxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtbWF4KG1kLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxuLy8gICAgNzY3Ljk4cHhcbkBmdW5jdGlvbiBicmVha3BvaW50LW1heCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWF4OiBtYXAtZ2V0KCRicmVha3BvaW50cywgJG5hbWUpO1xuICBAcmV0dXJuIGlmKCRtYXggYW5kICRtYXggPiAwLCAkbWF4IC0gLjAyLCBudWxsKTtcbn1cblxuLy8gUmV0dXJucyBhIGJsYW5rIHN0cmluZyBpZiBzbWFsbGVzdCBicmVha3BvaW50LCBvdGhlcndpc2UgcmV0dXJucyB0aGUgbmFtZSB3aXRoIGEgZGFzaCBpbiBmcm9udC5cbi8vIFVzZWZ1bCBmb3IgbWFraW5nIHJlc3BvbnNpdmUgdXRpbGl0aWVzLlxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtaW5maXgoeHMsICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXG4vLyAgICBcIlwiICAoUmV0dXJucyBhIGJsYW5rIHN0cmluZylcbi8vICAgID4+IGJyZWFrcG9pbnQtaW5maXgoc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXG4vLyAgICBcIi1zbVwiXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1pbmZpeCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICBAcmV0dXJuIGlmKGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpID09IG51bGwsIFwiXCIsIFwiLSN7JG5hbWV9XCIpO1xufVxuXG4vLyBNZWRpYSBvZiBhdCBsZWFzdCB0aGUgbWluaW11bSBicmVha3BvaW50IHdpZHRoLiBObyBxdWVyeSBmb3IgdGhlIHNtYWxsZXN0IGJyZWFrcG9pbnQuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQgYW5kIHdpZGVyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtdXAoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cyk7XG4gIEBpZiAkbWluIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBNZWRpYSBvZiBhdCBtb3N0IHRoZSBtYXhpbXVtIGJyZWFrcG9pbnQgd2lkdGguIE5vIHF1ZXJ5IGZvciB0aGUgbGFyZ2VzdCBicmVha3BvaW50LlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50IGFuZCBuYXJyb3dlci5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LWRvd24oJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50cyk7XG4gIEBpZiAkbWF4IHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJG1heCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBNZWRpYSB0aGF0IHNwYW5zIG11bHRpcGxlIGJyZWFrcG9pbnQgd2lkdGhzLlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IGJldHdlZW4gdGhlIG1pbiBhbmQgbWF4IGJyZWFrcG9pbnRzXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC1iZXR3ZWVuKCRsb3dlciwgJHVwcGVyLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtaW46IGJyZWFrcG9pbnQtbWluKCRsb3dlciwgJGJyZWFrcG9pbnRzKTtcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJHVwcGVyLCAkYnJlYWtwb2ludHMpO1xuXG4gIEBpZiAkbWluICE9IG51bGwgYW5kICRtYXggIT0gbnVsbCB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIGFuZCAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1heCA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRsb3dlciwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1pbiA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oJHVwcGVyLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLyBNZWRpYSBiZXR3ZWVuIHRoZSBicmVha3BvaW50J3MgbWluaW11bSBhbmQgbWF4aW11bSB3aWR0aHMuXG4vLyBObyBtaW5pbXVtIGZvciB0aGUgc21hbGxlc3QgYnJlYWtwb2ludCwgYW5kIG5vIG1heGltdW0gZm9yIHRoZSBsYXJnZXN0IG9uZS5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSBvbmx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50LCBub3Qgdmlld3BvcnRzIGFueSB3aWRlciBvciBuYXJyb3dlci5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LW9ubHkoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogIGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuICAkbmV4dDogYnJlYWtwb2ludC1uZXh0KCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuICAkbWF4OiAgYnJlYWtwb2ludC1tYXgoJG5leHQpO1xuXG4gIEBpZiAkbWluICE9IG51bGwgYW5kICRtYXggIT0gbnVsbCB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIGFuZCAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1heCA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRuYW1lLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWluID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkbmV4dCwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cbiIsIkB1c2UgJ0Bhbmd1bGFyL2Nkayc7XG5cbkBtaXhpbiByaXBwbGUoKSB7XG4gIC8vIFRoZSBob3N0IGVsZW1lbnQgb2YgYW4gbWF0LXJpcHBsZSBkaXJlY3RpdmUgc2hvdWxkIGFsd2F5cyBoYXZlIGEgcG9zaXRpb24gb2YgXCJhYnNvbHV0ZVwiIG9yXG4gIC8vIFwicmVsYXRpdmVcIiBzbyB0aGF0IHRoZSByaXBwbGVzIGluc2lkZSBhcmUgY29ycmVjdGx5IHBvc2l0aW9uZWQgcmVsYXRpdmVseSB0byB0aGUgY29udGFpbmVyLlxuICAubWF0LXJpcHBsZSB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgIC8vIEJ5IGRlZmF1bHQsIGV2ZXJ5IHJpcHBsZSBjb250YWluZXIgc2hvdWxkIGhhdmUgcG9zaXRpb246IHJlbGF0aXZlIGluIGZhdm9yIG9mIGNyZWF0aW5nIGFuXG4gICAgLy8gZWFzeSBBUEkgZm9yIGRldmVsb3BlcnMgdXNpbmcgdGhlIE1hdFJpcHBsZSBkaXJlY3RpdmUuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgLy8gUHJvbW90ZSBjb250YWluZXJzIHRoYXQgaGF2ZSByaXBwbGVzIHRvIGEgbmV3IGxheWVyLiBXZSB3YW50IHRvIHRhcmdldCBgOm5vdCg6ZW1wdHkpYCxcbiAgICAvLyBiZWNhdXNlIHdlIGRvbid0IHdhbnQgYWxsIHJpcHBsZSBjb250YWluZXJzIHRvIGhhdmUgdGhlaXIgb3duIGxheWVyIHNpbmNlIHRoZXkncmUgdXNlZCBpbiBhXG4gICAgLy8gbG90IG9mIHBsYWNlcyBhbmQgdGhlIGxheWVyIGlzIG9ubHkgcmVsZXZhbnQgd2hpbGUgYW5pbWF0aW5nLiBOb3RlIHRoYXQgaWRlYWxseSB3ZSdkIHVzZVxuICAgIC8vIHRoZSBgY29udGFpbmAgcHJvcGVydHkgaGVyZSAoc2VlICMxMzE3NSksIGJlY2F1c2UgYDplbXB0eWAgY2FuIGJlIGJyb2tlbiBieSBoYXZpbmcgZXh0cmFcbiAgICAvLyB0ZXh0IGluc2lkZSB0aGUgZWxlbWVudCwgYnV0IGl0IGlzbid0IHZlcnkgd2VsbCBzdXBwb3J0ZWQgeWV0LlxuICAgICY6bm90KDplbXB0eSkge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtcmlwcGxlLm1hdC1yaXBwbGUtdW5ib3VuZGVkIHtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgfVxuXG4gIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5LCB0cmFuc2Zvcm0gMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO1xuXG4gICAgLy8gV2UgdXNlIGEgM2QgdHJhbnNmb3JtIGhlcmUgaW4gb3JkZXIgdG8gYXZvaWQgYW4gaXNzdWUgaW4gU2FmYXJpIHdoZXJlXG4gICAgLy8gdGhlIHJpcHBsZXMgYXJlbid0IGNsaXBwZWQgd2hlbiBpbnNpZGUgdGhlIHNoYWRvdyBET00gKHNlZSAjMjQwMjgpLlxuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgwLCAwLCAwKTtcblxuICAgIC8vIEluIGhpZ2ggY29udHJhc3QgbW9kZSB0aGUgcmlwcGxlIGlzIG9wYXF1ZSwgY2F1c2luZyBpdCB0byBvYnN0cnVjdCB0aGUgY29udGVudC5cbiAgICBAaW5jbHVkZSBjZGsuaGlnaC1jb250cmFzdChhY3RpdmUsIG9mZikge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vLyBFbWl0cyBhIENTUyBjbGFzcywgYC5jZGstdmlzdWFsbHktaGlkZGVuYC4gVGhpcyBjbGFzcyBjYW4gYmUgYXBwbGllZCB0byBhbiBlbGVtZW50XG4vLy8gdG8gbWFrZSB0aGF0IGVsZW1lbnQgdmlzdWFsbHkgaGlkZGVuIHdoaWxlIHJlbWFpbmluZyBhdmFpbGFibGUgdG8gYXNzaXN0aXZlIHRlY2hub2xvZ3kuXG5AbWl4aW4gYTExeS12aXN1YWxseS1oaWRkZW4oKSB7XG4gIC5jZGstdmlzdWFsbHktaGlkZGVuIHtcbiAgICBib3JkZXI6IDA7XG4gICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBtYXJnaW46IC0xcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMXB4O1xuXG4gICAgLy8gVGhpcyB3b3JrcyBhcm91bmQgYSBDaHJvbWUgYnVnIHRoYXQgY2FuIGNhdXNlIHRoZSB0YWIgdG8gY3Jhc2ggd2hlbiBsYXJnZSBhbW91bnRzIG9mXG4gICAgLy8gbm9uLUVuZ2xpc2ggdGV4dCBnZXQgd3JhcHBlZDogaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9MTIwMTQ0NFxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICAvLyBBdm9pZCBicm93c2VycyByZW5kZXJpbmcgdGhlIGZvY3VzIHJpbmcgaW4gc29tZSBjYXNlcy5cbiAgICBvdXRsaW5lOiAwO1xuXG4gICAgLy8gQXZvaWQgc29tZSBjYXNlcyB3aGVyZSB0aGUgYnJvd3NlciB3aWxsIHN0aWxsIHJlbmRlciB0aGUgbmF0aXZlIGNvbnRyb2xzIChzZWUgIzkwNDkpLlxuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAvLyBXZSBuZWVkIGF0IGxlYXN0IG9uZSBvZiB0b3AvYm90dG9tL2xlZnQvcmlnaHQgaW4gb3JkZXIgdG8gcHJldmVudCBjYXNlcyB3aGVyZSB0aGVcbiAgICAvLyBhYnNvbHV0ZS1wb3NpdGlvbmVkIGVsZW1lbnQgaXMgcHVzaGVkIGRvd24gYW5kIGNhbiBhZmZlY3Qgc2Nyb2xsaW5nIChzZWUgIzI0NTk3KS5cbiAgICAvLyBgbGVmdGAgd2FzIGNob3NlbiBoZXJlLCBiZWNhdXNlIGl0J3MgdGhlIGxlYXN0IGxpa2VseSB0byBicmVhayBvdmVycmlkZXMgd2hlcmUgdGhlXG4gICAgLy8gZWxlbWVudCBtaWdodCBoYXZlIGJlZW4gcG9zaXRpb25lZCAoZS5nLiBgbWF0LWNoZWNrYm94YCkuXG4gICAgbGVmdDogMDtcblxuICAgIFtkaXI9J3J0bCddICYge1xuICAgICAgbGVmdDogYXV0bztcbiAgICAgIHJpZ2h0OiAwO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQGRlcHJlY2F0ZWQgVXNlIGBhMTF5LXZpc3VhbGx5LWhpZGRlbmAuXG5AbWl4aW4gYTExeSgpIHtcbiAgQGluY2x1ZGUgYTExeS12aXN1YWxseS1oaWRkZW47XG59XG5cbi8vLyBFbWl0cyB0aGUgbWl4aW4ncyBjb250ZW50IG5lc3RlZCB1bmRlciBgJHNlbGVjdG9yLWNvbnRleHRgIGlmIGAkc2VsZWN0b3ItY29udGV4dGBcbi8vLyBpcyBub24tZW1wdHkuXG4vLy8gQHBhcmFtIHtTdHJpbmd9IHNlbGVjdG9yLWNvbnRleHQgVGhlIHNlbGVjdG9yIHVuZGVyIHdoaWNoIHRvIG5lc3QgdGhlIG1peGluJ3MgY29udGVudC5cbkBtaXhpbiBfb3B0aW9uYWxseS1uZXN0LWNvbnRlbnQoJHNlbGVjdG9yLWNvbnRleHQpIHtcbiAgQGlmICgkc2VsZWN0b3ItY29udGV4dCA9PSAnJykge1xuICAgIEBjb250ZW50O1xuICB9XG4gIEBlbHNlIHtcbiAgICAjeyRzZWxlY3Rvci1jb250ZXh0fSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFwcGxpZXMgc3R5bGVzIGZvciB1c2VycyBpbiBoaWdoIGNvbnRyYXN0IG1vZGUuIE5vdGUgdGhhdCB0aGlzIG9ubHkgYXBwbGllc1xuLy8vIHRvIE1pY3Jvc29mdCBicm93c2Vycy4gQ2hyb21lIGNhbiBiZSBpbmNsdWRlZCBieSBjaGVja2luZyBmb3IgdGhlIGBodG1sW2hjXWBcbi8vLyBhdHRyaWJ1dGUsIGhvd2V2ZXIgQ2hyb21lIGhhbmRsZXMgaGlnaCBjb250cmFzdCBkaWZmZXJlbnRseS5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSB0YXJnZXQgVHlwZSBvZiBoaWdoIGNvbnRyYXN0IHNldHRpbmcgdG8gdGFyZ2V0LiBEZWZhdWx0cyB0byBgYWN0aXZlYCwgY2FuIGJlXG4vLy8gICAgIGB3aGl0ZS1vbi1ibGFja2Agb3IgYGJsYWNrLW9uLXdoaXRlYC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gZW5jYXBzdWxhdGlvbiBXaGV0aGVyIHRvIGVtaXQgc3R5bGVzIGZvciB2aWV3IGVuY2Fwc3VsYXRpb24uIFZhbHVlcyBhcmU6XG4vLy8gICAgICogYG9uYCAtIHdvcmtzIGZvciBgRW11bGF0ZWRgLCBgTmF0aXZlYCwgYW5kIGBTaGFkb3dEb21gXG4vLy8gICAgICogYG9mZmAgLSB3b3JrcyBmb3IgYE5vbmVgXG4vLy8gICAgICogYGFueWAgLSB3b3JrcyBmb3IgYWxsIGVuY2Fwc3VsYXRpb24gbW9kZXMgYnkgZW1pdHRpbmcgdGhlIENTUyB0d2ljZSAoZGVmYXVsdCkuXG5AbWl4aW4gaGlnaC1jb250cmFzdCgkdGFyZ2V0OiBhY3RpdmUsICRlbmNhcHN1bGF0aW9uOiAnYW55Jykge1xuICBAaWYgKCR0YXJnZXQgIT0gJ2FjdGl2ZScgYW5kICR0YXJnZXQgIT0gJ2JsYWNrLW9uLXdoaXRlJyBhbmQgJHRhcmdldCAhPSAnd2hpdGUtb24tYmxhY2snKSB7XG4gICAgQGVycm9yICdVbmtub3duIGNkay1oaWdoLWNvbnRyYXN0IHZhbHVlIFwiI3skdGFyZ2V0fVwiIHByb3ZpZGVkLiAnICtcbiAgICAgICAgICAgJ0FsbG93ZWQgdmFsdWVzIGFyZSBcImFjdGl2ZVwiLCBcImJsYWNrLW9uLXdoaXRlXCIsIGFuZCBcIndoaXRlLW9uLWJsYWNrXCInO1xuICB9XG5cbiAgQGlmICgkZW5jYXBzdWxhdGlvbiAhPSAnb24nIGFuZCAkZW5jYXBzdWxhdGlvbiAhPSAnb2ZmJyBhbmQgJGVuY2Fwc3VsYXRpb24gIT0gJ2FueScpIHtcbiAgICBAZXJyb3IgJ1Vua25vd24gY2RrLWhpZ2gtY29udHJhc3QgZW5jYXBzdWxhdGlvbiBcIiN7JGVuY2Fwc3VsYXRpb259XCIgcHJvdmlkZWQuICcgK1xuICAgICAgICAgICAnQWxsb3dlZCB2YWx1ZXMgYXJlIFwib25cIiwgXCJvZmZcIiwgYW5kIFwiYW55XCInO1xuICB9XG5cbiAgLy8gSWYgdGhlIHNlbGVjdG9yIGNvbnRleHQgaGFzIG11bHRpcGxlIHBhcnRzLCBzdWNoIGFzIGAuc2VjdGlvbiwgLnJlZ2lvbmAsIGp1c3QgZG9pbmdcbiAgLy8gYC5jZGstaGlnaC1jb250cmFzdC14eHggI3smfWAgd2lsbCBvbmx5IGFwcGx5IHRoZSBwYXJlbnQgc2VsZWN0b3IgdG8gdGhlIGZpcnN0IHBhcnQgb2YgdGhlXG4gIC8vIGNvbnRleHQuIFdlIGFkZHJlc3MgdGhpcyBieSBuZXN0aW5nIHRoZSBzZWxlY3RvciBjb250ZXh0IHVuZGVyIC5jZGstaGlnaC1jb250cmFzdC5cbiAgQGF0LXJvb3Qge1xuICAgICRzZWxlY3Rvci1jb250ZXh0OiAjeyZ9O1xuXG4gICAgQGlmICgkZW5jYXBzdWxhdGlvbiAhPSAnb24nKSB7XG4gICAgICAvLyBOb3RlIHRoYXQgaWYgdGhpcyBzZWxlY3RvciBpcyB1cGRhdGVkLCB0aGUgc2FtZSBjaGFuZ2UgaGFzIHRvIGJlIG1hZGUgaW5zaWRlXG4gICAgICAvLyBgX292ZXJsYXkuc2Nzc2Agd2hpY2ggY2FuJ3QgZGVwZW5kIG9uIHRoaXMgbWl4aW4gZHVlIHRvIHNvbWUgaW5mcmFzdHJ1Y3R1cmUgbGltaXRhdGlvbnMuXG4gICAgICAuY2RrLWhpZ2gtY29udHJhc3QtI3skdGFyZ2V0fSB7XG4gICAgICAgIEBpbmNsdWRlIF9vcHRpb25hbGx5LW5lc3QtY29udGVudCgkc2VsZWN0b3ItY29udGV4dCkge1xuICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmICgkZW5jYXBzdWxhdGlvbiAhPSAnb2ZmJykge1xuICAgICAgLmNkay1oaWdoLWNvbnRyYXN0LSN7JHRhcmdldH0gOmhvc3Qge1xuICAgICAgICBAaW5jbHVkZSBfb3B0aW9uYWxseS1uZXN0LWNvbnRlbnQoJHNlbGVjdG9yLWNvbnRleHQpIHtcbiAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gV2Ugd2FudCBvdmVybGF5cyB0byBhbHdheXMgYXBwZWFyIG92ZXIgdXNlciBjb250ZW50LCBzbyBzZXQgYSBiYXNlbGluZVxuLy8gdmVyeSBoaWdoIHotaW5kZXggZm9yIHRoZSBvdmVybGF5IGNvbnRhaW5lciwgd2hpY2ggaXMgd2hlcmUgd2UgY3JlYXRlIHRoZSBuZXdcbi8vIHN0YWNraW5nIGNvbnRleHQgZm9yIGFsbCBvdmVybGF5cy5cbiRvdmVybGF5LWNvbnRhaW5lci16LWluZGV4OiAxMDAwICFkZWZhdWx0O1xuJG92ZXJsYXktei1pbmRleDogMTAwMCAhZGVmYXVsdDtcbiRvdmVybGF5LWJhY2tkcm9wLXotaW5kZXg6IDEwMDAgIWRlZmF1bHQ7XG5cbi8vIEJhY2tncm91bmQgY29sb3IgZm9yIGFsbCBvZiB0aGUgYmFja2Ryb3BzXG4kb3ZlcmxheS1iYWNrZHJvcC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjMyKSAhZGVmYXVsdDtcblxuLy8gRGVmYXVsdCBiYWNrZHJvcCBhbmltYXRpb24gaXMgYmFzZWQgb24gdGhlIE1hdGVyaWFsIERlc2lnbiBzd2lmdC1lYXNlLW91dC5cbiRiYWNrZHJvcC1hbmltYXRpb24tZHVyYXRpb246IDQwMG1zICFkZWZhdWx0O1xuJGJhY2tkcm9wLWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpICFkZWZhdWx0O1xuXG4vLy8gRW1pdHMgc3RydWN0dXJhbCBzdHlsZXMgcmVxdWlyZWQgZm9yIGNkay9vdmVybGF5IHRvIGZ1bmN0aW9uLlxuQG1peGluIG92ZXJsYXkoKSB7XG4gIC5jZGstb3ZlcmxheS1jb250YWluZXIsIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlciB7XG4gICAgLy8gRGlzYWJsZSBldmVudHMgZnJvbSBiZWluZyBjYXB0dXJlZCBvbiB0aGUgb3ZlcmxheSBjb250YWluZXIuXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAvLyBUaGUgY29udGFpbmVyIHNob3VsZCBiZSB0aGUgc2l6ZSBvZiB0aGUgdmlld3BvcnQuXG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLy8gVGhlIG92ZXJsYXktY29udGFpbmVyIGlzIGFuIGludmlzaWJsZSBlbGVtZW50IHdoaWNoIGNvbnRhaW5zIGFsbCBpbmRpdmlkdWFsIG92ZXJsYXlzLlxuICAuY2RrLW92ZXJsYXktY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgei1pbmRleDogJG92ZXJsYXktY29udGFpbmVyLXotaW5kZXg7XG5cbiAgICAmOmVtcHR5IHtcbiAgICAgIC8vIEhpZGUgdGhlIGVsZW1lbnQgd2hlbiBpdCBkb2Vzbid0IGhhdmUgYW55IGNoaWxkIG5vZGVzLiBUaGlzIGRvZXNuJ3RcbiAgICAgIC8vIGluY2x1ZGUgb3ZlcmxheXMgdGhhdCBoYXZlIGJlZW4gZGV0YWNoZWQsIHJhdGhlciB0aGFuIGRpc3Bvc2VkLlxuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAvLyBXZSB1c2UgYW4gZXh0cmEgd3JhcHBlciBlbGVtZW50IGluIG9yZGVyIHRvIHVzZSBtYWtlIHRoZSBvdmVybGF5IGl0c2VsZiBhIGZsZXggaXRlbS5cbiAgLy8gVGhpcyBtYWtlcyBjZW50ZXJpbmcgdGhlIG92ZXJsYXkgZWFzeSB3aXRob3V0IHJ1bm5pbmcgaW50byB0aGUgc3VicGl4ZWwgcmVuZGVyaW5nXG4gIC8vIHByb2JsZW1zIHRpZWQgdG8gdXNpbmcgYHRyYW5zZm9ybWAgYW5kIHdpdGhvdXQgaW50ZXJmZXJpbmcgd2l0aCB0aGUgb3RoZXIgcG9zaXRpb25cbiAgLy8gc3RyYXRlZ2llcy5cbiAgLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAkb3ZlcmxheS16LWluZGV4O1xuICB9XG5cbiAgLy8gQSBzaW5nbGUgb3ZlcmxheSBwYW5lLlxuICAuY2RrLW92ZXJsYXktcGFuZSB7XG4gICAgLy8gTm90ZTogaXQncyBpbXBvcnRhbnQgZm9yIHRoaXMgb25lIHRvIHN0YXJ0IG9mZiBgYWJzb2x1dGVgLFxuICAgIC8vIGluIG9yZGVyIGZvciB1cyB0byBiZSBhYmxlIHRvIG1lYXN1cmUgaXQgY29ycmVjdGx5LlxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHotaW5kZXg6ICRvdmVybGF5LXotaW5kZXg7XG5cbiAgICAvLyBGb3IgY29ubmVjdGVkLXBvc2l0aW9uIG92ZXJsYXlzLCB3ZSBzZXQgYGRpc3BsYXk6IGZsZXhgIGluXG4gICAgLy8gb3JkZXIgdG8gZm9yY2UgYG1heC13aWR0aGAgYW5kIGBtYXgtaGVpZ2h0YCB0byB0YWtlIGVmZmVjdC5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICB9XG5cbiAgLmNkay1vdmVybGF5LWJhY2tkcm9wIHtcbiAgICAvLyBUT0RPKGplbGJvdXJuKTogcmV1c2Ugc2lkZW5hdiBmdWxsc2NyZWVuIG1peGluLlxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG5cbiAgICB6LWluZGV4OiAkb3ZlcmxheS1iYWNrZHJvcC16LWluZGV4O1xuICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAkYmFja2Ryb3AtYW5pbWF0aW9uLWR1cmF0aW9uICRiYWNrZHJvcC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uO1xuICAgIG9wYWNpdHk6IDA7XG5cbiAgICAmLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmcge1xuICAgICAgb3BhY2l0eTogMTtcblxuICAgICAgLy8gTm90ZSB0aGF0IHdlIGNhbid0IGltcG9ydCBhbmQgdXNlIHRoZSBgaGlnaC1jb250cmFzdGAgbWl4aW4gZnJvbSBgX2ExMXkuc2Nzc2AsIGJlY2F1c2VcbiAgICAgIC8vIHRoaXMgZmlsZSB3aWxsIGJlIGNvcGllZCB0byB0aGUgdG9wLWxldmVsIGBjZGtgIHBhY2thZ2Ugd2hlbiBwdXR0aW5nIHRvZ2V0aGVyIHRoZSBmaWxlc1xuICAgICAgLy8gZm9yIG5wbS4gQW55IHJlbGF0aXZlIGltcG9ydCBwYXRocyB3ZSB1c2UgaGVyZSB3aWxsIGJlY29tZSBpbnZhbGlkIG9uY2UgdGhlIGZpbGUgaXMgY29waWVkLlxuICAgICAgLmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAmIHtcbiAgICAgICAgLy8gSW4gaGlnaCBjb250cmFzdCBtb2RlIHRoZSByZ2JhIGJhY2tncm91bmQgd2lsbCBiZWNvbWUgc29saWRcbiAgICAgICAgLy8gc28gd2UgbmVlZCB0byBmYWxsIGJhY2sgdG8gbWFraW5nIGl0IG9wYXF1ZSB1c2luZyBgb3BhY2l0eWAuXG4gICAgICAgIG9wYWNpdHk6IDAuNjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcCB7XG4gICAgYmFja2dyb3VuZDogJG92ZXJsYXktYmFja2Ryb3AtY29sb3I7XG4gIH1cblxuICAuY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3Age1xuICAgIC8vIERlZmluZSBhIHRyYW5zaXRpb24gb24gdGhlIHZpc2liaWxpdHkgc28gdGhhdCB0aGUgYHRyYW5zaXRpb25lbmRgIGV2ZW50IGNhbiBmaXJlIGltbWVkaWF0ZWx5LlxuICAgIHRyYW5zaXRpb246IHZpc2liaWxpdHkgMW1zIGxpbmVhciwgb3BhY2l0eSAxbXMgbGluZWFyO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICBvcGFjaXR5OiAxO1xuXG4gICAgLy8gTm90ZTogYXMgb2YgRmlyZWZveCA1NywgaGF2aW5nIHRoZSBiYWNrZHJvcCBiZSBgYmFja2dyb3VuZDogbm9uZWAgd2lsbCBwcmV2ZW50IGl0IGZyb21cbiAgICAvLyBjYXB0dXJpbmcgdGhlIHVzZXIncyBtb3VzZSBzY3JvbGwgZXZlbnRzLiBTaW5jZSB3ZSBhbHNvIGNhbid0IHVzZSBzb21ldGhpbmcgbGlrZVxuICAgIC8vIGByZ2JhKDAsIDAsIDAsIDApYCwgd2Ugd29yayBhcm91bmQgdGhlIGluY29uc2lzdGVuY3kgYnkgbm90IHNldHRpbmcgdGhlIGJhY2tncm91bmQgYXRcbiAgICAvLyBhbGwgYW5kIHVzaW5nIGBvcGFjaXR5YCB0byBtYWtlIHRoZSBlbGVtZW50IHRyYW5zcGFyZW50LlxuICAgICYuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZyB7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICB9XG4gIH1cblxuICAuY2RrLW92ZXJsYXktYmFja2Ryb3Atbm9vcC1hbmltYXRpb24ge1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gIH1cblxuICAvLyBPdmVybGF5IHBhcmVudCBlbGVtZW50IHVzZWQgd2l0aCB0aGUgY29ubmVjdGVkIHBvc2l0aW9uIHN0cmF0ZWd5LiBVc2VkIHRvIGNvbnN0cmFpbiB0aGVcbiAgLy8gb3ZlcmxheSBlbGVtZW50J3Mgc2l6ZSB0byBmaXQgd2l0aGluIHRoZSB2aWV3cG9ydC5cbiAgLmNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3gge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAkb3ZlcmxheS16LWluZGV4O1xuXG4gICAgLy8gV2UgdXNlIGBkaXNwbGF5OiBmbGV4YCBvbiB0aGlzIGVsZW1lbnQgZXhjbHVzaXZlbHkgZm9yIGNlbnRlcmluZyBjb25uZWN0ZWQgb3ZlcmxheXMuXG4gICAgLy8gV2hlbiAqbm90KiBjZW50ZXJpbmcsIGEgdG9wL2xlZnQvYm90dG9tL3JpZ2h0IHdpbGwgYmUgc2V0IHdoaWNoIG92ZXJyaWRlcyB0aGUgbm9ybWFsXG4gICAgLy8gZmxleCBsYXlvdXQuXG4gICAgZGlzcGxheTogZmxleDtcblxuICAgIC8vIFdlIHVzZSB0aGUgYGNvbHVtbmAgZGlyZWN0aW9uIGhlcmUgdG8gYXZvaWQgc29tZSBmbGV4Ym94IGlzc3VlcyBpbiBFZGdlXG4gICAgLy8gd2hlbiB1c2luZyB0aGUgXCJncm93IGFmdGVyIG9wZW5cIiBvcHRpb25zLlxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAvLyBBZGQgc29tZSBkaW1lbnNpb25zIHNvIHRoZSBlbGVtZW50IGhhcyBhbiBgaW5uZXJUZXh0YCB3aGljaCBzb21lIHBlb3BsZSBkZXBlbmQgb24gaW4gdGVzdHMuXG4gICAgbWluLXdpZHRoOiAxcHg7XG4gICAgbWluLWhlaWdodDogMXB4O1xuICB9XG5cbiAgLy8gVXNlZCB3aGVuIGRpc2FibGluZyBnbG9iYWwgc2Nyb2xsaW5nLlxuICAuY2RrLWdsb2JhbC1zY3JvbGxibG9jayB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuXG4gICAgLy8gTmVjZXNzYXJ5IGZvciB0aGUgY29udGVudCBub3QgdG8gbG9zZSBpdHMgd2lkdGguIE5vdGUgdGhhdCB3ZSdyZSB1c2luZyAxMDAlLCBpbnN0ZWFkIG9mXG4gICAgLy8gMTAwdncsIGJlY2F1c2UgMTAwdncgaW5jbHVkZXMgdGhlIHdpZHRoIHBsdXMgdGhlIHNjcm9sbGJhciwgd2hlcmVhcyAxMDAlIGlzIHRoZSB3aWR0aFxuICAgIC8vIHRoYXQgdGhlIGVsZW1lbnQgaGFkIGJlZm9yZSB3ZSBtYWRlIGl0IGBmaXhlZGAuXG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICAvLyBOb3RlOiB0aGlzIHdpbGwgYWx3YXlzIGFkZCBhIHNjcm9sbGJhciB0byB3aGF0ZXZlciBlbGVtZW50IGl0IGlzIG9uLCB3aGljaCBjYW5cbiAgICAvLyBwb3RlbnRpYWxseSByZXN1bHQgaW4gZG91YmxlIHNjcm9sbGJhcnMuIEl0IHNob3VsZG4ndCBiZSBhbiBpc3N1ZSwgYmVjYXVzZSB3ZSB3b24ndFxuICAgIC8vIGJsb2NrIHNjcm9sbGluZyBvbiBhIHBhZ2UgdGhhdCBkb2Vzbid0IGhhdmUgYSBzY3JvbGxiYXIgaW4gdGhlIGZpcnN0IHBsYWNlLlxuICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgfVxufVxuIiwiLy8gU3RydWN0dXJhbCBzdHlsZXMgZm9yIHRoZSBhdXRvc2l6ZSB0ZXh0IGZpZWxkcy5cbkBtaXhpbiB0ZXh0LWZpZWxkLWF1dG9zaXplKCkge1xuICAvLyBSZW1vdmUgdGhlIHJlc2l6ZSBoYW5kbGUgb24gYXV0b3NpemluZyB0ZXh0YXJlYXMsIGJlY2F1c2Ugd2hhdGV2ZXIgaGVpZ2h0XG4gIC8vIHRoZSB1c2VyIHJlc2l6ZWQgdG8gd2lsbCBiZSBvdmVyd3JpdHRlbiBvbmNlIHRoZXkgc3RhcnQgdHlwaW5nIGFnYWluLlxuICB0ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUge1xuICAgIHJlc2l6ZTogbm9uZTtcbiAgfVxuXG4gIC8vIFRoaXMgY2xhc3MgaXMgdGVtcG9yYXJpbHkgYXBwbGllZCB0byB0aGUgdGV4dGFyZWEgd2hlbiBpdCBpcyBiZWluZyBtZWFzdXJlZC4gSXQgaXMgaW1tZWRpYXRlbHlcbiAgLy8gcmVtb3ZlZCB3aGVuIG1lYXN1cmluZyBpcyBjb21wbGV0ZS4gV2UgdXNlIGAhaW1wb3J0YW50YCBydWxlcyBoZXJlIHRvIG1ha2Ugc3VyZSB1c2VyLXNwZWNpZmllZFxuICAvLyBydWxlcyBkbyBub3QgaW50ZXJmZXJlIHdpdGggdGhlIG1lYXN1cmVtZW50LlxuICB0ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nIHtcbiAgICBAaW5jbHVkZSBfYXV0b3NpemUtbWVhc3VyaW5nLWJhc2U7XG4gICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xuICB9XG5cbiAgLy8gU2ltaWxhciB0byB0aGUgYGNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmdgIGNsYXNzLCBidXQgb25seSBhcHBsaWVkIG9uIEZpcmVmb3guIFdlIG5lZWRcbiAgLy8gdG8gdXNlIHRoaXMgY2xhc3MsIGJlY2F1c2UgRmlyZWZveCBoYXMgYSBidWcgd2hlcmUgY2hhbmdpbmcgdGhlIGBvdmVyZmxvd2AgYnJlYWtzIHRoZSB1c2VyJ3NcbiAgLy8gYWJpbGl0eSB0byB1bmRvL3JlZG8gd2hhdCB0aGV5IHdlcmUgdHlwaW5nIChzZWUgIzE2NjI5KS4gVGhpcyBjbGFzcyBpcyBvbmx5IHNjb3BlZCB0byBGaXJlZm94LFxuICAvLyBiZWNhdXNlIHRoZSBtZWFzdXJlbWVudHMgdGhlcmUgZG9uJ3Qgc2VlbSB0byBiZSBhZmZlY3RlZCBieSB0aGUgYGhlaWdodDogMGAsIHdoZXJlYXMgb24gb3RoZXJcbiAgLy8gYnJvd3NlcnMgdGhleSBhcmUsIGUuZy4gQ2hyb21lIGRldGVjdHMgbG9uZ2VyIHRleHQgYW5kIElFIGRvZXMndCByZXNpemUgYmFjayB0byBub3JtYWwuXG4gIC8vIElkZW50aWNhbCBpc3N1ZSByZXBvcnQ6IGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTQ0ODc4NFxuICB0ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nLWZpcmVmb3gge1xuICAgIEBpbmNsdWRlIF9hdXRvc2l6ZS1tZWFzdXJpbmctYmFzZTtcbiAgICBoZWlnaHQ6IDAgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vLyBDb3JlIHN0eWxlcyB0aGF0IGVuYWJsZSBtb25pdG9yaW5nIGF1dG9maWxsIHN0YXRlIG9mIHRleHQgZmllbGRzLlxuQG1peGluIHRleHQtZmllbGQtYXV0b2ZpbGwoKSB7XG4gIC8vIEtleWZyYW1lcyB0aGF0IGFwcGx5IG5vIHN0eWxlcywgYnV0IGFsbG93IHVzIHRvIG1vbml0b3Igd2hlbiBhbiB0ZXh0IGZpZWxkIGJlY29tZXMgYXV0b2ZpbGxlZFxuICAvLyBieSB3YXRjaGluZyBmb3IgdGhlIGFuaW1hdGlvbiBldmVudHMgdGhhdCBhcmUgZmlyZWQgd2hlbiB0aGV5IHN0YXJ0LiBOb3RlOiB0aGUgLyohKi8gY29tbWVudCBpc1xuICAvLyBuZWVkZWQgdG8gcHJldmVudCBMaWJTYXNzIGZyb20gc3RyaXBwaW5nIHRoZSBrZXlmcmFtZXMgb3V0LlxuICAvLyBCYXNlZCBvbjogaHR0cHM6Ly9tZWRpdW0uY29tL0BicnVubi9kZXRlY3RpbmctYXV0b2ZpbGxlZC1maWVsZHMtaW4tamF2YXNjcmlwdC1hZWQ1OThkMjVkYTdcbiAgQGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCB7LyohKi99XG4gIEBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIHsvKiEqL31cblxuICAuY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkOi13ZWJraXQtYXV0b2ZpbGwge1xuICAgIC8vIFNpbmNlIENocm9tZSA4MCB3ZSBuZWVkIGEgMW1zIGRlbGF5LCBvciB0aGUgYW5pbWF0aW9uc3RhcnQgZXZlbnQgd29uJ3QgZmlyZS5cbiAgICBhbmltYXRpb246IGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtcztcbiAgfVxuXG4gIC5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWQ6bm90KDotd2Via2l0LWF1dG9maWxsKSB7XG4gICAgLy8gU2luY2UgQ2hyb21lIDgwIHdlIG5lZWQgYSAxbXMgZGVsYXksIG9yIHRoZSBhbmltYXRpb25zdGFydCBldmVudCB3b24ndCBmaXJlLlxuICAgIGFuaW1hdGlvbjogY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIDBzIDFtcztcbiAgfVxufVxuXG5AbWl4aW4gX2F1dG9zaXplLW1lYXN1cmluZy1iYXNlIHtcbiAgLy8gSGF2aW5nIDJweCB0b3AgYW5kIGJvdHRvbSBwYWRkaW5nIHNlZW1zIHRvIGZpeCBhIGJ1ZyB3aGVyZSBDaHJvbWUgZ2V0cyBhbiBpbmNvcnJlY3RcbiAgLy8gbWVhc3VyZW1lbnQuIFdlIGp1c3QgaGF2ZSB0byBhY2NvdW50IGZvciBpdCBsYXRlciBhbmQgc3VidHJhY3QgaXQgb2ZmIHRoZSBmaW5hbCByZXN1bHQuXG4gIHBhZGRpbmc6IDJweCAwICFpbXBvcnRhbnQ7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7XG59XG5cbi8vIFVzZWQgdG8gZ2VuZXJhdGUgVUlEcyBmb3Iga2V5ZnJhbWVzIHVzZWQgdG8gY2hhbmdlIHRoZSB0ZXh0IGZpZWxkIGF1dG9maWxsIHN0eWxlcy5cbiRhdXRvZmlsbC1jb2xvci1mcmFtZS1jb3VudDogMDtcblxuLy8gTWl4aW4gdXNlZCB0byBhcHBseSBjdXN0b20gYmFja2dyb3VuZCBhbmQgZm9yZWdyb3VuZCBjb2xvcnMgdG8gYW4gYXV0b2ZpbGxlZCB0ZXh0IGZpZWxkLlxuLy8gQmFzZWQgb246IGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzI3ODE1NDkvXG4vLyByZW1vdmluZy1pbnB1dC1iYWNrZ3JvdW5kLWNvbG91ci1mb3ItY2hyb21lLWF1dG9jb21wbGV0ZSNhbnN3ZXItMzc0MzIyNjBcbkBtaXhpbiB0ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yKCRiYWNrZ3JvdW5kLCAkZm9yZWdyb3VuZDonJykge1xuICBAa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yLSN7JGF1dG9maWxsLWNvbG9yLWZyYW1lLWNvdW50fSB7XG4gICAgdG8ge1xuICAgICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgICBAaWYgJGZvcmVncm91bmQgIT0gJycgeyBjb2xvcjogJGZvcmVncm91bmQ7IH1cbiAgICB9XG4gIH1cblxuICAmOi13ZWJraXQtYXV0b2ZpbGwge1xuICAgIGFuaW1hdGlvbjogY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtY29sb3ItI3skYXV0b2ZpbGwtY29sb3ItZnJhbWUtY291bnR9IGJvdGg7XG4gIH1cblxuICAmLmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZDotd2Via2l0LWF1dG9maWxsIHtcbiAgICAvLyBTaW5jZSBDaHJvbWUgODAgd2UgbmVlZCBhIDFtcyBkZWxheSBmb3IgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQsIG9yIHRoZSBhbmltYXRpb25zdGFydFxuICAgIC8vIGV2ZW50IHdvbid0IGZpcmUuXG4gICAgYW5pbWF0aW9uOiBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCAwcyAxbXMsXG4gICAgICAgICAgICAgICBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1jb2xvci0jeyRhdXRvZmlsbC1jb2xvci1mcmFtZS1jb3VudH0gYm90aDtcbiAgfVxuXG4gICRhdXRvZmlsbC1jb2xvci1mcmFtZS1jb3VudDogJGF1dG9maWxsLWNvbG9yLWZyYW1lLWNvdW50ICsgMSAhZ2xvYmFsO1xufVxuXG4vLyBAZGVwcmVjYXRlZCBVc2UgYGF1dG9zaXplYCBhbmQgYGF1dG9maWxsYCBpbnN0ZWFkLlxuQG1peGluIHRleHQtZmllbGQge1xuICBAaW5jbHVkZSB0ZXh0LWZpZWxkLWF1dG9zaXplKCk7XG4gIEBpbmNsdWRlIHRleHQtZmllbGQtYXV0b2ZpbGwoKTtcbn1cbiIsIkB1c2UgJ3Nhc3M6bWFwJztcbkB1c2UgJ3Nhc3M6bWV0YSc7XG5AdXNlICdAYW5ndWxhci9jZGsnO1xuQHVzZSAnLi4vc3R5bGUvbGF5b3V0LWNvbW1vbic7XG5AdXNlICcuLi90aGVtaW5nL3RoZW1pbmcnO1xuQHVzZSAnLi4vdGhlbWluZy9pbnNwZWN0aW9uJztcblxuLy8gUHJpdmF0ZSBzYXNzIHZhcmlhYmxlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyByZWZlcmVuY2UgdGhyb3VnaG91dCBjb21wb25lbnQgc3R5bGVzaGVldHMuXG4kZGVmYXVsdC1ib3JkZXItd2lkdGg6IDNweDtcbiRkZWZhdWx0LWJvcmRlci1zdHlsZTogc29saWQ7XG4kZGVmYXVsdC1ib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuJGRlZmF1bHQtYm9yZGVyLXJhZGl1czogNHB4O1xuXG4vLyBNaXhpbiB0aGF0IHJlbmRlcnMgdGhlIGZvY3VzIGluZGljYXRvciBzdHJ1Y3R1cmFsIHN0eWxlcy5cbkBtaXhpbiBzdHJ1Y3R1cmFsLXN0eWxpbmcoJHByZWZpeCkge1xuICAuI3skcHJlZml4fS1mb2N1cy1pbmRpY2F0b3Ige1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSBsYXlvdXQtY29tbW9uLmZpbGwoKTtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIGRpc3BsYXk6IHZhcigtLSN7JHByZWZpeH0tZm9jdXMtaW5kaWNhdG9yLWRpc3BsYXksIG5vbmUpOyAvLyBIaWRlIHRoZSBpbmRpY2F0b3IgYnkgZGVmYXVsdC5cbiAgICAgIGJvcmRlcjogdmFyKFxuICAgICAgICAgIC0tI3skcHJlZml4fS1mb2N1cy1pbmRpY2F0b3ItYm9yZGVyLXdpZHRoLFxuICAgICAgICAgICN7JGRlZmF1bHQtYm9yZGVyLXdpZHRofVxuICAgICAgICApXG4gICAgICAgIHZhcihcbiAgICAgICAgICAtLSN7JHByZWZpeH0tZm9jdXMtaW5kaWNhdG9yLWJvcmRlci1zdHlsZSxcbiAgICAgICAgICAjeyRkZWZhdWx0LWJvcmRlci1zdHlsZX1cbiAgICAgICAgKVxuICAgICAgICB2YXIoXG4gICAgICAgICAgLS0jeyRwcmVmaXh9LWZvY3VzLWluZGljYXRvci1ib3JkZXItY29sb3IsXG4gICAgICAgICAgI3skZGVmYXVsdC1ib3JkZXItY29sb3J9XG4gICAgICAgICk7XG4gICAgICBib3JkZXItcmFkaXVzOiB2YXIoXG4gICAgICAgIC0tI3skcHJlZml4fS1mb2N1cy1pbmRpY2F0b3ItYm9yZGVyLXJhZGl1cyxcbiAgICAgICAgI3skZGVmYXVsdC1ib3JkZXItcmFkaXVzfVxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBCeSBkZWZhdWx0LCByZW5kZXIgdGhlIGZvY3VzIGluZGljYXRvciB3aGVuIHRoZSBmb2N1cyBpbmRpY2F0b3IgaG9zdCBlbGVtZW50IHRha2VzIGZvY3VzLlxuICAgIC8vIERlZmluaW5nIGEgcHNldWRvIGVsZW1lbnQncyBjb250ZW50IHdpbGwgY2F1c2UgaXQgdG8gcmVuZGVyLlxuICAgICY6Zm9jdXM6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICB9XG4gIH1cblxuICAvLyBFbmFibGUgdGhlIGluZGljYXRvciBpbiBoaWdoIGNvbnRyYXN0IG1vZGUuXG4gIEBpbmNsdWRlIGNkay5oaWdoLWNvbnRyYXN0KGFjdGl2ZSwgb2ZmKSB7XG4gICAgQGluY2x1ZGUgY3VzdG9taXplLWZvY3VzLWluZGljYXRvcnMoKGRpc3BsYXk6IGJsb2NrKSwgJHByZWZpeCk7XG4gIH1cbn1cblxuLy8gR2VuZXJhdGVzIENTUyB2YXJpYWJsZSBkZWNsYXJhdGlvbnMgZnJvbSBhIG1hcC5cbkBtaXhpbiBfb3V0cHV0LXZhcmlhYmxlcygkbWFwKSB7XG4gIEBlYWNoICRrZXksICR2YWx1ZSBpbiAkbWFwIHtcbiAgICBAaWYgKCR2YWx1ZSkge1xuICAgICAgLS0jeyRrZXl9OiAjeyR2YWx1ZX07XG4gICAgfVxuICB9XG59XG5cbi8vIE1peGluIHRoYXQgZGVkdXBzIENTUyB2YXJpYWJsZXMgZm9yIHRoZSBzdHJvbmctZm9jdXMtaW5kaWNhdG9ycyBtaXhpbi5cbkBtaXhpbiBjdXN0b21pemUtZm9jdXMtaW5kaWNhdG9ycygkY29uZmlnLCAkcHJlZml4KSB7XG4gICRib3JkZXItc3R5bGU6IG1hcC5nZXQoJGNvbmZpZywgYm9yZGVyLXN0eWxlKTtcbiAgJGJvcmRlci13aWR0aDogbWFwLmdldCgkY29uZmlnLCBib3JkZXItd2lkdGgpO1xuICAkYm9yZGVyLXJhZGl1czogbWFwLmdldCgkY29uZmlnLCBib3JkZXItcmFkaXVzKTtcbiAgJGJvcmRlci1jb2xvcjogbWFwLmdldCgkY29uZmlnLCBib3JkZXItY29sb3IpO1xuICAkZGlzcGxheTogbWFwLmdldCgkY29uZmlnLCBkaXNwbGF5KTtcbiAgJG1hcDogKFxuICAgICcjeyRwcmVmaXh9LWZvY3VzLWluZGljYXRvci1ib3JkZXItc3R5bGUnOiAkYm9yZGVyLXN0eWxlLFxuICAgICcjeyRwcmVmaXh9LWZvY3VzLWluZGljYXRvci1ib3JkZXItd2lkdGgnOiAkYm9yZGVyLXdpZHRoLFxuICAgICcjeyRwcmVmaXh9LWZvY3VzLWluZGljYXRvci1ib3JkZXItcmFkaXVzJzogJGJvcmRlci1yYWRpdXMsXG4gICAgJyN7JHByZWZpeH0tZm9jdXMtaW5kaWNhdG9yLWJvcmRlci1jb2xvcic6ICRib3JkZXItY29sb3IsXG4gICAgJyN7JHByZWZpeH0tZm9jdXMtaW5kaWNhdG9yLWRpc3BsYXknOiAkZGlzcGxheSxcbiAgKTtcblxuICBAaWYgKCYpIHtcbiAgICBAaW5jbHVkZSBfb3V0cHV0LXZhcmlhYmxlcygkbWFwKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgLy8gV2UgdXNlIGBodG1sYCBoZXJlIGluc3RlYWQgb2YgYDpyb290YCwgYmVjYXVzZSB0aGVcbiAgICAvLyBsYXR0ZXIgY2F1c2VzIHNvbWUgaXNzdWVzIHdpdGggaW50ZXJuYWwgdG9vbGluZy5cbiAgICBodG1sIHtcbiAgICAgIEBpbmNsdWRlIF9vdXRwdXQtdmFyaWFibGVzKCRtYXApO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gc3Ryb25nLWZvY3VzLWluZGljYXRvcnMoJGNvbmZpZzogKCkpIHtcbiAgLy8gRGVmYXVsdCBmb2N1cyBpbmRpY2F0b3IgY29uZmlnLlxuICAkZGVmYXVsdC1jb25maWc6IChcbiAgICAgIGJvcmRlci1jb2xvcjogYmxhY2ssXG4gICAgICBkaXNwbGF5OiBibG9jayxcbiAgKTtcblxuICAvLyBNZXJnZSBkZWZhdWx0IGNvbmZpZyB3aXRoIHVzZXIgY29uZmlnLlxuICAkY29uZmlnOiBtYXAubWVyZ2UoJGRlZmF1bHQtY29uZmlnLCAkY29uZmlnKTtcblxuICBAaW5jbHVkZSBjdXN0b21pemUtZm9jdXMtaW5kaWNhdG9ycygkY29uZmlnLCAnbWF0Jyk7XG59XG5cbkBtaXhpbiBtZGMtc3Ryb25nLWZvY3VzLWluZGljYXRvcnMoJGNvbmZpZzogKCkpIHtcbiAgLy8gRGVmYXVsdCBmb2N1cyBpbmRpY2F0b3IgY29uZmlnLlxuICAkZGVmYXVsdC1jb25maWc6IChcbiAgICAgIGJvcmRlci1jb2xvcjogYmxhY2ssXG4gICAgICBkaXNwbGF5OiBibG9jayxcbiAgKTtcblxuICAvLyBNZXJnZSBkZWZhdWx0IGNvbmZpZyB3aXRoIHVzZXIgY29uZmlnLlxuICAkY29uZmlnOiBtYXAubWVyZ2UoJGRlZmF1bHQtY29uZmlnLCAkY29uZmlnKTtcblxuICBAaW5jbHVkZSBjdXN0b21pemUtZm9jdXMtaW5kaWNhdG9ycygkY29uZmlnLCAnbWF0LW1kYycpO1xufVxuXG5AbWl4aW4gc3Ryb25nLWZvY3VzLWluZGljYXRvcnMtY29sb3IoJHRoZW1lLW9yLWNvbG9yKSB7XG4gIEBpZiBtZXRhLnR5cGUtb2YoJHRoZW1lLW9yLWNvbG9yKSA9PSAnY29sb3InIHtcbiAgICBAaW5jbHVkZSBjdXN0b21pemUtZm9jdXMtaW5kaWNhdG9ycygoXG4gICAgICAgIGJvcmRlci1jb2xvcjogJHRoZW1lLW9yLWNvbG9yXG4gICAgKSwgJ21hdCcpO1xuICB9XG4gIEBlbHNlIHtcbiAgICAkYm9yZGVyLWNvbG9yOiBpbnNwZWN0aW9uLmdldC10aGVtZS1jb2xvcigkdGhlbWUtb3ItY29sb3IsIHByaW1hcnkpO1xuICAgIEBpbmNsdWRlIGN1c3RvbWl6ZS1mb2N1cy1pbmRpY2F0b3JzKChcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yXG4gICAgKSwgJ21hdCcpO1xuICB9XG59XG5cbkBtaXhpbiBzdHJvbmctZm9jdXMtaW5kaWNhdG9ycy10aGVtZSgkdGhlbWUtb3ItY29sb3IpIHtcbiAgQGlmIG1ldGEudHlwZS1vZigkdGhlbWUtb3ItY29sb3IpID09ICdjb2xvcicge1xuICAgIEBpbmNsdWRlIGN1c3RvbWl6ZS1mb2N1cy1pbmRpY2F0b3JzKChcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkdGhlbWUtb3ItY29sb3JcbiAgICApLCAnbWF0Jyk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpbmNsdWRlIHRoZW1pbmcucHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZS1vci1jb2xvciwgJ21hdC1mb2N1cy1pbmRpY2F0b3JzJykge1xuICAgICAgQGlmIGluc3BlY3Rpb24udGhlbWUtaGFzKCR0aGVtZS1vci1jb2xvciwgY29sb3IpIHtcbiAgICAgICAgQGluY2x1ZGUgc3Ryb25nLWZvY3VzLWluZGljYXRvcnMtY29sb3IoJHRoZW1lLW9yLWNvbG9yKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1kYy1zdHJvbmctZm9jdXMtaW5kaWNhdG9ycy1jb2xvcigkdGhlbWUtb3ItY29sb3IpIHtcbiAgQGlmIG1ldGEudHlwZS1vZigkdGhlbWUtb3ItY29sb3IpID09ICdjb2xvcicge1xuICAgIEBpbmNsdWRlIGN1c3RvbWl6ZS1mb2N1cy1pbmRpY2F0b3JzKChcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkdGhlbWUtb3ItY29sb3JcbiAgICApLCAnbWF0LW1kYycpO1xuICB9XG4gIEBlbHNlIHtcbiAgICAkYm9yZGVyLWNvbG9yOiBpbnNwZWN0aW9uLmdldC10aGVtZS1jb2xvcigkdGhlbWUtb3ItY29sb3IsIHByaW1hcnkpO1xuICAgIEBpbmNsdWRlIGN1c3RvbWl6ZS1mb2N1cy1pbmRpY2F0b3JzKChcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yXG4gICAgKSwgJ21hdC1tZGMnKTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLXN0cm9uZy1mb2N1cy1pbmRpY2F0b3JzLXRoZW1lKCR0aGVtZS1vci1jb2xvcikge1xuICBAaWYgbWV0YS50eXBlLW9mKCR0aGVtZS1vci1jb2xvcikgPT0gJ2NvbG9yJyB7XG4gICAgQGluY2x1ZGUgY3VzdG9taXplLWZvY3VzLWluZGljYXRvcnMoKFxuICAgICAgICBib3JkZXItY29sb3I6ICR0aGVtZS1vci1jb2xvclxuICAgICksICdtYXQtbWRjJyk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpbmNsdWRlIHRoZW1pbmcucHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKFxuICAgICAgICAkdGhlbWUtb3ItY29sb3IsICdtYXQtbWRjLWZvY3VzLWluZGljYXRvcnMnKSB7XG4gICAgICBAaWYgaW5zcGVjdGlvbi50aGVtZS1oYXMoJHRoZW1lLW9yLWNvbG9yLCBjb2xvcikge1xuICAgICAgICBAaW5jbHVkZSBtZGMtc3Ryb25nLWZvY3VzLWluZGljYXRvcnMtY29sb3IoJHRoZW1lLW9yLWNvbG9yKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIFRoaXMgbWl4aW4gZW5zdXJlcyBhbiBlbGVtZW50IHNwYW5zIHRvIGZpbGwgdGhlIG5lYXJlc3QgYW5jZXN0b3Igd2l0aCBkZWZpbmVkIHBvc2l0aW9uaW5nLlxuQG1peGluIGZpbGwge1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbiIsIkB1c2UgJ3Nhc3M6Y29sb3InO1xuQHVzZSAnc2FzczptYXAnO1xuQHVzZSAnc2FzczptZXRhJztcblxuLy8vIEluY2x1ZGUgY29udGVudCB1bmRlciB0aGUgY3VycmVudCBzZWxlY3RvciAoJikgb3IgdGhlIGRvY3VtZW50IHJvb3QgaWYgdGhlcmUgaXMgbm8gY3VycmVudFxuLy8vIHNlbGVjdG9yLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkcm9vdCBbaHRtbF0gVGhlIGRlZmF1bHQgcm9vdCBzZWxlY3RvciB0byB1c2Ugd2hlbiB0aGVyZSBpcyBubyBjdXJyZW50IHNlbGVjdG9yLlxuLy8vIEBvdXRwdXQgVGhlIGdpdmVuIGNvbnRlbnQgdW5kZXIgdGhlIGN1cnJlbnQgc2VsZWN0b3IsIG9yIHJvb3Qgc2VsZWN0b3IgaWYgdGhlcmUgaXMgbm8gY3VycmVudFxuLy8vICAgICBzZWxlY3Rvci5cbi8vLyBAY29udGVudCBDb250ZW50IHRvIG91dHB1dCB1bmRlciB0aGUgY3VycmVudCBzZWxlY3Rvciwgb3Igcm9vdCBzZWxlY3RvciBpZiB0aGVyZSBpcyBubyBjdXJyZW50XG4vLy8gICAgIHNlbGVjdG9yLlxuQG1peGluIGN1cnJlbnQtc2VsZWN0b3Itb3Itcm9vdCgkcm9vdDogaHRtbCkge1xuICBAYXQtcm9vdCAjeyYgb3IgJHJvb3R9IHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLy8gQSB2ZXJzaW9uIG9mIHRoZSBzdGFuZGFyZCBgbWFwLm1lcmdlYCBmdW5jdGlvbiB0aGF0IHRha2VzIGEgdmFyaWFibGUgbnVtYmVyIG9mIGFyZ3VtZW50cy5cbi8vLyBFYWNoIGFyZ3VtZW50IGlzIG1lcmdlZCBpbnRvIHRoZSBmaW5hbCByZXN1bHQgZnJvbSBsZWZ0IHRvIHJpZ2h0LlxuLy8vIEBwYXJhbSB7TGlzdH0gJG1hcHMgVGhlIG1hcHMgdG8gY29tYmluZSB3aXRoIG1hcC5tZXJnZVxuLy8vIEByZXR1cm4ge01hcH0gVGhlIGNvbWJpbmVkIHJlc3VsdCBvZiBzdWNjZXNzaXZlbHkgY2FsbGluZyBtYXAubWVyZ2Ugd2l0aCBlYWNoIHBhcmFtZXRlci5cbkBmdW5jdGlvbiBtZXJnZS1hbGwoJG1hcHMuLi4pIHtcbiAgJHJlc3VsdDogKCk7XG4gIEBlYWNoICRtYXAgaW4gJG1hcHMge1xuICAgICRyZXN1bHQ6IG1hcC5tZXJnZSgkcmVzdWx0LCAkbWFwKTtcbiAgfVxuICBAcmV0dXJuICRyZXN1bHQ7XG59XG5cbi8vLyBBIHZlcnNpb24gb2YgdGhlIHN0YW5kYXJkIGBtYXAuZGVlcC1tZXJnZWAgZnVuY3Rpb24gdGhhdCB0YWtlcyBhIHZhcmlhYmxlIG51bWJlciBvZiBhcmd1bWVudHMuXG4vLy8gRWFjaCBhcmd1bWVudCBpcyBkZWVwLW1lcmdlZCBpbnRvIHRoZSBmaW5hbCByZXN1bHQgZnJvbSBsZWZ0IHRvIHJpZ2h0LlxuLy8vIEBwYXJhbSB7TGlzdH0gJG1hcHMgVGhlIG1hcHMgdG8gY29tYmluZSB3aXRoIG1hcC5kZWVwLW1lcmdlXG4vLy8gQHJldHVybiB7TWFwfSBUaGUgY29tYmluZWQgcmVzdWx0IG9mIHN1Y2Nlc3NpdmVseSBjYWxsaW5nIG1hcC5kZWVwLW1lcmdlIHdpdGggZWFjaCBwYXJhbWV0ZXIuXG5AZnVuY3Rpb24gZGVlcC1tZXJnZS1hbGwoJG1hcHMuLi4pIHtcbiAgJHJlc3VsdDogKCk7XG4gIEBlYWNoICRtYXAgaW4gJG1hcHMge1xuICAgICRyZXN1bHQ6IG1hcC5kZWVwLW1lcmdlKCRyZXN1bHQsICRtYXApO1xuICB9XG4gIEByZXR1cm4gJHJlc3VsdDtcbn1cblxuLy8vIENvZXJjZXMgdGhlIGdpdmVuIHZhbHVlIHRvIGEgbGlzdCwgYnkgY29udmVydGluZyBhbnkgbm9uLWxpc3QgdmFsdWUgaW50byBhIHNpbmdsZS1pdGVtIGxpc3QuXG4vLy8gVGhpcyBzaG91bGQgYmUgdXNlZCB3aGVuIGRlYWxpbmcgd2l0aCB1c2VyLXBhc3NlZCBsaXN0cyBvZiBhcmdzIHRvIGF2b2lkIGNvbmZ1c2luZyBlcnJvcnMsXG4vLy8gc2luY2UgU2FzcyB0cmVhdHMgYCgkeClgIGFzIGVxdWl2YWxlbnQgdG8gYCR4YC5cbi8vLyBAcGFyYW0ge0FueX0gJHZhbHVlIFRoZSB2YWx1ZSB0byBjb2VyY2UgdG8gYSBsaXN0LlxuLy8vIEByZXR1cm4ge0xpc3R9IFRoZSBvcmlnaW5hbCAkdmFsdWUgaWYgaXQgd2FzIGEgbGlzdCwgb3RoZXJ3aXNlIGEgc2luZ2xlLWl0ZW0gbGlzdCBjb250YWluaW5nXG4vLy8gICAgICR2YWx1ZS5cbkBmdW5jdGlvbiBjb2VyY2UtdG8tbGlzdCgkdmFsdWUpIHtcbiAgQHJldHVybiBpZihtZXRhLnR5cGUtb2YoJHZhbHVlKSAhPSAnbGlzdCcsICgkdmFsdWUsKSwgJHZhbHVlKTtcbn1cblxuLy8vIEEgdmVyc2lvbiBvZiB0aGUgU2FzcyBgY29sb3IuY2hhbmdlYCBmdW5jdGlvbiB0aGF0IGlzIHNhZmUgb3QgdXNlIHdpdGggQ1NTIHZhcmlhYmxlcy5cbkBmdW5jdGlvbiBzYWZlLWNvbG9yLWNoYW5nZSgkY29sb3IsICRhcmdzLi4uKSB7XG4gICRhcmdzOiBtZXRhLmtleXdvcmRzKCRhcmdzKTtcbiAgQHJldHVybiBpZihtZXRhLnR5cGUtb2YoJGNvbG9yKSA9PSAnY29sb3InLCBjb2xvci5jaGFuZ2UoJGNvbG9yLCAkYXJncy4uLiksICRjb2xvcik7XG59XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMjAgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQHVzZSAnc2FzczpsaXN0JztcbkB1c2UgJ3Nhc3M6bWFwJztcbkB1c2UgJ3Nhc3M6bWV0YSc7XG5AdXNlICcuL2dzcyc7XG5cbi8vLyBXaGVuIHRydWUsIGFkZCBhbiBhZGRpdGlvbmFsIHByb3BlcnR5L3ZhbHVlIGRlY2xhcmF0aW9uIGJlZm9yZSBkZWNsYXJhdGlvbnNcbi8vLyB0aGF0IHVzZSBhZHZhbmNlZCBmZWF0dXJlcyBzdWNoIGFzIGN1c3RvbSBwcm9wZXJ0aWVzIG9yIENTUyBmdW5jdGlvbnMuIFRoaXNcbi8vLyBhZGRzIGZhbGxiYWNrIHN1cHBvcnQgZm9yIG9sZGVyIGJyb3dzZXJzIHN1Y2ggYXMgSUUxMSB0aGF0IGRvIG5vdCBzdXBwb3J0XG4vLy8gdGhlc2UgZmVhdHVyZXMgYXQgdGhlIGNvc3Qgb2YgYWRkaXRpb25hbCBDU1MuIFNldCB0aGlzIHZhcmlhYmxlIHRvIGZhbHNlIHRvXG4vLy8gZGlzYWJsZSBnZW5lcmF0aW5nIGZhbGxiYWNrIGRlY2xhcmF0aW9ucy5cbiRlbmFibGUtZmFsbGJhY2stZGVjbGFyYXRpb25zOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gV3JpdGVzIGEgQ1NTIHByb3BlcnR5L3ZhbHVlIGRlY2xhcmF0aW9uLiBUaGlzIG1peGluIGlzIHVzZWQgdGhyb3VnaG91dCB0aGVcbi8vLyB0aGVtZSBwYWNrYWdlIGZvciBjb25zaXN0ZW5jeSBmb3IgZHluYW1pY2FsbHkgc2V0dGluZyBDU1MgcHJvcGVydHkgdmFsdWVzLlxuLy8vXG4vLy8gVGhpcyBtaXhpbiBtYXkgb3B0aW9uYWxseSB0YWtlIGEgZmFsbGJhY2sgdmFsdWUuIEZvciBhZHZhbmNlZCBmZWF0dXJlcyBzdWNoXG4vLy8gYXMgY3VzdG9tIHByb3BlcnRpZXMgb3IgQ1NTIGZ1bmN0aW9ucyBsaWtlIG1pbiBhbmQgbWF4LCBhIGZhbGxiYWNrIHZhbHVlIGlzXG4vLy8gcmVjb21tZW5kZWQgdG8gc3VwcG9ydCBvbGRlciBicm93c2Vycy5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkcHJvcGVydHkgLSBUaGUgQ1NTIHByb3BlcnR5IG9mIHRoZSBkZWNsYXJhdGlvbi5cbi8vLyBAcGFyYW0geyp9ICR2YWx1ZSAtIFRoZSB2YWx1ZSBvZiB0aGUgQ1NTIGRlY2xhcmF0aW9uLiBUaGUgdmFsdWUgc2hvdWxkIGJlXG4vLy8gICAgIHJlc29sdmVkIGJ5IG90aGVyIHRoZW1lIGZ1bmN0aW9ucyBmaXJzdCAoaS5lLiBjdXN0b20gcHJvcGVydHkgTWFwcyBhbmRcbi8vLyAgICAgTWF0ZXJpYWwgdGhlbWUga2V5cyBhcmUgbm90IHN1cHBvcnRlZCBpbiB0aGlzIG1peGluKS4gSWYgdGhlIHZhbHVlIGlzXG4vLy8gICAgIG51bGwsIG5vIGRlY2xhcmF0aW9ucyB3aWxsIGJlIGVtaXR0ZWQuXG4vLy8gQHBhcmFtIHsqfSAkZmFsbGJhY2sgLSBBbiBvcHRpb25hbCBmYWxsYmFjayB2YWx1ZSBmb3Igb2xkZXIgYnJvd3NlcnMuIElmXG4vLy8gICAgIHByb3ZpZGVkLCBhIHNlY29uZCBwcm9wZXJ0eS92YWx1ZSBkZWNsYXJhdGlvbiB3aWxsIGJlIGFkZGVkIGJlZm9yZSB0aGVcbi8vLyAgICAgbWFpbiBwcm9wZXJ0eS92YWx1ZSBkZWNsYXJhdGlvbi5cbi8vLyBAcGFyYW0ge01hcH0gJGdzcyAtIEFuIG9wdGlvbmFsIE1hcCBvZiBHU1MgYW5ub3RhdGlvbnMgdG8gYWRkLlxuLy8vIEBwYXJhbSB7Qm9vbH0gJGltcG9ydGFudCAtIElmIHRydWUsIGFkZCBgIWltcG9ydGFudGAgdG8gdGhlIGRlY2xhcmF0aW9uLlxuQG1peGluIGRlY2xhcmF0aW9uKFxuICAkcHJvcGVydHksXG4gICR2YWx1ZSxcbiAgJGZhbGxiYWNrLXZhbHVlOiBudWxsLFxuICAkZ3NzOiAoKSxcbiAgJGltcG9ydGFudDogZmFsc2Vcbikge1xuICAvLyBOb3JtYWxseSBzZXR0aW5nIGEgbnVsbCB2YWx1ZSB0byBhIHByb3BlcnR5IHdpbGwgbm90IGVtaXQgQ1NTLCBzbyBtaXhpbnNcbiAgLy8gd291bGRuJ3QgbmVlZCB0byBjaGVjayB0aGlzLiBIb3dldmVyLCBTYXNzIHdpbGwgdGhyb3cgYW4gZXJyb3IgaWYgdGhlXG4gIC8vIGludGVycG9sYXRlZCBwcm9wZXJ0eSBpcyBhIGN1c3RvbSBwcm9wZXJ0eS5cbiAgQGlmICR2YWx1ZSAhPSBudWxsIHtcbiAgICAkaW1wb3J0YW50LXJ1bGU6IGlmKCRpbXBvcnRhbnQsICcgIWltcG9ydGFudCcsICcnKTtcblxuICAgIEBpZiAkZmFsbGJhY2stdmFsdWUgYW5kICRlbmFibGUtZmFsbGJhY2stZGVjbGFyYXRpb25zIHtcbiAgICAgIEBpbmNsdWRlIGdzcy5hbm5vdGF0ZSgkZ3NzKTtcbiAgICAgICN7JHByb3BlcnR5fTogI3skZmFsbGJhY2stdmFsdWV9ICN7JGltcG9ydGFudC1ydWxlfTtcblxuICAgICAgLy8gQWRkIEBhbHRlcm5hdGUgdG8gYW5ub3RhdGlvbnMuXG4gICAgICAkZ3NzOiBtYXAubWVyZ2UoXG4gICAgICAgICRnc3MsXG4gICAgICAgIChcbiAgICAgICAgICBhbHRlcm5hdGU6IHRydWUsXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZ3NzLmFubm90YXRlKCRnc3MpO1xuICAgICN7JHByb3BlcnR5fTogI3skdmFsdWV9I3skaW1wb3J0YW50LXJ1bGV9O1xuICB9XG59XG5cbi8vLyBVbnBhY2tzIHNob3J0aGFuZCB2YWx1ZXMgZm9yIENTUyBwcm9wZXJ0aWVzIChpLmUuIGxpc3RzIG9mIDEtMyB2YWx1ZXMpLlxuLy8vIElmIGEgbGlzdCBvZiA0IHZhbHVlcyBpcyBnaXZlbiwgaXQgaXMgcmV0dXJuZWQgYXMtaXMuXG4vLy9cbi8vLyBFeGFtcGxlczpcbi8vL1xuLy8vIHVucGFjay12YWx1ZSg0cHgpID0+IDRweCA0cHggNHB4IDRweFxuLy8vIHVucGFjay12YWx1ZSg0cHggMnB4KSA9PiA0cHggMnB4IDRweCAycHhcbi8vLyB1bnBhY2stdmFsdWUoNHB4IDJweCAycHgpID0+IDRweCAycHggMnB4IDJweFxuLy8vIHVucGFjay12YWx1ZSg0cHggMnB4IDAgMnB4KSA9PiA0cHggMnB4IDAgMnB4XG4vLy9cbi8vLyBAcGFyYW0ge051bWJlciB8IE1hcCB8IExpc3R9ICR2YWx1ZSAtIExpc3Qgb2YgMSB0byA0IHZhbHVlIG51bWJlcnMuXG4vLy8gQHJldHVybiB7TGlzdH0gYSBMaXN0IG9mIDQgdmFsdWUgbnVtYmVycy5cbkBmdW5jdGlvbiB1bnBhY2stdmFsdWUoJHZhbHVlKSB7XG4gIEBpZiBtZXRhLnR5cGUtb2YoJHZhbHVlKSA9PSAnbWFwJyBvciBsaXN0Lmxlbmd0aCgkdmFsdWUpID09IDEge1xuICAgIEByZXR1cm4gJHZhbHVlICR2YWx1ZSAkdmFsdWUgJHZhbHVlO1xuICB9IEBlbHNlIGlmIGxpc3QubGVuZ3RoKCR2YWx1ZSkgPT0gNCB7XG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH0gQGVsc2UgaWYgbGlzdC5sZW5ndGgoJHZhbHVlKSA9PSAzIHtcbiAgICBAcmV0dXJuIGxpc3QubnRoKCR2YWx1ZSwgMSkgbGlzdC5udGgoJHZhbHVlLCAyKSBsaXN0Lm50aCgkdmFsdWUsIDMpXG4gICAgICBsaXN0Lm50aCgkdmFsdWUsIDIpO1xuICB9IEBlbHNlIGlmIGxpc3QubGVuZ3RoKCR2YWx1ZSkgPT0gMiB7XG4gICAgQHJldHVybiBsaXN0Lm50aCgkdmFsdWUsIDEpIGxpc3QubnRoKCR2YWx1ZSwgMikgbGlzdC5udGgoJHZhbHVlLCAxKVxuICAgICAgbGlzdC5udGgoJHZhbHVlLCAyKTtcbiAgfVxuXG4gIEBlcnJvciBcIkludmFsaWQgQ1NTIHByb3BlcnR5IHZhbHVlOiAnI3skdmFsdWV9JyBpcyBtb3JlIHRoYW4gNCB2YWx1ZXNcIjtcbn1cbiIsIkB1c2UgJ3Nhc3M6Y29sb3InO1xuQHVzZSAnc2FzczptYXAnO1xuQHVzZSAnLi4vY29yZS90b2tlbnMvbTIvbWF0L2RhdGVwaWNrZXInIGFzIHRva2Vucy1tYXQtZGF0ZXBpY2tlcjtcbkB1c2UgJy4uL2NvcmUvdGhlbWluZy90aGVtaW5nJztcbkB1c2UgJy4uL2NvcmUvdGhlbWluZy9pbnNwZWN0aW9uJztcbkB1c2UgJy4uL2NvcmUvdG9rZW5zL3Rva2VuLXV0aWxzJztcbkB1c2UgJy4uL2NvcmUvc3R5bGUvc2Fzcy11dGlscyc7XG5AdXNlICcuLi9jb3JlL3R5cG9ncmFwaHkvdHlwb2dyYXBoeSc7XG5AdXNlICcuLi9idXR0b24vaWNvbi1idXR0b24tdGhlbWUnO1xuXG4vLyBUT0RPKGNyaXNiZXRvKTogdGhlc2UgdmFyaWFibGVzIGFyZW4ndCB1c2VkIGFueW1vcmUgYW5kIHNob3VsZCBiZSByZW1vdmVkLlxuJHNlbGVjdGVkLXRvZGF5LWJveC1zaGFkb3ctd2lkdGg6IDFweDtcbiRzZWxlY3RlZC1mYWRlLWFtb3VudDogMC42O1xuJHJhbmdlLWZhZGUtYW1vdW50OiAwLjI7XG4kdG9kYXktZmFkZS1hbW91bnQ6IDAuMjtcbiRjYWxlbmRhci1ib2R5LWZvbnQtc2l6ZTogMTNweCAhZGVmYXVsdDtcbiRjYWxlbmRhci13ZWVrZGF5LXRhYmxlLWZvbnQtc2l6ZTogMTFweCAhZGVmYXVsdDtcblxuQG1peGluIF9jYWxlbmRhci1jb2xvcigkdGhlbWUsICRwYWxldHRlLW5hbWUpIHtcbiAgJHBhbGV0dGUtY29sb3I6IGluc3BlY3Rpb24uZ2V0LXRoZW1lLWNvbG9yKCR0aGVtZSwgJHBhbGV0dGUtbmFtZSk7XG4gICRyYW5nZS1jb2xvcjogdG9rZW5zLW1hdC1kYXRlcGlja2VyLnByaXZhdGUtZ2V0LXJhbmdlLWJhY2tncm91bmQtY29sb3IoJHBhbGV0dGUtY29sb3IpO1xuICAkcmFuZ2UtdG9rZW5zOiB0b2tlbnMtbWF0LWRhdGVwaWNrZXIuZ2V0LXJhbmdlLWNvbG9yLXRva2VucygkcmFuZ2UtY29sb3IpO1xuICAkY2FsZW5kYXItdG9rZW5zOlxuICAgIHRva2Vucy1tYXQtZGF0ZXBpY2tlci5wcml2YXRlLWdldC1jYWxlbmRhci1jb2xvci1wYWxldHRlLWNvbG9yLXRva2VucygkdGhlbWUsICRwYWxldHRlLW5hbWUpO1xuXG4gIEBpbmNsdWRlIHRva2VuLXV0aWxzLmNyZWF0ZS10b2tlbi12YWx1ZXModG9rZW5zLW1hdC1kYXRlcGlja2VyLiRwcmVmaXgsXG4gICAgbWFwLm1lcmdlKCRjYWxlbmRhci10b2tlbnMsICRyYW5nZS10b2tlbnMpKTtcbn1cblxuQG1peGluIGNvbG9yKCR0aGVtZSkge1xuICBAaW5jbHVkZSBzYXNzLXV0aWxzLmN1cnJlbnQtc2VsZWN0b3Itb3Itcm9vdCgpIHtcbiAgICBAaW5jbHVkZSB0b2tlbi11dGlscy5jcmVhdGUtdG9rZW4tdmFsdWVzKHRva2Vucy1tYXQtZGF0ZXBpY2tlci4kcHJlZml4LFxuICAgICAgdG9rZW5zLW1hdC1kYXRlcGlja2VyLmdldC1jb2xvci10b2tlbnMoJHRoZW1lKSk7XG4gIH1cblxuICAubWF0LWRhdGVwaWNrZXItY29udGVudCB7XG4gICAgJi5tYXQtYWNjZW50IHtcbiAgICAgIEBpbmNsdWRlIF9jYWxlbmRhci1jb2xvcigkdGhlbWUsIGFjY2VudCk7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiB7XG4gICAgICBAaW5jbHVkZSBfY2FsZW5kYXItY29sb3IoJHRoZW1lLCB3YXJuKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWRhdGVwaWNrZXItdG9nZ2xlLWFjdGl2ZSB7XG4gICAgJi5tYXQtYWNjZW50IHtcbiAgICAgICRhY2NlbnQtdG9rZW5zOlxuICAgICAgICB0b2tlbnMtbWF0LWRhdGVwaWNrZXIucHJpdmF0ZS1nZXQtdG9nZ2xlLWNvbG9yLXBhbGV0dGUtY29sb3ItdG9rZW5zKCR0aGVtZSwgYWNjZW50KTtcbiAgICAgIEBpbmNsdWRlIHRva2VuLXV0aWxzLmNyZWF0ZS10b2tlbi12YWx1ZXModG9rZW5zLW1hdC1kYXRlcGlja2VyLiRwcmVmaXgsICRhY2NlbnQtdG9rZW5zKTtcbiAgICB9XG5cbiAgICAmLm1hdC13YXJuIHtcbiAgICAgICR3YXJuLXRva2VuczpcbiAgICAgICAgdG9rZW5zLW1hdC1kYXRlcGlja2VyLnByaXZhdGUtZ2V0LXRvZ2dsZS1jb2xvci1wYWxldHRlLWNvbG9yLXRva2VucygkdGhlbWUsIHdhcm4pO1xuICAgICAgQGluY2x1ZGUgdG9rZW4tdXRpbHMuY3JlYXRlLXRva2VuLXZhbHVlcyh0b2tlbnMtbWF0LWRhdGVwaWNrZXIuJHByZWZpeCwgJHdhcm4tdG9rZW5zKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHR5cG9ncmFwaHkoJHRoZW1lKSB7XG4gIEBpbmNsdWRlIHNhc3MtdXRpbHMuY3VycmVudC1zZWxlY3Rvci1vci1yb290KCkge1xuICAgIEBpbmNsdWRlIHRva2VuLXV0aWxzLmNyZWF0ZS10b2tlbi12YWx1ZXModG9rZW5zLW1hdC1kYXRlcGlja2VyLiRwcmVmaXgsXG4gICAgICB0b2tlbnMtbWF0LWRhdGVwaWNrZXIuZ2V0LXR5cG9ncmFwaHktdG9rZW5zKCR0aGVtZSkpO1xuICB9XG59XG5cbkBtaXhpbiBkYXRlLXJhbmdlLWNvbG9ycyhcbiAgJHJhbmdlLWNvbG9yLFxuICAkY29tcGFyaXNvbi1jb2xvcjogdG9rZW5zLW1hdC1kYXRlcGlja2VyLiRwcml2YXRlLWRlZmF1bHQtY29tcGFyaXNvbi1jb2xvcixcbiAgJG92ZXJsYXAtY29sb3I6IHRva2Vucy1tYXQtZGF0ZXBpY2tlci4kcHJpdmF0ZS1kZWZhdWx0LW92ZXJsYXAtY29sb3IsXG4gICRvdmVybGFwLXNlbGVjdGVkLWNvbG9yOlxuICAgIHRva2Vucy1tYXQtZGF0ZXBpY2tlci5wcml2YXRlLWdldC1kZWZhdWx0LW92ZXJsYXAtc2VsZWN0ZWQtY29sb3IoJG92ZXJsYXAtY29sb3IpKSB7XG4gICR0b2tlbnM6IHRva2Vucy1tYXQtZGF0ZXBpY2tlci5nZXQtcmFuZ2UtY29sb3ItdG9rZW5zKFxuICAgICRyYW5nZS1jb2xvcjogJHJhbmdlLWNvbG9yLFxuICAgICRjb21wYXJpc29uLWNvbG9yOiAkY29tcGFyaXNvbi1jb2xvcixcbiAgICAkb3ZlcmxhcC1jb2xvcjogJG92ZXJsYXAtY29sb3IsXG4gICAgJG92ZXJsYXAtc2VsZWN0ZWQtY29sb3I6ICRvdmVybGFwLXNlbGVjdGVkLWNvbG9yLFxuICApO1xuXG4gIEBpbmNsdWRlIHNhc3MtdXRpbHMuY3VycmVudC1zZWxlY3Rvci1vci1yb290KCkge1xuICAgIEBpbmNsdWRlIHRva2VuLXV0aWxzLmNyZWF0ZS10b2tlbi12YWx1ZXModG9rZW5zLW1hdC1kYXRlcGlja2VyLiRwcmVmaXgsICR0b2tlbnMpO1xuICB9XG59XG5cbkBtaXhpbiBkZW5zaXR5KCR0aGVtZSkge1xuICAvLyBUT0RPKGNyaXNiZXRvKTogbW92ZSB0aGlzIGludG8gdGhlIHN0cnVjdHVyYWwgc3R5bGVzXG4gIC8vIG9uY2UgdGhlIGljb24gYnV0dG9uIGRlbnNpdHkgaXMgc3dpdGNoZWQgdG8gdG9rZW5zLlxuXG4gIC8vIFJlZ2FyZGxlc3Mgb2YgdGhlIHVzZXItcGFzc2VkIGRlbnNpdHksIHdlIHdhbnQgdGhlIGNhbGVuZGFyXG4gIC8vIHByZXZpb3VzL25leHQgYnV0dG9ucyB0byByZW1haW4gYXQgZGVuc2l0eSAtMlxuICAubWF0LWNhbGVuZGFyLWNvbnRyb2xzIHtcbiAgICBAaW5jbHVkZSBpY29uLWJ1dHRvbi10aGVtZS5kZW5zaXR5KC0yKTtcbiAgfVxufVxuXG5AbWl4aW4gdGhlbWUoJHRoZW1lKSB7XG4gIEBpbmNsdWRlIHRoZW1pbmcucHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1kYXRlcGlja2VyJykge1xuICAgIEBpZiBpbnNwZWN0aW9uLnRoZW1lLWhhcygkdGhlbWUsIGNvbG9yKSB7XG4gICAgICBAaW5jbHVkZSBjb2xvcigkdGhlbWUpO1xuICAgIH1cbiAgICBAaWYgaW5zcGVjdGlvbi50aGVtZS1oYXMoJHRoZW1lLCBkZW5zaXR5KSB7XG4gICAgICBAaW5jbHVkZSBkZW5zaXR5KCR0aGVtZSk7XG4gICAgfVxuICAgIEBpZiBpbnNwZWN0aW9uLnRoZW1lLWhhcygkdGhlbWUsIHR5cG9ncmFwaHkpIHtcbiAgICAgIEBpbmNsdWRlIHR5cG9ncmFwaHkoJHRoZW1lKTtcbiAgICB9XG4gIH1cbn1cbiIsIkB1c2UgJ3Nhc3M6bWF0aCc7XG5AdXNlICdAbWF0ZXJpYWwvZGVuc2l0eS9mdW5jdGlvbnMnIGFzIG1kYy1kZW5zaXR5LWZ1bmN0aW9ucztcbkB1c2UgJ0BtYXRlcmlhbC9pY29uLWJ1dHRvbi9pY29uLWJ1dHRvbi10aGVtZScgYXMgbWRjLWljb24tYnV0dG9uLXRoZW1lO1xuQHVzZSAnQG1hdGVyaWFsL3RoZW1lL3RoZW1lLWNvbG9yJyBhcyBtZGMtdGhlbWUtY29sb3I7XG5AdXNlICcuLi9jb3JlL3Rva2Vucy9tMi9tZGMvaWNvbi1idXR0b24nIGFzIHRva2Vucy1tZGMtaWNvbi1idXR0b247XG5cbkB1c2UgJy4vYnV0dG9uLXRoZW1lLXByaXZhdGUnO1xuQHVzZSAnLi4vY29yZS90aGVtaW5nL3RoZW1pbmcnO1xuQHVzZSAnLi4vY29yZS90aGVtaW5nL2luc3BlY3Rpb24nO1xuXG4kX2ljb24tc2l6ZTogMjRweDtcblxuQG1peGluIF9yaXBwbGUtY29sb3IoJGNvbG9yKSB7XG4gIC0tbWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGUtY29sb3I6ICN7JGNvbG9yfTtcbiAgLS1tYXQtbWRjLWJ1dHRvbi1yaXBwbGUtY29sb3I6ICN7cmdiYSgkY29sb3IsIDAuMSl9O1xufVxuXG5AZnVuY3Rpb24gX3ZhcmlhYmxlLXNhZmUtY29udHJhc3QtdG9uZSgkdmFsdWUsICRpcy1kYXJrKSB7XG4gIEBpZiAoJHZhbHVlID09ICdkYXJrJyBvciAkdmFsdWUgPT0gJ2xpZ2h0JyBvciB0eXBlLW9mKCR2YWx1ZSkgPT0gJ2NvbG9yJykge1xuICAgIEByZXR1cm4gbWRjLXRoZW1lLWNvbG9yLmNvbnRyYXN0LXRvbmUoJHZhbHVlKTtcbiAgfVxuXG4gIEByZXR1cm4gaWYoJGlzLWRhcmssICdsaWdodCcsICdkYXJrJyk7XG59XG5cbkBtaXhpbiBjb2xvcigkdGhlbWUpIHtcbiAgJGNvbG9yLXRva2VuczogdG9rZW5zLW1kYy1pY29uLWJ1dHRvbi5nZXQtY29sb3ItdG9rZW5zKCR0aGVtZSk7XG4gICRzdXJmYWNlOiBpbnNwZWN0aW9uLmdldC10aGVtZS1jb2xvcigkdGhlbWUsIGJhY2tncm91bmQsIGNhcmQpO1xuICAkaXMtZGFyazogaW5zcGVjdGlvbi5nZXQtdGhlbWUtdHlwZSgkdGhlbWUpID09IGRhcms7XG4gICRvbi1zdXJmYWNlOiBpZihfdmFyaWFibGUtc2FmZS1jb250cmFzdC10b25lKCRzdXJmYWNlLCAkaXMtZGFyaykgPT0gJ2RhcmsnLCAjMDAwLCAjZmZmKTtcblxuICAubWF0LW1kYy1pY29uLWJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLXRoZW1lLXByaXZhdGUucmlwcGxlLXRoZW1lLXN0eWxlcygkdGhlbWUsIGZhbHNlKTtcbiAgICBAaW5jbHVkZSBtZGMtaWNvbi1idXR0b24tdGhlbWUudGhlbWUoJGNvbG9yLXRva2Vucyk7XG4gICAgQGluY2x1ZGUgX3JpcHBsZS1jb2xvcigkb24tc3VyZmFjZSk7XG5cbiAgICAmLm1hdC1wcmltYXJ5IHtcbiAgICAgICRjb2xvcjogaW5zcGVjdGlvbi5nZXQtdGhlbWUtY29sb3IoJHRoZW1lLCBwcmltYXJ5KTtcbiAgICAgIEBpbmNsdWRlIG1kYy1pY29uLWJ1dHRvbi10aGVtZS50aGVtZSgoaWNvbi1jb2xvcjogJGNvbG9yKSk7XG4gICAgICBAaW5jbHVkZSBfcmlwcGxlLWNvbG9yKCRjb2xvcik7XG4gICAgfVxuXG4gICAgJi5tYXQtYWNjZW50IHtcbiAgICAgICRjb2xvcjogaW5zcGVjdGlvbi5nZXQtdGhlbWUtY29sb3IoJHRoZW1lLCBhY2NlbnQpO1xuICAgICAgQGluY2x1ZGUgbWRjLWljb24tYnV0dG9uLXRoZW1lLnRoZW1lKChpY29uLWNvbG9yOiAkY29sb3IpKTtcbiAgICAgIEBpbmNsdWRlIF9yaXBwbGUtY29sb3IoJGNvbG9yKTtcbiAgICB9XG5cbiAgICAmLm1hdC13YXJuIHtcbiAgICAgICRjb2xvcjogaW5zcGVjdGlvbi5nZXQtdGhlbWUtY29sb3IoJHRoZW1lLCB3YXJuKTtcbiAgICAgIEBpbmNsdWRlIG1kYy1pY29uLWJ1dHRvbi10aGVtZS50aGVtZSgoaWNvbi1jb2xvcjogJGNvbG9yKSk7XG4gICAgICBAaW5jbHVkZSBfcmlwcGxlLWNvbG9yKCRjb2xvcik7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnV0dG9uLXRoZW1lLXByaXZhdGUuYXBwbHktZGlzYWJsZWQtc3R5bGUoKSB7XG4gICAgICAkZGlzYWJsZWQtY29sb3I6IHJnYmEoJG9uLXN1cmZhY2UsIGlmKCRpcy1kYXJrLCAwLjUsIDAuMzgpKTtcbiAgICAgIEBpbmNsdWRlIG1kYy1pY29uLWJ1dHRvbi10aGVtZS50aGVtZSgoXG4gICAgICAgIGljb24tY29sb3I6ICRkaXNhYmxlZC1jb2xvcixcbiAgICAgICAgZGlzYWJsZWQtaWNvbi1jb2xvcjogJGRpc2FibGVkLWNvbG9yLFxuICAgICAgKSk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiB0eXBvZ3JhcGh5KCR0aGVtZSkge1xufVxuXG5AbWl4aW4gZGVuc2l0eSgkdGhlbWUpIHtcbiAgJGRlbnNpdHktc2NhbGU6IGluc3BlY3Rpb24uZ2V0LXRoZW1lLWRlbnNpdHkoJHRoZW1lKTtcbiAgLy8gTWFudWFsbHkgYXBwbHkgdGhlIGV4cGVjdGVkIGRlbnNpdHkgdGhlbWluZywgYW5kIGluY2x1ZGUgdGhlIHBhZGRpbmdcbiAgLy8gYXMgaXQgd2FzIGFwcGxpZWQgYmVmb3JlXG4gICRjYWxjdWxhdGVkLXNpemU6IG1kYy1kZW5zaXR5LWZ1bmN0aW9ucy5wcm9wLXZhbHVlKFxuICAgICRkZW5zaXR5LWNvbmZpZzogKFxuICAgICAgc2l6ZTogKFxuICAgICAgICBkZWZhdWx0OiA0OHB4LFxuICAgICAgICBtYXhpbXVtOiA0OHB4LFxuICAgICAgICBtaW5pbXVtOiAyOHB4LFxuICAgICAgKSxcbiAgICApLFxuICAgICRkZW5zaXR5LXNjYWxlOiAkZGVuc2l0eS1zY2FsZSxcbiAgICAkcHJvcGVydHktbmFtZTogc2l6ZSxcbiAgKTtcblxuICAvLyBVc2UgYG1hdC1tZGMtYnV0dG9uLWJhc2VgIHRvIGluY3JlYXNlIHRoZSBzcGVjaWZpY2l0eSBvdmVyIHRoZSBidXR0b24ncyBzdHJ1Y3R1cmFsIHN0eWxlcy5cbiAgLm1hdC1tZGMtaWNvbi1idXR0b24ubWF0LW1kYy1idXR0b24tYmFzZSB7XG4gICAgLy8gTWF0Y2ggdGhlIHN0eWxlcyB0aGF0IHVzZWQgdG8gYmUgcHJlc2VudC4gVGhpcyBpcyBuZWNlc3NhcnkgZm9yIGJhY2t3YXJkc1xuICAgIC8vIGNvbXBhdCB0byBtYXRjaCB0aGUgcHJldmlvdXMgaW1wbGVtZW50YXRpb25zIHNlbGVjdG9yIGNvdW50ICh0d28gY2xhc3NlcykuXG4gICAgQGluY2x1ZGUgbWRjLWljb24tYnV0dG9uLXRoZW1lLnRoZW1lKChcbiAgICAgIHN0YXRlLWxheWVyLXNpemU6ICRjYWxjdWxhdGVkLXNpemUsXG4gICAgKSk7XG5cbiAgICAvLyBUT0RPOiBTd2l0Y2ggY2FsY3VsYXRlZC1zaXplIHRvIFwidmFyKC0tbWRjLWljb24tYnV0dG9uLXN0YXRlLWxheWVyLXNpemUpXCJcbiAgICAvLyBDdXJyZW50bHkgZmFpbHMgdmFsaWRhdGlvbiBiZWNhdXNlIHRoZSB2YXJpYWJsZSBpcyBcInVuZGVmaW5lZFwiXG4gICAgLy8gaW4gdGhlIHNhc3Mgc3RhY2suXG4gICAgLy8gVE9ETzogU3dpdGNoIGljb24tc2l6ZSB0byBcInZhcigtLW1kYy1pY29uLWJ1dHRvbi1pY29uLXNpemUpXCIuIEN1cnJlbnRseVxuICAgIC8vIGZhaWxzIHZhbGlkYXRpb24gYmVjYXVzZSB0aGUgdmFyaWFibGUgaXMgXCJ1bmRlZmluZWRcIiBpbiB0aGUgc2FzcyBzdGFjay5cbiAgICB3aWR0aDogdmFyKC0tbWRjLWljb24tYnV0dG9uLXN0YXRlLWxheWVyLXNpemUpO1xuICAgIGhlaWdodDogdmFyKC0tbWRjLWljb24tYnV0dG9uLXN0YXRlLWxheWVyLXNpemUpO1xuICAgIHBhZGRpbmc6IG1hdGguZGl2KCRjYWxjdWxhdGVkLXNpemUgLSAkX2ljb24tc2l6ZSwgMik7XG5cbiAgICBAaW5jbHVkZSBidXR0b24tdGhlbWUtcHJpdmF0ZS50b3VjaC10YXJnZXQtZGVuc2l0eSgkZGVuc2l0eS1zY2FsZSk7XG4gIH1cbn1cblxuQG1peGluIHRoZW1lKCR0aGVtZSkge1xuICBAaW5jbHVkZSB0aGVtaW5nLnByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtaWNvbi1idXR0b24nKSB7XG4gICAgQGlmIGluc3BlY3Rpb24udGhlbWUtaGFzKCR0aGVtZSwgY29sb3IpIHtcbiAgICAgIEBpbmNsdWRlIGNvbG9yKCR0aGVtZSk7XG4gICAgfVxuICAgIEBpZiBpbnNwZWN0aW9uLnRoZW1lLWhhcygkdGhlbWUsIGRlbnNpdHkpIHtcbiAgICAgIEBpbmNsdWRlIGRlbnNpdHkoJHRoZW1lKTtcbiAgICB9XG4gICAgQGlmIGluc3BlY3Rpb24udGhlbWUtaGFzKCR0aGVtZSwgdHlwb2dyYXBoeSkge1xuICAgICAgQGluY2x1ZGUgdHlwb2dyYXBoeSgkdGhlbWUpO1xuICAgIH1cbiAgfVxufVxuIiwiQHVzZSAnc2FzczptYXAnO1xuQHVzZSAnQG1hdGVyaWFsL3JpcHBsZS9yaXBwbGUtdGhlbWUnIGFzIG1kYy1yaXBwbGUtdGhlbWU7XG5AdXNlICdAbWF0ZXJpYWwvdGhlbWUvdGhlbWUtY29sb3InIGFzIG1kYy10aGVtZS1jb2xvcjtcblxuQHVzZSAnLi4vY29yZS9tZGMtaGVscGVycy9tZGMtaGVscGVycyc7XG5AdXNlICcuLi9jb3JlL3RoZW1pbmcvaW5zcGVjdGlvbic7XG5cbkBtaXhpbiBfcmlwcGxlLWNvbG9yKCRjb2xvcikge1xuICAtLW1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlLWNvbG9yOiAjeyRjb2xvcn07XG4gIC0tbWF0LW1kYy1idXR0b24tcmlwcGxlLWNvbG9yOiAje3JnYmEoJGNvbG9yLCAwLjEpfTtcbn1cblxuQG1peGluIHJpcHBsZS10aGVtZS1zdHlsZXMoJHRoZW1lLCAkaXMtZmlsbGVkKSB7XG4gICRvcGFjaXRpZXM6IGlmKGluc3BlY3Rpb24uZ2V0LXRoZW1lLXR5cGUoJHRoZW1lKSA9PSBkYXJrLFxuICAgIG1kYy1yaXBwbGUtdGhlbWUuJGxpZ2h0LWluay1vcGFjaXRpZXMsIG1kYy1yaXBwbGUtdGhlbWUuJGRhcmstaW5rLW9wYWNpdGllcyk7XG5cbiAgLy8gSWRlYWxseSB0aGVzZSBzdHlsZXMgd291bGQgYmUgc3RydWN0dXJhbCwgYnV0IE1EQyBiYXNlcyBzb21lIG9mIHRoZSBvcGFjaXRpZXMgb24gdGhlIHRoZW1lLlxuICAmOmhvdmVyIC5tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZTo6YmVmb3JlIHtcbiAgICBvcGFjaXR5OiBtYXAuZ2V0KCRvcGFjaXRpZXMsIGhvdmVyKTtcbiAgfVxuXG4gICYuY2RrLXByb2dyYW0tZm9jdXNlZCxcbiAgJi5jZGsta2V5Ym9hcmQtZm9jdXNlZCB7XG4gICAgLm1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlOjpiZWZvcmUge1xuICAgICAgb3BhY2l0eTogbWFwLmdldCgkb3BhY2l0aWVzLCBmb2N1cyk7XG4gICAgfVxuICB9XG5cbiAgJjphY3RpdmUgLm1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlOjpiZWZvcmUge1xuICAgIG9wYWNpdHk6IG1hcC5nZXQoJG9wYWNpdGllcywgcHJlc3MpO1xuICB9XG5cbiAgQGluY2x1ZGUgX3JpcHBsZS1jb2xvcihtZGMtdGhlbWUtY29sb3IucHJvcC12YWx1ZShvbi1zdXJmYWNlKSk7XG5cbiAgJi5tYXQtcHJpbWFyeSB7XG4gICAgQGluY2x1ZGUgX3JpcHBsZS1jb2xvcihtZGMtdGhlbWUtY29sb3IucHJvcC12YWx1ZShpZigkaXMtZmlsbGVkLCBvbi1wcmltYXJ5LCBwcmltYXJ5KSkpO1xuICB9XG5cbiAgJi5tYXQtYWNjZW50IHtcbiAgICBAaW5jbHVkZSBfcmlwcGxlLWNvbG9yKG1kYy10aGVtZS1jb2xvci5wcm9wLXZhbHVlKGlmKCRpcy1maWxsZWQsIG9uLXNlY29uZGFyeSwgc2Vjb25kYXJ5KSkpO1xuICB9XG5cbiAgJi5tYXQtd2FybiB7XG4gICAgQGluY2x1ZGUgX3JpcHBsZS1jb2xvcihtZGMtdGhlbWUtY29sb3IucHJvcC12YWx1ZShpZigkaXMtZmlsbGVkLCBvbi1lcnJvciwgZXJyb3IpKSk7XG4gIH1cbn1cblxuLy8gV3JhcHMgdGhlIGNvbnRlbnQgc3R5bGUgaW4gYSBzZWxlY3RvciBmb3IgdGhlIGRpc2FibGVkIHN0YXRlLlxuLy8gTURDIGFkZHMgdGhlbWUgY29sb3IgYnkgdXNpbmcgOm5vdCg6ZGlzYWJsZWQpLCBzbyBqdXN0IHVzaW5nIFtkaXNhYmxlZF0gb25jZSB3aWxsIG5vdFxuLy8gb3ZlcnJpZGUgdGhpcywgbmVpdGhlciB3aWxsIGl0IGFwcGx5IHRvIGFuY2hvciB0YWdzLiBUaGlzIG5lZWRzIHRvIG92ZXJyaWRlIHRoZVxuLy8gcHJldmlvdXNseSBzZXQgdGhlbWUgY29sb3IsIHNvIGl0IG11c3QgYmUgb3JkZXJlZCBhZnRlciB0aGUgdGhlbWUgc3R5bGVzLlxuLy8gVE9ETyhhbmRyZXdzZWd1aW4pOiBEaXNjdXNzIHdpdGggdGhlIE1EQyB0ZWFtIHRvIHNlZSBpZiB3ZSBjYW4gYXZvaWQgdGhlIDpub3QoOmRpc2FibGVkKSBieVxuLy8gbWFudWFsbHkgc3R5bGluZyBkaXNhYmxlZCBidXR0b25zIHdpdGggYSBbZGlzYWJsZWRdIHNlbGVjdG9yLlxuQG1peGluIGFwcGx5LWRpc2FibGVkLXN0eWxlKCkge1xuICAmW2Rpc2FibGVkXVtkaXNhYmxlZF0ge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIEhpZGVzIHRoZSB0b3VjaCB0YXJnZXQgb24gbG93ZXIgZGVuc2l0aWVzLlxuQG1peGluIHRvdWNoLXRhcmdldC1kZW5zaXR5KCRzY2FsZSkge1xuICBAaW5jbHVkZSBtZGMtaGVscGVycy5pZi10b3VjaC10YXJnZXRzLXVuc3VwcG9ydGVkKCRzY2FsZSkge1xuICAgIC5tYXQtbWRjLWJ1dHRvbi10b3VjaC10YXJnZXQge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbn1cbiIsIi5tYXQtY2FsZW5kYXIge1xuICAgIGZvbnQtc2l6ZTogc21hbGwgIWltcG9ydGFudDtcbiAgICBmb250LWZhbWlseTogdihldWktYmFzZS1mb250LWZhbWlseSkgIWltcG9ydGFudDtcblxuICAgICYubWF0LWNhbGVuZGFyLXllYXIge1xuICAgICAgICAubWF0LWNhbGVuZGFyLXBlcmlvZC1idXR0b24ge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8vIE1BVEVSSUFMIERyYWcgJiBEcm9wIG92ZXJyaWRlc1xuLmNkay1kcmFnLWhhbmRsZSB7XG4gICAgY3Vyc29yOiBtb3ZlICFpbXBvcnRhbnQ7XG59XG5cbi5jZGstZHJvcC1saXN0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG1pbi13aWR0aDogMTAwJTtcblxuICAgICY6bm90KC5jZGstZHJvcC1saXN0LWRpc2FibGVkKSB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IHYoZXVpLWJhc2Utc3BhY2luZy14bCk7XG4gICAgfVxufVxuXG4vLyBBbmltYXRlIGl0ZW1zIGFzIHRoZXkncmUgYmVpbmcgc29ydGVkXG4uY2RrLWRyb3AtbGlzdC1kcmFnZ2luZyAuY2RrLWRyYWcge1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAyNTBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTtcbn1cblxuLy8gQW5pbWF0ZSBhbiBpdGVtIHRoYXQgaGFzIGJlZW4gZHJvcHBlZFxuLmNkay1kcmFnLWFuaW1hdGluZyB7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDMwMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO1xufVxuXG4vLyBHcmFiYmVkIGVsZW1lbnRcbi5jZGstZHJhZy1wcmV2aWV3IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgIC8vIHYoZXVpLWJhc2UtY29sb3Itd2hpdGUpO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgY3Vyc29yOiBncmFiICFpbXBvcnRhbnQ7XG4gICAgZGlzcGxheTogdGFibGU7ICAgICAvLyB0cmljayB0byBnZXQgdGhlIGZ1bGwgcm93IHdpZHRoXG4gICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgb3BhY2l0eTogMTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5jZGstZHJhZy1kcmFnZ2luZyB7XG4gICAgb3BhY2l0eTogMTtcbn1cblxuLmNkay1kcmFnLXBsYWNlaG9sZGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBvcGFjaXR5OiAwLjM1O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIG91dGxpbmU6IDJweCBkYXNoZWQgdihldWktYmFzZS1jb2xvci1ncmV5LTM1KTtcbiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDJweDtcbiAgICB9XG59XG4iLCIvLyBEaXNhYmxlIGdsb2JhbCBzY3JvbGxiYXJzICh1c2VkIGluIGZ1bGwgc2NyZWVuIGV1aS1kaWFsb2cgZm9yIGV4YW1wbGUpXG4uY2RrLWdsb2JhbC1zY3JvbGxibG9jayB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIG92ZXJmbG93LXk6IHZpc2libGU7ICAgICAvLyBNYXRlcmlhbCBkZWZhdWx0OiBzY3JvbGxcbiAgICB3aWR0aDogMTAwJTtcbiAgICBAaW5jbHVkZSBldWktc2Nyb2xsYmFycztcbiAgICBsZWZ0OiAwICFpbXBvcnRhbnQ7XG59XG5AaW5jbHVkZSBtZWRpYSgkZXVpLWJrcC1tb2JpbGUpIHtcbiAgICAuY2RrLWdsb2JhbC1zY3JvbGxibG9jayB7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIEBpbmNsdWRlIGV1aS1zY3JvbGxiYXJzO1xuICAgIH1cbn1cbiIsIkBtaXhpbiBldWktc2Nyb2xsYmFycyggJHNpemU6IDhweCwgJGZvcmVncm91bmQtY29sb3I6IHYoZXVpLWJhc2UtY29sb3ItZ3JleS0yMCksICRiYWNrZ3JvdW5kLWNvbG9yOiB2KGV1aS1iYXNlLWNvbG9yLWdyZXktNSksICRib3JkZXItcmFkaXVzOiA1cmVtLCAkc3RhdGU6IGFjdGl2ZSApIHtcbiAgICAmOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgICAgIGRpc3BsYXk6IGluaGVyaXQ7XG4gICAgICAgIGhlaWdodDogJHNpemU7ICAgICAgLy8gaG9yaXpvbnRhbCBzY3JvbGxcbiAgICAgICAgd2lkdGg6ICRzaXplOyAgICAgICAvLyB2ZXJ0aWNhbCBzY3JvbGxcbiAgICAgICAgLy8gei1pbmRleDogdihldWktYmFzZS16LWluZGV4LWhpZ2hsaWdodGVkKTsgICAgICAgIC8vIHNob3VsZCBiZSB3aGVuIGluIGVkaXRpb24gbW9kZVxuICAgICAgICBAaWYgKCRzdGF0ZSA9PSBhY3RpdmUpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgICB9XG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gVGhpcyBpcyB0aGUgc2Nyb2xsaW5nIGJhclxuICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICAgICAgQGlmICgkc3RhdGUgPT0gYWN0aXZlKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2KGV1aS1iYXNlLWNvbG9yLWdyZXktMzUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gVGhpcyBpcyB0aGUgc2Nyb2xsIGNvbnRhaW5lclxuICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgICAgICAgQGlmICgkc3RhdGUgPT0gYWN0aXZlKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5AbWl4aW4gZXVpLXNjcm9sbGJhcnMtaW5hY3RpdmUoJHNpemU6IDhweCkge1xuICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGRpc3BsYXk6IGluaGVyaXQ7XG4gICAgICAgIGhlaWdodDogJHNpemU7ICAgICAgLy8gaG9yaXpvbnRhbCBzY3JvbGxcbiAgICAgICAgd2lkdGg6ICRzaXplOyAgICAgICAvLyB2ZXJ0aWNhbCBzY3JvbGxcbiAgICB9XG5cbiAgICAmOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIH1cblxuICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgfVxufVxuIiwiJGRlZmF1bHQtZmVhdHVyZTogXCJtaW4td2lkdGhcIjtcbkBtaXhpbiBtZWRpYSgkcXVlcnk6ICRmZWF0dXJlICR2YWx1ZSAkY29sdW1ucykge1xuICAgIEBpZiBsZW5ndGgoJHF1ZXJ5KSA9PSAxIHtcbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKCRkZWZhdWx0LWZlYXR1cmU6IG50aCgkcXVlcnksIDEpKSB7XG4gICAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAgICRsb29wLXRvOiBsZW5ndGgoJHF1ZXJ5KTtcbiAgICAgICAgJG1lZGlhLXF1ZXJ5OiBcInNjcmVlbiBhbmQgXCI7XG4gICAgICAgIEBpZiBpcy1ub3QoaXMtZXZlbihsZW5ndGgoJHF1ZXJ5KSkpIHtcbiAgICAgICAgICAgICRsb29wLXRvOiAkbG9vcC10byAtIDE7XG4gICAgICAgIH1cbiAgICAgICAgJGk6IDE7XG4gICAgICAgIEB3aGlsZSAkaSA8PSRsb29wLXRvIHtcbiAgICAgICAgICAgICRtZWRpYS1xdWVyeTogJG1lZGlhLXF1ZXJ5ICsgXCIoXCIgKyBudGgoJHF1ZXJ5LCAkaSkgKyBcIjogXCIgKyBudGgoJHF1ZXJ5LCAkaSArIDEpICsgXCIpIFwiO1xuICAgICAgICAgICAgQGlmICgkaSArIDEpICE9ICRsb29wLXRvIHtcbiAgICAgICAgICAgICAgICAkbWVkaWEtcXVlcnk6ICRtZWRpYS1xdWVyeSArIFwiYW5kIFwiO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJGk6ICRpKzI7XG4gICAgICAgIH1cbiAgICAgICAgQG1lZGlhICN7JG1lZGlhLXF1ZXJ5fSB7XG4gICAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi5jZGstb3ZlcmxheS1jb250YWluZXIge1xuICAgIHotaW5kZXg6IHYoZXVpLWJhc2Utei1pbmRleC1jZGstb3ZlcmxheS1jb250YWluZXIpOyAgIC8vIE1EOiAxMDAwXG5cbiAgICAubWF0LW1lbnUtcGFuZWwge1xuICAgICAgICBtYXgtd2lkdGg6IGluaGVyaXQ7XG4gICAgICAgIG1pbi1oZWlnaHQ6IHYoZXVpLWJhc2Utc3BhY2luZy1sKTtcbiAgICAgICAgQGluY2x1ZGUgZXVpLXNjcm9sbGJhcnM7XG4gICAgfVxuXG4gICAgLm1hdC1hdXRvY29tcGxldGUtcGFuZWwge1xuICAgICAgICBAaW5jbHVkZSBldWktc2Nyb2xsYmFycztcbiAgICB9XG59XG4iLCJAaW5jbHVkZSBtZWRpYSgkZXVpLWJrcC1tb2JpbGUpIHtcbiAgICAuY2RrLW92ZXJsYXktY29udGFpbmVyIHtcbiAgICAgICAgaGVpZ2h0OiAxMDB2aDsgIC8vIEZhbGxiYWNrXG4gICAgICAgIGhlaWdodDogY2FsYyh2YXIoLS1ldWktYXBwLXZoLCAxdmgpICogMTAwKTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHdpZHRoOiAxMDB2dztcbiAgICB9XG59XG4iLCIuY2RrLW92ZXJsYXktcGFuZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdihldWktYmFzZS1jb2xvci13aGl0ZSk7XG4gICAgei1pbmRleDogdihldWktYmFzZS16LWluZGV4LWNkay1vdmVybGF5LXBhbmUpOyAgLy8gRHluYW1pY2FsbHkgY2hhbmdlcyBiYXNlZCBvbiBDREsgY29udGV4dFxufVxuIiwiLy8gVE9ETyB2MTcgLSBleHRyYWN0IGRpcmVjdGl2ZSBib3VuZCBzdHlsaW5nIHRvIGdsb2JhbCBwYXJ0aWN1bGFyIHN0cnVjdHVyZSBoZXJlIHRvIGJlIHJlY29uZ25pemFibGUgYW5kIGtlcHRcblxuLmV1aS1pbnB1dC1tYXhsZW5ndGgtd3JhcHBlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgLmV1aS1pbnB1dC1tYXhsZW5ndGgge1xuICAgICAgICBAaW5jbHVkZSBldWktZm9udCh4cywgdWkpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2KGV1aS1iYXNlLWNvbG9yLWdyZXktMTApO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2KGV1aS1iYXNlLWNvbG9yLWdyZXktNTApO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2KGV1aS1iYXNlLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICBjb2xvcjogdihldWktYmFzZS1jb2xvci1ncmV5LTEwMCk7XG4gICAgICAgIHBhZGRpbmc6IDAgdihldWktYmFzZS1zcGFjaW5nLTJ4cyk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IGNhbGMoLTEgKiAje3YoZXVpLWJhc2Utc3BhY2luZy14cyl9KTtcbiAgICAgICAgdG9wOiBjYWxjKC0xICogI3t2KGV1aS1iYXNlLXNwYWNpbmcteHMpfSk7XG4gICAgICAgIHotaW5kZXg6IHYoZXVpLWJhc2Utei1pbmRleC1pbnB1dC1tYXhsZW5ndGgpO1xuXG4gICAgICAgICYtLWludmFsaWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdihldWktYmFzZS1jb2xvci13YXJuaW5nLTEwMCk7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHYoZXVpLWJhc2UtY29sb3Itd2FybmluZy0xMDApO1xuICAgICAgICAgICAgY29sb3I6IHYoZXVpLWJhc2UtY29sb3Itd2hpdGUpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiQG1peGluIGV1aS1mb250KCRzaXplOiBtLCAkZmFtaWx5OiB1aSkge1xuICAgICRzZWxlY3RlZC1mYW1pbHk6IG1hcC1nZXQoJGV1aS1iYXNlLXRva2Vucy1mb250cywgJGZhbWlseSk7XG4gICAgJHNlbGVjdGVkLWZvbnQtZGVmaW5pdGlvbjogbWFwLWdldCgkc2VsZWN0ZWQtZmFtaWx5LCAkc2l6ZSk7XG5cbiAgICBmb250OiAkc2VsZWN0ZWQtZm9udC1kZWZpbml0aW9uO1xufVxuIiwiaHRtbCB7XG4gICAgLy8gRXhwb3NlZCBDU1MgdmFyc1xuICAgIC0tZXVpLWh0bWwtZm9udC1zaXplOiB2YXIoLS1ldWktYmFzZS1mb250LXNpemUpO1xuICAgIC0tZXVpLWh0bWwtbGluZS1oZWlnaHQ6IHZhcigtLWV1aS1iYXNlLWxpbmUtaGVpZ2h0KTtcblxuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBmb250LXNpemU6IHYoZXVpLWh0bWwtZm9udC1zaXplKTtcbiAgICBsaW5lLWhlaWdodDogdihldWktaHRtbC1saW5lLWhlaWdodCk7XG59XG4iLCJib2R5IHtcbiAgICAvLyBFeHBvc2VkIENTUyB2YXJzXG4gICAgLS1ldWktYm9keS1iZy1jb2xvcjogdmFyKC0tZXVpLWFwcC1ib2R5LWJnLWNvbG9yKTtcbiAgICAtLWV1aS1ib2R5LWNvbG9yOiB2YXIoLS1ldWktYmFzZS1jb2xvcik7XG4gICAgLS1ldWktYm9keS1mb250LWZhbWlseTogdmFyKC0tZXVpLWJhc2UtZm9udC1mYW1pbHkpO1xuICAgIC0tZXVpLWJvZHktZm9udC1zaXplOiB2YXIoLS1ldWktYmFzZS1mb250LXNpemUpO1xuICAgIC0tZXVpLWJvZHktbGluZS1oZWlnaHQ6IHZhcigtLWV1aS1iYXNlLWxpbmUtaGVpZ2h0KTtcblxuICAgIGJhY2tncm91bmQtY29sb3I6IHYoZXVpLWJvZHktYmctY29sb3IpO1xuICAgIGNvbG9yOiB2KGV1aS1ib2R5LWNvbG9yKTtcbiAgICBmb250LWZhbWlseTogdihldWktYm9keS1mb250LWZhbWlseSk7XG4gICAgZm9udC1mZWF0dXJlLXNldHRpbmdzOiAnbGlnYSc7XG4gICAgZm9udC1zaXplOiB2KGV1aS1ib2R5LWZvbnQtc2l6ZSk7XG4gICAgLW1vei1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGxpbmUtaGVpZ2h0OiB2KGV1aS1ib2R5LWxpbmUtaGVpZ2h0KTtcbiAgICBtYXJnaW46IDA7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xufVxuIiwiLy8gTWFrZSB2aWV3cG9ydCByZXNwb25zaXZlXG4vL1xuLy8gQHZpZXdwb3J0IGlzIG5lZWRlZCBiZWNhdXNlIElFIDEwKyBkb2Vzbid0IGhvbm9yIDxtZXRhIG5hbWU9XCJ2aWV3cG9ydFwiPiBpblxuLy8gc29tZSBjYXNlcy4gU2VlIGh0dHBzOi8vdGlta2FkbGVjLmNvbS8yMDEyLzEwL2llMTAtc25hcC1tb2RlLWFuZC1yZXNwb25zaXZlLWRlc2lnbi8uXG4vLyBFdmVudHVhbGx5IEB2aWV3cG9ydCB3aWxsIHJlcGxhY2UgPG1ldGEgbmFtZT1cInZpZXdwb3J0XCI+LlxuLy9cbi8vIEhvd2V2ZXIsIGBkZXZpY2Utd2lkdGhgIGlzIGJyb2tlbiBvbiBJRSAxMCBvbiBXaW5kb3dzIChQaG9uZSkgOCxcbi8vIChzZWUgaHR0cHM6Ly90aW1rYWRsZWMuY29tLzIwMTMvMDEvd2luZG93cy1waG9uZS04LWFuZC1kZXZpY2Utd2lkdGgvIGFuZCBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvaXNzdWVzLzEwNDk3KVxuLy8gYW5kIHRoZSBmaXggZm9yIHRoYXQgaW52b2x2ZXMgYSBzbmlwcGV0IG9mIEphdmFTY3JpcHQgdG8gc25pZmYgdGhlIHVzZXIgYWdlbnRcbi8vIGFuZCBhcHBseSBzb21lIGNvbmRpdGlvbmFsIENTUy5cbi8vXG4vLyBTZWUgaHR0cHM6Ly9nZXRib290c3RyYXAuY29tL2dldHRpbmctc3RhcnRlZC8jc3VwcG9ydC1pZTEwLXdpZHRoIGZvciB0aGUgcmVsZXZhbnQgaGFjay5cbi8vXG4vLyBXcmFwIGBAdmlld3BvcnRgIHdpdGggYEBhdC1yb290YCBmb3Igd2hlbiBmb2xrcyBkbyBhIG5lc3RlZCBpbXBvcnQgKGUuZy4sXG4vLyBgLmNsYXNzLW5hbWUgeyBAaW1wb3J0IFwiYm9vdHN0cmFwXCI7IH1gKS5cbkBhdC1yb290IHtcbiAgICBALW1zLXZpZXdwb3J0IHtcbiAgICAgICAgd2lkdGg6IGRldmljZS13aWR0aDtcbiAgICB9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAjQk9YLVNJWklOR1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBNb3JlIHNlbnNpYmxlIGRlZmF1bHQgYm94LXNpemluZzpcbiAqIGNzcy10cmlja3MuY29tL2luaGVyaXRpbmctYm94LXNpemluZy1wcm9iYWJseS1zbGlnaHRseS1iZXR0ZXItYmVzdC1wcmFjdGljZVxuICovXG5cbmh0bWwge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbioge1xuICAgICY6OmJlZm9yZSwgIC8vIFRPRE8gdjE3OiBjYW4gYmUgcmVtb3ZlZCAtIGRvbid0IHJlbW92ZSBib3JkZXItYm94Li4uXG4gICAgJjo6YWZ0ZXIsICAgLy8gVE9ETyB2MTc6IGNhbiBiZSByZW1vdmVkIC0gZG9uJ3QgcmVtb3ZlIGJvcmRlci1ib3guLi5cbiAgICAmIHtcbiAgICAgICAgYm94LXNpemluZzogaW5oZXJpdDtcbiAgICB9XG59XG5cbi8vIEF2b2lkIDMwMG1zIGNsaWNrIGRlbGF5IG9uIHRvdWNoIGRldmljZXMgdGhhdCBzdXBwb3J0IHRoZSBgdG91Y2gtYWN0aW9uYCBDU1MgcHJvcGVydHkuXG4vL1xuLy8gSW4gcGFydGljdWxhciwgdW5saWtlIG1vc3Qgb3RoZXIgYnJvd3NlcnMsIElFMTErRWRnZSBvbiBXaW5kb3dzIDEwIG9uIHRvdWNoIGRldmljZXMgYW5kIElFIE1vYmlsZSAxMC0xMVxuLy8gRE9OJ1QgcmVtb3ZlIHRoZSBjbGljayBkZWxheSB3aGVuIGA8bWV0YSBuYW1lPVwidmlld3BvcnRcIiBjb250ZW50PVwid2lkdGg9ZGV2aWNlLXdpZHRoXCI+YCBpcyBwcmVzZW50LlxuLy8gSG93ZXZlciwgdGhleSBETyBzdXBwb3J0IHJlbW92aW5nIHRoZSBjbGljayBkZWxheSB2aWEgYHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uYC5cbi8vIFNlZTpcbi8vICogaHR0cHM6Ly92NC1hbHBoYS5nZXRib290c3RyYXAuY29tL2NvbnRlbnQvcmVib290LyNjbGljay1kZWxheS1vcHRpbWl6YXRpb24tZm9yLXRvdWNoXG4vLyAqIGh0dHA6Ly9jYW5pdXNlLmNvbS8jZmVhdD1jc3MtdG91Y2gtYWN0aW9uXG4vLyAqIGh0dHBzOi8vcGF0cmlja2hsYXVrZS5naXRodWIuaW8vdG91Y2gvdGVzdHMvcmVzdWx0cy8jc3VwcHJlc3NpbmctMzAwbXMtZGVsYXlcblxuYSxcbmFyZWEsXG5idXR0b24sXG5bcm9sZT1cImJ1dHRvblwiXSxcbmlucHV0LFxubGFiZWwsXG5zZWxlY3QsXG5zdW1tYXJ5LFxudGV4dGFyZWEge1xuICAgIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xufVxuXG4vLyBTdXBwcmVzcyB0aGUgZm9jdXMgb3V0bGluZSBvbiBlbGVtZW50cyB0aGF0IGNhbm5vdCBiZSBhY2Nlc3NlZCB2aWEga2V5Ym9hcmQuXG4vLyBUaGlzIHByZXZlbnRzIGFuIHVud2FudGVkIGZvY3VzIG91dGxpbmUgZnJvbSBhcHBlYXJpbmcgYXJvdW5kIGVsZW1lbnRzIHRoYXRcbi8vIG1pZ2h0IHN0aWxsIHJlc3BvbmQgdG8gcG9pbnRlciBldmVudHMuXG4vL1xuLy8gQ3JlZGl0OiBodHRwczovL2dpdGh1Yi5jb20vc3VpdGNzcy9iYXNlXG5bdGFiaW5kZXg9XCItMVwiXTpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4vLyBBbHdheXMgaGlkZSBhbiBlbGVtZW50IHdpdGggdGhlIGBoaWRkZW5gIEhUTUwgYXR0cmlidXRlIChmcm9tIFB1cmVDU1MpLlxuW2hpZGRlbl0ge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLy8gVE9ETyB2MTc6IHJlbW92ZSBhbmQgdXNlIHV0aWxpdHkgY2xhc3Nlc1xuLy8gU2VlOiBzdHlsZXMtYmFzZVxcc3JjXFxzdHlsZXNcXDk5LXV0aWxpdGllc1xcdG9rZW5zXFxfdHlwb2dyYXBoeS5zY3NzXG4vLyBUT0RPIDA4LzIzOiBjb21tZW50LCB0byBiZSBkaXNjdXNzZWRcbnAsXG5sYWJlbCxcbi5sYWJlbCxcbmJsb2NrcXVvdGUsXG5hYmJyLFxubWFyayxcbmRlbCB7XG4gICAgZm9udC1zaXplOiB2KGV1aS1iYXNlLWZvbnQtc2l6ZSk7XG59XG5cbi8vIGVtIHtcbi8vICAgICAvL2ZvbnQtZmFtaWx5OiB2KGV1aS1mb250LWZhbWlseS1pdGFsaWMpOyAvLyBkbyBOT1QgdXNlIG1peGluIGhlcmUhXG4vLyAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuLy8gfVxuXG4vLyBvcHRncm91cCxcbi8vIHN0cm9uZyxcbi8vIGIge1xuLy8gICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuXG4vLyAgICAgJiBpLFxuLy8gICAgICYgZW0ge1xuLy8gICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4vLyAgICAgfVxuLy8gfVxuXG4vLyAvLyBUT0RPIHYxNzogcmVtb3ZlIGFuZCB1c2UgdXRpbGl0eSBjbGFzc2VzXG4vLyBjb2RlLFxuLy8ga2JkLFxuLy8gcHJlLFxuLy8gc2FtcCB7XG4vLyAgICAgZm9udC1zaXplOiB2KGV1aS1iYXNlLWZvbnQtc2l6ZSk7XG4vLyAgICAgQGluY2x1ZGUgZXVpLWZvbnQtZmFtaWx5LW1vbm9zcGFjZTtcbi8vIH1cblxuLy8gLy8gVE9ETyB2MTc6IHJlbW92ZSBhbmQgdXNlIHV0aWxpdHkgY2xhc3Nlc1xuLy8gY29kZSB7XG4vLyAgICAgY29sb3I6ICNjYzM2N2I7ICAgICAvLyBXQ0FHMiBBQSBjb250cmFzdCByYXRpbyBjb21wbGlhbnQ6IDQuNTlcbi8vICAgICBmb250LXNpemU6IDk1JTtcbi8vICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4vLyB9XG5cbi8vIC8vIFRPRE8gdjE3OiByZW1vdmUgYW5kIHVzZSB1dGlsaXR5IGNsYXNzZXNcbi8vIHNtYWxsIHtcbi8vICAgICBmb250LXNpemU6IDgwJTtcbi8vIH1cblxuLy8gVE9ETyB2MTc6IHJlbW92ZSBhbmQgdXNlIHV0aWxpdHkgY2xhc3Nlc1xuLy8ga2JkIHtcbi8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2KGV1aS1iYXNlLWNvbG9yLWdyZXktNzUpOyAgICAvLyBXQ0FHMiBBQSBjb21wbGlhbnRcbi8vICAgICBib3JkZXItcmFkaXVzOiB2KGV1aS1iYXNlLWJvcmRlci1yYWRpdXMpO1xuLy8gICAgIGNvbG9yOiB2KGV1aS1iYXNlLWNvbG9yLXdoaXRlKTtcbi8vICAgICBmb250LXNpemU6IHYoZXVpLWJhc2UtZm9udC1zaXplLXMpO1xuLy8gICAgIHBhZGRpbmc6IDFweCB2KGV1aS1iYXNlLXNwYWNpbmctMnhzKTtcbi8vIH1cblxuLy8gVE9ETyB2MTc6IHJlbW92ZSBhbmQgdXNlIHV0aWxpdHkgY2xhc3Nlc1xuLy8gcHJlIHtcbi8vICAgICBjb2xvcjogdihldWktYmFzZS1jb2xvcik7XG4vLyAgICAgZGlzcGxheTogYmxvY2s7XG4vLyAgICAgZm9udC1zaXplOiA4Ny41JTtcbi8vICAgICBtYXJnaW4tYm90dG9tOiB2KGV1aS1iYXNlLXNwYWNpbmctbSk7XG4vLyAgICAgbWFyZ2luLXRvcDogMDtcbi8vICAgICBvdmVyZmxvdzogYXV0bztcbi8vIH1cblxuLy8gVE9ETyB2MTc6IHJlbW92ZSBhbmQgdXNlIHV0aWxpdHkgY2xhc3Nlc1xuLy8gYmxvY2txdW90ZSB7XG4vLyAgICAgcGFkZGluZzogdihldWktYmFzZS1zcGFjaW5nLXhzKSB2KGV1aS1iYXNlLXNwYWNpbmctbSk7XG4vLyB9XG5cbi8vIFRPRE8gdjE3OiByZW1vdmUgYW5kIHVzZSB1dGlsaXR5IGNsYXNzZXNcbi8vIG1hcmssXG4vLyAubWFyayB7XG4vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogdihldWktYmFzZS1jb2xvci1hY2NlbnQtMjUpO1xuLy8gICAgIHBhZGRpbmc6IHYoZXVpLWJhc2Utc3BhY2luZy0yeHMpO1xuLy8gfVxuIiwiLy8gc3R5bGVsaW50LWRpc2FibGUgbm8tZGVzY2VuZGluZy1zcGVjaWZpY2l0eVxudGFibGUuZXVpLXRhYmxlLWRlZmF1bHQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgYm9yZGVyLXNwYWNpbmc6IDA7XG4gICAgY29sb3I6IHYoZXVpLWJhc2UtY29sb3ItZm9udCk7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIC8vIE92ZXJhbGwgc2V0dGluZ3MgKGRlZmF1bHQpXG4gICAgdGhlYWQgPiB0ciA+IHRoLFxuICAgIHRib2R5ID4gdHIgPiB0ZCxcbiAgICB0Zm9vdCA+IHRyID4gdGQge1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIH1cblxuICAgIHRyID4gdGgsXG4gICAgdHIgPiB0ZCB7XG4gICAgICAgIHBhZGRpbmc6IHYoZXVpLWJhc2Utc3BhY2luZy1zKTtcbiAgICB9XG5cbiAgICB0aGVhZCB7XG4gICAgICAgIHRoIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2KGV1aS1iYXNlLWNvbG9yLWdyZXktMTApO1xuICAgICAgICAgICAgY29sb3I6IHYoZXVpLWJhc2UtY29sb3ItZ3JleS03NSk7XG4gICAgICAgICAgICBmb250LXNpemU6IHYoZXVpLWJhc2UtZm9udC1zaXplKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IHYoZXVpLWJhc2Utc3BhY2luZy1tKSB2KGV1aS1iYXNlLXNwYWNpbmctcyk7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgZXVpLWZvbnQtZmFtaWx5LWJvbGQ7XG4gICAgICAgIH1cblxuICAgICAgICB0ciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2KGV1aS1iYXNlLWNvbG9yLWdyZXktMTApO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFN0cmlwZWQgJiBob3ZlcmVkIHRhYmxlcyBieSBkZWZhdWx0IChVWClcbiAgICB0Ym9keSB7XG4gICAgICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDsgIC8vIG9wdGlvbmFsIC0gZW5hYmxlIGlPUyBtb21lbnR1bSBzY3JvbGxpbmdcblxuICAgICAgICB0cjpudGgtb2YtdHlwZShvZGQpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHYoZXVpLWJhc2UtY29sb3ItZ3JleS0yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdihldWktYmFzZS1jb2xvci1ncmV5LTEwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRyOm50aC1vZi10eXBlKGV2ZW4pIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHYoZXVpLWJhc2UtY29sb3ItZ3JleS01KTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdihldWktYmFzZS1jb2xvci1ncmV5LTEwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHRyIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHYoZXVpLWJhc2UtY29sb3ItZ3JleS0yMCk7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlLXJvdztcbiAgICB9XG5cbiAgICAvLyBDb21wYWN0IHRhYmxlXG4gICAgJi0tY29tcGFjdCB7XG4gICAgICAgIHRoZWFkIHtcbiAgICAgICAgICAgIHRoIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiB2KGV1aS1iYXNlLXNwYWNpbmcteHMpIHYoZXVpLWJhc2Utc3BhY2luZy1zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRyID4gdGQge1xuICAgICAgICAgICAgcGFkZGluZzogdihldWktYmFzZS1zcGFjaW5nLTJ4cykgdihldWktYmFzZS1zcGFjaW5nLXMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmVzcG9uc2l2ZSB0YWJsZVxuICAgICYtLXJlc3BvbnNpdmUge1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJi0tYm9yZGVyZWQge1xuICAgICAgICAgICAgYm9yZGVyOiAwOyAgLy8gUHJldmVudCBkb3VibGUgYm9yZGVyIG9uIGhvcml6b250YWwgc2Nyb2xsIGR1ZSB0byB1c2Ugb2YgYGRpc3BsYXk6IGJsb2NrO2BcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIEJvcmRlcmVkIHRhYmxlXG4gICAgJi0tYm9yZGVyZWQge1xuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdihldWktYmFzZS1jb2xvci1ncmV5LTIwKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNoYWRvd2VkIHRhYmxlXG4gICAgJi0tc2hhZG93ZWQge1xuICAgICAgICBib3gtc2hhZG93OiB2KGV1aS1iYXNlLXNoYWRvdy0xKTtcbiAgICB9XG5cbiAgICAvLyBOb1dyYXAgdGFibGUgY29udGVudCAoYWxzbyBkaXNhYmxlcyBlbGxpcHNpcylcbiAgICAmLS1ub3dyYXAge1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgICAgIHRoZWFkID4gdHIgPiB0aCxcbiAgICAgICAgdGJvZHkgPiB0ciA+IHRkLFxuICAgICAgICB0Zm9vdCA+IHRyID4gdGQge1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIENlbnRlcmVkIHRhYmxlXG4gICAgJi0tY2VudGVyZWQge1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cblxuICAgIC8vIE1pZGRsZSBhbGlnbmVkIGNlbGxzIGNvbnRlbnRcbiAgICAmLS1hbGlnbi1taWRkbGUge1xuICAgICAgICB0aGVhZCA+IHRyID4gdGgsXG4gICAgICAgIHRib2R5ID4gdHIgPiB0ZCxcbiAgICAgICAgdGZvb3QgPiB0ciA+IHRkIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIC8vIFJFU1BPTlNJVkUgTEFZT1VUIChQUk9UTylcbi8vIEBpbmNsdWRlIG1lZGlhKCRldWktYmtwLW1vYmlsZSkge1xuLy8gICAgIHRhYmxlLnV4LXRhYmxlIHtcbi8vICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbi8vICAgICAgICAgJi51eC10YWJsZS0tcmVzcG9uc2l2ZSB7XG4vLyAgICAgICAgICAgICBkaXNwbGF5OiBjb250ZW50cztcblxuLy8gICAgICAgICAgICAgJi51eC10YWJsZS0tYm9yZGVyZWQge1xuLy8gICAgICAgICAgICAgICAgIHRyIHtcbi8vICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdihldWktYmFzZS1jb2xvci1ncmV5LWxpZ2h0KTtcbi8vICAgICAgICAgICAgICAgICB9XG4vLyAgICAgICAgICAgICB9XG5cbi8vICAgICAgICAgICAgICYudXgtdGFibGUtLWNvbXBhY3Qge1xuLy8gICAgICAgICAgICAgICAgIHRkIHtcbi8vICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IHYoZXVpLWJhc2Utc3BhY2luZy0zeHMpO1xuLy8gICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogdihldWktYmFzZS1zcGFjaW5nLTJ4cyk7XG5cbi8vICAgICAgICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbi8vICAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogdihldWktYmFzZS1zcGFjaW5nLTJ4cyk7XG4vLyAgICAgICAgICAgICAgICAgICAgIH1cbi8vICAgICAgICAgICAgICAgICB9XG4vLyAgICAgICAgICAgICB9XG5cbi8vICAgICAgICAgICAgIC8vIEZvcmNlIHRhYmxlIHRvIGJlIGxpa2UgY2FyZHNcbi8vICAgICAgICAgICAgIHRoZWFkLFxuLy8gICAgICAgICAgICAgdGJvZHksXG4vLyAgICAgICAgICAgICB0aCxcbi8vICAgICAgICAgICAgIHRkLFxuLy8gICAgICAgICAgICAgdHIge1xuLy8gICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuLy8gICAgICAgICAgICAgfVxuXG4vLyAgICAgICAgICAgICAvLyBIaWRlIHRhYmxlIGhlYWRlcnMgYnV0IG5vdCBkaXNwbGF5OiBub25lIGZvciBhY2Nlc3NpYmlsaXR5XG4vLyAgICAgICAgICAgICB0aGVhZCB0ciB7XG4vLyAgICAgICAgICAgICAgICAgbGVmdDogLTk5OTlweDtcbi8vICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4vLyAgICAgICAgICAgICAgICAgdG9wOiAtOTk5OXB4O1xuLy8gICAgICAgICAgICAgfVxuXG4vLyAgICAgICAgICAgICB0ciB7XG4vLyAgICAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuLy8gICAgICAgICAgICAgfVxuXG4vLyAgICAgICAgICAgICB0aCxcbi8vICAgICAgICAgICAgIHRkIHtcbi8vICAgICAgICAgICAgICAgICAvLyBCZWhhdmUgbGlrZSBhIFwicm93XCJcbi8vICAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4vLyAgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHYoZXVpLWJhc2UtY29sb3ItZ3JleS1saWdodGVzdCk7XG4vLyAgICAgICAgICAgICAgICAgcGFkZGluZzogdihldWktYmFzZS1zcGFjaW5nLXhzKTtcbi8vICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDUwJTtcbi8vICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4vLyAgICAgICAgICAgICB9XG5cbi8vICAgICAgICAgICAgIHRkOjpiZWZvcmUge1xuLy8gICAgICAgICAgICAgICAgIGNvbG9yOiB2KGV1aS1iYXNlLWNvbG9yLWdyZXktZGFyayk7XG4vLyAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWNvbCk7ICAgIC8vIExpa2UgYSB0YWJsZSBoZWFkZXIgY29sdW1uXG4vLyAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4vLyAgICAgICAgICAgICAgICAgbGVmdDogdihldWktYmFzZS1zcGFjaW5nLXhzKTtcbi8vICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiB2KGV1aS1iYXNlLXNwYWNpbmcteHMpO1xuLy8gICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbi8vICAgICAgICAgICAgICAgICAvLyBNaW1pYyB0b3AgJiBsZWZ0IHBhZGRpbmdzXG4vLyAgICAgICAgICAgICAgICAgdG9wOiB2KGV1aS1iYXNlLXNwYWNpbmcteHMpO1xuLy8gICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4vLyAgICAgICAgICAgICAgICAgd2lkdGg6IDQ1JTtcbi8vICAgICAgICAgICAgIH1cbi8vICAgICAgICAgfVxuLy8gICAgIH1cbi8vIH1cbiIsIi8vIFRPRE8gdjE3IGZpbmQgYSBiZXR0ZXIgd2F5IHRvIGhhbmRsZSB0aGVtZXNcblxuLy8gR0xPQkFMIENPTVBBQ1QgVEhFTUVcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5odG1sLmV1aS10LWNvbXBhY3Qge1xuICAgIC8vIEV4cG9zZWQgQ1NTIHZhcmlhYmxlc1xuICAgIC0tZXVpLWJhc2UtZm9udC1zaXplOiAxNHB4OyAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGb250IHNpemUgYmFzZSBmb3IgY29tcGFjdCB0aGVtZVxuICAgIC0tZXVpLWJhc2UtbGluZS1oZWlnaHQ6IDEuMjU7ICAgICAgICAgICAgICAgICAgICAgICAvLyBVbml0bGVzcyBudW1iZXIgdmFsdWUgaXMgbXVsdGlwbGllZCBieSB0aGUgZWxlbWVudCdzIGZvbnQgc2l6ZVxuICAgIC8vIFNldHVwXG4gICAgZm9udC1zaXplOiB2YXIoLS1ldWktYmFzZS1mb250LXNpemUpOyAgICAgICAgICAgICAgIC8vIEFwcGxpZXMgdGhlIGRlZmluZWQgY3VzdG9tIGZvbnQgc2l6ZVxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1ldWktYmFzZS1saW5lLWhlaWdodCk7ICAgICAgICAgICAvLyBBcHBsaWVzIHRoZSBkZWZpbmVkIGN1c3RvbSBsaW5lIGhlaWdodCByYXRpb1xufVxuXG4vLyBGT1JNIEVMRU1FTlRTXG4vLy8vLy8vLy8vLy8vLy8vL1xuZm9ybS5ldWktdC1mb3JtLWNvbXBhY3Qge1xuICAgIC8vIEV4cG9zZWQgQ1NTIHZhcmlhYmxlc1xuICAgIC0tZXVpLWJhc2UtZm9udC1zaXplOiAxNHB4OyAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGb250IHNpemUgYmFzZSBmb3IgY29tcGFjdCB0aGVtZVxuICAgIC0tZXVpLWJhc2UtbGluZS1oZWlnaHQ6IDEuMjU7ICAgICAgICAgICAgICAgICAgICAgICAvLyBVbml0bGVzcyBudW1iZXIgdmFsdWUgaXMgbXVsdGlwbGllZCBieSB0aGUgZWxlbWVudCdzIGZvbnQgc2l6ZVxuICAgIC0tZXVpLWlucHV0LWdyb3VwLXNwYWNpbmc6IHZhcigtLWV1aS1iYXNlLXNwYWNpbmctcyk7ICAgLy8gU3BhY2luZyBiZXR3ZWVuIGZvcm0gZ3JvdXBzIGVsZW1lbnRzXG4gICAgLy8gSW50ZXJuYWxzXG4gICAgLy8gU2VlOiBldWktc3R5bGVzLWJhc2VcXHNyY1xcc3R5bGVzXFwwMi1iYXNlXFxtaXhpbnNcXHRoZW1pbmdcXF9jb21wYWN0LXZhcnMuc2Nzc1xuICAgIEBpbmNsdWRlIGV1aS1jb21wYWN0LWdldC10b2tlbnMoKTtcbiAgICAvLyBTZXR1cFxuICAgIC0tZXVpLWNvbXBhY3QtcmF0aW86IDAuODI7ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTZXRzIGZvcm0gaW5wdXRzL2VsZW1lbnRzIHRvIDM5cHggaGVpZ2h0IChkZWZhdWx0OiA0NHB4KVxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZXVpLWJhc2UtZm9udC1zaXplKTsgICAgICAgICAgICAgICAvLyBBcHBsaWVzIHRoZSBkZWZpbmVkIGN1c3RvbSBmb250IHNpemVcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tZXVpLWJhc2UtbGluZS1oZWlnaHQpOyAgICAgICAgICAgLy8gQXBwbGllcyB0aGUgZGVmaW5lZCBjdXN0b20gbGluZSBoZWlnaHQgcmF0aW9cblxuICAgIC8vIEludGVybmFsc1xuICAgIC5ldWktaW5wdXQtZ3JvdXAge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1ldWktaW5wdXQtZ3JvdXAtc3BhY2luZyk7XG5cbiAgICAgICAgbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tZXVpLWJhc2Utc3BhY2luZy0yeHMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmV1aS1pbnB1dC1ncm91cC1hZGRvbi1pdGVtIHtcbiAgICAgICAgbWluLWhlaWdodDogY2FsYygyLjUgKiAje3YoZXVpLWJhc2Utc3BhY2luZy1tKX0pO1xuICAgICAgICBtaW4td2lkdGg6IGNhbGMoMi41ICogI3t2KGV1aS1iYXNlLXNwYWNpbmctbSl9KTtcbiAgICAgICAgcGFkZGluZzogY2FsYygje3YoZXVpLWJhc2Utc3BhY2luZy14cyl9IC0gMXB4KTtcbiAgICB9XG5cbiAgICAuZXVpLWJ1dHRvbi0taWNvbi1vbmx5IHtcbiAgICAgICAgcGFkZGluZzogY2FsYygje3YoZXVpLWJhc2Utc3BhY2luZy1zKX0gLSAxcHgpIHYoZXVpLWJhc2Utc3BhY2luZy14cyk7XG4gICAgfVxufVxuXG4vLyBUQUJMRVxuLy8vLy8vLy8vLy8vLy8vLy9cbi5ldWktdGFibGUuZXVpLXQtdGFibGUtY29tcGFjdCB7XG4gICAgLy8gRXhwb3NlZCBDU1MgdmFyaWFibGVzXG4gICAgLS1ldWktYmFzZS1mb250LXNpemU6IDE0cHg7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRm9udCBzaXplIGJhc2UgZm9yIGNvbXBhY3QgdGhlbWVcbiAgICAtLWV1aS1iYXNlLWxpbmUtaGVpZ2h0OiAxLjI1OyAgICAgICAgICAgICAgICAgICAgICAgLy8gVW5pdGxlc3MgbnVtYmVyIHZhbHVlIGlzIG11bHRpcGxpZWQgYnkgdGhlIGVsZW1lbnQncyBmb250IHNpemVcbiAgICAtLWV1aS10YWJsZS1oZWFkZXItcGFkZGluZzogdmFyKC0tZXVpLWJhc2Utc3BhY2luZy1zKTsgICAvLyBUYWJsZSBoZWFkZXIgc3BhY2VyIHNldCB0byAwLjc1cmVtXG4gICAgLS1ldWktdGFibGUtcm93LXBhZGRpbmc6IHZhcigtLWV1aS1iYXNlLXNwYWNpbmctMnhzKTsgICAgLy8gVGFibGUgYm9keSByb3cgc3BhY2VyIHNldCB0byAwLjI1cmVtXG4gICAgLS1ldWktdGFibGUtZm9vdGVyLXBhZGRpbmc6IHZhcigtLWV1aS1iYXNlLXNwYWNpbmctcyk7ICAgLy8gVGFibGUgZm9vdGVyIHNwYWNlciBzZXQgdG8gMC43NXJlbVxuICAgIC8vIEludGVybmFsc1xuICAgIEBpbmNsdWRlIGV1aS1jb21wYWN0LWdldC10b2tlbnMoKTtcbiAgICAvLyBTZXR1cFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZXVpLWJhc2UtZm9udC1zaXplKTsgICAgICAgICAgICAgICAgICAgIC8vIEFwcGxpZXMgdGhlIGRlZmluZWQgY3VzdG9tIGZvbnQgc2l6ZVxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1ldWktYmFzZS1saW5lLWhlaWdodCk7ICAgICAgICAgICAvLyBBcHBsaWVzIHRoZSBkZWZpbmVkIGN1c3RvbSBsaW5lIGhlaWdodCByYXRpb1xuXG4gICAgLy8gSW50ZXJuYWxzXG4gICAgdGhlYWQge1xuICAgICAgICB0ciB7XG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG5cbiAgICAgICAgICAgIHRoIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1ldWktdGFibGUtaGVhZGVyLXBhZGRpbmcpICB2YXIoLS1ldWktYmFzZS1zcGFjaW5nLXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgdGJvZHkge1xuICAgICAgICB0ciB7XG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG5cbiAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1ldWktdGFibGUtcm93LXBhZGRpbmcpICB2YXIoLS1ldWktYmFzZS1zcGFjaW5nLXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgdGZvb3Qge1xuICAgICAgICB0ciB7XG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG5cbiAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1ldWktdGFibGUtZm9vdGVyLXBhZGRpbmcpICB2YXIoLS1ldWktYmFzZS1zcGFjaW5nLXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyBDQVJEXG4vLy8vLy8vLy8vLy8vLy8vL1xuLmV1aS1jYXJkLmV1aS10LWNhcmQtY29tcGFjdCB7XG4gICAgLy8gRXhwb3NlZCBDU1MgdmFyaWFibGVzXG4gICAgLS1ldWktYmFzZS1mb250LXNpemU6IDE0cHg7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRm9udCBzaXplIGJhc2UgZm9yIGNvbXBhY3QgdGhlbWVcbiAgICAtLWV1aS1iYXNlLWxpbmUtaGVpZ2h0OiAxLjI1OyAgICAgICAgICAgICAgICAgICAgICAgLy8gVW5pdGxlc3MgbnVtYmVyIHZhbHVlIGlzIG11bHRpcGxpZWQgYnkgdGhlIGVsZW1lbnQncyBmb250IHNpemVcbiAgICAtLWV1aS1jYXJkLXRpdGxlLXNpemU6IHZhcigtLWV1aS1iYXNlLWZvbnQtc2l6ZS1tKTsgICAgICAvLyBDYXJkIHRpdGxlIGZvbnQgc2l6ZVxuICAgIC0tZXVpLWNhcmQtc3VidGl0bGUtc2l6ZTogdmFyKC0tZXVpLWJhc2UtZm9udC1zaXplLXMpOyAgIC8vIENhcmQgc3VidGl0bGUgZm9udCBzaXplXG4gICAgLy8gSW50ZXJuYWxzXG4gICAgQGluY2x1ZGUgZXVpLWNvbXBhY3QtZ2V0LXRva2VucygpO1xuICAgIC8vIFNldHVwXG4gICAgZm9udC1zaXplOiB2YXIoLS1ldWktYmFzZS1mb250LXNpemUpOyAgICAgICAgICAgICAgICAgICAgLy8gQXBwbGllcyB0aGUgZGVmaW5lZCBjdXN0b20gZm9udCBzaXplXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWV1aS1iYXNlLWxpbmUtaGVpZ2h0KTsgICAgICAgICAgIC8vIEFwcGxpZXMgdGhlIGRlZmluZWQgY3VzdG9tIGxpbmUgaGVpZ2h0IHJhdGlvXG5cbiAgICAvLyBJbnRlcm5hbHNcbiAgICAuZXVpLWNhcmQge1xuICAgICAgICAmLWhlYWRlciB7XG4gICAgICAgICAgICAmX190aXRsZS1jb250YWluZXIge1xuICAgICAgICAgICAgICAgICYtdGl0bGUsXG4gICAgICAgICAgICAgICAgJi10aXRsZSAuZXVpLWxhYmVsIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1ldWktY2FyZC10aXRsZS1zaXplKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmLXN1YnRpdGxlLFxuICAgICAgICAgICAgICAgICYtc3VidGl0bGUgLmV1aS1sYWJlbCB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tZXVpLWNhcmQtc3VidGl0bGUtc2l6ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX191cmdlbnQtaW5kaWNhdG9yIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tZXVpLWJhc2UtZm9udC1zaXplLTJ4bCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiQG1peGluIGV1aS1jb21wYWN0LWdldC10b2tlbnMoJHJhdGlvOiAwLjg3NSkge1xuICAgIC0tZXVpLWNvbXBhY3QtcmF0aW86ICN7JHJhdGlvfTtcbiAgICBAZWFjaCAkc3BhY2luZywgJHZhbHVlIGluICRldWktYmFzZS10b2tlbnMtc3BhY2luZ3Mge1xuICAgICAgICAtLWV1aS1iYXNlLXNwYWNpbmctI3skc3BhY2luZ306IGNhbGMoICN7dmFyKC0tZXVpLWNvbXBhY3QtcmF0aW8pfSAqICN7JHZhbHVlfSApO1xuICAgIH1cbn1cbiIsIi8vIElFMTArIFNWRydzIGFzcGVjdCByYXRpb3MgYW5kIHNpemVzIGZpeFxuQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpLCAoLW1zLWhpZ2gtY29udHJhc3Q6IG5vbmUpIHtcbiAgICBpbWdbc3JjJD1cIi5zdmdcIl0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG59XG5AbWVkaWEgc2NyZWVuIHtcbiAgICAvLyBJRSBGaXg6IEJpY3ViaWMgU2NhbGluZyBmb3IgSW1hZ2VzICYgZnVsbCB3aWR0aCBiYWNrZ3JvdW5kIChFQyBsb2dvKVxuICAgIGltZyB7XG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJTtcbiAgICAgICAgLW1zLWludGVycG9sYXRpb24tbW9kZTogYmljdWJpYztcbiAgICB9XG59XG4iLCIvLyBDT09LSUUgQ09OU0VOVFxuLmNvb2tpZS1jb25zZW50LWJhbm5lciB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICBtaW4td2lkdGg6IDUwJSAhaW1wb3J0YW50O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICAgIHJpZ2h0OiA1MCUgIWltcG9ydGFudDtcbiAgICB0b3A6IHYoZXVpLWJhc2Utc3BhY2luZy1tKSAhaW1wb3J0YW50O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg1MCUpICFpbXBvcnRhbnQ7XG4gICAgei1pbmRleDogdihldWktYmFzZS16LWluZGV4LW1heCkgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiB2KGV1aS1iYXNlLXNoYWRvdy0yNCkgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kOiB2KGV1aS1iYXNlLWNvbG9yLXByaW1hcnkpICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6IHZhcihldWktYmFzZS1jb2xvci13aGl0ZSkgIWltcG9ydGFudDtcbn1cbiIsIiNsb2FkZXItd3JhcHBlciB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGxlZnQ6IDA7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB6LWluZGV4OiAxMDAwO1xuXG4gICAgI2xvYWRlciB7XG4gICAgICAgIC13ZWJraXQtYW5pbWF0aW9uOiBzcGluIDJzIGxpbmVhciBpbmZpbml0ZTsgLyogQ2hyb21lLCBPcGVyYSAxNSssIFNhZmFyaSA1KyAqL1xuICAgICAgICBhbmltYXRpb246IHNwaW4gMnMgbGluZWFyIGluZmluaXRlOyAvKiBDaHJvbWUsIEZpcmVmb3ggMTYrLCBJRSAxMCssIE9wZXJhICovXG4gICAgICAgIGFuaW1hdGlvbjogaG91cmdsYXNzIDVzIGxpbmVhciBpbmZpbml0ZTtcbiAgICAgICAgYm9yZGVyOiAxMHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIGJvcmRlci10b3AtY29sb3I6IHYoZXVpLWJhc2UtY29sb3Itd2FybmluZy0xMDApO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAyMDBweDtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICBtYXJnaW46IC0xMDBweCAwIDAgLTEwMHB4O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB3aWR0aDogMjAwcHg7XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIC13ZWJraXQtYW5pbWF0aW9uOiBzcGluIDJzIGxpbmVhciBpbmZpbml0ZTsgLyogQ2hyb21lLCBPcGVyYSAxNSssIFNhZmFyaSA1KyAqL1xuICAgICAgICAgICAgYW5pbWF0aW9uOiBzcGluIDJzIGxpbmVhciBpbmZpbml0ZTsgLyogQ2hyb21lLCBGaXJlZm94IDE2KywgSUUgMTArLCBPcGVyYSAqL1xuICAgICAgICAgICAgYW5pbWF0aW9uOiBob3VyZ2xhc3MgNHMgbGluZWFyIGluZmluaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxMHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdihldWktYmFzZS1jb2xvci1kYW5nZXItMTAwKTtcbiAgICAgICAgICAgIGJvdHRvbTogNXB4O1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIGxlZnQ6IDVweDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHJpZ2h0OiA1cHg7XG4gICAgICAgICAgICB0b3A6IDVweDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIC13ZWJraXQtYW5pbWF0aW9uOiBzcGluIDFzIGxpbmVhciBpbmZpbml0ZTsgLyogQ2hyb21lLCBPcGVyYSAxNSssIFNhZmFyaSA1KyAqL1xuICAgICAgICAgICAgYW5pbWF0aW9uOiBzcGluIDFzIGxpbmVhciBpbmZpbml0ZTsgLyogQ2hyb21lLCBGaXJlZm94IDE2KywgSUUgMTArLCBPcGVyYSAqL1xuICAgICAgICAgICAgYW5pbWF0aW9uOiBob3VyZ2xhc3MgM3MgbGluZWFyIGluZmluaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxMHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdihldWktYmFzZS1jb2xvci1wcmltYXJ5LTEwMCk7XG4gICAgICAgICAgICBib3R0b206IDIwcHg7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgbGVmdDogMjBweDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHJpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgdG9wOiAyMHB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG5ALXdlYmtpdC1rZXlmcmFtZXMgc3BpbiB7XG4gICAgMCUge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgICAgICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgIH1cblxuICAgIDEwMCUge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgICAgIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgIH1cbn1cbkBrZXlmcmFtZXMgc3BpbiB7XG4gICAgMCUge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgICAgICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgIH1cblxuICAgIDEwMCUge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgICAgIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgIH1cbn1cbkAtd2Via2l0LWtleWZyYW1lcyBob3VyZ2xhc3MgIHtcbiAgICAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDApO1xuICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NSwgMC4wNTUsIDAuNjc1LCAwLjE5KTtcbiAgICB9XG4gICAgNTAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoOTAwZGVnKTtcbiAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxLCAwLjM1NSwgMSk7XG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODAwZGVnKTtcbiAgICB9XG59XG5Aa2V5ZnJhbWVzIGhvdXJnbGFzcyB7XG4gICAgMCUge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUsIDAuMDU1LCAwLjY3NSwgMC4xOSk7XG4gICAgfVxuICAgIDUwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDkwMGRlZyk7XG4gICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpO1xuICAgIH1cbiAgICAxMDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwMGRlZyk7XG4gICAgfVxufVxuIl19 */",":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 // COLORS\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 // OTHER 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: black;\n --eui-base-color-white: white;\n --eui-base-color: var(--eui-base-color-grey-100);\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 // Misc\n --eui-border-state-width: 6px;\n\n // Colors\n // eUI App elements\n --eui-app-header-bg-color: var(--eui-base-color-white);\n --eui-app-header-title-color: var(--eui-base-color-grey-100);\n --eui-app-header-subtitle-color: var(--eui-base-color-grey-75);\n\n --eui-app-toolbar-color: var(--eui-base-color-white);\n --eui-app-toolbar-bg-color: var(--eui-base-color-primary-100);\n --eui-app-toolbar-border-bottom-color: var(--eui-base-color-primary-25);\n\n --eui-app-sidebar-bg-color: var(--eui-base-color-grey-2);\n --eui-app-sidebar-border-right-color: #f2f4f9;\n\n --eui-app-body-bg-color: var(--eui-base-color-grey-2);\n --eui-app-main-bg-color: var(--eui-base-color-grey-2);\n\n --eui-app-footer-color: var(--eui-base-color-font);\n --eui-app-footer-bg-color: var(--eui-base-color-grey-2);\n --eui-app-footer-border-top-color: #e8ebf1;\n}\n\n.xs, .sm {\n --eui-app-header-height: 0px;\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 @at-root #{& or $root} {\n @content;\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 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 @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 '@material/theme/theme-color' as mdc-theme-color;\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@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@function _variable-safe-contrast-tone($value, $is-dark) {\n @if ($value == 'dark' or $value == 'light' or type-of($value) == 'color') {\n @return mdc-theme-color.contrast-tone($value);\n }\n\n @return if($is-dark, 'light', 'dark');\n}\n\n@mixin color($theme) {\n $color-tokens: tokens-mdc-icon-button.get-color-tokens($theme);\n $surface: inspection.get-theme-color($theme, background, card);\n $is-dark: inspection.get-theme-type($theme) == dark;\n $on-surface: if(_variable-safe-contrast-tone($surface, $is-dark) == 'dark', #000, #fff);\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($on-surface);\n\n &.mat-primary {\n $color: inspection.get-theme-color($theme, primary);\n @include mdc-icon-button-theme.theme((icon-color: $color));\n @include _ripple-color($color);\n }\n\n &.mat-accent {\n $color: inspection.get-theme-color($theme, accent);\n @include mdc-icon-button-theme.theme((icon-color: $color));\n @include _ripple-color($color);\n }\n\n &.mat-warn {\n $color: inspection.get-theme-color($theme, warn);\n @include mdc-icon-button-theme.theme((icon-color: $color));\n @include _ripple-color($color);\n }\n\n @include button-theme-private.apply-disabled-style() {\n $disabled-color: rgba($on-surface, if($is-dark, 0.5, 0.38));\n @include mdc-icon-button-theme.theme((\n icon-color: $disabled-color,\n disabled-icon-color: $disabled-color,\n ));\n }\n }\n}\n\n@mixin typography($theme) {\n}\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 @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","// TODO v17 - extract directive bound styling to global particular structure here to be recongnizable and kept\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","@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","html {\n // Exposed CSS vars\n --eui-html-font-size: var(--eui-base-font-size);\n --eui-html-line-height: var(--eui-base-line-height);\n\n display: block;\n height: 100%;\n font-size: v(eui-html-font-size);\n line-height: v(eui-html-line-height);\n}\n","body {\n // Exposed CSS vars\n --eui-body-bg-color: var(--eui-app-body-bg-color);\n --eui-body-color: var(--eui-base-color);\n --eui-body-font-family: var(--eui-base-font-family);\n --eui-body-font-size: var(--eui-base-font-size);\n --eui-body-line-height: var(--eui-base-line-height);\n\n background-color: v(eui-body-bg-color);\n color: v(eui-body-color);\n font-family: v(eui-body-font-family);\n font-feature-settings: 'liga';\n font-size: v(eui-body-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: v(eui-body-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, // TODO v17: can be removed - don't remove border-box...\n &::after, // TODO v17: can be removed - don't remove border-box...\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// TODO v17: remove and use utility classes\n// See: styles-base\\src\\styles\\99-utilities\\tokens\\_typography.scss\n// TODO 08/23: comment, to be discussed\np,\nlabel,\n.label,\nblockquote,\nabbr,\nmark,\ndel {\n font-size: v(eui-base-font-size);\n}\n\n// em {\n// //font-family: v(eui-font-family-italic); // do NOT use mixin here!\n// font-style: italic;\n// }\n\n// optgroup,\n// strong,\n// b {\n// font-weight: bold;\n\n// & i,\n// & em {\n// font-style: italic;\n// }\n// }\n\n// // TODO v17: remove and use utility classes\n// code,\n// kbd,\n// pre,\n// samp {\n// font-size: v(eui-base-font-size);\n// @include eui-font-family-monospace;\n// }\n\n// // TODO v17: remove and use utility classes\n// code {\n// color: #cc367b; // WCAG2 AA contrast ratio compliant: 4.59\n// font-size: 95%;\n// word-wrap: break-word;\n// }\n\n// // TODO v17: remove and use utility classes\n// small {\n// font-size: 80%;\n// }\n\n// TODO v17: remove and use utility classes\n// kbd {\n// background-color: v(eui-base-color-grey-75); // WCAG2 AA compliant\n// border-radius: v(eui-base-border-radius);\n// color: v(eui-base-color-white);\n// font-size: v(eui-base-font-size-s);\n// padding: 1px v(eui-base-spacing-2xs);\n// }\n\n// TODO v17: remove and use utility classes\n// pre {\n// color: v(eui-base-color);\n// display: block;\n// font-size: 87.5%;\n// margin-bottom: v(eui-base-spacing-m);\n// margin-top: 0;\n// overflow: auto;\n// }\n\n// TODO v17: remove and use utility classes\n// blockquote {\n// padding: v(eui-base-spacing-xs) v(eui-base-spacing-m);\n// }\n\n// TODO v17: remove and use utility classes\n// mark,\n// .mark {\n// background-color: v(eui-base-color-accent-25);\n// padding: v(eui-base-spacing-2xs);\n// }\n","// stylelint-disable no-descending-specificity\ntable.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\n// // RESPONSIVE LAYOUT (PROTO)\n// @include media($eui-bkp-mobile) {\n// table.ux-table {\n// display: block;\n\n// &.ux-table--responsive {\n// display: contents;\n\n// &.ux-table--bordered {\n// tr {\n// border: 1px solid v(eui-base-color-grey-light);\n// }\n// }\n\n// &.ux-table--compact {\n// td {\n// padding-bottom: v(eui-base-spacing-3xs);\n// padding-top: v(eui-base-spacing-2xs);\n\n// &::before {\n// top: v(eui-base-spacing-2xs);\n// }\n// }\n// }\n\n// // Force table to be like cards\n// thead,\n// tbody,\n// th,\n// td,\n// tr {\n// display: block;\n// }\n\n// // Hide table headers but not display: none for accessibility\n// thead tr {\n// left: -9999px;\n// position: absolute;\n// top: -9999px;\n// }\n\n// tr {\n// height: auto;\n// }\n\n// th,\n// td {\n// // Behave like a \"row\"\n// border: none;\n// border-bottom: 1px solid v(eui-base-color-grey-lightest);\n// padding: v(eui-base-spacing-xs);\n// padding-left: 50%;\n// position: relative;\n// }\n\n// td::before {\n// color: v(eui-base-color-grey-dark);\n// content: attr(data-col); // Like a table header column\n// font-weight: bold;\n// left: v(eui-base-spacing-xs);\n// padding-right: v(eui-base-spacing-xs);\n// position: absolute;\n// // Mimic top & left paddings\n// top: v(eui-base-spacing-xs);\n// white-space: nowrap;\n// width: 45%;\n// }\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// normal\n@mixin eui-font-family() {\n @include eui-font(m, ui);\n}\n// tobe removed\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","// TODO v17 find a better way to handle themes\n\n// GLOBAL COMPACT THEME\n///////////////////////\nhtml.eui-t-compact {\n // Exposed CSS variables\n --eui-base-font-size: 14px; // Font size base for compact theme\n --eui-base-line-height: 1.25; // Unitless number value is multiplied by the element's font size\n // Setup\n font-size: var(--eui-base-font-size); // Applies the defined custom font size\n line-height: var(--eui-base-line-height); // Applies the defined custom line height ratio\n}\n\n// FORM ELEMENTS\n/////////////////\nform.eui-t-form-compact {\n // Exposed CSS variables\n --eui-base-font-size: 14px; // Font size base for compact theme\n --eui-base-line-height: 1.25; // Unitless number value is multiplied by the element's font size\n --eui-input-group-spacing: var(--eui-base-spacing-s); // Spacing between form groups elements\n // Internals\n // See: eui-styles-base\\src\\styles\\02-base\\mixins\\theming\\_compact-vars.scss\n @include eui-compact-get-tokens();\n // Setup\n --eui-compact-ratio: 0.82; // Sets form inputs/elements to 39px height (default: 44px)\n font-size: var(--eui-base-font-size); // Applies the defined custom font size\n line-height: var(--eui-base-line-height); // Applies the defined custom line height ratio\n\n // Internals\n .eui-input-group {\n margin-bottom: var(--eui-input-group-spacing);\n\n label {\n margin-bottom: var(--eui-base-spacing-2xs);\n }\n }\n\n .eui-input-group-addon-item {\n min-height: calc(2.5 * #{v(eui-base-spacing-m)});\n min-width: calc(2.5 * #{v(eui-base-spacing-m)});\n padding: calc(#{v(eui-base-spacing-xs)} - 1px);\n }\n\n .eui-button--icon-only {\n padding: calc(#{v(eui-base-spacing-s)} - 1px) v(eui-base-spacing-xs);\n }\n}\n\n// TABLE\n/////////////////\n.eui-table.eui-t-table-compact {\n // Exposed CSS variables\n --eui-base-font-size: 14px; // Font size base for compact theme\n --eui-base-line-height: 1.25; // Unitless number value is multiplied by the element's font size\n --eui-table-header-padding: var(--eui-base-spacing-s); // Table header spacer set to 0.75rem\n --eui-table-row-padding: var(--eui-base-spacing-2xs); // Table body row spacer set to 0.25rem\n --eui-table-footer-padding: var(--eui-base-spacing-s); // Table footer spacer set to 0.75rem\n // Internals\n @include eui-compact-get-tokens();\n // Setup\n font-size: var(--eui-base-font-size); // Applies the defined custom font size\n line-height: var(--eui-base-line-height); // Applies the defined custom line height ratio\n\n // Internals\n thead {\n tr {\n height: auto;\n\n th {\n padding: var(--eui-table-header-padding) var(--eui-base-spacing-s);\n }\n }\n }\n\n tbody {\n tr {\n height: auto;\n\n td {\n padding: var(--eui-table-row-padding) var(--eui-base-spacing-s);\n }\n }\n }\n\n tfoot {\n tr {\n height: auto;\n\n td {\n padding: var(--eui-table-footer-padding) var(--eui-base-spacing-s);\n }\n }\n }\n}\n\n// CARD\n/////////////////\n.eui-card.eui-t-card-compact {\n // Exposed CSS variables\n --eui-base-font-size: 14px; // Font size base for compact theme\n --eui-base-line-height: 1.25; // Unitless number value is multiplied by the element's font size\n --eui-card-title-size: var(--eui-base-font-size-m); // Card title font size\n --eui-card-subtitle-size: var(--eui-base-font-size-s); // Card subtitle font size\n // Internals\n @include eui-compact-get-tokens();\n // Setup\n font-size: var(--eui-base-font-size); // Applies the defined custom font size\n line-height: var(--eui-base-line-height); // Applies the defined custom line height ratio\n\n // Internals\n .eui-card {\n &-header {\n &__title-container {\n &-title,\n &-title .eui-label {\n font-size: var(--eui-card-title-size);\n }\n\n &-subtitle,\n &-subtitle .eui-label {\n font-size: var(--eui-card-subtitle-size);\n }\n }\n\n &__urgent-indicator {\n &::after {\n font-size: var(--eui-base-font-size-2xl);\n }\n }\n }\n }\n}\n","@mixin eui-compact-get-tokens($ratio: 0.875) {\n --eui-compact-ratio: #{$ratio};\n @each $spacing, $value in $eui-base-tokens-spacings {\n --eui-base-spacing-#{$spacing}: calc( #{var(--eui-compact-ratio)} * #{$value} );\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"]}