diff --git a/Changelog.md b/Changelog.md index ce257938..bb9198e0 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,5 +1,11 @@ # Impac! Frontend Changelog +### v1.7.6 + +- Applies v1.6.11 + +------------------------------------------------------------- + ### v1.7.5 | 2018 - Week 20 - [IMPAC-855] CF: Fix Payroll costs series legend image @@ -27,6 +33,12 @@ ------------------------------------------------------------- +### v1.6.11 | 2018 + +- [KAPPASUP-61] Improve messaging on live balance widget + +------------------------------------------------------------- + ### v1.6.10 | 2018 - Week 15 #### Adds diff --git a/bower.json b/bower.json index 4d3ab0e7..3c1f9e52 100755 --- a/bower.json +++ b/bower.json @@ -1,7 +1,7 @@ { "name": "impac-angular", "description": "Impac! Front-End Library", - "version": "1.7.5", + "version": "1.7.6", "license": "Copyright 2017 Maestrano Pty Ltd", "repository": { "type": "git", diff --git a/dist/impac-angular.css b/dist/impac-angular.css index ac99ab12..495548d8 100644 --- a/dist/impac-angular.css +++ b/dist/impac-angular.css @@ -9478,28 +9478,6 @@ dashboard-templates-selector .templates .template.selected { #transactions-list .table-container td > .expected-payment-date .reset-date { margin-left: 3px; } -#trends-list .top { - height: 40px; -} -#trends-list .top a.back-link { - font-weight: normal; -} -#trends-list .top .pagination { - margin: 0px; -} -#trends-list .table-container { - max-height: calc(565px - 60px); - overflow: auto; -} -#trends-list .table-container div[uib-datepicker-popup-wrap] { - display: inline-block; -} -#trends-list .table-container input.btn.btn-xs { - margin-top: -2px; -} -#trends-list .table-container button.btn.reset-date { - margin-top: -2px; -} #trends-add { text-align: center; font-size: 13px; @@ -9567,6 +9545,28 @@ dashboard-templates-selector .templates .template.selected { #trends-add .message .bottom { margin-top: 20px; } +#trends-list .top { + height: 40px; +} +#trends-list .top a.back-link { + font-weight: normal; +} +#trends-list .top .pagination { + margin: 0px; +} +#trends-list .table-container { + max-height: calc(565px - 60px); + overflow: auto; +} +#trends-list .table-container div[uib-datepicker-popup-wrap] { + display: inline-block; +} +#trends-list .table-container input.btn.btn-xs { + margin-top: -2px; +} +#trends-list .table-container button.btn.reset-date { + margin-top: -2px; +} .analytics .dashboard-settings.currency { text-align: right; } @@ -10031,680 +10031,754 @@ chart-threshold .attach-panel .actions button.loading { .analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button.btn-close:hover { color: #ed1e79; } -.analytics .widget-item .content .settings.select-account { - padding: 0px 5px; -} -.analytics .settings.accounting-behaviour .btn.btn-primary { - background-color: #bba9f5; - border: solid 1px #977bf0; +.analytics .widget-item .content.accounts-assets-liability-summary .param-selector { + text-align: center; } -.analytics .settings.accounting-behaviour .btn.btn-primary.focus, -.analytics .settings.accounting-behaviour .btn.btn-primary.active { - background-color: #977bf0; +.analytics .widget-item .content.accounts-assets-liability-summary .legend { + text-align: left; + max-height: 90px; } -.analytics .settings.attach-kpis .attach-kpi { - padding: 8px 5px; +.analytics .widget-item .content.accounts-assets-liability-summary .legend .title { + text-align: center; + border-bottom: dashed 1px #dfe2e2; } -.analytics .settings.attach-kpis .attach-kpi form .row { - padding-bottom: 5px; +.analytics .widget-item .content.accounts-assets-summary .legend { + text-align: left; + max-height: 115px; } -.analytics .settings.attach-kpis .attach-kpi .attach-kpi-form { - background-color: white; - border: 1px solid #ddd; - padding: 5px; +.analytics .widget-item .content.accounts-assets-summary .legend .title { + text-align: center; + border-bottom: dashed 1px #dfe2e2; } -.analytics .settings.attach-kpis .attach-kpi form .row.kpi-description { - padding: 10px 2px; +.analytics .widget-item .content.accounts-assets-vs-liabilities .legend > .title span { + margin-left: 3px; } -.analytics .settings.attach-kpis .attach-kpi form .row.kpi-description span { - display: block; - font-weight: bold; - font-size: 13px; +.analytics .widget-item .content.accounts-balance h3 { + font-weight: 300; + font-size: 14px; + color: #5B6667; + text-align: left; + margin-top: 30px; + text-align: center; } -.analytics .settings.attach-kpis .attach-kpi form.attach-kpi-form input.attach-target { - background-color: white; - height: inherit; +.analytics .widget-item .content.accounts-balance .price { + font-weight: 900; + font-size: 22px; + color: #5B6667; + text-align: center; + margin-top: 0px; } -.analytics .settings.attach-kpis .attach-kpi .error-messages { - color: #e01f74; - width: 120px; +.analytics .widget-item .content.accounts-balance-sheet { + min-height: 565px; } -.analytics .settings.attach-kpis .attached-kpis { - padding: 5px; +@media (min-width: 992px) { + .analytics .widget-item .content.accounts-balance-sheet { + height: 565px; + } + .analytics .widget-item .content.accounts-balance-sheet .chart-container { + max-width: 585px; + max-height: 440px; + margin: auto; + } } -.analytics .settings.attach-kpis .list-group-item.attached-kpi { - padding: 5px 10px; +.analytics .widget-item .content.accounts-balance-sheet .edit { + max-height: 545px; } -.analytics .settings.attach-kpis .list-group-item.attached-kpi .attached-kpi-name { - overflow: hidden; - width: 75%; - display: inline-block; - white-space: nowrap; - text-overflow: ellipsis; - margin-top: 3px; - font-size: 13px; - font-weight: bold; +.analytics .widget-item .content.accounts-balance-sheet .edit .widget-lines-container { + overflow-y: hidden; + overflow-x: hidden; } -.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions { - padding-top: 2px; +.analytics .widget-item .content.accounts-balance-sheet .widget-lines-container { + overflow-y: scroll; + overflow-x: hidden; + max-height: 490px; } -.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions .alerts-config { - display: inline-block; - text-align: left; - padding-left: 4px; - height: 20px; - border-radius: 40px; - width: 21px; - color: #358fdc; - background-color: white; - border: solid 1px #358fdc; +@media (max-width: 767px) { + .analytics .widget-item .content.accounts-balance-sheet .widget-lines-container .row.widget-line:not(:last-child) { + border-bottom: dashed 1px #dfe2e2; + } } -.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions .alerts-config:hover { - cursor: pointer; +.analytics .widget-item .content.accounts-balance-sheet .widget-lines-container .row.widget-line.header > [class*='col-'] { + position: static; } -.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions .edit-attached-kpi { - display: inline-block; +.analytics .widget-item .content.accounts-balance-sheet .widget-lines-container.no-scroll { + overflow: visible; } -.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions .edit-attached-kpi i { - border-radius: 10px; - width: 21px; - color: #358fdc; - background-color: white; - height: 20px; - padding: 3px 5px 5px 5px; - border: solid 1px #358fdc; +.analytics .widget-item .content.accounts-balance-sheet .no-data-block { + font-weight: 300; + font-size: 16px; + color: #5B6667; + text-align: center; + margin: 15px 0px; } -.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions .edit-attached-kpi i:hover { - cursor: pointer; +.analytics .widget-item .content.accounts-cash-balance { + min-height: 565px; } -.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions .remove-attached-kpi { - display: inline-block; +@media (min-width: 992px) { + .analytics .widget-item .content.accounts-cash-balance { + height: 565px; + } + .analytics .widget-item .content.accounts-cash-balance .chart-container { + max-width: 585px; + max-height: 440px; + margin: auto; + } } -.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions .remove-attached-kpi i { - border-radius: 10px; - width: 21px; - color: #e01f74; - background-color: white; - height: 20px; - padding: 3px 5px 5px 5px; - border: solid 1px #e01f74; +.analytics .widget-item .content.accounts-cash-balance .edit { + max-height: 545px; } -.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions .remove-attached-kpi i:hover { - cursor: pointer; +.analytics .widget-item .content.accounts-cash-balance .edit .widget-lines-container { + overflow-y: hidden; + overflow-x: hidden; } -.analytics .widget-item .content .settings.select-account { - padding: 0px 5px; +.analytics .widget-item .content.accounts-cash-balance .data-container { + height: calc(565px - 50px); + width: 100%; } -.analytics .widget-item .content .settings.chart-filters .row { - margin: 0px; +.analytics .widget-item .content.accounts-cash-balance .left-panel { + width: 180px; + display: inline-block; + overflow: auto; + max-height: 100%; } -.analytics .widget-item .content .settings.chart-filters input[type="radio"] { - margin: 0; - margin-right: 3px; - padding: 0; - width: 13px; - height: 13px; - vertical-align: middle; - position: relative; - top: -1px; - outline: none; +.analytics .widget-item .content.accounts-cash-balance #cash-balance-legend .header .group-item { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + min-height: 45px; + margin: 3px; + font-size: 13px; + padding: 3px; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } -.analytics .widget-item .content .settings.chart-filters input[type="range"] { - height: auto; - width: 100%; +.analytics .widget-item .content.accounts-cash-balance #cash-balance-legend .header .group-item:hover { + background-color: #ececec; } -.analytics .settings.dates-picker h5 { - display: none; +.analytics .widget-item .content.accounts-cash-balance #cash-balance-legend .header .group-item i { + font-size: 19px; + padding: 4px; + margin-top: 1px; } -.analytics .settings.dates-picker button.btn.btn-sm { - line-height: 1; +.analytics .widget-item .content.accounts-cash-balance #cash-balance-legend .header .group-item span { + color: #5B6667; } -.analytics .settings.dates-picker button.btn.btn-sm.date-button { - margin: 0px 5px; -} -.analytics .settings.dates-picker button.btn.btn-sm.btn-danger { - display: none; +.analytics .widget-item .content.accounts-cash-balance .legend-item-icon { + width: 16px; + height: 16px; } -.analytics .settings.dates-picker button.btn.btn-sm.btn-info { - border-radius: 3px; +.analytics .widget-item .content.accounts-cash-balance .right-panel { + width: calc(100% - 180px); + float: right; } -.analytics .settings.dates-picker .tooltip-inner { - text-transform: none; +.analytics .widget-item .content.accounts-cash-balance .right-panel .cash-balance-chart { + height: calc(565px - 50px); } -.analytics .settings.dates-picker .dropdown-menu > li > div > table { - outline: none; +.analytics .widget-item .content.accounts-cash-balance .dates-picker { + display: inline-block; + float: right; + font-size: 12px; } -.analytics .settings.forecast-payroll .widget-lines-container .widget-line { - padding: 5px 10px 5px 18px; +.analytics .widget-item .content.accounts-cash-projection { + min-height: 565px; } -.analytics .settings.forecast-payroll .widget-lines-container .widget-line:nth-child(even) { - background-color: #f3f4f4; +@media (min-width: 992px) { + .analytics .widget-item .content.accounts-cash-projection { + height: 565px; + } + .analytics .widget-item .content.accounts-cash-projection .chart-container { + max-width: 585px; + max-height: 440px; + margin: auto; + } } -.analytics .settings.forecast-payroll .widget-lines-container .widget-line:nth-child(odd) { - background-color: white; +.analytics .widget-item .content.accounts-cash-projection .edit { + max-height: 545px; } -.analytics .settings.forecast-payroll .widget-lines-container .widget-line .fa { - float: right; - font-size: 20px; - cursor: pointer; +.analytics .widget-item .content.accounts-cash-projection .edit .widget-lines-container { + overflow-y: hidden; + overflow-x: hidden; } -.analytics .settings.forecast-payroll .widget-lines-container .widget-line .fa.fa-toggle-on { - color: #977bf0; +.analytics .widget-item .content.accounts-cash-projection .cash-projection-chart { + height: calc(565px - 50px); } -.analytics .settings.forecast-payroll .widget-lines-container .widget-line .fa.fa-toggle-off { - color: #9ba6a7; +.analytics .widget-item .content.accounts-cash-projection .highcharts-legend-item rect.highcharts-point { + display: none; } -.analytics .widget-item .content .settings.hist-mode-choser { - max-height: 70px; +.analytics .widget-item .content.accounts-cash-projection .highcharts-legend-item span { + width: 110px; + text-align: center; } -.analytics .widget-item .content .settings.hist-mode-choser [common-time-period-info] { - padding-bottom: 8px; +.analytics .widget-item .content.accounts-cash-projection .highcharts-legend-item span img { + text-align: center; + width: 55px; + height: 25px; } -.analytics .widget-item .content .settings.hist-mode-choser .options { - width: 150px; - margin: auto; - padding-bottom: 8px; - border-bottom: solid 1px #e6e6e6; - font-weight: 500; +.analytics .widget-item .content.accounts-cash-projection .dates-picker { + display: inline-block; + float: right; font-size: 12px; - color: #c4caca; } -.analytics .widget-item .content .settings.hist-mode-choser .options a { - font-weight: 500; +.analytics .widget-item .content.accounts-cash-projection transactions-list { font-size: 12px; - color: #c4caca; - text-transform: uppercase; -} -.analytics .widget-item .content .settings.hist-mode-choser .options a.active { - color: #977bf0; -} -.analytics .widget-item .content .settings.hist-mode-choser .arrow-container { - width: 28px; - height: 28px; - position: relative; - top: -14px; - margin: auto; } -.analytics .widget-item .content .settings.hist-mode-choser .arrow-container.right { - left: 46px; +.analytics .widget-item .content.accounts-cash-summary { + min-height: 565px; } -.analytics .widget-item .content .settings.hist-mode-choser .arrow-container.left { - left: -30px; +@media (min-width: 992px) { + .analytics .widget-item .content.accounts-cash-summary { + height: 565px; + } + .analytics .widget-item .content.accounts-cash-summary .chart-container { + max-width: 585px; + max-height: 440px; + margin: auto; + } } -.analytics .widget-item .content .settings.hist-mode-choser .arrow-container .arrow-border { - border-top: 14px solid #e6e6e6; - border-left: 14px solid transparent; - border-right: 14px solid transparent; - width: 0px; - height: 0px; +.analytics .widget-item .content.accounts-cash-summary .edit { + max-height: 545px; } -.analytics .widget-item .content .settings.hist-mode-choser .arrow-container .arrow { - border-top: 14px solid white; - border-left: 14px solid transparent; - border-right: 14px solid transparent; - position: relative; - top: 12px; - width: 0px; - height: 0px; +.analytics .widget-item .content.accounts-cash-summary .edit .widget-lines-container { + overflow-y: hidden; + overflow-x: hidden; } -.analytics .settings.limit-entries { - color: #1E303B; - text-transform: uppercase; - text-align: center; - border-bottom: dashed 1px #E6E6E6; - padding-bottom: 8px; +.analytics .widget-item .content.accounts-cash-summary .widget-lines-container { + max-height: 540px; } -.analytics .settings.limit-entries a.option.badge { - color: white; - background-color: #1E303B; +.analytics .widget-item .content.accounts-cash-summary .widget-lines-container .lines-group .widget-line { + cursor: pointer; + border: solid 1px white; } -.analytics .settings.offsets .offset-value { - font-style: italic; - font-size: 13px; +.analytics .widget-item .content.accounts-cash-summary .widget-lines-container .lines-group .widget-line .selection-tag { + display: block; + right: 0px; + margin-top: -6px; + width: 10px; + height: 29px; + position: absolute; } -.analytics .settings.offsets .offset-value .fa-trash-o { - margin-left: 10px; +.analytics .widget-item .content.accounts-cash-summary .widget-lines-container .lines-group .widget-line:hover { + background-color: #e6e0fb; } -.analytics .settings.offsets .offset-value .fa-trash-o:hover { - color: #e01f74; - cursor: pointer; +.analytics .widget-item .content.accounts-cash-summary .widget-lines-container .lines-group .widget-line.no-select { + cursor: auto; } -.analytics .settings.offsets input { - width: 75%; +.analytics .widget-item .content.accounts-cash-summary .widget-lines-container .lines-group .widget-line.no-select:hover { + color: #626d6d; } -.analytics .settings.offsets button { - width: 30px; +.analytics .widget-item .content.accounts-cash-summary .right-panel .widget-lines-container { + overflow-y: auto; + overflow-x: hidden; + max-height: 235px; } -.analytics .settings.organizations .widget-lines-container .widget-line { - padding: 5px 10px 5px 18px; +.analytics .widget-item .content.accounts-cash-summary .no-element { + font-weight: 300; + font-size: 16px; + color: #5B6667; + text-align: center; } -.analytics .settings.organizations .widget-lines-container .widget-line:nth-child(even) { - background-color: #f3f4f4; +.analytics .widget-item .content.accounts-cash-summary .right-panel .widget-lines-container { + max-height: 215px; } -.analytics .settings.organizations .widget-lines-container .widget-line:nth-child(odd) { - background-color: white; +.analytics .widget-item .content.accounts-cash-summary .row.lines-group.cash { + border-top: solid 1px; + border-bottom: double; } -.analytics .settings.organizations .widget-lines-container .widget-line .fa { - float: right; - font-size: 20px; - cursor: pointer; +.analytics .widget-item .content.accounts-class-comparison .param-selector { + text-align: center; } -.analytics .settings.organizations .widget-lines-container .widget-line .fa.fa-toggle-on, -.analytics .settings.organizations .widget-lines-container .widget-line .fa.fa-check-circle { - color: #977bf0; +.analytics .widget-item .content.accounts-class-comparison .widget-lines-container { + max-height: 94px; + color: #626d6d; } -.analytics .settings.organizations .widget-lines-container .widget-line .fa.fa-toggle-off, -.analytics .settings.organizations .widget-lines-container .widget-line .fa.fa-circle-thin { - color: #9ba6a7; +.analytics .widget-item .content.accounts-comparison { + min-height: 565px; } -.analytics .widget-item .content .settings.param-selector { - display: inline-block; +@media (min-width: 992px) { + .analytics .widget-item .content.accounts-comparison { + height: 565px; + } + .analytics .widget-item .content.accounts-comparison .chart-container { + max-width: 585px; + max-height: 440px; + margin: auto; + } } -.analytics .widget-item .content .settings.param-selector.classic { - width: 100%; +.analytics .widget-item .content.accounts-comparison .edit { + max-height: 545px; } -.analytics .widget-item .content .settings.param-selector.classic select { - width: 100%; - height: 25px; - border: 1px solid #ccc; - text-transform: uppercase; - margin: 0px 0px 5px 0px; +.analytics .widget-item .content.accounts-comparison .edit .widget-lines-container { + overflow-y: hidden; + overflow-x: hidden; } -.analytics .widget-item .content .settings.param-selector a { - font-weight: normal; - color: #977bf0; - white-space: nowrap; +@media print { + .analytics .widget-item .content.accounts-comparison .chart-container { + max-width: 80% !important; + } } -.analytics .widget-item .content .settings.param-selector .options-container { +.analytics .widget-item .content.accounts-comparison .add-account { position: absolute; - background-color: white; - text-align: left; - min-width: 150px; - max-height: 200px; - z-index: 999; - overflow-y: auto; - overflow-x: hidden; - box-shadow: #000000 0px 3px 15px -3px; -} -.analytics .widget-item .content .settings.param-selector .options-container .param-selector-label { - padding: 3px 5px; - font-weight: 500; - font-size: inherit; - color: black; - cursor: text; - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; - line-height: 1.9; + right: 40px; + bottom: 30px; + width: 160px; } -.analytics .widget-item .content .settings.param-selector .options-container .param-selector-label:hover { - cursor: pointer; +.analytics .widget-item .content.accounts-comparison .add-account select { + font-size: 13px; background-color: #977bf0; color: white; + outline: none; + border: none; + cursor: pointer; } -.analytics .widget-item .content .settings.param-selector .options-container::-webkit-scrollbar { - width: 8px; - background-color: #d7e2e4; +.analytics .widget-item .content.accounts-comparison .add-account select[disabled] { + cursor: not-allowed; + background-color: #bba9f5; } -.analytics .widget-item .content .settings.param-selector .options-container::-webkit-scrollbar-thumb { - background-color: #977bf0; +.analytics .widget-item .content.accounts-comparison .add-account select[disabled]:hover { + background-color: #bba9f5; } -.analytics .widget-item .content .settings.param-selector .options-container::-webkit-scrollbar-thumb:hover { - background-color: #a992f3; +.analytics .widget-item .content.accounts-comparison .add-account select:hover { + background-color: #734deb; } -.analytics .settings.params-checkboxes { - padding: 2px 0px; +.analytics .widget-item .content.accounts-comparison .add-account select option { + background-color: white; + color: #c4caca; } -.analytics .settings.params-checkboxes input { +.analytics .widget-item .content.accounts-comparison .add-account select option[disabled] { + color: white; +} +.analytics .widget-item .content.accounts-comparison button.close { + font-size: 15px; +} +.analytics .widget-item .content.accounts-comparison .legend { + text-align: left; + max-height: 103px; +} +.analytics .widget-item .content.accounts-comparison .row { margin: 0; - height: inherit; } -.analytics .settings.params-checkboxes span { - margin-left: 5px; +.analytics .widget-item .content.accounts-comparison .widget-lines-container { + font-size: 11px; + max-height: 220px; + margin-bottom: 65px; + overflow: auto; } -.analytics .settings.params-checkboxes label { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; - line-height: 14px; +.analytics .widget-item .content.accounts-comparison .settings.params-checkboxes { + margin-left: 13px; } -.analytics .widget-item .content .settings.params-picker { - padding: 0px 10px; +.analytics .widget-item .content.accounts-comparison .comparable-error h5 { + margin-left: 13px; + color: #ed1e79; } -.analytics .widget-item .content .settings.params-picker .parameter { - margin: 0px 3px 3px 0px; - padding: 3px 5px; - background-color: #1E303B; - color: white; - border: solid 1px #1E303B; - border-radius: 4px; - cursor: move; +.analytics .widget-item .content.accounts-custom-calculation h3 { + margin-top: 85px; + text-align: center; font-weight: bold; - white-space: nowrap; - float: left; } -.analytics .widget-item .content .settings.params-picker .parameter input[type="checkbox"] { - margin: 0px -3px 0px 3px; - vertical-align: middle; - height: inherit; - outline: none; - cursor: pointer; +.analytics .widget-item .content.accounts-custom-calculation .legend { + max-height: 125px; } -.analytics .widget-item .content .settings.params-picker .parameter .badge { - margin-right: 3px; - font-size: 10px; - background-color: #f2f2f2; - color: #1E303B; - padding: 2px 6px; +.analytics.modal-custom-calculation { + margin: 0px; + padding: 0px; } -.analytics .widget-item .content .settings.params-picker .parameter.unchecked { - background-color: inherit; - font-weight: normal; - color: inherit; - border-color: #c2c4c4; +.analytics.modal-custom-calculation .modal-body .edit { + overflow-y: auto; + overflow-x: hidden; + color: #5B6667; + padding: 2px; + font-size: 12px; + padding: 5px; + overflow: visible; } -.analytics .widget-item .content .settings.params-picker .parameter.unchecked .badge { +.analytics.modal-custom-calculation .modal-body .edit .bottom-buttons .btn { + border-radius: 2px; + margin-right: 5px; + padding: 3px 13px; + text-transform: uppercase; + font-size: 12px; +} +.analytics.modal-custom-calculation .modal-body .edit .bottom-buttons .btn.btn-default { background-color: #c2c4c4; + border: solid 1px #a8abab; color: white; } -.analytics .settings.tag-filter { - padding: 0px 5px; +.analytics.modal-custom-calculation .modal-body .edit .bottom-buttons .btn.btn-default:hover { + border: solid 1px #8e9292; + background-color: #a8abab; } -.analytics .settings.tag-filter .btn.btn-default { - height: 32px; - width: 30px; +.analytics.modal-custom-calculation .modal-body .edit h4 { + margin: 0; + margin-bottom: 8px; + text-align: left; + font-weight: normal; + font-size: 12px; + color: #c4caca; } -.analytics .settings.tag-filter .tag-lines-container { - padding: 0px 10px; +.analytics.modal-custom-calculation .modal-body .edit .part { + margin-bottom: 8px; + padding: 10px 0px; + background-color: #fcfcfc; + border: solid 1px #dfe2e2; } -.analytics .settings.tag-filter .tag-lines-container .tag-line { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - -webkit-box-pack: end; - -ms-flex-pack: end; - justify-content: flex-end; +.analytics.modal-custom-calculation .modal-body .edit .part h5 { + display: block; + margin: 0; + margin-bottom: 10px; + padding: 0px 15px; + text-transform: uppercase; + font-weight: normal; + font-size: 12px; + color: #c4caca; } -.analytics .settings.tag-filter .tag-lines-container .tag-line .tags-col { - position: static; +.analytics.modal-custom-calculation .modal-body .edit .part label { + font-weight: normal; } -.analytics .settings.tag-filter .tag-lines-container .tag-line tags-input .tags { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - border-radius: 4px; - border: solid 1px #ccc; +.analytics.modal-custom-calculation .modal-body .edit .part select.form-control { + margin: 0px; + border: solid 1px #acb0b1; + outline: none; + -webkit-box-shadow: none; + font-size: 13px; + color: #72728b; } -.analytics .settings.tag-filter .tag-lines-container .tag-line tags-input .tags .tag-item { - background: #79a2bb; - border-radius: 4px; - color: white; +.analytics .widget-item .content.accounts-detailed-classifications { + min-height: 565px; } -.analytics .settings.tag-filter .tag-lines-container .tag-line .host { - position: static; +@media (min-width: 992px) { + .analytics .widget-item .content.accounts-detailed-classifications { + height: 565px; + } + .analytics .widget-item .content.accounts-detailed-classifications .chart-container { + max-width: 585px; + max-height: 440px; + margin: auto; + } } -.analytics .settings.time-period { - padding: 0px 5px; +.analytics .widget-item .content.accounts-detailed-classifications .edit { + max-height: 545px; } -.analytics .settings.time-period select { - height: 22px; - width: 100%; +.analytics .widget-item .content.accounts-detailed-classifications .edit .widget-lines-container { + overflow-y: hidden; + overflow-x: hidden; } -.analytics .settings.time-period > .row { - margin: 0px -5px 7px -5px; +.analytics .widget-item .content.accounts-detailed-classifications .widget-lines-container { + overflow-y: scroll; + overflow-x: hidden; + max-height: 540px; } -.analytics .settings.time-period > .row > div { - padding: 0px 5px; - position: static; +.analytics .widget-item .content.accounts-detailed-classifications .account-class-title { + margin-bottom: 8px; + margin-left: 11px; } -.analytics .settings.time-period > .row .sub-setting { - padding: 5px; +.analytics .widget-item .content.accounts-detailed-classifications .time-period-info { + text-align: right; } -.analytics .widget-item .content .settings.width { - float: right; - font-size: 14px; +.analytics .widget-item .content.accounts-detailed-classifications .widget-line.header.sorting { + border-bottom: 1px solid #ccc; } -.analytics .widget-item .content .settings.width i { - color: silver; - cursor: pointer; +.analytics .widget-item .content.accounts-expense-weight .legend { + text-align: left; + max-height: 115px; +} +.analytics .widget-item .content.accounts-expense-weight .legend .title { + text-align: center; +} +.analytics .widget-item .content.accounts-expenses-revenue .legend { + font-weight: bold; +} +.analytics .widget-item .content.accounts-expenses-revenue .settings.params-checkboxes { + font-size: 12px; + margin-left: 0px; + text-align: center; +} +.analytics .widget-item .content.accounts-invoices-list { + min-height: 565px; +} +@media (min-width: 992px) { + .analytics .widget-item .content.accounts-invoices-list { + height: 565px; + } + .analytics .widget-item .content.accounts-invoices-list .chart-container { + max-width: 585px; + max-height: 440px; + margin: auto; + } +} +.analytics .widget-item .content.accounts-invoices-list .edit { + max-height: 545px; } -.analytics .widget-item .content .settings.width i.reduce { - margin-right: -10px; +.analytics .widget-item .content.accounts-invoices-list .edit .widget-lines-container { + overflow-y: hidden; + overflow-x: hidden; } -.analytics .widget-item .content .settings.width i.expand { - margin-right: -3px; +.analytics .widget-item .content.accounts-invoices-list transactions-list { + font-size: 12px; } -.analytics .widget-item .content.accounts-assets-liability-summary .param-selector { +.analytics .widget-item .content.accounts-live-balance h3 { + font-weight: 900; + font-size: 22px; + color: #5B6667; + margin-top: 0px; + font-size: 18px; text-align: center; + text-shadow: 1px; } -.analytics .widget-item .content.accounts-assets-liability-summary .legend { - text-align: left; - max-height: 90px; +.analytics .widget-item .content.accounts-live-balance .statement-title { + font-size: 13px; + font-weight: 400; } -.analytics .widget-item .content.accounts-assets-liability-summary .legend .title { +.analytics .widget-item .content.accounts-live-balance .balance-title { + font-size: 12px; +} +.analytics .widget-item .content.accounts-live-balance .currency-centered { + font-weight: 300; + font-size: 12px; + color: #5B6667; text-align: center; - border-bottom: dashed 1px #dfe2e2; } -.analytics .widget-item .content.accounts-assets-summary .legend { - text-align: left; - max-height: 115px; +.analytics .widget-item .content.accounts-live-balance .headers { + text-align: center; } -.analytics .widget-item .content.accounts-assets-summary .legend .title { +.analytics .widget-item .content.accounts-live-balance .spacer { + min-height: 30px; +} +.analytics .widget-item .content.accounts-live-balance .price { + font-weight: 900; + font-size: 22px; + color: #5B6667; text-align: center; - border-bottom: dashed 1px #dfe2e2; + margin-top: 0px; } -.analytics .widget-item .content.accounts-assets-vs-liabilities .legend > .title span { - margin-left: 3px; +.analytics .widget-item .content.accounts-live-balance .come-back-later { + text-align: center; + font-size: 11px; + opacity: 0.8; } -.analytics .widget-item .content.accounts-balance h3 { - font-weight: 300; +.analytics .widget-item .content.accounts-live-balance .negative2 { font-size: 14px; - color: #5B6667; - text-align: left; - margin-top: 30px; +} +.analytics .widget-item .content.accounts-payable-receivable h3 { text-align: center; } -.analytics .widget-item .content.accounts-balance .price { +.analytics .widget-item .content.accounts-payable-receivable .legend { + font-weight: bold; +} +.analytics .widget-item .content.accounts-payable-receivable .payable { + margin-top: 15px; +} +.analytics .widget-item .content.accounts-payable-receivable .price { font-weight: 900; font-size: 22px; color: #5B6667; text-align: center; margin-top: 0px; } -.analytics .widget-item .content.accounts-balance-sheet { +.analytics .widget-item .content.accounts-profit-and-loss { min-height: 565px; } @media (min-width: 992px) { - .analytics .widget-item .content.accounts-balance-sheet { + .analytics .widget-item .content.accounts-profit-and-loss { height: 565px; } - .analytics .widget-item .content.accounts-balance-sheet .chart-container { + .analytics .widget-item .content.accounts-profit-and-loss .chart-container { max-width: 585px; max-height: 440px; margin: auto; } } -.analytics .widget-item .content.accounts-balance-sheet .edit { +.analytics .widget-item .content.accounts-profit-and-loss .edit { max-height: 545px; } -.analytics .widget-item .content.accounts-balance-sheet .edit .widget-lines-container { +.analytics .widget-item .content.accounts-profit-and-loss .edit .widget-lines-container { overflow-y: hidden; overflow-x: hidden; } -.analytics .widget-item .content.accounts-balance-sheet .widget-lines-container { - overflow-y: scroll; - overflow-x: hidden; - max-height: 490px; +.analytics .widget-item .content.accounts-profit-and-loss .widget-lines-container { + max-height: 540px; } -@media (max-width: 767px) { - .analytics .widget-item .content.accounts-balance-sheet .widget-lines-container .row.widget-line:not(:last-child) { - border-bottom: dashed 1px #dfe2e2; - } +.analytics .widget-item .content.accounts-profit-and-loss .widget-lines-container .lines-group .widget-line { + cursor: pointer; + border: solid 1px white; } -.analytics .widget-item .content.accounts-balance-sheet .widget-lines-container .row.widget-line.header > [class*='col-'] { - position: static; +.analytics .widget-item .content.accounts-profit-and-loss .widget-lines-container .lines-group .widget-line .selection-tag { + display: block; + right: 0px; + margin-top: -6px; + width: 10px; + height: 29px; + position: absolute; } -.analytics .widget-item .content.accounts-balance-sheet .widget-lines-container.no-scroll { - overflow: visible; +.analytics .widget-item .content.accounts-profit-and-loss .widget-lines-container .lines-group .widget-line:hover { + background-color: #e6e0fb; } -.analytics .widget-item .content.accounts-balance-sheet .no-data-block { +.analytics .widget-item .content.accounts-profit-and-loss .widget-lines-container .lines-group .widget-line.no-select { + cursor: auto; +} +.analytics .widget-item .content.accounts-profit-and-loss .widget-lines-container .lines-group .widget-line.no-select:hover { + color: #626d6d; +} +.analytics .widget-item .content.accounts-profit-and-loss .right-panel .widget-lines-container { + overflow-y: auto; + overflow-x: hidden; + max-height: 235px; +} +.analytics .widget-item .content.accounts-profit-and-loss .no-element { font-weight: 300; font-size: 16px; color: #5B6667; text-align: center; - margin: 15px 0px; -} -.analytics .widget-item .content.accounts-cash-balance { - min-height: 565px; } -@media (min-width: 992px) { - .analytics .widget-item .content.accounts-cash-balance { - height: 565px; - } - .analytics .widget-item .content.accounts-cash-balance .chart-container { - max-width: 585px; - max-height: 440px; - margin: auto; - } +.analytics .widget-item .content.accounts-profit-and-loss .row.lines-group.profit { + border-top: solid 1px; + border-bottom: double; } -.analytics .widget-item .content.accounts-cash-balance .edit { - max-height: 545px; +.analytics .widget-item .content.accounts-profit-and-loss .right-panel .widget-lines-container { + max-height: 215px; } -.analytics .widget-item .content.accounts-cash-balance .edit .widget-lines-container { - overflow-y: hidden; - overflow-x: hidden; +.analytics .widget-item .content.accounts-profit-and-loss .row.widget-line.header > [class*='col-'] { + position: static; } -.analytics .widget-item .content.accounts-cash-balance .data-container { - height: calc(565px - 50px); - width: 100%; +.analytics .widget-item .content.accounts-ratios .left-panel { + max-height: 230px; + overflow-y: auto; } -.analytics .widget-item .content.accounts-cash-balance .left-panel { - width: 180px; - display: inline-block; - overflow: auto; - max-height: 100%; +.analytics .widget-item .content.accounts-ratios .left-panel .separator { + border-bottom: solid 1px #5B6667; + width: 75%; } -.analytics .widget-item .content.accounts-cash-balance #cash-balance-legend .header .group-item { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - min-height: 45px; - margin: 3px; - font-size: 13px; - padding: 3px; - cursor: pointer; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; +.analytics .widget-item .content.accounts-ratios .left-panel .member { + padding-top: 20px; + padding-bottom: 20px; } -.analytics .widget-item .content.accounts-cash-balance #cash-balance-legend .header .group-item:hover { - background-color: #ececec; +.analytics .widget-item .content.accounts-ratios .left-panel .member .price { + margin-top: 0px; + font-size: 18px; } -.analytics .widget-item .content.accounts-cash-balance #cash-balance-legend .header .group-item i { - font-size: 19px; - padding: 4px; - margin-top: 1px; +.analytics .widget-item .content.accounts-ratios .left-panel button { + outline: none; } -.analytics .widget-item .content.accounts-cash-balance #cash-balance-legend .header .group-item span { - color: #5B6667; +.analytics .widget-item .content.accounts-ratios .left-panel.simulation .member { + padding-top: 5px; } -.analytics .widget-item .content.accounts-cash-balance .legend-item-icon { - width: 16px; - height: 16px; +.analytics .widget-item .content.accounts-ratios .left-panel.simulation .member .legend { + display: none; } -.analytics .widget-item .content.accounts-cash-balance .right-panel { - width: calc(100% - 180px); - float: right; +.analytics .widget-item .content.accounts-ratios .left-panel.simulation .member .price { + text-align: right; } -.analytics .widget-item .content.accounts-cash-balance .right-panel .cash-balance-chart { - height: calc(565px - 50px); +.analytics .widget-item .content.accounts-ratios .left-panel.simulation .separator { + width: 100%; } -.analytics .widget-item .content.accounts-cash-balance .dates-picker { - display: inline-block; - float: right; +.analytics .widget-item .content.hr-employee-details { font-size: 12px; } -.analytics .widget-item .content.accounts-cash-projection { - min-height: 565px; +.analytics .widget-item .content.hr-employee-details .details-container { + padding: 0px; + max-height: none; + overflow-y: auto; + overflow-x: hidden; } @media (min-width: 992px) { - .analytics .widget-item .content.accounts-cash-projection { - height: 565px; + .analytics .widget-item .content.hr-employee-details .details-container { + max-height: 200px; } - .analytics .widget-item .content.accounts-cash-projection .chart-container { - max-width: 585px; - max-height: 440px; - margin: auto; +} +@media (min-width: 992px) { + .analytics .widget-item .content.hr-employee-details .right-panel .details-container { + max-height: 220px; } } -.analytics .widget-item .content.accounts-cash-projection .edit { - max-height: 545px; +.analytics .widget-item .content.hr-employee-details .right-panel .legend { + margin-bottom: 5px; } -.analytics .widget-item .content.accounts-cash-projection .edit .widget-lines-container { - overflow-y: hidden; - overflow-x: hidden; +.analytics .widget-item .content.hr-employee-details .title { + text-align: center; + margin-bottom: 10px; + font-size: 14px; } -.analytics .widget-item .content.accounts-cash-projection .cash-projection-chart { - height: calc(565px - 50px); +.analytics .widget-item .content.hr-employees-list .legend { + margin-bottom: 9px; } -.analytics .widget-item .content.accounts-cash-projection .highcharts-legend-item rect.highcharts-point { - display: none; +.analytics .widget-item .content.hr-employees-list .widget-lines-container { + text-align: center; +} +.analytics .widget-item .content.hr-employees-list .widget-lines-container .widget-line:nth-child(even) { + background-color: #f0f0f0; +} +.analytics .widget-item .content.hr-employees-list .widget-lines-container .widget-line:nth-child(odd) { + background-color: white; +} +.analytics .widget-item .content.hr-employees-list .edit .widget-lines-container { + text-align: left; +} +.analytics .widget-item .content.hr-leaves-balance .employee-name { + text-align: center; } -.analytics .widget-item .content.accounts-cash-projection .highcharts-legend-item span { - width: 110px; +.analytics .widget-item .content.hr-leaves-balance .balance { + font-weight: 900; + font-size: 22px; + color: #5B6667; text-align: center; + margin-top: 0px; } -.analytics .widget-item .content.accounts-cash-projection .highcharts-legend-item span img { +.analytics .widget-item .content.hr-leaves-balance h3 { + margin-top: 33px; text-align: center; - width: 55px; - height: 25px; } -.analytics .widget-item .content.accounts-cash-projection .dates-picker { - display: inline-block; - float: right; +.analytics .widget-item .content.hr-leaves-schedule .fc-button { + height: 22px; font-size: 12px; + color: #977bf0; + background: white; + outline: none; } -.analytics .widget-item .content.accounts-cash-projection transactions-list { +.analytics .widget-item .content.hr-leaves-schedule .fc-button:hover { + color: white; + background: #977bf0; +} +.analytics .widget-item .content.hr-leaves-schedule .fc-toolbar { + margin-bottom: 5px; +} +.analytics .widget-item .content.hr-leaves-schedule .fc-day-grid, +.analytics .widget-item .content.hr-leaves-schedule .fc-widget-header { font-size: 12px; + color: #5B6667; } -.analytics .widget-item .content.accounts-cash-summary { +.analytics .widget-item .content.hr-payroll-summary { min-height: 565px; } @media (min-width: 992px) { - .analytics .widget-item .content.accounts-cash-summary { + .analytics .widget-item .content.hr-payroll-summary { height: 565px; } - .analytics .widget-item .content.accounts-cash-summary .chart-container { + .analytics .widget-item .content.hr-payroll-summary .chart-container { max-width: 585px; max-height: 440px; margin: auto; } } -.analytics .widget-item .content.accounts-cash-summary .edit { +.analytics .widget-item .content.hr-payroll-summary .edit { max-height: 545px; } -.analytics .widget-item .content.accounts-cash-summary .edit .widget-lines-container { +.analytics .widget-item .content.hr-payroll-summary .edit .widget-lines-container { overflow-y: hidden; overflow-x: hidden; } -.analytics .widget-item .content.accounts-cash-summary .widget-lines-container { +.analytics .widget-item .content.hr-payroll-summary .widget-lines-container { max-height: 540px; } -.analytics .widget-item .content.accounts-cash-summary .widget-lines-container .lines-group .widget-line { +.analytics .widget-item .content.hr-payroll-summary .widget-lines-container .lines-group .widget-line { cursor: pointer; border: solid 1px white; } -.analytics .widget-item .content.accounts-cash-summary .widget-lines-container .lines-group .widget-line .selection-tag { +.analytics .widget-item .content.hr-payroll-summary .widget-lines-container .lines-group .widget-line .selection-tag { display: block; right: 0px; margin-top: -6px; @@ -10712,346 +10786,315 @@ chart-threshold .attach-panel .actions button.loading { height: 29px; position: absolute; } -.analytics .widget-item .content.accounts-cash-summary .widget-lines-container .lines-group .widget-line:hover { +.analytics .widget-item .content.hr-payroll-summary .widget-lines-container .lines-group .widget-line:hover { background-color: #e6e0fb; } -.analytics .widget-item .content.accounts-cash-summary .widget-lines-container .lines-group .widget-line.no-select { +.analytics .widget-item .content.hr-payroll-summary .widget-lines-container .lines-group .widget-line.no-select { cursor: auto; } -.analytics .widget-item .content.accounts-cash-summary .widget-lines-container .lines-group .widget-line.no-select:hover { +.analytics .widget-item .content.hr-payroll-summary .widget-lines-container .lines-group .widget-line.no-select:hover { color: #626d6d; } -.analytics .widget-item .content.accounts-cash-summary .right-panel .widget-lines-container { +.analytics .widget-item .content.hr-payroll-summary .right-panel .widget-lines-container { overflow-y: auto; overflow-x: hidden; max-height: 235px; } -.analytics .widget-item .content.accounts-cash-summary .no-element { +.analytics .widget-item .content.hr-payroll-summary .no-element { font-weight: 300; font-size: 16px; color: #5B6667; text-align: center; } -.analytics .widget-item .content.accounts-cash-summary .right-panel .widget-lines-container { - max-height: 215px; -} -.analytics .widget-item .content.accounts-cash-summary .row.lines-group.cash { - border-top: solid 1px; - border-bottom: double; +.analytics .widget-item .content.hr-payroll-summary .right-panel .widget-lines-container { + max-height: 145px; } -.analytics .widget-item .content.accounts-class-comparison .param-selector { +.analytics .widget-item .content.hr-salaries-summary h3.left { text-align: center; } -.analytics .widget-item .content.accounts-class-comparison .widget-lines-container { - max-height: 94px; - color: #626d6d; -} -.analytics .widget-item .content.accounts-comparison { - min-height: 565px; -} @media (min-width: 992px) { - .analytics .widget-item .content.accounts-comparison { - height: 565px; - } - .analytics .widget-item .content.accounts-comparison .chart-container { - max-width: 585px; - max-height: 440px; - margin: auto; + .analytics .widget-item .content.hr-salaries-summary h3.left { + margin-top: 69px; } } -.analytics .widget-item .content.accounts-comparison .edit { - max-height: 545px; -} -.analytics .widget-item .content.accounts-comparison .edit .widget-lines-container { - overflow-y: hidden; - overflow-x: hidden; +.analytics .widget-item .content.hr-salaries-summary h3.reduced-left { + text-align: center; } -@media print { - .analytics .widget-item .content.accounts-comparison .chart-container { - max-width: 80% !important; +@media (min-width: 992px) { + .analytics .widget-item .content.hr-salaries-summary h3.reduced-left { + margin-top: 10px; } } -.analytics .widget-item .content.accounts-comparison .add-account { - position: absolute; - right: 40px; - bottom: 30px; - width: 160px; -} -.analytics .widget-item .content.accounts-comparison .add-account select { - font-size: 13px; - background-color: #977bf0; - color: white; - outline: none; - border: none; - cursor: pointer; -} -.analytics .widget-item .content.accounts-comparison .add-account select[disabled] { - cursor: not-allowed; - background-color: #bba9f5; -} -.analytics .widget-item .content.accounts-comparison .add-account select[disabled]:hover { - background-color: #bba9f5; -} -.analytics .widget-item .content.accounts-comparison .add-account select:hover { - background-color: #734deb; -} -.analytics .widget-item .content.accounts-comparison .add-account select option { - background-color: white; - color: #c4caca; -} -.analytics .widget-item .content.accounts-comparison .add-account select option[disabled] { - color: white; -} -.analytics .widget-item .content.accounts-comparison button.close { - font-size: 15px; +.analytics .widget-item .content.hr-salaries-summary h3.right { + margin-bottom: 10px; + text-align: center; } -.analytics .widget-item .content.accounts-comparison .legend { - text-align: left; - max-height: 103px; +.analytics .widget-item .content.hr-salaries-summary .price { + margin-top: 0; } -.analytics .widget-item .content.accounts-comparison .row { - margin: 0; +.analytics .widget-item .content.hr-salaries-summary .widget-lines-container { + max-height: 75px; } -.analytics .widget-item .content.accounts-comparison .widget-lines-container { +.analytics .widget-item .content.hr-salaries-summary .widget-lines-container .widget-line { font-size: 11px; - max-height: 220px; - margin-bottom: 65px; - overflow: auto; -} -.analytics .widget-item .content.accounts-comparison .settings.params-checkboxes { - margin-left: 13px; } -.analytics .widget-item .content.accounts-comparison .comparable-error h5 { - margin-left: 13px; - color: #ed1e79; +@media (min-width: 480px) and (max-width: 991px) { + .analytics .widget-item .content.hr-salaries-summary .right-panel .chart-container { + max-width: 320px; + } } -.analytics .widget-item .content.accounts-custom-calculation h3 { - margin-top: 85px; +.analytics .widget-item .content.hr-superannuation-accruals h3 { + margin-top: 63px; text-align: center; - font-weight: bold; } -.analytics .widget-item .content.accounts-custom-calculation .legend { - max-height: 125px; +.analytics .widget-item .content.hr-superannuation-accruals .legend { + margin-top: 23px; } -.analytics.modal-custom-calculation { - margin: 0px; - padding: 0px; +.analytics .widget-item .content.hr-superannuation-accruals .currency { + font-size: 14px; } -.analytics.modal-custom-calculation .modal-body .edit { - overflow-y: auto; - overflow-x: hidden; +.analytics .widget-item .content.hr-superannuation-accruals .price { + font-weight: 900; + font-size: 22px; color: #5B6667; - padding: 2px; - font-size: 12px; - padding: 5px; - overflow: visible; + text-align: center; + margin-top: 0px; } -.analytics.modal-custom-calculation .modal-body .edit .bottom-buttons .btn { - border-radius: 2px; - margin-right: 5px; - padding: 3px 13px; - text-transform: uppercase; - font-size: 12px; +.analytics .widget-item .content.hr-timesheets .currency { + font-size: 14px; } -.analytics.modal-custom-calculation .modal-body .edit .bottom-buttons .btn.btn-default { - background-color: #c2c4c4; - border: solid 1px #a8abab; - color: white; +.analytics .widget-item .content.hr-timesheets .widget-lines-container { + max-height: 210px; } -.analytics.modal-custom-calculation .modal-body .edit .bottom-buttons .btn.btn-default:hover { - border: solid 1px #8e9292; - background-color: #a8abab; +.analytics .widget-item .content.hr-workforce-summary h3.left { + text-align: center; } -.analytics.modal-custom-calculation .modal-body .edit h4 { - margin: 0; - margin-bottom: 8px; - text-align: left; - font-weight: normal; - font-size: 12px; - color: #c4caca; +@media (min-width: 992px) { + .analytics .widget-item .content.hr-workforce-summary h3.left { + margin-top: 69px; + } } -.analytics.modal-custom-calculation .modal-body .edit .part { - margin-bottom: 8px; - padding: 10px 0px; - background-color: #fcfcfc; - border: solid 1px #dfe2e2; +.analytics .widget-item .content.hr-workforce-summary h3.reduced-left { + text-align: center; } -.analytics.modal-custom-calculation .modal-body .edit .part h5 { - display: block; - margin: 0; +@media (min-width: 992px) { + .analytics .widget-item .content.hr-workforce-summary h3.reduced-left { + margin-top: 10px; + } +} +.analytics .widget-item .content.hr-workforce-summary h3.right { margin-bottom: 10px; - padding: 0px 15px; - text-transform: uppercase; - font-weight: normal; - font-size: 12px; - color: #c4caca; + text-align: center; } -.analytics.modal-custom-calculation .modal-body .edit .part label { - font-weight: normal; +.analytics .widget-item .content.hr-workforce-summary .price { + margin-top: 0; } -.analytics.modal-custom-calculation .modal-body .edit .part select.form-control { - margin: 0px; - border: solid 1px #acb0b1; - outline: none; - -webkit-box-shadow: none; - font-size: 13px; - color: #72728b; +.analytics .widget-item .content.hr-workforce-summary .widget-lines-container { + max-height: 75px; +} +.analytics .widget-item .content.hr-workforce-summary .widget-lines-container .widget-line { + font-size: 11px; +} +@media (min-width: 480px) and (max-width: 991px) { + .analytics .widget-item .content.hr-workforce-summary .right-panel .chart-container { + max-width: 320px; + } } -.analytics .widget-item .content.accounts-detailed-classifications { +.analytics .widget-item .content.invoices-aged-payables-receivables { min-height: 565px; } @media (min-width: 992px) { - .analytics .widget-item .content.accounts-detailed-classifications { + .analytics .widget-item .content.invoices-aged-payables-receivables { height: 565px; } - .analytics .widget-item .content.accounts-detailed-classifications .chart-container { + .analytics .widget-item .content.invoices-aged-payables-receivables .chart-container { max-width: 585px; max-height: 440px; margin: auto; } } -.analytics .widget-item .content.accounts-detailed-classifications .edit { +.analytics .widget-item .content.invoices-aged-payables-receivables .edit { max-height: 545px; } -.analytics .widget-item .content.accounts-detailed-classifications .edit .widget-lines-container { +.analytics .widget-item .content.invoices-aged-payables-receivables .edit .widget-lines-container { overflow-y: hidden; overflow-x: hidden; } -.analytics .widget-item .content.accounts-detailed-classifications .widget-lines-container { - overflow-y: scroll; - overflow-x: hidden; +.analytics .widget-item .content.invoices-aged-payables-receivables .widget-lines-container { max-height: 540px; } -.analytics .widget-item .content.accounts-detailed-classifications .account-class-title { - margin-bottom: 8px; - margin-left: 11px; +.analytics .widget-item .content.invoices-aged-payables-receivables .widget-lines-container .lines-group .widget-line { + cursor: pointer; + border: solid 1px white; } -.analytics .widget-item .content.accounts-detailed-classifications .time-period-info { - text-align: right; +.analytics .widget-item .content.invoices-aged-payables-receivables .widget-lines-container .lines-group .widget-line .selection-tag { + display: block; + right: 0px; + margin-top: -6px; + width: 10px; + height: 29px; + position: absolute; } -.analytics .widget-item .content.accounts-detailed-classifications .widget-line.header.sorting { - border-bottom: 1px solid #ccc; +.analytics .widget-item .content.invoices-aged-payables-receivables .widget-lines-container .lines-group .widget-line:hover { + background-color: #e6e0fb; } -.analytics .widget-item .content.accounts-expense-weight .legend { - text-align: left; - max-height: 115px; +.analytics .widget-item .content.invoices-aged-payables-receivables .widget-lines-container .lines-group .widget-line.no-select { + cursor: auto; } -.analytics .widget-item .content.accounts-expense-weight .legend .title { - text-align: center; +.analytics .widget-item .content.invoices-aged-payables-receivables .widget-lines-container .lines-group .widget-line.no-select:hover { + color: #626d6d; } -.analytics .widget-item .content.accounts-expenses-revenue .legend { - font-weight: bold; +.analytics .widget-item .content.invoices-aged-payables-receivables .right-panel .widget-lines-container { + overflow-y: auto; + overflow-x: hidden; + max-height: 235px; } -.analytics .widget-item .content.accounts-expenses-revenue .settings.params-checkboxes { - font-size: 12px; - margin-left: 0px; +.analytics .widget-item .content.invoices-aged-payables-receivables .no-element { + font-weight: 300; + font-size: 16px; + color: #5B6667; text-align: center; } -.analytics .widget-item .content.accounts-invoices-list { +.analytics .widget-item .content.invoices-aged-payables-receivables .right-panel .widget-lines-container { + max-height: 215px; +} +.analytics .widget-item .content.invoices-aged-payables-receivables .row.astericks-info { + margin-top: 15px; +} +.analytics .widget-item .content.invoices-aged-payables-receivables .currency-conversions { + float: right; + margin-left: 3px; +} +.analytics .widget-item .content.invoices-list .widget-lines-container { + max-height: 230px; +} +.analytics .widget-item .content.invoices-list .widget-lines-container .widget-line:nth-child(even) { + background-color: #f0f0f0; +} +.analytics .widget-item .content.invoices-list .widget-lines-container .widget-line:nth-child(odd) { + background-color: white; +} +.analytics .widget-item .content.invoices-list .widget-lines-container .widget-line.header { + background-color: white; +} +.analytics .widget-item .content.invoices-list .currency-conversions { + float: right; + margin-right: 3px; + margin-top: -2px; +} +.analytics .widget-item .content.invoices-list .fa.fa-info-circle { + float: right; + font-size: 15px; +} +.analytics .widget-item .content.invoices-list .right-column { + padding-left: 0px; + padding-right: 0px; +} +.analytics .widget-item .content.invoices-summary .chart-container { + max-width: 410px; +} +.analytics .widget-item .content.invoices-summary .legend { + max-height: 28px; +} +.analytics .widget-item .content.sales-aged { min-height: 565px; } @media (min-width: 992px) { - .analytics .widget-item .content.accounts-invoices-list { + .analytics .widget-item .content.sales-aged { height: 565px; } - .analytics .widget-item .content.accounts-invoices-list .chart-container { + .analytics .widget-item .content.sales-aged .chart-container { max-width: 585px; max-height: 440px; margin: auto; } } -.analytics .widget-item .content.accounts-invoices-list .edit { +.analytics .widget-item .content.sales-aged .edit { max-height: 545px; } -.analytics .widget-item .content.accounts-invoices-list .edit .widget-lines-container { +.analytics .widget-item .content.sales-aged .edit .widget-lines-container { overflow-y: hidden; overflow-x: hidden; } -.analytics .widget-item .content.accounts-invoices-list transactions-list { - font-size: 12px; +.analytics .widget-item .content.sales-aged .widget-lines-container { + max-height: 238px; } -.analytics .widget-item .content.accounts-live-balance h3 { +.analytics .widget-item .content.sales-break-even .price { font-weight: 900; font-size: 22px; color: #5B6667; - margin-top: 0px; - font-size: 18px; text-align: center; - text-shadow: 1px; -} -.analytics .widget-item .content.accounts-live-balance .statement-title { - font-size: 13px; - font-weight: 400; + margin-top: 0px; } -.analytics .widget-item .content.accounts-live-balance .balance-title { +.analytics .widget-item .content.sales-break-even .block { + margin: 5px; + padding: 0px 10px 5px 10px; + text-align: left; + box-shadow: 0px 7px 10px -7px #17262d; font-size: 12px; } -.analytics .widget-item .content.accounts-live-balance .currency-centered { - font-weight: 300; - font-size: 12px; +.analytics .widget-item .content.sales-break-even .block form.editable-wrap .editable-controls input { + margin-top: 5px; + width: 100px; +} +.analytics .widget-item .content.sales-break-even .block.to-date { + background-color: #f0f0f0; color: #5B6667; - text-align: center; } -.analytics .widget-item .content.accounts-live-balance .headers { - text-align: center; +.analytics .widget-item .content.sales-break-even .block.to-breakeven { + margin-top: 10px; + background-color: #192831; + color: #1de9b6; } -.analytics .widget-item .content.accounts-live-balance .spacer { - min-height: 30px; +.analytics .widget-item .content.sales-break-even .block.to-breakeven .title { + border-bottom: solid 1px #2a4453; } -.analytics .widget-item .content.accounts-live-balance .price { - font-weight: 900; - font-size: 22px; +.analytics .widget-item .content.sales-break-even .block.to-breakeven .define-text { + font-weight: 300; + font-size: 16px; color: #5B6667; text-align: center; - margin-top: 0px; -} -.analytics .widget-item .content.accounts-live-balance .negative2 { - font-size: 14px; -} -.analytics .widget-item .content.accounts-payable-receivable h3 { - text-align: center; -} -.analytics .widget-item .content.accounts-payable-receivable .legend { - font-weight: bold; + padding-top: 5px; + color: #1de9b6; } -.analytics .widget-item .content.accounts-payable-receivable .payable { - margin-top: 15px; +.analytics .widget-item .content.sales-break-even .block.to-breakeven .price { + color: #1de9b6; } -.analytics .widget-item .content.accounts-payable-receivable .price { - font-weight: 900; - font-size: 22px; - color: #5B6667; +.analytics .widget-item .content.sales-break-even .block .title { + font-size: 13px; text-align: center; - margin-top: 0px; + font-variant: small-caps; + border-bottom: solid 1px #e6edee; + font-weight: 300; } -.analytics .widget-item .content.accounts-profit-and-loss { +.analytics .widget-item .content.sales-comparison { min-height: 565px; } @media (min-width: 992px) { - .analytics .widget-item .content.accounts-profit-and-loss { + .analytics .widget-item .content.sales-comparison { height: 565px; } - .analytics .widget-item .content.accounts-profit-and-loss .chart-container { + .analytics .widget-item .content.sales-comparison .chart-container { max-width: 585px; max-height: 440px; margin: auto; } } -.analytics .widget-item .content.accounts-profit-and-loss .edit { +.analytics .widget-item .content.sales-comparison .edit { max-height: 545px; } -.analytics .widget-item .content.accounts-profit-and-loss .edit .widget-lines-container { +.analytics .widget-item .content.sales-comparison .edit .widget-lines-container { overflow-y: hidden; overflow-x: hidden; } -.analytics .widget-item .content.accounts-profit-and-loss .widget-lines-container { +.analytics .widget-item .content.sales-comparison .widget-lines-container { max-height: 540px; } -.analytics .widget-item .content.accounts-profit-and-loss .widget-lines-container .lines-group .widget-line { +.analytics .widget-item .content.sales-comparison .widget-lines-container .lines-group .widget-line { cursor: pointer; border: solid 1px white; } -.analytics .widget-item .content.accounts-profit-and-loss .widget-lines-container .lines-group .widget-line .selection-tag { +.analytics .widget-item .content.sales-comparison .widget-lines-container .lines-group .widget-line .selection-tag { display: block; right: 0px; margin-top: -6px; @@ -11059,170 +11102,102 @@ chart-threshold .attach-panel .actions button.loading { height: 29px; position: absolute; } -.analytics .widget-item .content.accounts-profit-and-loss .widget-lines-container .lines-group .widget-line:hover { +.analytics .widget-item .content.sales-comparison .widget-lines-container .lines-group .widget-line:hover { background-color: #e6e0fb; } -.analytics .widget-item .content.accounts-profit-and-loss .widget-lines-container .lines-group .widget-line.no-select { +.analytics .widget-item .content.sales-comparison .widget-lines-container .lines-group .widget-line.no-select { cursor: auto; } -.analytics .widget-item .content.accounts-profit-and-loss .widget-lines-container .lines-group .widget-line.no-select:hover { +.analytics .widget-item .content.sales-comparison .widget-lines-container .lines-group .widget-line.no-select:hover { color: #626d6d; } -.analytics .widget-item .content.accounts-profit-and-loss .right-panel .widget-lines-container { +.analytics .widget-item .content.sales-comparison .right-panel .widget-lines-container { overflow-y: auto; overflow-x: hidden; max-height: 235px; } -.analytics .widget-item .content.accounts-profit-and-loss .no-element { +.analytics .widget-item .content.sales-comparison .no-element { font-weight: 300; font-size: 16px; color: #5B6667; text-align: center; } -.analytics .widget-item .content.accounts-profit-and-loss .row.lines-group.profit { - border-top: solid 1px; - border-bottom: double; -} -.analytics .widget-item .content.accounts-profit-and-loss .right-panel .widget-lines-container { - max-height: 215px; -} -.analytics .widget-item .content.accounts-profit-and-loss .row.widget-line.header > [class*='col-'] { - position: static; -} -.analytics .widget-item .content.accounts-ratios .left-panel { - max-height: 230px; - overflow-y: auto; -} -.analytics .widget-item .content.accounts-ratios .left-panel .separator { - border-bottom: solid 1px #5B6667; - width: 75%; -} -.analytics .widget-item .content.accounts-ratios .left-panel .member { - padding-top: 20px; - padding-bottom: 20px; -} -.analytics .widget-item .content.accounts-ratios .left-panel .member .price { - margin-top: 0px; - font-size: 18px; -} -.analytics .widget-item .content.accounts-ratios .left-panel button { - outline: none; -} -.analytics .widget-item .content.accounts-ratios .left-panel.simulation .member { - padding-top: 5px; -} -.analytics .widget-item .content.accounts-ratios .left-panel.simulation .member .legend { - display: none; +.analytics .widget-item .content.sales-comparison .widget-lines-container { + max-height: 530px; } -.analytics .widget-item .content.accounts-ratios .left-panel.simulation .member .price { - text-align: right; +.analytics .widget-item .content.sales-comparison .right-panel .widget-lines-container { + max-height: 250px; } -.analytics .widget-item .content.accounts-ratios .left-panel.simulation .separator { - width: 100%; +.analytics .widget-item .content.sales-comparison .currency-conversions img { + margin-top: -2px; } -.analytics .widget-item .content.hr-employee-details { +.analytics .widget-item .content.sales-customer-details { font-size: 12px; } -.analytics .widget-item .content.hr-employee-details .details-container { +.analytics .widget-item .content.sales-customer-details .loader { + font-size: 14px; +} +.analytics .widget-item .content.sales-customer-details .details-container { padding: 0px; - max-height: none; overflow-y: auto; overflow-x: hidden; } @media (min-width: 992px) { - .analytics .widget-item .content.hr-employee-details .details-container { - max-height: 200px; + .analytics .widget-item .content.sales-customer-details .details-container { + max-height: 194px; } } @media (min-width: 992px) { - .analytics .widget-item .content.hr-employee-details .right-panel .details-container { - max-height: 220px; + .analytics .widget-item .content.sales-customer-details .right-panel .details-container { + max-height: 230px; } } -.analytics .widget-item .content.hr-employee-details .right-panel .legend { +.analytics .widget-item .content.sales-customer-details .right-panel .legend { margin-bottom: 5px; } -.analytics .widget-item .content.hr-employee-details .title { +.analytics .widget-item .content.sales-customer-details .row.title { text-align: center; margin-bottom: 10px; font-size: 14px; } -.analytics .widget-item .content.hr-employees-list .legend { - margin-bottom: 9px; -} -.analytics .widget-item .content.hr-employees-list .widget-lines-container { - text-align: center; -} -.analytics .widget-item .content.hr-employees-list .widget-lines-container .widget-line:nth-child(even) { - background-color: #f0f0f0; -} -.analytics .widget-item .content.hr-employees-list .widget-lines-container .widget-line:nth-child(odd) { - background-color: white; -} -.analytics .widget-item .content.hr-employees-list .edit .widget-lines-container { - text-align: left; -} -.analytics .widget-item .content.hr-leaves-balance .employee-name { - text-align: center; -} -.analytics .widget-item .content.hr-leaves-balance .balance { - font-weight: 900; - font-size: 22px; - color: #5B6667; - text-align: center; - margin-top: 0px; -} -.analytics .widget-item .content.hr-leaves-balance h3 { - margin-top: 33px; - text-align: center; -} -.analytics .widget-item .content.hr-leaves-schedule .fc-button { - height: 22px; - font-size: 12px; - color: #977bf0; - background: white; - outline: none; -} -.analytics .widget-item .content.hr-leaves-schedule .fc-button:hover { - color: white; - background: #977bf0; +.analytics .widget-item .content.sales-customer-details .currency-conversions { + float: left; + margin-right: 3px; } -.analytics .widget-item .content.hr-leaves-schedule .fc-toolbar { - margin-bottom: 5px; +.analytics .widget-item .content.sales-cycle .chart-container { + max-width: 410px; } -.analytics .widget-item .content.hr-leaves-schedule .fc-day-grid, -.analytics .widget-item .content.hr-leaves-schedule .fc-widget-header { - font-size: 12px; - color: #5B6667; +.analytics .widget-item .content.sales-cycle .legend { + max-height: 28px; } -.analytics .widget-item .content.hr-payroll-summary { +.analytics .widget-item .content.sales-forecast { min-height: 565px; } @media (min-width: 992px) { - .analytics .widget-item .content.hr-payroll-summary { + .analytics .widget-item .content.sales-forecast { height: 565px; } - .analytics .widget-item .content.hr-payroll-summary .chart-container { + .analytics .widget-item .content.sales-forecast .chart-container { max-width: 585px; max-height: 440px; margin: auto; } } -.analytics .widget-item .content.hr-payroll-summary .edit { +.analytics .widget-item .content.sales-forecast .edit { max-height: 545px; } -.analytics .widget-item .content.hr-payroll-summary .edit .widget-lines-container { +.analytics .widget-item .content.sales-forecast .edit .widget-lines-container { overflow-y: hidden; overflow-x: hidden; } -.analytics .widget-item .content.hr-payroll-summary .widget-lines-container { - max-height: 540px; +.analytics .widget-item .content.sales-forecast .widget-lines-container { + max-height: 275px; } -.analytics .widget-item .content.hr-payroll-summary .widget-lines-container .lines-group .widget-line { +.analytics .widget-item .content.sales-forecast .widget-lines-container .widget-line.main { cursor: pointer; border: solid 1px white; } -.analytics .widget-item .content.hr-payroll-summary .widget-lines-container .lines-group .widget-line .selection-tag { +.analytics .widget-item .content.sales-forecast .widget-lines-container .widget-line.main .selection-tag { display: block; right: 0px; margin-top: -6px; @@ -11230,148 +11205,240 @@ chart-threshold .attach-panel .actions button.loading { height: 29px; position: absolute; } -.analytics .widget-item .content.hr-payroll-summary .widget-lines-container .lines-group .widget-line:hover { +.analytics .widget-item .content.sales-forecast .widget-lines-container .widget-line.main:hover { background-color: #e6e0fb; } -.analytics .widget-item .content.hr-payroll-summary .widget-lines-container .lines-group .widget-line.no-select { +.analytics .widget-item .content.sales-forecast .widget-lines-container .widget-line.main.no-select { cursor: auto; } -.analytics .widget-item .content.hr-payroll-summary .widget-lines-container .lines-group .widget-line.no-select:hover { +.analytics .widget-item .content.sales-forecast .widget-lines-container .widget-line.main.no-select:hover { color: #626d6d; } -.analytics .widget-item .content.hr-payroll-summary .right-panel .widget-lines-container { - overflow-y: auto; - overflow-x: hidden; - max-height: 235px; -} -.analytics .widget-item .content.hr-payroll-summary .no-element { - font-weight: 300; - font-size: 16px; +.analytics .widget-item .content.sales-growth .price { + font-weight: 900; + font-size: 22px; color: #5B6667; text-align: center; + margin-top: 0px; } -.analytics .widget-item .content.hr-payroll-summary .right-panel .widget-lines-container { - max-height: 145px; +.analytics .widget-item .content.sales-growth .legend { + max-height: 49px; + font-size: 14px; + text-overflow: ellipsis; + white-space: nowrap; } -.analytics .widget-item .content.hr-salaries-summary h3.left { - text-align: center; +.analytics .widget-item .content.sales-leads-funnel { + min-height: 565px; } @media (min-width: 992px) { - .analytics .widget-item .content.hr-salaries-summary h3.left { - margin-top: 69px; + .analytics .widget-item .content.sales-leads-funnel { + height: 565px; + } + .analytics .widget-item .content.sales-leads-funnel .chart-container { + max-width: 585px; + max-height: 440px; + margin: auto; } } -.analytics .widget-item .content.hr-salaries-summary h3.reduced-left { - text-align: center; +.analytics .widget-item .content.sales-leads-funnel .edit { + max-height: 545px; } -@media (min-width: 992px) { - .analytics .widget-item .content.hr-salaries-summary h3.reduced-left { - margin-top: 10px; - } +.analytics .widget-item .content.sales-leads-funnel .edit .widget-lines-container { + overflow-y: hidden; + overflow-x: hidden; } -.analytics .widget-item .content.hr-salaries-summary h3.right { - margin-bottom: 10px; - text-align: center; +.analytics .widget-item .content.sales-leads-funnel .funnel-container { + width: 95%; + margin: auto; + margin-top: 15px; + padding-right: 10px; + max-height: 505px; + overflow: auto; } -.analytics .widget-item .content.hr-salaries-summary .price { - margin-top: 0; +.analytics .widget-item .content.sales-leads-funnel .right-panel .widget-lines-container { + max-height: 545px; + margin-right: 10px; } -.analytics .widget-item .content.hr-salaries-summary .widget-lines-container { - max-height: 75px; +.analytics .widget-item .content.sales-leads-funnel .right-panel .widget-lines-container .widget-line { + cursor: default; } -.analytics .widget-item .content.hr-salaries-summary .widget-lines-container .widget-line { - font-size: 11px; +.analytics .widget-item .content.sales-leads-list .widget-lines-container { + max-height: 230px; } -@media (min-width: 480px) and (max-width: 991px) { - .analytics .widget-item .content.hr-salaries-summary .right-panel .chart-container { - max-width: 320px; +.analytics .widget-item .content.sales-leads-list .widget-lines-container .widget-line:nth-child(even) { + background-color: #f0f0f0; +} +.analytics .widget-item .content.sales-leads-list .widget-lines-container .widget-line:nth-child(odd) { + background-color: white; +} +.analytics .widget-item .content.sales-leads-list .widget-lines-container .widget-line.header { + background-color: white; +} +.analytics .widget-item .content.sales-leads-list .widget-lines-container { + overflow-y: scroll; + overflow-x: hidden; +} +.analytics .widget-item .content.sales-list .widget-lines-container { + max-height: 230px; +} +.analytics .widget-item .content.sales-list .widget-lines-container .widget-line:nth-child(even) { + background-color: #f0f0f0; +} +.analytics .widget-item .content.sales-list .widget-lines-container .widget-line:nth-child(odd) { + background-color: white; +} +.analytics .widget-item .content.sales-list .widget-lines-container .widget-line.header { + background-color: white; +} +.analytics .widget-item .content.sales-list .widget-lines-container { + overflow-y: scroll; + overflow-x: hidden; + max-height: 170px; +} +.analytics .widget-item .content.sales-list .widget-lines-container.no-scroll { + overflow: visible; +} +.analytics .widget-item .content.sales-list .selector { + margin-bottom: 4px; +} +.analytics .widget-item .content.sales-list .currency-conversions img { + margin-top: -2px; +} +.analytics .widget-item .content.sales-net-sales .value-container, +.analytics .widget-item .content.sales-net-sales .operator { + line-height: 85px; +} +.analytics .widget-item .content.sales-net-sales .value-container .title { + line-height: 20px; + font-size: 1.2em; + padding: 10px 0px; +} +.analytics .widget-item .content.sales-net-sales .value-container .value-box { + font-size: 1.3em; + border-radius: 10px; + border-top: solid 1px #C4CACA; + border-bottom: solid 1px #C4CACA; + white-space: nowrap; +} +.analytics .widget-item .content.sales-net-sales .operator { + padding-top: 38px; + font-size: 1.3em; +} +@media (min-width: 992px) { + .analytics .widget-item .content.sales-net-sales .values { + margin-top: 25px; } } -.analytics .widget-item .content.hr-superannuation-accruals h3 { - margin-top: 63px; - text-align: center; +.analytics .widget-item .content.sales-new-vs-existing-customers .selector .selector-wrap { + display: inline-block; + margin: 0 5px; } -.analytics .widget-item .content.hr-superannuation-accruals .legend { - margin-top: 23px; +.analytics .widget-item .content.sales-new-vs-existing-customers .chart-container { + margin-top: 15px; } -.analytics .widget-item .content.hr-superannuation-accruals .currency { - font-size: 14px; +.analytics .widget-item .content.sales-new-vs-existing-customers .legend { + margin-top: 5px; + font-weight: bold; + max-height: 77px !important; } -.analytics .widget-item .content.hr-superannuation-accruals .price { - font-weight: 900; - font-size: 22px; - color: #5B6667; - text-align: center; - margin-top: 0px; +.analytics .widget-item .content.sales-new-vs-existing-customers .legend .row { + margin: 0px -5px; } -.analytics .widget-item .content.hr-timesheets .currency { +.analytics .widget-item .content.sales-new-vs-existing-customers .legend .row > div { + padding: 0px 5px; +} +.analytics .widget-item .content.sales-new-vs-existing-customers .legend .total { + color: #5B6667; font-size: 14px; } -.analytics .widget-item .content.hr-timesheets .widget-lines-container { - max-height: 210px; +.analytics .widget-item .content.sales-number-of-leads .stats { + margin-top: 35px; + font-size: 18px; +} +.analytics .widget-item .content.sales-number-of-leads .stats .stat { + margin: 15px 0px 10px 0px; + border-bottom: solid 1px #e6edee; +} +.analytics .widget-item .content.sales-number-of-leads .stats .stat span.title { + font-weight: bold; } -.analytics .widget-item .content.hr-workforce-summary h3.left { - text-align: center; +.analytics .widget-item .content.sales-number-of-leads .stats .stat span.nominal { + float: right; + text-align: right; + font-weight: 300; } -@media (min-width: 992px) { - .analytics .widget-item .content.hr-workforce-summary h3.left { - margin-top: 69px; - } +.analytics .widget-item .content.sales-number-of-leads .stats .stat span.variation { + float: right; + width: 50px; + text-align: right; + font-style: italic; + font-size: 14px; + font-weight: 300; + margin-top: 2px; } -.analytics .widget-item .content.hr-workforce-summary h3.reduced-left { - text-align: center; +.analytics .widget-item .content.sales-opportunities-funnel { + min-height: 565px; } @media (min-width: 992px) { - .analytics .widget-item .content.hr-workforce-summary h3.reduced-left { - margin-top: 10px; + .analytics .widget-item .content.sales-opportunities-funnel { + height: 565px; + } + .analytics .widget-item .content.sales-opportunities-funnel .chart-container { + max-width: 585px; + max-height: 440px; + margin: auto; } } -.analytics .widget-item .content.hr-workforce-summary h3.right { - margin-bottom: 10px; - text-align: center; +.analytics .widget-item .content.sales-opportunities-funnel .edit { + max-height: 545px; } -.analytics .widget-item .content.hr-workforce-summary .price { - margin-top: 0; +.analytics .widget-item .content.sales-opportunities-funnel .edit .widget-lines-container { + overflow-y: hidden; + overflow-x: hidden; } -.analytics .widget-item .content.hr-workforce-summary .widget-lines-container { - max-height: 75px; +.analytics .widget-item .content.sales-opportunities-funnel .funnel-container { + width: 95%; + margin: auto; + margin-top: 15px; + padding-right: 10px; + max-height: 505px; + overflow: auto; } -.analytics .widget-item .content.hr-workforce-summary .widget-lines-container .widget-line { - font-size: 11px; +.analytics .widget-item .content.sales-opportunities-funnel .right-panel .widget-lines-container { + max-height: 545px; + margin-right: 10px; } -@media (min-width: 480px) and (max-width: 991px) { - .analytics .widget-item .content.hr-workforce-summary .right-panel .chart-container { - max-width: 320px; - } +.analytics .widget-item .content.sales-opportunities-funnel .right-panel .widget-lines-container .widget-line { + cursor: default; } -.analytics .widget-item .content.invoices-aged-payables-receivables { +.analytics .widget-item .content.sales-performance { min-height: 565px; } @media (min-width: 992px) { - .analytics .widget-item .content.invoices-aged-payables-receivables { + .analytics .widget-item .content.sales-performance { height: 565px; } - .analytics .widget-item .content.invoices-aged-payables-receivables .chart-container { + .analytics .widget-item .content.sales-performance .chart-container { max-width: 585px; max-height: 440px; margin: auto; } } -.analytics .widget-item .content.invoices-aged-payables-receivables .edit { +.analytics .widget-item .content.sales-performance .edit { max-height: 545px; } -.analytics .widget-item .content.invoices-aged-payables-receivables .edit .widget-lines-container { +.analytics .widget-item .content.sales-performance .edit .widget-lines-container { overflow-y: hidden; overflow-x: hidden; } -.analytics .widget-item .content.invoices-aged-payables-receivables .widget-lines-container { +.analytics .widget-item .content.sales-performance .widget-lines-container { max-height: 540px; } -.analytics .widget-item .content.invoices-aged-payables-receivables .widget-lines-container .lines-group .widget-line { +.analytics .widget-item .content.sales-performance .widget-lines-container .lines-group .widget-line { cursor: pointer; border: solid 1px white; } -.analytics .widget-item .content.invoices-aged-payables-receivables .widget-lines-container .lines-group .widget-line .selection-tag { +.analytics .widget-item .content.sales-performance .widget-lines-container .lines-group .widget-line .selection-tag { display: block; right: 0px; margin-top: -6px; @@ -11379,666 +11446,604 @@ chart-threshold .attach-panel .actions button.loading { height: 29px; position: absolute; } -.analytics .widget-item .content.invoices-aged-payables-receivables .widget-lines-container .lines-group .widget-line:hover { +.analytics .widget-item .content.sales-performance .widget-lines-container .lines-group .widget-line:hover { background-color: #e6e0fb; } -.analytics .widget-item .content.invoices-aged-payables-receivables .widget-lines-container .lines-group .widget-line.no-select { +.analytics .widget-item .content.sales-performance .widget-lines-container .lines-group .widget-line.no-select { cursor: auto; } -.analytics .widget-item .content.invoices-aged-payables-receivables .widget-lines-container .lines-group .widget-line.no-select:hover { +.analytics .widget-item .content.sales-performance .widget-lines-container .lines-group .widget-line.no-select:hover { color: #626d6d; } -.analytics .widget-item .content.invoices-aged-payables-receivables .right-panel .widget-lines-container { +.analytics .widget-item .content.sales-performance .right-panel .widget-lines-container { overflow-y: auto; overflow-x: hidden; max-height: 235px; } -.analytics .widget-item .content.invoices-aged-payables-receivables .no-element { +.analytics .widget-item .content.sales-performance .no-element { font-weight: 300; font-size: 16px; color: #5B6667; text-align: center; } -.analytics .widget-item .content.invoices-aged-payables-receivables .right-panel .widget-lines-container { +.analytics .widget-item .content.sales-performance .right-panel .widget-lines-container { max-height: 215px; } -.analytics .widget-item .content.invoices-aged-payables-receivables .row.astericks-info { - margin-top: 15px; -} -.analytics .widget-item .content.invoices-aged-payables-receivables .currency-conversions { - float: right; - margin-left: 3px; -} -.analytics .widget-item .content.invoices-list .widget-lines-container { - max-height: 230px; -} -.analytics .widget-item .content.invoices-list .widget-lines-container .widget-line:nth-child(even) { - background-color: #f0f0f0; -} -.analytics .widget-item .content.invoices-list .widget-lines-container .widget-line:nth-child(odd) { - background-color: white; -} -.analytics .widget-item .content.invoices-list .widget-lines-container .widget-line.header { - background-color: white; -} -.analytics .widget-item .content.invoices-list .currency-conversions { - float: right; - margin-right: 3px; - margin-top: -2px; -} -.analytics .widget-item .content.invoices-list .fa.fa-info-circle { - float: right; - font-size: 15px; -} -.analytics .widget-item .content.invoices-list .right-column { - padding-left: 0px; - padding-right: 0px; -} -.analytics .widget-item .content.invoices-summary .chart-container { - max-width: 410px; +.analytics .widget-item .content.sales-performance .right-panel .widget-lines-container .widget-line.header { + cursor: pointer; + border: solid 1px white; } -.analytics .widget-item .content.invoices-summary .legend { - max-height: 28px; +.analytics .widget-item .content.sales-performance .right-panel .widget-lines-container .widget-line.header .selection-tag { + display: block; + right: 0px; + margin-top: -6px; + width: 10px; + height: 29px; + position: absolute; } -.analytics .widget-item .content.sales-aged { - min-height: 565px; +.analytics .widget-item .content.sales-performance .right-panel .widget-lines-container .widget-line.header:hover { + background-color: #e6e0fb; } -@media (min-width: 992px) { - .analytics .widget-item .content.sales-aged { - height: 565px; - } - .analytics .widget-item .content.sales-aged .chart-container { - max-width: 585px; - max-height: 440px; - margin: auto; - } +.analytics .widget-item .content.sales-performance .right-panel .widget-lines-container .widget-line.header.no-select { + cursor: auto; } -.analytics .widget-item .content.sales-aged .edit { - max-height: 545px; +.analytics .widget-item .content.sales-performance .right-panel .widget-lines-container .widget-line.header.no-select:hover { + color: #626d6d; } -.analytics .widget-item .content.sales-aged .edit .widget-lines-container { - overflow-y: hidden; - overflow-x: hidden; +.analytics .widget-item .content.sales-segmented-turnover h3.right { + margin-top: 55px; + text-align: center; } -.analytics .widget-item .content.sales-aged .widget-lines-container { - max-height: 238px; +.analytics .widget-item .content.sales-segmented-turnover .selector { + margin-bottom: 10px; } -.analytics .widget-item .content.sales-break-even .price { +.analytics .widget-item .content.sales-segmented-turnover .analysis { font-weight: 900; font-size: 22px; color: #5B6667; text-align: center; margin-top: 0px; } -.analytics .widget-item .content.sales-break-even .block { - margin: 5px; - padding: 0px 10px 5px 10px; - text-align: left; - box-shadow: 0px 7px 10px -7px #17262d; - font-size: 12px; -} -.analytics .widget-item .content.sales-break-even .block form.editable-wrap .editable-controls input { - margin-top: 5px; - width: 100px; -} -.analytics .widget-item .content.sales-break-even .block.to-date { - background-color: #f0f0f0; - color: #5B6667; -} -.analytics .widget-item .content.sales-break-even .block.to-breakeven { - margin-top: 10px; - background-color: #192831; - color: #1de9b6; -} -.analytics .widget-item .content.sales-break-even .block.to-breakeven .title { - border-bottom: solid 1px #2a4453; -} -.analytics .widget-item .content.sales-break-even .block.to-breakeven .define-text { - font-weight: 300; - font-size: 16px; - color: #5B6667; - text-align: center; - padding-top: 5px; - color: #1de9b6; +.analytics .widget-item .content.sales-segmented-turnover .widget-lines-container { + max-height: 75px; } -.analytics .widget-item .content.sales-break-even .block.to-breakeven .price { - color: #1de9b6; +.analytics .widget-item .content.sales-segmented-turnover .widget-lines-container .widget-line { + font-size: 11px; } -.analytics .widget-item .content.sales-break-even .block .title { - font-size: 13px; +.analytics .widget-item .content.sales-segmented-turnover .right-panel h3 { + margin: 15px 10px 5px 10px; text-align: center; - font-variant: small-caps; - border-bottom: solid 1px #e6edee; - font-weight: 300; -} -.analytics .widget-item .content.sales-comparison { - min-height: 565px; -} -@media (min-width: 992px) { - .analytics .widget-item .content.sales-comparison { - height: 565px; - } - .analytics .widget-item .content.sales-comparison .chart-container { - max-width: 585px; - max-height: 440px; - margin: auto; - } -} -.analytics .widget-item .content.sales-comparison .edit { - max-height: 545px; -} -.analytics .widget-item .content.sales-comparison .edit .widget-lines-container { - overflow-y: hidden; - overflow-x: hidden; -} -.analytics .widget-item .content.sales-comparison .widget-lines-container { - max-height: 540px; -} -.analytics .widget-item .content.sales-comparison .widget-lines-container .lines-group .widget-line { - cursor: pointer; - border: solid 1px white; } -.analytics .widget-item .content.sales-comparison .widget-lines-container .lines-group .widget-line .selection-tag { - display: block; - right: 0px; - margin-top: -6px; - width: 10px; - height: 29px; - position: absolute; +.analytics .widget-item .content.sales-segmented-turnover .right-panel .fa.fa-info-circle { + float: left; } -.analytics .widget-item .content.sales-comparison .widget-lines-container .lines-group .widget-line:hover { - background-color: #e6e0fb; +.analytics .widget-item .content.sales-summary .chart-container { + max-width: 410px; } -.analytics .widget-item .content.sales-comparison .widget-lines-container .lines-group .widget-line.no-select { - cursor: auto; +.analytics .widget-item .content.sales-summary .legend { + max-height: 28px; } -.analytics .widget-item .content.sales-comparison .widget-lines-container .lines-group .widget-line.no-select:hover { - color: #626d6d; +.analytics .widget-item .content.sales-summary .selector { + margin-bottom: 5px; } -.analytics .widget-item .content.sales-comparison .right-panel .widget-lines-container { - overflow-y: auto; - overflow-x: hidden; - max-height: 235px; +.analytics .widget-item .content.sales-top-customers .selector { + border-bottom: dashed 1px #E6E6E6; + padding-bottom: 3px; } -.analytics .widget-item .content.sales-comparison .no-element { - font-weight: 300; - font-size: 16px; - color: #5B6667; - text-align: center; +.analytics .widget-item .content.sales-top-customers .selector a { + font-weight: normal; } -.analytics .widget-item .content.sales-comparison .widget-lines-container { - max-height: 530px; +.analytics .widget-item .content.sales-top-customers .selector .param-selector { + display: inline-block; } -.analytics .widget-item .content.sales-comparison .right-panel .widget-lines-container { - max-height: 250px; +.analytics .widget-item .content.sales-top-customers .widget-lines-container { + max-height: 235px; } -.analytics .widget-item .content.sales-comparison .currency-conversions img { - margin-top: -2px; +.analytics .widget-item .content.sales-top-customers .widget-lines-container .widget-line.sub-line { + background-color: #f0f0f0; } -.analytics .widget-item .content.sales-customer-details { - font-size: 12px; +.analytics .widget-item .content.sales-top-customers .widget-lines-container .row > [class*='col-'] { + position: static; } -.analytics .widget-item .content.sales-customer-details .loader { - font-size: 14px; +.analytics .widget-item .content.sales-top-customers .currency-conversions img { + margin-top: -2px; } -.analytics .widget-item .content.sales-customer-details .details-container { - padding: 0px; +.analytics .widget-item .content.sales-top-opportunities .opps-container { + max-height: 195px; + margin-top: 10px; + padding-right: 10px; overflow-y: auto; overflow-x: hidden; } -@media (min-width: 992px) { - .analytics .widget-item .content.sales-customer-details .details-container { - max-height: 194px; - } -} -@media (min-width: 992px) { - .analytics .widget-item .content.sales-customer-details .right-panel .details-container { - max-height: 230px; - } -} -.analytics .widget-item .content.sales-customer-details .right-panel .legend { - margin-bottom: 5px; +.analytics .widget-item .content.sales-top-opportunities .opps-container .tile { + height: 40px; + font-size: 13px; + font-weight: 300; } -.analytics .widget-item .content.sales-customer-details .row.title { +.analytics .widget-item .content.sales-top-opportunities .opps-container .tile .colored-area { + width: 10%; text-align: center; - margin-bottom: 10px; - font-size: 14px; + font-size: 20px; } -.analytics .widget-item .content.sales-customer-details .currency-conversions { - float: left; - margin-right: 3px; +.analytics .widget-item .content.sales-top-opportunities .opps-container .tile .main-text { + color: #5B6667; + padding: 3px 0px 0px 10px; } -.analytics .widget-item .content.sales-cycle .chart-container { - max-width: 410px; +.analytics .widget-item .content.sales-top-opportunities .opps-container .tile.first { + height: 55px; + font-size: 15px; + font-weight: bold; } -.analytics .widget-item .content.sales-cycle .legend { - max-height: 28px; +.analytics .widget-item .content.sales-top-opportunities .opps-container .tile.first .colored-area { + font-size: 26px; + padding-top: 10px; + background-color: #ff6e41; } -.analytics .widget-item .content.sales-forecast { - min-height: 565px; +.analytics .widget-item .content.sales-top-opportunities .opps-container .tile.first .main-text { + padding-top: 8px; } -@media (min-width: 992px) { - .analytics .widget-item .content.sales-forecast { - height: 565px; - } - .analytics .widget-item .content.sales-forecast .chart-container { - max-width: 585px; - max-height: 440px; - margin: auto; - } +.analytics .widget-item .content.sales-top-opportunities .opps-container .tile.second { + height: 55px; + font-size: 15px; + font-weight: 500; } -.analytics .widget-item .content.sales-forecast .edit { - max-height: 545px; +.analytics .widget-item .content.sales-top-opportunities .opps-container .tile.second .colored-area { + font-size: 26px; + padding-top: 10px; + background-color: #1de9b6; } -.analytics .widget-item .content.sales-forecast .edit .widget-lines-container { - overflow-y: hidden; - overflow-x: hidden; +.analytics .widget-item .content.sales-top-opportunities .opps-container .tile.second .main-text { + padding-top: 8px; } -.analytics .widget-item .content.sales-forecast .widget-lines-container { - max-height: 275px; +.analytics .widget-item .content .settings.select-account { + padding: 0px 5px; } -.analytics .widget-item .content.sales-forecast .widget-lines-container .widget-line.main { - cursor: pointer; - border: solid 1px white; +.analytics .settings.accounting-behaviour .btn.btn-primary { + background-color: #bba9f5; + border: solid 1px #977bf0; } -.analytics .widget-item .content.sales-forecast .widget-lines-container .widget-line.main .selection-tag { - display: block; - right: 0px; - margin-top: -6px; - width: 10px; - height: 29px; - position: absolute; +.analytics .settings.accounting-behaviour .btn.btn-primary.focus, +.analytics .settings.accounting-behaviour .btn.btn-primary.active { + background-color: #977bf0; } -.analytics .widget-item .content.sales-forecast .widget-lines-container .widget-line.main:hover { - background-color: #e6e0fb; +.analytics .settings.attach-kpis .attach-kpi { + padding: 8px 5px; } -.analytics .widget-item .content.sales-forecast .widget-lines-container .widget-line.main.no-select { - cursor: auto; +.analytics .settings.attach-kpis .attach-kpi form .row { + padding-bottom: 5px; } -.analytics .widget-item .content.sales-forecast .widget-lines-container .widget-line.main.no-select:hover { - color: #626d6d; +.analytics .settings.attach-kpis .attach-kpi .attach-kpi-form { + background-color: white; + border: 1px solid #ddd; + padding: 5px; } -.analytics .widget-item .content.sales-growth .price { - font-weight: 900; - font-size: 22px; - color: #5B6667; - text-align: center; - margin-top: 0px; +.analytics .settings.attach-kpis .attach-kpi form .row.kpi-description { + padding: 10px 2px; } -.analytics .widget-item .content.sales-growth .legend { - max-height: 49px; - font-size: 14px; - text-overflow: ellipsis; - white-space: nowrap; +.analytics .settings.attach-kpis .attach-kpi form .row.kpi-description span { + display: block; + font-weight: bold; + font-size: 13px; } -.analytics .widget-item .content.sales-leads-funnel { - min-height: 565px; +.analytics .settings.attach-kpis .attach-kpi form.attach-kpi-form input.attach-target { + background-color: white; + height: inherit; } -@media (min-width: 992px) { - .analytics .widget-item .content.sales-leads-funnel { - height: 565px; - } - .analytics .widget-item .content.sales-leads-funnel .chart-container { - max-width: 585px; - max-height: 440px; - margin: auto; - } +.analytics .settings.attach-kpis .attach-kpi .error-messages { + color: #e01f74; + width: 120px; } -.analytics .widget-item .content.sales-leads-funnel .edit { - max-height: 545px; +.analytics .settings.attach-kpis .attached-kpis { + padding: 5px; } -.analytics .widget-item .content.sales-leads-funnel .edit .widget-lines-container { - overflow-y: hidden; - overflow-x: hidden; +.analytics .settings.attach-kpis .list-group-item.attached-kpi { + padding: 5px 10px; } -.analytics .widget-item .content.sales-leads-funnel .funnel-container { - width: 95%; - margin: auto; - margin-top: 15px; - padding-right: 10px; - max-height: 505px; - overflow: auto; +.analytics .settings.attach-kpis .list-group-item.attached-kpi .attached-kpi-name { + overflow: hidden; + width: 75%; + display: inline-block; + white-space: nowrap; + text-overflow: ellipsis; + margin-top: 3px; + font-size: 13px; + font-weight: bold; } -.analytics .widget-item .content.sales-leads-funnel .right-panel .widget-lines-container { - max-height: 545px; - margin-right: 10px; +.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions { + padding-top: 2px; } -.analytics .widget-item .content.sales-leads-funnel .right-panel .widget-lines-container .widget-line { - cursor: default; +.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions .alerts-config { + display: inline-block; + text-align: left; + padding-left: 4px; + height: 20px; + border-radius: 40px; + width: 21px; + color: #358fdc; + background-color: white; + border: solid 1px #358fdc; } -.analytics .widget-item .content.sales-leads-list .widget-lines-container { - max-height: 230px; +.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions .alerts-config:hover { + cursor: pointer; } -.analytics .widget-item .content.sales-leads-list .widget-lines-container .widget-line:nth-child(even) { - background-color: #f0f0f0; +.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions .edit-attached-kpi { + display: inline-block; } -.analytics .widget-item .content.sales-leads-list .widget-lines-container .widget-line:nth-child(odd) { +.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions .edit-attached-kpi i { + border-radius: 10px; + width: 21px; + color: #358fdc; background-color: white; + height: 20px; + padding: 3px 5px 5px 5px; + border: solid 1px #358fdc; } -.analytics .widget-item .content.sales-leads-list .widget-lines-container .widget-line.header { +.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions .edit-attached-kpi i:hover { + cursor: pointer; +} +.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions .remove-attached-kpi { + display: inline-block; +} +.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions .remove-attached-kpi i { + border-radius: 10px; + width: 21px; + color: #e01f74; background-color: white; + height: 20px; + padding: 3px 5px 5px 5px; + border: solid 1px #e01f74; } -.analytics .widget-item .content.sales-leads-list .widget-lines-container { - overflow-y: scroll; - overflow-x: hidden; +.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions .remove-attached-kpi i:hover { + cursor: pointer; } -.analytics .widget-item .content.sales-list .widget-lines-container { - max-height: 230px; +.analytics .widget-item .content .settings.select-account { + padding: 0px 5px; } -.analytics .widget-item .content.sales-list .widget-lines-container .widget-line:nth-child(even) { - background-color: #f0f0f0; +.analytics .widget-item .content .settings.chart-filters .row { + margin: 0px; } -.analytics .widget-item .content.sales-list .widget-lines-container .widget-line:nth-child(odd) { - background-color: white; +.analytics .widget-item .content .settings.chart-filters input[type="radio"] { + margin: 0; + margin-right: 3px; + padding: 0; + width: 13px; + height: 13px; + vertical-align: middle; + position: relative; + top: -1px; + outline: none; } -.analytics .widget-item .content.sales-list .widget-lines-container .widget-line.header { - background-color: white; +.analytics .widget-item .content .settings.chart-filters input[type="range"] { + height: auto; + width: 100%; } -.analytics .widget-item .content.sales-list .widget-lines-container { - overflow-y: scroll; - overflow-x: hidden; - max-height: 170px; +.analytics .settings.dates-picker h5 { + display: none; } -.analytics .widget-item .content.sales-list .widget-lines-container.no-scroll { - overflow: visible; +.analytics .settings.dates-picker button.btn.btn-sm { + line-height: 1; } -.analytics .widget-item .content.sales-list .selector { - margin-bottom: 4px; +.analytics .settings.dates-picker button.btn.btn-sm.date-button { + margin: 0px 5px; } -.analytics .widget-item .content.sales-list .currency-conversions img { - margin-top: -2px; +.analytics .settings.dates-picker button.btn.btn-sm.btn-danger { + display: none; } -.analytics .widget-item .content.sales-net-sales .value-container, -.analytics .widget-item .content.sales-net-sales .operator { - line-height: 85px; +.analytics .settings.dates-picker button.btn.btn-sm.btn-info { + border-radius: 3px; } -.analytics .widget-item .content.sales-net-sales .value-container .title { - line-height: 20px; - font-size: 1.2em; - padding: 10px 0px; +.analytics .settings.dates-picker .tooltip-inner { + text-transform: none; } -.analytics .widget-item .content.sales-net-sales .value-container .value-box { - font-size: 1.3em; - border-radius: 10px; - border-top: solid 1px #C4CACA; - border-bottom: solid 1px #C4CACA; - white-space: nowrap; +.analytics .settings.dates-picker .dropdown-menu > li > div > table { + outline: none; } -.analytics .widget-item .content.sales-net-sales .operator { - padding-top: 38px; - font-size: 1.3em; +.analytics .settings.forecast-payroll .widget-lines-container .widget-line { + padding: 5px 10px 5px 18px; } -@media (min-width: 992px) { - .analytics .widget-item .content.sales-net-sales .values { - margin-top: 25px; - } +.analytics .settings.forecast-payroll .widget-lines-container .widget-line:nth-child(even) { + background-color: #f3f4f4; } -.analytics .widget-item .content.sales-new-vs-existing-customers .selector .selector-wrap { - display: inline-block; - margin: 0 5px; +.analytics .settings.forecast-payroll .widget-lines-container .widget-line:nth-child(odd) { + background-color: white; } -.analytics .widget-item .content.sales-new-vs-existing-customers .chart-container { - margin-top: 15px; +.analytics .settings.forecast-payroll .widget-lines-container .widget-line .fa { + float: right; + font-size: 20px; + cursor: pointer; } -.analytics .widget-item .content.sales-new-vs-existing-customers .legend { - margin-top: 5px; - font-weight: bold; - max-height: 77px !important; +.analytics .settings.forecast-payroll .widget-lines-container .widget-line .fa.fa-toggle-on { + color: #977bf0; } -.analytics .widget-item .content.sales-new-vs-existing-customers .legend .row { - margin: 0px -5px; +.analytics .settings.forecast-payroll .widget-lines-container .widget-line .fa.fa-toggle-off { + color: #9ba6a7; } -.analytics .widget-item .content.sales-new-vs-existing-customers .legend .row > div { - padding: 0px 5px; +.analytics .widget-item .content .settings.hist-mode-choser { + max-height: 70px; } -.analytics .widget-item .content.sales-new-vs-existing-customers .legend .total { - color: #5B6667; - font-size: 14px; +.analytics .widget-item .content .settings.hist-mode-choser [common-time-period-info] { + padding-bottom: 8px; } -.analytics .widget-item .content.sales-number-of-leads .stats { - margin-top: 35px; - font-size: 18px; +.analytics .widget-item .content .settings.hist-mode-choser .options { + width: 150px; + margin: auto; + padding-bottom: 8px; + border-bottom: solid 1px #e6e6e6; + font-weight: 500; + font-size: 12px; + color: #c4caca; } -.analytics .widget-item .content.sales-number-of-leads .stats .stat { - margin: 15px 0px 10px 0px; - border-bottom: solid 1px #e6edee; +.analytics .widget-item .content .settings.hist-mode-choser .options a { + font-weight: 500; + font-size: 12px; + color: #c4caca; + text-transform: uppercase; } -.analytics .widget-item .content.sales-number-of-leads .stats .stat span.title { - font-weight: bold; +.analytics .widget-item .content .settings.hist-mode-choser .options a.active { + color: #977bf0; } -.analytics .widget-item .content.sales-number-of-leads .stats .stat span.nominal { - float: right; - text-align: right; - font-weight: 300; +.analytics .widget-item .content .settings.hist-mode-choser .arrow-container { + width: 28px; + height: 28px; + position: relative; + top: -14px; + margin: auto; } -.analytics .widget-item .content.sales-number-of-leads .stats .stat span.variation { - float: right; - width: 50px; - text-align: right; - font-style: italic; - font-size: 14px; - font-weight: 300; - margin-top: 2px; +.analytics .widget-item .content .settings.hist-mode-choser .arrow-container.right { + left: 46px; } -.analytics .widget-item .content.sales-opportunities-funnel { - min-height: 565px; +.analytics .widget-item .content .settings.hist-mode-choser .arrow-container.left { + left: -30px; } -@media (min-width: 992px) { - .analytics .widget-item .content.sales-opportunities-funnel { - height: 565px; - } - .analytics .widget-item .content.sales-opportunities-funnel .chart-container { - max-width: 585px; - max-height: 440px; - margin: auto; - } +.analytics .widget-item .content .settings.hist-mode-choser .arrow-container .arrow-border { + border-top: 14px solid #e6e6e6; + border-left: 14px solid transparent; + border-right: 14px solid transparent; + width: 0px; + height: 0px; } -.analytics .widget-item .content.sales-opportunities-funnel .edit { - max-height: 545px; +.analytics .widget-item .content .settings.hist-mode-choser .arrow-container .arrow { + border-top: 14px solid white; + border-left: 14px solid transparent; + border-right: 14px solid transparent; + position: relative; + top: 12px; + width: 0px; + height: 0px; } -.analytics .widget-item .content.sales-opportunities-funnel .edit .widget-lines-container { - overflow-y: hidden; - overflow-x: hidden; +.analytics .settings.limit-entries { + color: #1E303B; + text-transform: uppercase; + text-align: center; + border-bottom: dashed 1px #E6E6E6; + padding-bottom: 8px; } -.analytics .widget-item .content.sales-opportunities-funnel .funnel-container { - width: 95%; - margin: auto; - margin-top: 15px; - padding-right: 10px; - max-height: 505px; - overflow: auto; +.analytics .settings.limit-entries a.option.badge { + color: white; + background-color: #1E303B; } -.analytics .widget-item .content.sales-opportunities-funnel .right-panel .widget-lines-container { - max-height: 545px; - margin-right: 10px; +.analytics .settings.offsets .offset-value { + font-style: italic; + font-size: 13px; } -.analytics .widget-item .content.sales-opportunities-funnel .right-panel .widget-lines-container .widget-line { - cursor: default; +.analytics .settings.offsets .offset-value .fa-trash-o { + margin-left: 10px; } -.analytics .widget-item .content.sales-performance { - min-height: 565px; +.analytics .settings.offsets .offset-value .fa-trash-o:hover { + color: #e01f74; + cursor: pointer; } -@media (min-width: 992px) { - .analytics .widget-item .content.sales-performance { - height: 565px; - } - .analytics .widget-item .content.sales-performance .chart-container { - max-width: 585px; - max-height: 440px; - margin: auto; - } +.analytics .settings.offsets input { + width: 75%; } -.analytics .widget-item .content.sales-performance .edit { - max-height: 545px; +.analytics .settings.offsets button { + width: 30px; } -.analytics .widget-item .content.sales-performance .edit .widget-lines-container { - overflow-y: hidden; - overflow-x: hidden; +.analytics .settings.organizations .widget-lines-container .widget-line { + padding: 5px 10px 5px 18px; } -.analytics .widget-item .content.sales-performance .widget-lines-container { - max-height: 540px; +.analytics .settings.organizations .widget-lines-container .widget-line:nth-child(even) { + background-color: #f3f4f4; } -.analytics .widget-item .content.sales-performance .widget-lines-container .lines-group .widget-line { +.analytics .settings.organizations .widget-lines-container .widget-line:nth-child(odd) { + background-color: white; +} +.analytics .settings.organizations .widget-lines-container .widget-line .fa { + float: right; + font-size: 20px; cursor: pointer; - border: solid 1px white; } -.analytics .widget-item .content.sales-performance .widget-lines-container .lines-group .widget-line .selection-tag { - display: block; - right: 0px; - margin-top: -6px; - width: 10px; - height: 29px; - position: absolute; +.analytics .settings.organizations .widget-lines-container .widget-line .fa.fa-toggle-on, +.analytics .settings.organizations .widget-lines-container .widget-line .fa.fa-check-circle { + color: #977bf0; } -.analytics .widget-item .content.sales-performance .widget-lines-container .lines-group .widget-line:hover { - background-color: #e6e0fb; +.analytics .settings.organizations .widget-lines-container .widget-line .fa.fa-toggle-off, +.analytics .settings.organizations .widget-lines-container .widget-line .fa.fa-circle-thin { + color: #9ba6a7; } -.analytics .widget-item .content.sales-performance .widget-lines-container .lines-group .widget-line.no-select { - cursor: auto; +.analytics .widget-item .content .settings.param-selector { + display: inline-block; } -.analytics .widget-item .content.sales-performance .widget-lines-container .lines-group .widget-line.no-select:hover { - color: #626d6d; +.analytics .widget-item .content .settings.param-selector.classic { + width: 100%; } -.analytics .widget-item .content.sales-performance .right-panel .widget-lines-container { +.analytics .widget-item .content .settings.param-selector.classic select { + width: 100%; + height: 25px; + border: 1px solid #ccc; + text-transform: uppercase; + margin: 0px 0px 5px 0px; +} +.analytics .widget-item .content .settings.param-selector a { + font-weight: normal; + color: #977bf0; + white-space: nowrap; +} +.analytics .widget-item .content .settings.param-selector .options-container { + position: absolute; + background-color: white; + text-align: left; + min-width: 150px; + max-height: 200px; + z-index: 999; overflow-y: auto; overflow-x: hidden; - max-height: 235px; -} -.analytics .widget-item .content.sales-performance .no-element { - font-weight: 300; - font-size: 16px; - color: #5B6667; - text-align: center; + box-shadow: #000000 0px 3px 15px -3px; } -.analytics .widget-item .content.sales-performance .right-panel .widget-lines-container { - max-height: 215px; +.analytics .widget-item .content .settings.param-selector .options-container .param-selector-label { + padding: 3px 5px; + font-weight: 500; + font-size: inherit; + color: black; + cursor: text; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + line-height: 1.9; } -.analytics .widget-item .content.sales-performance .right-panel .widget-lines-container .widget-line.header { +.analytics .widget-item .content .settings.param-selector .options-container .param-selector-label:hover { cursor: pointer; - border: solid 1px white; -} -.analytics .widget-item .content.sales-performance .right-panel .widget-lines-container .widget-line.header .selection-tag { - display: block; - right: 0px; - margin-top: -6px; - width: 10px; - height: 29px; - position: absolute; -} -.analytics .widget-item .content.sales-performance .right-panel .widget-lines-container .widget-line.header:hover { - background-color: #e6e0fb; + background-color: #977bf0; + color: white; } -.analytics .widget-item .content.sales-performance .right-panel .widget-lines-container .widget-line.header.no-select { - cursor: auto; +.analytics .widget-item .content .settings.param-selector .options-container::-webkit-scrollbar { + width: 8px; + background-color: #d7e2e4; } -.analytics .widget-item .content.sales-performance .right-panel .widget-lines-container .widget-line.header.no-select:hover { - color: #626d6d; +.analytics .widget-item .content .settings.param-selector .options-container::-webkit-scrollbar-thumb { + background-color: #977bf0; } -.analytics .widget-item .content.sales-segmented-turnover h3.right { - margin-top: 55px; - text-align: center; +.analytics .widget-item .content .settings.param-selector .options-container::-webkit-scrollbar-thumb:hover { + background-color: #a992f3; } -.analytics .widget-item .content.sales-segmented-turnover .selector { - margin-bottom: 10px; +.analytics .settings.params-checkboxes { + padding: 2px 0px; } -.analytics .widget-item .content.sales-segmented-turnover .analysis { - font-weight: 900; - font-size: 22px; - color: #5B6667; - text-align: center; - margin-top: 0px; +.analytics .settings.params-checkboxes input { + margin: 0; + height: inherit; } -.analytics .widget-item .content.sales-segmented-turnover .widget-lines-container { - max-height: 75px; +.analytics .settings.params-checkboxes span { + margin-left: 5px; } -.analytics .widget-item .content.sales-segmented-turnover .widget-lines-container .widget-line { - font-size: 11px; +.analytics .settings.params-checkboxes label { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + line-height: 14px; } -.analytics .widget-item .content.sales-segmented-turnover .right-panel h3 { - margin: 15px 10px 5px 10px; - text-align: center; +.analytics .widget-item .content .settings.params-picker { + padding: 0px 10px; } -.analytics .widget-item .content.sales-segmented-turnover .right-panel .fa.fa-info-circle { +.analytics .widget-item .content .settings.params-picker .parameter { + margin: 0px 3px 3px 0px; + padding: 3px 5px; + background-color: #1E303B; + color: white; + border: solid 1px #1E303B; + border-radius: 4px; + cursor: move; + font-weight: bold; + white-space: nowrap; float: left; } -.analytics .widget-item .content.sales-summary .chart-container { - max-width: 410px; +.analytics .widget-item .content .settings.params-picker .parameter input[type="checkbox"] { + margin: 0px -3px 0px 3px; + vertical-align: middle; + height: inherit; + outline: none; + cursor: pointer; } -.analytics .widget-item .content.sales-summary .legend { - max-height: 28px; +.analytics .widget-item .content .settings.params-picker .parameter .badge { + margin-right: 3px; + font-size: 10px; + background-color: #f2f2f2; + color: #1E303B; + padding: 2px 6px; } -.analytics .widget-item .content.sales-summary .selector { - margin-bottom: 5px; +.analytics .widget-item .content .settings.params-picker .parameter.unchecked { + background-color: inherit; + font-weight: normal; + color: inherit; + border-color: #c2c4c4; } -.analytics .widget-item .content.sales-top-customers .selector { - border-bottom: dashed 1px #E6E6E6; - padding-bottom: 3px; +.analytics .widget-item .content .settings.params-picker .parameter.unchecked .badge { + background-color: #c2c4c4; + color: white; } -.analytics .widget-item .content.sales-top-customers .selector a { - font-weight: normal; +.analytics .settings.tag-filter { + padding: 0px 5px; } -.analytics .widget-item .content.sales-top-customers .selector .param-selector { - display: inline-block; +.analytics .settings.tag-filter .btn.btn-default { + height: 32px; + width: 30px; } -.analytics .widget-item .content.sales-top-customers .widget-lines-container { - max-height: 235px; +.analytics .settings.tag-filter .tag-lines-container { + padding: 0px 10px; } -.analytics .widget-item .content.sales-top-customers .widget-lines-container .widget-line.sub-line { - background-color: #f0f0f0; +.analytics .settings.tag-filter .tag-lines-container .tag-line { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: end; + -ms-flex-pack: end; + justify-content: flex-end; } -.analytics .widget-item .content.sales-top-customers .widget-lines-container .row > [class*='col-'] { +.analytics .settings.tag-filter .tag-lines-container .tag-line .tags-col { position: static; } -.analytics .widget-item .content.sales-top-customers .currency-conversions img { - margin-top: -2px; +.analytics .settings.tag-filter .tag-lines-container .tag-line tags-input .tags { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + border-radius: 4px; + border: solid 1px #ccc; } -.analytics .widget-item .content.sales-top-opportunities .opps-container { - max-height: 195px; - margin-top: 10px; - padding-right: 10px; - overflow-y: auto; - overflow-x: hidden; +.analytics .settings.tag-filter .tag-lines-container .tag-line tags-input .tags .tag-item { + background: #79a2bb; + border-radius: 4px; + color: white; } -.analytics .widget-item .content.sales-top-opportunities .opps-container .tile { - height: 40px; - font-size: 13px; - font-weight: 300; +.analytics .settings.tag-filter .tag-lines-container .tag-line .host { + position: static; } -.analytics .widget-item .content.sales-top-opportunities .opps-container .tile .colored-area { - width: 10%; - text-align: center; - font-size: 20px; +.analytics .settings.time-period { + padding: 0px 5px; } -.analytics .widget-item .content.sales-top-opportunities .opps-container .tile .main-text { - color: #5B6667; - padding: 3px 0px 0px 10px; +.analytics .settings.time-period select { + height: 22px; + width: 100%; } -.analytics .widget-item .content.sales-top-opportunities .opps-container .tile.first { - height: 55px; - font-size: 15px; - font-weight: bold; +.analytics .settings.time-period > .row { + margin: 0px -5px 7px -5px; } -.analytics .widget-item .content.sales-top-opportunities .opps-container .tile.first .colored-area { - font-size: 26px; - padding-top: 10px; - background-color: #ff6e41; +.analytics .settings.time-period > .row > div { + padding: 0px 5px; + position: static; } -.analytics .widget-item .content.sales-top-opportunities .opps-container .tile.first .main-text { - padding-top: 8px; +.analytics .settings.time-period > .row .sub-setting { + padding: 5px; } -.analytics .widget-item .content.sales-top-opportunities .opps-container .tile.second { - height: 55px; - font-size: 15px; - font-weight: 500; +.analytics .widget-item .content .settings.width { + float: right; + font-size: 14px; } -.analytics .widget-item .content.sales-top-opportunities .opps-container .tile.second .colored-area { - font-size: 26px; - padding-top: 10px; - background-color: #1de9b6; +.analytics .widget-item .content .settings.width i { + color: silver; + cursor: pointer; } -.analytics .widget-item .content.sales-top-opportunities .opps-container .tile.second .main-text { - padding-top: 8px; +.analytics .widget-item .content .settings.width i.reduce { + margin-right: -10px; +} +.analytics .widget-item .content .settings.width i.expand { + margin-right: -3px; } /* endinject */ -/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImltcGFjLWFuZ3VsYXIuY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9ub3JtYWxpemUubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvZ2x5cGhpY29ucy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9zY2FmZm9sZGluZy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9taXhpbnMvdmVuZG9yLXByZWZpeGVzLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL21peGlucy90YWItZm9jdXMubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbWl4aW5zL2ltYWdlLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL3R5cGUubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbWl4aW5zL3RleHQtZW1waGFzaXMubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbWl4aW5zL2JhY2tncm91bmQtdmFyaWFudC5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9taXhpbnMvdGV4dC1vdmVyZmxvdy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9jb2RlLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL2dyaWQubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbWl4aW5zL2dyaWQubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbWl4aW5zL2dyaWQtZnJhbWV3b3JrLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL3RhYmxlcy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9taXhpbnMvdGFibGUtcm93Lmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL2Zvcm1zLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL21peGlucy9mb3Jtcy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9idXR0b25zLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL21peGlucy9idXR0b25zLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL21peGlucy9vcGFjaXR5Lmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL2NvbXBvbmVudC1hbmltYXRpb25zLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL2Ryb3Bkb3ducy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9taXhpbnMvbmF2LWRpdmlkZXIubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbWl4aW5zL3Jlc2V0LWZpbHRlci5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9idXR0b24tZ3JvdXBzLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL21peGlucy9ib3JkZXItcmFkaXVzLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL2lucHV0LWdyb3Vwcy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9uYXZzLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL25hdmJhci5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9taXhpbnMvbmF2LXZlcnRpY2FsLWFsaWduLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL3V0aWxpdGllcy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9icmVhZGNydW1icy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9wYWdpbmF0aW9uLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL21peGlucy9wYWdpbmF0aW9uLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL3BhZ2VyLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL2xhYmVscy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9taXhpbnMvbGFiZWxzLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL2JhZGdlcy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9qdW1ib3Ryb24ubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvdGh1bWJuYWlscy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9hbGVydHMubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbWl4aW5zL2FsZXJ0cy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9wcm9ncmVzcy1iYXJzLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL21peGlucy9ncmFkaWVudHMubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbWl4aW5zL3Byb2dyZXNzLWJhci5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9tZWRpYS5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9saXN0LWdyb3VwLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL21peGlucy9saXN0LWdyb3VwLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL3BhbmVscy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9taXhpbnMvcGFuZWxzLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL3Jlc3BvbnNpdmUtZW1iZWQubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3Mvd2VsbHMubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvY2xvc2UubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbW9kYWxzLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL3Rvb2x0aXAubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbWl4aW5zL3Jlc2V0LXRleHQubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvcG9wb3ZlcnMubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvY2Fyb3VzZWwubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbWl4aW5zL2NsZWFyZml4Lmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL21peGlucy9jZW50ZXItYmxvY2subGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbWl4aW5zL2hpZGUtdGV4dC5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9yZXNwb25zaXZlLXV0aWxpdGllcy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9taXhpbnMvcmVzcG9uc2l2ZS12aXNpYmlsaXR5Lmxlc3MiLCJzdHlsZXNoZWV0cy92YXJpYWJsZXMubGVzcyIsInN0eWxlc2hlZXRzL2dsb2JhbHMubGVzcyIsInN0eWxlc2hlZXRzL21peGlucy5sZXNzIiwic3R5bGVzaGVldHMvcHJpbnQubGVzcyIsImNvbXBvbmVudHMvYWxlcnRzLWNvbmZpZy9hbGVydHMtY29uZmlnLmxlc3MiLCJjb21wb25lbnRzL2Rhc2hib2FyZC9kYXNoYm9hcmQubGVzcyIsImNvbXBvbmVudHMvZGFzaGJvYXJkLWNyZWF0ZS9kYXNoYm9hcmQtY3JlYXRlLmxlc3MiLCJjb21wb25lbnRzL2Rhc2hib2FyZC1zZWxlY3Rvci9kYXNoYm9hcmQtc2VsZWN0b3IubGVzcyIsImNvbXBvbmVudHMvZGFzaGJvYXJkLXRlbXBsYXRlcy1zZWxlY3Rvci9kYXNoYm9hcmQtdGVtcGxhdGVzLXNlbGVjdG9yLmxlc3MiLCJjb21wb25lbnRzL2twaS9rcGkubGVzcyIsInN0eWxlc2hlZXRzL2ltcGFjLW1hdGVyaWFsLmxlc3MiLCJjb21wb25lbnRzL2twaXMtYmFyL2twaXMtYmFyLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldC93aWRnZXQubGVzcyIsImNvbXBvbmVudHMvY29tbW9uL2RhdGEtbm90LWZvdW5kL2RhdGEtbm90LWZvdW5kLmxlc3MiLCJjb21wb25lbnRzL2NvbW1vbi9kdXBsaWNhdGUtdHJhbnNhY3Rpb25zLWxpc3QvZHVwbGljYXRlLXRyYW5zYWN0aW9ucy1saXN0Lmxlc3MiLCJjb21wb25lbnRzL2NvbW1vbi90cmFuc2FjdGlvbnMtYWRkL3RyYW5zYWN0aW9ucy1hZGQubGVzcyIsImNvbXBvbmVudHMvY29tbW9uL3RyYW5zYWN0aW9ucy1saXN0L3RyYW5zYWN0aW9ucy1saXN0Lmxlc3MiLCJjb21wb25lbnRzL2NvbW1vbi90cmVuZHMtbGlzdC90cmVuZHMtbGlzdC5sZXNzIiwiY29tcG9uZW50cy9jb21tb24vdHJlbmRzLWFkZC90cmVuZHMtYWRkLmxlc3MiLCJjb21wb25lbnRzL2Rhc2hib2FyZC1zZXR0aW5ncy9jdXJyZW5jeS9jdXJyZW5jeS5sZXNzIiwiY29tcG9uZW50cy9kYXNoYm9hcmQtc2V0dGluZ3Mvc3luYy1hcHBzL3N5bmMtYXBwcy5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzLWNvbW1vbi9jaGFydC10aHJlc2hvbGQvY2hhcnQtdGhyZXNob2xkLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMtY29tbW9uL2NvbmZpcm0tbW9kYWwvY29uZmlybS1tb2RhbC5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzLWNvbW1vbi9jdXJyZW5jeS1jb252ZXJzaW9ucy9jdXJyZW5jeS1jb252ZXJzaW9ucy5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzLWNvbW1vbi9lZGl0YWJsZS10aXRsZS9lZGl0YWJsZS10aXRsZS5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzLWNvbW1vbi9pbmZvLXBhbmVsL2luZm8tcGFuZWwubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy1jb21tb24vdGltZS1wZXJpb2QtaW5mby90aW1lLXBlcmlvZC1pbmZvLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMtY29tbW9uL3RvcC1idXR0b25zL3RvcC1idXR0b25zLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMtc2V0dGluZ3MvYWNjb3VudC9hY2NvdW50Lmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMtc2V0dGluZ3MvYWNjb3VudGluZy1iZWhhdmlvdXIvYWNjb3VudGluZy1iZWhhdmlvdXIubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy1zZXR0aW5ncy9hdHRhY2gta3Bpcy9hdHRhY2gta3Bpcy5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzLXNldHRpbmdzL2JvbHQtYWNjb3VudC9ib2x0LWFjY291bnQubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy1zZXR0aW5ncy9jaGFydC1maWx0ZXJzL2NoYXJ0LWZpbHRlcnMubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy1zZXR0aW5ncy9kYXRlcy1waWNrZXIvZGF0ZXMtcGlja2VyLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMtc2V0dGluZ3MvZm9yZWNhc3QtcGF5cm9sbC9mb3JlY2FzdC1wYXlyb2xsLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMtc2V0dGluZ3MvaGlzdC1tb2RlL2hpc3QtbW9kZS5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzLXNldHRpbmdzL2xpbWl0LWVudHJpZXMvbGltaXQtZW50cmllcy5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzLXNldHRpbmdzL29mZnNldHMvb2Zmc2V0cy5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzLXNldHRpbmdzL29yZ2FuaXphdGlvbnMvb3JnYW5pemF0aW9ucy5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzLXNldHRpbmdzL3BhcmFtLXNlbGVjdG9yL3BhcmFtLXNlbGVjdG9yLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMtc2V0dGluZ3MvcGFyYW1zLWNoZWNrYm94ZXMvcGFyYW1zLWNoZWNrYm94ZXMubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy1zZXR0aW5ncy9wYXJhbXMtcGlja2VyL3BhcmFtcy1waWNrZXIubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy1zZXR0aW5ncy90YWctZmlsdGVyL3RhZy1maWx0ZXIubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy1zZXR0aW5ncy90aW1lLXBlcmlvZC90aW1lLXBlcmlvZC5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzLXNldHRpbmdzL3dpZHRoL3dpZHRoLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvYWNjb3VudHMtYXNzZXRzLWxpYWJpbGl0eS1zdW1tYXJ5L2FjY291bnRzLWFzc2V0cy1saWFiaWxpdHktc3VtbWFyeS5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL2FjY291bnRzLWFzc2V0cy1zdW1tYXJ5L2FjY291bnRzLWFzc2V0cy1zdW1tYXJ5Lmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvYWNjb3VudHMtYXNzZXRzLXZzLWxpYWJpbGl0aWVzL2FjY291bnRzLWFzc2V0cy12cy1saWFiaWxpdGllcy5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL2FjY291bnRzLWJhbGFuY2UvYWNjb3VudHMtYmFsYW5jZS5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL2FjY291bnRzLWJhbGFuY2Utc2hlZXQvYWNjb3VudHMtYmFsYW5jZS1zaGVldC5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL2FjY291bnRzLWNhc2gtYmFsYW5jZS9hY2NvdW50cy1jYXNoLWJhbGFuY2UubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9hY2NvdW50cy1jYXNoLXByb2plY3Rpb24vYWNjb3VudHMtY2FzaC1wcm9qZWN0aW9uLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvYWNjb3VudHMtY2FzaC1zdW1tYXJ5L2FjY291bnRzLWNhc2gtc3VtbWFyeS5sZXNzIiwic3R5bGVzaGVldHMvd2lkZ2V0LW1hc3Rlci1zdHlsZXMubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9hY2NvdW50cy1jbGFzcy1jb21wYXJpc29uL2FjY291bnRzLWNsYXNzLWNvbXBhcmlzb24ubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9hY2NvdW50cy1jb21wYXJpc29uL2FjY291bnRzLWNvbXBhcmlzb24ubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9hY2NvdW50cy1jdXN0b20tY2FsY3VsYXRpb24vYWNjb3VudHMtY3VzdG9tLWNhbGN1bGF0aW9uLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvYWNjb3VudHMtZGV0YWlsZWQtY2xhc3NpZmljYXRpb25zL2FjY291bnRzLWRldGFpbGVkLWNsYXNzaWZpY2F0aW9ucy5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL2FjY291bnRzLWV4cGVuc2Utd2VpZ2h0L2FjY291bnRzLWV4cGVuc2Utd2VpZ2h0Lmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvYWNjb3VudHMtZXhwZW5zZXMtcmV2ZW51ZS9hY2NvdW50cy1leHBlbnNlcy1yZXZlbnVlLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvYWNjb3VudHMtaW52b2ljZXMtbGlzdC9hY2NvdW50cy1pbnZvaWNlcy1saXN0Lmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvYWNjb3VudHMtbGl2ZS1iYWxhbmNlL2FjY291bnRzLWxpdmUtYmFsYW5jZS5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL2FjY291bnRzLXBheWFibGUtcmVjZWl2YWJsZS9hY2NvdW50cy1wYXlhYmxlLXJlY2VpdmFibGUubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9hY2NvdW50cy1wcm9maXQtYW5kLWxvc3MvYWNjb3VudHMtcHJvZml0LWFuZC1sb3NzLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvYWNjb3VudHMtcmF0aW9zL2FjY291bnRzLXJhdGlvcy5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL2hyLWVtcGxveWVlLWRldGFpbHMvaHItZW1wbG95ZWUtZGV0YWlscy5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL2hyLWVtcGxveWVlcy1saXN0L2hyLWVtcGxveWVlcy1saXN0Lmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvaHItbGVhdmVzLWJhbGFuY2UvaHItbGVhdmVzLWJhbGFuY2UubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9oci1sZWF2ZXMtc2NoZWR1bGUvaHItbGVhdmVzLXNjaGVkdWxlLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvaHItcGF5cm9sbC1zdW1tYXJ5L2hyLXBheXJvbGwtc3VtbWFyeS5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL2hyLXNhbGFyaWVzLXN1bW1hcnkvaHItc2FsYXJpZXMtc3VtbWFyeS5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL2hyLXN1cGVyYW5udWF0aW9uLWFjY3J1YWxzL2hyLXN1cGVyYW5udWF0aW9uLWFjY3J1YWxzLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvaHItdGltZXNoZWV0cy9oci10aW1lc2hlZXRzLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvaHItd29ya2ZvcmNlLXN1bW1hcnkvaHItd29ya2ZvcmNlLXN1bW1hcnkubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9pbnZvaWNlcy1hZ2VkLXBheWFibGVzLXJlY2VpdmFibGVzL2ludm9pY2VzLWFnZWQtcGF5YWJsZXMtcmVjZWl2YWJsZXMubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9pbnZvaWNlcy1saXN0L2ludm9pY2VzLWxpc3QubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9pbnZvaWNlcy1zdW1tYXJ5L2ludm9pY2VzLXN1bW1hcnkubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9zYWxlcy1hZ2VkL3NhbGVzLWFnZWQubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9zYWxlcy1icmVhay1ldmVuL3NhbGVzLWJyZWFrLWV2ZW4ubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9zYWxlcy1jb21wYXJpc29uL3NhbGVzLWNvbXBhcmlzb24ubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9zYWxlcy1jdXN0b21lci1kZXRhaWxzL3NhbGVzLWN1c3RvbWVyLWRldGFpbHMubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9zYWxlcy1jeWNsZS9zYWxlcy1jeWNsZS5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL3NhbGVzLWZvcmVjYXN0L3NhbGVzLWZvcmVjYXN0Lmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvc2FsZXMtZ3Jvd3RoL3NhbGVzLWdyb3d0aC5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL3NhbGVzLWxlYWRzLWZ1bm5lbC9zYWxlcy1sZWFkcy1mdW5uZWwubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9zYWxlcy1sZWFkcy1saXN0L3NhbGVzLWxlYWRzLWxpc3QubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9zYWxlcy1saXN0L3NhbGVzLWxpc3QubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9zYWxlcy1uZXQtc2FsZXMvc2FsZXMtbmV0LXNhbGVzLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvc2FsZXMtbmV3LXZzLWV4aXN0aW5nLWN1c3RvbWVycy9zYWxlcy1uZXctdnMtZXhpc3RpbmctY3VzdG9tZXJzLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvc2FsZXMtbnVtYmVyLW9mLWxlYWRzL3NhbGVzLW51bWJlci1vZi1sZWFkcy5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL3NhbGVzLW9wcG9ydHVuaXRpZXMtZnVubmVsL3NhbGVzLW9wcG9ydHVuaXRpZXMtZnVubmVsLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvc2FsZXMtcGVyZm9ybWFuY2Uvc2FsZXMtcGVyZm9ybWFuY2UubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9zYWxlcy1zZWdtZW50ZWQtdHVybm92ZXIvc2FsZXMtc2VnbWVudGVkLXR1cm5vdmVyLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvc2FsZXMtc3VtbWFyeS9zYWxlcy1zdW1tYXJ5Lmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvc2FsZXMtdG9wLWN1c3RvbWVycy9zYWxlcy10b3AtY3VzdG9tZXJzLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvc2FsZXMtdG9wLW9wcG9ydHVuaXRpZXMvc2FsZXMtdG9wLW9wcG9ydHVuaXRpZXMubGVzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7RUFFRTtBQUNGOzs7R0FHRztBQUNIOzs7O0dBSUc7QUFDSCw0RUFBNEU7QUNKNUU7RUFDRSx3QkFBQTtFQUNBLDJCQUFBO0VBQ0EsK0JBQUE7Q0RNRDtBQ0NEO0VBQ0UsVUFBQTtDRENEO0FDWUQ7Ozs7Ozs7Ozs7Ozs7RUFhRSxlQUFBO0NEVkQ7QUNrQkQ7Ozs7RUFJRSxzQkFBQTtFQUNBLHlCQUFBO0NEaEJEO0FDd0JEO0VBQ0UsY0FBQTtFQUNBLFVBQUE7Q0R0QkQ7QUM4QkQ7O0VBRUUsY0FBQTtDRDVCRDtBQ3NDRDtFQUNFLDhCQUFBO0NEcENEO0FDNENEOztFQUVFLFdBQUE7Q0QxQ0Q7QUNvREQ7RUFDRSwwQkFBQTtDRGxERDtBQ3lERDs7RUFFRSxrQkFBQTtDRHZERDtBQzhERDtFQUNFLG1CQUFBO0NENUREO0FDb0VEO0VBQ0UsZUFBQTtFQUNBLGlCQUFBO0NEbEVEO0FDeUVEO0VBQ0UsaUJBQUE7RUFDQSxZQUFBO0NEdkVEO0FDOEVEO0VBQ0UsZUFBQTtDRDVFRDtBQ21GRDs7RUFFRSxlQUFBO0VBQ0EsZUFBQTtFQUNBLG1CQUFBO0VBQ0EseUJBQUE7Q0RqRkQ7QUNvRkQ7RUFDRSxZQUFBO0NEbEZEO0FDcUZEO0VBQ0UsZ0JBQUE7Q0RuRkQ7QUM2RkQ7RUFDRSxVQUFBO0NEM0ZEO0FDa0dEO0VBQ0UsaUJBQUE7Q0RoR0Q7QUMwR0Q7RUFDRSxpQkFBQTtDRHhHRDtBQytHRDtFQUNFLHdCQUFBO0VBQ0EsVUFBQTtDRDdHRDtBQ29IRDtFQUNFLGVBQUE7Q0RsSEQ7QUN5SEQ7Ozs7RUFJRSxrQ0FBQTtFQUNBLGVBQUE7Q0R2SEQ7QUN5SUQ7Ozs7O0VBS0UsZUFBQTtFQUNBLGNBQUE7RUFDQSxVQUFBO0NEdklEO0FDOElEO0VBQ0Usa0JBQUE7Q0Q1SUQ7QUNzSkQ7O0VBRUUscUJBQUE7Q0RwSkQ7QUMrSkQ7Ozs7RUFJRSwyQkFBQTtFQUNBLGdCQUFBO0NEN0pEO0FDb0tEOztFQUVFLGdCQUFBO0NEbEtEO0FDeUtEOztFQUVFLFVBQUE7RUFDQSxXQUFBO0NEdktEO0FDK0tEO0VBQ0Usb0JBQUE7Q0Q3S0Q7QUN3TEQ7O0VBRUUsdUJBQUE7RUFDQSxXQUFBO0NEdExEO0FDK0xEOztFQUVFLGFBQUE7Q0Q3TEQ7QUNxTUQ7RUFDRSw4QkFBQTtFQUNBLHdCQUFBO0NEbk1EO0FDNE1EOztFQUVFLHlCQUFBO0NEMU1EO0FDaU5EO0VBQ0UsMEJBQUE7RUFDQSxjQUFBO0VBQ0EsK0JBQUE7Q0QvTUQ7QUN1TkQ7RUFDRSxVQUFBO0VBQ0EsV0FBQTtDRHJORDtBQzRORDtFQUNFLGVBQUE7Q0QxTkQ7QUNrT0Q7RUFDRSxrQkFBQTtDRGhPRDtBQzBPRDtFQUNFLDBCQUFBO0VBQ0Esa0JBQUE7Q0R4T0Q7QUMyT0Q7O0VBRUUsV0FBQTtDRHpPRDtBRW5MRDtFQUNFLG9DQUFBO0VBQ0Esc0RBQUE7RUFDQSxnWUFBQTtDRnFMRDtBRTdLRDtFQUNFLG1CQUFBO0VBQ0EsU0FBQTtFQUNBLHNCQUFBO0VBQ0Esb0NBQUE7RUFDQSxtQkFBQTtFQUNBLG9CQUFBO0VBQ0EsZUFBQTtFQUNBLG9DQUFBO0VBQ0EsbUNBQUE7Q0YrS0Q7QUUzS21DO0VBQVcsaUJBQUE7Q0Y4SzlDO0FFN0ttQztFQUFXLGlCQUFBO0NGZ0w5QztBRTlLbUM7O0VBQVcsaUJBQUE7Q0ZrTDlDO0FFakxtQztFQUFXLGlCQUFBO0NGb0w5QztBRW5MbUM7RUFBVyxpQkFBQTtDRnNMOUM7QUVyTG1DO0VBQVcsaUJBQUE7Q0Z3TDlDO0FFdkxtQztFQUFXLGlCQUFBO0NGMEw5QztBRXpMbUM7RUFBVyxpQkFBQTtDRjRMOUM7QUUzTG1DO0VBQVcsaUJBQUE7Q0Y4TDlDO0FFN0xtQztFQUFXLGlCQUFBO0NGZ005QztBRS9MbUM7RUFBVyxpQkFBQTtDRmtNOUM7QUVqTW1DO0VBQVcsaUJBQUE7Q0ZvTTlDO0FFbk1tQztFQUFXLGlCQUFBO0NGc005QztBRXJNbUM7RUFBVyxpQkFBQTtDRndNOUM7QUV2TW1DO0VBQVcsaUJBQUE7Q0YwTTlDO0FFek1tQztFQUFXLGlCQUFBO0NGNE05QztBRTNNbUM7RUFBVyxpQkFBQTtDRjhNOUM7QUU3TW1DO0VBQVcsaUJBQUE7Q0ZnTjlDO0FFL01tQztFQUFXLGlCQUFBO0NGa045QztBRWpObUM7RUFBVyxpQkFBQTtDRm9OOUM7QUVuTm1DO0VBQVcsaUJBQUE7Q0ZzTjlDO0FFck5tQztFQUFXLGlCQUFBO0NGd045QztBRXZObUM7RUFBVyxpQkFBQTtDRjBOOUM7QUV6Tm1DO0VBQVcsaUJBQUE7Q0Y0TjlDO0FFM05tQztFQUFXLGlCQUFBO0NGOE45QztBRTdObUM7RUFBVyxpQkFBQTtDRmdPOUM7QUUvTm1DO0VBQVcsaUJBQUE7Q0ZrTzlDO0FFak9tQztFQUFXLGlCQUFBO0NGb085QztBRW5PbUM7RUFBVyxpQkFBQTtDRnNPOUM7QUVyT21DO0VBQVcsaUJBQUE7Q0Z3TzlDO0FFdk9tQztFQUFXLGlCQUFBO0NGME85QztBRXpPbUM7RUFBVyxpQkFBQTtDRjRPOUM7QUUzT21DO0VBQVcsaUJBQUE7Q0Y4TzlDO0FFN09tQztFQUFXLGlCQUFBO0NGZ1A5QztBRS9PbUM7RUFBVyxpQkFBQTtDRmtQOUM7QUVqUG1DO0VBQVcsaUJBQUE7Q0ZvUDlDO0FFblBtQztFQUFXLGlCQUFBO0NGc1A5QztBRXJQbUM7RUFBVyxpQkFBQTtDRndQOUM7QUV2UG1DO0VBQVcsaUJBQUE7Q0YwUDlDO0FFelBtQztFQUFXLGlCQUFBO0NGNFA5QztBRTNQbUM7RUFBVyxpQkFBQTtDRjhQOUM7QUU3UG1DO0VBQVcsaUJBQUE7Q0ZnUTlDO0FFL1BtQztFQUFXLGlCQUFBO0NGa1E5QztBRWpRbUM7RUFBVyxpQkFBQTtDRm9ROUM7QUVuUW1DO0VBQVcsaUJBQUE7Q0ZzUTlDO0FFclFtQztFQUFXLGlCQUFBO0NGd1E5QztBRXZRbUM7RUFBVyxpQkFBQTtDRjBROUM7QUV6UW1DO0VBQVcsaUJBQUE7Q0Y0UTlDO0FFM1FtQztFQUFXLGlCQUFBO0NGOFE5QztBRTdRbUM7RUFBVyxpQkFBQTtDRmdSOUM7QUUvUW1DO0VBQVcsaUJBQUE7Q0ZrUjlDO0FFalJtQztFQUFXLGlCQUFBO0NGb1I5QztBRW5SbUM7RUFBVyxpQkFBQTtDRnNSOUM7QUVyUm1DO0VBQVcsaUJBQUE7Q0Z3UjlDO0FFdlJtQztFQUFXLGlCQUFBO0NGMFI5QztBRXpSbUM7RUFBVyxpQkFBQTtDRjRSOUM7QUUzUm1DO0VBQVcsaUJBQUE7Q0Y4UjlDO0FFN1JtQztFQUFXLGlCQUFBO0NGZ1M5QztBRS9SbUM7RUFBVyxpQkFBQTtDRmtTOUM7QUVqU21DO0VBQVcsaUJBQUE7Q0ZvUzlDO0FFblNtQztFQUFXLGlCQUFBO0NGc1M5QztBRXJTbUM7RUFBVyxpQkFBQTtDRndTOUM7QUV2U21DO0VBQVcsaUJBQUE7Q0YwUzlDO0FFelNtQztFQUFXLGlCQUFBO0NGNFM5QztBRTNTbUM7RUFBVyxpQkFBQTtDRjhTOUM7QUU3U21DO0VBQVcsaUJBQUE7Q0ZnVDlDO0FFL1NtQztFQUFXLGlCQUFBO0NGa1Q5QztBRWpUbUM7RUFBVyxpQkFBQTtDRm9UOUM7QUVuVG1DO0VBQVcsaUJBQUE7Q0ZzVDlDO0FFclRtQztFQUFXLGlCQUFBO0NGd1Q5QztBRXZUbUM7RUFBVyxpQkFBQTtDRjBUOUM7QUV6VG1DO0VBQVcsaUJBQUE7Q0Y0VDlDO0FFM1RtQztFQUFXLGlCQUFBO0NGOFQ5QztBRTdUbUM7RUFBVyxpQkFBQTtDRmdVOUM7QUUvVG1DO0VBQVcsaUJBQUE7Q0ZrVTlDO0FFalVtQztFQUFXLGlCQUFBO0NGb1U5QztBRW5VbUM7RUFBVyxpQkFBQTtDRnNVOUM7QUVyVW1DO0VBQVcsaUJBQUE7Q0Z3VTlDO0FFdlVtQztFQUFXLGlCQUFBO0NGMFU5QztBRXpVbUM7RUFBVyxpQkFBQTtDRjRVOUM7QUUzVW1DO0VBQVcsaUJBQUE7Q0Y4VTlDO0FFN1VtQztFQUFXLGlCQUFBO0NGZ1Y5QztBRS9VbUM7RUFBVyxpQkFBQTtDRmtWOUM7QUVqVm1DO0VBQVcsaUJBQUE7Q0ZvVjlDO0FFblZtQztFQUFXLGlCQUFBO0NGc1Y5QztBRXJWbUM7RUFBVyxpQkFBQTtDRndWOUM7QUV2Vm1DO0VBQVcsaUJBQUE7Q0YwVjlDO0FFelZtQztFQUFXLGlCQUFBO0NGNFY5QztBRTNWbUM7RUFBVyxpQkFBQTtDRjhWOUM7QUU3Vm1DO0VBQVcsaUJBQUE7Q0ZnVzlDO0FFL1ZtQztFQUFXLGlCQUFBO0NGa1c5QztBRWpXbUM7RUFBVyxpQkFBQTtDRm9XOUM7QUVuV21DO0VBQVcsaUJBQUE7Q0ZzVzlDO0FFcldtQztFQUFXLGlCQUFBO0NGd1c5QztBRXZXbUM7RUFBVyxpQkFBQTtDRjBXOUM7QUV6V21DO0VBQVcsaUJBQUE7Q0Y0VzlDO0FFM1dtQztFQUFXLGlCQUFBO0NGOFc5QztBRTdXbUM7RUFBVyxpQkFBQTtDRmdYOUM7QUUvV21DO0VBQVcsaUJBQUE7Q0ZrWDlDO0FFalhtQztFQUFXLGlCQUFBO0NGb1g5QztBRW5YbUM7RUFBVyxpQkFBQTtDRnNYOUM7QUVyWG1DO0VBQVcsaUJBQUE7Q0Z3WDlDO0FFdlhtQztFQUFXLGlCQUFBO0NGMFg5QztBRXpYbUM7RUFBVyxpQkFBQTtDRjRYOUM7QUUzWG1DO0VBQVcsaUJBQUE7Q0Y4WDlDO0FFN1htQztFQUFXLGlCQUFBO0NGZ1k5QztBRS9YbUM7RUFBVyxpQkFBQTtDRmtZOUM7QUVqWW1DO0VBQVcsaUJBQUE7Q0ZvWTlDO0FFblltQztFQUFXLGlCQUFBO0NGc1k5QztBRXJZbUM7RUFBVyxpQkFBQTtDRndZOUM7QUV2WW1DO0VBQVcsaUJBQUE7Q0YwWTlDO0FFelltQztFQUFXLGlCQUFBO0NGNFk5QztBRTNZbUM7RUFBVyxpQkFBQTtDRjhZOUM7QUU3WW1DO0VBQVcsaUJBQUE7Q0ZnWjlDO0FFL1ltQztFQUFXLGlCQUFBO0NGa1o5QztBRWpabUM7RUFBVyxpQkFBQTtDRm9aOUM7QUVuWm1DO0VBQVcsaUJBQUE7Q0ZzWjlDO0FFclptQztFQUFXLGlCQUFBO0NGd1o5QztBRXZabUM7RUFBVyxpQkFBQTtDRjBaOUM7QUV6Wm1DO0VBQVcsaUJBQUE7Q0Y0WjlDO0FFM1ptQztFQUFXLGlCQUFBO0NGOFo5QztBRTdabUM7RUFBVyxpQkFBQTtDRmdhOUM7QUUvWm1DO0VBQVcsaUJBQUE7Q0ZrYTlDO0FFamFtQztFQUFXLGlCQUFBO0NGb2E5QztBRW5hbUM7RUFBVyxpQkFBQTtDRnNhOUM7QUVyYW1DO0VBQVcsaUJBQUE7Q0Z3YTlDO0FFdmFtQztFQUFXLGlCQUFBO0NGMGE5QztBRXphbUM7RUFBVyxpQkFBQTtDRjRhOUM7QUUzYW1DO0VBQVcsaUJBQUE7Q0Y4YTlDO0FFN2FtQztFQUFXLGlCQUFBO0NGZ2I5QztBRS9hbUM7RUFBVyxpQkFBQTtDRmtiOUM7QUVqYm1DO0VBQVcsaUJBQUE7Q0ZvYjlDO0FFbmJtQztFQUFXLGlCQUFBO0NGc2I5QztBRXJibUM7RUFBVyxpQkFBQTtDRndiOUM7QUV2Ym1DO0VBQVcsaUJBQUE7Q0YwYjlDO0FFemJtQztFQUFXLGlCQUFBO0NGNGI5QztBRTNibUM7RUFBVyxpQkFBQTtDRjhiOUM7QUU3Ym1DO0VBQVcsaUJBQUE7Q0ZnYzlDO0FFL2JtQztFQUFXLGlCQUFBO0NGa2M5QztBRWpjbUM7RUFBVyxpQkFBQTtDRm9jOUM7QUVuY21DO0VBQVcsaUJBQUE7Q0ZzYzlDO0FFcmNtQztFQUFXLGlCQUFBO0NGd2M5QztBRXZjbUM7RUFBVyxpQkFBQTtDRjBjOUM7QUV6Y21DO0VBQVcsaUJBQUE7Q0Y0YzlDO0FFM2NtQztFQUFXLGlCQUFBO0NGOGM5QztBRTdjbUM7RUFBVyxpQkFBQTtDRmdkOUM7QUUvY21DO0VBQVcsaUJBQUE7Q0ZrZDlDO0FFamRtQztFQUFXLGlCQUFBO0NGb2Q5QztBRW5kbUM7RUFBVyxpQkFBQTtDRnNkOUM7QUVyZG1DO0VBQVcsaUJBQUE7Q0Z3ZDlDO0FFdmRtQztFQUFXLGlCQUFBO0NGMGQ5QztBRXpkbUM7RUFBVyxpQkFBQTtDRjRkOUM7QUUzZG1DO0VBQVcsaUJBQUE7Q0Y4ZDlDO0FFN2RtQztFQUFXLGlCQUFBO0NGZ2U5QztBRS9kbUM7RUFBVyxpQkFBQTtDRmtlOUM7QUVqZW1DO0VBQVcsaUJBQUE7Q0ZvZTlDO0FFbmVtQztFQUFXLGlCQUFBO0NGc2U5QztBRXJlbUM7RUFBVyxpQkFBQTtDRndlOUM7QUV2ZW1DO0VBQVcsaUJBQUE7Q0YwZTlDO0FFemVtQztFQUFXLGlCQUFBO0NGNGU5QztBRTNlbUM7RUFBVyxpQkFBQTtDRjhlOUM7QUU3ZW1DO0VBQVcsaUJBQUE7Q0ZnZjlDO0FFL2VtQztFQUFXLGlCQUFBO0NGa2Y5QztBRWpmbUM7RUFBVyxpQkFBQTtDRm9mOUM7QUVuZm1DO0VBQVcsaUJBQUE7Q0ZzZjlDO0FFcmZtQztFQUFXLGlCQUFBO0NGd2Y5QztBRXZmbUM7RUFBVyxpQkFBQTtDRjBmOUM7QUV6Zm1DO0VBQVcsaUJBQUE7Q0Y0ZjlDO0FFM2ZtQztFQUFXLGlCQUFBO0NGOGY5QztBRTdmbUM7RUFBVyxpQkFBQTtDRmdnQjlDO0FFL2ZtQztFQUFXLGlCQUFBO0NGa2dCOUM7QUVqZ0JtQztFQUFXLGlCQUFBO0NGb2dCOUM7QUVuZ0JtQztFQUFXLGlCQUFBO0NGc2dCOUM7QUVyZ0JtQztFQUFXLGlCQUFBO0NGd2dCOUM7QUV2Z0JtQztFQUFXLGlCQUFBO0NGMGdCOUM7QUV6Z0JtQztFQUFXLGlCQUFBO0NGNGdCOUM7QUUzZ0JtQztFQUFXLGlCQUFBO0NGOGdCOUM7QUU3Z0JtQztFQUFXLGlCQUFBO0NGZ2hCOUM7QUUvZ0JtQztFQUFXLGlCQUFBO0NGa2hCOUM7QUVqaEJtQztFQUFXLGlCQUFBO0NGb2hCOUM7QUVuaEJtQztFQUFXLGlCQUFBO0NGc2hCOUM7QUVyaEJtQztFQUFXLGlCQUFBO0NGd2hCOUM7QUV2aEJtQztFQUFXLGlCQUFBO0NGMGhCOUM7QUV6aEJtQztFQUFXLGlCQUFBO0NGNGhCOUM7QUUzaEJtQztFQUFXLGlCQUFBO0NGOGhCOUM7QUU3aEJtQztFQUFXLGlCQUFBO0NGZ2lCOUM7QUUvaEJtQztFQUFXLGlCQUFBO0NGa2lCOUM7QUVqaUJtQztFQUFXLGlCQUFBO0NGb2lCOUM7QUVuaUJtQztFQUFXLGlCQUFBO0NGc2lCOUM7QUVyaUJtQztFQUFXLGlCQUFBO0NGd2lCOUM7QUV2aUJtQztFQUFXLGlCQUFBO0NGMGlCOUM7QUV6aUJtQztFQUFXLGlCQUFBO0NGNGlCOUM7QUUzaUJtQztFQUFXLGlCQUFBO0NGOGlCOUM7QUU3aUJtQztFQUFXLGlCQUFBO0NGZ2pCOUM7QUUvaUJtQztFQUFXLGlCQUFBO0NGa2pCOUM7QUVqakJtQztFQUFXLGlCQUFBO0NGb2pCOUM7QUVuakJtQztFQUFXLGlCQUFBO0NGc2pCOUM7QUVyakJtQztFQUFXLGlCQUFBO0NGd2pCOUM7QUV2akJtQztFQUFXLGlCQUFBO0NGMGpCOUM7QUV6akJtQztFQUFXLGlCQUFBO0NGNGpCOUM7QUUzakJtQztFQUFXLGlCQUFBO0NGOGpCOUM7QUU3akJtQztFQUFXLGlCQUFBO0NGZ2tCOUM7QUUvakJtQztFQUFXLGlCQUFBO0NGa2tCOUM7QUVqa0JtQztFQUFXLGlCQUFBO0NGb2tCOUM7QUVua0JtQztFQUFXLGlCQUFBO0NGc2tCOUM7QUVya0JtQztFQUFXLGlCQUFBO0NGd2tCOUM7QUUvakJtQztFQUFXLGlCQUFBO0NGa2tCOUM7QUVqa0JtQztFQUFXLGlCQUFBO0NGb2tCOUM7QUVua0JtQztFQUFXLGlCQUFBO0NGc2tCOUM7QUVya0JtQztFQUFXLGlCQUFBO0NGd2tCOUM7QUV2a0JtQztFQUFXLGlCQUFBO0NGMGtCOUM7QUV6a0JtQztFQUFXLGlCQUFBO0NGNGtCOUM7QUUza0JtQztFQUFXLGlCQUFBO0NGOGtCOUM7QUU3a0JtQztFQUFXLGlCQUFBO0NGZ2xCOUM7QUUva0JtQztFQUFXLGlCQUFBO0NGa2xCOUM7QUVqbEJtQztFQUFXLGlCQUFBO0NGb2xCOUM7QUVubEJtQztFQUFXLGlCQUFBO0NGc2xCOUM7QUVybEJtQztFQUFXLGlCQUFBO0NGd2xCOUM7QUV2bEJtQztFQUFXLGlCQUFBO0NGMGxCOUM7QUV6bEJtQztFQUFXLGlCQUFBO0NGNGxCOUM7QUUzbEJtQztFQUFXLGlCQUFBO0NGOGxCOUM7QUU3bEJtQztFQUFXLGlCQUFBO0NGZ21COUM7QUUvbEJtQztFQUFXLGlCQUFBO0NGa21COUM7QUVqbUJtQztFQUFXLGlCQUFBO0NGb21COUM7QUVubUJtQztFQUFXLGlCQUFBO0NGc21COUM7QUVybUJtQztFQUFXLGlCQUFBO0NGd21COUM7QUV2bUJtQztFQUFXLGlCQUFBO0NGMG1COUM7QUV6bUJtQztFQUFXLGlCQUFBO0NGNG1COUM7QUUzbUJtQztFQUFXLGlCQUFBO0NGOG1COUM7QUU3bUJtQztFQUFXLGlCQUFBO0NGZ25COUM7QUUvbUJtQztFQUFXLGlCQUFBO0NGa25COUM7QUVqbkJtQztFQUFXLGlCQUFBO0NGb25COUM7QUVubkJtQztFQUFXLGlCQUFBO0NGc25COUM7QUVybkJtQztFQUFXLGlCQUFBO0NGd25COUM7QUV2bkJtQztFQUFXLGlCQUFBO0NGMG5COUM7QUV6bkJtQztFQUFXLGlCQUFBO0NGNG5COUM7QUUzbkJtQztFQUFXLGlCQUFBO0NGOG5COUM7QUU3bkJtQztFQUFXLGlCQUFBO0NGZ29COUM7QUUvbkJtQztFQUFXLGlCQUFBO0NGa29COUM7QUVqb0JtQztFQUFXLGlCQUFBO0NGb29COUM7QUVub0JtQztFQUFXLGlCQUFBO0NGc29COUM7QUVyb0JtQztFQUFXLGlCQUFBO0NGd29COUM7QUV2b0JtQztFQUFXLGlCQUFBO0NG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Q1B5b0NUO0FPbm9DRDtFQUNFLGlCQUFBO0NQcW9DRDtBT2xvQ0Q7RUFDRSxvQkFBQTtFQUNBLGdCQUFBO0VBQ0EsaUJBQUE7RUFDQSxpQkFBQTtDUG9vQ0Q7QU9sb0NDO0VBMk9GO0lBMU9JLGdCQUFBO0dQcW9DRDtDQUNGO0FPN25DRDs7RUFFRSxlQUFBO0NQK25DRDtBTzVuQ0Q7O0VBRUUsMEJBQUE7RUFDQSxjQUFBO0NQOG5DRDtBTzFuQ0Q7RUFBdUIsaUJBQUE7Q1A2bkN0QjtBTzVuQ0Q7RUFBdUIsa0JBQUE7Q1ArbkN0QjtBTzluQ0Q7RUFBdUIsbUJBQUE7Q1Bpb0N0QjtBT2hvQ0Q7RUFBdUIsb0JBQUE7Q1Btb0N0QjtBT2xvQ0Q7RUFBdUIsb0JBQUE7Q1Bxb0N0QjtBT2xvQ0Q7RUFBdUIsMEJBQUE7Q1Bxb0N0QjtBT3BvQ0Q7RUFBdUIsMEJBQUE7Q1B1b0N0QjtBT3RvQ0Q7RUFBdUIsMkJBQUE7Q1B5b0N0QjtBT3RvQ0Q7RUFDRSxlQUFBO0NQd29DRDtBT3RvQ0Q7RUNyR0UsZUFBQTtDUjh1Q0Q7QVE3dUNDOztFQUVFLGVBQUE7Q1IrdUNIO0FPMW9DRDtFQ3hHRSxlQUFBO0NScXZDRDtBUXB2Q0M7O0VBRUUsZUFBQTtDUnN2Q0g7QU85b0NEO0VDM0dFLGVBQUE7Q1I0dkNEO0FRM3ZDQzs7RUFFRSxlQUFBO0NSNnZDSDtBT2xwQ0Q7RUM5R0UsZUFBQTtDUm13Q0Q7QVFsd0NDOztFQUVFLGVBQUE7Q1Jvd0NIO0FPdHBDRDtFQ2pIRSxlQUFBO0NSMHdDRDtBUXp3Q0M7O0VBRUUsZUFBQTtDUjJ3Q0g7QU90cENEO0VBR0UsWUFBQTtFRTNIQSwwQkFBQTtDVGt4Q0Q7QVNqeENDOztFQUVFLDBCQUFBO0NUbXhDSDtBT3hwQ0Q7RUU5SEUsMEJBQUE7Q1R5eENEO0FTeHhDQzs7RUFFRSwwQkFBQTtDVDB4Q0g7QU81cENEO0VFaklFLDBCQUFBO0NUZ3lDRDtBUy94Q0M7O0VBRUUsMEJBQUE7Q1RpeUNIO0FPaHFDRDtFRXBJRSwwQkFBQTtDVHV5Q0Q7QVN0eUNDOztFQUVFLDBCQUFBO0NUd3lDSDtBT3Bx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LG9CQUFBO0NkZytDSDtBY2orQ0M7RUFDRSxvQkFBQTtDZG0rQ0g7QWNwK0NDO0VBQ0UsV0FBQTtDZHMrQ0g7QWN2K0NDO0VBQ0Usb0JBQUE7Q2R5K0NIO0FjMStDQztFQUNFLG9CQUFBO0NkNCtDSDtBYzcrQ0M7RUFDRSxXQUFBO0NkKytDSDtBY2gvQ0M7RUFDRSxvQkFBQTtDZGsvQ0g7QWNuL0NDO0VBQ0Usb0JBQUE7Q2RxL0NIO0FjdC9DQztFQUNFLFdBQUE7Q2R3L0NIO0Fjei9DQztFQUNFLG9CQUFBO0NkMi9DSDtBYzUvQ0M7RUFDRSxtQkFBQTtDZDgvQ0g7QWNoL0NDO0VBQ0UsWUFBQTtDZGsvQ0g7QWNuL0NDO0VBQ0Usb0JBQUE7Q2RxL0NIO0FjdC9DQztFQUNFLG9CQUFBO0Nkdy9DSDtBY3ovQ0M7RUFDRSxXQUFBO0NkMi9DSDtBYzUvQ0M7RUFDRSxvQkFBQTtDZDgvQ0g7QWMvL0NDO0VBQ0Usb0JBQUE7Q2RpZ0RIO0FjbGdEQztFQUNFLFdBQUE7Q2RvZ0RIO0FjcmdEQztFQUNFLG9CQUFBO0NkdWdESDtBY3hnREM7RUFDRSxvQkFBQTtDZDBnREg7QWMzZ0RDO0VBQ0UsV0FBQTtDZDZnREg7QWM5Z0RDO0VBQ0Usb0JBQUE7Q2RnaERIO0FjamhEQztFQUNFLG1CQUFBO0NkbWhESDtBYy9nREM7RUFDRSxZQUFBO0NkaWhESDtBY2ppREM7RUFDRSxXQUFBO0NkbWlESDtBY3BpREM7RUFDRSxtQkFBQTtDZHNpREg7QWN2aURDO0VBQ0UsbUJBQUE7Q2R5aURIO0FjMWlEQztFQUNFLFVBQUE7Q2Q0aURIO0FjN2lEQztFQUNFLG1CQUFBO0NkK2lESDtBY2hqREM7RUFDRSxtQkFBQTtDZGtqREg7QWNuakRDO0VBQ0UsVUFBQTtDZHFqREg7QWN0akRDO0VBQ0UsbUJBQUE7Q2R3akRIO0FjempEQztFQUNFLG1CQUFBO0NkMmpESDtBYzVqREM7RUFDRSxVQUFBO0NkOGpESDtBYy9qREM7RUFDRSxtQkFBQTtDZGlrREg7QWNsa0RDO0VBQ0Usa0JBQUE7Q2Rva0RIO0FjaGtEQztFQUNFLFdBQUE7Q2Rra0RIO0FjcGpEQztFQUNFLGtCQUFBO0Nkc2pESDtBY3ZqREM7RUFDRSwwQkFBQTtDZHlqREg7QWMxakRDO0VBQ0UsMEJBQUE7Q2Q0akRIO0FjN2pEQztFQUNFLGlCQUFBO0NkK2pESDtBY2hrREM7RUFDRSwwQkFBQTtDZGtrREg7QWNua0RDO0VBQ0UsMEJBQUE7Q2Rxa0RIO0FjdGtEQztFQUNFLGlCQUFBO0Nkd2tESDtBY3prREM7RUFDRSwwQkFBQTtDZDJrREg7QWM1a0RDO0VBQ0UsMEJBQUE7Q2Q4a0RIO0FjL2tEQztFQUNFLGlCQUFBO0NkaWxESDtBY2xsREM7RUFDRSwwQkFBQTtDZG9sREg7QWNybERDO0VBQ0UseUJBQUE7Q2R1bERIO0FjeGxEQztFQUNFLGdCQUFBO0NkMGxESDtBWW5tREQ7RUV6Qkk7SUFDRSxZQUFBO0dkK25ESDtFY3huREQ7SUFDRSxZQUFBO0dkMG5ERDtFYzNuREQ7SUFDRSxvQkFBQTtHZDZuREQ7RWM5bkREO0lBQ0Usb0JBQUE7R2Rnb0REO0Vjam9ERDtJQUNFLFdBQUE7R2Rtb0REO0VjcG9ERDtJQUNFLG9CQUFBO0dkc29ERDtFY3ZvREQ7SUFDRSxvQkFBQTtHZHlvREQ7RWMxb0REO0lBQ0UsV0FBQTtHZDRvREQ7RWM3b0REO0lBQ0Usb0JBQUE7R2Qrb0REO0VjaHBERDtJQUNFLG9CQUFBO0dka3BERDtFY25wREQ7SUFDRSxXQUFBO0dkcXBERDtFY3RwREQ7SUFDRSxvQkFBQTtHZHdwREQ7RWN6cEREO0lBQ0UsbUJBQUE7R2QycEREO0VjN29ERDtJQUNFLFlBQUE7R2Qrb0REO0VjaHBERDtJQUNFLG9CQUFBO0dka3BERDtFY25wREQ7SUFDRSxvQkFBQTtHZHFwREQ7RWN0cEREO0lBQ0UsV0FBQTtHZHdwREQ7RWN6cEREO0lBQ0Usb0JBQUE7R2QycEREO0VjNXBERDtJQUNFLG9CQUFBO0dkOHBERDtFYy9wREQ7SUFDRSxXQUFBO0dkaXFERDtFY2xxREQ7SUFDRSxvQkFBQTtHZG9xREQ7RWNycUREO0lBQ0Usb0JBQUE7R2R1cUREO0VjeHFERDtJQUNFLFdBQUE7R2QwcUREO0VjM3FERDtJQUNFLG9CQUFBO0dkNnFERDtFYzlxREQ7SUFDRSxtQkFBQTtHZGdyREQ7RWM1cUREO0lBQ0UsWUFBQTtHZDhxREQ7RWM5ckREO0lBQ0UsV0FBQTtHZGdzREQ7RWNqc0REO0lBQ0UsbUJBQUE7R2Rtc0REO0VjcHNERDtJQUNFLG1CQUFBO0dkc3NERDtFY3ZzREQ7SUFDRSxVQUFBO0dkeXNERDtFYzFzREQ7SUFDRSxtQkFBQTtHZDRzREQ7RWM3c0REO0lBQ0UsbUJBQUE7R2Qrc0REO0VjaHRERDtJQUNFLFVBQUE7R2RrdEREO0VjbnRERDtJQUNFLG1CQUFBO0dkcXRERDtFY3R0REQ7SUFDRSxtQkFBQTtHZHd0REQ7RWN6dEREO0lBQ0UsVUFBQTtHZDJ0REQ7RWM1dEREO0lBQ0UsbUJBQUE7R2Q4dEREO0VjL3RERDtJQUNFLGtCQUFBO0dkaXVERDtFYzd0REQ7SUFDRSxXQUFBO0dkK3RERDtFY2p0REQ7SUFDRSxrQkFBQTtHZG10REQ7RWNwdEREO0lBQ0UsMEJBQUE7R2RzdEREO0VjdnRERDtJQUNFLDBCQUFBO0dkeXRERDtFYzF0REQ7SUFDRSxpQkFBQTtHZDR0REQ7RWM3dEREO0lBQ0UsMEJBQUE7R2QrdEREO0VjaHVERDtJQUNFLDBCQUFBO0dka3VERDtFY251REQ7SUFDRSxpQkFBQTtHZHF1REQ7RWN0dUREO0lBQ0UsMEJBQUE7R2R3dUREO0VjenVERDtJQUNFLDBCQUFBO0dkMnVERDtFYzV1REQ7SUFDRSxpQkFBQTtHZDh1REQ7RWMvdUREO0lBQ0UsMEJBQUE7R2RpdkREO0VjbHZERDtJQUNFLHlCQUFBO0dkb3ZERDtFY3J2REQ7SUFDRSxnQkFBQTtHZHV2REQ7Q0FDRjtBWXh2REQ7RUVsQ0k7SUFDRSxZQUFBO0dkNnhESDtFY3R4REQ7SUFDRSxZQUFBO0dkd3hERDtFY3p4REQ7SUFDRSxvQkFBQTtHZDJ4REQ7RWM1eEREO0lBQ0Usb0JBQUE7R2Q4eEREO0VjL3hERDtJQUNFLFdBQUE7R2RpeUREO0VjbHlERDtJQUNFLG9CQUFBO0dkb3lERDtFY3J5REQ7SUFDRSxvQkFBQTtHZHV5REQ7RWN4eUREO0lBQ0UsV0FBQTtHZDB5REQ7RWMzeUREO0lBQ0Usb0JBQUE7R2Q2eUREO0VjOXlERDtJQUNFLG9CQUFBO0dkZ3pERDtFY2p6REQ7SUFDRSxXQUFBO0dkbXpERDtFY3B6REQ7SUFDRSxvQkFBQTtHZHN6REQ7RWN2ekREO0lBQ0UsbUJBQUE7R2R5ekREO0VjM3lERDtJQUNFLFlBQUE7R2Q2eUREO0VjOXlERDtJQUNFLG9CQUFBO0dkZ3pERDtFY2p6REQ7SUFDRSxvQkFBQTtHZG16REQ7RWNwekREO0lBQ0UsV0FBQTtHZHN6REQ7RWN2ekREO0lBQ0Usb0JBQUE7R2R5ekREO0VjMXpERDtJQUNFLG9CQUFBO0dkNHpERDtFYzd6REQ7SUFDRSxXQUFBO0dkK3pERDtFY2gwREQ7SUFDRSxvQkFBQTtHZGswREQ7RWNuMEREO0lBQ0Usb0JBQUE7R2RxMEREO0VjdDBERDtJQUNFLFdBQUE7R2R3MEREO0VjejBERDtJQUNFLG9CQUFBO0dkMjBERDtFYzUwREQ7SUFDRSxtQkFBQTtHZDgwREQ7RWMxMEREO0lBQ0UsWUFBQTtHZDQwREQ7RWM1MUREO0lBQ0UsV0FBQTtHZDgxREQ7RWMvMUREO0lBQ0UsbUJBQUE7R2RpMkREO0VjbDJERDtJQUNFLG1CQUFBO0dkbzJERDtFY3IyREQ7SUFDRSxVQUFBO0dkdTJERDtFY3gyREQ7SUFDRSxtQkFBQTtHZDAyREQ7RWMzMkREO0lBQ0UsbUJBQUE7R2Q2MkREO0VjOTJERDtJQUNFLFVBQUE7R2RnM0REO0VjajNERDtJQUNFLG1CQUFBO0dkbTNERDtFY3AzREQ7SUFDRSxtQkFBQTtHZHMzREQ7RWN2M0REO0lBQ0UsVUFBQTtHZHkzREQ7RWMxM0REO0lBQ0UsbUJBQUE7R2Q0M0REO0VjNzNERDtJQUNFLGtCQUFBO0dkKzNERDtFYzMzREQ7SUFDRSxXQUFBO0dkNjNERDtFYy8yREQ7SUFDRSxrQkFBQTtHZGkzREQ7RWNsM0REO0lBQ0UsMEJBQUE7R2RvM0REO0VjcjNERDtJQUNFLDBCQUFBO0dkdTNERDtFY3gzREQ7SUFDRSxpQkFBQTtHZDAzREQ7RWMzM0REO0lBQ0UsMEJBQUE7R2Q2M0REO0VjOTNERDtJQUNFLDBCQUFBO0dkZzRERDtFY2o0REQ7SUFDRSxpQkFBQTtHZG00REQ7RWNwNEREO0lBQ0UsMEJBQUE7R2RzNEREO0VjdjRERDtJQUNFLDBCQUFBO0dkeTRERDtFYzE0REQ7SUFDRSxpQkFBQTtHZDQ0REQ7RWM3NEREO0lBQ0UsMEJBQUE7R2QrNEREO0VjaDVERDtJQUNFLHlCQUFBO0dkazVERDtFY241REQ7SUFDRSxnQkFBQTtHZHE1REQ7Q0FDRjtBWTc0REQ7RUUzQ0k7SUFDRSxZQUFBO0dkMjdESDtFY3A3REQ7SUFDRSxZQUFBO0dkczdERDtFY3Y3REQ7SUFDRSxvQkFBQTtHZHk3REQ7RWMxN0REO0lBQ0Usb0JBQUE7R2Q0N0REO0VjNzdERDtJQUNFLFdBQUE7R2QrN0REO0VjaDhERDtJQUNFLG9CQUFBO0dkazhERDtFY244REQ7SUFDRSxvQkFBQTtHZHE4REQ7RWN0OEREO0lBQ0UsV0FBQTtHZHc4REQ7RWN6OEREO0lBQ0Usb0JBQUE7R2QyOEREO0VjNThERDtJQUNFLG9CQUFBO0dkODhERDtFYy84REQ7SUFDRSxXQUFBO0dkaTlERDtFY2w5REQ7SUFDRSxvQkFBQTtHZG85REQ7RWNyOUREO0lBQ0UsbUJBQUE7R2R1OUREO0VjejhERDtJQUNFLFlBQUE7R2QyOEREO0VjNThERDtJQUNFLG9CQUFBO0dkODhERDtFYy84REQ7SUFDRSxvQkFBQTtHZGk5REQ7RWNsOUREO0lBQ0UsV0FBQTtHZG85REQ7RWNyOUREO0lBQ0Usb0JBQUE7R2R1OUREO0VjeDlERDtJQUNFLG9CQUFBO0dkMDlERDtFYzM5REQ7SUFDRSxXQUFBO0dkNjlERDtFYzk5REQ7SUFDRSxvQkFBQTtHZGcrREQ7RWNqK0REO0lBQ0Usb0JBQUE7R2RtK0REO0VjcCtERDtJQUNFLFdBQUE7R2RzK0REO0VjditERDtJQUNFLG9CQUFBO0dkeStERDtFYzErREQ7SUFDRSxtQkFBQTtHZDQrREQ7RWN4K0REO0lBQ0UsWUFBQTtHZDArREQ7RWMxL0REO0lBQ0UsV0FBQTtHZDQvREQ7RWM3L0REO0lBQ0Us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O0M3SjJpWEw7QTZKaGtYRDtFQXdCeUIsWUFBQTtDN0oyaVh4QjtBOEpua1hEO0V4QzRCSSxpQkFBQTtDdEgwaVhIO0E4SnRrWEQ7RXhDK0JJLGlCQUFBO0N0SDBpWEg7QThKemtYRDtFQUdJLG1CQUFBO0M5SnlrWEg7QStKNWtYRDtFQUVJLGtDQUFBO0VBQ0Esb0JBQUE7Qy9KNmtYSDtBK0pobFhEO0VBSVEsb0JBQUE7Qy9KK2tYUDtBK0pubFhEO0VBS3NCLHNCQUFBO0MvSmlsWHJCO0ErSnRsWEQ7RUFRSSxrQkFBQTtDL0ppbFhIO0ErSnpsWEQ7RUFTNEIsMEJBQUE7Qy9KbWxYM0I7QStKNWxYRDtFQVk2QixpQkFBQTtDL0ptbFg1QjtBK0ovbFhEO0VBZVUsaUJBQUE7Qy9KbWxYVDtBZ0tsbVhEO0VBRUksa0JBQUE7RUFDQSxpQkFBQTtFQUNBLG9CQUFBO0U3RnNERixpQkFBQTtFQUNBLG1CQUFBO0NuRThpWEQ7QWdLem1YRDtFQU9NLGFBQUE7RUFDQSxnQkFBQTtFQUNBLGlCQUFBO0NoS3FtWEw7QWdLOW1YRDtFQVdRLFdBQUE7RUFDQSxtQkFBQTtFQUNBLGdCQUFBO0NoS3NtWFA7QWdLbm5YRDtFQWdCUSxlQUFBO0VBQ0EsMEJBQUE7Q2hLc21YUDtBZ0twbVhLO0VBQ0UsYUFBQTtFQUNBLGdCQUFBO0VBQ0Esa0JBQUE7Q2hLc21YUDtBZ0t6bVhLO0VBS0ksZ0JBQUE7RUFDQSxrQkFBQTtFQUNBLDBCQUFBO0NoS3VtWFQ7QWdLOW1YSztFQVVJLGlCQUFBO0NoS3VtWFQ7QWdLcG1YSztFQUNFLGFBQUE7RUFDQSxnQkFBQTtFQUNBLGlCQUFBO0NoS3NtWFA7QWdLem1YSztFQUtJLGdCQUFBO0VBQ0Esa0JBQUE7RUFDQSwwQkFBQTtDaEt1bVhUO0FnSzltWEs7RUFVSSxpQkFBQTtDaEt1bVhUO0FBQ0QsZUFBZSIsImZpbGUiOiJpbXBhYy1hbmd1bGFyLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4qKiBBbGwgQGltcG9ydCdzIHNob3VsZCBsaXZlIGluIHRoaXMgZmlsZSFcbiovXG4vKipcbiAqICBEbyBub3QgcmVtb3ZlIHRoaXMgY29tbWVudHMgYmVsbG93LiBJdCdzIHRoZSBtYXJrZXJzIHVzZWQgYnkgd2lyZWRlcCB0byBpbmplY3RcbiAqICBsZXNzIGRlcGVuZGVuY2llcyB3aGVuIGRlZmluZWQgaW4gdGhlIGJvd2VyLmpzb24gb2YgeW91ciBkZXBlbmRlbmNpZXNcbiAqL1xuLyohXG4gKiBCb290c3RyYXAgdjMuMy43IChodHRwOi8vZ2V0Ym9vdHN0cmFwLmNvbSlcbiAqIENvcHlyaWdodCAyMDExLTIwMTYgVHdpdHRlciwgSW5jLlxuICogTGljZW5zZWQgdW5kZXIgTUlUIChodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvYmxvYi9tYXN0ZXIvTElDRU5TRSlcbiAqL1xuLyohIG5vcm1hbGl6ZS5jc3MgdjMuMC4zIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xuaHRtbCB7XG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xuICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xufVxuYm9keSB7XG4gIG1hcmdpbjogMDtcbn1cbmFydGljbGUsXG5hc2lkZSxcbmRldGFpbHMsXG5maWdjYXB0aW9uLFxuZmlndXJlLFxuZm9vdGVyLFxuaGVhZGVyLFxuaGdyb3VwLFxubWFpbixcbm1lbnUsXG5uYXYsXG5zZWN0aW9uLFxuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuYXVkaW8sXG5jYW52YXMsXG5wcm9ncmVzcyxcbnZpZGVvIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5hdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICBkaXNwbGF5OiBub25lO1xuICBoZWlnaHQ6IDA7XG59XG5baGlkZGVuXSxcbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbmE6YWN0aXZlLFxuYTpob3ZlciB7XG4gIG91dGxpbmU6IDA7XG59XG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQ7XG59XG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5kZm4ge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDAuNjdlbSAwO1xufVxubWFyayB7XG4gIGJhY2tncm91bmQ6ICNmZjA7XG4gIGNvbG9yOiAjMDAwO1xufVxuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbn1cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTtcbn1cbmltZyB7XG4gIGJvcmRlcjogMDtcbn1cbnN2Zzpub3QoOnJvb3QpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMWVtIDQwcHg7XG59XG5ociB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICBoZWlnaHQ6IDA7XG59XG5wcmUge1xuICBvdmVyZmxvdzogYXV0bztcbn1cbmNvZGUsXG5rYmQsXG5wcmUsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDFlbTtcbn1cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBmb250OiBpbmhlcml0O1xuICBtYXJnaW46IDA7XG59XG5idXR0b24ge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cbmJ1dHRvbixcbnNlbGVjdCB7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuYnV0dG9uLFxuaHRtbCBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLFxuaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxuaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5idXR0b25bZGlzYWJsZWRdLFxuaHRtbCBpbnB1dFtkaXNhYmxlZF0ge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5pbnB1dDo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDtcbn1cbmlucHV0IHtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbn1cbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcbmlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmc6IDA7XG59XG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbn1cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG59XG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cbmZpZWxkc2V0IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2MwYzBjMDtcbiAgbWFyZ2luOiAwIDJweDtcbiAgcGFkZGluZzogMC4zNWVtIDAuNjI1ZW0gMC43NWVtO1xufVxubGVnZW5kIHtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAwO1xufVxudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bztcbn1cbm9wdGdyb3VwIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG50YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIGJvcmRlci1zcGFjaW5nOiAwO1xufVxudGQsXG50aCB7XG4gIHBhZGRpbmc6IDA7XG59XG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdHbHlwaGljb25zIEhhbGZsaW5ncyc7XG4gIHNyYzogdXJsKCcuLi9mb250cy9nbHlwaGljb25zLWhhbGZsaW5ncy1yZWd1bGFyLmVvdCcpO1xuICBzcmM6IHVybCgnLi4vZm9udHMvZ2x5cGhpY29ucy1oYWxmbGluZ3MtcmVndWxhci5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLCB1cmwoJy4uL2ZvbnRzL2dseXBoaWNvbnMtaGFsZmxpbmdzLXJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnLi4vZm9udHMvZ2x5cGhpY29ucy1oYWxmbGluZ3MtcmVndWxhci53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnLi4vZm9udHMvZ2x5cGhpY29ucy1oYWxmbGluZ3MtcmVndWxhci50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksIHVybCgnLi4vZm9udHMvZ2x5cGhpY29ucy1oYWxmbGluZ3MtcmVndWxhci5zdmcjZ2x5cGhpY29uc19oYWxmbGluZ3NyZWd1bGFyJykgZm9ybWF0KCdzdmcnKTtcbn1cbi5nbHlwaGljb24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogMXB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiAnR2x5cGhpY29ucyBIYWxmbGluZ3MnO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbn1cbi5nbHlwaGljb24tYXN0ZXJpc2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDAwMmFcIjtcbn1cbi5nbHlwaGljb24tcGx1czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcMDAyYlwiO1xufVxuLmdseXBoaWNvbi1ldXJvOmJlZm9yZSxcbi5nbHlwaGljb24tZXVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFwyMGFjXCI7XG59XG4uZ2x5cGhpY29uLW1pbnVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFwyMjEyXCI7XG59XG4uZ2x5cGhpY29uLWNsb3VkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFwyNjAxXCI7XG59XG4uZ2x5cGhpY29uLWVudmVsb3BlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFwyNzA5XCI7XG59XG4uZ2x5cGhpY29uLXBlbmNpbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcMjcwZlwiO1xufVxuLmdseXBoaWNvbi1nbGFzczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAwMVwiO1xufVxuLmdseXBoaWNvbi1tdXNpYzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAwMlwiO1xufVxuLmdseXBoaWNvbi1zZWFyY2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMDNcIjtcbn1cbi5nbHlwaGljb24taGVhcnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMDVcIjtcbn1cbi5nbHlwaGljb24tc3RhcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAwNlwiO1xufVxuLmdseXBoaWNvbi1zdGFyLWVtcHR5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDA3XCI7XG59XG4uZ2x5cGhpY29uLXVzZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMDhcIjtcbn1cbi5nbHlwaGljb24tZmlsbTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAwOVwiO1xufVxuLmdseXBoaWNvbi10aC1sYXJnZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAxMFwiO1xufVxuLmdseXBoaWNvbi10aDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAxMVwiO1xufVxuLmdseXBoaWNvbi10aC1saXN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDEyXCI7XG59XG4uZ2x5cGhpY29uLW9rOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDEzXCI7XG59XG4uZ2x5cGhpY29uLXJlbW92ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAxNFwiO1xufVxuLmdseXBoaWNvbi16b29tLWluOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDE1XCI7XG59XG4uZ2x5cGhpY29uLXpvb20tb3V0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDE2XCI7XG59XG4uZ2x5cGhpY29uLW9mZjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAxN1wiO1xufVxuLmdseXBoaWNvbi1zaWduYWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMThcIjtcbn1cbi5nbHlwaGljb24tY29nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDE5XCI7XG59XG4uZ2x5cGhpY29uLXRyYXNoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDIwXCI7XG59XG4uZ2x5cGhpY29uLWhvbWU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMjFcIjtcbn1cbi5nbHlwaGljb24tZmlsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAyMlwiO1xufVxuLmdseXBoaWNvbi10aW1lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDIzXCI7XG59XG4uZ2x5cGhpY29uLXJvYWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMjRcIjtcbn1cbi5nbHlwaGljb24tZG93bmxvYWQtYWx0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDI1XCI7XG59XG4uZ2x5cGhpY29uLWRvd25sb2FkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDI2XCI7XG59XG4uZ2x5cGhpY29uLXVwbG9hZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAyN1wiO1xufVxuLmdseXBoaWNvbi1pbmJveDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAyOFwiO1xufVxuLmdseXBoaWNvbi1wbGF5LWNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAyOVwiO1xufVxuLmdseXBoaWNvbi1yZXBlYXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMzBcIjtcbn1cbi5nbHlwaGljb24tcmVmcmVzaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAzMVwiO1xufVxuLmdseXBoaWNvbi1saXN0LWFsdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAzMlwiO1xufVxuLmdseXBoaWNvbi1sb2NrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDMzXCI7XG59XG4uZ2x5cGhpY29uLWZsYWc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMzRcIjtcbn1cbi5nbHlwaGljb24taGVhZHBob25lczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAzNVwiO1xufVxuLmdseXBoaWNvbi12b2x1bWUtb2ZmOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDM2XCI7XG59XG4uZ2x5cGhpY29uLXZvbHVtZS1kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDM3XCI7XG59XG4uZ2x5cGhpY29uLXZvbHVtZS11cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAzOFwiO1xufVxuLmdseXBoaWNvbi1xcmNvZGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMzlcIjtcbn1cbi5nbHlwaGljb24tYmFyY29kZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA0MFwiO1xufVxuLmdseXBoaWNvbi10YWc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNDFcIjtcbn1cbi5nbHlwaGljb24tdGFnczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA0MlwiO1xufVxuLmdseXBoaWNvbi1ib29rOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDQzXCI7XG59XG4uZ2x5cGhpY29uLWJvb2ttYXJrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDQ0XCI7XG59XG4uZ2x5cGhpY29uLXByaW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDQ1XCI7XG59XG4uZ2x5cGhpY29uLWNhbWVyYTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA0NlwiO1xufVxuLmdseXBoaWNvbi1mb250OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDQ3XCI7XG59XG4uZ2x5cGhpY29uLWJvbGQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNDhcIjtcbn1cbi5nbHlwaGljb24taXRhbGljOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDQ5XCI7XG59XG4uZ2x5cGhpY29uLXRleHQtaGVpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDUwXCI7XG59XG4uZ2x5cGhpY29uLXRleHQtd2lkdGg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNTFcIjtcbn1cbi5nbHlwaGljb24tYWxpZ24tbGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA1MlwiO1xufVxuLmdseXBoaWNvbi1hbGlnbi1jZW50ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNTNcIjtcbn1cbi5nbHlwaGljb24tYWxpZ24tcmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNTRcIjtcbn1cbi5nbHlwaGljb24tYWxpZ24tanVzdGlmeTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA1NVwiO1xufVxuLmdseXBoaWNvbi1saXN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDU2XCI7XG59XG4uZ2x5cGhpY29uLWluZGVudC1sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDU3XCI7XG59XG4uZ2x5cGhpY29uLWluZGVudC1yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA1OFwiO1xufVxuLmdseXBoaWNvbi1mYWNldGltZS12aWRlbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA1OVwiO1xufVxuLmdseXBoaWNvbi1waWN0dXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDYwXCI7XG59XG4uZ2x5cGhpY29uLW1hcC1tYXJrZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNjJcIjtcbn1cbi5nbHlwaGljb24tYWRqdXN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDYzXCI7XG59XG4uZ2x5cGhpY29uLXRpbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNjRcIjtcbn1cbi5nbHlwaGljb24tZWRpdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA2NVwiO1xufVxuLmdseXBoaWNvbi1zaGFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA2NlwiO1xufVxuLmdseXBoaWNvbi1jaGVjazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA2N1wiO1xufVxuLmdseXBoaWNvbi1tb3ZlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDY4XCI7XG59XG4uZ2x5cGhpY29uLXN0ZXAtYmFja3dhcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNjlcIjtcbn1cbi5nbHlwaGljb24tZmFzdC1iYWNrd2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA3MFwiO1xufVxuLmdseXBoaWNvbi1iYWNrd2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA3MVwiO1xufVxuLmdseXBoaWNvbi1wbGF5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDcyXCI7XG59XG4uZ2x5cGhpY29uLXBhdXNlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDczXCI7XG59XG4uZ2x5cGhpY29uLXN0b3A6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNzRcIjtcbn1cbi5nbHlwaGljb24tZm9yd2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA3NVwiO1xufVxuLmdseXBoaWNvbi1mYXN0LWZvcndhcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNzZcIjtcbn1cbi5nbHlwaGljb24tc3RlcC1mb3J3YXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDc3XCI7XG59XG4uZ2x5cGhpY29uLWVqZWN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDc4XCI7XG59XG4uZ2x5cGhpY29uLWNoZXZyb24tbGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA3OVwiO1xufVxuLmdseXBoaWNvbi1jaGV2cm9uLXJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDgwXCI7XG59XG4uZ2x5cGhpY29uLXBsdXMtc2lnbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA4MVwiO1xufVxuLmdseXBoaWNvbi1taW51cy1zaWduOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDgyXCI7XG59XG4uZ2x5cGhpY29uLXJlbW92ZS1zaWduOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDgzXCI7XG59XG4uZ2x5cGhpY29uLW9rLXNpZ246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwODRcIjtcbn1cbi5nbHlwaGljb24tcXVlc3Rpb24tc2lnbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA4NVwiO1xufVxuLmdseXBoaWNvbi1pbmZvLXNpZ246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwODZcIjtcbn1cbi5nbHlwaGljb24tc2NyZWVuc2hvdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA4N1wiO1xufVxuLmdseXBoaWNvbi1yZW1vdmUtY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDg4XCI7XG59XG4uZ2x5cGhpY29uLW9rLWNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA4OVwiO1xufVxuLmdseXBoaWNvbi1iYW4tY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDkwXCI7XG59XG4uZ2x5cGhpY29uLWFycm93LWxlZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwOTFcIjtcbn1cbi5nbHlwaGljb24tYXJyb3ctcmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwOTJcIjtcbn1cbi5nbHlwaGljb24tYXJyb3ctdXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwOTNcIjtcbn1cbi5nbHlwaGljb24tYXJyb3ctZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA5NFwiO1xufVxuLmdseXBoaWNvbi1zaGFyZS1hbHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwOTVcIjtcbn1cbi5nbHlwaGljb24tcmVzaXplLWZ1bGw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwOTZcIjtcbn1cbi5nbHlwaGljb24tcmVzaXplLXNtYWxsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDk3XCI7XG59XG4uZ2x5cGhpY29uLWV4Y2xhbWF0aW9uLXNpZ246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMDFcIjtcbn1cbi5nbHlwaGljb24tZ2lmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEwMlwiO1xufVxuLmdseXBoaWNvbi1sZWFmOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTAzXCI7XG59XG4uZ2x5cGhpY29uLWZpcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMDRcIjtcbn1cbi5nbHlwaGljb24tZXllLW9wZW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMDVcIjtcbn1cbi5nbHlwaGljb24tZXllLWNsb3NlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTA2XCI7XG59XG4uZ2x5cGhpY29uLXdhcm5pbmctc2lnbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEwN1wiO1xufVxuLmdseXBoaWNvbi1wbGFuZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEwOFwiO1xufVxuLmdseXBoaWNvbi1jYWxlbmRhcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEwOVwiO1xufVxuLmdseXBoaWNvbi1yYW5kb206YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMTBcIjtcbn1cbi5nbHlwaGljb24tY29tbWVudDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTExMVwiO1xufVxuLmdseXBoaWNvbi1tYWduZXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMTJcIjtcbn1cbi5nbHlwaGljb24tY2hldnJvbi11cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTExM1wiO1xufVxuLmdseXBoaWNvbi1jaGV2cm9uLWRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMTRcIjtcbn1cbi5nbHlwaGljb24tcmV0d2VldDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTExNVwiO1xufVxuLmdseXBoaWNvbi1zaG9wcGluZy1jYXJ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTE2XCI7XG59XG4uZ2x5cGhpY29uLWZvbGRlci1jbG9zZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTExN1wiO1xufVxuLmdseXBoaWNvbi1mb2xkZXItb3BlbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTExOFwiO1xufVxuLmdseXBoaWNvbi1yZXNpemUtdmVydGljYWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMTlcIjtcbn1cbi5nbHlwaGljb24tcmVzaXplLWhvcml6b250YWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMjBcIjtcbn1cbi5nbHlwaGljb24taGRkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTIxXCI7XG59XG4uZ2x5cGhpY29uLWJ1bGxob3JuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTIyXCI7XG59XG4uZ2x5cGhpY29uLWJlbGw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMjNcIjtcbn1cbi5nbHlwaGljb24tY2VydGlmaWNhdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMjRcIjtcbn1cbi5nbHlwaGljb24tdGh1bWJzLXVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTI1XCI7XG59XG4uZ2x5cGhpY29uLXRodW1icy1kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTI2XCI7XG59XG4uZ2x5cGhpY29uLWhhbmQtcmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMjdcIjtcbn1cbi5nbHlwaGljb24taGFuZC1sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTI4XCI7XG59XG4uZ2x5cGhpY29uLWhhbmQtdXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMjlcIjtcbn1cbi5nbHlwaGljb24taGFuZC1kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTMwXCI7XG59XG4uZ2x5cGhpY29uLWNpcmNsZS1hcnJvdy1yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEzMVwiO1xufVxuLmdseXBoaWNvbi1jaXJjbGUtYXJyb3ctbGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEzMlwiO1xufVxuLmdseXBoaWNvbi1jaXJjbGUtYXJyb3ctdXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMzNcIjtcbn1cbi5nbHlwaGljb24tY2lyY2xlLWFycm93LWRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMzRcIjtcbn1cbi5nbHlwaGljb24tZ2xvYmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMzVcIjtcbn1cbi5nbHlwaGljb24td3JlbmNoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTM2XCI7XG59XG4uZ2x5cGhpY29uLXRhc2tzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTM3XCI7XG59XG4uZ2x5cGhpY29uLWZpbHRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEzOFwiO1xufVxuLmdseXBoaWNvbi1icmllZmNhc2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMzlcIjtcbn1cbi5nbHlwaGljb24tZnVsbHNjcmVlbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE0MFwiO1xufVxuLmdseXBoaWNvbi1kYXNoYm9hcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNDFcIjtcbn1cbi5nbHlwaGljb24tcGFwZXJjbGlwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTQyXCI7XG59XG4uZ2x5cGhpY29uLWhlYXJ0LWVtcHR5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTQzXCI7XG59XG4uZ2x5cGhpY29uLWxpbms6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNDRcIjtcbn1cbi5nbHlwaGljb24tcGhvbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNDVcIjtcbn1cbi5nbHlwaGljb24tcHVzaHBpbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE0NlwiO1xufVxuLmdseXBoaWNvbi11c2Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNDhcIjtcbn1cbi5nbHlwaGljb24tZ2JwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTQ5XCI7XG59XG4uZ2x5cGhpY29uLXNvcnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNTBcIjtcbn1cbi5nbHlwaGljb24tc29ydC1ieS1hbHBoYWJldDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE1MVwiO1xufVxuLmdseXBoaWNvbi1zb3J0LWJ5LWFscGhhYmV0LWFsdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE1MlwiO1xufVxuLmdseXBoaWNvbi1zb3J0LWJ5LW9yZGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTUzXCI7XG59XG4uZ2x5cGhpY29uLXNvcnQtYnktb3JkZXItYWx0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTU0XCI7XG59XG4uZ2x5cGhpY29uLXNvcnQtYnktYXR0cmlidXRlczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE1NVwiO1xufVxuLmdseXBoaWNvbi1zb3J0LWJ5LWF0dHJpYnV0ZXMtYWx0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTU2XCI7XG59XG4uZ2x5cGhpY29uLXVuY2hlY2tlZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE1N1wiO1xufVxuLmdseXBoaWNvbi1leHBhbmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNThcIjtcbn1cbi5nbHlwaGljb24tY29sbGFwc2UtZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE1OVwiO1xufVxuLmdseXBoaWNvbi1jb2xsYXBzZS11cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE2MFwiO1xufVxuLmdseXBoaWNvbi1sb2ctaW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNjFcIjtcbn1cbi5nbHlwaGljb24tZmxhc2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNjJcIjtcbn1cbi5nbHlwaGljb24tbG9nLW91dDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE2M1wiO1xufVxuLmdseXBoaWNvbi1uZXctd2luZG93OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTY0XCI7XG59XG4uZ2x5cGhpY29uLXJlY29yZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE2NVwiO1xufVxuLmdseXBoaWNvbi1zYXZlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTY2XCI7XG59XG4uZ2x5cGhpY29uLW9wZW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNjdcIjtcbn1cbi5nbHlwaGljb24tc2F2ZWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNjhcIjtcbn1cbi5nbHlwaGljb24taW1wb3J0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTY5XCI7XG59XG4uZ2x5cGhpY29uLWV4cG9ydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE3MFwiO1xufVxuLmdseXBoaWNvbi1zZW5kOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTcxXCI7XG59XG4uZ2x5cGhpY29uLWZsb3BweS1kaXNrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTcyXCI7XG59XG4uZ2x5cGhpY29uLWZsb3BweS1zYXZlZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE3M1wiO1xufVxuLmdseXBoaWNvbi1mbG9wcHktcmVtb3ZlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTc0XCI7XG59XG4uZ2x5cGhpY29uLWZsb3BweS1zYXZlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTc1XCI7XG59XG4uZ2x5cGhpY29uLWZsb3BweS1vcGVuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTc2XCI7XG59XG4uZ2x5cGhpY29uLWNyZWRpdC1jYXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTc3XCI7XG59XG4uZ2x5cGhpY29uLXRyYW5zZmVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTc4XCI7XG59XG4uZ2x5cGhpY29uLWN1dGxlcnk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNzlcIjtcbn1cbi5nbHlwaGljb24taGVhZGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTgwXCI7XG59XG4uZ2x5cGhpY29uLWNvbXByZXNzZWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxODFcIjtcbn1cbi5nbHlwaGljb24tZWFycGhvbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxODJcIjtcbn1cbi5nbHlwaGljb24tcGhvbmUtYWx0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTgzXCI7XG59XG4uZ2x5cGhpY29uLXRvd2VyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTg0XCI7XG59XG4uZ2x5cGhpY29uLXN0YXRzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTg1XCI7XG59XG4uZ2x5cGhpY29uLXNkLXZpZGVvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTg2XCI7XG59XG4uZ2x5cGhpY29uLWhkLXZpZGVvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTg3XCI7XG59XG4uZ2x5cGhpY29uLXN1YnRpdGxlczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE4OFwiO1xufVxuLmdseXBoaWNvbi1zb3VuZC1zdGVyZW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxODlcIjtcbn1cbi5nbHlwaGljb24tc291bmQtZG9sYnk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxOTBcIjtcbn1cbi5nbHlwaGljb24tc291bmQtNS0xOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTkxXCI7XG59XG4uZ2x5cGhpY29uLXNvdW5kLTYtMTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE5MlwiO1xufVxuLmdseXBoaWNvbi1zb3VuZC03LTE6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxOTNcIjtcbn1cbi5nbHlwaGljb24tY29weXJpZ2h0LW1hcms6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxOTRcIjtcbn1cbi5nbHlwaGljb24tcmVnaXN0cmF0aW9uLW1hcms6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxOTVcIjtcbn1cbi5nbHlwaGljb24tY2xvdWQtZG93bmxvYWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxOTdcIjtcbn1cbi5nbHlwaGljb24tY2xvdWQtdXBsb2FkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTk4XCI7XG59XG4uZ2x5cGhpY29uLXRyZWUtY29uaWZlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE5OVwiO1xufVxuLmdseXBoaWNvbi10cmVlLWRlY2lkdW91czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIwMFwiO1xufVxuLmdseXBoaWNvbi1jZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIwMVwiO1xufVxuLmdseXBoaWNvbi1zYXZlLWZpbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMDJcIjtcbn1cbi5nbHlwaGljb24tb3Blbi1maWxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjAzXCI7XG59XG4uZ2x5cGhpY29uLWxldmVsLXVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjA0XCI7XG59XG4uZ2x5cGhpY29uLWNvcHk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMDVcIjtcbn1cbi5nbHlwaGljb24tcGFzdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMDZcIjtcbn1cbi5nbHlwaGljb24tYWxlcnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMDlcIjtcbn1cbi5nbHlwaGljb24tZXF1YWxpemVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjEwXCI7XG59XG4uZ2x5cGhpY29uLWtpbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMTFcIjtcbn1cbi5nbHlwaGljb24tcXVlZW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMTJcIjtcbn1cbi5nbHlwaGljb24tcGF3bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIxM1wiO1xufVxuLmdseXBoaWNvbi1iaXNob3A6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMTRcIjtcbn1cbi5nbHlwaGljb24ta25pZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjE1XCI7XG59XG4uZ2x5cGhpY29uLWJhYnktZm9ybXVsYTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIxNlwiO1xufVxuLmdseXBoaWNvbi10ZW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFwyNmZhXCI7XG59XG4uZ2x5cGhpY29uLWJsYWNrYm9hcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMThcIjtcbn1cbi5nbHlwaGljb24tYmVkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjE5XCI7XG59XG4uZ2x5cGhpY29uLWFwcGxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmOGZmXCI7XG59XG4uZ2x5cGhpY29uLWVyYXNlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjIxXCI7XG59XG4uZ2x5cGhpY29uLWhvdXJnbGFzczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcMjMxYlwiO1xufVxuLmdseXBoaWNvbi1sYW1wOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjIzXCI7XG59XG4uZ2x5cGhpY29uLWR1cGxpY2F0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIyNFwiO1xufVxuLmdseXBoaWNvbi1waWdneS1iYW5rOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjI1XCI7XG59XG4uZ2x5cGhpY29uLXNjaXNzb3JzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjI2XCI7XG59XG4uZ2x5cGhpY29uLWJpdGNvaW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMjdcIjtcbn1cbi5nbHlwaGljb24tYnRjOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjI3XCI7XG59XG4uZ2x5cGhpY29uLXhidDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIyN1wiO1xufVxuLmdseXBoaWNvbi15ZW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDAwYTVcIjtcbn1cbi5nbHlwaGljb24tanB5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFwwMGE1XCI7XG59XG4uZ2x5cGhpY29uLXJ1YmxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFwyMGJkXCI7XG59XG4uZ2x5cGhpY29uLXJ1YjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcMjBiZFwiO1xufVxuLmdseXBoaWNvbi1zY2FsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIzMFwiO1xufVxuLmdseXBoaWNvbi1pY2UtbG9sbHk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMzFcIjtcbn1cbi5nbHlwaGljb24taWNlLWxvbGx5LXRhc3RlZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIzMlwiO1xufVxuLmdseXBoaWNvbi1lZHVjYXRpb246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMzNcIjtcbn1cbi5nbHlwaGljb24tb3B0aW9uLWhvcml6b250YWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMzRcIjtcbn1cbi5nbHlwaGljb24tb3B0aW9uLXZlcnRpY2FsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjM1XCI7XG59XG4uZ2x5cGhpY29uLW1lbnUtaGFtYnVyZ2VyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjM2XCI7XG59XG4uZ2x5cGhpY29uLW1vZGFsLXdpbmRvdzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIzN1wiO1xufVxuLmdseXBoaWNvbi1vaWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMzhcIjtcbn1cbi5nbHlwaGljb24tZ3JhaW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMzlcIjtcbn1cbi5nbHlwaGljb24tc3VuZ2xhc3NlczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTI0MFwiO1xufVxuLmdseXBoaWNvbi10ZXh0LXNpemU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyNDFcIjtcbn1cbi5nbHlwaGljb24tdGV4dC1jb2xvcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTI0MlwiO1xufVxuLmdseXBoaWNvbi10ZXh0LWJhY2tncm91bmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyNDNcIjtcbn1cbi5nbHlwaGljb24tb2JqZWN0LWFsaWduLXRvcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTI0NFwiO1xufVxuLmdseXBoaWNvbi1vYmplY3QtYWxpZ24tYm90dG9tOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjQ1XCI7XG59XG4uZ2x5cGhpY29uLW9iamVjdC1hbGlnbi1ob3Jpem9udGFsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjQ2XCI7XG59XG4uZ2x5cGhpY29uLW9iamVjdC1hbGlnbi1sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjQ3XCI7XG59XG4uZ2x5cGhpY29uLW9iamVjdC1hbGlnbi12ZXJ0aWNhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTI0OFwiO1xufVxuLmdseXBoaWNvbi1vYmplY3QtYWxpZ24tcmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyNDlcIjtcbn1cbi5nbHlwaGljb24tdHJpYW5nbGUtcmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyNTBcIjtcbn1cbi5nbHlwaGljb24tdHJpYW5nbGUtbGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTI1MVwiO1xufVxuLmdseXBoaWNvbi10cmlhbmdsZS1ib3R0b206YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyNTJcIjtcbn1cbi5nbHlwaGljb24tdHJpYW5nbGUtdG9wOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjUzXCI7XG59XG4uZ2x5cGhpY29uLWNvbnNvbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyNTRcIjtcbn1cbi5nbHlwaGljb24tc3VwZXJzY3JpcHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyNTVcIjtcbn1cbi5nbHlwaGljb24tc3Vic2NyaXB0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjU2XCI7XG59XG4uZ2x5cGhpY29uLW1lbnUtbGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTI1N1wiO1xufVxuLmdseXBoaWNvbi1tZW51LXJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjU4XCI7XG59XG4uZ2x5cGhpY29uLW1lbnUtZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTI1OVwiO1xufVxuLmdseXBoaWNvbi1tZW51LXVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjYwXCI7XG59XG4qIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4qOmJlZm9yZSxcbio6YWZ0ZXIge1xuICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbmh0bWwge1xuICBmb250LXNpemU6IDEwcHg7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcbn1cbmJvZHkge1xuICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xuICBjb2xvcjogIzMzMzMzMztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cbmlucHV0LFxuYnV0dG9uLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbn1cbmEge1xuICBjb2xvcjogIzAwZTVmMDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuYTpob3ZlcixcbmE6Zm9jdXMge1xuICBjb2xvcjogIzAwOWNhMztcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5hOmZvY3VzIHtcbiAgb3V0bGluZTogNXB4IGF1dG8gLXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yO1xuICBvdXRsaW5lLW9mZnNldDogLTJweDtcbn1cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMDtcbn1cbmltZyB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4uaW1nLXJlc3BvbnNpdmUsXG4udGh1bWJuYWlsID4gaW1nLFxuLnRodW1ibmFpbCBhID4gaW1nLFxuLmNhcm91c2VsLWlubmVyID4gLml0ZW0gPiBpbWcsXG4uY2Fyb3VzZWwtaW5uZXIgPiAuaXRlbSA+IGEgPiBpbWcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG59XG4uaW1nLXJvdW5kZWQge1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG59XG4uaW1nLXRodW1ibmFpbCB7XG4gIHBhZGRpbmc6IDRweDtcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NTcxNDM7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcbiAgLW8tdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuLmltZy1jaXJjbGUge1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG59XG5ociB7XG4gIG1hcmdpbi10b3A6IDIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlZWVlZWU7XG59XG4uc3Itb25seSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDFweDtcbiAgaGVpZ2h0OiAxcHg7XG4gIG1hcmdpbjogLTFweDtcbiAgcGFkZGluZzogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcbiAgYm9yZGVyOiAwO1xufVxuLnNyLW9ubHktZm9jdXNhYmxlOmFjdGl2ZSxcbi5zci1vbmx5LWZvY3VzYWJsZTpmb2N1cyB7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IGF1dG87XG4gIG1hcmdpbjogMDtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIGNsaXA6IGF1dG87XG59XG5bcm9sZT1cImJ1dHRvblwiXSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbmgxLFxuaDIsXG5oMyxcbmg0LFxuaDUsXG5oNixcbi5oMSxcbi5oMixcbi5oMyxcbi5oNCxcbi5oNSxcbi5oNiB7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXdlaWdodDogNTAwO1xuICBsaW5lLWhlaWdodDogMS4xO1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbmgxIHNtYWxsLFxuaDIgc21hbGwsXG5oMyBzbWFsbCxcbmg0IHNtYWxsLFxuaDUgc21hbGwsXG5oNiBzbWFsbCxcbi5oMSBzbWFsbCxcbi5oMiBzbWFsbCxcbi5oMyBzbWFsbCxcbi5oNCBzbWFsbCxcbi5oNSBzbWFsbCxcbi5oNiBzbWFsbCxcbmgxIC5zbWFsbCxcbmgyIC5zbWFsbCxcbmgzIC5zbWFsbCxcbmg0IC5zbWFsbCxcbmg1IC5zbWFsbCxcbmg2IC5zbWFsbCxcbi5oMSAuc21hbGwsXG4uaDIgLnNtYWxsLFxuLmgzIC5zbWFsbCxcbi5oNCAuc21hbGwsXG4uaDUgLnNtYWxsLFxuLmg2IC5zbWFsbCB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogIzc3Nzc3Nztcbn1cbmgxLFxuLmgxLFxuaDIsXG4uaDIsXG5oMyxcbi5oMyB7XG4gIG1hcmdpbi10b3A6IDIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5oMSBzbWFsbCxcbi5oMSBzbWFsbCxcbmgyIHNtYWxsLFxuLmgyIHNtYWxsLFxuaDMgc21hbGwsXG4uaDMgc21hbGwsXG5oMSAuc21hbGwsXG4uaDEgLnNtYWxsLFxuaDIgLnNtYWxsLFxuLmgyIC5zbWFsbCxcbmgzIC5zbWFsbCxcbi5oMyAuc21hbGwge1xuICBmb250LXNpemU6IDY1JTtcbn1cbmg0LFxuLmg0LFxuaDUsXG4uaDUsXG5oNixcbi5oNiB7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5oNCBzbWFsbCxcbi5oNCBzbWFsbCxcbmg1IHNtYWxsLFxuLmg1IHNtYWxsLFxuaDYgc21hbGwsXG4uaDYgc21hbGwsXG5oNCAuc21hbGwsXG4uaDQgLnNtYWxsLFxuaDUgLnNtYWxsLFxuLmg1IC5zbWFsbCxcbmg2IC5zbWFsbCxcbi5oNiAuc21hbGwge1xuICBmb250LXNpemU6IDc1JTtcbn1cbmgxLFxuLmgxIHtcbiAgZm9udC1zaXplOiAzNnB4O1xufVxuaDIsXG4uaDIge1xuICBmb250LXNpemU6IDMwcHg7XG59XG5oMyxcbi5oMyB7XG4gIGZvbnQtc2l6ZTogMjRweDtcbn1cbmg0LFxuLmg0IHtcbiAgZm9udC1zaXplOiAxOHB4O1xufVxuaDUsXG4uaDUge1xuICBmb250LXNpemU6IDE0cHg7XG59XG5oNixcbi5oNiB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbnAge1xuICBtYXJnaW46IDAgMCAxMHB4O1xufVxuLmxlYWQge1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmxlYWQge1xuICAgIGZvbnQtc2l6ZTogMjFweDtcbiAgfVxufVxuc21hbGwsXG4uc21hbGwge1xuICBmb250LXNpemU6IDg1JTtcbn1cbm1hcmssXG4ubWFyayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmY2Y4ZTM7XG4gIHBhZGRpbmc6IC4yZW07XG59XG4udGV4dC1sZWZ0IHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi50ZXh0LXJpZ2h0IHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG4udGV4dC1jZW50ZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4udGV4dC1qdXN0aWZ5IHtcbiAgdGV4dC1hbGlnbjoganVzdGlmeTtcbn1cbi50ZXh0LW5vd3JhcCB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4udGV4dC1sb3dlcmNhc2Uge1xuICB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlO1xufVxuLnRleHQtdXBwZXJjYXNlIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cbi50ZXh0LWNhcGl0YWxpemUge1xuICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbn1cbi50ZXh0LW11dGVkIHtcbiAgY29sb3I6ICM3Nzc3Nzc7XG59XG4udGV4dC1wcmltYXJ5IHtcbiAgY29sb3I6ICMwMGU1ZjA7XG59XG5hLnRleHQtcHJpbWFyeTpob3ZlcixcbmEudGV4dC1wcmltYXJ5OmZvY3VzIHtcbiAgY29sb3I6ICMwMGI0YmQ7XG59XG4udGV4dC1zdWNjZXNzIHtcbiAgY29sb3I6ICMzYzc2M2Q7XG59XG5hLnRleHQtc3VjY2Vzczpob3ZlcixcbmEudGV4dC1zdWNjZXNzOmZvY3VzIHtcbiAgY29sb3I6ICMyYjU0MmM7XG59XG4udGV4dC1pbmZvIHtcbiAgY29sb3I6ICMzMTcwOGY7XG59XG5hLnRleHQtaW5mbzpob3ZlcixcbmEudGV4dC1pbmZvOmZvY3VzIHtcbiAgY29sb3I6ICMyNDUyNjk7XG59XG4udGV4dC13YXJuaW5nIHtcbiAgY29sb3I6ICM4YTZkM2I7XG59XG5hLnRleHQtd2FybmluZzpob3ZlcixcbmEudGV4dC13YXJuaW5nOmZvY3VzIHtcbiAgY29sb3I6ICM2NjUxMmM7XG59XG4udGV4dC1kYW5nZXIge1xuICBjb2xvcjogI2E5NDQ0Mjtcbn1cbmEudGV4dC1kYW5nZXI6aG92ZXIsXG5hLnRleHQtZGFuZ2VyOmZvY3VzIHtcbiAgY29sb3I6ICM4NDM1MzQ7XG59XG4uYmctcHJpbWFyeSB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBlNWYwO1xufVxuYS5iZy1wcmltYXJ5OmhvdmVyLFxuYS5iZy1wcmltYXJ5OmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwYjRiZDtcbn1cbi5iZy1zdWNjZXNzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RmZjBkODtcbn1cbmEuYmctc3VjY2Vzczpob3ZlcixcbmEuYmctc3VjY2Vzczpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjMWUyYjM7XG59XG4uYmctaW5mbyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkOWVkZjc7XG59XG5hLmJnLWluZm86aG92ZXIsXG5hLmJnLWluZm86Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYWZkOWVlO1xufVxuLmJnLXdhcm5pbmcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmNmOGUzO1xufVxuYS5iZy13YXJuaW5nOmhvdmVyLFxuYS5iZy13YXJuaW5nOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZWNiNTtcbn1cbi5iZy1kYW5nZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjJkZWRlO1xufVxuYS5iZy1kYW5nZXI6aG92ZXIsXG5hLmJnLWRhbmdlcjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNGI5Yjk7XG59XG4ucGFnZS1oZWFkZXIge1xuICBwYWRkaW5nLWJvdHRvbTogOXB4O1xuICBtYXJnaW46IDQwcHggMCAyMHB4O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VlZWVlZTtcbn1cbnVsLFxub2wge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxudWwgdWwsXG5vbCB1bCxcbnVsIG9sLFxub2wgb2wge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuLmxpc3QtdW5zdHlsZWQge1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG4ubGlzdC1pbmxpbmUge1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbi1sZWZ0OiAtNXB4O1xufVxuLmxpc3QtaW5saW5lID4gbGkge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmctbGVmdDogNXB4O1xuICBwYWRkaW5nLXJpZ2h0OiA1cHg7XG59XG5kbCB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG59XG5kdCxcbmRkIHtcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NTcxNDM7XG59XG5kdCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuZGQge1xuICBtYXJnaW4tbGVmdDogMDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuZGwtaG9yaXpvbnRhbCBkdCB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDE2MHB4O1xuICAgIGNsZWFyOiBsZWZ0O1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgfVxuICAuZGwtaG9yaXpvbnRhbCBkZCB7XG4gICAgbWFyZ2luLWxlZnQ6IDE4MHB4O1xuICB9XG59XG5hYmJyW3RpdGxlXSxcbmFiYnJbZGF0YS1vcmlnaW5hbC10aXRsZV0ge1xuICBjdXJzb3I6IGhlbHA7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgIzc3Nzc3Nztcbn1cbi5pbml0aWFsaXNtIHtcbiAgZm9udC1zaXplOiA5MCU7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5ibG9ja3F1b3RlIHtcbiAgcGFkZGluZzogMTBweCAyMHB4O1xuICBtYXJnaW46IDAgMCAyMHB4O1xuICBmb250LXNpemU6IDE3LjVweDtcbiAgYm9yZGVyLWxlZnQ6IDVweCBzb2xpZCAjZWVlZWVlO1xufVxuYmxvY2txdW90ZSBwOmxhc3QtY2hpbGQsXG5ibG9ja3F1b3RlIHVsOmxhc3QtY2hpbGQsXG5ibG9ja3F1b3RlIG9sOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuYmxvY2txdW90ZSBmb290ZXIsXG5ibG9ja3F1b3RlIHNtYWxsLFxuYmxvY2txdW90ZSAuc21hbGwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiA4MCU7XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xuICBjb2xvcjogIzc3Nzc3Nztcbn1cbmJsb2NrcXVvdGUgZm9vdGVyOmJlZm9yZSxcbmJsb2NrcXVvdGUgc21hbGw6YmVmb3JlLFxuYmxvY2txdW90ZSAuc21hbGw6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcMjAxNCBcXDAwQTAnO1xufVxuLmJsb2NrcXVvdGUtcmV2ZXJzZSxcbmJsb2NrcXVvdGUucHVsbC1yaWdodCB7XG4gIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgYm9yZGVyLXJpZ2h0OiA1cHggc29saWQgI2VlZWVlZTtcbiAgYm9yZGVyLWxlZnQ6IDA7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuLmJsb2NrcXVvdGUtcmV2ZXJzZSBmb290ZXI6YmVmb3JlLFxuYmxvY2txdW90ZS5wdWxsLXJpZ2h0IGZvb3RlcjpiZWZvcmUsXG4uYmxvY2txdW90ZS1yZXZlcnNlIHNtYWxsOmJlZm9yZSxcbmJsb2NrcXVvdGUucHVsbC1yaWdodCBzbWFsbDpiZWZvcmUsXG4uYmxvY2txdW90ZS1yZXZlcnNlIC5zbWFsbDpiZWZvcmUsXG5ibG9ja3F1b3RlLnB1bGwtcmlnaHQgLnNtYWxsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICcnO1xufVxuLmJsb2NrcXVvdGUtcmV2ZXJzZSBmb290ZXI6YWZ0ZXIsXG5ibG9ja3F1b3RlLnB1bGwtcmlnaHQgZm9vdGVyOmFmdGVyLFxuLmJsb2NrcXVvdGUtcmV2ZXJzZSBzbWFsbDphZnRlcixcbmJsb2NrcXVvdGUucHVsbC1yaWdodCBzbWFsbDphZnRlcixcbi5ibG9ja3F1b3RlLXJldmVyc2UgLnNtYWxsOmFmdGVyLFxuYmxvY2txdW90ZS5wdWxsLXJpZ2h0IC5zbWFsbDphZnRlciB7XG4gIGNvbnRlbnQ6ICdcXDAwQTAgXFwyMDE0Jztcbn1cbmFkZHJlc3Mge1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xufVxuY29kZSxcbmtiZCxcbnByZSxcbnNhbXAge1xuICBmb250LWZhbWlseTogTWVubG8sIE1vbmFjbywgQ29uc29sYXMsIFwiQ291cmllciBOZXdcIiwgbW9ub3NwYWNlO1xufVxuY29kZSB7XG4gIHBhZGRpbmc6IDJweCA0cHg7XG4gIGZvbnQtc2l6ZTogOTAlO1xuICBjb2xvcjogI2M3MjU0ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZjJmNDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxua2JkIHtcbiAgcGFkZGluZzogMnB4IDRweDtcbiAgZm9udC1zaXplOiA5MCU7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgLTFweCAwIHJnYmEoMCwgMCwgMCwgMC4yNSk7XG59XG5rYmQga2JkIHtcbiAgcGFkZGluZzogMDtcbiAgZm9udC1zaXplOiAxMDAlO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbnByZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiA5LjVweDtcbiAgbWFyZ2luOiAwIDAgMTBweDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcbiAgd29yZC1icmVhazogYnJlYWstYWxsO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gIGNvbG9yOiAjMzMzMzMzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG5wcmUgY29kZSB7XG4gIHBhZGRpbmc6IDA7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG4ucHJlLXNjcm9sbGFibGUge1xuICBtYXgtaGVpZ2h0OiAzNDBweDtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xufVxuLmNvbnRhaW5lciB7XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIHBhZGRpbmctbGVmdDogMTVweDtcbiAgcGFkZGluZy1yaWdodDogMTVweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuY29udGFpbmVyIHtcbiAgICB3aWR0aDogNzUwcHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuY29udGFpbmVyIHtcbiAgICB3aWR0aDogOTcwcHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLmNvbnRhaW5lciB7XG4gICAgd2lkdGg6IDExNzBweDtcbiAgfVxufVxuLmNvbnRhaW5lci1mbHVpZCB7XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIHBhZGRpbmctbGVmdDogMTVweDtcbiAgcGFkZGluZy1yaWdodDogMTVweDtcbn1cbi5yb3cge1xuICBtYXJnaW4tbGVmdDogLTE1cHg7XG4gIG1hcmdpbi1yaWdodDogLTE1cHg7XG59XG4uY29sLXhzLTEsIC5jb2wtc20tMSwgLmNvbC1tZC0xLCAuY29sLWxnLTEsIC5jb2wteHMtMiwgLmNvbC1zbS0yLCAuY29sLW1kLTIsIC5jb2wtbGctMiwgLmNvbC14cy0zLCAuY29sLXNtLTMsIC5jb2wtbWQtMywgLmNvbC1sZy0zLCAuY29sLXhzLTQsIC5jb2wtc20tNCwgLmNvbC1tZC00LCAuY29sLWxnLTQsIC5jb2wteHMtNSwgLmNvbC1zbS01LCAuY29sLW1kLTUsIC5jb2wtbGctNSwgLmNvbC14cy02LCAuY29sLXNtLTYsIC5jb2wtbWQtNiwgLmNvbC1sZy02LCAuY29sLXhzLTcsIC5jb2wtc20tNywgLmNvbC1tZC03LCAuY29sLWxnLTcsIC5jb2wteHMtOCwgLmNvbC1zbS04LCAuY29sLW1kLTgsIC5jb2wtbGctOCwgLmNvbC14cy05LCAuY29sLXNtLTksIC5jb2wtbWQtOSwgLmNvbC1sZy05LCAuY29sLXhzLTEwLCAuY29sLXNtLTEwLCAuY29sLW1kLTEwLCAuY29sLWxnLTEwLCAuY29sLXhzLTExLCAuY29sLXNtLTExLCAuY29sLW1kLTExLCAuY29sLWxnLTExLCAuY29sLXhzLTEyLCAuY29sLXNtLTEyLCAuY29sLW1kLTEyLCAuY29sLWxnLTEyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtaW4taGVpZ2h0OiAxcHg7XG4gIHBhZGRpbmctbGVmdDogMTVweDtcbiAgcGFkZGluZy1yaWdodDogMTVweDtcbn1cbi5jb2wteHMtMSwgLmNvbC14cy0yLCAuY29sLXhzLTMsIC5jb2wteHMtNCwgLmNvbC14cy01LCAuY29sLXhzLTYsIC5jb2wteHMtNywgLmNvbC14cy04LCAuY29sLXhzLTksIC5jb2wteHMtMTAsIC5jb2wteHMtMTEsIC5jb2wteHMtMTIge1xuICBmbG9hdDogbGVmdDtcbn1cbi5jb2wteHMtMTIge1xuICB3aWR0aDogMTAwJTtcbn1cbi5jb2wteHMtMTEge1xuICB3aWR0aDogOTEuNjY2NjY2NjclO1xufVxuLmNvbC14cy0xMCB7XG4gIHdpZHRoOiA4My4zMzMzMzMzMyU7XG59XG4uY29sLXhzLTkge1xuICB3aWR0aDogNzUlO1xufVxuLmNvbC14cy04IHtcbiAgd2lkdGg6IDY2LjY2NjY2NjY3JTtcbn1cbi5jb2wteHMtNyB7XG4gIHdpZHRoOiA1OC4zMzMzMzMzMyU7XG59XG4uY29sLXhzLTYge1xuICB3aWR0aDogNTAlO1xufVxuLmNvbC14cy01IHtcbiAgd2lkdGg6IDQxLjY2NjY2NjY3JTtcbn1cbi5jb2wteHMtNCB7XG4gIHdpZHRoOiAzMy4zMzMzMzMzMyU7XG59XG4uY29sLXhzLTMge1xuICB3aWR0aDogMjUlO1xufVxuLmNvbC14cy0yIHtcbiAgd2lkdGg6IDE2LjY2NjY2NjY3JTtcbn1cbi5jb2wteHMtMSB7XG4gIHdpZHRoOiA4LjMzMzMzMzMzJTtcbn1cbi5jb2wteHMtcHVsbC0xMiB7XG4gIHJpZ2h0OiAxMDAlO1xufVxuLmNvbC14cy1wdWxsLTExIHtcbiAgcmlnaHQ6IDkxLjY2NjY2NjY3JTtcbn1cbi5jb2wteHMtcHVsbC0xMCB7XG4gIHJpZ2h0OiA4My4zMzMzMzMzMyU7XG59XG4uY29sLXhzLXB1bGwtOSB7XG4gIHJpZ2h0OiA3NSU7XG59XG4uY29sLXhzLXB1bGwtOCB7XG4gIHJpZ2h0OiA2Ni42NjY2NjY2NyU7XG59XG4uY29sLXhzLXB1bGwtNyB7XG4gIHJpZ2h0OiA1OC4zMzMzMzMzMyU7XG59XG4uY29sLXhzLXB1bGwtNiB7XG4gIHJpZ2h0OiA1MCU7XG59XG4uY29sLXhzLXB1bGwtNSB7XG4gIHJpZ2h0OiA0MS42NjY2NjY2NyU7XG59XG4uY29sLXhzLXB1bGwtNCB7XG4gIHJpZ2h0OiAzMy4zMzMzMzMzMyU7XG59XG4uY29sLXhzLXB1bGwtMyB7XG4gIHJpZ2h0OiAyNSU7XG59XG4uY29sLXhzLXB1bGwtMiB7XG4gIHJpZ2h0OiAxNi42NjY2NjY2NyU7XG59XG4uY29sLXhzLXB1bGwtMSB7XG4gIHJpZ2h0OiA4LjMzMzMzMzMzJTtcbn1cbi5jb2wteHMtcHVsbC0wIHtcbiAgcmlnaHQ6IGF1dG87XG59XG4uY29sLXhzLXB1c2gtMTIge1xuICBsZWZ0OiAxMDAlO1xufVxuLmNvbC14cy1wdXNoLTExIHtcbiAgbGVmdDogOTEuNjY2NjY2NjclO1xufVxuLmNvbC14cy1wdXNoLTEwIHtcbiAgbGVmdDogODMuMzMzMzMzMzMlO1xufVxuLmNvbC14cy1wdXNoLTkge1xuICBsZWZ0OiA3NSU7XG59XG4uY29sLXhzLXB1c2gtOCB7XG4gIGxlZnQ6IDY2LjY2NjY2NjY3JTtcbn1cbi5jb2wteHMtcHVzaC03IHtcbiAgbGVmdDogNTguMzMzMzMzMzMlO1xufVxuLmNvbC14cy1wdXNoLTYge1xuICBsZWZ0OiA1MCU7XG59XG4uY29sLXhzLXB1c2gtNSB7XG4gIGxlZnQ6IDQxLjY2NjY2NjY3JTtcbn1cbi5jb2wteHMtcHVzaC00IHtcbiAgbGVmdDogMzMuMzMzMzMzMzMlO1xufVxuLmNvbC14cy1wdXNoLTMge1xuICBsZWZ0OiAyNSU7XG59XG4uY29sLXhzLXB1c2gtMiB7XG4gIGxlZnQ6IDE2LjY2NjY2NjY3JTtcbn1cbi5jb2wteHMtcHVzaC0xIHtcbiAgbGVmdDogOC4zMzMzMzMzMyU7XG59XG4uY29sLXhzLXB1c2gtMCB7XG4gIGxlZnQ6IGF1dG87XG59XG4uY29sLXhzLW9mZnNldC0xMiB7XG4gIG1hcmdpbi1sZWZ0OiAxMDAlO1xufVxuLmNvbC14cy1vZmZzZXQtMTEge1xuICBtYXJnaW4tbGVmdDogOTEuNjY2NjY2NjclO1xufVxuLmNvbC14cy1vZmZzZXQtMTAge1xuICBtYXJnaW4tbGVmdDogODMuMzMzMzMzMzMlO1xufVxuLmNvbC14cy1vZmZzZXQtOSB7XG4gIG1hcmdpbi1sZWZ0OiA3NSU7XG59XG4uY29sLXhzLW9mZnNldC04IHtcbiAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY2NjY3JTtcbn1cbi5jb2wteHMtb2Zmc2V0LTcge1xuICBtYXJnaW4tbGVmdDogNTguMzMzMzMzMzMlO1xufVxuLmNvbC14cy1vZmZzZXQtNiB7XG4gIG1hcmdpbi1sZWZ0OiA1MCU7XG59XG4uY29sLXhzLW9mZnNldC01IHtcbiAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY2NjY3JTtcbn1cbi5jb2wteHMtb2Zmc2V0LTQge1xuICBtYXJnaW4tbGVmdDogMzMuMzMzMzMzMzMlO1xufVxuLmNvbC14cy1vZmZzZXQtMyB7XG4gIG1hcmdpbi1sZWZ0OiAyNSU7XG59XG4uY29sLXhzLW9mZnNldC0yIHtcbiAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY2NjY3JTtcbn1cbi5jb2wteHMtb2Zmc2V0LTEge1xuICBtYXJnaW4tbGVmdDogOC4zMzMzMzMzMyU7XG59XG4uY29sLXhzLW9mZnNldC0wIHtcbiAgbWFyZ2luLWxlZnQ6IDAlO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5jb2wtc20tMSwgLmNvbC1zbS0yLCAuY29sLXNtLTMsIC5jb2wtc20tNCwgLmNvbC1zbS01LCAuY29sLXNtLTYsIC5jb2wtc20tNywgLmNvbC1zbS04LCAuY29sLXNtLTksIC5jb2wtc20tMTAsIC5jb2wtc20tMTEsIC5jb2wtc20tMTIge1xuICAgIGZsb2F0OiBsZWZ0O1xuICB9XG4gIC5jb2wtc20tMTIge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIC5jb2wtc20tMTEge1xuICAgIHdpZHRoOiA5MS42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1zbS0xMCB7XG4gICAgd2lkdGg6IDgzLjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLXNtLTkge1xuICAgIHdpZHRoOiA3NSU7XG4gIH1cbiAgLmNvbC1zbS04IHtcbiAgICB3aWR0aDogNjYuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtc20tNyB7XG4gICAgd2lkdGg6IDU4LjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLXNtLTYge1xuICAgIHdpZHRoOiA1MCU7XG4gIH1cbiAgLmNvbC1zbS01IHtcbiAgICB3aWR0aDogNDEuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtc20tNCB7XG4gICAgd2lkdGg6IDMzLjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLXNtLTMge1xuICAgIHdpZHRoOiAyNSU7XG4gIH1cbiAgLmNvbC1zbS0yIHtcbiAgICB3aWR0aDogMTYuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtc20tMSB7XG4gICAgd2lkdGg6IDguMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtc20tcHVsbC0xMiB7XG4gICAgcmlnaHQ6IDEwMCU7XG4gIH1cbiAgLmNvbC1zbS1wdWxsLTExIHtcbiAgICByaWdodDogOTEuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtc20tcHVsbC0xMCB7XG4gICAgcmlnaHQ6IDgzLjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLXNtLXB1bGwtOSB7XG4gICAgcmlnaHQ6IDc1JTtcbiAgfVxuICAuY29sLXNtLXB1bGwtOCB7XG4gICAgcmlnaHQ6IDY2LjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLXNtLXB1bGwtNyB7XG4gICAgcmlnaHQ6IDU4LjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLXNtLXB1bGwtNiB7XG4gICAgcmlnaHQ6IDUwJTtcbiAgfVxuICAuY29sLXNtLXB1bGwtNSB7XG4gICAgcmlnaHQ6IDQxLjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLXNtLXB1bGwtNCB7XG4gICAgcmlnaHQ6IDMzLjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLXNtLXB1bGwtMyB7XG4gICAgcmlnaHQ6IDI1JTtcbiAgfVxuICAuY29sLXNtLXB1bGwtMiB7XG4gICAgcmlnaHQ6IDE2LjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLXNtLXB1bGwtMSB7XG4gICAgcmlnaHQ6IDguMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtc20tcHVsbC0wIHtcbiAgICByaWdodDogYXV0bztcbiAgfVxuICAuY29sLXNtLXB1c2gtMTIge1xuICAgIGxlZnQ6IDEwMCU7XG4gIH1cbiAgLmNvbC1zbS1wdXNoLTExIHtcbiAgICBsZWZ0OiA5MS42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1zbS1wdXNoLTEwIHtcbiAgICBsZWZ0OiA4My4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1zbS1wdXNoLTkge1xuICAgIGxlZnQ6IDc1JTtcbiAgfVxuICAuY29sLXNtLXB1c2gtOCB7XG4gICAgbGVmdDogNjYuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtc20tcHVzaC03IHtcbiAgICBsZWZ0OiA1OC4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1zbS1wdXNoLTYge1xuICAgIGxlZnQ6IDUwJTtcbiAgfVxuICAuY29sLXNtLXB1c2gtNSB7XG4gICAgbGVmdDogNDEuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtc20tcHVzaC00IHtcbiAgICBsZWZ0OiAzMy4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1zbS1wdXNoLTMge1xuICAgIGxlZnQ6IDI1JTtcbiAgfVxuICAuY29sLXNtLXB1c2gtMiB7XG4gICAgbGVmdDogMTYuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtc20tcHVzaC0xIHtcbiAgICBsZWZ0OiA4LjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLXNtLXB1c2gtMCB7XG4gICAgbGVmdDogYXV0bztcbiAgfVxuICAuY29sLXNtLW9mZnNldC0xMiB7XG4gICAgbWFyZ2luLWxlZnQ6IDEwMCU7XG4gIH1cbiAgLmNvbC1zbS1vZmZzZXQtMTEge1xuICAgIG1hcmdpbi1sZWZ0OiA5MS42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1zbS1vZmZzZXQtMTAge1xuICAgIG1hcmdpbi1sZWZ0OiA4My4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1zbS1vZmZzZXQtOSB7XG4gICAgbWFyZ2luLWxlZnQ6IDc1JTtcbiAgfVxuICAuY29sLXNtLW9mZnNldC04IHtcbiAgICBtYXJnaW4tbGVmdDogNjYuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtc20tb2Zmc2V0LTcge1xuICAgIG1hcmdpbi1sZWZ0OiA1OC4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1zbS1vZmZzZXQtNiB7XG4gICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgfVxuICAuY29sLXNtLW9mZnNldC01IHtcbiAgICBtYXJnaW4tbGVmdDogNDEuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtc20tb2Zmc2V0LTQge1xuICAgIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1zbS1vZmZzZXQtMyB7XG4gICAgbWFyZ2luLWxlZnQ6IDI1JTtcbiAgfVxuICAuY29sLXNtLW9mZnNldC0yIHtcbiAgICBtYXJnaW4tbGVmdDogMTYuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtc20tb2Zmc2V0LTEge1xuICAgIG1hcmdpbi1sZWZ0OiA4LjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLXNtLW9mZnNldC0wIHtcbiAgICBtYXJnaW4tbGVmdDogMCU7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuY29sLW1kLTEsIC5jb2wtbWQtMiwgLmNvbC1tZC0zLCAuY29sLW1kLTQsIC5jb2wtbWQtNSwgLmNvbC1tZC02LCAuY29sLW1kLTcsIC5jb2wtbWQtOCwgLmNvbC1tZC05LCAuY29sLW1kLTEwLCAuY29sLW1kLTExLCAuY29sLW1kLTEyIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgfVxuICAuY29sLW1kLTEyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAuY29sLW1kLTExIHtcbiAgICB3aWR0aDogOTEuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbWQtMTAge1xuICAgIHdpZHRoOiA4My4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1tZC05IHtcbiAgICB3aWR0aDogNzUlO1xuICB9XG4gIC5jb2wtbWQtOCB7XG4gICAgd2lkdGg6IDY2LjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLW1kLTcge1xuICAgIHdpZHRoOiA1OC4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1tZC02IHtcbiAgICB3aWR0aDogNTAlO1xuICB9XG4gIC5jb2wtbWQtNSB7XG4gICAgd2lkdGg6IDQxLjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLW1kLTQge1xuICAgIHdpZHRoOiAzMy4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1tZC0zIHtcbiAgICB3aWR0aDogMjUlO1xuICB9XG4gIC5jb2wtbWQtMiB7XG4gICAgd2lkdGg6IDE2LjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLW1kLTEge1xuICAgIHdpZHRoOiA4LjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLW1kLXB1bGwtMTIge1xuICAgIHJpZ2h0OiAxMDAlO1xuICB9XG4gIC5jb2wtbWQtcHVsbC0xMSB7XG4gICAgcmlnaHQ6IDkxLjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLW1kLXB1bGwtMTAge1xuICAgIHJpZ2h0OiA4My4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1tZC1wdWxsLTkge1xuICAgIHJpZ2h0OiA3NSU7XG4gIH1cbiAgLmNvbC1tZC1wdWxsLTgge1xuICAgIHJpZ2h0OiA2Ni42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1tZC1wdWxsLTcge1xuICAgIHJpZ2h0OiA1OC4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1tZC1wdWxsLTYge1xuICAgIHJpZ2h0OiA1MCU7XG4gIH1cbiAgLmNvbC1tZC1wdWxsLTUge1xuICAgIHJpZ2h0OiA0MS42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1tZC1wdWxsLTQge1xuICAgIHJpZ2h0OiAzMy4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1tZC1wdWxsLTMge1xuICAgIHJpZ2h0OiAyNSU7XG4gIH1cbiAgLmNvbC1tZC1wdWxsLTIge1xuICAgIHJpZ2h0OiAxNi42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1tZC1wdWxsLTEge1xuICAgIHJpZ2h0OiA4LjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLW1kLXB1bGwtMCB7XG4gICAgcmlnaHQ6IGF1dG87XG4gIH1cbiAgLmNvbC1tZC1wdXNoLTEyIHtcbiAgICBsZWZ0OiAxMDAlO1xuICB9XG4gIC5jb2wtbWQtcHVzaC0xMSB7XG4gICAgbGVmdDogOTEuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbWQtcHVzaC0xMCB7XG4gICAgbGVmdDogODMuMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbWQtcHVzaC05IHtcbiAgICBsZWZ0OiA3NSU7XG4gIH1cbiAgLmNvbC1tZC1wdXNoLTgge1xuICAgIGxlZnQ6IDY2LjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLW1kLXB1c2gtNyB7XG4gICAgbGVmdDogNTguMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbWQtcHVzaC02IHtcbiAgICBsZWZ0OiA1MCU7XG4gIH1cbiAgLmNvbC1tZC1wdXNoLTUge1xuICAgIGxlZnQ6IDQxLjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLW1kLXB1c2gtNCB7XG4gICAgbGVmdDogMzMuMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbWQtcHVzaC0zIHtcbiAgICBsZWZ0OiAyNSU7XG4gIH1cbiAgLmNvbC1tZC1wdXNoLTIge1xuICAgIGxlZnQ6IDE2LjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLW1kLXB1c2gtMSB7XG4gICAgbGVmdDogOC4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1tZC1wdXNoLTAge1xuICAgIGxlZnQ6IGF1dG87XG4gIH1cbiAgLmNvbC1tZC1vZmZzZXQtMTIge1xuICAgIG1hcmdpbi1sZWZ0OiAxMDAlO1xuICB9XG4gIC5jb2wtbWQtb2Zmc2V0LTExIHtcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbWQtb2Zmc2V0LTEwIHtcbiAgICBtYXJnaW4tbGVmdDogODMuMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbWQtb2Zmc2V0LTkge1xuICAgIG1hcmdpbi1sZWZ0OiA3NSU7XG4gIH1cbiAgLmNvbC1tZC1vZmZzZXQtOCB7XG4gICAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLW1kLW9mZnNldC03IHtcbiAgICBtYXJnaW4tbGVmdDogNTguMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbWQtb2Zmc2V0LTYge1xuICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gIH1cbiAgLmNvbC1tZC1vZmZzZXQtNSB7XG4gICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLW1kLW9mZnNldC00IHtcbiAgICBtYXJnaW4tbGVmdDogMzMuMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbWQtb2Zmc2V0LTMge1xuICAgIG1hcmdpbi1sZWZ0OiAyNSU7XG4gIH1cbiAgLmNvbC1tZC1vZmZzZXQtMiB7XG4gICAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLW1kLW9mZnNldC0xIHtcbiAgICBtYXJnaW4tbGVmdDogOC4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1tZC1vZmZzZXQtMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDAlO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC5jb2wtbGctMSwgLmNvbC1sZy0yLCAuY29sLWxnLTMsIC5jb2wtbGctNCwgLmNvbC1sZy01LCAuY29sLWxnLTYsIC5jb2wtbGctNywgLmNvbC1sZy04LCAuY29sLWxnLTksIC5jb2wtbGctMTAsIC5jb2wtbGctMTEsIC5jb2wtbGctMTIge1xuICAgIGZsb2F0OiBsZWZ0O1xuICB9XG4gIC5jb2wtbGctMTIge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIC5jb2wtbGctMTEge1xuICAgIHdpZHRoOiA5MS42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1sZy0xMCB7XG4gICAgd2lkdGg6IDgzLjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLWxnLTkge1xuICAgIHdpZHRoOiA3NSU7XG4gIH1cbiAgLmNvbC1sZy04IHtcbiAgICB3aWR0aDogNjYuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbGctNyB7XG4gICAgd2lkdGg6IDU4LjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLWxnLTYge1xuICAgIHdpZHRoOiA1MCU7XG4gIH1cbiAgLmNvbC1sZy01IHtcbiAgICB3aWR0aDogNDEuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbGctNCB7XG4gICAgd2lkdGg6IDMzLjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLWxnLTMge1xuICAgIHdpZHRoOiAyNSU7XG4gIH1cbiAgLmNvbC1sZy0yIHtcbiAgICB3aWR0aDogMTYuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbGctMSB7XG4gICAgd2lkdGg6IDguMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbGctcHVsbC0xMiB7XG4gICAgcmlnaHQ6IDEwMCU7XG4gIH1cbiAgLmNvbC1sZy1wdWxsLTExIHtcbiAgICByaWdodDogOTEuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbGctcHVsbC0xMCB7XG4gICAgcmlnaHQ6IDgzLjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLWxnLXB1bGwtOSB7XG4gICAgcmlnaHQ6IDc1JTtcbiAgfVxuICAuY29sLWxnLXB1bGwtOCB7XG4gICAgcmlnaHQ6IDY2LjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLWxnLXB1bGwtNyB7XG4gICAgcmlnaHQ6IDU4LjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLWxnLXB1bGwtNiB7XG4gICAgcmlnaHQ6IDUwJTtcbiAgfVxuICAuY29sLWxnLXB1bGwtNSB7XG4gICAgcmlnaHQ6IDQxLjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLWxnLXB1bGwtNCB7XG4gICAgcmlnaHQ6IDMzLjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLWxnLXB1bGwtMyB7XG4gICAgcmlnaHQ6IDI1JTtcbiAgfVxuICAuY29sLWxnLXB1bGwtMiB7XG4gICAgcmlnaHQ6IDE2LjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLWxnLXB1bGwtMSB7XG4gICAgcmlnaHQ6IDguMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbGctcHVsbC0wIHtcbiAgICByaWdodDogYXV0bztcbiAgfVxuICAuY29sLWxnLXB1c2gtMTIge1xuICAgIGxlZnQ6IDEwMCU7XG4gIH1cbiAgLmNvbC1sZy1wdXNoLTExIHtcbiAgICBsZWZ0OiA5MS42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1sZy1wdXNoLTEwIHtcbiAgICBsZWZ0OiA4My4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1sZy1wdXNoLTkge1xuICAgIGxlZnQ6IDc1JTtcbiAgfVxuICAuY29sLWxnLXB1c2gtOCB7XG4gICAgbGVmdDogNjYuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbGctcHVzaC03IHtcbiAgICBsZWZ0OiA1OC4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1sZy1wdXNoLTYge1xuICAgIGxlZnQ6IDUwJTtcbiAgfVxuICAuY29sLWxnLXB1c2gtNSB7XG4gICAgbGVmdDogNDEuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbGctcHVzaC00IHtcbiAgICBsZWZ0OiAzMy4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1sZy1wdXNoLTMge1xuICAgIGxlZnQ6IDI1JTtcbiAgfVxuICAuY29sLWxnLXB1c2gtMiB7XG4gICAgbGVmdDogMTYuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbGctcHVzaC0xIHtcbiAgICBsZWZ0OiA4LjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLWxnLXB1c2gtMCB7XG4gICAgbGVmdDogYXV0bztcbiAgfVxuICAuY29sLWxnLW9mZnNldC0xMiB7XG4gICAgbWFyZ2luLWxlZnQ6IDEwMCU7XG4gIH1cbiAgLmNvbC1sZy1vZmZzZXQtMTEge1xuICAgIG1hcmdpbi1sZWZ0OiA5MS42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1sZy1vZmZzZXQtMTAge1xuICAgIG1hcmdpbi1sZWZ0OiA4My4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1sZy1vZmZzZXQtOSB7XG4gICAgbWFyZ2luLWxlZnQ6IDc1JTtcbiAgfVxuICAuY29sLWxnLW9mZnNldC04IHtcbiAgICBtYXJnaW4tbGVmdDogNjYuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbGctb2Zmc2V0LTcge1xuICAgIG1hcmdpbi1sZWZ0OiA1OC4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1sZy1vZmZzZXQtNiB7XG4gICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgfVxuICAuY29sLWxnLW9mZnNldC01IHtcbiAgICBtYXJnaW4tbGVmdDogNDEuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbGctb2Zmc2V0LTQge1xuICAgIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1sZy1vZmZzZXQtMyB7XG4gICAgbWFyZ2luLWxlZnQ6IDI1JTtcbiAgfVxuICAuY29sLWxnLW9mZnNldC0yIHtcbiAgICBtYXJnaW4tbGVmdDogMTYuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbGctb2Zmc2V0LTEge1xuICAgIG1hcmdpbi1sZWZ0OiA4LjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLWxnLW9mZnNldC0wIHtcbiAgICBtYXJnaW4tbGVmdDogMCU7XG4gIH1cbn1cbnRhYmxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5jYXB0aW9uIHtcbiAgcGFkZGluZy10b3A6IDhweDtcbiAgcGFkZGluZy1ib3R0b206IDhweDtcbiAgY29sb3I6ICM3Nzc3Nzc7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG50aCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4udGFibGUge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xufVxuLnRhYmxlID4gdGhlYWQgPiB0ciA+IHRoLFxuLnRhYmxlID4gdGJvZHkgPiB0ciA+IHRoLFxuLnRhYmxlID4gdGZvb3QgPiB0ciA+IHRoLFxuLnRhYmxlID4gdGhlYWQgPiB0ciA+IHRkLFxuLnRhYmxlID4gdGJvZHkgPiB0ciA+IHRkLFxuLnRhYmxlID4gdGZvb3QgPiB0ciA+IHRkIHtcbiAgcGFkZGluZzogOHB4O1xuICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkZGQ7XG59XG4udGFibGUgPiB0aGVhZCA+IHRyID4gdGgge1xuICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgI2RkZDtcbn1cbi50YWJsZSA+IGNhcHRpb24gKyB0aGVhZCA+IHRyOmZpcnN0LWNoaWxkID4gdGgsXG4udGFibGUgPiBjb2xncm91cCArIHRoZWFkID4gdHI6Zmlyc3QtY2hpbGQgPiB0aCxcbi50YWJsZSA+IHRoZWFkOmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgPiB0aCxcbi50YWJsZSA+IGNhcHRpb24gKyB0aGVhZCA+IHRyOmZpcnN0LWNoaWxkID4gdGQsXG4udGFibGUgPiBjb2xncm91cCArIHRoZWFkID4gdHI6Zmlyc3QtY2hpbGQgPiB0ZCxcbi50YWJsZSA+IHRoZWFkOmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgPiB0ZCB7XG4gIGJvcmRlci10b3A6IDA7XG59XG4udGFibGUgPiB0Ym9keSArIHRib2R5IHtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICNkZGQ7XG59XG4udGFibGUgLnRhYmxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cbi50YWJsZS1jb25kZW5zZWQgPiB0aGVhZCA+IHRyID4gdGgsXG4udGFibGUtY29uZGVuc2VkID4gdGJvZHkgPiB0ciA+IHRoLFxuLnRhYmxlLWNvbmRlbnNlZCA+IHRmb290ID4gdHIgPiB0aCxcbi50YWJsZS1jb25kZW5zZWQgPiB0aGVhZCA+IHRyID4gdGQsXG4udGFibGUtY29uZGVuc2VkID4gdGJvZHkgPiB0ciA+IHRkLFxuLnRhYmxlLWNvbmRlbnNlZCA+IHRmb290ID4gdHIgPiB0ZCB7XG4gIHBhZGRpbmc6IDVweDtcbn1cbi50YWJsZS1ib3JkZXJlZCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG59XG4udGFibGUtYm9yZGVyZWQgPiB0aGVhZCA+IHRyID4gdGgsXG4udGFibGUtYm9yZGVyZWQgPiB0Ym9keSA+IHRyID4gdGgsXG4udGFibGUtYm9yZGVyZWQgPiB0Zm9vdCA+IHRyID4gdGgsXG4udGFibGUtYm9yZGVyZWQgPiB0aGVhZCA+IHRyID4gdGQsXG4udGFibGUtYm9yZGVyZWQgPiB0Ym9keSA+IHRyID4gdGQsXG4udGFibGUtYm9yZGVyZWQgPiB0Zm9vdCA+IHRyID4gdGQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xufVxuLnRhYmxlLWJvcmRlcmVkID4gdGhlYWQgPiB0ciA+IHRoLFxuLnRhYmxlLWJvcmRlcmVkID4gdGhlYWQgPiB0ciA+IHRkIHtcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMnB4O1xufVxuLnRhYmxlLXN0cmlwZWQgPiB0Ym9keSA+IHRyOm50aC1vZi10eXBlKG9kZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmOWY5O1xufVxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0cjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG59XG50YWJsZSBjb2xbY2xhc3MqPVwiY29sLVwiXSB7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIGZsb2F0OiBub25lO1xuICBkaXNwbGF5OiB0YWJsZS1jb2x1bW47XG59XG50YWJsZSB0ZFtjbGFzcyo9XCJjb2wtXCJdLFxudGFibGUgdGhbY2xhc3MqPVwiY29sLVwiXSB7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIGZsb2F0OiBub25lO1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xufVxuLnRhYmxlID4gdGhlYWQgPiB0ciA+IHRkLmFjdGl2ZSxcbi50YWJsZSA+IHRib2R5ID4gdHIgPiB0ZC5hY3RpdmUsXG4udGFibGUgPiB0Zm9vdCA+IHRyID4gdGQuYWN0aXZlLFxuLnRhYmxlID4gdGhlYWQgPiB0ciA+IHRoLmFjdGl2ZSxcbi50YWJsZSA+IHRib2R5ID4gdHIgPiB0aC5hY3RpdmUsXG4udGFibGUgPiB0Zm9vdCA+IHRyID4gdGguYWN0aXZlLFxuLnRhYmxlID4gdGhlYWQgPiB0ci5hY3RpdmUgPiB0ZCxcbi50YWJsZSA+IHRib2R5ID4gdHIuYWN0aXZlID4gdGQsXG4udGFibGUgPiB0Zm9vdCA+IHRyLmFjdGl2ZSA+IHRkLFxuLnRhYmxlID4gdGhlYWQgPiB0ci5hY3RpdmUgPiB0aCxcbi50YWJsZSA+IHRib2R5ID4gdHIuYWN0aXZlID4gdGgsXG4udGFibGUgPiB0Zm9vdCA+IHRyLmFjdGl2ZSA+IHRoIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTtcbn1cbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHIgPiB0ZC5hY3RpdmU6aG92ZXIsXG4udGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyID4gdGguYWN0aXZlOmhvdmVyLFxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0ci5hY3RpdmU6aG92ZXIgPiB0ZCxcbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHI6aG92ZXIgPiAuYWN0aXZlLFxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0ci5hY3RpdmU6aG92ZXIgPiB0aCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlOGU4ZTg7XG59XG4udGFibGUgPiB0aGVhZCA+IHRyID4gdGQuc3VjY2Vzcyxcbi50YWJsZSA+IHRib2R5ID4gdHIgPiB0ZC5zdWNjZXNzLFxuLnRhYmxlID4gdGZvb3QgPiB0ciA+IHRkLnN1Y2Nlc3MsXG4udGFibGUgPiB0aGVhZCA+IHRyID4gdGguc3VjY2Vzcyxcbi50YWJsZSA+IHRib2R5ID4gdHIgPiB0aC5zdWNjZXNzLFxuLnRhYmxlID4gdGZvb3QgPiB0ciA+IHRoLnN1Y2Nlc3MsXG4udGFibGUgPiB0aGVhZCA+IHRyLnN1Y2Nlc3MgPiB0ZCxcbi50YWJsZSA+IHRib2R5ID4gdHIuc3VjY2VzcyA+IHRkLFxuLnRhYmxlID4gdGZvb3QgPiB0ci5zdWNjZXNzID4gdGQsXG4udGFibGUgPiB0aGVhZCA+IHRyLnN1Y2Nlc3MgPiB0aCxcbi50YWJsZSA+IHRib2R5ID4gdHIuc3VjY2VzcyA+IHRoLFxuLnRhYmxlID4gdGZvb3QgPiB0ci5zdWNjZXNzID4gdGgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGZmMGQ4O1xufVxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0ciA+IHRkLnN1Y2Nlc3M6aG92ZXIsXG4udGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyID4gdGguc3VjY2Vzczpob3Zlcixcbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHIuc3VjY2Vzczpob3ZlciA+IHRkLFxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0cjpob3ZlciA+IC5zdWNjZXNzLFxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0ci5zdWNjZXNzOmhvdmVyID4gdGgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDBlOWM2O1xufVxuLnRhYmxlID4gdGhlYWQgPiB0ciA+IHRkLmluZm8sXG4udGFibGUgPiB0Ym9keSA+IHRyID4gdGQuaW5mbyxcbi50YWJsZSA+IHRmb290ID4gdHIgPiB0ZC5pbmZvLFxuLnRhYmxlID4gdGhlYWQgPiB0ciA+IHRoLmluZm8sXG4udGFibGUgPiB0Ym9keSA+IHRyID4gdGguaW5mbyxcbi50YWJsZSA+IHRmb290ID4gdHIgPiB0aC5pbmZvLFxuLnRhYmxlID4gdGhlYWQgPiB0ci5pbmZvID4gdGQsXG4udGFibGUgPiB0Ym9keSA+IHRyLmluZm8gPiB0ZCxcbi50YWJsZSA+IHRmb290ID4gdHIuaW5mbyA+IHRkLFxuLnRhYmxlID4gdGhlYWQgPiB0ci5pbmZvID4gdGgsXG4udGFibGUgPiB0Ym9keSA+IHRyLmluZm8gPiB0aCxcbi50YWJsZSA+IHRmb290ID4gdHIuaW5mbyA+IHRoIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q5ZWRmNztcbn1cbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHIgPiB0ZC5pbmZvOmhvdmVyLFxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0ciA+IHRoLmluZm86aG92ZXIsXG4udGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyLmluZm86aG92ZXIgPiB0ZCxcbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHI6aG92ZXIgPiAuaW5mbyxcbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHIuaW5mbzpob3ZlciA+IHRoIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2M0ZTNmMztcbn1cbi50YWJsZSA+IHRoZWFkID4gdHIgPiB0ZC53YXJuaW5nLFxuLnRhYmxlID4gdGJvZHkgPiB0ciA+IHRkLndhcm5pbmcsXG4udGFibGUgPiB0Zm9vdCA+IHRyID4gdGQud2FybmluZyxcbi50YWJsZSA+IHRoZWFkID4gdHIgPiB0aC53YXJuaW5nLFxuLnRhYmxlID4gdGJvZHkgPiB0ciA+IHRoLndhcm5pbmcsXG4udGFibGUgPiB0Zm9vdCA+IHRyID4gdGgud2FybmluZyxcbi50YWJsZSA+IHRoZWFkID4gdHIud2FybmluZyA+IHRkLFxuLnRhYmxlID4gdGJvZHkgPiB0ci53YXJuaW5nID4gdGQsXG4udGFibGUgPiB0Zm9vdCA+IHRyLndhcm5pbmcgPiB0ZCxcbi50YWJsZSA+IHRoZWFkID4gdHIud2FybmluZyA+IHRoLFxuLnRhYmxlID4gdGJvZHkgPiB0ci53YXJuaW5nID4gdGgsXG4udGFibGUgPiB0Zm9vdCA+IHRyLndhcm5pbmcgPiB0aCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmY2Y4ZTM7XG59XG4udGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyID4gdGQud2FybmluZzpob3Zlcixcbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHIgPiB0aC53YXJuaW5nOmhvdmVyLFxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0ci53YXJuaW5nOmhvdmVyID4gdGQsXG4udGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyOmhvdmVyID4gLndhcm5pbmcsXG4udGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyLndhcm5pbmc6aG92ZXIgPiB0aCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmYWYyY2M7XG59XG4udGFibGUgPiB0aGVhZCA+IHRyID4gdGQuZGFuZ2VyLFxuLnRhYmxlID4gdGJvZHkgPiB0ciA+IHRkLmRhbmdlcixcbi50YWJsZSA+IHRmb290ID4gdHIgPiB0ZC5kYW5nZXIsXG4udGFibGUgPiB0aGVhZCA+IHRyID4gdGguZGFuZ2VyLFxuLnRhYmxlID4gdGJvZHkgPiB0ciA+IHRoLmRhbmdlcixcbi50YWJsZSA+IHRmb290ID4gdHIgPiB0aC5kYW5nZXIsXG4udGFibGUgPiB0aGVhZCA+IHRyLmRhbmdlciA+IHRkLFxuLnRhYmxlID4gdGJvZHkgPiB0ci5kYW5nZXIgPiB0ZCxcbi50YWJsZSA+IHRmb290ID4gdHIuZGFuZ2VyID4gdGQsXG4udGFibGUgPiB0aGVhZCA+IHRyLmRhbmdlciA+IHRoLFxuLnRhYmxlID4gdGJvZHkgPiB0ci5kYW5nZXIgPiB0aCxcbi50YWJsZSA+IHRmb290ID4gdHIuZGFuZ2VyID4gdGgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjJkZWRlO1xufVxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0ciA+IHRkLmRhbmdlcjpob3Zlcixcbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHIgPiB0aC5kYW5nZXI6aG92ZXIsXG4udGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyLmRhbmdlcjpob3ZlciA+IHRkLFxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0cjpob3ZlciA+IC5kYW5nZXIsXG4udGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyLmRhbmdlcjpob3ZlciA+IHRoIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ViY2NjYztcbn1cbi50YWJsZS1yZXNwb25zaXZlIHtcbiAgb3ZlcmZsb3cteDogYXV0bztcbiAgbWluLWhlaWdodDogMC4wMSU7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAudGFibGUtcmVzcG9uc2l2ZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgICBvdmVyZmxvdy15OiBoaWRkZW47XG4gICAgLW1zLW92ZXJmbG93LXN0eWxlOiAtbXMtYXV0b2hpZGluZy1zY3JvbGxiYXI7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbiAgfVxuICAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuICAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZSA+IHRoZWFkID4gdHIgPiB0aCxcbiAgLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUgPiB0Ym9keSA+IHRyID4gdGgsXG4gIC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlID4gdGZvb3QgPiB0ciA+IHRoLFxuICAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZSA+IHRoZWFkID4gdHIgPiB0ZCxcbiAgLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUgPiB0Ym9keSA+IHRyID4gdGQsXG4gIC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlID4gdGZvb3QgPiB0ciA+IHRkIHtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB9XG4gIC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkIHtcbiAgICBib3JkZXI6IDA7XG4gIH1cbiAgLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0aGVhZCA+IHRyID4gdGg6Zmlyc3QtY2hpbGQsXG4gIC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGJvZHkgPiB0ciA+IHRoOmZpcnN0LWNoaWxkLFxuICAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRmb290ID4gdHIgPiB0aDpmaXJzdC1jaGlsZCxcbiAgLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0aGVhZCA+IHRyID4gdGQ6Zmlyc3QtY2hpbGQsXG4gIC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGJvZHkgPiB0ciA+IHRkOmZpcnN0LWNoaWxkLFxuICAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRmb290ID4gdHIgPiB0ZDpmaXJzdC1jaGlsZCB7XG4gICAgYm9yZGVyLWxlZnQ6IDA7XG4gIH1cbiAgLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0aGVhZCA+IHRyID4gdGg6bGFzdC1jaGlsZCxcbiAgLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0Ym9keSA+IHRyID4gdGg6bGFzdC1jaGlsZCxcbiAgLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0Zm9vdCA+IHRyID4gdGg6bGFzdC1jaGlsZCxcbiAgLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0aGVhZCA+IHRyID4gdGQ6bGFzdC1jaGlsZCxcbiAgLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0Ym9keSA+IHRyID4gdGQ6bGFzdC1jaGlsZCxcbiAgLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0Zm9vdCA+IHRyID4gdGQ6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXJpZ2h0OiAwO1xuICB9XG4gIC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGJvZHkgPiB0cjpsYXN0LWNoaWxkID4gdGgsXG4gIC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGZvb3QgPiB0cjpsYXN0LWNoaWxkID4gdGgsXG4gIC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGJvZHkgPiB0cjpsYXN0LWNoaWxkID4gdGQsXG4gIC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGZvb3QgPiB0cjpsYXN0LWNoaWxkID4gdGQge1xuICAgIGJvcmRlci1ib3R0b206IDA7XG4gIH1cbn1cbmZpZWxkc2V0IHtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICBib3JkZXI6IDA7XG4gIG1pbi13aWR0aDogMDtcbn1cbmxlZ2VuZCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgZm9udC1zaXplOiAyMXB4O1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgY29sb3I6ICMzMzMzMzM7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlNWU1ZTU7XG59XG5sYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuaW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgbWFyZ2luOiA0cHggMCAwO1xuICBtYXJnaW4tdG9wOiAxcHggXFw5O1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xufVxuaW5wdXRbdHlwZT1cImZpbGVcIl0ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbmlucHV0W3R5cGU9XCJyYW5nZVwiXSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbn1cbnNlbGVjdFttdWx0aXBsZV0sXG5zZWxlY3Rbc2l6ZV0ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5pbnB1dFt0eXBlPVwiZmlsZVwiXTpmb2N1cyxcbmlucHV0W3R5cGU9XCJyYWRpb1wiXTpmb2N1cyxcbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXTpmb2N1cyB7XG4gIG91dGxpbmU6IDVweCBhdXRvIC13ZWJraXQtZm9jdXMtcmluZy1jb2xvcjtcbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG59XG5vdXRwdXQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZy10b3A6IDdweDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcbiAgY29sb3I6ICM1NTU1NTU7XG59XG4uZm9ybS1jb250cm9sIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDM0cHg7XG4gIHBhZGRpbmc6IDZweCAxMnB4O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xuICBjb2xvcjogIzU1NTU1NTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDc1KTtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpO1xuICAtd2Via2l0LXRyYW5zaXRpb246IGJvcmRlci1jb2xvciBlYXNlLWluLW91dCAuMTVzLCBib3gtc2hhZG93IGVhc2UtaW4tb3V0IC4xNXM7XG4gIC1vLXRyYW5zaXRpb246IGJvcmRlci1jb2xvciBlYXNlLWluLW91dCAuMTVzLCBib3gtc2hhZG93IGVhc2UtaW4tb3V0IC4xNXM7XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciBlYXNlLWluLW91dCAuMTVzLCBib3gtc2hhZG93IGVhc2UtaW4tb3V0IC4xNXM7XG59XG4uZm9ybS1jb250cm9sOmZvY3VzIHtcbiAgYm9yZGVyLWNvbG9yOiAjNjZhZmU5O1xuICBvdXRsaW5lOiAwO1xuICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCByZ2JhKDAsMCwwLC4wNzUpLCAwIDAgOHB4IHJnYmEoMTAyLCAxNzUsIDIzMywgMC42KTtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwwLDAsLjA3NSksIDAgMCA4cHggcmdiYSgxMDIsIDE3NSwgMjMzLCAwLjYpO1xufVxuLmZvcm0tY29udHJvbDo6LW1vei1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjOTk5O1xuICBvcGFjaXR5OiAxO1xufVxuLmZvcm0tY29udHJvbDotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xuICBjb2xvcjogIzk5OTtcbn1cbi5mb3JtLWNvbnRyb2w6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICBjb2xvcjogIzk5OTtcbn1cbi5mb3JtLWNvbnRyb2w6Oi1tcy1leHBhbmQge1xuICBib3JkZXI6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmZvcm0tY29udHJvbFtkaXNhYmxlZF0sXG4uZm9ybS1jb250cm9sW3JlYWRvbmx5XSxcbmZpZWxkc2V0W2Rpc2FibGVkXSAuZm9ybS1jb250cm9sIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZWVlZTtcbiAgb3BhY2l0eTogMTtcbn1cbi5mb3JtLWNvbnRyb2xbZGlzYWJsZWRdLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5mb3JtLWNvbnRyb2wge1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxudGV4dGFyZWEuZm9ybS1jb250cm9sIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDApIHtcbiAgaW5wdXRbdHlwZT1cImRhdGVcIl0uZm9ybS1jb250cm9sLFxuICBpbnB1dFt0eXBlPVwidGltZVwiXS5mb3JtLWNvbnRyb2wsXG4gIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXS5mb3JtLWNvbnRyb2wsXG4gIGlucHV0W3R5cGU9XCJtb250aFwiXS5mb3JtLWNvbnRyb2wge1xuICAgIGxpbmUtaGVpZ2h0OiAzNHB4O1xuICB9XG4gIGlucHV0W3R5cGU9XCJkYXRlXCJdLmlucHV0LXNtLFxuICBpbnB1dFt0eXBlPVwidGltZVwiXS5pbnB1dC1zbSxcbiAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLmlucHV0LXNtLFxuICBpbnB1dFt0eXBlPVwibW9udGhcIl0uaW5wdXQtc20sXG4gIC5pbnB1dC1ncm91cC1zbSBpbnB1dFt0eXBlPVwiZGF0ZVwiXSxcbiAgLmlucHV0LWdyb3VwLXNtIGlucHV0W3R5cGU9XCJ0aW1lXCJdLFxuICAuaW5wdXQtZ3JvdXAtc20gaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLFxuICAuaW5wdXQtZ3JvdXAtc20gaW5wdXRbdHlwZT1cIm1vbnRoXCJdIHtcbiAgICBsaW5lLWhlaWdodDogMzBweDtcbiAgfVxuICBpbnB1dFt0eXBlPVwiZGF0ZVwiXS5pbnB1dC1sZyxcbiAgaW5wdXRbdHlwZT1cInRpbWVcIl0uaW5wdXQtbGcsXG4gIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXS5pbnB1dC1sZyxcbiAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdLmlucHV0LWxnLFxuICAuaW5wdXQtZ3JvdXAtbGcgaW5wdXRbdHlwZT1cImRhdGVcIl0sXG4gIC5pbnB1dC1ncm91cC1sZyBpbnB1dFt0eXBlPVwidGltZVwiXSxcbiAgLmlucHV0LWdyb3VwLWxnIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXSxcbiAgLmlucHV0LWdyb3VwLWxnIGlucHV0W3R5cGU9XCJtb250aFwiXSB7XG4gICAgbGluZS1oZWlnaHQ6IDQ2cHg7XG4gIH1cbn1cbi5mb3JtLWdyb3VwIHtcbiAgbWFyZ2luLWJvdHRvbTogMTVweDtcbn1cbi5yYWRpbyxcbi5jaGVja2JveCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG4ucmFkaW8gbGFiZWwsXG4uY2hlY2tib3ggbGFiZWwge1xuICBtaW4taGVpZ2h0OiAyMHB4O1xuICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5yYWRpbyBpbnB1dFt0eXBlPVwicmFkaW9cIl0sXG4ucmFkaW8taW5saW5lIGlucHV0W3R5cGU9XCJyYWRpb1wiXSxcbi5jaGVja2JveCBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG4uY2hlY2tib3gtaW5saW5lIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbWFyZ2luLWxlZnQ6IC0yMHB4O1xuICBtYXJnaW4tdG9wOiA0cHggXFw5O1xufVxuLnJhZGlvICsgLnJhZGlvLFxuLmNoZWNrYm94ICsgLmNoZWNrYm94IHtcbiAgbWFyZ2luLXRvcDogLTVweDtcbn1cbi5yYWRpby1pbmxpbmUsXG4uY2hlY2tib3gtaW5saW5lIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmctbGVmdDogMjBweDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnJhZGlvLWlubGluZSArIC5yYWRpby1pbmxpbmUsXG4uY2hlY2tib3gtaW5saW5lICsgLmNoZWNrYm94LWlubGluZSB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xufVxuaW5wdXRbdHlwZT1cInJhZGlvXCJdW2Rpc2FibGVkXSxcbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXVtkaXNhYmxlZF0sXG5pbnB1dFt0eXBlPVwicmFkaW9cIl0uZGlzYWJsZWQsXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0uZGlzYWJsZWQsXG5maWVsZHNldFtkaXNhYmxlZF0gaW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuZmllbGRzZXRbZGlzYWJsZWRdIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG4ucmFkaW8taW5saW5lLmRpc2FibGVkLFxuLmNoZWNrYm94LWlubGluZS5kaXNhYmxlZCxcbmZpZWxkc2V0W2Rpc2FibGVkXSAucmFkaW8taW5saW5lLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5jaGVja2JveC1pbmxpbmUge1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuLnJhZGlvLmRpc2FibGVkIGxhYmVsLFxuLmNoZWNrYm94LmRpc2FibGVkIGxhYmVsLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5yYWRpbyBsYWJlbCxcbmZpZWxkc2V0W2Rpc2FibGVkXSAuY2hlY2tib3ggbGFiZWwge1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuLmZvcm0tY29udHJvbC1zdGF0aWMge1xuICBwYWRkaW5nLXRvcDogN3B4O1xuICBwYWRkaW5nLWJvdHRvbTogN3B4O1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBtaW4taGVpZ2h0OiAzNHB4O1xufVxuLmZvcm0tY29udHJvbC1zdGF0aWMuaW5wdXQtbGcsXG4uZm9ybS1jb250cm9sLXN0YXRpYy5pbnB1dC1zbSB7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgcGFkZGluZy1yaWdodDogMDtcbn1cbi5pbnB1dC1zbSB7XG4gIGhlaWdodDogMzBweDtcbiAgcGFkZGluZzogNXB4IDEwcHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xufVxuc2VsZWN0LmlucHV0LXNtIHtcbiAgaGVpZ2h0OiAzMHB4O1xuICBsaW5lLWhlaWdodDogMzBweDtcbn1cbnRleHRhcmVhLmlucHV0LXNtLFxuc2VsZWN0W211bHRpcGxlXS5pbnB1dC1zbSB7XG4gIGhlaWdodDogYXV0bztcbn1cbi5mb3JtLWdyb3VwLXNtIC5mb3JtLWNvbnRyb2wge1xuICBoZWlnaHQ6IDMwcHg7XG4gIHBhZGRpbmc6IDVweCAxMHB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cbi5mb3JtLWdyb3VwLXNtIHNlbGVjdC5mb3JtLWNvbnRyb2wge1xuICBoZWlnaHQ6IDMwcHg7XG4gIGxpbmUtaGVpZ2h0OiAzMHB4O1xufVxuLmZvcm0tZ3JvdXAtc20gdGV4dGFyZWEuZm9ybS1jb250cm9sLFxuLmZvcm0tZ3JvdXAtc20gc2VsZWN0W211bHRpcGxlXS5mb3JtLWNvbnRyb2wge1xuICBoZWlnaHQ6IGF1dG87XG59XG4uZm9ybS1ncm91cC1zbSAuZm9ybS1jb250cm9sLXN0YXRpYyB7XG4gIGhlaWdodDogMzBweDtcbiAgbWluLWhlaWdodDogMzJweDtcbiAgcGFkZGluZzogNnB4IDEwcHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbn1cbi5pbnB1dC1sZyB7XG4gIGhlaWdodDogNDZweDtcbiAgcGFkZGluZzogMTBweCAxNnB4O1xuICBmb250LXNpemU6IDE4cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjMzMzMzMzM7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbn1cbnNlbGVjdC5pbnB1dC1sZyB7XG4gIGhlaWdodDogNDZweDtcbiAgbGluZS1oZWlnaHQ6IDQ2cHg7XG59XG50ZXh0YXJlYS5pbnB1dC1sZyxcbnNlbGVjdFttdWx0aXBsZV0uaW5wdXQtbGcge1xuICBoZWlnaHQ6IGF1dG87XG59XG4uZm9ybS1ncm91cC1sZyAuZm9ybS1jb250cm9sIHtcbiAgaGVpZ2h0OiA0NnB4O1xuICBwYWRkaW5nOiAxMHB4IDE2cHg7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgbGluZS1oZWlnaHQ6IDEuMzMzMzMzMztcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xufVxuLmZvcm0tZ3JvdXAtbGcgc2VsZWN0LmZvcm0tY29udHJvbCB7XG4gIGhlaWdodDogNDZweDtcbiAgbGluZS1oZWlnaHQ6IDQ2cHg7XG59XG4uZm9ybS1ncm91cC1sZyB0ZXh0YXJlYS5mb3JtLWNvbnRyb2wsXG4uZm9ybS1ncm91cC1sZyBzZWxlY3RbbXVsdGlwbGVdLmZvcm0tY29udHJvbCB7XG4gIGhlaWdodDogYXV0bztcbn1cbi5mb3JtLWdyb3VwLWxnIC5mb3JtLWNvbnRyb2wtc3RhdGljIHtcbiAgaGVpZ2h0OiA0NnB4O1xuICBtaW4taGVpZ2h0OiAzOHB4O1xuICBwYWRkaW5nOiAxMXB4IDE2cHg7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgbGluZS1oZWlnaHQ6IDEuMzMzMzMzMztcbn1cbi5oYXMtZmVlZGJhY2sge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uaGFzLWZlZWRiYWNrIC5mb3JtLWNvbnRyb2wge1xuICBwYWRkaW5nLXJpZ2h0OiA0Mi41cHg7XG59XG4uZm9ybS1jb250cm9sLWZlZWRiYWNrIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICB6LWluZGV4OiAyO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDM0cHg7XG4gIGhlaWdodDogMzRweDtcbiAgbGluZS1oZWlnaHQ6IDM0cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4uaW5wdXQtbGcgKyAuZm9ybS1jb250cm9sLWZlZWRiYWNrLFxuLmlucHV0LWdyb3VwLWxnICsgLmZvcm0tY29udHJvbC1mZWVkYmFjayxcbi5mb3JtLWdyb3VwLWxnIC5mb3JtLWNvbnRyb2wgKyAuZm9ybS1jb250cm9sLWZlZWRiYWNrIHtcbiAgd2lkdGg6IDQ2cHg7XG4gIGhlaWdodDogNDZweDtcbiAgbGluZS1oZWlnaHQ6IDQ2cHg7XG59XG4uaW5wdXQtc20gKyAuZm9ybS1jb250cm9sLWZlZWRiYWNrLFxuLmlucHV0LWdyb3VwLXNtICsgLmZvcm0tY29udHJvbC1mZWVkYmFjayxcbi5mb3JtLWdyb3VwLXNtIC5mb3JtLWNvbnRyb2wgKyAuZm9ybS1jb250cm9sLWZlZWRiYWNrIHtcbiAgd2lkdGg6IDMwcHg7XG4gIGhlaWdodDogMzBweDtcbiAgbGluZS1oZWlnaHQ6IDMwcHg7XG59XG4uaGFzLXN1Y2Nlc3MgLmhlbHAtYmxvY2ssXG4uaGFzLXN1Y2Nlc3MgLmNvbnRyb2wtbGFiZWwsXG4uaGFzLXN1Y2Nlc3MgLnJhZGlvLFxuLmhhcy1zdWNjZXNzIC5jaGVja2JveCxcbi5oYXMtc3VjY2VzcyAucmFkaW8taW5saW5lLFxuLmhhcy1zdWNjZXNzIC5jaGVja2JveC1pbmxpbmUsXG4uaGFzLXN1Y2Nlc3MucmFkaW8gbGFiZWwsXG4uaGFzLXN1Y2Nlc3MuY2hlY2tib3ggbGFiZWwsXG4uaGFzLXN1Y2Nlc3MucmFkaW8taW5saW5lIGxhYmVsLFxuLmhhcy1zdWNjZXNzLmNoZWNrYm94LWlubGluZSBsYWJlbCB7XG4gIGNvbG9yOiAjM2M3NjNkO1xufVxuLmhhcy1zdWNjZXNzIC5mb3JtLWNvbnRyb2wge1xuICBib3JkZXItY29sb3I6ICMzYzc2M2Q7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpO1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA3NSk7XG59XG4uaGFzLXN1Y2Nlc3MgLmZvcm0tY29udHJvbDpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogIzJiNTQyYztcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA3NSksIDAgMCA2cHggIzY3YjE2ODtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpLCAwIDAgNnB4ICM2N2IxNjg7XG59XG4uaGFzLXN1Y2Nlc3MgLmlucHV0LWdyb3VwLWFkZG9uIHtcbiAgY29sb3I6ICMzYzc2M2Q7XG4gIGJvcmRlci1jb2xvcjogIzNjNzYzZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RmZjBkODtcbn1cbi5oYXMtc3VjY2VzcyAuZm9ybS1jb250cm9sLWZlZWRiYWNrIHtcbiAgY29sb3I6ICMzYzc2M2Q7XG59XG4uaGFzLXdhcm5pbmcgLmhlbHAtYmxvY2ssXG4uaGFzLXdhcm5pbmcgLmNvbnRyb2wtbGFiZWwsXG4uaGFzLXdhcm5pbmcgLnJhZGlvLFxuLmhhcy13YXJuaW5nIC5jaGVja2JveCxcbi5oYXMtd2FybmluZyAucmFkaW8taW5saW5lLFxuLmhhcy13YXJuaW5nIC5jaGVja2JveC1pbmxpbmUsXG4uaGFzLXdhcm5pbmcucmFkaW8gbGFiZWwsXG4uaGFzLXdhcm5pbmcuY2hlY2tib3ggbGFiZWwsXG4uaGFzLXdhcm5pbmcucmFkaW8taW5saW5lIGxhYmVsLFxuLmhhcy13YXJuaW5nLmNoZWNrYm94LWlubGluZSBsYWJlbCB7XG4gIGNvbG9yOiAjOGE2ZDNiO1xufVxuLmhhcy13YXJuaW5nIC5mb3JtLWNvbnRyb2wge1xuICBib3JkZXItY29sb3I6ICM4YTZkM2I7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpO1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA3NSk7XG59XG4uaGFzLXdhcm5pbmcgLmZvcm0tY29udHJvbDpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogIzY2NTEyYztcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA3NSksIDAgMCA2cHggI2MwYTE2YjtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpLCAwIDAgNnB4ICNjMGExNmI7XG59XG4uaGFzLXdhcm5pbmcgLmlucHV0LWdyb3VwLWFkZG9uIHtcbiAgY29sb3I6ICM4YTZkM2I7XG4gIGJvcmRlci1jb2xvcjogIzhhNmQzYjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZjZjhlMztcbn1cbi5oYXMtd2FybmluZyAuZm9ybS1jb250cm9sLWZlZWRiYWNrIHtcbiAgY29sb3I6ICM4YTZkM2I7XG59XG4uaGFzLWVycm9yIC5oZWxwLWJsb2NrLFxuLmhhcy1lcnJvciAuY29udHJvbC1sYWJlbCxcbi5oYXMtZXJyb3IgLnJhZGlvLFxuLmhhcy1lcnJvciAuY2hlY2tib3gsXG4uaGFzLWVycm9yIC5yYWRpby1pbmxpbmUsXG4uaGFzLWVycm9yIC5jaGVja2JveC1pbmxpbmUsXG4uaGFzLWVycm9yLnJhZGlvIGxhYmVsLFxuLmhhcy1lcnJvci5jaGVja2JveCBsYWJlbCxcbi5oYXMtZXJyb3IucmFkaW8taW5saW5lIGxhYmVsLFxuLmhhcy1lcnJvci5jaGVja2JveC1pbmxpbmUgbGFiZWwge1xuICBjb2xvcjogI2E5NDQ0Mjtcbn1cbi5oYXMtZXJyb3IgLmZvcm0tY29udHJvbCB7XG4gIGJvcmRlci1jb2xvcjogI2E5NDQ0MjtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA3NSk7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDc1KTtcbn1cbi5oYXMtZXJyb3IgLmZvcm0tY29udHJvbDpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogIzg0MzUzNDtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA3NSksIDAgMCA2cHggI2NlODQ4MztcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpLCAwIDAgNnB4ICNjZTg0ODM7XG59XG4uaGFzLWVycm9yIC5pbnB1dC1ncm91cC1hZGRvbiB7XG4gIGNvbG9yOiAjYTk0NDQyO1xuICBib3JkZXItY29sb3I6ICNhOTQ0NDI7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMmRlZGU7XG59XG4uaGFzLWVycm9yIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2sge1xuICBjb2xvcjogI2E5NDQ0Mjtcbn1cbi5oYXMtZmVlZGJhY2sgbGFiZWwgfiAuZm9ybS1jb250cm9sLWZlZWRiYWNrIHtcbiAgdG9wOiAyNXB4O1xufVxuLmhhcy1mZWVkYmFjayBsYWJlbC5zci1vbmx5IH4gLmZvcm0tY29udHJvbC1mZWVkYmFjayB7XG4gIHRvcDogMDtcbn1cbi5oZWxwLWJsb2NrIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi10b3A6IDVweDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgY29sb3I6ICM3MzczNzM7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmZvcm0taW5saW5lIC5mb3JtLWdyb3VwIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG4gIC5mb3JtLWlubGluZSAuZm9ybS1jb250cm9sIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxuICAuZm9ybS1pbmxpbmUgLmZvcm0tY29udHJvbC1zdGF0aWMge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgfVxuICAuZm9ybS1pbmxpbmUgLmlucHV0LWdyb3VwIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtdGFibGU7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxuICAuZm9ybS1pbmxpbmUgLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1hZGRvbixcbiAgLmZvcm0taW5saW5lIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnRuLFxuICAuZm9ybS1pbmxpbmUgLmlucHV0LWdyb3VwIC5mb3JtLWNvbnRyb2wge1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG4gIC5mb3JtLWlubGluZSAuaW5wdXQtZ3JvdXAgPiAuZm9ybS1jb250cm9sIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAuZm9ybS1pbmxpbmUgLmNvbnRyb2wtbGFiZWwge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxuICAuZm9ybS1pbmxpbmUgLnJhZGlvLFxuICAuZm9ybS1pbmxpbmUgLmNoZWNrYm94IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIH1cbiAgLmZvcm0taW5saW5lIC5yYWRpbyBsYWJlbCxcbiAgLmZvcm0taW5saW5lIC5jaGVja2JveCBsYWJlbCB7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICB9XG4gIC5mb3JtLWlubGluZSAucmFkaW8gaW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuICAuZm9ybS1pbmxpbmUgLmNoZWNrYm94IGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG4gIC5mb3JtLWlubGluZSAuaGFzLWZlZWRiYWNrIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2sge1xuICAgIHRvcDogMDtcbiAgfVxufVxuLmZvcm0taG9yaXpvbnRhbCAucmFkaW8sXG4uZm9ybS1ob3Jpem9udGFsIC5jaGVja2JveCxcbi5mb3JtLWhvcml6b250YWwgLnJhZGlvLWlubGluZSxcbi5mb3JtLWhvcml6b250YWwgLmNoZWNrYm94LWlubGluZSB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIHBhZGRpbmctdG9wOiA3cHg7XG59XG4uZm9ybS1ob3Jpem9udGFsIC5yYWRpbyxcbi5mb3JtLWhvcml6b250YWwgLmNoZWNrYm94IHtcbiAgbWluLWhlaWdodDogMjdweDtcbn1cbi5mb3JtLWhvcml6b250YWwgLmZvcm0tZ3JvdXAge1xuICBtYXJnaW4tbGVmdDogLTE1cHg7XG4gIG1hcmdpbi1yaWdodDogLTE1cHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmZvcm0taG9yaXpvbnRhbCAuY29udHJvbC1sYWJlbCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBwYWRkaW5nLXRvcDogN3B4O1xuICB9XG59XG4uZm9ybS1ob3Jpem9udGFsIC5oYXMtZmVlZGJhY2sgLmZvcm0tY29udHJvbC1mZWVkYmFjayB7XG4gIHJpZ2h0OiAxNXB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5mb3JtLWhvcml6b250YWwgLmZvcm0tZ3JvdXAtbGcgLmNvbnRyb2wtbGFiZWwge1xuICAgIHBhZGRpbmctdG9wOiAxMXB4O1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5mb3JtLWhvcml6b250YWwgLmZvcm0tZ3JvdXAtc20gLmNvbnRyb2wtbGFiZWwge1xuICAgIHBhZGRpbmctdG9wOiA2cHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICB9XG59XG4uYnRuIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBwYWRkaW5nOiA2cHggMTJweDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuLmJ0bjpmb2N1cyxcbi5idG46YWN0aXZlOmZvY3VzLFxuLmJ0bi5hY3RpdmU6Zm9jdXMsXG4uYnRuLmZvY3VzLFxuLmJ0bjphY3RpdmUuZm9jdXMsXG4uYnRuLmFjdGl2ZS5mb2N1cyB7XG4gIG91dGxpbmU6IDVweCBhdXRvIC13ZWJraXQtZm9jdXMtcmluZy1jb2xvcjtcbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG59XG4uYnRuOmhvdmVyLFxuLmJ0bjpmb2N1cyxcbi5idG4uZm9jdXMge1xuICBjb2xvcjogIzMzMztcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuLmJ0bjphY3RpdmUsXG4uYnRuLmFjdGl2ZSB7XG4gIG91dGxpbmU6IDA7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAzcHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMjUpO1xuICBib3gtc2hhZG93OiBpbnNldCAwIDNweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyNSk7XG59XG4uYnRuLmRpc2FibGVkLFxuLmJ0bltkaXNhYmxlZF0sXG5maWVsZHNldFtkaXNhYmxlZF0gLmJ0biB7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gIG9wYWNpdHk6IDAuNjU7XG4gIGZpbHRlcjogYWxwaGEob3BhY2l0eT02NSk7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbmEuYnRuLmRpc2FibGVkLFxuZmllbGRzZXRbZGlzYWJsZWRdIGEuYnRuIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4uYnRuLWRlZmF1bHQge1xuICBjb2xvcjogIzMzMztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyLWNvbG9yOiAjY2NjO1xufVxuLmJ0bi1kZWZhdWx0OmZvY3VzLFxuLmJ0bi1kZWZhdWx0LmZvY3VzIHtcbiAgY29sb3I6ICMzMzM7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7XG4gIGJvcmRlci1jb2xvcjogIzhjOGM4Yztcbn1cbi5idG4tZGVmYXVsdDpob3ZlciB7XG4gIGNvbG9yOiAjMzMzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2O1xuICBib3JkZXItY29sb3I6ICNhZGFkYWQ7XG59XG4uYnRuLWRlZmF1bHQ6YWN0aXZlLFxuLmJ0bi1kZWZhdWx0LmFjdGl2ZSxcbi5vcGVuID4gLmRyb3Bkb3duLXRvZ2dsZS5idG4tZGVmYXVsdCB7XG4gIGNvbG9yOiAjMzMzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2O1xuICBib3JkZXItY29sb3I6ICNhZGFkYWQ7XG59XG4uYnRuLWRlZmF1bHQ6YWN0aXZlOmhvdmVyLFxuLmJ0bi1kZWZhdWx0LmFjdGl2ZTpob3Zlcixcbi5vcGVuID4gLmRyb3Bkb3duLXRvZ2dsZS5idG4tZGVmYXVsdDpob3Zlcixcbi5idG4tZGVmYXVsdDphY3RpdmU6Zm9jdXMsXG4uYnRuLWRlZmF1bHQuYWN0aXZlOmZvY3VzLFxuLm9wZW4gPiAuZHJvcGRvd24tdG9nZ2xlLmJ0bi1kZWZhdWx0OmZvY3VzLFxuLmJ0bi1kZWZhdWx0OmFjdGl2ZS5mb2N1cyxcbi5idG4tZGVmYXVsdC5hY3RpdmUuZm9jdXMsXG4ub3BlbiA+IC5kcm9wZG93bi10b2dnbGUuYnRuLWRlZmF1bHQuZm9jdXMge1xuICBjb2xvcjogIzMzMztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q0ZDRkNDtcbiAgYm9yZGVyLWNvbG9yOiAjOGM4YzhjO1xufVxuLmJ0bi1kZWZhdWx0OmFjdGl2ZSxcbi5idG4tZGVmYXVsdC5hY3RpdmUsXG4ub3BlbiA+IC5kcm9wZG93bi10b2dnbGUuYnRuLWRlZmF1bHQge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xufVxuLmJ0bi1kZWZhdWx0LmRpc2FibGVkOmhvdmVyLFxuLmJ0bi1kZWZhdWx0W2Rpc2FibGVkXTpob3ZlcixcbmZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLWRlZmF1bHQ6aG92ZXIsXG4uYnRuLWRlZmF1bHQuZGlzYWJsZWQ6Zm9jdXMsXG4uYnRuLWRlZmF1bHRbZGlzYWJsZWRdOmZvY3VzLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tZGVmYXVsdDpmb2N1cyxcbi5idG4tZGVmYXVsdC5kaXNhYmxlZC5mb2N1cyxcbi5idG4tZGVmYXVsdFtkaXNhYmxlZF0uZm9jdXMsXG5maWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1kZWZhdWx0LmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyLWNvbG9yOiAjY2NjO1xufVxuLmJ0bi1kZWZhdWx0IC5iYWRnZSB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzO1xufVxuLmJ0bi1wcmltYXJ5IHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGU1ZjA7XG4gIGJvcmRlci1jb2xvcjogIzAwY2RkNztcbn1cbi5idG4tcHJpbWFyeTpmb2N1cyxcbi5idG4tcHJpbWFyeS5mb2N1cyB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBiNGJkO1xuICBib3JkZXItY29sb3I6ICMwMDUzNTc7XG59XG4uYnRuLXByaW1hcnk6aG92ZXIge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwYjRiZDtcbiAgYm9yZGVyLWNvbG9yOiAjMDA5Mjk5O1xufVxuLmJ0bi1wcmltYXJ5OmFjdGl2ZSxcbi5idG4tcHJpbWFyeS5hY3RpdmUsXG4ub3BlbiA+IC5kcm9wZG93bi10b2dnbGUuYnRuLXByaW1hcnkge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwYjRiZDtcbiAgYm9yZGVyLWNvbG9yOiAjMDA5Mjk5O1xufVxuLmJ0bi1wcmltYXJ5OmFjdGl2ZTpob3Zlcixcbi5idG4tcHJpbWFyeS5hY3RpdmU6aG92ZXIsXG4ub3BlbiA+IC5kcm9wZG93bi10b2dnbGUuYnRuLXByaW1hcnk6aG92ZXIsXG4uYnRuLXByaW1hcnk6YWN0aXZlOmZvY3VzLFxuLmJ0bi1wcmltYXJ5LmFjdGl2ZTpmb2N1cyxcbi5vcGVuID4gLmRyb3Bkb3duLXRvZ2dsZS5idG4tcHJpbWFyeTpmb2N1cyxcbi5idG4tcHJpbWFyeTphY3RpdmUuZm9jdXMsXG4uYnRuLXByaW1hcnkuYWN0aXZlLmZvY3VzLFxuLm9wZW4gPiAuZHJvcGRvd24tdG9nZ2xlLmJ0bi1wcmltYXJ5LmZvY3VzIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDkyOTk7XG4gIGJvcmRlci1jb2xvcjogIzAwNTM1Nztcbn1cbi5idG4tcHJpbWFyeTphY3RpdmUsXG4uYnRuLXByaW1hcnkuYWN0aXZlLFxuLm9wZW4gPiAuZHJvcGRvd24tdG9nZ2xlLmJ0bi1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbn1cbi5idG4tcHJpbWFyeS5kaXNhYmxlZDpob3Zlcixcbi5idG4tcHJpbWFyeVtkaXNhYmxlZF06aG92ZXIsXG5maWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1wcmltYXJ5OmhvdmVyLFxuLmJ0bi1wcmltYXJ5LmRpc2FibGVkOmZvY3VzLFxuLmJ0bi1wcmltYXJ5W2Rpc2FibGVkXTpmb2N1cyxcbmZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLXByaW1hcnk6Zm9jdXMsXG4uYnRuLXByaW1hcnkuZGlzYWJsZWQuZm9jdXMsXG4uYnRuLXByaW1hcnlbZGlzYWJsZWRdLmZvY3VzLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tcHJpbWFyeS5mb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGU1ZjA7XG4gIGJvcmRlci1jb2xvcjogIzAwY2RkNztcbn1cbi5idG4tcHJpbWFyeSAuYmFkZ2Uge1xuICBjb2xvcjogIzAwZTVmMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cbi5idG4tc3VjY2VzcyB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBlNWYwO1xuICBib3JkZXItY29sb3I6ICMwMGNkZDc7XG59XG4uYnRuLXN1Y2Nlc3M6Zm9jdXMsXG4uYnRuLXN1Y2Nlc3MuZm9jdXMge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwYjRiZDtcbiAgYm9yZGVyLWNvbG9yOiAjMDA1MzU3O1xufVxuLmJ0bi1zdWNjZXNzOmhvdmVyIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGI0YmQ7XG4gIGJvcmRlci1jb2xvcjogIzAwOTI5OTtcbn1cbi5idG4tc3VjY2VzczphY3RpdmUsXG4uYnRuLXN1Y2Nlc3MuYWN0aXZlLFxuLm9wZW4gPiAuZHJvcGRvd24tdG9nZ2xlLmJ0bi1zdWNjZXNzIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGI0YmQ7XG4gIGJvcmRlci1jb2xvcjogIzAwOTI5OTtcbn1cbi5idG4tc3VjY2VzczphY3RpdmU6aG92ZXIsXG4uYnRuLXN1Y2Nlc3MuYWN0aXZlOmhvdmVyLFxuLm9wZW4gPiAuZHJvcGRvd24tdG9nZ2xlLmJ0bi1zdWNjZXNzOmhvdmVyLFxuLmJ0bi1zdWNjZXNzOmFjdGl2ZTpmb2N1cyxcbi5idG4tc3VjY2Vzcy5hY3RpdmU6Zm9jdXMsXG4ub3BlbiA+IC5kcm9wZG93bi10b2dnbGUuYnRuLXN1Y2Nlc3M6Zm9jdXMsXG4uYnRuLXN1Y2Nlc3M6YWN0aXZlLmZvY3VzLFxuLmJ0bi1zdWNjZXNzLmFjdGl2ZS5mb2N1cyxcbi5vcGVuID4gLmRyb3Bkb3duLXRvZ2dsZS5idG4tc3VjY2Vzcy5mb2N1cyB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA5Mjk5O1xuICBib3JkZXItY29sb3I6ICMwMDUzNTc7XG59XG4uYnRuLXN1Y2Nlc3M6YWN0aXZlLFxuLmJ0bi1zdWNjZXNzLmFjdGl2ZSxcbi5vcGVuID4gLmRyb3Bkb3duLXRvZ2dsZS5idG4tc3VjY2VzcyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG59XG4uYnRuLXN1Y2Nlc3MuZGlzYWJsZWQ6aG92ZXIsXG4uYnRuLXN1Y2Nlc3NbZGlzYWJsZWRdOmhvdmVyLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tc3VjY2Vzczpob3Zlcixcbi5idG4tc3VjY2Vzcy5kaXNhYmxlZDpmb2N1cyxcbi5idG4tc3VjY2Vzc1tkaXNhYmxlZF06Zm9jdXMsXG5maWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1zdWNjZXNzOmZvY3VzLFxuLmJ0bi1zdWNjZXNzLmRpc2FibGVkLmZvY3VzLFxuLmJ0bi1zdWNjZXNzW2Rpc2FibGVkXS5mb2N1cyxcbmZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLXN1Y2Nlc3MuZm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBlNWYwO1xuICBib3JkZXItY29sb3I6ICMwMGNkZDc7XG59XG4uYnRuLXN1Y2Nlc3MgLmJhZGdlIHtcbiAgY29sb3I6ICMwMGU1ZjA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG4uYnRuLWluZm8ge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwZTVmMDtcbiAgYm9yZGVyLWNvbG9yOiAjMDBjZGQ3O1xufVxuLmJ0bi1pbmZvOmZvY3VzLFxuLmJ0bi1pbmZvLmZvY3VzIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGI0YmQ7XG4gIGJvcmRlci1jb2xvcjogIzAwNTM1Nztcbn1cbi5idG4taW5mbzpob3ZlciB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBiNGJkO1xuICBib3JkZXItY29sb3I6ICMwMDkyOTk7XG59XG4uYnRuLWluZm86YWN0aXZlLFxuLmJ0bi1pbmZvLmFjdGl2ZSxcbi5vcGVuID4gLmRyb3Bkb3duLXRvZ2dsZS5idG4taW5mbyB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBiNGJkO1xuICBib3JkZXItY29sb3I6ICMwMDkyOTk7XG59XG4uYnRuLWluZm86YWN0aXZlOmhvdmVyLFxuLmJ0bi1pbmZvLmFjdGl2ZTpob3Zlcixcbi5vcGVuID4gLmRyb3Bkb3duLXRvZ2dsZS5idG4taW5mbzpob3Zlcixcbi5idG4taW5mbzphY3RpdmU6Zm9jdXMsXG4uYnRuLWluZm8uYWN0aXZlOmZvY3VzLFxuLm9wZW4gPiAuZHJvcGRvd24tdG9nZ2xlLmJ0bi1pbmZvOmZvY3VzLFxuLmJ0bi1pbmZvOmFjdGl2ZS5mb2N1cyxcbi5idG4taW5mby5hY3RpdmUuZm9jdXMsXG4ub3BlbiA+IC5kcm9wZG93bi10b2dnbGUuYnRuLWluZm8uZm9jdXMge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwOTI5OTtcbiAgYm9yZGVyLWNvbG9yOiAjMDA1MzU3O1xufVxuLmJ0bi1pbmZvOmFjdGl2ZSxcbi5idG4taW5mby5hY3RpdmUsXG4ub3BlbiA+IC5kcm9wZG93bi10b2dnbGUuYnRuLWluZm8ge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xufVxuLmJ0bi1pbmZvLmRpc2FibGVkOmhvdmVyLFxuLmJ0bi1pbmZvW2Rpc2FibGVkXTpob3ZlcixcbmZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLWluZm86aG92ZXIsXG4uYnRuLWluZm8uZGlzYWJsZWQ6Zm9jdXMsXG4uYnRuLWluZm9bZGlzYWJsZWRdOmZvY3VzLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5idG4taW5mbzpmb2N1cyxcbi5idG4taW5mby5kaXNhYmxlZC5mb2N1cyxcbi5idG4taW5mb1tkaXNhYmxlZF0uZm9jdXMsXG5maWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1pbmZvLmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwZTVmMDtcbiAgYm9yZGVyLWNvbG9yOiAjMDBjZGQ3O1xufVxuLmJ0bi1pbmZvIC5iYWRnZSB7XG4gIGNvbG9yOiAjMDBlNWYwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuLmJ0bi13YXJuaW5nIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5NzdiZjA7XG4gIGJvcmRlci1jb2xvcjogIzg1NjRlZDtcbn1cbi5idG4td2FybmluZzpmb2N1cyxcbi5idG4td2FybmluZy5mb2N1cyB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzM0ZGViO1xuICBib3JkZXItY29sb3I6ICMzZDE1YmQ7XG59XG4uYnRuLXdhcm5pbmc6aG92ZXIge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzczNGRlYjtcbiAgYm9yZGVyLWNvbG9yOiAjNWEyZGU3O1xufVxuLmJ0bi13YXJuaW5nOmFjdGl2ZSxcbi5idG4td2FybmluZy5hY3RpdmUsXG4ub3BlbiA+IC5kcm9wZG93bi10b2dnbGUuYnRuLXdhcm5pbmcge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzczNGRlYjtcbiAgYm9yZGVyLWNvbG9yOiAjNWEyZGU3O1xufVxuLmJ0bi13YXJuaW5nOmFjdGl2ZTpob3Zlcixcbi5idG4td2FybmluZy5hY3RpdmU6aG92ZXIsXG4ub3BlbiA+IC5kcm9wZG93bi10b2dnbGUuYnRuLXdhcm5pbmc6aG92ZXIsXG4uYnRuLXdhcm5pbmc6YWN0aXZlOmZvY3VzLFxuLmJ0bi13YXJuaW5nLmFjdGl2ZTpmb2N1cyxcbi5vcGVuID4gLmRyb3Bkb3duLXRvZ2dsZS5idG4td2FybmluZzpmb2N1cyxcbi5idG4td2FybmluZzphY3RpdmUuZm9jdXMsXG4uYnRuLXdhcm5pbmcuYWN0aXZlLmZvY3VzLFxuLm9wZW4gPiAuZHJvcGRvd24tdG9nZ2xlLmJ0bi13YXJuaW5nLmZvY3VzIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1YTJkZTc7XG4gIGJvcmRlci1jb2xvcjogIzNkMTViZDtcbn1cbi5idG4td2FybmluZzphY3RpdmUsXG4uYnRuLXdhcm5pbmcuYWN0aXZlLFxuLm9wZW4gPiAuZHJvcGRvd24tdG9nZ2xlLmJ0bi13YXJuaW5nIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbn1cbi5idG4td2FybmluZy5kaXNhYmxlZDpob3Zlcixcbi5idG4td2FybmluZ1tkaXNhYmxlZF06aG92ZXIsXG5maWVsZHNldFtkaXNhYmxlZF0gLmJ0bi13YXJuaW5nOmhvdmVyLFxuLmJ0bi13YXJuaW5nLmRpc2FibGVkOmZvY3VzLFxuLmJ0bi13YXJuaW5nW2Rpc2FibGVkXTpmb2N1cyxcbmZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLXdhcm5pbmc6Zm9jdXMsXG4uYnRuLXdhcm5pbmcuZGlzYWJsZWQuZm9jdXMsXG4uYnRuLXdhcm5pbmdbZGlzYWJsZWRdLmZvY3VzLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5idG4td2FybmluZy5mb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5NzdiZjA7XG4gIGJvcmRlci1jb2xvcjogIzg1NjRlZDtcbn1cbi5idG4td2FybmluZyAuYmFkZ2Uge1xuICBjb2xvcjogIzk3N2JmMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cbi5idG4tZGFuZ2VyIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlMDFmNzQ7XG4gIGJvcmRlci1jb2xvcjogI2NhMWM2ODtcbn1cbi5idG4tZGFuZ2VyOmZvY3VzLFxuLmJ0bi1kYW5nZXIuZm9jdXMge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2IzMTk1ZDtcbiAgYm9yZGVyLWNvbG9yOiAjNWEwYzJlO1xufVxuLmJ0bi1kYW5nZXI6aG92ZXIge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2IzMTk1ZDtcbiAgYm9yZGVyLWNvbG9yOiAjOTQxNDRkO1xufVxuLmJ0bi1kYW5nZXI6YWN0aXZlLFxuLmJ0bi1kYW5nZXIuYWN0aXZlLFxuLm9wZW4gPiAuZHJvcGRvd24tdG9nZ2xlLmJ0bi1kYW5nZXIge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2IzMTk1ZDtcbiAgYm9yZGVyLWNvbG9yOiAjOTQxNDRkO1xufVxuLmJ0bi1kYW5nZXI6YWN0aXZlOmhvdmVyLFxuLmJ0bi1kYW5nZXIuYWN0aXZlOmhvdmVyLFxuLm9wZW4gPiAuZHJvcGRvd24tdG9nZ2xlLmJ0bi1kYW5nZXI6aG92ZXIsXG4uYnRuLWRhbmdlcjphY3RpdmU6Zm9jdXMsXG4uYnRuLWRhbmdlci5hY3RpdmU6Zm9jdXMsXG4ub3BlbiA+IC5kcm9wZG93bi10b2dnbGUuYnRuLWRhbmdlcjpmb2N1cyxcbi5idG4tZGFuZ2VyOmFjdGl2ZS5mb2N1cyxcbi5idG4tZGFuZ2VyLmFjdGl2ZS5mb2N1cyxcbi5vcGVuID4gLmRyb3Bkb3duLXRvZ2dsZS5idG4tZGFuZ2VyLmZvY3VzIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5NDE0NGQ7XG4gIGJvcmRlci1jb2xvcjogIzVhMGMyZTtcbn1cbi5idG4tZGFuZ2VyOmFjdGl2ZSxcbi5idG4tZGFuZ2VyLmFjdGl2ZSxcbi5vcGVuID4gLmRyb3Bkb3duLXRvZ2dsZS5idG4tZGFuZ2VyIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbn1cbi5idG4tZGFuZ2VyLmRpc2FibGVkOmhvdmVyLFxuLmJ0bi1kYW5nZXJbZGlzYWJsZWRdOmhvdmVyLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tZGFuZ2VyOmhvdmVyLFxuLmJ0bi1kYW5nZXIuZGlzYWJsZWQ6Zm9jdXMsXG4uYnRuLWRhbmdlcltkaXNhYmxlZF06Zm9jdXMsXG5maWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1kYW5nZXI6Zm9jdXMsXG4uYnRuLWRhbmdlci5kaXNhYmxlZC5mb2N1cyxcbi5idG4tZGFuZ2VyW2Rpc2FibGVkXS5mb2N1cyxcbmZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLWRhbmdlci5mb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlMDFmNzQ7XG4gIGJvcmRlci1jb2xvcjogI2NhMWM2ODtcbn1cbi5idG4tZGFuZ2VyIC5iYWRnZSB7XG4gIGNvbG9yOiAjZTAxZjc0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuLmJ0bi1saW5rIHtcbiAgY29sb3I6ICMwMGU1ZjA7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG4uYnRuLWxpbmssXG4uYnRuLWxpbms6YWN0aXZlLFxuLmJ0bi1saW5rLmFjdGl2ZSxcbi5idG4tbGlua1tkaXNhYmxlZF0sXG5maWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1saW5rIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi5idG4tbGluayxcbi5idG4tbGluazpob3Zlcixcbi5idG4tbGluazpmb2N1cyxcbi5idG4tbGluazphY3RpdmUge1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmJ0bi1saW5rOmhvdmVyLFxuLmJ0bi1saW5rOmZvY3VzIHtcbiAgY29sb3I6ICMwMDljYTM7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5idG4tbGlua1tkaXNhYmxlZF06aG92ZXIsXG5maWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1saW5rOmhvdmVyLFxuLmJ0bi1saW5rW2Rpc2FibGVkXTpmb2N1cyxcbmZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLWxpbms6Zm9jdXMge1xuICBjb2xvcjogIzc3Nzc3NztcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuLmJ0bi1sZyxcbi5idG4tZ3JvdXAtbGcgPiAuYnRuIHtcbiAgcGFkZGluZzogMTBweCAxNnB4O1xuICBmb250LXNpemU6IDE4cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjMzMzMzMzM7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbn1cbi5idG4tc20sXG4uYnRuLWdyb3VwLXNtID4gLmJ0biB7XG4gIHBhZGRpbmc6IDVweCAxMHB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cbi5idG4teHMsXG4uYnRuLWdyb3VwLXhzID4gLmJ0biB7XG4gIHBhZGRpbmc6IDFweCA1cHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xufVxuLmJ0bi1ibG9jayB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbn1cbi5idG4tYmxvY2sgKyAuYnRuLWJsb2NrIHtcbiAgbWFyZ2luLXRvcDogNXB4O1xufVxuaW5wdXRbdHlwZT1cInN1Ym1pdFwiXS5idG4tYmxvY2ssXG5pbnB1dFt0eXBlPVwicmVzZXRcIl0uYnRuLWJsb2NrLFxuaW5wdXRbdHlwZT1cImJ1dHRvblwiXS5idG4tYmxvY2sge1xuICB3aWR0aDogMTAwJTtcbn1cbi5mYWRlIHtcbiAgb3BhY2l0eTogMDtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGxpbmVhcjtcbiAgLW8tdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cyBsaW5lYXI7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgbGluZWFyO1xufVxuLmZhZGUuaW4ge1xuICBvcGFjaXR5OiAxO1xufVxuLmNvbGxhcHNlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5jb2xsYXBzZS5pbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxudHIuY29sbGFwc2UuaW4ge1xuICBkaXNwbGF5OiB0YWJsZS1yb3c7XG59XG50Ym9keS5jb2xsYXBzZS5pbiB7XG4gIGRpc3BsYXk6IHRhYmxlLXJvdy1ncm91cDtcbn1cbi5jb2xsYXBzaW5nIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTogaGVpZ2h0LCB2aXNpYmlsaXR5O1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBoZWlnaHQsIHZpc2liaWxpdHk7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4zNXM7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMzVzO1xuICAtd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZTtcbn1cbi5jYXJldCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IDJweDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgYm9yZGVyLXRvcDogNHB4IGRhc2hlZDtcbiAgYm9yZGVyLXRvcDogNHB4IHNvbGlkIFxcOTtcbiAgYm9yZGVyLXJpZ2h0OiA0cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1sZWZ0OiA0cHggc29saWQgdHJhbnNwYXJlbnQ7XG59XG4uZHJvcHVwLFxuLmRyb3Bkb3duIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmRyb3Bkb3duLXRvZ2dsZTpmb2N1cyB7XG4gIG91dGxpbmU6IDA7XG59XG4uZHJvcGRvd24tbWVudSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxMDAlO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAxMDAwO1xuICBkaXNwbGF5OiBub25lO1xuICBmbG9hdDogbGVmdDtcbiAgbWluLXdpZHRoOiAxNjBweDtcbiAgcGFkZGluZzogNXB4IDA7XG4gIG1hcmdpbjogMnB4IDAgMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCA2cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMTc1KTtcbiAgYm94LXNoYWRvdzogMCA2cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMTc1KTtcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbn1cbi5kcm9wZG93bi1tZW51LnB1bGwtcmlnaHQge1xuICByaWdodDogMDtcbiAgbGVmdDogYXV0bztcbn1cbi5kcm9wZG93bi1tZW51IC5kaXZpZGVyIHtcbiAgaGVpZ2h0OiAxcHg7XG4gIG1hcmdpbjogOXB4IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNWU1ZTU7XG59XG4uZHJvcGRvd24tbWVudSA+IGxpID4gYSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAzcHggMjBweDtcbiAgY2xlYXI6IGJvdGg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xuICBjb2xvcjogIzMzMzMzMztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5kcm9wZG93bi1tZW51ID4gbGkgPiBhOmhvdmVyLFxuLmRyb3Bkb3duLW1lbnUgPiBsaSA+IGE6Zm9jdXMge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiAjMjYyNjI2O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xufVxuLmRyb3Bkb3duLW1lbnUgPiAuYWN0aXZlID4gYSxcbi5kcm9wZG93bi1tZW51ID4gLmFjdGl2ZSA+IGE6aG92ZXIsXG4uZHJvcGRvd24tbWVudSA+IC5hY3RpdmUgPiBhOmZvY3VzIHtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgb3V0bGluZTogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwZTVmMDtcbn1cbi5kcm9wZG93bi1tZW51ID4gLmRpc2FibGVkID4gYSxcbi5kcm9wZG93bi1tZW51ID4gLmRpc2FibGVkID4gYTpob3Zlcixcbi5kcm9wZG93bi1tZW51ID4gLmRpc2FibGVkID4gYTpmb2N1cyB7XG4gIGNvbG9yOiAjNzc3Nzc3O1xufVxuLmRyb3Bkb3duLW1lbnUgPiAuZGlzYWJsZWQgPiBhOmhvdmVyLFxuLmRyb3Bkb3duLW1lbnUgPiAuZGlzYWJsZWQgPiBhOmZvY3VzIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoZW5hYmxlZCA9IGZhbHNlKTtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cbi5vcGVuID4gLmRyb3Bkb3duLW1lbnUge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi5vcGVuID4gYSB7XG4gIG91dGxpbmU6IDA7XG59XG4uZHJvcGRvd24tbWVudS1yaWdodCB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAwO1xufVxuLmRyb3Bkb3duLW1lbnUtbGVmdCB7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiBhdXRvO1xufVxuLmRyb3Bkb3duLWhlYWRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAzcHggMjBweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcbiAgY29sb3I6ICM3Nzc3Nzc7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4uZHJvcGRvd24tYmFja2Ryb3Age1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIHRvcDogMDtcbiAgei1pbmRleDogOTkwO1xufVxuLnB1bGwtcmlnaHQgPiAuZHJvcGRvd24tbWVudSB7XG4gIHJpZ2h0OiAwO1xuICBsZWZ0OiBhdXRvO1xufVxuLmRyb3B1cCAuY2FyZXQsXG4ubmF2YmFyLWZpeGVkLWJvdHRvbSAuZHJvcGRvd24gLmNhcmV0IHtcbiAgYm9yZGVyLXRvcDogMDtcbiAgYm9yZGVyLWJvdHRvbTogNHB4IGRhc2hlZDtcbiAgYm9yZGVyLWJvdHRvbTogNHB4IHNvbGlkIFxcOTtcbiAgY29udGVudDogXCJcIjtcbn1cbi5kcm9wdXAgLmRyb3Bkb3duLW1lbnUsXG4ubmF2YmFyLWZpeGVkLWJvdHRvbSAuZHJvcGRvd24gLmRyb3Bkb3duLW1lbnUge1xuICB0b3A6IGF1dG87XG4gIGJvdHRvbTogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMnB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5uYXZiYXItcmlnaHQgLmRyb3Bkb3duLW1lbnUge1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IDA7XG4gIH1cbiAgLm5hdmJhci1yaWdodCAuZHJvcGRvd24tbWVudS1sZWZ0IHtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiBhdXRvO1xuICB9XG59XG4uYnRuLWdyb3VwLFxuLmJ0bi1ncm91cC12ZXJ0aWNhbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLmJ0bi1ncm91cCA+IC5idG4sXG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0biB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZmxvYXQ6IGxlZnQ7XG59XG4uYnRuLWdyb3VwID4gLmJ0bjpob3Zlcixcbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuOmhvdmVyLFxuLmJ0bi1ncm91cCA+IC5idG46Zm9jdXMsXG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bjpmb2N1cyxcbi5idG4tZ3JvdXAgPiAuYnRuOmFjdGl2ZSxcbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuOmFjdGl2ZSxcbi5idG4tZ3JvdXAgPiAuYnRuLmFjdGl2ZSxcbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuLmFjdGl2ZSB7XG4gIHotaW5kZXg6IDI7XG59XG4uYnRuLWdyb3VwIC5idG4gKyAuYnRuLFxuLmJ0bi1ncm91cCAuYnRuICsgLmJ0bi1ncm91cCxcbi5idG4tZ3JvdXAgLmJ0bi1ncm91cCArIC5idG4sXG4uYnRuLWdyb3VwIC5idG4tZ3JvdXAgKyAuYnRuLWdyb3VwIHtcbiAgbWFyZ2luLWxlZnQ6IC0xcHg7XG59XG4uYnRuLXRvb2xiYXIge1xuICBtYXJnaW4tbGVmdDogLTVweDtcbn1cbi5idG4tdG9vbGJhciAuYnRuLFxuLmJ0bi10b29sYmFyIC5idG4tZ3JvdXAsXG4uYnRuLXRvb2xiYXIgLmlucHV0LWdyb3VwIHtcbiAgZmxvYXQ6IGxlZnQ7XG59XG4uYnRuLXRvb2xiYXIgPiAuYnRuLFxuLmJ0bi10b29sYmFyID4gLmJ0bi1ncm91cCxcbi5idG4tdG9vbGJhciA+IC5pbnB1dC1ncm91cCB7XG4gIG1hcmdpbi1sZWZ0OiA1cHg7XG59XG4uYnRuLWdyb3VwID4gLmJ0bjpub3QoOmZpcnN0LWNoaWxkKTpub3QoOmxhc3QtY2hpbGQpOm5vdCguZHJvcGRvd24tdG9nZ2xlKSB7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG4uYnRuLWdyb3VwID4gLmJ0bjpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuLmJ0bi1ncm91cCA+IC5idG46Zmlyc3QtY2hpbGQ6bm90KDpsYXN0LWNoaWxkKTpub3QoLmRyb3Bkb3duLXRvZ2dsZSkge1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG59XG4uYnRuLWdyb3VwID4gLmJ0bjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpLFxuLmJ0bi1ncm91cCA+IC5kcm9wZG93bi10b2dnbGU6bm90KDpmaXJzdC1jaGlsZCkge1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xufVxuLmJ0bi1ncm91cCA+IC5idG4tZ3JvdXAge1xuICBmbG9hdDogbGVmdDtcbn1cbi5idG4tZ3JvdXAgPiAuYnRuLWdyb3VwOm5vdCg6Zmlyc3QtY2hpbGQpOm5vdCg6bGFzdC1jaGlsZCkgPiAuYnRuIHtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cbi5idG4tZ3JvdXAgPiAuYnRuLWdyb3VwOmZpcnN0LWNoaWxkOm5vdCg6bGFzdC1jaGlsZCkgPiAuYnRuOmxhc3QtY2hpbGQsXG4uYnRuLWdyb3VwID4gLmJ0bi1ncm91cDpmaXJzdC1jaGlsZDpub3QoOmxhc3QtY2hpbGQpID4gLmRyb3Bkb3duLXRvZ2dsZSB7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbn1cbi5idG4tZ3JvdXAgPiAuYnRuLWdyb3VwOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkgPiAuYnRuOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbn1cbi5idG4tZ3JvdXAgLmRyb3Bkb3duLXRvZ2dsZTphY3RpdmUsXG4uYnRuLWdyb3VwLm9wZW4gLmRyb3Bkb3duLXRvZ2dsZSB7XG4gIG91dGxpbmU6IDA7XG59XG4uYnRuLWdyb3VwID4gLmJ0biArIC5kcm9wZG93bi10b2dnbGUge1xuICBwYWRkaW5nLWxlZnQ6IDhweDtcbiAgcGFkZGluZy1yaWdodDogOHB4O1xufVxuLmJ0bi1ncm91cCA+IC5idG4tbGcgKyAuZHJvcGRvd24tdG9nZ2xlIHtcbiAgcGFkZGluZy1sZWZ0OiAxMnB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxMnB4O1xufVxuLmJ0bi1ncm91cC5vcGVuIC5kcm9wZG93bi10b2dnbGUge1xuICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgM3B4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTI1KTtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAzcHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMjUpO1xufVxuLmJ0bi1ncm91cC5vcGVuIC5kcm9wZG93bi10b2dnbGUuYnRuLWxpbmsge1xuICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4uYnRuIC5jYXJldCB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuLmJ0bi1sZyAuY2FyZXQge1xuICBib3JkZXItd2lkdGg6IDVweCA1cHggMDtcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbn1cbi5kcm9wdXAgLmJ0bi1sZyAuY2FyZXQge1xuICBib3JkZXItd2lkdGg6IDAgNXB4IDVweDtcbn1cbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuLFxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4tZ3JvdXAsXG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bi1ncm91cCA+IC5idG4ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxvYXQ6IG5vbmU7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bi1ncm91cCA+IC5idG4ge1xuICBmbG9hdDogbm9uZTtcbn1cbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuICsgLmJ0bixcbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuICsgLmJ0bi1ncm91cCxcbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuLWdyb3VwICsgLmJ0bixcbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuLWdyb3VwICsgLmJ0bi1ncm91cCB7XG4gIG1hcmdpbi10b3A6IC0xcHg7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG46bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKSB7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bjpmaXJzdC1jaGlsZDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDRweDtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNHB4O1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbn1cbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDRweDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNHB4O1xufVxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4tZ3JvdXA6bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKSA+IC5idG4ge1xuICBib3JkZXItcmFkaXVzOiAwO1xufVxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4tZ3JvdXA6Zmlyc3QtY2hpbGQ6bm90KDpsYXN0LWNoaWxkKSA+IC5idG46bGFzdC1jaGlsZCxcbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuLWdyb3VwOmZpcnN0LWNoaWxkOm5vdCg6bGFzdC1jaGlsZCkgPiAuZHJvcGRvd24tdG9nZ2xlIHtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG59XG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bi1ncm91cDpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpID4gLmJ0bjpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xufVxuLmJ0bi1ncm91cC1qdXN0aWZpZWQge1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgd2lkdGg6IDEwMCU7XG4gIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gIGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7XG59XG4uYnRuLWdyb3VwLWp1c3RpZmllZCA+IC5idG4sXG4uYnRuLWdyb3VwLWp1c3RpZmllZCA+IC5idG4tZ3JvdXAge1xuICBmbG9hdDogbm9uZTtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgd2lkdGg6IDElO1xufVxuLmJ0bi1ncm91cC1qdXN0aWZpZWQgPiAuYnRuLWdyb3VwIC5idG4ge1xuICB3aWR0aDogMTAwJTtcbn1cbi5idG4tZ3JvdXAtanVzdGlmaWVkID4gLmJ0bi1ncm91cCAuZHJvcGRvd24tbWVudSB7XG4gIGxlZnQ6IGF1dG87XG59XG5bZGF0YS10b2dnbGU9XCJidXR0b25zXCJdID4gLmJ0biBpbnB1dFt0eXBlPVwicmFkaW9cIl0sXG5bZGF0YS10b2dnbGU9XCJidXR0b25zXCJdID4gLmJ0bi1ncm91cCA+IC5idG4gaW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuW2RhdGEtdG9nZ2xlPVwiYnV0dG9uc1wiXSA+IC5idG4gaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuW2RhdGEtdG9nZ2xlPVwiYnV0dG9uc1wiXSA+IC5idG4tZ3JvdXAgPiAuYnRuIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4uaW5wdXQtZ3JvdXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlO1xufVxuLmlucHV0LWdyb3VwW2NsYXNzKj1cImNvbC1cIl0ge1xuICBmbG9hdDogbm9uZTtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xufVxuLmlucHV0LWdyb3VwIC5mb3JtLWNvbnRyb2wge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDI7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cbi5pbnB1dC1ncm91cCAuZm9ybS1jb250cm9sOmZvY3VzIHtcbiAgei1pbmRleDogMztcbn1cbi5pbnB1dC1ncm91cC1sZyA+IC5mb3JtLWNvbnRyb2wsXG4uaW5wdXQtZ3JvdXAtbGcgPiAuaW5wdXQtZ3JvdXAtYWRkb24sXG4uaW5wdXQtZ3JvdXAtbGcgPiAuaW5wdXQtZ3JvdXAtYnRuID4gLmJ0biB7XG4gIGhlaWdodDogNDZweDtcbiAgcGFkZGluZzogMTBweCAxNnB4O1xuICBmb250LXNpemU6IDE4cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjMzMzMzMzM7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbn1cbnNlbGVjdC5pbnB1dC1ncm91cC1sZyA+IC5mb3JtLWNvbnRyb2wsXG5zZWxlY3QuaW5wdXQtZ3JvdXAtbGcgPiAuaW5wdXQtZ3JvdXAtYWRkb24sXG5zZWxlY3QuaW5wdXQtZ3JvdXAtbGcgPiAuaW5wdXQtZ3JvdXAtYnRuID4gLmJ0biB7XG4gIGhlaWdodDogNDZweDtcbiAgbGluZS1oZWlnaHQ6IDQ2cHg7XG59XG50ZXh0YXJlYS5pbnB1dC1ncm91cC1sZyA+IC5mb3JtLWNvbnRyb2wsXG50ZXh0YXJlYS5pbnB1dC1ncm91cC1sZyA+IC5pbnB1dC1ncm91cC1hZGRvbixcbnRleHRhcmVhLmlucHV0LWdyb3VwLWxnID4gLmlucHV0LWdyb3VwLWJ0biA+IC5idG4sXG5zZWxlY3RbbXVsdGlwbGVdLmlucHV0LWdyb3VwLWxnID4gLmZvcm0tY29udHJvbCxcbnNlbGVjdFttdWx0aXBsZV0uaW5wdXQtZ3JvdXAtbGcgPiAuaW5wdXQtZ3JvdXAtYWRkb24sXG5zZWxlY3RbbXVsdGlwbGVdLmlucHV0LWdyb3VwLWxnID4gLmlucHV0LWdyb3VwLWJ0biA+IC5idG4ge1xuICBoZWlnaHQ6IGF1dG87XG59XG4uaW5wdXQtZ3JvdXAtc20gPiAuZm9ybS1jb250cm9sLFxuLmlucHV0LWdyb3VwLXNtID4gLmlucHV0LWdyb3VwLWFkZG9uLFxuLmlucHV0LWdyb3VwLXNtID4gLmlucHV0LWdyb3VwLWJ0biA+IC5idG4ge1xuICBoZWlnaHQ6IDMwcHg7XG4gIHBhZGRpbmc6IDVweCAxMHB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cbnNlbGVjdC5pbnB1dC1ncm91cC1zbSA+IC5mb3JtLWNvbnRyb2wsXG5zZWxlY3QuaW5wdXQtZ3JvdXAtc20gPiAuaW5wdXQtZ3JvdXAtYWRkb24sXG5zZWxlY3QuaW5wdXQtZ3JvdXAtc20gPiAuaW5wdXQtZ3JvdXAtYnRuID4gLmJ0biB7XG4gIGhlaWdodDogMzBweDtcbiAgbGluZS1oZWlnaHQ6IDMwcHg7XG59XG50ZXh0YXJlYS5pbnB1dC1ncm91cC1zbSA+IC5mb3JtLWNvbnRyb2wsXG50ZXh0YXJlYS5pbnB1dC1ncm91cC1zbSA+IC5pbnB1dC1ncm91cC1hZGRvbixcbnRleHRhcmVhLmlucHV0LWdyb3VwLXNtID4gLmlucHV0LWdyb3VwLWJ0biA+IC5idG4sXG5zZWxlY3RbbXVsdGlwbGVdLmlucHV0LWdyb3VwLXNtID4gLmZvcm0tY29udHJvbCxcbnNlbGVjdFttdWx0aXBsZV0uaW5wdXQtZ3JvdXAtc20gPiAuaW5wdXQtZ3JvdXAtYWRkb24sXG5zZWxlY3RbbXVsdGlwbGVdLmlucHV0LWdyb3VwLXNtID4gLmlucHV0LWdyb3VwLWJ0biA+IC5idG4ge1xuICBoZWlnaHQ6IGF1dG87XG59XG4uaW5wdXQtZ3JvdXAtYWRkb24sXG4uaW5wdXQtZ3JvdXAtYnRuLFxuLmlucHV0LWdyb3VwIC5mb3JtLWNvbnRyb2wge1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xufVxuLmlucHV0LWdyb3VwLWFkZG9uOm5vdCg6Zmlyc3QtY2hpbGQpOm5vdCg6bGFzdC1jaGlsZCksXG4uaW5wdXQtZ3JvdXAtYnRuOm5vdCg6Zmlyc3QtY2hpbGQpOm5vdCg6bGFzdC1jaGlsZCksXG4uaW5wdXQtZ3JvdXAgLmZvcm0tY29udHJvbDpub3QoOmZpcnN0LWNoaWxkKTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cbi5pbnB1dC1ncm91cC1hZGRvbixcbi5pbnB1dC1ncm91cC1idG4ge1xuICB3aWR0aDogMSU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4uaW5wdXQtZ3JvdXAtYWRkb24ge1xuICBwYWRkaW5nOiA2cHggMTJweDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6ICM1NTU1NTU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZWVlZTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuLmlucHV0LWdyb3VwLWFkZG9uLmlucHV0LXNtIHtcbiAgcGFkZGluZzogNXB4IDEwcHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xufVxuLmlucHV0LWdyb3VwLWFkZG9uLmlucHV0LWxnIHtcbiAgcGFkZGluZzogMTBweCAxNnB4O1xuICBmb250LXNpemU6IDE4cHg7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbn1cbi5pbnB1dC1ncm91cC1hZGRvbiBpbnB1dFt0eXBlPVwicmFkaW9cIl0sXG4uaW5wdXQtZ3JvdXAtYWRkb24gaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cbi5pbnB1dC1ncm91cCAuZm9ybS1jb250cm9sOmZpcnN0LWNoaWxkLFxuLmlucHV0LWdyb3VwLWFkZG9uOmZpcnN0LWNoaWxkLFxuLmlucHV0LWdyb3VwLWJ0bjpmaXJzdC1jaGlsZCA+IC5idG4sXG4uaW5wdXQtZ3JvdXAtYnRuOmZpcnN0LWNoaWxkID4gLmJ0bi1ncm91cCA+IC5idG4sXG4uaW5wdXQtZ3JvdXAtYnRuOmZpcnN0LWNoaWxkID4gLmRyb3Bkb3duLXRvZ2dsZSxcbi5pbnB1dC1ncm91cC1idG46bGFzdC1jaGlsZCA+IC5idG46bm90KDpsYXN0LWNoaWxkKTpub3QoLmRyb3Bkb3duLXRvZ2dsZSksXG4uaW5wdXQtZ3JvdXAtYnRuOmxhc3QtY2hpbGQgPiAuYnRuLWdyb3VwOm5vdCg6bGFzdC1jaGlsZCkgPiAuYnRuIHtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xufVxuLmlucHV0LWdyb3VwLWFkZG9uOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXJpZ2h0OiAwO1xufVxuLmlucHV0LWdyb3VwIC5mb3JtLWNvbnRyb2w6bGFzdC1jaGlsZCxcbi5pbnB1dC1ncm91cC1hZGRvbjpsYXN0LWNoaWxkLFxuLmlucHV0LWdyb3VwLWJ0bjpsYXN0LWNoaWxkID4gLmJ0bixcbi5pbnB1dC1ncm91cC1idG46bGFzdC1jaGlsZCA+IC5idG4tZ3JvdXAgPiAuYnRuLFxuLmlucHV0LWdyb3VwLWJ0bjpsYXN0LWNoaWxkID4gLmRyb3Bkb3duLXRvZ2dsZSxcbi5pbnB1dC1ncm91cC1idG46Zmlyc3QtY2hpbGQgPiAuYnRuOm5vdCg6Zmlyc3QtY2hpbGQpLFxuLmlucHV0LWdyb3VwLWJ0bjpmaXJzdC1jaGlsZCA+IC5idG4tZ3JvdXA6bm90KDpmaXJzdC1jaGlsZCkgPiAuYnRuIHtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbn1cbi5pbnB1dC1ncm91cC1hZGRvbjpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLWxlZnQ6IDA7XG59XG4uaW5wdXQtZ3JvdXAtYnRuIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmb250LXNpemU6IDA7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4uaW5wdXQtZ3JvdXAtYnRuID4gLmJ0biB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5pbnB1dC1ncm91cC1idG4gPiAuYnRuICsgLmJ0biB7XG4gIG1hcmdpbi1sZWZ0OiAtMXB4O1xufVxuLmlucHV0LWdyb3VwLWJ0biA+IC5idG46aG92ZXIsXG4uaW5wdXQtZ3JvdXAtYnRuID4gLmJ0bjpmb2N1cyxcbi5pbnB1dC1ncm91cC1idG4gPiAuYnRuOmFjdGl2ZSB7XG4gIHotaW5kZXg6IDI7XG59XG4uaW5wdXQtZ3JvdXAtYnRuOmZpcnN0LWNoaWxkID4gLmJ0bixcbi5pbnB1dC1ncm91cC1idG46Zmlyc3QtY2hpbGQgPiAuYnRuLWdyb3VwIHtcbiAgbWFyZ2luLXJpZ2h0OiAtMXB4O1xufVxuLmlucHV0LWdyb3VwLWJ0bjpsYXN0LWNoaWxkID4gLmJ0bixcbi5pbnB1dC1ncm91cC1idG46bGFzdC1jaGlsZCA+IC5idG4tZ3JvdXAge1xuICB6LWluZGV4OiAyO1xuICBtYXJnaW4tbGVmdDogLTFweDtcbn1cbi5uYXYge1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG4ubmF2ID4gbGkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLm5hdiA+IGxpID4gYSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDEwcHggMTVweDtcbn1cbi5uYXYgPiBsaSA+IGE6aG92ZXIsXG4ubmF2ID4gbGkgPiBhOmZvY3VzIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlZWVlO1xufVxuLm5hdiA+IGxpLmRpc2FibGVkID4gYSB7XG4gIGNvbG9yOiAjNzc3Nzc3O1xufVxuLm5hdiA+IGxpLmRpc2FibGVkID4gYTpob3Zlcixcbi5uYXYgPiBsaS5kaXNhYmxlZCA+IGE6Zm9jdXMge1xuICBjb2xvcjogIzc3Nzc3NztcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cbi5uYXYgLm9wZW4gPiBhLFxuLm5hdiAub3BlbiA+IGE6aG92ZXIsXG4ubmF2IC5vcGVuID4gYTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZWVlZWU7XG4gIGJvcmRlci1jb2xvcjogIzAwZTVmMDtcbn1cbi5uYXYgLm5hdi1kaXZpZGVyIHtcbiAgaGVpZ2h0OiAxcHg7XG4gIG1hcmdpbjogOXB4IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNWU1ZTU7XG59XG4ubmF2ID4gbGkgPiBhID4gaW1nIHtcbiAgbWF4LXdpZHRoOiBub25lO1xufVxuLm5hdi10YWJzIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkZGQ7XG59XG4ubmF2LXRhYnMgPiBsaSB7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tYm90dG9tOiAtMXB4O1xufVxuLm5hdi10YWJzID4gbGkgPiBhIHtcbiAgbWFyZ2luLXJpZ2h0OiAycHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogNHB4IDRweCAwIDA7XG59XG4ubmF2LXRhYnMgPiBsaSA+IGE6aG92ZXIge1xuICBib3JkZXItY29sb3I6ICNlZWVlZWUgI2VlZWVlZSAjZGRkO1xufVxuLm5hdi10YWJzID4gbGkuYWN0aXZlID4gYSxcbi5uYXYtdGFicyA+IGxpLmFjdGl2ZSA+IGE6aG92ZXIsXG4ubmF2LXRhYnMgPiBsaS5hY3RpdmUgPiBhOmZvY3VzIHtcbiAgY29sb3I6ICM1NTU1NTU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50O1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG4ubmF2LXRhYnMubmF2LWp1c3RpZmllZCB7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXItYm90dG9tOiAwO1xufVxuLm5hdi10YWJzLm5hdi1qdXN0aWZpZWQgPiBsaSB7XG4gIGZsb2F0OiBub25lO1xufVxuLm5hdi10YWJzLm5hdi1qdXN0aWZpZWQgPiBsaSA+IGEge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbn1cbi5uYXYtdGFicy5uYXYtanVzdGlmaWVkID4gLmRyb3Bkb3duIC5kcm9wZG93bi1tZW51IHtcbiAgdG9wOiBhdXRvO1xuICBsZWZ0OiBhdXRvO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5uYXYtdGFicy5uYXYtanVzdGlmaWVkID4gbGkge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgd2lkdGg6IDElO1xuICB9XG4gIC5uYXYtdGFicy5uYXYtanVzdGlmaWVkID4gbGkgPiBhIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG4ubmF2LXRhYnMubmF2LWp1c3RpZmllZCA+IGxpID4gYSB7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuLm5hdi10YWJzLm5hdi1qdXN0aWZpZWQgPiAuYWN0aXZlID4gYSxcbi5uYXYtdGFicy5uYXYtanVzdGlmaWVkID4gLmFjdGl2ZSA+IGE6aG92ZXIsXG4ubmF2LXRhYnMubmF2LWp1c3RpZmllZCA+IC5hY3RpdmUgPiBhOmZvY3VzIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAubmF2LXRhYnMubmF2LWp1c3RpZmllZCA+IGxpID4gYSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkZGQ7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4IDRweCAwIDA7XG4gIH1cbiAgLm5hdi10YWJzLm5hdi1qdXN0aWZpZWQgPiAuYWN0aXZlID4gYSxcbiAgLm5hdi10YWJzLm5hdi1qdXN0aWZpZWQgPiAuYWN0aXZlID4gYTpob3ZlcixcbiAgLm5hdi10YWJzLm5hdi1qdXN0aWZpZWQgPiAuYWN0aXZlID4gYTpmb2N1cyB7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogI2ZmZjtcbiAgfVxufVxuLm5hdi1waWxscyA+IGxpIHtcbiAgZmxvYXQ6IGxlZnQ7XG59XG4ubmF2LXBpbGxzID4gbGkgPiBhIHtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuLm5hdi1waWxscyA+IGxpICsgbGkge1xuICBtYXJnaW4tbGVmdDogMnB4O1xufVxuLm5hdi1waWxscyA+IGxpLmFjdGl2ZSA+IGEsXG4ubmF2LXBpbGxzID4gbGkuYWN0aXZlID4gYTpob3Zlcixcbi5uYXYtcGlsbHMgPiBsaS5hY3RpdmUgPiBhOmZvY3VzIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGU1ZjA7XG59XG4ubmF2LXN0YWNrZWQgPiBsaSB7XG4gIGZsb2F0OiBub25lO1xufVxuLm5hdi1zdGFja2VkID4gbGkgKyBsaSB7XG4gIG1hcmdpbi10b3A6IDJweDtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG4ubmF2LWp1c3RpZmllZCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLm5hdi1qdXN0aWZpZWQgPiBsaSB7XG4gIGZsb2F0OiBub25lO1xufVxuLm5hdi1qdXN0aWZpZWQgPiBsaSA+IGEge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbn1cbi5uYXYtanVzdGlmaWVkID4gLmRyb3Bkb3duIC5kcm9wZG93bi1tZW51IHtcbiAgdG9wOiBhdXRvO1xuICBsZWZ0OiBhdXRvO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5uYXYtanVzdGlmaWVkID4gbGkge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgd2lkdGg6IDElO1xuICB9XG4gIC5uYXYtanVzdGlmaWVkID4gbGkgPiBhIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG4ubmF2LXRhYnMtanVzdGlmaWVkIHtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbn1cbi5uYXYtdGFicy1qdXN0aWZpZWQgPiBsaSA+IGEge1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cbi5uYXYtdGFicy1qdXN0aWZpZWQgPiAuYWN0aXZlID4gYSxcbi5uYXYtdGFicy1qdXN0aWZpZWQgPiAuYWN0aXZlID4gYTpob3Zlcixcbi5uYXYtdGFicy1qdXN0aWZpZWQgPiAuYWN0aXZlID4gYTpmb2N1cyB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLm5hdi10YWJzLWp1c3RpZmllZCA+IGxpID4gYSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkZGQ7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4IDRweCAwIDA7XG4gIH1cbiAgLm5hdi10YWJzLWp1c3RpZmllZCA+IC5hY3RpdmUgPiBhLFxuICAubmF2LXRhYnMtanVzdGlmaWVkID4gLmFjdGl2ZSA+IGE6aG92ZXIsXG4gIC5uYXYtdGFicy1qdXN0aWZpZWQgPiAuYWN0aXZlID4gYTpmb2N1cyB7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogI2ZmZjtcbiAgfVxufVxuLnRhYi1jb250ZW50ID4gLnRhYi1wYW5lIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi50YWItY29udGVudCA+IC5hY3RpdmUge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi5uYXYtdGFicyAuZHJvcGRvd24tbWVudSB7XG4gIG1hcmdpbi10b3A6IC0xcHg7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xufVxuLm5hdmJhciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWluLWhlaWdodDogNTBweDtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLm5hdmJhciB7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLm5hdmJhci1oZWFkZXIge1xuICAgIGZsb2F0OiBsZWZ0O1xuICB9XG59XG4ubmF2YmFyLWNvbGxhcHNlIHtcbiAgb3ZlcmZsb3cteDogdmlzaWJsZTtcbiAgcGFkZGluZy1yaWdodDogMTVweDtcbiAgcGFkZGluZy1sZWZ0OiAxNXB4O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG59XG4ubmF2YmFyLWNvbGxhcHNlLmluIHtcbiAgb3ZlcmZsb3cteTogYXV0bztcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAubmF2YmFyLWNvbGxhcHNlIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBib3JkZXItdG9wOiAwO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gIH1cbiAgLm5hdmJhci1jb2xsYXBzZS5jb2xsYXBzZSB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xuICB9XG4gIC5uYXZiYXItY29sbGFwc2UuaW4ge1xuICAgIG92ZXJmbG93LXk6IHZpc2libGU7XG4gIH1cbiAgLm5hdmJhci1maXhlZC10b3AgLm5hdmJhci1jb2xsYXBzZSxcbiAgLm5hdmJhci1zdGF0aWMtdG9wIC5uYXZiYXItY29sbGFwc2UsXG4gIC5uYXZiYXItZml4ZWQtYm90dG9tIC5uYXZiYXItY29sbGFwc2Uge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICB9XG59XG4ubmF2YmFyLWZpeGVkLXRvcCAubmF2YmFyLWNvbGxhcHNlLFxuLm5hdmJhci1maXhlZC1ib3R0b20gLm5hdmJhci1jb2xsYXBzZSB7XG4gIG1heC1oZWlnaHQ6IDM0MHB4O1xufVxuQG1lZGlhIChtYXgtZGV2aWNlLXdpZHRoOiA0ODBweCkgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSB7XG4gIC5uYXZiYXItZml4ZWQtdG9wIC5uYXZiYXItY29sbGFwc2UsXG4gIC5uYXZiYXItZml4ZWQtYm90dG9tIC5uYXZiYXItY29sbGFwc2Uge1xuICAgIG1heC1oZWlnaHQ6IDIwMHB4O1xuICB9XG59XG4uY29udGFpbmVyID4gLm5hdmJhci1oZWFkZXIsXG4uY29udGFpbmVyLWZsdWlkID4gLm5hdmJhci1oZWFkZXIsXG4uY29udGFpbmVyID4gLm5hdmJhci1jb2xsYXBzZSxcbi5jb250YWluZXItZmx1aWQgPiAubmF2YmFyLWNvbGxhcHNlIHtcbiAgbWFyZ2luLXJpZ2h0OiAtMTVweDtcbiAgbWFyZ2luLWxlZnQ6IC0xNXB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5jb250YWluZXIgPiAubmF2YmFyLWhlYWRlcixcbiAgLmNvbnRhaW5lci1mbHVpZCA+IC5uYXZiYXItaGVhZGVyLFxuICAuY29udGFpbmVyID4gLm5hdmJhci1jb2xsYXBzZSxcbiAgLmNvbnRhaW5lci1mbHVpZCA+IC5uYXZiYXItY29sbGFwc2Uge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxufVxuLm5hdmJhci1zdGF0aWMtdG9wIHtcbiAgei1pbmRleDogMTAwMDtcbiAgYm9yZGVyLXdpZHRoOiAwIDAgMXB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5uYXZiYXItc3RhdGljLXRvcCB7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgfVxufVxuLm5hdmJhci1maXhlZC10b3AsXG4ubmF2YmFyLWZpeGVkLWJvdHRvbSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgcmlnaHQ6IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDEwMzA7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLm5hdmJhci1maXhlZC10b3AsXG4gIC5uYXZiYXItZml4ZWQtYm90dG9tIHtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICB9XG59XG4ubmF2YmFyLWZpeGVkLXRvcCB7XG4gIHRvcDogMDtcbiAgYm9yZGVyLXdpZHRoOiAwIDAgMXB4O1xufVxuLm5hdmJhci1maXhlZC1ib3R0b20ge1xuICBib3R0b206IDA7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGJvcmRlci13aWR0aDogMXB4IDAgMDtcbn1cbi5uYXZiYXItYnJhbmQge1xuICBmbG9hdDogbGVmdDtcbiAgcGFkZGluZzogMTVweCAxNXB4O1xuICBmb250LXNpemU6IDE4cHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICBoZWlnaHQ6IDUwcHg7XG59XG4ubmF2YmFyLWJyYW5kOmhvdmVyLFxuLm5hdmJhci1icmFuZDpmb2N1cyB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi5uYXZiYXItYnJhbmQgPiBpbWcge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAubmF2YmFyID4gLmNvbnRhaW5lciAubmF2YmFyLWJyYW5kLFxuICAubmF2YmFyID4gLmNvbnRhaW5lci1mbHVpZCAubmF2YmFyLWJyYW5kIHtcbiAgICBtYXJnaW4tbGVmdDogLTE1cHg7XG4gIH1cbn1cbi5uYXZiYXItdG9nZ2xlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbi1yaWdodDogMTVweDtcbiAgcGFkZGluZzogOXB4IDEwcHg7XG4gIG1hcmdpbi10b3A6IDhweDtcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cbi5uYXZiYXItdG9nZ2xlOmZvY3VzIHtcbiAgb3V0bGluZTogMDtcbn1cbi5uYXZiYXItdG9nZ2xlIC5pY29uLWJhciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMjJweDtcbiAgaGVpZ2h0OiAycHg7XG4gIGJvcmRlci1yYWRpdXM6IDFweDtcbn1cbi5uYXZiYXItdG9nZ2xlIC5pY29uLWJhciArIC5pY29uLWJhciB7XG4gIG1hcmdpbi10b3A6IDRweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAubmF2YmFyLXRvZ2dsZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuLm5hdmJhci1uYXYge1xuICBtYXJnaW46IDcuNXB4IC0xNXB4O1xufVxuLm5hdmJhci1uYXYgPiBsaSA+IGEge1xuICBwYWRkaW5nLXRvcDogMTBweDtcbiAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51IHtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIGZsb2F0OiBub25lO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gIH1cbiAgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnUgPiBsaSA+IGEsXG4gIC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51IC5kcm9wZG93bi1oZWFkZXIge1xuICAgIHBhZGRpbmc6IDVweCAxNXB4IDVweCAyNXB4O1xuICB9XG4gIC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51ID4gbGkgPiBhIHtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgfVxuICAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSA+IGxpID4gYTpob3ZlcixcbiAgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnUgPiBsaSA+IGE6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAubmF2YmFyLW5hdiB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luOiAwO1xuICB9XG4gIC5uYXZiYXItbmF2ID4gbGkge1xuICAgIGZsb2F0OiBsZWZ0O1xuICB9XG4gIC5uYXZiYXItbmF2ID4gbGkgPiBhIHtcbiAgICBwYWRkaW5nLXRvcDogMTVweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTVweDtcbiAgfVxufVxuLm5hdmJhci1mb3JtIHtcbiAgbWFyZ2luLWxlZnQ6IC0xNXB4O1xuICBtYXJnaW4tcmlnaHQ6IC0xNXB4O1xuICBwYWRkaW5nOiAxMHB4IDE1cHg7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpLCAwIDFweCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSksIDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xuICBtYXJnaW4tdG9wOiA4cHg7XG4gIG1hcmdpbi1ib3R0b206IDhweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAubmF2YmFyLWZvcm0gLmZvcm0tZ3JvdXAge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIH1cbiAgLm5hdmJhci1mb3JtIC5mb3JtLWNvbnRyb2wge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogYXV0bztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG4gIC5uYXZiYXItZm9ybSAuZm9ybS1jb250cm9sLXN0YXRpYyB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG4gIC5uYXZiYXItZm9ybSAuaW5wdXQtZ3JvdXAge1xuICAgIGRpc3BsYXk6IGlubGluZS10YWJsZTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG4gIC5uYXZiYXItZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWFkZG9uLFxuICAubmF2YmFyLWZvcm0gLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idG4sXG4gIC5uYXZiYXItZm9ybSAuaW5wdXQtZ3JvdXAgLmZvcm0tY29udHJvbCB7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cbiAgLm5hdmJhci1mb3JtIC5pbnB1dC1ncm91cCA+IC5mb3JtLWNvbnRyb2wge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIC5uYXZiYXItZm9ybSAuY29udHJvbC1sYWJlbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG4gIC5uYXZiYXItZm9ybSAucmFkaW8sXG4gIC5uYXZiYXItZm9ybSAuY2hlY2tib3gge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxuICAubmF2YmFyLWZvcm0gLnJhZGlvIGxhYmVsLFxuICAubmF2YmFyLWZvcm0gLmNoZWNrYm94IGxhYmVsIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gIH1cbiAgLm5hdmJhci1mb3JtIC5yYWRpbyBpbnB1dFt0eXBlPVwicmFkaW9cIl0sXG4gIC5uYXZiYXItZm9ybSAuY2hlY2tib3ggaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cbiAgLm5hdmJhci1mb3JtIC5oYXMtZmVlZGJhY2sgLmZvcm0tY29udHJvbC1mZWVkYmFjayB7XG4gICAgdG9wOiAwO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLm5hdmJhci1mb3JtIC5mb3JtLWdyb3VwIHtcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gIH1cbiAgLm5hdmJhci1mb3JtIC5mb3JtLWdyb3VwOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAubmF2YmFyLWZvcm0ge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGJvcmRlcjogMDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gIH1cbn1cbi5uYXZiYXItbmF2ID4gbGkgPiAuZHJvcGRvd24tbWVudSB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xufVxuLm5hdmJhci1maXhlZC1ib3R0b20gLm5hdmJhci1uYXYgPiBsaSA+IC5kcm9wZG93bi1tZW51IHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDRweDtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNHB4O1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbn1cbi5uYXZiYXItYnRuIHtcbiAgbWFyZ2luLXRvcDogOHB4O1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG59XG4ubmF2YmFyLWJ0bi5idG4tc20ge1xuICBtYXJnaW4tdG9wOiAxMHB4O1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuLm5hdmJhci1idG4uYnRuLXhzIHtcbiAgbWFyZ2luLXRvcDogMTRweDtcbiAgbWFyZ2luLWJvdHRvbTogMTRweDtcbn1cbi5uYXZiYXItdGV4dCB7XG4gIG1hcmdpbi10b3A6IDE1cHg7XG4gIG1hcmdpbi1ib3R0b206IDE1cHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLm5hdmJhci10ZXh0IHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tbGVmdDogMTVweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDE1cHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAubmF2YmFyLWxlZnQge1xuICAgIGZsb2F0OiBsZWZ0ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm5hdmJhci1yaWdodCB7XG4gICAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAtMTVweDtcbiAgfVxuICAubmF2YmFyLXJpZ2h0IH4gLm5hdmJhci1yaWdodCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICB9XG59XG4ubmF2YmFyLWRlZmF1bHQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhmOGY4O1xuICBib3JkZXItY29sb3I6ICNlN2U3ZTc7XG59XG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1icmFuZCB7XG4gIGNvbG9yOiAjNzc3O1xufVxuLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItYnJhbmQ6aG92ZXIsXG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1icmFuZDpmb2N1cyB7XG4gIGNvbG9yOiAjNWU1ZTVlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5uYXZiYXItZGVmYXVsdCAubmF2YmFyLXRleHQge1xuICBjb2xvcjogIzc3Nztcbn1cbi5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiA+IGxpID4gYSB7XG4gIGNvbG9yOiAjNzc3O1xufVxuLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2ID4gbGkgPiBhOmhvdmVyLFxuLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2ID4gbGkgPiBhOmZvY3VzIHtcbiAgY29sb3I6ICMzMzM7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2ID4gLmFjdGl2ZSA+IGEsXG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgPiAuYWN0aXZlID4gYTpob3Zlcixcbi5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiA+IC5hY3RpdmUgPiBhOmZvY3VzIHtcbiAgY29sb3I6ICM1NTU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlN2U3ZTc7XG59XG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgPiAuZGlzYWJsZWQgPiBhLFxuLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2ID4gLmRpc2FibGVkID4gYTpob3Zlcixcbi5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiA+IC5kaXNhYmxlZCA+IGE6Zm9jdXMge1xuICBjb2xvcjogI2NjYztcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci10b2dnbGUge1xuICBib3JkZXItY29sb3I6ICNkZGQ7XG59XG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci10b2dnbGU6aG92ZXIsXG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci10b2dnbGU6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkO1xufVxuLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItdG9nZ2xlIC5pY29uLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4ODg7XG59XG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1jb2xsYXBzZSxcbi5uYXZiYXItZGVmYXVsdCAubmF2YmFyLWZvcm0ge1xuICBib3JkZXItY29sb3I6ICNlN2U3ZTc7XG59XG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgPiAub3BlbiA+IGEsXG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgPiAub3BlbiA+IGE6aG92ZXIsXG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgPiAub3BlbiA+IGE6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTdlN2U3O1xuICBjb2xvcjogIzU1NTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnUgPiBsaSA+IGEge1xuICAgIGNvbG9yOiAjNzc3O1xuICB9XG4gIC5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSA+IGxpID4gYTpob3ZlcixcbiAgLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51ID4gbGkgPiBhOmZvY3VzIHtcbiAgICBjb2xvcjogIzMzMztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxuICAubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnUgPiAuYWN0aXZlID4gYSxcbiAgLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51ID4gLmFjdGl2ZSA+IGE6aG92ZXIsXG4gIC5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSA+IC5hY3RpdmUgPiBhOmZvY3VzIHtcbiAgICBjb2xvcjogIzU1NTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTdlN2U3O1xuICB9XG4gIC5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSA+IC5kaXNhYmxlZCA+IGEsXG4gIC5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSA+IC5kaXNhYmxlZCA+IGE6aG92ZXIsXG4gIC5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSA+IC5kaXNhYmxlZCA+IGE6Zm9jdXMge1xuICAgIGNvbG9yOiAjY2NjO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG59XG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1saW5rIHtcbiAgY29sb3I6ICM3Nzc7XG59XG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1saW5rOmhvdmVyIHtcbiAgY29sb3I6ICMzMzM7XG59XG4ubmF2YmFyLWRlZmF1bHQgLmJ0bi1saW5rIHtcbiAgY29sb3I6ICM3Nzc7XG59XG4ubmF2YmFyLWRlZmF1bHQgLmJ0bi1saW5rOmhvdmVyLFxuLm5hdmJhci1kZWZhdWx0IC5idG4tbGluazpmb2N1cyB7XG4gIGNvbG9yOiAjMzMzO1xufVxuLm5hdmJhci1kZWZhdWx0IC5idG4tbGlua1tkaXNhYmxlZF06aG92ZXIsXG5maWVsZHNldFtkaXNhYmxlZF0gLm5hdmJhci1kZWZhdWx0IC5idG4tbGluazpob3Zlcixcbi5uYXZiYXItZGVmYXVsdCAuYnRuLWxpbmtbZGlzYWJsZWRdOmZvY3VzLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5uYXZiYXItZGVmYXVsdCAuYnRuLWxpbms6Zm9jdXMge1xuICBjb2xvcjogI2NjYztcbn1cbi5uYXZiYXItaW52ZXJzZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMjI7XG4gIGJvcmRlci1jb2xvcjogIzA4MDgwODtcbn1cbi5uYXZiYXItaW52ZXJzZSAubmF2YmFyLWJyYW5kIHtcbiAgY29sb3I6ICM5ZDlkOWQ7XG59XG4ubmF2YmFyLWludmVyc2UgLm5hdmJhci1icmFuZDpob3Zlcixcbi5uYXZiYXItaW52ZXJzZSAubmF2YmFyLWJyYW5kOmZvY3VzIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItdGV4dCB7XG4gIGNvbG9yOiAjOWQ5ZDlkO1xufVxuLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2ID4gbGkgPiBhIHtcbiAgY29sb3I6ICM5ZDlkOWQ7XG59XG4ubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgPiBsaSA+IGE6aG92ZXIsXG4ubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgPiBsaSA+IGE6Zm9jdXMge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4ubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgPiAuYWN0aXZlID4gYSxcbi5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiA+IC5hY3RpdmUgPiBhOmhvdmVyLFxuLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2ID4gLmFjdGl2ZSA+IGE6Zm9jdXMge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzA4MDgwODtcbn1cbi5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiA+IC5kaXNhYmxlZCA+IGEsXG4ubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgPiAuZGlzYWJsZWQgPiBhOmhvdmVyLFxuLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2ID4gLmRpc2FibGVkID4gYTpmb2N1cyB7XG4gIGNvbG9yOiAjNDQ0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5uYXZiYXItaW52ZXJzZSAubmF2YmFyLXRvZ2dsZSB7XG4gIGJvcmRlci1jb2xvcjogIzMzMztcbn1cbi5uYXZiYXItaW52ZXJzZSAubmF2YmFyLXRvZ2dsZTpob3Zlcixcbi5uYXZiYXItaW52ZXJzZSAubmF2YmFyLXRvZ2dsZTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMzM7XG59XG4ubmF2YmFyLWludmVyc2UgLm5hdmJhci10b2dnbGUgLmljb24tYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cbi5uYXZiYXItaW52ZXJzZSAubmF2YmFyLWNvbGxhcHNlLFxuLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItZm9ybSB7XG4gIGJvcmRlci1jb2xvcjogIzEwMTAxMDtcbn1cbi5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiA+IC5vcGVuID4gYSxcbi5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiA+IC5vcGVuID4gYTpob3Zlcixcbi5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiA+IC5vcGVuID4gYTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwODA4MDg7XG4gIGNvbG9yOiAjZmZmO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSA+IC5kcm9wZG93bi1oZWFkZXIge1xuICAgIGJvcmRlci1jb2xvcjogIzA4MDgwODtcbiAgfVxuICAubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnUgLmRpdmlkZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwODA4MDg7XG4gIH1cbiAgLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51ID4gbGkgPiBhIHtcbiAgICBjb2xvcjogIzlkOWQ5ZDtcbiAgfVxuICAubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnUgPiBsaSA+IGE6aG92ZXIsXG4gIC5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSA+IGxpID4gYTpmb2N1cyB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cbiAgLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51ID4gLmFjdGl2ZSA+IGEsXG4gIC5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSA+IC5hY3RpdmUgPiBhOmhvdmVyLFxuICAubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnUgPiAuYWN0aXZlID4gYTpmb2N1cyB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzA4MDgwODtcbiAgfVxuICAubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnUgPiAuZGlzYWJsZWQgPiBhLFxuICAubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnUgPiAuZGlzYWJsZWQgPiBhOmhvdmVyLFxuICAubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnUgPiAuZGlzYWJsZWQgPiBhOmZvY3VzIHtcbiAgICBjb2xvcjogIzQ0NDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxufVxuLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbGluayB7XG4gIGNvbG9yOiAjOWQ5ZDlkO1xufVxuLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbGluazpob3ZlciB7XG4gIGNvbG9yOiAjZmZmO1xufVxuLm5hdmJhci1pbnZlcnNlIC5idG4tbGluayB7XG4gIGNvbG9yOiAjOWQ5ZDlkO1xufVxuLm5hdmJhci1pbnZlcnNlIC5idG4tbGluazpob3Zlcixcbi5uYXZiYXItaW52ZXJzZSAuYnRuLWxpbms6Zm9jdXMge1xuICBjb2xvcjogI2ZmZjtcbn1cbi5uYXZiYXItaW52ZXJzZSAuYnRuLWxpbmtbZGlzYWJsZWRdOmhvdmVyLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5uYXZiYXItaW52ZXJzZSAuYnRuLWxpbms6aG92ZXIsXG4ubmF2YmFyLWludmVyc2UgLmJ0bi1saW5rW2Rpc2FibGVkXTpmb2N1cyxcbmZpZWxkc2V0W2Rpc2FibGVkXSAubmF2YmFyLWludmVyc2UgLmJ0bi1saW5rOmZvY3VzIHtcbiAgY29sb3I6ICM0NDQ7XG59XG4uYnJlYWRjcnVtYiB7XG4gIHBhZGRpbmc6IDhweCAxNXB4O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG4uYnJlYWRjcnVtYiA+IGxpIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuLmJyZWFkY3J1bWIgPiBsaSArIGxpOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiL1xcMDBhMFwiO1xuICBwYWRkaW5nOiAwIDVweDtcbiAgY29sb3I6ICNjY2M7XG59XG4uYnJlYWRjcnVtYiA+IC5hY3RpdmUge1xuICBjb2xvcjogIzc3Nzc3Nztcbn1cbi5wYWdpbmF0aW9uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIG1hcmdpbjogMjBweCAwO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG4ucGFnaW5hdGlvbiA+IGxpIHtcbiAgZGlzcGxheTogaW5saW5lO1xufVxuLnBhZ2luYXRpb24gPiBsaSA+IGEsXG4ucGFnaW5hdGlvbiA+IGxpID4gc3BhbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHBhZGRpbmc6IDZweCAxMnB4O1xuICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjb2xvcjogIzAwZTVmMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbiAgbWFyZ2luLWxlZnQ6IC0xcHg7XG59XG4ucGFnaW5hdGlvbiA+IGxpOmZpcnN0LWNoaWxkID4gYSxcbi5wYWdpbmF0aW9uID4gbGk6Zmlyc3QtY2hpbGQgPiBzcGFuIHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDRweDtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNHB4O1xufVxuLnBhZ2luYXRpb24gPiBsaTpsYXN0LWNoaWxkID4gYSxcbi5wYWdpbmF0aW9uID4gbGk6bGFzdC1jaGlsZCA+IHNwYW4ge1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNHB4O1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNHB4O1xufVxuLnBhZ2luYXRpb24gPiBsaSA+IGE6aG92ZXIsXG4ucGFnaW5hdGlvbiA+IGxpID4gc3Bhbjpob3Zlcixcbi5wYWdpbmF0aW9uID4gbGkgPiBhOmZvY3VzLFxuLnBhZ2luYXRpb24gPiBsaSA+IHNwYW46Zm9jdXMge1xuICB6LWluZGV4OiAyO1xuICBjb2xvcjogIzAwOWNhMztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZWVlZTtcbiAgYm9yZGVyLWNvbG9yOiAjZGRkO1xufVxuLnBhZ2luYXRpb24gPiAuYWN0aXZlID4gYSxcbi5wYWdpbmF0aW9uID4gLmFjdGl2ZSA+IHNwYW4sXG4ucGFnaW5hdGlvbiA+IC5hY3RpdmUgPiBhOmhvdmVyLFxuLnBhZ2luYXRpb24gPiAuYWN0aXZlID4gc3Bhbjpob3Zlcixcbi5wYWdpbmF0aW9uID4gLmFjdGl2ZSA+IGE6Zm9jdXMsXG4ucGFnaW5hdGlvbiA+IC5hY3RpdmUgPiBzcGFuOmZvY3VzIHtcbiAgei1pbmRleDogMztcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGU1ZjA7XG4gIGJvcmRlci1jb2xvcjogIzAwZTVmMDtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuLnBhZ2luYXRpb24gPiAuZGlzYWJsZWQgPiBzcGFuLFxuLnBhZ2luYXRpb24gPiAuZGlzYWJsZWQgPiBzcGFuOmhvdmVyLFxuLnBhZ2luYXRpb24gPiAuZGlzYWJsZWQgPiBzcGFuOmZvY3VzLFxuLnBhZ2luYXRpb24gPiAuZGlzYWJsZWQgPiBhLFxuLnBhZ2luYXRpb24gPiAuZGlzYWJsZWQgPiBhOmhvdmVyLFxuLnBhZ2luYXRpb24gPiAuZGlzYWJsZWQgPiBhOmZvY3VzIHtcbiAgY29sb3I6ICM3Nzc3Nzc7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlci1jb2xvcjogI2RkZDtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cbi5wYWdpbmF0aW9uLWxnID4gbGkgPiBhLFxuLnBhZ2luYXRpb24tbGcgPiBsaSA+IHNwYW4ge1xuICBwYWRkaW5nOiAxMHB4IDE2cHg7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgbGluZS1oZWlnaHQ6IDEuMzMzMzMzMztcbn1cbi5wYWdpbmF0aW9uLWxnID4gbGk6Zmlyc3QtY2hpbGQgPiBhLFxuLnBhZ2luYXRpb24tbGcgPiBsaTpmaXJzdC1jaGlsZCA+IHNwYW4ge1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA2cHg7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDZweDtcbn1cbi5wYWdpbmF0aW9uLWxnID4gbGk6bGFzdC1jaGlsZCA+IGEsXG4ucGFnaW5hdGlvbi1sZyA+IGxpOmxhc3QtY2hpbGQgPiBzcGFuIHtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDZweDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDZweDtcbn1cbi5wYWdpbmF0aW9uLXNtID4gbGkgPiBhLFxuLnBhZ2luYXRpb24tc20gPiBsaSA+IHNwYW4ge1xuICBwYWRkaW5nOiA1cHggMTBweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMS41O1xufVxuLnBhZ2luYXRpb24tc20gPiBsaTpmaXJzdC1jaGlsZCA+IGEsXG4ucGFnaW5hdGlvbi1zbSA+IGxpOmZpcnN0LWNoaWxkID4gc3BhbiB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDNweDtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogM3B4O1xufVxuLnBhZ2luYXRpb24tc20gPiBsaTpsYXN0LWNoaWxkID4gYSxcbi5wYWdpbmF0aW9uLXNtID4gbGk6bGFzdC1jaGlsZCA+IHNwYW4ge1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogM3B4O1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogM3B4O1xufVxuLnBhZ2VyIHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBtYXJnaW46IDIwcHggMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLnBhZ2VyIGxpIHtcbiAgZGlzcGxheTogaW5saW5lO1xufVxuLnBhZ2VyIGxpID4gYSxcbi5wYWdlciBsaSA+IHNwYW4ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDVweCAxNHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICBib3JkZXItcmFkaXVzOiAxNXB4O1xufVxuLnBhZ2VyIGxpID4gYTpob3Zlcixcbi5wYWdlciBsaSA+IGE6Zm9jdXMge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZWVlZWU7XG59XG4ucGFnZXIgLm5leHQgPiBhLFxuLnBhZ2VyIC5uZXh0ID4gc3BhbiB7XG4gIGZsb2F0OiByaWdodDtcbn1cbi5wYWdlciAucHJldmlvdXMgPiBhLFxuLnBhZ2VyIC5wcmV2aW91cyA+IHNwYW4ge1xuICBmbG9hdDogbGVmdDtcbn1cbi5wYWdlciAuZGlzYWJsZWQgPiBhLFxuLnBhZ2VyIC5kaXNhYmxlZCA+IGE6aG92ZXIsXG4ucGFnZXIgLmRpc2FibGVkID4gYTpmb2N1cyxcbi5wYWdlciAuZGlzYWJsZWQgPiBzcGFuIHtcbiAgY29sb3I6ICM3Nzc3Nzc7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG4ubGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmU7XG4gIHBhZGRpbmc6IC4yZW0gLjZlbSAuM2VtO1xuICBmb250LXNpemU6IDc1JTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIGJvcmRlci1yYWRpdXM6IC4yNWVtO1xufVxuYS5sYWJlbDpob3ZlcixcbmEubGFiZWw6Zm9jdXMge1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ubGFiZWw6ZW1wdHkge1xuICBkaXNwbGF5OiBub25lO1xufVxuLmJ0biAubGFiZWwge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogLTFweDtcbn1cbi5sYWJlbC1kZWZhdWx0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzc3Nzc3Nztcbn1cbi5sYWJlbC1kZWZhdWx0W2hyZWZdOmhvdmVyLFxuLmxhYmVsLWRlZmF1bHRbaHJlZl06Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWU1ZTVlO1xufVxuLmxhYmVsLXByaW1hcnkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBlNWYwO1xufVxuLmxhYmVsLXByaW1hcnlbaHJlZl06aG92ZXIsXG4ubGFiZWwtcHJpbWFyeVtocmVmXTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGI0YmQ7XG59XG4ubGFiZWwtc3VjY2VzcyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGU1ZjA7XG59XG4ubGFiZWwtc3VjY2Vzc1tocmVmXTpob3Zlcixcbi5sYWJlbC1zdWNjZXNzW2hyZWZdOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwYjRiZDtcbn1cbi5sYWJlbC1pbmZvIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwZTVmMDtcbn1cbi5sYWJlbC1pbmZvW2hyZWZdOmhvdmVyLFxuLmxhYmVsLWluZm9baHJlZl06Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBiNGJkO1xufVxuLmxhYmVsLXdhcm5pbmcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTc3YmYwO1xufVxuLmxhYmVsLXdhcm5pbmdbaHJlZl06aG92ZXIsXG4ubGFiZWwtd2FybmluZ1tocmVmXTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3MzRkZWI7XG59XG4ubGFiZWwtZGFuZ2VyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UwMWY3NDtcbn1cbi5sYWJlbC1kYW5nZXJbaHJlZl06aG92ZXIsXG4ubGFiZWwtZGFuZ2VyW2hyZWZdOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2IzMTk1ZDtcbn1cbi5iYWRnZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWluLXdpZHRoOiAxMHB4O1xuICBwYWRkaW5nOiAzcHggN3B4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogI2ZmZjtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzc3Nzc3NztcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbn1cbi5iYWRnZTplbXB0eSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uYnRuIC5iYWRnZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAtMXB4O1xufVxuLmJ0bi14cyAuYmFkZ2UsXG4uYnRuLWdyb3VwLXhzID4gLmJ0biAuYmFkZ2Uge1xuICB0b3A6IDA7XG4gIHBhZGRpbmc6IDFweCA1cHg7XG59XG5hLmJhZGdlOmhvdmVyLFxuYS5iYWRnZTpmb2N1cyB7XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlID4gLmJhZGdlLFxuLm5hdi1waWxscyA+IC5hY3RpdmUgPiBhID4gLmJhZGdlIHtcbiAgY29sb3I6ICMwMGU1ZjA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG4ubGlzdC1ncm91cC1pdGVtID4gLmJhZGdlIHtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuLmxpc3QtZ3JvdXAtaXRlbSA+IC5iYWRnZSArIC5iYWRnZSB7XG4gIG1hcmdpbi1yaWdodDogNXB4O1xufVxuLm5hdi1waWxscyA+IGxpID4gYSA+IC5iYWRnZSB7XG4gIG1hcmdpbi1sZWZ0OiAzcHg7XG59XG4uanVtYm90cm9uIHtcbiAgcGFkZGluZy10b3A6IDMwcHg7XG4gIHBhZGRpbmctYm90dG9tOiAzMHB4O1xuICBtYXJnaW4tYm90dG9tOiAzMHB4O1xuICBjb2xvcjogaW5oZXJpdDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZWVlZTtcbn1cbi5qdW1ib3Ryb24gaDEsXG4uanVtYm90cm9uIC5oMSB7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuLmp1bWJvdHJvbiBwIHtcbiAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgZm9udC1zaXplOiAyMXB4O1xuICBmb250LXdlaWdodDogMjAwO1xufVxuLmp1bWJvdHJvbiA+IGhyIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogI2Q1ZDVkNTtcbn1cbi5jb250YWluZXIgLmp1bWJvdHJvbixcbi5jb250YWluZXItZmx1aWQgLmp1bWJvdHJvbiB7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgcGFkZGluZy1sZWZ0OiAxNXB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xufVxuLmp1bWJvdHJvbiAuY29udGFpbmVyIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmp1bWJvdHJvbiB7XG4gICAgcGFkZGluZy10b3A6IDQ4cHg7XG4gICAgcGFkZGluZy1ib3R0b206IDQ4cHg7XG4gIH1cbiAgLmNvbnRhaW5lciAuanVtYm90cm9uLFxuICAuY29udGFpbmVyLWZsdWlkIC5qdW1ib3Ryb24ge1xuICAgIHBhZGRpbmctbGVmdDogNjBweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiA2MHB4O1xuICB9XG4gIC5qdW1ib3Ryb24gaDEsXG4gIC5qdW1ib3Ryb24gLmgxIHtcbiAgICBmb250LXNpemU6IDYzcHg7XG4gIH1cbn1cbi50aHVtYm5haWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogNHB4O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAtd2Via2l0LXRyYW5zaXRpb246IGJvcmRlciAwLjJzIGVhc2UtaW4tb3V0O1xuICAtby10cmFuc2l0aW9uOiBib3JkZXIgMC4ycyBlYXNlLWluLW91dDtcbiAgdHJhbnNpdGlvbjogYm9yZGVyIDAuMnMgZWFzZS1pbi1vdXQ7XG59XG4udGh1bWJuYWlsID4gaW1nLFxuLnRodW1ibmFpbCBhID4gaW1nIHtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbn1cbmEudGh1bWJuYWlsOmhvdmVyLFxuYS50aHVtYm5haWw6Zm9jdXMsXG5hLnRodW1ibmFpbC5hY3RpdmUge1xuICBib3JkZXItY29sb3I6ICMwMGU1ZjA7XG59XG4udGh1bWJuYWlsIC5jYXB0aW9uIHtcbiAgcGFkZGluZzogOXB4O1xuICBjb2xvcjogIzMzMzMzMztcbn1cbi5hbGVydCB7XG4gIHBhZGRpbmc6IDE1cHg7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG4uYWxlcnQgaDQge1xuICBtYXJnaW4tdG9wOiAwO1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbi5hbGVydCAuYWxlcnQtbGluayB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLmFsZXJ0ID4gcCxcbi5hbGVydCA+IHVsIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cbi5hbGVydCA+IHAgKyBwIHtcbiAgbWFyZ2luLXRvcDogNXB4O1xufVxuLmFsZXJ0LWRpc21pc3NhYmxlLFxuLmFsZXJ0LWRpc21pc3NpYmxlIHtcbiAgcGFkZGluZy1yaWdodDogMzVweDtcbn1cbi5hbGVydC1kaXNtaXNzYWJsZSAuY2xvc2UsXG4uYWxlcnQtZGlzbWlzc2libGUgLmNsb3NlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IC0ycHg7XG4gIHJpZ2h0OiAtMjFweDtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG4uYWxlcnQtc3VjY2VzcyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkZmYwZDg7XG4gIGJvcmRlci1jb2xvcjogI2Q2ZTljNjtcbiAgY29sb3I6ICMzYzc2M2Q7XG59XG4uYWxlcnQtc3VjY2VzcyBociB7XG4gIGJvcmRlci10b3AtY29sb3I6ICNjOWUyYjM7XG59XG4uYWxlcnQtc3VjY2VzcyAuYWxlcnQtbGluayB7XG4gIGNvbG9yOiAjMmI1NDJjO1xufVxuLmFsZXJ0LWluZm8ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDllZGY3O1xuICBib3JkZXItY29sb3I6ICNiY2U4ZjE7XG4gIGNvbG9yOiAjMzE3MDhmO1xufVxuLmFsZXJ0LWluZm8gaHIge1xuICBib3JkZXItdG9wLWNvbG9yOiAjYTZlMWVjO1xufVxuLmFsZXJ0LWluZm8gLmFsZXJ0LWxpbmsge1xuICBjb2xvcjogIzI0NTI2OTtcbn1cbi5hbGVydC13YXJuaW5nIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZjZjhlMztcbiAgYm9yZGVyLWNvbG9yOiAjZmFlYmNjO1xuICBjb2xvcjogIzhhNmQzYjtcbn1cbi5hbGVydC13YXJuaW5nIGhyIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogI2Y3ZTFiNTtcbn1cbi5hbGVydC13YXJuaW5nIC5hbGVydC1saW5rIHtcbiAgY29sb3I6ICM2NjUxMmM7XG59XG4uYWxlcnQtZGFuZ2VyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YyZGVkZTtcbiAgYm9yZGVyLWNvbG9yOiAjZWJjY2QxO1xuICBjb2xvcjogI2E5NDQ0Mjtcbn1cbi5hbGVydC1kYW5nZXIgaHIge1xuICBib3JkZXItdG9wLWNvbG9yOiAjZTRiOWMwO1xufVxuLmFsZXJ0LWRhbmdlciAuYWxlcnQtbGluayB7XG4gIGNvbG9yOiAjODQzNTM0O1xufVxuQC13ZWJraXQta2V5ZnJhbWVzIHByb2dyZXNzLWJhci1zdHJpcGVzIHtcbiAgZnJvbSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNDBweCAwO1xuICB9XG4gIHRvIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDA7XG4gIH1cbn1cbkBrZXlmcmFtZXMgcHJvZ3Jlc3MtYmFyLXN0cmlwZXMge1xuICBmcm9tIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA0MHB4IDA7XG4gIH1cbiAgdG8ge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgMDtcbiAgfVxufVxuLnByb2dyZXNzIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgaGVpZ2h0OiAyMHB4O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbi5wcm9ncmVzcy1iYXIge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGU1ZjA7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAtMXB4IDAgcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAtMXB4IDAgcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiB3aWR0aCAwLjZzIGVhc2U7XG4gIC1vLXRyYW5zaXRpb246IHdpZHRoIDAuNnMgZWFzZTtcbiAgdHJhbnNpdGlvbjogd2lkdGggMC42cyBlYXNlO1xufVxuLnByb2dyZXNzLXN0cmlwZWQgLnByb2dyZXNzLWJhcixcbi5wcm9ncmVzcy1iYXItc3RyaXBlZCB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudCg0NWRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoNDVkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtcbiAgYmFja2dyb3VuZC1zaXplOiA0MHB4IDQwcHg7XG59XG4ucHJvZ3Jlc3MuYWN0aXZlIC5wcm9ncmVzcy1iYXIsXG4ucHJvZ3Jlc3MtYmFyLmFjdGl2ZSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uOiBwcm9ncmVzcy1iYXItc3RyaXBlcyAycyBsaW5lYXIgaW5maW5pdGU7XG4gIC1vLWFuaW1hdGlvbjogcHJvZ3Jlc3MtYmFyLXN0cmlwZXMgMnMgbGluZWFyIGluZmluaXRlO1xuICBhbmltYXRpb246IHByb2dyZXNzLWJhci1zdHJpcGVzIDJzIGxpbmVhciBpbmZpbml0ZTtcbn1cbi5wcm9ncmVzcy1iYXItc3VjY2VzcyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGU1ZjA7XG59XG4ucHJvZ3Jlc3Mtc3RyaXBlZCAucHJvZ3Jlc3MtYmFyLXN1Y2Nlc3Mge1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCg0NWRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQoNDVkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCk7XG59XG4ucHJvZ3Jlc3MtYmFyLWluZm8ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBlNWYwO1xufVxuLnByb2dyZXNzLXN0cmlwZWQgLnByb2dyZXNzLWJhci1pbmZvIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoNDVkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCg0NWRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO1xufVxuLnByb2dyZXNzLWJhci13YXJuaW5nIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk3N2JmMDtcbn1cbi5wcm9ncmVzcy1zdHJpcGVkIC5wcm9ncmVzcy1iYXItd2FybmluZyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudCg0NWRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoNDVkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtcbn1cbi5wcm9ncmVzcy1iYXItZGFuZ2VyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UwMWY3NDtcbn1cbi5wcm9ncmVzcy1zdHJpcGVkIC5wcm9ncmVzcy1iYXItZGFuZ2VyIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoNDVkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCg0NWRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO1xufVxuLm1lZGlhIHtcbiAgbWFyZ2luLXRvcDogMTVweDtcbn1cbi5tZWRpYTpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG4ubWVkaWEsXG4ubWVkaWEtYm9keSB7XG4gIHpvb206IDE7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4ubWVkaWEtYm9keSB7XG4gIHdpZHRoOiAxMDAwMHB4O1xufVxuLm1lZGlhLW9iamVjdCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLm1lZGlhLW9iamVjdC5pbWctdGh1bWJuYWlsIHtcbiAgbWF4LXdpZHRoOiBub25lO1xufVxuLm1lZGlhLXJpZ2h0LFxuLm1lZGlhID4gLnB1bGwtcmlnaHQge1xuICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG59XG4ubWVkaWEtbGVmdCxcbi5tZWRpYSA+IC5wdWxsLWxlZnQge1xuICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xufVxuLm1lZGlhLWxlZnQsXG4ubWVkaWEtcmlnaHQsXG4ubWVkaWEtYm9keSB7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG4ubWVkaWEtbWlkZGxlIHtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi5tZWRpYS1ib3R0b20ge1xuICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xufVxuLm1lZGlhLWhlYWRpbmcge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG4ubWVkaWEtbGlzdCB7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cbi5saXN0LWdyb3VwIHtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgcGFkZGluZy1sZWZ0OiAwO1xufVxuLmxpc3QtZ3JvdXAtaXRlbSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDEwcHggMTVweDtcbiAgbWFyZ2luLWJvdHRvbTogLTFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbn1cbi5saXN0LWdyb3VwLWl0ZW06Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNHB4O1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA0cHg7XG59XG4ubGlzdC1ncm91cC1pdGVtOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNHB4O1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA0cHg7XG59XG5hLmxpc3QtZ3JvdXAtaXRlbSxcbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0ge1xuICBjb2xvcjogIzU1NTtcbn1cbmEubGlzdC1ncm91cC1pdGVtIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyxcbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0gLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nIHtcbiAgY29sb3I6ICMzMzM7XG59XG5hLmxpc3QtZ3JvdXAtaXRlbTpob3ZlcixcbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW06aG92ZXIsXG5hLmxpc3QtZ3JvdXAtaXRlbTpmb2N1cyxcbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW06Zm9jdXMge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiAjNTU1O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xufVxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbSB7XG4gIHdpZHRoOiAxMDAlO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLmxpc3QtZ3JvdXAtaXRlbS5kaXNhYmxlZCxcbi5saXN0LWdyb3VwLWl0ZW0uZGlzYWJsZWQ6aG92ZXIsXG4ubGlzdC1ncm91cC1pdGVtLmRpc2FibGVkOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZWVlZTtcbiAgY29sb3I6ICM3Nzc3Nzc7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG4ubGlzdC1ncm91cC1pdGVtLmRpc2FibGVkIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyxcbi5saXN0LWdyb3VwLWl0ZW0uZGlzYWJsZWQ6aG92ZXIgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nLFxuLmxpc3QtZ3JvdXAtaXRlbS5kaXNhYmxlZDpmb2N1cyAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcge1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbi5saXN0LWdyb3VwLWl0ZW0uZGlzYWJsZWQgLmxpc3QtZ3JvdXAtaXRlbS10ZXh0LFxuLmxpc3QtZ3JvdXAtaXRlbS5kaXNhYmxlZDpob3ZlciAubGlzdC1ncm91cC1pdGVtLXRleHQsXG4ubGlzdC1ncm91cC1pdGVtLmRpc2FibGVkOmZvY3VzIC5saXN0LWdyb3VwLWl0ZW0tdGV4dCB7XG4gIGNvbG9yOiAjNzc3Nzc3O1xufVxuLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmUsXG4ubGlzdC1ncm91cC1pdGVtLmFjdGl2ZTpob3Zlcixcbi5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlOmZvY3VzIHtcbiAgei1pbmRleDogMjtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGU1ZjA7XG4gIGJvcmRlci1jb2xvcjogIzAwZTVmMDtcbn1cbi5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyxcbi5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlOmhvdmVyIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyxcbi5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlOmZvY3VzIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyxcbi5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyA+IHNtYWxsLFxuLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmU6aG92ZXIgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nID4gc21hbGwsXG4ubGlzdC1ncm91cC1pdGVtLmFjdGl2ZTpmb2N1cyAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcgPiBzbWFsbCxcbi5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyA+IC5zbWFsbCxcbi5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlOmhvdmVyIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyA+IC5zbWFsbCxcbi5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlOmZvY3VzIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyA+IC5zbWFsbCB7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmUgLmxpc3QtZ3JvdXAtaXRlbS10ZXh0LFxuLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmU6aG92ZXIgLmxpc3QtZ3JvdXAtaXRlbS10ZXh0LFxuLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmU6Zm9jdXMgLmxpc3QtZ3JvdXAtaXRlbS10ZXh0IHtcbiAgY29sb3I6ICNiZGZjZmY7XG59XG4ubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3Mge1xuICBjb2xvcjogIzNjNzYzZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RmZjBkODtcbn1cbmEubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3MsXG5idXR0b24ubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3Mge1xuICBjb2xvcjogIzNjNzYzZDtcbn1cbmEubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3MgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1zdWNjZXNzIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyB7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuYS5saXN0LWdyb3VwLWl0ZW0tc3VjY2Vzczpob3ZlcixcbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0tc3VjY2Vzczpob3ZlcixcbmEubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3M6Zm9jdXMsXG5idXR0b24ubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3M6Zm9jdXMge1xuICBjb2xvcjogIzNjNzYzZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2QwZTljNjtcbn1cbmEubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3MuYWN0aXZlLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1zdWNjZXNzLmFjdGl2ZSxcbmEubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3MuYWN0aXZlOmhvdmVyLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1zdWNjZXNzLmFjdGl2ZTpob3ZlcixcbmEubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3MuYWN0aXZlOmZvY3VzLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1zdWNjZXNzLmFjdGl2ZTpmb2N1cyB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2M3NjNkO1xuICBib3JkZXItY29sb3I6ICMzYzc2M2Q7XG59XG4ubGlzdC1ncm91cC1pdGVtLWluZm8ge1xuICBjb2xvcjogIzMxNzA4ZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q5ZWRmNztcbn1cbmEubGlzdC1ncm91cC1pdGVtLWluZm8sXG5idXR0b24ubGlzdC1ncm91cC1pdGVtLWluZm8ge1xuICBjb2xvcjogIzMxNzA4Zjtcbn1cbmEubGlzdC1ncm91cC1pdGVtLWluZm8gLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1pbmZvIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyB7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuYS5saXN0LWdyb3VwLWl0ZW0taW5mbzpob3ZlcixcbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0taW5mbzpob3ZlcixcbmEubGlzdC1ncm91cC1pdGVtLWluZm86Zm9jdXMsXG5idXR0b24ubGlzdC1ncm91cC1pdGVtLWluZm86Zm9jdXMge1xuICBjb2xvcjogIzMxNzA4ZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2M0ZTNmMztcbn1cbmEubGlzdC1ncm91cC1pdGVtLWluZm8uYWN0aXZlLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1pbmZvLmFjdGl2ZSxcbmEubGlzdC1ncm91cC1pdGVtLWluZm8uYWN0aXZlOmhvdmVyLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1pbmZvLmFjdGl2ZTpob3ZlcixcbmEubGlzdC1ncm91cC1pdGVtLWluZm8uYWN0aXZlOmZvY3VzLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1pbmZvLmFjdGl2ZTpmb2N1cyB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzE3MDhmO1xuICBib3JkZXItY29sb3I6ICMzMTcwOGY7XG59XG4ubGlzdC1ncm91cC1pdGVtLXdhcm5pbmcge1xuICBjb2xvcjogIzhhNmQzYjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZjZjhlMztcbn1cbmEubGlzdC1ncm91cC1pdGVtLXdhcm5pbmcsXG5idXR0b24ubGlzdC1ncm91cC1pdGVtLXdhcm5pbmcge1xuICBjb2xvcjogIzhhNmQzYjtcbn1cbmEubGlzdC1ncm91cC1pdGVtLXdhcm5pbmcgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5nIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyB7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuYS5saXN0LWdyb3VwLWl0ZW0td2FybmluZzpob3ZlcixcbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0td2FybmluZzpob3ZlcixcbmEubGlzdC1ncm91cC1pdGVtLXdhcm5pbmc6Zm9jdXMsXG5idXR0b24ubGlzdC1ncm91cC1pdGVtLXdhcm5pbmc6Zm9jdXMge1xuICBjb2xvcjogIzhhNmQzYjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZjJjYztcbn1cbmEubGlzdC1ncm91cC1pdGVtLXdhcm5pbmcuYWN0aXZlLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5nLmFjdGl2ZSxcbmEubGlzdC1ncm91cC1pdGVtLXdhcm5pbmcuYWN0aXZlOmhvdmVyLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5nLmFjdGl2ZTpob3ZlcixcbmEubGlzdC1ncm91cC1pdGVtLXdhcm5pbmcuYWN0aXZlOmZvY3VzLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5nLmFjdGl2ZTpmb2N1cyB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGE2ZDNiO1xuICBib3JkZXItY29sb3I6ICM4YTZkM2I7XG59XG4ubGlzdC1ncm91cC1pdGVtLWRhbmdlciB7XG4gIGNvbG9yOiAjYTk0NDQyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjJkZWRlO1xufVxuYS5saXN0LWdyb3VwLWl0ZW0tZGFuZ2VyLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXIge1xuICBjb2xvcjogI2E5NDQ0Mjtcbn1cbmEubGlzdC1ncm91cC1pdGVtLWRhbmdlciAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcsXG5idXR0b24ubGlzdC1ncm91cC1pdGVtLWRhbmdlciAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcge1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbmEubGlzdC1ncm91cC1pdGVtLWRhbmdlcjpob3ZlcixcbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0tZGFuZ2VyOmhvdmVyLFxuYS5saXN0LWdyb3VwLWl0ZW0tZGFuZ2VyOmZvY3VzLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXI6Zm9jdXMge1xuICBjb2xvcjogI2E5NDQ0MjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ViY2NjYztcbn1cbmEubGlzdC1ncm91cC1pdGVtLWRhbmdlci5hY3RpdmUsXG5idXR0b24ubGlzdC1ncm91cC1pdGVtLWRhbmdlci5hY3RpdmUsXG5hLmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXIuYWN0aXZlOmhvdmVyLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXIuYWN0aXZlOmhvdmVyLFxuYS5saXN0LWdyb3VwLWl0ZW0tZGFuZ2VyLmFjdGl2ZTpmb2N1cyxcbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0tZGFuZ2VyLmFjdGl2ZTpmb2N1cyB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTk0NDQyO1xuICBib3JkZXItY29sb3I6ICNhOTQ0NDI7XG59XG4ubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG4ubGlzdC1ncm91cC1pdGVtLXRleHQge1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBsaW5lLWhlaWdodDogMS4zO1xufVxuLnBhbmVsIHtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiAgYm94LXNoYWRvdzogMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG59XG4ucGFuZWwtYm9keSB7XG4gIHBhZGRpbmc6IDE1cHg7XG59XG4ucGFuZWwtaGVhZGluZyB7XG4gIHBhZGRpbmc6IDEwcHggMTVweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogM3B4O1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAzcHg7XG59XG4ucGFuZWwtaGVhZGluZyA+IC5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xlIHtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG4ucGFuZWwtdGl0bGUge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuLnBhbmVsLXRpdGxlID4gYSxcbi5wYW5lbC10aXRsZSA+IHNtYWxsLFxuLnBhbmVsLXRpdGxlID4gLnNtYWxsLFxuLnBhbmVsLXRpdGxlID4gc21hbGwgPiBhLFxuLnBhbmVsLXRpdGxlID4gLnNtYWxsID4gYSB7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuLnBhbmVsLWZvb3RlciB7XG4gIHBhZGRpbmc6IDEwcHggMTVweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkZGQ7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAzcHg7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDNweDtcbn1cbi5wYW5lbCA+IC5saXN0LWdyb3VwLFxuLnBhbmVsID4gLnBhbmVsLWNvbGxhcHNlID4gLmxpc3QtZ3JvdXAge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuLnBhbmVsID4gLmxpc3QtZ3JvdXAgLmxpc3QtZ3JvdXAtaXRlbSxcbi5wYW5lbCA+IC5wYW5lbC1jb2xsYXBzZSA+IC5saXN0LWdyb3VwIC5saXN0LWdyb3VwLWl0ZW0ge1xuICBib3JkZXItd2lkdGg6IDFweCAwO1xuICBib3JkZXItcmFkaXVzOiAwO1xufVxuLnBhbmVsID4gLmxpc3QtZ3JvdXA6Zmlyc3QtY2hpbGQgLmxpc3QtZ3JvdXAtaXRlbTpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC5wYW5lbC1jb2xsYXBzZSA+IC5saXN0LWdyb3VwOmZpcnN0LWNoaWxkIC5saXN0LWdyb3VwLWl0ZW06Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wOiAwO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogM3B4O1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAzcHg7XG59XG4ucGFuZWwgPiAubGlzdC1ncm91cDpsYXN0LWNoaWxkIC5saXN0LWdyb3VwLWl0ZW06bGFzdC1jaGlsZCxcbi5wYW5lbCA+IC5wYW5lbC1jb2xsYXBzZSA+IC5saXN0LWdyb3VwOmxhc3QtY2hpbGQgLmxpc3QtZ3JvdXAtaXRlbTpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDNweDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogM3B4O1xufVxuLnBhbmVsID4gLnBhbmVsLWhlYWRpbmcgKyAucGFuZWwtY29sbGFwc2UgPiAubGlzdC1ncm91cCAubGlzdC1ncm91cC1pdGVtOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG59XG4ucGFuZWwtaGVhZGluZyArIC5saXN0LWdyb3VwIC5saXN0LWdyb3VwLWl0ZW06Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wLXdpZHRoOiAwO1xufVxuLmxpc3QtZ3JvdXAgKyAucGFuZWwtZm9vdGVyIHtcbiAgYm9yZGVyLXRvcC13aWR0aDogMDtcbn1cbi5wYW5lbCA+IC50YWJsZSxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLFxuLnBhbmVsID4gLnBhbmVsLWNvbGxhcHNlID4gLnRhYmxlIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cbi5wYW5lbCA+IC50YWJsZSBjYXB0aW9uLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUgY2FwdGlvbixcbi5wYW5lbCA+IC5wYW5lbC1jb2xsYXBzZSA+IC50YWJsZSBjYXB0aW9uIHtcbiAgcGFkZGluZy1sZWZ0OiAxNXB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xufVxuLnBhbmVsID4gLnRhYmxlOmZpcnN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmU6Zmlyc3QtY2hpbGQgPiAudGFibGU6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogM3B4O1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAzcHg7XG59XG4ucGFuZWwgPiAudGFibGU6Zmlyc3QtY2hpbGQgPiB0aGVhZDpmaXJzdC1jaGlsZCA+IHRyOmZpcnN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmU6Zmlyc3QtY2hpbGQgPiAudGFibGU6Zmlyc3QtY2hpbGQgPiB0aGVhZDpmaXJzdC1jaGlsZCA+IHRyOmZpcnN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlOmZpcnN0LWNoaWxkID4gdGJvZHk6Zmlyc3QtY2hpbGQgPiB0cjpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlOmZpcnN0LWNoaWxkID4gLnRhYmxlOmZpcnN0LWNoaWxkID4gdGJvZHk6Zmlyc3QtY2hpbGQgPiB0cjpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDNweDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDNweDtcbn1cbi5wYW5lbCA+IC50YWJsZTpmaXJzdC1jaGlsZCA+IHRoZWFkOmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgdGQ6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZTpmaXJzdC1jaGlsZCA+IC50YWJsZTpmaXJzdC1jaGlsZCA+IHRoZWFkOmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgdGQ6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGU6Zmlyc3QtY2hpbGQgPiB0Ym9keTpmaXJzdC1jaGlsZCA+IHRyOmZpcnN0LWNoaWxkIHRkOmZpcnN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmU6Zmlyc3QtY2hpbGQgPiAudGFibGU6Zmlyc3QtY2hpbGQgPiB0Ym9keTpmaXJzdC1jaGlsZCA+IHRyOmZpcnN0LWNoaWxkIHRkOmZpcnN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlOmZpcnN0LWNoaWxkID4gdGhlYWQ6Zmlyc3QtY2hpbGQgPiB0cjpmaXJzdC1jaGlsZCB0aDpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlOmZpcnN0LWNoaWxkID4gLnRhYmxlOmZpcnN0LWNoaWxkID4gdGhlYWQ6Zmlyc3QtY2hpbGQgPiB0cjpmaXJzdC1jaGlsZCB0aDpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZTpmaXJzdC1jaGlsZCA+IHRib2R5OmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgdGg6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZTpmaXJzdC1jaGlsZCA+IC50YWJsZTpmaXJzdC1jaGlsZCA+IHRib2R5OmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgdGg6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAzcHg7XG59XG4ucGFuZWwgPiAudGFibGU6Zmlyc3QtY2hpbGQgPiB0aGVhZDpmaXJzdC1jaGlsZCA+IHRyOmZpcnN0LWNoaWxkIHRkOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZTpmaXJzdC1jaGlsZCA+IC50YWJsZTpmaXJzdC1jaGlsZCA+IHRoZWFkOmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgdGQ6bGFzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZTpmaXJzdC1jaGlsZCA+IHRib2R5OmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgdGQ6bGFzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlOmZpcnN0LWNoaWxkID4gLnRhYmxlOmZpcnN0LWNoaWxkID4gdGJvZHk6Zmlyc3QtY2hpbGQgPiB0cjpmaXJzdC1jaGlsZCB0ZDpsYXN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlOmZpcnN0LWNoaWxkID4gdGhlYWQ6Zmlyc3QtY2hpbGQgPiB0cjpmaXJzdC1jaGlsZCB0aDpsYXN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmU6Zmlyc3QtY2hpbGQgPiAudGFibGU6Zmlyc3QtY2hpbGQgPiB0aGVhZDpmaXJzdC1jaGlsZCA+IHRyOmZpcnN0LWNoaWxkIHRoOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGU6Zmlyc3QtY2hpbGQgPiB0Ym9keTpmaXJzdC1jaGlsZCA+IHRyOmZpcnN0LWNoaWxkIHRoOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZTpmaXJzdC1jaGlsZCA+IC50YWJsZTpmaXJzdC1jaGlsZCA+IHRib2R5OmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgdGg6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAzcHg7XG59XG4ucGFuZWwgPiAudGFibGU6bGFzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlOmxhc3QtY2hpbGQgPiAudGFibGU6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAzcHg7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDNweDtcbn1cbi5wYW5lbCA+IC50YWJsZTpsYXN0LWNoaWxkID4gdGJvZHk6bGFzdC1jaGlsZCA+IHRyOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZTpsYXN0LWNoaWxkID4gLnRhYmxlOmxhc3QtY2hpbGQgPiB0Ym9keTpsYXN0LWNoaWxkID4gdHI6bGFzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZTpsYXN0LWNoaWxkID4gdGZvb3Q6bGFzdC1jaGlsZCA+IHRyOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZTpsYXN0LWNoaWxkID4gLnRhYmxlOmxhc3QtY2hpbGQgPiB0Zm9vdDpsYXN0LWNoaWxkID4gdHI6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDNweDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDNweDtcbn1cbi5wYW5lbCA+IC50YWJsZTpsYXN0LWNoaWxkID4gdGJvZHk6bGFzdC1jaGlsZCA+IHRyOmxhc3QtY2hpbGQgdGQ6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZTpsYXN0LWNoaWxkID4gLnRhYmxlOmxhc3QtY2hpbGQgPiB0Ym9keTpsYXN0LWNoaWxkID4gdHI6bGFzdC1jaGlsZCB0ZDpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZTpsYXN0LWNoaWxkID4gdGZvb3Q6bGFzdC1jaGlsZCA+IHRyOmxhc3QtY2hpbGQgdGQ6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZTpsYXN0LWNoaWxkID4gLnRhYmxlOmxhc3QtY2hpbGQgPiB0Zm9vdDpsYXN0LWNoaWxkID4gdHI6bGFzdC1jaGlsZCB0ZDpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZTpsYXN0LWNoaWxkID4gdGJvZHk6bGFzdC1jaGlsZCA+IHRyOmxhc3QtY2hpbGQgdGg6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZTpsYXN0LWNoaWxkID4gLnRhYmxlOmxhc3QtY2hpbGQgPiB0Ym9keTpsYXN0LWNoaWxkID4gdHI6bGFzdC1jaGlsZCB0aDpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZTpsYXN0LWNoaWxkID4gdGZvb3Q6bGFzdC1jaGlsZCA+IHRyOmxhc3QtY2hpbGQgdGg6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZTpsYXN0LWNoaWxkID4gLnRhYmxlOmxhc3QtY2hpbGQgPiB0Zm9vdDpsYXN0LWNoaWxkID4gdHI6bGFzdC1jaGlsZCB0aDpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDNweDtcbn1cbi5wYW5lbCA+IC50YWJsZTpsYXN0LWNoaWxkID4gdGJvZHk6bGFzdC1jaGlsZCA+IHRyOmxhc3QtY2hpbGQgdGQ6bGFzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlOmxhc3QtY2hpbGQgPiAudGFibGU6bGFzdC1jaGlsZCA+IHRib2R5Omxhc3QtY2hpbGQgPiB0cjpsYXN0LWNoaWxkIHRkOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGU6bGFzdC1jaGlsZCA+IHRmb290Omxhc3QtY2hpbGQgPiB0cjpsYXN0LWNoaWxkIHRkOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZTpsYXN0LWNoaWxkID4gLnRhYmxlOmxhc3QtY2hpbGQgPiB0Zm9vdDpsYXN0LWNoaWxkID4gdHI6bGFzdC1jaGlsZCB0ZDpsYXN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlOmxhc3QtY2hpbGQgPiB0Ym9keTpsYXN0LWNoaWxkID4gdHI6bGFzdC1jaGlsZCB0aDpsYXN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmU6bGFzdC1jaGlsZCA+IC50YWJsZTpsYXN0LWNoaWxkID4gdGJvZHk6bGFzdC1jaGlsZCA+IHRyOmxhc3QtY2hpbGQgdGg6bGFzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZTpsYXN0LWNoaWxkID4gdGZvb3Q6bGFzdC1jaGlsZCA+IHRyOmxhc3QtY2hpbGQgdGg6bGFzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlOmxhc3QtY2hpbGQgPiAudGFibGU6bGFzdC1jaGlsZCA+IHRmb290Omxhc3QtY2hpbGQgPiB0cjpsYXN0LWNoaWxkIHRoOmxhc3QtY2hpbGQge1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogM3B4O1xufVxuLnBhbmVsID4gLnBhbmVsLWJvZHkgKyAudGFibGUsXG4ucGFuZWwgPiAucGFuZWwtYm9keSArIC50YWJsZS1yZXNwb25zaXZlLFxuLnBhbmVsID4gLnRhYmxlICsgLnBhbmVsLWJvZHksXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSArIC5wYW5lbC1ib2R5IHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkZGQ7XG59XG4ucGFuZWwgPiAudGFibGUgPiB0Ym9keTpmaXJzdC1jaGlsZCA+IHRyOmZpcnN0LWNoaWxkIHRoLFxuLnBhbmVsID4gLnRhYmxlID4gdGJvZHk6Zmlyc3QtY2hpbGQgPiB0cjpmaXJzdC1jaGlsZCB0ZCB7XG4gIGJvcmRlci10b3A6IDA7XG59XG4ucGFuZWwgPiAudGFibGUtYm9yZGVyZWQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCB7XG4gIGJvcmRlcjogMDtcbn1cbi5wYW5lbCA+IC50YWJsZS1ib3JkZXJlZCA+IHRoZWFkID4gdHIgPiB0aDpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGhlYWQgPiB0ciA+IHRoOmZpcnN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLWJvcmRlcmVkID4gdGJvZHkgPiB0ciA+IHRoOmZpcnN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0Ym9keSA+IHRyID4gdGg6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtYm9yZGVyZWQgPiB0Zm9vdCA+IHRyID4gdGg6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRmb290ID4gdHIgPiB0aDpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1ib3JkZXJlZCA+IHRoZWFkID4gdHIgPiB0ZDpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGhlYWQgPiB0ciA+IHRkOmZpcnN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLWJvcmRlcmVkID4gdGJvZHkgPiB0ciA+IHRkOmZpcnN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0Ym9keSA+IHRyID4gdGQ6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtYm9yZGVyZWQgPiB0Zm9vdCA+IHRyID4gdGQ6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRmb290ID4gdHIgPiB0ZDpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1sZWZ0OiAwO1xufVxuLnBhbmVsID4gLnRhYmxlLWJvcmRlcmVkID4gdGhlYWQgPiB0ciA+IHRoOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRoZWFkID4gdHIgPiB0aDpsYXN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLWJvcmRlcmVkID4gdGJvZHkgPiB0ciA+IHRoOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRib2R5ID4gdHIgPiB0aDpsYXN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLWJvcmRlcmVkID4gdGZvb3QgPiB0ciA+IHRoOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRmb290ID4gdHIgPiB0aDpsYXN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLWJvcmRlcmVkID4gdGhlYWQgPiB0ciA+IHRkOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRoZWFkID4gdHIgPiB0ZDpsYXN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLWJvcmRlcmVkID4gdGJvZHkgPiB0ciA+IHRkOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRib2R5ID4gdHIgPiB0ZDpsYXN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLWJvcmRlcmVkID4gdGZvb3QgPiB0ciA+IHRkOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRmb290ID4gdHIgPiB0ZDpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLXJpZ2h0OiAwO1xufVxuLnBhbmVsID4gLnRhYmxlLWJvcmRlcmVkID4gdGhlYWQgPiB0cjpmaXJzdC1jaGlsZCA+IHRkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0aGVhZCA+IHRyOmZpcnN0LWNoaWxkID4gdGQsXG4ucGFuZWwgPiAudGFibGUtYm9yZGVyZWQgPiB0Ym9keSA+IHRyOmZpcnN0LWNoaWxkID4gdGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRib2R5ID4gdHI6Zmlyc3QtY2hpbGQgPiB0ZCxcbi5wYW5lbCA+IC50YWJsZS1ib3JkZXJlZCA+IHRoZWFkID4gdHI6Zmlyc3QtY2hpbGQgPiB0aCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGhlYWQgPiB0cjpmaXJzdC1jaGlsZCA+IHRoLFxuLnBhbmVsID4gLnRhYmxlLWJvcmRlcmVkID4gdGJvZHkgPiB0cjpmaXJzdC1jaGlsZCA+IHRoLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0Ym9keSA+IHRyOmZpcnN0LWNoaWxkID4gdGgge1xuICBib3JkZXItYm90dG9tOiAwO1xufVxuLnBhbmVsID4gLnRhYmxlLWJvcmRlcmVkID4gdGJvZHkgPiB0cjpsYXN0LWNoaWxkID4gdGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRib2R5ID4gdHI6bGFzdC1jaGlsZCA+IHRkLFxuLnBhbmVsID4gLnRhYmxlLWJvcmRlcmVkID4gdGZvb3QgPiB0cjpsYXN0LWNoaWxkID4gdGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRmb290ID4gdHI6bGFzdC1jaGlsZCA+IHRkLFxuLnBhbmVsID4gLnRhYmxlLWJvcmRlcmVkID4gdGJvZHkgPiB0cjpsYXN0LWNoaWxkID4gdGgsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRib2R5ID4gdHI6bGFzdC1jaGlsZCA+IHRoLFxuLnBhbmVsID4gLnRhYmxlLWJvcmRlcmVkID4gdGZvb3QgPiB0cjpsYXN0LWNoaWxkID4gdGgsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRmb290ID4gdHI6bGFzdC1jaGlsZCA+IHRoIHtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbn1cbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlIHtcbiAgYm9yZGVyOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuLnBhbmVsLWdyb3VwIHtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbn1cbi5wYW5lbC1ncm91cCAucGFuZWwge1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG4ucGFuZWwtZ3JvdXAgLnBhbmVsICsgLnBhbmVsIHtcbiAgbWFyZ2luLXRvcDogNXB4O1xufVxuLnBhbmVsLWdyb3VwIC5wYW5lbC1oZWFkaW5nIHtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbn1cbi5wYW5lbC1ncm91cCAucGFuZWwtaGVhZGluZyArIC5wYW5lbC1jb2xsYXBzZSA+IC5wYW5lbC1ib2R5LFxuLnBhbmVsLWdyb3VwIC5wYW5lbC1oZWFkaW5nICsgLnBhbmVsLWNvbGxhcHNlID4gLmxpc3QtZ3JvdXAge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2RkZDtcbn1cbi5wYW5lbC1ncm91cCAucGFuZWwtZm9vdGVyIHtcbiAgYm9yZGVyLXRvcDogMDtcbn1cbi5wYW5lbC1ncm91cCAucGFuZWwtZm9vdGVyICsgLnBhbmVsLWNvbGxhcHNlIC5wYW5lbC1ib2R5IHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkZGQ7XG59XG4ucGFuZWwtZGVmYXVsdCB7XG4gIGJvcmRlci1jb2xvcjogI2RkZDtcbn1cbi5wYW5lbC1kZWZhdWx0ID4gLnBhbmVsLWhlYWRpbmcge1xuICBjb2xvcjogIzMzMzMzMztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTtcbiAgYm9yZGVyLWNvbG9yOiAjZGRkO1xufVxuLnBhbmVsLWRlZmF1bHQgPiAucGFuZWwtaGVhZGluZyArIC5wYW5lbC1jb2xsYXBzZSA+IC5wYW5lbC1ib2R5IHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogI2RkZDtcbn1cbi5wYW5lbC1kZWZhdWx0ID4gLnBhbmVsLWhlYWRpbmcgLmJhZGdlIHtcbiAgY29sb3I6ICNmNWY1ZjU7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMzMzMzM7XG59XG4ucGFuZWwtZGVmYXVsdCA+IC5wYW5lbC1mb290ZXIgKyAucGFuZWwtY29sbGFwc2UgPiAucGFuZWwtYm9keSB7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6ICNkZGQ7XG59XG4ucGFuZWwtcHJpbWFyeSB7XG4gIGJvcmRlci1jb2xvcjogIzAwZTVmMDtcbn1cbi5wYW5lbC1wcmltYXJ5ID4gLnBhbmVsLWhlYWRpbmcge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwZTVmMDtcbiAgYm9yZGVyLWNvbG9yOiAjMDBlNWYwO1xufVxuLnBhbmVsLXByaW1hcnkgPiAucGFuZWwtaGVhZGluZyArIC5wYW5lbC1jb2xsYXBzZSA+IC5wYW5lbC1ib2R5IHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogIzAwZTVmMDtcbn1cbi5wYW5lbC1wcmltYXJ5ID4gLnBhbmVsLWhlYWRpbmcgLmJhZGdlIHtcbiAgY29sb3I6ICMwMGU1ZjA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG4ucGFuZWwtcHJpbWFyeSA+IC5wYW5lbC1mb290ZXIgKyAucGFuZWwtY29sbGFwc2UgPiAucGFuZWwtYm9keSB7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6ICMwMGU1ZjA7XG59XG4ucGFuZWwtc3VjY2VzcyB7XG4gIGJvcmRlci1jb2xvcjogI2Q2ZTljNjtcbn1cbi5wYW5lbC1zdWNjZXNzID4gLnBhbmVsLWhlYWRpbmcge1xuICBjb2xvcjogIzNjNzYzZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RmZjBkODtcbiAgYm9yZGVyLWNvbG9yOiAjZDZlOWM2O1xufVxuLnBhbmVsLXN1Y2Nlc3MgPiAucGFuZWwtaGVhZGluZyArIC5wYW5lbC1jb2xsYXBzZSA+IC5wYW5lbC1ib2R5IHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogI2Q2ZTljNjtcbn1cbi5wYW5lbC1zdWNjZXNzID4gLnBhbmVsLWhlYWRpbmcgLmJhZGdlIHtcbiAgY29sb3I6ICNkZmYwZDg7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzYzc2M2Q7XG59XG4ucGFuZWwtc3VjY2VzcyA+IC5wYW5lbC1mb290ZXIgKyAucGFuZWwtY29sbGFwc2UgPiAucGFuZWwtYm9keSB7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6ICNkNmU5YzY7XG59XG4ucGFuZWwtaW5mbyB7XG4gIGJvcmRlci1jb2xvcjogI2JjZThmMTtcbn1cbi5wYW5lbC1pbmZvID4gLnBhbmVsLWhlYWRpbmcge1xuICBjb2xvcjogIzMxNzA4ZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q5ZWRmNztcbiAgYm9yZGVyLWNvbG9yOiAjYmNlOGYxO1xufVxuLnBhbmVsLWluZm8gPiAucGFuZWwtaGVhZGluZyArIC5wYW5lbC1jb2xsYXBzZSA+IC5wYW5lbC1ib2R5IHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogI2JjZThmMTtcbn1cbi5wYW5lbC1pbmZvID4gLnBhbmVsLWhlYWRpbmcgLmJhZGdlIHtcbiAgY29sb3I6ICNkOWVkZjc7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMTcwOGY7XG59XG4ucGFuZWwtaW5mbyA+IC5wYW5lbC1mb290ZXIgKyAucGFuZWwtY29sbGFwc2UgPiAucGFuZWwtYm9keSB7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6ICNiY2U4ZjE7XG59XG4ucGFuZWwtd2FybmluZyB7XG4gIGJvcmRlci1jb2xvcjogI2ZhZWJjYztcbn1cbi5wYW5lbC13YXJuaW5nID4gLnBhbmVsLWhlYWRpbmcge1xuICBjb2xvcjogIzhhNmQzYjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZjZjhlMztcbiAgYm9yZGVyLWNvbG9yOiAjZmFlYmNjO1xufVxuLnBhbmVsLXdhcm5pbmcgPiAucGFuZWwtaGVhZGluZyArIC5wYW5lbC1jb2xsYXBzZSA+IC5wYW5lbC1ib2R5IHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogI2ZhZWJjYztcbn1cbi5wYW5lbC13YXJuaW5nID4gLnBhbmVsLWhlYWRpbmcgLmJhZGdlIHtcbiAgY29sb3I6ICNmY2Y4ZTM7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4YTZkM2I7XG59XG4ucGFuZWwtd2FybmluZyA+IC5wYW5lbC1mb290ZXIgKyAucGFuZWwtY29sbGFwc2UgPiAucGFuZWwtYm9keSB7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6ICNmYWViY2M7XG59XG4ucGFuZWwtZGFuZ2VyIHtcbiAgYm9yZGVyLWNvbG9yOiAjZWJjY2QxO1xufVxuLnBhbmVsLWRhbmdlciA+IC5wYW5lbC1oZWFkaW5nIHtcbiAgY29sb3I6ICNhOTQ0NDI7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMmRlZGU7XG4gIGJvcmRlci1jb2xvcjogI2ViY2NkMTtcbn1cbi5wYW5lbC1kYW5nZXIgPiAucGFuZWwtaGVhZGluZyArIC5wYW5lbC1jb2xsYXBzZSA+IC5wYW5lbC1ib2R5IHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogI2ViY2NkMTtcbn1cbi5wYW5lbC1kYW5nZXIgPiAucGFuZWwtaGVhZGluZyAuYmFkZ2Uge1xuICBjb2xvcjogI2YyZGVkZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2E5NDQ0Mjtcbn1cbi5wYW5lbC1kYW5nZXIgPiAucGFuZWwtZm9vdGVyICsgLnBhbmVsLWNvbGxhcHNlID4gLnBhbmVsLWJvZHkge1xuICBib3JkZXItYm90dG9tLWNvbG9yOiAjZWJjY2QxO1xufVxuLmVtYmVkLXJlc3BvbnNpdmUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDA7XG4gIHBhZGRpbmc6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4uZW1iZWQtcmVzcG9uc2l2ZSAuZW1iZWQtcmVzcG9uc2l2ZS1pdGVtLFxuLmVtYmVkLXJlc3BvbnNpdmUgaWZyYW1lLFxuLmVtYmVkLXJlc3BvbnNpdmUgZW1iZWQsXG4uZW1iZWQtcmVzcG9uc2l2ZSBvYmplY3QsXG4uZW1iZWQtcmVzcG9uc2l2ZSB2aWRlbyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBib3R0b206IDA7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlcjogMDtcbn1cbi5lbWJlZC1yZXNwb25zaXZlLTE2Ynk5IHtcbiAgcGFkZGluZy1ib3R0b206IDU2LjI1JTtcbn1cbi5lbWJlZC1yZXNwb25zaXZlLTRieTMge1xuICBwYWRkaW5nLWJvdHRvbTogNzUlO1xufVxuLndlbGwge1xuICBtaW4taGVpZ2h0OiAyMHB4O1xuICBwYWRkaW5nOiAxOXB4O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTNlM2UzO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDUpO1xufVxuLndlbGwgYmxvY2txdW90ZSB7XG4gIGJvcmRlci1jb2xvcjogI2RkZDtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTUpO1xufVxuLndlbGwtbGcge1xuICBwYWRkaW5nOiAyNHB4O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG59XG4ud2VsbC1zbSB7XG4gIHBhZGRpbmc6IDlweDtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xufVxuLmNsb3NlIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6ICMwMDA7XG4gIHRleHQtc2hhZG93OiAwIDFweCAwICNmZmY7XG4gIG9wYWNpdHk6IDAuMjtcbiAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTIwKTtcbn1cbi5jbG9zZTpob3Zlcixcbi5jbG9zZTpmb2N1cyB7XG4gIGNvbG9yOiAjMDAwO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3BhY2l0eTogMC41O1xuICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9NTApO1xufVxuYnV0dG9uLmNsb3NlIHtcbiAgcGFkZGluZzogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAwO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG4ubW9kYWwtb3BlbiB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4ubW9kYWwge1xuICBkaXNwbGF5OiBub25lO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogMTA1MDtcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICBvdXRsaW5lOiAwO1xufVxuLm1vZGFsLmZhZGUgLm1vZGFsLWRpYWxvZyB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTI1JSk7XG4gIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMjUlKTtcbiAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTI1JSk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0yNSUpO1xuICAtd2Via2l0LXRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtIDAuM3MgZWFzZS1vdXQ7XG4gIC1tb3otdHJhbnNpdGlvbjogLW1vei10cmFuc2Zvcm0gMC4zcyBlYXNlLW91dDtcbiAgLW8tdHJhbnNpdGlvbjogLW8tdHJhbnNmb3JtIDAuM3MgZWFzZS1vdXQ7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2Utb3V0O1xufVxuLm1vZGFsLmluIC5tb2RhbC1kaWFsb2cge1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbn1cbi5tb2RhbC1vcGVuIC5tb2RhbCB7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteTogYXV0bztcbn1cbi5tb2RhbC1kaWFsb2cge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiBhdXRvO1xuICBtYXJnaW46IDEwcHg7XG59XG4ubW9kYWwtY29udGVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgIzk5OTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjIpO1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAzcHggOXB4IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgYm94LXNoYWRvdzogMCAzcHggOXB4IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgb3V0bGluZTogMDtcbn1cbi5tb2RhbC1iYWNrZHJvcCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAxMDQwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xufVxuLm1vZGFsLWJhY2tkcm9wLmZhZGUge1xuICBvcGFjaXR5OiAwO1xuICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9MCk7XG59XG4ubW9kYWwtYmFja2Ryb3AuaW4ge1xuICBvcGFjaXR5OiAwLjU7XG4gIGZpbHRlcjogYWxwaGEob3BhY2l0eT01MCk7XG59XG4ubW9kYWwtaGVhZGVyIHtcbiAgcGFkZGluZzogMTVweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlNWU1ZTU7XG59XG4ubW9kYWwtaGVhZGVyIC5jbG9zZSB7XG4gIG1hcmdpbi10b3A6IC0ycHg7XG59XG4ubW9kYWwtdGl0bGUge1xuICBtYXJnaW46IDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xufVxuLm1vZGFsLWJvZHkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IDE1cHg7XG59XG4ubW9kYWwtZm9vdGVyIHtcbiAgcGFkZGluZzogMTVweDtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZTVlNWU1O1xufVxuLm1vZGFsLWZvb3RlciAuYnRuICsgLmJ0biB7XG4gIG1hcmdpbi1sZWZ0OiA1cHg7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG4ubW9kYWwtZm9vdGVyIC5idG4tZ3JvdXAgLmJ0biArIC5idG4ge1xuICBtYXJnaW4tbGVmdDogLTFweDtcbn1cbi5tb2RhbC1mb290ZXIgLmJ0bi1ibG9jayArIC5idG4tYmxvY2sge1xuICBtYXJnaW4tbGVmdDogMDtcbn1cbi5tb2RhbC1zY3JvbGxiYXItbWVhc3VyZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtOTk5OXB4O1xuICB3aWR0aDogNTBweDtcbiAgaGVpZ2h0OiA1MHB4O1xuICBvdmVyZmxvdzogc2Nyb2xsO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5tb2RhbC1kaWFsb2cge1xuICAgIHdpZHRoOiA2MDBweDtcbiAgICBtYXJnaW46IDMwcHggYXV0bztcbiAgfVxuICAubW9kYWwtY29udGVudCB7XG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDVweCAxNXB4IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgICBib3gtc2hhZG93OiAwIDVweCAxNXB4IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgfVxuICAubW9kYWwtc20ge1xuICAgIHdpZHRoOiAzMDBweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5tb2RhbC1sZyB7XG4gICAgd2lkdGg6IDkwMHB4O1xuICB9XG59XG4udG9vbHRpcCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTA3MDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgbGluZS1icmVhazogYXV0bztcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NTcxNDM7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHRleHQtYWxpZ246IHN0YXJ0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgd29yZC1icmVhazogbm9ybWFsO1xuICB3b3JkLXNwYWNpbmc6IG5vcm1hbDtcbiAgd29yZC13cmFwOiBub3JtYWw7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgb3BhY2l0eTogMDtcbiAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTApO1xufVxuLnRvb2x0aXAuaW4ge1xuICBvcGFjaXR5OiAwLjk7XG4gIGZpbHRlcjogYWxwaGEob3BhY2l0eT05MCk7XG59XG4udG9vbHRpcC50b3Age1xuICBtYXJnaW4tdG9wOiAtM3B4O1xuICBwYWRkaW5nOiA1cHggMDtcbn1cbi50b29sdGlwLnJpZ2h0IHtcbiAgbWFyZ2luLWxlZnQ6IDNweDtcbiAgcGFkZGluZzogMCA1cHg7XG59XG4udG9vbHRpcC5ib3R0b20ge1xuICBtYXJnaW4tdG9wOiAzcHg7XG4gIHBhZGRpbmc6IDVweCAwO1xufVxuLnRvb2x0aXAubGVmdCB7XG4gIG1hcmdpbi1sZWZ0OiAtM3B4O1xuICBwYWRkaW5nOiAwIDVweDtcbn1cbi50b29sdGlwLWlubmVyIHtcbiAgbWF4LXdpZHRoOiAyMDBweDtcbiAgcGFkZGluZzogM3B4IDhweDtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuLnRvb2x0aXAtYXJyb3cge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG59XG4udG9vbHRpcC50b3AgLnRvb2x0aXAtYXJyb3cge1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC01cHg7XG4gIGJvcmRlci13aWR0aDogNXB4IDVweCAwO1xuICBib3JkZXItdG9wLWNvbG9yOiAjMDAwO1xufVxuLnRvb2x0aXAudG9wLWxlZnQgLnRvb2x0aXAtYXJyb3cge1xuICBib3R0b206IDA7XG4gIHJpZ2h0OiA1cHg7XG4gIG1hcmdpbi1ib3R0b206IC01cHg7XG4gIGJvcmRlci13aWR0aDogNXB4IDVweCAwO1xuICBib3JkZXItdG9wLWNvbG9yOiAjMDAwO1xufVxuLnRvb2x0aXAudG9wLXJpZ2h0IC50b29sdGlwLWFycm93IHtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiA1cHg7XG4gIG1hcmdpbi1ib3R0b206IC01cHg7XG4gIGJvcmRlci13aWR0aDogNXB4IDVweCAwO1xuICBib3JkZXItdG9wLWNvbG9yOiAjMDAwO1xufVxuLnRvb2x0aXAucmlnaHQgLnRvb2x0aXAtYXJyb3cge1xuICB0b3A6IDUwJTtcbiAgbGVmdDogMDtcbiAgbWFyZ2luLXRvcDogLTVweDtcbiAgYm9yZGVyLXdpZHRoOiA1cHggNXB4IDVweCAwO1xuICBib3JkZXItcmlnaHQtY29sb3I6ICMwMDA7XG59XG4udG9vbHRpcC5sZWZ0IC50b29sdGlwLWFycm93IHtcbiAgdG9wOiA1MCU7XG4gIHJpZ2h0OiAwO1xuICBtYXJnaW4tdG9wOiAtNXB4O1xuICBib3JkZXItd2lkdGg6IDVweCAwIDVweCA1cHg7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiAjMDAwO1xufVxuLnRvb2x0aXAuYm90dG9tIC50b29sdGlwLWFycm93IHtcbiAgdG9wOiAwO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtNXB4O1xuICBib3JkZXItd2lkdGg6IDAgNXB4IDVweDtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogIzAwMDtcbn1cbi50b29sdGlwLmJvdHRvbS1sZWZ0IC50b29sdGlwLWFycm93IHtcbiAgdG9wOiAwO1xuICByaWdodDogNXB4O1xuICBtYXJnaW4tdG9wOiAtNXB4O1xuICBib3JkZXItd2lkdGg6IDAgNXB4IDVweDtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogIzAwMDtcbn1cbi50b29sdGlwLmJvdHRvbS1yaWdodCAudG9vbHRpcC1hcnJvdyB7XG4gIHRvcDogMDtcbiAgbGVmdDogNXB4O1xuICBtYXJnaW4tdG9wOiAtNXB4O1xuICBib3JkZXItd2lkdGg6IDAgNXB4IDVweDtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogIzAwMDtcbn1cbi5wb3BvdmVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDEwNjA7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIG1heC13aWR0aDogMjc2cHg7XG4gIHBhZGRpbmc6IDFweDtcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICBsaW5lLWJyZWFrOiBhdXRvO1xuICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgdGV4dC1hbGlnbjogc3RhcnQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICB3b3JkLWJyZWFrOiBub3JtYWw7XG4gIHdvcmQtc3BhY2luZzogbm9ybWFsO1xuICB3b3JkLXdyYXA6IG5vcm1hbDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMik7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDVweCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgYm94LXNoYWRvdzogMCA1cHggMTBweCByZ2JhKDAsIDAsIDAsIDAuMik7XG59XG4ucG9wb3Zlci50b3Age1xuICBtYXJnaW4tdG9wOiAtMTBweDtcbn1cbi5wb3BvdmVyLnJpZ2h0IHtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG59XG4ucG9wb3Zlci5ib3R0b20ge1xuICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuLnBvcG92ZXIubGVmdCB7XG4gIG1hcmdpbi1sZWZ0OiAtMTBweDtcbn1cbi5wb3BvdmVyLXRpdGxlIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiA4cHggMTRweDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmN2Y3O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2ViZWJlYjtcbiAgYm9yZGVyLXJhZGl1czogNXB4IDVweCAwIDA7XG59XG4ucG9wb3Zlci1jb250ZW50IHtcbiAgcGFkZGluZzogOXB4IDE0cHg7XG59XG4ucG9wb3ZlciA+IC5hcnJvdyxcbi5wb3BvdmVyID4gLmFycm93OmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbn1cbi5wb3BvdmVyID4gLmFycm93IHtcbiAgYm9yZGVyLXdpZHRoOiAxMXB4O1xufVxuLnBvcG92ZXIgPiAuYXJyb3c6YWZ0ZXIge1xuICBib3JkZXItd2lkdGg6IDEwcHg7XG4gIGNvbnRlbnQ6IFwiXCI7XG59XG4ucG9wb3Zlci50b3AgPiAuYXJyb3cge1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMTFweDtcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgYm9yZGVyLXRvcC1jb2xvcjogIzk5OTk5OTtcbiAgYm9yZGVyLXRvcC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjI1KTtcbiAgYm90dG9tOiAtMTFweDtcbn1cbi5wb3BvdmVyLnRvcCA+IC5hcnJvdzphZnRlciB7XG4gIGNvbnRlbnQ6IFwiIFwiO1xuICBib3R0b206IDFweDtcbiAgbWFyZ2luLWxlZnQ6IC0xMHB4O1xuICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICBib3JkZXItdG9wLWNvbG9yOiAjZmZmO1xufVxuLnBvcG92ZXIucmlnaHQgPiAuYXJyb3cge1xuICB0b3A6IDUwJTtcbiAgbGVmdDogLTExcHg7XG4gIG1hcmdpbi10b3A6IC0xMXB4O1xuICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAjOTk5OTk5O1xuICBib3JkZXItcmlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNSk7XG59XG4ucG9wb3Zlci5yaWdodCA+IC5hcnJvdzphZnRlciB7XG4gIGNvbnRlbnQ6IFwiIFwiO1xuICBsZWZ0OiAxcHg7XG4gIGJvdHRvbTogLTEwcHg7XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICBib3JkZXItcmlnaHQtY29sb3I6ICNmZmY7XG59XG4ucG9wb3Zlci5ib3R0b20gPiAuYXJyb3cge1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMTFweDtcbiAgYm9yZGVyLXRvcC13aWR0aDogMDtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogIzk5OTk5OTtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjI1KTtcbiAgdG9wOiAtMTFweDtcbn1cbi5wb3BvdmVyLmJvdHRvbSA+IC5hcnJvdzphZnRlciB7XG4gIGNvbnRlbnQ6IFwiIFwiO1xuICB0b3A6IDFweDtcbiAgbWFyZ2luLWxlZnQ6IC0xMHB4O1xuICBib3JkZXItdG9wLXdpZHRoOiAwO1xuICBib3JkZXItYm90dG9tLWNvbG9yOiAjZmZmO1xufVxuLnBvcG92ZXIubGVmdCA+IC5hcnJvdyB7XG4gIHRvcDogNTAlO1xuICByaWdodDogLTExcHg7XG4gIG1hcmdpbi10b3A6IC0xMXB4O1xuICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiAjOTk5OTk5O1xuICBib3JkZXItbGVmdC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjI1KTtcbn1cbi5wb3BvdmVyLmxlZnQgPiAuYXJyb3c6YWZ0ZXIge1xuICBjb250ZW50OiBcIiBcIjtcbiAgcmlnaHQ6IDFweDtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICBib3JkZXItbGVmdC1jb2xvcjogI2ZmZjtcbiAgYm90dG9tOiAtMTBweDtcbn1cbi5jYXJvdXNlbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5jYXJvdXNlbC1pbm5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd2lkdGg6IDEwMCU7XG59XG4uY2Fyb3VzZWwtaW5uZXIgPiAuaXRlbSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAwLjZzIGVhc2UtaW4tb3V0IGxlZnQ7XG4gIC1vLXRyYW5zaXRpb246IDAuNnMgZWFzZS1pbi1vdXQgbGVmdDtcbiAgdHJhbnNpdGlvbjogMC42cyBlYXNlLWluLW91dCBsZWZ0O1xufVxuLmNhcm91c2VsLWlubmVyID4gLml0ZW0gPiBpbWcsXG4uY2Fyb3VzZWwtaW5uZXIgPiAuaXRlbSA+IGEgPiBpbWcge1xuICBsaW5lLWhlaWdodDogMTtcbn1cbkBtZWRpYSBhbGwgYW5kICh0cmFuc2Zvcm0tM2QpLCAoLXdlYmtpdC10cmFuc2Zvcm0tM2QpIHtcbiAgLmNhcm91c2VsLWlubmVyID4gLml0ZW0ge1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gMC42cyBlYXNlLWluLW91dDtcbiAgICAtbW96LXRyYW5zaXRpb246IC1tb3otdHJhbnNmb3JtIDAuNnMgZWFzZS1pbi1vdXQ7XG4gICAgLW8tdHJhbnNpdGlvbjogLW8tdHJhbnNmb3JtIDAuNnMgZWFzZS1pbi1vdXQ7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNnMgZWFzZS1pbi1vdXQ7XG4gICAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgLW1vei1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIC13ZWJraXQtcGVyc3BlY3RpdmU6IDEwMDBweDtcbiAgICAtbW96LXBlcnNwZWN0aXZlOiAxMDAwcHg7XG4gICAgcGVyc3BlY3RpdmU6IDEwMDBweDtcbiAgfVxuICAuY2Fyb3VzZWwtaW5uZXIgPiAuaXRlbS5uZXh0LFxuICAuY2Fyb3VzZWwtaW5uZXIgPiAuaXRlbS5hY3RpdmUucmlnaHQge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApO1xuICAgIGxlZnQ6IDA7XG4gIH1cbiAgLmNhcm91c2VsLWlubmVyID4gLml0ZW0ucHJldixcbiAgLmNhcm91c2VsLWlubmVyID4gLml0ZW0uYWN0aXZlLmxlZnQge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCk7XG4gICAgbGVmdDogMDtcbiAgfVxuICAuY2Fyb3VzZWwtaW5uZXIgPiAuaXRlbS5uZXh0LmxlZnQsXG4gIC5jYXJvdXNlbC1pbm5lciA+IC5pdGVtLnByZXYucmlnaHQsXG4gIC5jYXJvdXNlbC1pbm5lciA+IC5pdGVtLmFjdGl2ZSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgbGVmdDogMDtcbiAgfVxufVxuLmNhcm91c2VsLWlubmVyID4gLmFjdGl2ZSxcbi5jYXJvdXNlbC1pbm5lciA+IC5uZXh0LFxuLmNhcm91c2VsLWlubmVyID4gLnByZXYge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi5jYXJvdXNlbC1pbm5lciA+IC5hY3RpdmUge1xuICBsZWZ0OiAwO1xufVxuLmNhcm91c2VsLWlubmVyID4gLm5leHQsXG4uY2Fyb3VzZWwtaW5uZXIgPiAucHJldiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICB3aWR0aDogMTAwJTtcbn1cbi5jYXJvdXNlbC1pbm5lciA+IC5uZXh0IHtcbiAgbGVmdDogMTAwJTtcbn1cbi5jYXJvdXNlbC1pbm5lciA+IC5wcmV2IHtcbiAgbGVmdDogLTEwMCU7XG59XG4uY2Fyb3VzZWwtaW5uZXIgPiAubmV4dC5sZWZ0LFxuLmNhcm91c2VsLWlubmVyID4gLnByZXYucmlnaHQge1xuICBsZWZ0OiAwO1xufVxuLmNhcm91c2VsLWlubmVyID4gLmFjdGl2ZS5sZWZ0IHtcbiAgbGVmdDogLTEwMCU7XG59XG4uY2Fyb3VzZWwtaW5uZXIgPiAuYWN0aXZlLnJpZ2h0IHtcbiAgbGVmdDogMTAwJTtcbn1cbi5jYXJvdXNlbC1jb250cm9sIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgd2lkdGg6IDE1JTtcbiAgb3BhY2l0eTogMC41O1xuICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9NTApO1xuICBmb250LXNpemU6IDIwcHg7XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtc2hhZG93OiAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjYpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApO1xufVxuLmNhcm91c2VsLWNvbnRyb2wubGVmdCB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZnQsIHJnYmEoMCwgMCwgMCwgMC41KSAwJSwgcmdiYSgwLCAwLCAwLCAwLjAwMDEpIDEwMCUpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQobGVmdCwgcmdiYSgwLCAwLCAwLCAwLjUpIDAlLCByZ2JhKDAsIDAsIDAsIDAuMDAwMSkgMTAwJSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgwLCAwLCAwLCAwLjUpIDAlLCByZ2JhKDAsIDAsIDAsIDAuMDAwMSkgMTAwJSk7XG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbiAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nIzgwMDAwMDAwJywgZW5kQ29sb3JzdHI9JyMwMDAwMDAwMCcsIEdyYWRpZW50VHlwZT0xKTtcbn1cbi5jYXJvdXNlbC1jb250cm9sLnJpZ2h0IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDA7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZnQsIHJnYmEoMCwgMCwgMCwgMC4wMDAxKSAwJSwgcmdiYSgwLCAwLCAwLCAwLjUpIDEwMCUpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQobGVmdCwgcmdiYSgwLCAwLCAwLCAwLjAwMDEpIDAlLCByZ2JhKDAsIDAsIDAsIDAuNSkgMTAwJSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgwLCAwLCAwLCAwLjAwMDEpIDAlLCByZ2JhKDAsIDAsIDAsIDAuNSkgMTAwJSk7XG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbiAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nIzAwMDAwMDAwJywgZW5kQ29sb3JzdHI9JyM4MDAwMDAwMCcsIEdyYWRpZW50VHlwZT0xKTtcbn1cbi5jYXJvdXNlbC1jb250cm9sOmhvdmVyLFxuLmNhcm91c2VsLWNvbnRyb2w6Zm9jdXMge1xuICBvdXRsaW5lOiAwO1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBvcGFjaXR5OiAwLjk7XG4gIGZpbHRlcjogYWxwaGEob3BhY2l0eT05MCk7XG59XG4uY2Fyb3VzZWwtY29udHJvbCAuaWNvbi1wcmV2LFxuLmNhcm91c2VsLWNvbnRyb2wgLmljb24tbmV4dCxcbi5jYXJvdXNlbC1jb250cm9sIC5nbHlwaGljb24tY2hldnJvbi1sZWZ0LFxuLmNhcm91c2VsLWNvbnRyb2wgLmdseXBoaWNvbi1jaGV2cm9uLXJpZ2h0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLXRvcDogLTEwcHg7XG4gIHotaW5kZXg6IDU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi5jYXJvdXNlbC1jb250cm9sIC5pY29uLXByZXYsXG4uY2Fyb3VzZWwtY29udHJvbCAuZ2x5cGhpY29uLWNoZXZyb24tbGVmdCB7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0xMHB4O1xufVxuLmNhcm91c2VsLWNvbnRyb2wgLmljb24tbmV4dCxcbi5jYXJvdXNlbC1jb250cm9sIC5nbHlwaGljb24tY2hldnJvbi1yaWdodCB7XG4gIHJpZ2h0OiA1MCU7XG4gIG1hcmdpbi1yaWdodDogLTEwcHg7XG59XG4uY2Fyb3VzZWwtY29udHJvbCAuaWNvbi1wcmV2LFxuLmNhcm91c2VsLWNvbnRyb2wgLmljb24tbmV4dCB7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LWZhbWlseTogc2VyaWY7XG59XG4uY2Fyb3VzZWwtY29udHJvbCAuaWNvbi1wcmV2OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXDIwMzknO1xufVxuLmNhcm91c2VsLWNvbnRyb2wgLmljb24tbmV4dDpiZWZvcmUge1xuICBjb250ZW50OiAnXFwyMDNhJztcbn1cbi5jYXJvdXNlbC1pbmRpY2F0b3JzIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDEwcHg7XG4gIGxlZnQ6IDUwJTtcbiAgei1pbmRleDogMTU7XG4gIHdpZHRoOiA2MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMzAlO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5jYXJvdXNlbC1pbmRpY2F0b3JzIGxpIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMTBweDtcbiAgaGVpZ2h0OiAxMHB4O1xuICBtYXJnaW46IDFweDtcbiAgdGV4dC1pbmRlbnQ6IC05OTlweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2ZmZjtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwIFxcOTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcbn1cbi5jYXJvdXNlbC1pbmRpY2F0b3JzIC5hY3RpdmUge1xuICBtYXJnaW46IDA7XG4gIHdpZHRoOiAxMnB4O1xuICBoZWlnaHQ6IDEycHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG4uY2Fyb3VzZWwtY2FwdGlvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMTUlO1xuICByaWdodDogMTUlO1xuICBib3R0b206IDIwcHg7XG4gIHotaW5kZXg6IDEwO1xuICBwYWRkaW5nLXRvcDogMjBweDtcbiAgcGFkZGluZy1ib3R0b206IDIwcHg7XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtc2hhZG93OiAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjYpO1xufVxuLmNhcm91c2VsLWNhcHRpb24gLmJ0biB7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmNhcm91c2VsLWNvbnRyb2wgLmdseXBoaWNvbi1jaGV2cm9uLWxlZnQsXG4gIC5jYXJvdXNlbC1jb250cm9sIC5nbHlwaGljb24tY2hldnJvbi1yaWdodCxcbiAgLmNhcm91c2VsLWNvbnRyb2wgLmljb24tcHJldixcbiAgLmNhcm91c2VsLWNvbnRyb2wgLmljb24tbmV4dCB7XG4gICAgd2lkdGg6IDMwcHg7XG4gICAgaGVpZ2h0OiAzMHB4O1xuICAgIG1hcmdpbi10b3A6IC0xMHB4O1xuICAgIGZvbnQtc2l6ZTogMzBweDtcbiAgfVxuICAuY2Fyb3VzZWwtY29udHJvbCAuZ2x5cGhpY29uLWNoZXZyb24tbGVmdCxcbiAgLmNhcm91c2VsLWNvbnRyb2wgLmljb24tcHJldiB7XG4gICAgbWFyZ2luLWxlZnQ6IC0xMHB4O1xuICB9XG4gIC5jYXJvdXNlbC1jb250cm9sIC5nbHlwaGljb24tY2hldnJvbi1yaWdodCxcbiAgLmNhcm91c2VsLWNvbnRyb2wgLmljb24tbmV4dCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAtMTBweDtcbiAgfVxuICAuY2Fyb3VzZWwtY2FwdGlvbiB7XG4gICAgbGVmdDogMjAlO1xuICAgIHJpZ2h0OiAyMCU7XG4gICAgcGFkZGluZy1ib3R0b206IDMwcHg7XG4gIH1cbiAgLmNhcm91c2VsLWluZGljYXRvcnMge1xuICAgIGJvdHRvbTogMjBweDtcbiAgfVxufVxuLmNsZWFyZml4OmJlZm9yZSxcbi5jbGVhcmZpeDphZnRlcixcbi5kbC1ob3Jpem9udGFsIGRkOmJlZm9yZSxcbi5kbC1ob3Jpem9udGFsIGRkOmFmdGVyLFxuLmNvbnRhaW5lcjpiZWZvcmUsXG4uY29udGFpbmVyOmFmdGVyLFxuLmNvbnRhaW5lci1mbHVpZDpiZWZvcmUsXG4uY29udGFpbmVyLWZsdWlkOmFmdGVyLFxuLnJvdzpiZWZvcmUsXG4ucm93OmFmdGVyLFxuLmZvcm0taG9yaXpvbnRhbCAuZm9ybS1ncm91cDpiZWZvcmUsXG4uZm9ybS1ob3Jpem9udGFsIC5mb3JtLWdyb3VwOmFmdGVyLFxuLmJ0bi10b29sYmFyOmJlZm9yZSxcbi5idG4tdG9vbGJhcjphZnRlcixcbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuLWdyb3VwOmJlZm9yZSxcbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuLWdyb3VwOmFmdGVyLFxuLm5hdjpiZWZvcmUsXG4ubmF2OmFmdGVyLFxuLm5hdmJhcjpiZWZvcmUsXG4ubmF2YmFyOmFmdGVyLFxuLm5hdmJhci1oZWFkZXI6YmVmb3JlLFxuLm5hdmJhci1oZWFkZXI6YWZ0ZXIsXG4ubmF2YmFyLWNvbGxhcHNlOmJlZm9yZSxcbi5uYXZiYXItY29sbGFwc2U6YWZ0ZXIsXG4ucGFnZXI6YmVmb3JlLFxuLnBhZ2VyOmFmdGVyLFxuLnBhbmVsLWJvZHk6YmVmb3JlLFxuLnBhbmVsLWJvZHk6YWZ0ZXIsXG4ubW9kYWwtaGVhZGVyOmJlZm9yZSxcbi5tb2RhbC1oZWFkZXI6YWZ0ZXIsXG4ubW9kYWwtZm9vdGVyOmJlZm9yZSxcbi5tb2RhbC1mb290ZXI6YWZ0ZXIge1xuICBjb250ZW50OiBcIiBcIjtcbiAgZGlzcGxheTogdGFibGU7XG59XG4uY2xlYXJmaXg6YWZ0ZXIsXG4uZGwtaG9yaXpvbnRhbCBkZDphZnRlcixcbi5jb250YWluZXI6YWZ0ZXIsXG4uY29udGFpbmVyLWZsdWlkOmFmdGVyLFxuLnJvdzphZnRlcixcbi5mb3JtLWhvcml6b250YWwgLmZvcm0tZ3JvdXA6YWZ0ZXIsXG4uYnRuLXRvb2xiYXI6YWZ0ZXIsXG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bi1ncm91cDphZnRlcixcbi5uYXY6YWZ0ZXIsXG4ubmF2YmFyOmFmdGVyLFxuLm5hdmJhci1oZWFkZXI6YWZ0ZXIsXG4ubmF2YmFyLWNvbGxhcHNlOmFmdGVyLFxuLnBhZ2VyOmFmdGVyLFxuLnBhbmVsLWJvZHk6YWZ0ZXIsXG4ubW9kYWwtaGVhZGVyOmFmdGVyLFxuLm1vZGFsLWZvb3RlcjphZnRlciB7XG4gIGNsZWFyOiBib3RoO1xufVxuLmNlbnRlci1ibG9jayB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuLnB1bGwtcmlnaHQge1xuICBmbG9hdDogcmlnaHQgIWltcG9ydGFudDtcbn1cbi5wdWxsLWxlZnQge1xuICBmbG9hdDogbGVmdCAhaW1wb3J0YW50O1xufVxuLmhpZGUge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG4uc2hvdyB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG59XG4uaW52aXNpYmxlIHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLnRleHQtaGlkZSB7XG4gIGZvbnQ6IDAvMCBhO1xuICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAwO1xufVxuLmhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cbi5hZmZpeCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbn1cbkAtbXMtdmlld3BvcnQge1xuICB3aWR0aDogZGV2aWNlLXdpZHRoO1xufVxuLnZpc2libGUteHMsXG4udmlzaWJsZS1zbSxcbi52aXNpYmxlLW1kLFxuLnZpc2libGUtbGcge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG4udmlzaWJsZS14cy1ibG9jayxcbi52aXNpYmxlLXhzLWlubGluZSxcbi52aXNpYmxlLXhzLWlubGluZS1ibG9jayxcbi52aXNpYmxlLXNtLWJsb2NrLFxuLnZpc2libGUtc20taW5saW5lLFxuLnZpc2libGUtc20taW5saW5lLWJsb2NrLFxuLnZpc2libGUtbWQtYmxvY2ssXG4udmlzaWJsZS1tZC1pbmxpbmUsXG4udmlzaWJsZS1tZC1pbmxpbmUtYmxvY2ssXG4udmlzaWJsZS1sZy1ibG9jayxcbi52aXNpYmxlLWxnLWlubGluZSxcbi52aXNpYmxlLWxnLWlubGluZS1ibG9jayB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAudmlzaWJsZS14cyB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxuICB0YWJsZS52aXNpYmxlLXhzIHtcbiAgICBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50O1xuICB9XG4gIHRyLnZpc2libGUteHMge1xuICAgIGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50O1xuICB9XG4gIHRoLnZpc2libGUteHMsXG4gIHRkLnZpc2libGUteHMge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC52aXNpYmxlLXhzLWJsb2NrIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnZpc2libGUteHMtaW5saW5lIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC52aXNpYmxlLXhzLWlubGluZS1ibG9jayB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDk5MXB4KSB7XG4gIC52aXNpYmxlLXNtIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG4gIHRhYmxlLnZpc2libGUtc20ge1xuICAgIGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7XG4gIH1cbiAgdHIudmlzaWJsZS1zbSB7XG4gICAgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7XG4gIH1cbiAgdGgudmlzaWJsZS1zbSxcbiAgdGQudmlzaWJsZS1zbSB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiA5OTFweCkge1xuICAudmlzaWJsZS1zbS1ibG9jayB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogOTkxcHgpIHtcbiAgLnZpc2libGUtc20taW5saW5lIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogOTkxcHgpIHtcbiAgLnZpc2libGUtc20taW5saW5lLWJsb2NrIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSBhbmQgKG1heC13aWR0aDogMTE5OXB4KSB7XG4gIC52aXNpYmxlLW1kIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG4gIHRhYmxlLnZpc2libGUtbWQge1xuICAgIGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7XG4gIH1cbiAgdHIudmlzaWJsZS1tZCB7XG4gICAgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7XG4gIH1cbiAgdGgudmlzaWJsZS1tZCxcbiAgdGQudmlzaWJsZS1tZCB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgLnZpc2libGUtbWQtYmxvY2sge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkgYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAudmlzaWJsZS1tZC1pbmxpbmUge1xuICAgIGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgLnZpc2libGUtbWQtaW5saW5lLWJsb2NrIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAudmlzaWJsZS1sZyB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxuICB0YWJsZS52aXNpYmxlLWxnIHtcbiAgICBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50O1xuICB9XG4gIHRyLnZpc2libGUtbGcge1xuICAgIGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50O1xuICB9XG4gIHRoLnZpc2libGUtbGcsXG4gIHRkLnZpc2libGUtbGcge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAudmlzaWJsZS1sZy1ibG9jayB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAudmlzaWJsZS1sZy1pbmxpbmUge1xuICAgIGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC52aXNpYmxlLWxnLWlubGluZS1ibG9jayB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuaGlkZGVuLXhzIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDk5MXB4KSB7XG4gIC5oaWRkZW4tc20ge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSBhbmQgKG1heC13aWR0aDogMTE5OXB4KSB7XG4gIC5oaWRkZW4tbWQge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAuaGlkZGVuLWxnIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi52aXNpYmxlLXByaW50IHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuQG1lZGlhIHByaW50IHtcbiAgLnZpc2libGUtcHJpbnQge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbiAgdGFibGUudmlzaWJsZS1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDtcbiAgfVxuICB0ci52aXNpYmxlLXByaW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudDtcbiAgfVxuICB0aC52aXNpYmxlLXByaW50LFxuICB0ZC52aXNpYmxlLXByaW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi52aXNpYmxlLXByaW50LWJsb2NrIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuQG1lZGlhIHByaW50IHtcbiAgLnZpc2libGUtcHJpbnQtYmxvY2sge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi52aXNpYmxlLXByaW50LWlubGluZSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cbkBtZWRpYSBwcmludCB7XG4gIC52aXNpYmxlLXByaW50LWlubGluZSB7XG4gICAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi52aXNpYmxlLXByaW50LWlubGluZS1ibG9jayB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cbkBtZWRpYSBwcmludCB7XG4gIC52aXNpYmxlLXByaW50LWlubGluZS1ibG9jayB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSBwcmludCB7XG4gIC5oaWRkZW4tcHJpbnQge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXG4vKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTEVTUyBWQVJJQUJMRVNcbioqICAgICAgICAgICAgICAgIFRoaXMgc3R5bGVzaGVldCBzaG91bGQgb25seSBjb250YWluIHZhcmlhYmxlcy5cbi8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sb3IgcGFsZXR0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnRvcC1idWZmZXItMSB7XG4gIG1hcmdpbi10b3A6IDE1cHg7XG59XG4udG9wLWJ1ZmZlci0yIHtcbiAgbWFyZ2luLXRvcDogMzBweDtcbn1cbi50b3AtYnVmZmVyLTMge1xuICBtYXJnaW4tdG9wOiA0NXB4O1xufVxuLnRvcC1idWZmZXItNCB7XG4gIG1hcmdpbi10b3A6IDYwcHg7XG59XG4udG9wLWJ1ZmZlci01IHtcbiAgbWFyZ2luLXRvcDogNzVweDtcbn1cbi50b3AtYnVmZmVyLTYge1xuICBtYXJnaW4tdG9wOiA5MHB4O1xufVxuLnRvcC1idWZmZXItNyB7XG4gIG1hcmdpbi10b3A6IDEwNXB4O1xufVxuLnRvcC1idWZmZXItOCB7XG4gIG1hcmdpbi10b3A6IDEyMHB4O1xufVxuLnRvcC1idWZmZXItOSB7XG4gIG1hcmdpbi10b3A6IDEzNXB4O1xufVxuLnRvcC1idWZmZXItMTAge1xuICBtYXJnaW4tdG9wOiAxNTBweDtcbn1cbi8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xuLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElNUEFDIE1BVEVSSUFMXG4vKiAgICAgICAgICAgICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKiogTWl4aW4gbWF0ZXJpYWwgc3R5bGVkIGZvcm0gaW5wdXRzLCBvdmVycmlkaW5nIGJvb3RzdHJhcCdzIHVuZ29kbHkgcm91bmQtbmVzcy5cbi8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xuLyogREVNTyBIVE1MIC0gdXNlIHRoaXMgaHRtbCB0byB0ZXN0IGFsbCBpbXBhYyBtYXRlcmlhbCBmZWF0dXJlcy5cbjxmb3JtPlxuICA8ZGl2IGNsYXNzPVwiaW0tZm9ybS1ncm91cFwiPlxuICAgIDxzZWxlY3Q+XG4gICAgICA8b3B0aW9uPlZhbHVlIDE8L29wdGlvbj5cbiAgICAgIDxvcHRpb24+VmFsdWUgMjwvb3B0aW9uPlxuICAgIDwvc2VsZWN0PlxuICAgIDxsYWJlbCBmb3I9XCJzZWxlY3RcIiBjbGFzcz1cImltLWNvbnRyb2wtbGFiZWxcIj5TZWxlY3Rib3g8L2xhYmVsPjxpIGNsYXNzPVwiaW0tYmFyXCI+PC9pPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImltLWZvcm0tZ3JvdXBcIj5cbiAgICA8aW5wdXQgdHlwZT1cInRleHRcIiByZXF1aXJlZC8+XG4gICAgPGxhYmVsIGZvcj1cImlucHV0XCIgY2xhc3M9XCJpbS1jb250cm9sLWxhYmVsXCI+VGV4dGZpZWxkPC9sYWJlbD48aSBjbGFzcz1cImltLWJhclwiPjwvaT5cbiAgICA8ZGl2IGNsYXNzPVwiaW0tbWVzc2FnZXNcIj5cbiAgICAgIDxwPlRoaXMgaXMgYW4gZXJyb3IgbWVzc2FnZTwvcD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJpbS1mb3JtLWlubGluZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJpbS1mb3JtLWdyb3VwXCI+XG4gICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiByZXF1aXJlZC8+XG4gICAgICA8bGFiZWwgZm9yPVwiaW5wdXRcIiBjbGFzcz1cImltLWNvbnRyb2wtbGFiZWxcIj5JbmxpbmU8L2xhYmVsPjxpIGNsYXNzPVwiaW0tYmFyXCI+PC9pPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJpbS1mb3JtLWdyb3VwXCI+XG4gICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiByZXF1aXJlZC8+XG4gICAgICA8bGFiZWwgZm9yPVwiaW5wdXRcIiBjbGFzcz1cImltLWNvbnRyb2wtbGFiZWxcIj5JbmxpbmU8L2xhYmVsPjxpIGNsYXNzPVwiaW0tYmFyXCI+PC9pPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImltLWZvcm0tZ3JvdXBcIj5cbiAgICA8dGV4dGFyZWEgcmVxdWlyZWQ+PC90ZXh0YXJlYT5cbiAgICA8bGFiZWwgZm9yPVwidGV4dGFyZWFcIiBjbGFzcz1cImltLWNvbnRyb2wtbGFiZWxcIj5UZXh0YXJlYTwvbGFiZWw+PGkgY2xhc3M9XCJpbS1iYXJcIj48L2k+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiaW0tY2hlY2tib3hcIj5cbiAgICA8bGFiZWw+XG4gICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgY2hlY2tlZD1cImNoZWNrZWRcIi8+PGkgY2xhc3M9XCJpbS1oZWxwZXJcIj48L2k+SSdtIHRoZSBsYWJlbCBmcm9tIGEgY2hlY2tib3hcbiAgICA8L2xhYmVsPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImltLWNoZWNrYm94XCI+XG4gICAgPGxhYmVsPlxuICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiLz48aSBjbGFzcz1cImltLWhlbHBlclwiPjwvaT5JJ20gdGhlIGxhYmVsIGZyb20gYSBjaGVja2JveFxuICAgIDwvbGFiZWw+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiaW0tZm9ybS1yYWRpb1wiPlxuICAgIDxkaXYgY2xhc3M9XCJpbS1yYWRpb1wiPlxuICAgICAgPGxhYmVsPlxuICAgICAgICA8aW5wdXQgdHlwZT1cInJhZGlvXCIgbmFtZT1cInJhZGlvXCIgY2hlY2tlZD1cImNoZWNrZWRcIi8+PGkgY2xhc3M9XCJpbS1oZWxwZXJcIj48L2k+SSdtIHRoZSBsYWJlbCBmcm9tIGEgcmFkaW8gYnV0dG9uXG4gICAgICA8L2xhYmVsPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJpbS1yYWRpb1wiPlxuICAgICAgPGxhYmVsPlxuICAgICAgICA8aW5wdXQgdHlwZT1cInJhZGlvXCIgbmFtZT1cInJhZGlvXCIvPjxpIGNsYXNzPVwiaW0taGVscGVyXCI+PC9pPkknbSB0aGUgbGFiZWwgZnJvbSBhIHJhZGlvIGJ1dHRvblxuICAgICAgPC9sYWJlbD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJpbS1jaGVja2JveFwiPlxuICAgIDxsYWJlbD5cbiAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIi8+PGkgY2xhc3M9XCJpbS1oZWxwZXJcIj48L2k+SSdtIHRoZSBsYWJlbCBmcm9tIGEgY2hlY2tib3hcbiAgICA8L2xhYmVsPlxuICA8L2Rpdj5cbiAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJpbS1mYWIgaW0tcHJpbWFyeVwiPjxpPuKZpTwvaT48L2J1dHRvbj5cbiAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJpbS1mYWIgaW0td2FyblwiPjxpPuKZpTwvaT48L2J1dHRvbj5cbjwvZm9ybT5cbiovXG4vKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cbi8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTE9CQUwgU1RZTEVTXG4qKiAgICAgICAgVGhpcyBzdHlsZXNoZWV0IHNob3VsZCBvbmx5IGNvbnRhaW4gc3R5bGVzIGFwcGxpZWQgZ2xvYmFsIG9yIGluXG4qKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAyIG9yIG1vcmUgY29tcG9uZW50cy5cbi8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xuYm9keSB7XG4gIGhlaWdodDogMTAxJSAhaW1wb3J0YW50O1xufVxuLmFuYWx5dGljcyBoMiB7XG4gIG1hcmdpbi10b3A6IDJweDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBjb2xvcjogIzVCNjY2Nztcbn1cbi5hbmFseXRpY3MgaDMge1xuICBtYXJnaW46IDBweDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBjb2xvcjogIzVCNjY2NztcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgbWFyZ2luLXRvcDogMHB4O1xufVxuLmFuYWx5dGljcyBoNCB7XG4gIGNvbG9yOiAjNUI2NjY3O1xuICBmb250LXNpemU6IDE2cHg7XG59XG4uYW5hbHl0aWNzIC5wb3NpdGl2ZSxcbi5hbmFseXRpY3MgLmdyZWVuIHtcbiAgY29sb3I6IGdyZWVuICFpbXBvcnRhbnQ7XG59XG4uYW5hbHl0aWNzIC5uZWdhdGl2ZSxcbi5hbmFseXRpY3MgLnJlZCB7XG4gIGNvbG9yOiAjZWQxZTc5ICFpbXBvcnRhbnQ7XG59XG4uYW5hbHl0aWNzIC5wb3NpdGl2ZTIge1xuICBjb2xvcjogIzNmYzRmZiAhaW1wb3J0YW50O1xufVxuLmFuYWx5dGljcyAubmVnYXRpdmUyIHtcbiAgY29sb3I6ICMxZGU5YjYgIWltcG9ydGFudDtcbn1cbi5hbmFseXRpY3MgYSB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogIzk3N2JmMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmFuYWx5dGljcyAuaW5wdXQtZ3JvdXAge1xuICB3aWR0aDogMTAwJTtcbn1cbi5hbmFseXRpY3Mgc2VsZWN0IHtcbiAgbWFyZ2luLXRvcDogNXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgaGVpZ2h0OiAzMnB4O1xufVxuLmFuYWx5dGljcyBwcmUge1xuICBmb250LXNpemU6IDEycHg7XG4gIHBhZGRpbmc6IDBweDtcbiAgbWFyZ2luOiAxcHggMHB4IDhweCAwcHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCA6Oi13ZWJraXQtc2Nyb2xsYmFyLFxuLmFuYWx5dGljcyBrcGlzLWJhciAua3BpIDo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICB3aWR0aDogNnB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIsXG4uYW5hbHl0aWNzIGtwaXMtYmFyIC5rcGkgOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2ODk2YjI7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyLFxuLmFuYWx5dGljcyBrcGlzLWJhciAua3BpIDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzlhMmJiO1xufVxuLmFuYWx5dGljcyAubm9wYWRkaW5nIHtcbiAgcGFkZGluZzogMDtcbn1cbi5hbmFseXRpY3MgLm5vbWFyZ2luIHtcbiAgbWFyZ2luOiAwO1xufVxuLmFuYWx5dGljcyAuYnRuLmJ0bi1zaGFkZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTcyNjJkO1xuICBib3JkZXI6IHNvbGlkIDFweCAjMGUxODFjO1xuICBjb2xvcjogIzYyNmQ2ZDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cbi5hbmFseXRpY3MgLmJ0bi5idG4tc2hhZGVkOmhvdmVyIHtcbiAgY29sb3I6ICM2ZTdhN2E7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMDM0M2U7XG59XG4uYW5hbHl0aWNzIC5wcmljZSB7XG4gIGZvbnQtd2VpZ2h0OiA5MDA7XG4gIGZvbnQtc2l6ZTogMjJweDtcbiAgY29sb3I6ICM1QjY2Njc7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLXRvcDogMzBweDtcbn1cbi5hbmFseXRpY3MgLmN1cnJlbmN5IHtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBjb2xvcjogIzVCNjY2NztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogIzliYTZhNztcbn1cbi5hbmFseXRpY3MgLmxlZ2VuZCB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6ICM1QjY2Njc7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBjb2xvcjogI2M0Y2FjYTtcbn1cbi5hbmFseXRpY3MgLmxvYWRlciB7XG4gIGhlaWdodDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG4uYW5hbHl0aWNzIC5sb2FkZXIgaSB7XG4gIGNvbG9yOiAjNjdCQkU5O1xufVxuLmFuYWx5dGljcyAubG9hZGVyIHAge1xuICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuLmFuYWx5dGljcyAucmlnaHQtcGFuZWwge1xuICBib3JkZXItbGVmdDogc29saWQgMXB4ICNlNmU2ZTY7XG59XG4uYW5hbHl0aWNzIC5zZWxlY3RvciB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6ICM2MjZkNmQ7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5hbmFseXRpY3MgLnRpbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmN2Y3O1xuICBib3gtc2hhZG93OiAwcHggN3B4IDEwcHggLTdweCAjMTcyNjJkO1xuICBoZWlnaHQ6IDQ1cHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5hbmFseXRpY3MgLnRpbGU6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTJmMmZmO1xufVxuLmFuYWx5dGljcyAudGlsZSAuY29sb3JlZC1hcmVhIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzNGQzRGRjtcbiAgaGVpZ2h0OiAxMDAlO1xuICBmbG9hdDogcmlnaHQ7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIHBhZGRpbmc6IDVweCAxMHB4O1xuICBtaW4td2lkdGg6IDglO1xufVxuLmFuYWx5dGljcyAudGlsZSAuY29sb3JlZC1hcmVhLnNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk3N2JmMDtcbn1cbi5hbmFseXRpY3MgLnRpbGUgLm1haW4tdGV4dCB7XG4gIGNvbG9yOiAjNUI2NjY3O1xuICBwYWRkaW5nOiAyMHB4IDBweCAwcHggNXB4O1xuICBoZWlnaHQ6IDEwMCU7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBtYXgtaGVpZ2h0OiAyMDBweDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBwYWRkaW5nOiAwcHggMTVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1saW5lcy1jb250YWluZXIgLnJvdy53aWRnZXQtbGluZSB7XG4gIHBhZGRpbmc6IDVweDtcbiAgY29sb3I6ICM2MjZkNmQ7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC5yb3cud2lkZ2V0LWxpbmUuaGVhZGVyIHtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb2xvcjogIzliYTZhNztcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuYW5hbHl0aWNzIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC5yb3cud2lkZ2V0LWxpbmUge1xuICAgIG1hcmdpbjogaW5oZXJpdDtcbiAgICBtYXJnaW4tbGVmdDogLTNweDtcbiAgICBtYXJnaW4tcmlnaHQ6IC0zcHg7XG4gICAgcGFkZGluZzogMnB4O1xuICB9XG4gIC5hbmFseXRpY3MgLndpZGdldC1saW5lcy1jb250YWluZXIgLnJvdy53aWRnZXQtbGluZSA+IFtjbGFzcyo9J2NvbC0nXSB7XG4gICAgcGFkZGluZy1sZWZ0OiAzcHg7XG4gICAgcGFkZGluZy1yaWdodDogM3B4O1xuICB9XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC5yb3cud2lkZ2V0LWxpbmUgaS5mYSB7XG4gIG1pbi13aWR0aDogMTJweDtcbiAgbWluLWhlaWdodDogMTJweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1saW5lcy1jb250YWluZXIgLnJvdyAuZGFzaGVkIHtcbiAgYm9yZGVyLWJvdHRvbTogZGFzaGVkIDFweCAjZGZlMmUyO1xuICBwYWRkaW5nLWJvdHRvbTogM3B4O1xuICBtYXJnaW4tYm90dG9tOiAzcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC5yb3cubGluZXMtZ3JvdXAge1xuICBib3JkZXItdG9wOiBzb2xpZCAxcHggI2U2ZWRlZTtcbn1cbi52ZXJ0aWNhbC1zY3JvbGwge1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG59XG4uaG9yaXpvbnRhbC1zY3JvbGwge1xuICBvdmVyZmxvdy14OiBzY3JvbGw7XG59XG4udG9vbHRpcC5pbXBhYy13aWRnZXRzLXRvb2x0aXAgLnRvb2x0aXAtaW5uZXIubmctYmluZGluZyB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMzI1Mjg7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi50b29sdGlwLmltcGFjLXdpZGdldHMtdG9vbHRpcCAudG9vbHRpcC1pbm5lci5uZy1iaW5kaW5nIHN0cm9uZyB7XG4gIGNvbG9yOiAjZGFlMTczO1xufVxuLnNvcnRhYmxlLXRpdGxlIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnNvcnRhYmxlLXRpdGxlIGRpdiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbmRpdltuZy1tZXNzYWdlc10ge1xuICBjb2xvcjogI0ZGMDAwMDtcbn1cbi5oYXMtZXJyb3IgLmZvcm0tY29udHJvbCB7XG4gIGJvcmRlci1jb2xvcjogI2UwMWY3NDtcbn1cbi5oYXMtZXJyb3IgLmZvcm0tY29udHJvbDpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogI2UwMWY3NDtcbn1cbi5oYXMtc3VjY2VzcyAuZm9ybS1jb250cm9sIHtcbiAgYm9yZGVyLWNvbG9yOiAjMDBlNWYwO1xufVxuLmhhcy1zdWNjZXNzIC5mb3JtLWNvbnRyb2w6Zm9jdXMge1xuICBib3JkZXItY29sb3I6ICMwMGU1ZjA7XG59XG4ucm93Lm5vLWd1dHRlcnMge1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuW2NsYXNzXj1cImNvbC1cIl0ubm8tZ3V0dGVycyxcbltjbGFzcyo9XCIgY29sLVwiXS5uby1ndXR0ZXJzIHtcbiAgcGFkZGluZy1yaWdodDogMDtcbiAgcGFkZGluZy1sZWZ0OiAwO1xufVxuQG1lZGlhIHByaW50IHtcbiAgYm9keSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbiAgfVxuICAuYW5hbHl0aWNzIHtcbiAgICBwYWRkaW5nLXRvcDogMHB4ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFuYWx5dGljcyAjbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgLnRpdGxlLWNvbnRhaW5lciB7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcbiAgfVxuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSB7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICB9XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5jaGFydC1jb250YWluZXIge1xuICAgIG1heC13aWR0aDogMjcwcHg7XG4gICAgbWFyZ2luOiBhdXRvO1xuICB9XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5jaGFydC1jb250YWluZXIgY2FudmFzIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIGhlaWdodDogMTAwJSAhaW1wb3J0YW50O1xuICB9XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5yaWdodC1wYW5lbCB7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICAgIGJvcmRlci1sZWZ0OiAwO1xuICB9XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5yaWdodC1wYW5lbCAuY2hhcnQtY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IGluaGVyaXQ7XG4gICAgbWF4LWhlaWdodDogaW5oZXJpdDtcbiAgfVxuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAucmlnaHQtcGFuZWwgLmNoYXJ0LWNvbnRhaW5lciBjYW52YXMge1xuICAgIHdpZHRoOiA4MCUgIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IDgwJSAhaW1wb3J0YW50O1xuICB9XG4gICoge1xuICAgIHRyYW5zaXRpb246IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuLyoqXG4gKiAgRG8gbm90IHJlbW92ZSB0aGlzIGNvbW1lbnRzIGJlbGxvdy4gSXQncyB0aGUgbWFya2VycyB1c2VkIGJ5IGd1bHAtaW5qZWN0IHRvIGluamVjdFxuICogIGFsbCB5b3VyIGxlc3MgZmlsZXMgYXV0b21hdGljYWxseVxuICovXG4vKiBpbmplY3Q6aW1wb3J0cyAqL1xuLmtwaS1hbGVydHMtc2V0dGluZ3MgLm1vZGFsLWhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbn1cbi5rcGktYWxlcnRzLXNldHRpbmdzIC5tb2RhbC1ib2R5IHtcbiAgbGluZS1oZWlnaHQ6IDI7XG59XG4ua3BpLWFsZXJ0cy1zZXR0aW5ncyAubW9kYWwtYm9keSB1bCB7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG59XG4ua3BpLWFsZXJ0cy1zZXR0aW5ncyAubW9kYWwtYm9keSB1bCA+IGxpLmxpc3QtZ3JvdXAtaXRlbSB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDZweCAxNXB4O1xuICBjb2xvcjogIzliYTZhNztcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG4ua3BpLWFsZXJ0cy1zZXR0aW5ncyAubW9kYWwtYm9keSB1bCA+IGxpLmxpc3QtZ3JvdXAtaXRlbSAuYWxlcnQtdG9nZ2xlOmhvdmVyIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmtwaS1hbGVydHMtc2V0dGluZ3MgLm1vZGFsLWJvZHkgdWwgPiBsaS5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlIHtcbiAgY29sb3I6ICMzNThmZGM7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWNvbG9yOiAjYzRjYWNhO1xufVxuLmtwaS1hbGVydHMtc2V0dGluZ3MgLm1vZGFsLWJvZHkgLmZhLmZhLXRvZ2dsZS1vbixcbi5rcGktYWxlcnRzLXNldHRpbmdzIC5tb2RhbC1ib2R5IC5mYS5mYS10b2dnbGUtb2ZmIHtcbiAgZm9udC1zaXplOiAxN3B4O1xuICBtYXJnaW4tcmlnaHQ6IDhweDtcbn1cbi5rcGktYWxlcnRzLXNldHRpbmdzIC5tb2RhbC1ib2R5IHVsLnJlY2lwaWVudHMtbGlzdCB7XG4gIGhlaWdodDogNzVweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzRjYWNhO1xufVxuLmtwaS1hbGVydHMtc2V0dGluZ3MgLm1vZGFsLWJvZHkgdWwucmVjaXBpZW50cy1saXN0IGxpIHtcbiAgYm9yZGVyOiBub25lO1xufVxuLmtwaS1hbGVydHMtc2V0dGluZ3MgLm1vZGFsLWJvZHkgaW5wdXQucmVjaXBpZW50LXNlYXJjaCB7XG4gIGNvbG9yOiBibGFjaztcbiAgd2lkdGg6IDEwMCU7XG59XG4ua3BpLWFsZXJ0cy1zZXR0aW5ncyAubW9kYWwtYm9keSB1bC5hdmFpbGFibGUge1xuICBtYXJnaW4tdG9wOiAwcHg7XG59XG4uYW5hbHl0aWNzIHtcbiAgcGFkZGluZy10b3A6IDUwcHg7XG4gIG1hcmdpbi1sZWZ0OiAxMDBweDtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk5MnB4KSB7XG4gIC5hbmFseXRpY3Mge1xuICAgIHBhZGRpbmctdG9wOiAxNTBweDtcbiAgfVxufVxuLmFuYWx5dGljcy5wZGYtbW9kZSB7XG4gIHBhZGRpbmctdG9wOiAyMHB4O1xufVxuLmFuYWx5dGljcy5zaG93LWRoYiB7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMXM7XG4gIG9wYWNpdHk6IDE7XG59XG4uYW5hbHl0aWNzLmhpZGUtZGhiIHtcbiAgb3BhY2l0eTogMDtcbn1cbi5hbmFseXRpY3MgI2Rhc2hib2FyZC1oZWFkaW5nIGltZyB7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tcmlnaHQ6IDE1cHg7XG4gIG1heC13aWR0aDogMjAwcHg7XG4gIG1heC1oZWlnaHQ6IDE1MHB4O1xufVxuLmFuYWx5dGljcyAjZGFzaGJvYXJkLWhlYWRpbmcgaW1nLnBkZi1tb2RlOmhvdmVyIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmFuYWx5dGljcyAjZGFzaGJvYXJkLWhlYWRpbmcgLmNhcHRpb24ge1xuICBmb250LXNpemU6IDE0cHg7XG4gIG1hcmdpbjogNXB4IDBweDtcbn1cbi5hbmFseXRpY3MgI3N1Yi1tZW51IHtcbiAgbWFyZ2luLXRvcDogMTVweDtcbn1cbi5hbmFseXRpY3MgI3N1Yi1tZW51IGgzIHtcbiAgZm9udC1zaXplOiAyNnB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICBjb2xvcjogIzIzMzg0NTtcbn1cbi5hbmFseXRpY3MgI3N1Yi1tZW51IC5mYS5mYS10aW1lcyB7XG4gIG1hcmdpbjogNnB4O1xuICBjb2xvcjogIzNkNjE3ODtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmbG9hdDogcmlnaHQ7XG59XG4uYW5hbHl0aWNzICN3aWRnZXQtc2VsZWN0b3Ige1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjMzODQ1O1xuICBjb2xvcjogd2hpdGU7XG4gIHBhZGRpbmc6IDBweCA0NXB4IDEwcHggNDVweDtcbiAgbWFyZ2luOiAxMHB4IC00NXB4O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC8qIENocm9tZS9TYWZhcmkgKi9cbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgLyogRmlyZWZveCAqL1xuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC8qIElFMTArICovXG4gIC8qIFJ1bGVzIGJlbG93IG5vdCBpbXBsZW1lbnRlZCBpbiBicm93c2VycyB5ZXQgKi9cbiAgLW8tdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciB7XG4gICAgcGFkZGluZzogMCAxNXB4IDEwcHggMTVweDtcbiAgICBtYXJnaW46IDA7XG4gIH1cbn1cbi5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciAudGl0bGUge1xuICBwYWRkaW5nOiAxNXB4IDBweDtcbiAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4ICMyZDQ4NTk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4uYW5hbHl0aWNzICN3aWRnZXQtc2VsZWN0b3IgLnRpdGxlIHAuaW5zdHJ1Y3Rpb24ge1xuICBmbGV4LWdyb3c6IDE7XG4gIG1hcmdpbjogMDtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciAudGl0bGUgcC5pbnN0cnVjdGlvbiB7XG4gICAgd2lkdGg6IDUwJTtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gIH1cbn1cbi5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciAudGl0bGUgLndpZGdldC1hZGRlZC5iYWRnZSB7XG4gIG1hcmdpbi1yaWdodDogMTBweDtcbiAgb3BhY2l0eTogMDtcbn1cbi5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciAudGl0bGUgLmZhLmNsb3NlLXNlbGVjdG9yIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgcGFkZGluZzogNnB4O1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC50aXRsZSAuZmEuY2xvc2Utc2VsZWN0b3I6aG92ZXIge1xuICBjb2xvcjogIzk5OTk5OTtcbn1cbi5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciAudG9wLWNvbnRhaW5lciB7XG4gIG1hcmdpbjogMTVweCAwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG59XG4uYW5hbHl0aWNzICN3aWRnZXQtc2VsZWN0b3IgLnNlY3Rpb24taGVhZGVyIHtcbiAgcGFkZGluZzogMTBweCAyMHB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbWluLWhlaWdodDogNDBweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciAuc2VjdGlvbi1saW5lcyB7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgaGVpZ2h0OiAyMDBweDtcbiAgbWFyZ2luLXJpZ2h0OiAtMTBweDtcbiAgbWFyZ2luLWxlZnQ6IDBweDtcbn1cbi5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciAuc2VjdGlvbi1saW5lcyBwIHtcbiAgcGFkZGluZzogNXB4O1xuICBtYXJnaW46IDBweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC5zZWN0aW9uLWxpbmVzIHA6aG92ZXIsXG4uYW5hbHl0aWNzICN3aWRnZXQtc2VsZWN0b3IgLnNlY3Rpb24tbGluZXMgcC5zZWxlY3RlZCB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciAuc2VjdGlvbi1saW5lczo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICB3aWR0aDogNnB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciAuc2VjdGlvbi1saW5lczo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjg0MDRmO1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC5zZWN0aW9uLWxpbmVzOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyZDQ4NTk7XG59XG4uYW5hbHl0aWNzICN3aWRnZXQtc2VsZWN0b3IgLmNhdGVnb3JpZXMtc2VjdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxOTI4MzE7XG4gIHBhZGRpbmctYm90dG9tOiAxNXB4O1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC5jYXRlZ29yaWVzLXNlY3Rpb24gPiAuc2VjdGlvbi1saW5lcyA+IFtjbGFzcyo9J2NvbC0nXTpmaXJzdC1jaGlsZCB7XG4gIHBhZGRpbmc6IDNweCAxMnB4O1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC5jYXRlZ29yaWVzLXNlY3Rpb24gPiAuc2VjdGlvbi1saW5lcyAubGluZS1pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFlMzAzYjtcbn1cbi5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciAuY2F0ZWdvcmllcy1zZWN0aW9uID4gLnNlY3Rpb24tbGluZXMgLmxpbmUtaXRlbS5zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5NzdiZjA7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAtd2Via2l0LWJveC1zaGFkb3c6IC0ycHggMnB4IDEwcHggLTRweCBibGFjaztcbiAgYm94LXNoYWRvdzogLTJweCAycHggMTBweCAtNHB4IGJsYWNrO1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC5jYXRlZ29yaWVzLXNlY3Rpb24gLmFycm93LWljb24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMzNweDtcbiAgcmlnaHQ6IC0xMXB4O1xuICB6LWluZGV4OiAxO1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC5jYXRlZ29yaWVzLXNlY3Rpb24gLmFycm93LWljb24gLnNxdWFyZSB7XG4gIHdpZHRoOiA1MHB4O1xuICBoZWlnaHQ6IDMwcHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxMHB4O1xuICByaWdodDogMTdweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk3N2JmMDtcbn1cbi5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciAuY2F0ZWdvcmllcy1zZWN0aW9uIC5hcnJvdy1pY29uIGkuZmEuZmEtY2FyZXQtcmlnaHQge1xuICBmb250LXNpemU6IDUycHg7XG4gIGNvbG9yOiAjOTc3YmYwO1xuICBmbG9hdDogcmlnaHQ7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtMS41cHg7XG4gIHJpZ2h0OiAwcHg7XG59XG4uYW5hbHl0aWNzICN3aWRnZXQtc2VsZWN0b3IgLndpZGdldHMtc2VjdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxZTMwM2I7XG4gIHBhZGRpbmctYm90dG9tOiAxNXB4O1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC53aWRnZXRzLXNlY3Rpb24gPiAuc2VjdGlvbi1oZWFkZXIge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiAjOTc3YmYwO1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC53aWRnZXRzLXNlY3Rpb24gPiAuc2VjdGlvbi1saW5lcyB7XG4gIHBhZGRpbmc6IDNweCAwcHg7XG59XG4uYW5hbHl0aWNzICN3aWRnZXQtc2VsZWN0b3IgLndpZGdldHMtc2VjdGlvbiA+IC5zZWN0aW9uLWxpbmVzIC5mYS5mYS1wbHVzLWNpcmNsZSB7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luLXRvcDogM3B4O1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC53aWRnZXRzLXNlY3Rpb24gPiAuc2VjdGlvbi1saW5lcyA+IC5saW5lLWl0ZW1zLWdyaWQge1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBoZWlnaHQ6IDAlO1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC53aWRnZXRzLXNlY3Rpb24gPiAuc2VjdGlvbi1saW5lcyA+IC5saW5lLWl0ZW1zLWdyaWQgPiAuZ3JpZC1pdGVtIHtcbiAgcGFkZGluZzogMCAxM3B4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWdyb3c6IDE7XG4gIGZsZXg6IDAgMzEuMzMlO1xuICBtYXJnaW46IDAgMSU7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCAjMjMzODQ1O1xuICBtaW4taGVpZ2h0OiAwcHg7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OTJweCkge1xuICAuYW5hbHl0aWNzICN3aWRnZXQtc2VsZWN0b3IgLndpZGdldHMtc2VjdGlvbiA+IC5zZWN0aW9uLWxpbmVzID4gLmxpbmUtaXRlbXMtZ3JpZCA+IC5ncmlkLWl0ZW0ge1xuICAgIGZsZXg6IDAgMTAwJTtcbiAgfVxufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC53aWRnZXRzLXNlY3Rpb24gPiAuc2VjdGlvbi1saW5lcyA+IC5saW5lLWl0ZW1zLWdyaWQgPiAuZ3JpZC1pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE5MjgzMTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cbi5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciAud2lkZ2V0cy1zZWN0aW9uID4gLnNlY3Rpb24tbGluZXMgPiAubGluZS1pdGVtcy1ncmlkID4gLmdyaWQtaXRlbSBwLmxpbmUtaXRlbSB7XG4gIGZsZXgtZ3JvdzogMTtcbn1cbi5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciAuYm90dG9tIHtcbiAgaGVpZ2h0OiAyMHB4O1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC5ib3R0b20gPiAuc3VnZ2VzdGlvbiB7XG4gIGZsb2F0OiByaWdodDtcbiAgb3BhY2l0eTogMC43O1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC5ib3R0b20gPiAuc3VnZ2VzdGlvbiBhIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC5ib3R0b20gPiAuc3VnZ2VzdGlvbiBhOmhvdmVyIHtcbiAgY29sb3I6ICMwMGU1ZjA7XG59XG4uYW5hbHl0aWNzICN3aWRnZXQtc2VsZWN0b3IgLmJvdHRvbSA+IC5zdWdnZXN0aW9uOmhvdmVyIHtcbiAgb3BhY2l0eTogMTtcbn1cbi5hbmFseXRpY3MgI2Rhc2hib2FyZC1zZXR0aW5ncy1wYW5lbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLXRvcDogNXB4O1xufVxuLmFuYWx5dGljcyAjZGFzaGJvYXJkLXNldHRpbmdzLXBhbmVsID4gZGl2IHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbn1cbi5hbmFseXRpY3MgI2Rhc2hib2FyZC1zZXR0aW5ncy1wYW5lbCA+IGRpdiA+ICoge1xuICBtYXJnaW46IDBweCAzcHg7XG59XG4uYW5hbHl0aWNzICNkYXNoYm9hcmQtc2V0dGluZ3MtcGFuZWwgc2VsZWN0IHtcbiAgbWFyZ2luOiAwO1xuICBoZWlnaHQ6IDM0cHg7XG4gIHBhZGRpbmctdG9wOiAxcHg7XG59XG4uYW5hbHl0aWNzICNuby13aWRnZXRzLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWluLWhlaWdodDogMTUwcHg7XG59XG4uYW5hbHl0aWNzICNuby13aWRnZXRzLWNvbnRhaW5lciBpbWcuYmcge1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIG1pbi13aWR0aDogMTAwJTtcbiAgbWluLWhlaWdodDogMTAwJTtcbn1cbi5hbmFseXRpY3MgI25vLXdpZGdldHMtY29udGFpbmVyIC5pbXBhYy1pbmZvLW1lc3NhZ2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgd2lkdGg6IDEwMCU7XG59XG4uYW5hbHl0aWNzICNuby13aWRnZXRzLWNvbnRhaW5lciAuaW1wYWMtaW5mby1tZXNzYWdlIC5pbmZvLXRleHQge1xuICBmb250LXNpemU6IDI1cHg7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIHBhZGRpbmc6IDIwcHg7XG4gIG1pbi1oZWlnaHQ6IDExNXB4O1xuICBjb2xvcjogd2hpdGU7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjMsIDM4LCA0NSwgMC43KTtcbn1cbi5hbmFseXRpY3MgI3dpZGdldHMtc2VjdGlvbiAjd2lkZ2V0cy1jb250YWluZXIge1xuICBtaW4taGVpZ2h0OiA3MDBweDtcbn1cbi5hbmFseXRpY3MgI3dpZGdldHMtc2VjdGlvbiAucGxhY2VIb2xkZXJCb3gge1xuICBtYXJnaW46IDEycHg7XG4gIGhlaWdodDogMjY3cHg7XG4gIHdpZHRoOiAzMDBweDtcbiAgZmxvYXQ6IGxlZnQ7XG4gIGJvcmRlcjogMnB4IGRhc2hlZCAjYWJjNGM2O1xuICBiYWNrZ3JvdW5kOiBub25lO1xufVxuLmFuYWx5dGljcy5sb2FkLWZhaWxlZCBwIHtcbiAgZm9udC1zaXplOiAyMnB4O1xufVxuLmFuYWx5dGljcy5sb2FkLWZhaWxlZCAuc2Vjb25kLW1zZyBwIHtcbiAgY29sb3I6ICNlMDFmNzQ7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cbi50b29sdGlwLmltcGFjLXdpZGdldC1zZWxlY3Rvci10b29sdGlwIC50b29sdGlwLWlubmVyLm5nLWJpbmRpbmcge1xuICBmb250LXNpemU6IDE0cHg7XG59XG4uaW1wYWMtd2lkZ2V0LXN1Z2dlc3Rpb24gLm1vZGFsLWJvZHkgaW5wdXQsXG4uaW1wYWMtd2lkZ2V0LXN1Z2dlc3Rpb24gLm1vZGFsLWJvZHkgdGV4dGFyZWEge1xuICB3aWR0aDogMTAwJTtcbiAgY29sb3I6IGJsYWNrO1xufVxuLmltcGFjLXdpZGdldC1zdWdnZXN0aW9uIC5tb2RhbC1ib2R5IHRleHRhcmVhIHtcbiAgaGVpZ2h0OiAxNTBweDtcbn1cbi5pbXBhYy13aWRnZXQtc3VnZ2VzdGlvbiAubW9kYWwtYm9keSAudGhhbmtzLW1lc3NhZ2Uge1xuICBjb2xvcjogI2RhZTE3Mztcbn1cbi5tb2RhbC1mb290ZXIgLmxvYWRlciB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5hbmFseXRpY3MgLmRhc2hib2FyZC1jcmVhdGUgLmJ0bi1jcmVhdGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTc3YmYwO1xufVxuLm1vZGFsLmltcGFjLWRhc2hib2FyZC1jcmVhdGUgaDEge1xuICBmb250LXNpemU6IDI0cHg7XG59XG4ubW9kYWwuaW1wYWMtZGFzaGJvYXJkLWNyZWF0ZSAuZmEuZmEtdGltZXMge1xuICBmbG9hdDogcmlnaHQ7XG4gIGNvbG9yOiAjY2NjO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ubW9kYWwuaW1wYWMtZGFzaGJvYXJkLWNyZWF0ZSAuY29udHJvbC1sYWJlbCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4ubW9kYWwuaW1wYWMtZGFzaGJvYXJkLWNyZWF0ZSAubW9kYWwtZm9vdGVyIC5sb2FkZXIge1xuICBjb2xvcjogd2hpdGU7XG59XG4jbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgYSB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG4jbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgPiBkaXY6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2FiYzRjNjtcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAuYnV0dG9ucy1iYXItcm93IHtcbiAgbWFyZ2luLXRvcDogNTRweDtcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAuYnV0dG9ucy1iYXItcm93LnBkZi1tb2RlIHtcbiAgbWFyZ2luLXRvcDogMHB4O1xufVxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIC5idXR0b25zLWJhciB7XG4gIHBhZGRpbmc6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAuYnV0dG9ucy1iYXIgLmJ0biB7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luOiAzcHg7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAuYnV0dG9ucy1iYXIgLnRpdGxlLWNvbnRhaW5lciBoMSB7XG4gIG1hcmdpbjogMHB4O1xuICBjb2xvcjogYmxhY2s7XG4gIGN1cnNvcjogYXV0bztcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAuYnV0dG9ucy1iYXIgLmRyb3Bkb3duLWNvbnRhaW5lciAuZGFzaGJvYXJkLXRpdGxlIHtcbiAgY29sb3I6ICM5NzdiZjA7XG4gIGRpc3BsYXk6IGlubGluZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIC5idXR0b25zLWJhciAuZHJvcGRvd24tY29udGFpbmVyIC5kYXNoYm9hcmQtdGl0bGU6aG92ZXIge1xuICBjb2xvcjogIzczNGRlYjtcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAuYnV0dG9ucy1iYXIgLmRyb3Bkb3duLWNvbnRhaW5lciAuZGFzaGJvYXJkLXRpdGxlIGkuZmEuZmEtcGVuY2lsIHtcbiAgbWFyZ2luLWxlZnQ6IDIwcHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAuYnV0dG9ucy1iYXIgLmRyb3Bkb3duLWNvbnRhaW5lciAuZGFzaGJvYXJkLXRpdGxlIGkuZmEuZmEtcGVuY2lsOmhvdmVyIHtcbiAgY29sb3I6ICNkYWUxNzM7XG59XG4jbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgLmJ1dHRvbnMtYmFyIC5kcm9wZG93bi1jb250YWluZXIgLmRhc2hib2FyZC1zZWxlY3Qge1xuICBtYXJnaW46IDVweCAwcHggMTBweCAzMHB4O1xuICBoZWlnaHQ6IGF1dG87XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgIzk3N2JmMDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM5NzdiZjA7XG4gIHdpZHRoOiAzMDBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZWRlZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIC5idXR0b25zLWJhciAuZHJvcGRvd24tY29udGFpbmVyIC5kYXNoYm9hcmQtc2VsZWN0IC5vcHRpb24ge1xuICBjb2xvcjogIzE3MjYyZDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAuYnV0dG9ucy1iYXIgLmRyb3Bkb3duLWNvbnRhaW5lciAuZGFzaGJvYXJkLXNlbGVjdCAub3B0aW9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4jbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgLmJ1dHRvbnMtYmFyIC5kcm9wZG93bi1jb250YWluZXIgLmRhc2hib2FyZC1zZWxlY3QgLm9wdGlvbi5kYXNoYm9hcmQtY3JlYXRlIHtcbiAgaGVpZ2h0OiAzM3B4O1xufVxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIC5idXR0b25zLWJhciAuZHJvcGRvd24tY29udGFpbmVyIC5kYXNoYm9hcmQtc2VsZWN0IC5vcHRpb24uZGFzaGJvYXJkLWNyZWF0ZSAuYnRuIHtcbiAgZmxvYXQ6IG5vbmU7XG4gIHdpZHRoOiAxMDAlO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBtYXJnaW46IDBweDtcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xufVxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIC5idXR0b25zLWJhciAuZHJvcGRvd24tY29udGFpbmVyIC5kYXNoYm9hcmQtc2VsZWN0IC5vcHRpb24gaS5mYS5mYS1wZW5jaWwge1xuICBmbG9hdDogcmlnaHQ7XG4gIHBhZGRpbmctdG9wOiA3cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2lkdGg6IDE1JTtcbiAgaGVpZ2h0OiAzMHB4O1xufVxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIC5idXR0b25zLWJhciAuZHJvcGRvd24tY29udGFpbmVyIC5kYXNoYm9hcmQtc2VsZWN0IC5vcHRpb24gaS5mYS5mYS1wZW5jaWw6aG92ZXIge1xuICBjb2xvcjogIzczNGRlYjtcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAuYnV0dG9ucy1iYXIgLmRyb3Bkb3duLWNvbnRhaW5lciAuZGFzaGJvYXJkLXNlbGVjdCAub3B0aW9uIHNwYW4ubmFtZSB7XG4gIHdpZHRoOiA4NSU7XG4gIGhlaWdodDogMzBweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiA1cHggMTBweCA1cHggMTBweDtcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAuYnV0dG9ucy1iYXIgLmRyb3Bkb3duLWNvbnRhaW5lciAuY2hhbmdlLW5hbWUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMzBweDtcbiAgbGVmdDogMjBweDtcbiAgd2lkdGg6IDYwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE3MjYyZDtcbiAgY29sb3I6IHdoaXRlO1xuICBwYWRkaW5nOiAxMHB4O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwcHggMHB4IDI1cHggNHB4IGJsYWNrO1xuICBib3gtc2hhZG93OiAwcHggMHB4IDI1cHggNHB4IGJsYWNrO1xuICB6LWluZGV4OiA1MDtcbiAgYm9yZGVyOiBzb2xpZCAxcHggd2hpdGU7XG59XG4jbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgLmJ1dHRvbnMtYmFyIC5kcm9wZG93bi1jb250YWluZXIgLmNoYW5nZS1uYW1lIC5mb3JtLWNvbnRyb2wge1xuICBoZWlnaHQ6IDI1cHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG4jbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgLmJ1dHRvbnMtYmFyIC5kcm9wZG93bi1jb250YWluZXIgLmRhdGEtc291cmNlLWxhYmVsIHtcbiAgY29sb3I6ICMxNzI2MmQ7XG4gIHBhZGRpbmctbGVmdDogM3B4O1xuICBtYXJnaW46IDBweDtcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAuYnV0dG9ucy1iYXIgLmxvYWRlci1jb250YWluZXIge1xuICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG59XG4jbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgLmJ1dHRvbnMtYmFyIC5sb2FkZXItY29udGFpbmVyIC5sb2FkaW5nLXNwaW5uZXIge1xuICBjb2xvcjogIzY3QkJFOTtcbiAgZm9udC1zaXplOiA0MHB4O1xufVxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIC5uYXYtdGFicyB7XG4gIGJvcmRlci1ib3R0b206IDA7XG59XG4jbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgLm5hdi5uYXYtdGFicyBsaTpsYXN0LWNoaWxkID4gYSxcbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAubmF2Lm5hdi1waWxscyBsaTpsYXN0LWNoaWxkID4gYSB7XG4gIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG59XG4jbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgLm5hdi5uYXYtdGFicyBsaTpsYXN0LWNoaWxkID4gYSB0YWItaGVhZGluZyBhLFxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIC5uYXYubmF2LXBpbGxzIGxpOmxhc3QtY2hpbGQgPiBhIHRhYi1oZWFkaW5nIGEge1xuICBwb3NpdGlvbjogc3RhdGljO1xufVxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIC5uYXYubmF2LXRhYnMgbGkgPiBhIHtcbiAgcGFkZGluZzogMTBweCA4cHggMTBweCAxNXB4O1xuICBtYXJnaW46IDAgMnB4IDAgMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNhYmM0YzY7XG4gIGNvbG9yOiBibGFjaztcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAubmF2Lm5hdi10YWJzIGxpLmFjdGl2ZSA+IGEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBjb2xvcjogIzk3N2JmMDtcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAubmF2Lm5hdi10YWJzIGxpOmxhc3QtY2hpbGQuYWN0aXZlID4gYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIC5uYXYubmF2LXBpbGxzIGxpID4gYSB7XG4gIG1pbi13aWR0aDogMHB4O1xuICBwYWRkaW5nLXJpZ2h0OiA4cHg7XG59XG4jbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgLm5hdi5uYXYtcGlsbHMgbGk6bGFzdC1jaGlsZCB0YWItaGVhZGluZyBhIHtcbiAgbWFyZ2luLWxlZnQ6IDJweDtcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAubmF2Lm5hdi1waWxscyBsaTpsYXN0LWNoaWxkLmFjdGl2ZSA+IGEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjRmNGY0O1xufVxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIHRhYi1oZWFkaW5nIGEuY2xvc2UtbGluayB7XG4gIGJvcmRlci1ib3R0b206IDBweCBzb2xpZDtcbiAgbWFyZ2luLWxlZnQ6IDEycHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAtOXB4O1xuICByaWdodDogMXB4O1xuICBjb2xvcjogYmxhY2s7XG59XG5kYXNoYm9hcmQtdGVtcGxhdGVzLXNlbGVjdG9yIC50ZW1wbGF0ZXMtaGVhZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbn1cbmRhc2hib2FyZC10ZW1wbGF0ZXMtc2VsZWN0b3IgLnRlbXBsYXRlcy1oZWFkZXIgLnRlbXBsYXRlcy10b2dnbGUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWdyb3c6IDE7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIGZvbnQtc2l6ZTogMjBweDtcbn1cbmRhc2hib2FyZC10ZW1wbGF0ZXMtc2VsZWN0b3IgLnRlbXBsYXRlcy1oZWFkZXIgLnRlbXBsYXRlcy10b2dnbGUgaS5mYSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbmRhc2hib2FyZC10ZW1wbGF0ZXMtc2VsZWN0b3IgLnRlbXBsYXRlcy1oZWFkZXIgLnRlbXBsYXRlcy10b2dnbGUgaS5mYS5mYS10b2dnbGUtb24ge1xuICBjb2xvcjogIzk3N2JmMDtcbn1cbmRhc2hib2FyZC10ZW1wbGF0ZXMtc2VsZWN0b3IgLnRlbXBsYXRlcyB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gIGJveC1zaGFkb3c6IGluc2V0IDBweCAwcHggMXB4IDBweCAjY2NjO1xuICBoZWlnaHQ6IDEzMHB4O1xuICBvdmVyZmxvdzogYXV0bztcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xufVxuZGFzaGJvYXJkLXRlbXBsYXRlcy1zZWxlY3RvciAudGVtcGxhdGVzIC50ZW1wbGF0ZSB7XG4gIHBhZGRpbmc6IDVweCAxMHB4O1xuICBjb2xvcjogIzVCNjY2NztcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlY2VjZWM7XG59XG5kYXNoYm9hcmQtdGVtcGxhdGVzLXNlbGVjdG9yIC50ZW1wbGF0ZXMgLnRlbXBsYXRlOmhvdmVyIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDk2LCAyMzIsIDExOSwgMC42Mik7XG59XG5kYXNoYm9hcmQtdGVtcGxhdGVzLXNlbGVjdG9yIC50ZW1wbGF0ZXMgLnRlbXBsYXRlLnNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyOSwgMTk3LCA1NywgMC42Mik7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWF4LXdpZHRoOiAyMjBweDtcbiAgbWluLWhlaWdodDogOTVweDtcbiAgbWF4LWhlaWdodDogOTVweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIG1hcmdpbjogMTBweCAwIDEwcHggMDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHdoaXRlO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgfVxufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkudHJpZ2dlcmVkLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkuYWRkOmhvdmVyIHtcbiAgYm9yZGVyLWJvdHRvbTogNHB4IHNvbGlkICNlMDFmNzQ7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaS5hZGQgLmtwaS10ZXh0IC5lbXBoYXNpcyB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpLmFkZDpob3ZlciB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpLmFkZDpob3ZlciAudG9wLWxpbmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpLmFkZDpob3ZlciAua3BpLXRleHQge1xuICBjb2xvcjogYmxhY2s7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaS5hZGQ6aG92ZXIgLmtwaS10ZXh0IC5lbXBoYXNpcyB7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaS5hZGQ6aG92ZXIgLmtwaS1pY29uIHtcbiAgY29sb3I6IGJsYWNrO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkuYWRkOmhvdmVyIC5rcGktaWNvbiAuZmEtcGx1czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwY1wiO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkuZWRpdGluZyB7XG4gIG1pbi1oZWlnaHQ6IDE4NXB4O1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGk6aG92ZXIge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaS5zdGF0aWMgLmtwaS12YWx1ZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAudG9wLWxpbmUge1xuICB3aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjdXJzb3I6IG1vdmU7XG4gIHBhZGRpbmc6IDlweCA5cHggMHB4IDEycHg7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIG1pbi1oZWlnaHQ6IDdweDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDtcbiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IHJvdztcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogZ3JleTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjJzIGVhc2UtaW47XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAudG9wLWxpbmUudHJpZ2dlcmVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWNvbnRlbnQge1xuICBtYXgtaGVpZ2h0OiA5MHB4O1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1jb250ZW50LmVkaXRpbmcge1xuICBtaW4taGVpZ2h0OiAxODBweDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1zaG93IHtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgcGFkZGluZzogMTBweDtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM4MHB4KSB7XG4gIC5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktc2hvdyB7XG4gICAgcGFkZGluZzogMTBweCAzcHg7XG4gIH1cbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktc2hvdyAuZW1waGFzaXMge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktc2hvdyAuZW1waGFzaXMgLnJlYWwtdmFsdWUge1xuICBjb2xvcjogIzY3Njc2Nztcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktc2hvdyAuY2FwdGlvbiB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1zaG93IC5rcGktdGV4dCB7XG4gIHBhZGRpbmc6IDdweCAwO1xuICBjb2xvcjogZ3JleTtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4ycyBlYXNlLWluO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1zaG93IC5rcGktdGV4dCA+IHNwYW4ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktc2hvdyAua3BpLXRleHQudHJpZ2dlcmVkIHtcbiAgY29sb3I6IGJsYWNrO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1zaG93IC5rcGktdGV4dCAuY2FwdGlvbiB7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgcGFkZGluZy1ib3R0b206IDJweDtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ2NXB4KSB7XG4gIC5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktc2hvdyAua3BpLXRleHQgLmNhcHRpb24ge1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgfVxuICAuYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLXNob3cgLmtwaS10ZXh0IC5lbXBoYXNpcyB7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICB9XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLXNob3cgLmtwaS1pY29uIHtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBwYWRkaW5nOiAxMHB4IDA7XG4gIGNvbG9yOiBncmV5O1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjJzIGVhc2UtaW47XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLXNob3cgLmtwaS1pY29uLnRyaWdnZXJlZCB7XG4gIGNvbG9yOiBibGFjaztcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ2NXB4KSB7XG4gIC5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktc2hvdyAua3BpLWljb24ge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBwYWRkaW5nOiAxNnB4IDA7XG4gIH1cbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCBhIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5rcGktbmFtZSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5rcGktbmFtZSBoNiB7XG4gIG1hcmdpbjogMCAwIDVweCAwO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5yZWFsLXZhbHVlIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC1zaXplOiAxMHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmFsZXJ0LWNhcHRpb24ge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgYmFja2dyb3VuZDogI2ZmOTk5OTtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAwIGF1dG8gNXB4IGF1dG87XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIHBhZGRpbmc6IDJweDtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5rcGktdGFyZ2V0LXdhdGNoYWJsZSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAua3BpLXRhcmdldC11bml0IHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgZm9udC1zaXplOiAxMXB4O1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5rcGktdGFyZ2V0LXdhdGNoYWJsZSB7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGNvbG9yOiAjOGQ4ZDhkO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5rcGktdGFyZ2V0LXVuaXQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNnB4O1xuICByaWdodDogMDtcbiAgY29sb3I6ICM5YTlhOWE7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLnBhcmFtLW5hbWUge1xuICBmb250LXNpemU6IDg1JTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuYnRuLmJ0bi14cyB7XG4gIG1hcmdpbi10b3A6IDRweDtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSB7XG4gIC8qIEZsYXR0ZW4gZGVyIEJvb3RzdHJhcCAqL1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC53ZWxsLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC53ZWxsLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5uYXZiYXItaW5uZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLm5hdmJhci1pbm5lcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAucG9wb3Zlcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAucG9wb3Zlcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuYnRuLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5idG4sXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLnRvb2x0aXAsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLnRvb2x0aXAsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgaW5wdXQsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgaW5wdXQsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgc2VsZWN0LFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIHNlbGVjdCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCB0ZXh0YXJlYSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSB0ZXh0YXJlYSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCBwcmUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgcHJlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5wcm9ncmVzcyxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAucHJvZ3Jlc3MsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLm1vZGFsLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5tb2RhbCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuYWRkLW9uLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5hZGQtb24sXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmFsZXJ0LFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5hbGVydCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAudGFibGUtYm9yZGVyZWQsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLnRhYmxlLWJvcmRlcmVkLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5uYXYgPiAuYWN0aXZlID4gYSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAubmF2ID4gLmFjdGl2ZSA+IGEsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmRyb3Bkb3duLW1lbnUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmRyb3Bkb3duLW1lbnUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLnRvb2x0aXAtaW5uZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLnRvb2x0aXAtaW5uZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmJhZGdlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5iYWRnZSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAubGFiZWwsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmxhYmVsLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbWctcG9sYXJvaWQsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltZy1wb2xhcm9pZCB7XG4gIC1tb3otYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDBweCAhaW1wb3J0YW50O1xuICAtbW96LWJvcmRlci1yYWRpdXM6IDBweCAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAwcHggIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lICFpbXBvcnRhbnQ7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgYm9keSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSBib2R5LFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IGlucHV0LFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIGlucHV0LFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IHNlbGVjdCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSBzZWxlY3QsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgdGV4dGFyZWEsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgdGV4dGFyZWEge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IGJvZHk6OmFmdGVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIGJvZHk6OmFmdGVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IGlucHV0OjphZnRlcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSBpbnB1dDo6YWZ0ZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgc2VsZWN0OjphZnRlcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSBzZWxlY3Q6OmFmdGVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IHRleHRhcmVhOjphZnRlcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSB0ZXh0YXJlYTo6YWZ0ZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgYm9keTo6YmVmb3JlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIGJvZHk6OmJlZm9yZSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCBpbnB1dDo6YmVmb3JlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIGlucHV0OjpiZWZvcmUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgc2VsZWN0OjpiZWZvcmUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgc2VsZWN0OjpiZWZvcmUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgdGV4dGFyZWE6OmJlZm9yZSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSB0ZXh0YXJlYTo6YmVmb3JlIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCBpbnB1dFt0eXBlPW51bWJlcl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgaW5wdXRbdHlwZT1udW1iZXJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IGlucHV0W3R5cGU9bnVtYmVyXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSBpbnB1dFt0eXBlPW51bWJlcl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIG1hcmdpbjogMDtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCBhOmhvdmVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIGE6aG92ZXIge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgZmllbGRzZXQsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgZmllbGRzZXQge1xuICBtYXJnaW46IDAgMCAxLjc1cmVtO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IG5vbmU7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tcmFkaW8sXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tcmFkaW8sXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi10b3A6IDEuMzEyNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMS4zMTI1cmVtO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWlubGluZSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1pbmxpbmUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWlubGluZSA+IC5pbS1mb3JtLWdyb3VwLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWlubGluZSA+IC5pbS1mb3JtLWdyb3VwIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsZXg6IDE7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbWFyZ2luLWxlZnQ6IDAuMTc1cmVtO1xuICBtYXJnaW4tcmlnaHQ6IDAuMTc1cmVtO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWlubGluZSA+IC5idG4sXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0taW5saW5lID4gLmJ0biB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCBpbnB1dCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCBpbnB1dCB7XG4gIGhlaWdodDogMi4zNzVyZW07XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWEsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWEge1xuICByZXNpemU6IG5vbmU7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgc2VsZWN0LFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIHNlbGVjdCB7XG4gIHdpZHRoOiAxMDAlO1xuICBmb250LXNpemU6IDEuMjVyZW07XG4gIGhlaWdodDogMnJlbTtcbiAgcGFkZGluZzogMC4xNTYyNXJlbSAwLjE1NjI1cmVtIDAuMDc4MTI1cmVtO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgLmltLWNvbnRyb2wtbGFiZWwsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgLmltLWNvbnRyb2wtbGFiZWwge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMC4zMTI1cmVtO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgcGFkZGluZy1sZWZ0OiAwLjE1NjI1cmVtO1xuICB6LWluZGV4OiAxO1xuICBjb2xvcjogI2IzYjNiMztcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4yOHMgZWFzZTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCAuaW0tYmFyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIC5pbS1iYXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJvcmRlci1ib3R0b206IDAuMDc4MTI1cmVtIHNvbGlkICM5OTk7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIC5pbS1iYXI6OmJlZm9yZSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCAuaW0tYmFyOjpiZWZvcmUge1xuICBjb250ZW50OiAnJztcbiAgaGVpZ2h0OiAwLjE1NjI1cmVtO1xuICB3aWR0aDogMDtcbiAgbGVmdDogNTAlO1xuICBib3R0b206IC0wLjA3ODEyNXJlbTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBiYWNrZ3JvdW5kOiAjMzU4ZmRjO1xuICB0cmFuc2l0aW9uOiBsZWZ0IDAuMjhzIGVhc2UsIHdpZHRoIDAuMjhzIGVhc2U7XG4gIHotaW5kZXg6IDI7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgaW5wdXQsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgaW5wdXQsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWEsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWEge1xuICBkaXNwbGF5OiBibG9jaztcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgcGFkZGluZzogMC4xNTYyNXJlbSAwLjE1NjI1cmVtIDAuMDc4MTI1cmVtO1xuICBmb250LXNpemU6IDEuMjVyZW07XG4gIGJvcmRlci13aWR0aDogMDtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgbGluZS1oZWlnaHQ6IDEuOTtcbiAgd2lkdGg6IDEwMCU7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMjhzIGVhc2U7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgaW5wdXRbdHlwZT1cImZpbGVcIl0sXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgaW5wdXRbdHlwZT1cImZpbGVcIl0ge1xuICBsaW5lLWhlaWdodDogMTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCBpbnB1dFt0eXBlPVwiZmlsZVwiXSB+IC5pbS1iYXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgaW5wdXRbdHlwZT1cImZpbGVcIl0gfiAuaW0tYmFyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCBzZWxlY3QsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgc2VsZWN0LFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIGlucHV0OmZvY3VzLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIGlucHV0OmZvY3VzLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIGlucHV0OnZhbGlkLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIGlucHV0OnZhbGlkLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIGlucHV0LmZvcm0tZmlsZSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCBpbnB1dC5mb3JtLWZpbGUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgaW5wdXQuaGFzLXZhbHVlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIGlucHV0Lmhhcy12YWx1ZSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYTpmb2N1cyxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYTpmb2N1cyxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYTp2YWxpZCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYTp2YWxpZCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYS5mb3JtLWZpbGUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWEuZm9ybS1maWxlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIHRleHRhcmVhLmhhcy12YWx1ZSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYS5oYXMtdmFsdWUge1xuICBjb2xvcjogIzMzMztcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCBzZWxlY3QgfiAuaW0tY29udHJvbC1sYWJlbCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCBzZWxlY3QgfiAuaW0tY29udHJvbC1sYWJlbCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCBpbnB1dDpmb2N1cyB+IC5pbS1jb250cm9sLWxhYmVsLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIGlucHV0OmZvY3VzIH4gLmltLWNvbnRyb2wtbGFiZWwsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgaW5wdXQ6dmFsaWQgfiAuaW0tY29udHJvbC1sYWJlbCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCBpbnB1dDp2YWxpZCB+IC5pbS1jb250cm9sLWxhYmVsLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIGlucHV0LmZvcm0tZmlsZSB+IC5pbS1jb250cm9sLWxhYmVsLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIGlucHV0LmZvcm0tZmlsZSB+IC5pbS1jb250cm9sLWxhYmVsLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIGlucHV0Lmhhcy12YWx1ZSB+IC5pbS1jb250cm9sLWxhYmVsLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIGlucHV0Lmhhcy12YWx1ZSB+IC5pbS1jb250cm9sLWxhYmVsLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIHRleHRhcmVhOmZvY3VzIH4gLmltLWNvbnRyb2wtbGFiZWwsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWE6Zm9jdXMgfiAuaW0tY29udHJvbC1sYWJlbCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYTp2YWxpZCB+IC5pbS1jb250cm9sLWxhYmVsLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIHRleHRhcmVhOnZhbGlkIH4gLmltLWNvbnRyb2wtbGFiZWwsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWEuZm9ybS1maWxlIH4gLmltLWNvbnRyb2wtbGFiZWwsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWEuZm9ybS1maWxlIH4gLmltLWNvbnRyb2wtbGFiZWwsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWEuaGFzLXZhbHVlIH4gLmltLWNvbnRyb2wtbGFiZWwsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWEuaGFzLXZhbHVlIH4gLmltLWNvbnRyb2wtbGFiZWwge1xuICBmb250LXNpemU6IDFyZW07XG4gIGNvbG9yOiAjODA4MDgwO1xuICB0b3A6IC0xLjI1cmVtO1xuICBsZWZ0OiAwO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIHNlbGVjdDpmb2N1cyxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCBzZWxlY3Q6Zm9jdXMsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgaW5wdXQ6Zm9jdXMsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgaW5wdXQ6Zm9jdXMsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWE6Zm9jdXMsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWE6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIHNlbGVjdDpmb2N1cyB+IC5pbS1jb250cm9sLWxhYmVsLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIHNlbGVjdDpmb2N1cyB+IC5pbS1jb250cm9sLWxhYmVsLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIGlucHV0OmZvY3VzIH4gLmltLWNvbnRyb2wtbGFiZWwsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgaW5wdXQ6Zm9jdXMgfiAuaW0tY29udHJvbC1sYWJlbCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYTpmb2N1cyB+IC5pbS1jb250cm9sLWxhYmVsLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIHRleHRhcmVhOmZvY3VzIH4gLmltLWNvbnRyb2wtbGFiZWwge1xuICBjb2xvcjogIzM1OGZkYztcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCBzZWxlY3Q6Zm9jdXMgfiAuaW0tYmFyOjpiZWZvcmUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgc2VsZWN0OmZvY3VzIH4gLmltLWJhcjo6YmVmb3JlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIGlucHV0OmZvY3VzIH4gLmltLWJhcjo6YmVmb3JlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIGlucHV0OmZvY3VzIH4gLmltLWJhcjo6YmVmb3JlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIHRleHRhcmVhOmZvY3VzIH4gLmltLWJhcjo6YmVmb3JlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIHRleHRhcmVhOmZvY3VzIH4gLmltLWJhcjo6YmVmb3JlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGxlZnQ6IDA7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWNoZWNrYm94IGxhYmVsLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1jaGVja2JveCBsYWJlbCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1yYWRpbyBsYWJlbCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1yYWRpbyBsYWJlbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwYWRkaW5nLWxlZnQ6IDIuNXJlbTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgY29sb3I6ICMzMzM7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1jaGVja2JveCBpbnB1dCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tY2hlY2tib3ggaW5wdXQsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tcmFkaW8gaW5wdXQsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tcmFkaW8gaW5wdXQge1xuICB3aWR0aDogYXV0bztcbiAgb3BhY2l0eTogMC4wMDAwMDAwMTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1yYWRpbyxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tcmFkaW8ge1xuICBtYXJnaW4tYm90dG9tOiAxLjI1cmVtO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1yYWRpbyAuaW0taGVscGVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1yYWRpbyAuaW0taGVscGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC0wLjMxMjVyZW07XG4gIGxlZnQ6IC0wLjMxMjVyZW07XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIGNvbG9yOiAjOTk5O1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1yYWRpbyAuaW0taGVscGVyOjpiZWZvcmUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLXJhZGlvIC5pbS1oZWxwZXI6OmJlZm9yZSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tcmFkaW8gLmltLWhlbHBlcjo6YWZ0ZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLXJhZGlvIC5pbS1oZWxwZXI6OmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICBtYXJnaW46IDAuMzEyNXJlbTtcbiAgd2lkdGg6IDEuMjVyZW07XG4gIGhlaWdodDogMS4yNXJlbTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMjhzIGVhc2U7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYm9yZGVyOiAwLjE1NjI1cmVtIHNvbGlkIGN1cnJlbnRDb2xvcjtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tcmFkaW8gLmltLWhlbHBlcjo6YWZ0ZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLXJhZGlvIC5pbS1oZWxwZXI6OmFmdGVyIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM1OGZkYztcbiAgYm9yZGVyLWNvbG9yOiAjMzU4ZmRjO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1yYWRpbyBsYWJlbDpob3ZlciAuaW0taGVscGVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1yYWRpbyBsYWJlbDpob3ZlciAuaW0taGVscGVyIHtcbiAgY29sb3I6ICMzNThmZGM7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLXJhZGlvIGlucHV0OmNoZWNrZWQgfiAuaW0taGVscGVyOjphZnRlcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tcmFkaW8gaW5wdXQ6Y2hlY2tlZCB+IC5pbS1oZWxwZXI6OmFmdGVyIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjUpO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1yYWRpbyBpbnB1dDpjaGVja2VkIH4gLmltLWhlbHBlcjo6YmVmb3JlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1yYWRpbyBpbnB1dDpjaGVja2VkIH4gLmltLWhlbHBlcjo6YmVmb3JlIHtcbiAgY29sb3I6ICMzNThmZGM7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWNoZWNrYm94LFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1jaGVja2JveCB7XG4gIG1hcmdpbi10b3A6IDEuNzVyZW07XG4gIG1hcmdpbi1ib3R0b206IDEuMjVyZW07XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWNoZWNrYm94IC5pbS1oZWxwZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWNoZWNrYm94IC5pbS1oZWxwZXIge1xuICBjb2xvcjogIzk5OTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxLjI1cmVtO1xuICBoZWlnaHQ6IDEuMjVyZW07XG4gIHotaW5kZXg6IDA7XG4gIGJvcmRlcjogMC4xNTYyNXJlbSBzb2xpZCBjdXJyZW50Q29sb3I7XG4gIGJvcmRlci1yYWRpdXM6IDAuMDc4MTI1cmVtO1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4yOHMgZWFzZTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tY2hlY2tib3ggLmltLWhlbHBlcjo6YmVmb3JlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1jaGVja2JveCAuaW0taGVscGVyOjpiZWZvcmUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWNoZWNrYm94IC5pbS1oZWxwZXI6OmFmdGVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1jaGVja2JveCAuaW0taGVscGVyOjphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaGVpZ2h0OiAwO1xuICB3aWR0aDogMC4yNXJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM1OGZkYztcbiAgZGlzcGxheTogYmxvY2s7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgdG9wO1xuICBib3JkZXItcmFkaXVzOiAwLjMxMjVyZW07XG4gIGNvbnRlbnQ6ICcnO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMjhzIGVhc2UsIGhlaWdodCAwcyBsaW5lYXIgMC4yOHM7XG4gIG9wYWNpdHk6IDA7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWNoZWNrYm94IC5pbS1oZWxwZXI6OmJlZm9yZSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tY2hlY2tib3ggLmltLWhlbHBlcjo6YmVmb3JlIHtcbiAgdG9wOiAwLjgxMjVyZW07XG4gIGxlZnQ6IDAuNDc1cmVtO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTM1ZGVnKTtcbiAgYm94LXNoYWRvdzogMCAwIDAgMC4wNzgxMjVyZW0gI2ZmZjtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tY2hlY2tib3ggLmltLWhlbHBlcjo6YWZ0ZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWNoZWNrYm94IC5pbS1oZWxwZXI6OmFmdGVyIHtcbiAgdG9wOiAwLjM3NXJlbTtcbiAgbGVmdDogMDtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tY2hlY2tib3ggbGFiZWw6aG92ZXIgLmltLWhlbHBlcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tY2hlY2tib3ggbGFiZWw6aG92ZXIgLmltLWhlbHBlciB7XG4gIGNvbG9yOiAjMzU4ZmRjO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gLmltLWhlbHBlcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IC5pbS1oZWxwZXIge1xuICBjb2xvcjogIzM1OGZkYztcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IC5pbS1oZWxwZXI6OmFmdGVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gLmltLWhlbHBlcjo6YWZ0ZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWNoZWNrYm94IGlucHV0OmNoZWNrZWQgfiAuaW0taGVscGVyOjpiZWZvcmUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWNoZWNrYm94IGlucHV0OmNoZWNrZWQgfiAuaW0taGVscGVyOjpiZWZvcmUge1xuICBvcGFjaXR5OiAxO1xuICB0cmFuc2l0aW9uOiBoZWlnaHQgMC4yOHMgZWFzZTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IC5pbS1oZWxwZXI6OmFmdGVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gLmltLWhlbHBlcjo6YWZ0ZXIge1xuICBoZWlnaHQ6IDAuNjI1cmVtO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gLmltLWhlbHBlcjo6YmVmb3JlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gLmltLWhlbHBlcjo6YmVmb3JlIHtcbiAgaGVpZ2h0OiAxLjVyZW07XG4gIHRyYW5zaXRpb24tZGVsYXk6IDAuMjhzO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1yYWRpbyArIC5pbS1yYWRpbyxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tcmFkaW8gKyAuaW0tcmFkaW8sXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWNoZWNrYm94ICsgLmltLWNoZWNrYm94LFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1jaGVja2JveCArIC5pbS1jaGVja2JveCB7XG4gIG1hcmdpbi10b3A6IDEuMjVyZW07XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLW1lc3NhZ2VzLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1tZXNzYWdlcyB7XG4gIGZvbnQtc2l6ZTogMS4wNDE2NjY2N3JlbTtcbiAgY29sb3I6ICNlMDFmNzQ7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRyYW5zaXRpb246IGFsbCAwLjI4cyBjdWJpYy1iZXppZXIoMC41NSwgMCwgMC41NSwgMC4yKTtcbiAgb3BhY2l0eTogMDtcbiAgbWFyZ2luLXRvcDogMDtcbiAgcGFkZGluZy10b3A6IDVweDtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaGFzLWVycm9yIC5sZWdlbmQubGVnZW5kLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5oYXMtZXJyb3IgLmxlZ2VuZC5sZWdlbmQsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmhhcy1lcnJvci5pbS1mb3JtLWdyb3VwIC5pbS1jb250cm9sLWxhYmVsLmltLWNvbnRyb2wtbGFiZWwsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmhhcy1lcnJvci5pbS1mb3JtLWdyb3VwIC5pbS1jb250cm9sLWxhYmVsLmltLWNvbnRyb2wtbGFiZWwge1xuICBjb2xvcjogI2UwMWY3NDtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaGFzLWVycm9yLmltLWZvcm0tZ3JvdXAgLmltLW1lc3NhZ2VzLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5oYXMtZXJyb3IuaW0tZm9ybS1ncm91cCAuaW0tbWVzc2FnZXMsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmhhcy1lcnJvci5pbS1jaGVja2JveCAuaW0tbWVzc2FnZXMsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmhhcy1lcnJvci5pbS1jaGVja2JveCAuaW0tbWVzc2FnZXMsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmhhcy1lcnJvci5pbS1yYWRpbyAuaW0tbWVzc2FnZXMsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmhhcy1lcnJvci5pbS1yYWRpbyAuaW0tbWVzc2FnZXMsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmhhcy1lcnJvci5pbS1mb3JtLXJhZGlvIC5pbS1tZXNzYWdlcyxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaGFzLWVycm9yLmltLWZvcm0tcmFkaW8gLmltLW1lc3NhZ2VzLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5oYXMtZXJyb3IuaW0tZm9ybS1ncm91cCAuaW0taGVscGVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5oYXMtZXJyb3IuaW0tZm9ybS1ncm91cCAuaW0taGVscGVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5oYXMtZXJyb3IuaW0tY2hlY2tib3ggLmltLWhlbHBlcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaGFzLWVycm9yLmltLWNoZWNrYm94IC5pbS1oZWxwZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmhhcy1lcnJvci5pbS1yYWRpbyAuaW0taGVscGVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5oYXMtZXJyb3IuaW0tcmFkaW8gLmltLWhlbHBlcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaGFzLWVycm9yLmltLWZvcm0tcmFkaW8gLmltLWhlbHBlcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaGFzLWVycm9yLmltLWZvcm0tcmFkaW8gLmltLWhlbHBlciB7XG4gIGNvbG9yOiAjZTAxZjc0O1xuICBvcGFjaXR5OiAxO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5oYXMtZXJyb3IgLmltLWJhcjo6YmVmb3JlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5oYXMtZXJyb3IgLmltLWJhcjo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogI2UwMWY3NDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWJ1dHRvbixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tYnV0dG9uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kOiAjNjBhN2U0O1xuICBib3JkZXI6IDA7XG4gIGZvbnQtc2l6ZTogMS4zNzVyZW07XG4gIGNvbG9yOiAjMzMzO1xuICBtYXJnaW46IDAuN3JlbSAwO1xuICBwYWRkaW5nOiAwLjQzNzVyZW0gMS43NXJlbTtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJveC1zaGFkb3c6IDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMCAxcHggNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tYnV0dG9uIHNwYW4sXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWJ1dHRvbiBzcGFuIHtcbiAgY29sb3I6ICNmZmY7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tYnV0dG9uOmhvdmVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1idXR0b246aG92ZXIge1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMXMgZWFzZS1pbjtcbiAgYmFja2dyb3VuZDogIzI1ODNkMztcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tYnV0dG9uOmFjdGl2ZSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCk7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWJ1dHRvbiBhOmZvY3VzLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1idXR0b24gYTpmb2N1cyxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tYnV0dG9uOmZvY3VzLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1idXR0b246Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgYnV0dG9uLmltLWZhYixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSBidXR0b24uaW0tZmFiIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDQ2cHg7XG4gIHdpZHRoOiA0NnB4O1xuICBmbGV4OiAwIDAgNTZweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDRweDtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBmb250LXNpemU6IDIwcHg7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgMXB4IDEwcHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpLCAwIDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMik7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCBidXR0b24uaW0tZmFiOmZvY3VzLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIGJ1dHRvbi5pbS1mYWI6Zm9jdXMge1xuICBvdXRsaW5lOiAwO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IGJ1dHRvbi5pbS1mYWI6YWN0aXZlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIGJ1dHRvbi5pbS1mYWI6YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCBidXR0b24uaW0tZmFiLmltLXByaW1hcnksXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgYnV0dG9uLmltLWZhYi5pbS1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZDogIzM1OGZkYztcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCBidXR0b24uaW0tZmFiLmltLXByaW1hcnk6aG92ZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgYnV0dG9uLmltLWZhYi5pbS1wcmltYXJ5OmhvdmVyIHtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjFzIGVhc2UtaW47XG4gIGJhY2tncm91bmQ6ICMyNTgzZDM7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgYnV0dG9uLmltLWZhYi5pbS13YXJuLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIGJ1dHRvbi5pbS1mYWIuaW0td2FybiB7XG4gIGJhY2tncm91bmQ6ICNlMDFmNzQ7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgYnV0dG9uLmltLWZhYi5pbS13YXJuOmhvdmVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIGJ1dHRvbi5pbS1mYWIuaW0td2Fybjpob3ZlciB7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xcyBlYXNlLWluO1xuICBiYWNrZ3JvdW5kOiAjY2ExYzY4O1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgYnV0dG9uLmtwaS1hbGVydHMuaW0tZmFiLmltLXByaW1hcnkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogLTEycHg7XG4gIHJpZ2h0OiAxNXB4O1xuICB3aWR0aDogMjJweDtcbiAgaGVpZ2h0OiAyMnB4O1xuICBmb250LXNpemU6IDEzcHg7XG4gIGJhY2tncm91bmQ6ICM0YzQ3NDk7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSBidXR0b24ua3BpLWFsZXJ0cy5pbS1mYWIuaW0tcHJpbWFyeTpob3ZlciB7XG4gIGJhY2tncm91ZDogIzM1OGZkYztcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIGJ1dHRvbi5rcGktcmVtb3ZlLmltLWZhYi5pbS13YXJuIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC0xMnB4O1xuICByaWdodDogLTExcHg7XG4gIHdpZHRoOiAyMnB4O1xuICBoZWlnaHQ6IDIycHg7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgYmFja2dyb3VuZDogIzRjNDc0OTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIGJ1dHRvbi5rcGktcmVtb3ZlLmltLWZhYi5pbS13YXJuOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogI2NhMWM2ODtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZGF0YS1sb2FkZXIge1xuICB3aWR0aDogMTAwJTtcbiAgbWluLWhlaWdodDogOTVweDtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua2V5LXN0YXRzIC5rcGkge1xuICBtaW4taGVpZ2h0OiA4MHB4O1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIHtcbiAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgLyogRmxhdHRlbiBkZXIgQm9vdHN0cmFwICovXG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NzVweCkge1xuICAuYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC53ZWxsLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5uYXZiYXItaW5uZXIsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLnBvcG92ZXIsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmJ0bixcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAudG9vbHRpcCxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBpbnB1dCxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBzZWxlY3QsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgdGV4dGFyZWEsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgcHJlLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5wcm9ncmVzcyxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAubW9kYWwsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmFkZC1vbixcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuYWxlcnQsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLnRhYmxlLWJvcmRlcmVkLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5uYXYgPiAuYWN0aXZlID4gYSxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuZHJvcGRvd24tbWVudSxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAudG9vbHRpcC1pbm5lcixcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuYmFkZ2UsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmxhYmVsLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbWctcG9sYXJvaWQge1xuICAtbW96LWJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAwcHggIWltcG9ydGFudDtcbiAgLW1vei1ib3JkZXItcmFkaXVzOiAwcHggIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogMHB4ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2UgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZSAhaW1wb3J0YW50O1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGJvZHksXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgaW5wdXQsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgc2VsZWN0LFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIHRleHRhcmVhIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBib2R5OjphZnRlcixcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBpbnB1dDo6YWZ0ZXIsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgc2VsZWN0OjphZnRlcixcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyB0ZXh0YXJlYTo6YWZ0ZXIsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgYm9keTo6YmVmb3JlLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGlucHV0OjpiZWZvcmUsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgc2VsZWN0OjpiZWZvcmUsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgdGV4dGFyZWE6OmJlZm9yZSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgaW5wdXRbdHlwZT1udW1iZXJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGlucHV0W3R5cGU9bnVtYmVyXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGE6aG92ZXIge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgZmllbGRzZXQge1xuICBtYXJnaW46IDAgMCAxLjc1cmVtO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IG5vbmU7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tcmFkaW8sXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tZ3JvdXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi10b3A6IDEuMzEyNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMS4zMTI1cmVtO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLWlubGluZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0taW5saW5lID4gLmltLWZvcm0tZ3JvdXAge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxleDogMTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW4tbGVmdDogMC4xNzVyZW07XG4gIG1hcmdpbi1yaWdodDogMC4xNzVyZW07XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0taW5saW5lID4gLmJ0biB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tZm9ybS1ncm91cCBpbnB1dCB7XG4gIGhlaWdodDogMi4zNzVyZW07XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWEge1xuICByZXNpemU6IG5vbmU7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tZ3JvdXAgc2VsZWN0IHtcbiAgd2lkdGg6IDEwMCU7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgaGVpZ2h0OiAycmVtO1xuICBwYWRkaW5nOiAwLjE1NjI1cmVtIDAuMTU2MjVyZW0gMC4wNzgxMjVyZW07XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tZm9ybS1ncm91cCAuaW0tY29udHJvbC1sYWJlbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwLjMxMjVyZW07XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBwYWRkaW5nLWxlZnQ6IDAuMTU2MjVyZW07XG4gIHotaW5kZXg6IDE7XG4gIGNvbG9yOiAjYjNiM2IzO1xuICBmb250LXNpemU6IDEuMjVyZW07XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHRyYW5zaXRpb246IGFsbCAwLjI4cyBlYXNlO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLWdyb3VwIC5pbS1iYXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJvcmRlci1ib3R0b206IDAuMDc4MTI1cmVtIHNvbGlkICM5OTk7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLWdyb3VwIC5pbS1iYXI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICcnO1xuICBoZWlnaHQ6IDAuMTU2MjVyZW07XG4gIHdpZHRoOiAwO1xuICBsZWZ0OiA1MCU7XG4gIGJvdHRvbTogLTAuMDc4MTI1cmVtO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJhY2tncm91bmQ6ICMzNThmZGM7XG4gIHRyYW5zaXRpb246IGxlZnQgMC4yOHMgZWFzZSwgd2lkdGggMC4yOHMgZWFzZTtcbiAgei1pbmRleDogMjtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tZm9ybS1ncm91cCBpbnB1dCxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBwYWRkaW5nOiAwLjE1NjI1cmVtIDAuMTU2MjVyZW0gMC4wNzgxMjVyZW07XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgYm9yZGVyLXdpZHRoOiAwO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICBsaW5lLWhlaWdodDogMS45O1xuICB3aWR0aDogMTAwJTtcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4yOHMgZWFzZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tZm9ybS1ncm91cCBpbnB1dFt0eXBlPVwiZmlsZVwiXSB7XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLWdyb3VwIGlucHV0W3R5cGU9XCJmaWxlXCJdIH4gLmltLWJhciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tZ3JvdXAgc2VsZWN0LFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLWdyb3VwIGlucHV0OmZvY3VzLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLWdyb3VwIGlucHV0OnZhbGlkLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLWdyb3VwIGlucHV0LmZvcm0tZmlsZSxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tZm9ybS1ncm91cCBpbnB1dC5oYXMtdmFsdWUsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWE6Zm9jdXMsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWE6dmFsaWQsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWEuZm9ybS1maWxlLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLWdyb3VwIHRleHRhcmVhLmhhcy12YWx1ZSB7XG4gIGNvbG9yOiAjMzMzO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLWdyb3VwIHNlbGVjdCB+IC5pbS1jb250cm9sLWxhYmVsLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLWdyb3VwIGlucHV0OmZvY3VzIH4gLmltLWNvbnRyb2wtbGFiZWwsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tZ3JvdXAgaW5wdXQ6dmFsaWQgfiAuaW0tY29udHJvbC1sYWJlbCxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tZm9ybS1ncm91cCBpbnB1dC5mb3JtLWZpbGUgfiAuaW0tY29udHJvbC1sYWJlbCxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tZm9ybS1ncm91cCBpbnB1dC5oYXMtdmFsdWUgfiAuaW0tY29udHJvbC1sYWJlbCxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYTpmb2N1cyB+IC5pbS1jb250cm9sLWxhYmVsLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLWdyb3VwIHRleHRhcmVhOnZhbGlkIH4gLmltLWNvbnRyb2wtbGFiZWwsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWEuZm9ybS1maWxlIH4gLmltLWNvbnRyb2wtbGFiZWwsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWEuaGFzLXZhbHVlIH4gLmltLWNvbnRyb2wtbGFiZWwge1xuICBmb250LXNpemU6IDFyZW07XG4gIGNvbG9yOiAjODA4MDgwO1xuICB0b3A6IC0xLjI1cmVtO1xuICBsZWZ0OiAwO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLWdyb3VwIHNlbGVjdDpmb2N1cyxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tZm9ybS1ncm91cCBpbnB1dDpmb2N1cyxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYTpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tZ3JvdXAgc2VsZWN0OmZvY3VzIH4gLmltLWNvbnRyb2wtbGFiZWwsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tZ3JvdXAgaW5wdXQ6Zm9jdXMgfiAuaW0tY29udHJvbC1sYWJlbCxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYTpmb2N1cyB+IC5pbS1jb250cm9sLWxhYmVsIHtcbiAgY29sb3I6ICMzNThmZGM7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tZ3JvdXAgc2VsZWN0OmZvY3VzIH4gLmltLWJhcjo6YmVmb3JlLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLWdyb3VwIGlucHV0OmZvY3VzIH4gLmltLWJhcjo6YmVmb3JlLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLWdyb3VwIHRleHRhcmVhOmZvY3VzIH4gLmltLWJhcjo6YmVmb3JlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGxlZnQ6IDA7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWNoZWNrYm94IGxhYmVsLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLXJhZGlvIGxhYmVsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBhZGRpbmctbGVmdDogMi41cmVtO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBjb2xvcjogIzMzMztcbiAgZGlzcGxheTogYmxvY2s7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWNoZWNrYm94IGlucHV0LFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLXJhZGlvIGlucHV0IHtcbiAgd2lkdGg6IGF1dG87XG4gIG9wYWNpdHk6IDAuMDAwMDAwMDE7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tcmFkaW8ge1xuICBtYXJnaW4tYm90dG9tOiAxLjI1cmVtO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1yYWRpbyAuaW0taGVscGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC0wLjMxMjVyZW07XG4gIGxlZnQ6IC0wLjMxMjVyZW07XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIGNvbG9yOiAjOTk5O1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1yYWRpbyAuaW0taGVscGVyOjpiZWZvcmUsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLXJhZGlvIC5pbS1oZWxwZXI6OmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICBtYXJnaW46IDAuMzEyNXJlbTtcbiAgd2lkdGg6IDEuMjVyZW07XG4gIGhlaWdodDogMS4yNXJlbTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMjhzIGVhc2U7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYm9yZGVyOiAwLjE1NjI1cmVtIHNvbGlkIGN1cnJlbnRDb2xvcjtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tcmFkaW8gLmltLWhlbHBlcjo6YWZ0ZXIge1xuICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzU4ZmRjO1xuICBib3JkZXItY29sb3I6ICMzNThmZGM7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLXJhZGlvIGxhYmVsOmhvdmVyIC5pbS1oZWxwZXIge1xuICBjb2xvcjogIzM1OGZkYztcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tcmFkaW8gaW5wdXQ6Y2hlY2tlZCB+IC5pbS1oZWxwZXI6OmFmdGVyIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjUpO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1yYWRpbyBpbnB1dDpjaGVja2VkIH4gLmltLWhlbHBlcjo6YmVmb3JlIHtcbiAgY29sb3I6ICMzNThmZGM7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWNoZWNrYm94IHtcbiAgbWFyZ2luLXRvcDogMS43NXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMS4yNXJlbTtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tY2hlY2tib3ggLmltLWhlbHBlciB7XG4gIGNvbG9yOiAjOTk5O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEuMjVyZW07XG4gIGhlaWdodDogMS4yNXJlbTtcbiAgei1pbmRleDogMDtcbiAgYm9yZGVyOiAwLjE1NjI1cmVtIHNvbGlkIGN1cnJlbnRDb2xvcjtcbiAgYm9yZGVyLXJhZGl1czogMC4wNzgxMjVyZW07XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjI4cyBlYXNlO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1jaGVja2JveCAuaW0taGVscGVyOjpiZWZvcmUsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWNoZWNrYm94IC5pbS1oZWxwZXI6OmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBoZWlnaHQ6IDA7XG4gIHdpZHRoOiAwLjI1cmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzU4ZmRjO1xuICBkaXNwbGF5OiBibG9jaztcbiAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCB0b3A7XG4gIGJvcmRlci1yYWRpdXM6IDAuMzEyNXJlbTtcbiAgY29udGVudDogJyc7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4yOHMgZWFzZSwgaGVpZ2h0IDBzIGxpbmVhciAwLjI4cztcbiAgb3BhY2l0eTogMDtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tY2hlY2tib3ggLmltLWhlbHBlcjo6YmVmb3JlIHtcbiAgdG9wOiAwLjgxMjVyZW07XG4gIGxlZnQ6IDAuNDc1cmVtO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTM1ZGVnKTtcbiAgYm94LXNoYWRvdzogMCAwIDAgMC4wNzgxMjVyZW0gI2ZmZjtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tY2hlY2tib3ggLmltLWhlbHBlcjo6YWZ0ZXIge1xuICB0b3A6IDAuMzc1cmVtO1xuICBsZWZ0OiAwO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1jaGVja2JveCBsYWJlbDpob3ZlciAuaW0taGVscGVyIHtcbiAgY29sb3I6ICMzNThmZGM7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWNoZWNrYm94IGlucHV0OmNoZWNrZWQgfiAuaW0taGVscGVyIHtcbiAgY29sb3I6ICMzNThmZGM7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWNoZWNrYm94IGlucHV0OmNoZWNrZWQgfiAuaW0taGVscGVyOjphZnRlcixcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IC5pbS1oZWxwZXI6OmJlZm9yZSB7XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zaXRpb246IGhlaWdodCAwLjI4cyBlYXNlO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gLmltLWhlbHBlcjo6YWZ0ZXIge1xuICBoZWlnaHQ6IDAuNjI1cmVtO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gLmltLWhlbHBlcjo6YmVmb3JlIHtcbiAgaGVpZ2h0OiAxLjVyZW07XG4gIHRyYW5zaXRpb24tZGVsYXk6IDAuMjhzO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1yYWRpbyArIC5pbS1yYWRpbyxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tY2hlY2tib3ggKyAuaW0tY2hlY2tib3gge1xuICBtYXJnaW4tdG9wOiAxLjI1cmVtO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1tZXNzYWdlcyB7XG4gIGZvbnQtc2l6ZTogMS4wNDE2NjY2N3JlbTtcbiAgY29sb3I6ICNlMDFmNzQ7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRyYW5zaXRpb246IGFsbCAwLjI4cyBjdWJpYy1iZXppZXIoMC41NSwgMCwgMC41NSwgMC4yKTtcbiAgb3BhY2l0eTogMDtcbiAgbWFyZ2luLXRvcDogMDtcbiAgcGFkZGluZy10b3A6IDVweDtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaGFzLWVycm9yIC5sZWdlbmQubGVnZW5kLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5oYXMtZXJyb3IuaW0tZm9ybS1ncm91cCAuaW0tY29udHJvbC1sYWJlbC5pbS1jb250cm9sLWxhYmVsIHtcbiAgY29sb3I6ICNlMDFmNzQ7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmhhcy1lcnJvci5pbS1mb3JtLWdyb3VwIC5pbS1tZXNzYWdlcyxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaGFzLWVycm9yLmltLWNoZWNrYm94IC5pbS1tZXNzYWdlcyxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaGFzLWVycm9yLmltLXJhZGlvIC5pbS1tZXNzYWdlcyxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaGFzLWVycm9yLmltLWZvcm0tcmFkaW8gLmltLW1lc3NhZ2VzLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5oYXMtZXJyb3IuaW0tZm9ybS1ncm91cCAuaW0taGVscGVyLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5oYXMtZXJyb3IuaW0tY2hlY2tib3ggLmltLWhlbHBlcixcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaGFzLWVycm9yLmltLXJhZGlvIC5pbS1oZWxwZXIsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmhhcy1lcnJvci5pbS1mb3JtLXJhZGlvIC5pbS1oZWxwZXIge1xuICBjb2xvcjogI2UwMWY3NDtcbiAgb3BhY2l0eTogMTtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaGFzLWVycm9yIC5pbS1iYXI6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6ICNlMDFmNzQ7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1idXR0b24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6ICM2MGE3ZTQ7XG4gIGJvcmRlcjogMDtcbiAgZm9udC1zaXplOiAxLjM3NXJlbTtcbiAgY29sb3I6ICMzMzM7XG4gIG1hcmdpbjogMC43cmVtIDA7XG4gIHBhZGRpbmc6IDAuNDM3NXJlbSAxLjc1cmVtO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYm94LXNoYWRvdzogMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDFweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1idXR0b24gc3BhbiB7XG4gIGNvbG9yOiAjZmZmO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWJ1dHRvbjpob3ZlciB7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xcyBlYXNlLWluO1xuICBiYWNrZ3JvdW5kOiAjMjU4M2QzO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KTtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tYnV0dG9uIGE6Zm9jdXMsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWJ1dHRvbjpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBidXR0b24uaW0tZmFiIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDQ2cHg7XG4gIHdpZHRoOiA0NnB4O1xuICBmbGV4OiAwIDAgNTZweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDRweDtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBmb250LXNpemU6IDIwcHg7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgMXB4IDEwcHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpLCAwIDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMik7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBidXR0b24uaW0tZmFiOmZvY3VzIHtcbiAgb3V0bGluZTogMDtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBidXR0b24uaW0tZmFiOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCk7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgYnV0dG9uLmltLWZhYi5pbS1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZDogIzM1OGZkYztcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBidXR0b24uaW0tZmFiLmltLXByaW1hcnk6aG92ZXIge1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMXMgZWFzZS1pbjtcbiAgYmFja2dyb3VuZDogIzI1ODNkMztcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBidXR0b24uaW0tZmFiLmltLXdhcm4ge1xuICBiYWNrZ3JvdW5kOiAjZTAxZjc0O1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGJ1dHRvbi5pbS1mYWIuaW0td2Fybjpob3ZlciB7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xcyBlYXNlLWluO1xuICBiYWNrZ3JvdW5kOiAjY2ExYzY4O1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGEge1xuICBjb2xvcjogd2hpdGU7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgYnV0dG9uLmltLWZhYi5hZGQta3Bpcyxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBidXR0b24uaW0tZmFiLmVkaXQta3Bpcyxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBidXR0b24uaW0tZmFiLnRvZ2dsZS1zaG93LWNvbnRlbnQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiA0MHB4O1xuICBoZWlnaHQ6IDQwcHg7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMjhzIGVhc2UtaW47XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgYnV0dG9uLmltLWZhYi5hZGQta3Bpcy5pbS1wcmltYXJ5LFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGJ1dHRvbi5pbS1mYWIuZWRpdC1rcGlzLmltLXByaW1hcnksXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgYnV0dG9uLmltLWZhYi50b2dnbGUtc2hvdy1jb250ZW50LmltLXByaW1hcnkge1xuICBiYWNrZ3JvdW5kOiAjNGM0NzQ5O1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGJ1dHRvbi5pbS1mYWIuYWRkLWtwaXMuaW0tcHJpbWFyeS5kaXNhYmxlZCxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBidXR0b24uaW0tZmFiLmVkaXQta3Bpcy5pbS1wcmltYXJ5LmRpc2FibGVkLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGJ1dHRvbi5pbS1mYWIudG9nZ2xlLXNob3ctY29udGVudC5pbS1wcmltYXJ5LmRpc2FibGVkIHtcbiAgYmFja2dyb3VuZDogI2IyYjVjMTtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBidXR0b24uaW0tZmFiLmFkZC1rcGlzLmltLXByaW1hcnkuZGlzYWJsZWQgYSxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBidXR0b24uaW0tZmFiLmVkaXQta3Bpcy5pbS1wcmltYXJ5LmRpc2FibGVkIGEsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgYnV0dG9uLmltLWZhYi50b2dnbGUtc2hvdy1jb250ZW50LmltLXByaW1hcnkuZGlzYWJsZWQgYSB7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgYnV0dG9uLmltLWZhYi5hZGQta3Bpcy5pbS1wcmltYXJ5OmhvdmVyOm5vdCguZGlzYWJsZWQpLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGJ1dHRvbi5pbS1mYWIuZWRpdC1rcGlzLmltLXByaW1hcnk6aG92ZXI6bm90KC5kaXNhYmxlZCksXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgYnV0dG9uLmltLWZhYi50b2dnbGUtc2hvdy1jb250ZW50LmltLXByaW1hcnk6aG92ZXI6bm90KC5kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiBibGFjaztcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBidXR0b24uaW0tZmFiLnRvZ2dsZS1zaG93LWNvbnRlbnQge1xuICB0b3A6IC0xNXB4O1xuICByaWdodDogLTE1cHg7XG4gIHotaW5kZXg6IDEwO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjc1cHgpIHtcbiAgLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGJ1dHRvbi5pbS1mYWIudG9nZ2xlLXNob3ctY29udGVudCB7XG4gICAgdG9wOiAtMzBweDtcbiAgICByaWdodDogLTE0cHg7XG4gICAgYm90dG9tOiAwO1xuICB9XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgYnV0dG9uLmltLWZhYi5hZGQta3BpcyB7XG4gIHRvcDogMzBweDtcbiAgcmlnaHQ6IC0xNXB4O1xuICB6LWluZGV4OiAxMDtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY3NXB4KSB7XG4gIC5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBidXR0b24uaW0tZmFiLmFkZC1rcGlzIHtcbiAgICB0b3A6IC0zMHB4O1xuICAgIHJpZ2h0OiAzM3B4O1xuICAgIGJvdHRvbTogMDtcbiAgfVxufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGJ1dHRvbi5pbS1mYWIuZWRpdC1rcGlzIHtcbiAgdG9wOiA3NXB4O1xuICByaWdodDogLTE1cHg7XG4gIHotaW5kZXg6IDEwO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGJ1dHRvbi5pbS1mYWIuZWRpdC1rcGlzLmVkaXRpbmcge1xuICBiYWNrZ3JvdW5kOiAjMzU4ZmRjO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGJ1dHRvbi5pbS1mYWIuZWRpdC1rcGlzLmVkaXRpbmc6aG92ZXI6bm90KC5kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiAjNzZiM2U3O1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjc1cHgpIHtcbiAgLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGJ1dHRvbi5pbS1mYWIuZWRpdC1rcGlzIHtcbiAgICB0b3A6IC0zMHB4O1xuICAgIHJpZ2h0OiA3OXB4O1xuICAgIGJvdHRvbTogMDtcbiAgfVxufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5jb250ZW50LWJ1dHRvbnMge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmNvbnRlbnQge1xuICBwYWRkaW5nOiAxNXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgYm94LXNoYWRvdzogMHB4IDFweCA4cHggLTRweDtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDcyNXB4KSB7XG4gIC5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuY29udGVudCB7XG4gICAgcGFkZGluZzogMCA2MHB4O1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NzVweCkge1xuICAuYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmNvbnRlbnQge1xuICAgIG1hcmdpbi10b3A6IDI1cHg7XG4gIH1cbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuY29udGVudCAuaW1wYWMta3BpIHtcbiAgcGFkZGluZy1sZWZ0OiA1cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDVweDtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAuYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmNvbnRlbnQgLmltcGFjLWtwaSB7XG4gICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7XG4gIH1cbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuY29udGVudCAuaW1wYWMta3BpIC5rcGkuYWRkIC5rcGktc2hvdyAuY2FwdGlvbiB7XG4gIHdoaXRlLXNwYWNlOiBpbmhlcml0O1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5jb250ZW50IC50aXRsZSAudGV4dC1jZW50ZXIge1xuICBsaW5lLWhlaWdodDogMztcbiAgZm9udC12YXJpYW50OiBzbWFsbC1jYXBzO1xuICBmb250LXNpemU6IGxhcmdlcjtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuY29udGVudCAudGl0bGUgLmJhZGdlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDhweDtcbiAgbGVmdDogLTEwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkMWU1NWM7XG4gIGNvbG9yOiAjNGY1OTU5O1xuICBib3gtc2hhZG93OiAwcHggMXB4IDNweCAtMXB4O1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5jb250ZW50IC50aXRsZSAubm8ta3BpLXRlbXBsYXRlcyB7XG4gIGNvbG9yOiAjYWZhZGI1O1xuICBmb250LXdlaWdodDogNTAwO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5jb250ZW50IC5hZGQtYmFyIHtcbiAgYm9yZGVyLWJvdHRvbTogZGFzaGVkIDFweDtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuY29udGVudCAua3BpLWxvYWRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBtaW4taGVpZ2h0OiAxMTVweDtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuY29udGVudCAuZGF0ZXMtcGlja2VyLWNvbnRhaW5lciB7XG4gIHdpZHRoOiA0MCU7XG4gIG1hcmdpbjogMCBhdXRvO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5jb250ZW50IC5kYXRlcy1waWNrZXItY29udGFpbmVyIC5zZHAtZnJvbS1sYWJlbCxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuY29udGVudCAuZGF0ZXMtcGlja2VyLWNvbnRhaW5lciAuc2RwLXRvLWxhYmVsIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua2V5LXN0YXRzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIHBhZGRpbmc6IDVweCAwcHg7XG59XG4uYW5hbHl0aWNzLnBkZi1tb2RlIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMge1xuICBkaXNwbGF5OiBub25lO1xufVxuLndpZGdldC1pdGVtIHtcbiAgdHJhbnNpdGlvbjogd2lkdGggMC4zcztcbiAgcGFkZGluZzogMTJweDtcbn1cbi53aWRnZXQtaXRlbS5wZGYtbW9kZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAxMnB4IDBweDtcbn1cbi53aWRnZXQtaXRlbSAudG9wLWxpbmUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGN1cnNvcjogbW92ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIHBhZGRpbmc6IDlweCA5cHggMHB4IDEycHg7XG4gIGJvcmRlci1yYWRpdXM6IDVweCA1cHggMHB4IDBweDtcbiAgYm9yZGVyOiBzb2xpZCAxcHggI2M4ZDdkOTtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgbWluLWhlaWdodDogNDFweDtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwcHggMXB4IDhweCAtNHB4O1xuICBib3gtc2hhZG93OiAwcHggMXB4IDhweCAtNHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICB6LWluZGV4OiA0O1xufVxuLndpZGdldC1pdGVtIC5jb250ZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiA5cHg7XG4gIGJvcmRlci1yYWRpdXM6IDBweCAwcHggNXB4IDVweDtcbiAgYm9yZGVyOiBzb2xpZCAxcHggI2M4ZDdkOTtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogMHB4IDFweCA4cHggLTRweDtcbiAgYm94LXNoYWRvdzogMHB4IDFweCA4cHggLTRweDtcbiAgbWluLWhlaWdodDogMjUwcHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLndpZGdldC1pdGVtIC5jb250ZW50IHtcbiAgICBoZWlnaHQ6IDI1MHB4O1xuICB9XG4gIC53aWRnZXQtaXRlbSAuY29udGVudCAuY2hhcnQtY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDI3MHB4O1xuICAgIG1heC1oZWlnaHQ6IDEyNXB4O1xuICAgIG1hcmdpbjogYXV0bztcbiAgfVxufVxuLndpZGdldC1pdGVtIC5jb250ZW50IC5lZGl0IHtcbiAgbWF4LWhlaWdodDogMjMwcHg7XG59XG4ud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLmVkaXQge1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIGNvbG9yOiAjNUI2NjY3O1xuICBwYWRkaW5nOiAycHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbi53aWRnZXQtaXRlbSAuY29udGVudCAuZWRpdCAuYm90dG9tLWJ1dHRvbnMgLmJ0biB7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gIHBhZGRpbmc6IDNweCAxM3B4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LXNpemU6IDEycHg7XG59XG4ud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLmVkaXQgLmJvdHRvbS1idXR0b25zIC5idG4uYnRuLWRlZmF1bHQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzJjNGM0O1xuICBib3JkZXI6IHNvbGlkIDFweCAjYThhYmFiO1xuICBjb2xvcjogd2hpdGU7XG59XG4ud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLmVkaXQgLmJvdHRvbS1idXR0b25zIC5idG4uYnRuLWRlZmF1bHQ6aG92ZXIge1xuICBib3JkZXI6IHNvbGlkIDFweCAjOGU5MjkyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYThhYmFiO1xufVxuLndpZGdldC1pdGVtIC5jb250ZW50IC5lZGl0IGg0IHtcbiAgbWFyZ2luOiAwO1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6ICNjNGNhY2E7XG59XG4ud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLmVkaXQgLnBhcnQge1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gIHBhZGRpbmc6IDEwcHggMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmNmY2ZjO1xuICBib3JkZXI6IHNvbGlkIDFweCAjZGZlMmUyO1xufVxuLndpZGdldC1pdGVtIC5jb250ZW50IC5lZGl0IC5wYXJ0IGg1IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgcGFkZGluZzogMHB4IDE1cHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6ICNjNGNhY2E7XG59XG4ud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLmVkaXQgLnBhcnQgbGFiZWwge1xuICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuLndpZGdldC1pdGVtIC5jb250ZW50IC5lZGl0IC5wYXJ0IHNlbGVjdC5mb3JtLWNvbnRyb2wge1xuICBtYXJnaW46IDBweDtcbiAgYm9yZGVyOiBzb2xpZCAxcHggI2FjYjBiMTtcbiAgb3V0bGluZTogbm9uZTtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGNvbG9yOiAjNzI3MjhiO1xufVxuLndpZGdldC1pdGVtIC5jb250ZW50LmFjY2Vzc2libGUge1xuICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgbWluLWhlaWdodDogMjUwcHggIWltcG9ydGFudDtcbiAgbWF4LWhlaWdodDogYXV0byAhaW1wb3J0YW50O1xufVxuLndpZGdldC1pdGVtIC5jb250ZW50IC5jb250ZW50LXRlbXBsYXRlLXdyYXBwZXIge1xuICBoZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93OiBhdXRvO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG59XG4ud2lkZ2V0LWl0ZW0ucGRmLW1vZGUgLmNvbnRlbnQge1xuICBoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDtcbiAgbWluLWhlaWdodDogMjUwcHggIWltcG9ydGFudDtcbiAgbWF4LWhlaWdodDogbm9uZSAhaW1wb3J0YW50O1xufVxuLndpZGdldC1pdGVtLnBkZi1tb2RlIC5jb250ZW50IC5jb2xsYXBzZSB7XG4gIGRpc3BsYXk6IGluaGVyaXQ7XG59XG4ud2lkZ2V0LWl0ZW0ucGRmLW1vZGUgLmNvbnRlbnQgLmZhLXBsdXMtc3F1YXJlLW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNDdcIjtcbn1cbi53aWRnZXQtaXRlbS5wZGYtbW9kZSAuY29udGVudCAubGVnZW5kIHtcbiAgbWF4LWhlaWdodDogbm9uZSAhaW1wb3J0YW50O1xufVxuLndpZGdldC1pdGVtLnBkZi1tb2RlIC5jb250ZW50IC5jaGFydC1jb250YWluZXIge1xuICBtYXgtaGVpZ2h0OiBub25lO1xufVxuLndpZGdldC1pdGVtLnBkZi1tb2RlIC5jb250ZW50IC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogbm9uZSAhaW1wb3J0YW50O1xufVxuLndpZGdldC1pdGVtLnBkZi1tb2RlIC5jb250ZW50IC5kYXRhLW5vdC1mb3VuZCAubWVzc2FnZSB7XG4gIHBvc2l0aW9uOiBpbmhlcml0O1xuICB3aWR0aDogMTAwJTtcbn1cbi53aWRnZXQtaXRlbS5wZGYtbW9kZSAuaW5jbHVkZS10by1wZGYudGl0bGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSAyKjEycHggKTtcbiAgei1pbmRleDogMztcbiAgcGFkZGluZy1yaWdodDogMXB4O1xufVxuLndpZGdldC1pdGVtLnBkZi1tb2RlIC5pbmNsdWRlLXRvLXBkZi50aXRsZSBoNiB7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkM5Mjg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luOiAwO1xufVxuLndpZGdldC1pdGVtLnBkZi1tb2RlIC5pbmNsdWRlLXRvLXBkZi50aWNrIGkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMzUlO1xuICBsZWZ0OiA0NiU7XG4gIGZvbnQtc2l6ZTogMTAwcHg7XG4gIG9wYWNpdHk6IC41O1xuICB6LWluZGV4OiAyO1xuICBjb2xvcjogYmxhY2s7XG59XG4ud2lkZ2V0LWl0ZW0ucGRmLW1vZGUgLmluY2x1ZGUtdG8tcGRmIC53aWRnZXQtaG92ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBhZGRpbmc6IDlweDtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgZWFzZSAuNXM7XG4gIC1tb3otdHJhbnNpdGlvbjogYWxsIGVhc2UgLjVzO1xuICB0cmFuc2l0aW9uOiBhbGwgZWFzZSAuNXM7XG4gIHotaW5kZXg6IDE7XG59XG4ud2lkZ2V0LWl0ZW0ucGRmLW1vZGUgLmluY2x1ZGUtdG8tcGRmIC53aWRnZXQtaG92ZXI6aG92ZXIge1xuICBvcGFjaXR5OiAuNTtcbiAgYmFja2dyb3VuZDogI0NDQ0ZEMDtcbn1cbi53aWRnZXQtaXRlbSAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmUgPiBbY2xhc3MqPSdjb2wtJ10ge1xuICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLmRhdGEtbm90LWZvdW5kLFxuLmFuYWx5dGljcyAua3BpIC5kYXRhLW5vdC1mb3VuZCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBjb2xvcjogIzVCNjY2Nztcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5kYXRhLW5vdC1mb3VuZCAub3ZlcmxheSxcbi5hbmFseXRpY3MgLmtwaSAuZGF0YS1ub3QtZm91bmQgLm92ZXJsYXkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDRweCk7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSA0cHgpO1xuICB0b3A6IDJweDtcbiAgbGVmdDogMnB4O1xuICBvcGFjaXR5OiAwLjY7XG4gIHotaW5kZXg6IDM7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuZGF0YS1ub3QtZm91bmQgLm1lc3NhZ2UsXG4uYW5hbHl0aWNzIC5rcGkgLmRhdGEtbm90LWZvdW5kIC5tZXNzYWdlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDEyNXB4O1xuICBsZWZ0OiA1MCU7XG4gIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgd2lkdGg6IDg1JTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0ZjhmOTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDI1cHggMHB4O1xuICB6LWluZGV4OiA0O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLmRhdGEtbm90LWZvdW5kIC5tZXNzYWdlIC50aXRsZSxcbi5hbmFseXRpY3MgLmtwaSAuZGF0YS1ub3QtZm91bmQgLm1lc3NhZ2UgLnRpdGxlIHtcbiAgcGFkZGluZzogMnB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTkyODMxO1xuICBjb2xvcjogd2hpdGU7XG4gIG1hcmdpbjogLTFweCAtMXB4IDEwcHggLTFweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5kYXRhLW5vdC1mb3VuZCAubWVzc2FnZSBwLFxuLmFuYWx5dGljcyAua3BpIC5kYXRhLW5vdC1mb3VuZCAubWVzc2FnZSBwIHtcbiAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgbWFyZ2luLXJpZ2h0OiA1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuZGF0YS1ub3QtZm91bmQgLm1lc3NhZ2UgLmJ0bixcbi5hbmFseXRpY3MgLmtwaSAuZGF0YS1ub3QtZm91bmQgLm1lc3NhZ2UgLmJ0biB7XG4gIG1hcmdpbi10b3A6IDVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5kYXRhLW5vdC1mb3VuZCAuZXhhbXBsZSxcbi5hbmFseXRpY3MgLmtwaSAuZGF0YS1ub3QtZm91bmQgLmV4YW1wbGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMHB4O1xuICBsZWZ0OiAwcHg7XG4gIHdpZHRoOiAxMDAlO1xuICBjb2xvcjogd2hpdGU7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxOTI4MzE7XG4gIHBhZGRpbmc6IDNweDtcbiAgei1pbmRleDogNjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5kYXRhLW5vdC1mb3VuZCAuZXhhbXBsZSBhLFxuLmFuYWx5dGljcyAua3BpIC5kYXRhLW5vdC1mb3VuZCAuZXhhbXBsZSBhIHtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgY29sb3I6ICNkYWUxNzM7XG59XG4uYW5hbHl0aWNzIC5rcGkgLmRhdGEtbm90LWZvdW5kIC5tZXNzYWdlIHtcbiAgd2lkdGg6IDkwJTtcbiAgcGFkZGluZy1ib3R0b206IDBweDtcbiAgYm9yZGVyOiBzb2xpZCAxcHggc2lsdmVyO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLmFuYWx5dGljcyAua3BpIC5kYXRhLW5vdC1mb3VuZCAubWVzc2FnZSBwIHtcbiAgbWFyZ2luOiA1cHg7XG59XG4uYW5hbHl0aWNzIC5rcGkgLmRhdGEtbm90LWZvdW5kIC5vdmVybGF5LFxuLmFuYWx5dGljcyAua3BpIC5kYXRhLW5vdC1mb3VuZCAudGl0bGUsXG4uYW5hbHl0aWNzIC5rcGkgLmRhdGEtbm90LWZvdW5kIC5idG4sXG4uYW5hbHl0aWNzIC5rcGkgLmRhdGEtbm90LWZvdW5kIC5leGFtcGxlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbiNkdXBsaWNhdGUtdHJhbnNhY3Rpb25zLWxpc3QgLnRvcCB7XG4gIGhlaWdodDogNDBweDtcbn1cbiNkdXBsaWNhdGUtdHJhbnNhY3Rpb25zLWxpc3QgLnRvcCBhLmJhY2stbGluayB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG4jZHVwbGljYXRlLXRyYW5zYWN0aW9ucy1saXN0IC50b3AgLnBhZ2luYXRpb24ge1xuICBtYXJnaW46IDBweDtcbn1cbiNkdXBsaWNhdGUtdHJhbnNhY3Rpb25zLWxpc3QgLnRhYmxlLXN0cmlwZWQgdHIub3JpZ2luOm50aC1vZi10eXBlKG9kZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmOWY5O1xufVxuI2R1cGxpY2F0ZS10cmFuc2FjdGlvbnMtbGlzdCAudGFibGUtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogY2FsYyg1NjVweCAtIDYwcHgpO1xuICBvdmVyZmxvdzogYXV0bztcbn1cbiNkdXBsaWNhdGUtdHJhbnNhY3Rpb25zLWxpc3QgLnRhYmxlLWNvbnRhaW5lciBkaXZbdWliLWRhdGVwaWNrZXItcG9wdXAtd3JhcF0ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4jZHVwbGljYXRlLXRyYW5zYWN0aW9ucy1saXN0IC50YWJsZS1jb250YWluZXIgaW5wdXQuYnRuLmJ0bi14cyB7XG4gIG1hcmdpbi10b3A6IC0ycHg7XG59XG4jZHVwbGljYXRlLXRyYW5zYWN0aW9ucy1saXN0IC50YWJsZS1jb250YWluZXIgYnV0dG9uLmJ0bi5yZXNldC1kYXRlIHtcbiAgbWFyZ2luLXRvcDogLTJweDtcbn1cbiNkdXBsaWNhdGUtdHJhbnNhY3Rpb25zLWxpc3QgLnRhYmxlLWNvbnRhaW5lciAuZmEuZmEtdGltZXMge1xuICBjb2xvcjogI2UwMWY3NDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuI2R1cGxpY2F0ZS10cmFuc2FjdGlvbnMtbGlzdCAudGFibGUtY29udGFpbmVyIHRyLnRvdGFsIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4jZHVwbGljYXRlLXRyYW5zYWN0aW9ucy1saXN0IC50YWJsZS1jb250YWluZXIgdHIudG90YWwuaW52b2ljZXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBlNjAwO1xufVxuI2R1cGxpY2F0ZS10cmFuc2FjdGlvbnMtbGlzdCAudGFibGUtY29udGFpbmVyIHRyLnRvdGFsLmJpbGxzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y1N2NiMTtcbn1cbiN0cmFuc2FjdGlvbnMtYWRkIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGNvbG9yOiAjNUI2NjY3O1xufVxuI3RyYW5zYWN0aW9ucy1hZGQgLm92ZXJsYXkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDRweCk7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSA0cHgpO1xuICB0b3A6IDJweDtcbiAgbGVmdDogMnB4O1xuICBvcGFjaXR5OiAwLjY7XG4gIHotaW5kZXg6IDU7XG59XG4jdHJhbnNhY3Rpb25zLWFkZCAubWVzc2FnZSB7XG4gIHotaW5kZXg6IDY7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbWluLWhlaWdodDogMTYwcHg7XG4gIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuICB0b3A6IDQ1cHg7XG4gIGxlZnQ6IDclO1xuICB3aWR0aDogODYlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjRmOGY5O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMjVweCAwcHg7XG59XG4jdHJhbnNhY3Rpb25zLWFkZCAubWVzc2FnZSAudGl0bGUge1xuICBwYWRkaW5nOiAycHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxOTI4MzE7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgbWFyZ2luOiAtMXB4IC0xcHggMTBweCAtMXB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuI3RyYW5zYWN0aW9ucy1hZGQgLm1lc3NhZ2Uge1xuICB0b3A6IDMwcHg7XG4gIGxlZnQ6IDM1JTtcbiAgd2lkdGg6IDMwJTtcbn1cbiN0cmFuc2FjdGlvbnMtYWRkIC5tZXNzYWdlIC5mb3JtIHtcbiAgcGFkZGluZzogMHB4IDEwcHg7XG59XG4jdHJhbnNhY3Rpb25zLWFkZCAubWVzc2FnZSAuZm9ybSA+IGxhYmVsLFxuI3RyYW5zYWN0aW9ucy1hZGQgLm1lc3NhZ2UgLmZvcm0gLnNjaGVkdWxhYmxlLXNlY3Rpb24gPiBsYWJlbCB7XG4gIHBhZGRpbmctdG9wOiAxMHB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBtYXJnaW4tYm90dG9tOiAzcHg7XG59XG4jdHJhbnNhY3Rpb25zLWFkZCAubWVzc2FnZSAuZm9ybSBpbnB1dC5mb3JtLWNvbnRyb2wsXG4jdHJhbnNhY3Rpb25zLWFkZCAubWVzc2FnZSAuZm9ybSBzZWxlY3QuZm9ybS1jb250cm9sIHtcbiAgd2lkdGg6IDkwJTtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBoZWlnaHQ6IDI4cHg7XG4gIGZvbnQtc2l6ZTogMTNweDtcbn1cbiN0cmFuc2FjdGlvbnMtYWRkIC5tZXNzYWdlIC5mb3JtIC5idG4tZ3JvdXAge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWluLWhlaWdodDogMjJweDtcbn1cbiN0cmFuc2FjdGlvbnMtYWRkIC5tZXNzYWdlIC5mb3JtIC5idG4tZ3JvdXAgc2VsZWN0IHtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBoZWlnaHQ6IDI4cHg7XG4gIG1hcmdpbi10b3A6IDBweDtcbn1cbiN0cmFuc2FjdGlvbnMtYWRkIC5tZXNzYWdlIC5mb3JtIC5kaXNhYmxlIHtcbiAgY29sb3I6ICM4ODg4ODg7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cbiN0cmFuc2FjdGlvbnMtYWRkIC5tZXNzYWdlIC5mb3JtIC5uZXZlci1kaXNhYmxlIHtcbiAgY29sb3I6IGJsYWNrO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG4jdHJhbnNhY3Rpb25zLWFkZCAubWVzc2FnZSAuZm9ybSAucmVwZWF0LWJ0biB7XG4gIG1hcmdpbi10b3A6IDMwcHg7XG59XG4jdHJhbnNhY3Rpb25zLWFkZCAubWVzc2FnZSAuZm9ybSAucmVwZWF0LWJ0biBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICB2ZXJ0aWNhbC1hbGlnbjogdGV4dC1ib3R0b207XG4gIG1hcmdpbjogMHB4O1xufVxuI3RyYW5zYWN0aW9ucy1hZGQgLm1lc3NhZ2UgLmZvcm0gLnJlcGVhdC1idG4gc2VsZWN0IHtcbiAgaGVpZ2h0OiAyMnB4O1xufVxuI3RyYW5zYWN0aW9ucy1hZGQgLm1lc3NhZ2UgLmZvcm0gLnJlcGVhdC1idG4gLmJ0biB7XG4gIGZsb2F0OiBub25lO1xuICBib3JkZXItY29sb3I6ICM4ODg4ODg7XG59XG4jdHJhbnNhY3Rpb25zLWFkZCAubWVzc2FnZSAuZm9ybSAuc2NoZWR1bGFibGUtc2VjdGlvbiB7XG4gIHBhZGRpbmc6IDVweDtcbiAgYm9yZGVyOiBzb2xpZCAxcHggc2lsdmVyO1xuICBtYXJnaW4tdG9wOiAwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuI3RyYW5zYWN0aW9ucy1hZGQgLm1lc3NhZ2UgLmZvcm0gLnNjaGVkdWxhYmxlLXNlY3Rpb24gLmJhZGdlIHtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzg4ODg4ODtcbn1cbiN0cmFuc2FjdGlvbnMtYWRkIC5tZXNzYWdlIC5mb3JtIC5zY2hlZHVsYWJsZS1zZWN0aW9uIC5pbnRlcnZhbC1maWVsZCB7XG4gIHdpZHRoOiA0MHB4O1xufVxuI3RyYW5zYWN0aW9ucy1hZGQgLm1lc3NhZ2UgLmZvcm0gLnNjaGVkdWxhYmxlLXNlY3Rpb24gLmJ0bi1ncm91cCB7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xufVxuI3RyYW5zYWN0aW9ucy1hZGQgLm1lc3NhZ2UgLmZvcm0gLnNjaGVkdWxhYmxlLXNlY3Rpb24gLmJ0bi1ncm91cCBzZWxlY3Qge1xuICBoZWlnaHQ6IDIycHg7XG59XG4jdHJhbnNhY3Rpb25zLWFkZCAubWVzc2FnZSAuZm9ybSAuc2NoZWR1bGFibGUtc2VjdGlvbiAuYnRuLWdyb3VwIC5idG4ge1xuICBmbG9hdDogbm9uZTtcbiAgYm9yZGVyLWNvbG9yOiAjODg4ODg4O1xufVxuI3RyYW5zYWN0aW9ucy1hZGQgLm1lc3NhZ2UgLmJvdHRvbSB7XG4gIG1hcmdpbi10b3A6IDIwcHg7XG59XG4jdHJhbnNhY3Rpb25zLWxpc3QgLnRvcCB7XG4gIGhlaWdodDogNDBweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuI3RyYW5zYWN0aW9ucy1saXN0IC50b3AgLmJhY2sge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG4jdHJhbnNhY3Rpb25zLWxpc3QgLnRvcCAucmVzb3VyY2UtdHlwZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogY2FsYyg1MCUgLSA5OHB4KTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAjdHJhbnNhY3Rpb25zLWxpc3QgLnRvcCAucmVzb3VyY2UtdHlwZSB7XG4gICAgbGVmdDogdW5zZXQ7XG4gICAgcmlnaHQ6IDA7XG4gIH1cbn1cbiN0cmFuc2FjdGlvbnMtbGlzdCAudG9wIC5idG4tZ3JvdXAge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuI3RyYW5zYWN0aW9ucy1saXN0IC5ib3R0b20ge1xuICBoZWlnaHQ6IDQwcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuI3RyYW5zYWN0aW9ucy1saXN0IC5ib3R0b20gLnBhZ2luYXRpb24ge1xuICBtYXJnaW46IDBweDtcbn1cbiN0cmFuc2FjdGlvbnMtbGlzdCAudGFibGUtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogY2FsYyg1NjVweCAtIDEwMHB4KTtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIHdpZHRoOiAxMDAlO1xufVxuI3RyYW5zYWN0aW9ucy1saXN0IC50YWJsZS1jb250YWluZXIgZGl2W3VpYi1kYXRlcGlja2VyLXBvcHVwLXdyYXBdIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuI3RyYW5zYWN0aW9ucy1saXN0IC50YWJsZS1jb250YWluZXIgaW5wdXQuYnRuLmJ0bi14cyB7XG4gIG1hcmdpbi10b3A6IC0ycHg7XG59XG4jdHJhbnNhY3Rpb25zLWxpc3QgLnRhYmxlLWNvbnRhaW5lciBidXR0b24uYnRuLnJlc2V0LWRhdGUge1xuICBtYXJnaW4tdG9wOiAtMnB4O1xufVxuI3RyYW5zYWN0aW9ucy1saXN0IC50YWJsZS1jb250YWluZXIgLmFjdGlvbnMge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4jdHJhbnNhY3Rpb25zLWxpc3QgLnRhYmxlLWNvbnRhaW5lciAuYWN0aW9ucyAuZmEuZmEtdGltZXMge1xuICBjb2xvcjogI2UwMWY3NDtcbn1cbiN0cmFuc2FjdGlvbnMtbGlzdCAudGFibGUtY29udGFpbmVyIHRyLnRvdGFsIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4jdHJhbnNhY3Rpb25zLWxpc3QgLnRhYmxlLWNvbnRhaW5lciB0ci50b3RhbC5pbnZvaWNlcyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjMWQxYjE7XG59XG4jdHJhbnNhY3Rpb25zLWxpc3QgLnRhYmxlLWNvbnRhaW5lciB0ci50b3RhbC5iaWxscyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlMmFlYjk7XG59XG4jdHJhbnNhY3Rpb25zLWxpc3QgLnRhYmxlLWNvbnRhaW5lciB0ZCA+IC5leHBlY3RlZC1wYXltZW50LWRhdGUge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuI3RyYW5zYWN0aW9ucy1saXN0IC50YWJsZS1jb250YWluZXIgdGQgPiAuZXhwZWN0ZWQtcGF5bWVudC1kYXRlIC5yZXNldC1kYXRlIHtcbiAgbWFyZ2luLWxlZnQ6IDNweDtcbn1cbiN0cmVuZHMtbGlzdCAudG9wIHtcbiAgaGVpZ2h0OiA0MHB4O1xufVxuI3RyZW5kcy1saXN0IC50b3AgYS5iYWNrLWxpbmsge1xuICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuI3RyZW5kcy1saXN0IC50b3AgLnBhZ2luYXRpb24ge1xuICBtYXJnaW46IDBweDtcbn1cbiN0cmVuZHMtbGlzdCAudGFibGUtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogY2FsYyg1NjVweCAtIDYwcHgpO1xuICBvdmVyZmxvdzogYXV0bztcbn1cbiN0cmVuZHMtbGlzdCAudGFibGUtY29udGFpbmVyIGRpdlt1aWItZGF0ZXBpY2tlci1wb3B1cC13cmFwXSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbiN0cmVuZHMtbGlzdCAudGFibGUtY29udGFpbmVyIGlucHV0LmJ0bi5idG4teHMge1xuICBtYXJnaW4tdG9wOiAtMnB4O1xufVxuI3RyZW5kcy1saXN0IC50YWJsZS1jb250YWluZXIgYnV0dG9uLmJ0bi5yZXNldC1kYXRlIHtcbiAgbWFyZ2luLXRvcDogLTJweDtcbn1cbiN0cmVuZHMtYWRkIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGNvbG9yOiAjNUI2NjY3O1xufVxuI3RyZW5kcy1hZGQgLm92ZXJsYXkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDRweCk7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSA0cHgpO1xuICB0b3A6IDJweDtcbiAgbGVmdDogMnB4O1xuICBvcGFjaXR5OiAwLjY7XG4gIHotaW5kZXg6IDU7XG59XG4jdHJlbmRzLWFkZCAubWVzc2FnZSB7XG4gIHotaW5kZXg6IDY7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbWluLWhlaWdodDogMTYwcHg7XG4gIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuICB0b3A6IDQ1cHg7XG4gIGxlZnQ6IDclO1xuICB3aWR0aDogODYlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjRmOGY5O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMjVweCAwcHg7XG59XG4jdHJlbmRzLWFkZCAubWVzc2FnZSAudGl0bGUge1xuICBwYWRkaW5nOiAycHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxOTI4MzE7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgbWFyZ2luOiAtMXB4IC0xcHggMTBweCAtMXB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuI3RyZW5kcy1hZGQgLm1lc3NhZ2Uge1xuICB0b3A6IDMwcHg7XG4gIGxlZnQ6IDM1JTtcbiAgd2lkdGg6IDMwJTtcbn1cbiN0cmVuZHMtYWRkIC5tZXNzYWdlIC5mb3JtIHtcbiAgcGFkZGluZzogMHB4IDEwcHg7XG59XG4jdHJlbmRzLWFkZCAubWVzc2FnZSAuZm9ybSA+IGxhYmVsIHtcbiAgcGFkZGluZy10b3A6IDEwcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIG1hcmdpbi1ib3R0b206IDNweDtcbn1cbiN0cmVuZHMtYWRkIC5tZXNzYWdlIC5mb3JtIGlucHV0LmZvcm0tY29udHJvbCB7XG4gIHdpZHRoOiA5MCU7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgaGVpZ2h0OiAyOHB4O1xuICBmb250LXNpemU6IDEzcHg7XG59XG4jdHJlbmRzLWFkZCAubWVzc2FnZSAuZm9ybSAuYnRuLWdyb3VwIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1pbi1oZWlnaHQ6IDIycHg7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG59XG4jdHJlbmRzLWFkZCAubWVzc2FnZSAuZm9ybSAuYnRuLWdyb3VwID4gLmJ0biB7XG4gIGZsb2F0OiBub25lO1xufVxuI3RyZW5kcy1hZGQgLm1lc3NhZ2UgLmZvcm0gLmJ0bi1ncm91cCBpbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICBtYXJnaW46IDRweCAwIDEwcHg7XG59XG4jdHJlbmRzLWFkZCAubWVzc2FnZSAuYm90dG9tIHtcbiAgbWFyZ2luLXRvcDogMjBweDtcbn1cbi5hbmFseXRpY3MgLmRhc2hib2FyZC1zZXR0aW5ncy5jdXJyZW5jeSB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuLmFuYWx5dGljcyAuZGFzaGJvYXJkLXNldHRpbmdzLmN1cnJlbmN5IHNlbGVjdCB7XG4gIG1hcmdpbi10b3A6IDRweDtcbn1cbi5hbmFseXRpY3MgLmRhc2hib2FyZC1zZXR0aW5ncy5zeW5jLWFwcHMgLnNob3ctc3RhdHVzIHtcbiAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gIGNvbG9yOiAjOWJhNmE3O1xufVxuLmFuYWx5dGljcyAuZGFzaGJvYXJkLXNldHRpbmdzLnN5bmMtYXBwcyAuc2hvdy1zdGF0dXM6aG92ZXIge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuLmFuYWx5dGljcyAuZGFzaGJvYXJkLXNldHRpbmdzLnN5bmMtYXBwcyAuc2hvdy1zdGF0dXMgLmZhLmZhLWluZm8ge1xuICBtYXJnaW4tcmlnaHQ6IDJweDtcbn1cbi5hbmFseXRpY3MgLmRhc2hib2FyZC1zZXR0aW5ncy5zeW5jLWFwcHMgLnN0YXR1cy1idG4ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcGFkZGluZzogNXB4IDdweCA1cHggMHB4O1xufVxuLmFuYWx5dGljcyAuZGFzaGJvYXJkLXNldHRpbmdzLnN5bmMtYXBwcyAuc3RhdHVzLWJ0biBpIHtcbiAgZm9udC1zaXplOiAxNnB4O1xufVxuLmFuYWx5dGljcyAuZGFzaGJvYXJkLXNldHRpbmdzLnN5bmMtYXBwcyAuc3RhdHVzLWJ0biBpLmZhLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlIHtcbiAgY29sb3I6ICNmZjczMDA7XG59XG4uYW5hbHl0aWNzIC5kYXNoYm9hcmQtc2V0dGluZ3Muc3luYy1hcHBzIC5zdGF0dXMtYnRuIGkuZmEtY2hlY2sge1xuICBjb2xvcjogI2QxZTU1Yztcbn1cbi5hbmFseXRpY3MgLmRhc2hib2FyZC1zZXR0aW5ncy5zeW5jLWFwcHMgLnBvcG92ZXIge1xuICBtYXgtd2lkdGg6IDU1MHB4O1xufVxuLmFuYWx5dGljcyAuZGFzaGJvYXJkLXNldHRpbmdzLnN5bmMtYXBwcyAucG9wb3ZlciAuY29ubmVjdG9yIHtcbiAgcGFkZGluZzogNHB4IDEzcHg7XG59XG4uYW5hbHl0aWNzIC5kYXNoYm9hcmQtc2V0dGluZ3Muc3luYy1hcHBzIC5wb3BvdmVyIC5jb25uZWN0b3IuYWRkLXNlcGVyYXRvciB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjO1xufVxuLmFuYWx5dGljcyAuZGFzaGJvYXJkLXNldHRpbmdzLnN5bmMtYXBwcyAucG9wb3ZlciAucG9wb3Zlci1jb250ZW50IHtcbiAgcGFkZGluZzogMDtcbn1cbi5hbmFseXRpY3MgLmRhc2hib2FyZC1zZXR0aW5ncy5zeW5jLWFwcHMgLnBvcG92ZXIgLnBvcG92ZXItZm9vdGVyIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7XG4gIHBhZGRpbmc6IDRweCAxM3B4O1xufVxuLmFuYWx5dGljcyAuZGFzaGJvYXJkLXNldHRpbmdzLnN5bmMtYXBwcyAucG9wb3ZlciAucG9wb3Zlci1mb290ZXIgcCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBtYXJnaW46IDA7XG59XG4uYW5hbHl0aWNzIC5kYXNoYm9hcmQtc2V0dGluZ3Muc3luYy1hcHBzIC5wb3BvdmVyIC5wb3BvdmVyLWZvb3Rlci5yZW1vdmUtc2VwZXJhdG9yIHtcbiAgYm9yZGVyOiAwO1xufVxuLmFuYWx5dGljcyAuZGFzaGJvYXJkLXNldHRpbmdzLnN5bmMtYXBwcyAuYmFkZ2Uge1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbi1sZWZ0OiA4cHg7XG59XG4uYW5hbHl0aWNzIC5kYXNoYm9hcmQtc2V0dGluZ3Muc3luYy1hcHBzIC5zdWNjZXNzIC5iYWRnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkMWU1NWM7XG59XG4uYW5hbHl0aWNzIC5kYXNoYm9hcmQtc2V0dGluZ3Muc3luYy1hcHBzIC5wZW5kaW5nIC5iYWRnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjczMDA7XG59XG4uYW5hbHl0aWNzIC5kYXNoYm9hcmQtc2V0dGluZ3Muc3luYy1hcHBzIC5ydW5uaW5nIC5iYWRnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjczMDA7XG59XG4uYW5hbHl0aWNzIC5kYXNoYm9hcmQtc2V0dGluZ3Muc3luYy1hcHBzIC5lcnJvciAuYmFkZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWQxZTc5O1xufVxuLmFuYWx5dGljcyAuZGFzaGJvYXJkLXNldHRpbmdzLnN5bmMtYXBwcyAuZmFpbGVkIC5iYWRnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZDFlNzk7XG59XG4uYW5hbHl0aWNzIC5kYXNoYm9hcmQtc2V0dGluZ3Muc3luYy1hcHBzIC51bmtub3duIC5iYWRnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZDFlNzk7XG59XG4uYW5hbHl0aWNzIC5kYXNoYm9hcmQtc2V0dGluZ3Muc3luYy1hcHBzIC5kaXNjb25uZWN0ZWQgLmJhZGdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VkMWU3OTtcbn1cbiNzeW5jLWFwcHMtbW9kYWwgLm1vZGFsLWhlYWRlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYm9yZGVyOiAwO1xuICBib3gtc2hhZG93OiAwcHggMnB4IDNweCAwcHggI2NjYztcbn1cbiNzeW5jLWFwcHMtbW9kYWwgLm1vZGFsLWxpc3Qge1xuICBtYXgtaGVpZ2h0OiAyODBweDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbn1cbiNzeW5jLWFwcHMtbW9kYWwgLm1vZGFsLWxpc3QtaXRlbSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjO1xuICBwYWRkaW5nOiAxMHB4O1xufVxuI3N5bmMtYXBwcy1tb2RhbCAubW9kYWwtbGlzdC1pdGVtIC5iYWRnZSB7XG4gIGZsb2F0OiByaWdodDtcbn1cbiNzeW5jLWFwcHMtbW9kYWwgLm1vZGFsLWxpc3QtaXRlbS5zdWNjZXNzIC5iYWRnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkMWU1NWM7XG59XG4jc3luYy1hcHBzLW1vZGFsIC5tb2RhbC1saXN0LWl0ZW0ucGVuZGluZyAuYmFkZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY3MzAwO1xufVxuI3N5bmMtYXBwcy1tb2RhbCAubW9kYWwtbGlzdC1pdGVtLnJ1bm5pbmcgLmJhZGdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNzMwMDtcbn1cbiNzeW5jLWFwcHMtbW9kYWwgLm1vZGFsLWxpc3QtaXRlbS5lcnJvciAuYmFkZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWQxZTc5O1xufVxuI3N5bmMtYXBwcy1tb2RhbCAubW9kYWwtbGlzdC1pdGVtLmZhaWxlZCAuYmFkZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWQxZTc5O1xufVxuI3N5bmMtYXBwcy1tb2RhbCAubW9kYWwtbGlzdC1pdGVtLnVua25vd24gLmJhZGdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VkMWU3OTtcbn1cbiNzeW5jLWFwcHMtbW9kYWwgLm1vZGFsLWxpc3QtaXRlbS5kaXNjb25uZWN0ZWQgLmJhZGdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VkMWU3OTtcbn1cbiNzeW5jLWFwcHMtbW9kYWwgLm1vZGFsLWxpc3QtaXRlbSAubWVzc2FnZSB7XG4gIHBhZGRpbmc6IDNweDtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBtYXJnaW4tbGVmdDogMzFweDtcbiAgbWFyZ2luLXRvcDogOXB4O1xufVxuI3N5bmMtYXBwcy1tb2RhbCAubW9kYWwtbGlzdC1pdGVtIC5tZXNzYWdlIHAge1xuICBtYXJnaW46IDA7XG59XG4jc3luYy1hcHBzLW1vZGFsIC5tb2RhbC1saXN0LWl0ZW0uc3VjY2VzcyAubWVzc2FnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMjU1LCA1NSwgMC4wOCk7XG59XG4jc3luYy1hcHBzLW1vZGFsIC5tb2RhbC1saXN0LWl0ZW0ucGVuZGluZyAubWVzc2FnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAxMTgsIDAsIDAuMDgpO1xufVxuI3N5bmMtYXBwcy1tb2RhbCAubW9kYWwtbGlzdC1pdGVtLnJ1bm5pbmcgLm1lc3NhZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMTE4LCAwLCAwLjA4KTtcbn1cbiNzeW5jLWFwcHMtbW9kYWwgLm1vZGFsLWxpc3QtaXRlbS5lcnJvciAubWVzc2FnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAwLCAwLCAwLjA4KTtcbn1cbiNzeW5jLWFwcHMtbW9kYWwgLm1vZGFsLWxpc3QtaXRlbS5mYWlsZWQgLm1lc3NhZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMCwgMCwgMC4wOCk7XG59XG4jc3luYy1hcHBzLW1vZGFsIC5tb2RhbC1saXN0LWl0ZW0udW5rbm93biAubWVzc2FnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAwLCAwLCAwLjA4KTtcbn1cbiNzeW5jLWFwcHMtbW9kYWwgLm1vZGFsLWxpc3QtaXRlbS5kaXNjb25uZWN0ZWQgLm1lc3NhZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMCwgMCwgMC4wOCk7XG59XG4jc3luYy1hcHBzLW1vZGFsIC5tb2RhbC1saXN0LWl0ZW0ud2l0aC1tZXNzYWdlIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuI3N5bmMtYXBwcy1tb2RhbCAubW9kYWwtbGlzdC1pdGVtLndpdGgtbWVzc2FnZTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjY2M7XG59XG4jc3luYy1hcHBzLW1vZGFsIC5tb2RhbC1mb290ZXIge1xuICBib3JkZXI6IDA7XG59XG4jc3luYy1hcHBzLW1vZGFsIC5mYSB7XG4gIHBhZGRpbmc6IDBweCAxMHB4O1xufVxuI3N5bmMtYXBwcy1tb2RhbCAuZmEuZXJyb3Ige1xuICBjb2xvcjogI0ZGMDAwMDtcbn1cbiNzeW5jLWFwcHMtbW9kYWwgLmZhLndhcm4ge1xuICBjb2xvcjogI2ZmNzMwMDtcbn1cbiNzeW5jLWFwcHMtbW9kYWwgLmZhLnN1Y2Nlc3Mge1xuICBjb2xvcjogIzQ3ZmYwMDtcbn1cbmNoYXJ0LXRocmVzaG9sZCAuYXR0YWNoLXBhbmVsIHtcbiAgcGFkZGluZzogNXB4IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjAsIDEzMiwgMjI4LCAwLjE2KTtcbn1cbmNoYXJ0LXRocmVzaG9sZCAuYXR0YWNoLXBhbmVsID4gZGl2IHtcbiAgcGFkZGluZy1yaWdodDogNXB4O1xufVxuY2hhcnQtdGhyZXNob2xkIC5hdHRhY2gtcGFuZWwgPiBkaXYudGFyZ2V0IHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDExOTlweCkge1xuICBjaGFydC10aHJlc2hvbGQgLmF0dGFjaC1wYW5lbCB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG4gIGNoYXJ0LXRocmVzaG9sZCAuYXR0YWNoLXBhbmVsID4gZGl2IHtcbiAgICBwYWRkaW5nOiA1cHg7XG4gIH1cbn1cbmNoYXJ0LXRocmVzaG9sZCAuYXR0YWNoLXBhbmVsIC50ZXh0IHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAjNUI2NjY3O1xuICBmb250LXNpemU6IDEzcHg7XG59XG5jaGFydC10aHJlc2hvbGQgLmF0dGFjaC1wYW5lbCBpbnB1dCB7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYm9yZGVyOiAxcHggd2hpdGU7XG4gIHBhZGRpbmc6IDNweDtcbn1cbmNoYXJ0LXRocmVzaG9sZCAuYXR0YWNoLXBhbmVsIGlucHV0W25hbWU9YW1vdW50XSB7XG4gIG1heC13aWR0aDogNzBweDtcbn1cbmNoYXJ0LXRocmVzaG9sZCAuYXR0YWNoLXBhbmVsIC5jdXJyZW5jeSB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogIzAwMDtcbn1cbmNoYXJ0LXRocmVzaG9sZCAuYXR0YWNoLXBhbmVsIC5hY3Rpb25zIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAwIDJweDtcbn1cbmNoYXJ0LXRocmVzaG9sZCAuYXR0YWNoLXBhbmVsIC5hY3Rpb25zIGJ1dHRvbiB7XG4gIHBhZGRpbmc6IDNweCA2cHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbmNoYXJ0LXRocmVzaG9sZCAuYXR0YWNoLXBhbmVsIC5hY3Rpb25zIGJ1dHRvbi5sb2FkaW5nIHtcbiAgcGFkZGluZzogM3B4IDIwcHg7XG59XG4uYW5hbHl0aWNzIHdpZGdldHMtY29tbW9uLWNvbmZpcm0tbW9kYWwge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgY29sb3I6ICM1QjY2Njc7XG59XG4uYW5hbHl0aWNzIHdpZGdldHMtY29tbW9uLWNvbmZpcm0tbW9kYWwgLm92ZXJsYXkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDRweCk7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSA0cHgpO1xuICB0b3A6IDJweDtcbiAgbGVmdDogMnB4O1xuICBvcGFjaXR5OiAwLjY7XG4gIHotaW5kZXg6IDU7XG59XG4uYW5hbHl0aWNzIHdpZGdldHMtY29tbW9uLWNvbmZpcm0tbW9kYWwgLm1lc3NhZ2Uge1xuICB6LWluZGV4OiA2O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG1pbi1oZWlnaHQ6IDE2MHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMTBweDtcbiAgdG9wOiA0NXB4O1xuICBsZWZ0OiA3JTtcbiAgd2lkdGg6IDg2JTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0ZjhmOTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDI1cHggMHB4O1xufVxuLmFuYWx5dGljcyB3aWRnZXRzLWNvbW1vbi1jb25maXJtLW1vZGFsIC5tZXNzYWdlIC50aXRsZSB7XG4gIHBhZGRpbmc6IDJweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE5MjgzMTtcbiAgY29sb3I6IHdoaXRlO1xuICBtYXJnaW46IC0xcHggLTFweCAxMHB4IC0xcHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG4uYW5hbHl0aWNzIHdpZGdldHMtY29tbW9uLWNvbmZpcm0tbW9kYWwgLm1lc3NhZ2Uge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG4uYW5hbHl0aWNzIHdpZGdldHMtY29tbW9uLWNvbmZpcm0tbW9kYWwgLm1lc3NhZ2UgcCB7XG4gIHBhZGRpbmc6IDBweCAxMHB4O1xufVxuLmFuYWx5dGljcyB3aWRnZXRzLWNvbW1vbi1jb25maXJtLW1vZGFsIC5tZXNzYWdlIGJ1dHRvbi5idG4ge1xuICBtYXJnaW4tdG9wOiAyMHB4O1xufVxuLmFuYWx5dGljcyB3aWRnZXRzLWNvbW1vbi1jb25maXJtLW1vZGFsIC5tZXNzYWdlIC5sb2FkZXIgaS5mYS5mYS1zcGlubmVyIHtcbiAgZm9udC1zaXplOiAyNnB4O1xufVxuLmN1cnJlbmN5LWNvbnZlcnNpb25zIGltZyB7XG4gIHdpZHRoOiAxNXB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uY3VycmVuY3ktY29udmVyc2lvbnMucG9wb3ZlciAucG9wb3Zlci10aXRsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xuICBjb2xvcjogd2hpdGU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuZWRpdGFibGUtdGl0bGUge1xuICB3aWR0aDogMTAwJTtcbiAgZmxleDogMTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgaGVpZ2h0OiAyMnB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmVkaXRhYmxlLXRpdGxlIC50aXRsZSB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6ICM0ZjU5NTk7XG4gIGN1cnNvcjogdGV4dDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIGxpbmUtaGVpZ2h0OiAxLjk7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuZWRpdGFibGUtdGl0bGUgLmVkaXRhYmxlLXdyYXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMjBweDtcbiAgbWluLXdpZHRoOiAxMDAlO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmVkaXRhYmxlLXRpdGxlIC5lZGl0YWJsZS13cmFwIC5lZGl0YWJsZS1jb250cm9scyB7XG4gIG1pbi13aWR0aDogMTAwJTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5lZGl0YWJsZS10aXRsZSAuZWRpdGFibGUtd3JhcCAuZWRpdGFibGUtY29udHJvbHMgLmVkaXRhYmxlLWlucHV0IHtcbiAgaGVpZ2h0OiAyMHB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSA2NXB4KTtcbiAgcGFkZGluZzogMHB4IDNweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5lZGl0YWJsZS10aXRsZSAuZWRpdGFibGUtd3JhcCAuZWRpdGFibGUtY29udHJvbHMgLmVkaXRhYmxlLWJ1dHRvbnMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5lZGl0YWJsZS10aXRsZSAuZWRpdGFibGUtd3JhcCAuZWRpdGFibGUtY29udHJvbHMgLmVkaXRhYmxlLWJ1dHRvbnMgYnV0dG9uIHtcbiAgbWFyZ2luOiAwcHggMHB4IDBweCA1cHg7XG4gIGhlaWdodDogMjBweDtcbiAgcGFkZGluZzogMHB4IDVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5pbmZvLXBhbmVsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDE1cHg7XG4gIGxlZnQ6IDE1cHg7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSAzMHB4KTtcbiAgbWF4LWhlaWdodDogY2FsYygxMDAlIC0gMzBweCk7XG4gIGhlaWdodDogMTAwJTtcbiAgei1pbmRleDogMTAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgYm9yZGVyOiBkb3R0ZWQgMXB4ICNCN0NEQ0U7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGZvbnQtZmFtaWx5OiBcIkxhdG8gU2VtaWJvbGRcIiwgXCJMYXRvXCI7XG4gIHotaW5kZXg6IDQ7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuaW5mby1wYW5lbDpob3ZlciB7XG4gIG9wYWNpdHk6IDE7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuaW5mby1wYW5lbCAuaS1oZWFkZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZDOTI4O1xuICBjb2xvcjogIzFFMzAzQjtcbiAgcGFkZGluZzogOHB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LWZhbWlseTogXCJMYXRvIE1lZGl1bVwiLCBcIkxhdG9cIjtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmluZm8tcGFuZWwgLmktaGVhZGVyIC5mYSB7XG4gIGZvbnQtc2l6ZTogMThweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5pbmZvLXBhbmVsIC5pLWhlYWRlciAuZmEtaW5mby1jaXJjbGUge1xuICBmbG9hdDogbGVmdDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5pbmZvLXBhbmVsIC5pLWhlYWRlciAuZmEtdGltZXMtY2lyY2xlIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmbG9hdDogcmlnaHQ7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuaW5mby1wYW5lbCAuaS1jb250ZW50IHtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBwYWRkaW5nOiA1cHg7XG4gIHRleHQtYWxpZ246IGp1c3RpZnk7XG4gIGZsZXg6IDE7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuaW5mby1wYW5lbCAuaS1jb250ZW50IC5yb3cge1xuICBtYXJnaW4tYm90dG9tOiA2cHg7XG4gIHBhZGRpbmctYm90dG9tOiA2cHg7XG4gIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCAjYWJjNGM2O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmluZm8tcGFuZWwgLmktY29udGVudCAucm93Omxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5pbmZvLXBhbmVsIC5pLWNvbnRlbnQgLnJvdyAua2V5IHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIGZvbnQtdmFyaWFudDogc21hbGwtY2Fwcztcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5OTFweCkge1xuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuaW5mby1wYW5lbCAuaS1jb250ZW50IC5yb3cgLmtleSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuaW5mby1wYW5lbCAuaS1jb250ZW50IC5yb3cgLnZhbHVlIHtcbiAgdGV4dC1hbGlnbjoganVzdGlmeTtcbn1cbi5hbmFseXRpY3MgLnRpbWUtcGVyaW9kLWluZm8ge1xuICBmb250LXNpemU6IDExcHg7XG4gIGNvbG9yOiAjQUJDNEM2O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLnRvcC1saW5lIC50b3AtYnV0dG9ucyB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBtYXJnaW4tdG9wOiAtMXB4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAudG9wLWxpbmUgLnRvcC1idXR0b25zIC50b3AtYnV0dG9ucy13cmFwcGVyIC50b3AtYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgY29sb3I6ICNjNGNhY2E7XG4gIHBhZGRpbmc6IDA7XG4gIG91dGxpbmU6IG5vbmU7XG4gIHdpZHRoOiAxN3B4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLnRvcC1saW5lIC50b3AtYnV0dG9ucyAudG9wLWJ1dHRvbnMtd3JhcHBlciAudG9wLWJ1dHRvbjphY3RpdmUsXG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAudG9wLWxpbmUgLnRvcC1idXR0b25zIC50b3AtYnV0dG9ucy13cmFwcGVyIC50b3AtYnV0dG9uOmZvY3VzIHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC50b3AtbGluZSAudG9wLWJ1dHRvbnMgLnRvcC1idXR0b25zLXdyYXBwZXIgLnRvcC1idXR0b24uYnRuLWluZm8ge1xuICBmb250LXNpemU6IDE3cHg7XG4gIG1hcmdpbi10b3A6IDFweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC50b3AtbGluZSAudG9wLWJ1dHRvbnMgLnRvcC1idXR0b25zLXdyYXBwZXIgLnRvcC1idXR0b24uYnRuLWluZm86aG92ZXIge1xuICBjb2xvcjogI0ZGQzkyODtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC50b3AtbGluZSAudG9wLWJ1dHRvbnMgLnRvcC1idXR0b25zLXdyYXBwZXIgLnRvcC1idXR0b24uYnRuLWV4cG9ydCB7XG4gIGZvbnQtc2l6ZTogMTdweDtcbiAgbWFyZ2luLXRvcDogMXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLnRvcC1saW5lIC50b3AtYnV0dG9ucyAudG9wLWJ1dHRvbnMtd3JhcHBlciAudG9wLWJ1dHRvbi5idG4tZXhwb3J0OmhvdmVyIHtcbiAgY29sb3I6ICMzNThmZGM7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAudG9wLWxpbmUgLnRvcC1idXR0b25zIC50b3AtYnV0dG9ucy13cmFwcGVyIC50b3AtYnV0dG9uLmJ0bi1yZWZyZXNoIHtcbiAgZm9udC1zaXplOiAxN3B4O1xuICBtYXJnaW4tdG9wOiAxcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAudG9wLWxpbmUgLnRvcC1idXR0b25zIC50b3AtYnV0dG9ucy13cmFwcGVyIC50b3AtYnV0dG9uLmJ0bi1yZWZyZXNoOmhvdmVyIHtcbiAgY29sb3I6ICMzNThmZGM7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAudG9wLWxpbmUgLnRvcC1idXR0b25zIC50b3AtYnV0dG9ucy13cmFwcGVyIC50b3AtYnV0dG9uLmJ0bi1lZGl0IHtcbiAgZm9udC1zaXplOiAxM3B4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLnRvcC1saW5lIC50b3AtYnV0dG9ucyAudG9wLWJ1dHRvbnMtd3JhcHBlciAudG9wLWJ1dHRvbi5idG4tZWRpdDpob3Zlcixcbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC50b3AtbGluZSAudG9wLWJ1dHRvbnMgLnRvcC1idXR0b25zLXdyYXBwZXIgLnRvcC1idXR0b24uYnRuLWVkaXQuZWRpdC1tb2RlIHtcbiAgY29sb3I6ICNjZmQ4NDk7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAudG9wLWxpbmUgLnRvcC1idXR0b25zIC50b3AtYnV0dG9ucy13cmFwcGVyIC50b3AtYnV0dG9uLmJ0bi1jbG9zZSB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC50b3AtbGluZSAudG9wLWJ1dHRvbnMgLnRvcC1idXR0b25zLXdyYXBwZXIgLnRvcC1idXR0b24uYnRuLWNsb3NlOmhvdmVyIHtcbiAgY29sb3I6ICNlZDFlNzk7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3Muc2VsZWN0LWFjY291bnQge1xuICBwYWRkaW5nOiAwcHggNXB4O1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MuYWNjb3VudGluZy1iZWhhdmlvdXIgLmJ0bi5idG4tcHJpbWFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiYmE5ZjU7XG4gIGJvcmRlcjogc29saWQgMXB4ICM5NzdiZjA7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5hY2NvdW50aW5nLWJlaGF2aW91ciAuYnRuLmJ0bi1wcmltYXJ5LmZvY3VzLFxuLmFuYWx5dGljcyAuc2V0dGluZ3MuYWNjb3VudGluZy1iZWhhdmlvdXIgLmJ0bi5idG4tcHJpbWFyeS5hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTc3YmYwO1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MuYXR0YWNoLWtwaXMgLmF0dGFjaC1rcGkge1xuICBwYWRkaW5nOiA4cHggNXB4O1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MuYXR0YWNoLWtwaXMgLmF0dGFjaC1rcGkgZm9ybSAucm93IHtcbiAgcGFkZGluZy1ib3R0b206IDVweDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLmF0dGFjaC1rcGlzIC5hdHRhY2gta3BpIC5hdHRhY2gta3BpLWZvcm0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbiAgcGFkZGluZzogNXB4O1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MuYXR0YWNoLWtwaXMgLmF0dGFjaC1rcGkgZm9ybSAucm93LmtwaS1kZXNjcmlwdGlvbiB7XG4gIHBhZGRpbmc6IDEwcHggMnB4O1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MuYXR0YWNoLWtwaXMgLmF0dGFjaC1rcGkgZm9ybSAucm93LmtwaS1kZXNjcmlwdGlvbiBzcGFuIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IDEzcHg7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5hdHRhY2gta3BpcyAuYXR0YWNoLWtwaSBmb3JtLmF0dGFjaC1rcGktZm9ybSBpbnB1dC5hdHRhY2gtdGFyZ2V0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGhlaWdodDogaW5oZXJpdDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLmF0dGFjaC1rcGlzIC5hdHRhY2gta3BpIC5lcnJvci1tZXNzYWdlcyB7XG4gIGNvbG9yOiAjZTAxZjc0O1xuICB3aWR0aDogMTIwcHg7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5hdHRhY2gta3BpcyAuYXR0YWNoZWQta3BpcyB7XG4gIHBhZGRpbmc6IDVweDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLmF0dGFjaC1rcGlzIC5saXN0LWdyb3VwLWl0ZW0uYXR0YWNoZWQta3BpIHtcbiAgcGFkZGluZzogNXB4IDEwcHg7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5hdHRhY2gta3BpcyAubGlzdC1ncm91cC1pdGVtLmF0dGFjaGVkLWtwaSAuYXR0YWNoZWQta3BpLW5hbWUge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3aWR0aDogNzUlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBtYXJnaW4tdG9wOiAzcHg7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5hdHRhY2gta3BpcyAubGlzdC1ncm91cC1pdGVtLmF0dGFjaGVkLWtwaSAuYWN0aW9ucyB7XG4gIHBhZGRpbmctdG9wOiAycHg7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5hdHRhY2gta3BpcyAubGlzdC1ncm91cC1pdGVtLmF0dGFjaGVkLWtwaSAuYWN0aW9ucyAuYWxlcnRzLWNvbmZpZyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgcGFkZGluZy1sZWZ0OiA0cHg7XG4gIGhlaWdodDogMjBweDtcbiAgYm9yZGVyLXJhZGl1czogNDBweDtcbiAgd2lkdGg6IDIxcHg7XG4gIGNvbG9yOiAjMzU4ZmRjO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgYm9yZGVyOiBzb2xpZCAxcHggIzM1OGZkYztcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLmF0dGFjaC1rcGlzIC5saXN0LWdyb3VwLWl0ZW0uYXR0YWNoZWQta3BpIC5hY3Rpb25zIC5hbGVydHMtY29uZmlnOmhvdmVyIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MuYXR0YWNoLWtwaXMgLmxpc3QtZ3JvdXAtaXRlbS5hdHRhY2hlZC1rcGkgLmFjdGlvbnMgLmVkaXQtYXR0YWNoZWQta3BpIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MuYXR0YWNoLWtwaXMgLmxpc3QtZ3JvdXAtaXRlbS5hdHRhY2hlZC1rcGkgLmFjdGlvbnMgLmVkaXQtYXR0YWNoZWQta3BpIGkge1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICB3aWR0aDogMjFweDtcbiAgY29sb3I6ICMzNThmZGM7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBoZWlnaHQ6IDIwcHg7XG4gIHBhZGRpbmc6IDNweCA1cHggNXB4IDVweDtcbiAgYm9yZGVyOiBzb2xpZCAxcHggIzM1OGZkYztcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLmF0dGFjaC1rcGlzIC5saXN0LWdyb3VwLWl0ZW0uYXR0YWNoZWQta3BpIC5hY3Rpb25zIC5lZGl0LWF0dGFjaGVkLWtwaSBpOmhvdmVyIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MuYXR0YWNoLWtwaXMgLmxpc3QtZ3JvdXAtaXRlbS5hdHRhY2hlZC1rcGkgLmFjdGlvbnMgLnJlbW92ZS1hdHRhY2hlZC1rcGkge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5hdHRhY2gta3BpcyAubGlzdC1ncm91cC1pdGVtLmF0dGFjaGVkLWtwaSAuYWN0aW9ucyAucmVtb3ZlLWF0dGFjaGVkLWtwaSBpIHtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgd2lkdGg6IDIxcHg7XG4gIGNvbG9yOiAjZTAxZjc0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgaGVpZ2h0OiAyMHB4O1xuICBwYWRkaW5nOiAzcHggNXB4IDVweCA1cHg7XG4gIGJvcmRlcjogc29saWQgMXB4ICNlMDFmNzQ7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5hdHRhY2gta3BpcyAubGlzdC1ncm91cC1pdGVtLmF0dGFjaGVkLWtwaSAuYWN0aW9ucyAucmVtb3ZlLWF0dGFjaGVkLWtwaSBpOmhvdmVyIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLnNlbGVjdC1hY2NvdW50IHtcbiAgcGFkZGluZzogMHB4IDVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5jaGFydC1maWx0ZXJzIC5yb3cge1xuICBtYXJnaW46IDBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5jaGFydC1maWx0ZXJzIGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gIG1hcmdpbjogMDtcbiAgbWFyZ2luLXJpZ2h0OiAzcHg7XG4gIHBhZGRpbmc6IDA7XG4gIHdpZHRoOiAxM3B4O1xuICBoZWlnaHQ6IDEzcHg7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAtMXB4O1xuICBvdXRsaW5lOiBub25lO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLmNoYXJ0LWZpbHRlcnMgaW5wdXRbdHlwZT1cInJhbmdlXCJdIHtcbiAgaGVpZ2h0OiBhdXRvO1xuICB3aWR0aDogMTAwJTtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLmRhdGVzLXBpY2tlciBoNSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5kYXRlcy1waWNrZXIgYnV0dG9uLmJ0bi5idG4tc20ge1xuICBsaW5lLWhlaWdodDogMTtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLmRhdGVzLXBpY2tlciBidXR0b24uYnRuLmJ0bi1zbS5kYXRlLWJ1dHRvbiB7XG4gIG1hcmdpbjogMHB4IDVweDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLmRhdGVzLXBpY2tlciBidXR0b24uYnRuLmJ0bi1zbS5idG4tZGFuZ2VyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLmRhdGVzLXBpY2tlciBidXR0b24uYnRuLmJ0bi1zbS5idG4taW5mbyB7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLmRhdGVzLXBpY2tlciAudG9vbHRpcC1pbm5lciB7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MuZGF0ZXMtcGlja2VyIC5kcm9wZG93bi1tZW51ID4gbGkgPiBkaXYgPiB0YWJsZSB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5mb3JlY2FzdC1wYXlyb2xsIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZSB7XG4gIHBhZGRpbmc6IDVweCAxMHB4IDVweCAxOHB4O1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MuZm9yZWNhc3QtcGF5cm9sbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmU6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YzZjRmNDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLmZvcmVjYXN0LXBheXJvbGwgLndpZGdldC1saW5lcy1jb250YWluZXIgLndpZGdldC1saW5lOm50aC1jaGlsZChvZGQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5mb3JlY2FzdC1wYXlyb2xsIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZSAuZmEge1xuICBmbG9hdDogcmlnaHQ7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MuZm9yZWNhc3QtcGF5cm9sbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmUgLmZhLmZhLXRvZ2dsZS1vbiB7XG4gIGNvbG9yOiAjOTc3YmYwO1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MuZm9yZWNhc3QtcGF5cm9sbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmUgLmZhLmZhLXRvZ2dsZS1vZmYge1xuICBjb2xvcjogIzliYTZhNztcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5oaXN0LW1vZGUtY2hvc2VyIHtcbiAgbWF4LWhlaWdodDogNzBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5oaXN0LW1vZGUtY2hvc2VyIFtjb21tb24tdGltZS1wZXJpb2QtaW5mb10ge1xuICBwYWRkaW5nLWJvdHRvbTogOHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLmhpc3QtbW9kZS1jaG9zZXIgLm9wdGlvbnMge1xuICB3aWR0aDogMTUwcHg7XG4gIG1hcmdpbjogYXV0bztcbiAgcGFkZGluZy1ib3R0b206IDhweDtcbiAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4ICNlNmU2ZTY7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6ICNjNGNhY2E7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3MuaGlzdC1tb2RlLWNob3NlciAub3B0aW9ucyBhIHtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb2xvcjogI2M0Y2FjYTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5oaXN0LW1vZGUtY2hvc2VyIC5vcHRpb25zIGEuYWN0aXZlIHtcbiAgY29sb3I6ICM5NzdiZjA7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3MuaGlzdC1tb2RlLWNob3NlciAuYXJyb3ctY29udGFpbmVyIHtcbiAgd2lkdGg6IDI4cHg7XG4gIGhlaWdodDogMjhweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IC0xNHB4O1xuICBtYXJnaW46IGF1dG87XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3MuaGlzdC1tb2RlLWNob3NlciAuYXJyb3ctY29udGFpbmVyLnJpZ2h0IHtcbiAgbGVmdDogNDZweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5oaXN0LW1vZGUtY2hvc2VyIC5hcnJvdy1jb250YWluZXIubGVmdCB7XG4gIGxlZnQ6IC0zMHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLmhpc3QtbW9kZS1jaG9zZXIgLmFycm93LWNvbnRhaW5lciAuYXJyb3ctYm9yZGVyIHtcbiAgYm9yZGVyLXRvcDogMTRweCBzb2xpZCAjZTZlNmU2O1xuICBib3JkZXItbGVmdDogMTRweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJpZ2h0OiAxNHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICB3aWR0aDogMHB4O1xuICBoZWlnaHQ6IDBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5oaXN0LW1vZGUtY2hvc2VyIC5hcnJvdy1jb250YWluZXIgLmFycm93IHtcbiAgYm9yZGVyLXRvcDogMTRweCBzb2xpZCB3aGl0ZTtcbiAgYm9yZGVyLWxlZnQ6IDE0cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yaWdodDogMTRweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IDEycHg7XG4gIHdpZHRoOiAwcHg7XG4gIGhlaWdodDogMHB4O1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MubGltaXQtZW50cmllcyB7XG4gIGNvbG9yOiAjMUUzMDNCO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvcmRlci1ib3R0b206IGRhc2hlZCAxcHggI0U2RTZFNjtcbiAgcGFkZGluZy1ib3R0b206IDhweDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLmxpbWl0LWVudHJpZXMgYS5vcHRpb24uYmFkZ2Uge1xuICBjb2xvcjogd2hpdGU7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxRTMwM0I7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5vZmZzZXRzIC5vZmZzZXQtdmFsdWUge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtc2l6ZTogMTNweDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLm9mZnNldHMgLm9mZnNldC12YWx1ZSAuZmEtdHJhc2gtbyB7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3Mub2Zmc2V0cyAub2Zmc2V0LXZhbHVlIC5mYS10cmFzaC1vOmhvdmVyIHtcbiAgY29sb3I6ICNlMDFmNzQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLm9mZnNldHMgaW5wdXQge1xuICB3aWR0aDogNzUlO1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3Mub2Zmc2V0cyBidXR0b24ge1xuICB3aWR0aDogMzBweDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLm9yZ2FuaXphdGlvbnMgLndpZGdldC1saW5lcy1jb250YWluZXIgLndpZGdldC1saW5lIHtcbiAgcGFkZGluZzogNXB4IDEwcHggNXB4IDE4cHg7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5vcmdhbml6YXRpb25zIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZTpudGgtY2hpbGQoZXZlbikge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjNmNGY0O1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3Mub3JnYW5pemF0aW9ucyAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmU6bnRoLWNoaWxkKG9kZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLm9yZ2FuaXphdGlvbnMgLndpZGdldC1saW5lcy1jb250YWluZXIgLndpZGdldC1saW5lIC5mYSB7XG4gIGZsb2F0OiByaWdodDtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5vcmdhbml6YXRpb25zIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZSAuZmEuZmEtdG9nZ2xlLW9uLFxuLmFuYWx5dGljcyAuc2V0dGluZ3Mub3JnYW5pemF0aW9ucyAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmUgLmZhLmZhLWNoZWNrLWNpcmNsZSB7XG4gIGNvbG9yOiAjOTc3YmYwO1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3Mub3JnYW5pemF0aW9ucyAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmUgLmZhLmZhLXRvZ2dsZS1vZmYsXG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5vcmdhbml6YXRpb25zIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZSAuZmEuZmEtY2lyY2xlLXRoaW4ge1xuICBjb2xvcjogIzliYTZhNztcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5wYXJhbS1zZWxlY3RvciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5wYXJhbS1zZWxlY3Rvci5jbGFzc2ljIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3MucGFyYW0tc2VsZWN0b3IuY2xhc3NpYyBzZWxlY3Qge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAyNXB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBtYXJnaW46IDBweCAwcHggNXB4IDBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5wYXJhbS1zZWxlY3RvciBhIHtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgY29sb3I6ICM5NzdiZjA7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3MucGFyYW0tc2VsZWN0b3IgLm9wdGlvbnMtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgbWluLXdpZHRoOiAxNTBweDtcbiAgbWF4LWhlaWdodDogMjAwcHg7XG4gIHotaW5kZXg6IDk5OTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAtd2Via2l0LWJveC1zaGFkb3c6ICMwMDAwMDAgMHB4IDNweCAxNXB4IC0zcHg7XG4gIGJveC1zaGFkb3c6ICMwMDAwMDAgMHB4IDNweCAxNXB4IC0zcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3MucGFyYW0tc2VsZWN0b3IgLm9wdGlvbnMtY29udGFpbmVyIC5wYXJhbS1zZWxlY3Rvci1sYWJlbCB7XG4gIHBhZGRpbmc6IDNweCA1cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgY29sb3I6IGJsYWNrO1xuICBjdXJzb3I6IHRleHQ7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBsaW5lLWhlaWdodDogMS45O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLnBhcmFtLXNlbGVjdG9yIC5vcHRpb25zLWNvbnRhaW5lciAucGFyYW0tc2VsZWN0b3ItbGFiZWw6aG92ZXIge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5NzdiZjA7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5wYXJhbS1zZWxlY3RvciAub3B0aW9ucy1jb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgd2lkdGg6IDhweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q3ZTJlNDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5wYXJhbS1zZWxlY3RvciAub3B0aW9ucy1jb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk3N2JmMDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5wYXJhbS1zZWxlY3RvciAub3B0aW9ucy1jb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2E5OTJmMztcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLnBhcmFtcy1jaGVja2JveGVzIHtcbiAgcGFkZGluZzogMnB4IDBweDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLnBhcmFtcy1jaGVja2JveGVzIGlucHV0IHtcbiAgbWFyZ2luOiAwO1xuICBoZWlnaHQ6IGluaGVyaXQ7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5wYXJhbXMtY2hlY2tib3hlcyBzcGFuIHtcbiAgbWFyZ2luLWxlZnQ6IDVweDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLnBhcmFtcy1jaGVja2JveGVzIGxhYmVsIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGxpbmUtaGVpZ2h0OiAxNHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLnBhcmFtcy1waWNrZXIge1xuICBwYWRkaW5nOiAwcHggMTBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5wYXJhbXMtcGlja2VyIC5wYXJhbWV0ZXIge1xuICBtYXJnaW46IDBweCAzcHggM3B4IDBweDtcbiAgcGFkZGluZzogM3B4IDVweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFFMzAzQjtcbiAgY29sb3I6IHdoaXRlO1xuICBib3JkZXI6IHNvbGlkIDFweCAjMUUzMDNCO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGN1cnNvcjogbW92ZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGZsb2F0OiBsZWZ0O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLnBhcmFtcy1waWNrZXIgLnBhcmFtZXRlciBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICBtYXJnaW46IDBweCAtM3B4IDBweCAzcHg7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGhlaWdodDogaW5oZXJpdDtcbiAgb3V0bGluZTogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLnBhcmFtcy1waWNrZXIgLnBhcmFtZXRlciAuYmFkZ2Uge1xuICBtYXJnaW4tcmlnaHQ6IDNweDtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjJmMmYyO1xuICBjb2xvcjogIzFFMzAzQjtcbiAgcGFkZGluZzogMnB4IDZweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5wYXJhbXMtcGlja2VyIC5wYXJhbWV0ZXIudW5jaGVja2VkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlci1jb2xvcjogI2MyYzRjNDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5wYXJhbXMtcGlja2VyIC5wYXJhbWV0ZXIudW5jaGVja2VkIC5iYWRnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjMmM0YzQ7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLnRhZy1maWx0ZXIge1xuICBwYWRkaW5nOiAwcHggNXB4O1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MudGFnLWZpbHRlciAuYnRuLmJ0bi1kZWZhdWx0IHtcbiAgaGVpZ2h0OiAzMnB4O1xuICB3aWR0aDogMzBweDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLnRhZy1maWx0ZXIgLnRhZy1saW5lcy1jb250YWluZXIge1xuICBwYWRkaW5nOiAwcHggMTBweDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLnRhZy1maWx0ZXIgLnRhZy1saW5lcy1jb250YWluZXIgLnRhZy1saW5lIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLnRhZy1maWx0ZXIgLnRhZy1saW5lcy1jb250YWluZXIgLnRhZy1saW5lIC50YWdzLWNvbCB7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy50YWctZmlsdGVyIC50YWctbGluZXMtY29udGFpbmVyIC50YWctbGluZSB0YWdzLWlucHV0IC50YWdzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBib3JkZXI6IHNvbGlkIDFweCAjY2NjO1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MudGFnLWZpbHRlciAudGFnLWxpbmVzLWNvbnRhaW5lciAudGFnLWxpbmUgdGFncy1pbnB1dCAudGFncyAudGFnLWl0ZW0ge1xuICBiYWNrZ3JvdW5kOiAjNzlhMmJiO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLnRhZy1maWx0ZXIgLnRhZy1saW5lcy1jb250YWluZXIgLnRhZy1saW5lIC5ob3N0IHtcbiAgcG9zaXRpb246IHN0YXRpYztcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLnRpbWUtcGVyaW9kIHtcbiAgcGFkZGluZzogMHB4IDVweDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLnRpbWUtcGVyaW9kIHNlbGVjdCB7XG4gIGhlaWdodDogMjJweDtcbiAgd2lkdGg6IDEwMCU7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy50aW1lLXBlcmlvZCA+IC5yb3cge1xuICBtYXJnaW46IDBweCAtNXB4IDdweCAtNXB4O1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MudGltZS1wZXJpb2QgPiAucm93ID4gZGl2IHtcbiAgcGFkZGluZzogMHB4IDVweDtcbiAgcG9zaXRpb246IHN0YXRpYztcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLnRpbWUtcGVyaW9kID4gLnJvdyAuc3ViLXNldHRpbmcge1xuICBwYWRkaW5nOiA1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3Mud2lkdGgge1xuICBmbG9hdDogcmlnaHQ7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy53aWR0aCBpIHtcbiAgY29sb3I6IHNpbHZlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLndpZHRoIGkucmVkdWNlIHtcbiAgbWFyZ2luLXJpZ2h0OiAtMTBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy53aWR0aCBpLmV4cGFuZCB7XG4gIG1hcmdpbi1yaWdodDogLTNweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWFzc2V0cy1saWFiaWxpdHktc3VtbWFyeSAucGFyYW0tc2VsZWN0b3Ige1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1hc3NldHMtbGlhYmlsaXR5LXN1bW1hcnkgLmxlZ2VuZCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIG1heC1oZWlnaHQ6IDkwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1hc3NldHMtbGlhYmlsaXR5LXN1bW1hcnkgLmxlZ2VuZCAudGl0bGUge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvcmRlci1ib3R0b206IGRhc2hlZCAxcHggI2RmZTJlMjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWFzc2V0cy1zdW1tYXJ5IC5sZWdlbmQge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBtYXgtaGVpZ2h0OiAxMTVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWFzc2V0cy1zdW1tYXJ5IC5sZWdlbmQgLnRpdGxlIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3JkZXItYm90dG9tOiBkYXNoZWQgMXB4ICNkZmUyZTI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1hc3NldHMtdnMtbGlhYmlsaXRpZXMgLmxlZ2VuZCA+IC50aXRsZSBzcGFuIHtcbiAgbWFyZ2luLWxlZnQ6IDNweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWJhbGFuY2UgaDMge1xuICBmb250LXdlaWdodDogMzAwO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGNvbG9yOiAjNUI2NjY3O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBtYXJnaW4tdG9wOiAzMHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1iYWxhbmNlIC5wcmljZSB7XG4gIGZvbnQtd2VpZ2h0OiA5MDA7XG4gIGZvbnQtc2l6ZTogMjJweDtcbiAgY29sb3I6ICM1QjY2Njc7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLXRvcDogMHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtYmFsYW5jZS1zaGVldCB7XG4gIG1pbi1oZWlnaHQ6IDU2NXB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWJhbGFuY2Utc2hlZXQge1xuICAgIGhlaWdodDogNTY1cHg7XG4gIH1cbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtYmFsYW5jZS1zaGVldCAuY2hhcnQtY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDU4NXB4O1xuICAgIG1heC1oZWlnaHQ6IDQ0MHB4O1xuICAgIG1hcmdpbjogYXV0bztcbiAgfVxufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtYmFsYW5jZS1zaGVldCAuZWRpdCB7XG4gIG1heC1oZWlnaHQ6IDU0NXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtYmFsYW5jZS1zaGVldCAuZWRpdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtYmFsYW5jZS1zaGVldCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBtYXgtaGVpZ2h0OiA0OTBweDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1iYWxhbmNlLXNoZWV0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIC5yb3cud2lkZ2V0LWxpbmU6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgYm9yZGVyLWJvdHRvbTogZGFzaGVkIDFweCAjZGZlMmUyO1xuICB9XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1iYWxhbmNlLXNoZWV0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIC5yb3cud2lkZ2V0LWxpbmUuaGVhZGVyID4gW2NsYXNzKj0nY29sLSddIHtcbiAgcG9zaXRpb246IHN0YXRpYztcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWJhbGFuY2Utc2hlZXQgLndpZGdldC1saW5lcy1jb250YWluZXIubm8tc2Nyb2xsIHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1iYWxhbmNlLXNoZWV0IC5uby1kYXRhLWJsb2NrIHtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBjb2xvcjogIzVCNjY2NztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW46IDE1cHggMHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1iYWxhbmNlIHtcbiAgbWluLWhlaWdodDogNTY1cHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1iYWxhbmNlIHtcbiAgICBoZWlnaHQ6IDU2NXB4O1xuICB9XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtYmFsYW5jZSAuY2hhcnQtY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDU4NXB4O1xuICAgIG1heC1oZWlnaHQ6IDQ0MHB4O1xuICAgIG1hcmdpbjogYXV0bztcbiAgfVxufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1iYWxhbmNlIC5lZGl0IHtcbiAgbWF4LWhlaWdodDogNTQ1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLWJhbGFuY2UgLmVkaXQgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBvdmVyZmxvdy15OiBoaWRkZW47XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtYmFsYW5jZSAuZGF0YS1jb250YWluZXIge1xuICBoZWlnaHQ6IGNhbGMoNTY1cHggLSA1MHB4KTtcbiAgd2lkdGg6IDEwMCU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLWJhbGFuY2UgLmxlZnQtcGFuZWwge1xuICB3aWR0aDogMTgwcHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIG1heC1oZWlnaHQ6IDEwMCU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLWJhbGFuY2UgI2Nhc2gtYmFsYW5jZS1sZWdlbmQgLmhlYWRlciAuZ3JvdXAtaXRlbSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1pbi1oZWlnaHQ6IDQ1cHg7XG4gIG1hcmdpbjogM3B4O1xuICBmb250LXNpemU6IDEzcHg7XG4gIHBhZGRpbmc6IDNweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtYmFsYW5jZSAjY2FzaC1iYWxhbmNlLWxlZ2VuZCAuaGVhZGVyIC5ncm91cC1pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VjZWNlYztcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtYmFsYW5jZSAjY2FzaC1iYWxhbmNlLWxlZ2VuZCAuaGVhZGVyIC5ncm91cC1pdGVtIGkge1xuICBmb250LXNpemU6IDE5cHg7XG4gIHBhZGRpbmc6IDRweDtcbiAgbWFyZ2luLXRvcDogMXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1iYWxhbmNlICNjYXNoLWJhbGFuY2UtbGVnZW5kIC5oZWFkZXIgLmdyb3VwLWl0ZW0gc3BhbiB7XG4gIGNvbG9yOiAjNUI2NjY3O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1iYWxhbmNlIC5sZWdlbmQtaXRlbS1pY29uIHtcbiAgd2lkdGg6IDE2cHg7XG4gIGhlaWdodDogMTZweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtYmFsYW5jZSAucmlnaHQtcGFuZWwge1xuICB3aWR0aDogY2FsYygxMDAlIC0gMTgwcHgpO1xuICBmbG9hdDogcmlnaHQ7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLWJhbGFuY2UgLnJpZ2h0LXBhbmVsIC5jYXNoLWJhbGFuY2UtY2hhcnQge1xuICBoZWlnaHQ6IGNhbGMoNTY1cHggLSA1MHB4KTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtYmFsYW5jZSAuZGF0ZXMtcGlja2VyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmbG9hdDogcmlnaHQ7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtcHJvamVjdGlvbiB7XG4gIG1pbi1oZWlnaHQ6IDU2NXB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtcHJvamVjdGlvbiB7XG4gICAgaGVpZ2h0OiA1NjVweDtcbiAgfVxuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLXByb2plY3Rpb24gLmNoYXJ0LWNvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiA1ODVweDtcbiAgICBtYXgtaGVpZ2h0OiA0NDBweDtcbiAgICBtYXJnaW46IGF1dG87XG4gIH1cbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtcHJvamVjdGlvbiAuZWRpdCB7XG4gIG1heC1oZWlnaHQ6IDU0NXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1wcm9qZWN0aW9uIC5lZGl0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLXByb2plY3Rpb24gLmNhc2gtcHJvamVjdGlvbi1jaGFydCB7XG4gIGhlaWdodDogY2FsYyg1NjVweCAtIDUwcHgpO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1wcm9qZWN0aW9uIC5oaWdoY2hhcnRzLWxlZ2VuZC1pdGVtIHJlY3QuaGlnaGNoYXJ0cy1wb2ludCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLXByb2plY3Rpb24gLmhpZ2hjaGFydHMtbGVnZW5kLWl0ZW0gc3BhbiB7XG4gIHdpZHRoOiAxMTBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1wcm9qZWN0aW9uIC5oaWdoY2hhcnRzLWxlZ2VuZC1pdGVtIHNwYW4gaW1nIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aWR0aDogNTVweDtcbiAgaGVpZ2h0OiAyNXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1wcm9qZWN0aW9uIC5kYXRlcy1waWNrZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZsb2F0OiByaWdodDtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1wcm9qZWN0aW9uIHRyYW5zYWN0aW9ucy1saXN0IHtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1zdW1tYXJ5IHtcbiAgbWluLWhlaWdodDogNTY1cHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1zdW1tYXJ5IHtcbiAgICBoZWlnaHQ6IDU2NXB4O1xuICB9XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtc3VtbWFyeSAuY2hhcnQtY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDU4NXB4O1xuICAgIG1heC1oZWlnaHQ6IDQ0MHB4O1xuICAgIG1hcmdpbjogYXV0bztcbiAgfVxufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1zdW1tYXJ5IC5lZGl0IHtcbiAgbWF4LWhlaWdodDogNTQ1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLXN1bW1hcnkgLmVkaXQgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBvdmVyZmxvdy15OiBoaWRkZW47XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtc3VtbWFyeSAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG1heC1oZWlnaHQ6IDU0MHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1zdW1tYXJ5IC53aWRnZXQtbGluZXMtY29udGFpbmVyIC5saW5lcy1ncm91cCAud2lkZ2V0LWxpbmUge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJvcmRlcjogc29saWQgMXB4IHdoaXRlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1zdW1tYXJ5IC53aWRnZXQtbGluZXMtY29udGFpbmVyIC5saW5lcy1ncm91cCAud2lkZ2V0LWxpbmUgLnNlbGVjdGlvbi10YWcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcmlnaHQ6IDBweDtcbiAgbWFyZ2luLXRvcDogLTZweDtcbiAgd2lkdGg6IDEwcHg7XG4gIGhlaWdodDogMjlweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1zdW1tYXJ5IC53aWRnZXQtbGluZXMtY29udGFpbmVyIC5saW5lcy1ncm91cCAud2lkZ2V0LWxpbmU6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlMGZiO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1zdW1tYXJ5IC53aWRnZXQtbGluZXMtY29udGFpbmVyIC5saW5lcy1ncm91cCAud2lkZ2V0LWxpbmUubm8tc2VsZWN0IHtcbiAgY3Vyc29yOiBhdXRvO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1zdW1tYXJ5IC53aWRnZXQtbGluZXMtY29udGFpbmVyIC5saW5lcy1ncm91cCAud2lkZ2V0LWxpbmUubm8tc2VsZWN0OmhvdmVyIHtcbiAgY29sb3I6ICM2MjZkNmQ7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLXN1bW1hcnkgLnJpZ2h0LXBhbmVsIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBtYXgtaGVpZ2h0OiAyMzVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtc3VtbWFyeSAubm8tZWxlbWVudCB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgY29sb3I6ICM1QjY2Njc7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtc3VtbWFyeSAucmlnaHQtcGFuZWwgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBtYXgtaGVpZ2h0OiAyMTVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtc3VtbWFyeSAucm93LmxpbmVzLWdyb3VwLmNhc2gge1xuICBib3JkZXItdG9wOiBzb2xpZCAxcHg7XG4gIGJvcmRlci1ib3R0b206IGRvdWJsZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNsYXNzLWNvbXBhcmlzb24gLnBhcmFtLXNlbGVjdG9yIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2xhc3MtY29tcGFyaXNvbiAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG1heC1oZWlnaHQ6IDk0cHg7XG4gIGNvbG9yOiAjNjI2ZDZkO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY29tcGFyaXNvbiB7XG4gIG1pbi1oZWlnaHQ6IDU2NXB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNvbXBhcmlzb24ge1xuICAgIGhlaWdodDogNTY1cHg7XG4gIH1cbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY29tcGFyaXNvbiAuY2hhcnQtY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDU4NXB4O1xuICAgIG1heC1oZWlnaHQ6IDQ0MHB4O1xuICAgIG1hcmdpbjogYXV0bztcbiAgfVxufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY29tcGFyaXNvbiAuZWRpdCB7XG4gIG1heC1oZWlnaHQ6IDU0NXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY29tcGFyaXNvbiAuZWRpdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xufVxuQG1lZGlhIHByaW50IHtcbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY29tcGFyaXNvbiAuY2hhcnQtY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDgwJSAhaW1wb3J0YW50O1xuICB9XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jb21wYXJpc29uIC5hZGQtYWNjb3VudCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDQwcHg7XG4gIGJvdHRvbTogMzBweDtcbiAgd2lkdGg6IDE2MHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY29tcGFyaXNvbiAuYWRkLWFjY291bnQgc2VsZWN0IHtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTc3YmYwO1xuICBjb2xvcjogd2hpdGU7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY29tcGFyaXNvbiAuYWRkLWFjY291bnQgc2VsZWN0W2Rpc2FibGVkXSB7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiYmE5ZjU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jb21wYXJpc29uIC5hZGQtYWNjb3VudCBzZWxlY3RbZGlzYWJsZWRdOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2JiYTlmNTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNvbXBhcmlzb24gLmFkZC1hY2NvdW50IHNlbGVjdDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3MzRkZWI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jb21wYXJpc29uIC5hZGQtYWNjb3VudCBzZWxlY3Qgb3B0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGNvbG9yOiAjYzRjYWNhO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY29tcGFyaXNvbiAuYWRkLWFjY291bnQgc2VsZWN0IG9wdGlvbltkaXNhYmxlZF0ge1xuICBjb2xvcjogd2hpdGU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jb21wYXJpc29uIGJ1dHRvbi5jbG9zZSB7XG4gIGZvbnQtc2l6ZTogMTVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNvbXBhcmlzb24gLmxlZ2VuZCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIG1heC1oZWlnaHQ6IDEwM3B4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY29tcGFyaXNvbiAucm93IHtcbiAgbWFyZ2luOiAwO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY29tcGFyaXNvbiAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgbWF4LWhlaWdodDogMjIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDY1cHg7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY29tcGFyaXNvbiAuc2V0dGluZ3MucGFyYW1zLWNoZWNrYm94ZXMge1xuICBtYXJnaW4tbGVmdDogMTNweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNvbXBhcmlzb24gLmNvbXBhcmFibGUtZXJyb3IgaDUge1xuICBtYXJnaW4tbGVmdDogMTNweDtcbiAgY29sb3I6ICNlZDFlNzk7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jdXN0b20tY2FsY3VsYXRpb24gaDMge1xuICBtYXJnaW4tdG9wOiA4NXB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY3VzdG9tLWNhbGN1bGF0aW9uIC5sZWdlbmQge1xuICBtYXgtaGVpZ2h0OiAxMjVweDtcbn1cbi5hbmFseXRpY3MubW9kYWwtY3VzdG9tLWNhbGN1bGF0aW9uIHtcbiAgbWFyZ2luOiAwcHg7XG4gIHBhZGRpbmc6IDBweDtcbn1cbi5hbmFseXRpY3MubW9kYWwtY3VzdG9tLWNhbGN1bGF0aW9uIC5tb2RhbC1ib2R5IC5lZGl0IHtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBjb2xvcjogIzVCNjY2NztcbiAgcGFkZGluZzogMnB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIHBhZGRpbmc6IDVweDtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG4uYW5hbHl0aWNzLm1vZGFsLWN1c3RvbS1jYWxjdWxhdGlvbiAubW9kYWwtYm9keSAuZWRpdCAuYm90dG9tLWJ1dHRvbnMgLmJ0biB7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gIHBhZGRpbmc6IDNweCAxM3B4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LXNpemU6IDEycHg7XG59XG4uYW5hbHl0aWNzLm1vZGFsLWN1c3RvbS1jYWxjdWxhdGlvbiAubW9kYWwtYm9keSAuZWRpdCAuYm90dG9tLWJ1dHRvbnMgLmJ0bi5idG4tZGVmYXVsdCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjMmM0YzQ7XG4gIGJvcmRlcjogc29saWQgMXB4ICNhOGFiYWI7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5hbmFseXRpY3MubW9kYWwtY3VzdG9tLWNhbGN1bGF0aW9uIC5tb2RhbC1ib2R5IC5lZGl0IC5ib3R0b20tYnV0dG9ucyAuYnRuLmJ0bi1kZWZhdWx0OmhvdmVyIHtcbiAgYm9yZGVyOiBzb2xpZCAxcHggIzhlOTI5MjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2E4YWJhYjtcbn1cbi5hbmFseXRpY3MubW9kYWwtY3VzdG9tLWNhbGN1bGF0aW9uIC5tb2RhbC1ib2R5IC5lZGl0IGg0IHtcbiAgbWFyZ2luOiAwO1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6ICNjNGNhY2E7XG59XG4uYW5hbHl0aWNzLm1vZGFsLWN1c3RvbS1jYWxjdWxhdGlvbiAubW9kYWwtYm9keSAuZWRpdCAucGFydCB7XG4gIG1hcmdpbi1ib3R0b206IDhweDtcbiAgcGFkZGluZzogMTBweCAwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmY2ZjZmM7XG4gIGJvcmRlcjogc29saWQgMXB4ICNkZmUyZTI7XG59XG4uYW5hbHl0aWNzLm1vZGFsLWN1c3RvbS1jYWxjdWxhdGlvbiAubW9kYWwtYm9keSAuZWRpdCAucGFydCBoNSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDA7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIHBhZGRpbmc6IDBweCAxNXB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiAjYzRjYWNhO1xufVxuLmFuYWx5dGljcy5tb2RhbC1jdXN0b20tY2FsY3VsYXRpb24gLm1vZGFsLWJvZHkgLmVkaXQgLnBhcnQgbGFiZWwge1xuICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuLmFuYWx5dGljcy5tb2RhbC1jdXN0b20tY2FsY3VsYXRpb24gLm1vZGFsLWJvZHkgLmVkaXQgLnBhcnQgc2VsZWN0LmZvcm0tY29udHJvbCB7XG4gIG1hcmdpbjogMHB4O1xuICBib3JkZXI6IHNvbGlkIDFweCAjYWNiMGIxO1xuICBvdXRsaW5lOiBub25lO1xuICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgY29sb3I6ICM3MjcyOGI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1kZXRhaWxlZC1jbGFzc2lmaWNhdGlvbnMge1xuICBtaW4taGVpZ2h0OiA1NjVweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1kZXRhaWxlZC1jbGFzc2lmaWNhdGlvbnMge1xuICAgIGhlaWdodDogNTY1cHg7XG4gIH1cbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtZGV0YWlsZWQtY2xhc3NpZmljYXRpb25zIC5jaGFydC1jb250YWluZXIge1xuICAgIG1heC13aWR0aDogNTg1cHg7XG4gICAgbWF4LWhlaWdodDogNDQwcHg7XG4gICAgbWFyZ2luOiBhdXRvO1xuICB9XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1kZXRhaWxlZC1jbGFzc2lmaWNhdGlvbnMgLmVkaXQge1xuICBtYXgtaGVpZ2h0OiA1NDVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWRldGFpbGVkLWNsYXNzaWZpY2F0aW9ucyAuZWRpdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtZGV0YWlsZWQtY2xhc3NpZmljYXRpb25zIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG1heC1oZWlnaHQ6IDU0MHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtZGV0YWlsZWQtY2xhc3NpZmljYXRpb25zIC5hY2NvdW50LWNsYXNzLXRpdGxlIHtcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICBtYXJnaW4tbGVmdDogMTFweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWRldGFpbGVkLWNsYXNzaWZpY2F0aW9ucyAudGltZS1wZXJpb2QtaW5mbyB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtZGV0YWlsZWQtY2xhc3NpZmljYXRpb25zIC53aWRnZXQtbGluZS5oZWFkZXIuc29ydGluZyB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtZXhwZW5zZS13ZWlnaHQgLmxlZ2VuZCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIG1heC1oZWlnaHQ6IDExNXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtZXhwZW5zZS13ZWlnaHQgLmxlZ2VuZCAudGl0bGUge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1leHBlbnNlcy1yZXZlbnVlIC5sZWdlbmQge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWV4cGVuc2VzLXJldmVudWUgLnNldHRpbmdzLnBhcmFtcy1jaGVja2JveGVzIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBtYXJnaW4tbGVmdDogMHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1pbnZvaWNlcy1saXN0IHtcbiAgbWluLWhlaWdodDogNTY1cHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtaW52b2ljZXMtbGlzdCB7XG4gICAgaGVpZ2h0OiA1NjVweDtcbiAgfVxuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1pbnZvaWNlcy1saXN0IC5jaGFydC1jb250YWluZXIge1xuICAgIG1heC13aWR0aDogNTg1cHg7XG4gICAgbWF4LWhlaWdodDogNDQwcHg7XG4gICAgbWFyZ2luOiBhdXRvO1xuICB9XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1pbnZvaWNlcy1saXN0IC5lZGl0IHtcbiAgbWF4LWhlaWdodDogNTQ1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1pbnZvaWNlcy1saXN0IC5lZGl0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1pbnZvaWNlcy1saXN0IHRyYW5zYWN0aW9ucy1saXN0IHtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtbGl2ZS1iYWxhbmNlIGgzIHtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgZm9udC1zaXplOiAyMnB4O1xuICBjb2xvcjogIzVCNjY2NztcbiAgbWFyZ2luLXRvcDogMHB4O1xuICBmb250LXNpemU6IDE4cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1zaGFkb3c6IDFweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWxpdmUtYmFsYW5jZSAuc3RhdGVtZW50LXRpdGxlIHtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXdlaWdodDogNDAwO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtbGl2ZS1iYWxhbmNlIC5iYWxhbmNlLXRpdGxlIHtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtbGl2ZS1iYWxhbmNlIC5jdXJyZW5jeS1jZW50ZXJlZCB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6ICM1QjY2Njc7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWxpdmUtYmFsYW5jZSAuaGVhZGVycyB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWxpdmUtYmFsYW5jZSAuc3BhY2VyIHtcbiAgbWluLWhlaWdodDogMzBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWxpdmUtYmFsYW5jZSAucHJpY2Uge1xuICBmb250LXdlaWdodDogOTAwO1xuICBmb250LXNpemU6IDIycHg7XG4gIGNvbG9yOiAjNUI2NjY3O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbi10b3A6IDBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWxpdmUtYmFsYW5jZSAubmVnYXRpdmUyIHtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtcGF5YWJsZS1yZWNlaXZhYmxlIGgzIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtcGF5YWJsZS1yZWNlaXZhYmxlIC5sZWdlbmQge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLXBheWFibGUtcmVjZWl2YWJsZSAucGF5YWJsZSB7XG4gIG1hcmdpbi10b3A6IDE1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1wYXlhYmxlLXJlY2VpdmFibGUgLnByaWNlIHtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgZm9udC1zaXplOiAyMnB4O1xuICBjb2xvcjogIzVCNjY2NztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tdG9wOiAwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1wcm9maXQtYW5kLWxvc3Mge1xuICBtaW4taGVpZ2h0OiA1NjVweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1wcm9maXQtYW5kLWxvc3Mge1xuICAgIGhlaWdodDogNTY1cHg7XG4gIH1cbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtcHJvZml0LWFuZC1sb3NzIC5jaGFydC1jb250YWluZXIge1xuICAgIG1heC13aWR0aDogNTg1cHg7XG4gICAgbWF4LWhlaWdodDogNDQwcHg7XG4gICAgbWFyZ2luOiBhdXRvO1xuICB9XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1wcm9maXQtYW5kLWxvc3MgLmVkaXQge1xuICBtYXgtaGVpZ2h0OiA1NDVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLXByb2ZpdC1hbmQtbG9zcyAuZWRpdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtcHJvZml0LWFuZC1sb3NzIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogNTQwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1wcm9maXQtYW5kLWxvc3MgLndpZGdldC1saW5lcy1jb250YWluZXIgLmxpbmVzLWdyb3VwIC53aWRnZXQtbGluZSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm9yZGVyOiBzb2xpZCAxcHggd2hpdGU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1wcm9maXQtYW5kLWxvc3MgLndpZGdldC1saW5lcy1jb250YWluZXIgLmxpbmVzLWdyb3VwIC53aWRnZXQtbGluZSAuc2VsZWN0aW9uLXRhZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICByaWdodDogMHB4O1xuICBtYXJnaW4tdG9wOiAtNnB4O1xuICB3aWR0aDogMTBweDtcbiAgaGVpZ2h0OiAyOXB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1wcm9maXQtYW5kLWxvc3MgLndpZGdldC1saW5lcy1jb250YWluZXIgLmxpbmVzLWdyb3VwIC53aWRnZXQtbGluZTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNmUwZmI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1wcm9maXQtYW5kLWxvc3MgLndpZGdldC1saW5lcy1jb250YWluZXIgLmxpbmVzLWdyb3VwIC53aWRnZXQtbGluZS5uby1zZWxlY3Qge1xuICBjdXJzb3I6IGF1dG87XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1wcm9maXQtYW5kLWxvc3MgLndpZGdldC1saW5lcy1jb250YWluZXIgLmxpbmVzLWdyb3VwIC53aWRnZXQtbGluZS5uby1zZWxlY3Q6aG92ZXIge1xuICBjb2xvcjogIzYyNmQ2ZDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLXByb2ZpdC1hbmQtbG9zcyAucmlnaHQtcGFuZWwgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG1heC1oZWlnaHQ6IDIzNXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtcHJvZml0LWFuZC1sb3NzIC5uby1lbGVtZW50IHtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBjb2xvcjogIzVCNjY2NztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtcHJvZml0LWFuZC1sb3NzIC5yb3cubGluZXMtZ3JvdXAucHJvZml0IHtcbiAgYm9yZGVyLXRvcDogc29saWQgMXB4O1xuICBib3JkZXItYm90dG9tOiBkb3VibGU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1wcm9maXQtYW5kLWxvc3MgLnJpZ2h0LXBhbmVsIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogMjE1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1wcm9maXQtYW5kLWxvc3MgLnJvdy53aWRnZXQtbGluZS5oZWFkZXIgPiBbY2xhc3MqPSdjb2wtJ10ge1xuICBwb3NpdGlvbjogc3RhdGljO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtcmF0aW9zIC5sZWZ0LXBhbmVsIHtcbiAgbWF4LWhlaWdodDogMjMwcHg7XG4gIG92ZXJmbG93LXk6IGF1dG87XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1yYXRpb3MgLmxlZnQtcGFuZWwgLnNlcGFyYXRvciB7XG4gIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCAjNUI2NjY3O1xuICB3aWR0aDogNzUlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtcmF0aW9zIC5sZWZ0LXBhbmVsIC5tZW1iZXIge1xuICBwYWRkaW5nLXRvcDogMjBweDtcbiAgcGFkZGluZy1ib3R0b206IDIwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1yYXRpb3MgLmxlZnQtcGFuZWwgLm1lbWJlciAucHJpY2Uge1xuICBtYXJnaW4tdG9wOiAwcHg7XG4gIGZvbnQtc2l6ZTogMThweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLXJhdGlvcyAubGVmdC1wYW5lbCBidXR0b24ge1xuICBvdXRsaW5lOiBub25lO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtcmF0aW9zIC5sZWZ0LXBhbmVsLnNpbXVsYXRpb24gLm1lbWJlciB7XG4gIHBhZGRpbmctdG9wOiA1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1yYXRpb3MgLmxlZnQtcGFuZWwuc2ltdWxhdGlvbiAubWVtYmVyIC5sZWdlbmQge1xuICBkaXNwbGF5OiBub25lO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtcmF0aW9zIC5sZWZ0LXBhbmVsLnNpbXVsYXRpb24gLm1lbWJlciAucHJpY2Uge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLXJhdGlvcyAubGVmdC1wYW5lbC5zaW11bGF0aW9uIC5zZXBhcmF0b3Ige1xuICB3aWR0aDogMTAwJTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLWVtcGxveWVlLWRldGFpbHMge1xuICBmb250LXNpemU6IDEycHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1lbXBsb3llZS1kZXRhaWxzIC5kZXRhaWxzLWNvbnRhaW5lciB7XG4gIHBhZGRpbmc6IDBweDtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLWVtcGxveWVlLWRldGFpbHMgLmRldGFpbHMtY29udGFpbmVyIHtcbiAgICBtYXgtaGVpZ2h0OiAyMDBweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLWVtcGxveWVlLWRldGFpbHMgLnJpZ2h0LXBhbmVsIC5kZXRhaWxzLWNvbnRhaW5lciB7XG4gICAgbWF4LWhlaWdodDogMjIwcHg7XG4gIH1cbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLWVtcGxveWVlLWRldGFpbHMgLnJpZ2h0LXBhbmVsIC5sZWdlbmQge1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1lbXBsb3llZS1kZXRhaWxzIC50aXRsZSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItZW1wbG95ZWVzLWxpc3QgLmxlZ2VuZCB7XG4gIG1hcmdpbi1ib3R0b206IDlweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLWVtcGxveWVlcy1saXN0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItZW1wbG95ZWVzLWxpc3QgLndpZGdldC1saW5lcy1jb250YWluZXIgLndpZGdldC1saW5lOm50aC1jaGlsZChldmVuKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMGYwZjA7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1lbXBsb3llZXMtbGlzdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmU6bnRoLWNoaWxkKG9kZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLWVtcGxveWVlcy1saXN0IC5lZGl0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLWxlYXZlcy1iYWxhbmNlIC5lbXBsb3llZS1uYW1lIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItbGVhdmVzLWJhbGFuY2UgLmJhbGFuY2Uge1xuICBmb250LXdlaWdodDogOTAwO1xuICBmb250LXNpemU6IDIycHg7XG4gIGNvbG9yOiAjNUI2NjY3O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbi10b3A6IDBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLWxlYXZlcy1iYWxhbmNlIGgzIHtcbiAgbWFyZ2luLXRvcDogMzNweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItbGVhdmVzLXNjaGVkdWxlIC5mYy1idXR0b24ge1xuICBoZWlnaHQ6IDIycHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6ICM5NzdiZjA7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBvdXRsaW5lOiBub25lO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItbGVhdmVzLXNjaGVkdWxlIC5mYy1idXR0b246aG92ZXIge1xuICBjb2xvcjogd2hpdGU7XG4gIGJhY2tncm91bmQ6ICM5NzdiZjA7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1sZWF2ZXMtc2NoZWR1bGUgLmZjLXRvb2xiYXIge1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1sZWF2ZXMtc2NoZWR1bGUgLmZjLWRheS1ncmlkLFxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItbGVhdmVzLXNjaGVkdWxlIC5mYy13aWRnZXQtaGVhZGVyIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb2xvcjogIzVCNjY2Nztcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXBheXJvbGwtc3VtbWFyeSB7XG4gIG1pbi1oZWlnaHQ6IDU2NXB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXBheXJvbGwtc3VtbWFyeSB7XG4gICAgaGVpZ2h0OiA1NjVweDtcbiAgfVxuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1wYXlyb2xsLXN1bW1hcnkgLmNoYXJ0LWNvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiA1ODVweDtcbiAgICBtYXgtaGVpZ2h0OiA0NDBweDtcbiAgICBtYXJnaW46IGF1dG87XG4gIH1cbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXBheXJvbGwtc3VtbWFyeSAuZWRpdCB7XG4gIG1heC1oZWlnaHQ6IDU0NXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItcGF5cm9sbC1zdW1tYXJ5IC5lZGl0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1wYXlyb2xsLXN1bW1hcnkgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBtYXgtaGVpZ2h0OiA1NDBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXBheXJvbGwtc3VtbWFyeSAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAubGluZXMtZ3JvdXAgLndpZGdldC1saW5lIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXI6IHNvbGlkIDFweCB3aGl0ZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXBheXJvbGwtc3VtbWFyeSAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAubGluZXMtZ3JvdXAgLndpZGdldC1saW5lIC5zZWxlY3Rpb24tdGFnIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHJpZ2h0OiAwcHg7XG4gIG1hcmdpbi10b3A6IC02cHg7XG4gIHdpZHRoOiAxMHB4O1xuICBoZWlnaHQ6IDI5cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXBheXJvbGwtc3VtbWFyeSAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAubGluZXMtZ3JvdXAgLndpZGdldC1saW5lOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTBmYjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXBheXJvbGwtc3VtbWFyeSAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAubGluZXMtZ3JvdXAgLndpZGdldC1saW5lLm5vLXNlbGVjdCB7XG4gIGN1cnNvcjogYXV0bztcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXBheXJvbGwtc3VtbWFyeSAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAubGluZXMtZ3JvdXAgLndpZGdldC1saW5lLm5vLXNlbGVjdDpob3ZlciB7XG4gIGNvbG9yOiAjNjI2ZDZkO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItcGF5cm9sbC1zdW1tYXJ5IC5yaWdodC1wYW5lbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgbWF4LWhlaWdodDogMjM1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1wYXlyb2xsLXN1bW1hcnkgLm5vLWVsZW1lbnQge1xuICBmb250LXdlaWdodDogMzAwO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGNvbG9yOiAjNUI2NjY3O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1wYXlyb2xsLXN1bW1hcnkgLnJpZ2h0LXBhbmVsIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogMTQ1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1zYWxhcmllcy1zdW1tYXJ5IGgzLmxlZnQge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItc2FsYXJpZXMtc3VtbWFyeSBoMy5sZWZ0IHtcbiAgICBtYXJnaW4tdG9wOiA2OXB4O1xuICB9XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1zYWxhcmllcy1zdW1tYXJ5IGgzLnJlZHVjZWQtbGVmdCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1zYWxhcmllcy1zdW1tYXJ5IGgzLnJlZHVjZWQtbGVmdCB7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbiAgfVxufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItc2FsYXJpZXMtc3VtbWFyeSBoMy5yaWdodCB7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXNhbGFyaWVzLXN1bW1hcnkgLnByaWNlIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXNhbGFyaWVzLXN1bW1hcnkgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBtYXgtaGVpZ2h0OiA3NXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItc2FsYXJpZXMtc3VtbWFyeSAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmUge1xuICBmb250LXNpemU6IDExcHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNDgwcHgpIGFuZCAobWF4LXdpZHRoOiA5OTFweCkge1xuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1zYWxhcmllcy1zdW1tYXJ5IC5yaWdodC1wYW5lbCAuY2hhcnQtY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDMyMHB4O1xuICB9XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1zdXBlcmFubnVhdGlvbi1hY2NydWFscyBoMyB7XG4gIG1hcmdpbi10b3A6IDYzcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXN1cGVyYW5udWF0aW9uLWFjY3J1YWxzIC5sZWdlbmQge1xuICBtYXJnaW4tdG9wOiAyM3B4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItc3VwZXJhbm51YXRpb24tYWNjcnVhbHMgLmN1cnJlbmN5IHtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItc3VwZXJhbm51YXRpb24tYWNjcnVhbHMgLnByaWNlIHtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgZm9udC1zaXplOiAyMnB4O1xuICBjb2xvcjogIzVCNjY2NztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tdG9wOiAwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci10aW1lc2hlZXRzIC5jdXJyZW5jeSB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXRpbWVzaGVldHMgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBtYXgtaGVpZ2h0OiAyMTBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXdvcmtmb3JjZS1zdW1tYXJ5IGgzLmxlZnQge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItd29ya2ZvcmNlLXN1bW1hcnkgaDMubGVmdCB7XG4gICAgbWFyZ2luLXRvcDogNjlweDtcbiAgfVxufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItd29ya2ZvcmNlLXN1bW1hcnkgaDMucmVkdWNlZC1sZWZ0IHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXdvcmtmb3JjZS1zdW1tYXJ5IGgzLnJlZHVjZWQtbGVmdCB7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbiAgfVxufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItd29ya2ZvcmNlLXN1bW1hcnkgaDMucmlnaHQge1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci13b3JrZm9yY2Utc3VtbWFyeSAucHJpY2Uge1xuICBtYXJnaW4tdG9wOiAwO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItd29ya2ZvcmNlLXN1bW1hcnkgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBtYXgtaGVpZ2h0OiA3NXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItd29ya2ZvcmNlLXN1bW1hcnkgLndpZGdldC1saW5lcy1jb250YWluZXIgLndpZGdldC1saW5lIHtcbiAgZm9udC1zaXplOiAxMXB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDQ4MHB4KSBhbmQgKG1heC13aWR0aDogOTkxcHgpIHtcbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItd29ya2ZvcmNlLXN1bW1hcnkgLnJpZ2h0LXBhbmVsIC5jaGFydC1jb250YWluZXIge1xuICAgIG1heC13aWR0aDogMzIwcHg7XG4gIH1cbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50Lmludm9pY2VzLWFnZWQtcGF5YWJsZXMtcmVjZWl2YWJsZXMge1xuICBtaW4taGVpZ2h0OiA1NjVweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5pbnZvaWNlcy1hZ2VkLXBheWFibGVzLXJlY2VpdmFibGVzIHtcbiAgICBoZWlnaHQ6IDU2NXB4O1xuICB9XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50Lmludm9pY2VzLWFnZWQtcGF5YWJsZXMtcmVjZWl2YWJsZXMgLmNoYXJ0LWNvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiA1ODVweDtcbiAgICBtYXgtaGVpZ2h0OiA0NDBweDtcbiAgICBtYXJnaW46IGF1dG87XG4gIH1cbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50Lmludm9pY2VzLWFnZWQtcGF5YWJsZXMtcmVjZWl2YWJsZXMgLmVkaXQge1xuICBtYXgtaGVpZ2h0OiA1NDVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50Lmludm9pY2VzLWFnZWQtcGF5YWJsZXMtcmVjZWl2YWJsZXMgLmVkaXQgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBvdmVyZmxvdy15OiBoaWRkZW47XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50Lmludm9pY2VzLWFnZWQtcGF5YWJsZXMtcmVjZWl2YWJsZXMgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBtYXgtaGVpZ2h0OiA1NDBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50Lmludm9pY2VzLWFnZWQtcGF5YWJsZXMtcmVjZWl2YWJsZXMgLndpZGdldC1saW5lcy1jb250YWluZXIgLmxpbmVzLWdyb3VwIC53aWRnZXQtbGluZSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm9yZGVyOiBzb2xpZCAxcHggd2hpdGU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5pbnZvaWNlcy1hZ2VkLXBheWFibGVzLXJlY2VpdmFibGVzIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC5saW5lcy1ncm91cCAud2lkZ2V0LWxpbmUgLnNlbGVjdGlvbi10YWcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcmlnaHQ6IDBweDtcbiAgbWFyZ2luLXRvcDogLTZweDtcbiAgd2lkdGg6IDEwcHg7XG4gIGhlaWdodDogMjlweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaW52b2ljZXMtYWdlZC1wYXlhYmxlcy1yZWNlaXZhYmxlcyAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAubGluZXMtZ3JvdXAgLndpZGdldC1saW5lOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTBmYjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50Lmludm9pY2VzLWFnZWQtcGF5YWJsZXMtcmVjZWl2YWJsZXMgLndpZGdldC1saW5lcy1jb250YWluZXIgLmxpbmVzLWdyb3VwIC53aWRnZXQtbGluZS5uby1zZWxlY3Qge1xuICBjdXJzb3I6IGF1dG87XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5pbnZvaWNlcy1hZ2VkLXBheWFibGVzLXJlY2VpdmFibGVzIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC5saW5lcy1ncm91cCAud2lkZ2V0LWxpbmUubm8tc2VsZWN0OmhvdmVyIHtcbiAgY29sb3I6ICM2MjZkNmQ7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5pbnZvaWNlcy1hZ2VkLXBheWFibGVzLXJlY2VpdmFibGVzIC5yaWdodC1wYW5lbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgbWF4LWhlaWdodDogMjM1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5pbnZvaWNlcy1hZ2VkLXBheWFibGVzLXJlY2VpdmFibGVzIC5uby1lbGVtZW50IHtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBjb2xvcjogIzVCNjY2NztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaW52b2ljZXMtYWdlZC1wYXlhYmxlcy1yZWNlaXZhYmxlcyAucmlnaHQtcGFuZWwgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBtYXgtaGVpZ2h0OiAyMTVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50Lmludm9pY2VzLWFnZWQtcGF5YWJsZXMtcmVjZWl2YWJsZXMgLnJvdy5hc3Rlcmlja3MtaW5mbyB7XG4gIG1hcmdpbi10b3A6IDE1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5pbnZvaWNlcy1hZ2VkLXBheWFibGVzLXJlY2VpdmFibGVzIC5jdXJyZW5jeS1jb252ZXJzaW9ucyB7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luLWxlZnQ6IDNweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50Lmludm9pY2VzLWxpc3QgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBtYXgtaGVpZ2h0OiAyMzBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50Lmludm9pY2VzLWxpc3QgLndpZGdldC1saW5lcy1jb250YWluZXIgLndpZGdldC1saW5lOm50aC1jaGlsZChldmVuKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMGYwZjA7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5pbnZvaWNlcy1saXN0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZTpudGgtY2hpbGQob2RkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaW52b2ljZXMtbGlzdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmUuaGVhZGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5pbnZvaWNlcy1saXN0IC5jdXJyZW5jeS1jb252ZXJzaW9ucyB7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luLXJpZ2h0OiAzcHg7XG4gIG1hcmdpbi10b3A6IC0ycHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5pbnZvaWNlcy1saXN0IC5mYS5mYS1pbmZvLWNpcmNsZSB7XG4gIGZsb2F0OiByaWdodDtcbiAgZm9udC1zaXplOiAxNXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaW52b2ljZXMtbGlzdCAucmlnaHQtY29sdW1uIHtcbiAgcGFkZGluZy1sZWZ0OiAwcHg7XG4gIHBhZGRpbmctcmlnaHQ6IDBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50Lmludm9pY2VzLXN1bW1hcnkgLmNoYXJ0LWNvbnRhaW5lciB7XG4gIG1heC13aWR0aDogNDEwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5pbnZvaWNlcy1zdW1tYXJ5IC5sZWdlbmQge1xuICBtYXgtaGVpZ2h0OiAyOHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtYWdlZCB7XG4gIG1pbi1oZWlnaHQ6IDU2NXB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWFnZWQge1xuICAgIGhlaWdodDogNTY1cHg7XG4gIH1cbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtYWdlZCAuY2hhcnQtY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDU4NXB4O1xuICAgIG1heC1oZWlnaHQ6IDQ0MHB4O1xuICAgIG1hcmdpbjogYXV0bztcbiAgfVxufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtYWdlZCAuZWRpdCB7XG4gIG1heC1oZWlnaHQ6IDU0NXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtYWdlZCAuZWRpdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtYWdlZCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG1heC1oZWlnaHQ6IDIzOHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtYnJlYWstZXZlbiAucHJpY2Uge1xuICBmb250LXdlaWdodDogOTAwO1xuICBmb250LXNpemU6IDIycHg7XG4gIGNvbG9yOiAjNUI2NjY3O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbi10b3A6IDBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWJyZWFrLWV2ZW4gLmJsb2NrIHtcbiAgbWFyZ2luOiA1cHg7XG4gIHBhZGRpbmc6IDBweCAxMHB4IDVweCAxMHB4O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBib3gtc2hhZG93OiAwcHggN3B4IDEwcHggLTdweCAjMTcyNjJkO1xuICBmb250LXNpemU6IDEycHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1icmVhay1ldmVuIC5ibG9jayBmb3JtLmVkaXRhYmxlLXdyYXAgLmVkaXRhYmxlLWNvbnRyb2xzIGlucHV0IHtcbiAgbWFyZ2luLXRvcDogNXB4O1xuICB3aWR0aDogMTAwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1icmVhay1ldmVuIC5ibG9jay50by1kYXRlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YwZjBmMDtcbiAgY29sb3I6ICM1QjY2Njc7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1icmVhay1ldmVuIC5ibG9jay50by1icmVha2V2ZW4ge1xuICBtYXJnaW4tdG9wOiAxMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTkyODMxO1xuICBjb2xvcjogIzFkZTliNjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWJyZWFrLWV2ZW4gLmJsb2NrLnRvLWJyZWFrZXZlbiAudGl0bGUge1xuICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzJhNDQ1Mztcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWJyZWFrLWV2ZW4gLmJsb2NrLnRvLWJyZWFrZXZlbiAuZGVmaW5lLXRleHQge1xuICBmb250LXdlaWdodDogMzAwO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGNvbG9yOiAjNUI2NjY3O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmctdG9wOiA1cHg7XG4gIGNvbG9yOiAjMWRlOWI2O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtYnJlYWstZXZlbiAuYmxvY2sudG8tYnJlYWtldmVuIC5wcmljZSB7XG4gIGNvbG9yOiAjMWRlOWI2O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtYnJlYWstZXZlbiAuYmxvY2sgLnRpdGxlIHtcbiAgZm9udC1zaXplOiAxM3B4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtdmFyaWFudDogc21hbGwtY2FwcztcbiAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4ICNlNmVkZWU7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1jb21wYXJpc29uIHtcbiAgbWluLWhlaWdodDogNTY1cHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtY29tcGFyaXNvbiB7XG4gICAgaGVpZ2h0OiA1NjVweDtcbiAgfVxuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1jb21wYXJpc29uIC5jaGFydC1jb250YWluZXIge1xuICAgIG1heC13aWR0aDogNTg1cHg7XG4gICAgbWF4LWhlaWdodDogNDQwcHg7XG4gICAgbWFyZ2luOiBhdXRvO1xuICB9XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1jb21wYXJpc29uIC5lZGl0IHtcbiAgbWF4LWhlaWdodDogNTQ1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1jb21wYXJpc29uIC5lZGl0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1jb21wYXJpc29uIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogNTQwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1jb21wYXJpc29uIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC5saW5lcy1ncm91cCAud2lkZ2V0LWxpbmUge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJvcmRlcjogc29saWQgMXB4IHdoaXRlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtY29tcGFyaXNvbiAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAubGluZXMtZ3JvdXAgLndpZGdldC1saW5lIC5zZWxlY3Rpb24tdGFnIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHJpZ2h0OiAwcHg7XG4gIG1hcmdpbi10b3A6IC02cHg7XG4gIHdpZHRoOiAxMHB4O1xuICBoZWlnaHQ6IDI5cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWNvbXBhcmlzb24gLndpZGdldC1saW5lcy1jb250YWluZXIgLmxpbmVzLWdyb3VwIC53aWRnZXQtbGluZTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNmUwZmI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1jb21wYXJpc29uIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC5saW5lcy1ncm91cCAud2lkZ2V0LWxpbmUubm8tc2VsZWN0IHtcbiAgY3Vyc29yOiBhdXRvO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtY29tcGFyaXNvbiAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAubGluZXMtZ3JvdXAgLndpZGdldC1saW5lLm5vLXNlbGVjdDpob3ZlciB7XG4gIGNvbG9yOiAjNjI2ZDZkO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtY29tcGFyaXNvbiAucmlnaHQtcGFuZWwgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG1heC1oZWlnaHQ6IDIzNXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtY29tcGFyaXNvbiAubm8tZWxlbWVudCB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgY29sb3I6ICM1QjY2Njc7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWNvbXBhcmlzb24gLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBtYXgtaGVpZ2h0OiA1MzBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWNvbXBhcmlzb24gLnJpZ2h0LXBhbmVsIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogMjUwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1jb21wYXJpc29uIC5jdXJyZW5jeS1jb252ZXJzaW9ucyBpbWcge1xuICBtYXJnaW4tdG9wOiAtMnB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtY3VzdG9tZXItZGV0YWlscyB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWN1c3RvbWVyLWRldGFpbHMgLmxvYWRlciB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWN1c3RvbWVyLWRldGFpbHMgLmRldGFpbHMtY29udGFpbmVyIHtcbiAgcGFkZGluZzogMHB4O1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtY3VzdG9tZXItZGV0YWlscyAuZGV0YWlscy1jb250YWluZXIge1xuICAgIG1heC1oZWlnaHQ6IDE5NHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtY3VzdG9tZXItZGV0YWlscyAucmlnaHQtcGFuZWwgLmRldGFpbHMtY29udGFpbmVyIHtcbiAgICBtYXgtaGVpZ2h0OiAyMzBweDtcbiAgfVxufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtY3VzdG9tZXItZGV0YWlscyAucmlnaHQtcGFuZWwgLmxlZ2VuZCB7XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWN1c3RvbWVyLWRldGFpbHMgLnJvdy50aXRsZSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtY3VzdG9tZXItZGV0YWlscyAuY3VycmVuY3ktY29udmVyc2lvbnMge1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLXJpZ2h0OiAzcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1jeWNsZSAuY2hhcnQtY29udGFpbmVyIHtcbiAgbWF4LXdpZHRoOiA0MTBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWN5Y2xlIC5sZWdlbmQge1xuICBtYXgtaGVpZ2h0OiAyOHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtZm9yZWNhc3Qge1xuICBtaW4taGVpZ2h0OiA1NjVweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1mb3JlY2FzdCB7XG4gICAgaGVpZ2h0OiA1NjVweDtcbiAgfVxuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1mb3JlY2FzdCAuY2hhcnQtY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDU4NXB4O1xuICAgIG1heC1oZWlnaHQ6IDQ0MHB4O1xuICAgIG1hcmdpbjogYXV0bztcbiAgfVxufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtZm9yZWNhc3QgLmVkaXQge1xuICBtYXgtaGVpZ2h0OiA1NDVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWZvcmVjYXN0IC5lZGl0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1mb3JlY2FzdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG1heC1oZWlnaHQ6IDI3NXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtZm9yZWNhc3QgLndpZGdldC1saW5lcy1jb250YWluZXIgLndpZGdldC1saW5lLm1haW4ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJvcmRlcjogc29saWQgMXB4IHdoaXRlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtZm9yZWNhc3QgLndpZGdldC1saW5lcy1jb250YWluZXIgLndpZGdldC1saW5lLm1haW4gLnNlbGVjdGlvbi10YWcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcmlnaHQ6IDBweDtcbiAgbWFyZ2luLXRvcDogLTZweDtcbiAgd2lkdGg6IDEwcHg7XG4gIGhlaWdodDogMjlweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtZm9yZWNhc3QgLndpZGdldC1saW5lcy1jb250YWluZXIgLndpZGdldC1saW5lLm1haW46aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlMGZiO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtZm9yZWNhc3QgLndpZGdldC1saW5lcy1jb250YWluZXIgLndpZGdldC1saW5lLm1haW4ubm8tc2VsZWN0IHtcbiAgY3Vyc29yOiBhdXRvO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtZm9yZWNhc3QgLndpZGdldC1saW5lcy1jb250YWluZXIgLndpZGdldC1saW5lLm1haW4ubm8tc2VsZWN0OmhvdmVyIHtcbiAgY29sb3I6ICM2MjZkNmQ7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1ncm93dGggLnByaWNlIHtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgZm9udC1zaXplOiAyMnB4O1xuICBjb2xvcjogIzVCNjY2NztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tdG9wOiAwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1ncm93dGggLmxlZ2VuZCB7XG4gIG1heC1oZWlnaHQ6IDQ5cHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1sZWFkcy1mdW5uZWwge1xuICBtaW4taGVpZ2h0OiA1NjVweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1sZWFkcy1mdW5uZWwge1xuICAgIGhlaWdodDogNTY1cHg7XG4gIH1cbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbGVhZHMtZnVubmVsIC5jaGFydC1jb250YWluZXIge1xuICAgIG1heC13aWR0aDogNTg1cHg7XG4gICAgbWF4LWhlaWdodDogNDQwcHg7XG4gICAgbWFyZ2luOiBhdXRvO1xuICB9XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1sZWFkcy1mdW5uZWwgLmVkaXQge1xuICBtYXgtaGVpZ2h0OiA1NDVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWxlYWRzLWZ1bm5lbCAuZWRpdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbGVhZHMtZnVubmVsIC5mdW5uZWwtY29udGFpbmVyIHtcbiAgd2lkdGg6IDk1JTtcbiAgbWFyZ2luOiBhdXRvO1xuICBtYXJnaW4tdG9wOiAxNXB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xuICBtYXgtaGVpZ2h0OiA1MDVweDtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1sZWFkcy1mdW5uZWwgLnJpZ2h0LXBhbmVsIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogNTQ1cHg7XG4gIG1hcmdpbi1yaWdodDogMTBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWxlYWRzLWZ1bm5lbCAucmlnaHQtcGFuZWwgLndpZGdldC1saW5lcy1jb250YWluZXIgLndpZGdldC1saW5lIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbGVhZHMtbGlzdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG1heC1oZWlnaHQ6IDIzMHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbGVhZHMtbGlzdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmU6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YwZjBmMDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWxlYWRzLWxpc3QgLndpZGdldC1saW5lcy1jb250YWluZXIgLndpZGdldC1saW5lOm50aC1jaGlsZChvZGQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1sZWFkcy1saXN0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZS5oZWFkZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWxlYWRzLWxpc3QgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWxpc3QgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBtYXgtaGVpZ2h0OiAyMzBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWxpc3QgLndpZGdldC1saW5lcy1jb250YWluZXIgLndpZGdldC1saW5lOm50aC1jaGlsZChldmVuKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMGYwZjA7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1saXN0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZTpudGgtY2hpbGQob2RkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbGlzdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmUuaGVhZGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1saXN0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG1heC1oZWlnaHQ6IDE3MHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbGlzdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lci5uby1zY3JvbGwge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWxpc3QgLnNlbGVjdG9yIHtcbiAgbWFyZ2luLWJvdHRvbTogNHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbGlzdCAuY3VycmVuY3ktY29udmVyc2lvbnMgaW1nIHtcbiAgbWFyZ2luLXRvcDogLTJweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLW5ldC1zYWxlcyAudmFsdWUtY29udGFpbmVyLFxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbmV0LXNhbGVzIC5vcGVyYXRvciB7XG4gIGxpbmUtaGVpZ2h0OiA4NXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbmV0LXNhbGVzIC52YWx1ZS1jb250YWluZXIgLnRpdGxlIHtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIGZvbnQtc2l6ZTogMS4yZW07XG4gIHBhZGRpbmc6IDEwcHggMHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbmV0LXNhbGVzIC52YWx1ZS1jb250YWluZXIgLnZhbHVlLWJveCB7XG4gIGZvbnQtc2l6ZTogMS4zZW07XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIGJvcmRlci10b3A6IHNvbGlkIDFweCAjQzRDQUNBO1xuICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggI0M0Q0FDQTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLW5ldC1zYWxlcyAub3BlcmF0b3Ige1xuICBwYWRkaW5nLXRvcDogMzhweDtcbiAgZm9udC1zaXplOiAxLjNlbTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1uZXQtc2FsZXMgLnZhbHVlcyB7XG4gICAgbWFyZ2luLXRvcDogMjVweDtcbiAgfVxufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbmV3LXZzLWV4aXN0aW5nLWN1c3RvbWVycyAuc2VsZWN0b3IgLnNlbGVjdG9yLXdyYXAge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbjogMCA1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1uZXctdnMtZXhpc3RpbmctY3VzdG9tZXJzIC5jaGFydC1jb250YWluZXIge1xuICBtYXJnaW4tdG9wOiAxNXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbmV3LXZzLWV4aXN0aW5nLWN1c3RvbWVycyAubGVnZW5kIHtcbiAgbWFyZ2luLXRvcDogNXB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbWF4LWhlaWdodDogNzdweCAhaW1wb3J0YW50O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbmV3LXZzLWV4aXN0aW5nLWN1c3RvbWVycyAubGVnZW5kIC5yb3cge1xuICBtYXJnaW46IDBweCAtNXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbmV3LXZzLWV4aXN0aW5nLWN1c3RvbWVycyAubGVnZW5kIC5yb3cgPiBkaXYge1xuICBwYWRkaW5nOiAwcHggNXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbmV3LXZzLWV4aXN0aW5nLWN1c3RvbWVycyAubGVnZW5kIC50b3RhbCB7XG4gIGNvbG9yOiAjNUI2NjY3O1xuICBmb250LXNpemU6IDE0cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1udW1iZXItb2YtbGVhZHMgLnN0YXRzIHtcbiAgbWFyZ2luLXRvcDogMzVweDtcbiAgZm9udC1zaXplOiAxOHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbnVtYmVyLW9mLWxlYWRzIC5zdGF0cyAuc3RhdCB7XG4gIG1hcmdpbjogMTVweCAwcHggMTBweCAwcHg7XG4gIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCAjZTZlZGVlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbnVtYmVyLW9mLWxlYWRzIC5zdGF0cyAuc3RhdCBzcGFuLnRpdGxlIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1udW1iZXItb2YtbGVhZHMgLnN0YXRzIC5zdGF0IHNwYW4ubm9taW5hbCB7XG4gIGZsb2F0OiByaWdodDtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1udW1iZXItb2YtbGVhZHMgLnN0YXRzIC5zdGF0IHNwYW4udmFyaWF0aW9uIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICB3aWR0aDogNTBweDtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogMzAwO1xuICBtYXJnaW4tdG9wOiAycHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1vcHBvcnR1bml0aWVzLWZ1bm5lbCB7XG4gIG1pbi1oZWlnaHQ6IDU2NXB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLW9wcG9ydHVuaXRpZXMtZnVubmVsIHtcbiAgICBoZWlnaHQ6IDU2NXB4O1xuICB9XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLW9wcG9ydHVuaXRpZXMtZnVubmVsIC5jaGFydC1jb250YWluZXIge1xuICAgIG1heC13aWR0aDogNTg1cHg7XG4gICAgbWF4LWhlaWdodDogNDQwcHg7XG4gICAgbWFyZ2luOiBhdXRvO1xuICB9XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1vcHBvcnR1bml0aWVzLWZ1bm5lbCAuZWRpdCB7XG4gIG1heC1oZWlnaHQ6IDU0NXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtb3Bwb3J0dW5pdGllcy1mdW5uZWwgLmVkaXQgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBvdmVyZmxvdy15OiBoaWRkZW47XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLW9wcG9ydHVuaXRpZXMtZnVubmVsIC5mdW5uZWwtY29udGFpbmVyIHtcbiAgd2lkdGg6IDk1JTtcbiAgbWFyZ2luOiBhdXRvO1xuICBtYXJnaW4tdG9wOiAxNXB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xuICBtYXgtaGVpZ2h0OiA1MDVweDtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1vcHBvcnR1bml0aWVzLWZ1bm5lbCAucmlnaHQtcGFuZWwgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBtYXgtaGVpZ2h0OiA1NDVweDtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtb3Bwb3J0dW5pdGllcy1mdW5uZWwgLnJpZ2h0LXBhbmVsIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZSB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXBlcmZvcm1hbmNlIHtcbiAgbWluLWhlaWdodDogNTY1cHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtcGVyZm9ybWFuY2Uge1xuICAgIGhlaWdodDogNTY1cHg7XG4gIH1cbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtcGVyZm9ybWFuY2UgLmNoYXJ0LWNvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiA1ODVweDtcbiAgICBtYXgtaGVpZ2h0OiA0NDBweDtcbiAgICBtYXJnaW46IGF1dG87XG4gIH1cbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXBlcmZvcm1hbmNlIC5lZGl0IHtcbiAgbWF4LWhlaWdodDogNTQ1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1wZXJmb3JtYW5jZSAuZWRpdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtcGVyZm9ybWFuY2UgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBtYXgtaGVpZ2h0OiA1NDBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXBlcmZvcm1hbmNlIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC5saW5lcy1ncm91cCAud2lkZ2V0LWxpbmUge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJvcmRlcjogc29saWQgMXB4IHdoaXRlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtcGVyZm9ybWFuY2UgLndpZGdldC1saW5lcy1jb250YWluZXIgLmxpbmVzLWdyb3VwIC53aWRnZXQtbGluZSAuc2VsZWN0aW9uLXRhZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICByaWdodDogMHB4O1xuICBtYXJnaW4tdG9wOiAtNnB4O1xuICB3aWR0aDogMTBweDtcbiAgaGVpZ2h0OiAyOXB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1wZXJmb3JtYW5jZSAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAubGluZXMtZ3JvdXAgLndpZGdldC1saW5lOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTBmYjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXBlcmZvcm1hbmNlIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC5saW5lcy1ncm91cCAud2lkZ2V0LWxpbmUubm8tc2VsZWN0IHtcbiAgY3Vyc29yOiBhdXRvO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtcGVyZm9ybWFuY2UgLndpZGdldC1saW5lcy1jb250YWluZXIgLmxpbmVzLWdyb3VwIC53aWRnZXQtbGluZS5uby1zZWxlY3Q6aG92ZXIge1xuICBjb2xvcjogIzYyNmQ2ZDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXBlcmZvcm1hbmNlIC5yaWdodC1wYW5lbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgbWF4LWhlaWdodDogMjM1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1wZXJmb3JtYW5jZSAubm8tZWxlbWVudCB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgY29sb3I6ICM1QjY2Njc7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXBlcmZvcm1hbmNlIC5yaWdodC1wYW5lbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG1heC1oZWlnaHQ6IDIxNXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtcGVyZm9ybWFuY2UgLnJpZ2h0LXBhbmVsIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZS5oZWFkZXIge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJvcmRlcjogc29saWQgMXB4IHdoaXRlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtcGVyZm9ybWFuY2UgLnJpZ2h0LXBhbmVsIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZS5oZWFkZXIgLnNlbGVjdGlvbi10YWcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcmlnaHQ6IDBweDtcbiAgbWFyZ2luLXRvcDogLTZweDtcbiAgd2lkdGg6IDEwcHg7XG4gIGhlaWdodDogMjlweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtcGVyZm9ybWFuY2UgLnJpZ2h0LXBhbmVsIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZS5oZWFkZXI6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlMGZiO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtcGVyZm9ybWFuY2UgLnJpZ2h0LXBhbmVsIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZS5oZWFkZXIubm8tc2VsZWN0IHtcbiAgY3Vyc29yOiBhdXRvO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtcGVyZm9ybWFuY2UgLnJpZ2h0LXBhbmVsIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZS5oZWFkZXIubm8tc2VsZWN0OmhvdmVyIHtcbiAgY29sb3I6ICM2MjZkNmQ7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1zZWdtZW50ZWQtdHVybm92ZXIgaDMucmlnaHQge1xuICBtYXJnaW4tdG9wOiA1NXB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1zZWdtZW50ZWQtdHVybm92ZXIgLnNlbGVjdG9yIHtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXNlZ21lbnRlZC10dXJub3ZlciAuYW5hbHlzaXMge1xuICBmb250LXdlaWdodDogOTAwO1xuICBmb250LXNpemU6IDIycHg7XG4gIGNvbG9yOiAjNUI2NjY3O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbi10b3A6IDBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXNlZ21lbnRlZC10dXJub3ZlciAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG1heC1oZWlnaHQ6IDc1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1zZWdtZW50ZWQtdHVybm92ZXIgLndpZGdldC1saW5lcy1jb250YWluZXIgLndpZGdldC1saW5lIHtcbiAgZm9udC1zaXplOiAxMXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtc2VnbWVudGVkLXR1cm5vdmVyIC5yaWdodC1wYW5lbCBoMyB7XG4gIG1hcmdpbjogMTVweCAxMHB4IDVweCAxMHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1zZWdtZW50ZWQtdHVybm92ZXIgLnJpZ2h0LXBhbmVsIC5mYS5mYS1pbmZvLWNpcmNsZSB7XG4gIGZsb2F0OiBsZWZ0O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtc3VtbWFyeSAuY2hhcnQtY29udGFpbmVyIHtcbiAgbWF4LXdpZHRoOiA0MTBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXN1bW1hcnkgLmxlZ2VuZCB7XG4gIG1heC1oZWlnaHQ6IDI4cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1zdW1tYXJ5IC5zZWxlY3RvciB7XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXRvcC1jdXN0b21lcnMgLnNlbGVjdG9yIHtcbiAgYm9yZGVyLWJvdHRvbTogZGFzaGVkIDFweCAjRTZFNkU2O1xuICBwYWRkaW5nLWJvdHRvbTogM3B4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtdG9wLWN1c3RvbWVycyAuc2VsZWN0b3IgYSB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy10b3AtY3VzdG9tZXJzIC5zZWxlY3RvciAucGFyYW0tc2VsZWN0b3Ige1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy10b3AtY3VzdG9tZXJzIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogMjM1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy10b3AtY3VzdG9tZXJzIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZS5zdWItbGluZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMGYwZjA7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy10b3AtY3VzdG9tZXJzIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC5yb3cgPiBbY2xhc3MqPSdjb2wtJ10ge1xuICBwb3NpdGlvbjogc3RhdGljO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtdG9wLWN1c3RvbWVycyAuY3VycmVuY3ktY29udmVyc2lvbnMgaW1nIHtcbiAgbWFyZ2luLXRvcDogLTJweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXRvcC1vcHBvcnR1bml0aWVzIC5vcHBzLWNvbnRhaW5lciB7XG4gIG1heC1oZWlnaHQ6IDE5NXB4O1xuICBtYXJnaW4tdG9wOiAxMHB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy10b3Atb3Bwb3J0dW5pdGllcyAub3Bwcy1jb250YWluZXIgLnRpbGUge1xuICBoZWlnaHQ6IDQwcHg7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXRvcC1vcHBvcnR1bml0aWVzIC5vcHBzLWNvbnRhaW5lciAudGlsZSAuY29sb3JlZC1hcmVhIHtcbiAgd2lkdGg6IDEwJTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXNpemU6IDIwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy10b3Atb3Bwb3J0dW5pdGllcyAub3Bwcy1jb250YWluZXIgLnRpbGUgLm1haW4tdGV4dCB7XG4gIGNvbG9yOiAjNUI2NjY3O1xuICBwYWRkaW5nOiAzcHggMHB4IDBweCAxMHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtdG9wLW9wcG9ydHVuaXRpZXMgLm9wcHMtY29udGFpbmVyIC50aWxlLmZpcnN0IHtcbiAgaGVpZ2h0OiA1NXB4O1xuICBmb250LXNpemU6IDE1cHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtdG9wLW9wcG9ydHVuaXRpZXMgLm9wcHMtY29udGFpbmVyIC50aWxlLmZpcnN0IC5jb2xvcmVkLWFyZWEge1xuICBmb250LXNpemU6IDI2cHg7XG4gIHBhZGRpbmctdG9wOiAxMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY2ZTQxO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtdG9wLW9wcG9ydHVuaXRpZXMgLm9wcHMtY29udGFpbmVyIC50aWxlLmZpcnN0IC5tYWluLXRleHQge1xuICBwYWRkaW5nLXRvcDogOHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtdG9wLW9wcG9ydHVuaXRpZXMgLm9wcHMtY29udGFpbmVyIC50aWxlLnNlY29uZCB7XG4gIGhlaWdodDogNTVweDtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBmb250LXdlaWdodDogNTAwO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtdG9wLW9wcG9ydHVuaXRpZXMgLm9wcHMtY29udGFpbmVyIC50aWxlLnNlY29uZCAuY29sb3JlZC1hcmVhIHtcbiAgZm9udC1zaXplOiAyNnB4O1xuICBwYWRkaW5nLXRvcDogMTBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFkZTliNjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXRvcC1vcHBvcnR1bml0aWVzIC5vcHBzLWNvbnRhaW5lciAudGlsZS5zZWNvbmQgLm1haW4tdGV4dCB7XG4gIHBhZGRpbmctdG9wOiA4cHg7XG59XG4vKiBlbmRpbmplY3QgKi9cbiIsIi8qISBub3JtYWxpemUuY3NzIHYzLjAuMyB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9cblxuLy9cbi8vIDEuIFNldCBkZWZhdWx0IGZvbnQgZmFtaWx5IHRvIHNhbnMtc2VyaWYuXG4vLyAyLiBQcmV2ZW50IGlPUyBhbmQgSUUgdGV4dCBzaXplIGFkanVzdCBhZnRlciBkZXZpY2Ugb3JpZW50YXRpb24gY2hhbmdlLFxuLy8gICAgd2l0aG91dCBkaXNhYmxpbmcgdXNlciB6b29tLlxuLy9cblxuaHRtbCB7XG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOyAvLyAxXG4gIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvLyAyXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLy8gMlxufVxuXG4vL1xuLy8gUmVtb3ZlIGRlZmF1bHQgbWFyZ2luLlxuLy9cblxuYm9keSB7XG4gIG1hcmdpbjogMDtcbn1cblxuLy8gSFRNTDUgZGlzcGxheSBkZWZpbml0aW9uc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy9cbi8vIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBhbnkgSFRNTDUgZWxlbWVudCBpbiBJRSA4LzkuXG4vLyBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYGRldGFpbHNgIG9yIGBzdW1tYXJ5YCBpbiBJRSAxMC8xMVxuLy8gYW5kIEZpcmVmb3guXG4vLyBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYG1haW5gIGluIElFIDExLlxuLy9cblxuYXJ0aWNsZSxcbmFzaWRlLFxuZGV0YWlscyxcbmZpZ2NhcHRpb24sXG5maWd1cmUsXG5mb290ZXIsXG5oZWFkZXIsXG5oZ3JvdXAsXG5tYWluLFxubWVudSxcbm5hdixcbnNlY3Rpb24sXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8vXG4vLyAxLiBDb3JyZWN0IGBpbmxpbmUtYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgaW4gSUUgOC85LlxuLy8gMi4gTm9ybWFsaXplIHZlcnRpY2FsIGFsaWdubWVudCBvZiBgcHJvZ3Jlc3NgIGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuLy9cblxuYXVkaW8sXG5jYW52YXMsXG5wcm9ncmVzcyxcbnZpZGVvIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyAvLyAxXG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgLy8gMlxufVxuXG4vL1xuLy8gUHJldmVudCBtb2Rlcm4gYnJvd3NlcnMgZnJvbSBkaXNwbGF5aW5nIGBhdWRpb2Agd2l0aG91dCBjb250cm9scy5cbi8vIFJlbW92ZSBleGNlc3MgaGVpZ2h0IGluIGlPUyA1IGRldmljZXMuXG4vL1xuXG5hdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICBkaXNwbGF5OiBub25lO1xuICBoZWlnaHQ6IDA7XG59XG5cbi8vXG4vLyBBZGRyZXNzIGBbaGlkZGVuXWAgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAuXG4vLyBIaWRlIHRoZSBgdGVtcGxhdGVgIGVsZW1lbnQgaW4gSUUgOC85LzEwLzExLCBTYWZhcmksIGFuZCBGaXJlZm94IDwgMjIuXG4vL1xuXG5baGlkZGVuXSxcbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLy8gTGlua3Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vXG4vLyBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBjb2xvciBmcm9tIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbi8vXG5cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLy9cbi8vIEltcHJvdmUgcmVhZGFiaWxpdHkgb2YgZm9jdXNlZCBlbGVtZW50cyB3aGVuIHRoZXkgYXJlIGFsc28gaW4gYW5cbi8vIGFjdGl2ZS9ob3ZlciBzdGF0ZS5cbi8vXG5cbmE6YWN0aXZlLFxuYTpob3ZlciB7XG4gIG91dGxpbmU6IDA7XG59XG5cbi8vIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vL1xuLy8gQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC8xMSwgU2FmYXJpLCBhbmQgQ2hyb21lLlxuLy9cblxuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkO1xufVxuXG4vL1xuLy8gQWRkcmVzcyBzdHlsZSBzZXQgdG8gYGJvbGRlcmAgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuLy9cblxuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vL1xuLy8gQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuLy9cblxuZGZuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4vL1xuLy8gQWRkcmVzcyB2YXJpYWJsZSBgaDFgIGZvbnQtc2l6ZSBhbmQgbWFyZ2luIHdpdGhpbiBgc2VjdGlvbmAgYW5kIGBhcnRpY2xlYFxuLy8gY29udGV4dHMgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuLy9cblxuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAwLjY3ZW0gMDtcbn1cblxuLy9cbi8vIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkuXG4vL1xuXG5tYXJrIHtcbiAgYmFja2dyb3VuZDogI2ZmMDtcbiAgY29sb3I6ICMwMDA7XG59XG5cbi8vXG4vLyBBZGRyZXNzIGluY29uc2lzdGVudCBhbmQgdmFyaWFibGUgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbi8vXG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG59XG5cbi8vXG4vLyBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBhZmZlY3RpbmcgYGxpbmUtaGVpZ2h0YCBpbiBhbGwgYnJvd3NlcnMuXG4vL1xuXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG4vLyBFbWJlZGRlZCBjb250ZW50XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vL1xuLy8gUmVtb3ZlIGJvcmRlciB3aGVuIGluc2lkZSBgYWAgZWxlbWVudCBpbiBJRSA4LzkvMTAuXG4vL1xuXG5pbWcge1xuICBib3JkZXI6IDA7XG59XG5cbi8vXG4vLyBDb3JyZWN0IG92ZXJmbG93IG5vdCBoaWRkZW4gaW4gSUUgOS8xMC8xMS5cbi8vXG5cbnN2Zzpub3QoOnJvb3QpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLy8gR3JvdXBpbmcgY29udGVudFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy9cbi8vIEFkZHJlc3MgbWFyZ2luIG5vdCBwcmVzZW50IGluIElFIDgvOSBhbmQgU2FmYXJpLlxuLy9cblxuZmlndXJlIHtcbiAgbWFyZ2luOiAxZW0gNDBweDtcbn1cblxuLy9cbi8vIEFkZHJlc3MgZGlmZmVyZW5jZXMgYmV0d2VlbiBGaXJlZm94IGFuZCBvdGhlciBicm93c2Vycy5cbi8vXG5cbmhyIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGhlaWdodDogMDtcbn1cblxuLy9cbi8vIENvbnRhaW4gb3ZlcmZsb3cgaW4gYWxsIGJyb3dzZXJzLlxuLy9cblxucHJlIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8vXG4vLyBBZGRyZXNzIG9kZCBgZW1gLXVuaXQgZm9udCBzaXplIHJlbmRlcmluZyBpbiBhbGwgYnJvd3NlcnMuXG4vL1xuXG5jb2RlLFxua2JkLFxucHJlLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgZm9udC1zaXplOiAxZW07XG59XG5cbi8vIEZvcm1zXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vL1xuLy8gS25vd24gbGltaXRhdGlvbjogYnkgZGVmYXVsdCwgQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWCBhbGxvdyB2ZXJ5IGxpbWl0ZWRcbi8vIHN0eWxpbmcgb2YgYHNlbGVjdGAsIHVubGVzcyBhIGBib3JkZXJgIHByb3BlcnR5IGlzIHNldC5cbi8vXG5cbi8vXG4vLyAxLiBDb3JyZWN0IGNvbG9yIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4vLyAgICBLbm93biBpc3N1ZTogYWZmZWN0cyBjb2xvciBvZiBkaXNhYmxlZCBlbGVtZW50cy5cbi8vIDIuIENvcnJlY3QgZm9udCBwcm9wZXJ0aWVzIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4vLyAzLiBBZGRyZXNzIG1hcmdpbnMgc2V0IGRpZmZlcmVudGx5IGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbi8vXG5cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGNvbG9yOiBpbmhlcml0OyAvLyAxXG4gIGZvbnQ6IGluaGVyaXQ7IC8vIDJcbiAgbWFyZ2luOiAwOyAvLyAzXG59XG5cbi8vXG4vLyBBZGRyZXNzIGBvdmVyZmxvd2Agc2V0IHRvIGBoaWRkZW5gIGluIElFIDgvOS8xMC8xMS5cbi8vXG5cbmJ1dHRvbiB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4vL1xuLy8gQWRkcmVzcyBpbmNvbnNpc3RlbnQgYHRleHQtdHJhbnNmb3JtYCBpbmhlcml0YW5jZSBmb3IgYGJ1dHRvbmAgYW5kIGBzZWxlY3RgLlxuLy8gQWxsIG90aGVyIGZvcm0gY29udHJvbCBlbGVtZW50cyBkbyBub3QgaW5oZXJpdCBgdGV4dC10cmFuc2Zvcm1gIHZhbHVlcy5cbi8vIENvcnJlY3QgYGJ1dHRvbmAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveCwgSUUgOC85LzEwLzExLCBhbmQgT3BlcmEuXG4vLyBDb3JyZWN0IGBzZWxlY3RgIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3guXG4vL1xuXG5idXR0b24sXG5zZWxlY3Qge1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLy9cbi8vIDEuIEF2b2lkIHRoZSBXZWJLaXQgYnVnIGluIEFuZHJvaWQgNC4wLiogd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gXG4vLyAgICBhbmQgYHZpZGVvYCBjb250cm9scy5cbi8vIDIuIENvcnJlY3QgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSBgaW5wdXRgIHR5cGVzIGluIGlPUy5cbi8vIDMuIEltcHJvdmUgdXNhYmlsaXR5IGFuZCBjb25zaXN0ZW5jeSBvZiBjdXJzb3Igc3R5bGUgYmV0d2VlbiBpbWFnZS10eXBlXG4vLyAgICBgaW5wdXRgIGFuZCBvdGhlcnMuXG4vL1xuXG5idXR0b24sXG5odG1sIGlucHV0W3R5cGU9XCJidXR0b25cIl0sIC8vIDFcbmlucHV0W3R5cGU9XCJyZXNldFwiXSxcbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLy8gMlxuICBjdXJzb3I6IHBvaW50ZXI7IC8vIDNcbn1cblxuLy9cbi8vIFJlLXNldCBkZWZhdWx0IGN1cnNvciBmb3IgZGlzYWJsZWQgZWxlbWVudHMuXG4vL1xuXG5idXR0b25bZGlzYWJsZWRdLFxuaHRtbCBpbnB1dFtkaXNhYmxlZF0ge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi8vXG4vLyBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgYm9yZGVyIGluIEZpcmVmb3ggNCsuXG4vL1xuXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5pbnB1dDo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuLy9cbi8vIEFkZHJlc3MgRmlyZWZveCA0KyBzZXR0aW5nIGBsaW5lLWhlaWdodGAgb24gYGlucHV0YCB1c2luZyBgIWltcG9ydGFudGAgaW5cbi8vIHRoZSBVQSBzdHlsZXNoZWV0LlxuLy9cblxuaW5wdXQge1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xufVxuXG4vL1xuLy8gSXQncyByZWNvbW1lbmRlZCB0aGF0IHlvdSBkb24ndCBhdHRlbXB0IHRvIHN0eWxlIHRoZXNlIGVsZW1lbnRzLlxuLy8gRmlyZWZveCdzIGltcGxlbWVudGF0aW9uIGRvZXNuJ3QgcmVzcGVjdCBib3gtc2l6aW5nLCBwYWRkaW5nLCBvciB3aWR0aC5cbi8vXG4vLyAxLiBBZGRyZXNzIGJveCBzaXppbmcgc2V0IHRvIGBjb250ZW50LWJveGAgaW4gSUUgOC85LzEwLlxuLy8gMi4gUmVtb3ZlIGV4Y2VzcyBwYWRkaW5nIGluIElFIDgvOS8xMC5cbi8vXG5cbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcbmlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8vIDFcbiAgcGFkZGluZzogMDsgLy8gMlxufVxuXG4vL1xuLy8gRml4IHRoZSBjdXJzb3Igc3R5bGUgZm9yIENocm9tZSdzIGluY3JlbWVudC9kZWNyZW1lbnQgYnV0dG9ucy4gRm9yIGNlcnRhaW5cbi8vIGBmb250LXNpemVgIHZhbHVlcyBvZiB0aGUgYGlucHV0YCwgaXQgY2F1c2VzIHRoZSBjdXJzb3Igc3R5bGUgb2YgdGhlXG4vLyBkZWNyZW1lbnQgYnV0dG9uIHRvIGNoYW5nZSBmcm9tIGBkZWZhdWx0YCB0byBgdGV4dGAuXG4vL1xuXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLy9cbi8vIDEuIEFkZHJlc3MgYGFwcGVhcmFuY2VgIHNldCB0byBgc2VhcmNoZmllbGRgIGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuLy8gMi4gQWRkcmVzcyBgYm94LXNpemluZ2Agc2V0IHRvIGBib3JkZXItYm94YCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbi8vXG5cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLy8gMVxuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLy8yXG59XG5cbi8vXG4vLyBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgc2VhcmNoIGNhbmNlbCBidXR0b24gaW4gU2FmYXJpIGFuZCBDaHJvbWUgb24gT1MgWC5cbi8vIFNhZmFyaSAoYnV0IG5vdCBDaHJvbWUpIGNsaXBzIHRoZSBjYW5jZWwgYnV0dG9uIHdoZW4gdGhlIHNlYXJjaCBpbnB1dCBoYXNcbi8vIHBhZGRpbmcgKGFuZCBgdGV4dGZpZWxkYCBhcHBlYXJhbmNlKS5cbi8vXG5cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG4vL1xuLy8gRGVmaW5lIGNvbnNpc3RlbnQgYm9yZGVyLCBtYXJnaW4sIGFuZCBwYWRkaW5nLlxuLy9cblxuZmllbGRzZXQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICBtYXJnaW46IDAgMnB4O1xuICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07XG59XG5cbi8vXG4vLyAxLiBDb3JyZWN0IGBjb2xvcmAgbm90IGJlaW5nIGluaGVyaXRlZCBpbiBJRSA4LzkvMTAvMTEuXG4vLyAyLiBSZW1vdmUgcGFkZGluZyBzbyBwZW9wbGUgYXJlbid0IGNhdWdodCBvdXQgaWYgdGhleSB6ZXJvIG91dCBmaWVsZHNldHMuXG4vL1xuXG5sZWdlbmQge1xuICBib3JkZXI6IDA7IC8vIDFcbiAgcGFkZGluZzogMDsgLy8gMlxufVxuXG4vL1xuLy8gUmVtb3ZlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDgvOS8xMC8xMS5cbi8vXG5cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8vXG4vLyBEb24ndCBpbmhlcml0IHRoZSBgZm9udC13ZWlnaHRgIChhcHBsaWVkIGJ5IGEgcnVsZSBhYm92ZSkuXG4vLyBOT1RFOiB0aGUgZGVmYXVsdCBjYW5ub3Qgc2FmZWx5IGJlIGNoYW5nZWQgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWC5cbi8vXG5cbm9wdGdyb3VwIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi8vIFRhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy9cbi8vIFJlbW92ZSBtb3N0IHNwYWNpbmcgYmV0d2VlbiB0YWJsZSBjZWxscy5cbi8vXG5cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7XG59XG5cbnRkLFxudGgge1xuICBwYWRkaW5nOiAwO1xufVxuIiwiLy9cbi8vIEdseXBoaWNvbnMgZm9yIEJvb3RzdHJhcFxuLy9cbi8vIFNpbmNlIGljb25zIGFyZSBmb250cywgdGhleSBjYW4gYmUgcGxhY2VkIGFueXdoZXJlIHRleHQgaXMgcGxhY2VkIGFuZCBhcmVcbi8vIHRodXMgYXV0b21hdGljYWxseSBzaXplZCB0byBtYXRjaCB0aGUgc3Vycm91bmRpbmcgY2hpbGQuIFRvIHVzZSwgY3JlYXRlIGFuXG4vLyBpbmxpbmUgZWxlbWVudCB3aXRoIHRoZSBhcHByb3ByaWF0ZSBjbGFzc2VzLCBsaWtlIHNvOlxuLy9cbi8vIDxhIGhyZWY9XCIjXCI+PHNwYW4gY2xhc3M9XCJnbHlwaGljb24gZ2x5cGhpY29uLXN0YXJcIj48L3NwYW4+IFN0YXI8L2E+XG5cbi8vIEltcG9ydCB0aGUgZm9udHNcbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0dseXBoaWNvbnMgSGFsZmxpbmdzJztcbiAgc3JjOiB1cmwoJ0B7aWNvbi1mb250LXBhdGh9QHtpY29uLWZvbnQtbmFtZX0uZW90Jyk7XG4gIHNyYzogdXJsKCdAe2ljb24tZm9udC1wYXRofUB7aWNvbi1mb250LW5hbWV9LmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gICAgICAgdXJsKCdAe2ljb24tZm9udC1wYXRofUB7aWNvbi1mb250LW5hbWV9LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuICAgICAgIHVybCgnQHtpY29uLWZvbnQtcGF0aH1Ae2ljb24tZm9udC1uYW1lfS53b2ZmJykgZm9ybWF0KCd3b2ZmJyksXG4gICAgICAgdXJsKCdAe2ljb24tZm9udC1wYXRofUB7aWNvbi1mb250LW5hbWV9LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSxcbiAgICAgICB1cmwoJ0B7aWNvbi1mb250LXBhdGh9QHtpY29uLWZvbnQtbmFtZX0uc3ZnI0B7aWNvbi1mb250LXN2Zy1pZH0nKSBmb3JtYXQoJ3N2ZycpO1xufVxuXG4vLyBDYXRjaGFsbCBiYXNlY2xhc3Ncbi5nbHlwaGljb24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogMXB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiAnR2x5cGhpY29ucyBIYWxmbGluZ3MnO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbn1cblxuLy8gSW5kaXZpZHVhbCBpY29uc1xuLmdseXBoaWNvbi1hc3RlcmlzayAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcMDAyYVwiOyB9IH1cbi5nbHlwaGljb24tcGx1cyAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXDAwMmJcIjsgfSB9XG4uZ2x5cGhpY29uLWV1cm8sXG4uZ2x5cGhpY29uLWV1ciAgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFwyMGFjXCI7IH0gfVxuLmdseXBoaWNvbi1taW51cyAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcMjIxMlwiOyB9IH1cbi5nbHlwaGljb24tY2xvdWQgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXDI2MDFcIjsgfSB9XG4uZ2x5cGhpY29uLWVudmVsb3BlICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFwyNzA5XCI7IH0gfVxuLmdseXBoaWNvbi1wZW5jaWwgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcMjcwZlwiOyB9IH1cbi5nbHlwaGljb24tZ2xhc3MgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMDFcIjsgfSB9XG4uZ2x5cGhpY29uLW11c2ljICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDAyXCI7IH0gfVxuLmdseXBoaWNvbi1zZWFyY2ggICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAwM1wiOyB9IH1cbi5nbHlwaGljb24taGVhcnQgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMDVcIjsgfSB9XG4uZ2x5cGhpY29uLXN0YXIgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDA2XCI7IH0gfVxuLmdseXBoaWNvbi1zdGFyLWVtcHR5ICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAwN1wiOyB9IH1cbi5nbHlwaGljb24tdXNlciAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMDhcIjsgfSB9XG4uZ2x5cGhpY29uLWZpbG0gICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDA5XCI7IH0gfVxuLmdseXBoaWNvbi10aC1sYXJnZSAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAxMFwiOyB9IH1cbi5nbHlwaGljb24tdGggICAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMTFcIjsgfSB9XG4uZ2x5cGhpY29uLXRoLWxpc3QgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDEyXCI7IH0gfVxuLmdseXBoaWNvbi1vayAgICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAxM1wiOyB9IH1cbi5nbHlwaGljb24tcmVtb3ZlICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMTRcIjsgfSB9XG4uZ2x5cGhpY29uLXpvb20taW4gICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDE1XCI7IH0gfVxuLmdseXBoaWNvbi16b29tLW91dCAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAxNlwiOyB9IH1cbi5nbHlwaGljb24tb2ZmICAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMTdcIjsgfSB9XG4uZ2x5cGhpY29uLXNpZ25hbCAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDE4XCI7IH0gfVxuLmdseXBoaWNvbi1jb2cgICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAxOVwiOyB9IH1cbi5nbHlwaGljb24tdHJhc2ggICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMjBcIjsgfSB9XG4uZ2x5cGhpY29uLWhvbWUgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDIxXCI7IH0gfVxuLmdseXBoaWNvbi1maWxlICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAyMlwiOyB9IH1cbi5nbHlwaGljb24tdGltZSAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMjNcIjsgfSB9XG4uZ2x5cGhpY29uLXJvYWQgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDI0XCI7IH0gfVxuLmdseXBoaWNvbi1kb3dubG9hZC1hbHQgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAyNVwiOyB9IH1cbi5nbHlwaGljb24tZG93bmxvYWQgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMjZcIjsgfSB9XG4uZ2x5cGhpY29uLXVwbG9hZCAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDI3XCI7IH0gfVxuLmdseXBoaWNvbi1pbmJveCAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAyOFwiOyB9IH1cbi5nbHlwaGljb24tcGxheS1jaXJjbGUgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMjlcIjsgfSB9XG4uZ2x5cGhpY29uLXJlcGVhdCAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDMwXCI7IH0gfVxuLmdseXBoaWNvbi1yZWZyZXNoICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAzMVwiOyB9IH1cbi5nbHlwaGljb24tbGlzdC1hbHQgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMzJcIjsgfSB9XG4uZ2x5cGhpY29uLWxvY2sgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDMzXCI7IH0gfVxuLmdseXBoaWNvbi1mbGFnICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAzNFwiOyB9IH1cbi5nbHlwaGljb24taGVhZHBob25lcyAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMzVcIjsgfSB9XG4uZ2x5cGhpY29uLXZvbHVtZS1vZmYgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDM2XCI7IH0gfVxuLmdseXBoaWNvbi12b2x1bWUtZG93biAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAzN1wiOyB9IH1cbi5nbHlwaGljb24tdm9sdW1lLXVwICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMzhcIjsgfSB9XG4uZ2x5cGhpY29uLXFyY29kZSAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDM5XCI7IH0gfVxuLmdseXBoaWNvbi1iYXJjb2RlICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA0MFwiOyB9IH1cbi5nbHlwaGljb24tdGFnICAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNDFcIjsgfSB9XG4uZ2x5cGhpY29uLXRhZ3MgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDQyXCI7IH0gfVxuLmdseXBoaWNvbi1ib29rICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA0M1wiOyB9IH1cbi5nbHlwaGljb24tYm9va21hcmsgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNDRcIjsgfSB9XG4uZ2x5cGhpY29uLXByaW50ICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDQ1XCI7IH0gfVxuLmdseXBoaWNvbi1jYW1lcmEgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA0NlwiOyB9IH1cbi5nbHlwaGljb24tZm9udCAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNDdcIjsgfSB9XG4uZ2x5cGhpY29uLWJvbGQgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDQ4XCI7IH0gfVxuLmdseXBoaWNvbi1pdGFsaWMgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA0OVwiOyB9IH1cbi5nbHlwaGljb24tdGV4dC1oZWlnaHQgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNTBcIjsgfSB9XG4uZ2x5cGhpY29uLXRleHQtd2lkdGggICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDUxXCI7IH0gfVxuLmdseXBoaWNvbi1hbGlnbi1sZWZ0ICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA1MlwiOyB9IH1cbi5nbHlwaGljb24tYWxpZ24tY2VudGVyICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNTNcIjsgfSB9XG4uZ2x5cGhpY29uLWFsaWduLXJpZ2h0ICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDU0XCI7IH0gfVxuLmdseXBoaWNvbi1hbGlnbi1qdXN0aWZ5ICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA1NVwiOyB9IH1cbi5nbHlwaGljb24tbGlzdCAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNTZcIjsgfSB9XG4uZ2x5cGhpY29uLWluZGVudC1sZWZ0ICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDU3XCI7IH0gfVxuLmdseXBoaWNvbi1pbmRlbnQtcmlnaHQgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA1OFwiOyB9IH1cbi5nbHlwaGljb24tZmFjZXRpbWUtdmlkZW8gICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNTlcIjsgfSB9XG4uZ2x5cGhpY29uLXBpY3R1cmUgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDYwXCI7IH0gfVxuLmdseXBoaWNvbi1tYXAtbWFya2VyICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA2MlwiOyB9IH1cbi5nbHlwaGljb24tYWRqdXN0ICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNjNcIjsgfSB9XG4uZ2x5cGhpY29uLXRpbnQgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDY0XCI7IH0gfVxuLmdseXBoaWNvbi1lZGl0ICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA2NVwiOyB9IH1cbi5nbHlwaGljb24tc2hhcmUgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNjZcIjsgfSB9XG4uZ2x5cGhpY29uLWNoZWNrICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDY3XCI7IH0gfVxuLmdseXBoaWNvbi1tb3ZlICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA2OFwiOyB9IH1cbi5nbHlwaGljb24tc3RlcC1iYWNrd2FyZCAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNjlcIjsgfSB9XG4uZ2x5cGhpY29uLWZhc3QtYmFja3dhcmQgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDcwXCI7IH0gfVxuLmdseXBoaWNvbi1iYWNrd2FyZCAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA3MVwiOyB9IH1cbi5nbHlwaGljb24tcGxheSAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNzJcIjsgfSB9XG4uZ2x5cGhpY29uLXBhdXNlICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDczXCI7IH0gfVxuLmdseXBoaWNvbi1zdG9wICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA3NFwiOyB9IH1cbi5nbHlwaGljb24tZm9yd2FyZCAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNzVcIjsgfSB9XG4uZ2x5cGhpY29uLWZhc3QtZm9yd2FyZCAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDc2XCI7IH0gfVxuLmdseXBoaWNvbi1zdGVwLWZvcndhcmQgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA3N1wiOyB9IH1cbi5nbHlwaGljb24tZWplY3QgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNzhcIjsgfSB9XG4uZ2x5cGhpY29uLWNoZXZyb24tbGVmdCAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDc5XCI7IH0gfVxuLmdseXBoaWNvbi1jaGV2cm9uLXJpZ2h0ICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA4MFwiOyB9IH1cbi5nbHlwaGljb24tcGx1cy1zaWduICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwODFcIjsgfSB9XG4uZ2x5cGhpY29uLW1pbnVzLXNpZ24gICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDgyXCI7IH0gfVxuLmdseXBoaWNvbi1yZW1vdmUtc2lnbiAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA4M1wiOyB9IH1cbi5nbHlwaGljb24tb2stc2lnbiAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwODRcIjsgfSB9XG4uZ2x5cGhpY29uLXF1ZXN0aW9uLXNpZ24gICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDg1XCI7IH0gfVxuLmdseXBoaWNvbi1pbmZvLXNpZ24gICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA4NlwiOyB9IH1cbi5nbHlwaGljb24tc2NyZWVuc2hvdCAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwODdcIjsgfSB9XG4uZ2x5cGhpY29uLXJlbW92ZS1jaXJjbGUgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDg4XCI7IH0gfVxuLmdseXBoaWNvbi1vay1jaXJjbGUgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA4OVwiOyB9IH1cbi5nbHlwaGljb24tYmFuLWNpcmNsZSAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwOTBcIjsgfSB9XG4uZ2x5cGhpY29uLWFycm93LWxlZnQgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDkxXCI7IH0gfVxuLmdseXBoaWNvbi1hcnJvdy1yaWdodCAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA5MlwiOyB9IH1cbi5nbHlwaGljb24tYXJyb3ctdXAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwOTNcIjsgfSB9XG4uZ2x5cGhpY29uLWFycm93LWRvd24gICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDk0XCI7IH0gfVxuLmdseXBoaWNvbi1zaGFyZS1hbHQgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA5NVwiOyB9IH1cbi5nbHlwaGljb24tcmVzaXplLWZ1bGwgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwOTZcIjsgfSB9XG4uZ2x5cGhpY29uLXJlc2l6ZS1zbWFsbCAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDk3XCI7IH0gfVxuLmdseXBoaWNvbi1leGNsYW1hdGlvbi1zaWduICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEwMVwiOyB9IH1cbi5nbHlwaGljb24tZ2lmdCAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMDJcIjsgfSB9XG4uZ2x5cGhpY29uLWxlYWYgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTAzXCI7IH0gfVxuLmdseXBoaWNvbi1maXJlICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEwNFwiOyB9IH1cbi5nbHlwaGljb24tZXllLW9wZW4gICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMDVcIjsgfSB9XG4uZ2x5cGhpY29uLWV5ZS1jbG9zZSAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTA2XCI7IH0gfVxuLmdseXBoaWNvbi13YXJuaW5nLXNpZ24gICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEwN1wiOyB9IH1cbi5nbHlwaGljb24tcGxhbmUgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMDhcIjsgfSB9XG4uZ2x5cGhpY29uLWNhbGVuZGFyICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTA5XCI7IH0gfVxuLmdseXBoaWNvbi1yYW5kb20gICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTExMFwiOyB9IH1cbi5nbHlwaGljb24tY29tbWVudCAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMTFcIjsgfSB9XG4uZ2x5cGhpY29uLW1hZ25ldCAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTEyXCI7IH0gfVxuLmdseXBoaWNvbi1jaGV2cm9uLXVwICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTExM1wiOyB9IH1cbi5nbHlwaGljb24tY2hldnJvbi1kb3duICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMTRcIjsgfSB9XG4uZ2x5cGhpY29uLXJldHdlZXQgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTE1XCI7IH0gfVxuLmdseXBoaWNvbi1zaG9wcGluZy1jYXJ0ICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTExNlwiOyB9IH1cbi5nbHlwaGljb24tZm9sZGVyLWNsb3NlICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMTdcIjsgfSB9XG4uZ2x5cGhpY29uLWZvbGRlci1vcGVuICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTE4XCI7IH0gfVxuLmdseXBoaWNvbi1yZXNpemUtdmVydGljYWwgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTExOVwiOyB9IH1cbi5nbHlwaGljb24tcmVzaXplLWhvcml6b250YWwgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMjBcIjsgfSB9XG4uZ2x5cGhpY29uLWhkZCAgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTIxXCI7IH0gfVxuLmdseXBoaWNvbi1idWxsaG9ybiAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEyMlwiOyB9IH1cbi5nbHlwaGljb24tYmVsbCAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMjNcIjsgfSB9XG4uZ2x5cGhpY29uLWNlcnRpZmljYXRlICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTI0XCI7IH0gfVxuLmdseXBoaWNvbi10aHVtYnMtdXAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEyNVwiOyB9IH1cbi5nbHlwaGljb24tdGh1bWJzLWRvd24gICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMjZcIjsgfSB9XG4uZ2x5cGhpY29uLWhhbmQtcmlnaHQgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTI3XCI7IH0gfVxuLmdseXBoaWNvbi1oYW5kLWxlZnQgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEyOFwiOyB9IH1cbi5nbHlwaGljb24taGFuZC11cCAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMjlcIjsgfSB9XG4uZ2x5cGhpY29uLWhhbmQtZG93biAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTMwXCI7IH0gfVxuLmdseXBoaWNvbi1jaXJjbGUtYXJyb3ctcmlnaHQgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEzMVwiOyB9IH1cbi5nbHlwaGljb24tY2lyY2xlLWFycm93LWxlZnQgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMzJcIjsgfSB9XG4uZ2x5cGhpY29uLWNpcmNsZS1hcnJvdy11cCAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTMzXCI7IH0gfVxuLmdseXBoaWNvbi1jaXJjbGUtYXJyb3ctZG93biAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEzNFwiOyB9IH1cbi5nbHlwaGljb24tZ2xvYmUgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMzVcIjsgfSB9XG4uZ2x5cGhpY29uLXdyZW5jaCAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTM2XCI7IH0gfVxuLmdseXBoaWNvbi10YXNrcyAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEzN1wiOyB9IH1cbi5nbHlwaGljb24tZmlsdGVyICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMzhcIjsgfSB9XG4uZ2x5cGhpY29uLWJyaWVmY2FzZSAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTM5XCI7IH0gfVxuLmdseXBoaWNvbi1mdWxsc2NyZWVuICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE0MFwiOyB9IH1cbi5nbHlwaGljb24tZGFzaGJvYXJkICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNDFcIjsgfSB9XG4uZ2x5cGhpY29uLXBhcGVyY2xpcCAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTQyXCI7IH0gfVxuLmdseXBoaWNvbi1oZWFydC1lbXB0eSAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE0M1wiOyB9IH1cbi5nbHlwaGljb24tbGluayAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNDRcIjsgfSB9XG4uZ2x5cGhpY29uLXBob25lICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTQ1XCI7IH0gfVxuLmdseXBoaWNvbi1wdXNocGluICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE0NlwiOyB9IH1cbi5nbHlwaGljb24tdXNkICAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNDhcIjsgfSB9XG4uZ2x5cGhpY29uLWdicCAgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTQ5XCI7IH0gfVxuLmdseXBoaWNvbi1zb3J0ICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE1MFwiOyB9IH1cbi5nbHlwaGljb24tc29ydC1ieS1hbHBoYWJldCAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNTFcIjsgfSB9XG4uZ2x5cGhpY29uLXNvcnQtYnktYWxwaGFiZXQtYWx0ICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTUyXCI7IH0gfVxuLmdseXBoaWNvbi1zb3J0LWJ5LW9yZGVyICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE1M1wiOyB9IH1cbi5nbHlwaGljb24tc29ydC1ieS1vcmRlci1hbHQgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNTRcIjsgfSB9XG4uZ2x5cGhpY29uLXNvcnQtYnktYXR0cmlidXRlcyAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTU1XCI7IH0gfVxuLmdseXBoaWNvbi1zb3J0LWJ5LWF0dHJpYnV0ZXMtYWx0IHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE1NlwiOyB9IH1cbi5nbHlwaGljb24tdW5jaGVja2VkICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNTdcIjsgfSB9XG4uZ2x5cGhpY29uLWV4cGFuZCAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTU4XCI7IH0gfVxuLmdseXBoaWNvbi1jb2xsYXBzZS1kb3duICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE1OVwiOyB9IH1cbi5nbHlwaGljb24tY29sbGFwc2UtdXAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNjBcIjsgfSB9XG4uZ2x5cGhpY29uLWxvZy1pbiAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTYxXCI7IH0gfVxuLmdseXBoaWNvbi1mbGFzaCAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE2MlwiOyB9IH1cbi5nbHlwaGljb24tbG9nLW91dCAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNjNcIjsgfSB9XG4uZ2x5cGhpY29uLW5ldy13aW5kb3cgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTY0XCI7IH0gfVxuLmdseXBoaWNvbi1yZWNvcmQgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE2NVwiOyB9IH1cbi5nbHlwaGljb24tc2F2ZSAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNjZcIjsgfSB9XG4uZ2x5cGhpY29uLW9wZW4gICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTY3XCI7IH0gfVxuLmdseXBoaWNvbi1zYXZlZCAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE2OFwiOyB9IH1cbi5nbHlwaGljb24taW1wb3J0ICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNjlcIjsgfSB9XG4uZ2x5cGhpY29uLWV4cG9ydCAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTcwXCI7IH0gfVxuLmdseXBoaWNvbi1zZW5kICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE3MVwiOyB9IH1cbi5nbHlwaGljb24tZmxvcHB5LWRpc2sgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNzJcIjsgfSB9XG4uZ2x5cGhpY29uLWZsb3BweS1zYXZlZCAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTczXCI7IH0gfVxuLmdseXBoaWNvbi1mbG9wcHktcmVtb3ZlICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE3NFwiOyB9IH1cbi5nbHlwaGljb24tZmxvcHB5LXNhdmUgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNzVcIjsgfSB9XG4uZ2x5cGhpY29uLWZsb3BweS1vcGVuICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTc2XCI7IH0gfVxuLmdseXBoaWNvbi1jcmVkaXQtY2FyZCAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE3N1wiOyB9IH1cbi5nbHlwaGljb24tdHJhbnNmZXIgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNzhcIjsgfSB9XG4uZ2x5cGhpY29uLWN1dGxlcnkgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTc5XCI7IH0gfVxuLmdseXBoaWNvbi1oZWFkZXIgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE4MFwiOyB9IH1cbi5nbHlwaGljb24tY29tcHJlc3NlZCAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxODFcIjsgfSB9XG4uZ2x5cGhpY29uLWVhcnBob25lICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTgyXCI7IH0gfVxuLmdseXBoaWNvbi1waG9uZS1hbHQgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE4M1wiOyB9IH1cbi5nbHlwaGljb24tdG93ZXIgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxODRcIjsgfSB9XG4uZ2x5cGhpY29uLXN0YXRzICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTg1XCI7IH0gfVxuLmdseXBoaWNvbi1zZC12aWRlbyAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE4NlwiOyB9IH1cbi5nbHlwaGljb24taGQtdmlkZW8gICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxODdcIjsgfSB9XG4uZ2x5cGhpY29uLXN1YnRpdGxlcyAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTg4XCI7IH0gfVxuLmdseXBoaWNvbi1zb3VuZC1zdGVyZW8gICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE4OVwiOyB9IH1cbi5nbHlwaGljb24tc291bmQtZG9sYnkgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxOTBcIjsgfSB9XG4uZ2x5cGhpY29uLXNvdW5kLTUtMSAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTkxXCI7IH0gfVxuLmdseXBoaWNvbi1zb3VuZC02LTEgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE5MlwiOyB9IH1cbi5nbHlwaGljb24tc291bmQtNy0xICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxOTNcIjsgfSB9XG4uZ2x5cGhpY29uLWNvcHlyaWdodC1tYXJrICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTk0XCI7IH0gfVxuLmdseXBoaWNvbi1yZWdpc3RyYXRpb24tbWFyayAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE5NVwiOyB9IH1cbi5nbHlwaGljb24tY2xvdWQtZG93bmxvYWQgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxOTdcIjsgfSB9XG4uZ2x5cGhpY29uLWNsb3VkLXVwbG9hZCAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTk4XCI7IH0gfVxuLmdseXBoaWNvbi10cmVlLWNvbmlmZXIgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE5OVwiOyB9IH1cbi5nbHlwaGljb24tdHJlZS1kZWNpZHVvdXMgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMDBcIjsgfSB9XG4uZ2x5cGhpY29uLWNkICAgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjAxXCI7IH0gfVxuLmdseXBoaWNvbi1zYXZlLWZpbGUgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIwMlwiOyB9IH1cbi5nbHlwaGljb24tb3Blbi1maWxlICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMDNcIjsgfSB9XG4uZ2x5cGhpY29uLWxldmVsLXVwICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjA0XCI7IH0gfVxuLmdseXBoaWNvbi1jb3B5ICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIwNVwiOyB9IH1cbi5nbHlwaGljb24tcGFzdGUgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMDZcIjsgfSB9XG4vLyBUaGUgZm9sbG93aW5nIDIgR2x5cGhpY29ucyBhcmUgb21pdHRlZCBmb3IgdGhlIHRpbWUgYmVpbmcgYmVjYXVzZVxuLy8gdGhleSBjdXJyZW50bHkgdXNlIFVuaWNvZGUgY29kZXBvaW50cyB0aGF0IGFyZSBvdXRzaWRlIHRoZVxuLy8gQmFzaWMgTXVsdGlsaW5ndWFsIFBsYW5lIChCTVApLiBPbGRlciBidWdneSB2ZXJzaW9ucyBvZiBXZWJLaXQgY2FuJ3QgaGFuZGxlXG4vLyBub24tQk1QIGNvZGVwb2ludHMgaW4gQ1NTIHN0cmluZyBlc2NhcGVzLCBhbmQgdGh1cyBjYW4ndCBkaXNwbGF5IHRoZXNlIHR3byBpY29ucy5cbi8vIE5vdGFibHksIHRoZSBidWcgYWZmZWN0cyBzb21lIG9sZGVyIHZlcnNpb25zIG9mIHRoZSBBbmRyb2lkIEJyb3dzZXIuXG4vLyBNb3JlIGluZm86IGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9pc3N1ZXMvMTAxMDZcbi8vIC5nbHlwaGljb24tZG9vciAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXDFmNmFhXCI7IH0gfVxuLy8gLmdseXBoaWNvbi1rZXkgICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcMWY1MTFcIjsgfSB9XG4uZ2x5cGhpY29uLWFsZXJ0ICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjA5XCI7IH0gfVxuLmdseXBoaWNvbi1lcXVhbGl6ZXIgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIxMFwiOyB9IH1cbi5nbHlwaGljb24ta2luZyAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMTFcIjsgfSB9XG4uZ2x5cGhpY29uLXF1ZWVuICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjEyXCI7IH0gfVxuLmdseXBoaWNvbi1wYXduICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIxM1wiOyB9IH1cbi5nbHlwaGljb24tYmlzaG9wICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMTRcIjsgfSB9XG4uZ2x5cGhpY29uLWtuaWdodCAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjE1XCI7IH0gfVxuLmdseXBoaWNvbi1iYWJ5LWZvcm11bGEgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIxNlwiOyB9IH1cbi5nbHlwaGljb24tdGVudCAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXDI2ZmFcIjsgfSB9XG4uZ2x5cGhpY29uLWJsYWNrYm9hcmQgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjE4XCI7IH0gfVxuLmdseXBoaWNvbi1iZWQgICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIxOVwiOyB9IH1cbi5nbHlwaGljb24tYXBwbGUgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGY4ZmZcIjsgfSB9XG4uZ2x5cGhpY29uLWVyYXNlICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjIxXCI7IH0gfVxuLmdseXBoaWNvbi1ob3VyZ2xhc3MgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcMjMxYlwiOyB9IH1cbi5nbHlwaGljb24tbGFtcCAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMjNcIjsgfSB9XG4uZ2x5cGhpY29uLWR1cGxpY2F0ZSAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjI0XCI7IH0gfVxuLmdseXBoaWNvbi1waWdneS1iYW5rICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIyNVwiOyB9IH1cbi5nbHlwaGljb24tc2Npc3NvcnMgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMjZcIjsgfSB9XG4uZ2x5cGhpY29uLWJpdGNvaW4gICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjI3XCI7IH0gfVxuLmdseXBoaWNvbi1idGMgICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIyN1wiOyB9IH1cbi5nbHlwaGljb24teGJ0ICAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMjdcIjsgfSB9XG4uZ2x5cGhpY29uLXllbiAgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFwwMGE1XCI7IH0gfVxuLmdseXBoaWNvbi1qcHkgICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcMDBhNVwiOyB9IH1cbi5nbHlwaGljb24tcnVibGUgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXDIwYmRcIjsgfSB9XG4uZ2x5cGhpY29uLXJ1YiAgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFwyMGJkXCI7IH0gfVxuLmdseXBoaWNvbi1zY2FsZSAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIzMFwiOyB9IH1cbi5nbHlwaGljb24taWNlLWxvbGx5ICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMzFcIjsgfSB9XG4uZ2x5cGhpY29uLWljZS1sb2xseS10YXN0ZWQgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjMyXCI7IH0gfVxuLmdseXBoaWNvbi1lZHVjYXRpb24gICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIzM1wiOyB9IH1cbi5nbHlwaGljb24tb3B0aW9uLWhvcml6b250YWwgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMzRcIjsgfSB9XG4uZ2x5cGhpY29uLW9wdGlvbi12ZXJ0aWNhbCAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjM1XCI7IH0gfVxuLmdseXBoaWNvbi1tZW51LWhhbWJ1cmdlciAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIzNlwiOyB9IH1cbi5nbHlwaGljb24tbW9kYWwtd2luZG93ICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMzdcIjsgfSB9XG4uZ2x5cGhpY29uLW9pbCAgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjM4XCI7IH0gfVxuLmdseXBoaWNvbi1ncmFpbiAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIzOVwiOyB9IH1cbi5nbHlwaGljb24tc3VuZ2xhc3NlcyAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyNDBcIjsgfSB9XG4uZ2x5cGhpY29uLXRleHQtc2l6ZSAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjQxXCI7IH0gfVxuLmdseXBoaWNvbi10ZXh0LWNvbG9yICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTI0MlwiOyB9IH1cbi5nbHlwaGljb24tdGV4dC1iYWNrZ3JvdW5kICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyNDNcIjsgfSB9XG4uZ2x5cGhpY29uLW9iamVjdC1hbGlnbi10b3AgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjQ0XCI7IH0gfVxuLmdseXBoaWNvbi1vYmplY3QtYWxpZ24tYm90dG9tICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTI0NVwiOyB9IH1cbi5nbHlwaGljb24tb2JqZWN0LWFsaWduLWhvcml6b250YWx7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyNDZcIjsgfSB9XG4uZ2x5cGhpY29uLW9iamVjdC1hbGlnbi1sZWZ0ICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjQ3XCI7IH0gfVxuLmdseXBoaWNvbi1vYmplY3QtYWxpZ24tdmVydGljYWwgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTI0OFwiOyB9IH1cbi5nbHlwaGljb24tb2JqZWN0LWFsaWduLXJpZ2h0ICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyNDlcIjsgfSB9XG4uZ2x5cGhpY29uLXRyaWFuZ2xlLXJpZ2h0ICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjUwXCI7IH0gfVxuLmdseXBoaWNvbi10cmlhbmdsZS1sZWZ0ICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTI1MVwiOyB9IH1cbi5nbHlwaGljb24tdHJpYW5nbGUtYm90dG9tICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyNTJcIjsgfSB9XG4uZ2x5cGhpY29uLXRyaWFuZ2xlLXRvcCAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjUzXCI7IH0gfVxuLmdseXBoaWNvbi1jb25zb2xlICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTI1NFwiOyB9IH1cbi5nbHlwaGljb24tc3VwZXJzY3JpcHQgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyNTVcIjsgfSB9XG4uZ2x5cGhpY29uLXN1YnNjcmlwdCAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjU2XCI7IH0gfVxuLmdseXBoaWNvbi1tZW51LWxlZnQgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTI1N1wiOyB9IH1cbi5nbHlwaGljb24tbWVudS1yaWdodCAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyNThcIjsgfSB9XG4uZ2x5cGhpY29uLW1lbnUtZG93biAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjU5XCI7IH0gfVxuLmdseXBoaWNvbi1tZW51LXVwICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTI2MFwiOyB9IH1cbiIsIi8vXG4vLyBTY2FmZm9sZGluZ1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4vLyBSZXNldCB0aGUgYm94LXNpemluZ1xuLy9cbi8vIEhlYWRzIHVwISBUaGlzIHJlc2V0IG1heSBjYXVzZSBjb25mbGljdHMgd2l0aCBzb21lIHRoaXJkLXBhcnR5IHdpZGdldHMuXG4vLyBGb3IgcmVjb21tZW5kYXRpb25zIG9uIHJlc29sdmluZyBzdWNoIGNvbmZsaWN0cywgc2VlXG4vLyBodHRwOi8vZ2V0Ym9vdHN0cmFwLmNvbS9nZXR0aW5nLXN0YXJ0ZWQvI3RoaXJkLWJveC1zaXppbmdcbioge1xuICAuYm94LXNpemluZyhib3JkZXItYm94KTtcbn1cbio6YmVmb3JlLFxuKjphZnRlciB7XG4gIC5ib3gtc2l6aW5nKGJvcmRlci1ib3gpO1xufVxuXG5cbi8vIEJvZHkgcmVzZXRcblxuaHRtbCB7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsMCwwLDApO1xufVxuXG5ib2R5IHtcbiAgZm9udC1mYW1pbHk6IEBmb250LWZhbWlseS1iYXNlO1xuICBmb250LXNpemU6IEBmb250LXNpemUtYmFzZTtcbiAgbGluZS1oZWlnaHQ6IEBsaW5lLWhlaWdodC1iYXNlO1xuICBjb2xvcjogQHRleHQtY29sb3I7XG4gIGJhY2tncm91bmQtY29sb3I6IEBib2R5LWJnO1xufVxuXG4vLyBSZXNldCBmb250cyBmb3IgcmVsZXZhbnQgZWxlbWVudHNcbmlucHV0LFxuYnV0dG9uLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbn1cblxuXG4vLyBMaW5rc1xuXG5hIHtcbiAgY29sb3I6IEBsaW5rLWNvbG9yO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgY29sb3I6IEBsaW5rLWhvdmVyLWNvbG9yO1xuICAgIHRleHQtZGVjb3JhdGlvbjogQGxpbmstaG92ZXItZGVjb3JhdGlvbjtcbiAgfVxuXG4gICY6Zm9jdXMge1xuICAgIC50YWItZm9jdXMoKTtcbiAgfVxufVxuXG5cbi8vIEZpZ3VyZXNcbi8vXG4vLyBXZSByZXNldCB0aGlzIGhlcmUgYmVjYXVzZSBwcmV2aW91c2x5IE5vcm1hbGl6ZSBoYWQgbm8gYGZpZ3VyZWAgbWFyZ2lucy4gVGhpc1xuLy8gZW5zdXJlcyB3ZSBkb24ndCBicmVhayBhbnlvbmUncyB1c2Ugb2YgdGhlIGVsZW1lbnQuXG5cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMDtcbn1cblxuXG4vLyBJbWFnZXNcblxuaW1nIHtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLy8gUmVzcG9uc2l2ZSBpbWFnZXMgKGVuc3VyZSBpbWFnZXMgZG9uJ3Qgc2NhbGUgYmV5b25kIHRoZWlyIHBhcmVudHMpXG4uaW1nLXJlc3BvbnNpdmUge1xuICAuaW1nLXJlc3BvbnNpdmUoKTtcbn1cblxuLy8gUm91bmRlZCBjb3JuZXJzXG4uaW1nLXJvdW5kZWQge1xuICBib3JkZXItcmFkaXVzOiBAYm9yZGVyLXJhZGl1cy1sYXJnZTtcbn1cblxuLy8gSW1hZ2UgdGh1bWJuYWlsc1xuLy9cbi8vIEhlYWRzIHVwISBUaGlzIGlzIG1peGluLWVkIGludG8gdGh1bWJuYWlscy5sZXNzIGZvciBgLnRodW1ibmFpbGAuXG4uaW1nLXRodW1ibmFpbCB7XG4gIHBhZGRpbmc6IEB0aHVtYm5haWwtcGFkZGluZztcbiAgbGluZS1oZWlnaHQ6IEBsaW5lLWhlaWdodC1iYXNlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAdGh1bWJuYWlsLWJnO1xuICBib3JkZXI6IDFweCBzb2xpZCBAdGh1bWJuYWlsLWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogQHRodW1ibmFpbC1ib3JkZXItcmFkaXVzO1xuICAudHJhbnNpdGlvbihhbGwgLjJzIGVhc2UtaW4tb3V0KTtcblxuICAvLyBLZWVwIHRoZW0gYXQgbW9zdCAxMDAlIHdpZGVcbiAgLmltZy1yZXNwb25zaXZlKGlubGluZS1ibG9jayk7XG59XG5cbi8vIFBlcmZlY3QgY2lyY2xlXG4uaW1nLWNpcmNsZSB7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTsgLy8gc2V0IHJhZGl1cyBpbiBwZXJjZW50c1xufVxuXG5cbi8vIEhvcml6b250YWwgcnVsZXNcblxuaHIge1xuICBtYXJnaW4tdG9wOiAgICBAbGluZS1oZWlnaHQtY29tcHV0ZWQ7XG4gIG1hcmdpbi1ib3R0b206IEBsaW5lLWhlaWdodC1jb21wdXRlZDtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgQGhyLWJvcmRlcjtcbn1cblxuXG4vLyBPbmx5IGRpc3BsYXkgY29udGVudCB0byBzY3JlZW4gcmVhZGVyc1xuLy9cbi8vIFNlZTogaHR0cDovL2ExMXlwcm9qZWN0LmNvbS9wb3N0cy9ob3ctdG8taGlkZS1jb250ZW50XG5cbi5zci1vbmx5IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMXB4O1xuICBoZWlnaHQ6IDFweDtcbiAgbWFyZ2luOiAtMXB4O1xuICBwYWRkaW5nOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGlwOiByZWN0KDAsMCwwLDApO1xuICBib3JkZXI6IDA7XG59XG5cbi8vIFVzZSBpbiBjb25qdW5jdGlvbiB3aXRoIC5zci1vbmx5IHRvIG9ubHkgZGlzcGxheSBjb250ZW50IHdoZW4gaXQncyBmb2N1c2VkLlxuLy8gVXNlZnVsIGZvciBcIlNraXAgdG8gbWFpbiBjb250ZW50XCIgbGlua3M7IHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDEzL05PVEUtV0NBRzIwLVRFQ0hTLTIwMTMwOTA1L0cxXG4vLyBDcmVkaXQ6IEhUTUw1IEJvaWxlcnBsYXRlXG5cbi5zci1vbmx5LWZvY3VzYWJsZSB7XG4gICY6YWN0aXZlLFxuICAmOmZvY3VzIHtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtYXJnaW46IDA7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgY2xpcDogYXV0bztcbiAgfVxufVxuXG5cbi8vIGlPUyBcImNsaWNrYWJsZSBlbGVtZW50c1wiIGZpeCBmb3Igcm9sZT1cImJ1dHRvblwiXG4vL1xuLy8gRml4ZXMgXCJjbGlja2FiaWxpdHlcIiBpc3N1ZSAoYW5kIG1vcmUgZ2VuZXJhbGx5LCB0aGUgZmlyaW5nIG9mIGV2ZW50cyBzdWNoIGFzIGZvY3VzIGFzIHdlbGwpXG4vLyBmb3IgdHJhZGl0aW9uYWxseSBub24tZm9jdXNhYmxlIGVsZW1lbnRzIHdpdGggcm9sZT1cImJ1dHRvblwiXG4vLyBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvRXZlbnRzL2NsaWNrI1NhZmFyaV9Nb2JpbGVcblxuW3JvbGU9XCJidXR0b25cIl0ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4iLCIvLyBWZW5kb3IgUHJlZml4ZXNcbi8vXG4vLyBBbGwgdmVuZG9yIG1peGlucyBhcmUgZGVwcmVjYXRlZCBhcyBvZiB2My4yLjAgZHVlIHRvIHRoZSBpbnRyb2R1Y3Rpb24gb2Zcbi8vIEF1dG9wcmVmaXhlciBpbiBvdXIgR3J1bnRmaWxlLiBUaGV5IGhhdmUgYmVlbiByZW1vdmVkIGluIHY0LlxuXG4vLyAtIEFuaW1hdGlvbnNcbi8vIC0gQmFja2ZhY2UgdmlzaWJpbGl0eVxuLy8gLSBCb3ggc2hhZG93XG4vLyAtIEJveCBzaXppbmdcbi8vIC0gQ29udGVudCBjb2x1bW5zXG4vLyAtIEh5cGhlbnNcbi8vIC0gUGxhY2Vob2xkZXIgdGV4dFxuLy8gLSBUcmFuc2Zvcm1hdGlvbnNcbi8vIC0gVHJhbnNpdGlvbnNcbi8vIC0gVXNlciBTZWxlY3RcblxuXG4vLyBBbmltYXRpb25zXG4uYW5pbWF0aW9uKEBhbmltYXRpb24pIHtcbiAgLXdlYmtpdC1hbmltYXRpb246IEBhbmltYXRpb247XG4gICAgICAgLW8tYW5pbWF0aW9uOiBAYW5pbWF0aW9uO1xuICAgICAgICAgIGFuaW1hdGlvbjogQGFuaW1hdGlvbjtcbn1cbi5hbmltYXRpb24tbmFtZShAbmFtZSkge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBAbmFtZTtcbiAgICAgICAgICBhbmltYXRpb24tbmFtZTogQG5hbWU7XG59XG4uYW5pbWF0aW9uLWR1cmF0aW9uKEBkdXJhdGlvbikge1xuICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogQGR1cmF0aW9uO1xuICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogQGR1cmF0aW9uO1xufVxuLmFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24oQHRpbWluZy1mdW5jdGlvbikge1xuICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IEB0aW1pbmctZnVuY3Rpb247XG4gICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogQHRpbWluZy1mdW5jdGlvbjtcbn1cbi5hbmltYXRpb24tZGVsYXkoQGRlbGF5KSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiBAZGVsYXk7XG4gICAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiBAZGVsYXk7XG59XG4uYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudChAaXRlcmF0aW9uLWNvdW50KSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogQGl0ZXJhdGlvbi1jb3VudDtcbiAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBAaXRlcmF0aW9uLWNvdW50O1xufVxuLmFuaW1hdGlvbi1kaXJlY3Rpb24oQGRpcmVjdGlvbikge1xuICAtd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb246IEBkaXJlY3Rpb247XG4gICAgICAgICAgYW5pbWF0aW9uLWRpcmVjdGlvbjogQGRpcmVjdGlvbjtcbn1cbi5hbmltYXRpb24tZmlsbC1tb2RlKEBmaWxsLW1vZGUpIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBAZmlsbC1tb2RlO1xuICAgICAgICAgIGFuaW1hdGlvbi1maWxsLW1vZGU6IEBmaWxsLW1vZGU7XG59XG5cbi8vIEJhY2tmYWNlIHZpc2liaWxpdHlcbi8vIFByZXZlbnQgYnJvd3NlcnMgZnJvbSBmbGlja2VyaW5nIHdoZW4gdXNpbmcgQ1NTIDNEIHRyYW5zZm9ybXMuXG4vLyBEZWZhdWx0IHZhbHVlIGlzIGB2aXNpYmxlYCwgYnV0IGNhbiBiZSBjaGFuZ2VkIHRvIGBoaWRkZW5gXG5cbi5iYWNrZmFjZS12aXNpYmlsaXR5KEB2aXNpYmlsaXR5KSB7XG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogQHZpc2liaWxpdHk7XG4gICAgIC1tb3otYmFja2ZhY2UtdmlzaWJpbGl0eTogQHZpc2liaWxpdHk7XG4gICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogQHZpc2liaWxpdHk7XG59XG5cbi8vIERyb3Agc2hhZG93c1xuLy9cbi8vIE5vdGU6IERlcHJlY2F0ZWQgYC5ib3gtc2hhZG93KClgIGFzIG9mIHYzLjEuMCBzaW5jZSBhbGwgb2YgQm9vdHN0cmFwJ3Ncbi8vIHN1cHBvcnRlZCBicm93c2VycyB0aGF0IGhhdmUgYm94IHNoYWRvdyBjYXBhYmlsaXRpZXMgbm93IHN1cHBvcnQgaXQuXG5cbi5ib3gtc2hhZG93KEBzaGFkb3cpIHtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBAc2hhZG93OyAvLyBpT1MgPDQuMyAmIEFuZHJvaWQgPDQuMVxuICAgICAgICAgIGJveC1zaGFkb3c6IEBzaGFkb3c7XG59XG5cbi8vIEJveCBzaXppbmdcbi5ib3gtc2l6aW5nKEBib3htb2RlbCkge1xuICAtd2Via2l0LWJveC1zaXppbmc6IEBib3htb2RlbDtcbiAgICAgLW1vei1ib3gtc2l6aW5nOiBAYm94bW9kZWw7XG4gICAgICAgICAgYm94LXNpemluZzogQGJveG1vZGVsO1xufVxuXG4vLyBDU1MzIENvbnRlbnQgQ29sdW1uc1xuLmNvbnRlbnQtY29sdW1ucyhAY29sdW1uLWNvdW50OyBAY29sdW1uLWdhcDogQGdyaWQtZ3V0dGVyLXdpZHRoKSB7XG4gIC13ZWJraXQtY29sdW1uLWNvdW50OiBAY29sdW1uLWNvdW50O1xuICAgICAtbW96LWNvbHVtbi1jb3VudDogQGNvbHVtbi1jb3VudDtcbiAgICAgICAgICBjb2x1bW4tY291bnQ6IEBjb2x1bW4tY291bnQ7XG4gIC13ZWJraXQtY29sdW1uLWdhcDogQGNvbHVtbi1nYXA7XG4gICAgIC1tb3otY29sdW1uLWdhcDogQGNvbHVtbi1nYXA7XG4gICAgICAgICAgY29sdW1uLWdhcDogQGNvbHVtbi1nYXA7XG59XG5cbi8vIE9wdGlvbmFsIGh5cGhlbmF0aW9uXG4uaHlwaGVucyhAbW9kZTogYXV0bykge1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gIC13ZWJraXQtaHlwaGVuczogQG1vZGU7XG4gICAgIC1tb3otaHlwaGVuczogQG1vZGU7XG4gICAgICAtbXMtaHlwaGVuczogQG1vZGU7IC8vIElFMTArXG4gICAgICAgLW8taHlwaGVuczogQG1vZGU7XG4gICAgICAgICAgaHlwaGVuczogQG1vZGU7XG59XG5cbi8vIFBsYWNlaG9sZGVyIHRleHRcbi5wbGFjZWhvbGRlcihAY29sb3I6IEBpbnB1dC1jb2xvci1wbGFjZWhvbGRlcikge1xuICAvLyBGaXJlZm94XG4gICY6Oi1tb3otcGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiBAY29sb3I7XG4gICAgb3BhY2l0eTogMTsgLy8gT3ZlcnJpZGUgRmlyZWZveCdzIHVudXN1YWwgZGVmYXVsdCBvcGFjaXR5OyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL3B1bGwvMTE1MjZcbiAgfVxuICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7IGNvbG9yOiBAY29sb3I7IH0gLy8gSW50ZXJuZXQgRXhwbG9yZXIgMTArXG4gICY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIgIHsgY29sb3I6IEBjb2xvcjsgfSAvLyBTYWZhcmkgYW5kIENocm9tZVxufVxuXG4vLyBUcmFuc2Zvcm1hdGlvbnNcbi5zY2FsZShAcmF0aW8pIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKEByYXRpbyk7XG4gICAgICAtbXMtdHJhbnNmb3JtOiBzY2FsZShAcmF0aW8pOyAvLyBJRTkgb25seVxuICAgICAgIC1vLXRyYW5zZm9ybTogc2NhbGUoQHJhdGlvKTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKEByYXRpbyk7XG59XG4uc2NhbGUoQHJhdGlvWDsgQHJhdGlvWSkge1xuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoQHJhdGlvWCwgQHJhdGlvWSk7XG4gICAgICAtbXMtdHJhbnNmb3JtOiBzY2FsZShAcmF0aW9YLCBAcmF0aW9ZKTsgLy8gSUU5IG9ubHlcbiAgICAgICAtby10cmFuc2Zvcm06IHNjYWxlKEByYXRpb1gsIEByYXRpb1kpO1xuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoQHJhdGlvWCwgQHJhdGlvWSk7XG59XG4uc2NhbGVYKEByYXRpbykge1xuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGVYKEByYXRpbyk7XG4gICAgICAtbXMtdHJhbnNmb3JtOiBzY2FsZVgoQHJhdGlvKTsgLy8gSUU5IG9ubHlcbiAgICAgICAtby10cmFuc2Zvcm06IHNjYWxlWChAcmF0aW8pO1xuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKEByYXRpbyk7XG59XG4uc2NhbGVZKEByYXRpbykge1xuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGVZKEByYXRpbyk7XG4gICAgICAtbXMtdHJhbnNmb3JtOiBzY2FsZVkoQHJhdGlvKTsgLy8gSUU5IG9ubHlcbiAgICAgICAtby10cmFuc2Zvcm06IHNjYWxlWShAcmF0aW8pO1xuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVZKEByYXRpbyk7XG59XG4uc2tldyhAeDsgQHkpIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNrZXdYKEB4KSBza2V3WShAeSk7XG4gICAgICAtbXMtdHJhbnNmb3JtOiBza2V3WChAeCkgc2tld1koQHkpOyAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2lzc3Vlcy80ODg1OyBJRTkrXG4gICAgICAgLW8tdHJhbnNmb3JtOiBza2V3WChAeCkgc2tld1koQHkpO1xuICAgICAgICAgIHRyYW5zZm9ybTogc2tld1goQHgpIHNrZXdZKEB5KTtcbn1cbi50cmFuc2xhdGUoQHg7IEB5KSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoQHgsIEB5KTtcbiAgICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZShAeCwgQHkpOyAvLyBJRTkgb25seVxuICAgICAgIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlKEB4LCBAeSk7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoQHgsIEB5KTtcbn1cbi50cmFuc2xhdGUzZChAeDsgQHk7IEB6KSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZChAeCwgQHksIEB6KTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKEB4LCBAeSwgQHopO1xufVxuLnJvdGF0ZShAZGVncmVlcykge1xuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKEBkZWdyZWVzKTtcbiAgICAgIC1tcy10cmFuc2Zvcm06IHJvdGF0ZShAZGVncmVlcyk7IC8vIElFOSBvbmx5XG4gICAgICAgLW8tdHJhbnNmb3JtOiByb3RhdGUoQGRlZ3JlZXMpO1xuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKEBkZWdyZWVzKTtcbn1cbi5yb3RhdGVYKEBkZWdyZWVzKSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVYKEBkZWdyZWVzKTtcbiAgICAgIC1tcy10cmFuc2Zvcm06IHJvdGF0ZVgoQGRlZ3JlZXMpOyAvLyBJRTkgb25seVxuICAgICAgIC1vLXRyYW5zZm9ybTogcm90YXRlWChAZGVncmVlcyk7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVYKEBkZWdyZWVzKTtcbn1cbi5yb3RhdGVZKEBkZWdyZWVzKSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVZKEBkZWdyZWVzKTtcbiAgICAgIC1tcy10cmFuc2Zvcm06IHJvdGF0ZVkoQGRlZ3JlZXMpOyAvLyBJRTkgb25seVxuICAgICAgIC1vLXRyYW5zZm9ybTogcm90YXRlWShAZGVncmVlcyk7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKEBkZWdyZWVzKTtcbn1cbi5wZXJzcGVjdGl2ZShAcGVyc3BlY3RpdmUpIHtcbiAgLXdlYmtpdC1wZXJzcGVjdGl2ZTogQHBlcnNwZWN0aXZlO1xuICAgICAtbW96LXBlcnNwZWN0aXZlOiBAcGVyc3BlY3RpdmU7XG4gICAgICAgICAgcGVyc3BlY3RpdmU6IEBwZXJzcGVjdGl2ZTtcbn1cbi5wZXJzcGVjdGl2ZS1vcmlnaW4oQHBlcnNwZWN0aXZlKSB7XG4gIC13ZWJraXQtcGVyc3BlY3RpdmUtb3JpZ2luOiBAcGVyc3BlY3RpdmU7XG4gICAgIC1tb3otcGVyc3BlY3RpdmUtb3JpZ2luOiBAcGVyc3BlY3RpdmU7XG4gICAgICAgICAgcGVyc3BlY3RpdmUtb3JpZ2luOiBAcGVyc3BlY3RpdmU7XG59XG4udHJhbnNmb3JtLW9yaWdpbihAb3JpZ2luKSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogQG9yaWdpbjtcbiAgICAgLW1vei10cmFuc2Zvcm0tb3JpZ2luOiBAb3JpZ2luO1xuICAgICAgLW1zLXRyYW5zZm9ybS1vcmlnaW46IEBvcmlnaW47IC8vIElFOSBvbmx5XG4gICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogQG9yaWdpbjtcbn1cblxuXG4vLyBUcmFuc2l0aW9uc1xuXG4udHJhbnNpdGlvbihAdHJhbnNpdGlvbikge1xuICAtd2Via2l0LXRyYW5zaXRpb246IEB0cmFuc2l0aW9uO1xuICAgICAgIC1vLXRyYW5zaXRpb246IEB0cmFuc2l0aW9uO1xuICAgICAgICAgIHRyYW5zaXRpb246IEB0cmFuc2l0aW9uO1xufVxuLnRyYW5zaXRpb24tcHJvcGVydHkoQHRyYW5zaXRpb24tcHJvcGVydHkpIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiBAdHJhbnNpdGlvbi1wcm9wZXJ0eTtcbiAgICAgICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBAdHJhbnNpdGlvbi1wcm9wZXJ0eTtcbn1cbi50cmFuc2l0aW9uLWRlbGF5KEB0cmFuc2l0aW9uLWRlbGF5KSB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1kZWxheTogQHRyYW5zaXRpb24tZGVsYXk7XG4gICAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogQHRyYW5zaXRpb24tZGVsYXk7XG59XG4udHJhbnNpdGlvbi1kdXJhdGlvbihAdHJhbnNpdGlvbi1kdXJhdGlvbikge1xuICAtd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb246IEB0cmFuc2l0aW9uLWR1cmF0aW9uO1xuICAgICAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IEB0cmFuc2l0aW9uLWR1cmF0aW9uO1xufVxuLnRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKEB0aW1pbmctZnVuY3Rpb24pIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogQHRpbWluZy1mdW5jdGlvbjtcbiAgICAgICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogQHRpbWluZy1mdW5jdGlvbjtcbn1cbi50cmFuc2l0aW9uLXRyYW5zZm9ybShAdHJhbnNpdGlvbikge1xuICAtd2Via2l0LXRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtIEB0cmFuc2l0aW9uO1xuICAgICAtbW96LXRyYW5zaXRpb246IC1tb3otdHJhbnNmb3JtIEB0cmFuc2l0aW9uO1xuICAgICAgIC1vLXRyYW5zaXRpb246IC1vLXRyYW5zZm9ybSBAdHJhbnNpdGlvbjtcbiAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gQHRyYW5zaXRpb247XG59XG5cblxuLy8gVXNlciBzZWxlY3Rcbi8vIEZvciBzZWxlY3RpbmcgdGV4dCBvbiB0aGUgcGFnZVxuXG4udXNlci1zZWxlY3QoQHNlbGVjdCkge1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBAc2VsZWN0O1xuICAgICAtbW96LXVzZXItc2VsZWN0OiBAc2VsZWN0O1xuICAgICAgLW1zLXVzZXItc2VsZWN0OiBAc2VsZWN0OyAvLyBJRTEwK1xuICAgICAgICAgIHVzZXItc2VsZWN0OiBAc2VsZWN0O1xufVxuIiwiLy8gV2ViS2l0LXN0eWxlIGZvY3VzXG5cbi50YWItZm9jdXMoKSB7XG4gIC8vIFdlYktpdC1zcGVjaWZpYy4gT3RoZXIgYnJvd3NlcnMgd2lsbCBrZWVwIHRoZWlyIGRlZmF1bHQgb3V0bGluZSBzdHlsZS5cbiAgLy8gKEluaXRpYWxseSB0cmllZCB0byBhbHNvIGZvcmNlIGRlZmF1bHQgdmlhIGBvdXRsaW5lOiBpbml0aWFsYCxcbiAgLy8gYnV0IHRoYXQgc2VlbXMgdG8gZXJyb25lb3VzbHkgcmVtb3ZlIHRoZSBvdXRsaW5lIGluIEZpcmVmb3ggYWx0b2dldGhlci4pXG4gIG91dGxpbmU6IDVweCBhdXRvIC13ZWJraXQtZm9jdXMtcmluZy1jb2xvcjtcbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG59XG4iLCIvLyBJbWFnZSBNaXhpbnNcbi8vIC0gUmVzcG9uc2l2ZSBpbWFnZVxuLy8gLSBSZXRpbmEgaW1hZ2VcblxuXG4vLyBSZXNwb25zaXZlIGltYWdlXG4vL1xuLy8gS2VlcCBpbWFnZXMgZnJvbSBzY2FsaW5nIGJleW9uZCB0aGUgd2lkdGggb2YgdGhlaXIgcGFyZW50cy5cbi5pbWctcmVzcG9uc2l2ZShAZGlzcGxheTogYmxvY2spIHtcbiAgZGlzcGxheTogQGRpc3BsYXk7XG4gIG1heC13aWR0aDogMTAwJTsgLy8gUGFydCAxOiBTZXQgYSBtYXhpbXVtIHJlbGF0aXZlIHRvIHRoZSBwYXJlbnRcbiAgaGVpZ2h0OiBhdXRvOyAvLyBQYXJ0IDI6IFNjYWxlIHRoZSBoZWlnaHQgYWNjb3JkaW5nIHRvIHRoZSB3aWR0aCwgb3RoZXJ3aXNlIHlvdSBnZXQgc3RyZXRjaGluZ1xufVxuXG5cbi8vIFJldGluYSBpbWFnZVxuLy9cbi8vIFNob3J0IHJldGluYSBtaXhpbiBmb3Igc2V0dGluZyBiYWNrZ3JvdW5kLWltYWdlIGFuZCAtc2l6ZS4gTm90ZSB0aGF0IHRoZVxuLy8gc3BlbGxpbmcgb2YgYG1pbi0tbW96LWRldmljZS1waXhlbC1yYXRpb2AgaXMgaW50ZW50aW9uYWwuXG4uaW1nLXJldGluYShAZmlsZS0xeDsgQGZpbGUtMng7IEB3aWR0aC0xeDsgQGhlaWdodC0xeCkge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJAe2ZpbGUtMXh9XCIpO1xuXG4gIEBtZWRpYVxuICBvbmx5IHNjcmVlbiBhbmQgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksXG4gIG9ubHkgc2NyZWVuIGFuZCAoICAgbWluLS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSxcbiAgb25seSBzY3JlZW4gYW5kICggICAgIC1vLW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIvMSksXG4gIG9ubHkgc2NyZWVuIGFuZCAoICAgICAgICBtaW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSxcbiAgb25seSBzY3JlZW4gYW5kICggICAgICAgICAgICAgICAgbWluLXJlc29sdXRpb246IDE5MmRwaSksXG4gIG9ubHkgc2NyZWVuIGFuZCAoICAgICAgICAgICAgICAgIG1pbi1yZXNvbHV0aW9uOiAyZHBweCkge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIkB7ZmlsZS0yeH1cIik7XG4gICAgYmFja2dyb3VuZC1zaXplOiBAd2lkdGgtMXggQGhlaWdodC0xeDtcbiAgfVxufVxuIiwiLy9cbi8vIFR5cG9ncmFwaHlcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLy8gSGVhZGluZ3Ncbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNixcbi5oMSwgLmgyLCAuaDMsIC5oNCwgLmg1LCAuaDYge1xuICBmb250LWZhbWlseTogQGhlYWRpbmdzLWZvbnQtZmFtaWx5O1xuICBmb250LXdlaWdodDogQGhlYWRpbmdzLWZvbnQtd2VpZ2h0O1xuICBsaW5lLWhlaWdodDogQGhlYWRpbmdzLWxpbmUtaGVpZ2h0O1xuICBjb2xvcjogQGhlYWRpbmdzLWNvbG9yO1xuXG4gIHNtYWxsLFxuICAuc21hbGwge1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgY29sb3I6IEBoZWFkaW5ncy1zbWFsbC1jb2xvcjtcbiAgfVxufVxuXG5oMSwgLmgxLFxuaDIsIC5oMixcbmgzLCAuaDMge1xuICBtYXJnaW4tdG9wOiBAbGluZS1oZWlnaHQtY29tcHV0ZWQ7XG4gIG1hcmdpbi1ib3R0b206IChAbGluZS1oZWlnaHQtY29tcHV0ZWQgLyAyKTtcblxuICBzbWFsbCxcbiAgLnNtYWxsIHtcbiAgICBmb250LXNpemU6IDY1JTtcbiAgfVxufVxuaDQsIC5oNCxcbmg1LCAuaDUsXG5oNiwgLmg2IHtcbiAgbWFyZ2luLXRvcDogKEBsaW5lLWhlaWdodC1jb21wdXRlZCAvIDIpO1xuICBtYXJnaW4tYm90dG9tOiAoQGxpbmUtaGVpZ2h0LWNvbXB1dGVkIC8gMik7XG5cbiAgc21hbGwsXG4gIC5zbWFsbCB7XG4gICAgZm9udC1zaXplOiA3NSU7XG4gIH1cbn1cblxuaDEsIC5oMSB7IGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS1oMTsgfVxuaDIsIC5oMiB7IGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS1oMjsgfVxuaDMsIC5oMyB7IGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS1oMzsgfVxuaDQsIC5oNCB7IGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS1oNDsgfVxuaDUsIC5oNSB7IGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS1oNTsgfVxuaDYsIC5oNiB7IGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS1oNjsgfVxuXG5cbi8vIEJvZHkgdGV4dFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5wIHtcbiAgbWFyZ2luOiAwIDAgKEBsaW5lLWhlaWdodC1jb21wdXRlZCAvIDIpO1xufVxuXG4ubGVhZCB7XG4gIG1hcmdpbi1ib3R0b206IEBsaW5lLWhlaWdodC1jb21wdXRlZDtcbiAgZm9udC1zaXplOiBmbG9vcigoQGZvbnQtc2l6ZS1iYXNlICogMS4xNSkpO1xuICBmb250LXdlaWdodDogMzAwO1xuICBsaW5lLWhlaWdodDogMS40O1xuXG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLXNtLW1pbikge1xuICAgIGZvbnQtc2l6ZTogKEBmb250LXNpemUtYmFzZSAqIDEuNSk7XG4gIH1cbn1cblxuXG4vLyBFbXBoYXNpcyAmIG1pc2Ncbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gRXg6ICgxMnB4IHNtYWxsIGZvbnQgLyAxNHB4IGJhc2UgZm9udCkgKiAxMDAlID0gYWJvdXQgODUlXG5zbWFsbCxcbi5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogZmxvb3IoKDEwMCUgKiBAZm9udC1zaXplLXNtYWxsIC8gQGZvbnQtc2l6ZS1iYXNlKSk7XG59XG5cbm1hcmssXG4ubWFyayB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBzdGF0ZS13YXJuaW5nLWJnO1xuICBwYWRkaW5nOiAuMmVtO1xufVxuXG4vLyBBbGlnbm1lbnRcbi50ZXh0LWxlZnQgICAgICAgICAgIHsgdGV4dC1hbGlnbjogbGVmdDsgfVxuLnRleHQtcmlnaHQgICAgICAgICAgeyB0ZXh0LWFsaWduOiByaWdodDsgfVxuLnRleHQtY2VudGVyICAgICAgICAgeyB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbi50ZXh0LWp1c3RpZnkgICAgICAgIHsgdGV4dC1hbGlnbjoganVzdGlmeTsgfVxuLnRleHQtbm93cmFwICAgICAgICAgeyB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG5cbi8vIFRyYW5zZm9ybWF0aW9uXG4udGV4dC1sb3dlcmNhc2UgICAgICB7IHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2U7IH1cbi50ZXh0LXVwcGVyY2FzZSAgICAgIHsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuLnRleHQtY2FwaXRhbGl6ZSAgICAgeyB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTsgfVxuXG4vLyBDb250ZXh0dWFsIGNvbG9yc1xuLnRleHQtbXV0ZWQge1xuICBjb2xvcjogQHRleHQtbXV0ZWQ7XG59XG4udGV4dC1wcmltYXJ5IHtcbiAgLnRleHQtZW1waGFzaXMtdmFyaWFudChAYnJhbmQtcHJpbWFyeSk7XG59XG4udGV4dC1zdWNjZXNzIHtcbiAgLnRleHQtZW1waGFzaXMtdmFyaWFudChAc3RhdGUtc3VjY2Vzcy10ZXh0KTtcbn1cbi50ZXh0LWluZm8ge1xuICAudGV4dC1lbXBoYXNpcy12YXJpYW50KEBzdGF0ZS1pbmZvLXRleHQpO1xufVxuLnRleHQtd2FybmluZyB7XG4gIC50ZXh0LWVtcGhhc2lzLXZhcmlhbnQoQHN0YXRlLXdhcm5pbmctdGV4dCk7XG59XG4udGV4dC1kYW5nZXIge1xuICAudGV4dC1lbXBoYXNpcy12YXJpYW50KEBzdGF0ZS1kYW5nZXItdGV4dCk7XG59XG5cbi8vIENvbnRleHR1YWwgYmFja2dyb3VuZHNcbi8vIEZvciBub3cgd2UnbGwgbGVhdmUgdGhlc2UgYWxvbmdzaWRlIHRoZSB0ZXh0IGNsYXNzZXMgdW50aWwgdjQgd2hlbiB3ZSBjYW5cbi8vIHNhZmVseSBzaGlmdCB0aGluZ3MgYXJvdW5kIChwZXIgU2VtVmVyIHJ1bGVzKS5cbi5iZy1wcmltYXJ5IHtcbiAgLy8gR2l2ZW4gdGhlIGNvbnRyYXN0IGhlcmUsIHRoaXMgaXMgdGhlIG9ubHkgY2xhc3MgdG8gaGF2ZSBpdHMgY29sb3IgaW52ZXJ0ZWRcbiAgLy8gYXV0b21hdGljYWxseS5cbiAgY29sb3I6ICNmZmY7XG4gIC5iZy12YXJpYW50KEBicmFuZC1wcmltYXJ5KTtcbn1cbi5iZy1zdWNjZXNzIHtcbiAgLmJnLXZhcmlhbnQoQHN0YXRlLXN1Y2Nlc3MtYmcpO1xufVxuLmJnLWluZm8ge1xuICAuYmctdmFyaWFudChAc3RhdGUtaW5mby1iZyk7XG59XG4uYmctd2FybmluZyB7XG4gIC5iZy12YXJpYW50KEBzdGF0ZS13YXJuaW5nLWJnKTtcbn1cbi5iZy1kYW5nZXIge1xuICAuYmctdmFyaWFudChAc3RhdGUtZGFuZ2VyLWJnKTtcbn1cblxuXG4vLyBQYWdlIGhlYWRlclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4ucGFnZS1oZWFkZXIge1xuICBwYWRkaW5nLWJvdHRvbTogKChAbGluZS1oZWlnaHQtY29tcHV0ZWQgLyAyKSAtIDEpO1xuICBtYXJnaW46IChAbGluZS1oZWlnaHQtY29tcHV0ZWQgKiAyKSAwIEBsaW5lLWhlaWdodC1jb21wdXRlZDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIEBwYWdlLWhlYWRlci1ib3JkZXItY29sb3I7XG59XG5cblxuLy8gTGlzdHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gVW5vcmRlcmVkIGFuZCBPcmRlcmVkIGxpc3RzXG51bCxcbm9sIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogKEBsaW5lLWhlaWdodC1jb21wdXRlZCAvIDIpO1xuICB1bCxcbiAgb2wge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLy8gTGlzdCBvcHRpb25zXG5cbi8vIFVuc3R5bGVkIGtlZXBzIGxpc3QgaXRlbXMgYmxvY2sgbGV2ZWwsIGp1c3QgcmVtb3ZlcyBkZWZhdWx0IGJyb3dzZXIgcGFkZGluZyBhbmQgbGlzdC1zdHlsZVxuLmxpc3QtdW5zdHlsZWQge1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbi8vIElubGluZSB0dXJucyBsaXN0IGl0ZW1zIGludG8gaW5saW5lLWJsb2NrXG4ubGlzdC1pbmxpbmUge1xuICAubGlzdC11bnN0eWxlZCgpO1xuICBtYXJnaW4tbGVmdDogLTVweDtcblxuICA+IGxpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcGFkZGluZy1sZWZ0OiA1cHg7XG4gICAgcGFkZGluZy1yaWdodDogNXB4O1xuICB9XG59XG5cbi8vIERlc2NyaXB0aW9uIExpc3RzXG5kbCB7XG4gIG1hcmdpbi10b3A6IDA7IC8vIFJlbW92ZSBicm93c2VyIGRlZmF1bHRcbiAgbWFyZ2luLWJvdHRvbTogQGxpbmUtaGVpZ2h0LWNvbXB1dGVkO1xufVxuZHQsXG5kZCB7XG4gIGxpbmUtaGVpZ2h0OiBAbGluZS1oZWlnaHQtYmFzZTtcbn1cbmR0IHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5kZCB7XG4gIG1hcmdpbi1sZWZ0OiAwOyAvLyBVbmRvIGJyb3dzZXIgZGVmYXVsdFxufVxuXG4vLyBIb3Jpem9udGFsIGRlc2NyaXB0aW9uIGxpc3RzXG4vL1xuLy8gRGVmYXVsdHMgdG8gYmVpbmcgc3RhY2tlZCB3aXRob3V0IGFueSBvZiB0aGUgYmVsb3cgc3R5bGVzIGFwcGxpZWQsIHVudGlsIHRoZVxuLy8gZ3JpZCBicmVha3BvaW50IGlzIHJlYWNoZWQgKGRlZmF1bHQgb2Ygfjc2OHB4KS5cblxuLmRsLWhvcml6b250YWwge1xuICBkZCB7XG4gICAgJjpleHRlbmQoLmNsZWFyZml4IGFsbCk7IC8vIENsZWFyIHRoZSBmbG9hdGVkIGBkdGAgaWYgYW4gZW1wdHkgYGRkYCBpcyBwcmVzZW50XG4gIH1cblxuICBAbWVkaWEgKG1pbi13aWR0aDogQGRsLWhvcml6b250YWwtYnJlYWtwb2ludCkge1xuICAgIGR0IHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgd2lkdGg6IChAZGwtaG9yaXpvbnRhbC1vZmZzZXQgLSAyMCk7XG4gICAgICBjbGVhcjogbGVmdDtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgLnRleHQtb3ZlcmZsb3coKTtcbiAgICB9XG4gICAgZGQge1xuICAgICAgbWFyZ2luLWxlZnQ6IEBkbC1ob3Jpem9udGFsLW9mZnNldDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLyBNaXNjXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIEFiYnJldmlhdGlvbnMgYW5kIGFjcm9ueW1zXG5hYmJyW3RpdGxlXSxcbi8vIEFkZCBkYXRhLSogYXR0cmlidXRlIHRvIGhlbHAgb3V0IG91ciB0b29sdGlwIHBsdWdpbiwgcGVyIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9pc3N1ZXMvNTI1N1xuYWJicltkYXRhLW9yaWdpbmFsLXRpdGxlXSB7XG4gIGN1cnNvcjogaGVscDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCBAYWJici1ib3JkZXItY29sb3I7XG59XG4uaW5pdGlhbGlzbSB7XG4gIGZvbnQtc2l6ZTogOTAlO1xuICAudGV4dC11cHBlcmNhc2UoKTtcbn1cblxuLy8gQmxvY2txdW90ZXNcbmJsb2NrcXVvdGUge1xuICBwYWRkaW5nOiAoQGxpbmUtaGVpZ2h0LWNvbXB1dGVkIC8gMikgQGxpbmUtaGVpZ2h0LWNvbXB1dGVkO1xuICBtYXJnaW46IDAgMCBAbGluZS1oZWlnaHQtY29tcHV0ZWQ7XG4gIGZvbnQtc2l6ZTogQGJsb2NrcXVvdGUtZm9udC1zaXplO1xuICBib3JkZXItbGVmdDogNXB4IHNvbGlkIEBibG9ja3F1b3RlLWJvcmRlci1jb2xvcjtcblxuICBwLFxuICB1bCxcbiAgb2wge1xuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxuXG4gIC8vIE5vdGU6IERlcHJlY2F0ZWQgc21hbGwgYW5kIC5zbWFsbCBhcyBvZiB2My4xLjBcbiAgLy8gQ29udGV4dDogaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2lzc3Vlcy8xMTY2MFxuICBmb290ZXIsXG4gIHNtYWxsLFxuICAuc21hbGwge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogODAlOyAvLyBiYWNrIHRvIGRlZmF1bHQgZm9udC1zaXplXG4gICAgbGluZS1oZWlnaHQ6IEBsaW5lLWhlaWdodC1iYXNlO1xuICAgIGNvbG9yOiBAYmxvY2txdW90ZS1zbWFsbC1jb2xvcjtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICdcXDIwMTQgXFwwMEEwJzsgLy8gZW0gZGFzaCwgbmJzcFxuICAgIH1cbiAgfVxufVxuXG4vLyBPcHBvc2l0ZSBhbGlnbm1lbnQgb2YgYmxvY2txdW90ZVxuLy9cbi8vIEhlYWRzIHVwOiBgYmxvY2txdW90ZS5wdWxsLXJpZ2h0YCBoYXMgYmVlbiBkZXByZWNhdGVkIGFzIG9mIHYzLjEuMC5cbi5ibG9ja3F1b3RlLXJldmVyc2UsXG5ibG9ja3F1b3RlLnB1bGwtcmlnaHQge1xuICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIGJvcmRlci1yaWdodDogNXB4IHNvbGlkIEBibG9ja3F1b3RlLWJvcmRlci1jb2xvcjtcbiAgYm9yZGVyLWxlZnQ6IDA7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuXG4gIC8vIEFjY291bnQgZm9yIGNpdGF0aW9uXG4gIGZvb3RlcixcbiAgc21hbGwsXG4gIC5zbWFsbCB7XG4gICAgJjpiZWZvcmUgeyBjb250ZW50OiAnJzsgfVxuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogJ1xcMDBBMCBcXDIwMTQnOyAvLyBuYnNwLCBlbSBkYXNoXG4gICAgfVxuICB9XG59XG5cbi8vIEFkZHJlc3Nlc1xuYWRkcmVzcyB7XG4gIG1hcmdpbi1ib3R0b206IEBsaW5lLWhlaWdodC1jb21wdXRlZDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogQGxpbmUtaGVpZ2h0LWJhc2U7XG59XG4iLCIvLyBUeXBvZ3JhcGh5XG5cbi50ZXh0LWVtcGhhc2lzLXZhcmlhbnQoQGNvbG9yKSB7XG4gIGNvbG9yOiBAY29sb3I7XG4gIGEmOmhvdmVyLFxuICBhJjpmb2N1cyB7XG4gICAgY29sb3I6IGRhcmtlbihAY29sb3IsIDEwJSk7XG4gIH1cbn1cbiIsIi8vIENvbnRleHR1YWwgYmFja2dyb3VuZHNcblxuLmJnLXZhcmlhbnQoQGNvbG9yKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBjb2xvcjtcbiAgYSY6aG92ZXIsXG4gIGEmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oQGNvbG9yLCAxMCUpO1xuICB9XG59XG4iLCIvLyBUZXh0IG92ZXJmbG93XG4vLyBSZXF1aXJlcyBpbmxpbmUtYmxvY2sgb3IgYmxvY2sgZm9yIHByb3BlciBzdHlsaW5nXG5cbi50ZXh0LW92ZXJmbG93KCkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbiIsIi8vXG4vLyBDb2RlIChpbmxpbmUgYW5kIGJsb2NrKVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4vLyBJbmxpbmUgYW5kIGJsb2NrIGNvZGUgc3R5bGVzXG5jb2RlLFxua2JkLFxucHJlLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBAZm9udC1mYW1pbHktbW9ub3NwYWNlO1xufVxuXG4vLyBJbmxpbmUgY29kZVxuY29kZSB7XG4gIHBhZGRpbmc6IDJweCA0cHg7XG4gIGZvbnQtc2l6ZTogOTAlO1xuICBjb2xvcjogQGNvZGUtY29sb3I7XG4gIGJhY2tncm91bmQtY29sb3I6IEBjb2RlLWJnO1xuICBib3JkZXItcmFkaXVzOiBAYm9yZGVyLXJhZGl1cy1iYXNlO1xufVxuXG4vLyBVc2VyIGlucHV0IHR5cGljYWxseSBlbnRlcmVkIHZpYSBrZXlib2FyZFxua2JkIHtcbiAgcGFkZGluZzogMnB4IDRweDtcbiAgZm9udC1zaXplOiA5MCU7XG4gIGNvbG9yOiBAa2JkLWNvbG9yO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAa2JkLWJnO1xuICBib3JkZXItcmFkaXVzOiBAYm9yZGVyLXJhZGl1cy1zbWFsbDtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAtMXB4IDAgcmdiYSgwLDAsMCwuMjUpO1xuXG4gIGtiZCB7XG4gICAgcGFkZGluZzogMDtcbiAgICBmb250LXNpemU6IDEwMCU7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxufVxuXG4vLyBCbG9ja3Mgb2YgY29kZVxucHJlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6ICgoQGxpbmUtaGVpZ2h0LWNvbXB1dGVkIC0gMSkgLyAyKTtcbiAgbWFyZ2luOiAwIDAgKEBsaW5lLWhlaWdodC1jb21wdXRlZCAvIDIpO1xuICBmb250LXNpemU6IChAZm9udC1zaXplLWJhc2UgLSAxKTsgLy8gMTRweCB0byAxM3B4XG4gIGxpbmUtaGVpZ2h0OiBAbGluZS1oZWlnaHQtYmFzZTtcbiAgd29yZC1icmVhazogYnJlYWstYWxsO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gIGNvbG9yOiBAcHJlLWNvbG9yO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAcHJlLWJnO1xuICBib3JkZXI6IDFweCBzb2xpZCBAcHJlLWJvcmRlci1jb2xvcjtcbiAgYm9yZGVyLXJhZGl1czogQGJvcmRlci1yYWRpdXMtYmFzZTtcblxuICAvLyBBY2NvdW50IGZvciBzb21lIGNvZGUgb3V0cHV0cyB0aGF0IHBsYWNlIGNvZGUgdGFncyBpbiBwcmUgdGFnc1xuICBjb2RlIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgfVxufVxuXG4vLyBFbmFibGUgc2Nyb2xsYWJsZSBibG9ja3Mgb2YgY29kZVxuLnByZS1zY3JvbGxhYmxlIHtcbiAgbWF4LWhlaWdodDogQHByZS1zY3JvbGxhYmxlLW1heC1oZWlnaHQ7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbn1cbiIsIi8vXG4vLyBHcmlkIHN5c3RlbVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4vLyBDb250YWluZXIgd2lkdGhzXG4vL1xuLy8gU2V0IHRoZSBjb250YWluZXIgd2lkdGgsIGFuZCBvdmVycmlkZSBpdCBmb3IgZml4ZWQgbmF2YmFycyBpbiBtZWRpYSBxdWVyaWVzLlxuXG4uY29udGFpbmVyIHtcbiAgLmNvbnRhaW5lci1maXhlZCgpO1xuXG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLXNtLW1pbikge1xuICAgIHdpZHRoOiBAY29udGFpbmVyLXNtO1xuICB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLW1kLW1pbikge1xuICAgIHdpZHRoOiBAY29udGFpbmVyLW1kO1xuICB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLWxnLW1pbikge1xuICAgIHdpZHRoOiBAY29udGFpbmVyLWxnO1xuICB9XG59XG5cblxuLy8gRmx1aWQgY29udGFpbmVyXG4vL1xuLy8gVXRpbGl6ZXMgdGhlIG1peGluIG1lYW50IGZvciBmaXhlZCB3aWR0aCBjb250YWluZXJzLCBidXQgd2l0aG91dCBhbnkgZGVmaW5lZFxuLy8gd2lkdGggZm9yIGZsdWlkLCBmdWxsIHdpZHRoIGxheW91dHMuXG5cbi5jb250YWluZXItZmx1aWQge1xuICAuY29udGFpbmVyLWZpeGVkKCk7XG59XG5cblxuLy8gUm93XG4vL1xuLy8gUm93cyBjb250YWluIGFuZCBjbGVhciB0aGUgZmxvYXRzIG9mIHlvdXIgY29sdW1ucy5cblxuLnJvdyB7XG4gIC5tYWtlLXJvdygpO1xufVxuXG5cbi8vIENvbHVtbnNcbi8vXG4vLyBDb21tb24gc3R5bGVzIGZvciBzbWFsbCBhbmQgbGFyZ2UgZ3JpZCBjb2x1bW5zXG5cbi5tYWtlLWdyaWQtY29sdW1ucygpO1xuXG5cbi8vIEV4dHJhIHNtYWxsIGdyaWRcbi8vXG4vLyBDb2x1bW5zLCBvZmZzZXRzLCBwdXNoZXMsIGFuZCBwdWxscyBmb3IgZXh0cmEgc21hbGwgZGV2aWNlcyBsaWtlXG4vLyBzbWFydHBob25lcy5cblxuLm1ha2UtZ3JpZCh4cyk7XG5cblxuLy8gU21hbGwgZ3JpZFxuLy9cbi8vIENvbHVtbnMsIG9mZnNldHMsIHB1c2hlcywgYW5kIHB1bGxzIGZvciB0aGUgc21hbGwgZGV2aWNlIHJhbmdlLCBmcm9tIHBob25lc1xuLy8gdG8gdGFibGV0cy5cblxuQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tc20tbWluKSB7XG4gIC5tYWtlLWdyaWQoc20pO1xufVxuXG5cbi8vIE1lZGl1bSBncmlkXG4vL1xuLy8gQ29sdW1ucywgb2Zmc2V0cywgcHVzaGVzLCBhbmQgcHVsbHMgZm9yIHRoZSBkZXNrdG9wIGRldmljZSByYW5nZS5cblxuQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbWQtbWluKSB7XG4gIC5tYWtlLWdyaWQobWQpO1xufVxuXG5cbi8vIExhcmdlIGdyaWRcbi8vXG4vLyBDb2x1bW5zLCBvZmZzZXRzLCBwdXNoZXMsIGFuZCBwdWxscyBmb3IgdGhlIGxhcmdlIGRlc2t0b3AgZGV2aWNlIHJhbmdlLlxuXG5AbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1sZy1taW4pIHtcbiAgLm1ha2UtZ3JpZChsZyk7XG59XG4iLCIvLyBHcmlkIHN5c3RlbVxuLy9cbi8vIEdlbmVyYXRlIHNlbWFudGljIGdyaWQgY29sdW1ucyB3aXRoIHRoZXNlIG1peGlucy5cblxuLy8gQ2VudGVyZWQgY29udGFpbmVyIGVsZW1lbnRcbi5jb250YWluZXItZml4ZWQoQGd1dHRlcjogQGdyaWQtZ3V0dGVyLXdpZHRoKSB7XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIHBhZGRpbmctbGVmdDogIGZsb29yKChAZ3V0dGVyIC8gMikpO1xuICBwYWRkaW5nLXJpZ2h0OiBjZWlsKChAZ3V0dGVyIC8gMikpO1xuICAmOmV4dGVuZCguY2xlYXJmaXggYWxsKTtcbn1cblxuLy8gQ3JlYXRlcyBhIHdyYXBwZXIgZm9yIGEgc2VyaWVzIG9mIGNvbHVtbnNcbi5tYWtlLXJvdyhAZ3V0dGVyOiBAZ3JpZC1ndXR0ZXItd2lkdGgpIHtcbiAgbWFyZ2luLWxlZnQ6ICBjZWlsKChAZ3V0dGVyIC8gLTIpKTtcbiAgbWFyZ2luLXJpZ2h0OiBmbG9vcigoQGd1dHRlciAvIC0yKSk7XG4gICY6ZXh0ZW5kKC5jbGVhcmZpeCBhbGwpO1xufVxuXG4vLyBHZW5lcmF0ZSB0aGUgZXh0cmEgc21hbGwgY29sdW1uc1xuLm1ha2UteHMtY29sdW1uKEBjb2x1bW5zOyBAZ3V0dGVyOiBAZ3JpZC1ndXR0ZXItd2lkdGgpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IHBlcmNlbnRhZ2UoKEBjb2x1bW5zIC8gQGdyaWQtY29sdW1ucykpO1xuICBtaW4taGVpZ2h0OiAxcHg7XG4gIHBhZGRpbmctbGVmdDogIChAZ3V0dGVyIC8gMik7XG4gIHBhZGRpbmctcmlnaHQ6IChAZ3V0dGVyIC8gMik7XG59XG4ubWFrZS14cy1jb2x1bW4tb2Zmc2V0KEBjb2x1bW5zKSB7XG4gIG1hcmdpbi1sZWZ0OiBwZXJjZW50YWdlKChAY29sdW1ucyAvIEBncmlkLWNvbHVtbnMpKTtcbn1cbi5tYWtlLXhzLWNvbHVtbi1wdXNoKEBjb2x1bW5zKSB7XG4gIGxlZnQ6IHBlcmNlbnRhZ2UoKEBjb2x1bW5zIC8gQGdyaWQtY29sdW1ucykpO1xufVxuLm1ha2UteHMtY29sdW1uLXB1bGwoQGNvbHVtbnMpIHtcbiAgcmlnaHQ6IHBlcmNlbnRhZ2UoKEBjb2x1bW5zIC8gQGdyaWQtY29sdW1ucykpO1xufVxuXG4vLyBHZW5lcmF0ZSB0aGUgc21hbGwgY29sdW1uc1xuLm1ha2Utc20tY29sdW1uKEBjb2x1bW5zOyBAZ3V0dGVyOiBAZ3JpZC1ndXR0ZXItd2lkdGgpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtaW4taGVpZ2h0OiAxcHg7XG4gIHBhZGRpbmctbGVmdDogIChAZ3V0dGVyIC8gMik7XG4gIHBhZGRpbmctcmlnaHQ6IChAZ3V0dGVyIC8gMik7XG5cbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tc20tbWluKSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IHBlcmNlbnRhZ2UoKEBjb2x1bW5zIC8gQGdyaWQtY29sdW1ucykpO1xuICB9XG59XG4ubWFrZS1zbS1jb2x1bW4tb2Zmc2V0KEBjb2x1bW5zKSB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLXNtLW1pbikge1xuICAgIG1hcmdpbi1sZWZ0OiBwZXJjZW50YWdlKChAY29sdW1ucyAvIEBncmlkLWNvbHVtbnMpKTtcbiAgfVxufVxuLm1ha2Utc20tY29sdW1uLXB1c2goQGNvbHVtbnMpIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tc20tbWluKSB7XG4gICAgbGVmdDogcGVyY2VudGFnZSgoQGNvbHVtbnMgLyBAZ3JpZC1jb2x1bW5zKSk7XG4gIH1cbn1cbi5tYWtlLXNtLWNvbHVtbi1wdWxsKEBjb2x1bW5zKSB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLXNtLW1pbikge1xuICAgIHJpZ2h0OiBwZXJjZW50YWdlKChAY29sdW1ucyAvIEBncmlkLWNvbHVtbnMpKTtcbiAgfVxufVxuXG4vLyBHZW5lcmF0ZSB0aGUgbWVkaXVtIGNvbHVtbnNcbi5tYWtlLW1kLWNvbHVtbihAY29sdW1uczsgQGd1dHRlcjogQGdyaWQtZ3V0dGVyLXdpZHRoKSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWluLWhlaWdodDogMXB4O1xuICBwYWRkaW5nLWxlZnQ6ICAoQGd1dHRlciAvIDIpO1xuICBwYWRkaW5nLXJpZ2h0OiAoQGd1dHRlciAvIDIpO1xuXG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLW1kLW1pbikge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiBwZXJjZW50YWdlKChAY29sdW1ucyAvIEBncmlkLWNvbHVtbnMpKTtcbiAgfVxufVxuLm1ha2UtbWQtY29sdW1uLW9mZnNldChAY29sdW1ucykge1xuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1tZC1taW4pIHtcbiAgICBtYXJnaW4tbGVmdDogcGVyY2VudGFnZSgoQGNvbHVtbnMgLyBAZ3JpZC1jb2x1bW5zKSk7XG4gIH1cbn1cbi5tYWtlLW1kLWNvbHVtbi1wdXNoKEBjb2x1bW5zKSB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLW1kLW1pbikge1xuICAgIGxlZnQ6IHBlcmNlbnRhZ2UoKEBjb2x1bW5zIC8gQGdyaWQtY29sdW1ucykpO1xuICB9XG59XG4ubWFrZS1tZC1jb2x1bW4tcHVsbChAY29sdW1ucykge1xuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1tZC1taW4pIHtcbiAgICByaWdodDogcGVyY2VudGFnZSgoQGNvbHVtbnMgLyBAZ3JpZC1jb2x1bW5zKSk7XG4gIH1cbn1cblxuLy8gR2VuZXJhdGUgdGhlIGxhcmdlIGNvbHVtbnNcbi5tYWtlLWxnLWNvbHVtbihAY29sdW1uczsgQGd1dHRlcjogQGdyaWQtZ3V0dGVyLXdpZHRoKSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWluLWhlaWdodDogMXB4O1xuICBwYWRkaW5nLWxlZnQ6ICAoQGd1dHRlciAvIDIpO1xuICBwYWRkaW5nLXJpZ2h0OiAoQGd1dHRlciAvIDIpO1xuXG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLWxnLW1pbikge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiBwZXJjZW50YWdlKChAY29sdW1ucyAvIEBncmlkLWNvbHVtbnMpKTtcbiAgfVxufVxuLm1ha2UtbGctY29sdW1uLW9mZnNldChAY29sdW1ucykge1xuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1sZy1taW4pIHtcbiAgICBtYXJnaW4tbGVmdDogcGVyY2VudGFnZSgoQGNvbHVtbnMgLyBAZ3JpZC1jb2x1bW5zKSk7XG4gIH1cbn1cbi5tYWtlLWxnLWNvbHVtbi1wdXNoKEBjb2x1bW5zKSB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLWxnLW1pbikge1xuICAgIGxlZnQ6IHBlcmNlbnRhZ2UoKEBjb2x1bW5zIC8gQGdyaWQtY29sdW1ucykpO1xuICB9XG59XG4ubWFrZS1sZy1jb2x1bW4tcHVsbChAY29sdW1ucykge1xuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1sZy1taW4pIHtcbiAgICByaWdodDogcGVyY2VudGFnZSgoQGNvbHVtbnMgLyBAZ3JpZC1jb2x1bW5zKSk7XG4gIH1cbn1cbiIsIi8vIEZyYW1ld29yayBncmlkIGdlbmVyYXRpb25cbi8vXG4vLyBVc2VkIG9ubHkgYnkgQm9vdHN0cmFwIHRvIGdlbmVyYXRlIHRoZSBjb3JyZWN0IG51bWJlciBvZiBncmlkIGNsYXNzZXMgZ2l2ZW5cbi8vIGFueSB2YWx1ZSBvZiBgQGdyaWQtY29sdW1uc2AuXG5cbi5tYWtlLWdyaWQtY29sdW1ucygpIHtcbiAgLy8gQ29tbW9uIHN0eWxlcyBmb3IgYWxsIHNpemVzIG9mIGdyaWQgY29sdW1ucywgd2lkdGhzIDEtMTJcbiAgLmNvbChAaW5kZXgpIHsgLy8gaW5pdGlhbFxuICAgIEBpdGVtOiB+XCIuY29sLXhzLUB7aW5kZXh9LCAuY29sLXNtLUB7aW5kZXh9LCAuY29sLW1kLUB7aW5kZXh9LCAuY29sLWxnLUB7aW5kZXh9XCI7XG4gICAgLmNvbCgoQGluZGV4ICsgMSksIEBpdGVtKTtcbiAgfVxuICAuY29sKEBpbmRleCwgQGxpc3QpIHdoZW4gKEBpbmRleCA9PCBAZ3JpZC1jb2x1bW5zKSB7IC8vIGdlbmVyYWw7IFwiPTxcIiBpc24ndCBhIHR5cG9cbiAgICBAaXRlbTogflwiLmNvbC14cy1Ae2luZGV4fSwgLmNvbC1zbS1Ae2luZGV4fSwgLmNvbC1tZC1Ae2luZGV4fSwgLmNvbC1sZy1Ae2luZGV4fVwiO1xuICAgIC5jb2woKEBpbmRleCArIDEpLCB+XCJAe2xpc3R9LCBAe2l0ZW19XCIpO1xuICB9XG4gIC5jb2woQGluZGV4LCBAbGlzdCkgd2hlbiAoQGluZGV4ID4gQGdyaWQtY29sdW1ucykgeyAvLyB0ZXJtaW5hbFxuICAgIEB7bGlzdH0ge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgLy8gUHJldmVudCBjb2x1bW5zIGZyb20gY29sbGFwc2luZyB3aGVuIGVtcHR5XG4gICAgICBtaW4taGVpZ2h0OiAxcHg7XG4gICAgICAvLyBJbm5lciBndXR0ZXIgdmlhIHBhZGRpbmdcbiAgICAgIHBhZGRpbmctbGVmdDogIGNlaWwoKEBncmlkLWd1dHRlci13aWR0aCAvIDIpKTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IGZsb29yKChAZ3JpZC1ndXR0ZXItd2lkdGggLyAyKSk7XG4gICAgfVxuICB9XG4gIC5jb2woMSk7IC8vIGtpY2tzdGFydCBpdFxufVxuXG4uZmxvYXQtZ3JpZC1jb2x1bW5zKEBjbGFzcykge1xuICAuY29sKEBpbmRleCkgeyAvLyBpbml0aWFsXG4gICAgQGl0ZW06IH5cIi5jb2wtQHtjbGFzc30tQHtpbmRleH1cIjtcbiAgICAuY29sKChAaW5kZXggKyAxKSwgQGl0ZW0pO1xuICB9XG4gIC5jb2woQGluZGV4LCBAbGlzdCkgd2hlbiAoQGluZGV4ID08IEBncmlkLWNvbHVtbnMpIHsgLy8gZ2VuZXJhbFxuICAgIEBpdGVtOiB+XCIuY29sLUB7Y2xhc3N9LUB7aW5kZXh9XCI7XG4gICAgLmNvbCgoQGluZGV4ICsgMSksIH5cIkB7bGlzdH0sIEB7aXRlbX1cIik7XG4gIH1cbiAgLmNvbChAaW5kZXgsIEBsaXN0KSB3aGVuIChAaW5kZXggPiBAZ3JpZC1jb2x1bW5zKSB7IC8vIHRlcm1pbmFsXG4gICAgQHtsaXN0fSB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICB9XG4gIH1cbiAgLmNvbCgxKTsgLy8ga2lja3N0YXJ0IGl0XG59XG5cbi5jYWxjLWdyaWQtY29sdW1uKEBpbmRleCwgQGNsYXNzLCBAdHlwZSkgd2hlbiAoQHR5cGUgPSB3aWR0aCkgYW5kIChAaW5kZXggPiAwKSB7XG4gIC5jb2wtQHtjbGFzc30tQHtpbmRleH0ge1xuICAgIHdpZHRoOiBwZXJjZW50YWdlKChAaW5kZXggLyBAZ3JpZC1jb2x1bW5zKSk7XG4gIH1cbn1cbi5jYWxjLWdyaWQtY29sdW1uKEBpbmRleCwgQGNsYXNzLCBAdHlwZSkgd2hlbiAoQHR5cGUgPSBwdXNoKSBhbmQgKEBpbmRleCA+IDApIHtcbiAgLmNvbC1Ae2NsYXNzfS1wdXNoLUB7aW5kZXh9IHtcbiAgICBsZWZ0OiBwZXJjZW50YWdlKChAaW5kZXggLyBAZ3JpZC1jb2x1bW5zKSk7XG4gIH1cbn1cbi5jYWxjLWdyaWQtY29sdW1uKEBpbmRleCwgQGNsYXNzLCBAdHlwZSkgd2hlbiAoQHR5cGUgPSBwdXNoKSBhbmQgKEBpbmRleCA9IDApIHtcbiAgLmNvbC1Ae2NsYXNzfS1wdXNoLTAge1xuICAgIGxlZnQ6IGF1dG87XG4gIH1cbn1cbi5jYWxjLWdyaWQtY29sdW1uKEBpbmRleCwgQGNsYXNzLCBAdHlwZSkgd2hlbiAoQHR5cGUgPSBwdWxsKSBhbmQgKEBpbmRleCA+IDApIHtcbiAgLmNvbC1Ae2NsYXNzfS1wdWxsLUB7aW5kZXh9IHtcbiAgICByaWdodDogcGVyY2VudGFnZSgoQGluZGV4IC8gQGdyaWQtY29sdW1ucykpO1xuICB9XG59XG4uY2FsYy1ncmlkLWNvbHVtbihAaW5kZXgsIEBjbGFzcywgQHR5cGUpIHdoZW4gKEB0eXBlID0gcHVsbCkgYW5kIChAaW5kZXggPSAwKSB7XG4gIC5jb2wtQHtjbGFzc30tcHVsbC0wIHtcbiAgICByaWdodDogYXV0bztcbiAgfVxufVxuLmNhbGMtZ3JpZC1jb2x1bW4oQGluZGV4LCBAY2xhc3MsIEB0eXBlKSB3aGVuIChAdHlwZSA9IG9mZnNldCkge1xuICAuY29sLUB7Y2xhc3N9LW9mZnNldC1Ae2luZGV4fSB7XG4gICAgbWFyZ2luLWxlZnQ6IHBlcmNlbnRhZ2UoKEBpbmRleCAvIEBncmlkLWNvbHVtbnMpKTtcbiAgfVxufVxuXG4vLyBCYXNpYyBsb29waW5nIGluIExFU1Ncbi5sb29wLWdyaWQtY29sdW1ucyhAaW5kZXgsIEBjbGFzcywgQHR5cGUpIHdoZW4gKEBpbmRleCA+PSAwKSB7XG4gIC5jYWxjLWdyaWQtY29sdW1uKEBpbmRleCwgQGNsYXNzLCBAdHlwZSk7XG4gIC8vIG5leHQgaXRlcmF0aW9uXG4gIC5sb29wLWdyaWQtY29sdW1ucygoQGluZGV4IC0gMSksIEBjbGFzcywgQHR5cGUpO1xufVxuXG4vLyBDcmVhdGUgZ3JpZCBmb3Igc3BlY2lmaWMgY2xhc3Ncbi5tYWtlLWdyaWQoQGNsYXNzKSB7XG4gIC5mbG9hdC1ncmlkLWNvbHVtbnMoQGNsYXNzKTtcbiAgLmxvb3AtZ3JpZC1jb2x1bW5zKEBncmlkLWNvbHVtbnMsIEBjbGFzcywgd2lkdGgpO1xuICAubG9vcC1ncmlkLWNvbHVtbnMoQGdyaWQtY29sdW1ucywgQGNsYXNzLCBwdWxsKTtcbiAgLmxvb3AtZ3JpZC1jb2x1bW5zKEBncmlkLWNvbHVtbnMsIEBjbGFzcywgcHVzaCk7XG4gIC5sb29wLWdyaWQtY29sdW1ucyhAZ3JpZC1jb2x1bW5zLCBAY2xhc3MsIG9mZnNldCk7XG59XG4iLCIvL1xuLy8gVGFibGVzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbnRhYmxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQHRhYmxlLWJnO1xufVxuY2FwdGlvbiB7XG4gIHBhZGRpbmctdG9wOiBAdGFibGUtY2VsbC1wYWRkaW5nO1xuICBwYWRkaW5nLWJvdHRvbTogQHRhYmxlLWNlbGwtcGFkZGluZztcbiAgY29sb3I6IEB0ZXh0LW11dGVkO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxudGgge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG5cbi8vIEJhc2VsaW5lIHN0eWxlc1xuXG4udGFibGUge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiBAbGluZS1oZWlnaHQtY29tcHV0ZWQ7XG4gIC8vIENlbGxzXG4gID4gdGhlYWQsXG4gID4gdGJvZHksXG4gID4gdGZvb3Qge1xuICAgID4gdHIge1xuICAgICAgPiB0aCxcbiAgICAgID4gdGQge1xuICAgICAgICBwYWRkaW5nOiBAdGFibGUtY2VsbC1wYWRkaW5nO1xuICAgICAgICBsaW5lLWhlaWdodDogQGxpbmUtaGVpZ2h0LWJhc2U7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCBAdGFibGUtYm9yZGVyLWNvbG9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAvLyBCb3R0b20gYWxpZ24gZm9yIGNvbHVtbiBoZWFkaW5nc1xuICA+IHRoZWFkID4gdHIgPiB0aCB7XG4gICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgQHRhYmxlLWJvcmRlci1jb2xvcjtcbiAgfVxuICAvLyBSZW1vdmUgdG9wIGJvcmRlciBmcm9tIHRoZWFkIGJ5IGRlZmF1bHRcbiAgPiBjYXB0aW9uICsgdGhlYWQsXG4gID4gY29sZ3JvdXAgKyB0aGVhZCxcbiAgPiB0aGVhZDpmaXJzdC1jaGlsZCB7XG4gICAgPiB0cjpmaXJzdC1jaGlsZCB7XG4gICAgICA+IHRoLFxuICAgICAgPiB0ZCB7XG4gICAgICAgIGJvcmRlci10b3A6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC8vIEFjY291bnQgZm9yIG11bHRpcGxlIHRib2R5IGluc3RhbmNlc1xuICA+IHRib2R5ICsgdGJvZHkge1xuICAgIGJvcmRlci10b3A6IDJweCBzb2xpZCBAdGFibGUtYm9yZGVyLWNvbG9yO1xuICB9XG5cbiAgLy8gTmVzdGluZ1xuICAudGFibGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBib2R5LWJnO1xuICB9XG59XG5cblxuLy8gQ29uZGVuc2VkIHRhYmxlIHcvIGhhbGYgcGFkZGluZ1xuXG4udGFibGUtY29uZGVuc2VkIHtcbiAgPiB0aGVhZCxcbiAgPiB0Ym9keSxcbiAgPiB0Zm9vdCB7XG4gICAgPiB0ciB7XG4gICAgICA+IHRoLFxuICAgICAgPiB0ZCB7XG4gICAgICAgIHBhZGRpbmc6IEB0YWJsZS1jb25kZW5zZWQtY2VsbC1wYWRkaW5nO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cbi8vIEJvcmRlcmVkIHZlcnNpb25cbi8vXG4vLyBBZGQgYm9yZGVycyBhbGwgYXJvdW5kIHRoZSB0YWJsZSBhbmQgYmV0d2VlbiBhbGwgdGhlIGNvbHVtbnMuXG5cbi50YWJsZS1ib3JkZXJlZCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkIEB0YWJsZS1ib3JkZXItY29sb3I7XG4gID4gdGhlYWQsXG4gID4gdGJvZHksXG4gID4gdGZvb3Qge1xuICAgID4gdHIge1xuICAgICAgPiB0aCxcbiAgICAgID4gdGQge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBAdGFibGUtYm9yZGVyLWNvbG9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICA+IHRoZWFkID4gdHIge1xuICAgID4gdGgsXG4gICAgPiB0ZCB7XG4gICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAycHg7XG4gICAgfVxuICB9XG59XG5cblxuLy8gWmVicmEtc3RyaXBpbmdcbi8vXG4vLyBEZWZhdWx0IHplYnJhLXN0cmlwZSBzdHlsZXMgKGFsdGVybmF0aW5nIGdyYXkgYW5kIHRyYW5zcGFyZW50IGJhY2tncm91bmRzKVxuXG4udGFibGUtc3RyaXBlZCB7XG4gID4gdGJvZHkgPiB0cjpudGgtb2YtdHlwZShvZGQpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAdGFibGUtYmctYWNjZW50O1xuICB9XG59XG5cblxuLy8gSG92ZXIgZWZmZWN0XG4vL1xuLy8gUGxhY2VkIGhlcmUgc2luY2UgaXQgaGFzIHRvIGNvbWUgYWZ0ZXIgdGhlIHBvdGVudGlhbCB6ZWJyYSBzdHJpcGluZ1xuXG4udGFibGUtaG92ZXIge1xuICA+IHRib2R5ID4gdHI6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEB0YWJsZS1iZy1ob3ZlcjtcbiAgfVxufVxuXG5cbi8vIFRhYmxlIGNlbGwgc2l6aW5nXG4vL1xuLy8gUmVzZXQgZGVmYXVsdCB0YWJsZSBiZWhhdmlvclxuXG50YWJsZSBjb2xbY2xhc3MqPVwiY29sLVwiXSB7XG4gIHBvc2l0aW9uOiBzdGF0aWM7IC8vIFByZXZlbnQgYm9yZGVyIGhpZGluZyBpbiBGaXJlZm94IGFuZCBJRTktMTEgKHNlZSBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvaXNzdWVzLzExNjIzKVxuICBmbG9hdDogbm9uZTtcbiAgZGlzcGxheTogdGFibGUtY29sdW1uO1xufVxudGFibGUge1xuICB0ZCxcbiAgdGgge1xuICAgICZbY2xhc3MqPVwiY29sLVwiXSB7XG4gICAgICBwb3NpdGlvbjogc3RhdGljOyAvLyBQcmV2ZW50IGJvcmRlciBoaWRpbmcgaW4gRmlyZWZveCBhbmQgSUU5LTExIChzZWUgaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2lzc3Vlcy8xMTYyMylcbiAgICAgIGZsb2F0OiBub25lO1xuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLyBUYWJsZSBiYWNrZ3JvdW5kc1xuLy9cbi8vIEV4YWN0IHNlbGVjdG9ycyBiZWxvdyByZXF1aXJlZCB0byBvdmVycmlkZSBgLnRhYmxlLXN0cmlwZWRgIGFuZCBwcmV2ZW50XG4vLyBpbmhlcml0YW5jZSB0byBuZXN0ZWQgdGFibGVzLlxuXG4vLyBHZW5lcmF0ZSB0aGUgY29udGV4dHVhbCB2YXJpYW50c1xuLnRhYmxlLXJvdy12YXJpYW50KGFjdGl2ZTsgQHRhYmxlLWJnLWFjdGl2ZSk7XG4udGFibGUtcm93LXZhcmlhbnQoc3VjY2VzczsgQHN0YXRlLXN1Y2Nlc3MtYmcpO1xuLnRhYmxlLXJvdy12YXJpYW50KGluZm87IEBzdGF0ZS1pbmZvLWJnKTtcbi50YWJsZS1yb3ctdmFyaWFudCh3YXJuaW5nOyBAc3RhdGUtd2FybmluZy1iZyk7XG4udGFibGUtcm93LXZhcmlhbnQoZGFuZ2VyOyBAc3RhdGUtZGFuZ2VyLWJnKTtcblxuXG4vLyBSZXNwb25zaXZlIHRhYmxlc1xuLy9cbi8vIFdyYXAgeW91ciB0YWJsZXMgaW4gYC50YWJsZS1yZXNwb25zaXZlYCBhbmQgd2UnbGwgbWFrZSB0aGVtIG1vYmlsZSBmcmllbmRseVxuLy8gYnkgZW5hYmxpbmcgaG9yaXpvbnRhbCBzY3JvbGxpbmcuIE9ubHkgYXBwbGllcyA8NzY4cHguIEV2ZXJ5dGhpbmcgYWJvdmUgdGhhdFxuLy8gd2lsbCBkaXNwbGF5IG5vcm1hbGx5LlxuXG4udGFibGUtcmVzcG9uc2l2ZSB7XG4gIG92ZXJmbG93LXg6IGF1dG87XG4gIG1pbi1oZWlnaHQ6IDAuMDElOyAvLyBXb3JrYXJvdW5kIGZvciBJRTkgYnVnIChzZWUgaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2lzc3Vlcy8xNDgzNylcblxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiBAc2NyZWVuLXhzLW1heCkge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206IChAbGluZS1oZWlnaHQtY29tcHV0ZWQgKiAwLjc1KTtcbiAgICBvdmVyZmxvdy15OiBoaWRkZW47XG4gICAgLW1zLW92ZXJmbG93LXN0eWxlOiAtbXMtYXV0b2hpZGluZy1zY3JvbGxiYXI7XG4gICAgYm9yZGVyOiAxcHggc29saWQgQHRhYmxlLWJvcmRlci1jb2xvcjtcblxuICAgIC8vIFRpZ2h0ZW4gdXAgc3BhY2luZ1xuICAgID4gLnRhYmxlIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICAgIC8vIEVuc3VyZSB0aGUgY29udGVudCBkb2Vzbid0IHdyYXBcbiAgICAgID4gdGhlYWQsXG4gICAgICA+IHRib2R5LFxuICAgICAgPiB0Zm9vdCB7XG4gICAgICAgID4gdHIge1xuICAgICAgICAgID4gdGgsXG4gICAgICAgICAgPiB0ZCB7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNwZWNpYWwgb3ZlcnJpZGVzIGZvciB0aGUgYm9yZGVyZWQgdGFibGVzXG4gICAgPiAudGFibGUtYm9yZGVyZWQge1xuICAgICAgYm9yZGVyOiAwO1xuXG4gICAgICAvLyBOdWtlIHRoZSBhcHByb3ByaWF0ZSBib3JkZXJzIHNvIHRoYXQgdGhlIHBhcmVudCBjYW4gaGFuZGxlIHRoZW1cbiAgICAgID4gdGhlYWQsXG4gICAgICA+IHRib2R5LFxuICAgICAgPiB0Zm9vdCB7XG4gICAgICAgID4gdHIge1xuICAgICAgICAgID4gdGg6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgPiB0ZDpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogMDtcbiAgICAgICAgICB9XG4gICAgICAgICAgPiB0aDpsYXN0LWNoaWxkLFxuICAgICAgICAgID4gdGQ6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIE9ubHkgbnVrZSB0aGUgbGFzdCByb3cncyBib3R0b20tYm9yZGVyIGluIGB0Ym9keWAgYW5kIGB0Zm9vdGAgc2luY2VcbiAgICAgIC8vIGNoYW5jZXMgYXJlIHRoZXJlIHdpbGwgYmUgb25seSBvbmUgYHRyYCBpbiBhIGB0aGVhZGAgYW5kIHRoYXQgd291bGRcbiAgICAgIC8vIHJlbW92ZSB0aGUgYm9yZGVyIGFsdG9nZXRoZXIuXG4gICAgICA+IHRib2R5LFxuICAgICAgPiB0Zm9vdCB7XG4gICAgICAgID4gdHI6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgPiB0aCxcbiAgICAgICAgICA+IHRkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICB9XG4gIH1cbn1cbiIsIi8vIFRhYmxlc1xuXG4udGFibGUtcm93LXZhcmlhbnQoQHN0YXRlOyBAYmFja2dyb3VuZCkge1xuICAvLyBFeGFjdCBzZWxlY3RvcnMgYmVsb3cgcmVxdWlyZWQgdG8gb3ZlcnJpZGUgYC50YWJsZS1zdHJpcGVkYCBhbmQgcHJldmVudFxuICAvLyBpbmhlcml0YW5jZSB0byBuZXN0ZWQgdGFibGVzLlxuICAudGFibGUgPiB0aGVhZCA+IHRyLFxuICAudGFibGUgPiB0Ym9keSA+IHRyLFxuICAudGFibGUgPiB0Zm9vdCA+IHRyIHtcbiAgICA+IHRkLkB7c3RhdGV9LFxuICAgID4gdGguQHtzdGF0ZX0sXG4gICAgJi5Ae3N0YXRlfSA+IHRkLFxuICAgICYuQHtzdGF0ZX0gPiB0aCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAYmFja2dyb3VuZDtcbiAgICB9XG4gIH1cblxuICAvLyBIb3ZlciBzdGF0ZXMgZm9yIGAudGFibGUtaG92ZXJgXG4gIC8vIE5vdGU6IHRoaXMgaXMgbm90IGF2YWlsYWJsZSBmb3IgY2VsbHMgb3Igcm93cyB3aXRoaW4gYHRoZWFkYCBvciBgdGZvb3RgLlxuICAudGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyIHtcbiAgICA+IHRkLkB7c3RhdGV9OmhvdmVyLFxuICAgID4gdGguQHtzdGF0ZX06aG92ZXIsXG4gICAgJi5Ae3N0YXRlfTpob3ZlciA+IHRkLFxuICAgICY6aG92ZXIgPiAuQHtzdGF0ZX0sXG4gICAgJi5Ae3N0YXRlfTpob3ZlciA+IHRoIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbihAYmFja2dyb3VuZCwgNSUpO1xuICAgIH1cbiAgfVxufVxuIiwiLy9cbi8vIEZvcm1zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi8vIE5vcm1hbGl6ZSBub24tY29udHJvbHNcbi8vXG4vLyBSZXN0eWxlIGFuZCBiYXNlbGluZSBub24tY29udHJvbCBmb3JtIGVsZW1lbnRzLlxuXG5maWVsZHNldCB7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgYm9yZGVyOiAwO1xuICAvLyBDaHJvbWUgYW5kIEZpcmVmb3ggc2V0IGEgYG1pbi13aWR0aDogbWluLWNvbnRlbnQ7YCBvbiBmaWVsZHNldHMsXG4gIC8vIHNvIHdlIHJlc2V0IHRoYXQgdG8gZW5zdXJlIGl0IGJlaGF2ZXMgbW9yZSBsaWtlIGEgc3RhbmRhcmQgYmxvY2sgZWxlbWVudC5cbiAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9pc3N1ZXMvMTIzNTkuXG4gIG1pbi13aWR0aDogMDtcbn1cblxubGVnZW5kIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW4tYm90dG9tOiBAbGluZS1oZWlnaHQtY29tcHV0ZWQ7XG4gIGZvbnQtc2l6ZTogKEBmb250LXNpemUtYmFzZSAqIDEuNSk7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICBjb2xvcjogQGxlZ2VuZC1jb2xvcjtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgQGxlZ2VuZC1ib3JkZXItY29sb3I7XG59XG5cbmxhYmVsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXgtd2lkdGg6IDEwMCU7IC8vIEZvcmNlIElFOCB0byB3cmFwIGxvbmcgY29udGVudCAoc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9pc3N1ZXMvMTMxNDEpXG4gIG1hcmdpbi1ib3R0b206IDVweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cblxuLy8gTm9ybWFsaXplIGZvcm0gY29udHJvbHNcbi8vXG4vLyBXaGlsZSBtb3N0IG9mIG91ciBmb3JtIHN0eWxlcyByZXF1aXJlIGV4dHJhIGNsYXNzZXMsIHNvbWUgYmFzaWMgbm9ybWFsaXphdGlvblxuLy8gaXMgcmVxdWlyZWQgdG8gZW5zdXJlIG9wdGltdW0gZGlzcGxheSB3aXRoIG9yIHdpdGhvdXQgdGhvc2UgY2xhc3NlcyB0byBiZXR0ZXJcbi8vIGFkZHJlc3MgYnJvd3NlciBpbmNvbnNpc3RlbmNpZXMuXG5cbi8vIE92ZXJyaWRlIGNvbnRlbnQtYm94IGluIE5vcm1hbGl6ZSAoKiBpc24ndCBzcGVjaWZpYyBlbm91Z2gpXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLmJveC1zaXppbmcoYm9yZGVyLWJveCk7XG59XG5cbi8vIFBvc2l0aW9uIHJhZGlvcyBhbmQgY2hlY2tib3hlcyBiZXR0ZXJcbmlucHV0W3R5cGU9XCJyYWRpb1wiXSxcbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gIG1hcmdpbjogNHB4IDAgMDtcbiAgbWFyZ2luLXRvcDogMXB4IFxcOTsgLy8gSUU4LTlcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbn1cblxuaW5wdXRbdHlwZT1cImZpbGVcIl0ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLy8gTWFrZSByYW5nZSBpbnB1dHMgYmVoYXZlIGxpa2UgdGV4dHVhbCBmb3JtIGNvbnRyb2xzXG5pbnB1dFt0eXBlPVwicmFuZ2VcIl0ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi8vIE1ha2UgbXVsdGlwbGUgc2VsZWN0IGVsZW1lbnRzIGhlaWdodCBub3QgZml4ZWRcbnNlbGVjdFttdWx0aXBsZV0sXG5zZWxlY3Rbc2l6ZV0ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi8vIEZvY3VzIGZvciBmaWxlLCByYWRpbywgYW5kIGNoZWNrYm94XG5pbnB1dFt0eXBlPVwiZmlsZVwiXTpmb2N1cyxcbmlucHV0W3R5cGU9XCJyYWRpb1wiXTpmb2N1cyxcbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXTpmb2N1cyB7XG4gIC50YWItZm9jdXMoKTtcbn1cblxuLy8gQWRqdXN0IG91dHB1dCBlbGVtZW50XG5vdXRwdXQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZy10b3A6IChAcGFkZGluZy1iYXNlLXZlcnRpY2FsICsgMSk7XG4gIGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS1iYXNlO1xuICBsaW5lLWhlaWdodDogQGxpbmUtaGVpZ2h0LWJhc2U7XG4gIGNvbG9yOiBAaW5wdXQtY29sb3I7XG59XG5cblxuLy8gQ29tbW9uIGZvcm0gY29udHJvbHNcbi8vXG4vLyBTaGFyZWQgc2l6ZSBhbmQgdHlwZSByZXNldHMgZm9yIGZvcm0gY29udHJvbHMuIEFwcGx5IGAuZm9ybS1jb250cm9sYCB0byBhbnlcbi8vIG9mIHRoZSBmb2xsb3dpbmcgZm9ybSBjb250cm9sczpcbi8vXG4vLyBzZWxlY3Rcbi8vIHRleHRhcmVhXG4vLyBpbnB1dFt0eXBlPVwidGV4dFwiXVxuLy8gaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdXG4vLyBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl1cbi8vIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXVxuLy8gaW5wdXRbdHlwZT1cImRhdGVcIl1cbi8vIGlucHV0W3R5cGU9XCJtb250aFwiXVxuLy8gaW5wdXRbdHlwZT1cInRpbWVcIl1cbi8vIGlucHV0W3R5cGU9XCJ3ZWVrXCJdXG4vLyBpbnB1dFt0eXBlPVwibnVtYmVyXCJdXG4vLyBpbnB1dFt0eXBlPVwiZW1haWxcIl1cbi8vIGlucHV0W3R5cGU9XCJ1cmxcIl1cbi8vIGlucHV0W3R5cGU9XCJzZWFyY2hcIl1cbi8vIGlucHV0W3R5cGU9XCJ0ZWxcIl1cbi8vIGlucHV0W3R5cGU9XCJjb2xvclwiXVxuXG4uZm9ybS1jb250cm9sIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IEBpbnB1dC1oZWlnaHQtYmFzZTsgLy8gTWFrZSBpbnB1dHMgYXQgbGVhc3QgdGhlIGhlaWdodCBvZiB0aGVpciBidXR0b24gY291bnRlcnBhcnQgKGJhc2UgbGluZS1oZWlnaHQgKyBwYWRkaW5nICsgYm9yZGVyKVxuICBwYWRkaW5nOiBAcGFkZGluZy1iYXNlLXZlcnRpY2FsIEBwYWRkaW5nLWJhc2UtaG9yaXpvbnRhbDtcbiAgZm9udC1zaXplOiBAZm9udC1zaXplLWJhc2U7XG4gIGxpbmUtaGVpZ2h0OiBAbGluZS1oZWlnaHQtYmFzZTtcbiAgY29sb3I6IEBpbnB1dC1jb2xvcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGlucHV0LWJnO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lOyAvLyBSZXNldCB1bnVzdWFsIEZpcmVmb3gtb24tQW5kcm9pZCBkZWZhdWx0IHN0eWxlOyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcy9pc3N1ZXMvMjE0XG4gIGJvcmRlcjogMXB4IHNvbGlkIEBpbnB1dC1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6IEBpbnB1dC1ib3JkZXItcmFkaXVzOyAvLyBOb3RlOiBUaGlzIGhhcyBubyBlZmZlY3Qgb24gPHNlbGVjdD5zIGluIHNvbWUgYnJvd3NlcnMsIGR1ZSB0byB0aGUgbGltaXRlZCBzdHlsYWJpbGl0eSBvZiA8c2VsZWN0PnMgaW4gQ1NTLlxuICAuYm94LXNoYWRvdyhpbnNldCAwIDFweCAxcHggcmdiYSgwLDAsMCwuMDc1KSk7XG4gIC50cmFuc2l0aW9uKH5cImJvcmRlci1jb2xvciBlYXNlLWluLW91dCAuMTVzLCBib3gtc2hhZG93IGVhc2UtaW4tb3V0IC4xNXNcIik7XG5cbiAgLy8gQ3VzdG9taXplIHRoZSBgOmZvY3VzYCBzdGF0ZSB0byBpbWl0YXRlIG5hdGl2ZSBXZWJLaXQgc3R5bGVzLlxuICAuZm9ybS1jb250cm9sLWZvY3VzKCk7XG5cbiAgLy8gUGxhY2Vob2xkZXJcbiAgLnBsYWNlaG9sZGVyKCk7XG5cbiAgLy8gVW5zdHlsZSB0aGUgY2FyZXQgb24gYDxzZWxlY3Q+YHMgaW4gSUUxMCsuXG4gICY6Oi1tcy1leHBhbmQge1xuICAgIGJvcmRlcjogMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxuXG4gIC8vIERpc2FibGVkIGFuZCByZWFkLW9ubHkgaW5wdXRzXG4gIC8vXG4gIC8vIEhUTUw1IHNheXMgdGhhdCBjb250cm9scyB1bmRlciBhIGZpZWxkc2V0ID4gbGVnZW5kOmZpcnN0LWNoaWxkIHdvbid0IGJlXG4gIC8vIGRpc2FibGVkIGlmIHRoZSBmaWVsZHNldCBpcyBkaXNhYmxlZC4gRHVlIHRvIGltcGxlbWVudGF0aW9uIGRpZmZpY3VsdHksIHdlXG4gIC8vIGRvbid0IGhvbm9yIHRoYXQgZWRnZSBjYXNlOyB3ZSBzdHlsZSB0aGVtIGFzIGRpc2FibGVkIGFueXdheS5cbiAgJltkaXNhYmxlZF0sXG4gICZbcmVhZG9ubHldLFxuICBmaWVsZHNldFtkaXNhYmxlZF0gJiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGlucHV0LWJnLWRpc2FibGVkO1xuICAgIG9wYWNpdHk6IDE7IC8vIGlPUyBmaXggZm9yIHVucmVhZGFibGUgZGlzYWJsZWQgY29udGVudDsgc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9pc3N1ZXMvMTE2NTVcbiAgfVxuXG4gICZbZGlzYWJsZWRdLFxuICBmaWVsZHNldFtkaXNhYmxlZF0gJiB7XG4gICAgY3Vyc29yOiBAY3Vyc29yLWRpc2FibGVkO1xuICB9XG5cbiAgLy8gUmVzZXQgaGVpZ2h0IGZvciBgdGV4dGFyZWFgc1xuICB0ZXh0YXJlYSYge1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxufVxuXG5cbi8vIFNlYXJjaCBpbnB1dHMgaW4gaU9TXG4vL1xuLy8gVGhpcyBvdmVycmlkZXMgdGhlIGV4dHJhIHJvdW5kZWQgY29ybmVycyBvbiBzZWFyY2ggaW5wdXRzIGluIGlPUyBzbyB0aGF0IG91clxuLy8gYC5mb3JtLWNvbnRyb2xgIGNsYXNzIGNhbiBwcm9wZXJseSBzdHlsZSB0aGVtLiBOb3RlIHRoYXQgdGhpcyBjYW5ub3Qgc2ltcGx5XG4vLyBiZSBhZGRlZCB0byBgLmZvcm0tY29udHJvbGAgYXMgaXQncyBub3Qgc3BlY2lmaWMgZW5vdWdoLiBGb3IgZGV0YWlscywgc2VlXG4vLyBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvaXNzdWVzLzExNTg2LlxuXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG5cbi8vIFNwZWNpYWwgc3R5bGVzIGZvciBpT1MgdGVtcG9yYWwgaW5wdXRzXG4vL1xuLy8gSW4gTW9iaWxlIFNhZmFyaSwgc2V0dGluZyBgZGlzcGxheTogYmxvY2tgIG9uIHRlbXBvcmFsIGlucHV0cyBjYXVzZXMgdGhlXG4vLyB0ZXh0IHdpdGhpbiB0aGUgaW5wdXQgdG8gYmVjb21lIHZlcnRpY2FsbHkgbWlzYWxpZ25lZC4gQXMgYSB3b3JrYXJvdW5kLCB3ZVxuLy8gc2V0IGEgcGl4ZWwgbGluZS1oZWlnaHQgdGhhdCBtYXRjaGVzIHRoZSBnaXZlbiBoZWlnaHQgb2YgdGhlIGlucHV0LCBidXQgb25seVxuLy8gZm9yIFNhZmFyaS4gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk4NDhcbi8vXG4vLyBOb3RlIHRoYXQgYXMgb2YgOS4zLCBpT1MgZG9lc24ndCBzdXBwb3J0IGB3ZWVrYC5cblxuQG1lZGlhIHNjcmVlbiBhbmQgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMCkge1xuICBpbnB1dFt0eXBlPVwiZGF0ZVwiXSxcbiAgaW5wdXRbdHlwZT1cInRpbWVcIl0sXG4gIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXSxcbiAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdIHtcbiAgICAmLmZvcm0tY29udHJvbCB7XG4gICAgICBsaW5lLWhlaWdodDogQGlucHV0LWhlaWdodC1iYXNlO1xuICAgIH1cblxuICAgICYuaW5wdXQtc20sXG4gICAgLmlucHV0LWdyb3VwLXNtICYge1xuICAgICAgbGluZS1oZWlnaHQ6IEBpbnB1dC1oZWlnaHQtc21hbGw7XG4gICAgfVxuXG4gICAgJi5pbnB1dC1sZyxcbiAgICAuaW5wdXQtZ3JvdXAtbGcgJiB7XG4gICAgICBsaW5lLWhlaWdodDogQGlucHV0LWhlaWdodC1sYXJnZTtcbiAgICB9XG4gIH1cbn1cblxuXG4vLyBGb3JtIGdyb3Vwc1xuLy9cbi8vIERlc2lnbmVkIHRvIGhlbHAgd2l0aCB0aGUgb3JnYW5pemF0aW9uIGFuZCBzcGFjaW5nIG9mIHZlcnRpY2FsIGZvcm1zLiBGb3Jcbi8vIGhvcml6b250YWwgZm9ybXMsIHVzZSB0aGUgcHJlZGVmaW5lZCBncmlkIGNsYXNzZXMuXG5cbi5mb3JtLWdyb3VwIHtcbiAgbWFyZ2luLWJvdHRvbTogQGZvcm0tZ3JvdXAtbWFyZ2luLWJvdHRvbTtcbn1cblxuXG4vLyBDaGVja2JveGVzIGFuZCByYWRpb3Ncbi8vXG4vLyBJbmRlbnQgdGhlIGxhYmVscyB0byBwb3NpdGlvbiByYWRpb3MvY2hlY2tib3hlcyBhcyBoYW5naW5nIGNvbnRyb2xzLlxuXG4ucmFkaW8sXG4uY2hlY2tib3gge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tdG9wOiAxMHB4O1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuXG4gIGxhYmVsIHtcbiAgICBtaW4taGVpZ2h0OiBAbGluZS1oZWlnaHQtY29tcHV0ZWQ7IC8vIEVuc3VyZSB0aGUgaW5wdXQgZG9lc24ndCBqdW1wIHdoZW4gdGhlcmUgaXMgbm8gdGV4dFxuICAgIHBhZGRpbmctbGVmdDogMjBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG59XG4ucmFkaW8gaW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuLnJhZGlvLWlubGluZSBpbnB1dFt0eXBlPVwicmFkaW9cIl0sXG4uY2hlY2tib3ggaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuLmNoZWNrYm94LWlubGluZSBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG1hcmdpbi1sZWZ0OiAtMjBweDtcbiAgbWFyZ2luLXRvcDogNHB4IFxcOTtcbn1cblxuLnJhZGlvICsgLnJhZGlvLFxuLmNoZWNrYm94ICsgLmNoZWNrYm94IHtcbiAgbWFyZ2luLXRvcDogLTVweDsgLy8gTW92ZSB1cCBzaWJsaW5nIHJhZGlvcyBvciBjaGVja2JveGVzIGZvciB0aWdodGVyIHNwYWNpbmdcbn1cblxuLy8gUmFkaW9zIGFuZCBjaGVja2JveGVzIG9uIHNhbWUgbGluZVxuLnJhZGlvLWlubGluZSxcbi5jaGVja2JveC1pbmxpbmUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ucmFkaW8taW5saW5lICsgLnJhZGlvLWlubGluZSxcbi5jaGVja2JveC1pbmxpbmUgKyAuY2hlY2tib3gtaW5saW5lIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7IC8vIHNwYWNlIG91dCBjb25zZWN1dGl2ZSBpbmxpbmUgY29udHJvbHNcbn1cblxuLy8gQXBwbHkgc2FtZSBkaXNhYmxlZCBjdXJzb3IgdHdlYWsgYXMgZm9yIGlucHV0c1xuLy8gU29tZSBzcGVjaWFsIGNhcmUgaXMgbmVlZGVkIGJlY2F1c2UgPGxhYmVsPnMgZG9uJ3QgaW5oZXJpdCB0aGVpciBwYXJlbnQncyBgY3Vyc29yYC5cbi8vXG4vLyBOb3RlOiBOZWl0aGVyIHJhZGlvcyBub3IgY2hlY2tib3hlcyBjYW4gYmUgcmVhZG9ubHkuXG5pbnB1dFt0eXBlPVwicmFkaW9cIl0sXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAmW2Rpc2FibGVkXSxcbiAgJi5kaXNhYmxlZCxcbiAgZmllbGRzZXRbZGlzYWJsZWRdICYge1xuICAgIGN1cnNvcjogQGN1cnNvci1kaXNhYmxlZDtcbiAgfVxufVxuLy8gVGhlc2UgY2xhc3NlcyBhcmUgdXNlZCBkaXJlY3RseSBvbiA8bGFiZWw+c1xuLnJhZGlvLWlubGluZSxcbi5jaGVja2JveC1pbmxpbmUge1xuICAmLmRpc2FibGVkLFxuICBmaWVsZHNldFtkaXNhYmxlZF0gJiB7XG4gICAgY3Vyc29yOiBAY3Vyc29yLWRpc2FibGVkO1xuICB9XG59XG4vLyBUaGVzZSBjbGFzc2VzIGFyZSB1c2VkIG9uIGVsZW1lbnRzIHdpdGggPGxhYmVsPiBkZXNjZW5kYW50c1xuLnJhZGlvLFxuLmNoZWNrYm94IHtcbiAgJi5kaXNhYmxlZCxcbiAgZmllbGRzZXRbZGlzYWJsZWRdICYge1xuICAgIGxhYmVsIHtcbiAgICAgIGN1cnNvcjogQGN1cnNvci1kaXNhYmxlZDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLyBTdGF0aWMgZm9ybSBjb250cm9sIHRleHRcbi8vXG4vLyBBcHBseSBjbGFzcyB0byBhIGBwYCBlbGVtZW50IHRvIG1ha2UgYW55IHN0cmluZyBvZiB0ZXh0IGFsaWduIHdpdGggbGFiZWxzIGluXG4vLyBhIGhvcml6b250YWwgZm9ybSBsYXlvdXQuXG5cbi5mb3JtLWNvbnRyb2wtc3RhdGljIHtcbiAgLy8gU2l6ZSBpdCBhcHByb3ByaWF0ZWx5IG5leHQgdG8gcmVhbCBmb3JtIGNvbnRyb2xzXG4gIHBhZGRpbmctdG9wOiAoQHBhZGRpbmctYmFzZS12ZXJ0aWNhbCArIDEpO1xuICBwYWRkaW5nLWJvdHRvbTogKEBwYWRkaW5nLWJhc2UtdmVydGljYWwgKyAxKTtcbiAgLy8gUmVtb3ZlIGRlZmF1bHQgbWFyZ2luIGZyb20gYHBgXG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIG1pbi1oZWlnaHQ6IChAbGluZS1oZWlnaHQtY29tcHV0ZWQgKyBAZm9udC1zaXplLWJhc2UpO1xuXG4gICYuaW5wdXQtbGcsXG4gICYuaW5wdXQtc20ge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICB9XG59XG5cblxuLy8gRm9ybSBjb250cm9sIHNpemluZ1xuLy9cbi8vIEJ1aWxkIG9uIGAuZm9ybS1jb250cm9sYCB3aXRoIG1vZGlmaWVyIGNsYXNzZXMgdG8gZGVjcmVhc2Ugb3IgaW5jcmVhc2UgdGhlXG4vLyBoZWlnaHQgYW5kIGZvbnQtc2l6ZSBvZiBmb3JtIGNvbnRyb2xzLlxuLy9cbi8vIFRoZSBgLmZvcm0tZ3JvdXAtKiBmb3JtLWNvbnRyb2xgIHZhcmlhdGlvbnMgYXJlIHNhZGx5IGR1cGxpY2F0ZWQgdG8gYXZvaWQgdGhlXG4vLyBpc3N1ZSBkb2N1bWVudGVkIGluIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9pc3N1ZXMvMTUwNzQuXG5cbi5pbnB1dC1zbSB7XG4gIC5pbnB1dC1zaXplKEBpbnB1dC1oZWlnaHQtc21hbGw7IEBwYWRkaW5nLXNtYWxsLXZlcnRpY2FsOyBAcGFkZGluZy1zbWFsbC1ob3Jpem9udGFsOyBAZm9udC1zaXplLXNtYWxsOyBAbGluZS1oZWlnaHQtc21hbGw7IEBpbnB1dC1ib3JkZXItcmFkaXVzLXNtYWxsKTtcbn1cbi5mb3JtLWdyb3VwLXNtIHtcbiAgLmZvcm0tY29udHJvbCB7XG4gICAgaGVpZ2h0OiBAaW5wdXQtaGVpZ2h0LXNtYWxsO1xuICAgIHBhZGRpbmc6IEBwYWRkaW5nLXNtYWxsLXZlcnRpY2FsIEBwYWRkaW5nLXNtYWxsLWhvcml6b250YWw7XG4gICAgZm9udC1zaXplOiBAZm9udC1zaXplLXNtYWxsO1xuICAgIGxpbmUtaGVpZ2h0OiBAbGluZS1oZWlnaHQtc21hbGw7XG4gICAgYm9yZGVyLXJhZGl1czogQGlucHV0LWJvcmRlci1yYWRpdXMtc21hbGw7XG4gIH1cbiAgc2VsZWN0LmZvcm0tY29udHJvbCB7XG4gICAgaGVpZ2h0OiBAaW5wdXQtaGVpZ2h0LXNtYWxsO1xuICAgIGxpbmUtaGVpZ2h0OiBAaW5wdXQtaGVpZ2h0LXNtYWxsO1xuICB9XG4gIHRleHRhcmVhLmZvcm0tY29udHJvbCxcbiAgc2VsZWN0W211bHRpcGxlXS5mb3JtLWNvbnRyb2wge1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxuICAuZm9ybS1jb250cm9sLXN0YXRpYyB7XG4gICAgaGVpZ2h0OiBAaW5wdXQtaGVpZ2h0LXNtYWxsO1xuICAgIG1pbi1oZWlnaHQ6IChAbGluZS1oZWlnaHQtY29tcHV0ZWQgKyBAZm9udC1zaXplLXNtYWxsKTtcbiAgICBwYWRkaW5nOiAoQHBhZGRpbmctc21hbGwtdmVydGljYWwgKyAxKSBAcGFkZGluZy1zbWFsbC1ob3Jpem9udGFsO1xuICAgIGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS1zbWFsbDtcbiAgICBsaW5lLWhlaWdodDogQGxpbmUtaGVpZ2h0LXNtYWxsO1xuICB9XG59XG5cbi5pbnB1dC1sZyB7XG4gIC5pbnB1dC1zaXplKEBpbnB1dC1oZWlnaHQtbGFyZ2U7IEBwYWRkaW5nLWxhcmdlLXZlcnRpY2FsOyBAcGFkZGluZy1sYXJnZS1ob3Jpem9udGFsOyBAZm9udC1zaXplLWxhcmdlOyBAbGluZS1oZWlnaHQtbGFyZ2U7IEBpbnB1dC1ib3JkZXItcmFkaXVzLWxhcmdlKTtcbn1cbi5mb3JtLWdyb3VwLWxnIHtcbiAgLmZvcm0tY29udHJvbCB7XG4gICAgaGVpZ2h0OiBAaW5wdXQtaGVpZ2h0LWxhcmdlO1xuICAgIHBhZGRpbmc6IEBwYWRkaW5nLWxhcmdlLXZlcnRpY2FsIEBwYWRkaW5nLWxhcmdlLWhvcml6b250YWw7XG4gICAgZm9udC1zaXplOiBAZm9udC1zaXplLWxhcmdlO1xuICAgIGxpbmUtaGVpZ2h0OiBAbGluZS1oZWlnaHQtbGFyZ2U7XG4gICAgYm9yZGVyLXJhZGl1czogQGlucHV0LWJvcmRlci1yYWRpdXMtbGFyZ2U7XG4gIH1cbiAgc2VsZWN0LmZvcm0tY29udHJvbCB7XG4gICAgaGVpZ2h0OiBAaW5wdXQtaGVpZ2h0LWxhcmdlO1xuICAgIGxpbmUtaGVpZ2h0OiBAaW5wdXQtaGVpZ2h0LWxhcmdlO1xuICB9XG4gIHRleHRhcmVhLmZvcm0tY29udHJvbCxcbiAgc2VsZWN0W211bHRpcGxlXS5mb3JtLWNvbnRyb2wge1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxuICAuZm9ybS1jb250cm9sLXN0YXRpYyB7XG4gICAgaGVpZ2h0OiBAaW5wdXQtaGVpZ2h0LWxhcmdlO1xuICAgIG1pbi1oZWlnaHQ6IChAbGluZS1oZWlnaHQtY29tcHV0ZWQgKyBAZm9udC1zaXplLWxhcmdlKTtcbiAgICBwYWRkaW5nOiAoQHBhZGRpbmctbGFyZ2UtdmVydGljYWwgKyAxKSBAcGFkZGluZy1sYXJnZS1ob3Jpem9udGFsO1xuICAgIGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS1sYXJnZTtcbiAgICBsaW5lLWhlaWdodDogQGxpbmUtaGVpZ2h0LWxhcmdlO1xuICB9XG59XG5cblxuLy8gRm9ybSBjb250cm9sIGZlZWRiYWNrIHN0YXRlc1xuLy9cbi8vIEFwcGx5IGNvbnRleHR1YWwgYW5kIHNlbWFudGljIHN0YXRlcyB0byBpbmRpdmlkdWFsIGZvcm0gY29udHJvbHMuXG5cbi5oYXMtZmVlZGJhY2sge1xuICAvLyBFbmFibGUgYWJzb2x1dGUgcG9zaXRpb25pbmdcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIC8vIEVuc3VyZSBpY29ucyBkb24ndCBvdmVybGFwIHRleHRcbiAgLmZvcm0tY29udHJvbCB7XG4gICAgcGFkZGluZy1yaWdodDogKEBpbnB1dC1oZWlnaHQtYmFzZSAqIDEuMjUpO1xuICB9XG59XG4vLyBGZWVkYmFjayBpY29uIChyZXF1aXJlcyAuZ2x5cGhpY29uIGNsYXNzZXMpXG4uZm9ybS1jb250cm9sLWZlZWRiYWNrIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICB6LWluZGV4OiAyOyAvLyBFbnN1cmUgaWNvbiBpcyBhYm92ZSBpbnB1dCBncm91cHNcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiBAaW5wdXQtaGVpZ2h0LWJhc2U7XG4gIGhlaWdodDogQGlucHV0LWhlaWdodC1iYXNlO1xuICBsaW5lLWhlaWdodDogQGlucHV0LWhlaWdodC1iYXNlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLmlucHV0LWxnICsgLmZvcm0tY29udHJvbC1mZWVkYmFjayxcbi5pbnB1dC1ncm91cC1sZyArIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2ssXG4uZm9ybS1ncm91cC1sZyAuZm9ybS1jb250cm9sICsgLmZvcm0tY29udHJvbC1mZWVkYmFjayB7XG4gIHdpZHRoOiBAaW5wdXQtaGVpZ2h0LWxhcmdlO1xuICBoZWlnaHQ6IEBpbnB1dC1oZWlnaHQtbGFyZ2U7XG4gIGxpbmUtaGVpZ2h0OiBAaW5wdXQtaGVpZ2h0LWxhcmdlO1xufVxuLmlucHV0LXNtICsgLmZvcm0tY29udHJvbC1mZWVkYmFjayxcbi5pbnB1dC1ncm91cC1zbSArIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2ssXG4uZm9ybS1ncm91cC1zbSAuZm9ybS1jb250cm9sICsgLmZvcm0tY29udHJvbC1mZWVkYmFjayB7XG4gIHdpZHRoOiBAaW5wdXQtaGVpZ2h0LXNtYWxsO1xuICBoZWlnaHQ6IEBpbnB1dC1oZWlnaHQtc21hbGw7XG4gIGxpbmUtaGVpZ2h0OiBAaW5wdXQtaGVpZ2h0LXNtYWxsO1xufVxuXG4vLyBGZWVkYmFjayBzdGF0ZXNcbi5oYXMtc3VjY2VzcyB7XG4gIC5mb3JtLWNvbnRyb2wtdmFsaWRhdGlvbihAc3RhdGUtc3VjY2Vzcy10ZXh0OyBAc3RhdGUtc3VjY2Vzcy10ZXh0OyBAc3RhdGUtc3VjY2Vzcy1iZyk7XG59XG4uaGFzLXdhcm5pbmcge1xuICAuZm9ybS1jb250cm9sLXZhbGlkYXRpb24oQHN0YXRlLXdhcm5pbmctdGV4dDsgQHN0YXRlLXdhcm5pbmctdGV4dDsgQHN0YXRlLXdhcm5pbmctYmcpO1xufVxuLmhhcy1lcnJvciB7XG4gIC5mb3JtLWNvbnRyb2wtdmFsaWRhdGlvbihAc3RhdGUtZGFuZ2VyLXRleHQ7IEBzdGF0ZS1kYW5nZXItdGV4dDsgQHN0YXRlLWRhbmdlci1iZyk7XG59XG5cbi8vIFJlcG9zaXRpb24gZmVlZGJhY2sgaWNvbiBpZiBpbnB1dCBoYXMgdmlzaWJsZSBsYWJlbCBhYm92ZVxuLmhhcy1mZWVkYmFjayBsYWJlbCB7XG5cbiAgJiB+IC5mb3JtLWNvbnRyb2wtZmVlZGJhY2sge1xuICAgIHRvcDogKEBsaW5lLWhlaWdodC1jb21wdXRlZCArIDUpOyAvLyBIZWlnaHQgb2YgdGhlIGBsYWJlbGAgYW5kIGl0cyBtYXJnaW5cbiAgfVxuICAmLnNyLW9ubHkgfiAuZm9ybS1jb250cm9sLWZlZWRiYWNrIHtcbiAgICB0b3A6IDA7XG4gIH1cbn1cblxuXG4vLyBIZWxwIHRleHRcbi8vXG4vLyBBcHBseSB0byBhbnkgZWxlbWVudCB5b3Ugd2lzaCB0byBjcmVhdGUgbGlnaHQgdGV4dCBmb3IgcGxhY2VtZW50IGltbWVkaWF0ZWx5XG4vLyBiZWxvdyBhIGZvcm0gY29udHJvbC4gVXNlIGZvciBnZW5lcmFsIGhlbHAsIGZvcm1hdHRpbmcsIG9yIGluc3RydWN0aW9uYWwgdGV4dC5cblxuLmhlbHAtYmxvY2sge1xuICBkaXNwbGF5OiBibG9jazsgLy8gYWNjb3VudCBmb3IgYW55IGVsZW1lbnQgdXNpbmcgaGVscC1ibG9ja1xuICBtYXJnaW4tdG9wOiA1cHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIGNvbG9yOiBsaWdodGVuKEB0ZXh0LWNvbG9yLCAyNSUpOyAvLyBsaWdodGVuIHRoZSB0ZXh0IHNvbWUgZm9yIGNvbnRyYXN0XG59XG5cblxuLy8gSW5saW5lIGZvcm1zXG4vL1xuLy8gTWFrZSBmb3JtcyBhcHBlYXIgaW5saW5lKC1ibG9jaykgYnkgYWRkaW5nIHRoZSBgLmZvcm0taW5saW5lYCBjbGFzcy4gSW5saW5lXG4vLyBmb3JtcyBiZWdpbiBzdGFja2VkIG9uIGV4dHJhIHNtYWxsIChtb2JpbGUpIGRldmljZXMgYW5kIHRoZW4gZ28gaW5saW5lIHdoZW5cbi8vIHZpZXdwb3J0cyByZWFjaCA8NzY4cHguXG4vL1xuLy8gUmVxdWlyZXMgd3JhcHBpbmcgaW5wdXRzIGFuZCBsYWJlbHMgd2l0aCBgLmZvcm0tZ3JvdXBgIGZvciBwcm9wZXIgZGlzcGxheSBvZlxuLy8gZGVmYXVsdCBIVE1MIGZvcm0gY29udHJvbHMgYW5kIG91ciBjdXN0b20gZm9ybSBjb250cm9scyAoZS5nLiwgaW5wdXQgZ3JvdXBzKS5cbi8vXG4vLyBIZWFkcyB1cCEgVGhpcyBpcyBtaXhpbi1lZCBpbnRvIGAubmF2YmFyLWZvcm1gIGluIG5hdmJhcnMubGVzcy5cblxuLmZvcm0taW5saW5lIHtcblxuICAvLyBLaWNrIGluIHRoZSBpbmxpbmVcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tc20tbWluKSB7XG4gICAgLy8gSW5saW5lLWJsb2NrIGFsbCB0aGUgdGhpbmdzIGZvciBcImlubGluZVwiXG4gICAgLmZvcm0tZ3JvdXAge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuXG4gICAgLy8gSW4gbmF2YmFyLWZvcm0sIGFsbG93IGZvbGtzIHRvICpub3QqIHVzZSBgLmZvcm0tZ3JvdXBgXG4gICAgLmZvcm0tY29udHJvbCB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB3aWR0aDogYXV0bzsgLy8gUHJldmVudCBsYWJlbHMgZnJvbSBzdGFja2luZyBhYm92ZSBpbnB1dHMgaW4gYC5mb3JtLWdyb3VwYFxuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG5cbiAgICAvLyBNYWtlIHN0YXRpYyBjb250cm9scyBiZWhhdmUgbGlrZSByZWd1bGFyIG9uZXNcbiAgICAuZm9ybS1jb250cm9sLXN0YXRpYyB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxuXG4gICAgLmlucHV0LWdyb3VwIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS10YWJsZTtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgIC5pbnB1dC1ncm91cC1hZGRvbixcbiAgICAgIC5pbnB1dC1ncm91cC1idG4sXG4gICAgICAuZm9ybS1jb250cm9sIHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gSW5wdXQgZ3JvdXBzIG5lZWQgdGhhdCAxMDAlIHdpZHRoIHRob3VnaFxuICAgIC5pbnB1dC1ncm91cCA+IC5mb3JtLWNvbnRyb2wge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLmNvbnRyb2wtbGFiZWwge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuXG4gICAgLy8gUmVtb3ZlIGRlZmF1bHQgbWFyZ2luIG9uIHJhZGlvcy9jaGVja2JveGVzIHRoYXQgd2VyZSB1c2VkIGZvciBzdGFja2luZywgYW5kXG4gICAgLy8gdGhlbiB1bmRvIHRoZSBmbG9hdGluZyBvZiByYWRpb3MgYW5kIGNoZWNrYm94ZXMgdG8gbWF0Y2guXG4gICAgLnJhZGlvLFxuICAgIC5jaGVja2JveCB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgIGxhYmVsIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgfVxuICAgIH1cbiAgICAucmFkaW8gaW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuICAgIC5jaGVja2JveCBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgfVxuXG4gICAgLy8gUmUtb3ZlcnJpZGUgdGhlIGZlZWRiYWNrIGljb24uXG4gICAgLmhhcy1mZWVkYmFjayAuZm9ybS1jb250cm9sLWZlZWRiYWNrIHtcbiAgICAgIHRvcDogMDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLyBIb3Jpem9udGFsIGZvcm1zXG4vL1xuLy8gSG9yaXpvbnRhbCBmb3JtcyBhcmUgYnVpbHQgb24gZ3JpZCBjbGFzc2VzIGFuZCBhbGxvdyB5b3UgdG8gY3JlYXRlIGZvcm1zIHdpdGhcbi8vIGxhYmVscyBvbiB0aGUgbGVmdCBhbmQgaW5wdXRzIG9uIHRoZSByaWdodC5cblxuLmZvcm0taG9yaXpvbnRhbCB7XG5cbiAgLy8gQ29uc2lzdGVudCB2ZXJ0aWNhbCBhbGlnbm1lbnQgb2YgcmFkaW9zIGFuZCBjaGVja2JveGVzXG4gIC8vXG4gIC8vIExhYmVscyBhbHNvIGdldCBzb21lIHJlc2V0IHN0eWxlcywgYnV0IHRoYXQgaXMgc2NvcGVkIHRvIGEgbWVkaWEgcXVlcnkgYmVsb3cuXG4gIC5yYWRpbyxcbiAgLmNoZWNrYm94LFxuICAucmFkaW8taW5saW5lLFxuICAuY2hlY2tib3gtaW5saW5lIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgcGFkZGluZy10b3A6IChAcGFkZGluZy1iYXNlLXZlcnRpY2FsICsgMSk7IC8vIERlZmF1bHQgcGFkZGluZyBwbHVzIGEgYm9yZGVyXG4gIH1cbiAgLy8gQWNjb3VudCBmb3IgcGFkZGluZyB3ZSdyZSBhZGRpbmcgdG8gZW5zdXJlIHRoZSBhbGlnbm1lbnQgYW5kIG9mIGhlbHAgdGV4dFxuICAvLyBhbmQgb3RoZXIgY29udGVudCBiZWxvdyBpdGVtc1xuICAucmFkaW8sXG4gIC5jaGVja2JveCB7XG4gICAgbWluLWhlaWdodDogKEBsaW5lLWhlaWdodC1jb21wdXRlZCArIChAcGFkZGluZy1iYXNlLXZlcnRpY2FsICsgMSkpO1xuICB9XG5cbiAgLy8gTWFrZSBmb3JtIGdyb3VwcyBiZWhhdmUgbGlrZSByb3dzXG4gIC5mb3JtLWdyb3VwIHtcbiAgICAubWFrZS1yb3coKTtcbiAgfVxuXG4gIC8vIFJlc2V0IHNwYWNpbmcgYW5kIHJpZ2h0IGFsaWduIGxhYmVscywgYnV0IHNjb3BlIHRvIG1lZGlhIHF1ZXJpZXMgc28gdGhhdFxuICAvLyBsYWJlbHMgb24gbmFycm93IHZpZXdwb3J0cyBzdGFjayB0aGUgc2FtZSBhcyBhIGRlZmF1bHQgZm9ybSBleGFtcGxlLlxuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1zbS1taW4pIHtcbiAgICAuY29udHJvbC1sYWJlbCB7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICBwYWRkaW5nLXRvcDogKEBwYWRkaW5nLWJhc2UtdmVydGljYWwgKyAxKTsgLy8gRGVmYXVsdCBwYWRkaW5nIHBsdXMgYSBib3JkZXJcbiAgICB9XG4gIH1cblxuICAvLyBWYWxpZGF0aW9uIHN0YXRlc1xuICAvL1xuICAvLyBSZXBvc2l0aW9uIHRoZSBpY29uIGJlY2F1c2UgaXQncyBub3cgd2l0aGluIGEgZ3JpZCBjb2x1bW4gYW5kIGNvbHVtbnMgaGF2ZVxuICAvLyBgcG9zaXRpb246IHJlbGF0aXZlO2Agb24gdGhlbS4gQWxzbyBhY2NvdW50cyBmb3IgdGhlIGdyaWQgZ3V0dGVyIHBhZGRpbmcuXG4gIC5oYXMtZmVlZGJhY2sgLmZvcm0tY29udHJvbC1mZWVkYmFjayB7XG4gICAgcmlnaHQ6IGZsb29yKChAZ3JpZC1ndXR0ZXItd2lkdGggLyAyKSk7XG4gIH1cblxuICAvLyBGb3JtIGdyb3VwIHNpemVzXG4gIC8vXG4gIC8vIFF1aWNrIHV0aWxpdHkgY2xhc3MgZm9yIGFwcGx5aW5nIGAuaW5wdXQtbGdgIGFuZCBgLmlucHV0LXNtYCBzdHlsZXMgdG8gdGhlXG4gIC8vIGlucHV0cyBhbmQgbGFiZWxzIHdpdGhpbiBhIGAuZm9ybS1ncm91cGAuXG4gIC5mb3JtLWdyb3VwLWxnIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1zbS1taW4pIHtcbiAgICAgIC5jb250cm9sLWxhYmVsIHtcbiAgICAgICAgcGFkZGluZy10b3A6IChAcGFkZGluZy1sYXJnZS12ZXJ0aWNhbCArIDEpO1xuICAgICAgICBmb250LXNpemU6IEBmb250LXNpemUtbGFyZ2U7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC5mb3JtLWdyb3VwLXNtIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1zbS1taW4pIHtcbiAgICAgIC5jb250cm9sLWxhYmVsIHtcbiAgICAgICAgcGFkZGluZy10b3A6IChAcGFkZGluZy1zbWFsbC12ZXJ0aWNhbCArIDEpO1xuICAgICAgICBmb250LXNpemU6IEBmb250LXNpemUtc21hbGw7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3JtIHZhbGlkYXRpb24gc3RhdGVzXG4vL1xuLy8gVXNlZCBpbiBmb3Jtcy5sZXNzIHRvIGdlbmVyYXRlIHRoZSBmb3JtIHZhbGlkYXRpb24gQ1NTIGZvciB3YXJuaW5ncywgZXJyb3JzLFxuLy8gYW5kIHN1Y2Nlc3Nlcy5cblxuLmZvcm0tY29udHJvbC12YWxpZGF0aW9uKEB0ZXh0LWNvbG9yOiAjNTU1OyBAYm9yZGVyLWNvbG9yOiAjY2NjOyBAYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNSkge1xuICAvLyBDb2xvciB0aGUgbGFiZWwgYW5kIGhlbHAgdGV4dFxuICAuaGVscC1ibG9jayxcbiAgLmNvbnRyb2wtbGFiZWwsXG4gIC5yYWRpbyxcbiAgLmNoZWNrYm94LFxuICAucmFkaW8taW5saW5lLFxuICAuY2hlY2tib3gtaW5saW5lLFxuICAmLnJhZGlvIGxhYmVsLFxuICAmLmNoZWNrYm94IGxhYmVsLFxuICAmLnJhZGlvLWlubGluZSBsYWJlbCxcbiAgJi5jaGVja2JveC1pbmxpbmUgbGFiZWwgIHtcbiAgICBjb2xvcjogQHRleHQtY29sb3I7XG4gIH1cbiAgLy8gU2V0IHRoZSBib3JkZXIgYW5kIGJveCBzaGFkb3cgb24gc3BlY2lmaWMgaW5wdXRzIHRvIG1hdGNoXG4gIC5mb3JtLWNvbnRyb2wge1xuICAgIGJvcmRlci1jb2xvcjogQGJvcmRlci1jb2xvcjtcbiAgICAuYm94LXNoYWRvdyhpbnNldCAwIDFweCAxcHggcmdiYSgwLDAsMCwuMDc1KSk7IC8vIFJlZGVjbGFyZSBzbyB0cmFuc2l0aW9ucyB3b3JrXG4gICAgJjpmb2N1cyB7XG4gICAgICBib3JkZXItY29sb3I6IGRhcmtlbihAYm9yZGVyLWNvbG9yLCAxMCUpO1xuICAgICAgQHNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwwLDAsLjA3NSksIDAgMCA2cHggbGlnaHRlbihAYm9yZGVyLWNvbG9yLCAyMCUpO1xuICAgICAgLmJveC1zaGFkb3coQHNoYWRvdyk7XG4gICAgfVxuICB9XG4gIC8vIFNldCB2YWxpZGF0aW9uIHN0YXRlcyBhbHNvIGZvciBhZGRvbnNcbiAgLmlucHV0LWdyb3VwLWFkZG9uIHtcbiAgICBjb2xvcjogQHRleHQtY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiBAYm9yZGVyLWNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBiYWNrZ3JvdW5kLWNvbG9yO1xuICB9XG4gIC8vIE9wdGlvbmFsIGZlZWRiYWNrIGljb25cbiAgLmZvcm0tY29udHJvbC1mZWVkYmFjayB7XG4gICAgY29sb3I6IEB0ZXh0LWNvbG9yO1xuICB9XG59XG5cblxuLy8gRm9ybSBjb250cm9sIGZvY3VzIHN0YXRlXG4vL1xuLy8gR2VuZXJhdGUgYSBjdXN0b21pemVkIGZvY3VzIHN0YXRlIGFuZCBmb3IgYW55IGlucHV0IHdpdGggdGhlIHNwZWNpZmllZCBjb2xvcixcbi8vIHdoaWNoIGRlZmF1bHRzIHRvIHRoZSBgQGlucHV0LWJvcmRlci1mb2N1c2AgdmFyaWFibGUuXG4vL1xuLy8gV2UgaGlnaGx5IGVuY291cmFnZSB5b3UgdG8gbm90IGN1c3RvbWl6ZSB0aGUgZGVmYXVsdCB2YWx1ZSwgYnV0IGluc3RlYWQgdXNlXG4vLyB0aGlzIHRvIHR3ZWFrIGNvbG9ycyBvbiBhbiBhcy1uZWVkZWQgYmFzaXMuIFRoaXMgYWVzdGhldGljIGNoYW5nZSBpcyBiYXNlZCBvblxuLy8gV2ViS2l0J3MgZGVmYXVsdCBzdHlsZXMsIGJ1dCBhcHBsaWNhYmxlIHRvIGEgd2lkZXIgcmFuZ2Ugb2YgYnJvd3NlcnMuIEl0c1xuLy8gdXNhYmlsaXR5IGFuZCBhY2Nlc3NpYmlsaXR5IHNob3VsZCBiZSB0YWtlbiBpbnRvIGFjY291bnQgd2l0aCBhbnkgY2hhbmdlLlxuLy9cbi8vIEV4YW1wbGUgdXNhZ2U6IGNoYW5nZSB0aGUgZGVmYXVsdCBibHVlIGJvcmRlciBhbmQgc2hhZG93IHRvIHdoaXRlIGZvciBiZXR0ZXJcbi8vIGNvbnRyYXN0IGFnYWluc3QgYSBkYXJrIGdyYXkgYmFja2dyb3VuZC5cbi5mb3JtLWNvbnRyb2wtZm9jdXMoQGNvbG9yOiBAaW5wdXQtYm9yZGVyLWZvY3VzKSB7XG4gIEBjb2xvci1yZ2JhOiByZ2JhKHJlZChAY29sb3IpLCBncmVlbihAY29sb3IpLCBibHVlKEBjb2xvciksIC42KTtcbiAgJjpmb2N1cyB7XG4gICAgYm9yZGVyLWNvbG9yOiBAY29sb3I7XG4gICAgb3V0bGluZTogMDtcbiAgICAuYm94LXNoYWRvdyh+XCJpbnNldCAwIDFweCAxcHggcmdiYSgwLDAsMCwuMDc1KSwgMCAwIDhweCBAe2NvbG9yLXJnYmF9XCIpO1xuICB9XG59XG5cbi8vIEZvcm0gY29udHJvbCBzaXppbmdcbi8vXG4vLyBSZWxhdGl2ZSB0ZXh0IHNpemUsIHBhZGRpbmcsIGFuZCBib3JkZXItcmFkaWkgY2hhbmdlcyBmb3IgZm9ybSBjb250cm9scy4gRm9yXG4vLyBob3Jpem9udGFsIHNpemluZywgd3JhcCBjb250cm9scyBpbiB0aGUgcHJlZGVmaW5lZCBncmlkIGNsYXNzZXMuIGA8c2VsZWN0PmBcbi8vIGVsZW1lbnQgZ2V0cyBzcGVjaWFsIGxvdmUgYmVjYXVzZSBpdCdzIHNwZWNpYWwsIGFuZCB0aGF0J3MgYSBmYWN0IVxuLmlucHV0LXNpemUoQGlucHV0LWhlaWdodDsgQHBhZGRpbmctdmVydGljYWw7IEBwYWRkaW5nLWhvcml6b250YWw7IEBmb250LXNpemU7IEBsaW5lLWhlaWdodDsgQGJvcmRlci1yYWRpdXMpIHtcbiAgaGVpZ2h0OiBAaW5wdXQtaGVpZ2h0O1xuICBwYWRkaW5nOiBAcGFkZGluZy12ZXJ0aWNhbCBAcGFkZGluZy1ob3Jpem9udGFsO1xuICBmb250LXNpemU6IEBmb250LXNpemU7XG4gIGxpbmUtaGVpZ2h0OiBAbGluZS1oZWlnaHQ7XG4gIGJvcmRlci1yYWRpdXM6IEBib3JkZXItcmFkaXVzO1xuXG4gIHNlbGVjdCYge1xuICAgIGhlaWdodDogQGlucHV0LWhlaWdodDtcbiAgICBsaW5lLWhlaWdodDogQGlucHV0LWhlaWdodDtcbiAgfVxuXG4gIHRleHRhcmVhJixcbiAgc2VsZWN0W211bHRpcGxlXSYge1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxufVxuIiwiLy9cbi8vIEJ1dHRvbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLy8gQmFzZSBzdHlsZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5idG4ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1ib3R0b206IDA7IC8vIEZvciBpbnB1dC5idG5cbiAgZm9udC13ZWlnaHQ6IEBidG4tZm9udC13ZWlnaHQ7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsgLy8gUmVzZXQgdW51c3VhbCBGaXJlZm94LW9uLUFuZHJvaWQgZGVmYXVsdCBzdHlsZTsgc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MvaXNzdWVzLzIxNFxuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgLmJ1dHRvbi1zaXplKEBwYWRkaW5nLWJhc2UtdmVydGljYWw7IEBwYWRkaW5nLWJhc2UtaG9yaXpvbnRhbDsgQGZvbnQtc2l6ZS1iYXNlOyBAbGluZS1oZWlnaHQtYmFzZTsgQGJ0bi1ib3JkZXItcmFkaXVzLWJhc2UpO1xuICAudXNlci1zZWxlY3Qobm9uZSk7XG5cbiAgJixcbiAgJjphY3RpdmUsXG4gICYuYWN0aXZlIHtcbiAgICAmOmZvY3VzLFxuICAgICYuZm9jdXMge1xuICAgICAgLnRhYi1mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMsXG4gICYuZm9jdXMge1xuICAgIGNvbG9yOiBAYnRuLWRlZmF1bHQtY29sb3I7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG5cbiAgJjphY3RpdmUsXG4gICYuYWN0aXZlIHtcbiAgICBvdXRsaW5lOiAwO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gICAgLmJveC1zaGFkb3coaW5zZXQgMCAzcHggNXB4IHJnYmEoMCwwLDAsLjEyNSkpO1xuICB9XG5cbiAgJi5kaXNhYmxlZCxcbiAgJltkaXNhYmxlZF0sXG4gIGZpZWxkc2V0W2Rpc2FibGVkXSAmIHtcbiAgICBjdXJzb3I6IEBjdXJzb3ItZGlzYWJsZWQ7XG4gICAgLm9wYWNpdHkoLjY1KTtcbiAgICAuYm94LXNoYWRvdyhub25lKTtcbiAgfVxuXG4gIGEmIHtcbiAgICAmLmRpc2FibGVkLFxuICAgIGZpZWxkc2V0W2Rpc2FibGVkXSAmIHtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyAvLyBGdXR1cmUtcHJvb2YgZGlzYWJsaW5nIG9mIGNsaWNrcyBvbiBgPGE+YCBlbGVtZW50c1xuICAgIH1cbiAgfVxufVxuXG5cbi8vIEFsdGVybmF0ZSBidXR0b25zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4uYnRuLWRlZmF1bHQge1xuICAuYnV0dG9uLXZhcmlhbnQoQGJ0bi1kZWZhdWx0LWNvbG9yOyBAYnRuLWRlZmF1bHQtYmc7IEBidG4tZGVmYXVsdC1ib3JkZXIpO1xufVxuLmJ0bi1wcmltYXJ5IHtcbiAgLmJ1dHRvbi12YXJpYW50KEBidG4tcHJpbWFyeS1jb2xvcjsgQGJ0bi1wcmltYXJ5LWJnOyBAYnRuLXByaW1hcnktYm9yZGVyKTtcbn1cbi8vIFN1Y2Nlc3MgYXBwZWFycyBhcyBncmVlblxuLmJ0bi1zdWNjZXNzIHtcbiAgLmJ1dHRvbi12YXJpYW50KEBidG4tc3VjY2Vzcy1jb2xvcjsgQGJ0bi1zdWNjZXNzLWJnOyBAYnRuLXN1Y2Nlc3MtYm9yZGVyKTtcbn1cbi8vIEluZm8gYXBwZWFycyBhcyBibHVlLWdyZWVuXG4uYnRuLWluZm8ge1xuICAuYnV0dG9uLXZhcmlhbnQoQGJ0bi1pbmZvLWNvbG9yOyBAYnRuLWluZm8tYmc7IEBidG4taW5mby1ib3JkZXIpO1xufVxuLy8gV2FybmluZyBhcHBlYXJzIGFzIG9yYW5nZVxuLmJ0bi13YXJuaW5nIHtcbiAgLmJ1dHRvbi12YXJpYW50KEBidG4td2FybmluZy1jb2xvcjsgQGJ0bi13YXJuaW5nLWJnOyBAYnRuLXdhcm5pbmctYm9yZGVyKTtcbn1cbi8vIERhbmdlciBhbmQgZXJyb3IgYXBwZWFyIGFzIHJlZFxuLmJ0bi1kYW5nZXIge1xuICAuYnV0dG9uLXZhcmlhbnQoQGJ0bi1kYW5nZXItY29sb3I7IEBidG4tZGFuZ2VyLWJnOyBAYnRuLWRhbmdlci1ib3JkZXIpO1xufVxuXG5cbi8vIExpbmsgYnV0dG9uc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBNYWtlIGEgYnV0dG9uIGxvb2sgYW5kIGJlaGF2ZSBsaWtlIGEgbGlua1xuLmJ0bi1saW5rIHtcbiAgY29sb3I6IEBsaW5rLWNvbG9yO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICYsXG4gICY6YWN0aXZlLFxuICAmLmFjdGl2ZSxcbiAgJltkaXNhYmxlZF0sXG4gIGZpZWxkc2V0W2Rpc2FibGVkXSAmIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAuYm94LXNoYWRvdyhub25lKTtcbiAgfVxuICAmLFxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBjb2xvcjogQGxpbmstaG92ZXItY29sb3I7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBAbGluay1ob3Zlci1kZWNvcmF0aW9uO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG4gICZbZGlzYWJsZWRdLFxuICBmaWVsZHNldFtkaXNhYmxlZF0gJiB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIGNvbG9yOiBAYnRuLWxpbmstZGlzYWJsZWQtY29sb3I7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuICB9XG59XG5cblxuLy8gQnV0dG9uIFNpemVzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4uYnRuLWxnIHtcbiAgLy8gbGluZS1oZWlnaHQ6IGVuc3VyZSBldmVuLW51bWJlcmVkIGhlaWdodCBvZiBidXR0b24gbmV4dCB0byBsYXJnZSBpbnB1dFxuICAuYnV0dG9uLXNpemUoQHBhZGRpbmctbGFyZ2UtdmVydGljYWw7IEBwYWRkaW5nLWxhcmdlLWhvcml6b250YWw7IEBmb250LXNpemUtbGFyZ2U7IEBsaW5lLWhlaWdodC1sYXJnZTsgQGJ0bi1ib3JkZXItcmFkaXVzLWxhcmdlKTtcbn1cbi5idG4tc20ge1xuICAvLyBsaW5lLWhlaWdodDogZW5zdXJlIHByb3BlciBoZWlnaHQgb2YgYnV0dG9uIG5leHQgdG8gc21hbGwgaW5wdXRcbiAgLmJ1dHRvbi1zaXplKEBwYWRkaW5nLXNtYWxsLXZlcnRpY2FsOyBAcGFkZGluZy1zbWFsbC1ob3Jpem9udGFsOyBAZm9udC1zaXplLXNtYWxsOyBAbGluZS1oZWlnaHQtc21hbGw7IEBidG4tYm9yZGVyLXJhZGl1cy1zbWFsbCk7XG59XG4uYnRuLXhzIHtcbiAgLmJ1dHRvbi1zaXplKEBwYWRkaW5nLXhzLXZlcnRpY2FsOyBAcGFkZGluZy14cy1ob3Jpem9udGFsOyBAZm9udC1zaXplLXNtYWxsOyBAbGluZS1oZWlnaHQtc21hbGw7IEBidG4tYm9yZGVyLXJhZGl1cy1zbWFsbCk7XG59XG5cblxuLy8gQmxvY2sgYnV0dG9uXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4uYnRuLWJsb2NrIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4vLyBWZXJ0aWNhbGx5IHNwYWNlIG91dCBtdWx0aXBsZSBibG9jayBidXR0b25zXG4uYnRuLWJsb2NrICsgLmJ0bi1ibG9jayB7XG4gIG1hcmdpbi10b3A6IDVweDtcbn1cblxuLy8gU3BlY2lmaWNpdHkgb3ZlcnJpZGVzXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdLFxuaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxuaW5wdXRbdHlwZT1cImJ1dHRvblwiXSB7XG4gICYuYnRuLWJsb2NrIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuIiwiLy8gQnV0dG9uIHZhcmlhbnRzXG4vL1xuLy8gRWFzaWx5IHB1bXAgb3V0IGRlZmF1bHQgc3R5bGVzLCBhcyB3ZWxsIGFzIDpob3ZlciwgOmZvY3VzLCA6YWN0aXZlLFxuLy8gYW5kIGRpc2FibGVkIG9wdGlvbnMgZm9yIGFsbCBidXR0b25zXG5cbi5idXR0b24tdmFyaWFudChAY29sb3I7IEBiYWNrZ3JvdW5kOyBAYm9yZGVyKSB7XG4gIGNvbG9yOiBAY29sb3I7XG4gIGJhY2tncm91bmQtY29sb3I6IEBiYWNrZ3JvdW5kO1xuICBib3JkZXItY29sb3I6IEBib3JkZXI7XG5cbiAgJjpmb2N1cyxcbiAgJi5mb2N1cyB7XG4gICAgY29sb3I6IEBjb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oQGJhY2tncm91bmQsIDEwJSk7XG4gICAgICAgIGJvcmRlci1jb2xvcjogZGFya2VuKEBib3JkZXIsIDI1JSk7XG4gIH1cbiAgJjpob3ZlciB7XG4gICAgY29sb3I6IEBjb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oQGJhY2tncm91bmQsIDEwJSk7XG4gICAgICAgIGJvcmRlci1jb2xvcjogZGFya2VuKEBib3JkZXIsIDEyJSk7XG4gIH1cbiAgJjphY3RpdmUsXG4gICYuYWN0aXZlLFxuICAub3BlbiA+IC5kcm9wZG93bi10b2dnbGUmIHtcbiAgICBjb2xvcjogQGNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbihAYmFja2dyb3VuZCwgMTAlKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiBkYXJrZW4oQGJvcmRlciwgMTIlKTtcblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmLmZvY3VzIHtcbiAgICAgIGNvbG9yOiBAY29sb3I7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oQGJhY2tncm91bmQsIDE3JSk7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiBkYXJrZW4oQGJvcmRlciwgMjUlKTtcbiAgICB9XG4gIH1cbiAgJjphY3RpdmUsXG4gICYuYWN0aXZlLFxuICAub3BlbiA+IC5kcm9wZG93bi10b2dnbGUmIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICB9XG4gICYuZGlzYWJsZWQsXG4gICZbZGlzYWJsZWRdLFxuICBmaWVsZHNldFtkaXNhYmxlZF0gJiB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICYuZm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGJhY2tncm91bmQ7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiBAYm9yZGVyO1xuICAgIH1cbiAgfVxuXG4gIC5iYWRnZSB7XG4gICAgY29sb3I6IEBiYWNrZ3JvdW5kO1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBjb2xvcjtcbiAgfVxufVxuXG4vLyBCdXR0b24gc2l6ZXNcbi5idXR0b24tc2l6ZShAcGFkZGluZy12ZXJ0aWNhbDsgQHBhZGRpbmctaG9yaXpvbnRhbDsgQGZvbnQtc2l6ZTsgQGxpbmUtaGVpZ2h0OyBAYm9yZGVyLXJhZGl1cykge1xuICBwYWRkaW5nOiBAcGFkZGluZy12ZXJ0aWNhbCBAcGFkZGluZy1ob3Jpem9udGFsO1xuICBmb250LXNpemU6IEBmb250LXNpemU7XG4gIGxpbmUtaGVpZ2h0OiBAbGluZS1oZWlnaHQ7XG4gIGJvcmRlci1yYWRpdXM6IEBib3JkZXItcmFkaXVzO1xufVxuIiwiLy8gT3BhY2l0eVxuXG4ub3BhY2l0eShAb3BhY2l0eSkge1xuICBvcGFjaXR5OiBAb3BhY2l0eTtcbiAgLy8gSUU4IGZpbHRlclxuICBAb3BhY2l0eS1pZTogKEBvcGFjaXR5ICogMTAwKTtcbiAgZmlsdGVyOiB+XCJhbHBoYShvcGFjaXR5PUB7b3BhY2l0eS1pZX0pXCI7XG59XG4iLCIvL1xuLy8gQ29tcG9uZW50IGFuaW1hdGlvbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIEhlYWRzIHVwIVxuLy9cbi8vIFdlIGRvbid0IHVzZSB0aGUgYC5vcGFjaXR5KClgIG1peGluIGhlcmUgc2luY2UgaXQgY2F1c2VzIGEgYnVnIHdpdGggdGV4dFxuLy8gZmllbGRzIGluIElFNy04LiBTb3VyY2U6IGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9wdWxsLzM1NTIuXG5cbi5mYWRlIHtcbiAgb3BhY2l0eTogMDtcbiAgLnRyYW5zaXRpb24ob3BhY2l0eSAuMTVzIGxpbmVhcik7XG4gICYuaW4ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuLmNvbGxhcHNlIHtcbiAgZGlzcGxheTogbm9uZTtcblxuICAmLmluICAgICAgeyBkaXNwbGF5OiBibG9jazsgfVxuICB0ciYuaW4gICAgeyBkaXNwbGF5OiB0YWJsZS1yb3c7IH1cbiAgdGJvZHkmLmluIHsgZGlzcGxheTogdGFibGUtcm93LWdyb3VwOyB9XG59XG5cbi5jb2xsYXBzaW5nIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIC50cmFuc2l0aW9uLXByb3BlcnR5KH5cImhlaWdodCwgdmlzaWJpbGl0eVwiKTtcbiAgLnRyYW5zaXRpb24tZHVyYXRpb24oLjM1cyk7XG4gIC50cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbihlYXNlKTtcbn1cbiIsIi8vXG4vLyBEcm9wZG93biBtZW51c1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4vLyBEcm9wZG93biBhcnJvdy9jYXJldFxuLmNhcmV0IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBtYXJnaW4tbGVmdDogMnB4O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBib3JkZXItdG9wOiAgIEBjYXJldC13aWR0aC1iYXNlIGRhc2hlZDtcbiAgYm9yZGVyLXRvcDogICBAY2FyZXQtd2lkdGgtYmFzZSBzb2xpZCB+XCJcXDlcIjsgLy8gSUU4XG4gIGJvcmRlci1yaWdodDogQGNhcmV0LXdpZHRoLWJhc2Ugc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1sZWZ0OiAgQGNhcmV0LXdpZHRoLWJhc2Ugc29saWQgdHJhbnNwYXJlbnQ7XG59XG5cbi8vIFRoZSBkcm9wZG93biB3cmFwcGVyIChkaXYpXG4uZHJvcHVwLFxuLmRyb3Bkb3duIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4vLyBQcmV2ZW50IHRoZSBmb2N1cyBvbiB0aGUgZHJvcGRvd24gdG9nZ2xlIHdoZW4gY2xvc2luZyBkcm9wZG93bnNcbi5kcm9wZG93bi10b2dnbGU6Zm9jdXMge1xuICBvdXRsaW5lOiAwO1xufVxuXG4vLyBUaGUgZHJvcGRvd24gbWVudSAodWwpXG4uZHJvcGRvd24tbWVudSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxMDAlO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiBAemluZGV4LWRyb3Bkb3duO1xuICBkaXNwbGF5OiBub25lOyAvLyBub25lIGJ5IGRlZmF1bHQsIGJ1dCBibG9jayBvbiBcIm9wZW5cIiBvZiB0aGUgbWVudVxuICBmbG9hdDogbGVmdDtcbiAgbWluLXdpZHRoOiAxNjBweDtcbiAgcGFkZGluZzogNXB4IDA7XG4gIG1hcmdpbjogMnB4IDAgMDsgLy8gb3ZlcnJpZGUgZGVmYXVsdCB1bFxuICBsaXN0LXN0eWxlOiBub25lO1xuICBmb250LXNpemU6IEBmb250LXNpemUtYmFzZTtcbiAgdGV4dC1hbGlnbjogbGVmdDsgLy8gRW5zdXJlcyBwcm9wZXIgYWxpZ25tZW50IGlmIHBhcmVudCBoYXMgaXQgY2hhbmdlZCAoZS5nLiwgbW9kYWwgZm9vdGVyKVxuICBiYWNrZ3JvdW5kLWNvbG9yOiBAZHJvcGRvd24tYmc7XG4gIGJvcmRlcjogMXB4IHNvbGlkIEBkcm9wZG93bi1mYWxsYmFjay1ib3JkZXI7IC8vIElFOCBmYWxsYmFja1xuICBib3JkZXI6IDFweCBzb2xpZCBAZHJvcGRvd24tYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiBAYm9yZGVyLXJhZGl1cy1iYXNlO1xuICAuYm94LXNoYWRvdygwIDZweCAxMnB4IHJnYmEoMCwwLDAsLjE3NSkpO1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuXG4gIC8vIEFsaWducyB0aGUgZHJvcGRvd24gbWVudSB0byByaWdodFxuICAvL1xuICAvLyBEZXByZWNhdGVkIGFzIG9mIDMuMS4wIGluIGZhdm9yIG9mIGAuZHJvcGRvd24tbWVudS1bZGlyXWBcbiAgJi5wdWxsLXJpZ2h0IHtcbiAgICByaWdodDogMDtcbiAgICBsZWZ0OiBhdXRvO1xuICB9XG5cbiAgLy8gRGl2aWRlcnMgKGJhc2ljYWxseSBhbiBocikgd2l0aGluIHRoZSBkcm9wZG93blxuICAuZGl2aWRlciB7XG4gICAgLm5hdi1kaXZpZGVyKEBkcm9wZG93bi1kaXZpZGVyLWJnKTtcbiAgfVxuXG4gIC8vIExpbmtzIHdpdGhpbiB0aGUgZHJvcGRvd24gbWVudVxuICA+IGxpID4gYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogM3B4IDIwcHg7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogQGxpbmUtaGVpZ2h0LWJhc2U7XG4gICAgY29sb3I6IEBkcm9wZG93bi1saW5rLWNvbG9yO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7IC8vIHByZXZlbnQgbGlua3MgZnJvbSByYW5kb21seSBicmVha2luZyBvbnRvIG5ldyBsaW5lc1xuICB9XG59XG5cbi8vIEhvdmVyL0ZvY3VzIHN0YXRlXG4uZHJvcGRvd24tbWVudSA+IGxpID4gYSB7XG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjb2xvcjogQGRyb3Bkb3duLWxpbmstaG92ZXItY29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGRyb3Bkb3duLWxpbmstaG92ZXItYmc7XG4gIH1cbn1cblxuLy8gQWN0aXZlIHN0YXRlXG4uZHJvcGRvd24tbWVudSA+IC5hY3RpdmUgPiBhIHtcbiAgJixcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgY29sb3I6IEBkcm9wZG93bi1saW5rLWFjdGl2ZS1jb2xvcjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgb3V0bGluZTogMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAZHJvcGRvd24tbGluay1hY3RpdmUtYmc7XG4gIH1cbn1cblxuLy8gRGlzYWJsZWQgc3RhdGVcbi8vXG4vLyBHcmF5IG91dCB0ZXh0IGFuZCBlbnN1cmUgdGhlIGhvdmVyL2ZvY3VzIHN0YXRlIHJlbWFpbnMgZ3JheVxuXG4uZHJvcGRvd24tbWVudSA+IC5kaXNhYmxlZCA+IGEge1xuICAmLFxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBjb2xvcjogQGRyb3Bkb3duLWxpbmstZGlzYWJsZWQtY29sb3I7XG4gIH1cblxuICAvLyBOdWtlIGhvdmVyL2ZvY3VzIGVmZmVjdHNcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7IC8vIFJlbW92ZSBDU1MgZ3JhZGllbnRcbiAgICAucmVzZXQtZmlsdGVyKCk7XG4gICAgY3Vyc29yOiBAY3Vyc29yLWRpc2FibGVkO1xuICB9XG59XG5cbi8vIE9wZW4gc3RhdGUgZm9yIHRoZSBkcm9wZG93blxuLm9wZW4ge1xuICAvLyBTaG93IHRoZSBtZW51XG4gID4gLmRyb3Bkb3duLW1lbnUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgLy8gUmVtb3ZlIHRoZSBvdXRsaW5lIHdoZW4gOmZvY3VzIGlzIHRyaWdnZXJlZFxuICA+IGEge1xuICAgIG91dGxpbmU6IDA7XG4gIH1cbn1cblxuLy8gTWVudSBwb3NpdGlvbmluZ1xuLy9cbi8vIEFkZCBleHRyYSBjbGFzcyB0byBgLmRyb3Bkb3duLW1lbnVgIHRvIGZsaXAgdGhlIGFsaWdubWVudCBvZiB0aGUgZHJvcGRvd25cbi8vIG1lbnUgd2l0aCB0aGUgcGFyZW50LlxuLmRyb3Bkb3duLW1lbnUtcmlnaHQge1xuICBsZWZ0OiBhdXRvOyAvLyBSZXNldCB0aGUgZGVmYXVsdCBmcm9tIGAuZHJvcGRvd24tbWVudWBcbiAgcmlnaHQ6IDA7XG59XG4vLyBXaXRoIHYzLCB3ZSBlbmFibGVkIGF1dG8tZmxpcHBpbmcgaWYgeW91IGhhdmUgYSBkcm9wZG93biB3aXRoaW4gYSByaWdodFxuLy8gYWxpZ25lZCBuYXYgY29tcG9uZW50LiBUbyBlbmFibGUgdGhlIHVuZG9pbmcgb2YgdGhhdCwgd2UgcHJvdmlkZSBhbiBvdmVycmlkZVxuLy8gdG8gcmVzdG9yZSB0aGUgZGVmYXVsdCBkcm9wZG93biBtZW51IGFsaWdubWVudC5cbi8vXG4vLyBUaGlzIGlzIG9ubHkgZm9yIGxlZnQtYWxpZ25pbmcgYSBkcm9wZG93biBtZW51IHdpdGhpbiBhIGAubmF2YmFyLXJpZ2h0YCBvclxuLy8gYC5wdWxsLXJpZ2h0YCBuYXYgY29tcG9uZW50LlxuLmRyb3Bkb3duLW1lbnUtbGVmdCB7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiBhdXRvO1xufVxuXG4vLyBEcm9wZG93biBzZWN0aW9uIGhlYWRlcnNcbi5kcm9wZG93bi1oZWFkZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogM3B4IDIwcHg7XG4gIGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS1zbWFsbDtcbiAgbGluZS1oZWlnaHQ6IEBsaW5lLWhlaWdodC1iYXNlO1xuICBjb2xvcjogQGRyb3Bkb3duLWhlYWRlci1jb2xvcjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgLy8gYXMgd2l0aCA+IGxpID4gYVxufVxuXG4vLyBCYWNrZHJvcCB0byBjYXRjaCBib2R5IGNsaWNrcyBvbiBtb2JpbGUsIGV0Yy5cbi5kcm9wZG93bi1iYWNrZHJvcCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgdG9wOiAwO1xuICB6LWluZGV4OiAoQHppbmRleC1kcm9wZG93biAtIDEwKTtcbn1cblxuLy8gUmlnaHQgYWxpZ25lZCBkcm9wZG93bnNcbi5wdWxsLXJpZ2h0ID4gLmRyb3Bkb3duLW1lbnUge1xuICByaWdodDogMDtcbiAgbGVmdDogYXV0bztcbn1cblxuLy8gQWxsb3cgZm9yIGRyb3Bkb3ducyB0byBnbyBib3R0b20gdXAgKGFrYSwgZHJvcHVwLW1lbnUpXG4vL1xuLy8gSnVzdCBhZGQgLmRyb3B1cCBhZnRlciB0aGUgc3RhbmRhcmQgLmRyb3Bkb3duIGNsYXNzIGFuZCB5b3UncmUgc2V0LCBicm8uXG4vLyBUT0RPOiBhYnN0cmFjdCB0aGlzIHNvIHRoYXQgdGhlIG5hdmJhciBmaXhlZCBzdHlsZXMgYXJlIG5vdCBwbGFjZWQgaGVyZT9cblxuLmRyb3B1cCxcbi5uYXZiYXItZml4ZWQtYm90dG9tIC5kcm9wZG93biB7XG4gIC8vIFJldmVyc2UgdGhlIGNhcmV0XG4gIC5jYXJldCB7XG4gICAgYm9yZGVyLXRvcDogMDtcbiAgICBib3JkZXItYm90dG9tOiBAY2FyZXQtd2lkdGgtYmFzZSBkYXNoZWQ7XG4gICAgYm9yZGVyLWJvdHRvbTogQGNhcmV0LXdpZHRoLWJhc2Ugc29saWQgflwiXFw5XCI7IC8vIElFOFxuICAgIGNvbnRlbnQ6IFwiXCI7XG4gIH1cbiAgLy8gRGlmZmVyZW50IHBvc2l0aW9uaW5nIGZvciBib3R0b20gdXAgbWVudVxuICAuZHJvcGRvd24tbWVudSB7XG4gICAgdG9wOiBhdXRvO1xuICAgIGJvdHRvbTogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAycHg7XG4gIH1cbn1cblxuXG4vLyBDb21wb25lbnQgYWxpZ25tZW50XG4vL1xuLy8gUmVpdGVyYXRlIHBlciBuYXZiYXIubGVzcyBhbmQgdGhlIG1vZGlmaWVkIGNvbXBvbmVudCBhbGlnbm1lbnQgdGhlcmUuXG5cbkBtZWRpYSAobWluLXdpZHRoOiBAZ3JpZC1mbG9hdC1icmVha3BvaW50KSB7XG4gIC5uYXZiYXItcmlnaHQge1xuICAgIC5kcm9wZG93bi1tZW51IHtcbiAgICAgIC5kcm9wZG93bi1tZW51LXJpZ2h0KCk7XG4gICAgfVxuICAgIC8vIE5lY2Vzc2FyeSBmb3Igb3ZlcnJpZGVzIG9mIHRoZSBkZWZhdWx0IHJpZ2h0IGFsaWduZWQgbWVudS5cbiAgICAvLyBXaWxsIHJlbW92ZSBjb21lIHY0IGluIGFsbCBsaWtlbGlob29kLlxuICAgIC5kcm9wZG93bi1tZW51LWxlZnQge1xuICAgICAgLmRyb3Bkb3duLW1lbnUtbGVmdCgpO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gSG9yaXpvbnRhbCBkaXZpZGVyc1xuLy9cbi8vIERpdmlkZXJzIChiYXNpY2FsbHkgYW4gaHIpIHdpdGhpbiBkcm9wZG93bnMgYW5kIG5hdiBsaXN0c1xuXG4ubmF2LWRpdmlkZXIoQGNvbG9yOiAjZTVlNWU1KSB7XG4gIGhlaWdodDogMXB4O1xuICBtYXJnaW46ICgoQGxpbmUtaGVpZ2h0LWNvbXB1dGVkIC8gMikgLSAxKSAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAY29sb3I7XG59XG4iLCIvLyBSZXNldCBmaWx0ZXJzIGZvciBJRVxuLy9cbi8vIFdoZW4geW91IG5lZWQgdG8gcmVtb3ZlIGEgZ3JhZGllbnQgYmFja2dyb3VuZCwgZG8gbm90IGZvcmdldCB0byB1c2UgdGhpcyB0byByZXNldFxuLy8gdGhlIElFIGZpbHRlciBmb3IgSUU5IGFuZCBiZWxvdy5cblxuLnJlc2V0LWZpbHRlcigpIHtcbiAgZmlsdGVyOiBlKCUoXCJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoZW5hYmxlZCA9IGZhbHNlKVwiKSk7XG59XG4iLCIvL1xuLy8gQnV0dG9uIGdyb3Vwc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gTWFrZSB0aGUgZGl2IGJlaGF2ZSBsaWtlIGEgYnV0dG9uXG4uYnRuLWdyb3VwLFxuLmJ0bi1ncm91cC12ZXJ0aWNhbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyAvLyBtYXRjaCAuYnRuIGFsaWdubWVudCBnaXZlbiBmb250LXNpemUgaGFjayBhYm92ZVxuICA+IC5idG4ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmbG9hdDogbGVmdDtcbiAgICAvLyBCcmluZyB0aGUgXCJhY3RpdmVcIiBidXR0b24gdG8gdGhlIGZyb250XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlLFxuICAgICYuYWN0aXZlIHtcbiAgICAgIHotaW5kZXg6IDI7XG4gICAgfVxuICB9XG59XG5cbi8vIFByZXZlbnQgZG91YmxlIGJvcmRlcnMgd2hlbiBidXR0b25zIGFyZSBuZXh0IHRvIGVhY2ggb3RoZXJcbi5idG4tZ3JvdXAge1xuICAuYnRuICsgLmJ0bixcbiAgLmJ0biArIC5idG4tZ3JvdXAsXG4gIC5idG4tZ3JvdXAgKyAuYnRuLFxuICAuYnRuLWdyb3VwICsgLmJ0bi1ncm91cCB7XG4gICAgbWFyZ2luLWxlZnQ6IC0xcHg7XG4gIH1cbn1cblxuLy8gT3B0aW9uYWw6IEdyb3VwIG11bHRpcGxlIGJ1dHRvbiBncm91cHMgdG9nZXRoZXIgZm9yIGEgdG9vbGJhclxuLmJ0bi10b29sYmFyIHtcbiAgbWFyZ2luLWxlZnQ6IC01cHg7IC8vIE9mZnNldCB0aGUgZmlyc3QgY2hpbGQncyBtYXJnaW5cbiAgJjpleHRlbmQoLmNsZWFyZml4IGFsbCk7XG5cbiAgLmJ0bixcbiAgLmJ0bi1ncm91cCxcbiAgLmlucHV0LWdyb3VwIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgfVxuICA+IC5idG4sXG4gID4gLmJ0bi1ncm91cCxcbiAgPiAuaW5wdXQtZ3JvdXAge1xuICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gIH1cbn1cblxuLmJ0bi1ncm91cCA+IC5idG46bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKTpub3QoLmRyb3Bkb3duLXRvZ2dsZSkge1xuICBib3JkZXItcmFkaXVzOiAwO1xufVxuXG4vLyBTZXQgY29ybmVycyBpbmRpdmlkdWFsIGJlY2F1c2Ugc29tZXRpbWVzIGEgc2luZ2xlIGJ1dHRvbiBjYW4gYmUgaW4gYSAuYnRuLWdyb3VwIGFuZCB3ZSBuZWVkIDpmaXJzdC1jaGlsZCBhbmQgOmxhc3QtY2hpbGQgdG8gYm90aCBtYXRjaFxuLmJ0bi1ncm91cCA+IC5idG46Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tbGVmdDogMDtcbiAgJjpub3QoOmxhc3QtY2hpbGQpOm5vdCguZHJvcGRvd24tdG9nZ2xlKSB7XG4gICAgLmJvcmRlci1yaWdodC1yYWRpdXMoMCk7XG4gIH1cbn1cbi8vIE5lZWQgLmRyb3Bkb3duLXRvZ2dsZSBzaW5jZSA6bGFzdC1jaGlsZCBkb2Vzbid0IGFwcGx5LCBnaXZlbiB0aGF0IGEgLmRyb3Bkb3duLW1lbnUgaXMgdXNlZCBpbW1lZGlhdGVseSBhZnRlciBpdFxuLmJ0bi1ncm91cCA+IC5idG46bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSxcbi5idG4tZ3JvdXAgPiAuZHJvcGRvd24tdG9nZ2xlOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgLmJvcmRlci1sZWZ0LXJhZGl1cygwKTtcbn1cblxuLy8gQ3VzdG9tIGVkaXRzIGZvciBpbmNsdWRpbmcgYnRuLWdyb3VwcyB3aXRoaW4gYnRuLWdyb3VwcyAodXNlZnVsIGZvciBpbmNsdWRpbmcgZHJvcGRvd24gYnV0dG9ucyB3aXRoaW4gYSBidG4tZ3JvdXApXG4uYnRuLWdyb3VwID4gLmJ0bi1ncm91cCB7XG4gIGZsb2F0OiBsZWZ0O1xufVxuLmJ0bi1ncm91cCA+IC5idG4tZ3JvdXA6bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKSA+IC5idG4ge1xuICBib3JkZXItcmFkaXVzOiAwO1xufVxuLmJ0bi1ncm91cCA+IC5idG4tZ3JvdXA6Zmlyc3QtY2hpbGQ6bm90KDpsYXN0LWNoaWxkKSB7XG4gID4gLmJ0bjpsYXN0LWNoaWxkLFxuICA+IC5kcm9wZG93bi10b2dnbGUge1xuICAgIC5ib3JkZXItcmlnaHQtcmFkaXVzKDApO1xuICB9XG59XG4uYnRuLWdyb3VwID4gLmJ0bi1ncm91cDpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpID4gLmJ0bjpmaXJzdC1jaGlsZCB7XG4gIC5ib3JkZXItbGVmdC1yYWRpdXMoMCk7XG59XG5cbi8vIE9uIGFjdGl2ZSBhbmQgb3BlbiwgZG9uJ3Qgc2hvdyBvdXRsaW5lXG4uYnRuLWdyb3VwIC5kcm9wZG93bi10b2dnbGU6YWN0aXZlLFxuLmJ0bi1ncm91cC5vcGVuIC5kcm9wZG93bi10b2dnbGUge1xuICBvdXRsaW5lOiAwO1xufVxuXG5cbi8vIFNpemluZ1xuLy9cbi8vIFJlbWl4IHRoZSBkZWZhdWx0IGJ1dHRvbiBzaXppbmcgY2xhc3NlcyBpbnRvIG5ldyBvbmVzIGZvciBlYXNpZXIgbWFuaXB1bGF0aW9uLlxuXG4uYnRuLWdyb3VwLXhzID4gLmJ0biB7ICY6ZXh0ZW5kKC5idG4teHMpOyB9XG4uYnRuLWdyb3VwLXNtID4gLmJ0biB7ICY6ZXh0ZW5kKC5idG4tc20pOyB9XG4uYnRuLWdyb3VwLWxnID4gLmJ0biB7ICY6ZXh0ZW5kKC5idG4tbGcpOyB9XG5cblxuLy8gU3BsaXQgYnV0dG9uIGRyb3Bkb3duc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBHaXZlIHRoZSBsaW5lIGJldHdlZW4gYnV0dG9ucyBzb21lIGRlcHRoXG4uYnRuLWdyb3VwID4gLmJ0biArIC5kcm9wZG93bi10b2dnbGUge1xuICBwYWRkaW5nLWxlZnQ6IDhweDtcbiAgcGFkZGluZy1yaWdodDogOHB4O1xufVxuLmJ0bi1ncm91cCA+IC5idG4tbGcgKyAuZHJvcGRvd24tdG9nZ2xlIHtcbiAgcGFkZGluZy1sZWZ0OiAxMnB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxMnB4O1xufVxuXG4vLyBUaGUgY2xpY2thYmxlIGJ1dHRvbiBmb3IgdG9nZ2xpbmcgdGhlIG1lbnVcbi8vIFJlbW92ZSB0aGUgZ3JhZGllbnQgYW5kIHNldCB0aGUgc2FtZSBpbnNldCBzaGFkb3cgYXMgdGhlIDphY3RpdmUgc3RhdGVcbi5idG4tZ3JvdXAub3BlbiAuZHJvcGRvd24tdG9nZ2xlIHtcbiAgLmJveC1zaGFkb3coaW5zZXQgMCAzcHggNXB4IHJnYmEoMCwwLDAsLjEyNSkpO1xuXG4gIC8vIFNob3cgbm8gc2hhZG93IGZvciBgLmJ0bi1saW5rYCBzaW5jZSBpdCBoYXMgbm8gb3RoZXIgYnV0dG9uIHN0eWxlcy5cbiAgJi5idG4tbGluayB7XG4gICAgLmJveC1zaGFkb3cobm9uZSk7XG4gIH1cbn1cblxuXG4vLyBSZXBvc2l0aW9uIHRoZSBjYXJldFxuLmJ0biAuY2FyZXQge1xuICBtYXJnaW4tbGVmdDogMDtcbn1cbi8vIENhcmV0cyBpbiBvdGhlciBidXR0b24gc2l6ZXNcbi5idG4tbGcgLmNhcmV0IHtcbiAgYm9yZGVyLXdpZHRoOiBAY2FyZXQtd2lkdGgtbGFyZ2UgQGNhcmV0LXdpZHRoLWxhcmdlIDA7XG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG59XG4vLyBVcHNpZGUgZG93biBjYXJldHMgZm9yIC5kcm9wdXBcbi5kcm9wdXAgLmJ0bi1sZyAuY2FyZXQge1xuICBib3JkZXItd2lkdGg6IDAgQGNhcmV0LXdpZHRoLWxhcmdlIEBjYXJldC13aWR0aC1sYXJnZTtcbn1cblxuXG4vLyBWZXJ0aWNhbCBidXR0b24gZ3JvdXBzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5idG4tZ3JvdXAtdmVydGljYWwge1xuICA+IC5idG4sXG4gID4gLmJ0bi1ncm91cCxcbiAgPiAuYnRuLWdyb3VwID4gLmJ0biB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLy8gQ2xlYXIgZmxvYXRzIHNvIGRyb3Bkb3duIG1lbnVzIGNhbiBiZSBwcm9wZXJseSBwbGFjZWRcbiAgPiAuYnRuLWdyb3VwIHtcbiAgICAmOmV4dGVuZCguY2xlYXJmaXggYWxsKTtcbiAgICA+IC5idG4ge1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgPiAuYnRuICsgLmJ0bixcbiAgPiAuYnRuICsgLmJ0bi1ncm91cCxcbiAgPiAuYnRuLWdyb3VwICsgLmJ0bixcbiAgPiAuYnRuLWdyb3VwICsgLmJ0bi1ncm91cCB7XG4gICAgbWFyZ2luLXRvcDogLTFweDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxufVxuXG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0biB7XG4gICY6bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgfVxuICAmOmZpcnN0LWNoaWxkOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgIC5ib3JkZXItdG9wLXJhZGl1cyhAYnRuLWJvcmRlci1yYWRpdXMtYmFzZSk7XG4gICAgLmJvcmRlci1ib3R0b20tcmFkaXVzKDApO1xuICB9XG4gICY6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgLmJvcmRlci10b3AtcmFkaXVzKDApO1xuICAgIC5ib3JkZXItYm90dG9tLXJhZGl1cyhAYnRuLWJvcmRlci1yYWRpdXMtYmFzZSk7XG4gIH1cbn1cbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuLWdyb3VwOm5vdCg6Zmlyc3QtY2hpbGQpOm5vdCg6bGFzdC1jaGlsZCkgPiAuYnRuIHtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuLWdyb3VwOmZpcnN0LWNoaWxkOm5vdCg6bGFzdC1jaGlsZCkge1xuICA+IC5idG46bGFzdC1jaGlsZCxcbiAgPiAuZHJvcGRvd24tdG9nZ2xlIHtcbiAgICAuYm9yZGVyLWJvdHRvbS1yYWRpdXMoMCk7XG4gIH1cbn1cbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuLWdyb3VwOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkgPiAuYnRuOmZpcnN0LWNoaWxkIHtcbiAgLmJvcmRlci10b3AtcmFkaXVzKDApO1xufVxuXG5cbi8vIEp1c3RpZmllZCBidXR0b24gZ3JvdXBzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5idG4tZ3JvdXAtanVzdGlmaWVkIHtcbiAgZGlzcGxheTogdGFibGU7XG4gIHdpZHRoOiAxMDAlO1xuICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xuICBib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlO1xuICA+IC5idG4sXG4gID4gLmJ0bi1ncm91cCB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICB3aWR0aDogMSU7XG4gIH1cbiAgPiAuYnRuLWdyb3VwIC5idG4ge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgPiAuYnRuLWdyb3VwIC5kcm9wZG93bi1tZW51IHtcbiAgICBsZWZ0OiBhdXRvO1xuICB9XG59XG5cblxuLy8gQ2hlY2tib3ggYW5kIHJhZGlvIG9wdGlvbnNcbi8vXG4vLyBJbiBvcmRlciB0byBzdXBwb3J0IHRoZSBicm93c2VyJ3MgZm9ybSB2YWxpZGF0aW9uIGZlZWRiYWNrLCBwb3dlcmVkIGJ5IHRoZVxuLy8gYHJlcXVpcmVkYCBhdHRyaWJ1dGUsIHdlIGhhdmUgdG8gXCJoaWRlXCIgdGhlIGlucHV0cyB2aWEgYGNsaXBgLiBXZSBjYW5ub3QgdXNlXG4vLyBgZGlzcGxheTogbm9uZTtgIG9yIGB2aXNpYmlsaXR5OiBoaWRkZW47YCBhcyB0aGF0IGFsc28gaGlkZXMgdGhlIHBvcG92ZXIuXG4vLyBTaW1wbHkgdmlzdWFsbHkgaGlkaW5nIHRoZSBpbnB1dHMgdmlhIGBvcGFjaXR5YCB3b3VsZCBsZWF2ZSB0aGVtIGNsaWNrYWJsZSBpblxuLy8gY2VydGFpbiBjYXNlcyB3aGljaCBpcyBwcmV2ZW50ZWQgYnkgdXNpbmcgYGNsaXBgIGFuZCBgcG9pbnRlci1ldmVudHNgLlxuLy8gVGhpcyB3YXksIHdlIGVuc3VyZSBhIERPTSBlbGVtZW50IGlzIHZpc2libGUgdG8gcG9zaXRpb24gdGhlIHBvcG92ZXIgZnJvbS5cbi8vXG4vLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL3B1bGwvMTI3OTQgYW5kXG4vLyBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvcHVsbC8xNDU1OSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cblxuW2RhdGEtdG9nZ2xlPVwiYnV0dG9uc1wiXSB7XG4gID4gLmJ0bixcbiAgPiAuYnRuLWdyb3VwID4gLmJ0biB7XG4gICAgaW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuICAgIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBjbGlwOiByZWN0KDAsMCwwLDApO1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuICB9XG59XG4iLCIvLyBTaW5nbGUgc2lkZSBib3JkZXItcmFkaXVzXG5cbi5ib3JkZXItdG9wLXJhZGl1cyhAcmFkaXVzKSB7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiBAcmFkaXVzO1xuICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogQHJhZGl1cztcbn1cbi5ib3JkZXItcmlnaHQtcmFkaXVzKEByYWRpdXMpIHtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IEByYWRpdXM7XG4gICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiBAcmFkaXVzO1xufVxuLmJvcmRlci1ib3R0b20tcmFkaXVzKEByYWRpdXMpIHtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IEByYWRpdXM7XG4gICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiBAcmFkaXVzO1xufVxuLmJvcmRlci1sZWZ0LXJhZGl1cyhAcmFkaXVzKSB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IEByYWRpdXM7XG4gICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IEByYWRpdXM7XG59XG4iLCIvL1xuLy8gSW5wdXQgZ3JvdXBzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBCYXNlIHN0eWxlc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLmlucHV0LWdyb3VwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyAvLyBGb3IgZHJvcGRvd25zXG4gIGRpc3BsYXk6IHRhYmxlO1xuICBib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlOyAvLyBwcmV2ZW50IGlucHV0IGdyb3VwcyBmcm9tIGluaGVyaXRpbmcgYm9yZGVyIHN0eWxlcyBmcm9tIHRhYmxlIGNlbGxzIHdoZW4gcGxhY2VkIHdpdGhpbiBhIHRhYmxlXG5cbiAgLy8gVW5kbyBwYWRkaW5nIGFuZCBmbG9hdCBvZiBncmlkIGNsYXNzZXNcbiAgJltjbGFzcyo9XCJjb2wtXCJdIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgfVxuXG4gIC5mb3JtLWNvbnRyb2wge1xuICAgIC8vIEVuc3VyZSB0aGF0IHRoZSBpbnB1dCBpcyBhbHdheXMgYWJvdmUgdGhlICphcHBlbmRlZCogYWRkb24gYnV0dG9uIGZvclxuICAgIC8vIHByb3BlciBib3JkZXIgY29sb3JzLlxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAyO1xuXG4gICAgLy8gSUU5IGZ1YmFycyB0aGUgcGxhY2Vob2xkZXIgYXR0cmlidXRlIGluIHRleHQgaW5wdXRzIGFuZCB0aGUgYXJyb3dzIG9uXG4gICAgLy8gc2VsZWN0IGVsZW1lbnRzIGluIGlucHV0IGdyb3Vwcy4gVG8gZml4IGl0LCB3ZSBmbG9hdCB0aGUgaW5wdXQuIERldGFpbHM6XG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2lzc3Vlcy8xMTU2MSNpc3N1ZWNvbW1lbnQtMjg5MzY4NTVcbiAgICBmbG9hdDogbGVmdDtcblxuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgIHotaW5kZXg6IDM7XG4gICAgfVxuICB9XG59XG5cbi8vIFNpemluZyBvcHRpb25zXG4vL1xuLy8gUmVtaXggdGhlIGRlZmF1bHQgZm9ybSBjb250cm9sIHNpemluZyBjbGFzc2VzIGludG8gbmV3IG9uZXMgZm9yIGVhc2llclxuLy8gbWFuaXB1bGF0aW9uLlxuXG4uaW5wdXQtZ3JvdXAtbGcgPiAuZm9ybS1jb250cm9sLFxuLmlucHV0LWdyb3VwLWxnID4gLmlucHV0LWdyb3VwLWFkZG9uLFxuLmlucHV0LWdyb3VwLWxnID4gLmlucHV0LWdyb3VwLWJ0biA+IC5idG4ge1xuICAuaW5wdXQtbGcoKTtcbn1cbi5pbnB1dC1ncm91cC1zbSA+IC5mb3JtLWNvbnRyb2wsXG4uaW5wdXQtZ3JvdXAtc20gPiAuaW5wdXQtZ3JvdXAtYWRkb24sXG4uaW5wdXQtZ3JvdXAtc20gPiAuaW5wdXQtZ3JvdXAtYnRuID4gLmJ0biB7XG4gIC5pbnB1dC1zbSgpO1xufVxuXG5cbi8vIERpc3BsYXkgYXMgdGFibGUtY2VsbFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLmlucHV0LWdyb3VwLWFkZG9uLFxuLmlucHV0LWdyb3VwLWJ0bixcbi5pbnB1dC1ncm91cCAuZm9ybS1jb250cm9sIHtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcblxuICAmOm5vdCg6Zmlyc3QtY2hpbGQpOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gIH1cbn1cbi8vIEFkZG9uIGFuZCBhZGRvbiB3cmFwcGVyIGZvciBidXR0b25zXG4uaW5wdXQtZ3JvdXAtYWRkb24sXG4uaW5wdXQtZ3JvdXAtYnRuIHtcbiAgd2lkdGg6IDElO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyAvLyBNYXRjaCB0aGUgaW5wdXRzXG59XG5cbi8vIFRleHQgaW5wdXQgZ3JvdXBzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4uaW5wdXQtZ3JvdXAtYWRkb24ge1xuICBwYWRkaW5nOiBAcGFkZGluZy1iYXNlLXZlcnRpY2FsIEBwYWRkaW5nLWJhc2UtaG9yaXpvbnRhbDtcbiAgZm9udC1zaXplOiBAZm9udC1zaXplLWJhc2U7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogQGlucHV0LWNvbG9yO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6IEBpbnB1dC1ncm91cC1hZGRvbi1iZztcbiAgYm9yZGVyOiAxcHggc29saWQgQGlucHV0LWdyb3VwLWFkZG9uLWJvcmRlci1jb2xvcjtcbiAgYm9yZGVyLXJhZGl1czogQGlucHV0LWJvcmRlci1yYWRpdXM7XG5cbiAgLy8gU2l6aW5nXG4gICYuaW5wdXQtc20ge1xuICAgIHBhZGRpbmc6IEBwYWRkaW5nLXNtYWxsLXZlcnRpY2FsIEBwYWRkaW5nLXNtYWxsLWhvcml6b250YWw7XG4gICAgZm9udC1zaXplOiBAZm9udC1zaXplLXNtYWxsO1xuICAgIGJvcmRlci1yYWRpdXM6IEBpbnB1dC1ib3JkZXItcmFkaXVzLXNtYWxsO1xuICB9XG4gICYuaW5wdXQtbGcge1xuICAgIHBhZGRpbmc6IEBwYWRkaW5nLWxhcmdlLXZlcnRpY2FsIEBwYWRkaW5nLWxhcmdlLWhvcml6b250YWw7XG4gICAgZm9udC1zaXplOiBAZm9udC1zaXplLWxhcmdlO1xuICAgIGJvcmRlci1yYWRpdXM6IEBpbnB1dC1ib3JkZXItcmFkaXVzLWxhcmdlO1xuICB9XG5cbiAgLy8gTnVrZSBkZWZhdWx0IG1hcmdpbnMgZnJvbSBjaGVja2JveGVzIGFuZCByYWRpb3MgdG8gdmVydGljYWxseSBjZW50ZXIgd2l0aGluLlxuICBpbnB1dFt0eXBlPVwicmFkaW9cIl0sXG4gIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxufVxuXG4vLyBSZXNldCByb3VuZGVkIGNvcm5lcnNcbi5pbnB1dC1ncm91cCAuZm9ybS1jb250cm9sOmZpcnN0LWNoaWxkLFxuLmlucHV0LWdyb3VwLWFkZG9uOmZpcnN0LWNoaWxkLFxuLmlucHV0LWdyb3VwLWJ0bjpmaXJzdC1jaGlsZCA+IC5idG4sXG4uaW5wdXQtZ3JvdXAtYnRuOmZpcnN0LWNoaWxkID4gLmJ0bi1ncm91cCA+IC5idG4sXG4uaW5wdXQtZ3JvdXAtYnRuOmZpcnN0LWNoaWxkID4gLmRyb3Bkb3duLXRvZ2dsZSxcbi5pbnB1dC1ncm91cC1idG46bGFzdC1jaGlsZCA+IC5idG46bm90KDpsYXN0LWNoaWxkKTpub3QoLmRyb3Bkb3duLXRvZ2dsZSksXG4uaW5wdXQtZ3JvdXAtYnRuOmxhc3QtY2hpbGQgPiAuYnRuLWdyb3VwOm5vdCg6bGFzdC1jaGlsZCkgPiAuYnRuIHtcbiAgLmJvcmRlci1yaWdodC1yYWRpdXMoMCk7XG59XG4uaW5wdXQtZ3JvdXAtYWRkb246Zmlyc3QtY2hpbGQge1xuICBib3JkZXItcmlnaHQ6IDA7XG59XG4uaW5wdXQtZ3JvdXAgLmZvcm0tY29udHJvbDpsYXN0LWNoaWxkLFxuLmlucHV0LWdyb3VwLWFkZG9uOmxhc3QtY2hpbGQsXG4uaW5wdXQtZ3JvdXAtYnRuOmxhc3QtY2hpbGQgPiAuYnRuLFxuLmlucHV0LWdyb3VwLWJ0bjpsYXN0LWNoaWxkID4gLmJ0bi1ncm91cCA+IC5idG4sXG4uaW5wdXQtZ3JvdXAtYnRuOmxhc3QtY2hpbGQgPiAuZHJvcGRvd24tdG9nZ2xlLFxuLmlucHV0LWdyb3VwLWJ0bjpmaXJzdC1jaGlsZCA+IC5idG46bm90KDpmaXJzdC1jaGlsZCksXG4uaW5wdXQtZ3JvdXAtYnRuOmZpcnN0LWNoaWxkID4gLmJ0bi1ncm91cDpub3QoOmZpcnN0LWNoaWxkKSA+IC5idG4ge1xuICAuYm9yZGVyLWxlZnQtcmFkaXVzKDApO1xufVxuLmlucHV0LWdyb3VwLWFkZG9uOmxhc3QtY2hpbGQge1xuICBib3JkZXItbGVmdDogMDtcbn1cblxuLy8gQnV0dG9uIGlucHV0IGdyb3Vwc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLmlucHV0LWdyb3VwLWJ0biB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgLy8gSmFua2lseSBwcmV2ZW50IGlucHV0IGJ1dHRvbiBncm91cHMgZnJvbSB3cmFwcGluZyB3aXRoIGB3aGl0ZS1zcGFjZWAgYW5kXG4gIC8vIGBmb250LXNpemVgIGluIGNvbWJpbmF0aW9uIHdpdGggYGlubGluZS1ibG9ja2Agb24gYnV0dG9ucy5cbiAgZm9udC1zaXplOiAwO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gIC8vIE5lZ2F0aXZlIG1hcmdpbiBmb3Igc3BhY2luZywgcG9zaXRpb24gZm9yIGJyaW5naW5nIGhvdmVyZWQvZm9jdXNlZC9hY3RpdmVkXG4gIC8vIGVsZW1lbnQgYWJvdmUgdGhlIHNpYmxpbmdzLlxuICA+IC5idG4ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICArIC5idG4ge1xuICAgICAgbWFyZ2luLWxlZnQ6IC0xcHg7XG4gICAgfVxuICAgIC8vIEJyaW5nIHRoZSBcImFjdGl2ZVwiIGJ1dHRvbiB0byB0aGUgZnJvbnRcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMsXG4gICAgJjphY3RpdmUge1xuICAgICAgei1pbmRleDogMjtcbiAgICB9XG4gIH1cblxuICAvLyBOZWdhdGl2ZSBtYXJnaW4gdG8gb25seSBoYXZlIGEgMXB4IGJvcmRlciBiZXR3ZWVuIHRoZSB0d29cbiAgJjpmaXJzdC1jaGlsZCB7XG4gICAgPiAuYnRuLFxuICAgID4gLmJ0bi1ncm91cCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IC0xcHg7XG4gICAgfVxuICB9XG4gICY6bGFzdC1jaGlsZCB7XG4gICAgPiAuYnRuLFxuICAgID4gLmJ0bi1ncm91cCB7XG4gICAgICB6LWluZGV4OiAyO1xuICAgICAgbWFyZ2luLWxlZnQ6IC0xcHg7XG4gICAgfVxuICB9XG59XG4iLCIvL1xuLy8gTmF2c1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4vLyBCYXNlIGNsYXNzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4ubmF2IHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgcGFkZGluZy1sZWZ0OiAwOyAvLyBPdmVycmlkZSBkZWZhdWx0IHVsL29sXG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICY6ZXh0ZW5kKC5jbGVhcmZpeCBhbGwpO1xuXG4gID4gbGkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcblxuICAgID4gYSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBhZGRpbmc6IEBuYXYtbGluay1wYWRkaW5nO1xuICAgICAgJjpob3ZlcixcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBuYXYtbGluay1ob3Zlci1iZztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBEaXNhYmxlZCBzdGF0ZSBzZXRzIHRleHQgdG8gZ3JheSBhbmQgbnVrZXMgaG92ZXIvdGFiIGVmZmVjdHNcbiAgICAmLmRpc2FibGVkID4gYSB7XG4gICAgICBjb2xvcjogQG5hdi1kaXNhYmxlZC1saW5rLWNvbG9yO1xuXG4gICAgICAmOmhvdmVyLFxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIGNvbG9yOiBAbmF2LWRpc2FibGVkLWxpbmstaG92ZXItY29sb3I7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGN1cnNvcjogQGN1cnNvci1kaXNhYmxlZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBPcGVuIGRyb3Bkb3duc1xuICAub3BlbiA+IGEge1xuICAgICYsXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IEBuYXYtbGluay1ob3Zlci1iZztcbiAgICAgIGJvcmRlci1jb2xvcjogQGxpbmstY29sb3I7XG4gICAgfVxuICB9XG5cbiAgLy8gTmF2IGRpdmlkZXJzIChkZXByZWNhdGVkIHdpdGggdjMuMC4xKVxuICAvL1xuICAvLyBUaGlzIHNob3VsZCBoYXZlIGJlZW4gcmVtb3ZlZCBpbiB2MyB3aXRoIHRoZSBkcm9wcGluZyBvZiBgLm5hdi1saXN0YCwgYnV0XG4gIC8vIHdlIG1pc3NlZCBpdC4gV2UgZG9uJ3QgY3VycmVudGx5IHN1cHBvcnQgdGhpcyBhbnl3aGVyZSwgYnV0IGluIHRoZSBpbnRlcmVzdFxuICAvLyBvZiBtYWludGFpbmluZyBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IGluIGNhc2UgeW91IHVzZSBpdCwgaXQncyBkZXByZWNhdGVkLlxuICAubmF2LWRpdmlkZXIge1xuICAgIC5uYXYtZGl2aWRlcigpO1xuICB9XG5cbiAgLy8gUHJldmVudCBJRTggZnJvbSBtaXNwbGFjaW5nIGltZ3NcbiAgLy9cbiAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9oNWJwL2h0bWw1LWJvaWxlcnBsYXRlL2lzc3Vlcy85ODQjaXNzdWVjb21tZW50LTM5ODU5ODlcbiAgPiBsaSA+IGEgPiBpbWcge1xuICAgIG1heC13aWR0aDogbm9uZTtcbiAgfVxufVxuXG5cbi8vIFRhYnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gR2l2ZSB0aGUgdGFicyBzb21ldGhpbmcgdG8gc2l0IG9uXG4ubmF2LXRhYnMge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgQG5hdi10YWJzLWJvcmRlci1jb2xvcjtcbiAgPiBsaSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgLy8gTWFrZSB0aGUgbGlzdC1pdGVtcyBvdmVybGF5IHRoZSBib3R0b20gYm9yZGVyXG4gICAgbWFyZ2luLWJvdHRvbTogLTFweDtcblxuICAgIC8vIEFjdHVhbCB0YWJzIChhcyBsaW5rcylcbiAgICA+IGEge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAycHg7XG4gICAgICBsaW5lLWhlaWdodDogQGxpbmUtaGVpZ2h0LWJhc2U7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IEBib3JkZXItcmFkaXVzLWJhc2UgQGJvcmRlci1yYWRpdXMtYmFzZSAwIDA7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiBAbmF2LXRhYnMtbGluay1ob3Zlci1ib3JkZXItY29sb3IgQG5hdi10YWJzLWxpbmstaG92ZXItYm9yZGVyLWNvbG9yIEBuYXYtdGFicy1ib3JkZXItY29sb3I7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQWN0aXZlIHN0YXRlLCBhbmQgaXRzIDpob3ZlciB0byBvdmVycmlkZSBub3JtYWwgOmhvdmVyXG4gICAgJi5hY3RpdmUgPiBhIHtcbiAgICAgICYsXG4gICAgICAmOmhvdmVyLFxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIGNvbG9yOiBAbmF2LXRhYnMtYWN0aXZlLWxpbmstaG92ZXItY29sb3I7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBuYXYtdGFicy1hY3RpdmUtbGluay1ob3Zlci1iZztcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgQG5hdi10YWJzLWFjdGl2ZS1saW5rLWhvdmVyLWJvcmRlci1jb2xvcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLy8gcHVsbGluZyB0aGlzIGluIG1haW5seSBmb3IgbGVzcyBzaG9ydGhhbmRcbiAgJi5uYXYtanVzdGlmaWVkIHtcbiAgICAubmF2LWp1c3RpZmllZCgpO1xuICAgIC5uYXYtdGFicy1qdXN0aWZpZWQoKTtcbiAgfVxufVxuXG5cbi8vIFBpbGxzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4ubmF2LXBpbGxzIHtcbiAgPiBsaSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG5cbiAgICAvLyBMaW5rcyByZW5kZXJlZCBhcyBwaWxsc1xuICAgID4gYSB7XG4gICAgICBib3JkZXItcmFkaXVzOiBAbmF2LXBpbGxzLWJvcmRlci1yYWRpdXM7XG4gICAgfVxuICAgICsgbGkge1xuICAgICAgbWFyZ2luLWxlZnQ6IDJweDtcbiAgICB9XG5cbiAgICAvLyBBY3RpdmUgc3RhdGVcbiAgICAmLmFjdGl2ZSA+IGEge1xuICAgICAgJixcbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgY29sb3I6IEBuYXYtcGlsbHMtYWN0aXZlLWxpbmstaG92ZXItY29sb3I7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBuYXYtcGlsbHMtYWN0aXZlLWxpbmstaG92ZXItYmc7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cblxuLy8gU3RhY2tlZCBwaWxsc1xuLm5hdi1zdGFja2VkIHtcbiAgPiBsaSB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgKyBsaSB7XG4gICAgICBtYXJnaW4tdG9wOiAycHg7XG4gICAgICBtYXJnaW4tbGVmdDogMDsgLy8gbm8gbmVlZCBmb3IgdGhpcyBnYXAgYmV0d2VlbiBuYXYgaXRlbXNcbiAgICB9XG4gIH1cbn1cblxuXG4vLyBOYXYgdmFyaWF0aW9uc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gSnVzdGlmaWVkIG5hdiBsaW5rc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4ubmF2LWp1c3RpZmllZCB7XG4gIHdpZHRoOiAxMDAlO1xuXG4gID4gbGkge1xuICAgIGZsb2F0OiBub25lO1xuICAgID4gYSB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgfVxuICB9XG5cbiAgPiAuZHJvcGRvd24gLmRyb3Bkb3duLW1lbnUge1xuICAgIHRvcDogYXV0bztcbiAgICBsZWZ0OiBhdXRvO1xuICB9XG5cbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tc20tbWluKSB7XG4gICAgPiBsaSB7XG4gICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgd2lkdGg6IDElO1xuICAgICAgPiBhIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gTW92ZSBib3JkZXJzIHRvIGFuY2hvcnMgaW5zdGVhZCBvZiBib3R0b20gb2YgbGlzdFxuLy9cbi8vIE1peGluIGZvciBhZGRpbmcgb24gdG9wIHRoZSBzaGFyZWQgYC5uYXYtanVzdGlmaWVkYCBzdHlsZXMgZm9yIG91ciB0YWJzXG4ubmF2LXRhYnMtanVzdGlmaWVkIHtcbiAgYm9yZGVyLWJvdHRvbTogMDtcblxuICA+IGxpID4gYSB7XG4gICAgLy8gT3ZlcnJpZGUgbWFyZ2luIGZyb20gLm5hdi10YWJzXG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IEBib3JkZXItcmFkaXVzLWJhc2U7XG4gIH1cblxuICA+IC5hY3RpdmUgPiBhLFxuICA+IC5hY3RpdmUgPiBhOmhvdmVyLFxuICA+IC5hY3RpdmUgPiBhOmZvY3VzIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCBAbmF2LXRhYnMtanVzdGlmaWVkLWxpbmstYm9yZGVyLWNvbG9yO1xuICB9XG5cbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tc20tbWluKSB7XG4gICAgPiBsaSA+IGEge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIEBuYXYtdGFicy1qdXN0aWZpZWQtbGluay1ib3JkZXItY29sb3I7XG4gICAgICBib3JkZXItcmFkaXVzOiBAYm9yZGVyLXJhZGl1cy1iYXNlIEBib3JkZXItcmFkaXVzLWJhc2UgMCAwO1xuICAgIH1cbiAgICA+IC5hY3RpdmUgPiBhLFxuICAgID4gLmFjdGl2ZSA+IGE6aG92ZXIsXG4gICAgPiAuYWN0aXZlID4gYTpmb2N1cyB7XG4gICAgICBib3JkZXItYm90dG9tLWNvbG9yOiBAbmF2LXRhYnMtanVzdGlmaWVkLWFjdGl2ZS1saW5rLWJvcmRlci1jb2xvcjtcbiAgICB9XG4gIH1cbn1cblxuXG4vLyBUYWJiYWJsZSB0YWJzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIEhpZGUgdGFiYmFibGUgcGFuZXMgdG8gc3RhcnQsIHNob3cgdGhlbSB3aGVuIGAuYWN0aXZlYFxuLnRhYi1jb250ZW50IHtcbiAgPiAudGFiLXBhbmUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgPiAuYWN0aXZlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuXG5cbi8vIERyb3Bkb3duc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBTcGVjaWZpYyBkcm9wZG93bnNcbi5uYXYtdGFicyAuZHJvcGRvd24tbWVudSB7XG4gIC8vIG1ha2UgZHJvcGRvd24gYm9yZGVyIG92ZXJsYXAgdGFiIGJvcmRlclxuICBtYXJnaW4tdG9wOiAtMXB4O1xuICAvLyBSZW1vdmUgdGhlIHRvcCByb3VuZGVkIGNvcm5lcnMgaGVyZSBzaW5jZSB0aGVyZSBpcyBhIGhhcmQgZWRnZSBhYm92ZSB0aGUgbWVudVxuICAuYm9yZGVyLXRvcC1yYWRpdXMoMCk7XG59XG4iLCIvL1xuLy8gTmF2YmFyc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4vLyBXcmFwcGVyIGFuZCBiYXNlIGNsYXNzXG4vL1xuLy8gUHJvdmlkZSBhIHN0YXRpYyBuYXZiYXIgZnJvbSB3aGljaCB3ZSBleHBhbmQgdG8gY3JlYXRlIGZ1bGwtd2lkdGgsIGZpeGVkLCBhbmRcbi8vIG90aGVyIG5hdmJhciB2YXJpYXRpb25zLlxuXG4ubmF2YmFyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtaW4taGVpZ2h0OiBAbmF2YmFyLWhlaWdodDsgLy8gRW5zdXJlIGEgbmF2YmFyIGFsd2F5cyBzaG93cyAoZS5nLiwgd2l0aG91dCBhIC5uYXZiYXItYnJhbmQgaW4gY29sbGFwc2VkIG1vZGUpXG4gIG1hcmdpbi1ib3R0b206IEBuYXZiYXItbWFyZ2luLWJvdHRvbTtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG5cbiAgLy8gUHJldmVudCBmbG9hdHMgZnJvbSBicmVha2luZyB0aGUgbmF2YmFyXG4gICY6ZXh0ZW5kKC5jbGVhcmZpeCBhbGwpO1xuXG4gIEBtZWRpYSAobWluLXdpZHRoOiBAZ3JpZC1mbG9hdC1icmVha3BvaW50KSB7XG4gICAgYm9yZGVyLXJhZGl1czogQG5hdmJhci1ib3JkZXItcmFkaXVzO1xuICB9XG59XG5cblxuLy8gTmF2YmFyIGhlYWRpbmdcbi8vXG4vLyBHcm91cHMgYC5uYXZiYXItYnJhbmRgIGFuZCBgLm5hdmJhci10b2dnbGVgIGludG8gYSBzaW5nbGUgY29tcG9uZW50IGZvciBlYXN5XG4vLyBzdHlsaW5nIG9mIHJlc3BvbnNpdmUgYXNwZWN0cy5cblxuLm5hdmJhci1oZWFkZXIge1xuICAmOmV4dGVuZCguY2xlYXJmaXggYWxsKTtcblxuICBAbWVkaWEgKG1pbi13aWR0aDogQGdyaWQtZmxvYXQtYnJlYWtwb2ludCkge1xuICAgIGZsb2F0OiBsZWZ0O1xuICB9XG59XG5cblxuLy8gTmF2YmFyIGNvbGxhcHNlIChib2R5KVxuLy9cbi8vIEdyb3VwIHlvdXIgbmF2YmFyIGNvbnRlbnQgaW50byB0aGlzIGZvciBlYXN5IGNvbGxhcHNpbmcgYW5kIGV4cGFuZGluZyBhY3Jvc3Ncbi8vIHZhcmlvdXMgZGV2aWNlIHNpemVzLiBCeSBkZWZhdWx0LCB0aGlzIGNvbnRlbnQgaXMgY29sbGFwc2VkIHdoZW4gPDc2OHB4LCBidXRcbi8vIHdpbGwgZXhwYW5kIHBhc3QgdGhhdCBmb3IgYSBob3Jpem9udGFsIGRpc3BsYXkuXG4vL1xuLy8gVG8gc3RhcnQgKG9uIG1vYmlsZSBkZXZpY2VzKSB0aGUgbmF2YmFyIGxpbmtzLCBmb3JtcywgYW5kIGJ1dHRvbnMgYXJlIHN0YWNrZWRcbi8vIHZlcnRpY2FsbHkgYW5kIGluY2x1ZGUgYSBgbWF4LWhlaWdodGAgdG8gb3ZlcmZsb3cgaW4gY2FzZSB5b3UgaGF2ZSB0b28gbXVjaFxuLy8gY29udGVudCBmb3IgdGhlIHVzZXIncyB2aWV3cG9ydC5cblxuLm5hdmJhci1jb2xsYXBzZSB7XG4gIG92ZXJmbG93LXg6IHZpc2libGU7XG4gIHBhZGRpbmctcmlnaHQ6IEBuYXZiYXItcGFkZGluZy1ob3Jpem9udGFsO1xuICBwYWRkaW5nLWxlZnQ6ICBAbmF2YmFyLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIHJnYmEoMjU1LDI1NSwyNTUsLjEpO1xuICAmOmV4dGVuZCguY2xlYXJmaXggYWxsKTtcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuXG4gICYuaW4ge1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gIH1cblxuICBAbWVkaWEgKG1pbi13aWR0aDogQGdyaWQtZmxvYXQtYnJlYWtwb2ludCkge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGJvcmRlci10b3A6IDA7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcblxuICAgICYuY29sbGFwc2Uge1xuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgICAgcGFkZGluZy1ib3R0b206IDA7IC8vIE92ZXJyaWRlIGRlZmF1bHQgc2V0dGluZ1xuICAgICAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAmLmluIHtcbiAgICAgIG92ZXJmbG93LXk6IHZpc2libGU7XG4gICAgfVxuXG4gICAgLy8gVW5kbyB0aGUgY29sbGFwc2Ugc2lkZSBwYWRkaW5nIGZvciBuYXZiYXJzIHdpdGggY29udGFpbmVycyB0byBlbnN1cmVcbiAgICAvLyBhbGlnbm1lbnQgb2YgcmlnaHQtYWxpZ25lZCBjb250ZW50cy5cbiAgICAubmF2YmFyLWZpeGVkLXRvcCAmLFxuICAgIC5uYXZiYXItc3RhdGljLXRvcCAmLFxuICAgIC5uYXZiYXItZml4ZWQtYm90dG9tICYge1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICB9XG4gIH1cbn1cblxuLm5hdmJhci1maXhlZC10b3AsXG4ubmF2YmFyLWZpeGVkLWJvdHRvbSB7XG4gIC5uYXZiYXItY29sbGFwc2Uge1xuICAgIG1heC1oZWlnaHQ6IEBuYXZiYXItY29sbGFwc2UtbWF4LWhlaWdodDtcblxuICAgIEBtZWRpYSAobWF4LWRldmljZS13aWR0aDogQHNjcmVlbi14cy1taW4pIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSkge1xuICAgICAgbWF4LWhlaWdodDogMjAwcHg7XG4gICAgfVxuICB9XG59XG5cblxuLy8gQm90aCBuYXZiYXIgaGVhZGVyIGFuZCBjb2xsYXBzZVxuLy9cbi8vIFdoZW4gYSBjb250YWluZXIgaXMgcHJlc2VudCwgY2hhbmdlIHRoZSBiZWhhdmlvciBvZiB0aGUgaGVhZGVyIGFuZCBjb2xsYXBzZS5cblxuLmNvbnRhaW5lcixcbi5jb250YWluZXItZmx1aWQge1xuICA+IC5uYXZiYXItaGVhZGVyLFxuICA+IC5uYXZiYXItY29sbGFwc2Uge1xuICAgIG1hcmdpbi1yaWdodDogLUBuYXZiYXItcGFkZGluZy1ob3Jpem9udGFsO1xuICAgIG1hcmdpbi1sZWZ0OiAgLUBuYXZiYXItcGFkZGluZy1ob3Jpem9udGFsO1xuXG4gICAgQG1lZGlhIChtaW4td2lkdGg6IEBncmlkLWZsb2F0LWJyZWFrcG9pbnQpIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAgMDtcbiAgICB9XG4gIH1cbn1cblxuXG4vL1xuLy8gTmF2YmFyIGFsaWdubWVudCBvcHRpb25zXG4vL1xuLy8gRGlzcGxheSB0aGUgbmF2YmFyIGFjcm9zcyB0aGUgZW50aXJldHkgb2YgdGhlIHBhZ2Ugb3IgZml4ZWQgaXQgdG8gdGhlIHRvcCBvclxuLy8gYm90dG9tIG9mIHRoZSBwYWdlLlxuXG4vLyBTdGF0aWMgdG9wICh1bmZpeGVkLCBidXQgMTAwJSB3aWRlKSBuYXZiYXJcbi5uYXZiYXItc3RhdGljLXRvcCB7XG4gIHotaW5kZXg6IEB6aW5kZXgtbmF2YmFyO1xuICBib3JkZXItd2lkdGg6IDAgMCAxcHg7XG5cbiAgQG1lZGlhIChtaW4td2lkdGg6IEBncmlkLWZsb2F0LWJyZWFrcG9pbnQpIHtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICB9XG59XG5cbi8vIEZpeCB0aGUgdG9wL2JvdHRvbSBuYXZiYXJzIHdoZW4gc2NyZWVuIHJlYWwgZXN0YXRlIHN1cHBvcnRzIGl0XG4ubmF2YmFyLWZpeGVkLXRvcCxcbi5uYXZiYXItZml4ZWQtYm90dG9tIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICByaWdodDogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogQHppbmRleC1uYXZiYXItZml4ZWQ7XG5cbiAgLy8gVW5kbyB0aGUgcm91bmRlZCBjb3JuZXJzXG4gIEBtZWRpYSAobWluLXdpZHRoOiBAZ3JpZC1mbG9hdC1icmVha3BvaW50KSB7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgfVxufVxuLm5hdmJhci1maXhlZC10b3Age1xuICB0b3A6IDA7XG4gIGJvcmRlci13aWR0aDogMCAwIDFweDtcbn1cbi5uYXZiYXItZml4ZWQtYm90dG9tIHtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwOyAvLyBvdmVycmlkZSAubmF2YmFyIGRlZmF1bHRzXG4gIGJvcmRlci13aWR0aDogMXB4IDAgMDtcbn1cblxuXG4vLyBCcmFuZC9wcm9qZWN0IG5hbWVcblxuLm5hdmJhci1icmFuZCB7XG4gIGZsb2F0OiBsZWZ0O1xuICBwYWRkaW5nOiBAbmF2YmFyLXBhZGRpbmctdmVydGljYWwgQG5hdmJhci1wYWRkaW5nLWhvcml6b250YWw7XG4gIGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS1sYXJnZTtcbiAgbGluZS1oZWlnaHQ6IEBsaW5lLWhlaWdodC1jb21wdXRlZDtcbiAgaGVpZ2h0OiBAbmF2YmFyLWhlaWdodDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cblxuICA+IGltZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICBAbWVkaWEgKG1pbi13aWR0aDogQGdyaWQtZmxvYXQtYnJlYWtwb2ludCkge1xuICAgIC5uYXZiYXIgPiAuY29udGFpbmVyICYsXG4gICAgLm5hdmJhciA+IC5jb250YWluZXItZmx1aWQgJiB7XG4gICAgICBtYXJnaW4tbGVmdDogLUBuYXZiYXItcGFkZGluZy1ob3Jpem9udGFsO1xuICAgIH1cbiAgfVxufVxuXG5cbi8vIE5hdmJhciB0b2dnbGVcbi8vXG4vLyBDdXN0b20gYnV0dG9uIGZvciB0b2dnbGluZyB0aGUgYC5uYXZiYXItY29sbGFwc2VgLCBwb3dlcmVkIGJ5IHRoZSBjb2xsYXBzZVxuLy8gSmF2YVNjcmlwdCBwbHVnaW4uXG5cbi5uYXZiYXItdG9nZ2xlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbi1yaWdodDogQG5hdmJhci1wYWRkaW5nLWhvcml6b250YWw7XG4gIHBhZGRpbmc6IDlweCAxMHB4O1xuICAubmF2YmFyLXZlcnRpY2FsLWFsaWduKDM0cHgpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsgLy8gUmVzZXQgdW51c3VhbCBGaXJlZm94LW9uLUFuZHJvaWQgZGVmYXVsdCBzdHlsZTsgc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MvaXNzdWVzLzIxNFxuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogQGJvcmRlci1yYWRpdXMtYmFzZTtcblxuICAvLyBXZSByZW1vdmUgdGhlIGBvdXRsaW5lYCBoZXJlLCBidXQgbGF0ZXIgY29tcGVuc2F0ZSBieSBhdHRhY2hpbmcgYDpob3ZlcmBcbiAgLy8gc3R5bGVzIHRvIGA6Zm9jdXNgLlxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiAwO1xuICB9XG5cbiAgLy8gQmFyc1xuICAuaWNvbi1iYXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAyMnB4O1xuICAgIGhlaWdodDogMnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDFweDtcbiAgfVxuICAuaWNvbi1iYXIgKyAuaWNvbi1iYXIge1xuICAgIG1hcmdpbi10b3A6IDRweDtcbiAgfVxuXG4gIEBtZWRpYSAobWluLXdpZHRoOiBAZ3JpZC1mbG9hdC1icmVha3BvaW50KSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG5cbi8vIE5hdmJhciBuYXYgbGlua3Ncbi8vXG4vLyBCdWlsZHMgb24gdG9wIG9mIHRoZSBgLm5hdmAgY29tcG9uZW50cyB3aXRoIGl0cyBvd24gbW9kaWZpZXIgY2xhc3MgdG8gbWFrZVxuLy8gdGhlIG5hdiB0aGUgZnVsbCBoZWlnaHQgb2YgdGhlIGhvcml6b250YWwgbmF2IChhYm92ZSA3NjhweCkuXG5cbi5uYXZiYXItbmF2IHtcbiAgbWFyZ2luOiAoQG5hdmJhci1wYWRkaW5nLXZlcnRpY2FsIC8gMikgLUBuYXZiYXItcGFkZGluZy1ob3Jpem9udGFsO1xuXG4gID4gbGkgPiBhIHtcbiAgICBwYWRkaW5nLXRvcDogICAgMTBweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcbiAgICBsaW5lLWhlaWdodDogQGxpbmUtaGVpZ2h0LWNvbXB1dGVkO1xuICB9XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IEBncmlkLWZsb2F0LWJyZWFrcG9pbnQtbWF4KSB7XG4gICAgLy8gRHJvcGRvd25zIGdldCBjdXN0b20gZGlzcGxheSB3aGVuIGNvbGxhcHNlZFxuICAgIC5vcGVuIC5kcm9wZG93bi1tZW51IHtcbiAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICBmbG9hdDogbm9uZTtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgID4gbGkgPiBhLFxuICAgICAgLmRyb3Bkb3duLWhlYWRlciB7XG4gICAgICAgIHBhZGRpbmc6IDVweCAxNXB4IDVweCAyNXB4O1xuICAgICAgfVxuICAgICAgPiBsaSA+IGEge1xuICAgICAgICBsaW5lLWhlaWdodDogQGxpbmUtaGVpZ2h0LWNvbXB1dGVkO1xuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gVW5jb2xsYXBzZSB0aGUgbmF2XG4gIEBtZWRpYSAobWluLXdpZHRoOiBAZ3JpZC1mbG9hdC1icmVha3BvaW50KSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luOiAwO1xuXG4gICAgPiBsaSB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgID4gYSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAgICBAbmF2YmFyLXBhZGRpbmctdmVydGljYWw7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBAbmF2YmFyLXBhZGRpbmctdmVydGljYWw7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cblxuLy8gTmF2YmFyIGZvcm1cbi8vXG4vLyBFeHRlbnNpb24gb2YgdGhlIGAuZm9ybS1pbmxpbmVgIHdpdGggc29tZSBleHRyYSBmbGF2b3IgZm9yIG9wdGltdW0gZGlzcGxheSBpblxuLy8gb3VyIG5hdmJhcnMuXG5cbi5uYXZiYXItZm9ybSB7XG4gIG1hcmdpbi1sZWZ0OiAtQG5hdmJhci1wYWRkaW5nLWhvcml6b250YWw7XG4gIG1hcmdpbi1yaWdodDogLUBuYXZiYXItcGFkZGluZy1ob3Jpem9udGFsO1xuICBwYWRkaW5nOiAxMHB4IEBuYXZiYXItcGFkZGluZy1ob3Jpem9udGFsO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgQHNoYWRvdzogaW5zZXQgMCAxcHggMCByZ2JhKDI1NSwyNTUsMjU1LC4xKSwgMCAxcHggMCByZ2JhKDI1NSwyNTUsMjU1LC4xKTtcbiAgLmJveC1zaGFkb3coQHNoYWRvdyk7XG5cbiAgLy8gTWl4aW4gYmVoYXZpb3IgZm9yIG9wdGltdW0gZGlzcGxheVxuICAuZm9ybS1pbmxpbmUoKTtcblxuICAuZm9ybS1ncm91cCB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IEBncmlkLWZsb2F0LWJyZWFrcG9pbnQtbWF4KSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gVmVydGljYWxseSBjZW50ZXIgaW4gZXhwYW5kZWQsIGhvcml6b250YWwgbmF2YmFyXG4gIC5uYXZiYXItdmVydGljYWwtYWxpZ24oQGlucHV0LWhlaWdodC1iYXNlKTtcblxuICAvLyBVbmRvIDEwMCUgd2lkdGggZm9yIHB1bGwgY2xhc3Nlc1xuICBAbWVkaWEgKG1pbi13aWR0aDogQGdyaWQtZmxvYXQtYnJlYWtwb2ludCkge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGJvcmRlcjogMDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgLmJveC1zaGFkb3cobm9uZSk7XG4gIH1cbn1cblxuXG4vLyBEcm9wZG93biBtZW51c1xuXG4vLyBNZW51IHBvc2l0aW9uIGFuZCBtZW51IGNhcmV0c1xuLm5hdmJhci1uYXYgPiBsaSA+IC5kcm9wZG93bi1tZW51IHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgLmJvcmRlci10b3AtcmFkaXVzKDApO1xufVxuLy8gTWVudSBwb3NpdGlvbiBhbmQgbWVudSBjYXJldCBzdXBwb3J0IGZvciBkcm9wdXBzIHZpYSBleHRyYSBkcm9wdXAgY2xhc3Ncbi5uYXZiYXItZml4ZWQtYm90dG9tIC5uYXZiYXItbmF2ID4gbGkgPiAuZHJvcGRvd24tbWVudSB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIC5ib3JkZXItdG9wLXJhZGl1cyhAbmF2YmFyLWJvcmRlci1yYWRpdXMpO1xuICAuYm9yZGVyLWJvdHRvbS1yYWRpdXMoMCk7XG59XG5cblxuLy8gQnV0dG9ucyBpbiBuYXZiYXJzXG4vL1xuLy8gVmVydGljYWxseSBjZW50ZXIgYSBidXR0b24gd2l0aGluIGEgbmF2YmFyICh3aGVuICpub3QqIGluIGEgZm9ybSkuXG5cbi5uYXZiYXItYnRuIHtcbiAgLm5hdmJhci12ZXJ0aWNhbC1hbGlnbihAaW5wdXQtaGVpZ2h0LWJhc2UpO1xuXG4gICYuYnRuLXNtIHtcbiAgICAubmF2YmFyLXZlcnRpY2FsLWFsaWduKEBpbnB1dC1oZWlnaHQtc21hbGwpO1xuICB9XG4gICYuYnRuLXhzIHtcbiAgICAubmF2YmFyLXZlcnRpY2FsLWFsaWduKDIyKTtcbiAgfVxufVxuXG5cbi8vIFRleHQgaW4gbmF2YmFyc1xuLy9cbi8vIEFkZCBhIGNsYXNzIHRvIG1ha2UgYW55IGVsZW1lbnQgcHJvcGVybHkgYWxpZ24gaXRzZWxmIHZlcnRpY2FsbHkgd2l0aGluIHRoZSBuYXZiYXJzLlxuXG4ubmF2YmFyLXRleHQge1xuICAubmF2YmFyLXZlcnRpY2FsLWFsaWduKEBsaW5lLWhlaWdodC1jb21wdXRlZCk7XG5cbiAgQG1lZGlhIChtaW4td2lkdGg6IEBncmlkLWZsb2F0LWJyZWFrcG9pbnQpIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tbGVmdDogQG5hdmJhci1wYWRkaW5nLWhvcml6b250YWw7XG4gICAgbWFyZ2luLXJpZ2h0OiBAbmF2YmFyLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgfVxufVxuXG5cbi8vIENvbXBvbmVudCBhbGlnbm1lbnRcbi8vXG4vLyBSZXB1cnBvc2UgdGhlIHB1bGwgdXRpbGl0aWVzIGFzIHRoZWlyIG93biBuYXZiYXIgdXRpbGl0aWVzIHRvIGF2b2lkIHNwZWNpZmljaXR5XG4vLyBpc3N1ZXMgd2l0aCBwYXJlbnRzIGFuZCBjaGFpbmluZy4gT25seSBkbyB0aGlzIHdoZW4gdGhlIG5hdmJhciBpcyB1bmNvbGxhcHNlZFxuLy8gdGhvdWdoIHNvIHRoYXQgbmF2YmFyIGNvbnRlbnRzIHByb3Blcmx5IHN0YWNrIGFuZCBhbGlnbiBpbiBtb2JpbGUuXG4vL1xuLy8gRGVjbGFyZWQgYWZ0ZXIgdGhlIG5hdmJhciBjb21wb25lbnRzIHRvIGVuc3VyZSBtb3JlIHNwZWNpZmljaXR5IG9uIHRoZSBtYXJnaW5zLlxuXG5AbWVkaWEgKG1pbi13aWR0aDogQGdyaWQtZmxvYXQtYnJlYWtwb2ludCkge1xuICAubmF2YmFyLWxlZnQgIHsgLnB1bGwtbGVmdCgpOyB9XG4gIC5uYXZiYXItcmlnaHQge1xuICAgIC5wdWxsLXJpZ2h0KCk7XG4gICAgbWFyZ2luLXJpZ2h0OiAtQG5hdmJhci1wYWRkaW5nLWhvcml6b250YWw7XG5cbiAgICB+IC5uYXZiYXItcmlnaHQge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIH1cbiAgfVxufVxuXG5cbi8vIEFsdGVybmF0ZSBuYXZiYXJzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBEZWZhdWx0IG5hdmJhclxuLm5hdmJhci1kZWZhdWx0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQG5hdmJhci1kZWZhdWx0LWJnO1xuICBib3JkZXItY29sb3I6IEBuYXZiYXItZGVmYXVsdC1ib3JkZXI7XG5cbiAgLm5hdmJhci1icmFuZCB7XG4gICAgY29sb3I6IEBuYXZiYXItZGVmYXVsdC1icmFuZC1jb2xvcjtcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgY29sb3I6IEBuYXZiYXItZGVmYXVsdC1icmFuZC1ob3Zlci1jb2xvcjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IEBuYXZiYXItZGVmYXVsdC1icmFuZC1ob3Zlci1iZztcbiAgICB9XG4gIH1cblxuICAubmF2YmFyLXRleHQge1xuICAgIGNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtY29sb3I7XG4gIH1cblxuICAubmF2YmFyLW5hdiB7XG4gICAgPiBsaSA+IGEge1xuICAgICAgY29sb3I6IEBuYXZiYXItZGVmYXVsdC1saW5rLWNvbG9yO1xuXG4gICAgICAmOmhvdmVyLFxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIGNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtbGluay1ob3Zlci1jb2xvcjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQG5hdmJhci1kZWZhdWx0LWxpbmstaG92ZXItYmc7XG4gICAgICB9XG4gICAgfVxuICAgID4gLmFjdGl2ZSA+IGEge1xuICAgICAgJixcbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgY29sb3I6IEBuYXZiYXItZGVmYXVsdC1saW5rLWFjdGl2ZS1jb2xvcjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQG5hdmJhci1kZWZhdWx0LWxpbmstYWN0aXZlLWJnO1xuICAgICAgfVxuICAgIH1cbiAgICA+IC5kaXNhYmxlZCA+IGEge1xuICAgICAgJixcbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgY29sb3I6IEBuYXZiYXItZGVmYXVsdC1saW5rLWRpc2FibGVkLWNvbG9yO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtbGluay1kaXNhYmxlZC1iZztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubmF2YmFyLXRvZ2dsZSB7XG4gICAgYm9yZGVyLWNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtdG9nZ2xlLWJvcmRlci1jb2xvcjtcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogQG5hdmJhci1kZWZhdWx0LXRvZ2dsZS1ob3Zlci1iZztcbiAgICB9XG4gICAgLmljb24tYmFyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IEBuYXZiYXItZGVmYXVsdC10b2dnbGUtaWNvbi1iYXItYmc7XG4gICAgfVxuICB9XG5cbiAgLm5hdmJhci1jb2xsYXBzZSxcbiAgLm5hdmJhci1mb3JtIHtcbiAgICBib3JkZXItY29sb3I6IEBuYXZiYXItZGVmYXVsdC1ib3JkZXI7XG4gIH1cblxuICAvLyBEcm9wZG93biBtZW51IGl0ZW1zXG4gIC5uYXZiYXItbmF2IHtcbiAgICAvLyBSZW1vdmUgYmFja2dyb3VuZCBjb2xvciBmcm9tIG9wZW4gZHJvcGRvd25cbiAgICA+IC5vcGVuID4gYSB7XG4gICAgICAmLFxuICAgICAgJjpob3ZlcixcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtbGluay1hY3RpdmUtYmc7XG4gICAgICAgIGNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtbGluay1hY3RpdmUtY29sb3I7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IEBncmlkLWZsb2F0LWJyZWFrcG9pbnQtbWF4KSB7XG4gICAgICAvLyBEcm9wZG93bnMgZ2V0IGN1c3RvbSBkaXNwbGF5IHdoZW4gY29sbGFwc2VkXG4gICAgICAub3BlbiAuZHJvcGRvd24tbWVudSB7XG4gICAgICAgID4gbGkgPiBhIHtcbiAgICAgICAgICBjb2xvcjogQG5hdmJhci1kZWZhdWx0LWxpbmstY29sb3I7XG4gICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtbGluay1ob3Zlci1jb2xvcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBuYXZiYXItZGVmYXVsdC1saW5rLWhvdmVyLWJnO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICA+IC5hY3RpdmUgPiBhIHtcbiAgICAgICAgICAmLFxuICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBjb2xvcjogQG5hdmJhci1kZWZhdWx0LWxpbmstYWN0aXZlLWNvbG9yO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQG5hdmJhci1kZWZhdWx0LWxpbmstYWN0aXZlLWJnO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICA+IC5kaXNhYmxlZCA+IGEge1xuICAgICAgICAgICYsXG4gICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtbGluay1kaXNhYmxlZC1jb2xvcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBuYXZiYXItZGVmYXVsdC1saW5rLWRpc2FibGVkLWJnO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG5cbiAgLy8gTGlua3MgaW4gbmF2YmFyc1xuICAvL1xuICAvLyBBZGQgYSBjbGFzcyB0byBlbnN1cmUgbGlua3Mgb3V0c2lkZSB0aGUgbmF2YmFyIG5hdiBhcmUgY29sb3JlZCBjb3JyZWN0bHkuXG5cbiAgLm5hdmJhci1saW5rIHtcbiAgICBjb2xvcjogQG5hdmJhci1kZWZhdWx0LWxpbmstY29sb3I7XG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogQG5hdmJhci1kZWZhdWx0LWxpbmstaG92ZXItY29sb3I7XG4gICAgfVxuICB9XG5cbiAgLmJ0bi1saW5rIHtcbiAgICBjb2xvcjogQG5hdmJhci1kZWZhdWx0LWxpbmstY29sb3I7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIGNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtbGluay1ob3Zlci1jb2xvcjtcbiAgICB9XG4gICAgJltkaXNhYmxlZF0sXG4gICAgZmllbGRzZXRbZGlzYWJsZWRdICYge1xuICAgICAgJjpob3ZlcixcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBjb2xvcjogQG5hdmJhci1kZWZhdWx0LWxpbmstZGlzYWJsZWQtY29sb3I7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIEludmVyc2UgbmF2YmFyXG5cbi5uYXZiYXItaW52ZXJzZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBuYXZiYXItaW52ZXJzZS1iZztcbiAgYm9yZGVyLWNvbG9yOiBAbmF2YmFyLWludmVyc2UtYm9yZGVyO1xuXG4gIC5uYXZiYXItYnJhbmQge1xuICAgIGNvbG9yOiBAbmF2YmFyLWludmVyc2UtYnJhbmQtY29sb3I7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIGNvbG9yOiBAbmF2YmFyLWludmVyc2UtYnJhbmQtaG92ZXItY29sb3I7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmF2YmFyLWludmVyc2UtYnJhbmQtaG92ZXItYmc7XG4gICAgfVxuICB9XG5cbiAgLm5hdmJhci10ZXh0IHtcbiAgICBjb2xvcjogQG5hdmJhci1pbnZlcnNlLWNvbG9yO1xuICB9XG5cbiAgLm5hdmJhci1uYXYge1xuICAgID4gbGkgPiBhIHtcbiAgICAgIGNvbG9yOiBAbmF2YmFyLWludmVyc2UtbGluay1jb2xvcjtcblxuICAgICAgJjpob3ZlcixcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBjb2xvcjogQG5hdmJhci1pbnZlcnNlLWxpbmstaG92ZXItY29sb3I7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBuYXZiYXItaW52ZXJzZS1saW5rLWhvdmVyLWJnO1xuICAgICAgfVxuICAgIH1cbiAgICA+IC5hY3RpdmUgPiBhIHtcbiAgICAgICYsXG4gICAgICAmOmhvdmVyLFxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIGNvbG9yOiBAbmF2YmFyLWludmVyc2UtbGluay1hY3RpdmUtY29sb3I7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBuYXZiYXItaW52ZXJzZS1saW5rLWFjdGl2ZS1iZztcbiAgICAgIH1cbiAgICB9XG4gICAgPiAuZGlzYWJsZWQgPiBhIHtcbiAgICAgICYsXG4gICAgICAmOmhvdmVyLFxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIGNvbG9yOiBAbmF2YmFyLWludmVyc2UtbGluay1kaXNhYmxlZC1jb2xvcjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQG5hdmJhci1pbnZlcnNlLWxpbmstZGlzYWJsZWQtYmc7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gRGFya2VuIHRoZSByZXNwb25zaXZlIG5hdiB0b2dnbGVcbiAgLm5hdmJhci10b2dnbGUge1xuICAgIGJvcmRlci1jb2xvcjogQG5hdmJhci1pbnZlcnNlLXRvZ2dsZS1ib3JkZXItY29sb3I7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IEBuYXZiYXItaW52ZXJzZS10b2dnbGUtaG92ZXItYmc7XG4gICAgfVxuICAgIC5pY29uLWJhciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmF2YmFyLWludmVyc2UtdG9nZ2xlLWljb24tYmFyLWJnO1xuICAgIH1cbiAgfVxuXG4gIC5uYXZiYXItY29sbGFwc2UsXG4gIC5uYXZiYXItZm9ybSB7XG4gICAgYm9yZGVyLWNvbG9yOiBkYXJrZW4oQG5hdmJhci1pbnZlcnNlLWJnLCA3JSk7XG4gIH1cblxuICAvLyBEcm9wZG93bnNcbiAgLm5hdmJhci1uYXYge1xuICAgID4gLm9wZW4gPiBhIHtcbiAgICAgICYsXG4gICAgICAmOmhvdmVyLFxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBuYXZiYXItaW52ZXJzZS1saW5rLWFjdGl2ZS1iZztcbiAgICAgICAgY29sb3I6IEBuYXZiYXItaW52ZXJzZS1saW5rLWFjdGl2ZS1jb2xvcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAbWVkaWEgKG1heC13aWR0aDogQGdyaWQtZmxvYXQtYnJlYWtwb2ludC1tYXgpIHtcbiAgICAgIC8vIERyb3Bkb3ducyBnZXQgY3VzdG9tIGRpc3BsYXlcbiAgICAgIC5vcGVuIC5kcm9wZG93bi1tZW51IHtcbiAgICAgICAgPiAuZHJvcGRvd24taGVhZGVyIHtcbiAgICAgICAgICBib3JkZXItY29sb3I6IEBuYXZiYXItaW52ZXJzZS1ib3JkZXI7XG4gICAgICAgIH1cbiAgICAgICAgLmRpdmlkZXIge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBuYXZiYXItaW52ZXJzZS1ib3JkZXI7XG4gICAgICAgIH1cbiAgICAgICAgPiBsaSA+IGEge1xuICAgICAgICAgIGNvbG9yOiBAbmF2YmFyLWludmVyc2UtbGluay1jb2xvcjtcbiAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgY29sb3I6IEBuYXZiYXItaW52ZXJzZS1saW5rLWhvdmVyLWNvbG9yO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQG5hdmJhci1pbnZlcnNlLWxpbmstaG92ZXItYmc7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgID4gLmFjdGl2ZSA+IGEge1xuICAgICAgICAgICYsXG4gICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGNvbG9yOiBAbmF2YmFyLWludmVyc2UtbGluay1hY3RpdmUtY29sb3I7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmF2YmFyLWludmVyc2UtbGluay1hY3RpdmUtYmc7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgID4gLmRpc2FibGVkID4gYSB7XG4gICAgICAgICAgJixcbiAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgY29sb3I6IEBuYXZiYXItaW52ZXJzZS1saW5rLWRpc2FibGVkLWNvbG9yO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQG5hdmJhci1pbnZlcnNlLWxpbmstZGlzYWJsZWQtYmc7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm5hdmJhci1saW5rIHtcbiAgICBjb2xvcjogQG5hdmJhci1pbnZlcnNlLWxpbmstY29sb3I7XG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogQG5hdmJhci1pbnZlcnNlLWxpbmstaG92ZXItY29sb3I7XG4gICAgfVxuICB9XG5cbiAgLmJ0bi1saW5rIHtcbiAgICBjb2xvcjogQG5hdmJhci1pbnZlcnNlLWxpbmstY29sb3I7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIGNvbG9yOiBAbmF2YmFyLWludmVyc2UtbGluay1ob3Zlci1jb2xvcjtcbiAgICB9XG4gICAgJltkaXNhYmxlZF0sXG4gICAgZmllbGRzZXRbZGlzYWJsZWRdICYge1xuICAgICAgJjpob3ZlcixcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBjb2xvcjogQG5hdmJhci1pbnZlcnNlLWxpbmstZGlzYWJsZWQtY29sb3I7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBOYXZiYXIgdmVydGljYWwgYWxpZ25cbi8vXG4vLyBWZXJ0aWNhbGx5IGNlbnRlciBlbGVtZW50cyBpbiB0aGUgbmF2YmFyLlxuLy8gRXhhbXBsZTogYW4gZWxlbWVudCBoYXMgYSBoZWlnaHQgb2YgMzBweCwgc28gd3JpdGUgb3V0IGAubmF2YmFyLXZlcnRpY2FsLWFsaWduKDMwcHgpO2AgdG8gY2FsY3VsYXRlIHRoZSBhcHByb3ByaWF0ZSB0b3AgbWFyZ2luLlxuXG4ubmF2YmFyLXZlcnRpY2FsLWFsaWduKEBlbGVtZW50LWhlaWdodCkge1xuICBtYXJnaW4tdG9wOiAoKEBuYXZiYXItaGVpZ2h0IC0gQGVsZW1lbnQtaGVpZ2h0KSAvIDIpO1xuICBtYXJnaW4tYm90dG9tOiAoKEBuYXZiYXItaGVpZ2h0IC0gQGVsZW1lbnQtaGVpZ2h0KSAvIDIpO1xufVxuIiwiLy9cbi8vIFV0aWxpdHkgY2xhc3Nlc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4vLyBGbG9hdHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLmNsZWFyZml4IHtcbiAgLmNsZWFyZml4KCk7XG59XG4uY2VudGVyLWJsb2NrIHtcbiAgLmNlbnRlci1ibG9jaygpO1xufVxuLnB1bGwtcmlnaHQge1xuICBmbG9hdDogcmlnaHQgIWltcG9ydGFudDtcbn1cbi5wdWxsLWxlZnQge1xuICBmbG9hdDogbGVmdCAhaW1wb3J0YW50O1xufVxuXG5cbi8vIFRvZ2dsaW5nIGNvbnRlbnRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gTm90ZTogRGVwcmVjYXRlZCAuaGlkZSBpbiBmYXZvciBvZiAuaGlkZGVuIG9yIC5zci1vbmx5IChhcyBhcHByb3ByaWF0ZSkgaW4gdjMuMC4xXG4uaGlkZSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cbi5zaG93IHtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbn1cbi5pbnZpc2libGUge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG4udGV4dC1oaWRlIHtcbiAgLnRleHQtaGlkZSgpO1xufVxuXG5cbi8vIEhpZGUgZnJvbSBzY3JlZW5yZWFkZXJzIGFuZCBicm93c2Vyc1xuLy9cbi8vIENyZWRpdDogSFRNTDUgQm9pbGVycGxhdGVcblxuLmhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuXG4vLyBGb3IgQWZmaXggcGx1Z2luXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5hZmZpeCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbn1cbiIsIi8vXG4vLyBCcmVhZGNydW1ic1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4uYnJlYWRjcnVtYiB7XG4gIHBhZGRpbmc6IEBicmVhZGNydW1iLXBhZGRpbmctdmVydGljYWwgQGJyZWFkY3J1bWItcGFkZGluZy1ob3Jpem9udGFsO1xuICBtYXJnaW4tYm90dG9tOiBAbGluZS1oZWlnaHQtY29tcHV0ZWQ7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IEBicmVhZGNydW1iLWJnO1xuICBib3JkZXItcmFkaXVzOiBAYm9yZGVyLXJhZGl1cy1iYXNlO1xuXG4gID4gbGkge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICsgbGk6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiQHticmVhZGNydW1iLXNlcGFyYXRvcn1cXDAwYTBcIjsgLy8gVW5pY29kZSBzcGFjZSBhZGRlZCBzaW5jZSBpbmxpbmUtYmxvY2sgbWVhbnMgbm9uLWNvbGxhcHNpbmcgd2hpdGUtc3BhY2VcbiAgICAgIHBhZGRpbmc6IDAgNXB4O1xuICAgICAgY29sb3I6IEBicmVhZGNydW1iLWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gID4gLmFjdGl2ZSB7XG4gICAgY29sb3I6IEBicmVhZGNydW1iLWFjdGl2ZS1jb2xvcjtcbiAgfVxufVxuIiwiLy9cbi8vIFBhZ2luYXRpb24gKG11bHRpcGxlIHBhZ2VzKVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5wYWdpbmF0aW9uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIG1hcmdpbjogQGxpbmUtaGVpZ2h0LWNvbXB1dGVkIDA7XG4gIGJvcmRlci1yYWRpdXM6IEBib3JkZXItcmFkaXVzLWJhc2U7XG5cbiAgPiBsaSB7XG4gICAgZGlzcGxheTogaW5saW5lOyAvLyBSZW1vdmUgbGlzdC1zdHlsZSBhbmQgYmxvY2stbGV2ZWwgZGVmYXVsdHNcbiAgICA+IGEsXG4gICAgPiBzcGFuIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGZsb2F0OiBsZWZ0OyAvLyBDb2xsYXBzZSB3aGl0ZS1zcGFjZVxuICAgICAgcGFkZGluZzogQHBhZGRpbmctYmFzZS12ZXJ0aWNhbCBAcGFkZGluZy1iYXNlLWhvcml6b250YWw7XG4gICAgICBsaW5lLWhlaWdodDogQGxpbmUtaGVpZ2h0LWJhc2U7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBjb2xvcjogQHBhZ2luYXRpb24tY29sb3I7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAcGFnaW5hdGlvbi1iZztcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIEBwYWdpbmF0aW9uLWJvcmRlcjtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMXB4O1xuICAgIH1cbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgID4gYSxcbiAgICAgID4gc3BhbiB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAuYm9yZGVyLWxlZnQtcmFkaXVzKEBib3JkZXItcmFkaXVzLWJhc2UpO1xuICAgICAgfVxuICAgIH1cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgPiBhLFxuICAgICAgPiBzcGFuIHtcbiAgICAgICAgLmJvcmRlci1yaWdodC1yYWRpdXMoQGJvcmRlci1yYWRpdXMtYmFzZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgPiBsaSA+IGEsXG4gID4gbGkgPiBzcGFuIHtcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgei1pbmRleDogMjtcbiAgICAgIGNvbG9yOiBAcGFnaW5hdGlvbi1ob3Zlci1jb2xvcjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IEBwYWdpbmF0aW9uLWhvdmVyLWJnO1xuICAgICAgYm9yZGVyLWNvbG9yOiBAcGFnaW5hdGlvbi1ob3Zlci1ib3JkZXI7XG4gICAgfVxuICB9XG5cbiAgPiAuYWN0aXZlID4gYSxcbiAgPiAuYWN0aXZlID4gc3BhbiB7XG4gICAgJixcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgei1pbmRleDogMztcbiAgICAgIGNvbG9yOiBAcGFnaW5hdGlvbi1hY3RpdmUtY29sb3I7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAcGFnaW5hdGlvbi1hY3RpdmUtYmc7XG4gICAgICBib3JkZXItY29sb3I6IEBwYWdpbmF0aW9uLWFjdGl2ZS1ib3JkZXI7XG4gICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgfVxuICB9XG5cbiAgPiAuZGlzYWJsZWQge1xuICAgID4gc3BhbixcbiAgICA+IHNwYW46aG92ZXIsXG4gICAgPiBzcGFuOmZvY3VzLFxuICAgID4gYSxcbiAgICA+IGE6aG92ZXIsXG4gICAgPiBhOmZvY3VzIHtcbiAgICAgIGNvbG9yOiBAcGFnaW5hdGlvbi1kaXNhYmxlZC1jb2xvcjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IEBwYWdpbmF0aW9uLWRpc2FibGVkLWJnO1xuICAgICAgYm9yZGVyLWNvbG9yOiBAcGFnaW5hdGlvbi1kaXNhYmxlZC1ib3JkZXI7XG4gICAgICBjdXJzb3I6IEBjdXJzb3ItZGlzYWJsZWQ7XG4gICAgfVxuICB9XG59XG5cbi8vIFNpemluZ1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gTGFyZ2Vcbi5wYWdpbmF0aW9uLWxnIHtcbiAgLnBhZ2luYXRpb24tc2l6ZShAcGFkZGluZy1sYXJnZS12ZXJ0aWNhbDsgQHBhZGRpbmctbGFyZ2UtaG9yaXpvbnRhbDsgQGZvbnQtc2l6ZS1sYXJnZTsgQGxpbmUtaGVpZ2h0LWxhcmdlOyBAYm9yZGVyLXJhZGl1cy1sYXJnZSk7XG59XG5cbi8vIFNtYWxsXG4ucGFnaW5hdGlvbi1zbSB7XG4gIC5wYWdpbmF0aW9uLXNpemUoQHBhZGRpbmctc21hbGwtdmVydGljYWw7IEBwYWRkaW5nLXNtYWxsLWhvcml6b250YWw7IEBmb250LXNpemUtc21hbGw7IEBsaW5lLWhlaWdodC1zbWFsbDsgQGJvcmRlci1yYWRpdXMtc21hbGwpO1xufVxuIiwiLy8gUGFnaW5hdGlvblxuXG4ucGFnaW5hdGlvbi1zaXplKEBwYWRkaW5nLXZlcnRpY2FsOyBAcGFkZGluZy1ob3Jpem9udGFsOyBAZm9udC1zaXplOyBAbGluZS1oZWlnaHQ7IEBib3JkZXItcmFkaXVzKSB7XG4gID4gbGkge1xuICAgID4gYSxcbiAgICA+IHNwYW4ge1xuICAgICAgcGFkZGluZzogQHBhZGRpbmctdmVydGljYWwgQHBhZGRpbmctaG9yaXpvbnRhbDtcbiAgICAgIGZvbnQtc2l6ZTogQGZvbnQtc2l6ZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiBAbGluZS1oZWlnaHQ7XG4gICAgfVxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgPiBhLFxuICAgICAgPiBzcGFuIHtcbiAgICAgICAgLmJvcmRlci1sZWZ0LXJhZGl1cyhAYm9yZGVyLXJhZGl1cyk7XG4gICAgICB9XG4gICAgfVxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICA+IGEsXG4gICAgICA+IHNwYW4ge1xuICAgICAgICAuYm9yZGVyLXJpZ2h0LXJhZGl1cyhAYm9yZGVyLXJhZGl1cyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvL1xuLy8gUGFnZXIgcGFnaW5hdGlvblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4ucGFnZXIge1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIG1hcmdpbjogQGxpbmUtaGVpZ2h0LWNvbXB1dGVkIDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgJjpleHRlbmQoLmNsZWFyZml4IGFsbCk7XG4gIGxpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgPiBhLFxuICAgID4gc3BhbiB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBwYWRkaW5nOiA1cHggMTRweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IEBwYWdlci1iZztcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIEBwYWdlci1ib3JkZXI7XG4gICAgICBib3JkZXItcmFkaXVzOiBAcGFnZXItYm9yZGVyLXJhZGl1cztcbiAgICB9XG5cbiAgICA+IGE6aG92ZXIsXG4gICAgPiBhOmZvY3VzIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IEBwYWdlci1ob3Zlci1iZztcbiAgICB9XG4gIH1cblxuICAubmV4dCB7XG4gICAgPiBhLFxuICAgID4gc3BhbiB7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxuICB9XG5cbiAgLnByZXZpb3VzIHtcbiAgICA+IGEsXG4gICAgPiBzcGFuIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgIH1cbiAgfVxuXG4gIC5kaXNhYmxlZCB7XG4gICAgPiBhLFxuICAgID4gYTpob3ZlcixcbiAgICA+IGE6Zm9jdXMsXG4gICAgPiBzcGFuIHtcbiAgICAgIGNvbG9yOiBAcGFnZXItZGlzYWJsZWQtY29sb3I7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAcGFnZXItYmc7XG4gICAgICBjdXJzb3I6IEBjdXJzb3ItZGlzYWJsZWQ7XG4gICAgfVxuICB9XG59XG4iLCIvL1xuLy8gTGFiZWxzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4ubGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmU7XG4gIHBhZGRpbmc6IC4yZW0gLjZlbSAuM2VtO1xuICBmb250LXNpemU6IDc1JTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogQGxhYmVsLWNvbG9yO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgYm9yZGVyLXJhZGl1czogLjI1ZW07XG5cbiAgLy8gQWRkIGhvdmVyIGVmZmVjdHMsIGJ1dCBvbmx5IGZvciBsaW5rc1xuICBhJiB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIGNvbG9yOiBAbGFiZWwtbGluay1ob3Zlci1jb2xvcjtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gIH1cblxuICAvLyBFbXB0eSBsYWJlbHMgY29sbGFwc2UgYXV0b21hdGljYWxseSAobm90IGF2YWlsYWJsZSBpbiBJRTgpXG4gICY6ZW1wdHkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAvLyBRdWljayBmaXggZm9yIGxhYmVscyBpbiBidXR0b25zXG4gIC5idG4gJiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogLTFweDtcbiAgfVxufVxuXG4vLyBDb2xvcnNcbi8vIENvbnRleHR1YWwgdmFyaWF0aW9ucyAobGlua2VkIGxhYmVscyBnZXQgZGFya2VyIG9uIDpob3ZlcilcblxuLmxhYmVsLWRlZmF1bHQge1xuICAubGFiZWwtdmFyaWFudChAbGFiZWwtZGVmYXVsdC1iZyk7XG59XG5cbi5sYWJlbC1wcmltYXJ5IHtcbiAgLmxhYmVsLXZhcmlhbnQoQGxhYmVsLXByaW1hcnktYmcpO1xufVxuXG4ubGFiZWwtc3VjY2VzcyB7XG4gIC5sYWJlbC12YXJpYW50KEBsYWJlbC1zdWNjZXNzLWJnKTtcbn1cblxuLmxhYmVsLWluZm8ge1xuICAubGFiZWwtdmFyaWFudChAbGFiZWwtaW5mby1iZyk7XG59XG5cbi5sYWJlbC13YXJuaW5nIHtcbiAgLmxhYmVsLXZhcmlhbnQoQGxhYmVsLXdhcm5pbmctYmcpO1xufVxuXG4ubGFiZWwtZGFuZ2VyIHtcbiAgLmxhYmVsLXZhcmlhbnQoQGxhYmVsLWRhbmdlci1iZyk7XG59XG4iLCIvLyBMYWJlbHNcblxuLmxhYmVsLXZhcmlhbnQoQGNvbG9yKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBjb2xvcjtcblxuICAmW2hyZWZdIHtcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKEBjb2xvciwgMTAlKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vXG4vLyBCYWRnZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLy8gQmFzZSBjbGFzc1xuLmJhZGdlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtaW4td2lkdGg6IDEwcHg7XG4gIHBhZGRpbmc6IDNweCA3cHg7XG4gIGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS1zbWFsbDtcbiAgZm9udC13ZWlnaHQ6IEBiYWRnZS1mb250LXdlaWdodDtcbiAgY29sb3I6IEBiYWRnZS1jb2xvcjtcbiAgbGluZS1oZWlnaHQ6IEBiYWRnZS1saW5lLWhlaWdodDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAYmFkZ2UtYmc7XG4gIGJvcmRlci1yYWRpdXM6IEBiYWRnZS1ib3JkZXItcmFkaXVzO1xuXG4gIC8vIEVtcHR5IGJhZGdlcyBjb2xsYXBzZSBhdXRvbWF0aWNhbGx5IChub3QgYXZhaWxhYmxlIGluIElFOClcbiAgJjplbXB0eSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC8vIFF1aWNrIGZpeCBmb3IgYmFkZ2VzIGluIGJ1dHRvbnNcbiAgLmJ0biAmIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAtMXB4O1xuICB9XG5cbiAgLmJ0bi14cyAmLFxuICAuYnRuLWdyb3VwLXhzID4gLmJ0biAmIHtcbiAgICB0b3A6IDA7XG4gICAgcGFkZGluZzogMXB4IDVweDtcbiAgfVxuXG4gIC8vIEhvdmVyIHN0YXRlLCBidXQgb25seSBmb3IgbGlua3NcbiAgYSYge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBjb2xvcjogQGJhZGdlLWxpbmstaG92ZXItY29sb3I7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuICB9XG5cbiAgLy8gQWNjb3VudCBmb3IgYmFkZ2VzIGluIG5hdnNcbiAgLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmUgPiAmLFxuICAubmF2LXBpbGxzID4gLmFjdGl2ZSA+IGEgPiAmIHtcbiAgICBjb2xvcjogQGJhZGdlLWFjdGl2ZS1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAYmFkZ2UtYWN0aXZlLWJnO1xuICB9XG5cbiAgLmxpc3QtZ3JvdXAtaXRlbSA+ICYge1xuICAgIGZsb2F0OiByaWdodDtcbiAgfVxuXG4gIC5saXN0LWdyb3VwLWl0ZW0gPiAmICsgJiB7XG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gIH1cblxuICAubmF2LXBpbGxzID4gbGkgPiBhID4gJiB7XG4gICAgbWFyZ2luLWxlZnQ6IDNweDtcbiAgfVxufVxuIiwiLy9cbi8vIEp1bWJvdHJvblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4uanVtYm90cm9uIHtcbiAgcGFkZGluZy10b3A6ICAgIEBqdW1ib3Ryb24tcGFkZGluZztcbiAgcGFkZGluZy1ib3R0b206IEBqdW1ib3Ryb24tcGFkZGluZztcbiAgbWFyZ2luLWJvdHRvbTogQGp1bWJvdHJvbi1wYWRkaW5nO1xuICBjb2xvcjogQGp1bWJvdHJvbi1jb2xvcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGp1bWJvdHJvbi1iZztcblxuICBoMSxcbiAgLmgxIHtcbiAgICBjb2xvcjogQGp1bWJvdHJvbi1oZWFkaW5nLWNvbG9yO1xuICB9XG5cbiAgcCB7XG4gICAgbWFyZ2luLWJvdHRvbTogKEBqdW1ib3Ryb24tcGFkZGluZyAvIDIpO1xuICAgIGZvbnQtc2l6ZTogQGp1bWJvdHJvbi1mb250LXNpemU7XG4gICAgZm9udC13ZWlnaHQ6IDIwMDtcbiAgfVxuXG4gID4gaHIge1xuICAgIGJvcmRlci10b3AtY29sb3I6IGRhcmtlbihAanVtYm90cm9uLWJnLCAxMCUpO1xuICB9XG5cbiAgLmNvbnRhaW5lciAmLFxuICAuY29udGFpbmVyLWZsdWlkICYge1xuICAgIGJvcmRlci1yYWRpdXM6IEBib3JkZXItcmFkaXVzLWxhcmdlOyAvLyBPbmx5IHJvdW5kIGNvcm5lcnMgYXQgaGlnaGVyIHJlc29sdXRpb25zIGlmIGNvbnRhaW5lZCBpbiBhIGNvbnRhaW5lclxuICAgIHBhZGRpbmctbGVmdDogIChAZ3JpZC1ndXR0ZXItd2lkdGggLyAyKTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAoQGdyaWQtZ3V0dGVyLXdpZHRoIC8gMik7XG4gIH1cblxuICAuY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cblxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiBAc2NyZWVuLXNtLW1pbikge1xuICAgIHBhZGRpbmctdG9wOiAgICAoQGp1bWJvdHJvbi1wYWRkaW5nICogMS42KTtcbiAgICBwYWRkaW5nLWJvdHRvbTogKEBqdW1ib3Ryb24tcGFkZGluZyAqIDEuNik7XG5cbiAgICAuY29udGFpbmVyICYsXG4gICAgLmNvbnRhaW5lci1mbHVpZCAmIHtcbiAgICAgIHBhZGRpbmctbGVmdDogIChAanVtYm90cm9uLXBhZGRpbmcgKiAyKTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IChAanVtYm90cm9uLXBhZGRpbmcgKiAyKTtcbiAgICB9XG5cbiAgICBoMSxcbiAgICAuaDEge1xuICAgICAgZm9udC1zaXplOiBAanVtYm90cm9uLWhlYWRpbmctZm9udC1zaXplO1xuICAgIH1cbiAgfVxufVxuIiwiLy9cbi8vIFRodW1ibmFpbHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLy8gTWl4aW4gYW5kIGFkanVzdCB0aGUgcmVndWxhciBpbWFnZSBjbGFzc1xuLnRodW1ibmFpbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiBAdGh1bWJuYWlsLXBhZGRpbmc7XG4gIG1hcmdpbi1ib3R0b206IEBsaW5lLWhlaWdodC1jb21wdXRlZDtcbiAgbGluZS1oZWlnaHQ6IEBsaW5lLWhlaWdodC1iYXNlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAdGh1bWJuYWlsLWJnO1xuICBib3JkZXI6IDFweCBzb2xpZCBAdGh1bWJuYWlsLWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogQHRodW1ibmFpbC1ib3JkZXItcmFkaXVzO1xuICAudHJhbnNpdGlvbihib3JkZXIgLjJzIGVhc2UtaW4tb3V0KTtcblxuICA+IGltZyxcbiAgYSA+IGltZyB7XG4gICAgJjpleHRlbmQoLmltZy1yZXNwb25zaXZlKTtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIH1cblxuICAvLyBBZGQgYSBob3ZlciBzdGF0ZSBmb3IgbGlua2VkIHZlcnNpb25zIG9ubHlcbiAgYSY6aG92ZXIsXG4gIGEmOmZvY3VzLFxuICBhJi5hY3RpdmUge1xuICAgIGJvcmRlci1jb2xvcjogQGxpbmstY29sb3I7XG4gIH1cblxuICAvLyBJbWFnZSBjYXB0aW9uc1xuICAuY2FwdGlvbiB7XG4gICAgcGFkZGluZzogQHRodW1ibmFpbC1jYXB0aW9uLXBhZGRpbmc7XG4gICAgY29sb3I6IEB0aHVtYm5haWwtY2FwdGlvbi1jb2xvcjtcbiAgfVxufVxuIiwiLy9cbi8vIEFsZXJ0c1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4vLyBCYXNlIHN0eWxlc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4uYWxlcnQge1xuICBwYWRkaW5nOiBAYWxlcnQtcGFkZGluZztcbiAgbWFyZ2luLWJvdHRvbTogQGxpbmUtaGVpZ2h0LWNvbXB1dGVkO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogQGFsZXJ0LWJvcmRlci1yYWRpdXM7XG5cbiAgLy8gSGVhZGluZ3MgZm9yIGxhcmdlciBhbGVydHNcbiAgaDQge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgLy8gU3BlY2lmaWVkIGZvciB0aGUgaDQgdG8gcHJldmVudCBjb25mbGljdHMgb2YgY2hhbmdpbmcgQGhlYWRpbmdzLWNvbG9yXG4gICAgY29sb3I6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBQcm92aWRlIGNsYXNzIGZvciBsaW5rcyB0aGF0IG1hdGNoIGFsZXJ0c1xuICAuYWxlcnQtbGluayB7XG4gICAgZm9udC13ZWlnaHQ6IEBhbGVydC1saW5rLWZvbnQtd2VpZ2h0O1xuICB9XG5cbiAgLy8gSW1wcm92ZSBhbGlnbm1lbnQgYW5kIHNwYWNpbmcgb2YgaW5uZXIgY29udGVudFxuICA+IHAsXG4gID4gdWwge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cblxuICA+IHAgKyBwIHtcbiAgICBtYXJnaW4tdG9wOiA1cHg7XG4gIH1cbn1cblxuLy8gRGlzbWlzc2libGUgYWxlcnRzXG4vL1xuLy8gRXhwYW5kIHRoZSByaWdodCBwYWRkaW5nIGFuZCBhY2NvdW50IGZvciB0aGUgY2xvc2UgYnV0dG9uJ3MgcG9zaXRpb25pbmcuXG5cbi5hbGVydC1kaXNtaXNzYWJsZSwgLy8gVGhlIG1pc3NwZWxsZWQgLmFsZXJ0LWRpc21pc3NhYmxlIHdhcyBkZXByZWNhdGVkIGluIDMuMi4wLlxuLmFsZXJ0LWRpc21pc3NpYmxlIHtcbiAgcGFkZGluZy1yaWdodDogKEBhbGVydC1wYWRkaW5nICsgMjApO1xuXG4gIC8vIEFkanVzdCBjbG9zZSBsaW5rIHBvc2l0aW9uXG4gIC5jbG9zZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogLTJweDtcbiAgICByaWdodDogLTIxcHg7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gIH1cbn1cblxuLy8gQWx0ZXJuYXRlIHN0eWxlc1xuLy9cbi8vIEdlbmVyYXRlIGNvbnRleHR1YWwgbW9kaWZpZXIgY2xhc3NlcyBmb3IgY29sb3JpemluZyB0aGUgYWxlcnQuXG5cbi5hbGVydC1zdWNjZXNzIHtcbiAgLmFsZXJ0LXZhcmlhbnQoQGFsZXJ0LXN1Y2Nlc3MtYmc7IEBhbGVydC1zdWNjZXNzLWJvcmRlcjsgQGFsZXJ0LXN1Y2Nlc3MtdGV4dCk7XG59XG5cbi5hbGVydC1pbmZvIHtcbiAgLmFsZXJ0LXZhcmlhbnQoQGFsZXJ0LWluZm8tYmc7IEBhbGVydC1pbmZvLWJvcmRlcjsgQGFsZXJ0LWluZm8tdGV4dCk7XG59XG5cbi5hbGVydC13YXJuaW5nIHtcbiAgLmFsZXJ0LXZhcmlhbnQoQGFsZXJ0LXdhcm5pbmctYmc7IEBhbGVydC13YXJuaW5nLWJvcmRlcjsgQGFsZXJ0LXdhcm5pbmctdGV4dCk7XG59XG5cbi5hbGVydC1kYW5nZXIge1xuICAuYWxlcnQtdmFyaWFudChAYWxlcnQtZGFuZ2VyLWJnOyBAYWxlcnQtZGFuZ2VyLWJvcmRlcjsgQGFsZXJ0LWRhbmdlci10ZXh0KTtcbn1cbiIsIi8vIEFsZXJ0c1xuXG4uYWxlcnQtdmFyaWFudChAYmFja2dyb3VuZDsgQGJvcmRlcjsgQHRleHQtY29sb3IpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGJhY2tncm91bmQ7XG4gIGJvcmRlci1jb2xvcjogQGJvcmRlcjtcbiAgY29sb3I6IEB0ZXh0LWNvbG9yO1xuXG4gIGhyIHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiBkYXJrZW4oQGJvcmRlciwgNSUpO1xuICB9XG4gIC5hbGVydC1saW5rIHtcbiAgICBjb2xvcjogZGFya2VuKEB0ZXh0LWNvbG9yLCAxMCUpO1xuICB9XG59XG4iLCIvL1xuLy8gUHJvZ3Jlc3MgYmFyc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4vLyBCYXIgYW5pbWF0aW9uc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBXZWJLaXRcbkAtd2Via2l0LWtleWZyYW1lcyBwcm9ncmVzcy1iYXItc3RyaXBlcyB7XG4gIGZyb20gIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogNDBweCAwOyB9XG4gIHRvICAgIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwOyB9XG59XG5cbi8vIFNwZWMgYW5kIElFMTArXG5Aa2V5ZnJhbWVzIHByb2dyZXNzLWJhci1zdHJpcGVzIHtcbiAgZnJvbSAgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA0MHB4IDA7IH1cbiAgdG8gICAgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDA7IH1cbn1cblxuXG4vLyBCYXIgaXRzZWxmXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIE91dGVyIGNvbnRhaW5lclxuLnByb2dyZXNzIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgaGVpZ2h0OiBAbGluZS1oZWlnaHQtY29tcHV0ZWQ7XG4gIG1hcmdpbi1ib3R0b206IEBsaW5lLWhlaWdodC1jb21wdXRlZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogQHByb2dyZXNzLWJnO1xuICBib3JkZXItcmFkaXVzOiBAcHJvZ3Jlc3MtYm9yZGVyLXJhZGl1cztcbiAgLmJveC1zaGFkb3coaW5zZXQgMCAxcHggMnB4IHJnYmEoMCwwLDAsLjEpKTtcbn1cblxuLy8gQmFyIG9mIHByb2dyZXNzXG4ucHJvZ3Jlc3MtYmFyIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdpZHRoOiAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBmb250LXNpemU6IEBmb250LXNpemUtc21hbGw7XG4gIGxpbmUtaGVpZ2h0OiBAbGluZS1oZWlnaHQtY29tcHV0ZWQ7XG4gIGNvbG9yOiBAcHJvZ3Jlc3MtYmFyLWNvbG9yO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6IEBwcm9ncmVzcy1iYXItYmc7XG4gIC5ib3gtc2hhZG93KGluc2V0IDAgLTFweCAwIHJnYmEoMCwwLDAsLjE1KSk7XG4gIC50cmFuc2l0aW9uKHdpZHRoIC42cyBlYXNlKTtcbn1cblxuLy8gU3RyaXBlZCBiYXJzXG4vL1xuLy8gYC5wcm9ncmVzcy1zdHJpcGVkIC5wcm9ncmVzcy1iYXJgIGlzIGRlcHJlY2F0ZWQgYXMgb2YgdjMuMi4wIGluIGZhdm9yIG9mIHRoZVxuLy8gYC5wcm9ncmVzcy1iYXItc3RyaXBlZGAgY2xhc3MsIHdoaWNoIHlvdSBqdXN0IGFkZCB0byBhbiBleGlzdGluZ1xuLy8gYC5wcm9ncmVzcy1iYXJgLlxuLnByb2dyZXNzLXN0cmlwZWQgLnByb2dyZXNzLWJhcixcbi5wcm9ncmVzcy1iYXItc3RyaXBlZCB7XG4gICNncmFkaWVudCA+IC5zdHJpcGVkKCk7XG4gIGJhY2tncm91bmQtc2l6ZTogNDBweCA0MHB4O1xufVxuXG4vLyBDYWxsIGFuaW1hdGlvbiBmb3IgdGhlIGFjdGl2ZSBvbmVcbi8vXG4vLyBgLnByb2dyZXNzLmFjdGl2ZSAucHJvZ3Jlc3MtYmFyYCBpcyBkZXByZWNhdGVkIGFzIG9mIHYzLjIuMCBpbiBmYXZvciBvZiB0aGVcbi8vIGAucHJvZ3Jlc3MtYmFyLmFjdGl2ZWAgYXBwcm9hY2guXG4ucHJvZ3Jlc3MuYWN0aXZlIC5wcm9ncmVzcy1iYXIsXG4ucHJvZ3Jlc3MtYmFyLmFjdGl2ZSB7XG4gIC5hbmltYXRpb24ocHJvZ3Jlc3MtYmFyLXN0cmlwZXMgMnMgbGluZWFyIGluZmluaXRlKTtcbn1cblxuXG4vLyBWYXJpYXRpb25zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5wcm9ncmVzcy1iYXItc3VjY2VzcyB7XG4gIC5wcm9ncmVzcy1iYXItdmFyaWFudChAcHJvZ3Jlc3MtYmFyLXN1Y2Nlc3MtYmcpO1xufVxuXG4ucHJvZ3Jlc3MtYmFyLWluZm8ge1xuICAucHJvZ3Jlc3MtYmFyLXZhcmlhbnQoQHByb2dyZXNzLWJhci1pbmZvLWJnKTtcbn1cblxuLnByb2dyZXNzLWJhci13YXJuaW5nIHtcbiAgLnByb2dyZXNzLWJhci12YXJpYW50KEBwcm9ncmVzcy1iYXItd2FybmluZy1iZyk7XG59XG5cbi5wcm9ncmVzcy1iYXItZGFuZ2VyIHtcbiAgLnByb2dyZXNzLWJhci12YXJpYW50KEBwcm9ncmVzcy1iYXItZGFuZ2VyLWJnKTtcbn1cbiIsIi8vIEdyYWRpZW50c1xuXG4jZ3JhZGllbnQge1xuXG4gIC8vIEhvcml6b250YWwgZ3JhZGllbnQsIGZyb20gbGVmdCB0byByaWdodFxuICAvL1xuICAvLyBDcmVhdGVzIHR3byBjb2xvciBzdG9wcywgc3RhcnQgYW5kIGVuZCwgYnkgc3BlY2lmeWluZyBhIGNvbG9yIGFuZCBwb3NpdGlvbiBmb3IgZWFjaCBjb2xvciBzdG9wLlxuICAvLyBDb2xvciBzdG9wcyBhcmUgbm90IGF2YWlsYWJsZSBpbiBJRTkgYW5kIGJlbG93LlxuICAuaG9yaXpvbnRhbChAc3RhcnQtY29sb3I6ICM1NTU7IEBlbmQtY29sb3I6ICMzMzM7IEBzdGFydC1wZXJjZW50OiAwJTsgQGVuZC1wZXJjZW50OiAxMDAlKSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQobGVmdCwgQHN0YXJ0LWNvbG9yIEBzdGFydC1wZXJjZW50LCBAZW5kLWNvbG9yIEBlbmQtcGVyY2VudCk7IC8vIFNhZmFyaSA1LjEtNiwgQ2hyb21lIDEwK1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudChsZWZ0LCBAc3RhcnQtY29sb3IgQHN0YXJ0LXBlcmNlbnQsIEBlbmQtY29sb3IgQGVuZC1wZXJjZW50KTsgLy8gT3BlcmEgMTJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIEBzdGFydC1jb2xvciBAc3RhcnQtcGVyY2VudCwgQGVuZC1jb2xvciBAZW5kLXBlcmNlbnQpOyAvLyBTdGFuZGFyZCwgSUUxMCwgRmlyZWZveCAxNissIE9wZXJhIDEyLjEwKywgU2FmYXJpIDcrLCBDaHJvbWUgMjYrXG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xuICAgIGZpbHRlcjogZSglKFwicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyVkJywgZW5kQ29sb3JzdHI9JyVkJywgR3JhZGllbnRUeXBlPTEpXCIsYXJnYihAc3RhcnQtY29sb3IpLGFyZ2IoQGVuZC1jb2xvcikpKTsgLy8gSUU5IGFuZCBkb3duXG4gIH1cblxuICAvLyBWZXJ0aWNhbCBncmFkaWVudCwgZnJvbSB0b3AgdG8gYm90dG9tXG4gIC8vXG4gIC8vIENyZWF0ZXMgdHdvIGNvbG9yIHN0b3BzLCBzdGFydCBhbmQgZW5kLCBieSBzcGVjaWZ5aW5nIGEgY29sb3IgYW5kIHBvc2l0aW9uIGZvciBlYWNoIGNvbG9yIHN0b3AuXG4gIC8vIENvbG9yIHN0b3BzIGFyZSBub3QgYXZhaWxhYmxlIGluIElFOSBhbmQgYmVsb3cuXG4gIC52ZXJ0aWNhbChAc3RhcnQtY29sb3I6ICM1NTU7IEBlbmQtY29sb3I6ICMzMzM7IEBzdGFydC1wZXJjZW50OiAwJTsgQGVuZC1wZXJjZW50OiAxMDAlKSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCBAc3RhcnQtY29sb3IgQHN0YXJ0LXBlcmNlbnQsIEBlbmQtY29sb3IgQGVuZC1wZXJjZW50KTsgIC8vIFNhZmFyaSA1LjEtNiwgQ2hyb21lIDEwK1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudCh0b3AsIEBzdGFydC1jb2xvciBAc3RhcnQtcGVyY2VudCwgQGVuZC1jb2xvciBAZW5kLXBlcmNlbnQpOyAgLy8gT3BlcmEgMTJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCBAc3RhcnQtY29sb3IgQHN0YXJ0LXBlcmNlbnQsIEBlbmQtY29sb3IgQGVuZC1wZXJjZW50KTsgLy8gU3RhbmRhcmQsIElFMTAsIEZpcmVmb3ggMTYrLCBPcGVyYSAxMi4xMCssIFNhZmFyaSA3KywgQ2hyb21lIDI2K1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbiAgICBmaWx0ZXI6IGUoJShcInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPSclZCcsIGVuZENvbG9yc3RyPSclZCcsIEdyYWRpZW50VHlwZT0wKVwiLGFyZ2IoQHN0YXJ0LWNvbG9yKSxhcmdiKEBlbmQtY29sb3IpKSk7IC8vIElFOSBhbmQgZG93blxuICB9XG5cbiAgLmRpcmVjdGlvbmFsKEBzdGFydC1jb2xvcjogIzU1NTsgQGVuZC1jb2xvcjogIzMzMzsgQGRlZzogNDVkZWcpIHtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoQGRlZywgQHN0YXJ0LWNvbG9yLCBAZW5kLWNvbG9yKTsgLy8gU2FmYXJpIDUuMS02LCBDaHJvbWUgMTArXG4gICAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KEBkZWcsIEBzdGFydC1jb2xvciwgQGVuZC1jb2xvcik7IC8vIE9wZXJhIDEyXG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KEBkZWcsIEBzdGFydC1jb2xvciwgQGVuZC1jb2xvcik7IC8vIFN0YW5kYXJkLCBJRTEwLCBGaXJlZm94IDE2KywgT3BlcmEgMTIuMTArLCBTYWZhcmkgNyssIENocm9tZSAyNitcbiAgfVxuICAuaG9yaXpvbnRhbC10aHJlZS1jb2xvcnMoQHN0YXJ0LWNvbG9yOiAjMDBiM2VlOyBAbWlkLWNvbG9yOiAjN2E0M2I2OyBAY29sb3Itc3RvcDogNTAlOyBAZW5kLWNvbG9yOiAjYzMzMjVmKSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQobGVmdCwgQHN0YXJ0LWNvbG9yLCBAbWlkLWNvbG9yIEBjb2xvci1zdG9wLCBAZW5kLWNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQobGVmdCwgQHN0YXJ0LWNvbG9yLCBAbWlkLWNvbG9yIEBjb2xvci1zdG9wLCBAZW5kLWNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIEBzdGFydC1jb2xvciwgQG1pZC1jb2xvciBAY29sb3Itc3RvcCwgQGVuZC1jb2xvcik7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBmaWx0ZXI6IGUoJShcInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPSclZCcsIGVuZENvbG9yc3RyPSclZCcsIEdyYWRpZW50VHlwZT0xKVwiLGFyZ2IoQHN0YXJ0LWNvbG9yKSxhcmdiKEBlbmQtY29sb3IpKSk7IC8vIElFOSBhbmQgZG93biwgZ2V0cyBubyBjb2xvci1zdG9wIGF0IGFsbCBmb3IgcHJvcGVyIGZhbGxiYWNrXG4gIH1cbiAgLnZlcnRpY2FsLXRocmVlLWNvbG9ycyhAc3RhcnQtY29sb3I6ICMwMGIzZWU7IEBtaWQtY29sb3I6ICM3YTQzYjY7IEBjb2xvci1zdG9wOiA1MCU7IEBlbmQtY29sb3I6ICNjMzMyNWYpIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChAc3RhcnQtY29sb3IsIEBtaWQtY29sb3IgQGNvbG9yLXN0b3AsIEBlbmQtY29sb3IpO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudChAc3RhcnQtY29sb3IsIEBtaWQtY29sb3IgQGNvbG9yLXN0b3AsIEBlbmQtY29sb3IpO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudChAc3RhcnQtY29sb3IsIEBtaWQtY29sb3IgQGNvbG9yLXN0b3AsIEBlbmQtY29sb3IpO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgZmlsdGVyOiBlKCUoXCJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nJWQnLCBlbmRDb2xvcnN0cj0nJWQnLCBHcmFkaWVudFR5cGU9MClcIixhcmdiKEBzdGFydC1jb2xvciksYXJnYihAZW5kLWNvbG9yKSkpOyAvLyBJRTkgYW5kIGRvd24sIGdldHMgbm8gY29sb3Itc3RvcCBhdCBhbGwgZm9yIHByb3BlciBmYWxsYmFja1xuICB9XG4gIC5yYWRpYWwoQGlubmVyLWNvbG9yOiAjNTU1OyBAb3V0ZXItY29sb3I6ICMzMzMpIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LXJhZGlhbC1ncmFkaWVudChjaXJjbGUsIEBpbm5lci1jb2xvciwgQG91dGVyLWNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCBAaW5uZXItY29sb3IsIEBvdXRlci1jb2xvcik7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgfVxuICAuc3RyaXBlZChAY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsLjE1KTsgQGFuZ2xlOiA0NWRlZykge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KEBhbmdsZSwgQGNvbG9yIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsIEBjb2xvciA1MCUsIEBjb2xvciA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudChAYW5nbGUsIEBjb2xvciAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCBAY29sb3IgNTAlLCBAY29sb3IgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoQGFuZ2xlLCBAY29sb3IgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgQGNvbG9yIDUwJSwgQGNvbG9yIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCk7XG4gIH1cbn1cbiIsIi8vIFByb2dyZXNzIGJhcnNcblxuLnByb2dyZXNzLWJhci12YXJpYW50KEBjb2xvcikge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAY29sb3I7XG5cbiAgLy8gRGVwcmVjYXRlZCBwYXJlbnQgY2xhc3MgcmVxdWlyZW1lbnQgYXMgb2YgdjMuMi4wXG4gIC5wcm9ncmVzcy1zdHJpcGVkICYge1xuICAgICNncmFkaWVudCA+IC5zdHJpcGVkKCk7XG4gIH1cbn1cbiIsIi5tZWRpYSB7XG4gIC8vIFByb3BlciBzcGFjaW5nIGJldHdlZW4gaW5zdGFuY2VzIG9mIC5tZWRpYVxuICBtYXJnaW4tdG9wOiAxNXB4O1xuXG4gICY6Zmlyc3QtY2hpbGQge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cbn1cblxuLm1lZGlhLFxuLm1lZGlhLWJvZHkge1xuICB6b29tOiAxO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ubWVkaWEtYm9keSB7XG4gIHdpZHRoOiAxMDAwMHB4O1xufVxuXG4ubWVkaWEtb2JqZWN0IHtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgLy8gRml4IGNvbGxhcHNlIGluIHdlYmtpdCBmcm9tIG1heC13aWR0aDogMTAwJSBhbmQgZGlzcGxheTogdGFibGUtY2VsbC5cbiAgJi5pbWctdGh1bWJuYWlsIHtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gIH1cbn1cblxuLm1lZGlhLXJpZ2h0LFxuLm1lZGlhID4gLnB1bGwtcmlnaHQge1xuICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG59XG5cbi5tZWRpYS1sZWZ0LFxuLm1lZGlhID4gLnB1bGwtbGVmdCB7XG4gIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG59XG5cbi5tZWRpYS1sZWZ0LFxuLm1lZGlhLXJpZ2h0LFxuLm1lZGlhLWJvZHkge1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuXG4ubWVkaWEtbWlkZGxlIHtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLm1lZGlhLWJvdHRvbSB7XG4gIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG59XG5cbi8vIFJlc2V0IG1hcmdpbnMgb24gaGVhZGluZ3MgZm9yIHRpZ2h0ZXIgZGVmYXVsdCBzcGFjaW5nXG4ubWVkaWEtaGVhZGluZyB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbn1cblxuLy8gTWVkaWEgbGlzdCB2YXJpYXRpb25cbi8vXG4vLyBVbmRvIGRlZmF1bHQgdWwvb2wgc3R5bGVzXG4ubWVkaWEtbGlzdCB7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cbiIsIi8vXG4vLyBMaXN0IGdyb3Vwc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4vLyBCYXNlIGNsYXNzXG4vL1xuLy8gRWFzaWx5IHVzYWJsZSBvbiA8dWw+LCA8b2w+LCBvciA8ZGl2Pi5cblxuLmxpc3QtZ3JvdXAge1xuICAvLyBObyBuZWVkIHRvIHNldCBsaXN0LXN0eWxlOiBub25lOyBzaW5jZSAubGlzdC1ncm91cC1pdGVtIGlzIGJsb2NrIGxldmVsXG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIHBhZGRpbmctbGVmdDogMDsgLy8gcmVzZXQgcGFkZGluZyBiZWNhdXNlIHVsIGFuZCBvbFxufVxuXG5cbi8vIEluZGl2aWR1YWwgbGlzdCBpdGVtc1xuLy9cbi8vIFVzZSBvbiBgbGlgcyBvciBgZGl2YHMgd2l0aGluIHRoZSBgLmxpc3QtZ3JvdXBgIHBhcmVudC5cblxuLmxpc3QtZ3JvdXAtaXRlbSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDEwcHggMTVweDtcbiAgLy8gUGxhY2UgdGhlIGJvcmRlciBvbiB0aGUgbGlzdCBpdGVtcyBhbmQgbmVnYXRpdmUgbWFyZ2luIHVwIGZvciBiZXR0ZXIgc3R5bGluZ1xuICBtYXJnaW4tYm90dG9tOiAtMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAbGlzdC1ncm91cC1iZztcbiAgYm9yZGVyOiAxcHggc29saWQgQGxpc3QtZ3JvdXAtYm9yZGVyO1xuXG4gIC8vIFJvdW5kIHRoZSBmaXJzdCBhbmQgbGFzdCBpdGVtc1xuICAmOmZpcnN0LWNoaWxkIHtcbiAgICAuYm9yZGVyLXRvcC1yYWRpdXMoQGxpc3QtZ3JvdXAtYm9yZGVyLXJhZGl1cyk7XG4gIH1cbiAgJjpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIC5ib3JkZXItYm90dG9tLXJhZGl1cyhAbGlzdC1ncm91cC1ib3JkZXItcmFkaXVzKTtcbiAgfVxufVxuXG5cbi8vIEludGVyYWN0aXZlIGxpc3QgaXRlbXNcbi8vXG4vLyBVc2UgYW5jaG9yIG9yIGJ1dHRvbiBlbGVtZW50cyBpbnN0ZWFkIG9mIGBsaWBzIG9yIGBkaXZgcyB0byBjcmVhdGUgaW50ZXJhY3RpdmUgaXRlbXMuXG4vLyBJbmNsdWRlcyBhbiBleHRyYSBgLmFjdGl2ZWAgbW9kaWZpZXIgY2xhc3MgZm9yIHNob3dpbmcgc2VsZWN0ZWQgaXRlbXMuXG5cbmEubGlzdC1ncm91cC1pdGVtLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbSB7XG4gIGNvbG9yOiBAbGlzdC1ncm91cC1saW5rLWNvbG9yO1xuXG4gIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyB7XG4gICAgY29sb3I6IEBsaXN0LWdyb3VwLWxpbmstaGVhZGluZy1jb2xvcjtcbiAgfVxuXG4gIC8vIEhvdmVyIHN0YXRlXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjb2xvcjogQGxpc3QtZ3JvdXAtbGluay1ob3Zlci1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbGlzdC1ncm91cC1ob3Zlci1iZztcbiAgfVxufVxuXG5idXR0b24ubGlzdC1ncm91cC1pdGVtIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi5saXN0LWdyb3VwLWl0ZW0ge1xuICAvLyBEaXNhYmxlZCBzdGF0ZVxuICAmLmRpc2FibGVkLFxuICAmLmRpc2FibGVkOmhvdmVyLFxuICAmLmRpc2FibGVkOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbGlzdC1ncm91cC1kaXNhYmxlZC1iZztcbiAgICBjb2xvcjogQGxpc3QtZ3JvdXAtZGlzYWJsZWQtY29sb3I7XG4gICAgY3Vyc29yOiBAY3Vyc29yLWRpc2FibGVkO1xuXG4gICAgLy8gRm9yY2UgY29sb3IgdG8gaW5oZXJpdCBmb3IgY3VzdG9tIGNvbnRlbnRcbiAgICAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcge1xuICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgfVxuICAgIC5saXN0LWdyb3VwLWl0ZW0tdGV4dCB7XG4gICAgICBjb2xvcjogQGxpc3QtZ3JvdXAtZGlzYWJsZWQtdGV4dC1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAvLyBBY3RpdmUgY2xhc3Mgb24gaXRlbSBpdHNlbGYsIG5vdCBwYXJlbnRcbiAgJi5hY3RpdmUsXG4gICYuYWN0aXZlOmhvdmVyLFxuICAmLmFjdGl2ZTpmb2N1cyB7XG4gICAgei1pbmRleDogMjsgLy8gUGxhY2UgYWN0aXZlIGl0ZW1zIGFib3ZlIHRoZWlyIHNpYmxpbmdzIGZvciBwcm9wZXIgYm9yZGVyIHN0eWxpbmdcbiAgICBjb2xvcjogQGxpc3QtZ3JvdXAtYWN0aXZlLWNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBsaXN0LWdyb3VwLWFjdGl2ZS1iZztcbiAgICBib3JkZXItY29sb3I6IEBsaXN0LWdyb3VwLWFjdGl2ZS1ib3JkZXI7XG5cbiAgICAvLyBGb3JjZSBjb2xvciB0byBpbmhlcml0IGZvciBjdXN0b20gY29udGVudFxuICAgIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyxcbiAgICAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcgPiBzbWFsbCxcbiAgICAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcgPiAuc21hbGwge1xuICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgfVxuICAgIC5saXN0LWdyb3VwLWl0ZW0tdGV4dCB7XG4gICAgICBjb2xvcjogQGxpc3QtZ3JvdXAtYWN0aXZlLXRleHQtY29sb3I7XG4gICAgfVxuICB9XG59XG5cblxuLy8gQ29udGV4dHVhbCB2YXJpYW50c1xuLy9cbi8vIEFkZCBtb2RpZmllciBjbGFzc2VzIHRvIGNoYW5nZSB0ZXh0IGFuZCBiYWNrZ3JvdW5kIGNvbG9yIG9uIGluZGl2aWR1YWwgaXRlbXMuXG4vLyBPcmdhbml6YXRpb25hbGx5LCB0aGlzIG11c3QgY29tZSBhZnRlciB0aGUgYDpob3ZlcmAgc3RhdGVzLlxuXG4ubGlzdC1ncm91cC1pdGVtLXZhcmlhbnQoc3VjY2VzczsgQHN0YXRlLXN1Y2Nlc3MtYmc7IEBzdGF0ZS1zdWNjZXNzLXRleHQpO1xuLmxpc3QtZ3JvdXAtaXRlbS12YXJpYW50KGluZm87IEBzdGF0ZS1pbmZvLWJnOyBAc3RhdGUtaW5mby10ZXh0KTtcbi5saXN0LWdyb3VwLWl0ZW0tdmFyaWFudCh3YXJuaW5nOyBAc3RhdGUtd2FybmluZy1iZzsgQHN0YXRlLXdhcm5pbmctdGV4dCk7XG4ubGlzdC1ncm91cC1pdGVtLXZhcmlhbnQoZGFuZ2VyOyBAc3RhdGUtZGFuZ2VyLWJnOyBAc3RhdGUtZGFuZ2VyLXRleHQpO1xuXG5cbi8vIEN1c3RvbSBjb250ZW50IG9wdGlvbnNcbi8vXG4vLyBFeHRyYSBjbGFzc2VzIGZvciBjcmVhdGluZyB3ZWxsLWZvcm1hdHRlZCBjb250ZW50IHdpdGhpbiBgLmxpc3QtZ3JvdXAtaXRlbWBzLlxuXG4ubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG4ubGlzdC1ncm91cC1pdGVtLXRleHQge1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBsaW5lLWhlaWdodDogMS4zO1xufVxuIiwiLy8gTGlzdCBHcm91cHNcblxuLmxpc3QtZ3JvdXAtaXRlbS12YXJpYW50KEBzdGF0ZTsgQGJhY2tncm91bmQ7IEBjb2xvcikge1xuICAubGlzdC1ncm91cC1pdGVtLUB7c3RhdGV9IHtcbiAgICBjb2xvcjogQGNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBiYWNrZ3JvdW5kO1xuXG4gICAgYSYsXG4gICAgYnV0dG9uJiB7XG4gICAgICBjb2xvcjogQGNvbG9yO1xuXG4gICAgICAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcge1xuICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgIH1cblxuICAgICAgJjpob3ZlcixcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBjb2xvcjogQGNvbG9yO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oQGJhY2tncm91bmQsIDUlKTtcbiAgICAgIH1cbiAgICAgICYuYWN0aXZlLFxuICAgICAgJi5hY3RpdmU6aG92ZXIsXG4gICAgICAmLmFjdGl2ZTpmb2N1cyB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAY29sb3I7XG4gICAgICAgIGJvcmRlci1jb2xvcjogQGNvbG9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy9cbi8vIFBhbmVsc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4vLyBCYXNlIGNsYXNzXG4ucGFuZWwge1xuICBtYXJnaW4tYm90dG9tOiBAbGluZS1oZWlnaHQtY29tcHV0ZWQ7XG4gIGJhY2tncm91bmQtY29sb3I6IEBwYW5lbC1iZztcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IEBwYW5lbC1ib3JkZXItcmFkaXVzO1xuICAuYm94LXNoYWRvdygwIDFweCAxcHggcmdiYSgwLDAsMCwuMDUpKTtcbn1cblxuLy8gUGFuZWwgY29udGVudHNcbi5wYW5lbC1ib2R5IHtcbiAgcGFkZGluZzogQHBhbmVsLWJvZHktcGFkZGluZztcbiAgJjpleHRlbmQoLmNsZWFyZml4IGFsbCk7XG59XG5cbi8vIE9wdGlvbmFsIGhlYWRpbmdcbi5wYW5lbC1oZWFkaW5nIHtcbiAgcGFkZGluZzogQHBhbmVsLWhlYWRpbmctcGFkZGluZztcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAuYm9yZGVyLXRvcC1yYWRpdXMoKEBwYW5lbC1ib3JkZXItcmFkaXVzIC0gMSkpO1xuXG4gID4gLmRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGUge1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICB9XG59XG5cbi8vIFdpdGhpbiBoZWFkaW5nLCBzdHJpcCBhbnkgYGgqYCB0YWcgb2YgaXRzIGRlZmF1bHQgbWFyZ2lucyBmb3Igc3BhY2luZy5cbi5wYW5lbC10aXRsZSB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGZvbnQtc2l6ZTogY2VpbCgoQGZvbnQtc2l6ZS1iYXNlICogMS4xMjUpKTtcbiAgY29sb3I6IGluaGVyaXQ7XG5cbiAgPiBhLFxuICA+IHNtYWxsLFxuICA+IC5zbWFsbCxcbiAgPiBzbWFsbCA+IGEsXG4gID4gLnNtYWxsID4gYSB7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gIH1cbn1cblxuLy8gT3B0aW9uYWwgZm9vdGVyIChzdGF5cyBncmF5IGluIGV2ZXJ5IG1vZGlmaWVyIGNsYXNzKVxuLnBhbmVsLWZvb3RlciB7XG4gIHBhZGRpbmc6IEBwYW5lbC1mb290ZXItcGFkZGluZztcbiAgYmFja2dyb3VuZC1jb2xvcjogQHBhbmVsLWZvb3Rlci1iZztcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIEBwYW5lbC1pbm5lci1ib3JkZXI7XG4gIC5ib3JkZXItYm90dG9tLXJhZGl1cygoQHBhbmVsLWJvcmRlci1yYWRpdXMgLSAxKSk7XG59XG5cblxuLy8gTGlzdCBncm91cHMgaW4gcGFuZWxzXG4vL1xuLy8gQnkgZGVmYXVsdCwgc3BhY2Ugb3V0IGxpc3QgZ3JvdXAgY29udGVudCBmcm9tIHBhbmVsIGhlYWRpbmdzIHRvIGFjY291bnQgZm9yXG4vLyBhbnkga2luZCBvZiBjdXN0b20gY29udGVudCBiZXR3ZWVuIHRoZSB0d28uXG5cbi5wYW5lbCB7XG4gID4gLmxpc3QtZ3JvdXAsXG4gID4gLnBhbmVsLWNvbGxhcHNlID4gLmxpc3QtZ3JvdXAge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICAubGlzdC1ncm91cC1pdGVtIHtcbiAgICAgIGJvcmRlci13aWR0aDogMXB4IDA7XG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIH1cblxuICAgIC8vIEFkZCBib3JkZXIgdG9wIHJhZGl1cyBmb3IgZmlyc3Qgb25lXG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAubGlzdC1ncm91cC1pdGVtOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLXRvcDogMDtcbiAgICAgICAgLmJvcmRlci10b3AtcmFkaXVzKChAcGFuZWwtYm9yZGVyLXJhZGl1cyAtIDEpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBBZGQgYm9yZGVyIGJvdHRvbSByYWRpdXMgZm9yIGxhc3Qgb25lXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIC5saXN0LWdyb3VwLWl0ZW06bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIC5ib3JkZXItYm90dG9tLXJhZGl1cygoQHBhbmVsLWJvcmRlci1yYWRpdXMgLSAxKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gID4gLnBhbmVsLWhlYWRpbmcgKyAucGFuZWwtY29sbGFwc2UgPiAubGlzdC1ncm91cCB7XG4gICAgLmxpc3QtZ3JvdXAtaXRlbTpmaXJzdC1jaGlsZCB7XG4gICAgICAuYm9yZGVyLXRvcC1yYWRpdXMoMCk7XG4gICAgfVxuICB9XG59XG4vLyBDb2xsYXBzZSBzcGFjZSBiZXR3ZWVuIHdoZW4gdGhlcmUncyBubyBhZGRpdGlvbmFsIGNvbnRlbnQuXG4ucGFuZWwtaGVhZGluZyArIC5saXN0LWdyb3VwIHtcbiAgLmxpc3QtZ3JvdXAtaXRlbTpmaXJzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXRvcC13aWR0aDogMDtcbiAgfVxufVxuLmxpc3QtZ3JvdXAgKyAucGFuZWwtZm9vdGVyIHtcbiAgYm9yZGVyLXRvcC13aWR0aDogMDtcbn1cblxuLy8gVGFibGVzIGluIHBhbmVsc1xuLy9cbi8vIFBsYWNlIGEgbm9uLWJvcmRlcmVkIGAudGFibGVgIHdpdGhpbiBhIHBhbmVsIChub3Qgd2l0aGluIGEgYC5wYW5lbC1ib2R5YCkgYW5kXG4vLyB3YXRjaCBpdCBnbyBmdWxsIHdpZHRoLlxuXG4ucGFuZWwge1xuICA+IC50YWJsZSxcbiAgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZSxcbiAgPiAucGFuZWwtY29sbGFwc2UgPiAudGFibGUge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICBjYXB0aW9uIHtcbiAgICAgIHBhZGRpbmctbGVmdDogQHBhbmVsLWJvZHktcGFkZGluZztcbiAgICAgIHBhZGRpbmctcmlnaHQ6IEBwYW5lbC1ib2R5LXBhZGRpbmc7XG4gICAgfVxuICB9XG4gIC8vIEFkZCBib3JkZXIgdG9wIHJhZGl1cyBmb3IgZmlyc3Qgb25lXG4gID4gLnRhYmxlOmZpcnN0LWNoaWxkLFxuICA+IC50YWJsZS1yZXNwb25zaXZlOmZpcnN0LWNoaWxkID4gLnRhYmxlOmZpcnN0LWNoaWxkIHtcbiAgICAuYm9yZGVyLXRvcC1yYWRpdXMoKEBwYW5lbC1ib3JkZXItcmFkaXVzIC0gMSkpO1xuXG4gICAgPiB0aGVhZDpmaXJzdC1jaGlsZCxcbiAgICA+IHRib2R5OmZpcnN0LWNoaWxkIHtcbiAgICAgID4gdHI6Zmlyc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAoQHBhbmVsLWJvcmRlci1yYWRpdXMgLSAxKTtcbiAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IChAcGFuZWwtYm9yZGVyLXJhZGl1cyAtIDEpO1xuXG4gICAgICAgIHRkOmZpcnN0LWNoaWxkLFxuICAgICAgICB0aDpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogKEBwYW5lbC1ib3JkZXItcmFkaXVzIC0gMSk7XG4gICAgICAgIH1cbiAgICAgICAgdGQ6bGFzdC1jaGlsZCxcbiAgICAgICAgdGg6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IChAcGFuZWwtYm9yZGVyLXJhZGl1cyAtIDEpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC8vIEFkZCBib3JkZXIgYm90dG9tIHJhZGl1cyBmb3IgbGFzdCBvbmVcbiAgPiAudGFibGU6bGFzdC1jaGlsZCxcbiAgPiAudGFibGUtcmVzcG9uc2l2ZTpsYXN0LWNoaWxkID4gLnRhYmxlOmxhc3QtY2hpbGQge1xuICAgIC5ib3JkZXItYm90dG9tLXJhZGl1cygoQHBhbmVsLWJvcmRlci1yYWRpdXMgLSAxKSk7XG5cbiAgICA+IHRib2R5Omxhc3QtY2hpbGQsXG4gICAgPiB0Zm9vdDpsYXN0LWNoaWxkIHtcbiAgICAgID4gdHI6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IChAcGFuZWwtYm9yZGVyLXJhZGl1cyAtIDEpO1xuICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogKEBwYW5lbC1ib3JkZXItcmFkaXVzIC0gMSk7XG5cbiAgICAgICAgdGQ6Zmlyc3QtY2hpbGQsXG4gICAgICAgIHRoOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAoQHBhbmVsLWJvcmRlci1yYWRpdXMgLSAxKTtcbiAgICAgICAgfVxuICAgICAgICB0ZDpsYXN0LWNoaWxkLFxuICAgICAgICB0aDpsYXN0LWNoaWxkIHtcbiAgICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogKEBwYW5lbC1ib3JkZXItcmFkaXVzIC0gMSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgPiAucGFuZWwtYm9keSArIC50YWJsZSxcbiAgPiAucGFuZWwtYm9keSArIC50YWJsZS1yZXNwb25zaXZlLFxuICA+IC50YWJsZSArIC5wYW5lbC1ib2R5LFxuICA+IC50YWJsZS1yZXNwb25zaXZlICsgLnBhbmVsLWJvZHkge1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCBAdGFibGUtYm9yZGVyLWNvbG9yO1xuICB9XG4gID4gLnRhYmxlID4gdGJvZHk6Zmlyc3QtY2hpbGQgPiB0cjpmaXJzdC1jaGlsZCB0aCxcbiAgPiAudGFibGUgPiB0Ym9keTpmaXJzdC1jaGlsZCA+IHRyOmZpcnN0LWNoaWxkIHRkIHtcbiAgICBib3JkZXItdG9wOiAwO1xuICB9XG4gID4gLnRhYmxlLWJvcmRlcmVkLFxuICA+IC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkIHtcbiAgICBib3JkZXI6IDA7XG4gICAgPiB0aGVhZCxcbiAgICA+IHRib2R5LFxuICAgID4gdGZvb3Qge1xuICAgICAgPiB0ciB7XG4gICAgICAgID4gdGg6Zmlyc3QtY2hpbGQsXG4gICAgICAgID4gdGQ6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgIGJvcmRlci1sZWZ0OiAwO1xuICAgICAgICB9XG4gICAgICAgID4gdGg6bGFzdC1jaGlsZCxcbiAgICAgICAgPiB0ZDpsYXN0LWNoaWxkIHtcbiAgICAgICAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgPiB0aGVhZCxcbiAgICA+IHRib2R5IHtcbiAgICAgID4gdHI6Zmlyc3QtY2hpbGQge1xuICAgICAgICA+IHRkLFxuICAgICAgICA+IHRoIHtcbiAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgID4gdGJvZHksXG4gICAgPiB0Zm9vdCB7XG4gICAgICA+IHRyOmxhc3QtY2hpbGQge1xuICAgICAgICA+IHRkLFxuICAgICAgICA+IHRoIHtcbiAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gID4gLnRhYmxlLXJlc3BvbnNpdmUge1xuICAgIGJvcmRlcjogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cblxuLy8gQ29sbGFwc2libGUgcGFuZWxzIChha2EsIGFjY29yZGlvbilcbi8vXG4vLyBXcmFwIGEgc2VyaWVzIG9mIHBhbmVscyBpbiBgLnBhbmVsLWdyb3VwYCB0byB0dXJuIHRoZW0gaW50byBhbiBhY2NvcmRpb24gd2l0aFxuLy8gdGhlIGhlbHAgb2Ygb3VyIGNvbGxhcHNlIEphdmFTY3JpcHQgcGx1Z2luLlxuXG4ucGFuZWwtZ3JvdXAge1xuICBtYXJnaW4tYm90dG9tOiBAbGluZS1oZWlnaHQtY29tcHV0ZWQ7XG5cbiAgLy8gVGlnaHRlbiB1cCBtYXJnaW4gc28gaXQncyBvbmx5IGJldHdlZW4gcGFuZWxzXG4gIC5wYW5lbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBib3JkZXItcmFkaXVzOiBAcGFuZWwtYm9yZGVyLXJhZGl1cztcblxuICAgICsgLnBhbmVsIHtcbiAgICAgIG1hcmdpbi10b3A6IDVweDtcbiAgICB9XG4gIH1cblxuICAucGFuZWwtaGVhZGluZyB7XG4gICAgYm9yZGVyLWJvdHRvbTogMDtcblxuICAgICsgLnBhbmVsLWNvbGxhcHNlID4gLnBhbmVsLWJvZHksXG4gICAgKyAucGFuZWwtY29sbGFwc2UgPiAubGlzdC1ncm91cCB7XG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgQHBhbmVsLWlubmVyLWJvcmRlcjtcbiAgICB9XG4gIH1cblxuICAucGFuZWwtZm9vdGVyIHtcbiAgICBib3JkZXItdG9wOiAwO1xuICAgICsgLnBhbmVsLWNvbGxhcHNlIC5wYW5lbC1ib2R5IHtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBAcGFuZWwtaW5uZXItYm9yZGVyO1xuICAgIH1cbiAgfVxufVxuXG5cbi8vIENvbnRleHR1YWwgdmFyaWF0aW9uc1xuLnBhbmVsLWRlZmF1bHQge1xuICAucGFuZWwtdmFyaWFudChAcGFuZWwtZGVmYXVsdC1ib3JkZXI7IEBwYW5lbC1kZWZhdWx0LXRleHQ7IEBwYW5lbC1kZWZhdWx0LWhlYWRpbmctYmc7IEBwYW5lbC1kZWZhdWx0LWJvcmRlcik7XG59XG4ucGFuZWwtcHJpbWFyeSB7XG4gIC5wYW5lbC12YXJpYW50KEBwYW5lbC1wcmltYXJ5LWJvcmRlcjsgQHBhbmVsLXByaW1hcnktdGV4dDsgQHBhbmVsLXByaW1hcnktaGVhZGluZy1iZzsgQHBhbmVsLXByaW1hcnktYm9yZGVyKTtcbn1cbi5wYW5lbC1zdWNjZXNzIHtcbiAgLnBhbmVsLXZhcmlhbnQoQHBhbmVsLXN1Y2Nlc3MtYm9yZGVyOyBAcGFuZWwtc3VjY2Vzcy10ZXh0OyBAcGFuZWwtc3VjY2Vzcy1oZWFkaW5nLWJnOyBAcGFuZWwtc3VjY2Vzcy1ib3JkZXIpO1xufVxuLnBhbmVsLWluZm8ge1xuICAucGFuZWwtdmFyaWFudChAcGFuZWwtaW5mby1ib3JkZXI7IEBwYW5lbC1pbmZvLXRleHQ7IEBwYW5lbC1pbmZvLWhlYWRpbmctYmc7IEBwYW5lbC1pbmZvLWJvcmRlcik7XG59XG4ucGFuZWwtd2FybmluZyB7XG4gIC5wYW5lbC12YXJpYW50KEBwYW5lbC13YXJuaW5nLWJvcmRlcjsgQHBhbmVsLXdhcm5pbmctdGV4dDsgQHBhbmVsLXdhcm5pbmctaGVhZGluZy1iZzsgQHBhbmVsLXdhcm5pbmctYm9yZGVyKTtcbn1cbi5wYW5lbC1kYW5nZXIge1xuICAucGFuZWwtdmFyaWFudChAcGFuZWwtZGFuZ2VyLWJvcmRlcjsgQHBhbmVsLWRhbmdlci10ZXh0OyBAcGFuZWwtZGFuZ2VyLWhlYWRpbmctYmc7IEBwYW5lbC1kYW5nZXItYm9yZGVyKTtcbn1cbiIsIi8vIFBhbmVsc1xuXG4ucGFuZWwtdmFyaWFudChAYm9yZGVyOyBAaGVhZGluZy10ZXh0LWNvbG9yOyBAaGVhZGluZy1iZy1jb2xvcjsgQGhlYWRpbmctYm9yZGVyKSB7XG4gIGJvcmRlci1jb2xvcjogQGJvcmRlcjtcblxuICAmID4gLnBhbmVsLWhlYWRpbmcge1xuICAgIGNvbG9yOiBAaGVhZGluZy10ZXh0LWNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBoZWFkaW5nLWJnLWNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogQGhlYWRpbmctYm9yZGVyO1xuXG4gICAgKyAucGFuZWwtY29sbGFwc2UgPiAucGFuZWwtYm9keSB7XG4gICAgICBib3JkZXItdG9wLWNvbG9yOiBAYm9yZGVyO1xuICAgIH1cbiAgICAuYmFkZ2Uge1xuICAgICAgY29sb3I6IEBoZWFkaW5nLWJnLWNvbG9yO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGhlYWRpbmctdGV4dC1jb2xvcjtcbiAgICB9XG4gIH1cbiAgJiA+IC5wYW5lbC1mb290ZXIge1xuICAgICsgLnBhbmVsLWNvbGxhcHNlID4gLnBhbmVsLWJvZHkge1xuICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogQGJvcmRlcjtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEVtYmVkcyByZXNwb25zaXZlXG4vL1xuLy8gQ3JlZGl0OiBOaWNvbGFzIEdhbGxhZ2hlciBhbmQgU1VJVCBDU1MuXG5cbi5lbWJlZC1yZXNwb25zaXZlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAwO1xuICBwYWRkaW5nOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gIC5lbWJlZC1yZXNwb25zaXZlLWl0ZW0sXG4gIGlmcmFtZSxcbiAgZW1iZWQsXG4gIG9iamVjdCxcbiAgdmlkZW8ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBib3R0b206IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlcjogMDtcbiAgfVxufVxuXG4vLyBNb2RpZmllciBjbGFzcyBmb3IgMTY6OSBhc3BlY3QgcmF0aW9cbi5lbWJlZC1yZXNwb25zaXZlLTE2Ynk5IHtcbiAgcGFkZGluZy1ib3R0b206IDU2LjI1JTtcbn1cblxuLy8gTW9kaWZpZXIgY2xhc3MgZm9yIDQ6MyBhc3BlY3QgcmF0aW9cbi5lbWJlZC1yZXNwb25zaXZlLTRieTMge1xuICBwYWRkaW5nLWJvdHRvbTogNzUlO1xufVxuIiwiLy9cbi8vIFdlbGxzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi8vIEJhc2UgY2xhc3Ncbi53ZWxsIHtcbiAgbWluLWhlaWdodDogMjBweDtcbiAgcGFkZGluZzogMTlweDtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogQHdlbGwtYmc7XG4gIGJvcmRlcjogMXB4IHNvbGlkIEB3ZWxsLWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogQGJvcmRlci1yYWRpdXMtYmFzZTtcbiAgLmJveC1zaGFkb3coaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwwLDAsLjA1KSk7XG4gIGJsb2NrcXVvdGUge1xuICAgIGJvcmRlci1jb2xvcjogI2RkZDtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMCwwLDAsLjE1KTtcbiAgfVxufVxuXG4vLyBTaXplc1xuLndlbGwtbGcge1xuICBwYWRkaW5nOiAyNHB4O1xuICBib3JkZXItcmFkaXVzOiBAYm9yZGVyLXJhZGl1cy1sYXJnZTtcbn1cbi53ZWxsLXNtIHtcbiAgcGFkZGluZzogOXB4O1xuICBib3JkZXItcmFkaXVzOiBAYm9yZGVyLXJhZGl1cy1zbWFsbDtcbn1cbiIsIi8vXG4vLyBDbG9zZSBpY29uc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4uY2xvc2Uge1xuICBmbG9hdDogcmlnaHQ7XG4gIGZvbnQtc2l6ZTogKEBmb250LXNpemUtYmFzZSAqIDEuNSk7XG4gIGZvbnQtd2VpZ2h0OiBAY2xvc2UtZm9udC13ZWlnaHQ7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogQGNsb3NlLWNvbG9yO1xuICB0ZXh0LXNoYWRvdzogQGNsb3NlLXRleHQtc2hhZG93O1xuICAub3BhY2l0eSguMik7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgY29sb3I6IEBjbG9zZS1jb2xvcjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIC5vcGFjaXR5KC41KTtcbiAgfVxuXG4gIC8vIEFkZGl0aW9uYWwgcHJvcGVydGllcyBmb3IgYnV0dG9uIHZlcnNpb25cbiAgLy8gaU9TIHJlcXVpcmVzIHRoZSBidXR0b24gZWxlbWVudCBpbnN0ZWFkIG9mIGFuIGFuY2hvciB0YWcuXG4gIC8vIElmIHlvdSB3YW50IHRoZSBhbmNob3IgdmVyc2lvbiwgaXQgcmVxdWlyZXMgYGhyZWY9XCIjXCJgLlxuICAvLyBTZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvRXZlbnRzL2NsaWNrI1NhZmFyaV9Nb2JpbGVcbiAgYnV0dG9uJiB7XG4gICAgcGFkZGluZzogMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiAwO1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgfVxufVxuIiwiLy9cbi8vIE1vZGFsc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gLm1vZGFsLW9wZW4gICAgICAtIGJvZHkgY2xhc3MgZm9yIGtpbGxpbmcgdGhlIHNjcm9sbFxuLy8gLm1vZGFsICAgICAgICAgICAtIGNvbnRhaW5lciB0byBzY3JvbGwgd2l0aGluXG4vLyAubW9kYWwtZGlhbG9nICAgIC0gcG9zaXRpb25pbmcgc2hlbGwgZm9yIHRoZSBhY3R1YWwgbW9kYWxcbi8vIC5tb2RhbC1jb250ZW50ICAgLSBhY3R1YWwgbW9kYWwgdy8gYmcgYW5kIGNvcm5lcnMgYW5kIHNoaXRcblxuLy8gS2lsbCB0aGUgc2Nyb2xsIG9uIHRoZSBib2R5XG4ubW9kYWwtb3BlbiB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8vIENvbnRhaW5lciB0aGF0IHRoZSBtb2RhbCBzY3JvbGxzIHdpdGhpblxuLm1vZGFsIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IEB6aW5kZXgtbW9kYWw7XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcblxuICAvLyBQcmV2ZW50IENocm9tZSBvbiBXaW5kb3dzIGZyb20gYWRkaW5nIGEgZm9jdXMgb3V0bGluZS4gRm9yIGRldGFpbHMsIHNlZVxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvcHVsbC8xMDk1MS5cbiAgb3V0bGluZTogMDtcblxuICAvLyBXaGVuIGZhZGluZyBpbiB0aGUgbW9kYWwsIGFuaW1hdGUgaXQgdG8gc2xpZGUgZG93blxuICAmLmZhZGUgLm1vZGFsLWRpYWxvZyB7XG4gICAgLnRyYW5zbGF0ZSgwLCAtMjUlKTtcbiAgICAudHJhbnNpdGlvbi10cmFuc2Zvcm0oflwiMC4zcyBlYXNlLW91dFwiKTtcbiAgfVxuICAmLmluIC5tb2RhbC1kaWFsb2cgeyAudHJhbnNsYXRlKDAsIDApIH1cbn1cbi5tb2RhbC1vcGVuIC5tb2RhbCB7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteTogYXV0bztcbn1cblxuLy8gU2hlbGwgZGl2IHRvIHBvc2l0aW9uIHRoZSBtb2RhbCB3aXRoIGJvdHRvbSBwYWRkaW5nXG4ubW9kYWwtZGlhbG9nIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogYXV0bztcbiAgbWFyZ2luOiAxMHB4O1xufVxuXG4vLyBBY3R1YWwgbW9kYWxcbi5tb2RhbC1jb250ZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAbW9kYWwtY29udGVudC1iZztcbiAgYm9yZGVyOiAxcHggc29saWQgQG1vZGFsLWNvbnRlbnQtZmFsbGJhY2stYm9yZGVyLWNvbG9yOyAvL29sZCBicm93c2VycyBmYWxsYmFjayAoaWU4IGV0YylcbiAgYm9yZGVyOiAxcHggc29saWQgQG1vZGFsLWNvbnRlbnQtYm9yZGVyLWNvbG9yO1xuICBib3JkZXItcmFkaXVzOiBAYm9yZGVyLXJhZGl1cy1sYXJnZTtcbiAgLmJveC1zaGFkb3coMCAzcHggOXB4IHJnYmEoMCwwLDAsLjUpKTtcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgLy8gUmVtb3ZlIGZvY3VzIG91dGxpbmUgZnJvbSBvcGVuZWQgbW9kYWxcbiAgb3V0bGluZTogMDtcbn1cblxuLy8gTW9kYWwgYmFja2dyb3VuZFxuLm1vZGFsLWJhY2tkcm9wIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IEB6aW5kZXgtbW9kYWwtYmFja2dyb3VuZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogQG1vZGFsLWJhY2tkcm9wLWJnO1xuICAvLyBGYWRlIGZvciBiYWNrZHJvcFxuICAmLmZhZGUgeyAub3BhY2l0eSgwKTsgfVxuICAmLmluIHsgLm9wYWNpdHkoQG1vZGFsLWJhY2tkcm9wLW9wYWNpdHkpOyB9XG59XG5cbi8vIE1vZGFsIGhlYWRlclxuLy8gVG9wIHNlY3Rpb24gb2YgdGhlIG1vZGFsIHcvIHRpdGxlIGFuZCBkaXNtaXNzXG4ubW9kYWwtaGVhZGVyIHtcbiAgcGFkZGluZzogQG1vZGFsLXRpdGxlLXBhZGRpbmc7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBAbW9kYWwtaGVhZGVyLWJvcmRlci1jb2xvcjtcbiAgJjpleHRlbmQoLmNsZWFyZml4IGFsbCk7XG59XG4vLyBDbG9zZSBpY29uXG4ubW9kYWwtaGVhZGVyIC5jbG9zZSB7XG4gIG1hcmdpbi10b3A6IC0ycHg7XG59XG5cbi8vIFRpdGxlIHRleHQgd2l0aGluIGhlYWRlclxuLm1vZGFsLXRpdGxlIHtcbiAgbWFyZ2luOiAwO1xuICBsaW5lLWhlaWdodDogQG1vZGFsLXRpdGxlLWxpbmUtaGVpZ2h0O1xufVxuXG4vLyBNb2RhbCBib2R5XG4vLyBXaGVyZSBhbGwgbW9kYWwgY29udGVudCByZXNpZGVzIChzaWJsaW5nIG9mIC5tb2RhbC1oZWFkZXIgYW5kIC5tb2RhbC1mb290ZXIpXG4ubW9kYWwtYm9keSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogQG1vZGFsLWlubmVyLXBhZGRpbmc7XG59XG5cbi8vIEZvb3RlciAoZm9yIGFjdGlvbnMpXG4ubW9kYWwtZm9vdGVyIHtcbiAgcGFkZGluZzogQG1vZGFsLWlubmVyLXBhZGRpbmc7XG4gIHRleHQtYWxpZ246IHJpZ2h0OyAvLyByaWdodCBhbGlnbiBidXR0b25zXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCBAbW9kYWwtZm9vdGVyLWJvcmRlci1jb2xvcjtcbiAgJjpleHRlbmQoLmNsZWFyZml4IGFsbCk7IC8vIGNsZWFyIGl0IGluIGNhc2UgZm9sa3MgdXNlIC5wdWxsLSogY2xhc3NlcyBvbiBidXR0b25zXG5cbiAgLy8gUHJvcGVybHkgc3BhY2Ugb3V0IGJ1dHRvbnNcbiAgLmJ0biArIC5idG4ge1xuICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgLy8gYWNjb3VudCBmb3IgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB3aGljaCBnZXRzIHRoZSBib3R0b20gbWFyZ2luIGxpa2UgYWxsIG90aGVyIGlucHV0c1xuICB9XG4gIC8vIGJ1dCBvdmVycmlkZSB0aGF0IGZvciBidXR0b24gZ3JvdXBzXG4gIC5idG4tZ3JvdXAgLmJ0biArIC5idG4ge1xuICAgIG1hcmdpbi1sZWZ0OiAtMXB4O1xuICB9XG4gIC8vIGFuZCBvdmVycmlkZSBpdCBmb3IgYmxvY2sgYnV0dG9ucyBhcyB3ZWxsXG4gIC5idG4tYmxvY2sgKyAuYnRuLWJsb2NrIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxufVxuXG4vLyBNZWFzdXJlIHNjcm9sbGJhciB3aWR0aCBmb3IgcGFkZGluZyBib2R5IGR1cmluZyBtb2RhbCBzaG93L2hpZGVcbi5tb2RhbC1zY3JvbGxiYXItbWVhc3VyZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtOTk5OXB4O1xuICB3aWR0aDogNTBweDtcbiAgaGVpZ2h0OiA1MHB4O1xuICBvdmVyZmxvdzogc2Nyb2xsO1xufVxuXG4vLyBTY2FsZSB1cCB0aGUgbW9kYWxcbkBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLXNtLW1pbikge1xuICAvLyBBdXRvbWF0aWNhbGx5IHNldCBtb2RhbCdzIHdpZHRoIGZvciBsYXJnZXIgdmlld3BvcnRzXG4gIC5tb2RhbC1kaWFsb2cge1xuICAgIHdpZHRoOiBAbW9kYWwtbWQ7XG4gICAgbWFyZ2luOiAzMHB4IGF1dG87XG4gIH1cbiAgLm1vZGFsLWNvbnRlbnQge1xuICAgIC5ib3gtc2hhZG93KDAgNXB4IDE1cHggcmdiYSgwLDAsMCwuNSkpO1xuICB9XG5cbiAgLy8gTW9kYWwgc2l6ZXNcbiAgLm1vZGFsLXNtIHsgd2lkdGg6IEBtb2RhbC1zbTsgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1tZC1taW4pIHtcbiAgLm1vZGFsLWxnIHsgd2lkdGg6IEBtb2RhbC1sZzsgfVxufVxuIiwiLy9cbi8vIFRvb2x0aXBzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi8vIEJhc2UgY2xhc3Ncbi50b29sdGlwIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiBAemluZGV4LXRvb2x0aXA7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICAvLyBPdXIgcGFyZW50IGVsZW1lbnQgY2FuIGJlIGFyYml0cmFyeSBzaW5jZSB0b29sdGlwcyBhcmUgYnkgZGVmYXVsdCBpbnNlcnRlZCBhcyBhIHNpYmxpbmcgb2YgdGhlaXIgdGFyZ2V0IGVsZW1lbnQuXG4gIC8vIFNvIHJlc2V0IG91ciBmb250IGFuZCB0ZXh0IHByb3BlcnRpZXMgdG8gYXZvaWQgaW5oZXJpdGluZyB3ZWlyZCB2YWx1ZXMuXG4gIC5yZXNldC10ZXh0KCk7XG4gIGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS1zbWFsbDtcblxuICAub3BhY2l0eSgwKTtcblxuICAmLmluICAgICB7IC5vcGFjaXR5KEB0b29sdGlwLW9wYWNpdHkpOyB9XG4gICYudG9wICAgIHsgbWFyZ2luLXRvcDogIC0zcHg7IHBhZGRpbmc6IEB0b29sdGlwLWFycm93LXdpZHRoIDA7IH1cbiAgJi5yaWdodCAgeyBtYXJnaW4tbGVmdDogIDNweDsgcGFkZGluZzogMCBAdG9vbHRpcC1hcnJvdy13aWR0aDsgfVxuICAmLmJvdHRvbSB7IG1hcmdpbi10b3A6ICAgM3B4OyBwYWRkaW5nOiBAdG9vbHRpcC1hcnJvdy13aWR0aCAwOyB9XG4gICYubGVmdCAgIHsgbWFyZ2luLWxlZnQ6IC0zcHg7IHBhZGRpbmc6IDAgQHRvb2x0aXAtYXJyb3ctd2lkdGg7IH1cbn1cblxuLy8gV3JhcHBlciBmb3IgdGhlIHRvb2x0aXAgY29udGVudFxuLnRvb2x0aXAtaW5uZXIge1xuICBtYXgtd2lkdGg6IEB0b29sdGlwLW1heC13aWR0aDtcbiAgcGFkZGluZzogM3B4IDhweDtcbiAgY29sb3I6IEB0b29sdGlwLWNvbG9yO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6IEB0b29sdGlwLWJnO1xuICBib3JkZXItcmFkaXVzOiBAYm9yZGVyLXJhZGl1cy1iYXNlO1xufVxuXG4vLyBBcnJvd3Ncbi50b29sdGlwLWFycm93IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xufVxuLy8gTm90ZTogRGVwcmVjYXRlZCAudG9wLWxlZnQsIC50b3AtcmlnaHQsIC5ib3R0b20tbGVmdCwgYW5kIC5ib3R0b20tcmlnaHQgYXMgb2YgdjMuMy4xXG4udG9vbHRpcCB7XG4gICYudG9wIC50b29sdGlwLWFycm93IHtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogNTAlO1xuICAgIG1hcmdpbi1sZWZ0OiAtQHRvb2x0aXAtYXJyb3ctd2lkdGg7XG4gICAgYm9yZGVyLXdpZHRoOiBAdG9vbHRpcC1hcnJvdy13aWR0aCBAdG9vbHRpcC1hcnJvdy13aWR0aCAwO1xuICAgIGJvcmRlci10b3AtY29sb3I6IEB0b29sdGlwLWFycm93LWNvbG9yO1xuICB9XG4gICYudG9wLWxlZnQgLnRvb2x0aXAtYXJyb3cge1xuICAgIGJvdHRvbTogMDtcbiAgICByaWdodDogQHRvb2x0aXAtYXJyb3ctd2lkdGg7XG4gICAgbWFyZ2luLWJvdHRvbTogLUB0b29sdGlwLWFycm93LXdpZHRoO1xuICAgIGJvcmRlci13aWR0aDogQHRvb2x0aXAtYXJyb3ctd2lkdGggQHRvb2x0aXAtYXJyb3ctd2lkdGggMDtcbiAgICBib3JkZXItdG9wLWNvbG9yOiBAdG9vbHRpcC1hcnJvdy1jb2xvcjtcbiAgfVxuICAmLnRvcC1yaWdodCAudG9vbHRpcC1hcnJvdyB7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IEB0b29sdGlwLWFycm93LXdpZHRoO1xuICAgIG1hcmdpbi1ib3R0b206IC1AdG9vbHRpcC1hcnJvdy13aWR0aDtcbiAgICBib3JkZXItd2lkdGg6IEB0b29sdGlwLWFycm93LXdpZHRoIEB0b29sdGlwLWFycm93LXdpZHRoIDA7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogQHRvb2x0aXAtYXJyb3ctY29sb3I7XG4gIH1cbiAgJi5yaWdodCAudG9vbHRpcC1hcnJvdyB7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogMDtcbiAgICBtYXJnaW4tdG9wOiAtQHRvb2x0aXAtYXJyb3ctd2lkdGg7XG4gICAgYm9yZGVyLXdpZHRoOiBAdG9vbHRpcC1hcnJvdy13aWR0aCBAdG9vbHRpcC1hcnJvdy13aWR0aCBAdG9vbHRpcC1hcnJvdy13aWR0aCAwO1xuICAgIGJvcmRlci1yaWdodC1jb2xvcjogQHRvb2x0aXAtYXJyb3ctY29sb3I7XG4gIH1cbiAgJi5sZWZ0IC50b29sdGlwLWFycm93IHtcbiAgICB0b3A6IDUwJTtcbiAgICByaWdodDogMDtcbiAgICBtYXJnaW4tdG9wOiAtQHRvb2x0aXAtYXJyb3ctd2lkdGg7XG4gICAgYm9yZGVyLXdpZHRoOiBAdG9vbHRpcC1hcnJvdy13aWR0aCAwIEB0b29sdGlwLWFycm93LXdpZHRoIEB0b29sdGlwLWFycm93LXdpZHRoO1xuICAgIGJvcmRlci1sZWZ0LWNvbG9yOiBAdG9vbHRpcC1hcnJvdy1jb2xvcjtcbiAgfVxuICAmLmJvdHRvbSAudG9vbHRpcC1hcnJvdyB7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDUwJTtcbiAgICBtYXJnaW4tbGVmdDogLUB0b29sdGlwLWFycm93LXdpZHRoO1xuICAgIGJvcmRlci13aWR0aDogMCBAdG9vbHRpcC1hcnJvdy13aWR0aCBAdG9vbHRpcC1hcnJvdy13aWR0aDtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiBAdG9vbHRpcC1hcnJvdy1jb2xvcjtcbiAgfVxuICAmLmJvdHRvbS1sZWZ0IC50b29sdGlwLWFycm93IHtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IEB0b29sdGlwLWFycm93LXdpZHRoO1xuICAgIG1hcmdpbi10b3A6IC1AdG9vbHRpcC1hcnJvdy13aWR0aDtcbiAgICBib3JkZXItd2lkdGg6IDAgQHRvb2x0aXAtYXJyb3ctd2lkdGggQHRvb2x0aXAtYXJyb3ctd2lkdGg7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogQHRvb2x0aXAtYXJyb3ctY29sb3I7XG4gIH1cbiAgJi5ib3R0b20tcmlnaHQgLnRvb2x0aXAtYXJyb3cge1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiBAdG9vbHRpcC1hcnJvdy13aWR0aDtcbiAgICBtYXJnaW4tdG9wOiAtQHRvb2x0aXAtYXJyb3ctd2lkdGg7XG4gICAgYm9yZGVyLXdpZHRoOiAwIEB0b29sdGlwLWFycm93LXdpZHRoIEB0b29sdGlwLWFycm93LXdpZHRoO1xuICAgIGJvcmRlci1ib3R0b20tY29sb3I6IEB0b29sdGlwLWFycm93LWNvbG9yO1xuICB9XG59XG4iLCIucmVzZXQtdGV4dCgpIHtcbiAgZm9udC1mYW1pbHk6IEBmb250LWZhbWlseS1iYXNlO1xuICAvLyBXZSBkZWxpYmVyYXRlbHkgZG8gTk9UIHJlc2V0IGZvbnQtc2l6ZS5cbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICBsaW5lLWJyZWFrOiBhdXRvO1xuICBsaW5lLWhlaWdodDogQGxpbmUtaGVpZ2h0LWJhc2U7XG4gIHRleHQtYWxpZ246IGxlZnQ7IC8vIEZhbGxiYWNrIGZvciB3aGVyZSBgc3RhcnRgIGlzIG5vdCBzdXBwb3J0ZWRcbiAgdGV4dC1hbGlnbjogc3RhcnQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICB3b3JkLWJyZWFrOiBub3JtYWw7XG4gIHdvcmQtc3BhY2luZzogbm9ybWFsO1xuICB3b3JkLXdyYXA6IG5vcm1hbDtcbn1cbiIsIi8vXG4vLyBQb3BvdmVyc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4ucG9wb3ZlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiBAemluZGV4LXBvcG92ZXI7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIG1heC13aWR0aDogQHBvcG92ZXItbWF4LXdpZHRoO1xuICBwYWRkaW5nOiAxcHg7XG4gIC8vIE91ciBwYXJlbnQgZWxlbWVudCBjYW4gYmUgYXJiaXRyYXJ5IHNpbmNlIHBvcG92ZXJzIGFyZSBieSBkZWZhdWx0IGluc2VydGVkIGFzIGEgc2libGluZyBvZiB0aGVpciB0YXJnZXQgZWxlbWVudC5cbiAgLy8gU28gcmVzZXQgb3VyIGZvbnQgYW5kIHRleHQgcHJvcGVydGllcyB0byBhdm9pZCBpbmhlcml0aW5nIHdlaXJkIHZhbHVlcy5cbiAgLnJlc2V0LXRleHQoKTtcbiAgZm9udC1zaXplOiBAZm9udC1zaXplLWJhc2U7XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogQHBvcG92ZXItYmc7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gIGJvcmRlcjogMXB4IHNvbGlkIEBwb3BvdmVyLWZhbGxiYWNrLWJvcmRlci1jb2xvcjtcbiAgYm9yZGVyOiAxcHggc29saWQgQHBvcG92ZXItYm9yZGVyLWNvbG9yO1xuICBib3JkZXItcmFkaXVzOiBAYm9yZGVyLXJhZGl1cy1sYXJnZTtcbiAgLmJveC1zaGFkb3coMCA1cHggMTBweCByZ2JhKDAsMCwwLC4yKSk7XG5cbiAgLy8gT2Zmc2V0IHRoZSBwb3BvdmVyIHRvIGFjY291bnQgZm9yIHRoZSBwb3BvdmVyIGFycm93XG4gICYudG9wICAgICB7IG1hcmdpbi10b3A6IC1AcG9wb3Zlci1hcnJvdy13aWR0aDsgfVxuICAmLnJpZ2h0ICAgeyBtYXJnaW4tbGVmdDogQHBvcG92ZXItYXJyb3ctd2lkdGg7IH1cbiAgJi5ib3R0b20gIHsgbWFyZ2luLXRvcDogQHBvcG92ZXItYXJyb3ctd2lkdGg7IH1cbiAgJi5sZWZ0ICAgIHsgbWFyZ2luLWxlZnQ6IC1AcG9wb3Zlci1hcnJvdy13aWR0aDsgfVxufVxuXG4ucG9wb3Zlci10aXRsZSB7XG4gIG1hcmdpbjogMDsgLy8gcmVzZXQgaGVhZGluZyBtYXJnaW5cbiAgcGFkZGluZzogOHB4IDE0cHg7XG4gIGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS1iYXNlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAcG9wb3Zlci10aXRsZS1iZztcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGRhcmtlbihAcG9wb3Zlci10aXRsZS1iZywgNSUpO1xuICBib3JkZXItcmFkaXVzOiAoQGJvcmRlci1yYWRpdXMtbGFyZ2UgLSAxKSAoQGJvcmRlci1yYWRpdXMtbGFyZ2UgLSAxKSAwIDA7XG59XG5cbi5wb3BvdmVyLWNvbnRlbnQge1xuICBwYWRkaW5nOiA5cHggMTRweDtcbn1cblxuLy8gQXJyb3dzXG4vL1xuLy8gLmFycm93IGlzIG91dGVyLCAuYXJyb3c6YWZ0ZXIgaXMgaW5uZXJcblxuLnBvcG92ZXIgPiAuYXJyb3cge1xuICAmLFxuICAmOmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgfVxufVxuLnBvcG92ZXIgPiAuYXJyb3cge1xuICBib3JkZXItd2lkdGg6IEBwb3BvdmVyLWFycm93LW91dGVyLXdpZHRoO1xufVxuLnBvcG92ZXIgPiAuYXJyb3c6YWZ0ZXIge1xuICBib3JkZXItd2lkdGg6IEBwb3BvdmVyLWFycm93LXdpZHRoO1xuICBjb250ZW50OiBcIlwiO1xufVxuXG4ucG9wb3ZlciB7XG4gICYudG9wID4gLmFycm93IHtcbiAgICBsZWZ0OiA1MCU7XG4gICAgbWFyZ2luLWxlZnQ6IC1AcG9wb3Zlci1hcnJvdy1vdXRlci13aWR0aDtcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICAgIGJvcmRlci10b3AtY29sb3I6IEBwb3BvdmVyLWFycm93LW91dGVyLWZhbGxiYWNrLWNvbG9yOyAvLyBJRTggZmFsbGJhY2tcbiAgICBib3JkZXItdG9wLWNvbG9yOiBAcG9wb3Zlci1hcnJvdy1vdXRlci1jb2xvcjtcbiAgICBib3R0b206IC1AcG9wb3Zlci1hcnJvdy1vdXRlci13aWR0aDtcbiAgICAmOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgICAgYm90dG9tOiAxcHg7XG4gICAgICBtYXJnaW4tbGVmdDogLUBwb3BvdmVyLWFycm93LXdpZHRoO1xuICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICAgIGJvcmRlci10b3AtY29sb3I6IEBwb3BvdmVyLWFycm93LWNvbG9yO1xuICAgIH1cbiAgfVxuICAmLnJpZ2h0ID4gLmFycm93IHtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiAtQHBvcG92ZXItYXJyb3ctb3V0ZXItd2lkdGg7XG4gICAgbWFyZ2luLXRvcDogLUBwb3BvdmVyLWFycm93LW91dGVyLXdpZHRoO1xuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1yaWdodC1jb2xvcjogQHBvcG92ZXItYXJyb3ctb3V0ZXItZmFsbGJhY2stY29sb3I7IC8vIElFOCBmYWxsYmFja1xuICAgIGJvcmRlci1yaWdodC1jb2xvcjogQHBvcG92ZXItYXJyb3ctb3V0ZXItY29sb3I7XG4gICAgJjphZnRlciB7XG4gICAgICBjb250ZW50OiBcIiBcIjtcbiAgICAgIGxlZnQ6IDFweDtcbiAgICAgIGJvdHRvbTogLUBwb3BvdmVyLWFycm93LXdpZHRoO1xuICAgICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gICAgICBib3JkZXItcmlnaHQtY29sb3I6IEBwb3BvdmVyLWFycm93LWNvbG9yO1xuICAgIH1cbiAgfVxuICAmLmJvdHRvbSA+IC5hcnJvdyB7XG4gICAgbGVmdDogNTAlO1xuICAgIG1hcmdpbi1sZWZ0OiAtQHBvcG92ZXItYXJyb3ctb3V0ZXItd2lkdGg7XG4gICAgYm9yZGVyLXRvcC13aWR0aDogMDtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiBAcG9wb3Zlci1hcnJvdy1vdXRlci1mYWxsYmFjay1jb2xvcjsgLy8gSUU4IGZhbGxiYWNrXG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogQHBvcG92ZXItYXJyb3ctb3V0ZXItY29sb3I7XG4gICAgdG9wOiAtQHBvcG92ZXItYXJyb3ctb3V0ZXItd2lkdGg7XG4gICAgJjphZnRlciB7XG4gICAgICBjb250ZW50OiBcIiBcIjtcbiAgICAgIHRvcDogMXB4O1xuICAgICAgbWFyZ2luLWxlZnQ6IC1AcG9wb3Zlci1hcnJvdy13aWR0aDtcbiAgICAgIGJvcmRlci10b3Atd2lkdGg6IDA7XG4gICAgICBib3JkZXItYm90dG9tLWNvbG9yOiBAcG9wb3Zlci1hcnJvdy1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAmLmxlZnQgPiAuYXJyb3cge1xuICAgIHRvcDogNTAlO1xuICAgIHJpZ2h0OiAtQHBvcG92ZXItYXJyb3ctb3V0ZXItd2lkdGg7XG4gICAgbWFyZ2luLXRvcDogLUBwb3BvdmVyLWFycm93LW91dGVyLXdpZHRoO1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICBib3JkZXItbGVmdC1jb2xvcjogQHBvcG92ZXItYXJyb3ctb3V0ZXItZmFsbGJhY2stY29sb3I7IC8vIElFOCBmYWxsYmFja1xuICAgIGJvcmRlci1sZWZ0LWNvbG9yOiBAcG9wb3Zlci1hcnJvdy1vdXRlci1jb2xvcjtcbiAgICAmOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgICAgcmlnaHQ6IDFweDtcbiAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiBAcG9wb3Zlci1hcnJvdy1jb2xvcjtcbiAgICAgIGJvdHRvbTogLUBwb3BvdmVyLWFycm93LXdpZHRoO1xuICAgIH1cbiAgfVxufVxuIiwiLy9cbi8vIENhcm91c2VsXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi8vIFdyYXBwZXIgZm9yIHRoZSBzbGlkZSBjb250YWluZXIgYW5kIGluZGljYXRvcnNcbi5jYXJvdXNlbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmNhcm91c2VsLWlubmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3aWR0aDogMTAwJTtcblxuICA+IC5pdGVtIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAudHJhbnNpdGlvbiguNnMgZWFzZS1pbi1vdXQgbGVmdCk7XG5cbiAgICAvLyBBY2NvdW50IGZvciBqYW5raXR1ZGUgb24gaW1hZ2VzXG4gICAgPiBpbWcsXG4gICAgPiBhID4gaW1nIHtcbiAgICAgICY6ZXh0ZW5kKC5pbWctcmVzcG9uc2l2ZSk7XG4gICAgICBsaW5lLWhlaWdodDogMTtcbiAgICB9XG5cbiAgICAvLyBXZWJLaXQgQ1NTMyB0cmFuc2Zvcm1zIGZvciBzdXBwb3J0ZWQgZGV2aWNlc1xuICAgIEBtZWRpYSBhbGwgYW5kICh0cmFuc2Zvcm0tM2QpLCAoLXdlYmtpdC10cmFuc2Zvcm0tM2QpIHtcbiAgICAgIC50cmFuc2l0aW9uLXRyYW5zZm9ybSh+JzAuNnMgZWFzZS1pbi1vdXQnKTtcbiAgICAgIC5iYWNrZmFjZS12aXNpYmlsaXR5KH4naGlkZGVuJyk7XG4gICAgICAucGVyc3BlY3RpdmUoMTAwMHB4KTtcblxuICAgICAgJi5uZXh0LFxuICAgICAgJi5hY3RpdmUucmlnaHQge1xuICAgICAgICAudHJhbnNsYXRlM2QoMTAwJSwgMCwgMCk7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICB9XG4gICAgICAmLnByZXYsXG4gICAgICAmLmFjdGl2ZS5sZWZ0IHtcbiAgICAgICAgLnRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgIH1cbiAgICAgICYubmV4dC5sZWZ0LFxuICAgICAgJi5wcmV2LnJpZ2h0LFxuICAgICAgJi5hY3RpdmUge1xuICAgICAgICAudHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgPiAuYWN0aXZlLFxuICA+IC5uZXh0LFxuICA+IC5wcmV2IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gID4gLmFjdGl2ZSB7XG4gICAgbGVmdDogMDtcbiAgfVxuXG4gID4gLm5leHQsXG4gID4gLnByZXYge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICA+IC5uZXh0IHtcbiAgICBsZWZ0OiAxMDAlO1xuICB9XG4gID4gLnByZXYge1xuICAgIGxlZnQ6IC0xMDAlO1xuICB9XG4gID4gLm5leHQubGVmdCxcbiAgPiAucHJldi5yaWdodCB7XG4gICAgbGVmdDogMDtcbiAgfVxuXG4gID4gLmFjdGl2ZS5sZWZ0IHtcbiAgICBsZWZ0OiAtMTAwJTtcbiAgfVxuICA+IC5hY3RpdmUucmlnaHQge1xuICAgIGxlZnQ6IDEwMCU7XG4gIH1cblxufVxuXG4vLyBMZWZ0L3JpZ2h0IGNvbnRyb2xzIGZvciBuYXZcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4uY2Fyb3VzZWwtY29udHJvbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBib3R0b206IDA7XG4gIHdpZHRoOiBAY2Fyb3VzZWwtY29udHJvbC13aWR0aDtcbiAgLm9wYWNpdHkoQGNhcm91c2VsLWNvbnRyb2wtb3BhY2l0eSk7XG4gIGZvbnQtc2l6ZTogQGNhcm91c2VsLWNvbnRyb2wtZm9udC1zaXplO1xuICBjb2xvcjogQGNhcm91c2VsLWNvbnRyb2wtY29sb3I7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1zaGFkb3c6IEBjYXJvdXNlbC10ZXh0LXNoYWRvdztcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTsgLy8gRml4IElFOSBjbGljay10aHJ1IGJ1Z1xuICAvLyBXZSBjYW4ndCBoYXZlIHRoaXMgdHJhbnNpdGlvbiBoZXJlIGJlY2F1c2UgV2ViS2l0IGNhbmNlbHMgdGhlIGNhcm91c2VsXG4gIC8vIGFuaW1hdGlvbiBpZiB5b3UgdHJpcCB0aGlzIHdoaWxlIGluIHRoZSBtaWRkbGUgb2YgYW5vdGhlciBhbmltYXRpb24uXG5cbiAgLy8gU2V0IGdyYWRpZW50cyBmb3IgYmFja2dyb3VuZHNcbiAgJi5sZWZ0IHtcbiAgICAjZ3JhZGllbnQgPiAuaG9yaXpvbnRhbChAc3RhcnQtY29sb3I6IHJnYmEoMCwwLDAsLjUpOyBAZW5kLWNvbG9yOiByZ2JhKDAsMCwwLC4wMDAxKSk7XG4gIH1cbiAgJi5yaWdodCB7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogMDtcbiAgICAjZ3JhZGllbnQgPiAuaG9yaXpvbnRhbChAc3RhcnQtY29sb3I6IHJnYmEoMCwwLDAsLjAwMDEpOyBAZW5kLWNvbG9yOiByZ2JhKDAsMCwwLC41KSk7XG4gIH1cblxuICAvLyBIb3Zlci9mb2N1cyBzdGF0ZVxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiAwO1xuICAgIGNvbG9yOiBAY2Fyb3VzZWwtY29udHJvbC1jb2xvcjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgLm9wYWNpdHkoLjkpO1xuICB9XG5cbiAgLy8gVG9nZ2xlc1xuICAuaWNvbi1wcmV2LFxuICAuaWNvbi1uZXh0LFxuICAuZ2x5cGhpY29uLWNoZXZyb24tbGVmdCxcbiAgLmdseXBoaWNvbi1jaGV2cm9uLXJpZ2h0IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgbWFyZ2luLXRvcDogLTEwcHg7XG4gICAgei1pbmRleDogNTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIH1cbiAgLmljb24tcHJldixcbiAgLmdseXBoaWNvbi1jaGV2cm9uLWxlZnQge1xuICAgIGxlZnQ6IDUwJTtcbiAgICBtYXJnaW4tbGVmdDogLTEwcHg7XG4gIH1cbiAgLmljb24tbmV4dCxcbiAgLmdseXBoaWNvbi1jaGV2cm9uLXJpZ2h0IHtcbiAgICByaWdodDogNTAlO1xuICAgIG1hcmdpbi1yaWdodDogLTEwcHg7XG4gIH1cbiAgLmljb24tcHJldixcbiAgLmljb24tbmV4dCB7XG4gICAgd2lkdGg6ICAyMHB4O1xuICAgIGhlaWdodDogMjBweDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBmb250LWZhbWlseTogc2VyaWY7XG4gIH1cblxuXG4gIC5pY29uLXByZXYge1xuICAgICY6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICdcXDIwMzknOy8vIFNJTkdMRSBMRUZULVBPSU5USU5HIEFOR0xFIFFVT1RBVElPTiBNQVJLIChVKzIwMzkpXG4gICAgfVxuICB9XG4gIC5pY29uLW5leHQge1xuICAgICY6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICdcXDIwM2EnOy8vIFNJTkdMRSBSSUdIVC1QT0lOVElORyBBTkdMRSBRVU9UQVRJT04gTUFSSyAoVSsyMDNBKVxuICAgIH1cbiAgfVxufVxuXG4vLyBPcHRpb25hbCBpbmRpY2F0b3IgcGlwc1xuLy9cbi8vIEFkZCBhbiB1bm9yZGVyZWQgbGlzdCB3aXRoIHRoZSBmb2xsb3dpbmcgY2xhc3MgYW5kIGFkZCBhIGxpc3QgaXRlbSBmb3IgZWFjaFxuLy8gc2xpZGUgeW91ciBjYXJvdXNlbCBob2xkcy5cblxuLmNhcm91c2VsLWluZGljYXRvcnMge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMTBweDtcbiAgbGVmdDogNTAlO1xuICB6LWluZGV4OiAxNTtcbiAgd2lkdGg6IDYwJTtcbiAgbWFyZ2luLWxlZnQ6IC0zMCU7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gIGxpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6ICAxMHB4O1xuICAgIGhlaWdodDogMTBweDtcbiAgICBtYXJnaW46IDFweDtcbiAgICB0ZXh0LWluZGVudDogLTk5OXB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIEBjYXJvdXNlbC1pbmRpY2F0b3ItYm9yZGVyLWNvbG9yO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgLy8gSUU4LTkgaGFjayBmb3IgZXZlbnQgaGFuZGxpbmdcbiAgICAvL1xuICAgIC8vIEludGVybmV0IEV4cGxvcmVyIDgtOSBkb2VzIG5vdCBzdXBwb3J0IGNsaWNrcyBvbiBlbGVtZW50cyB3aXRob3V0IGEgc2V0XG4gICAgLy8gYGJhY2tncm91bmQtY29sb3JgLiBXZSBjYW5ub3QgdXNlIGBmaWx0ZXJgIHNpbmNlIHRoYXQncyBub3Qgdmlld2VkIGFzIGFcbiAgICAvLyBiYWNrZ3JvdW5kIGNvbG9yIGJ5IHRoZSBicm93c2VyLiBUaHVzLCBhIGhhY2sgaXMgbmVlZGVkLlxuICAgIC8vIFNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9FdmVudHMvY2xpY2sjSW50ZXJuZXRfRXhwbG9yZXJcbiAgICAvL1xuICAgIC8vIEZvciBJRTgsIHdlIHNldCBzb2xpZCBibGFjayBhcyBpdCBkb2Vzbid0IHN1cHBvcnQgYHJnYmEoKWAuIEZvciBJRTksIHdlXG4gICAgLy8gc2V0IGFscGhhIHRyYW5zcGFyZW5jeSBmb3IgdGhlIGJlc3QgcmVzdWx0cyBwb3NzaWJsZS5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwIFxcOTsgLy8gSUU4XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwwKTsgLy8gSUU5XG4gIH1cbiAgLmFjdGl2ZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHdpZHRoOiAgMTJweDtcbiAgICBoZWlnaHQ6IDEycHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGNhcm91c2VsLWluZGljYXRvci1hY3RpdmUtYmc7XG4gIH1cbn1cblxuLy8gT3B0aW9uYWwgY2FwdGlvbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBIaWRkZW4gYnkgZGVmYXVsdCBmb3Igc21hbGxlciB2aWV3cG9ydHNcbi5jYXJvdXNlbC1jYXB0aW9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAxNSU7XG4gIHJpZ2h0OiAxNSU7XG4gIGJvdHRvbTogMjBweDtcbiAgei1pbmRleDogMTA7XG4gIHBhZGRpbmctdG9wOiAyMHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMjBweDtcbiAgY29sb3I6IEBjYXJvdXNlbC1jYXB0aW9uLWNvbG9yO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtc2hhZG93OiBAY2Fyb3VzZWwtdGV4dC1zaGFkb3c7XG4gICYgLmJ0biB7XG4gICAgdGV4dC1zaGFkb3c6IG5vbmU7IC8vIE5vIHNoYWRvdyBmb3IgYnV0dG9uIGVsZW1lbnRzIGluIGNhcm91c2VsLWNhcHRpb25cbiAgfVxufVxuXG5cbi8vIFNjYWxlIHVwIGNvbnRyb2xzIGZvciB0YWJsZXRzIGFuZCB1cFxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogQHNjcmVlbi1zbS1taW4pIHtcblxuICAvLyBTY2FsZSB1cCB0aGUgY29udHJvbHMgYSBzbWlkZ2VcbiAgLmNhcm91c2VsLWNvbnRyb2wge1xuICAgIC5nbHlwaGljb24tY2hldnJvbi1sZWZ0LFxuICAgIC5nbHlwaGljb24tY2hldnJvbi1yaWdodCxcbiAgICAuaWNvbi1wcmV2LFxuICAgIC5pY29uLW5leHQge1xuICAgICAgd2lkdGg6IChAY2Fyb3VzZWwtY29udHJvbC1mb250LXNpemUgKiAxLjUpO1xuICAgICAgaGVpZ2h0OiAoQGNhcm91c2VsLWNvbnRyb2wtZm9udC1zaXplICogMS41KTtcbiAgICAgIG1hcmdpbi10b3A6IChAY2Fyb3VzZWwtY29udHJvbC1mb250LXNpemUgLyAtMik7XG4gICAgICBmb250LXNpemU6IChAY2Fyb3VzZWwtY29udHJvbC1mb250LXNpemUgKiAxLjUpO1xuICAgIH1cbiAgICAuZ2x5cGhpY29uLWNoZXZyb24tbGVmdCxcbiAgICAuaWNvbi1wcmV2IHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAoQGNhcm91c2VsLWNvbnRyb2wtZm9udC1zaXplIC8gLTIpO1xuICAgIH1cbiAgICAuZ2x5cGhpY29uLWNoZXZyb24tcmlnaHQsXG4gICAgLmljb24tbmV4dCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IChAY2Fyb3VzZWwtY29udHJvbC1mb250LXNpemUgLyAtMik7XG4gICAgfVxuICB9XG5cbiAgLy8gU2hvdyBhbmQgbGVmdCBhbGlnbiB0aGUgY2FwdGlvbnNcbiAgLmNhcm91c2VsLWNhcHRpb24ge1xuICAgIGxlZnQ6IDIwJTtcbiAgICByaWdodDogMjAlO1xuICAgIHBhZGRpbmctYm90dG9tOiAzMHB4O1xuICB9XG5cbiAgLy8gTW92ZSB1cCB0aGUgaW5kaWNhdG9yc1xuICAuY2Fyb3VzZWwtaW5kaWNhdG9ycyB7XG4gICAgYm90dG9tOiAyMHB4O1xuICB9XG59XG4iLCIvLyBDbGVhcmZpeFxuLy9cbi8vIEZvciBtb2Rlcm4gYnJvd3NlcnNcbi8vIDEuIFRoZSBzcGFjZSBjb250ZW50IGlzIG9uZSB3YXkgdG8gYXZvaWQgYW4gT3BlcmEgYnVnIHdoZW4gdGhlXG4vLyAgICBjb250ZW50ZWRpdGFibGUgYXR0cmlidXRlIGlzIGluY2x1ZGVkIGFueXdoZXJlIGVsc2UgaW4gdGhlIGRvY3VtZW50LlxuLy8gICAgT3RoZXJ3aXNlIGl0IGNhdXNlcyBzcGFjZSB0byBhcHBlYXIgYXQgdGhlIHRvcCBhbmQgYm90dG9tIG9mIGVsZW1lbnRzXG4vLyAgICB0aGF0IGFyZSBjbGVhcmZpeGVkLlxuLy8gMi4gVGhlIHVzZSBvZiBgdGFibGVgIHJhdGhlciB0aGFuIGBibG9ja2AgaXMgb25seSBuZWNlc3NhcnkgaWYgdXNpbmdcbi8vICAgIGA6YmVmb3JlYCB0byBjb250YWluIHRoZSB0b3AtbWFyZ2lucyBvZiBjaGlsZCBlbGVtZW50cy5cbi8vXG4vLyBTb3VyY2U6IGh0dHA6Ly9uaWNvbGFzZ2FsbGFnaGVyLmNvbS9taWNyby1jbGVhcmZpeC1oYWNrL1xuXG4uY2xlYXJmaXgoKSB7XG4gICY6YmVmb3JlLFxuICAmOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIiBcIjsgLy8gMVxuICAgIGRpc3BsYXk6IHRhYmxlOyAvLyAyXG4gIH1cbiAgJjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gIH1cbn1cbiIsIi8vIENlbnRlci1hbGlnbiBhIGJsb2NrIGxldmVsIGVsZW1lbnRcblxuLmNlbnRlci1ibG9jaygpIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG4iLCIvLyBDU1MgaW1hZ2UgcmVwbGFjZW1lbnRcbi8vXG4vLyBIZWFkcyB1cCEgdjMgbGF1bmNoZWQgd2l0aCBvbmx5IGAuaGlkZS10ZXh0KClgLCBidXQgcGVyIG91ciBwYXR0ZXJuIGZvclxuLy8gbWl4aW5zIGJlaW5nIHJldXNlZCBhcyBjbGFzc2VzIHdpdGggdGhlIHNhbWUgbmFtZSwgdGhpcyBkb2Vzbid0IGhvbGQgdXAuIEFzXG4vLyBvZiB2My4wLjEgd2UgaGF2ZSBhZGRlZCBgLnRleHQtaGlkZSgpYCBhbmQgZGVwcmVjYXRlZCBgLmhpZGUtdGV4dCgpYC5cbi8vXG4vLyBTb3VyY2U6IGh0dHBzOi8vZ2l0aHViLmNvbS9oNWJwL2h0bWw1LWJvaWxlcnBsYXRlL2NvbW1pdC9hYTAzOTZlYWU3NTdcblxuLy8gRGVwcmVjYXRlZCBhcyBvZiB2My4wLjEgKGhhcyBiZWVuIHJlbW92ZWQgaW4gdjQpXG4uaGlkZS10ZXh0KCkge1xuICBmb250OiB+XCIwLzBcIiBhO1xuICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAwO1xufVxuXG4vLyBOZXcgbWl4aW4gdG8gdXNlIGFzIG9mIHYzLjAuMVxuLnRleHQtaGlkZSgpIHtcbiAgLmhpZGUtdGV4dCgpO1xufVxuIiwiLy9cbi8vIFJlc3BvbnNpdmU6IFV0aWxpdHkgY2xhc3Nlc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4vLyBJRTEwIGluIFdpbmRvd3MgKFBob25lKSA4XG4vL1xuLy8gU3VwcG9ydCBmb3IgcmVzcG9uc2l2ZSB2aWV3cyB2aWEgbWVkaWEgcXVlcmllcyBpcyBraW5kIG9mIGJvcmtlZCBpbiBJRTEwLCBmb3Jcbi8vIFN1cmZhY2UvZGVza3RvcCBpbiBzcGxpdCB2aWV3IGFuZCBmb3IgV2luZG93cyBQaG9uZSA4LiBUaGlzIHBhcnRpY3VsYXIgZml4XG4vLyBtdXN0IGJlIGFjY29tcGFuaWVkIGJ5IGEgc25pcHBldCBvZiBKYXZhU2NyaXB0IHRvIHNuaWZmIHRoZSB1c2VyIGFnZW50IGFuZFxuLy8gYXBwbHkgc29tZSBjb25kaXRpb25hbCBDU1MgdG8gKm9ubHkqIHRoZSBTdXJmYWNlL2Rlc2t0b3AgV2luZG93cyA4LiBMb29rIGF0XG4vLyBvdXIgR2V0dGluZyBTdGFydGVkIHBhZ2UgZm9yIG1vcmUgaW5mb3JtYXRpb24gb24gdGhpcyBidWcuXG4vL1xuLy8gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSB0aGUgZm9sbG93aW5nOlxuLy9cbi8vIElzc3VlOiBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvaXNzdWVzLzEwNDk3XG4vLyBEb2NzOiBodHRwOi8vZ2V0Ym9vdHN0cmFwLmNvbS9nZXR0aW5nLXN0YXJ0ZWQvI3N1cHBvcnQtaWUxMC13aWR0aFxuLy8gU291cmNlOiBodHRwOi8vdGlta2FkbGVjLmNvbS8yMDEzLzAxL3dpbmRvd3MtcGhvbmUtOC1hbmQtZGV2aWNlLXdpZHRoL1xuLy8gU291cmNlOiBodHRwOi8vdGlta2FkbGVjLmNvbS8yMDEyLzEwL2llMTAtc25hcC1tb2RlLWFuZC1yZXNwb25zaXZlLWRlc2lnbi9cblxuQC1tcy12aWV3cG9ydCB7XG4gIHdpZHRoOiBkZXZpY2Utd2lkdGg7XG59XG5cblxuLy8gVmlzaWJpbGl0eSB1dGlsaXRpZXNcbi8vIE5vdGU6IERlcHJlY2F0ZWQgLnZpc2libGUteHMsIC52aXNpYmxlLXNtLCAudmlzaWJsZS1tZCwgYW5kIC52aXNpYmxlLWxnIGFzIG9mIHYzLjIuMFxuLnZpc2libGUteHMsXG4udmlzaWJsZS1zbSxcbi52aXNpYmxlLW1kLFxuLnZpc2libGUtbGcge1xuICAucmVzcG9uc2l2ZS1pbnZpc2liaWxpdHkoKTtcbn1cblxuLnZpc2libGUteHMtYmxvY2ssXG4udmlzaWJsZS14cy1pbmxpbmUsXG4udmlzaWJsZS14cy1pbmxpbmUtYmxvY2ssXG4udmlzaWJsZS1zbS1ibG9jayxcbi52aXNpYmxlLXNtLWlubGluZSxcbi52aXNpYmxlLXNtLWlubGluZS1ibG9jayxcbi52aXNpYmxlLW1kLWJsb2NrLFxuLnZpc2libGUtbWQtaW5saW5lLFxuLnZpc2libGUtbWQtaW5saW5lLWJsb2NrLFxuLnZpc2libGUtbGctYmxvY2ssXG4udmlzaWJsZS1sZy1pbmxpbmUsXG4udmlzaWJsZS1sZy1pbmxpbmUtYmxvY2sge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi52aXNpYmxlLXhzIHtcbiAgQG1lZGlhIChtYXgtd2lkdGg6IEBzY3JlZW4teHMtbWF4KSB7XG4gICAgLnJlc3BvbnNpdmUtdmlzaWJpbGl0eSgpO1xuICB9XG59XG4udmlzaWJsZS14cy1ibG9jayB7XG4gIEBtZWRpYSAobWF4LXdpZHRoOiBAc2NyZWVuLXhzLW1heCkge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi52aXNpYmxlLXhzLWlubGluZSB7XG4gIEBtZWRpYSAobWF4LXdpZHRoOiBAc2NyZWVuLXhzLW1heCkge1xuICAgIGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50O1xuICB9XG59XG4udmlzaWJsZS14cy1pbmxpbmUtYmxvY2sge1xuICBAbWVkaWEgKG1heC13aWR0aDogQHNjcmVlbi14cy1tYXgpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcbiAgfVxufVxuXG4udmlzaWJsZS1zbSB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLXNtLW1pbikgYW5kIChtYXgtd2lkdGg6IEBzY3JlZW4tc20tbWF4KSB7XG4gICAgLnJlc3BvbnNpdmUtdmlzaWJpbGl0eSgpO1xuICB9XG59XG4udmlzaWJsZS1zbS1ibG9jayB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLXNtLW1pbikgYW5kIChtYXgtd2lkdGg6IEBzY3JlZW4tc20tbWF4KSB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxufVxuLnZpc2libGUtc20taW5saW5lIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tc20tbWluKSBhbmQgKG1heC13aWR0aDogQHNjcmVlbi1zbS1tYXgpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDtcbiAgfVxufVxuLnZpc2libGUtc20taW5saW5lLWJsb2NrIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tc20tbWluKSBhbmQgKG1heC13aWR0aDogQHNjcmVlbi1zbS1tYXgpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcbiAgfVxufVxuXG4udmlzaWJsZS1tZCB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLW1kLW1pbikgYW5kIChtYXgtd2lkdGg6IEBzY3JlZW4tbWQtbWF4KSB7XG4gICAgLnJlc3BvbnNpdmUtdmlzaWJpbGl0eSgpO1xuICB9XG59XG4udmlzaWJsZS1tZC1ibG9jayB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLW1kLW1pbikgYW5kIChtYXgtd2lkdGg6IEBzY3JlZW4tbWQtbWF4KSB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxufVxuLnZpc2libGUtbWQtaW5saW5lIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbWQtbWluKSBhbmQgKG1heC13aWR0aDogQHNjcmVlbi1tZC1tYXgpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDtcbiAgfVxufVxuLnZpc2libGUtbWQtaW5saW5lLWJsb2NrIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbWQtbWluKSBhbmQgKG1heC13aWR0aDogQHNjcmVlbi1tZC1tYXgpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcbiAgfVxufVxuXG4udmlzaWJsZS1sZyB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLWxnLW1pbikge1xuICAgIC5yZXNwb25zaXZlLXZpc2liaWxpdHkoKTtcbiAgfVxufVxuLnZpc2libGUtbGctYmxvY2sge1xuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1sZy1taW4pIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG59XG4udmlzaWJsZS1sZy1pbmxpbmUge1xuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1sZy1taW4pIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDtcbiAgfVxufVxuLnZpc2libGUtbGctaW5saW5lLWJsb2NrIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbGctbWluKSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLmhpZGRlbi14cyB7XG4gIEBtZWRpYSAobWF4LXdpZHRoOiBAc2NyZWVuLXhzLW1heCkge1xuICAgIC5yZXNwb25zaXZlLWludmlzaWJpbGl0eSgpO1xuICB9XG59XG4uaGlkZGVuLXNtIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tc20tbWluKSBhbmQgKG1heC13aWR0aDogQHNjcmVlbi1zbS1tYXgpIHtcbiAgICAucmVzcG9uc2l2ZS1pbnZpc2liaWxpdHkoKTtcbiAgfVxufVxuLmhpZGRlbi1tZCB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLW1kLW1pbikgYW5kIChtYXgtd2lkdGg6IEBzY3JlZW4tbWQtbWF4KSB7XG4gICAgLnJlc3BvbnNpdmUtaW52aXNpYmlsaXR5KCk7XG4gIH1cbn1cbi5oaWRkZW4tbGcge1xuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1sZy1taW4pIHtcbiAgICAucmVzcG9uc2l2ZS1pbnZpc2liaWxpdHkoKTtcbiAgfVxufVxuXG5cbi8vIFByaW50IHV0aWxpdGllc1xuLy9cbi8vIE1lZGlhIHF1ZXJpZXMgYXJlIHBsYWNlZCBvbiB0aGUgaW5zaWRlIHRvIGJlIG1peGluLWZyaWVuZGx5LlxuXG4vLyBOb3RlOiBEZXByZWNhdGVkIC52aXNpYmxlLXByaW50IGFzIG9mIHYzLjIuMFxuLnZpc2libGUtcHJpbnQge1xuICAucmVzcG9uc2l2ZS1pbnZpc2liaWxpdHkoKTtcblxuICBAbWVkaWEgcHJpbnQge1xuICAgIC5yZXNwb25zaXZlLXZpc2liaWxpdHkoKTtcbiAgfVxufVxuLnZpc2libGUtcHJpbnQtYmxvY2sge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG5cbiAgQG1lZGlhIHByaW50IHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG59XG4udmlzaWJsZS1wcmludC1pbmxpbmUge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG5cbiAgQG1lZGlhIHByaW50IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDtcbiAgfVxufVxuLnZpc2libGUtcHJpbnQtaW5saW5lLWJsb2NrIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuXG4gIEBtZWRpYSBwcmludCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLmhpZGRlbi1wcmludCB7XG4gIEBtZWRpYSBwcmludCB7XG4gICAgLnJlc3BvbnNpdmUtaW52aXNpYmlsaXR5KCk7XG4gIH1cbn1cbiIsIi8vIFJlc3BvbnNpdmUgdXRpbGl0aWVzXG5cbi8vXG4vLyBNb3JlIGVhc2lseSBpbmNsdWRlIGFsbCB0aGUgc3RhdGVzIGZvciByZXNwb25zaXZlLXV0aWxpdGllcy5sZXNzLlxuLnJlc3BvbnNpdmUtdmlzaWJpbGl0eSgpIHtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgdGFibGUmICB7IGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7IH1cbiAgdHImICAgICB7IGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50OyB9XG4gIHRoJixcbiAgdGQmICAgICB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxufVxuXG4ucmVzcG9uc2l2ZS1pbnZpc2liaWxpdHkoKSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cbiIsIi8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xuLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExFU1MgVkFSSUFCTEVTXG4qKiAgICAgICAgICAgICAgICBUaGlzIHN0eWxlc2hlZXQgc2hvdWxkIG9ubHkgY29udGFpbiB2YXJpYWJsZXMuXG4vKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sb3IgcGFsZXR0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuQG1ncmVlbjogICAgICAgICAgICAgICAgICAgICAgICAgICNkYWUxNzM7XG5AbW9yYW5nZTogICAgICAgICAgICAgICAgICAgICAgICAgI2Q2NzgyYjtcbkBtZGFya2JsdWU6ICAgICAgICAgICAgICAgICAgICAgICAjMjMyNTI4O1xuQG1ncmV5OiAgICAgICAgICAgICAgICAgICAgICAgICAgICNjY2NjY2M7XG5AbWxpZ2h0Z3JleTogICAgICAgICAgICAgICAgICAgICAgIzk5OTk5OTtcbkBtZGFya2JnOiAgICAgICAgICAgICAgICAgICAgICAgICAjMTYxNjFCO1xuQG1ibHVlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICMzNThmZGM7XG5AZGFya2VyYmx1ZTogICAgICAgICAgICAgICAgICAgICAgIzE2MjUyYztcbkBkYXJrYmx1ZTogICAgICAgICAgICAgICAgICAgICAgICAjMTcyNjJkO1xuQGRhcmtlcmJsdWU6ICAgICAgICAgICAgICAgICAgICAgIGRhcmtlbihAZGFya2JsdWUsNCUpO1xuQGRhcmtibHVlMjogICAgICAgICAgICAgICAgICAgICAgICMyNTMzM2E7XG5AbWVkaXVtYmx1ZTogICAgICAgICAgICAgICAgICAgICAgIzYyNmQ2ZDtcbkBsaWdodGJsdWU6ICAgICAgICAgICAgICAgICAgICAgICAjYWJjNGM2O1xuQHBpbms6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICNlZDFlNzk7XG5AcmVkOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI0ZGMDAwMDtcblxuQGZsdXJvYmx1ZTogICAgICAgICAgICAgICAgICAgICAgICMwMGU1ZjA7XG5AZmx1cm9vcmFuZ2U6ICAgICAgICAgICAgICAgICAgICAgI2ZmNzMwMDtcbkBmbHVyZW95ZWxsb3c6ICAgICAgICAgICAgICAgICAgICAjZmJkOTI1O1xuQGZsdXJvZ3JlZW46ICAgICAgICAgICAgICAgICAgICAgICM0N2ZmMDA7XG5AZmx1cm9waW5rOiAgICAgICAgICAgICAgICAgICAgICAgI2UwMWY3NDtcblxuQGRhcmtncmVlbjogICAgICAgICAgICAgICAgICAgICAgICMzM2QzNzU7XG5AZ3JlZW46ICAgICAgICAgICAgICAgICAgICAgICAgICAgI2QxZTU1YztcbkBwdXJwbGU6ICAgICAgICAgICAgICAgICAgICAgICAgICAjOTc3YmYwO1xuQGxpZ2h0Z3JheTogICAgICAgICAgICAgICAgICAgICAgICNlNmVkZWU7XG5AYmx1ZWdyYXk6ICAgICAgICAgICAgICAgICAgICAgICAgI2FiYzRjNjtcbkBibHVlZ3JheTI6ICAgICAgICAgICAgICAgICAgICAgICAjMzU0NjRjO1xuXG5AYnJhbmQtc3VjY2VzczogICAgICAgICAgICAgICAgICBAZmx1cm9ibHVlO1xuQGJyYW5kLXdhcm5pbmc6ICAgICAgICAgICAgICAgICAgQHB1cnBsZTtcbkBicmFuZC1pbmZvOiAgICAgICAgICAgICAgICAgICAgIEBmbHVyb2JsdWU7XG5AYnJhbmQtZGFuZ2VyOiAgICAgICAgICAgICAgICAgICBAZmx1cm9waW5rO1xuQGJyYW5kLXByaW1hcnk6ICAgICAgICAgICAgICAgICAgQGZsdXJvYmx1ZTtcblxuQGltcGFjLXBvc2l0aXZlOiAgICAgICAgICAgICAgICAgZ3JlZW47XG5AaW1wYWMtbmVnYXRpdmU6ICAgICAgICAgICAgICAgICBAcGluaztcbkBpbXBhYy1wb3NpdGl2ZTI6ICAgICAgICAgICAgICAgICMzZmM0ZmY7ICAgICAvLyBsaWdodGVyIGNvbG9ycyB1c2VkIGZvciBwYXlhYmxlcy1yZWNlaXZhYmxlc1xuQGltcGFjLW5lZ2F0aXZlMjogICAgICAgICAgICAgICAgIzFkZTliNjsgICAgIC8vIGxpZ2h0ZXIgY29sb3JzdXNlZCBmb3IgcGF5YWJsZXMtcmVjZWl2YWJsZXNcblxuLy8gU3BhY2Vyc1xuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AdG9wLWJ1ZmZlci1oZWlnaHQ6IEBncmlkLWd1dHRlci13aWR0aC8yOyAvLyBib290c3RyYXAgdmFyaWFibGVcbi50b3AtYnVmZmVyLTEgeyBtYXJnaW4tdG9wOiBAdG9wLWJ1ZmZlci1oZWlnaHQ7IH1cbi50b3AtYnVmZmVyLTIgeyBtYXJnaW4tdG9wOiAyKkB0b3AtYnVmZmVyLWhlaWdodDsgfVxuLnRvcC1idWZmZXItMyB7IG1hcmdpbi10b3A6IDMqQHRvcC1idWZmZXItaGVpZ2h0OyB9XG4udG9wLWJ1ZmZlci00IHsgbWFyZ2luLXRvcDogNCpAdG9wLWJ1ZmZlci1oZWlnaHQ7IH1cbi50b3AtYnVmZmVyLTUgeyBtYXJnaW4tdG9wOiA1KkB0b3AtYnVmZmVyLWhlaWdodDsgfVxuLnRvcC1idWZmZXItNiB7IG1hcmdpbi10b3A6IDYqQHRvcC1idWZmZXItaGVpZ2h0OyB9XG4udG9wLWJ1ZmZlci03IHsgbWFyZ2luLXRvcDogNypAdG9wLWJ1ZmZlci1oZWlnaHQ7IH1cbi50b3AtYnVmZmVyLTggeyBtYXJnaW4tdG9wOiA4KkB0b3AtYnVmZmVyLWhlaWdodDsgfVxuLnRvcC1idWZmZXItOSB7IG1hcmdpbi10b3A6IDkqQHRvcC1idWZmZXItaGVpZ2h0OyB9XG4udG9wLWJ1ZmZlci0xMCB7IG1hcmdpbi10b3A6IDEwKkB0b3AtYnVmZmVyLWhlaWdodDsgfVxuXG4vLyBEYXNoYm9hcmRcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBpbXBhYy1kYXNoYm9hcmQtcGFkZGluZy10b3A6ICAgICAgICAgICAgICAgICAgIDUwcHg7XG5AaW1wYWMtZGFzaGJvYXJkLXNtLXBhZGRpbmctdG9wOiAgICAgICAgICAgICAgICBAaW1wYWMtZGFzaGJvYXJkLXBhZGRpbmctdG9wICogMztcbkBpbXBhYy1kYXNoYm9hcmQtbWFyZ2luLWxlZnQ6ICAgICAgICAgICAgICAgICAgIDEwMHB4O1xuQGltcGFjLWRhc2hib2FyZC1ib3JkZXJzLWNvbG9yOiAgICAgICAgICAgICAgICAgQGxpZ2h0Ymx1ZTtcblxuLy8gVGl0bGVcbkBpbXBhYy1kYXNoYm9hcmQtdGl0bGUtY29sb3I6ICAgICAgICAgICAgICAgICAgIEBwdXJwbGU7XG5AaW1wYWMtZGFzaGJvYXJkLXRpdGxlLWxhYmVsLWNvbG9yOiAgICAgICAgICAgICBAZGFya2JsdWU7XG5AaW1wYWMtZGFzaGJvYXJkLXRpdGxlLWxhYmVsLWNyZWF0ZS1jb2xvcjogICAgICB3aGl0ZTtcbkBpbXBhYy1kYXNoYm9hcmQtc291cmNlLWNvbG9yOiAgICAgICAgICAgICAgICAgIEBpbXBhYy1kYXNoYm9hcmQtdGl0bGUtbGFiZWwtY29sb3I7XG5AaW1wYWMtZGFzaGJvYXJkLWJ1dHRvbnMtYm9yZGVyLXJhZGl1czogICAgICAgICA0cHg7XG5cbi8vIENyZWF0ZVxuQGltcGFjLWRhc2hib2FyZC1jcmVhdGUtYnV0dG9uLWNvbG9yOiAgICAgICAgICAgQGltcGFjLWRhc2hib2FyZC10aXRsZS1jb2xvcjtcblxuLy9JbmZvLXRleHRcbkBpbXBhYy1kYXNoYm9hcmQtaW5mby10ZXh0LWNvbG9yOiAgICAgICAgICAgICAgIHdoaXRlO1xuQGltcGFjLWRhc2hib2FyZC1pbmZvLXRleHQtYmFja2dyb3VuZC1jb2xvcjogICAgcmdiYSgyMywzOCw0NSwgMC43KTtcbkBpbXBhYy1kYXNoYm9hcmQtaW5mby10ZXh0LWZvbnQtc2l6ZTogICAgICAgICAgIDI1cHg7XG5AaW1wYWMtZGFzaGJvYXJkLWluZm8tdGV4dC1mb250LXdlaWdodDogICAgICAgICAzMDA7XG5cbi8vIERhc2hib2FyZCBTZWxlY3RvclxuICAvLyBUYWJzXG5AaW1wYWMtZGFzaGJvYXJkLXNlbGVjdG9yLWJvcmRlcjogICAgICAgICAgICAgICAxcHggc29saWQgQGltcGFjLWRhc2hib2FyZC1ib3JkZXJzLWNvbG9yO1xuQGltcGFjLWRhc2hib2FyZC1zZWxlY3Rvci10YWJzLW1hcmdpbjogICAgICAgICAgMCAycHggMCAwO1xuQGltcGFjLWRhc2hib2FyZC1zZWxlY3Rvci10YWJzLXBhZGRpbmc6ICAgICAgICAgMTBweCA4cHggMTBweCAxNXB4O1xuQGltcGFjLWRhc2hib2FyZC1zZWxlY3Rvci10YWJzLWJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuQGltcGFjLWRhc2hib2FyZC1zZWxlY3Rvci10YWJzLWFjdGl2ZS1iYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuQGltcGFjLWRhc2hib2FyZC1zZWxlY3Rvci10YWJzLWNvbG9yOiAgICAgICAgICAgYmxhY2s7XG5AaW1wYWMtZGFzaGJvYXJkLXNlbGVjdG9yLXRhYnMtYWN0aXZlLWNvbG9yOiAgICBAcHVycGxlO1xuXG4vLyBXaWRnZXQgc2VsZWN0b3JcbkBpbXBhYy1kYXNoYm9hcmQtd2lkZ2V0LXNlbGVjdG9yLWJnOiAgICAgICAgICAgICMyMzM4NDU7XG5AaW1wYWMtZGFzaGJvYXJkLXdpZGdldC1zZWxlY3Rvci10ZXh0LWNvbG9yOiAgICB3aGl0ZTtcbkBpbXBhYy1kYXNoYm9hcmQtd2lkZ2V0LXNlbGVjdG9yLXdpZGdldC1pdGVtLW1pbi1oZWlnaHQ6IDBweDtcblxuLy8gV2lkZ2V0cyBjb250YWluZXJcbkBpbXBhYy1wbGFjZWhvbGRlci1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAgIDJweCBkYXNoZWQgQGltcGFjLWRhc2hib2FyZC1ib3JkZXJzLWNvbG9yO1xuQGltcGFjLXdpZGdldHMtY29udGFpbmVyLXNpZGUtcGFkZGluZzogICAgICAgICAgMHB4O1xuQGltcGFjLXBhZGRpbmctYmV0d2Vlbi13aWRnZXRzOiAgICAgICAgICAgICAgICAgMTJweDtcbkBpbXBhYy1taW5pbXVtLXdpZGdldC1zaXplOiAgICAgICAgICAgICAgICAgICAgIDI1MHB4O1xuQGltcGFjLWJpZy13aWRnZXQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICAgNTY1cHg7XG5cbi8vIEJ1dHRvbnNcbkBpbXBhYy1idG4tc2hhZGRlZC1iZzogICAgICAgICAgICAgICAgICAgICAgICAgQGRhcmtibHVlO1xuQGltcGFjLWJ0bi1zaGFkZGVkLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICBAbWVkaXVtYmx1ZTtcblxuLy8gRGFzaGJvYXJkIE1vZGFsc1xuQGltcGFjLWRhc2hib2FyZC1sb2FkaW5nLXNwaW5uZXI6ICAgICAgICAgICAgICAgd2hpdGU7XG5AaW1wYWMtZGFzaGJvYXJkLXRlbXBsYXRlcy1zZWxlY3RlZC1iYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI5LCAxOTcsIDU3LCAwLjYyKTtcblxuLy8gV2lkZ2V0c1xuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gR2xvYmFsXG5AaW1wYWMtd2lkZ2V0LWxpbmstY29sb3I6ICAgICAgICAgICAgICAgICAgICAgIEBwdXJwbGU7XG5AaW1wYWMtd2lkZ2V0LWJ1dHRvbnMtY29sb3I6ICAgICAgICAgICAgICAgICAgIEBpbXBhYy13aWRnZXQtbGluay1jb2xvcjtcbkBpbXBhYy13aWRnZXQtdGlsZS1zZWxlY3RlZC1jb2xvcjogICAgICAgICAgICAgQGltcGFjLXdpZGdldC1saW5rLWNvbG9yO1xuQGltcGFjLXdpZGdldC1iYWNrZ3JvdW5kLWNvbG9yOiAgICAgICAgICAgICAgICB3aGl0ZTtcbkBpbXBhYy13aWRnZXQtYm9yZGVyOiAgICAgICAgICAgICAgICAgICAgICAgICAgc29saWQgMXB4IGRhcmtlbihAbGlnaHRncmF5LDEwJSk7XG5AaW1wYWMtd2lkZ2V0LXRleHQtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICM1QjY2Njc7XG5AaW1wYWMtd2lkZ2V0LXRleHQtY29sb3ItbWVkaXVtOiAgICAgICAgICAgICAgIGxpZ2h0ZW4oQGltcGFjLXdpZGdldC10ZXh0LWNvbG9yLDI1JSk7XG5AaW1wYWMtd2lkZ2V0LXRleHQtY29sb3ItbGlnaHQ6ICAgICAgICAgICAgICAgIGxpZ2h0ZW4oQGltcGFjLXdpZGdldC10ZXh0LWNvbG9yLDQwJSk7IC8vI2FjYjBiMVxuQGltcGFjLXdpZGdldC1ib3JkZXJzLWNvbG9yOiAgICAgICAgICAgICAgICAgICBsaWdodGVuKEBpbXBhYy13aWRnZXQtdGV4dC1jb2xvci1saWdodCwxMCUpOyAvLyNmM2Y0ZjRcbkBpbXBhYy13aWRnZXQtc2Nyb2xsYmFyLWNvbG9yOiAgICAgICAgICAgICAgICAgIzIzMzg0NTtcbkBpbXBhYy13aWRnZXQtbG9hZGluZy1zcGlubmVyOiAgICAgICAgICAgICAgICAgIzY3QkJFOTtcbkBpbXBhYy13aWRnZXQtcmV2ZXJzZS1jb2xvcjogICAgICAgICAgICAgICAgICAgIzFFMzAzQjtcbkBpbXBhYy13aWRnZXQtbWVudXMtaG92ZXItYmFja2dyb3VuZC1jb2xvcjogICAgI2VjZWNlYztcblxuLy8gVGl0bGVcbkBpbXBhYy13aWRnZXQtdGl0bGUtdGV4dC1jb2xvcjogICAgICAgICAgICAgICAgZGFya2VuKEBpbXBhYy13aWRnZXQtdGV4dC1jb2xvciw1JSk7XG5AaW1wYWMtd2lkZ2V0LXRpdGxlLWJnOiAgICAgICAgICAgICAgICAgICAgICAgIEBpbXBhYy13aWRnZXQtYmFja2dyb3VuZC1jb2xvcjtcbkBpbXBhYy13aWRnZXQtdGl0bGUtYm9yZGVyOiAgICAgICAgICAgICAgICAgICAgc29saWQgMXB4IEBpbXBhYy13aWRnZXQtYm9yZGVycy1jb2xvcjtcbkBpbXBhYy13aWRnZXQtdGl0bGUtdGV4dC10cmFuc2Zvcm06ICAgICAgICAgICAgdXBwZXJjYXNlO1xuQGltcGFjLXdpZGdldC10aXRsZS10ZXh0LXNpemU6ICAgICAgICAgICAgICAgICAxMnB4O1xuQGltcGFjLXdpZGdldC10aXRsZS1ib3JkZXItcmFkaXVzOiAgICAgICAgICAgICA1cHggNXB4IDBweCAwcHg7XG5AaW1wYWMtd2lkZ2V0LXRvcC1idXR0b25zLWNvbG9yOiAgICAgICAgICAgICAgIEBpbXBhYy13aWRnZXQtdGV4dC1jb2xvci1saWdodDtcblxuLy8gQ29udGVudFxuQGltcGFjLXdpZGdldC1jb250ZW50LWJvcmRlci1yYWRpdXM6ICAgICAgICAgICAwcHggMHB4IDVweCA1cHg7XG5AaW1wYWMtd2lkZ2V0LWxpbmVzLWNvbnRhaW5lci1tYXgtaGVpZ2h0OiAgICAgIDIwMHB4O1xuXG4vLyBTZXR0aW5nc1xuLy8gUGFyYW0gc2VsZWN0b3JcbkBpbXBhYy13aWRnZXQtcGFyYW0tc2VsZWN0b3ItY29sb3I6ICAgICAgICAgICAgQGltcGFjLXdpZGdldC1saW5rLWNvbG9yO1xuLy8gSGlzdCBNb2RlIENob3NlclxuQGltcGFjLXdpZGdldC1oaXN0LXRleHQtdHJhbnNmb3JtOiAgICAgICAgICAgICB1cHBlcmNhc2U7XG5AaW1wYWMtd2lkZ2V0LWhpc3QtdGV4dC1zaXplOiAgICAgICAgICAgICAgICAgIDEycHg7XG5AaW1wYWMtd2lkZ2V0LWhpc3QtdGV4dC1jb2xvcjogICAgICAgICAgICAgICAgIEBpbXBhYy13aWRnZXQtdGV4dC1jb2xvci1saWdodDtcbi8vIFBhcmFtcyBwaWNrZXJcbkBpbXBhYy13aWRnZXQtcGFyYW1zLXBpY2tlci1iZzogICAgICAgICAgICAgICAgQGltcGFjLXdpZGdldC1yZXZlcnNlLWNvbG9yO1xuQGltcGFjLXdpZGdldC1wYXJhbXMtcGlja2VyLXVuY2hlY2tlZC1iZzogICAgICAjYzJjNGM0O1xuLy8gTGltaXQgZW50cmllc1xuQGltcGFjLXdpZGdldC1saW1pdC1lbnRyaWVzLWNvbG9yOiAgICAgICAgICAgICBAaW1wYWMtd2lkZ2V0LXJldmVyc2UtY29sb3I7XG5cbi8vIEdsb2JhbHMgYW5kIE1peGluc1xuQGltcGFjLXdpZGdldC1zZWxlY3RhYmxlLWNvbG9yOiAgICAgICAgICAgICAgICBAaW1wYWMtd2lkZ2V0LWxpbmstY29sb3I7XG5cbi8vIEVkaXQgc2V0dGluZ3NcbkBpbXBhYy13aWRnZXQtc3ViLWJnLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgZGFya2VuKEBpbXBhYy13aWRnZXQtYmFja2dyb3VuZC1jb2xvciw2JSk7XG5AaW1wYWMtd2lkZ2V0LXN1Yi1iZy1jb2xvci1saWdodDogICAgICAgICAgICAgIGxpZ2h0ZW4oQGltcGFjLXdpZGdldC1zdWItYmctY29sb3IsNSUpOyAvL2YzZjRmNFxuXG4vLyBBY2NvdW50cyBDb21wYXJpc29uXG5AaW1wYWMtd2lkZ2V0LWFjY291bnRzLWNvbXBhcmlzb24tbGluZXMtY29udGFpbmVyLW1heC1oZWlnaHQ6IDIyMHB4O1xuXG4vLyBTYWxlcyBicmVhay1ldmVuXG5AaW1wYWMtd2lkZ2V0LXNhbGVzLWJyZWFrLWV2ZW4tYmc6ICAgICAgICAgICAgIHJnYigyNSw0MCw0OSk7XG5AaW1wYWMtd2lkZ2V0LXNhbGVzLWJyZWFrLWV2ZW4tdGV4dC1jb2xvcjogICAgICMxZGU5YjY7XG5cbi8vIEtQSXNcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEtwaSBiYXJcbkBrcGlzLWJhci1iYWNrZ3JvdW5kLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgd2hpdGU7XG5Aa3Bpcy1iYXItYm94LXNoYWRvdzogICAgICAgICAgICAgICAgICAgICAgICAgIDBweCAxcHggOHB4IC00cHg7XG4vLyBLcGlcbkBrcGktYmFja2dyb3VuZC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgd2hpdGU7XG5Aa3BpLXRyaWdnZXJlZC1ib3JkZXItYm90dG9tOiAgICAgICAgICAgICAgICAgIDRweCBzb2xpZCBAYnJhbmQtZGFuZ2VyO1xuQGtwaS1tYXgtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA5NXB4O1xuQGtwaS1lZGl0aW5nLW1heC1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICA5MHB4OyAvLyBoZWlnaHQgdG8gYmUgYWRkZWQgdG8gdGhlIEBrcGktbWF4LWhlaWdodCB3aGVuIGluIGVkaXRpbmcgbW9kZS5cbkBrcGktY29udGVudC1lZGl0aW5nLWhlaWdodC1idWZmZXI6ICAgICAgICAgICAgNXB4OyAvLyBoZWlnaHQgdG8gYmUgbWludXNlZCBmcm9tIHRoZSBAa3BpLWVkaXRpbmctbWF4LWhlaWdodCB0byBldmVuIHRoZSBrcGkgaGVpZ2h0IGFuZCB0aGUga3BpIGNvbnRlbnQgaGVpZ2h0LlxuLy8gS3BpIHRvcC1saW5lXG5Aa3BpLXRvcC1saW5lLWJhY2tncm91bmQtY29sb3I6ICAgICAgICAgICAgICAgIGdyZXk7XG5Aa3BpLXRvcC1saW5lLXRyaWdnZXJlZC1iYWNrZ3JvdW5kLWNvbG9yOiAgICAgIGJsYWNrO1xuQGtwaS10b3AtbGluZS1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAgICA3cHg7XG5Aa3BpLXRvcC1saW5lLWJveC1zaGFkb3c6ICAgICAgICAgICAgICAgICAgICAgIG5vbmU7XG4vLyBrcGkgY29udGVudFxuQGtwaS10ZXh0LWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmV5O1xuQGtwaS10ZXh0LXRyaWdnZXJlZC1jb2xvcjogICAgICAgICAgICAgICAgICAgICBibGFjaztcbkBrcGktaWNvbi1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JleTtcbkBrcGktaWNvbi10cmlnZ2VyZWQtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgYmxhY2s7XG4vLyBrcGkgc2V0dGluZ3NcbkBrcGktc2V0dGluZ3MtZm9jdXMtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgQG1ibHVlO1xuQGtwaS1zZXR0aW5ncy1lcnJvci1jb2xvcjogICAgICAgICAgICAgICAgICAgICBAYnJhbmQtZGFuZ2VyO1xuQGtwaS1zZXR0aW5ncy1yZW1vdmUtYmFja2dyb3VuZDogICAgICAgICAgICAgICAjNGM0NzQ5O1xuQGtwaS1zZXR0aW5ncy1yZW1vdmUtYmFja2dyb3VuZC1ob3ZlcjogICAgICAgICBkYXJrZW4oQGJyYW5kLWRhbmdlciwgNSUpO1xuQGtwaS1zZXR0aW5ncy1hbGVydC1jb25maWctYmFja2dyb3VuZDogICAgICAgICAjNGM0NzQ5O1xuQGtwaS1zZXR0aW5ncy1hbGVydC1jb25maWctYmFja2dyb3VuZC1ob3ZlcjogICBAbWJsdWU7XG5Aa3BpLW5lZ2F0aXZlLWFsZXJ0LWxhYmVsLWJhY2tncm91bmQtY29sb3I6ICAgIGxpZ2h0ZW4oI2ZmMDAwMCwgMzAlKTtcblxuLy8gV2lkZ2V0cyBwb3AtdXBzXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AaW1wYWMtd2lkZ2V0LXBvcHVwLXRpdGxlLWJhY2tncm91bmQtY29sb3I6ICAgICMxOTI4MzE7XG5AaW1wYWMtd2lkZ2V0LXBvcHVwLW1lc3NhZ2UtYmFja2dyb3VuZC1jb2xvcjogIHJnYigyNDQsIDI0OCwgMjQ5KTtcbkBpbXBhYy13aWRnZXQtcG9wdXAtdGl0bGUtdGV4dC1jb2xvcjogICAgICAgICAgd2hpdGU7XG5AaW1wYWMtd2lkZ2V0LXBvcHVwLW1lc3NhZ2UtdGV4dC1jb2xvcjogICAgICAgIEBpbXBhYy13aWRnZXQtdGV4dC1jb2xvcjtcblxuLy8gRGVtbyBkYXRhIG1vZGVcbkBpbXBhYy13aWRnZXQtZGVtby1kYXRhLWxpbmstY29sb3I6ICAgICAgICAgICAgQG1ncmVlbjtcbiIsIi8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xuLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMT0JBTCBTVFlMRVNcbioqICAgICAgICBUaGlzIHN0eWxlc2hlZXQgc2hvdWxkIG9ubHkgY29udGFpbiBzdHlsZXMgYXBwbGllZCBnbG9iYWwgb3IgaW5cbioqICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIgb3IgbW9yZSBjb21wb25lbnRzLlxuLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXG5cbi8vIE5vdCBpZGVhbDogaW50ZW5kcyB0byBmb3JjZSBhIHNjcm9sbGJhciBvbiB0aGUgd2luZG93IChub3Qgb24gdGhlIGJvZHkpLFxuLy8gc28gdGhhdCB0aGUgdG9vbHRpcHMgYXBwZW5kZWQgdG8gYm9keSBhcmUgbm90IG1ha2luZyB0aGUgc2NyZWVuIGZsaWNrZXJpbmcuXG4vLyAoc2VlIHdoZW4gdGhlcmUgaXMgb25seSAxIGludm9pY2VzIGxpc3Qgd2lkZ2V0IG9uIHRoZSBkYXNoYm9hcmQpXG4vLyBJdCBpcyBiZXR0ZXIgaWYgdGhlIHRvb2x0aXBzIGNhbiBiZSBhcHBlbmRlZCB0byBib2R5IGJlY2F1c2Ugb3RoZXJ3aXNlIGl0J3Ncbi8vIG1lc3NpbmcgdGhlIGFsdGVybmF0ZS1iZygpIG1peGluZyAoYnkgYWRkaW5nIGEgY2hpbGQgdG8gdGhlIHBhcmVudCBlbGVtZW50KVxuYm9keSB7XG4gIGhlaWdodDogMTAxJSAhaW1wb3J0YW50O1xufVxuXG4uYW5hbHl0aWNzIHtcblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gLS0tIFRpdGxlc1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICBoMiB7XG4gICAgbWFyZ2luLXRvcDogMnB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBjb2xvcjogQGltcGFjLXdpZGdldC10ZXh0LWNvbG9yO1xuICB9XG5cbiAgaDMge1xuICAgIG1hcmdpbjogMHB4O1xuICAgIC5sZWZ0LXRoaW4oKTtcbiAgfVxuXG4gIGg0IHtcbiAgICBjb2xvcjogQGltcGFjLXdpZGdldC10ZXh0LWNvbG9yO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgfVxuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyAtLS0gQ29sb3JzXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIC5wb3NpdGl2ZSwuZ3JlZW4ge1xuICAgIGNvbG9yOiBAaW1wYWMtcG9zaXRpdmUgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5uZWdhdGl2ZSwucmVkIHtcbiAgICBjb2xvcjogQGltcGFjLW5lZ2F0aXZlICFpbXBvcnRhbnQ7XG4gIH1cblxuICAucG9zaXRpdmUyIHtcbiAgICBjb2xvcjogQGltcGFjLXBvc2l0aXZlMiAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm5lZ2F0aXZlMiB7XG4gICAgY29sb3I6IEBpbXBhYy1uZWdhdGl2ZTIgIWltcG9ydGFudDtcbiAgfVxuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyAtLS0gQmFzZSBlbGVtZW50c1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICBhIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBjb2xvcjogQGltcGFjLXdpZGdldC1saW5rLWNvbG9yO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gIC5pbnB1dC1ncm91cCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICBzZWxlY3Qge1xuICAgIG1hcmdpbi10b3A6IDVweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtd2lkZ2V0LWJhY2tncm91bmQtY29sb3I7XG4gICAgaGVpZ2h0OiAzMnB4O1xuICB9XG5cbiAgcHJlIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgcGFkZGluZzogMHB4O1xuICAgIG1hcmdpbjogMXB4IDBweCA4cHggMHB4O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQsIGtwaXMtYmFyIC5rcGkge1xuICAgIDo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgICAgd2lkdGg6IDZweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIH1cblxuICAgIDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbihAaW1wYWMtd2lkZ2V0LXNjcm9sbGJhci1jb2xvciwzNSUpO1xuICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKEBpbXBhYy13aWRnZXQtc2Nyb2xsYmFyLWNvbG9yLDQwJSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIC0tLSBDb21tb24gYWRqdXN0bWVudHNcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC5ub3BhZGRpbmcge1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICAubm9tYXJnaW4ge1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyAtLS0gQ3VzdG9tIGVsZW1lbnRzXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIC5idG4uYnRuLXNoYWRlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGltcGFjLWJ0bi1zaGFkZGVkLWJnO1xuICAgIGJvcmRlcjogc29saWQgMXB4IGRhcmtlbihAaW1wYWMtYnRuLXNoYWRkZWQtYmcsNSUpO1xuICAgIGNvbG9yOiBAaW1wYWMtYnRuLXNoYWRkZWQtY29sb3I7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcblxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6IGxpZ2h0ZW4oQGltcGFjLWJ0bi1zaGFkZGVkLWNvbG9yLDUlKTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oQGltcGFjLWJ0bi1zaGFkZGVkLWJnLDUlKTtcbiAgICB9XG4gIH1cblxuICAucHJpY2Uge1xuICAgIC5jZW50ZXItYm9sZCgpO1xuICB9XG5cbiAgLmN1cnJlbmN5IHtcbiAgICAuY2VudGVyLXRoaW4oKTtcbiAgICBjb2xvcjogQGltcGFjLXdpZGdldC10ZXh0LWNvbG9yLW1lZGl1bTtcbiAgfVxuXG4gIC5sZWdlbmQge1xuICAgIC5jZW50ZXItc21hbGwoKTtcbiAgICAuc2Nyb2xsYWJsZSgpO1xuICAgIGNvbG9yOiBAaW1wYWMtd2lkZ2V0LXRleHQtY29sb3ItbGlnaHQ7XG4gIH1cblxuICAubG9hZGVyIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGkge1xuICAgICAgLmxvYWRlci1zdHlsZSgpO1xuICAgIH1cbiAgICBwIHtcbiAgICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgfVxuICB9XG5cbiAgLnJpZ2h0LXBhbmVsIHtcbiAgICBib3JkZXItbGVmdDogc29saWQgMXB4ICNlNmU2ZTY7XG4gIH1cblxuICAuc2VsZWN0b3Ige1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGNvbG9yOiBAbWVkaXVtYmx1ZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXJcbiAgfVxuXG4gIC50aWxlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjQ3LDI0NywyNDcpO1xuICAgIGJveC1zaGFkb3c6IDBweCA3cHggMTBweCAtN3B4ICMxNzI2MmQ7XG4gICAgaGVpZ2h0OiA0NXB4O1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oI0YxRjlGRiwgMyUpO1xuICAgIH1cbiAgICAuY29sb3JlZC1hcmVhIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzRkM0RkY7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgIHBhZGRpbmc6IDVweCAxMHB4O1xuICAgICAgbWluLXdpZHRoOiA4JTtcbiAgICAgICYuc2VsZWN0ZWQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtd2lkZ2V0LXRpbGUtc2VsZWN0ZWQtY29sb3I7XG4gICAgICB9XG4gICAgfVxuICAgIC5tYWluLXRleHQge1xuICAgICAgY29sb3I6IEBpbXBhYy13aWRnZXQtdGV4dC1jb2xvcjtcbiAgICAgIHBhZGRpbmc6IDIwcHggMHB4IDBweCA1cHg7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB9XG4gIH1cblxuICAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gICAgLnNjcm9sbGFibGUoKTtcbiAgICBtYXgtaGVpZ2h0OiBAaW1wYWMtd2lkZ2V0LWxpbmVzLWNvbnRhaW5lci1tYXgtaGVpZ2h0O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIHBhZGRpbmc6IDBweCAxNXB4O1xuXG4gICAgLnJvdy53aWRnZXQtbGluZSB7XG4gICAgICBwYWRkaW5nOiA1cHg7XG4gICAgICBjb2xvcjogQG1lZGl1bWJsdWU7XG5cbiAgICAgICYuaGVhZGVyIHtcbiAgICAgICAgLmZvbnQoMTJweCw1MDAsQGltcGFjLXdpZGdldC10ZXh0LWNvbG9yLW1lZGl1bSk7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICB9XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogQHNjcmVlbi14cy1tYXgpIHtcbiAgICAgICAgbWFyZ2luOiBpbmhlcml0O1xuICAgICAgICBtYXJnaW4tbGVmdDogLTNweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtM3B4O1xuICAgICAgICBwYWRkaW5nOiAycHg7XG5cbiAgICAgICAgJiA+IFtjbGFzcyo9J2NvbC0nXSB7XG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiAzcHg7XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogM3B4O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGkuZmEge1xuICAgICAgICBtaW4td2lkdGg6IDEycHg7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDEycHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnJvdyAuZGFzaGVkIHtcbiAgICAgIGJvcmRlci1ib3R0b206IGRhc2hlZCAxcHggQGltcGFjLXdpZGdldC1ib3JkZXJzLWNvbG9yO1xuICAgICAgcGFkZGluZy1ib3R0b206IDNweDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDNweDtcbiAgICB9XG5cbiAgICAucm93LmxpbmVzLWdyb3VwIHtcbiAgICAgIGJvcmRlci10b3A6IHNvbGlkIDFweCBAbGlnaHRncmF5O1xuICAgIH1cbiAgfVxufVxuXG4udmVydGljYWwtc2Nyb2xsIHtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xufVxuXG4uaG9yaXpvbnRhbC1zY3JvbGwge1xuICBvdmVyZmxvdy14OiBzY3JvbGw7XG59XG5cbi8vIFRoZSB0b29sdGlwcyBzaG91bGQgYmUgYXBwZW5kIHRvIGJvZHlcbi50b29sdGlwLmltcGFjLXdpZGdldHMtdG9vbHRpcCAudG9vbHRpcC1pbm5lci5uZy1iaW5kaW5nIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgYmFja2dyb3VuZC1jb2xvcjogQG1kYXJrYmx1ZTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBzdHJvbmcge1xuICAgIGNvbG9yOiBAbWdyZWVuO1xuICB9XG59XG5cbi5zb3J0YWJsZS10aXRsZSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGl2IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIH1cbn1cblxuZGl2W25nLW1lc3NhZ2VzXSB7XG4gIGNvbG9yOiBAcmVkO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIC0tLSBCb290c3RyYXAgb3ZlcnJpZGVzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLmhhcy1lcnJvciAuZm9ybS1jb250cm9sIHtcbiAgYm9yZGVyLWNvbG9yOiBAYnJhbmQtZGFuZ2VyO1xuICAmOmZvY3VzIHsgYm9yZGVyLWNvbG9yOiBAYnJhbmQtZGFuZ2VyIH1cbn1cblxuLmhhcy1zdWNjZXNzIC5mb3JtLWNvbnRyb2wge1xuICBib3JkZXItY29sb3I6IEBicmFuZC1zdWNjZXNzO1xuICAmOmZvY3VzIHsgYm9yZGVyLWNvbG9yOiBAYnJhbmQtc3VjY2VzcyB9XG59XG5cbi8vIHJlbW92ZSBndXR0ZXJzIGZyb20gQm9vc3RyYXAgcm93XG4ucm93Lm5vLWd1dHRlcnMge1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuXG4vLyByZW1vdmUgZ3V0dGVycyBmcm9tIEJvb3N0cmFwIGNvbHVtblxuW2NsYXNzXj1cImNvbC1cIl0ubm8tZ3V0dGVycyxcbltjbGFzcyo9XCIgY29sLVwiXS5uby1ndXR0ZXJzIHtcbiAgcGFkZGluZy1yaWdodDogMDtcbiAgcGFkZGluZy1sZWZ0OiAwO1xufVxuIiwiLmZvbnQoQHNpemUsQHdlaWdodCxAY29sb3IpIHtcbiAgZm9udC13ZWlnaHQ6QHdlaWdodDtcbiAgZm9udC1zaXplOkBzaXplO1xuICBjb2xvcjpAY29sb3I7XG59XG5cbi5jZW50ZXItYm9sZCAoQG1hcmdpbi10b3A6IDMwcHgpIHtcbiAgLmZvbnQoMjJweCwgOTAwLCBAaW1wYWMtd2lkZ2V0LXRleHQtY29sb3IpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbi10b3A6IEBtYXJnaW4tdG9wO1xufVxuXG4uY2VudGVyLXRoaW4gKCkge1xuICAuZm9udCgxNnB4LCAzMDAsIEBpbXBhYy13aWRnZXQtdGV4dC1jb2xvcik7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmNlbnRlci1zbWFsbCAoKSB7XG4gIC5mb250KDEycHgsIDMwMCwgQGltcGFjLXdpZGdldC10ZXh0LWNvbG9yKTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ubGVmdC10aGluIChAbWFyZ2luLXRvcDogMHB4KSB7XG4gIC5mb250KDE0cHgsIDMwMCwgQGltcGFjLXdpZGdldC10ZXh0LWNvbG9yKTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgbWFyZ2luLXRvcDogQG1hcmdpbi10b3A7XG59XG5cbi53aWRnZXQtaGVpZ2h0IChAaGVpZ2h0OiBAaW1wYWMtbWluaW11bS13aWRnZXQtc2l6ZSkge1xuICBtaW4taGVpZ2h0OiBAaGVpZ2h0O1xuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1tZC1taW4pIHtcbiAgICBoZWlnaHQ6IEBoZWlnaHQ7XG4gICAgLmNoYXJ0LWNvbnRhaW5lciB7XG4gICAgICBtYXgtd2lkdGg6IEBoZWlnaHQgKyAyMHB4O1xuICAgICAgbWF4LWhlaWdodDogQGhlaWdodCAtIDEyNXB4O1xuICAgICAgbWFyZ2luOiBhdXRvO1xuICAgIH1cbiAgfVxufVxuXG4uc2hvcnQtd2lkZ2V0ICgpIHtcbiAgLndpZGdldC1oZWlnaHQoKTtcbiAgLmVkaXQge1xuICAgIG1heC1oZWlnaHQ6IEBpbXBhYy1taW5pbXVtLXdpZGdldC1zaXplIC0gMjBweDtcbiAgfVxufVxuXG4udGFsbC13aWRnZXQgKCkge1xuICAud2lkZ2V0LWhlaWdodChAaW1wYWMtYmlnLXdpZGdldC1zaXplKTtcbiAgLmVkaXQge1xuICAgIG1heC1oZWlnaHQ6IEBpbXBhYy1iaWctd2lkZ2V0LXNpemUgLSAyMHB4O1xuICAgIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgICAgIC5zY3JvbGxhYmxlKGhpZGRlbik7XG4gICAgfVxuICB9XG59XG5cbi5zY3JvbGxhYmxlIChAc2Nyb2xsLW1vZGU6IGF1dG8pIHtcbiAgb3ZlcmZsb3cteTogQHNjcm9sbC1tb2RlO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG59XG5cbi5zZWxlY3RhYmxlICgpIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXI6IHNvbGlkIDFweCBAaW1wYWMtd2lkZ2V0LWJhY2tncm91bmQtY29sb3I7XG4gIC5zZWxlY3Rpb24tdGFnIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICByaWdodDogMHB4O1xuICAgIG1hcmdpbi10b3A6IC02cHg7XG4gICAgd2lkdGg6IDEwcHg7XG4gICAgaGVpZ2h0OiAyOXB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgfVxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKEBpbXBhYy13aWRnZXQtc2VsZWN0YWJsZS1jb2xvciwgMjIlKTtcbiAgfVxuICAmLm5vLXNlbGVjdCB7XG4gICAgY3Vyc29yOiBhdXRvO1xuICAgICY6aG92ZXIgeyBjb2xvcjogQG1lZGl1bWJsdWU7IH1cbiAgfVxufVxuXG4uYWx0ZXJuYXRlLWJnIChAZXZlbi1jb2xvcjogQGltcGFjLXdpZGdldC1zdWItYmctY29sb3IpIHtcbiAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBldmVuLWNvbG9yO1xuICB9XG4gICY6bnRoLWNoaWxkKG9kZCkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy13aWRnZXQtYmFja2dyb3VuZC1jb2xvcjtcbiAgfVxufVxuXG4uZWRpdC1wYW5lbC1zdHlsZSgpIHtcbiAgLnNjcm9sbGFibGUoKTtcbiAgY29sb3I6IEBpbXBhYy13aWRnZXQtdGV4dC1jb2xvcjtcbiAgcGFkZGluZzogMnB4O1xuICBmb250LXNpemU6IDEycHg7XG5cbiAgLmJvdHRvbS1idXR0b25zIHtcbiAgICAuYnRuIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgICAgcGFkZGluZzogM3B4IDEzcHg7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgZm9udC1zaXplOiAxMnB4O1xuXG4gICAgICAmLmJ0bi1kZWZhdWx0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2MyYzRjNDtcbiAgICAgICAgYm9yZGVyOiBzb2xpZCAxcHggZGFya2VuKCNjMmM0YzQsMTAlKTtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICBib3JkZXI6IHNvbGlkIDFweCBkYXJrZW4oI2MyYzRjNCwyMCUpO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigjYzJjNGM0LDEwJSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBoNCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIC5mb250KDEycHgsbm9ybWFsLEBpbXBhYy13aWRnZXQtdGV4dC1jb2xvci1saWdodCk7XG4gIH1cblxuICAucGFydCB7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgIHBhZGRpbmc6IDEwcHggMHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy13aWRnZXQtc3ViLWJnLWNvbG9yLWxpZ2h0O1xuICAgIC8vIGNvbG9yOiAjNjI2ZDZkO1xuICAgIGJvcmRlcjogc29saWQgMXB4IEBpbXBhYy13aWRnZXQtYm9yZGVycy1jb2xvcjtcblxuICAgIGg1IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgIHBhZGRpbmc6IDBweCAxNXB4O1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIC5mb250KDEycHgsbm9ybWFsLEBpbXBhYy13aWRnZXQtdGV4dC1jb2xvci1saWdodCk7XG4gICAgfVxuXG4gICAgbGFiZWwge1xuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICB9XG5cbiAgICBzZWxlY3QuZm9ybS1jb250cm9sIHtcbiAgICAgIG1hcmdpbjogMHB4O1xuICAgICAgYm9yZGVyOiBzb2xpZCAxcHggI2FjYjBiMTtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICBjb2xvcjogIzcyNzI4YjtcbiAgICB9XG4gIH1cbn1cblxuLmxvYWRlci1zdHlsZShAY29sb3I6IEBpbXBhYy13aWRnZXQtbG9hZGluZy1zcGlubmVyKSB7XG4gIGNvbG9yOiBAY29sb3I7XG59XG5cbi5jb2x1bW4tZ3V0dGVyKEBndXR0ZXI6IEBncmlkLWd1dHRlci13aWR0aCkge1xuICBwYWRkaW5nLWxlZnQ6IEBndXR0ZXI7XG4gIHBhZGRpbmctcmlnaHQ6IEBndXR0ZXI7XG59XG5cbi53aWRnZXQtcG9wdXAoKSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBjb2xvcjogQGltcGFjLXdpZGdldC1wb3B1cC1tZXNzYWdlLXRleHQtY29sb3I7XG4gIFxuICAub3ZlcmxheSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGhlaWdodDogflwiY2FsYygxMDAlIC0gNHB4KVwiO1xuICAgIHdpZHRoOiB+XCJjYWxjKDEwMCUgLSA0cHgpXCI7XG4gICAgdG9wOiAycHg7XG4gICAgbGVmdDogMnB4O1xuICAgIG9wYWNpdHk6IDAuNjtcbiAgICB6LWluZGV4OiA1O1xuICB9XG5cbiAgLm1lc3NhZ2Uge1xuICAgIHotaW5kZXg6IDY7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIG1pbi1oZWlnaHQ6IDE2MHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuICAgIHRvcDogNDVweDtcbiAgICBsZWZ0OiA3JTtcbiAgICB3aWR0aDogODYlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy13aWRnZXQtcG9wdXAtbWVzc2FnZS1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBib3gtc2hhZG93OiAwcHggMHB4IDI1cHggMHB4O1xuXG4gICAgLnRpdGxlIHtcbiAgICAgIHBhZGRpbmc6IDJweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy13aWRnZXQtcG9wdXAtdGl0bGUtYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGNvbG9yOiBAaW1wYWMtd2lkZ2V0LXBvcHVwLXRpdGxlLXRleHQtY29sb3I7XG4gICAgICBtYXJnaW46IC0xcHggLTFweCAxMHB4IC0xcHg7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIH1cbiAgfVxufVxuIiwiQG1lZGlhIHByaW50IHtcbiAgYm9keSB7IGJhY2tncm91bmQtY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7IH1cbiAgLmFuYWx5dGljcyB7XG4gICAgcGFkZGluZy10b3A6IDBweCAhaW1wb3J0YW50O1xuICAgICNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAudGl0bGUtY29udGFpbmVyIHsgbWFyZ2luLXRvcDogMjBweDsgfVxuICAgIC53aWRnZXQtaXRlbSB7XG4gICAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gICAgICAuY29udGVudCAuY2hhcnQtY29udGFpbmVyIHtcbiAgICAgICAgbWF4LXdpZHRoOiAyNzBweDtcbiAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICBjYW52YXMge1xuICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC5yaWdodC1wYW5lbCB7XG4gICAgICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDA7XG4gICAgICAgIC5jaGFydC1jb250YWluZXIge1xuICAgICAgICAgIG1heC13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICBtYXgtaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICAgIGNhbnZhcyB7XG4gICAgICAgICAgICB3aWR0aDogODAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBoZWlnaHQ6IDgwJSAhaW1wb3J0YW50O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICAqIHsgdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50OyB9XG59XG4iLCIvLyBOT1RFOiBEbyBub3QgYWRkIHN0eWxlcyBmb3IgdGhlIGRlZmF1bHQgYnV0dG9uIG9yIGN1c3RvbSBpbmplY3RlZCBidXR0b25IdG1sIGhlcmUuXG4vLyAgICAgICB0aGUgcGFyZW50IHN0eWxlc2hlZXQgb2Ygd2hpY2ggdGhpcyBkaXJlY3RpdmUgaXMgZW1iZWRkZWQgd2l0aGluIHNob3VsZFxuLy8gICAgICAgY29udGFpbiB0aGUgc3R5bGVzLlxuXG4vLyBNb2RhbCBrcGlzIGFsZXJ0cyBzZXR0aW5nc1xuLmtwaS1hbGVydHMtc2V0dGluZ3Mge1xuICAubW9kYWwtaGVhZGVyIHsgZm9udC1zaXplOiAyMHB4OyB9XG5cbiAgLm1vZGFsLWJvZHkge1xuICAgIGxpbmUtaGVpZ2h0OiAyO1xuXG4gICAgdWwgeyBtYXJnaW4tdG9wOiAxMHB4OyB9XG5cbiAgICB1bCA+IGxpLmxpc3QtZ3JvdXAtaXRlbSB7XG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgcGFkZGluZzogNnB4IDE1cHg7XG4gICAgICBjb2xvcjogQGltcGFjLXdpZGdldC10ZXh0LWNvbG9yLW1lZGl1bTtcbiAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAuYWxlcnQtdG9nZ2xlIHtcbiAgICAgICAgJjpob3ZlciB7IGN1cnNvcjogcG9pbnRlcjsgfVxuICAgICAgfVxuXG4gICAgICAmLmFjdGl2ZSB7XG4gICAgICAgIGNvbG9yOiBAbWJsdWU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjYzRjYWNhO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5mYS5mYS10b2dnbGUtb24sIC5mYS5mYS10b2dnbGUtb2ZmIHtcbiAgICAgIGZvbnQtc2l6ZTogMTdweDtcbiAgICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgIH1cblxuICAgIHVsLnJlY2lwaWVudHMtbGlzdCB7XG4gICAgICBoZWlnaHQ6IDc1cHg7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2M0Y2FjYTtcblxuICAgICAgbGkge1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICB9XG5cbiAgICB9XG5cbiAgICBpbnB1dC5yZWNpcGllbnQtc2VhcmNoIHtcbiAgICAgIGNvbG9yOiBibGFjaztcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIHVsLmF2YWlsYWJsZSB7XG4gICAgICBtYXJnaW4tdG9wOiAwcHg7XG4gICAgfVxuICB9XG59XG4iLCIuYW5hbHl0aWNzIHtcbiAgcGFkZGluZy10b3A6IEBpbXBhYy1kYXNoYm9hcmQtcGFkZGluZy10b3A7XG4gIG1hcmdpbi1sZWZ0OiBAaW1wYWMtZGFzaGJvYXJkLW1hcmdpbi1sZWZ0O1xuXG4gIC8vIERlZmF1bHQgc21hbGwgc2NyZWVuIGJlaGF2aW91ciB0byBhbGxvdyBmb3IgdGhlIGNvbW1vbiB1c2Ugb2YgdG9wLWJhcnNcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkycHgpIHtcbiAgICBwYWRkaW5nLXRvcDogQGltcGFjLWRhc2hib2FyZC1zbS1wYWRkaW5nLXRvcDtcbiAgfVxuXG4gICYucGRmLW1vZGUgeyBwYWRkaW5nLXRvcDogMjBweDsgfVxuXG4gICYuc2hvdy1kaGIge1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMXM7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICAmLmhpZGUtZGhiIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgLy8gY29udGFpbnMgY3VzdG9taXNhYmxlIGltcGFjIGxvZ28sIGFuZCBoZWFkaW5nIHRleHQuXG4gICNkYXNoYm9hcmQtaGVhZGluZyB7XG4gICAgaW1nIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxNXB4O1xuICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgIG1heC1oZWlnaHQ6IDE1MHB4O1xuICAgICAgJi5wZGYtbW9kZTpob3ZlciB7IGN1cnNvcjogcG9pbnRlcjsgfVxuICAgIH1cbiAgICAuY2FwdGlvbiB7XG4gICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICBtYXJnaW46IDVweCAwcHg7XG4gICAgfVxuICB9XG5cbiAgI3N1Yi1tZW51IHtcbiAgICBtYXJnaW4tdG9wOiAxNXB4O1xuICAgIGgzIHtcbiAgICAgIGZvbnQtc2l6ZTogMjZweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgY29sb3I6ICMyMzM4NDU7XG4gICAgfVxuXG4gICAgLmZhLmZhLXRpbWVzIHtcbiAgICAgIG1hcmdpbjogNnB4O1xuICAgICAgY29sb3I6IGxpZ2h0ZW4oIzIzMzg0NSwgMTUlKTtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG4gIH1cblxuICAjd2lkZ2V0LXNlbGVjdG9yIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtZGFzaGJvYXJkLXdpZGdldC1zZWxlY3Rvci1iZztcbiAgICBjb2xvcjogQGltcGFjLWRhc2hib2FyZC13aWRnZXQtc2VsZWN0b3ItdGV4dC1jb2xvcjtcbiAgICBwYWRkaW5nOiAwcHggNDVweCAxMHB4IDQ1cHg7XG4gICAgbWFyZ2luOiAxMHB4IC00NXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcblxuICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7IC8qIENocm9tZS9TYWZhcmkgKi9cbiAgICAtbW96LXVzZXItc2VsZWN0OiBub25lOyAvKiBGaXJlZm94ICovXG4gICAgLW1zLXVzZXItc2VsZWN0OiBub25lOyAvKiBJRTEwKyAqL1xuICAgIC8qIFJ1bGVzIGJlbG93IG5vdCBpbXBsZW1lbnRlZCBpbiBicm93c2VycyB5ZXQgKi9cbiAgICAtby11c2VyLXNlbGVjdDogbm9uZTtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiBAc2NyZWVuLXhzLW1heCkge1xuICAgICAgcGFkZGluZzogMCAxNXB4IDEwcHggMTVweDtcbiAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICAudGl0bGUge1xuICAgICAgcGFkZGluZzogMTVweCAwcHg7XG4gICAgICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggbGlnaHRlbihAaW1wYWMtZGFzaGJvYXJkLXdpZGdldC1zZWxlY3Rvci1iZyw2JSk7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgcC5pbnN0cnVjdGlvbiB7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiBAc2NyZWVuLXNtLW1pbikge1xuICAgICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC53aWRnZXQtYWRkZWQuYmFkZ2Uge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG5cbiAgICAgIC5mYS5jbG9zZS1zZWxlY3RvciB7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICAgIHBhZGRpbmc6IDZweDtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgY29sb3I6IEBtbGlnaHRncmV5O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnRvcC1jb250YWluZXIge1xuICAgICAgbWFyZ2luOiAxNXB4IDBweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIH1cblxuICAgIC5zZWN0aW9uLWhlYWRlciB7XG4gICAgICBwYWRkaW5nOiAxMHB4IDIwcHg7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIG1pbi1oZWlnaHQ6IDQwcHg7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAuc2VjdGlvbi1saW5lcyB7XG4gICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgaGVpZ2h0OiAyMDBweDtcbiAgICAgIG1hcmdpbi1yaWdodDogLTEwcHg7XG4gICAgICBtYXJnaW4tbGVmdDogMHB4O1xuXG4gICAgICBwIHtcbiAgICAgICAgcGFkZGluZzogNXB4O1xuICAgICAgICBtYXJnaW46IDBweDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsICYuc2VsZWN0ZWQge1xuICAgICAgICAgIGNvbG9yOiBAaW1wYWMtZGFzaGJvYXJkLXdpZGdldC1zZWxlY3Rvci10ZXh0LWNvbG9yO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICAgICAgd2lkdGg6IDZweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICB9XG5cbiAgICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbihAaW1wYWMtZGFzaGJvYXJkLXdpZGdldC1zZWxlY3Rvci1iZywzJSk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oQGltcGFjLWRhc2hib2FyZC13aWRnZXQtc2VsZWN0b3ItYmcsNiUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmNhdGVnb3JpZXMtc2VjdGlvbiB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oQGltcGFjLWRhc2hib2FyZC13aWRnZXQtc2VsZWN0b3ItYmcsNiUpO1xuICAgICAgcGFkZGluZy1ib3R0b206IDE1cHg7XG5cbiAgICAgICYgPiAuc2VjdGlvbi1saW5lcyB7XG5cbiAgICAgICAgJiA+IFtjbGFzcyo9J2NvbC0nXTpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgcGFkZGluZzogM3B4IDEycHg7XG4gICAgICAgIH1cblxuICAgICAgICAubGluZS1pdGVtOmhvdmVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oQGltcGFjLWRhc2hib2FyZC13aWRnZXQtc2VsZWN0b3ItYmcsMyUpO1xuICAgICAgICB9XG4gICAgICAgIC5saW5lLWl0ZW0uc2VsZWN0ZWQge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy13aWRnZXQtbGluay1jb2xvcjtcbiAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAuYm94LXNoYWRvdygtMnB4IDJweCAxMHB4IC00cHggYmxhY2spO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5hcnJvdy1pY29uIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDMzcHg7XG4gICAgICAgIHJpZ2h0OiAtMTFweDtcbiAgICAgICAgei1pbmRleDogMTtcblxuICAgICAgICAuc3F1YXJlIHtcbiAgICAgICAgICB3aWR0aDogNTBweDtcbiAgICAgICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHRvcDogMTBweDtcbiAgICAgICAgICByaWdodDogMTdweDtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtd2lkZ2V0LWxpbmstY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICBpLmZhLmZhLWNhcmV0LXJpZ2h0IHtcbiAgICAgICAgICBmb250LXNpemU6IDUycHg7XG4gICAgICAgICAgY29sb3I6IEBpbXBhYy13aWRnZXQtbGluay1jb2xvcjtcbiAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHRvcDogLTEuNXB4O1xuICAgICAgICAgIHJpZ2h0OiAwcHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAud2lkZ2V0cy1zZWN0aW9uIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbihAaW1wYWMtZGFzaGJvYXJkLXdpZGdldC1zZWxlY3Rvci1iZywzJSk7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMTVweDtcblxuICAgICAgJiA+IC5zZWN0aW9uLWhlYWRlciB7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgY29sb3I6IEBpbXBhYy13aWRnZXQtbGluay1jb2xvcjtcbiAgICAgIH1cblxuICAgICAgJiA+IC5zZWN0aW9uLWxpbmVzIHtcbiAgICAgICAgcGFkZGluZzogM3B4IDBweDtcblxuICAgICAgICAuZmEuZmEtcGx1cy1jaXJjbGUge1xuICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAzcHg7XG4gICAgICAgIH1cblxuICAgICAgICAmID4gLmxpbmUtaXRlbXMtZ3JpZCB7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgaGVpZ2h0OiAwJTtcblxuICAgICAgICAgICYgPiAuZ3JpZC1pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMTNweDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICAvLyBBcHBsaWVzIGEgZmxleC1iYXNpcyBvZiAxLzMgZm9yIGVhY2ggZ3JpZCBpdGVtICgzIGNvbHVtbnMgcGVyIHJvdylcbiAgICAgICAgICAgIGZsZXg6IDAgMzEuMzMlO1xuICAgICAgICAgICAgLy8gQ3JlYXRlcyBhIHNtYWxsIGd1dHRlciBhcm91bmQgZWFjaCBncmlkIGl0ZW1cbiAgICAgICAgICAgIG1hcmdpbjogMCAxJTtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggQGltcGFjLWRhc2hib2FyZC13aWRnZXQtc2VsZWN0b3ItYmc7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiBAaW1wYWMtZGFzaGJvYXJkLXdpZGdldC1zZWxlY3Rvci13aWRnZXQtaXRlbS1taW4taGVpZ2h0O1xuXG4gICAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiBAc2NyZWVuLW1kLW1pbikge1xuICAgICAgICAgICAgICBmbGV4OiAwIDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oQGltcGFjLWRhc2hib2FyZC13aWRnZXQtc2VsZWN0b3ItYmcsNiUpO1xuICAgICAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBwLmxpbmUtaXRlbSB7XG4gICAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAuYm90dG9tIHtcbiAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICYgPiAuc3VnZ2VzdGlvbiB7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgb3BhY2l0eTogMC43O1xuICAgICAgICBhIHtcbiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogQGZsdXJvYmx1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICNkYXNoYm9hcmQtc2V0dGluZ3MtcGFuZWwge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW4tdG9wOiA1cHg7XG4gICAgJiA+IGRpdiB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICYgPiAqIHsgbWFyZ2luOiAwcHggM3B4OyB9XG4gICAgfVxuICAgIHNlbGVjdCB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBoZWlnaHQ6IDM0cHg7XG4gICAgICBwYWRkaW5nLXRvcDogMXB4O1xuICAgIH1cbiAgfVxuXG4gIC8vIG5vIHdpZGdldHMgLSBlbXB0eSBkYXNoYm9hcmQuXG4gICNuby13aWRnZXRzLWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1pbi1oZWlnaHQ6IDE1MHB4O1xuXG4gICAgLy8gYmFja2dyb3VuZCBpbWFnZSBhc3NldFxuICAgIGltZy5iZyB7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgdG9wOiAwO1xuICAgICAgbWluLXdpZHRoOiAxMDAlO1xuICAgICAgbWluLWhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICAvLyBubyB3aWRnZXRzIG1lc3NhZ2UgdGhhdCBzaXRzIGFib3ZlIGltYWdlIGFzc2V0XG4gICAgLmltcGFjLWluZm8tbWVzc2FnZSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgLmluZm8tdGV4dCB7XG4gICAgICAgIGZvbnQtc2l6ZTogQGltcGFjLWRhc2hib2FyZC1pbmZvLXRleHQtZm9udC1zaXplO1xuICAgICAgICBmb250LXdlaWdodDogQGltcGFjLWRhc2hib2FyZC1pbmZvLXRleHQtZm9udC13ZWlnaHQ7XG4gICAgICAgIHBhZGRpbmc6MjBweDtcbiAgICAgICAgbWluLWhlaWdodDogMTE1cHg7XG4gICAgICAgIGNvbG9yOiBAaW1wYWMtZGFzaGJvYXJkLWluZm8tdGV4dC1jb2xvcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGltcGFjLWRhc2hib2FyZC1pbmZvLXRleHQtYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBwYXJlbnQgZGl2IHNlY3Rpb24gZm9yIHdpZGdldHMgdG8gYmUgaG91c2VkLlxuICAjd2lkZ2V0cy1zZWN0aW9uIHtcbiAgICAvLyBjb250YWluZXIgZm9yIHdpZGdldHNcbiAgICAjd2lkZ2V0cy1jb250YWluZXIge1xuICAgICAgLy8gUXVpY2stZml4IHRvIGF2b2lkIHNjcmVlbiBmbG9ja2VyaW5nIHdoZW4gdG9vbHRpcHMgYXJlIGFwcGVuZGVkIHRvIGJvZHk6XG4gICAgICAvLyBtaW4taGVpZ2h0IHdpbGwgZm9yY2UgYSBzY3JvbGxiYXIgdG8gYXBwZWFyLi4uXG4gICAgICBtaW4taGVpZ2h0OiA3MDBweDtcbiAgICB9XG5cbiAgICAucGxhY2VIb2xkZXJCb3gge1xuICAgICAgbWFyZ2luOiBAaW1wYWMtcGFkZGluZy1iZXR3ZWVuLXdpZGdldHM7XG4gICAgICBoZWlnaHQ6IDI2N3B4O1xuICAgICAgd2lkdGg6IDMwMHB4O1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBib3JkZXI6IEBpbXBhYy1wbGFjZWhvbGRlci1ib3JkZXI7XG4gICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIH1cbiAgfVxufVxuXG4vLyBkYXNoYm9hcmQgZmFpbGVkIHRvIGxvYWQgbWVzc2FnZS5cbi5hbmFseXRpY3MubG9hZC1mYWlsZWQge1xuXG4gIHAgeyBmb250LXNpemU6IDIycHg7IH1cblxuICAuc2Vjb25kLW1zZyB7XG4gICAgcCB7XG4gICAgICBjb2xvcjogQGJyYW5kLWRhbmdlcjtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICB9XG4gIH1cbn1cblxuLy8gVG9vbHRpcHMgYXJlIGFwcGVuZCB0byBib2R5XG4udG9vbHRpcC5pbXBhYy13aWRnZXQtc2VsZWN0b3ItdG9vbHRpcCAudG9vbHRpcC1pbm5lci5uZy1iaW5kaW5nIHtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuXG4uaW1wYWMtd2lkZ2V0LXN1Z2dlc3Rpb24gLm1vZGFsLWJvZHkge1xuICBpbnB1dCx0ZXh0YXJlYSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgY29sb3I6IGJsYWNrO1xuICB9XG4gIHRleHRhcmVhIHtcbiAgICBoZWlnaHQ6IDE1MHB4O1xuICB9XG4gIC50aGFua3MtbWVzc2FnZSB7XG4gICAgY29sb3I6IEBtZ3JlZW47XG4gIH1cbn1cblxuLy8gVGhpcyBzdHlsZSBhcHBsaWVzIHRvIGRhc2hib2FyZCBtb2RhbHMsIGFuZCBhbHNvIHRoZVxuLy8gYGFjY291bnRzLWN1c3RvbS1jYWxjdWxhdGlvbi9mb3JtdWxhLm1vZGFsLmh0bWxgIG1vZGFsLlxuLm1vZGFsLWZvb3RlciAubG9hZGVyIHtcbiAgLmxvYWRlci1zdHlsZShAaW1wYWMtZGFzaGJvYXJkLWxvYWRpbmctc3Bpbm5lcilcbn1cblxuIiwiLmFuYWx5dGljcyAuZGFzaGJvYXJkLWNyZWF0ZSB7XG4gIC5idG4tY3JlYXRlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtZGFzaGJvYXJkLWNyZWF0ZS1idXR0b24tY29sb3I7XG4gIH1cbn1cblxuLm1vZGFsLmltcGFjLWRhc2hib2FyZC1jcmVhdGUge1xuICBoMSB7IGZvbnQtc2l6ZTogMjRweDsgfVxuICAuZmEuZmEtdGltZXMge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBjb2xvcjogI2NjYztcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbiAgLmNvbnRyb2wtbGFiZWwgeyB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gIC5tb2RhbC1mb290ZXIge1xuICAgIC5sb2FkZXIge1xuICAgICAgLmxvYWRlci1zdHlsZShAaW1wYWMtZGFzaGJvYXJkLWxvYWRpbmctc3Bpbm5lcilcbiAgICB9XG4gIH1cbn1cbiIsIiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciB7XG4gIGEge1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIH1cbiAgLy8gZGFzaGJvYXJkIHNlbGVjdG9yIHRlbXBsYXRlIHdyYXBwZXIgZGl2XG4gICYgPiBkaXY6Zmlyc3QtY2hpbGQge1xuICAgIGJvcmRlci1ib3R0b206IEBpbXBhYy1kYXNoYm9hcmQtc2VsZWN0b3ItYm9yZGVyO1xuICB9XG5cbiAgLmJ1dHRvbnMtYmFyLXJvdyB7XG4gICAgbWFyZ2luLXRvcDogNTRweDtcbiAgICAmLnBkZi1tb2RlIHsgbWFyZ2luLXRvcDogMHB4OyB9XG4gIH1cblxuICAvLyBjb250YWluZXIgZm9yIGRhc2hib2FyZCBzZWxlY3RvciAnZHJvcGRvd24nIHRlbXBsYXRlXG4gIC5idXR0b25zLWJhciB7XG4gICAgcGFkZGluZzogMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAuYnRuIHtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgIG1hcmdpbjogM3B4O1xuICAgICAgYm9yZGVyLXJhZGl1czogQGltcGFjLWRhc2hib2FyZC1idXR0b25zLWJvcmRlci1yYWRpdXM7XG4gICAgfVxuXG4gICAgLnRpdGxlLWNvbnRhaW5lciB7XG4gICAgICBoMSB7XG4gICAgICAgIG1hcmdpbjogMHB4O1xuICAgICAgICBjb2xvcjogYmxhY2s7XG4gICAgICAgIGN1cnNvcjogYXV0bztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuZHJvcGRvd24tY29udGFpbmVyIHtcbiAgICAgIC5kYXNoYm9hcmQtdGl0bGUge1xuICAgICAgICBjb2xvcjogQGltcGFjLWRhc2hib2FyZC10aXRsZS1jb2xvcjtcbiAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIGNvbG9yOiBkYXJrZW4oQGltcGFjLWRhc2hib2FyZC10aXRsZS1jb2xvciwxMCUpO1xuICAgICAgICB9XG4gICAgICAgIGkuZmEuZmEtcGVuY2lsIHtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMjBweDtcbiAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogQG1ncmVlbjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC5kYXNoYm9hcmQtc2VsZWN0IHtcbiAgICAgICAgbWFyZ2luOiA1cHggMHB4IDEwcHggMzBweDtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIEBpbXBhYy1kYXNoYm9hcmQtdGl0bGUtY29sb3I7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBAaW1wYWMtZGFzaGJvYXJkLXRpdGxlLWNvbG9yO1xuICAgICAgICB3aWR0aDogMzAwcHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBsaWdodGdyYXk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgLm9wdGlvbiB7XG4gICAgICAgICAgY29sb3I6IEBpbXBhYy1kYXNoYm9hcmQtdGl0bGUtbGFiZWwtY29sb3I7XG4gICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy13aWRnZXQtYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgICAgICB9XG4gICAgICAgICAgJi5kYXNoYm9hcmQtY3JlYXRlIHtcbiAgICAgICAgICAgIGhlaWdodDogMzNweDtcbiAgICAgICAgICAgIC5idG4ge1xuICAgICAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgIG1hcmdpbjogMHB4O1xuICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGkuZmEuZmEtcGVuY2lsIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiA3cHg7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogMTUlO1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHB4O1xuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgIGNvbG9yOiBkYXJrZW4oQGltcGFjLWRhc2hib2FyZC10aXRsZS1jb2xvciwxMCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBzcGFuLm5hbWUge1xuICAgICAgICAgICAgd2lkdGg6IDg1JTtcbiAgICAgICAgICAgIGhlaWdodDogMzBweDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDVweCAxMHB4IDVweCAxMHB4O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLmNoYW5nZS1uYW1lIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDMwcHg7XG4gICAgICAgIGxlZnQ6IDIwcHg7XG4gICAgICAgIHdpZHRoOiA2MCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyMywgMzgsIDQ1KTtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICBwYWRkaW5nOiAxMHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgLmJveC1zaGFkb3coMHB4IDBweCAyNXB4IDRweCBibGFjayk7XG4gICAgICAgIHotaW5kZXg6IDUwO1xuICAgICAgICBib3JkZXI6IHNvbGlkIDFweCBAaW1wYWMtd2lkZ2V0LWJhY2tncm91bmQtY29sb3I7XG5cbiAgICAgICAgLmZvcm0tY29udHJvbCB7XG4gICAgICAgICAgaGVpZ2h0OiAyNXB4O1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC5kYXRhLXNvdXJjZS1sYWJlbCB7XG4gICAgICAgIGNvbG9yOiBAaW1wYWMtZGFzaGJvYXJkLXNvdXJjZS1jb2xvcjtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAzcHg7XG4gICAgICAgIG1hcmdpbjogMHB4O1xuICAgICAgfVxuICAgIH1cblxuICAgIC5sb2FkZXItY29udGFpbmVyIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICAgIC5sb2FkaW5nLXNwaW5uZXIge1xuICAgICAgICAubG9hZGVyLXN0eWxlKCk7XG4gICAgICAgIGZvbnQtc2l6ZTogNDBweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBhbmd1bGFyIGJvb3RzdHJhcCB0YWJzICYgcGlsbHNcbiAgLm5hdi10YWJzIHtcbiAgICBib3JkZXItYm90dG9tOiAwO1xuICB9XG4gIC5uYXYubmF2LXRhYnMsXG4gIC5uYXYubmF2LXBpbGxzIHtcblxuICAgIC8vIGFkZCBuZXcgdGFiXG4gICAgbGk6bGFzdC1jaGlsZCA+IGEge1xuICAgICAgcGFkZGluZy1yaWdodDogMTVweDtcbiAgICAgIHRhYi1oZWFkaW5nIGEge1xuICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFRBQlNcbiAgLm5hdi5uYXYtdGFicyB7XG4gICAgLy8gdGFiXG4gICAgbGkgPiBhIHtcbiAgICAgIHBhZGRpbmc6IEBpbXBhYy1kYXNoYm9hcmQtc2VsZWN0b3ItdGFicy1wYWRkaW5nO1xuICAgICAgbWFyZ2luOiBAaW1wYWMtZGFzaGJvYXJkLXNlbGVjdG9yLXRhYnMtbWFyZ2luO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGltcGFjLWRhc2hib2FyZC1zZWxlY3Rvci10YWJzLWJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXI6IEBpbXBhYy1kYXNoYm9hcmQtc2VsZWN0b3ItYm9yZGVyO1xuICAgICAgY29sb3I6IEBpbXBhYy1kYXNoYm9hcmQtc2VsZWN0b3ItdGFicy1jb2xvcjtcbiAgICB9XG4gICAgLy8gYWN0aXZlIHRhYlxuICAgIGxpLmFjdGl2ZSA+IGEge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGltcGFjLWRhc2hib2FyZC1zZWxlY3Rvci10YWJzLWFjdGl2ZS1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgY29sb3I6IEBpbXBhYy1kYXNoYm9hcmQtc2VsZWN0b3ItdGFicy1hY3RpdmUtY29sb3I7XG4gICAgfVxuICAgIC8vIGFkZCBuZXcgdGFiXG4gICAgbGk6bGFzdC1jaGlsZCA+IGEge1xuICAgICAgLy8gcGFkZGluZy1sZWZ0OiA1cHg7XG4gICAgfVxuICAgIGxpOmxhc3QtY2hpbGQuYWN0aXZlID4gYSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtZGFzaGJvYXJkLXNlbGVjdG9yLXRhYnMtYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAvLyBQSUxMU1xuICAvLyBUT0RPOiBBZGQgbGVzcyB2YXJpYWJsZXMgZm9yIGN1c3RvbWlzYXRpb24uXG4gIC5uYXYubmF2LXBpbGxzIHtcbiAgICAvLyB0YWJcbiAgICBsaSA+IGEge1xuICAgICAgbWluLXdpZHRoOiAwcHg7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiA4cHg7XG4gICAgfVxuICAgIC8vIGFkZCBhIG5ldyB0YWJcbiAgICBsaTpsYXN0LWNoaWxkIHRhYi1oZWFkaW5nIGEge1xuICAgICAgbWFyZ2luLWxlZnQ6IDJweDtcbiAgICB9XG4gICAgLy8gYWRkIGEgbmV3IHRhYlxuICAgIGxpOmxhc3QtY2hpbGQuYWN0aXZlID4gYSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjRmNGY0O1xuICAgIH1cbiAgfVxuICAvLyB0YWIgaWNvbnNcbiAgdGFiLWhlYWRpbmcgYS5jbG9zZS1saW5rIHtcbiAgICBib3JkZXItYm90dG9tOiAwcHggc29saWQ7XG4gICAgbWFyZ2luLWxlZnQ6IDEycHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogLTlweDtcbiAgICByaWdodDogMXB4O1xuICAgIGNvbG9yOiBAaW1wYWMtZGFzaGJvYXJkLXNlbGVjdG9yLXRhYnMtY29sb3I7XG4gIH1cbiAgLy8vLy8vLy9cbn1cbiIsImRhc2hib2FyZC10ZW1wbGF0ZXMtc2VsZWN0b3Ige1xuICAudGVtcGxhdGVzLWhlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICAudGVtcGxhdGVzLXRvZ2dsZSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1ncm93OiAxO1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgIGkuZmEge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICYuZmEtdG9nZ2xlLW9uIHtcbiAgICAgICAgICBjb2xvcjogQGltcGFjLXdpZGdldC1saW5rLWNvbG9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC50ZW1wbGF0ZXMge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMHB4IDBweCAxcHggMHB4ICNjY2M7XG4gICAgaGVpZ2h0OiAxMzBweDtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XG5cbiAgICAudGVtcGxhdGUge1xuICAgICAgcGFkZGluZzogNXB4IDEwcHg7XG4gICAgICBjb2xvcjogQGltcGFjLXdpZGdldC10ZXh0LWNvbG9yO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlY2VjZWM7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKEBpbXBhYy1kYXNoYm9hcmQtdGVtcGxhdGVzLXNlbGVjdGVkLWJhY2tncm91bmQtY29sb3IsIDIwJSk7XG4gICAgICB9XG4gICAgICAmLnNlbGVjdGVkIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGltcGFjLWRhc2hib2FyZC10ZW1wbGF0ZXMtc2VsZWN0ZWQtYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXgtd2lkdGg6IDIyMHB4O1xuICBtaW4taGVpZ2h0OiBAa3BpLW1heC1oZWlnaHQ7XG4gIG1heC1oZWlnaHQ6IEBrcGktbWF4LWhlaWdodDtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGtwaS1iYWNrZ3JvdW5kLWNvbG9yO1xuICBtYXJnaW46IDEwcHggMCAxMHB4IDA7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBAa3BpLWJhY2tncm91bmQtY29sb3I7XG4gIHRyYW5zaXRpb246IGFsbCAuMnMgZWFzZS1pbjtcblxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgfVxuXG4gICYudHJpZ2dlcmVkLCAmLmFkZDpob3ZlciB7XG4gICAgYm9yZGVyLWJvdHRvbTogQGtwaS10cmlnZ2VyZWQtYm9yZGVyLWJvdHRvbTtcbiAgfVxuXG4gICYuYWRkIHtcbiAgICAua3BpLXRleHQge1xuICAgICAgLmVtcGhhc2lzIHsgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG4gICAgfVxuICB9XG5cbiAgJi5hZGQ6aG92ZXIge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAudG9wLWxpbmUgeyBiYWNrZ3JvdW5kLWNvbG9yOiBAa3BpLXRvcC1saW5lLXRyaWdnZXJlZC1iYWNrZ3JvdW5kLWNvbG9yOyB9XG4gICAgLmtwaS10ZXh0IHtcbiAgICAgIGNvbG9yOiBAa3BpLXRleHQtdHJpZ2dlcmVkLWNvbG9yO1xuICAgICAgLmVtcGhhc2lzIHsgdmlzaWJpbGl0eTogdmlzaWJsZTsgfVxuICAgIH1cbiAgICAua3BpLWljb24ge1xuICAgICAgY29sb3I6IEBrcGktaWNvbi10cmlnZ2VyZWQtY29sb3I7XG4gICAgICAuZmEtcGx1czpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIlxcZjAwY1wiO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYuZWRpdGluZyB7XG4gICAgbWluLWhlaWdodDogQGtwaS1tYXgtaGVpZ2h0ICsgQGtwaS1lZGl0aW5nLW1heC1oZWlnaHQ7XG4gIH1cblxuICAmOmhvdmVyIHsgY3Vyc29yOiBkZWZhdWx0OyB9XG5cbiAgJi5zdGF0aWMge1xuICAgIC5rcGktdmFsdWUge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgIH1cbiAgfVxuXG4gIC50b3AtbGluZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGN1cnNvcjogbW92ZTtcbiAgICBwYWRkaW5nOiA5cHggOXB4IDBweCAxMnB4O1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgbWluLWhlaWdodDogQGtwaS10b3AtbGluZS1oZWlnaHQ7XG4gICAgYm94LXNoYWRvdzogQGtwaS10b3AtbGluZS1ib3gtc2hhZG93O1xuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDtcbiAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcbiAgICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGtwaS10b3AtbGluZS1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgICYudHJpZ2dlcmVkIHsgYmFja2dyb3VuZC1jb2xvcjogQGtwaS10b3AtbGluZS10cmlnZ2VyZWQtYmFja2dyb3VuZC1jb2xvcjsgfVxuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgLjJzIGVhc2UtaW47XG4gIH1cblxuICAua3BpLWNvbnRlbnQge1xuICAgIG1heC1oZWlnaHQ6IEBrcGktbWF4LWhlaWdodCAtIDVweDtcbiAgICAmLmVkaXRpbmcge1xuICAgICAgbWluLWhlaWdodDogQGtwaS1tYXgtaGVpZ2h0ICsgQGtwaS1lZGl0aW5nLW1heC1oZWlnaHQgLSBAa3BpLWNvbnRlbnQtZWRpdGluZy1oZWlnaHQtYnVmZmVyO1xuICAgICAgLnNjcm9sbGFibGUoKTtcbiAgICB9XG4gIH1cblxuICAua3BpLXNob3cge1xuICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgcGFkZGluZzogMTBweDtcbiAgICAvLyBzbWFsbCBmaXggZm9yIGlwaG9uZSA2IGFuZCBzbWFsbGVyXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzgwcHgpIHtcbiAgICAgIHBhZGRpbmc6IDEwcHggM3B4O1xuICAgIH1cblxuICAgIC5lbXBoYXNpcyB7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXG4gICAgICAucmVhbC12YWx1ZSB7IGNvbG9yOiAjNjc2NzY3OyB9XG4gICAgfVxuXG4gICAgLmNhcHRpb24ge1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB9XG5cbiAgICAua3BpLXRleHQge1xuICAgICAgJiA+IHNwYW4geyBkaXNwbGF5OiBibG9jazsgfVxuICAgICAgcGFkZGluZzogN3B4IDA7XG4gICAgICBjb2xvcjogQGtwaS10ZXh0LWNvbG9yO1xuICAgICAgdHJhbnNpdGlvbjogY29sb3IgLjJzIGVhc2UtaW47XG4gICAgICAmLnRyaWdnZXJlZCB7IGNvbG9yOiBAa3BpLXRleHQtdHJpZ2dlcmVkLWNvbG9yOyB9XG5cbiAgICAgIC5jYXB0aW9uIHtcbiAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMnB4O1xuICAgICAgfVxuXG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0NjVweCkge1xuICAgICAgICAuY2FwdGlvbiB7IGZvbnQtc2l6ZTogMTBweDsgfVxuICAgICAgICAuZW1waGFzaXMgeyBmb250LXNpemU6IDExcHg7IH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAua3BpLWljb24ge1xuICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgcGFkZGluZzogMTBweCAwO1xuICAgICAgY29sb3I6IEBrcGktaWNvbi1jb2xvcjtcbiAgICAgIHRyYW5zaXRpb246IGNvbG9yIC4ycyBlYXNlLWluO1xuICAgICAgJi50cmlnZ2VyZWQgeyBjb2xvcjogQGtwaS1pY29uLXRyaWdnZXJlZC1jb2xvcjsgfVxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDY1cHgpIHtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBwYWRkaW5nOiAxNnB4IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmtwaS1lZGl0IHtcblxuICAgIGEgeyBjb2xvcjogd2hpdGU7IH1cblxuICAgIC5rcGktbmFtZSB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgICBoNiB7XG4gICAgICAgIG1hcmdpbjogMCAwIDVweCAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5yZWFsLXZhbHVlIHtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLmFsZXJ0LWNhcHRpb24ge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgYmFja2dyb3VuZDogQGtwaS1uZWdhdGl2ZS1hbGVydC1sYWJlbC1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXJnaW46IDAgYXV0byA1cHggYXV0bztcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBwYWRkaW5nOiAycHg7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgfVxuXG5cbiAgICAua3BpLXRhcmdldC13YXRjaGFibGUsXG4gICAgLmtwaS10YXJnZXQtdW5pdCB7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICB9XG5cbiAgICAua3BpLXRhcmdldC13YXRjaGFibGUge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgIGNvbG9yOiBsaWdodGVuKEBrcGktdG9wLWxpbmUtYmFja2dyb3VuZC1jb2xvciwgNSUpO1xuICAgIH1cblxuICAgIC5rcGktdGFyZ2V0LXVuaXQge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA2cHg7XG4gICAgICByaWdodDogMDtcbiAgICAgIGNvbG9yOiBsaWdodGVuKEBrcGktdG9wLWxpbmUtYmFja2dyb3VuZC1jb2xvciwgMTAlKTtcbiAgICB9XG5cbiAgICAucGFyYW0tbmFtZSB7XG4gICAgICAuc21hbGwoKTtcbiAgICB9XG5cbiAgICAuYnRuLmJ0bi14cyB7XG4gICAgICBtYXJnaW4tdG9wOiA0cHg7XG4gICAgfVxuICB9XG5cbiAgLmtwaS1lZGl0LFxuICAua3BpLW5vLWRhdGEge1xuICAgIC5pbXBhYy1tYXRlcmlhbChAa3BpLXNldHRpbmdzLWZvY3VzLWNvbG9yLCBAa3BpLXNldHRpbmdzLWVycm9yLWNvbG9yKTtcbiAgfVxuXG4gIGJ1dHRvbi5rcGktYWxlcnRzLmltLWZhYi5pbS1wcmltYXJ5IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAtMTJweDtcbiAgICByaWdodDogMTVweDtcbiAgICB3aWR0aDogMjJweDtcbiAgICBoZWlnaHQ6IDIycHg7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGJhY2tncm91bmQ6IEBrcGktc2V0dGluZ3MtYWxlcnQtY29uZmlnLWJhY2tncm91bmQ7XG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdWQ6IEBrcGktc2V0dGluZ3MtYWxlcnQtY29uZmlnLWJhY2tncm91bmQtaG92ZXI7XG4gICAgfVxuICB9XG5cbiAgYnV0dG9uLmtwaS1yZW1vdmUuaW0tZmFiLmltLXdhcm4ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC0xMnB4O1xuICAgIHJpZ2h0OiAtMTFweDtcbiAgICB3aWR0aDogMjJweDtcbiAgICBoZWlnaHQ6IDIycHg7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGJhY2tncm91bmQ6IEBrcGktc2V0dGluZ3MtcmVtb3ZlLWJhY2tncm91bmQ7XG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiBAa3BpLXNldHRpbmdzLXJlbW92ZS1iYWNrZ3JvdW5kLWhvdmVyO1xuICAgIH1cbiAgfVxuXG4gIC5rcGktZGF0YS1sb2FkZXIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDk1cHg7XG4gIH1cbn1cblxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rZXktc3RhdHMgLmtwaSB7XG4gIG1pbi1oZWlnaHQ6IDgwcHg7XG59XG4iLCIvKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cbi8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJTVBBQyBNQVRFUklBTFxuLyogICAgICAgICAgICAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbioqIE1peGluIG1hdGVyaWFsIHN0eWxlZCBmb3JtIGlucHV0cywgb3ZlcnJpZGluZyBib290c3RyYXAncyB1bmdvZGx5IHJvdW5kLW5lc3MuXG4vKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cbi8qIERFTU8gSFRNTCAtIHVzZSB0aGlzIGh0bWwgdG8gdGVzdCBhbGwgaW1wYWMgbWF0ZXJpYWwgZmVhdHVyZXMuXG48Zm9ybT5cbiAgPGRpdiBjbGFzcz1cImltLWZvcm0tZ3JvdXBcIj5cbiAgICA8c2VsZWN0PlxuICAgICAgPG9wdGlvbj5WYWx1ZSAxPC9vcHRpb24+XG4gICAgICA8b3B0aW9uPlZhbHVlIDI8L29wdGlvbj5cbiAgICA8L3NlbGVjdD5cbiAgICA8bGFiZWwgZm9yPVwic2VsZWN0XCIgY2xhc3M9XCJpbS1jb250cm9sLWxhYmVsXCI+U2VsZWN0Ym94PC9sYWJlbD48aSBjbGFzcz1cImltLWJhclwiPjwvaT5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJpbS1mb3JtLWdyb3VwXCI+XG4gICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgcmVxdWlyZWQvPlxuICAgIDxsYWJlbCBmb3I9XCJpbnB1dFwiIGNsYXNzPVwiaW0tY29udHJvbC1sYWJlbFwiPlRleHRmaWVsZDwvbGFiZWw+PGkgY2xhc3M9XCJpbS1iYXJcIj48L2k+XG4gICAgPGRpdiBjbGFzcz1cImltLW1lc3NhZ2VzXCI+XG4gICAgICA8cD5UaGlzIGlzIGFuIGVycm9yIG1lc3NhZ2U8L3A+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiaW0tZm9ybS1pbmxpbmVcIj5cbiAgICA8ZGl2IGNsYXNzPVwiaW0tZm9ybS1ncm91cFwiPlxuICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgcmVxdWlyZWQvPlxuICAgICAgPGxhYmVsIGZvcj1cImlucHV0XCIgY2xhc3M9XCJpbS1jb250cm9sLWxhYmVsXCI+SW5saW5lPC9sYWJlbD48aSBjbGFzcz1cImltLWJhclwiPjwvaT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiaW0tZm9ybS1ncm91cFwiPlxuICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgcmVxdWlyZWQvPlxuICAgICAgPGxhYmVsIGZvcj1cImlucHV0XCIgY2xhc3M9XCJpbS1jb250cm9sLWxhYmVsXCI+SW5saW5lPC9sYWJlbD48aSBjbGFzcz1cImltLWJhclwiPjwvaT5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJpbS1mb3JtLWdyb3VwXCI+XG4gICAgPHRleHRhcmVhIHJlcXVpcmVkPjwvdGV4dGFyZWE+XG4gICAgPGxhYmVsIGZvcj1cInRleHRhcmVhXCIgY2xhc3M9XCJpbS1jb250cm9sLWxhYmVsXCI+VGV4dGFyZWE8L2xhYmVsPjxpIGNsYXNzPVwiaW0tYmFyXCI+PC9pPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImltLWNoZWNrYm94XCI+XG4gICAgPGxhYmVsPlxuICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIGNoZWNrZWQ9XCJjaGVja2VkXCIvPjxpIGNsYXNzPVwiaW0taGVscGVyXCI+PC9pPkknbSB0aGUgbGFiZWwgZnJvbSBhIGNoZWNrYm94XG4gICAgPC9sYWJlbD5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJpbS1jaGVja2JveFwiPlxuICAgIDxsYWJlbD5cbiAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIi8+PGkgY2xhc3M9XCJpbS1oZWxwZXJcIj48L2k+SSdtIHRoZSBsYWJlbCBmcm9tIGEgY2hlY2tib3hcbiAgICA8L2xhYmVsPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImltLWZvcm0tcmFkaW9cIj5cbiAgICA8ZGl2IGNsYXNzPVwiaW0tcmFkaW9cIj5cbiAgICAgIDxsYWJlbD5cbiAgICAgICAgPGlucHV0IHR5cGU9XCJyYWRpb1wiIG5hbWU9XCJyYWRpb1wiIGNoZWNrZWQ9XCJjaGVja2VkXCIvPjxpIGNsYXNzPVwiaW0taGVscGVyXCI+PC9pPkknbSB0aGUgbGFiZWwgZnJvbSBhIHJhZGlvIGJ1dHRvblxuICAgICAgPC9sYWJlbD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiaW0tcmFkaW9cIj5cbiAgICAgIDxsYWJlbD5cbiAgICAgICAgPGlucHV0IHR5cGU9XCJyYWRpb1wiIG5hbWU9XCJyYWRpb1wiLz48aSBjbGFzcz1cImltLWhlbHBlclwiPjwvaT5JJ20gdGhlIGxhYmVsIGZyb20gYSByYWRpbyBidXR0b25cbiAgICAgIDwvbGFiZWw+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiaW0tY2hlY2tib3hcIj5cbiAgICA8bGFiZWw+XG4gICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIvPjxpIGNsYXNzPVwiaW0taGVscGVyXCI+PC9pPkknbSB0aGUgbGFiZWwgZnJvbSBhIGNoZWNrYm94XG4gICAgPC9sYWJlbD5cbiAgPC9kaXY+XG4gIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiaW0tZmFiIGltLXByaW1hcnlcIj48aT7imaU8L2k+PC9idXR0b24+XG4gIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiaW0tZmFiIGltLXdhcm5cIj48aT7imaU8L2k+PC9idXR0b24+XG48L2Zvcm0+XG4qL1xuXG5AYm9keS1iZzogI2ZmZjtcblxuLy8gU2hhZG93c1xuQHNoYWRvdy1pbnNldDogaW5zZXQgMCAycHggMnB4IDAgcmdiYSgwLDAsMCwuMTQpO1xuQHNoYWRvdy0wOiAwIDAgMXB4IHJnYmEoMCwgMCwgMCwgMCk7XG5Ac2hhZG93LTI6IDAgMnB4IDJweCAwIHJnYmEoMCwwLDAsLjE0KSwwIDNweCAxcHggLTJweCByZ2JhKDAsMCwwLC4yKSwwIDFweCA1cHggMCByZ2JhKDAsMCwwLC4xMik7XG5Ac2hhZG93LTM6IDAgM3B4IDRweCAwIHJnYmEoMCwwLDAsLjE0KSwwIDNweCAzcHggLTJweCByZ2JhKDAsMCwwLC4yKSwwIDFweCA4cHggMCByZ2JhKDAsMCwwLC4xMik7XG5Ac2hhZG93LTQ6IDAgNHB4IDVweCAwIHJnYmEoMCwwLDAsLjE0KSwwIDFweCAxMHB4IDAgcmdiYSgwLDAsMCwuMTIpLDAgMnB4IDRweCAtMXB4IHJnYmEoMCwwLDAsLjIpO1xuQHNoYWRvdy02OiAwIDZweCAxMHB4IDAgcmdiYSgwLDAsMCwuMTQpLDAgMXB4IDE4cHggMCByZ2JhKDAsMCwwLC4xMiksMCAzcHggNXB4IC0xcHggcmdiYSgwLDAsMCwuMik7XG5Ac2hhZG93LTg6IDAgOHB4IDEwcHggMXB4IHJnYmEoMCwwLDAsLjE0KSwwIDNweCAxNHB4IDJweCByZ2JhKDAsMCwwLC4xMiksMCA1cHggNXB4IC0zcHggcmdiYSgwLDAsMCwuMik7XG5cbi8vIEZvbnQgU2l6ZXNcbkBpbS1mb250LXNpemU6IDEuMjVyZW07XG5AaW0tYWN0aXZlLWZvbnQtc2l6ZTogQGltLWZvbnQtc2l6ZSAqIDAuODtcbkBpbS1hY3RpdmUtdG9wOiAtQGltLWZvbnQtc2l6ZTtcblxuLy8gTWFyZ2luICYgUGFkZGluZ3NcbkBpbS1nYXA6IEBpbS1mb250LXNpemUgKiAuNztcbkBpbS1zcGFjZXI6IEBpbS1mb250LXNpemUgLyA4O1xuQGltLWZpZWxkc2V0LW1hcmdpbjogMCAwIEBpbS1nYXAgKiAyO1xuQGltLWNoZWNrYm94LWdhcDogQGltLWZvbnQtc2l6ZSAqIDI7XG5AaW0tY2hlY2tib3gtdG9wOiAwO1xuQGltLXJhZGlvLW1hcmdpbjogQGltLWZvbnQtc2l6ZSAvIC00O1xuXG4vLyBDb2xvcnNcbkBpbS1ib3JkZXItY29sb3I6ICM5OTk7XG5AaW0tbGFiZWwtY29sb3I6IGxpZ2h0ZW4oQGltLWJvcmRlci1jb2xvciwgMTAlKTtcbkBpbS1hY3RpdmUtY29sb3I6IGRhcmtlbihAaW0tYm9yZGVyLWNvbG9yLCAxMCUpO1xuXG4vLyBBbmltYXRpb25cbkBpbS10cmFuc2l0aW9uLXNwZWVkOiAwLjI4cztcblxuLmltcGFjLW1hdGVyaWFsIChAaW0tZm9jdXMtY29sb3I6ICMzMzdhYjcsIEBpbS1lcnJvci1jb2xvcjogI2Q5NTM0ZiwgQGltLWlucHV0LWNvbG9yOiAjMzMzKSB7XG4gIC8qIEZsYXR0ZW4gZGVyIEJvb3RzdHJhcCAqL1xuICAud2VsbCwgLm5hdmJhci1pbm5lciwgLnBvcG92ZXIsIC5idG4sIC50b29sdGlwLCBpbnB1dCwgc2VsZWN0LCB0ZXh0YXJlYSwgcHJlLCAucHJvZ3Jlc3MsIC5tb2RhbCwgLmFkZC1vbiwgLmFsZXJ0LCAudGFibGUtYm9yZGVyZWQsIC5uYXY+LmFjdGl2ZT5hLCAuZHJvcGRvd24tbWVudSwgLnRvb2x0aXAtaW5uZXIsIC5iYWRnZSwgLmxhYmVsLCAuaW1nLXBvbGFyb2lkIHtcbiAgICAtbW96LWJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAwcHggIWltcG9ydGFudDtcbiAgICAtbW96LWJvcmRlci1yYWRpdXM6IDBweCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDBweCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2UgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lICFpbXBvcnRhbnQ7XG4gIH1cblxuICBib2R5LFxuICBpbnB1dCxcbiAgc2VsZWN0LFxuICB0ZXh0YXJlYSB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgICY6OmFmdGVyLFxuICAgICY6OmJlZm9yZSB7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIH1cbiAgfVxuXG4gIGlucHV0W3R5cGU9bnVtYmVyXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbiAgaW5wdXRbdHlwZT1udW1iZXJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgYTpob3ZlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG5cbiAgLy8gVGhlIFN0eWxlcyBmb3IgdGhlIGZvcm1cbiAgZmllbGRzZXQge1xuICAgIG1hcmdpbjogQGltLWZpZWxkc2V0LW1hcmdpbjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgfVxuXG4gIC5pbS1mb3JtLXJhZGlvLFxuICAuaW0tZm9ybS1ncm91cCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi10b3A6IChAaW0tZ2FwICogMS41KTtcbiAgICBtYXJnaW4tYm90dG9tOiAoQGltLWdhcCAqIDEuNSk7XG4gIH1cblxuICAuaW0tZm9ybS1pbmxpbmUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICAgPiAuaW0tZm9ybS1ncm91cCB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGZsZXg6IDE7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgbWFyZ2luLWxlZnQ6IChAaW0tZ2FwICogLjIpO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAoQGltLWdhcCAqIC4yKTtcbiAgICB9XG5cbiAgICA+IC5idG4ge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cblxuICAuaW0tZm9ybS1ncm91cCB7XG4gICAgaW5wdXQge1xuICAgICAgaGVpZ2h0OiAoQGltLWZvbnQtc2l6ZSAqIDEuOSk7XG4gICAgfVxuXG4gICAgdGV4dGFyZWEge1xuICAgICAgcmVzaXplOiBub25lO1xuICAgIH1cblxuICAgIHNlbGVjdCB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGZvbnQtc2l6ZTogQGltLWZvbnQtc2l6ZTtcbiAgICAgIGhlaWdodDogKEBpbS1mb250LXNpemUgKiAxLjYpO1xuICAgICAgcGFkZGluZzogQGltLXNwYWNlciBAaW0tc3BhY2VyIChAaW0tc3BhY2VyIC8gMik7XG4gICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgfVxuXG4gICAgLmltLWNvbnRyb2wtbGFiZWwge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAoQGltLWZvbnQtc2l6ZSAvIDQpO1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICBwYWRkaW5nLWxlZnQ6IEBpbS1zcGFjZXI7XG4gICAgICB6LWluZGV4OiAxO1xuICAgICAgY29sb3I6IEBpbS1sYWJlbC1jb2xvcjtcbiAgICAgIGZvbnQtc2l6ZTogQGltLWZvbnQtc2l6ZTtcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgQGltLXRyYW5zaXRpb24tc3BlZWQgZWFzZTtcbiAgICB9XG5cbiAgICAuaW0tYmFyIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGJvcmRlci1ib3R0b206IChAaW0tZm9udC1zaXplIC8gMTYpIHNvbGlkIEBpbS1ib3JkZXItY29sb3I7XG4gICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGhlaWdodDogKEBpbS1mb250LXNpemUgLyA4KTtcbiAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgYm90dG9tOiAoQGltLWZvbnQtc2l6ZSAvIC0xNik7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYmFja2dyb3VuZDogQGltLWZvY3VzLWNvbG9yO1xuICAgICAgICB0cmFuc2l0aW9uOiBsZWZ0IEBpbS10cmFuc2l0aW9uLXNwZWVkIGVhc2UsIHdpZHRoIEBpbS10cmFuc2l0aW9uLXNwZWVkIGVhc2U7XG4gICAgICAgIHotaW5kZXg6IDI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaW5wdXQsXG4gICAgdGV4dGFyZWEge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgcGFkZGluZzogQGltLXNwYWNlciBAaW0tc3BhY2VyIChAaW0tc3BhY2VyIC8gMik7XG4gICAgICBmb250LXNpemU6IEBpbS1mb250LXNpemU7XG4gICAgICBib3JkZXItd2lkdGg6IDA7XG4gICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgbGluZS1oZWlnaHQ6IDEuOTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgdHJhbnNpdGlvbjogYWxsIEBpbS10cmFuc2l0aW9uLXNwZWVkIGVhc2U7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgIH1cblxuICAgIGlucHV0W3R5cGU9XCJmaWxlXCJdIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICB+IC5pbS1iYXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgIHNlbGVjdCxcbiAgICBpbnB1dDpmb2N1cyxcbiAgICBpbnB1dDp2YWxpZCxcbiAgICBpbnB1dC5mb3JtLWZpbGUsXG4gICAgaW5wdXQuaGFzLXZhbHVlLFxuICAgIHRleHRhcmVhOmZvY3VzLFxuICAgIHRleHRhcmVhOnZhbGlkLFxuICAgIHRleHRhcmVhLmZvcm0tZmlsZSxcbiAgICB0ZXh0YXJlYS5oYXMtdmFsdWUge1xuICAgICAgY29sb3I6IEBpbS1pbnB1dC1jb2xvcjtcblxuICAgICAgfiAuaW0tY29udHJvbC1sYWJlbCB7XG4gICAgICAgIGZvbnQtc2l6ZTogQGltLWFjdGl2ZS1mb250LXNpemU7XG4gICAgICAgIGNvbG9yOiBAaW0tYWN0aXZlLWNvbG9yO1xuICAgICAgICB0b3A6IEBpbS1hY3RpdmUtdG9wO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIHNlbGVjdCxcbiAgICBpbnB1dCxcbiAgICB0ZXh0YXJlYSB7XG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcblxuICAgICAgICB+IC5pbS1jb250cm9sLWxhYmVsIHtcbiAgICAgICAgICBjb2xvcjogQGltLWZvY3VzLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgfiAuaW0tYmFyIHtcbiAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFJhZGlvICYgQ2hlY2tib3hcbiAgLmltLWNoZWNrYm94LFxuICAuaW0tZm9ybS1yYWRpbyB7XG4gICAgbGFiZWwge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgcGFkZGluZy1sZWZ0OiBAaW0tY2hlY2tib3gtZ2FwO1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIGNvbG9yOiBAaW0taW5wdXQtY29sb3I7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICBpbnB1dCB7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICAgIG9wYWNpdHk6IDAuMDAwMDAwMDE7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBsZWZ0OiAwO1xuICAgIH1cbiAgfVxuXG4gIC5pbS1yYWRpbyB7XG4gICAgbWFyZ2luLWJvdHRvbTogQGltLWZvbnQtc2l6ZTtcblxuICAgIC5pbS1oZWxwZXIge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiBAaW0tcmFkaW8tbWFyZ2luO1xuICAgICAgbGVmdDogQGltLXJhZGlvLW1hcmdpbjtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgZm9udC1zaXplOiBAaW0tZm9udC1zaXplO1xuICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICBjb2xvcjogQGltLWJvcmRlci1jb2xvcjtcblxuICAgICAgLy8gVE9ETzogaW1wcm92ZSByYWRpbyB0cmFuc2l0aW9uIC0gcmlwcGxlIGVmZmVjdCBsaWtlIGFuZ3VsYXIgbWQgd291bGQgYmUgY29vbCA6KVxuICAgICAgJjo6YmVmb3JlLFxuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIG1hcmdpbjogKEBpbS1zcGFjZXIgKiAyKTtcbiAgICAgICAgd2lkdGg6IEBpbS1mb250LXNpemU7XG4gICAgICAgIGhlaWdodDogQGltLWZvbnQtc2l6ZTtcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIEBpbS10cmFuc2l0aW9uLXNwZWVkIGVhc2U7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgYm9yZGVyOiAoQGltLWZvbnQtc2l6ZSAvIDgpIHNvbGlkIGN1cnJlbnRDb2xvcjtcbiAgICAgIH1cblxuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW0tZm9jdXMtY29sb3I7XG4gICAgICAgIGJvcmRlci1jb2xvcjogQGltLWZvY3VzLWNvbG9yO1xuICAgICAgfVxuICAgIH1cblxuICAgIGxhYmVsOmhvdmVyIC5pbS1oZWxwZXIge1xuICAgICAgY29sb3I6IEBpbS1mb2N1cy1jb2xvcjtcbiAgICB9XG5cbiAgICBpbnB1dDpjaGVja2VkIHtcbiAgICAgIH4gLmltLWhlbHBlciB7XG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC41KTtcbiAgICAgICAgfVxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgIGNvbG9yOiBAaW0tZm9jdXMtY29sb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuaW0tY2hlY2tib3gge1xuICAgIG1hcmdpbi10b3A6IChAaW0tZ2FwICogMik7XG4gICAgbWFyZ2luLWJvdHRvbTogQGltLWZvbnQtc2l6ZTtcblxuICAgIC5pbS1oZWxwZXIge1xuICAgICAgY29sb3I6IEBpbS1ib3JkZXItY29sb3I7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IEBpbS1jaGVja2JveC10b3A7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgd2lkdGg6IEBpbS1mb250LXNpemU7XG4gICAgICBoZWlnaHQ6IEBpbS1mb250LXNpemU7XG4gICAgICB6LWluZGV4OiAwO1xuICAgICAgYm9yZGVyOiAoQGltLWZvbnQtc2l6ZSAvIDgpIHNvbGlkIGN1cnJlbnRDb2xvcjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IChAaW0tZm9udC1zaXplIC8gMTYpO1xuICAgICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIEBpbS10cmFuc2l0aW9uLXNwZWVkIGVhc2U7XG5cbiAgICAgICY6OmJlZm9yZSxcbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgIHdpZHRoOiAoQGltLWZvbnQtc2l6ZSAqIDAuMik7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBpbS1mb2N1cy1jb2xvcjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgdG9wO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAoQGltLWZvbnQtc2l6ZSAvIDQpO1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSBAaW0tdHJhbnNpdGlvbi1zcGVlZCBlYXNlLCBoZWlnaHQgMHMgbGluZWFyIEBpbS10cmFuc2l0aW9uLXNwZWVkO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuXG4gICAgICAmOjpiZWZvcmUge1xuICAgICAgICB0b3A6IChAaW0tZm9udC1zaXplICogMC42NSk7XG4gICAgICAgIGxlZnQ6IChAaW0tZm9udC1zaXplICogMC4zOCk7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC0xMzVkZWcpO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAoQGltLWZvbnQtc2l6ZSAvIDE2KSBAYm9keS1iZztcbiAgICAgIH1cblxuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICB0b3A6IChAaW0tZm9udC1zaXplICogMC4zKTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBsYWJlbDpob3ZlciAuaW0taGVscGVyIHtcbiAgICAgIGNvbG9yOiBAaW0tZm9jdXMtY29sb3I7XG4gICAgfVxuXG4gICAgaW5wdXQ6Y2hlY2tlZCB7XG4gICAgICB+IC5pbS1oZWxwZXIge1xuICAgICAgICBjb2xvcjogQGltLWZvY3VzLWNvbG9yO1xuXG4gICAgICAgIC8vIFRPRE86IGltcHJvdmUgY2hlY2tlZCB0cmFuc2l0aW9uLlxuICAgICAgICAmOjphZnRlcixcbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgIHRyYW5zaXRpb246IGhlaWdodCBAaW0tdHJhbnNpdGlvbi1zcGVlZCBlYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgIGhlaWdodDogKEBpbS1mb250LXNpemUgLyAyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgaGVpZ2h0OiAoQGltLWZvbnQtc2l6ZSAqIDEuMik7XG4gICAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogQGltLXRyYW5zaXRpb24tc3BlZWQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuaW0tcmFkaW8gKyAuaW0tcmFkaW8sXG4gIC5pbS1jaGVja2JveCArIC5pbS1jaGVja2JveCB7XG4gICAgbWFyZ2luLXRvcDogQGltLWZvbnQtc2l6ZTtcbiAgfVxuXG4gIC8vIEFkZCBjbGFzcyBvbnRvIG5nLW1lc3NhZ2VzIGRpdlxuICAuaW0tbWVzc2FnZXMge1xuICAgIGZvbnQtc2l6ZTogQGltLWZvbnQtc2l6ZSAvIDEuMjtcbiAgICBjb2xvcjogQGltLWVycm9yLWNvbG9yO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdHJhbnNpdGlvbjogYWxsIEBpbS10cmFuc2l0aW9uLXNwZWVkIGN1YmljLWJlemllciguNTUsMCwuNTUsLjIpO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBwYWRkaW5nLXRvcDogNXB4O1xuICB9XG5cbiAgLmhhcy1lcnJvciB7XG4gICAgLmxlZ2VuZC5sZWdlbmQsXG4gICAgJi5pbS1mb3JtLWdyb3VwIC5pbS1jb250cm9sLWxhYmVsLmltLWNvbnRyb2wtbGFiZWwge1xuICAgICAgY29sb3I6IEBpbS1lcnJvci1jb2xvcjtcbiAgICB9XG5cbiAgICAmLmltLWZvcm0tZ3JvdXAsXG4gICAgJi5pbS1jaGVja2JveCxcbiAgICAmLmltLXJhZGlvLFxuICAgICYuaW0tZm9ybS1yYWRpbyB7XG4gICAgICAuaW0tbWVzc2FnZXMsXG4gICAgICAuaW0taGVscGVyIHtcbiAgICAgICAgY29sb3I6IEBpbS1lcnJvci1jb2xvcjtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuaW0tYmFyIHtcbiAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGJhY2tncm91bmQ6IEBpbS1lcnJvci1jb2xvcjtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmltLWJ1dHRvbiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJhY2tncm91bmQ6IGxpZ2h0ZW4oQGltLWZvY3VzLWNvbG9yLCAxMCUpO1xuICAgIGJvcmRlcjogMDtcbiAgICBmb250LXNpemU6IChAaW0tZm9udC1zaXplICogMS4xKTtcbiAgICBjb2xvcjogQGltLWlucHV0LWNvbG9yO1xuICAgIG1hcmdpbjogKEBpbS1nYXAgKiAuOCkgMDtcbiAgICBwYWRkaW5nOiAoQGltLWdhcCAvIDIpIChAaW0tZ2FwICogMik7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJveC1zaGFkb3c6IEBzaGFkb3ctMjtcblxuICAgIHNwYW4ge1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB6LWluZGV4OiAxO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAuMXMgZWFzZS1pbjtcbiAgICAgIGJhY2tncm91bmQ6IGRhcmtlbihAaW0tZm9jdXMtY29sb3IsIDUlKTtcbiAgICB9XG5cbiAgICAmOmFjdGl2ZSB7XG4gICAgICBib3gtc2hhZG93OiBAc2hhZG93LWluc2V0O1xuICAgIH1cblxuICAgIGE6Zm9jdXMsXG4gICAgJjpmb2N1cyB7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cbiAgfVxuXG4gIGJ1dHRvbi5pbS1mYWIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBoZWlnaHQ6IDQ2cHg7XG4gICAgd2lkdGg6IDQ2cHg7XG4gICAgZmxleDogMCAwIDU2cHg7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiA0cHg7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gICAgYm94LXNoYWRvdzogQHNoYWRvdy00O1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAmOmZvY3VzIHtcbiAgICAgIG91dGxpbmU6IDA7XG4gICAgfVxuICAgICY6YWN0aXZlIHtcbiAgICAgIGJveC1zaGFkb3c6IEBzaGFkb3ctaW5zZXQ7XG4gICAgfVxuICAgICYuaW0tcHJpbWFyeSB7XG4gICAgICBiYWNrZ3JvdW5kOiBAaW0tZm9jdXMtY29sb3I7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAuMXMgZWFzZS1pbjtcbiAgICAgICAgYmFja2dyb3VuZDogZGFya2VuKEBpbS1mb2N1cy1jb2xvciwgNSUpO1xuICAgICAgfVxuICAgIH1cbiAgICAmLmltLXdhcm4ge1xuICAgICAgYmFja2dyb3VuZDogQGltLWVycm9yLWNvbG9yO1xuICAgICAgJjpob3ZlciB7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgLjFzIGVhc2UtaW47XG4gICAgICAgIGJhY2tncm91bmQ6IGRhcmtlbihAaW0tZXJyb3ItY29sb3IsIDUlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxufVxuIiwiLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAuYWN0aW9ucyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NzVweCkge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cblxuICAgIC5pbXBhYy1tYXRlcmlhbChAa3BpLXNldHRpbmdzLWZvY3VzLWNvbG9yLCBAa3BpLXNldHRpbmdzLWVycm9yLWNvbG9yKTtcblxuICAgIGEgeyBjb2xvcjogd2hpdGU7IH1cblxuICAgIGJ1dHRvbi5pbS1mYWIuYWRkLWtwaXMsXG4gICAgYnV0dG9uLmltLWZhYi5lZGl0LWtwaXMsXG4gICAgYnV0dG9uLmltLWZhYi50b2dnbGUtc2hvdy1jb250ZW50IHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMjhzIGVhc2UtaW47XG4gICAgICAmLmltLXByaW1hcnkge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjNGM0NzQ5O1xuICAgICAgICAmLmRpc2FibGVkIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAjYjJiNWMxO1xuICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgYSB7IGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cbiAgICAgICAgfVxuICAgICAgICAmOmhvdmVyOm5vdCguZGlzYWJsZWQpIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiBibGFjaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGJ1dHRvbi5pbS1mYWIudG9nZ2xlLXNob3ctY29udGVudCB7XG4gICAgICB0b3A6IC0xNXB4O1xuICAgICAgcmlnaHQ6IC0xNXB4O1xuICAgICAgei1pbmRleDogMTA7XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NzVweCkge1xuICAgICAgICB0b3A6IC0zMHB4O1xuICAgICAgICByaWdodDogLTE0cHg7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBidXR0b24uaW0tZmFiLmFkZC1rcGlzIHtcbiAgICAgIHRvcDogMzBweDtcbiAgICAgIHJpZ2h0OiAtMTVweDtcbiAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjc1cHgpIHtcbiAgICAgICAgdG9wOiAtMzBweDtcbiAgICAgICAgcmlnaHQ6IDMzcHg7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBidXR0b24uaW0tZmFiLmVkaXQta3BpcyB7XG4gICAgICB0b3A6IDc1cHg7XG4gICAgICByaWdodDogLTE1cHg7XG4gICAgICB6LWluZGV4OiAxMDtcbiAgICAgICYuZWRpdGluZyB7XG4gICAgICAgIGJhY2tncm91bmQ6IEBrcGktc2V0dGluZ3MtZm9jdXMtY29sb3I7XG4gICAgICAgICY6aG92ZXI6bm90KC5kaXNhYmxlZCkge1xuICAgICAgICAgIGJhY2tncm91bmQ6IGxpZ2h0ZW4oQGtwaS1zZXR0aW5ncy1mb2N1cy1jb2xvciwgMTUlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjc1cHgpIHtcbiAgICAgICAgdG9wOiAtMzBweDtcbiAgICAgICAgcmlnaHQ6IDc5cHg7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuY29udGVudC1idXR0b25zIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICB9XG5cbiAgLmNvbnRlbnQge1xuICAgIHBhZGRpbmc6IDE1cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGtwaXMtYmFyLWJhY2tncm91bmQtY29sb3I7XG4gICAgYm94LXNoYWRvdzogQGtwaXMtYmFyLWJveC1zaGFkb3c7XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3MjVweCkge1xuICAgICAgcGFkZGluZzogMCA2MHB4O1xuICAgIH1cblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY3NXB4KSB7XG4gICAgICBtYXJnaW4tdG9wOiAyNXB4O1xuICAgIH1cblxuICAgIC5pbXBhYy1rcGkge1xuICAgICAgLmNvbHVtbi1ndXR0ZXIoNXB4KTtcblxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMjBweDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMjBweDtcbiAgICAgIH1cblxuICAgICAgLmtwaS5hZGQge1xuICAgICAgICAua3BpLXNob3cgLmNhcHRpb24ge1xuICAgICAgICAgIHdoaXRlLXNwYWNlOiBpbmhlcml0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG5cbiAgICAudGl0bGUge1xuICAgICAgLnRleHQtY2VudGVyIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDM7XG4gICAgICAgIGZvbnQtdmFyaWFudDogc21hbGwtY2FwcztcbiAgICAgICAgZm9udC1zaXplOiBsYXJnZXI7XG4gICAgICB9XG4gICAgICAuYmFkZ2Uge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogOHB4O1xuICAgICAgICBsZWZ0OiAtMTBweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2QxZTU1YztcbiAgICAgICAgY29sb3I6ICM0ZjU5NTk7XG4gICAgICAgIGJveC1zaGFkb3c6IDBweCAxcHggM3B4IC0xcHg7XG4gICAgICB9XG4gICAgICAubm8ta3BpLXRlbXBsYXRlcyB7XG4gICAgICAgIGNvbG9yOiAjYWZhZGI1O1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5hZGQtYmFyIHtcbiAgICAgIGJvcmRlci1ib3R0b206IGRhc2hlZCAxcHg7XG4gICAgfVxuXG4gICAgLmtwaS1sb2FkZXIge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIG1pbi1oZWlnaHQ6IEBrcGktbWF4LWhlaWdodCArIDIwcHg7XG4gICAgfVxuXG4gICAgLmRhdGVzLXBpY2tlci1jb250YWluZXIge1xuICAgICAgd2lkdGg6IDQwJTtcbiAgICAgIG1hcmdpbjogMCBhdXRvO1xuXG4gICAgICAuc2RwLWZyb20tbGFiZWwsXG4gICAgICAuc2RwLXRvLWxhYmVsIHtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLmFuYWx5dGljcyBrcGlzLWJhciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtleS1zdGF0cyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBwYWRkaW5nOiA1cHggMHB4O1xufVxuXG4uYW5hbHl0aWNzLnBkZi1tb2RlIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgeyBkaXNwbGF5OiBub25lOyB9XG4iLCIud2lkZ2V0LWl0ZW0ge1xuICB0cmFuc2l0aW9uOiB3aWR0aCAwLjNzO1xuICBwYWRkaW5nOiBAaW1wYWMtcGFkZGluZy1iZXR3ZWVuLXdpZGdldHM7XG4gICYucGRmLW1vZGUge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IH5cIkB7aW1wYWMtcGFkZGluZy1iZXR3ZWVuLXdpZGdldHN9IDBweFwiO1xuICB9XG59XG5cbi53aWRnZXQtaXRlbSAudG9wLWxpbmUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGN1cnNvcjogbW92ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGltcGFjLXdpZGdldC10aXRsZS1iZztcbiAgcGFkZGluZzogOXB4IDlweCAwcHggMTJweDtcbiAgYm9yZGVyLXJhZGl1czogQGltcGFjLXdpZGdldC10aXRsZS1ib3JkZXItcmFkaXVzO1xuICBib3JkZXI6IEBpbXBhYy13aWRnZXQtYm9yZGVyO1xuICBib3JkZXItYm90dG9tOiBub25lO1xuICBtaW4taGVpZ2h0OiA0MXB4O1xuICAuYm94LXNoYWRvdygwcHggMXB4IDhweCAtNHB4KTtcblxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gIHotaW5kZXg6IDQ7XG59XG5cbi53aWRnZXQtaXRlbSB7XG4gIC5jb250ZW50IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogOXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IEBpbXBhYy13aWRnZXQtY29udGVudC1ib3JkZXItcmFkaXVzO1xuICAgIGJvcmRlcjogQGltcGFjLXdpZGdldC1ib3JkZXI7XG4gICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtd2lkZ2V0LWJhY2tncm91bmQtY29sb3I7XG5cbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIC5ib3gtc2hhZG93KDBweCAxcHggOHB4IC00cHgpO1xuICAgIC5zaG9ydC13aWRnZXQoKTtcblxuICAgIC5lZGl0IHtcbiAgICAgIC5lZGl0LXBhbmVsLXN0eWxlKCk7XG4gICAgfVxuXG4gICAgJi5hY2Nlc3NpYmxlIHtcbiAgICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgICAgbWluLWhlaWdodDogMjUwcHggIWltcG9ydGFudDtcbiAgICAgIG1heC1oZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAvLyBBdm9pZCBjb250ZW50IHRvIGxlYWsgb3V0IG9mIHdpZGdldCdzIGJveFxuICAgIC5jb250ZW50LXRlbXBsYXRlLXdyYXBwZXIge1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgfVxuICB9XG5cbiAgJi5wZGYtbW9kZSAuY29udGVudCB7XG4gICAgaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgbWluLWhlaWdodDogMjUwcHggIWltcG9ydGFudDtcbiAgICBtYXgtaGVpZ2h0OiBub25lICFpbXBvcnRhbnQ7XG4gICAgLmNvbGxhcHNlIHtcbiAgICAgIGRpc3BsYXk6IGluaGVyaXQ7XG4gICAgfVxuICAgIC5mYS1wbHVzLXNxdWFyZS1vOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBcIlxcZjE0N1wiO1xuICAgIH1cbiAgICAubGVnZW5kIHtcbiAgICAgIG1heC1oZWlnaHQ6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gICAgLmNoYXJ0LWNvbnRhaW5lciB7XG4gICAgICBtYXgtaGVpZ2h0OiBub25lO1xuICAgIH1cbiAgICAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gICAgICBtYXgtaGVpZ2h0OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIC5kYXRhLW5vdC1mb3VuZCAubWVzc2FnZSB7XG4gICAgICBwb3NpdGlvbjogaW5oZXJpdDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxufVxuXG4ud2lkZ2V0LWl0ZW0ucGRmLW1vZGUgLmluY2x1ZGUtdG8tcGRme1xuICAmLnRpdGxlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IH5cImNhbGMoMTAwJSAtIDIqQHtpbXBhYy1wYWRkaW5nLWJldHdlZW4td2lkZ2V0c30gKVwiO1xuICAgIHotaW5kZXg6IDM7XG4gICAgcGFkZGluZy1yaWdodDogMXB4O1xuICAgIGg2IHtcbiAgICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZDOTI4O1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbiAgfVxuICAmLnRpY2sge1xuICAgIGkge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAzNSU7XG4gICAgICBsZWZ0OiA0NiU7XG4gICAgICBmb250LXNpemU6IDEwMHB4O1xuICAgICAgb3BhY2l0eTogLjU7XG4gICAgICB6LWluZGV4OiAyO1xuICAgICAgY29sb3I6IGJsYWNrO1xuICAgIH1cbiAgfVxuICAud2lkZ2V0LWhvdmVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHBhZGRpbmc6IDlweDtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgZWFzZSAuNXM7XG4gICAgLW1vei10cmFuc2l0aW9uOiBhbGwgZWFzZSAuNXM7XG4gICAgdHJhbnNpdGlvbjogYWxsIGVhc2UgLjVzO1xuICAgIHotaW5kZXg6IDE7XG4gICAgJjpob3ZlciB7XG4gICAgICBvcGFjaXR5OiAuNTtcbiAgICAgIGJhY2tncm91bmQ6ICNDQ0NGRDA7XG4gICAgfVxuICB9XG59XG5cbi8vIEZpeCBvdmVyZmxvdyBmb3IgbGFyZ2Ugc3Vtcy90ZXh0IGluIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHRhYmxlc1xuLndpZGdldC1pdGVtIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZSA+IFtjbGFzcyo9J2NvbC0nXSB7XG4gIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuZGF0YS1ub3QtZm91bmQsXG4uYW5hbHl0aWNzIC5rcGkgLmRhdGEtbm90LWZvdW5kIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGNvbG9yOiBAaW1wYWMtd2lkZ2V0LXBvcHVwLW1lc3NhZ2UtdGV4dC1jb2xvcjtcblxuICAub3ZlcmxheSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGhlaWdodDogflwiY2FsYygxMDAlIC0gNHB4KVwiO1xuICAgIHdpZHRoOiB+XCJjYWxjKDEwMCUgLSA0cHgpXCI7XG4gICAgdG9wOiAycHg7XG4gICAgbGVmdDogMnB4O1xuICAgIG9wYWNpdHk6IDAuNjtcbiAgICB6LWluZGV4OiAzO1xuICB9XG5cbiAgLm1lc3NhZ2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDEyNXB4O1xuICAgIGxlZnQ6IDUwJTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICB3aWR0aDogODUlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy13aWRnZXQtcG9wdXAtbWVzc2FnZS1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBib3gtc2hhZG93OiAwcHggMHB4IDI1cHggMHB4O1xuICAgIHotaW5kZXg6IDQ7XG5cbiAgICAudGl0bGUge1xuICAgICAgcGFkZGluZzogMnB4O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGltcGFjLXdpZGdldC1wb3B1cC10aXRsZS1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgY29sb3I6IEBpbXBhYy13aWRnZXQtcG9wdXAtdGl0bGUtdGV4dC1jb2xvcjtcbiAgICAgIG1hcmdpbjogLTFweCAtMXB4IDEwcHggLTFweDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgfVxuXG4gICAgcCB7XG4gICAgICBtYXJnaW4tbGVmdDogNXB4O1xuICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgfVxuXG4gICAgLmJ0biB7IG1hcmdpbi10b3A6IDVweDsgfVxuICB9XG5cbiAgLmV4YW1wbGUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDBweDtcbiAgICBsZWZ0OiAwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgY29sb3I6IEBpbXBhYy13aWRnZXQtcG9wdXAtdGl0bGUtdGV4dC1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtd2lkZ2V0LXBvcHVwLXRpdGxlLWJhY2tncm91bmQtY29sb3I7XG4gICAgcGFkZGluZzogM3B4O1xuICAgIHotaW5kZXg6IDY7XG5cbiAgICBhIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICBjb2xvcjogQGltcGFjLXdpZGdldC1kZW1vLWRhdGEtbGluay1jb2xvcjtcbiAgICB9XG4gIH1cbn1cblxuLmFuYWx5dGljcyAua3BpIC5kYXRhLW5vdC1mb3VuZCB7XG4gIC5tZXNzYWdlIHtcbiAgICB3aWR0aDogOTAlO1xuICAgIHBhZGRpbmctYm90dG9tOiAwcHg7XG4gICAgYm9yZGVyOiBzb2xpZCAxcHggc2lsdmVyO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgcCB7IG1hcmdpbjogNXB4OyB9XG4gIH1cbiAgLm92ZXJsYXksIC50aXRsZSwgLmJ0biwgLmV4YW1wbGUgeyBkaXNwbGF5OiBub25lOyB9XG59XG4iLCIjZHVwbGljYXRlLXRyYW5zYWN0aW9ucy1saXN0IHtcbiAgLnRvcCB7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIGEuYmFjay1saW5rIHsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgfVxuICAgIC5wYWdpbmF0aW9uIHsgbWFyZ2luOiAwcHg7IH1cbiAgfVxuXG4gIC50YWJsZS1zdHJpcGVkIHtcbiAgICB0ci5vcmlnaW46bnRoLW9mLXR5cGUob2RkKSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmOWY5O1xuICAgIH1cbiAgfVxuXG4gIC50YWJsZS1jb250YWluZXIge1xuICAgIG1heC1oZWlnaHQ6IH5cImNhbGMoQHtpbXBhYy1iaWctd2lkZ2V0LXNpemV9IC0gNjBweClcIjtcbiAgICBvdmVyZmxvdzogYXV0bztcblxuICAgIGRpdlt1aWItZGF0ZXBpY2tlci1wb3B1cC13cmFwXSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxuXG4gICAgaW5wdXQuYnRuLmJ0bi14cyB7IG1hcmdpbi10b3A6IC0ycHg7IH1cbiAgICBidXR0b24uYnRuLnJlc2V0LWRhdGUgeyBtYXJnaW4tdG9wOiAtMnB4OyB9XG4gICAgLmZhLmZhLXRpbWVzIHtcbiAgICAgIGNvbG9yOiBAYnJhbmQtZGFuZ2VyO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgIHRyLnRvdGFsIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgJi5pbnZvaWNlcyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oQGltcGFjLXBvc2l0aXZlLCAyMCUpO1xuICAgICAgfVxuICAgICAgJi5iaWxscyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oQGltcGFjLW5lZ2F0aXZlLCAyMCUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiI3RyYW5zYWN0aW9ucy1hZGQge1xuICAud2lkZ2V0LXBvcHVwKCk7XG4gIC5tZXNzYWdlIHtcbiAgICB0b3A6IDMwcHg7XG4gICAgbGVmdDogMzUlO1xuICAgIHdpZHRoOiAzMCU7XG4gICAgLmZvcm0ge1xuICAgICAgcGFkZGluZzogMHB4IDEwcHg7XG4gICAgICA+IGxhYmVsLFxuICAgICAgLnNjaGVkdWxhYmxlLXNlY3Rpb24gPiBsYWJlbCB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAxMHB4O1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAzcHg7XG4gICAgICB9XG4gICAgICBpbnB1dC5mb3JtLWNvbnRyb2wsIHNlbGVjdC5mb3JtLWNvbnRyb2wge1xuICAgICAgICB3aWR0aDogOTAlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgIGhlaWdodDogMjhweDtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgfVxuICAgICAgLmJ0bi1ncm91cCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtaW4taGVpZ2h0OiAyMnB4O1xuICAgICAgICBzZWxlY3Qge1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICBoZWlnaHQ6IDI4cHg7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMHB4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAuZGlzYWJsZSB7XG4gICAgICAgIGNvbG9yOiAjODg4ODg4O1xuICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICB9XG4gICAgICAubmV2ZXItZGlzYWJsZSB7XG4gICAgICAgIGNvbG9yOiBibGFjaztcbiAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgfVxuICAgICAgLnJlcGVhdC1idG4ge1xuICAgICAgICBtYXJnaW4tdG9wOiAzMHB4O1xuICAgICAgICBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0ZXh0LWJvdHRvbTtcbiAgICAgICAgICBtYXJnaW46IDBweDtcbiAgICAgICAgfVxuICAgICAgICBzZWxlY3QgeyBoZWlnaHQ6IDIycHg7IH1cbiAgICAgICAgLmJ0biB7XG4gICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiAjODg4ODg4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAuc2NoZWR1bGFibGUtc2VjdGlvbiB7XG4gICAgICAgIHBhZGRpbmc6IDVweDtcbiAgICAgICAgYm9yZGVyOiBzb2xpZCAxcHggc2lsdmVyO1xuICAgICAgICBtYXJnaW4tdG9wOiAwcHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgICAuYmFkZ2Uge1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzg4ODg4ODtcbiAgICAgICAgfVxuICAgICAgICAuaW50ZXJ2YWwtZmllbGQge1xuICAgICAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgICB9XG4gICAgICAgIC5idG4tZ3JvdXAge1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgICAgICAgIHNlbGVjdCB7IGhlaWdodDogMjJweDsgfVxuICAgICAgICAgIC5idG4ge1xuICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICM4ODg4ODg7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC5ib3R0b20ge1xuICAgICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICB9XG4gIH1cbn1cbiIsIiN0cmFuc2FjdGlvbnMtbGlzdCB7XG4gIC50b3Age1xuICAgIGhlaWdodDogNDBweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAuYmFjayB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgfVxuICAgIC5yZXNvdXJjZS10eXBlIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGxlZnQ6IH5cImNhbGMoNTAlIC0gOThweClcIjtcbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiBAc2NyZWVuLXhzLW1heCkge1xuICAgICAgICBsZWZ0OiB1bnNldDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICB9XG4gICAgfVxuICAgIC5idG4tZ3JvdXAgeyBkaXNwbGF5OiBmbGV4OyB9XG4gIH1cblxuICAuYm90dG9tIHtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIC5wYWdpbmF0aW9uIHsgbWFyZ2luOiAwcHg7IH1cbiAgfVxuXG4gIC50YWJsZS1jb250YWluZXIge1xuICAgIG1heC1oZWlnaHQ6IH5cImNhbGMoQHtpbXBhYy1iaWctd2lkZ2V0LXNpemV9IC0gMTAwcHgpXCI7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICBkaXZbdWliLWRhdGVwaWNrZXItcG9wdXAtd3JhcF0ge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cblxuICAgIGlucHV0LmJ0bi5idG4teHMgeyBtYXJnaW4tdG9wOiAtMnB4OyB9XG4gICAgYnV0dG9uLmJ0bi5yZXNldC1kYXRlIHsgbWFyZ2luLXRvcDogLTJweDsgfVxuXG4gICAgLmFjdGlvbnMge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgLmZhLmZhLXRpbWVzIHsgY29sb3I6IEBicmFuZC1kYW5nZXI7IH1cbiAgICB9XG5cbiAgICB0ci50b3RhbCB7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICYuaW52b2ljZXMge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCM4ZWFiNzEsIDIwJSk7XG4gICAgICB9XG4gICAgICAmLmJpbGxzIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbigjYzc2Mzc5LCAyMCUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRkID4gLmV4cGVjdGVkLXBheW1lbnQtZGF0ZSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgLnJlc2V0LWRhdGUgeyBtYXJnaW4tbGVmdDogM3B4OyB9XG4gICAgfVxuICB9XG59XG4iLCIjdHJlbmRzLWxpc3Qge1xuICAudG9wIHtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgYS5iYWNrLWxpbmsgeyBmb250LXdlaWdodDogbm9ybWFsOyB9XG4gICAgLnBhZ2luYXRpb24geyBtYXJnaW46IDBweDsgfVxuICB9XG5cbiAgLnRhYmxlLWNvbnRhaW5lciB7XG4gICAgbWF4LWhlaWdodDogflwiY2FsYyhAe2ltcGFjLWJpZy13aWRnZXQtc2l6ZX0gLSA2MHB4KVwiO1xuICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgZGl2W3VpYi1kYXRlcGlja2VyLXBvcHVwLXdyYXBdIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG5cbiAgICBpbnB1dC5idG4uYnRuLXhzIHsgbWFyZ2luLXRvcDogLTJweDsgfVxuICAgIGJ1dHRvbi5idG4ucmVzZXQtZGF0ZSB7IG1hcmdpbi10b3A6IC0ycHg7IH1cbiAgfVxufVxuIiwiI3RyZW5kcy1hZGQge1xuICAud2lkZ2V0LXBvcHVwKCk7XG4gIC5tZXNzYWdlIHtcbiAgICB0b3A6IDMwcHg7XG4gICAgbGVmdDogMzUlO1xuICAgIHdpZHRoOiAzMCU7XG4gICAgLmZvcm0ge1xuICAgICAgcGFkZGluZzogMHB4IDEwcHg7XG4gICAgICA+IGxhYmVsIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDEwcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDNweDtcbiAgICAgIH1cbiAgICAgIGlucHV0LmZvcm0tY29udHJvbCB7XG4gICAgICAgIHdpZHRoOiA5MCU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgaGVpZ2h0OiAyOHB4O1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICB9XG4gICAgICAuYnRuLWdyb3VwIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDIycHg7XG4gICAgICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgICAgID4gLmJ0biB7XG4gICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgICAgaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgICAgICAgICBtYXJnaW46IDRweCAwIDEwcHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgLmJvdHRvbSB7XG4gICAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgIH1cbiAgfVxufSIsIi5hbmFseXRpY3MgLmRhc2hib2FyZC1zZXR0aW5ncy5jdXJyZW5jeSB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBzZWxlY3Qge1xuICAgIG1hcmdpbi10b3A6IDRweDtcbiAgfVxufVxuIiwiLmFuYWx5dGljcyAuZGFzaGJvYXJkLXNldHRpbmdzLnN5bmMtYXBwcyB7XG4gIC5zaG93LXN0YXR1cyB7XG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgY29sb3I6IEBpbXBhYy13aWRnZXQtdGV4dC1jb2xvci1tZWRpdW07XG4gICAgJjpob3ZlciB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB9XG4gICAgLmZhLmZhLWluZm8geyBtYXJnaW4tcmlnaHQ6IDJweDsgfVxuICB9XG4gIC5zdGF0dXMtYnRuIHtcbiAgICBpIHtcbiAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICYuZmEtZXhjbGFtYXRpb24tdHJpYW5nbGUgeyBjb2xvcjogQGZsdXJvb3JhbmdlOyB9XG4gICAgICAmLmZhLWNoZWNrIHsgY29sb3I6IEBncmVlbjsgfVxuICAgIH1cbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHBhZGRpbmc6IDVweCA3cHggNXB4IDBweDtcbiAgfVxuXG4gIC5wb3BvdmVyIHtcbiAgICBtYXgtd2lkdGg6IDU1MHB4O1xuICAgIC5jb25uZWN0b3Ige1xuICAgICAgcGFkZGluZzogNHB4IDEzcHg7XG4gICAgICAmLmFkZC1zZXBlcmF0b3IgeyBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYzsgfVxuICAgIH1cbiAgICAucG9wb3Zlci1jb250ZW50IHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuICAgIC5wb3BvdmVyLWZvb3RlciB7XG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2NjYztcbiAgICAgIHBhZGRpbmc6IDRweCAxM3B4O1xuICAgICAgcCB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICB9XG4gICAgICAmLnJlbW92ZS1zZXBlcmF0b3IgeyBib3JkZXI6IDA7IH1cbiAgICB9XG4gIH1cblxuICAuYmFkZ2UgeyBmbG9hdDogcmlnaHQ7IG1hcmdpbi1sZWZ0OiA4cHg7IH1cbiAgLnN1Y2Nlc3MgLmJhZGdlIHsgYmFja2dyb3VuZC1jb2xvcjogQGdyZWVuOyB9XG4gIC5wZW5kaW5nIC5iYWRnZSB7IGJhY2tncm91bmQtY29sb3I6IEBmbHVyb29yYW5nZTsgfVxuICAucnVubmluZyAuYmFkZ2UgeyBiYWNrZ3JvdW5kLWNvbG9yOiBAZmx1cm9vcmFuZ2U7IH1cbiAgLmVycm9yIC5iYWRnZSB7IGJhY2tncm91bmQtY29sb3I6IEBwaW5rOyB9XG4gIC5mYWlsZWQgLmJhZGdlIHsgYmFja2dyb3VuZC1jb2xvcjogQHBpbms7IH1cbiAgLnVua25vd24gLmJhZGdlIHsgYmFja2dyb3VuZC1jb2xvcjogQHBpbms7IH1cbiAgLmRpc2Nvbm5lY3RlZCAuYmFkZ2UgeyBiYWNrZ3JvdW5kLWNvbG9yOiBAcGluazsgfVxufVxuXG4jc3luYy1hcHBzLW1vZGFsIHtcbiAgLm1vZGFsLWhlYWRlciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3gtc2hhZG93OiAwcHggMnB4IDNweCAwcHggI2NjYztcbiAgfVxuICAubW9kYWwtbGlzdCB7XG4gICAgbWF4LWhlaWdodDogMjgwcHg7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgfVxuICAubW9kYWwtbGlzdC1pdGVtIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcbiAgICBwYWRkaW5nOiAxMHB4O1xuXG4gICAgLmJhZGdlIHsgZmxvYXQ6IHJpZ2h0OyB9XG4gICAgJi5zdWNjZXNzIC5iYWRnZSB7IGJhY2tncm91bmQtY29sb3I6IEBncmVlbjsgfVxuICAgICYucGVuZGluZyAuYmFkZ2UgeyBiYWNrZ3JvdW5kLWNvbG9yOiBAZmx1cm9vcmFuZ2U7IH1cbiAgICAmLnJ1bm5pbmcgLmJhZGdlIHsgYmFja2dyb3VuZC1jb2xvcjogQGZsdXJvb3JhbmdlOyB9XG4gICAgJi5lcnJvciAuYmFkZ2UgeyBiYWNrZ3JvdW5kLWNvbG9yOiBAcGluazsgfVxuICAgICYuZmFpbGVkIC5iYWRnZSB7IGJhY2tncm91bmQtY29sb3I6IEBwaW5rOyB9XG4gICAgJi51bmtub3duIC5iYWRnZSB7IGJhY2tncm91bmQtY29sb3I6IEBwaW5rOyB9XG4gICAgJi5kaXNjb25uZWN0ZWQgLmJhZGdlIHsgYmFja2dyb3VuZC1jb2xvcjogQHBpbms7IH1cblxuICAgIC5tZXNzYWdlIHtcbiAgICAgIHAgeyBtYXJnaW46IDA7IH1cbiAgICAgIHBhZGRpbmc6IDNweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAzMXB4O1xuICAgICAgbWFyZ2luLXRvcDogOXB4O1xuICAgIH1cblxuICAgICYuc3VjY2VzcyAubWVzc2FnZSB7IGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMjU1LCA1NSwgMC4wOCk7IH1cbiAgICAmLnBlbmRpbmcgLm1lc3NhZ2UgeyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMTE4LCAwLCAwLjA4KTsgfVxuICAgICYucnVubmluZyAubWVzc2FnZSB7IGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAxMTgsIDAsIDAuMDgpOyB9XG4gICAgJi5lcnJvciAubWVzc2FnZSB7IGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAwLCAwLCAwLjA4KTsgfVxuICAgICYuZmFpbGVkIC5tZXNzYWdlIHsgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDAsIDAsIDAuMDgpOyB9XG4gICAgJi51bmtub3duIC5tZXNzYWdlIHsgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDAsIDAsIDAuMDgpOyB9XG4gICAgJi5kaXNjb25uZWN0ZWQgLm1lc3NhZ2UgeyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMCwgMCwgMC4wOCk7IH1cblxuICAgICYud2l0aC1tZXNzYWdlIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAubW9kYWwtZm9vdGVyIHtcbiAgICBib3JkZXI6IDA7XG4gIH1cbiAgLmZhIHsgcGFkZGluZzogMHB4IDEwcHg7IH1cbiAgLmZhLmVycm9yIHsgY29sb3I6IEByZWQ7IH1cbiAgLmZhLndhcm4geyBjb2xvcjogQGZsdXJvb3JhbmdlOyB9XG4gIC5mYS5zdWNjZXNzIHsgY29sb3I6IEBmbHVyb2dyZWVuOyB9XG59XG4iLCJjaGFydC10aHJlc2hvbGQge1xuICAuYXR0YWNoLXBhbmVsIHtcbiAgICBwYWRkaW5nOiA1cHggMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIwLCAxMzIsIDIyOCwgMC4xNik7XG5cbiAgICAmID4gZGl2IHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDVweDtcblxuICAgICAgJi50YXJnZXQgeyB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICB9XG5cbiAgICBAbWVkaWEgKG1heC13aWR0aDogQHNjcmVlbi1tZC1tYXgpIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgPiBkaXYge1xuICAgICAgICBwYWRkaW5nOiA1cHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnRleHQge1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgY29sb3I6IEBpbXBhYy13aWRnZXQtdGV4dC1jb2xvcjtcbiAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICB9XG5cbiAgICBpbnB1dCB7XG4gICAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgICBib3JkZXI6IDFweCB3aGl0ZTtcbiAgICAgIHBhZGRpbmc6IDNweDtcblxuICAgICAgJltuYW1lPWFtb3VudF0ge1xuICAgICAgICBtYXgtd2lkdGg6IDcwcHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmN1cnJlbmN5IHtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgY29sb3I6ICMwMDA7XG4gICAgfVxuXG4gICAgLmFjdGlvbnMge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgcGFkZGluZzogMCAycHg7XG4gICAgICBidXR0b24ge1xuICAgICAgICBwYWRkaW5nOiAzcHggNnB4O1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICYubG9hZGluZyB7XG4gICAgICAgICAgcGFkZGluZzogM3B4IDIwcHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi5hbmFseXRpY3Mgd2lkZ2V0cy1jb21tb24tY29uZmlybS1tb2RhbCB7XG4gIC53aWRnZXQtcG9wdXAoKTtcbiAgLm1lc3NhZ2Uge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cbiAgICBwIHsgcGFkZGluZzogMHB4IDEwcHg7IH1cblxuICAgIGJ1dHRvbi5idG4geyBtYXJnaW4tdG9wOiAyMHB4OyB9XG5cbiAgICAubG9hZGVyIGkuZmEuZmEtc3Bpbm5lciB7XG4gICAgICBmb250LXNpemU6IDI2cHg7XG4gICAgfVxuICB9XG59XG4iLCIuY3VycmVuY3ktY29udmVyc2lvbnMge1xuICBpbWcge1xuICAgIHdpZHRoOiAxNXB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gICYucG9wb3ZlciAucG9wb3Zlci10aXRsZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG4gICAgY29sb3I6IHdoaXRlO1xuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuZWRpdGFibGUtdGl0bGUge1xuICB3aWR0aDogMTAwJTtcbiAgZmxleDogMTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgaGVpZ2h0OiAyMnB4O1xuXG4gIC50aXRsZSB7XG4gICAgdGV4dC10cmFuc2Zvcm06IEBpbXBhYy13aWRnZXQtdGl0bGUtdGV4dC10cmFuc2Zvcm07XG4gICAgLmZvbnQoQGltcGFjLXdpZGdldC10aXRsZS10ZXh0LXNpemUsNjAwLEBpbXBhYy13aWRnZXQtdGl0bGUtdGV4dC1jb2xvcik7XG4gICAgY3Vyc29yOiB0ZXh0O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICBsaW5lLWhlaWdodDogMS45O1xuICB9XG5cbiAgLmVkaXRhYmxlLXdyYXAge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgbWluLXdpZHRoOiAxMDAlO1xuICAgIC8vIG90aGVyd2lzZSwgd2hpdGUtc3BhY2UgaXMgb3ZlcnJpZGVuIGluIG1uby1lbnRlcnByaXNlXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgIC5lZGl0YWJsZS1jb250cm9scyB7XG4gICAgICBtaW4td2lkdGg6IDEwMCU7XG5cbiAgICAgIC5lZGl0YWJsZS1pbnB1dCB7XG4gICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogQGltcGFjLXdpZGdldC10aXRsZS10ZXh0LXRyYW5zZm9ybTtcbiAgICAgICAgLy8gNjVweCBpcyAuZWRpdGFibGUtYnV0dG9ucyB3aWR0aFxuICAgICAgICB3aWR0aDogflwiY2FsYygxMDAlIC0gNjVweClcIjtcbiAgICAgICAgcGFkZGluZzogMHB4IDNweDtcbiAgICAgIH1cblxuICAgICAgLmVkaXRhYmxlLWJ1dHRvbnMge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtd2lkZ2V0LXRpdGxlLWJnO1xuICAgICAgICBidXR0b24ge1xuICAgICAgICAgIG1hcmdpbjogMHB4IDBweCAwcHggNXB4O1xuICAgICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgICBwYWRkaW5nOiAwcHggNXB4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuaW5mby1wYW5lbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxNXB4O1xuICBsZWZ0OiAxNXB4O1xuICB3aWR0aDogflwiY2FsYygxMDAlIC0gMzBweClcIjtcbiAgbWF4LWhlaWdodDogflwiY2FsYygxMDAlIC0gMzBweClcIjtcbiAgaGVpZ2h0OiAxMDAlO1xuICB6LWluZGV4OiAxMDA7XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGJvcmRlcjogZG90dGVkIDFweCAjQjdDRENFO1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGZvbnQtZmFtaWx5OiBcIkxhdG8gU2VtaWJvbGRcIiwgXCJMYXRvXCI7XG5cbiAgei1pbmRleDogNDtcblxuICAmOmhvdmVyIHsgb3BhY2l0eTogMTsgfVxuXG4gIC5pLWhlYWRlciB7XG4gICAgLmZhIHsgZm9udC1zaXplOiAxOHB4OyB9XG4gICAgLmZhLWluZm8tY2lyY2xlIHsgZmxvYXQ6IGxlZnQ7IH1cbiAgICAuZmEtdGltZXMtY2lyY2xlIHsgY3Vyc29yOiBwb2ludGVyOyBmbG9hdDogcmlnaHQ7IH1cblxuICAgIGJhY2tncm91bmQtY29sb3I6ICNGRkM5Mjg7XG4gICAgY29sb3I6IEBpbXBhYy13aWRnZXQtcmV2ZXJzZS1jb2xvcjtcbiAgICBwYWRkaW5nOiA4cHg7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LWZhbWlseTogXCJMYXRvIE1lZGl1bVwiLCBcIkxhdG9cIjtcbiAgICBmb250LXNpemU6IDEycHg7XG4gIH1cblxuICAuaS1jb250ZW50IHtcbiAgICAuc2Nyb2xsYWJsZSgpO1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICB0ZXh0LWFsaWduOiBqdXN0aWZ5O1xuICAgIGZsZXg6IDE7XG5cbiAgICAucm93IHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDZweDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiA2cHg7XG4gICAgICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggQGltcGFjLWRhc2hib2FyZC1ib3JkZXJzLWNvbG9yO1xuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLmtleSB7XG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiBAc2NyZWVuLXNtLW1heCkgeyB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIGZvbnQtdmFyaWFudDogc21hbGwtY2FwcztcbiAgICAgIH1cblxuICAgICAgLnZhbHVlIHsgdGV4dC1hbGlnbjoganVzdGlmeTsgfVxuICAgIH1cbiAgfVxufVxuIiwiLmFuYWx5dGljcyAudGltZS1wZXJpb2QtaW5mbyB7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgY29sb3I6ICNBQkM0QzY7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAudG9wLWxpbmUgLnRvcC1idXR0b25zIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIG1hcmdpbi10b3A6IC0xcHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHBhZGRpbmctbGVmdDogMTBweDtcblxuICAudG9wLWJ1dHRvbnMtd3JhcHBlciB7XG4gICAgLnRvcC1idXR0b24ge1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICBjb2xvcjogQGltcGFjLXdpZGdldC10b3AtYnV0dG9ucy1jb2xvcjtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgd2lkdGg6IDE3cHg7XG5cbiAgICAgICY6YWN0aXZlLCAmOmZvY3VzIHsgYm94LXNoYWRvdzogbm9uZTsgfVxuXG4gICAgICAmLmJ0bi1pbmZvIHtcbiAgICAgICAgZm9udC1zaXplOiAxN3B4O1xuICAgICAgICBtYXJnaW4tdG9wOiAxcHg7XG4gICAgICAgICY6aG92ZXIgeyBjb2xvcjogI0ZGQzkyODsgfVxuICAgICAgfVxuICAgICAgJi5idG4tZXhwb3J0IHtcbiAgICAgICAgZm9udC1zaXplOiAxN3B4O1xuICAgICAgICBtYXJnaW4tdG9wOiAxcHg7XG4gICAgICAgICY6aG92ZXIgeyBjb2xvcjogQG1ibHVlOyB9XG4gICAgICB9XG4gICAgICAmLmJ0bi1yZWZyZXNoIHtcbiAgICAgICAgZm9udC1zaXplOiAxN3B4O1xuICAgICAgICBtYXJnaW4tdG9wOiAxcHg7XG4gICAgICAgICY6aG92ZXIgeyBjb2xvcjogQG1ibHVlOyB9XG4gICAgICB9XG4gICAgICAmLmJ0bi1lZGl0IHtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICAmOmhvdmVyLCAmLmVkaXQtbW9kZSB7IGNvbG9yOiBkYXJrZW4oQG1ncmVlbiwxMCUpOyB9XG4gICAgICB9XG4gICAgICAmLmJ0bi1jbG9zZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgJjpob3ZlciB7IGNvbG9yOiBAcGluazsgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLnNlbGVjdC1hY2NvdW50IHtcbiAgcGFkZGluZzogMHB4IDVweDtcbn0iLCIuYW5hbHl0aWNzIC5zZXR0aW5ncy5hY2NvdW50aW5nLWJlaGF2aW91ciB7XG5cbiAgLmJ0bi5idG4tcHJpbWFyeSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbihAaW1wYWMtd2lkZ2V0LWxpbmstY29sb3IsIDEwJSk7XG4gICAgYm9yZGVyOiBzb2xpZCAxcHggQGltcGFjLXdpZGdldC1saW5rLWNvbG9yO1xuICAgICYuZm9jdXMsICYuYWN0aXZlIHsgYmFja2dyb3VuZC1jb2xvcjogQGltcGFjLXdpZGdldC1saW5rLWNvbG9yOyB9XG4gIH1cblxufVxuIiwiLmFuYWx5dGljcyAuc2V0dGluZ3MuYXR0YWNoLWtwaXMge1xuICAuYXR0YWNoLWtwaSB7XG4gICAgcGFkZGluZzogOHB4IDVweDtcblxuICAgIGZvcm0gLnJvdyB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xuICAgIH1cblxuICAgIC5hdHRhY2gta3BpLWZvcm0ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICAgICAgcGFkZGluZzogNXB4O1xuICAgIH1cblxuICAgIGZvcm0gLnJvdy5rcGktZGVzY3JpcHRpb24ge1xuICAgICAgcGFkZGluZzogMTBweCAycHg7XG4gICAgICBzcGFuIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZm9ybS5hdHRhY2gta3BpLWZvcm0ge1xuICAgICAgaW5wdXQuYXR0YWNoLXRhcmdldCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmVycm9yLW1lc3NhZ2VzIHtcbiAgICAgIGNvbG9yOiBAYnJhbmQtZGFuZ2VyO1xuICAgICAgd2lkdGg6IDEyMHB4O1xuICAgIH1cbiAgfVxuXG4gIC5hdHRhY2hlZC1rcGlzIHtcbiAgICBwYWRkaW5nOiA1cHg7XG4gIH1cblxuICAubGlzdC1ncm91cC1pdGVtLmF0dGFjaGVkLWtwaSB7XG4gICAgcGFkZGluZzogNXB4IDEwcHg7XG5cbiAgICAuYXR0YWNoZWQta3BpLW5hbWUge1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIHdpZHRoOiA3NSU7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICBtYXJnaW4tdG9wOiAzcHg7XG4gICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB9XG5cbiAgICAuYWN0aW9ucyB7XG4gICAgICBwYWRkaW5nLXRvcDogMnB4O1xuICAgICAgLmFsZXJ0cy1jb25maWcge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIHBhZGRpbmctbGVmdDogNHB4O1xuICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDQwcHg7XG4gICAgICAgIHdpZHRoOiAyMXB4O1xuICAgICAgICBjb2xvcjogQG1ibHVlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgICAgYm9yZGVyOiBzb2xpZCAxcHggQG1ibHVlO1xuXG4gICAgICAgICY6aG92ZXIgeyBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgICAgIH1cbiAgICAgIC5lZGl0LWF0dGFjaGVkLWtwaSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgaSB7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICAgICAgICB3aWR0aDogMjFweDtcbiAgICAgICAgICBjb2xvcjogQG1ibHVlO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgICBwYWRkaW5nOiAzcHggNXB4IDVweCA1cHg7XG4gICAgICAgICAgYm9yZGVyOiBzb2xpZCAxcHggQG1ibHVlO1xuICAgICAgICAgICY6aG92ZXIgeyBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLnJlbW92ZS1hdHRhY2hlZC1rcGkge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGkge1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgICAgICAgd2lkdGg6IDIxcHg7XG4gICAgICAgICAgY29sb3I6IEBicmFuZC1kYW5nZXI7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgIHBhZGRpbmc6IDNweCA1cHggNXB4IDVweDtcbiAgICAgICAgICBib3JkZXI6IHNvbGlkIDFweCBAYnJhbmQtZGFuZ2VyO1xuICAgICAgICAgICY6aG92ZXIgeyBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLnNlbGVjdC1hY2NvdW50IHtcbiAgcGFkZGluZzogMHB4IDVweDtcbn0iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3MuY2hhcnQtZmlsdGVycyB7XG4gIC5yb3cge1xuICAgIG1hcmdpbjogMHB4O1xuICB9XG4gIGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi1yaWdodDogM3B4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgd2lkdGg6IDEzcHg7XG4gICAgaGVpZ2h0OiAxM3B4O1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogLTFweDtcbiAgICBvdXRsaW5lOiBub25lO1xuICB9XG4gIGlucHV0W3R5cGU9XCJyYW5nZVwiXSB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG4iLCIuYW5hbHl0aWNzIC5zZXR0aW5ncy5kYXRlcy1waWNrZXIge1xuICBoNSB7IGRpc3BsYXk6IG5vbmU7IH1cblxuICBidXR0b24uYnRuLmJ0bi1zbSB7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgJi5kYXRlLWJ1dHRvbiB7IG1hcmdpbjogMHB4IDVweDsgfVxuICAgICYuYnRuLWRhbmdlciB7IGRpc3BsYXk6IG5vbmU7IH1cbiAgICAmLmJ0bi1pbmZvIHsgYm9yZGVyLXJhZGl1czogM3B4OyB9XG4gIH1cblxuICAudG9vbHRpcC1pbm5lciB7IHRleHQtdHJhbnNmb3JtOiBub25lOyB9XG5cbiAgLmRyb3Bkb3duLW1lbnUgPiBsaSA+IGRpdiA+IHRhYmxlIHsgb3V0bGluZTogbm9uZTsgfVxufVxuIiwiLmFuYWx5dGljcyAuc2V0dGluZ3MuZm9yZWNhc3QtcGF5cm9sbCB7XG4gIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgICAud2lkZ2V0LWxpbmUge1xuICAgICAgcGFkZGluZzogNXB4IDEwcHggNXB4IDE4cHg7XG4gICAgICAuYWx0ZXJuYXRlLWJnKCNmM2Y0ZjQpO1xuICAgICAgLmZhIHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgJi5mYS10b2dnbGUtb24ge1xuICAgICAgICAgIGNvbG9yOiBAaW1wYWMtd2lkZ2V0LWxpbmstY29sb3I7XG4gICAgICAgIH1cbiAgICAgICAgJi5mYS10b2dnbGUtb2ZmIHtcbiAgICAgICAgICBjb2xvcjogQGltcGFjLXdpZGdldC10ZXh0LWNvbG9yLW1lZGl1bTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLmhpc3QtbW9kZS1jaG9zZXIge1xuICBtYXgtaGVpZ2h0OiA3MHB4O1xuXG4gIFtjb21tb24tdGltZS1wZXJpb2QtaW5mb10ge1xuICAgIHBhZGRpbmctYm90dG9tOiA4cHg7XG4gIH1cblxuICAub3B0aW9ucyB7XG4gICAgd2lkdGg6IDE1MHB4O1xuICAgIG1hcmdpbjogYXV0bztcbiAgICBwYWRkaW5nLWJvdHRvbTogOHB4O1xuICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCAjZTZlNmU2O1xuICAgIC5mb250KEBpbXBhYy13aWRnZXQtaGlzdC10ZXh0LXNpemUsNTAwLEBpbXBhYy13aWRnZXQtaGlzdC10ZXh0LWNvbG9yKTtcbiAgICBhIHtcbiAgICAgIC5mb250KEBpbXBhYy13aWRnZXQtaGlzdC10ZXh0LXNpemUsNTAwLEBpbXBhYy13aWRnZXQtaGlzdC10ZXh0LWNvbG9yKTtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBAaW1wYWMtd2lkZ2V0LWhpc3QtdGV4dC10cmFuc2Zvcm07XG4gICAgICAmLmFjdGl2ZSB7XG4gICAgICAgIGNvbG9yOiBAaW1wYWMtd2lkZ2V0LWxpbmstY29sb3I7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC5hcnJvdy1jb250YWluZXIge1xuICAgIHdpZHRoOiAyOHB4O1xuICAgIGhlaWdodDogMjhweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAtMTRweDtcbiAgICBtYXJnaW46IGF1dG87XG4gICAgJi5yaWdodCB7XG4gICAgICBsZWZ0OiA0NnB4O1xuICAgIH1cbiAgICAmLmxlZnQge1xuICAgICAgbGVmdDogLTMwcHg7XG4gICAgfVxuICAgIC5hcnJvdy1ib3JkZXIge1xuICAgICAgYm9yZGVyLXRvcDogMTRweCBzb2xpZCAjZTZlNmU2O1xuICAgICAgYm9yZGVyLWxlZnQ6IDE0cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItcmlnaHQ6IDE0cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICB3aWR0aDogMHB4O1xuICAgICAgaGVpZ2h0OiAwcHg7XG4gICAgfVxuICAgIC5hcnJvdyB7XG4gICAgICBib3JkZXItdG9wOiAxNHB4IHNvbGlkIEBpbXBhYy13aWRnZXQtYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1sZWZ0OiAxNHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyLXJpZ2h0OiAxNHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgdG9wOiAxMnB4O1xuICAgICAgd2lkdGg6IDBweDtcbiAgICAgIGhlaWdodDogMHB4O1xuICAgIH1cbiAgfVxufVxuIiwiLmFuYWx5dGljcyAuc2V0dGluZ3MubGltaXQtZW50cmllcyB7XG4gIGNvbG9yOiBAaW1wYWMtd2lkZ2V0LWxpbWl0LWVudHJpZXMtY29sb3I7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYm9yZGVyLWJvdHRvbTogZGFzaGVkIDFweCAjRTZFNkU2O1xuICBwYWRkaW5nLWJvdHRvbTogOHB4O1xuXG4gIGEub3B0aW9uIHtcbiAgICAmLmJhZGdlIHtcbiAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy13aWRnZXQtbGltaXQtZW50cmllcy1jb2xvcjtcbiAgICB9XG4gIH1cblxufVxuIiwiLmFuYWx5dGljcyAuc2V0dGluZ3Mub2Zmc2V0cyB7XG4gIC5vZmZzZXQtdmFsdWUge1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBmb250LXNpemU6IDEzcHg7XG4gIH1cblxuICAub2Zmc2V0LXZhbHVlIC5mYS10cmFzaC1vIHtcbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiBAYnJhbmQtZGFuZ2VyO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgfVxuXG4gIGlucHV0IHsgd2lkdGg6IDc1JTsgfVxuICBidXR0b24geyB3aWR0aDogMzBweDsgfVxufVxuIiwiLmFuYWx5dGljcyAuc2V0dGluZ3Mub3JnYW5pemF0aW9ucyB7XG4gIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgICAud2lkZ2V0LWxpbmUge1xuICAgICAgcGFkZGluZzogNXB4IDEwcHggNXB4IDE4cHg7XG4gICAgICAuYWx0ZXJuYXRlLWJnKCNmM2Y0ZjQpO1xuICAgICAgLmZhIHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgJi5mYS10b2dnbGUtb24sICYuZmEtY2hlY2stY2lyY2xlIHtcbiAgICAgICAgICBjb2xvcjogQGltcGFjLXdpZGdldC1saW5rLWNvbG9yO1xuICAgICAgICB9XG4gICAgICAgICYuZmEtdG9nZ2xlLW9mZiwgJi5mYS1jaXJjbGUtdGhpbiB7XG4gICAgICAgICAgY29sb3I6IEBpbXBhYy13aWRnZXQtdGV4dC1jb2xvci1tZWRpdW07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5wYXJhbS1zZWxlY3RvciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAmLmNsYXNzaWMge1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgc2VsZWN0IHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAyNXB4O1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICBtYXJnaW46IDBweCAwcHggNXB4IDBweDtcbiAgICB9XG4gIH1cblxuICBhIHtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGNvbG9yOiBAaW1wYWMtd2lkZ2V0LXBhcmFtLXNlbGVjdG9yLWNvbG9yO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIH1cbiAgLm9wdGlvbnMtY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBtaW4td2lkdGg6IDE1MHB4O1xuICAgIG1heC1oZWlnaHQ6IDIwMHB4O1xuICAgIHotaW5kZXg6IDk5OTtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICAuYm94LXNoYWRvdyhyZ2IoMCwgMCwgMCkgMHB4IDNweCAxNXB4IC0zcHgpO1xuXG4gICAgLnBhcmFtLXNlbGVjdG9yLWxhYmVsIHtcbiAgICAgIHBhZGRpbmc6IDNweCA1cHg7XG4gICAgICAuZm9udChpbmhlcml0LDUwMCxibGFjayk7XG4gICAgICBjdXJzb3I6IHRleHQ7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuOTtcbiAgICB9XG4gICAgLnBhcmFtLXNlbGVjdG9yLWxhYmVsOmhvdmVyIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy13aWRnZXQtcGFyYW0tc2VsZWN0b3ItY29sb3I7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgfVxuXG4gICAgJjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgICAgd2lkdGg6IDhweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbihAbGlnaHRncmF5LDUlKTtcbiAgICB9XG5cbiAgICAmOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtd2lkZ2V0LXBhcmFtLXNlbGVjdG9yLWNvbG9yO1xuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oQGltcGFjLXdpZGdldC1wYXJhbS1zZWxlY3Rvci1jb2xvciw1JSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIuYW5hbHl0aWNzIC5zZXR0aW5ncy5wYXJhbXMtY2hlY2tib3hlcyB7XG4gIHBhZGRpbmc6IDJweCAwcHg7XG4gIGlucHV0IHtcbiAgICBtYXJnaW46IDA7XG4gICAgaGVpZ2h0OiBpbmhlcml0O1xuICB9XG4gIHNwYW4ge1xuICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gIH1cbiAgbGFiZWwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgbGluZS1oZWlnaHQ6IDE0cHg7XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5wYXJhbXMtcGlja2VyIHtcbiAgcGFkZGluZzogMHB4IDEwcHg7XG4gIC5wYXJhbWV0ZXIge1xuICAgIG1hcmdpbjogMHB4IDNweCAzcHggMHB4O1xuICAgIHBhZGRpbmc6IDNweCA1cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGltcGFjLXdpZGdldC1wYXJhbXMtcGlja2VyLWJnO1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBib3JkZXI6IHNvbGlkIDFweCBAaW1wYWMtd2lkZ2V0LXBhcmFtcy1waWNrZXItYmc7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGN1cnNvcjogbW92ZTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gICAgICBtYXJnaW46IDBweCAtM3B4IDBweCAzcHg7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gICAgLmJhZGdlIHtcbiAgICAgIG1hcmdpbi1yaWdodDogM3B4O1xuICAgICAgZm9udC1zaXplOiAxMHB4O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKEBpbXBhYy13aWRnZXQtYmFja2dyb3VuZC1jb2xvciwgNSUpO1xuICAgICAgY29sb3I6IEBpbXBhYy13aWRnZXQtcGFyYW1zLXBpY2tlci1iZztcbiAgICAgIHBhZGRpbmc6IDJweCA2cHg7XG4gICAgfVxuXG4gICAgJi51bmNoZWNrZWQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgIGJvcmRlci1jb2xvcjogQGltcGFjLXdpZGdldC1wYXJhbXMtcGlja2VyLXVuY2hlY2tlZC1iZztcbiAgICAgIC5iYWRnZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy13aWRnZXQtcGFyYW1zLXBpY2tlci11bmNoZWNrZWQtYmc7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCIuYW5hbHl0aWNzIC5zZXR0aW5ncy50YWctZmlsdGVyIHtcbiAgcGFkZGluZzogMHB4IDVweDtcblxuICAuYnRuLmJ0bi1kZWZhdWx0IHtcbiAgICBoZWlnaHQ6IDMycHg7XG4gICAgd2lkdGg6IDMwcHg7XG4gIH1cblxuICAudGFnLWxpbmVzLWNvbnRhaW5lciB7XG4gICAgcGFkZGluZzogMHB4IDEwcHg7XG5cbiAgICAudGFnLWxpbmUge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAudGFncy1jb2wgeyBwb3NpdGlvbjogc3RhdGljOyB9XG5cbiAgICAgIHRhZ3MtaW5wdXQge1xuICAgICAgICAudGFncyB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgICAgYm9yZGVyOiBzb2xpZCAxcHggI2NjYztcbiAgICAgICAgICAudGFnLWl0ZW0ge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogIzc5YTJiYjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmhvc3QgeyBwb3NpdGlvbjogc3RhdGljOyB9XG4gICAgfVxuICB9XG59XG4iLCIuYW5hbHl0aWNzIC5zZXR0aW5ncy50aW1lLXBlcmlvZCB7XG4gIHBhZGRpbmc6IDBweCA1cHg7XG5cbiAgc2VsZWN0IHtcbiAgICBoZWlnaHQ6IDIycHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgXG4gICYgPiAucm93IHtcbiAgICBtYXJnaW46IDBweCAtNXB4IDdweCAtNXB4O1xuICAgICYgPiBkaXYge1xuICAgICAgcGFkZGluZzogMHB4IDVweDtcbiAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgfVxuXG4gICAgLnN1Yi1zZXR0aW5nIHsgcGFkZGluZzogNXB4OyB9XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy53aWR0aCB7XG4gIGZsb2F0OiByaWdodDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBpIHtcbiAgICBjb2xvcjogc2lsdmVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAmLnJlZHVjZSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IC0xMHB4O1xuICAgIH1cbiAgICAmLmV4cGFuZCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IC0zcHg7XG4gICAgfVxuICB9XG59IiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtYXNzZXRzLWxpYWJpbGl0eS1zdW1tYXJ5IHtcbiAgLnBhcmFtLXNlbGVjdG9yIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbiAgLmxlZ2VuZCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBtYXgtaGVpZ2h0OiA5MHB4O1xuXG4gICAgLnRpdGxlIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGJvcmRlci1ib3R0b206IGRhc2hlZCAxcHggQGltcGFjLXdpZGdldC1ib3JkZXJzLWNvbG9yO1xuICAgIH1cbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtYXNzZXRzLXN1bW1hcnkge1xuICAubGVnZW5kIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIG1heC1oZWlnaHQ6IDExNXB4O1xuXG4gICAgLnRpdGxlIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGJvcmRlci1ib3R0b206IGRhc2hlZCAxcHggQGltcGFjLXdpZGdldC1ib3JkZXJzLWNvbG9yO1xuICAgIH1cbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtYXNzZXRzLXZzLWxpYWJpbGl0aWVzIHtcbiAgLmxlZ2VuZCA+IC50aXRsZSBzcGFuIHtcbiAgICBtYXJnaW4tbGVmdDogM3B4O1xuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1iYWxhbmNlIHtcbiAgaDMge1xuICAgIC5sZWZ0LXRoaW4oMzBweCk7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG5cbiAgLnByaWNlIHtcbiAgICAuY2VudGVyLWJvbGQoMHB4KTtcbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtYmFsYW5jZS1zaGVldCB7XG4gIC50YWxsLXdpZGdldCgpO1xuICAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gICAgLnNjcm9sbGFibGUoc2Nyb2xsKTtcbiAgICBtYXgtaGVpZ2h0OiA0OTBweDtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogQHNjcmVlbi14cy1tYXgpIHtcbiAgICAgIC5yb3cud2lkZ2V0LWxpbmUge1xuICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkgeyBib3JkZXItYm90dG9tOiBkYXNoZWQgMXB4IEBpbXBhYy13aWRnZXQtYm9yZGVycy1jb2xvcjsgfVxuICAgICAgfVxuICAgIH1cbiAgICAucm93LndpZGdldC1saW5lLmhlYWRlciA+IFtjbGFzcyo9J2NvbC0nXSB7IHBvc2l0aW9uOiBzdGF0aWM7IH1cblxuICAgICYubm8tc2Nyb2xsIHtcbiAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIH1cbiAgfVxuXG4gIC5uby1kYXRhLWJsb2NrIHtcbiAgICAuY2VudGVyLXRoaW4oKTtcbiAgICBtYXJnaW46IDE1cHggMHB4O1xuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLWJhbGFuY2Uge1xuICAudGFsbC13aWRnZXQoKTtcblxuICAuZGF0YS1jb250YWluZXIge1xuICAgIGhlaWdodDogflwiY2FsYyhAe2ltcGFjLWJpZy13aWRnZXQtc2l6ZX0gLSA1MHB4KVwiO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLmxlZnQtcGFuZWwge1xuICAgIHdpZHRoOiAxODBweDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbiAgfVxuXG4gICNjYXNoLWJhbGFuY2UtbGVnZW5kIHtcbiAgICAuaGVhZGVyIHtcbiAgICAgIC5ncm91cC1pdGVtIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWluLWhlaWdodDogNDVweDtcbiAgICAgICAgbWFyZ2luOiAzcHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgcGFkZGluZzogM3B4O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtd2lkZ2V0LW1lbnVzLWhvdmVyLWJhY2tncm91bmQtY29sb3I7XG4gICAgICAgIH1cbiAgICAgICAgaSB7XG4gICAgICAgICAgZm9udC1zaXplOiAxOXB4O1xuICAgICAgICAgIHBhZGRpbmc6IDRweDtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAxcHhcbiAgICAgICAgfVxuICAgICAgICBzcGFuIHsgY29sb3I6IEBpbXBhYy13aWRnZXQtdGV4dC1jb2xvcjsgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5sZWdlbmQtaXRlbS1pY29uIHtcbiAgICB3aWR0aDogMTZweDtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gIH1cblxuICAucmlnaHQtcGFuZWwge1xuICAgIHdpZHRoOiB+XCJjYWxjKDEwMCUgLSAxODBweClcIjtcbiAgICBmbG9hdDogcmlnaHQ7XG5cbiAgICAvLyBIaWdoY2hhcnQgY29udGFpbmVyXG4gICAgLmNhc2gtYmFsYW5jZS1jaGFydCB7XG4gICAgICBoZWlnaHQ6IH5cImNhbGMoQHtpbXBhYy1iaWctd2lkZ2V0LXNpemV9IC0gNTBweClcIjtcbiAgICB9XG4gIH1cblxuICAuZGF0ZXMtcGlja2VyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1wcm9qZWN0aW9uIHtcbiAgLnRhbGwtd2lkZ2V0KCk7XG5cbiAgLmNhc2gtcHJvamVjdGlvbi1jaGFydCB7XG4gICAgaGVpZ2h0OiB+XCJjYWxjKEB7aW1wYWMtYmlnLXdpZGdldC1zaXplfSAtIDUwcHgpXCI7XG4gIH1cblxuICAuaGlnaGNoYXJ0cy1sZWdlbmQtaXRlbSB7XG4gICAgcmVjdC5oaWdoY2hhcnRzLXBvaW50IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgc3BhbiB7XG4gICAgICB3aWR0aDogMTEwcHg7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBpbWcge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiA1NXB4O1xuICAgICAgICBoZWlnaHQ6IDI1cHg7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmRhdGVzLXBpY2tlciB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gIH1cblxuICB0cmFuc2FjdGlvbnMtbGlzdCB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLXN1bW1hcnkge1xuICAuZHJpbGwtZG93bi13aWRnZXQoKTtcbiAgLnJpZ2h0LXBhbmVsIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgICBtYXgtaGVpZ2h0OiAyMTVweDtcbiAgfVxuXG4gIC5yb3cubGluZXMtZ3JvdXAuY2FzaCB7XG4gICAgYm9yZGVyLXRvcDogc29saWQgMXB4O1xuICAgIGJvcmRlci1ib3R0b206IGRvdWJsZTtcbiAgfVxufVxuIiwiLy8gLS0tIFJldXNhYmxlIHdpZGdldCBzdHlsZSBtaXhpbnNcblxuLy8gUGF5cm9sbC1TdW1tYXJ5IC0gUHJvZml0LWFuZC1Mb3NzXG4uZHJpbGwtZG93bi13aWRnZXQgKCkge1xuICAudGFsbC13aWRnZXQoKTtcblxuICAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gICAgbWF4LWhlaWdodDogNTQwcHg7XG4gICAgLmxpbmVzLWdyb3VwIC53aWRnZXQtbGluZSB7XG4gICAgICAuc2VsZWN0YWJsZSgpO1xuICAgIH1cbiAgfVxuXG4gIC5yaWdodC1wYW5lbCB7XG4gICAgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICAgICAgLnNjcm9sbGFibGUoYXV0byk7XG4gICAgICBtYXgtaGVpZ2h0OiAyMzVweDtcbiAgICB9XG4gIH1cblxuICAubm8tZWxlbWVudCB7XG4gICAgLmNlbnRlci10aGluKCk7XG4gIH1cbn1cblxuLy8gVG9wIGN1c3RvbWVycyBzdW1tYXJ5IC0gU2FsZXMgY3ljbGUuLi5cbi5zaW1wbGUtc3VtbWFyeS13aWRnZXQoKSB7XG4gIC5jaGFydC1jb250YWluZXIge1xuICAgIG1heC13aWR0aDogNDEwcHg7XG4gIH1cbiAgLmxlZ2VuZCB7XG4gICAgbWF4LWhlaWdodDogMjhweDtcbiAgfVxufVxuXG4vLyBJbnZvaWNlcyBsaXN0IC0gc2FsZXMgbGlzdFxuLnNpbXBsZS1saXN0LXdpZGdldCgpIHtcbiAgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICAgIG1heC1oZWlnaHQ6IDIzMHB4O1xuICAgIC53aWRnZXQtbGluZSB7XG4gICAgICAuYWx0ZXJuYXRlLWJnKCk7XG4gICAgICAmLmhlYWRlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy13aWRnZXQtYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gV29ya2ZvcmNlLVN1bW1hcnkgLSBTYWxhcmllcy1TdW1tYXJ5XG4uZXhwYW5kYWJsZS1maWx0ZXJhYmxlLXdpZGdldCgpIHtcbiAgaDMubGVmdCB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbWQtbWluKSB7IG1hcmdpbi10b3A6IDY5cHg7IH1cbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbiAgaDMucmVkdWNlZC1sZWZ0IHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1tZC1taW4pIHsgbWFyZ2luLXRvcDogMTBweDsgfVxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICBoMy5yaWdodCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbiAgLnByaWNlIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG4gIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgICBtYXgtaGVpZ2h0OiA3NXB4O1xuICAgIC53aWRnZXQtbGluZSB7XG4gICAgICBmb250LXNpemU6IDExcHg7XG4gICAgfVxuICB9XG4gIC5yaWdodC1wYW5lbCAuY2hhcnQtY29udGFpbmVyIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi14cy1taW4pIGFuZCAobWF4LXdpZHRoOiBAc2NyZWVuLXNtLW1heCkgeyBtYXgtd2lkdGg6IDMyMHB4OyB9XG4gIH1cbn1cblxuLy8gTGVhZHMgZnVubmVsIC0gT3Bwb3J0dW5pdGllcyBmdW5uZWxcbi5mdW5uZWwtd2lkZ2V0KCkge1xuICAudGFsbC13aWRnZXQoKTtcbiAgLmZ1bm5lbC1jb250YWluZXIge1xuICAgIHdpZHRoOiA5NSU7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIG1hcmdpbi10b3A6IDE1cHg7XG4gICAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgICBtYXgtaGVpZ2h0OiBAaW1wYWMtYmlnLXdpZGdldC1zaXplIC0gNjBweDtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgfVxuICAucmlnaHQtcGFuZWwge1xuICAgIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgICAgIG1heC1oZWlnaHQ6IEBpbXBhYy1iaWctd2lkZ2V0LXNpemUgLSAyMHB4O1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgICAgLndpZGdldC1saW5lIHtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2xhc3MtY29tcGFyaXNvbiB7XG4gIC5wYXJhbS1zZWxlY3RvciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG4gIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgICBtYXgtaGVpZ2h0OiA5NHB4O1xuICAgIGNvbG9yOiAjNjI2ZDZkO1xuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jb21wYXJpc29uIHtcbiAgLnRhbGwtd2lkZ2V0KCk7XG5cbiAgLmNoYXJ0LWNvbnRhaW5lciB7XG4gICAgQG1lZGlhIHByaW50IHsgbWF4LXdpZHRoOiA4MCUgIWltcG9ydGFudDsgfVxuICB9XG5cbiAgLmFkZC1hY2NvdW50IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDQwcHg7XG4gICAgYm90dG9tOiAzMHB4O1xuICAgIHdpZHRoOiAxNjBweDtcbiAgICBzZWxlY3Qge1xuICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGltcGFjLXdpZGdldC1saW5rLWNvbG9yO1xuICAgICAgY29sb3I6IEBpbXBhYy13aWRnZXQtYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oQGltcGFjLXdpZGdldC1saW5rLWNvbG9yLDEwJSk7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oQGltcGFjLXdpZGdldC1saW5rLWNvbG9yLDEwJSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oQGltcGFjLXdpZGdldC1saW5rLWNvbG9yLDEwJSk7XG4gICAgICB9XG4gICAgICBvcHRpb24ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtd2lkZ2V0LWJhY2tncm91bmQtY29sb3I7XG4gICAgICAgIGNvbG9yOiBsaWdodGVuKEBpbXBhYy13aWRnZXQtdGV4dC1jb2xvciw0MCUpO1xuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgY29sb3I6IEBpbXBhYy13aWRnZXQtYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBidXR0b24uY2xvc2Uge1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgfVxuICAubGVnZW5kIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIG1heC1oZWlnaHQ6IDEwM3B4O1xuICB9XG4gIC5yb3cge1xuICAgIG1hcmdpbjogMDtcbiAgfVxuICAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIG1heC1oZWlnaHQ6IEBpbXBhYy13aWRnZXQtYWNjb3VudHMtY29tcGFyaXNvbi1saW5lcy1jb250YWluZXItbWF4LWhlaWdodDtcbiAgICBtYXJnaW4tYm90dG9tOiA2NXB4O1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICB9XG5cbiAgLnNldHRpbmdzLnBhcmFtcy1jaGVja2JveGVzIHtcbiAgICBtYXJnaW4tbGVmdDogMTNweDtcbiAgfVxuXG4gIC5jb21wYXJhYmxlLWVycm9yIGg1IHtcbiAgICBtYXJnaW4tbGVmdDogMTNweDtcbiAgICBjb2xvcjogQGltcGFjLW5lZ2F0aXZlO1xuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jdXN0b20tY2FsY3VsYXRpb24ge1xuICBoMyB7XG4gICAgbWFyZ2luLXRvcDogODVweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIH1cbiAgLmxlZ2VuZCB7IG1heC1oZWlnaHQ6IDEyNXB4OyB9XG59XG5cbi5hbmFseXRpY3MubW9kYWwtY3VzdG9tLWNhbGN1bGF0aW9uIHtcbiAgbWFyZ2luOiAwcHg7XG4gIHBhZGRpbmc6IDBweDtcbn1cblxuLmFuYWx5dGljcy5tb2RhbC1jdXN0b20tY2FsY3VsYXRpb24gLm1vZGFsLWJvZHkge1xuICAuZWRpdCB7XG4gICAgLmVkaXQtcGFuZWwtc3R5bGUoKTtcbiAgICBwYWRkaW5nOiA1cHg7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWRldGFpbGVkLWNsYXNzaWZpY2F0aW9ucyB7XG4gIC50YWxsLXdpZGdldCgpO1xuICAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gICAgLnNjcm9sbGFibGUoc2Nyb2xsKTtcbiAgICBtYXgtaGVpZ2h0OiA1NDBweDtcbiAgfVxuXG4gIC5hY2NvdW50LWNsYXNzLXRpdGxlIHtcbiAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgbWFyZ2luLWxlZnQ6IDExcHg7XG4gIH1cblxuICAudGltZS1wZXJpb2QtaW5mbyB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIH1cblxuICAud2lkZ2V0LWxpbmUuaGVhZGVyLnNvcnRpbmcgIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcbiAgfVxufVxuXG5cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWV4cGVuc2Utd2VpZ2h0IHtcbiAgLmxlZ2VuZCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBtYXgtaGVpZ2h0OiAxMTVweDtcblxuICAgIC50aXRsZSB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1leHBlbnNlcy1yZXZlbnVlIHtcbiAgLmxlZ2VuZCB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIH1cblxuICAuc2V0dGluZ3MucGFyYW1zLWNoZWNrYm94ZXMge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBtYXJnaW4tbGVmdDogMHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtaW52b2ljZXMtbGlzdCB7XG4gIC8vIGNvbXBvbmVudCBzcGVjaWZpYyBzdHlsZXNcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAudGFsbC13aWRnZXQoKTtcblxuICB0cmFuc2FjdGlvbnMtbGlzdCB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICB9XG5cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWxpdmUtYmFsYW5jZSB7XG4gIGgzIHtcbiAgICAuY2VudGVyLWJvbGQoMHB4KTtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHRleHQtc2hhZG93OiAxcHg7XG4gIH1cblxuICAuc3RhdGVtZW50LXRpdGxlIHtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgfVxuXG4gIC5iYWxhbmNlLXRpdGxlIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gIH1cblxuICAuY3VycmVuY3ktY2VudGVyZWQge1xuICAgIC5jZW50ZXItc21hbGwoKVxuICB9XG5cbiAgLmhlYWRlcnMge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gIC5zcGFjZXIge1xuICAgIG1pbi1oZWlnaHQ6IDMwcHg7XG4gIH1cblxuICAucHJpY2Uge1xuICAgIC5jZW50ZXItYm9sZCgwcHgpO1xuICB9XG5cbiAgLm5lZ2F0aXZlMiB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1wYXlhYmxlLXJlY2VpdmFibGUge1xuICBoMyB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG4gIC5sZWdlbmQge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB9XG4gIC5wYXlhYmxlIHtcbiAgICBtYXJnaW4tdG9wOiAxNXB4O1xuICB9XG4gIC5wcmljZSB7XG4gICAgLmNlbnRlci1ib2xkKDBweCk7XG4gIH1cbn0iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1wcm9maXQtYW5kLWxvc3Mge1xuICAuZHJpbGwtZG93bi13aWRnZXQoKTtcblxuICAucm93LmxpbmVzLWdyb3VwLnByb2ZpdCB7XG4gICAgYm9yZGVyLXRvcDogc29saWQgMXB4O1xuICAgIGJvcmRlci1ib3R0b206IGRvdWJsZTtcbiAgfVxuXG4gIC5yaWdodC1wYW5lbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gICAgbWF4LWhlaWdodDogMjE1cHg7XG4gIH1cblxuICAucm93LndpZGdldC1saW5lLmhlYWRlciA+IFtjbGFzcyo9J2NvbC0nXSB7IHBvc2l0aW9uOiBzdGF0aWM7IH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLXJhdGlvcyB7XG4gIFxuICAubGVmdC1wYW5lbCB7XG4gICAgbWF4LWhlaWdodDogMjMwcHg7XG4gICAgb3ZlcmZsb3cteTogYXV0bzsgXG5cbiAgICAuc2VwYXJhdG9yIHtcbiAgICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCBAaW1wYWMtd2lkZ2V0LXRleHQtY29sb3I7XG4gICAgICB3aWR0aDogNzUlO1xuICAgIH1cbiAgICAubWVtYmVyIHtcbiAgICAgIHBhZGRpbmctdG9wOiAyMHB4O1xuICAgICAgcGFkZGluZy1ib3R0b206IDIwcHg7XG4gICAgfVxuICAgIC5tZW1iZXIgLnByaWNlIHtcbiAgICAgIG1hcmdpbi10b3A6IDBweDtcbiAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICB9XG4gICAgYnV0dG9uIHsgb3V0bGluZTogbm9uZTsgfVxuICB9XG5cbiAgLmxlZnQtcGFuZWwuc2ltdWxhdGlvbiB7XG4gICAgLm1lbWJlciB7XG4gICAgICBwYWRkaW5nLXRvcDogNXB4O1xuICAgICAgLmxlZ2VuZCB7IGRpc3BsYXk6IG5vbmU7IH1cbiAgICAgIC5wcmljZSB7IHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gICAgfVxuICAgIC5zZXBhcmF0b3IgeyB3aWR0aDogMTAwJTsgfVxuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1lbXBsb3llZS1kZXRhaWxzIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICAuZGV0YWlscy1jb250YWluZXIge1xuICAgIHBhZGRpbmc6IDBweDtcbiAgICBtYXgtaGVpZ2h0OiBub25lO1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLW1kLW1pbikgeyBtYXgtaGVpZ2h0OiAyMDBweDsgfVxuICAgIC5zY3JvbGxhYmxlKCk7XG4gIH1cbiAgLnJpZ2h0LXBhbmVsIHtcbiAgICAuZGV0YWlscy1jb250YWluZXIge1xuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbWQtbWluKSB7IG1heC1oZWlnaHQ6IDIyMHB4OyB9XG4gICAgfVxuICAgIC5sZWdlbmQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgIH1cbiAgfVxuICAudGl0bGUge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItZW1wbG95ZWVzLWxpc3Qge1xuICAubGVnZW5kIHtcbiAgICBtYXJnaW4tYm90dG9tOiA5cHg7XG4gIH1cbiAgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAud2lkZ2V0LWxpbmUge1xuICAgICAgLmFsdGVybmF0ZS1iZygpO1xuICAgIH1cbiAgfVxuICAuZWRpdCB7XG4gICAgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB9XG4gIH1cbn0iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1sZWF2ZXMtYmFsYW5jZXtcbiAgLmVtcGxveWVlLW5hbWUge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICAuYmFsYW5jZSB7XG4gICAgLmNlbnRlci1ib2xkKDBweCk7XG4gIH1cbiAgaDMge1xuICAgIG1hcmdpbi10b3A6IDMzcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG59IiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItbGVhdmVzLXNjaGVkdWxle1xuICAuZmMtYnV0dG9uIHtcbiAgICBoZWlnaHQ6IDIycHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGNvbG9yOiBAaW1wYWMtd2lkZ2V0LWJ1dHRvbnMtY29sb3I7XG4gICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgIGJhY2tncm91bmQ6IEBpbXBhYy13aWRnZXQtYnV0dG9ucy1jb2xvcjtcbiAgICB9XG4gIH1cbiAgLmZjLXRvb2xiYXIge1xuICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgfVxuICAuZmMtZGF5LWdyaWQsLmZjLXdpZGdldC1oZWFkZXIge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBjb2xvcjogQGltcGFjLXdpZGdldC10ZXh0LWNvbG9yO1xuICB9XG59IiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItcGF5cm9sbC1zdW1tYXJ5IHtcbiAgLmRyaWxsLWRvd24td2lkZ2V0KCk7XG4gIC5yaWdodC1wYW5lbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gICAgICBtYXgtaGVpZ2h0OiAxNDVweDtcbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0ge1xuICAuY29udGVudC5oci1zYWxhcmllcy1zdW1tYXJ5IHtcbiAgICAuZXhwYW5kYWJsZS1maWx0ZXJhYmxlLXdpZGdldCgpO1xuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1zdXBlcmFubnVhdGlvbi1hY2NydWFscyB7XG4gIGgzIHtcbiAgICBtYXJnaW4tdG9wOiA2M3B4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICAubGVnZW5kIHtcbiAgICBtYXJnaW4tdG9wOiAyM3B4O1xuICB9XG4gIC5jdXJyZW5jeSB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICB9XG4gIC5wcmljZSB7XG4gICAgLmNlbnRlci1ib2xkKDBweCk7XG4gIH1cbn0iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci10aW1lc2hlZXRzIHtcbiAgLmN1cnJlbmN5IHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gIH1cbiAgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICAgIG1heC1oZWlnaHQ6IDIxMHB4O1xuICB9XG59IiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gIHtcbiAgLmNvbnRlbnQuaHItd29ya2ZvcmNlLXN1bW1hcnkge1xuICAgIC5leHBhbmRhYmxlLWZpbHRlcmFibGUtd2lkZ2V0KCk7XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50Lmludm9pY2VzLWFnZWQtcGF5YWJsZXMtcmVjZWl2YWJsZXMge1xuICAuZHJpbGwtZG93bi13aWRnZXQoKTtcblxuICAucmlnaHQtcGFuZWwgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICAgIG1heC1oZWlnaHQ6IDIxNXB4O1xuICB9XG5cbiAgLnJvdy5hc3Rlcmlja3MtaW5mbyB7XG4gICAgbWFyZ2luLXRvcDogMTVweDtcbiAgfVxuXG4gIC5jdXJyZW5jeS1jb252ZXJzaW9ucyB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIG1hcmdpbi1sZWZ0OiAzcHg7XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50Lmludm9pY2VzLWxpc3Qge1xuICAuc2ltcGxlLWxpc3Qtd2lkZ2V0KCk7XG5cbiAgLmN1cnJlbmN5LWNvbnZlcnNpb25zIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAzcHg7XG4gICAgbWFyZ2luLXRvcDogLTJweDtcbiAgfVxuXG4gIC5mYS5mYS1pbmZvLWNpcmNsZSB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgfVxuXG4gIC5yaWdodC1jb2x1bW4ge1xuICAgIHBhZGRpbmctbGVmdDogMHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDBweDtcbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaW52b2ljZXMtc3VtbWFyeSB7XG4gIC5zaW1wbGUtc3VtbWFyeS13aWRnZXQoKTtcbn0iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1hZ2VkIHtcbiAgLnRhbGwtd2lkZ2V0KCk7XG5cbiAgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICAgIG1heC1oZWlnaHQ6IDIzOHB4O1xuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1icmVhay1ldmVuIHtcbiAgLnByaWNlIHtcbiAgICAuY2VudGVyLWJvbGQoMHB4KTtcbiAgfVxuICAuYmxvY2sge1xuICAgIG1hcmdpbjogNXB4O1xuICAgIHBhZGRpbmc6IDBweCAxMHB4IDVweCAxMHB4O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgYm94LXNoYWRvdzogMHB4IDdweCAxMHB4IC03cHggIzE3MjYyZDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9ybS5lZGl0YWJsZS13cmFwIC5lZGl0YWJsZS1jb250cm9scyBpbnB1dCB7XG4gICAgICBtYXJnaW4tdG9wOiA1cHg7XG4gICAgICB3aWR0aDogMTAwcHg7XG4gICAgfVxuICAgICYudG8tZGF0ZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtd2lkZ2V0LXN1Yi1iZy1jb2xvcjtcbiAgICAgIGNvbG9yOiBAaW1wYWMtd2lkZ2V0LXRleHQtY29sb3I7XG4gICAgfVxuICAgICYudG8tYnJlYWtldmVuIHtcbiAgICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtd2lkZ2V0LXNhbGVzLWJyZWFrLWV2ZW4tYmc7XG4gICAgICBjb2xvcjogQGltcGFjLXdpZGdldC1zYWxlcy1icmVhay1ldmVuLXRleHQtY29sb3I7XG4gICAgICAudGl0bGUge1xuICAgICAgICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggbGlnaHRlbihAaW1wYWMtd2lkZ2V0LXNhbGVzLWJyZWFrLWV2ZW4tYmcsIDEwJSk7XG4gICAgICB9XG4gICAgICAuZGVmaW5lLXRleHQge1xuICAgICAgICAuY2VudGVyLXRoaW4oKTtcbiAgICAgICAgcGFkZGluZy10b3A6IDVweDtcbiAgICAgICAgY29sb3I6IEBpbXBhYy13aWRnZXQtc2FsZXMtYnJlYWstZXZlbi10ZXh0LWNvbG9yO1xuICAgICAgfVxuICAgICAgLnByaWNlIHtcbiAgICAgICAgY29sb3I6IEBpbXBhYy13aWRnZXQtc2FsZXMtYnJlYWstZXZlbi10ZXh0LWNvbG9yO1xuICAgICAgfVxuICAgIH1cblxuICAgIC50aXRsZSB7XG4gICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBmb250LXZhcmlhbnQ6IHNtYWxsLWNhcHM7XG4gICAgICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggQGxpZ2h0Z3JheTtcbiAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgfVxuICB9XG59IiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtY29tcGFyaXNvbiB7XG4gIC5kcmlsbC1kb3duLXdpZGdldCgpO1xuICAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gICAgbWF4LWhlaWdodDogNTMwcHg7XG4gIH1cbiAgLnJpZ2h0LXBhbmVsIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgICBtYXgtaGVpZ2h0OiAyNTBweDtcbiAgfVxuICAuY3VycmVuY3ktY29udmVyc2lvbnMge1xuICAgIGltZyB7IG1hcmdpbi10b3A6IC0ycHg7IH1cbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtY3VzdG9tZXItZGV0YWlscyB7XG4gIC5sb2FkZXIge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgfVxuICBmb250LXNpemU6IDEycHg7XG4gIC5kZXRhaWxzLWNvbnRhaW5lciB7XG4gICAgcGFkZGluZzogMHB4O1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLW1kLW1pbikgeyBtYXgtaGVpZ2h0OiAxOTRweDsgfVxuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICB9XG4gIC5yaWdodC1wYW5lbCB7XG4gICAgLmRldGFpbHMtY29udGFpbmVyIHtcbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLW1kLW1pbikgeyBtYXgtaGVpZ2h0OiAyMzBweDsgfVxuICAgIH1cbiAgICAubGVnZW5kIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICB9XG4gIH1cbiAgLnJvdy50aXRsZSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICB9XG5cbiAgLmN1cnJlbmN5LWNvbnZlcnNpb25zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tcmlnaHQ6IDNweDtcbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtY3ljbGUge1xuICAuc2ltcGxlLXN1bW1hcnktd2lkZ2V0KCk7XG59IiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtZm9yZWNhc3Qge1xuICAudGFsbC13aWRnZXQoKTtcbiAgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICAgIG1heC1oZWlnaHQ6IDI3NXB4O1xuICAgIC53aWRnZXQtbGluZS5tYWluIHtcbiAgICAgIC5zZWxlY3RhYmxlKCk7XG4gICAgfVxuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1ncm93dGgge1xuICAucHJpY2Uge1xuICAgIC5jZW50ZXItYm9sZCgwcHgpO1xuICB9XG4gIC5sZWdlbmQge1xuICAgIG1heC1oZWlnaHQ6IDQ5cHg7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWxlYWRzLWZ1bm5lbCB7XG4gIC5mdW5uZWwtd2lkZ2V0KCk7XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1sZWFkcy1saXN0IHtcbiAgLnNpbXBsZS1saXN0LXdpZGdldCgpO1xuICAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gICAgLnNjcm9sbGFibGUoc2Nyb2xsKTtcbiAgfVxufSIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWxpc3Qge1xuICAuc2ltcGxlLWxpc3Qtd2lkZ2V0KCk7XG4gIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgICAuc2Nyb2xsYWJsZShzY3JvbGwpO1xuICAgIG1heC1oZWlnaHQ6IDE3MHB4O1xuICAgICYubm8tc2Nyb2xsIHtcbiAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIH1cbiAgfVxuICAuc2VsZWN0b3Ige1xuICAgIG1hcmdpbi1ib3R0b206IDRweDtcbiAgfVxuICAuY3VycmVuY3ktY29udmVyc2lvbnMge1xuICAgIGltZyB7IG1hcmdpbi10b3A6IC0ycHg7IH1cbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbmV0LXNhbGVzIHtcbiAgLnZhbHVlLWNvbnRhaW5lciwgLm9wZXJhdG9yIHtcbiAgICAvLyBmbG9hdDogbGVmdDtcbiAgICAvLyB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbGluZS1oZWlnaHQ6IDg1cHg7XG4gIH1cblxuICAvLyAudmFsdWUtY29udGFpbmVyIHtcbiAgLy8gICB3aWR0aDogMjYlO1xuICAvLyB9XG5cbiAgLnZhbHVlLWNvbnRhaW5lciAudGl0bGUge1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGZvbnQtc2l6ZTogMS4yZW07XG4gICAgcGFkZGluZzogMTBweCAwcHg7XG4gIH1cblxuICAudmFsdWUtY29udGFpbmVyIC52YWx1ZS1ib3gge1xuICAgIGZvbnQtc2l6ZTogMS4zZW07XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICAvLyBib3JkZXI6IHNvbGlkIDFweCAjRTRFNEU0O1xuICAgIC8vIGJveC1zaGFkb3c6IDFweCAxcHggMXB4ICNDNUM1QzU7XG4gICAgYm9yZGVyLXRvcDogc29saWQgMXB4ICNDNENBQ0E7XG4gICAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4ICNDNENBQ0E7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgfVxuXG4gIC5vcGVyYXRvciB7XG4gICAgLy8gQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbWQtbWluKSB7IHBhZGRpbmctdG9wOiAzOHB4OyB9XG4gICAgcGFkZGluZy10b3A6IDM4cHg7XG4gICAgLy8gd2lkdGg6IDEwJTtcbiAgICBmb250LXNpemU6IDEuM2VtO1xuICB9XG5cbiAgLnZhbHVlcyB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbWQtbWluKSB7IG1hcmdpbi10b3A6IDI1cHg7IH1cbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbmV3LXZzLWV4aXN0aW5nLWN1c3RvbWVycyB7XG5cbiAgLnNlbGVjdG9yIC5zZWxlY3Rvci13cmFwIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luOiAwIDVweDtcbiAgfVxuICAuY2hhcnQtY29udGFpbmVyIHtcbiAgICBtYXJnaW4tdG9wOiAxNXB4O1xuICB9XG5cbiAgLmxlZ2VuZCB7XG4gICAgbWFyZ2luLXRvcDogNXB4O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIG1heC1oZWlnaHQ6IDc3cHggIWltcG9ydGFudDtcblxuICAgIC5yb3cgeyBtYXJnaW46IDBweCAtNXB4OyAmPmRpdiB7IHBhZGRpbmc6IDBweCA1cHg7IH19XG5cbiAgICAudG90YWwge1xuICAgICAgY29sb3I6ICM1QjY2Njc7XG4gICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgfVxuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1udW1iZXItb2YtbGVhZHMge1xuICAuc3RhdHMge1xuICAgIG1hcmdpbi10b3A6IDM1cHg7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIC5zdGF0IHtcbiAgICAgIG1hcmdpbjogMTVweCAwcHggMTBweCAwcHg7XG4gICAgICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggQGxpZ2h0Z3JheTtcbiAgICAgIHNwYW4udGl0bGUge1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIH1cbiAgICAgIHNwYW4ubm9taW5hbCB7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICB9XG4gICAgICBzcGFuLnZhcmlhdGlvbiB7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgd2lkdGg6IDUwcHg7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgICAgbWFyZ2luLXRvcDogMnB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLW9wcG9ydHVuaXRpZXMtZnVubmVsIHtcbiAgLmZ1bm5lbC13aWRnZXQoKTtcbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXBlcmZvcm1hbmNlIHtcbiAgLmRyaWxsLWRvd24td2lkZ2V0KCk7XG4gIC5yaWdodC1wYW5lbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIFx0IG1heC1oZWlnaHQ6IDIxNXB4O1xuICAgIC53aWRnZXQtbGluZS5oZWFkZXIge1xuICAgICAgLnNlbGVjdGFibGUoKTtcbiAgICB9XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXNlZ21lbnRlZC10dXJub3ZlciB7XG4gIGgzLnJpZ2h0IHtcbiAgICBtYXJnaW4tdG9wOiA1NXB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICAuc2VsZWN0b3Ige1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIH1cbiAgLmFuYWx5c2lzIHtcbiAgICAuY2VudGVyLWJvbGQoMHB4KTtcbiAgfVxuICAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gICAgbWF4LWhlaWdodDogNzVweDtcbiAgICAud2lkZ2V0LWxpbmUge1xuICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgIH1cbiAgfVxuXG4gIC5yaWdodC1wYW5lbCB7XG4gICAgaDMge1xuICAgICAgbWFyZ2luOiAxNXB4IDEwcHggNXB4IDEwcHg7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLmZhLmZhLWluZm8tY2lyY2xlIHsgZmxvYXQ6IGxlZnQ7IH1cbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtc3VtbWFyeSB7XG4gIC5zaW1wbGUtc3VtbWFyeS13aWRnZXQoKTtcbiAgLnNlbGVjdG9yIHtcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gIH1cbn0iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy10b3AtY3VzdG9tZXJzIHtcbiAgLnNlbGVjdG9yIHtcbiAgICBib3JkZXItYm90dG9tOiBkYXNoZWQgMXB4ICNFNkU2RTY7XG4gICAgcGFkZGluZy1ib3R0b206IDNweDtcbiAgICBhIHsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgfVxuICAgIC5wYXJhbS1zZWxlY3RvciB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICB9XG4gIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgICBtYXgtaGVpZ2h0OiAyMzVweDtcbiAgICAud2lkZ2V0LWxpbmUuc3ViLWxpbmUgeyBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtd2lkZ2V0LXN1Yi1iZy1jb2xvcjsgfVxuXG4gICAgLy8gV2lsbCBhbGxvdyB0aGUgcGFyYW1zIHNlbGVjdG9ycyB0byBiZSBkaXNwbGF5ZWQgb24gdG9wIG9mIHRoZSBjb250YWluZXIgKHdpdGhvdXQgYmVpbmcgY3V0IG9uIHRoZSByaWdodClcbiAgICAucm93ID4gW2NsYXNzKj0nY29sLSddIHsgcG9zaXRpb246IHN0YXRpYzsgfVxuICB9XG4gIC5jdXJyZW5jeS1jb252ZXJzaW9ucyB7XG4gICAgaW1nIHsgbWFyZ2luLXRvcDogLTJweDsgfVxuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy10b3Atb3Bwb3J0dW5pdGllcyB7XG4gIC5vcHBzLWNvbnRhaW5lciB7XG4gICAgbWF4LWhlaWdodDogMTk1cHg7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xuICAgIC5zY3JvbGxhYmxlKCk7XG4gICAgLnRpbGUge1xuICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgIC5jb2xvcmVkLWFyZWEge1xuICAgICAgICB3aWR0aDogMTAlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgIH1cbiAgICAgIC5tYWluLXRleHQge1xuICAgICAgICBjb2xvcjogQGltcGFjLXdpZGdldC10ZXh0LWNvbG9yO1xuICAgICAgICBwYWRkaW5nOiAzcHggMHB4IDBweCAxMHB4O1xuICAgICAgfVxuICAgICAgJi5maXJzdCB7XG4gICAgICAgIGhlaWdodDogNTVweDtcbiAgICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgLmNvbG9yZWQtYXJlYSB7XG4gICAgICAgICAgZm9udC1zaXplOiAyNnB4O1xuICAgICAgICAgIHBhZGRpbmctdG9wOiAxMHB4O1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsIDExMCwgNjUpO1xuICAgICAgICB9XG4gICAgICAgIC5tYWluLXRleHQge1xuICAgICAgICAgIHBhZGRpbmctdG9wOiA4cHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICYuc2Vjb25kIHtcbiAgICAgICAgaGVpZ2h0OiA1NXB4O1xuICAgICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIC5jb2xvcmVkLWFyZWEge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMjZweDtcbiAgICAgICAgICBwYWRkaW5nLXRvcDogMTBweDtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWRlOWI2O1xuICAgICAgICB9XG4gICAgICAgIC5tYWluLXRleHQge1xuICAgICAgICAgIHBhZGRpbmctdG9wOiA4cHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iXX0= */ +/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImltcGFjLWFuZ3VsYXIuY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9ub3JtYWxpemUubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvZ2x5cGhpY29ucy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9zY2FmZm9sZGluZy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9taXhpbnMvdmVuZG9yLXByZWZpeGVzLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL21peGlucy90YWItZm9jdXMubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbWl4aW5zL2ltYWdlLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL3R5cGUubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbWl4aW5zL3RleHQtZW1waGFzaXMubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbWl4aW5zL2JhY2tncm91bmQtdmFyaWFudC5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9taXhpbnMvdGV4dC1vdmVyZmxvdy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9jb2RlLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL2dyaWQubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbWl4aW5zL2dyaWQubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbWl4aW5zL2dyaWQtZnJhbWV3b3JrLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL3RhYmxlcy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9taXhpbnMvdGFibGUtcm93Lmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL2Zvcm1zLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL21peGlucy9mb3Jtcy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9idXR0b25zLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL21peGlucy9idXR0b25zLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL21peGlucy9vcGFjaXR5Lmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL2NvbXBvbmVudC1hbmltYXRpb25zLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL2Ryb3Bkb3ducy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9taXhpbnMvbmF2LWRpdmlkZXIubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbWl4aW5zL3Jlc2V0LWZpbHRlci5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9idXR0b24tZ3JvdXBzLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL21peGlucy9ib3JkZXItcmFkaXVzLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL2lucHV0LWdyb3Vwcy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9uYXZzLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL25hdmJhci5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9taXhpbnMvbmF2LXZlcnRpY2FsLWFsaWduLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL3V0aWxpdGllcy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9icmVhZGNydW1icy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9wYWdpbmF0aW9uLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL21peGlucy9wYWdpbmF0aW9uLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL3BhZ2VyLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL2xhYmVscy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9taXhpbnMvbGFiZWxzLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL2JhZGdlcy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9qdW1ib3Ryb24ubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvdGh1bWJuYWlscy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9hbGVydHMubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbWl4aW5zL2FsZXJ0cy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9wcm9ncmVzcy1iYXJzLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL21peGlucy9ncmFkaWVudHMubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbWl4aW5zL3Byb2dyZXNzLWJhci5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9tZWRpYS5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9saXN0LWdyb3VwLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL21peGlucy9saXN0LWdyb3VwLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL3BhbmVscy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9taXhpbnMvcGFuZWxzLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL3Jlc3BvbnNpdmUtZW1iZWQubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3Mvd2VsbHMubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvY2xvc2UubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbW9kYWxzLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL3Rvb2x0aXAubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbWl4aW5zL3Jlc2V0LXRleHQubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvcG9wb3ZlcnMubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvY2Fyb3VzZWwubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbWl4aW5zL2NsZWFyZml4Lmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL21peGlucy9jZW50ZXItYmxvY2subGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbWl4aW5zL2hpZGUtdGV4dC5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9yZXNwb25zaXZlLXV0aWxpdGllcy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9taXhpbnMvcmVzcG9uc2l2ZS12aXNpYmlsaXR5Lmxlc3MiLCJzdHlsZXNoZWV0cy92YXJpYWJsZXMubGVzcyIsInN0eWxlc2hlZXRzL2dsb2JhbHMubGVzcyIsInN0eWxlc2hlZXRzL21peGlucy5sZXNzIiwic3R5bGVzaGVldHMvcHJpbnQubGVzcyIsImNvbXBvbmVudHMvYWxlcnRzLWNvbmZpZy9hbGVydHMtY29uZmlnLmxlc3MiLCJjb21wb25lbnRzL2Rhc2hib2FyZC9kYXNoYm9hcmQubGVzcyIsImNvbXBvbmVudHMvZGFzaGJvYXJkLWNyZWF0ZS9kYXNoYm9hcmQtY3JlYXRlLmxlc3MiLCJjb21wb25lbnRzL2Rhc2hib2FyZC1zZWxlY3Rvci9kYXNoYm9hcmQtc2VsZWN0b3IubGVzcyIsImNvbXBvbmVudHMvZGFzaGJvYXJkLXRlbXBsYXRlcy1zZWxlY3Rvci9kYXNoYm9hcmQtdGVtcGxhdGVzLXNlbGVjdG9yLmxlc3MiLCJjb21wb25lbnRzL2twaS9rcGkubGVzcyIsInN0eWxlc2hlZXRzL2ltcGFjLW1hdGVyaWFsLmxlc3MiLCJjb21wb25lbnRzL2twaXMtYmFyL2twaXMtYmFyLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldC93aWRnZXQubGVzcyIsImNvbXBvbmVudHMvY29tbW9uL2RhdGEtbm90LWZvdW5kL2RhdGEtbm90LWZvdW5kLmxlc3MiLCJjb21wb25lbnRzL2NvbW1vbi9kdXBsaWNhdGUtdHJhbnNhY3Rpb25zLWxpc3QvZHVwbGljYXRlLXRyYW5zYWN0aW9ucy1saXN0Lmxlc3MiLCJjb21wb25lbnRzL2NvbW1vbi90cmFuc2FjdGlvbnMtYWRkL3RyYW5zYWN0aW9ucy1hZGQubGVzcyIsImNvbXBvbmVudHMvY29tbW9uL3RyYW5zYWN0aW9ucy1saXN0L3RyYW5zYWN0aW9ucy1saXN0Lmxlc3MiLCJjb21wb25lbnRzL2NvbW1vbi90cmVuZHMtYWRkL3RyZW5kcy1hZGQubGVzcyIsImNvbXBvbmVudHMvY29tbW9uL3RyZW5kcy1saXN0L3RyZW5kcy1saXN0Lmxlc3MiLCJjb21wb25lbnRzL2Rhc2hib2FyZC1zZXR0aW5ncy9jdXJyZW5jeS9jdXJyZW5jeS5sZXNzIiwiY29tcG9uZW50cy9kYXNoYm9hcmQtc2V0dGluZ3Mvc3luYy1hcHBzL3N5bmMtYXBwcy5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzLWNvbW1vbi9jaGFydC10aHJlc2hvbGQvY2hhcnQtdGhyZXNob2xkLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMtY29tbW9uL2NvbmZpcm0tbW9kYWwvY29uZmlybS1tb2RhbC5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzLWNvbW1vbi9jdXJyZW5jeS1jb252ZXJzaW9ucy9jdXJyZW5jeS1jb252ZXJzaW9ucy5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzLWNvbW1vbi9lZGl0YWJsZS10aXRsZS9lZGl0YWJsZS10aXRsZS5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzLWNvbW1vbi9pbmZvLXBhbmVsL2luZm8tcGFuZWwubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy1jb21tb24vdGltZS1wZXJpb2QtaW5mby90aW1lLXBlcmlvZC1pbmZvLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMtY29tbW9uL3RvcC1idXR0b25zL3RvcC1idXR0b25zLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvYWNjb3VudHMtYXNzZXRzLWxpYWJpbGl0eS1zdW1tYXJ5L2FjY291bnRzLWFzc2V0cy1saWFiaWxpdHktc3VtbWFyeS5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL2FjY291bnRzLWFzc2V0cy1zdW1tYXJ5L2FjY291bnRzLWFzc2V0cy1zdW1tYXJ5Lmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvYWNjb3VudHMtYXNzZXRzLXZzLWxpYWJpbGl0aWVzL2FjY291bnRzLWFzc2V0cy12cy1saWFiaWxpdGllcy5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL2FjY291bnRzLWJhbGFuY2UvYWNjb3VudHMtYmFsYW5jZS5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL2FjY291bnRzLWJhbGFuY2Utc2hlZXQvYWNjb3VudHMtYmFsYW5jZS1zaGVldC5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL2FjY291bnRzLWNhc2gtYmFsYW5jZS9hY2NvdW50cy1jYXNoLWJhbGFuY2UubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9hY2NvdW50cy1jYXNoLXByb2plY3Rpb24vYWNjb3VudHMtY2FzaC1wcm9qZWN0aW9uLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvYWNjb3VudHMtY2FzaC1zdW1tYXJ5L2FjY291bnRzLWNhc2gtc3VtbWFyeS5sZXNzIiwic3R5bGVzaGVldHMvd2lkZ2V0LW1hc3Rlci1zdHlsZXMubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9hY2NvdW50cy1jbGFzcy1jb21wYXJpc29uL2FjY291bnRzLWNsYXNzLWNvbXBhcmlzb24ubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9hY2NvdW50cy1jb21wYXJpc29uL2FjY291bnRzLWNvbXBhcmlzb24ubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9hY2NvdW50cy1jdXN0b20tY2FsY3VsYXRpb24vYWNjb3VudHMtY3VzdG9tLWNhbGN1bGF0aW9uLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvYWNjb3VudHMtZGV0YWlsZWQtY2xhc3NpZmljYXRpb25zL2FjY291bnRzLWRldGFpbGVkLWNsYXNzaWZpY2F0aW9ucy5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL2FjY291bnRzLWV4cGVuc2Utd2VpZ2h0L2FjY291bnRzLWV4cGVuc2Utd2VpZ2h0Lmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvYWNjb3VudHMtZXhwZW5zZXMtcmV2ZW51ZS9hY2NvdW50cy1leHBlbnNlcy1yZXZlbnVlLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvYWNjb3VudHMtaW52b2ljZXMtbGlzdC9hY2NvdW50cy1pbnZvaWNlcy1saXN0Lmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvYWNjb3VudHMtbGl2ZS1iYWxhbmNlL2FjY291bnRzLWxpdmUtYmFsYW5jZS5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL2FjY291bnRzLXBheWFibGUtcmVjZWl2YWJsZS9hY2NvdW50cy1wYXlhYmxlLXJlY2VpdmFibGUubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9hY2NvdW50cy1wcm9maXQtYW5kLWxvc3MvYWNjb3VudHMtcHJvZml0LWFuZC1sb3NzLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvYWNjb3VudHMtcmF0aW9zL2FjY291bnRzLXJhdGlvcy5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL2hyLWVtcGxveWVlLWRldGFpbHMvaHItZW1wbG95ZWUtZGV0YWlscy5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL2hyLWVtcGxveWVlcy1saXN0L2hyLWVtcGxveWVlcy1saXN0Lmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvaHItbGVhdmVzLWJhbGFuY2UvaHItbGVhdmVzLWJhbGFuY2UubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9oci1sZWF2ZXMtc2NoZWR1bGUvaHItbGVhdmVzLXNjaGVkdWxlLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvaHItcGF5cm9sbC1zdW1tYXJ5L2hyLXBheXJvbGwtc3VtbWFyeS5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL2hyLXNhbGFyaWVzLXN1bW1hcnkvaHItc2FsYXJpZXMtc3VtbWFyeS5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL2hyLXN1cGVyYW5udWF0aW9uLWFjY3J1YWxzL2hyLXN1cGVyYW5udWF0aW9uLWFjY3J1YWxzLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvaHItdGltZXNoZWV0cy9oci10aW1lc2hlZXRzLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvaHItd29ya2ZvcmNlLXN1bW1hcnkvaHItd29ya2ZvcmNlLXN1bW1hcnkubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9pbnZvaWNlcy1hZ2VkLXBheWFibGVzLXJlY2VpdmFibGVzL2ludm9pY2VzLWFnZWQtcGF5YWJsZXMtcmVjZWl2YWJsZXMubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9pbnZvaWNlcy1saXN0L2ludm9pY2VzLWxpc3QubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9pbnZvaWNlcy1zdW1tYXJ5L2ludm9pY2VzLXN1bW1hcnkubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9zYWxlcy1hZ2VkL3NhbGVzLWFnZWQubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9zYWxlcy1icmVhay1ldmVuL3NhbGVzLWJyZWFrLWV2ZW4ubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9zYWxlcy1jb21wYXJpc29uL3NhbGVzLWNvbXBhcmlzb24ubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9zYWxlcy1jdXN0b21lci1kZXRhaWxzL3NhbGVzLWN1c3RvbWVyLWRldGFpbHMubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9zYWxlcy1jeWNsZS9zYWxlcy1jeWNsZS5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL3NhbGVzLWZvcmVjYXN0L3NhbGVzLWZvcmVjYXN0Lmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvc2FsZXMtZ3Jvd3RoL3NhbGVzLWdyb3d0aC5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL3NhbGVzLWxlYWRzLWZ1bm5lbC9zYWxlcy1sZWFkcy1mdW5uZWwubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9zYWxlcy1sZWFkcy1saXN0L3NhbGVzLWxlYWRzLWxpc3QubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9zYWxlcy1saXN0L3NhbGVzLWxpc3QubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9zYWxlcy1uZXQtc2FsZXMvc2FsZXMtbmV0LXNhbGVzLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvc2FsZXMtbmV3LXZzLWV4aXN0aW5nLWN1c3RvbWVycy9zYWxlcy1uZXctdnMtZXhpc3RpbmctY3VzdG9tZXJzLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvc2FsZXMtbnVtYmVyLW9mLWxlYWRzL3NhbGVzLW51bWJlci1vZi1sZWFkcy5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL3NhbGVzLW9wcG9ydHVuaXRpZXMtZnVubmVsL3NhbGVzLW9wcG9ydHVuaXRpZXMtZnVubmVsLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvc2FsZXMtcGVyZm9ybWFuY2Uvc2FsZXMtcGVyZm9ybWFuY2UubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9zYWxlcy1zZWdtZW50ZWQtdHVybm92ZXIvc2FsZXMtc2VnbWVudGVkLXR1cm5vdmVyLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvc2FsZXMtc3VtbWFyeS9zYWxlcy1zdW1tYXJ5Lmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvc2FsZXMtdG9wLWN1c3RvbWVycy9zYWxlcy10b3AtY3VzdG9tZXJzLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvc2FsZXMtdG9wLW9wcG9ydHVuaXRpZXMvc2FsZXMtdG9wLW9wcG9ydHVuaXRpZXMubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy1zZXR0aW5ncy9hY2NvdW50L2FjY291bnQubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy1zZXR0aW5ncy9hY2NvdW50aW5nLWJlaGF2aW91ci9hY2NvdW50aW5nLWJlaGF2aW91ci5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzLXNldHRpbmdzL2F0dGFjaC1rcGlzL2F0dGFjaC1rcGlzLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMtc2V0dGluZ3MvYm9sdC1hY2NvdW50L2JvbHQtYWNjb3VudC5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzLXNldHRpbmdzL2NoYXJ0LWZpbHRlcnMvY2hhcnQtZmlsdGVycy5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzLXNldHRpbmdzL2RhdGVzLXBpY2tlci9kYXRlcy1waWNrZXIubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy1zZXR0aW5ncy9mb3JlY2FzdC1wYXlyb2xsL2ZvcmVjYXN0LXBheXJvbGwubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy1zZXR0aW5ncy9oaXN0LW1vZGUvaGlzdC1tb2RlLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMtc2V0dGluZ3MvbGltaXQtZW50cmllcy9saW1pdC1lbnRyaWVzLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMtc2V0dGluZ3Mvb2Zmc2V0cy9vZmZzZXRzLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMtc2V0dGluZ3Mvb3JnYW5pemF0aW9ucy9vcmdhbml6YXRpb25zLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMtc2V0dGluZ3MvcGFyYW0tc2VsZWN0b3IvcGFyYW0tc2VsZWN0b3IubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy1zZXR0aW5ncy9wYXJhbXMtY2hlY2tib3hlcy9wYXJhbXMtY2hlY2tib3hlcy5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzLXNldHRpbmdzL3BhcmFtcy1waWNrZXIvcGFyYW1zLXBpY2tlci5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzLXNldHRpbmdzL3RhZy1maWx0ZXIvdGFnLWZpbHRlci5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzLXNldHRpbmdzL3RpbWUtcGVyaW9kL3RpbWUtcGVyaW9kLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMtc2V0dGluZ3Mvd2lkdGgvd2lkdGgubGVzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7RUFFRTtBQUNGOzs7R0FHRztBQUNIOzs7O0dBSUc7QUFDSCw0RUFBNEU7QUNKNUU7RUFDRSx3QkFBQTtFQUNBLDJCQUFBO0VBQ0EsK0JBQUE7Q0RNRDtBQ0NEO0VBQ0UsVUFBQTtDRENEO0FDWUQ7Ozs7Ozs7Ozs7Ozs7RUFhRSxlQUFBO0NEVkQ7QUNrQkQ7Ozs7RUFJRSxzQkFBQTtFQUNBLHlCQUFBO0NEaEJEO0FDd0JEO0VBQ0UsY0FBQTtFQUNBLFVBQUE7Q0R0QkQ7QUM4QkQ7O0VBRUUsY0FBQTtDRDVCRDtBQ3NDRDtFQUNFLDhCQUFBO0NEcENEO0FDNENEOztFQUVFLFdBQUE7Q0QxQ0Q7QUNvREQ7RUFDRSwwQkFBQTtDRGxERDtBQ3lERDs7RUFFRSxrQkFBQTtDRHZERDtBQzhERDtFQUNFLG1CQUFBO0NENUREO0FDb0VEO0VBQ0UsZUFBQTtFQUNBLGlCQUFBO0NEbEVEO0FDeUVEO0VBQ0UsaUJBQUE7RUFDQSxZQUFBO0NEdkVEO0FDOEVEO0VBQ0UsZUFBQTtDRDVFRDtBQ21GRDs7RUFFRSxlQUFBO0VBQ0EsZUFBQTtFQUNBLG1CQUFBO0VBQ0EseUJBQUE7Q0RqRkQ7QUNvRkQ7RUFDRSxZQUFBO0NEbEZEO0FDcUZEO0VBQ0UsZ0JBQUE7Q0RuRkQ7QUM2RkQ7RUFDRSxVQUFBO0NEM0ZEO0FDa0dEO0VBQ0UsaUJBQUE7Q0RoR0Q7QUMwR0Q7RUFDRSxpQkFBQTtDRHhHRDtBQytHRDtFQUNFLHdCQUFBO0VBQ0EsVUFBQTtDRDdHRDtBQ29IRDtFQUNFLGVBQUE7Q0RsSEQ7QUN5SEQ7Ozs7RUFJRSxrQ0FBQTtFQUNBLGVBQUE7Q0R2SEQ7QUN5SUQ7Ozs7O0VBS0UsZUFBQTtFQUNBLGNBQUE7RUFDQSxVQUFBO0NEdklEO0FDOElEO0VBQ0Usa0JBQUE7Q0Q1SUQ7QUNzSkQ7O0VBRUUscUJBQUE7Q0RwSkQ7QUMrSkQ7Ozs7RUFJRSwyQkFBQTtFQUNBLGdCQUFBO0NEN0pEO0FDb0tEOztFQUVFLGdCQUFBO0NEbEtEO0FDeUtEOztFQUVFLFVBQUE7RUFDQSxXQUFBO0NEdktEO0FDK0tEO0VBQ0Usb0JBQUE7Q0Q3S0Q7QUN3TEQ7O0VBRUUsdUJBQUE7RUFDQSxXQUFBO0NEdExEO0FDK0xEOztFQUVFLGFBQUE7Q0Q3TEQ7QUNxTUQ7RUFDRSw4QkFBQTtFQUNBLHdCQUFBO0NEbk1EO0FDNE1EOztFQUVFLHlCQUFBO0NEMU1EO0FDaU5EO0VBQ0UsMEJBQUE7RUFDQSxjQUFBO0VBQ0EsK0JBQUE7Q0QvTUQ7QUN1TkQ7RUFDRSxVQUFBO0VBQ0EsV0FBQTtDRHJORDtBQzRORDtFQUNFLGVBQUE7Q0QxTkQ7QUNrT0Q7RUFDRSxrQkFBQTtDRGhPRDtBQzBPRDtFQUNFLDBCQUFBO0VBQ0Esa0JBQUE7Q0R4T0Q7QUMyT0Q7O0VBRUUsV0FBQTtDRHpPRDtBRW5MRDtFQUNFLG9DQUFBO0VBQ0Esc0RBQUE7RUFDQSxnWUFBQTtDRnFMRDtBRTdLRDtFQUNFLG1CQUFBO0VBQ0EsU0FBQTtFQUNBLHNCQUFBO0VBQ0Esb0NBQUE7RUFDQSxtQkFBQTtFQUNBLG9CQUFBO0VBQ0EsZUFBQTtFQUNBLG9DQUFBO0VBQ0EsbUNBQUE7Q0YrS0Q7QUUzS21DO0VBQVcsaUJBQUE7Q0Y4SzlDO0FFN0ttQztFQUFXLGlCQUFBO0NGZ0w5QztBRTlLbUM7O0VBQVcsaUJBQUE7Q0ZrTDlDO0FFakxtQztFQUFXLGlCQUFBO0NGb0w5QztBRW5MbUM7RUFBVyxpQkFBQTtDRnNMOUM7QUVyTG1DO0VBQVcsaUJBQUE7Q0Z3TDlDO0FFdkxtQztFQUFXLGlCQUFBO0NGMEw5QztBRXpMbUM7RUFBVyxpQkFBQTtDRjRMOUM7QUUzTG1DO0VBQVcsaUJBQUE7Q0Y4TDlDO0FFN0xtQztFQUFXLGlCQUFBO0NGZ005QztBRS9MbUM7RUFBVyxpQkFBQTtDRmtNOUM7QUVqTW1DO0VBQVcsaUJBQUE7Q0ZvTTlDO0FFbk1tQztFQUFXLGlCQUFBO0NGc005QztBRXJNbUM7RUFBVyxpQkFBQTtDRndNOUM7QUV2TW1DO0VBQVcsaUJBQUE7Q0YwTTlDO0FFek1tQztFQUFXLGlCQUFBO0NGNE05QztBRTNNbUM7RUFBVyxpQkFBQTtDRjhNOUM7QUU3TW1DO0VBQVcsaUJBQUE7Q0ZnTjlDO0FFL01tQztFQUFXLGlCQUFBO0NGa045QztBRWpObUM7RUFBVyxpQkFBQTtDRm9OOUM7QUVuTm1DO0VBQVcsaUJBQUE7Q0ZzTjlDO0FFck5tQztFQUFXLGlCQUFBO0NGd045QztBRXZObUM7RUFBVyxpQkFBQTtDRjBOOUM7QUV6Tm1DO0VBQVcsaUJBQUE7Q0Y0TjlDO0FFM05tQztFQUFXLGlCQUFBO0NGOE45QztBRTdObUM7RUFBVyxpQkFBQTtDRmdPOUM7QUUvTm1DO0VBQVcsaUJBQUE7Q0ZrTzlDO0FFak9tQztFQUFXLGlCQUFBO0NGb085QztBRW5PbUM7RUFBVyxpQkFBQTtDRnNPOUM7QUVyT21DO0VBQVcsaUJBQUE7Q0Z3TzlDO0FFdk9tQztFQUFXLGlCQUFBO0NGME85QztBRXpPbUM7RUFBVyxpQkFBQTtDRjRPOUM7QUUzT21DO0VBQVcsaUJBQUE7Q0Y4TzlDO0FFN09tQztFQUFXLGlCQUFBO0NGZ1A5QztBRS9PbUM7RUFBVyxpQkFBQTtDRmtQOUM7QUVqUG1DO0VBQVcsaUJBQUE7Q0ZvUDlDO0FFblBtQztFQUFXLGlCQUFBO0NGc1A5QztBRXJQbUM7RUFBVyxpQkFBQTtDRndQOUM7QUV2UG1DO0VBQVcsaUJBQUE7Q0YwUDlDO0FFelBtQztFQUFXLGlCQUFBO0NGNFA5QztBRTNQbUM7RUFBVyxpQkFBQTtDRjhQOUM7QUU3UG1DO0VBQVcsaUJBQUE7Q0ZnUTlDO0FFL1BtQztFQUFXLGlCQUFBO0NGa1E5QztBRWpRbUM7RUFBVyxpQkFBQTtDRm9ROUM7QUVuUW1DO0VBQVcsaUJBQUE7Q0ZzUTlDO0FFclFtQztFQUFXLGlCQUFBO0NGd1E5QztBRXZRbUM7RUFBVyxpQkFBQTtDRjBROUM7QUV6UW1DO0VBQVcsaUJBQUE7Q0Y0UTlDO0FFM1FtQztFQUFXLGlCQUFBO0NGOFE5QztBRTdRbUM7RUFBVyxpQkFBQTtDRmdSOUM7QUUvUW1DO0VBQVcsaUJBQUE7Q0ZrUjlDO0FFalJtQztFQUFXLGlCQUFBO0NGb1I5QztBRW5SbUM7RUFBVyxpQkFBQTtDRnNSOUM7QUVyUm1DO0VBQVcsaUJBQUE7Q0Z3UjlDO0FFdlJtQztFQUFXLGlCQUFBO0NGMFI5QztBRXpSbUM7RUFBVyxpQkFBQTtDRjRSOUM7QUUzUm1DO0VBQVcsaUJBQUE7Q0Y4UjlDO0FFN1JtQztFQUFXLGlCQUFBO0NGZ1M5QztBRS9SbUM7RUFBVyxpQkFBQTtDRmtTOUM7QUVqU21DO0VBQVcsaUJBQUE7Q0ZvUzlDO0FFblNtQztFQUFXLGlCQUFBO0NGc1M5QztBRXJTbUM7RUFBVyxpQkFBQTtDRndTOUM7QUV2U21DO0VBQVcsaUJBQUE7Q0YwUzlDO0FFelNtQztFQUFXLGlCQUFBO0NGNFM5QztBRTNTbUM7RUFBVyxpQkFBQTtDRjhTOUM7QUU3U21DO0VBQVcsaUJBQUE7Q0ZnVDlDO0FFL1NtQztFQUFXLGlCQUFBO0NGa1Q5QztBRWpUbUM7RUFBVyxpQkFBQTtDRm9UOUM7QUVuVG1DO0VBQVcsaUJBQUE7Q0ZzVDlDO0FFclRtQztFQUFXLGlCQUFBO0NGd1Q5QztBRXZUbUM7RUFBVyxpQkFBQTtDRjBUOUM7QUV6VG1DO0VBQVcsaUJBQUE7Q0Y0VDlDO0FFM1RtQztFQUFXLGlCQUFBO0NGOFQ5QztBRTdUbUM7RUFBVyxpQkFBQTtDRmdVOUM7QUUvVG1DO0VBQVcsaUJBQUE7Q0ZrVTlDO0FFalVtQztFQUFXLGlCQUFBO0NGb1U5QztBRW5VbUM7RUFBVyxpQkFBQTtDRnNVOUM7QUVyVW1DO0VBQVcsaUJBQUE7Q0Z3VTlDO0FFdlVtQztFQUFXLGlCQUFBO0NGMFU5QztBRXpVbUM7RUFBVyxpQkFBQTtDRjRVOUM7QUUzVW1DO0VBQVcsaUJBQUE7Q0Y4VTlDO0FFN1VtQztFQUFXLGlCQUFBO0NGZ1Y5QztBRS9VbUM7RUFBVyxpQkFBQTtDRmtWOUM7QUVqVm1DO0VBQVcsaUJBQUE7Q0ZvVjlDO0FFblZtQztFQUFXLGlCQUFBO0NGc1Y5QztBRXJWbUM7RUFBVyxpQkFBQTtDRndWOUM7QUV2Vm1DO0VBQVcsaUJBQUE7Q0YwVjlDO0FFelZtQztFQUFXLGlCQUFBO0NGNFY5QztBRTNWbUM7RUFBVyxpQkFBQTtDRjhWOUM7QUU3Vm1DO0VBQVcsaUJBQUE7Q0ZnVzlDO0FFL1ZtQztFQUFXLGlCQUFBO0NGa1c5QztBRWpXbUM7RUFBVyxpQkFBQTtDRm9XOUM7QUVuV21DO0VBQVcsaUJBQUE7Q0ZzVzlDO0FFcldtQztFQUFXLGlCQUFBO0NGd1c5QztBRXZXbUM7RUFBVyxpQkFBQTtDRjBXOUM7QUV6V21DO0VBQVcsaUJBQUE7Q0Y0VzlDO0FFM1dtQztFQUFXLGlCQUFBO0NGOFc5QztBRTdXbUM7RUFBVyxpQkFBQTtDRmdYOUM7QUUvV21DO0VBQVcsaUJBQUE7Q0ZrWDlDO0FFalhtQztFQUFXLGlCQUFBO0NGb1g5QztBRW5YbUM7RUFBVyxpQkFBQTtDRnNYOUM7QUVyWG1DO0VBQVcsaUJBQUE7Q0Z3WDlDO0FFdlhtQztFQUFXLGlCQUFBO0NGMFg5QztBRXpYbUM7RUFBVyxpQkFBQTtDRjRYOUM7QUUzWG1DO0VBQVcsaUJBQUE7Q0Y4WDlDO0FFN1htQztFQUFXLGlCQUFBO0NGZ1k5QztBRS9YbUM7RUFBVyxpQkFBQTtDRmtZOUM7QUVqWW1DO0VBQVcsaUJBQUE7Q0ZvWTlDO0FFblltQztFQUFXLGlCQUFBO0NGc1k5QztBRXJZbUM7RUFBVyxpQkFBQTtDRndZOUM7QUV2WW1DO0VBQVcsaUJBQUE7Q0YwWTlDO0FFelltQztFQUFXLGlCQUFBO0NGNFk5QztBRTNZbUM7RUFBVyxpQkFBQTtDRjhZOUM7QUU3WW1DO0VBQVcsaUJBQUE7Q0ZnWjlDO0FFL1ltQztFQUFXLGlCQUFBO0NGa1o5QztBRWpabUM7RUFBVyxpQkFBQTtDRm9aOUM7QUVuWm1DO0VBQVcsaUJBQUE7Q0ZzWjlDO0FFclptQztFQUFXLGlCQUFBO0NGd1o5QztBRXZabUM7RUFBVyxpQkFBQTtDRjBaOUM7QUV6Wm1DO0VBQVcsaUJBQUE7Q0Y0WjlDO0FFM1ptQztFQUFXLGlCQUFBO0NGOFo5QztBRTdabUM7RUFBVyxpQkFBQTtDRmdhOUM7QUUvWm1DO0VBQVcsaUJBQUE7Q0ZrYTlDO0FFamFtQztFQUFXLGlCQUFBO0NGb2E5QztBRW5hbUM7RUFBVyxpQkFBQTtDRnNhOUM7QUVyYW1DO0VBQVcsaUJBQUE7Q0Z3YTlDO0FFdmFtQztFQUFXLGlCQUFBO0NGMGE5QztBRXphbUM7RUFBVyxpQkFBQTtDRjRhOUM7QUUzYW1DO0VBQVcsaUJBQUE7Q0Y4YTlDO0FFN2FtQztFQUFXLGlCQUFBO0NGZ2I5QztBRS9hbUM7RUFBVyxpQkFBQTtDRmtiOUM7QUVqYm1DO0VBQVcsaUJBQUE7Q0ZvYjlDO0FFbmJtQztFQUFXLGlCQUFBO0NGc2I5QztBRXJibUM7RUFBVyxpQkFBQTtDRndiOUM7QUV2Ym1DO0VBQVcsaUJBQUE7Q0YwYjlDO0FFemJtQztFQUFXLGlCQUFBO0NGNGI5QztBRTNibUM7RUFBVyxpQkFBQTtDRjhiOUM7QUU3Ym1DO0VBQVcsaUJBQUE7Q0ZnYzlDO0FFL2JtQztFQUFXLGlCQUFBO0NGa2M5QztBRWpjbUM7RUFBVyxpQkFBQTtDRm9jOUM7QUVuY21DO0VBQVcsaUJBQUE7Q0ZzYzlDO0FFcmNtQztFQUFXLGlCQUFBO0NGd2M5QztBRXZjbUM7RUFBVyxpQkFBQTtDRjBjOUM7QUV6Y21DO0VBQVcsaUJBQUE7Q0Y0YzlDO0FFM2NtQztFQUFXLGlCQUFBO0NGOGM5QztBRTdjbUM7RUFBVyxpQkFBQTtDRmdkOUM7QUUvY21DO0VBQVcsaUJBQUE7Q0ZrZDlDO0FFamRtQztFQUFXLGlCQUFBO0NGb2Q5QztBRW5kbUM7RUFBVyxpQkFBQTtDRnNkOUM7QUVyZG1DO0VBQVcsaUJBQUE7Q0Z3ZDlDO0FFdmRtQztFQUFXLGlCQUFBO0NGMGQ5QztBRXpkbUM7RUFBVyxpQkFBQTtDRjRkOUM7QUUzZG1DO0VBQVcsaUJBQUE7Q0Y4ZDlDO0FFN2RtQztFQUFXLGlCQUFBO0NGZ2U5QztBRS9kbUM7RUFBVyxpQkFBQTtDRmtlOUM7QUVqZW1DO0VBQVcsaUJBQUE7Q0ZvZTlDO0FFbmVtQztFQUFXLGlCQUFBO0NGc2U5QztBRXJlbUM7RUFBVyxpQkFBQTtDRndlOUM7QUV2ZW1DO0VBQVcsaUJBQUE7Q0YwZTlDO0FFemVtQztFQUFXLGlCQUFBO0NGNGU5QztBRTNlbUM7RUFBVyxpQkFBQTtDRjhlOUM7QUU3ZW1DO0VBQVcsaUJBQUE7Q0ZnZjlDO0FFL2VtQztFQUFXLGlCQUFBO0NGa2Y5QztBRWpmbUM7RUFBVyxpQkFBQTtDRm9mOUM7QUVuZm1DO0VBQVcsaUJBQUE7Q0ZzZjlDO0FFcmZtQztFQUFXLGlCQUFBO0NGd2Y5QztBRXZmbUM7RUFBVyxpQkFBQTtDRjBmOUM7QUV6Zm1DO0VBQVcsaUJBQUE7Q0Y0ZjlDO0FFM2ZtQztFQUFXLGlCQUFBO0NGOGY5QztBRTdmbUM7RUFBVyxpQkFBQTtDRmdnQjlDO0FFL2ZtQztFQUFXLGlCQUFBO0NGa2dCOUM7QUVqZ0JtQztFQUFXLGlCQUFBO0NGb2dCOUM7QUVuZ0JtQztFQUFXLGlCQUFBO0NGc2dCOUM7QUVyZ0JtQztFQUFXLGlCQUFBO0NGd2dCOUM7QUV2Z0JtQztFQUFXLGlCQUFBO0NGMGdCOUM7QUV6Z0JtQztFQUFXLGlCQUFBO0NGNGdCOUM7QUUzZ0JtQztFQUFXLGlCQUFBO0NGOGdCOUM7QUU3Z0JtQztFQUFXLGlCQUFBO0NGZ2hCOUM7QUUvZ0JtQztFQUFXLGlCQUFBO0NGa2hCOUM7QUVqaEJtQztFQUFXLGlCQUFBO0NGb2hCOUM7QUVuaEJtQztFQUFXLGlCQUFBO0NGc2hCOUM7QUVyaEJtQztFQUFXLGlCQUFBO0NGd2hCOUM7QUV2aEJtQztFQUFXLGlCQUFBO0NGMGhCOUM7QUV6aEJtQztFQUFXLGlCQUFBO0NGNGhCOUM7QUUzaEJtQztFQUFXLGlCQUFBO0NGOGhCOUM7QUU3aEJtQztFQUFXLGlCQUFBO0NGZ2lCOUM7QUUvaEJtQztFQUFXLGlCQUFBO0NGa2lCOUM7QUVqaUJtQztFQUFXLGlCQUFBO0NGb2lCOUM7QUVuaUJtQztFQUFXLGlCQUFBO0NGc2lCOUM7QUVyaUJtQztFQUFXLGlCQUFBO0NGd2lCOUM7QUV2aUJtQztFQUFXLGlCQUFBO0NGMGlCOUM7QUV6aUJtQztFQUFXLGlCQUFBO0NGNGlCOUM7QUUzaUJtQztFQUFXLGlCQUFBO0NGOGlCOUM7QUU3aUJtQztFQUFXLGlCQUFBO0NGZ2pCOUM7QUUvaUJtQztFQUFXLGlCQUFBO0NGa2pCOUM7QUVqakJtQztFQUFXLGlCQUFBO0NGb2pCOUM7QUVuakJtQztFQUFXLGlCQUFBO0NGc2pCOUM7QUVyakJtQztFQUFXLGlCQUFBO0NGd2pCOUM7QUV2akJtQztFQUFXLGlCQUFBO0NGMGpCOUM7QUV6akJtQztFQUFXLGlCQUFBO0NGNGpCOUM7QUUzakJtQztFQUFXLGlCQUFBO0NGOGpCOUM7QUU3akJtQztFQUFXLGlCQUFBO0NGZ2tCOUM7QUUvakJtQztFQUFXLGlCQUFBO0NGa2tCOUM7QUVqa0JtQztFQUFXLGlCQUFBO0NGb2tCOUM7QUVua0JtQztFQUFXLGlCQUFBO0NGc2tCOUM7QUVya0JtQztFQUFXLGlCQUFBO0NGd2tCOUM7QUUvakJtQztFQUFXLGlCQUFBO0NGa2tCOUM7QUVqa0JtQztFQUFXLGlCQUFBO0NGb2tCOUM7QUVua0JtQztFQUFXLGlCQUFBO0NGc2tCOUM7QUVya0JtQztFQUFXLGlCQUFBO0NGd2tCOUM7QUV2a0JtQztFQUFXLGlCQUFBO0NGMGtCOUM7QUV6a0JtQztFQUFXLGlCQUFBO0NGNGtCOUM7QUUza0JtQztFQUFXLGlCQUFBO0NGOGtCOUM7QUU3a0JtQztFQUFXLGlCQUFBO0NGZ2xCOUM7QUUva0JtQztFQUFXLGlCQUFBO0NGa2xCOUM7QUVqbEJtQztFQUFXLGlCQUFBO0NGb2xCOUM7QUVubEJtQztFQUFXLGlCQUFBO0NGc2xCOUM7QUVybEJtQztFQUFXLGlCQUFBO0NGd2xCOUM7QUV2bEJtQztFQUFXLGlCQUFBO0NGMGxCOUM7QUV6bEJtQztFQUFXLGlCQUFBO0NGNGxCOUM7QUUzbEJtQztFQUFXLGlCQUFBO0NGOGxCOUM7QUU3bEJtQztFQUFXLGlCQUFBO0NGZ21COUM7QUUvbEJtQztFQUFXLGlCQUFBO0NGa21COUM7QUVqbUJtQztFQUFXLGlCQUFBO0NGb21COUM7QUVubUJtQztFQUFXLGlCQUFBO0NGc21COUM7QUVybUJtQztFQUFXLGlCQUFBO0NGd21COUM7QUV2bUJtQztFQUFXLGlCQUFBO0NGMG1COUM7QUV6bUJtQztFQUFXLGlCQUFBO0NGNG1COUM7QUUzbUJtQztFQUFXLGlCQUFBO0NGOG1COUM7QUU3bUJtQztFQUFXLGlCQUFBO0NGZ25COUM7QUUvbUJtQztFQUFXLGlCQUFBO0NGa25COUM7QUVqbkJtQztFQUFXLGlCQUFBO0NGb25COUM7QUVubkJtQztFQUFXLGlCQUFBO0NGc25COUM7QUVybkJtQztFQUFXLGlCQUFBO0NGd25COUM7QUV2bkJtQztFQUFXLGlCQUFBO0NGMG5COUM7QUV6bkJtQztFQUFXLGlCQUFBO0NGNG5COUM7QUUzbkJtQztFQUFXLGlCQUFBO0NGOG5COUM7QUU3bkJtQztFQUFXLGlCQUFBO0NGZ29COUM7QUUvbkJtQztFQUFXLGlCQUFBO0NGa29COUM7QUVqb0JtQztFQUFXLGlCQUFBO0NGb29COUM7QUVub0JtQztFQUFXLGlCQUFBO0NGc29COUM7QUVyb0JtQztFQUFXLGlCQUFBO0NGd29COUM7QUV2b0JtQztFQUFXLGlCQUFBO0NG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Q1B5b0NUO0FPbm9DRDtFQUNFLGlCQUFBO0NQcW9DRDtBT2xvQ0Q7RUFDRSxvQkFBQTtFQUNBLGdCQUFBO0VBQ0EsaUJBQUE7RUFDQSxpQkFBQTtDUG9vQ0Q7QU9sb0NDO0VBMk9GO0lBMU9JLGdCQUFBO0dQcW9DRDtDQUNGO0FPN25DRDs7RUFFRSxlQUFBO0NQK25DRDtBTzVuQ0Q7O0VBRUUsMEJBQUE7RUFDQSxjQUFBO0NQOG5DRDtBTzFuQ0Q7RUFBdUIsaUJBQUE7Q1A2bkN0QjtBTzVuQ0Q7RUFBdUIsa0JBQUE7Q1ArbkN0QjtBTzluQ0Q7RUFBdUIsbUJBQUE7Q1Bpb0N0QjtBT2hvQ0Q7RUFBdUIsb0JBQUE7Q1Btb0N0QjtBT2xvQ0Q7RUFBdUIsb0JBQUE7Q1Bxb0N0QjtBT2xvQ0Q7RUFBdUIsMEJBQUE7Q1Bxb0N0QjtBT3BvQ0Q7RUFBdUIsMEJBQUE7Q1B1b0N0QjtBT3RvQ0Q7RUFBdUIsMkJBQUE7Q1B5b0N0QjtBT3RvQ0Q7RUFDRSxlQUFBO0NQd29DRDtBT3RvQ0Q7RUNyR0UsZUFBQTtDUjh1Q0Q7QVE3dUNDOztFQUVFLGVBQUE7Q1IrdUNIO0FPMW9DRDtFQ3hHRSxlQUFBO0NScXZDRDtBUXB2Q0M7O0VBRUUsZUFBQTtDUnN2Q0g7QU85b0NEO0VDM0dFLGVBQUE7Q1I0dkNEO0FRM3ZDQzs7RUFFRSxlQUFBO0NSNnZDSDtBT2xwQ0Q7RUM5R0UsZUFBQTtDUm13Q0Q7QVFsd0NDOztFQUVFLGVBQUE7Q1Jvd0NIO0FPdHBDRDtFQ2pIRSxlQUFBO0NSMHdDRDtBUXp3Q0M7O0VBRUUsZUFBQTtDUjJ3Q0g7QU90cENEO0VBR0UsWUFBQTtFRTNIQSwwQkFBQTtDVGt4Q0Q7QVNqeENDOztFQUVFLDBCQUFBO0NUbXhDSDtBT3hwQ0Q7RUU5SEUsMEJBQUE7Q1R5eENEO0FTeHhDQzs7RUFFRSwwQkFBQTtDVDB4Q0g7QU81cENEO0VFaklFLDBCQUFBO0NUZ3lDRDtBUy94Q0M7O0VBRUUsMEJBQUE7Q1RpeUNIO0FPaHFDRDtFRXBJRSwwQkFBQTtDVHV5Q0Q7QVN0eUNDOztFQUVFLDBCQUFBO0NUd3lDSDtBT3Bx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LG9CQUFBO0NkZytDSDtBY2orQ0M7RUFDRSxvQkFBQTtDZG0rQ0g7QWNwK0NDO0VBQ0UsV0FBQTtDZHMrQ0g7QWN2K0NDO0VBQ0Usb0JBQUE7Q2R5K0NIO0FjMStDQztFQUNFLG9CQUFBO0NkNCtDSDtBYzcrQ0M7RUFDRSxXQUFBO0NkKytDSDtBY2gvQ0M7RUFDRSxvQkFBQTtDZGsvQ0g7QWNuL0NDO0VBQ0Usb0JBQUE7Q2RxL0NIO0FjdC9DQztFQUNFLFdBQUE7Q2R3L0NIO0Fjei9DQztFQUNFLG9CQUFBO0NkMi9DSDtBYzUvQ0M7RUFDRSxtQkFBQTtDZDgvQ0g7QWNoL0NDO0VBQ0UsWUFBQTtDZGsvQ0g7QWNuL0NDO0VBQ0Usb0JBQUE7Q2RxL0NIO0FjdC9DQztFQUNFLG9CQUFBO0Nkdy9DSDtBY3ovQ0M7RUFDRSxXQUFBO0NkMi9DSDtBYzUvQ0M7RUFDRSxvQkFBQTtDZDgvQ0g7QWMvL0NDO0VBQ0Usb0JBQUE7Q2RpZ0RIO0FjbGdEQztFQUNFLFdBQUE7Q2RvZ0RIO0FjcmdEQztFQUNFLG9CQUFBO0NkdWdESDtBY3hnREM7RUFDRSxvQkFBQTtDZDBnREg7QWMzZ0RDO0VBQ0UsV0FBQTtDZDZnREg7QWM5Z0RDO0VBQ0Usb0JBQUE7Q2RnaERIO0FjamhEQztFQUNFLG1CQUFBO0NkbWhESDtBYy9nREM7RUFDRSxZQUFBO0NkaWhESDtBY2ppREM7RUFDRSxXQUFBO0NkbWlESDtBY3BpREM7RUFDRSxtQkFBQTtDZHNpREg7QWN2aURDO0VBQ0UsbUJBQUE7Q2R5aURIO0FjMWlEQztFQUNFLFVBQUE7Q2Q0aURIO0FjN2lEQztFQUNFLG1CQUFBO0NkK2lESDtBY2hqREM7RUFDRSxtQkFBQTtDZGtqREg7QWNuakRDO0VBQ0UsVUFBQTtDZHFqREg7QWN0akRDO0VBQ0UsbUJBQUE7Q2R3akRIO0FjempEQztFQUNFLG1CQUFBO0NkMmpESDtBYzVqREM7RUFDRSxVQUFBO0NkOGpESDtBYy9qREM7RUFDRSxtQkFBQTtDZGlrREg7QWNsa0RDO0VBQ0Usa0JBQUE7Q2Rva0RIO0FjaGtEQztFQUNFLFdBQUE7Q2Rra0RIO0FjcGpEQztFQUNFLGtCQUFBO0Nkc2pESDtBY3ZqREM7RUFDRSwwQkFBQTtDZHlqREg7QWMxakRDO0VBQ0UsMEJBQUE7Q2Q0akRIO0FjN2pEQztFQUNFLGlCQUFBO0NkK2pESDtBY2hrREM7RUFDRSwwQkFBQTtDZGtrREg7QWNua0RDO0VBQ0UsMEJBQUE7Q2Rxa0RIO0FjdGtEQztFQUNFLGlCQUFBO0Nkd2tESDtBY3prREM7RUFDRSwwQkFBQTtDZDJrREg7QWM1a0RDO0VBQ0UsMEJBQUE7Q2Q4a0RIO0FjL2tEQztFQUNFLGlCQUFBO0NkaWxESDtBY2xsREM7RUFDRSwwQkFBQTtDZG9sREg7QWNybERDO0VBQ0UseUJBQUE7Q2R1bERIO0FjeGxEQztFQUNFLGdCQUFBO0NkMGxESDtBWW5tREQ7RUV6Qkk7SUFDRSxZQUFBO0dkK25ESDtFY3huREQ7SUFDRSxZQUFBO0dkMG5ERDtFYzNuREQ7SUFDRSxvQkFBQTtHZDZuREQ7RWM5bkREO0lBQ0Usb0JBQUE7R2Rnb0REO0Vjam9ERDtJQUNFLFdBQUE7R2Rtb0REO0VjcG9ERDtJQUNFLG9CQUFBO0dkc29ERDtFY3ZvREQ7SUFDRSxvQkFBQTtHZHlvREQ7RWMxb0REO0lBQ0UsV0FBQTtHZDRvREQ7RWM3b0REO0lBQ0Usb0JBQUE7R2Qrb0REO0VjaHBERDtJQUNFLG9CQUFBO0dka3BERDtFY25wREQ7SUFDRSxXQUFBO0dkcXBERDtFY3RwREQ7SUFDRSxvQkFBQTtHZHdwREQ7RWN6cEREO0lBQ0UsbUJBQUE7R2QycEREO0VjN29ERDtJQUNFLFlBQUE7R2Qrb0REO0VjaHBERDtJQUNFLG9CQUFBO0dka3BERDtFY25wREQ7SUFDRSxvQkFBQTtHZHFwREQ7RWN0cEREO0lBQ0UsV0FBQTtHZHdwREQ7RWN6cEREO0lBQ0Usb0JBQUE7R2QycEREO0VjNXBERDtJQUNFLG9CQUFBO0dkOHBERDtFYy9wREQ7SUFDRSxXQUFBO0dkaXFERDtFY2xxREQ7SUFDRSxvQkFBQTtHZG9xREQ7RWNycUREO0lBQ0Usb0JBQUE7R2R1cUREO0VjeHFERDtJQUNFLFdBQUE7R2QwcUREO0VjM3FERDtJQUNFLG9CQUFBO0dkNnFERDtFYzlxREQ7SUFDRSxtQkFBQTtHZGdyREQ7RWM1cUREO0lBQ0UsWUFBQTtHZDhxREQ7RWM5ckREO0lBQ0UsV0FBQTtHZGdzREQ7RWNqc0REO0lBQ0UsbUJBQUE7R2Rtc0REO0VjcHNERDtJQUNFLG1CQUFBO0dkc3NERDtFY3ZzREQ7SUFDRSxVQUFBO0dkeXNERDtFYzFzREQ7SUFDRSxtQkFBQTtHZDRzREQ7RWM3c0REO0lBQ0UsbUJBQUE7R2Qrc0REO0VjaHRERDtJQUNFLFVBQUE7R2RrdEREO0VjbnRERDtJQUNFLG1CQUFBO0dkcXRERDtFY3R0REQ7SUFDRSxtQkFBQTtHZHd0REQ7RWN6dEREO0lBQ0UsVUFBQTtHZDJ0REQ7RWM1dEREO0lBQ0UsbUJBQUE7R2Q4dEREO0VjL3RERDtJQUNFLGtCQUFBO0dkaXVERDtFYzd0REQ7SUFDRSxXQUFBO0dkK3RERDtFY2p0REQ7SUFDRSxrQkFBQTtHZG10REQ7RWNwdEREO0lBQ0UsMEJBQUE7R2RzdEREO0VjdnRERDtJQUNFLDBCQUFBO0dkeXRERDtFYzF0REQ7SUFDRSxpQkFBQTtHZDR0REQ7RWM3dEREO0lBQ0UsMEJBQUE7R2QrdEREO0VjaHVERDtJQUNFLDBCQUFBO0dka3VERDtFY251REQ7SUFDRSxpQkFBQTtHZHF1REQ7RWN0dUREO0lBQ0UsMEJBQUE7R2R3dUREO0VjenVERDtJQUNFLDBCQUFBO0dkMnVERDtFYzV1REQ7SUFDRSxpQkFBQTtHZDh1REQ7RWMvdUREO0lBQ0UsMEJBQUE7R2RpdkREO0VjbHZERDtJQUNFLHlCQUFBO0dkb3ZERDtFY3J2REQ7SUFDRSxnQkFBQTtHZHV2REQ7Q0FDRjtBWXh2REQ7RUVsQ0k7SUFDRSxZQUFBO0dkNnhESDtFY3R4REQ7SUFDRSxZQUFBO0dkd3hERDtFY3p4REQ7SUFDRSxvQkFBQTtHZDJ4REQ7RWM1eEREO0lBQ0Usb0JBQUE7R2Q4eEREO0VjL3hERDtJQUNFLFdBQUE7R2RpeUREO0VjbHlERDtJQUNFLG9CQUFBO0dkb3lERDtFY3J5REQ7SUFDRSxvQkFBQTtHZHV5REQ7RWN4eUREO0lBQ0UsV0FBQTtHZDB5REQ7RWMzeUREO0lBQ0Usb0JBQUE7R2Q2eUREO0VjOXlERDtJQUNFLG9CQUFBO0dkZ3pERDtFY2p6REQ7SUFDRSxXQUFBO0dkbXpERDtFY3B6REQ7SUFDRSxvQkFBQTtHZHN6REQ7RWN2ekREO0lBQ0UsbUJBQUE7R2R5ekREO0VjM3lERDtJQUNFLFlBQUE7R2Q2eUREO0VjOXlERDtJQUNFLG9CQUFBO0dkZ3pERDtFY2p6REQ7SUFDRSxvQkFBQTtHZG16REQ7RWNwekREO0lBQ0UsV0FBQTtHZHN6REQ7RWN2ekREO0lBQ0Usb0JBQUE7R2R5ekREO0VjMXpERDtJQUNFLG9CQUFBO0dkNHpERDtFYzd6REQ7SUFDRSxXQUFBO0dkK3pERDtFY2gwREQ7SUFDRSxvQkFBQTtHZGswREQ7RWNuMEREO0lBQ0Usb0JBQUE7R2RxMEREO0VjdDBERDtJQUNFLFdBQUE7R2R3MEREO0VjejBERDtJQUNFLG9CQUFBO0dkMjBERDtFYzUwREQ7SUFDRSxtQkFBQTtHZDgwREQ7RWMxMEREO0lBQ0UsWUFBQTtHZDQwREQ7RWM1MUREO0lBQ0UsV0FBQTtHZDgxREQ7RWMvMUREO0lBQ0UsbUJBQUE7R2RpMkREO0VjbDJERDtJQUNFLG1CQUFBO0dkbzJERDtFY3IyREQ7SUFDRSxVQUFBO0dkdTJERDtFY3gyREQ7SUFDRSxtQkFBQTtHZDAyREQ7RWMzMkREO0lBQ0UsbUJBQUE7R2Q2MkREO0VjOTJERDtJQUNFLFVBQUE7R2RnM0REO0VjajNERDtJQUNFLG1CQUFBO0dkbTNERDtFY3AzREQ7SUFDRSxtQkFBQTtHZHMzREQ7RWN2M0REO0lBQ0UsVUFBQTtHZHkzREQ7RWMxM0REO0lBQ0UsbUJBQUE7R2Q0M0REO0VjNzNERDtJQUNFLGtCQUFBO0dkKzNERDtFYzMzREQ7SUFDRSxXQUFBO0dkNjNERDtFYy8yREQ7SUFDRSxrQkFBQTtHZGkzREQ7RWNsM0REO0lBQ0UsMEJBQUE7R2RvM0REO0VjcjNERDtJQUNFLDBCQUFBO0dkdTNERDtFY3gzREQ7SUFDRSxpQkFBQTtHZDAzREQ7RWMzM0REO0lBQ0UsMEJBQUE7R2Q2M0REO0VjOTNERDtJQUNFLDBCQUFBO0dkZzRERDtFY2o0REQ7SUFDRSxpQkFBQTtHZG00REQ7RWNwNEREO0lBQ0UsMEJBQUE7R2RzNEREO0VjdjRERDtJQUNFLDBCQUFBO0dkeTRERDtFYzE0REQ7SUFDRSxpQkFBQTtHZDQ0REQ7RWM3NEREO0lBQ0UsMEJBQUE7R2QrNEREO0VjaDVERDtJQUNFLHlCQUFBO0dkazVERDtFY241REQ7SUFDRSxnQkFBQTtHZHE1REQ7Q0FDRjtBWTc0REQ7RUUzQ0k7SUFDRSxZQUFBO0dkMjdESDtFY3A3REQ7SUFDRSxZQUFBO0dkczdERDtFY3Y3REQ7SUFDRSxvQkFBQTtHZHk3REQ7RWMxN0REO0lBQ0Usb0JBQUE7R2Q0N0REO0VjNzdERDtJQUNFLFdBQUE7R2QrN0REO0VjaDhERDtJQUNFLG9CQUFBO0dkazhERDtFY244REQ7SUFDRSxvQkFBQTtHZHE4REQ7RWN0OEREO0lBQ0UsV0FBQTtHZHc4REQ7RWN6OEREO0lBQ0Usb0JBQUE7R2QyOEREO0VjNThERDtJQUNFLG9CQUFBO0dkODhERDtFYy84REQ7SUFDRSxXQUFBO0dkaTlERDtFY2w5REQ7SUFDRSxvQkFBQTtHZG85REQ7RWNyOUREO0lBQ0UsbUJBQUE7R2R1OUREO0VjejhERDtJQUNFLFlBQUE7R2QyOEREO0VjNThERDtJQUNFLG9CQUFBO0dkODhERDtFYy84REQ7SUFDRSxvQkFBQTtHZGk5REQ7RWNsOUREO0lBQ0UsV0FBQTtHZG85REQ7RWNyOUREO0lBQ0Usb0JBQUE7R2R1OUREO0VjeDlERDtJQUNFLG9CQUFBO0dkMDlERDtFYzM5REQ7SUFDRSxXQUFBO0dkNjlERDtFYzk5REQ7SUFDRSxvQkFBQTtHZGcrREQ7RWNqK0REO0lBQ0Usb0JBQUE7R2RtK0REO0VjcCtERDtJQUNFLFdBQUE7R2RzK0REO0VjditERDtJQUNFLG9CQUFBO0dkeStERDtFYzErREQ7SUFDRSxtQkFBQTtHZDQrREQ7RWN4K0REO0lBQ0UsWUFBQTtHZDArREQ7RWMxL0REO0lBQ0UsV0FBQTtHZDQvREQ7RWM3L0REO0lBQ0Us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cG9ydCdzIHNob3VsZCBsaXZlIGluIHRoaXMgZmlsZSFcbiovXG4vKipcbiAqICBEbyBub3QgcmVtb3ZlIHRoaXMgY29tbWVudHMgYmVsbG93LiBJdCdzIHRoZSBtYXJrZXJzIHVzZWQgYnkgd2lyZWRlcCB0byBpbmplY3RcbiAqICBsZXNzIGRlcGVuZGVuY2llcyB3aGVuIGRlZmluZWQgaW4gdGhlIGJvd2VyLmpzb24gb2YgeW91ciBkZXBlbmRlbmNpZXNcbiAqL1xuLyohXG4gKiBCb290c3RyYXAgdjMuMy43IChodHRwOi8vZ2V0Ym9vdHN0cmFwLmNvbSlcbiAqIENvcHlyaWdodCAyMDExLTIwMTYgVHdpdHRlciwgSW5jLlxuICogTGljZW5zZWQgdW5kZXIgTUlUIChodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvYmxvYi9tYXN0ZXIvTElDRU5TRSlcbiAqL1xuLyohIG5vcm1hbGl6ZS5jc3MgdjMuMC4zIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xuaHRtbCB7XG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xuICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xufVxuYm9keSB7XG4gIG1hcmdpbjogMDtcbn1cbmFydGljbGUsXG5hc2lkZSxcbmRldGFpbHMsXG5maWdjYXB0aW9uLFxuZmlndXJlLFxuZm9vdGVyLFxuaGVhZGVyLFxuaGdyb3VwLFxubWFpbixcbm1lbnUsXG5uYXYsXG5zZWN0aW9uLFxuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuYXVkaW8sXG5jYW52YXMsXG5wcm9ncmVzcyxcbnZpZGVvIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5hdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICBkaXNwbGF5OiBub25lO1xuICBoZWlnaHQ6IDA7XG59XG5baGlkZGVuXSxcbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbmE6YWN0aXZlLFxuYTpob3ZlciB7XG4gIG91dGxpbmU6IDA7XG59XG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQ7XG59XG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5kZm4ge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDAuNjdlbSAwO1xufVxubWFyayB7XG4gIGJhY2tncm91bmQ6ICNmZjA7XG4gIGNvbG9yOiAjMDAwO1xufVxuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbn1cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTtcbn1cbmltZyB7XG4gIGJvcmRlcjogMDtcbn1cbnN2Zzpub3QoOnJvb3QpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMWVtIDQwcHg7XG59XG5ociB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICBoZWlnaHQ6IDA7XG59XG5wcmUge1xuICBvdmVyZmxvdzogYXV0bztcbn1cbmNvZGUsXG5rYmQsXG5wcmUsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDFlbTtcbn1cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBmb250OiBpbmhlcml0O1xuICBtYXJnaW46IDA7XG59XG5idXR0b24ge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cbmJ1dHRvbixcbnNlbGVjdCB7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuYnV0dG9uLFxuaHRtbCBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLFxuaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxuaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5idXR0b25bZGlzYWJsZWRdLFxuaHRtbCBpbnB1dFtkaXNhYmxlZF0ge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5pbnB1dDo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDtcbn1cbmlucHV0IHtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbn1cbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcbmlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmc6IDA7XG59XG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbn1cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG59XG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cbmZpZWxkc2V0IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2MwYzBjMDtcbiAgbWFyZ2luOiAwIDJweDtcbiAgcGFkZGluZzogMC4zNWVtIDAuNjI1ZW0gMC43NWVtO1xufVxubGVnZW5kIHtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAwO1xufVxudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bztcbn1cbm9wdGdyb3VwIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG50YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIGJvcmRlci1zcGFjaW5nOiAwO1xufVxudGQsXG50aCB7XG4gIHBhZGRpbmc6IDA7XG59XG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdHbHlwaGljb25zIEhhbGZsaW5ncyc7XG4gIHNyYzogdXJsKCcuLi9mb250cy9nbHlwaGljb25zLWhhbGZsaW5ncy1yZWd1bGFyLmVvdCcpO1xuICBzcmM6IHVybCgnLi4vZm9udHMvZ2x5cGhpY29ucy1oYWxmbGluZ3MtcmVndWxhci5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLCB1cmwoJy4uL2ZvbnRzL2dseXBoaWNvbnMtaGFsZmxpbmdzLXJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnLi4vZm9udHMvZ2x5cGhpY29ucy1oYWxmbGluZ3MtcmVndWxhci53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnLi4vZm9udHMvZ2x5cGhpY29ucy1oYWxmbGluZ3MtcmVndWxhci50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksIHVybCgnLi4vZm9udHMvZ2x5cGhpY29ucy1oYWxmbGluZ3MtcmVndWxhci5zdmcjZ2x5cGhpY29uc19oYWxmbGluZ3NyZWd1bGFyJykgZm9ybWF0KCdzdmcnKTtcbn1cbi5nbHlwaGljb24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogMXB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiAnR2x5cGhpY29ucyBIYWxmbGluZ3MnO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbn1cbi5nbHlwaGljb24tYXN0ZXJpc2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDAwMmFcIjtcbn1cbi5nbHlwaGljb24tcGx1czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcMDAyYlwiO1xufVxuLmdseXBoaWNvbi1ldXJvOmJlZm9yZSxcbi5nbHlwaGljb24tZXVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFwyMGFjXCI7XG59XG4uZ2x5cGhpY29uLW1pbnVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFwyMjEyXCI7XG59XG4uZ2x5cGhpY29uLWNsb3VkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFwyNjAxXCI7XG59XG4uZ2x5cGhpY29uLWVudmVsb3BlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFwyNzA5XCI7XG59XG4uZ2x5cGhpY29uLXBlbmNpbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcMjcwZlwiO1xufVxuLmdseXBoaWNvbi1nbGFzczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAwMVwiO1xufVxuLmdseXBoaWNvbi1tdXNpYzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAwMlwiO1xufVxuLmdseXBoaWNvbi1zZWFyY2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMDNcIjtcbn1cbi5nbHlwaGljb24taGVhcnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMDVcIjtcbn1cbi5nbHlwaGljb24tc3RhcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAwNlwiO1xufVxuLmdseXBoaWNvbi1zdGFyLWVtcHR5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDA3XCI7XG59XG4uZ2x5cGhpY29uLXVzZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMDhcIjtcbn1cbi5nbHlwaGljb24tZmlsbTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAwOVwiO1xufVxuLmdseXBoaWNvbi10aC1sYXJnZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAxMFwiO1xufVxuLmdseXBoaWNvbi10aDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAxMVwiO1xufVxuLmdseXBoaWNvbi10aC1saXN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDEyXCI7XG59XG4uZ2x5cGhpY29uLW9rOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDEzXCI7XG59XG4uZ2x5cGhpY29uLXJlbW92ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAxNFwiO1xufVxuLmdseXBoaWNvbi16b29tLWluOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDE1XCI7XG59XG4uZ2x5cGhpY29uLXpvb20tb3V0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDE2XCI7XG59XG4uZ2x5cGhpY29uLW9mZjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAxN1wiO1xufVxuLmdseXBoaWNvbi1zaWduYWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMThcIjtcbn1cbi5nbHlwaGljb24tY29nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDE5XCI7XG59XG4uZ2x5cGhpY29uLXRyYXNoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDIwXCI7XG59XG4uZ2x5cGhpY29uLWhvbWU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMjFcIjtcbn1cbi5nbHlwaGljb24tZmlsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAyMlwiO1xufVxuLmdseXBoaWNvbi10aW1lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDIzXCI7XG59XG4uZ2x5cGhpY29uLXJvYWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMjRcIjtcbn1cbi5nbHlwaGljb24tZG93bmxvYWQtYWx0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDI1XCI7XG59XG4uZ2x5cGhpY29uLWRvd25sb2FkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDI2XCI7XG59XG4uZ2x5cGhpY29uLXVwbG9hZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAyN1wiO1xufVxuLmdseXBoaWNvbi1pbmJveDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAyOFwiO1xufVxuLmdseXBoaWNvbi1wbGF5LWNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAyOVwiO1xufVxuLmdseXBoaWNvbi1yZXBlYXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMzBcIjtcbn1cbi5nbHlwaGljb24tcmVmcmVzaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAzMVwiO1xufVxuLmdseXBoaWNvbi1saXN0LWFsdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAzMlwiO1xufVxuLmdseXBoaWNvbi1sb2NrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDMzXCI7XG59XG4uZ2x5cGhpY29uLWZsYWc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMzRcIjtcbn1cbi5nbHlwaGljb24taGVhZHBob25lczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAzNVwiO1xufVxuLmdseXBoaWNvbi12b2x1bWUtb2ZmOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDM2XCI7XG59XG4uZ2x5cGhpY29uLXZvbHVtZS1kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDM3XCI7XG59XG4uZ2x5cGhpY29uLXZvbHVtZS11cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAzOFwiO1xufVxuLmdseXBoaWNvbi1xcmNvZGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMzlcIjtcbn1cbi5nbHlwaGljb24tYmFyY29kZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA0MFwiO1xufVxuLmdseXBoaWNvbi10YWc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNDFcIjtcbn1cbi5nbHlwaGljb24tdGFnczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA0MlwiO1xufVxuLmdseXBoaWNvbi1ib29rOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDQzXCI7XG59XG4uZ2x5cGhpY29uLWJvb2ttYXJrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDQ0XCI7XG59XG4uZ2x5cGhpY29uLXByaW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDQ1XCI7XG59XG4uZ2x5cGhpY29uLWNhbWVyYTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA0NlwiO1xufVxuLmdseXBoaWNvbi1mb250OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDQ3XCI7XG59XG4uZ2x5cGhpY29uLWJvbGQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNDhcIjtcbn1cbi5nbHlwaGljb24taXRhbGljOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDQ5XCI7XG59XG4uZ2x5cGhpY29uLXRleHQtaGVpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDUwXCI7XG59XG4uZ2x5cGhpY29uLXRleHQtd2lkdGg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNTFcIjtcbn1cbi5nbHlwaGljb24tYWxpZ24tbGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA1MlwiO1xufVxuLmdseXBoaWNvbi1hbGlnbi1jZW50ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNTNcIjtcbn1cbi5nbHlwaGljb24tYWxpZ24tcmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNTRcIjtcbn1cbi5nbHlwaGljb24tYWxpZ24tanVzdGlmeTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA1NVwiO1xufVxuLmdseXBoaWNvbi1saXN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDU2XCI7XG59XG4uZ2x5cGhpY29uLWluZGVudC1sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDU3XCI7XG59XG4uZ2x5cGhpY29uLWluZGVudC1yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA1OFwiO1xufVxuLmdseXBoaWNvbi1mYWNldGltZS12aWRlbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA1OVwiO1xufVxuLmdseXBoaWNvbi1waWN0dXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDYwXCI7XG59XG4uZ2x5cGhpY29uLW1hcC1tYXJrZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNjJcIjtcbn1cbi5nbHlwaGljb24tYWRqdXN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDYzXCI7XG59XG4uZ2x5cGhpY29uLXRpbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNjRcIjtcbn1cbi5nbHlwaGljb24tZWRpdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA2NVwiO1xufVxuLmdseXBoaWNvbi1zaGFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA2NlwiO1xufVxuLmdseXBoaWNvbi1jaGVjazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA2N1wiO1xufVxuLmdseXBoaWNvbi1tb3ZlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDY4XCI7XG59XG4uZ2x5cGhpY29uLXN0ZXAtYmFja3dhcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNjlcIjtcbn1cbi5nbHlwaGljb24tZmFzdC1iYWNrd2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA3MFwiO1xufVxuLmdseXBoaWNvbi1iYWNrd2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA3MVwiO1xufVxuLmdseXBoaWNvbi1wbGF5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDcyXCI7XG59XG4uZ2x5cGhpY29uLXBhdXNlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDczXCI7XG59XG4uZ2x5cGhpY29uLXN0b3A6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNzRcIjtcbn1cbi5nbHlwaGljb24tZm9yd2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA3NVwiO1xufVxuLmdseXBoaWNvbi1mYXN0LWZvcndhcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNzZcIjtcbn1cbi5nbHlwaGljb24tc3RlcC1mb3J3YXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDc3XCI7XG59XG4uZ2x5cGhpY29uLWVqZWN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDc4XCI7XG59XG4uZ2x5cGhpY29uLWNoZXZyb24tbGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA3OVwiO1xufVxuLmdseXBoaWNvbi1jaGV2cm9uLXJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDgwXCI7XG59XG4uZ2x5cGhpY29uLXBsdXMtc2lnbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA4MVwiO1xufVxuLmdseXBoaWNvbi1taW51cy1zaWduOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDgyXCI7XG59XG4uZ2x5cGhpY29uLXJlbW92ZS1zaWduOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDgzXCI7XG59XG4uZ2x5cGhpY29uLW9rLXNpZ246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwODRcIjtcbn1cbi5nbHlwaGljb24tcXVlc3Rpb24tc2lnbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA4NVwiO1xufVxuLmdseXBoaWNvbi1pbmZvLXNpZ246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwODZcIjtcbn1cbi5nbHlwaGljb24tc2NyZWVuc2hvdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA4N1wiO1xufVxuLmdseXBoaWNvbi1yZW1vdmUtY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDg4XCI7XG59XG4uZ2x5cGhpY29uLW9rLWNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA4OVwiO1xufVxuLmdseXBoaWNvbi1iYW4tY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDkwXCI7XG59XG4uZ2x5cGhpY29uLWFycm93LWxlZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwOTFcIjtcbn1cbi5nbHlwaGljb24tYXJyb3ctcmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwOTJcIjtcbn1cbi5nbHlwaGljb24tYXJyb3ctdXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwOTNcIjtcbn1cbi5nbHlwaGljb24tYXJyb3ctZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA5NFwiO1xufVxuLmdseXBoaWNvbi1zaGFyZS1hbHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwOTVcIjtcbn1cbi5nbHlwaGljb24tcmVzaXplLWZ1bGw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwOTZcIjtcbn1cbi5nbHlwaGljb24tcmVzaXplLXNtYWxsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDk3XCI7XG59XG4uZ2x5cGhpY29uLWV4Y2xhbWF0aW9uLXNpZ246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMDFcIjtcbn1cbi5nbHlwaGljb24tZ2lmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEwMlwiO1xufVxuLmdseXBoaWNvbi1sZWFmOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTAzXCI7XG59XG4uZ2x5cGhpY29uLWZpcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMDRcIjtcbn1cbi5nbHlwaGljb24tZXllLW9wZW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMDVcIjtcbn1cbi5nbHlwaGljb24tZXllLWNsb3NlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTA2XCI7XG59XG4uZ2x5cGhpY29uLXdhcm5pbmctc2lnbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEwN1wiO1xufVxuLmdseXBoaWNvbi1wbGFuZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEwOFwiO1xufVxuLmdseXBoaWNvbi1jYWxlbmRhcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEwOVwiO1xufVxuLmdseXBoaWNvbi1yYW5kb206YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMTBcIjtcbn1cbi5nbHlwaGljb24tY29tbWVudDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTExMVwiO1xufVxuLmdseXBoaWNvbi1tYWduZXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMTJcIjtcbn1cbi5nbHlwaGljb24tY2hldnJvbi11cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTExM1wiO1xufVxuLmdseXBoaWNvbi1jaGV2cm9uLWRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMTRcIjtcbn1cbi5nbHlwaGljb24tcmV0d2VldDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTExNVwiO1xufVxuLmdseXBoaWNvbi1zaG9wcGluZy1jYXJ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTE2XCI7XG59XG4uZ2x5cGhpY29uLWZvbGRlci1jbG9zZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTExN1wiO1xufVxuLmdseXBoaWNvbi1mb2xkZXItb3BlbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTExOFwiO1xufVxuLmdseXBoaWNvbi1yZXNpemUtdmVydGljYWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMTlcIjtcbn1cbi5nbHlwaGljb24tcmVzaXplLWhvcml6b250YWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMjBcIjtcbn1cbi5nbHlwaGljb24taGRkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTIxXCI7XG59XG4uZ2x5cGhpY29uLWJ1bGxob3JuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTIyXCI7XG59XG4uZ2x5cGhpY29uLWJlbGw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMjNcIjtcbn1cbi5nbHlwaGljb24tY2VydGlmaWNhdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMjRcIjtcbn1cbi5nbHlwaGljb24tdGh1bWJzLXVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTI1XCI7XG59XG4uZ2x5cGhpY29uLXRodW1icy1kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTI2XCI7XG59XG4uZ2x5cGhpY29uLWhhbmQtcmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMjdcIjtcbn1cbi5nbHlwaGljb24taGFuZC1sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTI4XCI7XG59XG4uZ2x5cGhpY29uLWhhbmQtdXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMjlcIjtcbn1cbi5nbHlwaGljb24taGFuZC1kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTMwXCI7XG59XG4uZ2x5cGhpY29uLWNpcmNsZS1hcnJvdy1yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEzMVwiO1xufVxuLmdseXBoaWNvbi1jaXJjbGUtYXJyb3ctbGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEzMlwiO1xufVxuLmdseXBoaWNvbi1jaXJjbGUtYXJyb3ctdXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMzNcIjtcbn1cbi5nbHlwaGljb24tY2lyY2xlLWFycm93LWRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMzRcIjtcbn1cbi5nbHlwaGljb24tZ2xvYmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMzVcIjtcbn1cbi5nbHlwaGljb24td3JlbmNoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTM2XCI7XG59XG4uZ2x5cGhpY29uLXRhc2tzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTM3XCI7XG59XG4uZ2x5cGhpY29uLWZpbHRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEzOFwiO1xufVxuLmdseXBoaWNvbi1icmllZmNhc2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMzlcIjtcbn1cbi5nbHlwaGljb24tZnVsbHNjcmVlbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE0MFwiO1xufVxuLmdseXBoaWNvbi1kYXNoYm9hcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNDFcIjtcbn1cbi5nbHlwaGljb24tcGFwZXJjbGlwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTQyXCI7XG59XG4uZ2x5cGhpY29uLWhlYXJ0LWVtcHR5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTQzXCI7XG59XG4uZ2x5cGhpY29uLWxpbms6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNDRcIjtcbn1cbi5nbHlwaGljb24tcGhvbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNDVcIjtcbn1cbi5nbHlwaGljb24tcHVzaHBpbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE0NlwiO1xufVxuLmdseXBoaWNvbi11c2Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNDhcIjtcbn1cbi5nbHlwaGljb24tZ2JwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTQ5XCI7XG59XG4uZ2x5cGhpY29uLXNvcnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNTBcIjtcbn1cbi5nbHlwaGljb24tc29ydC1ieS1hbHBoYWJldDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE1MVwiO1xufVxuLmdseXBoaWNvbi1zb3J0LWJ5LWFscGhhYmV0LWFsdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE1MlwiO1xufVxuLmdseXBoaWNvbi1zb3J0LWJ5LW9yZGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTUzXCI7XG59XG4uZ2x5cGhpY29uLXNvcnQtYnktb3JkZXItYWx0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTU0XCI7XG59XG4uZ2x5cGhpY29uLXNvcnQtYnktYXR0cmlidXRlczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE1NVwiO1xufVxuLmdseXBoaWNvbi1zb3J0LWJ5LWF0dHJpYnV0ZXMtYWx0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTU2XCI7XG59XG4uZ2x5cGhpY29uLXVuY2hlY2tlZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE1N1wiO1xufVxuLmdseXBoaWNvbi1leHBhbmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNThcIjtcbn1cbi5nbHlwaGljb24tY29sbGFwc2UtZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE1OVwiO1xufVxuLmdseXBoaWNvbi1jb2xsYXBzZS11cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE2MFwiO1xufVxuLmdseXBoaWNvbi1sb2ctaW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNjFcIjtcbn1cbi5nbHlwaGljb24tZmxhc2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNjJcIjtcbn1cbi5nbHlwaGljb24tbG9nLW91dDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE2M1wiO1xufVxuLmdseXBoaWNvbi1uZXctd2luZG93OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTY0XCI7XG59XG4uZ2x5cGhpY29uLXJlY29yZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE2NVwiO1xufVxuLmdseXBoaWNvbi1zYXZlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTY2XCI7XG59XG4uZ2x5cGhpY29uLW9wZW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNjdcIjtcbn1cbi5nbHlwaGljb24tc2F2ZWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNjhcIjtcbn1cbi5nbHlwaGljb24taW1wb3J0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTY5XCI7XG59XG4uZ2x5cGhpY29uLWV4cG9ydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE3MFwiO1xufVxuLmdseXBoaWNvbi1zZW5kOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTcxXCI7XG59XG4uZ2x5cGhpY29uLWZsb3BweS1kaXNrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTcyXCI7XG59XG4uZ2x5cGhpY29uLWZsb3BweS1zYXZlZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE3M1wiO1xufVxuLmdseXBoaWNvbi1mbG9wcHktcmVtb3ZlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTc0XCI7XG59XG4uZ2x5cGhpY29uLWZsb3BweS1zYXZlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTc1XCI7XG59XG4uZ2x5cGhpY29uLWZsb3BweS1vcGVuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTc2XCI7XG59XG4uZ2x5cGhpY29uLWNyZWRpdC1jYXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTc3XCI7XG59XG4uZ2x5cGhpY29uLXRyYW5zZmVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTc4XCI7XG59XG4uZ2x5cGhpY29uLWN1dGxlcnk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNzlcIjtcbn1cbi5nbHlwaGljb24taGVhZGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTgwXCI7XG59XG4uZ2x5cGhpY29uLWNvbXByZXNzZWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxODFcIjtcbn1cbi5nbHlwaGljb24tZWFycGhvbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxODJcIjtcbn1cbi5nbHlwaGljb24tcGhvbmUtYWx0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTgzXCI7XG59XG4uZ2x5cGhpY29uLXRvd2VyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTg0XCI7XG59XG4uZ2x5cGhpY29uLXN0YXRzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTg1XCI7XG59XG4uZ2x5cGhpY29uLXNkLXZpZGVvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTg2XCI7XG59XG4uZ2x5cGhpY29uLWhkLXZpZGVvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTg3XCI7XG59XG4uZ2x5cGhpY29uLXN1YnRpdGxlczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE4OFwiO1xufVxuLmdseXBoaWNvbi1zb3VuZC1zdGVyZW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxODlcIjtcbn1cbi5nbHlwaGljb24tc291bmQtZG9sYnk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxOTBcIjtcbn1cbi5nbHlwaGljb24tc291bmQtNS0xOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTkxXCI7XG59XG4uZ2x5cGhpY29uLXNvdW5kLTYtMTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE5MlwiO1xufVxuLmdseXBoaWNvbi1zb3VuZC03LTE6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxOTNcIjtcbn1cbi5nbHlwaGljb24tY29weXJpZ2h0LW1hcms6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxOTRcIjtcbn1cbi5nbHlwaGljb24tcmVnaXN0cmF0aW9uLW1hcms6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxOTVcIjtcbn1cbi5nbHlwaGljb24tY2xvdWQtZG93bmxvYWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxOTdcIjtcbn1cbi5nbHlwaGljb24tY2xvdWQtdXBsb2FkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTk4XCI7XG59XG4uZ2x5cGhpY29uLXRyZWUtY29uaWZlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE5OVwiO1xufVxuLmdseXBoaWNvbi10cmVlLWRlY2lkdW91czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIwMFwiO1xufVxuLmdseXBoaWNvbi1jZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIwMVwiO1xufVxuLmdseXBoaWNvbi1zYXZlLWZpbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMDJcIjtcbn1cbi5nbHlwaGljb24tb3Blbi1maWxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjAzXCI7XG59XG4uZ2x5cGhpY29uLWxldmVsLXVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjA0XCI7XG59XG4uZ2x5cGhpY29uLWNvcHk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMDVcIjtcbn1cbi5nbHlwaGljb24tcGFzdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMDZcIjtcbn1cbi5nbHlwaGljb24tYWxlcnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMDlcIjtcbn1cbi5nbHlwaGljb24tZXF1YWxpemVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjEwXCI7XG59XG4uZ2x5cGhpY29uLWtpbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMTFcIjtcbn1cbi5nbHlwaGljb24tcXVlZW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMTJcIjtcbn1cbi5nbHlwaGljb24tcGF3bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIxM1wiO1xufVxuLmdseXBoaWNvbi1iaXNob3A6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMTRcIjtcbn1cbi5nbHlwaGljb24ta25pZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjE1XCI7XG59XG4uZ2x5cGhpY29uLWJhYnktZm9ybXVsYTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIxNlwiO1xufVxuLmdseXBoaWNvbi10ZW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFwyNmZhXCI7XG59XG4uZ2x5cGhpY29uLWJsYWNrYm9hcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMThcIjtcbn1cbi5nbHlwaGljb24tYmVkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjE5XCI7XG59XG4uZ2x5cGhpY29uLWFwcGxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmOGZmXCI7XG59XG4uZ2x5cGhpY29uLWVyYXNlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjIxXCI7XG59XG4uZ2x5cGhpY29uLWhvdXJnbGFzczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcMjMxYlwiO1xufVxuLmdseXBoaWNvbi1sYW1wOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjIzXCI7XG59XG4uZ2x5cGhpY29uLWR1cGxpY2F0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIyNFwiO1xufVxuLmdseXBoaWNvbi1waWdneS1iYW5rOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjI1XCI7XG59XG4uZ2x5cGhpY29uLXNjaXNzb3JzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjI2XCI7XG59XG4uZ2x5cGhpY29uLWJpdGNvaW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMjdcIjtcbn1cbi5nbHlwaGljb24tYnRjOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjI3XCI7XG59XG4uZ2x5cGhpY29uLXhidDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIyN1wiO1xufVxuLmdseXBoaWNvbi15ZW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDAwYTVcIjtcbn1cbi5nbHlwaGljb24tanB5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFwwMGE1XCI7XG59XG4uZ2x5cGhpY29uLXJ1YmxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFwyMGJkXCI7XG59XG4uZ2x5cGhpY29uLXJ1YjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcMjBiZFwiO1xufVxuLmdseXBoaWNvbi1zY2FsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIzMFwiO1xufVxuLmdseXBoaWNvbi1pY2UtbG9sbHk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMzFcIjtcbn1cbi5nbHlwaGljb24taWNlLWxvbGx5LXRhc3RlZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIzMlwiO1xufVxuLmdseXBoaWNvbi1lZHVjYXRpb246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMzNcIjtcbn1cbi5nbHlwaGljb24tb3B0aW9uLWhvcml6b250YWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMzRcIjtcbn1cbi5nbHlwaGljb24tb3B0aW9uLXZlcnRpY2FsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjM1XCI7XG59XG4uZ2x5cGhpY29uLW1lbnUtaGFtYnVyZ2VyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjM2XCI7XG59XG4uZ2x5cGhpY29uLW1vZGFsLXdpbmRvdzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIzN1wiO1xufVxuLmdseXBoaWNvbi1vaWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMzhcIjtcbn1cbi5nbHlwaGljb24tZ3JhaW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMzlcIjtcbn1cbi5nbHlwaGljb24tc3VuZ2xhc3NlczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTI0MFwiO1xufVxuLmdseXBoaWNvbi10ZXh0LXNpemU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyNDFcIjtcbn1cbi5nbHlwaGljb24tdGV4dC1jb2xvcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTI0MlwiO1xufVxuLmdseXBoaWNvbi10ZXh0LWJhY2tncm91bmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyNDNcIjtcbn1cbi5nbHlwaGljb24tb2JqZWN0LWFsaWduLXRvcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTI0NFwiO1xufVxuLmdseXBoaWNvbi1vYmplY3QtYWxpZ24tYm90dG9tOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjQ1XCI7XG59XG4uZ2x5cGhpY29uLW9iamVjdC1hbGlnbi1ob3Jpem9udGFsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjQ2XCI7XG59XG4uZ2x5cGhpY29uLW9iamVjdC1hbGlnbi1sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjQ3XCI7XG59XG4uZ2x5cGhpY29uLW9iamVjdC1hbGlnbi12ZXJ0aWNhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTI0OFwiO1xufVxuLmdseXBoaWNvbi1vYmplY3QtYWxpZ24tcmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyNDlcIjtcbn1cbi5nbHlwaGljb24tdHJpYW5nbGUtcmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyNTBcIjtcbn1cbi5nbHlwaGljb24tdHJpYW5nbGUtbGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTI1MVwiO1xufVxuLmdseXBoaWNvbi10cmlhbmdsZS1ib3R0b206YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyNTJcIjtcbn1cbi5nbHlwaGljb24tdHJpYW5nbGUtdG9wOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjUzXCI7XG59XG4uZ2x5cGhpY29uLWNvbnNvbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyNTRcIjtcbn1cbi5nbHlwaGljb24tc3VwZXJzY3JpcHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyNTVcIjtcbn1cbi5nbHlwaGljb24tc3Vic2NyaXB0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjU2XCI7XG59XG4uZ2x5cGhpY29uLW1lbnUtbGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTI1N1wiO1xufVxuLmdseXBoaWNvbi1tZW51LXJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjU4XCI7XG59XG4uZ2x5cGhpY29uLW1lbnUtZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTI1OVwiO1xufVxuLmdseXBoaWNvbi1tZW51LXVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjYwXCI7XG59XG4qIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4qOmJlZm9yZSxcbio6YWZ0ZXIge1xuICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbmh0bWwge1xuICBmb250LXNpemU6IDEwcHg7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcbn1cbmJvZHkge1xuICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xuICBjb2xvcjogIzMzMzMzMztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cbmlucHV0LFxuYnV0dG9uLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbn1cbmEge1xuICBjb2xvcjogIzAwZTVmMDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuYTpob3ZlcixcbmE6Zm9jdXMge1xuICBjb2xvcjogIzAwOWNhMztcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5hOmZvY3VzIHtcbiAgb3V0bGluZTogNXB4IGF1dG8gLXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yO1xuICBvdXRsaW5lLW9mZnNldDogLTJweDtcbn1cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMDtcbn1cbmltZyB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4uaW1nLXJlc3BvbnNpdmUsXG4udGh1bWJuYWlsID4gaW1nLFxuLnRodW1ibmFpbCBhID4gaW1nLFxuLmNhcm91c2VsLWlubmVyID4gLml0ZW0gPiBpbWcsXG4uY2Fyb3VzZWwtaW5uZXIgPiAuaXRlbSA+IGEgPiBpbWcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG59XG4uaW1nLXJvdW5kZWQge1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG59XG4uaW1nLXRodW1ibmFpbCB7XG4gIHBhZGRpbmc6IDRweDtcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NTcxNDM7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcbiAgLW8tdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuLmltZy1jaXJjbGUge1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG59XG5ociB7XG4gIG1hcmdpbi10b3A6IDIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlZWVlZWU7XG59XG4uc3Itb25seSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDFweDtcbiAgaGVpZ2h0OiAxcHg7XG4gIG1hcmdpbjogLTFweDtcbiAgcGFkZGluZzogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcbiAgYm9yZGVyOiAwO1xufVxuLnNyLW9ubHktZm9jdXNhYmxlOmFjdGl2ZSxcbi5zci1vbmx5LWZvY3VzYWJsZTpmb2N1cyB7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IGF1dG87XG4gIG1hcmdpbjogMDtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIGNsaXA6IGF1dG87XG59XG5bcm9sZT1cImJ1dHRvblwiXSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbmgxLFxuaDIsXG5oMyxcbmg0LFxuaDUsXG5oNixcbi5oMSxcbi5oMixcbi5oMyxcbi5oNCxcbi5oNSxcbi5oNiB7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXdlaWdodDogNTAwO1xuICBsaW5lLWhlaWdodDogMS4xO1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbmgxIHNtYWxsLFxuaDIgc21hbGwsXG5oMyBzbWFsbCxcbmg0IHNtYWxsLFxuaDUgc21hbGwsXG5oNiBzbWFsbCxcbi5oMSBzbWFsbCxcbi5oMiBzbWFsbCxcbi5oMyBzbWFsbCxcbi5oNCBzbWFsbCxcbi5oNSBzbWFsbCxcbi5oNiBzbWFsbCxcbmgxIC5zbWFsbCxcbmgyIC5zbWFsbCxcbmgzIC5zbWFsbCxcbmg0IC5zbWFsbCxcbmg1IC5zbWFsbCxcbmg2IC5zbWFsbCxcbi5oMSAuc21hbGwsXG4uaDIgLnNtYWxsLFxuLmgzIC5zbWFsbCxcbi5oNCAuc21hbGwsXG4uaDUgLnNtYWxsLFxuLmg2IC5zbWFsbCB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogIzc3Nzc3Nztcbn1cbmgxLFxuLmgxLFxuaDIsXG4uaDIsXG5oMyxcbi5oMyB7XG4gIG1hcmdpbi10b3A6IDIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5oMSBzbWFsbCxcbi5oMSBzbWFsbCxcbmgyIHNtYWxsLFxuLmgyIHNtYWxsLFxuaDMgc21hbGwsXG4uaDMgc21hbGwsXG5oMSAuc21hbGwsXG4uaDEgLnNtYWxsLFxuaDIgLnNtYWxsLFxuLmgyIC5zbWFsbCxcbmgzIC5zbWFsbCxcbi5oMyAuc21hbGwge1xuICBmb250LXNpemU6IDY1JTtcbn1cbmg0LFxuLmg0LFxuaDUsXG4uaDUsXG5oNixcbi5oNiB7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5oNCBzbWFsbCxcbi5oNCBzbWFsbCxcbmg1IHNtYWxsLFxuLmg1IHNtYWxsLFxuaDYgc21hbGwsXG4uaDYgc21hbGwsXG5oNCAuc21hbGwsXG4uaDQgLnNtYWxsLFxuaDUgLnNtYWxsLFxuLmg1IC5zbWFsbCxcbmg2IC5zbWFsbCxcbi5oNiAuc21hbGwge1xuICBmb250LXNpemU6IDc1JTtcbn1cbmgxLFxuLmgxIHtcbiAgZm9udC1zaXplOiAzNnB4O1xufVxuaDIsXG4uaDIge1xuICBmb250LXNpemU6IDMwcHg7XG59XG5oMyxcbi5oMyB7XG4gIGZvbnQtc2l6ZTogMjRweDtcbn1cbmg0LFxuLmg0IHtcbiAgZm9udC1zaXplOiAxOHB4O1xufVxuaDUsXG4uaDUge1xuICBmb250LXNpemU6IDE0cHg7XG59XG5oNixcbi5oNiB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbnAge1xuICBtYXJnaW46IDAgMCAxMHB4O1xufVxuLmxlYWQge1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmxlYWQge1xuICAgIGZvbnQtc2l6ZTogMjFweDtcbiAgfVxufVxuc21hbGwsXG4uc21hbGwge1xuICBmb250LXNpemU6IDg1JTtcbn1cbm1hcmssXG4ubWFyayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmY2Y4ZTM7XG4gIHBhZGRpbmc6IC4yZW07XG59XG4udGV4dC1sZWZ0IHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi50ZXh0LXJpZ2h0IHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG4udGV4dC1jZW50ZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4udGV4dC1qdXN0aWZ5IHtcbiAgdGV4dC1hbGlnbjoganVzdGlmeTtcbn1cbi50ZXh0LW5vd3JhcCB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4udGV4dC1sb3dlcmNhc2Uge1xuICB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlO1xufVxuLnRleHQtdXBwZXJjYXNlIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cbi50ZXh0LWNhcGl0YWxpemUge1xuICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbn1cbi50ZXh0LW11dGVkIHtcbiAgY29sb3I6ICM3Nzc3Nzc7XG59XG4udGV4dC1wcmltYXJ5IHtcbiAgY29sb3I6ICMwMGU1ZjA7XG59XG5hLnRleHQtcHJpbWFyeTpob3ZlcixcbmEudGV4dC1wcmltYXJ5OmZvY3VzIHtcbiAgY29sb3I6ICMwMGI0YmQ7XG59XG4udGV4dC1zdWNjZXNzIHtcbiAgY29sb3I6ICMzYzc2M2Q7XG59XG5hLnRleHQtc3VjY2Vzczpob3ZlcixcbmEudGV4dC1zdWNjZXNzOmZvY3VzIHtcbiAgY29sb3I6ICMyYjU0MmM7XG59XG4udGV4dC1pbmZvIHtcbiAgY29sb3I6ICMzMTcwOGY7XG59XG5hLnRleHQtaW5mbzpob3ZlcixcbmEudGV4dC1pbmZvOmZvY3VzIHtcbiAgY29sb3I6ICMyNDUyNjk7XG59XG4udGV4dC13YXJuaW5nIHtcbiAgY29sb3I6ICM4YTZkM2I7XG59XG5hLnRleHQtd2FybmluZzpob3ZlcixcbmEudGV4dC13YXJuaW5nOmZvY3VzIHtcbiAgY29sb3I6ICM2NjUxMmM7XG59XG4udGV4dC1kYW5nZXIge1xuICBjb2xvcjogI2E5NDQ0Mjtcbn1cbmEudGV4dC1kYW5nZXI6aG92ZXIsXG5hLnRleHQtZGFuZ2VyOmZvY3VzIHtcbiAgY29sb3I6ICM4NDM1MzQ7XG59XG4uYmctcHJpbWFyeSB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBlNWYwO1xufVxuYS5iZy1wcmltYXJ5OmhvdmVyLFxuYS5iZy1wcmltYXJ5OmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwYjRiZDtcbn1cbi5iZy1zdWNjZXNzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RmZjBkODtcbn1cbmEuYmctc3VjY2Vzczpob3ZlcixcbmEuYmctc3VjY2Vzczpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjMWUyYjM7XG59XG4uYmctaW5mbyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkOWVkZjc7XG59XG5hLmJnLWluZm86aG92ZXIsXG5hLmJnLWluZm86Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYWZkOWVlO1xufVxuLmJnLXdhcm5pbmcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmNmOGUzO1xufVxuYS5iZy13YXJuaW5nOmhvdmVyLFxuYS5iZy13YXJuaW5nOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZWNiNTtcbn1cbi5iZy1kYW5nZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjJkZWRlO1xufVxuYS5iZy1kYW5nZXI6aG92ZXIsXG5hLmJnLWRhbmdlcjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNGI5Yjk7XG59XG4ucGFnZS1oZWFkZXIge1xuICBwYWRkaW5nLWJvdHRvbTogOXB4O1xuICBtYXJnaW46IDQwcHggMCAyMHB4O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VlZWVlZTtcbn1cbnVsLFxub2wge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxudWwgdWwsXG5vbCB1bCxcbnVsIG9sLFxub2wgb2wge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuLmxpc3QtdW5zdHlsZWQge1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG4ubGlzdC1pbmxpbmUge1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbi1sZWZ0OiAtNXB4O1xufVxuLmxpc3QtaW5saW5lID4gbGkge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmctbGVmdDogNXB4O1xuICBwYWRkaW5nLXJpZ2h0OiA1cHg7XG59XG5kbCB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG59XG5kdCxcbmRkIHtcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NTcxNDM7XG59XG5kdCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuZGQge1xuICBtYXJnaW4tbGVmdDogMDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuZGwtaG9yaXpvbnRhbCBkdCB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDE2MHB4O1xuICAgIGNsZWFyOiBsZWZ0O1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgfVxuICAuZGwtaG9yaXpvbnRhbCBkZCB7XG4gICAgbWFyZ2luLWxlZnQ6IDE4MHB4O1xuICB9XG59XG5hYmJyW3RpdGxlXSxcbmFiYnJbZGF0YS1vcmlnaW5hbC10aXRsZV0ge1xuICBjdXJzb3I6IGhlbHA7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgIzc3Nzc3Nztcbn1cbi5pbml0aWFsaXNtIHtcbiAgZm9udC1zaXplOiA5MCU7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5ibG9ja3F1b3RlIHtcbiAgcGFkZGluZzogMTBweCAyMHB4O1xuICBtYXJnaW46IDAgMCAyMHB4O1xuICBmb250LXNpemU6IDE3LjVweDtcbiAgYm9yZGVyLWxlZnQ6IDVweCBzb2xpZCAjZWVlZWVlO1xufVxuYmxvY2txdW90ZSBwOmxhc3QtY2hpbGQsXG5ibG9ja3F1b3RlIHVsOmxhc3QtY2hpbGQsXG5ibG9ja3F1b3RlIG9sOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuYmxvY2txdW90ZSBmb290ZXIsXG5ibG9ja3F1b3RlIHNtYWxsLFxuYmxvY2txdW90ZSAuc21hbGwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiA4MCU7XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xuICBjb2xvcjogIzc3Nzc3Nztcbn1cbmJsb2NrcXVvdGUgZm9vdGVyOmJlZm9yZSxcbmJsb2NrcXVvdGUgc21hbGw6YmVmb3JlLFxuYmxvY2txdW90ZSAuc21hbGw6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcMjAxNCBcXDAwQTAnO1xufVxuLmJsb2NrcXVvdGUtcmV2ZXJzZSxcbmJsb2NrcXVvdGUucHVsbC1yaWdodCB7XG4gIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgYm9yZGVyLXJpZ2h0OiA1cHggc29saWQgI2VlZWVlZTtcbiAgYm9yZGVyLWxlZnQ6IDA7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuLmJsb2NrcXVvdGUtcmV2ZXJzZSBmb290ZXI6YmVmb3JlLFxuYmxvY2txdW90ZS5wdWxsLXJpZ2h0IGZvb3RlcjpiZWZvcmUsXG4uYmxvY2txdW90ZS1yZXZlcnNlIHNtYWxsOmJlZm9yZSxcbmJsb2NrcXVvdGUucHVsbC1yaWdodCBzbWFsbDpiZWZvcmUsXG4uYmxvY2txdW90ZS1yZXZlcnNlIC5zbWFsbDpiZWZvcmUsXG5ibG9ja3F1b3RlLnB1bGwtcmlnaHQgLnNtYWxsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICcnO1xufVxuLmJsb2NrcXVvdGUtcmV2ZXJzZSBmb290ZXI6YWZ0ZXIsXG5ibG9ja3F1b3RlLnB1bGwtcmlnaHQgZm9vdGVyOmFmdGVyLFxuLmJsb2NrcXVvdGUtcmV2ZXJzZSBzbWFsbDphZnRlcixcbmJsb2NrcXVvdGUucHVsbC1yaWdodCBzbWFsbDphZnRlcixcbi5ibG9ja3F1b3RlLXJldmVyc2UgLnNtYWxsOmFmdGVyLFxuYmxvY2txdW90ZS5wdWxsLXJpZ2h0IC5zbWFsbDphZnRlciB7XG4gIGNvbnRlbnQ6ICdcXDAwQTAgXFwyMDE0Jztcbn1cbmFkZHJlc3Mge1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xufVxuY29kZSxcbmtiZCxcbnByZSxcbnNhbXAge1xuICBmb250LWZhbWlseTogTWVubG8sIE1vbmFjbywgQ29uc29sYXMsIFwiQ291cmllciBOZXdcIiwgbW9ub3NwYWNlO1xufVxuY29kZSB7XG4gIHBhZGRpbmc6IDJweCA0cHg7XG4gIGZvbnQtc2l6ZTogOTAlO1xuICBjb2xvcjogI2M3MjU0ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZjJmNDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxua2JkIHtcbiAgcGFkZGluZzogMnB4IDRweDtcbiAgZm9udC1zaXplOiA5MCU7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgLTFweCAwIHJnYmEoMCwgMCwgMCwgMC4yNSk7XG59XG5rYmQga2JkIHtcbiAgcGFkZGluZzogMDtcbiAgZm9udC1zaXplOiAxMDAlO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbnByZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiA5LjVweDtcbiAgbWFyZ2luOiAwIDAgMTBweDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcbiAgd29yZC1icmVhazogYnJlYWstYWxsO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gIGNvbG9yOiAjMzMzMzMzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG5wcmUgY29kZSB7XG4gIHBhZGRpbmc6IDA7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG4ucHJlLXNjcm9sbGFibGUge1xuICBtYXgtaGVpZ2h0OiAzNDBweDtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xufVxuLmNvbnRhaW5lciB7XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIHBhZGRpbmctbGVmdDogMTVweDtcbiAgcGFkZGluZy1yaWdodDogMTVweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuY29udGFpbmVyIHtcbiAgICB3aWR0aDogNzUwcHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuY29udGFpbmVyIHtcbiAgICB3aWR0aDogOTcwcHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLmNvbnRhaW5lciB7XG4gICAgd2lkdGg6IDExNzBweDtcbiAgfVxufVxuLmNvbnRhaW5lci1mbHVpZCB7XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIHBhZGRpbmctbGVmdDogMTVweDtcbiAgcGFkZGluZy1yaWdodDogMTVweDtcbn1cbi5yb3cge1xuICBtYXJnaW4tbGVmdDogLTE1cHg7XG4gIG1hcmdpbi1yaWdodDogLTE1cHg7XG59XG4uY29sLXhzLTEsIC5jb2wtc20tMSwgLmNvbC1tZC0xLCAuY29sLWxnLTEsIC5jb2wteHMtMiwgLmNvbC1zbS0yLCAuY29sLW1kLTIsIC5jb2wtbGctMiwgLmNvbC14cy0zLCAuY29sLXNtLTMsIC5jb2wtbWQtMywgLmNvbC1sZy0zLCAuY29sLXhzLTQsIC5jb2wtc20tNCwgLmNvbC1tZC00LCAuY29sLWxnLTQsIC5jb2wteHMtNSwgLmNvbC1zbS01LCAuY29sLW1kLTUsIC5jb2wtbGctNSwgLmNvbC14cy02LCAuY29sLXNtLTYsIC5jb2wtbWQtNiwgLmNvbC1sZy02LCAuY29sLXhzLTcsIC5jb2wtc20tNywgLmNvbC1tZC03LCAuY29sLWxnLTcsIC5jb2wteHMtOCwgLmNvbC1zbS04LCAuY29sLW1kLTgsIC5jb2wtbGctOCwgLmNvbC14cy05LCAuY29sLXNtLTksIC5jb2wtbWQtOSwgLmNvbC1sZy05LCAuY29sLXhzLTEwLCAuY29sLXNtLTEwLCAuY29sLW1kLTEwLCAuY29sLWxnLTEwLCAuY29sLXhzLTExLCAuY29sLXNtLTExLCAuY29sLW1kLTExLCAuY29sLWxnLTExLCAuY29sLXhzLTEyLCAuY29sLXNtLTEyLCAuY29sLW1kLTEyLCAuY29sLWxnLTEyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtaW4taGVpZ2h0OiAxcHg7XG4gIHBhZGRpbmctbGVmdDogMTVweDtcbiAgcGFkZGluZy1yaWdodDogMTVweDtcbn1cbi5jb2wteHMtMSwgLmNvbC14cy0yLCAuY29sLXhzLTMsIC5jb2wteHMtNCwgLmNvbC14cy01LCAuY29sLXhzLTYsIC5jb2wteHMtNywgLmNvbC14cy04LCAuY29sLXhzLTksIC5jb2wteHMtMTAsIC5jb2wteHMtMTEsIC5jb2wteHMtMTIge1xuICBmbG9hdDogbGVmdDtcbn1cbi5jb2wteHMtMTIge1xuICB3aWR0aDogMTAwJTtcbn1cbi5jb2wteHMtMTEge1xuICB3aWR0aDogOTEuNjY2NjY2NjclO1xufVxuLmNvbC14cy0xMCB7XG4gIHdpZHRoOiA4My4zMzMzMzMzMyU7XG59XG4uY29sLXhzLTkge1xuICB3aWR0aDogNzUlO1xufVxuLmNvbC14cy04IHtcbiAgd2lkdGg6IDY2LjY2NjY2NjY3JTtcbn1cbi5jb2wteHMtNyB7XG4gIHdpZHRoOiA1OC4zMzMzMzMzMyU7XG59XG4uY29sLXhzLTYge1xuICB3aWR0aDogNTAlO1xufVxuLmNvbC14cy01IHtcbiAgd2lkdGg6IDQxLjY2NjY2NjY3JTtcbn1cbi5jb2wteHMtNCB7XG4gIHdpZHRoOiAzMy4zMzMzMzMzMyU7XG59XG4uY29sLXhzLTMge1xuICB3aWR0aDogMjUlO1xufVxuLmNvbC14cy0yIHtcbiAgd2lkdGg6IDE2LjY2NjY2NjY3JTtcbn1cbi5jb2wteHMtMSB7XG4gIHdpZHRoOiA4LjMzMzMzMzMzJTtcbn1cbi5jb2wteHMtcHVsbC0xMiB7XG4gIHJpZ2h0OiAxMDAlO1xufVxuLmNvbC14cy1wdWxsLTExIHtcbiAgcmlnaHQ6IDkxLjY2NjY2NjY3JTtcbn1cbi5jb2wteHMtcHVsbC0xMCB7XG4gIHJpZ2h0OiA4My4zMzMzMzMzMyU7XG59XG4uY29sLXhzLXB1bGwtOSB7XG4gIHJpZ2h0OiA3NSU7XG59XG4uY29sLXhzLXB1bGwtOCB7XG4gIHJpZ2h0OiA2Ni42NjY2NjY2NyU7XG59XG4uY29sLXhzLXB1bGwtNyB7XG4gIHJpZ2h0OiA1OC4zMzMzMzMzMyU7XG59XG4uY29sLXhzLXB1bGwtNiB7XG4gIHJpZ2h0OiA1MCU7XG59XG4uY29sLXhzLXB1bGwtNSB7XG4gIHJpZ2h0OiA0MS42NjY2NjY2NyU7XG59XG4uY29sLXhzLXB1bGwtNCB7XG4gIHJpZ2h0OiAzMy4zMzMzMzMzMyU7XG59XG4uY29sLXhzLXB1bGwtMyB7XG4gIHJpZ2h0OiAyNSU7XG59XG4uY29sLXhzLXB1bGwtMiB7XG4gIHJpZ2h0OiAxNi42NjY2NjY2NyU7XG59XG4uY29sLXhzLXB1bGwtMSB7XG4gIHJpZ2h0OiA4LjMzMzMzMzMzJTtcbn1cbi5jb2wteHMtcHVsbC0wIHtcbiAgcmlnaHQ6IGF1dG87XG59XG4uY29sLXhzLXB1c2gtMTIge1xuICBsZWZ0OiAxMDAlO1xufVxuLmNvbC14cy1wdXNoLTExIHtcbiAgbGVmdDogOTEuNjY2NjY2NjclO1xufVxuLmNvbC14cy1wdXNoLTEwIHtcbiAgbGVmdDogODMuMzMzMzMzMzMlO1xufVxuLmNvbC14cy1wdXNoLTkge1xuICBsZWZ0OiA3NSU7XG59XG4uY29sLXhzLXB1c2gtOCB7XG4gIGxlZnQ6IDY2LjY2NjY2NjY3JTtcbn1cbi5jb2wteHMtcHVzaC03IHtcbiAgbGVmdDogNTguMzMzMzMzMzMlO1xufVxuLmNvbC14cy1wdXNoLTYge1xuICBsZWZ0OiA1MCU7XG59XG4uY29sLXhzLXB1c2gtNSB7XG4gIGxlZnQ6IDQxLjY2NjY2NjY3JTtcbn1cbi5jb2wteHMtcHVzaC00IHtcbiAgbGVmdDogMzMuMzMzMzMzMzMlO1xufVxuLmNvbC14cy1wdXNoLTMge1xuICBsZWZ0OiAyNSU7XG59XG4uY29sLXhzLXB1c2gtMiB7XG4gIGxlZnQ6IDE2LjY2NjY2NjY3JTtcbn1cbi5jb2wteHMtcHVzaC0xIHtcbiAgbGVmdDogOC4zMzMzMzMzMyU7XG59XG4uY29sLXhzLXB1c2gtMCB7XG4gIGxlZnQ6IGF1dG87XG59XG4uY29sLXhzLW9mZnNldC0xMiB7XG4gIG1hcmdpbi1sZWZ0OiAxMDAlO1xufVxuLmNvbC14cy1vZmZzZXQtMTEge1xuICBtYXJnaW4tbGVmdDogOTEuNjY2NjY2NjclO1xufVxuLmNvbC14cy1vZmZzZXQtMTAge1xuICBtYXJnaW4tbGVmdDogODMuMzMzMzMzMzMlO1xufVxuLmNvbC14cy1vZmZzZXQtOSB7XG4gIG1hcmdpbi1sZWZ0OiA3NSU7XG59XG4uY29sLXhzLW9mZnNldC04IHtcbiAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY2NjY3JTtcbn1cbi5jb2wteHMtb2Zmc2V0LTcge1xuICBtYXJnaW4tbGVmdDogNTguMzMzMzMzMzMlO1xufVxuLmNvbC14cy1vZmZzZXQtNiB7XG4gIG1hcmdpbi1sZWZ0OiA1MCU7XG59XG4uY29sLXhzLW9mZnNldC01IHtcbiAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY2NjY3JTtcbn1cbi5jb2wteHMtb2Zmc2V0LTQge1xuICBtYXJnaW4tbGVmdDogMzMuMzMzMzMzMzMlO1xufVxuLmNvbC14cy1vZmZzZXQtMyB7XG4gIG1hcmdpbi1sZWZ0OiAyNSU7XG59XG4uY29sLXhzLW9mZnNldC0yIHtcbiAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY2NjY3JTtcbn1cbi5jb2wteHMtb2Zmc2V0LTEge1xuICBtYXJnaW4tbGVmdDogOC4zMzMzMzMzMyU7XG59XG4uY29sLXhzLW9mZnNldC0wIHtcbiAgbWFyZ2luLWxlZnQ6IDAlO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5jb2wtc20tMSwgLmNvbC1zbS0yLCAuY29sLXNtLTMsIC5jb2wtc20tNCwgLmNvbC1zbS01LCAuY29sLXNtLTYsIC5jb2wtc20tNywgLmNvbC1zbS04LCAuY29sLXNtLTksIC5jb2wtc20tMTAsIC5jb2wtc20tMTEsIC5jb2wtc20tMTIge1xuICAgIGZsb2F0OiBsZWZ0O1xuICB9XG4gIC5jb2wtc20tMTIge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIC5jb2wtc20tMTEge1xuICAgIHdpZHRoOiA5MS42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1zbS0xMCB7XG4gICAgd2lkdGg6IDgzLjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLXNtLTkge1xuICAgIHdpZHRoOiA3NSU7XG4gIH1cbiAgLmNvbC1zbS04IHtcbiAgICB3aWR0aDogNjYuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtc20tNyB7XG4gICAgd2lkdGg6IDU4LjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLXNtLTYge1xuICAgIHdpZHRoOiA1MCU7XG4gIH1cbiAgLmNvbC1zbS01IHtcbiAgICB3aWR0aDogNDEuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtc20tNCB7XG4gICAgd2lkdGg6IDMzLjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLXNtLTMge1xuICAgIHdpZHRoOiAyNSU7XG4gIH1cbiAgLmNvbC1zbS0yIHtcbiAgICB3aWR0aDogMTYuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtc20tMSB7XG4gICAgd2lkdGg6IDguMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtc20tcHVsbC0xMiB7XG4gICAgcmlnaHQ6IDEwMCU7XG4gIH1cbiAgLmNvbC1zbS1wdWxsLTExIHtcbiAgICByaWdodDogOTEuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtc20tcHVsbC0xMCB7XG4gICAgcmlnaHQ6IDgzLjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLXNtLXB1bGwtOSB7XG4gICAgcmlnaHQ6IDc1JTtcbiAgfVxuICAuY29sLXNtLXB1bGwtOCB7XG4gICAgcmlnaHQ6IDY2LjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLXNtLXB1bGwtNyB7XG4gICAgcmlnaHQ6IDU4LjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLXNtLXB1bGwtNiB7XG4gICAgcmlnaHQ6IDUwJTtcbiAgfVxuICAuY29sLXNtLXB1bGwtNSB7XG4gICAgcmlnaHQ6IDQxLjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLXNtLXB1bGwtNCB7XG4gICAgcmlnaHQ6IDMzLjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLXNtLXB1bGwtMyB7XG4gICAgcmlnaHQ6IDI1JTtcbiAgfVxuICAuY29sLXNtLXB1bGwtMiB7XG4gICAgcmlnaHQ6IDE2LjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLXNtLXB1bGwtMSB7XG4gICAgcmlnaHQ6IDguMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtc20tcHVsbC0wIHtcbiAgICByaWdodDogYXV0bztcbiAgfVxuICAuY29sLXNtLXB1c2gtMTIge1xuICAgIGxlZnQ6IDEwMCU7XG4gIH1cbiAgLmNvbC1zbS1wdXNoLTExIHtcbiAgICBsZWZ0OiA5MS42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1zbS1wdXNoLTEwIHtcbiAgICBsZWZ0OiA4My4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1zbS1wdXNoLTkge1xuICAgIGxlZnQ6IDc1JTtcbiAgfVxuICAuY29sLXNtLXB1c2gtOCB7XG4gICAgbGVmdDogNjYuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtc20tcHVzaC03IHtcbiAgICBsZWZ0OiA1OC4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1zbS1wdXNoLTYge1xuICAgIGxlZnQ6IDUwJTtcbiAgfVxuICAuY29sLXNtLXB1c2gtNSB7XG4gICAgbGVmdDogNDEuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtc20tcHVzaC00IHtcbiAgICBsZWZ0OiAzMy4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1zbS1wdXNoLTMge1xuICAgIGxlZnQ6IDI1JTtcbiAgfVxuICAuY29sLXNtLXB1c2gtMiB7XG4gICAgbGVmdDogMTYuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtc20tcHVzaC0xIHtcbiAgICBsZWZ0OiA4LjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLXNtLXB1c2gtMCB7XG4gICAgbGVmdDogYXV0bztcbiAgfVxuICAuY29sLXNtLW9mZnNldC0xMiB7XG4gICAgbWFyZ2luLWxlZnQ6IDEwMCU7XG4gIH1cbiAgLmNvbC1zbS1vZmZzZXQtMTEge1xuICAgIG1hcmdpbi1sZWZ0OiA5MS42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1zbS1vZmZzZXQtMTAge1xuICAgIG1hcmdpbi1sZWZ0OiA4My4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1zbS1vZmZzZXQtOSB7XG4gICAgbWFyZ2luLWxlZnQ6IDc1JTtcbiAgfVxuICAuY29sLXNtLW9mZnNldC04IHtcbiAgICBtYXJnaW4tbGVmdDogNjYuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtc20tb2Zmc2V0LTcge1xuICAgIG1hcmdpbi1sZWZ0OiA1OC4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1zbS1vZmZzZXQtNiB7XG4gICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgfVxuICAuY29sLXNtLW9mZnNldC01IHtcbiAgICBtYXJnaW4tbGVmdDogNDEuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtc20tb2Zmc2V0LTQge1xuICAgIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1zbS1vZmZzZXQtMyB7XG4gICAgbWFyZ2luLWxlZnQ6IDI1JTtcbiAgfVxuICAuY29sLXNtLW9mZnNldC0yIHtcbiAgICBtYXJnaW4tbGVmdDogMTYuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtc20tb2Zmc2V0LTEge1xuICAgIG1hcmdpbi1sZWZ0OiA4LjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLXNtLW9mZnNldC0wIHtcbiAgICBtYXJnaW4tbGVmdDogMCU7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuY29sLW1kLTEsIC5jb2wtbWQtMiwgLmNvbC1tZC0zLCAuY29sLW1kLTQsIC5jb2wtbWQtNSwgLmNvbC1tZC02LCAuY29sLW1kLTcsIC5jb2wtbWQtOCwgLmNvbC1tZC05LCAuY29sLW1kLTEwLCAuY29sLW1kLTExLCAuY29sLW1kLTEyIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgfVxuICAuY29sLW1kLTEyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAuY29sLW1kLTExIHtcbiAgICB3aWR0aDogOTEuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbWQtMTAge1xuICAgIHdpZHRoOiA4My4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1tZC05IHtcbiAgICB3aWR0aDogNzUlO1xuICB9XG4gIC5jb2wtbWQtOCB7XG4gICAgd2lkdGg6IDY2LjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLW1kLTcge1xuICAgIHdpZHRoOiA1OC4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1tZC02IHtcbiAgICB3aWR0aDogNTAlO1xuICB9XG4gIC5jb2wtbWQtNSB7XG4gICAgd2lkdGg6IDQxLjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLW1kLTQge1xuICAgIHdpZHRoOiAzMy4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1tZC0zIHtcbiAgICB3aWR0aDogMjUlO1xuICB9XG4gIC5jb2wtbWQtMiB7XG4gICAgd2lkdGg6IDE2LjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLW1kLTEge1xuICAgIHdpZHRoOiA4LjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLW1kLXB1bGwtMTIge1xuICAgIHJpZ2h0OiAxMDAlO1xuICB9XG4gIC5jb2wtbWQtcHVsbC0xMSB7XG4gICAgcmlnaHQ6IDkxLjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLW1kLXB1bGwtMTAge1xuICAgIHJpZ2h0OiA4My4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1tZC1wdWxsLTkge1xuICAgIHJpZ2h0OiA3NSU7XG4gIH1cbiAgLmNvbC1tZC1wdWxsLTgge1xuICAgIHJpZ2h0OiA2Ni42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1tZC1wdWxsLTcge1xuICAgIHJpZ2h0OiA1OC4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1tZC1wdWxsLTYge1xuICAgIHJpZ2h0OiA1MCU7XG4gIH1cbiAgLmNvbC1tZC1wdWxsLTUge1xuICAgIHJpZ2h0OiA0MS42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1tZC1wdWxsLTQge1xuICAgIHJpZ2h0OiAzMy4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1tZC1wdWxsLTMge1xuICAgIHJpZ2h0OiAyNSU7XG4gIH1cbiAgLmNvbC1tZC1wdWxsLTIge1xuICAgIHJpZ2h0OiAxNi42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1tZC1wdWxsLTEge1xuICAgIHJpZ2h0OiA4LjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLW1kLXB1bGwtMCB7XG4gICAgcmlnaHQ6IGF1dG87XG4gIH1cbiAgLmNvbC1tZC1wdXNoLTEyIHtcbiAgICBsZWZ0OiAxMDAlO1xuICB9XG4gIC5jb2wtbWQtcHVzaC0xMSB7XG4gICAgbGVmdDogOTEuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbWQtcHVzaC0xMCB7XG4gICAgbGVmdDogODMuMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbWQtcHVzaC05IHtcbiAgICBsZWZ0OiA3NSU7XG4gIH1cbiAgLmNvbC1tZC1wdXNoLTgge1xuICAgIGxlZnQ6IDY2LjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLW1kLXB1c2gtNyB7XG4gICAgbGVmdDogNTguMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbWQtcHVzaC02IHtcbiAgICBsZWZ0OiA1MCU7XG4gIH1cbiAgLmNvbC1tZC1wdXNoLTUge1xuICAgIGxlZnQ6IDQxLjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLW1kLXB1c2gtNCB7XG4gICAgbGVmdDogMzMuMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbWQtcHVzaC0zIHtcbiAgICBsZWZ0OiAyNSU7XG4gIH1cbiAgLmNvbC1tZC1wdXNoLTIge1xuICAgIGxlZnQ6IDE2LjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLW1kLXB1c2gtMSB7XG4gICAgbGVmdDogOC4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1tZC1wdXNoLTAge1xuICAgIGxlZnQ6IGF1dG87XG4gIH1cbiAgLmNvbC1tZC1vZmZzZXQtMTIge1xuICAgIG1hcmdpbi1sZWZ0OiAxMDAlO1xuICB9XG4gIC5jb2wtbWQtb2Zmc2V0LTExIHtcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbWQtb2Zmc2V0LTEwIHtcbiAgICBtYXJnaW4tbGVmdDogODMuMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbWQtb2Zmc2V0LTkge1xuICAgIG1hcmdpbi1sZWZ0OiA3NSU7XG4gIH1cbiAgLmNvbC1tZC1vZmZzZXQtOCB7XG4gICAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLW1kLW9mZnNldC03IHtcbiAgICBtYXJnaW4tbGVmdDogNTguMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbWQtb2Zmc2V0LTYge1xuICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gIH1cbiAgLmNvbC1tZC1vZmZzZXQtNSB7XG4gICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLW1kLW9mZnNldC00IHtcbiAgICBtYXJnaW4tbGVmdDogMzMuMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbWQtb2Zmc2V0LTMge1xuICAgIG1hcmdpbi1sZWZ0OiAyNSU7XG4gIH1cbiAgLmNvbC1tZC1vZmZzZXQtMiB7XG4gICAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLW1kLW9mZnNldC0xIHtcbiAgICBtYXJnaW4tbGVmdDogOC4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1tZC1vZmZzZXQtMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDAlO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC5jb2wtbGctMSwgLmNvbC1sZy0yLCAuY29sLWxnLTMsIC5jb2wtbGctNCwgLmNvbC1sZy01LCAuY29sLWxnLTYsIC5jb2wtbGctNywgLmNvbC1sZy04LCAuY29sLWxnLTksIC5jb2wtbGctMTAsIC5jb2wtbGctMTEsIC5jb2wtbGctMTIge1xuICAgIGZsb2F0OiBsZWZ0O1xuICB9XG4gIC5jb2wtbGctMTIge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIC5jb2wtbGctMTEge1xuICAgIHdpZHRoOiA5MS42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1sZy0xMCB7XG4gICAgd2lkdGg6IDgzLjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLWxnLTkge1xuICAgIHdpZHRoOiA3NSU7XG4gIH1cbiAgLmNvbC1sZy04IHtcbiAgICB3aWR0aDogNjYuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbGctNyB7XG4gICAgd2lkdGg6IDU4LjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLWxnLTYge1xuICAgIHdpZHRoOiA1MCU7XG4gIH1cbiAgLmNvbC1sZy01IHtcbiAgICB3aWR0aDogNDEuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbGctNCB7XG4gICAgd2lkdGg6IDMzLjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLWxnLTMge1xuICAgIHdpZHRoOiAyNSU7XG4gIH1cbiAgLmNvbC1sZy0yIHtcbiAgICB3aWR0aDogMTYuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbGctMSB7XG4gICAgd2lkdGg6IDguMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbGctcHVsbC0xMiB7XG4gICAgcmlnaHQ6IDEwMCU7XG4gIH1cbiAgLmNvbC1sZy1wdWxsLTExIHtcbiAgICByaWdodDogOTEuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbGctcHVsbC0xMCB7XG4gICAgcmlnaHQ6IDgzLjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLWxnLXB1bGwtOSB7XG4gICAgcmlnaHQ6IDc1JTtcbiAgfVxuICAuY29sLWxnLXB1bGwtOCB7XG4gICAgcmlnaHQ6IDY2LjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLWxnLXB1bGwtNyB7XG4gICAgcmlnaHQ6IDU4LjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLWxnLXB1bGwtNiB7XG4gICAgcmlnaHQ6IDUwJTtcbiAgfVxuICAuY29sLWxnLXB1bGwtNSB7XG4gICAgcmlnaHQ6IDQxLjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLWxnLXB1bGwtNCB7XG4gICAgcmlnaHQ6IDMzLjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLWxnLXB1bGwtMyB7XG4gICAgcmlnaHQ6IDI1JTtcbiAgfVxuICAuY29sLWxnLXB1bGwtMiB7XG4gICAgcmlnaHQ6IDE2LjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLWxnLXB1bGwtMSB7XG4gICAgcmlnaHQ6IDguMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbGctcHVsbC0wIHtcbiAgICByaWdodDogYXV0bztcbiAgfVxuICAuY29sLWxnLXB1c2gtMTIge1xuICAgIGxlZnQ6IDEwMCU7XG4gIH1cbiAgLmNvbC1sZy1wdXNoLTExIHtcbiAgICBsZWZ0OiA5MS42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1sZy1wdXNoLTEwIHtcbiAgICBsZWZ0OiA4My4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1sZy1wdXNoLTkge1xuICAgIGxlZnQ6IDc1JTtcbiAgfVxuICAuY29sLWxnLXB1c2gtOCB7XG4gICAgbGVmdDogNjYuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbGctcHVzaC03IHtcbiAgICBsZWZ0OiA1OC4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1sZy1wdXNoLTYge1xuICAgIGxlZnQ6IDUwJTtcbiAgfVxuICAuY29sLWxnLXB1c2gtNSB7XG4gICAgbGVmdDogNDEuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbGctcHVzaC00IHtcbiAgICBsZWZ0OiAzMy4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1sZy1wdXNoLTMge1xuICAgIGxlZnQ6IDI1JTtcbiAgfVxuICAuY29sLWxnLXB1c2gtMiB7XG4gICAgbGVmdDogMTYuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbGctcHVzaC0xIHtcbiAgICBsZWZ0OiA4LjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLWxnLXB1c2gtMCB7XG4gICAgbGVmdDogYXV0bztcbiAgfVxuICAuY29sLWxnLW9mZnNldC0xMiB7XG4gICAgbWFyZ2luLWxlZnQ6IDEwMCU7XG4gIH1cbiAgLmNvbC1sZy1vZmZzZXQtMTEge1xuICAgIG1hcmdpbi1sZWZ0OiA5MS42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1sZy1vZmZzZXQtMTAge1xuICAgIG1hcmdpbi1sZWZ0OiA4My4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1sZy1vZmZzZXQtOSB7XG4gICAgbWFyZ2luLWxlZnQ6IDc1JTtcbiAgfVxuICAuY29sLWxnLW9mZnNldC04IHtcbiAgICBtYXJnaW4tbGVmdDogNjYuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbGctb2Zmc2V0LTcge1xuICAgIG1hcmdpbi1sZWZ0OiA1OC4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1sZy1vZmZzZXQtNiB7XG4gICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgfVxuICAuY29sLWxnLW9mZnNldC01IHtcbiAgICBtYXJnaW4tbGVmdDogNDEuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbGctb2Zmc2V0LTQge1xuICAgIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1sZy1vZmZzZXQtMyB7XG4gICAgbWFyZ2luLWxlZnQ6IDI1JTtcbiAgfVxuICAuY29sLWxnLW9mZnNldC0yIHtcbiAgICBtYXJnaW4tbGVmdDogMTYuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbGctb2Zmc2V0LTEge1xuICAgIG1hcmdpbi1sZWZ0OiA4LjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLWxnLW9mZnNldC0wIHtcbiAgICBtYXJnaW4tbGVmdDogMCU7XG4gIH1cbn1cbnRhYmxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5jYXB0aW9uIHtcbiAgcGFkZGluZy10b3A6IDhweDtcbiAgcGFkZGluZy1ib3R0b206IDhweDtcbiAgY29sb3I6ICM3Nzc3Nzc7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG50aCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4udGFibGUge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xufVxuLnRhYmxlID4gdGhlYWQgPiB0ciA+IHRoLFxuLnRhYmxlID4gdGJvZHkgPiB0ciA+IHRoLFxuLnRhYmxlID4gdGZvb3QgPiB0ciA+IHRoLFxuLnRhYmxlID4gdGhlYWQgPiB0ciA+IHRkLFxuLnRhYmxlID4gdGJvZHkgPiB0ciA+IHRkLFxuLnRhYmxlID4gdGZvb3QgPiB0ciA+IHRkIHtcbiAgcGFkZGluZzogOHB4O1xuICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkZGQ7XG59XG4udGFibGUgPiB0aGVhZCA+IHRyID4gdGgge1xuICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgI2RkZDtcbn1cbi50YWJsZSA+IGNhcHRpb24gKyB0aGVhZCA+IHRyOmZpcnN0LWNoaWxkID4gdGgsXG4udGFibGUgPiBjb2xncm91cCArIHRoZWFkID4gdHI6Zmlyc3QtY2hpbGQgPiB0aCxcbi50YWJsZSA+IHRoZWFkOmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgPiB0aCxcbi50YWJsZSA+IGNhcHRpb24gKyB0aGVhZCA+IHRyOmZpcnN0LWNoaWxkID4gdGQsXG4udGFibGUgPiBjb2xncm91cCArIHRoZWFkID4gdHI6Zmlyc3QtY2hpbGQgPiB0ZCxcbi50YWJsZSA+IHRoZWFkOmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgPiB0ZCB7XG4gIGJvcmRlci10b3A6IDA7XG59XG4udGFibGUgPiB0Ym9keSArIHRib2R5IHtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICNkZGQ7XG59XG4udGFibGUgLnRhYmxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cbi50YWJsZS1jb25kZW5zZWQgPiB0aGVhZCA+IHRyID4gdGgsXG4udGFibGUtY29uZGVuc2VkID4gdGJvZHkgPiB0ciA+IHRoLFxuLnRhYmxlLWNvbmRlbnNlZCA+IHRmb290ID4gdHIgPiB0aCxcbi50YWJsZS1jb25kZW5zZWQgPiB0aGVhZCA+IHRyID4gdGQsXG4udGFibGUtY29uZGVuc2VkID4gdGJvZHkgPiB0ciA+IHRkLFxuLnRhYmxlLWNvbmRlbnNlZCA+IHRmb290ID4gdHIgPiB0ZCB7XG4gIHBhZGRpbmc6IDVweDtcbn1cbi50YWJsZS1ib3JkZXJlZCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG59XG4udGFibGUtYm9yZGVyZWQgPiB0aGVhZCA+IHRyID4gdGgsXG4udGFibGUtYm9yZGVyZWQgPiB0Ym9keSA+IHRyID4gdGgsXG4udGFibGUtYm9yZGVyZWQgPiB0Zm9vdCA+IHRyID4gdGgsXG4udGFibGUtYm9yZGVyZWQgPiB0aGVhZCA+IHRyID4gdGQsXG4udGFibGUtYm9yZGVyZWQgPiB0Ym9keSA+IHRyID4gdGQsXG4udGFibGUtYm9yZGVyZWQgPiB0Zm9vdCA+IHRyID4gdGQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xufVxuLnRhYmxlLWJvcmRlcmVkID4gdGhlYWQgPiB0ciA+IHRoLFxuLnRhYmxlLWJvcmRlcmVkID4gdGhlYWQgPiB0ciA+IHRkIHtcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMnB4O1xufVxuLnRhYmxlLXN0cmlwZWQgPiB0Ym9keSA+IHRyOm50aC1vZi10eXBlKG9kZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmOWY5O1xufVxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0cjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG59XG50YWJsZSBjb2xbY2xhc3MqPVwiY29sLVwiXSB7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIGZsb2F0OiBub25lO1xuICBkaXNwbGF5OiB0YWJsZS1jb2x1bW47XG59XG50YWJsZSB0ZFtjbGFzcyo9XCJjb2wtXCJdLFxudGFibGUgdGhbY2xhc3MqPVwiY29sLVwiXSB7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIGZsb2F0OiBub25lO1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xufVxuLnRhYmxlID4gdGhlYWQgPiB0ciA+IHRkLmFjdGl2ZSxcbi50YWJsZSA+IHRib2R5ID4gdHIgPiB0ZC5hY3RpdmUsXG4udGFibGUgPiB0Zm9vdCA+IHRyID4gdGQuYWN0aXZlLFxuLnRhYmxlID4gdGhlYWQgPiB0ciA+IHRoLmFjdGl2ZSxcbi50YWJsZSA+IHRib2R5ID4gdHIgPiB0aC5hY3RpdmUsXG4udGFibGUgPiB0Zm9vdCA+IHRyID4gdGguYWN0aXZlLFxuLnRhYmxlID4gdGhlYWQgPiB0ci5hY3RpdmUgPiB0ZCxcbi50YWJsZSA+IHRib2R5ID4gdHIuYWN0aXZlID4gdGQsXG4udGFibGUgPiB0Zm9vdCA+IHRyLmFjdGl2ZSA+IHRkLFxuLnRhYmxlID4gdGhlYWQgPiB0ci5hY3RpdmUgPiB0aCxcbi50YWJsZSA+IHRib2R5ID4gdHIuYWN0aXZlID4gdGgsXG4udGFibGUgPiB0Zm9vdCA+IHRyLmFjdGl2ZSA+IHRoIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTtcbn1cbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHIgPiB0ZC5hY3RpdmU6aG92ZXIsXG4udGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyID4gdGguYWN0aXZlOmhvdmVyLFxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0ci5hY3RpdmU6aG92ZXIgPiB0ZCxcbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHI6aG92ZXIgPiAuYWN0aXZlLFxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0ci5hY3RpdmU6aG92ZXIgPiB0aCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlOGU4ZTg7XG59XG4udGFibGUgPiB0aGVhZCA+IHRyID4gdGQuc3VjY2Vzcyxcbi50YWJsZSA+IHRib2R5ID4gdHIgPiB0ZC5zdWNjZXNzLFxuLnRhYmxlID4gdGZvb3QgPiB0ciA+IHRkLnN1Y2Nlc3MsXG4udGFibGUgPiB0aGVhZCA+IHRyID4gdGguc3VjY2Vzcyxcbi50YWJsZSA+IHRib2R5ID4gdHIgPiB0aC5zdWNjZXNzLFxuLnRhYmxlID4gdGZvb3QgPiB0ciA+IHRoLnN1Y2Nlc3MsXG4udGFibGUgPiB0aGVhZCA+IHRyLnN1Y2Nlc3MgPiB0ZCxcbi50YWJsZSA+IHRib2R5ID4gdHIuc3VjY2VzcyA+IHRkLFxuLnRhYmxlID4gdGZvb3QgPiB0ci5zdWNjZXNzID4gdGQsXG4udGFibGUgPiB0aGVhZCA+IHRyLnN1Y2Nlc3MgPiB0aCxcbi50YWJsZSA+IHRib2R5ID4gdHIuc3VjY2VzcyA+IHRoLFxuLnRhYmxlID4gdGZvb3QgPiB0ci5zdWNjZXNzID4gdGgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGZmMGQ4O1xufVxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0ciA+IHRkLnN1Y2Nlc3M6aG92ZXIsXG4udGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyID4gdGguc3VjY2Vzczpob3Zlcixcbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHIuc3VjY2Vzczpob3ZlciA+IHRkLFxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0cjpob3ZlciA+IC5zdWNjZXNzLFxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0ci5zdWNjZXNzOmhvdmVyID4gdGgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDBlOWM2O1xufVxuLnRhYmxlID4gdGhlYWQgPiB0ciA+IHRkLmluZm8sXG4udGFibGUgPiB0Ym9keSA+IHRyID4gdGQuaW5mbyxcbi50YWJsZSA+IHRmb290ID4gdHIgPiB0ZC5pbmZvLFxuLnRhYmxlID4gdGhlYWQgPiB0ciA+IHRoLmluZm8sXG4udGFibGUgPiB0Ym9keSA+IHRyID4gdGguaW5mbyxcbi50YWJsZSA+IHRmb290ID4gdHIgPiB0aC5pbmZvLFxuLnRhYmxlID4gdGhlYWQgPiB0ci5pbmZvID4gdGQsXG4udGFibGUgPiB0Ym9keSA+IHRyLmluZm8gPiB0ZCxcbi50YWJsZSA+IHRmb290ID4gdHIuaW5mbyA+IHRkLFxuLnRhYmxlID4gdGhlYWQgPiB0ci5pbmZvID4gdGgsXG4udGFibGUgPiB0Ym9keSA+IHRyLmluZm8gPiB0aCxcbi50YWJsZSA+IHRmb290ID4gdHIuaW5mbyA+IHRoIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q5ZWRmNztcbn1cbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHIgPiB0ZC5pbmZvOmhvdmVyLFxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0ciA+IHRoLmluZm86aG92ZXIsXG4udGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyLmluZm86aG92ZXIgPiB0ZCxcbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHI6aG92ZXIgPiAuaW5mbyxcbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHIuaW5mbzpob3ZlciA+IHRoIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2M0ZTNmMztcbn1cbi50YWJsZSA+IHRoZWFkID4gdHIgPiB0ZC53YXJuaW5nLFxuLnRhYmxlID4gdGJvZHkgPiB0ciA+IHRkLndhcm5pbmcsXG4udGFibGUgPiB0Zm9vdCA+IHRyID4gdGQud2FybmluZyxcbi50YWJsZSA+IHRoZWFkID4gdHIgPiB0aC53YXJuaW5nLFxuLnRhYmxlID4gdGJvZHkgPiB0ciA+IHRoLndhcm5pbmcsXG4udGFibGUgPiB0Zm9vdCA+IHRyID4gdGgud2FybmluZyxcbi50YWJsZSA+IHRoZWFkID4gdHIud2FybmluZyA+IHRkLFxuLnRhYmxlID4gdGJvZHkgPiB0ci53YXJuaW5nID4gdGQsXG4udGFibGUgPiB0Zm9vdCA+IHRyLndhcm5pbmcgPiB0ZCxcbi50YWJsZSA+IHRoZWFkID4gdHIud2FybmluZyA+IHRoLFxuLnRhYmxlID4gdGJvZHkgPiB0ci53YXJuaW5nID4gdGgsXG4udGFibGUgPiB0Zm9vdCA+IHRyLndhcm5pbmcgPiB0aCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmY2Y4ZTM7XG59XG4udGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyID4gdGQud2FybmluZzpob3Zlcixcbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHIgPiB0aC53YXJuaW5nOmhvdmVyLFxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0ci53YXJuaW5nOmhvdmVyID4gdGQsXG4udGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyOmhvdmVyID4gLndhcm5pbmcsXG4udGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyLndhcm5pbmc6aG92ZXIgPiB0aCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmYWYyY2M7XG59XG4udGFibGUgPiB0aGVhZCA+IHRyID4gdGQuZGFuZ2VyLFxuLnRhYmxlID4gdGJvZHkgPiB0ciA+IHRkLmRhbmdlcixcbi50YWJsZSA+IHRmb290ID4gdHIgPiB0ZC5kYW5nZXIsXG4udGFibGUgPiB0aGVhZCA+IHRyID4gdGguZGFuZ2VyLFxuLnRhYmxlID4gdGJvZHkgPiB0ciA+IHRoLmRhbmdlcixcbi50YWJsZSA+IHRmb290ID4gdHIgPiB0aC5kYW5nZXIsXG4udGFibGUgPiB0aGVhZCA+IHRyLmRhbmdlciA+IHRkLFxuLnRhYmxlID4gdGJvZHkgPiB0ci5kYW5nZXIgPiB0ZCxcbi50YWJsZSA+IHRmb290ID4gdHIuZGFuZ2VyID4gdGQsXG4udGFibGUgPiB0aGVhZCA+IHRyLmRhbmdlciA+IHRoLFxuLnRhYmxlID4gdGJvZHkgPiB0ci5kYW5nZXIgPiB0aCxcbi50YWJsZSA+IHRmb290ID4gdHIuZGFuZ2VyID4gdGgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjJkZWRlO1xufVxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0ciA+IHRkLmRhbmdlcjpob3Zlcixcbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHIgPiB0aC5kYW5nZXI6aG92ZXIsXG4udGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyLmRhbmdlcjpob3ZlciA+IHRkLFxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0cjpob3ZlciA+IC5kYW5nZXIsXG4udGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyLmRhbmdlcjpob3ZlciA+IHRoIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ViY2NjYztcbn1cbi50YWJsZS1yZXNwb25zaXZlIHtcbiAgb3ZlcmZsb3cteDogYXV0bztcbiAgbWluLWhlaWdodDogMC4wMSU7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAudGFibGUtcmVzcG9uc2l2ZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgICBvdmVyZmxvdy15OiBoaWRkZW47XG4gICAgLW1zLW92ZXJmbG93LXN0eWxlOiAtbXMtYXV0b2hpZGluZy1zY3JvbGxiYXI7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbiAgfVxuICAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuICAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZSA+IHRoZWFkID4gdHIgPiB0aCxcbiAgLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUgPiB0Ym9keSA+IHRyID4gdGgsXG4gIC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlID4gdGZvb3QgPiB0ciA+IHRoLFxuICAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZSA+IHRoZWFkID4gdHIgPiB0ZCxcbiAgLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUgPiB0Ym9keSA+IHRyID4gdGQsXG4gIC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlID4gdGZvb3QgPiB0ciA+IHRkIHtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB9XG4gIC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkIHtcbiAgICBib3JkZXI6IDA7XG4gIH1cbiAgLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0aGVhZCA+IHRyID4gdGg6Zmlyc3QtY2hpbGQsXG4gIC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGJvZHkgPiB0ciA+IHRoOmZpcnN0LWNoaWxkLFxuICAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRmb290ID4gdHIgPiB0aDpmaXJzdC1jaGlsZCxcbiAgLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0aGVhZCA+IHRyID4gdGQ6Zmlyc3QtY2hpbGQsXG4gIC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGJvZHkgPiB0ciA+IHRkOmZpcnN0LWNoaWxkLFxuICAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRmb290ID4gdHIgPiB0ZDpmaXJzdC1jaGlsZCB7XG4gICAgYm9yZGVyLWxlZnQ6IDA7XG4gIH1cbiAgLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0aGVhZCA+IHRyID4gdGg6bGFzdC1jaGlsZCxcbiAgLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0Ym9keSA+IHRyID4gdGg6bGFzdC1jaGlsZCxcbiAgLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0Zm9vdCA+IHRyID4gdGg6bGFzdC1jaGlsZCxcbiAgLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0aGVhZCA+IHRyID4gdGQ6bGFzdC1jaGlsZCxcbiAgLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0Ym9keSA+IHRyID4gdGQ6bGFzdC1jaGlsZCxcbiAgLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0Zm9vdCA+IHRyID4gdGQ6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXJpZ2h0OiAwO1xuICB9XG4gIC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGJvZHkgPiB0cjpsYXN0LWNoaWxkID4gdGgsXG4gIC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGZvb3QgPiB0cjpsYXN0LWNoaWxkID4gdGgsXG4gIC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGJvZHkgPiB0cjpsYXN0LWNoaWxkID4gdGQsXG4gIC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGZvb3QgPiB0cjpsYXN0LWNoaWxkID4gdGQge1xuICAgIGJvcmRlci1ib3R0b206IDA7XG4gIH1cbn1cbmZpZWxkc2V0IHtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICBib3JkZXI6IDA7XG4gIG1pbi13aWR0aDogMDtcbn1cbmxlZ2VuZCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgZm9udC1zaXplOiAyMXB4O1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgY29sb3I6ICMzMzMzMzM7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlNWU1ZTU7XG59XG5sYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuaW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgbWFyZ2luOiA0cHggMCAwO1xuICBtYXJnaW4tdG9wOiAxcHggXFw5O1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xufVxuaW5wdXRbdHlwZT1cImZpbGVcIl0ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbmlucHV0W3R5cGU9XCJyYW5nZVwiXSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbn1cbnNlbGVjdFttdWx0aXBsZV0sXG5zZWxlY3Rbc2l6ZV0ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5pbnB1dFt0eXBlPVwiZmlsZVwiXTpmb2N1cyxcbmlucHV0W3R5cGU9XCJyYWRpb1wiXTpmb2N1cyxcbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXTpmb2N1cyB7XG4gIG91dGxpbmU6IDVweCBhdXRvIC13ZWJraXQtZm9jdXMtcmluZy1jb2xvcjtcbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG59XG5vdXRwdXQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZy10b3A6IDdweDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcbiAgY29sb3I6ICM1NTU1NTU7XG59XG4uZm9ybS1jb250cm9sIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDM0cHg7XG4gIHBhZGRpbmc6IDZweCAxMnB4O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xuICBjb2xvcjogIzU1NTU1NTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDc1KTtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpO1xuICAtd2Via2l0LXRyYW5zaXRpb246IGJvcmRlci1jb2xvciBlYXNlLWluLW91dCAuMTVzLCBib3gtc2hhZG93IGVhc2UtaW4tb3V0IC4xNXM7XG4gIC1vLXRyYW5zaXRpb246IGJvcmRlci1jb2xvciBlYXNlLWluLW91dCAuMTVzLCBib3gtc2hhZG93IGVhc2UtaW4tb3V0IC4xNXM7XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciBlYXNlLWluLW91dCAuMTVzLCBib3gtc2hhZG93IGVhc2UtaW4tb3V0IC4xNXM7XG59XG4uZm9ybS1jb250cm9sOmZvY3VzIHtcbiAgYm9yZGVyLWNvbG9yOiAjNjZhZmU5O1xuICBvdXRsaW5lOiAwO1xuICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCByZ2JhKDAsMCwwLC4wNzUpLCAwIDAgOHB4IHJnYmEoMTAyLCAxNzUsIDIzMywgMC42KTtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwwLDAsLjA3NSksIDAgMCA4cHggcmdiYSgxMDIsIDE3NSwgMjMzLCAwLjYpO1xufVxuLmZvcm0tY29udHJvbDo6LW1vei1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjOTk5O1xuICBvcGFjaXR5OiAxO1xufVxuLmZvcm0tY29udHJvbDotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xuICBjb2xvcjogIzk5OTtcbn1cbi5mb3JtLWNvbnRyb2w6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICBjb2xvcjogIzk5OTtcbn1cbi5mb3JtLWNvbnRyb2w6Oi1tcy1leHBhbmQge1xuICBib3JkZXI6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmZvcm0tY29udHJvbFtkaXNhYmxlZF0sXG4uZm9ybS1jb250cm9sW3JlYWRvbmx5XSxcbmZpZWxkc2V0W2Rpc2FibGVkXSAuZm9ybS1jb250cm9sIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZWVlZTtcbiAgb3BhY2l0eTogMTtcbn1cbi5mb3JtLWNvbnRyb2xbZGlzYWJsZWRdLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5mb3JtLWNvbnRyb2wge1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxudGV4dGFyZWEuZm9ybS1jb250cm9sIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDApIHtcbiAgaW5wdXRbdHlwZT1cImRhdGVcIl0uZm9ybS1jb250cm9sLFxuICBpbnB1dFt0eXBlPVwidGltZVwiXS5mb3JtLWNvbnRyb2wsXG4gIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXS5mb3JtLWNvbnRyb2wsXG4gIGlucHV0W3R5cGU9XCJtb250aFwiXS5mb3JtLWNvbnRyb2wge1xuICAgIGxpbmUtaGVpZ2h0OiAzNHB4O1xuICB9XG4gIGlucHV0W3R5cGU9XCJkYXRlXCJdLmlucHV0LXNtLFxuICBpbnB1dFt0eXBlPVwidGltZVwiXS5pbnB1dC1zbSxcbiAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLmlucHV0LXNtLFxuICBpbnB1dFt0eXBlPVwibW9udGhcIl0uaW5wdXQtc20sXG4gIC5pbnB1dC1ncm91cC1zbSBpbnB1dFt0eXBlPVwiZGF0ZVwiXSxcbiAgLmlucHV0LWdyb3VwLXNtIGlucHV0W3R5cGU9XCJ0aW1lXCJdLFxuICAuaW5wdXQtZ3JvdXAtc20gaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLFxuICAuaW5wdXQtZ3JvdXAtc20gaW5wdXRbdHlwZT1cIm1vbnRoXCJdIHtcbiAgICBsaW5lLWhlaWdodDogMzBweDtcbiAgfVxuICBpbnB1dFt0eXBlPVwiZGF0ZVwiXS5pbnB1dC1sZyxcbiAgaW5wdXRbdHlwZT1cInRpbWVcIl0uaW5wdXQtbGcsXG4gIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXS5pbnB1dC1sZyxcbiAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdLmlucHV0LWxnLFxuICAuaW5wdXQtZ3JvdXAtbGcgaW5wdXRbdHlwZT1cImRhdGVcIl0sXG4gIC5pbnB1dC1ncm91cC1sZyBpbnB1dFt0eXBlPVwidGltZVwiXSxcbiAgLmlucHV0LWdyb3VwLWxnIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXSxcbiAgLmlucHV0LWdyb3VwLWxnIGlucHV0W3R5cGU9XCJtb250aFwiXSB7XG4gICAgbGluZS1oZWlnaHQ6IDQ2cHg7XG4gIH1cbn1cbi5mb3JtLWdyb3VwIHtcbiAgbWFyZ2luLWJvdHRvbTogMTVweDtcbn1cbi5yYWRpbyxcbi5jaGVja2JveCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG4ucmFkaW8gbGFiZWwsXG4uY2hlY2tib3ggbGFiZWwge1xuICBtaW4taGVpZ2h0OiAyMHB4O1xuICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5yYWRpbyBpbnB1dFt0eXBlPVwicmFkaW9cIl0sXG4ucmFkaW8taW5saW5lIGlucHV0W3R5cGU9XCJyYWRpb1wiXSxcbi5jaGVja2JveCBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG4uY2hlY2tib3gtaW5saW5lIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbWFyZ2luLWxlZnQ6IC0yMHB4O1xuICBtYXJnaW4tdG9wOiA0cHggXFw5O1xufVxuLnJhZGlvICsgLnJhZGlvLFxuLmNoZWNrYm94ICsgLmNoZWNrYm94IHtcbiAgbWFyZ2luLXRvcDogLTVweDtcbn1cbi5yYWRpby1pbmxpbmUsXG4uY2hlY2tib3gtaW5saW5lIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmctbGVmdDogMjBweDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnJhZGlvLWlubGluZSArIC5yYWRpby1pbmxpbmUsXG4uY2hlY2tib3gtaW5saW5lICsgLmNoZWNrYm94LWlubGluZSB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xufVxuaW5wdXRbdHlwZT1cInJhZGlvXCJdW2Rpc2FibGVkXSxcbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXVtkaXNhYmxlZF0sXG5pbnB1dFt0eXBlPVwicmFkaW9cIl0uZGlzYWJsZWQsXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0uZGlzYWJsZWQsXG5maWVsZHNldFtkaXNhYmxlZF0gaW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuZmllbGRzZXRbZGlzYWJsZWRdIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG4ucmFkaW8taW5saW5lLmRpc2FibGVkLFxuLmNoZWNrYm94LWlubGluZS5kaXNhYmxlZCxcbmZpZWxkc2V0W2Rpc2FibGVkXSAucmFkaW8taW5saW5lLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5jaGVja2JveC1pbmxpbmUge1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuLnJhZGlvLmRpc2FibGVkIGxhYmVsLFxuLmNoZWNrYm94LmRpc2FibGVkIGxhYmVsLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5yYWRpbyBsYWJlbCxcbmZpZWxkc2V0W2Rpc2FibGVkXSAuY2hlY2tib3ggbGFiZWwge1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuLmZvcm0tY29udHJvbC1zdGF0aWMge1xuICBwYWRkaW5nLXRvcDogN3B4O1xuICBwYWRkaW5nLWJvdHRvbTogN3B4O1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBtaW4taGVpZ2h0OiAzNHB4O1xufVxuLmZvcm0tY29udHJvbC1zdGF0aWMuaW5wdXQtbGcsXG4uZm9ybS1jb250cm9sLXN0YXRpYy5pbnB1dC1zbSB7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgcGFkZGluZy1yaWdodDogMDtcbn1cbi5pbnB1dC1zbSB7XG4gIGhlaWdodDogMzBweDtcbiAgcGFkZGluZzogNXB4IDEwcHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xufVxuc2VsZWN0LmlucHV0LXNtIHtcbiAgaGVpZ2h0OiAzMHB4O1xuICBsaW5lLWhlaWdodDogMzBweDtcbn1cbnRleHRhcmVhLmlucHV0LXNtLFxuc2VsZWN0W211bHRpcGxlXS5pbnB1dC1zbSB7XG4gIGhlaWdodDogYXV0bztcbn1cbi5mb3JtLWdyb3VwLXNtIC5mb3JtLWNvbnRyb2wge1xuICBoZWlnaHQ6IDMwcHg7XG4gIHBhZGRpbmc6IDVweCAxMHB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cbi5mb3JtLWdyb3VwLXNtIHNlbGVjdC5mb3JtLWNvbnRyb2wge1xuICBoZWlnaHQ6IDMwcHg7XG4gIGxpbmUtaGVpZ2h0OiAzMHB4O1xufVxuLmZvcm0tZ3JvdXAtc20gdGV4dGFyZWEuZm9ybS1jb250cm9sLFxuLmZvcm0tZ3JvdXAtc20gc2VsZWN0W211bHRpcGxlXS5mb3JtLWNvbnRyb2wge1xuICBoZWlnaHQ6IGF1dG87XG59XG4uZm9ybS1ncm91cC1zbSAuZm9ybS1jb250cm9sLXN0YXRpYyB7XG4gIGhlaWdodDogMzBweDtcbiAgbWluLWhlaWdodDogMzJweDtcbiAgcGFkZGluZzogNnB4IDEwcHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbn1cbi5pbnB1dC1sZyB7XG4gIGhlaWdodDogNDZweDtcbiAgcGFkZGluZzogMTBweCAxNnB4O1xuICBmb250LXNpemU6IDE4cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjMzMzMzMzM7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbn1cbnNlbGVjdC5pbnB1dC1sZyB7XG4gIGhlaWdodDogNDZweDtcbiAgbGluZS1oZWlnaHQ6IDQ2cHg7XG59XG50ZXh0YXJlYS5pbnB1dC1sZyxcbnNlbGVjdFttdWx0aXBsZV0uaW5wdXQtbGcge1xuICBoZWlnaHQ6IGF1dG87XG59XG4uZm9ybS1ncm91cC1sZyAuZm9ybS1jb250cm9sIHtcbiAgaGVpZ2h0OiA0NnB4O1xuICBwYWRkaW5nOiAxMHB4IDE2cHg7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgbGluZS1oZWlnaHQ6IDEuMzMzMzMzMztcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xufVxuLmZvcm0tZ3JvdXAtbGcgc2VsZWN0LmZvcm0tY29udHJvbCB7XG4gIGhlaWdodDogNDZweDtcbiAgbGluZS1oZWlnaHQ6IDQ2cHg7XG59XG4uZm9ybS1ncm91cC1sZyB0ZXh0YXJlYS5mb3JtLWNvbnRyb2wsXG4uZm9ybS1ncm91cC1sZyBzZWxlY3RbbXVsdGlwbGVdLmZvcm0tY29udHJvbCB7XG4gIGhlaWdodDogYXV0bztcbn1cbi5mb3JtLWdyb3VwLWxnIC5mb3JtLWNvbnRyb2wtc3RhdGljIHtcbiAgaGVpZ2h0OiA0NnB4O1xuICBtaW4taGVpZ2h0OiAzOHB4O1xuICBwYWRkaW5nOiAxMXB4IDE2cHg7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgbGluZS1oZWlnaHQ6IDEuMzMzMzMzMztcbn1cbi5oYXMtZmVlZGJhY2sge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uaGFzLWZlZWRiYWNrIC5mb3JtLWNvbnRyb2wge1xuICBwYWRkaW5nLXJpZ2h0OiA0Mi41cHg7XG59XG4uZm9ybS1jb250cm9sLWZlZWRiYWNrIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICB6LWluZGV4OiAyO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDM0cHg7XG4gIGhlaWdodDogMzRweDtcbiAgbGluZS1oZWlnaHQ6IDM0cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4uaW5wdXQtbGcgKyAuZm9ybS1jb250cm9sLWZlZWRiYWNrLFxuLmlucHV0LWdyb3VwLWxnICsgLmZvcm0tY29udHJvbC1mZWVkYmFjayxcbi5mb3JtLWdyb3VwLWxnIC5mb3JtLWNvbnRyb2wgKyAuZm9ybS1jb250cm9sLWZlZWRiYWNrIHtcbiAgd2lkdGg6IDQ2cHg7XG4gIGhlaWdodDogNDZweDtcbiAgbGluZS1oZWlnaHQ6IDQ2cHg7XG59XG4uaW5wdXQtc20gKyAuZm9ybS1jb250cm9sLWZlZWRiYWNrLFxuLmlucHV0LWdyb3VwLXNtICsgLmZvcm0tY29udHJvbC1mZWVkYmFjayxcbi5mb3JtLWdyb3VwLXNtIC5mb3JtLWNvbnRyb2wgKyAuZm9ybS1jb250cm9sLWZlZWRiYWNrIHtcbiAgd2lkdGg6IDMwcHg7XG4gIGhlaWdodDogMzBweDtcbiAgbGluZS1oZWlnaHQ6IDMwcHg7XG59XG4uaGFzLXN1Y2Nlc3MgLmhlbHAtYmxvY2ssXG4uaGFzLXN1Y2Nlc3MgLmNvbnRyb2wtbGFiZWwsXG4uaGFzLXN1Y2Nlc3MgLnJhZGlvLFxuLmhhcy1zdWNjZXNzIC5jaGVja2JveCxcbi5oYXMtc3VjY2VzcyAucmFkaW8taW5saW5lLFxuLmhhcy1zdWNjZXNzIC5jaGVja2JveC1pbmxpbmUsXG4uaGFzLXN1Y2Nlc3MucmFkaW8gbGFiZWwsXG4uaGFzLXN1Y2Nlc3MuY2hlY2tib3ggbGFiZWwsXG4uaGFzLXN1Y2Nlc3MucmFkaW8taW5saW5lIGxhYmVsLFxuLmhhcy1zdWNjZXNzLmNoZWNrYm94LWlubGluZSBsYWJlbCB7XG4gIGNvbG9yOiAjM2M3NjNkO1xufVxuLmhhcy1zdWNjZXNzIC5mb3JtLWNvbnRyb2wge1xuICBib3JkZXItY29sb3I6ICMzYzc2M2Q7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpO1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA3NSk7XG59XG4uaGFzLXN1Y2Nlc3MgLmZvcm0tY29udHJvbDpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogIzJiNTQyYztcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA3NSksIDAgMCA2cHggIzY3YjE2ODtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpLCAwIDAgNnB4ICM2N2IxNjg7XG59XG4uaGFzLXN1Y2Nlc3MgLmlucHV0LWdyb3VwLWFkZG9uIHtcbiAgY29sb3I6ICMzYzc2M2Q7XG4gIGJvcmRlci1jb2xvcjogIzNjNzYzZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RmZjBkODtcbn1cbi5oYXMtc3VjY2VzcyAuZm9ybS1jb250cm9sLWZlZWRiYWNrIHtcbiAgY29sb3I6ICMzYzc2M2Q7XG59XG4uaGFzLXdhcm5pbmcgLmhlbHAtYmxvY2ssXG4uaGFzLXdhcm5pbmcgLmNvbnRyb2wtbGFiZWwsXG4uaGFzLXdhcm5pbmcgLnJhZGlvLFxuLmhhcy13YXJuaW5nIC5jaGVja2JveCxcbi5oYXMtd2FybmluZyAucmFkaW8taW5saW5lLFxuLmhhcy13YXJuaW5nIC5jaGVja2JveC1pbmxpbmUsXG4uaGFzLXdhcm5pbmcucmFkaW8gbGFiZWwsXG4uaGFzLXdhcm5pbmcuY2hlY2tib3ggbGFiZWwsXG4uaGFzLXdhcm5pbmcucmFkaW8taW5saW5lIGxhYmVsLFxuLmhhcy13YXJuaW5nLmNoZWNrYm94LWlubGluZSBsYWJlbCB7XG4gIGNvbG9yOiAjOGE2ZDNiO1xufVxuLmhhcy13YXJuaW5nIC5mb3JtLWNvbnRyb2wge1xuICBib3JkZXItY29sb3I6ICM4YTZkM2I7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpO1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA3NSk7XG59XG4uaGFzLXdhcm5pbmcgLmZvcm0tY29udHJvbDpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogIzY2NTEyYztcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA3NSksIDAgMCA2cHggI2MwYTE2YjtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpLCAwIDAgNnB4ICNjMGExNmI7XG59XG4uaGFzLXdhcm5pbmcgLmlucHV0LWdyb3VwLWFkZG9uIHtcbiAgY29sb3I6ICM4YTZkM2I7XG4gIGJvcmRlci1jb2xvcjogIzhhNmQzYjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZjZjhlMztcbn1cbi5oYXMtd2FybmluZyAuZm9ybS1jb250cm9sLWZlZWRiYWNrIHtcbiAgY29sb3I6ICM4YTZkM2I7XG59XG4uaGFzLWVycm9yIC5oZWxwLWJsb2NrLFxuLmhhcy1lcnJvciAuY29udHJvbC1sYWJlbCxcbi5oYXMtZXJyb3IgLnJhZGlvLFxuLmhhcy1lcnJvciAuY2hlY2tib3gsXG4uaGFzLWVycm9yIC5yYWRpby1pbmxpbmUsXG4uaGFzLWVycm9yIC5jaGVja2JveC1pbmxpbmUsXG4uaGFzLWVycm9yLnJhZGlvIGxhYmVsLFxuLmhhcy1lcnJvci5jaGVja2JveCBsYWJlbCxcbi5oYXMtZXJyb3IucmFkaW8taW5saW5lIGxhYmVsLFxuLmhhcy1lcnJvci5jaGVja2JveC1pbmxpbmUgbGFiZWwge1xuICBjb2xvcjogI2E5NDQ0Mjtcbn1cbi5oYXMtZXJyb3IgLmZvcm0tY29udHJvbCB7XG4gIGJvcmRlci1jb2xvcjogI2E5NDQ0MjtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA3NSk7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDc1KTtcbn1cbi5oYXMtZXJyb3IgLmZvcm0tY29udHJvbDpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogIzg0MzUzNDtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA3NSksIDAgMCA2cHggI2NlODQ4MztcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpLCAwIDAgNnB4ICNjZTg0ODM7XG59XG4uaGFzLWVycm9yIC5pbnB1dC1ncm91cC1hZGRvbiB7XG4gIGNvbG9yOiAjYTk0NDQyO1xuICBib3JkZXItY29sb3I6ICNhOTQ0NDI7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMmRlZGU7XG59XG4uaGFzLWVycm9yIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2sge1xuICBjb2xvcjogI2E5NDQ0Mjtcbn1cbi5oYXMtZmVlZGJhY2sgbGFiZWwgfiAuZm9ybS1jb250cm9sLWZlZWRiYWNrIHtcbiAgdG9wOiAyNXB4O1xufVxuLmhhcy1mZWVkYmFjayBsYWJlbC5zci1vbmx5IH4gLmZvcm0tY29udHJvbC1mZWVkYmFjayB7XG4gIHRvcDogMDtcbn1cbi5oZWxwLWJsb2NrIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi10b3A6IDVweDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgY29sb3I6ICM3MzczNzM7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmZvcm0taW5saW5lIC5mb3JtLWdyb3VwIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG4gIC5mb3JtLWlubGluZSAuZm9ybS1jb250cm9sIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxuICAuZm9ybS1pbmxpbmUgLmZvcm0tY29udHJvbC1zdGF0aWMge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgfVxuICAuZm9ybS1pbmxpbmUgLmlucHV0LWdyb3VwIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtdGFibGU7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxuICAuZm9ybS1pbmxpbmUgLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1hZGRvbixcbiAgLmZvcm0taW5saW5lIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnRuLFxuICAuZm9ybS1pbmxpbmUgLmlucHV0LWdyb3VwIC5mb3JtLWNvbnRyb2wge1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG4gIC5mb3JtLWlubGluZSAuaW5wdXQtZ3JvdXAgPiAuZm9ybS1jb250cm9sIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAuZm9ybS1pbmxpbmUgLmNvbnRyb2wtbGFiZWwge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxuICAuZm9ybS1pbmxpbmUgLnJhZGlvLFxuICAuZm9ybS1pbmxpbmUgLmNoZWNrYm94IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIH1cbiAgLmZvcm0taW5saW5lIC5yYWRpbyBsYWJlbCxcbiAgLmZvcm0taW5saW5lIC5jaGVja2JveCBsYWJlbCB7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICB9XG4gIC5mb3JtLWlubGluZSAucmFkaW8gaW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuICAuZm9ybS1pbmxpbmUgLmNoZWNrYm94IGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG4gIC5mb3JtLWlubGluZSAuaGFzLWZlZWRiYWNrIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2sge1xuICAgIHRvcDogMDtcbiAgfVxufVxuLmZvcm0taG9yaXpvbnRhbCAucmFkaW8sXG4uZm9ybS1ob3Jpem9udGFsIC5jaGVja2JveCxcbi5mb3JtLWhvcml6b250YWwgLnJhZGlvLWlubGluZSxcbi5mb3JtLWhvcml6b250YWwgLmNoZWNrYm94LWlubGluZSB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIHBhZGRpbmctdG9wOiA3cHg7XG59XG4uZm9ybS1ob3Jpem9udGFsIC5yYWRpbyxcbi5mb3JtLWhvcml6b250YWwgLmNoZWNrYm94IHtcbiAgbWluLWhlaWdodDogMjdweDtcbn1cbi5mb3JtLWhvcml6b250YWwgLmZvcm0tZ3JvdXAge1xuICBtYXJnaW4tbGVmdDogLTE1cHg7XG4gIG1hcmdpbi1yaWdodDogLTE1cHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmZvcm0taG9yaXpvbnRhbCAuY29udHJvbC1sYWJlbCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBwYWRkaW5nLXRvcDogN3B4O1xuICB9XG59XG4uZm9ybS1ob3Jpem9udGFsIC5oYXMtZmVlZGJhY2sgLmZvcm0tY29udHJvbC1mZWVkYmFjayB7XG4gIHJpZ2h0OiAxNXB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5mb3JtLWhvcml6b250YWwgLmZvcm0tZ3JvdXAtbGcgLmNvbnRyb2wtbGFiZWwge1xuICAgIHBhZGRpbmctdG9wOiAxMXB4O1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5mb3JtLWhvcml6b250YWwgLmZvcm0tZ3JvdXAtc20gLmNvbnRyb2wtbGFiZWwge1xuICAgIHBhZGRpbmctdG9wOiA2cHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICB9XG59XG4uYnRuIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBwYWRkaW5nOiA2cHggMTJweDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuLmJ0bjpmb2N1cyxcbi5idG46YWN0aXZlOmZvY3VzLFxuLmJ0bi5hY3RpdmU6Zm9jdXMsXG4uYnRuLmZvY3VzLFxuLmJ0bjphY3RpdmUuZm9jdXMsXG4uYnRuLmFjdGl2ZS5mb2N1cyB7XG4gIG91dGxpbmU6IDVweCBhdXRvIC13ZWJraXQtZm9jdXMtcmluZy1jb2xvcjtcbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG59XG4uYnRuOmhvdmVyLFxuLmJ0bjpmb2N1cyxcbi5idG4uZm9jdXMge1xuICBjb2xvcjogIzMzMztcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuLmJ0bjphY3RpdmUsXG4uYnRuLmFjdGl2ZSB7XG4gIG91dGxpbmU6IDA7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAzcHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMjUpO1xuICBib3gtc2hhZG93OiBpbnNldCAwIDNweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyNSk7XG59XG4uYnRuLmRpc2FibGVkLFxuLmJ0bltkaXNhYmxlZF0sXG5maWVsZHNldFtkaXNhYmxlZF0gLmJ0biB7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gIG9wYWNpdHk6IDAuNjU7XG4gIGZpbHRlcjogYWxwaGEob3BhY2l0eT02NSk7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbmEuYnRuLmRpc2FibGVkLFxuZmllbGRzZXRbZGlzYWJsZWRdIGEuYnRuIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4uYnRuLWRlZmF1bHQge1xuICBjb2xvcjogIzMzMztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyLWNvbG9yOiAjY2NjO1xufVxuLmJ0bi1kZWZhdWx0OmZvY3VzLFxuLmJ0bi1kZWZhdWx0LmZvY3VzIHtcbiAgY29sb3I6ICMzMzM7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7XG4gIGJvcmRlci1jb2xvcjogIzhjOGM4Yztcbn1cbi5idG4tZGVmYXVsdDpob3ZlciB7XG4gIGNvbG9yOiAjMzMzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2O1xuICBib3JkZXItY29sb3I6ICNhZGFkYWQ7XG59XG4uYnRuLWRlZmF1bHQ6YWN0aXZlLFxuLmJ0bi1kZWZhdWx0LmFjdGl2ZSxcbi5vcGVuID4gLmRyb3Bkb3duLXRvZ2dsZS5idG4tZGVmYXVsdCB7XG4gIGNvbG9yOiAjMzMzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2O1xuICBib3JkZXItY29sb3I6ICNhZGFkYWQ7XG59XG4uYnRuLWRlZmF1bHQ6YWN0aXZlOmhvdmVyLFxuLmJ0bi1kZWZhdWx0LmFjdGl2ZTpob3Zlcixcbi5vcGVuID4gLmRyb3Bkb3duLXRvZ2dsZS5idG4tZGVmYXVsdDpob3Zlcixcbi5idG4tZGVmYXVsdDphY3RpdmU6Zm9jdXMsXG4uYnRuLWRlZmF1bHQuYWN0aXZlOmZvY3VzLFxuLm9wZW4gPiAuZHJvcGRvd24tdG9nZ2xlLmJ0bi1kZWZhdWx0OmZvY3VzLFxuLmJ0bi1kZWZhdWx0OmFjdGl2ZS5mb2N1cyxcbi5idG4tZGVmYXVsdC5hY3RpdmUuZm9jdXMsXG4ub3BlbiA+IC5kcm9wZG93bi10b2dnbGUuYnRuLWRlZmF1bHQuZm9jdXMge1xuICBjb2xvcjogIzMzMztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q0ZDRkNDtcbiAgYm9yZGVyLWNvbG9yOiAjOGM4YzhjO1xufVxuLmJ0bi1kZWZhdWx0OmFjdGl2ZSxcbi5idG4tZGVmYXVsdC5hY3RpdmUsXG4ub3BlbiA+IC5kcm9wZG93bi10b2dnbGUuYnRuLWRlZmF1bHQge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xufVxuLmJ0bi1kZWZhdWx0LmRpc2FibGVkOmhvdmVyLFxuLmJ0bi1kZWZhdWx0W2Rpc2FibGVkXTpob3ZlcixcbmZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLWRlZmF1bHQ6aG92ZXIsXG4uYnRuLWRlZmF1bHQuZGlzYWJsZWQ6Zm9jdXMsXG4uYnRuLWRlZmF1bHRbZGlzYWJsZWRdOmZvY3VzLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tZGVmYXVsdDpmb2N1cyxcbi5idG4tZGVmYXVsdC5kaXNhYmxlZC5mb2N1cyxcbi5idG4tZGVmYXVsdFtkaXNhYmxlZF0uZm9jdXMsXG5maWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1kZWZhdWx0LmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyLWNvbG9yOiAjY2NjO1xufVxuLmJ0bi1kZWZhdWx0IC5iYWRnZSB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzO1xufVxuLmJ0bi1wcmltYXJ5IHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGU1ZjA7XG4gIGJvcmRlci1jb2xvcjogIzAwY2RkNztcbn1cbi5idG4tcHJpbWFyeTpmb2N1cyxcbi5idG4tcHJpbWFyeS5mb2N1cyB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBiNGJkO1xuICBib3JkZXItY29sb3I6ICMwMDUzNTc7XG59XG4uYnRuLXByaW1hcnk6aG92ZXIge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwYjRiZDtcbiAgYm9yZGVyLWNvbG9yOiAjMDA5Mjk5O1xufVxuLmJ0bi1wcmltYXJ5OmFjdGl2ZSxcbi5idG4tcHJpbWFyeS5hY3RpdmUsXG4ub3BlbiA+IC5kcm9wZG93bi10b2dnbGUuYnRuLXByaW1hcnkge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwYjRiZDtcbiAgYm9yZGVyLWNvbG9yOiAjMDA5Mjk5O1xufVxuLmJ0bi1wcmltYXJ5OmFjdGl2ZTpob3Zlcixcbi5idG4tcHJpbWFyeS5hY3RpdmU6aG92ZXIsXG4ub3BlbiA+IC5kcm9wZG93bi10b2dnbGUuYnRuLXByaW1hcnk6aG92ZXIsXG4uYnRuLXByaW1hcnk6YWN0aXZlOmZvY3VzLFxuLmJ0bi1wcmltYXJ5LmFjdGl2ZTpmb2N1cyxcbi5vcGVuID4gLmRyb3Bkb3duLXRvZ2dsZS5idG4tcHJpbWFyeTpmb2N1cyxcbi5idG4tcHJpbWFyeTphY3RpdmUuZm9jdXMsXG4uYnRuLXByaW1hcnkuYWN0aXZlLmZvY3VzLFxuLm9wZW4gPiAuZHJvcGRvd24tdG9nZ2xlLmJ0bi1wcmltYXJ5LmZvY3VzIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDkyOTk7XG4gIGJvcmRlci1jb2xvcjogIzAwNTM1Nztcbn1cbi5idG4tcHJpbWFyeTphY3RpdmUsXG4uYnRuLXByaW1hcnkuYWN0aXZlLFxuLm9wZW4gPiAuZHJvcGRvd24tdG9nZ2xlLmJ0bi1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbn1cbi5idG4tcHJpbWFyeS5kaXNhYmxlZDpob3Zlcixcbi5idG4tcHJpbWFyeVtkaXNhYmxlZF06aG92ZXIsXG5maWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1wcmltYXJ5OmhvdmVyLFxuLmJ0bi1wcmltYXJ5LmRpc2FibGVkOmZvY3VzLFxuLmJ0bi1wcmltYXJ5W2Rpc2FibGVkXTpmb2N1cyxcbmZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLXByaW1hcnk6Zm9jdXMsXG4uYnRuLXByaW1hcnkuZGlzYWJsZWQuZm9jdXMsXG4uYnRuLXByaW1hcnlbZGlzYWJsZWRdLmZvY3VzLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tcHJpbWFyeS5mb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGU1ZjA7XG4gIGJvcmRlci1jb2xvcjogIzAwY2RkNztcbn1cbi5idG4tcHJpbWFyeSAuYmFkZ2Uge1xuICBjb2xvcjogIzAwZTVmMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cbi5idG4tc3VjY2VzcyB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBlNWYwO1xuICBib3JkZXItY29sb3I6ICMwMGNkZDc7XG59XG4uYnRuLXN1Y2Nlc3M6Zm9jdXMsXG4uYnRuLXN1Y2Nlc3MuZm9jdXMge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwYjRiZDtcbiAgYm9yZGVyLWNvbG9yOiAjMDA1MzU3O1xufVxuLmJ0bi1zdWNjZXNzOmhvdmVyIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGI0YmQ7XG4gIGJvcmRlci1jb2xvcjogIzAwOTI5OTtcbn1cbi5idG4tc3VjY2VzczphY3RpdmUsXG4uYnRuLXN1Y2Nlc3MuYWN0aXZlLFxuLm9wZW4gPiAuZHJvcGRvd24tdG9nZ2xlLmJ0bi1zdWNjZXNzIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGI0YmQ7XG4gIGJvcmRlci1jb2xvcjogIzAwOTI5OTtcbn1cbi5idG4tc3VjY2VzczphY3RpdmU6aG92ZXIsXG4uYnRuLXN1Y2Nlc3MuYWN0aXZlOmhvdmVyLFxuLm9wZW4gPiAuZHJvcGRvd24tdG9nZ2xlLmJ0bi1zdWNjZXNzOmhvdmVyLFxuLmJ0bi1zdWNjZXNzOmFjdGl2ZTpmb2N1cyxcbi5idG4tc3VjY2Vzcy5hY3RpdmU6Zm9jdXMsXG4ub3BlbiA+IC5kcm9wZG93bi10b2dnbGUuYnRuLXN1Y2Nlc3M6Zm9jdXMsXG4uYnRuLXN1Y2Nlc3M6YWN0aXZlLmZvY3VzLFxuLmJ0bi1zdWNjZXNzLmFjdGl2ZS5mb2N1cyxcbi5vcGVuID4gLmRyb3Bkb3duLXRvZ2dsZS5idG4tc3VjY2Vzcy5mb2N1cyB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA5Mjk5O1xuICBib3JkZXItY29sb3I6ICMwMDUzNTc7XG59XG4uYnRuLXN1Y2Nlc3M6YWN0aXZlLFxuLmJ0bi1zdWNjZXNzLmFjdGl2ZSxcbi5vcGVuID4gLmRyb3Bkb3duLXRvZ2dsZS5idG4tc3VjY2VzcyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG59XG4uYnRuLXN1Y2Nlc3MuZGlzYWJsZWQ6aG92ZXIsXG4uYnRuLXN1Y2Nlc3NbZGlzYWJsZWRdOmhvdmVyLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tc3VjY2Vzczpob3Zlcixcbi5idG4tc3VjY2Vzcy5kaXNhYmxlZDpmb2N1cyxcbi5idG4tc3VjY2Vzc1tkaXNhYmxlZF06Zm9jdXMsXG5maWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1zdWNjZXNzOmZvY3VzLFxuLmJ0bi1zdWNjZXNzLmRpc2FibGVkLmZvY3VzLFxuLmJ0bi1zdWNjZXNzW2Rpc2FibGVkXS5mb2N1cyxcbmZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLXN1Y2Nlc3MuZm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBlNWYwO1xuICBib3JkZXItY29sb3I6ICMwMGNkZDc7XG59XG4uYnRuLXN1Y2Nlc3MgLmJhZGdlIHtcbiAgY29sb3I6ICMwMGU1ZjA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG4uYnRuLWluZm8ge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwZTVmMDtcbiAgYm9yZGVyLWNvbG9yOiAjMDBjZGQ3O1xufVxuLmJ0bi1pbmZvOmZvY3VzLFxuLmJ0bi1pbmZvLmZvY3VzIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGI0YmQ7XG4gIGJvcmRlci1jb2xvcjogIzAwNTM1Nztcbn1cbi5idG4taW5mbzpob3ZlciB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBiNGJkO1xuICBib3JkZXItY29sb3I6ICMwMDkyOTk7XG59XG4uYnRuLWluZm86YWN0aXZlLFxuLmJ0bi1pbmZvLmFjdGl2ZSxcbi5vcGVuID4gLmRyb3Bkb3duLXRvZ2dsZS5idG4taW5mbyB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBiNGJkO1xuICBib3JkZXItY29sb3I6ICMwMDkyOTk7XG59XG4uYnRuLWluZm86YWN0aXZlOmhvdmVyLFxuLmJ0bi1pbmZvLmFjdGl2ZTpob3Zlcixcbi5vcGVuID4gLmRyb3Bkb3duLXRvZ2dsZS5idG4taW5mbzpob3Zlcixcbi5idG4taW5mbzphY3RpdmU6Zm9jdXMsXG4uYnRuLWluZm8uYWN0aXZlOmZvY3VzLFxuLm9wZW4gPiAuZHJvcGRvd24tdG9nZ2xlLmJ0bi1pbmZvOmZvY3VzLFxuLmJ0bi1pbmZvOmFjdGl2ZS5mb2N1cyxcbi5idG4taW5mby5hY3RpdmUuZm9jdXMsXG4ub3BlbiA+IC5kcm9wZG93bi10b2dnbGUuYnRuLWluZm8uZm9jdXMge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwOTI5OTtcbiAgYm9yZGVyLWNvbG9yOiAjMDA1MzU3O1xufVxuLmJ0bi1pbmZvOmFjdGl2ZSxcbi5idG4taW5mby5hY3RpdmUsXG4ub3BlbiA+IC5kcm9wZG93bi10b2dnbGUuYnRuLWluZm8ge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xufVxuLmJ0bi1pbmZvLmRpc2FibGVkOmhvdmVyLFxuLmJ0bi1pbmZvW2Rpc2FibGVkXTpob3ZlcixcbmZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLWluZm86aG92ZXIsXG4uYnRuLWluZm8uZGlzYWJsZWQ6Zm9jdXMsXG4uYnRuLWluZm9bZGlzYWJsZWRdOmZvY3VzLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5idG4taW5mbzpmb2N1cyxcbi5idG4taW5mby5kaXNhYmxlZC5mb2N1cyxcbi5idG4taW5mb1tkaXNhYmxlZF0uZm9jdXMsXG5maWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1pbmZvLmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwZTVmMDtcbiAgYm9yZGVyLWNvbG9yOiAjMDBjZGQ3O1xufVxuLmJ0bi1pbmZvIC5iYWRnZSB7XG4gIGNvbG9yOiAjMDBlNWYwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuLmJ0bi13YXJuaW5nIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5NzdiZjA7XG4gIGJvcmRlci1jb2xvcjogIzg1NjRlZDtcbn1cbi5idG4td2FybmluZzpmb2N1cyxcbi5idG4td2FybmluZy5mb2N1cyB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzM0ZGViO1xuICBib3JkZXItY29sb3I6ICMzZDE1YmQ7XG59XG4uYnRuLXdhcm5pbmc6aG92ZXIge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzczNGRlYjtcbiAgYm9yZGVyLWNvbG9yOiAjNWEyZGU3O1xufVxuLmJ0bi13YXJuaW5nOmFjdGl2ZSxcbi5idG4td2FybmluZy5hY3RpdmUsXG4ub3BlbiA+IC5kcm9wZG93bi10b2dnbGUuYnRuLXdhcm5pbmcge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzczNGRlYjtcbiAgYm9yZGVyLWNvbG9yOiAjNWEyZGU3O1xufVxuLmJ0bi13YXJuaW5nOmFjdGl2ZTpob3Zlcixcbi5idG4td2FybmluZy5hY3RpdmU6aG92ZXIsXG4ub3BlbiA+IC5kcm9wZG93bi10b2dnbGUuYnRuLXdhcm5pbmc6aG92ZXIsXG4uYnRuLXdhcm5pbmc6YWN0aXZlOmZvY3VzLFxuLmJ0bi13YXJuaW5nLmFjdGl2ZTpmb2N1cyxcbi5vcGVuID4gLmRyb3Bkb3duLXRvZ2dsZS5idG4td2FybmluZzpmb2N1cyxcbi5idG4td2FybmluZzphY3RpdmUuZm9jdXMsXG4uYnRuLXdhcm5pbmcuYWN0aXZlLmZvY3VzLFxuLm9wZW4gPiAuZHJvcGRvd24tdG9nZ2xlLmJ0bi13YXJuaW5nLmZvY3VzIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1YTJkZTc7XG4gIGJvcmRlci1jb2xvcjogIzNkMTViZDtcbn1cbi5idG4td2FybmluZzphY3RpdmUsXG4uYnRuLXdhcm5pbmcuYWN0aXZlLFxuLm9wZW4gPiAuZHJvcGRvd24tdG9nZ2xlLmJ0bi13YXJuaW5nIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbn1cbi5idG4td2FybmluZy5kaXNhYmxlZDpob3Zlcixcbi5idG4td2FybmluZ1tkaXNhYmxlZF06aG92ZXIsXG5maWVsZHNldFtkaXNhYmxlZF0gLmJ0bi13YXJuaW5nOmhvdmVyLFxuLmJ0bi13YXJuaW5nLmRpc2FibGVkOmZvY3VzLFxuLmJ0bi13YXJuaW5nW2Rpc2FibGVkXTpmb2N1cyxcbmZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLXdhcm5pbmc6Zm9jdXMsXG4uYnRuLXdhcm5pbmcuZGlzYWJsZWQuZm9jdXMsXG4uYnRuLXdhcm5pbmdbZGlzYWJsZWRdLmZvY3VzLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5idG4td2FybmluZy5mb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5NzdiZjA7XG4gIGJvcmRlci1jb2xvcjogIzg1NjRlZDtcbn1cbi5idG4td2FybmluZyAuYmFkZ2Uge1xuICBjb2xvcjogIzk3N2JmMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cbi5idG4tZGFuZ2VyIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlMDFmNzQ7XG4gIGJvcmRlci1jb2xvcjogI2NhMWM2ODtcbn1cbi5idG4tZGFuZ2VyOmZvY3VzLFxuLmJ0bi1kYW5nZXIuZm9jdXMge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2IzMTk1ZDtcbiAgYm9yZGVyLWNvbG9yOiAjNWEwYzJlO1xufVxuLmJ0bi1kYW5nZXI6aG92ZXIge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2IzMTk1ZDtcbiAgYm9yZGVyLWNvbG9yOiAjOTQxNDRkO1xufVxuLmJ0bi1kYW5nZXI6YWN0aXZlLFxuLmJ0bi1kYW5nZXIuYWN0aXZlLFxuLm9wZW4gPiAuZHJvcGRvd24tdG9nZ2xlLmJ0bi1kYW5nZXIge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2IzMTk1ZDtcbiAgYm9yZGVyLWNvbG9yOiAjOTQxNDRkO1xufVxuLmJ0bi1kYW5nZXI6YWN0aXZlOmhvdmVyLFxuLmJ0bi1kYW5nZXIuYWN0aXZlOmhvdmVyLFxuLm9wZW4gPiAuZHJvcGRvd24tdG9nZ2xlLmJ0bi1kYW5nZXI6aG92ZXIsXG4uYnRuLWRhbmdlcjphY3RpdmU6Zm9jdXMsXG4uYnRuLWRhbmdlci5hY3RpdmU6Zm9jdXMsXG4ub3BlbiA+IC5kcm9wZG93bi10b2dnbGUuYnRuLWRhbmdlcjpmb2N1cyxcbi5idG4tZGFuZ2VyOmFjdGl2ZS5mb2N1cyxcbi5idG4tZGFuZ2VyLmFjdGl2ZS5mb2N1cyxcbi5vcGVuID4gLmRyb3Bkb3duLXRvZ2dsZS5idG4tZGFuZ2VyLmZvY3VzIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5NDE0NGQ7XG4gIGJvcmRlci1jb2xvcjogIzVhMGMyZTtcbn1cbi5idG4tZGFuZ2VyOmFjdGl2ZSxcbi5idG4tZGFuZ2VyLmFjdGl2ZSxcbi5vcGVuID4gLmRyb3Bkb3duLXRvZ2dsZS5idG4tZGFuZ2VyIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbn1cbi5idG4tZGFuZ2VyLmRpc2FibGVkOmhvdmVyLFxuLmJ0bi1kYW5nZXJbZGlzYWJsZWRdOmhvdmVyLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tZGFuZ2VyOmhvdmVyLFxuLmJ0bi1kYW5nZXIuZGlzYWJsZWQ6Zm9jdXMsXG4uYnRuLWRhbmdlcltkaXNhYmxlZF06Zm9jdXMsXG5maWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1kYW5nZXI6Zm9jdXMsXG4uYnRuLWRhbmdlci5kaXNhYmxlZC5mb2N1cyxcbi5idG4tZGFuZ2VyW2Rpc2FibGVkXS5mb2N1cyxcbmZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLWRhbmdlci5mb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlMDFmNzQ7XG4gIGJvcmRlci1jb2xvcjogI2NhMWM2ODtcbn1cbi5idG4tZGFuZ2VyIC5iYWRnZSB7XG4gIGNvbG9yOiAjZTAxZjc0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuLmJ0bi1saW5rIHtcbiAgY29sb3I6ICMwMGU1ZjA7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG4uYnRuLWxpbmssXG4uYnRuLWxpbms6YWN0aXZlLFxuLmJ0bi1saW5rLmFjdGl2ZSxcbi5idG4tbGlua1tkaXNhYmxlZF0sXG5maWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1saW5rIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi5idG4tbGluayxcbi5idG4tbGluazpob3Zlcixcbi5idG4tbGluazpmb2N1cyxcbi5idG4tbGluazphY3RpdmUge1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmJ0bi1saW5rOmhvdmVyLFxuLmJ0bi1saW5rOmZvY3VzIHtcbiAgY29sb3I6ICMwMDljYTM7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5idG4tbGlua1tkaXNhYmxlZF06aG92ZXIsXG5maWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1saW5rOmhvdmVyLFxuLmJ0bi1saW5rW2Rpc2FibGVkXTpmb2N1cyxcbmZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLWxpbms6Zm9jdXMge1xuICBjb2xvcjogIzc3Nzc3NztcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuLmJ0bi1sZyxcbi5idG4tZ3JvdXAtbGcgPiAuYnRuIHtcbiAgcGFkZGluZzogMTBweCAxNnB4O1xuICBmb250LXNpemU6IDE4cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjMzMzMzMzM7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbn1cbi5idG4tc20sXG4uYnRuLWdyb3VwLXNtID4gLmJ0biB7XG4gIHBhZGRpbmc6IDVweCAxMHB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cbi5idG4teHMsXG4uYnRuLWdyb3VwLXhzID4gLmJ0biB7XG4gIHBhZGRpbmc6IDFweCA1cHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xufVxuLmJ0bi1ibG9jayB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbn1cbi5idG4tYmxvY2sgKyAuYnRuLWJsb2NrIHtcbiAgbWFyZ2luLXRvcDogNXB4O1xufVxuaW5wdXRbdHlwZT1cInN1Ym1pdFwiXS5idG4tYmxvY2ssXG5pbnB1dFt0eXBlPVwicmVzZXRcIl0uYnRuLWJsb2NrLFxuaW5wdXRbdHlwZT1cImJ1dHRvblwiXS5idG4tYmxvY2sge1xuICB3aWR0aDogMTAwJTtcbn1cbi5mYWRlIHtcbiAgb3BhY2l0eTogMDtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGxpbmVhcjtcbiAgLW8tdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cyBsaW5lYXI7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgbGluZWFyO1xufVxuLmZhZGUuaW4ge1xuICBvcGFjaXR5OiAxO1xufVxuLmNvbGxhcHNlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5jb2xsYXBzZS5pbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxudHIuY29sbGFwc2UuaW4ge1xuICBkaXNwbGF5OiB0YWJsZS1yb3c7XG59XG50Ym9keS5jb2xsYXBzZS5pbiB7XG4gIGRpc3BsYXk6IHRhYmxlLXJvdy1ncm91cDtcbn1cbi5jb2xsYXBzaW5nIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTogaGVpZ2h0LCB2aXNpYmlsaXR5O1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBoZWlnaHQsIHZpc2liaWxpdHk7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4zNXM7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMzVzO1xuICAtd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZTtcbn1cbi5jYXJldCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IDJweDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgYm9yZGVyLXRvcDogNHB4IGRhc2hlZDtcbiAgYm9yZGVyLXRvcDogNHB4IHNvbGlkIFxcOTtcbiAgYm9yZGVyLXJpZ2h0OiA0cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1sZWZ0OiA0cHggc29saWQgdHJhbnNwYXJlbnQ7XG59XG4uZHJvcHVwLFxuLmRyb3Bkb3duIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmRyb3Bkb3duLXRvZ2dsZTpmb2N1cyB7XG4gIG91dGxpbmU6IDA7XG59XG4uZHJvcGRvd24tbWVudSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxMDAlO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAxMDAwO1xuICBkaXNwbGF5OiBub25lO1xuICBmbG9hdDogbGVmdDtcbiAgbWluLXdpZHRoOiAxNjBweDtcbiAgcGFkZGluZzogNXB4IDA7XG4gIG1hcmdpbjogMnB4IDAgMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCA2cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMTc1KTtcbiAgYm94LXNoYWRvdzogMCA2cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMTc1KTtcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbn1cbi5kcm9wZG93bi1tZW51LnB1bGwtcmlnaHQge1xuICByaWdodDogMDtcbiAgbGVmdDogYXV0bztcbn1cbi5kcm9wZG93bi1tZW51IC5kaXZpZGVyIHtcbiAgaGVpZ2h0OiAxcHg7XG4gIG1hcmdpbjogOXB4IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNWU1ZTU7XG59XG4uZHJvcGRvd24tbWVudSA+IGxpID4gYSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAzcHggMjBweDtcbiAgY2xlYXI6IGJvdGg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xuICBjb2xvcjogIzMzMzMzMztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5kcm9wZG93bi1tZW51ID4gbGkgPiBhOmhvdmVyLFxuLmRyb3Bkb3duLW1lbnUgPiBsaSA+IGE6Zm9jdXMge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiAjMjYyNjI2O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xufVxuLmRyb3Bkb3duLW1lbnUgPiAuYWN0aXZlID4gYSxcbi5kcm9wZG93bi1tZW51ID4gLmFjdGl2ZSA+IGE6aG92ZXIsXG4uZHJvcGRvd24tbWVudSA+IC5hY3RpdmUgPiBhOmZvY3VzIHtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgb3V0bGluZTogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwZTVmMDtcbn1cbi5kcm9wZG93bi1tZW51ID4gLmRpc2FibGVkID4gYSxcbi5kcm9wZG93bi1tZW51ID4gLmRpc2FibGVkID4gYTpob3Zlcixcbi5kcm9wZG93bi1tZW51ID4gLmRpc2FibGVkID4gYTpmb2N1cyB7XG4gIGNvbG9yOiAjNzc3Nzc3O1xufVxuLmRyb3Bkb3duLW1lbnUgPiAuZGlzYWJsZWQgPiBhOmhvdmVyLFxuLmRyb3Bkb3duLW1lbnUgPiAuZGlzYWJsZWQgPiBhOmZvY3VzIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoZW5hYmxlZCA9IGZhbHNlKTtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cbi5vcGVuID4gLmRyb3Bkb3duLW1lbnUge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi5vcGVuID4gYSB7XG4gIG91dGxpbmU6IDA7XG59XG4uZHJvcGRvd24tbWVudS1yaWdodCB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAwO1xufVxuLmRyb3Bkb3duLW1lbnUtbGVmdCB7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiBhdXRvO1xufVxuLmRyb3Bkb3duLWhlYWRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAzcHggMjBweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcbiAgY29sb3I6ICM3Nzc3Nzc7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4uZHJvcGRvd24tYmFja2Ryb3Age1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIHRvcDogMDtcbiAgei1pbmRleDogOTkwO1xufVxuLnB1bGwtcmlnaHQgPiAuZHJvcGRvd24tbWVudSB7XG4gIHJpZ2h0OiAwO1xuICBsZWZ0OiBhdXRvO1xufVxuLmRyb3B1cCAuY2FyZXQsXG4ubmF2YmFyLWZpeGVkLWJvdHRvbSAuZHJvcGRvd24gLmNhcmV0IHtcbiAgYm9yZGVyLXRvcDogMDtcbiAgYm9yZGVyLWJvdHRvbTogNHB4IGRhc2hlZDtcbiAgYm9yZGVyLWJvdHRvbTogNHB4IHNvbGlkIFxcOTtcbiAgY29udGVudDogXCJcIjtcbn1cbi5kcm9wdXAgLmRyb3Bkb3duLW1lbnUsXG4ubmF2YmFyLWZpeGVkLWJvdHRvbSAuZHJvcGRvd24gLmRyb3Bkb3duLW1lbnUge1xuICB0b3A6IGF1dG87XG4gIGJvdHRvbTogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMnB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5uYXZiYXItcmlnaHQgLmRyb3Bkb3duLW1lbnUge1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IDA7XG4gIH1cbiAgLm5hdmJhci1yaWdodCAuZHJvcGRvd24tbWVudS1sZWZ0IHtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiBhdXRvO1xuICB9XG59XG4uYnRuLWdyb3VwLFxuLmJ0bi1ncm91cC12ZXJ0aWNhbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLmJ0bi1ncm91cCA+IC5idG4sXG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0biB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZmxvYXQ6IGxlZnQ7XG59XG4uYnRuLWdyb3VwID4gLmJ0bjpob3Zlcixcbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuOmhvdmVyLFxuLmJ0bi1ncm91cCA+IC5idG46Zm9jdXMsXG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bjpmb2N1cyxcbi5idG4tZ3JvdXAgPiAuYnRuOmFjdGl2ZSxcbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuOmFjdGl2ZSxcbi5idG4tZ3JvdXAgPiAuYnRuLmFjdGl2ZSxcbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuLmFjdGl2ZSB7XG4gIHotaW5kZXg6IDI7XG59XG4uYnRuLWdyb3VwIC5idG4gKyAuYnRuLFxuLmJ0bi1ncm91cCAuYnRuICsgLmJ0bi1ncm91cCxcbi5idG4tZ3JvdXAgLmJ0bi1ncm91cCArIC5idG4sXG4uYnRuLWdyb3VwIC5idG4tZ3JvdXAgKyAuYnRuLWdyb3VwIHtcbiAgbWFyZ2luLWxlZnQ6IC0xcHg7XG59XG4uYnRuLXRvb2xiYXIge1xuICBtYXJnaW4tbGVmdDogLTVweDtcbn1cbi5idG4tdG9vbGJhciAuYnRuLFxuLmJ0bi10b29sYmFyIC5idG4tZ3JvdXAsXG4uYnRuLXRvb2xiYXIgLmlucHV0LWdyb3VwIHtcbiAgZmxvYXQ6IGxlZnQ7XG59XG4uYnRuLXRvb2xiYXIgPiAuYnRuLFxuLmJ0bi10b29sYmFyID4gLmJ0bi1ncm91cCxcbi5idG4tdG9vbGJhciA+IC5pbnB1dC1ncm91cCB7XG4gIG1hcmdpbi1sZWZ0OiA1cHg7XG59XG4uYnRuLWdyb3VwID4gLmJ0bjpub3QoOmZpcnN0LWNoaWxkKTpub3QoOmxhc3QtY2hpbGQpOm5vdCguZHJvcGRvd24tdG9nZ2xlKSB7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG4uYnRuLWdyb3VwID4gLmJ0bjpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuLmJ0bi1ncm91cCA+IC5idG46Zmlyc3QtY2hpbGQ6bm90KDpsYXN0LWNoaWxkKTpub3QoLmRyb3Bkb3duLXRvZ2dsZSkge1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG59XG4uYnRuLWdyb3VwID4gLmJ0bjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpLFxuLmJ0bi1ncm91cCA+IC5kcm9wZG93bi10b2dnbGU6bm90KDpmaXJzdC1jaGlsZCkge1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xufVxuLmJ0bi1ncm91cCA+IC5idG4tZ3JvdXAge1xuICBmbG9hdDogbGVmdDtcbn1cbi5idG4tZ3JvdXAgPiAuYnRuLWdyb3VwOm5vdCg6Zmlyc3QtY2hpbGQpOm5vdCg6bGFzdC1jaGlsZCkgPiAuYnRuIHtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cbi5idG4tZ3JvdXAgPiAuYnRuLWdyb3VwOmZpcnN0LWNoaWxkOm5vdCg6bGFzdC1jaGlsZCkgPiAuYnRuOmxhc3QtY2hpbGQsXG4uYnRuLWdyb3VwID4gLmJ0bi1ncm91cDpmaXJzdC1jaGlsZDpub3QoOmxhc3QtY2hpbGQpID4gLmRyb3Bkb3duLXRvZ2dsZSB7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbn1cbi5idG4tZ3JvdXAgPiAuYnRuLWdyb3VwOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkgPiAuYnRuOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbn1cbi5idG4tZ3JvdXAgLmRyb3Bkb3duLXRvZ2dsZTphY3RpdmUsXG4uYnRuLWdyb3VwLm9wZW4gLmRyb3Bkb3duLXRvZ2dsZSB7XG4gIG91dGxpbmU6IDA7XG59XG4uYnRuLWdyb3VwID4gLmJ0biArIC5kcm9wZG93bi10b2dnbGUge1xuICBwYWRkaW5nLWxlZnQ6IDhweDtcbiAgcGFkZGluZy1yaWdodDogOHB4O1xufVxuLmJ0bi1ncm91cCA+IC5idG4tbGcgKyAuZHJvcGRvd24tdG9nZ2xlIHtcbiAgcGFkZGluZy1sZWZ0OiAxMnB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxMnB4O1xufVxuLmJ0bi1ncm91cC5vcGVuIC5kcm9wZG93bi10b2dnbGUge1xuICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgM3B4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTI1KTtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAzcHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMjUpO1xufVxuLmJ0bi1ncm91cC5vcGVuIC5kcm9wZG93bi10b2dnbGUuYnRuLWxpbmsge1xuICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4uYnRuIC5jYXJldCB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuLmJ0bi1sZyAuY2FyZXQge1xuICBib3JkZXItd2lkdGg6IDVweCA1cHggMDtcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbn1cbi5kcm9wdXAgLmJ0bi1sZyAuY2FyZXQge1xuICBib3JkZXItd2lkdGg6IDAgNXB4IDVweDtcbn1cbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuLFxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4tZ3JvdXAsXG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bi1ncm91cCA+IC5idG4ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxvYXQ6IG5vbmU7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bi1ncm91cCA+IC5idG4ge1xuICBmbG9hdDogbm9uZTtcbn1cbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuICsgLmJ0bixcbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuICsgLmJ0bi1ncm91cCxcbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuLWdyb3VwICsgLmJ0bixcbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuLWdyb3VwICsgLmJ0bi1ncm91cCB7XG4gIG1hcmdpbi10b3A6IC0xcHg7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG46bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKSB7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bjpmaXJzdC1jaGlsZDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDRweDtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNHB4O1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbn1cbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDRweDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNHB4O1xufVxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4tZ3JvdXA6bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKSA+IC5idG4ge1xuICBib3JkZXItcmFkaXVzOiAwO1xufVxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4tZ3JvdXA6Zmlyc3QtY2hpbGQ6bm90KDpsYXN0LWNoaWxkKSA+IC5idG46bGFzdC1jaGlsZCxcbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuLWdyb3VwOmZpcnN0LWNoaWxkOm5vdCg6bGFzdC1jaGlsZCkgPiAuZHJvcGRvd24tdG9nZ2xlIHtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG59XG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bi1ncm91cDpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpID4gLmJ0bjpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xufVxuLmJ0bi1ncm91cC1qdXN0aWZpZWQge1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgd2lkdGg6IDEwMCU7XG4gIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gIGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7XG59XG4uYnRuLWdyb3VwLWp1c3RpZmllZCA+IC5idG4sXG4uYnRuLWdyb3VwLWp1c3RpZmllZCA+IC5idG4tZ3JvdXAge1xuICBmbG9hdDogbm9uZTtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgd2lkdGg6IDElO1xufVxuLmJ0bi1ncm91cC1qdXN0aWZpZWQgPiAuYnRuLWdyb3VwIC5idG4ge1xuICB3aWR0aDogMTAwJTtcbn1cbi5idG4tZ3JvdXAtanVzdGlmaWVkID4gLmJ0bi1ncm91cCAuZHJvcGRvd24tbWVudSB7XG4gIGxlZnQ6IGF1dG87XG59XG5bZGF0YS10b2dnbGU9XCJidXR0b25zXCJdID4gLmJ0biBpbnB1dFt0eXBlPVwicmFkaW9cIl0sXG5bZGF0YS10b2dnbGU9XCJidXR0b25zXCJdID4gLmJ0bi1ncm91cCA+IC5idG4gaW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuW2RhdGEtdG9nZ2xlPVwiYnV0dG9uc1wiXSA+IC5idG4gaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuW2RhdGEtdG9nZ2xlPVwiYnV0dG9uc1wiXSA+IC5idG4tZ3JvdXAgPiAuYnRuIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4uaW5wdXQtZ3JvdXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlO1xufVxuLmlucHV0LWdyb3VwW2NsYXNzKj1cImNvbC1cIl0ge1xuICBmbG9hdDogbm9uZTtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xufVxuLmlucHV0LWdyb3VwIC5mb3JtLWNvbnRyb2wge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDI7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cbi5pbnB1dC1ncm91cCAuZm9ybS1jb250cm9sOmZvY3VzIHtcbiAgei1pbmRleDogMztcbn1cbi5pbnB1dC1ncm91cC1sZyA+IC5mb3JtLWNvbnRyb2wsXG4uaW5wdXQtZ3JvdXAtbGcgPiAuaW5wdXQtZ3JvdXAtYWRkb24sXG4uaW5wdXQtZ3JvdXAtbGcgPiAuaW5wdXQtZ3JvdXAtYnRuID4gLmJ0biB7XG4gIGhlaWdodDogNDZweDtcbiAgcGFkZGluZzogMTBweCAxNnB4O1xuICBmb250LXNpemU6IDE4cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjMzMzMzMzM7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbn1cbnNlbGVjdC5pbnB1dC1ncm91cC1sZyA+IC5mb3JtLWNvbnRyb2wsXG5zZWxlY3QuaW5wdXQtZ3JvdXAtbGcgPiAuaW5wdXQtZ3JvdXAtYWRkb24sXG5zZWxlY3QuaW5wdXQtZ3JvdXAtbGcgPiAuaW5wdXQtZ3JvdXAtYnRuID4gLmJ0biB7XG4gIGhlaWdodDogNDZweDtcbiAgbGluZS1oZWlnaHQ6IDQ2cHg7XG59XG50ZXh0YXJlYS5pbnB1dC1ncm91cC1sZyA+IC5mb3JtLWNvbnRyb2wsXG50ZXh0YXJlYS5pbnB1dC1ncm91cC1sZyA+IC5pbnB1dC1ncm91cC1hZGRvbixcbnRleHRhcmVhLmlucHV0LWdyb3VwLWxnID4gLmlucHV0LWdyb3VwLWJ0biA+IC5idG4sXG5zZWxlY3RbbXVsdGlwbGVdLmlucHV0LWdyb3VwLWxnID4gLmZvcm0tY29udHJvbCxcbnNlbGVjdFttdWx0aXBsZV0uaW5wdXQtZ3JvdXAtbGcgPiAuaW5wdXQtZ3JvdXAtYWRkb24sXG5zZWxlY3RbbXVsdGlwbGVdLmlucHV0LWdyb3VwLWxnID4gLmlucHV0LWdyb3VwLWJ0biA+IC5idG4ge1xuICBoZWlnaHQ6IGF1dG87XG59XG4uaW5wdXQtZ3JvdXAtc20gPiAuZm9ybS1jb250cm9sLFxuLmlucHV0LWdyb3VwLXNtID4gLmlucHV0LWdyb3VwLWFkZG9uLFxuLmlucHV0LWdyb3VwLXNtID4gLmlucHV0LWdyb3VwLWJ0biA+IC5idG4ge1xuICBoZWlnaHQ6IDMwcHg7XG4gIHBhZGRpbmc6IDVweCAxMHB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cbnNlbGVjdC5pbnB1dC1ncm91cC1zbSA+IC5mb3JtLWNvbnRyb2wsXG5zZWxlY3QuaW5wdXQtZ3JvdXAtc20gPiAuaW5wdXQtZ3JvdXAtYWRkb24sXG5zZWxlY3QuaW5wdXQtZ3JvdXAtc20gPiAuaW5wdXQtZ3JvdXAtYnRuID4gLmJ0biB7XG4gIGhlaWdodDogMzBweDtcbiAgbGluZS1oZWlnaHQ6IDMwcHg7XG59XG50ZXh0YXJlYS5pbnB1dC1ncm91cC1zbSA+IC5mb3JtLWNvbnRyb2wsXG50ZXh0YXJlYS5pbnB1dC1ncm91cC1zbSA+IC5pbnB1dC1ncm91cC1hZGRvbixcbnRleHRhcmVhLmlucHV0LWdyb3VwLXNtID4gLmlucHV0LWdyb3VwLWJ0biA+IC5idG4sXG5zZWxlY3RbbXVsdGlwbGVdLmlucHV0LWdyb3VwLXNtID4gLmZvcm0tY29udHJvbCxcbnNlbGVjdFttdWx0aXBsZV0uaW5wdXQtZ3JvdXAtc20gPiAuaW5wdXQtZ3JvdXAtYWRkb24sXG5zZWxlY3RbbXVsdGlwbGVdLmlucHV0LWdyb3VwLXNtID4gLmlucHV0LWdyb3VwLWJ0biA+IC5idG4ge1xuICBoZWlnaHQ6IGF1dG87XG59XG4uaW5wdXQtZ3JvdXAtYWRkb24sXG4uaW5wdXQtZ3JvdXAtYnRuLFxuLmlucHV0LWdyb3VwIC5mb3JtLWNvbnRyb2wge1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xufVxuLmlucHV0LWdyb3VwLWFkZG9uOm5vdCg6Zmlyc3QtY2hpbGQpOm5vdCg6bGFzdC1jaGlsZCksXG4uaW5wdXQtZ3JvdXAtYnRuOm5vdCg6Zmlyc3QtY2hpbGQpOm5vdCg6bGFzdC1jaGlsZCksXG4uaW5wdXQtZ3JvdXAgLmZvcm0tY29udHJvbDpub3QoOmZpcnN0LWNoaWxkKTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cbi5pbnB1dC1ncm91cC1hZGRvbixcbi5pbnB1dC1ncm91cC1idG4ge1xuICB3aWR0aDogMSU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4uaW5wdXQtZ3JvdXAtYWRkb24ge1xuICBwYWRkaW5nOiA2cHggMTJweDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6ICM1NTU1NTU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZWVlZTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuLmlucHV0LWdyb3VwLWFkZG9uLmlucHV0LXNtIHtcbiAgcGFkZGluZzogNXB4IDEwcHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xufVxuLmlucHV0LWdyb3VwLWFkZG9uLmlucHV0LWxnIHtcbiAgcGFkZGluZzogMTBweCAxNnB4O1xuICBmb250LXNpemU6IDE4cHg7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbn1cbi5pbnB1dC1ncm91cC1hZGRvbiBpbnB1dFt0eXBlPVwicmFkaW9cIl0sXG4uaW5wdXQtZ3JvdXAtYWRkb24gaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cbi5pbnB1dC1ncm91cCAuZm9ybS1jb250cm9sOmZpcnN0LWNoaWxkLFxuLmlucHV0LWdyb3VwLWFkZG9uOmZpcnN0LWNoaWxkLFxuLmlucHV0LWdyb3VwLWJ0bjpmaXJzdC1jaGlsZCA+IC5idG4sXG4uaW5wdXQtZ3JvdXAtYnRuOmZpcnN0LWNoaWxkID4gLmJ0bi1ncm91cCA+IC5idG4sXG4uaW5wdXQtZ3JvdXAtYnRuOmZpcnN0LWNoaWxkID4gLmRyb3Bkb3duLXRvZ2dsZSxcbi5pbnB1dC1ncm91cC1idG46bGFzdC1jaGlsZCA+IC5idG46bm90KDpsYXN0LWNoaWxkKTpub3QoLmRyb3Bkb3duLXRvZ2dsZSksXG4uaW5wdXQtZ3JvdXAtYnRuOmxhc3QtY2hpbGQgPiAuYnRuLWdyb3VwOm5vdCg6bGFzdC1jaGlsZCkgPiAuYnRuIHtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xufVxuLmlucHV0LWdyb3VwLWFkZG9uOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXJpZ2h0OiAwO1xufVxuLmlucHV0LWdyb3VwIC5mb3JtLWNvbnRyb2w6bGFzdC1jaGlsZCxcbi5pbnB1dC1ncm91cC1hZGRvbjpsYXN0LWNoaWxkLFxuLmlucHV0LWdyb3VwLWJ0bjpsYXN0LWNoaWxkID4gLmJ0bixcbi5pbnB1dC1ncm91cC1idG46bGFzdC1jaGlsZCA+IC5idG4tZ3JvdXAgPiAuYnRuLFxuLmlucHV0LWdyb3VwLWJ0bjpsYXN0LWNoaWxkID4gLmRyb3Bkb3duLXRvZ2dsZSxcbi5pbnB1dC1ncm91cC1idG46Zmlyc3QtY2hpbGQgPiAuYnRuOm5vdCg6Zmlyc3QtY2hpbGQpLFxuLmlucHV0LWdyb3VwLWJ0bjpmaXJzdC1jaGlsZCA+IC5idG4tZ3JvdXA6bm90KDpmaXJzdC1jaGlsZCkgPiAuYnRuIHtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbn1cbi5pbnB1dC1ncm91cC1hZGRvbjpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLWxlZnQ6IDA7XG59XG4uaW5wdXQtZ3JvdXAtYnRuIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmb250LXNpemU6IDA7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4uaW5wdXQtZ3JvdXAtYnRuID4gLmJ0biB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5pbnB1dC1ncm91cC1idG4gPiAuYnRuICsgLmJ0biB7XG4gIG1hcmdpbi1sZWZ0OiAtMXB4O1xufVxuLmlucHV0LWdyb3VwLWJ0biA+IC5idG46aG92ZXIsXG4uaW5wdXQtZ3JvdXAtYnRuID4gLmJ0bjpmb2N1cyxcbi5pbnB1dC1ncm91cC1idG4gPiAuYnRuOmFjdGl2ZSB7XG4gIHotaW5kZXg6IDI7XG59XG4uaW5wdXQtZ3JvdXAtYnRuOmZpcnN0LWNoaWxkID4gLmJ0bixcbi5pbnB1dC1ncm91cC1idG46Zmlyc3QtY2hpbGQgPiAuYnRuLWdyb3VwIHtcbiAgbWFyZ2luLXJpZ2h0OiAtMXB4O1xufVxuLmlucHV0LWdyb3VwLWJ0bjpsYXN0LWNoaWxkID4gLmJ0bixcbi5pbnB1dC1ncm91cC1idG46bGFzdC1jaGlsZCA+IC5idG4tZ3JvdXAge1xuICB6LWluZGV4OiAyO1xuICBtYXJnaW4tbGVmdDogLTFweDtcbn1cbi5uYXYge1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG4ubmF2ID4gbGkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLm5hdiA+IGxpID4gYSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDEwcHggMTVweDtcbn1cbi5uYXYgPiBsaSA+IGE6aG92ZXIsXG4ubmF2ID4gbGkgPiBhOmZvY3VzIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlZWVlO1xufVxuLm5hdiA+IGxpLmRpc2FibGVkID4gYSB7XG4gIGNvbG9yOiAjNzc3Nzc3O1xufVxuLm5hdiA+IGxpLmRpc2FibGVkID4gYTpob3Zlcixcbi5uYXYgPiBsaS5kaXNhYmxlZCA+IGE6Zm9jdXMge1xuICBjb2xvcjogIzc3Nzc3NztcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cbi5uYXYgLm9wZW4gPiBhLFxuLm5hdiAub3BlbiA+IGE6aG92ZXIsXG4ubmF2IC5vcGVuID4gYTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZWVlZWU7XG4gIGJvcmRlci1jb2xvcjogIzAwZTVmMDtcbn1cbi5uYXYgLm5hdi1kaXZpZGVyIHtcbiAgaGVpZ2h0OiAxcHg7XG4gIG1hcmdpbjogOXB4IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNWU1ZTU7XG59XG4ubmF2ID4gbGkgPiBhID4gaW1nIHtcbiAgbWF4LXdpZHRoOiBub25lO1xufVxuLm5hdi10YWJzIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkZGQ7XG59XG4ubmF2LXRhYnMgPiBsaSB7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tYm90dG9tOiAtMXB4O1xufVxuLm5hdi10YWJzID4gbGkgPiBhIHtcbiAgbWFyZ2luLXJpZ2h0OiAycHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogNHB4IDRweCAwIDA7XG59XG4ubmF2LXRhYnMgPiBsaSA+IGE6aG92ZXIge1xuICBib3JkZXItY29sb3I6ICNlZWVlZWUgI2VlZWVlZSAjZGRkO1xufVxuLm5hdi10YWJzID4gbGkuYWN0aXZlID4gYSxcbi5uYXYtdGFicyA+IGxpLmFjdGl2ZSA+IGE6aG92ZXIsXG4ubmF2LXRhYnMgPiBsaS5hY3RpdmUgPiBhOmZvY3VzIHtcbiAgY29sb3I6ICM1NTU1NTU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50O1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG4ubmF2LXRhYnMubmF2LWp1c3RpZmllZCB7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXItYm90dG9tOiAwO1xufVxuLm5hdi10YWJzLm5hdi1qdXN0aWZpZWQgPiBsaSB7XG4gIGZsb2F0OiBub25lO1xufVxuLm5hdi10YWJzLm5hdi1qdXN0aWZpZWQgPiBsaSA+IGEge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbn1cbi5uYXYtdGFicy5uYXYtanVzdGlmaWVkID4gLmRyb3Bkb3duIC5kcm9wZG93bi1tZW51IHtcbiAgdG9wOiBhdXRvO1xuICBsZWZ0OiBhdXRvO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5uYXYtdGFicy5uYXYtanVzdGlmaWVkID4gbGkge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgd2lkdGg6IDElO1xuICB9XG4gIC5uYXYtdGFicy5uYXYtanVzdGlmaWVkID4gbGkgPiBhIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG4ubmF2LXRhYnMubmF2LWp1c3RpZmllZCA+IGxpID4gYSB7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuLm5hdi10YWJzLm5hdi1qdXN0aWZpZWQgPiAuYWN0aXZlID4gYSxcbi5uYXYtdGFicy5uYXYtanVzdGlmaWVkID4gLmFjdGl2ZSA+IGE6aG92ZXIsXG4ubmF2LXRhYnMubmF2LWp1c3RpZmllZCA+IC5hY3RpdmUgPiBhOmZvY3VzIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAubmF2LXRhYnMubmF2LWp1c3RpZmllZCA+IGxpID4gYSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkZGQ7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4IDRweCAwIDA7XG4gIH1cbiAgLm5hdi10YWJzLm5hdi1qdXN0aWZpZWQgPiAuYWN0aXZlID4gYSxcbiAgLm5hdi10YWJzLm5hdi1qdXN0aWZpZWQgPiAuYWN0aXZlID4gYTpob3ZlcixcbiAgLm5hdi10YWJzLm5hdi1qdXN0aWZpZWQgPiAuYWN0aXZlID4gYTpmb2N1cyB7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogI2ZmZjtcbiAgfVxufVxuLm5hdi1waWxscyA+IGxpIHtcbiAgZmxvYXQ6IGxlZnQ7XG59XG4ubmF2LXBpbGxzID4gbGkgPiBhIHtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuLm5hdi1waWxscyA+IGxpICsgbGkge1xuICBtYXJnaW4tbGVmdDogMnB4O1xufVxuLm5hdi1waWxscyA+IGxpLmFjdGl2ZSA+IGEsXG4ubmF2LXBpbGxzID4gbGkuYWN0aXZlID4gYTpob3Zlcixcbi5uYXYtcGlsbHMgPiBsaS5hY3RpdmUgPiBhOmZvY3VzIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGU1ZjA7XG59XG4ubmF2LXN0YWNrZWQgPiBsaSB7XG4gIGZsb2F0OiBub25lO1xufVxuLm5hdi1zdGFja2VkID4gbGkgKyBsaSB7XG4gIG1hcmdpbi10b3A6IDJweDtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG4ubmF2LWp1c3RpZmllZCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLm5hdi1qdXN0aWZpZWQgPiBsaSB7XG4gIGZsb2F0OiBub25lO1xufVxuLm5hdi1qdXN0aWZpZWQgPiBsaSA+IGEge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbn1cbi5uYXYtanVzdGlmaWVkID4gLmRyb3Bkb3duIC5kcm9wZG93bi1tZW51IHtcbiAgdG9wOiBhdXRvO1xuICBsZWZ0OiBhdXRvO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5uYXYtanVzdGlmaWVkID4gbGkge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgd2lkdGg6IDElO1xuICB9XG4gIC5uYXYtanVzdGlmaWVkID4gbGkgPiBhIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG4ubmF2LXRhYnMtanVzdGlmaWVkIHtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbn1cbi5uYXYtdGFicy1qdXN0aWZpZWQgPiBsaSA+IGEge1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cbi5uYXYtdGFicy1qdXN0aWZpZWQgPiAuYWN0aXZlID4gYSxcbi5uYXYtdGFicy1qdXN0aWZpZWQgPiAuYWN0aXZlID4gYTpob3Zlcixcbi5uYXYtdGFicy1qdXN0aWZpZWQgPiAuYWN0aXZlID4gYTpmb2N1cyB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLm5hdi10YWJzLWp1c3RpZmllZCA+IGxpID4gYSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkZGQ7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4IDRweCAwIDA7XG4gIH1cbiAgLm5hdi10YWJzLWp1c3RpZmllZCA+IC5hY3RpdmUgPiBhLFxuICAubmF2LXRhYnMtanVzdGlmaWVkID4gLmFjdGl2ZSA+IGE6aG92ZXIsXG4gIC5uYXYtdGFicy1qdXN0aWZpZWQgPiAuYWN0aXZlID4gYTpmb2N1cyB7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogI2ZmZjtcbiAgfVxufVxuLnRhYi1jb250ZW50ID4gLnRhYi1wYW5lIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi50YWItY29udGVudCA+IC5hY3RpdmUge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi5uYXYtdGFicyAuZHJvcGRvd24tbWVudSB7XG4gIG1hcmdpbi10b3A6IC0xcHg7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xufVxuLm5hdmJhciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWluLWhlaWdodDogNTBweDtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLm5hdmJhciB7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLm5hdmJhci1oZWFkZXIge1xuICAgIGZsb2F0OiBsZWZ0O1xuICB9XG59XG4ubmF2YmFyLWNvbGxhcHNlIHtcbiAgb3ZlcmZsb3cteDogdmlzaWJsZTtcbiAgcGFkZGluZy1yaWdodDogMTVweDtcbiAgcGFkZGluZy1sZWZ0OiAxNXB4O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG59XG4ubmF2YmFyLWNvbGxhcHNlLmluIHtcbiAgb3ZlcmZsb3cteTogYXV0bztcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAubmF2YmFyLWNvbGxhcHNlIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBib3JkZXItdG9wOiAwO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gIH1cbiAgLm5hdmJhci1jb2xsYXBzZS5jb2xsYXBzZSB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xuICB9XG4gIC5uYXZiYXItY29sbGFwc2UuaW4ge1xuICAgIG92ZXJmbG93LXk6IHZpc2libGU7XG4gIH1cbiAgLm5hdmJhci1maXhlZC10b3AgLm5hdmJhci1jb2xsYXBzZSxcbiAgLm5hdmJhci1zdGF0aWMtdG9wIC5uYXZiYXItY29sbGFwc2UsXG4gIC5uYXZiYXItZml4ZWQtYm90dG9tIC5uYXZiYXItY29sbGFwc2Uge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICB9XG59XG4ubmF2YmFyLWZpeGVkLXRvcCAubmF2YmFyLWNvbGxhcHNlLFxuLm5hdmJhci1maXhlZC1ib3R0b20gLm5hdmJhci1jb2xsYXBzZSB7XG4gIG1heC1oZWlnaHQ6IDM0MHB4O1xufVxuQG1lZGlhIChtYXgtZGV2aWNlLXdpZHRoOiA0ODBweCkgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSB7XG4gIC5uYXZiYXItZml4ZWQtdG9wIC5uYXZiYXItY29sbGFwc2UsXG4gIC5uYXZiYXItZml4ZWQtYm90dG9tIC5uYXZiYXItY29sbGFwc2Uge1xuICAgIG1heC1oZWlnaHQ6IDIwMHB4O1xuICB9XG59XG4uY29udGFpbmVyID4gLm5hdmJhci1oZWFkZXIsXG4uY29udGFpbmVyLWZsdWlkID4gLm5hdmJhci1oZWFkZXIsXG4uY29udGFpbmVyID4gLm5hdmJhci1jb2xsYXBzZSxcbi5jb250YWluZXItZmx1aWQgPiAubmF2YmFyLWNvbGxhcHNlIHtcbiAgbWFyZ2luLXJpZ2h0OiAtMTVweDtcbiAgbWFyZ2luLWxlZnQ6IC0xNXB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5jb250YWluZXIgPiAubmF2YmFyLWhlYWRlcixcbiAgLmNvbnRhaW5lci1mbHVpZCA+IC5uYXZiYXItaGVhZGVyLFxuICAuY29udGFpbmVyID4gLm5hdmJhci1jb2xsYXBzZSxcbiAgLmNvbnRhaW5lci1mbHVpZCA+IC5uYXZiYXItY29sbGFwc2Uge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxufVxuLm5hdmJhci1zdGF0aWMtdG9wIHtcbiAgei1pbmRleDogMTAwMDtcbiAgYm9yZGVyLXdpZHRoOiAwIDAgMXB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5uYXZiYXItc3RhdGljLXRvcCB7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgfVxufVxuLm5hdmJhci1maXhlZC10b3AsXG4ubmF2YmFyLWZpeGVkLWJvdHRvbSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgcmlnaHQ6IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDEwMzA7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLm5hdmJhci1maXhlZC10b3AsXG4gIC5uYXZiYXItZml4ZWQtYm90dG9tIHtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICB9XG59XG4ubmF2YmFyLWZpeGVkLXRvcCB7XG4gIHRvcDogMDtcbiAgYm9yZGVyLXdpZHRoOiAwIDAgMXB4O1xufVxuLm5hdmJhci1maXhlZC1ib3R0b20ge1xuICBib3R0b206IDA7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGJvcmRlci13aWR0aDogMXB4IDAgMDtcbn1cbi5uYXZiYXItYnJhbmQge1xuICBmbG9hdDogbGVmdDtcbiAgcGFkZGluZzogMTVweCAxNXB4O1xuICBmb250LXNpemU6IDE4cHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICBoZWlnaHQ6IDUwcHg7XG59XG4ubmF2YmFyLWJyYW5kOmhvdmVyLFxuLm5hdmJhci1icmFuZDpmb2N1cyB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi5uYXZiYXItYnJhbmQgPiBpbWcge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAubmF2YmFyID4gLmNvbnRhaW5lciAubmF2YmFyLWJyYW5kLFxuICAubmF2YmFyID4gLmNvbnRhaW5lci1mbHVpZCAubmF2YmFyLWJyYW5kIHtcbiAgICBtYXJnaW4tbGVmdDogLTE1cHg7XG4gIH1cbn1cbi5uYXZiYXItdG9nZ2xlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbi1yaWdodDogMTVweDtcbiAgcGFkZGluZzogOXB4IDEwcHg7XG4gIG1hcmdpbi10b3A6IDhweDtcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cbi5uYXZiYXItdG9nZ2xlOmZvY3VzIHtcbiAgb3V0bGluZTogMDtcbn1cbi5uYXZiYXItdG9nZ2xlIC5pY29uLWJhciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMjJweDtcbiAgaGVpZ2h0OiAycHg7XG4gIGJvcmRlci1yYWRpdXM6IDFweDtcbn1cbi5uYXZiYXItdG9nZ2xlIC5pY29uLWJhciArIC5pY29uLWJhciB7XG4gIG1hcmdpbi10b3A6IDRweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAubmF2YmFyLXRvZ2dsZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuLm5hdmJhci1uYXYge1xuICBtYXJnaW46IDcuNXB4IC0xNXB4O1xufVxuLm5hdmJhci1uYXYgPiBsaSA+IGEge1xuICBwYWRkaW5nLXRvcDogMTBweDtcbiAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51IHtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIGZsb2F0OiBub25lO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gIH1cbiAgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnUgPiBsaSA+IGEsXG4gIC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51IC5kcm9wZG93bi1oZWFkZXIge1xuICAgIHBhZGRpbmc6IDVweCAxNXB4IDVweCAyNXB4O1xuICB9XG4gIC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51ID4gbGkgPiBhIHtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgfVxuICAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSA+IGxpID4gYTpob3ZlcixcbiAgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnUgPiBsaSA+IGE6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAubmF2YmFyLW5hdiB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luOiAwO1xuICB9XG4gIC5uYXZiYXItbmF2ID4gbGkge1xuICAgIGZsb2F0OiBsZWZ0O1xuICB9XG4gIC5uYXZiYXItbmF2ID4gbGkgPiBhIHtcbiAgICBwYWRkaW5nLXRvcDogMTVweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTVweDtcbiAgfVxufVxuLm5hdmJhci1mb3JtIHtcbiAgbWFyZ2luLWxlZnQ6IC0xNXB4O1xuICBtYXJnaW4tcmlnaHQ6IC0xNXB4O1xuICBwYWRkaW5nOiAxMHB4IDE1cHg7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpLCAwIDFweCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSksIDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xuICBtYXJnaW4tdG9wOiA4cHg7XG4gIG1hcmdpbi1ib3R0b206IDhweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAubmF2YmFyLWZvcm0gLmZvcm0tZ3JvdXAge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIH1cbiAgLm5hdmJhci1mb3JtIC5mb3JtLWNvbnRyb2wge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogYXV0bztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG4gIC5uYXZiYXItZm9ybSAuZm9ybS1jb250cm9sLXN0YXRpYyB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG4gIC5uYXZiYXItZm9ybSAuaW5wdXQtZ3JvdXAge1xuICAgIGRpc3BsYXk6IGlubGluZS10YWJsZTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG4gIC5uYXZiYXItZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWFkZG9uLFxuICAubmF2YmFyLWZvcm0gLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idG4sXG4gIC5uYXZiYXItZm9ybSAuaW5wdXQtZ3JvdXAgLmZvcm0tY29udHJvbCB7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cbiAgLm5hdmJhci1mb3JtIC5pbnB1dC1ncm91cCA+IC5mb3JtLWNvbnRyb2wge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIC5uYXZiYXItZm9ybSAuY29udHJvbC1sYWJlbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG4gIC5uYXZiYXItZm9ybSAucmFkaW8sXG4gIC5uYXZiYXItZm9ybSAuY2hlY2tib3gge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxuICAubmF2YmFyLWZvcm0gLnJhZGlvIGxhYmVsLFxuICAubmF2YmFyLWZvcm0gLmNoZWNrYm94IGxhYmVsIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gIH1cbiAgLm5hdmJhci1mb3JtIC5yYWRpbyBpbnB1dFt0eXBlPVwicmFkaW9cIl0sXG4gIC5uYXZiYXItZm9ybSAuY2hlY2tib3ggaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cbiAgLm5hdmJhci1mb3JtIC5oYXMtZmVlZGJhY2sgLmZvcm0tY29udHJvbC1mZWVkYmFjayB7XG4gICAgdG9wOiAwO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLm5hdmJhci1mb3JtIC5mb3JtLWdyb3VwIHtcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gIH1cbiAgLm5hdmJhci1mb3JtIC5mb3JtLWdyb3VwOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAubmF2YmFyLWZvcm0ge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGJvcmRlcjogMDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gIH1cbn1cbi5uYXZiYXItbmF2ID4gbGkgPiAuZHJvcGRvd24tbWVudSB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xufVxuLm5hdmJhci1maXhlZC1ib3R0b20gLm5hdmJhci1uYXYgPiBsaSA+IC5kcm9wZG93bi1tZW51IHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDRweDtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNHB4O1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbn1cbi5uYXZiYXItYnRuIHtcbiAgbWFyZ2luLXRvcDogOHB4O1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG59XG4ubmF2YmFyLWJ0bi5idG4tc20ge1xuICBtYXJnaW4tdG9wOiAxMHB4O1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuLm5hdmJhci1idG4uYnRuLXhzIHtcbiAgbWFyZ2luLXRvcDogMTRweDtcbiAgbWFyZ2luLWJvdHRvbTogMTRweDtcbn1cbi5uYXZiYXItdGV4dCB7XG4gIG1hcmdpbi10b3A6IDE1cHg7XG4gIG1hcmdpbi1ib3R0b206IDE1cHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLm5hdmJhci10ZXh0IHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tbGVmdDogMTVweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDE1cHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAubmF2YmFyLWxlZnQge1xuICAgIGZsb2F0OiBsZWZ0ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm5hdmJhci1yaWdodCB7XG4gICAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAtMTVweDtcbiAgfVxuICAubmF2YmFyLXJpZ2h0IH4gLm5hdmJhci1yaWdodCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICB9XG59XG4ubmF2YmFyLWRlZmF1bHQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhmOGY4O1xuICBib3JkZXItY29sb3I6ICNlN2U3ZTc7XG59XG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1icmFuZCB7XG4gIGNvbG9yOiAjNzc3O1xufVxuLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItYnJhbmQ6aG92ZXIsXG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1icmFuZDpmb2N1cyB7XG4gIGNvbG9yOiAjNWU1ZTVlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5uYXZiYXItZGVmYXVsdCAubmF2YmFyLXRleHQge1xuICBjb2xvcjogIzc3Nztcbn1cbi5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiA+IGxpID4gYSB7XG4gIGNvbG9yOiAjNzc3O1xufVxuLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2ID4gbGkgPiBhOmhvdmVyLFxuLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2ID4gbGkgPiBhOmZvY3VzIHtcbiAgY29sb3I6ICMzMzM7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2ID4gLmFjdGl2ZSA+IGEsXG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgPiAuYWN0aXZlID4gYTpob3Zlcixcbi5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiA+IC5hY3RpdmUgPiBhOmZvY3VzIHtcbiAgY29sb3I6ICM1NTU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlN2U3ZTc7XG59XG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgPiAuZGlzYWJsZWQgPiBhLFxuLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2ID4gLmRpc2FibGVkID4gYTpob3Zlcixcbi5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiA+IC5kaXNhYmxlZCA+IGE6Zm9jdXMge1xuICBjb2xvcjogI2NjYztcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci10b2dnbGUge1xuICBib3JkZXItY29sb3I6ICNkZGQ7XG59XG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci10b2dnbGU6aG92ZXIsXG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci10b2dnbGU6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkO1xufVxuLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItdG9nZ2xlIC5pY29uLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4ODg7XG59XG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1jb2xsYXBzZSxcbi5uYXZiYXItZGVmYXVsdCAubmF2YmFyLWZvcm0ge1xuICBib3JkZXItY29sb3I6ICNlN2U3ZTc7XG59XG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgPiAub3BlbiA+IGEsXG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgPiAub3BlbiA+IGE6aG92ZXIsXG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgPiAub3BlbiA+IGE6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTdlN2U3O1xuICBjb2xvcjogIzU1NTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnUgPiBsaSA+IGEge1xuICAgIGNvbG9yOiAjNzc3O1xuICB9XG4gIC5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSA+IGxpID4gYTpob3ZlcixcbiAgLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51ID4gbGkgPiBhOmZvY3VzIHtcbiAgICBjb2xvcjogIzMzMztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxuICAubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnUgPiAuYWN0aXZlID4gYSxcbiAgLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51ID4gLmFjdGl2ZSA+IGE6aG92ZXIsXG4gIC5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSA+IC5hY3RpdmUgPiBhOmZvY3VzIHtcbiAgICBjb2xvcjogIzU1NTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTdlN2U3O1xuICB9XG4gIC5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSA+IC5kaXNhYmxlZCA+IGEsXG4gIC5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSA+IC5kaXNhYmxlZCA+IGE6aG92ZXIsXG4gIC5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSA+IC5kaXNhYmxlZCA+IGE6Zm9jdXMge1xuICAgIGNvbG9yOiAjY2NjO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG59XG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1saW5rIHtcbiAgY29sb3I6ICM3Nzc7XG59XG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1saW5rOmhvdmVyIHtcbiAgY29sb3I6ICMzMzM7XG59XG4ubmF2YmFyLWRlZmF1bHQgLmJ0bi1saW5rIHtcbiAgY29sb3I6ICM3Nzc7XG59XG4ubmF2YmFyLWRlZmF1bHQgLmJ0bi1saW5rOmhvdmVyLFxuLm5hdmJhci1kZWZhdWx0IC5idG4tbGluazpmb2N1cyB7XG4gIGNvbG9yOiAjMzMzO1xufVxuLm5hdmJhci1kZWZhdWx0IC5idG4tbGlua1tkaXNhYmxlZF06aG92ZXIsXG5maWVsZHNldFtkaXNhYmxlZF0gLm5hdmJhci1kZWZhdWx0IC5idG4tbGluazpob3Zlcixcbi5uYXZiYXItZGVmYXVsdCAuYnRuLWxpbmtbZGlzYWJsZWRdOmZvY3VzLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5uYXZiYXItZGVmYXVsdCAuYnRuLWxpbms6Zm9jdXMge1xuICBjb2xvcjogI2NjYztcbn1cbi5uYXZiYXItaW52ZXJzZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMjI7XG4gIGJvcmRlci1jb2xvcjogIzA4MDgwODtcbn1cbi5uYXZiYXItaW52ZXJzZSAubmF2YmFyLWJyYW5kIHtcbiAgY29sb3I6ICM5ZDlkOWQ7XG59XG4ubmF2YmFyLWludmVyc2UgLm5hdmJhci1icmFuZDpob3Zlcixcbi5uYXZiYXItaW52ZXJzZSAubmF2YmFyLWJyYW5kOmZvY3VzIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItdGV4dCB7XG4gIGNvbG9yOiAjOWQ5ZDlkO1xufVxuLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2ID4gbGkgPiBhIHtcbiAgY29sb3I6ICM5ZDlkOWQ7XG59XG4ubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgPiBsaSA+IGE6aG92ZXIsXG4ubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgPiBsaSA+IGE6Zm9jdXMge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4ubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgPiAuYWN0aXZlID4gYSxcbi5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiA+IC5hY3RpdmUgPiBhOmhvdmVyLFxuLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2ID4gLmFjdGl2ZSA+IGE6Zm9jdXMge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzA4MDgwODtcbn1cbi5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiA+IC5kaXNhYmxlZCA+IGEsXG4ubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgPiAuZGlzYWJsZWQgPiBhOmhvdmVyLFxuLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2ID4gLmRpc2FibGVkID4gYTpmb2N1cyB7XG4gIGNvbG9yOiAjNDQ0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5uYXZiYXItaW52ZXJzZSAubmF2YmFyLXRvZ2dsZSB7XG4gIGJvcmRlci1jb2xvcjogIzMzMztcbn1cbi5uYXZiYXItaW52ZXJzZSAubmF2YmFyLXRvZ2dsZTpob3Zlcixcbi5uYXZiYXItaW52ZXJzZSAubmF2YmFyLXRvZ2dsZTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMzM7XG59XG4ubmF2YmFyLWludmVyc2UgLm5hdmJhci10b2dnbGUgLmljb24tYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cbi5uYXZiYXItaW52ZXJzZSAubmF2YmFyLWNvbGxhcHNlLFxuLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItZm9ybSB7XG4gIGJvcmRlci1jb2xvcjogIzEwMTAxMDtcbn1cbi5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiA+IC5vcGVuID4gYSxcbi5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiA+IC5vcGVuID4gYTpob3Zlcixcbi5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiA+IC5vcGVuID4gYTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwODA4MDg7XG4gIGNvbG9yOiAjZmZmO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSA+IC5kcm9wZG93bi1oZWFkZXIge1xuICAgIGJvcmRlci1jb2xvcjogIzA4MDgwODtcbiAgfVxuICAubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnUgLmRpdmlkZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwODA4MDg7XG4gIH1cbiAgLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51ID4gbGkgPiBhIHtcbiAgICBjb2xvcjogIzlkOWQ5ZDtcbiAgfVxuICAubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnUgPiBsaSA+IGE6aG92ZXIsXG4gIC5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSA+IGxpID4gYTpmb2N1cyB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cbiAgLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51ID4gLmFjdGl2ZSA+IGEsXG4gIC5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSA+IC5hY3RpdmUgPiBhOmhvdmVyLFxuICAubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnUgPiAuYWN0aXZlID4gYTpmb2N1cyB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzA4MDgwODtcbiAgfVxuICAubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnUgPiAuZGlzYWJsZWQgPiBhLFxuICAubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnUgPiAuZGlzYWJsZWQgPiBhOmhvdmVyLFxuICAubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnUgPiAuZGlzYWJsZWQgPiBhOmZvY3VzIHtcbiAgICBjb2xvcjogIzQ0NDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxufVxuLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbGluayB7XG4gIGNvbG9yOiAjOWQ5ZDlkO1xufVxuLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbGluazpob3ZlciB7XG4gIGNvbG9yOiAjZmZmO1xufVxuLm5hdmJhci1pbnZlcnNlIC5idG4tbGluayB7XG4gIGNvbG9yOiAjOWQ5ZDlkO1xufVxuLm5hdmJhci1pbnZlcnNlIC5idG4tbGluazpob3Zlcixcbi5uYXZiYXItaW52ZXJzZSAuYnRuLWxpbms6Zm9jdXMge1xuICBjb2xvcjogI2ZmZjtcbn1cbi5uYXZiYXItaW52ZXJzZSAuYnRuLWxpbmtbZGlzYWJsZWRdOmhvdmVyLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5uYXZiYXItaW52ZXJzZSAuYnRuLWxpbms6aG92ZXIsXG4ubmF2YmFyLWludmVyc2UgLmJ0bi1saW5rW2Rpc2FibGVkXTpmb2N1cyxcbmZpZWxkc2V0W2Rpc2FibGVkXSAubmF2YmFyLWludmVyc2UgLmJ0bi1saW5rOmZvY3VzIHtcbiAgY29sb3I6ICM0NDQ7XG59XG4uYnJlYWRjcnVtYiB7XG4gIHBhZGRpbmc6IDhweCAxNXB4O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG4uYnJlYWRjcnVtYiA+IGxpIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuLmJyZWFkY3J1bWIgPiBsaSArIGxpOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiL1xcMDBhMFwiO1xuICBwYWRkaW5nOiAwIDVweDtcbiAgY29sb3I6ICNjY2M7XG59XG4uYnJlYWRjcnVtYiA+IC5hY3RpdmUge1xuICBjb2xvcjogIzc3Nzc3Nztcbn1cbi5wYWdpbmF0aW9uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIG1hcmdpbjogMjBweCAwO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG4ucGFnaW5hdGlvbiA+IGxpIHtcbiAgZGlzcGxheTogaW5saW5lO1xufVxuLnBhZ2luYXRpb24gPiBsaSA+IGEsXG4ucGFnaW5hdGlvbiA+IGxpID4gc3BhbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHBhZGRpbmc6IDZweCAxMnB4O1xuICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjb2xvcjogIzAwZTVmMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbiAgbWFyZ2luLWxlZnQ6IC0xcHg7XG59XG4ucGFnaW5hdGlvbiA+IGxpOmZpcnN0LWNoaWxkID4gYSxcbi5wYWdpbmF0aW9uID4gbGk6Zmlyc3QtY2hpbGQgPiBzcGFuIHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDRweDtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNHB4O1xufVxuLnBhZ2luYXRpb24gPiBsaTpsYXN0LWNoaWxkID4gYSxcbi5wYWdpbmF0aW9uID4gbGk6bGFzdC1jaGlsZCA+IHNwYW4ge1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNHB4O1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNHB4O1xufVxuLnBhZ2luYXRpb24gPiBsaSA+IGE6aG92ZXIsXG4ucGFnaW5hdGlvbiA+IGxpID4gc3Bhbjpob3Zlcixcbi5wYWdpbmF0aW9uID4gbGkgPiBhOmZvY3VzLFxuLnBhZ2luYXRpb24gPiBsaSA+IHNwYW46Zm9jdXMge1xuICB6LWluZGV4OiAyO1xuICBjb2xvcjogIzAwOWNhMztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZWVlZTtcbiAgYm9yZGVyLWNvbG9yOiAjZGRkO1xufVxuLnBhZ2luYXRpb24gPiAuYWN0aXZlID4gYSxcbi5wYWdpbmF0aW9uID4gLmFjdGl2ZSA+IHNwYW4sXG4ucGFnaW5hdGlvbiA+IC5hY3RpdmUgPiBhOmhvdmVyLFxuLnBhZ2luYXRpb24gPiAuYWN0aXZlID4gc3Bhbjpob3Zlcixcbi5wYWdpbmF0aW9uID4gLmFjdGl2ZSA+IGE6Zm9jdXMsXG4ucGFnaW5hdGlvbiA+IC5hY3RpdmUgPiBzcGFuOmZvY3VzIHtcbiAgei1pbmRleDogMztcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGU1ZjA7XG4gIGJvcmRlci1jb2xvcjogIzAwZTVmMDtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuLnBhZ2luYXRpb24gPiAuZGlzYWJsZWQgPiBzcGFuLFxuLnBhZ2luYXRpb24gPiAuZGlzYWJsZWQgPiBzcGFuOmhvdmVyLFxuLnBhZ2luYXRpb24gPiAuZGlzYWJsZWQgPiBzcGFuOmZvY3VzLFxuLnBhZ2luYXRpb24gPiAuZGlzYWJsZWQgPiBhLFxuLnBhZ2luYXRpb24gPiAuZGlzYWJsZWQgPiBhOmhvdmVyLFxuLnBhZ2luYXRpb24gPiAuZGlzYWJsZWQgPiBhOmZvY3VzIHtcbiAgY29sb3I6ICM3Nzc3Nzc7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlci1jb2xvcjogI2RkZDtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cbi5wYWdpbmF0aW9uLWxnID4gbGkgPiBhLFxuLnBhZ2luYXRpb24tbGcgPiBsaSA+IHNwYW4ge1xuICBwYWRkaW5nOiAxMHB4IDE2cHg7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgbGluZS1oZWlnaHQ6IDEuMzMzMzMzMztcbn1cbi5wYWdpbmF0aW9uLWxnID4gbGk6Zmlyc3QtY2hpbGQgPiBhLFxuLnBhZ2luYXRpb24tbGcgPiBsaTpmaXJzdC1jaGlsZCA+IHNwYW4ge1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA2cHg7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDZweDtcbn1cbi5wYWdpbmF0aW9uLWxnID4gbGk6bGFzdC1jaGlsZCA+IGEsXG4ucGFnaW5hdGlvbi1sZyA+IGxpOmxhc3QtY2hpbGQgPiBzcGFuIHtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDZweDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDZweDtcbn1cbi5wYWdpbmF0aW9uLXNtID4gbGkgPiBhLFxuLnBhZ2luYXRpb24tc20gPiBsaSA+IHNwYW4ge1xuICBwYWRkaW5nOiA1cHggMTBweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMS41O1xufVxuLnBhZ2luYXRpb24tc20gPiBsaTpmaXJzdC1jaGlsZCA+IGEsXG4ucGFnaW5hdGlvbi1zbSA+IGxpOmZpcnN0LWNoaWxkID4gc3BhbiB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDNweDtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogM3B4O1xufVxuLnBhZ2luYXRpb24tc20gPiBsaTpsYXN0LWNoaWxkID4gYSxcbi5wYWdpbmF0aW9uLXNtID4gbGk6bGFzdC1jaGlsZCA+IHNwYW4ge1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogM3B4O1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogM3B4O1xufVxuLnBhZ2VyIHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBtYXJnaW46IDIwcHggMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLnBhZ2VyIGxpIHtcbiAgZGlzcGxheTogaW5saW5lO1xufVxuLnBhZ2VyIGxpID4gYSxcbi5wYWdlciBsaSA+IHNwYW4ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDVweCAxNHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICBib3JkZXItcmFkaXVzOiAxNXB4O1xufVxuLnBhZ2VyIGxpID4gYTpob3Zlcixcbi5wYWdlciBsaSA+IGE6Zm9jdXMge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZWVlZWU7XG59XG4ucGFnZXIgLm5leHQgPiBhLFxuLnBhZ2VyIC5uZXh0ID4gc3BhbiB7XG4gIGZsb2F0OiByaWdodDtcbn1cbi5wYWdlciAucHJldmlvdXMgPiBhLFxuLnBhZ2VyIC5wcmV2aW91cyA+IHNwYW4ge1xuICBmbG9hdDogbGVmdDtcbn1cbi5wYWdlciAuZGlzYWJsZWQgPiBhLFxuLnBhZ2VyIC5kaXNhYmxlZCA+IGE6aG92ZXIsXG4ucGFnZXIgLmRpc2FibGVkID4gYTpmb2N1cyxcbi5wYWdlciAuZGlzYWJsZWQgPiBzcGFuIHtcbiAgY29sb3I6ICM3Nzc3Nzc7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG4ubGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmU7XG4gIHBhZGRpbmc6IC4yZW0gLjZlbSAuM2VtO1xuICBmb250LXNpemU6IDc1JTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIGJvcmRlci1yYWRpdXM6IC4yNWVtO1xufVxuYS5sYWJlbDpob3ZlcixcbmEubGFiZWw6Zm9jdXMge1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ubGFiZWw6ZW1wdHkge1xuICBkaXNwbGF5OiBub25lO1xufVxuLmJ0biAubGFiZWwge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogLTFweDtcbn1cbi5sYWJlbC1kZWZhdWx0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzc3Nzc3Nztcbn1cbi5sYWJlbC1kZWZhdWx0W2hyZWZdOmhvdmVyLFxuLmxhYmVsLWRlZmF1bHRbaHJlZl06Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWU1ZTVlO1xufVxuLmxhYmVsLXByaW1hcnkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBlNWYwO1xufVxuLmxhYmVsLXByaW1hcnlbaHJlZl06aG92ZXIsXG4ubGFiZWwtcHJpbWFyeVtocmVmXTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGI0YmQ7XG59XG4ubGFiZWwtc3VjY2VzcyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGU1ZjA7XG59XG4ubGFiZWwtc3VjY2Vzc1tocmVmXTpob3Zlcixcbi5sYWJlbC1zdWNjZXNzW2hyZWZdOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwYjRiZDtcbn1cbi5sYWJlbC1pbmZvIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwZTVmMDtcbn1cbi5sYWJlbC1pbmZvW2hyZWZdOmhvdmVyLFxuLmxhYmVsLWluZm9baHJlZl06Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBiNGJkO1xufVxuLmxhYmVsLXdhcm5pbmcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTc3YmYwO1xufVxuLmxhYmVsLXdhcm5pbmdbaHJlZl06aG92ZXIsXG4ubGFiZWwtd2FybmluZ1tocmVmXTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3MzRkZWI7XG59XG4ubGFiZWwtZGFuZ2VyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UwMWY3NDtcbn1cbi5sYWJlbC1kYW5nZXJbaHJlZl06aG92ZXIsXG4ubGFiZWwtZGFuZ2VyW2hyZWZdOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2IzMTk1ZDtcbn1cbi5iYWRnZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWluLXdpZHRoOiAxMHB4O1xuICBwYWRkaW5nOiAzcHggN3B4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogI2ZmZjtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzc3Nzc3NztcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbn1cbi5iYWRnZTplbXB0eSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uYnRuIC5iYWRnZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAtMXB4O1xufVxuLmJ0bi14cyAuYmFkZ2UsXG4uYnRuLWdyb3VwLXhzID4gLmJ0biAuYmFkZ2Uge1xuICB0b3A6IDA7XG4gIHBhZGRpbmc6IDFweCA1cHg7XG59XG5hLmJhZGdlOmhvdmVyLFxuYS5iYWRnZTpmb2N1cyB7XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlID4gLmJhZGdlLFxuLm5hdi1waWxscyA+IC5hY3RpdmUgPiBhID4gLmJhZGdlIHtcbiAgY29sb3I6ICMwMGU1ZjA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG4ubGlzdC1ncm91cC1pdGVtID4gLmJhZGdlIHtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuLmxpc3QtZ3JvdXAtaXRlbSA+IC5iYWRnZSArIC5iYWRnZSB7XG4gIG1hcmdpbi1yaWdodDogNXB4O1xufVxuLm5hdi1waWxscyA+IGxpID4gYSA+IC5iYWRnZSB7XG4gIG1hcmdpbi1sZWZ0OiAzcHg7XG59XG4uanVtYm90cm9uIHtcbiAgcGFkZGluZy10b3A6IDMwcHg7XG4gIHBhZGRpbmctYm90dG9tOiAzMHB4O1xuICBtYXJnaW4tYm90dG9tOiAzMHB4O1xuICBjb2xvcjogaW5oZXJpdDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZWVlZTtcbn1cbi5qdW1ib3Ryb24gaDEsXG4uanVtYm90cm9uIC5oMSB7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuLmp1bWJvdHJvbiBwIHtcbiAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgZm9udC1zaXplOiAyMXB4O1xuICBmb250LXdlaWdodDogMjAwO1xufVxuLmp1bWJvdHJvbiA+IGhyIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogI2Q1ZDVkNTtcbn1cbi5jb250YWluZXIgLmp1bWJvdHJvbixcbi5jb250YWluZXItZmx1aWQgLmp1bWJvdHJvbiB7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgcGFkZGluZy1sZWZ0OiAxNXB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xufVxuLmp1bWJvdHJvbiAuY29udGFpbmVyIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmp1bWJvdHJvbiB7XG4gICAgcGFkZGluZy10b3A6IDQ4cHg7XG4gICAgcGFkZGluZy1ib3R0b206IDQ4cHg7XG4gIH1cbiAgLmNvbnRhaW5lciAuanVtYm90cm9uLFxuICAuY29udGFpbmVyLWZsdWlkIC5qdW1ib3Ryb24ge1xuICAgIHBhZGRpbmctbGVmdDogNjBweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiA2MHB4O1xuICB9XG4gIC5qdW1ib3Ryb24gaDEsXG4gIC5qdW1ib3Ryb24gLmgxIHtcbiAgICBmb250LXNpemU6IDYzcHg7XG4gIH1cbn1cbi50aHVtYm5haWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogNHB4O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAtd2Via2l0LXRyYW5zaXRpb246IGJvcmRlciAwLjJzIGVhc2UtaW4tb3V0O1xuICAtby10cmFuc2l0aW9uOiBib3JkZXIgMC4ycyBlYXNlLWluLW91dDtcbiAgdHJhbnNpdGlvbjogYm9yZGVyIDAuMnMgZWFzZS1pbi1vdXQ7XG59XG4udGh1bWJuYWlsID4gaW1nLFxuLnRodW1ibmFpbCBhID4gaW1nIHtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbn1cbmEudGh1bWJuYWlsOmhvdmVyLFxuYS50aHVtYm5haWw6Zm9jdXMsXG5hLnRodW1ibmFpbC5hY3RpdmUge1xuICBib3JkZXItY29sb3I6ICMwMGU1ZjA7XG59XG4udGh1bWJuYWlsIC5jYXB0aW9uIHtcbiAgcGFkZGluZzogOXB4O1xuICBjb2xvcjogIzMzMzMzMztcbn1cbi5hbGVydCB7XG4gIHBhZGRpbmc6IDE1cHg7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG4uYWxlcnQgaDQge1xuICBtYXJnaW4tdG9wOiAwO1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbi5hbGVydCAuYWxlcnQtbGluayB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLmFsZXJ0ID4gcCxcbi5hbGVydCA+IHVsIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cbi5hbGVydCA+IHAgKyBwIHtcbiAgbWFyZ2luLXRvcDogNXB4O1xufVxuLmFsZXJ0LWRpc21pc3NhYmxlLFxuLmFsZXJ0LWRpc21pc3NpYmxlIHtcbiAgcGFkZGluZy1yaWdodDogMzVweDtcbn1cbi5hbGVydC1kaXNtaXNzYWJsZSAuY2xvc2UsXG4uYWxlcnQtZGlzbWlzc2libGUgLmNsb3NlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IC0ycHg7XG4gIHJpZ2h0OiAtMjFweDtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG4uYWxlcnQtc3VjY2VzcyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkZmYwZDg7XG4gIGJvcmRlci1jb2xvcjogI2Q2ZTljNjtcbiAgY29sb3I6ICMzYzc2M2Q7XG59XG4uYWxlcnQtc3VjY2VzcyBociB7XG4gIGJvcmRlci10b3AtY29sb3I6ICNjOWUyYjM7XG59XG4uYWxlcnQtc3VjY2VzcyAuYWxlcnQtbGluayB7XG4gIGNvbG9yOiAjMmI1NDJjO1xufVxuLmFsZXJ0LWluZm8ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDllZGY3O1xuICBib3JkZXItY29sb3I6ICNiY2U4ZjE7XG4gIGNvbG9yOiAjMzE3MDhmO1xufVxuLmFsZXJ0LWluZm8gaHIge1xuICBib3JkZXItdG9wLWNvbG9yOiAjYTZlMWVjO1xufVxuLmFsZXJ0LWluZm8gLmFsZXJ0LWxpbmsge1xuICBjb2xvcjogIzI0NTI2OTtcbn1cbi5hbGVydC13YXJuaW5nIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZjZjhlMztcbiAgYm9yZGVyLWNvbG9yOiAjZmFlYmNjO1xuICBjb2xvcjogIzhhNmQzYjtcbn1cbi5hbGVydC13YXJuaW5nIGhyIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogI2Y3ZTFiNTtcbn1cbi5hbGVydC13YXJuaW5nIC5hbGVydC1saW5rIHtcbiAgY29sb3I6ICM2NjUxMmM7XG59XG4uYWxlcnQtZGFuZ2VyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YyZGVkZTtcbiAgYm9yZGVyLWNvbG9yOiAjZWJjY2QxO1xuICBjb2xvcjogI2E5NDQ0Mjtcbn1cbi5hbGVydC1kYW5nZXIgaHIge1xuICBib3JkZXItdG9wLWNvbG9yOiAjZTRiOWMwO1xufVxuLmFsZXJ0LWRhbmdlciAuYWxlcnQtbGluayB7XG4gIGNvbG9yOiAjODQzNTM0O1xufVxuQC13ZWJraXQta2V5ZnJhbWVzIHByb2dyZXNzLWJhci1zdHJpcGVzIHtcbiAgZnJvbSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNDBweCAwO1xuICB9XG4gIHRvIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDA7XG4gIH1cbn1cbkBrZXlmcmFtZXMgcHJvZ3Jlc3MtYmFyLXN0cmlwZXMge1xuICBmcm9tIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA0MHB4IDA7XG4gIH1cbiAgdG8ge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgMDtcbiAgfVxufVxuLnByb2dyZXNzIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgaGVpZ2h0OiAyMHB4O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbi5wcm9ncmVzcy1iYXIge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGU1ZjA7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAtMXB4IDAgcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAtMXB4IDAgcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiB3aWR0aCAwLjZzIGVhc2U7XG4gIC1vLXRyYW5zaXRpb246IHdpZHRoIDAuNnMgZWFzZTtcbiAgdHJhbnNpdGlvbjogd2lkdGggMC42cyBlYXNlO1xufVxuLnByb2dyZXNzLXN0cmlwZWQgLnByb2dyZXNzLWJhcixcbi5wcm9ncmVzcy1iYXItc3RyaXBlZCB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudCg0NWRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoNDVkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtcbiAgYmFja2dyb3VuZC1zaXplOiA0MHB4IDQwcHg7XG59XG4ucHJvZ3Jlc3MuYWN0aXZlIC5wcm9ncmVzcy1iYXIsXG4ucHJvZ3Jlc3MtYmFyLmFjdGl2ZSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uOiBwcm9ncmVzcy1iYXItc3RyaXBlcyAycyBsaW5lYXIgaW5maW5pdGU7XG4gIC1vLWFuaW1hdGlvbjogcHJvZ3Jlc3MtYmFyLXN0cmlwZXMgMnMgbGluZWFyIGluZmluaXRlO1xuICBhbmltYXRpb246IHByb2dyZXNzLWJhci1zdHJpcGVzIDJzIGxpbmVhciBpbmZpbml0ZTtcbn1cbi5wcm9ncmVzcy1iYXItc3VjY2VzcyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGU1ZjA7XG59XG4ucHJvZ3Jlc3Mtc3RyaXBlZCAucHJvZ3Jlc3MtYmFyLXN1Y2Nlc3Mge1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCg0NWRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQoNDVkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCk7XG59XG4ucHJvZ3Jlc3MtYmFyLWluZm8ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBlNWYwO1xufVxuLnByb2dyZXNzLXN0cmlwZWQgLnByb2dyZXNzLWJhci1pbmZvIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoNDVkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCg0NWRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO1xufVxuLnByb2dyZXNzLWJhci13YXJuaW5nIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk3N2JmMDtcbn1cbi5wcm9ncmVzcy1zdHJpcGVkIC5wcm9ncmVzcy1iYXItd2FybmluZyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudCg0NWRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoNDVkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtcbn1cbi5wcm9ncmVzcy1iYXItZGFuZ2VyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UwMWY3NDtcbn1cbi5wcm9ncmVzcy1zdHJpcGVkIC5wcm9ncmVzcy1iYXItZGFuZ2VyIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoNDVkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCg0NWRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO1xufVxuLm1lZGlhIHtcbiAgbWFyZ2luLXRvcDogMTVweDtcbn1cbi5tZWRpYTpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG4ubWVkaWEsXG4ubWVkaWEtYm9keSB7XG4gIHpvb206IDE7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4ubWVkaWEtYm9keSB7XG4gIHdpZHRoOiAxMDAwMHB4O1xufVxuLm1lZGlhLW9iamVjdCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLm1lZGlhLW9iamVjdC5pbWctdGh1bWJuYWlsIHtcbiAgbWF4LXdpZHRoOiBub25lO1xufVxuLm1lZGlhLXJpZ2h0LFxuLm1lZGlhID4gLnB1bGwtcmlnaHQge1xuICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG59XG4ubWVkaWEtbGVmdCxcbi5tZWRpYSA+IC5wdWxsLWxlZnQge1xuICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xufVxuLm1lZGlhLWxlZnQsXG4ubWVkaWEtcmlnaHQsXG4ubWVkaWEtYm9keSB7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG4ubWVkaWEtbWlkZGxlIHtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi5tZWRpYS1ib3R0b20ge1xuICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xufVxuLm1lZGlhLWhlYWRpbmcge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG4ubWVkaWEtbGlzdCB7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cbi5saXN0LWdyb3VwIHtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgcGFkZGluZy1sZWZ0OiAwO1xufVxuLmxpc3QtZ3JvdXAtaXRlbSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDEwcHggMTVweDtcbiAgbWFyZ2luLWJvdHRvbTogLTFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbn1cbi5saXN0LWdyb3VwLWl0ZW06Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNHB4O1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA0cHg7XG59XG4ubGlzdC1ncm91cC1pdGVtOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNHB4O1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA0cHg7XG59XG5hLmxpc3QtZ3JvdXAtaXRlbSxcbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0ge1xuICBjb2xvcjogIzU1NTtcbn1cbmEubGlzdC1ncm91cC1pdGVtIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyxcbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0gLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nIHtcbiAgY29sb3I6ICMzMzM7XG59XG5hLmxpc3QtZ3JvdXAtaXRlbTpob3ZlcixcbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW06aG92ZXIsXG5hLmxpc3QtZ3JvdXAtaXRlbTpmb2N1cyxcbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW06Zm9jdXMge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiAjNTU1O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xufVxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbSB7XG4gIHdpZHRoOiAxMDAlO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLmxpc3QtZ3JvdXAtaXRlbS5kaXNhYmxlZCxcbi5saXN0LWdyb3VwLWl0ZW0uZGlzYWJsZWQ6aG92ZXIsXG4ubGlzdC1ncm91cC1pdGVtLmRpc2FibGVkOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZWVlZTtcbiAgY29sb3I6ICM3Nzc3Nzc7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG4ubGlzdC1ncm91cC1pdGVtLmRpc2FibGVkIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyxcbi5saXN0LWdyb3VwLWl0ZW0uZGlzYWJsZWQ6aG92ZXIgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nLFxuLmxpc3QtZ3JvdXAtaXRlbS5kaXNhYmxlZDpmb2N1cyAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcge1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbi5saXN0LWdyb3VwLWl0ZW0uZGlzYWJsZWQgLmxpc3QtZ3JvdXAtaXRlbS10ZXh0LFxuLmxpc3QtZ3JvdXAtaXRlbS5kaXNhYmxlZDpob3ZlciAubGlzdC1ncm91cC1pdGVtLXRleHQsXG4ubGlzdC1ncm91cC1pdGVtLmRpc2FibGVkOmZvY3VzIC5saXN0LWdyb3VwLWl0ZW0tdGV4dCB7XG4gIGNvbG9yOiAjNzc3Nzc3O1xufVxuLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmUsXG4ubGlzdC1ncm91cC1pdGVtLmFjdGl2ZTpob3Zlcixcbi5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlOmZvY3VzIHtcbiAgei1pbmRleDogMjtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGU1ZjA7XG4gIGJvcmRlci1jb2xvcjogIzAwZTVmMDtcbn1cbi5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyxcbi5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlOmhvdmVyIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyxcbi5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlOmZvY3VzIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyxcbi5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyA+IHNtYWxsLFxuLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmU6aG92ZXIgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nID4gc21hbGwsXG4ubGlzdC1ncm91cC1pdGVtLmFjdGl2ZTpmb2N1cyAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcgPiBzbWFsbCxcbi5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyA+IC5zbWFsbCxcbi5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlOmhvdmVyIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyA+IC5zbWFsbCxcbi5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlOmZvY3VzIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyA+IC5zbWFsbCB7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmUgLmxpc3QtZ3JvdXAtaXRlbS10ZXh0LFxuLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmU6aG92ZXIgLmxpc3QtZ3JvdXAtaXRlbS10ZXh0LFxuLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmU6Zm9jdXMgLmxpc3QtZ3JvdXAtaXRlbS10ZXh0IHtcbiAgY29sb3I6ICNiZGZjZmY7XG59XG4ubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3Mge1xuICBjb2xvcjogIzNjNzYzZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RmZjBkODtcbn1cbmEubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3MsXG5idXR0b24ubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3Mge1xuICBjb2xvcjogIzNjNzYzZDtcbn1cbmEubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3MgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1zdWNjZXNzIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyB7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuYS5saXN0LWdyb3VwLWl0ZW0tc3VjY2Vzczpob3ZlcixcbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0tc3VjY2Vzczpob3ZlcixcbmEubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3M6Zm9jdXMsXG5idXR0b24ubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3M6Zm9jdXMge1xuICBjb2xvcjogIzNjNzYzZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2QwZTljNjtcbn1cbmEubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3MuYWN0aXZlLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1zdWNjZXNzLmFjdGl2ZSxcbmEubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3MuYWN0aXZlOmhvdmVyLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1zdWNjZXNzLmFjdGl2ZTpob3ZlcixcbmEubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3MuYWN0aXZlOmZvY3VzLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1zdWNjZXNzLmFjdGl2ZTpmb2N1cyB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2M3NjNkO1xuICBib3JkZXItY29sb3I6ICMzYzc2M2Q7XG59XG4ubGlzdC1ncm91cC1pdGVtLWluZm8ge1xuICBjb2xvcjogIzMxNzA4ZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q5ZWRmNztcbn1cbmEubGlzdC1ncm91cC1pdGVtLWluZm8sXG5idXR0b24ubGlzdC1ncm91cC1pdGVtLWluZm8ge1xuICBjb2xvcjogIzMxNzA4Zjtcbn1cbmEubGlzdC1ncm91cC1pdGVtLWluZm8gLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1pbmZvIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyB7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuYS5saXN0LWdyb3VwLWl0ZW0taW5mbzpob3ZlcixcbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0taW5mbzpob3ZlcixcbmEubGlzdC1ncm91cC1pdGVtLWluZm86Zm9jdXMsXG5idXR0b24ubGlzdC1ncm91cC1pdGVtLWluZm86Zm9jdXMge1xuICBjb2xvcjogIzMxNzA4ZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2M0ZTNmMztcbn1cbmEubGlzdC1ncm91cC1pdGVtLWluZm8uYWN0aXZlLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1pbmZvLmFjdGl2ZSxcbmEubGlzdC1ncm91cC1pdGVtLWluZm8uYWN0aXZlOmhvdmVyLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1pbmZvLmFjdGl2ZTpob3ZlcixcbmEubGlzdC1ncm91cC1pdGVtLWluZm8uYWN0aXZlOmZvY3VzLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1pbmZvLmFjdGl2ZTpmb2N1cyB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzE3MDhmO1xuICBib3JkZXItY29sb3I6ICMzMTcwOGY7XG59XG4ubGlzdC1ncm91cC1pdGVtLXdhcm5pbmcge1xuICBjb2xvcjogIzhhNmQzYjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZjZjhlMztcbn1cbmEubGlzdC1ncm91cC1pdGVtLXdhcm5pbmcsXG5idXR0b24ubGlzdC1ncm91cC1pdGVtLXdhcm5pbmcge1xuICBjb2xvcjogIzhhNmQzYjtcbn1cbmEubGlzdC1ncm91cC1pdGVtLXdhcm5pbmcgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5nIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyB7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuYS5saXN0LWdyb3VwLWl0ZW0td2FybmluZzpob3ZlcixcbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0td2FybmluZzpob3ZlcixcbmEubGlzdC1ncm91cC1pdGVtLXdhcm5pbmc6Zm9jdXMsXG5idXR0b24ubGlzdC1ncm91cC1pdGVtLXdhcm5pbmc6Zm9jdXMge1xuICBjb2xvcjogIzhhNmQzYjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZjJjYztcbn1cbmEubGlzdC1ncm91cC1pdGVtLXdhcm5pbmcuYWN0aXZlLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5nLmFjdGl2ZSxcbmEubGlzdC1ncm91cC1pdGVtLXdhcm5pbmcuYWN0aXZlOmhvdmVyLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5nLmFjdGl2ZTpob3ZlcixcbmEubGlzdC1ncm91cC1pdGVtLXdhcm5pbmcuYWN0aXZlOmZvY3VzLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5nLmFjdGl2ZTpmb2N1cyB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGE2ZDNiO1xuICBib3JkZXItY29sb3I6ICM4YTZkM2I7XG59XG4ubGlzdC1ncm91cC1pdGVtLWRhbmdlciB7XG4gIGNvbG9yOiAjYTk0NDQyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjJkZWRlO1xufVxuYS5saXN0LWdyb3VwLWl0ZW0tZGFuZ2VyLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXIge1xuICBjb2xvcjogI2E5NDQ0Mjtcbn1cbmEubGlzdC1ncm91cC1pdGVtLWRhbmdlciAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcsXG5idXR0b24ubGlzdC1ncm91cC1pdGVtLWRhbmdlciAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcge1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbmEubGlzdC1ncm91cC1pdGVtLWRhbmdlcjpob3ZlcixcbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0tZGFuZ2VyOmhvdmVyLFxuYS5saXN0LWdyb3VwLWl0ZW0tZGFuZ2VyOmZvY3VzLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXI6Zm9jdXMge1xuICBjb2xvcjogI2E5NDQ0MjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ViY2NjYztcbn1cbmEubGlzdC1ncm91cC1pdGVtLWRhbmdlci5hY3RpdmUsXG5idXR0b24ubGlzdC1ncm91cC1pdGVtLWRhbmdlci5hY3RpdmUsXG5hLmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXIuYWN0aXZlOmhvdmVyLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXIuYWN0aXZlOmhvdmVyLFxuYS5saXN0LWdyb3VwLWl0ZW0tZGFuZ2VyLmFjdGl2ZTpmb2N1cyxcbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0tZGFuZ2VyLmFjdGl2ZTpmb2N1cyB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTk0NDQyO1xuICBib3JkZXItY29sb3I6ICNhOTQ0NDI7XG59XG4ubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG4ubGlzdC1ncm91cC1pdGVtLXRleHQge1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBsaW5lLWhlaWdodDogMS4zO1xufVxuLnBhbmVsIHtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiAgYm94LXNoYWRvdzogMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG59XG4ucGFuZWwtYm9keSB7XG4gIHBhZGRpbmc6IDE1cHg7XG59XG4ucGFuZWwtaGVhZGluZyB7XG4gIHBhZGRpbmc6IDEwcHggMTVweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogM3B4O1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAzcHg7XG59XG4ucGFuZWwtaGVhZGluZyA+IC5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xlIHtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG4ucGFuZWwtdGl0bGUge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuLnBhbmVsLXRpdGxlID4gYSxcbi5wYW5lbC10aXRsZSA+IHNtYWxsLFxuLnBhbmVsLXRpdGxlID4gLnNtYWxsLFxuLnBhbmVsLXRpdGxlID4gc21hbGwgPiBhLFxuLnBhbmVsLXRpdGxlID4gLnNtYWxsID4gYSB7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuLnBhbmVsLWZvb3RlciB7XG4gIHBhZGRpbmc6IDEwcHggMTVweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkZGQ7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAzcHg7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDNweDtcbn1cbi5wYW5lbCA+IC5saXN0LWdyb3VwLFxuLnBhbmVsID4gLnBhbmVsLWNvbGxhcHNlID4gLmxpc3QtZ3JvdXAge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuLnBhbmVsID4gLmxpc3QtZ3JvdXAgLmxpc3QtZ3JvdXAtaXRlbSxcbi5wYW5lbCA+IC5wYW5lbC1jb2xsYXBzZSA+IC5saXN0LWdyb3VwIC5saXN0LWdyb3VwLWl0ZW0ge1xuICBib3JkZXItd2lkdGg6IDFweCAwO1xuICBib3JkZXItcmFkaXVzOiAwO1xufVxuLnBhbmVsID4gLmxpc3QtZ3JvdXA6Zmlyc3QtY2hpbGQgLmxpc3QtZ3JvdXAtaXRlbTpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC5wYW5lbC1jb2xsYXBzZSA+IC5saXN0LWdyb3VwOmZpcnN0LWNoaWxkIC5saXN0LWdyb3VwLWl0ZW06Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wOiAwO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogM3B4O1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAzcHg7XG59XG4ucGFuZWwgPiAubGlzdC1ncm91cDpsYXN0LWNoaWxkIC5saXN0LWdyb3VwLWl0ZW06bGFzdC1jaGlsZCxcbi5wYW5lbCA+IC5wYW5lbC1jb2xsYXBzZSA+IC5saXN0LWdyb3VwOmxhc3QtY2hpbGQgLmxpc3QtZ3JvdXAtaXRlbTpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDNweDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogM3B4O1xufVxuLnBhbmVsID4gLnBhbmVsLWhlYWRpbmcgKyAucGFuZWwtY29sbGFwc2UgPiAubGlzdC1ncm91cCAubGlzdC1ncm91cC1pdGVtOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG59XG4ucGFuZWwtaGVhZGluZyArIC5saXN0LWdyb3VwIC5saXN0LWdyb3VwLWl0ZW06Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wLXdpZHRoOiAwO1xufVxuLmxpc3QtZ3JvdXAgKyAucGFuZWwtZm9vdGVyIHtcbiAgYm9yZGVyLXRvcC13aWR0aDogMDtcbn1cbi5wYW5lbCA+IC50YWJsZSxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLFxuLnBhbmVsID4gLnBhbmVsLWNvbGxhcHNlID4gLnRhYmxlIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cbi5wYW5lbCA+IC50YWJsZSBjYXB0aW9uLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUgY2FwdGlvbixcbi5wYW5lbCA+IC5wYW5lbC1jb2xsYXBzZSA+IC50YWJsZSBjYXB0aW9uIHtcbiAgcGFkZGluZy1sZWZ0OiAxNXB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xufVxuLnBhbmVsID4gLnRhYmxlOmZpcnN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmU6Zmlyc3QtY2hpbGQgPiAudGFibGU6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogM3B4O1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAzcHg7XG59XG4ucGFuZWwgPiAudGFibGU6Zmlyc3QtY2hpbGQgPiB0aGVhZDpmaXJzdC1jaGlsZCA+IHRyOmZpcnN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmU6Zmlyc3QtY2hpbGQgPiAudGFibGU6Zmlyc3QtY2hpbGQgPiB0aGVhZDpmaXJzdC1jaGlsZCA+IHRyOmZpcnN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlOmZpcnN0LWNoaWxkID4gdGJvZHk6Zmlyc3QtY2hpbGQgPiB0cjpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlOmZpcnN0LWNoaWxkID4gLnRhYmxlOmZpcnN0LWNoaWxkID4gdGJvZHk6Zmlyc3QtY2hpbGQgPiB0cjpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDNweDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDNweDtcbn1cbi5wYW5lbCA+IC50YWJsZTpmaXJzdC1jaGlsZCA+IHRoZWFkOmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgdGQ6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZTpmaXJzdC1jaGlsZCA+IC50YWJsZTpmaXJzdC1jaGlsZCA+IHRoZWFkOmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgdGQ6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGU6Zmlyc3QtY2hpbGQgPiB0Ym9keTpmaXJzdC1jaGlsZCA+IHRyOmZpcnN0LWNoaWxkIHRkOmZpcnN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmU6Zmlyc3QtY2hpbGQgPiAudGFibGU6Zmlyc3QtY2hpbGQgPiB0Ym9keTpmaXJzdC1jaGlsZCA+IHRyOmZpcnN0LWNoaWxkIHRkOmZpcnN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlOmZpcnN0LWNoaWxkID4gdGhlYWQ6Zmlyc3QtY2hpbGQgPiB0cjpmaXJzdC1jaGlsZCB0aDpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlOmZpcnN0LWNoaWxkID4gLnRhYmxlOmZpcnN0LWNoaWxkID4gdGhlYWQ6Zmlyc3QtY2hpbGQgPiB0cjpmaXJzdC1jaGlsZCB0aDpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZTpmaXJzdC1jaGlsZCA+IHRib2R5OmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgdGg6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZTpmaXJzdC1jaGlsZCA+IC50YWJsZTpmaXJzdC1jaGlsZCA+IHRib2R5OmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgdGg6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAzcHg7XG59XG4ucGFuZWwgPiAudGFibGU6Zmlyc3QtY2hpbGQgPiB0aGVhZDpmaXJzdC1jaGlsZCA+IHRyOmZpcnN0LWNoaWxkIHRkOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZTpmaXJzdC1jaGlsZCA+IC50YWJsZTpmaXJzdC1jaGlsZCA+IHRoZWFkOmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgdGQ6bGFzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZTpmaXJzdC1jaGlsZCA+IHRib2R5OmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgdGQ6bGFzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlOmZpcnN0LWNoaWxkID4gLnRhYmxlOmZpcnN0LWNoaWxkID4gdGJvZHk6Zmlyc3QtY2hpbGQgPiB0cjpmaXJzdC1jaGlsZCB0ZDpsYXN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlOmZpcnN0LWNoaWxkID4gdGhlYWQ6Zmlyc3QtY2hpbGQgPiB0cjpmaXJzdC1jaGlsZCB0aDpsYXN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmU6Zmlyc3QtY2hpbGQgPiAudGFibGU6Zmlyc3QtY2hpbGQgPiB0aGVhZDpmaXJzdC1jaGlsZCA+IHRyOmZpcnN0LWNoaWxkIHRoOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGU6Zmlyc3QtY2hpbGQgPiB0Ym9keTpmaXJzdC1jaGlsZCA+IHRyOmZpcnN0LWNoaWxkIHRoOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZTpmaXJzdC1jaGlsZCA+IC50YWJsZTpmaXJzdC1jaGlsZCA+IHRib2R5OmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgdGg6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAzcHg7XG59XG4ucGFuZWwgPiAudGFibGU6bGFzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlOmxhc3QtY2hpbGQgPiAudGFibGU6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAzcHg7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDNweDtcbn1cbi5wYW5lbCA+IC50YWJsZTpsYXN0LWNoaWxkID4gdGJvZHk6bGFzdC1jaGlsZCA+IHRyOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZTpsYXN0LWNoaWxkID4gLnRhYmxlOmxhc3QtY2hpbGQgPiB0Ym9keTpsYXN0LWNoaWxkID4gdHI6bGFzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZTpsYXN0LWNoaWxkID4gdGZvb3Q6bGFzdC1jaGlsZCA+IHRyOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZTpsYXN0LWNoaWxkID4gLnRhYmxlOmxhc3QtY2hpbGQgPiB0Zm9vdDpsYXN0LWNoaWxkID4gdHI6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDNweDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDNweDtcbn1cbi5wYW5lbCA+IC50YWJsZTpsYXN0LWNoaWxkID4gdGJvZHk6bGFzdC1jaGlsZCA+IHRyOmxhc3QtY2hpbGQgdGQ6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZTpsYXN0LWNoaWxkID4gLnRhYmxlOmxhc3QtY2hpbGQgPiB0Ym9keTpsYXN0LWNoaWxkID4gdHI6bGFzdC1jaGlsZCB0ZDpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZTpsYXN0LWNoaWxkID4gdGZvb3Q6bGFzdC1jaGlsZCA+IHRyOmxhc3QtY2hpbGQgdGQ6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZTpsYXN0LWNoaWxkID4gLnRhYmxlOmxhc3QtY2hpbGQgPiB0Zm9vdDpsYXN0LWNoaWxkID4gdHI6bGFzdC1jaGlsZCB0ZDpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZTpsYXN0LWNoaWxkID4gdGJvZHk6bGFzdC1jaGlsZCA+IHRyOmxhc3QtY2hpbGQgdGg6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZTpsYXN0LWNoaWxkID4gLnRhYmxlOmxhc3QtY2hpbGQgPiB0Ym9keTpsYXN0LWNoaWxkID4gdHI6bGFzdC1jaGlsZCB0aDpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZTpsYXN0LWNoaWxkID4gdGZvb3Q6bGFzdC1jaGlsZCA+IHRyOmxhc3QtY2hpbGQgdGg6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZTpsYXN0LWNoaWxkID4gLnRhYmxlOmxhc3QtY2hpbGQgPiB0Zm9vdDpsYXN0LWNoaWxkID4gdHI6bGFzdC1jaGlsZCB0aDpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDNweDtcbn1cbi5wYW5lbCA+IC50YWJsZTpsYXN0LWNoaWxkID4gdGJvZHk6bGFzdC1jaGlsZCA+IHRyOmxhc3QtY2hpbGQgdGQ6bGFzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlOmxhc3QtY2hpbGQgPiAudGFibGU6bGFzdC1jaGlsZCA+IHRib2R5Omxhc3QtY2hpbGQgPiB0cjpsYXN0LWNoaWxkIHRkOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGU6bGFzdC1jaGlsZCA+IHRmb290Omxhc3QtY2hpbGQgPiB0cjpsYXN0LWNoaWxkIHRkOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZTpsYXN0LWNoaWxkID4gLnRhYmxlOmxhc3QtY2hpbGQgPiB0Zm9vdDpsYXN0LWNoaWxkID4gdHI6bGFzdC1jaGlsZCB0ZDpsYXN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlOmxhc3QtY2hpbGQgPiB0Ym9keTpsYXN0LWNoaWxkID4gdHI6bGFzdC1jaGlsZCB0aDpsYXN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmU6bGFzdC1jaGlsZCA+IC50YWJsZTpsYXN0LWNoaWxkID4gdGJvZHk6bGFzdC1jaGlsZCA+IHRyOmxhc3QtY2hpbGQgdGg6bGFzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZTpsYXN0LWNoaWxkID4gdGZvb3Q6bGFzdC1jaGlsZCA+IHRyOmxhc3QtY2hpbGQgdGg6bGFzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlOmxhc3QtY2hpbGQgPiAudGFibGU6bGFzdC1jaGlsZCA+IHRmb290Omxhc3QtY2hpbGQgPiB0cjpsYXN0LWNoaWxkIHRoOmxhc3QtY2hpbGQge1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogM3B4O1xufVxuLnBhbmVsID4gLnBhbmVsLWJvZHkgKyAudGFibGUsXG4ucGFuZWwgPiAucGFuZWwtYm9keSArIC50YWJsZS1yZXNwb25zaXZlLFxuLnBhbmVsID4gLnRhYmxlICsgLnBhbmVsLWJvZHksXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSArIC5wYW5lbC1ib2R5IHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkZGQ7XG59XG4ucGFuZWwgPiAudGFibGUgPiB0Ym9keTpmaXJzdC1jaGlsZCA+IHRyOmZpcnN0LWNoaWxkIHRoLFxuLnBhbmVsID4gLnRhYmxlID4gdGJvZHk6Zmlyc3QtY2hpbGQgPiB0cjpmaXJzdC1jaGlsZCB0ZCB7XG4gIGJvcmRlci10b3A6IDA7XG59XG4ucGFuZWwgPiAudGFibGUtYm9yZGVyZWQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCB7XG4gIGJvcmRlcjogMDtcbn1cbi5wYW5lbCA+IC50YWJsZS1ib3JkZXJlZCA+IHRoZWFkID4gdHIgPiB0aDpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGhlYWQgPiB0ciA+IHRoOmZpcnN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLWJvcmRlcmVkID4gdGJvZHkgPiB0ciA+IHRoOmZpcnN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0Ym9keSA+IHRyID4gdGg6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtYm9yZGVyZWQgPiB0Zm9vdCA+IHRyID4gdGg6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRmb290ID4gdHIgPiB0aDpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1ib3JkZXJlZCA+IHRoZWFkID4gdHIgPiB0ZDpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGhlYWQgPiB0ciA+IHRkOmZpcnN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLWJvcmRlcmVkID4gdGJvZHkgPiB0ciA+IHRkOmZpcnN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0Ym9keSA+IHRyID4gdGQ6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtYm9yZGVyZWQgPiB0Zm9vdCA+IHRyID4gdGQ6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRmb290ID4gdHIgPiB0ZDpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1sZWZ0OiAwO1xufVxuLnBhbmVsID4gLnRhYmxlLWJvcmRlcmVkID4gdGhlYWQgPiB0ciA+IHRoOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRoZWFkID4gdHIgPiB0aDpsYXN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLWJvcmRlcmVkID4gdGJvZHkgPiB0ciA+IHRoOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRib2R5ID4gdHIgPiB0aDpsYXN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLWJvcmRlcmVkID4gdGZvb3QgPiB0ciA+IHRoOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRmb290ID4gdHIgPiB0aDpsYXN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLWJvcmRlcmVkID4gdGhlYWQgPiB0ciA+IHRkOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRoZWFkID4gdHIgPiB0ZDpsYXN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLWJvcmRlcmVkID4gdGJvZHkgPiB0ciA+IHRkOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRib2R5ID4gdHIgPiB0ZDpsYXN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLWJvcmRlcmVkID4gdGZvb3QgPiB0ciA+IHRkOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRmb290ID4gdHIgPiB0ZDpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLXJpZ2h0OiAwO1xufVxuLnBhbmVsID4gLnRhYmxlLWJvcmRlcmVkID4gdGhlYWQgPiB0cjpmaXJzdC1jaGlsZCA+IHRkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0aGVhZCA+IHRyOmZpcnN0LWNoaWxkID4gdGQsXG4ucGFuZWwgPiAudGFibGUtYm9yZGVyZWQgPiB0Ym9keSA+IHRyOmZpcnN0LWNoaWxkID4gdGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRib2R5ID4gdHI6Zmlyc3QtY2hpbGQgPiB0ZCxcbi5wYW5lbCA+IC50YWJsZS1ib3JkZXJlZCA+IHRoZWFkID4gdHI6Zmlyc3QtY2hpbGQgPiB0aCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGhlYWQgPiB0cjpmaXJzdC1jaGlsZCA+IHRoLFxuLnBhbmVsID4gLnRhYmxlLWJvcmRlcmVkID4gdGJvZHkgPiB0cjpmaXJzdC1jaGlsZCA+IHRoLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0Ym9keSA+IHRyOmZpcnN0LWNoaWxkID4gdGgge1xuICBib3JkZXItYm90dG9tOiAwO1xufVxuLnBhbmVsID4gLnRhYmxlLWJvcmRlcmVkID4gdGJvZHkgPiB0cjpsYXN0LWNoaWxkID4gdGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRib2R5ID4gdHI6bGFzdC1jaGlsZCA+IHRkLFxuLnBhbmVsID4gLnRhYmxlLWJvcmRlcmVkID4gdGZvb3QgPiB0cjpsYXN0LWNoaWxkID4gdGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRmb290ID4gdHI6bGFzdC1jaGlsZCA+IHRkLFxuLnBhbmVsID4gLnRhYmxlLWJvcmRlcmVkID4gdGJvZHkgPiB0cjpsYXN0LWNoaWxkID4gdGgsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRib2R5ID4gdHI6bGFzdC1jaGlsZCA+IHRoLFxuLnBhbmVsID4gLnRhYmxlLWJvcmRlcmVkID4gdGZvb3QgPiB0cjpsYXN0LWNoaWxkID4gdGgsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRmb290ID4gdHI6bGFzdC1jaGlsZCA+IHRoIHtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbn1cbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlIHtcbiAgYm9yZGVyOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuLnBhbmVsLWdyb3VwIHtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbn1cbi5wYW5lbC1ncm91cCAucGFuZWwge1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG4ucGFuZWwtZ3JvdXAgLnBhbmVsICsgLnBhbmVsIHtcbiAgbWFyZ2luLXRvcDogNXB4O1xufVxuLnBhbmVsLWdyb3VwIC5wYW5lbC1oZWFkaW5nIHtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbn1cbi5wYW5lbC1ncm91cCAucGFuZWwtaGVhZGluZyArIC5wYW5lbC1jb2xsYXBzZSA+IC5wYW5lbC1ib2R5LFxuLnBhbmVsLWdyb3VwIC5wYW5lbC1oZWFkaW5nICsgLnBhbmVsLWNvbGxhcHNlID4gLmxpc3QtZ3JvdXAge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2RkZDtcbn1cbi5wYW5lbC1ncm91cCAucGFuZWwtZm9vdGVyIHtcbiAgYm9yZGVyLXRvcDogMDtcbn1cbi5wYW5lbC1ncm91cCAucGFuZWwtZm9vdGVyICsgLnBhbmVsLWNvbGxhcHNlIC5wYW5lbC1ib2R5IHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkZGQ7XG59XG4ucGFuZWwtZGVmYXVsdCB7XG4gIGJvcmRlci1jb2xvcjogI2RkZDtcbn1cbi5wYW5lbC1kZWZhdWx0ID4gLnBhbmVsLWhlYWRpbmcge1xuICBjb2xvcjogIzMzMzMzMztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTtcbiAgYm9yZGVyLWNvbG9yOiAjZGRkO1xufVxuLnBhbmVsLWRlZmF1bHQgPiAucGFuZWwtaGVhZGluZyArIC5wYW5lbC1jb2xsYXBzZSA+IC5wYW5lbC1ib2R5IHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogI2RkZDtcbn1cbi5wYW5lbC1kZWZhdWx0ID4gLnBhbmVsLWhlYWRpbmcgLmJhZGdlIHtcbiAgY29sb3I6ICNmNWY1ZjU7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMzMzMzM7XG59XG4ucGFuZWwtZGVmYXVsdCA+IC5wYW5lbC1mb290ZXIgKyAucGFuZWwtY29sbGFwc2UgPiAucGFuZWwtYm9keSB7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6ICNkZGQ7XG59XG4ucGFuZWwtcHJpbWFyeSB7XG4gIGJvcmRlci1jb2xvcjogIzAwZTVmMDtcbn1cbi5wYW5lbC1wcmltYXJ5ID4gLnBhbmVsLWhlYWRpbmcge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwZTVmMDtcbiAgYm9yZGVyLWNvbG9yOiAjMDBlNWYwO1xufVxuLnBhbmVsLXByaW1hcnkgPiAucGFuZWwtaGVhZGluZyArIC5wYW5lbC1jb2xsYXBzZSA+IC5wYW5lbC1ib2R5IHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogIzAwZTVmMDtcbn1cbi5wYW5lbC1wcmltYXJ5ID4gLnBhbmVsLWhlYWRpbmcgLmJhZGdlIHtcbiAgY29sb3I6ICMwMGU1ZjA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG4ucGFuZWwtcHJpbWFyeSA+IC5wYW5lbC1mb290ZXIgKyAucGFuZWwtY29sbGFwc2UgPiAucGFuZWwtYm9keSB7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6ICMwMGU1ZjA7XG59XG4ucGFuZWwtc3VjY2VzcyB7XG4gIGJvcmRlci1jb2xvcjogI2Q2ZTljNjtcbn1cbi5wYW5lbC1zdWNjZXNzID4gLnBhbmVsLWhlYWRpbmcge1xuICBjb2xvcjogIzNjNzYzZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RmZjBkODtcbiAgYm9yZGVyLWNvbG9yOiAjZDZlOWM2O1xufVxuLnBhbmVsLXN1Y2Nlc3MgPiAucGFuZWwtaGVhZGluZyArIC5wYW5lbC1jb2xsYXBzZSA+IC5wYW5lbC1ib2R5IHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogI2Q2ZTljNjtcbn1cbi5wYW5lbC1zdWNjZXNzID4gLnBhbmVsLWhlYWRpbmcgLmJhZGdlIHtcbiAgY29sb3I6ICNkZmYwZDg7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzYzc2M2Q7XG59XG4ucGFuZWwtc3VjY2VzcyA+IC5wYW5lbC1mb290ZXIgKyAucGFuZWwtY29sbGFwc2UgPiAucGFuZWwtYm9keSB7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6ICNkNmU5YzY7XG59XG4ucGFuZWwtaW5mbyB7XG4gIGJvcmRlci1jb2xvcjogI2JjZThmMTtcbn1cbi5wYW5lbC1pbmZvID4gLnBhbmVsLWhlYWRpbmcge1xuICBjb2xvcjogIzMxNzA4ZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q5ZWRmNztcbiAgYm9yZGVyLWNvbG9yOiAjYmNlOGYxO1xufVxuLnBhbmVsLWluZm8gPiAucGFuZWwtaGVhZGluZyArIC5wYW5lbC1jb2xsYXBzZSA+IC5wYW5lbC1ib2R5IHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogI2JjZThmMTtcbn1cbi5wYW5lbC1pbmZvID4gLnBhbmVsLWhlYWRpbmcgLmJhZGdlIHtcbiAgY29sb3I6ICNkOWVkZjc7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMTcwOGY7XG59XG4ucGFuZWwtaW5mbyA+IC5wYW5lbC1mb290ZXIgKyAucGFuZWwtY29sbGFwc2UgPiAucGFuZWwtYm9keSB7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6ICNiY2U4ZjE7XG59XG4ucGFuZWwtd2FybmluZyB7XG4gIGJvcmRlci1jb2xvcjogI2ZhZWJjYztcbn1cbi5wYW5lbC13YXJuaW5nID4gLnBhbmVsLWhlYWRpbmcge1xuICBjb2xvcjogIzhhNmQzYjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZjZjhlMztcbiAgYm9yZGVyLWNvbG9yOiAjZmFlYmNjO1xufVxuLnBhbmVsLXdhcm5pbmcgPiAucGFuZWwtaGVhZGluZyArIC5wYW5lbC1jb2xsYXBzZSA+IC5wYW5lbC1ib2R5IHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogI2ZhZWJjYztcbn1cbi5wYW5lbC13YXJuaW5nID4gLnBhbmVsLWhlYWRpbmcgLmJhZGdlIHtcbiAgY29sb3I6ICNmY2Y4ZTM7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4YTZkM2I7XG59XG4ucGFuZWwtd2FybmluZyA+IC5wYW5lbC1mb290ZXIgKyAucGFuZWwtY29sbGFwc2UgPiAucGFuZWwtYm9keSB7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6ICNmYWViY2M7XG59XG4ucGFuZWwtZGFuZ2VyIHtcbiAgYm9yZGVyLWNvbG9yOiAjZWJjY2QxO1xufVxuLnBhbmVsLWRhbmdlciA+IC5wYW5lbC1oZWFkaW5nIHtcbiAgY29sb3I6ICNhOTQ0NDI7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMmRlZGU7XG4gIGJvcmRlci1jb2xvcjogI2ViY2NkMTtcbn1cbi5wYW5lbC1kYW5nZXIgPiAucGFuZWwtaGVhZGluZyArIC5wYW5lbC1jb2xsYXBzZSA+IC5wYW5lbC1ib2R5IHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogI2ViY2NkMTtcbn1cbi5wYW5lbC1kYW5nZXIgPiAucGFuZWwtaGVhZGluZyAuYmFkZ2Uge1xuICBjb2xvcjogI2YyZGVkZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2E5NDQ0Mjtcbn1cbi5wYW5lbC1kYW5nZXIgPiAucGFuZWwtZm9vdGVyICsgLnBhbmVsLWNvbGxhcHNlID4gLnBhbmVsLWJvZHkge1xuICBib3JkZXItYm90dG9tLWNvbG9yOiAjZWJjY2QxO1xufVxuLmVtYmVkLXJlc3BvbnNpdmUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDA7XG4gIHBhZGRpbmc6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4uZW1iZWQtcmVzcG9uc2l2ZSAuZW1iZWQtcmVzcG9uc2l2ZS1pdGVtLFxuLmVtYmVkLXJlc3BvbnNpdmUgaWZyYW1lLFxuLmVtYmVkLXJlc3BvbnNpdmUgZW1iZWQsXG4uZW1iZWQtcmVzcG9uc2l2ZSBvYmplY3QsXG4uZW1iZWQtcmVzcG9uc2l2ZSB2aWRlbyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBib3R0b206IDA7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlcjogMDtcbn1cbi5lbWJlZC1yZXNwb25zaXZlLTE2Ynk5IHtcbiAgcGFkZGluZy1ib3R0b206IDU2LjI1JTtcbn1cbi5lbWJlZC1yZXNwb25zaXZlLTRieTMge1xuICBwYWRkaW5nLWJvdHRvbTogNzUlO1xufVxuLndlbGwge1xuICBtaW4taGVpZ2h0OiAyMHB4O1xuICBwYWRkaW5nOiAxOXB4O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTNlM2UzO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDUpO1xufVxuLndlbGwgYmxvY2txdW90ZSB7XG4gIGJvcmRlci1jb2xvcjogI2RkZDtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTUpO1xufVxuLndlbGwtbGcge1xuICBwYWRkaW5nOiAyNHB4O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG59XG4ud2VsbC1zbSB7XG4gIHBhZGRpbmc6IDlweDtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xufVxuLmNsb3NlIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6ICMwMDA7XG4gIHRleHQtc2hhZG93OiAwIDFweCAwICNmZmY7XG4gIG9wYWNpdHk6IDAuMjtcbiAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTIwKTtcbn1cbi5jbG9zZTpob3Zlcixcbi5jbG9zZTpmb2N1cyB7XG4gIGNvbG9yOiAjMDAwO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3BhY2l0eTogMC41O1xuICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9NTApO1xufVxuYnV0dG9uLmNsb3NlIHtcbiAgcGFkZGluZzogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAwO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG4ubW9kYWwtb3BlbiB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4ubW9kYWwge1xuICBkaXNwbGF5OiBub25lO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogMTA1MDtcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICBvdXRsaW5lOiAwO1xufVxuLm1vZGFsLmZhZGUgLm1vZGFsLWRpYWxvZyB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTI1JSk7XG4gIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMjUlKTtcbiAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTI1JSk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0yNSUpO1xuICAtd2Via2l0LXRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtIDAuM3MgZWFzZS1vdXQ7XG4gIC1tb3otdHJhbnNpdGlvbjogLW1vei10cmFuc2Zvcm0gMC4zcyBlYXNlLW91dDtcbiAgLW8tdHJhbnNpdGlvbjogLW8tdHJhbnNmb3JtIDAuM3MgZWFzZS1vdXQ7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2Utb3V0O1xufVxuLm1vZGFsLmluIC5tb2RhbC1kaWFsb2cge1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbn1cbi5tb2RhbC1vcGVuIC5tb2RhbCB7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteTogYXV0bztcbn1cbi5tb2RhbC1kaWFsb2cge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiBhdXRvO1xuICBtYXJnaW46IDEwcHg7XG59XG4ubW9kYWwtY29udGVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgIzk5OTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjIpO1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAzcHggOXB4IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgYm94LXNoYWRvdzogMCAzcHggOXB4IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgb3V0bGluZTogMDtcbn1cbi5tb2RhbC1iYWNrZHJvcCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAxMDQwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xufVxuLm1vZGFsLWJhY2tkcm9wLmZhZGUge1xuICBvcGFjaXR5OiAwO1xuICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9MCk7XG59XG4ubW9kYWwtYmFja2Ryb3AuaW4ge1xuICBvcGFjaXR5OiAwLjU7XG4gIGZpbHRlcjogYWxwaGEob3BhY2l0eT01MCk7XG59XG4ubW9kYWwtaGVhZGVyIHtcbiAgcGFkZGluZzogMTVweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlNWU1ZTU7XG59XG4ubW9kYWwtaGVhZGVyIC5jbG9zZSB7XG4gIG1hcmdpbi10b3A6IC0ycHg7XG59XG4ubW9kYWwtdGl0bGUge1xuICBtYXJnaW46IDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xufVxuLm1vZGFsLWJvZHkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IDE1cHg7XG59XG4ubW9kYWwtZm9vdGVyIHtcbiAgcGFkZGluZzogMTVweDtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZTVlNWU1O1xufVxuLm1vZGFsLWZvb3RlciAuYnRuICsgLmJ0biB7XG4gIG1hcmdpbi1sZWZ0OiA1cHg7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG4ubW9kYWwtZm9vdGVyIC5idG4tZ3JvdXAgLmJ0biArIC5idG4ge1xuICBtYXJnaW4tbGVmdDogLTFweDtcbn1cbi5tb2RhbC1mb290ZXIgLmJ0bi1ibG9jayArIC5idG4tYmxvY2sge1xuICBtYXJnaW4tbGVmdDogMDtcbn1cbi5tb2RhbC1zY3JvbGxiYXItbWVhc3VyZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtOTk5OXB4O1xuICB3aWR0aDogNTBweDtcbiAgaGVpZ2h0OiA1MHB4O1xuICBvdmVyZmxvdzogc2Nyb2xsO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5tb2RhbC1kaWFsb2cge1xuICAgIHdpZHRoOiA2MDBweDtcbiAgICBtYXJnaW46IDMwcHggYXV0bztcbiAgfVxuICAubW9kYWwtY29udGVudCB7XG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDVweCAxNXB4IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgICBib3gtc2hhZG93OiAwIDVweCAxNXB4IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgfVxuICAubW9kYWwtc20ge1xuICAgIHdpZHRoOiAzMDBweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5tb2RhbC1sZyB7XG4gICAgd2lkdGg6IDkwMHB4O1xuICB9XG59XG4udG9vbHRpcCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTA3MDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgbGluZS1icmVhazogYXV0bztcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NTcxNDM7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHRleHQtYWxpZ246IHN0YXJ0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgd29yZC1icmVhazogbm9ybWFsO1xuICB3b3JkLXNwYWNpbmc6IG5vcm1hbDtcbiAgd29yZC13cmFwOiBub3JtYWw7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgb3BhY2l0eTogMDtcbiAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTApO1xufVxuLnRvb2x0aXAuaW4ge1xuICBvcGFjaXR5OiAwLjk7XG4gIGZpbHRlcjogYWxwaGEob3BhY2l0eT05MCk7XG59XG4udG9vbHRpcC50b3Age1xuICBtYXJnaW4tdG9wOiAtM3B4O1xuICBwYWRkaW5nOiA1cHggMDtcbn1cbi50b29sdGlwLnJpZ2h0IHtcbiAgbWFyZ2luLWxlZnQ6IDNweDtcbiAgcGFkZGluZzogMCA1cHg7XG59XG4udG9vbHRpcC5ib3R0b20ge1xuICBtYXJnaW4tdG9wOiAzcHg7XG4gIHBhZGRpbmc6IDVweCAwO1xufVxuLnRvb2x0aXAubGVmdCB7XG4gIG1hcmdpbi1sZWZ0OiAtM3B4O1xuICBwYWRkaW5nOiAwIDVweDtcbn1cbi50b29sdGlwLWlubmVyIHtcbiAgbWF4LXdpZHRoOiAyMDBweDtcbiAgcGFkZGluZzogM3B4IDhweDtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuLnRvb2x0aXAtYXJyb3cge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG59XG4udG9vbHRpcC50b3AgLnRvb2x0aXAtYXJyb3cge1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC01cHg7XG4gIGJvcmRlci13aWR0aDogNXB4IDVweCAwO1xuICBib3JkZXItdG9wLWNvbG9yOiAjMDAwO1xufVxuLnRvb2x0aXAudG9wLWxlZnQgLnRvb2x0aXAtYXJyb3cge1xuICBib3R0b206IDA7XG4gIHJpZ2h0OiA1cHg7XG4gIG1hcmdpbi1ib3R0b206IC01cHg7XG4gIGJvcmRlci13aWR0aDogNXB4IDVweCAwO1xuICBib3JkZXItdG9wLWNvbG9yOiAjMDAwO1xufVxuLnRvb2x0aXAudG9wLXJpZ2h0IC50b29sdGlwLWFycm93IHtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiA1cHg7XG4gIG1hcmdpbi1ib3R0b206IC01cHg7XG4gIGJvcmRlci13aWR0aDogNXB4IDVweCAwO1xuICBib3JkZXItdG9wLWNvbG9yOiAjMDAwO1xufVxuLnRvb2x0aXAucmlnaHQgLnRvb2x0aXAtYXJyb3cge1xuICB0b3A6IDUwJTtcbiAgbGVmdDogMDtcbiAgbWFyZ2luLXRvcDogLTVweDtcbiAgYm9yZGVyLXdpZHRoOiA1cHggNXB4IDVweCAwO1xuICBib3JkZXItcmlnaHQtY29sb3I6ICMwMDA7XG59XG4udG9vbHRpcC5sZWZ0IC50b29sdGlwLWFycm93IHtcbiAgdG9wOiA1MCU7XG4gIHJpZ2h0OiAwO1xuICBtYXJnaW4tdG9wOiAtNXB4O1xuICBib3JkZXItd2lkdGg6IDVweCAwIDVweCA1cHg7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiAjMDAwO1xufVxuLnRvb2x0aXAuYm90dG9tIC50b29sdGlwLWFycm93IHtcbiAgdG9wOiAwO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtNXB4O1xuICBib3JkZXItd2lkdGg6IDAgNXB4IDVweDtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogIzAwMDtcbn1cbi50b29sdGlwLmJvdHRvbS1sZWZ0IC50b29sdGlwLWFycm93IHtcbiAgdG9wOiAwO1xuICByaWdodDogNXB4O1xuICBtYXJnaW4tdG9wOiAtNXB4O1xuICBib3JkZXItd2lkdGg6IDAgNXB4IDVweDtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogIzAwMDtcbn1cbi50b29sdGlwLmJvdHRvbS1yaWdodCAudG9vbHRpcC1hcnJvdyB7XG4gIHRvcDogMDtcbiAgbGVmdDogNXB4O1xuICBtYXJnaW4tdG9wOiAtNXB4O1xuICBib3JkZXItd2lkdGg6IDAgNXB4IDVweDtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogIzAwMDtcbn1cbi5wb3BvdmVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDEwNjA7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIG1heC13aWR0aDogMjc2cHg7XG4gIHBhZGRpbmc6IDFweDtcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICBsaW5lLWJyZWFrOiBhdXRvO1xuICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgdGV4dC1hbGlnbjogc3RhcnQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICB3b3JkLWJyZWFrOiBub3JtYWw7XG4gIHdvcmQtc3BhY2luZzogbm9ybWFsO1xuICB3b3JkLXdyYXA6IG5vcm1hbDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMik7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDVweCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgYm94LXNoYWRvdzogMCA1cHggMTBweCByZ2JhKDAsIDAsIDAsIDAuMik7XG59XG4ucG9wb3Zlci50b3Age1xuICBtYXJnaW4tdG9wOiAtMTBweDtcbn1cbi5wb3BvdmVyLnJpZ2h0IHtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG59XG4ucG9wb3Zlci5ib3R0b20ge1xuICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuLnBvcG92ZXIubGVmdCB7XG4gIG1hcmdpbi1sZWZ0OiAtMTBweDtcbn1cbi5wb3BvdmVyLXRpdGxlIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiA4cHggMTRweDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmN2Y3O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2ViZWJlYjtcbiAgYm9yZGVyLXJhZGl1czogNXB4IDVweCAwIDA7XG59XG4ucG9wb3Zlci1jb250ZW50IHtcbiAgcGFkZGluZzogOXB4IDE0cHg7XG59XG4ucG9wb3ZlciA+IC5hcnJvdyxcbi5wb3BvdmVyID4gLmFycm93OmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbn1cbi5wb3BvdmVyID4gLmFycm93IHtcbiAgYm9yZGVyLXdpZHRoOiAxMXB4O1xufVxuLnBvcG92ZXIgPiAuYXJyb3c6YWZ0ZXIge1xuICBib3JkZXItd2lkdGg6IDEwcHg7XG4gIGNvbnRlbnQ6IFwiXCI7XG59XG4ucG9wb3Zlci50b3AgPiAuYXJyb3cge1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMTFweDtcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgYm9yZGVyLXRvcC1jb2xvcjogIzk5OTk5OTtcbiAgYm9yZGVyLXRvcC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjI1KTtcbiAgYm90dG9tOiAtMTFweDtcbn1cbi5wb3BvdmVyLnRvcCA+IC5hcnJvdzphZnRlciB7XG4gIGNvbnRlbnQ6IFwiIFwiO1xuICBib3R0b206IDFweDtcbiAgbWFyZ2luLWxlZnQ6IC0xMHB4O1xuICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICBib3JkZXItdG9wLWNvbG9yOiAjZmZmO1xufVxuLnBvcG92ZXIucmlnaHQgPiAuYXJyb3cge1xuICB0b3A6IDUwJTtcbiAgbGVmdDogLTExcHg7XG4gIG1hcmdpbi10b3A6IC0xMXB4O1xuICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAjOTk5OTk5O1xuICBib3JkZXItcmlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNSk7XG59XG4ucG9wb3Zlci5yaWdodCA+IC5hcnJvdzphZnRlciB7XG4gIGNvbnRlbnQ6IFwiIFwiO1xuICBsZWZ0OiAxcHg7XG4gIGJvdHRvbTogLTEwcHg7XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICBib3JkZXItcmlnaHQtY29sb3I6ICNmZmY7XG59XG4ucG9wb3Zlci5ib3R0b20gPiAuYXJyb3cge1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMTFweDtcbiAgYm9yZGVyLXRvcC13aWR0aDogMDtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogIzk5OTk5OTtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjI1KTtcbiAgdG9wOiAtMTFweDtcbn1cbi5wb3BvdmVyLmJvdHRvbSA+IC5hcnJvdzphZnRlciB7XG4gIGNvbnRlbnQ6IFwiIFwiO1xuICB0b3A6IDFweDtcbiAgbWFyZ2luLWxlZnQ6IC0xMHB4O1xuICBib3JkZXItdG9wLXdpZHRoOiAwO1xuICBib3JkZXItYm90dG9tLWNvbG9yOiAjZmZmO1xufVxuLnBvcG92ZXIubGVmdCA+IC5hcnJvdyB7XG4gIHRvcDogNTAlO1xuICByaWdodDogLTExcHg7XG4gIG1hcmdpbi10b3A6IC0xMXB4O1xuICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiAjOTk5OTk5O1xuICBib3JkZXItbGVmdC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjI1KTtcbn1cbi5wb3BvdmVyLmxlZnQgPiAuYXJyb3c6YWZ0ZXIge1xuICBjb250ZW50OiBcIiBcIjtcbiAgcmlnaHQ6IDFweDtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICBib3JkZXItbGVmdC1jb2xvcjogI2ZmZjtcbiAgYm90dG9tOiAtMTBweDtcbn1cbi5jYXJvdXNlbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5jYXJvdXNlbC1pbm5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd2lkdGg6IDEwMCU7XG59XG4uY2Fyb3VzZWwtaW5uZXIgPiAuaXRlbSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAwLjZzIGVhc2UtaW4tb3V0IGxlZnQ7XG4gIC1vLXRyYW5zaXRpb246IDAuNnMgZWFzZS1pbi1vdXQgbGVmdDtcbiAgdHJhbnNpdGlvbjogMC42cyBlYXNlLWluLW91dCBsZWZ0O1xufVxuLmNhcm91c2VsLWlubmVyID4gLml0ZW0gPiBpbWcsXG4uY2Fyb3VzZWwtaW5uZXIgPiAuaXRlbSA+IGEgPiBpbWcge1xuICBsaW5lLWhlaWdodDogMTtcbn1cbkBtZWRpYSBhbGwgYW5kICh0cmFuc2Zvcm0tM2QpLCAoLXdlYmtpdC10cmFuc2Zvcm0tM2QpIHtcbiAgLmNhcm91c2VsLWlubmVyID4gLml0ZW0ge1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gMC42cyBlYXNlLWluLW91dDtcbiAgICAtbW96LXRyYW5zaXRpb246IC1tb3otdHJhbnNmb3JtIDAuNnMgZWFzZS1pbi1vdXQ7XG4gICAgLW8tdHJhbnNpdGlvbjogLW8tdHJhbnNmb3JtIDAuNnMgZWFzZS1pbi1vdXQ7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNnMgZWFzZS1pbi1vdXQ7XG4gICAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgLW1vei1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIC13ZWJraXQtcGVyc3BlY3RpdmU6IDEwMDBweDtcbiAgICAtbW96LXBlcnNwZWN0aXZlOiAxMDAwcHg7XG4gICAgcGVyc3BlY3RpdmU6IDEwMDBweDtcbiAgfVxuICAuY2Fyb3VzZWwtaW5uZXIgPiAuaXRlbS5uZXh0LFxuICAuY2Fyb3VzZWwtaW5uZXIgPiAuaXRlbS5hY3RpdmUucmlnaHQge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApO1xuICAgIGxlZnQ6IDA7XG4gIH1cbiAgLmNhcm91c2VsLWlubmVyID4gLml0ZW0ucHJldixcbiAgLmNhcm91c2VsLWlubmVyID4gLml0ZW0uYWN0aXZlLmxlZnQge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCk7XG4gICAgbGVmdDogMDtcbiAgfVxuICAuY2Fyb3VzZWwtaW5uZXIgPiAuaXRlbS5uZXh0LmxlZnQsXG4gIC5jYXJvdXNlbC1pbm5lciA+IC5pdGVtLnByZXYucmlnaHQsXG4gIC5jYXJvdXNlbC1pbm5lciA+IC5pdGVtLmFjdGl2ZSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgbGVmdDogMDtcbiAgfVxufVxuLmNhcm91c2VsLWlubmVyID4gLmFjdGl2ZSxcbi5jYXJvdXNlbC1pbm5lciA+IC5uZXh0LFxuLmNhcm91c2VsLWlubmVyID4gLnByZXYge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi5jYXJvdXNlbC1pbm5lciA+IC5hY3RpdmUge1xuICBsZWZ0OiAwO1xufVxuLmNhcm91c2VsLWlubmVyID4gLm5leHQsXG4uY2Fyb3VzZWwtaW5uZXIgPiAucHJldiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICB3aWR0aDogMTAwJTtcbn1cbi5jYXJvdXNlbC1pbm5lciA+IC5uZXh0IHtcbiAgbGVmdDogMTAwJTtcbn1cbi5jYXJvdXNlbC1pbm5lciA+IC5wcmV2IHtcbiAgbGVmdDogLTEwMCU7XG59XG4uY2Fyb3VzZWwtaW5uZXIgPiAubmV4dC5sZWZ0LFxuLmNhcm91c2VsLWlubmVyID4gLnByZXYucmlnaHQge1xuICBsZWZ0OiAwO1xufVxuLmNhcm91c2VsLWlubmVyID4gLmFjdGl2ZS5sZWZ0IHtcbiAgbGVmdDogLTEwMCU7XG59XG4uY2Fyb3VzZWwtaW5uZXIgPiAuYWN0aXZlLnJpZ2h0IHtcbiAgbGVmdDogMTAwJTtcbn1cbi5jYXJvdXNlbC1jb250cm9sIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgd2lkdGg6IDE1JTtcbiAgb3BhY2l0eTogMC41O1xuICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9NTApO1xuICBmb250LXNpemU6IDIwcHg7XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtc2hhZG93OiAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjYpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApO1xufVxuLmNhcm91c2VsLWNvbnRyb2wubGVmdCB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZnQsIHJnYmEoMCwgMCwgMCwgMC41KSAwJSwgcmdiYSgwLCAwLCAwLCAwLjAwMDEpIDEwMCUpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQobGVmdCwgcmdiYSgwLCAwLCAwLCAwLjUpIDAlLCByZ2JhKDAsIDAsIDAsIDAuMDAwMSkgMTAwJSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgwLCAwLCAwLCAwLjUpIDAlLCByZ2JhKDAsIDAsIDAsIDAuMDAwMSkgMTAwJSk7XG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbiAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nIzgwMDAwMDAwJywgZW5kQ29sb3JzdHI9JyMwMDAwMDAwMCcsIEdyYWRpZW50VHlwZT0xKTtcbn1cbi5jYXJvdXNlbC1jb250cm9sLnJpZ2h0IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDA7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZnQsIHJnYmEoMCwgMCwgMCwgMC4wMDAxKSAwJSwgcmdiYSgwLCAwLCAwLCAwLjUpIDEwMCUpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQobGVmdCwgcmdiYSgwLCAwLCAwLCAwLjAwMDEpIDAlLCByZ2JhKDAsIDAsIDAsIDAuNSkgMTAwJSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgwLCAwLCAwLCAwLjAwMDEpIDAlLCByZ2JhKDAsIDAsIDAsIDAuNSkgMTAwJSk7XG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbiAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nIzAwMDAwMDAwJywgZW5kQ29sb3JzdHI9JyM4MDAwMDAwMCcsIEdyYWRpZW50VHlwZT0xKTtcbn1cbi5jYXJvdXNlbC1jb250cm9sOmhvdmVyLFxuLmNhcm91c2VsLWNvbnRyb2w6Zm9jdXMge1xuICBvdXRsaW5lOiAwO1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBvcGFjaXR5OiAwLjk7XG4gIGZpbHRlcjogYWxwaGEob3BhY2l0eT05MCk7XG59XG4uY2Fyb3VzZWwtY29udHJvbCAuaWNvbi1wcmV2LFxuLmNhcm91c2VsLWNvbnRyb2wgLmljb24tbmV4dCxcbi5jYXJvdXNlbC1jb250cm9sIC5nbHlwaGljb24tY2hldnJvbi1sZWZ0LFxuLmNhcm91c2VsLWNvbnRyb2wgLmdseXBoaWNvbi1jaGV2cm9uLXJpZ2h0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLXRvcDogLTEwcHg7XG4gIHotaW5kZXg6IDU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi5jYXJvdXNlbC1jb250cm9sIC5pY29uLXByZXYsXG4uY2Fyb3VzZWwtY29udHJvbCAuZ2x5cGhpY29uLWNoZXZyb24tbGVmdCB7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0xMHB4O1xufVxuLmNhcm91c2VsLWNvbnRyb2wgLmljb24tbmV4dCxcbi5jYXJvdXNlbC1jb250cm9sIC5nbHlwaGljb24tY2hldnJvbi1yaWdodCB7XG4gIHJpZ2h0OiA1MCU7XG4gIG1hcmdpbi1yaWdodDogLTEwcHg7XG59XG4uY2Fyb3VzZWwtY29udHJvbCAuaWNvbi1wcmV2LFxuLmNhcm91c2VsLWNvbnRyb2wgLmljb24tbmV4dCB7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LWZhbWlseTogc2VyaWY7XG59XG4uY2Fyb3VzZWwtY29udHJvbCAuaWNvbi1wcmV2OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXDIwMzknO1xufVxuLmNhcm91c2VsLWNvbnRyb2wgLmljb24tbmV4dDpiZWZvcmUge1xuICBjb250ZW50OiAnXFwyMDNhJztcbn1cbi5jYXJvdXNlbC1pbmRpY2F0b3JzIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDEwcHg7XG4gIGxlZnQ6IDUwJTtcbiAgei1pbmRleDogMTU7XG4gIHdpZHRoOiA2MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMzAlO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5jYXJvdXNlbC1pbmRpY2F0b3JzIGxpIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMTBweDtcbiAgaGVpZ2h0OiAxMHB4O1xuICBtYXJnaW46IDFweDtcbiAgdGV4dC1pbmRlbnQ6IC05OTlweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2ZmZjtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwIFxcOTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcbn1cbi5jYXJvdXNlbC1pbmRpY2F0b3JzIC5hY3RpdmUge1xuICBtYXJnaW46IDA7XG4gIHdpZHRoOiAxMnB4O1xuICBoZWlnaHQ6IDEycHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG4uY2Fyb3VzZWwtY2FwdGlvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMTUlO1xuICByaWdodDogMTUlO1xuICBib3R0b206IDIwcHg7XG4gIHotaW5kZXg6IDEwO1xuICBwYWRkaW5nLXRvcDogMjBweDtcbiAgcGFkZGluZy1ib3R0b206IDIwcHg7XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtc2hhZG93OiAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjYpO1xufVxuLmNhcm91c2VsLWNhcHRpb24gLmJ0biB7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmNhcm91c2VsLWNvbnRyb2wgLmdseXBoaWNvbi1jaGV2cm9uLWxlZnQsXG4gIC5jYXJvdXNlbC1jb250cm9sIC5nbHlwaGljb24tY2hldnJvbi1yaWdodCxcbiAgLmNhcm91c2VsLWNvbnRyb2wgLmljb24tcHJldixcbiAgLmNhcm91c2VsLWNvbnRyb2wgLmljb24tbmV4dCB7XG4gICAgd2lkdGg6IDMwcHg7XG4gICAgaGVpZ2h0OiAzMHB4O1xuICAgIG1hcmdpbi10b3A6IC0xMHB4O1xuICAgIGZvbnQtc2l6ZTogMzBweDtcbiAgfVxuICAuY2Fyb3VzZWwtY29udHJvbCAuZ2x5cGhpY29uLWNoZXZyb24tbGVmdCxcbiAgLmNhcm91c2VsLWNvbnRyb2wgLmljb24tcHJldiB7XG4gICAgbWFyZ2luLWxlZnQ6IC0xMHB4O1xuICB9XG4gIC5jYXJvdXNlbC1jb250cm9sIC5nbHlwaGljb24tY2hldnJvbi1yaWdodCxcbiAgLmNhcm91c2VsLWNvbnRyb2wgLmljb24tbmV4dCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAtMTBweDtcbiAgfVxuICAuY2Fyb3VzZWwtY2FwdGlvbiB7XG4gICAgbGVmdDogMjAlO1xuICAgIHJpZ2h0OiAyMCU7XG4gICAgcGFkZGluZy1ib3R0b206IDMwcHg7XG4gIH1cbiAgLmNhcm91c2VsLWluZGljYXRvcnMge1xuICAgIGJvdHRvbTogMjBweDtcbiAgfVxufVxuLmNsZWFyZml4OmJlZm9yZSxcbi5jbGVhcmZpeDphZnRlcixcbi5kbC1ob3Jpem9udGFsIGRkOmJlZm9yZSxcbi5kbC1ob3Jpem9udGFsIGRkOmFmdGVyLFxuLmNvbnRhaW5lcjpiZWZvcmUsXG4uY29udGFpbmVyOmFmdGVyLFxuLmNvbnRhaW5lci1mbHVpZDpiZWZvcmUsXG4uY29udGFpbmVyLWZsdWlkOmFmdGVyLFxuLnJvdzpiZWZvcmUsXG4ucm93OmFmdGVyLFxuLmZvcm0taG9yaXpvbnRhbCAuZm9ybS1ncm91cDpiZWZvcmUsXG4uZm9ybS1ob3Jpem9udGFsIC5mb3JtLWdyb3VwOmFmdGVyLFxuLmJ0bi10b29sYmFyOmJlZm9yZSxcbi5idG4tdG9vbGJhcjphZnRlcixcbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuLWdyb3VwOmJlZm9yZSxcbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuLWdyb3VwOmFmdGVyLFxuLm5hdjpiZWZvcmUsXG4ubmF2OmFmdGVyLFxuLm5hdmJhcjpiZWZvcmUsXG4ubmF2YmFyOmFmdGVyLFxuLm5hdmJhci1oZWFkZXI6YmVmb3JlLFxuLm5hdmJhci1oZWFkZXI6YWZ0ZXIsXG4ubmF2YmFyLWNvbGxhcHNlOmJlZm9yZSxcbi5uYXZiYXItY29sbGFwc2U6YWZ0ZXIsXG4ucGFnZXI6YmVmb3JlLFxuLnBhZ2VyOmFmdGVyLFxuLnBhbmVsLWJvZHk6YmVmb3JlLFxuLnBhbmVsLWJvZHk6YWZ0ZXIsXG4ubW9kYWwtaGVhZGVyOmJlZm9yZSxcbi5tb2RhbC1oZWFkZXI6YWZ0ZXIsXG4ubW9kYWwtZm9vdGVyOmJlZm9yZSxcbi5tb2RhbC1mb290ZXI6YWZ0ZXIge1xuICBjb250ZW50OiBcIiBcIjtcbiAgZGlzcGxheTogdGFibGU7XG59XG4uY2xlYXJmaXg6YWZ0ZXIsXG4uZGwtaG9yaXpvbnRhbCBkZDphZnRlcixcbi5jb250YWluZXI6YWZ0ZXIsXG4uY29udGFpbmVyLWZsdWlkOmFmdGVyLFxuLnJvdzphZnRlcixcbi5mb3JtLWhvcml6b250YWwgLmZvcm0tZ3JvdXA6YWZ0ZXIsXG4uYnRuLXRvb2xiYXI6YWZ0ZXIsXG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bi1ncm91cDphZnRlcixcbi5uYXY6YWZ0ZXIsXG4ubmF2YmFyOmFmdGVyLFxuLm5hdmJhci1oZWFkZXI6YWZ0ZXIsXG4ubmF2YmFyLWNvbGxhcHNlOmFmdGVyLFxuLnBhZ2VyOmFmdGVyLFxuLnBhbmVsLWJvZHk6YWZ0ZXIsXG4ubW9kYWwtaGVhZGVyOmFmdGVyLFxuLm1vZGFsLWZvb3RlcjphZnRlciB7XG4gIGNsZWFyOiBib3RoO1xufVxuLmNlbnRlci1ibG9jayB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuLnB1bGwtcmlnaHQge1xuICBmbG9hdDogcmlnaHQgIWltcG9ydGFudDtcbn1cbi5wdWxsLWxlZnQge1xuICBmbG9hdDogbGVmdCAhaW1wb3J0YW50O1xufVxuLmhpZGUge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG4uc2hvdyB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG59XG4uaW52aXNpYmxlIHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLnRleHQtaGlkZSB7XG4gIGZvbnQ6IDAvMCBhO1xuICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAwO1xufVxuLmhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cbi5hZmZpeCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbn1cbkAtbXMtdmlld3BvcnQge1xuICB3aWR0aDogZGV2aWNlLXdpZHRoO1xufVxuLnZpc2libGUteHMsXG4udmlzaWJsZS1zbSxcbi52aXNpYmxlLW1kLFxuLnZpc2libGUtbGcge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG4udmlzaWJsZS14cy1ibG9jayxcbi52aXNpYmxlLXhzLWlubGluZSxcbi52aXNpYmxlLXhzLWlubGluZS1ibG9jayxcbi52aXNpYmxlLXNtLWJsb2NrLFxuLnZpc2libGUtc20taW5saW5lLFxuLnZpc2libGUtc20taW5saW5lLWJsb2NrLFxuLnZpc2libGUtbWQtYmxvY2ssXG4udmlzaWJsZS1tZC1pbmxpbmUsXG4udmlzaWJsZS1tZC1pbmxpbmUtYmxvY2ssXG4udmlzaWJsZS1sZy1ibG9jayxcbi52aXNpYmxlLWxnLWlubGluZSxcbi52aXNpYmxlLWxnLWlubGluZS1ibG9jayB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAudmlzaWJsZS14cyB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxuICB0YWJsZS52aXNpYmxlLXhzIHtcbiAgICBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50O1xuICB9XG4gIHRyLnZpc2libGUteHMge1xuICAgIGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50O1xuICB9XG4gIHRoLnZpc2libGUteHMsXG4gIHRkLnZpc2libGUteHMge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC52aXNpYmxlLXhzLWJsb2NrIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnZpc2libGUteHMtaW5saW5lIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC52aXNpYmxlLXhzLWlubGluZS1ibG9jayB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDk5MXB4KSB7XG4gIC52aXNpYmxlLXNtIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG4gIHRhYmxlLnZpc2libGUtc20ge1xuICAgIGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7XG4gIH1cbiAgdHIudmlzaWJsZS1zbSB7XG4gICAgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7XG4gIH1cbiAgdGgudmlzaWJsZS1zbSxcbiAgdGQudmlzaWJsZS1zbSB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiA5OTFweCkge1xuICAudmlzaWJsZS1zbS1ibG9jayB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogOTkxcHgpIHtcbiAgLnZpc2libGUtc20taW5saW5lIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogOTkxcHgpIHtcbiAgLnZpc2libGUtc20taW5saW5lLWJsb2NrIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSBhbmQgKG1heC13aWR0aDogMTE5OXB4KSB7XG4gIC52aXNpYmxlLW1kIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG4gIHRhYmxlLnZpc2libGUtbWQge1xuICAgIGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7XG4gIH1cbiAgdHIudmlzaWJsZS1tZCB7XG4gICAgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7XG4gIH1cbiAgdGgudmlzaWJsZS1tZCxcbiAgdGQudmlzaWJsZS1tZCB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgLnZpc2libGUtbWQtYmxvY2sge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkgYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAudmlzaWJsZS1tZC1pbmxpbmUge1xuICAgIGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgLnZpc2libGUtbWQtaW5saW5lLWJsb2NrIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAudmlzaWJsZS1sZyB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxuICB0YWJsZS52aXNpYmxlLWxnIHtcbiAgICBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50O1xuICB9XG4gIHRyLnZpc2libGUtbGcge1xuICAgIGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50O1xuICB9XG4gIHRoLnZpc2libGUtbGcsXG4gIHRkLnZpc2libGUtbGcge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAudmlzaWJsZS1sZy1ibG9jayB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAudmlzaWJsZS1sZy1pbmxpbmUge1xuICAgIGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC52aXNpYmxlLWxnLWlubGluZS1ibG9jayB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuaGlkZGVuLXhzIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDk5MXB4KSB7XG4gIC5oaWRkZW4tc20ge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSBhbmQgKG1heC13aWR0aDogMTE5OXB4KSB7XG4gIC5oaWRkZW4tbWQge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAuaGlkZGVuLWxnIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi52aXNpYmxlLXByaW50IHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuQG1lZGlhIHByaW50IHtcbiAgLnZpc2libGUtcHJpbnQge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbiAgdGFibGUudmlzaWJsZS1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDtcbiAgfVxuICB0ci52aXNpYmxlLXByaW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudDtcbiAgfVxuICB0aC52aXNpYmxlLXByaW50LFxuICB0ZC52aXNpYmxlLXByaW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi52aXNpYmxlLXByaW50LWJsb2NrIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuQG1lZGlhIHByaW50IHtcbiAgLnZpc2libGUtcHJpbnQtYmxvY2sge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi52aXNpYmxlLXByaW50LWlubGluZSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cbkBtZWRpYSBwcmludCB7XG4gIC52aXNpYmxlLXByaW50LWlubGluZSB7XG4gICAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi52aXNpYmxlLXByaW50LWlubGluZS1ibG9jayB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cbkBtZWRpYSBwcmludCB7XG4gIC52aXNpYmxlLXByaW50LWlubGluZS1ibG9jayB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSBwcmludCB7XG4gIC5oaWRkZW4tcHJpbnQge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXG4vKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTEVTUyBWQVJJQUJMRVNcbioqICAgICAgICAgICAgICAgIFRoaXMgc3R5bGVzaGVldCBzaG91bGQgb25seSBjb250YWluIHZhcmlhYmxlcy5cbi8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sb3IgcGFsZXR0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnRvcC1idWZmZXItMSB7XG4gIG1hcmdpbi10b3A6IDE1cHg7XG59XG4udG9wLWJ1ZmZlci0yIHtcbiAgbWFyZ2luLXRvcDogMzBweDtcbn1cbi50b3AtYnVmZmVyLTMge1xuICBtYXJnaW4tdG9wOiA0NXB4O1xufVxuLnRvcC1idWZmZXItNCB7XG4gIG1hcmdpbi10b3A6IDYwcHg7XG59XG4udG9wLWJ1ZmZlci01IHtcbiAgbWFyZ2luLXRvcDogNzVweDtcbn1cbi50b3AtYnVmZmVyLTYge1xuICBtYXJnaW4tdG9wOiA5MHB4O1xufVxuLnRvcC1idWZmZXItNyB7XG4gIG1hcmdpbi10b3A6IDEwNXB4O1xufVxuLnRvcC1idWZmZXItOCB7XG4gIG1hcmdpbi10b3A6IDEyMHB4O1xufVxuLnRvcC1idWZmZXItOSB7XG4gIG1hcmdpbi10b3A6IDEzNXB4O1xufVxuLnRvcC1idWZmZXItMTAge1xuICBtYXJnaW4tdG9wOiAxNTBweDtcbn1cbi8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xuLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElNUEFDIE1BVEVSSUFMXG4vKiAgICAgICAgICAgICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKiogTWl4aW4gbWF0ZXJpYWwgc3R5bGVkIGZvcm0gaW5wdXRzLCBvdmVycmlkaW5nIGJvb3RzdHJhcCdzIHVuZ29kbHkgcm91bmQtbmVzcy5cbi8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xuLyogREVNTyBIVE1MIC0gdXNlIHRoaXMgaHRtbCB0byB0ZXN0IGFsbCBpbXBhYyBtYXRlcmlhbCBmZWF0dXJlcy5cbjxmb3JtPlxuICA8ZGl2IGNsYXNzPVwiaW0tZm9ybS1ncm91cFwiPlxuICAgIDxzZWxlY3Q+XG4gICAgICA8b3B0aW9uPlZhbHVlIDE8L29wdGlvbj5cbiAgICAgIDxvcHRpb24+VmFsdWUgMjwvb3B0aW9uPlxuICAgIDwvc2VsZWN0PlxuICAgIDxsYWJlbCBmb3I9XCJzZWxlY3RcIiBjbGFzcz1cImltLWNvbnRyb2wtbGFiZWxcIj5TZWxlY3Rib3g8L2xhYmVsPjxpIGNsYXNzPVwiaW0tYmFyXCI+PC9pPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImltLWZvcm0tZ3JvdXBcIj5cbiAgICA8aW5wdXQgdHlwZT1cInRleHRcIiByZXF1aXJlZC8+XG4gICAgPGxhYmVsIGZvcj1cImlucHV0XCIgY2xhc3M9XCJpbS1jb250cm9sLWxhYmVsXCI+VGV4dGZpZWxkPC9sYWJlbD48aSBjbGFzcz1cImltLWJhclwiPjwvaT5cbiAgICA8ZGl2IGNsYXNzPVwiaW0tbWVzc2FnZXNcIj5cbiAgICAgIDxwPlRoaXMgaXMgYW4gZXJyb3IgbWVzc2FnZTwvcD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJpbS1mb3JtLWlubGluZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJpbS1mb3JtLWdyb3VwXCI+XG4gICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiByZXF1aXJlZC8+XG4gICAgICA8bGFiZWwgZm9yPVwiaW5wdXRcIiBjbGFzcz1cImltLWNvbnRyb2wtbGFiZWxcIj5JbmxpbmU8L2xhYmVsPjxpIGNsYXNzPVwiaW0tYmFyXCI+PC9pPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJpbS1mb3JtLWdyb3VwXCI+XG4gICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiByZXF1aXJlZC8+XG4gICAgICA8bGFiZWwgZm9yPVwiaW5wdXRcIiBjbGFzcz1cImltLWNvbnRyb2wtbGFiZWxcIj5JbmxpbmU8L2xhYmVsPjxpIGNsYXNzPVwiaW0tYmFyXCI+PC9pPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImltLWZvcm0tZ3JvdXBcIj5cbiAgICA8dGV4dGFyZWEgcmVxdWlyZWQ+PC90ZXh0YXJlYT5cbiAgICA8bGFiZWwgZm9yPVwidGV4dGFyZWFcIiBjbGFzcz1cImltLWNvbnRyb2wtbGFiZWxcIj5UZXh0YXJlYTwvbGFiZWw+PGkgY2xhc3M9XCJpbS1iYXJcIj48L2k+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiaW0tY2hlY2tib3hcIj5cbiAgICA8bGFiZWw+XG4gICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgY2hlY2tlZD1cImNoZWNrZWRcIi8+PGkgY2xhc3M9XCJpbS1oZWxwZXJcIj48L2k+SSdtIHRoZSBsYWJlbCBmcm9tIGEgY2hlY2tib3hcbiAgICA8L2xhYmVsPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImltLWNoZWNrYm94XCI+XG4gICAgPGxhYmVsPlxuICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiLz48aSBjbGFzcz1cImltLWhlbHBlclwiPjwvaT5JJ20gdGhlIGxhYmVsIGZyb20gYSBjaGVja2JveFxuICAgIDwvbGFiZWw+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiaW0tZm9ybS1yYWRpb1wiPlxuICAgIDxkaXYgY2xhc3M9XCJpbS1yYWRpb1wiPlxuICAgICAgPGxhYmVsPlxuICAgICAgICA8aW5wdXQgdHlwZT1cInJhZGlvXCIgbmFtZT1cInJhZGlvXCIgY2hlY2tlZD1cImNoZWNrZWRcIi8+PGkgY2xhc3M9XCJpbS1oZWxwZXJcIj48L2k+SSdtIHRoZSBsYWJlbCBmcm9tIGEgcmFkaW8gYnV0dG9uXG4gICAgICA8L2xhYmVsPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJpbS1yYWRpb1wiPlxuICAgICAgPGxhYmVsPlxuICAgICAgICA8aW5wdXQgdHlwZT1cInJhZGlvXCIgbmFtZT1cInJhZGlvXCIvPjxpIGNsYXNzPVwiaW0taGVscGVyXCI+PC9pPkknbSB0aGUgbGFiZWwgZnJvbSBhIHJhZGlvIGJ1dHRvblxuICAgICAgPC9sYWJlbD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJpbS1jaGVja2JveFwiPlxuICAgIDxsYWJlbD5cbiAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIi8+PGkgY2xhc3M9XCJpbS1oZWxwZXJcIj48L2k+SSdtIHRoZSBsYWJlbCBmcm9tIGEgY2hlY2tib3hcbiAgICA8L2xhYmVsPlxuICA8L2Rpdj5cbiAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJpbS1mYWIgaW0tcHJpbWFyeVwiPjxpPuKZpTwvaT48L2J1dHRvbj5cbiAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJpbS1mYWIgaW0td2FyblwiPjxpPuKZpTwvaT48L2J1dHRvbj5cbjwvZm9ybT5cbiovXG4vKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cbi8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTE9CQUwgU1RZTEVTXG4qKiAgICAgICAgVGhpcyBzdHlsZXNoZWV0IHNob3VsZCBvbmx5IGNvbnRhaW4gc3R5bGVzIGFwcGxpZWQgZ2xvYmFsIG9yIGluXG4qKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAyIG9yIG1vcmUgY29tcG9uZW50cy5cbi8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xuYm9keSB7XG4gIGhlaWdodDogMTAxJSAhaW1wb3J0YW50O1xufVxuLmFuYWx5dGljcyBoMiB7XG4gIG1hcmdpbi10b3A6IDJweDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBjb2xvcjogIzVCNjY2Nztcbn1cbi5hbmFseXRpY3MgaDMge1xuICBtYXJnaW46IDBweDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBjb2xvcjogIzVCNjY2NztcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgbWFyZ2luLXRvcDogMHB4O1xufVxuLmFuYWx5dGljcyBoNCB7XG4gIGNvbG9yOiAjNUI2NjY3O1xuICBmb250LXNpemU6IDE2cHg7XG59XG4uYW5hbHl0aWNzIC5wb3NpdGl2ZSxcbi5hbmFseXRpY3MgLmdyZWVuIHtcbiAgY29sb3I6IGdyZWVuICFpbXBvcnRhbnQ7XG59XG4uYW5hbHl0aWNzIC5uZWdhdGl2ZSxcbi5hbmFseXRpY3MgLnJlZCB7XG4gIGNvbG9yOiAjZWQxZTc5ICFpbXBvcnRhbnQ7XG59XG4uYW5hbHl0aWNzIC5wb3NpdGl2ZTIge1xuICBjb2xvcjogIzNmYzRmZiAhaW1wb3J0YW50O1xufVxuLmFuYWx5dGljcyAubmVnYXRpdmUyIHtcbiAgY29sb3I6ICMxZGU5YjYgIWltcG9ydGFudDtcbn1cbi5hbmFseXRpY3MgYSB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogIzk3N2JmMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmFuYWx5dGljcyAuaW5wdXQtZ3JvdXAge1xuICB3aWR0aDogMTAwJTtcbn1cbi5hbmFseXRpY3Mgc2VsZWN0IHtcbiAgbWFyZ2luLXRvcDogNXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgaGVpZ2h0OiAzMnB4O1xufVxuLmFuYWx5dGljcyBwcmUge1xuICBmb250LXNpemU6IDEycHg7XG4gIHBhZGRpbmc6IDBweDtcbiAgbWFyZ2luOiAxcHggMHB4IDhweCAwcHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCA6Oi13ZWJraXQtc2Nyb2xsYmFyLFxuLmFuYWx5dGljcyBrcGlzLWJhciAua3BpIDo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICB3aWR0aDogNnB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIsXG4uYW5hbHl0aWNzIGtwaXMtYmFyIC5rcGkgOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2ODk2YjI7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyLFxuLmFuYWx5dGljcyBrcGlzLWJhciAua3BpIDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzlhMmJiO1xufVxuLmFuYWx5dGljcyAubm9wYWRkaW5nIHtcbiAgcGFkZGluZzogMDtcbn1cbi5hbmFseXRpY3MgLm5vbWFyZ2luIHtcbiAgbWFyZ2luOiAwO1xufVxuLmFuYWx5dGljcyAuYnRuLmJ0bi1zaGFkZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTcyNjJkO1xuICBib3JkZXI6IHNvbGlkIDFweCAjMGUxODFjO1xuICBjb2xvcjogIzYyNmQ2ZDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cbi5hbmFseXRpY3MgLmJ0bi5idG4tc2hhZGVkOmhvdmVyIHtcbiAgY29sb3I6ICM2ZTdhN2E7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMDM0M2U7XG59XG4uYW5hbHl0aWNzIC5wcmljZSB7XG4gIGZvbnQtd2VpZ2h0OiA5MDA7XG4gIGZvbnQtc2l6ZTogMjJweDtcbiAgY29sb3I6ICM1QjY2Njc7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLXRvcDogMzBweDtcbn1cbi5hbmFseXRpY3MgLmN1cnJlbmN5IHtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBjb2xvcjogIzVCNjY2NztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogIzliYTZhNztcbn1cbi5hbmFseXRpY3MgLmxlZ2VuZCB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6ICM1QjY2Njc7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBjb2xvcjogI2M0Y2FjYTtcbn1cbi5hbmFseXRpY3MgLmxvYWRlciB7XG4gIGhlaWdodDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG4uYW5hbHl0aWNzIC5sb2FkZXIgaSB7XG4gIGNvbG9yOiAjNjdCQkU5O1xufVxuLmFuYWx5dGljcyAubG9hZGVyIHAge1xuICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuLmFuYWx5dGljcyAucmlnaHQtcGFuZWwge1xuICBib3JkZXItbGVmdDogc29saWQgMXB4ICNlNmU2ZTY7XG59XG4uYW5hbHl0aWNzIC5zZWxlY3RvciB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6ICM2MjZkNmQ7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5hbmFseXRpY3MgLnRpbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmN2Y3O1xuICBib3gtc2hhZG93OiAwcHggN3B4IDEwcHggLTdweCAjMTcyNjJkO1xuICBoZWlnaHQ6IDQ1cHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5hbmFseXRpY3MgLnRpbGU6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTJmMmZmO1xufVxuLmFuYWx5dGljcyAudGlsZSAuY29sb3JlZC1hcmVhIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzNGQzRGRjtcbiAgaGVpZ2h0OiAxMDAlO1xuICBmbG9hdDogcmlnaHQ7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIHBhZGRpbmc6IDVweCAxMHB4O1xuICBtaW4td2lkdGg6IDglO1xufVxuLmFuYWx5dGljcyAudGlsZSAuY29sb3JlZC1hcmVhLnNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk3N2JmMDtcbn1cbi5hbmFseXRpY3MgLnRpbGUgLm1haW4tdGV4dCB7XG4gIGNvbG9yOiAjNUI2NjY3O1xuICBwYWRkaW5nOiAyMHB4IDBweCAwcHggNXB4O1xuICBoZWlnaHQ6IDEwMCU7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBtYXgtaGVpZ2h0OiAyMDBweDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBwYWRkaW5nOiAwcHggMTVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1saW5lcy1jb250YWluZXIgLnJvdy53aWRnZXQtbGluZSB7XG4gIHBhZGRpbmc6IDVweDtcbiAgY29sb3I6ICM2MjZkNmQ7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC5yb3cud2lkZ2V0LWxpbmUuaGVhZGVyIHtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb2xvcjogIzliYTZhNztcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuYW5hbHl0aWNzIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC5yb3cud2lkZ2V0LWxpbmUge1xuICAgIG1hcmdpbjogaW5oZXJpdDtcbiAgICBtYXJnaW4tbGVmdDogLTNweDtcbiAgICBtYXJnaW4tcmlnaHQ6IC0zcHg7XG4gICAgcGFkZGluZzogMnB4O1xuICB9XG4gIC5hbmFseXRpY3MgLndpZGdldC1saW5lcy1jb250YWluZXIgLnJvdy53aWRnZXQtbGluZSA+IFtjbGFzcyo9J2NvbC0nXSB7XG4gICAgcGFkZGluZy1sZWZ0OiAzcHg7XG4gICAgcGFkZGluZy1yaWdodDogM3B4O1xuICB9XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC5yb3cud2lkZ2V0LWxpbmUgaS5mYSB7XG4gIG1pbi13aWR0aDogMTJweDtcbiAgbWluLWhlaWdodDogMTJweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1saW5lcy1jb250YWluZXIgLnJvdyAuZGFzaGVkIHtcbiAgYm9yZGVyLWJvdHRvbTogZGFzaGVkIDFweCAjZGZlMmUyO1xuICBwYWRkaW5nLWJvdHRvbTogM3B4O1xuICBtYXJnaW4tYm90dG9tOiAzcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC5yb3cubGluZXMtZ3JvdXAge1xuICBib3JkZXItdG9wOiBzb2xpZCAxcHggI2U2ZWRlZTtcbn1cbi52ZXJ0aWNhbC1zY3JvbGwge1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG59XG4uaG9yaXpvbnRhbC1zY3JvbGwge1xuICBvdmVyZmxvdy14OiBzY3JvbGw7XG59XG4udG9vbHRpcC5pbXBhYy13aWRnZXRzLXRvb2x0aXAgLnRvb2x0aXAtaW5uZXIubmctYmluZGluZyB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMzI1Mjg7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi50b29sdGlwLmltcGFjLXdpZGdldHMtdG9vbHRpcCAudG9vbHRpcC1pbm5lci5uZy1iaW5kaW5nIHN0cm9uZyB7XG4gIGNvbG9yOiAjZGFlMTczO1xufVxuLnNvcnRhYmxlLXRpdGxlIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnNvcnRhYmxlLXRpdGxlIGRpdiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbmRpdltuZy1tZXNzYWdlc10ge1xuICBjb2xvcjogI0ZGMDAwMDtcbn1cbi5oYXMtZXJyb3IgLmZvcm0tY29udHJvbCB7XG4gIGJvcmRlci1jb2xvcjogI2UwMWY3NDtcbn1cbi5oYXMtZXJyb3IgLmZvcm0tY29udHJvbDpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogI2UwMWY3NDtcbn1cbi5oYXMtc3VjY2VzcyAuZm9ybS1jb250cm9sIHtcbiAgYm9yZGVyLWNvbG9yOiAjMDBlNWYwO1xufVxuLmhhcy1zdWNjZXNzIC5mb3JtLWNvbnRyb2w6Zm9jdXMge1xuICBib3JkZXItY29sb3I6ICMwMGU1ZjA7XG59XG4ucm93Lm5vLWd1dHRlcnMge1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuW2NsYXNzXj1cImNvbC1cIl0ubm8tZ3V0dGVycyxcbltjbGFzcyo9XCIgY29sLVwiXS5uby1ndXR0ZXJzIHtcbiAgcGFkZGluZy1yaWdodDogMDtcbiAgcGFkZGluZy1sZWZ0OiAwO1xufVxuQG1lZGlhIHByaW50IHtcbiAgYm9keSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbiAgfVxuICAuYW5hbHl0aWNzIHtcbiAgICBwYWRkaW5nLXRvcDogMHB4ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFuYWx5dGljcyAjbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgLnRpdGxlLWNvbnRhaW5lciB7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcbiAgfVxuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSB7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICB9XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5jaGFydC1jb250YWluZXIge1xuICAgIG1heC13aWR0aDogMjcwcHg7XG4gICAgbWFyZ2luOiBhdXRvO1xuICB9XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5jaGFydC1jb250YWluZXIgY2FudmFzIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIGhlaWdodDogMTAwJSAhaW1wb3J0YW50O1xuICB9XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5yaWdodC1wYW5lbCB7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICAgIGJvcmRlci1sZWZ0OiAwO1xuICB9XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5yaWdodC1wYW5lbCAuY2hhcnQtY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IGluaGVyaXQ7XG4gICAgbWF4LWhlaWdodDogaW5oZXJpdDtcbiAgfVxuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAucmlnaHQtcGFuZWwgLmNoYXJ0LWNvbnRhaW5lciBjYW52YXMge1xuICAgIHdpZHRoOiA4MCUgIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IDgwJSAhaW1wb3J0YW50O1xuICB9XG4gICoge1xuICAgIHRyYW5zaXRpb246IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuLyoqXG4gKiAgRG8gbm90IHJlbW92ZSB0aGlzIGNvbW1lbnRzIGJlbGxvdy4gSXQncyB0aGUgbWFya2VycyB1c2VkIGJ5IGd1bHAtaW5qZWN0IHRvIGluamVjdFxuICogIGFsbCB5b3VyIGxlc3MgZmlsZXMgYXV0b21hdGljYWxseVxuICovXG4vKiBpbmplY3Q6aW1wb3J0cyAqL1xuLmtwaS1hbGVydHMtc2V0dGluZ3MgLm1vZGFsLWhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbn1cbi5rcGktYWxlcnRzLXNldHRpbmdzIC5tb2RhbC1ib2R5IHtcbiAgbGluZS1oZWlnaHQ6IDI7XG59XG4ua3BpLWFsZXJ0cy1zZXR0aW5ncyAubW9kYWwtYm9keSB1bCB7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG59XG4ua3BpLWFsZXJ0cy1zZXR0aW5ncyAubW9kYWwtYm9keSB1bCA+IGxpLmxpc3QtZ3JvdXAtaXRlbSB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDZweCAxNXB4O1xuICBjb2xvcjogIzliYTZhNztcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG4ua3BpLWFsZXJ0cy1zZXR0aW5ncyAubW9kYWwtYm9keSB1bCA+IGxpLmxpc3QtZ3JvdXAtaXRlbSAuYWxlcnQtdG9nZ2xlOmhvdmVyIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmtwaS1hbGVydHMtc2V0dGluZ3MgLm1vZGFsLWJvZHkgdWwgPiBsaS5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlIHtcbiAgY29sb3I6ICMzNThmZGM7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWNvbG9yOiAjYzRjYWNhO1xufVxuLmtwaS1hbGVydHMtc2V0dGluZ3MgLm1vZGFsLWJvZHkgLmZhLmZhLXRvZ2dsZS1vbixcbi5rcGktYWxlcnRzLXNldHRpbmdzIC5tb2RhbC1ib2R5IC5mYS5mYS10b2dnbGUtb2ZmIHtcbiAgZm9udC1zaXplOiAxN3B4O1xuICBtYXJnaW4tcmlnaHQ6IDhweDtcbn1cbi5rcGktYWxlcnRzLXNldHRpbmdzIC5tb2RhbC1ib2R5IHVsLnJlY2lwaWVudHMtbGlzdCB7XG4gIGhlaWdodDogNzVweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzRjYWNhO1xufVxuLmtwaS1hbGVydHMtc2V0dGluZ3MgLm1vZGFsLWJvZHkgdWwucmVjaXBpZW50cy1saXN0IGxpIHtcbiAgYm9yZGVyOiBub25lO1xufVxuLmtwaS1hbGVydHMtc2V0dGluZ3MgLm1vZGFsLWJvZHkgaW5wdXQucmVjaXBpZW50LXNlYXJjaCB7XG4gIGNvbG9yOiBibGFjaztcbiAgd2lkdGg6IDEwMCU7XG59XG4ua3BpLWFsZXJ0cy1zZXR0aW5ncyAubW9kYWwtYm9keSB1bC5hdmFpbGFibGUge1xuICBtYXJnaW4tdG9wOiAwcHg7XG59XG4uYW5hbHl0aWNzIHtcbiAgcGFkZGluZy10b3A6IDUwcHg7XG4gIG1hcmdpbi1sZWZ0OiAxMDBweDtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk5MnB4KSB7XG4gIC5hbmFseXRpY3Mge1xuICAgIHBhZGRpbmctdG9wOiAxNTBweDtcbiAgfVxufVxuLmFuYWx5dGljcy5wZGYtbW9kZSB7XG4gIHBhZGRpbmctdG9wOiAyMHB4O1xufVxuLmFuYWx5dGljcy5zaG93LWRoYiB7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMXM7XG4gIG9wYWNpdHk6IDE7XG59XG4uYW5hbHl0aWNzLmhpZGUtZGhiIHtcbiAgb3BhY2l0eTogMDtcbn1cbi5hbmFseXRpY3MgI2Rhc2hib2FyZC1oZWFkaW5nIGltZyB7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tcmlnaHQ6IDE1cHg7XG4gIG1heC13aWR0aDogMjAwcHg7XG4gIG1heC1oZWlnaHQ6IDE1MHB4O1xufVxuLmFuYWx5dGljcyAjZGFzaGJvYXJkLWhlYWRpbmcgaW1nLnBkZi1tb2RlOmhvdmVyIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmFuYWx5dGljcyAjZGFzaGJvYXJkLWhlYWRpbmcgLmNhcHRpb24ge1xuICBmb250LXNpemU6IDE0cHg7XG4gIG1hcmdpbjogNXB4IDBweDtcbn1cbi5hbmFseXRpY3MgI3N1Yi1tZW51IHtcbiAgbWFyZ2luLXRvcDogMTVweDtcbn1cbi5hbmFseXRpY3MgI3N1Yi1tZW51IGgzIHtcbiAgZm9udC1zaXplOiAyNnB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICBjb2xvcjogIzIzMzg0NTtcbn1cbi5hbmFseXRpY3MgI3N1Yi1tZW51IC5mYS5mYS10aW1lcyB7XG4gIG1hcmdpbjogNnB4O1xuICBjb2xvcjogIzNkNjE3ODtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmbG9hdDogcmlnaHQ7XG59XG4uYW5hbHl0aWNzICN3aWRnZXQtc2VsZWN0b3Ige1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjMzODQ1O1xuICBjb2xvcjogd2hpdGU7XG4gIHBhZGRpbmc6IDBweCA0NXB4IDEwcHggNDVweDtcbiAgbWFyZ2luOiAxMHB4IC00NXB4O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC8qIENocm9tZS9TYWZhcmkgKi9cbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgLyogRmlyZWZveCAqL1xuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC8qIElFMTArICovXG4gIC8qIFJ1bGVzIGJlbG93IG5vdCBpbXBsZW1lbnRlZCBpbiBicm93c2VycyB5ZXQgKi9cbiAgLW8tdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciB7XG4gICAgcGFkZGluZzogMCAxNXB4IDEwcHggMTVweDtcbiAgICBtYXJnaW46IDA7XG4gIH1cbn1cbi5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciAudGl0bGUge1xuICBwYWRkaW5nOiAxNXB4IDBweDtcbiAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4ICMyZDQ4NTk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4uYW5hbHl0aWNzICN3aWRnZXQtc2VsZWN0b3IgLnRpdGxlIHAuaW5zdHJ1Y3Rpb24ge1xuICBmbGV4LWdyb3c6IDE7XG4gIG1hcmdpbjogMDtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciAudGl0bGUgcC5pbnN0cnVjdGlvbiB7XG4gICAgd2lkdGg6IDUwJTtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gIH1cbn1cbi5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciAudGl0bGUgLndpZGdldC1hZGRlZC5iYWRnZSB7XG4gIG1hcmdpbi1yaWdodDogMTBweDtcbiAgb3BhY2l0eTogMDtcbn1cbi5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciAudGl0bGUgLmZhLmNsb3NlLXNlbGVjdG9yIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgcGFkZGluZzogNnB4O1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC50aXRsZSAuZmEuY2xvc2Utc2VsZWN0b3I6aG92ZXIge1xuICBjb2xvcjogIzk5OTk5OTtcbn1cbi5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciAudG9wLWNvbnRhaW5lciB7XG4gIG1hcmdpbjogMTVweCAwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG59XG4uYW5hbHl0aWNzICN3aWRnZXQtc2VsZWN0b3IgLnNlY3Rpb24taGVhZGVyIHtcbiAgcGFkZGluZzogMTBweCAyMHB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbWluLWhlaWdodDogNDBweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciAuc2VjdGlvbi1saW5lcyB7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgaGVpZ2h0OiAyMDBweDtcbiAgbWFyZ2luLXJpZ2h0OiAtMTBweDtcbiAgbWFyZ2luLWxlZnQ6IDBweDtcbn1cbi5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciAuc2VjdGlvbi1saW5lcyBwIHtcbiAgcGFkZGluZzogNXB4O1xuICBtYXJnaW46IDBweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC5zZWN0aW9uLWxpbmVzIHA6aG92ZXIsXG4uYW5hbHl0aWNzICN3aWRnZXQtc2VsZWN0b3IgLnNlY3Rpb24tbGluZXMgcC5zZWxlY3RlZCB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciAuc2VjdGlvbi1saW5lczo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICB3aWR0aDogNnB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciAuc2VjdGlvbi1saW5lczo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjg0MDRmO1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC5zZWN0aW9uLWxpbmVzOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyZDQ4NTk7XG59XG4uYW5hbHl0aWNzICN3aWRnZXQtc2VsZWN0b3IgLmNhdGVnb3JpZXMtc2VjdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxOTI4MzE7XG4gIHBhZGRpbmctYm90dG9tOiAxNXB4O1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC5jYXRlZ29yaWVzLXNlY3Rpb24gPiAuc2VjdGlvbi1saW5lcyA+IFtjbGFzcyo9J2NvbC0nXTpmaXJzdC1jaGlsZCB7XG4gIHBhZGRpbmc6IDNweCAxMnB4O1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC5jYXRlZ29yaWVzLXNlY3Rpb24gPiAuc2VjdGlvbi1saW5lcyAubGluZS1pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFlMzAzYjtcbn1cbi5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciAuY2F0ZWdvcmllcy1zZWN0aW9uID4gLnNlY3Rpb24tbGluZXMgLmxpbmUtaXRlbS5zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5NzdiZjA7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAtd2Via2l0LWJveC1zaGFkb3c6IC0ycHggMnB4IDEwcHggLTRweCBibGFjaztcbiAgYm94LXNoYWRvdzogLTJweCAycHggMTBweCAtNHB4IGJsYWNrO1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC5jYXRlZ29yaWVzLXNlY3Rpb24gLmFycm93LWljb24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMzNweDtcbiAgcmlnaHQ6IC0xMXB4O1xuICB6LWluZGV4OiAxO1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC5jYXRlZ29yaWVzLXNlY3Rpb24gLmFycm93LWljb24gLnNxdWFyZSB7XG4gIHdpZHRoOiA1MHB4O1xuICBoZWlnaHQ6IDMwcHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxMHB4O1xuICByaWdodDogMTdweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk3N2JmMDtcbn1cbi5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciAuY2F0ZWdvcmllcy1zZWN0aW9uIC5hcnJvdy1pY29uIGkuZmEuZmEtY2FyZXQtcmlnaHQge1xuICBmb250LXNpemU6IDUycHg7XG4gIGNvbG9yOiAjOTc3YmYwO1xuICBmbG9hdDogcmlnaHQ7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtMS41cHg7XG4gIHJpZ2h0OiAwcHg7XG59XG4uYW5hbHl0aWNzICN3aWRnZXQtc2VsZWN0b3IgLndpZGdldHMtc2VjdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxZTMwM2I7XG4gIHBhZGRpbmctYm90dG9tOiAxNXB4O1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC53aWRnZXRzLXNlY3Rpb24gPiAuc2VjdGlvbi1oZWFkZXIge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiAjOTc3YmYwO1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC53aWRnZXRzLXNlY3Rpb24gPiAuc2VjdGlvbi1saW5lcyB7XG4gIHBhZGRpbmc6IDNweCAwcHg7XG59XG4uYW5hbHl0aWNzICN3aWRnZXQtc2VsZWN0b3IgLndpZGdldHMtc2VjdGlvbiA+IC5zZWN0aW9uLWxpbmVzIC5mYS5mYS1wbHVzLWNpcmNsZSB7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luLXRvcDogM3B4O1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC53aWRnZXRzLXNlY3Rpb24gPiAuc2VjdGlvbi1saW5lcyA+IC5saW5lLWl0ZW1zLWdyaWQge1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBoZWlnaHQ6IDAlO1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC53aWRnZXRzLXNlY3Rpb24gPiAuc2VjdGlvbi1saW5lcyA+IC5saW5lLWl0ZW1zLWdyaWQgPiAuZ3JpZC1pdGVtIHtcbiAgcGFkZGluZzogMCAxM3B4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWdyb3c6IDE7XG4gIGZsZXg6IDAgMzEuMzMlO1xuICBtYXJnaW46IDAgMSU7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCAjMjMzODQ1O1xuICBtaW4taGVpZ2h0OiAwcHg7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OTJweCkge1xuICAuYW5hbHl0aWNzICN3aWRnZXQtc2VsZWN0b3IgLndpZGdldHMtc2VjdGlvbiA+IC5zZWN0aW9uLWxpbmVzID4gLmxpbmUtaXRlbXMtZ3JpZCA+IC5ncmlkLWl0ZW0ge1xuICAgIGZsZXg6IDAgMTAwJTtcbiAgfVxufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC53aWRnZXRzLXNlY3Rpb24gPiAuc2VjdGlvbi1saW5lcyA+IC5saW5lLWl0ZW1zLWdyaWQgPiAuZ3JpZC1pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE5MjgzMTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cbi5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciAud2lkZ2V0cy1zZWN0aW9uID4gLnNlY3Rpb24tbGluZXMgPiAubGluZS1pdGVtcy1ncmlkID4gLmdyaWQtaXRlbSBwLmxpbmUtaXRlbSB7XG4gIGZsZXgtZ3JvdzogMTtcbn1cbi5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciAuYm90dG9tIHtcbiAgaGVpZ2h0OiAyMHB4O1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC5ib3R0b20gPiAuc3VnZ2VzdGlvbiB7XG4gIGZsb2F0OiByaWdodDtcbiAgb3BhY2l0eTogMC43O1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC5ib3R0b20gPiAuc3VnZ2VzdGlvbiBhIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC5ib3R0b20gPiAuc3VnZ2VzdGlvbiBhOmhvdmVyIHtcbiAgY29sb3I6ICMwMGU1ZjA7XG59XG4uYW5hbHl0aWNzICN3aWRnZXQtc2VsZWN0b3IgLmJvdHRvbSA+IC5zdWdnZXN0aW9uOmhvdmVyIHtcbiAgb3BhY2l0eTogMTtcbn1cbi5hbmFseXRpY3MgI2Rhc2hib2FyZC1zZXR0aW5ncy1wYW5lbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLXRvcDogNXB4O1xufVxuLmFuYWx5dGljcyAjZGFzaGJvYXJkLXNldHRpbmdzLXBhbmVsID4gZGl2IHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbn1cbi5hbmFseXRpY3MgI2Rhc2hib2FyZC1zZXR0aW5ncy1wYW5lbCA+IGRpdiA+ICoge1xuICBtYXJnaW46IDBweCAzcHg7XG59XG4uYW5hbHl0aWNzICNkYXNoYm9hcmQtc2V0dGluZ3MtcGFuZWwgc2VsZWN0IHtcbiAgbWFyZ2luOiAwO1xuICBoZWlnaHQ6IDM0cHg7XG4gIHBhZGRpbmctdG9wOiAxcHg7XG59XG4uYW5hbHl0aWNzICNuby13aWRnZXRzLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWluLWhlaWdodDogMTUwcHg7XG59XG4uYW5hbHl0aWNzICNuby13aWRnZXRzLWNvbnRhaW5lciBpbWcuYmcge1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIG1pbi13aWR0aDogMTAwJTtcbiAgbWluLWhlaWdodDogMTAwJTtcbn1cbi5hbmFseXRpY3MgI25vLXdpZGdldHMtY29udGFpbmVyIC5pbXBhYy1pbmZvLW1lc3NhZ2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgd2lkdGg6IDEwMCU7XG59XG4uYW5hbHl0aWNzICNuby13aWRnZXRzLWNvbnRhaW5lciAuaW1wYWMtaW5mby1tZXNzYWdlIC5pbmZvLXRleHQge1xuICBmb250LXNpemU6IDI1cHg7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIHBhZGRpbmc6IDIwcHg7XG4gIG1pbi1oZWlnaHQ6IDExNXB4O1xuICBjb2xvcjogd2hpdGU7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjMsIDM4LCA0NSwgMC43KTtcbn1cbi5hbmFseXRpY3MgI3dpZGdldHMtc2VjdGlvbiAjd2lkZ2V0cy1jb250YWluZXIge1xuICBtaW4taGVpZ2h0OiA3MDBweDtcbn1cbi5hbmFseXRpY3MgI3dpZGdldHMtc2VjdGlvbiAucGxhY2VIb2xkZXJCb3gge1xuICBtYXJnaW46IDEycHg7XG4gIGhlaWdodDogMjY3cHg7XG4gIHdpZHRoOiAzMDBweDtcbiAgZmxvYXQ6IGxlZnQ7XG4gIGJvcmRlcjogMnB4IGRhc2hlZCAjYWJjNGM2O1xuICBiYWNrZ3JvdW5kOiBub25lO1xufVxuLmFuYWx5dGljcy5sb2FkLWZhaWxlZCBwIHtcbiAgZm9udC1zaXplOiAyMnB4O1xufVxuLmFuYWx5dGljcy5sb2FkLWZhaWxlZCAuc2Vjb25kLW1zZyBwIHtcbiAgY29sb3I6ICNlMDFmNzQ7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cbi50b29sdGlwLmltcGFjLXdpZGdldC1zZWxlY3Rvci10b29sdGlwIC50b29sdGlwLWlubmVyLm5nLWJpbmRpbmcge1xuICBmb250LXNpemU6IDE0cHg7XG59XG4uaW1wYWMtd2lkZ2V0LXN1Z2dlc3Rpb24gLm1vZGFsLWJvZHkgaW5wdXQsXG4uaW1wYWMtd2lkZ2V0LXN1Z2dlc3Rpb24gLm1vZGFsLWJvZHkgdGV4dGFyZWEge1xuICB3aWR0aDogMTAwJTtcbiAgY29sb3I6IGJsYWNrO1xufVxuLmltcGFjLXdpZGdldC1zdWdnZXN0aW9uIC5tb2RhbC1ib2R5IHRleHRhcmVhIHtcbiAgaGVpZ2h0OiAxNTBweDtcbn1cbi5pbXBhYy13aWRnZXQtc3VnZ2VzdGlvbiAubW9kYWwtYm9keSAudGhhbmtzLW1lc3NhZ2Uge1xuICBjb2xvcjogI2RhZTE3Mztcbn1cbi5tb2RhbC1mb290ZXIgLmxvYWRlciB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5hbmFseXRpY3MgLmRhc2hib2FyZC1jcmVhdGUgLmJ0bi1jcmVhdGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTc3YmYwO1xufVxuLm1vZGFsLmltcGFjLWRhc2hib2FyZC1jcmVhdGUgaDEge1xuICBmb250LXNpemU6IDI0cHg7XG59XG4ubW9kYWwuaW1wYWMtZGFzaGJvYXJkLWNyZWF0ZSAuZmEuZmEtdGltZXMge1xuICBmbG9hdDogcmlnaHQ7XG4gIGNvbG9yOiAjY2NjO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ubW9kYWwuaW1wYWMtZGFzaGJvYXJkLWNyZWF0ZSAuY29udHJvbC1sYWJlbCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4ubW9kYWwuaW1wYWMtZGFzaGJvYXJkLWNyZWF0ZSAubW9kYWwtZm9vdGVyIC5sb2FkZXIge1xuICBjb2xvcjogd2hpdGU7XG59XG4jbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgYSB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG4jbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgPiBkaXY6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2FiYzRjNjtcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAuYnV0dG9ucy1iYXItcm93IHtcbiAgbWFyZ2luLXRvcDogNTRweDtcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAuYnV0dG9ucy1iYXItcm93LnBkZi1tb2RlIHtcbiAgbWFyZ2luLXRvcDogMHB4O1xufVxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIC5idXR0b25zLWJhciB7XG4gIHBhZGRpbmc6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAuYnV0dG9ucy1iYXIgLmJ0biB7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luOiAzcHg7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAuYnV0dG9ucy1iYXIgLnRpdGxlLWNvbnRhaW5lciBoMSB7XG4gIG1hcmdpbjogMHB4O1xuICBjb2xvcjogYmxhY2s7XG4gIGN1cnNvcjogYXV0bztcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAuYnV0dG9ucy1iYXIgLmRyb3Bkb3duLWNvbnRhaW5lciAuZGFzaGJvYXJkLXRpdGxlIHtcbiAgY29sb3I6ICM5NzdiZjA7XG4gIGRpc3BsYXk6IGlubGluZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIC5idXR0b25zLWJhciAuZHJvcGRvd24tY29udGFpbmVyIC5kYXNoYm9hcmQtdGl0bGU6aG92ZXIge1xuICBjb2xvcjogIzczNGRlYjtcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAuYnV0dG9ucy1iYXIgLmRyb3Bkb3duLWNvbnRhaW5lciAuZGFzaGJvYXJkLXRpdGxlIGkuZmEuZmEtcGVuY2lsIHtcbiAgbWFyZ2luLWxlZnQ6IDIwcHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAuYnV0dG9ucy1iYXIgLmRyb3Bkb3duLWNvbnRhaW5lciAuZGFzaGJvYXJkLXRpdGxlIGkuZmEuZmEtcGVuY2lsOmhvdmVyIHtcbiAgY29sb3I6ICNkYWUxNzM7XG59XG4jbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgLmJ1dHRvbnMtYmFyIC5kcm9wZG93bi1jb250YWluZXIgLmRhc2hib2FyZC1zZWxlY3Qge1xuICBtYXJnaW46IDVweCAwcHggMTBweCAzMHB4O1xuICBoZWlnaHQ6IGF1dG87XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgIzk3N2JmMDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM5NzdiZjA7XG4gIHdpZHRoOiAzMDBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZWRlZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIC5idXR0b25zLWJhciAuZHJvcGRvd24tY29udGFpbmVyIC5kYXNoYm9hcmQtc2VsZWN0IC5vcHRpb24ge1xuICBjb2xvcjogIzE3MjYyZDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAuYnV0dG9ucy1iYXIgLmRyb3Bkb3duLWNvbnRhaW5lciAuZGFzaGJvYXJkLXNlbGVjdCAub3B0aW9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4jbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgLmJ1dHRvbnMtYmFyIC5kcm9wZG93bi1jb250YWluZXIgLmRhc2hib2FyZC1zZWxlY3QgLm9wdGlvbi5kYXNoYm9hcmQtY3JlYXRlIHtcbiAgaGVpZ2h0OiAzM3B4O1xufVxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIC5idXR0b25zLWJhciAuZHJvcGRvd24tY29udGFpbmVyIC5kYXNoYm9hcmQtc2VsZWN0IC5vcHRpb24uZGFzaGJvYXJkLWNyZWF0ZSAuYnRuIHtcbiAgZmxvYXQ6IG5vbmU7XG4gIHdpZHRoOiAxMDAlO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBtYXJnaW46IDBweDtcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xufVxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIC5idXR0b25zLWJhciAuZHJvcGRvd24tY29udGFpbmVyIC5kYXNoYm9hcmQtc2VsZWN0IC5vcHRpb24gaS5mYS5mYS1wZW5jaWwge1xuICBmbG9hdDogcmlnaHQ7XG4gIHBhZGRpbmctdG9wOiA3cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2lkdGg6IDE1JTtcbiAgaGVpZ2h0OiAzMHB4O1xufVxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIC5idXR0b25zLWJhciAuZHJvcGRvd24tY29udGFpbmVyIC5kYXNoYm9hcmQtc2VsZWN0IC5vcHRpb24gaS5mYS5mYS1wZW5jaWw6aG92ZXIge1xuICBjb2xvcjogIzczNGRlYjtcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAuYnV0dG9ucy1iYXIgLmRyb3Bkb3duLWNvbnRhaW5lciAuZGFzaGJvYXJkLXNlbGVjdCAub3B0aW9uIHNwYW4ubmFtZSB7XG4gIHdpZHRoOiA4NSU7XG4gIGhlaWdodDogMzBweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiA1cHggMTBweCA1cHggMTBweDtcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAuYnV0dG9ucy1iYXIgLmRyb3Bkb3duLWNvbnRhaW5lciAuY2hhbmdlLW5hbWUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMzBweDtcbiAgbGVmdDogMjBweDtcbiAgd2lkdGg6IDYwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE3MjYyZDtcbiAgY29sb3I6IHdoaXRlO1xuICBwYWRkaW5nOiAxMHB4O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwcHggMHB4IDI1cHggNHB4IGJsYWNrO1xuICBib3gtc2hhZG93OiAwcHggMHB4IDI1cHggNHB4IGJsYWNrO1xuICB6LWluZGV4OiA1MDtcbiAgYm9yZGVyOiBzb2xpZCAxcHggd2hpdGU7XG59XG4jbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgLmJ1dHRvbnMtYmFyIC5kcm9wZG93bi1jb250YWluZXIgLmNoYW5nZS1uYW1lIC5mb3JtLWNvbnRyb2wge1xuICBoZWlnaHQ6IDI1cHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG4jbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgLmJ1dHRvbnMtYmFyIC5kcm9wZG93bi1jb250YWluZXIgLmRhdGEtc291cmNlLWxhYmVsIHtcbiAgY29sb3I6ICMxNzI2MmQ7XG4gIHBhZGRpbmctbGVmdDogM3B4O1xuICBtYXJnaW46IDBweDtcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAuYnV0dG9ucy1iYXIgLmxvYWRlci1jb250YWluZXIge1xuICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG59XG4jbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgLmJ1dHRvbnMtYmFyIC5sb2FkZXItY29udGFpbmVyIC5sb2FkaW5nLXNwaW5uZXIge1xuICBjb2xvcjogIzY3QkJFOTtcbiAgZm9udC1zaXplOiA0MHB4O1xufVxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIC5uYXYtdGFicyB7XG4gIGJvcmRlci1ib3R0b206IDA7XG59XG4jbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgLm5hdi5uYXYtdGFicyBsaTpsYXN0LWNoaWxkID4gYSxcbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAubmF2Lm5hdi1waWxscyBsaTpsYXN0LWNoaWxkID4gYSB7XG4gIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG59XG4jbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgLm5hdi5uYXYtdGFicyBsaTpsYXN0LWNoaWxkID4gYSB0YWItaGVhZGluZyBhLFxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIC5uYXYubmF2LXBpbGxzIGxpOmxhc3QtY2hpbGQgPiBhIHRhYi1oZWFkaW5nIGEge1xuICBwb3NpdGlvbjogc3RhdGljO1xufVxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIC5uYXYubmF2LXRhYnMgbGkgPiBhIHtcbiAgcGFkZGluZzogMTBweCA4cHggMTBweCAxNXB4O1xuICBtYXJnaW46IDAgMnB4IDAgMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNhYmM0YzY7XG4gIGNvbG9yOiBibGFjaztcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAubmF2Lm5hdi10YWJzIGxpLmFjdGl2ZSA+IGEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBjb2xvcjogIzk3N2JmMDtcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAubmF2Lm5hdi10YWJzIGxpOmxhc3QtY2hpbGQuYWN0aXZlID4gYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIC5uYXYubmF2LXBpbGxzIGxpID4gYSB7XG4gIG1pbi13aWR0aDogMHB4O1xuICBwYWRkaW5nLXJpZ2h0OiA4cHg7XG59XG4jbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgLm5hdi5uYXYtcGlsbHMgbGk6bGFzdC1jaGlsZCB0YWItaGVhZGluZyBhIHtcbiAgbWFyZ2luLWxlZnQ6IDJweDtcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAubmF2Lm5hdi1waWxscyBsaTpsYXN0LWNoaWxkLmFjdGl2ZSA+IGEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjRmNGY0O1xufVxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIHRhYi1oZWFkaW5nIGEuY2xvc2UtbGluayB7XG4gIGJvcmRlci1ib3R0b206IDBweCBzb2xpZDtcbiAgbWFyZ2luLWxlZnQ6IDEycHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAtOXB4O1xuICByaWdodDogMXB4O1xuICBjb2xvcjogYmxhY2s7XG59XG5kYXNoYm9hcmQtdGVtcGxhdGVzLXNlbGVjdG9yIC50ZW1wbGF0ZXMtaGVhZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbn1cbmRhc2hib2FyZC10ZW1wbGF0ZXMtc2VsZWN0b3IgLnRlbXBsYXRlcy1oZWFkZXIgLnRlbXBsYXRlcy10b2dnbGUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWdyb3c6IDE7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIGZvbnQtc2l6ZTogMjBweDtcbn1cbmRhc2hib2FyZC10ZW1wbGF0ZXMtc2VsZWN0b3IgLnRlbXBsYXRlcy1oZWFkZXIgLnRlbXBsYXRlcy10b2dnbGUgaS5mYSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbmRhc2hib2FyZC10ZW1wbGF0ZXMtc2VsZWN0b3IgLnRlbXBsYXRlcy1oZWFkZXIgLnRlbXBsYXRlcy10b2dnbGUgaS5mYS5mYS10b2dnbGUtb24ge1xuICBjb2xvcjogIzk3N2JmMDtcbn1cbmRhc2hib2FyZC10ZW1wbGF0ZXMtc2VsZWN0b3IgLnRlbXBsYXRlcyB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gIGJveC1zaGFkb3c6IGluc2V0IDBweCAwcHggMXB4IDBweCAjY2NjO1xuICBoZWlnaHQ6IDEzMHB4O1xuICBvdmVyZmxvdzogYXV0bztcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xufVxuZGFzaGJvYXJkLXRlbXBsYXRlcy1zZWxlY3RvciAudGVtcGxhdGVzIC50ZW1wbGF0ZSB7XG4gIHBhZGRpbmc6IDVweCAxMHB4O1xuICBjb2xvcjogIzVCNjY2NztcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlY2VjZWM7XG59XG5kYXNoYm9hcmQtdGVtcGxhdGVzLXNlbGVjdG9yIC50ZW1wbGF0ZXMgLnRlbXBsYXRlOmhvdmVyIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDk2LCAyMzIsIDExOSwgMC42Mik7XG59XG5kYXNoYm9hcmQtdGVtcGxhdGVzLXNlbGVjdG9yIC50ZW1wbGF0ZXMgLnRlbXBsYXRlLnNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyOSwgMTk3LCA1NywgMC42Mik7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWF4LXdpZHRoOiAyMjBweDtcbiAgbWluLWhlaWdodDogOTVweDtcbiAgbWF4LWhlaWdodDogOTVweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIG1hcmdpbjogMTBweCAwIDEwcHggMDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHdoaXRlO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgfVxufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkudHJpZ2dlcmVkLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkuYWRkOmhvdmVyIHtcbiAgYm9yZGVyLWJvdHRvbTogNHB4IHNvbGlkICNlMDFmNzQ7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaS5hZGQgLmtwaS10ZXh0IC5lbXBoYXNpcyB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpLmFkZDpob3ZlciB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpLmFkZDpob3ZlciAudG9wLWxpbmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpLmFkZDpob3ZlciAua3BpLXRleHQge1xuICBjb2xvcjogYmxhY2s7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaS5hZGQ6aG92ZXIgLmtwaS10ZXh0IC5lbXBoYXNpcyB7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaS5hZGQ6aG92ZXIgLmtwaS1pY29uIHtcbiAgY29sb3I6IGJsYWNrO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkuYWRkOmhvdmVyIC5rcGktaWNvbiAuZmEtcGx1czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwY1wiO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkuZWRpdGluZyB7XG4gIG1pbi1oZWlnaHQ6IDE4NXB4O1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGk6aG92ZXIge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaS5zdGF0aWMgLmtwaS12YWx1ZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAudG9wLWxpbmUge1xuICB3aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjdXJzb3I6IG1vdmU7XG4gIHBhZGRpbmc6IDlweCA5cHggMHB4IDEycHg7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIG1pbi1oZWlnaHQ6IDdweDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDtcbiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IHJvdztcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogZ3JleTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjJzIGVhc2UtaW47XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAudG9wLWxpbmUudHJpZ2dlcmVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWNvbnRlbnQge1xuICBtYXgtaGVpZ2h0OiA5MHB4O1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1jb250ZW50LmVkaXRpbmcge1xuICBtaW4taGVpZ2h0OiAxODBweDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1zaG93IHtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgcGFkZGluZzogMTBweDtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM4MHB4KSB7XG4gIC5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktc2hvdyB7XG4gICAgcGFkZGluZzogMTBweCAzcHg7XG4gIH1cbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktc2hvdyAuZW1waGFzaXMge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktc2hvdyAuZW1waGFzaXMgLnJlYWwtdmFsdWUge1xuICBjb2xvcjogIzY3Njc2Nztcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktc2hvdyAuY2FwdGlvbiB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1zaG93IC5rcGktdGV4dCB7XG4gIHBhZGRpbmc6IDdweCAwO1xuICBjb2xvcjogZ3JleTtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4ycyBlYXNlLWluO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1zaG93IC5rcGktdGV4dCA+IHNwYW4ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktc2hvdyAua3BpLXRleHQudHJpZ2dlcmVkIHtcbiAgY29sb3I6IGJsYWNrO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1zaG93IC5rcGktdGV4dCAuY2FwdGlvbiB7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgcGFkZGluZy1ib3R0b206IDJweDtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ2NXB4KSB7XG4gIC5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktc2hvdyAua3BpLXRleHQgLmNhcHRpb24ge1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgfVxuICAuYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLXNob3cgLmtwaS10ZXh0IC5lbXBoYXNpcyB7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICB9XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLXNob3cgLmtwaS1pY29uIHtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBwYWRkaW5nOiAxMHB4IDA7XG4gIGNvbG9yOiBncmV5O1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjJzIGVhc2UtaW47XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLXNob3cgLmtwaS1pY29uLnRyaWdnZXJlZCB7XG4gIGNvbG9yOiBibGFjaztcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ2NXB4KSB7XG4gIC5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktc2hvdyAua3BpLWljb24ge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBwYWRkaW5nOiAxNnB4IDA7XG4gIH1cbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCBhIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5rcGktbmFtZSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5rcGktbmFtZSBoNiB7XG4gIG1hcmdpbjogMCAwIDVweCAwO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5yZWFsLXZhbHVlIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC1zaXplOiAxMHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmFsZXJ0LWNhcHRpb24ge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgYmFja2dyb3VuZDogI2ZmOTk5OTtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAwIGF1dG8gNXB4IGF1dG87XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIHBhZGRpbmc6IDJweDtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5rcGktdGFyZ2V0LXdhdGNoYWJsZSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAua3BpLXRhcmdldC11bml0IHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgZm9udC1zaXplOiAxMXB4O1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5rcGktdGFyZ2V0LXdhdGNoYWJsZSB7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGNvbG9yOiAjOGQ4ZDhkO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5rcGktdGFyZ2V0LXVuaXQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNnB4O1xuICByaWdodDogMDtcbiAgY29sb3I6ICM5YTlhOWE7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLnBhcmFtLW5hbWUge1xuICBmb250LXNpemU6IDg1JTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuYnRuLmJ0bi14cyB7XG4gIG1hcmdpbi10b3A6IDRweDtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSB7XG4gIC8qIEZsYXR0ZW4gZGVyIEJvb3RzdHJhcCAqL1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC53ZWxsLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC53ZWxsLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5uYXZiYXItaW5uZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLm5hdmJhci1pbm5lcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAucG9wb3Zlcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAucG9wb3Zlcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuYnRuLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5idG4sXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLnRvb2x0aXAsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLnRvb2x0aXAsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgaW5wdXQsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgaW5wdXQsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgc2VsZWN0LFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIHNlbGVjdCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCB0ZXh0YXJlYSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSB0ZXh0YXJlYSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCBwcmUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgcHJlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5wcm9ncmVzcyxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAucHJvZ3Jlc3MsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLm1vZGFsLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5tb2RhbCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuYWRkLW9uLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5hZGQtb24sXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmFsZXJ0LFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5hbGVydCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAudGFibGUtYm9yZGVyZWQsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLnRhYmxlLWJvcmRlcmVkLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5uYXYgPiAuYWN0aXZlID4gYSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAubmF2ID4gLmFjdGl2ZSA+IGEsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmRyb3Bkb3duLW1lbnUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmRyb3Bkb3duLW1lbnUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLnRvb2x0aXAtaW5uZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLnRvb2x0aXAtaW5uZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmJhZGdlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5iYWRnZSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAubGFiZWwsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmxhYmVsLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbWctcG9sYXJvaWQsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltZy1wb2xhcm9pZCB7XG4gIC1tb3otYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDBweCAhaW1wb3J0YW50O1xuICAtbW96LWJvcmRlci1yYWRpdXM6IDBweCAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAwcHggIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lICFpbXBvcnRhbnQ7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgYm9keSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSBib2R5LFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IGlucHV0LFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIGlucHV0LFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IHNlbGVjdCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSBzZWxlY3QsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgdGV4dGFyZWEsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgdGV4dGFyZWEge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IGJvZHk6OmFmdGVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIGJvZHk6OmFmdGVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IGlucHV0OjphZnRlcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSBpbnB1dDo6YWZ0ZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgc2VsZWN0OjphZnRlcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSBzZWxlY3Q6OmFmdGVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IHRleHRhcmVhOjphZnRlcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSB0ZXh0YXJlYTo6YWZ0ZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgYm9keTo6YmVmb3JlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIGJvZHk6OmJlZm9yZSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCBpbnB1dDo6YmVmb3JlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIGlucHV0OjpiZWZvcmUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgc2VsZWN0OjpiZWZvcmUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgc2VsZWN0OjpiZWZvcmUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgdGV4dGFyZWE6OmJlZm9yZSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSB0ZXh0YXJlYTo6YmVmb3JlIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCBpbnB1dFt0eXBlPW51bWJlcl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgaW5wdXRbdHlwZT1udW1iZXJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IGlucHV0W3R5cGU9bnVtYmVyXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSBpbnB1dFt0eXBlPW51bWJlcl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIG1hcmdpbjogMDtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCBhOmhvdmVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIGE6aG92ZXIge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgZmllbGRzZXQsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgZmllbGRzZXQge1xuICBtYXJnaW46IDAgMCAxLjc1cmVtO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IG5vbmU7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tcmFkaW8sXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tcmFkaW8sXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi10b3A6IDEuMzEyNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMS4zMTI1cmVtO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWlubGluZSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1pbmxpbmUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWlubGluZSA+IC5pbS1mb3JtLWdyb3VwLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWlubGluZSA+IC5pbS1mb3JtLWdyb3VwIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsZXg6IDE7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbWFyZ2luLWxlZnQ6IDAuMTc1cmVtO1xuICBtYXJnaW4tcmlnaHQ6IDAuMTc1cmVtO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWlubGluZSA+IC5idG4sXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0taW5saW5lID4gLmJ0biB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCBpbnB1dCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCBpbnB1dCB7XG4gIGhlaWdodDogMi4zNzVyZW07XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWEsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWEge1xuICByZXNpemU6IG5vbmU7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgc2VsZWN0LFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIHNlbGVjdCB7XG4gIHdpZHRoOiAxMDAlO1xuICBmb250LXNpemU6IDEuMjVyZW07XG4gIGhlaWdodDogMnJlbTtcbiAgcGFkZGluZzogMC4xNTYyNXJlbSAwLjE1NjI1cmVtIDAuMDc4MTI1cmVtO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgLmltLWNvbnRyb2wtbGFiZWwsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgLmltLWNvbnRyb2wtbGFiZWwge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMC4zMTI1cmVtO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgcGFkZGluZy1sZWZ0OiAwLjE1NjI1cmVtO1xuICB6LWluZGV4OiAxO1xuICBjb2xvcjogI2IzYjNiMztcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4yOHMgZWFzZTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCAuaW0tYmFyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIC5pbS1iYXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJvcmRlci1ib3R0b206IDAuMDc4MTI1cmVtIHNvbGlkICM5OTk7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIC5pbS1iYXI6OmJlZm9yZSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCAuaW0tYmFyOjpiZWZvcmUge1xuICBjb250ZW50OiAnJztcbiAgaGVpZ2h0OiAwLjE1NjI1cmVtO1xuICB3aWR0aDogMDtcbiAgbGVmdDogNTAlO1xuICBib3R0b206IC0wLjA3ODEyNXJlbTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBiYWNrZ3JvdW5kOiAjMzU4ZmRjO1xuICB0cmFuc2l0aW9uOiBsZWZ0IDAuMjhzIGVhc2UsIHdpZHRoIDAuMjhzIGVhc2U7XG4gIHotaW5kZXg6IDI7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgaW5wdXQsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgaW5wdXQsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWEsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWEge1xuICBkaXNwbGF5OiBibG9jaztcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgcGFkZGluZzogMC4xNTYyNXJlbSAwLjE1NjI1cmVtIDAuMDc4MTI1cmVtO1xuICBmb250LXNpemU6IDEuMjVyZW07XG4gIGJvcmRlci13aWR0aDogMDtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgbGluZS1oZWlnaHQ6IDEuOTtcbiAgd2lkdGg6IDEwMCU7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMjhzIGVhc2U7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgaW5wdXRbdHlwZT1cImZpbGVcIl0sXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgaW5wdXRbdHlwZT1cImZpbGVcIl0ge1xuICBsaW5lLWhlaWdodDogMTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCBpbnB1dFt0eXBlPVwiZmlsZVwiXSB+IC5pbS1iYXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgaW5wdXRbdHlwZT1cImZpbGVcIl0gfiAuaW0tYmFyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCBzZWxlY3QsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgc2VsZWN0LFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIGlucHV0OmZvY3VzLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIGlucHV0OmZvY3VzLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIGlucHV0OnZhbGlkLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIGlucHV0OnZhbGlkLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIGlucHV0LmZvcm0tZmlsZSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCBpbnB1dC5mb3JtLWZpbGUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgaW5wdXQuaGFzLXZhbHVlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIGlucHV0Lmhhcy12YWx1ZSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYTpmb2N1cyxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYTpmb2N1cyxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYTp2YWxpZCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYTp2YWxpZCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYS5mb3JtLWZpbGUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWEuZm9ybS1maWxlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIHRleHRhcmVhLmhhcy12YWx1ZSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYS5oYXMtdmFsdWUge1xuICBjb2xvcjogIzMzMztcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCBzZWxlY3QgfiAuaW0tY29udHJvbC1sYWJlbCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCBzZWxlY3QgfiAuaW0tY29udHJvbC1sYWJlbCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCBpbnB1dDpmb2N1cyB+IC5pbS1jb250cm9sLWxhYmVsLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIGlucHV0OmZvY3VzIH4gLmltLWNvbnRyb2wtbGFiZWwsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgaW5wdXQ6dmFsaWQgfiAuaW0tY29udHJvbC1sYWJlbCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCBpbnB1dDp2YWxpZCB+IC5pbS1jb250cm9sLWxhYmVsLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIGlucHV0LmZvcm0tZmlsZSB+IC5pbS1jb250cm9sLWxhYmVsLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIGlucHV0LmZvcm0tZmlsZSB+IC5pbS1jb250cm9sLWxhYmVsLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIGlucHV0Lmhhcy12YWx1ZSB+IC5pbS1jb250cm9sLWxhYmVsLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIGlucHV0Lmhhcy12YWx1ZSB+IC5pbS1jb250cm9sLWxhYmVsLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIHRleHRhcmVhOmZvY3VzIH4gLmltLWNvbnRyb2wtbGFiZWwsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWE6Zm9jdXMgfiAuaW0tY29udHJvbC1sYWJlbCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYTp2YWxpZCB+IC5pbS1jb250cm9sLWxhYmVsLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIHRleHRhcmVhOnZhbGlkIH4gLmltLWNvbnRyb2wtbGFiZWwsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWEuZm9ybS1maWxlIH4gLmltLWNvbnRyb2wtbGFiZWwsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWEuZm9ybS1maWxlIH4gLmltLWNvbnRyb2wtbGFiZWwsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWEuaGFzLXZhbHVlIH4gLmltLWNvbnRyb2wtbGFiZWwsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWEuaGFzLXZhbHVlIH4gLmltLWNvbnRyb2wtbGFiZWwge1xuICBmb250LXNpemU6IDFyZW07XG4gIGNvbG9yOiAjODA4MDgwO1xuICB0b3A6IC0xLjI1cmVtO1xuICBsZWZ0OiAwO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIHNlbGVjdDpmb2N1cyxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCBzZWxlY3Q6Zm9jdXMsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgaW5wdXQ6Zm9jdXMsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgaW5wdXQ6Zm9jdXMsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWE6Zm9jdXMsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWE6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIHNlbGVjdDpmb2N1cyB+IC5pbS1jb250cm9sLWxhYmVsLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIHNlbGVjdDpmb2N1cyB+IC5pbS1jb250cm9sLWxhYmVsLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIGlucHV0OmZvY3VzIH4gLmltLWNvbnRyb2wtbGFiZWwsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgaW5wdXQ6Zm9jdXMgfiAuaW0tY29udHJvbC1sYWJlbCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYTpmb2N1cyB+IC5pbS1jb250cm9sLWxhYmVsLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIHRleHRhcmVhOmZvY3VzIH4gLmltLWNvbnRyb2wtbGFiZWwge1xuICBjb2xvcjogIzM1OGZkYztcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCBzZWxlY3Q6Zm9jdXMgfiAuaW0tYmFyOjpiZWZvcmUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgc2VsZWN0OmZvY3VzIH4gLmltLWJhcjo6YmVmb3JlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIGlucHV0OmZvY3VzIH4gLmltLWJhcjo6YmVmb3JlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIGlucHV0OmZvY3VzIH4gLmltLWJhcjo6YmVmb3JlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIHRleHRhcmVhOmZvY3VzIH4gLmltLWJhcjo6YmVmb3JlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIHRleHRhcmVhOmZvY3VzIH4gLmltLWJhcjo6YmVmb3JlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGxlZnQ6IDA7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWNoZWNrYm94IGxhYmVsLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1jaGVja2JveCBsYWJlbCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1yYWRpbyBsYWJlbCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1yYWRpbyBsYWJlbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwYWRkaW5nLWxlZnQ6IDIuNXJlbTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgY29sb3I6ICMzMzM7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1jaGVja2JveCBpbnB1dCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tY2hlY2tib3ggaW5wdXQsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tcmFkaW8gaW5wdXQsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tcmFkaW8gaW5wdXQge1xuICB3aWR0aDogYXV0bztcbiAgb3BhY2l0eTogMC4wMDAwMDAwMTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1yYWRpbyxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tcmFkaW8ge1xuICBtYXJnaW4tYm90dG9tOiAxLjI1cmVtO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1yYWRpbyAuaW0taGVscGVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1yYWRpbyAuaW0taGVscGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC0wLjMxMjVyZW07XG4gIGxlZnQ6IC0wLjMxMjVyZW07XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIGNvbG9yOiAjOTk5O1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1yYWRpbyAuaW0taGVscGVyOjpiZWZvcmUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLXJhZGlvIC5pbS1oZWxwZXI6OmJlZm9yZSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tcmFkaW8gLmltLWhlbHBlcjo6YWZ0ZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLXJhZGlvIC5pbS1oZWxwZXI6OmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICBtYXJnaW46IDAuMzEyNXJlbTtcbiAgd2lkdGg6IDEuMjVyZW07XG4gIGhlaWdodDogMS4yNXJlbTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMjhzIGVhc2U7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYm9yZGVyOiAwLjE1NjI1cmVtIHNvbGlkIGN1cnJlbnRDb2xvcjtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tcmFkaW8gLmltLWhlbHBlcjo6YWZ0ZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLXJhZGlvIC5pbS1oZWxwZXI6OmFmdGVyIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM1OGZkYztcbiAgYm9yZGVyLWNvbG9yOiAjMzU4ZmRjO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1yYWRpbyBsYWJlbDpob3ZlciAuaW0taGVscGVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1yYWRpbyBsYWJlbDpob3ZlciAuaW0taGVscGVyIHtcbiAgY29sb3I6ICMzNThmZGM7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLXJhZGlvIGlucHV0OmNoZWNrZWQgfiAuaW0taGVscGVyOjphZnRlcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tcmFkaW8gaW5wdXQ6Y2hlY2tlZCB+IC5pbS1oZWxwZXI6OmFmdGVyIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjUpO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1yYWRpbyBpbnB1dDpjaGVja2VkIH4gLmltLWhlbHBlcjo6YmVmb3JlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1yYWRpbyBpbnB1dDpjaGVja2VkIH4gLmltLWhlbHBlcjo6YmVmb3JlIHtcbiAgY29sb3I6ICMzNThmZGM7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWNoZWNrYm94LFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1jaGVja2JveCB7XG4gIG1hcmdpbi10b3A6IDEuNzVyZW07XG4gIG1hcmdpbi1ib3R0b206IDEuMjVyZW07XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWNoZWNrYm94IC5pbS1oZWxwZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWNoZWNrYm94IC5pbS1oZWxwZXIge1xuICBjb2xvcjogIzk5OTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxLjI1cmVtO1xuICBoZWlnaHQ6IDEuMjVyZW07XG4gIHotaW5kZXg6IDA7XG4gIGJvcmRlcjogMC4xNTYyNXJlbSBzb2xpZCBjdXJyZW50Q29sb3I7XG4gIGJvcmRlci1yYWRpdXM6IDAuMDc4MTI1cmVtO1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4yOHMgZWFzZTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tY2hlY2tib3ggLmltLWhlbHBlcjo6YmVmb3JlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1jaGVja2JveCAuaW0taGVscGVyOjpiZWZvcmUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWNoZWNrYm94IC5pbS1oZWxwZXI6OmFmdGVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1jaGVja2JveCAuaW0taGVscGVyOjphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaGVpZ2h0OiAwO1xuICB3aWR0aDogMC4yNXJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM1OGZkYztcbiAgZGlzcGxheTogYmxvY2s7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgdG9wO1xuICBib3JkZXItcmFkaXVzOiAwLjMxMjVyZW07XG4gIGNvbnRlbnQ6ICcnO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMjhzIGVhc2UsIGhlaWdodCAwcyBsaW5lYXIgMC4yOHM7XG4gIG9wYWNpdHk6IDA7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWNoZWNrYm94IC5pbS1oZWxwZXI6OmJlZm9yZSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tY2hlY2tib3ggLmltLWhlbHBlcjo6YmVmb3JlIHtcbiAgdG9wOiAwLjgxMjVyZW07XG4gIGxlZnQ6IDAuNDc1cmVtO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTM1ZGVnKTtcbiAgYm94LXNoYWRvdzogMCAwIDAgMC4wNzgxMjVyZW0gI2ZmZjtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tY2hlY2tib3ggLmltLWhlbHBlcjo6YWZ0ZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWNoZWNrYm94IC5pbS1oZWxwZXI6OmFmdGVyIHtcbiAgdG9wOiAwLjM3NXJlbTtcbiAgbGVmdDogMDtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tY2hlY2tib3ggbGFiZWw6aG92ZXIgLmltLWhlbHBlcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tY2hlY2tib3ggbGFiZWw6aG92ZXIgLmltLWhlbHBlciB7XG4gIGNvbG9yOiAjMzU4ZmRjO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gLmltLWhlbHBlcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IC5pbS1oZWxwZXIge1xuICBjb2xvcjogIzM1OGZkYztcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IC5pbS1oZWxwZXI6OmFmdGVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gLmltLWhlbHBlcjo6YWZ0ZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWNoZWNrYm94IGlucHV0OmNoZWNrZWQgfiAuaW0taGVscGVyOjpiZWZvcmUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWNoZWNrYm94IGlucHV0OmNoZWNrZWQgfiAuaW0taGVscGVyOjpiZWZvcmUge1xuICBvcGFjaXR5OiAxO1xuICB0cmFuc2l0aW9uOiBoZWlnaHQgMC4yOHMgZWFzZTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IC5pbS1oZWxwZXI6OmFmdGVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gLmltLWhlbHBlcjo6YWZ0ZXIge1xuICBoZWlnaHQ6IDAuNjI1cmVtO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gLmltLWhlbHBlcjo6YmVmb3JlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gLmltLWhlbHBlcjo6YmVmb3JlIHtcbiAgaGVpZ2h0OiAxLjVyZW07XG4gIHRyYW5zaXRpb24tZGVsYXk6IDAuMjhzO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1yYWRpbyArIC5pbS1yYWRpbyxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tcmFkaW8gKyAuaW0tcmFkaW8sXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWNoZWNrYm94ICsgLmltLWNoZWNrYm94LFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1jaGVja2JveCArIC5pbS1jaGVja2JveCB7XG4gIG1hcmdpbi10b3A6IDEuMjVyZW07XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLW1lc3NhZ2VzLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1tZXNzYWdlcyB7XG4gIGZvbnQtc2l6ZTogMS4wNDE2NjY2N3JlbTtcbiAgY29sb3I6ICNlMDFmNzQ7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRyYW5zaXRpb246IGFsbCAwLjI4cyBjdWJpYy1iZXppZXIoMC41NSwgMCwgMC41NSwgMC4yKTtcbiAgb3BhY2l0eTogMDtcbiAgbWFyZ2luLXRvcDogMDtcbiAgcGFkZGluZy10b3A6IDVweDtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaGFzLWVycm9yIC5sZWdlbmQubGVnZW5kLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5oYXMtZXJyb3IgLmxlZ2VuZC5sZWdlbmQsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmhhcy1lcnJvci5pbS1mb3JtLWdyb3VwIC5pbS1jb250cm9sLWxhYmVsLmltLWNvbnRyb2wtbGFiZWwsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmhhcy1lcnJvci5pbS1mb3JtLWdyb3VwIC5pbS1jb250cm9sLWxhYmVsLmltLWNvbnRyb2wtbGFiZWwge1xuICBjb2xvcjogI2UwMWY3NDtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaGFzLWVycm9yLmltLWZvcm0tZ3JvdXAgLmltLW1lc3NhZ2VzLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5oYXMtZXJyb3IuaW0tZm9ybS1ncm91cCAuaW0tbWVzc2FnZXMsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmhhcy1lcnJvci5pbS1jaGVja2JveCAuaW0tbWVzc2FnZXMsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmhhcy1lcnJvci5pbS1jaGVja2JveCAuaW0tbWVzc2FnZXMsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmhhcy1lcnJvci5pbS1yYWRpbyAuaW0tbWVzc2FnZXMsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmhhcy1lcnJvci5pbS1yYWRpbyAuaW0tbWVzc2FnZXMsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmhhcy1lcnJvci5pbS1mb3JtLXJhZGlvIC5pbS1tZXNzYWdlcyxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaGFzLWVycm9yLmltLWZvcm0tcmFkaW8gLmltLW1lc3NhZ2VzLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5oYXMtZXJyb3IuaW0tZm9ybS1ncm91cCAuaW0taGVscGVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5oYXMtZXJyb3IuaW0tZm9ybS1ncm91cCAuaW0taGVscGVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5oYXMtZXJyb3IuaW0tY2hlY2tib3ggLmltLWhlbHBlcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaGFzLWVycm9yLmltLWNoZWNrYm94IC5pbS1oZWxwZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmhhcy1lcnJvci5pbS1yYWRpbyAuaW0taGVscGVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5oYXMtZXJyb3IuaW0tcmFkaW8gLmltLWhlbHBlcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaGFzLWVycm9yLmltLWZvcm0tcmFkaW8gLmltLWhlbHBlcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaGFzLWVycm9yLmltLWZvcm0tcmFkaW8gLmltLWhlbHBlciB7XG4gIGNvbG9yOiAjZTAxZjc0O1xuICBvcGFjaXR5OiAxO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5oYXMtZXJyb3IgLmltLWJhcjo6YmVmb3JlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5oYXMtZXJyb3IgLmltLWJhcjo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogI2UwMWY3NDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWJ1dHRvbixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tYnV0dG9uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kOiAjNjBhN2U0O1xuICBib3JkZXI6IDA7XG4gIGZvbnQtc2l6ZTogMS4zNzVyZW07XG4gIGNvbG9yOiAjMzMzO1xuICBtYXJnaW46IDAuN3JlbSAwO1xuICBwYWRkaW5nOiAwLjQzNzVyZW0gMS43NXJlbTtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJveC1zaGFkb3c6IDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMCAxcHggNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tYnV0dG9uIHNwYW4sXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWJ1dHRvbiBzcGFuIHtcbiAgY29sb3I6ICNmZmY7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tYnV0dG9uOmhvdmVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1idXR0b246aG92ZXIge1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMXMgZWFzZS1pbjtcbiAgYmFja2dyb3VuZDogIzI1ODNkMztcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tYnV0dG9uOmFjdGl2ZSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCk7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWJ1dHRvbiBhOmZvY3VzLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1idXR0b24gYTpmb2N1cyxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tYnV0dG9uOmZvY3VzLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1idXR0b246Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgYnV0dG9uLmltLWZhYixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSBidXR0b24uaW0tZmFiIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDQ2cHg7XG4gIHdpZHRoOiA0NnB4O1xuICBmbGV4OiAwIDAgNTZweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDRweDtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBmb250LXNpemU6IDIwcHg7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgMXB4IDEwcHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpLCAwIDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMik7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCBidXR0b24uaW0tZmFiOmZvY3VzLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIGJ1dHRvbi5pbS1mYWI6Zm9jdXMge1xuICBvdXRsaW5lOiAwO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IGJ1dHRvbi5pbS1mYWI6YWN0aXZlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIGJ1dHRvbi5pbS1mYWI6YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCBidXR0b24uaW0tZmFiLmltLXByaW1hcnksXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgYnV0dG9uLmltLWZhYi5pbS1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZDogIzM1OGZkYztcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCBidXR0b24uaW0tZmFiLmltLXByaW1hcnk6aG92ZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgYnV0dG9uLmltLWZhYi5pbS1wcmltYXJ5OmhvdmVyIHtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjFzIGVhc2UtaW47XG4gIGJhY2tncm91bmQ6ICMyNTgzZDM7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgYnV0dG9uLmltLWZhYi5pbS13YXJuLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIGJ1dHRvbi5pbS1mYWIuaW0td2FybiB7XG4gIGJhY2tncm91bmQ6ICNlMDFmNzQ7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgYnV0dG9uLmltLWZhYi5pbS13YXJuOmhvdmVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIGJ1dHRvbi5pbS1mYWIuaW0td2Fybjpob3ZlciB7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xcyBlYXNlLWluO1xuICBiYWNrZ3JvdW5kOiAjY2ExYzY4O1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgYnV0dG9uLmtwaS1hbGVydHMuaW0tZmFiLmltLXByaW1hcnkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogLTEycHg7XG4gIHJpZ2h0OiAxNXB4O1xuICB3aWR0aDogMjJweDtcbiAgaGVpZ2h0OiAyMnB4O1xuICBmb250LXNpemU6IDEzcHg7XG4gIGJhY2tncm91bmQ6ICM0YzQ3NDk7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSBidXR0b24ua3BpLWFsZXJ0cy5pbS1mYWIuaW0tcHJpbWFyeTpob3ZlciB7XG4gIGJhY2tncm91ZDogIzM1OGZkYztcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIGJ1dHRvbi5rcGktcmVtb3ZlLmltLWZhYi5pbS13YXJuIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC0xMnB4O1xuICByaWdodDogLTExcHg7XG4gIHdpZHRoOiAyMnB4O1xuICBoZWlnaHQ6IDIycHg7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgYmFja2dyb3VuZDogIzRjNDc0OTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIGJ1dHRvbi5rcGktcmVtb3ZlLmltLWZhYi5pbS13YXJuOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogI2NhMWM2ODtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZGF0YS1sb2FkZXIge1xuICB3aWR0aDogMTAwJTtcbiAgbWluLWhlaWdodDogOTVweDtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua2V5LXN0YXRzIC5rcGkge1xuICBtaW4taGVpZ2h0OiA4MHB4O1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIHtcbiAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgLyogRmxhdHRlbiBkZXIgQm9vdHN0cmFwICovXG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NzVweCkge1xuICAuYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC53ZWxsLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5uYXZiYXItaW5uZXIsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLnBvcG92ZXIsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmJ0bixcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAudG9vbHRpcCxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBpbnB1dCxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBzZWxlY3QsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgdGV4dGFyZWEsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgcHJlLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5wcm9ncmVzcyxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAubW9kYWwsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmFkZC1vbixcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuYWxlcnQsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLnRhYmxlLWJvcmRlcmVkLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5uYXYgPiAuYWN0aXZlID4gYSxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuZHJvcGRvd24tbWVudSxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAudG9vbHRpcC1pbm5lcixcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuYmFkZ2UsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmxhYmVsLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbWctcG9sYXJvaWQge1xuICAtbW96LWJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAwcHggIWltcG9ydGFudDtcbiAgLW1vei1ib3JkZXItcmFkaXVzOiAwcHggIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogMHB4ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2UgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZSAhaW1wb3J0YW50O1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGJvZHksXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgaW5wdXQsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgc2VsZWN0LFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIHRleHRhcmVhIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBib2R5OjphZnRlcixcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBpbnB1dDo6YWZ0ZXIsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgc2VsZWN0OjphZnRlcixcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyB0ZXh0YXJlYTo6YWZ0ZXIsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgYm9keTo6YmVmb3JlLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGlucHV0OjpiZWZvcmUsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgc2VsZWN0OjpiZWZvcmUsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgdGV4dGFyZWE6OmJlZm9yZSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgaW5wdXRbdHlwZT1udW1iZXJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGlucHV0W3R5cGU9bnVtYmVyXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGE6aG92ZXIge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgZmllbGRzZXQge1xuICBtYXJnaW46IDAgMCAxLjc1cmVtO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IG5vbmU7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tcmFkaW8sXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tZ3JvdXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi10b3A6IDEuMzEyNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMS4zMTI1cmVtO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLWlubGluZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0taW5saW5lID4gLmltLWZvcm0tZ3JvdXAge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxleDogMTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW4tbGVmdDogMC4xNzVyZW07XG4gIG1hcmdpbi1yaWdodDogMC4xNzVyZW07XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0taW5saW5lID4gLmJ0biB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tZm9ybS1ncm91cCBpbnB1dCB7XG4gIGhlaWdodDogMi4zNzVyZW07XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWEge1xuICByZXNpemU6IG5vbmU7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tZ3JvdXAgc2VsZWN0IHtcbiAgd2lkdGg6IDEwMCU7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgaGVpZ2h0OiAycmVtO1xuICBwYWRkaW5nOiAwLjE1NjI1cmVtIDAuMTU2MjVyZW0gMC4wNzgxMjVyZW07XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tZm9ybS1ncm91cCAuaW0tY29udHJvbC1sYWJlbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwLjMxMjVyZW07XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBwYWRkaW5nLWxlZnQ6IDAuMTU2MjVyZW07XG4gIHotaW5kZXg6IDE7XG4gIGNvbG9yOiAjYjNiM2IzO1xuICBmb250LXNpemU6IDEuMjVyZW07XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHRyYW5zaXRpb246IGFsbCAwLjI4cyBlYXNlO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLWdyb3VwIC5pbS1iYXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJvcmRlci1ib3R0b206IDAuMDc4MTI1cmVtIHNvbGlkICM5OTk7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLWdyb3VwIC5pbS1iYXI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICcnO1xuICBoZWlnaHQ6IDAuMTU2MjVyZW07XG4gIHdpZHRoOiAwO1xuICBsZWZ0OiA1MCU7XG4gIGJvdHRvbTogLTAuMDc4MTI1cmVtO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJhY2tncm91bmQ6ICMzNThmZGM7XG4gIHRyYW5zaXRpb246IGxlZnQgMC4yOHMgZWFzZSwgd2lkdGggMC4yOHMgZWFzZTtcbiAgei1pbmRleDogMjtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tZm9ybS1ncm91cCBpbnB1dCxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBwYWRkaW5nOiAwLjE1NjI1cmVtIDAuMTU2MjVyZW0gMC4wNzgxMjVyZW07XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgYm9yZGVyLXdpZHRoOiAwO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICBsaW5lLWhlaWdodDogMS45O1xuICB3aWR0aDogMTAwJTtcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4yOHMgZWFzZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tZm9ybS1ncm91cCBpbnB1dFt0eXBlPVwiZmlsZVwiXSB7XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLWdyb3VwIGlucHV0W3R5cGU9XCJmaWxlXCJdIH4gLmltLWJhciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tZ3JvdXAgc2VsZWN0LFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLWdyb3VwIGlucHV0OmZvY3VzLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLWdyb3VwIGlucHV0OnZhbGlkLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLWdyb3VwIGlucHV0LmZvcm0tZmlsZSxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tZm9ybS1ncm91cCBpbnB1dC5oYXMtdmFsdWUsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWE6Zm9jdXMsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWE6dmFsaWQsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWEuZm9ybS1maWxlLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLWdyb3VwIHRleHRhcmVhLmhhcy12YWx1ZSB7XG4gIGNvbG9yOiAjMzMzO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLWdyb3VwIHNlbGVjdCB+IC5pbS1jb250cm9sLWxhYmVsLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLWdyb3VwIGlucHV0OmZvY3VzIH4gLmltLWNvbnRyb2wtbGFiZWwsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tZ3JvdXAgaW5wdXQ6dmFsaWQgfiAuaW0tY29udHJvbC1sYWJlbCxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tZm9ybS1ncm91cCBpbnB1dC5mb3JtLWZpbGUgfiAuaW0tY29udHJvbC1sYWJlbCxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tZm9ybS1ncm91cCBpbnB1dC5oYXMtdmFsdWUgfiAuaW0tY29udHJvbC1sYWJlbCxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYTpmb2N1cyB+IC5pbS1jb250cm9sLWxhYmVsLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLWdyb3VwIHRleHRhcmVhOnZhbGlkIH4gLmltLWNvbnRyb2wtbGFiZWwsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWEuZm9ybS1maWxlIH4gLmltLWNvbnRyb2wtbGFiZWwsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWEuaGFzLXZhbHVlIH4gLmltLWNvbnRyb2wtbGFiZWwge1xuICBmb250LXNpemU6IDFyZW07XG4gIGNvbG9yOiAjODA4MDgwO1xuICB0b3A6IC0xLjI1cmVtO1xuICBsZWZ0OiAwO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLWdyb3VwIHNlbGVjdDpmb2N1cyxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tZm9ybS1ncm91cCBpbnB1dDpmb2N1cyxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYTpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tZ3JvdXAgc2VsZWN0OmZvY3VzIH4gLmltLWNvbnRyb2wtbGFiZWwsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tZ3JvdXAgaW5wdXQ6Zm9jdXMgfiAuaW0tY29udHJvbC1sYWJlbCxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYTpmb2N1cyB+IC5pbS1jb250cm9sLWxhYmVsIHtcbiAgY29sb3I6ICMzNThmZGM7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tZ3JvdXAgc2VsZWN0OmZvY3VzIH4gLmltLWJhcjo6YmVmb3JlLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLWdyb3VwIGlucHV0OmZvY3VzIH4gLmltLWJhcjo6YmVmb3JlLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLWdyb3VwIHRleHRhcmVhOmZvY3VzIH4gLmltLWJhcjo6YmVmb3JlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGxlZnQ6IDA7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWNoZWNrYm94IGxhYmVsLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLXJhZGlvIGxhYmVsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBhZGRpbmctbGVmdDogMi41cmVtO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBjb2xvcjogIzMzMztcbiAgZGlzcGxheTogYmxvY2s7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWNoZWNrYm94IGlucHV0LFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLXJhZGlvIGlucHV0IHtcbiAgd2lkdGg6IGF1dG87XG4gIG9wYWNpdHk6IDAuMDAwMDAwMDE7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tcmFkaW8ge1xuICBtYXJnaW4tYm90dG9tOiAxLjI1cmVtO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1yYWRpbyAuaW0taGVscGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC0wLjMxMjVyZW07XG4gIGxlZnQ6IC0wLjMxMjVyZW07XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIGNvbG9yOiAjOTk5O1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1yYWRpbyAuaW0taGVscGVyOjpiZWZvcmUsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLXJhZGlvIC5pbS1oZWxwZXI6OmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICBtYXJnaW46IDAuMzEyNXJlbTtcbiAgd2lkdGg6IDEuMjVyZW07XG4gIGhlaWdodDogMS4yNXJlbTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMjhzIGVhc2U7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYm9yZGVyOiAwLjE1NjI1cmVtIHNvbGlkIGN1cnJlbnRDb2xvcjtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tcmFkaW8gLmltLWhlbHBlcjo6YWZ0ZXIge1xuICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzU4ZmRjO1xuICBib3JkZXItY29sb3I6ICMzNThmZGM7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLXJhZGlvIGxhYmVsOmhvdmVyIC5pbS1oZWxwZXIge1xuICBjb2xvcjogIzM1OGZkYztcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tcmFkaW8gaW5wdXQ6Y2hlY2tlZCB+IC5pbS1oZWxwZXI6OmFmdGVyIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjUpO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1yYWRpbyBpbnB1dDpjaGVja2VkIH4gLmltLWhlbHBlcjo6YmVmb3JlIHtcbiAgY29sb3I6ICMzNThmZGM7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWNoZWNrYm94IHtcbiAgbWFyZ2luLXRvcDogMS43NXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMS4yNXJlbTtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tY2hlY2tib3ggLmltLWhlbHBlciB7XG4gIGNvbG9yOiAjOTk5O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEuMjVyZW07XG4gIGhlaWdodDogMS4yNXJlbTtcbiAgei1pbmRleDogMDtcbiAgYm9yZGVyOiAwLjE1NjI1cmVtIHNvbGlkIGN1cnJlbnRDb2xvcjtcbiAgYm9yZGVyLXJhZGl1czogMC4wNzgxMjVyZW07XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjI4cyBlYXNlO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1jaGVja2JveCAuaW0taGVscGVyOjpiZWZvcmUsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWNoZWNrYm94IC5pbS1oZWxwZXI6OmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBoZWlnaHQ6IDA7XG4gIHdpZHRoOiAwLjI1cmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzU4ZmRjO1xuICBkaXNwbGF5OiBibG9jaztcbiAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCB0b3A7XG4gIGJvcmRlci1yYWRpdXM6IDAuMzEyNXJlbTtcbiAgY29udGVudDogJyc7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4yOHMgZWFzZSwgaGVpZ2h0IDBzIGxpbmVhciAwLjI4cztcbiAgb3BhY2l0eTogMDtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tY2hlY2tib3ggLmltLWhlbHBlcjo6YmVmb3JlIHtcbiAgdG9wOiAwLjgxMjVyZW07XG4gIGxlZnQ6IDAuNDc1cmVtO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTM1ZGVnKTtcbiAgYm94LXNoYWRvdzogMCAwIDAgMC4wNzgxMjVyZW0gI2ZmZjtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tY2hlY2tib3ggLmltLWhlbHBlcjo6YWZ0ZXIge1xuICB0b3A6IDAuMzc1cmVtO1xuICBsZWZ0OiAwO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1jaGVja2JveCBsYWJlbDpob3ZlciAuaW0taGVscGVyIHtcbiAgY29sb3I6ICMzNThmZGM7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWNoZWNrYm94IGlucHV0OmNoZWNrZWQgfiAuaW0taGVscGVyIHtcbiAgY29sb3I6ICMzNThmZGM7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWNoZWNrYm94IGlucHV0OmNoZWNrZWQgfiAuaW0taGVscGVyOjphZnRlcixcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IC5pbS1oZWxwZXI6OmJlZm9yZSB7XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zaXRpb246IGhlaWdodCAwLjI4cyBlYXNlO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gLmltLWhlbHBlcjo6YWZ0ZXIge1xuICBoZWlnaHQ6IDAuNjI1cmVtO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gLmltLWhlbHBlcjo6YmVmb3JlIHtcbiAgaGVpZ2h0OiAxLjVyZW07XG4gIHRyYW5zaXRpb24tZGVsYXk6IDAuMjhzO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1yYWRpbyArIC5pbS1yYWRpbyxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tY2hlY2tib3ggKyAuaW0tY2hlY2tib3gge1xuICBtYXJnaW4tdG9wOiAxLjI1cmVtO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1tZXNzYWdlcyB7XG4gIGZvbnQtc2l6ZTogMS4wNDE2NjY2N3JlbTtcbiAgY29sb3I6ICNlMDFmNzQ7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRyYW5zaXRpb246IGFsbCAwLjI4cyBjdWJpYy1iZXppZXIoMC41NSwgMCwgMC41NSwgMC4yKTtcbiAgb3BhY2l0eTogMDtcbiAgbWFyZ2luLXRvcDogMDtcbiAgcGFkZGluZy10b3A6IDVweDtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaGFzLWVycm9yIC5sZWdlbmQubGVnZW5kLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5oYXMtZXJyb3IuaW0tZm9ybS1ncm91cCAuaW0tY29udHJvbC1sYWJlbC5pbS1jb250cm9sLWxhYmVsIHtcbiAgY29sb3I6ICNlMDFmNzQ7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmhhcy1lcnJvci5pbS1mb3JtLWdyb3VwIC5pbS1tZXNzYWdlcyxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaGFzLWVycm9yLmltLWNoZWNrYm94IC5pbS1tZXNzYWdlcyxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaGFzLWVycm9yLmltLXJhZGlvIC5pbS1tZXNzYWdlcyxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaGFzLWVycm9yLmltLWZvcm0tcmFkaW8gLmltLW1lc3NhZ2VzLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5oYXMtZXJyb3IuaW0tZm9ybS1ncm91cCAuaW0taGVscGVyLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5oYXMtZXJyb3IuaW0tY2hlY2tib3ggLmltLWhlbHBlcixcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaGFzLWVycm9yLmltLXJhZGlvIC5pbS1oZWxwZXIsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmhhcy1lcnJvci5pbS1mb3JtLXJhZGlvIC5pbS1oZWxwZXIge1xuICBjb2xvcjogI2UwMWY3NDtcbiAgb3BhY2l0eTogMTtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaGFzLWVycm9yIC5pbS1iYXI6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6ICNlMDFmNzQ7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1idXR0b24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6ICM2MGE3ZTQ7XG4gIGJvcmRlcjogMDtcbiAgZm9udC1zaXplOiAxLjM3NXJlbTtcbiAgY29sb3I6ICMzMzM7XG4gIG1hcmdpbjogMC43cmVtIDA7XG4gIHBhZGRpbmc6IDAuNDM3NXJlbSAxLjc1cmVtO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYm94LXNoYWRvdzogMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDFweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1idXR0b24gc3BhbiB7XG4gIGNvbG9yOiAjZmZmO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWJ1dHRvbjpob3ZlciB7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xcyBlYXNlLWluO1xuICBiYWNrZ3JvdW5kOiAjMjU4M2QzO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KTtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tYnV0dG9uIGE6Zm9jdXMsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWJ1dHRvbjpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBidXR0b24uaW0tZmFiIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDQ2cHg7XG4gIHdpZHRoOiA0NnB4O1xuICBmbGV4OiAwIDAgNTZweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDRweDtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBmb250LXNpemU6IDIwcHg7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgMXB4IDEwcHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpLCAwIDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMik7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBidXR0b24uaW0tZmFiOmZvY3VzIHtcbiAgb3V0bGluZTogMDtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBidXR0b24uaW0tZmFiOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCk7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgYnV0dG9uLmltLWZhYi5pbS1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZDogIzM1OGZkYztcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBidXR0b24uaW0tZmFiLmltLXByaW1hcnk6aG92ZXIge1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMXMgZWFzZS1pbjtcbiAgYmFja2dyb3VuZDogIzI1ODNkMztcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBidXR0b24uaW0tZmFiLmltLXdhcm4ge1xuICBiYWNrZ3JvdW5kOiAjZTAxZjc0O1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGJ1dHRvbi5pbS1mYWIuaW0td2Fybjpob3ZlciB7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xcyBlYXNlLWluO1xuICBiYWNrZ3JvdW5kOiAjY2ExYzY4O1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGEge1xuICBjb2xvcjogd2hpdGU7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgYnV0dG9uLmltLWZhYi5hZGQta3Bpcyxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBidXR0b24uaW0tZmFiLmVkaXQta3Bpcyxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBidXR0b24uaW0tZmFiLnRvZ2dsZS1zaG93LWNvbnRlbnQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiA0MHB4O1xuICBoZWlnaHQ6IDQwcHg7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMjhzIGVhc2UtaW47XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgYnV0dG9uLmltLWZhYi5hZGQta3Bpcy5pbS1wcmltYXJ5LFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGJ1dHRvbi5pbS1mYWIuZWRpdC1rcGlzLmltLXByaW1hcnksXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgYnV0dG9uLmltLWZhYi50b2dnbGUtc2hvdy1jb250ZW50LmltLXByaW1hcnkge1xuICBiYWNrZ3JvdW5kOiAjNGM0NzQ5O1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGJ1dHRvbi5pbS1mYWIuYWRkLWtwaXMuaW0tcHJpbWFyeS5kaXNhYmxlZCxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBidXR0b24uaW0tZmFiLmVkaXQta3Bpcy5pbS1wcmltYXJ5LmRpc2FibGVkLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGJ1dHRvbi5pbS1mYWIudG9nZ2xlLXNob3ctY29udGVudC5pbS1wcmltYXJ5LmRpc2FibGVkIHtcbiAgYmFja2dyb3VuZDogI2IyYjVjMTtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBidXR0b24uaW0tZmFiLmFkZC1rcGlzLmltLXByaW1hcnkuZGlzYWJsZWQgYSxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBidXR0b24uaW0tZmFiLmVkaXQta3Bpcy5pbS1wcmltYXJ5LmRpc2FibGVkIGEsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgYnV0dG9uLmltLWZhYi50b2dnbGUtc2hvdy1jb250ZW50LmltLXByaW1hcnkuZGlzYWJsZWQgYSB7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgYnV0dG9uLmltLWZhYi5hZGQta3Bpcy5pbS1wcmltYXJ5OmhvdmVyOm5vdCguZGlzYWJsZWQpLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGJ1dHRvbi5pbS1mYWIuZWRpdC1rcGlzLmltLXByaW1hcnk6aG92ZXI6bm90KC5kaXNhYmxlZCksXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgYnV0dG9uLmltLWZhYi50b2dnbGUtc2hvdy1jb250ZW50LmltLXByaW1hcnk6aG92ZXI6bm90KC5kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiBibGFjaztcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBidXR0b24uaW0tZmFiLnRvZ2dsZS1zaG93LWNvbnRlbnQge1xuICB0b3A6IC0xNXB4O1xuICByaWdodDogLTE1cHg7XG4gIHotaW5kZXg6IDEwO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjc1cHgpIHtcbiAgLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGJ1dHRvbi5pbS1mYWIudG9nZ2xlLXNob3ctY29udGVudCB7XG4gICAgdG9wOiAtMzBweDtcbiAgICByaWdodDogLTE0cHg7XG4gICAgYm90dG9tOiAwO1xuICB9XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgYnV0dG9uLmltLWZhYi5hZGQta3BpcyB7XG4gIHRvcDogMzBweDtcbiAgcmlnaHQ6IC0xNXB4O1xuICB6LWluZGV4OiAxMDtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY3NXB4KSB7XG4gIC5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBidXR0b24uaW0tZmFiLmFkZC1rcGlzIHtcbiAgICB0b3A6IC0zMHB4O1xuICAgIHJpZ2h0OiAzM3B4O1xuICAgIGJvdHRvbTogMDtcbiAgfVxufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGJ1dHRvbi5pbS1mYWIuZWRpdC1rcGlzIHtcbiAgdG9wOiA3NXB4O1xuICByaWdodDogLTE1cHg7XG4gIHotaW5kZXg6IDEwO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGJ1dHRvbi5pbS1mYWIuZWRpdC1rcGlzLmVkaXRpbmcge1xuICBiYWNrZ3JvdW5kOiAjMzU4ZmRjO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGJ1dHRvbi5pbS1mYWIuZWRpdC1rcGlzLmVkaXRpbmc6aG92ZXI6bm90KC5kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiAjNzZiM2U3O1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjc1cHgpIHtcbiAgLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGJ1dHRvbi5pbS1mYWIuZWRpdC1rcGlzIHtcbiAgICB0b3A6IC0zMHB4O1xuICAgIHJpZ2h0OiA3OXB4O1xuICAgIGJvdHRvbTogMDtcbiAgfVxufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5jb250ZW50LWJ1dHRvbnMge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmNvbnRlbnQge1xuICBwYWRkaW5nOiAxNXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgYm94LXNoYWRvdzogMHB4IDFweCA4cHggLTRweDtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDcyNXB4KSB7XG4gIC5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuY29udGVudCB7XG4gICAgcGFkZGluZzogMCA2MHB4O1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NzVweCkge1xuICAuYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmNvbnRlbnQge1xuICAgIG1hcmdpbi10b3A6IDI1cHg7XG4gIH1cbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuY29udGVudCAuaW1wYWMta3BpIHtcbiAgcGFkZGluZy1sZWZ0OiA1cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDVweDtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAuYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmNvbnRlbnQgLmltcGFjLWtwaSB7XG4gICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7XG4gIH1cbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuY29udGVudCAuaW1wYWMta3BpIC5rcGkuYWRkIC5rcGktc2hvdyAuY2FwdGlvbiB7XG4gIHdoaXRlLXNwYWNlOiBpbmhlcml0O1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5jb250ZW50IC50aXRsZSAudGV4dC1jZW50ZXIge1xuICBsaW5lLWhlaWdodDogMztcbiAgZm9udC12YXJpYW50OiBzbWFsbC1jYXBzO1xuICBmb250LXNpemU6IGxhcmdlcjtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuY29udGVudCAudGl0bGUgLmJhZGdlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDhweDtcbiAgbGVmdDogLTEwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkMWU1NWM7XG4gIGNvbG9yOiAjNGY1OTU5O1xuICBib3gtc2hhZG93OiAwcHggMXB4IDNweCAtMXB4O1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5jb250ZW50IC50aXRsZSAubm8ta3BpLXRlbXBsYXRlcyB7XG4gIGNvbG9yOiAjYWZhZGI1O1xuICBmb250LXdlaWdodDogNTAwO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5jb250ZW50IC5hZGQtYmFyIHtcbiAgYm9yZGVyLWJvdHRvbTogZGFzaGVkIDFweDtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuY29udGVudCAua3BpLWxvYWRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBtaW4taGVpZ2h0OiAxMTVweDtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuY29udGVudCAuZGF0ZXMtcGlja2VyLWNvbnRhaW5lciB7XG4gIHdpZHRoOiA0MCU7XG4gIG1hcmdpbjogMCBhdXRvO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5jb250ZW50IC5kYXRlcy1waWNrZXItY29udGFpbmVyIC5zZHAtZnJvbS1sYWJlbCxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuY29udGVudCAuZGF0ZXMtcGlja2VyLWNvbnRhaW5lciAuc2RwLXRvLWxhYmVsIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua2V5LXN0YXRzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIHBhZGRpbmc6IDVweCAwcHg7XG59XG4uYW5hbHl0aWNzLnBkZi1tb2RlIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMge1xuICBkaXNwbGF5OiBub25lO1xufVxuLndpZGdldC1pdGVtIHtcbiAgdHJhbnNpdGlvbjogd2lkdGggMC4zcztcbiAgcGFkZGluZzogMTJweDtcbn1cbi53aWRnZXQtaXRlbS5wZGYtbW9kZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAxMnB4IDBweDtcbn1cbi53aWRnZXQtaXRlbSAudG9wLWxpbmUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGN1cnNvcjogbW92ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIHBhZGRpbmc6IDlweCA5cHggMHB4IDEycHg7XG4gIGJvcmRlci1yYWRpdXM6IDVweCA1cHggMHB4IDBweDtcbiAgYm9yZGVyOiBzb2xpZCAxcHggI2M4ZDdkOTtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgbWluLWhlaWdodDogNDFweDtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwcHggMXB4IDhweCAtNHB4O1xuICBib3gtc2hhZG93OiAwcHggMXB4IDhweCAtNHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICB6LWluZGV4OiA0O1xufVxuLndpZGdldC1pdGVtIC5jb250ZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiA5cHg7XG4gIGJvcmRlci1yYWRpdXM6IDBweCAwcHggNXB4IDVweDtcbiAgYm9yZGVyOiBzb2xpZCAxcHggI2M4ZDdkOTtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogMHB4IDFweCA4cHggLTRweDtcbiAgYm94LXNoYWRvdzogMHB4IDFweCA4cHggLTRweDtcbiAgbWluLWhlaWdodDogMjUwcHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLndpZGdldC1pdGVtIC5jb250ZW50IHtcbiAgICBoZWlnaHQ6IDI1MHB4O1xuICB9XG4gIC53aWRnZXQtaXRlbSAuY29udGVudCAuY2hhcnQtY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDI3MHB4O1xuICAgIG1heC1oZWlnaHQ6IDEyNXB4O1xuICAgIG1hcmdpbjogYXV0bztcbiAgfVxufVxuLndpZGdldC1pdGVtIC5jb250ZW50IC5lZGl0IHtcbiAgbWF4LWhlaWdodDogMjMwcHg7XG59XG4ud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLmVkaXQge1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIGNvbG9yOiAjNUI2NjY3O1xuICBwYWRkaW5nOiAycHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbi53aWRnZXQtaXRlbSAuY29udGVudCAuZWRpdCAuYm90dG9tLWJ1dHRvbnMgLmJ0biB7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gIHBhZGRpbmc6IDNweCAxM3B4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LXNpemU6IDEycHg7XG59XG4ud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLmVkaXQgLmJvdHRvbS1idXR0b25zIC5idG4uYnRuLWRlZmF1bHQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzJjNGM0O1xuICBib3JkZXI6IHNvbGlkIDFweCAjYThhYmFiO1xuICBjb2xvcjogd2hpdGU7XG59XG4ud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLmVkaXQgLmJvdHRvbS1idXR0b25zIC5idG4uYnRuLWRlZmF1bHQ6aG92ZXIge1xuICBib3JkZXI6IHNvbGlkIDFweCAjOGU5MjkyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYThhYmFiO1xufVxuLndpZGdldC1pdGVtIC5jb250ZW50IC5lZGl0IGg0IHtcbiAgbWFyZ2luOiAwO1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6ICNjNGNhY2E7XG59XG4ud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLmVkaXQgLnBhcnQge1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gIHBhZGRpbmc6IDEwcHggMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmNmY2ZjO1xuICBib3JkZXI6IHNvbGlkIDFweCAjZGZlMmUyO1xufVxuLndpZGdldC1pdGVtIC5jb250ZW50IC5lZGl0IC5wYXJ0IGg1IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgcGFkZGluZzogMHB4IDE1cHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6ICNjNGNhY2E7XG59XG4ud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLmVkaXQgLnBhcnQgbGFiZWwge1xuICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuLndpZGdldC1pdGVtIC5jb250ZW50IC5lZGl0IC5wYXJ0IHNlbGVjdC5mb3JtLWNvbnRyb2wge1xuICBtYXJnaW46IDBweDtcbiAgYm9yZGVyOiBzb2xpZCAxcHggI2FjYjBiMTtcbiAgb3V0bGluZTogbm9uZTtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGNvbG9yOiAjNzI3MjhiO1xufVxuLndpZGdldC1pdGVtIC5jb250ZW50LmFjY2Vzc2libGUge1xuICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgbWluLWhlaWdodDogMjUwcHggIWltcG9ydGFudDtcbiAgbWF4LWhlaWdodDogYXV0byAhaW1wb3J0YW50O1xufVxuLndpZGdldC1pdGVtIC5jb250ZW50IC5jb250ZW50LXRlbXBsYXRlLXdyYXBwZXIge1xuICBoZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93OiBhdXRvO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG59XG4ud2lkZ2V0LWl0ZW0ucGRmLW1vZGUgLmNvbnRlbnQge1xuICBoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDtcbiAgbWluLWhlaWdodDogMjUwcHggIWltcG9ydGFudDtcbiAgbWF4LWhlaWdodDogbm9uZSAhaW1wb3J0YW50O1xufVxuLndpZGdldC1pdGVtLnBkZi1tb2RlIC5jb250ZW50IC5jb2xsYXBzZSB7XG4gIGRpc3BsYXk6IGluaGVyaXQ7XG59XG4ud2lkZ2V0LWl0ZW0ucGRmLW1vZGUgLmNvbnRlbnQgLmZhLXBsdXMtc3F1YXJlLW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNDdcIjtcbn1cbi53aWRnZXQtaXRlbS5wZGYtbW9kZSAuY29udGVudCAubGVnZW5kIHtcbiAgbWF4LWhlaWdodDogbm9uZSAhaW1wb3J0YW50O1xufVxuLndpZGdldC1pdGVtLnBkZi1tb2RlIC5jb250ZW50IC5jaGFydC1jb250YWluZXIge1xuICBtYXgtaGVpZ2h0OiBub25lO1xufVxuLndpZGdldC1pdGVtLnBkZi1tb2RlIC5jb250ZW50IC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogbm9uZSAhaW1wb3J0YW50O1xufVxuLndpZGdldC1pdGVtLnBkZi1tb2RlIC5jb250ZW50IC5kYXRhLW5vdC1mb3VuZCAubWVzc2FnZSB7XG4gIHBvc2l0aW9uOiBpbmhlcml0O1xuICB3aWR0aDogMTAwJTtcbn1cbi53aWRnZXQtaXRlbS5wZGYtbW9kZSAuaW5jbHVkZS10by1wZGYudGl0bGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSAyKjEycHggKTtcbiAgei1pbmRleDogMztcbiAgcGFkZGluZy1yaWdodDogMXB4O1xufVxuLndpZGdldC1pdGVtLnBkZi1tb2RlIC5pbmNsdWRlLXRvLXBkZi50aXRsZSBoNiB7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkM5Mjg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luOiAwO1xufVxuLndpZGdldC1pdGVtLnBkZi1tb2RlIC5pbmNsdWRlLXRvLXBkZi50aWNrIGkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMzUlO1xuICBsZWZ0OiA0NiU7XG4gIGZvbnQtc2l6ZTogMTAwcHg7XG4gIG9wYWNpdHk6IC41O1xuICB6LWluZGV4OiAyO1xuICBjb2xvcjogYmxhY2s7XG59XG4ud2lkZ2V0LWl0ZW0ucGRmLW1vZGUgLmluY2x1ZGUtdG8tcGRmIC53aWRnZXQtaG92ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBhZGRpbmc6IDlweDtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgZWFzZSAuNXM7XG4gIC1tb3otdHJhbnNpdGlvbjogYWxsIGVhc2UgLjVzO1xuICB0cmFuc2l0aW9uOiBhbGwgZWFzZSAuNXM7XG4gIHotaW5kZXg6IDE7XG59XG4ud2lkZ2V0LWl0ZW0ucGRmLW1vZGUgLmluY2x1ZGUtdG8tcGRmIC53aWRnZXQtaG92ZXI6aG92ZXIge1xuICBvcGFjaXR5OiAuNTtcbiAgYmFja2dyb3VuZDogI0NDQ0ZEMDtcbn1cbi53aWRnZXQtaXRlbSAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmUgPiBbY2xhc3MqPSdjb2wtJ10ge1xuICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLmRhdGEtbm90LWZvdW5kLFxuLmFuYWx5dGljcyAua3BpIC5kYXRhLW5vdC1mb3VuZCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBjb2xvcjogIzVCNjY2Nztcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5kYXRhLW5vdC1mb3VuZCAub3ZlcmxheSxcbi5hbmFseXRpY3MgLmtwaSAuZGF0YS1ub3QtZm91bmQgLm92ZXJsYXkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDRweCk7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSA0cHgpO1xuICB0b3A6IDJweDtcbiAgbGVmdDogMnB4O1xuICBvcGFjaXR5OiAwLjY7XG4gIHotaW5kZXg6IDM7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuZGF0YS1ub3QtZm91bmQgLm1lc3NhZ2UsXG4uYW5hbHl0aWNzIC5rcGkgLmRhdGEtbm90LWZvdW5kIC5tZXNzYWdlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDEyNXB4O1xuICBsZWZ0OiA1MCU7XG4gIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgd2lkdGg6IDg1JTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0ZjhmOTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDI1cHggMHB4O1xuICB6LWluZGV4OiA0O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLmRhdGEtbm90LWZvdW5kIC5tZXNzYWdlIC50aXRsZSxcbi5hbmFseXRpY3MgLmtwaSAuZGF0YS1ub3QtZm91bmQgLm1lc3NhZ2UgLnRpdGxlIHtcbiAgcGFkZGluZzogMnB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTkyODMxO1xuICBjb2xvcjogd2hpdGU7XG4gIG1hcmdpbjogLTFweCAtMXB4IDEwcHggLTFweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5kYXRhLW5vdC1mb3VuZCAubWVzc2FnZSBwLFxuLmFuYWx5dGljcyAua3BpIC5kYXRhLW5vdC1mb3VuZCAubWVzc2FnZSBwIHtcbiAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgbWFyZ2luLXJpZ2h0OiA1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuZGF0YS1ub3QtZm91bmQgLm1lc3NhZ2UgLmJ0bixcbi5hbmFseXRpY3MgLmtwaSAuZGF0YS1ub3QtZm91bmQgLm1lc3NhZ2UgLmJ0biB7XG4gIG1hcmdpbi10b3A6IDVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5kYXRhLW5vdC1mb3VuZCAuZXhhbXBsZSxcbi5hbmFseXRpY3MgLmtwaSAuZGF0YS1ub3QtZm91bmQgLmV4YW1wbGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMHB4O1xuICBsZWZ0OiAwcHg7XG4gIHdpZHRoOiAxMDAlO1xuICBjb2xvcjogd2hpdGU7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxOTI4MzE7XG4gIHBhZGRpbmc6IDNweDtcbiAgei1pbmRleDogNjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5kYXRhLW5vdC1mb3VuZCAuZXhhbXBsZSBhLFxuLmFuYWx5dGljcyAua3BpIC5kYXRhLW5vdC1mb3VuZCAuZXhhbXBsZSBhIHtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgY29sb3I6ICNkYWUxNzM7XG59XG4uYW5hbHl0aWNzIC5rcGkgLmRhdGEtbm90LWZvdW5kIC5tZXNzYWdlIHtcbiAgd2lkdGg6IDkwJTtcbiAgcGFkZGluZy1ib3R0b206IDBweDtcbiAgYm9yZGVyOiBzb2xpZCAxcHggc2lsdmVyO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLmFuYWx5dGljcyAua3BpIC5kYXRhLW5vdC1mb3VuZCAubWVzc2FnZSBwIHtcbiAgbWFyZ2luOiA1cHg7XG59XG4uYW5hbHl0aWNzIC5rcGkgLmRhdGEtbm90LWZvdW5kIC5vdmVybGF5LFxuLmFuYWx5dGljcyAua3BpIC5kYXRhLW5vdC1mb3VuZCAudGl0bGUsXG4uYW5hbHl0aWNzIC5rcGkgLmRhdGEtbm90LWZvdW5kIC5idG4sXG4uYW5hbHl0aWNzIC5rcGkgLmRhdGEtbm90LWZvdW5kIC5leGFtcGxlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbiNkdXBsaWNhdGUtdHJhbnNhY3Rpb25zLWxpc3QgLnRvcCB7XG4gIGhlaWdodDogNDBweDtcbn1cbiNkdXBsaWNhdGUtdHJhbnNhY3Rpb25zLWxpc3QgLnRvcCBhLmJhY2stbGluayB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG4jZHVwbGljYXRlLXRyYW5zYWN0aW9ucy1saXN0IC50b3AgLnBhZ2luYXRpb24ge1xuICBtYXJnaW46IDBweDtcbn1cbiNkdXBsaWNhdGUtdHJhbnNhY3Rpb25zLWxpc3QgLnRhYmxlLXN0cmlwZWQgdHIub3JpZ2luOm50aC1vZi10eXBlKG9kZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmOWY5O1xufVxuI2R1cGxpY2F0ZS10cmFuc2FjdGlvbnMtbGlzdCAudGFibGUtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogY2FsYyg1NjVweCAtIDYwcHgpO1xuICBvdmVyZmxvdzogYXV0bztcbn1cbiNkdXBsaWNhdGUtdHJhbnNhY3Rpb25zLWxpc3QgLnRhYmxlLWNvbnRhaW5lciBkaXZbdWliLWRhdGVwaWNrZXItcG9wdXAtd3JhcF0ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4jZHVwbGljYXRlLXRyYW5zYWN0aW9ucy1saXN0IC50YWJsZS1jb250YWluZXIgaW5wdXQuYnRuLmJ0bi14cyB7XG4gIG1hcmdpbi10b3A6IC0ycHg7XG59XG4jZHVwbGljYXRlLXRyYW5zYWN0aW9ucy1saXN0IC50YWJsZS1jb250YWluZXIgYnV0dG9uLmJ0bi5yZXNldC1kYXRlIHtcbiAgbWFyZ2luLXRvcDogLTJweDtcbn1cbiNkdXBsaWNhdGUtdHJhbnNhY3Rpb25zLWxpc3QgLnRhYmxlLWNvbnRhaW5lciAuZmEuZmEtdGltZXMge1xuICBjb2xvcjogI2UwMWY3NDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuI2R1cGxpY2F0ZS10cmFuc2FjdGlvbnMtbGlzdCAudGFibGUtY29udGFpbmVyIHRyLnRvdGFsIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4jZHVwbGljYXRlLXRyYW5zYWN0aW9ucy1saXN0IC50YWJsZS1jb250YWluZXIgdHIudG90YWwuaW52b2ljZXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBlNjAwO1xufVxuI2R1cGxpY2F0ZS10cmFuc2FjdGlvbnMtbGlzdCAudGFibGUtY29udGFpbmVyIHRyLnRvdGFsLmJpbGxzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y1N2NiMTtcbn1cbiN0cmFuc2FjdGlvbnMtYWRkIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGNvbG9yOiAjNUI2NjY3O1xufVxuI3RyYW5zYWN0aW9ucy1hZGQgLm92ZXJsYXkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDRweCk7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSA0cHgpO1xuICB0b3A6IDJweDtcbiAgbGVmdDogMnB4O1xuICBvcGFjaXR5OiAwLjY7XG4gIHotaW5kZXg6IDU7XG59XG4jdHJhbnNhY3Rpb25zLWFkZCAubWVzc2FnZSB7XG4gIHotaW5kZXg6IDY7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbWluLWhlaWdodDogMTYwcHg7XG4gIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuICB0b3A6IDQ1cHg7XG4gIGxlZnQ6IDclO1xuICB3aWR0aDogODYlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjRmOGY5O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMjVweCAwcHg7XG59XG4jdHJhbnNhY3Rpb25zLWFkZCAubWVzc2FnZSAudGl0bGUge1xuICBwYWRkaW5nOiAycHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxOTI4MzE7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgbWFyZ2luOiAtMXB4IC0xcHggMTBweCAtMXB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuI3RyYW5zYWN0aW9ucy1hZGQgLm1lc3NhZ2Uge1xuICB0b3A6IDMwcHg7XG4gIGxlZnQ6IDM1JTtcbiAgd2lkdGg6IDMwJTtcbn1cbiN0cmFuc2FjdGlvbnMtYWRkIC5tZXNzYWdlIC5mb3JtIHtcbiAgcGFkZGluZzogMHB4IDEwcHg7XG59XG4jdHJhbnNhY3Rpb25zLWFkZCAubWVzc2FnZSAuZm9ybSA+IGxhYmVsLFxuI3RyYW5zYWN0aW9ucy1hZGQgLm1lc3NhZ2UgLmZvcm0gLnNjaGVkdWxhYmxlLXNlY3Rpb24gPiBsYWJlbCB7XG4gIHBhZGRpbmctdG9wOiAxMHB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBtYXJnaW4tYm90dG9tOiAzcHg7XG59XG4jdHJhbnNhY3Rpb25zLWFkZCAubWVzc2FnZSAuZm9ybSBpbnB1dC5mb3JtLWNvbnRyb2wsXG4jdHJhbnNhY3Rpb25zLWFkZCAubWVzc2FnZSAuZm9ybSBzZWxlY3QuZm9ybS1jb250cm9sIHtcbiAgd2lkdGg6IDkwJTtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBoZWlnaHQ6IDI4cHg7XG4gIGZvbnQtc2l6ZTogMTNweDtcbn1cbiN0cmFuc2FjdGlvbnMtYWRkIC5tZXNzYWdlIC5mb3JtIC5idG4tZ3JvdXAge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWluLWhlaWdodDogMjJweDtcbn1cbiN0cmFuc2FjdGlvbnMtYWRkIC5tZXNzYWdlIC5mb3JtIC5idG4tZ3JvdXAgc2VsZWN0IHtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBoZWlnaHQ6IDI4cHg7XG4gIG1hcmdpbi10b3A6IDBweDtcbn1cbiN0cmFuc2FjdGlvbnMtYWRkIC5tZXNzYWdlIC5mb3JtIC5kaXNhYmxlIHtcbiAgY29sb3I6ICM4ODg4ODg7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cbiN0cmFuc2FjdGlvbnMtYWRkIC5tZXNzYWdlIC5mb3JtIC5uZXZlci1kaXNhYmxlIHtcbiAgY29sb3I6IGJsYWNrO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG4jdHJhbnNhY3Rpb25zLWFkZCAubWVzc2FnZSAuZm9ybSAucmVwZWF0LWJ0biB7XG4gIG1hcmdpbi10b3A6IDMwcHg7XG59XG4jdHJhbnNhY3Rpb25zLWFkZCAubWVzc2FnZSAuZm9ybSAucmVwZWF0LWJ0biBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICB2ZXJ0aWNhbC1hbGlnbjogdGV4dC1ib3R0b207XG4gIG1hcmdpbjogMHB4O1xufVxuI3RyYW5zYWN0aW9ucy1hZGQgLm1lc3NhZ2UgLmZvcm0gLnJlcGVhdC1idG4gc2VsZWN0IHtcbiAgaGVpZ2h0OiAyMnB4O1xufVxuI3RyYW5zYWN0aW9ucy1hZGQgLm1lc3NhZ2UgLmZvcm0gLnJlcGVhdC1idG4gLmJ0biB7XG4gIGZsb2F0OiBub25lO1xuICBib3JkZXItY29sb3I6ICM4ODg4ODg7XG59XG4jdHJhbnNhY3Rpb25zLWFkZCAubWVzc2FnZSAuZm9ybSAuc2NoZWR1bGFibGUtc2VjdGlvbiB7XG4gIHBhZGRpbmc6IDVweDtcbiAgYm9yZGVyOiBzb2xpZCAxcHggc2lsdmVyO1xuICBtYXJnaW4tdG9wOiAwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuI3RyYW5zYWN0aW9ucy1hZGQgLm1lc3NhZ2UgLmZvcm0gLnNjaGVkdWxhYmxlLXNlY3Rpb24gLmJhZGdlIHtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzg4ODg4ODtcbn1cbiN0cmFuc2FjdGlvbnMtYWRkIC5tZXNzYWdlIC5mb3JtIC5zY2hlZHVsYWJsZS1zZWN0aW9uIC5pbnRlcnZhbC1maWVsZCB7XG4gIHdpZHRoOiA0MHB4O1xufVxuI3RyYW5zYWN0aW9ucy1hZGQgLm1lc3NhZ2UgLmZvcm0gLnNjaGVkdWxhYmxlLXNlY3Rpb24gLmJ0bi1ncm91cCB7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xufVxuI3RyYW5zYWN0aW9ucy1hZGQgLm1lc3NhZ2UgLmZvcm0gLnNjaGVkdWxhYmxlLXNlY3Rpb24gLmJ0bi1ncm91cCBzZWxlY3Qge1xuICBoZWlnaHQ6IDIycHg7XG59XG4jdHJhbnNhY3Rpb25zLWFkZCAubWVzc2FnZSAuZm9ybSAuc2NoZWR1bGFibGUtc2VjdGlvbiAuYnRuLWdyb3VwIC5idG4ge1xuICBmbG9hdDogbm9uZTtcbiAgYm9yZGVyLWNvbG9yOiAjODg4ODg4O1xufVxuI3RyYW5zYWN0aW9ucy1hZGQgLm1lc3NhZ2UgLmJvdHRvbSB7XG4gIG1hcmdpbi10b3A6IDIwcHg7XG59XG4jdHJhbnNhY3Rpb25zLWxpc3QgLnRvcCB7XG4gIGhlaWdodDogNDBweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuI3RyYW5zYWN0aW9ucy1saXN0IC50b3AgLmJhY2sge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG4jdHJhbnNhY3Rpb25zLWxpc3QgLnRvcCAucmVzb3VyY2UtdHlwZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogY2FsYyg1MCUgLSA5OHB4KTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAjdHJhbnNhY3Rpb25zLWxpc3QgLnRvcCAucmVzb3VyY2UtdHlwZSB7XG4gICAgbGVmdDogdW5zZXQ7XG4gICAgcmlnaHQ6IDA7XG4gIH1cbn1cbiN0cmFuc2FjdGlvbnMtbGlzdCAudG9wIC5idG4tZ3JvdXAge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuI3RyYW5zYWN0aW9ucy1saXN0IC5ib3R0b20ge1xuICBoZWlnaHQ6IDQwcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuI3RyYW5zYWN0aW9ucy1saXN0IC5ib3R0b20gLnBhZ2luYXRpb24ge1xuICBtYXJnaW46IDBweDtcbn1cbiN0cmFuc2FjdGlvbnMtbGlzdCAudGFibGUtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogY2FsYyg1NjVweCAtIDEwMHB4KTtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIHdpZHRoOiAxMDAlO1xufVxuI3RyYW5zYWN0aW9ucy1saXN0IC50YWJsZS1jb250YWluZXIgZGl2W3VpYi1kYXRlcGlja2VyLXBvcHVwLXdyYXBdIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuI3RyYW5zYWN0aW9ucy1saXN0IC50YWJsZS1jb250YWluZXIgaW5wdXQuYnRuLmJ0bi14cyB7XG4gIG1hcmdpbi10b3A6IC0ycHg7XG59XG4jdHJhbnNhY3Rpb25zLWxpc3QgLnRhYmxlLWNvbnRhaW5lciBidXR0b24uYnRuLnJlc2V0LWRhdGUge1xuICBtYXJnaW4tdG9wOiAtMnB4O1xufVxuI3RyYW5zYWN0aW9ucy1saXN0IC50YWJsZS1jb250YWluZXIgLmFjdGlvbnMge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4jdHJhbnNhY3Rpb25zLWxpc3QgLnRhYmxlLWNvbnRhaW5lciAuYWN0aW9ucyAuZmEuZmEtdGltZXMge1xuICBjb2xvcjogI2UwMWY3NDtcbn1cbiN0cmFuc2FjdGlvbnMtbGlzdCAudGFibGUtY29udGFpbmVyIHRyLnRvdGFsIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4jdHJhbnNhY3Rpb25zLWxpc3QgLnRhYmxlLWNvbnRhaW5lciB0ci50b3RhbC5pbnZvaWNlcyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjMWQxYjE7XG59XG4jdHJhbnNhY3Rpb25zLWxpc3QgLnRhYmxlLWNvbnRhaW5lciB0ci50b3RhbC5iaWxscyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlMmFlYjk7XG59XG4jdHJhbnNhY3Rpb25zLWxpc3QgLnRhYmxlLWNvbnRhaW5lciB0ZCA+IC5leHBlY3RlZC1wYXltZW50LWRhdGUge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuI3RyYW5zYWN0aW9ucy1saXN0IC50YWJsZS1jb250YWluZXIgdGQgPiAuZXhwZWN0ZWQtcGF5bWVudC1kYXRlIC5yZXNldC1kYXRlIHtcbiAgbWFyZ2luLWxlZnQ6IDNweDtcbn1cbiN0cmVuZHMtYWRkIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGNvbG9yOiAjNUI2NjY3O1xufVxuI3RyZW5kcy1hZGQgLm92ZXJsYXkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDRweCk7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSA0cHgpO1xuICB0b3A6IDJweDtcbiAgbGVmdDogMnB4O1xuICBvcGFjaXR5OiAwLjY7XG4gIHotaW5kZXg6IDU7XG59XG4jdHJlbmRzLWFkZCAubWVzc2FnZSB7XG4gIHotaW5kZXg6IDY7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbWluLWhlaWdodDogMTYwcHg7XG4gIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuICB0b3A6IDQ1cHg7XG4gIGxlZnQ6IDclO1xuICB3aWR0aDogODYlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjRmOGY5O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMjVweCAwcHg7XG59XG4jdHJlbmRzLWFkZCAubWVzc2FnZSAudGl0bGUge1xuICBwYWRkaW5nOiAycHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxOTI4MzE7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgbWFyZ2luOiAtMXB4IC0xcHggMTBweCAtMXB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuI3RyZW5kcy1hZGQgLm1lc3NhZ2Uge1xuICB0b3A6IDMwcHg7XG4gIGxlZnQ6IDM1JTtcbiAgd2lkdGg6IDMwJTtcbn1cbiN0cmVuZHMtYWRkIC5tZXNzYWdlIC5mb3JtIHtcbiAgcGFkZGluZzogMHB4IDEwcHg7XG59XG4jdHJlbmRzLWFkZCAubWVzc2FnZSAuZm9ybSA+IGxhYmVsIHtcbiAgcGFkZGluZy10b3A6IDEwcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIG1hcmdpbi1ib3R0b206IDNweDtcbn1cbiN0cmVuZHMtYWRkIC5tZXNzYWdlIC5mb3JtIGlucHV0LmZvcm0tY29udHJvbCB7XG4gIHdpZHRoOiA5MCU7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgaGVpZ2h0OiAyOHB4O1xuICBmb250LXNpemU6IDEzcHg7XG59XG4jdHJlbmRzLWFkZCAubWVzc2FnZSAuZm9ybSAuYnRuLWdyb3VwIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1pbi1oZWlnaHQ6IDIycHg7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG59XG4jdHJlbmRzLWFkZCAubWVzc2FnZSAuZm9ybSAuYnRuLWdyb3VwID4gLmJ0biB7XG4gIGZsb2F0OiBub25lO1xufVxuI3RyZW5kcy1hZGQgLm1lc3NhZ2UgLmZvcm0gLmJ0bi1ncm91cCBpbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICBtYXJnaW46IDRweCAwIDEwcHg7XG59XG4jdHJlbmRzLWFkZCAubWVzc2FnZSAuYm90dG9tIHtcbiAgbWFyZ2luLXRvcDogMjBweDtcbn1cbiN0cmVuZHMtbGlzdCAudG9wIHtcbiAgaGVpZ2h0OiA0MHB4O1xufVxuI3RyZW5kcy1saXN0IC50b3AgYS5iYWNrLWxpbmsge1xuICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuI3RyZW5kcy1saXN0IC50b3AgLnBhZ2luYXRpb24ge1xuICBtYXJnaW46IDBweDtcbn1cbiN0cmVuZHMtbGlzdCAudGFibGUtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogY2FsYyg1NjVweCAtIDYwcHgpO1xuICBvdmVyZmxvdzogYXV0bztcbn1cbiN0cmVuZHMtbGlzdCAudGFibGUtY29udGFpbmVyIGRpdlt1aWItZGF0ZXBpY2tlci1wb3B1cC13cmFwXSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbiN0cmVuZHMtbGlzdCAudGFibGUtY29udGFpbmVyIGlucHV0LmJ0bi5idG4teHMge1xuICBtYXJnaW4tdG9wOiAtMnB4O1xufVxuI3RyZW5kcy1saXN0IC50YWJsZS1jb250YWluZXIgYnV0dG9uLmJ0bi5yZXNldC1kYXRlIHtcbiAgbWFyZ2luLXRvcDogLTJweDtcbn1cbi5hbmFseXRpY3MgLmRhc2hib2FyZC1zZXR0aW5ncy5jdXJyZW5jeSB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuLmFuYWx5dGljcyAuZGFzaGJvYXJkLXNldHRpbmdzLmN1cnJlbmN5IHNlbGVjdCB7XG4gIG1hcmdpbi10b3A6IDRweDtcbn1cbi5hbmFseXRpY3MgLmRhc2hib2FyZC1zZXR0aW5ncy5zeW5jLWFwcHMgLnNob3ctc3RhdHVzIHtcbiAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gIGNvbG9yOiAjOWJhNmE3O1xufVxuLmFuYWx5dGljcyAuZGFzaGJvYXJkLXNldHRpbmdzLnN5bmMtYXBwcyAuc2hvdy1zdGF0dXM6aG92ZXIge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuLmFuYWx5dGljcyAuZGFzaGJvYXJkLXNldHRpbmdzLnN5bmMtYXBwcyAuc2hvdy1zdGF0dXMgLmZhLmZhLWluZm8ge1xuICBtYXJnaW4tcmlnaHQ6IDJweDtcbn1cbi5hbmFseXRpY3MgLmRhc2hib2FyZC1zZXR0aW5ncy5zeW5jLWFwcHMgLnN0YXR1cy1idG4ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcGFkZGluZzogNXB4IDdweCA1cHggMHB4O1xufVxuLmFuYWx5dGljcyAuZGFzaGJvYXJkLXNldHRpbmdzLnN5bmMtYXBwcyAuc3RhdHVzLWJ0biBpIHtcbiAgZm9udC1zaXplOiAxNnB4O1xufVxuLmFuYWx5dGljcyAuZGFzaGJvYXJkLXNldHRpbmdzLnN5bmMtYXBwcyAuc3RhdHVzLWJ0biBpLmZhLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlIHtcbiAgY29sb3I6ICNmZjczMDA7XG59XG4uYW5hbHl0aWNzIC5kYXNoYm9hcmQtc2V0dGluZ3Muc3luYy1hcHBzIC5zdGF0dXMtYnRuIGkuZmEtY2hlY2sge1xuICBjb2xvcjogI2QxZTU1Yztcbn1cbi5hbmFseXRpY3MgLmRhc2hib2FyZC1zZXR0aW5ncy5zeW5jLWFwcHMgLnBvcG92ZXIge1xuICBtYXgtd2lkdGg6IDU1MHB4O1xufVxuLmFuYWx5dGljcyAuZGFzaGJvYXJkLXNldHRpbmdzLnN5bmMtYXBwcyAucG9wb3ZlciAuY29ubmVjdG9yIHtcbiAgcGFkZGluZzogNHB4IDEzcHg7XG59XG4uYW5hbHl0aWNzIC5kYXNoYm9hcmQtc2V0dGluZ3Muc3luYy1hcHBzIC5wb3BvdmVyIC5jb25uZWN0b3IuYWRkLXNlcGVyYXRvciB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjO1xufVxuLmFuYWx5dGljcyAuZGFzaGJvYXJkLXNldHRpbmdzLnN5bmMtYXBwcyAucG9wb3ZlciAucG9wb3Zlci1jb250ZW50IHtcbiAgcGFkZGluZzogMDtcbn1cbi5hbmFseXRpY3MgLmRhc2hib2FyZC1zZXR0aW5ncy5zeW5jLWFwcHMgLnBvcG92ZXIgLnBvcG92ZXItZm9vdGVyIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7XG4gIHBhZGRpbmc6IDRweCAxM3B4O1xufVxuLmFuYWx5dGljcyAuZGFzaGJvYXJkLXNldHRpbmdzLnN5bmMtYXBwcyAucG9wb3ZlciAucG9wb3Zlci1mb290ZXIgcCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBtYXJnaW46IDA7XG59XG4uYW5hbHl0aWNzIC5kYXNoYm9hcmQtc2V0dGluZ3Muc3luYy1hcHBzIC5wb3BvdmVyIC5wb3BvdmVyLWZvb3Rlci5yZW1vdmUtc2VwZXJhdG9yIHtcbiAgYm9yZGVyOiAwO1xufVxuLmFuYWx5dGljcyAuZGFzaGJvYXJkLXNldHRpbmdzLnN5bmMtYXBwcyAuYmFkZ2Uge1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbi1sZWZ0OiA4cHg7XG59XG4uYW5hbHl0aWNzIC5kYXNoYm9hcmQtc2V0dGluZ3Muc3luYy1hcHBzIC5zdWNjZXNzIC5iYWRnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkMWU1NWM7XG59XG4uYW5hbHl0aWNzIC5kYXNoYm9hcmQtc2V0dGluZ3Muc3luYy1hcHBzIC5wZW5kaW5nIC5iYWRnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjczMDA7XG59XG4uYW5hbHl0aWNzIC5kYXNoYm9hcmQtc2V0dGluZ3Muc3luYy1hcHBzIC5ydW5uaW5nIC5iYWRnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjczMDA7XG59XG4uYW5hbHl0aWNzIC5kYXNoYm9hcmQtc2V0dGluZ3Muc3luYy1hcHBzIC5lcnJvciAuYmFkZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWQxZTc5O1xufVxuLmFuYWx5dGljcyAuZGFzaGJvYXJkLXNldHRpbmdzLnN5bmMtYXBwcyAuZmFpbGVkIC5iYWRnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZDFlNzk7XG59XG4uYW5hbHl0aWNzIC5kYXNoYm9hcmQtc2V0dGluZ3Muc3luYy1hcHBzIC51bmtub3duIC5iYWRnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZDFlNzk7XG59XG4uYW5hbHl0aWNzIC5kYXNoYm9hcmQtc2V0dGluZ3Muc3luYy1hcHBzIC5kaXNjb25uZWN0ZWQgLmJhZGdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VkMWU3OTtcbn1cbiNzeW5jLWFwcHMtbW9kYWwgLm1vZGFsLWhlYWRlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYm9yZGVyOiAwO1xuICBib3gtc2hhZG93OiAwcHggMnB4IDNweCAwcHggI2NjYztcbn1cbiNzeW5jLWFwcHMtbW9kYWwgLm1vZGFsLWxpc3Qge1xuICBtYXgtaGVpZ2h0OiAyODBweDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbn1cbiNzeW5jLWFwcHMtbW9kYWwgLm1vZGFsLWxpc3QtaXRlbSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjO1xuICBwYWRkaW5nOiAxMHB4O1xufVxuI3N5bmMtYXBwcy1tb2RhbCAubW9kYWwtbGlzdC1pdGVtIC5iYWRnZSB7XG4gIGZsb2F0OiByaWdodDtcbn1cbiNzeW5jLWFwcHMtbW9kYWwgLm1vZGFsLWxpc3QtaXRlbS5zdWNjZXNzIC5iYWRnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkMWU1NWM7XG59XG4jc3luYy1hcHBzLW1vZGFsIC5tb2RhbC1saXN0LWl0ZW0ucGVuZGluZyAuYmFkZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY3MzAwO1xufVxuI3N5bmMtYXBwcy1tb2RhbCAubW9kYWwtbGlzdC1pdGVtLnJ1bm5pbmcgLmJhZGdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNzMwMDtcbn1cbiNzeW5jLWFwcHMtbW9kYWwgLm1vZGFsLWxpc3QtaXRlbS5lcnJvciAuYmFkZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWQxZTc5O1xufVxuI3N5bmMtYXBwcy1tb2RhbCAubW9kYWwtbGlzdC1pdGVtLmZhaWxlZCAuYmFkZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWQxZTc5O1xufVxuI3N5bmMtYXBwcy1tb2RhbCAubW9kYWwtbGlzdC1pdGVtLnVua25vd24gLmJhZGdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VkMWU3OTtcbn1cbiNzeW5jLWFwcHMtbW9kYWwgLm1vZGFsLWxpc3QtaXRlbS5kaXNjb25uZWN0ZWQgLmJhZGdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VkMWU3OTtcbn1cbiNzeW5jLWFwcHMtbW9kYWwgLm1vZGFsLWxpc3QtaXRlbSAubWVzc2FnZSB7XG4gIHBhZGRpbmc6IDNweDtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBtYXJnaW4tbGVmdDogMzFweDtcbiAgbWFyZ2luLXRvcDogOXB4O1xufVxuI3N5bmMtYXBwcy1tb2RhbCAubW9kYWwtbGlzdC1pdGVtIC5tZXNzYWdlIHAge1xuICBtYXJnaW46IDA7XG59XG4jc3luYy1hcHBzLW1vZGFsIC5tb2RhbC1saXN0LWl0ZW0uc3VjY2VzcyAubWVzc2FnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMjU1LCA1NSwgMC4wOCk7XG59XG4jc3luYy1hcHBzLW1vZGFsIC5tb2RhbC1saXN0LWl0ZW0ucGVuZGluZyAubWVzc2FnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAxMTgsIDAsIDAuMDgpO1xufVxuI3N5bmMtYXBwcy1tb2RhbCAubW9kYWwtbGlzdC1pdGVtLnJ1bm5pbmcgLm1lc3NhZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMTE4LCAwLCAwLjA4KTtcbn1cbiNzeW5jLWFwcHMtbW9kYWwgLm1vZGFsLWxpc3QtaXRlbS5lcnJvciAubWVzc2FnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAwLCAwLCAwLjA4KTtcbn1cbiNzeW5jLWFwcHMtbW9kYWwgLm1vZGFsLWxpc3QtaXRlbS5mYWlsZWQgLm1lc3NhZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMCwgMCwgMC4wOCk7XG59XG4jc3luYy1hcHBzLW1vZGFsIC5tb2RhbC1saXN0LWl0ZW0udW5rbm93biAubWVzc2FnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAwLCAwLCAwLjA4KTtcbn1cbiNzeW5jLWFwcHMtbW9kYWwgLm1vZGFsLWxpc3QtaXRlbS5kaXNjb25uZWN0ZWQgLm1lc3NhZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMCwgMCwgMC4wOCk7XG59XG4jc3luYy1hcHBzLW1vZGFsIC5tb2RhbC1saXN0LWl0ZW0ud2l0aC1tZXNzYWdlIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuI3N5bmMtYXBwcy1tb2RhbCAubW9kYWwtbGlzdC1pdGVtLndpdGgtbWVzc2FnZTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjY2M7XG59XG4jc3luYy1hcHBzLW1vZGFsIC5tb2RhbC1mb290ZXIge1xuICBib3JkZXI6IDA7XG59XG4jc3luYy1hcHBzLW1vZGFsIC5mYSB7XG4gIHBhZGRpbmc6IDBweCAxMHB4O1xufVxuI3N5bmMtYXBwcy1tb2RhbCAuZmEuZXJyb3Ige1xuICBjb2xvcjogI0ZGMDAwMDtcbn1cbiNzeW5jLWFwcHMtbW9kYWwgLmZhLndhcm4ge1xuICBjb2xvcjogI2ZmNzMwMDtcbn1cbiNzeW5jLWFwcHMtbW9kYWwgLmZhLnN1Y2Nlc3Mge1xuICBjb2xvcjogIzQ3ZmYwMDtcbn1cbmNoYXJ0LXRocmVzaG9sZCAuYXR0YWNoLXBhbmVsIHtcbiAgcGFkZGluZzogNXB4IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjAsIDEzMiwgMjI4LCAwLjE2KTtcbn1cbmNoYXJ0LXRocmVzaG9sZCAuYXR0YWNoLXBhbmVsID4gZGl2IHtcbiAgcGFkZGluZy1yaWdodDogNXB4O1xufVxuY2hhcnQtdGhyZXNob2xkIC5hdHRhY2gtcGFuZWwgPiBkaXYudGFyZ2V0IHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDExOTlweCkge1xuICBjaGFydC10aHJlc2hvbGQgLmF0dGFjaC1wYW5lbCB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG4gIGNoYXJ0LXRocmVzaG9sZCAuYXR0YWNoLXBhbmVsID4gZGl2IHtcbiAgICBwYWRkaW5nOiA1cHg7XG4gIH1cbn1cbmNoYXJ0LXRocmVzaG9sZCAuYXR0YWNoLXBhbmVsIC50ZXh0IHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAjNUI2NjY3O1xuICBmb250LXNpemU6IDEzcHg7XG59XG5jaGFydC10aHJlc2hvbGQgLmF0dGFjaC1wYW5lbCBpbnB1dCB7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYm9yZGVyOiAxcHggd2hpdGU7XG4gIHBhZGRpbmc6IDNweDtcbn1cbmNoYXJ0LXRocmVzaG9sZCAuYXR0YWNoLXBhbmVsIGlucHV0W25hbWU9YW1vdW50XSB7XG4gIG1heC13aWR0aDogNzBweDtcbn1cbmNoYXJ0LXRocmVzaG9sZCAuYXR0YWNoLXBhbmVsIC5jdXJyZW5jeSB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogIzAwMDtcbn1cbmNoYXJ0LXRocmVzaG9sZCAuYXR0YWNoLXBhbmVsIC5hY3Rpb25zIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAwIDJweDtcbn1cbmNoYXJ0LXRocmVzaG9sZCAuYXR0YWNoLXBhbmVsIC5hY3Rpb25zIGJ1dHRvbiB7XG4gIHBhZGRpbmc6IDNweCA2cHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbmNoYXJ0LXRocmVzaG9sZCAuYXR0YWNoLXBhbmVsIC5hY3Rpb25zIGJ1dHRvbi5sb2FkaW5nIHtcbiAgcGFkZGluZzogM3B4IDIwcHg7XG59XG4uYW5hbHl0aWNzIHdpZGdldHMtY29tbW9uLWNvbmZpcm0tbW9kYWwge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgY29sb3I6ICM1QjY2Njc7XG59XG4uYW5hbHl0aWNzIHdpZGdldHMtY29tbW9uLWNvbmZpcm0tbW9kYWwgLm92ZXJsYXkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDRweCk7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSA0cHgpO1xuICB0b3A6IDJweDtcbiAgbGVmdDogMnB4O1xuICBvcGFjaXR5OiAwLjY7XG4gIHotaW5kZXg6IDU7XG59XG4uYW5hbHl0aWNzIHdpZGdldHMtY29tbW9uLWNvbmZpcm0tbW9kYWwgLm1lc3NhZ2Uge1xuICB6LWluZGV4OiA2O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG1pbi1oZWlnaHQ6IDE2MHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMTBweDtcbiAgdG9wOiA0NXB4O1xuICBsZWZ0OiA3JTtcbiAgd2lkdGg6IDg2JTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0ZjhmOTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDI1cHggMHB4O1xufVxuLmFuYWx5dGljcyB3aWRnZXRzLWNvbW1vbi1jb25maXJtLW1vZGFsIC5tZXNzYWdlIC50aXRsZSB7XG4gIHBhZGRpbmc6IDJweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE5MjgzMTtcbiAgY29sb3I6IHdoaXRlO1xuICBtYXJnaW46IC0xcHggLTFweCAxMHB4IC0xcHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG4uYW5hbHl0aWNzIHdpZGdldHMtY29tbW9uLWNvbmZpcm0tbW9kYWwgLm1lc3NhZ2Uge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG4uYW5hbHl0aWNzIHdpZGdldHMtY29tbW9uLWNvbmZpcm0tbW9kYWwgLm1lc3NhZ2UgcCB7XG4gIHBhZGRpbmc6IDBweCAxMHB4O1xufVxuLmFuYWx5dGljcyB3aWRnZXRzLWNvbW1vbi1jb25maXJtLW1vZGFsIC5tZXNzYWdlIGJ1dHRvbi5idG4ge1xuICBtYXJnaW4tdG9wOiAyMHB4O1xufVxuLmFuYWx5dGljcyB3aWRnZXRzLWNvbW1vbi1jb25maXJtLW1vZGFsIC5tZXNzYWdlIC5sb2FkZXIgaS5mYS5mYS1zcGlubmVyIHtcbiAgZm9udC1zaXplOiAyNnB4O1xufVxuLmN1cnJlbmN5LWNvbnZlcnNpb25zIGltZyB7XG4gIHdpZHRoOiAxNXB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uY3VycmVuY3ktY29udmVyc2lvbnMucG9wb3ZlciAucG9wb3Zlci10aXRsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xuICBjb2xvcjogd2hpdGU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuZWRpdGFibGUtdGl0bGUge1xuICB3aWR0aDogMTAwJTtcbiAgZmxleDogMTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgaGVpZ2h0OiAyMnB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmVkaXRhYmxlLXRpdGxlIC50aXRsZSB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6ICM0ZjU5NTk7XG4gIGN1cnNvcjogdGV4dDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIGxpbmUtaGVpZ2h0OiAxLjk7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuZWRpdGFibGUtdGl0bGUgLmVkaXRhYmxlLXdyYXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMjBweDtcbiAgbWluLXdpZHRoOiAxMDAlO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmVkaXRhYmxlLXRpdGxlIC5lZGl0YWJsZS13cmFwIC5lZGl0YWJsZS1jb250cm9scyB7XG4gIG1pbi13aWR0aDogMTAwJTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5lZGl0YWJsZS10aXRsZSAuZWRpdGFibGUtd3JhcCAuZWRpdGFibGUtY29udHJvbHMgLmVkaXRhYmxlLWlucHV0IHtcbiAgaGVpZ2h0OiAyMHB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSA2NXB4KTtcbiAgcGFkZGluZzogMHB4IDNweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5lZGl0YWJsZS10aXRsZSAuZWRpdGFibGUtd3JhcCAuZWRpdGFibGUtY29udHJvbHMgLmVkaXRhYmxlLWJ1dHRvbnMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5lZGl0YWJsZS10aXRsZSAuZWRpdGFibGUtd3JhcCAuZWRpdGFibGUtY29udHJvbHMgLmVkaXRhYmxlLWJ1dHRvbnMgYnV0dG9uIHtcbiAgbWFyZ2luOiAwcHggMHB4IDBweCA1cHg7XG4gIGhlaWdodDogMjBweDtcbiAgcGFkZGluZzogMHB4IDVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5pbmZvLXBhbmVsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDE1cHg7XG4gIGxlZnQ6IDE1cHg7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSAzMHB4KTtcbiAgbWF4LWhlaWdodDogY2FsYygxMDAlIC0gMzBweCk7XG4gIGhlaWdodDogMTAwJTtcbiAgei1pbmRleDogMTAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgYm9yZGVyOiBkb3R0ZWQgMXB4ICNCN0NEQ0U7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGZvbnQtZmFtaWx5OiBcIkxhdG8gU2VtaWJvbGRcIiwgXCJMYXRvXCI7XG4gIHotaW5kZXg6IDQ7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuaW5mby1wYW5lbDpob3ZlciB7XG4gIG9wYWNpdHk6IDE7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuaW5mby1wYW5lbCAuaS1oZWFkZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZDOTI4O1xuICBjb2xvcjogIzFFMzAzQjtcbiAgcGFkZGluZzogOHB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LWZhbWlseTogXCJMYXRvIE1lZGl1bVwiLCBcIkxhdG9cIjtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmluZm8tcGFuZWwgLmktaGVhZGVyIC5mYSB7XG4gIGZvbnQtc2l6ZTogMThweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5pbmZvLXBhbmVsIC5pLWhlYWRlciAuZmEtaW5mby1jaXJjbGUge1xuICBmbG9hdDogbGVmdDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5pbmZvLXBhbmVsIC5pLWhlYWRlciAuZmEtdGltZXMtY2lyY2xlIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmbG9hdDogcmlnaHQ7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuaW5mby1wYW5lbCAuaS1jb250ZW50IHtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBwYWRkaW5nOiA1cHg7XG4gIHRleHQtYWxpZ246IGp1c3RpZnk7XG4gIGZsZXg6IDE7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuaW5mby1wYW5lbCAuaS1jb250ZW50IC5yb3cge1xuICBtYXJnaW4tYm90dG9tOiA2cHg7XG4gIHBhZGRpbmctYm90dG9tOiA2cHg7XG4gIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCAjYWJjNGM2O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmluZm8tcGFuZWwgLmktY29udGVudCAucm93Omxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5pbmZvLXBhbmVsIC5pLWNvbnRlbnQgLnJvdyAua2V5IHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIGZvbnQtdmFyaWFudDogc21hbGwtY2Fwcztcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5OTFweCkge1xuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuaW5mby1wYW5lbCAuaS1jb250ZW50IC5yb3cgLmtleSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuaW5mby1wYW5lbCAuaS1jb250ZW50IC5yb3cgLnZhbHVlIHtcbiAgdGV4dC1hbGlnbjoganVzdGlmeTtcbn1cbi5hbmFseXRpY3MgLnRpbWUtcGVyaW9kLWluZm8ge1xuICBmb250LXNpemU6IDExcHg7XG4gIGNvbG9yOiAjQUJDNEM2O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLnRvcC1saW5lIC50b3AtYnV0dG9ucyB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBtYXJnaW4tdG9wOiAtMXB4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAudG9wLWxpbmUgLnRvcC1idXR0b25zIC50b3AtYnV0dG9ucy13cmFwcGVyIC50b3AtYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgY29sb3I6ICNjNGNhY2E7XG4gIHBhZGRpbmc6IDA7XG4gIG91dGxpbmU6IG5vbmU7XG4gIHdpZHRoOiAxN3B4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLnRvcC1saW5lIC50b3AtYnV0dG9ucyAudG9wLWJ1dHRvbnMtd3JhcHBlciAudG9wLWJ1dHRvbjphY3RpdmUsXG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAudG9wLWxpbmUgLnRvcC1idXR0b25zIC50b3AtYnV0dG9ucy13cmFwcGVyIC50b3AtYnV0dG9uOmZvY3VzIHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC50b3AtbGluZSAudG9wLWJ1dHRvbnMgLnRvcC1idXR0b25zLXdyYXBwZXIgLnRvcC1idXR0b24uYnRuLWluZm8ge1xuICBmb250LXNpemU6IDE3cHg7XG4gIG1hcmdpbi10b3A6IDFweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC50b3AtbGluZSAudG9wLWJ1dHRvbnMgLnRvcC1idXR0b25zLXdyYXBwZXIgLnRvcC1idXR0b24uYnRuLWluZm86aG92ZXIge1xuICBjb2xvcjogI0ZGQzkyODtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC50b3AtbGluZSAudG9wLWJ1dHRvbnMgLnRvcC1idXR0b25zLXdyYXBwZXIgLnRvcC1idXR0b24uYnRuLWV4cG9ydCB7XG4gIGZvbnQtc2l6ZTogMTdweDtcbiAgbWFyZ2luLXRvcDogMXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLnRvcC1saW5lIC50b3AtYnV0dG9ucyAudG9wLWJ1dHRvbnMtd3JhcHBlciAudG9wLWJ1dHRvbi5idG4tZXhwb3J0OmhvdmVyIHtcbiAgY29sb3I6ICMzNThmZGM7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAudG9wLWxpbmUgLnRvcC1idXR0b25zIC50b3AtYnV0dG9ucy13cmFwcGVyIC50b3AtYnV0dG9uLmJ0bi1yZWZyZXNoIHtcbiAgZm9udC1zaXplOiAxN3B4O1xuICBtYXJnaW4tdG9wOiAxcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAudG9wLWxpbmUgLnRvcC1idXR0b25zIC50b3AtYnV0dG9ucy13cmFwcGVyIC50b3AtYnV0dG9uLmJ0bi1yZWZyZXNoOmhvdmVyIHtcbiAgY29sb3I6ICMzNThmZGM7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAudG9wLWxpbmUgLnRvcC1idXR0b25zIC50b3AtYnV0dG9ucy13cmFwcGVyIC50b3AtYnV0dG9uLmJ0bi1lZGl0IHtcbiAgZm9udC1zaXplOiAxM3B4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLnRvcC1saW5lIC50b3AtYnV0dG9ucyAudG9wLWJ1dHRvbnMtd3JhcHBlciAudG9wLWJ1dHRvbi5idG4tZWRpdDpob3Zlcixcbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC50b3AtbGluZSAudG9wLWJ1dHRvbnMgLnRvcC1idXR0b25zLXdyYXBwZXIgLnRvcC1idXR0b24uYnRuLWVkaXQuZWRpdC1tb2RlIHtcbiAgY29sb3I6ICNjZmQ4NDk7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAudG9wLWxpbmUgLnRvcC1idXR0b25zIC50b3AtYnV0dG9ucy13cmFwcGVyIC50b3AtYnV0dG9uLmJ0bi1jbG9zZSB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC50b3AtbGluZSAudG9wLWJ1dHRvbnMgLnRvcC1idXR0b25zLXdyYXBwZXIgLnRvcC1idXR0b24uYnRuLWNsb3NlOmhvdmVyIHtcbiAgY29sb3I6ICNlZDFlNzk7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1hc3NldHMtbGlhYmlsaXR5LXN1bW1hcnkgLnBhcmFtLXNlbGVjdG9yIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtYXNzZXRzLWxpYWJpbGl0eS1zdW1tYXJ5IC5sZWdlbmQge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBtYXgtaGVpZ2h0OiA5MHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtYXNzZXRzLWxpYWJpbGl0eS1zdW1tYXJ5IC5sZWdlbmQgLnRpdGxlIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3JkZXItYm90dG9tOiBkYXNoZWQgMXB4ICNkZmUyZTI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1hc3NldHMtc3VtbWFyeSAubGVnZW5kIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgbWF4LWhlaWdodDogMTE1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1hc3NldHMtc3VtbWFyeSAubGVnZW5kIC50aXRsZSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYm9yZGVyLWJvdHRvbTogZGFzaGVkIDFweCAjZGZlMmUyO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtYXNzZXRzLXZzLWxpYWJpbGl0aWVzIC5sZWdlbmQgPiAudGl0bGUgc3BhbiB7XG4gIG1hcmdpbi1sZWZ0OiAzcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1iYWxhbmNlIGgzIHtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBjb2xvcjogIzVCNjY2NztcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgbWFyZ2luLXRvcDogMzBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtYmFsYW5jZSAucHJpY2Uge1xuICBmb250LXdlaWdodDogOTAwO1xuICBmb250LXNpemU6IDIycHg7XG4gIGNvbG9yOiAjNUI2NjY3O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbi10b3A6IDBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWJhbGFuY2Utc2hlZXQge1xuICBtaW4taGVpZ2h0OiA1NjVweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1iYWxhbmNlLXNoZWV0IHtcbiAgICBoZWlnaHQ6IDU2NXB4O1xuICB9XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWJhbGFuY2Utc2hlZXQgLmNoYXJ0LWNvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiA1ODVweDtcbiAgICBtYXgtaGVpZ2h0OiA0NDBweDtcbiAgICBtYXJnaW46IGF1dG87XG4gIH1cbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWJhbGFuY2Utc2hlZXQgLmVkaXQge1xuICBtYXgtaGVpZ2h0OiA1NDVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWJhbGFuY2Utc2hlZXQgLmVkaXQgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBvdmVyZmxvdy15OiBoaWRkZW47XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWJhbGFuY2Utc2hlZXQgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgbWF4LWhlaWdodDogNDkwcHg7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtYmFsYW5jZS1zaGVldCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAucm93LndpZGdldC1saW5lOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgIGJvcmRlci1ib3R0b206IGRhc2hlZCAxcHggI2RmZTJlMjtcbiAgfVxufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtYmFsYW5jZS1zaGVldCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAucm93LndpZGdldC1saW5lLmhlYWRlciA+IFtjbGFzcyo9J2NvbC0nXSB7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1iYWxhbmNlLXNoZWV0IC53aWRnZXQtbGluZXMtY29udGFpbmVyLm5vLXNjcm9sbCB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtYmFsYW5jZS1zaGVldCAubm8tZGF0YS1ibG9jayB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgY29sb3I6ICM1QjY2Njc7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luOiAxNXB4IDBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtYmFsYW5jZSB7XG4gIG1pbi1oZWlnaHQ6IDU2NXB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtYmFsYW5jZSB7XG4gICAgaGVpZ2h0OiA1NjVweDtcbiAgfVxuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLWJhbGFuY2UgLmNoYXJ0LWNvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiA1ODVweDtcbiAgICBtYXgtaGVpZ2h0OiA0NDBweDtcbiAgICBtYXJnaW46IGF1dG87XG4gIH1cbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtYmFsYW5jZSAuZWRpdCB7XG4gIG1heC1oZWlnaHQ6IDU0NXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1iYWxhbmNlIC5lZGl0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLWJhbGFuY2UgLmRhdGEtY29udGFpbmVyIHtcbiAgaGVpZ2h0OiBjYWxjKDU2NXB4IC0gNTBweCk7XG4gIHdpZHRoOiAxMDAlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1iYWxhbmNlIC5sZWZ0LXBhbmVsIHtcbiAgd2lkdGg6IDE4MHB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG92ZXJmbG93OiBhdXRvO1xuICBtYXgtaGVpZ2h0OiAxMDAlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1iYWxhbmNlICNjYXNoLWJhbGFuY2UtbGVnZW5kIC5oZWFkZXIgLmdyb3VwLWl0ZW0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtaW4taGVpZ2h0OiA0NXB4O1xuICBtYXJnaW46IDNweDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBwYWRkaW5nOiAzcHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLWJhbGFuY2UgI2Nhc2gtYmFsYW5jZS1sZWdlbmQgLmhlYWRlciAuZ3JvdXAtaXRlbTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlY2VjZWM7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLWJhbGFuY2UgI2Nhc2gtYmFsYW5jZS1sZWdlbmQgLmhlYWRlciAuZ3JvdXAtaXRlbSBpIHtcbiAgZm9udC1zaXplOiAxOXB4O1xuICBwYWRkaW5nOiA0cHg7XG4gIG1hcmdpbi10b3A6IDFweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtYmFsYW5jZSAjY2FzaC1iYWxhbmNlLWxlZ2VuZCAuaGVhZGVyIC5ncm91cC1pdGVtIHNwYW4ge1xuICBjb2xvcjogIzVCNjY2Nztcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtYmFsYW5jZSAubGVnZW5kLWl0ZW0taWNvbiB7XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDE2cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLWJhbGFuY2UgLnJpZ2h0LXBhbmVsIHtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIDE4MHB4KTtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1iYWxhbmNlIC5yaWdodC1wYW5lbCAuY2FzaC1iYWxhbmNlLWNoYXJ0IHtcbiAgaGVpZ2h0OiBjYWxjKDU2NXB4IC0gNTBweCk7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLWJhbGFuY2UgLmRhdGVzLXBpY2tlciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZmxvYXQ6IHJpZ2h0O1xuICBmb250LXNpemU6IDEycHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLXByb2plY3Rpb24ge1xuICBtaW4taGVpZ2h0OiA1NjVweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLXByb2plY3Rpb24ge1xuICAgIGhlaWdodDogNTY1cHg7XG4gIH1cbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1wcm9qZWN0aW9uIC5jaGFydC1jb250YWluZXIge1xuICAgIG1heC13aWR0aDogNTg1cHg7XG4gICAgbWF4LWhlaWdodDogNDQwcHg7XG4gICAgbWFyZ2luOiBhdXRvO1xuICB9XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLXByb2plY3Rpb24gLmVkaXQge1xuICBtYXgtaGVpZ2h0OiA1NDVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtcHJvamVjdGlvbiAuZWRpdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1wcm9qZWN0aW9uIC5jYXNoLXByb2plY3Rpb24tY2hhcnQge1xuICBoZWlnaHQ6IGNhbGMoNTY1cHggLSA1MHB4KTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtcHJvamVjdGlvbiAuaGlnaGNoYXJ0cy1sZWdlbmQtaXRlbSByZWN0LmhpZ2hjaGFydHMtcG9pbnQge1xuICBkaXNwbGF5OiBub25lO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1wcm9qZWN0aW9uIC5oaWdoY2hhcnRzLWxlZ2VuZC1pdGVtIHNwYW4ge1xuICB3aWR0aDogMTEwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtcHJvamVjdGlvbiAuaGlnaGNoYXJ0cy1sZWdlbmQtaXRlbSBzcGFuIGltZyB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2lkdGg6IDU1cHg7XG4gIGhlaWdodDogMjVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtcHJvamVjdGlvbiAuZGF0ZXMtcGlja2VyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmbG9hdDogcmlnaHQ7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtcHJvamVjdGlvbiB0cmFuc2FjdGlvbnMtbGlzdCB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtc3VtbWFyeSB7XG4gIG1pbi1oZWlnaHQ6IDU2NXB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtc3VtbWFyeSB7XG4gICAgaGVpZ2h0OiA1NjVweDtcbiAgfVxuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLXN1bW1hcnkgLmNoYXJ0LWNvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiA1ODVweDtcbiAgICBtYXgtaGVpZ2h0OiA0NDBweDtcbiAgICBtYXJnaW46IGF1dG87XG4gIH1cbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtc3VtbWFyeSAuZWRpdCB7XG4gIG1heC1oZWlnaHQ6IDU0NXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1zdW1tYXJ5IC5lZGl0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLXN1bW1hcnkgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBtYXgtaGVpZ2h0OiA1NDBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtc3VtbWFyeSAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAubGluZXMtZ3JvdXAgLndpZGdldC1saW5lIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXI6IHNvbGlkIDFweCB3aGl0ZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtc3VtbWFyeSAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAubGluZXMtZ3JvdXAgLndpZGdldC1saW5lIC5zZWxlY3Rpb24tdGFnIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHJpZ2h0OiAwcHg7XG4gIG1hcmdpbi10b3A6IC02cHg7XG4gIHdpZHRoOiAxMHB4O1xuICBoZWlnaHQ6IDI5cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtc3VtbWFyeSAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAubGluZXMtZ3JvdXAgLndpZGdldC1saW5lOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTBmYjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtc3VtbWFyeSAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAubGluZXMtZ3JvdXAgLndpZGdldC1saW5lLm5vLXNlbGVjdCB7XG4gIGN1cnNvcjogYXV0bztcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtc3VtbWFyeSAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAubGluZXMtZ3JvdXAgLndpZGdldC1saW5lLm5vLXNlbGVjdDpob3ZlciB7XG4gIGNvbG9yOiAjNjI2ZDZkO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1zdW1tYXJ5IC5yaWdodC1wYW5lbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgbWF4LWhlaWdodDogMjM1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLXN1bW1hcnkgLm5vLWVsZW1lbnQge1xuICBmb250LXdlaWdodDogMzAwO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGNvbG9yOiAjNUI2NjY3O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLXN1bW1hcnkgLnJpZ2h0LXBhbmVsIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogMjE1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLXN1bW1hcnkgLnJvdy5saW5lcy1ncm91cC5jYXNoIHtcbiAgYm9yZGVyLXRvcDogc29saWQgMXB4O1xuICBib3JkZXItYm90dG9tOiBkb3VibGU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jbGFzcy1jb21wYXJpc29uIC5wYXJhbS1zZWxlY3RvciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNsYXNzLWNvbXBhcmlzb24gLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBtYXgtaGVpZ2h0OiA5NHB4O1xuICBjb2xvcjogIzYyNmQ2ZDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNvbXBhcmlzb24ge1xuICBtaW4taGVpZ2h0OiA1NjVweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jb21wYXJpc29uIHtcbiAgICBoZWlnaHQ6IDU2NXB4O1xuICB9XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNvbXBhcmlzb24gLmNoYXJ0LWNvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiA1ODVweDtcbiAgICBtYXgtaGVpZ2h0OiA0NDBweDtcbiAgICBtYXJnaW46IGF1dG87XG4gIH1cbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNvbXBhcmlzb24gLmVkaXQge1xuICBtYXgtaGVpZ2h0OiA1NDVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNvbXBhcmlzb24gLmVkaXQgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBvdmVyZmxvdy15OiBoaWRkZW47XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbn1cbkBtZWRpYSBwcmludCB7XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNvbXBhcmlzb24gLmNoYXJ0LWNvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiA4MCUgIWltcG9ydGFudDtcbiAgfVxufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY29tcGFyaXNvbiAuYWRkLWFjY291bnQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiA0MHB4O1xuICBib3R0b206IDMwcHg7XG4gIHdpZHRoOiAxNjBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNvbXBhcmlzb24gLmFkZC1hY2NvdW50IHNlbGVjdCB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk3N2JmMDtcbiAgY29sb3I6IHdoaXRlO1xuICBvdXRsaW5lOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNvbXBhcmlzb24gLmFkZC1hY2NvdW50IHNlbGVjdFtkaXNhYmxlZF0ge1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYmJhOWY1O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY29tcGFyaXNvbiAuYWRkLWFjY291bnQgc2VsZWN0W2Rpc2FibGVkXTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiYmE5ZjU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jb21wYXJpc29uIC5hZGQtYWNjb3VudCBzZWxlY3Q6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzM0ZGViO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY29tcGFyaXNvbiAuYWRkLWFjY291bnQgc2VsZWN0IG9wdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBjb2xvcjogI2M0Y2FjYTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNvbXBhcmlzb24gLmFkZC1hY2NvdW50IHNlbGVjdCBvcHRpb25bZGlzYWJsZWRdIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY29tcGFyaXNvbiBidXR0b24uY2xvc2Uge1xuICBmb250LXNpemU6IDE1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jb21wYXJpc29uIC5sZWdlbmQge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBtYXgtaGVpZ2h0OiAxMDNweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNvbXBhcmlzb24gLnJvdyB7XG4gIG1hcmdpbjogMDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNvbXBhcmlzb24gLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBmb250LXNpemU6IDExcHg7XG4gIG1heC1oZWlnaHQ6IDIyMHB4O1xuICBtYXJnaW4tYm90dG9tOiA2NXB4O1xuICBvdmVyZmxvdzogYXV0bztcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNvbXBhcmlzb24gLnNldHRpbmdzLnBhcmFtcy1jaGVja2JveGVzIHtcbiAgbWFyZ2luLWxlZnQ6IDEzcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jb21wYXJpc29uIC5jb21wYXJhYmxlLWVycm9yIGg1IHtcbiAgbWFyZ2luLWxlZnQ6IDEzcHg7XG4gIGNvbG9yOiAjZWQxZTc5O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY3VzdG9tLWNhbGN1bGF0aW9uIGgzIHtcbiAgbWFyZ2luLXRvcDogODVweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWN1c3RvbS1jYWxjdWxhdGlvbiAubGVnZW5kIHtcbiAgbWF4LWhlaWdodDogMTI1cHg7XG59XG4uYW5hbHl0aWNzLm1vZGFsLWN1c3RvbS1jYWxjdWxhdGlvbiB7XG4gIG1hcmdpbjogMHB4O1xuICBwYWRkaW5nOiAwcHg7XG59XG4uYW5hbHl0aWNzLm1vZGFsLWN1c3RvbS1jYWxjdWxhdGlvbiAubW9kYWwtYm9keSAuZWRpdCB7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgY29sb3I6ICM1QjY2Njc7XG4gIHBhZGRpbmc6IDJweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBwYWRkaW5nOiA1cHg7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuLmFuYWx5dGljcy5tb2RhbC1jdXN0b20tY2FsY3VsYXRpb24gLm1vZGFsLWJvZHkgLmVkaXQgLmJvdHRvbS1idXR0b25zIC5idG4ge1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIG1hcmdpbi1yaWdodDogNXB4O1xuICBwYWRkaW5nOiAzcHggMTNweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuLmFuYWx5dGljcy5tb2RhbC1jdXN0b20tY2FsY3VsYXRpb24gLm1vZGFsLWJvZHkgLmVkaXQgLmJvdHRvbS1idXR0b25zIC5idG4uYnRuLWRlZmF1bHQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzJjNGM0O1xuICBib3JkZXI6IHNvbGlkIDFweCAjYThhYmFiO1xuICBjb2xvcjogd2hpdGU7XG59XG4uYW5hbHl0aWNzLm1vZGFsLWN1c3RvbS1jYWxjdWxhdGlvbiAubW9kYWwtYm9keSAuZWRpdCAuYm90dG9tLWJ1dHRvbnMgLmJ0bi5idG4tZGVmYXVsdDpob3ZlciB7XG4gIGJvcmRlcjogc29saWQgMXB4ICM4ZTkyOTI7XG4gIGJhY2tncm91bmQtY29sb3I6ICNhOGFiYWI7XG59XG4uYW5hbHl0aWNzLm1vZGFsLWN1c3RvbS1jYWxjdWxhdGlvbiAubW9kYWwtYm9keSAuZWRpdCBoNCB7XG4gIG1hcmdpbjogMDtcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiAjYzRjYWNhO1xufVxuLmFuYWx5dGljcy5tb2RhbC1jdXN0b20tY2FsY3VsYXRpb24gLm1vZGFsLWJvZHkgLmVkaXQgLnBhcnQge1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gIHBhZGRpbmc6IDEwcHggMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmNmY2ZjO1xuICBib3JkZXI6IHNvbGlkIDFweCAjZGZlMmUyO1xufVxuLmFuYWx5dGljcy5tb2RhbC1jdXN0b20tY2FsY3VsYXRpb24gLm1vZGFsLWJvZHkgLmVkaXQgLnBhcnQgaDUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwO1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICBwYWRkaW5nOiAwcHggMTVweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb2xvcjogI2M0Y2FjYTtcbn1cbi5hbmFseXRpY3MubW9kYWwtY3VzdG9tLWNhbGN1bGF0aW9uIC5tb2RhbC1ib2R5IC5lZGl0IC5wYXJ0IGxhYmVsIHtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cbi5hbmFseXRpY3MubW9kYWwtY3VzdG9tLWNhbGN1bGF0aW9uIC5tb2RhbC1ib2R5IC5lZGl0IC5wYXJ0IHNlbGVjdC5mb3JtLWNvbnRyb2wge1xuICBtYXJnaW46IDBweDtcbiAgYm9yZGVyOiBzb2xpZCAxcHggI2FjYjBiMTtcbiAgb3V0bGluZTogbm9uZTtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGNvbG9yOiAjNzI3MjhiO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtZGV0YWlsZWQtY2xhc3NpZmljYXRpb25zIHtcbiAgbWluLWhlaWdodDogNTY1cHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtZGV0YWlsZWQtY2xhc3NpZmljYXRpb25zIHtcbiAgICBoZWlnaHQ6IDU2NXB4O1xuICB9XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWRldGFpbGVkLWNsYXNzaWZpY2F0aW9ucyAuY2hhcnQtY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDU4NXB4O1xuICAgIG1heC1oZWlnaHQ6IDQ0MHB4O1xuICAgIG1hcmdpbjogYXV0bztcbiAgfVxufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtZGV0YWlsZWQtY2xhc3NpZmljYXRpb25zIC5lZGl0IHtcbiAgbWF4LWhlaWdodDogNTQ1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1kZXRhaWxlZC1jbGFzc2lmaWNhdGlvbnMgLmVkaXQgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBvdmVyZmxvdy15OiBoaWRkZW47XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWRldGFpbGVkLWNsYXNzaWZpY2F0aW9ucyAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBtYXgtaGVpZ2h0OiA1NDBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWRldGFpbGVkLWNsYXNzaWZpY2F0aW9ucyAuYWNjb3VudC1jbGFzcy10aXRsZSB7XG4gIG1hcmdpbi1ib3R0b206IDhweDtcbiAgbWFyZ2luLWxlZnQ6IDExcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1kZXRhaWxlZC1jbGFzc2lmaWNhdGlvbnMgLnRpbWUtcGVyaW9kLWluZm8ge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWRldGFpbGVkLWNsYXNzaWZpY2F0aW9ucyAud2lkZ2V0LWxpbmUuaGVhZGVyLnNvcnRpbmcge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWV4cGVuc2Utd2VpZ2h0IC5sZWdlbmQge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBtYXgtaGVpZ2h0OiAxMTVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWV4cGVuc2Utd2VpZ2h0IC5sZWdlbmQgLnRpdGxlIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtZXhwZW5zZXMtcmV2ZW51ZSAubGVnZW5kIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1leHBlbnNlcy1yZXZlbnVlIC5zZXR0aW5ncy5wYXJhbXMtY2hlY2tib3hlcyB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbWFyZ2luLWxlZnQ6IDBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtaW52b2ljZXMtbGlzdCB7XG4gIG1pbi1oZWlnaHQ6IDU2NXB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWludm9pY2VzLWxpc3Qge1xuICAgIGhlaWdodDogNTY1cHg7XG4gIH1cbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtaW52b2ljZXMtbGlzdCAuY2hhcnQtY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDU4NXB4O1xuICAgIG1heC1oZWlnaHQ6IDQ0MHB4O1xuICAgIG1hcmdpbjogYXV0bztcbiAgfVxufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtaW52b2ljZXMtbGlzdCAuZWRpdCB7XG4gIG1heC1oZWlnaHQ6IDU0NXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtaW52b2ljZXMtbGlzdCAuZWRpdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtaW52b2ljZXMtbGlzdCB0cmFuc2FjdGlvbnMtbGlzdCB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWxpdmUtYmFsYW5jZSBoMyB7XG4gIGZvbnQtd2VpZ2h0OiA5MDA7XG4gIGZvbnQtc2l6ZTogMjJweDtcbiAgY29sb3I6ICM1QjY2Njc7XG4gIG1hcmdpbi10b3A6IDBweDtcbiAgZm9udC1zaXplOiAxOHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtc2hhZG93OiAxcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1saXZlLWJhbGFuY2UgLnN0YXRlbWVudC10aXRsZSB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWxpdmUtYmFsYW5jZSAuYmFsYW5jZS10aXRsZSB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWxpdmUtYmFsYW5jZSAuY3VycmVuY3ktY2VudGVyZWQge1xuICBmb250LXdlaWdodDogMzAwO1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiAjNUI2NjY3O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1saXZlLWJhbGFuY2UgLmhlYWRlcnMge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1saXZlLWJhbGFuY2UgLnNwYWNlciB7XG4gIG1pbi1oZWlnaHQ6IDMwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1saXZlLWJhbGFuY2UgLnByaWNlIHtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgZm9udC1zaXplOiAyMnB4O1xuICBjb2xvcjogIzVCNjY2NztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tdG9wOiAwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1saXZlLWJhbGFuY2UgLmNvbWUtYmFjay1sYXRlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBvcGFjaXR5OiAwLjg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1saXZlLWJhbGFuY2UgLm5lZ2F0aXZlMiB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLXBheWFibGUtcmVjZWl2YWJsZSBoMyB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLXBheWFibGUtcmVjZWl2YWJsZSAubGVnZW5kIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1wYXlhYmxlLXJlY2VpdmFibGUgLnBheWFibGUge1xuICBtYXJnaW4tdG9wOiAxNXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtcGF5YWJsZS1yZWNlaXZhYmxlIC5wcmljZSB7XG4gIGZvbnQtd2VpZ2h0OiA5MDA7XG4gIGZvbnQtc2l6ZTogMjJweDtcbiAgY29sb3I6ICM1QjY2Njc7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLXRvcDogMHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtcHJvZml0LWFuZC1sb3NzIHtcbiAgbWluLWhlaWdodDogNTY1cHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtcHJvZml0LWFuZC1sb3NzIHtcbiAgICBoZWlnaHQ6IDU2NXB4O1xuICB9XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLXByb2ZpdC1hbmQtbG9zcyAuY2hhcnQtY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDU4NXB4O1xuICAgIG1heC1oZWlnaHQ6IDQ0MHB4O1xuICAgIG1hcmdpbjogYXV0bztcbiAgfVxufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtcHJvZml0LWFuZC1sb3NzIC5lZGl0IHtcbiAgbWF4LWhlaWdodDogNTQ1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1wcm9maXQtYW5kLWxvc3MgLmVkaXQgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBvdmVyZmxvdy15OiBoaWRkZW47XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLXByb2ZpdC1hbmQtbG9zcyAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG1heC1oZWlnaHQ6IDU0MHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtcHJvZml0LWFuZC1sb3NzIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC5saW5lcy1ncm91cCAud2lkZ2V0LWxpbmUge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJvcmRlcjogc29saWQgMXB4IHdoaXRlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtcHJvZml0LWFuZC1sb3NzIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC5saW5lcy1ncm91cCAud2lkZ2V0LWxpbmUgLnNlbGVjdGlvbi10YWcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcmlnaHQ6IDBweDtcbiAgbWFyZ2luLXRvcDogLTZweDtcbiAgd2lkdGg6IDEwcHg7XG4gIGhlaWdodDogMjlweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtcHJvZml0LWFuZC1sb3NzIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC5saW5lcy1ncm91cCAud2lkZ2V0LWxpbmU6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlMGZiO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtcHJvZml0LWFuZC1sb3NzIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC5saW5lcy1ncm91cCAud2lkZ2V0LWxpbmUubm8tc2VsZWN0IHtcbiAgY3Vyc29yOiBhdXRvO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtcHJvZml0LWFuZC1sb3NzIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC5saW5lcy1ncm91cCAud2lkZ2V0LWxpbmUubm8tc2VsZWN0OmhvdmVyIHtcbiAgY29sb3I6ICM2MjZkNmQ7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1wcm9maXQtYW5kLWxvc3MgLnJpZ2h0LXBhbmVsIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBtYXgtaGVpZ2h0OiAyMzVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLXByb2ZpdC1hbmQtbG9zcyAubm8tZWxlbWVudCB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgY29sb3I6ICM1QjY2Njc7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLXByb2ZpdC1hbmQtbG9zcyAucm93LmxpbmVzLWdyb3VwLnByb2ZpdCB7XG4gIGJvcmRlci10b3A6IHNvbGlkIDFweDtcbiAgYm9yZGVyLWJvdHRvbTogZG91YmxlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtcHJvZml0LWFuZC1sb3NzIC5yaWdodC1wYW5lbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG1heC1oZWlnaHQ6IDIxNXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtcHJvZml0LWFuZC1sb3NzIC5yb3cud2lkZ2V0LWxpbmUuaGVhZGVyID4gW2NsYXNzKj0nY29sLSddIHtcbiAgcG9zaXRpb246IHN0YXRpYztcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLXJhdGlvcyAubGVmdC1wYW5lbCB7XG4gIG1heC1oZWlnaHQ6IDIzMHB4O1xuICBvdmVyZmxvdy15OiBhdXRvO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtcmF0aW9zIC5sZWZ0LXBhbmVsIC5zZXBhcmF0b3Ige1xuICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzVCNjY2NztcbiAgd2lkdGg6IDc1JTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLXJhdGlvcyAubGVmdC1wYW5lbCAubWVtYmVyIHtcbiAgcGFkZGluZy10b3A6IDIwcHg7XG4gIHBhZGRpbmctYm90dG9tOiAyMHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtcmF0aW9zIC5sZWZ0LXBhbmVsIC5tZW1iZXIgLnByaWNlIHtcbiAgbWFyZ2luLXRvcDogMHB4O1xuICBmb250LXNpemU6IDE4cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1yYXRpb3MgLmxlZnQtcGFuZWwgYnV0dG9uIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLXJhdGlvcyAubGVmdC1wYW5lbC5zaW11bGF0aW9uIC5tZW1iZXIge1xuICBwYWRkaW5nLXRvcDogNXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtcmF0aW9zIC5sZWZ0LXBhbmVsLnNpbXVsYXRpb24gLm1lbWJlciAubGVnZW5kIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLXJhdGlvcyAubGVmdC1wYW5lbC5zaW11bGF0aW9uIC5tZW1iZXIgLnByaWNlIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1yYXRpb3MgLmxlZnQtcGFuZWwuc2ltdWxhdGlvbiAuc2VwYXJhdG9yIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1lbXBsb3llZS1kZXRhaWxzIHtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItZW1wbG95ZWUtZGV0YWlscyAuZGV0YWlscy1jb250YWluZXIge1xuICBwYWRkaW5nOiAwcHg7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1lbXBsb3llZS1kZXRhaWxzIC5kZXRhaWxzLWNvbnRhaW5lciB7XG4gICAgbWF4LWhlaWdodDogMjAwcHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1lbXBsb3llZS1kZXRhaWxzIC5yaWdodC1wYW5lbCAuZGV0YWlscy1jb250YWluZXIge1xuICAgIG1heC1oZWlnaHQ6IDIyMHB4O1xuICB9XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1lbXBsb3llZS1kZXRhaWxzIC5yaWdodC1wYW5lbCAubGVnZW5kIHtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItZW1wbG95ZWUtZGV0YWlscyAudGl0bGUge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLWVtcGxveWVlcy1saXN0IC5sZWdlbmQge1xuICBtYXJnaW4tYm90dG9tOiA5cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1lbXBsb3llZXMtbGlzdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLWVtcGxveWVlcy1saXN0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZTpudGgtY2hpbGQoZXZlbikge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmMGYwO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItZW1wbG95ZWVzLWxpc3QgLndpZGdldC1saW5lcy1jb250YWluZXIgLndpZGdldC1saW5lOm50aC1jaGlsZChvZGQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1lbXBsb3llZXMtbGlzdCAuZWRpdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1sZWF2ZXMtYmFsYW5jZSAuZW1wbG95ZWUtbmFtZSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLWxlYXZlcy1iYWxhbmNlIC5iYWxhbmNlIHtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgZm9udC1zaXplOiAyMnB4O1xuICBjb2xvcjogIzVCNjY2NztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tdG9wOiAwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1sZWF2ZXMtYmFsYW5jZSBoMyB7XG4gIG1hcmdpbi10b3A6IDMzcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLWxlYXZlcy1zY2hlZHVsZSAuZmMtYnV0dG9uIHtcbiAgaGVpZ2h0OiAyMnB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiAjOTc3YmYwO1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgb3V0bGluZTogbm9uZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLWxlYXZlcy1zY2hlZHVsZSAuZmMtYnV0dG9uOmhvdmVyIHtcbiAgY29sb3I6IHdoaXRlO1xuICBiYWNrZ3JvdW5kOiAjOTc3YmYwO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItbGVhdmVzLXNjaGVkdWxlIC5mYy10b29sYmFyIHtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItbGVhdmVzLXNjaGVkdWxlIC5mYy1kYXktZ3JpZCxcbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLWxlYXZlcy1zY2hlZHVsZSAuZmMtd2lkZ2V0LWhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6ICM1QjY2Njc7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1wYXlyb2xsLXN1bW1hcnkge1xuICBtaW4taGVpZ2h0OiA1NjVweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1wYXlyb2xsLXN1bW1hcnkge1xuICAgIGhlaWdodDogNTY1cHg7XG4gIH1cbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItcGF5cm9sbC1zdW1tYXJ5IC5jaGFydC1jb250YWluZXIge1xuICAgIG1heC13aWR0aDogNTg1cHg7XG4gICAgbWF4LWhlaWdodDogNDQwcHg7XG4gICAgbWFyZ2luOiBhdXRvO1xuICB9XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1wYXlyb2xsLXN1bW1hcnkgLmVkaXQge1xuICBtYXgtaGVpZ2h0OiA1NDVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXBheXJvbGwtc3VtbWFyeSAuZWRpdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItcGF5cm9sbC1zdW1tYXJ5IC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogNTQwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1wYXlyb2xsLXN1bW1hcnkgLndpZGdldC1saW5lcy1jb250YWluZXIgLmxpbmVzLWdyb3VwIC53aWRnZXQtbGluZSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm9yZGVyOiBzb2xpZCAxcHggd2hpdGU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1wYXlyb2xsLXN1bW1hcnkgLndpZGdldC1saW5lcy1jb250YWluZXIgLmxpbmVzLWdyb3VwIC53aWRnZXQtbGluZSAuc2VsZWN0aW9uLXRhZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICByaWdodDogMHB4O1xuICBtYXJnaW4tdG9wOiAtNnB4O1xuICB3aWR0aDogMTBweDtcbiAgaGVpZ2h0OiAyOXB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1wYXlyb2xsLXN1bW1hcnkgLndpZGdldC1saW5lcy1jb250YWluZXIgLmxpbmVzLWdyb3VwIC53aWRnZXQtbGluZTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNmUwZmI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1wYXlyb2xsLXN1bW1hcnkgLndpZGdldC1saW5lcy1jb250YWluZXIgLmxpbmVzLWdyb3VwIC53aWRnZXQtbGluZS5uby1zZWxlY3Qge1xuICBjdXJzb3I6IGF1dG87XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1wYXlyb2xsLXN1bW1hcnkgLndpZGdldC1saW5lcy1jb250YWluZXIgLmxpbmVzLWdyb3VwIC53aWRnZXQtbGluZS5uby1zZWxlY3Q6aG92ZXIge1xuICBjb2xvcjogIzYyNmQ2ZDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXBheXJvbGwtc3VtbWFyeSAucmlnaHQtcGFuZWwgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG1heC1oZWlnaHQ6IDIzNXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItcGF5cm9sbC1zdW1tYXJ5IC5uby1lbGVtZW50IHtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBjb2xvcjogIzVCNjY2NztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItcGF5cm9sbC1zdW1tYXJ5IC5yaWdodC1wYW5lbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG1heC1oZWlnaHQ6IDE0NXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItc2FsYXJpZXMtc3VtbWFyeSBoMy5sZWZ0IHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXNhbGFyaWVzLXN1bW1hcnkgaDMubGVmdCB7XG4gICAgbWFyZ2luLXRvcDogNjlweDtcbiAgfVxufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItc2FsYXJpZXMtc3VtbWFyeSBoMy5yZWR1Y2VkLWxlZnQge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItc2FsYXJpZXMtc3VtbWFyeSBoMy5yZWR1Y2VkLWxlZnQge1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gIH1cbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXNhbGFyaWVzLXN1bW1hcnkgaDMucmlnaHQge1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1zYWxhcmllcy1zdW1tYXJ5IC5wcmljZSB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1zYWxhcmllcy1zdW1tYXJ5IC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogNzVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXNhbGFyaWVzLXN1bW1hcnkgLndpZGdldC1saW5lcy1jb250YWluZXIgLndpZGdldC1saW5lIHtcbiAgZm9udC1zaXplOiAxMXB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDQ4MHB4KSBhbmQgKG1heC13aWR0aDogOTkxcHgpIHtcbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItc2FsYXJpZXMtc3VtbWFyeSAucmlnaHQtcGFuZWwgLmNoYXJ0LWNvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiAzMjBweDtcbiAgfVxufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItc3VwZXJhbm51YXRpb24tYWNjcnVhbHMgaDMge1xuICBtYXJnaW4tdG9wOiA2M3B4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1zdXBlcmFubnVhdGlvbi1hY2NydWFscyAubGVnZW5kIHtcbiAgbWFyZ2luLXRvcDogMjNweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXN1cGVyYW5udWF0aW9uLWFjY3J1YWxzIC5jdXJyZW5jeSB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXN1cGVyYW5udWF0aW9uLWFjY3J1YWxzIC5wcmljZSB7XG4gIGZvbnQtd2VpZ2h0OiA5MDA7XG4gIGZvbnQtc2l6ZTogMjJweDtcbiAgY29sb3I6ICM1QjY2Njc7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLXRvcDogMHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItdGltZXNoZWV0cyAuY3VycmVuY3kge1xuICBmb250LXNpemU6IDE0cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci10aW1lc2hlZXRzIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogMjEwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci13b3JrZm9yY2Utc3VtbWFyeSBoMy5sZWZ0IHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXdvcmtmb3JjZS1zdW1tYXJ5IGgzLmxlZnQge1xuICAgIG1hcmdpbi10b3A6IDY5cHg7XG4gIH1cbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXdvcmtmb3JjZS1zdW1tYXJ5IGgzLnJlZHVjZWQtbGVmdCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci13b3JrZm9yY2Utc3VtbWFyeSBoMy5yZWR1Y2VkLWxlZnQge1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gIH1cbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXdvcmtmb3JjZS1zdW1tYXJ5IGgzLnJpZ2h0IHtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItd29ya2ZvcmNlLXN1bW1hcnkgLnByaWNlIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXdvcmtmb3JjZS1zdW1tYXJ5IC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogNzVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXdvcmtmb3JjZS1zdW1tYXJ5IC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZSB7XG4gIGZvbnQtc2l6ZTogMTFweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA0ODBweCkgYW5kIChtYXgtd2lkdGg6IDk5MXB4KSB7XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXdvcmtmb3JjZS1zdW1tYXJ5IC5yaWdodC1wYW5lbCAuY2hhcnQtY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDMyMHB4O1xuICB9XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5pbnZvaWNlcy1hZ2VkLXBheWFibGVzLXJlY2VpdmFibGVzIHtcbiAgbWluLWhlaWdodDogNTY1cHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaW52b2ljZXMtYWdlZC1wYXlhYmxlcy1yZWNlaXZhYmxlcyB7XG4gICAgaGVpZ2h0OiA1NjVweDtcbiAgfVxuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5pbnZvaWNlcy1hZ2VkLXBheWFibGVzLXJlY2VpdmFibGVzIC5jaGFydC1jb250YWluZXIge1xuICAgIG1heC13aWR0aDogNTg1cHg7XG4gICAgbWF4LWhlaWdodDogNDQwcHg7XG4gICAgbWFyZ2luOiBhdXRvO1xuICB9XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5pbnZvaWNlcy1hZ2VkLXBheWFibGVzLXJlY2VpdmFibGVzIC5lZGl0IHtcbiAgbWF4LWhlaWdodDogNTQ1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5pbnZvaWNlcy1hZ2VkLXBheWFibGVzLXJlY2VpdmFibGVzIC5lZGl0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5pbnZvaWNlcy1hZ2VkLXBheWFibGVzLXJlY2VpdmFibGVzIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogNTQwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5pbnZvaWNlcy1hZ2VkLXBheWFibGVzLXJlY2VpdmFibGVzIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC5saW5lcy1ncm91cCAud2lkZ2V0LWxpbmUge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJvcmRlcjogc29saWQgMXB4IHdoaXRlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaW52b2ljZXMtYWdlZC1wYXlhYmxlcy1yZWNlaXZhYmxlcyAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAubGluZXMtZ3JvdXAgLndpZGdldC1saW5lIC5zZWxlY3Rpb24tdGFnIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHJpZ2h0OiAwcHg7XG4gIG1hcmdpbi10b3A6IC02cHg7XG4gIHdpZHRoOiAxMHB4O1xuICBoZWlnaHQ6IDI5cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50Lmludm9pY2VzLWFnZWQtcGF5YWJsZXMtcmVjZWl2YWJsZXMgLndpZGdldC1saW5lcy1jb250YWluZXIgLmxpbmVzLWdyb3VwIC53aWRnZXQtbGluZTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNmUwZmI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5pbnZvaWNlcy1hZ2VkLXBheWFibGVzLXJlY2VpdmFibGVzIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC5saW5lcy1ncm91cCAud2lkZ2V0LWxpbmUubm8tc2VsZWN0IHtcbiAgY3Vyc29yOiBhdXRvO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaW52b2ljZXMtYWdlZC1wYXlhYmxlcy1yZWNlaXZhYmxlcyAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAubGluZXMtZ3JvdXAgLndpZGdldC1saW5lLm5vLXNlbGVjdDpob3ZlciB7XG4gIGNvbG9yOiAjNjI2ZDZkO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaW52b2ljZXMtYWdlZC1wYXlhYmxlcy1yZWNlaXZhYmxlcyAucmlnaHQtcGFuZWwgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG1heC1oZWlnaHQ6IDIzNXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaW52b2ljZXMtYWdlZC1wYXlhYmxlcy1yZWNlaXZhYmxlcyAubm8tZWxlbWVudCB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgY29sb3I6ICM1QjY2Njc7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50Lmludm9pY2VzLWFnZWQtcGF5YWJsZXMtcmVjZWl2YWJsZXMgLnJpZ2h0LXBhbmVsIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogMjE1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5pbnZvaWNlcy1hZ2VkLXBheWFibGVzLXJlY2VpdmFibGVzIC5yb3cuYXN0ZXJpY2tzLWluZm8ge1xuICBtYXJnaW4tdG9wOiAxNXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaW52b2ljZXMtYWdlZC1wYXlhYmxlcy1yZWNlaXZhYmxlcyAuY3VycmVuY3ktY29udmVyc2lvbnMge1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbi1sZWZ0OiAzcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5pbnZvaWNlcy1saXN0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogMjMwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5pbnZvaWNlcy1saXN0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZTpudGgtY2hpbGQoZXZlbikge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmMGYwO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaW52b2ljZXMtbGlzdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmU6bnRoLWNoaWxkKG9kZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50Lmludm9pY2VzLWxpc3QgLndpZGdldC1saW5lcy1jb250YWluZXIgLndpZGdldC1saW5lLmhlYWRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaW52b2ljZXMtbGlzdCAuY3VycmVuY3ktY29udmVyc2lvbnMge1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbi1yaWdodDogM3B4O1xuICBtYXJnaW4tdG9wOiAtMnB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaW52b2ljZXMtbGlzdCAuZmEuZmEtaW5mby1jaXJjbGUge1xuICBmbG9hdDogcmlnaHQ7XG4gIGZvbnQtc2l6ZTogMTVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50Lmludm9pY2VzLWxpc3QgLnJpZ2h0LWNvbHVtbiB7XG4gIHBhZGRpbmctbGVmdDogMHB4O1xuICBwYWRkaW5nLXJpZ2h0OiAwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5pbnZvaWNlcy1zdW1tYXJ5IC5jaGFydC1jb250YWluZXIge1xuICBtYXgtd2lkdGg6IDQxMHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaW52b2ljZXMtc3VtbWFyeSAubGVnZW5kIHtcbiAgbWF4LWhlaWdodDogMjhweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWFnZWQge1xuICBtaW4taGVpZ2h0OiA1NjVweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1hZ2VkIHtcbiAgICBoZWlnaHQ6IDU2NXB4O1xuICB9XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWFnZWQgLmNoYXJ0LWNvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiA1ODVweDtcbiAgICBtYXgtaGVpZ2h0OiA0NDBweDtcbiAgICBtYXJnaW46IGF1dG87XG4gIH1cbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWFnZWQgLmVkaXQge1xuICBtYXgtaGVpZ2h0OiA1NDVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWFnZWQgLmVkaXQgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBvdmVyZmxvdy15OiBoaWRkZW47XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWFnZWQgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBtYXgtaGVpZ2h0OiAyMzhweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWJyZWFrLWV2ZW4gLnByaWNlIHtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgZm9udC1zaXplOiAyMnB4O1xuICBjb2xvcjogIzVCNjY2NztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tdG9wOiAwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1icmVhay1ldmVuIC5ibG9jayB7XG4gIG1hcmdpbjogNXB4O1xuICBwYWRkaW5nOiAwcHggMTBweCA1cHggMTBweDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgYm94LXNoYWRvdzogMHB4IDdweCAxMHB4IC03cHggIzE3MjYyZDtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtYnJlYWstZXZlbiAuYmxvY2sgZm9ybS5lZGl0YWJsZS13cmFwIC5lZGl0YWJsZS1jb250cm9scyBpbnB1dCB7XG4gIG1hcmdpbi10b3A6IDVweDtcbiAgd2lkdGg6IDEwMHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtYnJlYWstZXZlbiAuYmxvY2sudG8tZGF0ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMGYwZjA7XG4gIGNvbG9yOiAjNUI2NjY3O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtYnJlYWstZXZlbiAuYmxvY2sudG8tYnJlYWtldmVuIHtcbiAgbWFyZ2luLXRvcDogMTBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE5MjgzMTtcbiAgY29sb3I6ICMxZGU5YjY7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1icmVhay1ldmVuIC5ibG9jay50by1icmVha2V2ZW4gLnRpdGxlIHtcbiAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4ICMyYTQ0NTM7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1icmVhay1ldmVuIC5ibG9jay50by1icmVha2V2ZW4gLmRlZmluZS10ZXh0IHtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBjb2xvcjogIzVCNjY2NztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nLXRvcDogNXB4O1xuICBjb2xvcjogIzFkZTliNjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWJyZWFrLWV2ZW4gLmJsb2NrLnRvLWJyZWFrZXZlbiAucHJpY2Uge1xuICBjb2xvcjogIzFkZTliNjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWJyZWFrLWV2ZW4gLmJsb2NrIC50aXRsZSB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXZhcmlhbnQ6IHNtYWxsLWNhcHM7XG4gIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCAjZTZlZGVlO1xuICBmb250LXdlaWdodDogMzAwO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtY29tcGFyaXNvbiB7XG4gIG1pbi1oZWlnaHQ6IDU2NXB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWNvbXBhcmlzb24ge1xuICAgIGhlaWdodDogNTY1cHg7XG4gIH1cbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtY29tcGFyaXNvbiAuY2hhcnQtY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDU4NXB4O1xuICAgIG1heC1oZWlnaHQ6IDQ0MHB4O1xuICAgIG1hcmdpbjogYXV0bztcbiAgfVxufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtY29tcGFyaXNvbiAuZWRpdCB7XG4gIG1heC1oZWlnaHQ6IDU0NXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtY29tcGFyaXNvbiAuZWRpdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtY29tcGFyaXNvbiAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG1heC1oZWlnaHQ6IDU0MHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtY29tcGFyaXNvbiAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAubGluZXMtZ3JvdXAgLndpZGdldC1saW5lIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXI6IHNvbGlkIDFweCB3aGl0ZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWNvbXBhcmlzb24gLndpZGdldC1saW5lcy1jb250YWluZXIgLmxpbmVzLWdyb3VwIC53aWRnZXQtbGluZSAuc2VsZWN0aW9uLXRhZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICByaWdodDogMHB4O1xuICBtYXJnaW4tdG9wOiAtNnB4O1xuICB3aWR0aDogMTBweDtcbiAgaGVpZ2h0OiAyOXB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1jb21wYXJpc29uIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC5saW5lcy1ncm91cCAud2lkZ2V0LWxpbmU6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlMGZiO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtY29tcGFyaXNvbiAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAubGluZXMtZ3JvdXAgLndpZGdldC1saW5lLm5vLXNlbGVjdCB7XG4gIGN1cnNvcjogYXV0bztcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWNvbXBhcmlzb24gLndpZGdldC1saW5lcy1jb250YWluZXIgLmxpbmVzLWdyb3VwIC53aWRnZXQtbGluZS5uby1zZWxlY3Q6aG92ZXIge1xuICBjb2xvcjogIzYyNmQ2ZDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWNvbXBhcmlzb24gLnJpZ2h0LXBhbmVsIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBtYXgtaGVpZ2h0OiAyMzVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWNvbXBhcmlzb24gLm5vLWVsZW1lbnQge1xuICBmb250LXdlaWdodDogMzAwO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGNvbG9yOiAjNUI2NjY3O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1jb21wYXJpc29uIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogNTMwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1jb21wYXJpc29uIC5yaWdodC1wYW5lbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG1heC1oZWlnaHQ6IDI1MHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtY29tcGFyaXNvbiAuY3VycmVuY3ktY29udmVyc2lvbnMgaW1nIHtcbiAgbWFyZ2luLXRvcDogLTJweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWN1c3RvbWVyLWRldGFpbHMge1xuICBmb250LXNpemU6IDEycHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1jdXN0b21lci1kZXRhaWxzIC5sb2FkZXIge1xuICBmb250LXNpemU6IDE0cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1jdXN0b21lci1kZXRhaWxzIC5kZXRhaWxzLWNvbnRhaW5lciB7XG4gIHBhZGRpbmc6IDBweDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWN1c3RvbWVyLWRldGFpbHMgLmRldGFpbHMtY29udGFpbmVyIHtcbiAgICBtYXgtaGVpZ2h0OiAxOTRweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWN1c3RvbWVyLWRldGFpbHMgLnJpZ2h0LXBhbmVsIC5kZXRhaWxzLWNvbnRhaW5lciB7XG4gICAgbWF4LWhlaWdodDogMjMwcHg7XG4gIH1cbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWN1c3RvbWVyLWRldGFpbHMgLnJpZ2h0LXBhbmVsIC5sZWdlbmQge1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1jdXN0b21lci1kZXRhaWxzIC5yb3cudGl0bGUge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWN1c3RvbWVyLWRldGFpbHMgLmN1cnJlbmN5LWNvbnZlcnNpb25zIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbi1yaWdodDogM3B4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtY3ljbGUgLmNoYXJ0LWNvbnRhaW5lciB7XG4gIG1heC13aWR0aDogNDEwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1jeWNsZSAubGVnZW5kIHtcbiAgbWF4LWhlaWdodDogMjhweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWZvcmVjYXN0IHtcbiAgbWluLWhlaWdodDogNTY1cHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtZm9yZWNhc3Qge1xuICAgIGhlaWdodDogNTY1cHg7XG4gIH1cbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtZm9yZWNhc3QgLmNoYXJ0LWNvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiA1ODVweDtcbiAgICBtYXgtaGVpZ2h0OiA0NDBweDtcbiAgICBtYXJnaW46IGF1dG87XG4gIH1cbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWZvcmVjYXN0IC5lZGl0IHtcbiAgbWF4LWhlaWdodDogNTQ1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1mb3JlY2FzdCAuZWRpdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtZm9yZWNhc3QgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBtYXgtaGVpZ2h0OiAyNzVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWZvcmVjYXN0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZS5tYWluIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXI6IHNvbGlkIDFweCB3aGl0ZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWZvcmVjYXN0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZS5tYWluIC5zZWxlY3Rpb24tdGFnIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHJpZ2h0OiAwcHg7XG4gIG1hcmdpbi10b3A6IC02cHg7XG4gIHdpZHRoOiAxMHB4O1xuICBoZWlnaHQ6IDI5cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWZvcmVjYXN0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZS5tYWluOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTBmYjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWZvcmVjYXN0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZS5tYWluLm5vLXNlbGVjdCB7XG4gIGN1cnNvcjogYXV0bztcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWZvcmVjYXN0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZS5tYWluLm5vLXNlbGVjdDpob3ZlciB7XG4gIGNvbG9yOiAjNjI2ZDZkO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtZ3Jvd3RoIC5wcmljZSB7XG4gIGZvbnQtd2VpZ2h0OiA5MDA7XG4gIGZvbnQtc2l6ZTogMjJweDtcbiAgY29sb3I6ICM1QjY2Njc7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLXRvcDogMHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtZ3Jvd3RoIC5sZWdlbmQge1xuICBtYXgtaGVpZ2h0OiA0OXB4O1xuICBmb250LXNpemU6IDE0cHg7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbGVhZHMtZnVubmVsIHtcbiAgbWluLWhlaWdodDogNTY1cHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbGVhZHMtZnVubmVsIHtcbiAgICBoZWlnaHQ6IDU2NXB4O1xuICB9XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWxlYWRzLWZ1bm5lbCAuY2hhcnQtY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDU4NXB4O1xuICAgIG1heC1oZWlnaHQ6IDQ0MHB4O1xuICAgIG1hcmdpbjogYXV0bztcbiAgfVxufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbGVhZHMtZnVubmVsIC5lZGl0IHtcbiAgbWF4LWhlaWdodDogNTQ1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1sZWFkcy1mdW5uZWwgLmVkaXQgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBvdmVyZmxvdy15OiBoaWRkZW47XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWxlYWRzLWZ1bm5lbCAuZnVubmVsLWNvbnRhaW5lciB7XG4gIHdpZHRoOiA5NSU7XG4gIG1hcmdpbjogYXV0bztcbiAgbWFyZ2luLXRvcDogMTVweDtcbiAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgbWF4LWhlaWdodDogNTA1cHg7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbGVhZHMtZnVubmVsIC5yaWdodC1wYW5lbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG1heC1oZWlnaHQ6IDU0NXB4O1xuICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1sZWFkcy1mdW5uZWwgLnJpZ2h0LXBhbmVsIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZSB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWxlYWRzLWxpc3QgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBtYXgtaGVpZ2h0OiAyMzBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWxlYWRzLWxpc3QgLndpZGdldC1saW5lcy1jb250YWluZXIgLndpZGdldC1saW5lOm50aC1jaGlsZChldmVuKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMGYwZjA7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1sZWFkcy1saXN0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZTpudGgtY2hpbGQob2RkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbGVhZHMtbGlzdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmUuaGVhZGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1sZWFkcy1saXN0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1saXN0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogMjMwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1saXN0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZTpudGgtY2hpbGQoZXZlbikge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmMGYwO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbGlzdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmU6bnRoLWNoaWxkKG9kZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWxpc3QgLndpZGdldC1saW5lcy1jb250YWluZXIgLndpZGdldC1saW5lLmhlYWRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbGlzdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBtYXgtaGVpZ2h0OiAxNzBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWxpc3QgLndpZGdldC1saW5lcy1jb250YWluZXIubm8tc2Nyb2xsIHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1saXN0IC5zZWxlY3RvciB7XG4gIG1hcmdpbi1ib3R0b206IDRweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWxpc3QgLmN1cnJlbmN5LWNvbnZlcnNpb25zIGltZyB7XG4gIG1hcmdpbi10b3A6IC0ycHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1uZXQtc2FsZXMgLnZhbHVlLWNvbnRhaW5lcixcbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLW5ldC1zYWxlcyAub3BlcmF0b3Ige1xuICBsaW5lLWhlaWdodDogODVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLW5ldC1zYWxlcyAudmFsdWUtY29udGFpbmVyIC50aXRsZSB7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICBmb250LXNpemU6IDEuMmVtO1xuICBwYWRkaW5nOiAxMHB4IDBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLW5ldC1zYWxlcyAudmFsdWUtY29udGFpbmVyIC52YWx1ZS1ib3gge1xuICBmb250LXNpemU6IDEuM2VtO1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBib3JkZXItdG9wOiBzb2xpZCAxcHggI0M0Q0FDQTtcbiAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4ICNDNENBQ0E7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1uZXQtc2FsZXMgLm9wZXJhdG9yIHtcbiAgcGFkZGluZy10b3A6IDM4cHg7XG4gIGZvbnQtc2l6ZTogMS4zZW07XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbmV0LXNhbGVzIC52YWx1ZXMge1xuICAgIG1hcmdpbi10b3A6IDI1cHg7XG4gIH1cbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLW5ldy12cy1leGlzdGluZy1jdXN0b21lcnMgLnNlbGVjdG9yIC5zZWxlY3Rvci13cmFwIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW46IDAgNXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbmV3LXZzLWV4aXN0aW5nLWN1c3RvbWVycyAuY2hhcnQtY29udGFpbmVyIHtcbiAgbWFyZ2luLXRvcDogMTVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLW5ldy12cy1leGlzdGluZy1jdXN0b21lcnMgLmxlZ2VuZCB7XG4gIG1hcmdpbi10b3A6IDVweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIG1heC1oZWlnaHQ6IDc3cHggIWltcG9ydGFudDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLW5ldy12cy1leGlzdGluZy1jdXN0b21lcnMgLmxlZ2VuZCAucm93IHtcbiAgbWFyZ2luOiAwcHggLTVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLW5ldy12cy1leGlzdGluZy1jdXN0b21lcnMgLmxlZ2VuZCAucm93ID4gZGl2IHtcbiAgcGFkZGluZzogMHB4IDVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLW5ldy12cy1leGlzdGluZy1jdXN0b21lcnMgLmxlZ2VuZCAudG90YWwge1xuICBjb2xvcjogIzVCNjY2NztcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbnVtYmVyLW9mLWxlYWRzIC5zdGF0cyB7XG4gIG1hcmdpbi10b3A6IDM1cHg7XG4gIGZvbnQtc2l6ZTogMThweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLW51bWJlci1vZi1sZWFkcyAuc3RhdHMgLnN0YXQge1xuICBtYXJnaW46IDE1cHggMHB4IDEwcHggMHB4O1xuICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggI2U2ZWRlZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLW51bWJlci1vZi1sZWFkcyAuc3RhdHMgLnN0YXQgc3Bhbi50aXRsZSB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbnVtYmVyLW9mLWxlYWRzIC5zdGF0cyAuc3RhdCBzcGFuLm5vbWluYWwge1xuICBmbG9hdDogcmlnaHQ7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBmb250LXdlaWdodDogMzAwO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbnVtYmVyLW9mLWxlYWRzIC5zdGF0cyAuc3RhdCBzcGFuLnZhcmlhdGlvbiB7XG4gIGZsb2F0OiByaWdodDtcbiAgd2lkdGg6IDUwcHg7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgbWFyZ2luLXRvcDogMnB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtb3Bwb3J0dW5pdGllcy1mdW5uZWwge1xuICBtaW4taGVpZ2h0OiA1NjVweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1vcHBvcnR1bml0aWVzLWZ1bm5lbCB7XG4gICAgaGVpZ2h0OiA1NjVweDtcbiAgfVxuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1vcHBvcnR1bml0aWVzLWZ1bm5lbCAuY2hhcnQtY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDU4NXB4O1xuICAgIG1heC1oZWlnaHQ6IDQ0MHB4O1xuICAgIG1hcmdpbjogYXV0bztcbiAgfVxufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtb3Bwb3J0dW5pdGllcy1mdW5uZWwgLmVkaXQge1xuICBtYXgtaGVpZ2h0OiA1NDVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLW9wcG9ydHVuaXRpZXMtZnVubmVsIC5lZGl0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1vcHBvcnR1bml0aWVzLWZ1bm5lbCAuZnVubmVsLWNvbnRhaW5lciB7XG4gIHdpZHRoOiA5NSU7XG4gIG1hcmdpbjogYXV0bztcbiAgbWFyZ2luLXRvcDogMTVweDtcbiAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgbWF4LWhlaWdodDogNTA1cHg7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtb3Bwb3J0dW5pdGllcy1mdW5uZWwgLnJpZ2h0LXBhbmVsIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogNTQ1cHg7XG4gIG1hcmdpbi1yaWdodDogMTBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLW9wcG9ydHVuaXRpZXMtZnVubmVsIC5yaWdodC1wYW5lbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmUge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1wZXJmb3JtYW5jZSB7XG4gIG1pbi1oZWlnaHQ6IDU2NXB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXBlcmZvcm1hbmNlIHtcbiAgICBoZWlnaHQ6IDU2NXB4O1xuICB9XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXBlcmZvcm1hbmNlIC5jaGFydC1jb250YWluZXIge1xuICAgIG1heC13aWR0aDogNTg1cHg7XG4gICAgbWF4LWhlaWdodDogNDQwcHg7XG4gICAgbWFyZ2luOiBhdXRvO1xuICB9XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1wZXJmb3JtYW5jZSAuZWRpdCB7XG4gIG1heC1oZWlnaHQ6IDU0NXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtcGVyZm9ybWFuY2UgLmVkaXQgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBvdmVyZmxvdy15OiBoaWRkZW47XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXBlcmZvcm1hbmNlIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogNTQwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1wZXJmb3JtYW5jZSAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAubGluZXMtZ3JvdXAgLndpZGdldC1saW5lIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXI6IHNvbGlkIDFweCB3aGl0ZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXBlcmZvcm1hbmNlIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC5saW5lcy1ncm91cCAud2lkZ2V0LWxpbmUgLnNlbGVjdGlvbi10YWcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcmlnaHQ6IDBweDtcbiAgbWFyZ2luLXRvcDogLTZweDtcbiAgd2lkdGg6IDEwcHg7XG4gIGhlaWdodDogMjlweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtcGVyZm9ybWFuY2UgLndpZGdldC1saW5lcy1jb250YWluZXIgLmxpbmVzLWdyb3VwIC53aWRnZXQtbGluZTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNmUwZmI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1wZXJmb3JtYW5jZSAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAubGluZXMtZ3JvdXAgLndpZGdldC1saW5lLm5vLXNlbGVjdCB7XG4gIGN1cnNvcjogYXV0bztcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXBlcmZvcm1hbmNlIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC5saW5lcy1ncm91cCAud2lkZ2V0LWxpbmUubm8tc2VsZWN0OmhvdmVyIHtcbiAgY29sb3I6ICM2MjZkNmQ7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1wZXJmb3JtYW5jZSAucmlnaHQtcGFuZWwgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG1heC1oZWlnaHQ6IDIzNXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtcGVyZm9ybWFuY2UgLm5vLWVsZW1lbnQge1xuICBmb250LXdlaWdodDogMzAwO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGNvbG9yOiAjNUI2NjY3O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1wZXJmb3JtYW5jZSAucmlnaHQtcGFuZWwgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBtYXgtaGVpZ2h0OiAyMTVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXBlcmZvcm1hbmNlIC5yaWdodC1wYW5lbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmUuaGVhZGVyIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXI6IHNvbGlkIDFweCB3aGl0ZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXBlcmZvcm1hbmNlIC5yaWdodC1wYW5lbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmUuaGVhZGVyIC5zZWxlY3Rpb24tdGFnIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHJpZ2h0OiAwcHg7XG4gIG1hcmdpbi10b3A6IC02cHg7XG4gIHdpZHRoOiAxMHB4O1xuICBoZWlnaHQ6IDI5cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXBlcmZvcm1hbmNlIC5yaWdodC1wYW5lbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmUuaGVhZGVyOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTBmYjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXBlcmZvcm1hbmNlIC5yaWdodC1wYW5lbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmUuaGVhZGVyLm5vLXNlbGVjdCB7XG4gIGN1cnNvcjogYXV0bztcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXBlcmZvcm1hbmNlIC5yaWdodC1wYW5lbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmUuaGVhZGVyLm5vLXNlbGVjdDpob3ZlciB7XG4gIGNvbG9yOiAjNjI2ZDZkO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtc2VnbWVudGVkLXR1cm5vdmVyIGgzLnJpZ2h0IHtcbiAgbWFyZ2luLXRvcDogNTVweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtc2VnbWVudGVkLXR1cm5vdmVyIC5zZWxlY3RvciB7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1zZWdtZW50ZWQtdHVybm92ZXIgLmFuYWx5c2lzIHtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgZm9udC1zaXplOiAyMnB4O1xuICBjb2xvcjogIzVCNjY2NztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tdG9wOiAwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1zZWdtZW50ZWQtdHVybm92ZXIgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBtYXgtaGVpZ2h0OiA3NXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtc2VnbWVudGVkLXR1cm5vdmVyIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZSB7XG4gIGZvbnQtc2l6ZTogMTFweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXNlZ21lbnRlZC10dXJub3ZlciAucmlnaHQtcGFuZWwgaDMge1xuICBtYXJnaW46IDE1cHggMTBweCA1cHggMTBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtc2VnbWVudGVkLXR1cm5vdmVyIC5yaWdodC1wYW5lbCAuZmEuZmEtaW5mby1jaXJjbGUge1xuICBmbG9hdDogbGVmdDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXN1bW1hcnkgLmNoYXJ0LWNvbnRhaW5lciB7XG4gIG1heC13aWR0aDogNDEwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1zdW1tYXJ5IC5sZWdlbmQge1xuICBtYXgtaGVpZ2h0OiAyOHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtc3VtbWFyeSAuc2VsZWN0b3Ige1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy10b3AtY3VzdG9tZXJzIC5zZWxlY3RvciB7XG4gIGJvcmRlci1ib3R0b206IGRhc2hlZCAxcHggI0U2RTZFNjtcbiAgcGFkZGluZy1ib3R0b206IDNweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXRvcC1jdXN0b21lcnMgLnNlbGVjdG9yIGEge1xuICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtdG9wLWN1c3RvbWVycyAuc2VsZWN0b3IgLnBhcmFtLXNlbGVjdG9yIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtdG9wLWN1c3RvbWVycyAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG1heC1oZWlnaHQ6IDIzNXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtdG9wLWN1c3RvbWVycyAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmUuc3ViLWxpbmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmMGYwO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtdG9wLWN1c3RvbWVycyAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAucm93ID4gW2NsYXNzKj0nY29sLSddIHtcbiAgcG9zaXRpb246IHN0YXRpYztcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXRvcC1jdXN0b21lcnMgLmN1cnJlbmN5LWNvbnZlcnNpb25zIGltZyB7XG4gIG1hcmdpbi10b3A6IC0ycHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy10b3Atb3Bwb3J0dW5pdGllcyAub3Bwcy1jb250YWluZXIge1xuICBtYXgtaGVpZ2h0OiAxOTVweDtcbiAgbWFyZ2luLXRvcDogMTBweDtcbiAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtdG9wLW9wcG9ydHVuaXRpZXMgLm9wcHMtY29udGFpbmVyIC50aWxlIHtcbiAgaGVpZ2h0OiA0MHB4O1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy10b3Atb3Bwb3J0dW5pdGllcyAub3Bwcy1jb250YWluZXIgLnRpbGUgLmNvbG9yZWQtYXJlYSB7XG4gIHdpZHRoOiAxMCU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zaXplOiAyMHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtdG9wLW9wcG9ydHVuaXRpZXMgLm9wcHMtY29udGFpbmVyIC50aWxlIC5tYWluLXRleHQge1xuICBjb2xvcjogIzVCNjY2NztcbiAgcGFkZGluZzogM3B4IDBweCAwcHggMTBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXRvcC1vcHBvcnR1bml0aWVzIC5vcHBzLWNvbnRhaW5lciAudGlsZS5maXJzdCB7XG4gIGhlaWdodDogNTVweDtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXRvcC1vcHBvcnR1bml0aWVzIC5vcHBzLWNvbnRhaW5lciAudGlsZS5maXJzdCAuY29sb3JlZC1hcmVhIHtcbiAgZm9udC1zaXplOiAyNnB4O1xuICBwYWRkaW5nLXRvcDogMTBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNmU0MTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXRvcC1vcHBvcnR1bml0aWVzIC5vcHBzLWNvbnRhaW5lciAudGlsZS5maXJzdCAubWFpbi10ZXh0IHtcbiAgcGFkZGluZy10b3A6IDhweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXRvcC1vcHBvcnR1bml0aWVzIC5vcHBzLWNvbnRhaW5lciAudGlsZS5zZWNvbmQge1xuICBoZWlnaHQ6IDU1cHg7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXRvcC1vcHBvcnR1bml0aWVzIC5vcHBzLWNvbnRhaW5lciAudGlsZS5zZWNvbmQgLmNvbG9yZWQtYXJlYSB7XG4gIGZvbnQtc2l6ZTogMjZweDtcbiAgcGFkZGluZy10b3A6IDEwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxZGU5YjY7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy10b3Atb3Bwb3J0dW5pdGllcyAub3Bwcy1jb250YWluZXIgLnRpbGUuc2Vjb25kIC5tYWluLXRleHQge1xuICBwYWRkaW5nLXRvcDogOHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLnNlbGVjdC1hY2NvdW50IHtcbiAgcGFkZGluZzogMHB4IDVweDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLmFjY291bnRpbmctYmVoYXZpb3VyIC5idG4uYnRuLXByaW1hcnkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYmJhOWY1O1xuICBib3JkZXI6IHNvbGlkIDFweCAjOTc3YmYwO1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MuYWNjb3VudGluZy1iZWhhdmlvdXIgLmJ0bi5idG4tcHJpbWFyeS5mb2N1cyxcbi5hbmFseXRpY3MgLnNldHRpbmdzLmFjY291bnRpbmctYmVoYXZpb3VyIC5idG4uYnRuLXByaW1hcnkuYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk3N2JmMDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLmF0dGFjaC1rcGlzIC5hdHRhY2gta3BpIHtcbiAgcGFkZGluZzogOHB4IDVweDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLmF0dGFjaC1rcGlzIC5hdHRhY2gta3BpIGZvcm0gLnJvdyB7XG4gIHBhZGRpbmctYm90dG9tOiA1cHg7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5hdHRhY2gta3BpcyAuYXR0YWNoLWtwaSAuYXR0YWNoLWtwaS1mb3JtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG4gIHBhZGRpbmc6IDVweDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLmF0dGFjaC1rcGlzIC5hdHRhY2gta3BpIGZvcm0gLnJvdy5rcGktZGVzY3JpcHRpb24ge1xuICBwYWRkaW5nOiAxMHB4IDJweDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLmF0dGFjaC1rcGlzIC5hdHRhY2gta3BpIGZvcm0gLnJvdy5rcGktZGVzY3JpcHRpb24gc3BhbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zaXplOiAxM3B4O1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MuYXR0YWNoLWtwaXMgLmF0dGFjaC1rcGkgZm9ybS5hdHRhY2gta3BpLWZvcm0gaW5wdXQuYXR0YWNoLXRhcmdldCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBoZWlnaHQ6IGluaGVyaXQ7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5hdHRhY2gta3BpcyAuYXR0YWNoLWtwaSAuZXJyb3ItbWVzc2FnZXMge1xuICBjb2xvcjogI2UwMWY3NDtcbiAgd2lkdGg6IDEyMHB4O1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MuYXR0YWNoLWtwaXMgLmF0dGFjaGVkLWtwaXMge1xuICBwYWRkaW5nOiA1cHg7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5hdHRhY2gta3BpcyAubGlzdC1ncm91cC1pdGVtLmF0dGFjaGVkLWtwaSB7XG4gIHBhZGRpbmc6IDVweCAxMHB4O1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MuYXR0YWNoLWtwaXMgLmxpc3QtZ3JvdXAtaXRlbS5hdHRhY2hlZC1rcGkgLmF0dGFjaGVkLWtwaS1uYW1lIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd2lkdGg6IDc1JTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgbWFyZ2luLXRvcDogM3B4O1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MuYXR0YWNoLWtwaXMgLmxpc3QtZ3JvdXAtaXRlbS5hdHRhY2hlZC1rcGkgLmFjdGlvbnMge1xuICBwYWRkaW5nLXRvcDogMnB4O1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MuYXR0YWNoLWtwaXMgLmxpc3QtZ3JvdXAtaXRlbS5hdHRhY2hlZC1rcGkgLmFjdGlvbnMgLmFsZXJ0cy1jb25maWcge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHBhZGRpbmctbGVmdDogNHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDQwcHg7XG4gIHdpZHRoOiAyMXB4O1xuICBjb2xvcjogIzM1OGZkYztcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGJvcmRlcjogc29saWQgMXB4ICMzNThmZGM7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5hdHRhY2gta3BpcyAubGlzdC1ncm91cC1pdGVtLmF0dGFjaGVkLWtwaSAuYWN0aW9ucyAuYWxlcnRzLWNvbmZpZzpob3ZlciB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLmF0dGFjaC1rcGlzIC5saXN0LWdyb3VwLWl0ZW0uYXR0YWNoZWQta3BpIC5hY3Rpb25zIC5lZGl0LWF0dGFjaGVkLWtwaSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLmF0dGFjaC1rcGlzIC5saXN0LWdyb3VwLWl0ZW0uYXR0YWNoZWQta3BpIC5hY3Rpb25zIC5lZGl0LWF0dGFjaGVkLWtwaSBpIHtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgd2lkdGg6IDIxcHg7XG4gIGNvbG9yOiAjMzU4ZmRjO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgaGVpZ2h0OiAyMHB4O1xuICBwYWRkaW5nOiAzcHggNXB4IDVweCA1cHg7XG4gIGJvcmRlcjogc29saWQgMXB4ICMzNThmZGM7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5hdHRhY2gta3BpcyAubGlzdC1ncm91cC1pdGVtLmF0dGFjaGVkLWtwaSAuYWN0aW9ucyAuZWRpdC1hdHRhY2hlZC1rcGkgaTpob3ZlciB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLmF0dGFjaC1rcGlzIC5saXN0LWdyb3VwLWl0ZW0uYXR0YWNoZWQta3BpIC5hY3Rpb25zIC5yZW1vdmUtYXR0YWNoZWQta3BpIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MuYXR0YWNoLWtwaXMgLmxpc3QtZ3JvdXAtaXRlbS5hdHRhY2hlZC1rcGkgLmFjdGlvbnMgLnJlbW92ZS1hdHRhY2hlZC1rcGkgaSB7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIHdpZHRoOiAyMXB4O1xuICBjb2xvcjogI2UwMWY3NDtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGhlaWdodDogMjBweDtcbiAgcGFkZGluZzogM3B4IDVweCA1cHggNXB4O1xuICBib3JkZXI6IHNvbGlkIDFweCAjZTAxZjc0O1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MuYXR0YWNoLWtwaXMgLmxpc3QtZ3JvdXAtaXRlbS5hdHRhY2hlZC1rcGkgLmFjdGlvbnMgLnJlbW92ZS1hdHRhY2hlZC1rcGkgaTpob3ZlciB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5zZWxlY3QtYWNjb3VudCB7XG4gIHBhZGRpbmc6IDBweCA1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3MuY2hhcnQtZmlsdGVycyAucm93IHtcbiAgbWFyZ2luOiAwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3MuY2hhcnQtZmlsdGVycyBpbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICBtYXJnaW46IDA7XG4gIG1hcmdpbi1yaWdodDogM3B4O1xuICBwYWRkaW5nOiAwO1xuICB3aWR0aDogMTNweDtcbiAgaGVpZ2h0OiAxM3B4O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogLTFweDtcbiAgb3V0bGluZTogbm9uZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5jaGFydC1maWx0ZXJzIGlucHV0W3R5cGU9XCJyYW5nZVwiXSB7XG4gIGhlaWdodDogYXV0bztcbiAgd2lkdGg6IDEwMCU7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5kYXRlcy1waWNrZXIgaDUge1xuICBkaXNwbGF5OiBub25lO1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MuZGF0ZXMtcGlja2VyIGJ1dHRvbi5idG4uYnRuLXNtIHtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5kYXRlcy1waWNrZXIgYnV0dG9uLmJ0bi5idG4tc20uZGF0ZS1idXR0b24ge1xuICBtYXJnaW46IDBweCA1cHg7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5kYXRlcy1waWNrZXIgYnV0dG9uLmJ0bi5idG4tc20uYnRuLWRhbmdlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5kYXRlcy1waWNrZXIgYnV0dG9uLmJ0bi5idG4tc20uYnRuLWluZm8ge1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5kYXRlcy1waWNrZXIgLnRvb2x0aXAtaW5uZXIge1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLmRhdGVzLXBpY2tlciAuZHJvcGRvd24tbWVudSA+IGxpID4gZGl2ID4gdGFibGUge1xuICBvdXRsaW5lOiBub25lO1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MuZm9yZWNhc3QtcGF5cm9sbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmUge1xuICBwYWRkaW5nOiA1cHggMTBweCA1cHggMThweDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLmZvcmVjYXN0LXBheXJvbGwgLndpZGdldC1saW5lcy1jb250YWluZXIgLndpZGdldC1saW5lOm50aC1jaGlsZChldmVuKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmM2Y0ZjQ7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5mb3JlY2FzdC1wYXlyb2xsIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZTpudGgtY2hpbGQob2RkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MuZm9yZWNhc3QtcGF5cm9sbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmUgLmZhIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBmb250LXNpemU6IDIwcHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLmZvcmVjYXN0LXBheXJvbGwgLndpZGdldC1saW5lcy1jb250YWluZXIgLndpZGdldC1saW5lIC5mYS5mYS10b2dnbGUtb24ge1xuICBjb2xvcjogIzk3N2JmMDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLmZvcmVjYXN0LXBheXJvbGwgLndpZGdldC1saW5lcy1jb250YWluZXIgLndpZGdldC1saW5lIC5mYS5mYS10b2dnbGUtb2ZmIHtcbiAgY29sb3I6ICM5YmE2YTc7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3MuaGlzdC1tb2RlLWNob3NlciB7XG4gIG1heC1oZWlnaHQ6IDcwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3MuaGlzdC1tb2RlLWNob3NlciBbY29tbW9uLXRpbWUtcGVyaW9kLWluZm9dIHtcbiAgcGFkZGluZy1ib3R0b206IDhweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5oaXN0LW1vZGUtY2hvc2VyIC5vcHRpb25zIHtcbiAgd2lkdGg6IDE1MHB4O1xuICBtYXJnaW46IGF1dG87XG4gIHBhZGRpbmctYm90dG9tOiA4cHg7XG4gIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCAjZTZlNmU2O1xuICBmb250LXdlaWdodDogNTAwO1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiAjYzRjYWNhO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLmhpc3QtbW9kZS1jaG9zZXIgLm9wdGlvbnMgYSB7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6ICNjNGNhY2E7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3MuaGlzdC1tb2RlLWNob3NlciAub3B0aW9ucyBhLmFjdGl2ZSB7XG4gIGNvbG9yOiAjOTc3YmYwO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLmhpc3QtbW9kZS1jaG9zZXIgLmFycm93LWNvbnRhaW5lciB7XG4gIHdpZHRoOiAyOHB4O1xuICBoZWlnaHQ6IDI4cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAtMTRweDtcbiAgbWFyZ2luOiBhdXRvO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLmhpc3QtbW9kZS1jaG9zZXIgLmFycm93LWNvbnRhaW5lci5yaWdodCB7XG4gIGxlZnQ6IDQ2cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3MuaGlzdC1tb2RlLWNob3NlciAuYXJyb3ctY29udGFpbmVyLmxlZnQge1xuICBsZWZ0OiAtMzBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5oaXN0LW1vZGUtY2hvc2VyIC5hcnJvdy1jb250YWluZXIgLmFycm93LWJvcmRlciB7XG4gIGJvcmRlci10b3A6IDE0cHggc29saWQgI2U2ZTZlNjtcbiAgYm9yZGVyLWxlZnQ6IDE0cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yaWdodDogMTRweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgd2lkdGg6IDBweDtcbiAgaGVpZ2h0OiAwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3MuaGlzdC1tb2RlLWNob3NlciAuYXJyb3ctY29udGFpbmVyIC5hcnJvdyB7XG4gIGJvcmRlci10b3A6IDE0cHggc29saWQgd2hpdGU7XG4gIGJvcmRlci1sZWZ0OiAxNHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmlnaHQ6IDE0cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAxMnB4O1xuICB3aWR0aDogMHB4O1xuICBoZWlnaHQ6IDBweDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLmxpbWl0LWVudHJpZXMge1xuICBjb2xvcjogIzFFMzAzQjtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3JkZXItYm90dG9tOiBkYXNoZWQgMXB4ICNFNkU2RTY7XG4gIHBhZGRpbmctYm90dG9tOiA4cHg7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5saW1pdC1lbnRyaWVzIGEub3B0aW9uLmJhZGdlIHtcbiAgY29sb3I6IHdoaXRlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMUUzMDNCO1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3Mub2Zmc2V0cyAub2Zmc2V0LXZhbHVlIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBmb250LXNpemU6IDEzcHg7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5vZmZzZXRzIC5vZmZzZXQtdmFsdWUgLmZhLXRyYXNoLW8ge1xuICBtYXJnaW4tbGVmdDogMTBweDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLm9mZnNldHMgLm9mZnNldC12YWx1ZSAuZmEtdHJhc2gtbzpob3ZlciB7XG4gIGNvbG9yOiAjZTAxZjc0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5vZmZzZXRzIGlucHV0IHtcbiAgd2lkdGg6IDc1JTtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLm9mZnNldHMgYnV0dG9uIHtcbiAgd2lkdGg6IDMwcHg7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5vcmdhbml6YXRpb25zIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZSB7XG4gIHBhZGRpbmc6IDVweCAxMHB4IDVweCAxOHB4O1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3Mub3JnYW5pemF0aW9ucyAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmU6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YzZjRmNDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLm9yZ2FuaXphdGlvbnMgLndpZGdldC1saW5lcy1jb250YWluZXIgLndpZGdldC1saW5lOm50aC1jaGlsZChvZGQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5vcmdhbml6YXRpb25zIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZSAuZmEge1xuICBmbG9hdDogcmlnaHQ7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3Mub3JnYW5pemF0aW9ucyAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmUgLmZhLmZhLXRvZ2dsZS1vbixcbi5hbmFseXRpY3MgLnNldHRpbmdzLm9yZ2FuaXphdGlvbnMgLndpZGdldC1saW5lcy1jb250YWluZXIgLndpZGdldC1saW5lIC5mYS5mYS1jaGVjay1jaXJjbGUge1xuICBjb2xvcjogIzk3N2JmMDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLm9yZ2FuaXphdGlvbnMgLndpZGdldC1saW5lcy1jb250YWluZXIgLndpZGdldC1saW5lIC5mYS5mYS10b2dnbGUtb2ZmLFxuLmFuYWx5dGljcyAuc2V0dGluZ3Mub3JnYW5pemF0aW9ucyAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmUgLmZhLmZhLWNpcmNsZS10aGluIHtcbiAgY29sb3I6ICM5YmE2YTc7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3MucGFyYW0tc2VsZWN0b3Ige1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3MucGFyYW0tc2VsZWN0b3IuY2xhc3NpYyB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLnBhcmFtLXNlbGVjdG9yLmNsYXNzaWMgc2VsZWN0IHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMjVweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbWFyZ2luOiAwcHggMHB4IDVweCAwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3MucGFyYW0tc2VsZWN0b3IgYSB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGNvbG9yOiAjOTc3YmYwO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLnBhcmFtLXNlbGVjdG9yIC5vcHRpb25zLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIG1pbi13aWR0aDogMTUwcHg7XG4gIG1heC1oZWlnaHQ6IDIwMHB4O1xuICB6LWluZGV4OiA5OTk7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAjMDAwMDAwIDBweCAzcHggMTVweCAtM3B4O1xuICBib3gtc2hhZG93OiAjMDAwMDAwIDBweCAzcHggMTVweCAtM3B4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLnBhcmFtLXNlbGVjdG9yIC5vcHRpb25zLWNvbnRhaW5lciAucGFyYW0tc2VsZWN0b3ItbGFiZWwge1xuICBwYWRkaW5nOiAzcHggNXB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGNvbG9yOiBibGFjaztcbiAgY3Vyc29yOiB0ZXh0O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgbGluZS1oZWlnaHQ6IDEuOTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5wYXJhbS1zZWxlY3RvciAub3B0aW9ucy1jb250YWluZXIgLnBhcmFtLXNlbGVjdG9yLWxhYmVsOmhvdmVyIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTc3YmYwO1xuICBjb2xvcjogd2hpdGU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3MucGFyYW0tc2VsZWN0b3IgLm9wdGlvbnMtY29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhciB7XG4gIHdpZHRoOiA4cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkN2UyZTQ7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3MucGFyYW0tc2VsZWN0b3IgLm9wdGlvbnMtY29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5NzdiZjA7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3MucGFyYW0tc2VsZWN0b3IgLm9wdGlvbnMtY29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNhOTkyZjM7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5wYXJhbXMtY2hlY2tib3hlcyB7XG4gIHBhZGRpbmc6IDJweCAwcHg7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5wYXJhbXMtY2hlY2tib3hlcyBpbnB1dCB7XG4gIG1hcmdpbjogMDtcbiAgaGVpZ2h0OiBpbmhlcml0O1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MucGFyYW1zLWNoZWNrYm94ZXMgc3BhbiB7XG4gIG1hcmdpbi1sZWZ0OiA1cHg7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5wYXJhbXMtY2hlY2tib3hlcyBsYWJlbCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBsaW5lLWhlaWdodDogMTRweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5wYXJhbXMtcGlja2VyIHtcbiAgcGFkZGluZzogMHB4IDEwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3MucGFyYW1zLXBpY2tlciAucGFyYW1ldGVyIHtcbiAgbWFyZ2luOiAwcHggM3B4IDNweCAwcHg7XG4gIHBhZGRpbmc6IDNweCA1cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxRTMwM0I7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYm9yZGVyOiBzb2xpZCAxcHggIzFFMzAzQjtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBjdXJzb3I6IG1vdmU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBmbG9hdDogbGVmdDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5wYXJhbXMtcGlja2VyIC5wYXJhbWV0ZXIgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgbWFyZ2luOiAwcHggLTNweCAwcHggM3B4O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBoZWlnaHQ6IGluaGVyaXQ7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5wYXJhbXMtcGlja2VyIC5wYXJhbWV0ZXIgLmJhZGdlIHtcbiAgbWFyZ2luLXJpZ2h0OiAzcHg7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YyZjJmMjtcbiAgY29sb3I6ICMxRTMwM0I7XG4gIHBhZGRpbmc6IDJweCA2cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3MucGFyYW1zLXBpY2tlciAucGFyYW1ldGVyLnVuY2hlY2tlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBib3JkZXItY29sb3I6ICNjMmM0YzQ7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3MucGFyYW1zLXBpY2tlciAucGFyYW1ldGVyLnVuY2hlY2tlZCAuYmFkZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzJjNGM0O1xuICBjb2xvcjogd2hpdGU7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy50YWctZmlsdGVyIHtcbiAgcGFkZGluZzogMHB4IDVweDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLnRhZy1maWx0ZXIgLmJ0bi5idG4tZGVmYXVsdCB7XG4gIGhlaWdodDogMzJweDtcbiAgd2lkdGg6IDMwcHg7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy50YWctZmlsdGVyIC50YWctbGluZXMtY29udGFpbmVyIHtcbiAgcGFkZGluZzogMHB4IDEwcHg7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy50YWctZmlsdGVyIC50YWctbGluZXMtY29udGFpbmVyIC50YWctbGluZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy50YWctZmlsdGVyIC50YWctbGluZXMtY29udGFpbmVyIC50YWctbGluZSAudGFncy1jb2wge1xuICBwb3NpdGlvbjogc3RhdGljO1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MudGFnLWZpbHRlciAudGFnLWxpbmVzLWNvbnRhaW5lciAudGFnLWxpbmUgdGFncy1pbnB1dCAudGFncyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYm9yZGVyOiBzb2xpZCAxcHggI2NjYztcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLnRhZy1maWx0ZXIgLnRhZy1saW5lcy1jb250YWluZXIgLnRhZy1saW5lIHRhZ3MtaW5wdXQgLnRhZ3MgLnRhZy1pdGVtIHtcbiAgYmFja2dyb3VuZDogIzc5YTJiYjtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBjb2xvcjogd2hpdGU7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy50YWctZmlsdGVyIC50YWctbGluZXMtY29udGFpbmVyIC50YWctbGluZSAuaG9zdCB7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy50aW1lLXBlcmlvZCB7XG4gIHBhZGRpbmc6IDBweCA1cHg7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy50aW1lLXBlcmlvZCBzZWxlY3Qge1xuICBoZWlnaHQ6IDIycHg7XG4gIHdpZHRoOiAxMDAlO1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MudGltZS1wZXJpb2QgPiAucm93IHtcbiAgbWFyZ2luOiAwcHggLTVweCA3cHggLTVweDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLnRpbWUtcGVyaW9kID4gLnJvdyA+IGRpdiB7XG4gIHBhZGRpbmc6IDBweCA1cHg7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy50aW1lLXBlcmlvZCA+IC5yb3cgLnN1Yi1zZXR0aW5nIHtcbiAgcGFkZGluZzogNXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLndpZHRoIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBmb250LXNpemU6IDE0cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3Mud2lkdGggaSB7XG4gIGNvbG9yOiBzaWx2ZXI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy53aWR0aCBpLnJlZHVjZSB7XG4gIG1hcmdpbi1yaWdodDogLTEwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3Mud2lkdGggaS5leHBhbmQge1xuICBtYXJnaW4tcmlnaHQ6IC0zcHg7XG59XG4vKiBlbmRpbmplY3QgKi9cbiIsIi8qISBub3JtYWxpemUuY3NzIHYzLjAuMyB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9cblxuLy9cbi8vIDEuIFNldCBkZWZhdWx0IGZvbnQgZmFtaWx5IHRvIHNhbnMtc2VyaWYuXG4vLyAyLiBQcmV2ZW50IGlPUyBhbmQgSUUgdGV4dCBzaXplIGFkanVzdCBhZnRlciBkZXZpY2Ugb3JpZW50YXRpb24gY2hhbmdlLFxuLy8gICAgd2l0aG91dCBkaXNhYmxpbmcgdXNlciB6b29tLlxuLy9cblxuaHRtbCB7XG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOyAvLyAxXG4gIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvLyAyXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLy8gMlxufVxuXG4vL1xuLy8gUmVtb3ZlIGRlZmF1bHQgbWFyZ2luLlxuLy9cblxuYm9keSB7XG4gIG1hcmdpbjogMDtcbn1cblxuLy8gSFRNTDUgZGlzcGxheSBkZWZpbml0aW9uc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy9cbi8vIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBhbnkgSFRNTDUgZWxlbWVudCBpbiBJRSA4LzkuXG4vLyBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYGRldGFpbHNgIG9yIGBzdW1tYXJ5YCBpbiBJRSAxMC8xMVxuLy8gYW5kIEZpcmVmb3guXG4vLyBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYG1haW5gIGluIElFIDExLlxuLy9cblxuYXJ0aWNsZSxcbmFzaWRlLFxuZGV0YWlscyxcbmZpZ2NhcHRpb24sXG5maWd1cmUsXG5mb290ZXIsXG5oZWFkZXIsXG5oZ3JvdXAsXG5tYWluLFxubWVudSxcbm5hdixcbnNlY3Rpb24sXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8vXG4vLyAxLiBDb3JyZWN0IGBpbmxpbmUtYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgaW4gSUUgOC85LlxuLy8gMi4gTm9ybWFsaXplIHZlcnRpY2FsIGFsaWdubWVudCBvZiBgcHJvZ3Jlc3NgIGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuLy9cblxuYXVkaW8sXG5jYW52YXMsXG5wcm9ncmVzcyxcbnZpZGVvIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyAvLyAxXG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgLy8gMlxufVxuXG4vL1xuLy8gUHJldmVudCBtb2Rlcm4gYnJvd3NlcnMgZnJvbSBkaXNwbGF5aW5nIGBhdWRpb2Agd2l0aG91dCBjb250cm9scy5cbi8vIFJlbW92ZSBleGNlc3MgaGVpZ2h0IGluIGlPUyA1IGRldmljZXMuXG4vL1xuXG5hdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICBkaXNwbGF5OiBub25lO1xuICBoZWlnaHQ6IDA7XG59XG5cbi8vXG4vLyBBZGRyZXNzIGBbaGlkZGVuXWAgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAuXG4vLyBIaWRlIHRoZSBgdGVtcGxhdGVgIGVsZW1lbnQgaW4gSUUgOC85LzEwLzExLCBTYWZhcmksIGFuZCBGaXJlZm94IDwgMjIuXG4vL1xuXG5baGlkZGVuXSxcbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLy8gTGlua3Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vXG4vLyBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBjb2xvciBmcm9tIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbi8vXG5cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLy9cbi8vIEltcHJvdmUgcmVhZGFiaWxpdHkgb2YgZm9jdXNlZCBlbGVtZW50cyB3aGVuIHRoZXkgYXJlIGFsc28gaW4gYW5cbi8vIGFjdGl2ZS9ob3ZlciBzdGF0ZS5cbi8vXG5cbmE6YWN0aXZlLFxuYTpob3ZlciB7XG4gIG91dGxpbmU6IDA7XG59XG5cbi8vIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vL1xuLy8gQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC8xMSwgU2FmYXJpLCBhbmQgQ2hyb21lLlxuLy9cblxuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkO1xufVxuXG4vL1xuLy8gQWRkcmVzcyBzdHlsZSBzZXQgdG8gYGJvbGRlcmAgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuLy9cblxuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vL1xuLy8gQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuLy9cblxuZGZuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4vL1xuLy8gQWRkcmVzcyB2YXJpYWJsZSBgaDFgIGZvbnQtc2l6ZSBhbmQgbWFyZ2luIHdpdGhpbiBgc2VjdGlvbmAgYW5kIGBhcnRpY2xlYFxuLy8gY29udGV4dHMgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuLy9cblxuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAwLjY3ZW0gMDtcbn1cblxuLy9cbi8vIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkuXG4vL1xuXG5tYXJrIHtcbiAgYmFja2dyb3VuZDogI2ZmMDtcbiAgY29sb3I6ICMwMDA7XG59XG5cbi8vXG4vLyBBZGRyZXNzIGluY29uc2lzdGVudCBhbmQgdmFyaWFibGUgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbi8vXG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG59XG5cbi8vXG4vLyBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBhZmZlY3RpbmcgYGxpbmUtaGVpZ2h0YCBpbiBhbGwgYnJvd3NlcnMuXG4vL1xuXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG4vLyBFbWJlZGRlZCBjb250ZW50XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vL1xuLy8gUmVtb3ZlIGJvcmRlciB3aGVuIGluc2lkZSBgYWAgZWxlbWVudCBpbiBJRSA4LzkvMTAuXG4vL1xuXG5pbWcge1xuICBib3JkZXI6IDA7XG59XG5cbi8vXG4vLyBDb3JyZWN0IG92ZXJmbG93IG5vdCBoaWRkZW4gaW4gSUUgOS8xMC8xMS5cbi8vXG5cbnN2Zzpub3QoOnJvb3QpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLy8gR3JvdXBpbmcgY29udGVudFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy9cbi8vIEFkZHJlc3MgbWFyZ2luIG5vdCBwcmVzZW50IGluIElFIDgvOSBhbmQgU2FmYXJpLlxuLy9cblxuZmlndXJlIHtcbiAgbWFyZ2luOiAxZW0gNDBweDtcbn1cblxuLy9cbi8vIEFkZHJlc3MgZGlmZmVyZW5jZXMgYmV0d2VlbiBGaXJlZm94IGFuZCBvdGhlciBicm93c2Vycy5cbi8vXG5cbmhyIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGhlaWdodDogMDtcbn1cblxuLy9cbi8vIENvbnRhaW4gb3ZlcmZsb3cgaW4gYWxsIGJyb3dzZXJzLlxuLy9cblxucHJlIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8vXG4vLyBBZGRyZXNzIG9kZCBgZW1gLXVuaXQgZm9udCBzaXplIHJlbmRlcmluZyBpbiBhbGwgYnJvd3NlcnMuXG4vL1xuXG5jb2RlLFxua2JkLFxucHJlLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgZm9udC1zaXplOiAxZW07XG59XG5cbi8vIEZvcm1zXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vL1xuLy8gS25vd24gbGltaXRhdGlvbjogYnkgZGVmYXVsdCwgQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWCBhbGxvdyB2ZXJ5IGxpbWl0ZWRcbi8vIHN0eWxpbmcgb2YgYHNlbGVjdGAsIHVubGVzcyBhIGBib3JkZXJgIHByb3BlcnR5IGlzIHNldC5cbi8vXG5cbi8vXG4vLyAxLiBDb3JyZWN0IGNvbG9yIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4vLyAgICBLbm93biBpc3N1ZTogYWZmZWN0cyBjb2xvciBvZiBkaXNhYmxlZCBlbGVtZW50cy5cbi8vIDIuIENvcnJlY3QgZm9udCBwcm9wZXJ0aWVzIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4vLyAzLiBBZGRyZXNzIG1hcmdpbnMgc2V0IGRpZmZlcmVudGx5IGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbi8vXG5cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGNvbG9yOiBpbmhlcml0OyAvLyAxXG4gIGZvbnQ6IGluaGVyaXQ7IC8vIDJcbiAgbWFyZ2luOiAwOyAvLyAzXG59XG5cbi8vXG4vLyBBZGRyZXNzIGBvdmVyZmxvd2Agc2V0IHRvIGBoaWRkZW5gIGluIElFIDgvOS8xMC8xMS5cbi8vXG5cbmJ1dHRvbiB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4vL1xuLy8gQWRkcmVzcyBpbmNvbnNpc3RlbnQgYHRleHQtdHJhbnNmb3JtYCBpbmhlcml0YW5jZSBmb3IgYGJ1dHRvbmAgYW5kIGBzZWxlY3RgLlxuLy8gQWxsIG90aGVyIGZvcm0gY29udHJvbCBlbGVtZW50cyBkbyBub3QgaW5oZXJpdCBgdGV4dC10cmFuc2Zvcm1gIHZhbHVlcy5cbi8vIENvcnJlY3QgYGJ1dHRvbmAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveCwgSUUgOC85LzEwLzExLCBhbmQgT3BlcmEuXG4vLyBDb3JyZWN0IGBzZWxlY3RgIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3guXG4vL1xuXG5idXR0b24sXG5zZWxlY3Qge1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLy9cbi8vIDEuIEF2b2lkIHRoZSBXZWJLaXQgYnVnIGluIEFuZHJvaWQgNC4wLiogd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gXG4vLyAgICBhbmQgYHZpZGVvYCBjb250cm9scy5cbi8vIDIuIENvcnJlY3QgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSBgaW5wdXRgIHR5cGVzIGluIGlPUy5cbi8vIDMuIEltcHJvdmUgdXNhYmlsaXR5IGFuZCBjb25zaXN0ZW5jeSBvZiBjdXJzb3Igc3R5bGUgYmV0d2VlbiBpbWFnZS10eXBlXG4vLyAgICBgaW5wdXRgIGFuZCBvdGhlcnMuXG4vL1xuXG5idXR0b24sXG5odG1sIGlucHV0W3R5cGU9XCJidXR0b25cIl0sIC8vIDFcbmlucHV0W3R5cGU9XCJyZXNldFwiXSxcbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLy8gMlxuICBjdXJzb3I6IHBvaW50ZXI7IC8vIDNcbn1cblxuLy9cbi8vIFJlLXNldCBkZWZhdWx0IGN1cnNvciBmb3IgZGlzYWJsZWQgZWxlbWVudHMuXG4vL1xuXG5idXR0b25bZGlzYWJsZWRdLFxuaHRtbCBpbnB1dFtkaXNhYmxlZF0ge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi8vXG4vLyBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgYm9yZGVyIGluIEZpcmVmb3ggNCsuXG4vL1xuXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5pbnB1dDo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuLy9cbi8vIEFkZHJlc3MgRmlyZWZveCA0KyBzZXR0aW5nIGBsaW5lLWhlaWdodGAgb24gYGlucHV0YCB1c2luZyBgIWltcG9ydGFudGAgaW5cbi8vIHRoZSBVQSBzdHlsZXNoZWV0LlxuLy9cblxuaW5wdXQge1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xufVxuXG4vL1xuLy8gSXQncyByZWNvbW1lbmRlZCB0aGF0IHlvdSBkb24ndCBhdHRlbXB0IHRvIHN0eWxlIHRoZXNlIGVsZW1lbnRzLlxuLy8gRmlyZWZveCdzIGltcGxlbWVudGF0aW9uIGRvZXNuJ3QgcmVzcGVjdCBib3gtc2l6aW5nLCBwYWRkaW5nLCBvciB3aWR0aC5cbi8vXG4vLyAxLiBBZGRyZXNzIGJveCBzaXppbmcgc2V0IHRvIGBjb250ZW50LWJveGAgaW4gSUUgOC85LzEwLlxuLy8gMi4gUmVtb3ZlIGV4Y2VzcyBwYWRkaW5nIGluIElFIDgvOS8xMC5cbi8vXG5cbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcbmlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8vIDFcbiAgcGFkZGluZzogMDsgLy8gMlxufVxuXG4vL1xuLy8gRml4IHRoZSBjdXJzb3Igc3R5bGUgZm9yIENocm9tZSdzIGluY3JlbWVudC9kZWNyZW1lbnQgYnV0dG9ucy4gRm9yIGNlcnRhaW5cbi8vIGBmb250LXNpemVgIHZhbHVlcyBvZiB0aGUgYGlucHV0YCwgaXQgY2F1c2VzIHRoZSBjdXJzb3Igc3R5bGUgb2YgdGhlXG4vLyBkZWNyZW1lbnQgYnV0dG9uIHRvIGNoYW5nZSBmcm9tIGBkZWZhdWx0YCB0byBgdGV4dGAuXG4vL1xuXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLy9cbi8vIDEuIEFkZHJlc3MgYGFwcGVhcmFuY2VgIHNldCB0byBgc2VhcmNoZmllbGRgIGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuLy8gMi4gQWRkcmVzcyBgYm94LXNpemluZ2Agc2V0IHRvIGBib3JkZXItYm94YCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbi8vXG5cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLy8gMVxuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLy8yXG59XG5cbi8vXG4vLyBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgc2VhcmNoIGNhbmNlbCBidXR0b24gaW4gU2FmYXJpIGFuZCBDaHJvbWUgb24gT1MgWC5cbi8vIFNhZmFyaSAoYnV0IG5vdCBDaHJvbWUpIGNsaXBzIHRoZSBjYW5jZWwgYnV0dG9uIHdoZW4gdGhlIHNlYXJjaCBpbnB1dCBoYXNcbi8vIHBhZGRpbmcgKGFuZCBgdGV4dGZpZWxkYCBhcHBlYXJhbmNlKS5cbi8vXG5cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG4vL1xuLy8gRGVmaW5lIGNvbnNpc3RlbnQgYm9yZGVyLCBtYXJnaW4sIGFuZCBwYWRkaW5nLlxuLy9cblxuZmllbGRzZXQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICBtYXJnaW46IDAgMnB4O1xuICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07XG59XG5cbi8vXG4vLyAxLiBDb3JyZWN0IGBjb2xvcmAgbm90IGJlaW5nIGluaGVyaXRlZCBpbiBJRSA4LzkvMTAvMTEuXG4vLyAyLiBSZW1vdmUgcGFkZGluZyBzbyBwZW9wbGUgYXJlbid0IGNhdWdodCBvdXQgaWYgdGhleSB6ZXJvIG91dCBmaWVsZHNldHMuXG4vL1xuXG5sZWdlbmQge1xuICBib3JkZXI6IDA7IC8vIDFcbiAgcGFkZGluZzogMDsgLy8gMlxufVxuXG4vL1xuLy8gUmVtb3ZlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDgvOS8xMC8xMS5cbi8vXG5cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8vXG4vLyBEb24ndCBpbmhlcml0IHRoZSBgZm9udC13ZWlnaHRgIChhcHBsaWVkIGJ5IGEgcnVsZSBhYm92ZSkuXG4vLyBOT1RFOiB0aGUgZGVmYXVsdCBjYW5ub3Qgc2FmZWx5IGJlIGNoYW5nZWQgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWC5cbi8vXG5cbm9wdGdyb3VwIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi8vIFRhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy9cbi8vIFJlbW92ZSBtb3N0IHNwYWNpbmcgYmV0d2VlbiB0YWJsZSBjZWxscy5cbi8vXG5cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7XG59XG5cbnRkLFxudGgge1xuICBwYWRkaW5nOiAwO1xufVxuIiwiLy9cbi8vIEdseXBoaWNvbnMgZm9yIEJvb3RzdHJhcFxuLy9cbi8vIFNpbmNlIGljb25zIGFyZSBmb250cywgdGhleSBjYW4gYmUgcGxhY2VkIGFueXdoZXJlIHRleHQgaXMgcGxhY2VkIGFuZCBhcmVcbi8vIHRodXMgYXV0b21hdGljYWxseSBzaXplZCB0byBtYXRjaCB0aGUgc3Vycm91bmRpbmcgY2hpbGQuIFRvIHVzZSwgY3JlYXRlIGFuXG4vLyBpbmxpbmUgZWxlbWVudCB3aXRoIHRoZSBhcHByb3ByaWF0ZSBjbGFzc2VzLCBsaWtlIHNvOlxuLy9cbi8vIDxhIGhyZWY9XCIjXCI+PHNwYW4gY2xhc3M9XCJnbHlwaGljb24gZ2x5cGhpY29uLXN0YXJcIj48L3NwYW4+IFN0YXI8L2E+XG5cbi8vIEltcG9ydCB0aGUgZm9udHNcbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0dseXBoaWNvbnMgSGFsZmxpbmdzJztcbiAgc3JjOiB1cmwoJ0B7aWNvbi1mb250LXBhdGh9QHtpY29uLWZvbnQtbmFtZX0uZW90Jyk7XG4gIHNyYzogdXJsKCdAe2ljb24tZm9udC1wYXRofUB7aWNvbi1mb250LW5hbWV9LmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gICAgICAgdXJsKCdAe2ljb24tZm9udC1wYXRofUB7aWNvbi1mb250LW5hbWV9LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuICAgICAgIHVybCgnQHtpY29uLWZvbnQtcGF0aH1Ae2ljb24tZm9udC1uYW1lfS53b2ZmJykgZm9ybWF0KCd3b2ZmJyksXG4gICAgICAgdXJsKCdAe2ljb24tZm9udC1wYXRofUB7aWNvbi1mb250LW5hbWV9LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSxcbiAgICAgICB1cmwoJ0B7aWNvbi1mb250LXBhdGh9QHtpY29uLWZvbnQtbmFtZX0uc3ZnI0B7aWNvbi1mb250LXN2Zy1pZH0nKSBmb3JtYXQoJ3N2ZycpO1xufVxuXG4vLyBDYXRjaGFsbCBiYXNlY2xhc3Ncbi5nbHlwaGljb24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogMXB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiAnR2x5cGhpY29ucyBIYWxmbGluZ3MnO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbn1cblxuLy8gSW5kaXZpZHVhbCBpY29uc1xuLmdseXBoaWNvbi1hc3RlcmlzayAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcMDAyYVwiOyB9IH1cbi5nbHlwaGljb24tcGx1cyAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXDAwMmJcIjsgfSB9XG4uZ2x5cGhpY29uLWV1cm8sXG4uZ2x5cGhpY29uLWV1ciAgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFwyMGFjXCI7IH0gfVxuLmdseXBoaWNvbi1taW51cyAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcMjIxMlwiOyB9IH1cbi5nbHlwaGljb24tY2xvdWQgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXDI2MDFcIjsgfSB9XG4uZ2x5cGhpY29uLWVudmVsb3BlICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFwyNzA5XCI7IH0gfVxuLmdseXBoaWNvbi1wZW5jaWwgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcMjcwZlwiOyB9IH1cbi5nbHlwaGljb24tZ2xhc3MgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMDFcIjsgfSB9XG4uZ2x5cGhpY29uLW11c2ljICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDAyXCI7IH0gfVxuLmdseXBoaWNvbi1zZWFyY2ggICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAwM1wiOyB9IH1cbi5nbHlwaGljb24taGVhcnQgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMDVcIjsgfSB9XG4uZ2x5cGhpY29uLXN0YXIgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDA2XCI7IH0gfVxuLmdseXBoaWNvbi1zdGFyLWVtcHR5ICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAwN1wiOyB9IH1cbi5nbHlwaGljb24tdXNlciAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMDhcIjsgfSB9XG4uZ2x5cGhpY29uLWZpbG0gICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDA5XCI7IH0gfVxuLmdseXBoaWNvbi10aC1sYXJnZSAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAxMFwiOyB9IH1cbi5nbHlwaGljb24tdGggICAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMTFcIjsgfSB9XG4uZ2x5cGhpY29uLXRoLWxpc3QgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDEyXCI7IH0gfVxuLmdseXBoaWNvbi1vayAgICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAxM1wiOyB9IH1cbi5nbHlwaGljb24tcmVtb3ZlICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMTRcIjsgfSB9XG4uZ2x5cGhpY29uLXpvb20taW4gICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDE1XCI7IH0gfVxuLmdseXBoaWNvbi16b29tLW91dCAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAxNlwiOyB9IH1cbi5nbHlwaGljb24tb2ZmICAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMTdcIjsgfSB9XG4uZ2x5cGhpY29uLXNpZ25hbCAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDE4XCI7IH0gfVxuLmdseXBoaWNvbi1jb2cgICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAxOVwiOyB9IH1cbi5nbHlwaGljb24tdHJhc2ggICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMjBcIjsgfSB9XG4uZ2x5cGhpY29uLWhvbWUgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDIxXCI7IH0gfVxuLmdseXBoaWNvbi1maWxlICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAyMlwiOyB9IH1cbi5nbHlwaGljb24tdGltZSAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMjNcIjsgfSB9XG4uZ2x5cGhpY29uLXJvYWQgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDI0XCI7IH0gfVxuLmdseXBoaWNvbi1kb3dubG9hZC1hbHQgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAyNVwiOyB9IH1cbi5nbHlwaGljb24tZG93bmxvYWQgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMjZcIjsgfSB9XG4uZ2x5cGhpY29uLXVwbG9hZCAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDI3XCI7IH0gfVxuLmdseXBoaWNvbi1pbmJveCAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAyOFwiOyB9IH1cbi5nbHlwaGljb24tcGxheS1jaXJjbGUgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMjlcIjsgfSB9XG4uZ2x5cGhpY29uLXJlcGVhdCAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDMwXCI7IH0gfVxuLmdseXBoaWNvbi1yZWZyZXNoICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAzMVwiOyB9IH1cbi5nbHlwaGljb24tbGlzdC1hbHQgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMzJcIjsgfSB9XG4uZ2x5cGhpY29uLWxvY2sgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDMzXCI7IH0gfVxuLmdseXBoaWNvbi1mbGFnICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAzNFwiOyB9IH1cbi5nbHlwaGljb24taGVhZHBob25lcyAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMzVcIjsgfSB9XG4uZ2x5cGhpY29uLXZvbHVtZS1vZmYgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDM2XCI7IH0gfVxuLmdseXBoaWNvbi12b2x1bWUtZG93biAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAzN1wiOyB9IH1cbi5nbHlwaGljb24tdm9sdW1lLXVwICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMzhcIjsgfSB9XG4uZ2x5cGhpY29uLXFyY29kZSAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDM5XCI7IH0gfVxuLmdseXBoaWNvbi1iYXJjb2RlICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA0MFwiOyB9IH1cbi5nbHlwaGljb24tdGFnICAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNDFcIjsgfSB9XG4uZ2x5cGhpY29uLXRhZ3MgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDQyXCI7IH0gfVxuLmdseXBoaWNvbi1ib29rICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA0M1wiOyB9IH1cbi5nbHlwaGljb24tYm9va21hcmsgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNDRcIjsgfSB9XG4uZ2x5cGhpY29uLXByaW50ICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDQ1XCI7IH0gfVxuLmdseXBoaWNvbi1jYW1lcmEgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA0NlwiOyB9IH1cbi5nbHlwaGljb24tZm9udCAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNDdcIjsgfSB9XG4uZ2x5cGhpY29uLWJvbGQgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDQ4XCI7IH0gfVxuLmdseXBoaWNvbi1pdGFsaWMgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA0OVwiOyB9IH1cbi5nbHlwaGljb24tdGV4dC1oZWlnaHQgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNTBcIjsgfSB9XG4uZ2x5cGhpY29uLXRleHQtd2lkdGggICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDUxXCI7IH0gfVxuLmdseXBoaWNvbi1hbGlnbi1sZWZ0ICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA1MlwiOyB9IH1cbi5nbHlwaGljb24tYWxpZ24tY2VudGVyICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNTNcIjsgfSB9XG4uZ2x5cGhpY29uLWFsaWduLXJpZ2h0ICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDU0XCI7IH0gfVxuLmdseXBoaWNvbi1hbGlnbi1qdXN0aWZ5ICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA1NVwiOyB9IH1cbi5nbHlwaGljb24tbGlzdCAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNTZcIjsgfSB9XG4uZ2x5cGhpY29uLWluZGVudC1sZWZ0ICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDU3XCI7IH0gfVxuLmdseXBoaWNvbi1pbmRlbnQtcmlnaHQgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA1OFwiOyB9IH1cbi5nbHlwaGljb24tZmFjZXRpbWUtdmlkZW8gICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNTlcIjsgfSB9XG4uZ2x5cGhpY29uLXBpY3R1cmUgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDYwXCI7IH0gfVxuLmdseXBoaWNvbi1tYXAtbWFya2VyICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA2MlwiOyB9IH1cbi5nbHlwaGljb24tYWRqdXN0ICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNjNcIjsgfSB9XG4uZ2x5cGhpY29uLXRpbnQgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDY0XCI7IH0gfVxuLmdseXBoaWNvbi1lZGl0ICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA2NVwiOyB9IH1cbi5nbHlwaGljb24tc2hhcmUgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNjZcIjsgfSB9XG4uZ2x5cGhpY29uLWNoZWNrICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDY3XCI7IH0gfVxuLmdseXBoaWNvbi1tb3ZlICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA2OFwiOyB9IH1cbi5nbHlwaGljb24tc3RlcC1iYWNrd2FyZCAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNjlcIjsgfSB9XG4uZ2x5cGhpY29uLWZhc3QtYmFja3dhcmQgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDcwXCI7IH0gfVxuLmdseXBoaWNvbi1iYWNrd2FyZCAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA3MVwiOyB9IH1cbi5nbHlwaGljb24tcGxheSAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNzJcIjsgfSB9XG4uZ2x5cGhpY29uLXBhdXNlICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDczXCI7IH0gfVxuLmdseXBoaWNvbi1zdG9wICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA3NFwiOyB9IH1cbi5nbHlwaGljb24tZm9yd2FyZCAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNzVcIjsgfSB9XG4uZ2x5cGhpY29uLWZhc3QtZm9yd2FyZCAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDc2XCI7IH0gfVxuLmdseXBoaWNvbi1zdGVwLWZvcndhcmQgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA3N1wiOyB9IH1cbi5nbHlwaGljb24tZWplY3QgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNzhcIjsgfSB9XG4uZ2x5cGhpY29uLWNoZXZyb24tbGVmdCAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDc5XCI7IH0gfVxuLmdseXBoaWNvbi1jaGV2cm9uLXJpZ2h0ICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA4MFwiOyB9IH1cbi5nbHlwaGljb24tcGx1cy1zaWduICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwODFcIjsgfSB9XG4uZ2x5cGhpY29uLW1pbnVzLXNpZ24gICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDgyXCI7IH0gfVxuLmdseXBoaWNvbi1yZW1vdmUtc2lnbiAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA4M1wiOyB9IH1cbi5nbHlwaGljb24tb2stc2lnbiAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwODRcIjsgfSB9XG4uZ2x5cGhpY29uLXF1ZXN0aW9uLXNpZ24gICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDg1XCI7IH0gfVxuLmdseXBoaWNvbi1pbmZvLXNpZ24gICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA4NlwiOyB9IH1cbi5nbHlwaGljb24tc2NyZWVuc2hvdCAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwODdcIjsgfSB9XG4uZ2x5cGhpY29uLXJlbW92ZS1jaXJjbGUgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDg4XCI7IH0gfVxuLmdseXBoaWNvbi1vay1jaXJjbGUgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA4OVwiOyB9IH1cbi5nbHlwaGljb24tYmFuLWNpcmNsZSAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwOTBcIjsgfSB9XG4uZ2x5cGhpY29uLWFycm93LWxlZnQgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDkxXCI7IH0gfVxuLmdseXBoaWNvbi1hcnJvdy1yaWdodCAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA5MlwiOyB9IH1cbi5nbHlwaGljb24tYXJyb3ctdXAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwOTNcIjsgfSB9XG4uZ2x5cGhpY29uLWFycm93LWRvd24gICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDk0XCI7IH0gfVxuLmdseXBoaWNvbi1zaGFyZS1hbHQgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA5NVwiOyB9IH1cbi5nbHlwaGljb24tcmVzaXplLWZ1bGwgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwOTZcIjsgfSB9XG4uZ2x5cGhpY29uLXJlc2l6ZS1zbWFsbCAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDk3XCI7IH0gfVxuLmdseXBoaWNvbi1leGNsYW1hdGlvbi1zaWduICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEwMVwiOyB9IH1cbi5nbHlwaGljb24tZ2lmdCAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMDJcIjsgfSB9XG4uZ2x5cGhpY29uLWxlYWYgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTAzXCI7IH0gfVxuLmdseXBoaWNvbi1maXJlICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEwNFwiOyB9IH1cbi5nbHlwaGljb24tZXllLW9wZW4gICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMDVcIjsgfSB9XG4uZ2x5cGhpY29uLWV5ZS1jbG9zZSAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTA2XCI7IH0gfVxuLmdseXBoaWNvbi13YXJuaW5nLXNpZ24gICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEwN1wiOyB9IH1cbi5nbHlwaGljb24tcGxhbmUgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMDhcIjsgfSB9XG4uZ2x5cGhpY29uLWNhbGVuZGFyICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTA5XCI7IH0gfVxuLmdseXBoaWNvbi1yYW5kb20gICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTExMFwiOyB9IH1cbi5nbHlwaGljb24tY29tbWVudCAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMTFcIjsgfSB9XG4uZ2x5cGhpY29uLW1hZ25ldCAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTEyXCI7IH0gfVxuLmdseXBoaWNvbi1jaGV2cm9uLXVwICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTExM1wiOyB9IH1cbi5nbHlwaGljb24tY2hldnJvbi1kb3duICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMTRcIjsgfSB9XG4uZ2x5cGhpY29uLXJldHdlZXQgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTE1XCI7IH0gfVxuLmdseXBoaWNvbi1zaG9wcGluZy1jYXJ0ICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTExNlwiOyB9IH1cbi5nbHlwaGljb24tZm9sZGVyLWNsb3NlICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMTdcIjsgfSB9XG4uZ2x5cGhpY29uLWZvbGRlci1vcGVuICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTE4XCI7IH0gfVxuLmdseXBoaWNvbi1yZXNpemUtdmVydGljYWwgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTExOVwiOyB9IH1cbi5nbHlwaGljb24tcmVzaXplLWhvcml6b250YWwgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMjBcIjsgfSB9XG4uZ2x5cGhpY29uLWhkZCAgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTIxXCI7IH0gfVxuLmdseXBoaWNvbi1idWxsaG9ybiAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEyMlwiOyB9IH1cbi5nbHlwaGljb24tYmVsbCAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMjNcIjsgfSB9XG4uZ2x5cGhpY29uLWNlcnRpZmljYXRlICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTI0XCI7IH0gfVxuLmdseXBoaWNvbi10aHVtYnMtdXAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEyNVwiOyB9IH1cbi5nbHlwaGljb24tdGh1bWJzLWRvd24gICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMjZcIjsgfSB9XG4uZ2x5cGhpY29uLWhhbmQtcmlnaHQgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTI3XCI7IH0gfVxuLmdseXBoaWNvbi1oYW5kLWxlZnQgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEyOFwiOyB9IH1cbi5nbHlwaGljb24taGFuZC11cCAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMjlcIjsgfSB9XG4uZ2x5cGhpY29uLWhhbmQtZG93biAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTMwXCI7IH0gfVxuLmdseXBoaWNvbi1jaXJjbGUtYXJyb3ctcmlnaHQgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEzMVwiOyB9IH1cbi5nbHlwaGljb24tY2lyY2xlLWFycm93LWxlZnQgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMzJcIjsgfSB9XG4uZ2x5cGhpY29uLWNpcmNsZS1hcnJvdy11cCAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTMzXCI7IH0gfVxuLmdseXBoaWNvbi1jaXJjbGUtYXJyb3ctZG93biAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEzNFwiOyB9IH1cbi5nbHlwaGljb24tZ2xvYmUgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMzVcIjsgfSB9XG4uZ2x5cGhpY29uLXdyZW5jaCAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTM2XCI7IH0gfVxuLmdseXBoaWNvbi10YXNrcyAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEzN1wiOyB9IH1cbi5nbHlwaGljb24tZmlsdGVyICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMzhcIjsgfSB9XG4uZ2x5cGhpY29uLWJyaWVmY2FzZSAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTM5XCI7IH0gfVxuLmdseXBoaWNvbi1mdWxsc2NyZWVuICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE0MFwiOyB9IH1cbi5nbHlwaGljb24tZGFzaGJvYXJkICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNDFcIjsgfSB9XG4uZ2x5cGhpY29uLXBhcGVyY2xpcCAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTQyXCI7IH0gfVxuLmdseXBoaWNvbi1oZWFydC1lbXB0eSAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE0M1wiOyB9IH1cbi5nbHlwaGljb24tbGluayAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNDRcIjsgfSB9XG4uZ2x5cGhpY29uLXBob25lICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTQ1XCI7IH0gfVxuLmdseXBoaWNvbi1wdXNocGluICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE0NlwiOyB9IH1cbi5nbHlwaGljb24tdXNkICAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNDhcIjsgfSB9XG4uZ2x5cGhpY29uLWdicCAgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTQ5XCI7IH0gfVxuLmdseXBoaWNvbi1zb3J0ICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE1MFwiOyB9IH1cbi5nbHlwaGljb24tc29ydC1ieS1hbHBoYWJldCAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNTFcIjsgfSB9XG4uZ2x5cGhpY29uLXNvcnQtYnktYWxwaGFiZXQtYWx0ICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTUyXCI7IH0gfVxuLmdseXBoaWNvbi1zb3J0LWJ5LW9yZGVyICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE1M1wiOyB9IH1cbi5nbHlwaGljb24tc29ydC1ieS1vcmRlci1hbHQgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNTRcIjsgfSB9XG4uZ2x5cGhpY29uLXNvcnQtYnktYXR0cmlidXRlcyAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTU1XCI7IH0gfVxuLmdseXBoaWNvbi1zb3J0LWJ5LWF0dHJpYnV0ZXMtYWx0IHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE1NlwiOyB9IH1cbi5nbHlwaGljb24tdW5jaGVja2VkICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNTdcIjsgfSB9XG4uZ2x5cGhpY29uLWV4cGFuZCAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTU4XCI7IH0gfVxuLmdseXBoaWNvbi1jb2xsYXBzZS1kb3duICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE1OVwiOyB9IH1cbi5nbHlwaGljb24tY29sbGFwc2UtdXAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNjBcIjsgfSB9XG4uZ2x5cGhpY29uLWxvZy1pbiAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTYxXCI7IH0gfVxuLmdseXBoaWNvbi1mbGFzaCAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE2MlwiOyB9IH1cbi5nbHlwaGljb24tbG9nLW91dCAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNjNcIjsgfSB9XG4uZ2x5cGhpY29uLW5ldy13aW5kb3cgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTY0XCI7IH0gfVxuLmdseXBoaWNvbi1yZWNvcmQgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE2NVwiOyB9IH1cbi5nbHlwaGljb24tc2F2ZSAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNjZcIjsgfSB9XG4uZ2x5cGhpY29uLW9wZW4gICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTY3XCI7IH0gfVxuLmdseXBoaWNvbi1zYXZlZCAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE2OFwiOyB9IH1cbi5nbHlwaGljb24taW1wb3J0ICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNjlcIjsgfSB9XG4uZ2x5cGhpY29uLWV4cG9ydCAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTcwXCI7IH0gfVxuLmdseXBoaWNvbi1zZW5kICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE3MVwiOyB9IH1cbi5nbHlwaGljb24tZmxvcHB5LWRpc2sgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNzJcIjsgfSB9XG4uZ2x5cGhpY29uLWZsb3BweS1zYXZlZCAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTczXCI7IH0gfVxuLmdseXBoaWNvbi1mbG9wcHktcmVtb3ZlICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE3NFwiOyB9IH1cbi5nbHlwaGljb24tZmxvcHB5LXNhdmUgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNzVcIjsgfSB9XG4uZ2x5cGhpY29uLWZsb3BweS1vcGVuICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTc2XCI7IH0gfVxuLmdseXBoaWNvbi1jcmVkaXQtY2FyZCAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE3N1wiOyB9IH1cbi5nbHlwaGljb24tdHJhbnNmZXIgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNzhcIjsgfSB9XG4uZ2x5cGhpY29uLWN1dGxlcnkgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTc5XCI7IH0gfVxuLmdseXBoaWNvbi1oZWFkZXIgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE4MFwiOyB9IH1cbi5nbHlwaGljb24tY29tcHJlc3NlZCAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxODFcIjsgfSB9XG4uZ2x5cGhpY29uLWVhcnBob25lICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTgyXCI7IH0gfVxuLmdseXBoaWNvbi1waG9uZS1hbHQgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE4M1wiOyB9IH1cbi5nbHlwaGljb24tdG93ZXIgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxODRcIjsgfSB9XG4uZ2x5cGhpY29uLXN0YXRzICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTg1XCI7IH0gfVxuLmdseXBoaWNvbi1zZC12aWRlbyAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE4NlwiOyB9IH1cbi5nbHlwaGljb24taGQtdmlkZW8gICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxODdcIjsgfSB9XG4uZ2x5cGhpY29uLXN1YnRpdGxlcyAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTg4XCI7IH0gfVxuLmdseXBoaWNvbi1zb3VuZC1zdGVyZW8gICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE4OVwiOyB9IH1cbi5nbHlwaGljb24tc291bmQtZG9sYnkgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxOTBcIjsgfSB9XG4uZ2x5cGhpY29uLXNvdW5kLTUtMSAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTkxXCI7IH0gfVxuLmdseXBoaWNvbi1zb3VuZC02LTEgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE5MlwiOyB9IH1cbi5nbHlwaGljb24tc291bmQtNy0xICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxOTNcIjsgfSB9XG4uZ2x5cGhpY29uLWNvcHlyaWdodC1tYXJrICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTk0XCI7IH0gfVxuLmdseXBoaWNvbi1yZWdpc3RyYXRpb24tbWFyayAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE5NVwiOyB9IH1cbi5nbHlwaGljb24tY2xvdWQtZG93bmxvYWQgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxOTdcIjsgfSB9XG4uZ2x5cGhpY29uLWNsb3VkLXVwbG9hZCAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTk4XCI7IH0gfVxuLmdseXBoaWNvbi10cmVlLWNvbmlmZXIgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE5OVwiOyB9IH1cbi5nbHlwaGljb24tdHJlZS1kZWNpZHVvdXMgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMDBcIjsgfSB9XG4uZ2x5cGhpY29uLWNkICAgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjAxXCI7IH0gfVxuLmdseXBoaWNvbi1zYXZlLWZpbGUgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIwMlwiOyB9IH1cbi5nbHlwaGljb24tb3Blbi1maWxlICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMDNcIjsgfSB9XG4uZ2x5cGhpY29uLWxldmVsLXVwICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjA0XCI7IH0gfVxuLmdseXBoaWNvbi1jb3B5ICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIwNVwiOyB9IH1cbi5nbHlwaGljb24tcGFzdGUgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMDZcIjsgfSB9XG4vLyBUaGUgZm9sbG93aW5nIDIgR2x5cGhpY29ucyBhcmUgb21pdHRlZCBmb3IgdGhlIHRpbWUgYmVpbmcgYmVjYXVzZVxuLy8gdGhleSBjdXJyZW50bHkgdXNlIFVuaWNvZGUgY29kZXBvaW50cyB0aGF0IGFyZSBvdXRzaWRlIHRoZVxuLy8gQmFzaWMgTXVsdGlsaW5ndWFsIFBsYW5lIChCTVApLiBPbGRlciBidWdneSB2ZXJzaW9ucyBvZiBXZWJLaXQgY2FuJ3QgaGFuZGxlXG4vLyBub24tQk1QIGNvZGVwb2ludHMgaW4gQ1NTIHN0cmluZyBlc2NhcGVzLCBhbmQgdGh1cyBjYW4ndCBkaXNwbGF5IHRoZXNlIHR3byBpY29ucy5cbi8vIE5vdGFibHksIHRoZSBidWcgYWZmZWN0cyBzb21lIG9sZGVyIHZlcnNpb25zIG9mIHRoZSBBbmRyb2lkIEJyb3dzZXIuXG4vLyBNb3JlIGluZm86IGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9pc3N1ZXMvMTAxMDZcbi8vIC5nbHlwaGljb24tZG9vciAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXDFmNmFhXCI7IH0gfVxuLy8gLmdseXBoaWNvbi1rZXkgICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcMWY1MTFcIjsgfSB9XG4uZ2x5cGhpY29uLWFsZXJ0ICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjA5XCI7IH0gfVxuLmdseXBoaWNvbi1lcXVhbGl6ZXIgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIxMFwiOyB9IH1cbi5nbHlwaGljb24ta2luZyAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMTFcIjsgfSB9XG4uZ2x5cGhpY29uLXF1ZWVuICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjEyXCI7IH0gfVxuLmdseXBoaWNvbi1wYXduICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIxM1wiOyB9IH1cbi5nbHlwaGljb24tYmlzaG9wICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMTRcIjsgfSB9XG4uZ2x5cGhpY29uLWtuaWdodCAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjE1XCI7IH0gfVxuLmdseXBoaWNvbi1iYWJ5LWZvcm11bGEgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIxNlwiOyB9IH1cbi5nbHlwaGljb24tdGVudCAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXDI2ZmFcIjsgfSB9XG4uZ2x5cGhpY29uLWJsYWNrYm9hcmQgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjE4XCI7IH0gfVxuLmdseXBoaWNvbi1iZWQgICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIxOVwiOyB9IH1cbi5nbHlwaGljb24tYXBwbGUgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGY4ZmZcIjsgfSB9XG4uZ2x5cGhpY29uLWVyYXNlICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjIxXCI7IH0gfVxuLmdseXBoaWNvbi1ob3VyZ2xhc3MgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcMjMxYlwiOyB9IH1cbi5nbHlwaGljb24tbGFtcCAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMjNcIjsgfSB9XG4uZ2x5cGhpY29uLWR1cGxpY2F0ZSAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjI0XCI7IH0gfVxuLmdseXBoaWNvbi1waWdneS1iYW5rICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIyNVwiOyB9IH1cbi5nbHlwaGljb24tc2Npc3NvcnMgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMjZcIjsgfSB9XG4uZ2x5cGhpY29uLWJpdGNvaW4gICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjI3XCI7IH0gfVxuLmdseXBoaWNvbi1idGMgICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIyN1wiOyB9IH1cbi5nbHlwaGljb24teGJ0ICAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMjdcIjsgfSB9XG4uZ2x5cGhpY29uLXllbiAgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFwwMGE1XCI7IH0gfVxuLmdseXBoaWNvbi1qcHkgICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcMDBhNVwiOyB9IH1cbi5nbHlwaGljb24tcnVibGUgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXDIwYmRcIjsgfSB9XG4uZ2x5cGhpY29uLXJ1YiAgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFwyMGJkXCI7IH0gfVxuLmdseXBoaWNvbi1zY2FsZSAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIzMFwiOyB9IH1cbi5nbHlwaGljb24taWNlLWxvbGx5ICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMzFcIjsgfSB9XG4uZ2x5cGhpY29uLWljZS1sb2xseS10YXN0ZWQgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjMyXCI7IH0gfVxuLmdseXBoaWNvbi1lZHVjYXRpb24gICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIzM1wiOyB9IH1cbi5nbHlwaGljb24tb3B0aW9uLWhvcml6b250YWwgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMzRcIjsgfSB9XG4uZ2x5cGhpY29uLW9wdGlvbi12ZXJ0aWNhbCAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjM1XCI7IH0gfVxuLmdseXBoaWNvbi1tZW51LWhhbWJ1cmdlciAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIzNlwiOyB9IH1cbi5nbHlwaGljb24tbW9kYWwtd2luZG93ICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMzdcIjsgfSB9XG4uZ2x5cGhpY29uLW9pbCAgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjM4XCI7IH0gfVxuLmdseXBoaWNvbi1ncmFpbiAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIzOVwiOyB9IH1cbi5nbHlwaGljb24tc3VuZ2xhc3NlcyAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyNDBcIjsgfSB9XG4uZ2x5cGhpY29uLXRleHQtc2l6ZSAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjQxXCI7IH0gfVxuLmdseXBoaWNvbi10ZXh0LWNvbG9yICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTI0MlwiOyB9IH1cbi5nbHlwaGljb24tdGV4dC1iYWNrZ3JvdW5kICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyNDNcIjsgfSB9XG4uZ2x5cGhpY29uLW9iamVjdC1hbGlnbi10b3AgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjQ0XCI7IH0gfVxuLmdseXBoaWNvbi1vYmplY3QtYWxpZ24tYm90dG9tICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTI0NVwiOyB9IH1cbi5nbHlwaGljb24tb2JqZWN0LWFsaWduLWhvcml6b250YWx7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyNDZcIjsgfSB9XG4uZ2x5cGhpY29uLW9iamVjdC1hbGlnbi1sZWZ0ICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjQ3XCI7IH0gfVxuLmdseXBoaWNvbi1vYmplY3QtYWxpZ24tdmVydGljYWwgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTI0OFwiOyB9IH1cbi5nbHlwaGljb24tb2JqZWN0LWFsaWduLXJpZ2h0ICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyNDlcIjsgfSB9XG4uZ2x5cGhpY29uLXRyaWFuZ2xlLXJpZ2h0ICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjUwXCI7IH0gfVxuLmdseXBoaWNvbi10cmlhbmdsZS1sZWZ0ICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTI1MVwiOyB9IH1cbi5nbHlwaGljb24tdHJpYW5nbGUtYm90dG9tICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyNTJcIjsgfSB9XG4uZ2x5cGhpY29uLXRyaWFuZ2xlLXRvcCAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjUzXCI7IH0gfVxuLmdseXBoaWNvbi1jb25zb2xlICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTI1NFwiOyB9IH1cbi5nbHlwaGljb24tc3VwZXJzY3JpcHQgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyNTVcIjsgfSB9XG4uZ2x5cGhpY29uLXN1YnNjcmlwdCAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjU2XCI7IH0gfVxuLmdseXBoaWNvbi1tZW51LWxlZnQgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTI1N1wiOyB9IH1cbi5nbHlwaGljb24tbWVudS1yaWdodCAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyNThcIjsgfSB9XG4uZ2x5cGhpY29uLW1lbnUtZG93biAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjU5XCI7IH0gfVxuLmdseXBoaWNvbi1tZW51LXVwICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTI2MFwiOyB9IH1cbiIsIi8vXG4vLyBTY2FmZm9sZGluZ1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4vLyBSZXNldCB0aGUgYm94LXNpemluZ1xuLy9cbi8vIEhlYWRzIHVwISBUaGlzIHJlc2V0IG1heSBjYXVzZSBjb25mbGljdHMgd2l0aCBzb21lIHRoaXJkLXBhcnR5IHdpZGdldHMuXG4vLyBGb3IgcmVjb21tZW5kYXRpb25zIG9uIHJlc29sdmluZyBzdWNoIGNvbmZsaWN0cywgc2VlXG4vLyBodHRwOi8vZ2V0Ym9vdHN0cmFwLmNvbS9nZXR0aW5nLXN0YXJ0ZWQvI3RoaXJkLWJveC1zaXppbmdcbioge1xuICAuYm94LXNpemluZyhib3JkZXItYm94KTtcbn1cbio6YmVmb3JlLFxuKjphZnRlciB7XG4gIC5ib3gtc2l6aW5nKGJvcmRlci1ib3gpO1xufVxuXG5cbi8vIEJvZHkgcmVzZXRcblxuaHRtbCB7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsMCwwLDApO1xufVxuXG5ib2R5IHtcbiAgZm9udC1mYW1pbHk6IEBmb250LWZhbWlseS1iYXNlO1xuICBmb250LXNpemU6IEBmb250LXNpemUtYmFzZTtcbiAgbGluZS1oZWlnaHQ6IEBsaW5lLWhlaWdodC1iYXNlO1xuICBjb2xvcjogQHRleHQtY29sb3I7XG4gIGJhY2tncm91bmQtY29sb3I6IEBib2R5LWJnO1xufVxuXG4vLyBSZXNldCBmb250cyBmb3IgcmVsZXZhbnQgZWxlbWVudHNcbmlucHV0LFxuYnV0dG9uLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbn1cblxuXG4vLyBMaW5rc1xuXG5hIHtcbiAgY29sb3I6IEBsaW5rLWNvbG9yO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgY29sb3I6IEBsaW5rLWhvdmVyLWNvbG9yO1xuICAgIHRleHQtZGVjb3JhdGlvbjogQGxpbmstaG92ZXItZGVjb3JhdGlvbjtcbiAgfVxuXG4gICY6Zm9jdXMge1xuICAgIC50YWItZm9jdXMoKTtcbiAgfVxufVxuXG5cbi8vIEZpZ3VyZXNcbi8vXG4vLyBXZSByZXNldCB0aGlzIGhlcmUgYmVjYXVzZSBwcmV2aW91c2x5IE5vcm1hbGl6ZSBoYWQgbm8gYGZpZ3VyZWAgbWFyZ2lucy4gVGhpc1xuLy8gZW5zdXJlcyB3ZSBkb24ndCBicmVhayBhbnlvbmUncyB1c2Ugb2YgdGhlIGVsZW1lbnQuXG5cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMDtcbn1cblxuXG4vLyBJbWFnZXNcblxuaW1nIHtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLy8gUmVzcG9uc2l2ZSBpbWFnZXMgKGVuc3VyZSBpbWFnZXMgZG9uJ3Qgc2NhbGUgYmV5b25kIHRoZWlyIHBhcmVudHMpXG4uaW1nLXJlc3BvbnNpdmUge1xuICAuaW1nLXJlc3BvbnNpdmUoKTtcbn1cblxuLy8gUm91bmRlZCBjb3JuZXJzXG4uaW1nLXJvdW5kZWQge1xuICBib3JkZXItcmFkaXVzOiBAYm9yZGVyLXJhZGl1cy1sYXJnZTtcbn1cblxuLy8gSW1hZ2UgdGh1bWJuYWlsc1xuLy9cbi8vIEhlYWRzIHVwISBUaGlzIGlzIG1peGluLWVkIGludG8gdGh1bWJuYWlscy5sZXNzIGZvciBgLnRodW1ibmFpbGAuXG4uaW1nLXRodW1ibmFpbCB7XG4gIHBhZGRpbmc6IEB0aHVtYm5haWwtcGFkZGluZztcbiAgbGluZS1oZWlnaHQ6IEBsaW5lLWhlaWdodC1iYXNlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAdGh1bWJuYWlsLWJnO1xuICBib3JkZXI6IDFweCBzb2xpZCBAdGh1bWJuYWlsLWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogQHRodW1ibmFpbC1ib3JkZXItcmFkaXVzO1xuICAudHJhbnNpdGlvbihhbGwgLjJzIGVhc2UtaW4tb3V0KTtcblxuICAvLyBLZWVwIHRoZW0gYXQgbW9zdCAxMDAlIHdpZGVcbiAgLmltZy1yZXNwb25zaXZlKGlubGluZS1ibG9jayk7XG59XG5cbi8vIFBlcmZlY3QgY2lyY2xlXG4uaW1nLWNpcmNsZSB7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTsgLy8gc2V0IHJhZGl1cyBpbiBwZXJjZW50c1xufVxuXG5cbi8vIEhvcml6b250YWwgcnVsZXNcblxuaHIge1xuICBtYXJnaW4tdG9wOiAgICBAbGluZS1oZWlnaHQtY29tcHV0ZWQ7XG4gIG1hcmdpbi1ib3R0b206IEBsaW5lLWhlaWdodC1jb21wdXRlZDtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgQGhyLWJvcmRlcjtcbn1cblxuXG4vLyBPbmx5IGRpc3BsYXkgY29udGVudCB0byBzY3JlZW4gcmVhZGVyc1xuLy9cbi8vIFNlZTogaHR0cDovL2ExMXlwcm9qZWN0LmNvbS9wb3N0cy9ob3ctdG8taGlkZS1jb250ZW50XG5cbi5zci1vbmx5IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMXB4O1xuICBoZWlnaHQ6IDFweDtcbiAgbWFyZ2luOiAtMXB4O1xuICBwYWRkaW5nOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGlwOiByZWN0KDAsMCwwLDApO1xuICBib3JkZXI6IDA7XG59XG5cbi8vIFVzZSBpbiBjb25qdW5jdGlvbiB3aXRoIC5zci1vbmx5IHRvIG9ubHkgZGlzcGxheSBjb250ZW50IHdoZW4gaXQncyBmb2N1c2VkLlxuLy8gVXNlZnVsIGZvciBcIlNraXAgdG8gbWFpbiBjb250ZW50XCIgbGlua3M7IHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDEzL05PVEUtV0NBRzIwLVRFQ0hTLTIwMTMwOTA1L0cxXG4vLyBDcmVkaXQ6IEhUTUw1IEJvaWxlcnBsYXRlXG5cbi5zci1vbmx5LWZvY3VzYWJsZSB7XG4gICY6YWN0aXZlLFxuICAmOmZvY3VzIHtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtYXJnaW46IDA7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgY2xpcDogYXV0bztcbiAgfVxufVxuXG5cbi8vIGlPUyBcImNsaWNrYWJsZSBlbGVtZW50c1wiIGZpeCBmb3Igcm9sZT1cImJ1dHRvblwiXG4vL1xuLy8gRml4ZXMgXCJjbGlja2FiaWxpdHlcIiBpc3N1ZSAoYW5kIG1vcmUgZ2VuZXJhbGx5LCB0aGUgZmlyaW5nIG9mIGV2ZW50cyBzdWNoIGFzIGZvY3VzIGFzIHdlbGwpXG4vLyBmb3IgdHJhZGl0aW9uYWxseSBub24tZm9jdXNhYmxlIGVsZW1lbnRzIHdpdGggcm9sZT1cImJ1dHRvblwiXG4vLyBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvRXZlbnRzL2NsaWNrI1NhZmFyaV9Nb2JpbGVcblxuW3JvbGU9XCJidXR0b25cIl0ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4iLCIvLyBWZW5kb3IgUHJlZml4ZXNcbi8vXG4vLyBBbGwgdmVuZG9yIG1peGlucyBhcmUgZGVwcmVjYXRlZCBhcyBvZiB2My4yLjAgZHVlIHRvIHRoZSBpbnRyb2R1Y3Rpb24gb2Zcbi8vIEF1dG9wcmVmaXhlciBpbiBvdXIgR3J1bnRmaWxlLiBUaGV5IGhhdmUgYmVlbiByZW1vdmVkIGluIHY0LlxuXG4vLyAtIEFuaW1hdGlvbnNcbi8vIC0gQmFja2ZhY2UgdmlzaWJpbGl0eVxuLy8gLSBCb3ggc2hhZG93XG4vLyAtIEJveCBzaXppbmdcbi8vIC0gQ29udGVudCBjb2x1bW5zXG4vLyAtIEh5cGhlbnNcbi8vIC0gUGxhY2Vob2xkZXIgdGV4dFxuLy8gLSBUcmFuc2Zvcm1hdGlvbnNcbi8vIC0gVHJhbnNpdGlvbnNcbi8vIC0gVXNlciBTZWxlY3RcblxuXG4vLyBBbmltYXRpb25zXG4uYW5pbWF0aW9uKEBhbmltYXRpb24pIHtcbiAgLXdlYmtpdC1hbmltYXRpb246IEBhbmltYXRpb247XG4gICAgICAgLW8tYW5pbWF0aW9uOiBAYW5pbWF0aW9uO1xuICAgICAgICAgIGFuaW1hdGlvbjogQGFuaW1hdGlvbjtcbn1cbi5hbmltYXRpb24tbmFtZShAbmFtZSkge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBAbmFtZTtcbiAgICAgICAgICBhbmltYXRpb24tbmFtZTogQG5hbWU7XG59XG4uYW5pbWF0aW9uLWR1cmF0aW9uKEBkdXJhdGlvbikge1xuICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogQGR1cmF0aW9uO1xuICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogQGR1cmF0aW9uO1xufVxuLmFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24oQHRpbWluZy1mdW5jdGlvbikge1xuICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IEB0aW1pbmctZnVuY3Rpb247XG4gICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogQHRpbWluZy1mdW5jdGlvbjtcbn1cbi5hbmltYXRpb24tZGVsYXkoQGRlbGF5KSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiBAZGVsYXk7XG4gICAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiBAZGVsYXk7XG59XG4uYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudChAaXRlcmF0aW9uLWNvdW50KSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogQGl0ZXJhdGlvbi1jb3VudDtcbiAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBAaXRlcmF0aW9uLWNvdW50O1xufVxuLmFuaW1hdGlvbi1kaXJlY3Rpb24oQGRpcmVjdGlvbikge1xuICAtd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb246IEBkaXJlY3Rpb247XG4gICAgICAgICAgYW5pbWF0aW9uLWRpcmVjdGlvbjogQGRpcmVjdGlvbjtcbn1cbi5hbmltYXRpb24tZmlsbC1tb2RlKEBmaWxsLW1vZGUpIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBAZmlsbC1tb2RlO1xuICAgICAgICAgIGFuaW1hdGlvbi1maWxsLW1vZGU6IEBmaWxsLW1vZGU7XG59XG5cbi8vIEJhY2tmYWNlIHZpc2liaWxpdHlcbi8vIFByZXZlbnQgYnJvd3NlcnMgZnJvbSBmbGlja2VyaW5nIHdoZW4gdXNpbmcgQ1NTIDNEIHRyYW5zZm9ybXMuXG4vLyBEZWZhdWx0IHZhbHVlIGlzIGB2aXNpYmxlYCwgYnV0IGNhbiBiZSBjaGFuZ2VkIHRvIGBoaWRkZW5gXG5cbi5iYWNrZmFjZS12aXNpYmlsaXR5KEB2aXNpYmlsaXR5KSB7XG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogQHZpc2liaWxpdHk7XG4gICAgIC1tb3otYmFja2ZhY2UtdmlzaWJpbGl0eTogQHZpc2liaWxpdHk7XG4gICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogQHZpc2liaWxpdHk7XG59XG5cbi8vIERyb3Agc2hhZG93c1xuLy9cbi8vIE5vdGU6IERlcHJlY2F0ZWQgYC5ib3gtc2hhZG93KClgIGFzIG9mIHYzLjEuMCBzaW5jZSBhbGwgb2YgQm9vdHN0cmFwJ3Ncbi8vIHN1cHBvcnRlZCBicm93c2VycyB0aGF0IGhhdmUgYm94IHNoYWRvdyBjYXBhYmlsaXRpZXMgbm93IHN1cHBvcnQgaXQuXG5cbi5ib3gtc2hhZG93KEBzaGFkb3cpIHtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBAc2hhZG93OyAvLyBpT1MgPDQuMyAmIEFuZHJvaWQgPDQuMVxuICAgICAgICAgIGJveC1zaGFkb3c6IEBzaGFkb3c7XG59XG5cbi8vIEJveCBzaXppbmdcbi5ib3gtc2l6aW5nKEBib3htb2RlbCkge1xuICAtd2Via2l0LWJveC1zaXppbmc6IEBib3htb2RlbDtcbiAgICAgLW1vei1ib3gtc2l6aW5nOiBAYm94bW9kZWw7XG4gICAgICAgICAgYm94LXNpemluZzogQGJveG1vZGVsO1xufVxuXG4vLyBDU1MzIENvbnRlbnQgQ29sdW1uc1xuLmNvbnRlbnQtY29sdW1ucyhAY29sdW1uLWNvdW50OyBAY29sdW1uLWdhcDogQGdyaWQtZ3V0dGVyLXdpZHRoKSB7XG4gIC13ZWJraXQtY29sdW1uLWNvdW50OiBAY29sdW1uLWNvdW50O1xuICAgICAtbW96LWNvbHVtbi1jb3VudDogQGNvbHVtbi1jb3VudDtcbiAgICAgICAgICBjb2x1bW4tY291bnQ6IEBjb2x1bW4tY291bnQ7XG4gIC13ZWJraXQtY29sdW1uLWdhcDogQGNvbHVtbi1nYXA7XG4gICAgIC1tb3otY29sdW1uLWdhcDogQGNvbHVtbi1nYXA7XG4gICAgICAgICAgY29sdW1uLWdhcDogQGNvbHVtbi1nYXA7XG59XG5cbi8vIE9wdGlvbmFsIGh5cGhlbmF0aW9uXG4uaHlwaGVucyhAbW9kZTogYXV0bykge1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gIC13ZWJraXQtaHlwaGVuczogQG1vZGU7XG4gICAgIC1tb3otaHlwaGVuczogQG1vZGU7XG4gICAgICAtbXMtaHlwaGVuczogQG1vZGU7IC8vIElFMTArXG4gICAgICAgLW8taHlwaGVuczogQG1vZGU7XG4gICAgICAgICAgaHlwaGVuczogQG1vZGU7XG59XG5cbi8vIFBsYWNlaG9sZGVyIHRleHRcbi5wbGFjZWhvbGRlcihAY29sb3I6IEBpbnB1dC1jb2xvci1wbGFjZWhvbGRlcikge1xuICAvLyBGaXJlZm94XG4gICY6Oi1tb3otcGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiBAY29sb3I7XG4gICAgb3BhY2l0eTogMTsgLy8gT3ZlcnJpZGUgRmlyZWZveCdzIHVudXN1YWwgZGVmYXVsdCBvcGFjaXR5OyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL3B1bGwvMTE1MjZcbiAgfVxuICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7IGNvbG9yOiBAY29sb3I7IH0gLy8gSW50ZXJuZXQgRXhwbG9yZXIgMTArXG4gICY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIgIHsgY29sb3I6IEBjb2xvcjsgfSAvLyBTYWZhcmkgYW5kIENocm9tZVxufVxuXG4vLyBUcmFuc2Zvcm1hdGlvbnNcbi5zY2FsZShAcmF0aW8pIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKEByYXRpbyk7XG4gICAgICAtbXMtdHJhbnNmb3JtOiBzY2FsZShAcmF0aW8pOyAvLyBJRTkgb25seVxuICAgICAgIC1vLXRyYW5zZm9ybTogc2NhbGUoQHJhdGlvKTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKEByYXRpbyk7XG59XG4uc2NhbGUoQHJhdGlvWDsgQHJhdGlvWSkge1xuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoQHJhdGlvWCwgQHJhdGlvWSk7XG4gICAgICAtbXMtdHJhbnNmb3JtOiBzY2FsZShAcmF0aW9YLCBAcmF0aW9ZKTsgLy8gSUU5IG9ubHlcbiAgICAgICAtby10cmFuc2Zvcm06IHNjYWxlKEByYXRpb1gsIEByYXRpb1kpO1xuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoQHJhdGlvWCwgQHJhdGlvWSk7XG59XG4uc2NhbGVYKEByYXRpbykge1xuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGVYKEByYXRpbyk7XG4gICAgICAtbXMtdHJhbnNmb3JtOiBzY2FsZVgoQHJhdGlvKTsgLy8gSUU5IG9ubHlcbiAgICAgICAtby10cmFuc2Zvcm06IHNjYWxlWChAcmF0aW8pO1xuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKEByYXRpbyk7XG59XG4uc2NhbGVZKEByYXRpbykge1xuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGVZKEByYXRpbyk7XG4gICAgICAtbXMtdHJhbnNmb3JtOiBzY2FsZVkoQHJhdGlvKTsgLy8gSUU5IG9ubHlcbiAgICAgICAtby10cmFuc2Zvcm06IHNjYWxlWShAcmF0aW8pO1xuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVZKEByYXRpbyk7XG59XG4uc2tldyhAeDsgQHkpIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNrZXdYKEB4KSBza2V3WShAeSk7XG4gICAgICAtbXMtdHJhbnNmb3JtOiBza2V3WChAeCkgc2tld1koQHkpOyAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2lzc3Vlcy80ODg1OyBJRTkrXG4gICAgICAgLW8tdHJhbnNmb3JtOiBza2V3WChAeCkgc2tld1koQHkpO1xuICAgICAgICAgIHRyYW5zZm9ybTogc2tld1goQHgpIHNrZXdZKEB5KTtcbn1cbi50cmFuc2xhdGUoQHg7IEB5KSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoQHgsIEB5KTtcbiAgICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZShAeCwgQHkpOyAvLyBJRTkgb25seVxuICAgICAgIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlKEB4LCBAeSk7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoQHgsIEB5KTtcbn1cbi50cmFuc2xhdGUzZChAeDsgQHk7IEB6KSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZChAeCwgQHksIEB6KTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKEB4LCBAeSwgQHopO1xufVxuLnJvdGF0ZShAZGVncmVlcykge1xuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKEBkZWdyZWVzKTtcbiAgICAgIC1tcy10cmFuc2Zvcm06IHJvdGF0ZShAZGVncmVlcyk7IC8vIElFOSBvbmx5XG4gICAgICAgLW8tdHJhbnNmb3JtOiByb3RhdGUoQGRlZ3JlZXMpO1xuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKEBkZWdyZWVzKTtcbn1cbi5yb3RhdGVYKEBkZWdyZWVzKSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVYKEBkZWdyZWVzKTtcbiAgICAgIC1tcy10cmFuc2Zvcm06IHJvdGF0ZVgoQGRlZ3JlZXMpOyAvLyBJRTkgb25seVxuICAgICAgIC1vLXRyYW5zZm9ybTogcm90YXRlWChAZGVncmVlcyk7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVYKEBkZWdyZWVzKTtcbn1cbi5yb3RhdGVZKEBkZWdyZWVzKSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVZKEBkZWdyZWVzKTtcbiAgICAgIC1tcy10cmFuc2Zvcm06IHJvdGF0ZVkoQGRlZ3JlZXMpOyAvLyBJRTkgb25seVxuICAgICAgIC1vLXRyYW5zZm9ybTogcm90YXRlWShAZGVncmVlcyk7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKEBkZWdyZWVzKTtcbn1cbi5wZXJzcGVjdGl2ZShAcGVyc3BlY3RpdmUpIHtcbiAgLXdlYmtpdC1wZXJzcGVjdGl2ZTogQHBlcnNwZWN0aXZlO1xuICAgICAtbW96LXBlcnNwZWN0aXZlOiBAcGVyc3BlY3RpdmU7XG4gICAgICAgICAgcGVyc3BlY3RpdmU6IEBwZXJzcGVjdGl2ZTtcbn1cbi5wZXJzcGVjdGl2ZS1vcmlnaW4oQHBlcnNwZWN0aXZlKSB7XG4gIC13ZWJraXQtcGVyc3BlY3RpdmUtb3JpZ2luOiBAcGVyc3BlY3RpdmU7XG4gICAgIC1tb3otcGVyc3BlY3RpdmUtb3JpZ2luOiBAcGVyc3BlY3RpdmU7XG4gICAgICAgICAgcGVyc3BlY3RpdmUtb3JpZ2luOiBAcGVyc3BlY3RpdmU7XG59XG4udHJhbnNmb3JtLW9yaWdpbihAb3JpZ2luKSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogQG9yaWdpbjtcbiAgICAgLW1vei10cmFuc2Zvcm0tb3JpZ2luOiBAb3JpZ2luO1xuICAgICAgLW1zLXRyYW5zZm9ybS1vcmlnaW46IEBvcmlnaW47IC8vIElFOSBvbmx5XG4gICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogQG9yaWdpbjtcbn1cblxuXG4vLyBUcmFuc2l0aW9uc1xuXG4udHJhbnNpdGlvbihAdHJhbnNpdGlvbikge1xuICAtd2Via2l0LXRyYW5zaXRpb246IEB0cmFuc2l0aW9uO1xuICAgICAgIC1vLXRyYW5zaXRpb246IEB0cmFuc2l0aW9uO1xuICAgICAgICAgIHRyYW5zaXRpb246IEB0cmFuc2l0aW9uO1xufVxuLnRyYW5zaXRpb24tcHJvcGVydHkoQHRyYW5zaXRpb24tcHJvcGVydHkpIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiBAdHJhbnNpdGlvbi1wcm9wZXJ0eTtcbiAgICAgICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBAdHJhbnNpdGlvbi1wcm9wZXJ0eTtcbn1cbi50cmFuc2l0aW9uLWRlbGF5KEB0cmFuc2l0aW9uLWRlbGF5KSB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1kZWxheTogQHRyYW5zaXRpb24tZGVsYXk7XG4gICAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogQHRyYW5zaXRpb24tZGVsYXk7XG59XG4udHJhbnNpdGlvbi1kdXJhdGlvbihAdHJhbnNpdGlvbi1kdXJhdGlvbikge1xuICAtd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb246IEB0cmFuc2l0aW9uLWR1cmF0aW9uO1xuICAgICAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IEB0cmFuc2l0aW9uLWR1cmF0aW9uO1xufVxuLnRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKEB0aW1pbmctZnVuY3Rpb24pIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogQHRpbWluZy1mdW5jdGlvbjtcbiAgICAgICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogQHRpbWluZy1mdW5jdGlvbjtcbn1cbi50cmFuc2l0aW9uLXRyYW5zZm9ybShAdHJhbnNpdGlvbikge1xuICAtd2Via2l0LXRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtIEB0cmFuc2l0aW9uO1xuICAgICAtbW96LXRyYW5zaXRpb246IC1tb3otdHJhbnNmb3JtIEB0cmFuc2l0aW9uO1xuICAgICAgIC1vLXRyYW5zaXRpb246IC1vLXRyYW5zZm9ybSBAdHJhbnNpdGlvbjtcbiAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gQHRyYW5zaXRpb247XG59XG5cblxuLy8gVXNlciBzZWxlY3Rcbi8vIEZvciBzZWxlY3RpbmcgdGV4dCBvbiB0aGUgcGFnZVxuXG4udXNlci1zZWxlY3QoQHNlbGVjdCkge1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBAc2VsZWN0O1xuICAgICAtbW96LXVzZXItc2VsZWN0OiBAc2VsZWN0O1xuICAgICAgLW1zLXVzZXItc2VsZWN0OiBAc2VsZWN0OyAvLyBJRTEwK1xuICAgICAgICAgIHVzZXItc2VsZWN0OiBAc2VsZWN0O1xufVxuIiwiLy8gV2ViS2l0LXN0eWxlIGZvY3VzXG5cbi50YWItZm9jdXMoKSB7XG4gIC8vIFdlYktpdC1zcGVjaWZpYy4gT3RoZXIgYnJvd3NlcnMgd2lsbCBrZWVwIHRoZWlyIGRlZmF1bHQgb3V0bGluZSBzdHlsZS5cbiAgLy8gKEluaXRpYWxseSB0cmllZCB0byBhbHNvIGZvcmNlIGRlZmF1bHQgdmlhIGBvdXRsaW5lOiBpbml0aWFsYCxcbiAgLy8gYnV0IHRoYXQgc2VlbXMgdG8gZXJyb25lb3VzbHkgcmVtb3ZlIHRoZSBvdXRsaW5lIGluIEZpcmVmb3ggYWx0b2dldGhlci4pXG4gIG91dGxpbmU6IDVweCBhdXRvIC13ZWJraXQtZm9jdXMtcmluZy1jb2xvcjtcbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG59XG4iLCIvLyBJbWFnZSBNaXhpbnNcbi8vIC0gUmVzcG9uc2l2ZSBpbWFnZVxuLy8gLSBSZXRpbmEgaW1hZ2VcblxuXG4vLyBSZXNwb25zaXZlIGltYWdlXG4vL1xuLy8gS2VlcCBpbWFnZXMgZnJvbSBzY2FsaW5nIGJleW9uZCB0aGUgd2lkdGggb2YgdGhlaXIgcGFyZW50cy5cbi5pbWctcmVzcG9uc2l2ZShAZGlzcGxheTogYmxvY2spIHtcbiAgZGlzcGxheTogQGRpc3BsYXk7XG4gIG1heC13aWR0aDogMTAwJTsgLy8gUGFydCAxOiBTZXQgYSBtYXhpbXVtIHJlbGF0aXZlIHRvIHRoZSBwYXJlbnRcbiAgaGVpZ2h0OiBhdXRvOyAvLyBQYXJ0IDI6IFNjYWxlIHRoZSBoZWlnaHQgYWNjb3JkaW5nIHRvIHRoZSB3aWR0aCwgb3RoZXJ3aXNlIHlvdSBnZXQgc3RyZXRjaGluZ1xufVxuXG5cbi8vIFJldGluYSBpbWFnZVxuLy9cbi8vIFNob3J0IHJldGluYSBtaXhpbiBmb3Igc2V0dGluZyBiYWNrZ3JvdW5kLWltYWdlIGFuZCAtc2l6ZS4gTm90ZSB0aGF0IHRoZVxuLy8gc3BlbGxpbmcgb2YgYG1pbi0tbW96LWRldmljZS1waXhlbC1yYXRpb2AgaXMgaW50ZW50aW9uYWwuXG4uaW1nLXJldGluYShAZmlsZS0xeDsgQGZpbGUtMng7IEB3aWR0aC0xeDsgQGhlaWdodC0xeCkge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJAe2ZpbGUtMXh9XCIpO1xuXG4gIEBtZWRpYVxuICBvbmx5IHNjcmVlbiBhbmQgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksXG4gIG9ubHkgc2NyZWVuIGFuZCAoICAgbWluLS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSxcbiAgb25seSBzY3JlZW4gYW5kICggICAgIC1vLW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIvMSksXG4gIG9ubHkgc2NyZWVuIGFuZCAoICAgICAgICBtaW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSxcbiAgb25seSBzY3JlZW4gYW5kICggICAgICAgICAgICAgICAgbWluLXJlc29sdXRpb246IDE5MmRwaSksXG4gIG9ubHkgc2NyZWVuIGFuZCAoICAgICAgICAgICAgICAgIG1pbi1yZXNvbHV0aW9uOiAyZHBweCkge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIkB7ZmlsZS0yeH1cIik7XG4gICAgYmFja2dyb3VuZC1zaXplOiBAd2lkdGgtMXggQGhlaWdodC0xeDtcbiAgfVxufVxuIiwiLy9cbi8vIFR5cG9ncmFwaHlcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLy8gSGVhZGluZ3Ncbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNixcbi5oMSwgLmgyLCAuaDMsIC5oNCwgLmg1LCAuaDYge1xuICBmb250LWZhbWlseTogQGhlYWRpbmdzLWZvbnQtZmFtaWx5O1xuICBmb250LXdlaWdodDogQGhlYWRpbmdzLWZvbnQtd2VpZ2h0O1xuICBsaW5lLWhlaWdodDogQGhlYWRpbmdzLWxpbmUtaGVpZ2h0O1xuICBjb2xvcjogQGhlYWRpbmdzLWNvbG9yO1xuXG4gIHNtYWxsLFxuICAuc21hbGwge1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgY29sb3I6IEBoZWFkaW5ncy1zbWFsbC1jb2xvcjtcbiAgfVxufVxuXG5oMSwgLmgxLFxuaDIsIC5oMixcbmgzLCAuaDMge1xuICBtYXJnaW4tdG9wOiBAbGluZS1oZWlnaHQtY29tcHV0ZWQ7XG4gIG1hcmdpbi1ib3R0b206IChAbGluZS1oZWlnaHQtY29tcHV0ZWQgLyAyKTtcblxuICBzbWFsbCxcbiAgLnNtYWxsIHtcbiAgICBmb250LXNpemU6IDY1JTtcbiAgfVxufVxuaDQsIC5oNCxcbmg1LCAuaDUsXG5oNiwgLmg2IHtcbiAgbWFyZ2luLXRvcDogKEBsaW5lLWhlaWdodC1jb21wdXRlZCAvIDIpO1xuICBtYXJnaW4tYm90dG9tOiAoQGxpbmUtaGVpZ2h0LWNvbXB1dGVkIC8gMik7XG5cbiAgc21hbGwsXG4gIC5zbWFsbCB7XG4gICAgZm9udC1zaXplOiA3NSU7XG4gIH1cbn1cblxuaDEsIC5oMSB7IGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS1oMTsgfVxuaDIsIC5oMiB7IGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS1oMjsgfVxuaDMsIC5oMyB7IGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS1oMzsgfVxuaDQsIC5oNCB7IGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS1oNDsgfVxuaDUsIC5oNSB7IGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS1oNTsgfVxuaDYsIC5oNiB7IGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS1oNjsgfVxuXG5cbi8vIEJvZHkgdGV4dFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5wIHtcbiAgbWFyZ2luOiAwIDAgKEBsaW5lLWhlaWdodC1jb21wdXRlZCAvIDIpO1xufVxuXG4ubGVhZCB7XG4gIG1hcmdpbi1ib3R0b206IEBsaW5lLWhlaWdodC1jb21wdXRlZDtcbiAgZm9udC1zaXplOiBmbG9vcigoQGZvbnQtc2l6ZS1iYXNlICogMS4xNSkpO1xuICBmb250LXdlaWdodDogMzAwO1xuICBsaW5lLWhlaWdodDogMS40O1xuXG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLXNtLW1pbikge1xuICAgIGZvbnQtc2l6ZTogKEBmb250LXNpemUtYmFzZSAqIDEuNSk7XG4gIH1cbn1cblxuXG4vLyBFbXBoYXNpcyAmIG1pc2Ncbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gRXg6ICgxMnB4IHNtYWxsIGZvbnQgLyAxNHB4IGJhc2UgZm9udCkgKiAxMDAlID0gYWJvdXQgODUlXG5zbWFsbCxcbi5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogZmxvb3IoKDEwMCUgKiBAZm9udC1zaXplLXNtYWxsIC8gQGZvbnQtc2l6ZS1iYXNlKSk7XG59XG5cbm1hcmssXG4ubWFyayB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBzdGF0ZS13YXJuaW5nLWJnO1xuICBwYWRkaW5nOiAuMmVtO1xufVxuXG4vLyBBbGlnbm1lbnRcbi50ZXh0LWxlZnQgICAgICAgICAgIHsgdGV4dC1hbGlnbjogbGVmdDsgfVxuLnRleHQtcmlnaHQgICAgICAgICAgeyB0ZXh0LWFsaWduOiByaWdodDsgfVxuLnRleHQtY2VudGVyICAgICAgICAgeyB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbi50ZXh0LWp1c3RpZnkgICAgICAgIHsgdGV4dC1hbGlnbjoganVzdGlmeTsgfVxuLnRleHQtbm93cmFwICAgICAgICAgeyB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG5cbi8vIFRyYW5zZm9ybWF0aW9uXG4udGV4dC1sb3dlcmNhc2UgICAgICB7IHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2U7IH1cbi50ZXh0LXVwcGVyY2FzZSAgICAgIHsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuLnRleHQtY2FwaXRhbGl6ZSAgICAgeyB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTsgfVxuXG4vLyBDb250ZXh0dWFsIGNvbG9yc1xuLnRleHQtbXV0ZWQge1xuICBjb2xvcjogQHRleHQtbXV0ZWQ7XG59XG4udGV4dC1wcmltYXJ5IHtcbiAgLnRleHQtZW1waGFzaXMtdmFyaWFudChAYnJhbmQtcHJpbWFyeSk7XG59XG4udGV4dC1zdWNjZXNzIHtcbiAgLnRleHQtZW1waGFzaXMtdmFyaWFudChAc3RhdGUtc3VjY2Vzcy10ZXh0KTtcbn1cbi50ZXh0LWluZm8ge1xuICAudGV4dC1lbXBoYXNpcy12YXJpYW50KEBzdGF0ZS1pbmZvLXRleHQpO1xufVxuLnRleHQtd2FybmluZyB7XG4gIC50ZXh0LWVtcGhhc2lzLXZhcmlhbnQoQHN0YXRlLXdhcm5pbmctdGV4dCk7XG59XG4udGV4dC1kYW5nZXIge1xuICAudGV4dC1lbXBoYXNpcy12YXJpYW50KEBzdGF0ZS1kYW5nZXItdGV4dCk7XG59XG5cbi8vIENvbnRleHR1YWwgYmFja2dyb3VuZHNcbi8vIEZvciBub3cgd2UnbGwgbGVhdmUgdGhlc2UgYWxvbmdzaWRlIHRoZSB0ZXh0IGNsYXNzZXMgdW50aWwgdjQgd2hlbiB3ZSBjYW5cbi8vIHNhZmVseSBzaGlmdCB0aGluZ3MgYXJvdW5kIChwZXIgU2VtVmVyIHJ1bGVzKS5cbi5iZy1wcmltYXJ5IHtcbiAgLy8gR2l2ZW4gdGhlIGNvbnRyYXN0IGhlcmUsIHRoaXMgaXMgdGhlIG9ubHkgY2xhc3MgdG8gaGF2ZSBpdHMgY29sb3IgaW52ZXJ0ZWRcbiAgLy8gYXV0b21hdGljYWxseS5cbiAgY29sb3I6ICNmZmY7XG4gIC5iZy12YXJpYW50KEBicmFuZC1wcmltYXJ5KTtcbn1cbi5iZy1zdWNjZXNzIHtcbiAgLmJnLXZhcmlhbnQoQHN0YXRlLXN1Y2Nlc3MtYmcpO1xufVxuLmJnLWluZm8ge1xuICAuYmctdmFyaWFudChAc3RhdGUtaW5mby1iZyk7XG59XG4uYmctd2FybmluZyB7XG4gIC5iZy12YXJpYW50KEBzdGF0ZS13YXJuaW5nLWJnKTtcbn1cbi5iZy1kYW5nZXIge1xuICAuYmctdmFyaWFudChAc3RhdGUtZGFuZ2VyLWJnKTtcbn1cblxuXG4vLyBQYWdlIGhlYWRlclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4ucGFnZS1oZWFkZXIge1xuICBwYWRkaW5nLWJvdHRvbTogKChAbGluZS1oZWlnaHQtY29tcHV0ZWQgLyAyKSAtIDEpO1xuICBtYXJnaW46IChAbGluZS1oZWlnaHQtY29tcHV0ZWQgKiAyKSAwIEBsaW5lLWhlaWdodC1jb21wdXRlZDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIEBwYWdlLWhlYWRlci1ib3JkZXItY29sb3I7XG59XG5cblxuLy8gTGlzdHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gVW5vcmRlcmVkIGFuZCBPcmRlcmVkIGxpc3RzXG51bCxcbm9sIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogKEBsaW5lLWhlaWdodC1jb21wdXRlZCAvIDIpO1xuICB1bCxcbiAgb2wge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLy8gTGlzdCBvcHRpb25zXG5cbi8vIFVuc3R5bGVkIGtlZXBzIGxpc3QgaXRlbXMgYmxvY2sgbGV2ZWwsIGp1c3QgcmVtb3ZlcyBkZWZhdWx0IGJyb3dzZXIgcGFkZGluZyBhbmQgbGlzdC1zdHlsZVxuLmxpc3QtdW5zdHlsZWQge1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbi8vIElubGluZSB0dXJucyBsaXN0IGl0ZW1zIGludG8gaW5saW5lLWJsb2NrXG4ubGlzdC1pbmxpbmUge1xuICAubGlzdC11bnN0eWxlZCgpO1xuICBtYXJnaW4tbGVmdDogLTVweDtcblxuICA+IGxpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcGFkZGluZy1sZWZ0OiA1cHg7XG4gICAgcGFkZGluZy1yaWdodDogNXB4O1xuICB9XG59XG5cbi8vIERlc2NyaXB0aW9uIExpc3RzXG5kbCB7XG4gIG1hcmdpbi10b3A6IDA7IC8vIFJlbW92ZSBicm93c2VyIGRlZmF1bHRcbiAgbWFyZ2luLWJvdHRvbTogQGxpbmUtaGVpZ2h0LWNvbXB1dGVkO1xufVxuZHQsXG5kZCB7XG4gIGxpbmUtaGVpZ2h0OiBAbGluZS1oZWlnaHQtYmFzZTtcbn1cbmR0IHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5kZCB7XG4gIG1hcmdpbi1sZWZ0OiAwOyAvLyBVbmRvIGJyb3dzZXIgZGVmYXVsdFxufVxuXG4vLyBIb3Jpem9udGFsIGRlc2NyaXB0aW9uIGxpc3RzXG4vL1xuLy8gRGVmYXVsdHMgdG8gYmVpbmcgc3RhY2tlZCB3aXRob3V0IGFueSBvZiB0aGUgYmVsb3cgc3R5bGVzIGFwcGxpZWQsIHVudGlsIHRoZVxuLy8gZ3JpZCBicmVha3BvaW50IGlzIHJlYWNoZWQgKGRlZmF1bHQgb2Ygfjc2OHB4KS5cblxuLmRsLWhvcml6b250YWwge1xuICBkZCB7XG4gICAgJjpleHRlbmQoLmNsZWFyZml4IGFsbCk7IC8vIENsZWFyIHRoZSBmbG9hdGVkIGBkdGAgaWYgYW4gZW1wdHkgYGRkYCBpcyBwcmVzZW50XG4gIH1cblxuICBAbWVkaWEgKG1pbi13aWR0aDogQGRsLWhvcml6b250YWwtYnJlYWtwb2ludCkge1xuICAgIGR0IHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgd2lkdGg6IChAZGwtaG9yaXpvbnRhbC1vZmZzZXQgLSAyMCk7XG4gICAgICBjbGVhcjogbGVmdDtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgLnRleHQtb3ZlcmZsb3coKTtcbiAgICB9XG4gICAgZGQge1xuICAgICAgbWFyZ2luLWxlZnQ6IEBkbC1ob3Jpem9udGFsLW9mZnNldDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLyBNaXNjXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIEFiYnJldmlhdGlvbnMgYW5kIGFjcm9ueW1zXG5hYmJyW3RpdGxlXSxcbi8vIEFkZCBkYXRhLSogYXR0cmlidXRlIHRvIGhlbHAgb3V0IG91ciB0b29sdGlwIHBsdWdpbiwgcGVyIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9pc3N1ZXMvNTI1N1xuYWJicltkYXRhLW9yaWdpbmFsLXRpdGxlXSB7XG4gIGN1cnNvcjogaGVscDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCBAYWJici1ib3JkZXItY29sb3I7XG59XG4uaW5pdGlhbGlzbSB7XG4gIGZvbnQtc2l6ZTogOTAlO1xuICAudGV4dC11cHBlcmNhc2UoKTtcbn1cblxuLy8gQmxvY2txdW90ZXNcbmJsb2NrcXVvdGUge1xuICBwYWRkaW5nOiAoQGxpbmUtaGVpZ2h0LWNvbXB1dGVkIC8gMikgQGxpbmUtaGVpZ2h0LWNvbXB1dGVkO1xuICBtYXJnaW46IDAgMCBAbGluZS1oZWlnaHQtY29tcHV0ZWQ7XG4gIGZvbnQtc2l6ZTogQGJsb2NrcXVvdGUtZm9udC1zaXplO1xuICBib3JkZXItbGVmdDogNXB4IHNvbGlkIEBibG9ja3F1b3RlLWJvcmRlci1jb2xvcjtcblxuICBwLFxuICB1bCxcbiAgb2wge1xuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxuXG4gIC8vIE5vdGU6IERlcHJlY2F0ZWQgc21hbGwgYW5kIC5zbWFsbCBhcyBvZiB2My4xLjBcbiAgLy8gQ29udGV4dDogaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2lzc3Vlcy8xMTY2MFxuICBmb290ZXIsXG4gIHNtYWxsLFxuICAuc21hbGwge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogODAlOyAvLyBiYWNrIHRvIGRlZmF1bHQgZm9udC1zaXplXG4gICAgbGluZS1oZWlnaHQ6IEBsaW5lLWhlaWdodC1iYXNlO1xuICAgIGNvbG9yOiBAYmxvY2txdW90ZS1zbWFsbC1jb2xvcjtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICdcXDIwMTQgXFwwMEEwJzsgLy8gZW0gZGFzaCwgbmJzcFxuICAgIH1cbiAgfVxufVxuXG4vLyBPcHBvc2l0ZSBhbGlnbm1lbnQgb2YgYmxvY2txdW90ZVxuLy9cbi8vIEhlYWRzIHVwOiBgYmxvY2txdW90ZS5wdWxsLXJpZ2h0YCBoYXMgYmVlbiBkZXByZWNhdGVkIGFzIG9mIHYzLjEuMC5cbi5ibG9ja3F1b3RlLXJldmVyc2UsXG5ibG9ja3F1b3RlLnB1bGwtcmlnaHQge1xuICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIGJvcmRlci1yaWdodDogNXB4IHNvbGlkIEBibG9ja3F1b3RlLWJvcmRlci1jb2xvcjtcbiAgYm9yZGVyLWxlZnQ6IDA7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuXG4gIC8vIEFjY291bnQgZm9yIGNpdGF0aW9uXG4gIGZvb3RlcixcbiAgc21hbGwsXG4gIC5zbWFsbCB7XG4gICAgJjpiZWZvcmUgeyBjb250ZW50OiAnJzsgfVxuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogJ1xcMDBBMCBcXDIwMTQnOyAvLyBuYnNwLCBlbSBkYXNoXG4gICAgfVxuICB9XG59XG5cbi8vIEFkZHJlc3Nlc1xuYWRkcmVzcyB7XG4gIG1hcmdpbi1ib3R0b206IEBsaW5lLWhlaWdodC1jb21wdXRlZDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogQGxpbmUtaGVpZ2h0LWJhc2U7XG59XG4iLCIvLyBUeXBvZ3JhcGh5XG5cbi50ZXh0LWVtcGhhc2lzLXZhcmlhbnQoQGNvbG9yKSB7XG4gIGNvbG9yOiBAY29sb3I7XG4gIGEmOmhvdmVyLFxuICBhJjpmb2N1cyB7XG4gICAgY29sb3I6IGRhcmtlbihAY29sb3IsIDEwJSk7XG4gIH1cbn1cbiIsIi8vIENvbnRleHR1YWwgYmFja2dyb3VuZHNcblxuLmJnLXZhcmlhbnQoQGNvbG9yKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBjb2xvcjtcbiAgYSY6aG92ZXIsXG4gIGEmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oQGNvbG9yLCAxMCUpO1xuICB9XG59XG4iLCIvLyBUZXh0IG92ZXJmbG93XG4vLyBSZXF1aXJlcyBpbmxpbmUtYmxvY2sgb3IgYmxvY2sgZm9yIHByb3BlciBzdHlsaW5nXG5cbi50ZXh0LW92ZXJmbG93KCkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbiIsIi8vXG4vLyBDb2RlIChpbmxpbmUgYW5kIGJsb2NrKVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4vLyBJbmxpbmUgYW5kIGJsb2NrIGNvZGUgc3R5bGVzXG5jb2RlLFxua2JkLFxucHJlLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBAZm9udC1mYW1pbHktbW9ub3NwYWNlO1xufVxuXG4vLyBJbmxpbmUgY29kZVxuY29kZSB7XG4gIHBhZGRpbmc6IDJweCA0cHg7XG4gIGZvbnQtc2l6ZTogOTAlO1xuICBjb2xvcjogQGNvZGUtY29sb3I7XG4gIGJhY2tncm91bmQtY29sb3I6IEBjb2RlLWJnO1xuICBib3JkZXItcmFkaXVzOiBAYm9yZGVyLXJhZGl1cy1iYXNlO1xufVxuXG4vLyBVc2VyIGlucHV0IHR5cGljYWxseSBlbnRlcmVkIHZpYSBrZXlib2FyZFxua2JkIHtcbiAgcGFkZGluZzogMnB4IDRweDtcbiAgZm9udC1zaXplOiA5MCU7XG4gIGNvbG9yOiBAa2JkLWNvbG9yO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAa2JkLWJnO1xuICBib3JkZXItcmFkaXVzOiBAYm9yZGVyLXJhZGl1cy1zbWFsbDtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAtMXB4IDAgcmdiYSgwLDAsMCwuMjUpO1xuXG4gIGtiZCB7XG4gICAgcGFkZGluZzogMDtcbiAgICBmb250LXNpemU6IDEwMCU7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxufVxuXG4vLyBCbG9ja3Mgb2YgY29kZVxucHJlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6ICgoQGxpbmUtaGVpZ2h0LWNvbXB1dGVkIC0gMSkgLyAyKTtcbiAgbWFyZ2luOiAwIDAgKEBsaW5lLWhlaWdodC1jb21wdXRlZCAvIDIpO1xuICBmb250LXNpemU6IChAZm9udC1zaXplLWJhc2UgLSAxKTsgLy8gMTRweCB0byAxM3B4XG4gIGxpbmUtaGVpZ2h0OiBAbGluZS1oZWlnaHQtYmFzZTtcbiAgd29yZC1icmVhazogYnJlYWstYWxsO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gIGNvbG9yOiBAcHJlLWNvbG9yO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAcHJlLWJnO1xuICBib3JkZXI6IDFweCBzb2xpZCBAcHJlLWJvcmRlci1jb2xvcjtcbiAgYm9yZGVyLXJhZGl1czogQGJvcmRlci1yYWRpdXMtYmFzZTtcblxuICAvLyBBY2NvdW50IGZvciBzb21lIGNvZGUgb3V0cHV0cyB0aGF0IHBsYWNlIGNvZGUgdGFncyBpbiBwcmUgdGFnc1xuICBjb2RlIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgfVxufVxuXG4vLyBFbmFibGUgc2Nyb2xsYWJsZSBibG9ja3Mgb2YgY29kZVxuLnByZS1zY3JvbGxhYmxlIHtcbiAgbWF4LWhlaWdodDogQHByZS1zY3JvbGxhYmxlLW1heC1oZWlnaHQ7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbn1cbiIsIi8vXG4vLyBHcmlkIHN5c3RlbVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4vLyBDb250YWluZXIgd2lkdGhzXG4vL1xuLy8gU2V0IHRoZSBjb250YWluZXIgd2lkdGgsIGFuZCBvdmVycmlkZSBpdCBmb3IgZml4ZWQgbmF2YmFycyBpbiBtZWRpYSBxdWVyaWVzLlxuXG4uY29udGFpbmVyIHtcbiAgLmNvbnRhaW5lci1maXhlZCgpO1xuXG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLXNtLW1pbikge1xuICAgIHdpZHRoOiBAY29udGFpbmVyLXNtO1xuICB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLW1kLW1pbikge1xuICAgIHdpZHRoOiBAY29udGFpbmVyLW1kO1xuICB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLWxnLW1pbikge1xuICAgIHdpZHRoOiBAY29udGFpbmVyLWxnO1xuICB9XG59XG5cblxuLy8gRmx1aWQgY29udGFpbmVyXG4vL1xuLy8gVXRpbGl6ZXMgdGhlIG1peGluIG1lYW50IGZvciBmaXhlZCB3aWR0aCBjb250YWluZXJzLCBidXQgd2l0aG91dCBhbnkgZGVmaW5lZFxuLy8gd2lkdGggZm9yIGZsdWlkLCBmdWxsIHdpZHRoIGxheW91dHMuXG5cbi5jb250YWluZXItZmx1aWQge1xuICAuY29udGFpbmVyLWZpeGVkKCk7XG59XG5cblxuLy8gUm93XG4vL1xuLy8gUm93cyBjb250YWluIGFuZCBjbGVhciB0aGUgZmxvYXRzIG9mIHlvdXIgY29sdW1ucy5cblxuLnJvdyB7XG4gIC5tYWtlLXJvdygpO1xufVxuXG5cbi8vIENvbHVtbnNcbi8vXG4vLyBDb21tb24gc3R5bGVzIGZvciBzbWFsbCBhbmQgbGFyZ2UgZ3JpZCBjb2x1bW5zXG5cbi5tYWtlLWdyaWQtY29sdW1ucygpO1xuXG5cbi8vIEV4dHJhIHNtYWxsIGdyaWRcbi8vXG4vLyBDb2x1bW5zLCBvZmZzZXRzLCBwdXNoZXMsIGFuZCBwdWxscyBmb3IgZXh0cmEgc21hbGwgZGV2aWNlcyBsaWtlXG4vLyBzbWFydHBob25lcy5cblxuLm1ha2UtZ3JpZCh4cyk7XG5cblxuLy8gU21hbGwgZ3JpZFxuLy9cbi8vIENvbHVtbnMsIG9mZnNldHMsIHB1c2hlcywgYW5kIHB1bGxzIGZvciB0aGUgc21hbGwgZGV2aWNlIHJhbmdlLCBmcm9tIHBob25lc1xuLy8gdG8gdGFibGV0cy5cblxuQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tc20tbWluKSB7XG4gIC5tYWtlLWdyaWQoc20pO1xufVxuXG5cbi8vIE1lZGl1bSBncmlkXG4vL1xuLy8gQ29sdW1ucywgb2Zmc2V0cywgcHVzaGVzLCBhbmQgcHVsbHMgZm9yIHRoZSBkZXNrdG9wIGRldmljZSByYW5nZS5cblxuQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbWQtbWluKSB7XG4gIC5tYWtlLWdyaWQobWQpO1xufVxuXG5cbi8vIExhcmdlIGdyaWRcbi8vXG4vLyBDb2x1bW5zLCBvZmZzZXRzLCBwdXNoZXMsIGFuZCBwdWxscyBmb3IgdGhlIGxhcmdlIGRlc2t0b3AgZGV2aWNlIHJhbmdlLlxuXG5AbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1sZy1taW4pIHtcbiAgLm1ha2UtZ3JpZChsZyk7XG59XG4iLCIvLyBHcmlkIHN5c3RlbVxuLy9cbi8vIEdlbmVyYXRlIHNlbWFudGljIGdyaWQgY29sdW1ucyB3aXRoIHRoZXNlIG1peGlucy5cblxuLy8gQ2VudGVyZWQgY29udGFpbmVyIGVsZW1lbnRcbi5jb250YWluZXItZml4ZWQoQGd1dHRlcjogQGdyaWQtZ3V0dGVyLXdpZHRoKSB7XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIHBhZGRpbmctbGVmdDogIGZsb29yKChAZ3V0dGVyIC8gMikpO1xuICBwYWRkaW5nLXJpZ2h0OiBjZWlsKChAZ3V0dGVyIC8gMikpO1xuICAmOmV4dGVuZCguY2xlYXJmaXggYWxsKTtcbn1cblxuLy8gQ3JlYXRlcyBhIHdyYXBwZXIgZm9yIGEgc2VyaWVzIG9mIGNvbHVtbnNcbi5tYWtlLXJvdyhAZ3V0dGVyOiBAZ3JpZC1ndXR0ZXItd2lkdGgpIHtcbiAgbWFyZ2luLWxlZnQ6ICBjZWlsKChAZ3V0dGVyIC8gLTIpKTtcbiAgbWFyZ2luLXJpZ2h0OiBmbG9vcigoQGd1dHRlciAvIC0yKSk7XG4gICY6ZXh0ZW5kKC5jbGVhcmZpeCBhbGwpO1xufVxuXG4vLyBHZW5lcmF0ZSB0aGUgZXh0cmEgc21hbGwgY29sdW1uc1xuLm1ha2UteHMtY29sdW1uKEBjb2x1bW5zOyBAZ3V0dGVyOiBAZ3JpZC1ndXR0ZXItd2lkdGgpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IHBlcmNlbnRhZ2UoKEBjb2x1bW5zIC8gQGdyaWQtY29sdW1ucykpO1xuICBtaW4taGVpZ2h0OiAxcHg7XG4gIHBhZGRpbmctbGVmdDogIChAZ3V0dGVyIC8gMik7XG4gIHBhZGRpbmctcmlnaHQ6IChAZ3V0dGVyIC8gMik7XG59XG4ubWFrZS14cy1jb2x1bW4tb2Zmc2V0KEBjb2x1bW5zKSB7XG4gIG1hcmdpbi1sZWZ0OiBwZXJjZW50YWdlKChAY29sdW1ucyAvIEBncmlkLWNvbHVtbnMpKTtcbn1cbi5tYWtlLXhzLWNvbHVtbi1wdXNoKEBjb2x1bW5zKSB7XG4gIGxlZnQ6IHBlcmNlbnRhZ2UoKEBjb2x1bW5zIC8gQGdyaWQtY29sdW1ucykpO1xufVxuLm1ha2UteHMtY29sdW1uLXB1bGwoQGNvbHVtbnMpIHtcbiAgcmlnaHQ6IHBlcmNlbnRhZ2UoKEBjb2x1bW5zIC8gQGdyaWQtY29sdW1ucykpO1xufVxuXG4vLyBHZW5lcmF0ZSB0aGUgc21hbGwgY29sdW1uc1xuLm1ha2Utc20tY29sdW1uKEBjb2x1bW5zOyBAZ3V0dGVyOiBAZ3JpZC1ndXR0ZXItd2lkdGgpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtaW4taGVpZ2h0OiAxcHg7XG4gIHBhZGRpbmctbGVmdDogIChAZ3V0dGVyIC8gMik7XG4gIHBhZGRpbmctcmlnaHQ6IChAZ3V0dGVyIC8gMik7XG5cbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tc20tbWluKSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IHBlcmNlbnRhZ2UoKEBjb2x1bW5zIC8gQGdyaWQtY29sdW1ucykpO1xuICB9XG59XG4ubWFrZS1zbS1jb2x1bW4tb2Zmc2V0KEBjb2x1bW5zKSB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLXNtLW1pbikge1xuICAgIG1hcmdpbi1sZWZ0OiBwZXJjZW50YWdlKChAY29sdW1ucyAvIEBncmlkLWNvbHVtbnMpKTtcbiAgfVxufVxuLm1ha2Utc20tY29sdW1uLXB1c2goQGNvbHVtbnMpIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tc20tbWluKSB7XG4gICAgbGVmdDogcGVyY2VudGFnZSgoQGNvbHVtbnMgLyBAZ3JpZC1jb2x1bW5zKSk7XG4gIH1cbn1cbi5tYWtlLXNtLWNvbHVtbi1wdWxsKEBjb2x1bW5zKSB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLXNtLW1pbikge1xuICAgIHJpZ2h0OiBwZXJjZW50YWdlKChAY29sdW1ucyAvIEBncmlkLWNvbHVtbnMpKTtcbiAgfVxufVxuXG4vLyBHZW5lcmF0ZSB0aGUgbWVkaXVtIGNvbHVtbnNcbi5tYWtlLW1kLWNvbHVtbihAY29sdW1uczsgQGd1dHRlcjogQGdyaWQtZ3V0dGVyLXdpZHRoKSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWluLWhlaWdodDogMXB4O1xuICBwYWRkaW5nLWxlZnQ6ICAoQGd1dHRlciAvIDIpO1xuICBwYWRkaW5nLXJpZ2h0OiAoQGd1dHRlciAvIDIpO1xuXG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLW1kLW1pbikge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiBwZXJjZW50YWdlKChAY29sdW1ucyAvIEBncmlkLWNvbHVtbnMpKTtcbiAgfVxufVxuLm1ha2UtbWQtY29sdW1uLW9mZnNldChAY29sdW1ucykge1xuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1tZC1taW4pIHtcbiAgICBtYXJnaW4tbGVmdDogcGVyY2VudGFnZSgoQGNvbHVtbnMgLyBAZ3JpZC1jb2x1bW5zKSk7XG4gIH1cbn1cbi5tYWtlLW1kLWNvbHVtbi1wdXNoKEBjb2x1bW5zKSB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLW1kLW1pbikge1xuICAgIGxlZnQ6IHBlcmNlbnRhZ2UoKEBjb2x1bW5zIC8gQGdyaWQtY29sdW1ucykpO1xuICB9XG59XG4ubWFrZS1tZC1jb2x1bW4tcHVsbChAY29sdW1ucykge1xuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1tZC1taW4pIHtcbiAgICByaWdodDogcGVyY2VudGFnZSgoQGNvbHVtbnMgLyBAZ3JpZC1jb2x1bW5zKSk7XG4gIH1cbn1cblxuLy8gR2VuZXJhdGUgdGhlIGxhcmdlIGNvbHVtbnNcbi5tYWtlLWxnLWNvbHVtbihAY29sdW1uczsgQGd1dHRlcjogQGdyaWQtZ3V0dGVyLXdpZHRoKSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWluLWhlaWdodDogMXB4O1xuICBwYWRkaW5nLWxlZnQ6ICAoQGd1dHRlciAvIDIpO1xuICBwYWRkaW5nLXJpZ2h0OiAoQGd1dHRlciAvIDIpO1xuXG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLWxnLW1pbikge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiBwZXJjZW50YWdlKChAY29sdW1ucyAvIEBncmlkLWNvbHVtbnMpKTtcbiAgfVxufVxuLm1ha2UtbGctY29sdW1uLW9mZnNldChAY29sdW1ucykge1xuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1sZy1taW4pIHtcbiAgICBtYXJnaW4tbGVmdDogcGVyY2VudGFnZSgoQGNvbHVtbnMgLyBAZ3JpZC1jb2x1bW5zKSk7XG4gIH1cbn1cbi5tYWtlLWxnLWNvbHVtbi1wdXNoKEBjb2x1bW5zKSB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLWxnLW1pbikge1xuICAgIGxlZnQ6IHBlcmNlbnRhZ2UoKEBjb2x1bW5zIC8gQGdyaWQtY29sdW1ucykpO1xuICB9XG59XG4ubWFrZS1sZy1jb2x1bW4tcHVsbChAY29sdW1ucykge1xuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1sZy1taW4pIHtcbiAgICByaWdodDogcGVyY2VudGFnZSgoQGNvbHVtbnMgLyBAZ3JpZC1jb2x1bW5zKSk7XG4gIH1cbn1cbiIsIi8vIEZyYW1ld29yayBncmlkIGdlbmVyYXRpb25cbi8vXG4vLyBVc2VkIG9ubHkgYnkgQm9vdHN0cmFwIHRvIGdlbmVyYXRlIHRoZSBjb3JyZWN0IG51bWJlciBvZiBncmlkIGNsYXNzZXMgZ2l2ZW5cbi8vIGFueSB2YWx1ZSBvZiBgQGdyaWQtY29sdW1uc2AuXG5cbi5tYWtlLWdyaWQtY29sdW1ucygpIHtcbiAgLy8gQ29tbW9uIHN0eWxlcyBmb3IgYWxsIHNpemVzIG9mIGdyaWQgY29sdW1ucywgd2lkdGhzIDEtMTJcbiAgLmNvbChAaW5kZXgpIHsgLy8gaW5pdGlhbFxuICAgIEBpdGVtOiB+XCIuY29sLXhzLUB7aW5kZXh9LCAuY29sLXNtLUB7aW5kZXh9LCAuY29sLW1kLUB7aW5kZXh9LCAuY29sLWxnLUB7aW5kZXh9XCI7XG4gICAgLmNvbCgoQGluZGV4ICsgMSksIEBpdGVtKTtcbiAgfVxuICAuY29sKEBpbmRleCwgQGxpc3QpIHdoZW4gKEBpbmRleCA9PCBAZ3JpZC1jb2x1bW5zKSB7IC8vIGdlbmVyYWw7IFwiPTxcIiBpc24ndCBhIHR5cG9cbiAgICBAaXRlbTogflwiLmNvbC14cy1Ae2luZGV4fSwgLmNvbC1zbS1Ae2luZGV4fSwgLmNvbC1tZC1Ae2luZGV4fSwgLmNvbC1sZy1Ae2luZGV4fVwiO1xuICAgIC5jb2woKEBpbmRleCArIDEpLCB+XCJAe2xpc3R9LCBAe2l0ZW19XCIpO1xuICB9XG4gIC5jb2woQGluZGV4LCBAbGlzdCkgd2hlbiAoQGluZGV4ID4gQGdyaWQtY29sdW1ucykgeyAvLyB0ZXJtaW5hbFxuICAgIEB7bGlzdH0ge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgLy8gUHJldmVudCBjb2x1bW5zIGZyb20gY29sbGFwc2luZyB3aGVuIGVtcHR5XG4gICAgICBtaW4taGVpZ2h0OiAxcHg7XG4gICAgICAvLyBJbm5lciBndXR0ZXIgdmlhIHBhZGRpbmdcbiAgICAgIHBhZGRpbmctbGVmdDogIGNlaWwoKEBncmlkLWd1dHRlci13aWR0aCAvIDIpKTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IGZsb29yKChAZ3JpZC1ndXR0ZXItd2lkdGggLyAyKSk7XG4gICAgfVxuICB9XG4gIC5jb2woMSk7IC8vIGtpY2tzdGFydCBpdFxufVxuXG4uZmxvYXQtZ3JpZC1jb2x1bW5zKEBjbGFzcykge1xuICAuY29sKEBpbmRleCkgeyAvLyBpbml0aWFsXG4gICAgQGl0ZW06IH5cIi5jb2wtQHtjbGFzc30tQHtpbmRleH1cIjtcbiAgICAuY29sKChAaW5kZXggKyAxKSwgQGl0ZW0pO1xuICB9XG4gIC5jb2woQGluZGV4LCBAbGlzdCkgd2hlbiAoQGluZGV4ID08IEBncmlkLWNvbHVtbnMpIHsgLy8gZ2VuZXJhbFxuICAgIEBpdGVtOiB+XCIuY29sLUB7Y2xhc3N9LUB7aW5kZXh9XCI7XG4gICAgLmNvbCgoQGluZGV4ICsgMSksIH5cIkB7bGlzdH0sIEB7aXRlbX1cIik7XG4gIH1cbiAgLmNvbChAaW5kZXgsIEBsaXN0KSB3aGVuIChAaW5kZXggPiBAZ3JpZC1jb2x1bW5zKSB7IC8vIHRlcm1pbmFsXG4gICAgQHtsaXN0fSB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICB9XG4gIH1cbiAgLmNvbCgxKTsgLy8ga2lja3N0YXJ0IGl0XG59XG5cbi5jYWxjLWdyaWQtY29sdW1uKEBpbmRleCwgQGNsYXNzLCBAdHlwZSkgd2hlbiAoQHR5cGUgPSB3aWR0aCkgYW5kIChAaW5kZXggPiAwKSB7XG4gIC5jb2wtQHtjbGFzc30tQHtpbmRleH0ge1xuICAgIHdpZHRoOiBwZXJjZW50YWdlKChAaW5kZXggLyBAZ3JpZC1jb2x1bW5zKSk7XG4gIH1cbn1cbi5jYWxjLWdyaWQtY29sdW1uKEBpbmRleCwgQGNsYXNzLCBAdHlwZSkgd2hlbiAoQHR5cGUgPSBwdXNoKSBhbmQgKEBpbmRleCA+IDApIHtcbiAgLmNvbC1Ae2NsYXNzfS1wdXNoLUB7aW5kZXh9IHtcbiAgICBsZWZ0OiBwZXJjZW50YWdlKChAaW5kZXggLyBAZ3JpZC1jb2x1bW5zKSk7XG4gIH1cbn1cbi5jYWxjLWdyaWQtY29sdW1uKEBpbmRleCwgQGNsYXNzLCBAdHlwZSkgd2hlbiAoQHR5cGUgPSBwdXNoKSBhbmQgKEBpbmRleCA9IDApIHtcbiAgLmNvbC1Ae2NsYXNzfS1wdXNoLTAge1xuICAgIGxlZnQ6IGF1dG87XG4gIH1cbn1cbi5jYWxjLWdyaWQtY29sdW1uKEBpbmRleCwgQGNsYXNzLCBAdHlwZSkgd2hlbiAoQHR5cGUgPSBwdWxsKSBhbmQgKEBpbmRleCA+IDApIHtcbiAgLmNvbC1Ae2NsYXNzfS1wdWxsLUB7aW5kZXh9IHtcbiAgICByaWdodDogcGVyY2VudGFnZSgoQGluZGV4IC8gQGdyaWQtY29sdW1ucykpO1xuICB9XG59XG4uY2FsYy1ncmlkLWNvbHVtbihAaW5kZXgsIEBjbGFzcywgQHR5cGUpIHdoZW4gKEB0eXBlID0gcHVsbCkgYW5kIChAaW5kZXggPSAwKSB7XG4gIC5jb2wtQHtjbGFzc30tcHVsbC0wIHtcbiAgICByaWdodDogYXV0bztcbiAgfVxufVxuLmNhbGMtZ3JpZC1jb2x1bW4oQGluZGV4LCBAY2xhc3MsIEB0eXBlKSB3aGVuIChAdHlwZSA9IG9mZnNldCkge1xuICAuY29sLUB7Y2xhc3N9LW9mZnNldC1Ae2luZGV4fSB7XG4gICAgbWFyZ2luLWxlZnQ6IHBlcmNlbnRhZ2UoKEBpbmRleCAvIEBncmlkLWNvbHVtbnMpKTtcbiAgfVxufVxuXG4vLyBCYXNpYyBsb29waW5nIGluIExFU1Ncbi5sb29wLWdyaWQtY29sdW1ucyhAaW5kZXgsIEBjbGFzcywgQHR5cGUpIHdoZW4gKEBpbmRleCA+PSAwKSB7XG4gIC5jYWxjLWdyaWQtY29sdW1uKEBpbmRleCwgQGNsYXNzLCBAdHlwZSk7XG4gIC8vIG5leHQgaXRlcmF0aW9uXG4gIC5sb29wLWdyaWQtY29sdW1ucygoQGluZGV4IC0gMSksIEBjbGFzcywgQHR5cGUpO1xufVxuXG4vLyBDcmVhdGUgZ3JpZCBmb3Igc3BlY2lmaWMgY2xhc3Ncbi5tYWtlLWdyaWQoQGNsYXNzKSB7XG4gIC5mbG9hdC1ncmlkLWNvbHVtbnMoQGNsYXNzKTtcbiAgLmxvb3AtZ3JpZC1jb2x1bW5zKEBncmlkLWNvbHVtbnMsIEBjbGFzcywgd2lkdGgpO1xuICAubG9vcC1ncmlkLWNvbHVtbnMoQGdyaWQtY29sdW1ucywgQGNsYXNzLCBwdWxsKTtcbiAgLmxvb3AtZ3JpZC1jb2x1bW5zKEBncmlkLWNvbHVtbnMsIEBjbGFzcywgcHVzaCk7XG4gIC5sb29wLWdyaWQtY29sdW1ucyhAZ3JpZC1jb2x1bW5zLCBAY2xhc3MsIG9mZnNldCk7XG59XG4iLCIvL1xuLy8gVGFibGVzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbnRhYmxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQHRhYmxlLWJnO1xufVxuY2FwdGlvbiB7XG4gIHBhZGRpbmctdG9wOiBAdGFibGUtY2VsbC1wYWRkaW5nO1xuICBwYWRkaW5nLWJvdHRvbTogQHRhYmxlLWNlbGwtcGFkZGluZztcbiAgY29sb3I6IEB0ZXh0LW11dGVkO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxudGgge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG5cbi8vIEJhc2VsaW5lIHN0eWxlc1xuXG4udGFibGUge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiBAbGluZS1oZWlnaHQtY29tcHV0ZWQ7XG4gIC8vIENlbGxzXG4gID4gdGhlYWQsXG4gID4gdGJvZHksXG4gID4gdGZvb3Qge1xuICAgID4gdHIge1xuICAgICAgPiB0aCxcbiAgICAgID4gdGQge1xuICAgICAgICBwYWRkaW5nOiBAdGFibGUtY2VsbC1wYWRkaW5nO1xuICAgICAgICBsaW5lLWhlaWdodDogQGxpbmUtaGVpZ2h0LWJhc2U7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCBAdGFibGUtYm9yZGVyLWNvbG9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAvLyBCb3R0b20gYWxpZ24gZm9yIGNvbHVtbiBoZWFkaW5nc1xuICA+IHRoZWFkID4gdHIgPiB0aCB7XG4gICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgQHRhYmxlLWJvcmRlci1jb2xvcjtcbiAgfVxuICAvLyBSZW1vdmUgdG9wIGJvcmRlciBmcm9tIHRoZWFkIGJ5IGRlZmF1bHRcbiAgPiBjYXB0aW9uICsgdGhlYWQsXG4gID4gY29sZ3JvdXAgKyB0aGVhZCxcbiAgPiB0aGVhZDpmaXJzdC1jaGlsZCB7XG4gICAgPiB0cjpmaXJzdC1jaGlsZCB7XG4gICAgICA+IHRoLFxuICAgICAgPiB0ZCB7XG4gICAgICAgIGJvcmRlci10b3A6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC8vIEFjY291bnQgZm9yIG11bHRpcGxlIHRib2R5IGluc3RhbmNlc1xuICA+IHRib2R5ICsgdGJvZHkge1xuICAgIGJvcmRlci10b3A6IDJweCBzb2xpZCBAdGFibGUtYm9yZGVyLWNvbG9yO1xuICB9XG5cbiAgLy8gTmVzdGluZ1xuICAudGFibGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBib2R5LWJnO1xuICB9XG59XG5cblxuLy8gQ29uZGVuc2VkIHRhYmxlIHcvIGhhbGYgcGFkZGluZ1xuXG4udGFibGUtY29uZGVuc2VkIHtcbiAgPiB0aGVhZCxcbiAgPiB0Ym9keSxcbiAgPiB0Zm9vdCB7XG4gICAgPiB0ciB7XG4gICAgICA+IHRoLFxuICAgICAgPiB0ZCB7XG4gICAgICAgIHBhZGRpbmc6IEB0YWJsZS1jb25kZW5zZWQtY2VsbC1wYWRkaW5nO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cbi8vIEJvcmRlcmVkIHZlcnNpb25cbi8vXG4vLyBBZGQgYm9yZGVycyBhbGwgYXJvdW5kIHRoZSB0YWJsZSBhbmQgYmV0d2VlbiBhbGwgdGhlIGNvbHVtbnMuXG5cbi50YWJsZS1ib3JkZXJlZCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkIEB0YWJsZS1ib3JkZXItY29sb3I7XG4gID4gdGhlYWQsXG4gID4gdGJvZHksXG4gID4gdGZvb3Qge1xuICAgID4gdHIge1xuICAgICAgPiB0aCxcbiAgICAgID4gdGQge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBAdGFibGUtYm9yZGVyLWNvbG9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICA+IHRoZWFkID4gdHIge1xuICAgID4gdGgsXG4gICAgPiB0ZCB7XG4gICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAycHg7XG4gICAgfVxuICB9XG59XG5cblxuLy8gWmVicmEtc3RyaXBpbmdcbi8vXG4vLyBEZWZhdWx0IHplYnJhLXN0cmlwZSBzdHlsZXMgKGFsdGVybmF0aW5nIGdyYXkgYW5kIHRyYW5zcGFyZW50IGJhY2tncm91bmRzKVxuXG4udGFibGUtc3RyaXBlZCB7XG4gID4gdGJvZHkgPiB0cjpudGgtb2YtdHlwZShvZGQpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAdGFibGUtYmctYWNjZW50O1xuICB9XG59XG5cblxuLy8gSG92ZXIgZWZmZWN0XG4vL1xuLy8gUGxhY2VkIGhlcmUgc2luY2UgaXQgaGFzIHRvIGNvbWUgYWZ0ZXIgdGhlIHBvdGVudGlhbCB6ZWJyYSBzdHJpcGluZ1xuXG4udGFibGUtaG92ZXIge1xuICA+IHRib2R5ID4gdHI6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEB0YWJsZS1iZy1ob3ZlcjtcbiAgfVxufVxuXG5cbi8vIFRhYmxlIGNlbGwgc2l6aW5nXG4vL1xuLy8gUmVzZXQgZGVmYXVsdCB0YWJsZSBiZWhhdmlvclxuXG50YWJsZSBjb2xbY2xhc3MqPVwiY29sLVwiXSB7XG4gIHBvc2l0aW9uOiBzdGF0aWM7IC8vIFByZXZlbnQgYm9yZGVyIGhpZGluZyBpbiBGaXJlZm94IGFuZCBJRTktMTEgKHNlZSBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvaXNzdWVzLzExNjIzKVxuICBmbG9hdDogbm9uZTtcbiAgZGlzcGxheTogdGFibGUtY29sdW1uO1xufVxudGFibGUge1xuICB0ZCxcbiAgdGgge1xuICAgICZbY2xhc3MqPVwiY29sLVwiXSB7XG4gICAgICBwb3NpdGlvbjogc3RhdGljOyAvLyBQcmV2ZW50IGJvcmRlciBoaWRpbmcgaW4gRmlyZWZveCBhbmQgSUU5LTExIChzZWUgaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2lzc3Vlcy8xMTYyMylcbiAgICAgIGZsb2F0OiBub25lO1xuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLyBUYWJsZSBiYWNrZ3JvdW5kc1xuLy9cbi8vIEV4YWN0IHNlbGVjdG9ycyBiZWxvdyByZXF1aXJlZCB0byBvdmVycmlkZSBgLnRhYmxlLXN0cmlwZWRgIGFuZCBwcmV2ZW50XG4vLyBpbmhlcml0YW5jZSB0byBuZXN0ZWQgdGFibGVzLlxuXG4vLyBHZW5lcmF0ZSB0aGUgY29udGV4dHVhbCB2YXJpYW50c1xuLnRhYmxlLXJvdy12YXJpYW50KGFjdGl2ZTsgQHRhYmxlLWJnLWFjdGl2ZSk7XG4udGFibGUtcm93LXZhcmlhbnQoc3VjY2VzczsgQHN0YXRlLXN1Y2Nlc3MtYmcpO1xuLnRhYmxlLXJvdy12YXJpYW50KGluZm87IEBzdGF0ZS1pbmZvLWJnKTtcbi50YWJsZS1yb3ctdmFyaWFudCh3YXJuaW5nOyBAc3RhdGUtd2FybmluZy1iZyk7XG4udGFibGUtcm93LXZhcmlhbnQoZGFuZ2VyOyBAc3RhdGUtZGFuZ2VyLWJnKTtcblxuXG4vLyBSZXNwb25zaXZlIHRhYmxlc1xuLy9cbi8vIFdyYXAgeW91ciB0YWJsZXMgaW4gYC50YWJsZS1yZXNwb25zaXZlYCBhbmQgd2UnbGwgbWFrZSB0aGVtIG1vYmlsZSBmcmllbmRseVxuLy8gYnkgZW5hYmxpbmcgaG9yaXpvbnRhbCBzY3JvbGxpbmcuIE9ubHkgYXBwbGllcyA8NzY4cHguIEV2ZXJ5dGhpbmcgYWJvdmUgdGhhdFxuLy8gd2lsbCBkaXNwbGF5IG5vcm1hbGx5LlxuXG4udGFibGUtcmVzcG9uc2l2ZSB7XG4gIG92ZXJmbG93LXg6IGF1dG87XG4gIG1pbi1oZWlnaHQ6IDAuMDElOyAvLyBXb3JrYXJvdW5kIGZvciBJRTkgYnVnIChzZWUgaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2lzc3Vlcy8xNDgzNylcblxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiBAc2NyZWVuLXhzLW1heCkge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206IChAbGluZS1oZWlnaHQtY29tcHV0ZWQgKiAwLjc1KTtcbiAgICBvdmVyZmxvdy15OiBoaWRkZW47XG4gICAgLW1zLW92ZXJmbG93LXN0eWxlOiAtbXMtYXV0b2hpZGluZy1zY3JvbGxiYXI7XG4gICAgYm9yZGVyOiAxcHggc29saWQgQHRhYmxlLWJvcmRlci1jb2xvcjtcblxuICAgIC8vIFRpZ2h0ZW4gdXAgc3BhY2luZ1xuICAgID4gLnRhYmxlIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICAgIC8vIEVuc3VyZSB0aGUgY29udGVudCBkb2Vzbid0IHdyYXBcbiAgICAgID4gdGhlYWQsXG4gICAgICA+IHRib2R5LFxuICAgICAgPiB0Zm9vdCB7XG4gICAgICAgID4gdHIge1xuICAgICAgICAgID4gdGgsXG4gICAgICAgICAgPiB0ZCB7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNwZWNpYWwgb3ZlcnJpZGVzIGZvciB0aGUgYm9yZGVyZWQgdGFibGVzXG4gICAgPiAudGFibGUtYm9yZGVyZWQge1xuICAgICAgYm9yZGVyOiAwO1xuXG4gICAgICAvLyBOdWtlIHRoZSBhcHByb3ByaWF0ZSBib3JkZXJzIHNvIHRoYXQgdGhlIHBhcmVudCBjYW4gaGFuZGxlIHRoZW1cbiAgICAgID4gdGhlYWQsXG4gICAgICA+IHRib2R5LFxuICAgICAgPiB0Zm9vdCB7XG4gICAgICAgID4gdHIge1xuICAgICAgICAgID4gdGg6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgPiB0ZDpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogMDtcbiAgICAgICAgICB9XG4gICAgICAgICAgPiB0aDpsYXN0LWNoaWxkLFxuICAgICAgICAgID4gdGQ6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIE9ubHkgbnVrZSB0aGUgbGFzdCByb3cncyBib3R0b20tYm9yZGVyIGluIGB0Ym9keWAgYW5kIGB0Zm9vdGAgc2luY2VcbiAgICAgIC8vIGNoYW5jZXMgYXJlIHRoZXJlIHdpbGwgYmUgb25seSBvbmUgYHRyYCBpbiBhIGB0aGVhZGAgYW5kIHRoYXQgd291bGRcbiAgICAgIC8vIHJlbW92ZSB0aGUgYm9yZGVyIGFsdG9nZXRoZXIuXG4gICAgICA+IHRib2R5LFxuICAgICAgPiB0Zm9vdCB7XG4gICAgICAgID4gdHI6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgPiB0aCxcbiAgICAgICAgICA+IHRkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICB9XG4gIH1cbn1cbiIsIi8vIFRhYmxlc1xuXG4udGFibGUtcm93LXZhcmlhbnQoQHN0YXRlOyBAYmFja2dyb3VuZCkge1xuICAvLyBFeGFjdCBzZWxlY3RvcnMgYmVsb3cgcmVxdWlyZWQgdG8gb3ZlcnJpZGUgYC50YWJsZS1zdHJpcGVkYCBhbmQgcHJldmVudFxuICAvLyBpbmhlcml0YW5jZSB0byBuZXN0ZWQgdGFibGVzLlxuICAudGFibGUgPiB0aGVhZCA+IHRyLFxuICAudGFibGUgPiB0Ym9keSA+IHRyLFxuICAudGFibGUgPiB0Zm9vdCA+IHRyIHtcbiAgICA+IHRkLkB7c3RhdGV9LFxuICAgID4gdGguQHtzdGF0ZX0sXG4gICAgJi5Ae3N0YXRlfSA+IHRkLFxuICAgICYuQHtzdGF0ZX0gPiB0aCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAYmFja2dyb3VuZDtcbiAgICB9XG4gIH1cblxuICAvLyBIb3ZlciBzdGF0ZXMgZm9yIGAudGFibGUtaG92ZXJgXG4gIC8vIE5vdGU6IHRoaXMgaXMgbm90IGF2YWlsYWJsZSBmb3IgY2VsbHMgb3Igcm93cyB3aXRoaW4gYHRoZWFkYCBvciBgdGZvb3RgLlxuICAudGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyIHtcbiAgICA+IHRkLkB7c3RhdGV9OmhvdmVyLFxuICAgID4gdGguQHtzdGF0ZX06aG92ZXIsXG4gICAgJi5Ae3N0YXRlfTpob3ZlciA+IHRkLFxuICAgICY6aG92ZXIgPiAuQHtzdGF0ZX0sXG4gICAgJi5Ae3N0YXRlfTpob3ZlciA+IHRoIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbihAYmFja2dyb3VuZCwgNSUpO1xuICAgIH1cbiAgfVxufVxuIiwiLy9cbi8vIEZvcm1zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi8vIE5vcm1hbGl6ZSBub24tY29udHJvbHNcbi8vXG4vLyBSZXN0eWxlIGFuZCBiYXNlbGluZSBub24tY29udHJvbCBmb3JtIGVsZW1lbnRzLlxuXG5maWVsZHNldCB7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgYm9yZGVyOiAwO1xuICAvLyBDaHJvbWUgYW5kIEZpcmVmb3ggc2V0IGEgYG1pbi13aWR0aDogbWluLWNvbnRlbnQ7YCBvbiBmaWVsZHNldHMsXG4gIC8vIHNvIHdlIHJlc2V0IHRoYXQgdG8gZW5zdXJlIGl0IGJlaGF2ZXMgbW9yZSBsaWtlIGEgc3RhbmRhcmQgYmxvY2sgZWxlbWVudC5cbiAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9pc3N1ZXMvMTIzNTkuXG4gIG1pbi13aWR0aDogMDtcbn1cblxubGVnZW5kIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW4tYm90dG9tOiBAbGluZS1oZWlnaHQtY29tcHV0ZWQ7XG4gIGZvbnQtc2l6ZTogKEBmb250LXNpemUtYmFzZSAqIDEuNSk7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICBjb2xvcjogQGxlZ2VuZC1jb2xvcjtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgQGxlZ2VuZC1ib3JkZXItY29sb3I7XG59XG5cbmxhYmVsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXgtd2lkdGg6IDEwMCU7IC8vIEZvcmNlIElFOCB0byB3cmFwIGxvbmcgY29udGVudCAoc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9pc3N1ZXMvMTMxNDEpXG4gIG1hcmdpbi1ib3R0b206IDVweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cblxuLy8gTm9ybWFsaXplIGZvcm0gY29udHJvbHNcbi8vXG4vLyBXaGlsZSBtb3N0IG9mIG91ciBmb3JtIHN0eWxlcyByZXF1aXJlIGV4dHJhIGNsYXNzZXMsIHNvbWUgYmFzaWMgbm9ybWFsaXphdGlvblxuLy8gaXMgcmVxdWlyZWQgdG8gZW5zdXJlIG9wdGltdW0gZGlzcGxheSB3aXRoIG9yIHdpdGhvdXQgdGhvc2UgY2xhc3NlcyB0byBiZXR0ZXJcbi8vIGFkZHJlc3MgYnJvd3NlciBpbmNvbnNpc3RlbmNpZXMuXG5cbi8vIE92ZXJyaWRlIGNvbnRlbnQtYm94IGluIE5vcm1hbGl6ZSAoKiBpc24ndCBzcGVjaWZpYyBlbm91Z2gpXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLmJveC1zaXppbmcoYm9yZGVyLWJveCk7XG59XG5cbi8vIFBvc2l0aW9uIHJhZGlvcyBhbmQgY2hlY2tib3hlcyBiZXR0ZXJcbmlucHV0W3R5cGU9XCJyYWRpb1wiXSxcbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gIG1hcmdpbjogNHB4IDAgMDtcbiAgbWFyZ2luLXRvcDogMXB4IFxcOTsgLy8gSUU4LTlcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbn1cblxuaW5wdXRbdHlwZT1cImZpbGVcIl0ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLy8gTWFrZSByYW5nZSBpbnB1dHMgYmVoYXZlIGxpa2UgdGV4dHVhbCBmb3JtIGNvbnRyb2xzXG5pbnB1dFt0eXBlPVwicmFuZ2VcIl0ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi8vIE1ha2UgbXVsdGlwbGUgc2VsZWN0IGVsZW1lbnRzIGhlaWdodCBub3QgZml4ZWRcbnNlbGVjdFttdWx0aXBsZV0sXG5zZWxlY3Rbc2l6ZV0ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi8vIEZvY3VzIGZvciBmaWxlLCByYWRpbywgYW5kIGNoZWNrYm94XG5pbnB1dFt0eXBlPVwiZmlsZVwiXTpmb2N1cyxcbmlucHV0W3R5cGU9XCJyYWRpb1wiXTpmb2N1cyxcbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXTpmb2N1cyB7XG4gIC50YWItZm9jdXMoKTtcbn1cblxuLy8gQWRqdXN0IG91dHB1dCBlbGVtZW50XG5vdXRwdXQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZy10b3A6IChAcGFkZGluZy1iYXNlLXZlcnRpY2FsICsgMSk7XG4gIGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS1iYXNlO1xuICBsaW5lLWhlaWdodDogQGxpbmUtaGVpZ2h0LWJhc2U7XG4gIGNvbG9yOiBAaW5wdXQtY29sb3I7XG59XG5cblxuLy8gQ29tbW9uIGZvcm0gY29udHJvbHNcbi8vXG4vLyBTaGFyZWQgc2l6ZSBhbmQgdHlwZSByZXNldHMgZm9yIGZvcm0gY29udHJvbHMuIEFwcGx5IGAuZm9ybS1jb250cm9sYCB0byBhbnlcbi8vIG9mIHRoZSBmb2xsb3dpbmcgZm9ybSBjb250cm9sczpcbi8vXG4vLyBzZWxlY3Rcbi8vIHRleHRhcmVhXG4vLyBpbnB1dFt0eXBlPVwidGV4dFwiXVxuLy8gaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdXG4vLyBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl1cbi8vIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXVxuLy8gaW5wdXRbdHlwZT1cImRhdGVcIl1cbi8vIGlucHV0W3R5cGU9XCJtb250aFwiXVxuLy8gaW5wdXRbdHlwZT1cInRpbWVcIl1cbi8vIGlucHV0W3R5cGU9XCJ3ZWVrXCJdXG4vLyBpbnB1dFt0eXBlPVwibnVtYmVyXCJdXG4vLyBpbnB1dFt0eXBlPVwiZW1haWxcIl1cbi8vIGlucHV0W3R5cGU9XCJ1cmxcIl1cbi8vIGlucHV0W3R5cGU9XCJzZWFyY2hcIl1cbi8vIGlucHV0W3R5cGU9XCJ0ZWxcIl1cbi8vIGlucHV0W3R5cGU9XCJjb2xvclwiXVxuXG4uZm9ybS1jb250cm9sIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IEBpbnB1dC1oZWlnaHQtYmFzZTsgLy8gTWFrZSBpbnB1dHMgYXQgbGVhc3QgdGhlIGhlaWdodCBvZiB0aGVpciBidXR0b24gY291bnRlcnBhcnQgKGJhc2UgbGluZS1oZWlnaHQgKyBwYWRkaW5nICsgYm9yZGVyKVxuICBwYWRkaW5nOiBAcGFkZGluZy1iYXNlLXZlcnRpY2FsIEBwYWRkaW5nLWJhc2UtaG9yaXpvbnRhbDtcbiAgZm9udC1zaXplOiBAZm9udC1zaXplLWJhc2U7XG4gIGxpbmUtaGVpZ2h0OiBAbGluZS1oZWlnaHQtYmFzZTtcbiAgY29sb3I6IEBpbnB1dC1jb2xvcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGlucHV0LWJnO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lOyAvLyBSZXNldCB1bnVzdWFsIEZpcmVmb3gtb24tQW5kcm9pZCBkZWZhdWx0IHN0eWxlOyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcy9pc3N1ZXMvMjE0XG4gIGJvcmRlcjogMXB4IHNvbGlkIEBpbnB1dC1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6IEBpbnB1dC1ib3JkZXItcmFkaXVzOyAvLyBOb3RlOiBUaGlzIGhhcyBubyBlZmZlY3Qgb24gPHNlbGVjdD5zIGluIHNvbWUgYnJvd3NlcnMsIGR1ZSB0byB0aGUgbGltaXRlZCBzdHlsYWJpbGl0eSBvZiA8c2VsZWN0PnMgaW4gQ1NTLlxuICAuYm94LXNoYWRvdyhpbnNldCAwIDFweCAxcHggcmdiYSgwLDAsMCwuMDc1KSk7XG4gIC50cmFuc2l0aW9uKH5cImJvcmRlci1jb2xvciBlYXNlLWluLW91dCAuMTVzLCBib3gtc2hhZG93IGVhc2UtaW4tb3V0IC4xNXNcIik7XG5cbiAgLy8gQ3VzdG9taXplIHRoZSBgOmZvY3VzYCBzdGF0ZSB0byBpbWl0YXRlIG5hdGl2ZSBXZWJLaXQgc3R5bGVzLlxuICAuZm9ybS1jb250cm9sLWZvY3VzKCk7XG5cbiAgLy8gUGxhY2Vob2xkZXJcbiAgLnBsYWNlaG9sZGVyKCk7XG5cbiAgLy8gVW5zdHlsZSB0aGUgY2FyZXQgb24gYDxzZWxlY3Q+YHMgaW4gSUUxMCsuXG4gICY6Oi1tcy1leHBhbmQge1xuICAgIGJvcmRlcjogMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxuXG4gIC8vIERpc2FibGVkIGFuZCByZWFkLW9ubHkgaW5wdXRzXG4gIC8vXG4gIC8vIEhUTUw1IHNheXMgdGhhdCBjb250cm9scyB1bmRlciBhIGZpZWxkc2V0ID4gbGVnZW5kOmZpcnN0LWNoaWxkIHdvbid0IGJlXG4gIC8vIGRpc2FibGVkIGlmIHRoZSBmaWVsZHNldCBpcyBkaXNhYmxlZC4gRHVlIHRvIGltcGxlbWVudGF0aW9uIGRpZmZpY3VsdHksIHdlXG4gIC8vIGRvbid0IGhvbm9yIHRoYXQgZWRnZSBjYXNlOyB3ZSBzdHlsZSB0aGVtIGFzIGRpc2FibGVkIGFueXdheS5cbiAgJltkaXNhYmxlZF0sXG4gICZbcmVhZG9ubHldLFxuICBmaWVsZHNldFtkaXNhYmxlZF0gJiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGlucHV0LWJnLWRpc2FibGVkO1xuICAgIG9wYWNpdHk6IDE7IC8vIGlPUyBmaXggZm9yIHVucmVhZGFibGUgZGlzYWJsZWQgY29udGVudDsgc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9pc3N1ZXMvMTE2NTVcbiAgfVxuXG4gICZbZGlzYWJsZWRdLFxuICBmaWVsZHNldFtkaXNhYmxlZF0gJiB7XG4gICAgY3Vyc29yOiBAY3Vyc29yLWRpc2FibGVkO1xuICB9XG5cbiAgLy8gUmVzZXQgaGVpZ2h0IGZvciBgdGV4dGFyZWFgc1xuICB0ZXh0YXJlYSYge1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxufVxuXG5cbi8vIFNlYXJjaCBpbnB1dHMgaW4gaU9TXG4vL1xuLy8gVGhpcyBvdmVycmlkZXMgdGhlIGV4dHJhIHJvdW5kZWQgY29ybmVycyBvbiBzZWFyY2ggaW5wdXRzIGluIGlPUyBzbyB0aGF0IG91clxuLy8gYC5mb3JtLWNvbnRyb2xgIGNsYXNzIGNhbiBwcm9wZXJseSBzdHlsZSB0aGVtLiBOb3RlIHRoYXQgdGhpcyBjYW5ub3Qgc2ltcGx5XG4vLyBiZSBhZGRlZCB0byBgLmZvcm0tY29udHJvbGAgYXMgaXQncyBub3Qgc3BlY2lmaWMgZW5vdWdoLiBGb3IgZGV0YWlscywgc2VlXG4vLyBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvaXNzdWVzLzExNTg2LlxuXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG5cbi8vIFNwZWNpYWwgc3R5bGVzIGZvciBpT1MgdGVtcG9yYWwgaW5wdXRzXG4vL1xuLy8gSW4gTW9iaWxlIFNhZmFyaSwgc2V0dGluZyBgZGlzcGxheTogYmxvY2tgIG9uIHRlbXBvcmFsIGlucHV0cyBjYXVzZXMgdGhlXG4vLyB0ZXh0IHdpdGhpbiB0aGUgaW5wdXQgdG8gYmVjb21lIHZlcnRpY2FsbHkgbWlzYWxpZ25lZC4gQXMgYSB3b3JrYXJvdW5kLCB3ZVxuLy8gc2V0IGEgcGl4ZWwgbGluZS1oZWlnaHQgdGhhdCBtYXRjaGVzIHRoZSBnaXZlbiBoZWlnaHQgb2YgdGhlIGlucHV0LCBidXQgb25seVxuLy8gZm9yIFNhZmFyaS4gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk4NDhcbi8vXG4vLyBOb3RlIHRoYXQgYXMgb2YgOS4zLCBpT1MgZG9lc24ndCBzdXBwb3J0IGB3ZWVrYC5cblxuQG1lZGlhIHNjcmVlbiBhbmQgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMCkge1xuICBpbnB1dFt0eXBlPVwiZGF0ZVwiXSxcbiAgaW5wdXRbdHlwZT1cInRpbWVcIl0sXG4gIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXSxcbiAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdIHtcbiAgICAmLmZvcm0tY29udHJvbCB7XG4gICAgICBsaW5lLWhlaWdodDogQGlucHV0LWhlaWdodC1iYXNlO1xuICAgIH1cblxuICAgICYuaW5wdXQtc20sXG4gICAgLmlucHV0LWdyb3VwLXNtICYge1xuICAgICAgbGluZS1oZWlnaHQ6IEBpbnB1dC1oZWlnaHQtc21hbGw7XG4gICAgfVxuXG4gICAgJi5pbnB1dC1sZyxcbiAgICAuaW5wdXQtZ3JvdXAtbGcgJiB7XG4gICAgICBsaW5lLWhlaWdodDogQGlucHV0LWhlaWdodC1sYXJnZTtcbiAgICB9XG4gIH1cbn1cblxuXG4vLyBGb3JtIGdyb3Vwc1xuLy9cbi8vIERlc2lnbmVkIHRvIGhlbHAgd2l0aCB0aGUgb3JnYW5pemF0aW9uIGFuZCBzcGFjaW5nIG9mIHZlcnRpY2FsIGZvcm1zLiBGb3Jcbi8vIGhvcml6b250YWwgZm9ybXMsIHVzZSB0aGUgcHJlZGVmaW5lZCBncmlkIGNsYXNzZXMuXG5cbi5mb3JtLWdyb3VwIHtcbiAgbWFyZ2luLWJvdHRvbTogQGZvcm0tZ3JvdXAtbWFyZ2luLWJvdHRvbTtcbn1cblxuXG4vLyBDaGVja2JveGVzIGFuZCByYWRpb3Ncbi8vXG4vLyBJbmRlbnQgdGhlIGxhYmVscyB0byBwb3NpdGlvbiByYWRpb3MvY2hlY2tib3hlcyBhcyBoYW5naW5nIGNvbnRyb2xzLlxuXG4ucmFkaW8sXG4uY2hlY2tib3gge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tdG9wOiAxMHB4O1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuXG4gIGxhYmVsIHtcbiAgICBtaW4taGVpZ2h0OiBAbGluZS1oZWlnaHQtY29tcHV0ZWQ7IC8vIEVuc3VyZSB0aGUgaW5wdXQgZG9lc24ndCBqdW1wIHdoZW4gdGhlcmUgaXMgbm8gdGV4dFxuICAgIHBhZGRpbmctbGVmdDogMjBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG59XG4ucmFkaW8gaW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuLnJhZGlvLWlubGluZSBpbnB1dFt0eXBlPVwicmFkaW9cIl0sXG4uY2hlY2tib3ggaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuLmNoZWNrYm94LWlubGluZSBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG1hcmdpbi1sZWZ0OiAtMjBweDtcbiAgbWFyZ2luLXRvcDogNHB4IFxcOTtcbn1cblxuLnJhZGlvICsgLnJhZGlvLFxuLmNoZWNrYm94ICsgLmNoZWNrYm94IHtcbiAgbWFyZ2luLXRvcDogLTVweDsgLy8gTW92ZSB1cCBzaWJsaW5nIHJhZGlvcyBvciBjaGVja2JveGVzIGZvciB0aWdodGVyIHNwYWNpbmdcbn1cblxuLy8gUmFkaW9zIGFuZCBjaGVja2JveGVzIG9uIHNhbWUgbGluZVxuLnJhZGlvLWlubGluZSxcbi5jaGVja2JveC1pbmxpbmUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ucmFkaW8taW5saW5lICsgLnJhZGlvLWlubGluZSxcbi5jaGVja2JveC1pbmxpbmUgKyAuY2hlY2tib3gtaW5saW5lIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7IC8vIHNwYWNlIG91dCBjb25zZWN1dGl2ZSBpbmxpbmUgY29udHJvbHNcbn1cblxuLy8gQXBwbHkgc2FtZSBkaXNhYmxlZCBjdXJzb3IgdHdlYWsgYXMgZm9yIGlucHV0c1xuLy8gU29tZSBzcGVjaWFsIGNhcmUgaXMgbmVlZGVkIGJlY2F1c2UgPGxhYmVsPnMgZG9uJ3QgaW5oZXJpdCB0aGVpciBwYXJlbnQncyBgY3Vyc29yYC5cbi8vXG4vLyBOb3RlOiBOZWl0aGVyIHJhZGlvcyBub3IgY2hlY2tib3hlcyBjYW4gYmUgcmVhZG9ubHkuXG5pbnB1dFt0eXBlPVwicmFkaW9cIl0sXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAmW2Rpc2FibGVkXSxcbiAgJi5kaXNhYmxlZCxcbiAgZmllbGRzZXRbZGlzYWJsZWRdICYge1xuICAgIGN1cnNvcjogQGN1cnNvci1kaXNhYmxlZDtcbiAgfVxufVxuLy8gVGhlc2UgY2xhc3NlcyBhcmUgdXNlZCBkaXJlY3RseSBvbiA8bGFiZWw+c1xuLnJhZGlvLWlubGluZSxcbi5jaGVja2JveC1pbmxpbmUge1xuICAmLmRpc2FibGVkLFxuICBmaWVsZHNldFtkaXNhYmxlZF0gJiB7XG4gICAgY3Vyc29yOiBAY3Vyc29yLWRpc2FibGVkO1xuICB9XG59XG4vLyBUaGVzZSBjbGFzc2VzIGFyZSB1c2VkIG9uIGVsZW1lbnRzIHdpdGggPGxhYmVsPiBkZXNjZW5kYW50c1xuLnJhZGlvLFxuLmNoZWNrYm94IHtcbiAgJi5kaXNhYmxlZCxcbiAgZmllbGRzZXRbZGlzYWJsZWRdICYge1xuICAgIGxhYmVsIHtcbiAgICAgIGN1cnNvcjogQGN1cnNvci1kaXNhYmxlZDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLyBTdGF0aWMgZm9ybSBjb250cm9sIHRleHRcbi8vXG4vLyBBcHBseSBjbGFzcyB0byBhIGBwYCBlbGVtZW50IHRvIG1ha2UgYW55IHN0cmluZyBvZiB0ZXh0IGFsaWduIHdpdGggbGFiZWxzIGluXG4vLyBhIGhvcml6b250YWwgZm9ybSBsYXlvdXQuXG5cbi5mb3JtLWNvbnRyb2wtc3RhdGljIHtcbiAgLy8gU2l6ZSBpdCBhcHByb3ByaWF0ZWx5IG5leHQgdG8gcmVhbCBmb3JtIGNvbnRyb2xzXG4gIHBhZGRpbmctdG9wOiAoQHBhZGRpbmctYmFzZS12ZXJ0aWNhbCArIDEpO1xuICBwYWRkaW5nLWJvdHRvbTogKEBwYWRkaW5nLWJhc2UtdmVydGljYWwgKyAxKTtcbiAgLy8gUmVtb3ZlIGRlZmF1bHQgbWFyZ2luIGZyb20gYHBgXG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIG1pbi1oZWlnaHQ6IChAbGluZS1oZWlnaHQtY29tcHV0ZWQgKyBAZm9udC1zaXplLWJhc2UpO1xuXG4gICYuaW5wdXQtbGcsXG4gICYuaW5wdXQtc20ge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICB9XG59XG5cblxuLy8gRm9ybSBjb250cm9sIHNpemluZ1xuLy9cbi8vIEJ1aWxkIG9uIGAuZm9ybS1jb250cm9sYCB3aXRoIG1vZGlmaWVyIGNsYXNzZXMgdG8gZGVjcmVhc2Ugb3IgaW5jcmVhc2UgdGhlXG4vLyBoZWlnaHQgYW5kIGZvbnQtc2l6ZSBvZiBmb3JtIGNvbnRyb2xzLlxuLy9cbi8vIFRoZSBgLmZvcm0tZ3JvdXAtKiBmb3JtLWNvbnRyb2xgIHZhcmlhdGlvbnMgYXJlIHNhZGx5IGR1cGxpY2F0ZWQgdG8gYXZvaWQgdGhlXG4vLyBpc3N1ZSBkb2N1bWVudGVkIGluIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9pc3N1ZXMvMTUwNzQuXG5cbi5pbnB1dC1zbSB7XG4gIC5pbnB1dC1zaXplKEBpbnB1dC1oZWlnaHQtc21hbGw7IEBwYWRkaW5nLXNtYWxsLXZlcnRpY2FsOyBAcGFkZGluZy1zbWFsbC1ob3Jpem9udGFsOyBAZm9udC1zaXplLXNtYWxsOyBAbGluZS1oZWlnaHQtc21hbGw7IEBpbnB1dC1ib3JkZXItcmFkaXVzLXNtYWxsKTtcbn1cbi5mb3JtLWdyb3VwLXNtIHtcbiAgLmZvcm0tY29udHJvbCB7XG4gICAgaGVpZ2h0OiBAaW5wdXQtaGVpZ2h0LXNtYWxsO1xuICAgIHBhZGRpbmc6IEBwYWRkaW5nLXNtYWxsLXZlcnRpY2FsIEBwYWRkaW5nLXNtYWxsLWhvcml6b250YWw7XG4gICAgZm9udC1zaXplOiBAZm9udC1zaXplLXNtYWxsO1xuICAgIGxpbmUtaGVpZ2h0OiBAbGluZS1oZWlnaHQtc21hbGw7XG4gICAgYm9yZGVyLXJhZGl1czogQGlucHV0LWJvcmRlci1yYWRpdXMtc21hbGw7XG4gIH1cbiAgc2VsZWN0LmZvcm0tY29udHJvbCB7XG4gICAgaGVpZ2h0OiBAaW5wdXQtaGVpZ2h0LXNtYWxsO1xuICAgIGxpbmUtaGVpZ2h0OiBAaW5wdXQtaGVpZ2h0LXNtYWxsO1xuICB9XG4gIHRleHRhcmVhLmZvcm0tY29udHJvbCxcbiAgc2VsZWN0W211bHRpcGxlXS5mb3JtLWNvbnRyb2wge1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxuICAuZm9ybS1jb250cm9sLXN0YXRpYyB7XG4gICAgaGVpZ2h0OiBAaW5wdXQtaGVpZ2h0LXNtYWxsO1xuICAgIG1pbi1oZWlnaHQ6IChAbGluZS1oZWlnaHQtY29tcHV0ZWQgKyBAZm9udC1zaXplLXNtYWxsKTtcbiAgICBwYWRkaW5nOiAoQHBhZGRpbmctc21hbGwtdmVydGljYWwgKyAxKSBAcGFkZGluZy1zbWFsbC1ob3Jpem9udGFsO1xuICAgIGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS1zbWFsbDtcbiAgICBsaW5lLWhlaWdodDogQGxpbmUtaGVpZ2h0LXNtYWxsO1xuICB9XG59XG5cbi5pbnB1dC1sZyB7XG4gIC5pbnB1dC1zaXplKEBpbnB1dC1oZWlnaHQtbGFyZ2U7IEBwYWRkaW5nLWxhcmdlLXZlcnRpY2FsOyBAcGFkZGluZy1sYXJnZS1ob3Jpem9udGFsOyBAZm9udC1zaXplLWxhcmdlOyBAbGluZS1oZWlnaHQtbGFyZ2U7IEBpbnB1dC1ib3JkZXItcmFkaXVzLWxhcmdlKTtcbn1cbi5mb3JtLWdyb3VwLWxnIHtcbiAgLmZvcm0tY29udHJvbCB7XG4gICAgaGVpZ2h0OiBAaW5wdXQtaGVpZ2h0LWxhcmdlO1xuICAgIHBhZGRpbmc6IEBwYWRkaW5nLWxhcmdlLXZlcnRpY2FsIEBwYWRkaW5nLWxhcmdlLWhvcml6b250YWw7XG4gICAgZm9udC1zaXplOiBAZm9udC1zaXplLWxhcmdlO1xuICAgIGxpbmUtaGVpZ2h0OiBAbGluZS1oZWlnaHQtbGFyZ2U7XG4gICAgYm9yZGVyLXJhZGl1czogQGlucHV0LWJvcmRlci1yYWRpdXMtbGFyZ2U7XG4gIH1cbiAgc2VsZWN0LmZvcm0tY29udHJvbCB7XG4gICAgaGVpZ2h0OiBAaW5wdXQtaGVpZ2h0LWxhcmdlO1xuICAgIGxpbmUtaGVpZ2h0OiBAaW5wdXQtaGVpZ2h0LWxhcmdlO1xuICB9XG4gIHRleHRhcmVhLmZvcm0tY29udHJvbCxcbiAgc2VsZWN0W211bHRpcGxlXS5mb3JtLWNvbnRyb2wge1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxuICAuZm9ybS1jb250cm9sLXN0YXRpYyB7XG4gICAgaGVpZ2h0OiBAaW5wdXQtaGVpZ2h0LWxhcmdlO1xuICAgIG1pbi1oZWlnaHQ6IChAbGluZS1oZWlnaHQtY29tcHV0ZWQgKyBAZm9udC1zaXplLWxhcmdlKTtcbiAgICBwYWRkaW5nOiAoQHBhZGRpbmctbGFyZ2UtdmVydGljYWwgKyAxKSBAcGFkZGluZy1sYXJnZS1ob3Jpem9udGFsO1xuICAgIGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS1sYXJnZTtcbiAgICBsaW5lLWhlaWdodDogQGxpbmUtaGVpZ2h0LWxhcmdlO1xuICB9XG59XG5cblxuLy8gRm9ybSBjb250cm9sIGZlZWRiYWNrIHN0YXRlc1xuLy9cbi8vIEFwcGx5IGNvbnRleHR1YWwgYW5kIHNlbWFudGljIHN0YXRlcyB0byBpbmRpdmlkdWFsIGZvcm0gY29udHJvbHMuXG5cbi5oYXMtZmVlZGJhY2sge1xuICAvLyBFbmFibGUgYWJzb2x1dGUgcG9zaXRpb25pbmdcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIC8vIEVuc3VyZSBpY29ucyBkb24ndCBvdmVybGFwIHRleHRcbiAgLmZvcm0tY29udHJvbCB7XG4gICAgcGFkZGluZy1yaWdodDogKEBpbnB1dC1oZWlnaHQtYmFzZSAqIDEuMjUpO1xuICB9XG59XG4vLyBGZWVkYmFjayBpY29uIChyZXF1aXJlcyAuZ2x5cGhpY29uIGNsYXNzZXMpXG4uZm9ybS1jb250cm9sLWZlZWRiYWNrIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICB6LWluZGV4OiAyOyAvLyBFbnN1cmUgaWNvbiBpcyBhYm92ZSBpbnB1dCBncm91cHNcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiBAaW5wdXQtaGVpZ2h0LWJhc2U7XG4gIGhlaWdodDogQGlucHV0LWhlaWdodC1iYXNlO1xuICBsaW5lLWhlaWdodDogQGlucHV0LWhlaWdodC1iYXNlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLmlucHV0LWxnICsgLmZvcm0tY29udHJvbC1mZWVkYmFjayxcbi5pbnB1dC1ncm91cC1sZyArIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2ssXG4uZm9ybS1ncm91cC1sZyAuZm9ybS1jb250cm9sICsgLmZvcm0tY29udHJvbC1mZWVkYmFjayB7XG4gIHdpZHRoOiBAaW5wdXQtaGVpZ2h0LWxhcmdlO1xuICBoZWlnaHQ6IEBpbnB1dC1oZWlnaHQtbGFyZ2U7XG4gIGxpbmUtaGVpZ2h0OiBAaW5wdXQtaGVpZ2h0LWxhcmdlO1xufVxuLmlucHV0LXNtICsgLmZvcm0tY29udHJvbC1mZWVkYmFjayxcbi5pbnB1dC1ncm91cC1zbSArIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2ssXG4uZm9ybS1ncm91cC1zbSAuZm9ybS1jb250cm9sICsgLmZvcm0tY29udHJvbC1mZWVkYmFjayB7XG4gIHdpZHRoOiBAaW5wdXQtaGVpZ2h0LXNtYWxsO1xuICBoZWlnaHQ6IEBpbnB1dC1oZWlnaHQtc21hbGw7XG4gIGxpbmUtaGVpZ2h0OiBAaW5wdXQtaGVpZ2h0LXNtYWxsO1xufVxuXG4vLyBGZWVkYmFjayBzdGF0ZXNcbi5oYXMtc3VjY2VzcyB7XG4gIC5mb3JtLWNvbnRyb2wtdmFsaWRhdGlvbihAc3RhdGUtc3VjY2Vzcy10ZXh0OyBAc3RhdGUtc3VjY2Vzcy10ZXh0OyBAc3RhdGUtc3VjY2Vzcy1iZyk7XG59XG4uaGFzLXdhcm5pbmcge1xuICAuZm9ybS1jb250cm9sLXZhbGlkYXRpb24oQHN0YXRlLXdhcm5pbmctdGV4dDsgQHN0YXRlLXdhcm5pbmctdGV4dDsgQHN0YXRlLXdhcm5pbmctYmcpO1xufVxuLmhhcy1lcnJvciB7XG4gIC5mb3JtLWNvbnRyb2wtdmFsaWRhdGlvbihAc3RhdGUtZGFuZ2VyLXRleHQ7IEBzdGF0ZS1kYW5nZXItdGV4dDsgQHN0YXRlLWRhbmdlci1iZyk7XG59XG5cbi8vIFJlcG9zaXRpb24gZmVlZGJhY2sgaWNvbiBpZiBpbnB1dCBoYXMgdmlzaWJsZSBsYWJlbCBhYm92ZVxuLmhhcy1mZWVkYmFjayBsYWJlbCB7XG5cbiAgJiB+IC5mb3JtLWNvbnRyb2wtZmVlZGJhY2sge1xuICAgIHRvcDogKEBsaW5lLWhlaWdodC1jb21wdXRlZCArIDUpOyAvLyBIZWlnaHQgb2YgdGhlIGBsYWJlbGAgYW5kIGl0cyBtYXJnaW5cbiAgfVxuICAmLnNyLW9ubHkgfiAuZm9ybS1jb250cm9sLWZlZWRiYWNrIHtcbiAgICB0b3A6IDA7XG4gIH1cbn1cblxuXG4vLyBIZWxwIHRleHRcbi8vXG4vLyBBcHBseSB0byBhbnkgZWxlbWVudCB5b3Ugd2lzaCB0byBjcmVhdGUgbGlnaHQgdGV4dCBmb3IgcGxhY2VtZW50IGltbWVkaWF0ZWx5XG4vLyBiZWxvdyBhIGZvcm0gY29udHJvbC4gVXNlIGZvciBnZW5lcmFsIGhlbHAsIGZvcm1hdHRpbmcsIG9yIGluc3RydWN0aW9uYWwgdGV4dC5cblxuLmhlbHAtYmxvY2sge1xuICBkaXNwbGF5OiBibG9jazsgLy8gYWNjb3VudCBmb3IgYW55IGVsZW1lbnQgdXNpbmcgaGVscC1ibG9ja1xuICBtYXJnaW4tdG9wOiA1cHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIGNvbG9yOiBsaWdodGVuKEB0ZXh0LWNvbG9yLCAyNSUpOyAvLyBsaWdodGVuIHRoZSB0ZXh0IHNvbWUgZm9yIGNvbnRyYXN0XG59XG5cblxuLy8gSW5saW5lIGZvcm1zXG4vL1xuLy8gTWFrZSBmb3JtcyBhcHBlYXIgaW5saW5lKC1ibG9jaykgYnkgYWRkaW5nIHRoZSBgLmZvcm0taW5saW5lYCBjbGFzcy4gSW5saW5lXG4vLyBmb3JtcyBiZWdpbiBzdGFja2VkIG9uIGV4dHJhIHNtYWxsIChtb2JpbGUpIGRldmljZXMgYW5kIHRoZW4gZ28gaW5saW5lIHdoZW5cbi8vIHZpZXdwb3J0cyByZWFjaCA8NzY4cHguXG4vL1xuLy8gUmVxdWlyZXMgd3JhcHBpbmcgaW5wdXRzIGFuZCBsYWJlbHMgd2l0aCBgLmZvcm0tZ3JvdXBgIGZvciBwcm9wZXIgZGlzcGxheSBvZlxuLy8gZGVmYXVsdCBIVE1MIGZvcm0gY29udHJvbHMgYW5kIG91ciBjdXN0b20gZm9ybSBjb250cm9scyAoZS5nLiwgaW5wdXQgZ3JvdXBzKS5cbi8vXG4vLyBIZWFkcyB1cCEgVGhpcyBpcyBtaXhpbi1lZCBpbnRvIGAubmF2YmFyLWZvcm1gIGluIG5hdmJhcnMubGVzcy5cblxuLmZvcm0taW5saW5lIHtcblxuICAvLyBLaWNrIGluIHRoZSBpbmxpbmVcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tc20tbWluKSB7XG4gICAgLy8gSW5saW5lLWJsb2NrIGFsbCB0aGUgdGhpbmdzIGZvciBcImlubGluZVwiXG4gICAgLmZvcm0tZ3JvdXAge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuXG4gICAgLy8gSW4gbmF2YmFyLWZvcm0sIGFsbG93IGZvbGtzIHRvICpub3QqIHVzZSBgLmZvcm0tZ3JvdXBgXG4gICAgLmZvcm0tY29udHJvbCB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB3aWR0aDogYXV0bzsgLy8gUHJldmVudCBsYWJlbHMgZnJvbSBzdGFja2luZyBhYm92ZSBpbnB1dHMgaW4gYC5mb3JtLWdyb3VwYFxuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG5cbiAgICAvLyBNYWtlIHN0YXRpYyBjb250cm9scyBiZWhhdmUgbGlrZSByZWd1bGFyIG9uZXNcbiAgICAuZm9ybS1jb250cm9sLXN0YXRpYyB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxuXG4gICAgLmlucHV0LWdyb3VwIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS10YWJsZTtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgIC5pbnB1dC1ncm91cC1hZGRvbixcbiAgICAgIC5pbnB1dC1ncm91cC1idG4sXG4gICAgICAuZm9ybS1jb250cm9sIHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gSW5wdXQgZ3JvdXBzIG5lZWQgdGhhdCAxMDAlIHdpZHRoIHRob3VnaFxuICAgIC5pbnB1dC1ncm91cCA+IC5mb3JtLWNvbnRyb2wge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLmNvbnRyb2wtbGFiZWwge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuXG4gICAgLy8gUmVtb3ZlIGRlZmF1bHQgbWFyZ2luIG9uIHJhZGlvcy9jaGVja2JveGVzIHRoYXQgd2VyZSB1c2VkIGZvciBzdGFja2luZywgYW5kXG4gICAgLy8gdGhlbiB1bmRvIHRoZSBmbG9hdGluZyBvZiByYWRpb3MgYW5kIGNoZWNrYm94ZXMgdG8gbWF0Y2guXG4gICAgLnJhZGlvLFxuICAgIC5jaGVja2JveCB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgIGxhYmVsIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgfVxuICAgIH1cbiAgICAucmFkaW8gaW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuICAgIC5jaGVja2JveCBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgfVxuXG4gICAgLy8gUmUtb3ZlcnJpZGUgdGhlIGZlZWRiYWNrIGljb24uXG4gICAgLmhhcy1mZWVkYmFjayAuZm9ybS1jb250cm9sLWZlZWRiYWNrIHtcbiAgICAgIHRvcDogMDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLyBIb3Jpem9udGFsIGZvcm1zXG4vL1xuLy8gSG9yaXpvbnRhbCBmb3JtcyBhcmUgYnVpbHQgb24gZ3JpZCBjbGFzc2VzIGFuZCBhbGxvdyB5b3UgdG8gY3JlYXRlIGZvcm1zIHdpdGhcbi8vIGxhYmVscyBvbiB0aGUgbGVmdCBhbmQgaW5wdXRzIG9uIHRoZSByaWdodC5cblxuLmZvcm0taG9yaXpvbnRhbCB7XG5cbiAgLy8gQ29uc2lzdGVudCB2ZXJ0aWNhbCBhbGlnbm1lbnQgb2YgcmFkaW9zIGFuZCBjaGVja2JveGVzXG4gIC8vXG4gIC8vIExhYmVscyBhbHNvIGdldCBzb21lIHJlc2V0IHN0eWxlcywgYnV0IHRoYXQgaXMgc2NvcGVkIHRvIGEgbWVkaWEgcXVlcnkgYmVsb3cuXG4gIC5yYWRpbyxcbiAgLmNoZWNrYm94LFxuICAucmFkaW8taW5saW5lLFxuICAuY2hlY2tib3gtaW5saW5lIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgcGFkZGluZy10b3A6IChAcGFkZGluZy1iYXNlLXZlcnRpY2FsICsgMSk7IC8vIERlZmF1bHQgcGFkZGluZyBwbHVzIGEgYm9yZGVyXG4gIH1cbiAgLy8gQWNjb3VudCBmb3IgcGFkZGluZyB3ZSdyZSBhZGRpbmcgdG8gZW5zdXJlIHRoZSBhbGlnbm1lbnQgYW5kIG9mIGhlbHAgdGV4dFxuICAvLyBhbmQgb3RoZXIgY29udGVudCBiZWxvdyBpdGVtc1xuICAucmFkaW8sXG4gIC5jaGVja2JveCB7XG4gICAgbWluLWhlaWdodDogKEBsaW5lLWhlaWdodC1jb21wdXRlZCArIChAcGFkZGluZy1iYXNlLXZlcnRpY2FsICsgMSkpO1xuICB9XG5cbiAgLy8gTWFrZSBmb3JtIGdyb3VwcyBiZWhhdmUgbGlrZSByb3dzXG4gIC5mb3JtLWdyb3VwIHtcbiAgICAubWFrZS1yb3coKTtcbiAgfVxuXG4gIC8vIFJlc2V0IHNwYWNpbmcgYW5kIHJpZ2h0IGFsaWduIGxhYmVscywgYnV0IHNjb3BlIHRvIG1lZGlhIHF1ZXJpZXMgc28gdGhhdFxuICAvLyBsYWJlbHMgb24gbmFycm93IHZpZXdwb3J0cyBzdGFjayB0aGUgc2FtZSBhcyBhIGRlZmF1bHQgZm9ybSBleGFtcGxlLlxuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1zbS1taW4pIHtcbiAgICAuY29udHJvbC1sYWJlbCB7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICBwYWRkaW5nLXRvcDogKEBwYWRkaW5nLWJhc2UtdmVydGljYWwgKyAxKTsgLy8gRGVmYXVsdCBwYWRkaW5nIHBsdXMgYSBib3JkZXJcbiAgICB9XG4gIH1cblxuICAvLyBWYWxpZGF0aW9uIHN0YXRlc1xuICAvL1xuICAvLyBSZXBvc2l0aW9uIHRoZSBpY29uIGJlY2F1c2UgaXQncyBub3cgd2l0aGluIGEgZ3JpZCBjb2x1bW4gYW5kIGNvbHVtbnMgaGF2ZVxuICAvLyBgcG9zaXRpb246IHJlbGF0aXZlO2Agb24gdGhlbS4gQWxzbyBhY2NvdW50cyBmb3IgdGhlIGdyaWQgZ3V0dGVyIHBhZGRpbmcuXG4gIC5oYXMtZmVlZGJhY2sgLmZvcm0tY29udHJvbC1mZWVkYmFjayB7XG4gICAgcmlnaHQ6IGZsb29yKChAZ3JpZC1ndXR0ZXItd2lkdGggLyAyKSk7XG4gIH1cblxuICAvLyBGb3JtIGdyb3VwIHNpemVzXG4gIC8vXG4gIC8vIFF1aWNrIHV0aWxpdHkgY2xhc3MgZm9yIGFwcGx5aW5nIGAuaW5wdXQtbGdgIGFuZCBgLmlucHV0LXNtYCBzdHlsZXMgdG8gdGhlXG4gIC8vIGlucHV0cyBhbmQgbGFiZWxzIHdpdGhpbiBhIGAuZm9ybS1ncm91cGAuXG4gIC5mb3JtLWdyb3VwLWxnIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1zbS1taW4pIHtcbiAgICAgIC5jb250cm9sLWxhYmVsIHtcbiAgICAgICAgcGFkZGluZy10b3A6IChAcGFkZGluZy1sYXJnZS12ZXJ0aWNhbCArIDEpO1xuICAgICAgICBmb250LXNpemU6IEBmb250LXNpemUtbGFyZ2U7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC5mb3JtLWdyb3VwLXNtIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1zbS1taW4pIHtcbiAgICAgIC5jb250cm9sLWxhYmVsIHtcbiAgICAgICAgcGFkZGluZy10b3A6IChAcGFkZGluZy1zbWFsbC12ZXJ0aWNhbCArIDEpO1xuICAgICAgICBmb250LXNpemU6IEBmb250LXNpemUtc21hbGw7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3JtIHZhbGlkYXRpb24gc3RhdGVzXG4vL1xuLy8gVXNlZCBpbiBmb3Jtcy5sZXNzIHRvIGdlbmVyYXRlIHRoZSBmb3JtIHZhbGlkYXRpb24gQ1NTIGZvciB3YXJuaW5ncywgZXJyb3JzLFxuLy8gYW5kIHN1Y2Nlc3Nlcy5cblxuLmZvcm0tY29udHJvbC12YWxpZGF0aW9uKEB0ZXh0LWNvbG9yOiAjNTU1OyBAYm9yZGVyLWNvbG9yOiAjY2NjOyBAYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNSkge1xuICAvLyBDb2xvciB0aGUgbGFiZWwgYW5kIGhlbHAgdGV4dFxuICAuaGVscC1ibG9jayxcbiAgLmNvbnRyb2wtbGFiZWwsXG4gIC5yYWRpbyxcbiAgLmNoZWNrYm94LFxuICAucmFkaW8taW5saW5lLFxuICAuY2hlY2tib3gtaW5saW5lLFxuICAmLnJhZGlvIGxhYmVsLFxuICAmLmNoZWNrYm94IGxhYmVsLFxuICAmLnJhZGlvLWlubGluZSBsYWJlbCxcbiAgJi5jaGVja2JveC1pbmxpbmUgbGFiZWwgIHtcbiAgICBjb2xvcjogQHRleHQtY29sb3I7XG4gIH1cbiAgLy8gU2V0IHRoZSBib3JkZXIgYW5kIGJveCBzaGFkb3cgb24gc3BlY2lmaWMgaW5wdXRzIHRvIG1hdGNoXG4gIC5mb3JtLWNvbnRyb2wge1xuICAgIGJvcmRlci1jb2xvcjogQGJvcmRlci1jb2xvcjtcbiAgICAuYm94LXNoYWRvdyhpbnNldCAwIDFweCAxcHggcmdiYSgwLDAsMCwuMDc1KSk7IC8vIFJlZGVjbGFyZSBzbyB0cmFuc2l0aW9ucyB3b3JrXG4gICAgJjpmb2N1cyB7XG4gICAgICBib3JkZXItY29sb3I6IGRhcmtlbihAYm9yZGVyLWNvbG9yLCAxMCUpO1xuICAgICAgQHNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwwLDAsLjA3NSksIDAgMCA2cHggbGlnaHRlbihAYm9yZGVyLWNvbG9yLCAyMCUpO1xuICAgICAgLmJveC1zaGFkb3coQHNoYWRvdyk7XG4gICAgfVxuICB9XG4gIC8vIFNldCB2YWxpZGF0aW9uIHN0YXRlcyBhbHNvIGZvciBhZGRvbnNcbiAgLmlucHV0LWdyb3VwLWFkZG9uIHtcbiAgICBjb2xvcjogQHRleHQtY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiBAYm9yZGVyLWNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBiYWNrZ3JvdW5kLWNvbG9yO1xuICB9XG4gIC8vIE9wdGlvbmFsIGZlZWRiYWNrIGljb25cbiAgLmZvcm0tY29udHJvbC1mZWVkYmFjayB7XG4gICAgY29sb3I6IEB0ZXh0LWNvbG9yO1xuICB9XG59XG5cblxuLy8gRm9ybSBjb250cm9sIGZvY3VzIHN0YXRlXG4vL1xuLy8gR2VuZXJhdGUgYSBjdXN0b21pemVkIGZvY3VzIHN0YXRlIGFuZCBmb3IgYW55IGlucHV0IHdpdGggdGhlIHNwZWNpZmllZCBjb2xvcixcbi8vIHdoaWNoIGRlZmF1bHRzIHRvIHRoZSBgQGlucHV0LWJvcmRlci1mb2N1c2AgdmFyaWFibGUuXG4vL1xuLy8gV2UgaGlnaGx5IGVuY291cmFnZSB5b3UgdG8gbm90IGN1c3RvbWl6ZSB0aGUgZGVmYXVsdCB2YWx1ZSwgYnV0IGluc3RlYWQgdXNlXG4vLyB0aGlzIHRvIHR3ZWFrIGNvbG9ycyBvbiBhbiBhcy1uZWVkZWQgYmFzaXMuIFRoaXMgYWVzdGhldGljIGNoYW5nZSBpcyBiYXNlZCBvblxuLy8gV2ViS2l0J3MgZGVmYXVsdCBzdHlsZXMsIGJ1dCBhcHBsaWNhYmxlIHRvIGEgd2lkZXIgcmFuZ2Ugb2YgYnJvd3NlcnMuIEl0c1xuLy8gdXNhYmlsaXR5IGFuZCBhY2Nlc3NpYmlsaXR5IHNob3VsZCBiZSB0YWtlbiBpbnRvIGFjY291bnQgd2l0aCBhbnkgY2hhbmdlLlxuLy9cbi8vIEV4YW1wbGUgdXNhZ2U6IGNoYW5nZSB0aGUgZGVmYXVsdCBibHVlIGJvcmRlciBhbmQgc2hhZG93IHRvIHdoaXRlIGZvciBiZXR0ZXJcbi8vIGNvbnRyYXN0IGFnYWluc3QgYSBkYXJrIGdyYXkgYmFja2dyb3VuZC5cbi5mb3JtLWNvbnRyb2wtZm9jdXMoQGNvbG9yOiBAaW5wdXQtYm9yZGVyLWZvY3VzKSB7XG4gIEBjb2xvci1yZ2JhOiByZ2JhKHJlZChAY29sb3IpLCBncmVlbihAY29sb3IpLCBibHVlKEBjb2xvciksIC42KTtcbiAgJjpmb2N1cyB7XG4gICAgYm9yZGVyLWNvbG9yOiBAY29sb3I7XG4gICAgb3V0bGluZTogMDtcbiAgICAuYm94LXNoYWRvdyh+XCJpbnNldCAwIDFweCAxcHggcmdiYSgwLDAsMCwuMDc1KSwgMCAwIDhweCBAe2NvbG9yLXJnYmF9XCIpO1xuICB9XG59XG5cbi8vIEZvcm0gY29udHJvbCBzaXppbmdcbi8vXG4vLyBSZWxhdGl2ZSB0ZXh0IHNpemUsIHBhZGRpbmcsIGFuZCBib3JkZXItcmFkaWkgY2hhbmdlcyBmb3IgZm9ybSBjb250cm9scy4gRm9yXG4vLyBob3Jpem9udGFsIHNpemluZywgd3JhcCBjb250cm9scyBpbiB0aGUgcHJlZGVmaW5lZCBncmlkIGNsYXNzZXMuIGA8c2VsZWN0PmBcbi8vIGVsZW1lbnQgZ2V0cyBzcGVjaWFsIGxvdmUgYmVjYXVzZSBpdCdzIHNwZWNpYWwsIGFuZCB0aGF0J3MgYSBmYWN0IVxuLmlucHV0LXNpemUoQGlucHV0LWhlaWdodDsgQHBhZGRpbmctdmVydGljYWw7IEBwYWRkaW5nLWhvcml6b250YWw7IEBmb250LXNpemU7IEBsaW5lLWhlaWdodDsgQGJvcmRlci1yYWRpdXMpIHtcbiAgaGVpZ2h0OiBAaW5wdXQtaGVpZ2h0O1xuICBwYWRkaW5nOiBAcGFkZGluZy12ZXJ0aWNhbCBAcGFkZGluZy1ob3Jpem9udGFsO1xuICBmb250LXNpemU6IEBmb250LXNpemU7XG4gIGxpbmUtaGVpZ2h0OiBAbGluZS1oZWlnaHQ7XG4gIGJvcmRlci1yYWRpdXM6IEBib3JkZXItcmFkaXVzO1xuXG4gIHNlbGVjdCYge1xuICAgIGhlaWdodDogQGlucHV0LWhlaWdodDtcbiAgICBsaW5lLWhlaWdodDogQGlucHV0LWhlaWdodDtcbiAgfVxuXG4gIHRleHRhcmVhJixcbiAgc2VsZWN0W211bHRpcGxlXSYge1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxufVxuIiwiLy9cbi8vIEJ1dHRvbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLy8gQmFzZSBzdHlsZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5idG4ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1ib3R0b206IDA7IC8vIEZvciBpbnB1dC5idG5cbiAgZm9udC13ZWlnaHQ6IEBidG4tZm9udC13ZWlnaHQ7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsgLy8gUmVzZXQgdW51c3VhbCBGaXJlZm94LW9uLUFuZHJvaWQgZGVmYXVsdCBzdHlsZTsgc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MvaXNzdWVzLzIxNFxuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgLmJ1dHRvbi1zaXplKEBwYWRkaW5nLWJhc2UtdmVydGljYWw7IEBwYWRkaW5nLWJhc2UtaG9yaXpvbnRhbDsgQGZvbnQtc2l6ZS1iYXNlOyBAbGluZS1oZWlnaHQtYmFzZTsgQGJ0bi1ib3JkZXItcmFkaXVzLWJhc2UpO1xuICAudXNlci1zZWxlY3Qobm9uZSk7XG5cbiAgJixcbiAgJjphY3RpdmUsXG4gICYuYWN0aXZlIHtcbiAgICAmOmZvY3VzLFxuICAgICYuZm9jdXMge1xuICAgICAgLnRhYi1mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMsXG4gICYuZm9jdXMge1xuICAgIGNvbG9yOiBAYnRuLWRlZmF1bHQtY29sb3I7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG5cbiAgJjphY3RpdmUsXG4gICYuYWN0aXZlIHtcbiAgICBvdXRsaW5lOiAwO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gICAgLmJveC1zaGFkb3coaW5zZXQgMCAzcHggNXB4IHJnYmEoMCwwLDAsLjEyNSkpO1xuICB9XG5cbiAgJi5kaXNhYmxlZCxcbiAgJltkaXNhYmxlZF0sXG4gIGZpZWxkc2V0W2Rpc2FibGVkXSAmIHtcbiAgICBjdXJzb3I6IEBjdXJzb3ItZGlzYWJsZWQ7XG4gICAgLm9wYWNpdHkoLjY1KTtcbiAgICAuYm94LXNoYWRvdyhub25lKTtcbiAgfVxuXG4gIGEmIHtcbiAgICAmLmRpc2FibGVkLFxuICAgIGZpZWxkc2V0W2Rpc2FibGVkXSAmIHtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyAvLyBGdXR1cmUtcHJvb2YgZGlzYWJsaW5nIG9mIGNsaWNrcyBvbiBgPGE+YCBlbGVtZW50c1xuICAgIH1cbiAgfVxufVxuXG5cbi8vIEFsdGVybmF0ZSBidXR0b25zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4uYnRuLWRlZmF1bHQge1xuICAuYnV0dG9uLXZhcmlhbnQoQGJ0bi1kZWZhdWx0LWNvbG9yOyBAYnRuLWRlZmF1bHQtYmc7IEBidG4tZGVmYXVsdC1ib3JkZXIpO1xufVxuLmJ0bi1wcmltYXJ5IHtcbiAgLmJ1dHRvbi12YXJpYW50KEBidG4tcHJpbWFyeS1jb2xvcjsgQGJ0bi1wcmltYXJ5LWJnOyBAYnRuLXByaW1hcnktYm9yZGVyKTtcbn1cbi8vIFN1Y2Nlc3MgYXBwZWFycyBhcyBncmVlblxuLmJ0bi1zdWNjZXNzIHtcbiAgLmJ1dHRvbi12YXJpYW50KEBidG4tc3VjY2Vzcy1jb2xvcjsgQGJ0bi1zdWNjZXNzLWJnOyBAYnRuLXN1Y2Nlc3MtYm9yZGVyKTtcbn1cbi8vIEluZm8gYXBwZWFycyBhcyBibHVlLWdyZWVuXG4uYnRuLWluZm8ge1xuICAuYnV0dG9uLXZhcmlhbnQoQGJ0bi1pbmZvLWNvbG9yOyBAYnRuLWluZm8tYmc7IEBidG4taW5mby1ib3JkZXIpO1xufVxuLy8gV2FybmluZyBhcHBlYXJzIGFzIG9yYW5nZVxuLmJ0bi13YXJuaW5nIHtcbiAgLmJ1dHRvbi12YXJpYW50KEBidG4td2FybmluZy1jb2xvcjsgQGJ0bi13YXJuaW5nLWJnOyBAYnRuLXdhcm5pbmctYm9yZGVyKTtcbn1cbi8vIERhbmdlciBhbmQgZXJyb3IgYXBwZWFyIGFzIHJlZFxuLmJ0bi1kYW5nZXIge1xuICAuYnV0dG9uLXZhcmlhbnQoQGJ0bi1kYW5nZXItY29sb3I7IEBidG4tZGFuZ2VyLWJnOyBAYnRuLWRhbmdlci1ib3JkZXIpO1xufVxuXG5cbi8vIExpbmsgYnV0dG9uc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBNYWtlIGEgYnV0dG9uIGxvb2sgYW5kIGJlaGF2ZSBsaWtlIGEgbGlua1xuLmJ0bi1saW5rIHtcbiAgY29sb3I6IEBsaW5rLWNvbG9yO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICYsXG4gICY6YWN0aXZlLFxuICAmLmFjdGl2ZSxcbiAgJltkaXNhYmxlZF0sXG4gIGZpZWxkc2V0W2Rpc2FibGVkXSAmIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAuYm94LXNoYWRvdyhub25lKTtcbiAgfVxuICAmLFxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBjb2xvcjogQGxpbmstaG92ZXItY29sb3I7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBAbGluay1ob3Zlci1kZWNvcmF0aW9uO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG4gICZbZGlzYWJsZWRdLFxuICBmaWVsZHNldFtkaXNhYmxlZF0gJiB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIGNvbG9yOiBAYnRuLWxpbmstZGlzYWJsZWQtY29sb3I7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuICB9XG59XG5cblxuLy8gQnV0dG9uIFNpemVzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4uYnRuLWxnIHtcbiAgLy8gbGluZS1oZWlnaHQ6IGVuc3VyZSBldmVuLW51bWJlcmVkIGhlaWdodCBvZiBidXR0b24gbmV4dCB0byBsYXJnZSBpbnB1dFxuICAuYnV0dG9uLXNpemUoQHBhZGRpbmctbGFyZ2UtdmVydGljYWw7IEBwYWRkaW5nLWxhcmdlLWhvcml6b250YWw7IEBmb250LXNpemUtbGFyZ2U7IEBsaW5lLWhlaWdodC1sYXJnZTsgQGJ0bi1ib3JkZXItcmFkaXVzLWxhcmdlKTtcbn1cbi5idG4tc20ge1xuICAvLyBsaW5lLWhlaWdodDogZW5zdXJlIHByb3BlciBoZWlnaHQgb2YgYnV0dG9uIG5leHQgdG8gc21hbGwgaW5wdXRcbiAgLmJ1dHRvbi1zaXplKEBwYWRkaW5nLXNtYWxsLXZlcnRpY2FsOyBAcGFkZGluZy1zbWFsbC1ob3Jpem9udGFsOyBAZm9udC1zaXplLXNtYWxsOyBAbGluZS1oZWlnaHQtc21hbGw7IEBidG4tYm9yZGVyLXJhZGl1cy1zbWFsbCk7XG59XG4uYnRuLXhzIHtcbiAgLmJ1dHRvbi1zaXplKEBwYWRkaW5nLXhzLXZlcnRpY2FsOyBAcGFkZGluZy14cy1ob3Jpem9udGFsOyBAZm9udC1zaXplLXNtYWxsOyBAbGluZS1oZWlnaHQtc21hbGw7IEBidG4tYm9yZGVyLXJhZGl1cy1zbWFsbCk7XG59XG5cblxuLy8gQmxvY2sgYnV0dG9uXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4uYnRuLWJsb2NrIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4vLyBWZXJ0aWNhbGx5IHNwYWNlIG91dCBtdWx0aXBsZSBibG9jayBidXR0b25zXG4uYnRuLWJsb2NrICsgLmJ0bi1ibG9jayB7XG4gIG1hcmdpbi10b3A6IDVweDtcbn1cblxuLy8gU3BlY2lmaWNpdHkgb3ZlcnJpZGVzXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdLFxuaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxuaW5wdXRbdHlwZT1cImJ1dHRvblwiXSB7XG4gICYuYnRuLWJsb2NrIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuIiwiLy8gQnV0dG9uIHZhcmlhbnRzXG4vL1xuLy8gRWFzaWx5IHB1bXAgb3V0IGRlZmF1bHQgc3R5bGVzLCBhcyB3ZWxsIGFzIDpob3ZlciwgOmZvY3VzLCA6YWN0aXZlLFxuLy8gYW5kIGRpc2FibGVkIG9wdGlvbnMgZm9yIGFsbCBidXR0b25zXG5cbi5idXR0b24tdmFyaWFudChAY29sb3I7IEBiYWNrZ3JvdW5kOyBAYm9yZGVyKSB7XG4gIGNvbG9yOiBAY29sb3I7XG4gIGJhY2tncm91bmQtY29sb3I6IEBiYWNrZ3JvdW5kO1xuICBib3JkZXItY29sb3I6IEBib3JkZXI7XG5cbiAgJjpmb2N1cyxcbiAgJi5mb2N1cyB7XG4gICAgY29sb3I6IEBjb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oQGJhY2tncm91bmQsIDEwJSk7XG4gICAgICAgIGJvcmRlci1jb2xvcjogZGFya2VuKEBib3JkZXIsIDI1JSk7XG4gIH1cbiAgJjpob3ZlciB7XG4gICAgY29sb3I6IEBjb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oQGJhY2tncm91bmQsIDEwJSk7XG4gICAgICAgIGJvcmRlci1jb2xvcjogZGFya2VuKEBib3JkZXIsIDEyJSk7XG4gIH1cbiAgJjphY3RpdmUsXG4gICYuYWN0aXZlLFxuICAub3BlbiA+IC5kcm9wZG93bi10b2dnbGUmIHtcbiAgICBjb2xvcjogQGNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbihAYmFja2dyb3VuZCwgMTAlKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiBkYXJrZW4oQGJvcmRlciwgMTIlKTtcblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmLmZvY3VzIHtcbiAgICAgIGNvbG9yOiBAY29sb3I7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oQGJhY2tncm91bmQsIDE3JSk7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiBkYXJrZW4oQGJvcmRlciwgMjUlKTtcbiAgICB9XG4gIH1cbiAgJjphY3RpdmUsXG4gICYuYWN0aXZlLFxuICAub3BlbiA+IC5kcm9wZG93bi10b2dnbGUmIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICB9XG4gICYuZGlzYWJsZWQsXG4gICZbZGlzYWJsZWRdLFxuICBmaWVsZHNldFtkaXNhYmxlZF0gJiB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICYuZm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGJhY2tncm91bmQ7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiBAYm9yZGVyO1xuICAgIH1cbiAgfVxuXG4gIC5iYWRnZSB7XG4gICAgY29sb3I6IEBiYWNrZ3JvdW5kO1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBjb2xvcjtcbiAgfVxufVxuXG4vLyBCdXR0b24gc2l6ZXNcbi5idXR0b24tc2l6ZShAcGFkZGluZy12ZXJ0aWNhbDsgQHBhZGRpbmctaG9yaXpvbnRhbDsgQGZvbnQtc2l6ZTsgQGxpbmUtaGVpZ2h0OyBAYm9yZGVyLXJhZGl1cykge1xuICBwYWRkaW5nOiBAcGFkZGluZy12ZXJ0aWNhbCBAcGFkZGluZy1ob3Jpem9udGFsO1xuICBmb250LXNpemU6IEBmb250LXNpemU7XG4gIGxpbmUtaGVpZ2h0OiBAbGluZS1oZWlnaHQ7XG4gIGJvcmRlci1yYWRpdXM6IEBib3JkZXItcmFkaXVzO1xufVxuIiwiLy8gT3BhY2l0eVxuXG4ub3BhY2l0eShAb3BhY2l0eSkge1xuICBvcGFjaXR5OiBAb3BhY2l0eTtcbiAgLy8gSUU4IGZpbHRlclxuICBAb3BhY2l0eS1pZTogKEBvcGFjaXR5ICogMTAwKTtcbiAgZmlsdGVyOiB+XCJhbHBoYShvcGFjaXR5PUB7b3BhY2l0eS1pZX0pXCI7XG59XG4iLCIvL1xuLy8gQ29tcG9uZW50IGFuaW1hdGlvbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIEhlYWRzIHVwIVxuLy9cbi8vIFdlIGRvbid0IHVzZSB0aGUgYC5vcGFjaXR5KClgIG1peGluIGhlcmUgc2luY2UgaXQgY2F1c2VzIGEgYnVnIHdpdGggdGV4dFxuLy8gZmllbGRzIGluIElFNy04LiBTb3VyY2U6IGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9wdWxsLzM1NTIuXG5cbi5mYWRlIHtcbiAgb3BhY2l0eTogMDtcbiAgLnRyYW5zaXRpb24ob3BhY2l0eSAuMTVzIGxpbmVhcik7XG4gICYuaW4ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuLmNvbGxhcHNlIHtcbiAgZGlzcGxheTogbm9uZTtcblxuICAmLmluICAgICAgeyBkaXNwbGF5OiBibG9jazsgfVxuICB0ciYuaW4gICAgeyBkaXNwbGF5OiB0YWJsZS1yb3c7IH1cbiAgdGJvZHkmLmluIHsgZGlzcGxheTogdGFibGUtcm93LWdyb3VwOyB9XG59XG5cbi5jb2xsYXBzaW5nIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIC50cmFuc2l0aW9uLXByb3BlcnR5KH5cImhlaWdodCwgdmlzaWJpbGl0eVwiKTtcbiAgLnRyYW5zaXRpb24tZHVyYXRpb24oLjM1cyk7XG4gIC50cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbihlYXNlKTtcbn1cbiIsIi8vXG4vLyBEcm9wZG93biBtZW51c1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4vLyBEcm9wZG93biBhcnJvdy9jYXJldFxuLmNhcmV0IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBtYXJnaW4tbGVmdDogMnB4O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBib3JkZXItdG9wOiAgIEBjYXJldC13aWR0aC1iYXNlIGRhc2hlZDtcbiAgYm9yZGVyLXRvcDogICBAY2FyZXQtd2lkdGgtYmFzZSBzb2xpZCB+XCJcXDlcIjsgLy8gSUU4XG4gIGJvcmRlci1yaWdodDogQGNhcmV0LXdpZHRoLWJhc2Ugc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1sZWZ0OiAgQGNhcmV0LXdpZHRoLWJhc2Ugc29saWQgdHJhbnNwYXJlbnQ7XG59XG5cbi8vIFRoZSBkcm9wZG93biB3cmFwcGVyIChkaXYpXG4uZHJvcHVwLFxuLmRyb3Bkb3duIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4vLyBQcmV2ZW50IHRoZSBmb2N1cyBvbiB0aGUgZHJvcGRvd24gdG9nZ2xlIHdoZW4gY2xvc2luZyBkcm9wZG93bnNcbi5kcm9wZG93bi10b2dnbGU6Zm9jdXMge1xuICBvdXRsaW5lOiAwO1xufVxuXG4vLyBUaGUgZHJvcGRvd24gbWVudSAodWwpXG4uZHJvcGRvd24tbWVudSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxMDAlO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiBAemluZGV4LWRyb3Bkb3duO1xuICBkaXNwbGF5OiBub25lOyAvLyBub25lIGJ5IGRlZmF1bHQsIGJ1dCBibG9jayBvbiBcIm9wZW5cIiBvZiB0aGUgbWVudVxuICBmbG9hdDogbGVmdDtcbiAgbWluLXdpZHRoOiAxNjBweDtcbiAgcGFkZGluZzogNXB4IDA7XG4gIG1hcmdpbjogMnB4IDAgMDsgLy8gb3ZlcnJpZGUgZGVmYXVsdCB1bFxuICBsaXN0LXN0eWxlOiBub25lO1xuICBmb250LXNpemU6IEBmb250LXNpemUtYmFzZTtcbiAgdGV4dC1hbGlnbjogbGVmdDsgLy8gRW5zdXJlcyBwcm9wZXIgYWxpZ25tZW50IGlmIHBhcmVudCBoYXMgaXQgY2hhbmdlZCAoZS5nLiwgbW9kYWwgZm9vdGVyKVxuICBiYWNrZ3JvdW5kLWNvbG9yOiBAZHJvcGRvd24tYmc7XG4gIGJvcmRlcjogMXB4IHNvbGlkIEBkcm9wZG93bi1mYWxsYmFjay1ib3JkZXI7IC8vIElFOCBmYWxsYmFja1xuICBib3JkZXI6IDFweCBzb2xpZCBAZHJvcGRvd24tYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiBAYm9yZGVyLXJhZGl1cy1iYXNlO1xuICAuYm94LXNoYWRvdygwIDZweCAxMnB4IHJnYmEoMCwwLDAsLjE3NSkpO1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuXG4gIC8vIEFsaWducyB0aGUgZHJvcGRvd24gbWVudSB0byByaWdodFxuICAvL1xuICAvLyBEZXByZWNhdGVkIGFzIG9mIDMuMS4wIGluIGZhdm9yIG9mIGAuZHJvcGRvd24tbWVudS1bZGlyXWBcbiAgJi5wdWxsLXJpZ2h0IHtcbiAgICByaWdodDogMDtcbiAgICBsZWZ0OiBhdXRvO1xuICB9XG5cbiAgLy8gRGl2aWRlcnMgKGJhc2ljYWxseSBhbiBocikgd2l0aGluIHRoZSBkcm9wZG93blxuICAuZGl2aWRlciB7XG4gICAgLm5hdi1kaXZpZGVyKEBkcm9wZG93bi1kaXZpZGVyLWJnKTtcbiAgfVxuXG4gIC8vIExpbmtzIHdpdGhpbiB0aGUgZHJvcGRvd24gbWVudVxuICA+IGxpID4gYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogM3B4IDIwcHg7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogQGxpbmUtaGVpZ2h0LWJhc2U7XG4gICAgY29sb3I6IEBkcm9wZG93bi1saW5rLWNvbG9yO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7IC8vIHByZXZlbnQgbGlua3MgZnJvbSByYW5kb21seSBicmVha2luZyBvbnRvIG5ldyBsaW5lc1xuICB9XG59XG5cbi8vIEhvdmVyL0ZvY3VzIHN0YXRlXG4uZHJvcGRvd24tbWVudSA+IGxpID4gYSB7XG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjb2xvcjogQGRyb3Bkb3duLWxpbmstaG92ZXItY29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGRyb3Bkb3duLWxpbmstaG92ZXItYmc7XG4gIH1cbn1cblxuLy8gQWN0aXZlIHN0YXRlXG4uZHJvcGRvd24tbWVudSA+IC5hY3RpdmUgPiBhIHtcbiAgJixcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgY29sb3I6IEBkcm9wZG93bi1saW5rLWFjdGl2ZS1jb2xvcjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgb3V0bGluZTogMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAZHJvcGRvd24tbGluay1hY3RpdmUtYmc7XG4gIH1cbn1cblxuLy8gRGlzYWJsZWQgc3RhdGVcbi8vXG4vLyBHcmF5IG91dCB0ZXh0IGFuZCBlbnN1cmUgdGhlIGhvdmVyL2ZvY3VzIHN0YXRlIHJlbWFpbnMgZ3JheVxuXG4uZHJvcGRvd24tbWVudSA+IC5kaXNhYmxlZCA+IGEge1xuICAmLFxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBjb2xvcjogQGRyb3Bkb3duLWxpbmstZGlzYWJsZWQtY29sb3I7XG4gIH1cblxuICAvLyBOdWtlIGhvdmVyL2ZvY3VzIGVmZmVjdHNcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7IC8vIFJlbW92ZSBDU1MgZ3JhZGllbnRcbiAgICAucmVzZXQtZmlsdGVyKCk7XG4gICAgY3Vyc29yOiBAY3Vyc29yLWRpc2FibGVkO1xuICB9XG59XG5cbi8vIE9wZW4gc3RhdGUgZm9yIHRoZSBkcm9wZG93blxuLm9wZW4ge1xuICAvLyBTaG93IHRoZSBtZW51XG4gID4gLmRyb3Bkb3duLW1lbnUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgLy8gUmVtb3ZlIHRoZSBvdXRsaW5lIHdoZW4gOmZvY3VzIGlzIHRyaWdnZXJlZFxuICA+IGEge1xuICAgIG91dGxpbmU6IDA7XG4gIH1cbn1cblxuLy8gTWVudSBwb3NpdGlvbmluZ1xuLy9cbi8vIEFkZCBleHRyYSBjbGFzcyB0byBgLmRyb3Bkb3duLW1lbnVgIHRvIGZsaXAgdGhlIGFsaWdubWVudCBvZiB0aGUgZHJvcGRvd25cbi8vIG1lbnUgd2l0aCB0aGUgcGFyZW50LlxuLmRyb3Bkb3duLW1lbnUtcmlnaHQge1xuICBsZWZ0OiBhdXRvOyAvLyBSZXNldCB0aGUgZGVmYXVsdCBmcm9tIGAuZHJvcGRvd24tbWVudWBcbiAgcmlnaHQ6IDA7XG59XG4vLyBXaXRoIHYzLCB3ZSBlbmFibGVkIGF1dG8tZmxpcHBpbmcgaWYgeW91IGhhdmUgYSBkcm9wZG93biB3aXRoaW4gYSByaWdodFxuLy8gYWxpZ25lZCBuYXYgY29tcG9uZW50LiBUbyBlbmFibGUgdGhlIHVuZG9pbmcgb2YgdGhhdCwgd2UgcHJvdmlkZSBhbiBvdmVycmlkZVxuLy8gdG8gcmVzdG9yZSB0aGUgZGVmYXVsdCBkcm9wZG93biBtZW51IGFsaWdubWVudC5cbi8vXG4vLyBUaGlzIGlzIG9ubHkgZm9yIGxlZnQtYWxpZ25pbmcgYSBkcm9wZG93biBtZW51IHdpdGhpbiBhIGAubmF2YmFyLXJpZ2h0YCBvclxuLy8gYC5wdWxsLXJpZ2h0YCBuYXYgY29tcG9uZW50LlxuLmRyb3Bkb3duLW1lbnUtbGVmdCB7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiBhdXRvO1xufVxuXG4vLyBEcm9wZG93biBzZWN0aW9uIGhlYWRlcnNcbi5kcm9wZG93bi1oZWFkZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogM3B4IDIwcHg7XG4gIGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS1zbWFsbDtcbiAgbGluZS1oZWlnaHQ6IEBsaW5lLWhlaWdodC1iYXNlO1xuICBjb2xvcjogQGRyb3Bkb3duLWhlYWRlci1jb2xvcjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgLy8gYXMgd2l0aCA+IGxpID4gYVxufVxuXG4vLyBCYWNrZHJvcCB0byBjYXRjaCBib2R5IGNsaWNrcyBvbiBtb2JpbGUsIGV0Yy5cbi5kcm9wZG93bi1iYWNrZHJvcCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgdG9wOiAwO1xuICB6LWluZGV4OiAoQHppbmRleC1kcm9wZG93biAtIDEwKTtcbn1cblxuLy8gUmlnaHQgYWxpZ25lZCBkcm9wZG93bnNcbi5wdWxsLXJpZ2h0ID4gLmRyb3Bkb3duLW1lbnUge1xuICByaWdodDogMDtcbiAgbGVmdDogYXV0bztcbn1cblxuLy8gQWxsb3cgZm9yIGRyb3Bkb3ducyB0byBnbyBib3R0b20gdXAgKGFrYSwgZHJvcHVwLW1lbnUpXG4vL1xuLy8gSnVzdCBhZGQgLmRyb3B1cCBhZnRlciB0aGUgc3RhbmRhcmQgLmRyb3Bkb3duIGNsYXNzIGFuZCB5b3UncmUgc2V0LCBicm8uXG4vLyBUT0RPOiBhYnN0cmFjdCB0aGlzIHNvIHRoYXQgdGhlIG5hdmJhciBmaXhlZCBzdHlsZXMgYXJlIG5vdCBwbGFjZWQgaGVyZT9cblxuLmRyb3B1cCxcbi5uYXZiYXItZml4ZWQtYm90dG9tIC5kcm9wZG93biB7XG4gIC8vIFJldmVyc2UgdGhlIGNhcmV0XG4gIC5jYXJldCB7XG4gICAgYm9yZGVyLXRvcDogMDtcbiAgICBib3JkZXItYm90dG9tOiBAY2FyZXQtd2lkdGgtYmFzZSBkYXNoZWQ7XG4gICAgYm9yZGVyLWJvdHRvbTogQGNhcmV0LXdpZHRoLWJhc2Ugc29saWQgflwiXFw5XCI7IC8vIElFOFxuICAgIGNvbnRlbnQ6IFwiXCI7XG4gIH1cbiAgLy8gRGlmZmVyZW50IHBvc2l0aW9uaW5nIGZvciBib3R0b20gdXAgbWVudVxuICAuZHJvcGRvd24tbWVudSB7XG4gICAgdG9wOiBhdXRvO1xuICAgIGJvdHRvbTogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAycHg7XG4gIH1cbn1cblxuXG4vLyBDb21wb25lbnQgYWxpZ25tZW50XG4vL1xuLy8gUmVpdGVyYXRlIHBlciBuYXZiYXIubGVzcyBhbmQgdGhlIG1vZGlmaWVkIGNvbXBvbmVudCBhbGlnbm1lbnQgdGhlcmUuXG5cbkBtZWRpYSAobWluLXdpZHRoOiBAZ3JpZC1mbG9hdC1icmVha3BvaW50KSB7XG4gIC5uYXZiYXItcmlnaHQge1xuICAgIC5kcm9wZG93bi1tZW51IHtcbiAgICAgIC5kcm9wZG93bi1tZW51LXJpZ2h0KCk7XG4gICAgfVxuICAgIC8vIE5lY2Vzc2FyeSBmb3Igb3ZlcnJpZGVzIG9mIHRoZSBkZWZhdWx0IHJpZ2h0IGFsaWduZWQgbWVudS5cbiAgICAvLyBXaWxsIHJlbW92ZSBjb21lIHY0IGluIGFsbCBsaWtlbGlob29kLlxuICAgIC5kcm9wZG93bi1tZW51LWxlZnQge1xuICAgICAgLmRyb3Bkb3duLW1lbnUtbGVmdCgpO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gSG9yaXpvbnRhbCBkaXZpZGVyc1xuLy9cbi8vIERpdmlkZXJzIChiYXNpY2FsbHkgYW4gaHIpIHdpdGhpbiBkcm9wZG93bnMgYW5kIG5hdiBsaXN0c1xuXG4ubmF2LWRpdmlkZXIoQGNvbG9yOiAjZTVlNWU1KSB7XG4gIGhlaWdodDogMXB4O1xuICBtYXJnaW46ICgoQGxpbmUtaGVpZ2h0LWNvbXB1dGVkIC8gMikgLSAxKSAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAY29sb3I7XG59XG4iLCIvLyBSZXNldCBmaWx0ZXJzIGZvciBJRVxuLy9cbi8vIFdoZW4geW91IG5lZWQgdG8gcmVtb3ZlIGEgZ3JhZGllbnQgYmFja2dyb3VuZCwgZG8gbm90IGZvcmdldCB0byB1c2UgdGhpcyB0byByZXNldFxuLy8gdGhlIElFIGZpbHRlciBmb3IgSUU5IGFuZCBiZWxvdy5cblxuLnJlc2V0LWZpbHRlcigpIHtcbiAgZmlsdGVyOiBlKCUoXCJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoZW5hYmxlZCA9IGZhbHNlKVwiKSk7XG59XG4iLCIvL1xuLy8gQnV0dG9uIGdyb3Vwc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gTWFrZSB0aGUgZGl2IGJlaGF2ZSBsaWtlIGEgYnV0dG9uXG4uYnRuLWdyb3VwLFxuLmJ0bi1ncm91cC12ZXJ0aWNhbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyAvLyBtYXRjaCAuYnRuIGFsaWdubWVudCBnaXZlbiBmb250LXNpemUgaGFjayBhYm92ZVxuICA+IC5idG4ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmbG9hdDogbGVmdDtcbiAgICAvLyBCcmluZyB0aGUgXCJhY3RpdmVcIiBidXR0b24gdG8gdGhlIGZyb250XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlLFxuICAgICYuYWN0aXZlIHtcbiAgICAgIHotaW5kZXg6IDI7XG4gICAgfVxuICB9XG59XG5cbi8vIFByZXZlbnQgZG91YmxlIGJvcmRlcnMgd2hlbiBidXR0b25zIGFyZSBuZXh0IHRvIGVhY2ggb3RoZXJcbi5idG4tZ3JvdXAge1xuICAuYnRuICsgLmJ0bixcbiAgLmJ0biArIC5idG4tZ3JvdXAsXG4gIC5idG4tZ3JvdXAgKyAuYnRuLFxuICAuYnRuLWdyb3VwICsgLmJ0bi1ncm91cCB7XG4gICAgbWFyZ2luLWxlZnQ6IC0xcHg7XG4gIH1cbn1cblxuLy8gT3B0aW9uYWw6IEdyb3VwIG11bHRpcGxlIGJ1dHRvbiBncm91cHMgdG9nZXRoZXIgZm9yIGEgdG9vbGJhclxuLmJ0bi10b29sYmFyIHtcbiAgbWFyZ2luLWxlZnQ6IC01cHg7IC8vIE9mZnNldCB0aGUgZmlyc3QgY2hpbGQncyBtYXJnaW5cbiAgJjpleHRlbmQoLmNsZWFyZml4IGFsbCk7XG5cbiAgLmJ0bixcbiAgLmJ0bi1ncm91cCxcbiAgLmlucHV0LWdyb3VwIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgfVxuICA+IC5idG4sXG4gID4gLmJ0bi1ncm91cCxcbiAgPiAuaW5wdXQtZ3JvdXAge1xuICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gIH1cbn1cblxuLmJ0bi1ncm91cCA+IC5idG46bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKTpub3QoLmRyb3Bkb3duLXRvZ2dsZSkge1xuICBib3JkZXItcmFkaXVzOiAwO1xufVxuXG4vLyBTZXQgY29ybmVycyBpbmRpdmlkdWFsIGJlY2F1c2Ugc29tZXRpbWVzIGEgc2luZ2xlIGJ1dHRvbiBjYW4gYmUgaW4gYSAuYnRuLWdyb3VwIGFuZCB3ZSBuZWVkIDpmaXJzdC1jaGlsZCBhbmQgOmxhc3QtY2hpbGQgdG8gYm90aCBtYXRjaFxuLmJ0bi1ncm91cCA+IC5idG46Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tbGVmdDogMDtcbiAgJjpub3QoOmxhc3QtY2hpbGQpOm5vdCguZHJvcGRvd24tdG9nZ2xlKSB7XG4gICAgLmJvcmRlci1yaWdodC1yYWRpdXMoMCk7XG4gIH1cbn1cbi8vIE5lZWQgLmRyb3Bkb3duLXRvZ2dsZSBzaW5jZSA6bGFzdC1jaGlsZCBkb2Vzbid0IGFwcGx5LCBnaXZlbiB0aGF0IGEgLmRyb3Bkb3duLW1lbnUgaXMgdXNlZCBpbW1lZGlhdGVseSBhZnRlciBpdFxuLmJ0bi1ncm91cCA+IC5idG46bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSxcbi5idG4tZ3JvdXAgPiAuZHJvcGRvd24tdG9nZ2xlOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgLmJvcmRlci1sZWZ0LXJhZGl1cygwKTtcbn1cblxuLy8gQ3VzdG9tIGVkaXRzIGZvciBpbmNsdWRpbmcgYnRuLWdyb3VwcyB3aXRoaW4gYnRuLWdyb3VwcyAodXNlZnVsIGZvciBpbmNsdWRpbmcgZHJvcGRvd24gYnV0dG9ucyB3aXRoaW4gYSBidG4tZ3JvdXApXG4uYnRuLWdyb3VwID4gLmJ0bi1ncm91cCB7XG4gIGZsb2F0OiBsZWZ0O1xufVxuLmJ0bi1ncm91cCA+IC5idG4tZ3JvdXA6bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKSA+IC5idG4ge1xuICBib3JkZXItcmFkaXVzOiAwO1xufVxuLmJ0bi1ncm91cCA+IC5idG4tZ3JvdXA6Zmlyc3QtY2hpbGQ6bm90KDpsYXN0LWNoaWxkKSB7XG4gID4gLmJ0bjpsYXN0LWNoaWxkLFxuICA+IC5kcm9wZG93bi10b2dnbGUge1xuICAgIC5ib3JkZXItcmlnaHQtcmFkaXVzKDApO1xuICB9XG59XG4uYnRuLWdyb3VwID4gLmJ0bi1ncm91cDpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpID4gLmJ0bjpmaXJzdC1jaGlsZCB7XG4gIC5ib3JkZXItbGVmdC1yYWRpdXMoMCk7XG59XG5cbi8vIE9uIGFjdGl2ZSBhbmQgb3BlbiwgZG9uJ3Qgc2hvdyBvdXRsaW5lXG4uYnRuLWdyb3VwIC5kcm9wZG93bi10b2dnbGU6YWN0aXZlLFxuLmJ0bi1ncm91cC5vcGVuIC5kcm9wZG93bi10b2dnbGUge1xuICBvdXRsaW5lOiAwO1xufVxuXG5cbi8vIFNpemluZ1xuLy9cbi8vIFJlbWl4IHRoZSBkZWZhdWx0IGJ1dHRvbiBzaXppbmcgY2xhc3NlcyBpbnRvIG5ldyBvbmVzIGZvciBlYXNpZXIgbWFuaXB1bGF0aW9uLlxuXG4uYnRuLWdyb3VwLXhzID4gLmJ0biB7ICY6ZXh0ZW5kKC5idG4teHMpOyB9XG4uYnRuLWdyb3VwLXNtID4gLmJ0biB7ICY6ZXh0ZW5kKC5idG4tc20pOyB9XG4uYnRuLWdyb3VwLWxnID4gLmJ0biB7ICY6ZXh0ZW5kKC5idG4tbGcpOyB9XG5cblxuLy8gU3BsaXQgYnV0dG9uIGRyb3Bkb3duc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBHaXZlIHRoZSBsaW5lIGJldHdlZW4gYnV0dG9ucyBzb21lIGRlcHRoXG4uYnRuLWdyb3VwID4gLmJ0biArIC5kcm9wZG93bi10b2dnbGUge1xuICBwYWRkaW5nLWxlZnQ6IDhweDtcbiAgcGFkZGluZy1yaWdodDogOHB4O1xufVxuLmJ0bi1ncm91cCA+IC5idG4tbGcgKyAuZHJvcGRvd24tdG9nZ2xlIHtcbiAgcGFkZGluZy1sZWZ0OiAxMnB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxMnB4O1xufVxuXG4vLyBUaGUgY2xpY2thYmxlIGJ1dHRvbiBmb3IgdG9nZ2xpbmcgdGhlIG1lbnVcbi8vIFJlbW92ZSB0aGUgZ3JhZGllbnQgYW5kIHNldCB0aGUgc2FtZSBpbnNldCBzaGFkb3cgYXMgdGhlIDphY3RpdmUgc3RhdGVcbi5idG4tZ3JvdXAub3BlbiAuZHJvcGRvd24tdG9nZ2xlIHtcbiAgLmJveC1zaGFkb3coaW5zZXQgMCAzcHggNXB4IHJnYmEoMCwwLDAsLjEyNSkpO1xuXG4gIC8vIFNob3cgbm8gc2hhZG93IGZvciBgLmJ0bi1saW5rYCBzaW5jZSBpdCBoYXMgbm8gb3RoZXIgYnV0dG9uIHN0eWxlcy5cbiAgJi5idG4tbGluayB7XG4gICAgLmJveC1zaGFkb3cobm9uZSk7XG4gIH1cbn1cblxuXG4vLyBSZXBvc2l0aW9uIHRoZSBjYXJldFxuLmJ0biAuY2FyZXQge1xuICBtYXJnaW4tbGVmdDogMDtcbn1cbi8vIENhcmV0cyBpbiBvdGhlciBidXR0b24gc2l6ZXNcbi5idG4tbGcgLmNhcmV0IHtcbiAgYm9yZGVyLXdpZHRoOiBAY2FyZXQtd2lkdGgtbGFyZ2UgQGNhcmV0LXdpZHRoLWxhcmdlIDA7XG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG59XG4vLyBVcHNpZGUgZG93biBjYXJldHMgZm9yIC5kcm9wdXBcbi5kcm9wdXAgLmJ0bi1sZyAuY2FyZXQge1xuICBib3JkZXItd2lkdGg6IDAgQGNhcmV0LXdpZHRoLWxhcmdlIEBjYXJldC13aWR0aC1sYXJnZTtcbn1cblxuXG4vLyBWZXJ0aWNhbCBidXR0b24gZ3JvdXBzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5idG4tZ3JvdXAtdmVydGljYWwge1xuICA+IC5idG4sXG4gID4gLmJ0bi1ncm91cCxcbiAgPiAuYnRuLWdyb3VwID4gLmJ0biB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLy8gQ2xlYXIgZmxvYXRzIHNvIGRyb3Bkb3duIG1lbnVzIGNhbiBiZSBwcm9wZXJseSBwbGFjZWRcbiAgPiAuYnRuLWdyb3VwIHtcbiAgICAmOmV4dGVuZCguY2xlYXJmaXggYWxsKTtcbiAgICA+IC5idG4ge1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgPiAuYnRuICsgLmJ0bixcbiAgPiAuYnRuICsgLmJ0bi1ncm91cCxcbiAgPiAuYnRuLWdyb3VwICsgLmJ0bixcbiAgPiAuYnRuLWdyb3VwICsgLmJ0bi1ncm91cCB7XG4gICAgbWFyZ2luLXRvcDogLTFweDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxufVxuXG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0biB7XG4gICY6bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgfVxuICAmOmZpcnN0LWNoaWxkOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgIC5ib3JkZXItdG9wLXJhZGl1cyhAYnRuLWJvcmRlci1yYWRpdXMtYmFzZSk7XG4gICAgLmJvcmRlci1ib3R0b20tcmFkaXVzKDApO1xuICB9XG4gICY6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgLmJvcmRlci10b3AtcmFkaXVzKDApO1xuICAgIC5ib3JkZXItYm90dG9tLXJhZGl1cyhAYnRuLWJvcmRlci1yYWRpdXMtYmFzZSk7XG4gIH1cbn1cbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuLWdyb3VwOm5vdCg6Zmlyc3QtY2hpbGQpOm5vdCg6bGFzdC1jaGlsZCkgPiAuYnRuIHtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuLWdyb3VwOmZpcnN0LWNoaWxkOm5vdCg6bGFzdC1jaGlsZCkge1xuICA+IC5idG46bGFzdC1jaGlsZCxcbiAgPiAuZHJvcGRvd24tdG9nZ2xlIHtcbiAgICAuYm9yZGVyLWJvdHRvbS1yYWRpdXMoMCk7XG4gIH1cbn1cbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuLWdyb3VwOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkgPiAuYnRuOmZpcnN0LWNoaWxkIHtcbiAgLmJvcmRlci10b3AtcmFkaXVzKDApO1xufVxuXG5cbi8vIEp1c3RpZmllZCBidXR0b24gZ3JvdXBzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5idG4tZ3JvdXAtanVzdGlmaWVkIHtcbiAgZGlzcGxheTogdGFibGU7XG4gIHdpZHRoOiAxMDAlO1xuICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xuICBib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlO1xuICA+IC5idG4sXG4gID4gLmJ0bi1ncm91cCB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICB3aWR0aDogMSU7XG4gIH1cbiAgPiAuYnRuLWdyb3VwIC5idG4ge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgPiAuYnRuLWdyb3VwIC5kcm9wZG93bi1tZW51IHtcbiAgICBsZWZ0OiBhdXRvO1xuICB9XG59XG5cblxuLy8gQ2hlY2tib3ggYW5kIHJhZGlvIG9wdGlvbnNcbi8vXG4vLyBJbiBvcmRlciB0byBzdXBwb3J0IHRoZSBicm93c2VyJ3MgZm9ybSB2YWxpZGF0aW9uIGZlZWRiYWNrLCBwb3dlcmVkIGJ5IHRoZVxuLy8gYHJlcXVpcmVkYCBhdHRyaWJ1dGUsIHdlIGhhdmUgdG8gXCJoaWRlXCIgdGhlIGlucHV0cyB2aWEgYGNsaXBgLiBXZSBjYW5ub3QgdXNlXG4vLyBgZGlzcGxheTogbm9uZTtgIG9yIGB2aXNpYmlsaXR5OiBoaWRkZW47YCBhcyB0aGF0IGFsc28gaGlkZXMgdGhlIHBvcG92ZXIuXG4vLyBTaW1wbHkgdmlzdWFsbHkgaGlkaW5nIHRoZSBpbnB1dHMgdmlhIGBvcGFjaXR5YCB3b3VsZCBsZWF2ZSB0aGVtIGNsaWNrYWJsZSBpblxuLy8gY2VydGFpbiBjYXNlcyB3aGljaCBpcyBwcmV2ZW50ZWQgYnkgdXNpbmcgYGNsaXBgIGFuZCBgcG9pbnRlci1ldmVudHNgLlxuLy8gVGhpcyB3YXksIHdlIGVuc3VyZSBhIERPTSBlbGVtZW50IGlzIHZpc2libGUgdG8gcG9zaXRpb24gdGhlIHBvcG92ZXIgZnJvbS5cbi8vXG4vLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL3B1bGwvMTI3OTQgYW5kXG4vLyBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvcHVsbC8xNDU1OSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cblxuW2RhdGEtdG9nZ2xlPVwiYnV0dG9uc1wiXSB7XG4gID4gLmJ0bixcbiAgPiAuYnRuLWdyb3VwID4gLmJ0biB7XG4gICAgaW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuICAgIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBjbGlwOiByZWN0KDAsMCwwLDApO1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuICB9XG59XG4iLCIvLyBTaW5nbGUgc2lkZSBib3JkZXItcmFkaXVzXG5cbi5ib3JkZXItdG9wLXJhZGl1cyhAcmFkaXVzKSB7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiBAcmFkaXVzO1xuICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogQHJhZGl1cztcbn1cbi5ib3JkZXItcmlnaHQtcmFkaXVzKEByYWRpdXMpIHtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IEByYWRpdXM7XG4gICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiBAcmFkaXVzO1xufVxuLmJvcmRlci1ib3R0b20tcmFkaXVzKEByYWRpdXMpIHtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IEByYWRpdXM7XG4gICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiBAcmFkaXVzO1xufVxuLmJvcmRlci1sZWZ0LXJhZGl1cyhAcmFkaXVzKSB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IEByYWRpdXM7XG4gICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IEByYWRpdXM7XG59XG4iLCIvL1xuLy8gSW5wdXQgZ3JvdXBzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBCYXNlIHN0eWxlc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLmlucHV0LWdyb3VwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyAvLyBGb3IgZHJvcGRvd25zXG4gIGRpc3BsYXk6IHRhYmxlO1xuICBib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlOyAvLyBwcmV2ZW50IGlucHV0IGdyb3VwcyBmcm9tIGluaGVyaXRpbmcgYm9yZGVyIHN0eWxlcyBmcm9tIHRhYmxlIGNlbGxzIHdoZW4gcGxhY2VkIHdpdGhpbiBhIHRhYmxlXG5cbiAgLy8gVW5kbyBwYWRkaW5nIGFuZCBmbG9hdCBvZiBncmlkIGNsYXNzZXNcbiAgJltjbGFzcyo9XCJjb2wtXCJdIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgfVxuXG4gIC5mb3JtLWNvbnRyb2wge1xuICAgIC8vIEVuc3VyZSB0aGF0IHRoZSBpbnB1dCBpcyBhbHdheXMgYWJvdmUgdGhlICphcHBlbmRlZCogYWRkb24gYnV0dG9uIGZvclxuICAgIC8vIHByb3BlciBib3JkZXIgY29sb3JzLlxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAyO1xuXG4gICAgLy8gSUU5IGZ1YmFycyB0aGUgcGxhY2Vob2xkZXIgYXR0cmlidXRlIGluIHRleHQgaW5wdXRzIGFuZCB0aGUgYXJyb3dzIG9uXG4gICAgLy8gc2VsZWN0IGVsZW1lbnRzIGluIGlucHV0IGdyb3Vwcy4gVG8gZml4IGl0LCB3ZSBmbG9hdCB0aGUgaW5wdXQuIERldGFpbHM6XG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2lzc3Vlcy8xMTU2MSNpc3N1ZWNvbW1lbnQtMjg5MzY4NTVcbiAgICBmbG9hdDogbGVmdDtcblxuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgIHotaW5kZXg6IDM7XG4gICAgfVxuICB9XG59XG5cbi8vIFNpemluZyBvcHRpb25zXG4vL1xuLy8gUmVtaXggdGhlIGRlZmF1bHQgZm9ybSBjb250cm9sIHNpemluZyBjbGFzc2VzIGludG8gbmV3IG9uZXMgZm9yIGVhc2llclxuLy8gbWFuaXB1bGF0aW9uLlxuXG4uaW5wdXQtZ3JvdXAtbGcgPiAuZm9ybS1jb250cm9sLFxuLmlucHV0LWdyb3VwLWxnID4gLmlucHV0LWdyb3VwLWFkZG9uLFxuLmlucHV0LWdyb3VwLWxnID4gLmlucHV0LWdyb3VwLWJ0biA+IC5idG4ge1xuICAuaW5wdXQtbGcoKTtcbn1cbi5pbnB1dC1ncm91cC1zbSA+IC5mb3JtLWNvbnRyb2wsXG4uaW5wdXQtZ3JvdXAtc20gPiAuaW5wdXQtZ3JvdXAtYWRkb24sXG4uaW5wdXQtZ3JvdXAtc20gPiAuaW5wdXQtZ3JvdXAtYnRuID4gLmJ0biB7XG4gIC5pbnB1dC1zbSgpO1xufVxuXG5cbi8vIERpc3BsYXkgYXMgdGFibGUtY2VsbFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLmlucHV0LWdyb3VwLWFkZG9uLFxuLmlucHV0LWdyb3VwLWJ0bixcbi5pbnB1dC1ncm91cCAuZm9ybS1jb250cm9sIHtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcblxuICAmOm5vdCg6Zmlyc3QtY2hpbGQpOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gIH1cbn1cbi8vIEFkZG9uIGFuZCBhZGRvbiB3cmFwcGVyIGZvciBidXR0b25zXG4uaW5wdXQtZ3JvdXAtYWRkb24sXG4uaW5wdXQtZ3JvdXAtYnRuIHtcbiAgd2lkdGg6IDElO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyAvLyBNYXRjaCB0aGUgaW5wdXRzXG59XG5cbi8vIFRleHQgaW5wdXQgZ3JvdXBzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4uaW5wdXQtZ3JvdXAtYWRkb24ge1xuICBwYWRkaW5nOiBAcGFkZGluZy1iYXNlLXZlcnRpY2FsIEBwYWRkaW5nLWJhc2UtaG9yaXpvbnRhbDtcbiAgZm9udC1zaXplOiBAZm9udC1zaXplLWJhc2U7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogQGlucHV0LWNvbG9yO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6IEBpbnB1dC1ncm91cC1hZGRvbi1iZztcbiAgYm9yZGVyOiAxcHggc29saWQgQGlucHV0LWdyb3VwLWFkZG9uLWJvcmRlci1jb2xvcjtcbiAgYm9yZGVyLXJhZGl1czogQGlucHV0LWJvcmRlci1yYWRpdXM7XG5cbiAgLy8gU2l6aW5nXG4gICYuaW5wdXQtc20ge1xuICAgIHBhZGRpbmc6IEBwYWRkaW5nLXNtYWxsLXZlcnRpY2FsIEBwYWRkaW5nLXNtYWxsLWhvcml6b250YWw7XG4gICAgZm9udC1zaXplOiBAZm9udC1zaXplLXNtYWxsO1xuICAgIGJvcmRlci1yYWRpdXM6IEBpbnB1dC1ib3JkZXItcmFkaXVzLXNtYWxsO1xuICB9XG4gICYuaW5wdXQtbGcge1xuICAgIHBhZGRpbmc6IEBwYWRkaW5nLWxhcmdlLXZlcnRpY2FsIEBwYWRkaW5nLWxhcmdlLWhvcml6b250YWw7XG4gICAgZm9udC1zaXplOiBAZm9udC1zaXplLWxhcmdlO1xuICAgIGJvcmRlci1yYWRpdXM6IEBpbnB1dC1ib3JkZXItcmFkaXVzLWxhcmdlO1xuICB9XG5cbiAgLy8gTnVrZSBkZWZhdWx0IG1hcmdpbnMgZnJvbSBjaGVja2JveGVzIGFuZCByYWRpb3MgdG8gdmVydGljYWxseSBjZW50ZXIgd2l0aGluLlxuICBpbnB1dFt0eXBlPVwicmFkaW9cIl0sXG4gIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxufVxuXG4vLyBSZXNldCByb3VuZGVkIGNvcm5lcnNcbi5pbnB1dC1ncm91cCAuZm9ybS1jb250cm9sOmZpcnN0LWNoaWxkLFxuLmlucHV0LWdyb3VwLWFkZG9uOmZpcnN0LWNoaWxkLFxuLmlucHV0LWdyb3VwLWJ0bjpmaXJzdC1jaGlsZCA+IC5idG4sXG4uaW5wdXQtZ3JvdXAtYnRuOmZpcnN0LWNoaWxkID4gLmJ0bi1ncm91cCA+IC5idG4sXG4uaW5wdXQtZ3JvdXAtYnRuOmZpcnN0LWNoaWxkID4gLmRyb3Bkb3duLXRvZ2dsZSxcbi5pbnB1dC1ncm91cC1idG46bGFzdC1jaGlsZCA+IC5idG46bm90KDpsYXN0LWNoaWxkKTpub3QoLmRyb3Bkb3duLXRvZ2dsZSksXG4uaW5wdXQtZ3JvdXAtYnRuOmxhc3QtY2hpbGQgPiAuYnRuLWdyb3VwOm5vdCg6bGFzdC1jaGlsZCkgPiAuYnRuIHtcbiAgLmJvcmRlci1yaWdodC1yYWRpdXMoMCk7XG59XG4uaW5wdXQtZ3JvdXAtYWRkb246Zmlyc3QtY2hpbGQge1xuICBib3JkZXItcmlnaHQ6IDA7XG59XG4uaW5wdXQtZ3JvdXAgLmZvcm0tY29udHJvbDpsYXN0LWNoaWxkLFxuLmlucHV0LWdyb3VwLWFkZG9uOmxhc3QtY2hpbGQsXG4uaW5wdXQtZ3JvdXAtYnRuOmxhc3QtY2hpbGQgPiAuYnRuLFxuLmlucHV0LWdyb3VwLWJ0bjpsYXN0LWNoaWxkID4gLmJ0bi1ncm91cCA+IC5idG4sXG4uaW5wdXQtZ3JvdXAtYnRuOmxhc3QtY2hpbGQgPiAuZHJvcGRvd24tdG9nZ2xlLFxuLmlucHV0LWdyb3VwLWJ0bjpmaXJzdC1jaGlsZCA+IC5idG46bm90KDpmaXJzdC1jaGlsZCksXG4uaW5wdXQtZ3JvdXAtYnRuOmZpcnN0LWNoaWxkID4gLmJ0bi1ncm91cDpub3QoOmZpcnN0LWNoaWxkKSA+IC5idG4ge1xuICAuYm9yZGVyLWxlZnQtcmFkaXVzKDApO1xufVxuLmlucHV0LWdyb3VwLWFkZG9uOmxhc3QtY2hpbGQge1xuICBib3JkZXItbGVmdDogMDtcbn1cblxuLy8gQnV0dG9uIGlucHV0IGdyb3Vwc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLmlucHV0LWdyb3VwLWJ0biB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgLy8gSmFua2lseSBwcmV2ZW50IGlucHV0IGJ1dHRvbiBncm91cHMgZnJvbSB3cmFwcGluZyB3aXRoIGB3aGl0ZS1zcGFjZWAgYW5kXG4gIC8vIGBmb250LXNpemVgIGluIGNvbWJpbmF0aW9uIHdpdGggYGlubGluZS1ibG9ja2Agb24gYnV0dG9ucy5cbiAgZm9udC1zaXplOiAwO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gIC8vIE5lZ2F0aXZlIG1hcmdpbiBmb3Igc3BhY2luZywgcG9zaXRpb24gZm9yIGJyaW5naW5nIGhvdmVyZWQvZm9jdXNlZC9hY3RpdmVkXG4gIC8vIGVsZW1lbnQgYWJvdmUgdGhlIHNpYmxpbmdzLlxuICA+IC5idG4ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICArIC5idG4ge1xuICAgICAgbWFyZ2luLWxlZnQ6IC0xcHg7XG4gICAgfVxuICAgIC8vIEJyaW5nIHRoZSBcImFjdGl2ZVwiIGJ1dHRvbiB0byB0aGUgZnJvbnRcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMsXG4gICAgJjphY3RpdmUge1xuICAgICAgei1pbmRleDogMjtcbiAgICB9XG4gIH1cblxuICAvLyBOZWdhdGl2ZSBtYXJnaW4gdG8gb25seSBoYXZlIGEgMXB4IGJvcmRlciBiZXR3ZWVuIHRoZSB0d29cbiAgJjpmaXJzdC1jaGlsZCB7XG4gICAgPiAuYnRuLFxuICAgID4gLmJ0bi1ncm91cCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IC0xcHg7XG4gICAgfVxuICB9XG4gICY6bGFzdC1jaGlsZCB7XG4gICAgPiAuYnRuLFxuICAgID4gLmJ0bi1ncm91cCB7XG4gICAgICB6LWluZGV4OiAyO1xuICAgICAgbWFyZ2luLWxlZnQ6IC0xcHg7XG4gICAgfVxuICB9XG59XG4iLCIvL1xuLy8gTmF2c1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4vLyBCYXNlIGNsYXNzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4ubmF2IHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgcGFkZGluZy1sZWZ0OiAwOyAvLyBPdmVycmlkZSBkZWZhdWx0IHVsL29sXG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICY6ZXh0ZW5kKC5jbGVhcmZpeCBhbGwpO1xuXG4gID4gbGkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcblxuICAgID4gYSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBhZGRpbmc6IEBuYXYtbGluay1wYWRkaW5nO1xuICAgICAgJjpob3ZlcixcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBuYXYtbGluay1ob3Zlci1iZztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBEaXNhYmxlZCBzdGF0ZSBzZXRzIHRleHQgdG8gZ3JheSBhbmQgbnVrZXMgaG92ZXIvdGFiIGVmZmVjdHNcbiAgICAmLmRpc2FibGVkID4gYSB7XG4gICAgICBjb2xvcjogQG5hdi1kaXNhYmxlZC1saW5rLWNvbG9yO1xuXG4gICAgICAmOmhvdmVyLFxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIGNvbG9yOiBAbmF2LWRpc2FibGVkLWxpbmstaG92ZXItY29sb3I7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGN1cnNvcjogQGN1cnNvci1kaXNhYmxlZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBPcGVuIGRyb3Bkb3duc1xuICAub3BlbiA+IGEge1xuICAgICYsXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IEBuYXYtbGluay1ob3Zlci1iZztcbiAgICAgIGJvcmRlci1jb2xvcjogQGxpbmstY29sb3I7XG4gICAgfVxuICB9XG5cbiAgLy8gTmF2IGRpdmlkZXJzIChkZXByZWNhdGVkIHdpdGggdjMuMC4xKVxuICAvL1xuICAvLyBUaGlzIHNob3VsZCBoYXZlIGJlZW4gcmVtb3ZlZCBpbiB2MyB3aXRoIHRoZSBkcm9wcGluZyBvZiBgLm5hdi1saXN0YCwgYnV0XG4gIC8vIHdlIG1pc3NlZCBpdC4gV2UgZG9uJ3QgY3VycmVudGx5IHN1cHBvcnQgdGhpcyBhbnl3aGVyZSwgYnV0IGluIHRoZSBpbnRlcmVzdFxuICAvLyBvZiBtYWludGFpbmluZyBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IGluIGNhc2UgeW91IHVzZSBpdCwgaXQncyBkZXByZWNhdGVkLlxuICAubmF2LWRpdmlkZXIge1xuICAgIC5uYXYtZGl2aWRlcigpO1xuICB9XG5cbiAgLy8gUHJldmVudCBJRTggZnJvbSBtaXNwbGFjaW5nIGltZ3NcbiAgLy9cbiAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9oNWJwL2h0bWw1LWJvaWxlcnBsYXRlL2lzc3Vlcy85ODQjaXNzdWVjb21tZW50LTM5ODU5ODlcbiAgPiBsaSA+IGEgPiBpbWcge1xuICAgIG1heC13aWR0aDogbm9uZTtcbiAgfVxufVxuXG5cbi8vIFRhYnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gR2l2ZSB0aGUgdGFicyBzb21ldGhpbmcgdG8gc2l0IG9uXG4ubmF2LXRhYnMge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgQG5hdi10YWJzLWJvcmRlci1jb2xvcjtcbiAgPiBsaSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgLy8gTWFrZSB0aGUgbGlzdC1pdGVtcyBvdmVybGF5IHRoZSBib3R0b20gYm9yZGVyXG4gICAgbWFyZ2luLWJvdHRvbTogLTFweDtcblxuICAgIC8vIEFjdHVhbCB0YWJzIChhcyBsaW5rcylcbiAgICA+IGEge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAycHg7XG4gICAgICBsaW5lLWhlaWdodDogQGxpbmUtaGVpZ2h0LWJhc2U7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IEBib3JkZXItcmFkaXVzLWJhc2UgQGJvcmRlci1yYWRpdXMtYmFzZSAwIDA7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiBAbmF2LXRhYnMtbGluay1ob3Zlci1ib3JkZXItY29sb3IgQG5hdi10YWJzLWxpbmstaG92ZXItYm9yZGVyLWNvbG9yIEBuYXYtdGFicy1ib3JkZXItY29sb3I7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQWN0aXZlIHN0YXRlLCBhbmQgaXRzIDpob3ZlciB0byBvdmVycmlkZSBub3JtYWwgOmhvdmVyXG4gICAgJi5hY3RpdmUgPiBhIHtcbiAgICAgICYsXG4gICAgICAmOmhvdmVyLFxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIGNvbG9yOiBAbmF2LXRhYnMtYWN0aXZlLWxpbmstaG92ZXItY29sb3I7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBuYXYtdGFicy1hY3RpdmUtbGluay1ob3Zlci1iZztcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgQG5hdi10YWJzLWFjdGl2ZS1saW5rLWhvdmVyLWJvcmRlci1jb2xvcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLy8gcHVsbGluZyB0aGlzIGluIG1haW5seSBmb3IgbGVzcyBzaG9ydGhhbmRcbiAgJi5uYXYtanVzdGlmaWVkIHtcbiAgICAubmF2LWp1c3RpZmllZCgpO1xuICAgIC5uYXYtdGFicy1qdXN0aWZpZWQoKTtcbiAgfVxufVxuXG5cbi8vIFBpbGxzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4ubmF2LXBpbGxzIHtcbiAgPiBsaSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG5cbiAgICAvLyBMaW5rcyByZW5kZXJlZCBhcyBwaWxsc1xuICAgID4gYSB7XG4gICAgICBib3JkZXItcmFkaXVzOiBAbmF2LXBpbGxzLWJvcmRlci1yYWRpdXM7XG4gICAgfVxuICAgICsgbGkge1xuICAgICAgbWFyZ2luLWxlZnQ6IDJweDtcbiAgICB9XG5cbiAgICAvLyBBY3RpdmUgc3RhdGVcbiAgICAmLmFjdGl2ZSA+IGEge1xuICAgICAgJixcbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgY29sb3I6IEBuYXYtcGlsbHMtYWN0aXZlLWxpbmstaG92ZXItY29sb3I7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBuYXYtcGlsbHMtYWN0aXZlLWxpbmstaG92ZXItYmc7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cblxuLy8gU3RhY2tlZCBwaWxsc1xuLm5hdi1zdGFja2VkIHtcbiAgPiBsaSB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgKyBsaSB7XG4gICAgICBtYXJnaW4tdG9wOiAycHg7XG4gICAgICBtYXJnaW4tbGVmdDogMDsgLy8gbm8gbmVlZCBmb3IgdGhpcyBnYXAgYmV0d2VlbiBuYXYgaXRlbXNcbiAgICB9XG4gIH1cbn1cblxuXG4vLyBOYXYgdmFyaWF0aW9uc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gSnVzdGlmaWVkIG5hdiBsaW5rc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4ubmF2LWp1c3RpZmllZCB7XG4gIHdpZHRoOiAxMDAlO1xuXG4gID4gbGkge1xuICAgIGZsb2F0OiBub25lO1xuICAgID4gYSB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgfVxuICB9XG5cbiAgPiAuZHJvcGRvd24gLmRyb3Bkb3duLW1lbnUge1xuICAgIHRvcDogYXV0bztcbiAgICBsZWZ0OiBhdXRvO1xuICB9XG5cbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tc20tbWluKSB7XG4gICAgPiBsaSB7XG4gICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgd2lkdGg6IDElO1xuICAgICAgPiBhIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gTW92ZSBib3JkZXJzIHRvIGFuY2hvcnMgaW5zdGVhZCBvZiBib3R0b20gb2YgbGlzdFxuLy9cbi8vIE1peGluIGZvciBhZGRpbmcgb24gdG9wIHRoZSBzaGFyZWQgYC5uYXYtanVzdGlmaWVkYCBzdHlsZXMgZm9yIG91ciB0YWJzXG4ubmF2LXRhYnMtanVzdGlmaWVkIHtcbiAgYm9yZGVyLWJvdHRvbTogMDtcblxuICA+IGxpID4gYSB7XG4gICAgLy8gT3ZlcnJpZGUgbWFyZ2luIGZyb20gLm5hdi10YWJzXG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IEBib3JkZXItcmFkaXVzLWJhc2U7XG4gIH1cblxuICA+IC5hY3RpdmUgPiBhLFxuICA+IC5hY3RpdmUgPiBhOmhvdmVyLFxuICA+IC5hY3RpdmUgPiBhOmZvY3VzIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCBAbmF2LXRhYnMtanVzdGlmaWVkLWxpbmstYm9yZGVyLWNvbG9yO1xuICB9XG5cbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tc20tbWluKSB7XG4gICAgPiBsaSA+IGEge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIEBuYXYtdGFicy1qdXN0aWZpZWQtbGluay1ib3JkZXItY29sb3I7XG4gICAgICBib3JkZXItcmFkaXVzOiBAYm9yZGVyLXJhZGl1cy1iYXNlIEBib3JkZXItcmFkaXVzLWJhc2UgMCAwO1xuICAgIH1cbiAgICA+IC5hY3RpdmUgPiBhLFxuICAgID4gLmFjdGl2ZSA+IGE6aG92ZXIsXG4gICAgPiAuYWN0aXZlID4gYTpmb2N1cyB7XG4gICAgICBib3JkZXItYm90dG9tLWNvbG9yOiBAbmF2LXRhYnMtanVzdGlmaWVkLWFjdGl2ZS1saW5rLWJvcmRlci1jb2xvcjtcbiAgICB9XG4gIH1cbn1cblxuXG4vLyBUYWJiYWJsZSB0YWJzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIEhpZGUgdGFiYmFibGUgcGFuZXMgdG8gc3RhcnQsIHNob3cgdGhlbSB3aGVuIGAuYWN0aXZlYFxuLnRhYi1jb250ZW50IHtcbiAgPiAudGFiLXBhbmUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgPiAuYWN0aXZlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuXG5cbi8vIERyb3Bkb3duc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBTcGVjaWZpYyBkcm9wZG93bnNcbi5uYXYtdGFicyAuZHJvcGRvd24tbWVudSB7XG4gIC8vIG1ha2UgZHJvcGRvd24gYm9yZGVyIG92ZXJsYXAgdGFiIGJvcmRlclxuICBtYXJnaW4tdG9wOiAtMXB4O1xuICAvLyBSZW1vdmUgdGhlIHRvcCByb3VuZGVkIGNvcm5lcnMgaGVyZSBzaW5jZSB0aGVyZSBpcyBhIGhhcmQgZWRnZSBhYm92ZSB0aGUgbWVudVxuICAuYm9yZGVyLXRvcC1yYWRpdXMoMCk7XG59XG4iLCIvL1xuLy8gTmF2YmFyc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4vLyBXcmFwcGVyIGFuZCBiYXNlIGNsYXNzXG4vL1xuLy8gUHJvdmlkZSBhIHN0YXRpYyBuYXZiYXIgZnJvbSB3aGljaCB3ZSBleHBhbmQgdG8gY3JlYXRlIGZ1bGwtd2lkdGgsIGZpeGVkLCBhbmRcbi8vIG90aGVyIG5hdmJhciB2YXJpYXRpb25zLlxuXG4ubmF2YmFyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtaW4taGVpZ2h0OiBAbmF2YmFyLWhlaWdodDsgLy8gRW5zdXJlIGEgbmF2YmFyIGFsd2F5cyBzaG93cyAoZS5nLiwgd2l0aG91dCBhIC5uYXZiYXItYnJhbmQgaW4gY29sbGFwc2VkIG1vZGUpXG4gIG1hcmdpbi1ib3R0b206IEBuYXZiYXItbWFyZ2luLWJvdHRvbTtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG5cbiAgLy8gUHJldmVudCBmbG9hdHMgZnJvbSBicmVha2luZyB0aGUgbmF2YmFyXG4gICY6ZXh0ZW5kKC5jbGVhcmZpeCBhbGwpO1xuXG4gIEBtZWRpYSAobWluLXdpZHRoOiBAZ3JpZC1mbG9hdC1icmVha3BvaW50KSB7XG4gICAgYm9yZGVyLXJhZGl1czogQG5hdmJhci1ib3JkZXItcmFkaXVzO1xuICB9XG59XG5cblxuLy8gTmF2YmFyIGhlYWRpbmdcbi8vXG4vLyBHcm91cHMgYC5uYXZiYXItYnJhbmRgIGFuZCBgLm5hdmJhci10b2dnbGVgIGludG8gYSBzaW5nbGUgY29tcG9uZW50IGZvciBlYXN5XG4vLyBzdHlsaW5nIG9mIHJlc3BvbnNpdmUgYXNwZWN0cy5cblxuLm5hdmJhci1oZWFkZXIge1xuICAmOmV4dGVuZCguY2xlYXJmaXggYWxsKTtcblxuICBAbWVkaWEgKG1pbi13aWR0aDogQGdyaWQtZmxvYXQtYnJlYWtwb2ludCkge1xuICAgIGZsb2F0OiBsZWZ0O1xuICB9XG59XG5cblxuLy8gTmF2YmFyIGNvbGxhcHNlIChib2R5KVxuLy9cbi8vIEdyb3VwIHlvdXIgbmF2YmFyIGNvbnRlbnQgaW50byB0aGlzIGZvciBlYXN5IGNvbGxhcHNpbmcgYW5kIGV4cGFuZGluZyBhY3Jvc3Ncbi8vIHZhcmlvdXMgZGV2aWNlIHNpemVzLiBCeSBkZWZhdWx0LCB0aGlzIGNvbnRlbnQgaXMgY29sbGFwc2VkIHdoZW4gPDc2OHB4LCBidXRcbi8vIHdpbGwgZXhwYW5kIHBhc3QgdGhhdCBmb3IgYSBob3Jpem9udGFsIGRpc3BsYXkuXG4vL1xuLy8gVG8gc3RhcnQgKG9uIG1vYmlsZSBkZXZpY2VzKSB0aGUgbmF2YmFyIGxpbmtzLCBmb3JtcywgYW5kIGJ1dHRvbnMgYXJlIHN0YWNrZWRcbi8vIHZlcnRpY2FsbHkgYW5kIGluY2x1ZGUgYSBgbWF4LWhlaWdodGAgdG8gb3ZlcmZsb3cgaW4gY2FzZSB5b3UgaGF2ZSB0b28gbXVjaFxuLy8gY29udGVudCBmb3IgdGhlIHVzZXIncyB2aWV3cG9ydC5cblxuLm5hdmJhci1jb2xsYXBzZSB7XG4gIG92ZXJmbG93LXg6IHZpc2libGU7XG4gIHBhZGRpbmctcmlnaHQ6IEBuYXZiYXItcGFkZGluZy1ob3Jpem9udGFsO1xuICBwYWRkaW5nLWxlZnQ6ICBAbmF2YmFyLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIHJnYmEoMjU1LDI1NSwyNTUsLjEpO1xuICAmOmV4dGVuZCguY2xlYXJmaXggYWxsKTtcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuXG4gICYuaW4ge1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gIH1cblxuICBAbWVkaWEgKG1pbi13aWR0aDogQGdyaWQtZmxvYXQtYnJlYWtwb2ludCkge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGJvcmRlci10b3A6IDA7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcblxuICAgICYuY29sbGFwc2Uge1xuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgICAgcGFkZGluZy1ib3R0b206IDA7IC8vIE92ZXJyaWRlIGRlZmF1bHQgc2V0dGluZ1xuICAgICAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAmLmluIHtcbiAgICAgIG92ZXJmbG93LXk6IHZpc2libGU7XG4gICAgfVxuXG4gICAgLy8gVW5kbyB0aGUgY29sbGFwc2Ugc2lkZSBwYWRkaW5nIGZvciBuYXZiYXJzIHdpdGggY29udGFpbmVycyB0byBlbnN1cmVcbiAgICAvLyBhbGlnbm1lbnQgb2YgcmlnaHQtYWxpZ25lZCBjb250ZW50cy5cbiAgICAubmF2YmFyLWZpeGVkLXRvcCAmLFxuICAgIC5uYXZiYXItc3RhdGljLXRvcCAmLFxuICAgIC5uYXZiYXItZml4ZWQtYm90dG9tICYge1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICB9XG4gIH1cbn1cblxuLm5hdmJhci1maXhlZC10b3AsXG4ubmF2YmFyLWZpeGVkLWJvdHRvbSB7XG4gIC5uYXZiYXItY29sbGFwc2Uge1xuICAgIG1heC1oZWlnaHQ6IEBuYXZiYXItY29sbGFwc2UtbWF4LWhlaWdodDtcblxuICAgIEBtZWRpYSAobWF4LWRldmljZS13aWR0aDogQHNjcmVlbi14cy1taW4pIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSkge1xuICAgICAgbWF4LWhlaWdodDogMjAwcHg7XG4gICAgfVxuICB9XG59XG5cblxuLy8gQm90aCBuYXZiYXIgaGVhZGVyIGFuZCBjb2xsYXBzZVxuLy9cbi8vIFdoZW4gYSBjb250YWluZXIgaXMgcHJlc2VudCwgY2hhbmdlIHRoZSBiZWhhdmlvciBvZiB0aGUgaGVhZGVyIGFuZCBjb2xsYXBzZS5cblxuLmNvbnRhaW5lcixcbi5jb250YWluZXItZmx1aWQge1xuICA+IC5uYXZiYXItaGVhZGVyLFxuICA+IC5uYXZiYXItY29sbGFwc2Uge1xuICAgIG1hcmdpbi1yaWdodDogLUBuYXZiYXItcGFkZGluZy1ob3Jpem9udGFsO1xuICAgIG1hcmdpbi1sZWZ0OiAgLUBuYXZiYXItcGFkZGluZy1ob3Jpem9udGFsO1xuXG4gICAgQG1lZGlhIChtaW4td2lkdGg6IEBncmlkLWZsb2F0LWJyZWFrcG9pbnQpIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAgMDtcbiAgICB9XG4gIH1cbn1cblxuXG4vL1xuLy8gTmF2YmFyIGFsaWdubWVudCBvcHRpb25zXG4vL1xuLy8gRGlzcGxheSB0aGUgbmF2YmFyIGFjcm9zcyB0aGUgZW50aXJldHkgb2YgdGhlIHBhZ2Ugb3IgZml4ZWQgaXQgdG8gdGhlIHRvcCBvclxuLy8gYm90dG9tIG9mIHRoZSBwYWdlLlxuXG4vLyBTdGF0aWMgdG9wICh1bmZpeGVkLCBidXQgMTAwJSB3aWRlKSBuYXZiYXJcbi5uYXZiYXItc3RhdGljLXRvcCB7XG4gIHotaW5kZXg6IEB6aW5kZXgtbmF2YmFyO1xuICBib3JkZXItd2lkdGg6IDAgMCAxcHg7XG5cbiAgQG1lZGlhIChtaW4td2lkdGg6IEBncmlkLWZsb2F0LWJyZWFrcG9pbnQpIHtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICB9XG59XG5cbi8vIEZpeCB0aGUgdG9wL2JvdHRvbSBuYXZiYXJzIHdoZW4gc2NyZWVuIHJlYWwgZXN0YXRlIHN1cHBvcnRzIGl0XG4ubmF2YmFyLWZpeGVkLXRvcCxcbi5uYXZiYXItZml4ZWQtYm90dG9tIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICByaWdodDogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogQHppbmRleC1uYXZiYXItZml4ZWQ7XG5cbiAgLy8gVW5kbyB0aGUgcm91bmRlZCBjb3JuZXJzXG4gIEBtZWRpYSAobWluLXdpZHRoOiBAZ3JpZC1mbG9hdC1icmVha3BvaW50KSB7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgfVxufVxuLm5hdmJhci1maXhlZC10b3Age1xuICB0b3A6IDA7XG4gIGJvcmRlci13aWR0aDogMCAwIDFweDtcbn1cbi5uYXZiYXItZml4ZWQtYm90dG9tIHtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwOyAvLyBvdmVycmlkZSAubmF2YmFyIGRlZmF1bHRzXG4gIGJvcmRlci13aWR0aDogMXB4IDAgMDtcbn1cblxuXG4vLyBCcmFuZC9wcm9qZWN0IG5hbWVcblxuLm5hdmJhci1icmFuZCB7XG4gIGZsb2F0OiBsZWZ0O1xuICBwYWRkaW5nOiBAbmF2YmFyLXBhZGRpbmctdmVydGljYWwgQG5hdmJhci1wYWRkaW5nLWhvcml6b250YWw7XG4gIGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS1sYXJnZTtcbiAgbGluZS1oZWlnaHQ6IEBsaW5lLWhlaWdodC1jb21wdXRlZDtcbiAgaGVpZ2h0OiBAbmF2YmFyLWhlaWdodDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cblxuICA+IGltZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICBAbWVkaWEgKG1pbi13aWR0aDogQGdyaWQtZmxvYXQtYnJlYWtwb2ludCkge1xuICAgIC5uYXZiYXIgPiAuY29udGFpbmVyICYsXG4gICAgLm5hdmJhciA+IC5jb250YWluZXItZmx1aWQgJiB7XG4gICAgICBtYXJnaW4tbGVmdDogLUBuYXZiYXItcGFkZGluZy1ob3Jpem9udGFsO1xuICAgIH1cbiAgfVxufVxuXG5cbi8vIE5hdmJhciB0b2dnbGVcbi8vXG4vLyBDdXN0b20gYnV0dG9uIGZvciB0b2dnbGluZyB0aGUgYC5uYXZiYXItY29sbGFwc2VgLCBwb3dlcmVkIGJ5IHRoZSBjb2xsYXBzZVxuLy8gSmF2YVNjcmlwdCBwbHVnaW4uXG5cbi5uYXZiYXItdG9nZ2xlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbi1yaWdodDogQG5hdmJhci1wYWRkaW5nLWhvcml6b250YWw7XG4gIHBhZGRpbmc6IDlweCAxMHB4O1xuICAubmF2YmFyLXZlcnRpY2FsLWFsaWduKDM0cHgpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsgLy8gUmVzZXQgdW51c3VhbCBGaXJlZm94LW9uLUFuZHJvaWQgZGVmYXVsdCBzdHlsZTsgc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MvaXNzdWVzLzIxNFxuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogQGJvcmRlci1yYWRpdXMtYmFzZTtcblxuICAvLyBXZSByZW1vdmUgdGhlIGBvdXRsaW5lYCBoZXJlLCBidXQgbGF0ZXIgY29tcGVuc2F0ZSBieSBhdHRhY2hpbmcgYDpob3ZlcmBcbiAgLy8gc3R5bGVzIHRvIGA6Zm9jdXNgLlxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiAwO1xuICB9XG5cbiAgLy8gQmFyc1xuICAuaWNvbi1iYXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAyMnB4O1xuICAgIGhlaWdodDogMnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDFweDtcbiAgfVxuICAuaWNvbi1iYXIgKyAuaWNvbi1iYXIge1xuICAgIG1hcmdpbi10b3A6IDRweDtcbiAgfVxuXG4gIEBtZWRpYSAobWluLXdpZHRoOiBAZ3JpZC1mbG9hdC1icmVha3BvaW50KSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG5cbi8vIE5hdmJhciBuYXYgbGlua3Ncbi8vXG4vLyBCdWlsZHMgb24gdG9wIG9mIHRoZSBgLm5hdmAgY29tcG9uZW50cyB3aXRoIGl0cyBvd24gbW9kaWZpZXIgY2xhc3MgdG8gbWFrZVxuLy8gdGhlIG5hdiB0aGUgZnVsbCBoZWlnaHQgb2YgdGhlIGhvcml6b250YWwgbmF2IChhYm92ZSA3NjhweCkuXG5cbi5uYXZiYXItbmF2IHtcbiAgbWFyZ2luOiAoQG5hdmJhci1wYWRkaW5nLXZlcnRpY2FsIC8gMikgLUBuYXZiYXItcGFkZGluZy1ob3Jpem9udGFsO1xuXG4gID4gbGkgPiBhIHtcbiAgICBwYWRkaW5nLXRvcDogICAgMTBweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcbiAgICBsaW5lLWhlaWdodDogQGxpbmUtaGVpZ2h0LWNvbXB1dGVkO1xuICB9XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IEBncmlkLWZsb2F0LWJyZWFrcG9pbnQtbWF4KSB7XG4gICAgLy8gRHJvcGRvd25zIGdldCBjdXN0b20gZGlzcGxheSB3aGVuIGNvbGxhcHNlZFxuICAgIC5vcGVuIC5kcm9wZG93bi1tZW51IHtcbiAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICBmbG9hdDogbm9uZTtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgID4gbGkgPiBhLFxuICAgICAgLmRyb3Bkb3duLWhlYWRlciB7XG4gICAgICAgIHBhZGRpbmc6IDVweCAxNXB4IDVweCAyNXB4O1xuICAgICAgfVxuICAgICAgPiBsaSA+IGEge1xuICAgICAgICBsaW5lLWhlaWdodDogQGxpbmUtaGVpZ2h0LWNvbXB1dGVkO1xuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gVW5jb2xsYXBzZSB0aGUgbmF2XG4gIEBtZWRpYSAobWluLXdpZHRoOiBAZ3JpZC1mbG9hdC1icmVha3BvaW50KSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luOiAwO1xuXG4gICAgPiBsaSB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgID4gYSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAgICBAbmF2YmFyLXBhZGRpbmctdmVydGljYWw7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBAbmF2YmFyLXBhZGRpbmctdmVydGljYWw7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cblxuLy8gTmF2YmFyIGZvcm1cbi8vXG4vLyBFeHRlbnNpb24gb2YgdGhlIGAuZm9ybS1pbmxpbmVgIHdpdGggc29tZSBleHRyYSBmbGF2b3IgZm9yIG9wdGltdW0gZGlzcGxheSBpblxuLy8gb3VyIG5hdmJhcnMuXG5cbi5uYXZiYXItZm9ybSB7XG4gIG1hcmdpbi1sZWZ0OiAtQG5hdmJhci1wYWRkaW5nLWhvcml6b250YWw7XG4gIG1hcmdpbi1yaWdodDogLUBuYXZiYXItcGFkZGluZy1ob3Jpem9udGFsO1xuICBwYWRkaW5nOiAxMHB4IEBuYXZiYXItcGFkZGluZy1ob3Jpem9udGFsO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgQHNoYWRvdzogaW5zZXQgMCAxcHggMCByZ2JhKDI1NSwyNTUsMjU1LC4xKSwgMCAxcHggMCByZ2JhKDI1NSwyNTUsMjU1LC4xKTtcbiAgLmJveC1zaGFkb3coQHNoYWRvdyk7XG5cbiAgLy8gTWl4aW4gYmVoYXZpb3IgZm9yIG9wdGltdW0gZGlzcGxheVxuICAuZm9ybS1pbmxpbmUoKTtcblxuICAuZm9ybS1ncm91cCB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IEBncmlkLWZsb2F0LWJyZWFrcG9pbnQtbWF4KSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gVmVydGljYWxseSBjZW50ZXIgaW4gZXhwYW5kZWQsIGhvcml6b250YWwgbmF2YmFyXG4gIC5uYXZiYXItdmVydGljYWwtYWxpZ24oQGlucHV0LWhlaWdodC1iYXNlKTtcblxuICAvLyBVbmRvIDEwMCUgd2lkdGggZm9yIHB1bGwgY2xhc3Nlc1xuICBAbWVkaWEgKG1pbi13aWR0aDogQGdyaWQtZmxvYXQtYnJlYWtwb2ludCkge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGJvcmRlcjogMDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgLmJveC1zaGFkb3cobm9uZSk7XG4gIH1cbn1cblxuXG4vLyBEcm9wZG93biBtZW51c1xuXG4vLyBNZW51IHBvc2l0aW9uIGFuZCBtZW51IGNhcmV0c1xuLm5hdmJhci1uYXYgPiBsaSA+IC5kcm9wZG93bi1tZW51IHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgLmJvcmRlci10b3AtcmFkaXVzKDApO1xufVxuLy8gTWVudSBwb3NpdGlvbiBhbmQgbWVudSBjYXJldCBzdXBwb3J0IGZvciBkcm9wdXBzIHZpYSBleHRyYSBkcm9wdXAgY2xhc3Ncbi5uYXZiYXItZml4ZWQtYm90dG9tIC5uYXZiYXItbmF2ID4gbGkgPiAuZHJvcGRvd24tbWVudSB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIC5ib3JkZXItdG9wLXJhZGl1cyhAbmF2YmFyLWJvcmRlci1yYWRpdXMpO1xuICAuYm9yZGVyLWJvdHRvbS1yYWRpdXMoMCk7XG59XG5cblxuLy8gQnV0dG9ucyBpbiBuYXZiYXJzXG4vL1xuLy8gVmVydGljYWxseSBjZW50ZXIgYSBidXR0b24gd2l0aGluIGEgbmF2YmFyICh3aGVuICpub3QqIGluIGEgZm9ybSkuXG5cbi5uYXZiYXItYnRuIHtcbiAgLm5hdmJhci12ZXJ0aWNhbC1hbGlnbihAaW5wdXQtaGVpZ2h0LWJhc2UpO1xuXG4gICYuYnRuLXNtIHtcbiAgICAubmF2YmFyLXZlcnRpY2FsLWFsaWduKEBpbnB1dC1oZWlnaHQtc21hbGwpO1xuICB9XG4gICYuYnRuLXhzIHtcbiAgICAubmF2YmFyLXZlcnRpY2FsLWFsaWduKDIyKTtcbiAgfVxufVxuXG5cbi8vIFRleHQgaW4gbmF2YmFyc1xuLy9cbi8vIEFkZCBhIGNsYXNzIHRvIG1ha2UgYW55IGVsZW1lbnQgcHJvcGVybHkgYWxpZ24gaXRzZWxmIHZlcnRpY2FsbHkgd2l0aGluIHRoZSBuYXZiYXJzLlxuXG4ubmF2YmFyLXRleHQge1xuICAubmF2YmFyLXZlcnRpY2FsLWFsaWduKEBsaW5lLWhlaWdodC1jb21wdXRlZCk7XG5cbiAgQG1lZGlhIChtaW4td2lkdGg6IEBncmlkLWZsb2F0LWJyZWFrcG9pbnQpIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tbGVmdDogQG5hdmJhci1wYWRkaW5nLWhvcml6b250YWw7XG4gICAgbWFyZ2luLXJpZ2h0OiBAbmF2YmFyLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgfVxufVxuXG5cbi8vIENvbXBvbmVudCBhbGlnbm1lbnRcbi8vXG4vLyBSZXB1cnBvc2UgdGhlIHB1bGwgdXRpbGl0aWVzIGFzIHRoZWlyIG93biBuYXZiYXIgdXRpbGl0aWVzIHRvIGF2b2lkIHNwZWNpZmljaXR5XG4vLyBpc3N1ZXMgd2l0aCBwYXJlbnRzIGFuZCBjaGFpbmluZy4gT25seSBkbyB0aGlzIHdoZW4gdGhlIG5hdmJhciBpcyB1bmNvbGxhcHNlZFxuLy8gdGhvdWdoIHNvIHRoYXQgbmF2YmFyIGNvbnRlbnRzIHByb3Blcmx5IHN0YWNrIGFuZCBhbGlnbiBpbiBtb2JpbGUuXG4vL1xuLy8gRGVjbGFyZWQgYWZ0ZXIgdGhlIG5hdmJhciBjb21wb25lbnRzIHRvIGVuc3VyZSBtb3JlIHNwZWNpZmljaXR5IG9uIHRoZSBtYXJnaW5zLlxuXG5AbWVkaWEgKG1pbi13aWR0aDogQGdyaWQtZmxvYXQtYnJlYWtwb2ludCkge1xuICAubmF2YmFyLWxlZnQgIHsgLnB1bGwtbGVmdCgpOyB9XG4gIC5uYXZiYXItcmlnaHQge1xuICAgIC5wdWxsLXJpZ2h0KCk7XG4gICAgbWFyZ2luLXJpZ2h0OiAtQG5hdmJhci1wYWRkaW5nLWhvcml6b250YWw7XG5cbiAgICB+IC5uYXZiYXItcmlnaHQge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIH1cbiAgfVxufVxuXG5cbi8vIEFsdGVybmF0ZSBuYXZiYXJzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBEZWZhdWx0IG5hdmJhclxuLm5hdmJhci1kZWZhdWx0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQG5hdmJhci1kZWZhdWx0LWJnO1xuICBib3JkZXItY29sb3I6IEBuYXZiYXItZGVmYXVsdC1ib3JkZXI7XG5cbiAgLm5hdmJhci1icmFuZCB7XG4gICAgY29sb3I6IEBuYXZiYXItZGVmYXVsdC1icmFuZC1jb2xvcjtcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgY29sb3I6IEBuYXZiYXItZGVmYXVsdC1icmFuZC1ob3Zlci1jb2xvcjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IEBuYXZiYXItZGVmYXVsdC1icmFuZC1ob3Zlci1iZztcbiAgICB9XG4gIH1cblxuICAubmF2YmFyLXRleHQge1xuICAgIGNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtY29sb3I7XG4gIH1cblxuICAubmF2YmFyLW5hdiB7XG4gICAgPiBsaSA+IGEge1xuICAgICAgY29sb3I6IEBuYXZiYXItZGVmYXVsdC1saW5rLWNvbG9yO1xuXG4gICAgICAmOmhvdmVyLFxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIGNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtbGluay1ob3Zlci1jb2xvcjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQG5hdmJhci1kZWZhdWx0LWxpbmstaG92ZXItYmc7XG4gICAgICB9XG4gICAgfVxuICAgID4gLmFjdGl2ZSA+IGEge1xuICAgICAgJixcbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgY29sb3I6IEBuYXZiYXItZGVmYXVsdC1saW5rLWFjdGl2ZS1jb2xvcjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQG5hdmJhci1kZWZhdWx0LWxpbmstYWN0aXZlLWJnO1xuICAgICAgfVxuICAgIH1cbiAgICA+IC5kaXNhYmxlZCA+IGEge1xuICAgICAgJixcbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgY29sb3I6IEBuYXZiYXItZGVmYXVsdC1saW5rLWRpc2FibGVkLWNvbG9yO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtbGluay1kaXNhYmxlZC1iZztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubmF2YmFyLXRvZ2dsZSB7XG4gICAgYm9yZGVyLWNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtdG9nZ2xlLWJvcmRlci1jb2xvcjtcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogQG5hdmJhci1kZWZhdWx0LXRvZ2dsZS1ob3Zlci1iZztcbiAgICB9XG4gICAgLmljb24tYmFyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IEBuYXZiYXItZGVmYXVsdC10b2dnbGUtaWNvbi1iYXItYmc7XG4gICAgfVxuICB9XG5cbiAgLm5hdmJhci1jb2xsYXBzZSxcbiAgLm5hdmJhci1mb3JtIHtcbiAgICBib3JkZXItY29sb3I6IEBuYXZiYXItZGVmYXVsdC1ib3JkZXI7XG4gIH1cblxuICAvLyBEcm9wZG93biBtZW51IGl0ZW1zXG4gIC5uYXZiYXItbmF2IHtcbiAgICAvLyBSZW1vdmUgYmFja2dyb3VuZCBjb2xvciBmcm9tIG9wZW4gZHJvcGRvd25cbiAgICA+IC5vcGVuID4gYSB7XG4gICAgICAmLFxuICAgICAgJjpob3ZlcixcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtbGluay1hY3RpdmUtYmc7XG4gICAgICAgIGNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtbGluay1hY3RpdmUtY29sb3I7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IEBncmlkLWZsb2F0LWJyZWFrcG9pbnQtbWF4KSB7XG4gICAgICAvLyBEcm9wZG93bnMgZ2V0IGN1c3RvbSBkaXNwbGF5IHdoZW4gY29sbGFwc2VkXG4gICAgICAub3BlbiAuZHJvcGRvd24tbWVudSB7XG4gICAgICAgID4gbGkgPiBhIHtcbiAgICAgICAgICBjb2xvcjogQG5hdmJhci1kZWZhdWx0LWxpbmstY29sb3I7XG4gICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtbGluay1ob3Zlci1jb2xvcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBuYXZiYXItZGVmYXVsdC1saW5rLWhvdmVyLWJnO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICA+IC5hY3RpdmUgPiBhIHtcbiAgICAgICAgICAmLFxuICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBjb2xvcjogQG5hdmJhci1kZWZhdWx0LWxpbmstYWN0aXZlLWNvbG9yO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQG5hdmJhci1kZWZhdWx0LWxpbmstYWN0aXZlLWJnO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICA+IC5kaXNhYmxlZCA+IGEge1xuICAgICAgICAgICYsXG4gICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtbGluay1kaXNhYmxlZC1jb2xvcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBuYXZiYXItZGVmYXVsdC1saW5rLWRpc2FibGVkLWJnO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG5cbiAgLy8gTGlua3MgaW4gbmF2YmFyc1xuICAvL1xuICAvLyBBZGQgYSBjbGFzcyB0byBlbnN1cmUgbGlua3Mgb3V0c2lkZSB0aGUgbmF2YmFyIG5hdiBhcmUgY29sb3JlZCBjb3JyZWN0bHkuXG5cbiAgLm5hdmJhci1saW5rIHtcbiAgICBjb2xvcjogQG5hdmJhci1kZWZhdWx0LWxpbmstY29sb3I7XG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogQG5hdmJhci1kZWZhdWx0LWxpbmstaG92ZXItY29sb3I7XG4gICAgfVxuICB9XG5cbiAgLmJ0bi1saW5rIHtcbiAgICBjb2xvcjogQG5hdmJhci1kZWZhdWx0LWxpbmstY29sb3I7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIGNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtbGluay1ob3Zlci1jb2xvcjtcbiAgICB9XG4gICAgJltkaXNhYmxlZF0sXG4gICAgZmllbGRzZXRbZGlzYWJsZWRdICYge1xuICAgICAgJjpob3ZlcixcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBjb2xvcjogQG5hdmJhci1kZWZhdWx0LWxpbmstZGlzYWJsZWQtY29sb3I7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIEludmVyc2UgbmF2YmFyXG5cbi5uYXZiYXItaW52ZXJzZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBuYXZiYXItaW52ZXJzZS1iZztcbiAgYm9yZGVyLWNvbG9yOiBAbmF2YmFyLWludmVyc2UtYm9yZGVyO1xuXG4gIC5uYXZiYXItYnJhbmQge1xuICAgIGNvbG9yOiBAbmF2YmFyLWludmVyc2UtYnJhbmQtY29sb3I7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIGNvbG9yOiBAbmF2YmFyLWludmVyc2UtYnJhbmQtaG92ZXItY29sb3I7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmF2YmFyLWludmVyc2UtYnJhbmQtaG92ZXItYmc7XG4gICAgfVxuICB9XG5cbiAgLm5hdmJhci10ZXh0IHtcbiAgICBjb2xvcjogQG5hdmJhci1pbnZlcnNlLWNvbG9yO1xuICB9XG5cbiAgLm5hdmJhci1uYXYge1xuICAgID4gbGkgPiBhIHtcbiAgICAgIGNvbG9yOiBAbmF2YmFyLWludmVyc2UtbGluay1jb2xvcjtcblxuICAgICAgJjpob3ZlcixcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBjb2xvcjogQG5hdmJhci1pbnZlcnNlLWxpbmstaG92ZXItY29sb3I7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBuYXZiYXItaW52ZXJzZS1saW5rLWhvdmVyLWJnO1xuICAgICAgfVxuICAgIH1cbiAgICA+IC5hY3RpdmUgPiBhIHtcbiAgICAgICYsXG4gICAgICAmOmhvdmVyLFxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIGNvbG9yOiBAbmF2YmFyLWludmVyc2UtbGluay1hY3RpdmUtY29sb3I7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBuYXZiYXItaW52ZXJzZS1saW5rLWFjdGl2ZS1iZztcbiAgICAgIH1cbiAgICB9XG4gICAgPiAuZGlzYWJsZWQgPiBhIHtcbiAgICAgICYsXG4gICAgICAmOmhvdmVyLFxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIGNvbG9yOiBAbmF2YmFyLWludmVyc2UtbGluay1kaXNhYmxlZC1jb2xvcjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQG5hdmJhci1pbnZlcnNlLWxpbmstZGlzYWJsZWQtYmc7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gRGFya2VuIHRoZSByZXNwb25zaXZlIG5hdiB0b2dnbGVcbiAgLm5hdmJhci10b2dnbGUge1xuICAgIGJvcmRlci1jb2xvcjogQG5hdmJhci1pbnZlcnNlLXRvZ2dsZS1ib3JkZXItY29sb3I7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IEBuYXZiYXItaW52ZXJzZS10b2dnbGUtaG92ZXItYmc7XG4gICAgfVxuICAgIC5pY29uLWJhciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmF2YmFyLWludmVyc2UtdG9nZ2xlLWljb24tYmFyLWJnO1xuICAgIH1cbiAgfVxuXG4gIC5uYXZiYXItY29sbGFwc2UsXG4gIC5uYXZiYXItZm9ybSB7XG4gICAgYm9yZGVyLWNvbG9yOiBkYXJrZW4oQG5hdmJhci1pbnZlcnNlLWJnLCA3JSk7XG4gIH1cblxuICAvLyBEcm9wZG93bnNcbiAgLm5hdmJhci1uYXYge1xuICAgID4gLm9wZW4gPiBhIHtcbiAgICAgICYsXG4gICAgICAmOmhvdmVyLFxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBuYXZiYXItaW52ZXJzZS1saW5rLWFjdGl2ZS1iZztcbiAgICAgICAgY29sb3I6IEBuYXZiYXItaW52ZXJzZS1saW5rLWFjdGl2ZS1jb2xvcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAbWVkaWEgKG1heC13aWR0aDogQGdyaWQtZmxvYXQtYnJlYWtwb2ludC1tYXgpIHtcbiAgICAgIC8vIERyb3Bkb3ducyBnZXQgY3VzdG9tIGRpc3BsYXlcbiAgICAgIC5vcGVuIC5kcm9wZG93bi1tZW51IHtcbiAgICAgICAgPiAuZHJvcGRvd24taGVhZGVyIHtcbiAgICAgICAgICBib3JkZXItY29sb3I6IEBuYXZiYXItaW52ZXJzZS1ib3JkZXI7XG4gICAgICAgIH1cbiAgICAgICAgLmRpdmlkZXIge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBuYXZiYXItaW52ZXJzZS1ib3JkZXI7XG4gICAgICAgIH1cbiAgICAgICAgPiBsaSA+IGEge1xuICAgICAgICAgIGNvbG9yOiBAbmF2YmFyLWludmVyc2UtbGluay1jb2xvcjtcbiAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgY29sb3I6IEBuYXZiYXItaW52ZXJzZS1saW5rLWhvdmVyLWNvbG9yO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQG5hdmJhci1pbnZlcnNlLWxpbmstaG92ZXItYmc7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgID4gLmFjdGl2ZSA+IGEge1xuICAgICAgICAgICYsXG4gICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGNvbG9yOiBAbmF2YmFyLWludmVyc2UtbGluay1hY3RpdmUtY29sb3I7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmF2YmFyLWludmVyc2UtbGluay1hY3RpdmUtYmc7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgID4gLmRpc2FibGVkID4gYSB7XG4gICAgICAgICAgJixcbiAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgY29sb3I6IEBuYXZiYXItaW52ZXJzZS1saW5rLWRpc2FibGVkLWNvbG9yO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQG5hdmJhci1pbnZlcnNlLWxpbmstZGlzYWJsZWQtYmc7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm5hdmJhci1saW5rIHtcbiAgICBjb2xvcjogQG5hdmJhci1pbnZlcnNlLWxpbmstY29sb3I7XG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogQG5hdmJhci1pbnZlcnNlLWxpbmstaG92ZXItY29sb3I7XG4gICAgfVxuICB9XG5cbiAgLmJ0bi1saW5rIHtcbiAgICBjb2xvcjogQG5hdmJhci1pbnZlcnNlLWxpbmstY29sb3I7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIGNvbG9yOiBAbmF2YmFyLWludmVyc2UtbGluay1ob3Zlci1jb2xvcjtcbiAgICB9XG4gICAgJltkaXNhYmxlZF0sXG4gICAgZmllbGRzZXRbZGlzYWJsZWRdICYge1xuICAgICAgJjpob3ZlcixcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBjb2xvcjogQG5hdmJhci1pbnZlcnNlLWxpbmstZGlzYWJsZWQtY29sb3I7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBOYXZiYXIgdmVydGljYWwgYWxpZ25cbi8vXG4vLyBWZXJ0aWNhbGx5IGNlbnRlciBlbGVtZW50cyBpbiB0aGUgbmF2YmFyLlxuLy8gRXhhbXBsZTogYW4gZWxlbWVudCBoYXMgYSBoZWlnaHQgb2YgMzBweCwgc28gd3JpdGUgb3V0IGAubmF2YmFyLXZlcnRpY2FsLWFsaWduKDMwcHgpO2AgdG8gY2FsY3VsYXRlIHRoZSBhcHByb3ByaWF0ZSB0b3AgbWFyZ2luLlxuXG4ubmF2YmFyLXZlcnRpY2FsLWFsaWduKEBlbGVtZW50LWhlaWdodCkge1xuICBtYXJnaW4tdG9wOiAoKEBuYXZiYXItaGVpZ2h0IC0gQGVsZW1lbnQtaGVpZ2h0KSAvIDIpO1xuICBtYXJnaW4tYm90dG9tOiAoKEBuYXZiYXItaGVpZ2h0IC0gQGVsZW1lbnQtaGVpZ2h0KSAvIDIpO1xufVxuIiwiLy9cbi8vIFV0aWxpdHkgY2xhc3Nlc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4vLyBGbG9hdHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLmNsZWFyZml4IHtcbiAgLmNsZWFyZml4KCk7XG59XG4uY2VudGVyLWJsb2NrIHtcbiAgLmNlbnRlci1ibG9jaygpO1xufVxuLnB1bGwtcmlnaHQge1xuICBmbG9hdDogcmlnaHQgIWltcG9ydGFudDtcbn1cbi5wdWxsLWxlZnQge1xuICBmbG9hdDogbGVmdCAhaW1wb3J0YW50O1xufVxuXG5cbi8vIFRvZ2dsaW5nIGNvbnRlbnRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gTm90ZTogRGVwcmVjYXRlZCAuaGlkZSBpbiBmYXZvciBvZiAuaGlkZGVuIG9yIC5zci1vbmx5IChhcyBhcHByb3ByaWF0ZSkgaW4gdjMuMC4xXG4uaGlkZSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cbi5zaG93IHtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbn1cbi5pbnZpc2libGUge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG4udGV4dC1oaWRlIHtcbiAgLnRleHQtaGlkZSgpO1xufVxuXG5cbi8vIEhpZGUgZnJvbSBzY3JlZW5yZWFkZXJzIGFuZCBicm93c2Vyc1xuLy9cbi8vIENyZWRpdDogSFRNTDUgQm9pbGVycGxhdGVcblxuLmhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuXG4vLyBGb3IgQWZmaXggcGx1Z2luXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5hZmZpeCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbn1cbiIsIi8vXG4vLyBCcmVhZGNydW1ic1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4uYnJlYWRjcnVtYiB7XG4gIHBhZGRpbmc6IEBicmVhZGNydW1iLXBhZGRpbmctdmVydGljYWwgQGJyZWFkY3J1bWItcGFkZGluZy1ob3Jpem9udGFsO1xuICBtYXJnaW4tYm90dG9tOiBAbGluZS1oZWlnaHQtY29tcHV0ZWQ7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IEBicmVhZGNydW1iLWJnO1xuICBib3JkZXItcmFkaXVzOiBAYm9yZGVyLXJhZGl1cy1iYXNlO1xuXG4gID4gbGkge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICsgbGk6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiQHticmVhZGNydW1iLXNlcGFyYXRvcn1cXDAwYTBcIjsgLy8gVW5pY29kZSBzcGFjZSBhZGRlZCBzaW5jZSBpbmxpbmUtYmxvY2sgbWVhbnMgbm9uLWNvbGxhcHNpbmcgd2hpdGUtc3BhY2VcbiAgICAgIHBhZGRpbmc6IDAgNXB4O1xuICAgICAgY29sb3I6IEBicmVhZGNydW1iLWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gID4gLmFjdGl2ZSB7XG4gICAgY29sb3I6IEBicmVhZGNydW1iLWFjdGl2ZS1jb2xvcjtcbiAgfVxufVxuIiwiLy9cbi8vIFBhZ2luYXRpb24gKG11bHRpcGxlIHBhZ2VzKVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5wYWdpbmF0aW9uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIG1hcmdpbjogQGxpbmUtaGVpZ2h0LWNvbXB1dGVkIDA7XG4gIGJvcmRlci1yYWRpdXM6IEBib3JkZXItcmFkaXVzLWJhc2U7XG5cbiAgPiBsaSB7XG4gICAgZGlzcGxheTogaW5saW5lOyAvLyBSZW1vdmUgbGlzdC1zdHlsZSBhbmQgYmxvY2stbGV2ZWwgZGVmYXVsdHNcbiAgICA+IGEsXG4gICAgPiBzcGFuIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGZsb2F0OiBsZWZ0OyAvLyBDb2xsYXBzZSB3aGl0ZS1zcGFjZVxuICAgICAgcGFkZGluZzogQHBhZGRpbmctYmFzZS12ZXJ0aWNhbCBAcGFkZGluZy1iYXNlLWhvcml6b250YWw7XG4gICAgICBsaW5lLWhlaWdodDogQGxpbmUtaGVpZ2h0LWJhc2U7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBjb2xvcjogQHBhZ2luYXRpb24tY29sb3I7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAcGFnaW5hdGlvbi1iZztcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIEBwYWdpbmF0aW9uLWJvcmRlcjtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMXB4O1xuICAgIH1cbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgID4gYSxcbiAgICAgID4gc3BhbiB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAuYm9yZGVyLWxlZnQtcmFkaXVzKEBib3JkZXItcmFkaXVzLWJhc2UpO1xuICAgICAgfVxuICAgIH1cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgPiBhLFxuICAgICAgPiBzcGFuIHtcbiAgICAgICAgLmJvcmRlci1yaWdodC1yYWRpdXMoQGJvcmRlci1yYWRpdXMtYmFzZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgPiBsaSA+IGEsXG4gID4gbGkgPiBzcGFuIHtcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgei1pbmRleDogMjtcbiAgICAgIGNvbG9yOiBAcGFnaW5hdGlvbi1ob3Zlci1jb2xvcjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IEBwYWdpbmF0aW9uLWhvdmVyLWJnO1xuICAgICAgYm9yZGVyLWNvbG9yOiBAcGFnaW5hdGlvbi1ob3Zlci1ib3JkZXI7XG4gICAgfVxuICB9XG5cbiAgPiAuYWN0aXZlID4gYSxcbiAgPiAuYWN0aXZlID4gc3BhbiB7XG4gICAgJixcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgei1pbmRleDogMztcbiAgICAgIGNvbG9yOiBAcGFnaW5hdGlvbi1hY3RpdmUtY29sb3I7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAcGFnaW5hdGlvbi1hY3RpdmUtYmc7XG4gICAgICBib3JkZXItY29sb3I6IEBwYWdpbmF0aW9uLWFjdGl2ZS1ib3JkZXI7XG4gICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgfVxuICB9XG5cbiAgPiAuZGlzYWJsZWQge1xuICAgID4gc3BhbixcbiAgICA+IHNwYW46aG92ZXIsXG4gICAgPiBzcGFuOmZvY3VzLFxuICAgID4gYSxcbiAgICA+IGE6aG92ZXIsXG4gICAgPiBhOmZvY3VzIHtcbiAgICAgIGNvbG9yOiBAcGFnaW5hdGlvbi1kaXNhYmxlZC1jb2xvcjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IEBwYWdpbmF0aW9uLWRpc2FibGVkLWJnO1xuICAgICAgYm9yZGVyLWNvbG9yOiBAcGFnaW5hdGlvbi1kaXNhYmxlZC1ib3JkZXI7XG4gICAgICBjdXJzb3I6IEBjdXJzb3ItZGlzYWJsZWQ7XG4gICAgfVxuICB9XG59XG5cbi8vIFNpemluZ1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gTGFyZ2Vcbi5wYWdpbmF0aW9uLWxnIHtcbiAgLnBhZ2luYXRpb24tc2l6ZShAcGFkZGluZy1sYXJnZS12ZXJ0aWNhbDsgQHBhZGRpbmctbGFyZ2UtaG9yaXpvbnRhbDsgQGZvbnQtc2l6ZS1sYXJnZTsgQGxpbmUtaGVpZ2h0LWxhcmdlOyBAYm9yZGVyLXJhZGl1cy1sYXJnZSk7XG59XG5cbi8vIFNtYWxsXG4ucGFnaW5hdGlvbi1zbSB7XG4gIC5wYWdpbmF0aW9uLXNpemUoQHBhZGRpbmctc21hbGwtdmVydGljYWw7IEBwYWRkaW5nLXNtYWxsLWhvcml6b250YWw7IEBmb250LXNpemUtc21hbGw7IEBsaW5lLWhlaWdodC1zbWFsbDsgQGJvcmRlci1yYWRpdXMtc21hbGwpO1xufVxuIiwiLy8gUGFnaW5hdGlvblxuXG4ucGFnaW5hdGlvbi1zaXplKEBwYWRkaW5nLXZlcnRpY2FsOyBAcGFkZGluZy1ob3Jpem9udGFsOyBAZm9udC1zaXplOyBAbGluZS1oZWlnaHQ7IEBib3JkZXItcmFkaXVzKSB7XG4gID4gbGkge1xuICAgID4gYSxcbiAgICA+IHNwYW4ge1xuICAgICAgcGFkZGluZzogQHBhZGRpbmctdmVydGljYWwgQHBhZGRpbmctaG9yaXpvbnRhbDtcbiAgICAgIGZvbnQtc2l6ZTogQGZvbnQtc2l6ZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiBAbGluZS1oZWlnaHQ7XG4gICAgfVxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgPiBhLFxuICAgICAgPiBzcGFuIHtcbiAgICAgICAgLmJvcmRlci1sZWZ0LXJhZGl1cyhAYm9yZGVyLXJhZGl1cyk7XG4gICAgICB9XG4gICAgfVxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICA+IGEsXG4gICAgICA+IHNwYW4ge1xuICAgICAgICAuYm9yZGVyLXJpZ2h0LXJhZGl1cyhAYm9yZGVyLXJhZGl1cyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvL1xuLy8gUGFnZXIgcGFnaW5hdGlvblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4ucGFnZXIge1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIG1hcmdpbjogQGxpbmUtaGVpZ2h0LWNvbXB1dGVkIDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgJjpleHRlbmQoLmNsZWFyZml4IGFsbCk7XG4gIGxpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgPiBhLFxuICAgID4gc3BhbiB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBwYWRkaW5nOiA1cHggMTRweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IEBwYWdlci1iZztcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIEBwYWdlci1ib3JkZXI7XG4gICAgICBib3JkZXItcmFkaXVzOiBAcGFnZXItYm9yZGVyLXJhZGl1cztcbiAgICB9XG5cbiAgICA+IGE6aG92ZXIsXG4gICAgPiBhOmZvY3VzIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IEBwYWdlci1ob3Zlci1iZztcbiAgICB9XG4gIH1cblxuICAubmV4dCB7XG4gICAgPiBhLFxuICAgID4gc3BhbiB7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxuICB9XG5cbiAgLnByZXZpb3VzIHtcbiAgICA+IGEsXG4gICAgPiBzcGFuIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgIH1cbiAgfVxuXG4gIC5kaXNhYmxlZCB7XG4gICAgPiBhLFxuICAgID4gYTpob3ZlcixcbiAgICA+IGE6Zm9jdXMsXG4gICAgPiBzcGFuIHtcbiAgICAgIGNvbG9yOiBAcGFnZXItZGlzYWJsZWQtY29sb3I7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAcGFnZXItYmc7XG4gICAgICBjdXJzb3I6IEBjdXJzb3ItZGlzYWJsZWQ7XG4gICAgfVxuICB9XG59XG4iLCIvL1xuLy8gTGFiZWxzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4ubGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmU7XG4gIHBhZGRpbmc6IC4yZW0gLjZlbSAuM2VtO1xuICBmb250LXNpemU6IDc1JTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogQGxhYmVsLWNvbG9yO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgYm9yZGVyLXJhZGl1czogLjI1ZW07XG5cbiAgLy8gQWRkIGhvdmVyIGVmZmVjdHMsIGJ1dCBvbmx5IGZvciBsaW5rc1xuICBhJiB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIGNvbG9yOiBAbGFiZWwtbGluay1ob3Zlci1jb2xvcjtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gIH1cblxuICAvLyBFbXB0eSBsYWJlbHMgY29sbGFwc2UgYXV0b21hdGljYWxseSAobm90IGF2YWlsYWJsZSBpbiBJRTgpXG4gICY6ZW1wdHkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAvLyBRdWljayBmaXggZm9yIGxhYmVscyBpbiBidXR0b25zXG4gIC5idG4gJiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogLTFweDtcbiAgfVxufVxuXG4vLyBDb2xvcnNcbi8vIENvbnRleHR1YWwgdmFyaWF0aW9ucyAobGlua2VkIGxhYmVscyBnZXQgZGFya2VyIG9uIDpob3ZlcilcblxuLmxhYmVsLWRlZmF1bHQge1xuICAubGFiZWwtdmFyaWFudChAbGFiZWwtZGVmYXVsdC1iZyk7XG59XG5cbi5sYWJlbC1wcmltYXJ5IHtcbiAgLmxhYmVsLXZhcmlhbnQoQGxhYmVsLXByaW1hcnktYmcpO1xufVxuXG4ubGFiZWwtc3VjY2VzcyB7XG4gIC5sYWJlbC12YXJpYW50KEBsYWJlbC1zdWNjZXNzLWJnKTtcbn1cblxuLmxhYmVsLWluZm8ge1xuICAubGFiZWwtdmFyaWFudChAbGFiZWwtaW5mby1iZyk7XG59XG5cbi5sYWJlbC13YXJuaW5nIHtcbiAgLmxhYmVsLXZhcmlhbnQoQGxhYmVsLXdhcm5pbmctYmcpO1xufVxuXG4ubGFiZWwtZGFuZ2VyIHtcbiAgLmxhYmVsLXZhcmlhbnQoQGxhYmVsLWRhbmdlci1iZyk7XG59XG4iLCIvLyBMYWJlbHNcblxuLmxhYmVsLXZhcmlhbnQoQGNvbG9yKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBjb2xvcjtcblxuICAmW2hyZWZdIHtcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKEBjb2xvciwgMTAlKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vXG4vLyBCYWRnZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLy8gQmFzZSBjbGFzc1xuLmJhZGdlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtaW4td2lkdGg6IDEwcHg7XG4gIHBhZGRpbmc6IDNweCA3cHg7XG4gIGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS1zbWFsbDtcbiAgZm9udC13ZWlnaHQ6IEBiYWRnZS1mb250LXdlaWdodDtcbiAgY29sb3I6IEBiYWRnZS1jb2xvcjtcbiAgbGluZS1oZWlnaHQ6IEBiYWRnZS1saW5lLWhlaWdodDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAYmFkZ2UtYmc7XG4gIGJvcmRlci1yYWRpdXM6IEBiYWRnZS1ib3JkZXItcmFkaXVzO1xuXG4gIC8vIEVtcHR5IGJhZGdlcyBjb2xsYXBzZSBhdXRvbWF0aWNhbGx5IChub3QgYXZhaWxhYmxlIGluIElFOClcbiAgJjplbXB0eSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC8vIFF1aWNrIGZpeCBmb3IgYmFkZ2VzIGluIGJ1dHRvbnNcbiAgLmJ0biAmIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAtMXB4O1xuICB9XG5cbiAgLmJ0bi14cyAmLFxuICAuYnRuLWdyb3VwLXhzID4gLmJ0biAmIHtcbiAgICB0b3A6IDA7XG4gICAgcGFkZGluZzogMXB4IDVweDtcbiAgfVxuXG4gIC8vIEhvdmVyIHN0YXRlLCBidXQgb25seSBmb3IgbGlua3NcbiAgYSYge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBjb2xvcjogQGJhZGdlLWxpbmstaG92ZXItY29sb3I7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuICB9XG5cbiAgLy8gQWNjb3VudCBmb3IgYmFkZ2VzIGluIG5hdnNcbiAgLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmUgPiAmLFxuICAubmF2LXBpbGxzID4gLmFjdGl2ZSA+IGEgPiAmIHtcbiAgICBjb2xvcjogQGJhZGdlLWFjdGl2ZS1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAYmFkZ2UtYWN0aXZlLWJnO1xuICB9XG5cbiAgLmxpc3QtZ3JvdXAtaXRlbSA+ICYge1xuICAgIGZsb2F0OiByaWdodDtcbiAgfVxuXG4gIC5saXN0LWdyb3VwLWl0ZW0gPiAmICsgJiB7XG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gIH1cblxuICAubmF2LXBpbGxzID4gbGkgPiBhID4gJiB7XG4gICAgbWFyZ2luLWxlZnQ6IDNweDtcbiAgfVxufVxuIiwiLy9cbi8vIEp1bWJvdHJvblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4uanVtYm90cm9uIHtcbiAgcGFkZGluZy10b3A6ICAgIEBqdW1ib3Ryb24tcGFkZGluZztcbiAgcGFkZGluZy1ib3R0b206IEBqdW1ib3Ryb24tcGFkZGluZztcbiAgbWFyZ2luLWJvdHRvbTogQGp1bWJvdHJvbi1wYWRkaW5nO1xuICBjb2xvcjogQGp1bWJvdHJvbi1jb2xvcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGp1bWJvdHJvbi1iZztcblxuICBoMSxcbiAgLmgxIHtcbiAgICBjb2xvcjogQGp1bWJvdHJvbi1oZWFkaW5nLWNvbG9yO1xuICB9XG5cbiAgcCB7XG4gICAgbWFyZ2luLWJvdHRvbTogKEBqdW1ib3Ryb24tcGFkZGluZyAvIDIpO1xuICAgIGZvbnQtc2l6ZTogQGp1bWJvdHJvbi1mb250LXNpemU7XG4gICAgZm9udC13ZWlnaHQ6IDIwMDtcbiAgfVxuXG4gID4gaHIge1xuICAgIGJvcmRlci10b3AtY29sb3I6IGRhcmtlbihAanVtYm90cm9uLWJnLCAxMCUpO1xuICB9XG5cbiAgLmNvbnRhaW5lciAmLFxuICAuY29udGFpbmVyLWZsdWlkICYge1xuICAgIGJvcmRlci1yYWRpdXM6IEBib3JkZXItcmFkaXVzLWxhcmdlOyAvLyBPbmx5IHJvdW5kIGNvcm5lcnMgYXQgaGlnaGVyIHJlc29sdXRpb25zIGlmIGNvbnRhaW5lZCBpbiBhIGNvbnRhaW5lclxuICAgIHBhZGRpbmctbGVmdDogIChAZ3JpZC1ndXR0ZXItd2lkdGggLyAyKTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAoQGdyaWQtZ3V0dGVyLXdpZHRoIC8gMik7XG4gIH1cblxuICAuY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cblxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiBAc2NyZWVuLXNtLW1pbikge1xuICAgIHBhZGRpbmctdG9wOiAgICAoQGp1bWJvdHJvbi1wYWRkaW5nICogMS42KTtcbiAgICBwYWRkaW5nLWJvdHRvbTogKEBqdW1ib3Ryb24tcGFkZGluZyAqIDEuNik7XG5cbiAgICAuY29udGFpbmVyICYsXG4gICAgLmNvbnRhaW5lci1mbHVpZCAmIHtcbiAgICAgIHBhZGRpbmctbGVmdDogIChAanVtYm90cm9uLXBhZGRpbmcgKiAyKTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IChAanVtYm90cm9uLXBhZGRpbmcgKiAyKTtcbiAgICB9XG5cbiAgICBoMSxcbiAgICAuaDEge1xuICAgICAgZm9udC1zaXplOiBAanVtYm90cm9uLWhlYWRpbmctZm9udC1zaXplO1xuICAgIH1cbiAgfVxufVxuIiwiLy9cbi8vIFRodW1ibmFpbHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLy8gTWl4aW4gYW5kIGFkanVzdCB0aGUgcmVndWxhciBpbWFnZSBjbGFzc1xuLnRodW1ibmFpbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiBAdGh1bWJuYWlsLXBhZGRpbmc7XG4gIG1hcmdpbi1ib3R0b206IEBsaW5lLWhlaWdodC1jb21wdXRlZDtcbiAgbGluZS1oZWlnaHQ6IEBsaW5lLWhlaWdodC1iYXNlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAdGh1bWJuYWlsLWJnO1xuICBib3JkZXI6IDFweCBzb2xpZCBAdGh1bWJuYWlsLWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogQHRodW1ibmFpbC1ib3JkZXItcmFkaXVzO1xuICAudHJhbnNpdGlvbihib3JkZXIgLjJzIGVhc2UtaW4tb3V0KTtcblxuICA+IGltZyxcbiAgYSA+IGltZyB7XG4gICAgJjpleHRlbmQoLmltZy1yZXNwb25zaXZlKTtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIH1cblxuICAvLyBBZGQgYSBob3ZlciBzdGF0ZSBmb3IgbGlua2VkIHZlcnNpb25zIG9ubHlcbiAgYSY6aG92ZXIsXG4gIGEmOmZvY3VzLFxuICBhJi5hY3RpdmUge1xuICAgIGJvcmRlci1jb2xvcjogQGxpbmstY29sb3I7XG4gIH1cblxuICAvLyBJbWFnZSBjYXB0aW9uc1xuICAuY2FwdGlvbiB7XG4gICAgcGFkZGluZzogQHRodW1ibmFpbC1jYXB0aW9uLXBhZGRpbmc7XG4gICAgY29sb3I6IEB0aHVtYm5haWwtY2FwdGlvbi1jb2xvcjtcbiAgfVxufVxuIiwiLy9cbi8vIEFsZXJ0c1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4vLyBCYXNlIHN0eWxlc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4uYWxlcnQge1xuICBwYWRkaW5nOiBAYWxlcnQtcGFkZGluZztcbiAgbWFyZ2luLWJvdHRvbTogQGxpbmUtaGVpZ2h0LWNvbXB1dGVkO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogQGFsZXJ0LWJvcmRlci1yYWRpdXM7XG5cbiAgLy8gSGVhZGluZ3MgZm9yIGxhcmdlciBhbGVydHNcbiAgaDQge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgLy8gU3BlY2lmaWVkIGZvciB0aGUgaDQgdG8gcHJldmVudCBjb25mbGljdHMgb2YgY2hhbmdpbmcgQGhlYWRpbmdzLWNvbG9yXG4gICAgY29sb3I6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBQcm92aWRlIGNsYXNzIGZvciBsaW5rcyB0aGF0IG1hdGNoIGFsZXJ0c1xuICAuYWxlcnQtbGluayB7XG4gICAgZm9udC13ZWlnaHQ6IEBhbGVydC1saW5rLWZvbnQtd2VpZ2h0O1xuICB9XG5cbiAgLy8gSW1wcm92ZSBhbGlnbm1lbnQgYW5kIHNwYWNpbmcgb2YgaW5uZXIgY29udGVudFxuICA+IHAsXG4gID4gdWwge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cblxuICA+IHAgKyBwIHtcbiAgICBtYXJnaW4tdG9wOiA1cHg7XG4gIH1cbn1cblxuLy8gRGlzbWlzc2libGUgYWxlcnRzXG4vL1xuLy8gRXhwYW5kIHRoZSByaWdodCBwYWRkaW5nIGFuZCBhY2NvdW50IGZvciB0aGUgY2xvc2UgYnV0dG9uJ3MgcG9zaXRpb25pbmcuXG5cbi5hbGVydC1kaXNtaXNzYWJsZSwgLy8gVGhlIG1pc3NwZWxsZWQgLmFsZXJ0LWRpc21pc3NhYmxlIHdhcyBkZXByZWNhdGVkIGluIDMuMi4wLlxuLmFsZXJ0LWRpc21pc3NpYmxlIHtcbiAgcGFkZGluZy1yaWdodDogKEBhbGVydC1wYWRkaW5nICsgMjApO1xuXG4gIC8vIEFkanVzdCBjbG9zZSBsaW5rIHBvc2l0aW9uXG4gIC5jbG9zZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogLTJweDtcbiAgICByaWdodDogLTIxcHg7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gIH1cbn1cblxuLy8gQWx0ZXJuYXRlIHN0eWxlc1xuLy9cbi8vIEdlbmVyYXRlIGNvbnRleHR1YWwgbW9kaWZpZXIgY2xhc3NlcyBmb3IgY29sb3JpemluZyB0aGUgYWxlcnQuXG5cbi5hbGVydC1zdWNjZXNzIHtcbiAgLmFsZXJ0LXZhcmlhbnQoQGFsZXJ0LXN1Y2Nlc3MtYmc7IEBhbGVydC1zdWNjZXNzLWJvcmRlcjsgQGFsZXJ0LXN1Y2Nlc3MtdGV4dCk7XG59XG5cbi5hbGVydC1pbmZvIHtcbiAgLmFsZXJ0LXZhcmlhbnQoQGFsZXJ0LWluZm8tYmc7IEBhbGVydC1pbmZvLWJvcmRlcjsgQGFsZXJ0LWluZm8tdGV4dCk7XG59XG5cbi5hbGVydC13YXJuaW5nIHtcbiAgLmFsZXJ0LXZhcmlhbnQoQGFsZXJ0LXdhcm5pbmctYmc7IEBhbGVydC13YXJuaW5nLWJvcmRlcjsgQGFsZXJ0LXdhcm5pbmctdGV4dCk7XG59XG5cbi5hbGVydC1kYW5nZXIge1xuICAuYWxlcnQtdmFyaWFudChAYWxlcnQtZGFuZ2VyLWJnOyBAYWxlcnQtZGFuZ2VyLWJvcmRlcjsgQGFsZXJ0LWRhbmdlci10ZXh0KTtcbn1cbiIsIi8vIEFsZXJ0c1xuXG4uYWxlcnQtdmFyaWFudChAYmFja2dyb3VuZDsgQGJvcmRlcjsgQHRleHQtY29sb3IpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGJhY2tncm91bmQ7XG4gIGJvcmRlci1jb2xvcjogQGJvcmRlcjtcbiAgY29sb3I6IEB0ZXh0LWNvbG9yO1xuXG4gIGhyIHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiBkYXJrZW4oQGJvcmRlciwgNSUpO1xuICB9XG4gIC5hbGVydC1saW5rIHtcbiAgICBjb2xvcjogZGFya2VuKEB0ZXh0LWNvbG9yLCAxMCUpO1xuICB9XG59XG4iLCIvL1xuLy8gUHJvZ3Jlc3MgYmFyc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4vLyBCYXIgYW5pbWF0aW9uc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBXZWJLaXRcbkAtd2Via2l0LWtleWZyYW1lcyBwcm9ncmVzcy1iYXItc3RyaXBlcyB7XG4gIGZyb20gIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogNDBweCAwOyB9XG4gIHRvICAgIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwOyB9XG59XG5cbi8vIFNwZWMgYW5kIElFMTArXG5Aa2V5ZnJhbWVzIHByb2dyZXNzLWJhci1zdHJpcGVzIHtcbiAgZnJvbSAgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA0MHB4IDA7IH1cbiAgdG8gICAgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDA7IH1cbn1cblxuXG4vLyBCYXIgaXRzZWxmXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIE91dGVyIGNvbnRhaW5lclxuLnByb2dyZXNzIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgaGVpZ2h0OiBAbGluZS1oZWlnaHQtY29tcHV0ZWQ7XG4gIG1hcmdpbi1ib3R0b206IEBsaW5lLWhlaWdodC1jb21wdXRlZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogQHByb2dyZXNzLWJnO1xuICBib3JkZXItcmFkaXVzOiBAcHJvZ3Jlc3MtYm9yZGVyLXJhZGl1cztcbiAgLmJveC1zaGFkb3coaW5zZXQgMCAxcHggMnB4IHJnYmEoMCwwLDAsLjEpKTtcbn1cblxuLy8gQmFyIG9mIHByb2dyZXNzXG4ucHJvZ3Jlc3MtYmFyIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdpZHRoOiAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBmb250LXNpemU6IEBmb250LXNpemUtc21hbGw7XG4gIGxpbmUtaGVpZ2h0OiBAbGluZS1oZWlnaHQtY29tcHV0ZWQ7XG4gIGNvbG9yOiBAcHJvZ3Jlc3MtYmFyLWNvbG9yO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6IEBwcm9ncmVzcy1iYXItYmc7XG4gIC5ib3gtc2hhZG93KGluc2V0IDAgLTFweCAwIHJnYmEoMCwwLDAsLjE1KSk7XG4gIC50cmFuc2l0aW9uKHdpZHRoIC42cyBlYXNlKTtcbn1cblxuLy8gU3RyaXBlZCBiYXJzXG4vL1xuLy8gYC5wcm9ncmVzcy1zdHJpcGVkIC5wcm9ncmVzcy1iYXJgIGlzIGRlcHJlY2F0ZWQgYXMgb2YgdjMuMi4wIGluIGZhdm9yIG9mIHRoZVxuLy8gYC5wcm9ncmVzcy1iYXItc3RyaXBlZGAgY2xhc3MsIHdoaWNoIHlvdSBqdXN0IGFkZCB0byBhbiBleGlzdGluZ1xuLy8gYC5wcm9ncmVzcy1iYXJgLlxuLnByb2dyZXNzLXN0cmlwZWQgLnByb2dyZXNzLWJhcixcbi5wcm9ncmVzcy1iYXItc3RyaXBlZCB7XG4gICNncmFkaWVudCA+IC5zdHJpcGVkKCk7XG4gIGJhY2tncm91bmQtc2l6ZTogNDBweCA0MHB4O1xufVxuXG4vLyBDYWxsIGFuaW1hdGlvbiBmb3IgdGhlIGFjdGl2ZSBvbmVcbi8vXG4vLyBgLnByb2dyZXNzLmFjdGl2ZSAucHJvZ3Jlc3MtYmFyYCBpcyBkZXByZWNhdGVkIGFzIG9mIHYzLjIuMCBpbiBmYXZvciBvZiB0aGVcbi8vIGAucHJvZ3Jlc3MtYmFyLmFjdGl2ZWAgYXBwcm9hY2guXG4ucHJvZ3Jlc3MuYWN0aXZlIC5wcm9ncmVzcy1iYXIsXG4ucHJvZ3Jlc3MtYmFyLmFjdGl2ZSB7XG4gIC5hbmltYXRpb24ocHJvZ3Jlc3MtYmFyLXN0cmlwZXMgMnMgbGluZWFyIGluZmluaXRlKTtcbn1cblxuXG4vLyBWYXJpYXRpb25zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5wcm9ncmVzcy1iYXItc3VjY2VzcyB7XG4gIC5wcm9ncmVzcy1iYXItdmFyaWFudChAcHJvZ3Jlc3MtYmFyLXN1Y2Nlc3MtYmcpO1xufVxuXG4ucHJvZ3Jlc3MtYmFyLWluZm8ge1xuICAucHJvZ3Jlc3MtYmFyLXZhcmlhbnQoQHByb2dyZXNzLWJhci1pbmZvLWJnKTtcbn1cblxuLnByb2dyZXNzLWJhci13YXJuaW5nIHtcbiAgLnByb2dyZXNzLWJhci12YXJpYW50KEBwcm9ncmVzcy1iYXItd2FybmluZy1iZyk7XG59XG5cbi5wcm9ncmVzcy1iYXItZGFuZ2VyIHtcbiAgLnByb2dyZXNzLWJhci12YXJpYW50KEBwcm9ncmVzcy1iYXItZGFuZ2VyLWJnKTtcbn1cbiIsIi8vIEdyYWRpZW50c1xuXG4jZ3JhZGllbnQge1xuXG4gIC8vIEhvcml6b250YWwgZ3JhZGllbnQsIGZyb20gbGVmdCB0byByaWdodFxuICAvL1xuICAvLyBDcmVhdGVzIHR3byBjb2xvciBzdG9wcywgc3RhcnQgYW5kIGVuZCwgYnkgc3BlY2lmeWluZyBhIGNvbG9yIGFuZCBwb3NpdGlvbiBmb3IgZWFjaCBjb2xvciBzdG9wLlxuICAvLyBDb2xvciBzdG9wcyBhcmUgbm90IGF2YWlsYWJsZSBpbiBJRTkgYW5kIGJlbG93LlxuICAuaG9yaXpvbnRhbChAc3RhcnQtY29sb3I6ICM1NTU7IEBlbmQtY29sb3I6ICMzMzM7IEBzdGFydC1wZXJjZW50OiAwJTsgQGVuZC1wZXJjZW50OiAxMDAlKSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQobGVmdCwgQHN0YXJ0LWNvbG9yIEBzdGFydC1wZXJjZW50LCBAZW5kLWNvbG9yIEBlbmQtcGVyY2VudCk7IC8vIFNhZmFyaSA1LjEtNiwgQ2hyb21lIDEwK1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudChsZWZ0LCBAc3RhcnQtY29sb3IgQHN0YXJ0LXBlcmNlbnQsIEBlbmQtY29sb3IgQGVuZC1wZXJjZW50KTsgLy8gT3BlcmEgMTJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIEBzdGFydC1jb2xvciBAc3RhcnQtcGVyY2VudCwgQGVuZC1jb2xvciBAZW5kLXBlcmNlbnQpOyAvLyBTdGFuZGFyZCwgSUUxMCwgRmlyZWZveCAxNissIE9wZXJhIDEyLjEwKywgU2FmYXJpIDcrLCBDaHJvbWUgMjYrXG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xuICAgIGZpbHRlcjogZSglKFwicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyVkJywgZW5kQ29sb3JzdHI9JyVkJywgR3JhZGllbnRUeXBlPTEpXCIsYXJnYihAc3RhcnQtY29sb3IpLGFyZ2IoQGVuZC1jb2xvcikpKTsgLy8gSUU5IGFuZCBkb3duXG4gIH1cblxuICAvLyBWZXJ0aWNhbCBncmFkaWVudCwgZnJvbSB0b3AgdG8gYm90dG9tXG4gIC8vXG4gIC8vIENyZWF0ZXMgdHdvIGNvbG9yIHN0b3BzLCBzdGFydCBhbmQgZW5kLCBieSBzcGVjaWZ5aW5nIGEgY29sb3IgYW5kIHBvc2l0aW9uIGZvciBlYWNoIGNvbG9yIHN0b3AuXG4gIC8vIENvbG9yIHN0b3BzIGFyZSBub3QgYXZhaWxhYmxlIGluIElFOSBhbmQgYmVsb3cuXG4gIC52ZXJ0aWNhbChAc3RhcnQtY29sb3I6ICM1NTU7IEBlbmQtY29sb3I6ICMzMzM7IEBzdGFydC1wZXJjZW50OiAwJTsgQGVuZC1wZXJjZW50OiAxMDAlKSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCBAc3RhcnQtY29sb3IgQHN0YXJ0LXBlcmNlbnQsIEBlbmQtY29sb3IgQGVuZC1wZXJjZW50KTsgIC8vIFNhZmFyaSA1LjEtNiwgQ2hyb21lIDEwK1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudCh0b3AsIEBzdGFydC1jb2xvciBAc3RhcnQtcGVyY2VudCwgQGVuZC1jb2xvciBAZW5kLXBlcmNlbnQpOyAgLy8gT3BlcmEgMTJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCBAc3RhcnQtY29sb3IgQHN0YXJ0LXBlcmNlbnQsIEBlbmQtY29sb3IgQGVuZC1wZXJjZW50KTsgLy8gU3RhbmRhcmQsIElFMTAsIEZpcmVmb3ggMTYrLCBPcGVyYSAxMi4xMCssIFNhZmFyaSA3KywgQ2hyb21lIDI2K1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbiAgICBmaWx0ZXI6IGUoJShcInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPSclZCcsIGVuZENvbG9yc3RyPSclZCcsIEdyYWRpZW50VHlwZT0wKVwiLGFyZ2IoQHN0YXJ0LWNvbG9yKSxhcmdiKEBlbmQtY29sb3IpKSk7IC8vIElFOSBhbmQgZG93blxuICB9XG5cbiAgLmRpcmVjdGlvbmFsKEBzdGFydC1jb2xvcjogIzU1NTsgQGVuZC1jb2xvcjogIzMzMzsgQGRlZzogNDVkZWcpIHtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoQGRlZywgQHN0YXJ0LWNvbG9yLCBAZW5kLWNvbG9yKTsgLy8gU2FmYXJpIDUuMS02LCBDaHJvbWUgMTArXG4gICAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KEBkZWcsIEBzdGFydC1jb2xvciwgQGVuZC1jb2xvcik7IC8vIE9wZXJhIDEyXG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KEBkZWcsIEBzdGFydC1jb2xvciwgQGVuZC1jb2xvcik7IC8vIFN0YW5kYXJkLCBJRTEwLCBGaXJlZm94IDE2KywgT3BlcmEgMTIuMTArLCBTYWZhcmkgNyssIENocm9tZSAyNitcbiAgfVxuICAuaG9yaXpvbnRhbC10aHJlZS1jb2xvcnMoQHN0YXJ0LWNvbG9yOiAjMDBiM2VlOyBAbWlkLWNvbG9yOiAjN2E0M2I2OyBAY29sb3Itc3RvcDogNTAlOyBAZW5kLWNvbG9yOiAjYzMzMjVmKSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQobGVmdCwgQHN0YXJ0LWNvbG9yLCBAbWlkLWNvbG9yIEBjb2xvci1zdG9wLCBAZW5kLWNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQobGVmdCwgQHN0YXJ0LWNvbG9yLCBAbWlkLWNvbG9yIEBjb2xvci1zdG9wLCBAZW5kLWNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIEBzdGFydC1jb2xvciwgQG1pZC1jb2xvciBAY29sb3Itc3RvcCwgQGVuZC1jb2xvcik7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBmaWx0ZXI6IGUoJShcInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPSclZCcsIGVuZENvbG9yc3RyPSclZCcsIEdyYWRpZW50VHlwZT0xKVwiLGFyZ2IoQHN0YXJ0LWNvbG9yKSxhcmdiKEBlbmQtY29sb3IpKSk7IC8vIElFOSBhbmQgZG93biwgZ2V0cyBubyBjb2xvci1zdG9wIGF0IGFsbCBmb3IgcHJvcGVyIGZhbGxiYWNrXG4gIH1cbiAgLnZlcnRpY2FsLXRocmVlLWNvbG9ycyhAc3RhcnQtY29sb3I6ICMwMGIzZWU7IEBtaWQtY29sb3I6ICM3YTQzYjY7IEBjb2xvci1zdG9wOiA1MCU7IEBlbmQtY29sb3I6ICNjMzMyNWYpIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChAc3RhcnQtY29sb3IsIEBtaWQtY29sb3IgQGNvbG9yLXN0b3AsIEBlbmQtY29sb3IpO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudChAc3RhcnQtY29sb3IsIEBtaWQtY29sb3IgQGNvbG9yLXN0b3AsIEBlbmQtY29sb3IpO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudChAc3RhcnQtY29sb3IsIEBtaWQtY29sb3IgQGNvbG9yLXN0b3AsIEBlbmQtY29sb3IpO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgZmlsdGVyOiBlKCUoXCJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nJWQnLCBlbmRDb2xvcnN0cj0nJWQnLCBHcmFkaWVudFR5cGU9MClcIixhcmdiKEBzdGFydC1jb2xvciksYXJnYihAZW5kLWNvbG9yKSkpOyAvLyBJRTkgYW5kIGRvd24sIGdldHMgbm8gY29sb3Itc3RvcCBhdCBhbGwgZm9yIHByb3BlciBmYWxsYmFja1xuICB9XG4gIC5yYWRpYWwoQGlubmVyLWNvbG9yOiAjNTU1OyBAb3V0ZXItY29sb3I6ICMzMzMpIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LXJhZGlhbC1ncmFkaWVudChjaXJjbGUsIEBpbm5lci1jb2xvciwgQG91dGVyLWNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCBAaW5uZXItY29sb3IsIEBvdXRlci1jb2xvcik7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgfVxuICAuc3RyaXBlZChAY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsLjE1KTsgQGFuZ2xlOiA0NWRlZykge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KEBhbmdsZSwgQGNvbG9yIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsIEBjb2xvciA1MCUsIEBjb2xvciA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudChAYW5nbGUsIEBjb2xvciAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCBAY29sb3IgNTAlLCBAY29sb3IgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoQGFuZ2xlLCBAY29sb3IgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgQGNvbG9yIDUwJSwgQGNvbG9yIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCk7XG4gIH1cbn1cbiIsIi8vIFByb2dyZXNzIGJhcnNcblxuLnByb2dyZXNzLWJhci12YXJpYW50KEBjb2xvcikge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAY29sb3I7XG5cbiAgLy8gRGVwcmVjYXRlZCBwYXJlbnQgY2xhc3MgcmVxdWlyZW1lbnQgYXMgb2YgdjMuMi4wXG4gIC5wcm9ncmVzcy1zdHJpcGVkICYge1xuICAgICNncmFkaWVudCA+IC5zdHJpcGVkKCk7XG4gIH1cbn1cbiIsIi5tZWRpYSB7XG4gIC8vIFByb3BlciBzcGFjaW5nIGJldHdlZW4gaW5zdGFuY2VzIG9mIC5tZWRpYVxuICBtYXJnaW4tdG9wOiAxNXB4O1xuXG4gICY6Zmlyc3QtY2hpbGQge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cbn1cblxuLm1lZGlhLFxuLm1lZGlhLWJvZHkge1xuICB6b29tOiAxO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ubWVkaWEtYm9keSB7XG4gIHdpZHRoOiAxMDAwMHB4O1xufVxuXG4ubWVkaWEtb2JqZWN0IHtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgLy8gRml4IGNvbGxhcHNlIGluIHdlYmtpdCBmcm9tIG1heC13aWR0aDogMTAwJSBhbmQgZGlzcGxheTogdGFibGUtY2VsbC5cbiAgJi5pbWctdGh1bWJuYWlsIHtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gIH1cbn1cblxuLm1lZGlhLXJpZ2h0LFxuLm1lZGlhID4gLnB1bGwtcmlnaHQge1xuICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG59XG5cbi5tZWRpYS1sZWZ0LFxuLm1lZGlhID4gLnB1bGwtbGVmdCB7XG4gIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG59XG5cbi5tZWRpYS1sZWZ0LFxuLm1lZGlhLXJpZ2h0LFxuLm1lZGlhLWJvZHkge1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuXG4ubWVkaWEtbWlkZGxlIHtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLm1lZGlhLWJvdHRvbSB7XG4gIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG59XG5cbi8vIFJlc2V0IG1hcmdpbnMgb24gaGVhZGluZ3MgZm9yIHRpZ2h0ZXIgZGVmYXVsdCBzcGFjaW5nXG4ubWVkaWEtaGVhZGluZyB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbn1cblxuLy8gTWVkaWEgbGlzdCB2YXJpYXRpb25cbi8vXG4vLyBVbmRvIGRlZmF1bHQgdWwvb2wgc3R5bGVzXG4ubWVkaWEtbGlzdCB7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cbiIsIi8vXG4vLyBMaXN0IGdyb3Vwc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4vLyBCYXNlIGNsYXNzXG4vL1xuLy8gRWFzaWx5IHVzYWJsZSBvbiA8dWw+LCA8b2w+LCBvciA8ZGl2Pi5cblxuLmxpc3QtZ3JvdXAge1xuICAvLyBObyBuZWVkIHRvIHNldCBsaXN0LXN0eWxlOiBub25lOyBzaW5jZSAubGlzdC1ncm91cC1pdGVtIGlzIGJsb2NrIGxldmVsXG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIHBhZGRpbmctbGVmdDogMDsgLy8gcmVzZXQgcGFkZGluZyBiZWNhdXNlIHVsIGFuZCBvbFxufVxuXG5cbi8vIEluZGl2aWR1YWwgbGlzdCBpdGVtc1xuLy9cbi8vIFVzZSBvbiBgbGlgcyBvciBgZGl2YHMgd2l0aGluIHRoZSBgLmxpc3QtZ3JvdXBgIHBhcmVudC5cblxuLmxpc3QtZ3JvdXAtaXRlbSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDEwcHggMTVweDtcbiAgLy8gUGxhY2UgdGhlIGJvcmRlciBvbiB0aGUgbGlzdCBpdGVtcyBhbmQgbmVnYXRpdmUgbWFyZ2luIHVwIGZvciBiZXR0ZXIgc3R5bGluZ1xuICBtYXJnaW4tYm90dG9tOiAtMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAbGlzdC1ncm91cC1iZztcbiAgYm9yZGVyOiAxcHggc29saWQgQGxpc3QtZ3JvdXAtYm9yZGVyO1xuXG4gIC8vIFJvdW5kIHRoZSBmaXJzdCBhbmQgbGFzdCBpdGVtc1xuICAmOmZpcnN0LWNoaWxkIHtcbiAgICAuYm9yZGVyLXRvcC1yYWRpdXMoQGxpc3QtZ3JvdXAtYm9yZGVyLXJhZGl1cyk7XG4gIH1cbiAgJjpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIC5ib3JkZXItYm90dG9tLXJhZGl1cyhAbGlzdC1ncm91cC1ib3JkZXItcmFkaXVzKTtcbiAgfVxufVxuXG5cbi8vIEludGVyYWN0aXZlIGxpc3QgaXRlbXNcbi8vXG4vLyBVc2UgYW5jaG9yIG9yIGJ1dHRvbiBlbGVtZW50cyBpbnN0ZWFkIG9mIGBsaWBzIG9yIGBkaXZgcyB0byBjcmVhdGUgaW50ZXJhY3RpdmUgaXRlbXMuXG4vLyBJbmNsdWRlcyBhbiBleHRyYSBgLmFjdGl2ZWAgbW9kaWZpZXIgY2xhc3MgZm9yIHNob3dpbmcgc2VsZWN0ZWQgaXRlbXMuXG5cbmEubGlzdC1ncm91cC1pdGVtLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbSB7XG4gIGNvbG9yOiBAbGlzdC1ncm91cC1saW5rLWNvbG9yO1xuXG4gIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyB7XG4gICAgY29sb3I6IEBsaXN0LWdyb3VwLWxpbmstaGVhZGluZy1jb2xvcjtcbiAgfVxuXG4gIC8vIEhvdmVyIHN0YXRlXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjb2xvcjogQGxpc3QtZ3JvdXAtbGluay1ob3Zlci1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbGlzdC1ncm91cC1ob3Zlci1iZztcbiAgfVxufVxuXG5idXR0b24ubGlzdC1ncm91cC1pdGVtIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi5saXN0LWdyb3VwLWl0ZW0ge1xuICAvLyBEaXNhYmxlZCBzdGF0ZVxuICAmLmRpc2FibGVkLFxuICAmLmRpc2FibGVkOmhvdmVyLFxuICAmLmRpc2FibGVkOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbGlzdC1ncm91cC1kaXNhYmxlZC1iZztcbiAgICBjb2xvcjogQGxpc3QtZ3JvdXAtZGlzYWJsZWQtY29sb3I7XG4gICAgY3Vyc29yOiBAY3Vyc29yLWRpc2FibGVkO1xuXG4gICAgLy8gRm9yY2UgY29sb3IgdG8gaW5oZXJpdCBmb3IgY3VzdG9tIGNvbnRlbnRcbiAgICAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcge1xuICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgfVxuICAgIC5saXN0LWdyb3VwLWl0ZW0tdGV4dCB7XG4gICAgICBjb2xvcjogQGxpc3QtZ3JvdXAtZGlzYWJsZWQtdGV4dC1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAvLyBBY3RpdmUgY2xhc3Mgb24gaXRlbSBpdHNlbGYsIG5vdCBwYXJlbnRcbiAgJi5hY3RpdmUsXG4gICYuYWN0aXZlOmhvdmVyLFxuICAmLmFjdGl2ZTpmb2N1cyB7XG4gICAgei1pbmRleDogMjsgLy8gUGxhY2UgYWN0aXZlIGl0ZW1zIGFib3ZlIHRoZWlyIHNpYmxpbmdzIGZvciBwcm9wZXIgYm9yZGVyIHN0eWxpbmdcbiAgICBjb2xvcjogQGxpc3QtZ3JvdXAtYWN0aXZlLWNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBsaXN0LWdyb3VwLWFjdGl2ZS1iZztcbiAgICBib3JkZXItY29sb3I6IEBsaXN0LWdyb3VwLWFjdGl2ZS1ib3JkZXI7XG5cbiAgICAvLyBGb3JjZSBjb2xvciB0byBpbmhlcml0IGZvciBjdXN0b20gY29udGVudFxuICAgIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyxcbiAgICAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcgPiBzbWFsbCxcbiAgICAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcgPiAuc21hbGwge1xuICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgfVxuICAgIC5saXN0LWdyb3VwLWl0ZW0tdGV4dCB7XG4gICAgICBjb2xvcjogQGxpc3QtZ3JvdXAtYWN0aXZlLXRleHQtY29sb3I7XG4gICAgfVxuICB9XG59XG5cblxuLy8gQ29udGV4dHVhbCB2YXJpYW50c1xuLy9cbi8vIEFkZCBtb2RpZmllciBjbGFzc2VzIHRvIGNoYW5nZSB0ZXh0IGFuZCBiYWNrZ3JvdW5kIGNvbG9yIG9uIGluZGl2aWR1YWwgaXRlbXMuXG4vLyBPcmdhbml6YXRpb25hbGx5LCB0aGlzIG11c3QgY29tZSBhZnRlciB0aGUgYDpob3ZlcmAgc3RhdGVzLlxuXG4ubGlzdC1ncm91cC1pdGVtLXZhcmlhbnQoc3VjY2VzczsgQHN0YXRlLXN1Y2Nlc3MtYmc7IEBzdGF0ZS1zdWNjZXNzLXRleHQpO1xuLmxpc3QtZ3JvdXAtaXRlbS12YXJpYW50KGluZm87IEBzdGF0ZS1pbmZvLWJnOyBAc3RhdGUtaW5mby10ZXh0KTtcbi5saXN0LWdyb3VwLWl0ZW0tdmFyaWFudCh3YXJuaW5nOyBAc3RhdGUtd2FybmluZy1iZzsgQHN0YXRlLXdhcm5pbmctdGV4dCk7XG4ubGlzdC1ncm91cC1pdGVtLXZhcmlhbnQoZGFuZ2VyOyBAc3RhdGUtZGFuZ2VyLWJnOyBAc3RhdGUtZGFuZ2VyLXRleHQpO1xuXG5cbi8vIEN1c3RvbSBjb250ZW50IG9wdGlvbnNcbi8vXG4vLyBFeHRyYSBjbGFzc2VzIGZvciBjcmVhdGluZyB3ZWxsLWZvcm1hdHRlZCBjb250ZW50IHdpdGhpbiBgLmxpc3QtZ3JvdXAtaXRlbWBzLlxuXG4ubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG4ubGlzdC1ncm91cC1pdGVtLXRleHQge1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBsaW5lLWhlaWdodDogMS4zO1xufVxuIiwiLy8gTGlzdCBHcm91cHNcblxuLmxpc3QtZ3JvdXAtaXRlbS12YXJpYW50KEBzdGF0ZTsgQGJhY2tncm91bmQ7IEBjb2xvcikge1xuICAubGlzdC1ncm91cC1pdGVtLUB7c3RhdGV9IHtcbiAgICBjb2xvcjogQGNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBiYWNrZ3JvdW5kO1xuXG4gICAgYSYsXG4gICAgYnV0dG9uJiB7XG4gICAgICBjb2xvcjogQGNvbG9yO1xuXG4gICAgICAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcge1xuICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgIH1cblxuICAgICAgJjpob3ZlcixcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBjb2xvcjogQGNvbG9yO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oQGJhY2tncm91bmQsIDUlKTtcbiAgICAgIH1cbiAgICAgICYuYWN0aXZlLFxuICAgICAgJi5hY3RpdmU6aG92ZXIsXG4gICAgICAmLmFjdGl2ZTpmb2N1cyB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAY29sb3I7XG4gICAgICAgIGJvcmRlci1jb2xvcjogQGNvbG9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy9cbi8vIFBhbmVsc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4vLyBCYXNlIGNsYXNzXG4ucGFuZWwge1xuICBtYXJnaW4tYm90dG9tOiBAbGluZS1oZWlnaHQtY29tcHV0ZWQ7XG4gIGJhY2tncm91bmQtY29sb3I6IEBwYW5lbC1iZztcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IEBwYW5lbC1ib3JkZXItcmFkaXVzO1xuICAuYm94LXNoYWRvdygwIDFweCAxcHggcmdiYSgwLDAsMCwuMDUpKTtcbn1cblxuLy8gUGFuZWwgY29udGVudHNcbi5wYW5lbC1ib2R5IHtcbiAgcGFkZGluZzogQHBhbmVsLWJvZHktcGFkZGluZztcbiAgJjpleHRlbmQoLmNsZWFyZml4IGFsbCk7XG59XG5cbi8vIE9wdGlvbmFsIGhlYWRpbmdcbi5wYW5lbC1oZWFkaW5nIHtcbiAgcGFkZGluZzogQHBhbmVsLWhlYWRpbmctcGFkZGluZztcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAuYm9yZGVyLXRvcC1yYWRpdXMoKEBwYW5lbC1ib3JkZXItcmFkaXVzIC0gMSkpO1xuXG4gID4gLmRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGUge1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICB9XG59XG5cbi8vIFdpdGhpbiBoZWFkaW5nLCBzdHJpcCBhbnkgYGgqYCB0YWcgb2YgaXRzIGRlZmF1bHQgbWFyZ2lucyBmb3Igc3BhY2luZy5cbi5wYW5lbC10aXRsZSB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGZvbnQtc2l6ZTogY2VpbCgoQGZvbnQtc2l6ZS1iYXNlICogMS4xMjUpKTtcbiAgY29sb3I6IGluaGVyaXQ7XG5cbiAgPiBhLFxuICA+IHNtYWxsLFxuICA+IC5zbWFsbCxcbiAgPiBzbWFsbCA+IGEsXG4gID4gLnNtYWxsID4gYSB7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gIH1cbn1cblxuLy8gT3B0aW9uYWwgZm9vdGVyIChzdGF5cyBncmF5IGluIGV2ZXJ5IG1vZGlmaWVyIGNsYXNzKVxuLnBhbmVsLWZvb3RlciB7XG4gIHBhZGRpbmc6IEBwYW5lbC1mb290ZXItcGFkZGluZztcbiAgYmFja2dyb3VuZC1jb2xvcjogQHBhbmVsLWZvb3Rlci1iZztcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIEBwYW5lbC1pbm5lci1ib3JkZXI7XG4gIC5ib3JkZXItYm90dG9tLXJhZGl1cygoQHBhbmVsLWJvcmRlci1yYWRpdXMgLSAxKSk7XG59XG5cblxuLy8gTGlzdCBncm91cHMgaW4gcGFuZWxzXG4vL1xuLy8gQnkgZGVmYXVsdCwgc3BhY2Ugb3V0IGxpc3QgZ3JvdXAgY29udGVudCBmcm9tIHBhbmVsIGhlYWRpbmdzIHRvIGFjY291bnQgZm9yXG4vLyBhbnkga2luZCBvZiBjdXN0b20gY29udGVudCBiZXR3ZWVuIHRoZSB0d28uXG5cbi5wYW5lbCB7XG4gID4gLmxpc3QtZ3JvdXAsXG4gID4gLnBhbmVsLWNvbGxhcHNlID4gLmxpc3QtZ3JvdXAge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICAubGlzdC1ncm91cC1pdGVtIHtcbiAgICAgIGJvcmRlci13aWR0aDogMXB4IDA7XG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIH1cblxuICAgIC8vIEFkZCBib3JkZXIgdG9wIHJhZGl1cyBmb3IgZmlyc3Qgb25lXG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAubGlzdC1ncm91cC1pdGVtOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLXRvcDogMDtcbiAgICAgICAgLmJvcmRlci10b3AtcmFkaXVzKChAcGFuZWwtYm9yZGVyLXJhZGl1cyAtIDEpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBBZGQgYm9yZGVyIGJvdHRvbSByYWRpdXMgZm9yIGxhc3Qgb25lXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIC5saXN0LWdyb3VwLWl0ZW06bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIC5ib3JkZXItYm90dG9tLXJhZGl1cygoQHBhbmVsLWJvcmRlci1yYWRpdXMgLSAxKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gID4gLnBhbmVsLWhlYWRpbmcgKyAucGFuZWwtY29sbGFwc2UgPiAubGlzdC1ncm91cCB7XG4gICAgLmxpc3QtZ3JvdXAtaXRlbTpmaXJzdC1jaGlsZCB7XG4gICAgICAuYm9yZGVyLXRvcC1yYWRpdXMoMCk7XG4gICAgfVxuICB9XG59XG4vLyBDb2xsYXBzZSBzcGFjZSBiZXR3ZWVuIHdoZW4gdGhlcmUncyBubyBhZGRpdGlvbmFsIGNvbnRlbnQuXG4ucGFuZWwtaGVhZGluZyArIC5saXN0LWdyb3VwIHtcbiAgLmxpc3QtZ3JvdXAtaXRlbTpmaXJzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXRvcC13aWR0aDogMDtcbiAgfVxufVxuLmxpc3QtZ3JvdXAgKyAucGFuZWwtZm9vdGVyIHtcbiAgYm9yZGVyLXRvcC13aWR0aDogMDtcbn1cblxuLy8gVGFibGVzIGluIHBhbmVsc1xuLy9cbi8vIFBsYWNlIGEgbm9uLWJvcmRlcmVkIGAudGFibGVgIHdpdGhpbiBhIHBhbmVsIChub3Qgd2l0aGluIGEgYC5wYW5lbC1ib2R5YCkgYW5kXG4vLyB3YXRjaCBpdCBnbyBmdWxsIHdpZHRoLlxuXG4ucGFuZWwge1xuICA+IC50YWJsZSxcbiAgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZSxcbiAgPiAucGFuZWwtY29sbGFwc2UgPiAudGFibGUge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICBjYXB0aW9uIHtcbiAgICAgIHBhZGRpbmctbGVmdDogQHBhbmVsLWJvZHktcGFkZGluZztcbiAgICAgIHBhZGRpbmctcmlnaHQ6IEBwYW5lbC1ib2R5LXBhZGRpbmc7XG4gICAgfVxuICB9XG4gIC8vIEFkZCBib3JkZXIgdG9wIHJhZGl1cyBmb3IgZmlyc3Qgb25lXG4gID4gLnRhYmxlOmZpcnN0LWNoaWxkLFxuICA+IC50YWJsZS1yZXNwb25zaXZlOmZpcnN0LWNoaWxkID4gLnRhYmxlOmZpcnN0LWNoaWxkIHtcbiAgICAuYm9yZGVyLXRvcC1yYWRpdXMoKEBwYW5lbC1ib3JkZXItcmFkaXVzIC0gMSkpO1xuXG4gICAgPiB0aGVhZDpmaXJzdC1jaGlsZCxcbiAgICA+IHRib2R5OmZpcnN0LWNoaWxkIHtcbiAgICAgID4gdHI6Zmlyc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAoQHBhbmVsLWJvcmRlci1yYWRpdXMgLSAxKTtcbiAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IChAcGFuZWwtYm9yZGVyLXJhZGl1cyAtIDEpO1xuXG4gICAgICAgIHRkOmZpcnN0LWNoaWxkLFxuICAgICAgICB0aDpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogKEBwYW5lbC1ib3JkZXItcmFkaXVzIC0gMSk7XG4gICAgICAgIH1cbiAgICAgICAgdGQ6bGFzdC1jaGlsZCxcbiAgICAgICAgdGg6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IChAcGFuZWwtYm9yZGVyLXJhZGl1cyAtIDEpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC8vIEFkZCBib3JkZXIgYm90dG9tIHJhZGl1cyBmb3IgbGFzdCBvbmVcbiAgPiAudGFibGU6bGFzdC1jaGlsZCxcbiAgPiAudGFibGUtcmVzcG9uc2l2ZTpsYXN0LWNoaWxkID4gLnRhYmxlOmxhc3QtY2hpbGQge1xuICAgIC5ib3JkZXItYm90dG9tLXJhZGl1cygoQHBhbmVsLWJvcmRlci1yYWRpdXMgLSAxKSk7XG5cbiAgICA+IHRib2R5Omxhc3QtY2hpbGQsXG4gICAgPiB0Zm9vdDpsYXN0LWNoaWxkIHtcbiAgICAgID4gdHI6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IChAcGFuZWwtYm9yZGVyLXJhZGl1cyAtIDEpO1xuICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogKEBwYW5lbC1ib3JkZXItcmFkaXVzIC0gMSk7XG5cbiAgICAgICAgdGQ6Zmlyc3QtY2hpbGQsXG4gICAgICAgIHRoOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAoQHBhbmVsLWJvcmRlci1yYWRpdXMgLSAxKTtcbiAgICAgICAgfVxuICAgICAgICB0ZDpsYXN0LWNoaWxkLFxuICAgICAgICB0aDpsYXN0LWNoaWxkIHtcbiAgICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogKEBwYW5lbC1ib3JkZXItcmFkaXVzIC0gMSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgPiAucGFuZWwtYm9keSArIC50YWJsZSxcbiAgPiAucGFuZWwtYm9keSArIC50YWJsZS1yZXNwb25zaXZlLFxuICA+IC50YWJsZSArIC5wYW5lbC1ib2R5LFxuICA+IC50YWJsZS1yZXNwb25zaXZlICsgLnBhbmVsLWJvZHkge1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCBAdGFibGUtYm9yZGVyLWNvbG9yO1xuICB9XG4gID4gLnRhYmxlID4gdGJvZHk6Zmlyc3QtY2hpbGQgPiB0cjpmaXJzdC1jaGlsZCB0aCxcbiAgPiAudGFibGUgPiB0Ym9keTpmaXJzdC1jaGlsZCA+IHRyOmZpcnN0LWNoaWxkIHRkIHtcbiAgICBib3JkZXItdG9wOiAwO1xuICB9XG4gID4gLnRhYmxlLWJvcmRlcmVkLFxuICA+IC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkIHtcbiAgICBib3JkZXI6IDA7XG4gICAgPiB0aGVhZCxcbiAgICA+IHRib2R5LFxuICAgID4gdGZvb3Qge1xuICAgICAgPiB0ciB7XG4gICAgICAgID4gdGg6Zmlyc3QtY2hpbGQsXG4gICAgICAgID4gdGQ6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgIGJvcmRlci1sZWZ0OiAwO1xuICAgICAgICB9XG4gICAgICAgID4gdGg6bGFzdC1jaGlsZCxcbiAgICAgICAgPiB0ZDpsYXN0LWNoaWxkIHtcbiAgICAgICAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgPiB0aGVhZCxcbiAgICA+IHRib2R5IHtcbiAgICAgID4gdHI6Zmlyc3QtY2hpbGQge1xuICAgICAgICA+IHRkLFxuICAgICAgICA+IHRoIHtcbiAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgID4gdGJvZHksXG4gICAgPiB0Zm9vdCB7XG4gICAgICA+IHRyOmxhc3QtY2hpbGQge1xuICAgICAgICA+IHRkLFxuICAgICAgICA+IHRoIHtcbiAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gID4gLnRhYmxlLXJlc3BvbnNpdmUge1xuICAgIGJvcmRlcjogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cblxuLy8gQ29sbGFwc2libGUgcGFuZWxzIChha2EsIGFjY29yZGlvbilcbi8vXG4vLyBXcmFwIGEgc2VyaWVzIG9mIHBhbmVscyBpbiBgLnBhbmVsLWdyb3VwYCB0byB0dXJuIHRoZW0gaW50byBhbiBhY2NvcmRpb24gd2l0aFxuLy8gdGhlIGhlbHAgb2Ygb3VyIGNvbGxhcHNlIEphdmFTY3JpcHQgcGx1Z2luLlxuXG4ucGFuZWwtZ3JvdXAge1xuICBtYXJnaW4tYm90dG9tOiBAbGluZS1oZWlnaHQtY29tcHV0ZWQ7XG5cbiAgLy8gVGlnaHRlbiB1cCBtYXJnaW4gc28gaXQncyBvbmx5IGJldHdlZW4gcGFuZWxzXG4gIC5wYW5lbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBib3JkZXItcmFkaXVzOiBAcGFuZWwtYm9yZGVyLXJhZGl1cztcblxuICAgICsgLnBhbmVsIHtcbiAgICAgIG1hcmdpbi10b3A6IDVweDtcbiAgICB9XG4gIH1cblxuICAucGFuZWwtaGVhZGluZyB7XG4gICAgYm9yZGVyLWJvdHRvbTogMDtcblxuICAgICsgLnBhbmVsLWNvbGxhcHNlID4gLnBhbmVsLWJvZHksXG4gICAgKyAucGFuZWwtY29sbGFwc2UgPiAubGlzdC1ncm91cCB7XG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgQHBhbmVsLWlubmVyLWJvcmRlcjtcbiAgICB9XG4gIH1cblxuICAucGFuZWwtZm9vdGVyIHtcbiAgICBib3JkZXItdG9wOiAwO1xuICAgICsgLnBhbmVsLWNvbGxhcHNlIC5wYW5lbC1ib2R5IHtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBAcGFuZWwtaW5uZXItYm9yZGVyO1xuICAgIH1cbiAgfVxufVxuXG5cbi8vIENvbnRleHR1YWwgdmFyaWF0aW9uc1xuLnBhbmVsLWRlZmF1bHQge1xuICAucGFuZWwtdmFyaWFudChAcGFuZWwtZGVmYXVsdC1ib3JkZXI7IEBwYW5lbC1kZWZhdWx0LXRleHQ7IEBwYW5lbC1kZWZhdWx0LWhlYWRpbmctYmc7IEBwYW5lbC1kZWZhdWx0LWJvcmRlcik7XG59XG4ucGFuZWwtcHJpbWFyeSB7XG4gIC5wYW5lbC12YXJpYW50KEBwYW5lbC1wcmltYXJ5LWJvcmRlcjsgQHBhbmVsLXByaW1hcnktdGV4dDsgQHBhbmVsLXByaW1hcnktaGVhZGluZy1iZzsgQHBhbmVsLXByaW1hcnktYm9yZGVyKTtcbn1cbi5wYW5lbC1zdWNjZXNzIHtcbiAgLnBhbmVsLXZhcmlhbnQoQHBhbmVsLXN1Y2Nlc3MtYm9yZGVyOyBAcGFuZWwtc3VjY2Vzcy10ZXh0OyBAcGFuZWwtc3VjY2Vzcy1oZWFkaW5nLWJnOyBAcGFuZWwtc3VjY2Vzcy1ib3JkZXIpO1xufVxuLnBhbmVsLWluZm8ge1xuICAucGFuZWwtdmFyaWFudChAcGFuZWwtaW5mby1ib3JkZXI7IEBwYW5lbC1pbmZvLXRleHQ7IEBwYW5lbC1pbmZvLWhlYWRpbmctYmc7IEBwYW5lbC1pbmZvLWJvcmRlcik7XG59XG4ucGFuZWwtd2FybmluZyB7XG4gIC5wYW5lbC12YXJpYW50KEBwYW5lbC13YXJuaW5nLWJvcmRlcjsgQHBhbmVsLXdhcm5pbmctdGV4dDsgQHBhbmVsLXdhcm5pbmctaGVhZGluZy1iZzsgQHBhbmVsLXdhcm5pbmctYm9yZGVyKTtcbn1cbi5wYW5lbC1kYW5nZXIge1xuICAucGFuZWwtdmFyaWFudChAcGFuZWwtZGFuZ2VyLWJvcmRlcjsgQHBhbmVsLWRhbmdlci10ZXh0OyBAcGFuZWwtZGFuZ2VyLWhlYWRpbmctYmc7IEBwYW5lbC1kYW5nZXItYm9yZGVyKTtcbn1cbiIsIi8vIFBhbmVsc1xuXG4ucGFuZWwtdmFyaWFudChAYm9yZGVyOyBAaGVhZGluZy10ZXh0LWNvbG9yOyBAaGVhZGluZy1iZy1jb2xvcjsgQGhlYWRpbmctYm9yZGVyKSB7XG4gIGJvcmRlci1jb2xvcjogQGJvcmRlcjtcblxuICAmID4gLnBhbmVsLWhlYWRpbmcge1xuICAgIGNvbG9yOiBAaGVhZGluZy10ZXh0LWNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBoZWFkaW5nLWJnLWNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogQGhlYWRpbmctYm9yZGVyO1xuXG4gICAgKyAucGFuZWwtY29sbGFwc2UgPiAucGFuZWwtYm9keSB7XG4gICAgICBib3JkZXItdG9wLWNvbG9yOiBAYm9yZGVyO1xuICAgIH1cbiAgICAuYmFkZ2Uge1xuICAgICAgY29sb3I6IEBoZWFkaW5nLWJnLWNvbG9yO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGhlYWRpbmctdGV4dC1jb2xvcjtcbiAgICB9XG4gIH1cbiAgJiA+IC5wYW5lbC1mb290ZXIge1xuICAgICsgLnBhbmVsLWNvbGxhcHNlID4gLnBhbmVsLWJvZHkge1xuICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogQGJvcmRlcjtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEVtYmVkcyByZXNwb25zaXZlXG4vL1xuLy8gQ3JlZGl0OiBOaWNvbGFzIEdhbGxhZ2hlciBhbmQgU1VJVCBDU1MuXG5cbi5lbWJlZC1yZXNwb25zaXZlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAwO1xuICBwYWRkaW5nOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gIC5lbWJlZC1yZXNwb25zaXZlLWl0ZW0sXG4gIGlmcmFtZSxcbiAgZW1iZWQsXG4gIG9iamVjdCxcbiAgdmlkZW8ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBib3R0b206IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlcjogMDtcbiAgfVxufVxuXG4vLyBNb2RpZmllciBjbGFzcyBmb3IgMTY6OSBhc3BlY3QgcmF0aW9cbi5lbWJlZC1yZXNwb25zaXZlLTE2Ynk5IHtcbiAgcGFkZGluZy1ib3R0b206IDU2LjI1JTtcbn1cblxuLy8gTW9kaWZpZXIgY2xhc3MgZm9yIDQ6MyBhc3BlY3QgcmF0aW9cbi5lbWJlZC1yZXNwb25zaXZlLTRieTMge1xuICBwYWRkaW5nLWJvdHRvbTogNzUlO1xufVxuIiwiLy9cbi8vIFdlbGxzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi8vIEJhc2UgY2xhc3Ncbi53ZWxsIHtcbiAgbWluLWhlaWdodDogMjBweDtcbiAgcGFkZGluZzogMTlweDtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogQHdlbGwtYmc7XG4gIGJvcmRlcjogMXB4IHNvbGlkIEB3ZWxsLWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogQGJvcmRlci1yYWRpdXMtYmFzZTtcbiAgLmJveC1zaGFkb3coaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwwLDAsLjA1KSk7XG4gIGJsb2NrcXVvdGUge1xuICAgIGJvcmRlci1jb2xvcjogI2RkZDtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMCwwLDAsLjE1KTtcbiAgfVxufVxuXG4vLyBTaXplc1xuLndlbGwtbGcge1xuICBwYWRkaW5nOiAyNHB4O1xuICBib3JkZXItcmFkaXVzOiBAYm9yZGVyLXJhZGl1cy1sYXJnZTtcbn1cbi53ZWxsLXNtIHtcbiAgcGFkZGluZzogOXB4O1xuICBib3JkZXItcmFkaXVzOiBAYm9yZGVyLXJhZGl1cy1zbWFsbDtcbn1cbiIsIi8vXG4vLyBDbG9zZSBpY29uc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4uY2xvc2Uge1xuICBmbG9hdDogcmlnaHQ7XG4gIGZvbnQtc2l6ZTogKEBmb250LXNpemUtYmFzZSAqIDEuNSk7XG4gIGZvbnQtd2VpZ2h0OiBAY2xvc2UtZm9udC13ZWlnaHQ7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogQGNsb3NlLWNvbG9yO1xuICB0ZXh0LXNoYWRvdzogQGNsb3NlLXRleHQtc2hhZG93O1xuICAub3BhY2l0eSguMik7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgY29sb3I6IEBjbG9zZS1jb2xvcjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIC5vcGFjaXR5KC41KTtcbiAgfVxuXG4gIC8vIEFkZGl0aW9uYWwgcHJvcGVydGllcyBmb3IgYnV0dG9uIHZlcnNpb25cbiAgLy8gaU9TIHJlcXVpcmVzIHRoZSBidXR0b24gZWxlbWVudCBpbnN0ZWFkIG9mIGFuIGFuY2hvciB0YWcuXG4gIC8vIElmIHlvdSB3YW50IHRoZSBhbmNob3IgdmVyc2lvbiwgaXQgcmVxdWlyZXMgYGhyZWY9XCIjXCJgLlxuICAvLyBTZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvRXZlbnRzL2NsaWNrI1NhZmFyaV9Nb2JpbGVcbiAgYnV0dG9uJiB7XG4gICAgcGFkZGluZzogMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiAwO1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgfVxufVxuIiwiLy9cbi8vIE1vZGFsc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gLm1vZGFsLW9wZW4gICAgICAtIGJvZHkgY2xhc3MgZm9yIGtpbGxpbmcgdGhlIHNjcm9sbFxuLy8gLm1vZGFsICAgICAgICAgICAtIGNvbnRhaW5lciB0byBzY3JvbGwgd2l0aGluXG4vLyAubW9kYWwtZGlhbG9nICAgIC0gcG9zaXRpb25pbmcgc2hlbGwgZm9yIHRoZSBhY3R1YWwgbW9kYWxcbi8vIC5tb2RhbC1jb250ZW50ICAgLSBhY3R1YWwgbW9kYWwgdy8gYmcgYW5kIGNvcm5lcnMgYW5kIHNoaXRcblxuLy8gS2lsbCB0aGUgc2Nyb2xsIG9uIHRoZSBib2R5XG4ubW9kYWwtb3BlbiB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8vIENvbnRhaW5lciB0aGF0IHRoZSBtb2RhbCBzY3JvbGxzIHdpdGhpblxuLm1vZGFsIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IEB6aW5kZXgtbW9kYWw7XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcblxuICAvLyBQcmV2ZW50IENocm9tZSBvbiBXaW5kb3dzIGZyb20gYWRkaW5nIGEgZm9jdXMgb3V0bGluZS4gRm9yIGRldGFpbHMsIHNlZVxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvcHVsbC8xMDk1MS5cbiAgb3V0bGluZTogMDtcblxuICAvLyBXaGVuIGZhZGluZyBpbiB0aGUgbW9kYWwsIGFuaW1hdGUgaXQgdG8gc2xpZGUgZG93blxuICAmLmZhZGUgLm1vZGFsLWRpYWxvZyB7XG4gICAgLnRyYW5zbGF0ZSgwLCAtMjUlKTtcbiAgICAudHJhbnNpdGlvbi10cmFuc2Zvcm0oflwiMC4zcyBlYXNlLW91dFwiKTtcbiAgfVxuICAmLmluIC5tb2RhbC1kaWFsb2cgeyAudHJhbnNsYXRlKDAsIDApIH1cbn1cbi5tb2RhbC1vcGVuIC5tb2RhbCB7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteTogYXV0bztcbn1cblxuLy8gU2hlbGwgZGl2IHRvIHBvc2l0aW9uIHRoZSBtb2RhbCB3aXRoIGJvdHRvbSBwYWRkaW5nXG4ubW9kYWwtZGlhbG9nIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogYXV0bztcbiAgbWFyZ2luOiAxMHB4O1xufVxuXG4vLyBBY3R1YWwgbW9kYWxcbi5tb2RhbC1jb250ZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAbW9kYWwtY29udGVudC1iZztcbiAgYm9yZGVyOiAxcHggc29saWQgQG1vZGFsLWNvbnRlbnQtZmFsbGJhY2stYm9yZGVyLWNvbG9yOyAvL29sZCBicm93c2VycyBmYWxsYmFjayAoaWU4IGV0YylcbiAgYm9yZGVyOiAxcHggc29saWQgQG1vZGFsLWNvbnRlbnQtYm9yZGVyLWNvbG9yO1xuICBib3JkZXItcmFkaXVzOiBAYm9yZGVyLXJhZGl1cy1sYXJnZTtcbiAgLmJveC1zaGFkb3coMCAzcHggOXB4IHJnYmEoMCwwLDAsLjUpKTtcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgLy8gUmVtb3ZlIGZvY3VzIG91dGxpbmUgZnJvbSBvcGVuZWQgbW9kYWxcbiAgb3V0bGluZTogMDtcbn1cblxuLy8gTW9kYWwgYmFja2dyb3VuZFxuLm1vZGFsLWJhY2tkcm9wIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IEB6aW5kZXgtbW9kYWwtYmFja2dyb3VuZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogQG1vZGFsLWJhY2tkcm9wLWJnO1xuICAvLyBGYWRlIGZvciBiYWNrZHJvcFxuICAmLmZhZGUgeyAub3BhY2l0eSgwKTsgfVxuICAmLmluIHsgLm9wYWNpdHkoQG1vZGFsLWJhY2tkcm9wLW9wYWNpdHkpOyB9XG59XG5cbi8vIE1vZGFsIGhlYWRlclxuLy8gVG9wIHNlY3Rpb24gb2YgdGhlIG1vZGFsIHcvIHRpdGxlIGFuZCBkaXNtaXNzXG4ubW9kYWwtaGVhZGVyIHtcbiAgcGFkZGluZzogQG1vZGFsLXRpdGxlLXBhZGRpbmc7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBAbW9kYWwtaGVhZGVyLWJvcmRlci1jb2xvcjtcbiAgJjpleHRlbmQoLmNsZWFyZml4IGFsbCk7XG59XG4vLyBDbG9zZSBpY29uXG4ubW9kYWwtaGVhZGVyIC5jbG9zZSB7XG4gIG1hcmdpbi10b3A6IC0ycHg7XG59XG5cbi8vIFRpdGxlIHRleHQgd2l0aGluIGhlYWRlclxuLm1vZGFsLXRpdGxlIHtcbiAgbWFyZ2luOiAwO1xuICBsaW5lLWhlaWdodDogQG1vZGFsLXRpdGxlLWxpbmUtaGVpZ2h0O1xufVxuXG4vLyBNb2RhbCBib2R5XG4vLyBXaGVyZSBhbGwgbW9kYWwgY29udGVudCByZXNpZGVzIChzaWJsaW5nIG9mIC5tb2RhbC1oZWFkZXIgYW5kIC5tb2RhbC1mb290ZXIpXG4ubW9kYWwtYm9keSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogQG1vZGFsLWlubmVyLXBhZGRpbmc7XG59XG5cbi8vIEZvb3RlciAoZm9yIGFjdGlvbnMpXG4ubW9kYWwtZm9vdGVyIHtcbiAgcGFkZGluZzogQG1vZGFsLWlubmVyLXBhZGRpbmc7XG4gIHRleHQtYWxpZ246IHJpZ2h0OyAvLyByaWdodCBhbGlnbiBidXR0b25zXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCBAbW9kYWwtZm9vdGVyLWJvcmRlci1jb2xvcjtcbiAgJjpleHRlbmQoLmNsZWFyZml4IGFsbCk7IC8vIGNsZWFyIGl0IGluIGNhc2UgZm9sa3MgdXNlIC5wdWxsLSogY2xhc3NlcyBvbiBidXR0b25zXG5cbiAgLy8gUHJvcGVybHkgc3BhY2Ugb3V0IGJ1dHRvbnNcbiAgLmJ0biArIC5idG4ge1xuICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgLy8gYWNjb3VudCBmb3IgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB3aGljaCBnZXRzIHRoZSBib3R0b20gbWFyZ2luIGxpa2UgYWxsIG90aGVyIGlucHV0c1xuICB9XG4gIC8vIGJ1dCBvdmVycmlkZSB0aGF0IGZvciBidXR0b24gZ3JvdXBzXG4gIC5idG4tZ3JvdXAgLmJ0biArIC5idG4ge1xuICAgIG1hcmdpbi1sZWZ0OiAtMXB4O1xuICB9XG4gIC8vIGFuZCBvdmVycmlkZSBpdCBmb3IgYmxvY2sgYnV0dG9ucyBhcyB3ZWxsXG4gIC5idG4tYmxvY2sgKyAuYnRuLWJsb2NrIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxufVxuXG4vLyBNZWFzdXJlIHNjcm9sbGJhciB3aWR0aCBmb3IgcGFkZGluZyBib2R5IGR1cmluZyBtb2RhbCBzaG93L2hpZGVcbi5tb2RhbC1zY3JvbGxiYXItbWVhc3VyZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtOTk5OXB4O1xuICB3aWR0aDogNTBweDtcbiAgaGVpZ2h0OiA1MHB4O1xuICBvdmVyZmxvdzogc2Nyb2xsO1xufVxuXG4vLyBTY2FsZSB1cCB0aGUgbW9kYWxcbkBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLXNtLW1pbikge1xuICAvLyBBdXRvbWF0aWNhbGx5IHNldCBtb2RhbCdzIHdpZHRoIGZvciBsYXJnZXIgdmlld3BvcnRzXG4gIC5tb2RhbC1kaWFsb2cge1xuICAgIHdpZHRoOiBAbW9kYWwtbWQ7XG4gICAgbWFyZ2luOiAzMHB4IGF1dG87XG4gIH1cbiAgLm1vZGFsLWNvbnRlbnQge1xuICAgIC5ib3gtc2hhZG93KDAgNXB4IDE1cHggcmdiYSgwLDAsMCwuNSkpO1xuICB9XG5cbiAgLy8gTW9kYWwgc2l6ZXNcbiAgLm1vZGFsLXNtIHsgd2lkdGg6IEBtb2RhbC1zbTsgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1tZC1taW4pIHtcbiAgLm1vZGFsLWxnIHsgd2lkdGg6IEBtb2RhbC1sZzsgfVxufVxuIiwiLy9cbi8vIFRvb2x0aXBzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi8vIEJhc2UgY2xhc3Ncbi50b29sdGlwIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiBAemluZGV4LXRvb2x0aXA7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICAvLyBPdXIgcGFyZW50IGVsZW1lbnQgY2FuIGJlIGFyYml0cmFyeSBzaW5jZSB0b29sdGlwcyBhcmUgYnkgZGVmYXVsdCBpbnNlcnRlZCBhcyBhIHNpYmxpbmcgb2YgdGhlaXIgdGFyZ2V0IGVsZW1lbnQuXG4gIC8vIFNvIHJlc2V0IG91ciBmb250IGFuZCB0ZXh0IHByb3BlcnRpZXMgdG8gYXZvaWQgaW5oZXJpdGluZyB3ZWlyZCB2YWx1ZXMuXG4gIC5yZXNldC10ZXh0KCk7XG4gIGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS1zbWFsbDtcblxuICAub3BhY2l0eSgwKTtcblxuICAmLmluICAgICB7IC5vcGFjaXR5KEB0b29sdGlwLW9wYWNpdHkpOyB9XG4gICYudG9wICAgIHsgbWFyZ2luLXRvcDogIC0zcHg7IHBhZGRpbmc6IEB0b29sdGlwLWFycm93LXdpZHRoIDA7IH1cbiAgJi5yaWdodCAgeyBtYXJnaW4tbGVmdDogIDNweDsgcGFkZGluZzogMCBAdG9vbHRpcC1hcnJvdy13aWR0aDsgfVxuICAmLmJvdHRvbSB7IG1hcmdpbi10b3A6ICAgM3B4OyBwYWRkaW5nOiBAdG9vbHRpcC1hcnJvdy13aWR0aCAwOyB9XG4gICYubGVmdCAgIHsgbWFyZ2luLWxlZnQ6IC0zcHg7IHBhZGRpbmc6IDAgQHRvb2x0aXAtYXJyb3ctd2lkdGg7IH1cbn1cblxuLy8gV3JhcHBlciBmb3IgdGhlIHRvb2x0aXAgY29udGVudFxuLnRvb2x0aXAtaW5uZXIge1xuICBtYXgtd2lkdGg6IEB0b29sdGlwLW1heC13aWR0aDtcbiAgcGFkZGluZzogM3B4IDhweDtcbiAgY29sb3I6IEB0b29sdGlwLWNvbG9yO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6IEB0b29sdGlwLWJnO1xuICBib3JkZXItcmFkaXVzOiBAYm9yZGVyLXJhZGl1cy1iYXNlO1xufVxuXG4vLyBBcnJvd3Ncbi50b29sdGlwLWFycm93IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xufVxuLy8gTm90ZTogRGVwcmVjYXRlZCAudG9wLWxlZnQsIC50b3AtcmlnaHQsIC5ib3R0b20tbGVmdCwgYW5kIC5ib3R0b20tcmlnaHQgYXMgb2YgdjMuMy4xXG4udG9vbHRpcCB7XG4gICYudG9wIC50b29sdGlwLWFycm93IHtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogNTAlO1xuICAgIG1hcmdpbi1sZWZ0OiAtQHRvb2x0aXAtYXJyb3ctd2lkdGg7XG4gICAgYm9yZGVyLXdpZHRoOiBAdG9vbHRpcC1hcnJvdy13aWR0aCBAdG9vbHRpcC1hcnJvdy13aWR0aCAwO1xuICAgIGJvcmRlci10b3AtY29sb3I6IEB0b29sdGlwLWFycm93LWNvbG9yO1xuICB9XG4gICYudG9wLWxlZnQgLnRvb2x0aXAtYXJyb3cge1xuICAgIGJvdHRvbTogMDtcbiAgICByaWdodDogQHRvb2x0aXAtYXJyb3ctd2lkdGg7XG4gICAgbWFyZ2luLWJvdHRvbTogLUB0b29sdGlwLWFycm93LXdpZHRoO1xuICAgIGJvcmRlci13aWR0aDogQHRvb2x0aXAtYXJyb3ctd2lkdGggQHRvb2x0aXAtYXJyb3ctd2lkdGggMDtcbiAgICBib3JkZXItdG9wLWNvbG9yOiBAdG9vbHRpcC1hcnJvdy1jb2xvcjtcbiAgfVxuICAmLnRvcC1yaWdodCAudG9vbHRpcC1hcnJvdyB7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IEB0b29sdGlwLWFycm93LXdpZHRoO1xuICAgIG1hcmdpbi1ib3R0b206IC1AdG9vbHRpcC1hcnJvdy13aWR0aDtcbiAgICBib3JkZXItd2lkdGg6IEB0b29sdGlwLWFycm93LXdpZHRoIEB0b29sdGlwLWFycm93LXdpZHRoIDA7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogQHRvb2x0aXAtYXJyb3ctY29sb3I7XG4gIH1cbiAgJi5yaWdodCAudG9vbHRpcC1hcnJvdyB7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogMDtcbiAgICBtYXJnaW4tdG9wOiAtQHRvb2x0aXAtYXJyb3ctd2lkdGg7XG4gICAgYm9yZGVyLXdpZHRoOiBAdG9vbHRpcC1hcnJvdy13aWR0aCBAdG9vbHRpcC1hcnJvdy13aWR0aCBAdG9vbHRpcC1hcnJvdy13aWR0aCAwO1xuICAgIGJvcmRlci1yaWdodC1jb2xvcjogQHRvb2x0aXAtYXJyb3ctY29sb3I7XG4gIH1cbiAgJi5sZWZ0IC50b29sdGlwLWFycm93IHtcbiAgICB0b3A6IDUwJTtcbiAgICByaWdodDogMDtcbiAgICBtYXJnaW4tdG9wOiAtQHRvb2x0aXAtYXJyb3ctd2lkdGg7XG4gICAgYm9yZGVyLXdpZHRoOiBAdG9vbHRpcC1hcnJvdy13aWR0aCAwIEB0b29sdGlwLWFycm93LXdpZHRoIEB0b29sdGlwLWFycm93LXdpZHRoO1xuICAgIGJvcmRlci1sZWZ0LWNvbG9yOiBAdG9vbHRpcC1hcnJvdy1jb2xvcjtcbiAgfVxuICAmLmJvdHRvbSAudG9vbHRpcC1hcnJvdyB7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDUwJTtcbiAgICBtYXJnaW4tbGVmdDogLUB0b29sdGlwLWFycm93LXdpZHRoO1xuICAgIGJvcmRlci13aWR0aDogMCBAdG9vbHRpcC1hcnJvdy13aWR0aCBAdG9vbHRpcC1hcnJvdy13aWR0aDtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiBAdG9vbHRpcC1hcnJvdy1jb2xvcjtcbiAgfVxuICAmLmJvdHRvbS1sZWZ0IC50b29sdGlwLWFycm93IHtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IEB0b29sdGlwLWFycm93LXdpZHRoO1xuICAgIG1hcmdpbi10b3A6IC1AdG9vbHRpcC1hcnJvdy13aWR0aDtcbiAgICBib3JkZXItd2lkdGg6IDAgQHRvb2x0aXAtYXJyb3ctd2lkdGggQHRvb2x0aXAtYXJyb3ctd2lkdGg7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogQHRvb2x0aXAtYXJyb3ctY29sb3I7XG4gIH1cbiAgJi5ib3R0b20tcmlnaHQgLnRvb2x0aXAtYXJyb3cge1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiBAdG9vbHRpcC1hcnJvdy13aWR0aDtcbiAgICBtYXJnaW4tdG9wOiAtQHRvb2x0aXAtYXJyb3ctd2lkdGg7XG4gICAgYm9yZGVyLXdpZHRoOiAwIEB0b29sdGlwLWFycm93LXdpZHRoIEB0b29sdGlwLWFycm93LXdpZHRoO1xuICAgIGJvcmRlci1ib3R0b20tY29sb3I6IEB0b29sdGlwLWFycm93LWNvbG9yO1xuICB9XG59XG4iLCIucmVzZXQtdGV4dCgpIHtcbiAgZm9udC1mYW1pbHk6IEBmb250LWZhbWlseS1iYXNlO1xuICAvLyBXZSBkZWxpYmVyYXRlbHkgZG8gTk9UIHJlc2V0IGZvbnQtc2l6ZS5cbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICBsaW5lLWJyZWFrOiBhdXRvO1xuICBsaW5lLWhlaWdodDogQGxpbmUtaGVpZ2h0LWJhc2U7XG4gIHRleHQtYWxpZ246IGxlZnQ7IC8vIEZhbGxiYWNrIGZvciB3aGVyZSBgc3RhcnRgIGlzIG5vdCBzdXBwb3J0ZWRcbiAgdGV4dC1hbGlnbjogc3RhcnQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICB3b3JkLWJyZWFrOiBub3JtYWw7XG4gIHdvcmQtc3BhY2luZzogbm9ybWFsO1xuICB3b3JkLXdyYXA6IG5vcm1hbDtcbn1cbiIsIi8vXG4vLyBQb3BvdmVyc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4ucG9wb3ZlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiBAemluZGV4LXBvcG92ZXI7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIG1heC13aWR0aDogQHBvcG92ZXItbWF4LXdpZHRoO1xuICBwYWRkaW5nOiAxcHg7XG4gIC8vIE91ciBwYXJlbnQgZWxlbWVudCBjYW4gYmUgYXJiaXRyYXJ5IHNpbmNlIHBvcG92ZXJzIGFyZSBieSBkZWZhdWx0IGluc2VydGVkIGFzIGEgc2libGluZyBvZiB0aGVpciB0YXJnZXQgZWxlbWVudC5cbiAgLy8gU28gcmVzZXQgb3VyIGZvbnQgYW5kIHRleHQgcHJvcGVydGllcyB0byBhdm9pZCBpbmhlcml0aW5nIHdlaXJkIHZhbHVlcy5cbiAgLnJlc2V0LXRleHQoKTtcbiAgZm9udC1zaXplOiBAZm9udC1zaXplLWJhc2U7XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogQHBvcG92ZXItYmc7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gIGJvcmRlcjogMXB4IHNvbGlkIEBwb3BvdmVyLWZhbGxiYWNrLWJvcmRlci1jb2xvcjtcbiAgYm9yZGVyOiAxcHggc29saWQgQHBvcG92ZXItYm9yZGVyLWNvbG9yO1xuICBib3JkZXItcmFkaXVzOiBAYm9yZGVyLXJhZGl1cy1sYXJnZTtcbiAgLmJveC1zaGFkb3coMCA1cHggMTBweCByZ2JhKDAsMCwwLC4yKSk7XG5cbiAgLy8gT2Zmc2V0IHRoZSBwb3BvdmVyIHRvIGFjY291bnQgZm9yIHRoZSBwb3BvdmVyIGFycm93XG4gICYudG9wICAgICB7IG1hcmdpbi10b3A6IC1AcG9wb3Zlci1hcnJvdy13aWR0aDsgfVxuICAmLnJpZ2h0ICAgeyBtYXJnaW4tbGVmdDogQHBvcG92ZXItYXJyb3ctd2lkdGg7IH1cbiAgJi5ib3R0b20gIHsgbWFyZ2luLXRvcDogQHBvcG92ZXItYXJyb3ctd2lkdGg7IH1cbiAgJi5sZWZ0ICAgIHsgbWFyZ2luLWxlZnQ6IC1AcG9wb3Zlci1hcnJvdy13aWR0aDsgfVxufVxuXG4ucG9wb3Zlci10aXRsZSB7XG4gIG1hcmdpbjogMDsgLy8gcmVzZXQgaGVhZGluZyBtYXJnaW5cbiAgcGFkZGluZzogOHB4IDE0cHg7XG4gIGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS1iYXNlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAcG9wb3Zlci10aXRsZS1iZztcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGRhcmtlbihAcG9wb3Zlci10aXRsZS1iZywgNSUpO1xuICBib3JkZXItcmFkaXVzOiAoQGJvcmRlci1yYWRpdXMtbGFyZ2UgLSAxKSAoQGJvcmRlci1yYWRpdXMtbGFyZ2UgLSAxKSAwIDA7XG59XG5cbi5wb3BvdmVyLWNvbnRlbnQge1xuICBwYWRkaW5nOiA5cHggMTRweDtcbn1cblxuLy8gQXJyb3dzXG4vL1xuLy8gLmFycm93IGlzIG91dGVyLCAuYXJyb3c6YWZ0ZXIgaXMgaW5uZXJcblxuLnBvcG92ZXIgPiAuYXJyb3cge1xuICAmLFxuICAmOmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgfVxufVxuLnBvcG92ZXIgPiAuYXJyb3cge1xuICBib3JkZXItd2lkdGg6IEBwb3BvdmVyLWFycm93LW91dGVyLXdpZHRoO1xufVxuLnBvcG92ZXIgPiAuYXJyb3c6YWZ0ZXIge1xuICBib3JkZXItd2lkdGg6IEBwb3BvdmVyLWFycm93LXdpZHRoO1xuICBjb250ZW50OiBcIlwiO1xufVxuXG4ucG9wb3ZlciB7XG4gICYudG9wID4gLmFycm93IHtcbiAgICBsZWZ0OiA1MCU7XG4gICAgbWFyZ2luLWxlZnQ6IC1AcG9wb3Zlci1hcnJvdy1vdXRlci13aWR0aDtcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICAgIGJvcmRlci10b3AtY29sb3I6IEBwb3BvdmVyLWFycm93LW91dGVyLWZhbGxiYWNrLWNvbG9yOyAvLyBJRTggZmFsbGJhY2tcbiAgICBib3JkZXItdG9wLWNvbG9yOiBAcG9wb3Zlci1hcnJvdy1vdXRlci1jb2xvcjtcbiAgICBib3R0b206IC1AcG9wb3Zlci1hcnJvdy1vdXRlci13aWR0aDtcbiAgICAmOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgICAgYm90dG9tOiAxcHg7XG4gICAgICBtYXJnaW4tbGVmdDogLUBwb3BvdmVyLWFycm93LXdpZHRoO1xuICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICAgIGJvcmRlci10b3AtY29sb3I6IEBwb3BvdmVyLWFycm93LWNvbG9yO1xuICAgIH1cbiAgfVxuICAmLnJpZ2h0ID4gLmFycm93IHtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiAtQHBvcG92ZXItYXJyb3ctb3V0ZXItd2lkdGg7XG4gICAgbWFyZ2luLXRvcDogLUBwb3BvdmVyLWFycm93LW91dGVyLXdpZHRoO1xuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1yaWdodC1jb2xvcjogQHBvcG92ZXItYXJyb3ctb3V0ZXItZmFsbGJhY2stY29sb3I7IC8vIElFOCBmYWxsYmFja1xuICAgIGJvcmRlci1yaWdodC1jb2xvcjogQHBvcG92ZXItYXJyb3ctb3V0ZXItY29sb3I7XG4gICAgJjphZnRlciB7XG4gICAgICBjb250ZW50OiBcIiBcIjtcbiAgICAgIGxlZnQ6IDFweDtcbiAgICAgIGJvdHRvbTogLUBwb3BvdmVyLWFycm93LXdpZHRoO1xuICAgICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gICAgICBib3JkZXItcmlnaHQtY29sb3I6IEBwb3BvdmVyLWFycm93LWNvbG9yO1xuICAgIH1cbiAgfVxuICAmLmJvdHRvbSA+IC5hcnJvdyB7XG4gICAgbGVmdDogNTAlO1xuICAgIG1hcmdpbi1sZWZ0OiAtQHBvcG92ZXItYXJyb3ctb3V0ZXItd2lkdGg7XG4gICAgYm9yZGVyLXRvcC13aWR0aDogMDtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiBAcG9wb3Zlci1hcnJvdy1vdXRlci1mYWxsYmFjay1jb2xvcjsgLy8gSUU4IGZhbGxiYWNrXG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogQHBvcG92ZXItYXJyb3ctb3V0ZXItY29sb3I7XG4gICAgdG9wOiAtQHBvcG92ZXItYXJyb3ctb3V0ZXItd2lkdGg7XG4gICAgJjphZnRlciB7XG4gICAgICBjb250ZW50OiBcIiBcIjtcbiAgICAgIHRvcDogMXB4O1xuICAgICAgbWFyZ2luLWxlZnQ6IC1AcG9wb3Zlci1hcnJvdy13aWR0aDtcbiAgICAgIGJvcmRlci10b3Atd2lkdGg6IDA7XG4gICAgICBib3JkZXItYm90dG9tLWNvbG9yOiBAcG9wb3Zlci1hcnJvdy1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAmLmxlZnQgPiAuYXJyb3cge1xuICAgIHRvcDogNTAlO1xuICAgIHJpZ2h0OiAtQHBvcG92ZXItYXJyb3ctb3V0ZXItd2lkdGg7XG4gICAgbWFyZ2luLXRvcDogLUBwb3BvdmVyLWFycm93LW91dGVyLXdpZHRoO1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICBib3JkZXItbGVmdC1jb2xvcjogQHBvcG92ZXItYXJyb3ctb3V0ZXItZmFsbGJhY2stY29sb3I7IC8vIElFOCBmYWxsYmFja1xuICAgIGJvcmRlci1sZWZ0LWNvbG9yOiBAcG9wb3Zlci1hcnJvdy1vdXRlci1jb2xvcjtcbiAgICAmOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgICAgcmlnaHQ6IDFweDtcbiAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiBAcG9wb3Zlci1hcnJvdy1jb2xvcjtcbiAgICAgIGJvdHRvbTogLUBwb3BvdmVyLWFycm93LXdpZHRoO1xuICAgIH1cbiAgfVxufVxuIiwiLy9cbi8vIENhcm91c2VsXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi8vIFdyYXBwZXIgZm9yIHRoZSBzbGlkZSBjb250YWluZXIgYW5kIGluZGljYXRvcnNcbi5jYXJvdXNlbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmNhcm91c2VsLWlubmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3aWR0aDogMTAwJTtcblxuICA+IC5pdGVtIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAudHJhbnNpdGlvbiguNnMgZWFzZS1pbi1vdXQgbGVmdCk7XG5cbiAgICAvLyBBY2NvdW50IGZvciBqYW5raXR1ZGUgb24gaW1hZ2VzXG4gICAgPiBpbWcsXG4gICAgPiBhID4gaW1nIHtcbiAgICAgICY6ZXh0ZW5kKC5pbWctcmVzcG9uc2l2ZSk7XG4gICAgICBsaW5lLWhlaWdodDogMTtcbiAgICB9XG5cbiAgICAvLyBXZWJLaXQgQ1NTMyB0cmFuc2Zvcm1zIGZvciBzdXBwb3J0ZWQgZGV2aWNlc1xuICAgIEBtZWRpYSBhbGwgYW5kICh0cmFuc2Zvcm0tM2QpLCAoLXdlYmtpdC10cmFuc2Zvcm0tM2QpIHtcbiAgICAgIC50cmFuc2l0aW9uLXRyYW5zZm9ybSh+JzAuNnMgZWFzZS1pbi1vdXQnKTtcbiAgICAgIC5iYWNrZmFjZS12aXNpYmlsaXR5KH4naGlkZGVuJyk7XG4gICAgICAucGVyc3BlY3RpdmUoMTAwMHB4KTtcblxuICAgICAgJi5uZXh0LFxuICAgICAgJi5hY3RpdmUucmlnaHQge1xuICAgICAgICAudHJhbnNsYXRlM2QoMTAwJSwgMCwgMCk7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICB9XG4gICAgICAmLnByZXYsXG4gICAgICAmLmFjdGl2ZS5sZWZ0IHtcbiAgICAgICAgLnRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgIH1cbiAgICAgICYubmV4dC5sZWZ0LFxuICAgICAgJi5wcmV2LnJpZ2h0LFxuICAgICAgJi5hY3RpdmUge1xuICAgICAgICAudHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgPiAuYWN0aXZlLFxuICA+IC5uZXh0LFxuICA+IC5wcmV2IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gID4gLmFjdGl2ZSB7XG4gICAgbGVmdDogMDtcbiAgfVxuXG4gID4gLm5leHQsXG4gID4gLnByZXYge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICA+IC5uZXh0IHtcbiAgICBsZWZ0OiAxMDAlO1xuICB9XG4gID4gLnByZXYge1xuICAgIGxlZnQ6IC0xMDAlO1xuICB9XG4gID4gLm5leHQubGVmdCxcbiAgPiAucHJldi5yaWdodCB7XG4gICAgbGVmdDogMDtcbiAgfVxuXG4gID4gLmFjdGl2ZS5sZWZ0IHtcbiAgICBsZWZ0OiAtMTAwJTtcbiAgfVxuICA+IC5hY3RpdmUucmlnaHQge1xuICAgIGxlZnQ6IDEwMCU7XG4gIH1cblxufVxuXG4vLyBMZWZ0L3JpZ2h0IGNvbnRyb2xzIGZvciBuYXZcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4uY2Fyb3VzZWwtY29udHJvbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBib3R0b206IDA7XG4gIHdpZHRoOiBAY2Fyb3VzZWwtY29udHJvbC13aWR0aDtcbiAgLm9wYWNpdHkoQGNhcm91c2VsLWNvbnRyb2wtb3BhY2l0eSk7XG4gIGZvbnQtc2l6ZTogQGNhcm91c2VsLWNvbnRyb2wtZm9udC1zaXplO1xuICBjb2xvcjogQGNhcm91c2VsLWNvbnRyb2wtY29sb3I7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1zaGFkb3c6IEBjYXJvdXNlbC10ZXh0LXNoYWRvdztcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTsgLy8gRml4IElFOSBjbGljay10aHJ1IGJ1Z1xuICAvLyBXZSBjYW4ndCBoYXZlIHRoaXMgdHJhbnNpdGlvbiBoZXJlIGJlY2F1c2UgV2ViS2l0IGNhbmNlbHMgdGhlIGNhcm91c2VsXG4gIC8vIGFuaW1hdGlvbiBpZiB5b3UgdHJpcCB0aGlzIHdoaWxlIGluIHRoZSBtaWRkbGUgb2YgYW5vdGhlciBhbmltYXRpb24uXG5cbiAgLy8gU2V0IGdyYWRpZW50cyBmb3IgYmFja2dyb3VuZHNcbiAgJi5sZWZ0IHtcbiAgICAjZ3JhZGllbnQgPiAuaG9yaXpvbnRhbChAc3RhcnQtY29sb3I6IHJnYmEoMCwwLDAsLjUpOyBAZW5kLWNvbG9yOiByZ2JhKDAsMCwwLC4wMDAxKSk7XG4gIH1cbiAgJi5yaWdodCB7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogMDtcbiAgICAjZ3JhZGllbnQgPiAuaG9yaXpvbnRhbChAc3RhcnQtY29sb3I6IHJnYmEoMCwwLDAsLjAwMDEpOyBAZW5kLWNvbG9yOiByZ2JhKDAsMCwwLC41KSk7XG4gIH1cblxuICAvLyBIb3Zlci9mb2N1cyBzdGF0ZVxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiAwO1xuICAgIGNvbG9yOiBAY2Fyb3VzZWwtY29udHJvbC1jb2xvcjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgLm9wYWNpdHkoLjkpO1xuICB9XG5cbiAgLy8gVG9nZ2xlc1xuICAuaWNvbi1wcmV2LFxuICAuaWNvbi1uZXh0LFxuICAuZ2x5cGhpY29uLWNoZXZyb24tbGVmdCxcbiAgLmdseXBoaWNvbi1jaGV2cm9uLXJpZ2h0IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgbWFyZ2luLXRvcDogLTEwcHg7XG4gICAgei1pbmRleDogNTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIH1cbiAgLmljb24tcHJldixcbiAgLmdseXBoaWNvbi1jaGV2cm9uLWxlZnQge1xuICAgIGxlZnQ6IDUwJTtcbiAgICBtYXJnaW4tbGVmdDogLTEwcHg7XG4gIH1cbiAgLmljb24tbmV4dCxcbiAgLmdseXBoaWNvbi1jaGV2cm9uLXJpZ2h0IHtcbiAgICByaWdodDogNTAlO1xuICAgIG1hcmdpbi1yaWdodDogLTEwcHg7XG4gIH1cbiAgLmljb24tcHJldixcbiAgLmljb24tbmV4dCB7XG4gICAgd2lkdGg6ICAyMHB4O1xuICAgIGhlaWdodDogMjBweDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBmb250LWZhbWlseTogc2VyaWY7XG4gIH1cblxuXG4gIC5pY29uLXByZXYge1xuICAgICY6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICdcXDIwMzknOy8vIFNJTkdMRSBMRUZULVBPSU5USU5HIEFOR0xFIFFVT1RBVElPTiBNQVJLIChVKzIwMzkpXG4gICAgfVxuICB9XG4gIC5pY29uLW5leHQge1xuICAgICY6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICdcXDIwM2EnOy8vIFNJTkdMRSBSSUdIVC1QT0lOVElORyBBTkdMRSBRVU9UQVRJT04gTUFSSyAoVSsyMDNBKVxuICAgIH1cbiAgfVxufVxuXG4vLyBPcHRpb25hbCBpbmRpY2F0b3IgcGlwc1xuLy9cbi8vIEFkZCBhbiB1bm9yZGVyZWQgbGlzdCB3aXRoIHRoZSBmb2xsb3dpbmcgY2xhc3MgYW5kIGFkZCBhIGxpc3QgaXRlbSBmb3IgZWFjaFxuLy8gc2xpZGUgeW91ciBjYXJvdXNlbCBob2xkcy5cblxuLmNhcm91c2VsLWluZGljYXRvcnMge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMTBweDtcbiAgbGVmdDogNTAlO1xuICB6LWluZGV4OiAxNTtcbiAgd2lkdGg6IDYwJTtcbiAgbWFyZ2luLWxlZnQ6IC0zMCU7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gIGxpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6ICAxMHB4O1xuICAgIGhlaWdodDogMTBweDtcbiAgICBtYXJnaW46IDFweDtcbiAgICB0ZXh0LWluZGVudDogLTk5OXB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIEBjYXJvdXNlbC1pbmRpY2F0b3ItYm9yZGVyLWNvbG9yO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgLy8gSUU4LTkgaGFjayBmb3IgZXZlbnQgaGFuZGxpbmdcbiAgICAvL1xuICAgIC8vIEludGVybmV0IEV4cGxvcmVyIDgtOSBkb2VzIG5vdCBzdXBwb3J0IGNsaWNrcyBvbiBlbGVtZW50cyB3aXRob3V0IGEgc2V0XG4gICAgLy8gYGJhY2tncm91bmQtY29sb3JgLiBXZSBjYW5ub3QgdXNlIGBmaWx0ZXJgIHNpbmNlIHRoYXQncyBub3Qgdmlld2VkIGFzIGFcbiAgICAvLyBiYWNrZ3JvdW5kIGNvbG9yIGJ5IHRoZSBicm93c2VyLiBUaHVzLCBhIGhhY2sgaXMgbmVlZGVkLlxuICAgIC8vIFNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9FdmVudHMvY2xpY2sjSW50ZXJuZXRfRXhwbG9yZXJcbiAgICAvL1xuICAgIC8vIEZvciBJRTgsIHdlIHNldCBzb2xpZCBibGFjayBhcyBpdCBkb2Vzbid0IHN1cHBvcnQgYHJnYmEoKWAuIEZvciBJRTksIHdlXG4gICAgLy8gc2V0IGFscGhhIHRyYW5zcGFyZW5jeSBmb3IgdGhlIGJlc3QgcmVzdWx0cyBwb3NzaWJsZS5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwIFxcOTsgLy8gSUU4XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwwKTsgLy8gSUU5XG4gIH1cbiAgLmFjdGl2ZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHdpZHRoOiAgMTJweDtcbiAgICBoZWlnaHQ6IDEycHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGNhcm91c2VsLWluZGljYXRvci1hY3RpdmUtYmc7XG4gIH1cbn1cblxuLy8gT3B0aW9uYWwgY2FwdGlvbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBIaWRkZW4gYnkgZGVmYXVsdCBmb3Igc21hbGxlciB2aWV3cG9ydHNcbi5jYXJvdXNlbC1jYXB0aW9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAxNSU7XG4gIHJpZ2h0OiAxNSU7XG4gIGJvdHRvbTogMjBweDtcbiAgei1pbmRleDogMTA7XG4gIHBhZGRpbmctdG9wOiAyMHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMjBweDtcbiAgY29sb3I6IEBjYXJvdXNlbC1jYXB0aW9uLWNvbG9yO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtc2hhZG93OiBAY2Fyb3VzZWwtdGV4dC1zaGFkb3c7XG4gICYgLmJ0biB7XG4gICAgdGV4dC1zaGFkb3c6IG5vbmU7IC8vIE5vIHNoYWRvdyBmb3IgYnV0dG9uIGVsZW1lbnRzIGluIGNhcm91c2VsLWNhcHRpb25cbiAgfVxufVxuXG5cbi8vIFNjYWxlIHVwIGNvbnRyb2xzIGZvciB0YWJsZXRzIGFuZCB1cFxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogQHNjcmVlbi1zbS1taW4pIHtcblxuICAvLyBTY2FsZSB1cCB0aGUgY29udHJvbHMgYSBzbWlkZ2VcbiAgLmNhcm91c2VsLWNvbnRyb2wge1xuICAgIC5nbHlwaGljb24tY2hldnJvbi1sZWZ0LFxuICAgIC5nbHlwaGljb24tY2hldnJvbi1yaWdodCxcbiAgICAuaWNvbi1wcmV2LFxuICAgIC5pY29uLW5leHQge1xuICAgICAgd2lkdGg6IChAY2Fyb3VzZWwtY29udHJvbC1mb250LXNpemUgKiAxLjUpO1xuICAgICAgaGVpZ2h0OiAoQGNhcm91c2VsLWNvbnRyb2wtZm9udC1zaXplICogMS41KTtcbiAgICAgIG1hcmdpbi10b3A6IChAY2Fyb3VzZWwtY29udHJvbC1mb250LXNpemUgLyAtMik7XG4gICAgICBmb250LXNpemU6IChAY2Fyb3VzZWwtY29udHJvbC1mb250LXNpemUgKiAxLjUpO1xuICAgIH1cbiAgICAuZ2x5cGhpY29uLWNoZXZyb24tbGVmdCxcbiAgICAuaWNvbi1wcmV2IHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAoQGNhcm91c2VsLWNvbnRyb2wtZm9udC1zaXplIC8gLTIpO1xuICAgIH1cbiAgICAuZ2x5cGhpY29uLWNoZXZyb24tcmlnaHQsXG4gICAgLmljb24tbmV4dCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IChAY2Fyb3VzZWwtY29udHJvbC1mb250LXNpemUgLyAtMik7XG4gICAgfVxuICB9XG5cbiAgLy8gU2hvdyBhbmQgbGVmdCBhbGlnbiB0aGUgY2FwdGlvbnNcbiAgLmNhcm91c2VsLWNhcHRpb24ge1xuICAgIGxlZnQ6IDIwJTtcbiAgICByaWdodDogMjAlO1xuICAgIHBhZGRpbmctYm90dG9tOiAzMHB4O1xuICB9XG5cbiAgLy8gTW92ZSB1cCB0aGUgaW5kaWNhdG9yc1xuICAuY2Fyb3VzZWwtaW5kaWNhdG9ycyB7XG4gICAgYm90dG9tOiAyMHB4O1xuICB9XG59XG4iLCIvLyBDbGVhcmZpeFxuLy9cbi8vIEZvciBtb2Rlcm4gYnJvd3NlcnNcbi8vIDEuIFRoZSBzcGFjZSBjb250ZW50IGlzIG9uZSB3YXkgdG8gYXZvaWQgYW4gT3BlcmEgYnVnIHdoZW4gdGhlXG4vLyAgICBjb250ZW50ZWRpdGFibGUgYXR0cmlidXRlIGlzIGluY2x1ZGVkIGFueXdoZXJlIGVsc2UgaW4gdGhlIGRvY3VtZW50LlxuLy8gICAgT3RoZXJ3aXNlIGl0IGNhdXNlcyBzcGFjZSB0byBhcHBlYXIgYXQgdGhlIHRvcCBhbmQgYm90dG9tIG9mIGVsZW1lbnRzXG4vLyAgICB0aGF0IGFyZSBjbGVhcmZpeGVkLlxuLy8gMi4gVGhlIHVzZSBvZiBgdGFibGVgIHJhdGhlciB0aGFuIGBibG9ja2AgaXMgb25seSBuZWNlc3NhcnkgaWYgdXNpbmdcbi8vICAgIGA6YmVmb3JlYCB0byBjb250YWluIHRoZSB0b3AtbWFyZ2lucyBvZiBjaGlsZCBlbGVtZW50cy5cbi8vXG4vLyBTb3VyY2U6IGh0dHA6Ly9uaWNvbGFzZ2FsbGFnaGVyLmNvbS9taWNyby1jbGVhcmZpeC1oYWNrL1xuXG4uY2xlYXJmaXgoKSB7XG4gICY6YmVmb3JlLFxuICAmOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIiBcIjsgLy8gMVxuICAgIGRpc3BsYXk6IHRhYmxlOyAvLyAyXG4gIH1cbiAgJjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gIH1cbn1cbiIsIi8vIENlbnRlci1hbGlnbiBhIGJsb2NrIGxldmVsIGVsZW1lbnRcblxuLmNlbnRlci1ibG9jaygpIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG4iLCIvLyBDU1MgaW1hZ2UgcmVwbGFjZW1lbnRcbi8vXG4vLyBIZWFkcyB1cCEgdjMgbGF1bmNoZWQgd2l0aCBvbmx5IGAuaGlkZS10ZXh0KClgLCBidXQgcGVyIG91ciBwYXR0ZXJuIGZvclxuLy8gbWl4aW5zIGJlaW5nIHJldXNlZCBhcyBjbGFzc2VzIHdpdGggdGhlIHNhbWUgbmFtZSwgdGhpcyBkb2Vzbid0IGhvbGQgdXAuIEFzXG4vLyBvZiB2My4wLjEgd2UgaGF2ZSBhZGRlZCBgLnRleHQtaGlkZSgpYCBhbmQgZGVwcmVjYXRlZCBgLmhpZGUtdGV4dCgpYC5cbi8vXG4vLyBTb3VyY2U6IGh0dHBzOi8vZ2l0aHViLmNvbS9oNWJwL2h0bWw1LWJvaWxlcnBsYXRlL2NvbW1pdC9hYTAzOTZlYWU3NTdcblxuLy8gRGVwcmVjYXRlZCBhcyBvZiB2My4wLjEgKGhhcyBiZWVuIHJlbW92ZWQgaW4gdjQpXG4uaGlkZS10ZXh0KCkge1xuICBmb250OiB+XCIwLzBcIiBhO1xuICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAwO1xufVxuXG4vLyBOZXcgbWl4aW4gdG8gdXNlIGFzIG9mIHYzLjAuMVxuLnRleHQtaGlkZSgpIHtcbiAgLmhpZGUtdGV4dCgpO1xufVxuIiwiLy9cbi8vIFJlc3BvbnNpdmU6IFV0aWxpdHkgY2xhc3Nlc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4vLyBJRTEwIGluIFdpbmRvd3MgKFBob25lKSA4XG4vL1xuLy8gU3VwcG9ydCBmb3IgcmVzcG9uc2l2ZSB2aWV3cyB2aWEgbWVkaWEgcXVlcmllcyBpcyBraW5kIG9mIGJvcmtlZCBpbiBJRTEwLCBmb3Jcbi8vIFN1cmZhY2UvZGVza3RvcCBpbiBzcGxpdCB2aWV3IGFuZCBmb3IgV2luZG93cyBQaG9uZSA4LiBUaGlzIHBhcnRpY3VsYXIgZml4XG4vLyBtdXN0IGJlIGFjY29tcGFuaWVkIGJ5IGEgc25pcHBldCBvZiBKYXZhU2NyaXB0IHRvIHNuaWZmIHRoZSB1c2VyIGFnZW50IGFuZFxuLy8gYXBwbHkgc29tZSBjb25kaXRpb25hbCBDU1MgdG8gKm9ubHkqIHRoZSBTdXJmYWNlL2Rlc2t0b3AgV2luZG93cyA4LiBMb29rIGF0XG4vLyBvdXIgR2V0dGluZyBTdGFydGVkIHBhZ2UgZm9yIG1vcmUgaW5mb3JtYXRpb24gb24gdGhpcyBidWcuXG4vL1xuLy8gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSB0aGUgZm9sbG93aW5nOlxuLy9cbi8vIElzc3VlOiBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvaXNzdWVzLzEwNDk3XG4vLyBEb2NzOiBodHRwOi8vZ2V0Ym9vdHN0cmFwLmNvbS9nZXR0aW5nLXN0YXJ0ZWQvI3N1cHBvcnQtaWUxMC13aWR0aFxuLy8gU291cmNlOiBodHRwOi8vdGlta2FkbGVjLmNvbS8yMDEzLzAxL3dpbmRvd3MtcGhvbmUtOC1hbmQtZGV2aWNlLXdpZHRoL1xuLy8gU291cmNlOiBodHRwOi8vdGlta2FkbGVjLmNvbS8yMDEyLzEwL2llMTAtc25hcC1tb2RlLWFuZC1yZXNwb25zaXZlLWRlc2lnbi9cblxuQC1tcy12aWV3cG9ydCB7XG4gIHdpZHRoOiBkZXZpY2Utd2lkdGg7XG59XG5cblxuLy8gVmlzaWJpbGl0eSB1dGlsaXRpZXNcbi8vIE5vdGU6IERlcHJlY2F0ZWQgLnZpc2libGUteHMsIC52aXNpYmxlLXNtLCAudmlzaWJsZS1tZCwgYW5kIC52aXNpYmxlLWxnIGFzIG9mIHYzLjIuMFxuLnZpc2libGUteHMsXG4udmlzaWJsZS1zbSxcbi52aXNpYmxlLW1kLFxuLnZpc2libGUtbGcge1xuICAucmVzcG9uc2l2ZS1pbnZpc2liaWxpdHkoKTtcbn1cblxuLnZpc2libGUteHMtYmxvY2ssXG4udmlzaWJsZS14cy1pbmxpbmUsXG4udmlzaWJsZS14cy1pbmxpbmUtYmxvY2ssXG4udmlzaWJsZS1zbS1ibG9jayxcbi52aXNpYmxlLXNtLWlubGluZSxcbi52aXNpYmxlLXNtLWlubGluZS1ibG9jayxcbi52aXNpYmxlLW1kLWJsb2NrLFxuLnZpc2libGUtbWQtaW5saW5lLFxuLnZpc2libGUtbWQtaW5saW5lLWJsb2NrLFxuLnZpc2libGUtbGctYmxvY2ssXG4udmlzaWJsZS1sZy1pbmxpbmUsXG4udmlzaWJsZS1sZy1pbmxpbmUtYmxvY2sge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi52aXNpYmxlLXhzIHtcbiAgQG1lZGlhIChtYXgtd2lkdGg6IEBzY3JlZW4teHMtbWF4KSB7XG4gICAgLnJlc3BvbnNpdmUtdmlzaWJpbGl0eSgpO1xuICB9XG59XG4udmlzaWJsZS14cy1ibG9jayB7XG4gIEBtZWRpYSAobWF4LXdpZHRoOiBAc2NyZWVuLXhzLW1heCkge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi52aXNpYmxlLXhzLWlubGluZSB7XG4gIEBtZWRpYSAobWF4LXdpZHRoOiBAc2NyZWVuLXhzLW1heCkge1xuICAgIGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50O1xuICB9XG59XG4udmlzaWJsZS14cy1pbmxpbmUtYmxvY2sge1xuICBAbWVkaWEgKG1heC13aWR0aDogQHNjcmVlbi14cy1tYXgpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcbiAgfVxufVxuXG4udmlzaWJsZS1zbSB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLXNtLW1pbikgYW5kIChtYXgtd2lkdGg6IEBzY3JlZW4tc20tbWF4KSB7XG4gICAgLnJlc3BvbnNpdmUtdmlzaWJpbGl0eSgpO1xuICB9XG59XG4udmlzaWJsZS1zbS1ibG9jayB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLXNtLW1pbikgYW5kIChtYXgtd2lkdGg6IEBzY3JlZW4tc20tbWF4KSB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxufVxuLnZpc2libGUtc20taW5saW5lIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tc20tbWluKSBhbmQgKG1heC13aWR0aDogQHNjcmVlbi1zbS1tYXgpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDtcbiAgfVxufVxuLnZpc2libGUtc20taW5saW5lLWJsb2NrIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tc20tbWluKSBhbmQgKG1heC13aWR0aDogQHNjcmVlbi1zbS1tYXgpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcbiAgfVxufVxuXG4udmlzaWJsZS1tZCB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLW1kLW1pbikgYW5kIChtYXgtd2lkdGg6IEBzY3JlZW4tbWQtbWF4KSB7XG4gICAgLnJlc3BvbnNpdmUtdmlzaWJpbGl0eSgpO1xuICB9XG59XG4udmlzaWJsZS1tZC1ibG9jayB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLW1kLW1pbikgYW5kIChtYXgtd2lkdGg6IEBzY3JlZW4tbWQtbWF4KSB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxufVxuLnZpc2libGUtbWQtaW5saW5lIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbWQtbWluKSBhbmQgKG1heC13aWR0aDogQHNjcmVlbi1tZC1tYXgpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDtcbiAgfVxufVxuLnZpc2libGUtbWQtaW5saW5lLWJsb2NrIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbWQtbWluKSBhbmQgKG1heC13aWR0aDogQHNjcmVlbi1tZC1tYXgpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcbiAgfVxufVxuXG4udmlzaWJsZS1sZyB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLWxnLW1pbikge1xuICAgIC5yZXNwb25zaXZlLXZpc2liaWxpdHkoKTtcbiAgfVxufVxuLnZpc2libGUtbGctYmxvY2sge1xuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1sZy1taW4pIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG59XG4udmlzaWJsZS1sZy1pbmxpbmUge1xuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1sZy1taW4pIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDtcbiAgfVxufVxuLnZpc2libGUtbGctaW5saW5lLWJsb2NrIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbGctbWluKSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLmhpZGRlbi14cyB7XG4gIEBtZWRpYSAobWF4LXdpZHRoOiBAc2NyZWVuLXhzLW1heCkge1xuICAgIC5yZXNwb25zaXZlLWludmlzaWJpbGl0eSgpO1xuICB9XG59XG4uaGlkZGVuLXNtIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tc20tbWluKSBhbmQgKG1heC13aWR0aDogQHNjcmVlbi1zbS1tYXgpIHtcbiAgICAucmVzcG9uc2l2ZS1pbnZpc2liaWxpdHkoKTtcbiAgfVxufVxuLmhpZGRlbi1tZCB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLW1kLW1pbikgYW5kIChtYXgtd2lkdGg6IEBzY3JlZW4tbWQtbWF4KSB7XG4gICAgLnJlc3BvbnNpdmUtaW52aXNpYmlsaXR5KCk7XG4gIH1cbn1cbi5oaWRkZW4tbGcge1xuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1sZy1taW4pIHtcbiAgICAucmVzcG9uc2l2ZS1pbnZpc2liaWxpdHkoKTtcbiAgfVxufVxuXG5cbi8vIFByaW50IHV0aWxpdGllc1xuLy9cbi8vIE1lZGlhIHF1ZXJpZXMgYXJlIHBsYWNlZCBvbiB0aGUgaW5zaWRlIHRvIGJlIG1peGluLWZyaWVuZGx5LlxuXG4vLyBOb3RlOiBEZXByZWNhdGVkIC52aXNpYmxlLXByaW50IGFzIG9mIHYzLjIuMFxuLnZpc2libGUtcHJpbnQge1xuICAucmVzcG9uc2l2ZS1pbnZpc2liaWxpdHkoKTtcblxuICBAbWVkaWEgcHJpbnQge1xuICAgIC5yZXNwb25zaXZlLXZpc2liaWxpdHkoKTtcbiAgfVxufVxuLnZpc2libGUtcHJpbnQtYmxvY2sge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG5cbiAgQG1lZGlhIHByaW50IHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG59XG4udmlzaWJsZS1wcmludC1pbmxpbmUge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG5cbiAgQG1lZGlhIHByaW50IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDtcbiAgfVxufVxuLnZpc2libGUtcHJpbnQtaW5saW5lLWJsb2NrIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuXG4gIEBtZWRpYSBwcmludCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLmhpZGRlbi1wcmludCB7XG4gIEBtZWRpYSBwcmludCB7XG4gICAgLnJlc3BvbnNpdmUtaW52aXNpYmlsaXR5KCk7XG4gIH1cbn1cbiIsIi8vIFJlc3BvbnNpdmUgdXRpbGl0aWVzXG5cbi8vXG4vLyBNb3JlIGVhc2lseSBpbmNsdWRlIGFsbCB0aGUgc3RhdGVzIGZvciByZXNwb25zaXZlLXV0aWxpdGllcy5sZXNzLlxuLnJlc3BvbnNpdmUtdmlzaWJpbGl0eSgpIHtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgdGFibGUmICB7IGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7IH1cbiAgdHImICAgICB7IGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50OyB9XG4gIHRoJixcbiAgdGQmICAgICB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxufVxuXG4ucmVzcG9uc2l2ZS1pbnZpc2liaWxpdHkoKSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cbiIsIi8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xuLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExFU1MgVkFSSUFCTEVTXG4qKiAgICAgICAgICAgICAgICBUaGlzIHN0eWxlc2hlZXQgc2hvdWxkIG9ubHkgY29udGFpbiB2YXJpYWJsZXMuXG4vKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sb3IgcGFsZXR0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuQG1ncmVlbjogICAgICAgICAgICAgICAgICAgICAgICAgICNkYWUxNzM7XG5AbW9yYW5nZTogICAgICAgICAgICAgICAgICAgICAgICAgI2Q2NzgyYjtcbkBtZGFya2JsdWU6ICAgICAgICAgICAgICAgICAgICAgICAjMjMyNTI4O1xuQG1ncmV5OiAgICAgICAgICAgICAgICAgICAgICAgICAgICNjY2NjY2M7XG5AbWxpZ2h0Z3JleTogICAgICAgICAgICAgICAgICAgICAgIzk5OTk5OTtcbkBtZGFya2JnOiAgICAgICAgICAgICAgICAgICAgICAgICAjMTYxNjFCO1xuQG1ibHVlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICMzNThmZGM7XG5AZGFya2VyYmx1ZTogICAgICAgICAgICAgICAgICAgICAgIzE2MjUyYztcbkBkYXJrYmx1ZTogICAgICAgICAgICAgICAgICAgICAgICAjMTcyNjJkO1xuQGRhcmtlcmJsdWU6ICAgICAgICAgICAgICAgICAgICAgIGRhcmtlbihAZGFya2JsdWUsNCUpO1xuQGRhcmtibHVlMjogICAgICAgICAgICAgICAgICAgICAgICMyNTMzM2E7XG5AbWVkaXVtYmx1ZTogICAgICAgICAgICAgICAgICAgICAgIzYyNmQ2ZDtcbkBsaWdodGJsdWU6ICAgICAgICAgICAgICAgICAgICAgICAjYWJjNGM2O1xuQHBpbms6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICNlZDFlNzk7XG5AcmVkOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI0ZGMDAwMDtcblxuQGZsdXJvYmx1ZTogICAgICAgICAgICAgICAgICAgICAgICMwMGU1ZjA7XG5AZmx1cm9vcmFuZ2U6ICAgICAgICAgICAgICAgICAgICAgI2ZmNzMwMDtcbkBmbHVyZW95ZWxsb3c6ICAgICAgICAgICAgICAgICAgICAjZmJkOTI1O1xuQGZsdXJvZ3JlZW46ICAgICAgICAgICAgICAgICAgICAgICM0N2ZmMDA7XG5AZmx1cm9waW5rOiAgICAgICAgICAgICAgICAgICAgICAgI2UwMWY3NDtcblxuQGRhcmtncmVlbjogICAgICAgICAgICAgICAgICAgICAgICMzM2QzNzU7XG5AZ3JlZW46ICAgICAgICAgICAgICAgICAgICAgICAgICAgI2QxZTU1YztcbkBwdXJwbGU6ICAgICAgICAgICAgICAgICAgICAgICAgICAjOTc3YmYwO1xuQGxpZ2h0Z3JheTogICAgICAgICAgICAgICAgICAgICAgICNlNmVkZWU7XG5AYmx1ZWdyYXk6ICAgICAgICAgICAgICAgICAgICAgICAgI2FiYzRjNjtcbkBibHVlZ3JheTI6ICAgICAgICAgICAgICAgICAgICAgICAjMzU0NjRjO1xuXG5AYnJhbmQtc3VjY2VzczogICAgICAgICAgICAgICAgICBAZmx1cm9ibHVlO1xuQGJyYW5kLXdhcm5pbmc6ICAgICAgICAgICAgICAgICAgQHB1cnBsZTtcbkBicmFuZC1pbmZvOiAgICAgICAgICAgICAgICAgICAgIEBmbHVyb2JsdWU7XG5AYnJhbmQtZGFuZ2VyOiAgICAgICAgICAgICAgICAgICBAZmx1cm9waW5rO1xuQGJyYW5kLXByaW1hcnk6ICAgICAgICAgICAgICAgICAgQGZsdXJvYmx1ZTtcblxuQGltcGFjLXBvc2l0aXZlOiAgICAgICAgICAgICAgICAgZ3JlZW47XG5AaW1wYWMtbmVnYXRpdmU6ICAgICAgICAgICAgICAgICBAcGluaztcbkBpbXBhYy1wb3NpdGl2ZTI6ICAgICAgICAgICAgICAgICMzZmM0ZmY7ICAgICAvLyBsaWdodGVyIGNvbG9ycyB1c2VkIGZvciBwYXlhYmxlcy1yZWNlaXZhYmxlc1xuQGltcGFjLW5lZ2F0aXZlMjogICAgICAgICAgICAgICAgIzFkZTliNjsgICAgIC8vIGxpZ2h0ZXIgY29sb3JzdXNlZCBmb3IgcGF5YWJsZXMtcmVjZWl2YWJsZXNcblxuLy8gU3BhY2Vyc1xuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AdG9wLWJ1ZmZlci1oZWlnaHQ6IEBncmlkLWd1dHRlci13aWR0aC8yOyAvLyBib290c3RyYXAgdmFyaWFibGVcbi50b3AtYnVmZmVyLTEgeyBtYXJnaW4tdG9wOiBAdG9wLWJ1ZmZlci1oZWlnaHQ7IH1cbi50b3AtYnVmZmVyLTIgeyBtYXJnaW4tdG9wOiAyKkB0b3AtYnVmZmVyLWhlaWdodDsgfVxuLnRvcC1idWZmZXItMyB7IG1hcmdpbi10b3A6IDMqQHRvcC1idWZmZXItaGVpZ2h0OyB9XG4udG9wLWJ1ZmZlci00IHsgbWFyZ2luLXRvcDogNCpAdG9wLWJ1ZmZlci1oZWlnaHQ7IH1cbi50b3AtYnVmZmVyLTUgeyBtYXJnaW4tdG9wOiA1KkB0b3AtYnVmZmVyLWhlaWdodDsgfVxuLnRvcC1idWZmZXItNiB7IG1hcmdpbi10b3A6IDYqQHRvcC1idWZmZXItaGVpZ2h0OyB9XG4udG9wLWJ1ZmZlci03IHsgbWFyZ2luLXRvcDogNypAdG9wLWJ1ZmZlci1oZWlnaHQ7IH1cbi50b3AtYnVmZmVyLTggeyBtYXJnaW4tdG9wOiA4KkB0b3AtYnVmZmVyLWhlaWdodDsgfVxuLnRvcC1idWZmZXItOSB7IG1hcmdpbi10b3A6IDkqQHRvcC1idWZmZXItaGVpZ2h0OyB9XG4udG9wLWJ1ZmZlci0xMCB7IG1hcmdpbi10b3A6IDEwKkB0b3AtYnVmZmVyLWhlaWdodDsgfVxuXG4vLyBEYXNoYm9hcmRcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBpbXBhYy1kYXNoYm9hcmQtcGFkZGluZy10b3A6ICAgICAgICAgICAgICAgICAgIDUwcHg7XG5AaW1wYWMtZGFzaGJvYXJkLXNtLXBhZGRpbmctdG9wOiAgICAgICAgICAgICAgICBAaW1wYWMtZGFzaGJvYXJkLXBhZGRpbmctdG9wICogMztcbkBpbXBhYy1kYXNoYm9hcmQtbWFyZ2luLWxlZnQ6ICAgICAgICAgICAgICAgICAgIDEwMHB4O1xuQGltcGFjLWRhc2hib2FyZC1ib3JkZXJzLWNvbG9yOiAgICAgICAgICAgICAgICAgQGxpZ2h0Ymx1ZTtcblxuLy8gVGl0bGVcbkBpbXBhYy1kYXNoYm9hcmQtdGl0bGUtY29sb3I6ICAgICAgICAgICAgICAgICAgIEBwdXJwbGU7XG5AaW1wYWMtZGFzaGJvYXJkLXRpdGxlLWxhYmVsLWNvbG9yOiAgICAgICAgICAgICBAZGFya2JsdWU7XG5AaW1wYWMtZGFzaGJvYXJkLXRpdGxlLWxhYmVsLWNyZWF0ZS1jb2xvcjogICAgICB3aGl0ZTtcbkBpbXBhYy1kYXNoYm9hcmQtc291cmNlLWNvbG9yOiAgICAgICAgICAgICAgICAgIEBpbXBhYy1kYXNoYm9hcmQtdGl0bGUtbGFiZWwtY29sb3I7XG5AaW1wYWMtZGFzaGJvYXJkLWJ1dHRvbnMtYm9yZGVyLXJhZGl1czogICAgICAgICA0cHg7XG5cbi8vIENyZWF0ZVxuQGltcGFjLWRhc2hib2FyZC1jcmVhdGUtYnV0dG9uLWNvbG9yOiAgICAgICAgICAgQGltcGFjLWRhc2hib2FyZC10aXRsZS1jb2xvcjtcblxuLy9JbmZvLXRleHRcbkBpbXBhYy1kYXNoYm9hcmQtaW5mby10ZXh0LWNvbG9yOiAgICAgICAgICAgICAgIHdoaXRlO1xuQGltcGFjLWRhc2hib2FyZC1pbmZvLXRleHQtYmFja2dyb3VuZC1jb2xvcjogICAgcmdiYSgyMywzOCw0NSwgMC43KTtcbkBpbXBhYy1kYXNoYm9hcmQtaW5mby10ZXh0LWZvbnQtc2l6ZTogICAgICAgICAgIDI1cHg7XG5AaW1wYWMtZGFzaGJvYXJkLWluZm8tdGV4dC1mb250LXdlaWdodDogICAgICAgICAzMDA7XG5cbi8vIERhc2hib2FyZCBTZWxlY3RvclxuICAvLyBUYWJzXG5AaW1wYWMtZGFzaGJvYXJkLXNlbGVjdG9yLWJvcmRlcjogICAgICAgICAgICAgICAxcHggc29saWQgQGltcGFjLWRhc2hib2FyZC1ib3JkZXJzLWNvbG9yO1xuQGltcGFjLWRhc2hib2FyZC1zZWxlY3Rvci10YWJzLW1hcmdpbjogICAgICAgICAgMCAycHggMCAwO1xuQGltcGFjLWRhc2hib2FyZC1zZWxlY3Rvci10YWJzLXBhZGRpbmc6ICAgICAgICAgMTBweCA4cHggMTBweCAxNXB4O1xuQGltcGFjLWRhc2hib2FyZC1zZWxlY3Rvci10YWJzLWJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuQGltcGFjLWRhc2hib2FyZC1zZWxlY3Rvci10YWJzLWFjdGl2ZS1iYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuQGltcGFjLWRhc2hib2FyZC1zZWxlY3Rvci10YWJzLWNvbG9yOiAgICAgICAgICAgYmxhY2s7XG5AaW1wYWMtZGFzaGJvYXJkLXNlbGVjdG9yLXRhYnMtYWN0aXZlLWNvbG9yOiAgICBAcHVycGxlO1xuXG4vLyBXaWRnZXQgc2VsZWN0b3JcbkBpbXBhYy1kYXNoYm9hcmQtd2lkZ2V0LXNlbGVjdG9yLWJnOiAgICAgICAgICAgICMyMzM4NDU7XG5AaW1wYWMtZGFzaGJvYXJkLXdpZGdldC1zZWxlY3Rvci10ZXh0LWNvbG9yOiAgICB3aGl0ZTtcbkBpbXBhYy1kYXNoYm9hcmQtd2lkZ2V0LXNlbGVjdG9yLXdpZGdldC1pdGVtLW1pbi1oZWlnaHQ6IDBweDtcblxuLy8gV2lkZ2V0cyBjb250YWluZXJcbkBpbXBhYy1wbGFjZWhvbGRlci1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAgIDJweCBkYXNoZWQgQGltcGFjLWRhc2hib2FyZC1ib3JkZXJzLWNvbG9yO1xuQGltcGFjLXdpZGdldHMtY29udGFpbmVyLXNpZGUtcGFkZGluZzogICAgICAgICAgMHB4O1xuQGltcGFjLXBhZGRpbmctYmV0d2Vlbi13aWRnZXRzOiAgICAgICAgICAgICAgICAgMTJweDtcbkBpbXBhYy1taW5pbXVtLXdpZGdldC1zaXplOiAgICAgICAgICAgICAgICAgICAgIDI1MHB4O1xuQGltcGFjLWJpZy13aWRnZXQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICAgNTY1cHg7XG5cbi8vIEJ1dHRvbnNcbkBpbXBhYy1idG4tc2hhZGRlZC1iZzogICAgICAgICAgICAgICAgICAgICAgICAgQGRhcmtibHVlO1xuQGltcGFjLWJ0bi1zaGFkZGVkLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICBAbWVkaXVtYmx1ZTtcblxuLy8gRGFzaGJvYXJkIE1vZGFsc1xuQGltcGFjLWRhc2hib2FyZC1sb2FkaW5nLXNwaW5uZXI6ICAgICAgICAgICAgICAgd2hpdGU7XG5AaW1wYWMtZGFzaGJvYXJkLXRlbXBsYXRlcy1zZWxlY3RlZC1iYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI5LCAxOTcsIDU3LCAwLjYyKTtcblxuLy8gV2lkZ2V0c1xuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gR2xvYmFsXG5AaW1wYWMtd2lkZ2V0LWxpbmstY29sb3I6ICAgICAgICAgICAgICAgICAgICAgIEBwdXJwbGU7XG5AaW1wYWMtd2lkZ2V0LWJ1dHRvbnMtY29sb3I6ICAgICAgICAgICAgICAgICAgIEBpbXBhYy13aWRnZXQtbGluay1jb2xvcjtcbkBpbXBhYy13aWRnZXQtdGlsZS1zZWxlY3RlZC1jb2xvcjogICAgICAgICAgICAgQGltcGFjLXdpZGdldC1saW5rLWNvbG9yO1xuQGltcGFjLXdpZGdldC1iYWNrZ3JvdW5kLWNvbG9yOiAgICAgICAgICAgICAgICB3aGl0ZTtcbkBpbXBhYy13aWRnZXQtYm9yZGVyOiAgICAgICAgICAgICAgICAgICAgICAgICAgc29saWQgMXB4IGRhcmtlbihAbGlnaHRncmF5LDEwJSk7XG5AaW1wYWMtd2lkZ2V0LXRleHQtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICM1QjY2Njc7XG5AaW1wYWMtd2lkZ2V0LXRleHQtY29sb3ItbWVkaXVtOiAgICAgICAgICAgICAgIGxpZ2h0ZW4oQGltcGFjLXdpZGdldC10ZXh0LWNvbG9yLDI1JSk7XG5AaW1wYWMtd2lkZ2V0LXRleHQtY29sb3ItbGlnaHQ6ICAgICAgICAgICAgICAgIGxpZ2h0ZW4oQGltcGFjLXdpZGdldC10ZXh0LWNvbG9yLDQwJSk7IC8vI2FjYjBiMVxuQGltcGFjLXdpZGdldC1ib3JkZXJzLWNvbG9yOiAgICAgICAgICAgICAgICAgICBsaWdodGVuKEBpbXBhYy13aWRnZXQtdGV4dC1jb2xvci1saWdodCwxMCUpOyAvLyNmM2Y0ZjRcbkBpbXBhYy13aWRnZXQtc2Nyb2xsYmFyLWNvbG9yOiAgICAgICAgICAgICAgICAgIzIzMzg0NTtcbkBpbXBhYy13aWRnZXQtbG9hZGluZy1zcGlubmVyOiAgICAgICAgICAgICAgICAgIzY3QkJFOTtcbkBpbXBhYy13aWRnZXQtcmV2ZXJzZS1jb2xvcjogICAgICAgICAgICAgICAgICAgIzFFMzAzQjtcbkBpbXBhYy13aWRnZXQtbWVudXMtaG92ZXItYmFja2dyb3VuZC1jb2xvcjogICAgI2VjZWNlYztcblxuLy8gVGl0bGVcbkBpbXBhYy13aWRnZXQtdGl0bGUtdGV4dC1jb2xvcjogICAgICAgICAgICAgICAgZGFya2VuKEBpbXBhYy13aWRnZXQtdGV4dC1jb2xvciw1JSk7XG5AaW1wYWMtd2lkZ2V0LXRpdGxlLWJnOiAgICAgICAgICAgICAgICAgICAgICAgIEBpbXBhYy13aWRnZXQtYmFja2dyb3VuZC1jb2xvcjtcbkBpbXBhYy13aWRnZXQtdGl0bGUtYm9yZGVyOiAgICAgICAgICAgICAgICAgICAgc29saWQgMXB4IEBpbXBhYy13aWRnZXQtYm9yZGVycy1jb2xvcjtcbkBpbXBhYy13aWRnZXQtdGl0bGUtdGV4dC10cmFuc2Zvcm06ICAgICAgICAgICAgdXBwZXJjYXNlO1xuQGltcGFjLXdpZGdldC10aXRsZS10ZXh0LXNpemU6ICAgICAgICAgICAgICAgICAxMnB4O1xuQGltcGFjLXdpZGdldC10aXRsZS1ib3JkZXItcmFkaXVzOiAgICAgICAgICAgICA1cHggNXB4IDBweCAwcHg7XG5AaW1wYWMtd2lkZ2V0LXRvcC1idXR0b25zLWNvbG9yOiAgICAgICAgICAgICAgIEBpbXBhYy13aWRnZXQtdGV4dC1jb2xvci1saWdodDtcblxuLy8gQ29udGVudFxuQGltcGFjLXdpZGdldC1jb250ZW50LWJvcmRlci1yYWRpdXM6ICAgICAgICAgICAwcHggMHB4IDVweCA1cHg7XG5AaW1wYWMtd2lkZ2V0LWxpbmVzLWNvbnRhaW5lci1tYXgtaGVpZ2h0OiAgICAgIDIwMHB4O1xuXG4vLyBTZXR0aW5nc1xuLy8gUGFyYW0gc2VsZWN0b3JcbkBpbXBhYy13aWRnZXQtcGFyYW0tc2VsZWN0b3ItY29sb3I6ICAgICAgICAgICAgQGltcGFjLXdpZGdldC1saW5rLWNvbG9yO1xuLy8gSGlzdCBNb2RlIENob3NlclxuQGltcGFjLXdpZGdldC1oaXN0LXRleHQtdHJhbnNmb3JtOiAgICAgICAgICAgICB1cHBlcmNhc2U7XG5AaW1wYWMtd2lkZ2V0LWhpc3QtdGV4dC1zaXplOiAgICAgICAgICAgICAgICAgIDEycHg7XG5AaW1wYWMtd2lkZ2V0LWhpc3QtdGV4dC1jb2xvcjogICAgICAgICAgICAgICAgIEBpbXBhYy13aWRnZXQtdGV4dC1jb2xvci1saWdodDtcbi8vIFBhcmFtcyBwaWNrZXJcbkBpbXBhYy13aWRnZXQtcGFyYW1zLXBpY2tlci1iZzogICAgICAgICAgICAgICAgQGltcGFjLXdpZGdldC1yZXZlcnNlLWNvbG9yO1xuQGltcGFjLXdpZGdldC1wYXJhbXMtcGlja2VyLXVuY2hlY2tlZC1iZzogICAgICAjYzJjNGM0O1xuLy8gTGltaXQgZW50cmllc1xuQGltcGFjLXdpZGdldC1saW1pdC1lbnRyaWVzLWNvbG9yOiAgICAgICAgICAgICBAaW1wYWMtd2lkZ2V0LXJldmVyc2UtY29sb3I7XG5cbi8vIEdsb2JhbHMgYW5kIE1peGluc1xuQGltcGFjLXdpZGdldC1zZWxlY3RhYmxlLWNvbG9yOiAgICAgICAgICAgICAgICBAaW1wYWMtd2lkZ2V0LWxpbmstY29sb3I7XG5cbi8vIEVkaXQgc2V0dGluZ3NcbkBpbXBhYy13aWRnZXQtc3ViLWJnLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgZGFya2VuKEBpbXBhYy13aWRnZXQtYmFja2dyb3VuZC1jb2xvciw2JSk7XG5AaW1wYWMtd2lkZ2V0LXN1Yi1iZy1jb2xvci1saWdodDogICAgICAgICAgICAgIGxpZ2h0ZW4oQGltcGFjLXdpZGdldC1zdWItYmctY29sb3IsNSUpOyAvL2YzZjRmNFxuXG4vLyBBY2NvdW50cyBDb21wYXJpc29uXG5AaW1wYWMtd2lkZ2V0LWFjY291bnRzLWNvbXBhcmlzb24tbGluZXMtY29udGFpbmVyLW1heC1oZWlnaHQ6IDIyMHB4O1xuXG4vLyBTYWxlcyBicmVhay1ldmVuXG5AaW1wYWMtd2lkZ2V0LXNhbGVzLWJyZWFrLWV2ZW4tYmc6ICAgICAgICAgICAgIHJnYigyNSw0MCw0OSk7XG5AaW1wYWMtd2lkZ2V0LXNhbGVzLWJyZWFrLWV2ZW4tdGV4dC1jb2xvcjogICAgICMxZGU5YjY7XG5cbi8vIEtQSXNcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEtwaSBiYXJcbkBrcGlzLWJhci1iYWNrZ3JvdW5kLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgd2hpdGU7XG5Aa3Bpcy1iYXItYm94LXNoYWRvdzogICAgICAgICAgICAgICAgICAgICAgICAgIDBweCAxcHggOHB4IC00cHg7XG4vLyBLcGlcbkBrcGktYmFja2dyb3VuZC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgd2hpdGU7XG5Aa3BpLXRyaWdnZXJlZC1ib3JkZXItYm90dG9tOiAgICAgICAgICAgICAgICAgIDRweCBzb2xpZCBAYnJhbmQtZGFuZ2VyO1xuQGtwaS1tYXgtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA5NXB4O1xuQGtwaS1lZGl0aW5nLW1heC1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICA5MHB4OyAvLyBoZWlnaHQgdG8gYmUgYWRkZWQgdG8gdGhlIEBrcGktbWF4LWhlaWdodCB3aGVuIGluIGVkaXRpbmcgbW9kZS5cbkBrcGktY29udGVudC1lZGl0aW5nLWhlaWdodC1idWZmZXI6ICAgICAgICAgICAgNXB4OyAvLyBoZWlnaHQgdG8gYmUgbWludXNlZCBmcm9tIHRoZSBAa3BpLWVkaXRpbmctbWF4LWhlaWdodCB0byBldmVuIHRoZSBrcGkgaGVpZ2h0IGFuZCB0aGUga3BpIGNvbnRlbnQgaGVpZ2h0LlxuLy8gS3BpIHRvcC1saW5lXG5Aa3BpLXRvcC1saW5lLWJhY2tncm91bmQtY29sb3I6ICAgICAgICAgICAgICAgIGdyZXk7XG5Aa3BpLXRvcC1saW5lLXRyaWdnZXJlZC1iYWNrZ3JvdW5kLWNvbG9yOiAgICAgIGJsYWNrO1xuQGtwaS10b3AtbGluZS1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAgICA3cHg7XG5Aa3BpLXRvcC1saW5lLWJveC1zaGFkb3c6ICAgICAgICAgICAgICAgICAgICAgIG5vbmU7XG4vLyBrcGkgY29udGVudFxuQGtwaS10ZXh0LWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmV5O1xuQGtwaS10ZXh0LXRyaWdnZXJlZC1jb2xvcjogICAgICAgICAgICAgICAgICAgICBibGFjaztcbkBrcGktaWNvbi1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JleTtcbkBrcGktaWNvbi10cmlnZ2VyZWQtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgYmxhY2s7XG4vLyBrcGkgc2V0dGluZ3NcbkBrcGktc2V0dGluZ3MtZm9jdXMtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgQG1ibHVlO1xuQGtwaS1zZXR0aW5ncy1lcnJvci1jb2xvcjogICAgICAgICAgICAgICAgICAgICBAYnJhbmQtZGFuZ2VyO1xuQGtwaS1zZXR0aW5ncy1yZW1vdmUtYmFja2dyb3VuZDogICAgICAgICAgICAgICAjNGM0NzQ5O1xuQGtwaS1zZXR0aW5ncy1yZW1vdmUtYmFja2dyb3VuZC1ob3ZlcjogICAgICAgICBkYXJrZW4oQGJyYW5kLWRhbmdlciwgNSUpO1xuQGtwaS1zZXR0aW5ncy1hbGVydC1jb25maWctYmFja2dyb3VuZDogICAgICAgICAjNGM0NzQ5O1xuQGtwaS1zZXR0aW5ncy1hbGVydC1jb25maWctYmFja2dyb3VuZC1ob3ZlcjogICBAbWJsdWU7XG5Aa3BpLW5lZ2F0aXZlLWFsZXJ0LWxhYmVsLWJhY2tncm91bmQtY29sb3I6ICAgIGxpZ2h0ZW4oI2ZmMDAwMCwgMzAlKTtcblxuLy8gV2lkZ2V0cyBwb3AtdXBzXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AaW1wYWMtd2lkZ2V0LXBvcHVwLXRpdGxlLWJhY2tncm91bmQtY29sb3I6ICAgICMxOTI4MzE7XG5AaW1wYWMtd2lkZ2V0LXBvcHVwLW1lc3NhZ2UtYmFja2dyb3VuZC1jb2xvcjogIHJnYigyNDQsIDI0OCwgMjQ5KTtcbkBpbXBhYy13aWRnZXQtcG9wdXAtdGl0bGUtdGV4dC1jb2xvcjogICAgICAgICAgd2hpdGU7XG5AaW1wYWMtd2lkZ2V0LXBvcHVwLW1lc3NhZ2UtdGV4dC1jb2xvcjogICAgICAgIEBpbXBhYy13aWRnZXQtdGV4dC1jb2xvcjtcblxuLy8gRGVtbyBkYXRhIG1vZGVcbkBpbXBhYy13aWRnZXQtZGVtby1kYXRhLWxpbmstY29sb3I6ICAgICAgICAgICAgQG1ncmVlbjtcbiIsIi8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xuLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMT0JBTCBTVFlMRVNcbioqICAgICAgICBUaGlzIHN0eWxlc2hlZXQgc2hvdWxkIG9ubHkgY29udGFpbiBzdHlsZXMgYXBwbGllZCBnbG9iYWwgb3IgaW5cbioqICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIgb3IgbW9yZSBjb21wb25lbnRzLlxuLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXG5cbi8vIE5vdCBpZGVhbDogaW50ZW5kcyB0byBmb3JjZSBhIHNjcm9sbGJhciBvbiB0aGUgd2luZG93IChub3Qgb24gdGhlIGJvZHkpLFxuLy8gc28gdGhhdCB0aGUgdG9vbHRpcHMgYXBwZW5kZWQgdG8gYm9keSBhcmUgbm90IG1ha2luZyB0aGUgc2NyZWVuIGZsaWNrZXJpbmcuXG4vLyAoc2VlIHdoZW4gdGhlcmUgaXMgb25seSAxIGludm9pY2VzIGxpc3Qgd2lkZ2V0IG9uIHRoZSBkYXNoYm9hcmQpXG4vLyBJdCBpcyBiZXR0ZXIgaWYgdGhlIHRvb2x0aXBzIGNhbiBiZSBhcHBlbmRlZCB0byBib2R5IGJlY2F1c2Ugb3RoZXJ3aXNlIGl0J3Ncbi8vIG1lc3NpbmcgdGhlIGFsdGVybmF0ZS1iZygpIG1peGluZyAoYnkgYWRkaW5nIGEgY2hpbGQgdG8gdGhlIHBhcmVudCBlbGVtZW50KVxuYm9keSB7XG4gIGhlaWdodDogMTAxJSAhaW1wb3J0YW50O1xufVxuXG4uYW5hbHl0aWNzIHtcblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gLS0tIFRpdGxlc1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICBoMiB7XG4gICAgbWFyZ2luLXRvcDogMnB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBjb2xvcjogQGltcGFjLXdpZGdldC10ZXh0LWNvbG9yO1xuICB9XG5cbiAgaDMge1xuICAgIG1hcmdpbjogMHB4O1xuICAgIC5sZWZ0LXRoaW4oKTtcbiAgfVxuXG4gIGg0IHtcbiAgICBjb2xvcjogQGltcGFjLXdpZGdldC10ZXh0LWNvbG9yO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgfVxuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyAtLS0gQ29sb3JzXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIC5wb3NpdGl2ZSwuZ3JlZW4ge1xuICAgIGNvbG9yOiBAaW1wYWMtcG9zaXRpdmUgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5uZWdhdGl2ZSwucmVkIHtcbiAgICBjb2xvcjogQGltcGFjLW5lZ2F0aXZlICFpbXBvcnRhbnQ7XG4gIH1cblxuICAucG9zaXRpdmUyIHtcbiAgICBjb2xvcjogQGltcGFjLXBvc2l0aXZlMiAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm5lZ2F0aXZlMiB7XG4gICAgY29sb3I6IEBpbXBhYy1uZWdhdGl2ZTIgIWltcG9ydGFudDtcbiAgfVxuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyAtLS0gQmFzZSBlbGVtZW50c1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICBhIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBjb2xvcjogQGltcGFjLXdpZGdldC1saW5rLWNvbG9yO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gIC5pbnB1dC1ncm91cCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICBzZWxlY3Qge1xuICAgIG1hcmdpbi10b3A6IDVweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtd2lkZ2V0LWJhY2tncm91bmQtY29sb3I7XG4gICAgaGVpZ2h0OiAzMnB4O1xuICB9XG5cbiAgcHJlIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgcGFkZGluZzogMHB4O1xuICAgIG1hcmdpbjogMXB4IDBweCA4cHggMHB4O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQsIGtwaXMtYmFyIC5rcGkge1xuICAgIDo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgICAgd2lkdGg6IDZweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIH1cblxuICAgIDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbihAaW1wYWMtd2lkZ2V0LXNjcm9sbGJhci1jb2xvciwzNSUpO1xuICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKEBpbXBhYy13aWRnZXQtc2Nyb2xsYmFyLWNvbG9yLDQwJSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIC0tLSBDb21tb24gYWRqdXN0bWVudHNcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC5ub3BhZGRpbmcge1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICAubm9tYXJnaW4ge1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyAtLS0gQ3VzdG9tIGVsZW1lbnRzXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIC5idG4uYnRuLXNoYWRlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGltcGFjLWJ0bi1zaGFkZGVkLWJnO1xuICAgIGJvcmRlcjogc29saWQgMXB4IGRhcmtlbihAaW1wYWMtYnRuLXNoYWRkZWQtYmcsNSUpO1xuICAgIGNvbG9yOiBAaW1wYWMtYnRuLXNoYWRkZWQtY29sb3I7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcblxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6IGxpZ2h0ZW4oQGltcGFjLWJ0bi1zaGFkZGVkLWNvbG9yLDUlKTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oQGltcGFjLWJ0bi1zaGFkZGVkLWJnLDUlKTtcbiAgICB9XG4gIH1cblxuICAucHJpY2Uge1xuICAgIC5jZW50ZXItYm9sZCgpO1xuICB9XG5cbiAgLmN1cnJlbmN5IHtcbiAgICAuY2VudGVyLXRoaW4oKTtcbiAgICBjb2xvcjogQGltcGFjLXdpZGdldC10ZXh0LWNvbG9yLW1lZGl1bTtcbiAgfVxuXG4gIC5sZWdlbmQge1xuICAgIC5jZW50ZXItc21hbGwoKTtcbiAgICAuc2Nyb2xsYWJsZSgpO1xuICAgIGNvbG9yOiBAaW1wYWMtd2lkZ2V0LXRleHQtY29sb3ItbGlnaHQ7XG4gIH1cblxuICAubG9hZGVyIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGkge1xuICAgICAgLmxvYWRlci1zdHlsZSgpO1xuICAgIH1cbiAgICBwIHtcbiAgICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgfVxuICB9XG5cbiAgLnJpZ2h0LXBhbmVsIHtcbiAgICBib3JkZXItbGVmdDogc29saWQgMXB4ICNlNmU2ZTY7XG4gIH1cblxuICAuc2VsZWN0b3Ige1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGNvbG9yOiBAbWVkaXVtYmx1ZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXJcbiAgfVxuXG4gIC50aWxlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjQ3LDI0NywyNDcpO1xuICAgIGJveC1zaGFkb3c6IDBweCA3cHggMTBweCAtN3B4ICMxNzI2MmQ7XG4gICAgaGVpZ2h0OiA0NXB4O1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oI0YxRjlGRiwgMyUpO1xuICAgIH1cbiAgICAuY29sb3JlZC1hcmVhIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzRkM0RkY7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgIHBhZGRpbmc6IDVweCAxMHB4O1xuICAgICAgbWluLXdpZHRoOiA4JTtcbiAgICAgICYuc2VsZWN0ZWQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtd2lkZ2V0LXRpbGUtc2VsZWN0ZWQtY29sb3I7XG4gICAgICB9XG4gICAgfVxuICAgIC5tYWluLXRleHQge1xuICAgICAgY29sb3I6IEBpbXBhYy13aWRnZXQtdGV4dC1jb2xvcjtcbiAgICAgIHBhZGRpbmc6IDIwcHggMHB4IDBweCA1cHg7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB9XG4gIH1cblxuICAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gICAgLnNjcm9sbGFibGUoKTtcbiAgICBtYXgtaGVpZ2h0OiBAaW1wYWMtd2lkZ2V0LWxpbmVzLWNvbnRhaW5lci1tYXgtaGVpZ2h0O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIHBhZGRpbmc6IDBweCAxNXB4O1xuXG4gICAgLnJvdy53aWRnZXQtbGluZSB7XG4gICAgICBwYWRkaW5nOiA1cHg7XG4gICAgICBjb2xvcjogQG1lZGl1bWJsdWU7XG5cbiAgICAgICYuaGVhZGVyIHtcbiAgICAgICAgLmZvbnQoMTJweCw1MDAsQGltcGFjLXdpZGdldC10ZXh0LWNvbG9yLW1lZGl1bSk7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICB9XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogQHNjcmVlbi14cy1tYXgpIHtcbiAgICAgICAgbWFyZ2luOiBpbmhlcml0O1xuICAgICAgICBtYXJnaW4tbGVmdDogLTNweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtM3B4O1xuICAgICAgICBwYWRkaW5nOiAycHg7XG5cbiAgICAgICAgJiA+IFtjbGFzcyo9J2NvbC0nXSB7XG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiAzcHg7XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogM3B4O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGkuZmEge1xuICAgICAgICBtaW4td2lkdGg6IDEycHg7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDEycHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnJvdyAuZGFzaGVkIHtcbiAgICAgIGJvcmRlci1ib3R0b206IGRhc2hlZCAxcHggQGltcGFjLXdpZGdldC1ib3JkZXJzLWNvbG9yO1xuICAgICAgcGFkZGluZy1ib3R0b206IDNweDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDNweDtcbiAgICB9XG5cbiAgICAucm93LmxpbmVzLWdyb3VwIHtcbiAgICAgIGJvcmRlci10b3A6IHNvbGlkIDFweCBAbGlnaHRncmF5O1xuICAgIH1cbiAgfVxufVxuXG4udmVydGljYWwtc2Nyb2xsIHtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xufVxuXG4uaG9yaXpvbnRhbC1zY3JvbGwge1xuICBvdmVyZmxvdy14OiBzY3JvbGw7XG59XG5cbi8vIFRoZSB0b29sdGlwcyBzaG91bGQgYmUgYXBwZW5kIHRvIGJvZHlcbi50b29sdGlwLmltcGFjLXdpZGdldHMtdG9vbHRpcCAudG9vbHRpcC1pbm5lci5uZy1iaW5kaW5nIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgYmFja2dyb3VuZC1jb2xvcjogQG1kYXJrYmx1ZTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBzdHJvbmcge1xuICAgIGNvbG9yOiBAbWdyZWVuO1xuICB9XG59XG5cbi5zb3J0YWJsZS10aXRsZSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGl2IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIH1cbn1cblxuZGl2W25nLW1lc3NhZ2VzXSB7XG4gIGNvbG9yOiBAcmVkO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIC0tLSBCb290c3RyYXAgb3ZlcnJpZGVzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLmhhcy1lcnJvciAuZm9ybS1jb250cm9sIHtcbiAgYm9yZGVyLWNvbG9yOiBAYnJhbmQtZGFuZ2VyO1xuICAmOmZvY3VzIHsgYm9yZGVyLWNvbG9yOiBAYnJhbmQtZGFuZ2VyIH1cbn1cblxuLmhhcy1zdWNjZXNzIC5mb3JtLWNvbnRyb2wge1xuICBib3JkZXItY29sb3I6IEBicmFuZC1zdWNjZXNzO1xuICAmOmZvY3VzIHsgYm9yZGVyLWNvbG9yOiBAYnJhbmQtc3VjY2VzcyB9XG59XG5cbi8vIHJlbW92ZSBndXR0ZXJzIGZyb20gQm9vc3RyYXAgcm93XG4ucm93Lm5vLWd1dHRlcnMge1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuXG4vLyByZW1vdmUgZ3V0dGVycyBmcm9tIEJvb3N0cmFwIGNvbHVtblxuW2NsYXNzXj1cImNvbC1cIl0ubm8tZ3V0dGVycyxcbltjbGFzcyo9XCIgY29sLVwiXS5uby1ndXR0ZXJzIHtcbiAgcGFkZGluZy1yaWdodDogMDtcbiAgcGFkZGluZy1sZWZ0OiAwO1xufVxuIiwiLmZvbnQoQHNpemUsQHdlaWdodCxAY29sb3IpIHtcbiAgZm9udC13ZWlnaHQ6QHdlaWdodDtcbiAgZm9udC1zaXplOkBzaXplO1xuICBjb2xvcjpAY29sb3I7XG59XG5cbi5jZW50ZXItYm9sZCAoQG1hcmdpbi10b3A6IDMwcHgpIHtcbiAgLmZvbnQoMjJweCwgOTAwLCBAaW1wYWMtd2lkZ2V0LXRleHQtY29sb3IpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbi10b3A6IEBtYXJnaW4tdG9wO1xufVxuXG4uY2VudGVyLXRoaW4gKCkge1xuICAuZm9udCgxNnB4LCAzMDAsIEBpbXBhYy13aWRnZXQtdGV4dC1jb2xvcik7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmNlbnRlci1zbWFsbCAoKSB7XG4gIC5mb250KDEycHgsIDMwMCwgQGltcGFjLXdpZGdldC10ZXh0LWNvbG9yKTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ubGVmdC10aGluIChAbWFyZ2luLXRvcDogMHB4KSB7XG4gIC5mb250KDE0cHgsIDMwMCwgQGltcGFjLXdpZGdldC10ZXh0LWNvbG9yKTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgbWFyZ2luLXRvcDogQG1hcmdpbi10b3A7XG59XG5cbi53aWRnZXQtaGVpZ2h0IChAaGVpZ2h0OiBAaW1wYWMtbWluaW11bS13aWRnZXQtc2l6ZSkge1xuICBtaW4taGVpZ2h0OiBAaGVpZ2h0O1xuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1tZC1taW4pIHtcbiAgICBoZWlnaHQ6IEBoZWlnaHQ7XG4gICAgLmNoYXJ0LWNvbnRhaW5lciB7XG4gICAgICBtYXgtd2lkdGg6IEBoZWlnaHQgKyAyMHB4O1xuICAgICAgbWF4LWhlaWdodDogQGhlaWdodCAtIDEyNXB4O1xuICAgICAgbWFyZ2luOiBhdXRvO1xuICAgIH1cbiAgfVxufVxuXG4uc2hvcnQtd2lkZ2V0ICgpIHtcbiAgLndpZGdldC1oZWlnaHQoKTtcbiAgLmVkaXQge1xuICAgIG1heC1oZWlnaHQ6IEBpbXBhYy1taW5pbXVtLXdpZGdldC1zaXplIC0gMjBweDtcbiAgfVxufVxuXG4udGFsbC13aWRnZXQgKCkge1xuICAud2lkZ2V0LWhlaWdodChAaW1wYWMtYmlnLXdpZGdldC1zaXplKTtcbiAgLmVkaXQge1xuICAgIG1heC1oZWlnaHQ6IEBpbXBhYy1iaWctd2lkZ2V0LXNpemUgLSAyMHB4O1xuICAgIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgICAgIC5zY3JvbGxhYmxlKGhpZGRlbik7XG4gICAgfVxuICB9XG59XG5cbi5zY3JvbGxhYmxlIChAc2Nyb2xsLW1vZGU6IGF1dG8pIHtcbiAgb3ZlcmZsb3cteTogQHNjcm9sbC1tb2RlO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG59XG5cbi5zZWxlY3RhYmxlICgpIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXI6IHNvbGlkIDFweCBAaW1wYWMtd2lkZ2V0LWJhY2tncm91bmQtY29sb3I7XG4gIC5zZWxlY3Rpb24tdGFnIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICByaWdodDogMHB4O1xuICAgIG1hcmdpbi10b3A6IC02cHg7XG4gICAgd2lkdGg6IDEwcHg7XG4gICAgaGVpZ2h0OiAyOXB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgfVxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKEBpbXBhYy13aWRnZXQtc2VsZWN0YWJsZS1jb2xvciwgMjIlKTtcbiAgfVxuICAmLm5vLXNlbGVjdCB7XG4gICAgY3Vyc29yOiBhdXRvO1xuICAgICY6aG92ZXIgeyBjb2xvcjogQG1lZGl1bWJsdWU7IH1cbiAgfVxufVxuXG4uYWx0ZXJuYXRlLWJnIChAZXZlbi1jb2xvcjogQGltcGFjLXdpZGdldC1zdWItYmctY29sb3IpIHtcbiAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBldmVuLWNvbG9yO1xuICB9XG4gICY6bnRoLWNoaWxkKG9kZCkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy13aWRnZXQtYmFja2dyb3VuZC1jb2xvcjtcbiAgfVxufVxuXG4uZWRpdC1wYW5lbC1zdHlsZSgpIHtcbiAgLnNjcm9sbGFibGUoKTtcbiAgY29sb3I6IEBpbXBhYy13aWRnZXQtdGV4dC1jb2xvcjtcbiAgcGFkZGluZzogMnB4O1xuICBmb250LXNpemU6IDEycHg7XG5cbiAgLmJvdHRvbS1idXR0b25zIHtcbiAgICAuYnRuIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgICAgcGFkZGluZzogM3B4IDEzcHg7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgZm9udC1zaXplOiAxMnB4O1xuXG4gICAgICAmLmJ0bi1kZWZhdWx0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2MyYzRjNDtcbiAgICAgICAgYm9yZGVyOiBzb2xpZCAxcHggZGFya2VuKCNjMmM0YzQsMTAlKTtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICBib3JkZXI6IHNvbGlkIDFweCBkYXJrZW4oI2MyYzRjNCwyMCUpO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigjYzJjNGM0LDEwJSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBoNCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIC5mb250KDEycHgsbm9ybWFsLEBpbXBhYy13aWRnZXQtdGV4dC1jb2xvci1saWdodCk7XG4gIH1cblxuICAucGFydCB7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgIHBhZGRpbmc6IDEwcHggMHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy13aWRnZXQtc3ViLWJnLWNvbG9yLWxpZ2h0O1xuICAgIC8vIGNvbG9yOiAjNjI2ZDZkO1xuICAgIGJvcmRlcjogc29saWQgMXB4IEBpbXBhYy13aWRnZXQtYm9yZGVycy1jb2xvcjtcblxuICAgIGg1IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgIHBhZGRpbmc6IDBweCAxNXB4O1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIC5mb250KDEycHgsbm9ybWFsLEBpbXBhYy13aWRnZXQtdGV4dC1jb2xvci1saWdodCk7XG4gICAgfVxuXG4gICAgbGFiZWwge1xuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICB9XG5cbiAgICBzZWxlY3QuZm9ybS1jb250cm9sIHtcbiAgICAgIG1hcmdpbjogMHB4O1xuICAgICAgYm9yZGVyOiBzb2xpZCAxcHggI2FjYjBiMTtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICBjb2xvcjogIzcyNzI4YjtcbiAgICB9XG4gIH1cbn1cblxuLmxvYWRlci1zdHlsZShAY29sb3I6IEBpbXBhYy13aWRnZXQtbG9hZGluZy1zcGlubmVyKSB7XG4gIGNvbG9yOiBAY29sb3I7XG59XG5cbi5jb2x1bW4tZ3V0dGVyKEBndXR0ZXI6IEBncmlkLWd1dHRlci13aWR0aCkge1xuICBwYWRkaW5nLWxlZnQ6IEBndXR0ZXI7XG4gIHBhZGRpbmctcmlnaHQ6IEBndXR0ZXI7XG59XG5cbi53aWRnZXQtcG9wdXAoKSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBjb2xvcjogQGltcGFjLXdpZGdldC1wb3B1cC1tZXNzYWdlLXRleHQtY29sb3I7XG4gIFxuICAub3ZlcmxheSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGhlaWdodDogflwiY2FsYygxMDAlIC0gNHB4KVwiO1xuICAgIHdpZHRoOiB+XCJjYWxjKDEwMCUgLSA0cHgpXCI7XG4gICAgdG9wOiAycHg7XG4gICAgbGVmdDogMnB4O1xuICAgIG9wYWNpdHk6IDAuNjtcbiAgICB6LWluZGV4OiA1O1xuICB9XG5cbiAgLm1lc3NhZ2Uge1xuICAgIHotaW5kZXg6IDY7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIG1pbi1oZWlnaHQ6IDE2MHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuICAgIHRvcDogNDVweDtcbiAgICBsZWZ0OiA3JTtcbiAgICB3aWR0aDogODYlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy13aWRnZXQtcG9wdXAtbWVzc2FnZS1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBib3gtc2hhZG93OiAwcHggMHB4IDI1cHggMHB4O1xuXG4gICAgLnRpdGxlIHtcbiAgICAgIHBhZGRpbmc6IDJweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy13aWRnZXQtcG9wdXAtdGl0bGUtYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGNvbG9yOiBAaW1wYWMtd2lkZ2V0LXBvcHVwLXRpdGxlLXRleHQtY29sb3I7XG4gICAgICBtYXJnaW46IC0xcHggLTFweCAxMHB4IC0xcHg7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIH1cbiAgfVxufVxuIiwiQG1lZGlhIHByaW50IHtcbiAgYm9keSB7IGJhY2tncm91bmQtY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7IH1cbiAgLmFuYWx5dGljcyB7XG4gICAgcGFkZGluZy10b3A6IDBweCAhaW1wb3J0YW50O1xuICAgICNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAudGl0bGUtY29udGFpbmVyIHsgbWFyZ2luLXRvcDogMjBweDsgfVxuICAgIC53aWRnZXQtaXRlbSB7XG4gICAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gICAgICAuY29udGVudCAuY2hhcnQtY29udGFpbmVyIHtcbiAgICAgICAgbWF4LXdpZHRoOiAyNzBweDtcbiAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICBjYW52YXMge1xuICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC5yaWdodC1wYW5lbCB7XG4gICAgICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDA7XG4gICAgICAgIC5jaGFydC1jb250YWluZXIge1xuICAgICAgICAgIG1heC13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICBtYXgtaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICAgIGNhbnZhcyB7XG4gICAgICAgICAgICB3aWR0aDogODAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBoZWlnaHQ6IDgwJSAhaW1wb3J0YW50O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICAqIHsgdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50OyB9XG59XG4iLCIvLyBOT1RFOiBEbyBub3QgYWRkIHN0eWxlcyBmb3IgdGhlIGRlZmF1bHQgYnV0dG9uIG9yIGN1c3RvbSBpbmplY3RlZCBidXR0b25IdG1sIGhlcmUuXG4vLyAgICAgICB0aGUgcGFyZW50IHN0eWxlc2hlZXQgb2Ygd2hpY2ggdGhpcyBkaXJlY3RpdmUgaXMgZW1iZWRkZWQgd2l0aGluIHNob3VsZFxuLy8gICAgICAgY29udGFpbiB0aGUgc3R5bGVzLlxuXG4vLyBNb2RhbCBrcGlzIGFsZXJ0cyBzZXR0aW5nc1xuLmtwaS1hbGVydHMtc2V0dGluZ3Mge1xuICAubW9kYWwtaGVhZGVyIHsgZm9udC1zaXplOiAyMHB4OyB9XG5cbiAgLm1vZGFsLWJvZHkge1xuICAgIGxpbmUtaGVpZ2h0OiAyO1xuXG4gICAgdWwgeyBtYXJnaW4tdG9wOiAxMHB4OyB9XG5cbiAgICB1bCA+IGxpLmxpc3QtZ3JvdXAtaXRlbSB7XG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgcGFkZGluZzogNnB4IDE1cHg7XG4gICAgICBjb2xvcjogQGltcGFjLXdpZGdldC10ZXh0LWNvbG9yLW1lZGl1bTtcbiAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAuYWxlcnQtdG9nZ2xlIHtcbiAgICAgICAgJjpob3ZlciB7IGN1cnNvcjogcG9pbnRlcjsgfVxuICAgICAgfVxuXG4gICAgICAmLmFjdGl2ZSB7XG4gICAgICAgIGNvbG9yOiBAbWJsdWU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjYzRjYWNhO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5mYS5mYS10b2dnbGUtb24sIC5mYS5mYS10b2dnbGUtb2ZmIHtcbiAgICAgIGZvbnQtc2l6ZTogMTdweDtcbiAgICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgIH1cblxuICAgIHVsLnJlY2lwaWVudHMtbGlzdCB7XG4gICAgICBoZWlnaHQ6IDc1cHg7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2M0Y2FjYTtcblxuICAgICAgbGkge1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICB9XG5cbiAgICB9XG5cbiAgICBpbnB1dC5yZWNpcGllbnQtc2VhcmNoIHtcbiAgICAgIGNvbG9yOiBibGFjaztcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIHVsLmF2YWlsYWJsZSB7XG4gICAgICBtYXJnaW4tdG9wOiAwcHg7XG4gICAgfVxuICB9XG59XG4iLCIuYW5hbHl0aWNzIHtcbiAgcGFkZGluZy10b3A6IEBpbXBhYy1kYXNoYm9hcmQtcGFkZGluZy10b3A7XG4gIG1hcmdpbi1sZWZ0OiBAaW1wYWMtZGFzaGJvYXJkLW1hcmdpbi1sZWZ0O1xuXG4gIC8vIERlZmF1bHQgc21hbGwgc2NyZWVuIGJlaGF2aW91ciB0byBhbGxvdyBmb3IgdGhlIGNvbW1vbiB1c2Ugb2YgdG9wLWJhcnNcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkycHgpIHtcbiAgICBwYWRkaW5nLXRvcDogQGltcGFjLWRhc2hib2FyZC1zbS1wYWRkaW5nLXRvcDtcbiAgfVxuXG4gICYucGRmLW1vZGUgeyBwYWRkaW5nLXRvcDogMjBweDsgfVxuXG4gICYuc2hvdy1kaGIge1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMXM7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICAmLmhpZGUtZGhiIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgLy8gY29udGFpbnMgY3VzdG9taXNhYmxlIGltcGFjIGxvZ28sIGFuZCBoZWFkaW5nIHRleHQuXG4gICNkYXNoYm9hcmQtaGVhZGluZyB7XG4gICAgaW1nIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxNXB4O1xuICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgIG1heC1oZWlnaHQ6IDE1MHB4O1xuICAgICAgJi5wZGYtbW9kZTpob3ZlciB7IGN1cnNvcjogcG9pbnRlcjsgfVxuICAgIH1cbiAgICAuY2FwdGlvbiB7XG4gICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICBtYXJnaW46IDVweCAwcHg7XG4gICAgfVxuICB9XG5cbiAgI3N1Yi1tZW51IHtcbiAgICBtYXJnaW4tdG9wOiAxNXB4O1xuICAgIGgzIHtcbiAgICAgIGZvbnQtc2l6ZTogMjZweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgY29sb3I6ICMyMzM4NDU7XG4gICAgfVxuXG4gICAgLmZhLmZhLXRpbWVzIHtcbiAgICAgIG1hcmdpbjogNnB4O1xuICAgICAgY29sb3I6IGxpZ2h0ZW4oIzIzMzg0NSwgMTUlKTtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG4gIH1cblxuICAjd2lkZ2V0LXNlbGVjdG9yIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtZGFzaGJvYXJkLXdpZGdldC1zZWxlY3Rvci1iZztcbiAgICBjb2xvcjogQGltcGFjLWRhc2hib2FyZC13aWRnZXQtc2VsZWN0b3ItdGV4dC1jb2xvcjtcbiAgICBwYWRkaW5nOiAwcHggNDVweCAxMHB4IDQ1cHg7XG4gICAgbWFyZ2luOiAxMHB4IC00NXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcblxuICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7IC8qIENocm9tZS9TYWZhcmkgKi9cbiAgICAtbW96LXVzZXItc2VsZWN0OiBub25lOyAvKiBGaXJlZm94ICovXG4gICAgLW1zLXVzZXItc2VsZWN0OiBub25lOyAvKiBJRTEwKyAqL1xuICAgIC8qIFJ1bGVzIGJlbG93IG5vdCBpbXBsZW1lbnRlZCBpbiBicm93c2VycyB5ZXQgKi9cbiAgICAtby11c2VyLXNlbGVjdDogbm9uZTtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiBAc2NyZWVuLXhzLW1heCkge1xuICAgICAgcGFkZGluZzogMCAxNXB4IDEwcHggMTVweDtcbiAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICAudGl0bGUge1xuICAgICAgcGFkZGluZzogMTVweCAwcHg7XG4gICAgICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggbGlnaHRlbihAaW1wYWMtZGFzaGJvYXJkLXdpZGdldC1zZWxlY3Rvci1iZyw2JSk7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgcC5pbnN0cnVjdGlvbiB7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiBAc2NyZWVuLXNtLW1pbikge1xuICAgICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC53aWRnZXQtYWRkZWQuYmFkZ2Uge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG5cbiAgICAgIC5mYS5jbG9zZS1zZWxlY3RvciB7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICAgIHBhZGRpbmc6IDZweDtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgY29sb3I6IEBtbGlnaHRncmV5O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnRvcC1jb250YWluZXIge1xuICAgICAgbWFyZ2luOiAxNXB4IDBweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIH1cblxuICAgIC5zZWN0aW9uLWhlYWRlciB7XG4gICAgICBwYWRkaW5nOiAxMHB4IDIwcHg7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIG1pbi1oZWlnaHQ6IDQwcHg7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAuc2VjdGlvbi1saW5lcyB7XG4gICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgaGVpZ2h0OiAyMDBweDtcbiAgICAgIG1hcmdpbi1yaWdodDogLTEwcHg7XG4gICAgICBtYXJnaW4tbGVmdDogMHB4O1xuXG4gICAgICBwIHtcbiAgICAgICAgcGFkZGluZzogNXB4O1xuICAgICAgICBtYXJnaW46IDBweDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsICYuc2VsZWN0ZWQge1xuICAgICAgICAgIGNvbG9yOiBAaW1wYWMtZGFzaGJvYXJkLXdpZGdldC1zZWxlY3Rvci10ZXh0LWNvbG9yO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICAgICAgd2lkdGg6IDZweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICB9XG5cbiAgICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbihAaW1wYWMtZGFzaGJvYXJkLXdpZGdldC1zZWxlY3Rvci1iZywzJSk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oQGltcGFjLWRhc2hib2FyZC13aWRnZXQtc2VsZWN0b3ItYmcsNiUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmNhdGVnb3JpZXMtc2VjdGlvbiB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oQGltcGFjLWRhc2hib2FyZC13aWRnZXQtc2VsZWN0b3ItYmcsNiUpO1xuICAgICAgcGFkZGluZy1ib3R0b206IDE1cHg7XG5cbiAgICAgICYgPiAuc2VjdGlvbi1saW5lcyB7XG5cbiAgICAgICAgJiA+IFtjbGFzcyo9J2NvbC0nXTpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgcGFkZGluZzogM3B4IDEycHg7XG4gICAgICAgIH1cblxuICAgICAgICAubGluZS1pdGVtOmhvdmVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oQGltcGFjLWRhc2hib2FyZC13aWRnZXQtc2VsZWN0b3ItYmcsMyUpO1xuICAgICAgICB9XG4gICAgICAgIC5saW5lLWl0ZW0uc2VsZWN0ZWQge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy13aWRnZXQtbGluay1jb2xvcjtcbiAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAuYm94LXNoYWRvdygtMnB4IDJweCAxMHB4IC00cHggYmxhY2spO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5hcnJvdy1pY29uIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDMzcHg7XG4gICAgICAgIHJpZ2h0OiAtMTFweDtcbiAgICAgICAgei1pbmRleDogMTtcblxuICAgICAgICAuc3F1YXJlIHtcbiAgICAgICAgICB3aWR0aDogNTBweDtcbiAgICAgICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHRvcDogMTBweDtcbiAgICAgICAgICByaWdodDogMTdweDtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtd2lkZ2V0LWxpbmstY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICBpLmZhLmZhLWNhcmV0LXJpZ2h0IHtcbiAgICAgICAgICBmb250LXNpemU6IDUycHg7XG4gICAgICAgICAgY29sb3I6IEBpbXBhYy13aWRnZXQtbGluay1jb2xvcjtcbiAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHRvcDogLTEuNXB4O1xuICAgICAgICAgIHJpZ2h0OiAwcHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAud2lkZ2V0cy1zZWN0aW9uIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbihAaW1wYWMtZGFzaGJvYXJkLXdpZGdldC1zZWxlY3Rvci1iZywzJSk7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMTVweDtcblxuICAgICAgJiA+IC5zZWN0aW9uLWhlYWRlciB7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgY29sb3I6IEBpbXBhYy13aWRnZXQtbGluay1jb2xvcjtcbiAgICAgIH1cblxuICAgICAgJiA+IC5zZWN0aW9uLWxpbmVzIHtcbiAgICAgICAgcGFkZGluZzogM3B4IDBweDtcblxuICAgICAgICAuZmEuZmEtcGx1cy1jaXJjbGUge1xuICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAzcHg7XG4gICAgICAgIH1cblxuICAgICAgICAmID4gLmxpbmUtaXRlbXMtZ3JpZCB7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgaGVpZ2h0OiAwJTtcblxuICAgICAgICAgICYgPiAuZ3JpZC1pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMTNweDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICAvLyBBcHBsaWVzIGEgZmxleC1iYXNpcyBvZiAxLzMgZm9yIGVhY2ggZ3JpZCBpdGVtICgzIGNvbHVtbnMgcGVyIHJvdylcbiAgICAgICAgICAgIGZsZXg6IDAgMzEuMzMlO1xuICAgICAgICAgICAgLy8gQ3JlYXRlcyBhIHNtYWxsIGd1dHRlciBhcm91bmQgZWFjaCBncmlkIGl0ZW1cbiAgICAgICAgICAgIG1hcmdpbjogMCAxJTtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggQGltcGFjLWRhc2hib2FyZC13aWRnZXQtc2VsZWN0b3ItYmc7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiBAaW1wYWMtZGFzaGJvYXJkLXdpZGdldC1zZWxlY3Rvci13aWRnZXQtaXRlbS1taW4taGVpZ2h0O1xuXG4gICAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiBAc2NyZWVuLW1kLW1pbikge1xuICAgICAgICAgICAgICBmbGV4OiAwIDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oQGltcGFjLWRhc2hib2FyZC13aWRnZXQtc2VsZWN0b3ItYmcsNiUpO1xuICAgICAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBwLmxpbmUtaXRlbSB7XG4gICAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAuYm90dG9tIHtcbiAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICYgPiAuc3VnZ2VzdGlvbiB7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgb3BhY2l0eTogMC43O1xuICAgICAgICBhIHtcbiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogQGZsdXJvYmx1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICNkYXNoYm9hcmQtc2V0dGluZ3MtcGFuZWwge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW4tdG9wOiA1cHg7XG4gICAgJiA+IGRpdiB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICYgPiAqIHsgbWFyZ2luOiAwcHggM3B4OyB9XG4gICAgfVxuICAgIHNlbGVjdCB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBoZWlnaHQ6IDM0cHg7XG4gICAgICBwYWRkaW5nLXRvcDogMXB4O1xuICAgIH1cbiAgfVxuXG4gIC8vIG5vIHdpZGdldHMgLSBlbXB0eSBkYXNoYm9hcmQuXG4gICNuby13aWRnZXRzLWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1pbi1oZWlnaHQ6IDE1MHB4O1xuXG4gICAgLy8gYmFja2dyb3VuZCBpbWFnZSBhc3NldFxuICAgIGltZy5iZyB7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgdG9wOiAwO1xuICAgICAgbWluLXdpZHRoOiAxMDAlO1xuICAgICAgbWluLWhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICAvLyBubyB3aWRnZXRzIG1lc3NhZ2UgdGhhdCBzaXRzIGFib3ZlIGltYWdlIGFzc2V0XG4gICAgLmltcGFjLWluZm8tbWVzc2FnZSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgLmluZm8tdGV4dCB7XG4gICAgICAgIGZvbnQtc2l6ZTogQGltcGFjLWRhc2hib2FyZC1pbmZvLXRleHQtZm9udC1zaXplO1xuICAgICAgICBmb250LXdlaWdodDogQGltcGFjLWRhc2hib2FyZC1pbmZvLXRleHQtZm9udC13ZWlnaHQ7XG4gICAgICAgIHBhZGRpbmc6MjBweDtcbiAgICAgICAgbWluLWhlaWdodDogMTE1cHg7XG4gICAgICAgIGNvbG9yOiBAaW1wYWMtZGFzaGJvYXJkLWluZm8tdGV4dC1jb2xvcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGltcGFjLWRhc2hib2FyZC1pbmZvLXRleHQtYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBwYXJlbnQgZGl2IHNlY3Rpb24gZm9yIHdpZGdldHMgdG8gYmUgaG91c2VkLlxuICAjd2lkZ2V0cy1zZWN0aW9uIHtcbiAgICAvLyBjb250YWluZXIgZm9yIHdpZGdldHNcbiAgICAjd2lkZ2V0cy1jb250YWluZXIge1xuICAgICAgLy8gUXVpY2stZml4IHRvIGF2b2lkIHNjcmVlbiBmbG9ja2VyaW5nIHdoZW4gdG9vbHRpcHMgYXJlIGFwcGVuZGVkIHRvIGJvZHk6XG4gICAgICAvLyBtaW4taGVpZ2h0IHdpbGwgZm9yY2UgYSBzY3JvbGxiYXIgdG8gYXBwZWFyLi4uXG4gICAgICBtaW4taGVpZ2h0OiA3MDBweDtcbiAgICB9XG5cbiAgICAucGxhY2VIb2xkZXJCb3gge1xuICAgICAgbWFyZ2luOiBAaW1wYWMtcGFkZGluZy1iZXR3ZWVuLXdpZGdldHM7XG4gICAgICBoZWlnaHQ6IDI2N3B4O1xuICAgICAgd2lkdGg6IDMwMHB4O1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBib3JkZXI6IEBpbXBhYy1wbGFjZWhvbGRlci1ib3JkZXI7XG4gICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIH1cbiAgfVxufVxuXG4vLyBkYXNoYm9hcmQgZmFpbGVkIHRvIGxvYWQgbWVzc2FnZS5cbi5hbmFseXRpY3MubG9hZC1mYWlsZWQge1xuXG4gIHAgeyBmb250LXNpemU6IDIycHg7IH1cblxuICAuc2Vjb25kLW1zZyB7XG4gICAgcCB7XG4gICAgICBjb2xvcjogQGJyYW5kLWRhbmdlcjtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICB9XG4gIH1cbn1cblxuLy8gVG9vbHRpcHMgYXJlIGFwcGVuZCB0byBib2R5XG4udG9vbHRpcC5pbXBhYy13aWRnZXQtc2VsZWN0b3ItdG9vbHRpcCAudG9vbHRpcC1pbm5lci5uZy1iaW5kaW5nIHtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuXG4uaW1wYWMtd2lkZ2V0LXN1Z2dlc3Rpb24gLm1vZGFsLWJvZHkge1xuICBpbnB1dCx0ZXh0YXJlYSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgY29sb3I6IGJsYWNrO1xuICB9XG4gIHRleHRhcmVhIHtcbiAgICBoZWlnaHQ6IDE1MHB4O1xuICB9XG4gIC50aGFua3MtbWVzc2FnZSB7XG4gICAgY29sb3I6IEBtZ3JlZW47XG4gIH1cbn1cblxuLy8gVGhpcyBzdHlsZSBhcHBsaWVzIHRvIGRhc2hib2FyZCBtb2RhbHMsIGFuZCBhbHNvIHRoZVxuLy8gYGFjY291bnRzLWN1c3RvbS1jYWxjdWxhdGlvbi9mb3JtdWxhLm1vZGFsLmh0bWxgIG1vZGFsLlxuLm1vZGFsLWZvb3RlciAubG9hZGVyIHtcbiAgLmxvYWRlci1zdHlsZShAaW1wYWMtZGFzaGJvYXJkLWxvYWRpbmctc3Bpbm5lcilcbn1cblxuIiwiLmFuYWx5dGljcyAuZGFzaGJvYXJkLWNyZWF0ZSB7XG4gIC5idG4tY3JlYXRlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtZGFzaGJvYXJkLWNyZWF0ZS1idXR0b24tY29sb3I7XG4gIH1cbn1cblxuLm1vZGFsLmltcGFjLWRhc2hib2FyZC1jcmVhdGUge1xuICBoMSB7IGZvbnQtc2l6ZTogMjRweDsgfVxuICAuZmEuZmEtdGltZXMge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBjb2xvcjogI2NjYztcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbiAgLmNvbnRyb2wtbGFiZWwgeyB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gIC5tb2RhbC1mb290ZXIge1xuICAgIC5sb2FkZXIge1xuICAgICAgLmxvYWRlci1zdHlsZShAaW1wYWMtZGFzaGJvYXJkLWxvYWRpbmctc3Bpbm5lcilcbiAgICB9XG4gIH1cbn1cbiIsIiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciB7XG4gIGEge1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIH1cbiAgLy8gZGFzaGJvYXJkIHNlbGVjdG9yIHRlbXBsYXRlIHdyYXBwZXIgZGl2XG4gICYgPiBkaXY6Zmlyc3QtY2hpbGQge1xuICAgIGJvcmRlci1ib3R0b206IEBpbXBhYy1kYXNoYm9hcmQtc2VsZWN0b3ItYm9yZGVyO1xuICB9XG5cbiAgLmJ1dHRvbnMtYmFyLXJvdyB7XG4gICAgbWFyZ2luLXRvcDogNTRweDtcbiAgICAmLnBkZi1tb2RlIHsgbWFyZ2luLXRvcDogMHB4OyB9XG4gIH1cblxuICAvLyBjb250YWluZXIgZm9yIGRhc2hib2FyZCBzZWxlY3RvciAnZHJvcGRvd24nIHRlbXBsYXRlXG4gIC5idXR0b25zLWJhciB7XG4gICAgcGFkZGluZzogMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAuYnRuIHtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgIG1hcmdpbjogM3B4O1xuICAgICAgYm9yZGVyLXJhZGl1czogQGltcGFjLWRhc2hib2FyZC1idXR0b25zLWJvcmRlci1yYWRpdXM7XG4gICAgfVxuXG4gICAgLnRpdGxlLWNvbnRhaW5lciB7XG4gICAgICBoMSB7XG4gICAgICAgIG1hcmdpbjogMHB4O1xuICAgICAgICBjb2xvcjogYmxhY2s7XG4gICAgICAgIGN1cnNvcjogYXV0bztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuZHJvcGRvd24tY29udGFpbmVyIHtcbiAgICAgIC5kYXNoYm9hcmQtdGl0bGUge1xuICAgICAgICBjb2xvcjogQGltcGFjLWRhc2hib2FyZC10aXRsZS1jb2xvcjtcbiAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIGNvbG9yOiBkYXJrZW4oQGltcGFjLWRhc2hib2FyZC10aXRsZS1jb2xvciwxMCUpO1xuICAgICAgICB9XG4gICAgICAgIGkuZmEuZmEtcGVuY2lsIHtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMjBweDtcbiAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogQG1ncmVlbjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC5kYXNoYm9hcmQtc2VsZWN0IHtcbiAgICAgICAgbWFyZ2luOiA1cHggMHB4IDEwcHggMzBweDtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIEBpbXBhYy1kYXNoYm9hcmQtdGl0bGUtY29sb3I7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBAaW1wYWMtZGFzaGJvYXJkLXRpdGxlLWNvbG9yO1xuICAgICAgICB3aWR0aDogMzAwcHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBsaWdodGdyYXk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgLm9wdGlvbiB7XG4gICAgICAgICAgY29sb3I6IEBpbXBhYy1kYXNoYm9hcmQtdGl0bGUtbGFiZWwtY29sb3I7XG4gICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy13aWRnZXQtYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgICAgICB9XG4gICAgICAgICAgJi5kYXNoYm9hcmQtY3JlYXRlIHtcbiAgICAgICAgICAgIGhlaWdodDogMzNweDtcbiAgICAgICAgICAgIC5idG4ge1xuICAgICAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgIG1hcmdpbjogMHB4O1xuICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGkuZmEuZmEtcGVuY2lsIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiA3cHg7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogMTUlO1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHB4O1xuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgIGNvbG9yOiBkYXJrZW4oQGltcGFjLWRhc2hib2FyZC10aXRsZS1jb2xvciwxMCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBzcGFuLm5hbWUge1xuICAgICAgICAgICAgd2lkdGg6IDg1JTtcbiAgICAgICAgICAgIGhlaWdodDogMzBweDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDVweCAxMHB4IDVweCAxMHB4O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLmNoYW5nZS1uYW1lIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDMwcHg7XG4gICAgICAgIGxlZnQ6IDIwcHg7XG4gICAgICAgIHdpZHRoOiA2MCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyMywgMzgsIDQ1KTtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICBwYWRkaW5nOiAxMHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgLmJveC1zaGFkb3coMHB4IDBweCAyNXB4IDRweCBibGFjayk7XG4gICAgICAgIHotaW5kZXg6IDUwO1xuICAgICAgICBib3JkZXI6IHNvbGlkIDFweCBAaW1wYWMtd2lkZ2V0LWJhY2tncm91bmQtY29sb3I7XG5cbiAgICAgICAgLmZvcm0tY29udHJvbCB7XG4gICAgICAgICAgaGVpZ2h0OiAyNXB4O1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC5kYXRhLXNvdXJjZS1sYWJlbCB7XG4gICAgICAgIGNvbG9yOiBAaW1wYWMtZGFzaGJvYXJkLXNvdXJjZS1jb2xvcjtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAzcHg7XG4gICAgICAgIG1hcmdpbjogMHB4O1xuICAgICAgfVxuICAgIH1cblxuICAgIC5sb2FkZXItY29udGFpbmVyIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICAgIC5sb2FkaW5nLXNwaW5uZXIge1xuICAgICAgICAubG9hZGVyLXN0eWxlKCk7XG4gICAgICAgIGZvbnQtc2l6ZTogNDBweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBhbmd1bGFyIGJvb3RzdHJhcCB0YWJzICYgcGlsbHNcbiAgLm5hdi10YWJzIHtcbiAgICBib3JkZXItYm90dG9tOiAwO1xuICB9XG4gIC5uYXYubmF2LXRhYnMsXG4gIC5uYXYubmF2LXBpbGxzIHtcblxuICAgIC8vIGFkZCBuZXcgdGFiXG4gICAgbGk6bGFzdC1jaGlsZCA+IGEge1xuICAgICAgcGFkZGluZy1yaWdodDogMTVweDtcbiAgICAgIHRhYi1oZWFkaW5nIGEge1xuICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFRBQlNcbiAgLm5hdi5uYXYtdGFicyB7XG4gICAgLy8gdGFiXG4gICAgbGkgPiBhIHtcbiAgICAgIHBhZGRpbmc6IEBpbXBhYy1kYXNoYm9hcmQtc2VsZWN0b3ItdGFicy1wYWRkaW5nO1xuICAgICAgbWFyZ2luOiBAaW1wYWMtZGFzaGJvYXJkLXNlbGVjdG9yLXRhYnMtbWFyZ2luO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGltcGFjLWRhc2hib2FyZC1zZWxlY3Rvci10YWJzLWJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXI6IEBpbXBhYy1kYXNoYm9hcmQtc2VsZWN0b3ItYm9yZGVyO1xuICAgICAgY29sb3I6IEBpbXBhYy1kYXNoYm9hcmQtc2VsZWN0b3ItdGFicy1jb2xvcjtcbiAgICB9XG4gICAgLy8gYWN0aXZlIHRhYlxuICAgIGxpLmFjdGl2ZSA+IGEge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGltcGFjLWRhc2hib2FyZC1zZWxlY3Rvci10YWJzLWFjdGl2ZS1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgY29sb3I6IEBpbXBhYy1kYXNoYm9hcmQtc2VsZWN0b3ItdGFicy1hY3RpdmUtY29sb3I7XG4gICAgfVxuICAgIC8vIGFkZCBuZXcgdGFiXG4gICAgbGk6bGFzdC1jaGlsZCA+IGEge1xuICAgICAgLy8gcGFkZGluZy1sZWZ0OiA1cHg7XG4gICAgfVxuICAgIGxpOmxhc3QtY2hpbGQuYWN0aXZlID4gYSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtZGFzaGJvYXJkLXNlbGVjdG9yLXRhYnMtYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAvLyBQSUxMU1xuICAvLyBUT0RPOiBBZGQgbGVzcyB2YXJpYWJsZXMgZm9yIGN1c3RvbWlzYXRpb24uXG4gIC5uYXYubmF2LXBpbGxzIHtcbiAgICAvLyB0YWJcbiAgICBsaSA+IGEge1xuICAgICAgbWluLXdpZHRoOiAwcHg7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiA4cHg7XG4gICAgfVxuICAgIC8vIGFkZCBhIG5ldyB0YWJcbiAgICBsaTpsYXN0LWNoaWxkIHRhYi1oZWFkaW5nIGEge1xuICAgICAgbWFyZ2luLWxlZnQ6IDJweDtcbiAgICB9XG4gICAgLy8gYWRkIGEgbmV3IHRhYlxuICAgIGxpOmxhc3QtY2hpbGQuYWN0aXZlID4gYSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjRmNGY0O1xuICAgIH1cbiAgfVxuICAvLyB0YWIgaWNvbnNcbiAgdGFiLWhlYWRpbmcgYS5jbG9zZS1saW5rIHtcbiAgICBib3JkZXItYm90dG9tOiAwcHggc29saWQ7XG4gICAgbWFyZ2luLWxlZnQ6IDEycHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogLTlweDtcbiAgICByaWdodDogMXB4O1xuICAgIGNvbG9yOiBAaW1wYWMtZGFzaGJvYXJkLXNlbGVjdG9yLXRhYnMtY29sb3I7XG4gIH1cbiAgLy8vLy8vLy9cbn1cbiIsImRhc2hib2FyZC10ZW1wbGF0ZXMtc2VsZWN0b3Ige1xuICAudGVtcGxhdGVzLWhlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICAudGVtcGxhdGVzLXRvZ2dsZSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1ncm93OiAxO1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgIGkuZmEge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICYuZmEtdG9nZ2xlLW9uIHtcbiAgICAgICAgICBjb2xvcjogQGltcGFjLXdpZGdldC1saW5rLWNvbG9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC50ZW1wbGF0ZXMge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMHB4IDBweCAxcHggMHB4ICNjY2M7XG4gICAgaGVpZ2h0OiAxMzBweDtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XG5cbiAgICAudGVtcGxhdGUge1xuICAgICAgcGFkZGluZzogNXB4IDEwcHg7XG4gICAgICBjb2xvcjogQGltcGFjLXdpZGdldC10ZXh0LWNvbG9yO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlY2VjZWM7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKEBpbXBhYy1kYXNoYm9hcmQtdGVtcGxhdGVzLXNlbGVjdGVkLWJhY2tncm91bmQtY29sb3IsIDIwJSk7XG4gICAgICB9XG4gICAgICAmLnNlbGVjdGVkIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGltcGFjLWRhc2hib2FyZC10ZW1wbGF0ZXMtc2VsZWN0ZWQtYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXgtd2lkdGg6IDIyMHB4O1xuICBtaW4taGVpZ2h0OiBAa3BpLW1heC1oZWlnaHQ7XG4gIG1heC1oZWlnaHQ6IEBrcGktbWF4LWhlaWdodDtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGtwaS1iYWNrZ3JvdW5kLWNvbG9yO1xuICBtYXJnaW46IDEwcHggMCAxMHB4IDA7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBAa3BpLWJhY2tncm91bmQtY29sb3I7XG4gIHRyYW5zaXRpb246IGFsbCAuMnMgZWFzZS1pbjtcblxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgfVxuXG4gICYudHJpZ2dlcmVkLCAmLmFkZDpob3ZlciB7XG4gICAgYm9yZGVyLWJvdHRvbTogQGtwaS10cmlnZ2VyZWQtYm9yZGVyLWJvdHRvbTtcbiAgfVxuXG4gICYuYWRkIHtcbiAgICAua3BpLXRleHQge1xuICAgICAgLmVtcGhhc2lzIHsgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG4gICAgfVxuICB9XG5cbiAgJi5hZGQ6aG92ZXIge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAudG9wLWxpbmUgeyBiYWNrZ3JvdW5kLWNvbG9yOiBAa3BpLXRvcC1saW5lLXRyaWdnZXJlZC1iYWNrZ3JvdW5kLWNvbG9yOyB9XG4gICAgLmtwaS10ZXh0IHtcbiAgICAgIGNvbG9yOiBAa3BpLXRleHQtdHJpZ2dlcmVkLWNvbG9yO1xuICAgICAgLmVtcGhhc2lzIHsgdmlzaWJpbGl0eTogdmlzaWJsZTsgfVxuICAgIH1cbiAgICAua3BpLWljb24ge1xuICAgICAgY29sb3I6IEBrcGktaWNvbi10cmlnZ2VyZWQtY29sb3I7XG4gICAgICAuZmEtcGx1czpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIlxcZjAwY1wiO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYuZWRpdGluZyB7XG4gICAgbWluLWhlaWdodDogQGtwaS1tYXgtaGVpZ2h0ICsgQGtwaS1lZGl0aW5nLW1heC1oZWlnaHQ7XG4gIH1cblxuICAmOmhvdmVyIHsgY3Vyc29yOiBkZWZhdWx0OyB9XG5cbiAgJi5zdGF0aWMge1xuICAgIC5rcGktdmFsdWUge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgIH1cbiAgfVxuXG4gIC50b3AtbGluZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGN1cnNvcjogbW92ZTtcbiAgICBwYWRkaW5nOiA5cHggOXB4IDBweCAxMnB4O1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgbWluLWhlaWdodDogQGtwaS10b3AtbGluZS1oZWlnaHQ7XG4gICAgYm94LXNoYWRvdzogQGtwaS10b3AtbGluZS1ib3gtc2hhZG93O1xuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDtcbiAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcbiAgICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGtwaS10b3AtbGluZS1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgICYudHJpZ2dlcmVkIHsgYmFja2dyb3VuZC1jb2xvcjogQGtwaS10b3AtbGluZS10cmlnZ2VyZWQtYmFja2dyb3VuZC1jb2xvcjsgfVxuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgLjJzIGVhc2UtaW47XG4gIH1cblxuICAua3BpLWNvbnRlbnQge1xuICAgIG1heC1oZWlnaHQ6IEBrcGktbWF4LWhlaWdodCAtIDVweDtcbiAgICAmLmVkaXRpbmcge1xuICAgICAgbWluLWhlaWdodDogQGtwaS1tYXgtaGVpZ2h0ICsgQGtwaS1lZGl0aW5nLW1heC1oZWlnaHQgLSBAa3BpLWNvbnRlbnQtZWRpdGluZy1oZWlnaHQtYnVmZmVyO1xuICAgICAgLnNjcm9sbGFibGUoKTtcbiAgICB9XG4gIH1cblxuICAua3BpLXNob3cge1xuICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgcGFkZGluZzogMTBweDtcbiAgICAvLyBzbWFsbCBmaXggZm9yIGlwaG9uZSA2IGFuZCBzbWFsbGVyXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzgwcHgpIHtcbiAgICAgIHBhZGRpbmc6IDEwcHggM3B4O1xuICAgIH1cblxuICAgIC5lbXBoYXNpcyB7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXG4gICAgICAucmVhbC12YWx1ZSB7IGNvbG9yOiAjNjc2NzY3OyB9XG4gICAgfVxuXG4gICAgLmNhcHRpb24ge1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB9XG5cbiAgICAua3BpLXRleHQge1xuICAgICAgJiA+IHNwYW4geyBkaXNwbGF5OiBibG9jazsgfVxuICAgICAgcGFkZGluZzogN3B4IDA7XG4gICAgICBjb2xvcjogQGtwaS10ZXh0LWNvbG9yO1xuICAgICAgdHJhbnNpdGlvbjogY29sb3IgLjJzIGVhc2UtaW47XG4gICAgICAmLnRyaWdnZXJlZCB7IGNvbG9yOiBAa3BpLXRleHQtdHJpZ2dlcmVkLWNvbG9yOyB9XG5cbiAgICAgIC5jYXB0aW9uIHtcbiAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMnB4O1xuICAgICAgfVxuXG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0NjVweCkge1xuICAgICAgICAuY2FwdGlvbiB7IGZvbnQtc2l6ZTogMTBweDsgfVxuICAgICAgICAuZW1waGFzaXMgeyBmb250LXNpemU6IDExcHg7IH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAua3BpLWljb24ge1xuICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgcGFkZGluZzogMTBweCAwO1xuICAgICAgY29sb3I6IEBrcGktaWNvbi1jb2xvcjtcbiAgICAgIHRyYW5zaXRpb246IGNvbG9yIC4ycyBlYXNlLWluO1xuICAgICAgJi50cmlnZ2VyZWQgeyBjb2xvcjogQGtwaS1pY29uLXRyaWdnZXJlZC1jb2xvcjsgfVxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDY1cHgpIHtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBwYWRkaW5nOiAxNnB4IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmtwaS1lZGl0IHtcblxuICAgIGEgeyBjb2xvcjogd2hpdGU7IH1cblxuICAgIC5rcGktbmFtZSB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgICBoNiB7XG4gICAgICAgIG1hcmdpbjogMCAwIDVweCAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5yZWFsLXZhbHVlIHtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLmFsZXJ0LWNhcHRpb24ge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgYmFja2dyb3VuZDogQGtwaS1uZWdhdGl2ZS1hbGVydC1sYWJlbC1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXJnaW46IDAgYXV0byA1cHggYXV0bztcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBwYWRkaW5nOiAycHg7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgfVxuXG5cbiAgICAua3BpLXRhcmdldC13YXRjaGFibGUsXG4gICAgLmtwaS10YXJnZXQtdW5pdCB7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICB9XG5cbiAgICAua3BpLXRhcmdldC13YXRjaGFibGUge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgIGNvbG9yOiBsaWdodGVuKEBrcGktdG9wLWxpbmUtYmFja2dyb3VuZC1jb2xvciwgNSUpO1xuICAgIH1cblxuICAgIC5rcGktdGFyZ2V0LXVuaXQge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA2cHg7XG4gICAgICByaWdodDogMDtcbiAgICAgIGNvbG9yOiBsaWdodGVuKEBrcGktdG9wLWxpbmUtYmFja2dyb3VuZC1jb2xvciwgMTAlKTtcbiAgICB9XG5cbiAgICAucGFyYW0tbmFtZSB7XG4gICAgICAuc21hbGwoKTtcbiAgICB9XG5cbiAgICAuYnRuLmJ0bi14cyB7XG4gICAgICBtYXJnaW4tdG9wOiA0cHg7XG4gICAgfVxuICB9XG5cbiAgLmtwaS1lZGl0LFxuICAua3BpLW5vLWRhdGEge1xuICAgIC5pbXBhYy1tYXRlcmlhbChAa3BpLXNldHRpbmdzLWZvY3VzLWNvbG9yLCBAa3BpLXNldHRpbmdzLWVycm9yLWNvbG9yKTtcbiAgfVxuXG4gIGJ1dHRvbi5rcGktYWxlcnRzLmltLWZhYi5pbS1wcmltYXJ5IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAtMTJweDtcbiAgICByaWdodDogMTVweDtcbiAgICB3aWR0aDogMjJweDtcbiAgICBoZWlnaHQ6IDIycHg7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGJhY2tncm91bmQ6IEBrcGktc2V0dGluZ3MtYWxlcnQtY29uZmlnLWJhY2tncm91bmQ7XG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdWQ6IEBrcGktc2V0dGluZ3MtYWxlcnQtY29uZmlnLWJhY2tncm91bmQtaG92ZXI7XG4gICAgfVxuICB9XG5cbiAgYnV0dG9uLmtwaS1yZW1vdmUuaW0tZmFiLmltLXdhcm4ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC0xMnB4O1xuICAgIHJpZ2h0OiAtMTFweDtcbiAgICB3aWR0aDogMjJweDtcbiAgICBoZWlnaHQ6IDIycHg7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGJhY2tncm91bmQ6IEBrcGktc2V0dGluZ3MtcmVtb3ZlLWJhY2tncm91bmQ7XG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiBAa3BpLXNldHRpbmdzLXJlbW92ZS1iYWNrZ3JvdW5kLWhvdmVyO1xuICAgIH1cbiAgfVxuXG4gIC5rcGktZGF0YS1sb2FkZXIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDk1cHg7XG4gIH1cbn1cblxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rZXktc3RhdHMgLmtwaSB7XG4gIG1pbi1oZWlnaHQ6IDgwcHg7XG59XG4iLCIvKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cbi8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJTVBBQyBNQVRFUklBTFxuLyogICAgICAgICAgICAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbioqIE1peGluIG1hdGVyaWFsIHN0eWxlZCBmb3JtIGlucHV0cywgb3ZlcnJpZGluZyBib290c3RyYXAncyB1bmdvZGx5IHJvdW5kLW5lc3MuXG4vKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cbi8qIERFTU8gSFRNTCAtIHVzZSB0aGlzIGh0bWwgdG8gdGVzdCBhbGwgaW1wYWMgbWF0ZXJpYWwgZmVhdHVyZXMuXG48Zm9ybT5cbiAgPGRpdiBjbGFzcz1cImltLWZvcm0tZ3JvdXBcIj5cbiAgICA8c2VsZWN0PlxuICAgICAgPG9wdGlvbj5WYWx1ZSAxPC9vcHRpb24+XG4gICAgICA8b3B0aW9uPlZhbHVlIDI8L29wdGlvbj5cbiAgICA8L3NlbGVjdD5cbiAgICA8bGFiZWwgZm9yPVwic2VsZWN0XCIgY2xhc3M9XCJpbS1jb250cm9sLWxhYmVsXCI+U2VsZWN0Ym94PC9sYWJlbD48aSBjbGFzcz1cImltLWJhclwiPjwvaT5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJpbS1mb3JtLWdyb3VwXCI+XG4gICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgcmVxdWlyZWQvPlxuICAgIDxsYWJlbCBmb3I9XCJpbnB1dFwiIGNsYXNzPVwiaW0tY29udHJvbC1sYWJlbFwiPlRleHRmaWVsZDwvbGFiZWw+PGkgY2xhc3M9XCJpbS1iYXJcIj48L2k+XG4gICAgPGRpdiBjbGFzcz1cImltLW1lc3NhZ2VzXCI+XG4gICAgICA8cD5UaGlzIGlzIGFuIGVycm9yIG1lc3NhZ2U8L3A+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiaW0tZm9ybS1pbmxpbmVcIj5cbiAgICA8ZGl2IGNsYXNzPVwiaW0tZm9ybS1ncm91cFwiPlxuICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgcmVxdWlyZWQvPlxuICAgICAgPGxhYmVsIGZvcj1cImlucHV0XCIgY2xhc3M9XCJpbS1jb250cm9sLWxhYmVsXCI+SW5saW5lPC9sYWJlbD48aSBjbGFzcz1cImltLWJhclwiPjwvaT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiaW0tZm9ybS1ncm91cFwiPlxuICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgcmVxdWlyZWQvPlxuICAgICAgPGxhYmVsIGZvcj1cImlucHV0XCIgY2xhc3M9XCJpbS1jb250cm9sLWxhYmVsXCI+SW5saW5lPC9sYWJlbD48aSBjbGFzcz1cImltLWJhclwiPjwvaT5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJpbS1mb3JtLWdyb3VwXCI+XG4gICAgPHRleHRhcmVhIHJlcXVpcmVkPjwvdGV4dGFyZWE+XG4gICAgPGxhYmVsIGZvcj1cInRleHRhcmVhXCIgY2xhc3M9XCJpbS1jb250cm9sLWxhYmVsXCI+VGV4dGFyZWE8L2xhYmVsPjxpIGNsYXNzPVwiaW0tYmFyXCI+PC9pPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImltLWNoZWNrYm94XCI+XG4gICAgPGxhYmVsPlxuICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIGNoZWNrZWQ9XCJjaGVja2VkXCIvPjxpIGNsYXNzPVwiaW0taGVscGVyXCI+PC9pPkknbSB0aGUgbGFiZWwgZnJvbSBhIGNoZWNrYm94XG4gICAgPC9sYWJlbD5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJpbS1jaGVja2JveFwiPlxuICAgIDxsYWJlbD5cbiAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIi8+PGkgY2xhc3M9XCJpbS1oZWxwZXJcIj48L2k+SSdtIHRoZSBsYWJlbCBmcm9tIGEgY2hlY2tib3hcbiAgICA8L2xhYmVsPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImltLWZvcm0tcmFkaW9cIj5cbiAgICA8ZGl2IGNsYXNzPVwiaW0tcmFkaW9cIj5cbiAgICAgIDxsYWJlbD5cbiAgICAgICAgPGlucHV0IHR5cGU9XCJyYWRpb1wiIG5hbWU9XCJyYWRpb1wiIGNoZWNrZWQ9XCJjaGVja2VkXCIvPjxpIGNsYXNzPVwiaW0taGVscGVyXCI+PC9pPkknbSB0aGUgbGFiZWwgZnJvbSBhIHJhZGlvIGJ1dHRvblxuICAgICAgPC9sYWJlbD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiaW0tcmFkaW9cIj5cbiAgICAgIDxsYWJlbD5cbiAgICAgICAgPGlucHV0IHR5cGU9XCJyYWRpb1wiIG5hbWU9XCJyYWRpb1wiLz48aSBjbGFzcz1cImltLWhlbHBlclwiPjwvaT5JJ20gdGhlIGxhYmVsIGZyb20gYSByYWRpbyBidXR0b25cbiAgICAgIDwvbGFiZWw+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiaW0tY2hlY2tib3hcIj5cbiAgICA8bGFiZWw+XG4gICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIvPjxpIGNsYXNzPVwiaW0taGVscGVyXCI+PC9pPkknbSB0aGUgbGFiZWwgZnJvbSBhIGNoZWNrYm94XG4gICAgPC9sYWJlbD5cbiAgPC9kaXY+XG4gIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiaW0tZmFiIGltLXByaW1hcnlcIj48aT7imaU8L2k+PC9idXR0b24+XG4gIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiaW0tZmFiIGltLXdhcm5cIj48aT7imaU8L2k+PC9idXR0b24+XG48L2Zvcm0+XG4qL1xuXG5AYm9keS1iZzogI2ZmZjtcblxuLy8gU2hhZG93c1xuQHNoYWRvdy1pbnNldDogaW5zZXQgMCAycHggMnB4IDAgcmdiYSgwLDAsMCwuMTQpO1xuQHNoYWRvdy0wOiAwIDAgMXB4IHJnYmEoMCwgMCwgMCwgMCk7XG5Ac2hhZG93LTI6IDAgMnB4IDJweCAwIHJnYmEoMCwwLDAsLjE0KSwwIDNweCAxcHggLTJweCByZ2JhKDAsMCwwLC4yKSwwIDFweCA1cHggMCByZ2JhKDAsMCwwLC4xMik7XG5Ac2hhZG93LTM6IDAgM3B4IDRweCAwIHJnYmEoMCwwLDAsLjE0KSwwIDNweCAzcHggLTJweCByZ2JhKDAsMCwwLC4yKSwwIDFweCA4cHggMCByZ2JhKDAsMCwwLC4xMik7XG5Ac2hhZG93LTQ6IDAgNHB4IDVweCAwIHJnYmEoMCwwLDAsLjE0KSwwIDFweCAxMHB4IDAgcmdiYSgwLDAsMCwuMTIpLDAgMnB4IDRweCAtMXB4IHJnYmEoMCwwLDAsLjIpO1xuQHNoYWRvdy02OiAwIDZweCAxMHB4IDAgcmdiYSgwLDAsMCwuMTQpLDAgMXB4IDE4cHggMCByZ2JhKDAsMCwwLC4xMiksMCAzcHggNXB4IC0xcHggcmdiYSgwLDAsMCwuMik7XG5Ac2hhZG93LTg6IDAgOHB4IDEwcHggMXB4IHJnYmEoMCwwLDAsLjE0KSwwIDNweCAxNHB4IDJweCByZ2JhKDAsMCwwLC4xMiksMCA1cHggNXB4IC0zcHggcmdiYSgwLDAsMCwuMik7XG5cbi8vIEZvbnQgU2l6ZXNcbkBpbS1mb250LXNpemU6IDEuMjVyZW07XG5AaW0tYWN0aXZlLWZvbnQtc2l6ZTogQGltLWZvbnQtc2l6ZSAqIDAuODtcbkBpbS1hY3RpdmUtdG9wOiAtQGltLWZvbnQtc2l6ZTtcblxuLy8gTWFyZ2luICYgUGFkZGluZ3NcbkBpbS1nYXA6IEBpbS1mb250LXNpemUgKiAuNztcbkBpbS1zcGFjZXI6IEBpbS1mb250LXNpemUgLyA4O1xuQGltLWZpZWxkc2V0LW1hcmdpbjogMCAwIEBpbS1nYXAgKiAyO1xuQGltLWNoZWNrYm94LWdhcDogQGltLWZvbnQtc2l6ZSAqIDI7XG5AaW0tY2hlY2tib3gtdG9wOiAwO1xuQGltLXJhZGlvLW1hcmdpbjogQGltLWZvbnQtc2l6ZSAvIC00O1xuXG4vLyBDb2xvcnNcbkBpbS1ib3JkZXItY29sb3I6ICM5OTk7XG5AaW0tbGFiZWwtY29sb3I6IGxpZ2h0ZW4oQGltLWJvcmRlci1jb2xvciwgMTAlKTtcbkBpbS1hY3RpdmUtY29sb3I6IGRhcmtlbihAaW0tYm9yZGVyLWNvbG9yLCAxMCUpO1xuXG4vLyBBbmltYXRpb25cbkBpbS10cmFuc2l0aW9uLXNwZWVkOiAwLjI4cztcblxuLmltcGFjLW1hdGVyaWFsIChAaW0tZm9jdXMtY29sb3I6ICMzMzdhYjcsIEBpbS1lcnJvci1jb2xvcjogI2Q5NTM0ZiwgQGltLWlucHV0LWNvbG9yOiAjMzMzKSB7XG4gIC8qIEZsYXR0ZW4gZGVyIEJvb3RzdHJhcCAqL1xuICAud2VsbCwgLm5hdmJhci1pbm5lciwgLnBvcG92ZXIsIC5idG4sIC50b29sdGlwLCBpbnB1dCwgc2VsZWN0LCB0ZXh0YXJlYSwgcHJlLCAucHJvZ3Jlc3MsIC5tb2RhbCwgLmFkZC1vbiwgLmFsZXJ0LCAudGFibGUtYm9yZGVyZWQsIC5uYXY+LmFjdGl2ZT5hLCAuZHJvcGRvd24tbWVudSwgLnRvb2x0aXAtaW5uZXIsIC5iYWRnZSwgLmxhYmVsLCAuaW1nLXBvbGFyb2lkIHtcbiAgICAtbW96LWJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAwcHggIWltcG9ydGFudDtcbiAgICAtbW96LWJvcmRlci1yYWRpdXM6IDBweCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDBweCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2UgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lICFpbXBvcnRhbnQ7XG4gIH1cblxuICBib2R5LFxuICBpbnB1dCxcbiAgc2VsZWN0LFxuICB0ZXh0YXJlYSB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgICY6OmFmdGVyLFxuICAgICY6OmJlZm9yZSB7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIH1cbiAgfVxuXG4gIGlucHV0W3R5cGU9bnVtYmVyXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbiAgaW5wdXRbdHlwZT1udW1iZXJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgYTpob3ZlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG5cbiAgLy8gVGhlIFN0eWxlcyBmb3IgdGhlIGZvcm1cbiAgZmllbGRzZXQge1xuICAgIG1hcmdpbjogQGltLWZpZWxkc2V0LW1hcmdpbjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgfVxuXG4gIC5pbS1mb3JtLXJhZGlvLFxuICAuaW0tZm9ybS1ncm91cCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi10b3A6IChAaW0tZ2FwICogMS41KTtcbiAgICBtYXJnaW4tYm90dG9tOiAoQGltLWdhcCAqIDEuNSk7XG4gIH1cblxuICAuaW0tZm9ybS1pbmxpbmUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICAgPiAuaW0tZm9ybS1ncm91cCB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGZsZXg6IDE7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgbWFyZ2luLWxlZnQ6IChAaW0tZ2FwICogLjIpO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAoQGltLWdhcCAqIC4yKTtcbiAgICB9XG5cbiAgICA+IC5idG4ge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cblxuICAuaW0tZm9ybS1ncm91cCB7XG4gICAgaW5wdXQge1xuICAgICAgaGVpZ2h0OiAoQGltLWZvbnQtc2l6ZSAqIDEuOSk7XG4gICAgfVxuXG4gICAgdGV4dGFyZWEge1xuICAgICAgcmVzaXplOiBub25lO1xuICAgIH1cblxuICAgIHNlbGVjdCB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGZvbnQtc2l6ZTogQGltLWZvbnQtc2l6ZTtcbiAgICAgIGhlaWdodDogKEBpbS1mb250LXNpemUgKiAxLjYpO1xuICAgICAgcGFkZGluZzogQGltLXNwYWNlciBAaW0tc3BhY2VyIChAaW0tc3BhY2VyIC8gMik7XG4gICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgfVxuXG4gICAgLmltLWNvbnRyb2wtbGFiZWwge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAoQGltLWZvbnQtc2l6ZSAvIDQpO1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICBwYWRkaW5nLWxlZnQ6IEBpbS1zcGFjZXI7XG4gICAgICB6LWluZGV4OiAxO1xuICAgICAgY29sb3I6IEBpbS1sYWJlbC1jb2xvcjtcbiAgICAgIGZvbnQtc2l6ZTogQGltLWZvbnQtc2l6ZTtcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgQGltLXRyYW5zaXRpb24tc3BlZWQgZWFzZTtcbiAgICB9XG5cbiAgICAuaW0tYmFyIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGJvcmRlci1ib3R0b206IChAaW0tZm9udC1zaXplIC8gMTYpIHNvbGlkIEBpbS1ib3JkZXItY29sb3I7XG4gICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGhlaWdodDogKEBpbS1mb250LXNpemUgLyA4KTtcbiAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgYm90dG9tOiAoQGltLWZvbnQtc2l6ZSAvIC0xNik7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYmFja2dyb3VuZDogQGltLWZvY3VzLWNvbG9yO1xuICAgICAgICB0cmFuc2l0aW9uOiBsZWZ0IEBpbS10cmFuc2l0aW9uLXNwZWVkIGVhc2UsIHdpZHRoIEBpbS10cmFuc2l0aW9uLXNwZWVkIGVhc2U7XG4gICAgICAgIHotaW5kZXg6IDI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaW5wdXQsXG4gICAgdGV4dGFyZWEge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgcGFkZGluZzogQGltLXNwYWNlciBAaW0tc3BhY2VyIChAaW0tc3BhY2VyIC8gMik7XG4gICAgICBmb250LXNpemU6IEBpbS1mb250LXNpemU7XG4gICAgICBib3JkZXItd2lkdGg6IDA7XG4gICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgbGluZS1oZWlnaHQ6IDEuOTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgdHJhbnNpdGlvbjogYWxsIEBpbS10cmFuc2l0aW9uLXNwZWVkIGVhc2U7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgIH1cblxuICAgIGlucHV0W3R5cGU9XCJmaWxlXCJdIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICB+IC5pbS1iYXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgIHNlbGVjdCxcbiAgICBpbnB1dDpmb2N1cyxcbiAgICBpbnB1dDp2YWxpZCxcbiAgICBpbnB1dC5mb3JtLWZpbGUsXG4gICAgaW5wdXQuaGFzLXZhbHVlLFxuICAgIHRleHRhcmVhOmZvY3VzLFxuICAgIHRleHRhcmVhOnZhbGlkLFxuICAgIHRleHRhcmVhLmZvcm0tZmlsZSxcbiAgICB0ZXh0YXJlYS5oYXMtdmFsdWUge1xuICAgICAgY29sb3I6IEBpbS1pbnB1dC1jb2xvcjtcblxuICAgICAgfiAuaW0tY29udHJvbC1sYWJlbCB7XG4gICAgICAgIGZvbnQtc2l6ZTogQGltLWFjdGl2ZS1mb250LXNpemU7XG4gICAgICAgIGNvbG9yOiBAaW0tYWN0aXZlLWNvbG9yO1xuICAgICAgICB0b3A6IEBpbS1hY3RpdmUtdG9wO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIHNlbGVjdCxcbiAgICBpbnB1dCxcbiAgICB0ZXh0YXJlYSB7XG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcblxuICAgICAgICB+IC5pbS1jb250cm9sLWxhYmVsIHtcbiAgICAgICAgICBjb2xvcjogQGltLWZvY3VzLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgfiAuaW0tYmFyIHtcbiAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFJhZGlvICYgQ2hlY2tib3hcbiAgLmltLWNoZWNrYm94LFxuICAuaW0tZm9ybS1yYWRpbyB7XG4gICAgbGFiZWwge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgcGFkZGluZy1sZWZ0OiBAaW0tY2hlY2tib3gtZ2FwO1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIGNvbG9yOiBAaW0taW5wdXQtY29sb3I7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICBpbnB1dCB7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICAgIG9wYWNpdHk6IDAuMDAwMDAwMDE7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBsZWZ0OiAwO1xuICAgIH1cbiAgfVxuXG4gIC5pbS1yYWRpbyB7XG4gICAgbWFyZ2luLWJvdHRvbTogQGltLWZvbnQtc2l6ZTtcblxuICAgIC5pbS1oZWxwZXIge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiBAaW0tcmFkaW8tbWFyZ2luO1xuICAgICAgbGVmdDogQGltLXJhZGlvLW1hcmdpbjtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgZm9udC1zaXplOiBAaW0tZm9udC1zaXplO1xuICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICBjb2xvcjogQGltLWJvcmRlci1jb2xvcjtcblxuICAgICAgLy8gVE9ETzogaW1wcm92ZSByYWRpbyB0cmFuc2l0aW9uIC0gcmlwcGxlIGVmZmVjdCBsaWtlIGFuZ3VsYXIgbWQgd291bGQgYmUgY29vbCA6KVxuICAgICAgJjo6YmVmb3JlLFxuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIG1hcmdpbjogKEBpbS1zcGFjZXIgKiAyKTtcbiAgICAgICAgd2lkdGg6IEBpbS1mb250LXNpemU7XG4gICAgICAgIGhlaWdodDogQGltLWZvbnQtc2l6ZTtcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIEBpbS10cmFuc2l0aW9uLXNwZWVkIGVhc2U7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgYm9yZGVyOiAoQGltLWZvbnQtc2l6ZSAvIDgpIHNvbGlkIGN1cnJlbnRDb2xvcjtcbiAgICAgIH1cblxuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW0tZm9jdXMtY29sb3I7XG4gICAgICAgIGJvcmRlci1jb2xvcjogQGltLWZvY3VzLWNvbG9yO1xuICAgICAgfVxuICAgIH1cblxuICAgIGxhYmVsOmhvdmVyIC5pbS1oZWxwZXIge1xuICAgICAgY29sb3I6IEBpbS1mb2N1cy1jb2xvcjtcbiAgICB9XG5cbiAgICBpbnB1dDpjaGVja2VkIHtcbiAgICAgIH4gLmltLWhlbHBlciB7XG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC41KTtcbiAgICAgICAgfVxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgIGNvbG9yOiBAaW0tZm9jdXMtY29sb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuaW0tY2hlY2tib3gge1xuICAgIG1hcmdpbi10b3A6IChAaW0tZ2FwICogMik7XG4gICAgbWFyZ2luLWJvdHRvbTogQGltLWZvbnQtc2l6ZTtcblxuICAgIC5pbS1oZWxwZXIge1xuICAgICAgY29sb3I6IEBpbS1ib3JkZXItY29sb3I7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IEBpbS1jaGVja2JveC10b3A7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgd2lkdGg6IEBpbS1mb250LXNpemU7XG4gICAgICBoZWlnaHQ6IEBpbS1mb250LXNpemU7XG4gICAgICB6LWluZGV4OiAwO1xuICAgICAgYm9yZGVyOiAoQGltLWZvbnQtc2l6ZSAvIDgpIHNvbGlkIGN1cnJlbnRDb2xvcjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IChAaW0tZm9udC1zaXplIC8gMTYpO1xuICAgICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIEBpbS10cmFuc2l0aW9uLXNwZWVkIGVhc2U7XG5cbiAgICAgICY6OmJlZm9yZSxcbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgIHdpZHRoOiAoQGltLWZvbnQtc2l6ZSAqIDAuMik7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBpbS1mb2N1cy1jb2xvcjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgdG9wO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAoQGltLWZvbnQtc2l6ZSAvIDQpO1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSBAaW0tdHJhbnNpdGlvbi1zcGVlZCBlYXNlLCBoZWlnaHQgMHMgbGluZWFyIEBpbS10cmFuc2l0aW9uLXNwZWVkO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuXG4gICAgICAmOjpiZWZvcmUge1xuICAgICAgICB0b3A6IChAaW0tZm9udC1zaXplICogMC42NSk7XG4gICAgICAgIGxlZnQ6IChAaW0tZm9udC1zaXplICogMC4zOCk7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC0xMzVkZWcpO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAoQGltLWZvbnQtc2l6ZSAvIDE2KSBAYm9keS1iZztcbiAgICAgIH1cblxuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICB0b3A6IChAaW0tZm9udC1zaXplICogMC4zKTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBsYWJlbDpob3ZlciAuaW0taGVscGVyIHtcbiAgICAgIGNvbG9yOiBAaW0tZm9jdXMtY29sb3I7XG4gICAgfVxuXG4gICAgaW5wdXQ6Y2hlY2tlZCB7XG4gICAgICB+IC5pbS1oZWxwZXIge1xuICAgICAgICBjb2xvcjogQGltLWZvY3VzLWNvbG9yO1xuXG4gICAgICAgIC8vIFRPRE86IGltcHJvdmUgY2hlY2tlZCB0cmFuc2l0aW9uLlxuICAgICAgICAmOjphZnRlcixcbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgIHRyYW5zaXRpb246IGhlaWdodCBAaW0tdHJhbnNpdGlvbi1zcGVlZCBlYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgIGhlaWdodDogKEBpbS1mb250LXNpemUgLyAyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgaGVpZ2h0OiAoQGltLWZvbnQtc2l6ZSAqIDEuMik7XG4gICAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogQGltLXRyYW5zaXRpb24tc3BlZWQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuaW0tcmFkaW8gKyAuaW0tcmFkaW8sXG4gIC5pbS1jaGVja2JveCArIC5pbS1jaGVja2JveCB7XG4gICAgbWFyZ2luLXRvcDogQGltLWZvbnQtc2l6ZTtcbiAgfVxuXG4gIC8vIEFkZCBjbGFzcyBvbnRvIG5nLW1lc3NhZ2VzIGRpdlxuICAuaW0tbWVzc2FnZXMge1xuICAgIGZvbnQtc2l6ZTogQGltLWZvbnQtc2l6ZSAvIDEuMjtcbiAgICBjb2xvcjogQGltLWVycm9yLWNvbG9yO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdHJhbnNpdGlvbjogYWxsIEBpbS10cmFuc2l0aW9uLXNwZWVkIGN1YmljLWJlemllciguNTUsMCwuNTUsLjIpO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBwYWRkaW5nLXRvcDogNXB4O1xuICB9XG5cbiAgLmhhcy1lcnJvciB7XG4gICAgLmxlZ2VuZC5sZWdlbmQsXG4gICAgJi5pbS1mb3JtLWdyb3VwIC5pbS1jb250cm9sLWxhYmVsLmltLWNvbnRyb2wtbGFiZWwge1xuICAgICAgY29sb3I6IEBpbS1lcnJvci1jb2xvcjtcbiAgICB9XG5cbiAgICAmLmltLWZvcm0tZ3JvdXAsXG4gICAgJi5pbS1jaGVja2JveCxcbiAgICAmLmltLXJhZGlvLFxuICAgICYuaW0tZm9ybS1yYWRpbyB7XG4gICAgICAuaW0tbWVzc2FnZXMsXG4gICAgICAuaW0taGVscGVyIHtcbiAgICAgICAgY29sb3I6IEBpbS1lcnJvci1jb2xvcjtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuaW0tYmFyIHtcbiAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGJhY2tncm91bmQ6IEBpbS1lcnJvci1jb2xvcjtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmltLWJ1dHRvbiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJhY2tncm91bmQ6IGxpZ2h0ZW4oQGltLWZvY3VzLWNvbG9yLCAxMCUpO1xuICAgIGJvcmRlcjogMDtcbiAgICBmb250LXNpemU6IChAaW0tZm9udC1zaXplICogMS4xKTtcbiAgICBjb2xvcjogQGltLWlucHV0LWNvbG9yO1xuICAgIG1hcmdpbjogKEBpbS1nYXAgKiAuOCkgMDtcbiAgICBwYWRkaW5nOiAoQGltLWdhcCAvIDIpIChAaW0tZ2FwICogMik7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJveC1zaGFkb3c6IEBzaGFkb3ctMjtcblxuICAgIHNwYW4ge1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB6LWluZGV4OiAxO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAuMXMgZWFzZS1pbjtcbiAgICAgIGJhY2tncm91bmQ6IGRhcmtlbihAaW0tZm9jdXMtY29sb3IsIDUlKTtcbiAgICB9XG5cbiAgICAmOmFjdGl2ZSB7XG4gICAgICBib3gtc2hhZG93OiBAc2hhZG93LWluc2V0O1xuICAgIH1cblxuICAgIGE6Zm9jdXMsXG4gICAgJjpmb2N1cyB7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cbiAgfVxuXG4gIGJ1dHRvbi5pbS1mYWIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBoZWlnaHQ6IDQ2cHg7XG4gICAgd2lkdGg6IDQ2cHg7XG4gICAgZmxleDogMCAwIDU2cHg7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiA0cHg7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gICAgYm94LXNoYWRvdzogQHNoYWRvdy00O1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAmOmZvY3VzIHtcbiAgICAgIG91dGxpbmU6IDA7XG4gICAgfVxuICAgICY6YWN0aXZlIHtcbiAgICAgIGJveC1zaGFkb3c6IEBzaGFkb3ctaW5zZXQ7XG4gICAgfVxuICAgICYuaW0tcHJpbWFyeSB7XG4gICAgICBiYWNrZ3JvdW5kOiBAaW0tZm9jdXMtY29sb3I7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAuMXMgZWFzZS1pbjtcbiAgICAgICAgYmFja2dyb3VuZDogZGFya2VuKEBpbS1mb2N1cy1jb2xvciwgNSUpO1xuICAgICAgfVxuICAgIH1cbiAgICAmLmltLXdhcm4ge1xuICAgICAgYmFja2dyb3VuZDogQGltLWVycm9yLWNvbG9yO1xuICAgICAgJjpob3ZlciB7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgLjFzIGVhc2UtaW47XG4gICAgICAgIGJhY2tncm91bmQ6IGRhcmtlbihAaW0tZXJyb3ItY29sb3IsIDUlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxufVxuIiwiLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAuYWN0aW9ucyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NzVweCkge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cblxuICAgIC5pbXBhYy1tYXRlcmlhbChAa3BpLXNldHRpbmdzLWZvY3VzLWNvbG9yLCBAa3BpLXNldHRpbmdzLWVycm9yLWNvbG9yKTtcblxuICAgIGEgeyBjb2xvcjogd2hpdGU7IH1cblxuICAgIGJ1dHRvbi5pbS1mYWIuYWRkLWtwaXMsXG4gICAgYnV0dG9uLmltLWZhYi5lZGl0LWtwaXMsXG4gICAgYnV0dG9uLmltLWZhYi50b2dnbGUtc2hvdy1jb250ZW50IHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMjhzIGVhc2UtaW47XG4gICAgICAmLmltLXByaW1hcnkge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjNGM0NzQ5O1xuICAgICAgICAmLmRpc2FibGVkIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAjYjJiNWMxO1xuICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgYSB7IGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cbiAgICAgICAgfVxuICAgICAgICAmOmhvdmVyOm5vdCguZGlzYWJsZWQpIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiBibGFjaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGJ1dHRvbi5pbS1mYWIudG9nZ2xlLXNob3ctY29udGVudCB7XG4gICAgICB0b3A6IC0xNXB4O1xuICAgICAgcmlnaHQ6IC0xNXB4O1xuICAgICAgei1pbmRleDogMTA7XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NzVweCkge1xuICAgICAgICB0b3A6IC0zMHB4O1xuICAgICAgICByaWdodDogLTE0cHg7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBidXR0b24uaW0tZmFiLmFkZC1rcGlzIHtcbiAgICAgIHRvcDogMzBweDtcbiAgICAgIHJpZ2h0OiAtMTVweDtcbiAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjc1cHgpIHtcbiAgICAgICAgdG9wOiAtMzBweDtcbiAgICAgICAgcmlnaHQ6IDMzcHg7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBidXR0b24uaW0tZmFiLmVkaXQta3BpcyB7XG4gICAgICB0b3A6IDc1cHg7XG4gICAgICByaWdodDogLTE1cHg7XG4gICAgICB6LWluZGV4OiAxMDtcbiAgICAgICYuZWRpdGluZyB7XG4gICAgICAgIGJhY2tncm91bmQ6IEBrcGktc2V0dGluZ3MtZm9jdXMtY29sb3I7XG4gICAgICAgICY6aG92ZXI6bm90KC5kaXNhYmxlZCkge1xuICAgICAgICAgIGJhY2tncm91bmQ6IGxpZ2h0ZW4oQGtwaS1zZXR0aW5ncy1mb2N1cy1jb2xvciwgMTUlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjc1cHgpIHtcbiAgICAgICAgdG9wOiAtMzBweDtcbiAgICAgICAgcmlnaHQ6IDc5cHg7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuY29udGVudC1idXR0b25zIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICB9XG5cbiAgLmNvbnRlbnQge1xuICAgIHBhZGRpbmc6IDE1cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGtwaXMtYmFyLWJhY2tncm91bmQtY29sb3I7XG4gICAgYm94LXNoYWRvdzogQGtwaXMtYmFyLWJveC1zaGFkb3c7XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3MjVweCkge1xuICAgICAgcGFkZGluZzogMCA2MHB4O1xuICAgIH1cblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY3NXB4KSB7XG4gICAgICBtYXJnaW4tdG9wOiAyNXB4O1xuICAgIH1cblxuICAgIC5pbXBhYy1rcGkge1xuICAgICAgLmNvbHVtbi1ndXR0ZXIoNXB4KTtcblxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMjBweDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMjBweDtcbiAgICAgIH1cblxuICAgICAgLmtwaS5hZGQge1xuICAgICAgICAua3BpLXNob3cgLmNhcHRpb24ge1xuICAgICAgICAgIHdoaXRlLXNwYWNlOiBpbmhlcml0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG5cbiAgICAudGl0bGUge1xuICAgICAgLnRleHQtY2VudGVyIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDM7XG4gICAgICAgIGZvbnQtdmFyaWFudDogc21hbGwtY2FwcztcbiAgICAgICAgZm9udC1zaXplOiBsYXJnZXI7XG4gICAgICB9XG4gICAgICAuYmFkZ2Uge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogOHB4O1xuICAgICAgICBsZWZ0OiAtMTBweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2QxZTU1YztcbiAgICAgICAgY29sb3I6ICM0ZjU5NTk7XG4gICAgICAgIGJveC1zaGFkb3c6IDBweCAxcHggM3B4IC0xcHg7XG4gICAgICB9XG4gICAgICAubm8ta3BpLXRlbXBsYXRlcyB7XG4gICAgICAgIGNvbG9yOiAjYWZhZGI1O1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5hZGQtYmFyIHtcbiAgICAgIGJvcmRlci1ib3R0b206IGRhc2hlZCAxcHg7XG4gICAgfVxuXG4gICAgLmtwaS1sb2FkZXIge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIG1pbi1oZWlnaHQ6IEBrcGktbWF4LWhlaWdodCArIDIwcHg7XG4gICAgfVxuXG4gICAgLmRhdGVzLXBpY2tlci1jb250YWluZXIge1xuICAgICAgd2lkdGg6IDQwJTtcbiAgICAgIG1hcmdpbjogMCBhdXRvO1xuXG4gICAgICAuc2RwLWZyb20tbGFiZWwsXG4gICAgICAuc2RwLXRvLWxhYmVsIHtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLmFuYWx5dGljcyBrcGlzLWJhciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtleS1zdGF0cyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBwYWRkaW5nOiA1cHggMHB4O1xufVxuXG4uYW5hbHl0aWNzLnBkZi1tb2RlIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgeyBkaXNwbGF5OiBub25lOyB9XG4iLCIud2lkZ2V0LWl0ZW0ge1xuICB0cmFuc2l0aW9uOiB3aWR0aCAwLjNzO1xuICBwYWRkaW5nOiBAaW1wYWMtcGFkZGluZy1iZXR3ZWVuLXdpZGdldHM7XG4gICYucGRmLW1vZGUge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IH5cIkB7aW1wYWMtcGFkZGluZy1iZXR3ZWVuLXdpZGdldHN9IDBweFwiO1xuICB9XG59XG5cbi53aWRnZXQtaXRlbSAudG9wLWxpbmUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGN1cnNvcjogbW92ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGltcGFjLXdpZGdldC10aXRsZS1iZztcbiAgcGFkZGluZzogOXB4IDlweCAwcHggMTJweDtcbiAgYm9yZGVyLXJhZGl1czogQGltcGFjLXdpZGdldC10aXRsZS1ib3JkZXItcmFkaXVzO1xuICBib3JkZXI6IEBpbXBhYy13aWRnZXQtYm9yZGVyO1xuICBib3JkZXItYm90dG9tOiBub25lO1xuICBtaW4taGVpZ2h0OiA0MXB4O1xuICAuYm94LXNoYWRvdygwcHggMXB4IDhweCAtNHB4KTtcblxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gIHotaW5kZXg6IDQ7XG59XG5cbi53aWRnZXQtaXRlbSB7XG4gIC5jb250ZW50IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogOXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IEBpbXBhYy13aWRnZXQtY29udGVudC1ib3JkZXItcmFkaXVzO1xuICAgIGJvcmRlcjogQGltcGFjLXdpZGdldC1ib3JkZXI7XG4gICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtd2lkZ2V0LWJhY2tncm91bmQtY29sb3I7XG5cbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIC5ib3gtc2hhZG93KDBweCAxcHggOHB4IC00cHgpO1xuICAgIC5zaG9ydC13aWRnZXQoKTtcblxuICAgIC5lZGl0IHtcbiAgICAgIC5lZGl0LXBhbmVsLXN0eWxlKCk7XG4gICAgfVxuXG4gICAgJi5hY2Nlc3NpYmxlIHtcbiAgICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgICAgbWluLWhlaWdodDogMjUwcHggIWltcG9ydGFudDtcbiAgICAgIG1heC1oZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAvLyBBdm9pZCBjb250ZW50IHRvIGxlYWsgb3V0IG9mIHdpZGdldCdzIGJveFxuICAgIC5jb250ZW50LXRlbXBsYXRlLXdyYXBwZXIge1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgfVxuICB9XG5cbiAgJi5wZGYtbW9kZSAuY29udGVudCB7XG4gICAgaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgbWluLWhlaWdodDogMjUwcHggIWltcG9ydGFudDtcbiAgICBtYXgtaGVpZ2h0OiBub25lICFpbXBvcnRhbnQ7XG4gICAgLmNvbGxhcHNlIHtcbiAgICAgIGRpc3BsYXk6IGluaGVyaXQ7XG4gICAgfVxuICAgIC5mYS1wbHVzLXNxdWFyZS1vOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBcIlxcZjE0N1wiO1xuICAgIH1cbiAgICAubGVnZW5kIHtcbiAgICAgIG1heC1oZWlnaHQ6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gICAgLmNoYXJ0LWNvbnRhaW5lciB7XG4gICAgICBtYXgtaGVpZ2h0OiBub25lO1xuICAgIH1cbiAgICAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gICAgICBtYXgtaGVpZ2h0OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIC5kYXRhLW5vdC1mb3VuZCAubWVzc2FnZSB7XG4gICAgICBwb3NpdGlvbjogaW5oZXJpdDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxufVxuXG4ud2lkZ2V0LWl0ZW0ucGRmLW1vZGUgLmluY2x1ZGUtdG8tcGRme1xuICAmLnRpdGxlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IH5cImNhbGMoMTAwJSAtIDIqQHtpbXBhYy1wYWRkaW5nLWJldHdlZW4td2lkZ2V0c30gKVwiO1xuICAgIHotaW5kZXg6IDM7XG4gICAgcGFkZGluZy1yaWdodDogMXB4O1xuICAgIGg2IHtcbiAgICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZDOTI4O1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbiAgfVxuICAmLnRpY2sge1xuICAgIGkge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAzNSU7XG4gICAgICBsZWZ0OiA0NiU7XG4gICAgICBmb250LXNpemU6IDEwMHB4O1xuICAgICAgb3BhY2l0eTogLjU7XG4gICAgICB6LWluZGV4OiAyO1xuICAgICAgY29sb3I6IGJsYWNrO1xuICAgIH1cbiAgfVxuICAud2lkZ2V0LWhvdmVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHBhZGRpbmc6IDlweDtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgZWFzZSAuNXM7XG4gICAgLW1vei10cmFuc2l0aW9uOiBhbGwgZWFzZSAuNXM7XG4gICAgdHJhbnNpdGlvbjogYWxsIGVhc2UgLjVzO1xuICAgIHotaW5kZXg6IDE7XG4gICAgJjpob3ZlciB7XG4gICAgICBvcGFjaXR5OiAuNTtcbiAgICAgIGJhY2tncm91bmQ6ICNDQ0NGRDA7XG4gICAgfVxuICB9XG59XG5cbi8vIEZpeCBvdmVyZmxvdyBmb3IgbGFyZ2Ugc3Vtcy90ZXh0IGluIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHRhYmxlc1xuLndpZGdldC1pdGVtIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZSA+IFtjbGFzcyo9J2NvbC0nXSB7XG4gIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuZGF0YS1ub3QtZm91bmQsXG4uYW5hbHl0aWNzIC5rcGkgLmRhdGEtbm90LWZvdW5kIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGNvbG9yOiBAaW1wYWMtd2lkZ2V0LXBvcHVwLW1lc3NhZ2UtdGV4dC1jb2xvcjtcblxuICAub3ZlcmxheSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGhlaWdodDogflwiY2FsYygxMDAlIC0gNHB4KVwiO1xuICAgIHdpZHRoOiB+XCJjYWxjKDEwMCUgLSA0cHgpXCI7XG4gICAgdG9wOiAycHg7XG4gICAgbGVmdDogMnB4O1xuICAgIG9wYWNpdHk6IDAuNjtcbiAgICB6LWluZGV4OiAzO1xuICB9XG5cbiAgLm1lc3NhZ2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDEyNXB4O1xuICAgIGxlZnQ6IDUwJTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICB3aWR0aDogODUlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy13aWRnZXQtcG9wdXAtbWVzc2FnZS1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBib3gtc2hhZG93OiAwcHggMHB4IDI1cHggMHB4O1xuICAgIHotaW5kZXg6IDQ7XG5cbiAgICAudGl0bGUge1xuICAgICAgcGFkZGluZzogMnB4O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGltcGFjLXdpZGdldC1wb3B1cC10aXRsZS1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgY29sb3I6IEBpbXBhYy13aWRnZXQtcG9wdXAtdGl0bGUtdGV4dC1jb2xvcjtcbiAgICAgIG1hcmdpbjogLTFweCAtMXB4IDEwcHggLTFweDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgfVxuXG4gICAgcCB7XG4gICAgICBtYXJnaW4tbGVmdDogNXB4O1xuICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgfVxuXG4gICAgLmJ0biB7IG1hcmdpbi10b3A6IDVweDsgfVxuICB9XG5cbiAgLmV4YW1wbGUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDBweDtcbiAgICBsZWZ0OiAwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgY29sb3I6IEBpbXBhYy13aWRnZXQtcG9wdXAtdGl0bGUtdGV4dC1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtd2lkZ2V0LXBvcHVwLXRpdGxlLWJhY2tncm91bmQtY29sb3I7XG4gICAgcGFkZGluZzogM3B4O1xuICAgIHotaW5kZXg6IDY7XG5cbiAgICBhIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICBjb2xvcjogQGltcGFjLXdpZGdldC1kZW1vLWRhdGEtbGluay1jb2xvcjtcbiAgICB9XG4gIH1cbn1cblxuLmFuYWx5dGljcyAua3BpIC5kYXRhLW5vdC1mb3VuZCB7XG4gIC5tZXNzYWdlIHtcbiAgICB3aWR0aDogOTAlO1xuICAgIHBhZGRpbmctYm90dG9tOiAwcHg7XG4gICAgYm9yZGVyOiBzb2xpZCAxcHggc2lsdmVyO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgcCB7IG1hcmdpbjogNXB4OyB9XG4gIH1cbiAgLm92ZXJsYXksIC50aXRsZSwgLmJ0biwgLmV4YW1wbGUgeyBkaXNwbGF5OiBub25lOyB9XG59XG4iLCIjZHVwbGljYXRlLXRyYW5zYWN0aW9ucy1saXN0IHtcbiAgLnRvcCB7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIGEuYmFjay1saW5rIHsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgfVxuICAgIC5wYWdpbmF0aW9uIHsgbWFyZ2luOiAwcHg7IH1cbiAgfVxuXG4gIC50YWJsZS1zdHJpcGVkIHtcbiAgICB0ci5vcmlnaW46bnRoLW9mLXR5cGUob2RkKSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmOWY5O1xuICAgIH1cbiAgfVxuXG4gIC50YWJsZS1jb250YWluZXIge1xuICAgIG1heC1oZWlnaHQ6IH5cImNhbGMoQHtpbXBhYy1iaWctd2lkZ2V0LXNpemV9IC0gNjBweClcIjtcbiAgICBvdmVyZmxvdzogYXV0bztcblxuICAgIGRpdlt1aWItZGF0ZXBpY2tlci1wb3B1cC13cmFwXSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxuXG4gICAgaW5wdXQuYnRuLmJ0bi14cyB7IG1hcmdpbi10b3A6IC0ycHg7IH1cbiAgICBidXR0b24uYnRuLnJlc2V0LWRhdGUgeyBtYXJnaW4tdG9wOiAtMnB4OyB9XG4gICAgLmZhLmZhLXRpbWVzIHtcbiAgICAgIGNvbG9yOiBAYnJhbmQtZGFuZ2VyO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgIHRyLnRvdGFsIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgJi5pbnZvaWNlcyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oQGltcGFjLXBvc2l0aXZlLCAyMCUpO1xuICAgICAgfVxuICAgICAgJi5iaWxscyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oQGltcGFjLW5lZ2F0aXZlLCAyMCUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiI3RyYW5zYWN0aW9ucy1hZGQge1xuICAud2lkZ2V0LXBvcHVwKCk7XG4gIC5tZXNzYWdlIHtcbiAgICB0b3A6IDMwcHg7XG4gICAgbGVmdDogMzUlO1xuICAgIHdpZHRoOiAzMCU7XG4gICAgLmZvcm0ge1xuICAgICAgcGFkZGluZzogMHB4IDEwcHg7XG4gICAgICA+IGxhYmVsLFxuICAgICAgLnNjaGVkdWxhYmxlLXNlY3Rpb24gPiBsYWJlbCB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAxMHB4O1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAzcHg7XG4gICAgICB9XG4gICAgICBpbnB1dC5mb3JtLWNvbnRyb2wsIHNlbGVjdC5mb3JtLWNvbnRyb2wge1xuICAgICAgICB3aWR0aDogOTAlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgIGhlaWdodDogMjhweDtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgfVxuICAgICAgLmJ0bi1ncm91cCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtaW4taGVpZ2h0OiAyMnB4O1xuICAgICAgICBzZWxlY3Qge1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICBoZWlnaHQ6IDI4cHg7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMHB4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAuZGlzYWJsZSB7XG4gICAgICAgIGNvbG9yOiAjODg4ODg4O1xuICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICB9XG4gICAgICAubmV2ZXItZGlzYWJsZSB7XG4gICAgICAgIGNvbG9yOiBibGFjaztcbiAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgfVxuICAgICAgLnJlcGVhdC1idG4ge1xuICAgICAgICBtYXJnaW4tdG9wOiAzMHB4O1xuICAgICAgICBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0ZXh0LWJvdHRvbTtcbiAgICAgICAgICBtYXJnaW46IDBweDtcbiAgICAgICAgfVxuICAgICAgICBzZWxlY3QgeyBoZWlnaHQ6IDIycHg7IH1cbiAgICAgICAgLmJ0biB7XG4gICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiAjODg4ODg4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAuc2NoZWR1bGFibGUtc2VjdGlvbiB7XG4gICAgICAgIHBhZGRpbmc6IDVweDtcbiAgICAgICAgYm9yZGVyOiBzb2xpZCAxcHggc2lsdmVyO1xuICAgICAgICBtYXJnaW4tdG9wOiAwcHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgICAuYmFkZ2Uge1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzg4ODg4ODtcbiAgICAgICAgfVxuICAgICAgICAuaW50ZXJ2YWwtZmllbGQge1xuICAgICAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgICB9XG4gICAgICAgIC5idG4tZ3JvdXAge1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgICAgICAgIHNlbGVjdCB7IGhlaWdodDogMjJweDsgfVxuICAgICAgICAgIC5idG4ge1xuICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICM4ODg4ODg7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC5ib3R0b20ge1xuICAgICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICB9XG4gIH1cbn1cbiIsIiN0cmFuc2FjdGlvbnMtbGlzdCB7XG4gIC50b3Age1xuICAgIGhlaWdodDogNDBweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAuYmFjayB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgfVxuICAgIC5yZXNvdXJjZS10eXBlIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGxlZnQ6IH5cImNhbGMoNTAlIC0gOThweClcIjtcbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiBAc2NyZWVuLXhzLW1heCkge1xuICAgICAgICBsZWZ0OiB1bnNldDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICB9XG4gICAgfVxuICAgIC5idG4tZ3JvdXAgeyBkaXNwbGF5OiBmbGV4OyB9XG4gIH1cblxuICAuYm90dG9tIHtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIC5wYWdpbmF0aW9uIHsgbWFyZ2luOiAwcHg7IH1cbiAgfVxuXG4gIC50YWJsZS1jb250YWluZXIge1xuICAgIG1heC1oZWlnaHQ6IH5cImNhbGMoQHtpbXBhYy1iaWctd2lkZ2V0LXNpemV9IC0gMTAwcHgpXCI7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICBkaXZbdWliLWRhdGVwaWNrZXItcG9wdXAtd3JhcF0ge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cblxuICAgIGlucHV0LmJ0bi5idG4teHMgeyBtYXJnaW4tdG9wOiAtMnB4OyB9XG4gICAgYnV0dG9uLmJ0bi5yZXNldC1kYXRlIHsgbWFyZ2luLXRvcDogLTJweDsgfVxuXG4gICAgLmFjdGlvbnMge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgLmZhLmZhLXRpbWVzIHsgY29sb3I6IEBicmFuZC1kYW5nZXI7IH1cbiAgICB9XG5cbiAgICB0ci50b3RhbCB7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICYuaW52b2ljZXMge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCM4ZWFiNzEsIDIwJSk7XG4gICAgICB9XG4gICAgICAmLmJpbGxzIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbigjYzc2Mzc5LCAyMCUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRkID4gLmV4cGVjdGVkLXBheW1lbnQtZGF0ZSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgLnJlc2V0LWRhdGUgeyBtYXJnaW4tbGVmdDogM3B4OyB9XG4gICAgfVxuICB9XG59XG4iLCIjdHJlbmRzLWFkZCB7XG4gIC53aWRnZXQtcG9wdXAoKTtcbiAgLm1lc3NhZ2Uge1xuICAgIHRvcDogMzBweDtcbiAgICBsZWZ0OiAzNSU7XG4gICAgd2lkdGg6IDMwJTtcbiAgICAuZm9ybSB7XG4gICAgICBwYWRkaW5nOiAwcHggMTBweDtcbiAgICAgID4gbGFiZWwge1xuICAgICAgICBwYWRkaW5nLXRvcDogMTBweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogM3B4O1xuICAgICAgfVxuICAgICAgaW5wdXQuZm9ybS1jb250cm9sIHtcbiAgICAgICAgd2lkdGg6IDkwJTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICBoZWlnaHQ6IDI4cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgIH1cbiAgICAgIC5idG4tZ3JvdXAge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWluLWhlaWdodDogMjJweDtcbiAgICAgICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICAgICAgPiAuYnRuIHtcbiAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgfVxuICAgICAgICBpbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICAgICAgICAgIG1hcmdpbjogNHB4IDAgMTBweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAuYm90dG9tIHtcbiAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgfVxuICB9XG59IiwiI3RyZW5kcy1saXN0IHtcbiAgLnRvcCB7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIGEuYmFjay1saW5rIHsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgfVxuICAgIC5wYWdpbmF0aW9uIHsgbWFyZ2luOiAwcHg7IH1cbiAgfVxuXG4gIC50YWJsZS1jb250YWluZXIge1xuICAgIG1heC1oZWlnaHQ6IH5cImNhbGMoQHtpbXBhYy1iaWctd2lkZ2V0LXNpemV9IC0gNjBweClcIjtcbiAgICBvdmVyZmxvdzogYXV0bztcblxuICAgIGRpdlt1aWItZGF0ZXBpY2tlci1wb3B1cC13cmFwXSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxuXG4gICAgaW5wdXQuYnRuLmJ0bi14cyB7IG1hcmdpbi10b3A6IC0ycHg7IH1cbiAgICBidXR0b24uYnRuLnJlc2V0LWRhdGUgeyBtYXJnaW4tdG9wOiAtMnB4OyB9XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLmRhc2hib2FyZC1zZXR0aW5ncy5jdXJyZW5jeSB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBzZWxlY3Qge1xuICAgIG1hcmdpbi10b3A6IDRweDtcbiAgfVxufVxuIiwiLmFuYWx5dGljcyAuZGFzaGJvYXJkLXNldHRpbmdzLnN5bmMtYXBwcyB7XG4gIC5zaG93LXN0YXR1cyB7XG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgY29sb3I6IEBpbXBhYy13aWRnZXQtdGV4dC1jb2xvci1tZWRpdW07XG4gICAgJjpob3ZlciB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB9XG4gICAgLmZhLmZhLWluZm8geyBtYXJnaW4tcmlnaHQ6IDJweDsgfVxuICB9XG4gIC5zdGF0dXMtYnRuIHtcbiAgICBpIHtcbiAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICYuZmEtZXhjbGFtYXRpb24tdHJpYW5nbGUgeyBjb2xvcjogQGZsdXJvb3JhbmdlOyB9XG4gICAgICAmLmZhLWNoZWNrIHsgY29sb3I6IEBncmVlbjsgfVxuICAgIH1cbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHBhZGRpbmc6IDVweCA3cHggNXB4IDBweDtcbiAgfVxuXG4gIC5wb3BvdmVyIHtcbiAgICBtYXgtd2lkdGg6IDU1MHB4O1xuICAgIC5jb25uZWN0b3Ige1xuICAgICAgcGFkZGluZzogNHB4IDEzcHg7XG4gICAgICAmLmFkZC1zZXBlcmF0b3IgeyBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYzsgfVxuICAgIH1cbiAgICAucG9wb3Zlci1jb250ZW50IHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuICAgIC5wb3BvdmVyLWZvb3RlciB7XG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2NjYztcbiAgICAgIHBhZGRpbmc6IDRweCAxM3B4O1xuICAgICAgcCB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICB9XG4gICAgICAmLnJlbW92ZS1zZXBlcmF0b3IgeyBib3JkZXI6IDA7IH1cbiAgICB9XG4gIH1cblxuICAuYmFkZ2UgeyBmbG9hdDogcmlnaHQ7IG1hcmdpbi1sZWZ0OiA4cHg7IH1cbiAgLnN1Y2Nlc3MgLmJhZGdlIHsgYmFja2dyb3VuZC1jb2xvcjogQGdyZWVuOyB9XG4gIC5wZW5kaW5nIC5iYWRnZSB7IGJhY2tncm91bmQtY29sb3I6IEBmbHVyb29yYW5nZTsgfVxuICAucnVubmluZyAuYmFkZ2UgeyBiYWNrZ3JvdW5kLWNvbG9yOiBAZmx1cm9vcmFuZ2U7IH1cbiAgLmVycm9yIC5iYWRnZSB7IGJhY2tncm91bmQtY29sb3I6IEBwaW5rOyB9XG4gIC5mYWlsZWQgLmJhZGdlIHsgYmFja2dyb3VuZC1jb2xvcjogQHBpbms7IH1cbiAgLnVua25vd24gLmJhZGdlIHsgYmFja2dyb3VuZC1jb2xvcjogQHBpbms7IH1cbiAgLmRpc2Nvbm5lY3RlZCAuYmFkZ2UgeyBiYWNrZ3JvdW5kLWNvbG9yOiBAcGluazsgfVxufVxuXG4jc3luYy1hcHBzLW1vZGFsIHtcbiAgLm1vZGFsLWhlYWRlciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3gtc2hhZG93OiAwcHggMnB4IDNweCAwcHggI2NjYztcbiAgfVxuICAubW9kYWwtbGlzdCB7XG4gICAgbWF4LWhlaWdodDogMjgwcHg7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgfVxuICAubW9kYWwtbGlzdC1pdGVtIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcbiAgICBwYWRkaW5nOiAxMHB4O1xuXG4gICAgLmJhZGdlIHsgZmxvYXQ6IHJpZ2h0OyB9XG4gICAgJi5zdWNjZXNzIC5iYWRnZSB7IGJhY2tncm91bmQtY29sb3I6IEBncmVlbjsgfVxuICAgICYucGVuZGluZyAuYmFkZ2UgeyBiYWNrZ3JvdW5kLWNvbG9yOiBAZmx1cm9vcmFuZ2U7IH1cbiAgICAmLnJ1bm5pbmcgLmJhZGdlIHsgYmFja2dyb3VuZC1jb2xvcjogQGZsdXJvb3JhbmdlOyB9XG4gICAgJi5lcnJvciAuYmFkZ2UgeyBiYWNrZ3JvdW5kLWNvbG9yOiBAcGluazsgfVxuICAgICYuZmFpbGVkIC5iYWRnZSB7IGJhY2tncm91bmQtY29sb3I6IEBwaW5rOyB9XG4gICAgJi51bmtub3duIC5iYWRnZSB7IGJhY2tncm91bmQtY29sb3I6IEBwaW5rOyB9XG4gICAgJi5kaXNjb25uZWN0ZWQgLmJhZGdlIHsgYmFja2dyb3VuZC1jb2xvcjogQHBpbms7IH1cblxuICAgIC5tZXNzYWdlIHtcbiAgICAgIHAgeyBtYXJnaW46IDA7IH1cbiAgICAgIHBhZGRpbmc6IDNweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAzMXB4O1xuICAgICAgbWFyZ2luLXRvcDogOXB4O1xuICAgIH1cblxuICAgICYuc3VjY2VzcyAubWVzc2FnZSB7IGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMjU1LCA1NSwgMC4wOCk7IH1cbiAgICAmLnBlbmRpbmcgLm1lc3NhZ2UgeyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMTE4LCAwLCAwLjA4KTsgfVxuICAgICYucnVubmluZyAubWVzc2FnZSB7IGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAxMTgsIDAsIDAuMDgpOyB9XG4gICAgJi5lcnJvciAubWVzc2FnZSB7IGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAwLCAwLCAwLjA4KTsgfVxuICAgICYuZmFpbGVkIC5tZXNzYWdlIHsgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDAsIDAsIDAuMDgpOyB9XG4gICAgJi51bmtub3duIC5tZXNzYWdlIHsgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDAsIDAsIDAuMDgpOyB9XG4gICAgJi5kaXNjb25uZWN0ZWQgLm1lc3NhZ2UgeyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMCwgMCwgMC4wOCk7IH1cblxuICAgICYud2l0aC1tZXNzYWdlIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAubW9kYWwtZm9vdGVyIHtcbiAgICBib3JkZXI6IDA7XG4gIH1cbiAgLmZhIHsgcGFkZGluZzogMHB4IDEwcHg7IH1cbiAgLmZhLmVycm9yIHsgY29sb3I6IEByZWQ7IH1cbiAgLmZhLndhcm4geyBjb2xvcjogQGZsdXJvb3JhbmdlOyB9XG4gIC5mYS5zdWNjZXNzIHsgY29sb3I6IEBmbHVyb2dyZWVuOyB9XG59XG4iLCJjaGFydC10aHJlc2hvbGQge1xuICAuYXR0YWNoLXBhbmVsIHtcbiAgICBwYWRkaW5nOiA1cHggMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIwLCAxMzIsIDIyOCwgMC4xNik7XG5cbiAgICAmID4gZGl2IHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDVweDtcblxuICAgICAgJi50YXJnZXQgeyB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICB9XG5cbiAgICBAbWVkaWEgKG1heC13aWR0aDogQHNjcmVlbi1tZC1tYXgpIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgPiBkaXYge1xuICAgICAgICBwYWRkaW5nOiA1cHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnRleHQge1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgY29sb3I6IEBpbXBhYy13aWRnZXQtdGV4dC1jb2xvcjtcbiAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICB9XG5cbiAgICBpbnB1dCB7XG4gICAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgICBib3JkZXI6IDFweCB3aGl0ZTtcbiAgICAgIHBhZGRpbmc6IDNweDtcblxuICAgICAgJltuYW1lPWFtb3VudF0ge1xuICAgICAgICBtYXgtd2lkdGg6IDcwcHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmN1cnJlbmN5IHtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgY29sb3I6ICMwMDA7XG4gICAgfVxuXG4gICAgLmFjdGlvbnMge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgcGFkZGluZzogMCAycHg7XG4gICAgICBidXR0b24ge1xuICAgICAgICBwYWRkaW5nOiAzcHggNnB4O1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICYubG9hZGluZyB7XG4gICAgICAgICAgcGFkZGluZzogM3B4IDIwcHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi5hbmFseXRpY3Mgd2lkZ2V0cy1jb21tb24tY29uZmlybS1tb2RhbCB7XG4gIC53aWRnZXQtcG9wdXAoKTtcbiAgLm1lc3NhZ2Uge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cbiAgICBwIHsgcGFkZGluZzogMHB4IDEwcHg7IH1cblxuICAgIGJ1dHRvbi5idG4geyBtYXJnaW4tdG9wOiAyMHB4OyB9XG5cbiAgICAubG9hZGVyIGkuZmEuZmEtc3Bpbm5lciB7XG4gICAgICBmb250LXNpemU6IDI2cHg7XG4gICAgfVxuICB9XG59XG4iLCIuY3VycmVuY3ktY29udmVyc2lvbnMge1xuICBpbWcge1xuICAgIHdpZHRoOiAxNXB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gICYucG9wb3ZlciAucG9wb3Zlci10aXRsZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG4gICAgY29sb3I6IHdoaXRlO1xuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuZWRpdGFibGUtdGl0bGUge1xuICB3aWR0aDogMTAwJTtcbiAgZmxleDogMTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgaGVpZ2h0OiAyMnB4O1xuXG4gIC50aXRsZSB7XG4gICAgdGV4dC10cmFuc2Zvcm06IEBpbXBhYy13aWRnZXQtdGl0bGUtdGV4dC10cmFuc2Zvcm07XG4gICAgLmZvbnQoQGltcGFjLXdpZGdldC10aXRsZS10ZXh0LXNpemUsNjAwLEBpbXBhYy13aWRnZXQtdGl0bGUtdGV4dC1jb2xvcik7XG4gICAgY3Vyc29yOiB0ZXh0O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICBsaW5lLWhlaWdodDogMS45O1xuICB9XG5cbiAgLmVkaXRhYmxlLXdyYXAge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgbWluLXdpZHRoOiAxMDAlO1xuICAgIC8vIG90aGVyd2lzZSwgd2hpdGUtc3BhY2UgaXMgb3ZlcnJpZGVuIGluIG1uby1lbnRlcnByaXNlXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgIC5lZGl0YWJsZS1jb250cm9scyB7XG4gICAgICBtaW4td2lkdGg6IDEwMCU7XG5cbiAgICAgIC5lZGl0YWJsZS1pbnB1dCB7XG4gICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogQGltcGFjLXdpZGdldC10aXRsZS10ZXh0LXRyYW5zZm9ybTtcbiAgICAgICAgLy8gNjVweCBpcyAuZWRpdGFibGUtYnV0dG9ucyB3aWR0aFxuICAgICAgICB3aWR0aDogflwiY2FsYygxMDAlIC0gNjVweClcIjtcbiAgICAgICAgcGFkZGluZzogMHB4IDNweDtcbiAgICAgIH1cblxuICAgICAgLmVkaXRhYmxlLWJ1dHRvbnMge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtd2lkZ2V0LXRpdGxlLWJnO1xuICAgICAgICBidXR0b24ge1xuICAgICAgICAgIG1hcmdpbjogMHB4IDBweCAwcHggNXB4O1xuICAgICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgICBwYWRkaW5nOiAwcHggNXB4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuaW5mby1wYW5lbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxNXB4O1xuICBsZWZ0OiAxNXB4O1xuICB3aWR0aDogflwiY2FsYygxMDAlIC0gMzBweClcIjtcbiAgbWF4LWhlaWdodDogflwiY2FsYygxMDAlIC0gMzBweClcIjtcbiAgaGVpZ2h0OiAxMDAlO1xuICB6LWluZGV4OiAxMDA7XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGJvcmRlcjogZG90dGVkIDFweCAjQjdDRENFO1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGZvbnQtZmFtaWx5OiBcIkxhdG8gU2VtaWJvbGRcIiwgXCJMYXRvXCI7XG5cbiAgei1pbmRleDogNDtcblxuICAmOmhvdmVyIHsgb3BhY2l0eTogMTsgfVxuXG4gIC5pLWhlYWRlciB7XG4gICAgLmZhIHsgZm9udC1zaXplOiAxOHB4OyB9XG4gICAgLmZhLWluZm8tY2lyY2xlIHsgZmxvYXQ6IGxlZnQ7IH1cbiAgICAuZmEtdGltZXMtY2lyY2xlIHsgY3Vyc29yOiBwb2ludGVyOyBmbG9hdDogcmlnaHQ7IH1cblxuICAgIGJhY2tncm91bmQtY29sb3I6ICNGRkM5Mjg7XG4gICAgY29sb3I6IEBpbXBhYy13aWRnZXQtcmV2ZXJzZS1jb2xvcjtcbiAgICBwYWRkaW5nOiA4cHg7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LWZhbWlseTogXCJMYXRvIE1lZGl1bVwiLCBcIkxhdG9cIjtcbiAgICBmb250LXNpemU6IDEycHg7XG4gIH1cblxuICAuaS1jb250ZW50IHtcbiAgICAuc2Nyb2xsYWJsZSgpO1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICB0ZXh0LWFsaWduOiBqdXN0aWZ5O1xuICAgIGZsZXg6IDE7XG5cbiAgICAucm93IHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDZweDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiA2cHg7XG4gICAgICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggQGltcGFjLWRhc2hib2FyZC1ib3JkZXJzLWNvbG9yO1xuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLmtleSB7XG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiBAc2NyZWVuLXNtLW1heCkgeyB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIGZvbnQtdmFyaWFudDogc21hbGwtY2FwcztcbiAgICAgIH1cblxuICAgICAgLnZhbHVlIHsgdGV4dC1hbGlnbjoganVzdGlmeTsgfVxuICAgIH1cbiAgfVxufVxuIiwiLmFuYWx5dGljcyAudGltZS1wZXJpb2QtaW5mbyB7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgY29sb3I6ICNBQkM0QzY7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAudG9wLWxpbmUgLnRvcC1idXR0b25zIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIG1hcmdpbi10b3A6IC0xcHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHBhZGRpbmctbGVmdDogMTBweDtcblxuICAudG9wLWJ1dHRvbnMtd3JhcHBlciB7XG4gICAgLnRvcC1idXR0b24ge1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICBjb2xvcjogQGltcGFjLXdpZGdldC10b3AtYnV0dG9ucy1jb2xvcjtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgd2lkdGg6IDE3cHg7XG5cbiAgICAgICY6YWN0aXZlLCAmOmZvY3VzIHsgYm94LXNoYWRvdzogbm9uZTsgfVxuXG4gICAgICAmLmJ0bi1pbmZvIHtcbiAgICAgICAgZm9udC1zaXplOiAxN3B4O1xuICAgICAgICBtYXJnaW4tdG9wOiAxcHg7XG4gICAgICAgICY6aG92ZXIgeyBjb2xvcjogI0ZGQzkyODsgfVxuICAgICAgfVxuICAgICAgJi5idG4tZXhwb3J0IHtcbiAgICAgICAgZm9udC1zaXplOiAxN3B4O1xuICAgICAgICBtYXJnaW4tdG9wOiAxcHg7XG4gICAgICAgICY6aG92ZXIgeyBjb2xvcjogQG1ibHVlOyB9XG4gICAgICB9XG4gICAgICAmLmJ0bi1yZWZyZXNoIHtcbiAgICAgICAgZm9udC1zaXplOiAxN3B4O1xuICAgICAgICBtYXJnaW4tdG9wOiAxcHg7XG4gICAgICAgICY6aG92ZXIgeyBjb2xvcjogQG1ibHVlOyB9XG4gICAgICB9XG4gICAgICAmLmJ0bi1lZGl0IHtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICAmOmhvdmVyLCAmLmVkaXQtbW9kZSB7IGNvbG9yOiBkYXJrZW4oQG1ncmVlbiwxMCUpOyB9XG4gICAgICB9XG4gICAgICAmLmJ0bi1jbG9zZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgJjpob3ZlciB7IGNvbG9yOiBAcGluazsgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtYXNzZXRzLWxpYWJpbGl0eS1zdW1tYXJ5IHtcbiAgLnBhcmFtLXNlbGVjdG9yIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbiAgLmxlZ2VuZCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBtYXgtaGVpZ2h0OiA5MHB4O1xuXG4gICAgLnRpdGxlIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGJvcmRlci1ib3R0b206IGRhc2hlZCAxcHggQGltcGFjLXdpZGdldC1ib3JkZXJzLWNvbG9yO1xuICAgIH1cbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtYXNzZXRzLXN1bW1hcnkge1xuICAubGVnZW5kIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIG1heC1oZWlnaHQ6IDExNXB4O1xuXG4gICAgLnRpdGxlIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGJvcmRlci1ib3R0b206IGRhc2hlZCAxcHggQGltcGFjLXdpZGdldC1ib3JkZXJzLWNvbG9yO1xuICAgIH1cbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtYXNzZXRzLXZzLWxpYWJpbGl0aWVzIHtcbiAgLmxlZ2VuZCA+IC50aXRsZSBzcGFuIHtcbiAgICBtYXJnaW4tbGVmdDogM3B4O1xuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1iYWxhbmNlIHtcbiAgaDMge1xuICAgIC5sZWZ0LXRoaW4oMzBweCk7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG5cbiAgLnByaWNlIHtcbiAgICAuY2VudGVyLWJvbGQoMHB4KTtcbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtYmFsYW5jZS1zaGVldCB7XG4gIC50YWxsLXdpZGdldCgpO1xuICAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gICAgLnNjcm9sbGFibGUoc2Nyb2xsKTtcbiAgICBtYXgtaGVpZ2h0OiA0OTBweDtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogQHNjcmVlbi14cy1tYXgpIHtcbiAgICAgIC5yb3cud2lkZ2V0LWxpbmUge1xuICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkgeyBib3JkZXItYm90dG9tOiBkYXNoZWQgMXB4IEBpbXBhYy13aWRnZXQtYm9yZGVycy1jb2xvcjsgfVxuICAgICAgfVxuICAgIH1cbiAgICAucm93LndpZGdldC1saW5lLmhlYWRlciA+IFtjbGFzcyo9J2NvbC0nXSB7IHBvc2l0aW9uOiBzdGF0aWM7IH1cblxuICAgICYubm8tc2Nyb2xsIHtcbiAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIH1cbiAgfVxuXG4gIC5uby1kYXRhLWJsb2NrIHtcbiAgICAuY2VudGVyLXRoaW4oKTtcbiAgICBtYXJnaW46IDE1cHggMHB4O1xuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLWJhbGFuY2Uge1xuICAudGFsbC13aWRnZXQoKTtcblxuICAuZGF0YS1jb250YWluZXIge1xuICAgIGhlaWdodDogflwiY2FsYyhAe2ltcGFjLWJpZy13aWRnZXQtc2l6ZX0gLSA1MHB4KVwiO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLmxlZnQtcGFuZWwge1xuICAgIHdpZHRoOiAxODBweDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbiAgfVxuXG4gICNjYXNoLWJhbGFuY2UtbGVnZW5kIHtcbiAgICAuaGVhZGVyIHtcbiAgICAgIC5ncm91cC1pdGVtIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWluLWhlaWdodDogNDVweDtcbiAgICAgICAgbWFyZ2luOiAzcHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgcGFkZGluZzogM3B4O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtd2lkZ2V0LW1lbnVzLWhvdmVyLWJhY2tncm91bmQtY29sb3I7XG4gICAgICAgIH1cbiAgICAgICAgaSB7XG4gICAgICAgICAgZm9udC1zaXplOiAxOXB4O1xuICAgICAgICAgIHBhZGRpbmc6IDRweDtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAxcHhcbiAgICAgICAgfVxuICAgICAgICBzcGFuIHsgY29sb3I6IEBpbXBhYy13aWRnZXQtdGV4dC1jb2xvcjsgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5sZWdlbmQtaXRlbS1pY29uIHtcbiAgICB3aWR0aDogMTZweDtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gIH1cblxuICAucmlnaHQtcGFuZWwge1xuICAgIHdpZHRoOiB+XCJjYWxjKDEwMCUgLSAxODBweClcIjtcbiAgICBmbG9hdDogcmlnaHQ7XG5cbiAgICAvLyBIaWdoY2hhcnQgY29udGFpbmVyXG4gICAgLmNhc2gtYmFsYW5jZS1jaGFydCB7XG4gICAgICBoZWlnaHQ6IH5cImNhbGMoQHtpbXBhYy1iaWctd2lkZ2V0LXNpemV9IC0gNTBweClcIjtcbiAgICB9XG4gIH1cblxuICAuZGF0ZXMtcGlja2VyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1wcm9qZWN0aW9uIHtcbiAgLnRhbGwtd2lkZ2V0KCk7XG5cbiAgLmNhc2gtcHJvamVjdGlvbi1jaGFydCB7XG4gICAgaGVpZ2h0OiB+XCJjYWxjKEB7aW1wYWMtYmlnLXdpZGdldC1zaXplfSAtIDUwcHgpXCI7XG4gIH1cblxuICAuaGlnaGNoYXJ0cy1sZWdlbmQtaXRlbSB7XG4gICAgcmVjdC5oaWdoY2hhcnRzLXBvaW50IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgc3BhbiB7XG4gICAgICB3aWR0aDogMTEwcHg7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBpbWcge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiA1NXB4O1xuICAgICAgICBoZWlnaHQ6IDI1cHg7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmRhdGVzLXBpY2tlciB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gIH1cblxuICB0cmFuc2FjdGlvbnMtbGlzdCB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLXN1bW1hcnkge1xuICAuZHJpbGwtZG93bi13aWRnZXQoKTtcbiAgLnJpZ2h0LXBhbmVsIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgICBtYXgtaGVpZ2h0OiAyMTVweDtcbiAgfVxuXG4gIC5yb3cubGluZXMtZ3JvdXAuY2FzaCB7XG4gICAgYm9yZGVyLXRvcDogc29saWQgMXB4O1xuICAgIGJvcmRlci1ib3R0b206IGRvdWJsZTtcbiAgfVxufVxuIiwiLy8gLS0tIFJldXNhYmxlIHdpZGdldCBzdHlsZSBtaXhpbnNcblxuLy8gUGF5cm9sbC1TdW1tYXJ5IC0gUHJvZml0LWFuZC1Mb3NzXG4uZHJpbGwtZG93bi13aWRnZXQgKCkge1xuICAudGFsbC13aWRnZXQoKTtcblxuICAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gICAgbWF4LWhlaWdodDogNTQwcHg7XG4gICAgLmxpbmVzLWdyb3VwIC53aWRnZXQtbGluZSB7XG4gICAgICAuc2VsZWN0YWJsZSgpO1xuICAgIH1cbiAgfVxuXG4gIC5yaWdodC1wYW5lbCB7XG4gICAgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICAgICAgLnNjcm9sbGFibGUoYXV0byk7XG4gICAgICBtYXgtaGVpZ2h0OiAyMzVweDtcbiAgICB9XG4gIH1cblxuICAubm8tZWxlbWVudCB7XG4gICAgLmNlbnRlci10aGluKCk7XG4gIH1cbn1cblxuLy8gVG9wIGN1c3RvbWVycyBzdW1tYXJ5IC0gU2FsZXMgY3ljbGUuLi5cbi5zaW1wbGUtc3VtbWFyeS13aWRnZXQoKSB7XG4gIC5jaGFydC1jb250YWluZXIge1xuICAgIG1heC13aWR0aDogNDEwcHg7XG4gIH1cbiAgLmxlZ2VuZCB7XG4gICAgbWF4LWhlaWdodDogMjhweDtcbiAgfVxufVxuXG4vLyBJbnZvaWNlcyBsaXN0IC0gc2FsZXMgbGlzdFxuLnNpbXBsZS1saXN0LXdpZGdldCgpIHtcbiAgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICAgIG1heC1oZWlnaHQ6IDIzMHB4O1xuICAgIC53aWRnZXQtbGluZSB7XG4gICAgICAuYWx0ZXJuYXRlLWJnKCk7XG4gICAgICAmLmhlYWRlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy13aWRnZXQtYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gV29ya2ZvcmNlLVN1bW1hcnkgLSBTYWxhcmllcy1TdW1tYXJ5XG4uZXhwYW5kYWJsZS1maWx0ZXJhYmxlLXdpZGdldCgpIHtcbiAgaDMubGVmdCB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbWQtbWluKSB7IG1hcmdpbi10b3A6IDY5cHg7IH1cbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbiAgaDMucmVkdWNlZC1sZWZ0IHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1tZC1taW4pIHsgbWFyZ2luLXRvcDogMTBweDsgfVxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICBoMy5yaWdodCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbiAgLnByaWNlIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG4gIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgICBtYXgtaGVpZ2h0OiA3NXB4O1xuICAgIC53aWRnZXQtbGluZSB7XG4gICAgICBmb250LXNpemU6IDExcHg7XG4gICAgfVxuICB9XG4gIC5yaWdodC1wYW5lbCAuY2hhcnQtY29udGFpbmVyIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi14cy1taW4pIGFuZCAobWF4LXdpZHRoOiBAc2NyZWVuLXNtLW1heCkgeyBtYXgtd2lkdGg6IDMyMHB4OyB9XG4gIH1cbn1cblxuLy8gTGVhZHMgZnVubmVsIC0gT3Bwb3J0dW5pdGllcyBmdW5uZWxcbi5mdW5uZWwtd2lkZ2V0KCkge1xuICAudGFsbC13aWRnZXQoKTtcbiAgLmZ1bm5lbC1jb250YWluZXIge1xuICAgIHdpZHRoOiA5NSU7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIG1hcmdpbi10b3A6IDE1cHg7XG4gICAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgICBtYXgtaGVpZ2h0OiBAaW1wYWMtYmlnLXdpZGdldC1zaXplIC0gNjBweDtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgfVxuICAucmlnaHQtcGFuZWwge1xuICAgIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgICAgIG1heC1oZWlnaHQ6IEBpbXBhYy1iaWctd2lkZ2V0LXNpemUgLSAyMHB4O1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgICAgLndpZGdldC1saW5lIHtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2xhc3MtY29tcGFyaXNvbiB7XG4gIC5wYXJhbS1zZWxlY3RvciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG4gIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgICBtYXgtaGVpZ2h0OiA5NHB4O1xuICAgIGNvbG9yOiAjNjI2ZDZkO1xuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jb21wYXJpc29uIHtcbiAgLnRhbGwtd2lkZ2V0KCk7XG5cbiAgLmNoYXJ0LWNvbnRhaW5lciB7XG4gICAgQG1lZGlhIHByaW50IHsgbWF4LXdpZHRoOiA4MCUgIWltcG9ydGFudDsgfVxuICB9XG5cbiAgLmFkZC1hY2NvdW50IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDQwcHg7XG4gICAgYm90dG9tOiAzMHB4O1xuICAgIHdpZHRoOiAxNjBweDtcbiAgICBzZWxlY3Qge1xuICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGltcGFjLXdpZGdldC1saW5rLWNvbG9yO1xuICAgICAgY29sb3I6IEBpbXBhYy13aWRnZXQtYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oQGltcGFjLXdpZGdldC1saW5rLWNvbG9yLDEwJSk7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oQGltcGFjLXdpZGdldC1saW5rLWNvbG9yLDEwJSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oQGltcGFjLXdpZGdldC1saW5rLWNvbG9yLDEwJSk7XG4gICAgICB9XG4gICAgICBvcHRpb24ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtd2lkZ2V0LWJhY2tncm91bmQtY29sb3I7XG4gICAgICAgIGNvbG9yOiBsaWdodGVuKEBpbXBhYy13aWRnZXQtdGV4dC1jb2xvciw0MCUpO1xuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgY29sb3I6IEBpbXBhYy13aWRnZXQtYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBidXR0b24uY2xvc2Uge1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgfVxuICAubGVnZW5kIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIG1heC1oZWlnaHQ6IDEwM3B4O1xuICB9XG4gIC5yb3cge1xuICAgIG1hcmdpbjogMDtcbiAgfVxuICAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIG1heC1oZWlnaHQ6IEBpbXBhYy13aWRnZXQtYWNjb3VudHMtY29tcGFyaXNvbi1saW5lcy1jb250YWluZXItbWF4LWhlaWdodDtcbiAgICBtYXJnaW4tYm90dG9tOiA2NXB4O1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICB9XG5cbiAgLnNldHRpbmdzLnBhcmFtcy1jaGVja2JveGVzIHtcbiAgICBtYXJnaW4tbGVmdDogMTNweDtcbiAgfVxuXG4gIC5jb21wYXJhYmxlLWVycm9yIGg1IHtcbiAgICBtYXJnaW4tbGVmdDogMTNweDtcbiAgICBjb2xvcjogQGltcGFjLW5lZ2F0aXZlO1xuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jdXN0b20tY2FsY3VsYXRpb24ge1xuICBoMyB7XG4gICAgbWFyZ2luLXRvcDogODVweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIH1cbiAgLmxlZ2VuZCB7IG1heC1oZWlnaHQ6IDEyNXB4OyB9XG59XG5cbi5hbmFseXRpY3MubW9kYWwtY3VzdG9tLWNhbGN1bGF0aW9uIHtcbiAgbWFyZ2luOiAwcHg7XG4gIHBhZGRpbmc6IDBweDtcbn1cblxuLmFuYWx5dGljcy5tb2RhbC1jdXN0b20tY2FsY3VsYXRpb24gLm1vZGFsLWJvZHkge1xuICAuZWRpdCB7XG4gICAgLmVkaXQtcGFuZWwtc3R5bGUoKTtcbiAgICBwYWRkaW5nOiA1cHg7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWRldGFpbGVkLWNsYXNzaWZpY2F0aW9ucyB7XG4gIC50YWxsLXdpZGdldCgpO1xuICAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gICAgLnNjcm9sbGFibGUoc2Nyb2xsKTtcbiAgICBtYXgtaGVpZ2h0OiA1NDBweDtcbiAgfVxuXG4gIC5hY2NvdW50LWNsYXNzLXRpdGxlIHtcbiAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgbWFyZ2luLWxlZnQ6IDExcHg7XG4gIH1cblxuICAudGltZS1wZXJpb2QtaW5mbyB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIH1cblxuICAud2lkZ2V0LWxpbmUuaGVhZGVyLnNvcnRpbmcgIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcbiAgfVxufVxuXG5cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWV4cGVuc2Utd2VpZ2h0IHtcbiAgLmxlZ2VuZCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBtYXgtaGVpZ2h0OiAxMTVweDtcblxuICAgIC50aXRsZSB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1leHBlbnNlcy1yZXZlbnVlIHtcbiAgLmxlZ2VuZCB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIH1cblxuICAuc2V0dGluZ3MucGFyYW1zLWNoZWNrYm94ZXMge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBtYXJnaW4tbGVmdDogMHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtaW52b2ljZXMtbGlzdCB7XG4gIC8vIGNvbXBvbmVudCBzcGVjaWZpYyBzdHlsZXNcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAudGFsbC13aWRnZXQoKTtcblxuICB0cmFuc2FjdGlvbnMtbGlzdCB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICB9XG5cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWxpdmUtYmFsYW5jZSB7XG4gIGgzIHtcbiAgICAuY2VudGVyLWJvbGQoMHB4KTtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHRleHQtc2hhZG93OiAxcHg7XG4gIH1cblxuICAuc3RhdGVtZW50LXRpdGxlIHtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgfVxuXG4gIC5iYWxhbmNlLXRpdGxlIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gIH1cblxuICAuY3VycmVuY3ktY2VudGVyZWQge1xuICAgIC5jZW50ZXItc21hbGwoKVxuICB9XG5cbiAgLmhlYWRlcnMge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gIC5zcGFjZXIge1xuICAgIG1pbi1oZWlnaHQ6IDMwcHg7XG4gIH1cblxuICAucHJpY2Uge1xuICAgIC5jZW50ZXItYm9sZCgwcHgpO1xuICB9XG5cbiAgLmNvbWUtYmFjay1sYXRlciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBvcGFjaXR5OiAwLjg7XG4gIH1cblxuICAubmVnYXRpdmUyIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLXBheWFibGUtcmVjZWl2YWJsZSB7XG4gIGgzIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbiAgLmxlZ2VuZCB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIH1cbiAgLnBheWFibGUge1xuICAgIG1hcmdpbi10b3A6IDE1cHg7XG4gIH1cbiAgLnByaWNlIHtcbiAgICAuY2VudGVyLWJvbGQoMHB4KTtcbiAgfVxufSIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLXByb2ZpdC1hbmQtbG9zcyB7XG4gIC5kcmlsbC1kb3duLXdpZGdldCgpO1xuXG4gIC5yb3cubGluZXMtZ3JvdXAucHJvZml0IHtcbiAgICBib3JkZXItdG9wOiBzb2xpZCAxcHg7XG4gICAgYm9yZGVyLWJvdHRvbTogZG91YmxlO1xuICB9XG5cbiAgLnJpZ2h0LXBhbmVsIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgICBtYXgtaGVpZ2h0OiAyMTVweDtcbiAgfVxuXG4gIC5yb3cud2lkZ2V0LWxpbmUuaGVhZGVyID4gW2NsYXNzKj0nY29sLSddIHsgcG9zaXRpb246IHN0YXRpYzsgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtcmF0aW9zIHtcbiAgXG4gIC5sZWZ0LXBhbmVsIHtcbiAgICBtYXgtaGVpZ2h0OiAyMzBweDtcbiAgICBvdmVyZmxvdy15OiBhdXRvOyBcblxuICAgIC5zZXBhcmF0b3Ige1xuICAgICAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4IEBpbXBhYy13aWRnZXQtdGV4dC1jb2xvcjtcbiAgICAgIHdpZHRoOiA3NSU7XG4gICAgfVxuICAgIC5tZW1iZXIge1xuICAgICAgcGFkZGluZy10b3A6IDIwcHg7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMjBweDtcbiAgICB9XG4gICAgLm1lbWJlciAucHJpY2Uge1xuICAgICAgbWFyZ2luLXRvcDogMHB4O1xuICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgIH1cbiAgICBidXR0b24geyBvdXRsaW5lOiBub25lOyB9XG4gIH1cblxuICAubGVmdC1wYW5lbC5zaW11bGF0aW9uIHtcbiAgICAubWVtYmVyIHtcbiAgICAgIHBhZGRpbmctdG9wOiA1cHg7XG4gICAgICAubGVnZW5kIHsgZGlzcGxheTogbm9uZTsgfVxuICAgICAgLnByaWNlIHsgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgICB9XG4gICAgLnNlcGFyYXRvciB7IHdpZHRoOiAxMDAlOyB9XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLWVtcGxveWVlLWRldGFpbHMge1xuICBmb250LXNpemU6IDEycHg7XG4gIC5kZXRhaWxzLWNvbnRhaW5lciB7XG4gICAgcGFkZGluZzogMHB4O1xuICAgIG1heC1oZWlnaHQ6IG5vbmU7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbWQtbWluKSB7IG1heC1oZWlnaHQ6IDIwMHB4OyB9XG4gICAgLnNjcm9sbGFibGUoKTtcbiAgfVxuICAucmlnaHQtcGFuZWwge1xuICAgIC5kZXRhaWxzLWNvbnRhaW5lciB7XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1tZC1taW4pIHsgbWF4LWhlaWdodDogMjIwcHg7IH1cbiAgICB9XG4gICAgLmxlZ2VuZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgfVxuICB9XG4gIC50aXRsZSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1lbXBsb3llZXMtbGlzdCB7XG4gIC5sZWdlbmQge1xuICAgIG1hcmdpbi1ib3R0b206IDlweDtcbiAgfVxuICAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIC53aWRnZXQtbGluZSB7XG4gICAgICAuYWx0ZXJuYXRlLWJnKCk7XG4gICAgfVxuICB9XG4gIC5lZGl0IHtcbiAgICAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIH1cbiAgfVxufSIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLWxlYXZlcy1iYWxhbmNle1xuICAuZW1wbG95ZWUtbmFtZSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG4gIC5iYWxhbmNlIHtcbiAgICAuY2VudGVyLWJvbGQoMHB4KTtcbiAgfVxuICBoMyB7XG4gICAgbWFyZ2luLXRvcDogMzNweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbn0iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1sZWF2ZXMtc2NoZWR1bGV7XG4gIC5mYy1idXR0b24ge1xuICAgIGhlaWdodDogMjJweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgY29sb3I6IEBpbXBhYy13aWRnZXQtYnV0dG9ucy1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgYmFja2dyb3VuZDogQGltcGFjLXdpZGdldC1idXR0b25zLWNvbG9yO1xuICAgIH1cbiAgfVxuICAuZmMtdG9vbGJhciB7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICB9XG4gIC5mYy1kYXktZ3JpZCwuZmMtd2lkZ2V0LWhlYWRlciB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGNvbG9yOiBAaW1wYWMtd2lkZ2V0LXRleHQtY29sb3I7XG4gIH1cbn0iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1wYXlyb2xsLXN1bW1hcnkge1xuICAuZHJpbGwtZG93bi13aWRnZXQoKTtcbiAgLnJpZ2h0LXBhbmVsIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgICAgIG1heC1oZWlnaHQ6IDE0NXB4O1xuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSB7XG4gIC5jb250ZW50LmhyLXNhbGFyaWVzLXN1bW1hcnkge1xuICAgIC5leHBhbmRhYmxlLWZpbHRlcmFibGUtd2lkZ2V0KCk7XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXN1cGVyYW5udWF0aW9uLWFjY3J1YWxzIHtcbiAgaDMge1xuICAgIG1hcmdpbi10b3A6IDYzcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG4gIC5sZWdlbmQge1xuICAgIG1hcmdpbi10b3A6IDIzcHg7XG4gIH1cbiAgLmN1cnJlbmN5IHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gIH1cbiAgLnByaWNlIHtcbiAgICAuY2VudGVyLWJvbGQoMHB4KTtcbiAgfVxufSIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXRpbWVzaGVldHMge1xuICAuY3VycmVuY3kge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgfVxuICAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gICAgbWF4LWhlaWdodDogMjEwcHg7XG4gIH1cbn0iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAge1xuICAuY29udGVudC5oci13b3JrZm9yY2Utc3VtbWFyeSB7XG4gICAgLmV4cGFuZGFibGUtZmlsdGVyYWJsZS13aWRnZXQoKTtcbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaW52b2ljZXMtYWdlZC1wYXlhYmxlcy1yZWNlaXZhYmxlcyB7XG4gIC5kcmlsbC1kb3duLXdpZGdldCgpO1xuXG4gIC5yaWdodC1wYW5lbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gICAgbWF4LWhlaWdodDogMjE1cHg7XG4gIH1cblxuICAucm93LmFzdGVyaWNrcy1pbmZvIHtcbiAgICBtYXJnaW4tdG9wOiAxNXB4O1xuICB9XG5cbiAgLmN1cnJlbmN5LWNvbnZlcnNpb25zIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgbWFyZ2luLWxlZnQ6IDNweDtcbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaW52b2ljZXMtbGlzdCB7XG4gIC5zaW1wbGUtbGlzdC13aWRnZXQoKTtcblxuICAuY3VycmVuY3ktY29udmVyc2lvbnMge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBtYXJnaW4tcmlnaHQ6IDNweDtcbiAgICBtYXJnaW4tdG9wOiAtMnB4O1xuICB9XG5cbiAgLmZhLmZhLWluZm8tY2lyY2xlIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICB9XG5cbiAgLnJpZ2h0LWNvbHVtbiB7XG4gICAgcGFkZGluZy1sZWZ0OiAwcHg7XG4gICAgcGFkZGluZy1yaWdodDogMHB4O1xuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5pbnZvaWNlcy1zdW1tYXJ5IHtcbiAgLnNpbXBsZS1zdW1tYXJ5LXdpZGdldCgpO1xufSIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWFnZWQge1xuICAudGFsbC13aWRnZXQoKTtcblxuICAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gICAgbWF4LWhlaWdodDogMjM4cHg7XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWJyZWFrLWV2ZW4ge1xuICAucHJpY2Uge1xuICAgIC5jZW50ZXItYm9sZCgwcHgpO1xuICB9XG4gIC5ibG9jayB7XG4gICAgbWFyZ2luOiA1cHg7XG4gICAgcGFkZGluZzogMHB4IDEwcHggNXB4IDEwcHg7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBib3gtc2hhZG93OiAwcHggN3B4IDEwcHggLTdweCAjMTcyNjJkO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb3JtLmVkaXRhYmxlLXdyYXAgLmVkaXRhYmxlLWNvbnRyb2xzIGlucHV0IHtcbiAgICAgIG1hcmdpbi10b3A6IDVweDtcbiAgICAgIHdpZHRoOiAxMDBweDtcbiAgICB9XG4gICAgJi50by1kYXRlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy13aWRnZXQtc3ViLWJnLWNvbG9yO1xuICAgICAgY29sb3I6IEBpbXBhYy13aWRnZXQtdGV4dC1jb2xvcjtcbiAgICB9XG4gICAgJi50by1icmVha2V2ZW4ge1xuICAgICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy13aWRnZXQtc2FsZXMtYnJlYWstZXZlbi1iZztcbiAgICAgIGNvbG9yOiBAaW1wYWMtd2lkZ2V0LXNhbGVzLWJyZWFrLWV2ZW4tdGV4dC1jb2xvcjtcbiAgICAgIC50aXRsZSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCBsaWdodGVuKEBpbXBhYy13aWRnZXQtc2FsZXMtYnJlYWstZXZlbi1iZywgMTAlKTtcbiAgICAgIH1cbiAgICAgIC5kZWZpbmUtdGV4dCB7XG4gICAgICAgIC5jZW50ZXItdGhpbigpO1xuICAgICAgICBwYWRkaW5nLXRvcDogNXB4O1xuICAgICAgICBjb2xvcjogQGltcGFjLXdpZGdldC1zYWxlcy1icmVhay1ldmVuLXRleHQtY29sb3I7XG4gICAgICB9XG4gICAgICAucHJpY2Uge1xuICAgICAgICBjb2xvcjogQGltcGFjLXdpZGdldC1zYWxlcy1icmVhay1ldmVuLXRleHQtY29sb3I7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnRpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGZvbnQtdmFyaWFudDogc21hbGwtY2FwcztcbiAgICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCBAbGlnaHRncmF5O1xuICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICB9XG4gIH1cbn0iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1jb21wYXJpc29uIHtcbiAgLmRyaWxsLWRvd24td2lkZ2V0KCk7XG4gIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgICBtYXgtaGVpZ2h0OiA1MzBweDtcbiAgfVxuICAucmlnaHQtcGFuZWwgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICAgIG1heC1oZWlnaHQ6IDI1MHB4O1xuICB9XG4gIC5jdXJyZW5jeS1jb252ZXJzaW9ucyB7XG4gICAgaW1nIHsgbWFyZ2luLXRvcDogLTJweDsgfVxuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1jdXN0b21lci1kZXRhaWxzIHtcbiAgLmxvYWRlciB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICB9XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgLmRldGFpbHMtY29udGFpbmVyIHtcbiAgICBwYWRkaW5nOiAwcHg7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbWQtbWluKSB7IG1heC1oZWlnaHQ6IDE5NHB4OyB9XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIH1cbiAgLnJpZ2h0LXBhbmVsIHtcbiAgICAuZGV0YWlscy1jb250YWluZXIge1xuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbWQtbWluKSB7IG1heC1oZWlnaHQ6IDIzMHB4OyB9XG4gICAgfVxuICAgIC5sZWdlbmQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgIH1cbiAgfVxuICAucm93LnRpdGxlIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gIH1cblxuICAuY3VycmVuY3ktY29udmVyc2lvbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1yaWdodDogM3B4O1xuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1jeWNsZSB7XG4gIC5zaW1wbGUtc3VtbWFyeS13aWRnZXQoKTtcbn0iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1mb3JlY2FzdCB7XG4gIC50YWxsLXdpZGdldCgpO1xuICAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gICAgbWF4LWhlaWdodDogMjc1cHg7XG4gICAgLndpZGdldC1saW5lLm1haW4ge1xuICAgICAgLnNlbGVjdGFibGUoKTtcbiAgICB9XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWdyb3d0aCB7XG4gIC5wcmljZSB7XG4gICAgLmNlbnRlci1ib2xkKDBweCk7XG4gIH1cbiAgLmxlZ2VuZCB7XG4gICAgbWF4LWhlaWdodDogNDlweDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbGVhZHMtZnVubmVsIHtcbiAgLmZ1bm5lbC13aWRnZXQoKTtcbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWxlYWRzLWxpc3Qge1xuICAuc2ltcGxlLWxpc3Qtd2lkZ2V0KCk7XG4gIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgICAuc2Nyb2xsYWJsZShzY3JvbGwpO1xuICB9XG59IiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbGlzdCB7XG4gIC5zaW1wbGUtbGlzdC13aWRnZXQoKTtcbiAgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICAgIC5zY3JvbGxhYmxlKHNjcm9sbCk7XG4gICAgbWF4LWhlaWdodDogMTcwcHg7XG4gICAgJi5uby1zY3JvbGwge1xuICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgfVxuICB9XG4gIC5zZWxlY3RvciB7XG4gICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICB9XG4gIC5jdXJyZW5jeS1jb252ZXJzaW9ucyB7XG4gICAgaW1nIHsgbWFyZ2luLXRvcDogLTJweDsgfVxuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1uZXQtc2FsZXMge1xuICAudmFsdWUtY29udGFpbmVyLCAub3BlcmF0b3Ige1xuICAgIC8vIGZsb2F0OiBsZWZ0O1xuICAgIC8vIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBsaW5lLWhlaWdodDogODVweDtcbiAgfVxuXG4gIC8vIC52YWx1ZS1jb250YWluZXIge1xuICAvLyAgIHdpZHRoOiAyNiU7XG4gIC8vIH1cblxuICAudmFsdWUtY29udGFpbmVyIC50aXRsZSB7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgZm9udC1zaXplOiAxLjJlbTtcbiAgICBwYWRkaW5nOiAxMHB4IDBweDtcbiAgfVxuXG4gIC52YWx1ZS1jb250YWluZXIgLnZhbHVlLWJveCB7XG4gICAgZm9udC1zaXplOiAxLjNlbTtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIC8vIGJvcmRlcjogc29saWQgMXB4ICNFNEU0RTQ7XG4gICAgLy8gYm94LXNoYWRvdzogMXB4IDFweCAxcHggI0M1QzVDNTtcbiAgICBib3JkZXItdG9wOiBzb2xpZCAxcHggI0M0Q0FDQTtcbiAgICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggI0M0Q0FDQTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB9XG5cbiAgLm9wZXJhdG9yIHtcbiAgICAvLyBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1tZC1taW4pIHsgcGFkZGluZy10b3A6IDM4cHg7IH1cbiAgICBwYWRkaW5nLXRvcDogMzhweDtcbiAgICAvLyB3aWR0aDogMTAlO1xuICAgIGZvbnQtc2l6ZTogMS4zZW07XG4gIH1cblxuICAudmFsdWVzIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1tZC1taW4pIHsgbWFyZ2luLXRvcDogMjVweDsgfVxuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1uZXctdnMtZXhpc3RpbmctY3VzdG9tZXJzIHtcblxuICAuc2VsZWN0b3IgLnNlbGVjdG9yLXdyYXAge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW46IDAgNXB4O1xuICB9XG4gIC5jaGFydC1jb250YWluZXIge1xuICAgIG1hcmdpbi10b3A6IDE1cHg7XG4gIH1cblxuICAubGVnZW5kIHtcbiAgICBtYXJnaW4tdG9wOiA1cHg7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbWF4LWhlaWdodDogNzdweCAhaW1wb3J0YW50O1xuXG4gICAgLnJvdyB7IG1hcmdpbjogMHB4IC01cHg7ICY+ZGl2IHsgcGFkZGluZzogMHB4IDVweDsgfX1cblxuICAgIC50b3RhbCB7XG4gICAgICBjb2xvcjogIzVCNjY2NztcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICB9XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLW51bWJlci1vZi1sZWFkcyB7XG4gIC5zdGF0cyB7XG4gICAgbWFyZ2luLXRvcDogMzVweDtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgLnN0YXQge1xuICAgICAgbWFyZ2luOiAxNXB4IDBweCAxMHB4IDBweDtcbiAgICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCBAbGlnaHRncmF5O1xuICAgICAgc3Bhbi50aXRsZSB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgfVxuICAgICAgc3Bhbi5ub21pbmFsIHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgIH1cbiAgICAgIHNwYW4udmFyaWF0aW9uIHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICB3aWR0aDogNTBweDtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgICBtYXJnaW4tdG9wOiAycHg7XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtb3Bwb3J0dW5pdGllcy1mdW5uZWwge1xuICAuZnVubmVsLXdpZGdldCgpO1xufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtcGVyZm9ybWFuY2Uge1xuICAuZHJpbGwtZG93bi13aWRnZXQoKTtcbiAgLnJpZ2h0LXBhbmVsIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgXHQgbWF4LWhlaWdodDogMjE1cHg7XG4gICAgLndpZGdldC1saW5lLmhlYWRlciB7XG4gICAgICAuc2VsZWN0YWJsZSgpO1xuICAgIH1cbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtc2VnbWVudGVkLXR1cm5vdmVyIHtcbiAgaDMucmlnaHQge1xuICAgIG1hcmdpbi10b3A6IDU1cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG4gIC5zZWxlY3RvciB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgfVxuICAuYW5hbHlzaXMge1xuICAgIC5jZW50ZXItYm9sZCgwcHgpO1xuICB9XG4gIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgICBtYXgtaGVpZ2h0OiA3NXB4O1xuICAgIC53aWRnZXQtbGluZSB7XG4gICAgICBmb250LXNpemU6IDExcHg7XG4gICAgfVxuICB9XG5cbiAgLnJpZ2h0LXBhbmVsIHtcbiAgICBoMyB7XG4gICAgICBtYXJnaW46IDE1cHggMTBweCA1cHggMTBweDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICAuZmEuZmEtaW5mby1jaXJjbGUgeyBmbG9hdDogbGVmdDsgfVxuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1zdW1tYXJ5IHtcbiAgLnNpbXBsZS1zdW1tYXJ5LXdpZGdldCgpO1xuICAuc2VsZWN0b3Ige1xuICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgfVxufSIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXRvcC1jdXN0b21lcnMge1xuICAuc2VsZWN0b3Ige1xuICAgIGJvcmRlci1ib3R0b206IGRhc2hlZCAxcHggI0U2RTZFNjtcbiAgICBwYWRkaW5nLWJvdHRvbTogM3B4O1xuICAgIGEgeyBmb250LXdlaWdodDogbm9ybWFsOyB9XG4gICAgLnBhcmFtLXNlbGVjdG9yIHsgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gIH1cbiAgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICAgIG1heC1oZWlnaHQ6IDIzNXB4O1xuICAgIC53aWRnZXQtbGluZS5zdWItbGluZSB7IGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy13aWRnZXQtc3ViLWJnLWNvbG9yOyB9XG5cbiAgICAvLyBXaWxsIGFsbG93IHRoZSBwYXJhbXMgc2VsZWN0b3JzIHRvIGJlIGRpc3BsYXllZCBvbiB0b3Agb2YgdGhlIGNvbnRhaW5lciAod2l0aG91dCBiZWluZyBjdXQgb24gdGhlIHJpZ2h0KVxuICAgIC5yb3cgPiBbY2xhc3MqPSdjb2wtJ10geyBwb3NpdGlvbjogc3RhdGljOyB9XG4gIH1cbiAgLmN1cnJlbmN5LWNvbnZlcnNpb25zIHtcbiAgICBpbWcgeyBtYXJnaW4tdG9wOiAtMnB4OyB9XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXRvcC1vcHBvcnR1bml0aWVzIHtcbiAgLm9wcHMtY29udGFpbmVyIHtcbiAgICBtYXgtaGVpZ2h0OiAxOTVweDtcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG4gICAgLnNjcm9sbGFibGUoKTtcbiAgICAudGlsZSB7XG4gICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgLmNvbG9yZWQtYXJlYSB7XG4gICAgICAgIHdpZHRoOiAxMCU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgfVxuICAgICAgLm1haW4tdGV4dCB7XG4gICAgICAgIGNvbG9yOiBAaW1wYWMtd2lkZ2V0LXRleHQtY29sb3I7XG4gICAgICAgIHBhZGRpbmc6IDNweCAwcHggMHB4IDEwcHg7XG4gICAgICB9XG4gICAgICAmLmZpcnN0IHtcbiAgICAgICAgaGVpZ2h0OiA1NXB4O1xuICAgICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAuY29sb3JlZC1hcmVhIHtcbiAgICAgICAgICBmb250LXNpemU6IDI2cHg7XG4gICAgICAgICAgcGFkZGluZy10b3A6IDEwcHg7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwgMTEwLCA2NSk7XG4gICAgICAgIH1cbiAgICAgICAgLm1haW4tdGV4dCB7XG4gICAgICAgICAgcGFkZGluZy10b3A6IDhweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi5zZWNvbmQge1xuICAgICAgICBoZWlnaHQ6IDU1cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgLmNvbG9yZWQtYXJlYSB7XG4gICAgICAgICAgZm9udC1zaXplOiAyNnB4O1xuICAgICAgICAgIHBhZGRpbmctdG9wOiAxMHB4O1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxZGU5YjY7XG4gICAgICAgIH1cbiAgICAgICAgLm1haW4tdGV4dCB7XG4gICAgICAgICAgcGFkZGluZy10b3A6IDhweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5zZWxlY3QtYWNjb3VudCB7XG4gIHBhZGRpbmc6IDBweCA1cHg7XG59IiwiLmFuYWx5dGljcyAuc2V0dGluZ3MuYWNjb3VudGluZy1iZWhhdmlvdXIge1xuXG4gIC5idG4uYnRuLXByaW1hcnkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oQGltcGFjLXdpZGdldC1saW5rLWNvbG9yLCAxMCUpO1xuICAgIGJvcmRlcjogc29saWQgMXB4IEBpbXBhYy13aWRnZXQtbGluay1jb2xvcjtcbiAgICAmLmZvY3VzLCAmLmFjdGl2ZSB7IGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy13aWRnZXQtbGluay1jb2xvcjsgfVxuICB9XG5cbn1cbiIsIi5hbmFseXRpY3MgLnNldHRpbmdzLmF0dGFjaC1rcGlzIHtcbiAgLmF0dGFjaC1rcGkge1xuICAgIHBhZGRpbmc6IDhweCA1cHg7XG5cbiAgICBmb3JtIC5yb3cge1xuICAgICAgcGFkZGluZy1ib3R0b206IDVweDtcbiAgICB9XG5cbiAgICAuYXR0YWNoLWtwaS1mb3JtIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbiAgICAgIHBhZGRpbmc6IDVweDtcbiAgICB9XG5cbiAgICBmb3JtIC5yb3cua3BpLWRlc2NyaXB0aW9uIHtcbiAgICAgIHBhZGRpbmc6IDEwcHggMnB4O1xuICAgICAgc3BhbiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgfVxuICAgIH1cblxuICAgIGZvcm0uYXR0YWNoLWtwaS1mb3JtIHtcbiAgICAgIGlucHV0LmF0dGFjaC10YXJnZXQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgfVxuICAgIH1cblxuICAgIC5lcnJvci1tZXNzYWdlcyB7XG4gICAgICBjb2xvcjogQGJyYW5kLWRhbmdlcjtcbiAgICAgIHdpZHRoOiAxMjBweDtcbiAgICB9XG4gIH1cblxuICAuYXR0YWNoZWQta3BpcyB7XG4gICAgcGFkZGluZzogNXB4O1xuICB9XG5cbiAgLmxpc3QtZ3JvdXAtaXRlbS5hdHRhY2hlZC1rcGkge1xuICAgIHBhZGRpbmc6IDVweCAxMHB4O1xuXG4gICAgLmF0dGFjaGVkLWtwaS1uYW1lIHtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB3aWR0aDogNzUlO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgbWFyZ2luLXRvcDogM3B4O1xuICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgfVxuXG4gICAgLmFjdGlvbnMge1xuICAgICAgcGFkZGluZy10b3A6IDJweDtcbiAgICAgIC5hbGVydHMtY29uZmlnIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDRweDtcbiAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0MHB4O1xuICAgICAgICB3aWR0aDogMjFweDtcbiAgICAgICAgY29sb3I6IEBtYmx1ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICAgIGJvcmRlcjogc29saWQgMXB4IEBtYmx1ZTtcblxuICAgICAgICAmOmhvdmVyIHsgY3Vyc29yOiBwb2ludGVyOyB9XG4gICAgICB9XG4gICAgICAuZWRpdC1hdHRhY2hlZC1rcGkge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGkge1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgICAgICAgd2lkdGg6IDIxcHg7XG4gICAgICAgICAgY29sb3I6IEBtYmx1ZTtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgcGFkZGluZzogM3B4IDVweCA1cHggNXB4O1xuICAgICAgICAgIGJvcmRlcjogc29saWQgMXB4IEBtYmx1ZTtcbiAgICAgICAgICAmOmhvdmVyIHsgY3Vyc29yOiBwb2ludGVyOyB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC5yZW1vdmUtYXR0YWNoZWQta3BpIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBpIHtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgICAgICAgIHdpZHRoOiAyMXB4O1xuICAgICAgICAgIGNvbG9yOiBAYnJhbmQtZGFuZ2VyO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgICBwYWRkaW5nOiAzcHggNXB4IDVweCA1cHg7XG4gICAgICAgICAgYm9yZGVyOiBzb2xpZCAxcHggQGJyYW5kLWRhbmdlcjtcbiAgICAgICAgICAmOmhvdmVyIHsgY3Vyc29yOiBwb2ludGVyOyB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5zZWxlY3QtYWNjb3VudCB7XG4gIHBhZGRpbmc6IDBweCA1cHg7XG59IiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLmNoYXJ0LWZpbHRlcnMge1xuICAucm93IHtcbiAgICBtYXJnaW46IDBweDtcbiAgfVxuICBpbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDNweDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHdpZHRoOiAxM3B4O1xuICAgIGhlaWdodDogMTNweDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IC0xcHg7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgfVxuICBpbnB1dFt0eXBlPVwicmFuZ2VcIl0ge1xuICAgIGhlaWdodDogYXV0bztcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuIiwiLmFuYWx5dGljcyAuc2V0dGluZ3MuZGF0ZXMtcGlja2VyIHtcbiAgaDUgeyBkaXNwbGF5OiBub25lOyB9XG5cbiAgYnV0dG9uLmJ0bi5idG4tc20ge1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICYuZGF0ZS1idXR0b24geyBtYXJnaW46IDBweCA1cHg7IH1cbiAgICAmLmJ0bi1kYW5nZXIgeyBkaXNwbGF5OiBub25lOyB9XG4gICAgJi5idG4taW5mbyB7IGJvcmRlci1yYWRpdXM6IDNweDsgfVxuICB9XG5cbiAgLnRvb2x0aXAtaW5uZXIgeyB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgfVxuXG4gIC5kcm9wZG93bi1tZW51ID4gbGkgPiBkaXYgPiB0YWJsZSB7IG91dGxpbmU6IG5vbmU7IH1cbn1cbiIsIi5hbmFseXRpY3MgLnNldHRpbmdzLmZvcmVjYXN0LXBheXJvbGwge1xuICAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gICAgLndpZGdldC1saW5lIHtcbiAgICAgIHBhZGRpbmc6IDVweCAxMHB4IDVweCAxOHB4O1xuICAgICAgLmFsdGVybmF0ZS1iZygjZjNmNGY0KTtcbiAgICAgIC5mYSB7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICYuZmEtdG9nZ2xlLW9uIHtcbiAgICAgICAgICBjb2xvcjogQGltcGFjLXdpZGdldC1saW5rLWNvbG9yO1xuICAgICAgICB9XG4gICAgICAgICYuZmEtdG9nZ2xlLW9mZiB7XG4gICAgICAgICAgY29sb3I6IEBpbXBhYy13aWRnZXQtdGV4dC1jb2xvci1tZWRpdW07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5oaXN0LW1vZGUtY2hvc2VyIHtcbiAgbWF4LWhlaWdodDogNzBweDtcblxuICBbY29tbW9uLXRpbWUtcGVyaW9kLWluZm9dIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogOHB4O1xuICB9XG5cbiAgLm9wdGlvbnMge1xuICAgIHdpZHRoOiAxNTBweDtcbiAgICBtYXJnaW46IGF1dG87XG4gICAgcGFkZGluZy1ib3R0b206IDhweDtcbiAgICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggI2U2ZTZlNjtcbiAgICAuZm9udChAaW1wYWMtd2lkZ2V0LWhpc3QtdGV4dC1zaXplLDUwMCxAaW1wYWMtd2lkZ2V0LWhpc3QtdGV4dC1jb2xvcik7XG4gICAgYSB7XG4gICAgICAuZm9udChAaW1wYWMtd2lkZ2V0LWhpc3QtdGV4dC1zaXplLDUwMCxAaW1wYWMtd2lkZ2V0LWhpc3QtdGV4dC1jb2xvcik7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogQGltcGFjLXdpZGdldC1oaXN0LXRleHQtdHJhbnNmb3JtO1xuICAgICAgJi5hY3RpdmUge1xuICAgICAgICBjb2xvcjogQGltcGFjLXdpZGdldC1saW5rLWNvbG9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAuYXJyb3ctY29udGFpbmVyIHtcbiAgICB3aWR0aDogMjhweDtcbiAgICBoZWlnaHQ6IDI4cHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogLTE0cHg7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgICYucmlnaHQge1xuICAgICAgbGVmdDogNDZweDtcbiAgICB9XG4gICAgJi5sZWZ0IHtcbiAgICAgIGxlZnQ6IC0zMHB4O1xuICAgIH1cbiAgICAuYXJyb3ctYm9yZGVyIHtcbiAgICAgIGJvcmRlci10b3A6IDE0cHggc29saWQgI2U2ZTZlNjtcbiAgICAgIGJvcmRlci1sZWZ0OiAxNHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyLXJpZ2h0OiAxNHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgd2lkdGg6IDBweDtcbiAgICAgIGhlaWdodDogMHB4O1xuICAgIH1cbiAgICAuYXJyb3cge1xuICAgICAgYm9yZGVyLXRvcDogMTRweCBzb2xpZCBAaW1wYWMtd2lkZ2V0LWJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItbGVmdDogMTRweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci1yaWdodDogMTRweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHRvcDogMTJweDtcbiAgICAgIHdpZHRoOiAwcHg7XG4gICAgICBoZWlnaHQ6IDBweDtcbiAgICB9XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLnNldHRpbmdzLmxpbWl0LWVudHJpZXMge1xuICBjb2xvcjogQGltcGFjLXdpZGdldC1saW1pdC1lbnRyaWVzLWNvbG9yO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvcmRlci1ib3R0b206IGRhc2hlZCAxcHggI0U2RTZFNjtcbiAgcGFkZGluZy1ib3R0b206IDhweDtcblxuICBhLm9wdGlvbiB7XG4gICAgJi5iYWRnZSB7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtd2lkZ2V0LWxpbWl0LWVudHJpZXMtY29sb3I7XG4gICAgfVxuICB9XG5cbn1cbiIsIi5hbmFseXRpY3MgLnNldHRpbmdzLm9mZnNldHMge1xuICAub2Zmc2V0LXZhbHVlIHtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICB9XG5cbiAgLm9mZnNldC12YWx1ZSAuZmEtdHJhc2gtbyB7XG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogQGJyYW5kLWRhbmdlcjtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gIH1cblxuICBpbnB1dCB7IHdpZHRoOiA3NSU7IH1cbiAgYnV0dG9uIHsgd2lkdGg6IDMwcHg7IH1cbn1cbiIsIi5hbmFseXRpY3MgLnNldHRpbmdzLm9yZ2FuaXphdGlvbnMge1xuICAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gICAgLndpZGdldC1saW5lIHtcbiAgICAgIHBhZGRpbmc6IDVweCAxMHB4IDVweCAxOHB4O1xuICAgICAgLmFsdGVybmF0ZS1iZygjZjNmNGY0KTtcbiAgICAgIC5mYSB7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICYuZmEtdG9nZ2xlLW9uLCAmLmZhLWNoZWNrLWNpcmNsZSB7XG4gICAgICAgICAgY29sb3I6IEBpbXBhYy13aWRnZXQtbGluay1jb2xvcjtcbiAgICAgICAgfVxuICAgICAgICAmLmZhLXRvZ2dsZS1vZmYsICYuZmEtY2lyY2xlLXRoaW4ge1xuICAgICAgICAgIGNvbG9yOiBAaW1wYWMtd2lkZ2V0LXRleHQtY29sb3ItbWVkaXVtO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3MucGFyYW0tc2VsZWN0b3Ige1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgJi5jbGFzc2ljIHtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIHNlbGVjdCB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMjVweDtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgbWFyZ2luOiAwcHggMHB4IDVweCAwcHg7XG4gICAgfVxuICB9XG5cbiAgYSB7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBjb2xvcjogQGltcGFjLXdpZGdldC1wYXJhbS1zZWxlY3Rvci1jb2xvcjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB9XG4gIC5vcHRpb25zLWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgbWluLXdpZHRoOiAxNTBweDtcbiAgICBtYXgtaGVpZ2h0OiAyMDBweDtcbiAgICB6LWluZGV4OiA5OTk7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgLmJveC1zaGFkb3cocmdiKDAsIDAsIDApIDBweCAzcHggMTVweCAtM3B4KTtcblxuICAgIC5wYXJhbS1zZWxlY3Rvci1sYWJlbCB7XG4gICAgICBwYWRkaW5nOiAzcHggNXB4O1xuICAgICAgLmZvbnQoaW5oZXJpdCw1MDAsYmxhY2spO1xuICAgICAgY3Vyc29yOiB0ZXh0O1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjk7XG4gICAgfVxuICAgIC5wYXJhbS1zZWxlY3Rvci1sYWJlbDpob3ZlciB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtd2lkZ2V0LXBhcmFtLXNlbGVjdG9yLWNvbG9yO1xuICAgICAgY29sb3I6IHdoaXRlO1xuICAgIH1cblxuICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICAgIHdpZHRoOiA4cHg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oQGxpZ2h0Z3JheSw1JSk7XG4gICAgfVxuXG4gICAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGltcGFjLXdpZGdldC1wYXJhbS1zZWxlY3Rvci1jb2xvcjtcbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKEBpbXBhYy13aWRnZXQtcGFyYW0tc2VsZWN0b3ItY29sb3IsNSUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLmFuYWx5dGljcyAuc2V0dGluZ3MucGFyYW1zLWNoZWNrYm94ZXMge1xuICBwYWRkaW5nOiAycHggMHB4O1xuICBpbnB1dCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGhlaWdodDogaW5oZXJpdDtcbiAgfVxuICBzcGFuIHtcbiAgICBtYXJnaW4tbGVmdDogNXB4O1xuICB9XG4gIGxhYmVsIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGxpbmUtaGVpZ2h0OiAxNHB4O1xuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3MucGFyYW1zLXBpY2tlciB7XG4gIHBhZGRpbmc6IDBweCAxMHB4O1xuICAucGFyYW1ldGVyIHtcbiAgICBtYXJnaW46IDBweCAzcHggM3B4IDBweDtcbiAgICBwYWRkaW5nOiAzcHggNXB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy13aWRnZXQtcGFyYW1zLXBpY2tlci1iZztcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgYm9yZGVyOiBzb2xpZCAxcHggQGltcGFjLXdpZGdldC1wYXJhbXMtcGlja2VyLWJnO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBjdXJzb3I6IG1vdmU7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgICAgbWFyZ2luOiAwcHggLTNweCAwcHggM3B4O1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuICAgIC5iYWRnZSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDNweDtcbiAgICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbihAaW1wYWMtd2lkZ2V0LWJhY2tncm91bmQtY29sb3IsIDUlKTtcbiAgICAgIGNvbG9yOiBAaW1wYWMtd2lkZ2V0LXBhcmFtcy1waWNrZXItYmc7XG4gICAgICBwYWRkaW5nOiAycHggNnB4O1xuICAgIH1cblxuICAgICYudW5jaGVja2VkIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICBib3JkZXItY29sb3I6IEBpbXBhYy13aWRnZXQtcGFyYW1zLXBpY2tlci11bmNoZWNrZWQtYmc7XG4gICAgICAuYmFkZ2Uge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtd2lkZ2V0LXBhcmFtcy1waWNrZXItdW5jaGVja2VkLWJnO1xuICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwiLmFuYWx5dGljcyAuc2V0dGluZ3MudGFnLWZpbHRlciB7XG4gIHBhZGRpbmc6IDBweCA1cHg7XG5cbiAgLmJ0bi5idG4tZGVmYXVsdCB7XG4gICAgaGVpZ2h0OiAzMnB4O1xuICAgIHdpZHRoOiAzMHB4O1xuICB9XG5cbiAgLnRhZy1saW5lcy1jb250YWluZXIge1xuICAgIHBhZGRpbmc6IDBweCAxMHB4O1xuXG4gICAgLnRhZy1saW5lIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgLnRhZ3MtY29sIHsgcG9zaXRpb246IHN0YXRpYzsgfVxuXG4gICAgICB0YWdzLWlucHV0IHtcbiAgICAgICAgLnRhZ3Mge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICAgIGJvcmRlcjogc29saWQgMXB4ICNjY2M7XG4gICAgICAgICAgLnRhZy1pdGVtIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICM3OWEyYmI7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5ob3N0IHsgcG9zaXRpb246IHN0YXRpYzsgfVxuICAgIH1cbiAgfVxufVxuIiwiLmFuYWx5dGljcyAuc2V0dGluZ3MudGltZS1wZXJpb2Qge1xuICBwYWRkaW5nOiAwcHggNXB4O1xuXG4gIHNlbGVjdCB7XG4gICAgaGVpZ2h0OiAyMnB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIFxuICAmID4gLnJvdyB7XG4gICAgbWFyZ2luOiAwcHggLTVweCA3cHggLTVweDtcbiAgICAmID4gZGl2IHtcbiAgICAgIHBhZGRpbmc6IDBweCA1cHg7XG4gICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIH1cblxuICAgIC5zdWItc2V0dGluZyB7IHBhZGRpbmc6IDVweDsgfVxuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3Mud2lkdGgge1xuICBmbG9hdDogcmlnaHQ7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgaSB7XG4gICAgY29sb3I6IHNpbHZlcjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgJi5yZWR1Y2Uge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAtMTBweDtcbiAgICB9XG4gICAgJi5leHBhbmQge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAtM3B4O1xuICAgIH1cbiAgfVxufSJdfQ== */ diff --git a/dist/impac-angular.js b/dist/impac-angular.js index 29e8fc4a..6ecc92c2 100644 --- a/dist/impac-angular.js +++ b/dist/impac-angular.js @@ -1,6 +1,6 @@ /** * impac-angular - Impac! Front-End Library - * @version v1.7.5 + * @version v1.7.6 * @git git://github.com/maestrano/impac-angular.git * @license Copyright 2017 Maestrano Pty Ltd */ @@ -217,8 +217,8 @@ $templateCache.put("common/data-not-found.tmpl.html","
\n
\n
\n \n
\n
\n
\n \n \n
\n
\n
\n
    \n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
#CodeTitleStatusTransaction dateDue dateExpected payment dateAmountShall we reconcile?
{{ $index + 1 }}{{ dupTrx.transaction_number }}{{ dupTrx.title }}{{ dupTrx.status }}{{ dupTrx.trxDateUTC }}{{ dupTrx.dueDateUTC }}{{ dupTrx.expectedPaymentDateUTC }}{{ dupTrx.amount | mnoCurrency : dupTrx.currency }}\n \n \n
{{ dupTrx.reconciliation_target.transaction_number }}{{ dupTrx.reconciliation_target.title }}{{ dupTrx.reconciliation_target.status }}{{ dupTrx.reconciliation_target.trxDateUTC }}{{ dupTrx.reconciliation_target.dueDateUTC }}{{ dupTrx.reconciliation_target.expectedPaymentDateUTC }}{{ dupTrx.reconciliation_target.amount | mnoCurrency : dupTrx.reconciliation_target.currency }}
\n
\n
\n"); $templateCache.put("common/transactions-add.tmpl.html","
\n
\n
\n
Create schedule for transaction
\n
Create a manual transaction
\n\n
\n \n \n\n \n \n\n \n \n\n
\n \n
\n \n
\n
\n\n
\n \n \n
\n \n \n
\n
\n\n
\n \n
\n
\n
\n
\n \n \n
\n
\n\n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n\n
\n \n \n
\n
\n
\n"); $templateCache.put("common/transactions-list.tmpl.html","
\n
\n
\n \n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
{{ $ctrl.currentAttributes.resourcesType == \'invoices\' ? \'Customer\' : \'Supplier\' }}CodeTitleStatusTransaction dateDue dateExpected payment dateAmountBalance\n
{{ trx.contact_name }}{{ trx.transaction_number }}{{ trx.title }}{{ trx.status }}{{ trx.trxDateUTC }}{{ trx.dueDateUTC }}\n
\n \n \n
\n
{{ trx.amount | mnoCurrency : trx.currency }}{{ trx.balance | mnoCurrency : trx.currency }}\n \n \n \n
TOTAL{{ $ctrl.totalAmount | mnoCurrency : $ctrl.currency }}{{ $ctrl.totalBalance | mnoCurrency : $ctrl.currency }}
\n
\n\n \n \n \n impac.widget.common.confirm-modal.delete_schedule.title\n \n \n

impac.widget.common.confirm-modal.delete_schedule.message

\n

impac.widget.common.confirm-modal.delete_schedule.explanation

\n
\n
\n\n \n \n \n impac.widget.common.confirm-modal.delete_trx.title\n \n \n

\n
\n
\n\n \n\n
\n
\n
    \n
\n
\n
\n"); -$templateCache.put("common/trends-list.tmpl.html","
\n
\n
\n \n
\n
\n
    \n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
NameRatePeriodicityStart DateLast apply date\n \n
{{trend.name}}\n \n {{trend.rate}}%\n %\n {{trend.period}}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n"); $templateCache.put("common/trends-add.tmpl.html","
\n
\n
\n
Add data from historical trend
\n\n
\n
\n %
\n\n
\n \n\n
\n \n\n
\n Forever
\n For {{$ctrl.period()}}
\n Until \n
\n\n
\n \n
\n\n
\n \n \n
\n
\n
\n"); +$templateCache.put("common/trends-list.tmpl.html","
\n
\n
\n \n
\n
\n
    \n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
NameRatePeriodicityStart DateLast apply date\n \n
{{trend.name}}\n \n {{trend.rate}}%\n %\n {{trend.period}}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n"); $templateCache.put("dashboard-settings/currency.tmpl.html","
\n \n
\n"); $templateCache.put("dashboard-settings/pdf-mode.tmpl.html","
\n
\n \n
\n\n
\n \n \n
\n
\n"); $templateCache.put("dashboard-settings/sync-apps.tmpl.html","\n
\n \n \n impac.components.sync_apps.syncing\n impac.components.sync_apps.show_sync_status\n \n\n
\n \n
\n\n
\n \n
\n\n \n\n
\n\n\n\n\n\n\n"); @@ -229,26 +229,6 @@ $templateCache.put("widgets-common/editable-title.tmpl.html","
\n\n
\n \n \n {{\'impac.widget.info_panel.information\' | translate}} {{ getWidgetTemplateName() | titleize }}\n
\n\n
\n
\n\n
\n {{i.key}}\n
\n\n
\n {{i.value}}\n
\n\n
\n
\n\n
\n"); $templateCache.put("widgets-common/time-period-info.tmpl.html","
\n {{date}}\n
\n"); $templateCache.put("widgets-common/top-buttons.tmpl.html","
\n
\n\n \n\n \n\n \n\n \n\n \n
\n
\n"); -$templateCache.put("widgets-settings/account.tmpl.html","
{{label}}
\n
\n \n
\n
\n \n \n \n
\n impac.widget.settings.attach_kpis.kpi_target_require\n impac.widget.settings.attach_kpis.kpi_target_number\n
\n
\n
\n \n
\n
\n \n
\n\n
\n
impac.widget.settings.attach_kpis.attached_alerts
\n
\n
{{\'impac.widget.settings.attach_kpis.keep\' | translate}} {{formatAttachedKpiTitle(kpi) | titleize}}
\n
\n \n
\n \n
\n
\n
\n
\n\n\n"); -$templateCache.put("widgets-settings/bolt-account.tmpl.html","
{{label}}
\n
\n \n
\n"); -$templateCache.put("widgets-settings/chart-filters.tmpl.html","
\n
impac.widget.settings.chart_filters.title
\n
\n
\n \n \n
\n
\n \n
\n
\n
\n
\n \n \n
\n
\n \n
\n
\n
\n"); -$templateCache.put("widgets-settings/dates-picker.tmpl.html","\n
impac.widget.settings.dates_picker.title
\n \n\n"); -$templateCache.put("widgets-settings/forecast-payroll.tmpl.html","
\n
impac.widget.settings.forecast_payroll.title
\n\n
\n
\n {{\'impac.widget.account_cash_projection.forecast_payroll.aggregate\' | translate}}\n \n
\n
\n
\n"); -$templateCache.put("widgets-settings/hist-mode.tmpl.html","
\n
\n\n \n\n
\n
\n
\n
\n
\n"); -$templateCache.put("widgets-settings/limit-entries.tmpl.html","
\n {{ (entriesLabel ? \'impac.widget.settings.limit_entries.top\' : \'impac.widget.settings.limit_entries.display\') | translate }}\n\n \n {{ $index!=0 ? \' |\' : \'\' }} \n {{ option }}\n \n\n \n | \n {{ max }}\n \n\n {{entriesLabel || (\'impac.widget.settings.limit_entries.entries\' | translate)}}\n
"); -$templateCache.put("widgets-settings/offsets.tmpl.html","
\n
\n \n + {{ intervalsCount }} {{ periodWord }}{{ intervalsCount > 1 ? \'s\' : \'\' }} x {{ offsetValue | mnoCurrency : currency}}\n
\n\n
\n \n \n
\n
\n"); -$templateCache.put("widgets-settings/organizations.tmpl.html","
\n
impac.widget.settings.organizations.select_companies
\n\n
\n
\n {{org.label}}\n \n\n \n
\n
\n
\n"); -$templateCache.put("widgets-settings/param-selector-classic.tmpl.html","\n \n\n"); -$templateCache.put("widgets-settings/param-selector.tmpl.html","\n {{((selected.labelTranslate | translate | titleize) || (selected.label | titleize)) | truncate : getTruncateValue() : \"...\" : false}} \n
\n
\n {{(option.labelTranslate | translate | titleize) || (option.label | titleize)}}\n
\n
\n
\n"); -$templateCache.put("widgets-settings/params-checkboxes.tmpl.html","
\n \n
\n"); -$templateCache.put("widgets-settings/params-picker.tmpl.html","
{{formattedParam | titleize}}
\n
\n
{{description}}
\n
\n \n {{$index + 1}}\n {{parameter.label | titleize}}\n \n \n
\n
\n \n
\n
\n"); -$templateCache.put("widgets-settings/tag-filter.tmpl.html","
impac.widget.settings.tag-filter.filter_title
\n
\n\n
\n
\n
\n 0\" translate>impac.widget.settings.tag-filter.add_filter\n AND\n
\n
\n \n \n \n
\n
\n \n
\n
\n\n
\n
\n \n
\n
\n
\n
\n"); -$templateCache.put("widgets-settings/time-period.tmpl.html","
impac.widget.settings.time_period.title
\n
\n\n \n
\n
\n impac.widget.settings.time_period.time_range\n
\n
\n
\n\n \n
\n
\n
\n
\n
\n\n \n
\n
\n
\n
\n
\n\n \n
\n
\n impac.widget.settings.time_period.chart_interval\n \n
\n"); -$templateCache.put("widgets-settings/time-slider.tmpl.html","
\n
\n
\n
\n {{fromDate() | momentDate : \'time-slider\'}} - {{toDate() | momentDate : \'time-slider\'}}\n
\n
\n \n
\n
\n
\n"); -$templateCache.put("widgets-settings/width.tmpl.html","\n\n"); $templateCache.put("widgets/accounts-accounting-values.tmpl.html","
\n\n
\n

impac.widget.accounting_values.turnover.settings.title

\n\n
\n
\n\n
\n \n \n
\n
\n\n
\n
\n
\n\n
\n
\n {{ getCurrentPrice() | mnoCurrency : currency_unit : false }}\n
\n
{{currency}}
\n
{{legend}}
\n
\n\n
\n
\n
{{legend}}
\n
\n
\n\n
\n
\n\n
\n"); $templateCache.put("widgets/accounts-assets-liability-summary.tmpl.html","
\n
\n

impac.widget.acc_ass_liab_smry.settings.title

\n\n
\n\n
\n \n \n
\n
\n\n
\n
\n \n
\n \n
\n
\n
{{widget.content.summary[0].company}} {{classification}}
\n
{{classification}} repartition
\n \n {{valuePair.label}}: {{valuePair.total | mnoCurrency : getCurrency()}}\n
\n
\n
\n
\n
\n
\n
\n"); $templateCache.put("widgets/accounts-assets-summary.tmpl.html","
\n\n
\n

impac.widget.acc_ass_smry.settings.title

\n\n
\n\n
\n \n \n
\n
\n\n
\n
\n
\n
\n
{{widget.content.summary[0].company}} {{classification}}
\n
{{classification}} repartition
\n \n {{valuePair.label}}: {{valuePair.total | mnoCurrency : getCurrency()}}\n
\n
\n
\n
\n\n
\n
\n\n
\n"); @@ -266,7 +246,7 @@ $templateCache.put("widgets/accounts-detailed-classifications.tmpl.html","
\n\n
\n

impac.widget.account_expense_weight.settings.title

\n\n
\n
\n
\n\n
\n \n \n
\n
\n\n
\n \n
\n\n
\n
\n\n
\n
\n
\n\n
\n
\n {{getName()}} to {{getComparator() | titleize}}\n
{{widget.content.summary[0].ratio | mnoCurrency : \'%\'}}
\n
\n 1\">\n {{sum.company}}: {{sum.ratio | mnoCurrency : \'%\'}}\n
\n
\n
\n
\n\n
\n
\n\n
\n"); $templateCache.put("widgets/accounts-expenses-revenue.tmpl.html","
\n\n
\n

impac.widget.accounts_expenses_revenue.settings.title

\n\n
\n
\n\n
\n \n \n
\n
\n\n
\n
\n
\n\n
\n
\n
\n\n
\n \n impac.widget.accounts_expenses_revenue.expenses -\n impac.widget.accounts_expenses_revenue.revenue\n \n \n impac.widget.accounts_expenses_revenue.net_profit\n \n
\n\n
\n\n
\n {{\'impac.widget.accounts_expenses_revenue.expenses\' | translate}}: {{getCurrentExpenses() | mnoCurrency : getCurrency()}}\n
\n {{\'impac.widget.accounts_expenses_revenue.revenue\' | translate}}: {{getCurrentRevenue() | mnoCurrency : getCurrency()}}\n
\n
\n\n
\n
\n\n
\n"); $templateCache.put("widgets/accounts-invoices-list.tmpl.html","
\n \n
\n

Widget settings

\n\n
\n\n
\n \n \n
\n
\n\n \n
\n \n
\n \n \n
\n\n \n
\n
\n
\n
\n
\n \n

\n
\n
\n"); -$templateCache.put("widgets/accounts-live-balance.tmpl.html","
\n \n
\n

Widget settings

\n\n
\n
\n\n \n
\n \n \n
\n
\n\n \n
\n
\n

{{widget.selectedAccount.name}}

\n
{{getCurrency()}}
\n
\n
\n
\n {{getStatementBalance().column_7 ? (getStatementBalance().column_7 | mnoCurrency : getCurrency() : false) : \'Statement Not Available\' }}\n
\n
Statement Balance
\n
\n
\n {{getTotal().column_5 ? (getTotal().column_5 | mnoCurrency : getCurrency() : false) : \'N/A\' }}\n
\n
Balance in Xero
\n
\n
\n\n
\n
\n
\n"); +$templateCache.put("widgets/accounts-live-balance.tmpl.html","
\n \n
\n

Widget settings

\n\n
\n
\n\n \n
\n \n \n
\n
\n\n \n
\n
\n

{{widget.selectedAccount.name}}

\n
{{getCurrency()}}
\n
\n
\n
\n {{getStatementBalance().column_7 === \'not_ready\' ? \"We\'re preparing your data...please come back later\" : (getStatementBalance().column_7 | mnoCurrency : getCurrency() : false) }}\n
\n
Statement Balance
\n
\n
\n {{getTotal().column_5 ? (getTotal().column_5 | mnoCurrency : getCurrency() : false) : \'0.00\' }}\n
\n
Balance in Xero
\n
\n
\n\n
\n
\n
\n"); $templateCache.put("widgets/accounts-payable-receivable.tmpl.html","
\n\n
\n

impac.widget.accounts_payable_receivable.settings.title

\n\n
\n
\n\n
\n \n \n
\n
\n\n
\n
\n
\n\n
\n
\n

impac.widget.accounts_payable_receivable.receivables.title

\n
\n {{getCurrentReceivable() | mnoCurrency : getCurrency() : false}}\n
\n
{{getCurrency()}}
\n
\n\n
\n

impac.widget.accounts_payable_receivable.payables.title

\n
\n {{getCurrentPayable() | mnoCurrency : getCurrency() : false}}\n
\n
{{getCurrency()}}
\n
\n
\n\n
\n
\n
\n impac.widget.accounts_payable_receivable.payable -\n impac.widget.accounts_payable_receivable.receivable\n
\n
\n
\n\n
\n
\n\n
\n"); $templateCache.put("widgets/accounts-profit-and-loss.tmpl.html","
\n\n
\n

impac.widget.accounts_profit_and_loss.settings.title

\n\n
\n
\n
\n\n
\n \n \n
\n
\n\n
\n\n
\n
\n\n
\n\n
\n \n
\n
\n \n
\n
\n\n \n
\n
\n {{\'impac.widget.accounts_profit_and_loss.accounts\' | translate}}\n \n
\n
\n {{\'impac.widget.accounts_profit_and_loss.prof_loss\' | translate}}\n \n
\n
\n\n \n
0}\">\n
\n\n \n
\n
\n \n
\n
\n {{getName(statement) | titleize}}\n
\n
\n {{getAmount(statement) | mnoCurrency : statement.currency}}\n
\n\n
\n
\n\n \n
\n
\n
\n
\n {{account.name}}\n
\n
\n {{getAmount(account) | mnoCurrency : account.currency}}\n
\n\n
\n
\n
\n
\n\n
\n
\n\n
\n
\n impac.widget.settings.tag-filter.report_filtered\n
\n
\n\n
\n\n
\n\n
\n\n
\n

{{::period_translation}} {{\'impac.widget.accounts_profit_and_loss.prof_and_loss\' | translate}}

\n
{{getName(selectedElements[0]) | titleize}}
\n\n
\n
\n
\n\n
\n\n \n
\n \n \n
0\" class=\"clearfix dashed\">
\n\n
\n \n
\n
\n {{date | momentDate : widget.metadata.hist_parameters.period}}\n
\n
\n \n
\n
\n {{selectedElements[0].totals[$index] | mnoCurrency : selectedElements[0].currency}}\n
\n
\n
\n
\n
\n\n \n
\n \n
\n {{date | momentDate : widget.metadata.hist_parameters.period}}\n
\n \n
\n {{selectedElements[0].totals[$index] | mnoCurrency : selectedElements[0].currency}}\n
\n
\n
\n\n
\n
\n
\n \n {{getName(element) | titleize}}\n
\n
\n \n {{getAmount(element) | mnoCurrency : element.currency}}\n \n
\n
\n
\n
\n\n
\n impac.widget.accounts_profit_and_loss.no_elements_selected\n
\n
\n\n
\n\n
\n
\n\n
\n"); $templateCache.put("widgets/accounts-ratios.tmpl.html","\n
\n \n
\n

Widget settings

\n\n
\n
\n\n \n
\n \n \n
\n
\n\n \n
\n \n
\n\n \n
\n
\n\n
\n
\n {{ totalNumerator | mnoCurrency : widget.content.layout.currency }}\n
\n\n
\n {{ calculatedNumerator | mnoCurrency : widget.content.layout.currency }}\n
\n\n
\n {{ widget.content.layout.numerator }}\n
\n\n
\n
\n\n
\n\n
\n
\n {{ totalDenominator | mnoCurrency : widget.content.layout.currency }}\n
\n\n
\n {{ calculatedDenominator | mnoCurrency : widget.content.layout.currency }}\n
\n\n
\n {{ widget.content.layout.denominator }}\n
\n\n
\n
\n\n
\n \n \n \n
\n
\n\n \n
\n
\n\n
\n
\n {{ totalRatio | mnoCurrency : \'(ratio)\' : false }}\n
\n
{{ widget.content.layout.ratio }}
\n
\n\n
\n
\n
{{ widget.content.layout.ratio }}
\n
\n
\n\n
\n\n
\n
\n
\n"); @@ -303,7 +283,27 @@ $templateCache.put("widgets/sales-performance.tmpl.html","
\n\n
\n

impac.widget.sales_turnover.settings.title

\n\n
\n
\n\n
\n \n \n
\n
\n\n
\n\n
\n
\n
\n\n
{{\'impac.widget.sales_turnover.filter\' | translate}}
\n
\n
\n
\n\n
\n\n
\n
impac.widget.sales_turnover.average_price
\n
\n\n
\n
\n \n
\n
\n {{getRangeLabel(range.label)}}\n
\n
\n {{range.percentage}}%\n
\n
\n
\n\n
\n\n
\n \n

{{getMaxRange().percentage.toFixed()}}% {{\'impac.widget.sales_turnover.of_your_revenue\' | translate}} {{getMaxRange().label.split(\'-\')[0] | mnoCurrency : widget.content.currency}} {{\'impac.widget.sales_turnover.and\' | translate}} {{getMaxRange().label.split(\'-\')[1] | mnoCurrency : widget.content.currency}}.

\n
{{::analysisTranslate}}
\n
\n
\n\n
\n
\n\n
\n"); $templateCache.put("widgets/sales-summary.tmpl.html","
\n\n
\n

impac.widget.sales_summary.settings.title

\n\n
\n
\n\n
\n \n \n
\n
\n\n
\n\n
\n \n \n
\n\n
\n
\n
\n\n
\n
\n\n
\n"); $templateCache.put("widgets/sales-top-customers.tmpl.html","
\n
\n

impac.widget.sales_top_customers.settings.title

\n\n
\n
\n\n
\n \n \n
\n
\n\n
\n\n
\n \n\n \n
\n
\n #\n
\n
impac.widget.sales_top_customers.customer_name
\n
\n
\n
\n
\n\n \n
\n
\n\n
\n
\n {{$index + 1}}\n
\n
\n {{entity.name}}\n
\n
\n \n \n {{ getHeaderField().getValue(entity) | mnoCurrency : entity.currency }}\n \n \n {{ getHeaderField().getValue(entity) }}\n \n
\n
\n\n
\n
\n \n {{field.label}}: {{field.getValue(entity) | mnoCurrency : entity.currency}}\n \n \n {{field.label}}: {{field.getValue(entity)}}\n
\n
\n\n
\n
\n\n
\n
\n\n
\n"); -$templateCache.put("widgets/sales-top-opportunities.tmpl.html","
\n\n
\n

impac.widget.sales_opportunities.settings.title

\n\n
\n\n
\n \n \n
\n
\n\n
\n\n
\n\n
\n {{\'impac.widget.sales_opportunities.total_potential\' | translate}} {{widget.content.total_potential | mnoCurrency : widget.content.currency || \"AUD\"}} - {{widget.content.eligible_opportunities}} {{\'impac.widget.sales_opportunities.eligible_opportunities\' | translate}}\n
\n\n
\n
\n
{{$index +1 }}
\n
\n {{opp.name | titleize}}\n
\n {{getOppDetails(opp)}}\n
\n
\n
\n\n
\n\n
\n
\n\n
\n");}]); +$templateCache.put("widgets/sales-top-opportunities.tmpl.html","
\n\n
\n

impac.widget.sales_opportunities.settings.title

\n\n
\n\n
\n \n \n
\n
\n\n
\n\n
\n\n
\n {{\'impac.widget.sales_opportunities.total_potential\' | translate}} {{widget.content.total_potential | mnoCurrency : widget.content.currency || \"AUD\"}} - {{widget.content.eligible_opportunities}} {{\'impac.widget.sales_opportunities.eligible_opportunities\' | translate}}\n
\n\n
\n
\n
{{$index +1 }}
\n
\n {{opp.name | titleize}}\n
\n {{getOppDetails(opp)}}\n
\n
\n
\n\n
\n\n
\n
\n\n
\n"); +$templateCache.put("widgets-settings/account.tmpl.html","
{{label}}
\n
\n \n
\n
\n \n \n \n
\n impac.widget.settings.attach_kpis.kpi_target_require\n impac.widget.settings.attach_kpis.kpi_target_number\n
\n
\n
\n \n
\n
\n \n
\n\n
\n
impac.widget.settings.attach_kpis.attached_alerts
\n
\n
{{\'impac.widget.settings.attach_kpis.keep\' | translate}} {{formatAttachedKpiTitle(kpi) | titleize}}
\n
\n \n
\n \n
\n
\n
\n
\n\n
\n"); +$templateCache.put("widgets-settings/bolt-account.tmpl.html","
{{label}}
\n
\n \n
\n"); +$templateCache.put("widgets-settings/chart-filters.tmpl.html","
\n
impac.widget.settings.chart_filters.title
\n
\n
\n \n \n
\n
\n \n
\n
\n
\n
\n \n \n
\n
\n \n
\n
\n
\n"); +$templateCache.put("widgets-settings/dates-picker.tmpl.html","\n
impac.widget.settings.dates_picker.title
\n \n\n"); +$templateCache.put("widgets-settings/forecast-payroll.tmpl.html","
\n
impac.widget.settings.forecast_payroll.title
\n\n
\n
\n {{\'impac.widget.account_cash_projection.forecast_payroll.aggregate\' | translate}}\n \n
\n
\n
\n"); +$templateCache.put("widgets-settings/hist-mode.tmpl.html","
\n
\n\n \n\n
\n
\n
\n
\n
\n"); +$templateCache.put("widgets-settings/limit-entries.tmpl.html","
\n {{ (entriesLabel ? \'impac.widget.settings.limit_entries.top\' : \'impac.widget.settings.limit_entries.display\') | translate }}\n\n \n {{ $index!=0 ? \' |\' : \'\' }} \n {{ option }}\n \n\n \n | \n {{ max }}\n \n\n {{entriesLabel || (\'impac.widget.settings.limit_entries.entries\' | translate)}}\n
"); +$templateCache.put("widgets-settings/offsets.tmpl.html","
\n
\n \n + {{ intervalsCount }} {{ periodWord }}{{ intervalsCount > 1 ? \'s\' : \'\' }} x {{ offsetValue | mnoCurrency : currency}}\n
\n\n
\n \n \n
\n
\n"); +$templateCache.put("widgets-settings/organizations.tmpl.html","
\n
impac.widget.settings.organizations.select_companies
\n\n
\n
\n {{org.label}}\n \n\n \n
\n
\n
\n"); +$templateCache.put("widgets-settings/param-selector-classic.tmpl.html","\n \n\n"); +$templateCache.put("widgets-settings/param-selector.tmpl.html","\n {{((selected.labelTranslate | translate | titleize) || (selected.label | titleize)) | truncate : getTruncateValue() : \"...\" : false}} \n
\n
\n {{(option.labelTranslate | translate | titleize) || (option.label | titleize)}}\n
\n
\n
\n"); +$templateCache.put("widgets-settings/params-checkboxes.tmpl.html","
\n \n
\n"); +$templateCache.put("widgets-settings/params-picker.tmpl.html","
{{formattedParam | titleize}}
\n
\n
{{description}}
\n
\n \n {{$index + 1}}\n {{parameter.label | titleize}}\n \n \n
\n
\n \n
\n
\n"); +$templateCache.put("widgets-settings/tag-filter.tmpl.html","
impac.widget.settings.tag-filter.filter_title
\n
\n\n
\n
\n
\n 0\" translate>impac.widget.settings.tag-filter.add_filter\n AND\n
\n
\n \n \n \n
\n
\n \n
\n
\n\n
\n
\n \n
\n
\n
\n
\n"); +$templateCache.put("widgets-settings/time-period.tmpl.html","
impac.widget.settings.time_period.title
\n
\n\n \n
\n
\n impac.widget.settings.time_period.time_range\n
\n
\n
\n\n \n
\n
\n
\n
\n
\n\n \n
\n
\n
\n
\n
\n\n \n
\n
\n impac.widget.settings.time_period.chart_interval\n \n
\n"); +$templateCache.put("widgets-settings/time-slider.tmpl.html","
\n
\n
\n
\n {{fromDate() | momentDate : \'time-slider\'}} - {{toDate() | momentDate : \'time-slider\'}}\n
\n
\n \n
\n
\n
\n"); +$templateCache.put("widgets-settings/width.tmpl.html","\n\n");}]); (function() { var module; @@ -363,7 +363,7 @@ $templateCache.put("widgets/sales-top-opportunities.tmpl.html","
= 0); + }); + options = { + scaleBeginAtZero: all_values_are_positive, + showXLabels: false, + currency: data.currency + }; + chartData = ChartFormatterSvc.combinedBarChart(inputData, options, false); + return $scope.drawTrigger.notify(chartData); } }; - w.settings.push(setting); - return $scope.deferred.resolve($scope.parentWidget); + return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('settingAccount', ["$templateCache", "$translate", function($templateCache, $translate) { + module.directive('widgetAccountsAccountingValues', function() { return { restrict: 'A', - scope: { - parentWidget: '=', - deferred: '=', - label: '@', - showLabel: '=?', - onAccountSelected: '&' - }, - link: function(scope, element) { - if (!scope.label) { - return scope.label = $translate.instant('impac.widget.settings.account.label'); - } - }, - template: $templateCache.get('widgets-settings/account.tmpl.html'), - controller: 'SettingAccountCtrl' + controller: 'WidgetAccountsAccountingValuesCtrl' }; - }]); + }); }).call(this); (function() { var module; - module = angular.module('impac.components.widgets-settings.accounting-behaviour', []); + module = angular.module('impac.components.widgets.accounts-assets-liability-summary', []); - module.directive('settingAccountingBehaviour', ["$templateCache", "$timeout", function($templateCache, $timeout) { - return { - restrict: 'A', - scope: { - parentWidget: '=', - deferred: '=', - defaultBehaviour: '=?' - }, - template: $templateCache.get('widgets-settings/accounting-behaviour.tmpl.html'), - link: function(scope) { - var setting, w; - w = scope.parentWidget; - setting = {}; - setting.key = "accounting-behaviour"; - setting.initialize = function() { - return $timeout(function() { - if ((scope.defaultBehaviour != null) && scope.defaultBehaviour === 'pnl') { - return scope.selectedBehaviour = 'pnl'; - } else { - return scope.selectedBehaviour = 'bls'; - } - }); - }; - setting.toMetadata = function() { + module.controller('WidgetAccountsAssetsLiabilitySummaryCtrl', ["$scope", "$q", "ChartFormatterSvc", "$translate", function($scope, $q, ChartFormatterSvc, $translate) { + var settingsPromises, w; + w = $scope.widget; + $scope.orgDeferred = $q.defer(); + $scope.chartDeferred = $q.defer(); + $scope.paramSelectorDeferred = $q.defer(); + settingsPromises = [$scope.orgDeferred.promise, $scope.chartDeferred.promise, $scope.paramSelectorDeferred.promise]; + w.initContext = function() { + $scope.isDataFound = angular.isDefined(w.content) && !_.isEmpty(w.content.summary); + if (!w.metadata.classification) { + w.metadata.classification = "ASSET"; + } + $translate('impac.widget.acc_ass_liab_smry.' + w.metadata.classification.toLowerCase() + '.many').then(function(result) { + return $scope.classification = result; + }); + $translate(['impac.widget.acc_ass_liab_smry.accounts.asset', 'impac.widget.acc_ass_liab_smry.accounts.liability']).then(function(translation) { + $scope.accountsOptions = [ + { + label: translation['impac.widget.acc_ass_liab_smry.accounts.asset'], + value: 'ASSET' + }, { + label: translation['impac.widget.acc_ass_liab_smry.accounts.liability'], + value: 'LIABILITY' + } + ]; + if (!$scope.selectedAccountsOption) { + return $scope.selectedAccountsOption = angular.copy(_.find($scope.accountsOptions, { + value: w.metadata.classification + })); + } + }); + if ($scope.isDataFound) { + if (w.metadata.organization_ids.length > 1) { + return $scope.dataSource = w.content.repartition; + } else { + return $scope.dataSource = w.content.summary; + } + } + }; + $scope.getCurrency = function() { + if ($scope.isDataFound) { + return w.content.currency; + } + }; + $scope.getAccountColor = function(elem) { + if ($scope.isDataFound) { + return ChartFormatterSvc.getColor(_.indexOf($scope.dataSource, elem)); + } + }; + $scope.drawTrigger = $q.defer(); + w.format = function() { + var chartData, pieData, pieOptions; + if ($scope.isDataFound) { + pieData = _.map($scope.dataSource, function(company) { return { - accounting_behaviour: scope.selectedBehaviour + label: company.label, + value: company.total }; + }); + pieOptions = { + percentageInnerCutout: 50, + tooltipFontSize: 12 }; - w.settings.push(setting); - return scope.deferred.resolve(setting); + chartData = ChartFormatterSvc.pieChart(pieData, pieOptions); + return $scope.drawTrigger.notify(chartData); } }; + return $scope.widgetDeferred.resolve(settingsPromises); }]); + module.directive('widgetAccountsAssetsLiabilitySummary', function() { + return { + restrict: 'A', + controller: 'WidgetAccountsAssetsLiabilitySummaryCtrl' + }; + }); + }).call(this); (function() { var module; - module = angular.module('impac.components.widgets-settings.accounts-list', []); + module = angular.module('impac.components.widgets.accounts-assets-summary', []); - module.controller('SettingAccountsListCtrl', ["$scope", "$timeout", "ImpacWidgetsSvc", function($scope, $timeout, ImpacWidgetsSvc) { - var restoreSavedAccounts, setting, w; - w = $scope.parentWidget; - w.moveAccountToAnotherList = function(account, src, dst, triggerUpdate) { - if (triggerUpdate == null) { - triggerUpdate = true; - } - if (_.isEmpty(src) || _.isEmpty(account)) { - return; + module.controller('WidgetAccountsAssetsSummaryCtrl', ["$scope", "$q", "ChartFormatterSvc", "$translate", function($scope, $q, ChartFormatterSvc, $translate) { + var settingsPromises, w; + w = $scope.widget; + $scope.orgDeferred = $q.defer(); + $scope.chartDeferred = $q.defer(); + settingsPromises = [$scope.orgDeferred.promise, $scope.chartDeferred.promise]; + w.initContext = function() { + $scope.isDataFound = angular.isDefined(w.content) && !_.isEmpty(w.content.summary); + if ($scope.isDataFound) { + if (w.metadata.organization_ids.length > 1) { + $scope.dataSource = w.content.repartition; + } else { + $scope.dataSource = w.content.summary; + } } - dst || (dst = []); - _.remove(src, function(acc) { - return account.uid === acc.uid; - }); - dst.push(account); - if (triggerUpdate) { - ImpacWidgetsSvc.updateWidgetSettings(w, false); + if (!w.metadata.classification) { + w.metadata.classification = "ASSET"; } - return null; + return $translate('impac.widget.acc_ass_smry.' + w.metadata.classification.toLowerCase() + ".many").then(function(result) { + return $scope.classification = result; + }); }; - setting = {}; - setting.key = "accounts-list"; - setting.initialize = function() { - setting.isInitialized = false; - w.remainingAccounts = []; - w.selectedAccounts = []; - if ((w.content != null) && !_.isEmpty(w.content.complete_list)) { - w.remainingAccounts = angular.copy(w.content.complete_list); - return $timeout(function() { - restoreSavedAccounts(); - return setting.isInitialized = true; - }); + $scope.getCurrency = function() { + if ($scope.isDataFound) { + return w.content.currency; } }; - setting.toMetadata = function() { - if (setting.isInitialized) { - return { - accounts_list: _.map(w.selectedAccounts, (function(acc) { - return acc.uid; - })) - }; + $scope.getAccountColor = function(elem) { + if ($scope.isDataFound) { + return ChartFormatterSvc.getColor(_.indexOf($scope.dataSource, elem)); } }; - restoreSavedAccounts = function() { - var acc, accUid, accountsList, i, len, results; - if (_.isEmpty(w.metadata.accounts_list) && _.isEmpty($scope.accountsList)) { - return; - } - accountsList = _.isEmpty($scope.accountsList) ? w.metadata.accounts_list : $scope.accountsList; - results = []; - for (i = 0, len = accountsList.length; i < len; i++) { - accUid = accountsList[i]; - acc = _.find(w.content.complete_list, function(acc) { - return acc.uid === accUid; + $scope.drawTrigger = $q.defer(); + w.format = function() { + var chartData, pieData, pieOptions; + if ($scope.isDataFound) { + pieData = _.map($scope.dataSource, function(company) { + return { + label: company.label, + value: company.total + }; }); - results.push(w.moveAccountToAnotherList(acc, w.remainingAccounts, w.selectedAccounts, false)); + pieOptions = { + percentageInnerCutout: 50, + tooltipFontSize: 12 + }; + chartData = ChartFormatterSvc.pieChart(pieData, pieOptions); + return $scope.drawTrigger.notify(chartData); } - return results; }; - w.settings.push(setting); - return $scope.deferred.resolve($scope.parentWidget); + return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('settingAccountsList', function() { + module.directive('widgetAccountsAssetsSummary', function() { return { restrict: 'A', - scope: { - parentWidget: '=', - deferred: '=', - accountsList: '=?' - }, - controller: 'SettingAccountsListCtrl' + controller: 'WidgetAccountsAssetsSummaryCtrl' }; }); }).call(this); - -/* - * Attach KPIs onto widget with a form for picking target mode and value. View widget's - * attached KPIs, manage set targets, alerts and delete. - * **NOTE: this component is not in use, and requires fixes/improvements to be used.** - */ - (function() { var module; - module = angular.module('impac.components.widgets-settings.attach-kpis', []); + module = angular.module('impac.components.widgets.accounts-assets-vs-liabilities', []); - module.directive('settingAttachKpis', ["$templateCache", "ImpacWidgetsSvc", "ImpacKpisSvc", "$translate", function($templateCache, ImpacWidgetsSvc, ImpacKpisSvc, $translate) { - return { - restrict: 'A', - scope: { - parentWidget: '=', - attachedKpis: '=?', - widgetEngine: '=', - widgetId: '=', - extraParams: '=?', - deferred: '=', - showExtraParam: '=?' - }, - template: $templateCache.get('widgets-settings/attach-kpis.tmpl.html'), - controller: ["$scope", function($scope) { - var loadKpisData, settings, w; - w = $scope.parentWidget; - settings = {}; - settings.initialize = function() { - return loadKpisData(); - }; - settings.toMetadata = function() {}; - w.settings.push(settings); - $scope.formatKpiName = function(endpoint) { - return ImpacKpisSvc.formatKpiName(endpoint); - }; - $scope.hasValidTarget = function() { - return ImpacKpisSvc.validateKpiTarget($scope.kpi); - }; - $scope.attachKpi = function() { - var param, paramValues, params, ref, target0; - params = {}; - if (!$scope.hasValidTarget()) { - return; - } - target0 = {}; - target0[$scope.kpi.limit.mode] = $scope.kpi.limit.value; - params.targets = {}; - params.targets[$scope.kpi.watchables[0]] = [target0]; - params.widget_id = $scope.widgetId; - ref = $scope.extraParams; - for (param in ref) { - paramValues = ref[param]; - params.extra_params || (params.extra_params = {}); - params.extra_params[param] = paramValues.uid; - } - console.log('attachKpis: ', $scope.kpi.endpoint, $scope.elementWatched, params); - return ImpacKpisSvc.create('impac', $scope.kpi.endpoint, $scope.elementWatched, params).then(function(kpi) { - console.log('attached KPI: ', kpi); - return $scope.attachedKpis.push(kpi); - }); - }; - $scope.deleteKpi = function(kpi) { - return ImpacKpisSvc["delete"](kpi, { - widget_id: $scope.widgetId - }).then(function() { - return _.remove($scope.attachedKpis, function(k) { - return k.id === kpi.id; - }); - }); - }; - $scope.formatAttachedKpiTitle = function(kpi) { - if (!(kpi.data && kpi.targets && $scope.elementWatched)) { - return ''; + module.controller('WidgetAccountsAssetsVsLiabilitiesCtrl', ["$scope", "$q", "ChartFormatterSvc", "$filter", "$translate", function($scope, $q, ChartFormatterSvc, $filter, $translate) { + var settingsPromises, w; + w = $scope.widget; + $scope.orgDeferred = $q.defer(); + $scope.chartDeferred = $q.defer(); + settingsPromises = [$scope.orgDeferred.promise, $scope.chartDeferred.promise]; + $translate(['impac.widget.acc_ass_vs_liab.asset.one', 'impac.widget.acc_ass_vs_liab.liability.one']).then(function(translation) { + return $scope.classificationTranslation = { + "ASSET": translation['impac.widget.acc_ass_vs_liab.asset.one'].toUpperCase(), + "LIABILITY": translation['impac.widget.acc_ass_vs_liab.liability.one'].toUpperCase() + }; + }); + w.initContext = function() { + var index; + $scope.isDataFound = (w.content != null) && !_.isEmpty(w.content.summary) && !_.isEmpty(w.content.companies); + if ($scope.isDataFound) { + index = 0; + $scope.companiesList = _.map(w.content.companies, function(company) { + var assetSum, liabilitiesSum, result; + assetSum = _.find(w.content.summary, (function(sum) { + return sum.classification === "ASSET"; + })); + liabilitiesSum = _.find(w.content.summary, (function(sum) { + return sum.classification === "LIABILITY"; + })); + result = { + company: company, + assets: assetSum != null ? assetSum.totals[index] : 0.0, + liabilities: liabilitiesSum != null ? liabilitiesSum.totals[index] : 0.0, + currency: w.content.currency + }; + index++; + return result; + }); + return $scope.titleTranslation; + } + }; + $scope.assetsColor = ChartFormatterSvc.getColor(0); + $scope.liabilitiesColor = ChartFormatterSvc.getColor(1); + $scope.drawTrigger = $q.defer(); + w.format = function() { + var chartData, datasets, inputData, options; + if ($scope.isDataFound) { + datasets = _.map(w.content.summary, function(sum) { + if (_.includes(['ASSET', 'LIABILITY'], sum.classification)) { + return { + title: $scope.classificationTranslation[sum.classification], + values: sum.totals + }; } - return ImpacKpisSvc.formatKpiTarget(kpi.targets[$scope.elementWatched][0], kpi.data[$scope.elementWatched].unit, $scope.possibleTargets); + }); + datasets = _.sortByOrder(datasets, ['title']); + inputData = { + labels: w.content.companies, + datasets: _.compact(datasets) }; - $scope.attachedKpis || ($scope.attachedKpis = []); - $scope.possibleTargets = [ - { - label: $translate.instant('impac.widget.settings.attach_kpis.over'), - mode: 'min' - }, { - label: $translate.instant('impac.widget.settings.attach_kpis.below'), - mode: 'max' - } - ]; - $scope.kpi = { - limit: { - mode: $scope.possibleTargets[0].mode - } + options = { + showTooltips: false, + showXLabels: false, + barValueSpacing: Math.max(8 - w.content.companies.length, 1) }; - ImpacKpisSvc.getAttachableKpis($scope.widgetEngine).then(function(kpiTemplates) { - $scope.availableKpis = angular.copy(kpiTemplates); - angular.extend($scope.kpi, $scope.availableKpis[0]); - $scope.selectedParam = _.keys($scope.extraParams)[0]; - return $scope.elementWatched = ($scope.kpi.watchables != null) && $scope.kpi.watchables[0]; - }); - loadKpisData = function() {}; - loadKpisData(); - return $scope.deferred.resolve($scope.parentWidget); - }] + chartData = ChartFormatterSvc.combinedBarChart(inputData, options); + return $scope.drawTrigger.notify(chartData); + } }; + return $scope.widgetDeferred.resolve(settingsPromises); }]); -}).call(this); - -(function() { - var module; + module.directive('widgetAccountsAssetsVsLiabilities', function() { + return { + restrict: 'A', + controller: 'WidgetAccountsAssetsVsLiabilitiesCtrl' + }; + }); - module = angular.module('impac.components.widgets-settings.bolt-account', []); +}).call(this); - module.controller('SettingBoltAccountCtrl', ["$scope", "$filter", function($scope, $filter) { - var formatAmount, setOptions, setSelected, setting, w; - w = $scope.parentWidget; - setting = {}; - setting.key = "bolt-account"; - setting.isInitialized = false; - setting.initialize = function() { - if (w.content.settings.selectors.length !== 0) { - w.accountList = setOptions(); - } - w.selectedAccount = setSelected(); - if ((w.content != null) && (w.accountList != null) && (w.metadata != null) && (w.metadata.account_uid != null)) { - w.selectedAccount = setSelected(w.metadata.account_uid); - return setting.isInitialized = true; - } +(function() { + var module; + + module = angular.module('impac.components.widgets.accounts-balance', []); + + module.controller('WidgetAccountsBalanceCtrl', ["$scope", "$q", "ChartFormatterSvc", "$filter", function($scope, $q, ChartFormatterSvc, $filter) { + var settingsPromises, w; + w = $scope.widget; + $scope.orgDeferred = $q.defer(); + $scope.accountBackDeferred = $q.defer(); + $scope.accountFrontDeferred = $q.defer(); + $scope.timePeriodDeferred = $q.defer(); + $scope.histModeDeferred = $q.defer(); + $scope.chartDeferred = $q.defer(); + settingsPromises = [$scope.orgDeferred.promise, $scope.accountBackDeferred, $scope.accountFrontDeferred, $scope.timePeriodDeferred.promise, $scope.histModeDeferred.promise, $scope.chartDeferred.promise]; + $scope.kpiExtraParams = {}; + $scope.isDataFound = true; + w.initContext = function() { + return $scope.isDataFound = (w.content != null) && !_.isEmpty(w.content.account_list); }; - setting.toMetadata = function() { + $scope.getName = function() { if (w.selectedAccount != null) { - return { - account_uid: w.selectedAccount.account_id - }; + return w.selectedAccount.name; } }; - setOptions = function(name) { - if (name == null) { - name = 'account'; + $scope.getBehaviour = function() { + return (w.selectedAccount != null) && w.selectedAccount.accounting_behaviour; + }; + $scope.getCurrentBalance = function() { + if (w.selectedAccount != null) { + if ($scope.getBehaviour() === 'pnl') { + return _.sum(w.selectedAccount.balances); + } else { + return _.last(w.selectedAccount.balances); + } + } else { + return 0.0; } - return _.find(w.content.settings.selectors, function(selector) { - return selector.name === name; - }).options; }; - setSelected = function(selected) { - if (selected == null) { - selected = 'total_uid'; + $scope.getCurrency = function() { + if (w.selectedAccount != null) { + return w.selectedAccount.currency; } - return _.find(w.accountList, function(acc) { - return acc.account_id === selected; + }; + $scope.displayAccount = function() { + return $scope.updateSettings(false).then(function() { + return w.format(); }); }; - formatAmount = function(anAccount) { - var balance; - balance = null; - return $filter('mnoCurrency')(balance, anAccount.currency); + $scope.updateKpiExtraParams = function(key, value) { + return $scope.kpiExtraParams[key] = angular.copy(value); }; - $scope.formatLabel = function(anAccount) { - if (anAccount.currency != null) { - return anAccount.name + " (" + anAccount.currency + ")"; - } else { - return "" + anAccount.name; + $scope.drawTrigger = $q.defer(); + w.format = function() { + var all_values_are_positive, barData, chartData, data, dates, datesSource, lineData, options, period; + if ($scope.isDataFound && (w.selectedAccount != null)) { + data = angular.copy(w.selectedAccount); + datesSource = data.dates || w.content.dates; + period = null; + if ((w.metadata != null) && (w.metadata.hist_parameters != null)) { + period = w.metadata.hist_parameters.period; + } + dates = _.map(datesSource, function(date) { + return $filter('momentDate')(date, period); + }); + lineData = { + title: data.name, + labels: dates, + values: data.balances + }; + barData = { + labels: dates, + datasets: [ + { + title: data.name, + values: data.balances + } + ] + }; + all_values_are_positive = true; + angular.forEach(data.balances, function(value) { + return all_values_are_positive && (all_values_are_positive = value >= 0); + }); + options = { + scaleBeginAtZero: all_values_are_positive, + showXLabels: false + }; + chartData = ChartFormatterSvc.lineChart([lineData], options); + if ($scope.getBehaviour() === 'pnl') { + chartData = ChartFormatterSvc.combinedBarChart(barData, options, false); + } + return $scope.drawTrigger.notify(chartData); } }; - w.settings.push(setting); - return $scope.deferred.resolve($scope.parentWidget); + return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('settingBoltAccount', ["$templateCache", "$translate", function($templateCache, $translate) { + module.directive('widgetAccountsBalance', function() { return { restrict: 'A', - scope: { - parentWidget: '=', - deferred: '=', - label: '@', - showLabel: '=?', - onAccountSelected: '&' - }, - link: function(scope, element) { - if (!scope.label) { - return scope.label = $translate.instant('impac.widget.settings.bolt-account.label'); - } - }, - template: $templateCache.get('widgets-settings/bolt-account.tmpl.html'), - controller: 'SettingBoltAccountCtrl' + controller: 'WidgetAccountsBalanceCtrl' }; - }]); + }); }).call(this); (function() { var module; - module = angular.module('impac.components.widgets-settings.chart-filters', []); + module = angular.module('impac.components.widgets.accounts-balance-sheet', []); - module.controller('SettingChartFiltersCtrl', ["$scope", function($scope) { - var setting, w; - w = $scope.parentWidget; - setting = {}; - setting.key = "chart-filters"; - setting.isInitialized = false; - setting.initialize = function() { - if ((w.content != null) && (w.content.chart_filter != null) && ($scope.filterCriteria = w.content.chart_filter.criteria)) { - $scope.maxEntities = w.content.chart_filter.max; - $scope.entityType = w.content.chart_filter.entity_type; - $scope.filterLabel = w.content.chart_filter.filter_label.replace(/_/g, " "); - if ($scope.filterCriteria === "number") { - $scope.filterValuePercentage = 80; - $scope.filterValueNumber = w.content.chart_filter.value; + module.controller('WidgetAccountsBalanceSheetCtrl', ["$scope", "$q", "ImpacWidgetsSvc", "ImpacMainSvc", "ImpacUtilities", "$translate", "ImpacTheming", function($scope, $q, ImpacWidgetsSvc, ImpacMainSvc, ImpacUtilities, $translate, ImpacTheming) { + var initDates, settingsPromises, sortAccountsBy, sortData, translateCategories, unCollapsedSetting, w; + w = $scope.widget; + $scope.orgDeferred = $q.defer(); + $scope.datesPickerDeferred = $q.defer(); + $scope.tagFilterDeferred = $q.defer(); + settingsPromises = [$scope.orgDeferred.promise, $scope.datesPickerDeferred.promise, $scope.tagFilterDeferred.promise]; + $scope.datesPickerTemplate = "
\n
\n \n
\n
\n \n
\n
"; + $scope.ascending = true; + $scope.sortedColumn = 'account'; + $scope.filterTagsEnabled = ImpacTheming.get().widgetSettings.tagging.enabled; + $scope.isReportFiltered = function() { + return (w.metadata != null) && (w.metadata.filter_query != null) && Object.keys(w.metadata.filter_query).length > 0; + }; + initDates = function() { + $scope.fromDate = w.metadata.hist_parameters.from; + $scope.toDate = w.metadata.hist_parameters.to; + return $scope.keepToday = w.metadata.hist_parameters.keep_today; + }; + if (!((w.metadata != null) && (w.metadata.hist_parameters != null))) { + w.metadata || (w.metadata = {}); + w.metadata.hist_parameters = { + to: moment().format('YYYY-MM-DD'), + keep_today: true, + period: 'RANGE' + }; + ImpacMainSvc.load().then(function(config) { + var fyEndMonth; + fyEndMonth = parseInt(config.currentOrganization.financial_year_end_month) || 6; + w.metadata.hist_parameters.from = moment(ImpacUtilities.financialYearDates(fyEndMonth).end, 'YYYY-MM-DD').subtract(1, 'year').format('YYYY-MM-DD'); + return initDates(); + }); + } else { + initDates(); + } + w.initContext = function() { + if ($scope.isDataFound = angular.isDefined(w.content) && !_.isEmpty(w.content.summary) && !_.isEmpty(w.content.dates)) { + $scope.dates = w.content.dates; + $scope.unCollapsed = w.metadata.unCollapsed || []; + translateCategories(Object.keys(w.content.summary)).then(function(categories) { + $scope.categories = categories; + return sortData(); + }); + } + return initDates(); + }; + $scope.toggleCollapsed = function(categoryName) { + if (categoryName != null) { + if (_.find($scope.unCollapsed, (function(name) { + return categoryName === name; + }))) { + $scope.unCollapsed = _.reject($scope.unCollapsed, function(name) { + return name === categoryName; + }); } else { - $scope.filterValuePercentage = w.content.chart_filter.value; - $scope.filterValueNumber = Math.round($scope.maxEntities / 2); + $scope.unCollapsed.push(categoryName); } - return setting.isInitialized = true; + return ImpacWidgetsSvc.updateWidgetSettings(w, false); } }; - setting.toMetadata = function() { - var filterValue; - if ((w.content != null) && (w.content.chart_filter != null)) { - if ($scope.filterCriteria === "percentage") { - filterValue = $scope.filterValuePercentage; + $scope.isCollapsed = function(categoryName) { + if (categoryName != null) { + if (_.find($scope.unCollapsed, (function(name) { + return categoryName === name; + }))) { + return false; } else { - filterValue = $scope.filterValueNumber; + return true; } - return { - chart_filter: { - criteria: $scope.filterCriteria, - value: filterValue - } - }; - } else { - return {}; } }; - w.settings.push(setting); - return $scope.deferred.resolve($scope.parentWidget); - }]); - - module.directive('settingChartFilters', ["$templateCache", function($templateCache) { - return { - restrict: 'A', - scope: { - parentWidget: '=', - deferred: '=' - }, - template: $templateCache.get('widgets-settings/chart-filters.tmpl.html'), - controller: 'SettingChartFiltersCtrl' - }; - }]); - -}).call(this); - -(function() { - var module; - - module = angular.module('impac.components.widgets-settings.dates-picker', []); - - module.directive('settingDatesPicker', ["$templateCache", "$filter", "ImpacWidgetsSvc", "$timeout", "$compile", function($templateCache, $filter, ImpacWidgetsSvc, $timeout, $compile) { - return { - restrict: 'A', - scope: { - parentWidget: '=?', - deferred: '=', - fromDate: '=from', - toDate: '=to', - keepToday: '=', - onUse: '&?', - onChangeCb: '&?onChange', - minDate: '=?', - updateOnPick: '=?', - template: '=?', - period: '=?' - }, - template: $templateCache.get('widgets-settings/dates-picker.tmpl.html'), - link: function(scope, element) { - var applyHtml, buildDates, fromDateHtml, isToToday, setting, templatesContainer, toDateHtml, w; - w = scope.parentWidget; - setting = {}; - setting.key = "dates-picker"; - scope.setting = setting; - scope.calendarFrom = { - opened: false, - value: new Date(new Date().getFullYear(), 0, 1), - toggle: function() { - scope.calendarFrom.opened = !scope.calendarFrom.opened; - return scope.calendarTo.opened = false; - } - }; - scope.calendarTo = { - opened: false, - value: new Date(), - toggle: function() { - scope.calendarFrom.opened = false; - return scope.calendarTo.opened = !scope.calendarTo.opened; - } - }; - scope.template || (scope.template = "
\n
\n impac.widget.settings.dates_picker.from \n
\n
\n impac.widget.settings.dates_picker.to \n
\n
"); - fromDateHtml = "
\n \n
"; - toDateHtml = "
\n \n
"; - applyHtml = ""; - scope.template = scope.template.replace(/>/, " ng-click='onUse()'>"); - scope.template = scope.template.replace(/]*)>/g, "" + (fromDateHtml.replace('ATTRS', '$1'))); - scope.template = scope.template.replace(/]*)>/g, "" + (toDateHtml.replace('ATTRS', '$1'))); - scope.template = scope.template.replace(/]*)>/g, "" + (applyHtml.replace('ATTRS', '$1'))); - templatesContainer = element.find('#template-container'); - templatesContainer.html(scope.template).show(); - $compile(templatesContainer.contents())(scope); - setting.initialize = function() { - return $timeout(function() { - var d, m, parsedFrom, parsedTo, y; - scope.changed = false; - if (Date.parse(scope.fromDate)) { - parsedFrom = scope.fromDate.split('-'); - y = parsedFrom[0]; - m = parsedFrom[1] - 1; - d = parsedFrom[2]; - scope.calendarFrom.value = new Date(y, m, d); - } else { - scope.calendarFrom.value = new Date(new Date().getFullYear(), 0, 1); - } - if (Date.parse(scope.toDate) && !scope.keepToday) { - parsedTo = scope.toDate.split('-'); - y = parsedTo[0]; - m = parsedTo[1] - 1; - d = parsedTo[2]; - return scope.calendarTo.value = new Date(y, m, d); - } else { - return scope.calendarTo.value = new Date(); - } - }); - }; - isToToday = function() { - return (scope.calendarTo.value.getFullYear() === new Date().getFullYear()) && (scope.calendarTo.value.getMonth() === new Date().getMonth()) && (scope.calendarTo.value.getDate() === new Date().getDate()); - }; - setting.toMetadata = function() { + translateCategories = function(categories) { + var translationPromises; + translationPromises = _.map(categories, function(category) { + return $translate('impac.widget.account_balance_sheets.' + category.toLowerCase()).then(function(translation) { return { - hist_parameters: { - from: $filter('date')(scope.calendarFrom.value, 'yyyy-MM-dd'), - to: $filter('date')(scope.calendarTo.value, 'yyyy-MM-dd'), - period: scope.period || "RANGE", - keep_today: isToToday() - } + label: translation, + key: category }; - }; - scope.onChange = function() { - scope.showApplyButton(); - if (!_.isUndefined(scope.onChangeCb)) { - return scope.onChangeCb()(buildDates()); - } - }; - buildDates = function() { + }, function() { return { - from: $filter('date')(scope.calendarFrom.value, 'yyyy-MM-dd'), - to: $filter('date')(scope.calendarTo.value, 'yyyy-MM-dd'), - keepToday: isToToday() + label: category.toLowerCase(), + key: category }; - }; - scope.showApplyButton = function() { - if (scope.updateOnPick) { - return scope.applyChanges(); - } else { - return scope.changed = true; - } - }; - scope.applyChanges = function() { - ImpacWidgetsSvc.updateWidgetSettings(w, true); - return scope.changed = false; - }; - scope.showTitle = function() { - return element.hasClass('part'); - }; - if (w) { - w.settings.push(setting); + }); + }); + return $q.all(translationPromises); + }; + sortAccountsBy = function(getElem) { + return angular.forEach($scope.categories, function(cat) { + var sElem; + sElem = w.content.summary[cat.key]; + if (sElem.accounts) { + return sElem.accounts.sort(function(a, b) { + var res; + res = getElem(a) > getElem(b) ? 1 : getElem(a) < getElem(b) ? -1 : 0; + if (!$scope.ascending) { + res *= -1; + } + return res; + }); } - return scope.deferred.resolve(setting); - } + }); }; - }]); - -}).call(this); - -(function() { - var module; - - module = angular.module('impac.components.widgets-settings.forecast-payroll', []); - - module.controller('SettingForecastPayrollCtrl', ["$scope", "ImpacDashboardsSvc", function($scope, ImpacDashboardsSvc) { - var setting, w; - w = $scope.parentWidget; - $scope.selectedForecastPayroll = false; - $scope.toggleForecastPayroll = function() { - return $scope.selectedForecastPayroll = !$scope.selectedForecastPayroll; + sortData = function() { + if (_.isEmpty($scope.categories)) { + return; + } + if ($scope.sortedColumn === 'account') { + return sortAccountsBy(function(el) { + return el.name; + }); + } else if ($scope.sortedColumn === 'total1') { + return sortAccountsBy(function(el) { + return el.totals[1]; + }); + } else if ($scope.sortedColumn === 'total2') { + return sortAccountsBy(function(el) { + return el.totals[0]; + }); + } }; - $scope.isToggleForecastPayroll = function() { - return $scope.selectedForecastPayroll; + $scope.sort = function(col) { + if ($scope.sortedColumn === col) { + $scope.ascending = !$scope.ascending; + } else { + $scope.ascending = true; + $scope.sortedColumn = col; + } + return sortData(); }; - setting = {}; - setting.key = "forecast_payroll"; - setting.isInitialized = false; - setting.initialize = function() { - return ImpacDashboardsSvc.load().then(function(config) { - var currentDashboard; - currentDashboard = config.currentDashboard; - if (!((w.metadata != null) && (w.metadata.forecast_payroll != null))) { - return; - } - $scope.selectedForecastPayroll = w.metadata.forecast_payroll; - return setting.isInitialized = true; - }); + unCollapsedSetting = {}; + unCollapsedSetting.initialized = false; + unCollapsedSetting.initialize = function() { + return unCollapsedSetting.initialized = true; }; - setting.toMetadata = function() { + unCollapsedSetting.toMetadata = function() { return { - forecast_payroll: $scope.selectedForecastPayroll + unCollapsed: $scope.unCollapsed }; }; - w.settings.push(setting); - return $scope.deferred.resolve($scope.parentWidget); + w.settings.push(unCollapsedSetting); + return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('settingForecastPayroll', ["$templateCache", function($templateCache) { + module.directive('widgetAccountsBalanceSheet', function() { return { restrict: 'A', - scope: { - parentWidget: '=', - mode: '@?', - deferred: '=', - onSelect: '&?' - }, - template: $templateCache.get('widgets-settings/forecast-payroll.tmpl.html'), - controller: 'SettingForecastPayrollCtrl' + controller: 'WidgetAccountsBalanceSheetCtrl' }; - }]); + }); }).call(this); (function() { var module; - module = angular.module('impac.components.widgets-settings.formula', []); + module = angular.module('impac.components.widgets.accounts-cash-balance', []); - module.controller('SettingFormulaCtrl', ["$scope", "$filter", "$timeout", "$translate", function($scope, $filter, $timeout, $translate) { - var AUTHORIZED_REGEXP, evaluateFormula, formatFormula, getFormula, interpolateInFormula, isRatio, prepareFormula, setting, translateEvaluatedFormula, w; - w = $scope.parentWidget; - w.formula = ''; - AUTHORIZED_REGEXP = new RegExp("^(\\{|\\d|\\}|\\/|\\+|-|\\*|\\(|\\)|\\s|\\.)*$"); - setting = {}; - setting.key = "formula"; - setting.isInitialized = false; - setting.initialize = function() { - if ((w.metadata != null) && (w.metadata.formula != null)) { - w.formula = w.metadata.formula; - return $timeout(function() { - prepareFormula(); - return setting.isInitialized = true; - }); - } else { - return w.formula = ''; - } - }; - setting.toMetadata = function() { - prepareFormula(); - if (w.isFormulaCorrect) { - return { - formula: w.formula - }; - } else { - return { - formula: '' - }; - } + module.controller('WidgetAccountsCashBalanceCtrl', ["$scope", "$q", "$timeout", "$filter", "ImpacTheming", "ImpacAssets", "ImpacWidgetsSvc", "HighchartsFactory", function($scope, $q, $timeout, $filter, ImpacTheming, ImpacAssets, ImpacWidgetsSvc, HighchartsFactory) { + var getPeriod, getSerieByAccount, onZoom, setSeriesColors, settingsPromises, updateLocked, w, zoomMetadata; + w = $scope.widget; + $scope.orgDeferred = $q.defer(); + settingsPromises = [$scope.orgDeferred.promise]; + getPeriod = function() { + return (w.metadata != null) && (w.metadata.hist_parameters != null) && w.metadata.hist_parameters.period || 'MONTHLY'; }; - getFormula = function() { - return w.formula; + w.initContext = function() { + var hist; + $scope.isDataFound = w.content.chart != null; + $scope.groupedTable = w.content.grouped_table; + setSeriesColors(w.content.chart.series, { + positive: '#3FC4FF', + negative: '#e50228' + }); + if (hist = w.metadata.hist_parameters) { + $scope.fromDate = hist.from; + return $scope.toDate = hist.to; + } }; - w.formatAmount = function(anAccount) { - return $filter('mnoCurrency')(anAccount.current_balance, anAccount.currency); + $scope.legendItemOnClick = function(account) { + var serie, visibility; + serie = ($scope.chart != null) && ($scope.chart.hc != null) && getSerieByAccount($scope.chart.hc.series, account); + if (!serie) { + return; + } + visibility = serie.visible ? false : true; + return serie.setVisible(visibility); }; - $scope.$watch(getFormula, function(e) { - return prepareFormula(); - }); - prepareFormula = function() { - var evaluatedFormula, interpolatedFormula; - interpolatedFormula = interpolateInFormula(w.formula, w.selectedAccounts, 'current_balance'); - if ((evaluatedFormula = evaluateFormula(interpolatedFormula))) { - w.evaluatedFormula = formatFormula(evaluatedFormula, w.formula, w.selectedAccounts); - w.legend = interpolateInFormula(w.formula, w.selectedAccounts, 'name'); - w.isFormulaCorrect = true; + $scope.getLegendItemCheckBox = function(account) { + var serie; + serie = ($scope.chart != null) && ($scope.chart.hc != null) && getSerieByAccount($scope.chart.hc.series, account); + if (!serie) { + return 'fa-check-square-o'; + } + if (serie.visible) { + return 'fa-check-square-o'; } else { - w.evaluatedFormula = 'invalid expression'; - w.legend = '...'; - w.isFormulaCorrect = false; + return 'fa-square-o'; } - return w.evaluatedFormulaTranslate = translateEvaluatedFormula(w.evaluatedFormula); }; - w.evaluatedFormula_History = function(index) { - var account, i, interpolation, j, len, pattern, ref; - interpolation = w.formula; - ref = w.selectedAccounts; - for (i = j = 0, len = ref.length; j < len; i = ++j) { - account = ref[i]; - pattern = new RegExp("\\{" + (i + 1) + "\\}", 'g'); - interpolation = interpolation.replace(pattern, " " + account['balances'][index] + " "); + $scope.getLegendItemIcon = function(account) { + var serie; + serie = ($scope.chart != null) && ($scope.chart.hc != null) && getSerieByAccount($scope.chart.hc.series, account); + if (serie.type === 'area') { + return ImpacAssets.get('areaLegendIcon'); + } else { + return ImpacAssets.get('plotLineLegendIcon'); } - return evaluateFormula(interpolation); }; - translateEvaluatedFormula = function(formula) { - switch (formula) { - case 'invalid expression': - return $translate.instant('impac.widget.formula.invalid_expression'); - case 'Infinity': - return $translate.instant('impac.widget.formula.infinity'); - case '-Infinity': - return $translate.instant('impac.widget.formula.minus_infinity'); - default: - return formula; + $scope.getLegendItemColor = function(account) { + var serie; + serie = ($scope.chart != null) && ($scope.chart.hc != null) && getSerieByAccount($scope.chart.hc.series, account); + if (!serie) { + return '#000'; } + return serie.color; }; - interpolateInFormula = function(sourceFormula, selectedAccounts, accountMember) { - var account, i, interpolation, j, len, pattern; - interpolation = sourceFormula; - if (_.isEmpty(selectedAccounts)) { - return interpolation; - } - for (i = j = 0, len = selectedAccounts.length; j < len; i = ++j) { - account = selectedAccounts[i]; - pattern = new RegExp("\\{" + (i + 1) + "\\}", 'g'); - interpolation = interpolation.replace(pattern, " " + account[accountMember] + " "); - } - return interpolation; + getSerieByAccount = function(series, account) { + return _.find(series, function(serie) { + return (serie.id || serie.options && serie.options.id) === account.id; + }); }; - evaluateFormula = function(interpolatedFormula) { - var e, evaluation; - if (!interpolatedFormula.match(AUTHORIZED_REGEXP)) { - return false; - } - try { - evaluation = eval(interpolatedFormula).toFixed(2); - if (isFinite(evaluation)) { - return evaluation; - } else { - return false; + setSeriesColors = function(series, chartColors) { + var bias, groupedSeries, i, palette, results, serie; + groupedSeries = _.groupBy(series, function(serie) { + return serie.bias; + }); + results = []; + for (bias in groupedSeries) { + series = groupedSeries[bias]; + if (!chartColors[bias]) { + continue; } - } catch (error) { - e = error; - return false; + palette = ImpacTheming.color.generateShadesPalette(chartColors[bias], series.length); + results.push((function() { + var j, len, results1; + results1 = []; + for (i = j = 0, len = series.length; j < len; i = ++j) { + serie = series[i]; + results1.push(serie.color = palette[i]); + } + return results1; + })()); } + return results; }; - isRatio = function(sourceFormula) { - return sourceFormula.match(/\//g); + $scope.chartId = function() { + return "cashBalanceChart-" + w.id; }; - formatFormula = function(evaluation, sourceFormula, selectedAccounts) { - var currency, firstAccount; - if (isRatio(sourceFormula) || _.isEmpty(selectedAccounts)) { - return evaluation; - } - firstAccount = selectedAccounts[0]; - if (!(currency = firstAccount.currency)) { - return evaluation; + updateLocked = false; + zoomMetadata = {}; + onZoom = function(event) { + zoomMetadata = angular.merge(w.metadata, { + xAxis: { + max: event.max, + min: event.min + } + }); + if (!updateLocked) { + updateLocked = true; + return $timeout(function() { + return ImpacWidgetsSvc.update(w, { + metadata: zoomMetadata + }, false)["finally"](function() { + return updateLocked = false; + }); + }, 1000); } - return $filter('mnoCurrency')(evaluation, currency); }; - w.settings.push(setting); - return $scope.deferred.resolve($scope.parentWidget); + w.format = function() { + return $timeout(function() { + var _highChartOptions; + _highChartOptions = { + chartType: 'line', + currency: w.metadata.currency, + period: getPeriod(), + showToday: true, + showLegend: false + }; + $scope.chart = new HighchartsFactory($scope.chartId(), w.content.chart.series, _highChartOptions); + $scope.chart.addXAxisOptions({ + defaults: w.metadata.xAxis, + callback: onZoom + }); + $scope.chart.removeLegend(); + return $scope.chart.render(); + }); + }; + return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('settingFormula', function() { + module.directive('widgetAccountsCashBalance', function() { return { restrict: 'A', - scope: { - parentWidget: '=', - deferred: '=' - }, - controller: 'SettingFormulaCtrl' + controller: 'WidgetAccountsCashBalanceCtrl' }; }); }).call(this); (function() { - var module, - indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }; + var module; - module = angular.module('impac.components.widgets-settings.hist-mode', []); + module = angular.module('impac.components.widgets.accounts-cash-projection', []); - module.controller('SettingHistModeCtrl', ["$scope", "$translate", "$timeout", "ImpacWidgetsSvc", "ImpacTheming", "ImpacUtilities", function($scope, $translate, $timeout, ImpacWidgetsSvc, ImpacTheming, ImpacUtilities) { - var buildCurrentLabel, setting, w; - w = $scope.parentWidget; - w.isHistoryMode = w.metadata && w.metadata.hist_parameters && w.metadata.hist_parameters.mode === 'history'; - $scope.forwardParams = { - accountingBehaviour: function() { - return $scope.accountingBehaviour; + module.controller('WidgetAccountsCashProjectionCtrl', ["$scope", "$q", "$filter", "$timeout", "ImpacKpisSvc", "ImpacWidgetsSvc", "ImpacAssets", "HighchartsFactory", "BoltResources", "ImpacMainSvc", function($scope, $q, $filter, $timeout, ImpacKpisSvc, ImpacWidgetsSvc, ImpacAssets, HighchartsFactory, BoltResources, ImpacMainSvc) { + var createUser, dateFilter, imgSrc, imgTemplate, legendFormatter, loadContacts, onClickBar, onClickLegend, onZoom, settingsPromises, todayUTC, updateLocked, w, zoomMetadata; + w = $scope.widget; + todayUTC = moment().startOf('day').add(moment().utcOffset(), 'minutes'); + updateLocked = false; + zoomMetadata = {}; + w.metadata.ranges = ['-60d', '-30d']; + dateFilter = function(timestamp) { + var pickedDate; + pickedDate = moment.utc(timestamp); + if (pickedDate <= todayUTC) { + return "lte " + (pickedDate.format('YYYY-MM-DD')); + } else { + return pickedDate.format('YYYY-MM-DD'); } }; - $scope.toggleHistMode = function(mode) { - var ref; - if ((w.isHistoryMode && mode === 'history') || (!w.isHistoryMode && mode === 'current')) { - return; - } - w.isHistoryMode = !w.isHistoryMode; - ImpacWidgetsSvc.updateWidgetSettings(w, false); - return ref = $scope.onToggle(), indexOf.call(angular.isDefined($scope.onToggle), ref) >= 0; + imgSrc = function(name) { + return ImpacAssets.get(_.camelCase(name + 'LegendIcon')); }; - buildCurrentLabel = function() { - var label, labels, needPrefix, prefix; - labels = ImpacTheming.get().widgetSettings.histModeChoser.currentLabels; - if (($scope.accountingBehaviour != null) && labels[$scope.accountingBehaviour]) { - needPrefix = !$scope.endDate || ($scope.endDate === moment().format('YYYY-MM-DD')); - label = labels[$scope.accountingBehaviour]; - prefix = labels[$scope.accountingBehaviour] + '.prefix'; - return $translate([prefix, label]).then(function(translations) { - return $scope.currentLabel = needPrefix ? translations[prefix] + " " + translations[label] : translations[label]; - }); - } else { - return $translate(labels["default"]).then(function(label) { - return $scope.currentLabel = label; + imgTemplate = function(src, name) { + return "
" + name; + }; + $scope.chartId = function() { + return "cashProjectionChart-" + w.id; + }; + $scope.orgDeferred = $q.defer(); + settingsPromises = [$scope.orgDeferred.promise]; + $scope.trxList = { + display: false, + updated: false, + transactions: [] + }; + $scope.contacts = []; + $scope.trxList.show = function() { + return $scope.trxList.display = true; + }; + $scope.trxList.hide = function() { + $scope.trxList.display = false; + if ($scope.trxList.updated) { + return ImpacWidgetsSvc.show(w).then(function() { + return $scope.trxList.updated = false; }); } }; - setting = {}; - setting.key = "hist-mode"; - setting.isInitialized = false; - setting.initialize = function() { - return $timeout(function() { - var mode; - if ((w.metadata != null) && (w.metadata.hist_parameters != null) && (mode = w.metadata.hist_parameters.mode)) { - w.isHistoryMode = mode === 'history' ? true : false; + $scope.trxList.fetch = function(currentPage) { + var params; + if (currentPage == null) { + currentPage = 1; + } + params = angular.merge($scope.trxList.params, { + metadata: _.pick(w.metadata, 'organization_ids'), + page: { + number: currentPage + }, + sort: '-expected_payment_date', + currency: w.metadata.currency + }); + return BoltResources.index(w.metadata.bolt_path, $scope.trxList.resources, params).then(function(response) { + var contactName, i, len, ref, trx; + _.remove($scope.trxList.transactions, function() { + return true; + }); + ref = response.data.data; + for (i = 0, len = ref.length; i < len; i++) { + trx = ref[i]; + contactName = ''; + if (trx.relationships && trx.relationships.contact && trx.relationships.contact.data) { + contactName = _.find(response.data.included, function(includedContact) { + return includedContact.id === trx.relationships.contact.data.id; + }).attributes.name; + } + $scope.trxList.transactions.push(angular.merge(trx.attributes, { + id: trx.id, + contact_name: contactName + })); } - buildCurrentLabel(); - $scope.forwardParams.histParams = w.metadata && w.metadata.hist_parameters; - setting.isInitialized = true; - return $scope; + return $scope.trxList.totalRecords = response.data.meta.record_count; + })["finally"](function() { + return $scope.trxList.show(); }); }; - setting.toMetadata = function() { - var mode; - mode = w.isHistoryMode ? 'history' : 'current'; - return { - hist_parameters: { - mode: mode - } + $scope.trxList.updateParams = function(resources, filter) { + $scope.trxList.resources = resources; + return $scope.trxList.params = { + include: 'contact', + fields: { + contacts: 'name' + }, + filter: filter }; }; - w.settings.push(setting); - return $scope.deferred.resolve($scope.parentWidget); - }]); - - module.directive('settingHistMode', ["$templateCache", function($templateCache) { - return { - restrict: 'A', - scope: { - parentWidget: '=', - deferred: '=', - onToggle: '&', - accountingBehaviour: '@?', - endDate: '=?' - }, - template: $templateCache.get('widgets-settings/hist-mode.tmpl.html'), - controller: 'SettingHistModeCtrl' - }; - }]); - -}).call(this); - -(function() { - var module; - - module = angular.module('impac.components.widgets-settings.limit-entries', []); - - module.controller('SettingLimitEntriesCtrl', ["$scope", function($scope) { - var setting; - setting = {}; - setting.key = 'limit-entries'; - setting.initialize = function() { - return true; - }; - setting.toMetadata = function() { - return { - limit_entries: $scope.selected + $scope.trxList.showAll = function(resources) { + var filter; + if (resources == null) { + resources = 'invoices'; + } + filter = { + status: ['AUTHORISED', 'APPROVED', 'SUBMITTED', 'FORECAST'], + reconciliation_status: 'UNRECONCILED' }; + $scope.trxList.updateParams(resources, filter); + return $scope.trxList.fetch(); }; - $scope.parentWidget.settings.push(setting); - return $scope.deferred.resolve(setting); - }]); - - module.directive('settingLimitEntries', ["$templateCache", "ImpacWidgetsSvc", function($templateCache, ImpacWidgetsSvc) { - return { - restrict: 'A', - scope: { - parentWidget: '=', - deferred: '=', - selected: '=', - max: '=?', - options: '=?', - entriesLabel: '=?' - }, - link: function(scope, elements, attrs) { - if (!((scope.options != null) && scope.options.length > 0)) { - scope.options = [5, 15, 50]; - } - scope.selectOption = function(anOption) { - scope.selected = anOption; - return ImpacWidgetsSvc.updateWidgetSettings(scope.parentWidget, false); - }; - return scope.isOptionValid = function(anOption) { - return (scope.max == null) || anOption < scope.max; - }; - }, - controller: 'SettingLimitEntriesCtrl', - template: $templateCache.get('widgets-settings/limit-entries.tmpl.html') + $scope.trxList.updateExpectedDate = function(trxId, date) { + return BoltResources.update(w.metadata.bolt_path, $scope.trxList.resources, trxId, { + expected_payment_date: moment(date).format('YYYY-MM-DD') + }).then(function() { + return $scope.trxList.updated = true; + }); }; - }]); - -}).call(this); - -(function() { - var module; - - module = angular.module('impac.components.widgets-settings.offsets', []); - - module.directive('settingOffsets', ["$templateCache", "ImpacUtilities", function($templateCache, ImpacUtilities) { - return { - restrict: 'A', - scope: { - parentWidget: '=', - deferred: '=', - offsetsKey: '@', - initialOffsets: '=', - currency: '=', - intervalsCount: '=', - period: '=', - showIntervalsMult: '=', - textPlaceholder: '@?' - }, - template: $templateCache.get('widgets-settings/offsets.tmpl.html'), - link: function(scope) { - var authorized_regex, computedFormula, placeholder, setting, w; - w = scope.parentWidget; - authorized_regex = new RegExp("^(\\{|\\d|\\}|\\/|\\+|-|\\*|\\(|\\)|\\s|\\.)*$"); - setting = { - key: "offsets-" + scope.offsetsKey - }; - setting.initialize = function() { - var i, len, offsetValue, ref; - scope.offsets = []; - ref = scope.initialOffsets || []; - for (i = 0, len = ref.length; i < len; i++) { - offsetValue = ref[i]; - scope.offsets.push(offsetValue); - } - scope.offsetFormula = ""; - scope.periodWord = ImpacUtilities.getPeriodWord(scope.period); - return scope.placeholder = placeholder(scope.period || 'MONTHLY'); - }; - setting.toMetadata = function() { - var metadata; - metadata = { - offset: {} - }; - metadata.offset[scope.offsetsKey] = scope.offsets; - return metadata; - }; - scope.addOffset = function() { - var result; - result = computedFormula(); - if (result) { - scope.offsets.push(result); - } - return scope.offsetFormula = ""; - }; - scope.removeOffset = function(offsetIndex) { - return scope.offsets.splice(offsetIndex, 1); - }; - scope.addOffsetOnEnter = function(event) { - if (event.keyCode === 13) { - return scope.addOffset(); - } - }; - placeholder = function(inputPeriod) { - var period; - if (scope.textPlaceholder != null) { - return scope.textPlaceholder; - } - period = inputPeriod.charAt(0).toUpperCase() + inputPeriod.slice(1).toLowerCase(); - return period + " adjustment"; - }; - computedFormula = function() { - if (scope.offsetFormula.match(authorized_regex)) { - return eval(scope.offsetFormula); - } - }; - if (w) { - w.settings.push(setting); - } - return scope.deferred.resolve(setting); + $scope.trxList.changeResourcesType = function(resourcesType) { + if (resourcesType === $scope.trxList.resources) { + return; } + $scope.trxList.resources = resourcesType; + return $scope.trxList.fetch(); }; - }]); - -}).call(this); - -(function() { - var module; - - module = angular.module('impac.components.widgets-settings.organizations', []); - - module.controller('SettingOrganizationsCtrl', ["$scope", "$log", "ImpacDashboardsSvc", "ImpacMainSvc", "ImpacWidgetsSvc", function($scope, $log, ImpacDashboardsSvc, ImpacMainSvc, ImpacWidgetsSvc) { - var resetSelectedOrgs, setting, w; - w = $scope.parentWidget; - w.selectedOrganizations = {}; - $scope.mode || ($scope.mode = 'multiple'); - $scope.multiOrgMode = function() { - return $scope.mode === 'multiple'; + $scope.trxList.deleteTransaction = function(resourcesType, trxId) { + return BoltResources.destroy(w.metadata.bolt_path, resourcesType, trxId).then(function() { + return $scope.trxList.updated = true; + }); }; - $scope.singleOrgMode = function() { - return $scope.mode === 'single'; + $scope.trxList.updateSchedulableTransactions = function(resourcesType, trx) { + return $scope.trxList.updated = true; }; - resetSelectedOrgs = function() { - return w.selectedOrganizations = _.mapValues(w.selectedOrganizations, function() { - return false; + $scope.trxList.deleteChildrenTransactions = function(resourcesType, trxId) { + return BoltResources.update(w.metadata.bolt_path, resourcesType, trxId, { + recurring: false + }).then(function() { + return $scope.trxList.updated = true; }); }; - $scope.isOrganizationSelected = function(orgUid) { - return !!w.selectedOrganizations[orgUid]; + $scope.trendList = { + display: false, + updated: false, + trends: [], + params: {} }; - $scope.toggleSelectOrganization = function(orgUid) { - if ($scope.multiOrgMode()) { - w.selectedOrganizations[orgUid] = !w.selectedOrganizations[orgUid]; - if (angular.isDefined($scope.onSelect)) { - return $scope.onSelect({ - orgs: w.selectedOrganizations - }); - } - } else if ($scope.singleOrgMode()) { - resetSelectedOrgs(); - return w.selectedOrganizations[orgUid] = true; - } + $scope.trendList.show = function() { + return $scope.trendList.display = true; }; - setting = {}; - setting.key = "organizations"; - setting.isInitialized = false; - setting.initialize = function() { - return ImpacDashboardsSvc.load().then(function(config) { - var currentDashboard, currentOrganization, forceReload, i, len, org, ref, widgetOrgIds; - currentDashboard = config.currentDashboard; - $scope.dashboardOrganizations = _.sortBy(currentDashboard.data_sources, function(org) { - return org.label.toLowerCase(); + $scope.trendList.hide = function() { + $scope.trendList.display = false; + if ($scope.trendList.updated) { + return ImpacWidgetsSvc.show(w).then(function() { + return $scope.trendList.updated = false; }); - if (!((w.metadata != null) && (w.metadata.organization_ids != null))) { - return; + } + }; + $scope.trendList.fetch = function(currentPage) { + var params; + if (currentPage == null) { + currentPage = 1; + } + params = angular.merge($scope.trendList.params, { + metadata: _.pick(w.metadata, 'organization_ids'), + page: { + number: currentPage } - widgetOrgIds = w.metadata.organization_ids; - if ($scope.singleOrgMode()) { - resetSelectedOrgs(); - if (widgetOrgIds.length > 1) { - currentOrganization = ImpacMainSvc.config.currentOrganization; - w.selectedOrganizations[currentOrganization.uid] = true; - forceReload = true; - } else { - w.selectedOrganizations[widgetOrgIds[0]] = true; - } - } else if ($scope.multiOrgMode()) { - ref = $scope.dashboardOrganizations; - for (i = 0, len = ref.length; i < len; i++) { - org = ref[i]; - w.selectedOrganizations[org.uid] = _.contains(widgetOrgIds, org.uid); + }); + return BoltResources.index(w.metadata.bolt_path, 'trends', params).then(function(response) { + var i, len, ref, trend; + _.remove($scope.trendList.trends, function() { + return true; + }); + ref = response.data.data; + for (i = 0, len = ref.length; i < len; i++) { + trend = ref[i]; + if (!trend.period) { + trend.period = 'once'; } + $scope.trendList.trends.push(angular.merge(trend.attributes, { + id: trend.id + })); } - setting.isInitialized = true; - if (forceReload) { - return ImpacWidgetsSvc.updateWidgetSettings(w, true); - } + return $scope.trendList.totalRecords = response.data.meta.record_count; + })["finally"](function() { + return $scope.trendList.show(); }); }; - setting.toMetadata = function() { - var newOrganizations; - newOrganizations = _.compact(_.map(w.selectedOrganizations, function(checked, uid) { - if (checked) { - return uid; - } - })); - if (_.isEmpty(newOrganizations)) { - newOrganizations = [_.first($scope.dashboardOrganizations).uid]; - } - return { - organization_ids: newOrganizations - }; + $scope.trendList.showAll = function() { + return $scope.trendList.fetch(); }; - w.settings.push(setting); - return $scope.deferred.resolve($scope.parentWidget); - }]); - - module.directive('settingOrganizations', ["$templateCache", function($templateCache) { - return { - restrict: 'A', - scope: { - parentWidget: '=', - mode: '@?', - deferred: '=', - onSelect: '&?' - }, - template: $templateCache.get('widgets-settings/organizations.tmpl.html'), - controller: 'SettingOrganizationsCtrl' + $scope.trendList.updateTrend = function(trend) { + if (trend.period === 'once') { + trend.period = null; + } + return BoltResources.update(w.metadata.bolt_path, 'trends', trend.id, _.omit(trend, 'id')).then(function() { + return $scope.trendList.updated = true; + }); }; - }]); - -}).call(this); - -(function() { - var module; - - module = angular.module('impac.components.widgets-settings.param-selector', []); - - module.controller('SettingParamSelectorCtrl', ["$scope", "ImpacWidgetsSvc", function($scope, ImpacWidgetsSvc) { - var setting, w; - $scope.showOptions = false; - $scope.toggleShowOptions = function() { - return $scope.showOptions = !$scope.showOptions; + $scope.trendList.deleteTrend = function(trendId) { + _.remove($scope.trendList.trends, function(trend) { + return trend.id === trendId; + }); + return BoltResources.destroy(w.metadata.bolt_path, 'trends', trendId).then(function() { + return $scope.trendList.updated = true; + }); }; - $scope.onInit = function() { - $scope.selectedOption = {}; - return angular.extend($scope.selectedOption, $scope.selected); + $scope.chartDeferred = $q.defer(); + $scope.chartPromise = $scope.chartDeferred.promise; + $scope.addForecastPopup = { + resourcesType: 'invoices', + display: false, + hide: function() { + return this.display = false; + }, + show: function() { + return this.display = true; + } }; - $scope.selectOption = function(anOption) { - if (anOption.value !== $scope.selected.value) { - angular.extend($scope.selected, anOption); - ImpacWidgetsSvc.updateWidgetSettings($scope.parentWidget, !$scope.noReload); - if (angular.isDefined($scope.onSelect)) { - $scope.onSelect(); + $scope.addForecastPopup.createTransaction = function(trx, resourcesType) { + return BoltResources.create(w.metadata.bolt_path, resourcesType, { + title: trx.title, + transaction_number: "FOR-" + (Math.ceil(Math.random() * 10000)), + amount: trx.amount, + balance: trx.amount, + transaction_date: moment().format('YYYY-MM-DD'), + due_date: moment(trx.datePicker.date).format('YYYY-MM-DD'), + status: 'FORECAST', + recurring: trx.recurring, + recurring_pattern: trx.recurring_pattern, + recurring_end_date: trx.recurring_end_date ? moment(trx.recurring_end_date).format('YYYY-MM-DD') : null, + reconciliation_status: 'UNRECONCILED', + currency: w.metadata.currency + }, { + company: { + data: { + type: 'companies', + id: $scope.firstCompanyId + } + }, + contact: { + data: { + type: 'contacts', + id: trx.contact.id + } } - } - return $scope.toggleShowOptions(); + }).then(function() { + return ImpacWidgetsSvc.show(w); + }); }; - $scope.getTruncateValue = function() { - return parseInt($scope.truncateNo) || 20; + $scope.dupTrxList = { + display: false, + updated: false, + transactions: [] }; - w = $scope.parentWidget; - setting = {}; - setting.key = "param-selector"; - setting.isInitialized = false; - setting.initialize = function() { - if (w.content != null) { - return setting.isInitialized = true; - } + $scope.dupTrxList.show = function() { + return $scope.dupTrxList.display = true; }; - setting.toMetadata = function() { - var param; - param = {}; - if (!_.isEmpty($scope.selected)) { - param[$scope.param] = $scope.selected.value; + $scope.dupTrxList.hide = function() { + $scope.dupTrxList.display = false; + if ($scope.dupTrxList.updated) { + return ImpacWidgetsSvc.show(w).then(function() { + return $scope.dupTrxList.updated = false; + }); } - return param; }; - w.settings.push(setting); - return $scope.deferred.resolve($scope.parentWidget); - }]); - - module.directive('settingParamSelector', ["$templateCache", function($templateCache) { - return { - restrict: 'A', - scope: { - parentWidget: '=', - deferred: '=', - param: '@', - options: '=', - selected: '=', - truncateNo: '@', - onSelect: '&' - }, - link: function(scope, elements, attrs) { - scope.noReload = typeof attrs.noReload !== 'undefined'; - return scope.truncateNo = attrs.truncateNo || 20; - }, - template: function(elements, attrs) { - return $templateCache.get(attrs.classic ? 'widgets-settings/param-selector-classic.tmpl.html' : 'widgets-settings/param-selector.tmpl.html'); - }, - controller: 'SettingParamSelectorCtrl' + $scope.dupTrxList.fetch = function(currentPage) { + var params; + if (currentPage == null) { + currentPage = 1; + } + params = angular.merge($scope.dupTrxList.params, { + metadata: _.pick(w.metadata, 'organization_ids'), + page: { + number: currentPage + } + }); + return BoltResources.index(w.metadata.bolt_path, $scope.dupTrxList.resources, params).then(function(response) { + var i, len, ref, trx; + _.remove($scope.dupTrxList.transactions, function() { + return true; + }); + ref = response.data.data; + for (i = 0, len = ref.length; i < len; i++) { + trx = ref[i]; + $scope.dupTrxList.transactions.push(angular.merge(trx.attributes, { + id: trx.id + })); + } + return $scope.dupTrxList.totalRecords = response.data.meta.record_count; + })["finally"](function() { + return $scope.dupTrxList.show(); + }); }; - }]); - -}).call(this); - -(function() { - var module; - - module = angular.module('impac.components.widgets-settings.params-checkboxes', []); - - module.controller('SettingParamsCheckboxesCtrl', ["$scope", function($scope) { - var setting, w; - w = $scope.parentWidget; - setting = {}; - setting.key = "params-checkboxes"; - setting.initialize = function() {}; - setting.toMetadata = function() { - var param; - param = {}; - param[$scope.param] = _.map($scope.options, function(opt) { - return { - id: opt.id, - value: opt.value - }; + $scope.dupTrxList.updateParams = function(resources, filter) { + $scope.dupTrxList.resources = resources; + return $scope.dupTrxList.params = { + filter: filter + }; + }; + $scope.dupTrxList.showAll = function(resources) { + var filter; + if (resources == null) { + resources = 'invoices'; + } + filter = { + status: ['FORECAST'], + reconciliation_status: 'RECONCILING' + }; + $scope.dupTrxList.updateParams(resources, filter); + return $scope.dupTrxList.fetch(); + }; + $scope.dupTrxList.updateDuplicateTransaction = function(dupTrxId, action) { + _.remove($scope.dupTrxList.transactions, function(dupTrx) { + return dupTrx.id === dupTrxId; + }); + return BoltResources.patch(w.metadata.bolt_path, $scope.dupTrxList.resources, dupTrxId, action).then(function() { + return $scope.dupTrxList.updated = true; }); - return param; }; - w.settings.push(setting); - return $scope.deferred.resolve($scope.parentWidget); - }]); - - module.directive('settingParamsCheckboxes', ["$templateCache", function($templateCache) { - return { - restrict: 'A', - scope: { - parentWidget: '=', - deferred: '=', - param: '@', - options: '=' + $scope.dupTrxList.changeResourcesType = function(resourcesType) { + if (resourcesType === $scope.dupTrxList.resources) { + return; + } + $scope.dupTrxList.resources = resourcesType; + return $scope.dupTrxList.fetch(); + }; + $scope.addTrendPopup = { + display: false, + show: function() { + return this.display = true; }, - template: $templateCache.get('widgets-settings/params-checkboxes.tmpl.html'), - controller: 'SettingParamsCheckboxesCtrl' + hide: function() { + return this.display = false; + } }; - }]); - -}).call(this); - -(function() { - var module; - - module = angular.module('impac.components.widgets-settings.params-picker', []); - - module.controller('SettingParamsPickerCtrl', ["$scope", function($scope) { - var setting, w; - w = $scope.parentWidget; - setting = {}; - setting.key = "params-picker"; - setting.isInitialized = false; - setting.initialize = function() { - $scope.sortableOptions = { - 'ui-floating': true, - tolerance: 'pointer' - }; - $scope.applyToDashboard = w.metadata[$scope.param] && w.metadata[$scope.param].reach === 'dashboard'; - $scope.toggleReach = function() { - return setting.reach = $scope.applyToDashboard ? 'dashboard' : 'widget'; - }; - $scope.toggleReach(); - if (_.isEmpty($scope.options)) { - return setting.isInitialized = true; + $scope.addTrendPopup.lastDate = function(offset, periodicity) { + var period; + period = null; + if (offset === -1) { + return; + } + switch (periodicity) { + case 'once': + return null; + case 'daily': + period = 'days'; + break; + case 'weekly': + period = 'weeks'; + break; + case 'monthly': + period = 'months'; + break; + case 'yearly': + period = 'years'; } + return moment().add(offset, period).format('YYYY-MM-DD'); }; - setting.toMetadata = function() { - var param; - param = {}; - param[$scope.param] = { - values: _.compact(_.map($scope.options, function(statusOption) { - if (statusOption.selected) { - return statusOption.value || statusOption.label; + $scope.addTrendPopup.createTrend = function(trend) { + var last_apply_date; + if (Number.isInteger(trend.untilDate)) { + last_apply_date = $scope.addTrendPopup.lastDate(trend.untilDate, trend.period); + } else { + last_apply_date = trend.untilDate; + } + return BoltResources.create(w.metadata.bolt_path, 'trends', { + name: trend.name, + rate: trend.rate, + period: trend.period === 'once' ? null : trend.period, + start_date: trend.startDate, + last_apply_date: last_apply_date + }, { + company: { + data: { + type: 'companies', + id: $scope.firstCompanyId } - })), - reach: setting.reach - }; - return param; + }, + user: { + data: { + type: 'users', + id: $scope.userId + } + } + }).then(function() { + return ImpacWidgetsSvc.show(w); + }); }; - w.settings.push(setting); - return $scope.deferred.resolve($scope.parentWidget); - }]); - - module.directive('settingParamsPicker', ["$templateCache", "$translate", function($templateCache, $translate) { - return { - restrict: 'A', - scope: { - parentWidget: '=', - deferred: '=', - param: '@', - options: '=', - hasReach: '=', - description: '@' - }, - link: function(scope, elements, attrs) { - var paramText; - paramText = $translate.instant('impac.widget.settings.params-picker.' + scope.param); - scope.formattedParam = _.includes(paramText, 'impac.widget.settings.params-picker') ? scope.param.replace(/_/g, ' ') : paramText; - if (scope.description == null) { - return scope.description = $translate.instant('impac.widget.settings.params-picker.description'); + onClickBar = function(event) { + var filter, resources, series; + series = this; + resources = (function() { + switch (series.userOptions.stack) { + case 'Payables': + return 'bills'; + case 'Receivables': + return 'invoices'; } - }, - template: $templateCache.get('widgets-settings/params-picker.tmpl.html'), - controller: 'SettingParamsPickerCtrl' + })(); + if (resources == null) { + return; + } + filter = { + expected_payment_date: dateFilter(event.point.x), + status: ['AUTHORISED', 'APPROVED', 'SUBMITTED', 'FORECAST'], + reconciliation_status: 'UNRECONCILED' + }; + $scope.trxList.updateParams(resources, filter); + return $scope.trxList.fetch(); }; - }]); - + legendFormatter = function() { + var name; + name = this.name; + if (name !== 'Projected cash') { + return imgTemplate(imgSrc(name), name); + } + return imgTemplate(imgSrc(name), name) + '
' + imgTemplate(imgSrc('cashFlow'), 'Cash flow'); + }; + onZoom = function(event) { + zoomMetadata = angular.merge(w.metadata, { + xAxis: { + max: event.max, + min: event.min + } + }); + if (!updateLocked) { + updateLocked = true; + return $timeout(function() { + return ImpacWidgetsSvc.update(w, { + metadata: zoomMetadata + }, false)["finally"](function() { + return updateLocked = false; + }); + }, 1000); + } + }; + onClickLegend = function() { + var i, len, ref, results, s, series; + series = this; + ref = $scope.chart.hc.series; + results = []; + for (i = 0, len = ref.length; i < len; i++) { + s = ref[i]; + if (s.userOptions.linkedTo !== series.name) { + continue; + } + if (series.visible) { + results.push(s.hide()); + } else { + results.push(s.show()); + } + } + return results; + }; + loadContacts = function() { + return BoltResources.index(w.metadata.bolt_path, 'contacts', { + metadata: _.pick(w.metadata, 'organization_ids') + }).then(function(response) { + return $scope.contacts = response.data.data; + }); + }; + createUser = function() { + if ($scope.firstCompanyId) { + return BoltResources.create(w.metadata.bolt_path, 'users', { + first_name: ImpacMainSvc.config.userData.name, + last_name: ImpacMainSvc.config.userData.surname, + email: ImpacMainSvc.config.userData.email + }, { + companies: { + data: [ + { + type: 'companies', + id: $scope.firstCompanyId + } + ] + } + }).then(function(response) { + return $scope.userId = response.data.data.id; + }); + } + }; + w.initContext = function() { + var cashFlowSerie; + cashFlowSerie = _.find(w.content.chart.series, function(serie) { + return serie.name === "Cash flow"; + }); + cashFlowSerie.data = []; + cashFlowSerie.type = 'area'; + cashFlowSerie.showInLegend = false; + BoltResources.index(w.metadata.bolt_path, 'companies', { + metadata: _.pick(w.metadata, 'organization_ids') + }).then(function(response) { + if (_.isEmpty(response.data.data)) { + w.demoData = true; + } else { + w.demoData = false; + $scope.firstCompanyId = response.data.data[0].id; + } + return loadContacts(); + }); + return BoltResources.index(w.metadata.bolt_path, 'users', { + filter: { + email: ImpacMainSvc.config.userData.email + }, + metadata: _.pick(w.metadata, 'organization_ids') + }).then(function(response) { + if (response.data.meta.record_count > 0) { + return $scope.userId = response.data.data[0].id; + } else { + return createUser(); + } + }); + }; + w.format = function() { + var _highChartOptions; + _highChartOptions = { + chartType: 'line', + currency: w.metadata.currency, + showToday: true + }; + $scope.chart = new HighchartsFactory($scope.chartId(), w.content.chart.series, _highChartOptions); + $scope.chart.addCustomLegend(legendFormatter); + $scope.chart.addSeriesEvent('click', onClickBar); + $scope.chart.addSeriesEvent('legendItemClick', onClickLegend); + $scope.chart.addXAxisOptions({ + defaults: w.metadata.xAxis, + callback: onZoom + }); + $scope.chart.render(); + return $scope.chartDeferred.notify($scope.chart); + }; + return $scope.widgetDeferred.resolve(settingsPromises); + }]); + + module.directive('widgetAccountsCashProjection', function() { + return { + restrict: 'A', + controller: 'WidgetAccountsCashProjectionCtrl' + }; + }); + }).call(this); (function() { var module; - module = angular.module('impac.components.widgets-settings.tag-filter', ['ngTagsInput']); + module = angular.module('impac.components.widgets.accounts-cash-summary', []); - module.directive('settingTagFilter', ["$templateCache", "$timeout", function($templateCache, $timeout) { - return { - restrict: 'A', - scope: { - parentWidget: '=', - deferred: '=' - }, - template: $templateCache.get('widgets-settings/tag-filter.tmpl.html'), - link: function(scope) { - var asciiParseTag, filterToSettingTags, initiateAutoComplete, loadRules, setting, w; - w = scope.parentWidget; - setting = {}; - setting.key = "tag-filter"; - scope.settingsTags = []; - setting.initialize = function() { - return $timeout(function() { - loadRules(); - initiateAutoComplete(); - return true; - }); - }; - setting.toMetadata = function() { - var filterQuery, filterQueryRules; - filterQueryRules = []; - filterQuery = { - condition: 'OR', - rules: filterQueryRules - }; - angular.forEach(scope.settingsTags, function(settingsTag) { - var filterQueryCondition; - filterQueryCondition = { - condition: 'AND', - rules: [] - }; - angular.forEach(settingsTag.tags, function(filterItem) { - var ruleTag; - ruleTag = asciiParseTag(filterItem, true); - return filterQueryCondition.rules.push(ruleTag); + module.controller('WidgetAccountsCashSummaryCtrl', ["$scope", "$q", "ChartFormatterSvc", "$filter", "ImpacWidgetsSvc", "$translate", function($scope, $q, ChartFormatterSvc, $filter, ImpacWidgetsSvc, $translate) { + var fetchElement, getIdentifier, matchElementToSelectedElement, selectedElementSetting, settingsPromises, sortAccountsBy, sortData, unCollapsedSetting, w; + w = $scope.widget; + $scope.orgDeferred = $q.defer(); + $scope.timePeriodDeferred = $q.defer(); + $scope.widthDeferred = $q.defer(); + $scope.chartDeferred = $q.defer(); + settingsPromises = [$scope.orgDeferred.promise, $scope.timePeriodDeferred.promise, $scope.widthDeferred.promise, $scope.chartDeferred.promise]; + $scope.ascending = true; + $scope.sortedColumn = 'account'; + w.initContext = function() { + if ($scope.isDataFound = angular.isDefined(w.content) && !_.isEmpty(w.content.summary) && !_.isEmpty(w.content.dates)) { + $scope.dates = w.content.dates; + $scope.unCollapsed = w.metadata.unCollapsed || []; + _.map(w.content.summary, function(statement) { + if (statement.name != null) { + return $translate('impac.widget.account_cash_smry.summary.' + statement.name.toLowerCase()).then(function(translation) { + return statement.label = translation; }); - if (settingsTag.tags.length !== 0) { - return filterQueryRules.push(filterQueryCondition); - } - }); - if (filterQuery.rules.length === 0) { - filterQuery = {}; - } - return { - filter_query: filterQuery - }; - }; - filterToSettingTags = function(filterQuery) { - var settingsTags; - if (_.isEmpty(filterQuery)) { - return; } - settingsTags = []; - angular.forEach(filterQuery.rules, function(filterQueryRule) { - var settingRule; - settingRule = { - operator: 'OR', - tags: [] - }; - angular.forEach(filterQueryRule.rules, function(rule) { - var ruletag, tagtext; - rule = asciiParseTag(rule); - tagtext = _.compact([rule.name, rule.value]).join(":"); - ruletag = { - value: rule.value, - text: tagtext - }; - if (rule.name != null) { - ruletag.name = rule.name; - } - return settingRule.tags.push(ruletag); - }); - return settingsTags.push(settingRule); + }); + $translate('impac.widget.account_cash_smry.cash_flow.' + $scope.widget.metadata.hist_parameters.period.toLowerCase()).then(function(translation) { + return $scope.widget.metadata.hist_parameters.period_translation = translation; + }); + if (w.metadata.selectedElement) { + $scope.selectedElement = _.find(w.content.summary, function(statement) { + return statement.name === w.metadata.selectedElement; }); - return settingsTags; - }; - loadRules = function() { - if (_.isEmpty(w.metadata.filter_query)) { - return; - } - return scope.settingsTags = filterToSettingTags(w.metadata.filter_query); - }; - initiateAutoComplete = function() { - var autotags, org, tag_hash, tags; - tags = w.content.available_tags || []; - autotags = []; - for (org in tags) { - tag_hash = tags[org]; - angular.forEach(tag_hash.tag_references, function(tag_ref) { - tag_ref = asciiParseTag(tag_ref); - return angular.forEach(tag_ref.tag_reference_values, function(tag) { - var ruletag, tagtext; - tag = asciiParseTag(tag); - tagtext = _.compact([tag_ref.name, tag.value]).join(":"); - ruletag = { - text: tagtext, - value: tag.value - }; - if (tag_ref.name != null) { - ruletag.name = tag_ref.name; - } - return autotags.push(ruletag); - }); - }); - } - return scope.loadTagList = function(query) { - return _.filter(autotags, function(e) { - return e.text.toLowerCase().indexOf(query.toLowerCase()) > -1; - }); - }; - }; - asciiParseTag = function(rule, encode) { - var meth; - if (encode == null) { - encode = false; - } - meth = encode ? encodeURIComponent : decodeURIComponent; - return _.inject(rule, function(res, v, k) { - if (_.isString(v)) { - return (res[k] = meth(v)) && res; - } else { - return (res[k] = v) && res; + $scope.selectedElement || ($scope.selectedElement = fetchElement(w.content.summary)); + } + return sortData(); + } + }; + $scope.getLastDate = function() { + if ($scope.dates != null) { + return $scope.dates[$scope.dates.length - 1]; + } + }; + $scope.getPrevDate = function() { + if ($scope.dates != null) { + return $scope.dates[$scope.dates.length - 2]; + } + }; + $scope.getLastValue = function(element) { + if (element.cash_flows != null) { + return _.last(element.cash_flows); + } + }; + $scope.formatVariance = function(aVariance) { + if (aVariance != null) { + if (aVariance > 0) { + return "+" + aVariance + " %"; + } else { + return aVariance + " %"; + } + } else { + return "-"; + } + }; + $scope.getLastVariance = function(element) { + if ((element.variances != null) && (_.last(element.variances) != null)) { + return $scope.formatVariance(_.last(element.variances)); + } else { + return "-"; + } + }; + $scope.getVarianceClassColor = function(aVariance) { + if (parseInt(aVariance) > 0) { + return 'positive'; + } else if (parseInt(aVariance) < 0) { + return 'negative'; + } else { + return null; + } + }; + $scope.getName = function(element) { + if ((element != null) && (element.name != null)) { + return element.name.replace(/_/g, " "); + } + }; + $scope.sort = function(col) { + if ($scope.sortedColumn === col) { + $scope.ascending = !$scope.ascending; + } else { + $scope.ascending = true; + $scope.sortedColumn = col; + } + return sortData(); + }; + $scope.toggleSelectedElement = function(element, statementName) { + if (statementName == null) { + statementName = null; + } + if ($scope.isSelected(element, statementName)) { + $scope.selectedElement = null; + if (w.isExpanded()) { + return w.toggleExpanded(); + } else { + return ImpacWidgetsSvc.updateWidgetSettings(w, false); + } + } else { + $scope.selectedElement = angular.copy(element); + $scope.selectedElement.category = statementName; + w.format(); + if (!w.isExpanded()) { + return w.toggleExpanded(); + } else { + return ImpacWidgetsSvc.updateWidgetSettings(w, false); + } + } + }; + $scope.isSelected = function(element, statementName) { + if (statementName == null) { + statementName = null; + } + return (element != null) && ($scope.selectedElement != null) && (matchElementToSelectedElement(element, statementName, $scope.selectedElement)); + }; + $scope.toggleCollapsed = function(element) { + if ((element != null) && (element.name != null)) { + if (_.find($scope.unCollapsed, (function(name) { + return element.name === name; + }))) { + $scope.unCollapsed = _.reject($scope.unCollapsed, function(name) { + return name === element.name; + }); + } else { + $scope.unCollapsed.push(element.name); + } + return ImpacWidgetsSvc.updateWidgetSettings(w, false); + } + }; + $scope.isCollapsed = function(element) { + if ((element != null) && (element.name != null)) { + if (_.find($scope.unCollapsed, (function(name) { + return element.name === name; + }))) { + return false; + } else { + return true; + } + if ($scope.selectedElement == null) { + return w.width = 6; + } + } + }; + $scope.getSelectLineColor = function(elem) { + return ChartFormatterSvc.getColor(0); + }; + fetchElement = function(statements) { + var element, i, len, statement; + for (i = 0, len = statements.length; i < len; i++) { + statement = statements[i]; + if (statement.accounts == null) { + continue; + } + element = _.find(statement.accounts, function(acc) { + return getIdentifier(acc, statement.name) === w.metadata.selectedElement; + }); + if (element != null) { + element = angular.merge(angular.copy(element), { + category: statement.name + }); + return element; + } + } + }; + matchElementToSelectedElement = function(element, elementCategory, sElem) { + if (elementCategory == null) { + elementCategory = null; + } + return getIdentifier(element, elementCategory) === getIdentifier(sElem); + }; + getIdentifier = function(element, category) { + var id; + if (category == null) { + category = null; + } + id = element.id || element.name; + category || (category = element.category); + if (!category) { + return id; + } + return category + "-" + id; + }; + sortAccountsBy = function(getElem) { + return angular.forEach(w.content.summary, function(sElem) { + if (sElem.accounts) { + return sElem.accounts.sort(function(a, b) { + var res; + res = getElem(a) > getElem(b) ? 1 : getElem(a) < getElem(b) ? -1 : 0; + if (!$scope.ascending) { + res *= -1; } - }, {}); - }; - scope.addRule = function() { - return scope.settingsTags.push({ - 'operator': 'OR', - 'tags': [] + return res; }); + } + }); + }; + sortData = function() { + if ($scope.sortedColumn === 'account') { + return sortAccountsBy(function(el) { + return el.name; + }); + } else if ($scope.sortedColumn === 'total') { + return sortAccountsBy(function(el) { + return $scope.getLastValue(el); + }); + } else if ($scope.sortedColumn === 'variance') { + return sortAccountsBy(function(el) { + return $scope.getLastVariance(el); + }); + } + }; + $scope.drawTrigger = $q.defer(); + w.format = function() { + var all_values_are_positive, chartData, data, dates, inputData, options, period; + if ($scope.isDataFound && ($scope.selectedElement != null)) { + data = angular.copy($scope.selectedElement); + period = null; + if ((w.metadata != null) && (w.metadata.hist_parameters != null)) { + period = w.metadata.hist_parameters.period; + } + dates = _.map(w.content.dates, function(date) { + return $filter('momentDate')(date, period); + }); + inputData = { + labels: dates, + datasets: [ + { + title: data.label, + values: data.cash_flows + } + ] }; - scope.delRule = function(index) { - return scope.settingsTags.splice(index, 1); + all_values_are_positive = true; + angular.forEach(data.cash_flows, function(value) { + return all_values_are_positive && (all_values_are_positive = value >= 0); + }); + options = { + scaleBeginAtZero: all_values_are_positive, + showXLabels: true }; - w.settings.push(setting); - return scope.deferred.resolve(setting); + chartData = ChartFormatterSvc.combinedBarChart(inputData, options); + return $scope.drawTrigger.notify(chartData); } }; - }]); - -}).call(this); - -(function() { - var module; - - module = angular.module('impac.components.widgets-settings.time-period', []); - - module.directive('settingTimePeriod', ["$templateCache", "$q", "$log", "$timeout", "$filter", "ImpacTheming", "$translate", function($templateCache, $q, $log, $timeout, $filter, ImpacTheming, $translate) { + unCollapsedSetting = {}; + unCollapsedSetting.initialized = false; + unCollapsedSetting.initialize = function() { + return unCollapsedSetting.initialized = true; + }; + unCollapsedSetting.toMetadata = function() { + return { + unCollapsed: $scope.unCollapsed + }; + }; + w.settings.push(unCollapsedSetting); + selectedElementSetting = {}; + selectedElementSetting.initialized = false; + selectedElementSetting.initialize = function() { + return selectedElementSetting.initialized = true; + }; + selectedElementSetting.toMetadata = function() { + if ($scope.selectedElement == null) { + return { + selectedElement: null + }; + } + return { + selectedElement: getIdentifier($scope.selectedElement) + }; + }; + w.settings.push(selectedElementSetting); + return $scope.widgetDeferred.resolve(settingsPromises); + }]); + + module.directive('widgetAccountsCashSummary', function() { return { restrict: 'A', - scope: { - parentWidget: '=', - deferred: '=', - histParams: '=?', - hideChartInterval: '=?', - applyChangesCallback: '&?' - }, - template: $templateCache.get('widgets-settings/time-period.tmpl.html'), - link: function(scope) { - var getPeriod, getSetting, getUsedSettingKey, initPeriod, initUsedSetting, settingsPromises, updateFromDate, updateTimeRangePeriod, w; - w = scope.parentWidget; - scope.timePeriodSetting = { - key: "time-period", - settings: [], - isEditMode: true - }; - scope.timeSliderDeferred = $q.defer(); - scope.datesPickerDeferred = $q.defer(); - scope.timePresetsDeferred = $q.defer(); - settingsPromises = [scope.timeSliderDeferred.promise, scope.datesPickerDeferred.promise, scope.timePresetsDeferred.promise]; - scope.resetPreset = $q.defer(); - $translate(["impac.widget.settings.time_period.period.daily", "impac.widget.settings.time_period.period.weekly", "impac.widget.settings.time_period.period.monthly", "impac.widget.settings.time_period.period.quarterly", "impac.widget.settings.time_period.period.yearly", "impac.widget.settings.time_period.period.days", "impac.widget.settings.time_period.period.weeks", "impac.widget.settings.time_period.period.months", "impac.widget.settings.time_period.period.quarters", "impac.widget.settings.time_period.period.years"]).then(function(translations) { - return scope.periods = [ - { - label: translations["impac.widget.settings.time_period.period.daily"], - plural: "days", - value: "DAILY" - }, { - label: translations["impac.widget.settings.time_period.period.weekly"], - plural: "weeks", - value: "WEEKLY" - }, { - label: translations["impac.widget.settings.time_period.period.monthly"], - plural: "months", - value: "MONTHLY" - }, { - label: translations["impac.widget.settings.time_period.period.quarterly"], - plural: "quarters", - value: "QUARTERLY" - }, { - label: translations["impac.widget.settings.time_period.period.yearly"], - plural: "years", - value: "YEARLY" - } - ]; + controller: 'WidgetAccountsCashSummaryCtrl' + }; + }); + +}).call(this); + +(function() { + var module; + + module = angular.module('impac.components.widgets.accounts-class-comparison', []); + + module.controller('WidgetAccountsClassComparisonCtrl', ["$scope", "$q", "$filter", "ChartFormatterSvc", "$translate", function($scope, $q, $filter, ChartFormatterSvc, $translate) { + var settingsPromises, translate, w; + w = $scope.widget; + $scope.orgDeferred = $q.defer(); + $scope.chartDeferred = $q.defer(); + $scope.paramSelectorDeferred = $q.defer(); + $scope.timePeriodDeferred = $q.defer(); + settingsPromises = [$scope.orgDeferred.promise, $scope.chartDeferred.promise, $scope.paramSelectorDeferred.promise, $scope.timePeriodDeferred.promise]; + $scope.timePeriodInfoParams = { + accountingBehaviour: 'pnl', + histParams: {} + }; + translate = function(word) { + var translation; + word = word.toLowerCase(); + translation = $translate.instant('impac.widget.account_class_comp.klass.' + word); + if (_.includes(translation, 'impac.widget.account_class_comp.klass')) { + return _.capitalize(word); + } else { + return translation; + } + }; + w.initContext = function() { + $scope.isDataFound = angular.isDefined(w.content) && !_.isEmpty(w.content.summary) && !_.isEmpty(w.content.companies); + if ($scope.isDataFound) { + $scope.timePeriodInfoParams.histParams = w.metadata && w.metadata.hist_parameters; + $scope.classifications = _.map(w.content.summary, function(summary) { + var klass; + klass = summary.classification; + return { + label: translate(klass), + labelTranslate: summary.classification_key != null ? summary.classification_key : void 0, + value: klass + }; }); - scope.maxNumberOfPeriods = 20; - if ((ImpacTheming.get().widgetSettings != null) && (ImpacTheming.get().widgetSettings.timePeriod != null) && !_.isEmpty(ImpacTheming.get().widgetSettings.timePeriod.presets)) { - scope.presets = angular.copy(ImpacTheming.get().widgetSettings.timePeriod.presets); + if (!$scope.selectedClassification) { + return $scope.selectedClassification = angular.copy(_.find($scope.classifications, { + value: w.metadata.classification || $scope.classifications[0].value + })); } - scope.applyPreset = function(histParams) { - initPeriod(histParams); - return initUsedSetting(histParams); - }; - scope.timePeriodSetting.initialize = function() { - return $timeout(function() { - initPeriod(); - getSetting('time-presets').initialize(); - return scope.showApplyButton = angular.isDefined(scope.applyChangesCallback); - }); - }; - scope.timePeriodSetting.toMetadata = function() { - var histParams, metadata, sourceSetting; - sourceSetting = getSetting(getUsedSettingKey()); - if (sourceSetting != null) { - histParams = sourceSetting.toMetadata().hist_parameters; - } - histParams.period = getPeriod(); - if ((scope.histParams != null) && (scope.histParams.mode != null)) { - histParams.mode = scope.histParams.mode; - } - metadata = { - hist_parameters: histParams - }; - return metadata; - }; - scope.titleize = function(word) { - if (word !== "FYEARLY") { - return "" + (word.slice(0, 1).toUpperCase()) + (word.slice(1).toLowerCase()); - } else { - return "Yearly (financial)"; - } - }; - getPeriod = function() { - if (scope.timePeriodSetting.period != null) { - return scope.timePeriodSetting.period; - } else { - return initPeriod(); - } - }; - scope.isTimeSliderUsed = function() { - return getUsedSettingKey() === 'time-slider'; - }; - scope.isDatesPickerUsed = function() { - return getUsedSettingKey() === 'dates-picker'; + } + }; + $scope.getTotals = function() { + var amount; + if (!$scope.selectedClassification) { + return []; + } + return amount = _.find(w.content.summary, function(sum) { + return sum.classification === $scope.selectedClassification.value; + }).totals; + }; + $scope.getAmount = function(index) { + var amount; + amount = $scope.getTotals()[index]; + return $filter('mnoCurrency')(amount, w.content.currency); + }; + $scope.getAccountColor = function(anEntity) { + return ChartFormatterSvc.getColor(_.indexOf(w.content.companies, anEntity)); + }; + $scope.drawTrigger = $q.defer(); + w.format = function() { + var chartData, inputData, options; + if ($scope.isDataFound) { + inputData = {}; + inputData.labels = w.content.companies; + inputData.values = $scope.getTotals(); + if (inputData.labels.length > 15) { + inputData.labels.length = 15; + } + if (inputData.values.length > 15) { + inputData.values.length = 15; + } + options = { + showTooltips: false, + showXLabels: false, + barValueSpacing: Math.max(8 - w.content.companies.length, 1) }; - getUsedSettingKey = function() { - if (scope.usedSetting != null) { - return scope.usedSetting; - } else { - return initUsedSetting(); + chartData = ChartFormatterSvc.barChart(inputData, options); + return $scope.drawTrigger.notify(chartData); + } + }; + return $scope.widgetDeferred.resolve(settingsPromises); + }]); + + module.directive('widgetAccountsClassComparison', function() { + return { + restrict: 'A', + controller: 'WidgetAccountsClassComparisonCtrl' + }; + }); + +}).call(this); + +(function() { + var module; + + module = angular.module('impac.components.widgets.accounts-comparison', []); + + module.controller('WidgetAccountsComparisonCtrl', ["$scope", "$q", "ChartFormatterSvc", "$filter", "$timeout", "$translate", function($scope, $q, ChartFormatterSvc, $filter, $timeout, $translate) { + var gatherSavedAccounts, scanAccountsForMultiOrgData, settingsPromises, w; + w = $scope.widget; + $scope.orgDeferred = $q.defer(); + $scope.accountsListDeferred = $q.defer(); + $scope.chartDeferred = $q.defer(); + $scope.paramsCheckboxesDeferred = $q.defer(); + $scope.timePeriodDeferred = $q.defer(); + settingsPromises = [$scope.orgDeferred.promise, $scope.accountsListDeferred.promise, $scope.chartDeferred.promise, $scope.paramsCheckboxesDeferred.promise, $scope.timePeriodDeferred.promise]; + w.initContext = function() { + $scope.movedAccount = []; + return $translate('impac.widget.account_comp.compare_mode_opt').then(function(label) { + $scope.comparisonModeOptions = [ + { + id: 'compare_accounts', + label: label, + value: false, + onChangeCallback: $scope.updateSettings } - }; - getSetting = function(key) { - return _.find(scope.timePeriodSetting.settings, function(set) { - return set.key === key; + ]; + if (angular.isDefined(w.metadata.comparison_mode) && (w.metadata.organization_ids != null) && w.metadata.organization_ids.length > 1) { + angular.merge($scope.comparisonModeOptions, w.metadata.comparison_mode); + } + $scope.savedAccountsList = gatherSavedAccounts(); + $scope.isDataFound = (w.content != null) && !_.isEmpty(w.content.complete_list) || $scope.isComparisonMode(); + $scope.noComparableAccounts = $scope.isComparisonMode() && (w.content != null) && _.isEmpty(w.content.complete_list); + return $scope.canSelectComparisonMode = scanAccountsForMultiOrgData(); + }); + }; + scanAccountsForMultiOrgData = function() { + if (w.content == null) { + return false; + } + return _.uniq(_.pluck(w.content.complete_list, 'org_name')).length > 1; + }; + $scope.isComparisonMode = function() { + return _.result(_.find($scope.comparisonModeOptions, 'id', 'compare_accounts'), 'value') || false; + }; + $scope.hasAccountsSelected = function() { + return w.selectedAccounts && w.selectedAccounts.length > 0; + }; + $scope.getAccountColor = function(anAccount) { + if ($scope.isComparisonMode()) { + return ChartFormatterSvc.getColor(_.indexOf(w.selectedAccounts[0].accounts, anAccount)); + } else { + return ChartFormatterSvc.getColor(_.indexOf(w.selectedAccounts, anAccount)); + } + }; + $scope.addAccount = function(anAccount) { + if (!anAccount) { + return; + } + w.moveAccountToAnotherList(anAccount, w.remainingAccounts, w.selectedAccounts); + $scope.savedAccountsList.push(anAccount.uid); + return w.format(); + }; + $scope.removeAccount = function(anAccount) { + if (!anAccount) { + return; + } + w.moveAccountToAnotherList(anAccount, w.selectedAccounts, w.remainingAccounts); + $scope.savedAccountsList.splice($scope.savedAccountsList.indexOf(anAccount.uid), 1); + return w.format(); + }; + $scope.formatAmount = function(anAccount) { + return $filter('mnoCurrency')(anAccount.current_balance, anAccount.currency); + }; + gatherSavedAccounts = function() { + var areGrouped, group, i, len, savedUids, uid; + savedUids = w.metadata.accounts_list; + if (_.isEmpty(savedUids)) { + return []; + } + areGrouped = savedUids[0].indexOf(':') >= 0; + if (!$scope.isComparisonMode() && areGrouped) { + return _.flatten(_.map(savedUids, function(a) { + return a.split(':'); + })); + } else if ($scope.isComparisonMode() && !areGrouped) { + for (i = 0, len = savedUids.length; i < len; i++) { + uid = savedUids[i]; + group = _.find(w.content.complete_list, function(group) { + return group.uid.indexOf(uid) >= 0; }); - }; - initPeriod = function(histParams) { - if (histParams == null) { - histParams = null; - } - if (histParams == null) { - histParams = scope.histParams; - } - if ((histParams != null) && (histParams.period != null) && _.find(scope.periods, function(period) { - return period.value === histParams.period; - })) { - scope.timePeriodSetting.period = angular.copy(histParams.period); - } else { - scope.timePeriodSetting.period = "MONTHLY"; - } - return scope.timePeriodSetting.period; - }; - initUsedSetting = function(histParams) { - var minDate, newLetter, pattern, tr; - if (histParams == null) { - histParams = null; - } - if (histParams == null) { - histParams = scope.histParams; + if (group) { + return [group.uid]; } - if ((histParams != null) && (histParams.from != null)) { - scope.usedSetting = 'dates-picker'; - scope.toDate = histParams.to; - minDate = scope.getMinDate(scope.toDate); - if (moment(histParams.from, "YYYY-MM-DD").isBefore(minDate)) { - scope.fromDate = minDate; - } else { - scope.fromDate = histParams.from; + } + return []; + } else { + return savedUids; + } + }; + $scope.drawTrigger = $q.defer(); + w.format = function() { + var inputData; + inputData = { + labels: [], + values: [] + }; + return $timeout(function() { + var account, chartData, groupedAccount, i, j, len, len1, options, ref, ref1; + ref = w.selectedAccounts; + for (i = 0, len = ref.length; i < len; i++) { + account = ref[i]; + if ($scope.isComparisonMode()) { + ref1 = account.accounts; + for (j = 0, len1 = ref1.length; j < len1; j++) { + groupedAccount = ref1[j]; + inputData.labels.push(groupedAccount.name); + inputData.values.push(groupedAccount.current_balance); } - scope.keepToday = histParams.keep_today; - getSetting('dates-picker').initialize(); } else { - scope.usedSetting = 'time-slider'; - if ((histParams != null) && (histParams.time_range != null)) { - tr = histParams.time_range; - pattern = /([a-z])/; - newLetter = pattern.exec(tr)[1]; - scope.timePeriodSetting.period = angular.copy(_.find(scope.periods, function(p) { - return p.value.slice(0, 1).toLowerCase() === newLetter; - }).value); - scope.timePeriodSetting.timeRange = tr; - } - getSetting('time-slider').initialize(); - } - return scope.usedSetting; - }; - scope.updateSettings = function() { - if (scope.usedSetting === 'time-slider') { - scope.resetPreset.notify('choose-period'); - } else if (scope.usedSetting === 'dates-picker') { - scope.resetPreset.notify('choose-dates'); - } - updateTimeRangePeriod(); - return updateFromDate(); - }; - updateTimeRangePeriod = function() { - var periodLetter, set, tr; - if (scope.isTimeSliderUsed()) { - set = getSetting('time-slider'); - tr = set.toMetadata().hist_parameters.time_range; - periodLetter = getPeriod().slice(0, 1).toLowerCase(); - scope.timePeriodSetting.timeRange = tr.replace(/[a-z]/, periodLetter); - set.initialize(); - } - return scope.timePeriodSetting.timeRange; - }; - updateFromDate = function() { - var fromDate, minDate, set, toDate; - if (scope.isDatesPickerUsed()) { - set = getSetting('dates-picker'); - fromDate = set.toMetadata().hist_parameters.from; - toDate = set.toMetadata().hist_parameters.to; - minDate = scope.getMinDate(); - if (moment(fromDate, "YYYY-MM-DD").isBefore(minDate)) { - scope.toDate = toDate; - scope.fromDate = minDate; - set.initialize(); - } - } - return scope.fromDate; - }; - scope.useTimeSlider = function() { - scope.usedSetting = 'time-slider'; - return scope.updateSettings(); - }; - scope.useDatesPicker = function() { - scope.usedSetting = 'dates-picker'; - return scope.updateSettings(); - }; - scope.getMinDate = function(toDate) { - var currentPeriod, periodWord, sourceSetting, to; - if (toDate == null) { - toDate = void 0; - } - to = moment(); - if (toDate != null) { - to = moment(toDate, "YYYY-MM-DD"); - } else if ((scope.usedSetting != null) && scope.isDatesPickerUsed()) { - sourceSetting = getSetting('dates-picker'); - to = moment(sourceSetting.toMetadata().hist_parameters.to, "YYYY-MM-DD"); - } - currentPeriod = getPeriod(); - periodWord = _.find(scope.periods, function(period) { - return currentPeriod === period.value; - }).plural; - return to.subtract(scope.maxNumberOfPeriods, periodWord); - }; - scope.formattedMinDate = function(toDate) { - if (toDate == null) { - toDate = void 0; + inputData.labels.push(account.name); + inputData.values.push(account.current_balance); } - return $filter('momentDate')(scope.getMinDate(toDate), 'time-period'); + } + while (inputData.values.length < 15) { + inputData.labels.push(""); + inputData.values.push(null); + } + options = { + showTooltips: false, + showXLabels: false, + barDatasetSpacing: 9 }; - w.settings.push(scope.timePeriodSetting); - return $q.all(settingsPromises).then(function() { - return scope.deferred.resolve(scope.timePeriodSetting); - }); - } + chartData = ChartFormatterSvc.barChart(inputData, options); + return $scope.drawTrigger.notify(chartData); + }, 500); }; + return $scope.widgetDeferred.resolve(settingsPromises); }]); + module.directive('widgetAccountsComparison', function() { + return { + restrict: 'A', + controller: 'WidgetAccountsComparisonCtrl' + }; + }); + }).call(this); (function() { var module; - module = angular.module('impac.components.widgets-settings.time-presets', []); + module = angular.module('impac.components.widgets.accounts-custom-calculation', []); - module.directive('settingTimePresets', ["$templateCache", "ImpacMainSvc", "$timeout", "ImpacUtilities", "ImpacTheming", "$translate", function($templateCache, ImpacMainSvc, $timeout, ImpacUtilities, ImpacTheming, $translate) { - return { - restrict: 'A', - scope: { - parentWidget: '=', - deferred: '=', - presets: '=?', - onSelect: '&?', - onChooseDates: '&?', - onChoosePeriod: '&?', - histParams: '=?', - resetPromise: '=?' - }, - template: $templateCache.get('widgets-settings/time-presets.tmpl.html'), - link: function(scope) { - var fyEndMonth, initPreset, showSlider, w; - w = scope.parentWidget; - scope.setting = {}; - scope.setting.key = "time-presets"; - scope.financialYearEndMonth = 6; - fyEndMonth = scope.financialYearEndMonth; - ImpacMainSvc.load().then(function() { - return fyEndMonth = ImpacMainSvc.getFinancialYearEndMonth(); - })["finally"](function() { - var fyStartDate, prevFyEndDate, prevFyStartDate, toDate; - fyStartDate = ImpacUtilities.financialYearDates(fyEndMonth).start; - prevFyStartDate = moment(ImpacUtilities.financialYearDates(fyEndMonth).start, 'YYYY-MM-DD').subtract(1, 'year').format('YYYY-MM-DD'); - prevFyEndDate = moment(ImpacUtilities.financialYearDates(fyEndMonth).end, 'YYYY-MM-DD').subtract(1, 'year').format('YYYY-MM-DD'); - toDate = moment().format('YYYY-MM-DD'); - return $translate(['impac.common.period.preset_in_words.calendar_year_to_date', 'impac.common.period.preset_in_words.financial_year_to_date', 'impac.common.period.preset_in_words.previous_financial_year', 'impac.common.period.preset_in_words.last_6_months', 'impac.common.period.preset_in_words.last_4_quarters', 'impac.common.period.preset_in_words.last_4_weeks', 'impac.common.period.preset_in_words.choose_period', 'impac.common.period.preset_in_words.choose_dates']).then(function(translations) { - scope.presets || (scope.presets = [ - { - label: translations['impac.common.period.preset_in_words.calendar_year_to_date'], - value: { - from: moment().startOf('year').format('YYYY-MM-DD'), - to: toDate, - period: 'MONTHLY' - } - }, { - label: translations['impac.common.period.preset_in_words.financial_year_to_date'], - value: { - from: fyStartDate, - to: toDate, - period: 'MONTHLY' - } - }, { - label: translations['impac.common.period.preset_in_words.previous_financial_year'], - value: { - from: prevFyStartDate, - to: prevFyEndDate, - period: 'MONTHLY' - } - }, { - label: translations['impac.common.period.preset_in_words.last_6_months'], - value: { - time_range: '-6m', - to: toDate - } - }, { - label: translations['impac.common.period.preset_in_words.last_4_quarters'], - value: { - time_range: '-4q', - to: toDate - } - }, { - label: translations['impac.common.period.preset_in_words.last_4_weeks'], - value: { - time_range: '-4w', - to: toDate - } - } - ]); - if (angular.isDefined(scope.onChooseDates) && showSlider()) { - scope.presets.unshift({ - label: translations['impac.common.period.preset_in_words.choose_period'], - value: 'choose-period' - }); - } - if (angular.isDefined(scope.onChooseDates)) { - return scope.presets.unshift({ - label: translations['impac.common.period.preset_in_words.choose_dates'], - value: 'choose-dates' - }); - } - }); - }); - if (scope.resetPromise != null) { - scope.resetPromise.then(null, null, function(key) { - return scope.selectedPreset = _.find(scope.presets, function(p) { - return p.value === key; - }); - }); + module.controller('WidgetAccountsCustomCalculationCtrl', ["$scope", "$timeout", "$uibModal", "$q", "$templateCache", "$filter", "ImpacWidgetsSvc", "ChartFormatterSvc", function($scope, $timeout, $uibModal, $q, $templateCache, $filter, ImpacWidgetsSvc, ChartFormatterSvc) { + var settingsPromises, w; + w = $scope.widget; + $scope.orgDeferred = $q.defer(); + $scope.accountsListDeferred = $q.defer(); + $scope.formulaDeferred = $q.defer(); + $scope.histModeDeferred = $q.defer(); + $scope.chartDeferred = $q.defer(); + settingsPromises = [$scope.orgDeferred.promise, $scope.accountsListDeferred.promise, $scope.formulaDeferred.promise, $scope.histModeDeferred.promise, $scope.chartDeferred.promise]; + w.initContext = function() { + $scope.movedAccount = {}; + return $scope.isDataFound = (w.content != null) && !_.isEmpty(w.content.complete_list); + }; + $scope.drawTrigger = $q.defer(); + w.format = function() { + return $timeout(function() { + var all_values_are_positive, chartData, data, dates, inputData, options, period; + all_values_are_positive = true; + inputData = []; + period = null; + if ((w.metadata != null) && (w.metadata.hist_parameters != null)) { + period = w.metadata.hist_parameters.period; } - showSlider = function() { - return (ImpacTheming.get().widgetSettings != null) && (ImpacTheming.get().widgetSettings.timePeriod != null) && ImpacTheming.get().widgetSettings.timePeriod.showSlider; - }; - initPreset = function() { - if (scope.histParams != null) { - scope.selectedPreset = _.find(scope.presets, function(p) { - return _.every(p.value, function(v, k) { - return scope.histParams[k] === (angular.isFunction(v) ? v(fyEndMonth) : v); - }); - }); - if ((scope.selectedPreset == null) && (scope.histParams.time_range != null) && showSlider()) { - scope.selectedPreset = scope.presets[1]; - } - } - if (scope.selectedPreset == null) { - return scope.selectedPreset = scope.presets[0]; - } - }; - scope.presetSelected = function() { - if ((scope.selectedPreset != null) && (scope.selectedPreset.value === "choose-dates")) { - return scope.onChooseDates(); - } else if ((scope.selectedPreset != null) && (scope.selectedPreset.value === "choose-period")) { - return scope.onChoosePeriod(); - } else { - return scope.onSelect({ - histParams: scope.setting.toMetadata().hist_parameters - }); - } - }; - scope.setting.initialize = function() { - initPreset(); - scope.presetSelected(); - return true; - }; - scope.setting.toMetadata = function() { - var result; - result = {}; - if (!_.isEmpty(scope.selectedPreset.value)) { - _.forEach(scope.selectedPreset.value, function(value, key) { - if (angular.isFunction(value)) { - return result[key] = value(fyEndMonth); - } else { - return result[key] = value; - } - }); - } - return { - hist_parameters: result - }; + dates = _.map(w.content.dates, function(date) { + return $filter('momentDate')(date, period); + }); + data = _.map(w.content.dates, function(date, index) { + var value; + value = w.evaluatedFormula_History(index); + all_values_are_positive && (all_values_are_positive = value >= 0); + return value; + }); + inputData.push({ + title: 'Test Data', + labels: dates, + values: data + }); + options = { + scaleBeginAtZero: all_values_are_positive, + showXLabels: false, + datasetFill: true, + pointDot: true }; - w.settings.push(scope.setting); - return scope.deferred.resolve(scope.setting); + chartData = ChartFormatterSvc.lineChart(inputData, options); + return $scope.drawTrigger.notify(chartData); + }, 500); + }; + $scope.addAccountToFormula = function(account) { + if (account == null) { + return; + } + if (w.selectedAccounts.length > 0) { + w.formula += " + {" + (w.selectedAccounts.length + 1) + "}"; + } else { + w.formula = "{1}"; + } + return w.moveAccountToAnotherList(account, w.remainingAccounts, w.selectedAccounts, false); + }; + $scope.removeAccountFromFormula = function(account) { + var diffAccountIndex, diffAccountUid, i, indexPattern, newFormula, nextUids, prevUids, removePattern; + prevUids = _.map(w.selectedAccounts, function(e) { + return e.uid; + }); + nextUids = _.reject(prevUids, function(e) { + return e === account.uid; + }); + diffAccountUid = _.first(_.difference(prevUids, nextUids)); + diffAccountIndex = _.indexOf(prevUids, diffAccountUid) + 1; + if (diffAccountIndex === 1) { + removePattern = "{" + diffAccountIndex + "\\}\\s*(-|\\*|\\/|\\+)*\\s*"; + } else { + removePattern = "\\s*(-|\\*|\\/|\\+)*\\s*\\{" + diffAccountIndex + "\\}"; + } + newFormula = angular.copy(w.formula).replace(new RegExp(removePattern, 'g'), ''); + i = diffAccountIndex + 1; + while (i <= prevUids.length) { + indexPattern = "\\{" + i + "\\}"; + newFormula = newFormula.replace(new RegExp(indexPattern, 'g'), "{" + (i - 1) + "}"); + i++; + } + w.formula = angular.copy(newFormula); + return w.moveAccountToAnotherList(account, w.selectedAccounts, w.remainingAccounts, false); + }; + $scope.formulaModal = $scope.$new(); + $scope.formulaModal.config = { + backdrop: 'static', + template: $templateCache.get('widgets/accounts-custom-calculation/formula.modal.html'), + size: 'lg', + scope: $scope.formulaModal, + keyboard: false + }; + $scope.formulaModal.open = function() { + var self; + self = $scope.formulaModal; + self.modalOrgDeferred = $q.defer(); + self.timePeriodDeferred = $q.defer(); + _.remove(w.settings, (function(set) { + return set.key === "organizations"; + })); + self.instance = $uibModal.open(self.config); + return $q.all([self.modalOrgDeferred.promise, self.timePeriodDeferred.promise]).then(function(success) { + return $scope.initSettings(); + }); + }; + $scope.reloadAccountsLists = function(orgs) { + if ((orgs != null) && _.some(_.values(orgs))) { + return $scope.updateWidgetSettings(); } }; + $scope.updateWidgetSettings = function() { + return ImpacWidgetsSvc.updateWidgetSettings(w); + }; + $scope.formulaModal.cancel = function() { + $scope.initSettings(); + return $scope.formulaModal.close(); + }; + $scope.formulaModal.proceed = function() { + ImpacWidgetsSvc.updateWidgetSettings(w); + return $scope.formulaModal.close(); + }; + $scope.formulaModal.close = function() { + return $scope.formulaModal.instance.close(); + }; + $scope.$watch((function() { + return w.isEditMode; + }), function(result, prev) { + if (result && !prev) { + return $scope.formulaModal.open(); + } + }); + return $scope.widgetDeferred.resolve(settingsPromises); }]); + module.directive('widgetAccountsCustomCalculation', function() { + return { + restrict: 'A', + controller: 'WidgetAccountsCustomCalculationCtrl' + }; + }); + }).call(this); (function() { var module; - module = angular.module('impac.components.widgets-settings.time-slider', []); + module = angular.module('impac.components.widgets.accounts-detailed-classifications', []); - module.directive('settingTimeSlider', ["$templateCache", "$timeout", "ImpacMainSvc", "ImpacUtilities", "ImpacTheming", function($templateCache, $timeout, ImpacMainSvc, ImpacUtilities, ImpacTheming) { - return { - restrict: 'A', - scope: { - parentWidget: '=', - deferred: '=', - timeRange: '=?', - onUse: '&?' - }, - template: $templateCache.get('widgets-settings/time-slider.tmpl.html'), - link: function(scope) { - var PERIODS, getNumberOfPeriods, getPeriod, getPeriodWord, getTimeRange, initFinancialYearEndMonth, initNumberOfPeriods, initPeriod, setting, w; - w = scope.parentWidget; - setting = {}; - setting.key = "time-slider"; - PERIODS = ['d', 'w', 'm', 'q', 'y', 'f']; - setting.initialize = function() { - return $timeout(function() { - initNumberOfPeriods(); - initPeriod(); - initFinancialYearEndMonth(); - return true; + module.controller('WidgetAccountsDetailedClassificationsCtrl', ["$scope", "$q", "ImpacWidgetsSvc", function($scope, $q, ImpacWidgetsSvc) { + var settingsPromises, sortAccountsBy, sortData, unCollapsedSetting, w; + w = $scope.widget; + $scope.orgDeferred = $q.defer(); + $scope.timePeriodDeferred = $q.defer(); + settingsPromises = [$scope.orgDeferred.promise, $scope.timePeriodDeferred.promise]; + $scope.timePeriodInfoParams = { + accountingBehaviour: 'pnl', + histParams: {} + }; + $scope.ascending = true; + $scope.sortedColumn = 'account'; + w.initContext = function() { + $scope.isDataFound = angular.isDefined(w.content) && !_.isEmpty(w.content.companies); + if ($scope.isDataFound) { + $scope.timePeriodInfoParams.histParams = w.metadata && w.metadata.hist_parameters; + $scope.unCollapsed = w.metadata.unCollapsed || []; + if (w.content.companies.length === 1) { + $scope.multiEntity = false; + $scope.dataSource = _.map(w.content.companies[0].classifications, function(klass) { + return { + label: klass.name, + value: klass.total, + currency: klass.currency, + entries: _.map(klass.accounts, function(acc) { + return { + label: acc.name, + value: acc.balance, + currency: acc.currency + }; + }) + }; }); - }; - setting.toMetadata = function() { - var histParams; - histParams = { - to: scope.toDate().format('YYYY-MM-DD'), - time_range: getTimeRange() - }; - if (getPeriod() === 'f') { - histParams.from = scope.fromDate().format('YYYY-MM-DD'); - } - return { - hist_parameters: histParams - }; - }; - initNumberOfPeriods = function() { - var n, nPattern, tr; - tr = scope.timeRange; - scope.numberOfPeriods = moment().month(); - if (tr == null) { - return scope.numberOfPeriods; - } - nPattern = /^-?([0-9]{1,2})[a-z]?$/; - n = nPattern.exec(tr); - if ((n != null) && n[1] && parseInt(n[1])) { - scope.numberOfPeriods = parseInt(n[1]); - } - return scope.numberOfPeriods; - }; - initPeriod = function() { - var p, pPattern, period, tr; - tr = scope.timeRange; - scope.period = "m"; - if (tr == null) { - return "m"; - } - pPattern = /^-?[0-9]{0,2}([a-z])$/; - p = pPattern.exec(tr); - period = _.find(PERIODS, function(authPeriod) { - return (p != null) && (p[1] === authPeriod); + } else { + $scope.multiEntity = true; + $scope.dataSource = _.map(w.content.companies, function(company) { + return { + label: company.name, + entries: _.map(company.classifications, function(klass) { + return { + label: klass.name, + value: klass.total, + currency: klass.currency + }; + }) + }; }); - if (period != null) { - scope.period = period; - } - return scope.period; - }; - initFinancialYearEndMonth = function() { - scope.financialYearEndMonth = 6; - return ImpacMainSvc.load().then(function(config) { - if ((config != null) && (config.currentOrganization != null) && parseInt(config.currentOrganization.financial_year_end_month)) { - return scope.financialYearEndMonth = parseInt(config.currentOrganization.financial_year_end_month); - } + } + return sortData(); + } + }; + $scope.toggleCollapsed = function(groupName) { + if (groupName != null) { + if (_.find($scope.unCollapsed, (function(name) { + return groupName === name; + }))) { + $scope.unCollapsed = _.reject($scope.unCollapsed, function(name) { + return name === groupName; }); - }; - getPeriod = function() { - if (scope.period != null) { - return scope.period; - } else { - return initPeriod(); - } - }; - getPeriodWord = function() { - return ImpacUtilities.getPeriodWord(getPeriod()); - }; - getNumberOfPeriods = function() { - if (scope.numberOfPeriods != null) { - return scope.numberOfPeriods; - } else { - return initNumberOfPeriods(); - } - }; - getTimeRange = function() { - var n, p; - n = getNumberOfPeriods(); - p = getPeriod(); - return "-" + n + p; - }; - scope.formatPeriod = function() { - return ImpacUtilities.formatPeriod(getNumberOfPeriods(), getPeriod()); - }; - scope.fromDate = function() { - var financialYearStartYear, n, word; - n = getNumberOfPeriods(); - word = getPeriodWord(); - if (word.slice(0, 1) === "f") { - financialYearStartYear = moment().year() - 1; - if (moment().month() >= 6) { - financialYearStartYear = moment().year(); + } else { + $scope.unCollapsed.push(groupName); + } + return ImpacWidgetsSvc.updateWidgetSettings(w, false); + } + }; + $scope.isCollapsed = function(groupName) { + if (groupName != null) { + if (_.find($scope.unCollapsed, (function(name) { + return groupName === name; + }))) { + return false; + } else { + return true; + } + } + }; + sortAccountsBy = function(getElem) { + return angular.forEach($scope.dataSource, function(sElem) { + if (sElem.entries) { + return sElem.entries.sort(function(a, b) { + var res; + res = getElem(a) > getElem(b) ? 1 : getElem(a) < getElem(b) ? -1 : 0; + if (!$scope.ascending) { + res *= -1; } - financialYearStartYear = financialYearStartYear - n; - return moment(financialYearStartYear + "-" + (scope.financialYearEndMonth + 1) + "-01", "YYYY-M-DD"); - } else if (word.slice(0, 1) === "w") { - return moment().subtract(n, word).startOf('isoweek'); - } else { - return moment().subtract(n, word).startOf(word); - } - }; - scope.toDate = function() { - return moment(); - }; - w.settings.push(setting); - return scope.deferred.resolve(setting); + return res; + }); + } + }); + }; + sortData = function() { + if ($scope.sortedColumn === 'account') { + return sortAccountsBy(function(el) { + return el.label; + }); + } else if ($scope.sortedColumn === 'total') { + return sortAccountsBy(function(el) { + return el.value; + }); + } + }; + $scope.sort = function(col) { + if ($scope.sortedColumn === col) { + $scope.ascending = !$scope.ascending; + } else { + $scope.ascending = true; + $scope.sortedColumn = col; } + return sortData(); }; + unCollapsedSetting = {}; + unCollapsedSetting.initialized = false; + unCollapsedSetting.initialize = function() { + return unCollapsedSetting.initialized = true; + }; + unCollapsedSetting.toMetadata = function() { + return { + unCollapsed: $scope.unCollapsed + }; + }; + w.settings.push(unCollapsedSetting); + return $scope.widgetDeferred.resolve(settingsPromises); }]); + module.directive('widgetAccountsDetailedClassifications', function() { + return { + restrict: 'A', + controller: 'WidgetAccountsDetailedClassificationsCtrl' + }; + }); + }).call(this); (function() { var module; - module = angular.module('impac.components.widgets-settings.width', []); + module = angular.module('impac.components.widgets.accounts-expense-weight', []); - module.controller('SettingWidthCtrl', ["$scope", "$element", "$timeout", "$log", "ImpacWidgetsSvc", "ImpacDashboardsSvc", function($scope, $element, $timeout, $log, ImpacWidgetsSvc, ImpacDashboardsSvc) { - var elem, hideOnResize, i, len, ref, setting, w; - w = $scope.parentWidget; - setting = {}; - setting.key = "width"; - setting.isInitialized = false; - ref = $element.parents(); - for (i = 0, len = ref.length; i < len; i++) { - elem = ref[i]; - if (angular.element(elem).hasClass('content')) { - $scope.contentElements = angular.element(elem).children(); - break; - } - } - hideOnResize = function(elements) { - var j, len1; - if (!(elements && elements.length > 0)) { - return; - } - for (j = 0, len1 = elements.length; j < len1; j++) { - elem = elements[j]; - angular.element(elem).animate({ - opacity: 0 - }, 0); - } - return $timeout(function() { - var k, len2, results; - results = []; - for (k = 0, len2 = elements.length; k < len2; k++) { - elem = elements[k]; - results.push(angular.element(elem).animate({ - opacity: 1 - }, 200)); - } - return results; - }, 300); - }; - w.toggleExpanded = function(save) { - if (save == null) { - save = true; - } - $scope.expanded = !$scope.expanded; - if (save) { - ImpacWidgetsSvc.updateWidgetSettings(w, false, true); - } - hideOnResize($scope.contentElements); - if ($scope.expanded) { - return w.width = parseInt($scope.max); - } else { - return w.width = parseInt($scope.min); - } + module.controller('WidgetAccountsExpenseWeightCtrl', ["$scope", "$q", "ChartFormatterSvc", "$filter", "$translate", "$timeout", function($scope, $q, ChartFormatterSvc, $filter, $translate, $timeout) { + var settingsPromises, w; + w = $scope.widget; + $scope.orgDeferred = $q.defer(); + $scope.timePeriodDeferred = $q.defer(); + $scope.accountBackDeferred = $q.defer(); + $scope.accountFrontDeferred = $q.defer(); + $scope.chartDeferred = $q.defer(); + $scope.histModeDeferred = $q.defer(); + settingsPromises = [$scope.orgDeferred.promise, $scope.timePeriodDeferred, $scope.accountBackDeferred, $scope.accountFrontDeferred, $scope.chartDeferred.promise, $scope.histModeDeferred.promise]; + $scope.forwardParams = { + accountingBehaviour: 'pnl' }; - w.isExpanded = function() { - return $scope.expanded; + w.initContext = function() { + $scope.isDataFound = (w.content != null) && !_.isEmpty(w.content.account_list); + return $scope.forwardParams.histParams = w.metadata && w.metadata.hist_parameters; }; - setting.initialize = function() { - if (w.width != null) { - $scope.expanded = w.width === parseInt($scope.max); - return setting.isInitialized = true; + $scope.getName = function() { + if (w.selectedAccount != null) { + return w.selectedAccount.name; } }; - setting.toMetadata = function() { - var newWidth; - if ($scope.expanded) { - newWidth = $scope.max; - } else { - newWidth = $scope.min; + $scope.getComparator = function() { + switch (w.metadata.comparator) { + case 'turnover': + return $translate.instant("impac.widget.account_expense_weight.comparator.turnover"); + default: + return $translate.instant("impac.widget.account_expense_weight.comparator.total_exp"); } - return { - width: parseInt(newWidth) - }; }; - ImpacDashboardsSvc.pdfModeEnabled().then(null, null, function() { - $scope.pdfMode = true; - $scope.initiallyExpanded = !!$scope.expanded; - if (!$scope.initiallyExpanded) { - return w.toggleExpanded(false); - } - }); - ImpacDashboardsSvc.pdfModeCanceled().then(null, null, function() { - $scope.pdfMode = false; - if (!$scope.initiallyExpanded) { - return w.toggleExpanded(false); + $scope.displayAccount = function() { + return $scope.updateSettings(false).then(function() { + return $timeout(function() { + return w.format(); + }); + }); + }; + $scope.drawTrigger = $q.defer(); + w.format = function() { + var all_values_are_positive, chartData, companies, datasets, dates, inputData, lineData, lineOptions, options, period, ratios; + if ($scope.isDataFound && (w.content.summary != null)) { + if (w.isHistoryMode) { + period = null; + if ((w.metadata != null) && (w.metadata.hist_parameters != null)) { + period = w.metadata.hist_parameters.period; + } + dates = _.map(w.content.dates, function(date) { + return $filter('momentDate')(date, period); + }); + datasets = _.map(w.content.summary, function(s) { + return { + title: s.company, + values: s.ratios + }; + }); + all_values_are_positive = true; + angular.forEach(w.content.summary, function(s) { + return angular.forEach(s.ratios, function(ratio) { + return all_values_are_positive && (all_values_are_positive = ratio >= 0); + }); + }); + lineData = { + labels: dates, + datasets: datasets + }; + lineOptions = { + scaleBeginAtZero: all_values_are_positive, + showXLabels: false, + currency: "(ratio)" + }; + chartData = ChartFormatterSvc.combinedBarChart(lineData, lineOptions, false, true); + } else { + companies = _.map(w.content.summary, function(s) { + return s.company; + }); + ratios = _.map(w.content.summary, function(s) { + return s.ratio; + }); + if (companies.length === 1) { + companies.push(companies[0]); + ratios.push(ratios[0]); + } + inputData = { + labels: companies, + values: ratios + }; + options = { + scales: { + yAxes: [ + { + ticks: { + suggestedMin: 0, + suggestedMax: 100, + maxTicksLimit: 5 + } + } + ] + }, + showXLabels: false, + pointDot: false, + currency: '%' + }; + chartData = ChartFormatterSvc.lineChart([inputData], options); + } + return $scope.drawTrigger.notify(chartData); } - }); - w.settings.push(setting); - return $scope.deferred.resolve($scope.parentWidget); + }; + return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('settingWidth', ["$templateCache", function($templateCache) { + module.directive('widgetAccountsExpenseWeight', function() { return { restrict: 'A', - scope: { - parentWidget: '=', - deferred: '=', - min: '@', - max: '@' - }, - template: $templateCache.get('widgets-settings/width.tmpl.html'), - controller: 'SettingWidthCtrl' + controller: 'WidgetAccountsExpenseWeightCtrl' }; - }]); + }); }).call(this); (function() { var module; - module = angular.module('impac.components.widgets.accounts-accounting-values', []); + module = angular.module('impac.components.widgets.accounts-expenses-revenue', []); - module.controller('WidgetAccountsAccountingValuesCtrl', ["$scope", "$q", "ChartFormatterSvc", "$filter", "$translate", function($scope, $q, ChartFormatterSvc, $filter, $translate) { + module.controller('WidgetAccountsExpensesRevenueCtrl', ["$scope", "$q", "ChartFormatterSvc", "$filter", "$translate", function($scope, $q, ChartFormatterSvc, $filter, $translate) { var settingsPromises, w; w = $scope.widget; $scope.orgDeferred = $q.defer(); $scope.timePeriodDeferred = $q.defer(); $scope.histModeDeferred = $q.defer(); $scope.chartDeferred = $q.defer(); - settingsPromises = [$scope.orgDeferred.promise, $scope.timePeriodDeferred.promise, $scope.histModeDeferred.promise, $scope.chartDeferred.promise]; + $scope.paramsCheckboxesDeferred = $q.defer(); + settingsPromises = [$scope.orgDeferred.promise, $scope.timePeriodDeferred.promise, $scope.histModeDeferred.promise, $scope.chartDeferred.promise, $scope.paramsCheckboxesDeferred.promise]; w.initContext = function() { - $scope.isDataFound = (w.content != null) && (w.content.accounting != null); - $scope.getLegend(); - return $scope.getCurrency(); + $scope.isDataFound = (w.content != null) && (w.content.values != null); + $scope.displayOptions = [ + { + id: 'show_net_profit', + label: $translate.instant('impac.widget.accounts_expenses_revenue.show_net_profit'), + value: false, + onChangeCallback: $scope.toggleDisplayNetProfit + } + ]; + if (angular.isDefined((w.metadata != null) && (w.metadata.display != null))) { + angular.merge($scope.displayOptions, w.metadata.display); + } + return $scope.isNetProfitDisplayed = !!$scope.displayOptions[0].value; }; - $scope.getCurrentPrice = function() { + $scope.getCurrentRevenue = function() { if ($scope.isDataFound) { - return w.content.accounting.total_period; + return _.sum(w.content.values.revenue); } }; - $scope.getCurrency = function() { + $scope.getCurrentExpenses = function() { if ($scope.isDataFound) { - if (w.content.accounting.currency_key != null) { - return $translate(w.content.accounting.currency_key).then(function(translation) { - $scope.currency = translation; - return $scope.currency_unit = w.content.accounting.currency; - }); - } else { - $scope.currency = w.content.accounting.currency; - return $scope.currency_unit = w.content.accounting.currency; - } + return _.sum(w.content.values.expenses); } }; - $scope.getLegend = function() { + $scope.getCurrency = function() { if ($scope.isDataFound) { - if (w.content.accounting.legend_key != null) { - return $translate(w.content.accounting.legend_key).then(function(translation) { - return $scope.legend = translation; - }); - } else { - return $scope.legend = w.content.accounting.legend; - } + return w.content.currency; } }; + $scope.toggleDisplayNetProfit = function() { + $scope.isNetProfitDisplayed = !!$scope.displayOptions[0].value; + $scope.updateSettings(false); + return w.format(); + }; $scope.drawTrigger = $q.defer(); w.format = function() { - var all_values_are_positive, chartData, data, dates, inputData, options, period; + var all_values_are_positive, chartData, datasets, dates, lineData, lineOptions, period, pieData, pieOptions; if ($scope.isDataFound) { - data = angular.copy(w.content.accounting); - period = null; - if ((w.metadata != null) && (w.metadata.hist_parameters != null)) { - period = w.metadata.hist_parameters.period; - } - dates = _.map(data.dates, function(date) { - return $filter('momentDate')(date, period); - }); - inputData = { - labels: dates, - datasets: [ - { - title: data.type, - values: data.values - } - ] - }; - all_values_are_positive = true; - angular.forEach(data.values, function(value) { - return all_values_are_positive && (all_values_are_positive = value >= 0); - }); - options = { - scaleBeginAtZero: all_values_are_positive, - showXLabels: false, - currency: data.currency - }; - chartData = ChartFormatterSvc.combinedBarChart(inputData, options, false); + if (w.isHistoryMode) { + period = null; + if ((w.metadata != null) && (w.metadata.hist_parameters != null)) { + period = w.metadata.hist_parameters.period; + } + dates = _.map(w.content.dates, function(date) { + return $filter('momentDate')(date, period); + }); + if ($scope.isNetProfitDisplayed) { + datasets = [ + { + title: $translate.instant('impac.widget.accounts_expenses_revenue.net_profit') + (" (" + ($scope.getCurrency()) + ")"), + values: w.content.values.net_profit + } + ]; + all_values_are_positive = true; + angular.forEach(w.content.values.net_profit, function(value) { + return all_values_are_positive && (all_values_are_positive = value >= 0); + }); + } else { + datasets = [ + { + title: $translate.instant('impac.widget.accounts_expenses_revenue.expenses') + (" (" + ($scope.getCurrency()) + ")"), + values: w.content.values.expenses + }, { + title: $translate.instant('impac.widget.accounts_expenses_revenue.revenue') + (" (" + ($scope.getCurrency()) + ")"), + values: w.content.values.revenue + } + ]; + all_values_are_positive = true; + angular.forEach(w.content.values.expenses, function(value) { + return all_values_are_positive && (all_values_are_positive = value >= 0); + }); + angular.forEach(w.content.values.revenue, function(value) { + return all_values_are_positive && (all_values_are_positive = value >= 0); + }); + } + lineData = { + labels: dates, + datasets: datasets + }; + lineOptions = { + scaleBeginAtZero: all_values_are_positive, + showXLabels: false + }; + chartData = ChartFormatterSvc.combinedBarChart(lineData, lineOptions, false, true); + } else { + pieData = [ + { + label: $translate.instant('impac.widget.accounts_expenses_revenue.expenses') + (" (" + ($scope.getCurrency()) + ")"), + value: $scope.getCurrentExpenses() + }, { + label: $translate.instant('impac.widget.accounts_expenses_revenue.revenue') + (" (" + ($scope.getCurrency()) + ")"), + value: $scope.getCurrentRevenue() + } + ]; + pieOptions = { + tooltipFontSize: 12, + percentageInnerCutout: 0 + }; + chartData = ChartFormatterSvc.pieChart(pieData, pieOptions, true); + } return $scope.drawTrigger.notify(chartData); } }; return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('widgetAccountsAccountingValues', function() { + module.directive('widgetAccountsExpensesRevenue', function() { return { restrict: 'A', - controller: 'WidgetAccountsAccountingValuesCtrl' + controller: 'WidgetAccountsExpensesRevenueCtrl' }; }); @@ -8967,82 +9203,98 @@ $templateCache.put("widgets/sales-top-opportunities.tmpl.html","
1) { - return $scope.dataSource = w.content.repartition; - } else { - return $scope.dataSource = w.content.summary; - } - } - }; - $scope.getCurrency = function() { - if ($scope.isDataFound) { - return w.content.currency; - } }; - $scope.getAccountColor = function(elem) { - if ($scope.isDataFound) { - return ChartFormatterSvc.getColor(_.indexOf($scope.dataSource, elem)); + $scope.trxList.changeResourcesType = function(resourcesType) { + if (resourcesType === $scope.trxList.resources) { + return; } + $scope.trxList.resources = resourcesType; + return $scope.trxList.fetch(); }; - $scope.drawTrigger = $q.defer(); - w.format = function() { - var chartData, pieData, pieOptions; - if ($scope.isDataFound) { - pieData = _.map($scope.dataSource, function(company) { - return { - label: company.label, - value: company.total - }; - }); - pieOptions = { - percentageInnerCutout: 50, - tooltipFontSize: 12 - }; - chartData = ChartFormatterSvc.pieChart(pieData, pieOptions); - return $scope.drawTrigger.notify(chartData); - } + w.initContext = function() { + return $scope.trxList.fetch(); }; return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('widgetAccountsAssetsLiabilitySummary', function() { + module.directive('widgetAccountsInvoicesList', function() { return { restrict: 'A', - controller: 'WidgetAccountsAssetsLiabilitySummaryCtrl' + controller: 'WidgetAccountsInvoicesListCtrl' }; }); @@ -9051,147 +9303,79 @@ $templateCache.put("widgets/sales-top-opportunities.tmpl.html","
1) { - $scope.dataSource = w.content.repartition; - } else { - $scope.dataSource = w.content.summary; - } - } - if (!w.metadata.classification) { - w.metadata.classification = "ASSET"; - } - return $translate('impac.widget.acc_ass_smry.' + w.metadata.classification.toLowerCase() + ".many").then(function(result) { - return $scope.classification = result; - }); + return $scope.isDataFound = w.content != null; }; $scope.getCurrency = function() { - if ($scope.isDataFound) { - return w.content.currency; + if (w.selectedAccount != null) { + return w.selectedAccount.currency; } }; - $scope.getAccountColor = function(elem) { - if ($scope.isDataFound) { - return ChartFormatterSvc.getColor(_.indexOf($scope.dataSource, elem)); + $scope.getOpeningBalance = function() { + if (w.content != null) { + return _.find(w.content.figure.metrics, function(metric) { + return metric.label === 'opening'; + }); } }; - $scope.drawTrigger = $q.defer(); - w.format = function() { - var chartData, pieData, pieOptions; - if ($scope.isDataFound) { - pieData = _.map($scope.dataSource, function(company) { - return { - label: company.label, - value: company.total - }; - }); - pieOptions = { - percentageInnerCutout: 50, - tooltipFontSize: 12 - }; - chartData = ChartFormatterSvc.pieChart(pieData, pieOptions); - return $scope.drawTrigger.notify(chartData); + $scope.getClosingBalance = function() { + if (w.content != null) { + return _.find(w.content.figure.metrics, function(metric) { + return metric.label === 'closing'; + }); } }; - return $scope.widgetDeferred.resolve(settingsPromises); - }]); - - module.directive('widgetAccountsAssetsSummary', function() { - return { - restrict: 'A', - controller: 'WidgetAccountsAssetsSummaryCtrl' - }; - }); - -}).call(this); - -(function() { - var module; - - module = angular.module('impac.components.widgets.accounts-assets-vs-liabilities', []); - - module.controller('WidgetAccountsAssetsVsLiabilitiesCtrl', ["$scope", "$q", "ChartFormatterSvc", "$filter", "$translate", function($scope, $q, ChartFormatterSvc, $filter, $translate) { - var settingsPromises, w; - w = $scope.widget; - $scope.orgDeferred = $q.defer(); - $scope.chartDeferred = $q.defer(); - settingsPromises = [$scope.orgDeferred.promise, $scope.chartDeferred.promise]; - $translate(['impac.widget.acc_ass_vs_liab.asset.one', 'impac.widget.acc_ass_vs_liab.liability.one']).then(function(translation) { - return $scope.classificationTranslation = { - "ASSET": translation['impac.widget.acc_ass_vs_liab.asset.one'].toUpperCase(), - "LIABILITY": translation['impac.widget.acc_ass_vs_liab.liability.one'].toUpperCase() - }; - }); - w.initContext = function() { - var index; - $scope.isDataFound = (w.content != null) && !_.isEmpty(w.content.summary) && !_.isEmpty(w.content.companies); - if ($scope.isDataFound) { - index = 0; - $scope.companiesList = _.map(w.content.companies, function(company) { - var assetSum, liabilitiesSum, result; - assetSum = _.find(w.content.summary, (function(sum) { - return sum.classification === "ASSET"; - })); - liabilitiesSum = _.find(w.content.summary, (function(sum) { - return sum.classification === "LIABILITY"; - })); - result = { - company: company, - assets: assetSum != null ? assetSum.totals[index] : 0.0, - liabilities: liabilitiesSum != null ? liabilitiesSum.totals[index] : 0.0, - currency: w.content.currency - }; - index++; - return result; + $scope.getTotal = function() { + var summary; + if (w.content != null) { + summary = _.find(w.content.table.tables, function(table) { + return table.table_title === 'Bank Summary'; + }); + } + if (w.selectedAccount != null) { + return _.find(summary.table_rows, function(row) { + var name_match; + name_match = w.selectedAccount.name === 'All Accounts' ? 'Total' : w.selectedAccount.name; + return row.column_1 === name_match; }); - return $scope.titleTranslation; } }; - $scope.assetsColor = ChartFormatterSvc.getColor(0); - $scope.liabilitiesColor = ChartFormatterSvc.getColor(1); - $scope.drawTrigger = $q.defer(); - w.format = function() { - var chartData, datasets, inputData, options; - if ($scope.isDataFound) { - datasets = _.map(w.content.summary, function(sum) { - if (_.includes(['ASSET', 'LIABILITY'], sum.classification)) { - return { - title: $scope.classificationTranslation[sum.classification], - values: sum.totals - }; - } + $scope.getStatementBalance = function() { + var statement; + if (w.content != null) { + statement = _.find(w.content.table.tables, function(table) { + return table.table_title === 'Bank Statement'; + }); + } + if (statement) { + return _.find(statement.table_rows, function(row) { + return row.column_2 === "Closing Balance"; }); - datasets = _.sortByOrder(datasets, ['title']); - inputData = { - labels: w.content.companies, - datasets: _.compact(datasets) - }; - options = { - showTooltips: false, - showXLabels: false, - barValueSpacing: Math.max(8 - w.content.companies.length, 1) - }; - chartData = ChartFormatterSvc.combinedBarChart(inputData, options); - return $scope.drawTrigger.notify(chartData); } }; + $scope.displayAccount = function() { + return $scope.updateSettings(false).then(function() { + return w.format(); + }); + }; + w.format = function() {}; return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('widgetAccountsAssetsVsLiabilities', function() { + module.directive('widgetAccountsLiveBalance', function() { return { restrict: 'A', - controller: 'WidgetAccountsAssetsVsLiabilitiesCtrl' + controller: 'WidgetAccountsLiveBalanceCtrl' }; }); @@ -9200,104 +9384,89 @@ $templateCache.put("widgets/sales-top-opportunities.tmpl.html","
= 0); - }); - options = { + ref = w.content.values.payables; + for (i = 0, len = ref.length; i < len; i++) { + value = ref[i]; + all_values_are_positive && (all_values_are_positive = value >= 0); + } + ref1 = w.content.values.receivables; + for (j = 0, len1 = ref1.length; j < len1; j++) { + value = ref1[j]; + all_values_are_positive && (all_values_are_positive = value >= 0); + } + lineOptions = { scaleBeginAtZero: all_values_are_positive, showXLabels: false }; - chartData = ChartFormatterSvc.lineChart([lineData], options); - if ($scope.getBehaviour() === 'pnl') { - chartData = ChartFormatterSvc.combinedBarChart(barData, options, false); - } - return $scope.drawTrigger.notify(chartData); + return $translate(['impac.widget.accounts_payable_receivable.payable', 'impac.widget.accounts_payable_receivable.receivable']).then(function(translation) { + var chartData, lineData; + lineData = [ + { + title: translation['impac.widget.accounts_payable_receivable.payable'], + labels: dates, + values: w.content.values.payables + }, { + title: translation['impac.widget.accounts_payable_receivable.receivable'], + labels: dates, + values: w.content.values.receivables + } + ]; + chartData = ChartFormatterSvc.lineChart(lineData, lineOptions, true); + return $scope.drawTrigger.notify(chartData); + }); } }; return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('widgetAccountsBalance', function() { + module.directive('widgetAccountsPayableReceivable', function() { return { restrict: 'A', - controller: 'WidgetAccountsBalanceCtrl' + controller: 'WidgetAccountsPayableReceivableCtrl' }; }); @@ -9306,72 +9475,183 @@ $templateCache.put("widgets/sales-top-opportunities.tmpl.html","
\n
\n \n
\n
\n \n
\n
"; + settingsPromises = [$scope.orgDeferred.promise, $scope.timePeriodDeferred.promise, $scope.widthDeferred.promise, $scope.chartDeferred.promise, $scope.paramSelectorDeferred.promise, $scope.tagFilterDeferred.promise]; $scope.ascending = true; $scope.sortedColumn = 'account'; $scope.filterTagsEnabled = ImpacTheming.get().widgetSettings.tagging.enabled; - $scope.isReportFiltered = function() { - return (w.metadata != null) && (w.metadata.filter_query != null) && Object.keys(w.metadata.filter_query).length > 0; - }; - initDates = function() { - $scope.fromDate = w.metadata.hist_parameters.from; - $scope.toDate = w.metadata.hist_parameters.to; - return $scope.keepToday = w.metadata.hist_parameters.keep_today; + setAmountDisplayed = function() { + return $scope.amountDisplayed = angular.copy(_.find($scope.amountDisplayedOptions, function(o) { + return w.metadata && o.value === w.metadata.amount_displayed; + }) || $scope.amountDisplayedOptions[1]); + }; + $translate(['impac.widget.accounts_profit_and_loss.last_period', 'impac.widget.accounts_profit_and_loss.total_for_period']).then(function(translation) { + $scope.amountDisplayedOptions = [ + { + label: translation['impac.widget.accounts_profit_and_loss.last_period'], + value: 'last' + }, { + label: translation['impac.widget.accounts_profit_and_loss.total_for_period'], + value: 'total' + } + ]; + return setAmountDisplayed(); + }); + periodName = (h = $scope.widget.metadata.hist_parameters) && h.period ? h.period.toLowerCase() : 'monthly'; + $translate('impac.widget.settings.time_period.period.' + periodName).then(function(translation) { + return $scope.period_translation = _.capitalize(translation.toLowerCase()); + }); + $scope.isReportFiltered = function() { + return (w.metadata != null) && (w.metadata.filter_query != null) && Object.keys(w.metadata.filter_query).length > 0; }; - if (!((w.metadata != null) && (w.metadata.hist_parameters != null))) { - w.metadata || (w.metadata = {}); - w.metadata.hist_parameters = { - to: moment().format('YYYY-MM-DD'), - keep_today: true, - period: 'RANGE' - }; - ImpacMainSvc.load().then(function(config) { - var fyEndMonth; - fyEndMonth = parseInt(config.currentOrganization.financial_year_end_month) || 6; - w.metadata.hist_parameters.from = moment(ImpacUtilities.financialYearDates(fyEndMonth).end, 'YYYY-MM-DD').subtract(1, 'year').format('YYYY-MM-DD'); - return initDates(); - }); - } else { - initDates(); - } w.initContext = function() { + var dates, firstDate, foundElem, histParams, i, lastDate, len, ref, sElemId; if ($scope.isDataFound = angular.isDefined(w.content) && !_.isEmpty(w.content.summary) && !_.isEmpty(w.content.dates)) { $scope.dates = w.content.dates; $scope.unCollapsed = w.metadata.unCollapsed || []; - translateCategories(Object.keys(w.content.summary)).then(function(categories) { - $scope.categories = categories; - return sortData(); + if (w.metadata && (histParams = w.metadata.hist_parameters)) { + dates = ImpacUtilities.selectedTimeRange(histParams); + firstDate = $filter('momentDate')(dates.from, getPeriod()); + lastDate = $filter('momentDate')(dates.to, getPeriod()); + $scope.amountDisplayedOptions[1].label = firstDate + " to " + lastDate; + $scope.amountDisplayedOptions[0].label = lastDate; + } + setAmountDisplayed(); + if (!_.isEmpty(w.metadata.selectedElements)) { + $scope.selectedElements = []; + ref = w.metadata.selectedElements; + for (i = 0, len = ref.length; i < len; i++) { + sElemId = ref[i]; + foundElem = _.find(w.content.summary, function(statement) { + return statement.name === sElemId; + }); + foundElem || (foundElem = fetchElement(w.content.summary, sElemId)); + if (foundElem) { + $scope.selectedElements.push(foundElem); + } + } + } + if (!_.any($scope.selectedElements)) { + w.width = 6; + } + return sortData(); + } + }; + $scope.getElementChartColor = function(index) { + return ChartFormatterSvc.getColor(index); + }; + getPeriod = function() { + if ((w.metadata != null) && (w.metadata.hist_parameters != null) && (w.metadata.hist_parameters.period != null)) { + return w.metadata.hist_parameters.period; + } else { + return 'MONTHLY'; + } + }; + getLastAmount = function(element) { + if (element.totals != null) { + return _.last(element.totals); + } + }; + getTotalAmount = function(element) { + if (element.totals != null) { + return _.sum(element.totals); + } + }; + $scope.getAmount = function(element) { + switch ($scope.amountDisplayed.value) { + case 'total': + return getTotalAmount(element); + default: + return getLastAmount(element); + } + }; + $scope.getClassColor = function(aTotal) { + if (parseInt(aTotal) > 0) { + return 'positive'; + } else if (parseInt(aTotal) < 0) { + return 'negative'; + } else { + return null; + } + }; + $scope.getName = function(element) { + if ((element != null) && (element.name != null)) { + return element.name.replace(/_/g, " "); + } + }; + $scope.sort = function(col) { + if ($scope.sortedColumn === col) { + $scope.ascending = !$scope.ascending; + } else { + $scope.ascending = true; + $scope.sortedColumn = col; + } + return sortData(); + }; + $scope.toggleSelectedElement = function(element, statementName) { + var selectedElement; + if (statementName == null) { + statementName = null; + } + if ($scope.isSelected(element, statementName)) { + $scope.selectedElements = _.reject($scope.selectedElements, function(sElem) { + return matchElementToSelectedElement(element, statementName, sElem); }); + w.format(); + if (w.isExpanded() && $scope.selectedElements.length === 0) { + return w.toggleExpanded(); + } else { + return ImpacWidgetsSvc.updateWidgetSettings(w, false); + } + } else { + selectedElement = angular.copy(element); + selectedElement.category = statementName; + $scope.selectedElements || ($scope.selectedElements = []); + $scope.selectedElements.push(selectedElement); + w.format(); + if (!w.isExpanded()) { + return w.toggleExpanded(); + } else { + return ImpacWidgetsSvc.updateWidgetSettings(w, false); + } } - return initDates(); }; - $scope.toggleCollapsed = function(categoryName) { - if (categoryName != null) { + $scope.isSelected = function(element, statementName) { + if (statementName == null) { + statementName = null; + } + return (element != null) && _.any($scope.selectedElements, function(sElem) { + return matchElementToSelectedElement(element, statementName, sElem); + }); + }; + $scope.toggleCollapsed = function(element) { + if ((element != null) && (element.name != null)) { if (_.find($scope.unCollapsed, (function(name) { - return categoryName === name; + return element.name === name; }))) { $scope.unCollapsed = _.reject($scope.unCollapsed, function(name) { - return name === categoryName; + return name === element.name; }); } else { - $scope.unCollapsed.push(categoryName); + $scope.unCollapsed.push(element.name); } return ImpacWidgetsSvc.updateWidgetSettings(w, false); } }; - $scope.isCollapsed = function(categoryName) { - if (categoryName != null) { + $scope.isCollapsed = function(element) { + if ((element != null) && (element.name != null)) { if (_.find($scope.unCollapsed, (function(name) { - return categoryName === name; + return element.name === name; }))) { return false; } else { @@ -9379,27 +9659,59 @@ $templateCache.put("widgets/sales-top-opportunities.tmpl.html","
0; + }; + matchElementToSelectedElement = function(element, elementCategory, sElem) { + if (elementCategory == null) { + elementCategory = null; + } + return getIdentifier(element, elementCategory) === getIdentifier(sElem); + }; + fetchElement = function(statements, sElemId) { + var element, i, len, statement; + for (i = 0, len = statements.length; i < len; i++) { + statement = statements[i]; + if (statement.accounts == null) { + continue; + } + element = _.find(statement.accounts, function(acc) { + return getIdentifier(acc, statement.name) === sElemId; + }); + if (element != null) { + element = angular.merge(angular.copy(element), { + category: statement.name + }); + return element; + } + } + }; + getIdentifier = function(element, category) { + var id; + if (category == null) { + category = null; + } + id = element.id || element.name; + category || (category = element.category); + if (!category) { + return id; + } + return category + "-" + id; }; sortAccountsBy = function(getElem) { - return angular.forEach($scope.categories, function(cat) { - var sElem; - sElem = w.content.summary[cat.key]; + return angular.forEach(w.content.summary, function(sElem) { if (sElem.accounts) { return sElem.accounts.sort(function(a, b) { var res; @@ -9413,50 +9725,84 @@ $templateCache.put("widgets/sales-top-opportunities.tmpl.html","
0) { + all_values_are_positive = true; + inputData = []; + angular.forEach($scope.selectedElements, function(sElem) { + var data, dates, period; + data = angular.copy(sElem); + period = null; + if ((w.metadata != null) && (w.metadata.hist_parameters != null)) { + period = w.metadata.hist_parameters.period; + } + dates = _.map(w.content.dates, function(date) { + return $filter('momentDate')(date, period); + }); + inputData.push({ + title: data.name, + labels: dates, + values: data.totals + }); + return angular.forEach(data.totals, function(value) { + return all_values_are_positive && (all_values_are_positive = value >= 0); + }); + }); + options = { + scaleBeginAtZero: all_values_are_positive, + showXLabels: true, + datasetFill: $scope.selectedElements.length === 1, + pointDot: $scope.selectedElements.length === 1 + }; + chartData = ChartFormatterSvc.lineChart(inputData, options); + return $scope.drawTrigger.notify(chartData); + } + }; + unCollapsedSetting = {}; + unCollapsedSetting.initialized = false; + unCollapsedSetting.initialize = function() { + return unCollapsedSetting.initialized = true; + }; + unCollapsedSetting.toMetadata = function() { return { unCollapsed: $scope.unCollapsed }; }; w.settings.push(unCollapsedSetting); + selectedElementsSetting = {}; + selectedElementsSetting.initialized = false; + selectedElementsSetting.initialize = function() { + return selectedElementsSetting.initialized = true; + }; + selectedElementsSetting.toMetadata = function() { + var selectedElementsMetadata; + selectedElementsMetadata = _.map($scope.selectedElements, function(element) { + return getIdentifier(element); + }); + return { + selectedElements: selectedElementsMetadata + }; + }; + w.settings.push(selectedElementsSetting); return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('widgetAccountsBalanceSheet', function() { + module.directive('widgetAccountsProfitAndLoss', function() { return { restrict: 'A', - controller: 'WidgetAccountsBalanceSheetCtrl' + controller: 'WidgetAccountsProfitAndLossCtrl' }; }); @@ -9465,145 +9811,251 @@ $templateCache.put("widgets/sales-top-opportunities.tmpl.html","

" + name; + $scope.getEmployeeEarnings = function(anEmployee) { + if (anEmployee.salary != null) { + return $filter('mnoCurrency')(anEmployee.salary.amount, w.content.total.currency); + } else { + return '-'; + } }; - $scope.chartId = function() { - return "cashProjectionChart-" + w.id; + return $scope.widgetDeferred.resolve(settingsPromises); + }]); + + module.directive('widgetHrEmployeesList', function() { + return { + restrict: 'A', + controller: 'WidgetHrEmployeesListCtrl' }; + }); + +}).call(this); + +(function() { + var module; + + module = angular.module('impac.components.widgets.hr-leaves-balance', []); + + module.controller('WidgetHrLeavesBalanceCtrl', ["$scope", "$q", "$translate", function($scope, $q, $translate) { + var employee, name, settingsPromises, w; + w = $scope.widget; $scope.orgDeferred = $q.defer(); - settingsPromises = [$scope.orgDeferred.promise]; - $scope.trxList = { - display: false, - updated: false, - transactions: [] - }; - $scope.contacts = []; - $scope.trxList.show = function() { - return $scope.trxList.display = true; - }; - $scope.trxList.hide = function() { - $scope.trxList.display = false; - if ($scope.trxList.updated) { - return ImpacWidgetsSvc.show(w).then(function() { - return $scope.trxList.updated = false; + $scope.paramSelectorDeferred = $q.defer(); + settingsPromises = [$scope.orgDeferred.promise, $scope.paramSelectorDeferred.promise]; + w.initContext = function() { + if ($scope.isDataFound = !_.isEmpty(w.content) && !_.isEmpty(w.content.employees)) { + $scope.employeesOptions = _.map(w.content.employees, function(e) { + return { + value: e.uid, + label: e.lastname + " " + e.firstname + }; }); + return $scope.selectedEmployee = { + value: $scope.getEmployee().uid, + label: ($scope.getEmployee().lastname) + " " + ($scope.getEmployee().firstname) + }; } }; - $scope.trxList.fetch = function(currentPage) { - var params; - if (currentPage == null) { - currentPage = 1; - } - params = angular.merge($scope.trxList.params, { - metadata: _.pick(w.metadata, 'organization_ids'), - page: { - number: currentPage - }, - sort: '-expected_payment_date', - currency: w.metadata.currency - }); - return BoltResources.index(w.metadata.bolt_path, $scope.trxList.resources, params).then(function(response) { - var contactName, i, len, ref, trx; - _.remove($scope.trxList.transactions, function() { - return true; - }); - ref = response.data.data; - for (i = 0, len = ref.length; i < len; i++) { - trx = ref[i]; - contactName = ''; - if (trx.relationships && trx.relationships.contact && trx.relationships.contact.data) { - contactName = _.find(response.data.included, function(includedContact) { - return includedContact.id === trx.relationships.contact.data.id; - }).attributes.name; - } - $scope.trxList.transactions.push(angular.merge(trx.attributes, { - id: trx.id, - contact_name: contactName - })); - } - return $scope.trxList.totalRecords = response.data.meta.record_count; - })["finally"](function() { - return $scope.trxList.show(); - }); - }; - $scope.trxList.updateParams = function(resources, filter) { - $scope.trxList.resources = resources; - return $scope.trxList.params = { - include: 'contact', - fields: { - contacts: 'name' - }, - filter: filter - }; - }; - $scope.trxList.showAll = function(resources) { - var filter; - if (resources == null) { - resources = 'invoices'; + $scope.getEmployee = function() { + var e; + if (!$scope.isDataFound) { + return false; } - filter = { - status: ['AUTHORISED', 'APPROVED', 'SUBMITTED', 'FORECAST'], - reconciliation_status: 'UNRECONCILED' - }; - $scope.trxList.updateParams(resources, filter); - return $scope.trxList.fetch(); + e = w.content.employees[0]; + if (w.metadata && w.metadata.employee_id) { + e = _.find(w.content.employees, function(e) { + return e.uid === w.metadata.employee_id; + }) || w.content.employees[0]; + } + return angular.copy(e); }; - $scope.trxList.updateExpectedDate = function(trxId, date) { - return BoltResources.update(w.metadata.bolt_path, $scope.trxList.resources, trxId, { - expected_payment_date: moment(date).format('YYYY-MM-DD') - }).then(function() { - return $scope.trxList.updated = true; + employee = $scope.getEmployee(); + name = employee && employee.leaves[0].name; + if (name) { + $scope.vacationLeaves_translation = name; + } else { + $translate('impac.widget.hr_leaves_balance.vacation_leaves').then(function(translation) { + return $scope.vacationLeaves_translation = translation; + }); + } + name = employee && employee.leaves[1].name; + if (name) { + $scope.sickLeaves_translation = name; + } else { + $translate('impac.widget.hr_leaves_balance.sick_leaves').then(function(translation) { + return $scope.sickLeaves_translation = translation; }); + } + return $scope.widgetDeferred.resolve(settingsPromises); + }]); + + module.directive('widgetHrLeavesBalance', function() { + return { + restrict: 'A', + controller: 'WidgetHrLeavesBalanceCtrl' }; - $scope.trxList.changeResourcesType = function(resourcesType) { - if (resourcesType === $scope.trxList.resources) { - return; + }); + +}).call(this); + +(function() { + var module; + + module = angular.module('impac.components.widgets.hr-leaves-schedule', []); + + module.controller('WidgetHrLeavesScheduleCtrl', ["$scope", "$q", "ChartFormatterSvc", function($scope, $q, ChartFormatterSvc) { + var settingsPromises, w; + w = $scope.widget; + $scope.orgDeferred = $q.defer(); + settingsPromises = [$scope.orgDeferred.promise]; + w.initContext = function() { + var eventsArray; + if ($scope.isDataFound = angular.isDefined(w.content) && !_.isEmpty(w.content.summary)) { + eventsArray = []; + angular.forEach(w.content.summary, function(leave) { + return eventsArray.push({ + title: leave.employee_name + " - " + leave.title, + start: leave.start_date, + end: leave.end_date + }); + }); + return $scope.eventSources = angular.copy(eventsArray); } - $scope.trxList.resources = resourcesType; - return $scope.trxList.fetch(); }; - $scope.trxList.deleteTransaction = function(resourcesType, trxId) { - return BoltResources.destroy(w.metadata.bolt_path, resourcesType, trxId).then(function() { - return $scope.trxList.updated = true; - }); + return $scope.widgetDeferred.resolve(settingsPromises); + }]); + + module.directive('widgetHrLeavesSchedule', function() { + return { + restrict: 'A', + controller: 'WidgetHrLeavesScheduleCtrl' }; - $scope.trxList.updateSchedulableTransactions = function(resourcesType, trx) { - return $scope.trxList.updated = true; + }); + + module.directive('widgetComponentCalendar', ["$tranlate", function($tranlate) { + return { + scope: { + events: '=ngModel' + }, + restrict: 'A', + link: function(scope, element) { + var calendarOptions, getEvents; + scope.eventSources = []; + calendarOptions = { + header: { + left: $tranlate.instant('impac.common.action.calendar.left'), + center: $tranlate.instant('impac.common.action.calendar.center'), + right: $tranlate.instant('impac.common.action.calendar.right') + }, + contentHeight: 204 + }; + getEvents = function() { + return scope.events; + }; + return scope.$watch(getEvents, function(events) { + if (events.length > 0) { + element.fullCalendar('destroy'); + angular.extend(calendarOptions, { + events: scope.events + }); + return element.fullCalendar(calendarOptions); + } + }, true); + } }; - $scope.trxList.deleteChildrenTransactions = function(resourcesType, trxId) { - return BoltResources.update(w.metadata.bolt_path, resourcesType, trxId, { - recurring: false - }).then(function() { - return $scope.trxList.updated = true; - }); + }]); + +}).call(this); + +(function() { + var module; + + module = angular.module('impac.components.widgets.hr-payroll-summary', []); + + module.controller('WidgetHrPayrollSummaryCtrl', ["$scope", "$q", "ChartFormatterSvc", "$filter", "ImpacWidgetsSvc", "$translate", function($scope, $q, ChartFormatterSvc, $filter, ImpacWidgetsSvc, $translate) { + var fetchElement, getIdentifier, h, matchElementToSelectedElement, periodName, selectedElementsSetting, settingsPromises, sortData, sortEmployeesBy, unCollapsedSetting, w; + w = $scope.widget; + $scope.orgDeferred = $q.defer(); + $scope.timePeriodDeferred = $q.defer(); + $scope.widthDeferred = $q.defer(); + $scope.histModeDeferred = $q.defer(); + $scope.chartDeferred = $q.defer(); + settingsPromises = [$scope.orgDeferred.promise, $scope.timePeriodDeferred.promise, $scope.widthDeferred.promise, $scope.histModeDeferred.promise, $scope.chartDeferred.promise]; + $scope.ascending = true; + $scope.sortedColumn = 'employee'; + periodName = (h = $scope.widget.metadata.hist_parameters) && h.period ? h.period.toLowerCase() : 'monthly'; + $scope.periodTranslation = $translate.instant("impac.widget.settings.time_period.period." + periodName); + w.initContext = function() { + var foundElem, i, len, ref, sElemId; + if ($scope.isDataFound = angular.isDefined(w.content) && !_.isEmpty(w.content.summary) && !_.isEmpty(w.content.dates)) { + $scope.unCollapsed = w.metadata.unCollapsed || []; + if (!_.isEmpty(w.metadata.selectedElements)) { + $scope.selectedElements = []; + ref = w.metadata.selectedElements; + for (i = 0, len = ref.length; i < len; i++) { + sElemId = ref[i]; + foundElem = _.find(w.content.summary, function(statement) { + return statement.name === sElemId; + }); + foundElem || (foundElem = fetchElement(w.content.summary, sElemId)); + if (foundElem) { + $scope.selectedElements.push(foundElem); + } + } + } + if (!(($scope.selectedElements != null) && $scope.selectedElements.length > 0)) { + w.width = 6; + } + return sortData(); + } }; - $scope.trendList = { - display: false, - updated: false, - trends: [], - params: {} + $scope.getElementChartColor = function(index) { + return ChartFormatterSvc.getColor(index); }; - $scope.trendList.show = function() { - return $scope.trendList.display = true; + $scope.getLastValue = function(element) { + return (element.totals && element.totals[element.totals.length - 1]) || 0; }; - $scope.trendList.hide = function() { - $scope.trendList.display = false; - if ($scope.trendList.updated) { - return ImpacWidgetsSvc.show(w).then(function() { - return $scope.trendList.updated = false; - }); + $scope.getTotalSum = function(element) { + if (element.totals != null) { + return _.reduce(element.totals, function(memo, num) { + return memo + num; + }, 0); } }; - $scope.trendList.fetch = function(currentPage) { - var params; - if (currentPage == null) { - currentPage = 1; - } - params = angular.merge($scope.trendList.params, { - metadata: _.pick(w.metadata, 'organization_ids'), - page: { - number: currentPage + $scope.getName = function(element) { + if ((element != null) && (element.name != null)) { + if (element.name === "total_leaves") { + return $translate.instant('impac.widget.hr_payroll_summary.total_leaves'); } - }); - return BoltResources.index(w.metadata.bolt_path, 'trends', params).then(function(response) { - var i, len, ref, trend; - _.remove($scope.trendList.trends, function() { - return true; - }); - ref = response.data.data; - for (i = 0, len = ref.length; i < len; i++) { - trend = ref[i]; - if (!trend.period) { - trend.period = 'once'; - } - $scope.trendList.trends.push(angular.merge(trend.attributes, { - id: trend.id - })); + if (element.name === "total_super") { + return $translate.instant('impac.widget.hr_payroll_summary.total_superannuation'); } - return $scope.trendList.totalRecords = response.data.meta.record_count; - })["finally"](function() { - return $scope.trendList.show(); - }); - }; - $scope.trendList.showAll = function() { - return $scope.trendList.fetch(); - }; - $scope.trendList.updateTrend = function(trend) { - if (trend.period === 'once') { - trend.period = null; - } - return BoltResources.update(w.metadata.bolt_path, 'trends', trend.id, _.omit(trend, 'id')).then(function() { - return $scope.trendList.updated = true; - }); - }; - $scope.trendList.deleteTrend = function(trendId) { - _.remove($scope.trendList.trends, function(trend) { - return trend.id === trendId; - }); - return BoltResources.destroy(w.metadata.bolt_path, 'trends', trendId).then(function() { - return $scope.trendList.updated = true; - }); - }; - $scope.chartDeferred = $q.defer(); - $scope.chartPromise = $scope.chartDeferred.promise; - $scope.addForecastPopup = { - resourcesType: 'invoices', - display: false, - hide: function() { - return this.display = false; - }, - show: function() { - return this.display = true; + if (element.name === "total_reimbursement") { + return $translate.instant('impac.widget.hr_payroll_summary.total_reimbursements'); + } + if (element.name === "total_tax") { + return $translate.instant('impac.widget.hr_payroll_summary.total_taxes'); + } + if (element.name === "total_timeoff") { + return $translate.instant('impac.widget.hr_payroll_summary.total_time_off'); + } + return element.name.replace(/_/g, " "); } }; - $scope.addForecastPopup.createTransaction = function(trx, resourcesType) { - return BoltResources.create(w.metadata.bolt_path, resourcesType, { - title: trx.title, - transaction_number: "FOR-" + (Math.ceil(Math.random() * 10000)), - amount: trx.amount, - balance: trx.amount, - transaction_date: moment().format('YYYY-MM-DD'), - due_date: moment(trx.datePicker.date).format('YYYY-MM-DD'), - status: 'FORECAST', - recurring: trx.recurring, - recurring_pattern: trx.recurring_pattern, - recurring_end_date: trx.recurring_end_date ? moment(trx.recurring_end_date).format('YYYY-MM-DD') : null, - reconciliation_status: 'UNRECONCILED', - currency: w.metadata.currency - }, { - company: { - data: { - type: 'companies', - id: $scope.firstCompanyId - } - }, - contact: { - data: { - type: 'contacts', - id: trx.contact.id - } + $scope.getTrackedField = function() { + var allFieldsEquals, field; + if (!_.isEmpty($scope.selectedElements) && ($scope.selectedElements[0].id != null)) { + field = $scope.selectedElements[0].id.split('-')[0]; + allFieldsEquals = true; + angular.forEach($scope.selectedElements, function(element) { + return allFieldsEquals && (allFieldsEquals = element.id && field === element.id.split('-')[0]); + }); + if (allFieldsEquals) { + return $scope.getName({ + name: field + }); + } else { + return null; } - }).then(function() { - return ImpacWidgetsSvc.show(w); - }); + } }; - $scope.dupTrxList = { - display: false, - updated: false, - transactions: [] + $scope.formatDate = function(date) { + if ((w.metadata != null) && (w.metadata.hist_parameters != null)) { + return $filter('momentDate')(date, w.metadata.hist_parameters.period); + } else { + return $filter('momentDate')(date, 'default'); + } }; - $scope.dupTrxList.show = function() { - return $scope.dupTrxList.display = true; + $scope.sort = function(col) { + if ($scope.sortedColumn === col) { + $scope.ascending = !$scope.ascending; + } else { + $scope.ascending = true; + $scope.sortedColumn = col; + } + return sortData(); }; - $scope.dupTrxList.hide = function() { - $scope.dupTrxList.display = false; - if ($scope.dupTrxList.updated) { - return ImpacWidgetsSvc.show(w).then(function() { - return $scope.dupTrxList.updated = false; + $scope.toggleSelectedElement = function(element, statementName) { + var selectedElement; + if (statementName == null) { + statementName = null; + } + if ($scope.isSelected(element, statementName)) { + $scope.selectedElements = _.reject($scope.selectedElements, function(sElem) { + return matchElementToSelectedElement(element, statementName, sElem); }); + w.format(); + if (w.isExpanded() && $scope.selectedElements.length === 0) { + return w.toggleExpanded(); + } else { + return ImpacWidgetsSvc.updateWidgetSettings(w, false); + } + } else { + selectedElement = angular.copy(element); + selectedElement.category = statementName; + $scope.selectedElements || ($scope.selectedElements = []); + $scope.selectedElements.push(selectedElement); + w.format(); + if (!w.isExpanded()) { + return w.toggleExpanded(); + } else { + return ImpacWidgetsSvc.updateWidgetSettings(w, false); + } } }; - $scope.dupTrxList.fetch = function(currentPage) { - var params; - if (currentPage == null) { - currentPage = 1; + $scope.isSelected = function(element, statementName) { + if (statementName == null) { + statementName = null; } - params = angular.merge($scope.dupTrxList.params, { - metadata: _.pick(w.metadata, 'organization_ids'), - page: { - number: currentPage - } + return (element != null) && _.any($scope.selectedElements, function(sElem) { + return matchElementToSelectedElement(element, statementName, sElem); }); - return BoltResources.index(w.metadata.bolt_path, $scope.dupTrxList.resources, params).then(function(response) { - var i, len, ref, trx; - _.remove($scope.dupTrxList.transactions, function() { + }; + $scope.toggleCollapsed = function(element) { + if ((element != null) && (element.name != null)) { + if (_.find($scope.unCollapsed, (function(name) { + return element.name === name; + }))) { + $scope.unCollapsed = _.reject($scope.unCollapsed, function(name) { + return name === element.name; + }); + } else { + $scope.unCollapsed.push(element.name); + } + return ImpacWidgetsSvc.updateWidgetSettings(w, false); + } + }; + $scope.isCollapsed = function(element) { + if ((element != null) && (element.name != null)) { + if (_.find($scope.unCollapsed, (function(name) { + return element.name === name; + }))) { + return false; + } else { return true; - }); - ref = response.data.data; - for (i = 0, len = ref.length; i < len; i++) { - trx = ref[i]; - $scope.dupTrxList.transactions.push(angular.merge(trx.attributes, { - id: trx.id - })); } - return $scope.dupTrxList.totalRecords = response.data.meta.record_count; - })["finally"](function() { - return $scope.dupTrxList.show(); - }); + } }; - $scope.dupTrxList.updateParams = function(resources, filter) { - $scope.dupTrxList.resources = resources; - return $scope.dupTrxList.params = { - filter: filter - }; + $scope.hasElements = function() { + return ($scope.selectedElements != null) && $scope.selectedElements.length > 0; }; - $scope.dupTrxList.showAll = function(resources) { - var filter; - if (resources == null) { - resources = 'invoices'; + $scope.getSelectLineColor = function(element, statementName) { + var sElem; + if (statementName == null) { + statementName = null; } - filter = { - status: ['FORECAST'], - reconciliation_status: 'RECONCILING' - }; - $scope.dupTrxList.updateParams(resources, filter); - return $scope.dupTrxList.fetch(); - }; - $scope.dupTrxList.updateDuplicateTransaction = function(dupTrxId, action) { - _.remove($scope.dupTrxList.transactions, function(dupTrx) { - return dupTrx.id === dupTrxId; - }); - return BoltResources.patch(w.metadata.bolt_path, $scope.dupTrxList.resources, dupTrxId, action).then(function() { - return $scope.dupTrxList.updated = true; + sElem = _.find($scope.selectedElements, function(sElem) { + return matchElementToSelectedElement(element, statementName, sElem); }); - }; - $scope.dupTrxList.changeResourcesType = function(resourcesType) { - if (resourcesType === $scope.dupTrxList.resources) { - return; + if ($scope.hasElements()) { + return ChartFormatterSvc.getColor(_.indexOf($scope.selectedElements, sElem)); } - $scope.dupTrxList.resources = resourcesType; - return $scope.dupTrxList.fetch(); }; - $scope.addTrendPopup = { - display: false, - show: function() { - return this.display = true; - }, - hide: function() { - return this.display = false; + matchElementToSelectedElement = function(element, elementCategory, sElem) { + if (elementCategory == null) { + elementCategory = null; } + return getIdentifier(element, elementCategory) === getIdentifier(sElem); }; - $scope.addTrendPopup.lastDate = function(offset, periodicity) { - var period; - period = null; - if (offset === -1) { - return; - } - switch (periodicity) { - case 'once': - return null; - case 'daily': - period = 'days'; - break; - case 'weekly': - period = 'weeks'; - break; - case 'monthly': - period = 'months'; - break; - case 'yearly': - period = 'years'; - } - return moment().add(offset, period).format('YYYY-MM-DD'); - }; - $scope.addTrendPopup.createTrend = function(trend) { - var last_apply_date; - if (Number.isInteger(trend.untilDate)) { - last_apply_date = $scope.addTrendPopup.lastDate(trend.untilDate, trend.period); - } else { - last_apply_date = trend.untilDate; - } - return BoltResources.create(w.metadata.bolt_path, 'trends', { - name: trend.name, - rate: trend.rate, - period: trend.period === 'once' ? null : trend.period, - start_date: trend.startDate, - last_apply_date: last_apply_date - }, { - company: { - data: { - type: 'companies', - id: $scope.firstCompanyId - } - }, - user: { - data: { - type: 'users', - id: $scope.userId - } + fetchElement = function(statements, sElemId) { + var element, i, len, statement; + for (i = 0, len = statements.length; i < len; i++) { + statement = statements[i]; + if (statement.employees == null) { + continue; } - }).then(function() { - return ImpacWidgetsSvc.show(w); - }); - }; - onClickBar = function(event) { - var filter, resources, series; - series = this; - resources = (function() { - switch (series.userOptions.stack) { - case 'Payables': - return 'bills'; - case 'Receivables': - return 'invoices'; + element = _.find(statement.employees, function(e) { + return getIdentifier(e, statement.name) === sElemId; + }); + if (element != null) { + element = angular.merge(angular.copy(element), { + category: statement.name + }); + return element; } - })(); - if (resources == null) { - return; } - filter = { - expected_payment_date: dateFilter(event.point.x), - status: ['AUTHORISED', 'APPROVED', 'SUBMITTED', 'FORECAST'], - reconciliation_status: 'UNRECONCILED' - }; - $scope.trxList.updateParams(resources, filter); - return $scope.trxList.fetch(); }; - legendFormatter = function() { - var name; - name = this.name; - if (name !== 'Projected cash') { - return imgTemplate(imgSrc(name), name); + getIdentifier = function(element, category) { + var id; + if (category == null) { + category = null; } - return imgTemplate(imgSrc(name), name) + '
' + imgTemplate(imgSrc('cashFlow'), 'Cash flow'); + id = element.id || element.name; + category || (category = element.category); + if (!category) { + return id; + } + return category + "-" + id; }; - onZoom = function(event) { - zoomMetadata = angular.merge(w.metadata, { - xAxis: { - max: event.max, - min: event.min + sortEmployeesBy = function(getElem) { + return angular.forEach(w.content.summary, function(sElem) { + if (sElem.employees) { + return sElem.employees.sort(function(a, b) { + var res; + res = getElem(a) > getElem(b) ? 1 : getElem(a) < getElem(b) ? -1 : 0; + if (!$scope.ascending) { + res *= -1; + } + return res; + }); } }); - if (!updateLocked) { - updateLocked = true; - return $timeout(function() { - return ImpacWidgetsSvc.update(w, { - metadata: zoomMetadata - }, false)["finally"](function() { - return updateLocked = false; - }); - }, 1000); + }; + sortData = function() { + if ($scope.sortedColumn === 'employee') { + return sortEmployeesBy(function(el) { + return el.name; + }); + } else if ($scope.sortedColumn === 'total') { + return sortEmployeesBy(function(el) { + return $scope.getLastValue(el); + }); } }; - onClickLegend = function() { - var i, len, ref, results, s, series; - series = this; - ref = $scope.chart.hc.series; - results = []; - for (i = 0, len = ref.length; i < len; i++) { - s = ref[i]; - if (s.userOptions.linkedTo !== series.name) { - continue; - } - if (series.visible) { - results.push(s.hide()); + $scope.drawTrigger = $q.defer(); + w.format = function() { + var all_values_are_positive, chartData, inputData, labels, options, pieData, pieOptions; + if ($scope.isDataFound && $scope.hasElements()) { + if (w.isHistoryMode) { + all_values_are_positive = true; + inputData = []; + labels = _.map(w.content.dates, function(date) { + if (w.metadata.hist_parameters && w.metadata.hist_parameters.period === "YEARLY") { + return $filter('momentDate')(date, 'YEARLY'); + } else if (w.metadata.hist_parameters && w.metadata.hist_parameters.period === "QUARTERLY") { + return $filter('momentDate')(date, 'QUARTERLY'); + } else if (w.metadata.hist_parameters && w.metadata.hist_parameters.period === "MONTHLY") { + return $filter('momentDate')(date, 'MONTHLY'); + } else if (w.metadata.hist_parameters && w.metadata.hist_parameters.period === "WEEKLY") { + return $filter('momentDate')(date, 'WEEKLY'); + } else if (w.metadata.hist_parameters && w.metadata.hist_parameters.period === "DAILY") { + return $filter('momentDate')(date, 'DAILY'); + } else { + return $filter('momentDate')(date, 'default'); + } + }); + angular.forEach($scope.selectedElements, function(sElem) { + var data; + data = angular.copy(sElem); + inputData.push({ + title: data.name, + labels: labels, + values: data.totals + }); + return angular.forEach(data.totals, function(value) { + return all_values_are_positive && (all_values_are_positive = value >= 0); + }); + }); + options = { + scaleBeginAtZero: all_values_are_positive, + showXLabels: true, + datasetFill: $scope.selectedElements.length === 1, + pointDot: $scope.selectedElements.length === 1, + currency: 'hide' + }; + chartData = ChartFormatterSvc.lineChart(inputData, options); } else { - results.push(s.show()); + pieData = _.map($scope.selectedElements, function(elem) { + return { + label: $filter('titleize')($scope.getName({ + name: elem.name + })), + value: $scope.getLastValue(elem) + }; + }); + pieOptions = { + showTooltips: true, + percentageInnerCutout: 50, + tooltipFontSize: 12, + currency: 'hide' + }; + chartData = ChartFormatterSvc.pieChart(pieData, pieOptions); } + return $scope.drawTrigger.notify(chartData); } - return results; }; - loadContacts = function() { - return BoltResources.index(w.metadata.bolt_path, 'contacts', { - metadata: _.pick(w.metadata, 'organization_ids') - }).then(function(response) { - return $scope.contacts = response.data.data; - }); + unCollapsedSetting = {}; + unCollapsedSetting.initialized = false; + unCollapsedSetting.initialize = function() { + return unCollapsedSetting.initialized = true; }; - createUser = function() { - if ($scope.firstCompanyId) { - return BoltResources.create(w.metadata.bolt_path, 'users', { - first_name: ImpacMainSvc.config.userData.name, - last_name: ImpacMainSvc.config.userData.surname, - email: ImpacMainSvc.config.userData.email - }, { - companies: { - data: [ - { - type: 'companies', - id: $scope.firstCompanyId - } - ] - } - }).then(function(response) { - return $scope.userId = response.data.data.id; - }); - } + unCollapsedSetting.toMetadata = function() { + return { + unCollapsed: $scope.unCollapsed + }; }; - w.initContext = function() { - var cashFlowSerie; - cashFlowSerie = _.find(w.content.chart.series, function(serie) { - return serie.name === "Cash flow"; + w.settings.push(unCollapsedSetting); + selectedElementsSetting = {}; + selectedElementsSetting.initialized = false; + selectedElementsSetting.initialize = function() { + return selectedElementsSetting.initialized = true; + }; + selectedElementsSetting.toMetadata = function() { + var selectedElementsMetadata; + selectedElementsMetadata = _.map($scope.selectedElements, function(element) { + return getIdentifier(element); }); - cashFlowSerie.data = []; - cashFlowSerie.type = 'area'; - cashFlowSerie.showInLegend = false; - BoltResources.index(w.metadata.bolt_path, 'companies', { - metadata: _.pick(w.metadata, 'organization_ids') - }).then(function(response) { - if (_.isEmpty(response.data.data)) { - w.demoData = true; - } else { - w.demoData = false; - $scope.firstCompanyId = response.data.data[0].id; - } - return loadContacts(); - }); - return BoltResources.index(w.metadata.bolt_path, 'users', { - filter: { - email: ImpacMainSvc.config.userData.email - }, - metadata: _.pick(w.metadata, 'organization_ids') - }).then(function(response) { - if (response.data.meta.record_count > 0) { - return $scope.userId = response.data.data[0].id; - } else { - return createUser(); - } - }); - }; - w.format = function() { - var _highChartOptions; - _highChartOptions = { - chartType: 'line', - currency: w.metadata.currency, - showToday: true + return { + selectedElements: selectedElementsMetadata }; - $scope.chart = new HighchartsFactory($scope.chartId(), w.content.chart.series, _highChartOptions); - $scope.chart.addCustomLegend(legendFormatter); - $scope.chart.addSeriesEvent('click', onClickBar); - $scope.chart.addSeriesEvent('legendItemClick', onClickLegend); - $scope.chart.addXAxisOptions({ - defaults: w.metadata.xAxis, - callback: onZoom - }); - $scope.chart.render(); - return $scope.chartDeferred.notify($scope.chart); }; + w.settings.push(selectedElementsSetting); return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('widgetAccountsCashProjection', function() { + module.directive('widgetHrPayrollSummary', function() { return { restrict: 'A', - controller: 'WidgetAccountsCashProjectionCtrl' + controller: 'WidgetHrPayrollSummaryCtrl' }; }); @@ -10153,288 +10607,194 @@ $templateCache.put("widgets/sales-top-opportunities.tmpl.html","
0) { - return "+" + aVariance + " %"; - } else { - return aVariance + " %"; + $scope.getPeriod = function() { + var period, period_param; + if ($scope.isDataFound && w.metadata && w.metadata.hist_parameters) { + period_param = w.metadata.hist_parameters.period || "MONTHLY"; + period = "day"; + if (period_param !== "DAILY") { + period = period_param.substr(0, period_param.length - 2).toLowerCase(); } - } else { - return "-"; - } - }; - $scope.getLastVariance = function(element) { - if ((element.variances != null) && (_.last(element.variances) != null)) { - return $scope.formatVariance(_.last(element.variances)); - } else { - return "-"; - } - }; - $scope.getVarianceClassColor = function(aVariance) { - if (parseInt(aVariance) > 0) { - return 'positive'; - } else if (parseInt(aVariance) < 0) { - return 'negative'; - } else { - return null; + return "(current " + period + ")"; } }; - $scope.getName = function(element) { - if ((element != null) && (element.name != null)) { - return element.name.replace(/_/g, " "); + $scope.drawTrigger = $q.defer(); + w.format = function() { + var all_values_are_positive, chartData, dates, inputData, options, period; + if ($scope.isDataFound) { + period = null; + if ((w.metadata != null) && (w.metadata.hist_parameters != null)) { + period = w.metadata.hist_parameters.period; + } + dates = _.map(w.content.dates, function(date) { + return $filter('momentDate')(date, period); + }); + inputData = { + title: $translate.instant('impac.widget.hr_payroll_taxes.payroll_taxes'), + labels: dates, + values: w.content.total_tax + }; + all_values_are_positive = true; + angular.forEach(w.content.total_tax, function(value) { + return all_values_are_positive && (all_values_are_positive = value >= 0); + }); + options = { + scaleBeginAtZero: all_values_are_positive, + showXLabels: false + }; + chartData = ChartFormatterSvc.lineChart([inputData], options); + return $scope.drawTrigger.notify(chartData); } }; - $scope.sort = function(col) { - if ($scope.sortedColumn === col) { - $scope.ascending = !$scope.ascending; - } else { - $scope.ascending = true; - $scope.sortedColumn = col; - } - return sortData(); + return $scope.widgetDeferred.resolve(settingsPromises); + }]); + + module.directive('widgetHrPayrollTaxes', function() { + return { + restrict: 'A', + controller: 'WidgetHrPayrollTaxesCtrl' }; - $scope.toggleSelectedElement = function(element, statementName) { - if (statementName == null) { - statementName = null; - } - if ($scope.isSelected(element, statementName)) { - $scope.selectedElement = null; - if (w.isExpanded()) { - return w.toggleExpanded(); - } else { - return ImpacWidgetsSvc.updateWidgetSettings(w, false); - } - } else { - $scope.selectedElement = angular.copy(element); - $scope.selectedElement.category = statementName; - w.format(); - if (!w.isExpanded()) { - return w.toggleExpanded(); - } else { - return ImpacWidgetsSvc.updateWidgetSettings(w, false); - } + }); + +}).call(this); + +(function() { + var module; + + module = angular.module('impac.components.widgets.hr-salaries-summary', []); + + module.controller('WidgetHrSalariesSummaryCtrl', ["$scope", "$q", "ChartFormatterSvc", "$translate", function($scope, $q, ChartFormatterSvc, $translate) { + var settingsPromises, w; + w = $scope.widget; + $scope.orgDeferred = $q.defer(); + $scope.widthDeferred = $q.defer(); + $scope.paramSelectorDeferred1 = $q.defer(); + $scope.paramSelectorDeferred2 = $q.defer(); + $scope.chartDeferred = $q.defer(); + settingsPromises = [$scope.orgDeferred.promise, $scope.widthDeferred.promise, $scope.paramSelectorDeferred1.promise, $scope.paramSelectorDeferred2.promise, $scope.chartDeferred.promise]; + w.initContext = function() { + $scope.isDataFound = !_.isEmpty(w.content) && (w.content.summary != null) && !_.isEmpty(w.content.summary.data); + if ($scope.isDataFound) { + $scope.periodOptions = [ + { + label: _.capitalize($translate.instant("impac.widget.settings.time_period.period.yearly").toLowerCase()), + value: "yearly" + }, { + label: _.capitalize($translate.instant("impac.widget.settings.time_period.period.monthly").toLowerCase()), + value: "monthly" + }, { + label: _.capitalize($translate.instant("impac.widget.settings.time_period.period.weekly").toLowerCase()), + value: "weekly" + }, { + label: _.capitalize($translate.instant("impac.widget.settings.time_period.period.daily").toLowerCase()), + value: "daily" + } + ]; + $scope.filterOptions = [ + { + label: $translate.instant("impac.common.label.gender"), + value: "gender" + }, { + label: $translate.instant("impac.common.label.age_range"), + value: "age_range" + }, { + label: $translate.instant("impac.common.label.job_title"), + value: "job_title" + } + ]; + $scope.period = angular.copy(_.find($scope.periodOptions, function(o) { + return o.value === w.content.total.period.toLowerCase(); + }) || $scope.periodOptions[0]); + return $scope.filter = angular.copy(_.find($scope.filterOptions, function(o) { + return o.value === w.content.summary.filter; + }) || $scope.filterOptions[0]); } }; - $scope.isSelected = function(element, statementName) { - if (statementName == null) { - statementName = null; - } - return (element != null) && ($scope.selectedElement != null) && (matchElementToSelectedElement(element, statementName, $scope.selectedElement)); - }; - $scope.toggleCollapsed = function(element) { - if ((element != null) && (element.name != null)) { - if (_.find($scope.unCollapsed, (function(name) { - return element.name === name; - }))) { - $scope.unCollapsed = _.reject($scope.unCollapsed, function(name) { - return name === element.name; - }); - } else { - $scope.unCollapsed.push(element.name); - } - return ImpacWidgetsSvc.updateWidgetSettings(w, false); - } - }; - $scope.isCollapsed = function(element) { - if ((element != null) && (element.name != null)) { - if (_.find($scope.unCollapsed, (function(name) { - return element.name === name; - }))) { - return false; - } else { - return true; - } - if ($scope.selectedElement == null) { - return w.width = 6; - } - } - }; - $scope.getSelectLineColor = function(elem) { - return ChartFormatterSvc.getColor(0); - }; - fetchElement = function(statements) { - var element, i, len, statement; - for (i = 0, len = statements.length; i < len; i++) { - statement = statements[i]; - if (statement.accounts == null) { - continue; - } - element = _.find(statement.accounts, function(acc) { - return getIdentifier(acc, statement.name) === w.metadata.selectedElement; - }); - if (element != null) { - element = angular.merge(angular.copy(element), { - category: statement.name - }); - return element; - } - } - }; - matchElementToSelectedElement = function(element, elementCategory, sElem) { - if (elementCategory == null) { - elementCategory = null; - } - return getIdentifier(element, elementCategory) === getIdentifier(sElem); - }; - getIdentifier = function(element, category) { - var id; - if (category == null) { - category = null; - } - id = element.id || element.name; - category || (category = element.category); - if (!category) { - return id; - } - return category + "-" + id; - }; - sortAccountsBy = function(getElem) { - return angular.forEach(w.content.summary, function(sElem) { - if (sElem.accounts) { - return sElem.accounts.sort(function(a, b) { - var res; - res = getElem(a) > getElem(b) ? 1 : getElem(a) < getElem(b) ? -1 : 0; - if (!$scope.ascending) { - res *= -1; - } - return res; - }); - } - }); - }; - sortData = function() { - if ($scope.sortedColumn === 'account') { - return sortAccountsBy(function(el) { - return el.name; - }); - } else if ($scope.sortedColumn === 'total') { - return sortAccountsBy(function(el) { - return $scope.getLastValue(el); - }); - } else if ($scope.sortedColumn === 'variance') { - return sortAccountsBy(function(el) { - return $scope.getLastVariance(el); - }); - } + $scope.getColorByIndex = function(index) { + return ChartFormatterSvc.getColor(index); }; $scope.drawTrigger = $q.defer(); w.format = function() { - var all_values_are_positive, chartData, data, dates, inputData, options, period; - if ($scope.isDataFound && ($scope.selectedElement != null)) { - data = angular.copy($scope.selectedElement); - period = null; - if ((w.metadata != null) && (w.metadata.hist_parameters != null)) { - period = w.metadata.hist_parameters.period; - } - dates = _.map(w.content.dates, function(date) { - return $filter('momentDate')(date, period); - }); - inputData = { - labels: dates, - datasets: [ + var barData, barOptions, chartData, lineData, lineOptions; + if ($scope.isDataFound) { + barData = { + labels: _.map(w.content.summary.data, function(elem) { + return elem.label; + }), + values: _.map(w.content.summary.data, function(elem) { + return elem.value; + }) + }; + if ($scope.filter.value === 'gender') { + barOptions = { + showTooltips: false + }; + chartData = ChartFormatterSvc.barChart(barData, barOptions); + } else if ($scope.filter.value === 'job_title') { + barOptions = { + showTooltips: false, + showXLabels: false, + barDatasetSpacing: 15 + }; + chartData = ChartFormatterSvc.barChart(barData, barOptions); + } else if ($scope.filter.value === 'age_range') { + if (_.last(barData.labels) === "unknown") { + barData.labels.pop(); + barData.values.pop(); + } + lineData = [ { - title: data.label, - values: data.cash_flows + title: "Average salary", + labels: barData.labels, + values: barData.values } - ] - }; - all_values_are_positive = true; - angular.forEach(data.cash_flows, function(value) { - return all_values_are_positive && (all_values_are_positive = value >= 0); - }); - options = { - scaleBeginAtZero: all_values_are_positive, - showXLabels: true - }; - chartData = ChartFormatterSvc.combinedBarChart(inputData, options); + ]; + lineOptions = { + scaleBeginAtZero: true, + showXLabels: false + }; + chartData = ChartFormatterSvc.lineChart(lineData, lineOptions); + } else { + return { + error: { + message: "wrong filter", + code: 400 + } + }; + } return $scope.drawTrigger.notify(chartData); } }; - unCollapsedSetting = {}; - unCollapsedSetting.initialized = false; - unCollapsedSetting.initialize = function() { - return unCollapsedSetting.initialized = true; - }; - unCollapsedSetting.toMetadata = function() { - return { - unCollapsed: $scope.unCollapsed - }; - }; - w.settings.push(unCollapsedSetting); - selectedElementSetting = {}; - selectedElementSetting.initialized = false; - selectedElementSetting.initialize = function() { - return selectedElementSetting.initialized = true; - }; - selectedElementSetting.toMetadata = function() { - if ($scope.selectedElement == null) { - return { - selectedElement: null - }; - } - return { - selectedElement: getIdentifier($scope.selectedElement) - }; - }; - w.settings.push(selectedElementSetting); return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('widgetAccountsCashSummary', function() { + module.directive('widgetHrSalariesSummary', function() { return { restrict: 'A', - controller: 'WidgetAccountsCashSummaryCtrl' + controller: 'WidgetHrSalariesSummaryCtrl' }; }); @@ -10443,96 +10803,48 @@ $templateCache.put("widgets/sales-top-opportunities.tmpl.html","
15) { - inputData.labels.length = 15; - } - if (inputData.values.length > 15) { - inputData.values.length = 15; - } - options = { - showTooltips: false, - showXLabels: false, - barValueSpacing: Math.max(8 - w.content.companies.length, 1) - }; - chartData = ChartFormatterSvc.barChart(inputData, options); - return $scope.drawTrigger.notify(chartData); + e = w.content.employees[0]; + if (w.metadata && w.metadata.employee_id) { + e = _.find(w.content.employees, function(e) { + return e.uid === w.metadata.employee_id; + }) || w.content.employees[0]; } + return angular.copy(e); }; return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('widgetAccountsClassComparison', function() { + module.directive('widgetHrSuperannuationAccruals', function() { return { restrict: 'A', - controller: 'WidgetAccountsClassComparisonCtrl' + controller: 'WidgetHrSuperannuationAccrualsCtrl' }; }); @@ -10541,145 +10853,101 @@ $templateCache.put("widgets/sales-top-opportunities.tmpl.html","
1) { - angular.merge($scope.comparisonModeOptions, w.metadata.comparison_mode); - } - $scope.savedAccountsList = gatherSavedAccounts(); - $scope.isDataFound = (w.content != null) && !_.isEmpty(w.content.complete_list) || $scope.isComparisonMode(); - $scope.noComparableAccounts = $scope.isComparisonMode() && (w.content != null) && _.isEmpty(w.content.complete_list); - return $scope.canSelectComparisonMode = scanAccountsForMultiOrgData(); - }); - }; - scanAccountsForMultiOrgData = function() { - if (w.content == null) { - return false; + if ($scope.isDataFound = angular.isDefined(w.content) && !_.isEmpty(w.content.employees) && !_.isEmpty(w.content.dates)) { + $scope.employeesOptions = _.map(w.content.employees, function(e) { + return { + value: e.id, + label: e.lastname + " " + e.firstname + }; + }); + $scope.selectedEmployee = { + value: $scope.getEmployee().id, + label: ($scope.getEmployee().lastname) + " " + ($scope.getEmployee().firstname) + }; + return $scope.unCollapsed = w.metadata.unCollapsed || []; } - return _.uniq(_.pluck(w.content.complete_list, 'org_name')).length > 1; }; - $scope.isComparisonMode = function() { - return _.result(_.find($scope.comparisonModeOptions, 'id', 'compare_accounts'), 'value') || false; + $scope.toggleCollapsed = function(categoryName) { + if (categoryName != null) { + if (_.find($scope.unCollapsed, (function(name) { + return categoryName === name; + }))) { + $scope.unCollapsed = _.reject($scope.unCollapsed, function(name) { + return name === categoryName; + }); + } else { + $scope.unCollapsed.push(categoryName); + } + return ImpacWidgetsSvc.updateWidgetSettings(w, false); + } }; - $scope.hasAccountsSelected = function() { - return w.selectedAccounts && w.selectedAccounts.length > 0; + $scope.isCollapsed = function(categoryName) { + if (categoryName != null) { + if (_.find($scope.unCollapsed, (function(name) { + return categoryName === name; + }))) { + return false; + } else { + return true; + } + } }; - $scope.getAccountColor = function(anAccount) { - if ($scope.isComparisonMode()) { - return ChartFormatterSvc.getColor(_.indexOf(w.selectedAccounts[0].accounts, anAccount)); + $scope.getEmployee = function() { + if (!$scope.isDataFound) { + return false; + } + if (w.metadata && w.metadata.employee_id) { + return _.find(w.content.employees, function(e) { + return e.id === w.metadata.employee_id; + }) || w.content.employees[0]; } else { - return ChartFormatterSvc.getColor(_.indexOf(w.selectedAccounts, anAccount)); + return w.content.employees[0]; } }; - $scope.addAccount = function(anAccount) { - if (!anAccount) { - return; + $scope.getEmployeeTimeWorked = function() { + var employee; + if (employee = $scope.getEmployee()) { + return _.find(w.content.employees, function(e) { + return e.id === employee.id; + }).total_time_worked; } - w.moveAccountToAnotherList(anAccount, w.remainingAccounts, w.selectedAccounts); - $scope.savedAccountsList.push(anAccount.uid); - return w.format(); }; - $scope.removeAccount = function(anAccount) { - if (!anAccount) { - return; + $scope.getEmployeeTimeOff = function() { + var employee; + if (employee = $scope.getEmployee()) { + return _.find(w.content.employees, function(e) { + return e.id === employee.id; + }).total_time_off; } - w.moveAccountToAnotherList(anAccount, w.selectedAccounts, w.remainingAccounts); - $scope.savedAccountsList.splice($scope.savedAccountsList.indexOf(anAccount.uid), 1); - return w.format(); - }; - $scope.formatAmount = function(anAccount) { - return $filter('mnoCurrency')(anAccount.current_balance, anAccount.currency); }; - gatherSavedAccounts = function() { - var areGrouped, group, i, len, savedUids, uid; - savedUids = w.metadata.accounts_list; - if (_.isEmpty(savedUids)) { - return []; - } - areGrouped = savedUids[0].indexOf(':') >= 0; - if (!$scope.isComparisonMode() && areGrouped) { - return _.flatten(_.map(savedUids, function(a) { - return a.split(':'); - })); - } else if ($scope.isComparisonMode() && !areGrouped) { - for (i = 0, len = savedUids.length; i < len; i++) { - uid = savedUids[i]; - group = _.find(w.content.complete_list, function(group) { - return group.uid.indexOf(uid) >= 0; - }); - if (group) { - return [group.uid]; - } - } - return []; - } else { - return savedUids; - } + unCollapsedSetting = {}; + unCollapsedSetting.initialized = false; + unCollapsedSetting.initialize = function() { + return unCollapsedSetting.initialized = true; }; - $scope.drawTrigger = $q.defer(); - w.format = function() { - var inputData; - inputData = { - labels: [], - values: [] + unCollapsedSetting.toMetadata = function() { + return { + unCollapsed: $scope.unCollapsed }; - return $timeout(function() { - var account, chartData, groupedAccount, i, j, len, len1, options, ref, ref1; - ref = w.selectedAccounts; - for (i = 0, len = ref.length; i < len; i++) { - account = ref[i]; - if ($scope.isComparisonMode()) { - ref1 = account.accounts; - for (j = 0, len1 = ref1.length; j < len1; j++) { - groupedAccount = ref1[j]; - inputData.labels.push(groupedAccount.name); - inputData.values.push(groupedAccount.current_balance); - } - } else { - inputData.labels.push(account.name); - inputData.values.push(account.current_balance); - } - } - while (inputData.values.length < 15) { - inputData.labels.push(""); - inputData.values.push(null); - } - options = { - showTooltips: false, - showXLabels: false, - barDatasetSpacing: 9 - }; - chartData = ChartFormatterSvc.barChart(inputData, options); - return $scope.drawTrigger.notify(chartData); - }, 500); }; + w.settings.push(unCollapsedSetting); return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('widgetAccountsComparison', function() { + module.directive('widgetHrTimesheets', function() { return { restrict: 'A', - controller: 'WidgetAccountsComparisonCtrl' + controller: 'WidgetHrTimesheetsCtrl' }; }); @@ -10688,145 +10956,125 @@ $templateCache.put("widgets/sales-top-opportunities.tmpl.html","
= 0); - return value; - }); - inputData.push({ - title: 'Test Data', - labels: dates, - values: data - }); - options = { - scaleBeginAtZero: all_values_are_positive, - showXLabels: false, - datasetFill: true, - pointDot: true - }; - chartData = ChartFormatterSvc.lineChart(inputData, options); - return $scope.drawTrigger.notify(chartData); - }, 500); - }; - $scope.addAccountToFormula = function(account) { - if (account == null) { - return; - } - if (w.selectedAccounts.length > 0) { - w.formula += " + {" + (w.selectedAccounts.length + 1) + "}"; - } else { - w.formula = "{1}"; + $scope.isDataFound = !_.isEmpty(w.content) && (w.content.summary != null) && !_.isEmpty(w.content.summary.data); + if ($scope.isDataFound) { + $scope.periodOptions = [ + { + label: _.capitalize($translate.instant("impac.widget.settings.time_period.period.yearly").toLowerCase()), + value: "yearly" + }, { + label: _.capitalize($translate.instant("impac.widget.settings.time_period.period.monthly").toLowerCase()), + value: "monthly" + }, { + label: _.capitalize($translate.instant("impac.widget.settings.time_period.period.weekly").toLowerCase()), + value: "weekly" + }, { + label: _.capitalize($translate.instant("impac.widget.settings.time_period.period.daily").toLowerCase()), + value: "daily" + } + ]; + $scope.filterOptions = [ + { + label: $translate.instant("impac.common.label.gender"), + value: "gender" + }, { + label: $translate.instant("impac.common.label.age_range"), + value: "age_range" + }, { + label: $translate.instant("impac.common.label.salary_range"), + value: "salary_range" + }, { + label: $translate.instant("impac.common.label.job_title"), + value: "job_title" + } + ]; + $scope.period = angular.copy(_.find($scope.periodOptions, function(o) { + return o.value === w.content.total.period.toLowerCase(); + }) || $scope.periodOptions[0]); + return $scope.filter = angular.copy(_.find($scope.filterOptions, function(o) { + return o.value === w.content.summary.filter; + }) || $scope.filterOptions[0]); } - return w.moveAccountToAnotherList(account, w.remainingAccounts, w.selectedAccounts, false); }; - $scope.removeAccountFromFormula = function(account) { - var diffAccountIndex, diffAccountUid, i, indexPattern, newFormula, nextUids, prevUids, removePattern; - prevUids = _.map(w.selectedAccounts, function(e) { - return e.uid; - }); - nextUids = _.reject(prevUids, function(e) { - return e === account.uid; - }); - diffAccountUid = _.first(_.difference(prevUids, nextUids)); - diffAccountIndex = _.indexOf(prevUids, diffAccountUid) + 1; - if (diffAccountIndex === 1) { - removePattern = "{" + diffAccountIndex + "\\}\\s*(-|\\*|\\/|\\+)*\\s*"; - } else { - removePattern = "\\s*(-|\\*|\\/|\\+)*\\s*\\{" + diffAccountIndex + "\\}"; - } - newFormula = angular.copy(w.formula).replace(new RegExp(removePattern, 'g'), ''); - i = diffAccountIndex + 1; - while (i <= prevUids.length) { - indexPattern = "\\{" + i + "\\}"; - newFormula = newFormula.replace(new RegExp(indexPattern, 'g'), "{" + (i - 1) + "}"); - i++; + $scope.getTotalWorkforce = function() { + if ($scope.isDataFound) { + return w.content.total.amount; } - w.formula = angular.copy(newFormula); - return w.moveAccountToAnotherList(account, w.selectedAccounts, w.remainingAccounts, false); - }; - $scope.formulaModal = $scope.$new(); - $scope.formulaModal.config = { - backdrop: 'static', - template: $templateCache.get('widgets/accounts-custom-calculation/formula.modal.html'), - size: 'lg', - scope: $scope.formulaModal, - keyboard: false - }; - $scope.formulaModal.open = function() { - var self; - self = $scope.formulaModal; - self.modalOrgDeferred = $q.defer(); - self.timePeriodDeferred = $q.defer(); - _.remove(w.settings, (function(set) { - return set.key === "organizations"; - })); - self.instance = $uibModal.open(self.config); - return $q.all([self.modalOrgDeferred.promise, self.timePeriodDeferred.promise]).then(function(success) { - return $scope.initSettings(); - }); }; - $scope.reloadAccountsLists = function(orgs) { - if ((orgs != null) && _.some(_.values(orgs))) { - return $scope.updateWidgetSettings(); + $scope.getNumberOfEmployees = function() { + if ($scope.isDataFound) { + return w.content.total.employees; } }; - $scope.updateWidgetSettings = function() { - return ImpacWidgetsSvc.updateWidgetSettings(w); - }; - $scope.formulaModal.cancel = function() { - $scope.initSettings(); - return $scope.formulaModal.close(); + $scope.getCurrency = function() { + if ($scope.isDataFound) { + return w.content.total.currency; + } }; - $scope.formulaModal.proceed = function() { - ImpacWidgetsSvc.updateWidgetSettings(w); - return $scope.formulaModal.close(); + $scope.formatSalaryRange = function(aRange) { + var range1, range2; + range1 = $filter('mnoCurrency')(aRange.label.split('-')[0], aRange.currency, false); + range2 = $filter('mnoCurrency')(aRange.label.split('-')[1], aRange.currency, false); + return [range1, range2].join(" - "); }; - $scope.formulaModal.close = function() { - return $scope.formulaModal.instance.close(); + $scope.getColorByIndex = function(index) { + return ChartFormatterSvc.getColor(index); }; - $scope.$watch((function() { - return w.isEditMode; - }), function(result, prev) { - if (result && !prev) { - return $scope.formulaModal.open(); + $scope.drawTrigger = $q.defer(); + w.format = function() { + var barData, barOptions, chartData, pieData, pieOptions; + if ($scope.isDataFound) { + if ($scope.filter.value === 'salary_range') { + barData = { + labels: _.map(w.content.summary.data, function(elem) { + return $scope.formatSalaryRange(elem); + }), + values: _.map(w.content.summary.data, function(elem) { + return elem.value; + }) + }; + barOptions = { + showTooltips: false, + showXLabels: false, + barDatasetSpacing: 15 + }; + chartData = ChartFormatterSvc.barChart(barData, barOptions); + } else { + pieData = _.map(w.content.summary.data, function(elem) { + return { + label: elem.label, + value: elem.value + }; + }); + pieOptions = { + showTooltips: true, + percentageInnerCutout: 50, + tooltipFontSize: 12 + }; + chartData = ChartFormatterSvc.pieChart(pieData, pieOptions); + } + return $scope.drawTrigger.notify(chartData); } - }); + }; return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('widgetAccountsCustomCalculation', function() { + module.directive('widgetHrWorkforceSummary', function() { return { restrict: 'A', - controller: 'WidgetAccountsCustomCalculationCtrl' + controller: 'WidgetHrWorkforceSummaryCtrl' }; }); @@ -10835,77 +11083,156 @@ $templateCache.put("widgets/sales-top-opportunities.tmpl.html","
0)) { + w.width = 6; } return sortData(); } }; - $scope.toggleCollapsed = function(groupName) { - if (groupName != null) { + $scope.getElementChartColor = function(index) { + if (index != null) { + return ChartFormatterSvc.getColor(index); + } + }; + $scope.getLastValue = function(element) { + if ((element != null) && (element.totals != null)) { + return _.last(element.totals); + } + }; + $scope.getTotalSum = function(element) { + if ((element != null) && (element.totals != null)) { + return _.reduce(element.totals, function(memo, num) { + return memo + num; + }, 0); + } + }; + $scope.getName = function(element) { + if ((element != null) && (element.name != null)) { + return element.name.replace(/_/g, " "); + } + }; + $scope.getPeriod = function() { + var period, period_param; + if ($scope.isDataFound && w.metadata && w.metadata.hist_parameters) { + period_param = w.metadata.hist_parameters.period || "MONTHLY"; + period = "day"; + if (period_param !== "DAILY") { + period = period_param.substr(0, period_param.length - 2).toLowerCase(); + } + return "current " + period; + } else { + return "current month"; + } + }; + $scope.getOldestInvoice = function(element) { + var idx; + idx = _.findIndex(element.totals, function(invoice) { + return invoice !== 0; + }); + return w.content.dates[idx] || null; + }; + $scope.sort = function(col) { + if ($scope.sortedColumn === col) { + $scope.ascending = !$scope.ascending; + } else { + $scope.ascending = true; + $scope.sortedColumn = col; + } + return sortData(); + }; + $scope.toggleSelectedElement = function(element, statementName) { + if (statementName == null) { + statementName = null; + } + if ($scope.isSelected(element, statementName)) { + $scope.selectedElements = _.reject($scope.selectedElements, function(sElem) { + return matchElementToSelectedElement(element, statementName, sElem); + }); + w.format(); + if (w.isExpanded() && $scope.selectedElements.length === 0) { + return w.toggleExpanded(); + } else { + return ImpacWidgetsSvc.updateWidgetSettings(w, false); + } + } else { + $scope.selectedElements || ($scope.selectedElements = []); + if (statementName) { + element.category = statementName; + } + $scope.selectedElements.push(element); + w.format(); + if (!w.isExpanded()) { + return w.toggleExpanded(); + } else { + return ImpacWidgetsSvc.updateWidgetSettings(w, false); + } + } + }; + $scope.isSelected = function(element, statementName) { + if (statementName == null) { + statementName = null; + } + return (element != null) && _.any($scope.selectedElements, function(sElem) { + return matchElementToSelectedElement(element, statementName, sElem); + }); + }; + $scope.toggleCollapsed = function(element) { + if ((element != null) && (element.name != null)) { if (_.find($scope.unCollapsed, (function(name) { - return groupName === name; + return element.name === name; }))) { $scope.unCollapsed = _.reject($scope.unCollapsed, function(name) { - return name === groupName; + return name === element.name; }); } else { - $scope.unCollapsed.push(groupName); + $scope.unCollapsed.push(element.name); } return ImpacWidgetsSvc.updateWidgetSettings(w, false); } }; - $scope.isCollapsed = function(groupName) { - if (groupName != null) { + $scope.isCollapsed = function(element) { + if ((element != null) && (element.name != null)) { if (_.find($scope.unCollapsed, (function(name) { - return groupName === name; + return element.name === name; }))) { return false; } else { @@ -10913,182 +11240,299 @@ $templateCache.put("widgets/sales-top-opportunities.tmpl.html","
getElem(b) ? 1 : getElem(a) < getElem(b) ? -1 : 0; - if (!$scope.ascending) { - res *= -1; - } - return res; + $scope.getSelectLineColor = function(element, statementName) { + var sElem; + if (statementName == null) { + statementName = null; + } + sElem = _.find($scope.selectedElements, function(sElem) { + return matchElementToSelectedElement(element, statementName, sElem); + }); + if ($scope.hasElements()) { + return ChartFormatterSvc.getColor(_.indexOf($scope.selectedElements, sElem)); + } + }; + $scope.hasElements = function() { + return ($scope.selectedElements != null) && $scope.selectedElements.length > 0; + }; + matchElementToSelectedElement = function(element, elementCategory, sElem) { + if (elementCategory == null) { + elementCategory = null; + } + return getIdentifier(element, elementCategory) === getIdentifier(sElem); + }; + fetchElement = function(statements, sElemId) { + var element, elements, i, len, statement; + for (i = 0, len = statements.length; i < len; i++) { + statement = statements[i]; + elements = statement.suppliers || statement.customers; + if (_.isEmpty(elements)) { + continue; + } + element = _.find(elements, function(elem) { + return getIdentifier(elem, statement.name) === sElemId; + }); + if (element != null) { + element = angular.merge(angular.copy(element), { + category: statement.name }); + return element; + } + } + }; + getIdentifier = function(element, category) { + var id; + if (category == null) { + category = null; + } + id = element.id || element.name; + category || (category = element.category); + if (!category) { + return id; + } + return category + "-" + id; + }; + sortBy = function(data, getElem) { + return data.sort(function(a, b) { + var res; + res = getElem(a) > getElem(b) ? 1 : getElem(a) < getElem(b) ? -1 : 0; + if (!$scope.ascending) { + res *= -1; } + return res; }); }; + sortByInvoiceCallback = function(el) { + var date; + date = $scope.getOldestInvoice(el); + if (date && _.isString(date)) { + date = date.match(/[^_\W]+\s?/g).join(''); + } + return new Date(date); + }; sortData = function() { - if ($scope.sortedColumn === 'account') { - return sortAccountsBy(function(el) { - return el.label; + if ($scope.sortedColumn === 'customer') { + sortBy(w.content.payables.suppliers, function(el) { + return el.name; + }); + return sortBy(w.content.receivables.customers, function(el) { + return el.name; }); } else if ($scope.sortedColumn === 'total') { - return sortAccountsBy(function(el) { - return el.value; + sortBy(w.content.payables.suppliers, function(el) { + return $scope.getTotalSum(el); }); + return sortBy(w.content.receivables.customers, function(el) { + return $scope.getTotalSum(el); + }); + } else if ($scope.sortedColumn === 'invoice') { + sortBy(w.content.payables.suppliers, sortByInvoiceCallback); + return sortBy(w.content.receivables.customers, sortByInvoiceCallback); } }; - $scope.sort = function(col) { - if ($scope.sortedColumn === col) { - $scope.ascending = !$scope.ascending; - } else { - $scope.ascending = true; - $scope.sortedColumn = col; + buildFxTotals = function() { + var contact, contactFxTotals, fxTotal, i, j, len, len1, ref, ref1, results; + ref = _.union(w.content.payables.suppliers, w.content.receivables.customers); + results = []; + for (i = 0, len = ref.length; i < len; i++) { + contact = ref[i]; + contactFxTotals = []; + ref1 = contact.fx_totals; + for (j = 0, len1 = ref1.length; j < len1; j++) { + fxTotal = ref1[j]; + if (!_.isEmpty(fxTotal)) { + _.mapKeys(fxTotal, function(total, currency) { + if (currency !== w.metadata.currency) { + return contactFxTotals.push({ + currency: currency, + amount: total.amount, + rate: total.rate + }); + } + }); + } + } + if (!_.isEmpty(contactFxTotals)) { + results.push(contact.formattedFxTotals = contactFxTotals); + } else { + results.push(void 0); + } } - return sortData(); - }; - unCollapsedSetting = {}; - unCollapsedSetting.initialized = false; - unCollapsedSetting.initialize = function() { - return unCollapsedSetting.initialized = true; - }; - unCollapsedSetting.toMetadata = function() { - return { - unCollapsed: $scope.unCollapsed - }; - }; - w.settings.push(unCollapsedSetting); - return $scope.widgetDeferred.resolve(settingsPromises); - }]); - - module.directive('widgetAccountsDetailedClassifications', function() { - return { - restrict: 'A', - controller: 'WidgetAccountsDetailedClassificationsCtrl' + return results; }; - }); - -}).call(this); - + $scope.drawTrigger = $q.defer(); + w.format = function() { + var all_values_are_positive, chartData, dates, inputData, options, period; + if ($scope.isDataFound && ($scope.selectedElements != null) && $scope.selectedElements.length > 0) { + all_values_are_positive = true; + inputData = []; + period = null; + if ((w.metadata != null) && (w.metadata.hist_parameters != null)) { + period = w.metadata.hist_parameters.period; + } + dates = _.map(w.content.dates, function(date, index) { + return $filter('momentDate')(date, period); + }); + angular.forEach($scope.selectedElements, function(sElem) { + var data; + data = angular.copy(sElem); + inputData.push({ + title: data.name, + labels: dates, + values: data.totals + }); + return angular.forEach(data.totals, function(value) { + return all_values_are_positive && (all_values_are_positive = value >= 0); + }); + }); + options = { + scaleBeginAtZero: all_values_are_positive, + showXLabels: true, + datasetFill: $scope.selectedElements.length === 1, + pointDot: $scope.selectedElements.length === 1 + }; + chartData = ChartFormatterSvc.lineChart(inputData, options); + return $scope.drawTrigger.notify(chartData); + } + }; + unCollapsedSetting = {}; + unCollapsedSetting.initialized = false; + unCollapsedSetting.initialize = function() { + return unCollapsedSetting.initialized = true; + }; + unCollapsedSetting.toMetadata = function() { + return { + unCollapsed: $scope.unCollapsed + }; + }; + w.settings.push(unCollapsedSetting); + selectedElementsSetting = {}; + selectedElementsSetting.initialized = false; + selectedElementsSetting.initialize = function() { + return selectedElementsSetting.initialized = true; + }; + selectedElementsSetting.toMetadata = function() { + var selectedElementsMetadata; + selectedElementsMetadata = _.map($scope.selectedElements, function(element) { + return getIdentifier(element); + }); + return { + selectedElements: selectedElementsMetadata + }; + }; + w.settings.push(selectedElementsSetting); + return $scope.widgetDeferred.resolve(settingsPromises); + }]); + + module.directive('widgetInvoicesAgedPayablesReceivables', function() { + return { + restrict: 'A', + controller: 'WidgetInvoicesAgedPayablesReceivablesCtrl' + }; + }); + +}).call(this); + (function() { var module; - module = angular.module('impac.components.widgets.accounts-expense-weight', []); + module = angular.module('impac.components.widgets.invoices-list', []); - module.controller('WidgetAccountsExpenseWeightCtrl', ["$scope", "$q", "ChartFormatterSvc", "$filter", "$translate", "$timeout", function($scope, $q, ChartFormatterSvc, $filter, $translate, $timeout) { - var settingsPromises, w; + module.controller('WidgetInvoicesListCtrl', ["$scope", "$q", "$sce", "$filter", "ImpacUtilities", "$translate", function($scope, $q, $sce, $filter, ImpacUtilities, $translate) { + var buildFxTotals, initInvoicesTooltips, settingsPromises, w; w = $scope.widget; $scope.orgDeferred = $q.defer(); - $scope.timePeriodDeferred = $q.defer(); - $scope.accountBackDeferred = $q.defer(); - $scope.accountFrontDeferred = $q.defer(); - $scope.chartDeferred = $q.defer(); - $scope.histModeDeferred = $q.defer(); - settingsPromises = [$scope.orgDeferred.promise, $scope.timePeriodDeferred, $scope.accountBackDeferred, $scope.accountFrontDeferred, $scope.chartDeferred.promise, $scope.histModeDeferred.promise]; - $scope.forwardParams = { - accountingBehaviour: 'pnl' - }; + $scope.limitEntriesDeferred = $q.defer(); + $scope.datesPickerDeferred = $q.defer(); + settingsPromises = [$scope.orgDeferred.promise, $scope.limitEntriesDeferred.promise, $scope.datesPickerDeferred.promise]; w.initContext = function() { - $scope.isDataFound = (w.content != null) && !_.isEmpty(w.content.account_list); - return $scope.forwardParams.histParams = w.metadata && w.metadata.hist_parameters; - }; - $scope.getName = function() { - if (w.selectedAccount != null) { - return w.selectedAccount.name; + var dates, datesRange; + $scope.isDataFound = !_.isEmpty(w.content) && !_.isEmpty(w.content.entities); + if ($scope.isDataFound && $scope.orderBy === 'due ') { + if ($scope.entityType === 'suppliers') { + $scope.limitEntriesLabel = $translate.instant('impac.widget.invoices_list.limit_entries_label.creditors'); + } else { + $scope.limitEntriesLabel = $translate.instant('impac.widget.invoices_list.limit_entries_label.debtors'); + } } - }; - $scope.getComparator = function() { - switch (w.metadata.comparator) { - case 'turnover': - return $translate.instant("impac.widget.account_expense_weight.comparator.turnover"); - default: - return $translate.instant("impac.widget.account_expense_weight.comparator.total_exp"); + if ((w.metadata != null) && (w.metadata.limit_entries != null)) { + $scope.limitEntriesSelected = w.metadata.limit_entries; + } + if ($scope.isDataFound) { + dates = _.flatten(_.map(w.content.entities, (function(e) { + return _.map(e.invoices, (function(i) { + return i.invoice_date; + })); + }))); + datesRange = ImpacUtilities.getDatesRange(dates); + $scope.defaultFrom = $filter('date')(datesRange[0], 'yyyy-MM-dd'); + $scope.defaultTo = $filter('date')(datesRange[1], 'yyyy-MM-dd'); + initInvoicesTooltips(w.content.entities); + buildFxTotals(); + return $scope.ratesDate = moment.now(); } }; - $scope.displayAccount = function() { - return $scope.updateSettings(false).then(function() { - return $timeout(function() { - return w.format(); + $scope.entityType = w.metadata.entity; + $scope.entityTypeCap = _.capitalize(w.metadata.entity); + if (_.isEmpty(w.metadata.order_by) || w.metadata.order_by === 'name' || w.metadata.order_by === 'total_invoiced') { + $scope.orderBy = ''; + } else { + $scope.orderBy = _.last(w.metadata.order_by.split('_')).concat(" "); + } + $scope.invoiceTooltips = {}; + initInvoicesTooltips = function(entities) { + return _.each(entities, function(entity) { + var count, tooltip; + tooltip = ["" + entity.name + ""]; + count = 1; + _.each(entity.invoices, function(i) { + var amountDetail, formattedInvoiced, formattedPaid, invCurrency, txn; + txn = i.transaction_no !== "" ? " (" + i.transaction_no + ")" : ""; + invCurrency = Object.keys(i.fx_totals)[0]; + formattedInvoiced = $filter('mnoCurrency')(i.fx_totals[invCurrency].invoiced, invCurrency, true); + if (i.tooltip_status === "partially paid") { + formattedPaid = $filter('mnoCurrency')(i.fx_totals[invCurrency].paid, invCurrency, true); + amountDetail = " (" + formattedPaid + " on " + formattedInvoiced + ")"; + } else { + amountDetail = " (" + formattedInvoiced + ")"; + } + tooltip.push("#" + count + txn + " - " + i.tooltip_status + amountDetail); + return count++; }); + return $scope.invoiceTooltips[entity.id] = $sce.trustAsHtml(tooltip.join("
")); }); }; - $scope.drawTrigger = $q.defer(); - w.format = function() { - var all_values_are_positive, chartData, companies, datasets, dates, inputData, lineData, lineOptions, options, period, ratios; - if ($scope.isDataFound && (w.content.summary != null)) { - if (w.isHistoryMode) { - period = null; - if ((w.metadata != null) && (w.metadata.hist_parameters != null)) { - period = w.metadata.hist_parameters.period; - } - dates = _.map(w.content.dates, function(date) { - return $filter('momentDate')(date, period); - }); - datasets = _.map(w.content.summary, function(s) { - return { - title: s.company, - values: s.ratios - }; - }); - all_values_are_positive = true; - angular.forEach(w.content.summary, function(s) { - return angular.forEach(s.ratios, function(ratio) { - return all_values_are_positive && (all_values_are_positive = ratio >= 0); + buildFxTotals = function() { + var contact, contactFxTotals, j, len, ref, results; + ref = w.content.entities; + results = []; + for (j = 0, len = ref.length; j < len; j++) { + contact = ref[j]; + contactFxTotals = []; + _.mapKeys(contact.fx_totals, function(total, currency) { + if (currency !== w.metadata.currency) { + return contactFxTotals.push({ + currency: currency, + amount: total.invoiced, + rate: total.rate }); - }); - lineData = { - labels: dates, - datasets: datasets - }; - lineOptions = { - scaleBeginAtZero: all_values_are_positive, - showXLabels: false, - currency: "(ratio)" - }; - chartData = ChartFormatterSvc.combinedBarChart(lineData, lineOptions, false, true); - } else { - companies = _.map(w.content.summary, function(s) { - return s.company; - }); - ratios = _.map(w.content.summary, function(s) { - return s.ratio; - }); - if (companies.length === 1) { - companies.push(companies[0]); - ratios.push(ratios[0]); } - inputData = { - labels: companies, - values: ratios - }; - options = { - scales: { - yAxes: [ - { - ticks: { - suggestedMin: 0, - suggestedMax: 100, - maxTicksLimit: 5 - } - } - ] - }, - showXLabels: false, - pointDot: false, - currency: '%' - }; - chartData = ChartFormatterSvc.lineChart([inputData], options); + }); + if (!_.isEmpty(contactFxTotals)) { + results.push(contact.formattedFxTotals = contactFxTotals); + } else { + results.push(void 0); } - return $scope.drawTrigger.notify(chartData); } + return results; }; return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('widgetAccountsExpenseWeight', function() { + module.directive('widgetInvoicesList', function() { return { restrict: 'A', - controller: 'WidgetAccountsExpenseWeightCtrl' + controller: 'WidgetInvoicesListCtrl' }; }); @@ -11097,128 +11541,146 @@ $templateCache.put("widgets/sales-top-opportunities.tmpl.html","
= 0 && anIndex < w.content.aged_sales[$scope.filter.value].length) { + return w.content.aged_sales[$scope.filter.value][anIndex]; + } + }; + $scope.getLastDate = function() { if ($scope.isDataFound) { - return w.content.currency; + return _.last(w.content.dates); } }; - $scope.toggleDisplayNetProfit = function() { - $scope.isNetProfitDisplayed = !!$scope.displayOptions[0].value; - $scope.updateSettings(false); - return w.format(); + $scope.getClassColor = function(prev, value) { + if (value < prev) { + return 'negative'; + } else if (value > prev) { + return 'positive'; + } else { + return null; + } }; $scope.drawTrigger = $q.defer(); w.format = function() { - var all_values_are_positive, chartData, datasets, dates, lineData, lineOptions, period, pieData, pieOptions; + var all_values_are_positive, chartData, inputData, options, period, values; if ($scope.isDataFound) { - if (w.isHistoryMode) { - period = null; - if ((w.metadata != null) && (w.metadata.hist_parameters != null)) { - period = w.metadata.hist_parameters.period; - } - dates = _.map(w.content.dates, function(date) { - return $filter('momentDate')(date, period); + all_values_are_positive = true; + inputData = []; + values = w.content.aged_sales[$scope.filter.value]; + period = null; + if ((w.metadata != null) && (w.metadata.hist_parameters != null)) { + period = w.metadata.hist_parameters.period; + } + $scope.formattedDates = _.map(w.content.dates, function(date) { + return $filter('momentDate')(date, period); + }); + inputData.push({ + title: $scope.filter.label, + labels: $scope.formattedDates, + values: values + }); + angular.forEach(values, function(value) { + return all_values_are_positive && (all_values_are_positive = value >= 0); + }); + options = { + scaleBeginAtZero: all_values_are_positive, + showXLabels: true, + datasetFill: true, + pointDot: true + }; + if ($scope.filter.value.indexOf('quantity') > -1) { + angular.merge(options, { + currency: 'hide' }); - if ($scope.isNetProfitDisplayed) { - datasets = [ - { - title: $translate.instant('impac.widget.accounts_expenses_revenue.net_profit') + (" (" + ($scope.getCurrency()) + ")"), - values: w.content.values.net_profit - } - ]; - all_values_are_positive = true; - angular.forEach(w.content.values.net_profit, function(value) { - return all_values_are_positive && (all_values_are_positive = value >= 0); - }); - } else { - datasets = [ - { - title: $translate.instant('impac.widget.accounts_expenses_revenue.expenses') + (" (" + ($scope.getCurrency()) + ")"), - values: w.content.values.expenses - }, { - title: $translate.instant('impac.widget.accounts_expenses_revenue.revenue') + (" (" + ($scope.getCurrency()) + ")"), - values: w.content.values.revenue - } - ]; - all_values_are_positive = true; - angular.forEach(w.content.values.expenses, function(value) { - return all_values_are_positive && (all_values_are_positive = value >= 0); - }); - angular.forEach(w.content.values.revenue, function(value) { - return all_values_are_positive && (all_values_are_positive = value >= 0); - }); - } - lineData = { - labels: dates, - datasets: datasets - }; - lineOptions = { - scaleBeginAtZero: all_values_are_positive, - showXLabels: false - }; - chartData = ChartFormatterSvc.combinedBarChart(lineData, lineOptions, false, true); - } else { - pieData = [ - { - label: $translate.instant('impac.widget.accounts_expenses_revenue.expenses') + (" (" + ($scope.getCurrency()) + ")"), - value: $scope.getCurrentExpenses() - }, { - label: $translate.instant('impac.widget.accounts_expenses_revenue.revenue') + (" (" + ($scope.getCurrency()) + ")"), - value: $scope.getCurrentRevenue() - } - ]; - pieOptions = { - tooltipFontSize: 12, - percentageInnerCutout: 0 - }; - chartData = ChartFormatterSvc.pieChart(pieData, pieOptions, true); } + chartData = ChartFormatterSvc.lineChart(inputData, options); return $scope.drawTrigger.notify(chartData); } }; return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('widgetAccountsExpensesRevenue', function() { + module.directive('widgetSalesAged', function() { return { restrict: 'A', - controller: 'WidgetAccountsExpensesRevenueCtrl' + controller: 'WidgetSalesAgedCtrl' }; }); @@ -11227,179 +11689,73 @@ $templateCache.put("widgets/sales-top-opportunities.tmpl.html","
" + ($filter('date')(date, 'd-MM-yy')); + } else { + return w.content.break_even.projected_date; + } } }; - $scope.getOpeningBalance = function() { - if (w.content != null) { - return _.find(w.content.figure.metrics, function(metric) { - return metric.label === 'opening'; - }); + $scope.getOpportunitiesToClose = function() { + var opps; + if ($scope.isDataFound && w.content.break_even) { + if (("" + w.content.break_even.opportunities_to_close).match('>')) { + opps = angular.copy(w.content.break_even.opportunities_to_close).replace('>', ''); + return "> " + opps; + } else { + return w.content.break_even.opportunities_to_close; + } } }; - $scope.getClosingBalance = function() { - if (w.content != null) { - return _.find(w.content.figure.metrics, function(metric) { - return metric.label === 'closing'; - }); + $scope.isTargetMet = function() { + if ($scope.isDataFound && w.content.break_even) { + return w.content.break_even.variance < 0; } }; - $scope.getTotal = function() { - var summary; - if (w.content != null) { - summary = _.find(w.content.table.tables, function(table) { - return table.table_title === 'Bank Summary'; - }); - } - if (w.selectedAccount != null) { - return _.find(summary.table_rows, function(row) { - var name_match; - name_match = w.selectedAccount.name === 'All Accounts' ? 'Total' : w.selectedAccount.name; - return row.column_1 === name_match; - }); + $scope.getVariance = function() { + if ($scope.isDataFound && w.content.break_even) { + return Math.abs(w.content.break_even.variance); } }; - $scope.getStatementBalance = function() { - var statement; - if (w.content != null) { - statement = _.find(w.content.table.tables, function(table) { - return table.table_title === 'Bank Statement'; - }); - } - if (statement) { - return _.find(statement.table_rows, function(row) { - return row.column_2 === "Closing Balance"; - }); - } + thresholdSetting = {}; + thresholdSetting.initialized = false; + thresholdSetting.initialize = function() { + return thresholdSetting.initialized = true; }; - $scope.displayAccount = function() { - return $scope.updateSettings(false).then(function() { - return w.format(); - }); + thresholdSetting.toMetadata = function() { + return { + threshold: $scope.threshold + }; }; - w.format = function() {}; + w.settings.push(thresholdSetting); return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('widgetAccountsLiveBalance', function() { + module.directive('widgetSalesBreakEven', function() { return { restrict: 'A', - controller: 'WidgetAccountsLiveBalanceCtrl' + controller: 'WidgetSalesBreakEvenCtrl' }; }); @@ -11408,228 +11764,109 @@ $templateCache.put("widgets/sales-top-opportunities.tmpl.html","
= 0); - } - ref1 = w.content.values.receivables; - for (j = 0, len1 = ref1.length; j < len1; j++) { - value = ref1[j]; - all_values_are_positive && (all_values_are_positive = value >= 0); - } - lineOptions = { - scaleBeginAtZero: all_values_are_positive, - showXLabels: false - }; - return $translate(['impac.widget.accounts_payable_receivable.payable', 'impac.widget.accounts_payable_receivable.receivable']).then(function(translation) { - var chartData, lineData; - lineData = [ - { - title: translation['impac.widget.accounts_payable_receivable.payable'], - labels: dates, - values: w.content.values.payables - }, { - title: translation['impac.widget.accounts_payable_receivable.receivable'], - labels: dates, - values: w.content.values.receivables - } - ]; - chartData = ChartFormatterSvc.lineChart(lineData, lineOptions, true); - return $scope.drawTrigger.notify(chartData); - }); - } - }; - return $scope.widgetDeferred.resolve(settingsPromises); - }]); - - module.directive('widgetAccountsPayableReceivable', function() { - return { - restrict: 'A', - controller: 'WidgetAccountsPayableReceivableCtrl' - }; - }); - -}).call(this); - -(function() { - var module; - - module = angular.module('impac.components.widgets.accounts-profit-and-loss', []); - - module.controller('WidgetAccountsProfitAndLossCtrl', ["$scope", "$q", "ChartFormatterSvc", "$filter", "ImpacWidgetsSvc", "ImpacUtilities", "$translate", "ImpacTheming", function($scope, $q, ChartFormatterSvc, $filter, ImpacWidgetsSvc, ImpacUtilities, $translate, ImpacTheming) { - var fetchElement, getIdentifier, getLastAmount, getPeriod, getTotalAmount, h, matchElementToSelectedElement, periodName, selectedElementsSetting, setAmountDisplayed, settingsPromises, sortAccountsBy, sortData, unCollapsedSetting, w; - w = $scope.widget; - $scope.orgDeferred = $q.defer(); - $scope.timePeriodDeferred = $q.defer(); - $scope.widthDeferred = $q.defer(); - $scope.chartDeferred = $q.defer(); - $scope.paramSelectorDeferred = $q.defer(); - $scope.tagFilterDeferred = $q.defer(); - settingsPromises = [$scope.orgDeferred.promise, $scope.timePeriodDeferred.promise, $scope.widthDeferred.promise, $scope.chartDeferred.promise, $scope.paramSelectorDeferred.promise, $scope.tagFilterDeferred.promise]; - $scope.ascending = true; - $scope.sortedColumn = 'account'; - $scope.filterTagsEnabled = ImpacTheming.get().widgetSettings.tagging.enabled; - setAmountDisplayed = function() { - return $scope.amountDisplayed = angular.copy(_.find($scope.amountDisplayedOptions, function(o) { - return w.metadata && o.value === w.metadata.amount_displayed; - }) || $scope.amountDisplayedOptions[1]); - }; - $translate(['impac.widget.accounts_profit_and_loss.last_period', 'impac.widget.accounts_profit_and_loss.total_for_period']).then(function(translation) { - $scope.amountDisplayedOptions = [ - { - label: translation['impac.widget.accounts_profit_and_loss.last_period'], - value: 'last' - }, { - label: translation['impac.widget.accounts_profit_and_loss.total_for_period'], - value: 'total' - } - ]; - return setAmountDisplayed(); - }); - periodName = (h = $scope.widget.metadata.hist_parameters) && h.period ? h.period.toLowerCase() : 'monthly'; - $translate('impac.widget.settings.time_period.period.' + periodName).then(function(translation) { - return $scope.period_translation = _.capitalize(translation.toLowerCase()); - }); - $scope.isReportFiltered = function() { - return (w.metadata != null) && (w.metadata.filter_query != null) && Object.keys(w.metadata.filter_query).length > 0; - }; - w.initContext = function() { - var dates, firstDate, foundElem, histParams, i, lastDate, len, ref, sElemId; - if ($scope.isDataFound = angular.isDefined(w.content) && !_.isEmpty(w.content.summary) && !_.isEmpty(w.content.dates)) { - $scope.dates = w.content.dates; - $scope.unCollapsed = w.metadata.unCollapsed || []; - if (w.metadata && (histParams = w.metadata.hist_parameters)) { - dates = ImpacUtilities.selectedTimeRange(histParams); - firstDate = $filter('momentDate')(dates.from, getPeriod()); - lastDate = $filter('momentDate')(dates.to, getPeriod()); - $scope.amountDisplayedOptions[1].label = firstDate + " to " + lastDate; - $scope.amountDisplayedOptions[0].label = lastDate; - } - setAmountDisplayed(); - if (!_.isEmpty(w.metadata.selectedElements)) { - $scope.selectedElements = []; - ref = w.metadata.selectedElements; - for (i = 0, len = ref.length; i < len; i++) { - sElemId = ref[i]; - foundElem = _.find(w.content.summary, function(statement) { - return statement.name === sElemId; - }); - foundElem || (foundElem = fetchElement(w.content.summary, sElemId)); - if (foundElem) { - $scope.selectedElements.push(foundElem); - } - } - } - if (!_.any($scope.selectedElements)) { - w.width = 6; - } - return sortData(); - } - }; - $scope.getElementChartColor = function(index) { - return ChartFormatterSvc.getColor(index); - }; - getPeriod = function() { - if ((w.metadata != null) && (w.metadata.hist_parameters != null) && (w.metadata.hist_parameters.period != null)) { - return w.metadata.hist_parameters.period; - } else { - return 'MONTHLY'; - } - }; - getLastAmount = function(element) { - if (element.totals != null) { - return _.last(element.totals); - } - }; - getTotalAmount = function(element) { - if (element.totals != null) { - return _.sum(element.totals); - } - }; - $scope.getAmount = function(element) { - switch ($scope.amountDisplayed.value) { - case 'total': - return getTotalAmount(element); - default: - return getLastAmount(element); - } - }; - $scope.getClassColor = function(aTotal) { - if (parseInt(aTotal) > 0) { - return 'positive'; - } else if (parseInt(aTotal) < 0) { - return 'negative'; - } else { - return null; - } - }; - $scope.getName = function(element) { - if ((element != null) && (element.name != null)) { - return element.name.replace(/_/g, " "); - } - }; - $scope.sort = function(col) { - if ($scope.sortedColumn === col) { - $scope.ascending = !$scope.ascending; - } else { - $scope.ascending = true; - $scope.sortedColumn = col; - } - return sortData(); - }; - $scope.toggleSelectedElement = function(element, statementName) { - var selectedElement; - if (statementName == null) { - statementName = null; - } - if ($scope.isSelected(element, statementName)) { - $scope.selectedElements = _.reject($scope.selectedElements, function(sElem) { - return matchElementToSelectedElement(element, statementName, sElem); + $scope.getElementChartColor = function(index) { + return ChartFormatterSvc.getColor(index); + }; + $scope.sort = function(col) { + if ($scope.sortedColumn === col) { + $scope.ascending = !$scope.ascending; + } else { + $scope.ascending = true; + $scope.sortedColumn = col; + } + return sortData(); + }; + $scope.toggleSelectedElement = function(element, statementName) { + var selectedElement; + if (statementName == null) { + statementName = null; + } + if ($scope.isSelected(element, statementName)) { + $scope.selectedElements = _.reject($scope.selectedElements, function(sElem) { + return matchElementToSelectedElement(element, statementName, sElem); }); w.format(); if (w.isExpanded() && $scope.selectedElements.length === 0) { @@ -11683,6 +11920,9 @@ $templateCache.put("widgets/sales-top-opportunities.tmpl.html","
0; + }; $scope.getSelectLineColor = function(element, statementName) { var sElem; if (statementName == null) { @@ -11695,9 +11935,6 @@ $templateCache.put("widgets/sales-top-opportunities.tmpl.html","
0; - }; matchElementToSelectedElement = function(element, elementCategory, sElem) { if (elementCategory == null) { elementCategory = null; @@ -11708,11 +11945,11 @@ $templateCache.put("widgets/sales-top-opportunities.tmpl.html","
getElem(b) ? 1 : getElem(a) < getElem(b) ? -1 : 0; if (!$scope.ascending) { @@ -11749,13 +11986,13 @@ $templateCache.put("widgets/sales-top-opportunities.tmpl.html","
= 0); @@ -11787,167 +12024,111 @@ $templateCache.put("widgets/sales-top-opportunities.tmpl.html","
-1) { + angular.merge(options, { + currency: 'hide' + }); + } chartData = ChartFormatterSvc.lineChart(inputData, options); return $scope.drawTrigger.notify(chartData); } }; - unCollapsedSetting = {}; - unCollapsedSetting.initialized = false; - unCollapsedSetting.initialize = function() { - return unCollapsedSetting.initialized = true; - }; - unCollapsedSetting.toMetadata = function() { - return { - unCollapsed: $scope.unCollapsed - }; - }; - w.settings.push(unCollapsedSetting); - selectedElementsSetting = {}; - selectedElementsSetting.initialized = false; - selectedElementsSetting.initialize = function() { - return selectedElementsSetting.initialized = true; - }; - selectedElementsSetting.toMetadata = function() { - var selectedElementsMetadata; - selectedElementsMetadata = _.map($scope.selectedElements, function(element) { - return getIdentifier(element); - }); - return { - selectedElements: selectedElementsMetadata - }; - }; - w.settings.push(selectedElementsSetting); - return $scope.widgetDeferred.resolve(settingsPromises); - }]); - - module.directive('widgetAccountsProfitAndLoss', function() { - return { - restrict: 'A', - controller: 'WidgetAccountsProfitAndLossCtrl' - }; - }); - -}).call(this); - -(function() { - var module; - - module = angular.module('impac.components.widgets.accounts-ratios', []); - - module.controller('WidgetAccountsRatiosCtrl', ["$scope", "$q", "$filter", "$translate", "ChartFormatterSvc", "ImpacTheming", function($scope, $q, $filter, $translate, ChartFormatterSvc, ImpacTheming) { - var getPrefix, settingsPromises, w; - w = $scope.widget; - $scope.orgDeferred = $q.defer(); - $scope.chartDeferred = $q.defer(); - $scope.timePeriodDeferred = $q.defer(); - $scope.histModeDeferred = $q.defer(); - $scope.numeratorOffsetsDeferred = $q.defer(); - $scope.denominatorOffsetsDeferred = $q.defer(); - settingsPromises = [$scope.orgDeferred.promise, $scope.chartDeferred.promise, $scope.timePeriodDeferred.promise, $scope.histModeDeferred.promise, $scope.numeratorOffsetsDeferred.promise, $scope.denominatorOffsetsDeferred.promise]; - $scope.totalRatio = 0; - $scope.totalNumerator = 0; - $scope.totalDenominator = 0; - $scope.calculatedNumerator = 0; - $scope.calculatedDenominator = 0; - $scope.simulationMode = false; - $scope.intervalsCount = 0; - $scope.isPnl = false; - $scope.periodInfoContext = {}; - getPrefix = function(behaviour) { - var label, labels, needPrefix, prefix, todayPrefixes; - labels = ImpacTheming.get().widgetSettings.histModeChoser.currentLabels; - todayPrefixes = ImpacTheming.get().widgetSettings.histModeChoser.todayPrefixes; - needPrefix = _.last(w.content.layout.dates) === moment().format('YYYY-MM-DD'); - label = labels[behaviour]; - prefix = todayPrefixes[behaviour]; - return $translate([label, prefix]).then(function(translations) { - if (needPrefix) { - return translations[prefix] + " " + translations[label]; - } else { - return translations[label]; - } - }); - }; - w.initContext = function() { - var behaviour; - $scope.isDataFound = !_.isEmpty(w.content); - if ($scope.isDataFound) { - $scope.intervalsCount = _.size(w.content.layout.dates); - $scope.endDate = _.last(w.content.layout.dates); - behaviour = w.content.layout.accounting_behaviour; - $scope.periodInfoContext.histParams = w.metadata.hist_parameters; - $scope.periodInfoContext.accountingBehaviour = behaviour; - getPrefix(behaviour).then(function(label) { - return $scope.periodInfoContext.injectBefore = label; - }); - if (behaviour === 'pnl') { - $scope.totalRatio = w.content.calculation.ratio.average; - $scope.totalNumerator = _.sum(w.content.calculation.numerator.totals); - $scope.totalDenominator = _.sum(w.content.calculation.denominator.totals); - $scope.calculatedNumerator = _.sum(w.content.calculation.numerator.values); - $scope.calculatedDenominator = _.sum(w.content.calculation.denominator.values); - return $scope.isPnl = true; - } else { - $scope.totalRatio = _.last(w.content.calculation.ratio.totals); - $scope.totalNumerator = _.last(w.content.calculation.numerator.totals); - $scope.totalDenominator = _.last(w.content.calculation.denominator.totals); - $scope.calculatedNumerator = _.last(w.content.calculation.numerator.values); - return $scope.calculatedDenominator = _.last(w.content.calculation.denominator.values); - } + buildFxTotals = function() { + var grossSaleFxTotals, groupedSales, i, len, netSaleFxTotals, ref, results, sale; + ref = w.content.sales_comparison; + results = []; + for (i = 0, len = ref.length; i < len; i++) { + groupedSales = ref[i]; + results.push((function() { + var j, len1, ref1, results1; + ref1 = groupedSales.sales; + results1 = []; + for (j = 0, len1 = ref1.length; j < len1; j++) { + sale = ref1[j]; + sale.formattedFxTotals = {}; + netSaleFxTotals = []; + grossSaleFxTotals = []; + if (!_.isEmpty(sale.fx_totals)) { + _.mapKeys(sale.fx_totals, function(total, currency) { + var grossAmount, k, l, len2, len3, netAmount, ref2, ref3, results2; + ref2 = total['net_value_sold']; + for (k = 0, len2 = ref2.length; k < len2; k++) { + grossAmount = ref2[k]; + if (!(grossAmount === 0 || currency === w.metadata.currency)) { + netSaleFxTotals.push({ + currency: currency, + amount: grossAmount, + rate: total.rate + }); + } + } + ref3 = total['gross_value_sold']; + results2 = []; + for (l = 0, len3 = ref3.length; l < len3; l++) { + netAmount = ref3[l]; + if (!(netAmount === 0 || currency === w.metadata.currency)) { + results2.push(grossSaleFxTotals.push({ + currency: currency, + amount: netAmount, + rate: total.rate + })); + } else { + results2.push(void 0); + } + } + return results2; + }); + } + if (!_.isEmpty(netSaleFxTotals)) { + sale.formattedFxTotals['net_value_sold'] = netSaleFxTotals; + } + if (!_.isEmpty(grossSaleFxTotals)) { + results1.push(sale.formattedFxTotals['gross_value_sold'] = grossSaleFxTotals); + } else { + results1.push(void 0); + } + } + return results1; + })()); } + return results; }; - $scope.toggleSimulationMode = function(init) { - if (init == null) { - init = false; - } - if (init) { - $scope.initSettings(); - } - return $scope.simulationMode = !$scope.simulationMode; + unCollapsedSetting = {}; + unCollapsedSetting.initialized = false; + unCollapsedSetting.initialize = function() { + return unCollapsedSetting.initialized = true; }; - $scope.saveSimulation = function() { - $scope.updateSettings(); - return $scope.toggleSimulationMode(); + unCollapsedSetting.toMetadata = function() { + return { + unCollapsed: $scope.unCollapsed + }; }; - $scope.drawTrigger = $q.defer(); - w.format = function() { - var chartData, data, dates, inputData, options, period; - if ($scope.isDataFound) { - data = angular.copy(w.content); - period = null; - if ((w.metadata != null) && (w.metadata.hist_parameters != null)) { - period = w.metadata.hist_parameters.period; - } - dates = _.map(data.layout.dates, function(date) { - return $filter('momentDate')(date, period); - }); - inputData = { - labels: dates, - datasets: [ - { - title: data.layout.ratio, - values: data.calculation.ratio.totals - } - ] - }; - options = { - currency: 'hide', - showXLabels: false - }; - chartData = ChartFormatterSvc.combinedBarChart(inputData, options, false); - return $scope.drawTrigger.notify(chartData); - } + w.settings.push(unCollapsedSetting); + selectedElementsSetting = {}; + selectedElementsSetting.initialized = false; + selectedElementsSetting.initialize = function() { + return selectedElementsSetting.initialized = true; + }; + selectedElementsSetting.toMetadata = function() { + var selectedElementsMetadata; + selectedElementsMetadata = _.map($scope.selectedElements, function(sElem) { + return getIdentifier(sElem); + }); + return { + selectedElements: selectedElementsMetadata + }; }; + w.settings.push(selectedElementsSetting); return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('widgetAccountsRatios', function() { + module.directive('widgetSalesComparison', function() { return { restrict: 'A', - controller: 'WidgetAccountsRatiosCtrl' + controller: 'WidgetSalesComparisonCtrl' }; }); @@ -11956,192 +12137,196 @@ $templateCache.put("widgets/sales-top-opportunities.tmpl.html","
= 0); + return $scope.statusOptions.push({ + label: status, + selected: isSelected + }); + }); } }; - $scope.getSingleCompanyName = function() { - var org, orgUid; - if (w.content && w.content.organizations) { - orgUid = w.content.organizations[0]; - org = _.find($scope.parentDashboard.data_sources, function(o) { - return o.uid === orgUid; - }); - return org.label; + w.processError = function(error) { + if (error.code === 404) { + return $scope.isDataFound = false; } }; - $scope.getEmployeeEarnings = function(anEmployee) { - if (anEmployee.salary != null) { - return $filter('mnoCurrency')(anEmployee.salary.amount, w.content.total.currency); - } else { - return '-'; + $scope.drawTrigger = $q.defer(); + w.format = function() { + var chartData, pieData, pieOptions; + if ($scope.isDataFound) { + pieData = _.compact(_.map($scope.statusOptions, function(statusOption) { + var value; + value = w.content.status_average_durations[statusOption.label]; + if (statusOption.selected && angular.isDefined(value)) { + return { + label: ($filter('titleize')(statusOption.label)) + ": " + value + " " + $scope.unit, + value: value + }; + } + })); + pieOptions = { + percentageInnerCutout: 50, + tooltipFontSize: 12, + currency: w.content.unit + }; + chartData = ChartFormatterSvc.pieChart(pieData, pieOptions); + return $scope.drawTrigger.notify(chartData); } }; return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('widgetHrEmployeesList', function() { + module.directive('widgetSalesCycle', function() { return { restrict: 'A', - controller: 'WidgetHrEmployeesListCtrl' + controller: 'WidgetSalesCycleCtrl' }; }); @@ -12150,65 +12335,81 @@ $templateCache.put("widgets/sales-top-opportunities.tmpl.html","
= 0); + }); + options = { + scaleBeginAtZero: all_values_are_positive, + showXLabels: true, + datasetFill: true, + pointDot: false + }; + chartData = ChartFormatterSvc.lineChart(inputData, options); + return $scope.drawTrigger.notify(chartData); } - return angular.copy(e); }; - employee = $scope.getEmployee(); - name = employee && employee.leaves[0].name; - if (name) { - $scope.vacationLeaves_translation = name; - } else { - $translate('impac.widget.hr_leaves_balance.vacation_leaves').then(function(translation) { - return $scope.vacationLeaves_translation = translation; - }); - } - name = employee && employee.leaves[1].name; - if (name) { - $scope.sickLeaves_translation = name; - } else { - $translate('impac.widget.hr_leaves_balance.sick_leaves').then(function(translation) { - return $scope.sickLeaves_translation = translation; - }); - } return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('widgetHrLeavesBalance', function() { + module.directive('widgetSalesForecast', function() { return { restrict: 'A', - controller: 'WidgetHrLeavesBalanceCtrl' + controller: 'WidgetSalesForecastCtrl' }; }); @@ -12217,412 +12418,325 @@ $templateCache.put("widgets/sales-top-opportunities.tmpl.html","
threshold) { + return codeName; + } else { + return fullName; + } + }; + $scope.drawTrigger = $q.defer(); + w.format = function() { + var all_values_are_positive, chartData, data, dates, inputData, options, period; + if ($scope.isDataFound && $scope.product && (data = $scope.getSelectedProduct())) { + period = null; + if ((w.metadata != null) && (w.metadata.hist_parameters != null)) { + period = w.metadata.hist_parameters.period; + } + dates = _.map(w.content.dates, function(date) { + return $filter('momentDate')(date, period); + }); + inputData = { + title: data.name, + labels: dates, + values: data.totals + }; + all_values_are_positive = true; + angular.forEach(data.totals, function(value) { + return all_values_are_positive && (all_values_are_positive = value >= 0); + }); + options = { + scaleBeginAtZero: all_values_are_positive, + showXLabels: false + }; + if ($scope.filter.value.indexOf('quantity') > -1) { + angular.merge(options, { + currency: 'hide' + }); + } + chartData = ChartFormatterSvc.lineChart([inputData], options); + return $scope.drawTrigger.notify(chartData); } }; return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('widgetHrLeavesSchedule', function() { + module.directive('widgetSalesGrowth', function() { return { restrict: 'A', - controller: 'WidgetHrLeavesScheduleCtrl' + controller: 'WidgetSalesGrowthCtrl' }; }); - module.directive('widgetComponentCalendar', ["$tranlate", function($tranlate) { - return { - scope: { - events: '=ngModel' - }, - restrict: 'A', - link: function(scope, element) { - var calendarOptions, getEvents; - scope.eventSources = []; - calendarOptions = { - header: { - left: $tranlate.instant('impac.common.action.calendar.left'), - center: $tranlate.instant('impac.common.action.calendar.center'), - right: $tranlate.instant('impac.common.action.calendar.right') - }, - contentHeight: 204 - }; - getEvents = function() { - return scope.events; - }; - return scope.$watch(getEvents, function(events) { - if (events.length > 0) { - element.fullCalendar('destroy'); - angular.extend(calendarOptions, { - events: scope.events - }); - return element.fullCalendar(calendarOptions); - } - }, true); - } - }; - }]); - }).call(this); (function() { - var module; + var module, + indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }; - module = angular.module('impac.components.widgets.hr-payroll-summary', []); + module = angular.module('impac.components.widgets.sales-leads-funnel', []); - module.controller('WidgetHrPayrollSummaryCtrl', ["$scope", "$q", "ChartFormatterSvc", "$filter", "ImpacWidgetsSvc", "$translate", function($scope, $q, ChartFormatterSvc, $filter, ImpacWidgetsSvc, $translate) { - var fetchElement, getIdentifier, h, matchElementToSelectedElement, periodName, selectedElementsSetting, settingsPromises, sortData, sortEmployeesBy, unCollapsedSetting, w; + module.controller('WidgetSalesLeadsFunnelCtrl', ["$scope", "$q", "ChartFormatterSvc", "$filter", "$sce", "ImpacWidgetsSvc", "ImpacDashboardsSvc", "$translate", function($scope, $q, ChartFormatterSvc, $filter, $sce, ImpacWidgetsSvc, ImpacDashboardsSvc, $translate) { + var hasOneLead, selectedStatusSetting, setLeadDescriptionTooltips, settingsPromises, w; w = $scope.widget; $scope.orgDeferred = $q.defer(); $scope.timePeriodDeferred = $q.defer(); + $scope.paramsPickerDeferred = $q.defer(); $scope.widthDeferred = $q.defer(); - $scope.histModeDeferred = $q.defer(); - $scope.chartDeferred = $q.defer(); - settingsPromises = [$scope.orgDeferred.promise, $scope.timePeriodDeferred.promise, $scope.widthDeferred.promise, $scope.histModeDeferred.promise, $scope.chartDeferred.promise]; - $scope.ascending = true; - $scope.sortedColumn = 'employee'; - periodName = (h = $scope.widget.metadata.hist_parameters) && h.period ? h.period.toLowerCase() : 'monthly'; - $scope.periodTranslation = $translate.instant("impac.widget.settings.time_period.period." + periodName); + settingsPromises = [$scope.orgDeferred.promise, $scope.timePeriodDeferred.promise, $scope.paramsPickerDeferred.promise, $scope.widthDeferred.promise]; + hasOneLead = function(leadsPerStatus) { + var reducedHash, total, totalsArray; + reducedHash = _.mapValues(leadsPerStatus, function(statusHash) { + return statusHash.total; + }); + totalsArray = _.compact(_.values(reducedHash)); + total = _.reduce(totalsArray, function(total, n) { + if (total == null) { + total = 0; + } + return total + n; + }); + return (total != null) && total > 0; + }; w.initContext = function() { - var foundElem, i, len, ref, sElemId; - if ($scope.isDataFound = angular.isDefined(w.content) && !_.isEmpty(w.content.summary) && !_.isEmpty(w.content.dates)) { - $scope.unCollapsed = w.metadata.unCollapsed || []; - if (!_.isEmpty(w.metadata.selectedElements)) { - $scope.selectedElements = []; - ref = w.metadata.selectedElements; - for (i = 0, len = ref.length; i < len; i++) { - sElemId = ref[i]; - foundElem = _.find(w.content.summary, function(statement) { - return statement.name === sElemId; - }); - foundElem || (foundElem = fetchElement(w.content.summary, sElemId)); - if (foundElem) { - $scope.selectedElements.push(foundElem); - } - } - } - if (!(($scope.selectedElements != null) && $scope.selectedElements.length > 0)) { - w.width = 6; - } - return sortData(); - } - }; - $scope.getElementChartColor = function(index) { - return ChartFormatterSvc.getColor(index); - }; - $scope.getLastValue = function(element) { - return (element.totals && element.totals[element.totals.length - 1]) || 0; - }; - $scope.getTotalSum = function(element) { - if (element.totals != null) { - return _.reduce(element.totals, function(memo, num) { - return memo + num; - }, 0); - } - }; - $scope.getName = function(element) { - if ((element != null) && (element.name != null)) { - if (element.name === "total_leaves") { - return $translate.instant('impac.widget.hr_payroll_summary.total_leaves'); - } - if (element.name === "total_super") { - return $translate.instant('impac.widget.hr_payroll_summary.total_superannuation'); - } - if (element.name === "total_reimbursement") { - return $translate.instant('impac.widget.hr_payroll_summary.total_reimbursements'); - } - if (element.name === "total_tax") { - return $translate.instant('impac.widget.hr_payroll_summary.total_taxes'); - } - if (element.name === "total_timeoff") { - return $translate.instant('impac.widget.hr_payroll_summary.total_time_off'); - } - return element.name.replace(/_/g, " "); - } - }; - $scope.getTrackedField = function() { - var allFieldsEquals, field; - if (!_.isEmpty($scope.selectedElements) && ($scope.selectedElements[0].id != null)) { - field = $scope.selectedElements[0].id.split('-')[0]; - allFieldsEquals = true; - angular.forEach($scope.selectedElements, function(element) { - return allFieldsEquals && (allFieldsEquals = element.id && field === element.id.split('-')[0]); + var dhb, status_selection; + dhb = ImpacDashboardsSvc.getCurrentDashboard(); + status_selection = w.metadata.status_selection || dhb.metadata.status_selection || { + values: [] + }; + if ($scope.isDataFound = angular.isDefined(w.content) && !_.isEmpty(w.content.leads_per_status) && hasOneLead(w.content.leads_per_status)) { + _.remove(status_selection.values, function(status) { + return indexOf.call(_.keys(w.content.leads_per_status), status) < 0; }); - if (allFieldsEquals) { - return $scope.getName({ - name: field + $scope.hasReach = true; + $scope.statusOptions = []; + return angular.forEach(w.content.leads_per_status, function(value, status) { + var isSelected; + isSelected = _.isEmpty(status_selection.values) || (indexOf.call(status_selection.values, status) >= 0); + return $scope.statusOptions.push({ + label: status, + selected: isSelected }); - } else { - return null; - } + }); } }; - $scope.formatDate = function(date) { - if ((w.metadata != null) && (w.metadata.hist_parameters != null)) { - return $filter('momentDate')(date, w.metadata.hist_parameters.period); - } else { - return $filter('momentDate')(date, 'default'); + w.processError = function(error) { + if (error.code === 404) { + return $scope.isDataFound = false; } }; - $scope.sort = function(col) { - if ($scope.sortedColumn === col) { - $scope.ascending = !$scope.ascending; - } else { - $scope.ascending = true; - $scope.sortedColumn = col; - } - return sortData(); + $scope.getImpacColor = function(index) { + return ChartFormatterSvc.getColor(index); }; - $scope.toggleSelectedElement = function(element, statementName) { - var selectedElement; - if (statementName == null) { - statementName = null; + $scope.toggleSelectStatus = function(aStatus) { + if ($scope.selectedStatus && $scope.selectedStatus === aStatus) { + $scope.selectedStatus = null; + } else { + $scope.selectedStatus = aStatus; + $scope.setLeadTooltipsIsLocked = false; } - if ($scope.isSelected(element, statementName)) { - $scope.selectedElements = _.reject($scope.selectedElements, function(sElem) { - return matchElementToSelectedElement(element, statementName, sElem); - }); - w.format(); - if (w.isExpanded() && $scope.selectedElements.length === 0) { - return w.toggleExpanded(); - } else { - return ImpacWidgetsSvc.updateWidgetSettings(w, false); - } + if (!w.isExpanded() && $scope.selectedStatus) { + return w.toggleExpanded(); } else { - selectedElement = angular.copy(element); - selectedElement.category = statementName; - $scope.selectedElements || ($scope.selectedElements = []); - $scope.selectedElements.push(selectedElement); - w.format(); - if (!w.isExpanded()) { - return w.toggleExpanded(); - } else { - return ImpacWidgetsSvc.updateWidgetSettings(w, false); - } + return ImpacWidgetsSvc.updateWidgetSettings(w, false, true); } }; - $scope.isSelected = function(element, statementName) { - if (statementName == null) { - statementName = null; - } - return (element != null) && _.any($scope.selectedElements, function(sElem) { - return matchElementToSelectedElement(element, statementName, sElem); - }); + $scope.isSelected = function(aStatus) { + return $scope.selectedStatus && aStatus === $scope.selectedStatus; }; - $scope.toggleCollapsed = function(element) { - if ((element != null) && (element.name != null)) { - if (_.find($scope.unCollapsed, (function(name) { - return element.name === name; - }))) { - $scope.unCollapsed = _.reject($scope.unCollapsed, function(name) { - return name === element.name; - }); - } else { - $scope.unCollapsed.push(element.name); + $scope.getSelectedLeads = function() { + var leads; + if ($scope.isDataFound && $scope.selectedStatus) { + leads = w.content.leads_per_status[$scope.selectedStatus].leads; + if (!$scope.setLeadTooltipsIsLocked) { + setLeadDescriptionTooltips(leads); } - return ImpacWidgetsSvc.updateWidgetSettings(w, false); + return leads; } }; - $scope.isCollapsed = function(element) { - if ((element != null) && (element.name != null)) { - if (_.find($scope.unCollapsed, (function(name) { - return element.name === name; - }))) { - return false; - } else { - return true; + $scope.leadDescriptionTooltips = {}; + setLeadDescriptionTooltips = function(leads) { + $scope.leadDescriptionTooltips = {}; + $scope.setLeadTooltipsIsLocked = true; + return _.each(leads, function(aLead, index) { + var nameLineArray, tooltip; + tooltip = []; + nameLineArray = [""]; + if (aLead.first_name) { + nameLineArray.push($filter('titleize')(aLead.first_name)); } - } - }; - $scope.hasElements = function() { - return ($scope.selectedElements != null) && $scope.selectedElements.length > 0; - }; - $scope.getSelectLineColor = function(element, statementName) { - var sElem; - if (statementName == null) { - statementName = null; - } - sElem = _.find($scope.selectedElements, function(sElem) { - return matchElementToSelectedElement(element, statementName, sElem); - }); - if ($scope.hasElements()) { - return ChartFormatterSvc.getColor(_.indexOf($scope.selectedElements, sElem)); - } - }; - matchElementToSelectedElement = function(element, elementCategory, sElem) { - if (elementCategory == null) { - elementCategory = null; - } - return getIdentifier(element, elementCategory) === getIdentifier(sElem); - }; - fetchElement = function(statements, sElemId) { - var element, i, len, statement; - for (i = 0, len = statements.length; i < len; i++) { - statement = statements[i]; - if (statement.employees == null) { - continue; + if (aLead.last_name) { + nameLineArray.push($filter('titleize')(aLead.last_name)); } - element = _.find(statement.employees, function(e) { - return getIdentifier(e, statement.name) === sElemId; - }); - if (element != null) { - element = angular.merge(angular.copy(element), { - category: statement.name + nameLineArray.push(""); + tooltip.push(nameLineArray.join(' ')); + tooltip.push("Status: " + ($filter('titleize')(aLead.lead_status))); + if (aLead.organization) { + tooltip.push("Organization: " + ($filter('titleize')(aLead.organization))); + } + if (aLead.opportunities) { + tooltip.push("Opportunities:"); + _.each(aLead.opportunities, function(opp) { + var oppLineArray; + oppLineArray = []; + if (opp.code) { + oppLineArray.push("#" + opp.code); + } + if (opp.name) { + oppLineArray.push("" + opp.name); + } + if (opp.amount) { + oppLineArray.push($filter('mnoCurrency')(opp.amount.total_amount, "USD", false)); + } + if (opp.probability) { + oppLineArray.push(opp.probability + "%"); + } + if (opp.sales_stage) { + oppLineArray.push("" + opp.sales_stage); + } + return tooltip.push(oppLineArray.join(' - ')); }); - return element; } - } + return $scope.leadDescriptionTooltips[index] = $sce.trustAsHtml(tooltip.join("
")); + }); }; - getIdentifier = function(element, category) { - var id; - if (category == null) { - category = null; - } - id = element.id || element.name; - category || (category = element.category); - if (!category) { - return id; + selectedStatusSetting = {}; + selectedStatusSetting.initialized = false; + selectedStatusSetting.initialize = function() { + if (!_.isEmpty(w.content) && angular.isDefined(w.content.leads_per_status[w.metadata.selected_status])) { + $scope.selectedStatus = w.metadata.selected_status; } - return category + "-" + id; + return selectedStatusSetting.initialized = true; }; - sortEmployeesBy = function(getElem) { - return angular.forEach(w.content.summary, function(sElem) { - if (sElem.employees) { - return sElem.employees.sort(function(a, b) { - var res; - res = getElem(a) > getElem(b) ? 1 : getElem(a) < getElem(b) ? -1 : 0; - if (!$scope.ascending) { - res *= -1; - } - return res; - }); - } - }); - }; - sortData = function() { - if ($scope.sortedColumn === 'employee') { - return sortEmployeesBy(function(el) { - return el.name; - }); - } else if ($scope.sortedColumn === 'total') { - return sortEmployeesBy(function(el) { - return $scope.getLastValue(el); - }); - } + selectedStatusSetting.toMetadata = function() { + return { + selected_status: $scope.selectedStatus + }; }; - $scope.drawTrigger = $q.defer(); + w.settings.push(selectedStatusSetting); w.format = function() { - var all_values_are_positive, chartData, inputData, labels, options, pieData, pieOptions; - if ($scope.isDataFound && $scope.hasElements()) { - if (w.isHistoryMode) { - all_values_are_positive = true; - inputData = []; - labels = _.map(w.content.dates, function(date) { - if (w.metadata.hist_parameters && w.metadata.hist_parameters.period === "YEARLY") { - return $filter('momentDate')(date, 'YEARLY'); - } else if (w.metadata.hist_parameters && w.metadata.hist_parameters.period === "QUARTERLY") { - return $filter('momentDate')(date, 'QUARTERLY'); - } else if (w.metadata.hist_parameters && w.metadata.hist_parameters.period === "MONTHLY") { - return $filter('momentDate')(date, 'MONTHLY'); - } else if (w.metadata.hist_parameters && w.metadata.hist_parameters.period === "WEEKLY") { - return $filter('momentDate')(date, 'WEEKLY'); - } else if (w.metadata.hist_parameters && w.metadata.hist_parameters.period === "DAILY") { - return $filter('momentDate')(date, 'DAILY'); + var max; + if ($scope.isDataFound) { + max = 0; + angular.forEach($scope.statusOptions, function(statusOption) { + var value; + value = w.content.leads_per_status[statusOption.label].total; + if (statusOption.selected && angular.isDefined(value) && value > max) { + return max = value; + } + }); + if (max > 0) { + return $scope.funnel = _.compact(_.map($scope.statusOptions, function(statusOption, index) { + var coloredWidth, statusWidth, value; + value = w.content.leads_per_status[statusOption.label].total; + coloredWidth = (100 * (value / max) - 10).toFixed(); + if (coloredWidth < 8) { + statusWidth = 92; } else { - return $filter('momentDate')(date, 'default'); + statusWidth = 100 - coloredWidth; } - }); - angular.forEach($scope.selectedElements, function(sElem) { - var data; - data = angular.copy(sElem); - inputData.push({ - title: data.name, - labels: labels, - values: data.totals - }); - return angular.forEach(data.totals, function(value) { - return all_values_are_positive && (all_values_are_positive = value >= 0); - }); - }); - options = { - scaleBeginAtZero: all_values_are_positive, - showXLabels: true, - datasetFill: $scope.selectedElements.length === 1, - pointDot: $scope.selectedElements.length === 1, - currency: 'hide' - }; - chartData = ChartFormatterSvc.lineChart(inputData, options); - } else { - pieData = _.map($scope.selectedElements, function(elem) { - return { - label: $filter('titleize')($scope.getName({ - name: elem.name - })), - value: $scope.getLastValue(elem) - }; - }); - pieOptions = { - showTooltips: true, - percentageInnerCutout: 50, - tooltipFontSize: 12, - currency: 'hide' - }; - chartData = ChartFormatterSvc.pieChart(pieData, pieOptions); + if (statusOption.selected && angular.isDefined(value)) { + return { + status: statusOption.label, + number: value, + coloredWidth: { + width: coloredWidth + "%" + }, + statusWidth: { + width: statusWidth + "%" + } + }; + } + })); } - return $scope.drawTrigger.notify(chartData); } }; - unCollapsedSetting = {}; - unCollapsedSetting.initialized = false; - unCollapsedSetting.initialize = function() { - return unCollapsedSetting.initialized = true; - }; - unCollapsedSetting.toMetadata = function() { - return { - unCollapsed: $scope.unCollapsed - }; - }; - w.settings.push(unCollapsedSetting); - selectedElementsSetting = {}; - selectedElementsSetting.initialized = false; - selectedElementsSetting.initialize = function() { - return selectedElementsSetting.initialized = true; - }; - selectedElementsSetting.toMetadata = function() { - var selectedElementsMetadata; - selectedElementsMetadata = _.map($scope.selectedElements, function(element) { - return getIdentifier(element); - }); - return { - selectedElements: selectedElementsMetadata - }; - }; - w.settings.push(selectedElementsSetting); return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('widgetHrPayrollSummary', function() { + module.directive('widgetSalesLeadsFunnel', function() { return { restrict: 'A', - controller: 'WidgetHrPayrollSummaryCtrl' + controller: 'WidgetSalesLeadsFunnelCtrl' }; }); @@ -12631,75 +12745,76 @@ $templateCache.put("widgets/sales-top-opportunities.tmpl.html","
"]; + if (aLead.first_name) { + nameLineArray.push($filter('titleize')(aLead.first_name)); } - return "(current " + period + ")"; - } - }; - $scope.drawTrigger = $q.defer(); - w.format = function() { - var all_values_are_positive, chartData, dates, inputData, options, period; - if ($scope.isDataFound) { - period = null; - if ((w.metadata != null) && (w.metadata.hist_parameters != null)) { - period = w.metadata.hist_parameters.period; + if (aLead.last_name) { + nameLineArray.push($filter('titleize')(aLead.last_name)); } - dates = _.map(w.content.dates, function(date) { - return $filter('momentDate')(date, period); - }); - inputData = { - title: $translate.instant('impac.widget.hr_payroll_taxes.payroll_taxes'), - labels: dates, - values: w.content.total_tax - }; - all_values_are_positive = true; - angular.forEach(w.content.total_tax, function(value) { - return all_values_are_positive && (all_values_are_positive = value >= 0); - }); - options = { - scaleBeginAtZero: all_values_are_positive, - showXLabels: false - }; - chartData = ChartFormatterSvc.lineChart([inputData], options); - return $scope.drawTrigger.notify(chartData); - } + nameLineArray.push(""); + tooltip.push(nameLineArray.join(' ')); + tooltip.push("Status: " + ($filter('titleize')(aLead.lead_status))); + if (aLead.organization) { + tooltip.push("Organization: " + ($filter('titleize')(aLead.organization))); + } + if (aLead.opportunities) { + tooltip.push("Opportunities:"); + _.each(aLead.opportunities, function(opp) { + var oppLineArray; + oppLineArray = []; + if (opp.code) { + oppLineArray.push("#" + opp.code); + } + if (opp.name) { + oppLineArray.push("" + opp.name); + } + if (opp.amount) { + oppLineArray.push($filter('mnoCurrency')(opp.amount.total_amount, "USD", false)); + } + if (opp.probability) { + oppLineArray.push(opp.probability + "%"); + } + if (opp.sales_stage) { + oppLineArray.push("" + opp.sales_stage); + } + return tooltip.push(oppLineArray.join(' - ')); + }); + } + return $scope.leadDescriptionTooltips[index] = $sce.trustAsHtml(tooltip.join("
")); + }); }; return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('widgetHrPayrollTaxes', function() { + module.directive('widgetSalesLeadsList', function() { return { restrict: 'A', - controller: 'WidgetHrPayrollTaxesCtrl' + controller: 'WidgetSalesLeadsListCtrl' }; }); @@ -12708,197 +12823,48 @@ $templateCache.put("widgets/sales-top-opportunities.tmpl.html","
" + $translate.instant('impac.widget.sales_list.to') + " "; w.initContext = function() { - $scope.isDataFound = !_.isEmpty(w.content) && (w.content.summary != null) && !_.isEmpty(w.content.summary.data); - if ($scope.isDataFound) { - $scope.periodOptions = [ + if ($scope.isDataFound = angular.isDefined(w.content) && !_.isEmpty(w.content.summary)) { + buildFxTotals(); + $scope.ratesDate = moment.now(); + $scope.filterOptions = [ { - label: _.capitalize($translate.instant("impac.widget.settings.time_period.period.yearly").toLowerCase()), - value: "yearly" + label: $translate.instant('impac.widget.sales_list.value_sold_taxes'), + value: 'gross_value_sold' }, { - label: _.capitalize($translate.instant("impac.widget.settings.time_period.period.monthly").toLowerCase()), - value: "monthly" + label: $translate.instant('impac.widget.sales_list.value_sold_no_taxes'), + value: 'net_value_sold' }, { - label: _.capitalize($translate.instant("impac.widget.settings.time_period.period.weekly").toLowerCase()), - value: "weekly" + label: $translate.instant('impac.widget.sales_list.quantity_sold'), + value: 'quantity_sold' }, { - label: _.capitalize($translate.instant("impac.widget.settings.time_period.period.daily").toLowerCase()), - value: "daily" - } - ]; - $scope.filterOptions = [ - { - label: $translate.instant("impac.common.label.gender"), - value: "gender" + label: $translate.instant('impac.widget.sales_list.value_purchased_taxes'), + value: 'gross_value_purchased' }, { - label: $translate.instant("impac.common.label.age_range"), - value: "age_range" + label: $translate.instant('impac.widget.sales_list.value_purchased_no_taxes'), + value: 'net_value_purchased' }, { - label: $translate.instant("impac.common.label.job_title"), - value: "job_title" + label: $translate.instant('impac.widget.sales_list.quantity_purchased'), + value: 'quantity_purchased' } ]; - $scope.period = angular.copy(_.find($scope.periodOptions, function(o) { - return o.value === w.content.total.period.toLowerCase(); - }) || $scope.periodOptions[0]); - return $scope.filter = angular.copy(_.find($scope.filterOptions, function(o) { - return o.value === w.content.summary.filter; + $scope.filter = angular.copy(_.find($scope.filterOptions, function(o) { + return o.value === w.metadata.filter; }) || $scope.filterOptions[0]); - } - }; - $scope.getColorByIndex = function(index) { - return ChartFormatterSvc.getColor(index); - }; - $scope.drawTrigger = $q.defer(); - w.format = function() { - var barData, barOptions, chartData, lineData, lineOptions; - if ($scope.isDataFound) { - barData = { - labels: _.map(w.content.summary.data, function(elem) { - return elem.label; - }), - values: _.map(w.content.summary.data, function(elem) { - return elem.value; - }) - }; - if ($scope.filter.value === 'gender') { - barOptions = { - showTooltips: false - }; - chartData = ChartFormatterSvc.barChart(barData, barOptions); - } else if ($scope.filter.value === 'job_title') { - barOptions = { - showTooltips: false, - showXLabels: false, - barDatasetSpacing: 15 - }; - chartData = ChartFormatterSvc.barChart(barData, barOptions); - } else if ($scope.filter.value === 'age_range') { - if (_.last(barData.labels) === "unknown") { - barData.labels.pop(); - barData.values.pop(); - } - lineData = [ - { - title: "Average salary", - labels: barData.labels, - values: barData.values - } - ]; - lineOptions = { - scaleBeginAtZero: true, - showXLabels: false - }; - chartData = ChartFormatterSvc.lineChart(lineData, lineOptions); - } else { - return { - error: { - message: "wrong filter", - code: 400 - } - }; - } - return $scope.drawTrigger.notify(chartData); - } - }; - return $scope.widgetDeferred.resolve(settingsPromises); - }]); - - module.directive('widgetHrSalariesSummary', function() { - return { - restrict: 'A', - controller: 'WidgetHrSalariesSummaryCtrl' - }; - }); - -}).call(this); - -(function() { - var module; - - module = angular.module('impac.components.widgets.hr-superannuation-accruals', []); - - module.controller('WidgetHrSuperannuationAccrualsCtrl', ["$scope", "$q", function($scope, $q) { - var settingsPromises, w; - w = $scope.widget; - $scope.orgDeferred = $q.defer(); - $scope.paramSelectorDeferred = $q.defer(); - settingsPromises = [$scope.orgDeferred.promise, $scope.paramSelectorDeferred.promise]; - w.initContext = function() { - if ($scope.isDataFound = !_.isEmpty(w.content) && !_.isEmpty(w.content.employees)) { - $scope.employeesOptions = _.map(w.content.employees, function(e) { - return { - value: e.uid, - label: e.lastname + " " + e.firstname - }; - }); - return $scope.selectedEmployee = { - value: $scope.getEmployee().uid, - label: ($scope.getEmployee().lastname) + " " + ($scope.getEmployee().firstname) - }; - } - }; - $scope.getEmployee = function() { - var e; - if (!$scope.isDataFound) { - return false; - } - e = w.content.employees[0]; - if (w.metadata && w.metadata.employee_id) { - e = _.find(w.content.employees, function(e) { - return e.uid === w.metadata.employee_id; - }) || w.content.employees[0]; - } - return angular.copy(e); - }; - return $scope.widgetDeferred.resolve(settingsPromises); - }]); - - module.directive('widgetHrSuperannuationAccruals', function() { - return { - restrict: 'A', - controller: 'WidgetHrSuperannuationAccrualsCtrl' - }; - }); - -}).call(this); - -(function() { - var module; - - module = angular.module('impac.components.widgets.hr-timesheets', []); - - module.controller('WidgetHrTimesheetsCtrl', ["$scope", "$q", "ChartFormatterSvc", "ImpacWidgetsSvc", function($scope, $q, ChartFormatterSvc, ImpacWidgetsSvc) { - var settingsPromises, unCollapsedSetting, w; - w = $scope.widget; - $scope.orgDeferred = $q.defer(); - $scope.timePeriodDeferred = $q.defer(); - $scope.paramSelectorDeferred = $q.defer(); - settingsPromises = [$scope.orgDeferred.promise, $scope.timePeriodDeferred.promise, $scope.paramSelectorDeferred.promise]; - w.initContext = function() { - if ($scope.isDataFound = angular.isDefined(w.content) && !_.isEmpty(w.content.employees) && !_.isEmpty(w.content.dates)) { - $scope.employeesOptions = _.map(w.content.employees, function(e) { - return { - value: e.id, - label: e.lastname + " " + e.firstname - }; - }); - $scope.selectedEmployee = { - value: $scope.getEmployee().id, - label: ($scope.getEmployee().lastname) + " " + ($scope.getEmployee().firstname) - }; - return $scope.unCollapsed = w.metadata.unCollapsed || []; + $scope.unCollapsed = w.metadata.unCollapsed || []; + return sortData(); } }; $scope.toggleCollapsed = function(categoryName) { @@ -12926,33 +12892,76 @@ $templateCache.put("widgets/sales-top-opportunities.tmpl.html","
getElem(b) ? 1 : getElem(a) < getElem(b) ? -1 : 0; + if (!$scope.ascending) { + res *= -1; + } + return res; + }); + } + }); }; - $scope.getEmployeeTimeWorked = function() { - var employee; - if (employee = $scope.getEmployee()) { - return _.find(w.content.employees, function(e) { - return e.id === employee.id; - }).total_time_worked; + sortData = function() { + if ($scope.sortedColumn === 'account') { + return sortAccountsBy(function(el) { + return el.name; + }); + } else if ($scope.sortedColumn === 'total') { + return sortAccountsBy(function(el) { + return el.total; + }); } }; - $scope.getEmployeeTimeOff = function() { - var employee; - if (employee = $scope.getEmployee()) { - return _.find(w.content.employees, function(e) { - return e.id === employee.id; - }).total_time_off; + $scope.sort = function(col) { + if ($scope.sortedColumn === col) { + $scope.ascending = !$scope.ascending; + } else { + $scope.ascending = true; + $scope.sortedColumn = col; } + return sortData(); + }; + buildFxTotals = function() { + var groupedSales, i, len, ref, results, sale, saleFxTotals; + ref = w.content.summary; + results = []; + for (i = 0, len = ref.length; i < len; i++) { + groupedSales = ref[i]; + results.push((function() { + var j, len1, ref1, results1; + ref1 = groupedSales.products; + results1 = []; + for (j = 0, len1 = ref1.length; j < len1; j++) { + sale = ref1[j]; + saleFxTotals = []; + if (!_.isEmpty(sale.fx_totals)) { + _.mapKeys(sale.fx_totals, function(total, currency) { + var amount; + amount = total['amount']; + if (!(amount === 0 || currency === w.metadata.currency)) { + return saleFxTotals.push({ + currency: currency, + amount: amount, + rate: total.rate + }); + } + }); + } + if (!_.isEmpty(saleFxTotals)) { + results1.push(sale.formattedFxTotals = saleFxTotals); + } else { + results1.push(void 0); + } + } + return results1; + })()); + } + return results; }; unCollapsedSetting = {}; unCollapsedSetting.initialized = false; @@ -12968,10 +12977,10 @@ $templateCache.put("widgets/sales-top-opportunities.tmpl.html","
= 0); + }); + options = { + scaleBeginAtZero: all_values_are_positive, + showXLabels: false + }; + chartData = ChartFormatterSvc.lineChart([inputData], options); return $scope.drawTrigger.notify(chartData); } }; return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('widgetHrWorkforceSummary', function() { + module.directive('widgetSalesMargin', function() { return { restrict: 'A', - controller: 'WidgetHrWorkforceSummaryCtrl' + controller: 'WidgetSalesMarginCtrl' }; }); @@ -13107,351 +13085,238 @@ $templateCache.put("widgets/sales-top-opportunities.tmpl.html","
0)) { - w.width = 6; - } - return sortData(); - } - }; - $scope.getElementChartColor = function(index) { - if (index != null) { - return ChartFormatterSvc.getColor(index); - } - }; - $scope.getLastValue = function(element) { - if ((element != null) && (element.totals != null)) { - return _.last(element.totals); - } - }; - $scope.getTotalSum = function(element) { - if ((element != null) && (element.totals != null)) { - return _.reduce(element.totals, function(memo, num) { - return memo + num; - }, 0); - } + return $scope.isDataFound = (w.content != null) && (w.content.sales != null) && w.content.sales.length > 0 && (w.content.sales[0].total != null); }; - $scope.getName = function(element) { - if ((element != null) && (element.name != null)) { - return element.name.replace(/_/g, " "); + $scope.getCurrency = function() { + if ($scope.isDataFound) { + return w.content.currency; } }; - $scope.getPeriod = function() { - var period, period_param; - if ($scope.isDataFound && w.metadata && w.metadata.hist_parameters) { - period_param = w.metadata.hist_parameters.period || "MONTHLY"; - period = "day"; - if (period_param !== "DAILY") { - period = period_param.substr(0, period_param.length - 2).toLowerCase(); + $scope.getValue = function(valueType) { + if ((w.content != null) && w.content[valueType]) { + switch ($scope.displayType.value) { + case 'total': + return $filter('mnoCurrency')(w.content[valueType][0].total, $scope.getCurrency(), false); + case 'average': + return $filter('mnoCurrency')(w.content[valueType][0].avg, $scope.getCurrency(), false); + case 'trans_count': + return w.content[valueType][0].trans_count; } - return "current " + period; } else { - return "current month"; + return 0; } }; - $scope.getOldestInvoice = function(element) { - var idx; - idx = _.findIndex(element.totals, function(invoice) { - return invoice !== 0; - }); - return w.content.dates[idx] || null; - }; - $scope.sort = function(col) { - if ($scope.sortedColumn === col) { - $scope.ascending = !$scope.ascending; + $scope.sign = function(type) { + if ($scope.displayType.value === 'average') { + return { + minus: '~', + equal: '=>' + }[type]; + } else if ($scope.displayType.value === 'trans_count') { + return { + minus: '+', + equal: '=' + }[type]; } else { - $scope.ascending = true; - $scope.sortedColumn = col; + return { + minus: '-', + equal: '=' + }[type]; } - return sortData(); }; - $scope.toggleSelectedElement = function(element, statementName) { - if (statementName == null) { - statementName = null; + return $scope.widgetDeferred.resolve(settingsPromises); + }]); + + module.directive('widgetSalesNetSales', function() { + return { + restrict: 'A', + controller: 'WidgetSalesNetSalesCtrl' + }; + }); + +}).call(this); + +(function() { + var module; + + module = angular.module('impac.components.widgets.sales-new-vs-existing-customers', []); + + module.controller('WidgetSalesNewVsExistingCustomersCtrl', ["$scope", "$q", "ChartFormatterSvc", "$filter", "$translate", function($scope, $q, ChartFormatterSvc, $filter, $translate) { + var daysTmpl, hoursTmpl, settingsPromises, w; + w = $scope.widget; + $scope.orgDeferred = $q.defer(); + $scope.timeRangeParamSelectorDeferred = $q.defer(); + $scope.displayTypeParamSelectorDeferred = $q.defer(); + $scope.chartDeferred = $q.defer(); + settingsPromises = [$scope.orgDeferred.promise, $scope.timeRangeParamSelectorDeferred.promise, $scope.displayTypeParamSelectorDeferred.promise, $scope.chartDeferred.promise]; + $scope.displayOptions = [ + { + label: $translate.instant('impac.widget.sales_new_vs_existing.customers'), + value: 'customers_count' + }, { + label: $translate.instant('impac.widget.sales_new_vs_existing.total_sales'), + value: 'total_sales' + }, { + label: $translate.instant('impac.widget.sales_new_vs_existing.transactions'), + value: 'transactions_count' } - if ($scope.isSelected(element, statementName)) { - $scope.selectedElements = _.reject($scope.selectedElements, function(sElem) { - return matchElementToSelectedElement(element, statementName, sElem); - }); - w.format(); - if (w.isExpanded() && $scope.selectedElements.length === 0) { - return w.toggleExpanded(); - } else { - return ImpacWidgetsSvc.updateWidgetSettings(w, false); - } - } else { - $scope.selectedElements || ($scope.selectedElements = []); - if (statementName) { - element.category = statementName; - } - $scope.selectedElements.push(element); - w.format(); - if (!w.isExpanded()) { - return w.toggleExpanded(); - } else { - return ImpacWidgetsSvc.updateWidgetSettings(w, false); - } + ]; + $scope.displayType = angular.copy(_.find($scope.displayOptions, function(o) { + return w.metadata && (o.value === w.metadata.display_type); + }) || $scope.displayOptions[0]); + hoursTmpl = $translate.instant('impac.widget.sales_new_vs_existing.tmpl.last_hours'); + daysTmpl = $translate.instant('impac.widget.sales_new_vs_existing.tmpl.last_days'); + $scope.timeRangeOptions = [ + { + label: hoursTmpl.replace(':hours:', 24), + value: '-1d' + }, { + label: daysTmpl.replace(':days:', 5), + value: '-5d' + }, { + label: daysTmpl.replace(':days:', 7), + value: '-7d' + }, { + label: daysTmpl.replace(':days:', 30), + value: '-30d' + }, { + label: daysTmpl.replace(':days:', 45), + value: '-45d' + }, { + label: daysTmpl.replace(':days:', 60), + value: '-60d' + }, { + label: daysTmpl.replace(':days:', 90), + value: '-90d' } + ]; + $scope.timeRange = angular.copy(_.find($scope.timeRangeOptions, function(o) { + return w.metadata && (o.value === w.metadata.time_range); + }) || $scope.timeRangeOptions[6]); + w.initContext = function() { + return $scope.isDataFound = (w.content != null) && (w.content.summary != null) && (w.content.summary.customers_count != null) && (w.content.summary.customers_count.total != null) && w.content.summary.customers_count.total > 0; }; - $scope.isSelected = function(element, statementName) { - if (statementName == null) { - statementName = null; - } - return (element != null) && _.any($scope.selectedElements, function(sElem) { - return matchElementToSelectedElement(element, statementName, sElem); - }); + $scope.displayTypeOnClick = function() { + $scope.updateSettings(false); + return w.format(); }; - $scope.toggleCollapsed = function(element) { - if ((element != null) && (element.name != null)) { - if (_.find($scope.unCollapsed, (function(name) { - return element.name === name; - }))) { - $scope.unCollapsed = _.reject($scope.unCollapsed, function(name) { - return name === element.name; - }); - } else { - $scope.unCollapsed.push(element.name); + $scope.getValue = function(key) { + var result, returnType; + if ($scope.isDataFound) { + returnType = $scope.displayType.value; + result = w.content.summary[returnType][key]; + switch (returnType) { + case 'total_sales': + return $filter('mnoCurrency')(result, w.metadata.currency); + default: + return result; } - return ImpacWidgetsSvc.updateWidgetSettings(w, false); } }; - $scope.isCollapsed = function(element) { - if ((element != null) && (element.name != null)) { - if (_.find($scope.unCollapsed, (function(name) { - return element.name === name; - }))) { - return false; - } else { - return true; + $scope.shouldDisplayCurrency = function() { + return $scope.isDataFound && $scope.displayType.value.indexOf('count') < 0; + }; + $scope.calculatePercentage = function(sliceType) { + var values; + values = { + "new": Math.abs(w.content.summary[$scope.displayType.value]["new"]), + existing: Math.abs(w.content.summary[$scope.displayType.value].existing) + }; + values.totals = values["new"] + values.existing; + return Math.round(values[sliceType] / values.totals * 100); + }; + $scope.drawTrigger = $q.defer(); + w.format = function() { + var chartData, pieData, pieOptions; + if ($scope.isDataFound) { + pieData = [ + { + label: "EXISTING " + ($scope.calculatePercentage('existing')) + "%", + value: w.content.summary[$scope.displayType.value].existing + }, { + label: "NEW " + ($scope.calculatePercentage('new')) + "%", + value: w.content.summary[$scope.displayType.value]["new"] + } + ]; + pieOptions = { + percentageInnerCutout: 50, + tooltipFontSize: 12 + }; + if (!$scope.shouldDisplayCurrency()) { + angular.merge(pieOptions, { + currency: 'hide' + }); } + chartData = ChartFormatterSvc.pieChart(pieData, pieOptions, true); + return $scope.drawTrigger.notify(chartData); } }; - $scope.getSelectLineColor = function(element, statementName) { - var sElem; - if (statementName == null) { - statementName = null; - } - sElem = _.find($scope.selectedElements, function(sElem) { - return matchElementToSelectedElement(element, statementName, sElem); - }); - if ($scope.hasElements()) { - return ChartFormatterSvc.getColor(_.indexOf($scope.selectedElements, sElem)); - } - }; - $scope.hasElements = function() { - return ($scope.selectedElements != null) && $scope.selectedElements.length > 0; - }; - matchElementToSelectedElement = function(element, elementCategory, sElem) { - if (elementCategory == null) { - elementCategory = null; - } - return getIdentifier(element, elementCategory) === getIdentifier(sElem); - }; - fetchElement = function(statements, sElemId) { - var element, elements, i, len, statement; - for (i = 0, len = statements.length; i < len; i++) { - statement = statements[i]; - elements = statement.suppliers || statement.customers; - if (_.isEmpty(elements)) { - continue; - } - element = _.find(elements, function(elem) { - return getIdentifier(elem, statement.name) === sElemId; - }); - if (element != null) { - element = angular.merge(angular.copy(element), { - category: statement.name - }); - return element; - } - } - }; - getIdentifier = function(element, category) { - var id; - if (category == null) { - category = null; - } - id = element.id || element.name; - category || (category = element.category); - if (!category) { - return id; - } - return category + "-" + id; - }; - sortBy = function(data, getElem) { - return data.sort(function(a, b) { - var res; - res = getElem(a) > getElem(b) ? 1 : getElem(a) < getElem(b) ? -1 : 0; - if (!$scope.ascending) { - res *= -1; - } - return res; - }); - }; - sortByInvoiceCallback = function(el) { - var date; - date = $scope.getOldestInvoice(el); - if (date && _.isString(date)) { - date = date.match(/[^_\W]+\s?/g).join(''); - } - return new Date(date); - }; - sortData = function() { - if ($scope.sortedColumn === 'customer') { - sortBy(w.content.payables.suppliers, function(el) { - return el.name; - }); - return sortBy(w.content.receivables.customers, function(el) { - return el.name; - }); - } else if ($scope.sortedColumn === 'total') { - sortBy(w.content.payables.suppliers, function(el) { - return $scope.getTotalSum(el); - }); - return sortBy(w.content.receivables.customers, function(el) { - return $scope.getTotalSum(el); - }); - } else if ($scope.sortedColumn === 'invoice') { - sortBy(w.content.payables.suppliers, sortByInvoiceCallback); - return sortBy(w.content.receivables.customers, sortByInvoiceCallback); - } - }; - buildFxTotals = function() { - var contact, contactFxTotals, fxTotal, i, j, len, len1, ref, ref1, results; - ref = _.union(w.content.payables.suppliers, w.content.receivables.customers); - results = []; - for (i = 0, len = ref.length; i < len; i++) { - contact = ref[i]; - contactFxTotals = []; - ref1 = contact.fx_totals; - for (j = 0, len1 = ref1.length; j < len1; j++) { - fxTotal = ref1[j]; - if (!_.isEmpty(fxTotal)) { - _.mapKeys(fxTotal, function(total, currency) { - if (currency !== w.metadata.currency) { - return contactFxTotals.push({ - currency: currency, - amount: total.amount, - rate: total.rate - }); - } - }); - } - } - if (!_.isEmpty(contactFxTotals)) { - results.push(contact.formattedFxTotals = contactFxTotals); - } else { - results.push(void 0); - } - } - return results; - }; - $scope.drawTrigger = $q.defer(); - w.format = function() { - var all_values_are_positive, chartData, dates, inputData, options, period; - if ($scope.isDataFound && ($scope.selectedElements != null) && $scope.selectedElements.length > 0) { - all_values_are_positive = true; - inputData = []; - period = null; - if ((w.metadata != null) && (w.metadata.hist_parameters != null)) { - period = w.metadata.hist_parameters.period; - } - dates = _.map(w.content.dates, function(date, index) { - return $filter('momentDate')(date, period); - }); - angular.forEach($scope.selectedElements, function(sElem) { - var data; - data = angular.copy(sElem); - inputData.push({ - title: data.name, - labels: dates, - values: data.totals - }); - return angular.forEach(data.totals, function(value) { - return all_values_are_positive && (all_values_are_positive = value >= 0); - }); - }); - options = { - scaleBeginAtZero: all_values_are_positive, - showXLabels: true, - datasetFill: $scope.selectedElements.length === 1, - pointDot: $scope.selectedElements.length === 1 - }; - chartData = ChartFormatterSvc.lineChart(inputData, options); - return $scope.drawTrigger.notify(chartData); - } - }; - unCollapsedSetting = {}; - unCollapsedSetting.initialized = false; - unCollapsedSetting.initialize = function() { - return unCollapsedSetting.initialized = true; - }; - unCollapsedSetting.toMetadata = function() { - return { - unCollapsed: $scope.unCollapsed - }; - }; - w.settings.push(unCollapsedSetting); - selectedElementsSetting = {}; - selectedElementsSetting.initialized = false; - selectedElementsSetting.initialize = function() { - return selectedElementsSetting.initialized = true; - }; - selectedElementsSetting.toMetadata = function() { - var selectedElementsMetadata; - selectedElementsMetadata = _.map($scope.selectedElements, function(element) { - return getIdentifier(element); - }); - return { - selectedElements: selectedElementsMetadata - }; - }; - w.settings.push(selectedElementsSetting); return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('widgetInvoicesAgedPayablesReceivables', function() { + module.directive('widgetSalesNewVsExistingCustomers', function() { return { restrict: 'A', - controller: 'WidgetInvoicesAgedPayablesReceivablesCtrl' + controller: 'WidgetSalesNewVsExistingCustomersCtrl' }; }); @@ -13460,572 +13325,591 @@ $templateCache.put("widgets/sales-top-opportunities.tmpl.html","
" + entity.name + ""]; - count = 1; - _.each(entity.invoices, function(i) { - var amountDetail, formattedInvoiced, formattedPaid, invCurrency, txn; - txn = i.transaction_no !== "" ? " (" + i.transaction_no + ")" : ""; - invCurrency = Object.keys(i.fx_totals)[0]; - formattedInvoiced = $filter('mnoCurrency')(i.fx_totals[invCurrency].invoiced, invCurrency, true); - if (i.tooltip_status === "partially paid") { - formattedPaid = $filter('mnoCurrency')(i.fx_totals[invCurrency].paid, invCurrency, true); - amountDetail = " (" + formattedPaid + " on " + formattedInvoiced + ")"; - } else { - amountDetail = " (" + formattedInvoiced + ")"; - } - tooltip.push("#" + count + txn + " - " + i.tooltip_status + amountDetail); - return count++; - }); - return $scope.invoiceTooltips[entity.id] = $sce.trustAsHtml(tooltip.join("
")); - }); - }; - buildFxTotals = function() { - var contact, contactFxTotals, j, len, ref, results; - ref = w.content.entities; - results = []; - for (j = 0, len = ref.length; j < len; j++) { - contact = ref[j]; - contactFxTotals = []; - _.mapKeys(contact.fx_totals, function(total, currency) { - if (currency !== w.metadata.currency) { - return contactFxTotals.push({ - currency: currency, - amount: total.invoiced, - rate: total.rate - }); - } - }); - if (!_.isEmpty(contactFxTotals)) { - results.push(contact.formattedFxTotals = contactFxTotals); - } else { - results.push(void 0); + $scope.formatNumberOfLeads = function(carac) { + var color, formattedNominal, formattedVariation, n_hash, nominal, variation; + formattedNominal = 0; + formattedVariation = "- %"; + if (!$scope.isDataFound) { + return { + nominal: formattedNominal, + variation: formattedVariation, + color: '' + }; + } + n_hash = angular.copy(w.content.number_of_leads); + nominal = 0; + color = ''; + if (carac === "new" && n_hash.total && n_hash.total.length === 2) { + nominal = n_hash.total[1] - n_hash.total[0]; + variation = getVariation(n_hash.total); + if (variation > 0) { + color = 'green'; + } else if (variation < 0) { + color = 'red'; + } + } else if (carac === "converted" && n_hash.converted && n_hash.converted.length === 2) { + nominal = n_hash.converted[1]; + variation = getVariation(n_hash.converted); + if (variation > 0) { + color = 'green'; + } else if (variation < 0) { + color = 'red'; + } + } else if (carac === "lost" && n_hash.lost && n_hash.lost.length === 2) { + nominal = n_hash.lost[1]; + variation = getVariation(n_hash.lost); + if (variation < 0) { + color = 'green'; + } else if (variation > 0) { + color = 'red'; } + } else { + return { + nominal: formattedNominal, + variation: formattedVariation, + color: color + }; } - return results; - }; - return $scope.widgetDeferred.resolve(settingsPromises); - }]); - - module.directive('widgetInvoicesList', function() { - return { - restrict: 'A', - controller: 'WidgetInvoicesListCtrl' - }; - }); - -}).call(this); - -(function() { - var module; - - module = angular.module('impac.components.widgets.invoices-summary', []); - - module.controller('WidgetInvoicesSummaryCtrl', ["$scope", "$q", "ChartFormatterSvc", function($scope, $q, ChartFormatterSvc) { - var settingsPromises, w; - w = $scope.widget; - $scope.orgDeferred = $q.defer(); - $scope.chartFiltersDeferred = $q.defer(); - $scope.chartDeferred = $q.defer(); - $scope.datesPickerDeferred = $q.defer(); - settingsPromises = [$scope.orgDeferred.promise, $scope.chartFiltersDeferred.promise, $scope.chartDeferred.promise, $scope.datesPickerDeferred.promise]; - $scope.defaultFrom = (new Date().getFullYear() - 10) + "-01-01"; - w.initContext = function() { - return $scope.isDataFound = !_.isEmpty(w.content) && !_.isEmpty(w.content.summary); + if (nominal > 0) { + formattedNominal = "+" + nominal; + } else if (nominal < 0) { + formattedNominal = nominal; + } + if (variation && variation > 0) { + formattedVariation = "+" + (variation.toFixed(0)) + "%"; + } else if (variation && variation < 0) { + formattedVariation = (variation.toFixed(0)) + "%"; + } + return { + nominal: formattedNominal, + variation: formattedVariation, + color: color + }; }; - $scope.drawTrigger = $q.defer(); - w.format = function() { - var chartData, pieData, pieOptions; - if ($scope.isDataFound) { - pieData = _.map(w.content.summary, function(entity) { - return { - label: entity.name, - value: entity.total - }; - }); - pieOptions = { - percentageInnerCutout: 50, - tooltipFontSize: 12 - }; - chartData = ChartFormatterSvc.pieChart(pieData, pieOptions); - return $scope.drawTrigger.notify(chartData); + getVariation = function(v_array) { + var variation; + if (v_array[0] !== 0) { + return variation = 100 * ((v_array[1] / v_array[0]) - 1); + } else { + return variation = "- "; } }; return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('widgetInvoicesSummary', function() { + module.directive('widgetSalesNumberOfLeads', function() { return { restrict: 'A', - controller: 'WidgetInvoicesSummaryCtrl' + controller: 'WidgetSalesNumberOfLeadsCtrl' }; }); }).call(this); (function() { - var module; + var module, + indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }; - module = angular.module('impac.components.widgets.sales-aged', []); + module = angular.module('impac.components.widgets.sales-opportunities-funnel', []); - module.controller('WidgetSalesAgedCtrl', ["$scope", "$q", "ChartFormatterSvc", "$filter", "$translate", function($scope, $q, ChartFormatterSvc, $filter, $translate) { - var settingsPromises, w; + module.controller('WidgetSalesOpportunitiesFunnelCtrl', ["$scope", "$q", "ChartFormatterSvc", "$filter", "ImpacWidgetsSvc", "ImpacDashboardsSvc", function($scope, $q, ChartFormatterSvc, $filter, ImpacWidgetsSvc, ImpacDashboardsSvc) { + var getFilteredTotal, getOrderedAssigneeIds, hasOneOpportunity, selectedStatusSetting, settingsPromises, sortData, sortOppsBy, w; w = $scope.widget; + $scope.selectedOpportunities = []; + $scope.collapsed = []; $scope.orgDeferred = $q.defer(); - $scope.timePeriodDeferred = $q.defer(); - $scope.paramSelectorDeferred = $q.defer(); - $scope.chartDeferred = $q.defer(); - settingsPromises = [$scope.orgDeferred.promise, $scope.timePeriodDeferred.promise, $scope.paramSelectorDeferred.promise, $scope.chartDeferred.promise]; - w.initContext = function() { - $scope.isDataFound = angular.isDefined(w.content) && !_.isEmpty(w.content.aged_sales) && !_.isEmpty(w.content.dates); - if ($scope.isDataFound) { - $scope.filterOptions = [ - { - label: $translate.instant("impac.widget.sales_aged.value_sold_taxes"), - value: 'gross_value_sold' - }, { - label: $translate.instant("impac.widget.sales_aged.value_sold_no_taxes"), - value: 'net_value_sold' - }, { - label: $translate.instant("impac.widget.sales_aged.quantity_sold"), - value: 'quantity_sold' - } - ]; - return $scope.filter = angular.copy(_.find($scope.filterOptions, function(o) { - return w.metadata && w.metadata.filter === o.value; - }) || $scope.filterOptions[0]); - } - }; - $scope.getTotal = function(anIndex) { - if ($scope.isDataFound && anIndex >= 0 && anIndex < w.content.aged_sales[$scope.filter.value].length) { - return w.content.aged_sales[$scope.filter.value][anIndex]; - } + $scope.paramsPickerDeferred1 = $q.defer(); + $scope.paramsPickerDeferred2 = $q.defer(); + $scope.widthDeferred = $q.defer(); + settingsPromises = [$scope.orgDeferred.promise, $scope.paramsPickerDeferred1.promise, $scope.paramsPickerDeferred2.promise, $scope.widthDeferred.promise]; + $scope.ascending = true; + $scope.sortedColumn = 'group'; + hasOneOpportunity = function(oppsPerSalesStage) { + var reducedHash, total, totalsArray; + reducedHash = _.mapValues(oppsPerSalesStage, function(statusHash) { + return statusHash.total; + }); + totalsArray = _.compact(_.values(reducedHash)); + total = _.reduce(totalsArray, function(total, n) { + if (total == null) { + total = 0; + } + return total + n; + }); + return (total != null) && total > 0; }; - $scope.getLastDate = function() { - if ($scope.isDataFound) { - return _.last(w.content.dates); - } + getFilteredTotal = function(opps, assignees) { + return _.reduce(opps, function(total, opp) { + var ref; + if (total == null) { + total = 0; + } + if (ref = opp.assignee_id, indexOf.call(assignees, ref) >= 0) { + return total + 1; + } else { + return total; + } + }, 0); }; - $scope.getClassColor = function(prev, value) { - if (value < prev) { - return 'negative'; - } else if (value > prev) { - return 'positive'; - } else { - return null; - } + getOrderedAssigneeIds = function(assigneesOptions) { + return _.map(_.filter(assigneesOptions, function(assigneeOption) { + return assigneeOption.selected; + }), 'value'); }; - $scope.drawTrigger = $q.defer(); - w.format = function() { - var all_values_are_positive, chartData, inputData, options, period, values; - if ($scope.isDataFound) { - all_values_are_positive = true; - inputData = []; - values = w.content.aged_sales[$scope.filter.value]; - period = null; - if ((w.metadata != null) && (w.metadata.hist_parameters != null)) { - period = w.metadata.hist_parameters.period; - } - $scope.formattedDates = _.map(w.content.dates, function(date) { - return $filter('momentDate')(date, period); - }); - inputData.push({ - title: $scope.filter.label, - labels: $scope.formattedDates, - values: values + w.initContext = function() { + var assignees_selection, dhb, sales_stage_selection; + dhb = ImpacDashboardsSvc.getCurrentDashboard(); + sales_stage_selection = w.metadata.sales_stage_selection || dhb.metadata.sales_stage_selection || { + values: [] + }; + assignees_selection = w.metadata.assignees_selection || dhb.metadata.assignees_selection || { + values: [] + }; + if ($scope.isDataFound = angular.isDefined(w.content) && !_.isEmpty(w.content.opps_per_sales_stage) && hasOneOpportunity(w.content.opps_per_sales_stage)) { + _.remove(sales_stage_selection.values, function(status) { + return indexOf.call(_.keys(w.content.opps_per_sales_stage), status) < 0; }); - angular.forEach(values, function(value) { - return all_values_are_positive && (all_values_are_positive = value >= 0); + $scope.hasReach = true; + $scope.statusOptions = []; + angular.forEach(w.content.opps_per_sales_stage, function(value, status) { + var isSelected; + isSelected = _.isEmpty(sales_stage_selection.values) || (indexOf.call(sales_stage_selection.values, status) >= 0); + return $scope.statusOptions.push({ + label: status, + selected: isSelected + }); }); - options = { - scaleBeginAtZero: all_values_are_positive, - showXLabels: true, - datasetFill: true, - pointDot: true - }; - if ($scope.filter.value.indexOf('quantity') > -1) { - angular.merge(options, { - currency: 'hide' + if ($scope.statusOptions[0] && !_.any($scope.statusOptions, 'selected') && !_.isEmpty(w.content.opps_per_sales_stage)) { + $scope.statusOptions[0].selected = true; + } + $scope.assigneesOptions = []; + angular.forEach(w.content.assignees, function(obj, index) { + var isSelected, ref; + isSelected = _.isEmpty(assignees_selection.values) || (ref = obj.id, indexOf.call(assignees_selection.values, ref) >= 0); + return $scope.assigneesOptions.push({ + label: obj.name, + selected: isSelected, + value: obj.id }); + }); + if ($scope.assigneesOptions[0] && !_.any($scope.assigneesOptions, 'selected') && !_.isEmpty(w.content.assignees)) { + return $scope.assigneesOptions[0].selected = true; } - chartData = ChartFormatterSvc.lineChart(inputData, options); - return $scope.drawTrigger.notify(chartData); } }; - return $scope.widgetDeferred.resolve(settingsPromises); - }]); - - module.directive('widgetSalesAged', function() { - return { - restrict: 'A', - controller: 'WidgetSalesAgedCtrl' - }; - }); - -}).call(this); - -(function() { - var module; - - module = angular.module('impac.components.widgets.sales-break-even', []); - - module.controller('WidgetSalesBreakEvenCtrl', ["$scope", "$q", "ChartFormatterSvc", "$filter", function($scope, $q, ChartFormatterSvc, $filter) { - var settingsPromises, thresholdSetting, w; - w = $scope.widget; - $scope.orgDeferred = $q.defer(); - $scope.timePeriodDeferred = $q.defer(); - settingsPromises = [$scope.orgDeferred.promise, $scope.timePeriodDeferred.promise]; - w.initContext = function() { - $scope.isDataFound = angular.isDefined(w.content) && !_.isEmpty(w.content.sales); - return $scope.threshold = w.metadata.threshold; - }; w.processError = function(error) { if (error.code === 404) { return $scope.isDataFound = false; } }; - $scope.getProjectedDate = function() { - var date; - if ($scope.isDataFound && w.content.break_even) { - if (("" + w.content.break_even.projected_date).match('After')) { - date = angular.copy(w.content.break_even.projected_date).replace('After ', ''); - return "> " + ($filter('date')(date, 'd-MM-yy')); + $scope.getImpacColor = function(index) { + return ChartFormatterSvc.getColor(index); + }; + $scope.toggleSelectStatus = function(aStatus) { + if ($scope.selectedStatus && $scope.selectedStatus === aStatus) { + $scope.selectedStatus = null; + } else { + $scope.selectedStatus = aStatus; + } + $scope.updateRightView(); + if (!w.isExpanded() && $scope.selectedStatus) { + return w.toggleExpanded(); + } else { + return ImpacWidgetsSvc.updateWidgetSettings(w, false, true); + } + }; + $scope.isSelected = function(aStatus) { + return $scope.selectedStatus && aStatus === $scope.selectedStatus; + }; + $scope.toggleCollapsed = function(element) { + if ((element != null) && (element.assigneeName != null)) { + if (_.find($scope.collapsed, (function(name) { + return element.assigneeName === name; + }))) { + return $scope.collapsed = _.reject($scope.collapsed, function(name) { + return name === element.assigneeName; + }); } else { - return w.content.break_even.projected_date; + return $scope.collapsed.push(element.assigneeName); } } }; - $scope.getOpportunitiesToClose = function() { - var opps; - if ($scope.isDataFound && w.content.break_even) { - if (("" + w.content.break_even.opportunities_to_close).match('>')) { - opps = angular.copy(w.content.break_even.opportunities_to_close).replace('>', ''); - return "> " + opps; + $scope.isCollapsed = function(element) { + if ((element != null) && (element.assigneeName != null)) { + if (_.find($scope.collapsed, (function(name) { + return element.assigneeName === name; + }))) { + return true; } else { - return w.content.break_even.opportunities_to_close; + return false; } } }; - $scope.isTargetMet = function() { - if ($scope.isDataFound && w.content.break_even) { - return w.content.break_even.variance < 0; + $scope.getSelectedOpportunities = function() { + var assignees, filteredOpps, oppGroups, sortedOppGroups; + if ($scope.isDataFound && $scope.selectedStatus && w.content.opps_per_sales_stage[$scope.selectedStatus]) { + assignees = getOrderedAssigneeIds($scope.assigneesOptions); + filteredOpps = _.filter(w.content.opps_per_sales_stage[$scope.selectedStatus].opps, function(opportunity) { + var ref; + return ref = opportunity.assignee_id, indexOf.call(assignees, ref) >= 0; + }); + oppGroups = _.groupBy(filteredOpps, 'assignee_id'); + sortedOppGroups = []; + angular.forEach($scope.assigneesOptions, function(assigneeOption) { + var assigneeId; + assigneeId = assigneeOption.value; + if (oppGroups[assigneeId]) { + return sortedOppGroups.push({ + assigneeName: assigneeOption.label, + opps: oppGroups[assigneeId] + }); + } + }); + return sortedOppGroups; + } else { + return []; } }; - $scope.getVariance = function() { - if ($scope.isDataFound && w.content.break_even) { - return Math.abs(w.content.break_even.variance); + $scope.getOppDetails = function(anOpp) { + var oppDetails; + oppDetails = []; + if (anOpp.amount) { + oppDetails.push($filter('mnoCurrency')(anOpp.amount.amount, anOpp.amount.currency || 'AUD')); + } + if (anOpp.probability) { + oppDetails.push("prob. " + anOpp.probability + "%"); } + return oppDetails.join(' / '); }; - thresholdSetting = {}; - thresholdSetting.initialized = false; - thresholdSetting.initialize = function() { - return thresholdSetting.initialized = true; + $scope.getTotal = function(oppsGroup) { + var currency, total; + if (!(oppsGroup.length > 0)) { + return ""; + } + total = _.sum(oppsGroup, function(o) { + var amount, proba; + amount = o.amount.amount || 0.0; + proba = o.probability || 0.0; + return amount * (proba / 100); + }); + currency = oppsGroup[0].amount.currency || 'AUD'; + return $filter('mnoCurrency')(total, currency); }; - thresholdSetting.toMetadata = function() { + sortOppsBy = function(getElem) { + return angular.forEach($scope.selectedOpportunities, function(sElem) { + if (sElem.opps) { + return sElem.opps.sort(function(a, b) { + var res; + res = getElem(a) > getElem(b) ? 1 : getElem(a) < getElem(b) ? -1 : 0; + if (!$scope.ascending) { + res *= -1; + } + return res; + }); + } + }); + }; + sortData = function() { + if ($scope.sortedColumn === 'group') { + return sortOppsBy(function(el) { + return el.name; + }); + } else if ($scope.sortedColumn === 'total') { + return sortOppsBy(function(el) { + return el.amount.amount; + }); + } + }; + $scope.sort = function(col) { + if ($scope.sortedColumn === col) { + $scope.ascending = !$scope.ascending; + } else { + $scope.ascending = true; + $scope.sortedColumn = col; + } + return sortData(); + }; + $scope.updateRightView = function() { + $scope.selectedOpportunities = $scope.getSelectedOpportunities(); + $scope.collapsed = []; + return sortData(); + }; + selectedStatusSetting = {}; + selectedStatusSetting.initialized = false; + selectedStatusSetting.initialize = function() { + if (!_.isEmpty(w.content) && angular.isDefined(w.content.opps_per_sales_stage[w.metadata.selected_status])) { + $scope.selectedStatus = w.metadata.selected_status; + } + selectedStatusSetting.initialized = true; + return $scope.updateRightView(); + }; + selectedStatusSetting.toMetadata = function() { return { - threshold: $scope.threshold + selected_status: $scope.selectedStatus }; }; - w.settings.push(thresholdSetting); - return $scope.widgetDeferred.resolve(settingsPromises); - }]); - - module.directive('widgetSalesBreakEven', function() { - return { - restrict: 'A', - controller: 'WidgetSalesBreakEvenCtrl' - }; - }); - -}).call(this); - -(function() { - var module; - - module = angular.module('impac.components.widgets.sales-comparison', []); - - module.controller('WidgetSalesComparisonCtrl', ["$scope", "$q", "$filter", "ChartFormatterSvc", "ImpacWidgetsSvc", "$translate", function($scope, $q, $filter, ChartFormatterSvc, ImpacWidgetsSvc, $translate) { - var buildFxTotals, fetchElement, getIdentifier, matchElementToSelectedElement, selectedElementsSetting, settingsPromises, sortAccountsBy, sortData, unCollapsedSetting, w; - w = $scope.widget; - $scope.orgDeferred = $q.defer(); + w.settings.push(selectedStatusSetting); + w.format = function() { + var assignees, max; + if ($scope.isDataFound) { + max = 0; + assignees = getOrderedAssigneeIds($scope.assigneesOptions); + angular.forEach($scope.statusOptions, function(statusOption) { + var value; + value = getFilteredTotal(w.content.opps_per_sales_stage[statusOption.label].opps, assignees); + if (statusOption.selected && angular.isDefined(value) && value > max) { + return max = value; + } + }); + if (max > 0) { + return $scope.funnel = _.compact(_.map($scope.statusOptions, function(statusOption, index) { + var coloredWidth, statusWidth, value; + value = getFilteredTotal(w.content.opps_per_sales_stage[statusOption.label].opps, assignees); + coloredWidth = (100 * (value / max) - 10).toFixed(); + if (coloredWidth < 8) { + statusWidth = 92; + } else { + statusWidth = 100 - coloredWidth; + } + if (statusOption.selected && angular.isDefined(value) && value > 0) { + return { + status: statusOption.label, + number: value, + coloredWidth: { + width: coloredWidth + "%" + }, + statusWidth: { + width: statusWidth + "%" + } + }; + } + })); + } else { + return $scope.isDataFound = false; + } + } + }; + return $scope.widgetDeferred.resolve(settingsPromises); + }]); + + module.directive('widgetSalesOpportunitiesFunnel', function() { + return { + restrict: 'A', + controller: 'WidgetSalesOpportunitiesFunnelCtrl' + }; + }); + +}).call(this); + +(function() { + var module, + indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }; + + module = angular.module('impac.components.widgets.sales-performance', []); + + module.controller('WidgetSalesPerformanceCtrl', ["$scope", "$q", "$filter", "ChartFormatterSvc", "ImpacWidgetsSvc", function($scope, $q, $filter, ChartFormatterSvc, ImpacWidgetsSvc) { + var formatDate, getIdentifier, matchElementToSelectedElement, selectedElementsSetting, settingsPromises, w; + w = $scope.widget; + $scope.orgDeferred = $q.defer(); + $scope.paramsWinsPickerDeferred = $q.defer(); + $scope.paramsLostsPickerDeferred = $q.defer(); $scope.timePeriodDeferred = $q.defer(); $scope.widthDeferred = $q.defer(); - $scope.paramSelectorDeferred1 = $q.defer(); - $scope.paramSelectorDeferred2 = $q.defer(); $scope.chartDeferred = $q.defer(); - settingsPromises = [$scope.orgDeferred.promise, $scope.timePeriodDeferred.promise, $scope.widthDeferred.promise, $scope.paramSelectorDeferred1, $scope.paramSelectorDeferred2, $scope.chartDeferred.promise]; - $scope.ascending = true; - $scope.sortedColumn = 'sales'; + settingsPromises = [$scope.orgDeferred.promise, $scope.paramsWinsPickerDeferred, $scope.paramsLostsPickerDeferred, $scope.timePeriodDeferred, $scope.widthDeferred.promise, $scope.chartDeferred.promise]; w.initContext = function() { var foundElem, i, len, ref, sElemId; - $scope.isDataFound = angular.isDefined(w.content) && !_.isEmpty(w.content.sales_comparison) && !_.isEmpty(w.content.dates); + $scope.isDataFound = angular.isDefined(w.content) && !_.isEmpty(w.content.assignees); if ($scope.isDataFound) { - $scope.unCollapsed = w.metadata.unCollapsed || []; - $scope.filterOptions = [ - { - label: $translate.instant('impac.widget.sales_comparison.value_sold_taxes'), - value: 'gross_value_sold' - }, { - label: $translate.instant('impac.widget.sales_comparison.value_sold_no_taxes'), - value: 'net_value_sold' - }, { - label: $translate.instant('impac.widget.sales_comparison.quantity_sold'), - value: 'quantity_sold' - } - ]; - $scope.filter = angular.copy(_.find($scope.filterOptions, function(o) { - return w.metadata && w.metadata.filter === o.value; - }) || $scope.filterOptions[0]); - $scope.criteriaOptions = [ - { - label: $translate.instant('impac.widget.sales_comparison.criteria_options.products'), - value: 'default' - }, { - label: $translate.instant('impac.widget.sales_comparison.criteria_options.locations'), - value: 'location' - }, { - label: $translate.instant('impac.widget.sales_comparison.criteria_options.industries'), - value: 'industry' - }, { - label: $translate.instant('impac.widget.sales_comparison.criteria_options.customers'), - value: 'customer' - } - ]; - $scope.criteria = angular.copy(_.find($scope.criteriaOptions, function(o) { - return w.metadata && w.metadata.criteria === o.value; - }) || $scope.criteriaOptions[0]); - buildFxTotals(); - $scope.ratesDate = moment.now(); if (!_.isEmpty(w.metadata.selectedElements)) { $scope.selectedElements = []; ref = w.metadata.selectedElements; for (i = 0, len = ref.length; i < len; i++) { sElemId = ref[i]; - foundElem = _.find(w.content.sales_comparison, function(statement) { - return statement.name === sElemId; + foundElem = _.find(w.content.assignees, function(assignee) { + return getIdentifier(assignee) === sElemId; }); - foundElem || (foundElem = fetchElement(w.content.sales_comparison, sElemId)); if (foundElem) { $scope.selectedElements.push(foundElem); } } } - return sortData(); + $scope.hasReach = true; + $scope.closedWonOptions = _.compact(_.map(w.content.sales_stages.won, function(stage) { + return { + label: stage, + selected: true + }; + })); + angular.forEach(w.content.sales_stages.all, function(stage) { + if (!(indexOf.call(w.content.sales_stages.won, stage) >= 0)) { + return $scope.closedWonOptions.push({ + label: stage, + selected: false + }); + } + }); + $scope.closedLostOptions = _.compact(_.map(w.content.sales_stages.lost, function(stage) { + return { + label: stage, + selected: true + }; + })); + return angular.forEach(w.content.sales_stages.all, function(stage) { + if (!(indexOf.call(w.content.sales_stages.lost, stage) >= 0)) { + return $scope.closedLostOptions.push({ + label: stage, + selected: false + }); + } + }); } }; - $scope.getLastDate = function() { - if ($scope.isDataFound) { - return _.last(w.content.dates); + w.processError = function(error) { + if (error.code === 404) { + return $scope.isDataFound = false; } }; - $scope.getTotalForPeriod = function(element) { - if ((element.totals != null) && $scope.filter) { - return _.reduce(element.totals[$scope.filter.value], function(memo, total) { - return memo + total; - }, 0); + $scope.getChartTitle = function(el) { + if ($scope.selectedElements) { + return $scope.selectedElements.map(function(el) { + return el.name; + }).join(', '); + } + }; + $scope.getTotalWon = function(el) { + if ($scope.selectedElements) { + return $scope.selectedElements.reduce((function(t, e) { + return t + e.total_won; + }), 0); + } else { + return 0; + } + }; + formatDate = function(date) { + var period; + period = (w.metadata != null) && (w.metadata.hist_parameters != null) ? w.metadata.hist_parameters.period : null; + return $filter('momentDate')(date, period); + }; + $scope.getCloseDate = function(anOpp) { + var theDate; + if ((anOpp != null) && (anOpp.sales_stage_changes != null) && anOpp.sales_stage_changes.length > 0) { + theDate = anOpp.sales_stage_changes[anOpp.sales_stage_changes.length - 1].updated_at; + if (theDate.split(' ').length > 0) { + theDate = theDate.split(' ')[0]; + return formatDate(theDate); + } + } + }; + $scope.getForecastCloseDate = function(anOpp) { + var theDate; + if ((anOpp != null) && anOpp.expected_close_date) { + theDate = anOpp.expected_close_date; + if (theDate.split(' ').length > 0) { + theDate = theDate.split(' ')[0]; + return formatDate(theDate); + } } }; $scope.getElementChartColor = function(index) { return ChartFormatterSvc.getColor(index); }; - $scope.sort = function(col) { - if ($scope.sortedColumn === col) { - $scope.ascending = !$scope.ascending; - } else { - $scope.ascending = true; - $scope.sortedColumn = col; - } - return sortData(); + $scope.no_sales_stages_selected = function() { + return w.content && w.content.sales_stages && w.content.sales_stages.won.length === 0 && w.content.sales_stages.lost.length === 0; }; - $scope.toggleSelectedElement = function(element, statementName) { + $scope.toggleSelectedElement = function(element) { var selectedElement; - if (statementName == null) { - statementName = null; - } - if ($scope.isSelected(element, statementName)) { + if ($scope.isSelected(element)) { $scope.selectedElements = _.reject($scope.selectedElements, function(sElem) { - return matchElementToSelectedElement(element, statementName, sElem); + return matchElementToSelectedElement(element, sElem); }); w.format(); if (w.isExpanded() && $scope.selectedElements.length === 0) { return w.toggleExpanded(); } else { - return ImpacWidgetsSvc.updateWidgetSettings(w, false); + return ImpacWidgetsSvc.updateWidgetSettings(w, false, true); } } else { selectedElement = angular.copy(element); - selectedElement.category = statementName; $scope.selectedElements || ($scope.selectedElements = []); $scope.selectedElements.push(selectedElement); w.format(); if (!w.isExpanded()) { return w.toggleExpanded(); } else { - return ImpacWidgetsSvc.updateWidgetSettings(w, false); + return ImpacWidgetsSvc.updateWidgetSettings(w, false, true); } } }; - $scope.isSelected = function(element, statementName) { - if (statementName == null) { - statementName = null; - } + $scope.isSelected = function(element) { return (element != null) && _.any($scope.selectedElements, function(sElem) { - return matchElementToSelectedElement(element, statementName, sElem); + return matchElementToSelectedElement(element, sElem); }); }; - $scope.toggleCollapsed = function(element) { - if ((element != null) && (element.name != null)) { - if (_.find($scope.unCollapsed, (function(name) { - return element.name === name; - }))) { - $scope.unCollapsed = _.reject($scope.unCollapsed, function(name) { - return name === element.name; - }); - } else { - $scope.unCollapsed.push(element.name); - } - return ImpacWidgetsSvc.updateWidgetSettings(w, false); - } - }; - $scope.isCollapsed = function(element) { - if ((element != null) && (element.name != null)) { - if (_.find($scope.unCollapsed, (function(name) { - return element.name === name; - }))) { - return false; - } else { - return true; - } - } - }; $scope.hasElements = function() { return ($scope.selectedElements != null) && $scope.selectedElements.length > 0; }; - $scope.getSelectLineColor = function(element, statementName) { + $scope.getSelectLineColor = function(element) { var sElem; - if (statementName == null) { - statementName = null; - } sElem = _.find($scope.selectedElements, function(sElem) { - return matchElementToSelectedElement(element, statementName, sElem); + return matchElementToSelectedElement(element, sElem); }); if ($scope.hasElements()) { return ChartFormatterSvc.getColor(_.indexOf($scope.selectedElements, sElem)); } }; - matchElementToSelectedElement = function(element, elementCategory, sElem) { - if (elementCategory == null) { - elementCategory = null; - } - return getIdentifier(element, elementCategory) === getIdentifier(sElem); - }; - fetchElement = function(statements, sElemId) { - var element, i, len, statement; - for (i = 0, len = statements.length; i < len; i++) { - statement = statements[i]; - if (statement.sales == null) { - continue; - } - element = _.find(statement.sales, function(sale) { - return getIdentifier(sale, statement.name) === sElemId; - }); - if (element != null) { - element = angular.merge(angular.copy(element), { - category: statement.name - }); - return element; - } - } - }; - getIdentifier = function(element, category) { - var id; - if (category == null) { - category = null; - } - id = element.id || element.name; - category || (category = element.category); - if (!category) { - return id; - } - return category + "-" + id; - }; - sortAccountsBy = function(getElem) { - return angular.forEach(w.content.sales_comparison, function(sElem) { - if (sElem.sales) { - return sElem.sales.sort(function(a, b) { - var res; - res = getElem(a) > getElem(b) ? 1 : getElem(a) < getElem(b) ? -1 : 0; - if (!$scope.ascending) { - res *= -1; - } - return res; - }); - } - }); + matchElementToSelectedElement = function(element, sElem) { + return getIdentifier(element) === getIdentifier(sElem); }; - sortData = function() { - if ($scope.sortedColumn === 'sales') { - return sortAccountsBy(function(el) { - return el.name; - }); - } else if ($scope.sortedColumn === 'total') { - return sortAccountsBy(function(el) { - return $scope.getTotalForPeriod(el); - }); - } + getIdentifier = function(element) { + return element.id || element.name; }; $scope.drawTrigger = $q.defer(); w.format = function() { var all_values_are_positive, chartData, inputData, options; if ($scope.isDataFound && ($scope.selectedElements != null) && $scope.selectedElements.length > 0) { - all_values_are_positive = true; inputData = []; + all_values_are_positive = true; angular.forEach($scope.selectedElements, function(sElem) { var data, dates, period; data = angular.copy(sElem); @@ -14039,7 +13923,7 @@ $templateCache.put("widgets/sales-top-opportunities.tmpl.html","
= 0); @@ -14048,91 +13932,16 @@ $templateCache.put("widgets/sales-top-opportunities.tmpl.html","
-1) { - angular.merge(options, { - currency: 'hide' - }); - } chartData = ChartFormatterSvc.lineChart(inputData, options); return $scope.drawTrigger.notify(chartData); } }; - buildFxTotals = function() { - var grossSaleFxTotals, groupedSales, i, len, netSaleFxTotals, ref, results, sale; - ref = w.content.sales_comparison; - results = []; - for (i = 0, len = ref.length; i < len; i++) { - groupedSales = ref[i]; - results.push((function() { - var j, len1, ref1, results1; - ref1 = groupedSales.sales; - results1 = []; - for (j = 0, len1 = ref1.length; j < len1; j++) { - sale = ref1[j]; - sale.formattedFxTotals = {}; - netSaleFxTotals = []; - grossSaleFxTotals = []; - if (!_.isEmpty(sale.fx_totals)) { - _.mapKeys(sale.fx_totals, function(total, currency) { - var grossAmount, k, l, len2, len3, netAmount, ref2, ref3, results2; - ref2 = total['net_value_sold']; - for (k = 0, len2 = ref2.length; k < len2; k++) { - grossAmount = ref2[k]; - if (!(grossAmount === 0 || currency === w.metadata.currency)) { - netSaleFxTotals.push({ - currency: currency, - amount: grossAmount, - rate: total.rate - }); - } - } - ref3 = total['gross_value_sold']; - results2 = []; - for (l = 0, len3 = ref3.length; l < len3; l++) { - netAmount = ref3[l]; - if (!(netAmount === 0 || currency === w.metadata.currency)) { - results2.push(grossSaleFxTotals.push({ - currency: currency, - amount: netAmount, - rate: total.rate - })); - } else { - results2.push(void 0); - } - } - return results2; - }); - } - if (!_.isEmpty(netSaleFxTotals)) { - sale.formattedFxTotals['net_value_sold'] = netSaleFxTotals; - } - if (!_.isEmpty(grossSaleFxTotals)) { - results1.push(sale.formattedFxTotals['gross_value_sold'] = grossSaleFxTotals); - } else { - results1.push(void 0); - } - } - return results1; - })()); - } - return results; - }; - unCollapsedSetting = {}; - unCollapsedSetting.initialized = false; - unCollapsedSetting.initialize = function() { - return unCollapsedSetting.initialized = true; - }; - unCollapsedSetting.toMetadata = function() { - return { - unCollapsed: $scope.unCollapsed - }; + selectedElementsSetting = { + initialized: false }; - w.settings.push(unCollapsedSetting); - selectedElementsSetting = {}; - selectedElementsSetting.initialized = false; selectedElementsSetting.initialize = function() { return selectedElementsSetting.initialized = true; }; @@ -14149,10 +13958,10 @@ $templateCache.put("widgets/sales-top-opportunities.tmpl.html","
50) { + return $scope.analysisTranslate = $translate.instant('impac.widget.sales_turnover.analysis.least'); + } else if (w.content.ranges[3].percentage + w.content.ranges[4].percentage > 50) { + return $scope.analysisTranslate = $translate.instant('impac.widget.sales_turnover.analysis.most'); + } else { + return $scope.analysisTranslate = $translate.instant('impac.widget.sales_turnover.analysis.balanced'); + } } }; - $scope.formatAddress = function(anAddress) { - if (angular.isDefined(anAddress)) { - return anAddress.replace(/, /g, ',\n'); - } + $scope.getColorByIndex = function(index) { + return ChartFormatterSvc.getColor(index); }; - $scope.getFromDate = function() { - if ($scope.isDataFound) { - return w.content.from; + $scope.getRangeLabel = function(aLabel, ISOmode) { + var prices; + if (ISOmode == null) { + ISOmode = false; } + prices = aLabel.split('-'); + return _.map(prices, function(price) { + return $filter('mnoCurrency')(price, w.content.currency, ISOmode); + }).join(' - '); }; - $scope.getToDate = function() { + $scope.getMaxRange = function() { + var max, maxRange; if ($scope.isDataFound) { - return w.content.to; + max = 0; + maxRange = w.content.ranges[0]; + angular.forEach(w.content.ranges, function(range) { + if (range.percentage > max) { + maxRange = angular.copy(range); + } + return max = Math.max(max, range.percentage); + }); + return maxRange; } }; - setSelectedCustomer = function() { - var customer; - if (!$scope.isDataFound) { - return false; - } - if (w.metadata && w.metadata.customer_uid) { - customer = _.find(w.content.customers, function(c) { - return c.uid === w.metadata.customer_uid; - }); - } - customer || (customer = w.content.customers[0]); - $scope.selectedCustomer = angular.copy(customer); - setSelectedCustomerId(); - return buildFxTotals(); - }; - setSelectedCustomerId = function() { - var cust; - if (!(cust = $scope.selectedCustomer)) { - return false; - } - return $scope.selectedCustomerId = { - value: cust.uid, - label: cust.name - }; - }; - buildFxTotals = function() { - var cust, dueFxTotals, invoicedFxTotals, paidFxTotals; - if (!(cust = $scope.selectedCustomer)) { - return false; - } - invoicedFxTotals = []; - dueFxTotals = []; - paidFxTotals = []; - if (_.some(cust.fx_totals, function(total, currency) { - return currency !== w.metadata.currency; - })) { - _.mapKeys(cust.fx_totals, function(total, currency) { - var baseTotal; - baseTotal = { - rate: total.rate, - currency: currency - }; - if (total.invoiced !== 0) { - invoicedFxTotals.push(angular.merge({ - amount: total.invoiced - }, baseTotal)); - } - if (total.paid !== 0) { - paidFxTotals.push(angular.merge({ - amount: total.paid - }, baseTotal)); - } - if (total.due !== 0) { - return dueFxTotals.push(angular.merge({ - amount: total.due - }, baseTotal)); - } - }); - if (!_.isEmpty(invoicedFxTotals)) { - cust.invoicedFxTotals = invoicedFxTotals; - } - if (!_.isEmpty(paidFxTotals)) { - cust.paidFxTotals = paidFxTotals; - } - if (!_.isEmpty(dueFxTotals)) { - return cust.dueFxTotals = dueFxTotals; - } + $scope.drawTrigger = $q.defer(); + w.format = function() { + var barData, barOptions, chartData; + if ($scope.isDataFound) { + barData = { + labels: _.map(w.content.ranges, function(elem) { + return $scope.getRangeLabel(elem.label, true); + }), + values: _.map(w.content.ranges, function(elem) { + return elem.value; + }) + }; + barOptions = { + showTooltips: false, + showXLabels: false, + barDatasetSpacing: 15 + }; + chartData = ChartFormatterSvc.barChart(barData, barOptions); + return $scope.drawTrigger.notify(chartData); } }; return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('widgetSalesCustomerDetails', function() { + module.directive('widgetSalesSegmentedTurnover', function() { return { restrict: 'A', - controller: 'WidgetSalesCustomerDetailsCtrl' + controller: 'WidgetSalesSegmentedTurnoverCtrl' }; }); }).call(this); (function() { - var module, - indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }; + var module; - module = angular.module('impac.components.widgets.sales-cycle', []); + module = angular.module('impac.components.widgets.sales-summary', []); - module.controller('WidgetSalesCycleCtrl', ["$scope", "$q", "ChartFormatterSvc", "$filter", "ImpacWidgetsSvc", "ImpacDashboardsSvc", function($scope, $q, ChartFormatterSvc, $filter, ImpacWidgetsSvc, ImpacDashboardsSvc) { + module.controller('WidgetSalesSummaryCtrl', ["$scope", "$q", "ChartFormatterSvc", "$translate", function($scope, $q, ChartFormatterSvc, $translate) { var settingsPromises, w; w = $scope.widget; $scope.orgDeferred = $q.defer(); - $scope.paramsPickerDeferred = $q.defer(); - $scope.timePeriodDeferred = $q.defer(); + $scope.chartFiltersDeferred = $q.defer(); + $scope.paramSelectorDeferred = $q.defer(); + $scope.datesPickerDeferred = $q.defer(); $scope.chartDeferred = $q.defer(); - settingsPromises = [$scope.orgDeferred.promise, $scope.paramsPickerDeferred.promise, $scope.timePeriodDeferred.promise, $scope.chartDeferred.promise]; + settingsPromises = [$scope.orgDeferred.promise, $scope.chartFiltersDeferred.promise, $scope.paramSelectorDeferred.promise, $scope.datesPickerDeferred.promise, $scope.chartDeferred.promise]; + $scope.datesPickerTemplate = "" + $translate.instant('impac.widget.sales_summary.to') + " "; w.initContext = function() { - var dhb, status_selection; - dhb = ImpacDashboardsSvc.getCurrentDashboard(); - status_selection = w.metadata.status_selection || dhb.metadata.status_selection || { - values: [] - }; - if ($scope.isDataFound = angular.isDefined(w.content) && !_.isEmpty(w.content.status_average_durations)) { - _.remove(status_selection.values, function(status) { - return indexOf.call(_.keys(w.content.status_average_durations), status) < 0; - }); - $scope.hasReach = true; - $scope.statusOptions = []; - return angular.forEach(w.content.status_average_durations, function(value, status) { - var isSelected; - isSelected = _.isEmpty(status_selection.values) || (indexOf.call(status_selection.values, status) >= 0); - return $scope.statusOptions.push({ - label: status, - selected: isSelected - }); - }); - } - }; - w.processError = function(error) { - if (error.code === 404) { - return $scope.isDataFound = false; + $scope.isDataFound = !_.isEmpty(w.content) && !_.isEmpty(w.content.summary) && (_.sum(_.map(w.content.summary, function(s) { + return s.total; + })) > 0); + if ($scope.isDataFound) { + $scope.filterOptions = [ + { + label: $translate.instant('impac.widget.sales_summary.value_sold_taxes'), + value: 'gross_value_sold' + }, { + label: $translate.instant('impac.widget.sales_summary.value_sold_no_taxes'), + value: 'net_value_sold' + }, { + label: $translate.instant('impac.widget.sales_summary.quantity_sold'), + value: 'quantity_sold' + }, { + label: $translate.instant('impac.widget.sales_summary.value_purchased_taxes'), + value: 'gross_value_purchased' + }, { + label: $translate.instant('impac.widget.sales_summary.value_purchased_no_taxes'), + value: 'net_value_purchased' + }, { + label: $translate.instant('impac.widget.sales_summary.quantity_purchased'), + value: 'quantity_purchased' + } + ]; + if (w.metadata.criteria === "customer") { + $scope.filterOptions = [$scope.filterOptions[0], $scope.filterOptions[1], $scope.filterOptions[2]]; + } + return $scope.filter = angular.copy(_.find($scope.filterOptions, function(o) { + return o.value === w.metadata.filter; + }) || $scope.filterOptions[0]); } }; $scope.drawTrigger = $q.defer(); w.format = function() { var chartData, pieData, pieOptions; if ($scope.isDataFound) { - pieData = _.compact(_.map($scope.statusOptions, function(statusOption) { - var value; - value = w.content.status_average_durations[statusOption.label]; - if (statusOption.selected && angular.isDefined(value)) { - return { - label: ($filter('titleize')(statusOption.label)) + ": " + value + " " + $scope.unit, - value: value - }; + pieData = _.map(w.content.summary, function(entity) { + var label; + if (entity.company) { + label = (entity.code || entity.name || entity.location || entity.industry || entity.customer) + " (" + entity.company + ")"; + } else { + label = entity.code || entity.name || entity.location || entity.industry || entity.customer; } - })); + return { + label: label, + value: entity.total + }; + }); pieOptions = { percentageInnerCutout: 50, - tooltipFontSize: 12, - currency: w.content.unit + tooltipFontSize: 12 }; + if ($scope.filter.value.indexOf('quantity') > -1) { + angular.merge(pieOptions, { + currency: 'hide' + }); + } chartData = ChartFormatterSvc.pieChart(pieData, pieOptions); return $scope.drawTrigger.notify(chartData); } @@ -14347,10 +14145,10 @@ $templateCache.put("widgets/sales-top-opportunities.tmpl.html","
0) { + return entity.total_invoiced / entity.invoices.length; + } else { + return 0; + } + } + }, { + label: 'last', + showCurrency: true, + getValue: function(entity) { + var total; + total = entity.invoices.length; + if (total > 0) { + return entity.invoices[entity.invoices.length - 1].invoiced; + } else { + return 0; + } + } + } + ]; + $scope.getHeaderField = function() { + return _.find(fields, function(f) { + return f.label === $scope.headerSelected.minified; + }); + }; + $scope.getRemainingFields = function() { + return _.reject(fields, function(f) { + return f.label === $scope.headerSelected.minified; + }); + }; + $scope.getEntities = function() { + if (!$scope.isDataFound) { + return []; + } + return $filter('orderBy')(w.content.entities, (function(entity) { + return $scope.getHeaderField().getValue(entity); + }), true); + }; + buildFxTotals = function() { + var contact, contactFxTotals, j, len, ref, results; + ref = w.content.entities; + results = []; + for (j = 0, len = ref.length; j < len; j++) { + contact = ref[j]; + contactFxTotals = []; + _.mapKeys(contact.fx_totals, function(total, currency) { + if (currency !== w.metadata.currency) { + return contactFxTotals.push({ + currency: currency, + amount: total.invoiced, + rate: total.rate + }); } - ]; - angular.forEach(w.content.totals, function(value) { - return all_values_are_positive && (all_values_are_positive = value >= 0); }); - options = { - scaleBeginAtZero: all_values_are_positive, - showXLabels: true, - datasetFill: true, - pointDot: false - }; - chartData = ChartFormatterSvc.lineChart(inputData, options); - return $scope.drawTrigger.notify(chartData); + if (!_.isEmpty(contactFxTotals)) { + results.push(contact.formattedFxTotals = contactFxTotals); + } else { + results.push(void 0); + } } + return results; }; return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('widgetSalesForecast', function() { + module.directive('widgetSalesTopCustomers', function() { return { restrict: 'A', - controller: 'WidgetSalesForecastCtrl' + controller: 'WidgetSalesTopCustomersCtrl', + link: function(scope) { + scope.transactionsCollapsed = false; + return scope.toggleTransactions = function() { + return scope.transactionsCollapsed = !scope.transactionsCollapsed; + }; + } }; }); @@ -14442,325 +14330,192 @@ $templateCache.put("widgets/sales-top-opportunities.tmpl.html","
threshold) { - return codeName; - } else { - return fullName; + if (anOpp.sales_stage) { + oppDetails.push(anOpp.sales_stage); } + return oppDetails.join(' / '); }; - $scope.drawTrigger = $q.defer(); - w.format = function() { - var all_values_are_positive, chartData, data, dates, inputData, options, period; - if ($scope.isDataFound && $scope.product && (data = $scope.getSelectedProduct())) { - period = null; - if ((w.metadata != null) && (w.metadata.hist_parameters != null)) { - period = w.metadata.hist_parameters.period; - } - dates = _.map(w.content.dates, function(date) { - return $filter('momentDate')(date, period); - }); - inputData = { - title: data.name, - labels: dates, - values: data.totals - }; - all_values_are_positive = true; - angular.forEach(data.totals, function(value) { - return all_values_are_positive && (all_values_are_positive = value >= 0); - }); - options = { - scaleBeginAtZero: all_values_are_positive, - showXLabels: false - }; - if ($scope.filter.value.indexOf('quantity') > -1) { - angular.merge(options, { - currency: 'hide' - }); - } - chartData = ChartFormatterSvc.lineChart([inputData], options); - return $scope.drawTrigger.notify(chartData); + $scope.getOppClass = function(index) { + switch (index) { + case 0: + return 'first'; + case 1: + return 'second'; + case 2: + return 'second'; + default: + return ''; } }; return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('widgetSalesGrowth', function() { + module.directive('widgetSalesTopOpportunities', function() { return { restrict: 'A', - controller: 'WidgetSalesGrowthCtrl' + controller: 'WidgetSalesTopOpportunitiesCtrl' }; }); }).call(this); (function() { - var module, - indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }; + var module; - module = angular.module('impac.components.widgets.sales-leads-funnel', []); + module = angular.module('impac.components.widgets-layouts.table', []); - module.controller('WidgetSalesLeadsFunnelCtrl', ["$scope", "$q", "ChartFormatterSvc", "$filter", "$sce", "ImpacWidgetsSvc", "ImpacDashboardsSvc", "$translate", function($scope, $q, ChartFormatterSvc, $filter, $sce, ImpacWidgetsSvc, ImpacDashboardsSvc, $translate) { - var hasOneLead, selectedStatusSetting, setLeadDescriptionTooltips, settingsPromises, w; + module.controller('WidgetTableCtrl', ["$scope", "$q", "$filter", "ImpacWidgetsSvc", function($scope, $q, $filter, ImpacWidgetsSvc) { + var settingsPromises, sortData, sortSingleRows, unCollapsedSetting, w; w = $scope.widget; $scope.orgDeferred = $q.defer(); $scope.timePeriodDeferred = $q.defer(); - $scope.paramsPickerDeferred = $q.defer(); - $scope.widthDeferred = $q.defer(); - settingsPromises = [$scope.orgDeferred.promise, $scope.timePeriodDeferred.promise, $scope.paramsPickerDeferred.promise, $scope.widthDeferred.promise]; - hasOneLead = function(leadsPerStatus) { - var reducedHash, total, totalsArray; - reducedHash = _.mapValues(leadsPerStatus, function(statusHash) { - return statusHash.total; - }); - totalsArray = _.compact(_.values(reducedHash)); - total = _.reduce(totalsArray, function(total, n) { - if (total == null) { - total = 0; - } - return total + n; - }); - return (total != null) && total > 0; + settingsPromises = [$scope.orgDeferred.promise, $scope.timePeriodDeferred.promise]; + $scope.timePeriodInfoParams = { + accountingBehaviour: 'pnl', + histParams: {} }; w.initContext = function() { - var dhb, status_selection; - dhb = ImpacDashboardsSvc.getCurrentDashboard(); - status_selection = w.metadata.status_selection || dhb.metadata.status_selection || { - values: [] - }; - if ($scope.isDataFound = angular.isDefined(w.content) && !_.isEmpty(w.content.leads_per_status) && hasOneLead(w.content.leads_per_status)) { - _.remove(status_selection.values, function(status) { - return indexOf.call(_.keys(w.content.leads_per_status), status) < 0; - }); - $scope.hasReach = true; - $scope.statusOptions = []; - return angular.forEach(w.content.leads_per_status, function(value, status) { - var isSelected; - isSelected = _.isEmpty(status_selection.values) || (indexOf.call(status_selection.values, status) >= 0); - return $scope.statusOptions.push({ - label: status, - selected: isSelected - }); - }); + $scope.table = _.get(w, 'content.table', {}); + if (_.isEmpty($scope.table.rows)) { + return; } - }; - w.processError = function(error) { - if (error.code === 404) { - return $scope.isDataFound = false; + $scope.currency = _.get(w, 'metadata.currency'); + $scope.timePeriodInfoParams.histParams = _.get(w, 'metadata.hist_parameters', {}); + $scope.unCollapsed = _.get(w, 'metadata.unCollapsed') || []; + $scope.ascending = true; + $scope.sortedColumn = $scope.table.headers.cells[0]; + $scope.colSize = $scope.table.headers.cells.length; + $scope.colWidth = (100 / $scope.colSize) + "%"; + }; + $scope.cellValue = function(v) { + var num; + num = parseFloat(v); + if (_.isNumber(num) && !_.isNaN(num)) { + return $filter('mnoCurrency')(v, $scope.currency); + } else { + return v; } }; - $scope.getImpacColor = function(index) { - return ChartFormatterSvc.getColor(index); - }; - $scope.toggleSelectStatus = function(aStatus) { - if ($scope.selectedStatus && $scope.selectedStatus === aStatus) { - $scope.selectedStatus = null; + $scope.toggleCollapsed = function(table, $event) { + var id; + $event.stopPropagation(); + id = table.headers.id; + if (id == null) { + return; + } + if (_.find($scope.unCollapsed, (function(name) { + return id === name; + }))) { + $scope.unCollapsed = _.reject($scope.unCollapsed, function(name) { + return name === id; + }); } else { - $scope.selectedStatus = aStatus; - $scope.setLeadTooltipsIsLocked = false; + $scope.unCollapsed.push(id); } - if (!w.isExpanded() && $scope.selectedStatus) { - return w.toggleExpanded(); + return ImpacWidgetsSvc.updateWidgetSettings(w, false); + }; + $scope.isCollapsed = function(table) { + var id; + id = table.headers.id; + if (id == null) { + return; + } + if (_.find($scope.unCollapsed, (function(name) { + return id === name; + }))) { + return false; } else { - return ImpacWidgetsSvc.updateWidgetSettings(w, false, true); + return true; } }; - $scope.isSelected = function(aStatus) { - return $scope.selectedStatus && aStatus === $scope.selectedStatus; + $scope.sort = function(col, $index) { + if ($scope.sortedColumn === col) { + $scope.ascending = !$scope.ascending; + } else { + $scope.ascending = true; + $scope.sortedColumn = col; + } + return sortData($scope.table.rows, $index); }; - $scope.getSelectedLeads = function() { - var leads; - if ($scope.isDataFound && $scope.selectedStatus) { - leads = w.content.leads_per_status[$scope.selectedStatus].leads; - if (!$scope.setLeadTooltipsIsLocked) { - setLeadDescriptionTooltips(leads); + sortData = function(rows, colIndex) { + var i, len, ref, table; + if (rows.single) { + rows.single = sortSingleRows(rows.single, colIndex); + } + if (rows.grouped) { + ref = rows.grouped; + for (i = 0, len = ref.length; i < len; i++) { + table = ref[i]; + sortData(table.rows, colIndex); } - return leads; } }; - $scope.leadDescriptionTooltips = {}; - setLeadDescriptionTooltips = function(leads) { - $scope.leadDescriptionTooltips = {}; - $scope.setLeadTooltipsIsLocked = true; - return _.each(leads, function(aLead, index) { - var nameLineArray, tooltip; - tooltip = []; - nameLineArray = [""]; - if (aLead.first_name) { - nameLineArray.push($filter('titleize')(aLead.first_name)); - } - if (aLead.last_name) { - nameLineArray.push($filter('titleize')(aLead.last_name)); - } - nameLineArray.push(""); - tooltip.push(nameLineArray.join(' ')); - tooltip.push("Status: " + ($filter('titleize')(aLead.lead_status))); - if (aLead.organization) { - tooltip.push("Organization: " + ($filter('titleize')(aLead.organization))); - } - if (aLead.opportunities) { - tooltip.push("Opportunities:"); - _.each(aLead.opportunities, function(opp) { - var oppLineArray; - oppLineArray = []; - if (opp.code) { - oppLineArray.push("#" + opp.code); - } - if (opp.name) { - oppLineArray.push("" + opp.name); - } - if (opp.amount) { - oppLineArray.push($filter('mnoCurrency')(opp.amount.total_amount, "USD", false)); - } - if (opp.probability) { - oppLineArray.push(opp.probability + "%"); - } - if (opp.sales_stage) { - oppLineArray.push("" + opp.sales_stage); - } - return tooltip.push(oppLineArray.join(' - ')); - }); - } - return $scope.leadDescriptionTooltips[index] = $sce.trustAsHtml(tooltip.join("
")); - }); + sortSingleRows = function(rows, colIndex) { + return _.sortByOrder(rows, (function(r) { + return r.cells[colIndex]; + }), [$scope.ascending]); }; - selectedStatusSetting = {}; - selectedStatusSetting.initialized = false; - selectedStatusSetting.initialize = function() { - if (!_.isEmpty(w.content) && angular.isDefined(w.content.leads_per_status[w.metadata.selected_status])) { - $scope.selectedStatus = w.metadata.selected_status; - } - return selectedStatusSetting.initialized = true; + unCollapsedSetting = {}; + unCollapsedSetting.initialized = false; + unCollapsedSetting.initialize = function() { + return unCollapsedSetting.initialized = true; }; - selectedStatusSetting.toMetadata = function() { + unCollapsedSetting.toMetadata = function() { return { - selected_status: $scope.selectedStatus + unCollapsed: $scope.unCollapsed }; }; - w.settings.push(selectedStatusSetting); - w.format = function() { - var max; - if ($scope.isDataFound) { - max = 0; - angular.forEach($scope.statusOptions, function(statusOption) { - var value; - value = w.content.leads_per_status[statusOption.label].total; - if (statusOption.selected && angular.isDefined(value) && value > max) { - return max = value; - } - }); - if (max > 0) { - return $scope.funnel = _.compact(_.map($scope.statusOptions, function(statusOption, index) { - var coloredWidth, statusWidth, value; - value = w.content.leads_per_status[statusOption.label].total; - coloredWidth = (100 * (value / max) - 10).toFixed(); - if (coloredWidth < 8) { - statusWidth = 92; - } else { - statusWidth = 100 - coloredWidth; - } - if (statusOption.selected && angular.isDefined(value)) { - return { - status: statusOption.label, - number: value, - coloredWidth: { - width: coloredWidth + "%" - }, - statusWidth: { - width: statusWidth + "%" - } - }; - } - })); - } - } - }; + w.settings.push(unCollapsedSetting); return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('widgetSalesLeadsFunnel', function() { + module.directive('widgetTable', function() { return { restrict: 'A', - controller: 'WidgetSalesLeadsFunnelCtrl' + controller: 'WidgetTableCtrl' + }; + }); + + module.directive('indentTableRow', function() { + return { + restrict: 'A', + link: function(_$scope, $element) { + var ancestorTables, nestLevel; + if ($element.is(':first-child')) { + ancestorTables = $element.closest('table').parentsUntil('#table-layout', 'table'); + nestLevel = ancestorTables.get().length; + if ($element.is('td')) { + nestLevel++; + } + $element.css({ + 'padding-left': (nestLevel * 20) + "px" + }); + } + } }; }); @@ -14769,1410 +14524,2825 @@ $templateCache.put("widgets/sales-top-opportunities.tmpl.html","
"]; - if (aLead.first_name) { - nameLineArray.push($filter('titleize')(aLead.first_name)); - } - if (aLead.last_name) { - nameLineArray.push($filter('titleize')(aLead.last_name)); - } - nameLineArray.push(""); - tooltip.push(nameLineArray.join(' ')); - tooltip.push("Status: " + ($filter('titleize')(aLead.lead_status))); - if (aLead.organization) { - tooltip.push("Organization: " + ($filter('titleize')(aLead.organization))); - } - if (aLead.opportunities) { - tooltip.push("Opportunities:"); - _.each(aLead.opportunities, function(opp) { - var oppLineArray; - oppLineArray = []; - if (opp.code) { - oppLineArray.push("#" + opp.code); - } - if (opp.name) { - oppLineArray.push("" + opp.name); - } - if (opp.amount) { - oppLineArray.push($filter('mnoCurrency')(opp.amount.total_amount, "USD", false)); - } - if (opp.probability) { - oppLineArray.push(opp.probability + "%"); - } - if (opp.sales_stage) { - oppLineArray.push("" + opp.sales_stage); - } - return tooltip.push(oppLineArray.join(' - ')); - }); - } - return $scope.leadDescriptionTooltips[index] = $sce.trustAsHtml(tooltip.join("
")); - }); + formatAmount = function(anAccount) { + var balance; + balance = anAccount.current_balance || anAccount.balance || 0.0; + return $filter('mnoCurrency')(balance, anAccount.currency); }; - return $scope.widgetDeferred.resolve(settingsPromises); + $scope.formatLabel = function(anAccount) { + if (anAccount.company != null) { + return anAccount.company + " - " + anAccount.name + " (" + (formatAmount(anAccount)) + ")"; + } else { + return anAccount.name + " (" + (formatAmount(anAccount)) + ")"; + } + }; + w.settings.push(setting); + return $scope.deferred.resolve($scope.parentWidget); }]); - module.directive('widgetSalesLeadsList', function() { + module.directive('settingAccount', ["$templateCache", "$translate", function($templateCache, $translate) { return { restrict: 'A', - controller: 'WidgetSalesLeadsListCtrl' + scope: { + parentWidget: '=', + deferred: '=', + label: '@', + showLabel: '=?', + onAccountSelected: '&' + }, + link: function(scope, element) { + if (!scope.label) { + return scope.label = $translate.instant('impac.widget.settings.account.label'); + } + }, + template: $templateCache.get('widgets-settings/account.tmpl.html'), + controller: 'SettingAccountCtrl' }; - }); + }]); }).call(this); (function() { var module; - module = angular.module('impac.components.widgets.sales-list', []); + module = angular.module('impac.components.widgets-settings.accounting-behaviour', []); - module.controller('WidgetSalesListCtrl', ["$scope", "$q", "ChartFormatterSvc", "ImpacWidgetsSvc", "$translate", function($scope, $q, ChartFormatterSvc, ImpacWidgetsSvc, $translate) { - var buildFxTotals, settingsPromises, sortAccountsBy, sortData, unCollapsedSetting, w; - w = $scope.widget; - $scope.orgDeferred = $q.defer(); - $scope.paramSelectorDeferred = $q.defer(); - $scope.datesPickerDeferred = $q.defer(); - settingsPromises = [$scope.orgDeferred.promise, $scope.paramSelectorDeferred.promise, $scope.datesPickerDeferred.promise]; - $scope.ascending = true; - $scope.sortedColumn = 'account'; - $scope.datesPickerTemplate = "" + $translate.instant('impac.widget.sales_list.from') + " " + $translate.instant('impac.widget.sales_list.to') + " "; - w.initContext = function() { - if ($scope.isDataFound = angular.isDefined(w.content) && !_.isEmpty(w.content.summary)) { - buildFxTotals(); - $scope.ratesDate = moment.now(); - $scope.filterOptions = [ - { - label: $translate.instant('impac.widget.sales_list.value_sold_taxes'), - value: 'gross_value_sold' - }, { - label: $translate.instant('impac.widget.sales_list.value_sold_no_taxes'), - value: 'net_value_sold' - }, { - label: $translate.instant('impac.widget.sales_list.quantity_sold'), - value: 'quantity_sold' - }, { - label: $translate.instant('impac.widget.sales_list.value_purchased_taxes'), - value: 'gross_value_purchased' - }, { - label: $translate.instant('impac.widget.sales_list.value_purchased_no_taxes'), - value: 'net_value_purchased' - }, { - label: $translate.instant('impac.widget.sales_list.quantity_purchased'), - value: 'quantity_purchased' - } - ]; - $scope.filter = angular.copy(_.find($scope.filterOptions, function(o) { - return o.value === w.metadata.filter; - }) || $scope.filterOptions[0]); - $scope.unCollapsed = w.metadata.unCollapsed || []; - return sortData(); - } - }; - $scope.toggleCollapsed = function(categoryName) { - if (categoryName != null) { - if (_.find($scope.unCollapsed, (function(name) { - return categoryName === name; - }))) { - $scope.unCollapsed = _.reject($scope.unCollapsed, function(name) { - return name === categoryName; + module.directive('settingAccountingBehaviour', ["$templateCache", "$timeout", function($templateCache, $timeout) { + return { + restrict: 'A', + scope: { + parentWidget: '=', + deferred: '=', + defaultBehaviour: '=?' + }, + template: $templateCache.get('widgets-settings/accounting-behaviour.tmpl.html'), + link: function(scope) { + var setting, w; + w = scope.parentWidget; + setting = {}; + setting.key = "accounting-behaviour"; + setting.initialize = function() { + return $timeout(function() { + if ((scope.defaultBehaviour != null) && scope.defaultBehaviour === 'pnl') { + return scope.selectedBehaviour = 'pnl'; + } else { + return scope.selectedBehaviour = 'bls'; + } }); - } else { - $scope.unCollapsed.push(categoryName); - } - return ImpacWidgetsSvc.updateWidgetSettings(w, false); + }; + setting.toMetadata = function() { + return { + accounting_behaviour: scope.selectedBehaviour + }; + }; + w.settings.push(setting); + return scope.deferred.resolve(setting); } }; - $scope.isCollapsed = function(categoryName) { - if (categoryName != null) { - if (_.find($scope.unCollapsed, (function(name) { - return categoryName === name; - }))) { - return false; - } else { - return true; - } + }]); + +}).call(this); + +(function() { + var module; + + module = angular.module('impac.components.widgets-settings.accounts-list', []); + + module.controller('SettingAccountsListCtrl', ["$scope", "$timeout", "ImpacWidgetsSvc", function($scope, $timeout, ImpacWidgetsSvc) { + var restoreSavedAccounts, setting, w; + w = $scope.parentWidget; + w.moveAccountToAnotherList = function(account, src, dst, triggerUpdate) { + if (triggerUpdate == null) { + triggerUpdate = true; } - }; - sortAccountsBy = function(getElem) { - return angular.forEach(w.content.summary, function(sElem) { - if (sElem.products) { - return sElem.products.sort(function(a, b) { - var res; - res = getElem(a) > getElem(b) ? 1 : getElem(a) < getElem(b) ? -1 : 0; - if (!$scope.ascending) { - res *= -1; - } - return res; - }); - } + if (_.isEmpty(src) || _.isEmpty(account)) { + return; + } + dst || (dst = []); + _.remove(src, function(acc) { + return account.uid === acc.uid; }); + dst.push(account); + if (triggerUpdate) { + ImpacWidgetsSvc.updateWidgetSettings(w, false); + } + return null; }; - sortData = function() { - if ($scope.sortedColumn === 'account') { - return sortAccountsBy(function(el) { - return el.name; - }); - } else if ($scope.sortedColumn === 'total') { - return sortAccountsBy(function(el) { - return el.total; + setting = {}; + setting.key = "accounts-list"; + setting.initialize = function() { + setting.isInitialized = false; + w.remainingAccounts = []; + w.selectedAccounts = []; + if ((w.content != null) && !_.isEmpty(w.content.complete_list)) { + w.remainingAccounts = angular.copy(w.content.complete_list); + return $timeout(function() { + restoreSavedAccounts(); + return setting.isInitialized = true; }); } }; - $scope.sort = function(col) { - if ($scope.sortedColumn === col) { - $scope.ascending = !$scope.ascending; - } else { - $scope.ascending = true; - $scope.sortedColumn = col; + setting.toMetadata = function() { + if (setting.isInitialized) { + return { + accounts_list: _.map(w.selectedAccounts, (function(acc) { + return acc.uid; + })) + }; } - return sortData(); }; - buildFxTotals = function() { - var groupedSales, i, len, ref, results, sale, saleFxTotals; - ref = w.content.summary; + restoreSavedAccounts = function() { + var acc, accUid, accountsList, i, len, results; + if (_.isEmpty(w.metadata.accounts_list) && _.isEmpty($scope.accountsList)) { + return; + } + accountsList = _.isEmpty($scope.accountsList) ? w.metadata.accounts_list : $scope.accountsList; results = []; - for (i = 0, len = ref.length; i < len; i++) { - groupedSales = ref[i]; - results.push((function() { - var j, len1, ref1, results1; - ref1 = groupedSales.products; - results1 = []; - for (j = 0, len1 = ref1.length; j < len1; j++) { - sale = ref1[j]; - saleFxTotals = []; - if (!_.isEmpty(sale.fx_totals)) { - _.mapKeys(sale.fx_totals, function(total, currency) { - var amount; - amount = total['amount']; - if (!(amount === 0 || currency === w.metadata.currency)) { - return saleFxTotals.push({ - currency: currency, - amount: amount, - rate: total.rate - }); - } - }); - } - if (!_.isEmpty(saleFxTotals)) { - results1.push(sale.formattedFxTotals = saleFxTotals); - } else { - results1.push(void 0); - } - } - return results1; - })()); + for (i = 0, len = accountsList.length; i < len; i++) { + accUid = accountsList[i]; + acc = _.find(w.content.complete_list, function(acc) { + return acc.uid === accUid; + }); + results.push(w.moveAccountToAnotherList(acc, w.remainingAccounts, w.selectedAccounts, false)); } return results; }; - unCollapsedSetting = {}; - unCollapsedSetting.initialized = false; - unCollapsedSetting.initialize = function() { - return unCollapsedSetting.initialized = true; - }; - unCollapsedSetting.toMetadata = function() { - return { - unCollapsed: $scope.unCollapsed - }; - }; - w.settings.push(unCollapsedSetting); - return $scope.widgetDeferred.resolve(settingsPromises); + w.settings.push(setting); + return $scope.deferred.resolve($scope.parentWidget); }]); - module.directive('widgetSalesList', function() { + module.directive('settingAccountsList', function() { return { restrict: 'A', - controller: 'WidgetSalesListCtrl' + scope: { + parentWidget: '=', + deferred: '=', + accountsList: '=?' + }, + controller: 'SettingAccountsListCtrl' }; }); }).call(this); + +/* + * Attach KPIs onto widget with a form for picking target mode and value. View widget's + * attached KPIs, manage set targets, alerts and delete. + * **NOTE: this component is not in use, and requires fixes/improvements to be used.** + */ + (function() { var module; - module = angular.module('impac.components.widgets.sales-margin', []); + module = angular.module('impac.components.widgets-settings.attach-kpis', []); - module.controller('WidgetSalesMarginCtrl', ["$scope", "$q", "ChartFormatterSvc", "$filter", "$translate", function($scope, $q, ChartFormatterSvc, $filter, $translate) { - var settingsPromises, w; - w = $scope.widget; - $scope.orgDeferred = $q.defer(); - $scope.timePeriodDeferred = $q.defer(); - $scope.histModeDeferred = $q.defer(); - $scope.paramSelectorDeferred = $q.defer(); - $scope.chartDeferred = $q.defer(); - settingsPromises = [$scope.orgDeferred.promise, $scope.timePeriodDeferred.promise, $scope.histModeDeferred.promise, $scope.paramSelectorDeferred.promise, $scope.chartDeferred.promise]; - w.initContext = function() { - $scope.isDataFound = (w.content != null) && (w.content.margins != null) && (w.content.dates != null); - if ($scope.isDataFound) { - $scope.filterOptions = [ + module.directive('settingAttachKpis', ["$templateCache", "ImpacWidgetsSvc", "ImpacKpisSvc", "$translate", function($templateCache, ImpacWidgetsSvc, ImpacKpisSvc, $translate) { + return { + restrict: 'A', + scope: { + parentWidget: '=', + attachedKpis: '=?', + widgetEngine: '=', + widgetId: '=', + extraParams: '=?', + deferred: '=', + showExtraParam: '=?' + }, + template: $templateCache.get('widgets-settings/attach-kpis.tmpl.html'), + controller: ["$scope", function($scope) { + var loadKpisData, settings, w; + w = $scope.parentWidget; + settings = {}; + settings.initialize = function() { + return loadKpisData(); + }; + settings.toMetadata = function() {}; + w.settings.push(settings); + $scope.formatKpiName = function(endpoint) { + return ImpacKpisSvc.formatKpiName(endpoint); + }; + $scope.hasValidTarget = function() { + return ImpacKpisSvc.validateKpiTarget($scope.kpi); + }; + $scope.attachKpi = function() { + var param, paramValues, params, ref, target0; + params = {}; + if (!$scope.hasValidTarget()) { + return; + } + target0 = {}; + target0[$scope.kpi.limit.mode] = $scope.kpi.limit.value; + params.targets = {}; + params.targets[$scope.kpi.watchables[0]] = [target0]; + params.widget_id = $scope.widgetId; + ref = $scope.extraParams; + for (param in ref) { + paramValues = ref[param]; + params.extra_params || (params.extra_params = {}); + params.extra_params[param] = paramValues.uid; + } + console.log('attachKpis: ', $scope.kpi.endpoint, $scope.elementWatched, params); + return ImpacKpisSvc.create('impac', $scope.kpi.endpoint, $scope.elementWatched, params).then(function(kpi) { + console.log('attached KPI: ', kpi); + return $scope.attachedKpis.push(kpi); + }); + }; + $scope.deleteKpi = function(kpi) { + return ImpacKpisSvc["delete"](kpi, { + widget_id: $scope.widgetId + }).then(function() { + return _.remove($scope.attachedKpis, function(k) { + return k.id === kpi.id; + }); + }); + }; + $scope.formatAttachedKpiTitle = function(kpi) { + if (!(kpi.data && kpi.targets && $scope.elementWatched)) { + return ''; + } + return ImpacKpisSvc.formatKpiTarget(kpi.targets[$scope.elementWatched][0], kpi.data[$scope.elementWatched].unit, $scope.possibleTargets); + }; + $scope.attachedKpis || ($scope.attachedKpis = []); + $scope.possibleTargets = [ { - label: $translate.instant('impac.widget.sales_margin.including_taxes'), - value: 'gross_margin' + label: $translate.instant('impac.widget.settings.attach_kpis.over'), + mode: 'min' }, { - label: $translate.instant('impac.widget.sales_margin.excluding_taxes'), - value: 'net_margin' + label: $translate.instant('impac.widget.settings.attach_kpis.below'), + mode: 'max' } ]; - if ((w.metadata != null) && w.metadata.filter === "net_margin") { - return $scope.filter = angular.copy($scope.filterOptions[1]); - } else { - return $scope.filter = angular.copy($scope.filterOptions[0]); - } + $scope.kpi = { + limit: { + mode: $scope.possibleTargets[0].mode + } + }; + ImpacKpisSvc.getAttachableKpis($scope.widgetEngine).then(function(kpiTemplates) { + $scope.availableKpis = angular.copy(kpiTemplates); + angular.extend($scope.kpi, $scope.availableKpis[0]); + $scope.selectedParam = _.keys($scope.extraParams)[0]; + return $scope.elementWatched = ($scope.kpi.watchables != null) && $scope.kpi.watchables[0]; + }); + loadKpisData = function() {}; + loadKpisData(); + return $scope.deferred.resolve($scope.parentWidget); + }] + }; + }]); + +}).call(this); + +(function() { + var module; + + module = angular.module('impac.components.widgets-settings.bolt-account', []); + + module.controller('SettingBoltAccountCtrl', ["$scope", "$filter", function($scope, $filter) { + var formatAmount, setOptions, setSelected, setting, w; + w = $scope.parentWidget; + setting = {}; + setting.key = "bolt-account"; + setting.isInitialized = false; + setting.initialize = function() { + if (w.content.settings.selectors.length !== 0) { + w.accountList = setOptions(); + } + w.selectedAccount = setSelected(); + if ((w.content != null) && (w.accountList != null) && (w.metadata != null) && (w.metadata.account_uid != null)) { + w.selectedAccount = setSelected(w.metadata.account_uid); + return setting.isInitialized = true; } }; - $scope.getTotalMargin = function() { - if ($scope.isDataFound) { - if ((w.metadata != null) && w.metadata.filter === "net_margin") { - return _.reduce(w.content.margins.net, function(memo, margin) { - return memo + margin; - }, 0); - } else { - return _.reduce(w.content.margins.gross, function(memo, margin) { - return memo + margin; - }, 0); - } + setting.toMetadata = function() { + if (w.selectedAccount != null) { + return { + account_uid: w.selectedAccount.account_id + }; } }; - $scope.getCurrency = function() { - if ($scope.isDataFound) { - return w.content.currency || "USD"; + setOptions = function(name) { + if (name == null) { + name = 'account'; } + return _.find(w.content.settings.selectors, function(selector) { + return selector.name === name; + }).options; }; - $scope.drawTrigger = $q.defer(); - w.format = function() { - var all_values_are_positive, chartData, dates, inputData, options, period, values; - if ($scope.isDataFound) { - if ((w.metadata != null) && w.metadata.filter === "net_margin") { - values = w.content.margins.net; - } else { - values = w.content.margins.gross; - } - period = null; - if ((w.metadata != null) && (w.metadata.hist_parameters != null)) { - period = w.metadata.hist_parameters.period; - } - dates = _.map(w.content.dates, function(date) { - return $filter('momentDate')(date, period); - }); - inputData = { - title: $translate.instant('impac.widget.sales_margin.gross_margin'), - labels: dates, - values: values - }; - all_values_are_positive = true; - angular.forEach(values, function(value) { - return all_values_are_positive && (all_values_are_positive = value >= 0); - }); - options = { - scaleBeginAtZero: all_values_are_positive, - showXLabels: false - }; - chartData = ChartFormatterSvc.lineChart([inputData], options); - return $scope.drawTrigger.notify(chartData); + setSelected = function(selected) { + if (selected == null) { + selected = 'total_uid'; + } + return _.find(w.accountList, function(acc) { + return acc.account_id === selected; + }); + }; + formatAmount = function(anAccount) { + var balance; + balance = null; + return $filter('mnoCurrency')(balance, anAccount.currency); + }; + $scope.formatLabel = function(anAccount) { + if (anAccount.currency != null) { + return anAccount.name + " (" + anAccount.currency + ")"; + } else { + return "" + anAccount.name; } }; - return $scope.widgetDeferred.resolve(settingsPromises); + w.settings.push(setting); + return $scope.deferred.resolve($scope.parentWidget); }]); - module.directive('widgetSalesMargin', function() { + module.directive('settingBoltAccount', ["$templateCache", "$translate", function($templateCache, $translate) { return { restrict: 'A', - controller: 'WidgetSalesMarginCtrl' - }; - }); - -}).call(this); - -(function() { - var module; - - module = angular.module('impac.components.widgets.sales-net-sales', []); - - module.controller('WidgetSalesNetSalesCtrl', ["$scope", "$q", "ChartFormatterSvc", "$filter", "$translate", function($scope, $q, ChartFormatterSvc, $filter, $translate) { - var settingsPromises, w; - w = $scope.widget; - $scope.orgDeferred = $q.defer(); - $scope.paramSelector1Deferred = $q.defer(); - $scope.paramSelector2Deferred = $q.defer(); - settingsPromises = [$scope.orgDeferred.promise, $scope.paramSelector1Deferred.promise, $scope.paramSelector2Deferred.promise]; - $translate(['impac.widget.sales_net_sales.total_amount', 'impac.widget.sales_net_sales.average_amount', 'impac.widget.sales_net_sales.volume']).then(function(translations) { - $scope.displayOptions = [ - { - label: translations['impac.widget.sales_net_sales.total_amount'], - value: 'total' - }, { - label: translations['impac.widget.sales_net_sales.average_amount'], - value: 'average' - }, { - label: translations['impac.widget.sales_net_sales.volume'], - value: 'trans_count' + scope: { + parentWidget: '=', + deferred: '=', + label: '@', + showLabel: '=?', + onAccountSelected: '&' + }, + link: function(scope, element) { + if (!scope.label) { + return scope.label = $translate.instant('impac.widget.settings.bolt-account.label'); } - ]; - return $scope.displayType = angular.copy(_.find($scope.displayOptions, function(o) { - return w.metadata && o.value === w.metadata.display_type; - }) || $scope.displayOptions[0]); - }); - $translate(['impac.widget.sales_net_sales.tmpl.last_hours', 'impac.widget.sales_net_sales.tmpl.last_days']).then(function(translations) { - var daysTmpl, hoursTmpl; - hoursTmpl = translations['impac.widget.sales_net_sales.tmpl.last_hours']; - daysTmpl = translations['impac.widget.sales_net_sales.tmpl.last_days']; - $scope.timeRangeOptions = [ - { - label: hoursTmpl.replace(':hours:', 24), - value: '-1d' - }, { - label: daysTmpl.replace(':days:', 5), - value: '-5d' - }, { - label: daysTmpl.replace(':days:', 7), - value: '-7d' - }, { - label: daysTmpl.replace(':days:', 30), - value: '-30d' - }, { - label: daysTmpl.replace(':days:', 45), - value: '-45d' - }, { - label: daysTmpl.replace(':days:', 60), - value: '-60d' - }, { - label: daysTmpl.replace(':days:', 90), - value: '-90d' + }, + template: $templateCache.get('widgets-settings/bolt-account.tmpl.html'), + controller: 'SettingBoltAccountCtrl' + }; + }]); + +}).call(this); + +(function() { + var module; + + module = angular.module('impac.components.widgets-settings.dates-picker', []); + + module.directive('settingDatesPicker', ["$templateCache", "$filter", "ImpacWidgetsSvc", "$timeout", "$compile", function($templateCache, $filter, ImpacWidgetsSvc, $timeout, $compile) { + return { + restrict: 'A', + scope: { + parentWidget: '=?', + deferred: '=', + fromDate: '=from', + toDate: '=to', + keepToday: '=', + onUse: '&?', + onChangeCb: '&?onChange', + minDate: '=?', + updateOnPick: '=?', + template: '=?', + period: '=?' + }, + template: $templateCache.get('widgets-settings/dates-picker.tmpl.html'), + link: function(scope, element) { + var applyHtml, buildDates, fromDateHtml, isToToday, setting, templatesContainer, toDateHtml, w; + w = scope.parentWidget; + setting = {}; + setting.key = "dates-picker"; + scope.setting = setting; + scope.calendarFrom = { + opened: false, + value: new Date(new Date().getFullYear(), 0, 1), + toggle: function() { + scope.calendarFrom.opened = !scope.calendarFrom.opened; + return scope.calendarTo.opened = false; + } + }; + scope.calendarTo = { + opened: false, + value: new Date(), + toggle: function() { + scope.calendarFrom.opened = false; + return scope.calendarTo.opened = !scope.calendarTo.opened; + } + }; + scope.template || (scope.template = "
\n
\n impac.widget.settings.dates_picker.from \n
\n
\n impac.widget.settings.dates_picker.to \n
\n
"); + fromDateHtml = "
\n \n
"; + toDateHtml = "
\n \n
"; + applyHtml = ""; + scope.template = scope.template.replace(/>/, " ng-click='onUse()'>"); + scope.template = scope.template.replace(/]*)>/g, "" + (fromDateHtml.replace('ATTRS', '$1'))); + scope.template = scope.template.replace(/]*)>/g, "" + (toDateHtml.replace('ATTRS', '$1'))); + scope.template = scope.template.replace(/]*)>/g, "" + (applyHtml.replace('ATTRS', '$1'))); + templatesContainer = element.find('#template-container'); + templatesContainer.html(scope.template).show(); + $compile(templatesContainer.contents())(scope); + setting.initialize = function() { + return $timeout(function() { + var d, m, parsedFrom, parsedTo, y; + scope.changed = false; + if (Date.parse(scope.fromDate)) { + parsedFrom = scope.fromDate.split('-'); + y = parsedFrom[0]; + m = parsedFrom[1] - 1; + d = parsedFrom[2]; + scope.calendarFrom.value = new Date(y, m, d); + } else { + scope.calendarFrom.value = new Date(new Date().getFullYear(), 0, 1); + } + if (Date.parse(scope.toDate) && !scope.keepToday) { + parsedTo = scope.toDate.split('-'); + y = parsedTo[0]; + m = parsedTo[1] - 1; + d = parsedTo[2]; + return scope.calendarTo.value = new Date(y, m, d); + } else { + return scope.calendarTo.value = new Date(); + } + }); + }; + isToToday = function() { + return (scope.calendarTo.value.getFullYear() === new Date().getFullYear()) && (scope.calendarTo.value.getMonth() === new Date().getMonth()) && (scope.calendarTo.value.getDate() === new Date().getDate()); + }; + setting.toMetadata = function() { + return { + hist_parameters: { + from: $filter('date')(scope.calendarFrom.value, 'yyyy-MM-dd'), + to: $filter('date')(scope.calendarTo.value, 'yyyy-MM-dd'), + period: scope.period || "RANGE", + keep_today: isToToday() + } + }; + }; + scope.onChange = function() { + scope.showApplyButton(); + if (!_.isUndefined(scope.onChangeCb)) { + return scope.onChangeCb()(buildDates()); + } + }; + buildDates = function() { + return { + from: $filter('date')(scope.calendarFrom.value, 'yyyy-MM-dd'), + to: $filter('date')(scope.calendarTo.value, 'yyyy-MM-dd'), + keepToday: isToToday() + }; + }; + scope.showApplyButton = function() { + if (scope.updateOnPick) { + return scope.applyChanges(); + } else { + return scope.changed = true; + } + }; + scope.applyChanges = function() { + ImpacWidgetsSvc.updateWidgetSettings(w, true); + return scope.changed = false; + }; + scope.showTitle = function() { + return element.hasClass('part'); + }; + if (w) { + w.settings.push(setting); } - ]; - return $scope.timeRange = angular.copy(_.find($scope.timeRangeOptions, function(o) { - return w.metadata && o.value === w.metadata.time_range; - }) || $scope.timeRangeOptions[6]); - }); - w.initContext = function() { - return $scope.isDataFound = (w.content != null) && (w.content.sales != null) && w.content.sales.length > 0 && (w.content.sales[0].total != null); + return scope.deferred.resolve(setting); + } }; - $scope.getCurrency = function() { - if ($scope.isDataFound) { - return w.content.currency; + }]); + +}).call(this); + +(function() { + var module; + + module = angular.module('impac.components.widgets-settings.chart-filters', []); + + module.controller('SettingChartFiltersCtrl', ["$scope", function($scope) { + var setting, w; + w = $scope.parentWidget; + setting = {}; + setting.key = "chart-filters"; + setting.isInitialized = false; + setting.initialize = function() { + if ((w.content != null) && (w.content.chart_filter != null) && ($scope.filterCriteria = w.content.chart_filter.criteria)) { + $scope.maxEntities = w.content.chart_filter.max; + $scope.entityType = w.content.chart_filter.entity_type; + $scope.filterLabel = w.content.chart_filter.filter_label.replace(/_/g, " "); + if ($scope.filterCriteria === "number") { + $scope.filterValuePercentage = 80; + $scope.filterValueNumber = w.content.chart_filter.value; + } else { + $scope.filterValuePercentage = w.content.chart_filter.value; + $scope.filterValueNumber = Math.round($scope.maxEntities / 2); + } + return setting.isInitialized = true; } }; - $scope.getValue = function(valueType) { - if ((w.content != null) && w.content[valueType]) { - switch ($scope.displayType.value) { - case 'total': - return $filter('mnoCurrency')(w.content[valueType][0].total, $scope.getCurrency(), false); - case 'average': - return $filter('mnoCurrency')(w.content[valueType][0].avg, $scope.getCurrency(), false); - case 'trans_count': - return w.content[valueType][0].trans_count; + setting.toMetadata = function() { + var filterValue; + if ((w.content != null) && (w.content.chart_filter != null)) { + if ($scope.filterCriteria === "percentage") { + filterValue = $scope.filterValuePercentage; + } else { + filterValue = $scope.filterValueNumber; } + return { + chart_filter: { + criteria: $scope.filterCriteria, + value: filterValue + } + }; } else { - return 0; + return {}; } }; - $scope.sign = function(type) { - if ($scope.displayType.value === 'average') { - return { - minus: '~', - equal: '=>' - }[type]; - } else if ($scope.displayType.value === 'trans_count') { + w.settings.push(setting); + return $scope.deferred.resolve($scope.parentWidget); + }]); + + module.directive('settingChartFilters', ["$templateCache", function($templateCache) { + return { + restrict: 'A', + scope: { + parentWidget: '=', + deferred: '=' + }, + template: $templateCache.get('widgets-settings/chart-filters.tmpl.html'), + controller: 'SettingChartFiltersCtrl' + }; + }]); + +}).call(this); + +(function() { + var module; + + module = angular.module('impac.components.widgets-settings.forecast-payroll', []); + + module.controller('SettingForecastPayrollCtrl', ["$scope", "ImpacDashboardsSvc", function($scope, ImpacDashboardsSvc) { + var setting, w; + w = $scope.parentWidget; + $scope.selectedForecastPayroll = false; + $scope.toggleForecastPayroll = function() { + return $scope.selectedForecastPayroll = !$scope.selectedForecastPayroll; + }; + $scope.isToggleForecastPayroll = function() { + return $scope.selectedForecastPayroll; + }; + setting = {}; + setting.key = "forecast_payroll"; + setting.isInitialized = false; + setting.initialize = function() { + return ImpacDashboardsSvc.load().then(function(config) { + var currentDashboard; + currentDashboard = config.currentDashboard; + if (!((w.metadata != null) && (w.metadata.forecast_payroll != null))) { + return; + } + $scope.selectedForecastPayroll = w.metadata.forecast_payroll; + return setting.isInitialized = true; + }); + }; + setting.toMetadata = function() { + return { + forecast_payroll: $scope.selectedForecastPayroll + }; + }; + w.settings.push(setting); + return $scope.deferred.resolve($scope.parentWidget); + }]); + + module.directive('settingForecastPayroll', ["$templateCache", function($templateCache) { + return { + restrict: 'A', + scope: { + parentWidget: '=', + mode: '@?', + deferred: '=', + onSelect: '&?' + }, + template: $templateCache.get('widgets-settings/forecast-payroll.tmpl.html'), + controller: 'SettingForecastPayrollCtrl' + }; + }]); + +}).call(this); + +(function() { + var module; + + module = angular.module('impac.components.widgets-settings.formula', []); + + module.controller('SettingFormulaCtrl', ["$scope", "$filter", "$timeout", "$translate", function($scope, $filter, $timeout, $translate) { + var AUTHORIZED_REGEXP, evaluateFormula, formatFormula, getFormula, interpolateInFormula, isRatio, prepareFormula, setting, translateEvaluatedFormula, w; + w = $scope.parentWidget; + w.formula = ''; + AUTHORIZED_REGEXP = new RegExp("^(\\{|\\d|\\}|\\/|\\+|-|\\*|\\(|\\)|\\s|\\.)*$"); + setting = {}; + setting.key = "formula"; + setting.isInitialized = false; + setting.initialize = function() { + if ((w.metadata != null) && (w.metadata.formula != null)) { + w.formula = w.metadata.formula; + return $timeout(function() { + prepareFormula(); + return setting.isInitialized = true; + }); + } else { + return w.formula = ''; + } + }; + setting.toMetadata = function() { + prepareFormula(); + if (w.isFormulaCorrect) { return { - minus: '+', - equal: '=' - }[type]; + formula: w.formula + }; } else { return { - minus: '-', - equal: '=' - }[type]; + formula: '' + }; + } + }; + getFormula = function() { + return w.formula; + }; + w.formatAmount = function(anAccount) { + return $filter('mnoCurrency')(anAccount.current_balance, anAccount.currency); + }; + $scope.$watch(getFormula, function(e) { + return prepareFormula(); + }); + prepareFormula = function() { + var evaluatedFormula, interpolatedFormula; + interpolatedFormula = interpolateInFormula(w.formula, w.selectedAccounts, 'current_balance'); + if ((evaluatedFormula = evaluateFormula(interpolatedFormula))) { + w.evaluatedFormula = formatFormula(evaluatedFormula, w.formula, w.selectedAccounts); + w.legend = interpolateInFormula(w.formula, w.selectedAccounts, 'name'); + w.isFormulaCorrect = true; + } else { + w.evaluatedFormula = 'invalid expression'; + w.legend = '...'; + w.isFormulaCorrect = false; + } + return w.evaluatedFormulaTranslate = translateEvaluatedFormula(w.evaluatedFormula); + }; + w.evaluatedFormula_History = function(index) { + var account, i, interpolation, j, len, pattern, ref; + interpolation = w.formula; + ref = w.selectedAccounts; + for (i = j = 0, len = ref.length; j < len; i = ++j) { + account = ref[i]; + pattern = new RegExp("\\{" + (i + 1) + "\\}", 'g'); + interpolation = interpolation.replace(pattern, " " + account['balances'][index] + " "); + } + return evaluateFormula(interpolation); + }; + translateEvaluatedFormula = function(formula) { + switch (formula) { + case 'invalid expression': + return $translate.instant('impac.widget.formula.invalid_expression'); + case 'Infinity': + return $translate.instant('impac.widget.formula.infinity'); + case '-Infinity': + return $translate.instant('impac.widget.formula.minus_infinity'); + default: + return formula; + } + }; + interpolateInFormula = function(sourceFormula, selectedAccounts, accountMember) { + var account, i, interpolation, j, len, pattern; + interpolation = sourceFormula; + if (_.isEmpty(selectedAccounts)) { + return interpolation; + } + for (i = j = 0, len = selectedAccounts.length; j < len; i = ++j) { + account = selectedAccounts[i]; + pattern = new RegExp("\\{" + (i + 1) + "\\}", 'g'); + interpolation = interpolation.replace(pattern, " " + account[accountMember] + " "); + } + return interpolation; + }; + evaluateFormula = function(interpolatedFormula) { + var e, evaluation; + if (!interpolatedFormula.match(AUTHORIZED_REGEXP)) { + return false; + } + try { + evaluation = eval(interpolatedFormula).toFixed(2); + if (isFinite(evaluation)) { + return evaluation; + } else { + return false; + } + } catch (error) { + e = error; + return false; + } + }; + isRatio = function(sourceFormula) { + return sourceFormula.match(/\//g); + }; + formatFormula = function(evaluation, sourceFormula, selectedAccounts) { + var currency, firstAccount; + if (isRatio(sourceFormula) || _.isEmpty(selectedAccounts)) { + return evaluation; + } + firstAccount = selectedAccounts[0]; + if (!(currency = firstAccount.currency)) { + return evaluation; + } + return $filter('mnoCurrency')(evaluation, currency); + }; + w.settings.push(setting); + return $scope.deferred.resolve($scope.parentWidget); + }]); + + module.directive('settingFormula', function() { + return { + restrict: 'A', + scope: { + parentWidget: '=', + deferred: '=' + }, + controller: 'SettingFormulaCtrl' + }; + }); + +}).call(this); + +(function() { + var module, + indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }; + + module = angular.module('impac.components.widgets-settings.hist-mode', []); + + module.controller('SettingHistModeCtrl', ["$scope", "$translate", "$timeout", "ImpacWidgetsSvc", "ImpacTheming", "ImpacUtilities", function($scope, $translate, $timeout, ImpacWidgetsSvc, ImpacTheming, ImpacUtilities) { + var buildCurrentLabel, setting, w; + w = $scope.parentWidget; + w.isHistoryMode = w.metadata && w.metadata.hist_parameters && w.metadata.hist_parameters.mode === 'history'; + $scope.forwardParams = { + accountingBehaviour: function() { + return $scope.accountingBehaviour; + } + }; + $scope.toggleHistMode = function(mode) { + var ref; + if ((w.isHistoryMode && mode === 'history') || (!w.isHistoryMode && mode === 'current')) { + return; + } + w.isHistoryMode = !w.isHistoryMode; + ImpacWidgetsSvc.updateWidgetSettings(w, false); + return ref = $scope.onToggle(), indexOf.call(angular.isDefined($scope.onToggle), ref) >= 0; + }; + buildCurrentLabel = function() { + var label, labels, needPrefix, prefix; + labels = ImpacTheming.get().widgetSettings.histModeChoser.currentLabels; + if (($scope.accountingBehaviour != null) && labels[$scope.accountingBehaviour]) { + needPrefix = !$scope.endDate || ($scope.endDate === moment().format('YYYY-MM-DD')); + label = labels[$scope.accountingBehaviour]; + prefix = labels[$scope.accountingBehaviour] + '.prefix'; + return $translate([prefix, label]).then(function(translations) { + return $scope.currentLabel = needPrefix ? translations[prefix] + " " + translations[label] : translations[label]; + }); + } else { + return $translate(labels["default"]).then(function(label) { + return $scope.currentLabel = label; + }); + } + }; + setting = {}; + setting.key = "hist-mode"; + setting.isInitialized = false; + setting.initialize = function() { + return $timeout(function() { + var mode; + if ((w.metadata != null) && (w.metadata.hist_parameters != null) && (mode = w.metadata.hist_parameters.mode)) { + w.isHistoryMode = mode === 'history' ? true : false; + } + buildCurrentLabel(); + $scope.forwardParams.histParams = w.metadata && w.metadata.hist_parameters; + setting.isInitialized = true; + return $scope; + }); + }; + setting.toMetadata = function() { + var mode; + mode = w.isHistoryMode ? 'history' : 'current'; + return { + hist_parameters: { + mode: mode + } + }; + }; + w.settings.push(setting); + return $scope.deferred.resolve($scope.parentWidget); + }]); + + module.directive('settingHistMode', ["$templateCache", function($templateCache) { + return { + restrict: 'A', + scope: { + parentWidget: '=', + deferred: '=', + onToggle: '&', + accountingBehaviour: '@?', + endDate: '=?' + }, + template: $templateCache.get('widgets-settings/hist-mode.tmpl.html'), + controller: 'SettingHistModeCtrl' + }; + }]); + +}).call(this); + +(function() { + var module; + + module = angular.module('impac.components.widgets-settings.limit-entries', []); + + module.controller('SettingLimitEntriesCtrl', ["$scope", function($scope) { + var setting; + setting = {}; + setting.key = 'limit-entries'; + setting.initialize = function() { + return true; + }; + setting.toMetadata = function() { + return { + limit_entries: $scope.selected + }; + }; + $scope.parentWidget.settings.push(setting); + return $scope.deferred.resolve(setting); + }]); + + module.directive('settingLimitEntries', ["$templateCache", "ImpacWidgetsSvc", function($templateCache, ImpacWidgetsSvc) { + return { + restrict: 'A', + scope: { + parentWidget: '=', + deferred: '=', + selected: '=', + max: '=?', + options: '=?', + entriesLabel: '=?' + }, + link: function(scope, elements, attrs) { + if (!((scope.options != null) && scope.options.length > 0)) { + scope.options = [5, 15, 50]; + } + scope.selectOption = function(anOption) { + scope.selected = anOption; + return ImpacWidgetsSvc.updateWidgetSettings(scope.parentWidget, false); + }; + return scope.isOptionValid = function(anOption) { + return (scope.max == null) || anOption < scope.max; + }; + }, + controller: 'SettingLimitEntriesCtrl', + template: $templateCache.get('widgets-settings/limit-entries.tmpl.html') + }; + }]); + +}).call(this); + +(function() { + var module; + + module = angular.module('impac.components.widgets-settings.offsets', []); + + module.directive('settingOffsets', ["$templateCache", "ImpacUtilities", function($templateCache, ImpacUtilities) { + return { + restrict: 'A', + scope: { + parentWidget: '=', + deferred: '=', + offsetsKey: '@', + initialOffsets: '=', + currency: '=', + intervalsCount: '=', + period: '=', + showIntervalsMult: '=', + textPlaceholder: '@?' + }, + template: $templateCache.get('widgets-settings/offsets.tmpl.html'), + link: function(scope) { + var authorized_regex, computedFormula, placeholder, setting, w; + w = scope.parentWidget; + authorized_regex = new RegExp("^(\\{|\\d|\\}|\\/|\\+|-|\\*|\\(|\\)|\\s|\\.)*$"); + setting = { + key: "offsets-" + scope.offsetsKey + }; + setting.initialize = function() { + var i, len, offsetValue, ref; + scope.offsets = []; + ref = scope.initialOffsets || []; + for (i = 0, len = ref.length; i < len; i++) { + offsetValue = ref[i]; + scope.offsets.push(offsetValue); + } + scope.offsetFormula = ""; + scope.periodWord = ImpacUtilities.getPeriodWord(scope.period); + return scope.placeholder = placeholder(scope.period || 'MONTHLY'); + }; + setting.toMetadata = function() { + var metadata; + metadata = { + offset: {} + }; + metadata.offset[scope.offsetsKey] = scope.offsets; + return metadata; + }; + scope.addOffset = function() { + var result; + result = computedFormula(); + if (result) { + scope.offsets.push(result); + } + return scope.offsetFormula = ""; + }; + scope.removeOffset = function(offsetIndex) { + return scope.offsets.splice(offsetIndex, 1); + }; + scope.addOffsetOnEnter = function(event) { + if (event.keyCode === 13) { + return scope.addOffset(); + } + }; + placeholder = function(inputPeriod) { + var period; + if (scope.textPlaceholder != null) { + return scope.textPlaceholder; + } + period = inputPeriod.charAt(0).toUpperCase() + inputPeriod.slice(1).toLowerCase(); + return period + " adjustment"; + }; + computedFormula = function() { + if (scope.offsetFormula.match(authorized_regex)) { + return eval(scope.offsetFormula); + } + }; + if (w) { + w.settings.push(setting); + } + return scope.deferred.resolve(setting); + } + }; + }]); + +}).call(this); + +(function() { + var module; + + module = angular.module('impac.components.widgets-settings.organizations', []); + + module.controller('SettingOrganizationsCtrl', ["$scope", "$log", "ImpacDashboardsSvc", "ImpacMainSvc", "ImpacWidgetsSvc", function($scope, $log, ImpacDashboardsSvc, ImpacMainSvc, ImpacWidgetsSvc) { + var resetSelectedOrgs, setting, w; + w = $scope.parentWidget; + w.selectedOrganizations = {}; + $scope.mode || ($scope.mode = 'multiple'); + $scope.multiOrgMode = function() { + return $scope.mode === 'multiple'; + }; + $scope.singleOrgMode = function() { + return $scope.mode === 'single'; + }; + resetSelectedOrgs = function() { + return w.selectedOrganizations = _.mapValues(w.selectedOrganizations, function() { + return false; + }); + }; + $scope.isOrganizationSelected = function(orgUid) { + return !!w.selectedOrganizations[orgUid]; + }; + $scope.toggleSelectOrganization = function(orgUid) { + if ($scope.multiOrgMode()) { + w.selectedOrganizations[orgUid] = !w.selectedOrganizations[orgUid]; + if (angular.isDefined($scope.onSelect)) { + return $scope.onSelect({ + orgs: w.selectedOrganizations + }); + } + } else if ($scope.singleOrgMode()) { + resetSelectedOrgs(); + return w.selectedOrganizations[orgUid] = true; + } + }; + setting = {}; + setting.key = "organizations"; + setting.isInitialized = false; + setting.initialize = function() { + return ImpacDashboardsSvc.load().then(function(config) { + var currentDashboard, currentOrganization, forceReload, i, len, org, ref, widgetOrgIds; + currentDashboard = config.currentDashboard; + $scope.dashboardOrganizations = _.sortBy(currentDashboard.data_sources, function(org) { + return org.label.toLowerCase(); + }); + if (!((w.metadata != null) && (w.metadata.organization_ids != null))) { + return; + } + widgetOrgIds = w.metadata.organization_ids; + if ($scope.singleOrgMode()) { + resetSelectedOrgs(); + if (widgetOrgIds.length > 1) { + currentOrganization = ImpacMainSvc.config.currentOrganization; + w.selectedOrganizations[currentOrganization.uid] = true; + forceReload = true; + } else { + w.selectedOrganizations[widgetOrgIds[0]] = true; + } + } else if ($scope.multiOrgMode()) { + ref = $scope.dashboardOrganizations; + for (i = 0, len = ref.length; i < len; i++) { + org = ref[i]; + w.selectedOrganizations[org.uid] = _.contains(widgetOrgIds, org.uid); + } + } + setting.isInitialized = true; + if (forceReload) { + return ImpacWidgetsSvc.updateWidgetSettings(w, true); + } + }); + }; + setting.toMetadata = function() { + var newOrganizations; + newOrganizations = _.compact(_.map(w.selectedOrganizations, function(checked, uid) { + if (checked) { + return uid; + } + })); + if (_.isEmpty(newOrganizations)) { + newOrganizations = [_.first($scope.dashboardOrganizations).uid]; + } + return { + organization_ids: newOrganizations + }; + }; + w.settings.push(setting); + return $scope.deferred.resolve($scope.parentWidget); + }]); + + module.directive('settingOrganizations', ["$templateCache", function($templateCache) { + return { + restrict: 'A', + scope: { + parentWidget: '=', + mode: '@?', + deferred: '=', + onSelect: '&?' + }, + template: $templateCache.get('widgets-settings/organizations.tmpl.html'), + controller: 'SettingOrganizationsCtrl' + }; + }]); + +}).call(this); + +(function() { + var module; + + module = angular.module('impac.components.widgets-settings.param-selector', []); + + module.controller('SettingParamSelectorCtrl', ["$scope", "ImpacWidgetsSvc", function($scope, ImpacWidgetsSvc) { + var setting, w; + $scope.showOptions = false; + $scope.toggleShowOptions = function() { + return $scope.showOptions = !$scope.showOptions; + }; + $scope.onInit = function() { + $scope.selectedOption = {}; + return angular.extend($scope.selectedOption, $scope.selected); + }; + $scope.selectOption = function(anOption) { + if (anOption.value !== $scope.selected.value) { + angular.extend($scope.selected, anOption); + ImpacWidgetsSvc.updateWidgetSettings($scope.parentWidget, !$scope.noReload); + if (angular.isDefined($scope.onSelect)) { + $scope.onSelect(); + } + } + return $scope.toggleShowOptions(); + }; + $scope.getTruncateValue = function() { + return parseInt($scope.truncateNo) || 20; + }; + w = $scope.parentWidget; + setting = {}; + setting.key = "param-selector"; + setting.isInitialized = false; + setting.initialize = function() { + if (w.content != null) { + return setting.isInitialized = true; + } + }; + setting.toMetadata = function() { + var param; + param = {}; + if (!_.isEmpty($scope.selected)) { + param[$scope.param] = $scope.selected.value; + } + return param; + }; + w.settings.push(setting); + return $scope.deferred.resolve($scope.parentWidget); + }]); + + module.directive('settingParamSelector', ["$templateCache", function($templateCache) { + return { + restrict: 'A', + scope: { + parentWidget: '=', + deferred: '=', + param: '@', + options: '=', + selected: '=', + truncateNo: '@', + onSelect: '&' + }, + link: function(scope, elements, attrs) { + scope.noReload = typeof attrs.noReload !== 'undefined'; + return scope.truncateNo = attrs.truncateNo || 20; + }, + template: function(elements, attrs) { + return $templateCache.get(attrs.classic ? 'widgets-settings/param-selector-classic.tmpl.html' : 'widgets-settings/param-selector.tmpl.html'); + }, + controller: 'SettingParamSelectorCtrl' + }; + }]); + +}).call(this); + +(function() { + var module; + + module = angular.module('impac.components.widgets-settings.params-checkboxes', []); + + module.controller('SettingParamsCheckboxesCtrl', ["$scope", function($scope) { + var setting, w; + w = $scope.parentWidget; + setting = {}; + setting.key = "params-checkboxes"; + setting.initialize = function() {}; + setting.toMetadata = function() { + var param; + param = {}; + param[$scope.param] = _.map($scope.options, function(opt) { + return { + id: opt.id, + value: opt.value + }; + }); + return param; + }; + w.settings.push(setting); + return $scope.deferred.resolve($scope.parentWidget); + }]); + + module.directive('settingParamsCheckboxes', ["$templateCache", function($templateCache) { + return { + restrict: 'A', + scope: { + parentWidget: '=', + deferred: '=', + param: '@', + options: '=' + }, + template: $templateCache.get('widgets-settings/params-checkboxes.tmpl.html'), + controller: 'SettingParamsCheckboxesCtrl' + }; + }]); + +}).call(this); + +(function() { + var module; + + module = angular.module('impac.components.widgets-settings.params-picker', []); + + module.controller('SettingParamsPickerCtrl', ["$scope", function($scope) { + var setting, w; + w = $scope.parentWidget; + setting = {}; + setting.key = "params-picker"; + setting.isInitialized = false; + setting.initialize = function() { + $scope.sortableOptions = { + 'ui-floating': true, + tolerance: 'pointer' + }; + $scope.applyToDashboard = w.metadata[$scope.param] && w.metadata[$scope.param].reach === 'dashboard'; + $scope.toggleReach = function() { + return setting.reach = $scope.applyToDashboard ? 'dashboard' : 'widget'; + }; + $scope.toggleReach(); + if (_.isEmpty($scope.options)) { + return setting.isInitialized = true; + } + }; + setting.toMetadata = function() { + var param; + param = {}; + param[$scope.param] = { + values: _.compact(_.map($scope.options, function(statusOption) { + if (statusOption.selected) { + return statusOption.value || statusOption.label; + } + })), + reach: setting.reach + }; + return param; + }; + w.settings.push(setting); + return $scope.deferred.resolve($scope.parentWidget); + }]); + + module.directive('settingParamsPicker', ["$templateCache", "$translate", function($templateCache, $translate) { + return { + restrict: 'A', + scope: { + parentWidget: '=', + deferred: '=', + param: '@', + options: '=', + hasReach: '=', + description: '@' + }, + link: function(scope, elements, attrs) { + var paramText; + paramText = $translate.instant('impac.widget.settings.params-picker.' + scope.param); + scope.formattedParam = _.includes(paramText, 'impac.widget.settings.params-picker') ? scope.param.replace(/_/g, ' ') : paramText; + if (scope.description == null) { + return scope.description = $translate.instant('impac.widget.settings.params-picker.description'); + } + }, + template: $templateCache.get('widgets-settings/params-picker.tmpl.html'), + controller: 'SettingParamsPickerCtrl' + }; + }]); + +}).call(this); + +(function() { + var module; + + module = angular.module('impac.components.widgets-settings.payroll', []); + + module.controller('SettingPayrollCtrl', ["$scope", "ImpacDashboardsSvc", function($scope, ImpacDashboardsSvc) { + var setting, w; + w = $scope.parentWidget; + $scope.togglePayroll = function() { + $scope.selectedPayroll.enabled = !$scope.selectedPayroll.enabled; + if (!$scope.selectedPayroll.enabled) { + return $scope.selectedPayroll.time_logged = false; + } + }; + $scope.toggleTimeSheetModifier = function() { + if ($scope.selectedPayroll.enabled) { + return $scope.selectedPayroll.time_logged = !$scope.selectedPayroll.time_logged; + } + }; + $scope.isTogglePayroll = function() { + if ($scope.selectedPayroll != null) { + return $scope.selectedPayroll.enabled; + } + }; + $scope.isToggleTimeSheetModifier = function() { + if ($scope.selectedPayroll != null) { + return $scope.selectedPayroll.time_logged; + } + }; + setting = {}; + setting.key = "payroll"; + setting.isInitialized = false; + setting.initialize = function() { + return ImpacDashboardsSvc.load().then(function(config) { + var currentDashboard, payroll; + currentDashboard = config.currentDashboard; + $scope.selectedPayroll = { + enabled: false, + time_logged: false + }; + payroll = _.get(w, 'metadata.payroll'); + if (_.isPlainObject(payroll)) { + $scope.selectedPayroll = w.metadata.payroll; + } + return setting.isInitialized = true; + }); + }; + setting.toMetadata = function() { + return { + payroll: $scope.selectedPayroll + }; + }; + w.settings.push(setting); + return $scope.deferred.resolve($scope.parentWidget); + }]); + + module.directive('settingPayroll', ["$templateCache", function($templateCache) { + return { + restrict: 'A', + scope: { + parentWidget: '=', + mode: '@?', + deferred: '=', + onSelect: '&?' + }, + template: $templateCache.get('widgets-settings/payroll.tmpl.html'), + controller: 'SettingPayrollCtrl' + }; + }]); + +}).call(this); + +(function() { + var module; + + module = angular.module('impac.components.widgets-settings.source-selector', []); + + module.directive('settingSourceSelector', ["$templateCache", "$timeout", "ImpacMainSvc", "ImpacUtilities", "ImpacTheming", function($templateCache, $timeout, ImpacMainSvc, ImpacUtilities, ImpacTheming) { + return { + restrict: 'A', + scope: { + parentWidget: '=', + deferred: '=' + }, + template: $templateCache.get('widgets-settings/source-selector.tmpl.html'), + link: function(scope) { + var resetSelectedApps, retrieveAppInstances, setting, updateAppInstances, w; + w = scope.parentWidget; + scope.mode || (scope.mode = 'single'); + scope.singleOrgMode = function() { + return scope.mode === 'single'; + }; + scope.multiOrgMode = function() { + return scope.mode === 'multiple'; + }; + scope.selectedApps = {}; + setting = {}; + setting.key = "source-selector"; + setting.initialize = function() { + return $timeout(function() { + retrieveAppInstances(); + return true; + }); + }; + setting.toMetadata = function() { + var appInstanceId; + appInstanceId = _.compact(_.map(scope.selectedApps, function(checked, uid) { + if (uid === 'prm-records-only') { + return null; + } + if (checked) { + return uid; + } + })); + return { + app_instance_id: appInstanceId + }; + }; + resetSelectedApps = function() { + return scope.selectedApps = _.mapValues(scope.selectedApps, function() { + return false; + }); + }; + updateAppInstances = function(appInstances, primary) { + var valuesPresent; + valuesPresent = _.find(appInstances, function(hash) { + return hash.value === 'prm-records-only'; + }); + if (valuesPresent) { + return appInstances; + } else { + return appInstances.push(primary); + } + }; + retrieveAppInstances = function() { + var appInstances, primary; + appInstances = _.find(w.configOptions.selectors, function(selector) { + return selector.name === 'app_instances'; + }).options; + primary = { + 'value': 'prm-records-only', + 'label': 'Primary Only' + }; + if (appInstances) { + updateAppInstances(appInstances, primary); + } else { + appInstances = [primary]; + } + return scope.organizationApps = appInstances; + }; + scope.isApplicationSelected = function(app_uid) { + return !!scope.selectedApps[app_uid]; + }; + scope.toggleSelectApplication = function(app_uid) { + resetSelectedApps(); + return scope.selectedApps[app_uid] = true; + }; + w.settings.push(setting); + return scope.deferred.resolve(setting); + } + }; + }]); + +}).call(this); + +(function() { + var module; + + module = angular.module('impac.components.widgets-settings.tag-filter', ['ngTagsInput']); + + module.directive('settingTagFilter', ["$templateCache", "$timeout", function($templateCache, $timeout) { + return { + restrict: 'A', + scope: { + parentWidget: '=', + deferred: '=' + }, + template: $templateCache.get('widgets-settings/tag-filter.tmpl.html'), + link: function(scope) { + var asciiParseTag, filterToSettingTags, initiateAutoComplete, loadRules, setting, w; + w = scope.parentWidget; + setting = {}; + setting.key = "tag-filter"; + scope.settingsTags = []; + setting.initialize = function() { + return $timeout(function() { + loadRules(); + initiateAutoComplete(); + return true; + }); + }; + setting.toMetadata = function() { + var filterQuery, filterQueryRules; + filterQueryRules = []; + filterQuery = { + condition: 'OR', + rules: filterQueryRules + }; + angular.forEach(scope.settingsTags, function(settingsTag) { + var filterQueryCondition; + filterQueryCondition = { + condition: 'AND', + rules: [] + }; + angular.forEach(settingsTag.tags, function(filterItem) { + var ruleTag; + ruleTag = asciiParseTag(filterItem, true); + return filterQueryCondition.rules.push(ruleTag); + }); + if (settingsTag.tags.length !== 0) { + return filterQueryRules.push(filterQueryCondition); + } + }); + if (filterQuery.rules.length === 0) { + filterQuery = {}; + } + return { + filter_query: filterQuery + }; + }; + filterToSettingTags = function(filterQuery) { + var settingsTags; + if (_.isEmpty(filterQuery)) { + return; + } + settingsTags = []; + angular.forEach(filterQuery.rules, function(filterQueryRule) { + var settingRule; + settingRule = { + operator: 'OR', + tags: [] + }; + angular.forEach(filterQueryRule.rules, function(rule) { + var ruletag, tagtext; + rule = asciiParseTag(rule); + tagtext = _.compact([rule.name, rule.value]).join(":"); + ruletag = { + value: rule.value, + text: tagtext + }; + if (rule.name != null) { + ruletag.name = rule.name; + } + return settingRule.tags.push(ruletag); + }); + return settingsTags.push(settingRule); + }); + return settingsTags; + }; + loadRules = function() { + if (_.isEmpty(w.metadata.filter_query)) { + return; + } + return scope.settingsTags = filterToSettingTags(w.metadata.filter_query); + }; + initiateAutoComplete = function() { + var autotags, org, tag_hash, tags; + tags = w.content.available_tags || []; + autotags = []; + for (org in tags) { + tag_hash = tags[org]; + angular.forEach(tag_hash.tag_references, function(tag_ref) { + tag_ref = asciiParseTag(tag_ref); + return angular.forEach(tag_ref.tag_reference_values, function(tag) { + var ruletag, tagtext; + tag = asciiParseTag(tag); + tagtext = _.compact([tag_ref.name, tag.value]).join(":"); + ruletag = { + text: tagtext, + value: tag.value + }; + if (tag_ref.name != null) { + ruletag.name = tag_ref.name; + } + return autotags.push(ruletag); + }); + }); + } + return scope.loadTagList = function(query) { + return _.filter(autotags, function(e) { + return e.text.toLowerCase().indexOf(query.toLowerCase()) > -1; + }); + }; + }; + asciiParseTag = function(rule, encode) { + var meth; + if (encode == null) { + encode = false; + } + meth = encode ? encodeURIComponent : decodeURIComponent; + return _.inject(rule, function(res, v, k) { + if (_.isString(v)) { + return (res[k] = meth(v)) && res; + } else { + return (res[k] = v) && res; + } + }, {}); + }; + scope.addRule = function() { + return scope.settingsTags.push({ + 'operator': 'OR', + 'tags': [] + }); + }; + scope.delRule = function(index) { + return scope.settingsTags.splice(index, 1); + }; + w.settings.push(setting); + return scope.deferred.resolve(setting); + } + }; + }]); + +}).call(this); + +(function() { + var module; + + module = angular.module('impac.components.widgets-settings.time-period', []); + + module.directive('settingTimePeriod', ["$templateCache", "$q", "$log", "$timeout", "$filter", "ImpacTheming", "$translate", function($templateCache, $q, $log, $timeout, $filter, ImpacTheming, $translate) { + return { + restrict: 'A', + scope: { + parentWidget: '=', + deferred: '=', + histParams: '=?', + hideChartInterval: '=?', + applyChangesCallback: '&?' + }, + template: $templateCache.get('widgets-settings/time-period.tmpl.html'), + link: function(scope) { + var getPeriod, getSetting, getUsedSettingKey, initPeriod, initUsedSetting, settingsPromises, updateFromDate, updateTimeRangePeriod, w; + w = scope.parentWidget; + scope.timePeriodSetting = { + key: "time-period", + settings: [], + isEditMode: true + }; + scope.timeSliderDeferred = $q.defer(); + scope.datesPickerDeferred = $q.defer(); + scope.timePresetsDeferred = $q.defer(); + settingsPromises = [scope.timeSliderDeferred.promise, scope.datesPickerDeferred.promise, scope.timePresetsDeferred.promise]; + scope.resetPreset = $q.defer(); + $translate(["impac.widget.settings.time_period.period.daily", "impac.widget.settings.time_period.period.weekly", "impac.widget.settings.time_period.period.monthly", "impac.widget.settings.time_period.period.quarterly", "impac.widget.settings.time_period.period.yearly", "impac.widget.settings.time_period.period.days", "impac.widget.settings.time_period.period.weeks", "impac.widget.settings.time_period.period.months", "impac.widget.settings.time_period.period.quarters", "impac.widget.settings.time_period.period.years"]).then(function(translations) { + return scope.periods = [ + { + label: translations["impac.widget.settings.time_period.period.daily"], + plural: "days", + value: "DAILY" + }, { + label: translations["impac.widget.settings.time_period.period.weekly"], + plural: "weeks", + value: "WEEKLY" + }, { + label: translations["impac.widget.settings.time_period.period.monthly"], + plural: "months", + value: "MONTHLY" + }, { + label: translations["impac.widget.settings.time_period.period.quarterly"], + plural: "quarters", + value: "QUARTERLY" + }, { + label: translations["impac.widget.settings.time_period.period.yearly"], + plural: "years", + value: "YEARLY" + } + ]; + }); + scope.maxNumberOfPeriods = 20; + if ((ImpacTheming.get().widgetSettings != null) && (ImpacTheming.get().widgetSettings.timePeriod != null) && !_.isEmpty(ImpacTheming.get().widgetSettings.timePeriod.presets)) { + scope.presets = angular.copy(ImpacTheming.get().widgetSettings.timePeriod.presets); + } + scope.applyPreset = function(histParams) { + initPeriod(histParams); + return initUsedSetting(histParams); + }; + scope.timePeriodSetting.initialize = function() { + return $timeout(function() { + initPeriod(); + getSetting('time-presets').initialize(); + return scope.showApplyButton = angular.isDefined(scope.applyChangesCallback); + }); + }; + scope.timePeriodSetting.toMetadata = function() { + var histParams, metadata, sourceSetting; + sourceSetting = getSetting(getUsedSettingKey()); + if (sourceSetting != null) { + histParams = sourceSetting.toMetadata().hist_parameters; + } + histParams.period = getPeriod(); + if ((scope.histParams != null) && (scope.histParams.mode != null)) { + histParams.mode = scope.histParams.mode; + } + metadata = { + hist_parameters: histParams + }; + return metadata; + }; + scope.titleize = function(word) { + if (word !== "FYEARLY") { + return "" + (word.slice(0, 1).toUpperCase()) + (word.slice(1).toLowerCase()); + } else { + return "Yearly (financial)"; + } + }; + getPeriod = function() { + if (scope.timePeriodSetting.period != null) { + return scope.timePeriodSetting.period; + } else { + return initPeriod(); + } + }; + scope.isTimeSliderUsed = function() { + return getUsedSettingKey() === 'time-slider'; + }; + scope.isDatesPickerUsed = function() { + return getUsedSettingKey() === 'dates-picker'; + }; + getUsedSettingKey = function() { + if (scope.usedSetting != null) { + return scope.usedSetting; + } else { + return initUsedSetting(); + } + }; + getSetting = function(key) { + return _.find(scope.timePeriodSetting.settings, function(set) { + return set.key === key; + }); + }; + initPeriod = function(histParams) { + if (histParams == null) { + histParams = null; + } + if (histParams == null) { + histParams = scope.histParams; + } + if ((histParams != null) && (histParams.period != null) && _.find(scope.periods, function(period) { + return period.value === histParams.period; + })) { + scope.timePeriodSetting.period = angular.copy(histParams.period); + } else { + scope.timePeriodSetting.period = "MONTHLY"; + } + return scope.timePeriodSetting.period; + }; + initUsedSetting = function(histParams) { + var minDate, newLetter, pattern, tr; + if (histParams == null) { + histParams = null; + } + if (histParams == null) { + histParams = scope.histParams; + } + if ((histParams != null) && (histParams.from != null)) { + scope.usedSetting = 'dates-picker'; + scope.toDate = histParams.to; + minDate = scope.getMinDate(scope.toDate); + if (moment(histParams.from, "YYYY-MM-DD").isBefore(minDate)) { + scope.fromDate = minDate; + } else { + scope.fromDate = histParams.from; + } + scope.keepToday = histParams.keep_today; + getSetting('dates-picker').initialize(); + } else { + scope.usedSetting = 'time-slider'; + if ((histParams != null) && (histParams.time_range != null)) { + tr = histParams.time_range; + pattern = /([a-z])/; + newLetter = pattern.exec(tr)[1]; + scope.timePeriodSetting.period = angular.copy(_.find(scope.periods, function(p) { + return p.value.slice(0, 1).toLowerCase() === newLetter; + }).value); + scope.timePeriodSetting.timeRange = tr; + } + getSetting('time-slider').initialize(); + } + return scope.usedSetting; + }; + scope.updateSettings = function() { + if (scope.usedSetting === 'time-slider') { + scope.resetPreset.notify('choose-period'); + } else if (scope.usedSetting === 'dates-picker') { + scope.resetPreset.notify('choose-dates'); + } + updateTimeRangePeriod(); + return updateFromDate(); + }; + updateTimeRangePeriod = function() { + var periodLetter, set, tr; + if (scope.isTimeSliderUsed()) { + set = getSetting('time-slider'); + tr = set.toMetadata().hist_parameters.time_range; + periodLetter = getPeriod().slice(0, 1).toLowerCase(); + scope.timePeriodSetting.timeRange = tr.replace(/[a-z]/, periodLetter); + set.initialize(); + } + return scope.timePeriodSetting.timeRange; + }; + updateFromDate = function() { + var fromDate, minDate, set, toDate; + if (scope.isDatesPickerUsed()) { + set = getSetting('dates-picker'); + fromDate = set.toMetadata().hist_parameters.from; + toDate = set.toMetadata().hist_parameters.to; + minDate = scope.getMinDate(); + if (moment(fromDate, "YYYY-MM-DD").isBefore(minDate)) { + scope.toDate = toDate; + scope.fromDate = minDate; + set.initialize(); + } + } + return scope.fromDate; + }; + scope.useTimeSlider = function() { + scope.usedSetting = 'time-slider'; + return scope.updateSettings(); + }; + scope.useDatesPicker = function() { + scope.usedSetting = 'dates-picker'; + return scope.updateSettings(); + }; + scope.getMinDate = function(toDate) { + var currentPeriod, periodWord, sourceSetting, to; + if (toDate == null) { + toDate = void 0; + } + to = moment(); + if (toDate != null) { + to = moment(toDate, "YYYY-MM-DD"); + } else if ((scope.usedSetting != null) && scope.isDatesPickerUsed()) { + sourceSetting = getSetting('dates-picker'); + to = moment(sourceSetting.toMetadata().hist_parameters.to, "YYYY-MM-DD"); + } + currentPeriod = getPeriod(); + periodWord = _.find(scope.periods, function(period) { + return currentPeriod === period.value; + }).plural; + return to.subtract(scope.maxNumberOfPeriods, periodWord); + }; + scope.formattedMinDate = function(toDate) { + if (toDate == null) { + toDate = void 0; + } + return $filter('momentDate')(scope.getMinDate(toDate), 'time-period'); + }; + w.settings.push(scope.timePeriodSetting); + return $q.all(settingsPromises).then(function() { + return scope.deferred.resolve(scope.timePeriodSetting); + }); } }; - return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('widgetSalesNetSales', function() { - return { - restrict: 'A', - controller: 'WidgetSalesNetSalesCtrl' - }; - }); - }).call(this); (function() { var module; - module = angular.module('impac.components.widgets.sales-new-vs-existing-customers', []); + module = angular.module('impac.components.widgets-settings.time-presets', []); - module.controller('WidgetSalesNewVsExistingCustomersCtrl', ["$scope", "$q", "ChartFormatterSvc", "$filter", "$translate", function($scope, $q, ChartFormatterSvc, $filter, $translate) { - var daysTmpl, hoursTmpl, settingsPromises, w; - w = $scope.widget; - $scope.orgDeferred = $q.defer(); - $scope.timeRangeParamSelectorDeferred = $q.defer(); - $scope.displayTypeParamSelectorDeferred = $q.defer(); - $scope.chartDeferred = $q.defer(); - settingsPromises = [$scope.orgDeferred.promise, $scope.timeRangeParamSelectorDeferred.promise, $scope.displayTypeParamSelectorDeferred.promise, $scope.chartDeferred.promise]; - $scope.displayOptions = [ - { - label: $translate.instant('impac.widget.sales_new_vs_existing.customers'), - value: 'customers_count' - }, { - label: $translate.instant('impac.widget.sales_new_vs_existing.total_sales'), - value: 'total_sales' - }, { - label: $translate.instant('impac.widget.sales_new_vs_existing.transactions'), - value: 'transactions_count' - } - ]; - $scope.displayType = angular.copy(_.find($scope.displayOptions, function(o) { - return w.metadata && (o.value === w.metadata.display_type); - }) || $scope.displayOptions[0]); - hoursTmpl = $translate.instant('impac.widget.sales_new_vs_existing.tmpl.last_hours'); - daysTmpl = $translate.instant('impac.widget.sales_new_vs_existing.tmpl.last_days'); - $scope.timeRangeOptions = [ - { - label: hoursTmpl.replace(':hours:', 24), - value: '-1d' - }, { - label: daysTmpl.replace(':days:', 5), - value: '-5d' - }, { - label: daysTmpl.replace(':days:', 7), - value: '-7d' - }, { - label: daysTmpl.replace(':days:', 30), - value: '-30d' - }, { - label: daysTmpl.replace(':days:', 45), - value: '-45d' - }, { - label: daysTmpl.replace(':days:', 60), - value: '-60d' - }, { - label: daysTmpl.replace(':days:', 90), - value: '-90d' - } - ]; - $scope.timeRange = angular.copy(_.find($scope.timeRangeOptions, function(o) { - return w.metadata && (o.value === w.metadata.time_range); - }) || $scope.timeRangeOptions[6]); - w.initContext = function() { - return $scope.isDataFound = (w.content != null) && (w.content.summary != null) && (w.content.summary.customers_count != null) && (w.content.summary.customers_count.total != null) && w.content.summary.customers_count.total > 0; - }; - $scope.displayTypeOnClick = function() { - $scope.updateSettings(false); - return w.format(); - }; - $scope.getValue = function(key) { - var result, returnType; - if ($scope.isDataFound) { - returnType = $scope.displayType.value; - result = w.content.summary[returnType][key]; - switch (returnType) { - case 'total_sales': - return $filter('mnoCurrency')(result, w.metadata.currency); - default: - return result; + module.directive('settingTimePresets', ["$templateCache", "ImpacMainSvc", "$timeout", "ImpacUtilities", "ImpacTheming", "$translate", function($templateCache, ImpacMainSvc, $timeout, ImpacUtilities, ImpacTheming, $translate) { + return { + restrict: 'A', + scope: { + parentWidget: '=', + deferred: '=', + presets: '=?', + onSelect: '&?', + onChooseDates: '&?', + onChoosePeriod: '&?', + histParams: '=?', + resetPromise: '=?' + }, + template: $templateCache.get('widgets-settings/time-presets.tmpl.html'), + link: function(scope) { + var fyEndMonth, initPreset, showSlider, w; + w = scope.parentWidget; + scope.setting = {}; + scope.setting.key = "time-presets"; + scope.financialYearEndMonth = 6; + fyEndMonth = scope.financialYearEndMonth; + ImpacMainSvc.load().then(function() { + return fyEndMonth = ImpacMainSvc.getFinancialYearEndMonth(); + })["finally"](function() { + var fyStartDate, prevFyEndDate, prevFyStartDate, toDate; + fyStartDate = ImpacUtilities.financialYearDates(fyEndMonth).start; + prevFyStartDate = moment(ImpacUtilities.financialYearDates(fyEndMonth).start, 'YYYY-MM-DD').subtract(1, 'year').format('YYYY-MM-DD'); + prevFyEndDate = moment(ImpacUtilities.financialYearDates(fyEndMonth).end, 'YYYY-MM-DD').subtract(1, 'year').format('YYYY-MM-DD'); + toDate = moment().format('YYYY-MM-DD'); + return $translate(['impac.common.period.preset_in_words.calendar_year_to_date', 'impac.common.period.preset_in_words.financial_year_to_date', 'impac.common.period.preset_in_words.previous_financial_year', 'impac.common.period.preset_in_words.last_6_months', 'impac.common.period.preset_in_words.last_4_quarters', 'impac.common.period.preset_in_words.last_4_weeks', 'impac.common.period.preset_in_words.choose_period', 'impac.common.period.preset_in_words.choose_dates']).then(function(translations) { + scope.presets || (scope.presets = [ + { + label: translations['impac.common.period.preset_in_words.calendar_year_to_date'], + value: { + from: moment().startOf('year').format('YYYY-MM-DD'), + to: toDate, + period: 'MONTHLY' + } + }, { + label: translations['impac.common.period.preset_in_words.financial_year_to_date'], + value: { + from: fyStartDate, + to: toDate, + period: 'MONTHLY' + } + }, { + label: translations['impac.common.period.preset_in_words.previous_financial_year'], + value: { + from: prevFyStartDate, + to: prevFyEndDate, + period: 'MONTHLY' + } + }, { + label: translations['impac.common.period.preset_in_words.last_6_months'], + value: { + time_range: '-6m', + to: toDate + } + }, { + label: translations['impac.common.period.preset_in_words.last_4_quarters'], + value: { + time_range: '-4q', + to: toDate + } + }, { + label: translations['impac.common.period.preset_in_words.last_4_weeks'], + value: { + time_range: '-4w', + to: toDate + } + } + ]); + if (angular.isDefined(scope.onChooseDates) && showSlider()) { + scope.presets.unshift({ + label: translations['impac.common.period.preset_in_words.choose_period'], + value: 'choose-period' + }); + } + if (angular.isDefined(scope.onChooseDates)) { + return scope.presets.unshift({ + label: translations['impac.common.period.preset_in_words.choose_dates'], + value: 'choose-dates' + }); + } + }); + }); + if (scope.resetPromise != null) { + scope.resetPromise.then(null, null, function(key) { + return scope.selectedPreset = _.find(scope.presets, function(p) { + return p.value === key; + }); + }); } - } - }; - $scope.shouldDisplayCurrency = function() { - return $scope.isDataFound && $scope.displayType.value.indexOf('count') < 0; - }; - $scope.calculatePercentage = function(sliceType) { - var values; - values = { - "new": Math.abs(w.content.summary[$scope.displayType.value]["new"]), - existing: Math.abs(w.content.summary[$scope.displayType.value].existing) - }; - values.totals = values["new"] + values.existing; - return Math.round(values[sliceType] / values.totals * 100); - }; - $scope.drawTrigger = $q.defer(); - w.format = function() { - var chartData, pieData, pieOptions; - if ($scope.isDataFound) { - pieData = [ - { - label: "EXISTING " + ($scope.calculatePercentage('existing')) + "%", - value: w.content.summary[$scope.displayType.value].existing - }, { - label: "NEW " + ($scope.calculatePercentage('new')) + "%", - value: w.content.summary[$scope.displayType.value]["new"] + showSlider = function() { + return (ImpacTheming.get().widgetSettings != null) && (ImpacTheming.get().widgetSettings.timePeriod != null) && ImpacTheming.get().widgetSettings.timePeriod.showSlider; + }; + initPreset = function() { + if (scope.histParams != null) { + scope.selectedPreset = _.find(scope.presets, function(p) { + return _.every(p.value, function(v, k) { + return scope.histParams[k] === (angular.isFunction(v) ? v(fyEndMonth) : v); + }); + }); + if ((scope.selectedPreset == null) && (scope.histParams.time_range != null) && showSlider()) { + scope.selectedPreset = scope.presets[1]; + } + } + if (scope.selectedPreset == null) { + return scope.selectedPreset = scope.presets[0]; + } + }; + scope.presetSelected = function() { + if ((scope.selectedPreset != null) && (scope.selectedPreset.value === "choose-dates")) { + return scope.onChooseDates(); + } else if ((scope.selectedPreset != null) && (scope.selectedPreset.value === "choose-period")) { + return scope.onChoosePeriod(); + } else { + return scope.onSelect({ + histParams: scope.setting.toMetadata().hist_parameters + }); + } + }; + scope.setting.initialize = function() { + initPreset(); + scope.presetSelected(); + return true; + }; + scope.setting.toMetadata = function() { + var result; + result = {}; + if (!_.isEmpty(scope.selectedPreset.value)) { + _.forEach(scope.selectedPreset.value, function(value, key) { + if (angular.isFunction(value)) { + return result[key] = value(fyEndMonth); + } else { + return result[key] = value; + } + }); } - ]; - pieOptions = { - percentageInnerCutout: 50, - tooltipFontSize: 12 + return { + hist_parameters: result + }; }; - if (!$scope.shouldDisplayCurrency()) { - angular.merge(pieOptions, { - currency: 'hide' - }); - } - chartData = ChartFormatterSvc.pieChart(pieData, pieOptions, true); - return $scope.drawTrigger.notify(chartData); + w.settings.push(scope.setting); + return scope.deferred.resolve(scope.setting); } }; - return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('widgetSalesNewVsExistingCustomers', function() { - return { - restrict: 'A', - controller: 'WidgetSalesNewVsExistingCustomersCtrl' - }; - }); - }).call(this); (function() { var module; - module = angular.module('impac.components.widgets.sales-number-of-leads', []); + module = angular.module('impac.components.widgets-settings.time-slider', []); - module.controller('WidgetSalesNumberOfLeadsCtrl', ["$scope", "$q", "ChartFormatterSvc", "$filter", "$translate", function($scope, $q, ChartFormatterSvc, $filter, $translate) { - var getVariation, settingsPromises, w; - w = $scope.widget; - $scope.orgDeferred = $q.defer(); - $scope.paramSelectorDeferred = $q.defer(); - settingsPromises = [$scope.orgDeferred.promise, $scope.paramSelectorDeferred.promise]; - w.initContext = function() { - if ($scope.isDataFound = angular.isDefined(w.content) && !_.isEmpty(w.content.number_of_leads)) { - return $translate(['impac.widget.settings.time_period.period.year', 'impac.widget.settings.time_period.period.quarter', 'impac.widget.settings.time_period.period.month', 'impac.widget.settings.time_period.period.week', 'impac.widget.settings.time_period.period.day']).then(function(translations) { - $scope.periodOptions = [ - { - label: translations['impac.widget.settings.time_period.period.year'], - value: 'YEARLY' - }, { - label: translations['impac.widget.settings.time_period.period.quarter'], - value: 'QUARTERLY' - }, { - label: translations['impac.widget.settings.time_period.period.month'], - value: 'monthly' - }, { - label: translations['impac.widget.settings.time_period.period.week'], - value: 'WEEKLY' - }, { - label: translations['impac.widget.settings.time_period.period.day'], - value: 'DAILY' + module.directive('settingTimeSlider', ["$templateCache", "$timeout", "ImpacMainSvc", "ImpacUtilities", "ImpacTheming", function($templateCache, $timeout, ImpacMainSvc, ImpacUtilities, ImpacTheming) { + return { + restrict: 'A', + scope: { + parentWidget: '=', + deferred: '=', + timeRange: '=?', + onUse: '&?' + }, + template: $templateCache.get('widgets-settings/time-slider.tmpl.html'), + link: function(scope) { + var PERIODS, getNumberOfPeriods, getPeriod, getPeriodWord, getTimeRange, initFinancialYearEndMonth, initNumberOfPeriods, initPeriod, setting, w; + w = scope.parentWidget; + setting = {}; + setting.key = "time-slider"; + PERIODS = ['d', 'w', 'm', 'q', 'y', 'f']; + setting.initialize = function() { + return $timeout(function() { + initNumberOfPeriods(); + initPeriod(); + initFinancialYearEndMonth(); + return true; + }); + }; + setting.toMetadata = function() { + var histParams; + histParams = { + to: scope.toDate().format('YYYY-MM-DD'), + time_range: getTimeRange() + }; + if (getPeriod() === 'f') { + histParams.from = scope.fromDate().format('YYYY-MM-DD'); + } + return { + hist_parameters: histParams + }; + }; + initNumberOfPeriods = function() { + var n, nPattern, tr; + tr = scope.timeRange; + scope.numberOfPeriods = moment().month(); + if (tr == null) { + return scope.numberOfPeriods; + } + nPattern = /^-?([0-9]{1,2})[a-z]?$/; + n = nPattern.exec(tr); + if ((n != null) && n[1] && parseInt(n[1])) { + scope.numberOfPeriods = parseInt(n[1]); + } + return scope.numberOfPeriods; + }; + initPeriod = function() { + var p, pPattern, period, tr; + tr = scope.timeRange; + scope.period = "m"; + if (tr == null) { + return "m"; + } + pPattern = /^-?[0-9]{0,2}([a-z])$/; + p = pPattern.exec(tr); + period = _.find(PERIODS, function(authPeriod) { + return (p != null) && (p[1] === authPeriod); + }); + if (period != null) { + scope.period = period; + } + return scope.period; + }; + initFinancialYearEndMonth = function() { + scope.financialYearEndMonth = 6; + return ImpacMainSvc.load().then(function(config) { + if ((config != null) && (config.currentOrganization != null) && parseInt(config.currentOrganization.financial_year_end_month)) { + return scope.financialYearEndMonth = parseInt(config.currentOrganization.financial_year_end_month); } - ]; - return $scope.period = angular.copy(_.find($scope.periodOptions, function(o) { - return o.value === w.metadata.period; - }) || $scope.periodOptions[3]); - }); - } - }; - w.processError = function(error) { - if (error.code === 404) { - return $scope.isDataFound = false; - } - }; - $scope.formatNumberOfLeads = function(carac) { - var color, formattedNominal, formattedVariation, n_hash, nominal, variation; - formattedNominal = 0; - formattedVariation = "- %"; - if (!$scope.isDataFound) { - return { - nominal: formattedNominal, - variation: formattedVariation, - color: '' + }); }; - } - n_hash = angular.copy(w.content.number_of_leads); - nominal = 0; - color = ''; - if (carac === "new" && n_hash.total && n_hash.total.length === 2) { - nominal = n_hash.total[1] - n_hash.total[0]; - variation = getVariation(n_hash.total); - if (variation > 0) { - color = 'green'; - } else if (variation < 0) { - color = 'red'; - } - } else if (carac === "converted" && n_hash.converted && n_hash.converted.length === 2) { - nominal = n_hash.converted[1]; - variation = getVariation(n_hash.converted); - if (variation > 0) { - color = 'green'; - } else if (variation < 0) { - color = 'red'; - } - } else if (carac === "lost" && n_hash.lost && n_hash.lost.length === 2) { - nominal = n_hash.lost[1]; - variation = getVariation(n_hash.lost); - if (variation < 0) { - color = 'green'; - } else if (variation > 0) { - color = 'red'; - } - } else { - return { - nominal: formattedNominal, - variation: formattedVariation, - color: color + getPeriod = function() { + if (scope.period != null) { + return scope.period; + } else { + return initPeriod(); + } }; - } - if (nominal > 0) { - formattedNominal = "+" + nominal; - } else if (nominal < 0) { - formattedNominal = nominal; - } - if (variation && variation > 0) { - formattedVariation = "+" + (variation.toFixed(0)) + "%"; - } else if (variation && variation < 0) { - formattedVariation = (variation.toFixed(0)) + "%"; - } - return { - nominal: formattedNominal, - variation: formattedVariation, - color: color - }; - }; - getVariation = function(v_array) { - var variation; - if (v_array[0] !== 0) { - return variation = 100 * ((v_array[1] / v_array[0]) - 1); - } else { - return variation = "- "; + getPeriodWord = function() { + return ImpacUtilities.getPeriodWord(getPeriod()); + }; + getNumberOfPeriods = function() { + if (scope.numberOfPeriods != null) { + return scope.numberOfPeriods; + } else { + return initNumberOfPeriods(); + } + }; + getTimeRange = function() { + var n, p; + n = getNumberOfPeriods(); + p = getPeriod(); + return "-" + n + p; + }; + scope.formatPeriod = function() { + return ImpacUtilities.formatPeriod(getNumberOfPeriods(), getPeriod()); + }; + scope.fromDate = function() { + var financialYearStartYear, n, word; + n = getNumberOfPeriods(); + word = getPeriodWord(); + if (word.slice(0, 1) === "f") { + financialYearStartYear = moment().year() - 1; + if (moment().month() >= 6) { + financialYearStartYear = moment().year(); + } + financialYearStartYear = financialYearStartYear - n; + return moment(financialYearStartYear + "-" + (scope.financialYearEndMonth + 1) + "-01", "YYYY-M-DD"); + } else if (word.slice(0, 1) === "w") { + return moment().subtract(n, word).startOf('isoweek'); + } else { + return moment().subtract(n, word).startOf(word); + } + }; + scope.toDate = function() { + return moment(); + }; + w.settings.push(setting); + return scope.deferred.resolve(setting); } }; - return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('widgetSalesNumberOfLeads', function() { - return { - restrict: 'A', - controller: 'WidgetSalesNumberOfLeadsCtrl' - }; - }); - }).call(this); (function() { - var module, - indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }; + var module; - module = angular.module('impac.components.widgets.sales-opportunities-funnel', []); + module = angular.module('impac.components.widgets-settings.width', []); - module.controller('WidgetSalesOpportunitiesFunnelCtrl', ["$scope", "$q", "ChartFormatterSvc", "$filter", "ImpacWidgetsSvc", "ImpacDashboardsSvc", function($scope, $q, ChartFormatterSvc, $filter, ImpacWidgetsSvc, ImpacDashboardsSvc) { - var getFilteredTotal, getOrderedAssigneeIds, hasOneOpportunity, selectedStatusSetting, settingsPromises, sortData, sortOppsBy, w; - w = $scope.widget; - $scope.selectedOpportunities = []; - $scope.collapsed = []; - $scope.orgDeferred = $q.defer(); - $scope.paramsPickerDeferred1 = $q.defer(); - $scope.paramsPickerDeferred2 = $q.defer(); - $scope.widthDeferred = $q.defer(); - settingsPromises = [$scope.orgDeferred.promise, $scope.paramsPickerDeferred1.promise, $scope.paramsPickerDeferred2.promise, $scope.widthDeferred.promise]; - $scope.ascending = true; - $scope.sortedColumn = 'group'; - hasOneOpportunity = function(oppsPerSalesStage) { - var reducedHash, total, totalsArray; - reducedHash = _.mapValues(oppsPerSalesStage, function(statusHash) { - return statusHash.total; - }); - totalsArray = _.compact(_.values(reducedHash)); - total = _.reduce(totalsArray, function(total, n) { - if (total == null) { - total = 0; - } - return total + n; - }); - return (total != null) && total > 0; - }; - getFilteredTotal = function(opps, assignees) { - return _.reduce(opps, function(total, opp) { - var ref; - if (total == null) { - total = 0; - } - if (ref = opp.assignee_id, indexOf.call(assignees, ref) >= 0) { - return total + 1; - } else { - return total; - } - }, 0); - }; - getOrderedAssigneeIds = function(assigneesOptions) { - return _.map(_.filter(assigneesOptions, function(assigneeOption) { - return assigneeOption.selected; - }), 'value'); - }; - w.initContext = function() { - var assignees_selection, dhb, sales_stage_selection; - dhb = ImpacDashboardsSvc.getCurrentDashboard(); - sales_stage_selection = w.metadata.sales_stage_selection || dhb.metadata.sales_stage_selection || { - values: [] - }; - assignees_selection = w.metadata.assignees_selection || dhb.metadata.assignees_selection || { - values: [] - }; - if ($scope.isDataFound = angular.isDefined(w.content) && !_.isEmpty(w.content.opps_per_sales_stage) && hasOneOpportunity(w.content.opps_per_sales_stage)) { - _.remove(sales_stage_selection.values, function(status) { - return indexOf.call(_.keys(w.content.opps_per_sales_stage), status) < 0; - }); - $scope.hasReach = true; - $scope.statusOptions = []; - angular.forEach(w.content.opps_per_sales_stage, function(value, status) { - var isSelected; - isSelected = _.isEmpty(sales_stage_selection.values) || (indexOf.call(sales_stage_selection.values, status) >= 0); - return $scope.statusOptions.push({ - label: status, - selected: isSelected - }); - }); - if ($scope.statusOptions[0] && !_.any($scope.statusOptions, 'selected') && !_.isEmpty(w.content.opps_per_sales_stage)) { - $scope.statusOptions[0].selected = true; - } - $scope.assigneesOptions = []; - angular.forEach(w.content.assignees, function(obj, index) { - var isSelected, ref; - isSelected = _.isEmpty(assignees_selection.values) || (ref = obj.id, indexOf.call(assignees_selection.values, ref) >= 0); - return $scope.assigneesOptions.push({ - label: obj.name, - selected: isSelected, - value: obj.id - }); - }); - if ($scope.assigneesOptions[0] && !_.any($scope.assigneesOptions, 'selected') && !_.isEmpty(w.content.assignees)) { - return $scope.assigneesOptions[0].selected = true; - } - } - }; - w.processError = function(error) { - if (error.code === 404) { - return $scope.isDataFound = false; - } - }; - $scope.getImpacColor = function(index) { - return ChartFormatterSvc.getColor(index); - }; - $scope.toggleSelectStatus = function(aStatus) { - if ($scope.selectedStatus && $scope.selectedStatus === aStatus) { - $scope.selectedStatus = null; - } else { - $scope.selectedStatus = aStatus; - } - $scope.updateRightView(); - if (!w.isExpanded() && $scope.selectedStatus) { - return w.toggleExpanded(); - } else { - return ImpacWidgetsSvc.updateWidgetSettings(w, false, true); - } - }; - $scope.isSelected = function(aStatus) { - return $scope.selectedStatus && aStatus === $scope.selectedStatus; - }; - $scope.toggleCollapsed = function(element) { - if ((element != null) && (element.assigneeName != null)) { - if (_.find($scope.collapsed, (function(name) { - return element.assigneeName === name; - }))) { - return $scope.collapsed = _.reject($scope.collapsed, function(name) { - return name === element.assigneeName; - }); - } else { - return $scope.collapsed.push(element.assigneeName); - } - } - }; - $scope.isCollapsed = function(element) { - if ((element != null) && (element.assigneeName != null)) { - if (_.find($scope.collapsed, (function(name) { - return element.assigneeName === name; - }))) { - return true; - } else { - return false; - } - } - }; - $scope.getSelectedOpportunities = function() { - var assignees, filteredOpps, oppGroups, sortedOppGroups; - if ($scope.isDataFound && $scope.selectedStatus && w.content.opps_per_sales_stage[$scope.selectedStatus]) { - assignees = getOrderedAssigneeIds($scope.assigneesOptions); - filteredOpps = _.filter(w.content.opps_per_sales_stage[$scope.selectedStatus].opps, function(opportunity) { - var ref; - return ref = opportunity.assignee_id, indexOf.call(assignees, ref) >= 0; - }); - oppGroups = _.groupBy(filteredOpps, 'assignee_id'); - sortedOppGroups = []; - angular.forEach($scope.assigneesOptions, function(assigneeOption) { - var assigneeId; - assigneeId = assigneeOption.value; - if (oppGroups[assigneeId]) { - return sortedOppGroups.push({ - assigneeName: assigneeOption.label, - opps: oppGroups[assigneeId] - }); - } - }); - return sortedOppGroups; - } else { - return []; - } - }; - $scope.getOppDetails = function(anOpp) { - var oppDetails; - oppDetails = []; - if (anOpp.amount) { - oppDetails.push($filter('mnoCurrency')(anOpp.amount.amount, anOpp.amount.currency || 'AUD')); - } - if (anOpp.probability) { - oppDetails.push("prob. " + anOpp.probability + "%"); + module.controller('SettingWidthCtrl', ["$scope", "$element", "$timeout", "$log", "ImpacWidgetsSvc", "ImpacDashboardsSvc", function($scope, $element, $timeout, $log, ImpacWidgetsSvc, ImpacDashboardsSvc) { + var elem, hideOnResize, i, len, ref, setting, w; + w = $scope.parentWidget; + setting = {}; + setting.key = "width"; + setting.isInitialized = false; + ref = $element.parents(); + for (i = 0, len = ref.length; i < len; i++) { + elem = ref[i]; + if (angular.element(elem).hasClass('content')) { + $scope.contentElements = angular.element(elem).children(); + break; } - return oppDetails.join(' / '); - }; - $scope.getTotal = function(oppsGroup) { - var currency, total; - if (!(oppsGroup.length > 0)) { - return ""; + } + hideOnResize = function(elements) { + var j, len1; + if (!(elements && elements.length > 0)) { + return; } - total = _.sum(oppsGroup, function(o) { - var amount, proba; - amount = o.amount.amount || 0.0; - proba = o.probability || 0.0; - return amount * (proba / 100); - }); - currency = oppsGroup[0].amount.currency || 'AUD'; - return $filter('mnoCurrency')(total, currency); - }; - sortOppsBy = function(getElem) { - return angular.forEach($scope.selectedOpportunities, function(sElem) { - if (sElem.opps) { - return sElem.opps.sort(function(a, b) { - var res; - res = getElem(a) > getElem(b) ? 1 : getElem(a) < getElem(b) ? -1 : 0; - if (!$scope.ascending) { - res *= -1; - } - return res; - }); - } - }); - }; - sortData = function() { - if ($scope.sortedColumn === 'group') { - return sortOppsBy(function(el) { - return el.name; - }); - } else if ($scope.sortedColumn === 'total') { - return sortOppsBy(function(el) { - return el.amount.amount; - }); + for (j = 0, len1 = elements.length; j < len1; j++) { + elem = elements[j]; + angular.element(elem).animate({ + opacity: 0 + }, 0); } + return $timeout(function() { + var k, len2, results; + results = []; + for (k = 0, len2 = elements.length; k < len2; k++) { + elem = elements[k]; + results.push(angular.element(elem).animate({ + opacity: 1 + }, 200)); + } + return results; + }, 300); }; - $scope.sort = function(col) { - if ($scope.sortedColumn === col) { - $scope.ascending = !$scope.ascending; + w.toggleExpanded = function(save) { + if (save == null) { + save = true; + } + $scope.expanded = !$scope.expanded; + if (save) { + ImpacWidgetsSvc.updateWidgetSettings(w, false, true); + } + hideOnResize($scope.contentElements); + if ($scope.expanded) { + return w.width = parseInt($scope.max); } else { - $scope.ascending = true; - $scope.sortedColumn = col; + return w.width = parseInt($scope.min); } - return sortData(); }; - $scope.updateRightView = function() { - $scope.selectedOpportunities = $scope.getSelectedOpportunities(); - $scope.collapsed = []; - return sortData(); + w.isExpanded = function() { + return $scope.expanded; }; - selectedStatusSetting = {}; - selectedStatusSetting.initialized = false; - selectedStatusSetting.initialize = function() { - if (!_.isEmpty(w.content) && angular.isDefined(w.content.opps_per_sales_stage[w.metadata.selected_status])) { - $scope.selectedStatus = w.metadata.selected_status; + setting.initialize = function() { + if (w.width != null) { + $scope.expanded = w.width === parseInt($scope.max); + return setting.isInitialized = true; } - selectedStatusSetting.initialized = true; - return $scope.updateRightView(); }; - selectedStatusSetting.toMetadata = function() { + setting.toMetadata = function() { + var newWidth; + if ($scope.expanded) { + newWidth = $scope.max; + } else { + newWidth = $scope.min; + } return { - selected_status: $scope.selectedStatus + width: parseInt(newWidth) }; }; - w.settings.push(selectedStatusSetting); - w.format = function() { - var assignees, max; - if ($scope.isDataFound) { - max = 0; - assignees = getOrderedAssigneeIds($scope.assigneesOptions); - angular.forEach($scope.statusOptions, function(statusOption) { - var value; - value = getFilteredTotal(w.content.opps_per_sales_stage[statusOption.label].opps, assignees); - if (statusOption.selected && angular.isDefined(value) && value > max) { - return max = value; - } - }); - if (max > 0) { - return $scope.funnel = _.compact(_.map($scope.statusOptions, function(statusOption, index) { - var coloredWidth, statusWidth, value; - value = getFilteredTotal(w.content.opps_per_sales_stage[statusOption.label].opps, assignees); - coloredWidth = (100 * (value / max) - 10).toFixed(); - if (coloredWidth < 8) { - statusWidth = 92; - } else { - statusWidth = 100 - coloredWidth; - } - if (statusOption.selected && angular.isDefined(value) && value > 0) { - return { - status: statusOption.label, - number: value, - coloredWidth: { - width: coloredWidth + "%" - }, - statusWidth: { - width: statusWidth + "%" - } - }; - } - })); - } else { - return $scope.isDataFound = false; - } + ImpacDashboardsSvc.pdfModeEnabled().then(null, null, function() { + $scope.pdfMode = true; + $scope.initiallyExpanded = !!$scope.expanded; + if (!$scope.initiallyExpanded) { + return w.toggleExpanded(false); } - }; - return $scope.widgetDeferred.resolve(settingsPromises); + }); + ImpacDashboardsSvc.pdfModeCanceled().then(null, null, function() { + $scope.pdfMode = false; + if (!$scope.initiallyExpanded) { + return w.toggleExpanded(false); + } + }); + w.settings.push(setting); + return $scope.deferred.resolve($scope.parentWidget); }]); - module.directive('widgetSalesOpportunitiesFunnel', function() { + module.directive('settingWidth', ["$templateCache", function($templateCache) { return { restrict: 'A', - controller: 'WidgetSalesOpportunitiesFunnelCtrl' + scope: { + parentWidget: '=', + deferred: '=', + min: '@', + max: '@' + }, + template: $templateCache.get('widgets-settings/width.tmpl.html'), + controller: 'SettingWidthCtrl' }; - }); + }]); }).call(this); (function() { - var module, - indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }; + var module; - module = angular.module('impac.components.widgets.sales-performance', []); + module = angular.module('impac.components.widgets-layouts.accounts-cash-projection', []); - module.controller('WidgetSalesPerformanceCtrl', ["$scope", "$q", "$filter", "ChartFormatterSvc", "ImpacWidgetsSvc", function($scope, $q, $filter, ChartFormatterSvc, ImpacWidgetsSvc) { - var formatDate, getIdentifier, matchElementToSelectedElement, selectedElementsSetting, settingsPromises, w; + module.controller('WidgetAccountsCashProjectionCtrl', ["$scope", "$q", "$filter", "$timeout", "ImpacKpisSvc", "ImpacWidgetsSvc", "ImpacAssets", "HighchartsFactory", "BoltResources", "ImpacMainSvc", function($scope, $q, $filter, $timeout, ImpacKpisSvc, ImpacWidgetsSvc, ImpacAssets, HighchartsFactory, BoltResources, ImpacMainSvc) { + var createUser, dateFilter, extractEntityName, extractTrend, fetchUser, imgSrc, imgTemplate, legendFormatter, loadContacts, loadTrendsGroups, onClickBar, onClickLegend, onZoom, settingsPromises, todayUTC, updateLocked, w, zoomMetadata; w = $scope.widget; + todayUTC = moment().startOf('day').add(moment().utcOffset(), 'minutes'); + updateLocked = false; + zoomMetadata = {}; + w.metadata.ranges = ['-60d', '-30d']; + dateFilter = function(timestamp) { + var pickedDate; + pickedDate = moment.utc(timestamp); + if (pickedDate <= todayUTC) { + return "lte " + (pickedDate.format('YYYY-MM-DD')); + } else { + return pickedDate.format('YYYY-MM-DD'); + } + }; + imgSrc = function(name) { + return ImpacAssets.get(_.camelCase(name + 'LegendIcon')); + }; + imgTemplate = function(src, name) { + return "
" + name; + }; + extractEntityName = function(id, entities, type) { + var entity; + entity = _.find(entities, function(c) { + return c.id === id && (c.type = type); + }); + return entity.attributes.name; + }; + extractTrend = function(id, entities) { + var account_name, trend; + trend = _.find(entities, function(c) { + return c.id === id && c.type === 'trends'; + }); + if (trend.relationships && trend.relationships.account && trend.relationships.account.data) { + account_name = extractEntityName(trend.relationships.account.data.id, entities, 'accounts'); + } + return angular.merge(trend.attributes, { + id: id, + account_name: account_name || null + }); + }; + $scope.chartId = function() { + return "cashProjectionChart-" + w.id; + }; $scope.orgDeferred = $q.defer(); - $scope.paramsWinsPickerDeferred = $q.defer(); - $scope.paramsLostsPickerDeferred = $q.defer(); - $scope.timePeriodDeferred = $q.defer(); - $scope.widthDeferred = $q.defer(); - $scope.chartDeferred = $q.defer(); - settingsPromises = [$scope.orgDeferred.promise, $scope.paramsWinsPickerDeferred, $scope.paramsLostsPickerDeferred, $scope.timePeriodDeferred, $scope.widthDeferred.promise, $scope.chartDeferred.promise]; - w.initContext = function() { - var foundElem, i, len, ref, sElemId; - $scope.isDataFound = angular.isDefined(w.content) && !_.isEmpty(w.content.assignees); - if ($scope.isDataFound) { - if (!_.isEmpty(w.metadata.selectedElements)) { - $scope.selectedElements = []; - ref = w.metadata.selectedElements; - for (i = 0, len = ref.length; i < len; i++) { - sElemId = ref[i]; - foundElem = _.find(w.content.assignees, function(assignee) { - return getIdentifier(assignee) === sElemId; + $scope.sourceDeferred = $q.defer(); + settingsPromises = [$scope.orgDeferred.promise, $scope.sourceDeferred.promise]; + $scope.trxList = { + display: false, + updated: false, + transactions: [] + }; + $scope.sourceSelector = { + display: false + }; + $scope.contacts = []; + $scope.accounts = []; + $scope.trxList.show = function() { + return $scope.trxList.display = true; + }; + $scope.trxList.hide = function() { + $scope.trxList.display = false; + if ($scope.trxList.updated) { + return ImpacWidgetsSvc.show(w).then(function() { + return $scope.trxList.updated = false; + }); + } + }; + $scope.trxList.fetch = function(currentPage) { + var params; + if (currentPage == null) { + currentPage = 1; + } + params = angular.merge($scope.trxList.params, { + metadata: _.pick(w.metadata, 'organization_ids'), + page: { + number: currentPage + }, + sort: '-expected_payment_date', + currency: w.metadata.currency + }); + return BoltResources.index(w.metadata.bolt_path, $scope.trxList.resources, params).then(function(response) { + var contact, contactName, i, len, ref, trx; + _.remove($scope.trxList.transactions, function() { + return true; + }); + ref = response.data.data; + for (i = 0, len = ref.length; i < len; i++) { + trx = ref[i]; + contactName = ''; + if (trx.relationships && trx.relationships.contact && trx.relationships.contact.data) { + contact = _.find(response.data.included, function(includedContact) { + return includedContact.id === trx.relationships.contact.data.id; }); - if (foundElem) { - $scope.selectedElements.push(foundElem); + if (contact != null) { + contact.name = contactName = contact.attributes.name; } } + $scope.trxList.transactions.push(angular.merge(trx.attributes, { + id: trx.id, + contact: contact, + contact_name: contactName + })); } - $scope.hasReach = true; - $scope.closedWonOptions = _.compact(_.map(w.content.sales_stages.won, function(stage) { - return { - label: stage, - selected: true - }; - })); - angular.forEach(w.content.sales_stages.all, function(stage) { - if (!(indexOf.call(w.content.sales_stages.won, stage) >= 0)) { - return $scope.closedWonOptions.push({ - label: stage, - selected: false - }); - } - }); - $scope.closedLostOptions = _.compact(_.map(w.content.sales_stages.lost, function(stage) { - return { - label: stage, - selected: true - }; - })); - return angular.forEach(w.content.sales_stages.all, function(stage) { - if (!(indexOf.call(w.content.sales_stages.lost, stage) >= 0)) { - return $scope.closedLostOptions.push({ - label: stage, - selected: false - }); - } - }); - } + return $scope.trxList.totalRecords = response.data.meta.record_count; + })["finally"](function() { + return $scope.trxList.show(); + }); + }; + $scope.trxList.updateParams = function(resources, filter) { + $scope.trxList.resources = resources; + return $scope.trxList.params = { + include: 'contact', + fields: { + contacts: 'name' + }, + filter: filter + }; }; - w.processError = function(error) { - if (error.code === 404) { - return $scope.isDataFound = false; + $scope.trxList.showAll = function(resources) { + var appUid, filter; + if (resources == null) { + resources = 'invoices'; } + if ($scope.widget.metadata.app_instance_id) { + appUid = $scope.widget.metadata.app_instance_id[0]; + } + filter = { + status: ['AUTHORISED', 'APPROVED', 'SUBMITTED', 'FORECAST'], + reconciliation_status: 'UNRECONCILED', + 'app_instance.id': appUid + }; + $scope.trxList.updateParams(resources, filter); + return $scope.trxList.fetch(); }; - $scope.getChartTitle = function(el) { - if ($scope.selectedElements) { - return $scope.selectedElements.map(function(el) { - return el.name; - }).join(', '); + $scope.trxList.changeQuery = function(query) { + $scope.trxList.params.filter.query_data = query; + return $scope.trxList.fetch(); + }; + $scope.trxList.updateExpectedDate = function(trxId, date) { + return BoltResources.update(w.metadata.bolt_path, $scope.trxList.resources, trxId, { + expected_payment_date: moment(date).format('YYYY-MM-DD') + }).then(function() { + return $scope.trxList.updated = true; + }); + }; + $scope.trxList.changeResourcesType = function(resourcesType) { + if (resourcesType === $scope.trxList.resources) { + return; } + $scope.trxList.resources = resourcesType; + return $scope.trxList.fetch(); }; - $scope.getTotalWon = function(el) { - if ($scope.selectedElements) { - return $scope.selectedElements.reduce((function(t, e) { - return t + e.total_won; - }), 0); - } else { - return 0; + $scope.trxList.deleteTransaction = function(resourcesType, trxId) { + return BoltResources.destroy(w.metadata.bolt_path, resourcesType, trxId).then(function() { + return $scope.trxList.updated = true; + }); + }; + $scope.trxList.updateSchedulableTransactions = function(resourcesType, trx) { + return $scope.trxList.updated = true; + }; + $scope.trxList.deleteChildrenTransactions = function(resourcesType, trxId) { + return BoltResources.update(w.metadata.bolt_path, resourcesType, trxId, { + recurring: false + }).then(function() { + return $scope.trxList.updated = true; + }); + }; + $scope.trendList = { + display: false, + updated: false, + trends: [], + params: { + include: 'trends,trends.account' } }; - formatDate = function(date) { - var period; - period = (w.metadata != null) && (w.metadata.hist_parameters != null) ? w.metadata.hist_parameters.period : null; - return $filter('momentDate')(date, period); + $scope.trendList.show = function() { + return $scope.trendList.display = true; }; - $scope.getCloseDate = function(anOpp) { - var theDate; - if ((anOpp != null) && (anOpp.sales_stage_changes != null) && anOpp.sales_stage_changes.length > 0) { - theDate = anOpp.sales_stage_changes[anOpp.sales_stage_changes.length - 1].updated_at; - if (theDate.split(' ').length > 0) { - theDate = theDate.split(' ')[0]; - return formatDate(theDate); - } + $scope.trendList.hide = function() { + $scope.trendList.display = false; + if ($scope.trendList.updated) { + return ImpacWidgetsSvc.show(w).then(function() { + return $scope.trendList.updated = false; + }); } }; - $scope.getForecastCloseDate = function(anOpp) { - var theDate; - if ((anOpp != null) && anOpp.expected_close_date) { - theDate = anOpp.expected_close_date; - if (theDate.split(' ').length > 0) { - theDate = theDate.split(' ')[0]; - return formatDate(theDate); + $scope.trendList.fetch = function(currentPage) { + var params; + if (currentPage == null) { + currentPage = 1; + } + params = angular.merge($scope.trendList.params, { + metadata: _.pick(w.metadata, 'organization_ids'), + page: { + number: currentPage + } + }); + return BoltResources.index(w.metadata.bolt_path, 'trends_groups', params).then(function(response) { + var group, i, j, len, len1, ref, ref1, trend, trends; + _.remove($scope.trendList.trends, function() { + return true; + }); + ref = response.data.data; + for (i = 0, len = ref.length; i < len; i++) { + group = ref[i]; + trends = []; + if (group.relationships && group.relationships.trends && group.relationships.trends.data) { + ref1 = group.relationships.trends.data; + for (j = 0, len1 = ref1.length; j < len1; j++) { + trend = ref1[j]; + trends.push(extractTrend(trend.id, response.data.included)); + } + } + $scope.trendList.trends.push(angular.merge(group.attributes, { + id: group.id, + trends: trends + })); } + return $scope.trendList.totalRecords = response.data.meta.record_count; + })["finally"](function() { + return $scope.trendList.show(); + }); + }; + $scope.trendList.showAll = function() { + return $scope.trendList.fetch(); + }; + $scope.trendList.updateTrend = function(trend) { + return BoltResources.update(w.metadata.bolt_path, 'trends', trend.id, _.omit(trend, 'id', 'account_name')).then(function() { + return $scope.trendList.updated = true; + }); + }; + $scope.trendList["delete"] = function(entityId, resource) { + return BoltResources.destroy(w.metadata.bolt_path, resource, entityId).then(function() { + return $scope.trendList.updated = true; + }); + }; + $scope.accountsAverageBalances = function(widget) { + return _.find(widget.configOptions.selectors, function(selector) { + return selector.name === 'accounts_average_balance'; + }).options; + }; + $scope.chartDeferred = $q.defer(); + $scope.chartPromise = $scope.chartDeferred.promise; + $scope.addForecastPopup = { + resourcesType: 'invoices', + display: false, + hide: function() { + return this.display = false; + }, + show: function() { + return this.display = true; } }; - $scope.getElementChartColor = function(index) { - return ChartFormatterSvc.getColor(index); + $scope.addForecastPopup.createTransaction = function(trx, resourcesType) { + return BoltResources.create(w.metadata.bolt_path, resourcesType, { + title: trx.title, + transaction_number: "FOR-" + (Math.ceil(Math.random() * 10000)), + amount: trx.amount, + balance: trx.amount, + transaction_date: moment().format('YYYY-MM-DD'), + due_date: moment(trx.datePicker.date).format('YYYY-MM-DD'), + status: 'FORECAST', + recurring: trx.recurring, + recurring_pattern: trx.recurring_pattern, + recurring_end_date: trx.recurring_end_date ? moment(trx.recurring_end_date).format('YYYY-MM-DD') : null, + reconciliation_status: 'UNRECONCILED', + currency: w.metadata.currency + }, { + company: { + data: { + type: 'companies', + id: $scope.firstCompanyId + } + }, + contact: { + data: { + type: 'contacts', + id: trx.contact.id + } + } + }).then(function() { + return ImpacWidgetsSvc.show(w); + }); }; - $scope.no_sales_stages_selected = function() { - return w.content && w.content.sales_stages && w.content.sales_stages.won.length === 0 && w.content.sales_stages.lost.length === 0; + $scope.dupTrxList = { + display: false, + updated: false, + transactions: [] }; - $scope.toggleSelectedElement = function(element) { - var selectedElement; - if ($scope.isSelected(element)) { - $scope.selectedElements = _.reject($scope.selectedElements, function(sElem) { - return matchElementToSelectedElement(element, sElem); + $scope.dupTrxList.show = function() { + return $scope.dupTrxList.display = true; + }; + $scope.dupTrxList.hide = function() { + $scope.dupTrxList.display = false; + if ($scope.dupTrxList.updated) { + return ImpacWidgetsSvc.show(w).then(function() { + return $scope.dupTrxList.updated = false; }); - w.format(); - if (w.isExpanded() && $scope.selectedElements.length === 0) { - return w.toggleExpanded(); - } else { - return ImpacWidgetsSvc.updateWidgetSettings(w, false, true); + } + }; + $scope.dupTrxList.fetch = function(currentPage) { + var params; + if (currentPage == null) { + currentPage = 1; + } + params = angular.merge($scope.dupTrxList.params, { + metadata: _.pick(w.metadata, 'organization_ids'), + page: { + number: currentPage } - } else { - selectedElement = angular.copy(element); - $scope.selectedElements || ($scope.selectedElements = []); - $scope.selectedElements.push(selectedElement); - w.format(); - if (!w.isExpanded()) { - return w.toggleExpanded(); - } else { - return ImpacWidgetsSvc.updateWidgetSettings(w, false, true); + }); + return BoltResources.index(w.metadata.bolt_path, $scope.dupTrxList.resources, params).then(function(response) { + var i, len, ref, trx; + _.remove($scope.dupTrxList.transactions, function() { + return true; + }); + ref = response.data.data; + for (i = 0, len = ref.length; i < len; i++) { + trx = ref[i]; + $scope.dupTrxList.transactions.push(angular.merge(trx.attributes, { + id: trx.id + })); } + return $scope.dupTrxList.totalRecords = response.data.meta.record_count; + })["finally"](function() { + return $scope.dupTrxList.show(); + }); + }; + $scope.dupTrxList.updateParams = function(resources, filter) { + $scope.dupTrxList.resources = resources; + return $scope.dupTrxList.params = { + filter: filter + }; + }; + $scope.dupTrxList.showAll = function(resources) { + var filter; + if (resources == null) { + resources = 'invoices'; } + filter = { + status: ['FORECAST'], + reconciliation_status: 'RECONCILING' + }; + if (w.metadata.app_instance_id) { + filter['app_instance.id'] = w.metadata.app_instance_id[0]; + } + $scope.dupTrxList.updateParams(resources, filter); + return $scope.dupTrxList.fetch(); }; - $scope.isSelected = function(element) { - return (element != null) && _.any($scope.selectedElements, function(sElem) { - return matchElementToSelectedElement(element, sElem); + $scope.dupTrxList.updateDuplicateTransaction = function(dupTrxId, action) { + _.remove($scope.dupTrxList.transactions, function(dupTrx) { + return dupTrx.id === dupTrxId; + }); + return BoltResources.patch(w.metadata.bolt_path, $scope.dupTrxList.resources, dupTrxId, action).then(function() { + return $scope.dupTrxList.updated = true; }); }; - $scope.hasElements = function() { - return ($scope.selectedElements != null) && $scope.selectedElements.length > 0; - }; - $scope.getSelectLineColor = function(element) { - var sElem; - sElem = _.find($scope.selectedElements, function(sElem) { - return matchElementToSelectedElement(element, sElem); - }); - if ($scope.hasElements()) { - return ChartFormatterSvc.getColor(_.indexOf($scope.selectedElements, sElem)); + $scope.dupTrxList.changeResourcesType = function(resourcesType) { + if (resourcesType === $scope.dupTrxList.resources) { + return; } + $scope.dupTrxList.resources = resourcesType; + return $scope.dupTrxList.fetch(); }; - matchElementToSelectedElement = function(element, sElem) { - return getIdentifier(element) === getIdentifier(sElem); - }; - getIdentifier = function(element) { - return element.id || element.name; + $scope.addTrendPopup = { + display: false, + show: function() { + return this.display = true; + }, + hide: function() { + return this.display = false; + } }; - $scope.drawTrigger = $q.defer(); - w.format = function() { - var all_values_are_positive, chartData, inputData, options; - if ($scope.isDataFound && ($scope.selectedElements != null) && $scope.selectedElements.length > 0) { - inputData = []; - all_values_are_positive = true; - angular.forEach($scope.selectedElements, function(sElem) { - var data, dates, period; - data = angular.copy(sElem); - period = null; - if ((w.metadata != null) && (w.metadata.hist_parameters != null)) { - period = w.metadata.hist_parameters.period; + $scope.addTrendPopup.createTrend = function(trend) { + var relations; + relations = { + user: { + data: { + type: 'users', + id: $scope.userId + } + }, + trends_group: { + data: { + type: 'trends_groups', + id: trend.trends_group_id + } + } + }; + if (trend.account_id) { + relations['account'] = { + data: { + type: 'accounts', + id: trend.account_id } - dates = _.map(w.content.dates, function(date) { - return $filter('momentDate')(date, period); - }); - inputData.push({ - title: data.name, - labels: dates, - values: data.totals - }); - return angular.forEach(data.totals, function(value) { - return all_values_are_positive && (all_values_are_positive = value >= 0); - }); - }); - options = { - scaleBeginAtZero: all_values_are_positive, - showXLabels: true, - datasetFill: $scope.selectedElements.length === 1, - pointDot: $scope.selectedElements.length === 1 }; - chartData = ChartFormatterSvc.lineChart(inputData, options); - return $scope.drawTrigger.notify(chartData); } + return BoltResources.create(w.metadata.bolt_path, 'trends', { + name: trend.name, + rate: trend.rate, + period: trend.period, + start_date: trend.startDate, + last_apply_date: trend.untilDate, + description: trend.description, + account_class: trend.account_class + }, relations).then(function() { + return ImpacWidgetsSvc.show(w); + }); }; - selectedElementsSetting = { - initialized: false + onClickBar = function(event) { + var filter, resources, series; + series = this; + resources = (function() { + switch (series.userOptions.stack) { + case 'Payables': + return 'bills'; + case 'Receivables': + return 'invoices'; + } + })(); + if (resources == null) { + return; + } + filter = { + expected_payment_date: dateFilter(event.point.x), + status: ['AUTHORISED', 'APPROVED', 'SUBMITTED', 'FORECAST'], + reconciliation_status: 'UNRECONCILED' + }; + $scope.trxList.updateParams(resources, filter); + return $scope.trxList.fetch(); }; - selectedElementsSetting.initialize = function() { - return selectedElementsSetting.initialized = true; + legendFormatter = function() { + var img, name; + name = this.name; + img = imgSrc(name); + if (!img) { + return name; + } + if (name !== 'Projected cash') { + return imgTemplate(img, name); + } + return imgTemplate(img, name) + '
' + imgTemplate(imgSrc('cashFlow'), 'Cash flow'); }; - selectedElementsSetting.toMetadata = function() { - var selectedElementsMetadata; - selectedElementsMetadata = _.map($scope.selectedElements, function(sElem) { - return getIdentifier(sElem); + onZoom = function(event) { + zoomMetadata = angular.merge(w.metadata, { + xAxis: { + max: event.max, + min: event.min + } }); - return { - selectedElements: selectedElementsMetadata - }; - }; - w.settings.push(selectedElementsSetting); - return $scope.widgetDeferred.resolve(settingsPromises); - }]); - - module.directive('widgetSalesPerformance', function() { - return { - restrict: 'A', - controller: 'WidgetSalesPerformanceCtrl' + if (!updateLocked) { + updateLocked = true; + return $timeout(function() { + return ImpacWidgetsSvc.update(w, { + metadata: zoomMetadata + }, false)["finally"](function() { + return updateLocked = false; + }); + }, 1000); + } }; - }); - -}).call(this); - -(function() { - var module; - - module = angular.module('impac.components.widgets.sales-segmented-turnover', []); - - module.controller('WidgetSalesSegmentedTurnoverCtrl', ["$scope", "$q", "$filter", "ChartFormatterSvc", "$translate", function($scope, $q, $filter, ChartFormatterSvc, $translate) { - var settingsPromises, w; - w = $scope.widget; - $scope.orgDeferred = $q.defer(); - $scope.timePeriodDeferred = $q.defer(); - $scope.widthDeferred = $q.defer(); - $scope.paramSelectorDeferred = $q.defer(); - $scope.chartDeferred = $q.defer(); - settingsPromises = [$scope.orgDeferred.promise, $scope.timePeriodDeferred.promise, $scope.widthDeferred.promise, $scope.paramSelectorDeferred.promise, $scope.chartDeferred.promise]; - w.initContext = function() { - if ($scope.isDataFound = !_.isEmpty(w.content) && !_.isEmpty(w.content.dates) && !_.isEmpty(w.content.ranges)) { - $scope.filterOptions = [ - { - label: $translate.instant('impac.widget.sales_turnover.gross_revenue'), - value: 'gross' - }, { - label: $translate.instant('impac.widget.sales_turnover.net_revenue'), - value: 'net' - } - ]; - $scope.filter = angular.copy(_.find($scope.filterOptions, function(o) { - return o.value === w.content.filter; - }) || $scope.filterOptions[0]); - if (w.content.ranges[0].percentage + w.content.ranges[1].percentage > 50) { - return $scope.analysisTranslate = $translate.instant('impac.widget.sales_turnover.analysis.least'); - } else if (w.content.ranges[3].percentage + w.content.ranges[4].percentage > 50) { - return $scope.analysisTranslate = $translate.instant('impac.widget.sales_turnover.analysis.most'); + onClickLegend = function() { + var i, len, ref, results, s, series; + series = this; + ref = $scope.chart.hc.series; + results = []; + for (i = 0, len = ref.length; i < len; i++) { + s = ref[i]; + if (s.userOptions.linkedTo !== series.name) { + continue; + } + if (series.visible) { + results.push(s.hide()); } else { - return $scope.analysisTranslate = $translate.instant('impac.widget.sales_turnover.analysis.balanced'); + results.push(s.show()); } } + return results; }; - $scope.getColorByIndex = function(index) { - return ChartFormatterSvc.getColor(index); - }; - $scope.getRangeLabel = function(aLabel, ISOmode) { - var prices; - if (ISOmode == null) { - ISOmode = false; - } - prices = aLabel.split('-'); - return _.map(prices, function(price) { - return $filter('mnoCurrency')(price, w.content.currency, ISOmode); - }).join(' - '); + loadContacts = function() { + return BoltResources.index(w.metadata.bolt_path, 'contacts', { + metadata: _.pick(w.metadata, 'organization_ids') + }).then(function(response) { + return $scope.contacts = response.data.data; + }); }; - $scope.getMaxRange = function() { - var max, maxRange; - if ($scope.isDataFound) { - max = 0; - maxRange = w.content.ranges[0]; - angular.forEach(w.content.ranges, function(range) { - if (range.percentage > max) { - maxRange = angular.copy(range); - } - return max = Math.max(max, range.percentage); - }); - return maxRange; - } + loadTrendsGroups = function() { + return BoltResources.index(w.metadata.bolt_path, 'trends_groups', { + metadata: _.pick(w.metadata, 'organization_ids'), + fields: { + trends_groups: 'name' + } + }).then(function(response) { + return $scope.trendsGroups = response.data.data; + }); }; - $scope.drawTrigger = $q.defer(); - w.format = function() { - var barData, barOptions, chartData; - if ($scope.isDataFound) { - barData = { - labels: _.map(w.content.ranges, function(elem) { - return $scope.getRangeLabel(elem.label, true); - }), - values: _.map(w.content.ranges, function(elem) { - return elem.value; - }) - }; - barOptions = { - showTooltips: false, - showXLabels: false, - barDatasetSpacing: 15 - }; - chartData = ChartFormatterSvc.barChart(barData, barOptions); - return $scope.drawTrigger.notify(chartData); + createUser = function() { + if ($scope.firstCompanyId) { + return BoltResources.create(w.metadata.bolt_path, 'users', { + first_name: ImpacMainSvc.config.userData.name, + last_name: ImpacMainSvc.config.userData.surname, + email: ImpacMainSvc.config.userData.email + }, { + companies: { + data: [ + { + type: 'companies', + id: $scope.firstCompanyId + } + ] + } + }).then(function(response) { + return $scope.userId = response.data.data.id; + }); } }; - return $scope.widgetDeferred.resolve(settingsPromises); - }]); - - module.directive('widgetSalesSegmentedTurnover', function() { - return { - restrict: 'A', - controller: 'WidgetSalesSegmentedTurnoverCtrl' + fetchUser = function() { + return BoltResources.index(w.metadata.bolt_path, 'users', { + filter: { + email: ImpacMainSvc.config.userData.email + }, + metadata: _.pick(w.metadata, 'organization_ids') + }).then(function(response) { + if (response.data.meta.record_count > 0) { + return $scope.userId = response.data.data[0].id; + } else { + return createUser(); + } + }); }; - }); - -}).call(this); - -(function() { - var module; - - module = angular.module('impac.components.widgets.sales-summary', []); - - module.controller('WidgetSalesSummaryCtrl', ["$scope", "$q", "ChartFormatterSvc", "$translate", function($scope, $q, ChartFormatterSvc, $translate) { - var settingsPromises, w; - w = $scope.widget; - $scope.orgDeferred = $q.defer(); - $scope.chartFiltersDeferred = $q.defer(); - $scope.paramSelectorDeferred = $q.defer(); - $scope.datesPickerDeferred = $q.defer(); - $scope.chartDeferred = $q.defer(); - settingsPromises = [$scope.orgDeferred.promise, $scope.chartFiltersDeferred.promise, $scope.paramSelectorDeferred.promise, $scope.datesPickerDeferred.promise, $scope.chartDeferred.promise]; - $scope.datesPickerTemplate = "" + $translate.instant('impac.widget.sales_summary.to') + " "; w.initContext = function() { - $scope.isDataFound = !_.isEmpty(w.content) && !_.isEmpty(w.content.summary) && (_.sum(_.map(w.content.summary, function(s) { - return s.total; - })) > 0); - if ($scope.isDataFound) { - $scope.filterOptions = [ - { - label: $translate.instant('impac.widget.sales_summary.value_sold_taxes'), - value: 'gross_value_sold' - }, { - label: $translate.instant('impac.widget.sales_summary.value_sold_no_taxes'), - value: 'net_value_sold' - }, { - label: $translate.instant('impac.widget.sales_summary.quantity_sold'), - value: 'quantity_sold' - }, { - label: $translate.instant('impac.widget.sales_summary.value_purchased_taxes'), - value: 'gross_value_purchased' - }, { - label: $translate.instant('impac.widget.sales_summary.value_purchased_no_taxes'), - value: 'net_value_purchased' - }, { - label: $translate.instant('impac.widget.sales_summary.quantity_purchased'), - value: 'quantity_purchased' - } - ]; - if (w.metadata.criteria === "customer") { - $scope.filterOptions = [$scope.filterOptions[0], $scope.filterOptions[1], $scope.filterOptions[2]]; + var cashFlowSerie; + cashFlowSerie = _.find(w.content.chart.series, function(serie) { + return serie.name === "Cash flow"; + }); + cashFlowSerie.data = []; + cashFlowSerie.type = 'area'; + cashFlowSerie.showInLegend = false; + return BoltResources.index(w.metadata.bolt_path, 'companies', { + metadata: _.pick(w.metadata, 'organization_ids') + }).then(function(response) { + if (_.isEmpty(response.data.data)) { + w.demoData = true; + } else { + w.demoData = false; + $scope.firstCompanyId = response.data.data[0].id; + fetchUser(); } - return $scope.filter = angular.copy(_.find($scope.filterOptions, function(o) { - return o.value === w.metadata.filter; - }) || $scope.filterOptions[0]); - } + loadContacts(); + return loadTrendsGroups(); + }); }; - $scope.drawTrigger = $q.defer(); w.format = function() { - var chartData, pieData, pieOptions; - if ($scope.isDataFound) { - pieData = _.map(w.content.summary, function(entity) { - var label; - if (entity.company) { - label = (entity.code || entity.name || entity.location || entity.industry || entity.customer) + " (" + entity.company + ")"; - } else { - label = entity.code || entity.name || entity.location || entity.industry || entity.customer; - } - return { - label: label, - value: entity.total - }; - }); - pieOptions = { - percentageInnerCutout: 50, - tooltipFontSize: 12 - }; - if ($scope.filter.value.indexOf('quantity') > -1) { - angular.merge(pieOptions, { - currency: 'hide' - }); - } - chartData = ChartFormatterSvc.pieChart(pieData, pieOptions); - return $scope.drawTrigger.notify(chartData); - } + var _highChartOptions; + _highChartOptions = { + chartType: 'line', + currency: w.metadata.currency, + showToday: true + }; + $scope.chart = new HighchartsFactory($scope.chartId(), w.content.chart.series, _highChartOptions); + $scope.chart.addCustomLegend(legendFormatter); + $scope.chart.addSeriesEvent('click', onClickBar); + $scope.chart.addSeriesEvent('legendItemClick', onClickLegend); + $scope.chart.addXAxisOptions({ + defaults: w.metadata.xAxis, + callback: onZoom + }); + $scope.chart.render(); + return $scope.chartDeferred.notify($scope.chart); }; return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('widgetSalesSummary', function() { + module.directive('widgetAccountsCashProjection', function() { return { restrict: 'A', - controller: 'WidgetSalesSummaryCtrl' + controller: 'WidgetAccountsCashProjectionCtrl' }; }); @@ -16181,171 +17351,145 @@ $templateCache.put("widgets/sales-top-opportunities.tmpl.html","
0) { - return entity.total_invoiced / entity.invoices.length; - } else { - return 0; - } - } - }, { - label: 'last', - showCurrency: true, - getValue: function(entity) { - var total; - total = entity.invoices.length; - if (total > 0) { - return entity.invoices[entity.invoices.length - 1].invoiced; - } else { - return 0; - } - } + $scope.legendItemOnClick = function(account) { + var serie, visibility; + serie = ($scope.chart != null) && ($scope.chart.hc != null) && getSerieByAccount($scope.chart.hc.series, account); + if (!serie) { + return; } - ]; - $scope.getHeaderField = function() { - return _.find(fields, function(f) { - return f.label === $scope.headerSelected.minified; - }); + visibility = serie.visible ? false : true; + return serie.setVisible(visibility); }; - $scope.getRemainingFields = function() { - return _.reject(fields, function(f) { - return f.label === $scope.headerSelected.minified; - }); + $scope.getLegendItemCheckBox = function(account) { + var serie; + serie = ($scope.chart != null) && ($scope.chart.hc != null) && getSerieByAccount($scope.chart.hc.series, account); + if (!serie) { + return 'fa-check-square-o'; + } + if (serie.visible) { + return 'fa-check-square-o'; + } else { + return 'fa-square-o'; + } }; - $scope.getEntities = function() { - if (!$scope.isDataFound) { - return []; + $scope.getLegendItemIcon = function(account) { + var serie; + serie = ($scope.chart != null) && ($scope.chart.hc != null) && getSerieByAccount($scope.chart.hc.series, account); + if (serie.type === 'area') { + return ImpacAssets.get('areaLegendIcon'); + } else { + return ImpacAssets.get('plotLineLegendIcon'); } - return $filter('orderBy')(w.content.entities, (function(entity) { - return $scope.getHeaderField().getValue(entity); - }), true); }; - buildFxTotals = function() { - var contact, contactFxTotals, j, len, ref, results; - ref = w.content.entities; + $scope.getLegendItemColor = function(account) { + var serie; + serie = ($scope.chart != null) && ($scope.chart.hc != null) && getSerieByAccount($scope.chart.hc.series, account); + if (!serie) { + return '#000'; + } + return serie.color; + }; + getSerieByAccount = function(series, account) { + return _.find(series, function(serie) { + return (serie.id || serie.options && serie.options.id) === account.id; + }); + }; + setSeriesColors = function(series, chartColors) { + var bias, groupedSeries, i, palette, results, serie; + groupedSeries = _.groupBy(series, function(serie) { + return serie.bias; + }); results = []; - for (j = 0, len = ref.length; j < len; j++) { - contact = ref[j]; - contactFxTotals = []; - _.mapKeys(contact.fx_totals, function(total, currency) { - if (currency !== w.metadata.currency) { - return contactFxTotals.push({ - currency: currency, - amount: total.invoiced, - rate: total.rate - }); - } - }); - if (!_.isEmpty(contactFxTotals)) { - results.push(contact.formattedFxTotals = contactFxTotals); - } else { - results.push(void 0); + for (bias in groupedSeries) { + series = groupedSeries[bias]; + if (!chartColors[bias]) { + continue; } + palette = ImpacTheming.color.generateShadesPalette(chartColors[bias], series.length); + results.push((function() { + var j, len, results1; + results1 = []; + for (i = j = 0, len = series.length; j < len; i = ++j) { + serie = series[i]; + results1.push(serie.color = palette[i]); + } + return results1; + })()); } return results; }; + $scope.chartId = function() { + return "cashBalanceChart-" + w.id; + }; + updateLocked = false; + zoomMetadata = {}; + onZoom = function(event) { + zoomMetadata = angular.merge(w.metadata, { + xAxis: { + max: event.max, + min: event.min + } + }); + if (!updateLocked) { + updateLocked = true; + return $timeout(function() { + return ImpacWidgetsSvc.update(w, { + metadata: zoomMetadata + }, false)["finally"](function() { + return updateLocked = false; + }); + }, 1000); + } + }; + w.format = function() { + return $timeout(function() { + var _highChartOptions; + _highChartOptions = { + chartType: 'line', + currency: w.metadata.currency, + period: getPeriod(), + showToday: true, + showLegend: false + }; + $scope.chart = new HighchartsFactory($scope.chartId(), w.content.chart.series, _highChartOptions); + $scope.chart.addXAxisOptions({ + defaults: w.metadata.xAxis, + callback: onZoom + }); + $scope.chart.removeLegend(); + return $scope.chart.render(); + }); + }; return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('widgetSalesTopCustomers', function() { + module.directive('widgetAccountsCashBalance', function() { return { restrict: 'A', - controller: 'WidgetSalesTopCustomersCtrl', - link: function(scope) { - scope.transactionsCollapsed = false; - return scope.toggleTransactions = function() { - return scope.transactionsCollapsed = !scope.transactionsCollapsed; - }; - } + controller: 'WidgetAccountsCashBalanceCtrl' }; }); @@ -16354,54 +17498,116 @@ $templateCache.put("widgets/sales-top-opportunities.tmpl.html","
.title span { + margin-left: 3px; + } +} - form .row.kpi-description { - padding: 10px 2px; - span { - display: block; - font-weight: bold; - font-size: 13px; - } - } +.analytics .widget-item .content.accounts-balance { + h3 { + .left-thin(30px); + text-align: center; + } - form.attach-kpi-form { - input.attach-target { - background-color: white; - height: inherit; + .price { + .center-bold(0px); + } +} + +.analytics .widget-item .content.accounts-balance-sheet { + .tall-widget(); + .widget-lines-container { + .scrollable(scroll); + max-height: 490px; + @media (max-width: @screen-xs-max) { + .row.widget-line { + &:not(:last-child) { border-bottom: dashed 1px @impac-widget-borders-color; } } } + .row.widget-line.header > [class*='col-'] { position: static; } - .error-messages { - color: @brand-danger; - width: 120px; + &.no-scroll { + overflow: visible; } } - .attached-kpis { - padding: 5px; + .no-data-block { + .center-thin(); + margin: 15px 0px; } +} - .list-group-item.attached-kpi { - padding: 5px 10px; +.analytics .widget-item .content.accounts-cash-balance { + .tall-widget(); - .attached-kpi-name { - overflow: hidden; - width: 75%; - display: inline-block; - white-space: nowrap; - text-overflow: ellipsis; - margin-top: 3px; - font-size: 13px; - font-weight: bold; - } + .data-container { + height: ~"calc(@{impac-big-widget-size} - 50px)"; + width: 100%; + } - .actions { - padding-top: 2px; - .alerts-config { - display: inline-block; - text-align: left; - padding-left: 4px; - height: 20px; - border-radius: 40px; - width: 21px; - color: @mblue; - background-color: white; - border: solid 1px @mblue; + .left-panel { + width: 180px; + display: inline-block; + overflow: auto; + max-height: 100%; + } - &:hover { cursor: pointer; } - } - .edit-attached-kpi { - display: inline-block; - i { - border-radius: 10px; - width: 21px; - color: @mblue; - background-color: white; - height: 20px; - padding: 3px 5px 5px 5px; - border: solid 1px @mblue; - &:hover { cursor: pointer; } + #cash-balance-legend { + .header { + .group-item { + display: flex; + align-items: center; + min-height: 45px; + margin: 3px; + font-size: 13px; + padding: 3px; + cursor: pointer; + user-select: none; + &:hover { + background-color: @impac-widget-menus-hover-background-color; } - } - .remove-attached-kpi { - display: inline-block; i { - border-radius: 10px; - width: 21px; - color: @brand-danger; - background-color: white; - height: 20px; - padding: 3px 5px 5px 5px; - border: solid 1px @brand-danger; - &:hover { cursor: pointer; } + font-size: 19px; + padding: 4px; + margin-top: 1px } + span { color: @impac-widget-text-color; } } } } -} -.analytics .widget-item .content .settings.select-account { - padding: 0px 5px; -} -.analytics .widget-item .content .settings.chart-filters { - .row { - margin: 0px; + .legend-item-icon { + width: 16px; + height: 16px; } - input[type="radio"] { - margin: 0; - margin-right: 3px; - padding: 0; - width: 13px; - height: 13px; - vertical-align: middle; - position: relative; - top: -1px; - outline: none; + + .right-panel { + width: ~"calc(100% - 180px)"; + float: right; + + // Highchart container + .cash-balance-chart { + height: ~"calc(@{impac-big-widget-size} - 50px)"; + } } - input[type="range"] { - height: auto; - width: 100%; + + .dates-picker { + display: inline-block; + float: right; + font-size: 12px; } } -.analytics .settings.dates-picker { - h5 { display: none; } +.analytics .widget-item .content.accounts-cash-projection { + .tall-widget(); - button.btn.btn-sm { - line-height: 1; - &.date-button { margin: 0px 5px; } - &.btn-danger { display: none; } - &.btn-info { border-radius: 3px; } + .cash-projection-chart { + height: ~"calc(@{impac-big-widget-size} - 50px)"; } - .tooltip-inner { text-transform: none; } - - .dropdown-menu > li > div > table { outline: none; } -} - -.analytics .settings.forecast-payroll { - .widget-lines-container { - .widget-line { - padding: 5px 10px 5px 18px; - .alternate-bg(#f3f4f4); - .fa { - float: right; - font-size: 20px; - cursor: pointer; - &.fa-toggle-on { - color: @impac-widget-link-color; - } - &.fa-toggle-off { - color: @impac-widget-text-color-medium; - } - } + .highcharts-legend-item { + rect.highcharts-point { + display: none; } - } -} - -.analytics .widget-item .content .settings.hist-mode-choser { - max-height: 70px; - - [common-time-period-info] { - padding-bottom: 8px; - } - .options { - width: 150px; - margin: auto; - padding-bottom: 8px; - border-bottom: solid 1px #e6e6e6; - .font(@impac-widget-hist-text-size,500,@impac-widget-hist-text-color); - a { - .font(@impac-widget-hist-text-size,500,@impac-widget-hist-text-color); - text-transform: @impac-widget-hist-text-transform; - &.active { - color: @impac-widget-link-color; + span { + width: 110px; + text-align: center; + img { + text-align: center; + width: 55px; + height: 25px; } } } - .arrow-container { - width: 28px; - height: 28px; - position: relative; - top: -14px; - margin: auto; - &.right { - left: 46px; - } - &.left { - left: -30px; - } - .arrow-border { - border-top: 14px solid #e6e6e6; - border-left: 14px solid transparent; - border-right: 14px solid transparent; - width: 0px; - height: 0px; - } - .arrow { - border-top: 14px solid @impac-widget-background-color; - border-left: 14px solid transparent; - border-right: 14px solid transparent; - position: relative; - top: 12px; - width: 0px; - height: 0px; - } - } -} - -.analytics .settings.limit-entries { - color: @impac-widget-limit-entries-color; - text-transform: uppercase; - text-align: center; - border-bottom: dashed 1px #E6E6E6; - padding-bottom: 8px; - a.option { - &.badge { - color: white; - background-color: @impac-widget-limit-entries-color; - } + .dates-picker { + display: inline-block; + float: right; + font-size: 12px; } + transactions-list { + font-size: 12px; + } } -.analytics .settings.offsets { - .offset-value { - font-style: italic; - font-size: 13px; +.analytics .widget-item .content.accounts-cash-summary { + .drill-down-widget(); + .right-panel .widget-lines-container { + max-height: 215px; } - .offset-value .fa-trash-o { - &:hover { - color: @brand-danger; - cursor: pointer; - } - margin-left: 10px; + .row.lines-group.cash { + border-top: solid 1px; + border-bottom: double; } - - input { width: 75%; } - button { width: 30px; } } -.analytics .settings.organizations { +.analytics .widget-item .content.accounts-class-comparison { + .param-selector { + text-align: center; + } .widget-lines-container { - .widget-line { - padding: 5px 10px 5px 18px; - .alternate-bg(#f3f4f4); - .fa { - float: right; - font-size: 20px; - cursor: pointer; - &.fa-toggle-on, &.fa-check-circle { - color: @impac-widget-link-color; - } - &.fa-toggle-off, &.fa-circle-thin { - color: @impac-widget-text-color-medium; - } - } - } + max-height: 94px; + color: #626d6d; } } -.analytics .widget-item .content .settings.param-selector { - display: inline-block; - - &.classic { - width: 100%; +.analytics .widget-item .content.accounts-comparison { + .tall-widget(); - select { - width: 100%; - height: 25px; - border: 1px solid #ccc; - text-transform: uppercase; - margin: 0px 0px 5px 0px; - } + .chart-container { + @media print { max-width: 80% !important; } } - a { - font-weight: normal; - color: @impac-widget-param-selector-color; - white-space: nowrap; - } - .options-container { + .add-account { position: absolute; - background-color: white; - text-align: left; - min-width: 150px; - max-height: 200px; - z-index: 999; - overflow-y: auto; - overflow-x: hidden; - .box-shadow(rgb(0, 0, 0) 0px 3px 15px -3px); - - .param-selector-label { - padding: 3px 5px; - .font(inherit,500,black); - cursor: text; - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; - line-height: 1.9; - } - .param-selector-label:hover { + right: 40px; + bottom: 30px; + width: 160px; + select { + font-size: 13px; + background-color: @impac-widget-link-color; + color: @impac-widget-background-color; + outline: none; + border: none; cursor: pointer; - background-color: @impac-widget-param-selector-color; - color: white; - } - - &::-webkit-scrollbar { - width: 8px; - background-color: darken(@lightgray,5%); - } - - &::-webkit-scrollbar-thumb { - background-color: @impac-widget-param-selector-color; + &[disabled] { + cursor: not-allowed; + background-color: lighten(@impac-widget-link-color,10%); + &:hover { + background-color: lighten(@impac-widget-link-color,10%); + } + } &:hover { - background-color: lighten(@impac-widget-param-selector-color,5%); + background-color: darken(@impac-widget-link-color,10%); + } + option { + background-color: @impac-widget-background-color; + color: lighten(@impac-widget-text-color,40%); + &[disabled] { + color: @impac-widget-background-color; + } } } } -} - -.analytics .settings.params-checkboxes { - padding: 2px 0px; - input { + button.close { + font-size: 15px; + } + .legend { + text-align: left; + max-height: 103px; + } + .row { margin: 0; - height: inherit; } - span { - margin-left: 5px; + .widget-lines-container { + font-size: 11px; + max-height: @impac-widget-accounts-comparison-lines-container-max-height; + margin-bottom: 65px; + overflow: auto; } - label { - display: flex; - justify-content: center; - line-height: 14px; + + .settings.params-checkboxes { + margin-left: 13px; + } + + .comparable-error h5 { + margin-left: 13px; + color: @impac-negative; } } -.analytics .widget-item .content .settings.params-picker { - padding: 0px 10px; - .parameter { - margin: 0px 3px 3px 0px; - padding: 3px 5px; - background-color: @impac-widget-params-picker-bg; - color: white; - border: solid 1px @impac-widget-params-picker-bg; - border-radius: 4px; - cursor: move; +.analytics .widget-item .content.accounts-custom-calculation { + h3 { + margin-top: 85px; + text-align: center; font-weight: bold; - white-space: nowrap; - float: left; - input[type="checkbox"] { - margin: 0px -3px 0px 3px; - vertical-align: middle; - height: inherit; - outline: none; - cursor: pointer; - } - .badge { - margin-right: 3px; - font-size: 10px; - background-color: darken(@impac-widget-background-color, 5%); - color: @impac-widget-params-picker-bg; - padding: 2px 6px; - } - - &.unchecked { - background-color: inherit; - font-weight: normal; - color: inherit; - border-color: @impac-widget-params-picker-unchecked-bg; - .badge { - background-color: @impac-widget-params-picker-unchecked-bg; - color: white; - } - } } + .legend { max-height: 125px; } } -.analytics .settings.tag-filter { - padding: 0px 5px; - - .btn.btn-default { - height: 32px; - width: 30px; - } - - .tag-lines-container { - padding: 0px 10px; - - .tag-line { - display: flex; - align-items: center; - justify-content: flex-end; - - .tags-col { position: static; } - tags-input { - .tags { - display: flex; - border-radius: 4px; - border: solid 1px #ccc; - .tag-item { - background: #79a2bb; - border-radius: 4px; - color: white; - } - } - } +.analytics.modal-custom-calculation { + margin: 0px; + padding: 0px; +} - .host { position: static; } - } +.analytics.modal-custom-calculation .modal-body { + .edit { + .edit-panel-style(); + padding: 5px; + overflow: visible; } } -.analytics .settings.time-period { - padding: 0px 5px; - - select { - height: 22px; - width: 100%; +.analytics .widget-item .content.accounts-detailed-classifications { + .tall-widget(); + .widget-lines-container { + .scrollable(scroll); + max-height: 540px; } - - & > .row { - margin: 0px -5px 7px -5px; - & > div { - padding: 0px 5px; - position: static; - } - .sub-setting { padding: 5px; } + .account-class-title { + margin-bottom: 8px; + margin-left: 11px; } -} -.analytics .widget-item .content .settings.width { - float: right; - font-size: 14px; - i { - color: silver; - cursor: pointer; - &.reduce { - margin-right: -10px; - } - &.expand { - margin-right: -3px; - } - } -} -.analytics .widget-item .content.accounts-accounting-values { - // Nothing particular yet for this template... -} -.analytics .widget-item .content.accounts-assets-liability-summary { - .param-selector { - text-align: center; + .time-period-info { + text-align: right; } - .legend { - text-align: left; - max-height: 90px; - .title { - text-align: center; - border-bottom: dashed 1px @impac-widget-borders-color; - } + .widget-line.header.sorting { + border-bottom: 1px solid #ccc; } } -.analytics .widget-item .content.accounts-assets-summary { + + +.analytics .widget-item .content.accounts-expense-weight { .legend { text-align: left; max-height: 115px; .title { text-align: center; - border-bottom: dashed 1px @impac-widget-borders-color; } } } -.analytics .widget-item .content.accounts-assets-vs-liabilities { - .legend > .title span { - margin-left: 3px; +.analytics .widget-item .content.accounts-expenses-revenue { + .legend { + font-weight: bold; } -} -.analytics .widget-item .content.accounts-balance { - h3 { - .left-thin(30px); + .settings.params-checkboxes { + font-size: 12px; + margin-left: 0px; text-align: center; } - - .price { - .center-bold(0px); - } } -.analytics .widget-item .content.accounts-balance-sheet { +.analytics .widget-item .content.accounts-invoices-list { + // component specific styles + // ------------------------- .tall-widget(); - .widget-lines-container { - .scrollable(scroll); - max-height: 490px; - @media (max-width: @screen-xs-max) { - .row.widget-line { - &:not(:last-child) { border-bottom: dashed 1px @impac-widget-borders-color; } - } - } - .row.widget-line.header > [class*='col-'] { position: static; } - &.no-scroll { - overflow: visible; - } + transactions-list { + font-size: 12px; } - .no-data-block { - .center-thin(); - margin: 15px 0px; - } } -.analytics .widget-item .content.accounts-cash-balance { - .tall-widget(); - - .data-container { - height: ~"calc(@{impac-big-widget-size} - 50px)"; - width: 100%; +.analytics .widget-item .content.accounts-live-balance { + h3 { + .center-bold(0px); + font-size: 18px; + text-align: center; + text-shadow: 1px; } - .left-panel { - width: 180px; - display: inline-block; - overflow: auto; - max-height: 100%; + .statement-title { + font-size: 13px; + font-weight: 400; } - #cash-balance-legend { - .header { - .group-item { - display: flex; - align-items: center; - min-height: 45px; - margin: 3px; - font-size: 13px; - padding: 3px; - cursor: pointer; - user-select: none; - &:hover { - background-color: @impac-widget-menus-hover-background-color; - } - i { - font-size: 19px; - padding: 4px; - margin-top: 1px - } - span { color: @impac-widget-text-color; } - } - } + .balance-title { + font-size: 12px; } - .legend-item-icon { - width: 16px; - height: 16px; + .currency-centered { + .center-small() } - .right-panel { - width: ~"calc(100% - 180px)"; - float: right; - - // Highchart container - .cash-balance-chart { - height: ~"calc(@{impac-big-widget-size} - 50px)"; - } + .headers { + text-align: center; } - .dates-picker { - display: inline-block; - float: right; - font-size: 12px; + .spacer { + min-height: 30px; } -} -.analytics .widget-item .content.accounts-cash-projection { - .tall-widget(); + .price { + .center-bold(0px); + } - .cash-projection-chart { - height: ~"calc(@{impac-big-widget-size} - 50px)"; + .come-back-later { + text-align: center; + font-size: 11px; + opacity: 0.8; } - .highcharts-legend-item { - rect.highcharts-point { - display: none; - } - - span { - width: 110px; - text-align: center; - img { - text-align: center; - width: 55px; - height: 25px; - } - } - } - - .dates-picker { - display: inline-block; - float: right; - font-size: 12px; - } - - transactions-list { - font-size: 12px; - } -} - -.analytics .widget-item .content.accounts-cash-summary { - .drill-down-widget(); - .right-panel .widget-lines-container { - max-height: 215px; - } - - .row.lines-group.cash { - border-top: solid 1px; - border-bottom: double; - } -} - -.analytics .widget-item .content.accounts-class-comparison { - .param-selector { - text-align: center; - } - .widget-lines-container { - max-height: 94px; - color: #626d6d; - } -} - -.analytics .widget-item .content.accounts-comparison { - .tall-widget(); - - .chart-container { - @media print { max-width: 80% !important; } - } - - .add-account { - position: absolute; - right: 40px; - bottom: 30px; - width: 160px; - select { - font-size: 13px; - background-color: @impac-widget-link-color; - color: @impac-widget-background-color; - outline: none; - border: none; - cursor: pointer; - &[disabled] { - cursor: not-allowed; - background-color: lighten(@impac-widget-link-color,10%); - &:hover { - background-color: lighten(@impac-widget-link-color,10%); - } - } - &:hover { - background-color: darken(@impac-widget-link-color,10%); - } - option { - background-color: @impac-widget-background-color; - color: lighten(@impac-widget-text-color,40%); - &[disabled] { - color: @impac-widget-background-color; - } - } - } - } - button.close { - font-size: 15px; - } - .legend { - text-align: left; - max-height: 103px; - } - .row { - margin: 0; - } - .widget-lines-container { - font-size: 11px; - max-height: @impac-widget-accounts-comparison-lines-container-max-height; - margin-bottom: 65px; - overflow: auto; - } - - .settings.params-checkboxes { - margin-left: 13px; - } - - .comparable-error h5 { - margin-left: 13px; - color: @impac-negative; - } -} - -.analytics .widget-item .content.accounts-custom-calculation { - h3 { - margin-top: 85px; - text-align: center; - font-weight: bold; - } - .legend { max-height: 125px; } -} - -.analytics.modal-custom-calculation { - margin: 0px; - padding: 0px; -} - -.analytics.modal-custom-calculation .modal-body { - .edit { - .edit-panel-style(); - padding: 5px; - overflow: visible; - } -} - -.analytics .widget-item .content.accounts-detailed-classifications { - .tall-widget(); - .widget-lines-container { - .scrollable(scroll); - max-height: 540px; - } - - .account-class-title { - margin-bottom: 8px; - margin-left: 11px; - } - - .time-period-info { - text-align: right; - } - - .widget-line.header.sorting { - border-bottom: 1px solid #ccc; - } -} - - - -.analytics .widget-item .content.accounts-expense-weight { - .legend { - text-align: left; - max-height: 115px; - - .title { - text-align: center; - } - } -} - -.analytics .widget-item .content.accounts-expenses-revenue { - .legend { - font-weight: bold; - } - - .settings.params-checkboxes { - font-size: 12px; - margin-left: 0px; - text-align: center; - } -} - -.analytics .widget-item .content.accounts-invoices-list { - // component specific styles - // ------------------------- - .tall-widget(); - - transactions-list { - font-size: 12px; - } - -} - -.analytics .widget-item .content.accounts-live-balance { - h3 { - .center-bold(0px); - font-size: 18px; - text-align: center; - text-shadow: 1px; - } - - .statement-title { - font-size: 13px; - font-weight: 400; - } - - .balance-title { - font-size: 12px; - } - - .currency-centered { - .center-small() - } - - .headers { - text-align: center; - } - - .spacer { - min-height: 30px; - } - - .price { - .center-bold(0px); - } - - .negative2 { - font-size: 14px; - } -} + .negative2 { + font-size: 14px; + } +} .analytics .widget-item .content.accounts-payable-receivable { h3 { @@ -4659,4 +4203,466 @@ chart-threshold { } } } +} +.analytics .widget-item .content .settings.select-account { + padding: 0px 5px; +} +.analytics .settings.accounting-behaviour { + + .btn.btn-primary { + background-color: lighten(@impac-widget-link-color, 10%); + border: solid 1px @impac-widget-link-color; + &.focus, &.active { background-color: @impac-widget-link-color; } + } + +} + +.analytics .settings.attach-kpis { + .attach-kpi { + padding: 8px 5px; + + form .row { + padding-bottom: 5px; + } + + .attach-kpi-form { + background-color: white; + border: 1px solid #ddd; + padding: 5px; + } + + form .row.kpi-description { + padding: 10px 2px; + span { + display: block; + font-weight: bold; + font-size: 13px; + } + } + + form.attach-kpi-form { + input.attach-target { + background-color: white; + height: inherit; + } + } + + .error-messages { + color: @brand-danger; + width: 120px; + } + } + + .attached-kpis { + padding: 5px; + } + + .list-group-item.attached-kpi { + padding: 5px 10px; + + .attached-kpi-name { + overflow: hidden; + width: 75%; + display: inline-block; + white-space: nowrap; + text-overflow: ellipsis; + margin-top: 3px; + font-size: 13px; + font-weight: bold; + } + + .actions { + padding-top: 2px; + .alerts-config { + display: inline-block; + text-align: left; + padding-left: 4px; + height: 20px; + border-radius: 40px; + width: 21px; + color: @mblue; + background-color: white; + border: solid 1px @mblue; + + &:hover { cursor: pointer; } + } + .edit-attached-kpi { + display: inline-block; + i { + border-radius: 10px; + width: 21px; + color: @mblue; + background-color: white; + height: 20px; + padding: 3px 5px 5px 5px; + border: solid 1px @mblue; + &:hover { cursor: pointer; } + } + } + .remove-attached-kpi { + display: inline-block; + i { + border-radius: 10px; + width: 21px; + color: @brand-danger; + background-color: white; + height: 20px; + padding: 3px 5px 5px 5px; + border: solid 1px @brand-danger; + &:hover { cursor: pointer; } + } + } + } + } +} + +.analytics .widget-item .content .settings.select-account { + padding: 0px 5px; +} +.analytics .widget-item .content .settings.chart-filters { + .row { + margin: 0px; + } + input[type="radio"] { + margin: 0; + margin-right: 3px; + padding: 0; + width: 13px; + height: 13px; + vertical-align: middle; + position: relative; + top: -1px; + outline: none; + } + input[type="range"] { + height: auto; + width: 100%; + } +} + +.analytics .settings.dates-picker { + h5 { display: none; } + + button.btn.btn-sm { + line-height: 1; + &.date-button { margin: 0px 5px; } + &.btn-danger { display: none; } + &.btn-info { border-radius: 3px; } + } + + .tooltip-inner { text-transform: none; } + + .dropdown-menu > li > div > table { outline: none; } +} + +.analytics .settings.forecast-payroll { + .widget-lines-container { + .widget-line { + padding: 5px 10px 5px 18px; + .alternate-bg(#f3f4f4); + .fa { + float: right; + font-size: 20px; + cursor: pointer; + &.fa-toggle-on { + color: @impac-widget-link-color; + } + &.fa-toggle-off { + color: @impac-widget-text-color-medium; + } + } + } + } +} + +.analytics .widget-item .content .settings.hist-mode-choser { + max-height: 70px; + + [common-time-period-info] { + padding-bottom: 8px; + } + + .options { + width: 150px; + margin: auto; + padding-bottom: 8px; + border-bottom: solid 1px #e6e6e6; + .font(@impac-widget-hist-text-size,500,@impac-widget-hist-text-color); + a { + .font(@impac-widget-hist-text-size,500,@impac-widget-hist-text-color); + text-transform: @impac-widget-hist-text-transform; + &.active { + color: @impac-widget-link-color; + } + } + } + .arrow-container { + width: 28px; + height: 28px; + position: relative; + top: -14px; + margin: auto; + &.right { + left: 46px; + } + &.left { + left: -30px; + } + .arrow-border { + border-top: 14px solid #e6e6e6; + border-left: 14px solid transparent; + border-right: 14px solid transparent; + width: 0px; + height: 0px; + } + .arrow { + border-top: 14px solid @impac-widget-background-color; + border-left: 14px solid transparent; + border-right: 14px solid transparent; + position: relative; + top: 12px; + width: 0px; + height: 0px; + } + } +} + +.analytics .settings.limit-entries { + color: @impac-widget-limit-entries-color; + text-transform: uppercase; + text-align: center; + border-bottom: dashed 1px #E6E6E6; + padding-bottom: 8px; + + a.option { + &.badge { + color: white; + background-color: @impac-widget-limit-entries-color; + } + } + +} + +.analytics .settings.offsets { + .offset-value { + font-style: italic; + font-size: 13px; + } + + .offset-value .fa-trash-o { + &:hover { + color: @brand-danger; + cursor: pointer; + } + margin-left: 10px; + } + + input { width: 75%; } + button { width: 30px; } +} + +.analytics .settings.organizations { + .widget-lines-container { + .widget-line { + padding: 5px 10px 5px 18px; + .alternate-bg(#f3f4f4); + .fa { + float: right; + font-size: 20px; + cursor: pointer; + &.fa-toggle-on, &.fa-check-circle { + color: @impac-widget-link-color; + } + &.fa-toggle-off, &.fa-circle-thin { + color: @impac-widget-text-color-medium; + } + } + } + } +} + +.analytics .widget-item .content .settings.param-selector { + display: inline-block; + + &.classic { + width: 100%; + + select { + width: 100%; + height: 25px; + border: 1px solid #ccc; + text-transform: uppercase; + margin: 0px 0px 5px 0px; + } + } + + a { + font-weight: normal; + color: @impac-widget-param-selector-color; + white-space: nowrap; + } + .options-container { + position: absolute; + background-color: white; + text-align: left; + min-width: 150px; + max-height: 200px; + z-index: 999; + overflow-y: auto; + overflow-x: hidden; + .box-shadow(rgb(0, 0, 0) 0px 3px 15px -3px); + + .param-selector-label { + padding: 3px 5px; + .font(inherit,500,black); + cursor: text; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + line-height: 1.9; + } + .param-selector-label:hover { + cursor: pointer; + background-color: @impac-widget-param-selector-color; + color: white; + } + + &::-webkit-scrollbar { + width: 8px; + background-color: darken(@lightgray,5%); + } + + &::-webkit-scrollbar-thumb { + background-color: @impac-widget-param-selector-color; + &:hover { + background-color: lighten(@impac-widget-param-selector-color,5%); + } + } + } +} + +.analytics .settings.params-checkboxes { + padding: 2px 0px; + input { + margin: 0; + height: inherit; + } + span { + margin-left: 5px; + } + label { + display: flex; + justify-content: center; + line-height: 14px; + } +} + +.analytics .widget-item .content .settings.params-picker { + padding: 0px 10px; + .parameter { + margin: 0px 3px 3px 0px; + padding: 3px 5px; + background-color: @impac-widget-params-picker-bg; + color: white; + border: solid 1px @impac-widget-params-picker-bg; + border-radius: 4px; + cursor: move; + font-weight: bold; + white-space: nowrap; + float: left; + input[type="checkbox"] { + margin: 0px -3px 0px 3px; + vertical-align: middle; + height: inherit; + outline: none; + cursor: pointer; + } + .badge { + margin-right: 3px; + font-size: 10px; + background-color: darken(@impac-widget-background-color, 5%); + color: @impac-widget-params-picker-bg; + padding: 2px 6px; + } + + &.unchecked { + background-color: inherit; + font-weight: normal; + color: inherit; + border-color: @impac-widget-params-picker-unchecked-bg; + .badge { + background-color: @impac-widget-params-picker-unchecked-bg; + color: white; + } + } + } +} +.analytics .settings.tag-filter { + padding: 0px 5px; + + .btn.btn-default { + height: 32px; + width: 30px; + } + + .tag-lines-container { + padding: 0px 10px; + + .tag-line { + display: flex; + align-items: center; + justify-content: flex-end; + + .tags-col { position: static; } + + tags-input { + .tags { + display: flex; + border-radius: 4px; + border: solid 1px #ccc; + .tag-item { + background: #79a2bb; + border-radius: 4px; + color: white; + } + } + } + + .host { position: static; } + } + } +} + +.analytics .settings.time-period { + padding: 0px 5px; + + select { + height: 22px; + width: 100%; + } + + & > .row { + margin: 0px -5px 7px -5px; + & > div { + padding: 0px 5px; + position: static; + } + + .sub-setting { padding: 5px; } + } +} + +.analytics .widget-item .content .settings.width { + float: right; + font-size: 14px; + i { + color: silver; + cursor: pointer; + &.reduce { + margin-right: -10px; + } + &.expand { + margin-right: -3px; + } + } } \ No newline at end of file diff --git a/dist/impac-angular.min.css b/dist/impac-angular.min.css index 15c30303..f7b0ad6f 100644 --- a/dist/impac-angular.min.css +++ b/dist/impac-angular.min.css @@ -2,4 +2,4 @@ * Bootstrap v3.3.7 (http://getbootstrap.com) * Copyright 2011-2016 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */.label,sub,sup{vertical-align:baseline}hr,img{border:0}body,figure{margin:0}.btn-group>.btn-group,.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.dropdown-menu{float:left}.btn,.kpi-alerts-settings .modal-body ul>li.list-group-item{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.pre-scrollable{max-height:340px}.analytics .impac-kpi .kpi .top-line,.analytics kpis-bar>.kpis .actions .im-form-inline,.widget-item .top-line{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.analytics .impac-kpi .kpi .kpi-edit .im-form-group textarea,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group textarea,.analytics kpis-bar>.kpis .actions .im-form-group textarea{resize:none}html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent;color:#00e5f0;text-decoration:none}a:active,a:hover{outline:0}b,optgroup,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0}mark{background:#ff0;color:#000}.img-thumbnail,body{background-color:#fff}.btn,.btn-danger.active,.btn-danger:active,.btn-default.active,.btn-default:active,.btn-info.active,.btn-info:active,.btn-primary.active,.btn-primary:active,.btn-warning.active,.btn-warning:active,.btn.active,.btn:active,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover,.form-control,.navbar-toggle,.open>.dropdown-toggle.btn-danger,.open>.dropdown-toggle.btn-default,.open>.dropdown-toggle.btn-info,.open>.dropdown-toggle.btn-primary,.open>.dropdown-toggle.btn-warning{background-image:none}sub,sup{font-size:75%;line-height:0;position:relative}sup{top:-.5em}sub{bottom:-.25em}img{vertical-align:middle}svg:not(:root){overflow:hidden}hr{box-sizing:content-box;height:0}pre,textarea{overflow:auto}code,kbd,pre,samp{font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}.glyphicon,address{font-style:normal}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}td,th{padding:0}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff2) format('woff2'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\002a"}.glyphicon-plus:before{content:"\002b"}.glyphicon-eur:before,.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before,.glyphicon-btc:before,.glyphicon-xbt:before{content:"\e227"}.glyphicon-jpy:before,.glyphicon-yen:before{content:"\00a5"}.glyphicon-rub:before,.glyphicon-ruble:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*,:after,:before{box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a:focus,a:hover{color:#009ca3;text-decoration:underline}a:focus{outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857143;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role=button]{cursor:pointer}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}dt,kbd kbd,label{font-weight:700}address,blockquote .small,blockquote footer,blockquote small,dd,dt,pre{line-height:1.42857143}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{background-color:#fcf8e3;padding:.2em}.list-inline,.list-unstyled{padding-left:0;list-style:none}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#00e5f0}a.text-primary:focus,a.text-primary:hover{color:#00b4bd}.text-success{color:#3c763d}a.text-success:focus,a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:focus,a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:focus,a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:focus,a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#00e5f0}a.bg-primary:focus,a.bg-primary:hover{background-color:#00b4bd}.bg-success{background-color:#dff0d8}a.bg-success:focus,a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:focus,a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:focus,a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:focus,a.bg-danger:hover{background-color:#e4b9b9}pre code,table{background-color:transparent}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}dl,ol,ul{margin-top:0}address,dl{margin-bottom:20px}ol,ul{margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-inline{margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}.container{width:750px}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;color:#777}legend,pre{display:block;color:#333}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0;text-align:right}code,kbd{padding:2px 4px;font-size:90%}caption,th{text-align:left}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{color:#fff;background-color:#333;border-radius:3px;box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;box-shadow:none}pre{padding:9.5px;margin:0 0 10px;font-size:13px;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}.container,.container-fluid{margin-right:auto;margin-left:auto}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;border-radius:0}.container,.container-fluid{padding-left:15px;padding-right:15px}.pre-scrollable{overflow-y:scroll}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.row{margin-left:-15px;margin-right:-15px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{border-collapse:collapse;border-spacing:0}caption{padding-top:8px;padding-bottom:8px;color:#777}.table{width:100%;max-width:100%;margin-bottom:20px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered,.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover,.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}table col[class*=col-]{position:static;float:none;display:table-column}table td[class*=col-],table th[class*=col-]{position:static;float:none;display:table-cell}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{overflow-x:auto;min-height:.01%}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset,legend{padding:0;border:0}fieldset{margin:0;min-width:0}legend{width:100%;margin-bottom:20px;font-size:21px;line-height:inherit;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px}input[type=search]{box-sizing:border-box;-webkit-appearance:none}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px\9;line-height:normal}.form-control,output{font-size:14px;line-height:1.42857143;color:#555;display:block}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=checkbox]:focus,input[type=radio]:focus{outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}output{padding-top:7px}.form-control{width:100%;height:34px;padding:6px 12px;background-color:#fff;border:1px solid #ccc;border-radius:4px;box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .form-control-feedback,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#3c763d}.form-control::-ms-expand{border:0;background-color:transparent}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date].form-control,input[type=time].form-control,input[type=datetime-local].form-control,input[type=month].form-control{line-height:34px}.input-group-sm input[type=date],.input-group-sm input[type=time],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}.input-group-lg input[type=date],.input-group-lg input[type=time],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-left:-20px;margin-top:4px\9}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:400;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}.checkbox-inline.disabled,.checkbox.disabled label,.radio-inline.disabled,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio label,fieldset[disabled] .radio-inline,fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.form-control-static{padding-top:7px;padding-bottom:7px;margin-bottom:0;min-height:34px}.form-control-static.input-lg,.form-control-static.input-sm{padding-left:0;padding-right:0}.form-group-sm .form-control,.input-sm{padding:5px 10px;border-radius:3px;font-size:12px}.input-sm{height:30px;line-height:1.5}select.input-sm{height:30px;line-height:30px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:30px;line-height:1.5}.form-group-lg .form-control,.input-lg{border-radius:6px;padding:10px 16px;font-size:18px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm select[multiple].form-control,.form-group-sm textarea.form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;line-height:1.3333333}select.input-lg{height:46px;line-height:46px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:46px;line-height:1.3333333}.form-group-lg select.form-control{height:46px;line-height:46px}.form-group-lg select[multiple].form-control,.form-group-lg textarea.form-control{height:auto}.form-group-lg .form-control-static{height:46px;min-height:38px;padding:11px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.collapsing,.dropdown,.dropup{position:relative}.form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .form-control{box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;border-color:#3c763d;background-color:#dff0d8}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .form-control-feedback,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;border-color:#8a6d3b;background-color:#fcf8e3}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .form-control-feedback,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#a94442}.has-error .form-control{box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;border-color:#a94442;background-color:#f2dede}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-control-static,.form-inline .form-group{display:inline-block}.form-inline .control-label,.form-inline .form-group{margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:7px}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:11px;font-size:18px}.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;margin-bottom:0;font-weight:400;text-align:center;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:14px;line-height:1.42857143;border-radius:4px;user-select:none}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{outline:0;box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;opacity:.65;filter:alpha(opacity=65);box-shadow:none}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.focus,.btn-default:focus{color:#333;background-color:#e6e6e6;border-color:#8c8c8c}.btn-default.active,.btn-default:active,.btn-default:hover,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open>.dropdown-toggle.btn-default.focus,.open>.dropdown-toggle.btn-default:focus,.open>.dropdown-toggle.btn-default:hover{color:#333;background-color:#d4d4d4;border-color:#8c8c8c}.btn-default.disabled.focus,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled].focus,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#00e5f0;border-color:#00cdd7}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#00b4bd;border-color:#005357}.btn-primary.active,.btn-primary:active,.btn-primary:hover,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#00b4bd;border-color:#009299}.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.dropdown-toggle.btn-primary.focus,.open>.dropdown-toggle.btn-primary:focus,.open>.dropdown-toggle.btn-primary:hover{color:#fff;background-color:#009299;border-color:#005357}.btn-primary.disabled.focus,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled].focus,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#00e5f0;border-color:#00cdd7}.btn-primary .badge{color:#00e5f0;background-color:#fff}.btn-success{color:#fff;background-color:#00e5f0;border-color:#00cdd7}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#00b4bd;border-color:#005357}.btn-success.active,.btn-success:active,.btn-success:hover,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#00b4bd;border-color:#009299}.btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.dropdown-toggle.btn-success.focus,.open>.dropdown-toggle.btn-success:focus,.open>.dropdown-toggle.btn-success:hover{color:#fff;background-color:#009299;border-color:#005357}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled.focus,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled].focus,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#00e5f0;border-color:#00cdd7}.btn-success .badge{color:#00e5f0;background-color:#fff}.btn-info{color:#fff;background-color:#00e5f0;border-color:#00cdd7}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#00b4bd;border-color:#005357}.btn-info.active,.btn-info:active,.btn-info:hover,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#00b4bd;border-color:#009299}.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.dropdown-toggle.btn-info.focus,.open>.dropdown-toggle.btn-info:focus,.open>.dropdown-toggle.btn-info:hover{color:#fff;background-color:#009299;border-color:#005357}.btn-info.disabled.focus,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled].focus,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#00e5f0;border-color:#00cdd7}.btn-info .badge{color:#00e5f0;background-color:#fff}.btn-warning{color:#fff;background-color:#977bf0;border-color:#8564ed}.btn-warning.focus,.btn-warning:focus{color:#fff;background-color:#734deb;border-color:#3d15bd}.btn-warning.active,.btn-warning:active,.btn-warning:hover,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#734deb;border-color:#5a2de7}.btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.dropdown-toggle.btn-warning.focus,.open>.dropdown-toggle.btn-warning:focus,.open>.dropdown-toggle.btn-warning:hover{color:#fff;background-color:#5a2de7;border-color:#3d15bd}.btn-warning.disabled.focus,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled].focus,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#977bf0;border-color:#8564ed}.btn-warning .badge{color:#977bf0;background-color:#fff}.btn-danger{color:#fff;background-color:#e01f74;border-color:#ca1c68}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#b3195d;border-color:#5a0c2e}.btn-danger.active,.btn-danger:active,.btn-danger:hover,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#b3195d;border-color:#94144d}.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.dropdown-toggle.btn-danger.focus,.open>.dropdown-toggle.btn-danger:focus,.open>.dropdown-toggle.btn-danger:hover{color:#fff;background-color:#94144d;border-color:#5a0c2e}.btn-danger.disabled.focus,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled].focus,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#e01f74;border-color:#ca1c68}.btn-danger .badge{color:#e01f74;background-color:#fff}.btn-link{color:#00e5f0;font-weight:400;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#009ca3;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{height:0;overflow:hidden;-webkit-transition-property:height,visibility;transition-property:height,visibility;-webkit-transition-duration:.35s;transition-duration:.35s;-webkit-transition-timing-function:ease;transition-timing-function:ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;text-align:left;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box}.dropdown-menu-right,.dropdown-menu.pull-right{left:auto;right:0}.dropdown-header,.dropdown-menu>li>a{display:block;padding:3px 20px;line-height:1.42857143;white-space:nowrap}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{clear:both;font-weight:400;color:#333}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{text-decoration:none;color:#262626;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;outline:0;background-color:#00e5f0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;background-color:transparent;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{font-size:12px;color:#777}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.nav-justified>.dropdown .dropdown-menu,.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px dashed;border-bottom:4px solid\9;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn .caret,.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{box-shadow:none}.btn-lg .caret{border-width:5px 5px 0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-radius:4px 4px 0 0}.btn-group-vertical>.btn:last-child:not(:first-child){border-radius:0 0 4px 4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group .form-control:focus{z-index:3}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.nav>li,.nav>li>a{display:block;position:relative}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li>a{padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#00e5f0}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px;margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0;border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-justified>li,.nav-stacked>li{float:none}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#00e5f0}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}.navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar{border-radius:4px}.navbar-header{float:left}.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-left:0;padding-right:0}}.analytics pre,.carousel-inner,.embed-responsive,.media,.media-body,.modal,.modal-open,.progress{overflow:hidden}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}.navbar-static-top{z-index:1000;border-width:0 0 1px}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:15px;font-size:18px;line-height:20px;height:50px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}.navbar-fixed-bottom,.navbar-fixed-top,.navbar-static-top{border-radius:0}.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}.progress-bar-striped,.progress-striped .progress-bar,.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}@media (min-width:768px){.navbar-toggle{display:none}.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);margin:8px -15px}@media (min-width:768px){.navbar-form .form-control-static,.navbar-form .form-group{display:inline-block}.navbar-form .control-label,.navbar-form .form-group{margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;box-shadow:none}}.breadcrumb>li,.pagination{display:inline-block}.btn .badge,.btn .label{top:-1px;position:relative}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-radius:4px 4px 0 0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-nav>li>a,.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{background-color:#e7e7e7;color:#555}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>li>a,.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{background-color:#080808;color:#fff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#ccc}.breadcrumb>.active{color:#777}.pagination{padding-left:0;margin:20px 0;border-radius:4px}.pager li,.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;line-height:1.42857143;text-decoration:none;color:#00e5f0;background-color:#fff;border:1px solid #ddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{z-index:2;color:#009ca3;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:3;color:#fff;background-color:#00e5f0;border-color:#00e5f0;cursor:default}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#777;background-color:#fff;border-color:#ddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.badge,.label{font-weight:700;line-height:1;white-space:nowrap;text-align:center}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:20px 0;list-style:none;text-align:center}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;background-color:#fff;cursor:not-allowed}a.badge:focus,a.badge:hover,a.label:focus,a.label:hover{color:#fff;cursor:pointer;text-decoration:none}.label{display:inline;padding:.2em .6em .3em;font-size:75%;color:#fff;border-radius:.25em}.label:empty{display:none}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#00e5f0}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#00b4bd}.label-success{background-color:#00e5f0}.label-success[href]:focus,.label-success[href]:hover{background-color:#00b4bd}.label-info{background-color:#00e5f0}.label-info[href]:focus,.label-info[href]:hover{background-color:#00b4bd}.label-warning{background-color:#977bf0}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#734deb}.label-danger{background-color:#e01f74}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#b3195d}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;color:#fff;vertical-align:middle;background-color:#777;border-radius:10px}.badge:empty{display:none}.media-object,.thumbnail{display:block}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#00e5f0;background-color:#fff}.jumbotron,.jumbotron .h1,.jumbotron h1{color:inherit}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;background-color:#eee}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.alert,.thumbnail{margin-bottom:20px}.alert .alert-link,.close{font-weight:700}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{border-radius:6px;padding-left:15px;padding-right:15px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-left:60px;padding-right:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-left:auto;margin-right:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#00e5f0}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.modal,.modal-backdrop{top:0;right:0;bottom:0;left:0}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#8a6d3b}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#a94442}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;background-color:#f5f5f5;border-radius:4px;box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar,.progress-bar-info,.progress-bar-success{background-color:#00e5f0}.progress-bar{float:left;width:0%;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-striped .progress-bar-success{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-striped .progress-bar-info,.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-striped .progress-bar-info{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#977bf0}.progress-striped .progress-bar-warning{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#e01f74}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{zoom:1}.media-body{width:10000px}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover,button.list-group-item:focus,button.list-group-item:hover{text-decoration:none;color:#555;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{background-color:#eee;color:#777;cursor:not-allowed}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#00e5f0;border-color:#00e5f0}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#bdfcff}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover,button.list-group-item-success:focus,button.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover,button.list-group-item-success.active,button.list-group-item-success.active:focus,button.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover,button.list-group-item-info:focus,button.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover,button.list-group-item-info.active,button.list-group-item-info.active:focus,button.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover,button.list-group-item-warning:focus,button.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover,button.list-group-item-warning.active,button.list-group-item-warning.active:focus,button.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover,button.list-group-item-danger:focus,button.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover,button.list-group-item-danger.active,button.list-group-item-danger.active:focus,button.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.panel-heading>.dropdown .dropdown-toggle,.panel-title,.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-title,.panel>.list-group,.panel>.panel-collapse>.list-group,.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-title{margin-top:0;font-size:16px}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel-group .panel-heading,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:3px;border-top-left-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.panel>.table-responsive:first-child>.table:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.list-group+.panel-footer,.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-left:15px;padding-right:15px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child,.panel>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-left-radius:3px;border-bottom-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#00e5f0}.panel-primary>.panel-heading{color:#fff;background-color:#00e5f0;border-color:#00e5f0}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#00e5f0}.panel-primary>.panel-heading .badge{color:#00e5f0;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#00e5f0}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;left:0;bottom:0;height:100%;width:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.popover,.tooltip{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;text-decoration:none}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.modal-content,.popover{background-clip:padding-box}.modal{display:none;position:fixed;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0,-25%);transform:translate(0,-25%);-webkit-transition:-webkit-transform .3s ease-out;transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;box-shadow:0 3px 9px rgba(0,0,0,.5);outline:0}.modal-backdrop{position:fixed;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-weight:400;text-align:left;text-align:start;font-size:12px;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow,.tooltip.top-left .tooltip-arrow,.tooltip.top-right .tooltip-arrow{bottom:0;border-width:5px 5px 0;border-top-color:#000}.tooltip.top .tooltip-arrow{left:50%;margin-left:-5px}.tooltip.top-left .tooltip-arrow{right:5px;margin-bottom:-5px}.tooltip.top-right .tooltip-arrow{left:5px;margin-bottom:-5px}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow,.tooltip.bottom-left .tooltip-arrow,.tooltip.bottom-right .tooltip-arrow{border-width:0 5px 5px;border-bottom-color:#000;top:0}.tooltip.bottom .tooltip-arrow{left:50%;margin-left:-5px}.tooltip.bottom-left .tooltip-arrow{right:5px;margin-top:-5px}.tooltip.bottom-right .tooltip-arrow{left:5px;margin-top:-5px}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-weight:400;text-align:left;text-align:start;font-size:14px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;box-shadow:0 5px 10px rgba(0,0,0,.2)}.carousel-caption,.carousel-control{color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.carousel,.carousel-inner{position:relative}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,.25);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff}.popover.left>.arrow:after,.popover.right>.arrow:after{content:" ";bottom:-10px}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:rgba(0,0,0,.25)}.popover.right>.arrow:after{left:1px;border-left-width:0;border-right-color:#fff}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;border-right-width:0;border-left-color:#fff}.carousel-inner{width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.active.right,.carousel-inner>.item.next{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);left:0}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);left:0}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);left:0}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:.5;filter:alpha(opacity=50);font-size:20px;background-color:rgba(0,0,0,0)}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:focus,.carousel-control:hover{outline:0;color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;margin-top:-10px;z-index:5;display:inline-block}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;line-height:1;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #fff;border-radius:10px;cursor:pointer;background-color:#000\9;background-color:rgba(0,0,0,0)}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#fff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px}.carousel-caption .btn,.text-hide{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-10px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-10px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.modal-header:after,.modal-header:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{content:" ";display:table}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.modal-header:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.hidden,.visible-lg,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;background-color:transparent;border:0}.analytics h2,.analytics h3{font-size:14px;color:#5B6667}.affix{position:fixed}@-ms-viewport{width:device-width}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}.visible-xs-block{display:block!important}.visible-xs-inline{display:inline!important}.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}.visible-sm-block{display:block!important}.visible-sm-inline{display:inline!important}.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}.visible-md-block{display:block!important}.visible-md-inline{display:inline!important}.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}.visible-lg-block{display:block!important}.visible-lg-inline{display:inline!important}.visible-lg-inline-block{display:inline-block!important}.hidden-lg{display:none!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table!important}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}.hidden-print{display:none!important}}.top-buffer-1{margin-top:15px}.top-buffer-2{margin-top:30px}.top-buffer-3{margin-top:45px}.top-buffer-4{margin-top:60px}.top-buffer-5{margin-top:75px}.top-buffer-6{margin-top:90px}.top-buffer-7{margin-top:105px}.top-buffer-8{margin-top:120px}.top-buffer-9{margin-top:135px}.top-buffer-10{margin-top:150px}body{height:101%!important}.analytics h2{margin-top:2px}.analytics h3{margin:0;font-weight:300;text-align:left}.analytics h4{color:#5B6667;font-size:16px}.analytics .green,.analytics .positive{color:green!important}.analytics .negative,.analytics .red{color:#ed1e79!important}.analytics .positive2{color:#3fc4ff!important}.analytics .negative2{color:#1de9b6!important}.analytics a{font-weight:700;color:#977bf0;cursor:pointer}.analytics .input-group{width:100%}.analytics select{margin-top:5px;background-color:#fff;height:32px}.analytics pre{font-size:12px;padding:0;margin:1px 0 8px;border:none;white-space:pre-wrap;word-wrap:break-word}.analytics .widget-item .content ::-webkit-scrollbar,.analytics kpis-bar .kpi ::-webkit-scrollbar{width:6px;background-color:transparent}.analytics .widget-item .content ::-webkit-scrollbar-thumb,.analytics kpis-bar .kpi ::-webkit-scrollbar-thumb{background-color:#6896b2;border-radius:10px}.analytics .widget-item .content ::-webkit-scrollbar-thumb:hover,.analytics kpis-bar .kpi ::-webkit-scrollbar-thumb:hover{background-color:#79a2bb}.analytics .nopadding{padding:0}.analytics .nomargin{margin:0}.analytics .btn.btn-shaded{background-color:#17262d;border:1px solid #0e181c;color:#626d6d;font-weight:400}.analytics .btn.btn-shaded:hover{color:#6e7a7a;background-color:#20343e}.analytics .price{font-weight:900;font-size:22px;color:#5B6667;text-align:center;margin-top:30px}.analytics .currency{font-weight:300;font-size:16px;text-align:center;color:#9ba6a7}.analytics .legend{font-weight:300;font-size:12px;text-align:center;overflow-y:auto;overflow-x:hidden;color:#c4caca}.analytics .loader{height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.analytics .loader i{color:#67BBE9}.analytics .loader p{margin-top:10px}.analytics .right-panel{border-left:solid 1px #e6e6e6}.analytics .selector{text-transform:uppercase;font-size:12px;color:#626d6d;text-align:center}.analytics .tile{background-color:#f7f7f7;box-shadow:0 7px 10px -7px #17262d;height:45px;margin-bottom:10px;white-space:nowrap;cursor:pointer}.analytics .tile:hover{background-color:#e2f2ff}.analytics .tile .colored-area{background-color:#3FC4FF;height:100%;float:right;color:#fff;text-align:right;padding:5px 10px;min-width:8%}.analytics .tile .colored-area.selected{background-color:#977bf0}.analytics .tile .main-text{color:#5B6667;padding:20px 0 0 5px;height:100%;font-style:italic;font-weight:700}.analytics .widget-lines-container{overflow-y:auto;overflow-x:hidden;max-height:200px;text-align:left;font-size:12px;padding:0 15px}.analytics .widget-lines-container .row.widget-line{padding:5px;color:#626d6d}.analytics .widget-lines-container .row.widget-line.header{font-weight:500;font-size:12px;color:#9ba6a7;text-transform:uppercase}@media (max-width:767px){.analytics .widget-lines-container .row.widget-line{margin:inherit;margin-left:-3px;margin-right:-3px;padding:2px}.analytics .widget-lines-container .row.widget-line>[class*=col-]{padding-left:3px;padding-right:3px}}.analytics .widget-lines-container .row.widget-line i.fa{min-width:12px;min-height:12px}.analytics .widget-lines-container .row .dashed{border-bottom:dashed 1px #dfe2e2;padding-bottom:3px;margin-bottom:3px}.analytics .widget-lines-container .row.lines-group{border-top:solid 1px #e6edee}.vertical-scroll{overflow-y:scroll}.horizontal-scroll{overflow-x:scroll}.tooltip.impac-widgets-tooltip .tooltip-inner.ng-binding{text-align:left;background-color:#232528;max-width:100%;white-space:nowrap}.tooltip.impac-widgets-tooltip .tooltip-inner.ng-binding strong{color:#dae173}.sortable-title{cursor:pointer}.sortable-title div{display:inline-block}div[ng-messages]{color:red}.has-error .form-control,.has-error .form-control:focus{border-color:#e01f74}.has-success .form-control,.has-success .form-control:focus{border-color:#00e5f0}.row.no-gutters{margin-right:0;margin-left:0}[class*=" col-"].no-gutters,[class^=col-].no-gutters{padding-right:0;padding-left:0}@media print{body{background-color:#fff!important}.analytics{padding-top:0!important}.analytics #module__dashboard-selector .title-container{margin-top:20px}.analytics .widget-item{page-break-inside:avoid}.analytics .widget-item .content .chart-container{max-width:270px;margin:auto}.analytics .widget-item .content .chart-container canvas{width:100%!important;height:100%!important}.analytics .widget-item .right-panel{page-break-inside:avoid;border-left:0}.analytics .widget-item .right-panel .chart-container{max-width:inherit;max-height:inherit}.analytics .widget-item .right-panel .chart-container canvas{width:80%!important;height:80%!important}*{-webkit-transition:none!important;transition:none!important}}.kpi-alerts-settings .modal-header{font-size:20px}.kpi-alerts-settings .modal-body{line-height:2}.kpi-alerts-settings .modal-body ul{margin-top:10px}.kpi-alerts-settings .modal-body ul>li.list-group-item{list-style:none;padding:6px 15px;color:#9ba6a7;user-select:none}.kpi-alerts-settings .modal-body ul>li.list-group-item .alert-toggle:hover{cursor:pointer}.kpi-alerts-settings .modal-body ul>li.list-group-item.active{color:#358fdc;font-weight:700;background-color:transparent;border-color:#c4caca}.kpi-alerts-settings .modal-body .fa.fa-toggle-off,.kpi-alerts-settings .modal-body .fa.fa-toggle-on{font-size:17px;margin-right:8px}.kpi-alerts-settings .modal-body ul.recipients-list{height:75px;overflow:hidden;overflow-y:scroll;border:1px solid #c4caca}.kpi-alerts-settings .modal-body ul.recipients-list li{border:none}.kpi-alerts-settings .modal-body input.recipient-search{color:#000;width:100%}.kpi-alerts-settings .modal-body ul.available{margin-top:0}.analytics{padding-top:50px;margin-left:100px}@media screen and (max-width:992px){.analytics{padding-top:150px}}.analytics.pdf-mode{padding-top:20px}.analytics.show-dhb{-webkit-transition:opacity 1s;transition:opacity 1s;opacity:1}.analytics.hide-dhb{opacity:0}.analytics #dashboard-heading img{float:left;margin-right:15px;max-width:200px;max-height:150px}.analytics #dashboard-heading img.pdf-mode:hover{cursor:pointer}.analytics #dashboard-heading .caption{font-size:14px;margin:5px 0}.analytics #sub-menu{margin-top:15px}.analytics #sub-menu h3{font-size:26px;font-weight:400;margin-bottom:10px;color:#233845}.analytics #sub-menu .fa.fa-times{margin:6px;color:#3d6178;cursor:pointer;float:right}.analytics #widget-selector{background-color:#233845;color:#fff;padding:0 45px 10px;margin:10px -45px;border-radius:3px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}@media (max-width:767px){.analytics #widget-selector{padding:0 15px 10px;margin:0}}.analytics #widget-selector .title{padding:15px 0;border-bottom:solid 1px #2d4859;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.analytics #widget-selector .title p.instruction{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;margin:0}@media screen and (max-width:768px){.analytics #widget-selector .title p.instruction{width:50%;font-size:13px}}.analytics #widget-selector .title .widget-added.badge{margin-right:10px;opacity:0}.analytics #widget-selector .title .fa.close-selector{float:right;cursor:pointer;font-size:20px;padding:6px}.analytics #widget-selector .title .fa.close-selector:hover{color:#999}.analytics #widget-selector .top-container{margin:15px 0;background-color:transparent;border-radius:3px}.analytics #widget-selector .section-header{padding:10px 20px;font-weight:700;min-height:40px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.analytics #widget-selector .section-lines{overflow-x:hidden;overflow-y:auto;height:200px;margin-right:-10px;margin-left:0}.analytics #widget-selector .section-lines p{padding:5px;margin:0;cursor:pointer}.analytics #widget-selector .section-lines p.selected,.analytics #widget-selector .section-lines p:hover{color:#fff}.analytics #widget-selector .section-lines::-webkit-scrollbar{width:6px;background-color:transparent}.analytics #widget-selector .section-lines::-webkit-scrollbar-thumb{background-color:#28404f;border-radius:10px}.analytics #widget-selector .section-lines::-webkit-scrollbar-thumb:hover{background-color:#2d4859}.analytics #widget-selector .categories-section{background-color:#192831;padding-bottom:15px}.analytics #widget-selector .categories-section>.section-lines>[class*=col-]:first-child{padding:3px 12px}.analytics #widget-selector .categories-section>.section-lines .line-item:hover{background-color:#1e303b}.analytics #widget-selector .categories-section>.section-lines .line-item.selected{background-color:#977bf0;font-weight:700;box-shadow:-2px 2px 10px -4px #000}.analytics #widget-selector .categories-section .arrow-icon{position:absolute;top:33px;right:-11px;z-index:1}.analytics #widget-selector .categories-section .arrow-icon .square{width:50px;height:30px;position:absolute;top:10px;right:17px;background-color:#977bf0}.analytics #widget-selector .categories-section .arrow-icon i.fa.fa-caret-right{font-size:52px;color:#977bf0;float:right;position:absolute;top:-1.5px;right:0}.analytics #widget-selector .widgets-section{background-color:#1e303b;padding-bottom:15px}.analytics #widget-selector .widgets-section>.section-header{text-transform:uppercase;font-size:12px;color:#977bf0}.analytics #widget-selector .widgets-section>.section-lines{padding:3px 0}.analytics #widget-selector .widgets-section>.section-lines .fa.fa-plus-circle{float:right;margin-top:3px}.analytics #widget-selector .widgets-section>.section-lines>.line-items-grid{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;height:0%}.analytics #widget-selector .widgets-section>.section-lines>.line-items-grid>.grid-item{padding:0 13px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-ms-flex:0 31.33%;flex:0 31.33%;margin:0 1%;-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-bottom:solid 1px #233845;min-height:0}@media screen and (max-width:992px){.analytics #widget-selector .widgets-section>.section-lines>.line-items-grid>.grid-item{-webkit-box-flex:0;-ms-flex:0 100%;flex:0 100%}}.analytics #widget-selector .widgets-section>.section-lines>.line-items-grid>.grid-item:hover{background-color:#192831;font-weight:400}.analytics #widget-selector .widgets-section>.section-lines>.line-items-grid>.grid-item p.line-item{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.analytics #widget-selector .bottom{height:20px}.analytics #widget-selector .bottom>.suggestion{float:right;opacity:.7}.analytics #widget-selector .bottom>.suggestion a{cursor:pointer}.analytics #widget-selector .bottom>.suggestion a:hover{color:#00e5f0}.analytics #widget-selector .bottom>.suggestion:hover{opacity:1}.analytics #dashboard-settings-panel{position:relative;margin-top:5px}.analytics #dashboard-settings-panel>div{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.analytics #dashboard-settings-panel>div>*{margin:0 3px}.analytics #dashboard-settings-panel select{margin:0;height:34px;padding-top:1px}.analytics #no-widgets-container{position:relative;min-height:150px}.analytics #no-widgets-container img.bg{left:0;top:0;min-width:100%;min-height:100%}.analytics #no-widgets-container .impac-info-message{position:absolute;top:0;width:100%}.analytics #no-widgets-container .impac-info-message .info-text{font-size:25px;font-weight:300;padding:20px;min-height:115px;color:#fff;border-radius:10px;background-color:rgba(23,38,45,.7)}.analytics #widgets-section #widgets-container{min-height:700px}.analytics #widgets-section .placeHolderBox{margin:12px;height:267px;width:300px;float:left;border:2px dashed #abc4c6;background:0 0}.analytics.load-failed p{font-size:22px}.analytics.load-failed .second-msg p{color:#e01f74;font-size:14px}.tooltip.impac-widget-selector-tooltip .tooltip-inner.ng-binding{font-size:14px}.impac-widget-suggestion .modal-body input,.impac-widget-suggestion .modal-body textarea{width:100%;color:#000}.impac-widget-suggestion .modal-body textarea{height:150px}.impac-widget-suggestion .modal-body .thanks-message{color:#dae173}.modal-footer .loader{color:#fff}.analytics .dashboard-create .btn-create{background-color:#977bf0}.modal.impac-dashboard-create h1{font-size:24px}.modal.impac-dashboard-create .fa.fa-times{float:right;color:#ccc;cursor:pointer}.modal.impac-dashboard-create .control-label{text-align:left}.modal.impac-dashboard-create .modal-footer .loader{color:#fff}#module__dashboard-selector a{font-weight:400}#module__dashboard-selector>div:first-child{border-bottom:1px solid #abc4c6}#module__dashboard-selector .buttons-bar-row{margin-top:54px}#module__dashboard-selector .buttons-bar-row.pdf-mode{margin-top:0}#module__dashboard-selector .buttons-bar{padding:0;position:relative}#module__dashboard-selector .buttons-bar .btn{float:right;margin:3px;border-radius:4px}#module__dashboard-selector .buttons-bar .title-container h1{margin:0;color:#000;cursor:auto}#module__dashboard-selector .buttons-bar .dropdown-container .dashboard-title{color:#977bf0;display:inline;cursor:pointer}#module__dashboard-selector .buttons-bar .dropdown-container .dashboard-title:hover{color:#734deb}#module__dashboard-selector .buttons-bar .dropdown-container .dashboard-title i.fa.fa-pencil{margin-left:20px;font-size:14px}#module__dashboard-selector .buttons-bar .dropdown-container .dashboard-title i.fa.fa-pencil:hover{color:#dae173}#module__dashboard-selector .buttons-bar .dropdown-container .dashboard-select{margin:5px 0 10px 30px;height:auto;border-left:1px solid #977bf0;border-bottom:1px solid #977bf0;width:300px;background-color:#e6edee;cursor:pointer}#module__dashboard-selector .buttons-bar .dropdown-container .dashboard-select .option{color:#17262d;white-space:nowrap}#module__dashboard-selector .buttons-bar .dropdown-container .dashboard-select .option:hover{background-color:#fff}#module__dashboard-selector .buttons-bar .dropdown-container .dashboard-select .option.dashboard-create{height:33px}#module__dashboard-selector .buttons-bar .dropdown-container .dashboard-select .option.dashboard-create .btn{float:none;width:100%;text-align:left;margin:0;border-radius:0}#module__dashboard-selector .buttons-bar .dropdown-container .dashboard-select .option i.fa.fa-pencil{float:right;padding-top:7px;text-align:center;width:15%;height:30px}#module__dashboard-selector .buttons-bar .dropdown-container .dashboard-select .option i.fa.fa-pencil:hover{color:#734deb}#module__dashboard-selector .buttons-bar .dropdown-container .dashboard-select .option span.name{width:85%;height:30px;display:inline-block;padding:5px 10px}#module__dashboard-selector .buttons-bar .dropdown-container .change-name{position:absolute;top:30px;left:20px;width:60%;background-color:#17262d;color:#fff;padding:10px;border-radius:4px;text-align:center;box-shadow:0 0 25px 4px #000;z-index:50;border:1px solid #fff}#module__dashboard-selector .buttons-bar .dropdown-container .change-name .form-control{height:25px;margin-bottom:10px}#module__dashboard-selector .buttons-bar .dropdown-container .data-source-label{color:#17262d;padding-left:3px;margin:0}#module__dashboard-selector .buttons-bar .loader-container{padding-left:10px}#module__dashboard-selector .buttons-bar .loader-container .loading-spinner{color:#67BBE9;font-size:40px}#module__dashboard-selector .nav-tabs{border-bottom:0}#module__dashboard-selector .nav.nav-pills li:last-child>a,#module__dashboard-selector .nav.nav-tabs li:last-child>a{padding-right:15px}#module__dashboard-selector .nav.nav-pills li:last-child>a tab-heading a,#module__dashboard-selector .nav.nav-tabs li:last-child>a tab-heading a{position:static}#module__dashboard-selector .nav.nav-tabs li>a{padding:10px 8px 10px 15px;margin:0 2px 0 0;background-color:transparent;border:1px solid #abc4c6;color:#000}#module__dashboard-selector .nav.nav-tabs li.active>a{background-color:#fff;color:#977bf0}#module__dashboard-selector .nav.nav-tabs li:last-child.active>a{background-color:transparent}#module__dashboard-selector .nav.nav-pills li>a{min-width:0;padding-right:8px}#module__dashboard-selector .nav.nav-pills li:last-child tab-heading a{margin-left:2px}#module__dashboard-selector .nav.nav-pills li:last-child.active>a{background-color:#f4f4f4}#module__dashboard-selector tab-heading a.close-link{border-bottom:0 solid;margin-left:12px;position:relative;top:-9px;right:1px;color:#000}dashboard-templates-selector .templates-header{display:-webkit-box;display:-ms-flexbox;display:flex}dashboard-templates-selector .templates-header .templates-toggle{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;font-size:20px}dashboard-templates-selector .templates-header .templates-toggle i.fa{cursor:pointer}dashboard-templates-selector .templates-header .templates-toggle i.fa.fa-toggle-on{color:#977bf0}dashboard-templates-selector .templates{border:1px solid #ccc;box-shadow:inset 0 0 1px 0 #ccc;height:130px;overflow:auto;border-radius:2px}dashboard-templates-selector .templates .template{padding:5px 10px;color:#5B6667;border-bottom:1px solid #ececec}.analytics .impac-kpi .kpi.add:hover .kpi-icon,.analytics .impac-kpi .kpi.add:hover .kpi-text{color:#000}dashboard-templates-selector .templates .template:hover{cursor:pointer;background-color:rgba(96,232,119,.62)}dashboard-templates-selector .templates .template.selected{background-color:rgba(29,197,57,.62)}.analytics .impac-kpi .kpi{position:relative;max-width:220px;min-height:95px;max-height:95px;background-color:#fff;margin:10px 0;border-bottom:1px solid #fff;-webkit-transition:all .2s ease-in;transition:all .2s ease-in}@media screen and (max-width:768px){.analytics .impac-kpi .kpi{margin-left:auto;margin-right:auto}}.analytics .impac-kpi .kpi.add:hover,.analytics .impac-kpi .kpi.triggered{border-bottom:4px solid #e01f74}.analytics .impac-kpi .kpi.add .kpi-text .emphasis{visibility:hidden}.analytics .impac-kpi .kpi.add:hover{cursor:pointer}.analytics .impac-kpi .kpi.add:hover .top-line{background-color:#000}.analytics .impac-kpi .kpi.add:hover .kpi-text .emphasis{visibility:visible}.analytics .impac-kpi .kpi.add:hover .kpi-icon .fa-plus:before{content:"\f00c"}.analytics .impac-kpi .kpi.editing{min-height:185px}.analytics .impac-kpi .kpi:hover{cursor:default}.analytics .impac-kpi .kpi.static .kpi-value{display:block;font-size:14px;font-weight:700}.analytics .impac-kpi .kpi .top-line{width:100%;position:relative;cursor:move;padding:9px 9px 0 12px;border-bottom:none;min-height:7px;box-shadow:none;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;margin-bottom:5px;background-color:grey;-webkit-transition:background .2s ease-in;transition:background .2s ease-in}.analytics .impac-kpi .kpi .top-line.triggered{background-color:#000}.analytics .impac-kpi .kpi .kpi-content{max-height:90px}.analytics .impac-kpi .kpi .kpi-content.editing{min-height:180px;overflow-y:auto;overflow-x:hidden}.analytics .impac-kpi .kpi .kpi-show{white-space:normal;padding:10px}.analytics .impac-kpi .kpi .kpi-show .caption,.analytics .impac-kpi .kpi .kpi-show .emphasis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media screen and (max-width:380px){.analytics .impac-kpi .kpi .kpi-show{padding:10px 3px}}.analytics .impac-kpi .kpi .kpi-show .emphasis .real-value{color:#676767}.analytics .impac-kpi .kpi .kpi-show .kpi-text{padding:7px 0;color:grey;-webkit-transition:color .2s ease-in;transition:color .2s ease-in}.analytics .impac-kpi .kpi .kpi-show .kpi-text>span{display:block}.analytics .impac-kpi .kpi .kpi-show .kpi-text.triggered{color:#000}.analytics .impac-kpi .kpi .kpi-show .kpi-text .caption{font-size:11px;padding-bottom:2px}@media screen and (max-width:465px){.analytics .impac-kpi .kpi .kpi-show .kpi-text .caption{font-size:10px}.analytics .impac-kpi .kpi .kpi-show .kpi-text .emphasis{font-size:11px}}.analytics .impac-kpi .kpi .kpi-show .kpi-icon{font-size:16px;padding:10px 0;color:grey;-webkit-transition:color .2s ease-in;transition:color .2s ease-in}.analytics .impac-kpi .kpi .kpi-show .kpi-icon.triggered{color:#000}@media screen and (max-width:465px){.analytics .impac-kpi .kpi .kpi-show .kpi-icon{font-size:12px;padding:16px 0}}.analytics .impac-kpi .kpi .kpi-edit a{color:#fff}.analytics .impac-kpi .kpi .kpi-edit .kpi-name{text-align:center;margin-bottom:5px}.analytics .impac-kpi .kpi .kpi-edit .kpi-name h6{margin:0 0 5px}.analytics .impac-kpi .kpi .kpi-edit .real-value{text-transform:uppercase;font-size:10px;text-align:center}.analytics .impac-kpi .kpi .kpi-edit .alert-caption{text-align:center;font-size:11px;background:#f99;border-radius:3px;width:100%;margin:0 auto 5px;box-shadow:none;padding:2px;color:#fff}.analytics .impac-kpi .kpi .kpi-edit .kpi-target-unit,.analytics .impac-kpi .kpi .kpi-edit .kpi-target-watchable{text-transform:uppercase;font-weight:500;font-size:11px}.analytics .impac-kpi .kpi .kpi-edit .kpi-target-watchable{margin-bottom:20px;color:#8d8d8d}.analytics .impac-kpi .kpi .kpi-edit .kpi-target-unit{position:absolute;top:6px;right:0;color:#9a9a9a}.analytics .impac-kpi .kpi .kpi-edit .param-name{font-size:85%}.analytics .impac-kpi .kpi .kpi-edit .btn.btn-xs{margin-top:4px}.analytics .impac-kpi .kpi .kpi-edit .add-on,.analytics .impac-kpi .kpi .kpi-edit .alert,.analytics .impac-kpi .kpi .kpi-edit .badge,.analytics .impac-kpi .kpi .kpi-edit .btn,.analytics .impac-kpi .kpi .kpi-edit .dropdown-menu,.analytics .impac-kpi .kpi .kpi-edit .img-polaroid,.analytics .impac-kpi .kpi .kpi-edit .label,.analytics .impac-kpi .kpi .kpi-edit .modal,.analytics .impac-kpi .kpi .kpi-edit .nav>.active>a,.analytics .impac-kpi .kpi .kpi-edit .navbar-inner,.analytics .impac-kpi .kpi .kpi-edit .popover,.analytics .impac-kpi .kpi .kpi-edit .progress,.analytics .impac-kpi .kpi .kpi-edit .table-bordered,.analytics .impac-kpi .kpi .kpi-edit .tooltip,.analytics .impac-kpi .kpi .kpi-edit .tooltip-inner,.analytics .impac-kpi .kpi .kpi-edit .well,.analytics .impac-kpi .kpi .kpi-edit input,.analytics .impac-kpi .kpi .kpi-edit pre,.analytics .impac-kpi .kpi .kpi-edit select,.analytics .impac-kpi .kpi .kpi-edit textarea,.analytics .impac-kpi .kpi .kpi-no-data .add-on,.analytics .impac-kpi .kpi .kpi-no-data .alert,.analytics .impac-kpi .kpi .kpi-no-data .badge,.analytics .impac-kpi .kpi .kpi-no-data .btn,.analytics .impac-kpi .kpi .kpi-no-data .dropdown-menu,.analytics .impac-kpi .kpi .kpi-no-data .img-polaroid,.analytics .impac-kpi .kpi .kpi-no-data .label,.analytics .impac-kpi .kpi .kpi-no-data .modal,.analytics .impac-kpi .kpi .kpi-no-data .nav>.active>a,.analytics .impac-kpi .kpi .kpi-no-data .navbar-inner,.analytics .impac-kpi .kpi .kpi-no-data .popover,.analytics .impac-kpi .kpi .kpi-no-data .progress,.analytics .impac-kpi .kpi .kpi-no-data .table-bordered,.analytics .impac-kpi .kpi .kpi-no-data .tooltip,.analytics .impac-kpi .kpi .kpi-no-data .tooltip-inner,.analytics .impac-kpi .kpi .kpi-no-data .well,.analytics .impac-kpi .kpi .kpi-no-data input,.analytics .impac-kpi .kpi .kpi-no-data pre,.analytics .impac-kpi .kpi .kpi-no-data select,.analytics .impac-kpi .kpi .kpi-no-data textarea{box-shadow:none!important;border-radius:0!important;border-collapse:collapse!important;background-image:none!important}.analytics .impac-kpi .kpi .kpi-edit body,.analytics .impac-kpi .kpi .kpi-edit body::after,.analytics .impac-kpi .kpi .kpi-edit body::before,.analytics .impac-kpi .kpi .kpi-edit input,.analytics .impac-kpi .kpi .kpi-edit input::after,.analytics .impac-kpi .kpi .kpi-edit input::before,.analytics .impac-kpi .kpi .kpi-edit select,.analytics .impac-kpi .kpi .kpi-edit select::after,.analytics .impac-kpi .kpi .kpi-edit select::before,.analytics .impac-kpi .kpi .kpi-edit textarea,.analytics .impac-kpi .kpi .kpi-edit textarea::after,.analytics .impac-kpi .kpi .kpi-edit textarea::before,.analytics .impac-kpi .kpi .kpi-no-data body,.analytics .impac-kpi .kpi .kpi-no-data body::after,.analytics .impac-kpi .kpi .kpi-no-data body::before,.analytics .impac-kpi .kpi .kpi-no-data input,.analytics .impac-kpi .kpi .kpi-no-data input::after,.analytics .impac-kpi .kpi .kpi-no-data input::before,.analytics .impac-kpi .kpi .kpi-no-data select,.analytics .impac-kpi .kpi .kpi-no-data select::after,.analytics .impac-kpi .kpi .kpi-no-data select::before,.analytics .impac-kpi .kpi .kpi-no-data textarea,.analytics .impac-kpi .kpi .kpi-no-data textarea::after,.analytics .impac-kpi .kpi .kpi-no-data textarea::before{box-sizing:border-box}.analytics .impac-kpi .kpi .kpi-edit input[type=number]::-webkit-inner-spin-button,.analytics .impac-kpi .kpi .kpi-edit input[type=number]::-webkit-outer-spin-button,.analytics .impac-kpi .kpi .kpi-no-data input[type=number]::-webkit-inner-spin-button,.analytics .impac-kpi .kpi .kpi-no-data input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.analytics .impac-kpi .kpi .kpi-edit a:hover,.analytics .impac-kpi .kpi .kpi-no-data a:hover{text-decoration:none}.analytics .impac-kpi .kpi .kpi-edit fieldset,.analytics .impac-kpi .kpi .kpi-no-data fieldset{margin:0 0 1.75rem;padding:0;border:none}.analytics .impac-kpi .kpi .kpi-edit .im-form-group,.analytics .impac-kpi .kpi .kpi-edit .im-form-radio,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group,.analytics .impac-kpi .kpi .kpi-no-data .im-form-radio{position:relative;margin-top:1.3125rem;margin-bottom:1.3125rem}.analytics .impac-kpi .kpi .kpi-edit .im-form-inline,.analytics .impac-kpi .kpi .kpi-no-data .im-form-inline{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;box-sizing:border-box}.analytics .impac-kpi .kpi .kpi-edit .im-form-inline>.im-form-group,.analytics .impac-kpi .kpi .kpi-no-data .im-form-inline>.im-form-group{display:block;-webkit-box-flex:1;-ms-flex:1;flex:1;position:relative;vertical-align:middle;margin-left:.175rem;margin-right:.175rem}.analytics .impac-kpi .kpi .kpi-edit .im-form-inline>.btn,.analytics .impac-kpi .kpi .kpi-no-data .im-form-inline>.btn{display:inline-block;margin-bottom:0}.analytics .impac-kpi .kpi .kpi-edit .im-form-group input,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input{height:2.375rem}.analytics .impac-kpi .kpi .kpi-edit .im-form-group select,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group select{width:100%;font-size:1.25rem;height:2rem;padding:.15625rem .15625rem .078125rem;background:0 0;border:none;line-height:1.6;box-shadow:none}.analytics .impac-kpi .kpi .kpi-edit .im-form-group .im-control-label,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group .im-control-label{position:absolute;top:.3125rem;pointer-events:none;padding-left:.15625rem;z-index:1;color:#b3b3b3;font-size:1.25rem;font-weight:400;-webkit-transition:all .28s ease;transition:all .28s ease}.analytics .impac-kpi .kpi .kpi-edit .im-form-group .im-bar,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group .im-bar{position:relative;border-bottom:.078125rem solid #999;display:block}.analytics .impac-kpi .kpi .kpi-edit .im-form-group .im-bar::before,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group .im-bar::before{content:'';height:.15625rem;width:0;left:50%;bottom:-.078125rem;position:absolute;background:#358fdc;-webkit-transition:left .28s ease,width .28s ease;transition:left .28s ease,width .28s ease;z-index:2}.analytics .impac-kpi .kpi .kpi-edit .im-form-group input,.analytics .impac-kpi .kpi .kpi-edit .im-form-group textarea,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group textarea{display:block;background:0 0;padding:.15625rem .15625rem .078125rem;font-size:1.25rem;border-width:0;border-color:transparent;line-height:1.9;width:100%;color:transparent;-webkit-transition:all .28s ease;transition:all .28s ease;box-shadow:none}.analytics .impac-kpi .kpi .kpi-edit .im-form-group input[type=file],.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input[type=file]{line-height:1}.analytics .impac-kpi .kpi .kpi-edit .im-form-group input[type=file]~.im-bar,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input[type=file]~.im-bar{display:none}.analytics .impac-kpi .kpi .kpi-edit .im-form-group input.form-file,.analytics .impac-kpi .kpi .kpi-edit .im-form-group input.has-value,.analytics .impac-kpi .kpi .kpi-edit .im-form-group input:focus,.analytics .impac-kpi .kpi .kpi-edit .im-form-group input:valid,.analytics .impac-kpi .kpi .kpi-edit .im-form-group select,.analytics .impac-kpi .kpi .kpi-edit .im-form-group textarea.form-file,.analytics .impac-kpi .kpi .kpi-edit .im-form-group textarea.has-value,.analytics .impac-kpi .kpi .kpi-edit .im-form-group textarea:focus,.analytics .impac-kpi .kpi .kpi-edit .im-form-group textarea:valid,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input.form-file,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input.has-value,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input:focus,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input:valid,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group select,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group textarea.form-file,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group textarea.has-value,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group textarea:focus,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group textarea:valid{color:#333}.analytics .impac-kpi .kpi .kpi-edit .im-form-group input.form-file~.im-control-label,.analytics .impac-kpi .kpi .kpi-edit .im-form-group input.has-value~.im-control-label,.analytics .impac-kpi .kpi .kpi-edit .im-form-group input:focus~.im-control-label,.analytics .impac-kpi .kpi .kpi-edit .im-form-group input:valid~.im-control-label,.analytics .impac-kpi .kpi .kpi-edit .im-form-group select~.im-control-label,.analytics .impac-kpi .kpi .kpi-edit .im-form-group textarea.form-file~.im-control-label,.analytics .impac-kpi .kpi .kpi-edit .im-form-group textarea.has-value~.im-control-label,.analytics .impac-kpi .kpi .kpi-edit .im-form-group textarea:focus~.im-control-label,.analytics .impac-kpi .kpi .kpi-edit .im-form-group textarea:valid~.im-control-label,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input.form-file~.im-control-label,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input.has-value~.im-control-label,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input:focus~.im-control-label,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input:valid~.im-control-label,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group select~.im-control-label,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group textarea.form-file~.im-control-label,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group textarea.has-value~.im-control-label,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group textarea:focus~.im-control-label,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group textarea:valid~.im-control-label{font-size:1rem;color:grey;top:-1.25rem;left:0}.analytics .impac-kpi .kpi .kpi-edit .im-form-group input:focus,.analytics .impac-kpi .kpi .kpi-edit .im-form-group select:focus,.analytics .impac-kpi .kpi .kpi-edit .im-form-group textarea:focus,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input:focus,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group select:focus,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group textarea:focus{outline:0}.analytics .impac-kpi .kpi .kpi-edit .im-form-group input:focus~.im-control-label,.analytics .impac-kpi .kpi .kpi-edit .im-form-group select:focus~.im-control-label,.analytics .impac-kpi .kpi .kpi-edit .im-form-group textarea:focus~.im-control-label,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input:focus~.im-control-label,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group select:focus~.im-control-label,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group textarea:focus~.im-control-label{color:#358fdc}.analytics .impac-kpi .kpi .kpi-edit .im-form-group input:focus~.im-bar::before,.analytics .impac-kpi .kpi .kpi-edit .im-form-group select:focus~.im-bar::before,.analytics .impac-kpi .kpi .kpi-edit .im-form-group textarea:focus~.im-bar::before,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input:focus~.im-bar::before,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group select:focus~.im-bar::before,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group textarea:focus~.im-bar::before{width:100%;left:0}.analytics .impac-kpi .kpi .kpi-edit .im-checkbox label,.analytics .impac-kpi .kpi .kpi-edit .im-form-radio label,.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox label,.analytics .impac-kpi .kpi .kpi-no-data .im-form-radio label{position:relative;cursor:pointer;padding-left:2.5rem;text-align:left;color:#333;display:block}.analytics .impac-kpi .kpi .kpi-edit .im-checkbox input,.analytics .impac-kpi .kpi .kpi-edit .im-form-radio input,.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox input,.analytics .impac-kpi .kpi .kpi-no-data .im-form-radio input{width:auto;opacity:.00000001;position:absolute;left:0}.analytics .impac-kpi .kpi .kpi-edit .im-radio,.analytics .impac-kpi .kpi .kpi-no-data .im-radio{margin-bottom:1.25rem}.analytics .impac-kpi .kpi .kpi-edit .im-radio .im-helper,.analytics .impac-kpi .kpi .kpi-no-data .im-radio .im-helper{position:absolute;top:-.3125rem;left:-.3125rem;cursor:pointer;display:block;font-size:1.25rem;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;color:#999}.analytics .impac-kpi .kpi .kpi-edit .im-radio .im-helper::after,.analytics .impac-kpi .kpi .kpi-edit .im-radio .im-helper::before,.analytics .impac-kpi .kpi .kpi-no-data .im-radio .im-helper::after,.analytics .impac-kpi .kpi .kpi-no-data .im-radio .im-helper::before{content:'';position:absolute;left:0;top:0;margin:.3125rem;width:1.25rem;height:1.25rem;-webkit-transition:-webkit-transform .28s ease;transition:-webkit-transform .28s ease;transition:transform .28s ease;transition:transform .28s ease,-webkit-transform .28s ease;border-radius:50%;border:.15625rem solid currentColor}.analytics .impac-kpi .kpi .kpi-edit .im-radio .im-helper::after,.analytics .impac-kpi .kpi .kpi-no-data .im-radio .im-helper::after{-webkit-transform:scale(0);transform:scale(0);background-color:#358fdc;border-color:#358fdc}.analytics .impac-kpi .kpi .kpi-edit .im-radio label:hover .im-helper,.analytics .impac-kpi .kpi .kpi-no-data .im-radio label:hover .im-helper{color:#358fdc}.analytics .impac-kpi .kpi .kpi-edit .im-radio input:checked~.im-helper::after,.analytics .impac-kpi .kpi .kpi-no-data .im-radio input:checked~.im-helper::after{-webkit-transform:scale(.5);transform:scale(.5)}.analytics .impac-kpi .kpi .kpi-edit .im-radio input:checked~.im-helper::before,.analytics .impac-kpi .kpi .kpi-no-data .im-radio input:checked~.im-helper::before{color:#358fdc}.analytics .impac-kpi .kpi .kpi-edit .im-checkbox,.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox{margin-top:1.75rem;margin-bottom:1.25rem}.analytics .impac-kpi .kpi .kpi-edit .im-checkbox .im-helper,.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox .im-helper{color:#999;position:absolute;top:0;left:0;width:1.25rem;height:1.25rem;z-index:0;border:.15625rem solid currentColor;border-radius:.078125rem;-webkit-transition:border-color .28s ease;transition:border-color .28s ease}.analytics .impac-kpi .kpi .kpi-edit .im-checkbox .im-helper::after,.analytics .impac-kpi .kpi .kpi-edit .im-checkbox .im-helper::before,.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox .im-helper::after,.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox .im-helper::before{position:absolute;height:0;width:.25rem;background-color:#358fdc;display:block;-webkit-transform-origin:left top;transform-origin:left top;border-radius:.3125rem;content:'';-webkit-transition:opacity .28s ease,height 0s linear .28s;transition:opacity .28s ease,height 0s linear .28s;opacity:0}.analytics .impac-kpi .kpi .kpi-edit .im-checkbox .im-helper::before,.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox .im-helper::before{top:.8125rem;left:.475rem;-webkit-transform:rotate(-135deg);transform:rotate(-135deg);box-shadow:0 0 0 .078125rem #fff}.analytics .impac-kpi .kpi .kpi-edit .im-checkbox .im-helper::after,.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox .im-helper::after{top:.375rem;left:0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.analytics .impac-kpi .kpi .kpi-edit .im-checkbox label:hover .im-helper,.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox label:hover .im-helper{color:#358fdc}.analytics .impac-kpi .kpi .kpi-edit .im-checkbox input:checked~.im-helper,.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox input:checked~.im-helper{color:#358fdc}.analytics .impac-kpi .kpi .kpi-edit .im-checkbox input:checked~.im-helper::after,.analytics .impac-kpi .kpi .kpi-edit .im-checkbox input:checked~.im-helper::before,.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox input:checked~.im-helper::after,.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox input:checked~.im-helper::before{opacity:1;-webkit-transition:height .28s ease;transition:height .28s ease}.analytics .impac-kpi .kpi .kpi-edit .im-checkbox input:checked~.im-helper::after,.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox input:checked~.im-helper::after{height:.625rem}.analytics .impac-kpi .kpi .kpi-edit .im-checkbox input:checked~.im-helper::before,.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox input:checked~.im-helper::before{height:1.5rem;-webkit-transition-delay:.28s;transition-delay:.28s}.analytics .impac-kpi .kpi .kpi-edit .im-checkbox+.im-checkbox,.analytics .impac-kpi .kpi .kpi-edit .im-radio+.im-radio,.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox+.im-checkbox,.analytics .impac-kpi .kpi .kpi-no-data .im-radio+.im-radio{margin-top:1.25rem}.analytics .impac-kpi .kpi .kpi-edit .im-messages,.analytics .impac-kpi .kpi .kpi-no-data .im-messages{font-size:1.04166667rem;color:#e01f74;overflow:hidden;-webkit-transition:all .28s cubic-bezier(.55,0,.55,.2);transition:all .28s cubic-bezier(.55,0,.55,.2);opacity:0;margin-top:0;padding-top:5px}.analytics .impac-kpi .kpi .kpi-edit .has-error .legend.legend,.analytics .impac-kpi .kpi .kpi-edit .has-error.im-form-group .im-control-label.im-control-label,.analytics .impac-kpi .kpi .kpi-no-data .has-error .legend.legend,.analytics .impac-kpi .kpi .kpi-no-data .has-error.im-form-group .im-control-label.im-control-label{color:#e01f74}.analytics .impac-kpi .kpi .kpi-edit .has-error.im-checkbox .im-helper,.analytics .impac-kpi .kpi .kpi-edit .has-error.im-checkbox .im-messages,.analytics .impac-kpi .kpi .kpi-edit .has-error.im-form-group .im-helper,.analytics .impac-kpi .kpi .kpi-edit .has-error.im-form-group .im-messages,.analytics .impac-kpi .kpi .kpi-edit .has-error.im-form-radio .im-helper,.analytics .impac-kpi .kpi .kpi-edit .has-error.im-form-radio .im-messages,.analytics .impac-kpi .kpi .kpi-edit .has-error.im-radio .im-helper,.analytics .impac-kpi .kpi .kpi-edit .has-error.im-radio .im-messages,.analytics .impac-kpi .kpi .kpi-no-data .has-error.im-checkbox .im-helper,.analytics .impac-kpi .kpi .kpi-no-data .has-error.im-checkbox .im-messages,.analytics .impac-kpi .kpi .kpi-no-data .has-error.im-form-group .im-helper,.analytics .impac-kpi .kpi .kpi-no-data .has-error.im-form-group .im-messages,.analytics .impac-kpi .kpi .kpi-no-data .has-error.im-form-radio .im-helper,.analytics .impac-kpi .kpi .kpi-no-data .has-error.im-form-radio .im-messages,.analytics .impac-kpi .kpi .kpi-no-data .has-error.im-radio .im-helper,.analytics .impac-kpi .kpi .kpi-no-data .has-error.im-radio .im-messages{color:#e01f74;opacity:1}.analytics .impac-kpi .kpi .kpi-edit .has-error .im-bar::before,.analytics .impac-kpi .kpi .kpi-no-data .has-error .im-bar::before{background:#e01f74;left:0;width:100%}.analytics .impac-kpi .kpi .kpi-edit .im-button,.analytics .impac-kpi .kpi .kpi-no-data .im-button{position:relative;background:#60a7e4;border:0;font-size:1.375rem;color:#333;margin:.7rem 0;padding:.4375rem 1.75rem;border-radius:3px;cursor:pointer;overflow:hidden;box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12)}.analytics .impac-kpi .kpi .kpi-edit .im-button span,.analytics .impac-kpi .kpi .kpi-no-data .im-button span{color:#fff;position:relative;z-index:1}.analytics .impac-kpi .kpi .kpi-edit .im-button:hover,.analytics .impac-kpi .kpi .kpi-no-data .im-button:hover{-webkit-transition:background .1s ease-in;transition:background .1s ease-in;background:#2583d3}.analytics .impac-kpi .kpi .kpi-edit .im-button:active,.analytics .impac-kpi .kpi .kpi-no-data .im-button:active{box-shadow:inset 0 2px 2px 0 rgba(0,0,0,.14)}.analytics .impac-kpi .kpi .kpi-edit .im-button a:focus,.analytics .impac-kpi .kpi .kpi-edit .im-button:focus,.analytics .impac-kpi .kpi .kpi-no-data .im-button a:focus,.analytics .impac-kpi .kpi .kpi-no-data .im-button:focus{outline:0;text-decoration:none}.analytics .impac-kpi .kpi .kpi-edit button.im-fab,.analytics .impac-kpi .kpi .kpi-no-data button.im-fab{position:relative;height:46px;width:46px;-webkit-box-flex:0;-ms-flex:0 0 56px;flex:0 0 56px;display:inline-block;padding:0;margin:4px;border:0;border-radius:100%;overflow:hidden;font-size:20px;box-shadow:0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12),0 2px 4px -1px rgba(0,0,0,.2);color:#fff}.analytics .impac-kpi .kpi .kpi-edit button.im-fab:focus,.analytics .impac-kpi .kpi .kpi-no-data button.im-fab:focus{outline:0}.analytics .impac-kpi .kpi .kpi-edit button.im-fab:active,.analytics .impac-kpi .kpi .kpi-no-data button.im-fab:active{box-shadow:inset 0 2px 2px 0 rgba(0,0,0,.14)}.analytics .impac-kpi .kpi .kpi-edit button.im-fab.im-primary,.analytics .impac-kpi .kpi .kpi-no-data button.im-fab.im-primary{background:#358fdc}.analytics .impac-kpi .kpi .kpi-edit button.im-fab.im-primary:hover,.analytics .impac-kpi .kpi .kpi-no-data button.im-fab.im-primary:hover{-webkit-transition:background .1s ease-in;transition:background .1s ease-in;background:#2583d3}.analytics .impac-kpi .kpi .kpi-edit button.im-fab.im-warn,.analytics .impac-kpi .kpi .kpi-no-data button.im-fab.im-warn{background:#e01f74}.analytics .impac-kpi .kpi .kpi-edit button.im-fab.im-warn:hover,.analytics .impac-kpi .kpi .kpi-no-data button.im-fab.im-warn:hover{-webkit-transition:background .1s ease-in;transition:background .1s ease-in;background:#ca1c68}.analytics .impac-kpi .kpi button.kpi-alerts.im-fab.im-primary{position:absolute;top:-12px;right:15px;width:22px;height:22px;font-size:13px;background:#4c4749}.analytics .impac-kpi .kpi button.kpi-alerts.im-fab.im-primary:hover{backgroud:#358fdc}.analytics .impac-kpi .kpi button.kpi-remove.im-fab.im-warn{position:absolute;top:-12px;right:-11px;width:22px;height:22px;font-size:13px;background:#4c4749}.analytics .impac-kpi .kpi button.kpi-remove.im-fab.im-warn:hover{background:#ca1c68}.analytics .impac-kpi .kpi .kpi-data-loader{width:100%;min-height:95px}.analytics kpis-bar>.key-stats .kpi{min-height:80px}.analytics kpis-bar>.kpis{position:relative}.analytics kpis-bar>.kpis .actions{margin-bottom:12px}@media screen and (max-width:675px){.analytics kpis-bar>.kpis .actions{position:relative}}.analytics kpis-bar>.kpis .actions .add-on,.analytics kpis-bar>.kpis .actions .alert,.analytics kpis-bar>.kpis .actions .badge,.analytics kpis-bar>.kpis .actions .btn,.analytics kpis-bar>.kpis .actions .dropdown-menu,.analytics kpis-bar>.kpis .actions .img-polaroid,.analytics kpis-bar>.kpis .actions .label,.analytics kpis-bar>.kpis .actions .modal,.analytics kpis-bar>.kpis .actions .nav>.active>a,.analytics kpis-bar>.kpis .actions .navbar-inner,.analytics kpis-bar>.kpis .actions .popover,.analytics kpis-bar>.kpis .actions .progress,.analytics kpis-bar>.kpis .actions .table-bordered,.analytics kpis-bar>.kpis .actions .tooltip,.analytics kpis-bar>.kpis .actions .tooltip-inner,.analytics kpis-bar>.kpis .actions .well,.analytics kpis-bar>.kpis .actions input,.analytics kpis-bar>.kpis .actions pre,.analytics kpis-bar>.kpis .actions select,.analytics kpis-bar>.kpis .actions textarea{box-shadow:none!important;border-radius:0!important;border-collapse:collapse!important;background-image:none!important}.analytics kpis-bar>.kpis .actions body,.analytics kpis-bar>.kpis .actions body::after,.analytics kpis-bar>.kpis .actions body::before,.analytics kpis-bar>.kpis .actions input,.analytics kpis-bar>.kpis .actions input::after,.analytics kpis-bar>.kpis .actions input::before,.analytics kpis-bar>.kpis .actions select,.analytics kpis-bar>.kpis .actions select::after,.analytics kpis-bar>.kpis .actions select::before,.analytics kpis-bar>.kpis .actions textarea,.analytics kpis-bar>.kpis .actions textarea::after,.analytics kpis-bar>.kpis .actions textarea::before{box-sizing:border-box}.analytics kpis-bar>.kpis .actions input[type=number]::-webkit-inner-spin-button,.analytics kpis-bar>.kpis .actions input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.analytics kpis-bar>.kpis .actions a:hover{text-decoration:none}.analytics kpis-bar>.kpis .actions fieldset{margin:0 0 1.75rem;padding:0;border:none}.analytics kpis-bar>.kpis .actions .im-form-group,.analytics kpis-bar>.kpis .actions .im-form-radio{position:relative;margin-top:1.3125rem;margin-bottom:1.3125rem}.analytics kpis-bar>.kpis .actions .im-form-inline{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;box-sizing:border-box}.analytics kpis-bar>.kpis .actions .im-form-inline>.im-form-group{display:block;-webkit-box-flex:1;-ms-flex:1;flex:1;position:relative;vertical-align:middle;margin-left:.175rem;margin-right:.175rem}.analytics kpis-bar>.kpis .actions .im-form-inline>.btn{display:inline-block;margin-bottom:0}.analytics kpis-bar>.kpis .actions .im-form-group input{height:2.375rem}.analytics kpis-bar>.kpis .actions .im-form-group select{width:100%;font-size:1.25rem;height:2rem;padding:.15625rem .15625rem .078125rem;background:0 0;border:none;line-height:1.6;box-shadow:none}.analytics kpis-bar>.kpis .actions .im-form-group .im-control-label{position:absolute;top:.3125rem;pointer-events:none;padding-left:.15625rem;z-index:1;color:#b3b3b3;font-size:1.25rem;font-weight:400;-webkit-transition:all .28s ease;transition:all .28s ease}.analytics kpis-bar>.kpis .actions .im-form-group .im-bar{position:relative;border-bottom:.078125rem solid #999;display:block}.analytics kpis-bar>.kpis .actions .im-form-group .im-bar::before{content:'';height:.15625rem;width:0;left:50%;bottom:-.078125rem;position:absolute;background:#358fdc;-webkit-transition:left .28s ease,width .28s ease;transition:left .28s ease,width .28s ease;z-index:2}.analytics kpis-bar>.kpis .actions .im-form-group input,.analytics kpis-bar>.kpis .actions .im-form-group textarea{display:block;background:0 0;padding:.15625rem .15625rem .078125rem;font-size:1.25rem;border-width:0;border-color:transparent;line-height:1.9;width:100%;color:transparent;-webkit-transition:all .28s ease;transition:all .28s ease;box-shadow:none}.analytics .settings.dates-picker button.btn.btn-sm,.analytics kpis-bar>.kpis .actions .im-form-group input[type=file]{line-height:1}.analytics kpis-bar>.kpis .actions .im-form-group input[type=file]~.im-bar{display:none}.analytics kpis-bar>.kpis .actions .im-form-group input.form-file,.analytics kpis-bar>.kpis .actions .im-form-group input.has-value,.analytics kpis-bar>.kpis .actions .im-form-group input:focus,.analytics kpis-bar>.kpis .actions .im-form-group input:valid,.analytics kpis-bar>.kpis .actions .im-form-group select,.analytics kpis-bar>.kpis .actions .im-form-group textarea.form-file,.analytics kpis-bar>.kpis .actions .im-form-group textarea.has-value,.analytics kpis-bar>.kpis .actions .im-form-group textarea:focus,.analytics kpis-bar>.kpis .actions .im-form-group textarea:valid{color:#333}.analytics kpis-bar>.kpis .actions .im-form-group input.form-file~.im-control-label,.analytics kpis-bar>.kpis .actions .im-form-group input.has-value~.im-control-label,.analytics kpis-bar>.kpis .actions .im-form-group input:focus~.im-control-label,.analytics kpis-bar>.kpis .actions .im-form-group input:valid~.im-control-label,.analytics kpis-bar>.kpis .actions .im-form-group select~.im-control-label,.analytics kpis-bar>.kpis .actions .im-form-group textarea.form-file~.im-control-label,.analytics kpis-bar>.kpis .actions .im-form-group textarea.has-value~.im-control-label,.analytics kpis-bar>.kpis .actions .im-form-group textarea:focus~.im-control-label,.analytics kpis-bar>.kpis .actions .im-form-group textarea:valid~.im-control-label{font-size:1rem;color:grey;top:-1.25rem;left:0}.analytics kpis-bar>.kpis .actions .im-form-group input:focus,.analytics kpis-bar>.kpis .actions .im-form-group select:focus,.analytics kpis-bar>.kpis .actions .im-form-group textarea:focus{outline:0}.analytics kpis-bar>.kpis .actions .im-form-group input:focus~.im-control-label,.analytics kpis-bar>.kpis .actions .im-form-group select:focus~.im-control-label,.analytics kpis-bar>.kpis .actions .im-form-group textarea:focus~.im-control-label{color:#358fdc}.analytics kpis-bar>.kpis .actions .im-form-group input:focus~.im-bar::before,.analytics kpis-bar>.kpis .actions .im-form-group select:focus~.im-bar::before,.analytics kpis-bar>.kpis .actions .im-form-group textarea:focus~.im-bar::before{width:100%;left:0}.analytics kpis-bar>.kpis .actions .im-checkbox label,.analytics kpis-bar>.kpis .actions .im-form-radio label{position:relative;cursor:pointer;padding-left:2.5rem;text-align:left;color:#333;display:block}.analytics kpis-bar>.kpis .actions .im-checkbox input,.analytics kpis-bar>.kpis .actions .im-form-radio input{width:auto;opacity:.00000001;position:absolute;left:0}.analytics kpis-bar>.kpis .actions .im-radio{margin-bottom:1.25rem}.analytics kpis-bar>.kpis .actions .im-radio .im-helper{position:absolute;top:-.3125rem;left:-.3125rem;cursor:pointer;display:block;font-size:1.25rem;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;color:#999}.analytics kpis-bar>.kpis .actions .im-radio .im-helper::after,.analytics kpis-bar>.kpis .actions .im-radio .im-helper::before{content:'';position:absolute;left:0;top:0;margin:.3125rem;width:1.25rem;height:1.25rem;-webkit-transition:-webkit-transform .28s ease;transition:-webkit-transform .28s ease;transition:transform .28s ease;transition:transform .28s ease,-webkit-transform .28s ease;border-radius:50%;border:.15625rem solid currentColor}.analytics kpis-bar>.kpis .actions .im-radio .im-helper::after{-webkit-transform:scale(0);transform:scale(0);background-color:#358fdc;border-color:#358fdc}.analytics kpis-bar>.kpis .actions .im-radio label:hover .im-helper{color:#358fdc}.analytics kpis-bar>.kpis .actions .im-radio input:checked~.im-helper::after{-webkit-transform:scale(.5);transform:scale(.5)}.analytics kpis-bar>.kpis .actions .im-radio input:checked~.im-helper::before{color:#358fdc}.analytics kpis-bar>.kpis .actions .im-checkbox{margin-top:1.75rem;margin-bottom:1.25rem}.analytics kpis-bar>.kpis .actions .im-checkbox .im-helper{color:#999;position:absolute;top:0;left:0;width:1.25rem;height:1.25rem;z-index:0;border:.15625rem solid currentColor;border-radius:.078125rem;-webkit-transition:border-color .28s ease;transition:border-color .28s ease}.analytics kpis-bar>.kpis .actions .im-checkbox .im-helper::after,.analytics kpis-bar>.kpis .actions .im-checkbox .im-helper::before{position:absolute;height:0;width:.25rem;background-color:#358fdc;display:block;-webkit-transform-origin:left top;transform-origin:left top;border-radius:.3125rem;content:'';-webkit-transition:opacity .28s ease,height 0s linear .28s;transition:opacity .28s ease,height 0s linear .28s;opacity:0}.analytics kpis-bar>.kpis .actions .im-checkbox .im-helper::before{top:.8125rem;left:.475rem;-webkit-transform:rotate(-135deg);transform:rotate(-135deg);box-shadow:0 0 0 .078125rem #fff}.analytics kpis-bar>.kpis .actions .im-checkbox .im-helper::after{top:.375rem;left:0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.analytics kpis-bar>.kpis .actions .im-checkbox label:hover .im-helper{color:#358fdc}.analytics kpis-bar>.kpis .actions .im-checkbox input:checked~.im-helper{color:#358fdc}.analytics kpis-bar>.kpis .actions .im-checkbox input:checked~.im-helper::after,.analytics kpis-bar>.kpis .actions .im-checkbox input:checked~.im-helper::before{opacity:1;-webkit-transition:height .28s ease;transition:height .28s ease}.analytics kpis-bar>.kpis .actions .im-checkbox input:checked~.im-helper::after{height:.625rem}.analytics kpis-bar>.kpis .actions .im-checkbox input:checked~.im-helper::before{height:1.5rem;-webkit-transition-delay:.28s;transition-delay:.28s}.analytics kpis-bar>.kpis .actions .im-checkbox+.im-checkbox,.analytics kpis-bar>.kpis .actions .im-radio+.im-radio{margin-top:1.25rem}.analytics kpis-bar>.kpis .actions .im-messages{font-size:1.04166667rem;color:#e01f74;overflow:hidden;-webkit-transition:all .28s cubic-bezier(.55,0,.55,.2);transition:all .28s cubic-bezier(.55,0,.55,.2);opacity:0;margin-top:0;padding-top:5px}.analytics kpis-bar>.kpis .actions .has-error .legend.legend,.analytics kpis-bar>.kpis .actions .has-error.im-form-group .im-control-label.im-control-label{color:#e01f74}.analytics kpis-bar>.kpis .actions .has-error.im-checkbox .im-helper,.analytics kpis-bar>.kpis .actions .has-error.im-checkbox .im-messages,.analytics kpis-bar>.kpis .actions .has-error.im-form-group .im-helper,.analytics kpis-bar>.kpis .actions .has-error.im-form-group .im-messages,.analytics kpis-bar>.kpis .actions .has-error.im-form-radio .im-helper,.analytics kpis-bar>.kpis .actions .has-error.im-form-radio .im-messages,.analytics kpis-bar>.kpis .actions .has-error.im-radio .im-helper,.analytics kpis-bar>.kpis .actions .has-error.im-radio .im-messages{color:#e01f74;opacity:1}.analytics kpis-bar>.kpis .actions .has-error .im-bar::before{background:#e01f74;left:0;width:100%}.analytics kpis-bar>.kpis .actions .im-button{position:relative;background:#60a7e4;border:0;font-size:1.375rem;color:#333;margin:.7rem 0;padding:.4375rem 1.75rem;border-radius:3px;cursor:pointer;overflow:hidden;box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12)}.analytics kpis-bar>.kpis .actions .im-button span{color:#fff;position:relative;z-index:1}.analytics kpis-bar>.kpis .actions .im-button:hover{-webkit-transition:background .1s ease-in;transition:background .1s ease-in;background:#2583d3}.analytics kpis-bar>.kpis .actions .im-button:active{box-shadow:inset 0 2px 2px 0 rgba(0,0,0,.14)}.analytics kpis-bar>.kpis .actions .im-button a:focus,.analytics kpis-bar>.kpis .actions .im-button:focus{outline:0;text-decoration:none}.analytics kpis-bar>.kpis .actions button.im-fab{position:relative;height:46px;width:46px;-webkit-box-flex:0;-ms-flex:0 0 56px;flex:0 0 56px;display:inline-block;padding:0;margin:4px;border:0;border-radius:100%;overflow:hidden;font-size:20px;box-shadow:0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12),0 2px 4px -1px rgba(0,0,0,.2);color:#fff}.analytics kpis-bar>.kpis .actions button.im-fab:focus{outline:0}.analytics kpis-bar>.kpis .actions button.im-fab:active{box-shadow:inset 0 2px 2px 0 rgba(0,0,0,.14)}.analytics kpis-bar>.kpis .actions button.im-fab.im-primary{background:#358fdc}.analytics kpis-bar>.kpis .actions button.im-fab.im-primary:hover{-webkit-transition:background .1s ease-in;transition:background .1s ease-in;background:#2583d3}.analytics kpis-bar>.kpis .actions button.im-fab.im-warn{background:#e01f74}.analytics kpis-bar>.kpis .actions button.im-fab.im-warn:hover{-webkit-transition:background .1s ease-in;transition:background .1s ease-in;background:#ca1c68}.analytics kpis-bar>.kpis .actions a{color:#fff}.analytics kpis-bar>.kpis .actions button.im-fab.add-kpis,.analytics kpis-bar>.kpis .actions button.im-fab.edit-kpis,.analytics kpis-bar>.kpis .actions button.im-fab.toggle-show-content{position:absolute;width:40px;height:40px;font-size:18px;-webkit-transition:all .28s ease-in;transition:all .28s ease-in}.analytics kpis-bar>.kpis .actions button.im-fab.add-kpis.im-primary,.analytics kpis-bar>.kpis .actions button.im-fab.edit-kpis.im-primary,.analytics kpis-bar>.kpis .actions button.im-fab.toggle-show-content.im-primary{background:#4c4749}.analytics kpis-bar>.kpis .actions button.im-fab.add-kpis.im-primary.disabled,.analytics kpis-bar>.kpis .actions button.im-fab.edit-kpis.im-primary.disabled,.analytics kpis-bar>.kpis .actions button.im-fab.toggle-show-content.im-primary.disabled{background:#b2b5c1;cursor:not-allowed}.analytics kpis-bar>.kpis .actions button.im-fab.add-kpis.im-primary.disabled a,.analytics kpis-bar>.kpis .actions button.im-fab.edit-kpis.im-primary.disabled a,.analytics kpis-bar>.kpis .actions button.im-fab.toggle-show-content.im-primary.disabled a{cursor:not-allowed}.analytics kpis-bar>.kpis .actions button.im-fab.add-kpis.im-primary:hover:not(.disabled),.analytics kpis-bar>.kpis .actions button.im-fab.edit-kpis.im-primary:hover:not(.disabled),.analytics kpis-bar>.kpis .actions button.im-fab.toggle-show-content.im-primary:hover:not(.disabled){background:#000}.analytics kpis-bar>.kpis .actions button.im-fab.toggle-show-content{top:-15px;right:-15px;z-index:10}@media screen and (max-width:675px){.analytics kpis-bar>.kpis .actions button.im-fab.toggle-show-content{top:-30px;right:-14px;bottom:0}}.analytics kpis-bar>.kpis .actions button.im-fab.add-kpis{top:30px;right:-15px;z-index:10}@media screen and (max-width:675px){.analytics kpis-bar>.kpis .actions button.im-fab.add-kpis{top:-30px;right:33px;bottom:0}}.analytics kpis-bar>.kpis .actions button.im-fab.edit-kpis{top:75px;right:-15px;z-index:10}.analytics kpis-bar>.kpis .actions button.im-fab.edit-kpis.editing{background:#358fdc}.analytics kpis-bar>.kpis .actions button.im-fab.edit-kpis.editing:hover:not(.disabled){background:#76b3e7}@media screen and (max-width:675px){.analytics kpis-bar>.kpis .actions button.im-fab.edit-kpis{top:-30px;right:79px;bottom:0}.analytics kpis-bar>.kpis .content{margin-top:25px}}.analytics kpis-bar>.kpis .content-buttons{position:absolute;top:0;right:0}.analytics kpis-bar>.kpis .content{padding:15px;background-color:#fff;box-shadow:0 1px 8px -4px}@media screen and (min-width:725px){.analytics kpis-bar>.kpis .content{padding:0 60px}}.analytics kpis-bar>.kpis .content .impac-kpi{padding-left:5px;padding-right:5px}@media screen and (min-width:1200px){.analytics kpis-bar>.kpis .content .impac-kpi{padding-left:20px;padding-right:20px}}.analytics kpis-bar>.kpis .content .impac-kpi .kpi.add .kpi-show .caption{white-space:inherit}.analytics kpis-bar>.kpis .content .title .text-center{line-height:3;font-variant:small-caps;font-size:larger}.analytics kpis-bar>.kpis .content .title .badge{position:absolute;top:8px;left:-10px;background-color:#d1e55c;color:#4f5959;box-shadow:0 1px 3px -1px}.widget-item .content,.widget-item .top-line{position:relative;background-color:#fff;box-shadow:0 1px 8px -4px}.analytics kpis-bar>.kpis .content .title .no-kpi-templates{color:#afadb5;font-weight:500}.analytics kpis-bar>.kpis .content .add-bar{border-bottom:dashed 1px}.analytics kpis-bar>.kpis .content .kpi-loader{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;min-height:115px}.analytics kpis-bar>.kpis .content .dates-picker-container{width:40%;margin:0 auto}.analytics kpis-bar>.kpis .content .dates-picker-container .sdp-from-label,.analytics kpis-bar>.kpis .content .dates-picker-container .sdp-to-label{text-transform:uppercase;font-weight:400}.analytics kpis-bar{display:block}.analytics kpis-bar>.key-stats{background-color:#fff;padding:5px 0}.analytics.pdf-mode kpis-bar>.kpis .actions{display:none}.widget-item{-webkit-transition:width .3s;transition:width .3s;padding:12px}.widget-item.pdf-mode{width:100%;padding:12px 0}.widget-item .top-line{cursor:move;padding:9px 9px 0 12px;border-radius:5px 5px 0 0;border:1px solid #c8d7d9;border-bottom:none;min-height:41px;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;z-index:4}.widget-item .content{padding:9px;border-radius:0 0 5px 5px;border:1px solid #c8d7d9;border-top:none;vertical-align:top;min-height:250px}@media (min-width:992px){.widget-item .content{height:250px}.widget-item .content .chart-container{max-width:270px;max-height:125px;margin:auto}}.widget-item .content .edit{max-height:230px;overflow-y:auto;overflow-x:hidden;color:#5B6667;padding:2px;font-size:12px}.widget-item .content .edit .bottom-buttons .btn{border-radius:2px;margin-right:5px;padding:3px 13px;text-transform:uppercase;font-size:12px}.widget-item .content .edit .bottom-buttons .btn.btn-default{background-color:#c2c4c4;border:1px solid #a8abab;color:#fff}.widget-item .content .edit .bottom-buttons .btn.btn-default:hover{border:1px solid #8e9292;background-color:#a8abab}.widget-item .content .edit h4{margin:0 0 8px;text-align:left;font-weight:400;font-size:12px;color:#c4caca}.widget-item .content .edit .part{margin-bottom:8px;padding:10px 0;background-color:#fcfcfc;border:1px solid #dfe2e2}.widget-item .content .edit .part h5{display:block;margin:0 0 10px;padding:0 15px;text-transform:uppercase;font-weight:400;font-size:12px;color:#c4caca}.widget-item .content .edit .part label{font-weight:400}.widget-item .content .edit .part select.form-control{margin:0;border:1px solid #acb0b1;outline:0;-webkit-box-shadow:none;font-size:13px;color:#72728b}.widget-item .content.accessible{height:auto!important;min-height:250px!important;max-height:auto!important}.widget-item .content .content-template-wrapper{height:100%;overflow:auto;overflow-x:hidden}.widget-item.pdf-mode .content{height:100%!important;min-height:250px!important;max-height:none!important}.widget-item.pdf-mode .content .collapse{display:inherit}.widget-item.pdf-mode .content .fa-plus-square-o:before{content:"\f147"}.widget-item.pdf-mode .content .legend{max-height:none!important}.widget-item.pdf-mode .content .chart-container{max-height:none}.widget-item.pdf-mode .content .widget-lines-container{max-height:none!important}.widget-item.pdf-mode .content .data-not-found .message{position:inherit;width:100%}.widget-item.pdf-mode .include-to-pdf.title{position:absolute;width:calc(100% - 2*12px);z-index:3;padding-right:1px}.widget-item.pdf-mode .include-to-pdf.title h6{padding:10px;background-color:#FFC928;text-align:center;margin:0}.widget-item.pdf-mode .include-to-pdf.tick i{position:absolute;top:35%;left:46%;font-size:100px;opacity:.5;z-index:2;color:#000}.widget-item.pdf-mode .include-to-pdf .widget-hover{position:absolute;width:100%;height:100%;padding:9px;top:0;right:0;-webkit-transition:all ease .5s;transition:all ease .5s;z-index:1}.widget-item.pdf-mode .include-to-pdf .widget-hover:hover{opacity:.5;background:#CCCFD0}.widget-item .widget-lines-container .widget-line>[class*=col-]{overflow-wrap:break-word}.analytics .kpi .data-not-found,.analytics .widget-item .content .data-not-found{text-align:center;font-size:13px;color:#5B6667}.analytics .kpi .data-not-found .overlay,.analytics .widget-item .content .data-not-found .overlay{background-color:#fff;position:absolute;height:calc(100% - 4px);width:calc(100% - 4px);top:2px;left:2px;opacity:.6;z-index:3}.analytics .kpi .data-not-found .message,.analytics .widget-item .content .data-not-found .message{position:absolute;top:125px;left:50%;padding-bottom:10px;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);width:85%;background-color:#f4f8f9;border-radius:4px;box-shadow:0 0 25px 0;z-index:4}.analytics .kpi .data-not-found .message .title,.analytics .widget-item .content .data-not-found .message .title{padding:2px;background-color:#192831;color:#fff;margin:-1px -1px 10px;text-transform:uppercase}.analytics .kpi .data-not-found .message p,.analytics .widget-item .content .data-not-found .message p{margin-left:5px;margin-right:5px}.analytics .kpi .data-not-found .message .btn,.analytics .widget-item .content .data-not-found .message .btn{margin-top:5px}.analytics .kpi .data-not-found .example,.analytics .widget-item .content .data-not-found .example{position:absolute;bottom:0;left:0;width:100%;color:#fff;background-color:#192831;padding:3px;z-index:6}.analytics .kpi .data-not-found .example a,.analytics .widget-item .content .data-not-found .example a{font-weight:400;color:#dae173}.analytics .kpi .data-not-found .message{width:90%;padding-bottom:0;border:1px solid silver;box-shadow:none}.analytics .kpi .data-not-found .message p{margin:5px}.analytics .kpi .data-not-found .btn,.analytics .kpi .data-not-found .example,.analytics .kpi .data-not-found .overlay,.analytics .kpi .data-not-found .title{display:none}#duplicate-transactions-list .top{height:40px}#duplicate-transactions-list .top a.back-link{font-weight:400}#duplicate-transactions-list .top .pagination{margin:0}#duplicate-transactions-list .table-striped tr.origin:nth-of-type(odd){background-color:#f9f9f9}#duplicate-transactions-list .table-container{max-height:calc(565px - 60px);overflow:auto}#duplicate-transactions-list .table-container div[uib-datepicker-popup-wrap]{display:inline-block}#duplicate-transactions-list .table-container button.btn.reset-date,#duplicate-transactions-list .table-container input.btn.btn-xs{margin-top:-2px}#duplicate-transactions-list .table-container .fa.fa-times{color:#e01f74;cursor:pointer}#duplicate-transactions-list .table-container tr.total{font-weight:700}#duplicate-transactions-list .table-container tr.total.invoices{background-color:#00e600}#duplicate-transactions-list .table-container tr.total.bills{background-color:#f57cb1}#transactions-add{text-align:center;font-size:13px;color:#5B6667}#transactions-add .overlay{background-color:#fff;position:absolute;height:calc(100% - 4px);width:calc(100% - 4px);top:2px;left:2px;opacity:.6;z-index:5}#transactions-add .message{z-index:6;position:absolute;min-height:160px;padding-bottom:10px;background-color:#f4f8f9;border-radius:4px;box-shadow:0 0 25px 0;top:30px;left:35%;width:30%}#transactions-add .message .title{padding:2px;background-color:#192831;color:#fff;margin:-1px -1px 10px;text-transform:uppercase}#transactions-add .message .form{padding:0 10px}#transactions-add .message .form .schedulable-section>label,#transactions-add .message .form>label{padding-top:10px;font-weight:400;margin-bottom:3px}#transactions-add .message .form input.form-control,#transactions-add .message .form select.form-control{width:90%;border-radius:2px;height:28px;font-size:13px}#transactions-add .message .form .btn-group{display:block;min-height:22px}#transactions-add .message .form .btn-group select{border-radius:2px;height:28px;margin-top:0}#transactions-add .message .form .repeat-btn select,#transactions-add .message .form .schedulable-section .btn-group select{height:22px}#transactions-add .message .form .disable{color:#888;font-style:italic}#transactions-add .message .form .never-disable{color:#000;font-style:normal}#transactions-add .message .form .repeat-btn{margin-top:30px}#transactions-add .message .form .repeat-btn input[type=checkbox]{vertical-align:text-bottom;margin:0}#transactions-add .message .form .repeat-btn .btn{float:none;border-color:#888}#transactions-add .message .form .schedulable-section{padding:5px;border:1px solid silver;margin-top:0;background-color:#fff}#transactions-add .message .form .schedulable-section .badge{font-weight:400;background-color:#888}#transactions-add .message .form .schedulable-section .interval-field{width:40px}#transactions-add .message .form .schedulable-section .btn-group{margin-left:10px}#transactions-add .message .form .schedulable-section .btn-group .btn{float:none;border-color:#888}#transactions-add .message .bottom{margin-top:20px}#transactions-list .top{height:40px;position:relative}#transactions-list .top .back{position:absolute}#transactions-list .top .resource-type{position:absolute;left:calc(50% - 98px)}@media (max-width:767px){#transactions-list .top .resource-type{left:unset;right:0}}#transactions-list .top .btn-group{display:-webkit-box;display:-ms-flexbox;display:flex}#transactions-list .bottom{height:40px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}#transactions-list .bottom .pagination{margin:0}#transactions-list .table-container{max-height:calc(565px - 100px);overflow:auto;width:100%}#transactions-list .table-container div[uib-datepicker-popup-wrap]{display:inline-block}#transactions-list .table-container button.btn.reset-date,#transactions-list .table-container input.btn.btn-xs{margin-top:-2px}#transactions-list .table-container .actions{cursor:pointer}#transactions-list .table-container .actions .fa.fa-times{color:#e01f74}#transactions-list .table-container tr.total{font-weight:700}#transactions-list .table-container tr.total.invoices{background-color:#c1d1b1}#transactions-list .table-container tr.total.bills{background-color:#e2aeb9}#transactions-list .table-container td>.expected-payment-date{display:-webkit-box;display:-ms-flexbox;display:flex}#transactions-list .table-container td>.expected-payment-date .reset-date{margin-left:3px}#trends-list .top{height:40px}#trends-list .top a.back-link{font-weight:400}#trends-list .top .pagination{margin:0}#trends-list .table-container{max-height:calc(565px - 60px);overflow:auto}#trends-list .table-container div[uib-datepicker-popup-wrap]{display:inline-block}#trends-list .table-container button.btn.reset-date,#trends-list .table-container input.btn.btn-xs{margin-top:-2px}#trends-add{text-align:center;font-size:13px;color:#5B6667}#trends-add .overlay{background-color:#fff;position:absolute;height:calc(100% - 4px);width:calc(100% - 4px);top:2px;left:2px;opacity:.6;z-index:5}#trends-add .message{z-index:6;position:absolute;min-height:160px;padding-bottom:10px;background-color:#f4f8f9;border-radius:4px;box-shadow:0 0 25px 0;top:30px;left:35%;width:30%}#trends-add .message .title{padding:2px;background-color:#192831;color:#fff;margin:-1px -1px 10px;text-transform:uppercase}#trends-add .message .form{padding:0 10px}#trends-add .message .form>label{padding-top:10px;font-weight:400;margin-bottom:3px}#trends-add .message .form input.form-control{width:90%;border-radius:2px;height:28px;font-size:13px}#trends-add .message .form .btn-group{display:block;min-height:22px;margin-top:10px}#trends-add .message .form .btn-group>.btn{float:none}#trends-add .message .form .btn-group input[type=radio]{margin:4px 0 10px}#trends-add .message .bottom{margin-top:20px}.analytics .dashboard-settings.currency{text-align:right}.analytics .dashboard-settings.currency select{margin-top:4px}.analytics .dashboard-settings.sync-apps .show-status{margin-right:5px;color:#9ba6a7}.analytics .dashboard-settings.sync-apps .show-status:hover{cursor:pointer;text-decoration:underline}.analytics .dashboard-settings.sync-apps .show-status .fa.fa-info{margin-right:2px}.analytics .dashboard-settings.sync-apps .status-btn{display:inline-block;cursor:pointer;padding:5px 7px 5px 0}.analytics .dashboard-settings.sync-apps .status-btn i{font-size:16px}.analytics .dashboard-settings.sync-apps .status-btn i.fa-exclamation-triangle{color:#ff7300}.analytics .dashboard-settings.sync-apps .status-btn i.fa-check{color:#d1e55c}.analytics .dashboard-settings.sync-apps .popover{max-width:550px}.analytics .dashboard-settings.sync-apps .popover .connector{padding:4px 13px}.analytics .dashboard-settings.sync-apps .popover .connector.add-seperator{border-bottom:1px solid #ccc}.analytics .dashboard-settings.sync-apps .popover .popover-content{padding:0}.analytics .dashboard-settings.sync-apps .popover .popover-footer{border-top:1px solid #ccc;padding:4px 13px}.analytics .dashboard-settings.sync-apps .popover .popover-footer p{font-weight:700;margin:0}.analytics .dashboard-settings.sync-apps .popover .popover-footer.remove-seperator{border:0}.analytics .dashboard-settings.sync-apps .badge{float:right;margin-left:8px}.analytics .dashboard-settings.sync-apps .success .badge{background-color:#d1e55c}.analytics .dashboard-settings.sync-apps .pending .badge,.analytics .dashboard-settings.sync-apps .running .badge{background-color:#ff7300}.analytics .dashboard-settings.sync-apps .disconnected .badge,.analytics .dashboard-settings.sync-apps .error .badge,.analytics .dashboard-settings.sync-apps .failed .badge,.analytics .dashboard-settings.sync-apps .unknown .badge{background-color:#ed1e79}#sync-apps-modal .modal-header{text-align:center;border:0;box-shadow:0 2px 3px 0 #ccc}#sync-apps-modal .modal-list{max-height:280px;overflow-y:auto}#sync-apps-modal .modal-list-item{border-bottom:1px solid #ccc;padding:10px}#sync-apps-modal .modal-list-item .badge{float:right}#sync-apps-modal .modal-list-item.success .badge{background-color:#d1e55c}#sync-apps-modal .modal-list-item.pending .badge,#sync-apps-modal .modal-list-item.running .badge{background-color:#ff7300}#sync-apps-modal .modal-list-item.disconnected .badge,#sync-apps-modal .modal-list-item.error .badge,#sync-apps-modal .modal-list-item.failed .badge,#sync-apps-modal .modal-list-item.unknown .badge{background-color:#ed1e79}#sync-apps-modal .modal-list-item .message{padding:3px;border-radius:2px;margin-left:31px;margin-top:9px}#sync-apps-modal .modal-list-item .message p{margin:0}#sync-apps-modal .modal-list-item.success .message{background-color:rgba(0,255,55,.08)}#sync-apps-modal .modal-list-item.pending .message,#sync-apps-modal .modal-list-item.running .message{background-color:rgba(255,118,0,.08)}#sync-apps-modal .modal-list-item.disconnected .message,#sync-apps-modal .modal-list-item.error .message,#sync-apps-modal .modal-list-item.failed .message,#sync-apps-modal .modal-list-item.unknown .message{background-color:rgba(255,0,0,.08)}#sync-apps-modal .modal-list-item.with-message{cursor:pointer}#sync-apps-modal .modal-list-item.with-message:hover{background-color:#ccc}#sync-apps-modal .modal-footer{border:0}#sync-apps-modal .fa{padding:0 10px}#sync-apps-modal .fa.error{color:red}#sync-apps-modal .fa.warn{color:#ff7300}#sync-apps-modal .fa.success{color:#47ff00}chart-threshold .attach-panel{padding:5px 0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline;background-color:rgba(20,132,228,.16)}chart-threshold .attach-panel>div{padding-right:5px}chart-threshold .attach-panel>div.target{text-align:center}@media (max-width:1199px){chart-threshold .attach-panel{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center}chart-threshold .attach-panel>div{padding:5px}}chart-threshold .attach-panel .text{text-transform:uppercase;font-weight:700;color:#5B6667;font-size:13px}chart-threshold .attach-panel input{border-radius:3px;border:1px #fff;padding:3px}chart-threshold .attach-panel input[name=amount]{max-width:70px}chart-threshold .attach-panel .currency{font-weight:700;color:#000}chart-threshold .attach-panel .actions{display:inline-block;padding:0 2px}chart-threshold .attach-panel .actions button{padding:3px 6px;display:inline-block}chart-threshold .attach-panel .actions button.loading{padding:3px 20px}.analytics widgets-common-confirm-modal{text-align:center;font-size:13px;color:#5B6667}.analytics widgets-common-confirm-modal .overlay{background-color:#fff;position:absolute;height:calc(100% - 4px);width:calc(100% - 4px);top:2px;left:2px;opacity:.6;z-index:5}.analytics widgets-common-confirm-modal .message{z-index:6;position:absolute;min-height:160px;padding-bottom:10px;top:45px;left:7%;width:86%;background-color:#f4f8f9;border-radius:4px;box-shadow:0 0 25px 0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.analytics .widget-item .content.accounts-balance-sheet,.analytics .widget-item .content.accounts-cash-balance{min-height:565px}.analytics widgets-common-confirm-modal .message .title{padding:2px;background-color:#192831;color:#fff;margin:-1px -1px 10px;text-transform:uppercase}.analytics widgets-common-confirm-modal .message p{padding:0 10px}.analytics widgets-common-confirm-modal .message button.btn{margin-top:20px}.analytics widgets-common-confirm-modal .message .loader i.fa.fa-spinner{font-size:26px}.currency-conversions img{width:15px;cursor:pointer}.currency-conversions.popover .popover-title{background-color:#000;color:#fff}.analytics .widget-item .editable-title{width:100%;-webkit-box-flex:1;-ms-flex:1;flex:1;overflow:hidden;height:22px}.analytics .widget-item .editable-title .title{text-transform:uppercase;font-weight:600;font-size:12px;color:#4f5959;cursor:text;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;line-height:1.9}.analytics .widget-item .editable-title .editable-wrap{position:relative;height:20px;min-width:100%;white-space:nowrap}.analytics .widget-item .editable-title .editable-wrap .editable-controls{min-width:100%}.analytics .widget-item .editable-title .editable-wrap .editable-controls .editable-input{height:20px;font-size:12px;text-transform:uppercase;width:calc(100% - 65px);padding:0 3px}.analytics .widget-item .editable-title .editable-wrap .editable-controls .editable-buttons{background-color:#fff}.analytics .widget-item .editable-title .editable-wrap .editable-controls .editable-buttons button{margin:0 0 0 5px;height:20px;padding:0 5px}.analytics .widget-item .info-panel{position:absolute;top:15px;left:15px;width:calc(100% - 30px);max-height:calc(100% - 30px);height:100%;background-color:#fff;border:1px dotted #B7CDCE;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;font-family:"Lato Semibold",Lato;z-index:4}.analytics .widget-item .info-panel:hover{opacity:1}.analytics .widget-item .info-panel .i-header{background-color:#FFC928;color:#1E303B;padding:8px;text-transform:uppercase;font-family:"Lato Medium",Lato;font-size:12px}.analytics .widget-item .info-panel .i-header .fa{font-size:18px}.analytics .widget-item .info-panel .i-header .fa-info-circle{float:left}.analytics .widget-item .info-panel .i-header .fa-times-circle{cursor:pointer;float:right}.analytics .widget-item .info-panel .i-content{overflow-y:auto;overflow-x:hidden;padding:5px;text-align:justify;-webkit-box-flex:1;-ms-flex:1;flex:1}.analytics .widget-item .info-panel .i-content .row{margin-bottom:6px;padding-bottom:6px;border-bottom:solid 1px #abc4c6}.analytics .widget-item .info-panel .i-content .row:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.analytics .widget-item .info-panel .i-content .row .key{text-align:right;font-variant:small-caps}@media (max-width:991px){.analytics .widget-item .info-panel .i-content .row .key{text-align:center}}.analytics .widget-item .info-panel .i-content .row .value{text-align:justify}.analytics .time-period-info{font-size:11px;color:#ABC4C6;text-transform:uppercase}.analytics .widget-item .top-line .top-buttons{text-align:right;margin-top:-1px;white-space:nowrap;padding-left:10px}.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button.btn-export,.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button.btn-info,.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button.btn-refresh{font-size:17px;margin-top:1px}.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button{background:0 0;border:none;color:#c4caca;padding:0;outline:0;width:17px}.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button:active,.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button:focus{box-shadow:none}.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button.btn-info:hover{color:#FFC928}.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button.btn-export:hover,.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button.btn-refresh:hover{color:#358fdc}.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button.btn-edit{font-size:13px}.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button.btn-edit.edit-mode,.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button.btn-edit:hover{color:#cfd849}.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button.btn-close{font-size:13px}.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button.btn-close:hover{color:#ed1e79}.analytics .settings.accounting-behaviour .btn.btn-primary{background-color:#bba9f5;border:1px solid #977bf0}.analytics .settings.accounting-behaviour .btn.btn-primary.active,.analytics .settings.accounting-behaviour .btn.btn-primary.focus{background-color:#977bf0}.analytics .settings.attach-kpis .attach-kpi{padding:8px 5px}.analytics .settings.attach-kpis .attach-kpi form .row{padding-bottom:5px}.analytics .settings.attach-kpis .attach-kpi .attach-kpi-form{background-color:#fff;border:1px solid #ddd;padding:5px}.analytics .settings.attach-kpis .attach-kpi form .row.kpi-description{padding:10px 2px}.analytics .settings.attach-kpis .attach-kpi form .row.kpi-description span{display:block;font-weight:700;font-size:13px}.analytics .settings.attach-kpis .attach-kpi form.attach-kpi-form input.attach-target{background-color:#fff;height:inherit}.analytics .settings.attach-kpis .attach-kpi .error-messages{color:#e01f74;width:120px}.analytics .settings.attach-kpis .attached-kpis{padding:5px}.analytics .settings.attach-kpis .list-group-item.attached-kpi{padding:5px 10px}.analytics .settings.attach-kpis .list-group-item.attached-kpi .attached-kpi-name{overflow:hidden;width:75%;display:inline-block;white-space:nowrap;text-overflow:ellipsis;margin-top:3px;font-size:13px;font-weight:700}.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions{padding-top:2px}.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions .alerts-config{display:inline-block;text-align:left;padding-left:4px;height:20px;border-radius:40px;width:21px;color:#358fdc;background-color:#fff;border:1px solid #358fdc}.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions .alerts-config:hover{cursor:pointer}.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions .edit-attached-kpi{display:inline-block}.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions .edit-attached-kpi i{border-radius:10px;width:21px;color:#358fdc;background-color:#fff;height:20px;padding:3px 5px 5px;border:1px solid #358fdc}.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions .edit-attached-kpi i:hover{cursor:pointer}.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions .remove-attached-kpi{display:inline-block}.analytics .settings.dates-picker button.btn.btn-sm.btn-danger,.analytics .settings.dates-picker h5{display:none}.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions .remove-attached-kpi i{border-radius:10px;width:21px;color:#e01f74;background-color:#fff;height:20px;padding:3px 5px 5px;border:1px solid #e01f74}.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions .remove-attached-kpi i:hover{cursor:pointer}.analytics .widget-item .content .settings.select-account{padding:0 5px}.analytics .widget-item .content .settings.chart-filters .row{margin:0}.analytics .widget-item .content .settings.chart-filters input[type=radio]{margin:0 3px 0 0;padding:0;width:13px;height:13px;vertical-align:middle;position:relative;top:-1px;outline:0}.analytics .widget-item .content .settings.chart-filters input[type=range]{height:auto;width:100%}.analytics .settings.dates-picker button.btn.btn-sm.date-button{margin:0 5px}.analytics .settings.dates-picker button.btn.btn-sm.btn-info{border-radius:3px}.analytics .settings.dates-picker .tooltip-inner{text-transform:none}.analytics .settings.dates-picker .dropdown-menu>li>div>table{outline:0}.analytics .settings.forecast-payroll .widget-lines-container .widget-line{padding:5px 10px 5px 18px}.analytics .settings.forecast-payroll .widget-lines-container .widget-line:nth-child(even){background-color:#f3f4f4}.analytics .settings.forecast-payroll .widget-lines-container .widget-line:nth-child(odd){background-color:#fff}.analytics .settings.forecast-payroll .widget-lines-container .widget-line .fa{float:right;font-size:20px;cursor:pointer}.analytics .settings.forecast-payroll .widget-lines-container .widget-line .fa.fa-toggle-on{color:#977bf0}.analytics .settings.forecast-payroll .widget-lines-container .widget-line .fa.fa-toggle-off{color:#9ba6a7}.analytics .widget-item .content .settings.hist-mode-choser{max-height:70px}.analytics .widget-item .content .settings.hist-mode-choser [common-time-period-info]{padding-bottom:8px}.analytics .widget-item .content .settings.hist-mode-choser .options{width:150px;margin:auto;padding-bottom:8px;border-bottom:solid 1px #e6e6e6;font-weight:500;font-size:12px;color:#c4caca}.analytics .widget-item .content .settings.hist-mode-choser .options a{font-weight:500;font-size:12px;color:#c4caca;text-transform:uppercase}.analytics .widget-item .content .settings.hist-mode-choser .options a.active{color:#977bf0}.analytics .widget-item .content .settings.hist-mode-choser .arrow-container{width:28px;height:28px;position:relative;top:-14px;margin:auto}.analytics .widget-item .content .settings.hist-mode-choser .arrow-container.right{left:46px}.analytics .widget-item .content .settings.hist-mode-choser .arrow-container.left{left:-30px}.analytics .widget-item .content .settings.hist-mode-choser .arrow-container .arrow-border{border-top:14px solid #e6e6e6;border-left:14px solid transparent;border-right:14px solid transparent;width:0;height:0}.analytics .widget-item .content .settings.hist-mode-choser .arrow-container .arrow{border-top:14px solid #fff;border-left:14px solid transparent;border-right:14px solid transparent;position:relative;top:12px;width:0;height:0}.analytics .settings.limit-entries{color:#1E303B;text-transform:uppercase;text-align:center;border-bottom:dashed 1px #E6E6E6;padding-bottom:8px}.analytics .settings.limit-entries a.option.badge{color:#fff;background-color:#1E303B}.analytics .settings.offsets .offset-value{font-style:italic;font-size:13px}.analytics .settings.offsets .offset-value .fa-trash-o{margin-left:10px}.analytics .settings.offsets .offset-value .fa-trash-o:hover{color:#e01f74;cursor:pointer}.analytics .settings.offsets input{width:75%}.analytics .settings.offsets button{width:30px}.analytics .settings.organizations .widget-lines-container .widget-line{padding:5px 10px 5px 18px}.analytics .settings.organizations .widget-lines-container .widget-line:nth-child(even){background-color:#f3f4f4}.analytics .settings.organizations .widget-lines-container .widget-line:nth-child(odd){background-color:#fff}.analytics .settings.organizations .widget-lines-container .widget-line .fa{float:right;font-size:20px;cursor:pointer}.analytics .settings.organizations .widget-lines-container .widget-line .fa.fa-check-circle,.analytics .settings.organizations .widget-lines-container .widget-line .fa.fa-toggle-on{color:#977bf0}.analytics .settings.organizations .widget-lines-container .widget-line .fa.fa-circle-thin,.analytics .settings.organizations .widget-lines-container .widget-line .fa.fa-toggle-off{color:#9ba6a7}.analytics .widget-item .content .settings.param-selector{display:inline-block}.analytics .widget-item .content .settings.param-selector.classic{width:100%}.analytics .widget-item .content .settings.param-selector.classic select{width:100%;height:25px;border:1px solid #ccc;text-transform:uppercase;margin:0 0 5px}.analytics .widget-item .content .settings.param-selector a{font-weight:400;color:#977bf0;white-space:nowrap}.analytics .widget-item .content .settings.param-selector .options-container{position:absolute;background-color:#fff;text-align:left;min-width:150px;max-height:200px;z-index:999;overflow-y:auto;overflow-x:hidden;box-shadow:#000 0 3px 15px -3px}.analytics .settings.tag-filter .tag-lines-container .tag-line .host,.analytics .settings.tag-filter .tag-lines-container .tag-line .tags-col,.analytics .widget-item .content.accounts-balance-sheet .widget-lines-container .row.widget-line.header>[class*=col-]{position:static}.analytics .widget-item .content .settings.param-selector .options-container .param-selector-label{padding:3px 5px;font-weight:500;font-size:inherit;color:#000;cursor:text;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;line-height:1.9}.analytics .widget-item .content .settings.param-selector .options-container .param-selector-label:hover{cursor:pointer;background-color:#977bf0;color:#fff}.analytics .widget-item .content .settings.param-selector .options-container::-webkit-scrollbar{width:8px;background-color:#d7e2e4}.analytics .widget-item .content .settings.param-selector .options-container::-webkit-scrollbar-thumb{background-color:#977bf0}.analytics .widget-item .content .settings.param-selector .options-container::-webkit-scrollbar-thumb:hover{background-color:#a992f3}.analytics .settings.params-checkboxes{padding:2px 0}.analytics .settings.params-checkboxes input{margin:0;height:inherit}.analytics .settings.params-checkboxes span{margin-left:5px}.analytics .settings.params-checkboxes label{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;line-height:14px}.analytics .widget-item .content .settings.params-picker{padding:0 10px}.analytics .widget-item .content .settings.params-picker .parameter{margin:0 3px 3px 0;padding:3px 5px;background-color:#1E303B;color:#fff;border:1px solid #1E303B;border-radius:4px;cursor:move;font-weight:700;white-space:nowrap;float:left}.analytics .widget-item .content .settings.params-picker .parameter input[type=checkbox]{margin:0 -3px 0 3px;vertical-align:middle;height:inherit;outline:0;cursor:pointer}.analytics .widget-item .content .settings.params-picker .parameter .badge{margin-right:3px;font-size:10px;background-color:#f2f2f2;color:#1E303B;padding:2px 6px}.analytics .widget-item .content .settings.params-picker .parameter.unchecked{background-color:inherit;font-weight:400;color:inherit;border-color:#c2c4c4}.analytics .widget-item .content .settings.params-picker .parameter.unchecked .badge{background-color:#c2c4c4;color:#fff}.analytics .settings.tag-filter{padding:0 5px}.analytics .settings.tag-filter .btn.btn-default{height:32px;width:30px}.analytics .settings.tag-filter .tag-lines-container{padding:0 10px}.analytics .settings.tag-filter .tag-lines-container .tag-line{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.analytics .settings.tag-filter .tag-lines-container .tag-line tags-input .tags{display:-webkit-box;display:-ms-flexbox;display:flex;border-radius:4px;border:1px solid #ccc}.analytics .settings.tag-filter .tag-lines-container .tag-line tags-input .tags .tag-item{background:#79a2bb;border-radius:4px;color:#fff}.analytics .settings.time-period{padding:0 5px}.analytics .settings.time-period select{height:22px;width:100%}.analytics .settings.time-period>.row{margin:0 -5px 7px}.analytics .settings.time-period>.row>div{padding:0 5px;position:static}.analytics .settings.time-period>.row .sub-setting{padding:5px}.analytics .widget-item .content .settings.width{float:right;font-size:14px}.analytics .widget-item .content .settings.width i{color:silver;cursor:pointer}.analytics .widget-item .content .settings.width i.reduce{margin-right:-10px}.analytics .widget-item .content .settings.width i.expand{margin-right:-3px}.analytics .widget-item .content.accounts-assets-liability-summary .param-selector{text-align:center}.analytics .widget-item .content.accounts-assets-liability-summary .legend{text-align:left;max-height:90px}.analytics .widget-item .content.accounts-assets-liability-summary .legend .title{text-align:center;border-bottom:dashed 1px #dfe2e2}.analytics .widget-item .content.accounts-assets-summary .legend{text-align:left;max-height:115px}.analytics .widget-item .content.accounts-assets-summary .legend .title{text-align:center;border-bottom:dashed 1px #dfe2e2}.analytics .widget-item .content.accounts-assets-vs-liabilities .legend>.title span{margin-left:3px}.analytics .widget-item .content.accounts-balance h3{font-weight:300;font-size:14px;color:#5B6667;margin-top:30px;text-align:center}.analytics .widget-item .content.accounts-balance .price{font-weight:900;font-size:22px;color:#5B6667;text-align:center;margin-top:0}@media (min-width:992px){.analytics .widget-item .content.accounts-balance-sheet{height:565px}.analytics .widget-item .content.accounts-balance-sheet .chart-container{max-width:585px;max-height:440px;margin:auto}}.analytics .widget-item .content.accounts-balance-sheet .edit{max-height:545px}.analytics .widget-item .content.accounts-balance-sheet .edit .widget-lines-container{overflow-y:hidden;overflow-x:hidden}.analytics .widget-item .content.accounts-balance-sheet .widget-lines-container{overflow-y:scroll;overflow-x:hidden;max-height:490px}@media (max-width:767px){.analytics .widget-item .content.accounts-balance-sheet .widget-lines-container .row.widget-line:not(:last-child){border-bottom:dashed 1px #dfe2e2}}.analytics .widget-item .content.accounts-balance-sheet .widget-lines-container.no-scroll{overflow:visible}.analytics .widget-item .content.accounts-balance-sheet .no-data-block{font-weight:300;font-size:16px;color:#5B6667;text-align:center;margin:15px 0}@media (min-width:992px){.analytics .widget-item .content.accounts-cash-balance{height:565px}.analytics .widget-item .content.accounts-cash-balance .chart-container{max-width:585px;max-height:440px;margin:auto}}.analytics .widget-item .content.accounts-cash-balance .edit{max-height:545px}.analytics .widget-item .content.accounts-cash-balance .edit .widget-lines-container{overflow-y:hidden;overflow-x:hidden}.analytics .widget-item .content.accounts-cash-balance .data-container{height:calc(565px - 50px);width:100%}.analytics .widget-item .content.accounts-cash-balance .left-panel{width:180px;display:inline-block;overflow:auto;max-height:100%}.analytics .widget-item .content.accounts-cash-balance #cash-balance-legend .header .group-item{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;min-height:45px;margin:3px;font-size:13px;padding:3px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.analytics .widget-item .content.accounts-cash-projection,.analytics .widget-item .content.accounts-cash-summary,.analytics .widget-item .content.accounts-comparison,.analytics .widget-item .content.accounts-detailed-classifications,.analytics .widget-item .content.accounts-invoices-list{min-height:565px}.analytics .widget-item .content.accounts-cash-balance #cash-balance-legend .header .group-item:hover{background-color:#ececec}.analytics .widget-item .content.accounts-cash-balance #cash-balance-legend .header .group-item i{font-size:19px;padding:4px;margin-top:1px}.analytics .widget-item .content.accounts-cash-balance #cash-balance-legend .header .group-item span{color:#5B6667}.analytics .widget-item .content.accounts-cash-balance .legend-item-icon{width:16px;height:16px}.analytics .widget-item .content.accounts-cash-balance .right-panel{width:calc(100% - 180px);float:right}.analytics .widget-item .content.accounts-cash-balance .right-panel .cash-balance-chart{height:calc(565px - 50px)}.analytics .widget-item .content.accounts-cash-balance .dates-picker{display:inline-block;float:right;font-size:12px}@media (min-width:992px){.analytics .widget-item .content.accounts-cash-projection{height:565px}.analytics .widget-item .content.accounts-cash-projection .chart-container{max-width:585px;max-height:440px;margin:auto}}.analytics .widget-item .content.accounts-cash-projection .edit{max-height:545px}.analytics .widget-item .content.accounts-cash-projection .edit .widget-lines-container{overflow-y:hidden;overflow-x:hidden}.analytics .widget-item .content.accounts-cash-projection .cash-projection-chart{height:calc(565px - 50px)}.analytics .widget-item .content.accounts-cash-projection .highcharts-legend-item rect.highcharts-point{display:none}.analytics .widget-item .content.accounts-cash-projection .highcharts-legend-item span{width:110px;text-align:center}.analytics .widget-item .content.accounts-cash-projection .highcharts-legend-item span img{text-align:center;width:55px;height:25px}.analytics .widget-item .content.accounts-cash-projection .dates-picker{display:inline-block;float:right;font-size:12px}.analytics .widget-item .content.accounts-cash-projection transactions-list{font-size:12px}@media (min-width:992px){.analytics .widget-item .content.accounts-cash-summary{height:565px}.analytics .widget-item .content.accounts-cash-summary .chart-container{max-width:585px;max-height:440px;margin:auto}}.analytics .widget-item .content.accounts-cash-summary .edit{max-height:545px}.analytics .widget-item .content.accounts-cash-summary .edit .widget-lines-container{overflow-y:hidden;overflow-x:hidden}.analytics .widget-item .content.accounts-cash-summary .widget-lines-container{max-height:540px}.analytics .widget-item .content.accounts-cash-summary .widget-lines-container .lines-group .widget-line{cursor:pointer;border:1px solid #fff}.analytics .widget-item .content.accounts-cash-summary .widget-lines-container .lines-group .widget-line .selection-tag{display:block;right:0;margin-top:-6px;width:10px;height:29px;position:absolute}.analytics .widget-item .content.accounts-cash-summary .widget-lines-container .lines-group .widget-line:hover{background-color:#e6e0fb}.analytics .widget-item .content.accounts-cash-summary .widget-lines-container .lines-group .widget-line.no-select{cursor:auto}.analytics .widget-item .content.accounts-cash-summary .widget-lines-container .lines-group .widget-line.no-select:hover{color:#626d6d}.analytics .widget-item .content.accounts-cash-summary .right-panel .widget-lines-container{overflow-y:auto;overflow-x:hidden;max-height:215px}.analytics .widget-item .content.accounts-cash-summary .no-element{font-weight:300;font-size:16px;color:#5B6667;text-align:center}.analytics .widget-item .content.accounts-cash-summary .row.lines-group.cash{border-top:solid 1px;border-bottom:double}.analytics .widget-item .content.accounts-class-comparison .param-selector{text-align:center}.analytics .widget-item .content.accounts-class-comparison .widget-lines-container{max-height:94px;color:#626d6d}@media (min-width:992px){.analytics .widget-item .content.accounts-comparison{height:565px}.analytics .widget-item .content.accounts-comparison .chart-container{max-width:585px;max-height:440px;margin:auto}}.analytics .widget-item .content.accounts-comparison .edit{max-height:545px}.analytics .widget-item .content.accounts-comparison .edit .widget-lines-container{overflow-y:hidden;overflow-x:hidden}@media print{.analytics .widget-item .content.accounts-comparison .chart-container{max-width:80%!important}}.analytics .widget-item .content.accounts-comparison .add-account{position:absolute;right:40px;bottom:30px;width:160px}.analytics .widget-item .content.accounts-comparison .add-account select{font-size:13px;background-color:#977bf0;color:#fff;outline:0;border:none;cursor:pointer}.analytics .widget-item .content.accounts-comparison .add-account select[disabled]{cursor:not-allowed;background-color:#bba9f5}.analytics .widget-item .content.accounts-comparison .add-account select[disabled]:hover{background-color:#bba9f5}.analytics .widget-item .content.accounts-comparison .add-account select:hover{background-color:#734deb}.analytics .widget-item .content.accounts-comparison .add-account select option{background-color:#fff;color:#c4caca}.analytics .widget-item .content.accounts-comparison .add-account select option[disabled]{color:#fff}.analytics .widget-item .content.accounts-comparison button.close{font-size:15px}.analytics .widget-item .content.accounts-comparison .legend{text-align:left;max-height:103px}.analytics .widget-item .content.accounts-comparison .row{margin:0}.analytics .widget-item .content.accounts-comparison .widget-lines-container{font-size:11px;max-height:220px;margin-bottom:65px;overflow:auto}.analytics .widget-item .content.accounts-comparison .settings.params-checkboxes{margin-left:13px}.analytics .widget-item .content.accounts-comparison .comparable-error h5{margin-left:13px;color:#ed1e79}.analytics .widget-item .content.accounts-custom-calculation h3{margin-top:85px;text-align:center;font-weight:700}.analytics .widget-item .content.accounts-custom-calculation .legend{max-height:125px}.analytics.modal-custom-calculation{margin:0;padding:0}.analytics.modal-custom-calculation .modal-body .edit{overflow-y:auto;overflow-x:hidden;color:#5B6667;font-size:12px;padding:5px;overflow:visible}.analytics.modal-custom-calculation .modal-body .edit .bottom-buttons .btn{border-radius:2px;margin-right:5px;padding:3px 13px;text-transform:uppercase;font-size:12px}.analytics.modal-custom-calculation .modal-body .edit .bottom-buttons .btn.btn-default{background-color:#c2c4c4;border:1px solid #a8abab;color:#fff}.analytics.modal-custom-calculation .modal-body .edit .bottom-buttons .btn.btn-default:hover{border:1px solid #8e9292;background-color:#a8abab}.analytics.modal-custom-calculation .modal-body .edit h4{margin:0 0 8px;text-align:left;font-weight:400;font-size:12px;color:#c4caca}.analytics.modal-custom-calculation .modal-body .edit .part{margin-bottom:8px;padding:10px 0;background-color:#fcfcfc;border:1px solid #dfe2e2}.analytics.modal-custom-calculation .modal-body .edit .part h5{display:block;margin:0 0 10px;padding:0 15px;text-transform:uppercase;font-weight:400;font-size:12px;color:#c4caca}.analytics.modal-custom-calculation .modal-body .edit .part label{font-weight:400}.analytics.modal-custom-calculation .modal-body .edit .part select.form-control{margin:0;border:1px solid #acb0b1;outline:0;-webkit-box-shadow:none;font-size:13px;color:#72728b}@media (min-width:992px){.analytics .widget-item .content.accounts-detailed-classifications{height:565px}.analytics .widget-item .content.accounts-detailed-classifications .chart-container{max-width:585px;max-height:440px;margin:auto}}.analytics .widget-item .content.accounts-detailed-classifications .edit{max-height:545px}.analytics .widget-item .content.accounts-detailed-classifications .edit .widget-lines-container{overflow-y:hidden;overflow-x:hidden}.analytics .widget-item .content.accounts-detailed-classifications .widget-lines-container{overflow-y:scroll;overflow-x:hidden;max-height:540px}.analytics .widget-item .content.accounts-invoices-list .edit .widget-lines-container,.analytics .widget-item .content.accounts-profit-and-loss .edit .widget-lines-container{overflow-y:hidden;overflow-x:hidden}.analytics .widget-item .content.accounts-detailed-classifications .account-class-title{margin-bottom:8px;margin-left:11px}.analytics .widget-item .content.accounts-detailed-classifications .time-period-info{text-align:right}.analytics .widget-item .content.accounts-detailed-classifications .widget-line.header.sorting{border-bottom:1px solid #ccc}.analytics .widget-item .content.accounts-expense-weight .legend{text-align:left;max-height:115px}.analytics .widget-item .content.accounts-expense-weight .legend .title{text-align:center}.analytics .widget-item .content.accounts-expenses-revenue .legend{font-weight:700}.analytics .widget-item .content.accounts-expenses-revenue .settings.params-checkboxes{font-size:12px;margin-left:0;text-align:center}@media (min-width:992px){.analytics .widget-item .content.accounts-invoices-list{height:565px}.analytics .widget-item .content.accounts-invoices-list .chart-container{max-width:585px;max-height:440px;margin:auto}}.analytics .widget-item .content.accounts-invoices-list .edit{max-height:545px}.analytics .widget-item .content.accounts-invoices-list transactions-list{font-size:12px}.analytics .widget-item .content.accounts-live-balance h3{font-weight:900;color:#5B6667;margin-top:0;font-size:18px;text-align:center;text-shadow:1px}.analytics .widget-item .content.accounts-live-balance .statement-title{font-size:13px;font-weight:400}.analytics .widget-item .content.accounts-live-balance .balance-title{font-size:12px}.analytics .widget-item .content.accounts-live-balance .currency-centered{font-weight:300;font-size:12px;color:#5B6667;text-align:center}.analytics .widget-item .content.accounts-live-balance .headers{text-align:center}.analytics .widget-item .content.accounts-live-balance .spacer{min-height:30px}.analytics .widget-item .content.accounts-profit-and-loss,.analytics .widget-item .content.hr-payroll-summary,.analytics .widget-item .content.invoices-aged-payables-receivables,.analytics .widget-item .content.sales-aged,.analytics .widget-item .content.sales-comparison,.analytics .widget-item .content.sales-forecast,.analytics .widget-item .content.sales-leads-funnel,.analytics .widget-item .content.sales-opportunities-funnel,.analytics .widget-item .content.sales-performance{min-height:565px}.analytics .widget-item .content.accounts-live-balance .price{font-weight:900;font-size:22px;color:#5B6667;text-align:center;margin-top:0}.analytics .widget-item .content.accounts-live-balance .negative2{font-size:14px}.analytics .widget-item .content.accounts-payable-receivable h3{text-align:center}.analytics .widget-item .content.accounts-payable-receivable .legend{font-weight:700}.analytics .widget-item .content.accounts-payable-receivable .payable{margin-top:15px}.analytics .widget-item .content.accounts-payable-receivable .price{font-weight:900;font-size:22px;color:#5B6667;text-align:center;margin-top:0}@media (min-width:992px){.analytics .widget-item .content.accounts-profit-and-loss{height:565px}.analytics .widget-item .content.accounts-profit-and-loss .chart-container{max-width:585px;max-height:440px;margin:auto}}.analytics .widget-item .content.accounts-profit-and-loss .edit{max-height:545px}.analytics .widget-item .content.accounts-profit-and-loss .widget-lines-container{max-height:540px}.analytics .widget-item .content.accounts-profit-and-loss .widget-lines-container .lines-group .widget-line{cursor:pointer;border:1px solid #fff}.analytics .widget-item .content.accounts-profit-and-loss .widget-lines-container .lines-group .widget-line .selection-tag{display:block;right:0;margin-top:-6px;width:10px;height:29px;position:absolute}.analytics .widget-item .content.accounts-profit-and-loss .widget-lines-container .lines-group .widget-line:hover{background-color:#e6e0fb}.analytics .widget-item .content.accounts-profit-and-loss .widget-lines-container .lines-group .widget-line.no-select{cursor:auto}.analytics .widget-item .content.accounts-profit-and-loss .widget-lines-container .lines-group .widget-line.no-select:hover{color:#626d6d}.analytics .widget-item .content.accounts-profit-and-loss .right-panel .widget-lines-container{overflow-y:auto;overflow-x:hidden;max-height:215px}.analytics .widget-item .content.accounts-profit-and-loss .no-element{font-weight:300;font-size:16px;color:#5B6667;text-align:center}.analytics .widget-item .content.accounts-profit-and-loss .row.lines-group.profit{border-top:solid 1px;border-bottom:double}.analytics .widget-item .content.accounts-profit-and-loss .row.widget-line.header>[class*=col-]{position:static}.analytics .widget-item .content.accounts-ratios .left-panel{max-height:230px;overflow-y:auto}.analytics .widget-item .content.accounts-ratios .left-panel .separator{border-bottom:solid 1px #5B6667;width:75%}.analytics .widget-item .content.accounts-ratios .left-panel .member{padding-top:20px;padding-bottom:20px}.analytics .widget-item .content.accounts-ratios .left-panel .member .price{margin-top:0;font-size:18px}.analytics .widget-item .content.accounts-ratios .left-panel button{outline:0}.analytics .widget-item .content.accounts-ratios .left-panel.simulation .member{padding-top:5px}.analytics .widget-item .content.accounts-ratios .left-panel.simulation .member .legend{display:none}.analytics .widget-item .content.accounts-ratios .left-panel.simulation .member .price{text-align:right}.analytics .widget-item .content.accounts-ratios .left-panel.simulation .separator{width:100%}.analytics .widget-item .content.hr-employee-details{font-size:12px}.analytics .widget-item .content.hr-employee-details .details-container{padding:0;max-height:none;overflow-y:auto;overflow-x:hidden}.analytics .widget-item .content.hr-employee-details .right-panel .legend{margin-bottom:5px}.analytics .widget-item .content.hr-employee-details .title{text-align:center;margin-bottom:10px;font-size:14px}.analytics .widget-item .content.hr-employees-list .legend{margin-bottom:9px}.analytics .widget-item .content.hr-employees-list .widget-lines-container{text-align:center}.analytics .widget-item .content.hr-employees-list .widget-lines-container .widget-line:nth-child(even){background-color:#f0f0f0}.analytics .widget-item .content.hr-employees-list .widget-lines-container .widget-line:nth-child(odd){background-color:#fff}.analytics .widget-item .content.hr-employees-list .edit .widget-lines-container{text-align:left}.analytics .widget-item .content.hr-leaves-balance .employee-name{text-align:center}.analytics .widget-item .content.hr-leaves-balance .balance{font-weight:900;font-size:22px;color:#5B6667;text-align:center;margin-top:0}.analytics .widget-item .content.hr-leaves-balance h3{margin-top:33px;text-align:center}.analytics .widget-item .content.hr-leaves-schedule .fc-button{height:22px;font-size:12px;color:#977bf0;background:#fff;outline:0}.analytics .widget-item .content.hr-leaves-schedule .fc-button:hover{color:#fff;background:#977bf0}.analytics .widget-item .content.hr-payroll-summary .widget-lines-container .lines-group .widget-line:hover,.analytics .widget-item .content.invoices-aged-payables-receivables .widget-lines-container .lines-group .widget-line:hover{background-color:#e6e0fb}.analytics .widget-item .content.hr-leaves-schedule .fc-toolbar{margin-bottom:5px}.analytics .widget-item .content.hr-leaves-schedule .fc-day-grid,.analytics .widget-item .content.hr-leaves-schedule .fc-widget-header{font-size:12px;color:#5B6667}@media (min-width:992px){.analytics .widget-item .content.hr-employee-details .details-container{max-height:200px}.analytics .widget-item .content.hr-employee-details .right-panel .details-container{max-height:220px}.analytics .widget-item .content.hr-payroll-summary{height:565px}.analytics .widget-item .content.hr-payroll-summary .chart-container{max-width:585px;max-height:440px;margin:auto}}.analytics .widget-item .content.hr-salaries-summary h3.right,.analytics .widget-item .content.hr-workforce-summary h3.right{margin-bottom:10px;text-align:center}.analytics .widget-item .content.hr-payroll-summary .edit{max-height:545px}.analytics .widget-item .content.hr-payroll-summary .edit .widget-lines-container{overflow-y:hidden;overflow-x:hidden}.analytics .widget-item .content.hr-payroll-summary .widget-lines-container{max-height:540px}.analytics .widget-item .content.hr-payroll-summary .widget-lines-container .lines-group .widget-line{cursor:pointer;border:1px solid #fff}.analytics .widget-item .content.hr-payroll-summary .widget-lines-container .lines-group .widget-line .selection-tag{display:block;right:0;margin-top:-6px;width:10px;height:29px;position:absolute}.analytics .widget-item .content.hr-payroll-summary .widget-lines-container .lines-group .widget-line.no-select{cursor:auto}.analytics .widget-item .content.hr-payroll-summary .widget-lines-container .lines-group .widget-line.no-select:hover{color:#626d6d}.analytics .widget-item .content.hr-payroll-summary .right-panel .widget-lines-container{overflow-y:auto;overflow-x:hidden;max-height:145px}.analytics .widget-item .content.hr-payroll-summary .no-element{font-weight:300;font-size:16px;color:#5B6667;text-align:center}.analytics .widget-item .content.hr-salaries-summary h3.left{text-align:center}.analytics .widget-item .content.hr-salaries-summary h3.reduced-left{text-align:center}@media (min-width:992px){.analytics .widget-item .content.hr-salaries-summary h3.left{margin-top:69px}.analytics .widget-item .content.hr-salaries-summary h3.reduced-left{margin-top:10px}}.analytics .widget-item .content.hr-salaries-summary .price{margin-top:0}.analytics .widget-item .content.hr-salaries-summary .widget-lines-container{max-height:75px}.analytics .widget-item .content.hr-salaries-summary .widget-lines-container .widget-line{font-size:11px}.analytics .widget-item .content.hr-superannuation-accruals h3{margin-top:63px;text-align:center}.analytics .widget-item .content.hr-superannuation-accruals .legend{margin-top:23px}.analytics .widget-item .content.hr-superannuation-accruals .currency{font-size:14px}.analytics .widget-item .content.hr-superannuation-accruals .price{font-weight:900;font-size:22px;color:#5B6667;text-align:center;margin-top:0}.analytics .widget-item .content.hr-timesheets .currency{font-size:14px}.analytics .widget-item .content.hr-timesheets .widget-lines-container{max-height:210px}.analytics .widget-item .content.hr-workforce-summary h3.left{text-align:center}.analytics .widget-item .content.hr-workforce-summary h3.reduced-left{text-align:center}@media (min-width:992px){.analytics .widget-item .content.hr-workforce-summary h3.left{margin-top:69px}.analytics .widget-item .content.hr-workforce-summary h3.reduced-left{margin-top:10px}}.analytics .widget-item .content.hr-workforce-summary .price{margin-top:0}.analytics .widget-item .content.hr-workforce-summary .widget-lines-container{max-height:75px}.analytics .widget-item .content.hr-workforce-summary .widget-lines-container .widget-line{font-size:11px}@media (min-width:480px) and (max-width:991px){.analytics .widget-item .content.hr-salaries-summary .right-panel .chart-container,.analytics .widget-item .content.hr-workforce-summary .right-panel .chart-container{max-width:320px}}@media (min-width:992px){.analytics .widget-item .content.invoices-aged-payables-receivables{height:565px}.analytics .widget-item .content.invoices-aged-payables-receivables .chart-container{max-width:585px;max-height:440px;margin:auto}}.analytics .widget-item .content.invoices-aged-payables-receivables .edit{max-height:545px}.analytics .widget-item .content.invoices-aged-payables-receivables .edit .widget-lines-container{overflow-y:hidden;overflow-x:hidden}.analytics .widget-item .content.invoices-aged-payables-receivables .widget-lines-container{max-height:540px}.analytics .widget-item .content.invoices-aged-payables-receivables .widget-lines-container .lines-group .widget-line{cursor:pointer;border:1px solid #fff}.analytics .widget-item .content.invoices-aged-payables-receivables .widget-lines-container .lines-group .widget-line .selection-tag{display:block;right:0;margin-top:-6px;width:10px;height:29px;position:absolute}.analytics .widget-item .content.invoices-aged-payables-receivables .widget-lines-container .lines-group .widget-line.no-select{cursor:auto}.analytics .widget-item .content.invoices-aged-payables-receivables .widget-lines-container .lines-group .widget-line.no-select:hover{color:#626d6d}.analytics .widget-item .content.invoices-aged-payables-receivables .right-panel .widget-lines-container{overflow-y:auto;overflow-x:hidden;max-height:215px}.analytics .widget-item .content.sales-aged .edit .widget-lines-container,.analytics .widget-item .content.sales-comparison .edit .widget-lines-container{overflow-y:hidden;overflow-x:hidden}.analytics .widget-item .content.invoices-aged-payables-receivables .no-element{font-weight:300;font-size:16px;color:#5B6667;text-align:center}.analytics .widget-item .content.invoices-aged-payables-receivables .row.astericks-info{margin-top:15px}.analytics .widget-item .content.invoices-aged-payables-receivables .currency-conversions{float:right;margin-left:3px}.analytics .widget-item .content.invoices-list .widget-lines-container{max-height:230px}.analytics .widget-item .content.invoices-list .widget-lines-container .widget-line:nth-child(even){background-color:#f0f0f0}.analytics .widget-item .content.invoices-list .widget-lines-container .widget-line:nth-child(odd){background-color:#fff}.analytics .widget-item .content.invoices-list .widget-lines-container .widget-line.header{background-color:#fff}.analytics .widget-item .content.invoices-list .currency-conversions{float:right;margin-right:3px;margin-top:-2px}.analytics .widget-item .content.invoices-list .fa.fa-info-circle{float:right;font-size:15px}.analytics .widget-item .content.invoices-list .right-column{padding-left:0;padding-right:0}.analytics .widget-item .content.invoices-summary .chart-container{max-width:410px}.analytics .widget-item .content.invoices-summary .legend{max-height:28px}@media (min-width:992px){.analytics .widget-item .content.sales-aged{height:565px}.analytics .widget-item .content.sales-aged .chart-container{max-width:585px;max-height:440px;margin:auto}}.analytics .widget-item .content.sales-aged .edit{max-height:545px}.analytics .widget-item .content.sales-aged .widget-lines-container{max-height:238px}.analytics .widget-item .content.sales-break-even .price{font-weight:900;font-size:22px;color:#5B6667;text-align:center;margin-top:0}.analytics .widget-item .content.sales-break-even .block{margin:5px;padding:0 10px 5px;text-align:left;box-shadow:0 7px 10px -7px #17262d;font-size:12px}.analytics .widget-item .content.sales-break-even .block form.editable-wrap .editable-controls input{margin-top:5px;width:100px}.analytics .widget-item .content.sales-break-even .block.to-date{background-color:#f0f0f0;color:#5B6667}.analytics .widget-item .content.sales-break-even .block.to-breakeven{margin-top:10px;background-color:#192831;color:#1de9b6}.analytics .widget-item .content.sales-comparison .widget-lines-container .lines-group .widget-line:hover,.analytics .widget-item .content.sales-forecast .widget-lines-container .widget-line.main:hover{background-color:#e6e0fb}.analytics .widget-item .content.sales-break-even .block.to-breakeven .title{border-bottom:solid 1px #2a4453}.analytics .widget-item .content.sales-break-even .block.to-breakeven .define-text{font-weight:300;font-size:16px;text-align:center;padding-top:5px;color:#1de9b6}.analytics .widget-item .content.sales-break-even .block.to-breakeven .price{color:#1de9b6}.analytics .widget-item .content.sales-break-even .block .title{font-size:13px;text-align:center;font-variant:small-caps;border-bottom:solid 1px #e6edee;font-weight:300}@media (min-width:992px){.analytics .widget-item .content.sales-comparison{height:565px}.analytics .widget-item .content.sales-comparison .chart-container{max-width:585px;max-height:440px;margin:auto}}.analytics .widget-item .content.sales-comparison .edit{max-height:545px}.analytics .widget-item .content.sales-comparison .widget-lines-container .lines-group .widget-line{cursor:pointer;border:1px solid #fff}.analytics .widget-item .content.sales-comparison .widget-lines-container .lines-group .widget-line .selection-tag{display:block;right:0;margin-top:-6px;width:10px;height:29px;position:absolute}.analytics .widget-item .content.sales-comparison .widget-lines-container .lines-group .widget-line.no-select{cursor:auto}.analytics .widget-item .content.sales-comparison .widget-lines-container .lines-group .widget-line.no-select:hover{color:#626d6d}.analytics .widget-item .content.sales-comparison .no-element{font-weight:300;font-size:16px;color:#5B6667;text-align:center}.analytics .widget-item .content.sales-comparison .widget-lines-container{max-height:530px}.analytics .widget-item .content.sales-comparison .right-panel .widget-lines-container{overflow-y:auto;overflow-x:hidden;max-height:250px}.analytics .widget-item .content.sales-comparison .currency-conversions img{margin-top:-2px}.analytics .widget-item .content.sales-customer-details{font-size:12px}.analytics .widget-item .content.sales-customer-details .loader{font-size:14px}.analytics .widget-item .content.sales-customer-details .details-container{padding:0;overflow-y:auto;overflow-x:hidden}.analytics .widget-item .content.sales-forecast .edit .widget-lines-container,.analytics .widget-item .content.sales-leads-funnel .edit .widget-lines-container{overflow-y:hidden;overflow-x:hidden}@media (min-width:992px){.analytics .widget-item .content.sales-customer-details .details-container{max-height:194px}.analytics .widget-item .content.sales-customer-details .right-panel .details-container{max-height:230px}}.analytics .widget-item .content.sales-customer-details .right-panel .legend{margin-bottom:5px}.analytics .widget-item .content.sales-customer-details .row.title{text-align:center;margin-bottom:10px;font-size:14px}.analytics .widget-item .content.sales-customer-details .currency-conversions{float:left;margin-right:3px}.analytics .widget-item .content.sales-cycle .chart-container{max-width:410px}.analytics .widget-item .content.sales-cycle .legend{max-height:28px}@media (min-width:992px){.analytics .widget-item .content.sales-forecast{height:565px}.analytics .widget-item .content.sales-forecast .chart-container{max-width:585px;max-height:440px;margin:auto}}.analytics .widget-item .content.sales-forecast .edit{max-height:545px}.analytics .widget-item .content.sales-forecast .widget-lines-container{max-height:275px}.analytics .widget-item .content.sales-forecast .widget-lines-container .widget-line.main{cursor:pointer;border:1px solid #fff}.analytics .widget-item .content.sales-forecast .widget-lines-container .widget-line.main .selection-tag{display:block;right:0;margin-top:-6px;width:10px;height:29px;position:absolute}.analytics .widget-item .content.sales-forecast .widget-lines-container .widget-line.main.no-select{cursor:auto}.analytics .widget-item .content.sales-leads-funnel .right-panel .widget-lines-container .widget-line,.analytics .widget-item .content.sales-opportunities-funnel .right-panel .widget-lines-container .widget-line{cursor:default}.analytics .widget-item .content.sales-forecast .widget-lines-container .widget-line.main.no-select:hover{color:#626d6d}.analytics .widget-item .content.sales-growth .price{font-weight:900;font-size:22px;color:#5B6667;text-align:center;margin-top:0}.analytics .widget-item .content.sales-growth .legend{max-height:49px;font-size:14px;text-overflow:ellipsis;white-space:nowrap}@media (min-width:992px){.analytics .widget-item .content.sales-leads-funnel{height:565px}.analytics .widget-item .content.sales-leads-funnel .chart-container{max-width:585px;max-height:440px;margin:auto}}.analytics .widget-item .content.sales-leads-funnel .edit{max-height:545px}.analytics .widget-item .content.sales-leads-funnel .funnel-container{width:95%;margin:15px auto auto;padding-right:10px;max-height:505px;overflow:auto}.analytics .widget-item .content.sales-leads-funnel .right-panel .widget-lines-container{max-height:545px;margin-right:10px}.analytics .widget-item .content.sales-leads-list .widget-lines-container{max-height:230px;overflow-y:scroll;overflow-x:hidden}.analytics .widget-item .content.sales-leads-list .widget-lines-container .widget-line:nth-child(even){background-color:#f0f0f0}.analytics .widget-item .content.sales-leads-list .widget-lines-container .widget-line:nth-child(odd){background-color:#fff}.analytics .widget-item .content.sales-leads-list .widget-lines-container .widget-line.header{background-color:#fff}.analytics .widget-item .content.sales-list .widget-lines-container .widget-line:nth-child(even){background-color:#f0f0f0}.analytics .widget-item .content.sales-list .widget-lines-container .widget-line:nth-child(odd){background-color:#fff}.analytics .widget-item .content.sales-list .widget-lines-container .widget-line.header{background-color:#fff}.analytics .widget-item .content.sales-performance .right-panel .widget-lines-container .widget-line.header:hover,.analytics .widget-item .content.sales-performance .widget-lines-container .lines-group .widget-line:hover{background-color:#e6e0fb}.analytics .widget-item .content.sales-list .widget-lines-container{overflow-y:scroll;overflow-x:hidden;max-height:170px}.analytics .widget-item .content.sales-list .widget-lines-container.no-scroll{overflow:visible}.analytics .widget-item .content.sales-list .selector{margin-bottom:4px}.analytics .widget-item .content.sales-list .currency-conversions img{margin-top:-2px}.analytics .widget-item .content.sales-net-sales .operator,.analytics .widget-item .content.sales-net-sales .value-container{line-height:85px}.analytics .widget-item .content.sales-net-sales .value-container .title{line-height:20px;font-size:1.2em;padding:10px 0}.analytics .widget-item .content.sales-net-sales .value-container .value-box{font-size:1.3em;border-radius:10px;border-top:solid 1px #C4CACA;border-bottom:solid 1px #C4CACA;white-space:nowrap}.analytics .widget-item .content.sales-net-sales .operator{padding-top:38px;font-size:1.3em}@media (min-width:992px){.analytics .widget-item .content.sales-net-sales .values{margin-top:25px}}.analytics .widget-item .content.sales-new-vs-existing-customers .selector .selector-wrap{display:inline-block;margin:0 5px}.analytics .widget-item .content.sales-new-vs-existing-customers .chart-container{margin-top:15px}.analytics .widget-item .content.sales-new-vs-existing-customers .legend{margin-top:5px;font-weight:700;max-height:77px!important}.analytics .widget-item .content.sales-new-vs-existing-customers .legend .row{margin:0 -5px}.analytics .widget-item .content.sales-new-vs-existing-customers .legend .row>div{padding:0 5px}.analytics .widget-item .content.sales-new-vs-existing-customers .legend .total{color:#5B6667;font-size:14px}.analytics .widget-item .content.sales-number-of-leads .stats{margin-top:35px;font-size:18px}.analytics .widget-item .content.sales-number-of-leads .stats .stat{margin:15px 0 10px;border-bottom:solid 1px #e6edee}.analytics .widget-item .content.sales-number-of-leads .stats .stat span.title{font-weight:700}.analytics .widget-item .content.sales-number-of-leads .stats .stat span.nominal{float:right;text-align:right;font-weight:300}.analytics .widget-item .content.sales-number-of-leads .stats .stat span.variation{float:right;width:50px;text-align:right;font-style:italic;font-size:14px;font-weight:300;margin-top:2px}@media (min-width:992px){.analytics .widget-item .content.sales-opportunities-funnel{height:565px}.analytics .widget-item .content.sales-opportunities-funnel .chart-container{max-width:585px;max-height:440px;margin:auto}}.analytics .widget-item .content.sales-opportunities-funnel .edit{max-height:545px}.analytics .widget-item .content.sales-opportunities-funnel .edit .widget-lines-container{overflow-y:hidden;overflow-x:hidden}.analytics .widget-item .content.sales-opportunities-funnel .funnel-container{width:95%;margin:15px auto auto;padding-right:10px;max-height:505px;overflow:auto}.analytics .widget-item .content.sales-opportunities-funnel .right-panel .widget-lines-container{max-height:545px;margin-right:10px}@media (min-width:992px){.analytics .widget-item .content.sales-performance{height:565px}.analytics .widget-item .content.sales-performance .chart-container{max-width:585px;max-height:440px;margin:auto}}.analytics .widget-item .content.sales-performance .right-panel .widget-lines-container .widget-line.header .selection-tag,.analytics .widget-item .content.sales-performance .widget-lines-container .lines-group .widget-line .selection-tag{display:block;right:0;margin-top:-6px;width:10px;height:29px;position:absolute}.analytics .widget-item .content.sales-performance .edit{max-height:545px}.analytics .widget-item .content.sales-performance .edit .widget-lines-container{overflow-y:hidden;overflow-x:hidden}.analytics .widget-item .content.sales-performance .widget-lines-container{max-height:540px}.analytics .widget-item .content.sales-performance .widget-lines-container .lines-group .widget-line{cursor:pointer;border:1px solid #fff}.analytics .widget-item .content.sales-performance .widget-lines-container .lines-group .widget-line.no-select{cursor:auto}.analytics .widget-item .content.sales-performance .widget-lines-container .lines-group .widget-line.no-select:hover{color:#626d6d}.analytics .widget-item .content.sales-performance .right-panel .widget-lines-container{overflow-y:auto;overflow-x:hidden;max-height:215px}.analytics .widget-item .content.sales-performance .no-element{font-weight:300;font-size:16px;color:#5B6667;text-align:center}.analytics .widget-item .content.sales-performance .right-panel .widget-lines-container .widget-line.header{cursor:pointer;border:1px solid #fff}.analytics .widget-item .content.sales-performance .right-panel .widget-lines-container .widget-line.header.no-select{cursor:auto}.analytics .widget-item .content.sales-performance .right-panel .widget-lines-container .widget-line.header.no-select:hover{color:#626d6d}.analytics .widget-item .content.sales-segmented-turnover h3.right{margin-top:55px;text-align:center}.analytics .widget-item .content.sales-segmented-turnover .selector{margin-bottom:10px}.analytics .widget-item .content.sales-segmented-turnover .analysis{font-weight:900;font-size:22px;color:#5B6667;text-align:center;margin-top:0}.analytics .widget-item .content.sales-segmented-turnover .widget-lines-container{max-height:75px}.analytics .widget-item .content.sales-segmented-turnover .widget-lines-container .widget-line{font-size:11px}.analytics .widget-item .content.sales-segmented-turnover .right-panel h3{margin:15px 10px 5px;text-align:center}.analytics .widget-item .content.sales-segmented-turnover .right-panel .fa.fa-info-circle{float:left}.analytics .widget-item .content.sales-summary .chart-container{max-width:410px}.analytics .widget-item .content.sales-summary .legend{max-height:28px}.analytics .widget-item .content.sales-summary .selector{margin-bottom:5px}.analytics .widget-item .content.sales-top-customers .selector{border-bottom:dashed 1px #E6E6E6;padding-bottom:3px}.analytics .widget-item .content.sales-top-customers .selector a{font-weight:400}.analytics .widget-item .content.sales-top-customers .selector .param-selector{display:inline-block}.analytics .widget-item .content.sales-top-customers .widget-lines-container{max-height:235px}.analytics .widget-item .content.sales-top-customers .widget-lines-container .widget-line.sub-line{background-color:#f0f0f0}.analytics .widget-item .content.sales-top-customers .widget-lines-container .row>[class*=col-]{position:static}.analytics .widget-item .content.sales-top-customers .currency-conversions img{margin-top:-2px}.analytics .widget-item .content.sales-top-opportunities .opps-container{max-height:195px;margin-top:10px;padding-right:10px;overflow-y:auto;overflow-x:hidden}.analytics .widget-item .content.sales-top-opportunities .opps-container .tile{height:40px;font-size:13px;font-weight:300}.analytics .widget-item .content.sales-top-opportunities .opps-container .tile .colored-area{width:10%;text-align:center;font-size:20px}.analytics .widget-item .content.sales-top-opportunities .opps-container .tile .main-text{color:#5B6667;padding:3px 0 0 10px}.analytics .widget-item .content.sales-top-opportunities .opps-container .tile.first{height:55px;font-size:15px;font-weight:700}.analytics .widget-item .content.sales-top-opportunities .opps-container .tile.first .colored-area{font-size:26px;padding-top:10px;background-color:#ff6e41}.analytics .widget-item .content.sales-top-opportunities .opps-container .tile.first .main-text{padding-top:8px}.analytics .widget-item .content.sales-top-opportunities .opps-container .tile.second{height:55px;font-size:15px;font-weight:500}.analytics .widget-item .content.sales-top-opportunities .opps-container .tile.second .colored-area{font-size:26px;padding-top:10px;background-color:#1de9b6}.analytics .widget-item .content.sales-top-opportunities .opps-container .tile.second .main-text{padding-top:8px} \ No newline at end of file + *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */.label,sub,sup{vertical-align:baseline}hr,img{border:0}body,figure{margin:0}.analytics pre,pre{word-wrap:break-word}.btn-group>.btn-group,.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.dropdown-menu{float:left}.btn,.kpi-alerts-settings .modal-body ul>li.list-group-item{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.pre-scrollable{max-height:340px}.analytics .impac-kpi .kpi .kpi-edit .im-form-group textarea,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group textarea,.analytics kpis-bar>.kpis .actions .im-form-group textarea{resize:none}html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent;color:#00e5f0;text-decoration:none}a:active,a:hover{outline:0}b,optgroup,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0}mark{background:#ff0;color:#000}.img-thumbnail,body{background-color:#fff}.btn,.btn-danger.active,.btn-danger:active,.btn-default.active,.btn-default:active,.btn-info.active,.btn-info:active,.btn-primary.active,.btn-primary:active,.btn-warning.active,.btn-warning:active,.btn.active,.btn:active,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover,.form-control,.navbar-toggle,.open>.dropdown-toggle.btn-danger,.open>.dropdown-toggle.btn-default,.open>.dropdown-toggle.btn-info,.open>.dropdown-toggle.btn-primary,.open>.dropdown-toggle.btn-warning{background-image:none}sub,sup{font-size:75%;line-height:0;position:relative}sup{top:-.5em}sub{bottom:-.25em}img{vertical-align:middle}svg:not(:root){overflow:hidden}hr{box-sizing:content-box;height:0}pre,textarea{overflow:auto}code,kbd,pre,samp{font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}.glyphicon,address{font-style:normal}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}td,th{padding:0}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff2) format('woff2'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\002a"}.glyphicon-plus:before{content:"\002b"}.glyphicon-eur:before,.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before,.glyphicon-btc:before,.glyphicon-xbt:before{content:"\e227"}.glyphicon-jpy:before,.glyphicon-yen:before{content:"\00a5"}.glyphicon-rub:before,.glyphicon-ruble:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*,:after,:before{box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a:focus,a:hover{color:#009ca3;text-decoration:underline}a:focus{outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857143;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role=button]{cursor:pointer}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}dt,kbd kbd,label{font-weight:700}address,blockquote .small,blockquote footer,blockquote small,dd,dt,pre{line-height:1.42857143}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{background-color:#fcf8e3;padding:.2em}.list-inline,.list-unstyled{padding-left:0;list-style:none}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#00e5f0}a.text-primary:focus,a.text-primary:hover{color:#00b4bd}.text-success{color:#3c763d}a.text-success:focus,a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:focus,a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:focus,a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:focus,a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#00e5f0}a.bg-primary:focus,a.bg-primary:hover{background-color:#00b4bd}.bg-success{background-color:#dff0d8}a.bg-success:focus,a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:focus,a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:focus,a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:focus,a.bg-danger:hover{background-color:#e4b9b9}pre code,table{background-color:transparent}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}dl,ol,ul{margin-top:0}address,dl{margin-bottom:20px}ol,ul{margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-inline{margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}.container{width:750px}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;color:#777}legend,pre{display:block;color:#333}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0;text-align:right}code,kbd{padding:2px 4px;font-size:90%}caption,th{text-align:left}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{color:#fff;background-color:#333;border-radius:3px;box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;box-shadow:none}pre{padding:9.5px;margin:0 0 10px;font-size:13px;word-break:break-all;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}.container,.container-fluid{margin-right:auto;margin-left:auto}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;border-radius:0}.container,.container-fluid{padding-left:15px;padding-right:15px}.pre-scrollable{overflow-y:scroll}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.row{margin-left:-15px;margin-right:-15px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{border-collapse:collapse;border-spacing:0}caption{padding-top:8px;padding-bottom:8px;color:#777}.table{width:100%;max-width:100%;margin-bottom:20px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered,.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover,.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}table col[class*=col-]{position:static;float:none;display:table-column}table td[class*=col-],table th[class*=col-]{position:static;float:none;display:table-cell}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{overflow-x:auto;min-height:.01%}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset,legend{padding:0;border:0}fieldset{margin:0;min-width:0}legend{width:100%;margin-bottom:20px;font-size:21px;line-height:inherit;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px}input[type=search]{box-sizing:border-box;-webkit-appearance:none}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px\9;line-height:normal}.form-control,output{font-size:14px;line-height:1.42857143;color:#555;display:block}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=checkbox]:focus,input[type=radio]:focus{outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}output{padding-top:7px}.form-control{width:100%;height:34px;padding:6px 12px;background-color:#fff;border:1px solid #ccc;border-radius:4px;box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .form-control-feedback,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#3c763d}.form-control::-ms-expand{border:0;background-color:transparent}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date].form-control,input[type=time].form-control,input[type=datetime-local].form-control,input[type=month].form-control{line-height:34px}.input-group-sm input[type=date],.input-group-sm input[type=time],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}.input-group-lg input[type=date],.input-group-lg input[type=time],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-left:-20px;margin-top:4px\9}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:400;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}.checkbox-inline.disabled,.checkbox.disabled label,.radio-inline.disabled,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio label,fieldset[disabled] .radio-inline,fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.form-control-static{padding-top:7px;padding-bottom:7px;margin-bottom:0;min-height:34px}.form-control-static.input-lg,.form-control-static.input-sm{padding-left:0;padding-right:0}.form-group-sm .form-control,.input-sm{padding:5px 10px;border-radius:3px;font-size:12px}.input-sm{height:30px;line-height:1.5}select.input-sm{height:30px;line-height:30px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:30px;line-height:1.5}.form-group-lg .form-control,.input-lg{border-radius:6px;padding:10px 16px;font-size:18px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm select[multiple].form-control,.form-group-sm textarea.form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;line-height:1.3333333}select.input-lg{height:46px;line-height:46px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:46px;line-height:1.3333333}.form-group-lg select.form-control{height:46px;line-height:46px}.form-group-lg select[multiple].form-control,.form-group-lg textarea.form-control{height:auto}.form-group-lg .form-control-static{height:46px;min-height:38px;padding:11px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.collapsing,.dropdown,.dropup{position:relative}.form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .form-control{box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;border-color:#3c763d;background-color:#dff0d8}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .form-control-feedback,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;border-color:#8a6d3b;background-color:#fcf8e3}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .form-control-feedback,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#a94442}.has-error .form-control{box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;border-color:#a94442;background-color:#f2dede}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-control-static,.form-inline .form-group{display:inline-block}.form-inline .control-label,.form-inline .form-group{margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:7px}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:11px;font-size:18px}.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;margin-bottom:0;font-weight:400;text-align:center;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:14px;line-height:1.42857143;border-radius:4px;user-select:none}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{outline:0;box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;opacity:.65;filter:alpha(opacity=65);box-shadow:none}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.focus,.btn-default:focus{color:#333;background-color:#e6e6e6;border-color:#8c8c8c}.btn-default.active,.btn-default:active,.btn-default:hover,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open>.dropdown-toggle.btn-default.focus,.open>.dropdown-toggle.btn-default:focus,.open>.dropdown-toggle.btn-default:hover{color:#333;background-color:#d4d4d4;border-color:#8c8c8c}.btn-default.disabled.focus,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled].focus,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#00e5f0;border-color:#00cdd7}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#00b4bd;border-color:#005357}.btn-primary.active,.btn-primary:active,.btn-primary:hover,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#00b4bd;border-color:#009299}.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.dropdown-toggle.btn-primary.focus,.open>.dropdown-toggle.btn-primary:focus,.open>.dropdown-toggle.btn-primary:hover{color:#fff;background-color:#009299;border-color:#005357}.btn-primary.disabled.focus,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled].focus,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#00e5f0;border-color:#00cdd7}.btn-primary .badge{color:#00e5f0;background-color:#fff}.btn-success{color:#fff;background-color:#00e5f0;border-color:#00cdd7}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#00b4bd;border-color:#005357}.btn-success.active,.btn-success:active,.btn-success:hover,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#00b4bd;border-color:#009299}.btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.dropdown-toggle.btn-success.focus,.open>.dropdown-toggle.btn-success:focus,.open>.dropdown-toggle.btn-success:hover{color:#fff;background-color:#009299;border-color:#005357}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled.focus,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled].focus,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#00e5f0;border-color:#00cdd7}.btn-success .badge{color:#00e5f0;background-color:#fff}.btn-info{color:#fff;background-color:#00e5f0;border-color:#00cdd7}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#00b4bd;border-color:#005357}.btn-info.active,.btn-info:active,.btn-info:hover,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#00b4bd;border-color:#009299}.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.dropdown-toggle.btn-info.focus,.open>.dropdown-toggle.btn-info:focus,.open>.dropdown-toggle.btn-info:hover{color:#fff;background-color:#009299;border-color:#005357}.btn-info.disabled.focus,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled].focus,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#00e5f0;border-color:#00cdd7}.btn-info .badge{color:#00e5f0;background-color:#fff}.btn-warning{color:#fff;background-color:#977bf0;border-color:#8564ed}.btn-warning.focus,.btn-warning:focus{color:#fff;background-color:#734deb;border-color:#3d15bd}.btn-warning.active,.btn-warning:active,.btn-warning:hover,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#734deb;border-color:#5a2de7}.btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.dropdown-toggle.btn-warning.focus,.open>.dropdown-toggle.btn-warning:focus,.open>.dropdown-toggle.btn-warning:hover{color:#fff;background-color:#5a2de7;border-color:#3d15bd}.btn-warning.disabled.focus,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled].focus,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#977bf0;border-color:#8564ed}.btn-warning .badge{color:#977bf0;background-color:#fff}.btn-danger{color:#fff;background-color:#e01f74;border-color:#ca1c68}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#b3195d;border-color:#5a0c2e}.btn-danger.active,.btn-danger:active,.btn-danger:hover,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#b3195d;border-color:#94144d}.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.dropdown-toggle.btn-danger.focus,.open>.dropdown-toggle.btn-danger:focus,.open>.dropdown-toggle.btn-danger:hover{color:#fff;background-color:#94144d;border-color:#5a0c2e}.btn-danger.disabled.focus,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled].focus,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#e01f74;border-color:#ca1c68}.btn-danger .badge{color:#e01f74;background-color:#fff}.btn-link{color:#00e5f0;font-weight:400;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#009ca3;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{height:0;overflow:hidden;-webkit-transition-property:height,visibility;transition-property:height,visibility;-webkit-transition-duration:.35s;transition-duration:.35s;-webkit-transition-timing-function:ease;transition-timing-function:ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;text-align:left;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box}.dropdown-menu-right,.dropdown-menu.pull-right{left:auto;right:0}.dropdown-header,.dropdown-menu>li>a{display:block;padding:3px 20px;line-height:1.42857143;white-space:nowrap}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{clear:both;font-weight:400;color:#333}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{text-decoration:none;color:#262626;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;outline:0;background-color:#00e5f0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;background-color:transparent;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{font-size:12px;color:#777}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.nav-justified>.dropdown .dropdown-menu,.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px dashed;border-bottom:4px solid\9;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn .caret,.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{box-shadow:none}.btn-lg .caret{border-width:5px 5px 0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-radius:4px 4px 0 0}.btn-group-vertical>.btn:last-child:not(:first-child){border-radius:0 0 4px 4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group .form-control:focus{z-index:3}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.nav>li,.nav>li>a{display:block;position:relative}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li>a{padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#00e5f0}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px;margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0;border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-justified>li,.nav-stacked>li{float:none}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#00e5f0}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}.navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar{border-radius:4px}.navbar-header{float:left}.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-left:0;padding-right:0}}.analytics pre,.carousel-inner,.embed-responsive,.media,.media-body,.modal,.modal-open,.progress{overflow:hidden}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}.navbar-static-top{z-index:1000;border-width:0 0 1px}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:15px;font-size:18px;line-height:20px;height:50px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}.navbar-fixed-bottom,.navbar-fixed-top,.navbar-static-top{border-radius:0}.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}.progress-bar-striped,.progress-striped .progress-bar,.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}@media (min-width:768px){.navbar-toggle{display:none}.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);margin:8px -15px}@media (min-width:768px){.navbar-form .form-control-static,.navbar-form .form-group{display:inline-block}.navbar-form .control-label,.navbar-form .form-group{margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;box-shadow:none}}.breadcrumb>li,.pagination{display:inline-block}.btn .badge,.btn .label{top:-1px;position:relative}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-radius:4px 4px 0 0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-nav>li>a,.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{background-color:#e7e7e7;color:#555}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>li>a,.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{background-color:#080808;color:#fff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#ccc}.breadcrumb>.active{color:#777}.pagination{padding-left:0;margin:20px 0;border-radius:4px}.pager li,.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;line-height:1.42857143;text-decoration:none;color:#00e5f0;background-color:#fff;border:1px solid #ddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{z-index:2;color:#009ca3;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:3;color:#fff;background-color:#00e5f0;border-color:#00e5f0;cursor:default}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#777;background-color:#fff;border-color:#ddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.badge,.label{font-weight:700;line-height:1;white-space:nowrap;text-align:center}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:20px 0;list-style:none;text-align:center}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;background-color:#fff;cursor:not-allowed}a.badge:focus,a.badge:hover,a.label:focus,a.label:hover{color:#fff;cursor:pointer;text-decoration:none}.label{display:inline;padding:.2em .6em .3em;font-size:75%;color:#fff;border-radius:.25em}.label:empty{display:none}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#00e5f0}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#00b4bd}.label-success{background-color:#00e5f0}.label-success[href]:focus,.label-success[href]:hover{background-color:#00b4bd}.label-info{background-color:#00e5f0}.label-info[href]:focus,.label-info[href]:hover{background-color:#00b4bd}.label-warning{background-color:#977bf0}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#734deb}.label-danger{background-color:#e01f74}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#b3195d}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;color:#fff;vertical-align:middle;background-color:#777;border-radius:10px}.badge:empty{display:none}.media-object,.thumbnail{display:block}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#00e5f0;background-color:#fff}.jumbotron,.jumbotron .h1,.jumbotron h1{color:inherit}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;background-color:#eee}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.alert,.thumbnail{margin-bottom:20px}.alert .alert-link,.close{font-weight:700}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{border-radius:6px;padding-left:15px;padding-right:15px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-left:60px;padding-right:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-left:auto;margin-right:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#00e5f0}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.modal,.modal-backdrop{top:0;right:0;bottom:0;left:0}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#8a6d3b}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#a94442}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;background-color:#f5f5f5;border-radius:4px;box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar,.progress-bar-info,.progress-bar-success{background-color:#00e5f0}.progress-bar{float:left;width:0%;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-striped .progress-bar-success{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-striped .progress-bar-info,.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-striped .progress-bar-info{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#977bf0}.progress-striped .progress-bar-warning{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#e01f74}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{zoom:1}.media-body{width:10000px}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover,button.list-group-item:focus,button.list-group-item:hover{text-decoration:none;color:#555;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{background-color:#eee;color:#777;cursor:not-allowed}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#00e5f0;border-color:#00e5f0}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#bdfcff}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover,button.list-group-item-success:focus,button.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover,button.list-group-item-success.active,button.list-group-item-success.active:focus,button.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover,button.list-group-item-info:focus,button.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover,button.list-group-item-info.active,button.list-group-item-info.active:focus,button.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover,button.list-group-item-warning:focus,button.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover,button.list-group-item-warning.active,button.list-group-item-warning.active:focus,button.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover,button.list-group-item-danger:focus,button.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover,button.list-group-item-danger.active,button.list-group-item-danger.active:focus,button.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.panel-heading>.dropdown .dropdown-toggle,.panel-title,.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-title,.panel>.list-group,.panel>.panel-collapse>.list-group,.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-title{margin-top:0;font-size:16px}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel-group .panel-heading,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:3px;border-top-left-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.panel>.table-responsive:first-child>.table:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.list-group+.panel-footer,.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-left:15px;padding-right:15px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child,.panel>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-left-radius:3px;border-bottom-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#00e5f0}.panel-primary>.panel-heading{color:#fff;background-color:#00e5f0;border-color:#00e5f0}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#00e5f0}.panel-primary>.panel-heading .badge{color:#00e5f0;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#00e5f0}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;left:0;bottom:0;height:100%;width:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.popover,.tooltip{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:400;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;text-decoration:none}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.modal-content,.popover{background-clip:padding-box}.modal{display:none;position:fixed;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0,-25%);transform:translate(0,-25%);-webkit-transition:-webkit-transform .3s ease-out;transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;box-shadow:0 3px 9px rgba(0,0,0,.5);outline:0}.modal-backdrop{position:fixed;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;text-align:left;text-align:start;font-size:12px;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow,.tooltip.top-left .tooltip-arrow,.tooltip.top-right .tooltip-arrow{bottom:0;border-width:5px 5px 0;border-top-color:#000}.tooltip.top .tooltip-arrow{left:50%;margin-left:-5px}.tooltip.top-left .tooltip-arrow{right:5px;margin-bottom:-5px}.tooltip.top-right .tooltip-arrow{left:5px;margin-bottom:-5px}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow,.tooltip.bottom-left .tooltip-arrow,.tooltip.bottom-right .tooltip-arrow{border-width:0 5px 5px;border-bottom-color:#000;top:0}.tooltip.bottom .tooltip-arrow{left:50%;margin-left:-5px}.tooltip.bottom-left .tooltip-arrow{right:5px;margin-top:-5px}.tooltip.bottom-right .tooltip-arrow{left:5px;margin-top:-5px}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;text-align:left;text-align:start;font-size:14px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;box-shadow:0 5px 10px rgba(0,0,0,.2)}.carousel-caption,.carousel-control{color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.carousel,.carousel-inner{position:relative}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,.25);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff}.popover.left>.arrow:after,.popover.right>.arrow:after{content:" ";bottom:-10px}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:rgba(0,0,0,.25)}.popover.right>.arrow:after{left:1px;border-left-width:0;border-right-color:#fff}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;border-right-width:0;border-left-color:#fff}.carousel-inner{width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.active.right,.carousel-inner>.item.next{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);left:0}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);left:0}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);left:0}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:.5;filter:alpha(opacity=50);font-size:20px;background-color:rgba(0,0,0,0)}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:focus,.carousel-control:hover{outline:0;color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;margin-top:-10px;z-index:5;display:inline-block}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;line-height:1;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #fff;border-radius:10px;cursor:pointer;background-color:#000\9;background-color:rgba(0,0,0,0)}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#fff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px}.carousel-caption .btn,.text-hide{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-10px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-10px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.modal-header:after,.modal-header:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{content:" ";display:table}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.modal-header:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.hidden,.visible-lg,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;background-color:transparent;border:0}.analytics h2,.analytics h3{font-size:14px;color:#5B6667}.affix{position:fixed}@-ms-viewport{width:device-width}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}.visible-xs-block{display:block!important}.visible-xs-inline{display:inline!important}.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}.visible-sm-block{display:block!important}.visible-sm-inline{display:inline!important}.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}.visible-md-block{display:block!important}.visible-md-inline{display:inline!important}.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}.visible-lg-block{display:block!important}.visible-lg-inline{display:inline!important}.visible-lg-inline-block{display:inline-block!important}.hidden-lg{display:none!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table!important}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}.hidden-print{display:none!important}}.top-buffer-1{margin-top:15px}.top-buffer-2{margin-top:30px}.top-buffer-3{margin-top:45px}.top-buffer-4{margin-top:60px}.top-buffer-5{margin-top:75px}.top-buffer-6{margin-top:90px}.top-buffer-7{margin-top:105px}.top-buffer-8{margin-top:120px}.top-buffer-9{margin-top:135px}.top-buffer-10{margin-top:150px}body{height:101%!important}.analytics h2{margin-top:2px}.analytics h3{margin:0;font-weight:300;text-align:left}.analytics h4{color:#5B6667;font-size:16px}.analytics .green,.analytics .positive{color:green!important}.analytics .negative,.analytics .red{color:#ed1e79!important}.analytics .positive2{color:#3fc4ff!important}.analytics .negative2{color:#1de9b6!important}.analytics a{font-weight:700;color:#977bf0;cursor:pointer}.analytics .input-group{width:100%}.analytics select{margin-top:5px;background-color:#fff;height:32px}.analytics pre{font-size:12px;padding:0;margin:1px 0 8px;border:none;white-space:pre-wrap}.analytics .widget-item .content ::-webkit-scrollbar,.analytics kpis-bar .kpi ::-webkit-scrollbar{width:6px;background-color:transparent}.analytics .widget-item .content ::-webkit-scrollbar-thumb,.analytics kpis-bar .kpi ::-webkit-scrollbar-thumb{background-color:#6896b2;border-radius:10px}.analytics .widget-item .content ::-webkit-scrollbar-thumb:hover,.analytics kpis-bar .kpi ::-webkit-scrollbar-thumb:hover{background-color:#79a2bb}.analytics .nopadding{padding:0}.analytics .nomargin{margin:0}.analytics .btn.btn-shaded{background-color:#17262d;border:1px solid #0e181c;color:#626d6d;font-weight:400}.analytics .btn.btn-shaded:hover{color:#6e7a7a;background-color:#20343e}.analytics .price{font-weight:900;font-size:22px;color:#5B6667;text-align:center;margin-top:30px}.analytics .currency{font-weight:300;font-size:16px;text-align:center;color:#9ba6a7}.analytics .legend{font-weight:300;font-size:12px;text-align:center;overflow-y:auto;overflow-x:hidden;color:#c4caca}.analytics .loader{height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.analytics .loader i{color:#67BBE9}.analytics .loader p{margin-top:10px}.analytics .right-panel{border-left:solid 1px #e6e6e6}.analytics .selector{text-transform:uppercase;font-size:12px;color:#626d6d;text-align:center}.analytics .tile{background-color:#f7f7f7;box-shadow:0 7px 10px -7px #17262d;height:45px;margin-bottom:10px;white-space:nowrap;cursor:pointer}.analytics .tile:hover{background-color:#e2f2ff}.analytics .tile .colored-area{background-color:#3FC4FF;height:100%;float:right;color:#fff;text-align:right;padding:5px 10px;min-width:8%}.analytics .tile .colored-area.selected{background-color:#977bf0}.analytics .tile .main-text{color:#5B6667;padding:20px 0 0 5px;height:100%;font-style:italic;font-weight:700}.analytics .widget-lines-container{overflow-y:auto;overflow-x:hidden;max-height:200px;text-align:left;font-size:12px;padding:0 15px}.analytics .widget-lines-container .row.widget-line{padding:5px;color:#626d6d}.analytics .widget-lines-container .row.widget-line.header{font-weight:500;font-size:12px;color:#9ba6a7;text-transform:uppercase}@media (max-width:767px){.analytics .widget-lines-container .row.widget-line{margin:inherit;margin-left:-3px;margin-right:-3px;padding:2px}.analytics .widget-lines-container .row.widget-line>[class*=col-]{padding-left:3px;padding-right:3px}}.analytics .widget-lines-container .row.widget-line i.fa{min-width:12px;min-height:12px}.analytics .widget-lines-container .row .dashed{border-bottom:dashed 1px #dfe2e2;padding-bottom:3px;margin-bottom:3px}.analytics .widget-lines-container .row.lines-group{border-top:solid 1px #e6edee}.vertical-scroll{overflow-y:scroll}.horizontal-scroll{overflow-x:scroll}.tooltip.impac-widgets-tooltip .tooltip-inner.ng-binding{text-align:left;background-color:#232528;max-width:100%;white-space:nowrap}.tooltip.impac-widgets-tooltip .tooltip-inner.ng-binding strong{color:#dae173}.sortable-title{cursor:pointer}.sortable-title div{display:inline-block}div[ng-messages]{color:red}.has-error .form-control,.has-error .form-control:focus{border-color:#e01f74}.has-success .form-control,.has-success .form-control:focus{border-color:#00e5f0}.row.no-gutters{margin-right:0;margin-left:0}[class*=" col-"].no-gutters,[class^=col-].no-gutters{padding-right:0;padding-left:0}@media print{body{background-color:#fff!important}.analytics{padding-top:0!important}.analytics #module__dashboard-selector .title-container{margin-top:20px}.analytics .widget-item{page-break-inside:avoid}.analytics .widget-item .content .chart-container{max-width:270px;margin:auto}.analytics .widget-item .content .chart-container canvas{width:100%!important;height:100%!important}.analytics .widget-item .right-panel{page-break-inside:avoid;border-left:0}.analytics .widget-item .right-panel .chart-container{max-width:inherit;max-height:inherit}.analytics .widget-item .right-panel .chart-container canvas{width:80%!important;height:80%!important}*{-webkit-transition:none!important;transition:none!important}}.kpi-alerts-settings .modal-header{font-size:20px}.kpi-alerts-settings .modal-body{line-height:2}.kpi-alerts-settings .modal-body ul{margin-top:10px}.kpi-alerts-settings .modal-body ul>li.list-group-item{list-style:none;padding:6px 15px;color:#9ba6a7;user-select:none}.kpi-alerts-settings .modal-body ul>li.list-group-item .alert-toggle:hover{cursor:pointer}.kpi-alerts-settings .modal-body ul>li.list-group-item.active{color:#358fdc;font-weight:700;background-color:transparent;border-color:#c4caca}.kpi-alerts-settings .modal-body .fa.fa-toggle-off,.kpi-alerts-settings .modal-body .fa.fa-toggle-on{font-size:17px;margin-right:8px}.kpi-alerts-settings .modal-body ul.recipients-list{height:75px;overflow:hidden;overflow-y:scroll;border:1px solid #c4caca}.kpi-alerts-settings .modal-body ul.recipients-list li{border:none}.kpi-alerts-settings .modal-body input.recipient-search{color:#000;width:100%}.kpi-alerts-settings .modal-body ul.available{margin-top:0}.analytics{padding-top:50px;margin-left:100px}@media screen and (max-width:992px){.analytics{padding-top:150px}}.analytics.pdf-mode{padding-top:20px}.analytics.show-dhb{-webkit-transition:opacity 1s;transition:opacity 1s;opacity:1}.analytics.hide-dhb{opacity:0}.analytics #dashboard-heading img{float:left;margin-right:15px;max-width:200px;max-height:150px}.analytics #dashboard-heading img.pdf-mode:hover{cursor:pointer}.analytics #dashboard-heading .caption{font-size:14px;margin:5px 0}.analytics #sub-menu{margin-top:15px}.analytics #sub-menu h3{font-size:26px;font-weight:400;margin-bottom:10px;color:#233845}.analytics #sub-menu .fa.fa-times{margin:6px;color:#3d6178;cursor:pointer;float:right}.analytics #widget-selector{background-color:#233845;color:#fff;padding:0 45px 10px;margin:10px -45px;border-radius:3px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}@media (max-width:767px){.analytics #widget-selector{padding:0 15px 10px;margin:0}}.analytics #widget-selector .title{padding:15px 0;border-bottom:solid 1px #2d4859;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.analytics #widget-selector .title p.instruction{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;margin:0}@media screen and (max-width:768px){.analytics #widget-selector .title p.instruction{width:50%;font-size:13px}}.analytics #widget-selector .title .widget-added.badge{margin-right:10px;opacity:0}.analytics #widget-selector .title .fa.close-selector{float:right;cursor:pointer;font-size:20px;padding:6px}.analytics #widget-selector .title .fa.close-selector:hover{color:#999}.analytics #widget-selector .top-container{margin:15px 0;background-color:transparent;border-radius:3px}.analytics #widget-selector .section-header{padding:10px 20px;font-weight:700;min-height:40px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.analytics #widget-selector .section-lines{overflow-x:hidden;overflow-y:auto;height:200px;margin-right:-10px;margin-left:0}.analytics #widget-selector .section-lines p{padding:5px;margin:0;cursor:pointer}.analytics #widget-selector .section-lines p.selected,.analytics #widget-selector .section-lines p:hover{color:#fff}.analytics #widget-selector .section-lines::-webkit-scrollbar{width:6px;background-color:transparent}.analytics #widget-selector .section-lines::-webkit-scrollbar-thumb{background-color:#28404f;border-radius:10px}.analytics #widget-selector .section-lines::-webkit-scrollbar-thumb:hover{background-color:#2d4859}.analytics #widget-selector .categories-section{background-color:#192831;padding-bottom:15px}.analytics #widget-selector .categories-section>.section-lines>[class*=col-]:first-child{padding:3px 12px}.analytics #widget-selector .categories-section>.section-lines .line-item:hover{background-color:#1e303b}.analytics #widget-selector .categories-section>.section-lines .line-item.selected{background-color:#977bf0;font-weight:700;box-shadow:-2px 2px 10px -4px #000}.analytics #widget-selector .categories-section .arrow-icon{position:absolute;top:33px;right:-11px;z-index:1}.analytics #widget-selector .categories-section .arrow-icon .square{width:50px;height:30px;position:absolute;top:10px;right:17px;background-color:#977bf0}.analytics #widget-selector .categories-section .arrow-icon i.fa.fa-caret-right{font-size:52px;color:#977bf0;float:right;position:absolute;top:-1.5px;right:0}.analytics #widget-selector .widgets-section{background-color:#1e303b;padding-bottom:15px}.analytics #widget-selector .widgets-section>.section-header{text-transform:uppercase;font-size:12px;color:#977bf0}.analytics #widget-selector .widgets-section>.section-lines{padding:3px 0}.analytics #widget-selector .widgets-section>.section-lines .fa.fa-plus-circle{float:right;margin-top:3px}.analytics #widget-selector .widgets-section>.section-lines>.line-items-grid{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;height:0%}.analytics #widget-selector .widgets-section>.section-lines>.line-items-grid>.grid-item{padding:0 13px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-ms-flex:0 31.33%;flex:0 31.33%;margin:0 1%;-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-bottom:solid 1px #233845;min-height:0}@media screen and (max-width:992px){.analytics #widget-selector .widgets-section>.section-lines>.line-items-grid>.grid-item{-webkit-box-flex:0;-ms-flex:0 100%;flex:0 100%}}.analytics #widget-selector .widgets-section>.section-lines>.line-items-grid>.grid-item:hover{background-color:#192831;font-weight:400}.analytics #widget-selector .widgets-section>.section-lines>.line-items-grid>.grid-item p.line-item{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.analytics #widget-selector .bottom{height:20px}.analytics #widget-selector .bottom>.suggestion{float:right;opacity:.7}.analytics #widget-selector .bottom>.suggestion a{cursor:pointer}.analytics #widget-selector .bottom>.suggestion a:hover{color:#00e5f0}.analytics #widget-selector .bottom>.suggestion:hover{opacity:1}.analytics #dashboard-settings-panel{position:relative;margin-top:5px}.analytics #dashboard-settings-panel>div{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.analytics #dashboard-settings-panel>div>*{margin:0 3px}.analytics #dashboard-settings-panel select{margin:0;height:34px;padding-top:1px}.analytics #no-widgets-container{position:relative;min-height:150px}.analytics #no-widgets-container img.bg{left:0;top:0;min-width:100%;min-height:100%}.analytics #no-widgets-container .impac-info-message{position:absolute;top:0;width:100%}.analytics #no-widgets-container .impac-info-message .info-text{font-size:25px;font-weight:300;padding:20px;min-height:115px;color:#fff;border-radius:10px;background-color:rgba(23,38,45,.7)}.analytics #widgets-section #widgets-container{min-height:700px}.analytics #widgets-section .placeHolderBox{margin:12px;height:267px;width:300px;float:left;border:2px dashed #abc4c6;background:0 0}.analytics.load-failed p{font-size:22px}.analytics.load-failed .second-msg p{color:#e01f74;font-size:14px}.tooltip.impac-widget-selector-tooltip .tooltip-inner.ng-binding{font-size:14px}.impac-widget-suggestion .modal-body input,.impac-widget-suggestion .modal-body textarea{width:100%;color:#000}.impac-widget-suggestion .modal-body textarea{height:150px}.impac-widget-suggestion .modal-body .thanks-message{color:#dae173}.modal-footer .loader{color:#fff}.analytics .dashboard-create .btn-create{background-color:#977bf0}.modal.impac-dashboard-create h1{font-size:24px}.modal.impac-dashboard-create .fa.fa-times{float:right;color:#ccc;cursor:pointer}.modal.impac-dashboard-create .control-label{text-align:left}.modal.impac-dashboard-create .modal-footer .loader{color:#fff}#module__dashboard-selector a{font-weight:400}#module__dashboard-selector>div:first-child{border-bottom:1px solid #abc4c6}#module__dashboard-selector .buttons-bar-row{margin-top:54px}#module__dashboard-selector .buttons-bar-row.pdf-mode{margin-top:0}#module__dashboard-selector .buttons-bar{padding:0;position:relative}#module__dashboard-selector .buttons-bar .btn{float:right;margin:3px;border-radius:4px}#module__dashboard-selector .buttons-bar .title-container h1{margin:0;color:#000;cursor:auto}#module__dashboard-selector .buttons-bar .dropdown-container .dashboard-title{color:#977bf0;display:inline;cursor:pointer}#module__dashboard-selector .buttons-bar .dropdown-container .dashboard-title:hover{color:#734deb}#module__dashboard-selector .buttons-bar .dropdown-container .dashboard-title i.fa.fa-pencil{margin-left:20px;font-size:14px}#module__dashboard-selector .buttons-bar .dropdown-container .dashboard-title i.fa.fa-pencil:hover{color:#dae173}#module__dashboard-selector .buttons-bar .dropdown-container .dashboard-select{margin:5px 0 10px 30px;height:auto;border-left:1px solid #977bf0;border-bottom:1px solid #977bf0;width:300px;background-color:#e6edee;cursor:pointer}#module__dashboard-selector .buttons-bar .dropdown-container .dashboard-select .option{color:#17262d;white-space:nowrap}#module__dashboard-selector .buttons-bar .dropdown-container .dashboard-select .option:hover{background-color:#fff}#module__dashboard-selector .buttons-bar .dropdown-container .dashboard-select .option.dashboard-create{height:33px}#module__dashboard-selector .buttons-bar .dropdown-container .dashboard-select .option.dashboard-create .btn{float:none;width:100%;text-align:left;margin:0;border-radius:0}#module__dashboard-selector .buttons-bar .dropdown-container .dashboard-select .option i.fa.fa-pencil{float:right;padding-top:7px;text-align:center;width:15%;height:30px}#module__dashboard-selector .buttons-bar .dropdown-container .dashboard-select .option i.fa.fa-pencil:hover{color:#734deb}#module__dashboard-selector .buttons-bar .dropdown-container .dashboard-select .option span.name{width:85%;height:30px;display:inline-block;padding:5px 10px}#module__dashboard-selector .buttons-bar .dropdown-container .change-name{position:absolute;top:30px;left:20px;width:60%;background-color:#17262d;color:#fff;padding:10px;border-radius:4px;text-align:center;box-shadow:0 0 25px 4px #000;z-index:50;border:1px solid #fff}#module__dashboard-selector .buttons-bar .dropdown-container .change-name .form-control{height:25px;margin-bottom:10px}#module__dashboard-selector .buttons-bar .dropdown-container .data-source-label{color:#17262d;padding-left:3px;margin:0}#module__dashboard-selector .buttons-bar .loader-container{padding-left:10px}#module__dashboard-selector .buttons-bar .loader-container .loading-spinner{color:#67BBE9;font-size:40px}#module__dashboard-selector .nav-tabs{border-bottom:0}#module__dashboard-selector .nav.nav-pills li:last-child>a,#module__dashboard-selector .nav.nav-tabs li:last-child>a{padding-right:15px}#module__dashboard-selector .nav.nav-pills li:last-child>a tab-heading a,#module__dashboard-selector .nav.nav-tabs li:last-child>a tab-heading a{position:static}#module__dashboard-selector .nav.nav-tabs li>a{padding:10px 8px 10px 15px;margin:0 2px 0 0;background-color:transparent;border:1px solid #abc4c6;color:#000}#module__dashboard-selector .nav.nav-tabs li.active>a{background-color:#fff;color:#977bf0}#module__dashboard-selector .nav.nav-tabs li:last-child.active>a{background-color:transparent}#module__dashboard-selector .nav.nav-pills li>a{min-width:0;padding-right:8px}#module__dashboard-selector .nav.nav-pills li:last-child tab-heading a{margin-left:2px}#module__dashboard-selector .nav.nav-pills li:last-child.active>a{background-color:#f4f4f4}#module__dashboard-selector tab-heading a.close-link{border-bottom:0 solid;margin-left:12px;position:relative;top:-9px;right:1px;color:#000}dashboard-templates-selector .templates-header{display:-webkit-box;display:-ms-flexbox;display:flex}dashboard-templates-selector .templates-header .templates-toggle{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;font-size:20px}dashboard-templates-selector .templates-header .templates-toggle i.fa{cursor:pointer}dashboard-templates-selector .templates-header .templates-toggle i.fa.fa-toggle-on{color:#977bf0}dashboard-templates-selector .templates{border:1px solid #ccc;box-shadow:inset 0 0 1px 0 #ccc;height:130px;overflow:auto;border-radius:2px}dashboard-templates-selector .templates .template{padding:5px 10px;color:#5B6667;border-bottom:1px solid #ececec}.analytics .impac-kpi .kpi.add:hover .kpi-icon,.analytics .impac-kpi .kpi.add:hover .kpi-text{color:#000}dashboard-templates-selector .templates .template:hover{cursor:pointer;background-color:rgba(96,232,119,.62)}dashboard-templates-selector .templates .template.selected{background-color:rgba(29,197,57,.62)}.analytics .impac-kpi .kpi{position:relative;max-width:220px;min-height:95px;max-height:95px;background-color:#fff;margin:10px 0;border-bottom:1px solid #fff;-webkit-transition:all .2s ease-in;transition:all .2s ease-in}@media screen and (max-width:768px){.analytics .impac-kpi .kpi{margin-left:auto;margin-right:auto}}.analytics .impac-kpi .kpi.add:hover,.analytics .impac-kpi .kpi.triggered{border-bottom:4px solid #e01f74}.analytics .impac-kpi .kpi.add .kpi-text .emphasis{visibility:hidden}.analytics .impac-kpi .kpi.add:hover{cursor:pointer}.analytics .impac-kpi .kpi.add:hover .top-line{background-color:#000}.analytics .impac-kpi .kpi.add:hover .kpi-text .emphasis{visibility:visible}.analytics .impac-kpi .kpi.add:hover .kpi-icon .fa-plus:before{content:"\f00c"}.analytics .impac-kpi .kpi.editing{min-height:185px}.analytics .impac-kpi .kpi:hover{cursor:default}.analytics .impac-kpi .kpi.static .kpi-value{display:block;font-size:14px;font-weight:700}.analytics .impac-kpi .kpi .top-line{width:100%;position:relative;cursor:move;padding:9px 9px 0 12px;border-bottom:none;min-height:7px;box-shadow:none;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;margin-bottom:5px;background-color:grey;-webkit-transition:background .2s ease-in;transition:background .2s ease-in}.analytics .impac-kpi .kpi .top-line.triggered{background-color:#000}.analytics .impac-kpi .kpi .kpi-content{max-height:90px}.analytics .impac-kpi .kpi .kpi-content.editing{min-height:180px;overflow-y:auto;overflow-x:hidden}.analytics .impac-kpi .kpi .kpi-show{white-space:normal;padding:10px}@media screen and (max-width:380px){.analytics .impac-kpi .kpi .kpi-show{padding:10px 3px}}.analytics .impac-kpi .kpi .kpi-show .emphasis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.analytics .impac-kpi .kpi .kpi-show .emphasis .real-value{color:#676767}.analytics .impac-kpi .kpi .kpi-show .caption{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.analytics .impac-kpi .kpi .kpi-show .kpi-text{padding:7px 0;color:grey;-webkit-transition:color .2s ease-in;transition:color .2s ease-in}.analytics .impac-kpi .kpi .kpi-show .kpi-text>span{display:block}.analytics .impac-kpi .kpi .kpi-show .kpi-text.triggered{color:#000}.analytics .impac-kpi .kpi .kpi-show .kpi-text .caption{font-size:11px;padding-bottom:2px}@media screen and (max-width:465px){.analytics .impac-kpi .kpi .kpi-show .kpi-text .caption{font-size:10px}.analytics .impac-kpi .kpi .kpi-show .kpi-text .emphasis{font-size:11px}}.analytics .impac-kpi .kpi .kpi-show .kpi-icon{font-size:16px;padding:10px 0;color:grey;-webkit-transition:color .2s ease-in;transition:color .2s ease-in}.analytics .impac-kpi .kpi .kpi-show .kpi-icon.triggered{color:#000}@media screen and (max-width:465px){.analytics .impac-kpi .kpi .kpi-show .kpi-icon{font-size:12px;padding:16px 0}}.analytics .impac-kpi .kpi .kpi-edit a{color:#fff}.analytics .impac-kpi .kpi .kpi-edit .kpi-name{text-align:center;margin-bottom:5px}.analytics .impac-kpi .kpi .kpi-edit .kpi-name h6{margin:0 0 5px}.analytics .impac-kpi .kpi .kpi-edit .real-value{text-transform:uppercase;font-size:10px;text-align:center}.analytics .impac-kpi .kpi .kpi-edit .alert-caption{text-align:center;font-size:11px;background:#f99;border-radius:3px;width:100%;margin:0 auto 5px;box-shadow:none;padding:2px;color:#fff}.analytics .impac-kpi .kpi .kpi-edit .kpi-target-unit,.analytics .impac-kpi .kpi .kpi-edit .kpi-target-watchable{text-transform:uppercase;font-weight:500;font-size:11px}.analytics .impac-kpi .kpi .kpi-edit .kpi-target-watchable{margin-bottom:20px;color:#8d8d8d}.analytics .impac-kpi .kpi .kpi-edit .kpi-target-unit{position:absolute;top:6px;right:0;color:#9a9a9a}.analytics .impac-kpi .kpi .kpi-edit .param-name{font-size:85%}.analytics .impac-kpi .kpi .kpi-edit .btn.btn-xs{margin-top:4px}.analytics .impac-kpi .kpi .kpi-edit .add-on,.analytics .impac-kpi .kpi .kpi-edit .alert,.analytics .impac-kpi .kpi .kpi-edit .badge,.analytics .impac-kpi .kpi .kpi-edit .btn,.analytics .impac-kpi .kpi .kpi-edit .dropdown-menu,.analytics .impac-kpi .kpi .kpi-edit .img-polaroid,.analytics .impac-kpi .kpi .kpi-edit .label,.analytics .impac-kpi .kpi .kpi-edit .modal,.analytics .impac-kpi .kpi .kpi-edit .nav>.active>a,.analytics .impac-kpi .kpi .kpi-edit .navbar-inner,.analytics .impac-kpi .kpi .kpi-edit .popover,.analytics .impac-kpi .kpi .kpi-edit .progress,.analytics .impac-kpi .kpi .kpi-edit .table-bordered,.analytics .impac-kpi .kpi .kpi-edit .tooltip,.analytics .impac-kpi .kpi .kpi-edit .tooltip-inner,.analytics .impac-kpi .kpi .kpi-edit .well,.analytics .impac-kpi .kpi .kpi-edit input,.analytics .impac-kpi .kpi .kpi-edit pre,.analytics .impac-kpi .kpi .kpi-edit select,.analytics .impac-kpi .kpi .kpi-edit textarea,.analytics .impac-kpi .kpi .kpi-no-data .add-on,.analytics .impac-kpi .kpi .kpi-no-data .alert,.analytics .impac-kpi .kpi .kpi-no-data .badge,.analytics .impac-kpi .kpi .kpi-no-data .btn,.analytics .impac-kpi .kpi .kpi-no-data .dropdown-menu,.analytics .impac-kpi .kpi .kpi-no-data .img-polaroid,.analytics .impac-kpi .kpi .kpi-no-data .label,.analytics .impac-kpi .kpi .kpi-no-data .modal,.analytics .impac-kpi .kpi .kpi-no-data .nav>.active>a,.analytics .impac-kpi .kpi .kpi-no-data .navbar-inner,.analytics .impac-kpi .kpi .kpi-no-data .popover,.analytics .impac-kpi .kpi .kpi-no-data .progress,.analytics .impac-kpi .kpi .kpi-no-data .table-bordered,.analytics .impac-kpi .kpi .kpi-no-data .tooltip,.analytics .impac-kpi .kpi .kpi-no-data .tooltip-inner,.analytics .impac-kpi .kpi .kpi-no-data .well,.analytics .impac-kpi .kpi .kpi-no-data input,.analytics .impac-kpi .kpi .kpi-no-data pre,.analytics .impac-kpi .kpi .kpi-no-data select,.analytics .impac-kpi .kpi .kpi-no-data textarea{box-shadow:none!important;border-radius:0!important;border-collapse:collapse!important;background-image:none!important}.analytics .impac-kpi .kpi .kpi-edit body,.analytics .impac-kpi .kpi .kpi-edit body::after,.analytics .impac-kpi .kpi .kpi-edit body::before,.analytics .impac-kpi .kpi .kpi-edit input,.analytics .impac-kpi .kpi .kpi-edit input::after,.analytics .impac-kpi .kpi .kpi-edit input::before,.analytics .impac-kpi .kpi .kpi-edit select,.analytics .impac-kpi .kpi .kpi-edit select::after,.analytics .impac-kpi .kpi .kpi-edit select::before,.analytics .impac-kpi .kpi .kpi-edit textarea,.analytics .impac-kpi .kpi .kpi-edit textarea::after,.analytics .impac-kpi .kpi .kpi-edit textarea::before,.analytics .impac-kpi .kpi .kpi-no-data body,.analytics .impac-kpi .kpi .kpi-no-data body::after,.analytics .impac-kpi .kpi .kpi-no-data body::before,.analytics .impac-kpi .kpi .kpi-no-data input,.analytics .impac-kpi .kpi .kpi-no-data input::after,.analytics .impac-kpi .kpi .kpi-no-data input::before,.analytics .impac-kpi .kpi .kpi-no-data select,.analytics .impac-kpi .kpi .kpi-no-data select::after,.analytics .impac-kpi .kpi .kpi-no-data select::before,.analytics .impac-kpi .kpi .kpi-no-data textarea,.analytics .impac-kpi .kpi .kpi-no-data textarea::after,.analytics .impac-kpi .kpi .kpi-no-data textarea::before{box-sizing:border-box}.analytics .impac-kpi .kpi .kpi-edit input[type=number]::-webkit-inner-spin-button,.analytics .impac-kpi .kpi .kpi-edit input[type=number]::-webkit-outer-spin-button,.analytics .impac-kpi .kpi .kpi-no-data input[type=number]::-webkit-inner-spin-button,.analytics .impac-kpi .kpi .kpi-no-data input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.analytics .impac-kpi .kpi .kpi-edit a:hover,.analytics .impac-kpi .kpi .kpi-no-data a:hover{text-decoration:none}.analytics .impac-kpi .kpi .kpi-edit fieldset,.analytics .impac-kpi .kpi .kpi-no-data fieldset{margin:0 0 1.75rem;padding:0;border:none}.analytics .impac-kpi .kpi .kpi-edit .im-form-group,.analytics .impac-kpi .kpi .kpi-edit .im-form-radio,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group,.analytics .impac-kpi .kpi .kpi-no-data .im-form-radio{position:relative;margin-top:1.3125rem;margin-bottom:1.3125rem}.analytics .impac-kpi .kpi .kpi-edit .im-form-inline,.analytics .impac-kpi .kpi .kpi-no-data .im-form-inline{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;box-sizing:border-box}.analytics .impac-kpi .kpi .kpi-edit .im-form-inline>.im-form-group,.analytics .impac-kpi .kpi .kpi-no-data .im-form-inline>.im-form-group{display:block;-webkit-box-flex:1;-ms-flex:1;flex:1;position:relative;vertical-align:middle;margin-left:.175rem;margin-right:.175rem}.analytics .impac-kpi .kpi .kpi-edit .im-form-inline>.btn,.analytics .impac-kpi .kpi .kpi-no-data .im-form-inline>.btn{display:inline-block;margin-bottom:0}.analytics .impac-kpi .kpi .kpi-edit .im-form-group input,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input{height:2.375rem}.analytics .impac-kpi .kpi .kpi-edit .im-form-group select,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group select{width:100%;font-size:1.25rem;height:2rem;padding:.15625rem .15625rem .078125rem;background:0 0;border:none;line-height:1.6;box-shadow:none}.analytics .impac-kpi .kpi .kpi-edit .im-form-group .im-control-label,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group .im-control-label{position:absolute;top:.3125rem;pointer-events:none;padding-left:.15625rem;z-index:1;color:#b3b3b3;font-size:1.25rem;font-weight:400;-webkit-transition:all .28s ease;transition:all .28s ease}.analytics .impac-kpi .kpi .kpi-edit .im-form-group .im-bar,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group .im-bar{position:relative;border-bottom:.078125rem solid #999;display:block}.analytics .impac-kpi .kpi .kpi-edit .im-form-group .im-bar::before,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group .im-bar::before{content:'';height:.15625rem;width:0;left:50%;bottom:-.078125rem;position:absolute;background:#358fdc;-webkit-transition:left .28s ease,width .28s ease;transition:left .28s ease,width .28s ease;z-index:2}.analytics .impac-kpi .kpi .kpi-edit .im-form-group input,.analytics .impac-kpi .kpi .kpi-edit .im-form-group textarea,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group textarea{display:block;background:0 0;padding:.15625rem .15625rem .078125rem;font-size:1.25rem;border-width:0;border-color:transparent;line-height:1.9;width:100%;color:transparent;-webkit-transition:all .28s ease;transition:all .28s ease;box-shadow:none}.analytics .impac-kpi .kpi .kpi-edit .im-form-group input[type=file],.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input[type=file]{line-height:1}.analytics .impac-kpi .kpi .kpi-edit .im-form-group input[type=file]~.im-bar,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input[type=file]~.im-bar{display:none}.analytics .impac-kpi .kpi .kpi-edit .im-form-group input.form-file,.analytics .impac-kpi .kpi .kpi-edit .im-form-group input.has-value,.analytics .impac-kpi .kpi .kpi-edit .im-form-group input:focus,.analytics .impac-kpi .kpi .kpi-edit .im-form-group input:valid,.analytics .impac-kpi .kpi .kpi-edit .im-form-group select,.analytics .impac-kpi .kpi .kpi-edit .im-form-group textarea.form-file,.analytics .impac-kpi .kpi .kpi-edit .im-form-group textarea.has-value,.analytics .impac-kpi .kpi .kpi-edit .im-form-group textarea:focus,.analytics .impac-kpi .kpi .kpi-edit .im-form-group textarea:valid,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input.form-file,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input.has-value,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input:focus,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input:valid,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group select,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group textarea.form-file,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group textarea.has-value,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group textarea:focus,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group textarea:valid{color:#333}.analytics .impac-kpi .kpi .kpi-edit .im-form-group input.form-file~.im-control-label,.analytics .impac-kpi .kpi .kpi-edit .im-form-group input.has-value~.im-control-label,.analytics .impac-kpi .kpi .kpi-edit .im-form-group input:focus~.im-control-label,.analytics .impac-kpi .kpi .kpi-edit .im-form-group input:valid~.im-control-label,.analytics .impac-kpi .kpi .kpi-edit .im-form-group select~.im-control-label,.analytics .impac-kpi .kpi .kpi-edit .im-form-group textarea.form-file~.im-control-label,.analytics .impac-kpi .kpi .kpi-edit .im-form-group textarea.has-value~.im-control-label,.analytics .impac-kpi .kpi .kpi-edit .im-form-group textarea:focus~.im-control-label,.analytics .impac-kpi .kpi .kpi-edit .im-form-group textarea:valid~.im-control-label,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input.form-file~.im-control-label,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input.has-value~.im-control-label,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input:focus~.im-control-label,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input:valid~.im-control-label,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group select~.im-control-label,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group textarea.form-file~.im-control-label,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group textarea.has-value~.im-control-label,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group textarea:focus~.im-control-label,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group textarea:valid~.im-control-label{font-size:1rem;color:grey;top:-1.25rem;left:0}.analytics .impac-kpi .kpi .kpi-edit .im-form-group input:focus,.analytics .impac-kpi .kpi .kpi-edit .im-form-group select:focus,.analytics .impac-kpi .kpi .kpi-edit .im-form-group textarea:focus,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input:focus,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group select:focus,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group textarea:focus{outline:0}.analytics .impac-kpi .kpi .kpi-edit .im-form-group input:focus~.im-control-label,.analytics .impac-kpi .kpi .kpi-edit .im-form-group select:focus~.im-control-label,.analytics .impac-kpi .kpi .kpi-edit .im-form-group textarea:focus~.im-control-label,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input:focus~.im-control-label,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group select:focus~.im-control-label,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group textarea:focus~.im-control-label{color:#358fdc}.analytics .impac-kpi .kpi .kpi-edit .im-form-group input:focus~.im-bar::before,.analytics .impac-kpi .kpi .kpi-edit .im-form-group select:focus~.im-bar::before,.analytics .impac-kpi .kpi .kpi-edit .im-form-group textarea:focus~.im-bar::before,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input:focus~.im-bar::before,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group select:focus~.im-bar::before,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group textarea:focus~.im-bar::before{width:100%;left:0}.analytics .impac-kpi .kpi .kpi-edit .im-checkbox label,.analytics .impac-kpi .kpi .kpi-edit .im-form-radio label,.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox label,.analytics .impac-kpi .kpi .kpi-no-data .im-form-radio label{position:relative;cursor:pointer;padding-left:2.5rem;text-align:left;color:#333;display:block}.analytics .impac-kpi .kpi .kpi-edit .im-checkbox input,.analytics .impac-kpi .kpi .kpi-edit .im-form-radio input,.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox input,.analytics .impac-kpi .kpi .kpi-no-data .im-form-radio input{width:auto;opacity:.00000001;position:absolute;left:0}.analytics .impac-kpi .kpi .kpi-edit .im-radio,.analytics .impac-kpi .kpi .kpi-no-data .im-radio{margin-bottom:1.25rem}.analytics .impac-kpi .kpi .kpi-edit .im-radio .im-helper,.analytics .impac-kpi .kpi .kpi-no-data .im-radio .im-helper{position:absolute;top:-.3125rem;left:-.3125rem;cursor:pointer;display:block;font-size:1.25rem;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;color:#999}.analytics .impac-kpi .kpi .kpi-edit .im-radio .im-helper::after,.analytics .impac-kpi .kpi .kpi-edit .im-radio .im-helper::before,.analytics .impac-kpi .kpi .kpi-no-data .im-radio .im-helper::after,.analytics .impac-kpi .kpi .kpi-no-data .im-radio .im-helper::before{content:'';position:absolute;left:0;top:0;margin:.3125rem;width:1.25rem;height:1.25rem;-webkit-transition:-webkit-transform .28s ease;transition:-webkit-transform .28s ease;transition:transform .28s ease;transition:transform .28s ease,-webkit-transform .28s ease;border-radius:50%;border:.15625rem solid currentColor}.analytics .impac-kpi .kpi .kpi-edit .im-radio .im-helper::after,.analytics .impac-kpi .kpi .kpi-no-data .im-radio .im-helper::after{-webkit-transform:scale(0);transform:scale(0);background-color:#358fdc;border-color:#358fdc}.analytics .impac-kpi .kpi .kpi-edit .im-radio label:hover .im-helper,.analytics .impac-kpi .kpi .kpi-no-data .im-radio label:hover .im-helper{color:#358fdc}.analytics .impac-kpi .kpi .kpi-edit .im-radio input:checked~.im-helper::after,.analytics .impac-kpi .kpi .kpi-no-data .im-radio input:checked~.im-helper::after{-webkit-transform:scale(.5);transform:scale(.5)}.analytics .impac-kpi .kpi .kpi-edit .im-radio input:checked~.im-helper::before,.analytics .impac-kpi .kpi .kpi-no-data .im-radio input:checked~.im-helper::before{color:#358fdc}.analytics .impac-kpi .kpi .kpi-edit .im-checkbox,.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox{margin-top:1.75rem;margin-bottom:1.25rem}.analytics .impac-kpi .kpi .kpi-edit .im-checkbox .im-helper,.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox .im-helper{color:#999;position:absolute;top:0;left:0;width:1.25rem;height:1.25rem;z-index:0;border:.15625rem solid currentColor;border-radius:.078125rem;-webkit-transition:border-color .28s ease;transition:border-color .28s ease}.analytics .impac-kpi .kpi .kpi-edit .im-checkbox .im-helper::after,.analytics .impac-kpi .kpi .kpi-edit .im-checkbox .im-helper::before,.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox .im-helper::after,.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox .im-helper::before{position:absolute;height:0;width:.25rem;background-color:#358fdc;display:block;-webkit-transform-origin:left top;transform-origin:left top;border-radius:.3125rem;content:'';-webkit-transition:opacity .28s ease,height 0s linear .28s;transition:opacity .28s ease,height 0s linear .28s;opacity:0}.analytics .impac-kpi .kpi .kpi-edit .im-checkbox .im-helper::before,.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox .im-helper::before{top:.8125rem;left:.475rem;-webkit-transform:rotate(-135deg);transform:rotate(-135deg);box-shadow:0 0 0 .078125rem #fff}.analytics .impac-kpi .kpi .kpi-edit .im-checkbox .im-helper::after,.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox .im-helper::after{top:.375rem;left:0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.analytics .impac-kpi .kpi .kpi-edit .im-checkbox label:hover .im-helper,.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox label:hover .im-helper{color:#358fdc}.analytics .impac-kpi .kpi .kpi-edit .im-checkbox input:checked~.im-helper,.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox input:checked~.im-helper{color:#358fdc}.analytics .impac-kpi .kpi .kpi-edit .im-checkbox input:checked~.im-helper::after,.analytics .impac-kpi .kpi .kpi-edit .im-checkbox input:checked~.im-helper::before,.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox input:checked~.im-helper::after,.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox input:checked~.im-helper::before{opacity:1;-webkit-transition:height .28s ease;transition:height .28s ease}.analytics .impac-kpi .kpi .kpi-edit .im-checkbox input:checked~.im-helper::after,.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox input:checked~.im-helper::after{height:.625rem}.analytics .impac-kpi .kpi .kpi-edit .im-checkbox input:checked~.im-helper::before,.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox input:checked~.im-helper::before{height:1.5rem;-webkit-transition-delay:.28s;transition-delay:.28s}.analytics .impac-kpi .kpi .kpi-edit .im-checkbox+.im-checkbox,.analytics .impac-kpi .kpi .kpi-edit .im-radio+.im-radio,.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox+.im-checkbox,.analytics .impac-kpi .kpi .kpi-no-data .im-radio+.im-radio{margin-top:1.25rem}.analytics .impac-kpi .kpi .kpi-edit .im-messages,.analytics .impac-kpi .kpi .kpi-no-data .im-messages{font-size:1.04166667rem;color:#e01f74;overflow:hidden;-webkit-transition:all .28s cubic-bezier(.55,0,.55,.2);transition:all .28s cubic-bezier(.55,0,.55,.2);opacity:0;margin-top:0;padding-top:5px}.analytics .impac-kpi .kpi .kpi-edit .has-error .legend.legend,.analytics .impac-kpi .kpi .kpi-edit .has-error.im-form-group .im-control-label.im-control-label,.analytics .impac-kpi .kpi .kpi-no-data .has-error .legend.legend,.analytics .impac-kpi .kpi .kpi-no-data .has-error.im-form-group .im-control-label.im-control-label{color:#e01f74}.analytics .impac-kpi .kpi .kpi-edit .has-error.im-checkbox .im-helper,.analytics .impac-kpi .kpi .kpi-edit .has-error.im-checkbox .im-messages,.analytics .impac-kpi .kpi .kpi-edit .has-error.im-form-group .im-helper,.analytics .impac-kpi .kpi .kpi-edit .has-error.im-form-group .im-messages,.analytics .impac-kpi .kpi .kpi-edit .has-error.im-form-radio .im-helper,.analytics .impac-kpi .kpi .kpi-edit .has-error.im-form-radio .im-messages,.analytics .impac-kpi .kpi .kpi-edit .has-error.im-radio .im-helper,.analytics .impac-kpi .kpi .kpi-edit .has-error.im-radio .im-messages,.analytics .impac-kpi .kpi .kpi-no-data .has-error.im-checkbox .im-helper,.analytics .impac-kpi .kpi .kpi-no-data .has-error.im-checkbox .im-messages,.analytics .impac-kpi .kpi .kpi-no-data .has-error.im-form-group .im-helper,.analytics .impac-kpi .kpi .kpi-no-data .has-error.im-form-group .im-messages,.analytics .impac-kpi .kpi .kpi-no-data .has-error.im-form-radio .im-helper,.analytics .impac-kpi .kpi .kpi-no-data .has-error.im-form-radio .im-messages,.analytics .impac-kpi .kpi .kpi-no-data .has-error.im-radio .im-helper,.analytics .impac-kpi .kpi .kpi-no-data .has-error.im-radio .im-messages{color:#e01f74;opacity:1}.analytics .impac-kpi .kpi .kpi-edit .has-error .im-bar::before,.analytics .impac-kpi .kpi .kpi-no-data .has-error .im-bar::before{background:#e01f74;left:0;width:100%}.analytics .impac-kpi .kpi .kpi-edit .im-button,.analytics .impac-kpi .kpi .kpi-no-data .im-button{position:relative;background:#60a7e4;border:0;font-size:1.375rem;color:#333;margin:.7rem 0;padding:.4375rem 1.75rem;border-radius:3px;cursor:pointer;overflow:hidden;box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12)}.analytics .impac-kpi .kpi .kpi-edit .im-button span,.analytics .impac-kpi .kpi .kpi-no-data .im-button span{color:#fff;position:relative;z-index:1}.analytics .impac-kpi .kpi .kpi-edit .im-button:hover,.analytics .impac-kpi .kpi .kpi-no-data .im-button:hover{-webkit-transition:background .1s ease-in;transition:background .1s ease-in;background:#2583d3}.analytics .impac-kpi .kpi .kpi-edit .im-button:active,.analytics .impac-kpi .kpi .kpi-no-data .im-button:active{box-shadow:inset 0 2px 2px 0 rgba(0,0,0,.14)}.analytics .impac-kpi .kpi .kpi-edit .im-button a:focus,.analytics .impac-kpi .kpi .kpi-edit .im-button:focus,.analytics .impac-kpi .kpi .kpi-no-data .im-button a:focus,.analytics .impac-kpi .kpi .kpi-no-data .im-button:focus{outline:0;text-decoration:none}.analytics .impac-kpi .kpi .kpi-edit button.im-fab,.analytics .impac-kpi .kpi .kpi-no-data button.im-fab{position:relative;height:46px;width:46px;-webkit-box-flex:0;-ms-flex:0 0 56px;flex:0 0 56px;display:inline-block;padding:0;margin:4px;border:0;border-radius:100%;overflow:hidden;font-size:20px;box-shadow:0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12),0 2px 4px -1px rgba(0,0,0,.2);color:#fff}.analytics .impac-kpi .kpi .kpi-edit button.im-fab:focus,.analytics .impac-kpi .kpi .kpi-no-data button.im-fab:focus{outline:0}.analytics .impac-kpi .kpi .kpi-edit button.im-fab:active,.analytics .impac-kpi .kpi .kpi-no-data button.im-fab:active{box-shadow:inset 0 2px 2px 0 rgba(0,0,0,.14)}.analytics .impac-kpi .kpi .kpi-edit button.im-fab.im-primary,.analytics .impac-kpi .kpi .kpi-no-data button.im-fab.im-primary{background:#358fdc}.analytics .impac-kpi .kpi .kpi-edit button.im-fab.im-primary:hover,.analytics .impac-kpi .kpi .kpi-no-data button.im-fab.im-primary:hover{-webkit-transition:background .1s ease-in;transition:background .1s ease-in;background:#2583d3}.analytics .impac-kpi .kpi .kpi-edit button.im-fab.im-warn,.analytics .impac-kpi .kpi .kpi-no-data button.im-fab.im-warn{background:#e01f74}.analytics .impac-kpi .kpi .kpi-edit button.im-fab.im-warn:hover,.analytics .impac-kpi .kpi .kpi-no-data button.im-fab.im-warn:hover{-webkit-transition:background .1s ease-in;transition:background .1s ease-in;background:#ca1c68}.analytics .impac-kpi .kpi button.kpi-alerts.im-fab.im-primary{position:absolute;top:-12px;right:15px;width:22px;height:22px;font-size:13px;background:#4c4749}.analytics .impac-kpi .kpi button.kpi-alerts.im-fab.im-primary:hover{backgroud:#358fdc}.analytics .impac-kpi .kpi button.kpi-remove.im-fab.im-warn{position:absolute;top:-12px;right:-11px;width:22px;height:22px;font-size:13px;background:#4c4749}.analytics .impac-kpi .kpi button.kpi-remove.im-fab.im-warn:hover{background:#ca1c68}.analytics .impac-kpi .kpi .kpi-data-loader{width:100%;min-height:95px}.analytics kpis-bar>.key-stats .kpi{min-height:80px}.analytics kpis-bar>.kpis{position:relative}.analytics kpis-bar>.kpis .actions{margin-bottom:12px}@media screen and (max-width:675px){.analytics kpis-bar>.kpis .actions{position:relative}}.analytics kpis-bar>.kpis .actions .add-on,.analytics kpis-bar>.kpis .actions .alert,.analytics kpis-bar>.kpis .actions .badge,.analytics kpis-bar>.kpis .actions .btn,.analytics kpis-bar>.kpis .actions .dropdown-menu,.analytics kpis-bar>.kpis .actions .img-polaroid,.analytics kpis-bar>.kpis .actions .label,.analytics kpis-bar>.kpis .actions .modal,.analytics kpis-bar>.kpis .actions .nav>.active>a,.analytics kpis-bar>.kpis .actions .navbar-inner,.analytics kpis-bar>.kpis .actions .popover,.analytics kpis-bar>.kpis .actions .progress,.analytics kpis-bar>.kpis .actions .table-bordered,.analytics kpis-bar>.kpis .actions .tooltip,.analytics kpis-bar>.kpis .actions .tooltip-inner,.analytics kpis-bar>.kpis .actions .well,.analytics kpis-bar>.kpis .actions input,.analytics kpis-bar>.kpis .actions pre,.analytics kpis-bar>.kpis .actions select,.analytics kpis-bar>.kpis .actions textarea{box-shadow:none!important;border-radius:0!important;border-collapse:collapse!important;background-image:none!important}.analytics kpis-bar>.kpis .actions body,.analytics kpis-bar>.kpis .actions body::after,.analytics kpis-bar>.kpis .actions body::before,.analytics kpis-bar>.kpis .actions input,.analytics kpis-bar>.kpis .actions input::after,.analytics kpis-bar>.kpis .actions input::before,.analytics kpis-bar>.kpis .actions select,.analytics kpis-bar>.kpis .actions select::after,.analytics kpis-bar>.kpis .actions select::before,.analytics kpis-bar>.kpis .actions textarea,.analytics kpis-bar>.kpis .actions textarea::after,.analytics kpis-bar>.kpis .actions textarea::before{box-sizing:border-box}.analytics kpis-bar>.kpis .actions input[type=number]::-webkit-inner-spin-button,.analytics kpis-bar>.kpis .actions input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.analytics kpis-bar>.kpis .actions a:hover{text-decoration:none}.analytics kpis-bar>.kpis .actions fieldset{margin:0 0 1.75rem;padding:0;border:none}.analytics kpis-bar>.kpis .actions .im-form-group,.analytics kpis-bar>.kpis .actions .im-form-radio{position:relative;margin-top:1.3125rem;margin-bottom:1.3125rem}.analytics kpis-bar>.kpis .actions .im-form-inline{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;box-sizing:border-box}.analytics kpis-bar>.kpis .actions .im-form-inline>.im-form-group{display:block;-webkit-box-flex:1;-ms-flex:1;flex:1;position:relative;vertical-align:middle;margin-left:.175rem;margin-right:.175rem}.analytics kpis-bar>.kpis .actions .im-form-inline>.btn{display:inline-block;margin-bottom:0}.analytics kpis-bar>.kpis .actions .im-form-group input{height:2.375rem}.analytics kpis-bar>.kpis .actions .im-form-group select{width:100%;font-size:1.25rem;height:2rem;padding:.15625rem .15625rem .078125rem;background:0 0;border:none;line-height:1.6;box-shadow:none}.analytics kpis-bar>.kpis .actions .im-form-group .im-control-label{position:absolute;top:.3125rem;pointer-events:none;padding-left:.15625rem;z-index:1;color:#b3b3b3;font-size:1.25rem;font-weight:400;-webkit-transition:all .28s ease;transition:all .28s ease}.analytics kpis-bar>.kpis .actions .im-form-group .im-bar{position:relative;border-bottom:.078125rem solid #999;display:block}.analytics kpis-bar>.kpis .actions .im-form-group .im-bar::before{content:'';height:.15625rem;width:0;left:50%;bottom:-.078125rem;position:absolute;background:#358fdc;-webkit-transition:left .28s ease,width .28s ease;transition:left .28s ease,width .28s ease;z-index:2}.analytics kpis-bar>.kpis .actions .im-form-group input,.analytics kpis-bar>.kpis .actions .im-form-group textarea{display:block;background:0 0;padding:.15625rem .15625rem .078125rem;font-size:1.25rem;border-width:0;border-color:transparent;line-height:1.9;width:100%;color:transparent;-webkit-transition:all .28s ease;transition:all .28s ease;box-shadow:none}.analytics kpis-bar>.kpis .actions .im-form-group input[type=file]{line-height:1}.analytics kpis-bar>.kpis .actions .im-form-group input[type=file]~.im-bar{display:none}.analytics kpis-bar>.kpis .actions .im-form-group input.form-file,.analytics kpis-bar>.kpis .actions .im-form-group input.has-value,.analytics kpis-bar>.kpis .actions .im-form-group input:focus,.analytics kpis-bar>.kpis .actions .im-form-group input:valid,.analytics kpis-bar>.kpis .actions .im-form-group select,.analytics kpis-bar>.kpis .actions .im-form-group textarea.form-file,.analytics kpis-bar>.kpis .actions .im-form-group textarea.has-value,.analytics kpis-bar>.kpis .actions .im-form-group textarea:focus,.analytics kpis-bar>.kpis .actions .im-form-group textarea:valid{color:#333}.analytics kpis-bar>.kpis .actions .im-form-group input.form-file~.im-control-label,.analytics kpis-bar>.kpis .actions .im-form-group input.has-value~.im-control-label,.analytics kpis-bar>.kpis .actions .im-form-group input:focus~.im-control-label,.analytics kpis-bar>.kpis .actions .im-form-group input:valid~.im-control-label,.analytics kpis-bar>.kpis .actions .im-form-group select~.im-control-label,.analytics kpis-bar>.kpis .actions .im-form-group textarea.form-file~.im-control-label,.analytics kpis-bar>.kpis .actions .im-form-group textarea.has-value~.im-control-label,.analytics kpis-bar>.kpis .actions .im-form-group textarea:focus~.im-control-label,.analytics kpis-bar>.kpis .actions .im-form-group textarea:valid~.im-control-label{font-size:1rem;color:grey;top:-1.25rem;left:0}.analytics kpis-bar>.kpis .actions .im-form-group input:focus,.analytics kpis-bar>.kpis .actions .im-form-group select:focus,.analytics kpis-bar>.kpis .actions .im-form-group textarea:focus{outline:0}.analytics kpis-bar>.kpis .actions .im-form-group input:focus~.im-control-label,.analytics kpis-bar>.kpis .actions .im-form-group select:focus~.im-control-label,.analytics kpis-bar>.kpis .actions .im-form-group textarea:focus~.im-control-label{color:#358fdc}.analytics kpis-bar>.kpis .actions .im-form-group input:focus~.im-bar::before,.analytics kpis-bar>.kpis .actions .im-form-group select:focus~.im-bar::before,.analytics kpis-bar>.kpis .actions .im-form-group textarea:focus~.im-bar::before{width:100%;left:0}.analytics kpis-bar>.kpis .actions .im-checkbox label,.analytics kpis-bar>.kpis .actions .im-form-radio label{position:relative;cursor:pointer;padding-left:2.5rem;text-align:left;color:#333;display:block}.analytics kpis-bar>.kpis .actions .im-checkbox input,.analytics kpis-bar>.kpis .actions .im-form-radio input{width:auto;opacity:.00000001;position:absolute;left:0}.analytics kpis-bar>.kpis .actions .im-radio{margin-bottom:1.25rem}.analytics kpis-bar>.kpis .actions .im-radio .im-helper{position:absolute;top:-.3125rem;left:-.3125rem;cursor:pointer;display:block;font-size:1.25rem;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;color:#999}.analytics kpis-bar>.kpis .actions .im-radio .im-helper::after,.analytics kpis-bar>.kpis .actions .im-radio .im-helper::before{content:'';position:absolute;left:0;top:0;margin:.3125rem;width:1.25rem;height:1.25rem;-webkit-transition:-webkit-transform .28s ease;transition:-webkit-transform .28s ease;transition:transform .28s ease;transition:transform .28s ease,-webkit-transform .28s ease;border-radius:50%;border:.15625rem solid currentColor}.analytics kpis-bar>.kpis .actions .im-radio .im-helper::after{-webkit-transform:scale(0);transform:scale(0);background-color:#358fdc;border-color:#358fdc}.analytics kpis-bar>.kpis .actions .im-radio label:hover .im-helper{color:#358fdc}.analytics kpis-bar>.kpis .actions .im-radio input:checked~.im-helper::after{-webkit-transform:scale(.5);transform:scale(.5)}.analytics kpis-bar>.kpis .actions .im-radio input:checked~.im-helper::before{color:#358fdc}.analytics kpis-bar>.kpis .actions .im-checkbox{margin-top:1.75rem;margin-bottom:1.25rem}.analytics kpis-bar>.kpis .actions .im-checkbox .im-helper{color:#999;position:absolute;top:0;left:0;width:1.25rem;height:1.25rem;z-index:0;border:.15625rem solid currentColor;border-radius:.078125rem;-webkit-transition:border-color .28s ease;transition:border-color .28s ease}.analytics kpis-bar>.kpis .actions .im-checkbox .im-helper::after,.analytics kpis-bar>.kpis .actions .im-checkbox .im-helper::before{position:absolute;height:0;width:.25rem;background-color:#358fdc;display:block;-webkit-transform-origin:left top;transform-origin:left top;border-radius:.3125rem;content:'';-webkit-transition:opacity .28s ease,height 0s linear .28s;transition:opacity .28s ease,height 0s linear .28s;opacity:0}.analytics kpis-bar>.kpis .actions .im-checkbox .im-helper::before{top:.8125rem;left:.475rem;-webkit-transform:rotate(-135deg);transform:rotate(-135deg);box-shadow:0 0 0 .078125rem #fff}.analytics kpis-bar>.kpis .actions .im-checkbox .im-helper::after{top:.375rem;left:0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.analytics kpis-bar>.kpis .actions .im-checkbox label:hover .im-helper{color:#358fdc}.analytics kpis-bar>.kpis .actions .im-checkbox input:checked~.im-helper{color:#358fdc}.analytics kpis-bar>.kpis .actions .im-checkbox input:checked~.im-helper::after,.analytics kpis-bar>.kpis .actions .im-checkbox input:checked~.im-helper::before{opacity:1;-webkit-transition:height .28s ease;transition:height .28s ease}.analytics kpis-bar>.kpis .actions .im-checkbox input:checked~.im-helper::after{height:.625rem}.analytics kpis-bar>.kpis .actions .im-checkbox input:checked~.im-helper::before{height:1.5rem;-webkit-transition-delay:.28s;transition-delay:.28s}.analytics kpis-bar>.kpis .actions .im-checkbox+.im-checkbox,.analytics kpis-bar>.kpis .actions .im-radio+.im-radio{margin-top:1.25rem}.analytics kpis-bar>.kpis .actions .im-messages{font-size:1.04166667rem;color:#e01f74;overflow:hidden;-webkit-transition:all .28s cubic-bezier(.55,0,.55,.2);transition:all .28s cubic-bezier(.55,0,.55,.2);opacity:0;margin-top:0;padding-top:5px}.analytics kpis-bar>.kpis .actions .has-error .legend.legend,.analytics kpis-bar>.kpis .actions .has-error.im-form-group .im-control-label.im-control-label{color:#e01f74}.analytics kpis-bar>.kpis .actions .has-error.im-checkbox .im-helper,.analytics kpis-bar>.kpis .actions .has-error.im-checkbox .im-messages,.analytics kpis-bar>.kpis .actions .has-error.im-form-group .im-helper,.analytics kpis-bar>.kpis .actions .has-error.im-form-group .im-messages,.analytics kpis-bar>.kpis .actions .has-error.im-form-radio .im-helper,.analytics kpis-bar>.kpis .actions .has-error.im-form-radio .im-messages,.analytics kpis-bar>.kpis .actions .has-error.im-radio .im-helper,.analytics kpis-bar>.kpis .actions .has-error.im-radio .im-messages{color:#e01f74;opacity:1}.analytics kpis-bar>.kpis .actions .has-error .im-bar::before{background:#e01f74;left:0;width:100%}.analytics kpis-bar>.kpis .actions .im-button{position:relative;background:#60a7e4;border:0;font-size:1.375rem;color:#333;margin:.7rem 0;padding:.4375rem 1.75rem;border-radius:3px;cursor:pointer;overflow:hidden;box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12)}.analytics kpis-bar>.kpis .actions .im-button span{color:#fff;position:relative;z-index:1}.analytics kpis-bar>.kpis .actions .im-button:hover{-webkit-transition:background .1s ease-in;transition:background .1s ease-in;background:#2583d3}.analytics kpis-bar>.kpis .actions .im-button:active{box-shadow:inset 0 2px 2px 0 rgba(0,0,0,.14)}.analytics kpis-bar>.kpis .actions .im-button a:focus,.analytics kpis-bar>.kpis .actions .im-button:focus{outline:0;text-decoration:none}.analytics kpis-bar>.kpis .actions button.im-fab{position:relative;height:46px;width:46px;-webkit-box-flex:0;-ms-flex:0 0 56px;flex:0 0 56px;display:inline-block;padding:0;margin:4px;border:0;border-radius:100%;overflow:hidden;font-size:20px;box-shadow:0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12),0 2px 4px -1px rgba(0,0,0,.2);color:#fff}.analytics kpis-bar>.kpis .actions button.im-fab:focus{outline:0}.analytics kpis-bar>.kpis .actions button.im-fab:active{box-shadow:inset 0 2px 2px 0 rgba(0,0,0,.14)}.analytics kpis-bar>.kpis .actions button.im-fab.im-primary{background:#358fdc}.analytics kpis-bar>.kpis .actions button.im-fab.im-primary:hover{-webkit-transition:background .1s ease-in;transition:background .1s ease-in;background:#2583d3}.analytics kpis-bar>.kpis .actions button.im-fab.im-warn{background:#e01f74}.analytics kpis-bar>.kpis .actions button.im-fab.im-warn:hover{-webkit-transition:background .1s ease-in;transition:background .1s ease-in;background:#ca1c68}.analytics kpis-bar>.kpis .actions a{color:#fff}.analytics kpis-bar>.kpis .actions button.im-fab.add-kpis,.analytics kpis-bar>.kpis .actions button.im-fab.edit-kpis,.analytics kpis-bar>.kpis .actions button.im-fab.toggle-show-content{position:absolute;width:40px;height:40px;font-size:18px;-webkit-transition:all .28s ease-in;transition:all .28s ease-in}.analytics kpis-bar>.kpis .actions button.im-fab.add-kpis.im-primary,.analytics kpis-bar>.kpis .actions button.im-fab.edit-kpis.im-primary,.analytics kpis-bar>.kpis .actions button.im-fab.toggle-show-content.im-primary{background:#4c4749}.analytics kpis-bar>.kpis .actions button.im-fab.add-kpis.im-primary.disabled,.analytics kpis-bar>.kpis .actions button.im-fab.edit-kpis.im-primary.disabled,.analytics kpis-bar>.kpis .actions button.im-fab.toggle-show-content.im-primary.disabled{background:#b2b5c1;cursor:not-allowed}.analytics kpis-bar>.kpis .actions button.im-fab.add-kpis.im-primary.disabled a,.analytics kpis-bar>.kpis .actions button.im-fab.edit-kpis.im-primary.disabled a,.analytics kpis-bar>.kpis .actions button.im-fab.toggle-show-content.im-primary.disabled a{cursor:not-allowed}.analytics kpis-bar>.kpis .actions button.im-fab.add-kpis.im-primary:hover:not(.disabled),.analytics kpis-bar>.kpis .actions button.im-fab.edit-kpis.im-primary:hover:not(.disabled),.analytics kpis-bar>.kpis .actions button.im-fab.toggle-show-content.im-primary:hover:not(.disabled){background:#000}.analytics kpis-bar>.kpis .actions button.im-fab.toggle-show-content{top:-15px;right:-15px;z-index:10}@media screen and (max-width:675px){.analytics kpis-bar>.kpis .actions button.im-fab.toggle-show-content{top:-30px;right:-14px;bottom:0}}.analytics kpis-bar>.kpis .actions button.im-fab.add-kpis{top:30px;right:-15px;z-index:10}@media screen and (max-width:675px){.analytics kpis-bar>.kpis .actions button.im-fab.add-kpis{top:-30px;right:33px;bottom:0}}.analytics kpis-bar>.kpis .actions button.im-fab.edit-kpis{top:75px;right:-15px;z-index:10}.analytics kpis-bar>.kpis .actions button.im-fab.edit-kpis.editing{background:#358fdc}.analytics kpis-bar>.kpis .actions button.im-fab.edit-kpis.editing:hover:not(.disabled){background:#76b3e7}@media screen and (max-width:675px){.analytics kpis-bar>.kpis .actions button.im-fab.edit-kpis{top:-30px;right:79px;bottom:0}.analytics kpis-bar>.kpis .content{margin-top:25px}}.analytics kpis-bar>.kpis .content-buttons{position:absolute;top:0;right:0}.analytics kpis-bar>.kpis .content{padding:15px;background-color:#fff;box-shadow:0 1px 8px -4px}@media screen and (min-width:725px){.analytics kpis-bar>.kpis .content{padding:0 60px}}.analytics kpis-bar>.kpis .content .impac-kpi{padding-left:5px;padding-right:5px}@media screen and (min-width:1200px){.analytics kpis-bar>.kpis .content .impac-kpi{padding-left:20px;padding-right:20px}}.analytics kpis-bar>.kpis .content .impac-kpi .kpi.add .kpi-show .caption{white-space:inherit}.analytics kpis-bar>.kpis .content .title .text-center{line-height:3;font-variant:small-caps;font-size:larger}.analytics kpis-bar>.kpis .content .title .badge{position:absolute;top:8px;left:-10px;background-color:#d1e55c;color:#4f5959;box-shadow:0 1px 3px -1px}.widget-item .content,.widget-item .top-line{position:relative;background-color:#fff;box-shadow:0 1px 8px -4px}.analytics kpis-bar>.kpis .content .title .no-kpi-templates{color:#afadb5;font-weight:500}.analytics kpis-bar>.kpis .content .add-bar{border-bottom:dashed 1px}.analytics kpis-bar>.kpis .content .kpi-loader{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;min-height:115px}.analytics kpis-bar>.kpis .content .dates-picker-container{width:40%;margin:0 auto}.analytics kpis-bar>.kpis .content .dates-picker-container .sdp-from-label,.analytics kpis-bar>.kpis .content .dates-picker-container .sdp-to-label{text-transform:uppercase;font-weight:400}.analytics kpis-bar{display:block}.analytics kpis-bar>.key-stats{background-color:#fff;padding:5px 0}.analytics.pdf-mode kpis-bar>.kpis .actions{display:none}.widget-item{-webkit-transition:width .3s;transition:width .3s;padding:12px}.widget-item.pdf-mode{width:100%;padding:12px 0}.widget-item .top-line{cursor:move;padding:9px 9px 0 12px;border-radius:5px 5px 0 0;border:1px solid #c8d7d9;border-bottom:none;min-height:41px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;z-index:4}.widget-item .content{padding:9px;border-radius:0 0 5px 5px;border:1px solid #c8d7d9;border-top:none;vertical-align:top;min-height:250px}@media (min-width:992px){.widget-item .content{height:250px}.widget-item .content .chart-container{max-width:270px;max-height:125px;margin:auto}}.widget-item .content .edit{max-height:230px;overflow-y:auto;overflow-x:hidden;color:#5B6667;padding:2px;font-size:12px}.widget-item .content .edit .bottom-buttons .btn{border-radius:2px;margin-right:5px;padding:3px 13px;text-transform:uppercase;font-size:12px}.widget-item .content .edit .bottom-buttons .btn.btn-default{background-color:#c2c4c4;border:1px solid #a8abab;color:#fff}.widget-item .content .edit .bottom-buttons .btn.btn-default:hover{border:1px solid #8e9292;background-color:#a8abab}.widget-item .content .edit h4{margin:0 0 8px;text-align:left;font-weight:400;font-size:12px;color:#c4caca}.widget-item .content .edit .part{margin-bottom:8px;padding:10px 0;background-color:#fcfcfc;border:1px solid #dfe2e2}.widget-item .content .edit .part h5{display:block;margin:0 0 10px;padding:0 15px;text-transform:uppercase;font-weight:400;font-size:12px;color:#c4caca}.widget-item .content .edit .part label{font-weight:400}.widget-item .content .edit .part select.form-control{margin:0;border:1px solid #acb0b1;outline:0;-webkit-box-shadow:none;font-size:13px;color:#72728b}.widget-item .content.accessible{height:auto!important;min-height:250px!important;max-height:auto!important}.widget-item .content .content-template-wrapper{height:100%;overflow:auto;overflow-x:hidden}.widget-item.pdf-mode .content{height:100%!important;min-height:250px!important;max-height:none!important}.widget-item.pdf-mode .content .collapse{display:inherit}.widget-item.pdf-mode .content .fa-plus-square-o:before{content:"\f147"}.widget-item.pdf-mode .content .legend{max-height:none!important}.widget-item.pdf-mode .content .chart-container{max-height:none}.widget-item.pdf-mode .content .widget-lines-container{max-height:none!important}.widget-item.pdf-mode .content .data-not-found .message{position:inherit;width:100%}.widget-item.pdf-mode .include-to-pdf.title{position:absolute;width:calc(100% - 2*12px);z-index:3;padding-right:1px}.widget-item.pdf-mode .include-to-pdf.title h6{padding:10px;background-color:#FFC928;text-align:center;margin:0}.widget-item.pdf-mode .include-to-pdf.tick i{position:absolute;top:35%;left:46%;font-size:100px;opacity:.5;z-index:2;color:#000}.widget-item.pdf-mode .include-to-pdf .widget-hover{position:absolute;width:100%;height:100%;padding:9px;top:0;right:0;-webkit-transition:all ease .5s;transition:all ease .5s;z-index:1}.widget-item.pdf-mode .include-to-pdf .widget-hover:hover{opacity:.5;background:#CCCFD0}.widget-item .widget-lines-container .widget-line>[class*=col-]{overflow-wrap:break-word}.analytics .kpi .data-not-found,.analytics .widget-item .content .data-not-found{text-align:center;font-size:13px;color:#5B6667}.analytics .kpi .data-not-found .overlay,.analytics .widget-item .content .data-not-found .overlay{background-color:#fff;position:absolute;height:calc(100% - 4px);width:calc(100% - 4px);top:2px;left:2px;opacity:.6;z-index:3}.analytics .kpi .data-not-found .message,.analytics .widget-item .content .data-not-found .message{position:absolute;top:125px;left:50%;padding-bottom:10px;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);width:85%;background-color:#f4f8f9;border-radius:4px;box-shadow:0 0 25px 0;z-index:4}.analytics .kpi .data-not-found .message .title,.analytics .widget-item .content .data-not-found .message .title{padding:2px;background-color:#192831;color:#fff;margin:-1px -1px 10px;text-transform:uppercase}.analytics .kpi .data-not-found .message p,.analytics .widget-item .content .data-not-found .message p{margin-left:5px;margin-right:5px}.analytics .kpi .data-not-found .message .btn,.analytics .widget-item .content .data-not-found .message .btn{margin-top:5px}.analytics .kpi .data-not-found .example,.analytics .widget-item .content .data-not-found .example{position:absolute;bottom:0;left:0;width:100%;color:#fff;background-color:#192831;padding:3px;z-index:6}.analytics .kpi .data-not-found .example a,.analytics .widget-item .content .data-not-found .example a{font-weight:400;color:#dae173}.analytics .kpi .data-not-found .message{width:90%;padding-bottom:0;border:1px solid silver;box-shadow:none}.analytics .kpi .data-not-found .message p{margin:5px}.analytics .kpi .data-not-found .btn,.analytics .kpi .data-not-found .example,.analytics .kpi .data-not-found .overlay,.analytics .kpi .data-not-found .title{display:none}#duplicate-transactions-list .top{height:40px}#duplicate-transactions-list .top a.back-link{font-weight:400}#duplicate-transactions-list .top .pagination{margin:0}#duplicate-transactions-list .table-striped tr.origin:nth-of-type(odd){background-color:#f9f9f9}#duplicate-transactions-list .table-container{max-height:calc(565px - 60px);overflow:auto}#duplicate-transactions-list .table-container div[uib-datepicker-popup-wrap]{display:inline-block}#duplicate-transactions-list .table-container button.btn.reset-date,#duplicate-transactions-list .table-container input.btn.btn-xs{margin-top:-2px}#duplicate-transactions-list .table-container .fa.fa-times{color:#e01f74;cursor:pointer}#duplicate-transactions-list .table-container tr.total{font-weight:700}#duplicate-transactions-list .table-container tr.total.invoices{background-color:#00e600}#duplicate-transactions-list .table-container tr.total.bills{background-color:#f57cb1}#transactions-add{text-align:center;font-size:13px;color:#5B6667}#transactions-add .overlay{background-color:#fff;position:absolute;height:calc(100% - 4px);width:calc(100% - 4px);top:2px;left:2px;opacity:.6;z-index:5}#transactions-add .message{z-index:6;position:absolute;min-height:160px;padding-bottom:10px;background-color:#f4f8f9;border-radius:4px;box-shadow:0 0 25px 0;top:30px;left:35%;width:30%}#transactions-add .message .title{padding:2px;background-color:#192831;color:#fff;margin:-1px -1px 10px;text-transform:uppercase}#transactions-add .message .form{padding:0 10px}#transactions-add .message .form .schedulable-section>label,#transactions-add .message .form>label{padding-top:10px;font-weight:400;margin-bottom:3px}#transactions-add .message .form input.form-control,#transactions-add .message .form select.form-control{width:90%;border-radius:2px;height:28px;font-size:13px}#transactions-add .message .form .btn-group{display:block;min-height:22px}#transactions-add .message .form .btn-group select{border-radius:2px;height:28px;margin-top:0}#transactions-add .message .form .repeat-btn select,#transactions-add .message .form .schedulable-section .btn-group select{height:22px}#transactions-add .message .form .disable{color:#888;font-style:italic}#transactions-add .message .form .never-disable{color:#000;font-style:normal}#transactions-add .message .form .repeat-btn{margin-top:30px}#transactions-add .message .form .repeat-btn input[type=checkbox]{vertical-align:text-bottom;margin:0}#transactions-add .message .form .repeat-btn .btn{float:none;border-color:#888}#transactions-add .message .form .schedulable-section{padding:5px;border:1px solid silver;margin-top:0;background-color:#fff}#transactions-add .message .form .schedulable-section .badge{font-weight:400;background-color:#888}#transactions-add .message .form .schedulable-section .interval-field{width:40px}#transactions-add .message .form .schedulable-section .btn-group{margin-left:10px}#transactions-add .message .form .schedulable-section .btn-group .btn{float:none;border-color:#888}#transactions-add .message .bottom{margin-top:20px}#transactions-list .top{height:40px;position:relative}#transactions-list .top .back{position:absolute}#transactions-list .top .resource-type{position:absolute;left:calc(50% - 98px)}@media (max-width:767px){#transactions-list .top .resource-type{left:unset;right:0}}#transactions-list .top .btn-group{display:-webkit-box;display:-ms-flexbox;display:flex}#transactions-list .bottom{height:40px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}#transactions-list .bottom .pagination{margin:0}#transactions-list .table-container td>.expected-payment-date .reset-date,.analytics .widget-item .content.accounts-assets-vs-liabilities .legend>.title span{margin-left:3px}#transactions-list .table-container{max-height:calc(565px - 100px);overflow:auto;width:100%}#transactions-list .table-container div[uib-datepicker-popup-wrap]{display:inline-block}#transactions-list .table-container button.btn.reset-date,#transactions-list .table-container input.btn.btn-xs{margin-top:-2px}#transactions-list .table-container .actions{cursor:pointer}#transactions-list .table-container .actions .fa.fa-times{color:#e01f74}#transactions-list .table-container tr.total{font-weight:700}#transactions-list .table-container tr.total.invoices{background-color:#c1d1b1}#transactions-list .table-container tr.total.bills{background-color:#e2aeb9}#transactions-list .table-container td>.expected-payment-date{display:-webkit-box;display:-ms-flexbox;display:flex}#trends-add{text-align:center;font-size:13px;color:#5B6667}#trends-add .overlay{background-color:#fff;position:absolute;height:calc(100% - 4px);width:calc(100% - 4px);top:2px;left:2px;opacity:.6;z-index:5}#trends-add .message{z-index:6;position:absolute;min-height:160px;padding-bottom:10px;background-color:#f4f8f9;border-radius:4px;box-shadow:0 0 25px 0;top:30px;left:35%;width:30%}#trends-add .message .title{padding:2px;background-color:#192831;color:#fff;margin:-1px -1px 10px;text-transform:uppercase}#trends-add .message .form{padding:0 10px}#trends-add .message .form>label{padding-top:10px;font-weight:400;margin-bottom:3px}#trends-add .message .form input.form-control{width:90%;border-radius:2px;height:28px;font-size:13px}#trends-add .message .form .btn-group{display:block;min-height:22px;margin-top:10px}#trends-add .message .form .btn-group>.btn{float:none}#trends-add .message .form .btn-group input[type=radio]{margin:4px 0 10px}#trends-add .message .bottom{margin-top:20px}#trends-list .top{height:40px}#trends-list .top a.back-link{font-weight:400}#trends-list .top .pagination{margin:0}#trends-list .table-container{max-height:calc(565px - 60px);overflow:auto}#trends-list .table-container div[uib-datepicker-popup-wrap]{display:inline-block}#trends-list .table-container button.btn.reset-date,#trends-list .table-container input.btn.btn-xs{margin-top:-2px}.analytics .dashboard-settings.currency{text-align:right}.analytics .dashboard-settings.currency select{margin-top:4px}.analytics .dashboard-settings.sync-apps .show-status{margin-right:5px;color:#9ba6a7}.analytics .dashboard-settings.sync-apps .show-status:hover{cursor:pointer;text-decoration:underline}.analytics .dashboard-settings.sync-apps .show-status .fa.fa-info{margin-right:2px}.analytics .dashboard-settings.sync-apps .status-btn{display:inline-block;cursor:pointer;padding:5px 7px 5px 0}.analytics .dashboard-settings.sync-apps .status-btn i{font-size:16px}.analytics .dashboard-settings.sync-apps .status-btn i.fa-exclamation-triangle{color:#ff7300}.analytics .dashboard-settings.sync-apps .status-btn i.fa-check{color:#d1e55c}.analytics .dashboard-settings.sync-apps .popover{max-width:550px}.analytics .dashboard-settings.sync-apps .popover .connector{padding:4px 13px}.analytics .dashboard-settings.sync-apps .popover .connector.add-seperator{border-bottom:1px solid #ccc}.analytics .dashboard-settings.sync-apps .popover .popover-content{padding:0}.analytics .dashboard-settings.sync-apps .popover .popover-footer{border-top:1px solid #ccc;padding:4px 13px}.analytics .dashboard-settings.sync-apps .popover .popover-footer p{font-weight:700;margin:0}.analytics .dashboard-settings.sync-apps .popover .popover-footer.remove-seperator{border:0}.analytics .dashboard-settings.sync-apps .badge{float:right;margin-left:8px}.analytics .dashboard-settings.sync-apps .success .badge{background-color:#d1e55c}.analytics .dashboard-settings.sync-apps .pending .badge,.analytics .dashboard-settings.sync-apps .running .badge{background-color:#ff7300}.analytics .dashboard-settings.sync-apps .disconnected .badge,.analytics .dashboard-settings.sync-apps .error .badge,.analytics .dashboard-settings.sync-apps .failed .badge,.analytics .dashboard-settings.sync-apps .unknown .badge{background-color:#ed1e79}#sync-apps-modal .modal-header{text-align:center;border:0;box-shadow:0 2px 3px 0 #ccc}#sync-apps-modal .modal-list{max-height:280px;overflow-y:auto}#sync-apps-modal .modal-list-item{border-bottom:1px solid #ccc;padding:10px}#sync-apps-modal .modal-list-item .badge{float:right}#sync-apps-modal .modal-list-item.success .badge{background-color:#d1e55c}#sync-apps-modal .modal-list-item.pending .badge,#sync-apps-modal .modal-list-item.running .badge{background-color:#ff7300}#sync-apps-modal .modal-list-item.disconnected .badge,#sync-apps-modal .modal-list-item.error .badge,#sync-apps-modal .modal-list-item.failed .badge,#sync-apps-modal .modal-list-item.unknown .badge{background-color:#ed1e79}#sync-apps-modal .modal-list-item .message{padding:3px;border-radius:2px;margin-left:31px;margin-top:9px}#sync-apps-modal .modal-list-item .message p{margin:0}#sync-apps-modal .modal-list-item.success .message{background-color:rgba(0,255,55,.08)}#sync-apps-modal .modal-list-item.pending .message,#sync-apps-modal .modal-list-item.running .message{background-color:rgba(255,118,0,.08)}#sync-apps-modal .modal-list-item.disconnected .message,#sync-apps-modal .modal-list-item.error .message,#sync-apps-modal .modal-list-item.failed .message,#sync-apps-modal .modal-list-item.unknown .message{background-color:rgba(255,0,0,.08)}#sync-apps-modal .modal-list-item.with-message{cursor:pointer}#sync-apps-modal .modal-list-item.with-message:hover{background-color:#ccc}#sync-apps-modal .modal-footer{border:0}#sync-apps-modal .fa{padding:0 10px}#sync-apps-modal .fa.error{color:red}#sync-apps-modal .fa.warn{color:#ff7300}#sync-apps-modal .fa.success{color:#47ff00}chart-threshold .attach-panel{padding:5px 0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline;background-color:rgba(20,132,228,.16)}chart-threshold .attach-panel>div{padding-right:5px}chart-threshold .attach-panel>div.target{text-align:center}@media (max-width:1199px){chart-threshold .attach-panel{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center}chart-threshold .attach-panel>div{padding:5px}}chart-threshold .attach-panel .text{text-transform:uppercase;font-weight:700;color:#5B6667;font-size:13px}chart-threshold .attach-panel input{border-radius:3px;border:1px #fff;padding:3px}chart-threshold .attach-panel input[name=amount]{max-width:70px}chart-threshold .attach-panel .currency{font-weight:700;color:#000}chart-threshold .attach-panel .actions{display:inline-block;padding:0 2px}chart-threshold .attach-panel .actions button{padding:3px 6px;display:inline-block}chart-threshold .attach-panel .actions button.loading{padding:3px 20px}.analytics widgets-common-confirm-modal{text-align:center;font-size:13px;color:#5B6667}.analytics widgets-common-confirm-modal .overlay{background-color:#fff;position:absolute;height:calc(100% - 4px);width:calc(100% - 4px);top:2px;left:2px;opacity:.6;z-index:5}.analytics widgets-common-confirm-modal .message{z-index:6;position:absolute;min-height:160px;padding-bottom:10px;top:45px;left:7%;width:86%;background-color:#f4f8f9;border-radius:4px;box-shadow:0 0 25px 0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.analytics widgets-common-confirm-modal .message .title{padding:2px;background-color:#192831;color:#fff;margin:-1px -1px 10px;text-transform:uppercase}.analytics widgets-common-confirm-modal .message p{padding:0 10px}.analytics widgets-common-confirm-modal .message button.btn{margin-top:20px}.analytics widgets-common-confirm-modal .message .loader i.fa.fa-spinner{font-size:26px}.currency-conversions img{width:15px;cursor:pointer}.currency-conversions.popover .popover-title{background-color:#000;color:#fff}.analytics .widget-item .editable-title{width:100%;-webkit-box-flex:1;-ms-flex:1;flex:1;overflow:hidden;height:22px}.analytics .widget-item .editable-title .title{text-transform:uppercase;font-weight:600;font-size:12px;color:#4f5959;cursor:text;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;line-height:1.9}.analytics .widget-item .editable-title .editable-wrap{position:relative;height:20px;min-width:100%;white-space:nowrap}.analytics .widget-item .editable-title .editable-wrap .editable-controls{min-width:100%}.analytics .widget-item .editable-title .editable-wrap .editable-controls .editable-input{height:20px;font-size:12px;text-transform:uppercase;width:calc(100% - 65px);padding:0 3px}.analytics .widget-item .editable-title .editable-wrap .editable-controls .editable-buttons{background-color:#fff}.analytics .widget-item .editable-title .editable-wrap .editable-controls .editable-buttons button{margin:0 0 0 5px;height:20px;padding:0 5px}.analytics .widget-item .info-panel{position:absolute;top:15px;left:15px;width:calc(100% - 30px);max-height:calc(100% - 30px);height:100%;background-color:#fff;border:1px dotted #B7CDCE;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;font-family:"Lato Semibold",Lato;z-index:4}.analytics .widget-item .info-panel:hover{opacity:1}.analytics .widget-item .info-panel .i-header{background-color:#FFC928;color:#1E303B;padding:8px;text-transform:uppercase;font-family:"Lato Medium",Lato;font-size:12px}.analytics .widget-item .info-panel .i-header .fa{font-size:18px}.analytics .widget-item .info-panel .i-header .fa-info-circle{float:left}.analytics .widget-item .info-panel .i-header .fa-times-circle{cursor:pointer;float:right}.analytics .widget-item .info-panel .i-content{overflow-y:auto;overflow-x:hidden;padding:5px;text-align:justify;-webkit-box-flex:1;-ms-flex:1;flex:1}.analytics .widget-item .info-panel .i-content .row{margin-bottom:6px;padding-bottom:6px;border-bottom:solid 1px #abc4c6}.analytics .widget-item .info-panel .i-content .row:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.analytics .widget-item .info-panel .i-content .row .key{text-align:right;font-variant:small-caps}@media (max-width:991px){.analytics .widget-item .info-panel .i-content .row .key{text-align:center}}.analytics .widget-item .info-panel .i-content .row .value{text-align:justify}.analytics .time-period-info{font-size:11px;color:#ABC4C6;text-transform:uppercase}.analytics .widget-item .top-line .top-buttons{text-align:right;margin-top:-1px;white-space:nowrap;padding-left:10px}.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button.btn-export,.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button.btn-info,.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button.btn-refresh{font-size:17px;margin-top:1px}.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button{background:0 0;border:none;color:#c4caca;padding:0;outline:0;width:17px}.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button:active,.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button:focus{box-shadow:none}.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button.btn-info:hover{color:#FFC928}.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button.btn-export:hover,.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button.btn-refresh:hover{color:#358fdc}.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button.btn-close,.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button.btn-edit{font-size:13px}.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button.btn-edit.edit-mode,.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button.btn-edit:hover{color:#cfd849}.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button.btn-close:hover{color:#ed1e79}.analytics .widget-item .content.accounts-assets-liability-summary .param-selector{text-align:center}.analytics .widget-item .content.accounts-assets-liability-summary .legend{text-align:left;max-height:90px}.analytics .widget-item .content.accounts-assets-liability-summary .legend .title{text-align:center;border-bottom:dashed 1px #dfe2e2}.analytics .widget-item .content.accounts-assets-summary .legend{text-align:left;max-height:115px}.analytics .widget-item .content.accounts-assets-summary .legend .title{text-align:center;border-bottom:dashed 1px #dfe2e2}.analytics .widget-item .content.accounts-balance h3{font-weight:300;font-size:14px;color:#5B6667;margin-top:30px;text-align:center}.analytics .widget-item .content.accounts-balance .price{font-weight:900;font-size:22px;color:#5B6667;text-align:center;margin-top:0}.analytics .widget-item .content.accounts-balance-sheet{min-height:565px}@media (min-width:992px){.analytics .widget-item .content.accounts-balance-sheet{height:565px}.analytics .widget-item .content.accounts-balance-sheet .chart-container{max-width:585px;max-height:440px;margin:auto}}.analytics .widget-item .content.accounts-balance-sheet .edit{max-height:545px}.analytics .widget-item .content.accounts-balance-sheet .edit .widget-lines-container{overflow-y:hidden;overflow-x:hidden}.analytics .widget-item .content.accounts-balance-sheet .widget-lines-container{overflow-y:scroll;overflow-x:hidden;max-height:490px}@media (max-width:767px){.analytics .widget-item .content.accounts-balance-sheet .widget-lines-container .row.widget-line:not(:last-child){border-bottom:dashed 1px #dfe2e2}}.analytics .widget-item .content.accounts-balance-sheet .widget-lines-container .row.widget-line.header>[class*=col-]{position:static}.analytics .widget-item .content.accounts-balance-sheet .widget-lines-container.no-scroll{overflow:visible}.analytics .widget-item .content.accounts-balance-sheet .no-data-block{font-weight:300;font-size:16px;color:#5B6667;text-align:center;margin:15px 0}.analytics .widget-item .content.accounts-cash-balance{min-height:565px}@media (min-width:992px){.analytics .widget-item .content.accounts-cash-balance{height:565px}.analytics .widget-item .content.accounts-cash-balance .chart-container{max-width:585px;max-height:440px;margin:auto}}.analytics .widget-item .content.accounts-cash-balance .edit{max-height:545px}.analytics .widget-item .content.accounts-cash-balance .edit .widget-lines-container{overflow-y:hidden;overflow-x:hidden}.analytics .widget-item .content.accounts-cash-balance .data-container{height:calc(565px - 50px);width:100%}.analytics .widget-item .content.accounts-cash-balance .left-panel{width:180px;display:inline-block;overflow:auto;max-height:100%}.analytics .widget-item .content.accounts-cash-balance #cash-balance-legend .header .group-item{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;min-height:45px;margin:3px;font-size:13px;padding:3px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.analytics .widget-item .content.accounts-cash-projection,.analytics .widget-item .content.accounts-cash-summary,.analytics .widget-item .content.accounts-comparison,.analytics .widget-item .content.accounts-detailed-classifications,.analytics .widget-item .content.accounts-invoices-list{min-height:565px}.analytics .widget-item .content.accounts-cash-balance #cash-balance-legend .header .group-item:hover{background-color:#ececec}.analytics .widget-item .content.accounts-cash-balance #cash-balance-legend .header .group-item i{font-size:19px;padding:4px;margin-top:1px}.analytics .widget-item .content.accounts-cash-balance #cash-balance-legend .header .group-item span{color:#5B6667}.analytics .widget-item .content.accounts-cash-balance .legend-item-icon{width:16px;height:16px}.analytics .widget-item .content.accounts-cash-balance .right-panel{width:calc(100% - 180px);float:right}.analytics .widget-item .content.accounts-cash-balance .right-panel .cash-balance-chart{height:calc(565px - 50px)}.analytics .widget-item .content.accounts-cash-balance .dates-picker{display:inline-block;float:right;font-size:12px}@media (min-width:992px){.analytics .widget-item .content.accounts-cash-projection{height:565px}.analytics .widget-item .content.accounts-cash-projection .chart-container{max-width:585px;max-height:440px;margin:auto}}.analytics .widget-item .content.accounts-cash-projection .edit{max-height:545px}.analytics .widget-item .content.accounts-cash-projection .edit .widget-lines-container{overflow-y:hidden;overflow-x:hidden}.analytics .widget-item .content.accounts-cash-projection .cash-projection-chart{height:calc(565px - 50px)}.analytics .widget-item .content.accounts-cash-projection .highcharts-legend-item rect.highcharts-point{display:none}.analytics .widget-item .content.accounts-cash-projection .highcharts-legend-item span{width:110px;text-align:center}.analytics .widget-item .content.accounts-cash-projection .highcharts-legend-item span img{text-align:center;width:55px;height:25px}.analytics .widget-item .content.accounts-cash-projection .dates-picker{display:inline-block;float:right;font-size:12px}.analytics .widget-item .content.accounts-cash-projection transactions-list{font-size:12px}@media (min-width:992px){.analytics .widget-item .content.accounts-cash-summary{height:565px}.analytics .widget-item .content.accounts-cash-summary .chart-container{max-width:585px;max-height:440px;margin:auto}}.analytics .widget-item .content.accounts-cash-summary .edit{max-height:545px}.analytics .widget-item .content.accounts-cash-summary .edit .widget-lines-container{overflow-y:hidden;overflow-x:hidden}.analytics .widget-item .content.accounts-cash-summary .widget-lines-container{max-height:540px}.analytics .widget-item .content.accounts-cash-summary .widget-lines-container .lines-group .widget-line{cursor:pointer;border:1px solid #fff}.analytics .widget-item .content.accounts-cash-summary .widget-lines-container .lines-group .widget-line .selection-tag{display:block;right:0;margin-top:-6px;width:10px;height:29px;position:absolute}.analytics .widget-item .content.accounts-cash-summary .widget-lines-container .lines-group .widget-line:hover{background-color:#e6e0fb}.analytics .widget-item .content.accounts-cash-summary .widget-lines-container .lines-group .widget-line.no-select{cursor:auto}.analytics .widget-item .content.accounts-cash-summary .widget-lines-container .lines-group .widget-line.no-select:hover{color:#626d6d}.analytics .widget-item .content.accounts-cash-summary .right-panel .widget-lines-container{overflow-y:auto;overflow-x:hidden;max-height:215px}.analytics .widget-item .content.accounts-cash-summary .no-element{font-weight:300;font-size:16px;color:#5B6667;text-align:center}.analytics .widget-item .content.accounts-cash-summary .row.lines-group.cash{border-top:solid 1px;border-bottom:double}.analytics .widget-item .content.accounts-class-comparison .param-selector{text-align:center}.analytics .widget-item .content.accounts-class-comparison .widget-lines-container{max-height:94px;color:#626d6d}@media (min-width:992px){.analytics .widget-item .content.accounts-comparison{height:565px}.analytics .widget-item .content.accounts-comparison .chart-container{max-width:585px;max-height:440px;margin:auto}}.analytics .widget-item .content.accounts-comparison .edit{max-height:545px}.analytics .widget-item .content.accounts-comparison .edit .widget-lines-container{overflow-y:hidden;overflow-x:hidden}@media print{.analytics .widget-item .content.accounts-comparison .chart-container{max-width:80%!important}}.analytics .widget-item .content.accounts-comparison .add-account{position:absolute;right:40px;bottom:30px;width:160px}.analytics .widget-item .content.accounts-comparison .add-account select{font-size:13px;background-color:#977bf0;color:#fff;outline:0;border:none;cursor:pointer}.analytics .widget-item .content.accounts-comparison .add-account select[disabled]{cursor:not-allowed;background-color:#bba9f5}.analytics .widget-item .content.accounts-comparison .add-account select[disabled]:hover{background-color:#bba9f5}.analytics .widget-item .content.accounts-comparison .add-account select:hover{background-color:#734deb}.analytics .widget-item .content.accounts-comparison .add-account select option{background-color:#fff;color:#c4caca}.analytics .widget-item .content.accounts-comparison .add-account select option[disabled]{color:#fff}.analytics .widget-item .content.accounts-comparison button.close{font-size:15px}.analytics .widget-item .content.accounts-comparison .legend{text-align:left;max-height:103px}.analytics .widget-item .content.accounts-comparison .row{margin:0}.analytics .widget-item .content.accounts-comparison .widget-lines-container{font-size:11px;max-height:220px;margin-bottom:65px;overflow:auto}.analytics .widget-item .content.accounts-comparison .settings.params-checkboxes{margin-left:13px}.analytics .widget-item .content.accounts-comparison .comparable-error h5{margin-left:13px;color:#ed1e79}.analytics .widget-item .content.accounts-custom-calculation h3{margin-top:85px;text-align:center;font-weight:700}.analytics .widget-item .content.accounts-custom-calculation .legend{max-height:125px}.analytics.modal-custom-calculation{margin:0;padding:0}.analytics.modal-custom-calculation .modal-body .edit{overflow-y:auto;overflow-x:hidden;color:#5B6667;font-size:12px;padding:5px;overflow:visible}.analytics.modal-custom-calculation .modal-body .edit .bottom-buttons .btn{border-radius:2px;margin-right:5px;padding:3px 13px;text-transform:uppercase;font-size:12px}.analytics.modal-custom-calculation .modal-body .edit .bottom-buttons .btn.btn-default{background-color:#c2c4c4;border:1px solid #a8abab;color:#fff}.analytics.modal-custom-calculation .modal-body .edit .bottom-buttons .btn.btn-default:hover{border:1px solid #8e9292;background-color:#a8abab}.analytics.modal-custom-calculation .modal-body .edit h4{margin:0 0 8px;text-align:left;font-weight:400;font-size:12px;color:#c4caca}.analytics.modal-custom-calculation .modal-body .edit .part{margin-bottom:8px;padding:10px 0;background-color:#fcfcfc;border:1px solid #dfe2e2}.analytics.modal-custom-calculation .modal-body .edit .part h5{display:block;margin:0 0 10px;padding:0 15px;text-transform:uppercase;font-weight:400;font-size:12px;color:#c4caca}.analytics.modal-custom-calculation .modal-body .edit .part label{font-weight:400}.analytics.modal-custom-calculation .modal-body .edit .part select.form-control{margin:0;border:1px solid #acb0b1;outline:0;-webkit-box-shadow:none;font-size:13px;color:#72728b}@media (min-width:992px){.analytics .widget-item .content.accounts-detailed-classifications{height:565px}.analytics .widget-item .content.accounts-detailed-classifications .chart-container{max-width:585px;max-height:440px;margin:auto}}.analytics .widget-item .content.accounts-detailed-classifications .edit{max-height:545px}.analytics .widget-item .content.accounts-detailed-classifications .edit .widget-lines-container{overflow-y:hidden;overflow-x:hidden}.analytics .widget-item .content.accounts-detailed-classifications .widget-lines-container{overflow-y:scroll;overflow-x:hidden;max-height:540px}.analytics .widget-item .content.accounts-invoices-list .edit .widget-lines-container,.analytics .widget-item .content.accounts-profit-and-loss .edit .widget-lines-container{overflow-y:hidden;overflow-x:hidden}.analytics .widget-item .content.accounts-detailed-classifications .account-class-title{margin-bottom:8px;margin-left:11px}.analytics .widget-item .content.accounts-detailed-classifications .time-period-info{text-align:right}.analytics .widget-item .content.accounts-detailed-classifications .widget-line.header.sorting{border-bottom:1px solid #ccc}.analytics .widget-item .content.accounts-expense-weight .legend{text-align:left;max-height:115px}.analytics .widget-item .content.accounts-expense-weight .legend .title{text-align:center}.analytics .widget-item .content.accounts-expenses-revenue .legend{font-weight:700}.analytics .widget-item .content.accounts-expenses-revenue .settings.params-checkboxes{font-size:12px;margin-left:0;text-align:center}@media (min-width:992px){.analytics .widget-item .content.accounts-invoices-list{height:565px}.analytics .widget-item .content.accounts-invoices-list .chart-container{max-width:585px;max-height:440px;margin:auto}}.analytics .widget-item .content.accounts-invoices-list .edit{max-height:545px}.analytics .widget-item .content.accounts-invoices-list transactions-list{font-size:12px}.analytics .widget-item .content.accounts-live-balance h3{font-weight:900;color:#5B6667;margin-top:0;font-size:18px;text-align:center;text-shadow:1px}.analytics .widget-item .content.accounts-live-balance .statement-title{font-size:13px;font-weight:400}.analytics .widget-item .content.accounts-live-balance .balance-title{font-size:12px}.analytics .widget-item .content.accounts-live-balance .currency-centered{font-weight:300;font-size:12px;color:#5B6667;text-align:center}.analytics .widget-item .content.accounts-live-balance .headers{text-align:center}.analytics .widget-item .content.accounts-live-balance .spacer{min-height:30px}.analytics .widget-item .content.accounts-profit-and-loss,.analytics .widget-item .content.hr-payroll-summary,.analytics .widget-item .content.invoices-aged-payables-receivables,.analytics .widget-item .content.sales-aged,.analytics .widget-item .content.sales-comparison,.analytics .widget-item .content.sales-forecast,.analytics .widget-item .content.sales-leads-funnel,.analytics .widget-item .content.sales-opportunities-funnel,.analytics .widget-item .content.sales-performance{min-height:565px}.analytics .widget-item .content.accounts-live-balance .price{font-weight:900;font-size:22px;color:#5B6667;text-align:center;margin-top:0}.analytics .widget-item .content.accounts-live-balance .come-back-later{text-align:center;font-size:11px;opacity:.8}.analytics .widget-item .content.accounts-live-balance .negative2{font-size:14px}.analytics .widget-item .content.accounts-payable-receivable h3{text-align:center}.analytics .widget-item .content.accounts-payable-receivable .legend{font-weight:700}.analytics .widget-item .content.accounts-payable-receivable .payable{margin-top:15px}.analytics .widget-item .content.accounts-payable-receivable .price{font-weight:900;font-size:22px;color:#5B6667;text-align:center;margin-top:0}@media (min-width:992px){.analytics .widget-item .content.accounts-profit-and-loss{height:565px}.analytics .widget-item .content.accounts-profit-and-loss .chart-container{max-width:585px;max-height:440px;margin:auto}}.analytics .widget-item .content.accounts-profit-and-loss .edit{max-height:545px}.analytics .widget-item .content.accounts-profit-and-loss .widget-lines-container{max-height:540px}.analytics .widget-item .content.accounts-profit-and-loss .widget-lines-container .lines-group .widget-line{cursor:pointer;border:1px solid #fff}.analytics .widget-item .content.accounts-profit-and-loss .widget-lines-container .lines-group .widget-line .selection-tag{display:block;right:0;margin-top:-6px;width:10px;height:29px;position:absolute}.analytics .widget-item .content.accounts-profit-and-loss .widget-lines-container .lines-group .widget-line:hover{background-color:#e6e0fb}.analytics .widget-item .content.accounts-profit-and-loss .widget-lines-container .lines-group .widget-line.no-select{cursor:auto}.analytics .widget-item .content.accounts-profit-and-loss .widget-lines-container .lines-group .widget-line.no-select:hover{color:#626d6d}.analytics .widget-item .content.accounts-profit-and-loss .right-panel .widget-lines-container{overflow-y:auto;overflow-x:hidden;max-height:215px}.analytics .widget-item .content.accounts-profit-and-loss .no-element{font-weight:300;font-size:16px;color:#5B6667;text-align:center}.analytics .widget-item .content.accounts-profit-and-loss .row.lines-group.profit{border-top:solid 1px;border-bottom:double}.analytics .widget-item .content.accounts-profit-and-loss .row.widget-line.header>[class*=col-]{position:static}.analytics .widget-item .content.accounts-ratios .left-panel{max-height:230px;overflow-y:auto}.analytics .widget-item .content.accounts-ratios .left-panel .separator{border-bottom:solid 1px #5B6667;width:75%}.analytics .widget-item .content.accounts-ratios .left-panel .member{padding-top:20px;padding-bottom:20px}.analytics .widget-item .content.accounts-ratios .left-panel .member .price{margin-top:0;font-size:18px}.analytics .widget-item .content.accounts-ratios .left-panel button{outline:0}.analytics .widget-item .content.accounts-ratios .left-panel.simulation .member{padding-top:5px}.analytics .widget-item .content.accounts-ratios .left-panel.simulation .member .legend{display:none}.analytics .widget-item .content.accounts-ratios .left-panel.simulation .member .price{text-align:right}.analytics .widget-item .content.accounts-ratios .left-panel.simulation .separator{width:100%}.analytics .widget-item .content.hr-employee-details{font-size:12px}.analytics .widget-item .content.hr-employee-details .details-container{padding:0;max-height:none;overflow-y:auto;overflow-x:hidden}.analytics .widget-item .content.hr-employee-details .right-panel .legend{margin-bottom:5px}.analytics .widget-item .content.hr-employee-details .title{text-align:center;margin-bottom:10px;font-size:14px}.analytics .widget-item .content.hr-employees-list .legend{margin-bottom:9px}.analytics .widget-item .content.hr-employees-list .widget-lines-container{text-align:center}.analytics .widget-item .content.hr-employees-list .widget-lines-container .widget-line:nth-child(even){background-color:#f0f0f0}.analytics .widget-item .content.hr-employees-list .widget-lines-container .widget-line:nth-child(odd){background-color:#fff}.analytics .widget-item .content.hr-employees-list .edit .widget-lines-container{text-align:left}.analytics .widget-item .content.hr-leaves-balance .employee-name{text-align:center}.analytics .widget-item .content.hr-leaves-balance .balance{font-weight:900;font-size:22px;color:#5B6667;text-align:center;margin-top:0}.analytics .widget-item .content.hr-leaves-balance h3{margin-top:33px;text-align:center}.analytics .widget-item .content.hr-leaves-schedule .fc-button{height:22px;font-size:12px;color:#977bf0;background:#fff;outline:0}.analytics .widget-item .content.hr-leaves-schedule .fc-button:hover{color:#fff;background:#977bf0}.analytics .widget-item .content.hr-payroll-summary .widget-lines-container .lines-group .widget-line:hover,.analytics .widget-item .content.invoices-aged-payables-receivables .widget-lines-container .lines-group .widget-line:hover{background-color:#e6e0fb}.analytics .widget-item .content.hr-leaves-schedule .fc-toolbar{margin-bottom:5px}.analytics .widget-item .content.hr-leaves-schedule .fc-day-grid,.analytics .widget-item .content.hr-leaves-schedule .fc-widget-header{font-size:12px;color:#5B6667}@media (min-width:992px){.analytics .widget-item .content.hr-employee-details .details-container{max-height:200px}.analytics .widget-item .content.hr-employee-details .right-panel .details-container{max-height:220px}.analytics .widget-item .content.hr-payroll-summary{height:565px}.analytics .widget-item .content.hr-payroll-summary .chart-container{max-width:585px;max-height:440px;margin:auto}}.analytics .widget-item .content.hr-salaries-summary h3.right,.analytics .widget-item .content.hr-workforce-summary h3.right{margin-bottom:10px;text-align:center}.analytics .widget-item .content.hr-payroll-summary .edit{max-height:545px}.analytics .widget-item .content.hr-payroll-summary .edit .widget-lines-container{overflow-y:hidden;overflow-x:hidden}.analytics .widget-item .content.hr-payroll-summary .widget-lines-container{max-height:540px}.analytics .widget-item .content.hr-payroll-summary .widget-lines-container .lines-group .widget-line{cursor:pointer;border:1px solid #fff}.analytics .widget-item .content.hr-payroll-summary .widget-lines-container .lines-group .widget-line .selection-tag{display:block;right:0;margin-top:-6px;width:10px;height:29px;position:absolute}.analytics .widget-item .content.hr-payroll-summary .widget-lines-container .lines-group .widget-line.no-select{cursor:auto}.analytics .widget-item .content.hr-payroll-summary .widget-lines-container .lines-group .widget-line.no-select:hover{color:#626d6d}.analytics .widget-item .content.hr-payroll-summary .right-panel .widget-lines-container{overflow-y:auto;overflow-x:hidden;max-height:145px}.analytics .widget-item .content.hr-payroll-summary .no-element{font-weight:300;font-size:16px;color:#5B6667;text-align:center}.analytics .widget-item .content.hr-salaries-summary h3.left{text-align:center}.analytics .widget-item .content.hr-salaries-summary h3.reduced-left{text-align:center}@media (min-width:992px){.analytics .widget-item .content.hr-salaries-summary h3.left{margin-top:69px}.analytics .widget-item .content.hr-salaries-summary h3.reduced-left{margin-top:10px}}.analytics .widget-item .content.hr-salaries-summary .price{margin-top:0}.analytics .widget-item .content.hr-salaries-summary .widget-lines-container{max-height:75px}.analytics .widget-item .content.hr-salaries-summary .widget-lines-container .widget-line{font-size:11px}.analytics .widget-item .content.hr-superannuation-accruals h3{margin-top:63px;text-align:center}.analytics .widget-item .content.hr-superannuation-accruals .legend{margin-top:23px}.analytics .widget-item .content.hr-superannuation-accruals .currency{font-size:14px}.analytics .widget-item .content.hr-superannuation-accruals .price{font-weight:900;font-size:22px;color:#5B6667;text-align:center;margin-top:0}.analytics .widget-item .content.hr-timesheets .currency{font-size:14px}.analytics .widget-item .content.hr-timesheets .widget-lines-container{max-height:210px}.analytics .widget-item .content.hr-workforce-summary h3.left{text-align:center}.analytics .widget-item .content.hr-workforce-summary h3.reduced-left{text-align:center}@media (min-width:992px){.analytics .widget-item .content.hr-workforce-summary h3.left{margin-top:69px}.analytics .widget-item .content.hr-workforce-summary h3.reduced-left{margin-top:10px}}.analytics .widget-item .content.hr-workforce-summary .price{margin-top:0}.analytics .widget-item .content.hr-workforce-summary .widget-lines-container{max-height:75px}.analytics .widget-item .content.hr-workforce-summary .widget-lines-container .widget-line{font-size:11px}@media (min-width:480px) and (max-width:991px){.analytics .widget-item .content.hr-salaries-summary .right-panel .chart-container,.analytics .widget-item .content.hr-workforce-summary .right-panel .chart-container{max-width:320px}}@media (min-width:992px){.analytics .widget-item .content.invoices-aged-payables-receivables{height:565px}.analytics .widget-item .content.invoices-aged-payables-receivables .chart-container{max-width:585px;max-height:440px;margin:auto}}.analytics .widget-item .content.invoices-aged-payables-receivables .edit{max-height:545px}.analytics .widget-item .content.invoices-aged-payables-receivables .edit .widget-lines-container{overflow-y:hidden;overflow-x:hidden}.analytics .widget-item .content.invoices-aged-payables-receivables .widget-lines-container{max-height:540px}.analytics .widget-item .content.invoices-aged-payables-receivables .widget-lines-container .lines-group .widget-line{cursor:pointer;border:1px solid #fff}.analytics .widget-item .content.invoices-aged-payables-receivables .widget-lines-container .lines-group .widget-line .selection-tag{display:block;right:0;margin-top:-6px;width:10px;height:29px;position:absolute}.analytics .widget-item .content.invoices-aged-payables-receivables .widget-lines-container .lines-group .widget-line.no-select{cursor:auto}.analytics .widget-item .content.invoices-aged-payables-receivables .widget-lines-container .lines-group .widget-line.no-select:hover{color:#626d6d}.analytics .widget-item .content.invoices-aged-payables-receivables .right-panel .widget-lines-container{overflow-y:auto;overflow-x:hidden;max-height:215px}.analytics .widget-item .content.sales-aged .edit .widget-lines-container,.analytics .widget-item .content.sales-comparison .edit .widget-lines-container{overflow-y:hidden;overflow-x:hidden}.analytics .widget-item .content.invoices-aged-payables-receivables .no-element{font-weight:300;font-size:16px;color:#5B6667;text-align:center}.analytics .widget-item .content.invoices-aged-payables-receivables .row.astericks-info{margin-top:15px}.analytics .widget-item .content.invoices-aged-payables-receivables .currency-conversions{float:right;margin-left:3px}.analytics .widget-item .content.invoices-list .widget-lines-container{max-height:230px}.analytics .widget-item .content.invoices-list .widget-lines-container .widget-line:nth-child(even){background-color:#f0f0f0}.analytics .widget-item .content.invoices-list .widget-lines-container .widget-line:nth-child(odd){background-color:#fff}.analytics .widget-item .content.invoices-list .widget-lines-container .widget-line.header{background-color:#fff}.analytics .widget-item .content.invoices-list .currency-conversions{float:right;margin-right:3px;margin-top:-2px}.analytics .widget-item .content.invoices-list .fa.fa-info-circle{float:right;font-size:15px}.analytics .widget-item .content.invoices-list .right-column{padding-left:0;padding-right:0}.analytics .widget-item .content.invoices-summary .chart-container{max-width:410px}.analytics .widget-item .content.invoices-summary .legend{max-height:28px}@media (min-width:992px){.analytics .widget-item .content.sales-aged{height:565px}.analytics .widget-item .content.sales-aged .chart-container{max-width:585px;max-height:440px;margin:auto}}.analytics .widget-item .content.sales-aged .edit{max-height:545px}.analytics .widget-item .content.sales-aged .widget-lines-container{max-height:238px}.analytics .widget-item .content.sales-break-even .price{font-weight:900;font-size:22px;color:#5B6667;text-align:center;margin-top:0}.analytics .widget-item .content.sales-break-even .block{margin:5px;padding:0 10px 5px;text-align:left;box-shadow:0 7px 10px -7px #17262d;font-size:12px}.analytics .widget-item .content.sales-break-even .block form.editable-wrap .editable-controls input{margin-top:5px;width:100px}.analytics .widget-item .content.sales-break-even .block.to-date{background-color:#f0f0f0;color:#5B6667}.analytics .widget-item .content.sales-break-even .block.to-breakeven{margin-top:10px;background-color:#192831;color:#1de9b6}.analytics .widget-item .content.sales-comparison .widget-lines-container .lines-group .widget-line:hover,.analytics .widget-item .content.sales-forecast .widget-lines-container .widget-line.main:hover{background-color:#e6e0fb}.analytics .widget-item .content.sales-break-even .block.to-breakeven .title{border-bottom:solid 1px #2a4453}.analytics .widget-item .content.sales-break-even .block.to-breakeven .define-text{font-weight:300;font-size:16px;text-align:center;padding-top:5px;color:#1de9b6}.analytics .widget-item .content.sales-break-even .block.to-breakeven .price{color:#1de9b6}.analytics .widget-item .content.sales-break-even .block .title{font-size:13px;text-align:center;font-variant:small-caps;border-bottom:solid 1px #e6edee;font-weight:300}@media (min-width:992px){.analytics .widget-item .content.sales-comparison{height:565px}.analytics .widget-item .content.sales-comparison .chart-container{max-width:585px;max-height:440px;margin:auto}}.analytics .widget-item .content.sales-comparison .edit{max-height:545px}.analytics .widget-item .content.sales-comparison .widget-lines-container .lines-group .widget-line{cursor:pointer;border:1px solid #fff}.analytics .widget-item .content.sales-comparison .widget-lines-container .lines-group .widget-line .selection-tag{display:block;right:0;margin-top:-6px;width:10px;height:29px;position:absolute}.analytics .widget-item .content.sales-comparison .widget-lines-container .lines-group .widget-line.no-select{cursor:auto}.analytics .widget-item .content.sales-comparison .widget-lines-container .lines-group .widget-line.no-select:hover{color:#626d6d}.analytics .widget-item .content.sales-comparison .no-element{font-weight:300;font-size:16px;color:#5B6667;text-align:center}.analytics .widget-item .content.sales-comparison .widget-lines-container{max-height:530px}.analytics .widget-item .content.sales-comparison .right-panel .widget-lines-container{overflow-y:auto;overflow-x:hidden;max-height:250px}.analytics .widget-item .content.sales-comparison .currency-conversions img{margin-top:-2px}.analytics .widget-item .content.sales-customer-details{font-size:12px}.analytics .widget-item .content.sales-customer-details .loader{font-size:14px}.analytics .widget-item .content.sales-customer-details .details-container{padding:0;overflow-y:auto;overflow-x:hidden}.analytics .widget-item .content.sales-forecast .edit .widget-lines-container,.analytics .widget-item .content.sales-leads-funnel .edit .widget-lines-container{overflow-y:hidden;overflow-x:hidden}@media (min-width:992px){.analytics .widget-item .content.sales-customer-details .details-container{max-height:194px}.analytics .widget-item .content.sales-customer-details .right-panel .details-container{max-height:230px}}.analytics .widget-item .content.sales-customer-details .right-panel .legend{margin-bottom:5px}.analytics .widget-item .content.sales-customer-details .row.title{text-align:center;margin-bottom:10px;font-size:14px}.analytics .widget-item .content.sales-customer-details .currency-conversions{float:left;margin-right:3px}.analytics .widget-item .content.sales-cycle .chart-container{max-width:410px}.analytics .widget-item .content.sales-cycle .legend{max-height:28px}@media (min-width:992px){.analytics .widget-item .content.sales-forecast{height:565px}.analytics .widget-item .content.sales-forecast .chart-container{max-width:585px;max-height:440px;margin:auto}}.analytics .widget-item .content.sales-forecast .edit{max-height:545px}.analytics .widget-item .content.sales-forecast .widget-lines-container{max-height:275px}.analytics .widget-item .content.sales-forecast .widget-lines-container .widget-line.main{cursor:pointer;border:1px solid #fff}.analytics .widget-item .content.sales-forecast .widget-lines-container .widget-line.main .selection-tag{display:block;right:0;margin-top:-6px;width:10px;height:29px;position:absolute}.analytics .widget-item .content.sales-forecast .widget-lines-container .widget-line.main.no-select{cursor:auto}.analytics .widget-item .content.sales-leads-funnel .right-panel .widget-lines-container .widget-line,.analytics .widget-item .content.sales-opportunities-funnel .right-panel .widget-lines-container .widget-line{cursor:default}.analytics .widget-item .content.sales-forecast .widget-lines-container .widget-line.main.no-select:hover{color:#626d6d}.analytics .widget-item .content.sales-growth .price{font-weight:900;font-size:22px;color:#5B6667;text-align:center;margin-top:0}.analytics .widget-item .content.sales-growth .legend{max-height:49px;font-size:14px;text-overflow:ellipsis;white-space:nowrap}@media (min-width:992px){.analytics .widget-item .content.sales-leads-funnel{height:565px}.analytics .widget-item .content.sales-leads-funnel .chart-container{max-width:585px;max-height:440px;margin:auto}}.analytics .widget-item .content.sales-leads-funnel .edit{max-height:545px}.analytics .widget-item .content.sales-leads-funnel .funnel-container{width:95%;margin:15px auto auto;padding-right:10px;max-height:505px;overflow:auto}.analytics .widget-item .content.sales-leads-funnel .right-panel .widget-lines-container{max-height:545px;margin-right:10px}.analytics .widget-item .content.sales-leads-list .widget-lines-container{max-height:230px;overflow-y:scroll;overflow-x:hidden}.analytics .widget-item .content.sales-leads-list .widget-lines-container .widget-line:nth-child(even){background-color:#f0f0f0}.analytics .widget-item .content.sales-leads-list .widget-lines-container .widget-line:nth-child(odd){background-color:#fff}.analytics .widget-item .content.sales-leads-list .widget-lines-container .widget-line.header{background-color:#fff}.analytics .widget-item .content.sales-list .widget-lines-container .widget-line:nth-child(even){background-color:#f0f0f0}.analytics .widget-item .content.sales-list .widget-lines-container .widget-line:nth-child(odd){background-color:#fff}.analytics .widget-item .content.sales-list .widget-lines-container .widget-line.header{background-color:#fff}.analytics .widget-item .content.sales-performance .right-panel .widget-lines-container .widget-line.header:hover,.analytics .widget-item .content.sales-performance .widget-lines-container .lines-group .widget-line:hover{background-color:#e6e0fb}.analytics .widget-item .content.sales-list .widget-lines-container{overflow-y:scroll;overflow-x:hidden;max-height:170px}.analytics .widget-item .content.sales-list .widget-lines-container.no-scroll{overflow:visible}.analytics .widget-item .content.sales-list .selector{margin-bottom:4px}.analytics .widget-item .content.sales-list .currency-conversions img{margin-top:-2px}.analytics .widget-item .content.sales-net-sales .operator,.analytics .widget-item .content.sales-net-sales .value-container{line-height:85px}.analytics .widget-item .content.sales-net-sales .value-container .title{line-height:20px;font-size:1.2em;padding:10px 0}.analytics .widget-item .content.sales-net-sales .value-container .value-box{font-size:1.3em;border-radius:10px;border-top:solid 1px #C4CACA;border-bottom:solid 1px #C4CACA;white-space:nowrap}.analytics .widget-item .content.sales-net-sales .operator{padding-top:38px;font-size:1.3em}@media (min-width:992px){.analytics .widget-item .content.sales-net-sales .values{margin-top:25px}}.analytics .widget-item .content.sales-new-vs-existing-customers .selector .selector-wrap{display:inline-block;margin:0 5px}.analytics .widget-item .content.sales-new-vs-existing-customers .chart-container{margin-top:15px}.analytics .widget-item .content.sales-new-vs-existing-customers .legend{margin-top:5px;font-weight:700;max-height:77px!important}.analytics .widget-item .content.sales-new-vs-existing-customers .legend .row{margin:0 -5px}.analytics .widget-item .content.sales-new-vs-existing-customers .legend .row>div{padding:0 5px}.analytics .widget-item .content.sales-new-vs-existing-customers .legend .total{color:#5B6667;font-size:14px}.analytics .widget-item .content.sales-number-of-leads .stats{margin-top:35px;font-size:18px}.analytics .widget-item .content.sales-number-of-leads .stats .stat{margin:15px 0 10px;border-bottom:solid 1px #e6edee}.analytics .widget-item .content.sales-number-of-leads .stats .stat span.title{font-weight:700}.analytics .widget-item .content.sales-number-of-leads .stats .stat span.nominal{float:right;text-align:right;font-weight:300}.analytics .widget-item .content.sales-number-of-leads .stats .stat span.variation{float:right;width:50px;text-align:right;font-style:italic;font-size:14px;font-weight:300;margin-top:2px}@media (min-width:992px){.analytics .widget-item .content.sales-opportunities-funnel{height:565px}.analytics .widget-item .content.sales-opportunities-funnel .chart-container{max-width:585px;max-height:440px;margin:auto}}.analytics .widget-item .content.sales-opportunities-funnel .edit{max-height:545px}.analytics .widget-item .content.sales-opportunities-funnel .edit .widget-lines-container{overflow-y:hidden;overflow-x:hidden}.analytics .widget-item .content.sales-opportunities-funnel .funnel-container{width:95%;margin:15px auto auto;padding-right:10px;max-height:505px;overflow:auto}.analytics .widget-item .content.sales-opportunities-funnel .right-panel .widget-lines-container{max-height:545px;margin-right:10px}@media (min-width:992px){.analytics .widget-item .content.sales-performance{height:565px}.analytics .widget-item .content.sales-performance .chart-container{max-width:585px;max-height:440px;margin:auto}}.analytics .widget-item .content.sales-performance .right-panel .widget-lines-container .widget-line.header .selection-tag,.analytics .widget-item .content.sales-performance .widget-lines-container .lines-group .widget-line .selection-tag{display:block;right:0;margin-top:-6px;width:10px;height:29px;position:absolute}.analytics .widget-item .content.sales-performance .edit{max-height:545px}.analytics .widget-item .content.sales-performance .edit .widget-lines-container{overflow-y:hidden;overflow-x:hidden}.analytics .widget-item .content.sales-performance .widget-lines-container{max-height:540px}.analytics .widget-item .content.sales-performance .widget-lines-container .lines-group .widget-line{cursor:pointer;border:1px solid #fff}.analytics .widget-item .content.sales-performance .widget-lines-container .lines-group .widget-line.no-select{cursor:auto}.analytics .widget-item .content.sales-performance .widget-lines-container .lines-group .widget-line.no-select:hover{color:#626d6d}.analytics .widget-item .content.sales-performance .right-panel .widget-lines-container{overflow-y:auto;overflow-x:hidden;max-height:215px}.analytics .widget-item .content.sales-performance .no-element{font-weight:300;font-size:16px;color:#5B6667;text-align:center}.analytics .widget-item .content.sales-performance .right-panel .widget-lines-container .widget-line.header{cursor:pointer;border:1px solid #fff}.analytics .widget-item .content.sales-performance .right-panel .widget-lines-container .widget-line.header.no-select{cursor:auto}.analytics .widget-item .content.sales-performance .right-panel .widget-lines-container .widget-line.header.no-select:hover{color:#626d6d}.analytics .widget-item .content.sales-segmented-turnover h3.right{margin-top:55px;text-align:center}.analytics .widget-item .content.sales-segmented-turnover .selector{margin-bottom:10px}.analytics .widget-item .content.sales-segmented-turnover .analysis{font-weight:900;font-size:22px;color:#5B6667;text-align:center;margin-top:0}.analytics .widget-item .content.sales-segmented-turnover .widget-lines-container{max-height:75px}.analytics .widget-item .content.sales-segmented-turnover .widget-lines-container .widget-line{font-size:11px}.analytics .widget-item .content.sales-segmented-turnover .right-panel h3{margin:15px 10px 5px;text-align:center}.analytics .widget-item .content.sales-segmented-turnover .right-panel .fa.fa-info-circle{float:left}.analytics .widget-item .content.sales-summary .chart-container{max-width:410px}.analytics .widget-item .content.sales-summary .legend{max-height:28px}.analytics .widget-item .content.sales-summary .selector{margin-bottom:5px}.analytics .widget-item .content.sales-top-customers .selector{border-bottom:dashed 1px #E6E6E6;padding-bottom:3px}.analytics .widget-item .content.sales-top-customers .selector a{font-weight:400}.analytics .widget-item .content.sales-top-customers .selector .param-selector{display:inline-block}.analytics .widget-item .content.sales-top-customers .widget-lines-container{max-height:235px}.analytics .widget-item .content.sales-top-customers .widget-lines-container .widget-line.sub-line{background-color:#f0f0f0}.analytics .widget-item .content.sales-top-customers .widget-lines-container .row>[class*=col-]{position:static}.analytics .widget-item .content.sales-top-customers .currency-conversions img{margin-top:-2px}.analytics .widget-item .content.sales-top-opportunities .opps-container{max-height:195px;margin-top:10px;padding-right:10px;overflow-y:auto;overflow-x:hidden}.analytics .widget-item .content.sales-top-opportunities .opps-container .tile{height:40px;font-size:13px;font-weight:300}.analytics .widget-item .content.sales-top-opportunities .opps-container .tile .colored-area{width:10%;text-align:center;font-size:20px}.analytics .widget-item .content.sales-top-opportunities .opps-container .tile .main-text{color:#5B6667;padding:3px 0 0 10px}.analytics .widget-item .content.sales-top-opportunities .opps-container .tile.first{height:55px;font-size:15px;font-weight:700}.analytics .widget-item .content.sales-top-opportunities .opps-container .tile.first .colored-area{font-size:26px;padding-top:10px;background-color:#ff6e41}.analytics .widget-item .content.sales-top-opportunities .opps-container .tile.first .main-text{padding-top:8px}.analytics .widget-item .content.sales-top-opportunities .opps-container .tile.second{height:55px;font-size:15px;font-weight:500}.analytics .widget-item .content.sales-top-opportunities .opps-container .tile.second .colored-area{font-size:26px;padding-top:10px;background-color:#1de9b6}.analytics .widget-item .content.sales-top-opportunities .opps-container .tile.second .main-text{padding-top:8px}.analytics .settings.accounting-behaviour .btn.btn-primary{background-color:#bba9f5;border:1px solid #977bf0}.analytics .settings.accounting-behaviour .btn.btn-primary.active,.analytics .settings.accounting-behaviour .btn.btn-primary.focus{background-color:#977bf0}.analytics .settings.attach-kpis .attach-kpi{padding:8px 5px}.analytics .settings.attach-kpis .attach-kpi form .row{padding-bottom:5px}.analytics .settings.attach-kpis .attach-kpi .attach-kpi-form{background-color:#fff;border:1px solid #ddd;padding:5px}.analytics .settings.attach-kpis .attach-kpi form .row.kpi-description{padding:10px 2px}.analytics .settings.attach-kpis .attach-kpi form .row.kpi-description span{display:block;font-weight:700;font-size:13px}.analytics .settings.attach-kpis .attach-kpi form.attach-kpi-form input.attach-target{background-color:#fff;height:inherit}.analytics .settings.attach-kpis .attach-kpi .error-messages{color:#e01f74;width:120px}.analytics .settings.attach-kpis .attached-kpis{padding:5px}.analytics .settings.attach-kpis .list-group-item.attached-kpi{padding:5px 10px}.analytics .settings.attach-kpis .list-group-item.attached-kpi .attached-kpi-name{overflow:hidden;width:75%;display:inline-block;white-space:nowrap;text-overflow:ellipsis;margin-top:3px;font-size:13px;font-weight:700}.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions{padding-top:2px}.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions .alerts-config{display:inline-block;text-align:left;padding-left:4px;height:20px;border-radius:40px;width:21px;color:#358fdc;background-color:#fff;border:1px solid #358fdc}.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions .alerts-config:hover{cursor:pointer}.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions .edit-attached-kpi{display:inline-block}.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions .edit-attached-kpi i{border-radius:10px;width:21px;color:#358fdc;background-color:#fff;height:20px;padding:3px 5px 5px;border:1px solid #358fdc}.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions .edit-attached-kpi i:hover{cursor:pointer}.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions .remove-attached-kpi{display:inline-block}.analytics .settings.dates-picker button.btn.btn-sm.btn-danger,.analytics .settings.dates-picker h5{display:none}.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions .remove-attached-kpi i{border-radius:10px;width:21px;color:#e01f74;background-color:#fff;height:20px;padding:3px 5px 5px;border:1px solid #e01f74}.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions .remove-attached-kpi i:hover{cursor:pointer}.analytics .widget-item .content .settings.select-account{padding:0 5px}.analytics .widget-item .content .settings.chart-filters .row{margin:0}.analytics .widget-item .content .settings.chart-filters input[type=radio]{margin:0 3px 0 0;padding:0;width:13px;height:13px;vertical-align:middle;position:relative;top:-1px;outline:0}.analytics .widget-item .content .settings.chart-filters input[type=range]{height:auto;width:100%}.analytics .settings.dates-picker button.btn.btn-sm{line-height:1}.analytics .settings.dates-picker button.btn.btn-sm.date-button{margin:0 5px}.analytics .settings.dates-picker button.btn.btn-sm.btn-info{border-radius:3px}.analytics .settings.dates-picker .tooltip-inner{text-transform:none}.analytics .settings.dates-picker .dropdown-menu>li>div>table{outline:0}.analytics .settings.forecast-payroll .widget-lines-container .widget-line{padding:5px 10px 5px 18px}.analytics .settings.forecast-payroll .widget-lines-container .widget-line:nth-child(even){background-color:#f3f4f4}.analytics .settings.forecast-payroll .widget-lines-container .widget-line:nth-child(odd){background-color:#fff}.analytics .settings.forecast-payroll .widget-lines-container .widget-line .fa{float:right;font-size:20px;cursor:pointer}.analytics .settings.forecast-payroll .widget-lines-container .widget-line .fa.fa-toggle-on{color:#977bf0}.analytics .settings.forecast-payroll .widget-lines-container .widget-line .fa.fa-toggle-off{color:#9ba6a7}.analytics .widget-item .content .settings.hist-mode-choser{max-height:70px}.analytics .widget-item .content .settings.hist-mode-choser [common-time-period-info]{padding-bottom:8px}.analytics .widget-item .content .settings.hist-mode-choser .options{width:150px;margin:auto;padding-bottom:8px;border-bottom:solid 1px #e6e6e6;font-weight:500;font-size:12px;color:#c4caca}.analytics .widget-item .content .settings.hist-mode-choser .options a{font-weight:500;font-size:12px;color:#c4caca;text-transform:uppercase}.analytics .widget-item .content .settings.hist-mode-choser .options a.active{color:#977bf0}.analytics .widget-item .content .settings.hist-mode-choser .arrow-container{width:28px;height:28px;position:relative;top:-14px;margin:auto}.analytics .widget-item .content .settings.hist-mode-choser .arrow-container.right{left:46px}.analytics .widget-item .content .settings.hist-mode-choser .arrow-container.left{left:-30px}.analytics .widget-item .content .settings.hist-mode-choser .arrow-container .arrow-border{border-top:14px solid #e6e6e6;border-left:14px solid transparent;border-right:14px solid transparent;width:0;height:0}.analytics .widget-item .content .settings.hist-mode-choser .arrow-container .arrow{border-top:14px solid #fff;border-left:14px solid transparent;border-right:14px solid transparent;position:relative;top:12px;width:0;height:0}.analytics .settings.limit-entries{color:#1E303B;text-transform:uppercase;text-align:center;border-bottom:dashed 1px #E6E6E6;padding-bottom:8px}.analytics .settings.limit-entries a.option.badge{color:#fff;background-color:#1E303B}.analytics .settings.offsets .offset-value{font-style:italic;font-size:13px}.analytics .settings.offsets .offset-value .fa-trash-o{margin-left:10px}.analytics .settings.offsets .offset-value .fa-trash-o:hover{color:#e01f74;cursor:pointer}.analytics .settings.offsets input{width:75%}.analytics .settings.offsets button{width:30px}.analytics .settings.organizations .widget-lines-container .widget-line{padding:5px 10px 5px 18px}.analytics .settings.organizations .widget-lines-container .widget-line:nth-child(even){background-color:#f3f4f4}.analytics .settings.organizations .widget-lines-container .widget-line:nth-child(odd){background-color:#fff}.analytics .settings.organizations .widget-lines-container .widget-line .fa{float:right;font-size:20px;cursor:pointer}.analytics .settings.organizations .widget-lines-container .widget-line .fa.fa-check-circle,.analytics .settings.organizations .widget-lines-container .widget-line .fa.fa-toggle-on{color:#977bf0}.analytics .settings.organizations .widget-lines-container .widget-line .fa.fa-circle-thin,.analytics .settings.organizations .widget-lines-container .widget-line .fa.fa-toggle-off{color:#9ba6a7}.analytics .widget-item .content .settings.param-selector{display:inline-block}.analytics .widget-item .content .settings.param-selector.classic{width:100%}.analytics .widget-item .content .settings.param-selector.classic select{width:100%;height:25px;border:1px solid #ccc;text-transform:uppercase;margin:0 0 5px}.analytics .widget-item .content .settings.param-selector a{font-weight:400;color:#977bf0;white-space:nowrap}.analytics .widget-item .content .settings.param-selector .options-container{position:absolute;background-color:#fff;text-align:left;min-width:150px;max-height:200px;z-index:999;overflow-y:auto;overflow-x:hidden;box-shadow:#000 0 3px 15px -3px}.analytics .settings.tag-filter .tag-lines-container .tag-line .host,.analytics .settings.tag-filter .tag-lines-container .tag-line .tags-col{position:static}.analytics .widget-item .content .settings.param-selector .options-container .param-selector-label{padding:3px 5px;font-weight:500;font-size:inherit;color:#000;cursor:text;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;line-height:1.9}.analytics .widget-item .content .settings.param-selector .options-container .param-selector-label:hover{cursor:pointer;background-color:#977bf0;color:#fff}.analytics .widget-item .content .settings.param-selector .options-container::-webkit-scrollbar{width:8px;background-color:#d7e2e4}.analytics .widget-item .content .settings.param-selector .options-container::-webkit-scrollbar-thumb{background-color:#977bf0}.analytics .widget-item .content .settings.param-selector .options-container::-webkit-scrollbar-thumb:hover{background-color:#a992f3}.analytics .settings.params-checkboxes{padding:2px 0}.analytics .settings.params-checkboxes input{margin:0;height:inherit}.analytics .settings.params-checkboxes span{margin-left:5px}.analytics .settings.params-checkboxes label{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;line-height:14px}.analytics .widget-item .content .settings.params-picker{padding:0 10px}.analytics .widget-item .content .settings.params-picker .parameter{margin:0 3px 3px 0;padding:3px 5px;background-color:#1E303B;color:#fff;border:1px solid #1E303B;border-radius:4px;cursor:move;font-weight:700;white-space:nowrap;float:left}.analytics .widget-item .content .settings.params-picker .parameter input[type=checkbox]{margin:0 -3px 0 3px;vertical-align:middle;height:inherit;outline:0;cursor:pointer}.analytics .widget-item .content .settings.params-picker .parameter .badge{margin-right:3px;font-size:10px;background-color:#f2f2f2;color:#1E303B;padding:2px 6px}.analytics .widget-item .content .settings.params-picker .parameter.unchecked{background-color:inherit;font-weight:400;color:inherit;border-color:#c2c4c4}.analytics .widget-item .content .settings.params-picker .parameter.unchecked .badge{background-color:#c2c4c4;color:#fff}.analytics .settings.tag-filter{padding:0 5px}.analytics .settings.tag-filter .btn.btn-default{height:32px;width:30px}.analytics .settings.tag-filter .tag-lines-container{padding:0 10px}.analytics .settings.tag-filter .tag-lines-container .tag-line{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.analytics .settings.tag-filter .tag-lines-container .tag-line tags-input .tags{display:-webkit-box;display:-ms-flexbox;display:flex;border-radius:4px;border:1px solid #ccc}.analytics .settings.tag-filter .tag-lines-container .tag-line tags-input .tags .tag-item{background:#79a2bb;border-radius:4px;color:#fff}.analytics .settings.time-period{padding:0 5px}.analytics .settings.time-period select{height:22px;width:100%}.analytics .settings.time-period>.row{margin:0 -5px 7px}.analytics .settings.time-period>.row>div{padding:0 5px;position:static}.analytics .settings.time-period>.row .sub-setting{padding:5px}.analytics .widget-item .content .settings.width{float:right;font-size:14px}.analytics .widget-item .content .settings.width i{color:silver;cursor:pointer}.analytics .widget-item .content .settings.width i.reduce{margin-right:-10px}.analytics .widget-item .content .settings.width i.expand{margin-right:-3px} \ No newline at end of file diff --git a/dist/impac-angular.min.js b/dist/impac-angular.min.js index c93fc78d..e5410bd6 100644 --- a/dist/impac-angular.min.js +++ b/dist/impac-angular.min.js @@ -1,21 +1,22 @@ /** * impac-angular - Impac! Front-End Library - * @version v1.7.5 + * @version v1.7.6 * @git git://github.com/maestrano/impac-angular.git * @license Copyright 2017 Maestrano Pty Ltd */ -(function(){"use strict";angular.module("maestrano.impac",["impac.services","impac.filters","impac.components","ngMessages","ui.sortable","ui.bootstrap","emguo.poller","toastr","pascalprecht.translate","xeditable"]),angular.module("impac.components",["impac.components.dashboard","impac.components.dashboard-create","impac.components.dashboard-selector","impac.components.dashboard-templates-selector","impac.components.dashboard-settings","impac.components.kpis-bar","impac.components.kpi","impac.components.chart","impac.components.alerts-config","impac.components.widget","impac.components.widgets","impac.components.widgets-settings","impac.components.widgets-common","impac.components.common","impac.components.templates"]),angular.module("impac.components.widgets",["impac.components.widgets.accounts-accounting-values","impac.components.widgets.accounts-assets-summary","impac.components.widgets.accounts-assets-liability-summary","impac.components.widgets.accounts-balance-sheet","impac.components.widgets.accounts-balance","impac.components.widgets.accounts-cash-projection","impac.components.widgets.accounts-cash-summary","impac.components.widgets.accounts-comparison","impac.components.widgets.accounts-custom-calculation","impac.components.widgets.accounts-expenses-revenue","impac.components.widgets.accounts-payable-receivable","impac.components.widgets.accounts-profit-and-loss","impac.components.widgets.accounts-class-comparison","impac.components.widgets.accounts-expense-weight","impac.components.widgets.accounts-assets-vs-liabilities","impac.components.widgets.accounts-detailed-classifications","impac.components.widgets.accounts-ratios","impac.components.widgets.accounts-cash-balance","impac.components.widgets.accounts-live-balance","impac.components.widgets.accounts-invoices-list","impac.components.widgets.hr-employee-details","impac.components.widgets.hr-employees-list","impac.components.widgets.hr-leaves-balance","impac.components.widgets.hr-leaves-schedule","impac.components.widgets.hr-payroll-summary","impac.components.widgets.hr-payroll-taxes","impac.components.widgets.hr-salaries-summary","impac.components.widgets.hr-superannuation-accruals","impac.components.widgets.hr-timesheets","impac.components.widgets.hr-workforce-summary","impac.components.widgets.invoices-aged-payables-receivables","impac.components.widgets.invoices-list","impac.components.widgets.invoices-summary","impac.components.widgets.sales-aged","impac.components.widgets.sales-break-even","impac.components.widgets.sales-comparison","impac.components.widgets.sales-customer-details","impac.components.widgets.sales-cycle","impac.components.widgets.sales-forecast","impac.components.widgets.sales-growth","impac.components.widgets.sales-leads-funnel","impac.components.widgets.sales-leads-list","impac.components.widgets.sales-list","impac.components.widgets.sales-margin","impac.components.widgets.sales-net-sales","impac.components.widgets.sales-number-of-leads","impac.components.widgets.sales-opportunities-funnel","impac.components.widgets.sales-performance","impac.components.widgets.sales-segmented-turnover","impac.components.widgets.sales-summary","impac.components.widgets.sales-top-opportunities","impac.components.widgets.sales-top-customers","impac.components.widgets.sales-new-vs-existing-customers"]),angular.module("impac.components.widgets-settings",["impac.components.widgets-settings.account","impac.components.widgets-settings.bolt-account","impac.components.widgets-settings.accounts-list","impac.components.widgets-settings.accounting-behaviour","impac.components.widgets-settings.chart-filters","impac.components.widgets-settings.dates-picker","impac.components.widgets-settings.formula","impac.components.widgets-settings.hist-mode","impac.components.widgets-settings.limit-entries","impac.components.widgets-settings.organizations","impac.components.widgets-settings.param-selector","impac.components.widgets-settings.params-picker","impac.components.widgets-settings.params-checkboxes","impac.components.widgets-settings.time-period","impac.components.widgets-settings.time-presets","impac.components.widgets-settings.time-slider","impac.components.widgets-settings.width","impac.components.widgets-settings.attach-kpis","impac.components.widgets-settings.tag-filter","impac.components.widgets-settings.offsets","impac.components.widgets-settings.forecast-payroll"]),angular.module("impac.components.dashboard-settings",["impac.components.dashboard-settings.currency","impac.components.dashboard-settings.pdf-mode","impac.components.dashboard-settings.sync-apps"]),angular.module("impac.components.widgets-common",["impac.components.widgets-common.editable-title","impac.components.widgets-common.info-panel","impac.components.widgets-common.confirm-modal","impac.components.widgets-common.time-period-info","impac.components.widgets-common.top-buttons","impac.components.widgets-common.autofocus","impac.components.widgets-common.currency-conversions","impac.components.widgets-common.chart-threshold"]),angular.module("impac.components.common",["impac.components.common.data-not-found","impac.components.common.transactions-add","impac.components.common.transactions-list","impac.components.common.duplicate-transactions-list","impac.components.common.trends-add","impac.components.common.trends-list"]),angular.module("impac.services",["impac.services.routes","impac.services.linking","impac.services.theming","impac.services.assets","impac.services.chart-formatter","impac.services.highcharts-factory","impac.services.message-bus","impac.services.utilities","impac.services.main","impac.services.kpis","impac.services.dashboards","impac.services.dashboard-templates","impac.services.widgets","impac.services.developer","impac.services.pusher","impac.services.alerts","impac.services.notifications","impac.services.events","impac.services.currency-rates","impac.services.bolt-resources"]),angular.module("impac.filters",["impac.filters.titleize","impac.filters.truncate","impac.filters.mno-currency","impac.filters.moment-date"]),angular.module("impac.components.templates",[]).run(["$templateCache",function(e){e.put("alerts-config/alerts-config.modal.html",'
\n\n \n\n \n\n \n\n
\n'),e.put("alerts-config/alerts-config.tmpl.html",'
\n \n
\n'),e.put("dashboard/dashboard.tmpl.html",'\n
\n
\n\n \n
\n
\n \n
\n \n \n
\n\n
\n
{{dhbHeadingText}}
\n
\n
\n\n \n \n\n \n \n\n \n\n \n
\n
\n

impac.dashboard.select_the_widgets

\n impac.dashboard.widget_added\n \n
\n\n
\n
\n
\n impac.dashboard.all_categories\n
\n
\n
\n

impac.dashboard.accounting

\n

impac.dashboard.invoicing

\n

impac.dashboard.hr_or_payroll

\n

impac.dashboard.sales

\n
\n
\n
\n
\n \n
\n
\n\n
\n
\n {{getSelectedCategoryName() | titleize}}\n
\n
\n
\n
\n \n

\n \n
\n
\n
\n
\n
\n\n
\n \n {{\'impac.dashboard.can_not_find\' | translate}} {{\'impac.dashboard.give_us\' | translate}}\n \n
\n
\n\n \n
\n\n \n
\n
\n
\n
\n
\n
\n\n \n
\n \n
    \n
  • {{error}}
  • \n
\n
\n\n
\n \n\n
\n \n
\n
\n
\n
\n
\n

{{dhbErrorsConfig.firstTimeCreated.first}}

\n

{{dhbErrorsConfig.firstTimeCreated.second}}

\n
\n
\n
\n
\n
\n \n
\n
\n\n \n
\n
\n
\n
\n
\n

{{dhbErrorsConfig.empty.first}}

\n

{{dhbErrorsConfig.empty.second}}

\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n\n \n
\n \n \n
\n

{{dhbErrorsConfig.firstTimeCreated.note}}

\n
\n
\n\n \n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n \n
\n
\n
impac.dashboard.plus_chart
\n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n \n
\n
\n
\n\n
\n
\n
\n

{{dhbErrorsConfig.failed.first}}

\n
\n

{{dhbErrorsConfig.failed.second}}

\n
\n \n \n \n
\n
\n
\n'),e.put("dashboard/widget-suggestion.modal.html",'\n\n